diff --git a/README.md b/README.md index 8cc9b4f..4f0aa91 100644 --- a/README.md +++ b/README.md @@ -218,6 +218,8 @@ When an account is refused, it rests until the provider's own reset (its `retry- A reserve, set per account on the Accounts page or with `PATCH /admin/api/accounts/{id}` and `{"reserve_percent": 5}`, is a hard floor on the account's longest window (monthly over weekly over daily over five-hour): once that window reaches the floor, douane stops using the account, live conversations included, until it resets. To watch other windows, pick them on the Accounts page or send `"reserve_windows": ["five-hour", "weekly"]` (any of `five-hour`, `daily`, `weekly`, `monthly`; `[]` returns to the longest window): the account then stops as soon as one of them reaches the floor. Close to the floor, quotas are reread at most once a minute, so a burst can overshoot by a little. +What is left of a week is lost at its reset, so the last hours before an account's weekly reset lift its limits: the reserve and client shares stop applying and the account serves until it runs out. The default is 6 hours; change it in Settings > End of the week or with `free_before_reset_hours` (0 to 168, 0 keeps the limits to the end). An account whose longest window is a month uses its monthly reset instead; accounts with only shorter windows are never lifted. + Banked resets for Claude and Codex appear on each account card. Using one asks for confirmation, and a retried click reuses the same request id, so a double click cannot spend two. ![Overview page: active accounts, requests, tokens, cache reads and recent activity](docs/images/activity.png) @@ -227,7 +229,7 @@ Banked resets for Claude and Codex appear on each account card. Using one asks f With no client defined, anyone who reaches the client API can use every account. Create a client on the **Clients** page, with `POST /admin/api/clients` or `douanectl client add`, and from then on every `/v1` call needs a client key, sent as the tool's API key (`Authorization: Bearer dk_...` or `x-api-key`). Other keys get 401. The key is shown once; douane keeps only its hash. Deleting the last client opens the API again. - **Access.** A client reaches every account, accounts connected later included, or only the providers, custom routes and single accounts you pick. `/v1/models` and `/v1/quotas` list only what it may use. -- **Shares.** A share is a percentage of each account-wide window (five hours, day, week, month) of every account of a provider. Shares of a provider add up to 100 % at most. What no share covers is common to every client. A client's unused share stays reserved for it until the last seventh of the window (the last day of a week), then any client may use it. A client with no share uses the common part, then freed shares. A client held back gets 429 until the window resets. +- **Shares.** A share is a percentage of each account-wide window (five hours, day, week, month) of every account of a provider. Shares of a provider add up to 100 % at most. What no share covers is common to every client. A client's unused share stays reserved for it until the last seventh of the window (the last day of a week), then any client may use it. A client with no share uses the common part, then freed shares. A client held back gets 429 until the window resets. In the hours before the weekly reset (`free_before_reset_hours`, see above), shares hold no one back. - **Usage.** Providers report usage per account, not per caller, so douane attributes it: each rise of a window goes to the clients whose calls ended on that account since the previous reading, weighted by tokens, or to the calls still running. A rise that no call through douane explains counts as outside use. Calls of several clients interleaving on one account make the split an estimate; one client per account keeps it exact. - **Quota bars.** With a client key, `/v1/quotas` shows each window as the part the client has used of what it may use, so a full bar means it is held back. diff --git a/crates/douane/src/clients.rs b/crates/douane/src/clients.rs index 187b59d..b0bfc4b 100644 --- a/crates/douane/src/clients.rs +++ b/crates/douane/src/clients.rs @@ -6,6 +6,8 @@ //! account-wide window (five hours, day, week, month) of every account in a //! pool. Unused shares stay reserved for their holders until the last seventh //! of the window, when anyone may use them; what no share covers is common. +//! In the hours before an account's weekly reset (`free_before_reset_hours`), +//! shares hold no one back. //! //! Usage is attributed, not read: each rise of a window's utilization goes to //! the clients whose calls ended on that account since the previous reading, @@ -679,16 +681,19 @@ impl Clients { /// The reset of the window where `client` has reached what the other /// holders' shares leave it on this account; `None` when it may use it. + /// Within `free_before` seconds of the account's weekly reset, shares + /// no longer hold anyone back. pub fn share_blocks( &self, client: Option<&Client>, account: &AccountCredential, snapshot: Option<&QuotaSnapshot>, now: i64, + free_before: i64, ) -> Option { let snapshot = snapshot?; let holders = self.holders(account.pool()); - if holders.is_empty() { + if holders.is_empty() || snapshot.longest_window_ends_within(free_before, now) { return None; } let me = client.map(|c| c.id.as_str()).unwrap_or(""); @@ -704,16 +709,18 @@ impl Clients { /// The snapshot as `client` sees it: each account-wide window shows the /// part of what it may use that it has used, so a bar at 100% means it - /// is held back. Windows of pools without shares stay as they are. + /// is held back. Windows of pools without shares, or of an account whose + /// shares are freed before its weekly reset, stay as they are. pub fn client_view( &self, client: &Client, mut snapshot: QuotaSnapshot, pool: &str, now: i64, + free_before: i64, ) -> QuotaSnapshot { let holders = self.holders(pool); - if holders.is_empty() { + if holders.is_empty() || snapshot.longest_window_ends_within(free_before, now) { return snapshot; } let account = snapshot.account_id.clone(); @@ -966,42 +973,102 @@ mod tests { clients.observe(&snapshot("a", 70.0, reset), NOW); // Perso may still use 5 points before touching famille's 25. assert_eq!( - clients.share_blocks(Some(&perso), &a, Some(&snapshot("a", 70.0, reset)), NOW), + clients.share_blocks(Some(&perso), &a, Some(&snapshot("a", 70.0, reset)), NOW, 0), None ); clients.call_ended("a", Some(&perso.id), 1.0); clients.observe(&snapshot("a", 75.0, reset), NOW); let full = snapshot("a", 75.0, reset); assert_eq!( - clients.share_blocks(Some(&perso), &a, Some(&full), NOW), + clients.share_blocks(Some(&perso), &a, Some(&full), NOW, 0), Some(reset) ); // Famille keeps its share. assert_eq!( - clients.share_blocks(Some(&famille), &a, Some(&full), NOW), + clients.share_blocks(Some(&famille), &a, Some(&full), NOW, 0), None ); // Perso's bar is full; famille's shows nothing used of its 25. let view = |c: &Client| { - clients.client_view(c, full.clone(), "claude", NOW).windows[0].remaining_percent + clients + .client_view(c, full.clone(), "claude", NOW, 0) + .windows[0] + .remaining_percent }; assert_eq!(view(&perso), Some(0.0)); assert_eq!(view(&famille), Some(100.0)); // In the last day of the week, famille's unused share opens to all. let late = NOW + 3 * 86_400 - 20 * 3600; assert_eq!( - clients.share_blocks(Some(&perso), &a, Some(&full), late), + clients.share_blocks(Some(&perso), &a, Some(&full), late, 0), None ); // Accounts of a pool without shares never hold anyone back. let mut codex = account("c"); codex.provider = SubscriptionProvider::Codex; assert_eq!( - clients.share_blocks(Some(&perso), &codex, Some(&full), NOW), + clients.share_blocks(Some(&perso), &codex, Some(&full), NOW, 0), None ); } + #[test] + fn shares_stop_holding_back_hours_before_the_weekly_reset() { + let (_dir, clients) = clients(); + let (_famille, _) = clients + .create(ClientPatch { + name: Some("famille".into()), + shares: Some([("claude".to_owned(), 25.0)].into()), + ..ClientPatch::default() + }) + .unwrap(); + let (perso, _) = clients.create(named("perso")).unwrap(); + let a = account("a"); + // The week ends in five hours; a five-hour window started an hour ago. + let weekly = NOW + 5 * 3600; + let five = NOW + 4 * 3600; + let with = |used: f64| { + let mut snapshot = snapshot("a", 10.0, weekly); + let mut window = snapshot.windows[0].clone(); + window.id = "five-hour".into(); + window.remaining_percent = Some(100.0 - used); + window.reset_at = Some( + time::OffsetDateTime::from_unix_timestamp(five) + .unwrap() + .format(&time::format_description::well_known::Rfc3339) + .unwrap(), + ); + snapshot.windows.push(window); + snapshot + }; + clients.observe(&with(0.0), NOW); + clients.call_ended("a", Some(&perso.id), 1.0); + clients.observe(&with(75.0), NOW); + let full = with(75.0); + // Kept to the end, famille's five-hour share holds perso back. + assert_eq!( + clients.share_blocks(Some(&perso), &a, Some(&full), NOW, 0), + Some(five) + ); + assert_eq!( + clients.share_blocks(Some(&perso), &a, Some(&full), NOW, 4 * 3600), + Some(five) + ); + // Six hours before the weekly reset, nothing is held back any more. + assert_eq!( + clients.share_blocks(Some(&perso), &a, Some(&full), NOW, 6 * 3600), + None + ); + let view = |free_before: i64| { + clients + .client_view(&perso, full.clone(), "claude", NOW, free_before) + .windows[1] + .remaining_percent + }; + assert_eq!(view(0), Some(0.0)); + assert_eq!(view(6 * 3600), Some(25.0)); + } + #[test] fn usage_survives_a_restart() { let (dir, clients) = clients(); diff --git a/crates/douane/src/management.rs b/crates/douane/src/management.rs index 8383afa..317a499 100644 --- a/crates/douane/src/management.rs +++ b/crates/douane/src/management.rs @@ -145,6 +145,7 @@ async fn account_value( &summary.reserve_windows, snapshot.as_ref(), now, + state.free_before_reset_seconds().await, ); let mut value = json!(summary); value["reserve_measured"] = json!(measured); @@ -852,7 +853,13 @@ pub async fn public_quotas( .route .as_deref() .unwrap_or(account.provider.as_str()); - Some(state.clients.client_view(client, snapshot, pool, now)) + Some(state.clients.client_view( + client, + snapshot, + pool, + now, + settings.free_before_reset_seconds(), + )) }) .collect(); } diff --git a/crates/douane/src/settings.rs b/crates/douane/src/settings.rs index 9e3b98d..a161f95 100644 --- a/crates/douane/src/settings.rs +++ b/crates/douane/src/settings.rs @@ -39,6 +39,10 @@ pub struct Settings { pub quota_display: BTreeMap, /// Which windows `/v1/quotas` shows for each provider, and the one shown first. pub quota_windows: BTreeMap, + /// Hours before an account's weekly reset (monthly when its longest + /// window is a month) when its reserve and client shares stop applying, + /// so what is left gets used. 0 keeps them to the end. + pub free_before_reset_hours: u32, } #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Serialize, Deserialize)] @@ -89,6 +93,7 @@ impl Default for Settings { default_provider: None, quota_display: BTreeMap::new(), quota_windows: BTreeMap::new(), + free_before_reset_hours: 6, } } } @@ -151,6 +156,9 @@ impl Settings { if !(10..=1800).contains(&self.request_timeout_seconds) { bail!("request_timeout_seconds must be between 10 and 1800"); } + if self.free_before_reset_hours > 168 { + bail!("free_before_reset_hours must be between 0 and 168"); + } if let Some(p) = &self.default_provider { if crate::subscriptions::SubscriptionProvider::parse(p).is_none() { bail!("unknown default provider"); @@ -178,6 +186,10 @@ impl Settings { Ok(()) } + pub fn free_before_reset_seconds(&self) -> i64 { + i64::from(self.free_before_reset_hours) * 3600 + } + pub fn quota_windows( &self, provider: crate::subscriptions::SubscriptionProvider, diff --git a/crates/douane/src/state.rs b/crates/douane/src/state.rs index 8899e13..d9de89b 100644 --- a/crates/douane/src/state.rs +++ b/crates/douane/src/state.rs @@ -434,6 +434,7 @@ impl AppState { continue; } let now = time::OffsetDateTime::now_utc(); + let free_before = config.settings.free_before_reset_seconds(); let mut eligible = vec![]; let mut candidates = vec![]; for a in self @@ -445,13 +446,16 @@ impl AppState { continue; } let quota = self.quotas.get(&a.id).await; - if self.reserve_excludes_with(&a, quota.as_ref(), now) { + if self.reserve_excludes_with(&a, quota.as_ref(), now, free_before) { continue; } - if let Some(reset) = - self.clients - .share_blocks(client, &a, quota.as_ref(), now.unix_timestamp()) - { + if let Some(reset) = self.clients.share_blocks( + client, + &a, + quota.as_ref(), + now.unix_timestamp(), + free_before, + ) { if held_back.as_ref().is_none_or(|(_, r)| reset < *r) { held_back = Some((pool.to_owned(), reset)); } @@ -572,12 +576,14 @@ impl AppState { /// window resets. Unknown quotas never trigger it. This check only reads; /// request routing uses [`Self::reserve_excludes`]. pub async fn reserve_reached(&self, account: &AccountCredential) -> bool { + let free_before = self.free_before_reset_seconds().await; let snapshot = self.quotas.get(&account.id).await; reserve_reached_in( account.reserve(), &account.reserve_windows(), snapshot.as_ref(), time::OffsetDateTime::now_utc(), + free_before, ) } @@ -594,6 +600,7 @@ impl AppState { if client.is_some_and(|c| !c.access.allows(account)) { return true; } + let free_before = self.free_before_reset_seconds().await; let snapshot = self.quotas.get(&account.id).await; self.clients .share_blocks( @@ -601,13 +608,30 @@ impl AppState { account, snapshot.as_ref(), time::OffsetDateTime::now_utc().unix_timestamp(), + free_before, ) .is_some() } pub async fn reserve_excludes(&self, account: &AccountCredential) -> bool { + let free_before = self.free_before_reset_seconds().await; let snapshot = self.quotas.get(&account.id).await; - self.reserve_excludes_with(account, snapshot.as_ref(), time::OffsetDateTime::now_utc()) + self.reserve_excludes_with( + account, + snapshot.as_ref(), + time::OffsetDateTime::now_utc(), + free_before, + ) + } + + /// Seconds before an account's weekly reset when its reserve and client + /// shares stop applying. + pub async fn free_before_reset_seconds(&self) -> i64 { + self.config + .read() + .await + .settings + .free_before_reset_seconds() } fn reserve_excludes_with( @@ -615,10 +639,14 @@ impl AppState { account: &AccountCredential, snapshot: Option<&crate::subscriptions::QuotaSnapshot>, now: time::OffsetDateTime, + free_before: i64, ) -> bool { let (Some(reserve), Some(snapshot)) = (account.reserve(), snapshot) else { return false; }; + if snapshot.longest_window_ends_within(free_before, now.unix_timestamp()) { + return false; + } let windows = account.reserve_windows(); let near = snapshot .reserve_window_remaining(&windows, now) @@ -628,7 +656,7 @@ impl AppState { if near && stale { self.refresh_soon(&account.id); } - reserve_reached_in(Some(reserve), &windows, Some(snapshot), now) + reserve_reached_in(Some(reserve), &windows, Some(snapshot), now, 0) } fn refresh_soon(&self, id: &str) { @@ -715,16 +743,21 @@ impl AppState { } /// A valid reserve and a snapshot whose account-wide window sits at or below -/// it. Shared by routing and the management listing. +/// it, unless the weekly reset is within `free_before` seconds. Shared by +/// routing and the management listing. pub fn reserve_reached_in( reserve: Option, windows: &[String], snapshot: Option<&crate::subscriptions::QuotaSnapshot>, now: time::OffsetDateTime, + free_before: i64, ) -> bool { reserve .filter(|percent| crate::subscriptions::valid_reserve(*percent)) .zip(snapshot) + .filter(|(_, snapshot)| { + !snapshot.longest_window_ends_within(free_before, now.unix_timestamp()) + }) .is_some_and(|(reserve, snapshot)| snapshot.reserve_reached(reserve, windows, now)) } @@ -1210,6 +1243,57 @@ mod tests { assert_eq!(order(&state).await.unwrap(), vec![kept]); } + #[tokio::test] + async fn a_reserve_stops_applying_hours_before_the_weekly_reset() { + let directory = tempfile::TempDir::new().unwrap(); + let mut config = Config::default(); + config.server.auth_dir = directory.path().join("auth"); + config.server.database = directory.path().join("requests.sqlite"); + let state = AppState::new(config, None).unwrap(); + let account = state + .accounts + .import( + json!({"type":"codex","access_token":"fixture","account_id":"kept","name":"kept"}), + None, + ) + .await + .unwrap(); + state + .accounts + .update(&account.id, None, None, Some(Some(5.0)), None) + .await + .unwrap(); + let reset_in = |hours: i64| { + (time::OffsetDateTime::now_utc() + time::Duration::hours(hours)) + .format(&time::format_description::well_known::Rfc3339) + .unwrap() + }; + let low = |reset: String| { + let mut low = weekly(&account.id, &reset); + low.windows[0].remaining_percent = Some(5.0); + low + }; + async fn serves(state: &AppState) -> bool { + state + .candidates("gpt-5.5", Some("codex"), None) + .await + .is_ok() + } + let credential = state.accounts.get(&account.id).await.unwrap(); + // Seven hours before the reset, the reserve still holds. + state.quotas.insert_for_test(low(reset_in(7))).await; + assert!(!serves(&state).await); + assert!(state.reserve_reached(&credential).await); + // Within the default six hours, the rest of the week gets used. + state.quotas.insert_for_test(low(reset_in(5))).await; + assert!(serves(&state).await); + assert!(!state.reserve_reached(&credential).await); + assert!(!state.reserve_excludes(&credential).await); + // At 0 the reserve holds to the end. + state.config.write().await.settings.free_before_reset_hours = 0; + assert!(!serves(&state).await); + } + #[tokio::test] async fn a_stale_reached_reserve_refreshes_and_a_bad_stored_value_is_ignored() { let directory = tempfile::TempDir::new().unwrap(); diff --git a/crates/douane/src/subscriptions/quota.rs b/crates/douane/src/subscriptions/quota.rs index a509ede..40f96c7 100644 --- a/crates/douane/src/subscriptions/quota.rs +++ b/crates/douane/src/subscriptions/quota.rs @@ -67,6 +67,29 @@ impl QuotaSnapshot { .min_by_key(|reset| parse_timestamp(reset)) } + /// The longest account-wide window, when it lasts a week or more, resets + /// within `seconds` after `now`: what is left of it is lost unless spent. + /// Windows count as the default reserve counts them, `window-s` included. + pub fn longest_window_ends_within(&self, seconds: i64, now: i64) -> bool { + if seconds <= 0 { + return false; + } + let windows = || { + self.windows + .iter() + .filter_map(|window| Some((window, window_seconds(&window.id)?))) + }; + let Some(longest) = windows().map(|(_, length)| length).reduce(f64::max) else { + return false; + }; + longest >= 604_800.0 + && windows() + .filter(|(_, length)| *length == longest) + .filter_map(|(window, _)| window.reset_at.as_deref().and_then(parse_timestamp)) + .map(|reset| reset.unix_timestamp()) + .any(|reset| reset > now && reset - now <= seconds) + } + pub fn remaining_percent(&self) -> Option { self.windows .iter() @@ -1582,6 +1605,24 @@ mod tests { window("monthly", Some(60.0), later), ]); assert!(!go_weekly_low.reserve_reached(5.0, &[], observed())); + // Limits lift only near the reset of the longest window, a week or + // more, whatever its id. + let at = observed().unix_timestamp(); + let in_hours = |hours: i64| { + (observed() + time::Duration::hours(hours)) + .format(&time::format_description::well_known::Rfc3339) + .unwrap() + }; + let fortnight = snapshot(vec![window("window-1209600s", Some(3.0), &in_hours(5))]); + assert!(fortnight.longest_window_ends_within(6 * 3600, at)); + assert!(!fortnight.longest_window_ends_within(4 * 3600, at)); + let fortnight_later = snapshot(vec![ + window("weekly", Some(3.0), &in_hours(5)), + window("window-1209600s", Some(50.0), &in_hours(72)), + ]); + assert!(!fortnight_later.longest_window_ends_within(6 * 3600, at)); + let short = snapshot(vec![window("daily", Some(3.0), &in_hours(5))]); + assert!(!short.longest_window_ends_within(6 * 3600, at)); // The longest window past its reset no longer holds the account // back, and a shorter one does not take over. let reset = snapshot(vec![ diff --git a/dash/build/_app/immutable/chunks/BJ6K4aSM.js b/dash/build/_app/immutable/chunks/BJ6K4aSM.js new file mode 100644 index 0000000..8106b83 --- /dev/null +++ b/dash/build/_app/immutable/chunks/BJ6K4aSM.js @@ -0,0 +1 @@ +import{$ as e,B as t,Q as n,R as r,n as i,t as a,tt as o,z as s}from"./QjDztciA.js";var c=class{constructor(e,t){this.status=e,this.body=typeof t==`string`?{message:t}:t||{message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}},l=class{constructor(e,t){try{new Headers({location:t})}catch{throw Error(`Invalid redirect location ${JSON.stringify(t)}: this string contains characters that cannot be used in HTTP headers`)}this.status=e,this.location=t}},u=class extends Error{constructor(e,t,n){super(n),this.status=e,this.text=t}};new URL(`sveltekit-internal://`);function d(e,t){return e===`/`||t===`ignore`?e:t===`never`?e.endsWith(`/`)?e.slice(0,-1):e:t===`always`&&!e.endsWith(`/`)?e+`/`:e}function f(e){return e.split(`%25`).map(decodeURI).join(`%25`)}function p(e){for(let t in e)e[t]=decodeURIComponent(e[t]);return e}function m({href:e}){return e.split(`#`)[0]}function h(){}function g(...e){let t=5381;for(let n of e)if(typeof n==`string`){let e=n.length;for(;e;)t=t*33^n.charCodeAt(--e)}else if(ArrayBuffer.isView(n)){let e=new Uint8Array(n.buffer,n.byteOffset,n.byteLength),r=e.length;for(;r;)t=t*33^e[--r]}else throw TypeError(`value must be a string or TypedArray`);return(t>>>0).toString(36)}new TextEncoder;function _(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e((e instanceof Request?e.method:t?.method||`GET`)!==`GET`&&y.delete(x(e)),v(e,t));var y=new Map;function ee(e,t){let n=x(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:e,...t}=JSON.parse(r.textContent);r.getAttribute(`data-b64`)!==null&&(e=_(e));let i=r.getAttribute(`data-ttl`);return i&&y.set(n,{body:e,init:t,ttl:1e3*Number(i)}),Promise.resolve(new Response(e,t))}return window.fetch(e,t)}function b(e,t,n){if(y.size>0){let t=x(e,n),r=y.get(t);if(r){if(performance.now(){let n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(e);if(n)return t.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),`(?:/([^]*))?`;let r=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(e);if(r)return t.push({name:r[1],matcher:r[2],optional:!0,rest:!1,chained:!0}),`(?:/([^/]+))?`;if(!e)return;let i=e.split(/\[(.+?)\](?!\])/);return`/`+i.map((e,n)=>{if(n%2){if(e.startsWith(`x+`))return se(String.fromCharCode(parseInt(e.slice(2),16)));if(e.startsWith(`u+`))return se(String.fromCharCode(...e.slice(2).split(`-`).map(e=>parseInt(e,16))));let[,r,a,o,s]=te.exec(e);return t.push({name:o,matcher:s,optional:!!r,rest:!!a,chained:a?n===1&&i[0]===``:!1}),a?`([^]*?)`:r?`([^/]*)?`:`([^/]+?)`}return se(e)}).join(``)}).join(``)}/?$`),params:t}}function ie(e){return e!==``&&!/^\([^)]+\)$/.test(e)}function ae(e){return e.slice(1).split(`/`).filter(ie)}function oe(e,t,n){let r={},i=e.slice(1),a=i.filter(e=>e!==void 0),o=0;for(let e=0;ee).join(`/`),o=0),c===void 0)if(s.rest)c=``;else continue;if(!s.matcher||n[s.matcher](c)){r[s.name]=c;let n=t[e+1],l=i[e+1];n&&!n.rest&&n.optional&&l&&s.chained&&(o=0),!n&&!l&&Object.keys(r).length===a.length&&(o=0);continue}if(s.optional&&s.chained){o++;continue}return}if(!o)return r}function se(e){return e.normalize().replace(/[[\]]/g,`\\$&`).replace(/%/g,`%25`).replace(/\//g,`%2[Ff]`).replace(/\?/g,`%3[Ff]`).replace(/#/g,`%23`).replace(/[.*+?^${}()|\\]/g,`\\$&`)}function ce({nodes:e,server_loads:t,dictionary:n,matchers:r}){let i=new Set(t);return Object.entries(n).map(([t,[n,i,s]])=>{let{pattern:c,params:l}=re(t),u={id:t,exec:e=>{let t=c.exec(e);if(t)return oe(t,l,r)},errors:[1,...s||[]].map(t=>e[t]),layouts:[0,...i||[]].map(o),leaf:a(n)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function a(t){let n=t<0;return n&&(t=~t),[n,e[t]]}function o(t){return t===void 0?t:[i.has(t),e[t]]}}function le(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function ue(e,t,n=JSON.stringify){let r=n(t);try{sessionStorage[e]=r}catch{}}var S=globalThis.__sveltekit_12m4qe4?.base??`/admin`,de=globalThis.__sveltekit_12m4qe4?.assets??S??``,fe=`1792586093948`,pe=`sveltekit:snapshot`,me=`sveltekit:scroll`,he=`sveltekit:states`,C=`sveltekit:history`,w=`sveltekit:navigation`,T={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},ge=location.origin;function _e(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){let e=document.getElementsByTagName(`base`);t=e.length?e[0].href:document.URL}return new URL(e,t)}function E(){return{x:pageXOffset,y:pageYOffset}}function D(e,t){return e.getAttribute(`data-sveltekit-${t}`)}var ve={...T,"":T.hover};function ye(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function be(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()===`A`&&e.hasAttribute(`href`))return e;e=ye(e)}}function xe(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){let e=location.hash.split(`#`)[1]||`/`;r.hash=`#${e}${r.hash}`}}catch{}let i=e instanceof SVGAElement?e.target.baseVal:e.target,a=!r||!!i||k(r,t,n)||(e.getAttribute(`rel`)||``).split(/\s+/).includes(`external`),o=r?.origin===ge&&e.hasAttribute(`download`);return{url:r,external:a,target:i,download:o}}function O(e){let t=null,n=null,r=null,i=null,a=null,o=null,s=e;for(;s&&s!==document.documentElement;)r===null&&(r=D(s,`preload-code`)),i===null&&(i=D(s,`preload-data`)),t===null&&(t=D(s,`keepfocus`)),n===null&&(n=D(s,`noscroll`)),a===null&&(a=D(s,`reload`)),o===null&&(o=D(s,`replacestate`)),s=ye(s);function c(e){switch(e){case``:case`true`:return!0;case`off`:case`false`:return!1;default:return}}return{preload_code:ve[r??`off`],preload_data:ve[i??`off`],keepfocus:c(t),noscroll:c(n),reload:c(a),replace_state:c(o)}}function Se(e){let t=o(e),n=!0;function r(){n=!0,t.update(e=>e)}function i(e){n=!1,t.set(e)}function a(e){let r;return t.subscribe(t=>{(r===void 0||n&&t!==r)&&e(r=t)})}return{notify:r,set:i,subscribe:a}}var Ce={v:h};function we(){let{set:e,subscribe:t}=o(!1),n;async function r(){clearTimeout(n);try{let t=await fetch(`${de}/_app/version.json`,{headers:{pragma:`no-cache`,"cache-control":`no-cache`}});if(!t.ok)return!1;let r=(await t.json()).version!==fe;return r&&(e(!0),Ce.v(),clearTimeout(n)),r}catch{return!1}}return{subscribe:t,check:r}}function k(e,t,n){return e.origin!==ge||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function Te(e){}var Ee=new Set([`load`,`prerender`,`csr`,`ssr`,`trailingSlash`,`config`]);[...Ee],[...new Set([...Ee])];function De(e){return e.filter(e=>e!=null)}function A(e,t){return e+`/`+t}function Oe(e){return e instanceof c||e instanceof u?e.status:500}function ke(e){return e instanceof u?e.text:`Internal Error`}var j,M,N,Ae=i.toString().includes(`$$`)||/function \w+\(\) \{\}/.test(i.toString()),je=`a:`;Ae?(j={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(je)},M={current:null},N={current:!1}):(j=new class{#e=e({});get data(){return r(this.#e)}set data(e){n(this.#e,e)}#t=e(null);get form(){return r(this.#t)}set form(e){n(this.#t,e)}#n=e(null);get error(){return r(this.#n)}set error(e){n(this.#n,e)}#r=e({});get params(){return r(this.#r)}set params(e){n(this.#r,e)}#i=e({id:null});get route(){return r(this.#i)}set route(e){n(this.#i,e)}#a=e({});get state(){return r(this.#a)}set state(e){n(this.#a,e)}#o=e(-1);get status(){return r(this.#o)}set status(e){n(this.#o,e)}#s=e(new URL(je));get url(){return r(this.#s)}set url(e){n(this.#s,e)}},M=new class{#e=e(null);get current(){return r(this.#e)}set current(e){n(this.#e,e)}},N=new class{#e=e(!1);get current(){return r(this.#e)}set current(e){n(this.#e,e)}},Ce.v=()=>N.current=!0);function Me(e){Object.assign(j,e)}var{onMount:Ne,tick:Pe}=a,Fe=new Set([`icon`,`shortcut icon`,`apple-touch-icon`]),P=null,F=le(`sveltekit:scroll`)??{},I=le(`sveltekit:snapshot`)??{},L={url:Se({}),page:Se({}),navigating:o(null),updated:we()};function Ie(e){F[e]=E()}function Le(e,t){let n=e+1;for(;F[n];)delete F[n],n+=1;for(n=t+1;I[n];)delete I[n],n+=1}function R(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(h)}async function Re(){if(`serviceWorker`in navigator){let e=await navigator.serviceWorker.getRegistration(S||`/`);e&&await e.update()}}var ze,Be,z,B,Ve,V,He={},Ue={},H=[],We=[],U=null;function Ge(){U?.fork?.then(e=>e?.discard()),U=null,Q={element:void 0,href:void 0}}var Ke=new Map,qe=new Set,Je=new Set,W=new Set,G={branch:[],error:null,url:null,nav:null},Ye=!1,Xe=!1,Ze=!0,K=!1,q=!1,Qe=!1,$e=!1,et,J,Y,X,tt=new Set,nt=new Map,rt=new Map;async function it(e,t,n){if(globalThis.__sveltekit_12m4qe4.data){let{q:e={},p:t={},l:n={},f:r={}}=globalThis.__sveltekit_12m4qe4.data;for(let t in e)He[t]=e[t];for(let e in n)He[e]=n[e];for(let e in r)He[e]=r[e];for(let e in t)Ue[e]=t[e]}document.URL!==location.href&&(location.href=location.href),V=e,await e.hooks.init?.(),ze=ce(e),B=document.documentElement,Ve=t,Be=e.nodes[0],z=e.nodes[1],Be(),z(),J=history.state?.[C],Y=history.state?.[w],J||(J=Y=Date.now(),history.replaceState({...history.state,[C]:J,[w]:Y},``));let r=F[J];function i(){r&&(history.scrollRestoration=`manual`,scrollTo(r.x,r.y))}n?(i(),await Mt(Ve,n)):(await Z({type:`enter`,url:_e(V.hash?Rt(new URL(location.href)):location.href),replace_state:!0}),i()),jt()}function at(){H.length=0,$e=!1}function ot(e){We.some(e=>e?.snapshot)&&(I[e]=We.map(e=>e?.snapshot?.capture()))}function st(e){I[e]?.forEach((e,t)=>{We[t]?.snapshot?.restore(e)})}function ct(){Ie(J),ue(me,F),ot(Y),ue(pe,I)}async function lt(e,n,r,i){let a,o;n.invalidateAll&&Ge(),await Z({type:`goto`,url:_e(e),keepfocus:n.keepFocus,noscroll:n.noScroll,replace_state:n.replaceState,state:n.state,redirect_count:r,nav_token:i,accept:()=>{if(n.invalidateAll){$e=!0,a=new Set;for(let[e,t]of nt)for(let[n,r]of t)r.resource?.reset(),a.add(A(e,n));o=new Set;for(let[e,t]of rt)for(let n of t.keys())o.add(A(e,n))}n.invalidate&&n.invalidate.forEach(At)}}),n.invalidateAll&&t().then(t).then(()=>{for(let[e,t]of nt)for(let[n,{resource:r}]of t)a?.has(A(e,n))&&r.start();for(let[e,t]of rt)for(let[n,{resource:r}]of t)o?.has(A(e,n))&&r.reconnect()})}async function ut(e){if(e.id!==U?.id){Ge();let t={};tt.add(t),U={id:e.id,token:t,promise:bt({...e,preload:t}).then(e=>(tt.delete(t),e.type===`loaded`&&e.state.error&&Ge(),e)),fork:null}}return U.promise}async function dt(e){let t=(await wt(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(e=>e[1]()))}async function ft(e,t,n){let r={params:G.params,route:{id:G.route?.id??null},url:new URL(location.href)};if(G={...e.state,nav:r},Me(e.props.page),et=new V.root({target:t,props:{...e.props,stores:L,components:We},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),n){let e={from:null,to:{...r,scroll:F[J]??E()},willUnload:!1,type:`enter`,complete:Promise.resolve()};W.forEach(t=>t(e))}st(Y),Xe=!0}async function pt({url:e,params:t,branch:n,errors:r,status:i,error:a,route:o,form:s}){let c=`never`;if(S&&(e.pathname===S||e.pathname===S+`/`))c=`always`;else for(let e of n)e?.slash!==void 0&&(c=e.slash);e.pathname=d(e.pathname,c),e.search=e.search;let l={type:`loaded`,state:{url:e,params:t,branch:n,error:a,route:o},props:{constructors:De(n).map(e=>e.node.component),page:Lt(j)}};s!==void 0&&(l.props.form=s);let u={},f=!j,p=0;for(let e=0;et(new URL(e))))return!0;return!1}function _t(e,t){return e?.type===`data`?e:e?.type===`skip`?t??null:null}function vt(e,t){if(!e)return new Set(t.searchParams.keys());let n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(let r of n){let i=e.searchParams.getAll(r),a=t.searchParams.getAll(r);i.every(e=>a.includes(e))&&a.every(e=>i.includes(e))&&n.delete(r)}return n}function yt({error:e,url:t,route:n,params:r}){return{type:`loaded`,state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:Lt(j),constructors:[]}}}async function bt({id:e,invalidating:t,url:n,params:r,route:i,preload:a}){if(U?.id===e)return tt.delete(U.token),U.promise;let{errors:o,layouts:s,leaf:u}=i,d=[...s,u];o.forEach(e=>e?.().catch(h)),d.forEach(e=>e?.[1]().catch(h));let f=G.url?e!==Et(G.url):!1,p=G.route?i.id!==G.route.id:!1,m=vt(G.url,n),g=!1,_=d.map(async(e,t)=>{if(!e)return;let a=G.branch[t];return e[1]===a?.loader&&!gt(g,p,f,m,a.universal?.uses,r)?a:(g=!0,mt({loader:e[1],url:n,params:r,route:i,parent:async()=>{let e={};for(let n=0;nPromise.resolve({}),server_data_node:_t(null)}),{node:await z(),loader:z,universal:null,server:null,data:null}],status:e,error:t,errors:[],route:null})}catch(t){if(t instanceof l){await lt(new URL(t.location,location.href),{},0);return}let a=await V.get_error_template(),o=await $(t,{url:n,params:i,route:r}),s=a({status:e,message:String(o?.message??``).replace(/&/g,`&`).replace(//g,`>`)}),c=new DOMParser().parseFromString(s,`text/html`);throw document.documentElement.replaceChild(document.adoptNode(c.head),document.head),document.documentElement.replaceChild(document.adoptNode(c.body),document.body),t}}async function Ct(e){let t=e.href;if(Ke.has(t))return Ke.get(t);let n;try{let r=(async()=>{let t=await V.hooks.reroute({url:new URL(e),fetch:async(t,n)=>ht(t,n,e).promise})??e;if(typeof t==`string`){let n=new URL(e);V.hash?n.hash=t:n.pathname=t,t=n}return t})();Ke.set(t,r),n=await r}catch{Ke.delete(t);return}return n}async function wt(e,t){if(e&&!k(e,S,V.hash)){let n=await Ct(e);if(!n)return;let r=Tt(n);for(let n of ze){let i=n.exec(r);if(i)return{id:Et(e),invalidating:t,route:n,params:p(i),url:e}}}}function Tt(e){return f(V.hash?e.hash.replace(/^#/,``).replace(/[?#].+/,``):e.pathname.slice(S.length))||`/`}function Et(e){return(V.hash?e.hash.replace(/^#/,``):e.pathname)+e.search}function Dt({url:e,type:t,intent:n,delta:r,event:i,scroll:a}){let o=!1,s=It(G,n,e,t,a??null);r!==void 0&&(s.navigation.delta=r),i!==void 0&&(s.navigation.event=i);let c={...s.navigation,cancel:()=>{o=!0,s.reject(Error(`navigation cancelled`))}};return K||qe.forEach(e=>e(c)),o?null:s}async function Z({type:e,url:n,popped:r,keepfocus:i,noscroll:a,replace_state:o,state:c={},redirect_count:l=0,nav_token:d={},accept:f=h,block:p=h,event:m}){let g=X;X=d;let _=await wt(n,!1),v=e===`enter`?It(G,_,n,e):Dt({url:n,type:e,delta:r?.delta,intent:_,scroll:r?.scroll,event:m});if(!v){p(),X===d&&(X=g);return}let y=J,ee=Y;f(),K=!0,Xe&&v.navigation.type!==`enter`&&L.navigating.set(M.current=v.navigation);let b=_&&await bt(_);if(!b){if(k(n,S,V.hash))return await R(n,o);b=await Ot(n,{id:null},await $(new u(404,`Not Found`,`Not found: ${n.pathname}`),{url:n,params:{},route:{id:null}}),404,o)}if(n=_?.url||n,X!==d){v.reject(Error(`navigation aborted`));return}if(!b)return;if(b.type===`redirect`){if(l<20){await Z({type:e,url:new URL(b.location,n),popped:r,keepfocus:i,noscroll:a,replace_state:o,state:c,redirect_count:l+1,nav_token:d}),v.fulfil(void 0);return}if(b=await St({status:500,error:await $(Error(`Redirect loop`),{url:n,params:{},route:{id:null}}),url:n,route:{id:null}}),!b)return}else if(b.props.page.status>=400&&await L.updated.check())return await Re(),await R(n,o);if(at(),Ie(y),ot(ee),b.props.page.url.pathname!==n.pathname&&(n.pathname=b.props.page.url.pathname),c=r?r.state:c,!r){let e=+!o,t={[C]:J+=e,[w]:Y+=e,[he]:c};(o?history.replaceState:history.pushState).call(history,t,``,n),o||Le(J,Y)}let x=_&&U?.id===_.id?U.fork:null;U?.fork&&!x?Ge():(U=null,Q={element:void 0,href:void 0}),b.props.page.state=c;let te;if(Xe){let e=(await Promise.all(Array.from(Je,e=>e(v.navigation)))).filter(e=>typeof e==`function`);if(e.length>0){function t(){e.forEach(e=>{W.delete(e)})}e.push(t),e.forEach(e=>{W.add(e)})}let t=v.navigation.to;G={...b.state,nav:{params:t.params,route:t.route,url:t.url}},b.props.page&&(b.props.page.url=n),!i&&document.activeElement instanceof HTMLElement&&document.activeElement!==document.body&&document.activeElement.blur();let r=x&&await x;r?te=r.commit():(P=null,et.$set(b.props),P&&Object.assign(b.props.page,P),Me(b.props.page),te=s?.()),Qe=!0}else await ft(b,Ve,!1);let{activeElement:ne}=document;if(await te,await t(),await t(),X!==d){v.reject(Error(`navigation aborted`));return}b.props.page&&P&&Object.assign(b.props.page,P);let re=null;if(Ze){let e=r?r.scroll:a?E():null;e?scrollTo(e.x,e.y):(re=n.hash&&document.getElementById(zt(n)))?re.scrollIntoView():scrollTo(0,0)}let ie=document.activeElement!==ne&&document.activeElement!==document.body;!i&&!ie&&Ft(n,!re),Ze=!0,K=!1,v.fulfil(void 0),v.navigation.to&&(v.navigation.to.scroll=E()),W.forEach(e=>e(v.navigation)),e===`popstate`&&st(Y),L.navigating.set(M.current=null)}async function Ot(e,t,n,r,i){return e.origin===ge&&e.pathname===location.pathname&&!Ye?await St({status:r,error:n,url:e,route:t}):await R(e,i)}var Q={element:void 0,href:void 0};function kt(){let e,t;B.addEventListener(`mousemove`,t=>{let n=t.target;clearTimeout(e),e=setTimeout(()=>{i(n,T.hover)},20)});function n(e){e.defaultPrevented||i(e.composedPath()[0],T.tap)}B.addEventListener(`mousedown`,n),B.addEventListener(`touchstart`,n,{passive:!0});let r=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&(dt(new URL(t.target.href)),r.unobserve(t.target))},{threshold:0});async function i(e,n){let r=be(e,B),i=r===Q.element&&r?.href===Q.href&&n>=t;if(!r||i)return;let{url:a,external:o,download:s}=xe(r,S,V.hash);if(o||s)return;let c=O(r),l=a&&Et(G.url)===Et(a);if(!(c.reload||l))if(n<=c.preload_data){Q={element:r,href:r.href},t=T.tap;let e=await wt(a,!1);if(!e)return;ut(e)}else n<=c.preload_code&&(Q={element:r,href:r.href},t=n,dt(a))}function a(){r.disconnect();for(let e of B.querySelectorAll(`a`)){let{url:t,external:n,download:i}=xe(e,S,V.hash);if(n||i)continue;let a=O(e);a.reload||(a.preload_code===T.viewport&&r.observe(e),a.preload_code===T.eager&&dt(t))}}W.add(a),a()}function $(e,t){if(e instanceof c)return e.body;let n=Oe(e),r=ke(e);return V.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function At(e){if(typeof e==`function`)H.push(e);else{let{href:t}=new URL(e,location.href);H.push(e=>e.href===t)}}function jt(){history.scrollRestoration=`manual`,addEventListener(`beforeunload`,e=>{let t=!1;if(ct(),!K){let e=It(G,void 0,null,`leave`),n={...e.navigation,cancel:()=>{t=!0,e.reject(Error(`navigation cancelled`))}};qe.forEach(e=>e(n))}t?(e.preventDefault(),e.returnValue=``):history.scrollRestoration=`auto`}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&ct()}),navigator.connection?.saveData||kt(),B.addEventListener(`click`,async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;let n=be(t.composedPath()[0],B);if(!n)return;let{url:r,external:i,target:a,download:o}=xe(n,S,V.hash);if(!r)return;if(a===`_parent`||a===`_top`){if(window.parent!==window)return}else if(a&&a!==`_self`)return;let s=O(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&r.protocol!==`https:`&&r.protocol!==`http:`||o)return;let[c,l]=(V.hash?r.hash.replace(/^#/,``):r.href).split(`#`),u=c===m(location);if(i||s.reload&&(!u||!l)){Dt({url:r,type:`link`,event:t})?K=!0:t.preventDefault();return}if(l!==void 0&&u){let[,i]=G.url.href.split(`#`);if(i===l){if(t.preventDefault(),l===``||l===`top`&&n.ownerDocument.getElementById(`top`)===null)scrollTo({top:0});else{let e=n.ownerDocument.getElementById(decodeURIComponent(l));e&&(e.scrollIntoView(),e.focus())}return}if(q=!0,Ie(J),e(r),!s.replace_state)return;q=!1}t.preventDefault(),await new Promise(e=>{requestAnimationFrame(()=>{setTimeout(e,0)}),setTimeout(e,100)}),await Z({type:`link`,url:r,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??r.href===location.href,event:t})}),B.addEventListener(`submit`,e=>{if(e.defaultPrevented)return;let t=HTMLFormElement.prototype.cloneNode.call(e.target),n=e.submitter;if((n?.formTarget||t.target)===`_blank`||(n?.formMethod||t.method)!==`get`)return;let r=new URL(n?.hasAttribute(`formaction`)&&n?.formAction||t.action);if(k(r,S,!1))return;let i=e.target,a=O(i);if(a.reload)return;e.preventDefault(),e.stopPropagation();let o=new FormData(i,n);r.search=new URLSearchParams(o).toString(),Z({type:`form`,url:r,keepfocus:a.keepfocus,noscroll:a.noscroll,replace_state:a.replace_state??r.href===location.href,event:e})}),addEventListener(`popstate`,async t=>{if(!Pt)if(t.state?.[`sveltekit:history`]){let n=t.state[C];if(X={},n===J)return;let r=F[n],i=t.state[`sveltekit:states`]??{},a=new URL(t.state[`sveltekit:pageurl`]??location.href),o=t.state[w],s=G.url?m(location)===m(G.url):!1;if(o===Y&&(Qe||s)){i!==j.state&&(j.state=i),e(a),F[J]=E(),r&&scrollTo(r.x,r.y),J=n;return}let c=n-J;await Z({type:`popstate`,url:a,popped:{state:i,scroll:r,delta:c},accept:()=>{J=n,Y=o},block:()=>{history.go(-c)},nav_token:X,event:t})}else q||(e(new URL(location.href)),V.hash&&location.reload())}),addEventListener(`hashchange`,()=>{q&&(q=!1,history.replaceState({...history.state,[C]:++J,[w]:Y},``,location.href))});for(let e of document.querySelectorAll(`link`))Fe.has(e.rel)&&(e.href=e.href);addEventListener(`pageshow`,e=>{e.persisted&&L.navigating.set(M.current=null)});function e(e){G.url=j.url=e,L.page.set(Lt(j)),L.page.notify()}}async function Mt(e,{status:t=200,error:n,node_ids:r,params:i,route:a,server_route:o,data:s,form:c}){Ye=!0;let u=new URL(location.href),d;({params:i={},route:a={id:null}}=await wt(u,!1)||{}),d=ze.find(({id:e})=>e===a.id);let f,p=!0;try{let e=r.map(async(t,n)=>{let r=s[n];return r?.uses&&(r.uses=Nt(r.uses)),mt({loader:V.nodes[t],url:u,params:i,route:a,parent:async()=>{let t={};for(let r=0;r{let a=history.state;Pt=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(a,``,e),t&&scrollTo(r,i),Pt=!1})}else{let e=document.body,t=e.getAttribute(`tabindex`);e.tabIndex=-1,e.focus({preventScroll:!0,focusVisible:!1}),t===null?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,t)}let r=getSelection();if(r&&r.type!==`None`){let e=[];for(let t=0;t{if(r.rangeCount===e.length){for(let t=0;t{a=e,o=t});return s.catch(h),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:E()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:i},willUnload:!t,type:r,complete:s},fulfil:a,reject:o}}function Lt(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function Rt(e){let t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function zt(e){let t;if(V.hash){let[,,n]=e.hash.split(`#`,3);t=n??``}else t=e.hash.slice(1);return decodeURIComponent(t)}export{N as a,j as i,L as n,Te as o,M as r,it as t}; \ No newline at end of file diff --git a/dash/build/_app/immutable/chunks/C-klzZBB.js b/dash/build/_app/immutable/chunks/C-klzZBB.js deleted file mode 100644 index ffbb9f2..0000000 --- a/dash/build/_app/immutable/chunks/C-klzZBB.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,B as t,Q as n,R as r,n as i,t as a,tt as o,z as s}from"./QjDztciA.js";var c=class{constructor(e,t){this.status=e,this.body=typeof t==`string`?{message:t}:t||{message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}},l=class{constructor(e,t){try{new Headers({location:t})}catch{throw Error(`Invalid redirect location ${JSON.stringify(t)}: this string contains characters that cannot be used in HTTP headers`)}this.status=e,this.location=t}},u=class extends Error{constructor(e,t,n){super(n),this.status=e,this.text=t}};new URL(`sveltekit-internal://`);function d(e,t){return e===`/`||t===`ignore`?e:t===`never`?e.endsWith(`/`)?e.slice(0,-1):e:t===`always`&&!e.endsWith(`/`)?e+`/`:e}function f(e){return e.split(`%25`).map(decodeURI).join(`%25`)}function p(e){for(let t in e)e[t]=decodeURIComponent(e[t]);return e}function m({href:e}){return e.split(`#`)[0]}function h(){}function g(...e){let t=5381;for(let n of e)if(typeof n==`string`){let e=n.length;for(;e;)t=t*33^n.charCodeAt(--e)}else if(ArrayBuffer.isView(n)){let e=new Uint8Array(n.buffer,n.byteOffset,n.byteLength),r=e.length;for(;r;)t=t*33^e[--r]}else throw TypeError(`value must be a string or TypedArray`);return(t>>>0).toString(36)}new TextEncoder;function _(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e((e instanceof Request?e.method:t?.method||`GET`)!==`GET`&&y.delete(x(e)),v(e,t));var y=new Map;function ee(e,t){let n=x(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:e,...t}=JSON.parse(r.textContent);r.getAttribute(`data-b64`)!==null&&(e=_(e));let i=r.getAttribute(`data-ttl`);return i&&y.set(n,{body:e,init:t,ttl:1e3*Number(i)}),Promise.resolve(new Response(e,t))}return window.fetch(e,t)}function b(e,t,n){if(y.size>0){let t=x(e,n),r=y.get(t);if(r){if(performance.now(){let n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(e);if(n)return t.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),`(?:/([^]*))?`;let r=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(e);if(r)return t.push({name:r[1],matcher:r[2],optional:!0,rest:!1,chained:!0}),`(?:/([^/]+))?`;if(!e)return;let i=e.split(/\[(.+?)\](?!\])/);return`/`+i.map((e,n)=>{if(n%2){if(e.startsWith(`x+`))return se(String.fromCharCode(parseInt(e.slice(2),16)));if(e.startsWith(`u+`))return se(String.fromCharCode(...e.slice(2).split(`-`).map(e=>parseInt(e,16))));let[,r,a,o,s]=te.exec(e);return t.push({name:o,matcher:s,optional:!!r,rest:!!a,chained:a?n===1&&i[0]===``:!1}),a?`([^]*?)`:r?`([^/]*)?`:`([^/]+?)`}return se(e)}).join(``)}).join(``)}/?$`),params:t}}function ie(e){return e!==``&&!/^\([^)]+\)$/.test(e)}function ae(e){return e.slice(1).split(`/`).filter(ie)}function oe(e,t,n){let r={},i=e.slice(1),a=i.filter(e=>e!==void 0),o=0;for(let e=0;ee).join(`/`),o=0),c===void 0)if(s.rest)c=``;else continue;if(!s.matcher||n[s.matcher](c)){r[s.name]=c;let n=t[e+1],l=i[e+1];n&&!n.rest&&n.optional&&l&&s.chained&&(o=0),!n&&!l&&Object.keys(r).length===a.length&&(o=0);continue}if(s.optional&&s.chained){o++;continue}return}if(!o)return r}function se(e){return e.normalize().replace(/[[\]]/g,`\\$&`).replace(/%/g,`%25`).replace(/\//g,`%2[Ff]`).replace(/\?/g,`%3[Ff]`).replace(/#/g,`%23`).replace(/[.*+?^${}()|\\]/g,`\\$&`)}function ce({nodes:e,server_loads:t,dictionary:n,matchers:r}){let i=new Set(t);return Object.entries(n).map(([t,[n,i,s]])=>{let{pattern:c,params:l}=re(t),u={id:t,exec:e=>{let t=c.exec(e);if(t)return oe(t,l,r)},errors:[1,...s||[]].map(t=>e[t]),layouts:[0,...i||[]].map(o),leaf:a(n)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function a(t){let n=t<0;return n&&(t=~t),[n,e[t]]}function o(t){return t===void 0?t:[i.has(t),e[t]]}}function le(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function ue(e,t,n=JSON.stringify){let r=n(t);try{sessionStorage[e]=r}catch{}}var S=globalThis.__sveltekit_e7ofbu?.base??`/admin`,de=globalThis.__sveltekit_e7ofbu?.assets??S??``,fe=`1792495117827`,pe=`sveltekit:snapshot`,me=`sveltekit:scroll`,he=`sveltekit:states`,C=`sveltekit:history`,w=`sveltekit:navigation`,T={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},ge=location.origin;function _e(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){let e=document.getElementsByTagName(`base`);t=e.length?e[0].href:document.URL}return new URL(e,t)}function E(){return{x:pageXOffset,y:pageYOffset}}function D(e,t){return e.getAttribute(`data-sveltekit-${t}`)}var ve={...T,"":T.hover};function ye(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function be(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()===`A`&&e.hasAttribute(`href`))return e;e=ye(e)}}function xe(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){let e=location.hash.split(`#`)[1]||`/`;r.hash=`#${e}${r.hash}`}}catch{}let i=e instanceof SVGAElement?e.target.baseVal:e.target,a=!r||!!i||k(r,t,n)||(e.getAttribute(`rel`)||``).split(/\s+/).includes(`external`),o=r?.origin===ge&&e.hasAttribute(`download`);return{url:r,external:a,target:i,download:o}}function O(e){let t=null,n=null,r=null,i=null,a=null,o=null,s=e;for(;s&&s!==document.documentElement;)r===null&&(r=D(s,`preload-code`)),i===null&&(i=D(s,`preload-data`)),t===null&&(t=D(s,`keepfocus`)),n===null&&(n=D(s,`noscroll`)),a===null&&(a=D(s,`reload`)),o===null&&(o=D(s,`replacestate`)),s=ye(s);function c(e){switch(e){case``:case`true`:return!0;case`off`:case`false`:return!1;default:return}}return{preload_code:ve[r??`off`],preload_data:ve[i??`off`],keepfocus:c(t),noscroll:c(n),reload:c(a),replace_state:c(o)}}function Se(e){let t=o(e),n=!0;function r(){n=!0,t.update(e=>e)}function i(e){n=!1,t.set(e)}function a(e){let r;return t.subscribe(t=>{(r===void 0||n&&t!==r)&&e(r=t)})}return{notify:r,set:i,subscribe:a}}var Ce={v:h};function we(){let{set:e,subscribe:t}=o(!1),n;async function r(){clearTimeout(n);try{let t=await fetch(`${de}/_app/version.json`,{headers:{pragma:`no-cache`,"cache-control":`no-cache`}});if(!t.ok)return!1;let r=(await t.json()).version!==fe;return r&&(e(!0),Ce.v(),clearTimeout(n)),r}catch{return!1}}return{subscribe:t,check:r}}function k(e,t,n){return e.origin!==ge||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function Te(e){}var Ee=new Set([`load`,`prerender`,`csr`,`ssr`,`trailingSlash`,`config`]);[...Ee],[...new Set([...Ee])];function De(e){return e.filter(e=>e!=null)}function A(e,t){return e+`/`+t}function Oe(e){return e instanceof c||e instanceof u?e.status:500}function ke(e){return e instanceof u?e.text:`Internal Error`}var j,M,N,Ae=i.toString().includes(`$$`)||/function \w+\(\) \{\}/.test(i.toString()),je=`a:`;Ae?(j={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(je)},M={current:null},N={current:!1}):(j=new class{#e=e({});get data(){return r(this.#e)}set data(e){n(this.#e,e)}#t=e(null);get form(){return r(this.#t)}set form(e){n(this.#t,e)}#n=e(null);get error(){return r(this.#n)}set error(e){n(this.#n,e)}#r=e({});get params(){return r(this.#r)}set params(e){n(this.#r,e)}#i=e({id:null});get route(){return r(this.#i)}set route(e){n(this.#i,e)}#a=e({});get state(){return r(this.#a)}set state(e){n(this.#a,e)}#o=e(-1);get status(){return r(this.#o)}set status(e){n(this.#o,e)}#s=e(new URL(je));get url(){return r(this.#s)}set url(e){n(this.#s,e)}},M=new class{#e=e(null);get current(){return r(this.#e)}set current(e){n(this.#e,e)}},N=new class{#e=e(!1);get current(){return r(this.#e)}set current(e){n(this.#e,e)}},Ce.v=()=>N.current=!0);function Me(e){Object.assign(j,e)}var{onMount:Ne,tick:Pe}=a,Fe=new Set([`icon`,`shortcut icon`,`apple-touch-icon`]),P=null,F=le(`sveltekit:scroll`)??{},I=le(`sveltekit:snapshot`)??{},L={url:Se({}),page:Se({}),navigating:o(null),updated:we()};function Ie(e){F[e]=E()}function Le(e,t){let n=e+1;for(;F[n];)delete F[n],n+=1;for(n=t+1;I[n];)delete I[n],n+=1}function R(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(h)}async function Re(){if(`serviceWorker`in navigator){let e=await navigator.serviceWorker.getRegistration(S||`/`);e&&await e.update()}}var ze,Be,z,B,Ve,V,He={},Ue={},H=[],We=[],U=null;function Ge(){U?.fork?.then(e=>e?.discard()),U=null,Q={element:void 0,href:void 0}}var Ke=new Map,qe=new Set,Je=new Set,W=new Set,G={branch:[],error:null,url:null,nav:null},Ye=!1,Xe=!1,Ze=!0,K=!1,q=!1,Qe=!1,$e=!1,et,J,Y,X,tt=new Set,nt=new Map,rt=new Map;async function it(e,t,n){if(globalThis.__sveltekit_e7ofbu.data){let{q:e={},p:t={},l:n={},f:r={}}=globalThis.__sveltekit_e7ofbu.data;for(let t in e)He[t]=e[t];for(let e in n)He[e]=n[e];for(let e in r)He[e]=r[e];for(let e in t)Ue[e]=t[e]}document.URL!==location.href&&(location.href=location.href),V=e,await e.hooks.init?.(),ze=ce(e),B=document.documentElement,Ve=t,Be=e.nodes[0],z=e.nodes[1],Be(),z(),J=history.state?.[C],Y=history.state?.[w],J||(J=Y=Date.now(),history.replaceState({...history.state,[C]:J,[w]:Y},``));let r=F[J];function i(){r&&(history.scrollRestoration=`manual`,scrollTo(r.x,r.y))}n?(i(),await Mt(Ve,n)):(await Z({type:`enter`,url:_e(V.hash?Rt(new URL(location.href)):location.href),replace_state:!0}),i()),jt()}function at(){H.length=0,$e=!1}function ot(e){We.some(e=>e?.snapshot)&&(I[e]=We.map(e=>e?.snapshot?.capture()))}function st(e){I[e]?.forEach((e,t)=>{We[t]?.snapshot?.restore(e)})}function ct(){Ie(J),ue(me,F),ot(Y),ue(pe,I)}async function lt(e,n,r,i){let a,o;n.invalidateAll&&Ge(),await Z({type:`goto`,url:_e(e),keepfocus:n.keepFocus,noscroll:n.noScroll,replace_state:n.replaceState,state:n.state,redirect_count:r,nav_token:i,accept:()=>{if(n.invalidateAll){$e=!0,a=new Set;for(let[e,t]of nt)for(let[n,r]of t)r.resource?.reset(),a.add(A(e,n));o=new Set;for(let[e,t]of rt)for(let n of t.keys())o.add(A(e,n))}n.invalidate&&n.invalidate.forEach(At)}}),n.invalidateAll&&t().then(t).then(()=>{for(let[e,t]of nt)for(let[n,{resource:r}]of t)a?.has(A(e,n))&&r.start();for(let[e,t]of rt)for(let[n,{resource:r}]of t)o?.has(A(e,n))&&r.reconnect()})}async function ut(e){if(e.id!==U?.id){Ge();let t={};tt.add(t),U={id:e.id,token:t,promise:bt({...e,preload:t}).then(e=>(tt.delete(t),e.type===`loaded`&&e.state.error&&Ge(),e)),fork:null}}return U.promise}async function dt(e){let t=(await wt(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(e=>e[1]()))}async function ft(e,t,n){let r={params:G.params,route:{id:G.route?.id??null},url:new URL(location.href)};if(G={...e.state,nav:r},Me(e.props.page),et=new V.root({target:t,props:{...e.props,stores:L,components:We},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),n){let e={from:null,to:{...r,scroll:F[J]??E()},willUnload:!1,type:`enter`,complete:Promise.resolve()};W.forEach(t=>t(e))}st(Y),Xe=!0}async function pt({url:e,params:t,branch:n,errors:r,status:i,error:a,route:o,form:s}){let c=`never`;if(S&&(e.pathname===S||e.pathname===S+`/`))c=`always`;else for(let e of n)e?.slash!==void 0&&(c=e.slash);e.pathname=d(e.pathname,c),e.search=e.search;let l={type:`loaded`,state:{url:e,params:t,branch:n,error:a,route:o},props:{constructors:De(n).map(e=>e.node.component),page:Lt(j)}};s!==void 0&&(l.props.form=s);let u={},f=!j,p=0;for(let e=0;et(new URL(e))))return!0;return!1}function _t(e,t){return e?.type===`data`?e:e?.type===`skip`?t??null:null}function vt(e,t){if(!e)return new Set(t.searchParams.keys());let n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(let r of n){let i=e.searchParams.getAll(r),a=t.searchParams.getAll(r);i.every(e=>a.includes(e))&&a.every(e=>i.includes(e))&&n.delete(r)}return n}function yt({error:e,url:t,route:n,params:r}){return{type:`loaded`,state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:Lt(j),constructors:[]}}}async function bt({id:e,invalidating:t,url:n,params:r,route:i,preload:a}){if(U?.id===e)return tt.delete(U.token),U.promise;let{errors:o,layouts:s,leaf:u}=i,d=[...s,u];o.forEach(e=>e?.().catch(h)),d.forEach(e=>e?.[1]().catch(h));let f=G.url?e!==Et(G.url):!1,p=G.route?i.id!==G.route.id:!1,m=vt(G.url,n),g=!1,_=d.map(async(e,t)=>{if(!e)return;let a=G.branch[t];return e[1]===a?.loader&&!gt(g,p,f,m,a.universal?.uses,r)?a:(g=!0,mt({loader:e[1],url:n,params:r,route:i,parent:async()=>{let e={};for(let n=0;nPromise.resolve({}),server_data_node:_t(null)}),{node:await z(),loader:z,universal:null,server:null,data:null}],status:e,error:t,errors:[],route:null})}catch(t){if(t instanceof l){await lt(new URL(t.location,location.href),{},0);return}let a=await V.get_error_template(),o=await $(t,{url:n,params:i,route:r}),s=a({status:e,message:String(o?.message??``).replace(/&/g,`&`).replace(//g,`>`)}),c=new DOMParser().parseFromString(s,`text/html`);throw document.documentElement.replaceChild(document.adoptNode(c.head),document.head),document.documentElement.replaceChild(document.adoptNode(c.body),document.body),t}}async function Ct(e){let t=e.href;if(Ke.has(t))return Ke.get(t);let n;try{let r=(async()=>{let t=await V.hooks.reroute({url:new URL(e),fetch:async(t,n)=>ht(t,n,e).promise})??e;if(typeof t==`string`){let n=new URL(e);V.hash?n.hash=t:n.pathname=t,t=n}return t})();Ke.set(t,r),n=await r}catch{Ke.delete(t);return}return n}async function wt(e,t){if(e&&!k(e,S,V.hash)){let n=await Ct(e);if(!n)return;let r=Tt(n);for(let n of ze){let i=n.exec(r);if(i)return{id:Et(e),invalidating:t,route:n,params:p(i),url:e}}}}function Tt(e){return f(V.hash?e.hash.replace(/^#/,``).replace(/[?#].+/,``):e.pathname.slice(S.length))||`/`}function Et(e){return(V.hash?e.hash.replace(/^#/,``):e.pathname)+e.search}function Dt({url:e,type:t,intent:n,delta:r,event:i,scroll:a}){let o=!1,s=It(G,n,e,t,a??null);r!==void 0&&(s.navigation.delta=r),i!==void 0&&(s.navigation.event=i);let c={...s.navigation,cancel:()=>{o=!0,s.reject(Error(`navigation cancelled`))}};return K||qe.forEach(e=>e(c)),o?null:s}async function Z({type:e,url:n,popped:r,keepfocus:i,noscroll:a,replace_state:o,state:c={},redirect_count:l=0,nav_token:d={},accept:f=h,block:p=h,event:m}){let g=X;X=d;let _=await wt(n,!1),v=e===`enter`?It(G,_,n,e):Dt({url:n,type:e,delta:r?.delta,intent:_,scroll:r?.scroll,event:m});if(!v){p(),X===d&&(X=g);return}let y=J,ee=Y;f(),K=!0,Xe&&v.navigation.type!==`enter`&&L.navigating.set(M.current=v.navigation);let b=_&&await bt(_);if(!b){if(k(n,S,V.hash))return await R(n,o);b=await Ot(n,{id:null},await $(new u(404,`Not Found`,`Not found: ${n.pathname}`),{url:n,params:{},route:{id:null}}),404,o)}if(n=_?.url||n,X!==d){v.reject(Error(`navigation aborted`));return}if(!b)return;if(b.type===`redirect`){if(l<20){await Z({type:e,url:new URL(b.location,n),popped:r,keepfocus:i,noscroll:a,replace_state:o,state:c,redirect_count:l+1,nav_token:d}),v.fulfil(void 0);return}if(b=await St({status:500,error:await $(Error(`Redirect loop`),{url:n,params:{},route:{id:null}}),url:n,route:{id:null}}),!b)return}else if(b.props.page.status>=400&&await L.updated.check())return await Re(),await R(n,o);if(at(),Ie(y),ot(ee),b.props.page.url.pathname!==n.pathname&&(n.pathname=b.props.page.url.pathname),c=r?r.state:c,!r){let e=+!o,t={[C]:J+=e,[w]:Y+=e,[he]:c};(o?history.replaceState:history.pushState).call(history,t,``,n),o||Le(J,Y)}let x=_&&U?.id===_.id?U.fork:null;U?.fork&&!x?Ge():(U=null,Q={element:void 0,href:void 0}),b.props.page.state=c;let te;if(Xe){let e=(await Promise.all(Array.from(Je,e=>e(v.navigation)))).filter(e=>typeof e==`function`);if(e.length>0){function t(){e.forEach(e=>{W.delete(e)})}e.push(t),e.forEach(e=>{W.add(e)})}let t=v.navigation.to;G={...b.state,nav:{params:t.params,route:t.route,url:t.url}},b.props.page&&(b.props.page.url=n),!i&&document.activeElement instanceof HTMLElement&&document.activeElement!==document.body&&document.activeElement.blur();let r=x&&await x;r?te=r.commit():(P=null,et.$set(b.props),P&&Object.assign(b.props.page,P),Me(b.props.page),te=s?.()),Qe=!0}else await ft(b,Ve,!1);let{activeElement:ne}=document;if(await te,await t(),await t(),X!==d){v.reject(Error(`navigation aborted`));return}b.props.page&&P&&Object.assign(b.props.page,P);let re=null;if(Ze){let e=r?r.scroll:a?E():null;e?scrollTo(e.x,e.y):(re=n.hash&&document.getElementById(zt(n)))?re.scrollIntoView():scrollTo(0,0)}let ie=document.activeElement!==ne&&document.activeElement!==document.body;!i&&!ie&&Ft(n,!re),Ze=!0,K=!1,v.fulfil(void 0),v.navigation.to&&(v.navigation.to.scroll=E()),W.forEach(e=>e(v.navigation)),e===`popstate`&&st(Y),L.navigating.set(M.current=null)}async function Ot(e,t,n,r,i){return e.origin===ge&&e.pathname===location.pathname&&!Ye?await St({status:r,error:n,url:e,route:t}):await R(e,i)}var Q={element:void 0,href:void 0};function kt(){let e,t;B.addEventListener(`mousemove`,t=>{let n=t.target;clearTimeout(e),e=setTimeout(()=>{i(n,T.hover)},20)});function n(e){e.defaultPrevented||i(e.composedPath()[0],T.tap)}B.addEventListener(`mousedown`,n),B.addEventListener(`touchstart`,n,{passive:!0});let r=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&(dt(new URL(t.target.href)),r.unobserve(t.target))},{threshold:0});async function i(e,n){let r=be(e,B),i=r===Q.element&&r?.href===Q.href&&n>=t;if(!r||i)return;let{url:a,external:o,download:s}=xe(r,S,V.hash);if(o||s)return;let c=O(r),l=a&&Et(G.url)===Et(a);if(!(c.reload||l))if(n<=c.preload_data){Q={element:r,href:r.href},t=T.tap;let e=await wt(a,!1);if(!e)return;ut(e)}else n<=c.preload_code&&(Q={element:r,href:r.href},t=n,dt(a))}function a(){r.disconnect();for(let e of B.querySelectorAll(`a`)){let{url:t,external:n,download:i}=xe(e,S,V.hash);if(n||i)continue;let a=O(e);a.reload||(a.preload_code===T.viewport&&r.observe(e),a.preload_code===T.eager&&dt(t))}}W.add(a),a()}function $(e,t){if(e instanceof c)return e.body;let n=Oe(e),r=ke(e);return V.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function At(e){if(typeof e==`function`)H.push(e);else{let{href:t}=new URL(e,location.href);H.push(e=>e.href===t)}}function jt(){history.scrollRestoration=`manual`,addEventListener(`beforeunload`,e=>{let t=!1;if(ct(),!K){let e=It(G,void 0,null,`leave`),n={...e.navigation,cancel:()=>{t=!0,e.reject(Error(`navigation cancelled`))}};qe.forEach(e=>e(n))}t?(e.preventDefault(),e.returnValue=``):history.scrollRestoration=`auto`}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&ct()}),navigator.connection?.saveData||kt(),B.addEventListener(`click`,async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;let n=be(t.composedPath()[0],B);if(!n)return;let{url:r,external:i,target:a,download:o}=xe(n,S,V.hash);if(!r)return;if(a===`_parent`||a===`_top`){if(window.parent!==window)return}else if(a&&a!==`_self`)return;let s=O(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&r.protocol!==`https:`&&r.protocol!==`http:`||o)return;let[c,l]=(V.hash?r.hash.replace(/^#/,``):r.href).split(`#`),u=c===m(location);if(i||s.reload&&(!u||!l)){Dt({url:r,type:`link`,event:t})?K=!0:t.preventDefault();return}if(l!==void 0&&u){let[,i]=G.url.href.split(`#`);if(i===l){if(t.preventDefault(),l===``||l===`top`&&n.ownerDocument.getElementById(`top`)===null)scrollTo({top:0});else{let e=n.ownerDocument.getElementById(decodeURIComponent(l));e&&(e.scrollIntoView(),e.focus())}return}if(q=!0,Ie(J),e(r),!s.replace_state)return;q=!1}t.preventDefault(),await new Promise(e=>{requestAnimationFrame(()=>{setTimeout(e,0)}),setTimeout(e,100)}),await Z({type:`link`,url:r,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??r.href===location.href,event:t})}),B.addEventListener(`submit`,e=>{if(e.defaultPrevented)return;let t=HTMLFormElement.prototype.cloneNode.call(e.target),n=e.submitter;if((n?.formTarget||t.target)===`_blank`||(n?.formMethod||t.method)!==`get`)return;let r=new URL(n?.hasAttribute(`formaction`)&&n?.formAction||t.action);if(k(r,S,!1))return;let i=e.target,a=O(i);if(a.reload)return;e.preventDefault(),e.stopPropagation();let o=new FormData(i,n);r.search=new URLSearchParams(o).toString(),Z({type:`form`,url:r,keepfocus:a.keepfocus,noscroll:a.noscroll,replace_state:a.replace_state??r.href===location.href,event:e})}),addEventListener(`popstate`,async t=>{if(!Pt)if(t.state?.[`sveltekit:history`]){let n=t.state[C];if(X={},n===J)return;let r=F[n],i=t.state[`sveltekit:states`]??{},a=new URL(t.state[`sveltekit:pageurl`]??location.href),o=t.state[w],s=G.url?m(location)===m(G.url):!1;if(o===Y&&(Qe||s)){i!==j.state&&(j.state=i),e(a),F[J]=E(),r&&scrollTo(r.x,r.y),J=n;return}let c=n-J;await Z({type:`popstate`,url:a,popped:{state:i,scroll:r,delta:c},accept:()=>{J=n,Y=o},block:()=>{history.go(-c)},nav_token:X,event:t})}else q||(e(new URL(location.href)),V.hash&&location.reload())}),addEventListener(`hashchange`,()=>{q&&(q=!1,history.replaceState({...history.state,[C]:++J,[w]:Y},``,location.href))});for(let e of document.querySelectorAll(`link`))Fe.has(e.rel)&&(e.href=e.href);addEventListener(`pageshow`,e=>{e.persisted&&L.navigating.set(M.current=null)});function e(e){G.url=j.url=e,L.page.set(Lt(j)),L.page.notify()}}async function Mt(e,{status:t=200,error:n,node_ids:r,params:i,route:a,server_route:o,data:s,form:c}){Ye=!0;let u=new URL(location.href),d;({params:i={},route:a={id:null}}=await wt(u,!1)||{}),d=ze.find(({id:e})=>e===a.id);let f,p=!0;try{let e=r.map(async(t,n)=>{let r=s[n];return r?.uses&&(r.uses=Nt(r.uses)),mt({loader:V.nodes[t],url:u,params:i,route:a,parent:async()=>{let t={};for(let r=0;r{let a=history.state;Pt=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(a,``,e),t&&scrollTo(r,i),Pt=!1})}else{let e=document.body,t=e.getAttribute(`tabindex`);e.tabIndex=-1,e.focus({preventScroll:!0,focusVisible:!1}),t===null?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,t)}let r=getSelection();if(r&&r.type!==`None`){let e=[];for(let t=0;t{if(r.rangeCount===e.length){for(let t=0;t{a=e,o=t});return s.catch(h),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:E()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:i},willUnload:!t,type:r,complete:s},fulfil:a,reject:o}}function Lt(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function Rt(e){let t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function zt(e){let t;if(V.hash){let[,,n]=e.hash.split(`#`,3);t=n??``}else t=e.hash.slice(1);return decodeURIComponent(t)}export{N as a,j as i,L as n,Te as o,M as r,it as t}; \ No newline at end of file diff --git a/dash/build/_app/immutable/entry/app.BWKPuG2V.js b/dash/build/_app/immutable/entry/app.CjREIEJ0.js similarity index 93% rename from dash/build/_app/immutable/entry/app.BWKPuG2V.js rename to dash/build/_app/immutable/entry/app.CjREIEJ0.js index 862af36..425f6ec 100644 --- a/dash/build/_app/immutable/entry/app.BWKPuG2V.js +++ b/dash/build/_app/immutable/entry/app.CjREIEJ0.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.C3y93M_j.js","../chunks/QjDztciA.js","../chunks/xihTtKlq.js","../assets/0.Bt_6ISeQ.css","../nodes/1.CalUMzCd.js","../chunks/C-klzZBB.js","../nodes/2.Cc36NNm7.js","../assets/2.Fm2AbXXC.css"])))=>i.map(i=>d[i]); -import{$ as e,A as t,B as n,C as r,G as i,J as a,M as o,O as s,P as c,Q as l,R as u,U as d,W as f,X as p,Y as m,ct as h,et as g,i as _,it as v,j as y,k as b,n as x,r as S,rt as C,s as w}from"../chunks/QjDztciA.js";import"../chunks/xihTtKlq.js";var T=`modulepreload`,E=function(e,t){return new URL(e,t).href},D={},O=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=E(t,n),t=s(t),t in D)return;D[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:T,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},k={},A=o(`
`),j=o(` `,1);function M(o,S){v(S,!0);let T=_(S,`components`,23,()=>[]),E=_(S,`data_0`,3,null),D=_(S,`data_1`,3,null);i(()=>S.stores.page.set(S.page)),f(()=>{S.stores,S.page,S.constructors,T(),S.form,E(),D(),S.stores.page.notify()});let O=e(!1),k=e(!1),M=e(null);x(()=>{let e=S.stores.page.subscribe(()=>{u(O)&&(l(k,!0),n().then(()=>{l(M,document.title||`untitled page`,!0)}))});return l(O,!0),e});let N=g(()=>S.constructors[1]);var P=j(),F=m(P),I=e=>{let n=g(()=>S.constructors[0]);var i=y(),a=m(i);r(a,()=>u(n),(e,n)=>{w(n(e,{get data(){return E()},get form(){return S.form},get params(){return S.page.params},children:(e,n)=>{var i=y(),a=m(i);r(a,()=>u(N),(e,t)=>{w(t(e,{get data(){return D()},get form(){return S.form},get params(){return S.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),t(e,i)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),t(e,i)},L=e=>{let n=g(()=>S.constructors[0]);var i=y(),a=m(i);r(a,()=>u(n),(e,t)=>{w(t(e,{get data(){return E()},get form(){return S.form},get params(){return S.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),t(e,i)};s(F,e=>{S.constructors[1]?e(I):e(L,-1)});var R=p(F,2),z=e=>{var n=A(),r=a(n),i=e=>{var n=c();d(()=>b(n,u(M))),t(e,n)};s(r,e=>{u(k)&&e(i)}),h(n),t(e,n)};s(R,e=>{u(O)&&e(z)}),t(o,P),C()}var N=S(M),P=[()=>O(()=>import(`../nodes/0.C3y93M_j.js`),__vite__mapDeps([0,1,2,3]),import.meta.url),()=>O(()=>import(`../nodes/1.CalUMzCd.js`),__vite__mapDeps([4,1,5,2]),import.meta.url),()=>O(()=>import(`../nodes/2.Cc36NNm7.js`),__vite__mapDeps([6,1,2,7]),import.meta.url)],F=[],I={"/":[2]},L={handleError:(({error:e})=>{console.error(e)}),reroute:(()=>{}),transport:{}},R=Object.fromEntries(Object.entries(L.transport).map(([e,t])=>[e,t.decode])),z=Object.fromEntries(Object.entries(L.transport).map(([e,t])=>[e,t.encode])),B=!1,V=(e,t)=>R[e](t),H=()=>O(()=>import(`../chunks/Bjy-W4x2.js`).then(e=>e.default),[],import.meta.url);export{V as decode,R as decoders,I as dictionary,z as encoders,H as get_error_template,B as hash,L as hooks,k as matchers,P as nodes,N as root,F as server_loads}; \ No newline at end of file +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.C3y93M_j.js","../chunks/QjDztciA.js","../chunks/xihTtKlq.js","../assets/0.Bt_6ISeQ.css","../nodes/1.Br7vugXt.js","../chunks/BJ6K4aSM.js","../nodes/2.C3KY4sIO.js","../assets/2.Fm2AbXXC.css"])))=>i.map(i=>d[i]); +import{$ as e,A as t,B as n,C as r,G as i,J as a,M as o,O as s,P as c,Q as l,R as u,U as d,W as f,X as p,Y as m,ct as h,et as g,i as _,it as v,j as y,k as b,n as x,r as S,rt as C,s as w}from"../chunks/QjDztciA.js";import"../chunks/xihTtKlq.js";var T=`modulepreload`,E=function(e,t){return new URL(e,t).href},D={},O=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=E(t,n),t=s(t),t in D)return;D[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:T,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},k={},A=o(`
`),j=o(` `,1);function M(o,S){v(S,!0);let T=_(S,`components`,23,()=>[]),E=_(S,`data_0`,3,null),D=_(S,`data_1`,3,null);i(()=>S.stores.page.set(S.page)),f(()=>{S.stores,S.page,S.constructors,T(),S.form,E(),D(),S.stores.page.notify()});let O=e(!1),k=e(!1),M=e(null);x(()=>{let e=S.stores.page.subscribe(()=>{u(O)&&(l(k,!0),n().then(()=>{l(M,document.title||`untitled page`,!0)}))});return l(O,!0),e});let N=g(()=>S.constructors[1]);var P=j(),F=m(P),I=e=>{let n=g(()=>S.constructors[0]);var i=y(),a=m(i);r(a,()=>u(n),(e,n)=>{w(n(e,{get data(){return E()},get form(){return S.form},get params(){return S.page.params},children:(e,n)=>{var i=y(),a=m(i);r(a,()=>u(N),(e,t)=>{w(t(e,{get data(){return D()},get form(){return S.form},get params(){return S.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),t(e,i)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),t(e,i)},L=e=>{let n=g(()=>S.constructors[0]);var i=y(),a=m(i);r(a,()=>u(n),(e,t)=>{w(t(e,{get data(){return E()},get form(){return S.form},get params(){return S.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),t(e,i)};s(F,e=>{S.constructors[1]?e(I):e(L,-1)});var R=p(F,2),z=e=>{var n=A(),r=a(n),i=e=>{var n=c();d(()=>b(n,u(M))),t(e,n)};s(r,e=>{u(k)&&e(i)}),h(n),t(e,n)};s(R,e=>{u(O)&&e(z)}),t(o,P),C()}var N=S(M),P=[()=>O(()=>import(`../nodes/0.C3y93M_j.js`),__vite__mapDeps([0,1,2,3]),import.meta.url),()=>O(()=>import(`../nodes/1.Br7vugXt.js`),__vite__mapDeps([4,1,5,2]),import.meta.url),()=>O(()=>import(`../nodes/2.C3KY4sIO.js`),__vite__mapDeps([6,1,2,7]),import.meta.url)],F=[],I={"/":[2]},L={handleError:(({error:e})=>{console.error(e)}),reroute:(()=>{}),transport:{}},R=Object.fromEntries(Object.entries(L.transport).map(([e,t])=>[e,t.decode])),z=Object.fromEntries(Object.entries(L.transport).map(([e,t])=>[e,t.encode])),B=!1,V=(e,t)=>R[e](t),H=()=>O(()=>import(`../chunks/Bjy-W4x2.js`).then(e=>e.default),[],import.meta.url);export{V as decode,R as decoders,I as dictionary,z as encoders,H as get_error_template,B as hash,L as hooks,k as matchers,P as nodes,N as root,F as server_loads}; \ No newline at end of file diff --git a/dash/build/_app/immutable/entry/start.4Ww2Kv0E.js b/dash/build/_app/immutable/entry/start.4Ww2Kv0E.js new file mode 100644 index 0000000..d807688 --- /dev/null +++ b/dash/build/_app/immutable/entry/start.4Ww2Kv0E.js @@ -0,0 +1 @@ +import{o as e,t}from"../chunks/BJ6K4aSM.js";export{e as load_css,t as start}; \ No newline at end of file diff --git a/dash/build/_app/immutable/entry/start.DJUNS02W.js b/dash/build/_app/immutable/entry/start.DJUNS02W.js deleted file mode 100644 index cc8dfa7..0000000 --- a/dash/build/_app/immutable/entry/start.DJUNS02W.js +++ /dev/null @@ -1 +0,0 @@ -import{o as e,t}from"../chunks/C-klzZBB.js";export{e as load_css,t as start}; \ No newline at end of file diff --git a/dash/build/_app/immutable/nodes/1.CalUMzCd.js b/dash/build/_app/immutable/nodes/1.Br7vugXt.js similarity index 89% rename from dash/build/_app/immutable/nodes/1.CalUMzCd.js rename to dash/build/_app/immutable/nodes/1.Br7vugXt.js index a54f2bf..3d5049c 100644 --- a/dash/build/_app/immutable/nodes/1.CalUMzCd.js +++ b/dash/build/_app/immutable/nodes/1.Br7vugXt.js @@ -1 +1 @@ -import{A as e,J as t,M as n,U as r,X as i,Y as a,ct as o,it as s,k as c,rt as l}from"../chunks/QjDztciA.js";import{i as u,n as d}from"../chunks/C-klzZBB.js";import"../chunks/xihTtKlq.js";var f={get data(){return u.data},get error(){return u.error},get form(){return u.form},get params(){return u.params},get route(){return u.route},get state(){return u.state},get status(){return u.status},get url(){return u.url}};d.updated.check;var p=f,m=n(`

`,1);function h(n,u){s(u,!0);var d=m(),f=a(d),h=t(f,!0);o(f);var g=i(f,2),_=t(g,!0);o(g),r(()=>{c(h,p.status),c(_,p.error?.message)}),e(n,d),l()}export{h as component}; \ No newline at end of file +import{A as e,J as t,M as n,U as r,X as i,Y as a,ct as o,it as s,k as c,rt as l}from"../chunks/QjDztciA.js";import{i as u,n as d}from"../chunks/BJ6K4aSM.js";import"../chunks/xihTtKlq.js";var f={get data(){return u.data},get error(){return u.error},get form(){return u.form},get params(){return u.params},get route(){return u.route},get state(){return u.state},get status(){return u.status},get url(){return u.url}};d.updated.check;var p=f,m=n(`

`,1);function h(n,u){s(u,!0);var d=m(),f=a(d),h=t(f,!0);o(f);var g=i(f,2),_=t(g,!0);o(g),r(()=>{c(h,p.status),c(_,p.error?.message)}),e(n,d),l()}export{h as component}; \ No newline at end of file diff --git a/dash/build/_app/immutable/nodes/2.C3KY4sIO.js b/dash/build/_app/immutable/nodes/2.C3KY4sIO.js new file mode 100644 index 0000000..4f290a2 --- /dev/null +++ b/dash/build/_app/immutable/nodes/2.C3KY4sIO.js @@ -0,0 +1 @@ +import{$ as e,A as t,B as n,C as r,D as i,E as a,F as o,H as s,I as c,J as l,K as u,L as d,M as f,N as p,O as m,Q as h,R as g,S as _,T as v,U as y,V as b,W as x,X as S,Y as C,Z as w,_ as T,a as E,b as D,c as O,ct as k,d as A,et as j,f as M,g as N,h as P,i as F,it as I,j as L,k as R,l as z,lt as B,m as V,n as H,nt as U,o as W,ot as G,p as ee,q as K,rt as q,s as J,st as te,u as ne,ut as re,v as ie,w as ae,x as oe,y as Y}from"../chunks/QjDztciA.js";import"../chunks/xihTtKlq.js";var se={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`},ce=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},le=Symbol(`lucide-context`),ue=()=>U(le),de=new Set([`$$slots`,`$$events`,`$$legacy`,`name`,`color`,`size`,`strokeWidth`,`absoluteStrokeWidth`,`iconNode`,`children`]),fe=p(``);function X(e,n){I(n,!0);let r=ue()??{},i=F(n,`color`,19,()=>r.color??`currentColor`),o=F(n,`size`,19,()=>r.size??24),s=F(n,`strokeWidth`,19,()=>r.strokeWidth??2),c=F(n,`absoluteStrokeWidth`,19,()=>r.absoluteStrokeWidth??!1),u=F(n,`iconNode`,19,()=>[]),d=E(n,de),f=j(()=>c()?Number(s())*24/Number(o()):s());var p=fe();ne(p,e=>({...se,...e,...d,width:o(),height:o(),stroke:i(),"stroke-width":g(f),class:[`lucide-icon lucide`,r.class,n.name&&`lucide-${n.name}`,n.class]}),[()=>!n.children&&!ce(d)&&{"aria-hidden":`true`}]);var m=l(p);v(m,17,u,a,(e,n)=>{var r=j(()=>re(g(n),2));let i=()=>g(r)[0],a=()=>g(r)[1];var o=L(),s=C(o);_(s,i,!0,(e,t)=>{ne(e,()=>({...a()}))}),t(e,o)});var h=S(m);ae(h,()=>n.children??B),k(p),t(e,p),q()}var pe=new Set([`$$slots`,`$$events`,`$$legacy`]);function me(e,t){let n=E(t,pe),r=[[`path`,{d:`m12 14 4-4`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`}]];X(e,W({name:`gauge`},()=>n,{get iconNode(){return r}}))}var he=new Set([`$$slots`,`$$events`,`$$legacy`]);function ge(e,t){let n=E(t,he),r=[[`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`}]];X(e,W({name:`layout-dashboard`},()=>n,{get iconNode(){return r}}))}var _e=new Set([`$$slots`,`$$events`,`$$legacy`]);function ve(e,t){let n=E(t,_e),r=[[`path`,{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`}],[`path`,{d:`M16 3.128a4 4 0 0 1 0 7.744`}],[`path`,{d:`M22 21v-2a4 4 0 0 0-3-3.87`}],[`circle`,{cx:`9`,cy:`7`,r:`4`}]];X(e,W({name:`users`},()=>n,{get iconNode(){return r}}))}var ye=new Set([`$$slots`,`$$events`,`$$legacy`]);function be(e,t){let n=E(t,ye),r=[[`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`}]];X(e,W({name:`key-round`},()=>n,{get iconNode(){return r}}))}var xe=new Set([`$$slots`,`$$events`,`$$legacy`]);function Se(e,t){let n=E(t,xe),r=[[`path`,{d:`M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z`}],[`path`,{d:`m7 16.5-4.74-2.85`}],[`path`,{d:`m7 16.5 5-3`}],[`path`,{d:`M7 16.5v5.17`}],[`path`,{d:`M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z`}],[`path`,{d:`m17 16.5-5-3`}],[`path`,{d:`m17 16.5 4.74-2.85`}],[`path`,{d:`M17 16.5v5.17`}],[`path`,{d:`M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z`}],[`path`,{d:`M12 8 7.26 5.15`}],[`path`,{d:`m12 8 4.74-2.85`}],[`path`,{d:`M12 13.5V8`}]];X(e,W({name:`boxes`},()=>n,{get iconNode(){return r}}))}var Ce=new Set([`$$slots`,`$$events`,`$$legacy`]);function we(e,t){let n=E(t,Ce),r=[[`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`}]];X(e,W({name:`activity`},()=>n,{get iconNode(){return r}}))}var Te=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ee(e,t){let n=E(t,Te),r=[[`path`,{d:`M14 17H5`}],[`path`,{d:`M19 7h-9`}],[`circle`,{cx:`17`,cy:`17`,r:`3`}],[`circle`,{cx:`7`,cy:`7`,r:`3`}]];X(e,W({name:`settings-2`},()=>n,{get iconNode(){return r}}))}var De=new Set([`$$slots`,`$$events`,`$$legacy`]);function Oe(e,t){let n=E(t,De),r=[[`path`,{d:`M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5`}],[`path`,{d:`M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09`}],[`path`,{d:`M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z`}],[`path`,{d:`M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05`}]];X(e,W({name:`rocket`},()=>n,{get iconNode(){return r}}))}var ke=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ae(e,t){let n=E(t,ke),r=[[`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`}]];X(e,W({name:`refresh-cw`},()=>n,{get iconNode(){return r}}))}var je=new Set([`$$slots`,`$$events`,`$$legacy`]);function Me(e,t){let n=E(t,je),r=[[`path`,{d:`M4 5h16`}],[`path`,{d:`M4 12h16`}],[`path`,{d:`M4 19h16`}]];X(e,W({name:`menu`},()=>n,{get iconNode(){return r}}))}var Ne=new Set([`$$slots`,`$$events`,`$$legacy`]);function Pe(e,t){let n=E(t,Ne),r=[[`path`,{d:`M18 6 6 18`}],[`path`,{d:`m6 6 12 12`}]];X(e,W({name:`x`},()=>n,{get iconNode(){return r}}))}var Fe=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ie(e,t){let n=E(t,Fe),r=[[`path`,{d:`m9 18 6-6-6-6`}]];X(e,W({name:`chevron-right`},()=>n,{get iconNode(){return r}}))}var Le=new Set([`$$slots`,`$$events`,`$$legacy`]);function Re(e,t){let n=E(t,Le),r=[[`path`,{d:`m21 21-4.34-4.34`}],[`circle`,{cx:`11`,cy:`11`,r:`8`}]];X(e,W({name:`search`},()=>n,{get iconNode(){return r}}))}var ze=new Set([`$$slots`,`$$events`,`$$legacy`]);function Be(e,t){let n=E(t,ze),r=[[`path`,{d:`M5 12h14`}],[`path`,{d:`M12 5v14`}]];X(e,W({name:`plus`},()=>n,{get iconNode(){return r}}))}var Ve=new Set([`$$slots`,`$$events`,`$$legacy`]);function He(e,t){let n=E(t,Ve),r=[[`path`,{d:`M15 3h6v6`}],[`path`,{d:`M10 14 21 3`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`}]];X(e,W({name:`external-link`},()=>n,{get iconNode(){return r}}))}var Ue=new Set([`$$slots`,`$$events`,`$$legacy`]);function We(e,t){let n=E(t,Ue),r=[[`path`,{d:`M10 5H3`}],[`path`,{d:`M12 19H3`}],[`path`,{d:`M14 3v4`}],[`path`,{d:`M16 17v4`}],[`path`,{d:`M21 12h-9`}],[`path`,{d:`M21 19h-5`}],[`path`,{d:`M21 5h-7`}],[`path`,{d:`M8 10v4`}],[`path`,{d:`M8 12H3`}]];X(e,W({name:`sliders-horizontal`},()=>n,{get iconNode(){return r}}))}var Ge=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ke(e,t){let n=E(t,Ge),r=[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`}]];X(e,W({name:`star`},()=>n,{get iconNode(){return r}}))}var qe=new Set([`$$slots`,`$$events`,`$$legacy`]);function Je(e,t){let n=E(t,qe),r=[[`rect`,{x:`16`,y:`16`,width:`6`,height:`6`,rx:`1`}],[`rect`,{x:`2`,y:`16`,width:`6`,height:`6`,rx:`1`}],[`rect`,{x:`9`,y:`2`,width:`6`,height:`6`,rx:`1`}],[`path`,{d:`M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3`}],[`path`,{d:`M12 12V8`}]];X(e,W({name:`network`},()=>n,{get iconNode(){return r}}))}var Ye=`data:image/svg+xml,%3csvg%20height='24'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eClaude%3c/title%3e%3cpath%20d='M4.709%2015.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0%2011.784l.055-.352.48-.321.686.06%201.52.103%202.278.158%201.652.097%202.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686%201.908%201.476%202.491%201.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97%202.97%200%2001-.104-.729L6.283.134%206.696%200l.996.134.42.364.62%201.414%201.002%202.229%201.555%203.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286%201.851-.559%202.903-.364%201.942h.212l.243-.242.985-1.306%201.652-2.064.73-.82.85-.904.547-.431h1.033l.76%201.129-.34%201.166-1.064%201.347-.881%201.142-1.264%201.7-.79%201.36.073.11.188-.02%202.856-.606%201.543-.28%201.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061%201.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093%201.068%202.006%201.81%202.509%202.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649%202.345%203.521.122%201.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674%207.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434%201.967-2.18%202.945-1.726%201.845-.414.164-.717-.37.067-.662.401-.589%202.388-3.036%201.44-1.882.93-1.086-.006-.158h-.055L4.132%2018.56l-1.13.146-.487-.456.061-.746.231-.243%201.908-1.312-.006.006z'%20fill='%23D97757'%20fill-rule='nonzero'%3e%3c/path%3e%3c/svg%3e`,Xe=`data:image/svg+xml,%3csvg%20fill='%23ffffff'%20fill-rule='evenodd'%20height='24'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eOpenAI%3c/title%3e%3cpath%20d='M9.205%208.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357%201.356-.523%202.117-.523%202.854%200%204.662%202.212%204.662%204.566%200%20.167%200%20.357-.024.547l-4.71-2.759a.797.797%200%2000-.856%200l-5.97%203.473zm10.609%208.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473%201.95-1.118a.433.433%200%2001.476%200l4.543%202.617c1.309.76%202.189%202.378%202.189%203.948%200%201.808-1.07%203.473-2.76%204.163zM7.802%2012.703l-1.95-1.142c-.167-.095-.239-.238-.239-.428V5.899c0-2.545%201.95-4.472%204.591-4.472%201%200%201.927.333%202.712.928L8.23%205.067c-.285.166-.428.404-.428.737v6.898zM12%2015.128l-2.795-1.57v-3.33L12%208.658l2.795%201.57v3.33L12%2015.128zm1.796%207.23c-1%200-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974%201.142c.167.095.238.238.238.428v5.233c0%202.545-1.974%204.472-4.614%204.472zm-5.637-5.303l-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.482%204.482%200%20014.21%206.327v5.423c0%20.333.143.571.428.738l5.947%203.449-1.95%201.118a.432.432%200%2001-.476%200zm-.262%203.9c-2.688%200-4.662-2.021-4.662-4.519%200-.19.024-.38.047-.57l4.686%202.71c.286.167.571.167.856%200l5.97-3.448v2.26c0%20.19-.07.333-.237.428l-4.543%202.616c-.619.357-1.356.523-2.117.523zm5.899%202.83a5.947%205.947%200%20005.827-4.756C22.287%2018.339%2024%2015.84%2024%2013.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498%200-3.401-2.759-5.947-5.946-5.947-.642%200-1.26.095-1.88.31A5.962%205.962%200%200010.205%200a5.947%205.947%200%2000-5.827%204.757C1.713%205.447%200%207.945%200%2010.49c0%201.666.713%203.283%201.998%204.448-.119.5-.19%201-.19%201.499%200%203.401%202.759%205.946%205.946%205.946.642%200%201.26-.095%201.88-.309a5.96%205.96%200%20004.162%201.713z'%3e%3c/path%3e%3c/svg%3e`,Ze=`data:image/svg+xml,%3csvg%20fill='%23ffffff'%20fill-rule='evenodd'%20height='24'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eOpenAI%3c/title%3e%3cpath%20d='M9.205%208.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357%201.356-.523%202.117-.523%202.854%200%204.662%202.212%204.662%204.566%200%20.167%200%20.357-.024.547l-4.71-2.759a.797.797%200%2000-.856%200l-5.97%203.473zm10.609%208.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473%201.95-1.118a.433.433%200%2001.476%200l4.543%202.617c1.309.76%202.189%202.378%202.189%203.948%200%201.808-1.07%203.473-2.76%204.163zM7.802%2012.703l-1.95-1.142c-.167-.095-.239-.238-.239-.428V5.899c0-2.545%201.95-4.472%204.591-4.472%201%200%201.927.333%202.712.928L8.23%205.067c-.285.166-.428.404-.428.737v6.898zM12%2015.128l-2.795-1.57v-3.33L12%208.658l2.795%201.57v3.33L12%2015.128zm1.796%207.23c-1%200-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974%201.142c.167.095.238.238.238.428v5.233c0%202.545-1.974%204.472-4.614%204.472zm-5.637-5.303l-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.482%204.482%200%20014.21%206.327v5.423c0%20.333.143.571.428.738l5.947%203.449-1.95%201.118a.432.432%200%2001-.476%200zm-.262%203.9c-2.688%200-4.662-2.021-4.662-4.519%200-.19.024-.38.047-.57l4.686%202.71c.286.167.571.167.856%200l5.97-3.448v2.26c0%20.19-.07.333-.237.428l-4.543%202.616c-.619.357-1.356.523-2.117.523zm5.899%202.83a5.947%205.947%200%20005.827-4.756C22.287%2018.339%2024%2015.84%2024%2013.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498%200-3.401-2.759-5.947-5.946-5.947-.642%200-1.26.095-1.88.31A5.962%205.962%200%200010.205%200a5.947%205.947%200%2000-5.827%204.757C1.713%205.447%200%207.945%200%2010.49c0%201.666.713%203.283%201.998%204.448-.119.5-.19%201-.19%201.499%200%203.401%202.759%205.946%205.946%205.946.642%200%201.26-.095%201.88-.309a5.96%205.96%200%20004.162%201.713z'%3e%3c/path%3e%3c/svg%3e`,Qe=`data:image/svg+xml,%3csvg%20width='240'%20height='300'%20viewBox='0%200%20240%20300'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_1401_86283)'%3e%3cmask%20id='mask0_1401_86283'%20style='mask-type:luminance'%20maskUnits='userSpaceOnUse'%20x='0'%20y='0'%20width='240'%20height='300'%3e%3cpath%20d='M240%200H0V300H240V0Z'%20fill='white'/%3e%3c/mask%3e%3cg%20mask='url(%23mask0_1401_86283)'%3e%3cpath%20d='M180%20240H60V120H180V240Z'%20fill='%234B4646'/%3e%3cpath%20d='M180%2060H60V240H180V60ZM240%20300H0V0H240V300Z'%20fill='%23F1ECEC'/%3e%3c/g%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_1401_86283'%3e%3crect%20width='240'%20height='300'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e`,$e=`data:image/svg+xml,%3csvg%20fill='%23ffffff'%20fill-rule='evenodd'%20height='24'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eGrok%3c/title%3e%3cpath%20d='M9.27%2015.29l7.978-5.897c.391-.29.95-.177%201.137.272.98%202.369.542%205.215-1.41%207.169-1.951%201.954-4.667%202.382-7.149%201.406l-2.711%201.257c3.889%202.661%208.611%202.003%2011.562-.953%202.341-2.344%203.066-5.539%202.388-8.42l.006.007c-.983-4.232.242-5.924%202.75-9.383.06-.082.12-.164.179-.248l-3.301%203.305v-.01L9.267%2015.292M7.623%2016.723c-2.792-2.67-2.31-6.801.071-9.184%201.761-1.763%204.647-2.483%207.166-1.425l2.705-1.25a7.808%207.808%200%2000-1.829-1A8.975%208.975%200%20005.984%205.83c-2.533%202.536-3.33%206.436-1.962%209.764%201.022%202.487-.653%204.246-2.34%206.022-.599.63-1.199%201.259-1.682%201.925l7.62-6.815'%3e%3c/path%3e%3c/svg%3e`,et=`data:image/svg+xml,%3csvg%20width='180'%20height='180'%20viewBox='0%200%20180%20180'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M144.248%20149.062C151.748%20154.688%20162.998%20150.938%20152.685%20140.625C121.748%20110.625%20128.31%2028.125%2089.8727%2028.125C51.4352%2028.125%2057.9977%20110.625%2027.0602%20140.625C15.8102%20151.875%2027.9977%20154.688%2035.4977%20149.062C64.5602%20129.375%2062.6852%2094.6875%2089.8727%2094.6875C117.06%2094.6875%20115.185%20129.375%20144.248%20149.062Z'%20fill='white'/%3e%3c/svg%3e`,tt=`data:image/svg+xml,%3csvg%20height='24'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eGemini%3c/title%3e%3cpath%20d='M20.616%2010.835a14.147%2014.147%200%2001-4.45-3.001%2014.111%2014.111%200%2001-3.678-6.452.503.503%200%2000-.975%200%2014.134%2014.134%200%2001-3.679%206.452%2014.155%2014.155%200%2001-4.45%203.001c-.65.28-1.318.505-2.002.678a.502.502%200%20000%20.975c.684.172%201.35.397%202.002.677a14.147%2014.147%200%20014.45%203.001%2014.112%2014.112%200%20013.679%206.453.502.502%200%2000.975%200c.172-.685.397-1.351.677-2.003a14.145%2014.145%200%20013.001-4.45%2014.113%2014.113%200%20016.453-3.678.503.503%200%20000-.975%2013.245%2013.245%200%2001-2.003-.678z'%20fill='%233186FF'%3e%3c/path%3e%3cpath%20d='M20.616%2010.835a14.147%2014.147%200%2001-4.45-3.001%2014.111%2014.111%200%2001-3.678-6.452.503.503%200%2000-.975%200%2014.134%2014.134%200%2001-3.679%206.452%2014.155%2014.155%200%2001-4.45%203.001c-.65.28-1.318.505-2.002.678a.502.502%200%20000%20.975c.684.172%201.35.397%202.002.677a14.147%2014.147%200%20014.45%203.001%2014.112%2014.112%200%20013.679%206.453.502.502%200%2000.975%200c.172-.685.397-1.351.677-2.003a14.145%2014.145%200%20013.001-4.45%2014.113%2014.113%200%20016.453-3.678.503.503%200%20000-.975%2013.245%2013.245%200%2001-2.003-.678z'%20fill='url(%23lobe-icons-gemini-0-_R_0_)'%3e%3c/path%3e%3cpath%20d='M20.616%2010.835a14.147%2014.147%200%2001-4.45-3.001%2014.111%2014.111%200%2001-3.678-6.452.503.503%200%2000-.975%200%2014.134%2014.134%200%2001-3.679%206.452%2014.155%2014.155%200%2001-4.45%203.001c-.65.28-1.318.505-2.002.678a.502.502%200%20000%20.975c.684.172%201.35.397%202.002.677a14.147%2014.147%200%20014.45%203.001%2014.112%2014.112%200%20013.679%206.453.502.502%200%2000.975%200c.172-.685.397-1.351.677-2.003a14.145%2014.145%200%20013.001-4.45%2014.113%2014.113%200%20016.453-3.678.503.503%200%20000-.975%2013.245%2013.245%200%2001-2.003-.678z'%20fill='url(%23lobe-icons-gemini-1-_R_0_)'%3e%3c/path%3e%3cpath%20d='M20.616%2010.835a14.147%2014.147%200%2001-4.45-3.001%2014.111%2014.111%200%2001-3.678-6.452.503.503%200%2000-.975%200%2014.134%2014.134%200%2001-3.679%206.452%2014.155%2014.155%200%2001-4.45%203.001c-.65.28-1.318.505-2.002.678a.502.502%200%20000%20.975c.684.172%201.35.397%202.002.677a14.147%2014.147%200%20014.45%203.001%2014.112%2014.112%200%20013.679%206.453.502.502%200%2000.975%200c.172-.685.397-1.351.677-2.003a14.145%2014.145%200%20013.001-4.45%2014.113%2014.113%200%20016.453-3.678.503.503%200%20000-.975%2013.245%2013.245%200%2001-2.003-.678z'%20fill='url(%23lobe-icons-gemini-2-_R_0_)'%3e%3c/path%3e%3cdefs%3e%3clinearGradient%20gradientUnits='userSpaceOnUse'%20id='lobe-icons-gemini-0-_R_0_'%20x1='7'%20x2='11'%20y1='15.5'%20y2='12'%3e%3cstop%20stop-color='%2308B962'%3e%3c/stop%3e%3cstop%20offset='1'%20stop-color='%2308B962'%20stop-opacity='0'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20gradientUnits='userSpaceOnUse'%20id='lobe-icons-gemini-1-_R_0_'%20x1='8'%20x2='11.5'%20y1='5.5'%20y2='11'%3e%3cstop%20stop-color='%23F94543'%3e%3c/stop%3e%3cstop%20offset='1'%20stop-color='%23F94543'%20stop-opacity='0'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20gradientUnits='userSpaceOnUse'%20id='lobe-icons-gemini-2-_R_0_'%20x1='3.5'%20x2='17.5'%20y1='13.5'%20y2='12'%3e%3cstop%20stop-color='%23FABC12'%3e%3c/stop%3e%3cstop%20offset='.46'%20stop-color='%23FABC12'%20stop-opacity='0'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e`,nt=`data:image/svg+xml,%3csvg%20height='24'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eKimi%3c/title%3e%3cpath%20d='M21.846%200a1.923%201.923%200%20110%203.846H20.15a.226.226%200%2001-.227-.226V1.923C19.923.861%2020.784%200%2021.846%200z'%20fill='%231783FF'%3e%3c/path%3e%3cpath%20d='M11.065%2011.199l7.257-7.2c.137-.136.06-.41-.116-.41H14.3a.164.164%200%2000-.117.051l-7.82%207.756c-.122.12-.302.013-.302-.179V3.82c0-.127-.083-.23-.185-.23H3.186c-.103%200-.186.103-.186.23V19.77c0%20.128.083.23.186.23h2.69c.103%200%20.186-.102.186-.23v-3.25c0-.069.025-.135.069-.178l2.424-2.406a.158.158%200%2001.205-.023l6.484%204.772a7.677%207.677%200%20003.453%201.283c.108.012.2-.095.2-.23v-3.06c0-.117-.07-.212-.164-.227a5.028%205.028%200%2001-2.027-.807l-5.613-4.064c-.117-.078-.132-.279-.028-.381z'%20fill='%23fff'%3e%3c/path%3e%3c/svg%3e`,rt=`data:image/svg+xml,%3csvg%20height='24'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eQwen%3c/title%3e%3cpath%20d='M12.604%201.34c.393.69.784%201.382%201.174%202.075a.18.18%200%2000.157.091h5.552c.174%200%20.322.11.446.327l1.454%202.57c.19.337.24.478.024.837-.26.43-.513.864-.76%201.3l-.367.658c-.106.196-.223.28-.04.512l2.652%204.637c.172.301.111.494-.043.77-.437.785-.882%201.564-1.335%202.34-.159.272-.352.375-.68.37-.777-.016-1.552-.01-2.327.016a.099.099%200%2000-.081.05%20575.097%20575.097%200%2001-2.705%204.74c-.169.293-.38.363-.725.364-.997.003-2.002.004-3.017.002a.537.537%200%2001-.465-.271l-1.335-2.323a.09.09%200%2000-.083-.049H4.982c-.285.03-.553-.001-.805-.092l-1.603-2.77a.543.543%200%2001-.002-.54l1.207-2.12a.198.198%200%20000-.197%20550.951%20550.951%200%2001-1.875-3.272l-.79-1.395c-.16-.31-.173-.496.095-.965.465-.813.927-1.625%201.387-2.436.132-.234.304-.334.584-.335a338.3%20338.3%200%20012.589-.001.124.124%200%2000.107-.063l2.806-4.895a.488.488%200%2001.422-.246c.524-.001%201.053%200%201.583-.006L11.704%201c.341-.003.724.032.9.34zm-3.432.403a.06.06%200%2000-.052.03L6.254%206.788a.157.157%200%2001-.135.078H3.253c-.056%200-.07.025-.041.074l5.81%2010.156c.025.042.013.062-.034.063l-2.795.015a.218.218%200%2000-.2.116l-1.32%202.31c-.044.078-.021.118.068.118l5.716.008c.046%200%20.08.02.104.061l1.403%202.454c.046.081.092.082.139%200l5.006-8.76.783-1.382a.055.055%200%2001.096%200l1.424%202.53a.122.122%200%2000.107.062l2.763-.02a.04.04%200%2000.035-.02.041.041%200%20000-.04l-2.9-5.086a.108.108%200%20010-.113l.293-.507%201.12-1.977c.024-.041.012-.062-.035-.062H9.2c-.059%200-.073-.026-.043-.077l1.434-2.505a.107.107%200%20000-.114L9.225%201.774a.06.06%200%2000-.053-.031zm6.29%208.02c.046%200%20.058.02.034.06l-.832%201.465-2.613%204.585a.056.056%200%2001-.05.029.058.058%200%2001-.05-.029L8.498%209.841c-.02-.034-.01-.052.028-.054l.216-.012%206.722-.012z'%20fill='url(%23lobe-icons-qwen-_R_0_)'%20fill-rule='nonzero'%3e%3c/path%3e%3cdefs%3e%3clinearGradient%20id='lobe-icons-qwen-_R_0_'%20x1='0%25'%20x2='100%25'%20y1='0%25'%20y2='0%25'%3e%3cstop%20offset='0%25'%20stop-color='%236336E7'%20stop-opacity='.84'%3e%3c/stop%3e%3cstop%20offset='100%25'%20stop-color='%236F69F7'%20stop-opacity='.84'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e`,it=`data:image/svg+xml,%3csvg%20fill='%23ffffff'%20fill-rule='evenodd'%20height='24'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eGithubCopilot%3c/title%3e%3cpath%20d='M19.245%205.364c1.322%201.36%201.877%203.216%202.11%205.817.622%200%201.2.135%201.592.654l.73.964c.21.278.323.61.323.955v2.62c0%20.339-.173.669-.453.868C20.239%2019.602%2016.157%2021.5%2012%2021.5c-4.6%200-9.205-2.583-11.547-4.258-.28-.2-.452-.53-.453-.868v-2.62c0-.345.113-.679.321-.956l.73-.963c.392-.517.974-.654%201.593-.654l.029-.297c.25-2.446.81-4.213%202.082-5.52%202.461-2.54%205.71-2.851%207.146-2.864h.198c1.436.013%204.685.323%207.146%202.864zm-7.244%204.328c-.284%200-.613.016-.962.05-.123.447-.305.85-.57%201.108-1.05%201.023-2.316%201.18-2.994%201.18-.638%200-1.306-.13-1.851-.464-.516.165-1.012.403-1.044.996a65.882%2065.882%200%2000-.063%202.884l-.002.48c-.002.563-.005%201.126-.013%201.69.002.326.204.63.51.765%202.482%201.102%204.83%201.657%206.99%201.657%202.156%200%204.504-.555%206.985-1.657a.854.854%200%2000.51-.766c.03-1.682.006-3.372-.076-5.053-.031-.596-.528-.83-1.046-.996-.546.333-1.212.464-1.85.464-.677%200-1.942-.157-2.993-1.18-.266-.258-.447-.661-.57-1.108-.32-.032-.64-.049-.96-.05zm-2.525%204.013c.539%200%20.976.426.976.95v1.753c0%20.525-.437.95-.976.95a.964.964%200%2001-.976-.95v-1.752c0-.525.437-.951.976-.951zm5%200c.539%200%20.976.426.976.95v1.753c0%20.525-.437.95-.976.95a.964.964%200%2001-.976-.95v-1.752c0-.525.437-.951.976-.951zM7.635%205.087c-1.05.102-1.935.438-2.385.906-.975%201.037-.765%203.668-.21%204.224.405.394%201.17.657%201.995.657h.09c.649-.013%201.785-.176%202.73-1.11.435-.41.705-1.433.675-2.47-.03-.834-.27-1.52-.63-1.813-.39-.336-1.275-.482-2.265-.394zm6.465.394c-.36.292-.6.98-.63%201.813-.03%201.037.24%202.06.675%202.47.968.957%202.136%201.104%202.776%201.11h.044c.825%200%201.59-.263%201.995-.657.555-.556.765-3.187-.21-4.224-.45-.468-1.335-.804-2.385-.906-.99-.088-1.875.058-2.265.394zM12%207.615c-.24%200-.525.015-.84.044.03.16.045.336.06.526l-.001.159a2.94%202.94%200%2001-.014.25c.225-.022.425-.027.612-.028h.366c.187%200%20.387.006.612.028-.015-.146-.015-.277-.015-.409.015-.19.03-.365.06-.526a9.29%209.29%200%2000-.84-.044z'%3e%3c/path%3e%3c/svg%3e`,at=f(``),ot=f(``);function st(e,n){let r=F(n,`size`,3,20),i={claude:Ye,codex:Xe,openai:Ze,opencode_go:Qe,opencode:Qe,xai:$e,grok:$e,antigravity:et,gemini:tt,google:tt,kimi:nt,qwen:rt,copilot:it},a=j(()=>i[n.provider]);var o=ot();let s,c;var u=l(o),d=e=>{var n=at();y(()=>{M(n,`src`,g(a)),M(n,`width`,r()),M(n,`height`,r())}),t(e,n)},f=e=>{Je(e,{get size(){return r()},strokeWidth:1.6})};m(u,e=>{g(a)?e(d):e(f,-1)}),k(o),y(()=>{s=Y(o,1,`provider-mark svelte-1vulm01`,null,s,{"light-mat":n.provider===`qwen`}),c=ie(o,``,c,{width:`${r()??``}px`,height:`${r()??``}px`})}),t(e,o)}var ct={"common.save":`Save`,"common.cancel":`Cancel`,"common.close":`Close`,"common.import":`Import`,"common.retry":`Retry`,"common.connectAccount":`Connect an account`,"common.chooseOtherProvider":`Choose another provider`,"common.searchAccount":`Search accounts`,"common.noAccountConnected":`No account connected`,"common.noMatchingAccount":`No matching account`,"common.tryOtherName":`Try another name or provider.`,"common.enable":`Enable {name}`,"common.disabled":`Disabled`,"common.verifyGoogle":`Verify the Google account`,"common.openAntigravity":`Open Antigravity with this account to finish verification.`,"common.percent":`{value}%`,"common.accountCount.one":`{count} account`,"common.accountCount.other":`{count} accounts`,"common.copyRefused":`Copy unavailable. Select the text to copy it.`,"nav.subscriptions":`Subscriptions`,"nav.quotas":`Quotas`,"nav.overview":`Overview`,"nav.accounts":`Accounts`,"nav.models":`Models`,"nav.service":`Service`,"nav.activity":`Requests`,"nav.settings":`Settings`,"nav.quickstart":`Quick start`,"nav.main":`Main navigation`,"nav.mobile":`Mobile navigation`,"nav.openMenu":`Open menu`,"nav.closeMenu":`Close menu`,"nav.menu":`Menu`,"nav.setupTool":`Set up a tool`,"page.description":`Manage your subscriptions, their quotas and your tools' requests.`,"page.loading":`Loading your subscriptions...`,"page.dismissNotice":`Dismiss notification`,"page.settingsUnavailable":`Settings will be available once the server responds.`,"notice.displaySaved":`Boite display saved.`,"notice.windowsSaved":`Windows shown in Boite saved.`,"notice.busy":`Another action is in progress.`,"notice.endpointSaved":`Endpoint saved.`,"notice.reserveRemoved":`Reserve removed.`,"notice.reserveSaved":`Reserve saved.`,"notice.fileTooLarge":`{name} is over the 2 MB limit.`,"notice.invalidJson":`{name}: the file must contain valid JSON.`,"notice.partialImport":`{count} account(s) imported. {errors}`,"notice.nothingImported":`The file added no accounts.`,"notice.imported":`Accounts imported.`,"notice.accountDisabled":`Account disabled.`,"notice.accountEnabled":`Account enabled.`,"notice.accountDeleted":`Account deleted.`,"notice.settingsSaved":`Settings saved.`,"notice.modelUpdated":`Model updated.`,"notice.accountConnected":`Account connected.`,"notice.partialRestore":`{count} account(s) restored. {errors}`,"notice.restored.one":`{count} account restored.`,"notice.restored.other":`{count} accounts restored.`,"api.serverStatus":`The server returned {status}.`,"api.errorPrefix":`{name}: {error}`,"private.account":`account`,"status.active":`Active`,"status.exhausted":`Quota used up`,"status.cooldown":`Paused`,"status.expired":`Sign-in expired`,"status.check":`Needs checking`,"status.reserveReached":`Reserve reached`,"date.unknown":`Date not reported`,"credit.unknown":`Not reported`,"credit.credits":`credits`,"usage.weekly":`Weekly`,"usage.monthly":`Monthly`,"usage.fiveHours":`5 hours`,"usage.extra":`Extra usage`,"usage.codexCredits":`Codex credits`,"usage.creditBalance":`Credit balance`,"usage.premiumRequests":`Premium requests`,"usage.chat":`Chat`,"usage.completions":`Completions`,"dialect.client":`Same as the client`,"reserveWindow.five-hour":`5 h`,"reserveWindow.daily":`Day`,"reserveWindow.weekly":`Week`,"reserveWindow.monthly":`Month`,"provider.openaiCompatible":`OpenAI-compatible`,"accounts.title":`Accounts`,"accounts.dropLabel":`Drop auth files`,"accounts.drop":`Drop your JSON files to import accounts`,"accounts.emptyDescription":`Connect a subscription or import its JSON file.`,"accounts.colAccount":`Account`,"accounts.colSubscription":`Subscription`,"accounts.colStatus":`Status`,"accounts.colReserve":`Reserve`,"accounts.colVerified":`Quotas checked`,"accounts.colActions":`Actions`,"accounts.verifiedPrefix":`Quotas checked: `,"accounts.notVerified":`Not checked`,"accounts.delete":`Delete {name}`,"accounts.deleteTitle":`Delete this account`,"accounts.deleteConfirm":`Delete this account from douane?`,"accounts.deleteButton":`Delete`,"name.invalid":`Enter a name of 1 to 120 characters.`,"name.input":`New account name`,"name.save":`Save name`,"name.cancel":`Cancel rename`,"name.rename":`Rename this account`,"reserve.notSaved":`The reserve was not saved.`,"reserve.invalid":`Enter a percentage from 0 to 99.`,"reserve.keepAtLeast":`Keep at least`,"reserve.input":`Minimum reserve in percent`,"reserve.save":`Save reserve`,"reserve.watched":`Watched limits`,"reserve.longestTitle":`The account's longest limit (month or week)`,"reserve.longest":`Longest`,"reserve.remove":`Remove reserve`,"reserve.titleWatched":`Douane stops using this account when one of these limits reaches this level: {windows}`,"reserve.titleLongest":`Douane stops using this account when its longest quota (month or week) reaches this level`,"reserve.add":`Add a reserve`,"reserve.label":`Reserve {percent}%`,"reserve.reached":`Reserve reached: douane no longer uses this account until the reset.`,"reserve.inactiveWindows":`Inactive: this account does not report these limits.`,"reserve.inactiveAccount":`Inactive: this provider does not report a quota for the whole account.`,"resets.reset":`Quota reset.`,"resets.alreadyRedeemed":`This reset was already applied.`,"resets.nothingToReset":`The quota is already available. No reset used.`,"resets.noCredit":`No reset available.`,"resets.unconfirmed":`The server did not confirm the reset result.`,"resets.resume":`Resume reset`,"resets.button":`Reset ({count})`,"resets.checking":`Checking resets`,"resets.none":`0 resets available`,"resets.check":`Check resets`,"resets.title":`Reset quota`,"resets.closeConfirmation":`Close confirmation`,"resets.warning":`This uses 1 reset to restore the account's quota. It cannot be undone.`,"resets.expiresFirst":`The reset that expires on {date} is used first.`,"resets.pending":`An attempt is waiting for confirmation. Retrying checks the same operation.`,"resets.running":`Resetting`,"resets.retrySame":`Retry the same reset`,"resets.use":`Use 1 reset`,"connect.copyRefused":`The browser refused the copy. Select the code to copy it.`,"connect.waiting":`Waiting for authorization. The connection is checked automatically.`,"connect.expired":`This connection expired. Choose the provider to start again.`,"connect.refused":`The provider refused the connection. Start again to retry.`,"connect.exchanging":`Authorization received, connecting the account.`,"connect.stillWaiting":`The connection is still waiting for your authorization.`,"connect.unconfirmed":`The server did not confirm the new account.`,"connect.notAdded":`The account was not added.`,"connect.subtitle":`Add a subscription to douane.`,"connect.success":`Account connected`,"connect.successText":`Your subscription is now available in douane.`,"connect.viewAccounts":`View my accounts`,"connect.googleVerify":`Google asks you to verify this account before connecting.`,"connect.afterVerify":`Once verification is done, start the connection again.`,"connect.restart":`Start again`,"connect.antigravityTitle":`Antigravity setup incomplete`,"connect.antigravityProject":`The Google sign-in worked, but Google did not provide the project this account needs.`,"connect.antigravityFirstUse":`If this is the first use, open the Antigravity app with this account and finish onboarding. If Antigravity also refuses the sign-in, follow Google's message.`,"connect.antigravityGuide":`Open the Antigravity guide`,"connect.enterCode":`Open the {provider} page and enter this code to authorize the connection.`,"connect.copyCode":`Copy code`,"connect.authorize":`Open the provider's page and authorize the connection.`,"connect.open":`Open sign-in`,"connect.callbackHint":`If the redirect to localhost does not load, copy its full URL. Claude can also show a code to paste here.`,"connect.callbackLabel":`Redirect URL or sign-in code`,"connect.callbackPlaceholder":`Redirect URL or code#state`,"connect.finish":`Finish connecting`,"connect.check":`Check connection`,"connect.customIntro1":`An API key becomes a model prefix: with `,"connect.customIntro2":`, its models are called `,"connect.customModel":`deepseek/model-name`,"connect.customIntro3":`. Several keys under the same prefix take turns. The key leaves this form once saved.`,"connect.name":`Name`,"connect.addEndpoint":`Add endpoint`,"connect.tokenIntro":`Add your subscription's access token. It leaves this form once saved.`,"connect.accountName":`Account name`,"connect.accountNamePlaceholder":`My subscription`,"connect.token":`Access token`,"connect.providerUrl":`Provider URL`,"connect.providerUrlPlaceholder":`https://your-provider/v1`,"connect.addAccount":`Add account`,"connect.oauthOption":`Connect my subscription`,"connect.apiKeyOption":`Add an API key`,"connect.tokenOption":`Add a token`,"connect.noProvider":`No provider available. Import an auth file to add an account.`,"connect.haveFile":`Already have a file?`,"connect.importFiles":`Import one or more JSON auth files.`,"connect.pending":`Connecting...`,"endpoint.route":`Model prefix`,"endpoint.url":`API URL`,"endpoint.format":`API format`,"endpoint.key":`API key`,"endpoint.models":`Served models`,"endpoint.modelsPlaceholder":`All models from the API`,"endpoint.newKey":`New API key`,"endpoint.unchanged":`Unchanged`,"endpoint.edit":`Edit endpoint`,"email.hide":`Hide this email`,"email.show":`Show this email`,"meter.left":`Quota left`,"meter.unavailable":`Unavailable`,"meter.valueLeft":`{value}% left`,"quotas.refresh":`Refresh quotas`,"quotas.filter":`Filter by provider`,"quotas.all":`All`,"quotas.search":`Search`,"quotas.sort":`Sort accounts`,"quotas.byName":`By name`,"quotas.byRemaining":`Quota left`,"quotas.emptyDescription":`Connect a subscription to see its quotas.`,"quotas.group":`{provider} quotas`,"quotas.displayTitle":`How {provider} quotas show in Boite and /v1/quotas clients`,"quotas.displayLabel":`In Boite / clients`,"quotas.perAccount":`Per account`,"quotas.average":`Account average`,"quotas.windowsTitle":`{provider} quota windows shown in Boite`,"quotas.windows":`Windows`,"quotas.windowsLabel":`{provider} windows in Boite`,"quotas.primary":`Main`,"quotas.makePrimary":`Make main`,"quotas.showWindow":`Show {label} in Boite`,"quotas.noWindow":`No window read for this provider.`,"quotas.defaultWindow":`Without a main window, Boite highlights the weekly one.`,"quotas.googleVerify":`Google asks you to verify this account.`,"quotas.resetAt":`Resets: {date}`,"quotas.notReported":`Quota not reported`,"quotas.unlimited":`Unlimited`,"quotas.remaining":`left`,"quotas.used":`{used} used`,"quotas.usedOf":`{used} used of {limit}`,"quotas.refreshAccount":`Refresh this account`,"quotas.refreshNamed":`Refresh {name}`,"overview.description":`Activity across your subscriptions`,"overview.connected":`Service connected`,"overview.disconnected":`Connection unavailable`,"overview.activeAccounts":`Active accounts`,"overview.ofAccounts":`of {count} accounts`,"overview.requests":`Requests`,"overview.inFlight":`{count} in progress`,"overview.tokens":`Tokens exchanged`,"overview.tokensDetail":`input and output`,"overview.cache":`Cache read`,"overview.cacheDetail":`tokens reused`,"overview.success":`Successful requests`,"overview.errors":`{count} errors`,"overview.recent":`Recent activity`,"overview.recentDescription":`The latest requests douane handled`,"overview.viewAll":`View all`,"overview.emptyTitle":`Your activity will show here`,"overview.emptyDescription":`Connect an account, then send a first request from your tool.`,"overview.openQuickstart":`Open quick start`,"table.model":`Model`,"table.provider":`Provider`,"table.time":`Time`,"table.status":`Status`,"table.duration":`Duration`,"table.id":`ID`,"table.context":`Context`,"table.available":`Available`,"table.modelAccount":`Model and account`,"table.tokens":`Tokens`,"table.error":`Error`,"models.description":`Models available with your accounts`,"models.count":`{count} models`,"models.endpoint":`OpenAI-compatible URL`,"models.search":`Search models`,"models.emptyTitle":`No model available`,"models.emptyDescription":`Add an account to load its subscription's models.`,"models.addAccount":`Add an account`,"models.noMatchTitle":`No matching model`,"models.noMatchDescription":`Try another model or provider name.`,"activity.title":`Request log`,"activity.description":`Each call, its account and its usage`,"activity.count":`Last {count} requests`,"activity.onlyErrors":`Show errors only`,"activity.search":`Search requests`,"activity.searchPlaceholder":`Model, account or provider`,"activity.noMatchTitle":`No matching request`,"activity.emptyTitle":`No requests yet`,"activity.noMatchDescription":`Change your search or the error filter.`,"activity.emptyDescription":`Your tools' calls will show here with their real result.`,"activity.unknownAccount":`Account not reported`,"quickstart.chooseTool":`Choose a tool`,"quickstart.openAccounts":`Open accounts`,"quickstart.baseUrl":`Base URL`,"quickstart.copyUrl":`Copy URL`,"quickstart.openaiHint1":`Pick your tool's OpenAI-compatible mode. If it asks for a key, enter `,"quickstart.openaiHint2":`.`,"quickstart.chooseModel":`Choose a model`,"quickstart.powershell":`Run these commands in PowerShell.`,"quickstart.copyClaude":`Copy the Claude Code setup`,"quickstart.claudeHint":`Claude Code will send its requests through the connected Claude account.`,"quickstart.connectClaude":`Connect a Claude account`,"strategy.round-robin.label":`Round robin`,"strategy.round-robin.desc":`Each active account takes requests in turn.`,"strategy.fill-first.label":`Use up one account`,"strategy.fill-first.desc":`Uses the first available account before moving to the next.`,"strategy.reset-first.label":`Nearest reset`,"strategy.reset-first.desc":`Uses the account whose weekly quota resets first. The others serve only when it is unavailable.`,"strategy.smart.label":`Smart split`,"strategy.smart.desc":`Within 48 h of the reset, 90% of new conversations use this account until it runs out.`,"settings.sessionNote":`A conversation keeps its account while it stays available. With Nearest reset, it returns to the account with the nearest reset as soon as that account is available.`,"settings.routing":`Request routing`,"settings.routingDescription":`The default rule applies to providers without their own choice. Each choice saves on click.`,"settings.perProvider":`Per provider`,"settings.perProviderDescription":`Adjust routing for each of your subscriptions.`,"settings.defaultRule":`Default rule`,"settings.noProviders":`Providers will show once the service is connected.`,"settings.refresh":`Refresh and timeouts`,"settings.refreshDescription":`Quotas and account selection are recomputed after each refresh.`,"settings.refreshEvery":`Refresh quotas every`,"settings.seconds":`seconds`,"settings.timeout":`Request timeout`,"settings.defaultProvider":`Default provider`,"settings.weekEnd":`End of the week`,"settings.weekEndDescription":`Before an account's weekly reset, its reserve and client shares stop applying, so what is left gets used. 0 keeps them to the end.`,"settings.freeBefore":`Lift limits before the reset`,"settings.hours":`hours`,"settings.autoProvider":`Automatic selection`,"settings.saving":`Saving...`,"settings.save":`Save settings`,"settings.language":`Language`,"settings.languageDescription":`Language of this dashboard, saved in this browser.`,"settings.languageAuto":`Automatic`,"settings.languageEnglish":`English`,"settings.languageFrench":`Français`,"backup.title":`Backup`,"backup.description":`Move this configuration to another douane: settings, disabled models and every account.`,"backup.warning":`The file holds live sign-ins and keys. Refresh tokens rotate, so an account works in one douane at a time: after a restore, remove it here. Keep the file private.`,"backup.export":`Export`,"backup.exporting":`Exporting...`,"backup.restore":`Restore`,"backup.restoring":`Restoring...`,"backup.confirm.one":`{name} holds {count} account. Accounts already here are updated, the others are added.`,"backup.confirm.other":`{name} holds {count} accounts. Accounts already here are updated, the others are added.`,"backup.withSettings":`Also apply its settings and disabled models`,"backup.confirmButton":`Restore accounts`,"backup.notExport":`{name} is not a douane export.`,"backup.tooLarge":`{name} is over the 32 MB limit.`,"nav.clients":`Clients`,"clients.title":`Clients`,"clients.new":`New client`,"clients.open":`Open to anyone who reaches douane. The first client makes a key required on every call, Boite included.`,"clients.enforced":`Keys required`,"clients.emptyTitle":`No client yet`,"clients.emptyDescription":`Give each Boite or tool its own key, the accounts it may use and its share of each quota.`,"clients.allAccounts":`All accounts`,"clients.allAccountsHint":`Accounts connected later included`,"clients.noAccess":`No account`,"clients.noShare":`Common part only`,"clients.createdAt":`Created {date}`,"clients.ofShare":`{used} / {share}%`,"clients.highest":`Highest account: {name}`,"clients.notMeasured":`Not measured yet`,"clients.rotate":`New key`,"clients.rotateNamed":`New key for {name}`,"clients.delete":`Delete`,"clients.deleteNamed":`Delete {name}`,"clients.breakdown":`Breakdown`,"clients.breakdownInfo":`Each rise of a window goes to the clients whose calls ended on that account, weighted by tokens. A rise no call through douane explains counts as outside douane.`,"clients.breakdownEmpty":`No window measured since the first client.`,"clients.noKey":`Without key`,"clients.former":`Deleted clients`,"clients.outside":`Outside douane`,"clients.unexplained":`Unattributed`,"clients.used":`{value}% used`,"clients.editTitle":`Edit {name}`,"clients.name":`Name`,"clients.namePlaceholder":`Desktop`,"clients.access":`Accounts`,"clients.wholePool":`Every {pool} account, later ones included`,"clients.shares":`Quota shares`,"clients.sharesInfo":`A share reserves this percent of each window (5 h, day, week, month) of every account of the provider. An unused share frees up in the last seventh of the window. What no share covers is common to every client.`,"clients.shareOf":`Share of {pool}`,"clients.common":`Common {value}%`,"clients.overbooked":`Over 100%`,"clients.noPool":`Choose accounts first.`,"clients.shareInvalid":`A share is a number above 0 and at most 100.`,"clients.pickAccess":`Choose at least one account.`,"clients.create":`Create`,"clients.keyTitle":`Key for {name}`,"clients.keyOnce":`Shown once. Copy it now.`,"clients.keyBoite":`Paste it in Boite: Settings, subscription proxy, key.`,"clients.copyKey":`Copy`,"clients.copied":`Copied`,"clients.rotateTitle":`New key for {name}?`,"clients.rotateText":`The current key stops working at once. Paste the new one in the tool that uses it.`,"clients.rotateButton":`Replace the key`,"clients.deleteTitle":`Delete {name}?`,"clients.deleteText":`Calls with its key are refused.`,"clients.deleteLast":`It is the last client: the API opens again to anyone who reaches douane.`,"clients.deleteButton":`Delete`,"notice.clientCreated":`Client created.`,"notice.clientSaved":`Client saved.`,"notice.clientDeleted":`Client deleted.`,"notice.keyReplaced":`Key replaced.`,"activity.client":`Client {name}`,"quickstart.keyRequired":`Keys are required: use a client key from the Clients page instead of douane.`},lt={"common.save":`Enregistrer`,"common.cancel":`Annuler`,"common.close":`Fermer`,"common.import":`Importer`,"common.retry":`Réessayer`,"common.connectAccount":`Connecter un compte`,"common.chooseOtherProvider":`Choisir un autre fournisseur`,"common.searchAccount":`Rechercher un compte`,"common.noAccountConnected":`Aucun compte connecté`,"common.noMatchingAccount":`Aucun compte correspondant`,"common.tryOtherName":`Essayez un autre nom ou fournisseur.`,"common.enable":`Activer {name}`,"common.disabled":`Désactivé`,"common.verifyGoogle":`Vérifier le compte Google`,"common.openAntigravity":`Ouvrez Antigravity avec ce compte pour terminer la vérification.`,"common.percent":`{value} %`,"common.accountCount.one":`{count} compte`,"common.accountCount.other":`{count} comptes`,"common.copyRefused":`Copie indisponible. Sélectionnez le texte pour le copier.`,"nav.subscriptions":`Abonnements`,"nav.quotas":`Quotas`,"nav.overview":`Vue d'ensemble`,"nav.accounts":`Comptes`,"nav.models":`Modèles`,"nav.service":`Service`,"nav.activity":`Requêtes`,"nav.settings":`Réglages`,"nav.quickstart":`Démarrage rapide`,"nav.main":`Navigation principale`,"nav.mobile":`Navigation mobile`,"nav.openMenu":`Ouvrir le menu`,"nav.closeMenu":`Fermer le menu`,"nav.menu":`Menu`,"nav.setupTool":`Configurer un outil`,"page.description":`Gérez vos abonnements, leurs quotas et les requêtes de vos outils.`,"page.loading":`Chargement de vos abonnements...`,"page.dismissNotice":`Fermer la notification`,"page.settingsUnavailable":`Les réglages seront disponibles lorsque le serveur répondra.`,"notice.displaySaved":`Affichage dans Boite enregistré.`,"notice.windowsSaved":`Fenêtres affichées dans Boite enregistrées.`,"notice.busy":`Une action est déjà en cours.`,"notice.endpointSaved":`Endpoint enregistré.`,"notice.reserveRemoved":`Réserve retirée.`,"notice.reserveSaved":`Réserve enregistrée.`,"notice.fileTooLarge":`{name} dépasse la limite de 2 Mo.`,"notice.invalidJson":`{name} : le fichier doit contenir du JSON valide.`,"notice.partialImport":`{count} compte(s) importé(s). {errors}`,"notice.nothingImported":`Le fichier n'a ajouté aucun compte.`,"notice.imported":`Comptes importés.`,"notice.accountDisabled":`Compte désactivé.`,"notice.accountEnabled":`Compte activé.`,"notice.accountDeleted":`Compte supprimé.`,"notice.settingsSaved":`Réglages enregistrés.`,"notice.modelUpdated":`Modèle mis à jour.`,"notice.accountConnected":`Compte connecté.`,"notice.partialRestore":`{count} compte(s) restauré(s). {errors}`,"notice.restored.one":`{count} compte restauré.`,"notice.restored.other":`{count} comptes restaurés.`,"api.serverStatus":`Le serveur a répondu {status}.`,"api.errorPrefix":`{name} : {error}`,"private.account":`compte`,"status.active":`Actif`,"status.exhausted":`Quota épuisé`,"status.cooldown":`En pause`,"status.expired":`Connexion expirée`,"status.check":`À vérifier`,"status.reserveReached":`Réserve atteinte`,"date.unknown":`Date non communiquée`,"credit.unknown":`Non communiqué`,"credit.credits":`crédits`,"usage.weekly":`Semaine`,"usage.monthly":`Mois`,"usage.fiveHours":`5 heures`,"usage.extra":`Usage supplémentaire`,"usage.codexCredits":`Crédits Codex`,"usage.creditBalance":`Solde des crédits`,"usage.premiumRequests":`Requêtes premium`,"usage.chat":`Chat`,"usage.completions":`Complétions`,"dialect.client":`Celui du client`,"reserveWindow.five-hour":`5 h`,"reserveWindow.daily":`Jour`,"reserveWindow.weekly":`Semaine`,"reserveWindow.monthly":`Mois`,"provider.openaiCompatible":`Compatible OpenAI`,"accounts.title":`Comptes`,"accounts.dropLabel":`Déposer des fichiers d'authentification`,"accounts.drop":`Déposez vos fichiers JSON pour importer des comptes`,"accounts.emptyDescription":`Connectez un abonnement ou importez son fichier JSON.`,"accounts.colAccount":`Compte`,"accounts.colSubscription":`Abonnement`,"accounts.colStatus":`État`,"accounts.colReserve":`Réserve`,"accounts.colVerified":`Quotas vérifiés`,"accounts.colActions":`Actions`,"accounts.verifiedPrefix":`Quotas vérifiés : `,"accounts.notVerified":`Non vérifiés`,"accounts.delete":`Supprimer {name}`,"accounts.deleteTitle":`Supprimer ce compte`,"accounts.deleteConfirm":`Supprimer ce compte de douane ?`,"accounts.deleteButton":`Supprimer`,"name.invalid":`Saisissez un nom de 1 à 120 caractères.`,"name.input":`Nouveau nom du compte`,"name.save":`Enregistrer le nom`,"name.cancel":`Annuler le renommage`,"name.rename":`Renommer ce compte`,"reserve.notSaved":`La réserve n'a pas été enregistrée.`,"reserve.invalid":`Saisissez un pourcentage entre 0 et 99.`,"reserve.keepAtLeast":`Garder au moins`,"reserve.input":`Réserve minimale en pourcentage`,"reserve.save":`Enregistrer la réserve`,"reserve.watched":`Limites surveillées`,"reserve.longestTitle":`La limite la plus longue du compte (mois ou semaine)`,"reserve.longest":`Plus longue`,"reserve.remove":`Retirer la réserve`,"reserve.titleWatched":`Douane cesse d'utiliser ce compte quand une de ces limites atteint ce seuil : {windows}`,"reserve.titleLongest":`Douane cesse d'utiliser ce compte quand son quota le plus long (mois ou semaine) atteint ce seuil`,"reserve.add":`Ajouter une réserve`,"reserve.label":`Réserve {percent} %`,"reserve.reached":`Réserve atteinte : douane n'utilise plus ce compte jusqu'à la réinitialisation.`,"reserve.inactiveWindows":`Inactive : ce compte ne communique pas ces limites.`,"reserve.inactiveAccount":`Inactive : ce fournisseur ne communique pas de quota pour l'ensemble du compte.`,"resets.reset":`Quota réinitialisé.`,"resets.alreadyRedeemed":`Ce reset a déjà été appliqué.`,"resets.nothingToReset":`Le quota est déjà disponible. Aucun reset utilisé.`,"resets.noCredit":`Aucun reset disponible.`,"resets.unconfirmed":`Le serveur n’a pas confirmé le résultat du reset.`,"resets.resume":`Reprendre le reset`,"resets.button":`Réinitialiser ({count})`,"resets.checking":`Vérification des resets`,"resets.none":`0 reset disponible`,"resets.check":`Vérifier les resets`,"resets.title":`Réinitialiser le quota`,"resets.closeConfirmation":`Fermer la confirmation`,"resets.warning":`Cette action consomme 1 reset pour rétablir le quota du compte. Elle est irréversible.`,"resets.expiresFirst":`Le reset qui expire le {date} sera utilisé en premier.`,"resets.pending":`Une tentative est en attente de confirmation. Réessayer vérifie la même opération.`,"resets.running":`Réinitialisation en cours`,"resets.retrySame":`Réessayer le même reset`,"resets.use":`Utiliser 1 reset`,"connect.copyRefused":`Copie refusée par le navigateur. Sélectionnez le code pour le copier.`,"connect.waiting":`En attente d'autorisation. La connexion est vérifiée automatiquement.`,"connect.expired":`Cette connexion a expiré. Choisissez le fournisseur pour recommencer.`,"connect.refused":`Le fournisseur a refusé la connexion. Recommencez pour réessayer.`,"connect.exchanging":`Autorisation reçue, connexion du compte en cours.`,"connect.stillWaiting":`La connexion attend encore votre autorisation.`,"connect.unconfirmed":`Le serveur n'a pas confirmé l'ajout du compte.`,"connect.notAdded":`Le compte n'a pas été ajouté.`,"connect.subtitle":`Ajoutez un abonnement à douane.`,"connect.success":`Compte connecté`,"connect.successText":`Votre abonnement est maintenant disponible dans douane.`,"connect.viewAccounts":`Voir mes comptes`,"connect.googleVerify":`Google demande de vérifier ce compte avant la connexion.`,"connect.afterVerify":`Une fois la vérification terminée, recommencez la connexion.`,"connect.restart":`Recommencer la connexion`,"connect.antigravityTitle":`Activation Antigravity incomplète`,"connect.antigravityProject":`La connexion Google a réussi, mais Google n'a pas fourni le projet nécessaire à ce compte.`,"connect.antigravityFirstUse":`Pour une première utilisation, ouvrez l'application Antigravity avec ce compte et terminez l'accueil. Si Antigravity refuse aussi la connexion, suivez le message affiché par Google.`,"connect.antigravityGuide":`Ouvrir le guide Antigravity`,"connect.enterCode":`Ouvrez la page {provider} et saisissez ce code pour autoriser la connexion.`,"connect.copyCode":`Copier le code`,"connect.authorize":`Ouvrez la page du fournisseur et autorisez la connexion.`,"connect.open":`Ouvrir la connexion`,"connect.callbackHint":`Si le retour vers localhost ne charge pas, copiez son URL complète. Claude peut aussi afficher un code à coller ici.`,"connect.callbackLabel":`URL de retour ou code de connexion`,"connect.callbackPlaceholder":`URL de retour ou code#state`,"connect.finish":`Terminer la connexion`,"connect.check":`Vérifier la connexion`,"connect.customIntro1":`Une clé d'API devient un préfixe de modèles : avec `,"connect.customIntro2":`, ses modèles s'appellent `,"connect.customModel":`deepseek/nom-du-modèle`,"connect.customIntro3":`. Plusieurs clés sous le même préfixe tournent entre elles. La clé disparaît de ce formulaire après l'enregistrement.`,"connect.name":`Nom`,"connect.addEndpoint":`Ajouter l'endpoint`,"connect.tokenIntro":`Ajoutez le jeton de connexion de votre abonnement. Il disparaît de ce formulaire après l'enregistrement.`,"connect.accountName":`Nom du compte`,"connect.accountNamePlaceholder":`Mon abonnement`,"connect.token":`Jeton de connexion`,"connect.providerUrl":`Adresse du fournisseur`,"connect.providerUrlPlaceholder":`https://votre-fournisseur/v1`,"connect.addAccount":`Ajouter le compte`,"connect.oauthOption":`Connecter mon abonnement`,"connect.apiKeyOption":`Ajouter une clé d'API`,"connect.tokenOption":`Ajouter un jeton`,"connect.noProvider":`Aucun fournisseur disponible. Importez un fichier d'authentification pour ajouter un compte.`,"connect.haveFile":`Vous avez déjà un fichier ?`,"connect.importFiles":`Importez un ou plusieurs fichiers d'authentification JSON.`,"connect.pending":`Connexion en cours...`,"endpoint.route":`Préfixe des modèles`,"endpoint.url":`Adresse de l'API`,"endpoint.format":`Format de l'API`,"endpoint.key":`Clé d'API`,"endpoint.models":`Modèles servis`,"endpoint.modelsPlaceholder":`Tous les modèles de l'API`,"endpoint.newKey":`Nouvelle clé d'API`,"endpoint.unchanged":`Inchangée`,"endpoint.edit":`Modifier l'endpoint`,"email.hide":`Masquer cet email`,"email.show":`Afficher cet email`,"meter.left":`Quota restant`,"meter.unavailable":`Indisponible`,"meter.valueLeft":`{value} % restants`,"quotas.refresh":`Actualiser les quotas`,"quotas.filter":`Filtrer par fournisseur`,"quotas.all":`Tous`,"quotas.search":`Rechercher`,"quotas.sort":`Trier les comptes`,"quotas.byName":`Par nom`,"quotas.byRemaining":`Quota restant`,"quotas.emptyDescription":`Connectez un abonnement pour afficher ses quotas.`,"quotas.group":`Quotas {provider}`,"quotas.displayTitle":`Affichage des quotas {provider} dans Boite et les clients de /v1/quotas`,"quotas.displayLabel":`Dans Boite / les clients`,"quotas.perAccount":`Détail par compte`,"quotas.average":`Moyenne des comptes`,"quotas.windowsTitle":`Fenêtres de quota {provider} montrées dans Boite`,"quotas.windows":`Fenêtres`,"quotas.windowsLabel":`Fenêtres {provider} dans Boite`,"quotas.primary":`Principale`,"quotas.makePrimary":`Rendre principale`,"quotas.showWindow":`Afficher {label} dans Boite`,"quotas.noWindow":`Aucune fenêtre lue pour ce fournisseur.`,"quotas.defaultWindow":`Sans fenêtre principale, Boite met la semaine en avant.`,"quotas.googleVerify":`Google demande de vérifier ce compte.`,"quotas.resetAt":`Réinitialisation : {date}`,"quotas.notReported":`Quota non communiqué`,"quotas.unlimited":`Illimités`,"quotas.remaining":`restants`,"quotas.used":`{used} utilisés`,"quotas.usedOf":`{used} utilisés sur {limit}`,"quotas.refreshAccount":`Actualiser ce compte`,"quotas.refreshNamed":`Actualiser {name}`,"overview.description":`L'activité de vos abonnements`,"overview.connected":`Service connecté`,"overview.disconnected":`Connexion indisponible`,"overview.activeAccounts":`Comptes actifs`,"overview.ofAccounts":`sur {count} comptes`,"overview.requests":`Requêtes`,"overview.inFlight":`{count} en cours`,"overview.tokens":`Tokens échangés`,"overview.tokensDetail":`entrée et sortie`,"overview.cache":`Cache relu`,"overview.cacheDetail":`tokens réutilisés`,"overview.success":`Requêtes réussies`,"overview.errors":`{count} erreurs`,"overview.recent":`Activité récente`,"overview.recentDescription":`Les dernières requêtes traitées par douane`,"overview.viewAll":`Tout voir`,"overview.emptyTitle":`Votre activité apparaîtra ici`,"overview.emptyDescription":`Connectez un compte puis envoyez une première requête depuis votre outil.`,"overview.openQuickstart":`Ouvrir le démarrage rapide`,"table.model":`Modèle`,"table.provider":`Fournisseur`,"table.time":`Heure`,"table.status":`Statut`,"table.duration":`Durée`,"table.id":`Identifiant`,"table.context":`Contexte`,"table.available":`Disponible`,"table.modelAccount":`Modèle et compte`,"table.tokens":`Tokens`,"table.error":`Erreur`,"models.description":`Les modèles disponibles avec vos comptes`,"models.count":`{count} modèles`,"models.endpoint":`Adresse compatible OpenAI`,"models.search":`Rechercher un modèle`,"models.emptyTitle":`Aucun modèle disponible`,"models.emptyDescription":`Ajoutez un compte pour charger les modèles de son abonnement.`,"models.addAccount":`Ajouter un compte`,"models.noMatchTitle":`Aucun modèle correspondant`,"models.noMatchDescription":`Essayez un autre nom de modèle ou de fournisseur.`,"activity.title":`Journal des requêtes`,"activity.description":`Chaque appel, son compte et sa consommation`,"activity.count":`{count} dernières requêtes`,"activity.onlyErrors":`Afficher les erreurs seulement`,"activity.search":`Rechercher une requête`,"activity.searchPlaceholder":`Modèle, compte ou fournisseur`,"activity.noMatchTitle":`Aucune requête correspondante`,"activity.emptyTitle":`Aucune requête pour le moment`,"activity.noMatchDescription":`Modifiez votre recherche ou le filtre des erreurs.`,"activity.emptyDescription":`Les appels de vos outils apparaîtront ici avec leur résultat réel.`,"activity.unknownAccount":`Compte non communiqué`,"quickstart.chooseTool":`Choisir un outil`,"quickstart.openAccounts":`Ouvrir les comptes`,"quickstart.baseUrl":`Adresse de base`,"quickstart.copyUrl":`Copier l'adresse`,"quickstart.openaiHint1":`Choisissez le mode compatible OpenAI de votre outil. S’il demande une clé, saisissez `,"quickstart.openaiHint2":`.`,"quickstart.chooseModel":`Choisir un modèle`,"quickstart.powershell":`Exécutez ces commandes dans PowerShell.`,"quickstart.copyClaude":`Copier la configuration Claude Code`,"quickstart.claudeHint":`Claude Code utilisera le compte Claude connecté pour envoyer ses requêtes.`,"quickstart.connectClaude":`Connecter un compte Claude`,"strategy.round-robin.label":`Rotation`,"strategy.round-robin.desc":`Chaque compte actif reçoit les requêtes à tour de rôle.`,"strategy.fill-first.label":`Épuiser un compte`,"strategy.fill-first.desc":`Utilise le premier compte disponible avant de passer au suivant.`,"strategy.reset-first.label":`Reset le plus proche`,"strategy.reset-first.desc":`Utilise le compte dont le quota hebdomadaire se réinitialise en premier. Les autres servent seulement s’il est indisponible.`,"strategy.smart.label":`Répartition intelligente`,"strategy.smart.desc":`À moins de 48 h du reset, 90 % des nouvelles conversations utilisent ce compte jusqu’à épuisement.`,"settings.sessionNote":`Une conversation garde son compte tant qu'il reste disponible. Avec Reset le plus proche, elle revient au compte dont le reset est le plus proche dès qu'il est disponible.`,"settings.routing":`Répartition des requêtes`,"settings.routingDescription":`La règle par défaut s'applique aux fournisseurs sans choix particulier. Chaque choix est enregistré dès le clic.`,"settings.perProvider":`Par fournisseur`,"settings.perProviderDescription":`Adaptez la répartition à chacun de vos abonnements.`,"settings.defaultRule":`Règle par défaut`,"settings.noProviders":`Les fournisseurs apparaîtront lorsque le service sera connecté.`,"settings.refresh":`Actualisation et délais`,"settings.refreshDescription":`Les quotas et la sélection des comptes sont recalculés après chaque actualisation.`,"settings.refreshEvery":`Actualiser les quotas toutes les`,"settings.seconds":`secondes`,"settings.timeout":`Délai maximal d'une requête`,"settings.defaultProvider":`Fournisseur par défaut`,"settings.weekEnd":`Fin de semaine`,"settings.weekEndDescription":`Avant le reset hebdomadaire d'un compte, sa réserve et les parts des clients ne s'appliquent plus, pour que le reste serve. 0 les garde jusqu'au bout.`,"settings.freeBefore":`Lever les limites avant le reset`,"settings.hours":`heures`,"settings.autoProvider":`Sélection automatique`,"settings.saving":`Enregistrement...`,"settings.save":`Enregistrer les réglages`,"settings.language":`Langue`,"settings.languageDescription":`Langue de ce tableau de bord, enregistrée dans ce navigateur.`,"settings.languageAuto":`Automatique`,"settings.languageEnglish":`English`,"settings.languageFrench":`Français`,"backup.title":`Sauvegarde`,"backup.description":`Déplacez cette configuration vers une autre douane : réglages, modèles désactivés et tous les comptes.`,"backup.warning":`Le fichier contient des connexions et des clés actives. Les jetons de renouvellement changent à chaque usage : un compte ne fonctionne que dans une douane à la fois. Après une restauration, retirez-le ici. Gardez le fichier privé.`,"backup.export":`Exporter`,"backup.exporting":`Export...`,"backup.restore":`Restaurer`,"backup.restoring":`Restauration...`,"backup.confirm.one":`{name} contient {count} compte. Les comptes déjà présents sont mis à jour, les autres sont ajoutés.`,"backup.confirm.other":`{name} contient {count} comptes. Les comptes déjà présents sont mis à jour, les autres sont ajoutés.`,"backup.withSettings":`Appliquer aussi ses réglages et modèles désactivés`,"backup.confirmButton":`Restaurer les comptes`,"backup.notExport":`{name} n'est pas un export douane.`,"backup.tooLarge":`{name} dépasse la limite de 32 Mo.`,"nav.clients":`Clients`,"clients.title":`Clients`,"clients.new":`Nouveau client`,"clients.open":`Ouvert à quiconque atteint douane. Le premier client rend une clé obligatoire à chaque appel, Boite compris.`,"clients.enforced":`Clé obligatoire`,"clients.emptyTitle":`Aucun client`,"clients.emptyDescription":`Donnez à chaque Boite ou outil sa clé, les comptes qu'il peut utiliser et sa part de chaque quota.`,"clients.allAccounts":`Tous les comptes`,"clients.allAccountsHint":`Comptes connectés plus tard compris`,"clients.noAccess":`Aucun compte`,"clients.noShare":`Part commune seulement`,"clients.createdAt":`Créé le {date}`,"clients.ofShare":`{used} / {share} %`,"clients.highest":`Compte le plus utilisé : {name}`,"clients.notMeasured":`Pas encore mesuré`,"clients.rotate":`Nouvelle clé`,"clients.rotateNamed":`Nouvelle clé pour {name}`,"clients.delete":`Supprimer`,"clients.deleteNamed":`Supprimer {name}`,"clients.breakdown":`Répartition`,"clients.breakdownInfo":`Chaque hausse d'une fenêtre revient aux clients dont les appels ont fini sur ce compte, au prorata des tokens. Une hausse qu'aucun appel par douane n'explique compte comme hors douane.`,"clients.breakdownEmpty":`Aucune fenêtre mesurée depuis le premier client.`,"clients.noKey":`Sans clé`,"clients.former":`Clients supprimés`,"clients.outside":`Hors douane`,"clients.unexplained":`Non attribué`,"clients.used":`{value} % utilisés`,"clients.editTitle":`Modifier {name}`,"clients.name":`Nom`,"clients.namePlaceholder":`PC fixe`,"clients.access":`Comptes`,"clients.wholePool":`Tous les comptes {pool}, futurs compris`,"clients.shares":`Parts de quota`,"clients.sharesInfo":`Une part réserve ce pourcentage de chaque fenêtre (5 h, jour, semaine, mois) de chaque compte du fournisseur. Une part inutilisée se libère dans le dernier septième de la fenêtre. Ce qu'aucune part ne couvre est commun à tous les clients.`,"clients.shareOf":`Part de {pool}`,"clients.common":`Commun {value} %`,"clients.overbooked":`Plus de 100 %`,"clients.noPool":`Choisissez d'abord des comptes.`,"clients.shareInvalid":`Une part est un nombre supérieur à 0 et au plus 100.`,"clients.pickAccess":`Choisissez au moins un compte.`,"clients.create":`Créer`,"clients.keyTitle":`Clé de {name}`,"clients.keyOnce":`Affichée une seule fois. Copiez-la maintenant.`,"clients.keyBoite":`Collez-la dans Boite : Réglages, proxy d'abonnements, clé.`,"clients.copyKey":`Copier`,"clients.copied":`Copiée`,"clients.rotateTitle":`Nouvelle clé pour {name} ?`,"clients.rotateText":`La clé actuelle cesse de fonctionner tout de suite. Collez la nouvelle dans l'outil qui l'utilise.`,"clients.rotateButton":`Remplacer la clé`,"clients.deleteTitle":`Supprimer {name} ?`,"clients.deleteText":`Les appels avec sa clé sont refusés.`,"clients.deleteLast":`C'est le dernier client : l'API redevient ouverte à quiconque atteint douane.`,"clients.deleteButton":`Supprimer`,"notice.clientCreated":`Client créé.`,"notice.clientSaved":`Client enregistré.`,"notice.clientDeleted":`Client supprimé.`,"notice.keyReplaced":`Clé remplacée.`,"activity.client":`Client {name}`,"quickstart.keyRequired":`Une clé est obligatoire : utilisez une clé client de la page Clients au lieu de douane.`},ut=`douane-language`,dt={en:ct,fr:lt},ft={en:`en-US`,fr:`fr-FR`};function pt(){try{let e=localStorage.getItem(ut);return e===`en`||e===`fr`?e:`auto`}catch{return`auto`}}function mt(){if(typeof navigator>`u`)return`en`;let e=navigator.languages?.length?navigator.languages:[navigator.language];for(let t of e){let e=t?.toLowerCase()??``;if(e.startsWith(`fr`))return`fr`;if(e.startsWith(`en`))return`en`}return`en`}var ht=w({choice:typeof window>`u`?`auto`:pt(),detected:mt()});function gt(){return ht.choice}function _t(){return ht.choice===`auto`?ht.detected:ht.choice}function vt(){return ft[_t()]}function yt(){typeof document<`u`&&(document.documentElement.lang=_t())}function bt(e){ht.choice=e;try{e===`auto`?localStorage.removeItem(ut):localStorage.setItem(ut,e)}catch{}yt()}typeof window<`u`&&(yt(),window.addEventListener(`languagechange`,()=>{ht.detected=mt(),yt()}));function Z(e,t){let n=dt[_t()][e]??ct[e];return t?n.replace(/\{(\w+)\}/g,(e,n)=>n in t?String(t[n]):e):n}var xt=f(`
`),St=f(`
`);function Ct(e,n){I(n,!0);let r=F(n,`compact`,3,!1),i=j(()=>n.label??Z(`meter.left`)),a=j(()=>n.value==null?null:Math.min(100,Math.max(0,n.value)));var o=St();let s;var c=l(o),u=l(c),d=l(u,!0);k(u);var f=S(u),p=l(f,!0);k(f),k(c);var h=S(c,2),_=l(h),v=e=>{var n=xt();let r,i;y(()=>{r=Y(n,1,`meter-fill svelte-1dmbtuk`,null,r,{low:g(a)<25,medium:g(a)>=25&&g(a)<60}),i=ie(n,``,i,{width:`${g(a)??``}%`})}),t(e,n)};m(_,e=>{g(a)!=null&&e(v)}),k(h),k(o),y((e,t)=>{s=Y(o,1,`quota-meter svelte-1dmbtuk`,null,s,{compact:r()}),R(d,g(i)),R(p,e),M(h,`aria-label`,g(i)),M(h,`aria-valuenow`,g(a)??void 0),M(h,`aria-valuetext`,t)},[()=>g(a)==null?Z(`meter.unavailable`):Z(`common.percent`,{value:Math.round(g(a))}),()=>g(a)==null?Z(`meter.unavailable`):Z(`meter.valueLeft`,{value:Math.round(g(a))})]),t(e,o),q()}var wt=new Set([`$$slots`,`$$events`,`$$legacy`]);function Tt(e,t){let n=E(t,wt),r=[[`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`}]];X(e,W({name:`pencil`},()=>n,{get iconNode(){return r}}))}var Et=new Set([`$$slots`,`$$events`,`$$legacy`]);function Dt(e,t){let n=E(t,Et),r=[[`path`,{d:`M20 6 9 17l-5-5`}]];X(e,W({name:`check`},()=>n,{get iconNode(){return r}}))}var Ot=[`chat`,`responses`,`messages`,``];function kt(e){return e===``?Z(`dialect.client`):{chat:`Chat Completions`,responses:`Responses`,messages:`Messages (Anthropic)`}[e]}var At=[`five-hour`,`daily`,`weekly`,`monthly`];function jt(e){return Z(`reserveWindow.${e}`)}function Mt(e){return{"five-hour":`five-hour`,daily:`daily`,weekly:`weekly`,"seven-day":`weekly`,seven_day:`weekly`,monthly:`monthly`}[e]??null}var Nt=class extends Error{status;constructor(e,t){super(t),this.status=e}};async function Q(e,t){let n=await fetch(`/admin/api${e}`,{...t,headers:{...t?.body?{"content-type":`application/json`}:{},...t?.headers}});if(!n.ok){let e=Z(`api.serverStatus`,{status:n.status});try{let t=await n.json();e=t.errors?.length?Rt(t.errors):typeof t.error==`string`?t.error:t.error?.message??t.message??e}catch{}throw new Nt(n.status,e)}return n.status===204?void 0:n.json()}var $={status:()=>Q(`/summary`),providers:()=>Q(`/providers`),accounts:()=>Q(`/accounts`),quotas:()=>Q(`/quotas`),models:()=>Q(`/models`),calls:()=>Q(`/calls?limit=100`),settings:()=>Q(`/settings`),refreshQuotas:e=>Q(`/quotas/refresh`,{method:`POST`,body:JSON.stringify({account_id:e})}),importAccounts:e=>Q(`/accounts/import`,{method:`POST`,body:JSON.stringify({files:e})}),importCredential:e=>Q(`/accounts/import`,{method:`POST`,body:JSON.stringify(e)}),updateEndpoint:(e,t)=>Q(`/accounts/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify(t)}),setAccountEnabled:(e,t)=>Q(`/accounts/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify({enabled:t})}),renameAccount:(e,t)=>Q(`/accounts/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify({name:t})}),setAccountReserve:(e,t,n)=>Q(`/accounts/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify({reserve_percent:t,reserve_windows:n})}),accountResets:e=>Q(`/accounts/${encodeURIComponent(e)}/resets`),redeemReset:(e,t)=>Q(`/accounts/${encodeURIComponent(e)}/resets/redeem`,{method:`POST`,body:JSON.stringify({confirmation:!0,request_id:t})}),deleteAccount:e=>Q(`/accounts/${encodeURIComponent(e)}`,{method:`DELETE`}),startOAuth:e=>Q(`/oauth/start`,{method:`POST`,body:JSON.stringify({provider:e})}),oauth:e=>Q(`/oauth/${encodeURIComponent(e)}`),oauthCallback:(e,t,n)=>Q(`/oauth/callback`,{method:`POST`,body:JSON.stringify({id:e,code:t,state:n})}),setModelEnabled:(e,t)=>Q(`/models/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify({enabled:t})}),settingsSave:e=>Q(`/settings`,{method:`PATCH`,body:JSON.stringify(e)}),clients:()=>Q(`/clients`),createClient:e=>Q(`/clients`,{method:`POST`,body:JSON.stringify(e)}),updateClient:(e,t)=>Q(`/clients/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify(t)}),deleteClient:e=>Q(`/clients/${encodeURIComponent(e)}`,{method:`DELETE`}),exportConfig:()=>Q(`/export`),restore:(e,t)=>Q(`/restore`,{method:`POST`,body:JSON.stringify({bundle:e,settings:t})})},Pt={codex:`Codex`,claude:`Claude`,gemini:`Gemini`,antigravity:`Antigravity`,qwen:`Qwen`,kimi:`Kimi`,copilot:`GitHub Copilot`,iflow:`iFlow`,opencode_go:`OpenCode Go`,xai:`Grok`,grok:`Grok`,openai_compatible:`OpenAI-compatible`};function Ft(e){return e.route||e.provider}function It(e){let t=new Map;for(let n of e){let e=Ft(n),r=t.get(e)??{id:e,provider:n.provider,name:n.route?n.name:Ht(n.provider),accounts:[]};r.accounts.push(n),t.set(e,r)}return[...t.values()]}function Lt(e,t=!1){return t?e:e.replace(/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}/gi,Z(`private.account`))}function Rt(e){return e.map(e=>typeof e==`string`?e:e.name?Z(`api.errorPrefix`,{name:Lt(e.name),error:e.error}):e.error).join(` `)}var zt={ready:`status.active`,active:`status.active`,disabled:`common.disabled`,exhausted:`status.exhausted`,cooldown:`status.cooldown`,expired:`status.expired`,error:`status.check`};function Bt(e){return Z(e.enabled?zt[e.status]??`status.check`:`common.disabled`)}function Vt(e){return e.enabled&&(!!e.last_error||![`ready`,`active`].includes(e.status))}function Ht(e,t=e){return e===`openai_compatible`?Z(`provider.openaiCompatible`):Pt[e]??t}function Ut(e){return new Intl.NumberFormat(vt(),{maximumFractionDigits:1}).format(e)}function Wt(e){return e==null?`-`:new Intl.NumberFormat(vt(),{notation:e>=1e4?`compact`:`standard`,maximumFractionDigits:1}).format(e)}function Gt(){return _t()===`en`?`numeric`:`2-digit`}function Kt(e){return e?new Intl.DateTimeFormat(vt(),{day:`2-digit`,month:`short`,hour:Gt(),minute:`2-digit`}).format(new Date(e)):`-`}function qt(e){if(!e)return Z(`date.unknown`);let t=new Date(e);if(Number.isNaN(t.getTime()))return Z(`date.unknown`);let n=Math.abs(t.getTime()-Date.now())>6048e5;return new Intl.DateTimeFormat(vt(),{weekday:`long`,...n?{day:`numeric`,month:`short`}:{},hour:Gt(),minute:`2-digit`}).format(t)}function Jt(e,t){return e==null?Z(`credit.unknown`):t===`USD`?new Intl.NumberFormat(vt(),{style:`currency`,currency:`USD`,maximumFractionDigits:2}).format(e):/^[A-Z]{3}_minor$/.test(t)?new Intl.NumberFormat(vt(),{style:`currency`,currency:t.slice(0,3),maximumFractionDigits:2}).format(e/100):`${new Intl.NumberFormat(vt(),{maximumFractionDigits:2}).format(e)} ${t===`credits`?Z(`credit.credits`):t}`}var Yt={weekly:`usage.weekly`,"codex weekly":`usage.weekly`,"grok weekly":`usage.weekly`,monthly:`usage.monthly`,"5 hours":`usage.fiveHours`,"five hour":`usage.fiveHours`,"extra usage":`usage.extra`,"additional usage":`usage.extra`,"codex credits":`usage.codexCredits`,"credit balance":`usage.creditBalance`,"premium requests":`usage.premiumRequests`,chat:`usage.chat`,completions:`usage.completions`};function Xt(e){let t=Yt[e.toLowerCase()];return t?Z(t):e}function Zt(){if(typeof crypto.randomUUID==`function`)return crypto.randomUUID();let e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}var Qt=f(``),$t=f(`
`),en=f(``);function tn(r,i){I(i,!0);let a=e(!1),o=e(``),s=e(!1),u=e(``),f=e(void 0);async function p(){h(o,i.account.name,!0),h(u,``),h(a,!0),await n(),g(f)?.focus(),g(f)?.select()}async function _(){if(g(s)||i.busy)return;let e=g(o).trim();if(!e||e.length>120||/[\x00-\x1f\x7f]/.test(e)){h(u,Z(`name.invalid`),!0);return}if(e===i.account.name){h(a,!1);return}h(s,!0),h(u,``);try{await i.rename(i.account,e),h(a,!1)}catch(e){h(u,Lt(e.message),!0)}finally{h(s,!1)}}var v=L(),b=C(v),x=e=>{var n=$t(),r=l(n);A(r),J(r,e=>h(f,e),()=>g(f));var p=S(r,2),v=l(p);Dt(l(v),{size:20}),k(v);var b=S(v);Pe(l(b),{size:20}),k(b),k(p);var x=S(p,2),C=e=>{var n=Qt(),r=l(n,!0);k(n),y(()=>R(r,g(u))),t(e,n)};m(x,e=>{g(u)&&e(C)}),k(n),y((e,t,n,a,o)=>{M(r,`aria-label`,e),r.disabled=g(s),M(v,`aria-label`,t),M(v,`title`,n),v.disabled=g(s)||!!i.busy,M(b,`aria-label`,a),M(b,`title`,o),b.disabled=g(s)},[()=>Z(`name.input`),()=>Z(`name.save`),()=>Z(`common.save`),()=>Z(`name.cancel`),()=>Z(`common.cancel`)]),d(`submit`,n,e=>{e.preventDefault(),_()}),c(`keydown`,r,e=>{e.key===`Escape`&&!g(s)&&h(a,!1)}),z(r,()=>g(o),e=>h(o,e)),c(`click`,b,()=>h(a,!1)),t(e,n)},w=e=>{var n=en(),r=l(n),a=l(r,!0);k(r),Tt(S(r),{size:15}),k(n),y((e,t)=>{M(n,`title`,e),n.disabled=!!i.busy,R(a,t)},[()=>Z(`name.rename`),()=>Lt(i.account.name)]),c(`click`,n,p),t(e,n)};m(b,e=>{g(a)?e(x):e(w,-1)}),t(r,v),q()}o([`keydown`,`click`]);var nn=new Set([`$$slots`,`$$events`,`$$legacy`]);function rn(e,t){let n=E(t,nn),r=[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`}]];X(e,W({name:`eye`},()=>n,{get iconNode(){return r}}))}var an=new Set([`$$slots`,`$$events`,`$$legacy`]);function on(e,t){let n=E(t,an),r=[[`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`}],[`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`}],[`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`}],[`path`,{d:`m2 2 20 20`}]];X(e,W({name:`eye-off`},()=>n,{get iconNode(){return r}}))}var sn=f(``);function cn(n,r){I(r,!0);let i=e(!1);var a=sn(),o=l(a);let s;var u=l(o,!0);k(o);var d=S(o,2),f=e=>{on(e,{size:16})},p=e=>{rn(e,{size:16})};m(d,e=>{g(i)?e(f):e(p,-1)}),k(a),y((e,t)=>{M(a,`aria-label`,e),M(a,`aria-pressed`,g(i)),M(a,`title`,t),M(o,`aria-hidden`,!g(i)),s=Y(o,1,`svelte-1n2y5u`,null,s,{blurred:!g(i)}),R(u,r.email)},[()=>Z(g(i)?`email.hide`:`email.show`),()=>Z(g(i)?`email.hide`:`email.show`)]),c(`click`,a,()=>h(i,!g(i))),t(n,a),q()}o([`click`]);var ln=f(``),un=f(` `),dn=f(``),fn=f(``),pn=f(`

`),mn=f(`

`,1),hn=f(`

`),gn=f(`

`,1),_n=f(`

`,1);function vn(n,r){I(r,!0);let i=e(null),a=e(!1),o=e(!1),s=e(``),u=e(``),f=e(!1),p=``,_=e(void 0),v=j(()=>r.account.enabled&&[`claude`,`codex`].includes(r.account.provider)),w=j(()=>`douane-reset-${r.account.id}`),T=j(()=>g(i)?.status===`ready`&&(g(i).available_count??0)>0);async function E(){if(!(!g(v)||g(a))){h(a,!0),h(s,``);try{h(i,await $.accountResets(r.account.id)),g(i).pending_request_id&&(sessionStorage.setItem(g(w),g(i).pending_request_id),h(f,!0))}catch(e){h(s,Lt(e.message),!0)}finally{h(a,!1)}}}x(()=>{g(v)?b(()=>{h(f,!!sessionStorage.getItem(g(w))),E()}):h(i,null)});function D(){p=g(i)?.pending_request_id??sessionStorage.getItem(g(w))??Zt(),h(s,``),h(u,``),g(_)?.showModal()}async function O(){if(!(g(o)||r.busy)){h(o,!0),h(s,``);try{sessionStorage.setItem(g(w),p),h(f,!0);let e={reset:`resets.reset`,already_redeemed:`resets.alreadyRedeemed`,nothing_to_reset:`resets.nothingToReset`,no_credit:`resets.noCredit`}[(await $.redeemReset(r.account.id,p)).outcome];if(!e)throw Error(Z(`resets.unconfirmed`));h(u,Z(e),!0),sessionStorage.removeItem(g(w)),h(f,!1),await E(),await r.updated()}catch(e){h(s,Lt(e.message),!0)}finally{h(o,!1)}}}var A=L(),N=C(A),P=e=>{var n=_n(),p=C(n),v=l(p),b=e=>{var n=ln(),o=l(n);Ae(o,{size:17});var s=S(o,1,!0);k(n),y(e=>{n.disabled=!!r.busy||g(a),R(s,e)},[()=>g(f)?Z(`resets.resume`):Z(`resets.button`,{count:g(i)?.available_count??0})]),c(`click`,n,D),t(e,n)},x=e=>{var n=un(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`resets.checking`)]),t(e,n)},w=e=>{var n=un(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`resets.none`)]),t(e,n)},A=e=>{var n=dn(),i=l(n,!0);k(n),y(e=>{n.disabled=!!r.busy,R(i,e)},[()=>Z(`resets.check`)]),c(`click`,n,E),t(e,n)};m(v,e=>{g(T)||g(f)?e(b):g(a)?e(x,1):g(i)?.status===`ready`?e(w,2):g(i)?.status!==`unsupported`&&e(A,3)});var j=S(v,2),N=e=>{var n=fn(),r=l(n,!0);k(n),y(()=>R(r,g(s))),t(e,n)};m(j,e=>{g(s)&&!g(_)?.open&&e(N)});var P=S(j,2),F=e=>{var n=pn(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Lt(g(i).error)]),t(e,n)};m(P,e=>{g(i)?.error&&!g(s)&&g(i).status!==`unsupported`&&e(F)}),k(p);var I=S(p,2),L=l(I),z=l(L),B=l(z),V=l(B,!0);k(B);var H=S(B);Pe(l(H),{size:22}),k(H),k(z);var U=S(z,2),W=l(U,!0);k(U);var G=S(U,2),ee=e=>{var n=mn(),r=C(n),i=l(r,!0);k(r);var a=S(r),o=l(a),s=l(o,!0);k(o),k(a),y(e=>{R(i,g(u)),R(s,e)},[()=>Z(`common.close`)]),c(`click`,o,()=>g(_)?.close()),t(e,n)},K=e=>{var n=gn(),a=C(n),u=l(a,!0);k(a);var d=S(a,2),p=e=>{var n=hn(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`resets.expiresFirst`,{date:Kt(g(i).next_expires_at)})]),t(e,n)};m(d,e=>{g(i)?.next_expires_at&&e(p)});var h=S(d,2),v=e=>{var n=hn(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`resets.pending`)]),t(e,n)};m(h,e=>{g(f)&&e(v)});var b=S(h,2),x=e=>{var n=fn(),r=l(n,!0);k(n),y(()=>R(r,g(s))),t(e,n)};m(b,e=>{g(s)&&e(x)});var w=S(b,2),T=l(w),E=l(T,!0);k(T);var D=S(T),A=l(D,!0);k(D),k(w),y((e,t,n)=>{R(u,e),T.disabled=g(o),R(E,t),D.disabled=g(o)||!!r.busy,R(A,n)},[()=>Z(`resets.warning`),()=>Z(`common.cancel`),()=>g(o)?Z(`resets.running`):g(f)?Z(`resets.retrySame`):Z(`resets.use`)]),c(`click`,T,()=>g(_)?.close()),c(`click`,D,O),t(e,n)};m(G,e=>{g(u)?e(ee):e(K,-1)}),k(L),k(I),J(I,e=>h(_,e),()=>g(_)),y((e,t,n)=>{R(V,e),M(H,`aria-label`,t),H.disabled=g(o),R(W,n)},[()=>Z(`resets.title`),()=>Z(`resets.closeConfirmation`),()=>Lt(r.account.name)]),d(`cancel`,I,e=>{g(o)&&e.preventDefault()}),c(`click`,H,()=>g(_)?.close()),t(e,n)};m(N,e=>{g(v)&&e(P)}),t(n,A),q()}o([`click`]);var yn=new Set([`$$slots`,`$$events`,`$$legacy`]);function bn(e,t){let n=E(t,yn),r=[[`polyline`,{points:`22 12 16 12 14 15 10 15 8 12 2 12`}],[`path`,{d:`M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z`}]];X(e,W({name:`inbox`},()=>n,{get iconNode(){return r}}))}var xn=f(``),Sn=f(`

`);function Cn(e,n){var r=Sn(),i=l(r);bn(l(i),{size:22}),k(i);var a=S(i,2),o=l(a,!0);k(a);var s=S(a),u=l(s,!0);k(s);var d=S(s,2),f=e=>{var r=xn(),i=l(r,!0);k(r),y(()=>R(i,n.action)),c(`click`,r,function(...e){n.onclick?.apply(this,e)}),t(e,r)};m(d,e=>{n.action&&n.onclick&&e(f)}),k(r),y(()=>{R(o,n.title),R(u,n.description)}),t(e,r)}o([`click`]);var wn=f(``),Tn=f(`
`),En=f(`
`),Dn=f(``,1),On=f(`
`),kn=f(`

`),An=f(`

`),jn=f(`
`),Mn=f(``),Nn=f(` `),Pn=f(`

`),Fn=f(`

`),In=f(`

`),Ln=f(` `),Rn=f(`

`),zn=f(`
`),Bn=f(`
`),Vn=f(`
`),Hn=f(`

`),Un=f(`
`),Wn=f(`

`,1);function Gn(n,r){I(r,!0);let i=F(r,`providers`,19,()=>[]),a=e(`all`),o=e(``),s=e(`name`),u=e(null),d=[`claude`,`codex`,`opencode_go`,`xai`],f=j(()=>new Set(i().filter(e=>!e.quota).map(e=>e.id))),p=j(()=>[...new Set(r.accounts.map(e=>e.provider).filter(e=>!g(f).has(e)))].sort((e,t)=>(d.indexOf(e)<0?99:d.indexOf(e))-(d.indexOf(t)<0?99:d.indexOf(t))||Ht(e).localeCompare(Ht(t)))),_=j(()=>r.accounts.filter(e=>(g(a)===`all`||!g(p).includes(g(a))||e.provider===g(a))&&`${e.name} ${e.email??``}`.toLowerCase().includes(g(o).toLowerCase())).sort((e,t)=>g(s)===`remaining`?(V(e.id)??101)-(V(t.id)??101):e.name.localeCompare(t.name))),b=j(()=>g(p).map(e=>({id:e,accounts:g(_).filter(t=>t.provider===e)})).filter(e=>e.accounts.length));function x(e){return r.settings?.quota_display?.[e]??`accounts`}async function w(e,t){await r.setQuotaDisplay(e,t.value),t.value=x(e)}function E(e){let t=new Set(r.accounts.filter(t=>t.provider===e).map(e=>e.id)),n=new Map;for(let e of r.quotas)if(t.has(e.account_id))for(let t of e.windows)n.has(t.id)||n.set(t.id,t);return[...n.values()]}function D(e){let t=r.settings?.quota_windows?.[e],n=t?.primary??null;return{hidden:(t?.hidden??[]).filter(e=>e!==n),primary:n}}function O(e,t){let n=D(e),i=n.hidden.includes(t)?n.hidden.filter(e=>e!==t):[...n.hidden,t];return r.setQuotaWindows(e,{...n,hidden:i})}function B(e,t){let n=D(e);return r.setQuotaWindows(e,{hidden:n.hidden.filter(e=>e!==t),primary:t})}function V(e){let t=r.quotas.find(t=>t.account_id===e)?.windows.map(e=>e.remaining_percent).filter(e=>e!=null)??[];return t.length?Math.min(...t):null}var H=Wn(),U=C(H),W=l(U),G=l(W,!0);k(W);var ee=S(W,2),K=l(ee),J=l(K);{let e=j(()=>r.busy===`quotas`?`spinning`:``);Ae(J,{size:18,get class(){return g(e)}})}var te=S(J,1,!0);k(K);var ne=S(K),re=l(ne);Be(re,{size:20});var ie=S(re,1,!0);k(ne),k(ee),k(U);var ae=S(U,2),oe=e=>{var n=Tn(),i=l(n);let o;var s=l(i),u=S(s),d=l(u,!0);k(u),k(i);var f=S(i,2);v(f,16,()=>g(p),e=>e,(e,n)=>{var i=wn();let o;var s=l(i);st(s,{get provider(){return n},size:22});var u=S(s,1,!0),d=S(u),f=l(d,!0);k(d),k(i),y((e,t)=>{M(i,`aria-pressed`,g(a)===n),o=Y(i,1,``,null,o,{active:g(a)===n}),R(u,e),R(f,t)},[()=>Ht(n),()=>r.accounts.filter(e=>e.provider===n).length]),c(`click`,i,()=>h(a,n,!0)),t(e,i)}),k(n),y((e,t,r)=>{M(n,`aria-label`,e),M(i,`aria-pressed`,g(a)===`all`),o=Y(i,1,``,null,o,{active:g(a)===`all`}),R(s,`${t??``} `),R(d,r)},[()=>Z(`quotas.filter`),()=>Z(`quotas.all`),()=>r.accounts.filter(e=>g(p).includes(e.provider)).length]),c(`click`,i,()=>h(a,`all`)),t(e,n)};m(ae,e=>{g(p).length>1&&e(oe)});var se=S(ae,2),ce=l(se),le=l(ce);Re(le,{size:18});var ue=S(le);A(ue),k(ce);var de=S(ce),fe=l(de),X=l(fe,!0);k(fe),fe.value=fe.__value=`name`;var pe=S(fe),me=l(pe,!0);k(pe),pe.value=pe.__value=`remaining`,k(de),k(se);var he=S(se,2),ge=e=>{var n=En(),i=l(n);{let e=j(()=>Z(`common.noAccountConnected`)),t=j(()=>Z(`quotas.emptyDescription`)),n=j(()=>Z(`common.connectAccount`));Cn(i,{get title(){return g(e)},get description(){return g(t)},get action(){return g(n)},get onclick(){return r.connect}})}k(n),t(e,n)},_e=e=>{var n=En(),r=l(n);{let e=j(()=>Z(`common.noMatchingAccount`)),t=j(()=>Z(`common.tryOtherName`));Cn(r,{get title(){return g(e)},get description(){return g(t)}})}k(n),t(e,n)},ve=e=>{var n=Un();v(n,21,()=>g(b),e=>e.id,(e,n)=>{var i=Hn(),a=l(i),o=l(a);st(o,{get provider(){return g(n).id},size:29});var s=S(o),d=l(s,!0);k(s);var f=S(s),p=l(f,!0);k(f);var _=S(f),b=e=>{var i=Dn(),a=C(i),o=l(a),s=l(o,!0);k(o);var d=S(o),f=l(d),p=l(f,!0);k(f),f.value=f.__value=`accounts`;var m=S(f),_=l(m,!0);k(m),m.value=m.__value=`average`,k(d);var v;N(d),k(a);var b=S(a),E=l(b);We(E,{size:16});var D=S(E,1,!0);k(b),y((e,t,i,o,c,l,f)=>{M(a,`title`,e),R(s,t),d.disabled=!!r.busy,R(p,i),R(_,o),v!==(v=c)&&(d.value=(d.__value=c)??``,T(d,c)),M(b,`aria-expanded`,g(u)===g(n).id),M(b,`aria-controls`,`windows-${g(n).id??``}`),M(b,`title`,l),R(D,f)},[()=>Z(`quotas.displayTitle`,{provider:Ht(g(n).id)}),()=>Z(`quotas.displayLabel`),()=>Z(`quotas.perAccount`),()=>Z(`quotas.average`),()=>x(g(n).id),()=>Z(`quotas.windowsTitle`,{provider:Ht(g(n).id)}),()=>Z(`quotas.windows`)]),c(`change`,d,e=>w(g(n).id,e.currentTarget)),c(`click`,b,()=>h(u,g(u)===g(n).id?null:g(n).id,!0)),t(e,i)};m(_,e=>{r.settings&&e(b)}),k(a);var A=S(a,2),P=e=>{let i=j(()=>D(g(n).id));var a=jn(),o=l(a);v(o,17,()=>E(g(n).id),e=>e.id,(e,a)=>{let o=j(()=>g(i).primary===g(a).id),s=j(()=>g(o)||!g(i).hidden.includes(g(a).id));var u=On();let d;var f=l(u),p=l(f,!0);k(f);var m=S(f,2);let h;var _=l(m);Ke(_,{size:16});var v=S(_,1,!0);k(m);var b=S(m,2);let x;k(u),y((e,t,n)=>{d=Y(u,1,`window-choice svelte-137c7x1`,null,d,{"hidden-window":!g(s)}),R(p,e),h=Y(m,1,`primary-choice svelte-137c7x1`,null,h,{on:g(o)}),M(m,`aria-pressed`,g(o)),m.disabled=!!r.busy,R(v,t),x=Y(b,1,`switch`,null,x,{on:g(s)}),M(b,`aria-checked`,g(s)),M(b,`aria-label`,n),b.disabled=!!r.busy||g(o)},[()=>Xt(g(a).label),()=>Z(g(o)?`quotas.primary`:`quotas.makePrimary`),()=>Z(`quotas.showWindow`,{label:Xt(g(a).label)})]),c(`click`,m,()=>B(g(n).id,g(o)?null:g(a).id)),c(`click`,b,()=>O(g(n).id,g(a).id)),t(e,u)},e=>{var n=kn(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`quotas.noWindow`)]),t(e,n)});var s=S(o,2),u=e=>{var n=An(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`quotas.defaultWindow`)]),t(e,n)},d=j(()=>!g(i).primary&&E(g(n).id).length);m(s,e=>{g(d)&&e(u)}),k(a),y(e=>{M(a,`id`,`windows-${g(n).id??``}`),M(a,`aria-label`,e)},[()=>Z(`quotas.windowsLabel`,{provider:Ht(g(n).id)})]),t(e,a)};m(A,e=>{r.settings&&g(u)===g(n).id&&e(P)});var F=S(A,2);v(F,21,()=>g(n).accounts,e=>e.id,(e,n)=>{let i=j(()=>r.quotas.find(e=>e.account_id===g(n).id)),a=j(()=>g(i)?.subscription??g(n).subscription);var o=Vn();let s;var u=l(o),d=l(u);tn(d,{get account(){return g(n)},get rename(){return r.rename},get busy(){return r.busy}});var f=S(d),p=e=>{var r=Mn(),i=l(r,!0);k(r),y(()=>R(i,g(a)?.label??g(n).plan)),t(e,r)};m(f,e=>{(g(a)?.label||g(n).plan)&&e(p)});var h=S(f),_=e=>{cn(e,{get email(){return g(n).email}})};m(h,e=>{g(n).email&&e(_)}),vn(S(h),{get account(){return g(n)},get busy(){return r.busy},get updated(){return r.resetUpdated}}),k(u);var b=S(u,2),x=l(b),w=e=>{var r=Fn(),a=l(r),o=l(a,!0);k(a);var s=S(a),c=e=>{var r=Nn(),i=l(r,!0);He(S(i),{size:16}),k(r),y((e,t)=>{M(r,`href`,e),R(i,t)},[()=>`/admin/api/accounts/${encodeURIComponent(g(n).id)}/verification`,()=>Z(`common.verifyGoogle`)]),t(e,r)},u=e=>{var n=Pn(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`common.openAntigravity`)]),t(e,n)};m(s,e=>{g(i).verification_available?e(c):e(u,-1)}),k(r),y(e=>R(o,e),[()=>Z(`quotas.googleVerify`)]),t(e,r)};m(x,e=>{g(i)?.verification_required&&e(w)});var T=S(x,2),E=l(T),D=e=>{var n=L(),r=C(n);v(r,17,()=>g(i).windows,e=>e.id,(e,n)=>{var r=In(),i=l(r);{let e=j(()=>Xt(g(n).label));Ct(i,{get value(){return g(n).remaining_percent},get label(){return g(e)}})}var a=S(i),o=l(a);Ae(o,{size:16});var s=S(o,1,!0);k(a),k(r),y((e,t)=>{M(a,`title`,e),R(s,t)},[()=>g(n).reset_at?Z(`quotas.resetAt`,{date:Kt(g(n).reset_at)}):void 0,()=>qt(g(n).reset_at)]),t(e,r)}),t(e,n)},O=e=>{var n=kn(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>g(i)?.error?Lt(g(i).error):Z(`quotas.notReported`)]),t(e,n)};m(E,e=>{g(i)?.windows.length?e(D):g(i)?.verification_required||e(O,1)}),k(T);var A=S(T,2),N=e=>{var n=Bn();v(n,21,()=>g(i).credits,e=>e.id,(e,n)=>{var r=zn(),i=l(r),a=l(i),o=l(a,!0);k(a);var s=S(a),c=l(s,!0),u=S(c),d=e=>{var n=Ln(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>` ${Z(`quotas.remaining`)}`]),t(e,n)};m(u,e=>{g(n).enabled!==!1&&g(n).remaining!=null&&e(d)}),k(s),k(i);var f=S(i),p=e=>{var r=Pn(),i=l(r,!0);k(r),y(e=>R(i,e),[()=>g(n).limit==null?Z(`quotas.used`,{used:Jt(g(n).used,g(n).unit)}):Z(`quotas.usedOf`,{used:Jt(g(n).used,g(n).unit),limit:Jt(g(n).limit,g(n).unit)})]),t(e,r)};m(f,e=>{g(n).used!=null&&e(p)});var h=S(f),_=e=>{var r=Rn(),i=l(r);Ae(i,{size:16});var a=S(i,1,!0);k(r),y(e=>R(a,e),[()=>qt(g(n).reset_at)]),t(e,r)};m(h,e=>{g(n).reset_at&&e(_)}),k(r),y((e,t)=>{R(o,e),R(c,t)},[()=>Xt(g(n).label),()=>g(n).enabled===!1?Z(`common.disabled`):g(n).unlimited?Z(`quotas.unlimited`):Jt(g(n).remaining,g(n).unit)]),t(e,r)}),k(n),t(e,n)};m(A,e=>{g(i)?.credits?.length&&e(N)}),k(b);var P=S(b,2),F=l(P);let I;var z=S(l(F),1,!0);k(F);var B=S(F);Ae(l(B),{size:19}),k(B),k(P),k(o),y((e,t,i,a)=>{s=Y(o,1,`quota-row svelte-137c7x1`,null,s,{"disabled-row":!g(n).enabled}),I=Y(F,1,`state-badge`,null,I,e),R(z,t),B.disabled=!!r.busy,M(B,`title`,i),M(B,`aria-label`,a)},[()=>({warning:!!g(i)?.error||Vt(g(n))||g(n).enabled&&!!g(n).reserve_reached,inactive:!g(n).enabled}),()=>g(n).enabled?g(i)?.error?Z(`status.check`):g(n).reserve_reached&&[`ready`,`active`].includes(g(n).status)?Z(`status.reserveReached`):Bt(g(n)):Z(`common.disabled`),()=>Z(`quotas.refreshAccount`),()=>Z(`quotas.refreshNamed`,{name:Lt(g(n).name)})]),c(`click`,B,()=>r.refresh(g(n).id)),t(e,o)}),k(F),k(i),y((e,t,n)=>{M(i,`aria-label`,e),R(d,t),R(p,n)},[()=>Z(`quotas.group`,{provider:Ht(g(n).id)}),()=>Ht(g(n).id),()=>Z(g(n).accounts.length===1?`common.accountCount.one`:`common.accountCount.other`,{count:g(n).accounts.length})]),t(e,i)}),k(n),t(e,n)};m(he,e=>{r.accounts.length?g(_).length?e(ve,-1):e(_e,1):e(ge)}),y((e,t,n,i,a,o,s,c)=>{R(G,e),K.disabled=!!r.busy||!r.accounts.length,R(te,t),R(ie,n),M(ue,`placeholder`,i),M(ue,`aria-label`,a),M(de,`aria-label`,o),R(X,s),R(me,c)},[()=>Z(`nav.quotas`),()=>Z(`quotas.refresh`),()=>Z(`common.connectAccount`),()=>Z(`quotas.search`),()=>Z(`common.searchAccount`),()=>Z(`quotas.sort`),()=>Z(`quotas.byName`),()=>Z(`quotas.byRemaining`)]),c(`click`,K,()=>r.refresh()),c(`click`,ne,function(...e){r.connect?.apply(this,e)}),z(ue,()=>g(o),e=>h(o,e)),P(de,()=>g(s),e=>h(s,e)),t(n,H),q()}o([`click`,`change`]);var Kn=new Set([`$$slots`,`$$events`,`$$legacy`]);function qn(e,t){let n=E(t,Kn),r=[[`path`,{d:`M12 3v12`}],[`path`,{d:`m17 8-5-5-5 5`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}]];X(e,W({name:`upload`},()=>n,{get iconNode(){return r}}))}var Jn=new Set([`$$slots`,`$$events`,`$$legacy`]);function Yn(e,t){let n=E(t,Jn),r=[[`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`}]];X(e,W({name:`trash-2`},()=>n,{get iconNode(){return r}}))}var Xn=new Set([`$$slots`,`$$events`,`$$legacy`]);function Zn(e,t){let n=E(t,Xn),r=[[`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`}]];X(e,W({name:`shield-check`},()=>n,{get iconNode(){return r}}))}var Qn=f(``),$n=f(`
`),er=f(``),tr=f(``),nr=f(`
`),rr=f(`

`),ir=f(`

`),ar=f(` `,1);function or(r,i){I(i,!0);let a=e(!1),o=e(``),s=e(w([])),u=e(!1),f=e(``),p=e(void 0),_=j(()=>i.account.reserve_percent??null),b=j(()=>i.account.reserve_windows??[]),x=j(()=>At.filter(e=>g(b).includes(e)||i.quota?.windows.some(t=>t.remaining_percent!=null&&Mt(t.id)===e))),T=j(()=>At.filter(e=>g(b).includes(e)).map(jt).join(` + `));async function E(){h(o,g(_)==null?``:String(g(_)),!0),h(s,[...g(b)],!0),h(f,``),h(a,!0),await n(),g(p)?.focus(),g(p)?.select()}function D(e){h(s,g(s).includes(e)?g(s).filter(t=>t!==e):[...g(s),e],!0)}async function O(e,t){if(!(g(u)||i.busy)){if(e===g(_)&&t.length===g(b).length&&t.every(e=>g(b).includes(e))){h(a,!1);return}h(u,!0),h(f,``);try{await i.save(i.account,e,t)?h(a,!1):h(f,Z(`reserve.notSaved`),!0)}finally{h(u,!1)}}}function N(){let e=g(o).trim().replace(`,`,`.`);if(!e)return O(null,[]);let t=Number(e);if(!/^\d+(\.\d+)?$/.test(e)||t>=100){h(f,Z(`reserve.invalid`),!0);return}return t===0?O(null,[]):O(t,g(s))}var P=L(),F=C(P),B=e=>{var n=nr(),r=l(n),b=l(r),C=l(b,!0);k(b);var w=S(b);A(w),J(w,e=>h(p,e),()=>g(p)),te(),k(r);var T=S(r,2),E=l(T);Dt(l(E),{size:20}),k(E);var j=S(E);Pe(l(j),{size:20}),k(j),k(T);var P=S(T,2),F=e=>{var n=$n(),r=l(n);let i;var a=l(r,!0);k(r);var o=S(r,2);v(o,16,()=>g(x),e=>e,(e,n)=>{var r=Qn();let i;var a=l(r,!0);k(r),y((e,t,n)=>{i=Y(r,1,`chip svelte-c6cuiu`,null,i,e),M(r,`aria-pressed`,t),r.disabled=g(u),R(a,n)},[()=>({on:g(s).includes(n)}),()=>g(s).includes(n),()=>jt(n)]),c(`click`,r,()=>D(n)),t(e,r)}),k(n),y((e,t,o)=>{M(n,`aria-label`,e),i=Y(r,1,`chip svelte-c6cuiu`,null,i,{on:!g(s).length}),M(r,`aria-pressed`,!g(s).length),M(r,`title`,t),r.disabled=g(u),R(a,o)},[()=>Z(`reserve.watched`),()=>Z(`reserve.longestTitle`),()=>Z(`reserve.longest`)]),c(`click`,r,()=>h(s,[],!0)),t(e,n)};m(P,e=>{g(x).length>1&&e(F)});var I=S(P,2),L=e=>{var n=er(),r=l(n,!0);k(n),y(e=>{n.disabled=g(u)||!!i.busy,R(r,e)},[()=>Z(`reserve.remove`)]),c(`click`,n,()=>O(null,[])),t(e,n)};m(I,e=>{g(_)!=null&&e(L)});var B=S(I,2),V=e=>{var n=tr(),r=l(n,!0);k(n),y(()=>R(r,g(f))),t(e,n)};m(B,e=>{g(f)&&e(V)}),k(n),y((e,t,n,r,a,o)=>{R(C,e),M(w,`aria-label`,t),w.disabled=g(u),M(E,`aria-label`,n),M(E,`title`,r),E.disabled=g(u)||!!i.busy,M(j,`aria-label`,a),M(j,`title`,o),j.disabled=g(u)},[()=>Z(`reserve.keepAtLeast`),()=>Z(`reserve.input`),()=>Z(`reserve.save`),()=>Z(`common.save`),()=>Z(`common.cancel`),()=>Z(`common.cancel`)]),d(`submit`,n,e=>{e.preventDefault(),N()}),c(`keydown`,w,e=>{e.key===`Escape`&&!g(u)&&h(a,!1)}),z(w,()=>g(o),e=>h(o,e)),c(`click`,j,()=>h(a,!1)),t(e,n)},V=e=>{var n=ar(),r=C(n);let a;var o=l(r);Zn(o,{size:16});var s=S(o,1,!0);k(r);var u=S(r,2),d=e=>{var n=rr(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`reserve.reached`)]),t(e,n)},f=e=>{var n=ir(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(g(b).length?`reserve.inactiveWindows`:`reserve.inactiveAccount`)]),t(e,n)};m(u,e=>{g(_)!=null&&i.account.enabled&&i.account.reserve_reached?e(d):g(_)!=null&&i.account.reserve_measured===!1&&e(f,1)}),y((e,t)=>{a=Y(r,1,`reserve svelte-c6cuiu`,null,a,{set:g(_)!=null}),r.disabled=!!i.busy,M(r,`title`,e),R(s,t)},[()=>g(b).length?Z(`reserve.titleWatched`,{windows:g(T)}):Z(`reserve.titleLongest`),()=>g(_)==null?Z(`reserve.add`):`${Z(`reserve.label`,{percent:Ut(g(_))})}${g(b).length?` · ${g(T)}`:``}`]),c(`click`,r,E),t(e,n)};m(F,e=>{g(a)?e(B):e(V,-1)}),t(r,P),q()}o([`keydown`,`click`]);var sr=f(``),cr=f(`
`),lr=f(` `),ur=f(` `),dr=f(`
`);function fr(n,r){I(r,!0);let i=e(!1),a=e(``),o=e(``),s=e(``),u=e(``),f=e(``),p=j(()=>kt(r.account.dialect??``));function _(){h(a,r.account.route??``,!0),h(o,r.account.base_url??``,!0),h(s,r.account.dialect??``,!0),h(u,(r.account.models??[]).join(`, `),!0),h(f,``),h(i,!0)}async function b(e){e.preventDefault();let t={},n=g(a).trim().toLowerCase();n&&n!==(r.account.route??``)&&(t.route=n),g(o).trim()&&g(o).trim()!==(r.account.base_url??``)&&(t.base_url=g(o).trim()),(g(s)||null)!==(r.account.dialect??null)&&(t.dialect=g(s)||null);let c=g(u).split(`,`).map(e=>e.trim()).filter(Boolean);if(c.join(`,`)!==(r.account.models??[]).join(`,`)&&(t.models=c),g(f).trim()&&(t.api_key=g(f).trim()),!Object.keys(t).length){h(i,!1);return}await r.save(r.account,t)&&(h(i,!1),h(f,``))}var x=L(),w=C(x),T=e=>{var n=cr(),p=l(n),m=l(p,!0),_=S(m);A(_),M(_,`pattern`,`[a-z0-9][a-z0-9_\\-]{0,31}`),k(p);var x=S(p,2),C=l(x,!0),w=S(C);A(w),k(x);var T=S(x,2),E=l(T,!0),D=S(E);v(D,20,()=>Ot,e=>e,(e,n)=>{var r=sr(),i=l(r,!0);k(r);var a={};y(e=>{R(i,e),a!==(a=n)&&(r.value=(r.__value=n)??``)},[()=>kt(n)]),t(e,r)}),k(D),k(T);var O=S(T,2),j=l(O,!0),N=S(j);A(N),k(O);var F=S(O,2),I=l(F,!0),L=S(I);A(L),k(F);var B=S(F,2),V=l(B),H=l(V,!0);k(V);var U=S(V),W=l(U,!0);k(U),k(B),k(n),y((e,t,n,i,a,o,s,c,l)=>{R(m,e),R(C,t),R(E,n),R(j,i),M(N,`placeholder`,a),R(I,o),M(L,`placeholder`,s),V.disabled=!!r.busy,R(H,c),R(W,l)},[()=>Z(`endpoint.route`),()=>Z(`endpoint.url`),()=>Z(`endpoint.format`),()=>Z(`endpoint.models`),()=>Z(`endpoint.modelsPlaceholder`),()=>Z(`endpoint.newKey`),()=>Z(`endpoint.unchanged`),()=>Z(`common.save`),()=>Z(`common.cancel`)]),d(`submit`,n,b),z(_,()=>g(a),e=>h(a,e)),z(w,()=>g(o),e=>h(o,e)),P(D,()=>g(s),e=>h(s,e)),z(N,()=>g(u),e=>h(u,e)),z(L,()=>g(f),e=>h(f,e)),c(`click`,U,()=>{h(i,!1),h(f,``)}),t(e,n)},E=e=>{var n=dr(),i=l(n),a=e=>{var n=lr(),i=l(n);k(n),y(()=>R(i,`${r.account.route??``}/`)),t(e,n)};m(i,e=>{r.account.route&&e(a)});var o=S(i,2),s=l(o,!0);k(o);var u=S(o,2),d=e=>{var n=ur(),r=l(n,!0);k(n),y(()=>R(r,g(p))),t(e,n)};m(u,e=>{g(p)&&e(d)});var f=S(u,2);Tt(l(f),{size:15}),k(f),k(n),y((e,t)=>{M(o,`title`,r.account.base_url??``),R(s,r.account.base_url),M(f,`aria-label`,e),M(f,`title`,t),f.disabled=!!r.busy},[()=>Z(`endpoint.edit`),()=>Z(`endpoint.edit`)]),c(`click`,f,_),t(e,n)};m(w,e=>{g(i)?e(T):(r.account.route||r.account.base_url)&&e(E,1)}),t(n,x),q()}o([`click`]);var pr=f(`

`),mr=f(``),hr=f(`

`),gr=f(`
`),_r=f(``),vr=f(`

`,1);function yr(n,r){I(r,!0);let i=e(``),a=e(null),o,s=j(()=>r.accounts.filter(e=>`${e.name} ${e.provider} ${e.route??``} ${e.email??``}`.toLowerCase().includes(g(i).toLowerCase()))),u=e(!1);var f=vr(),p=C(f),_=l(p),b=l(_,!0);k(_);var x=S(_),w=l(x),T=l(w);qn(T,{size:18});var E=S(T,1,!0);k(w);var D=S(w),O=l(D);Be(O,{size:20});var N=S(O,1,!0);k(D),k(x),k(p);var P=S(p,2);J(P,e=>o=e,()=>o);var F=S(P,2),L=l(F),B=l(L,!0);k(L);var V=S(L),H=l(V);Re(H,{size:18});var U=S(H);A(U),k(V),k(F);var W=S(F,2);let G;var ee=l(W);qn(ee,{size:19});var K=S(ee),te=l(K,!0);k(K),k(W);var ne=S(W,2),re=l(ne),ie=e=>{{let t=j(()=>Z(`common.noAccountConnected`)),n=j(()=>Z(`accounts.emptyDescription`)),i=j(()=>Z(`common.connectAccount`));Cn(e,{get title(){return g(t)},get description(){return g(n)},get action(){return g(i)},get onclick(){return r.connect}})}},ae=e=>{{let t=j(()=>Z(`common.noMatchingAccount`)),n=j(()=>Z(`common.tryOtherName`));Cn(e,{get title(){return g(t)},get description(){return g(n)}})}},oe=e=>{var n=_r(),i=l(n),o=l(i),u=l(o),d=l(u),f=l(d,!0);k(d);var p=S(d),_=l(p,!0);k(p);var b=S(p),x=l(b,!0);k(b);var C=S(b),w=l(C,!0);k(C);var T=S(C),E=l(T,!0);k(T);var D=S(T),O=l(D,!0);k(D),k(u),k(o);var A=S(o);v(A,21,()=>g(s),e=>e.id,(e,n)=>{let i=j(()=>r.quotas.find(e=>e.account_id===g(n).id));var o=gr(),s=l(o),u=l(s);tn(u,{get account(){return g(n)},get rename(){return r.rename},get busy(){return r.busy}});var d=S(u),f=e=>{cn(e,{get email(){return g(n).email}})};m(d,e=>{g(n).email&&e(f)});var p=S(d),_=e=>{fr(e,{get account(){return g(n)},get busy(){return r.busy},get save(){return r.updateEndpoint}})};m(p,e=>{g(n).provider===`openai_compatible`&&e(_)});var v=S(p),b=e=>{var r=pr(),i=l(r,!0);k(r),y(e=>R(i,e),[()=>Lt(g(n).last_error)]),t(e,r)};m(v,e=>{g(n).last_error&&e(b)}),k(s);var x=S(s),C=l(x),w=l(C);st(w,{get provider(){return g(n).provider},size:23});var T=S(w,1,!0);k(C);var E=S(C),D=e=>{var r=mr(),a=l(r,!0);k(r),y(()=>R(a,g(i)?.subscription?.label??g(n).subscription?.label??g(n).plan)),t(e,r)};m(E,e=>{(g(i)?.subscription?.label||g(n).subscription?.label||g(n).plan)&&e(D)}),k(x);var O=S(x),A=l(O);let N;var P=S(l(A),1,!0);k(A),k(O);var F=S(O);or(l(F),{get account(){return g(n)},get quota(){return g(i)},get busy(){return r.busy},get save(){return r.setReserve}}),k(F);var I=S(F),L=l(I,!0);k(I);var z=S(I),B=l(z),V=l(B);let H;var U=S(V);Yn(l(U),{size:20}),k(U),k(B);var W=S(B),G=e=>{var i=hr(),o=l(i),s=l(o,!0);k(o);var u=S(o),d=l(u,!0);k(u);var f=S(u),p=l(f,!0);k(f),k(i),y((e,t,n)=>{R(s,e),u.disabled=!!r.busy,R(d,t),R(p,n)},[()=>Z(`accounts.deleteConfirm`),()=>Z(`accounts.deleteButton`),()=>Z(`common.cancel`)]),c(`click`,u,()=>{r.remove(g(n)),h(a,null)}),c(`click`,f,()=>h(a,null)),t(e,i)};m(W,e=>{g(a)===g(n).id&&e(G)}),k(z),k(o),y((e,t,i,a,o,s,c,l)=>{R(T,e),N=Y(A,1,`state-badge`,null,N,t),R(P,i),M(I,`data-label`,a),R(L,o),H=Y(V,1,`switch`,null,H,{on:g(n).enabled}),M(V,`aria-checked`,g(n).enabled),M(V,`aria-label`,s),V.disabled=!!r.busy,M(U,`aria-label`,c),M(U,`title`,l),U.disabled=!!r.busy},[()=>Ht(g(n).provider),()=>({inactive:!g(n).enabled,warning:Vt(g(n))}),()=>Bt(g(n)),()=>Z(`accounts.verifiedPrefix`),()=>g(i)?.updated_at?Kt(g(i).updated_at):Z(`accounts.notVerified`),()=>Z(`common.enable`,{name:Lt(g(n).name)}),()=>Z(`accounts.delete`,{name:Lt(g(n).name)}),()=>Z(`accounts.deleteTitle`)]),c(`click`,V,()=>r.toggle(g(n))),c(`click`,U,()=>h(a,g(n).id,!0)),t(e,o)}),k(A),k(i),k(n),y((e,t,n,r,i,a)=>{R(f,e),R(_,t),R(x,n),R(w,r),R(E,i),R(O,a)},[()=>Z(`accounts.colAccount`),()=>Z(`accounts.colSubscription`),()=>Z(`accounts.colStatus`),()=>Z(`accounts.colReserve`),()=>Z(`accounts.colVerified`),()=>Z(`accounts.colActions`)]),t(e,n)};m(re,e=>{r.accounts.length?g(s).length?e(oe,-1):e(ae,1):e(ie)}),k(ne),y((e,t,n,i,a,o,s,c)=>{R(b,e),w.disabled=!!r.busy,R(E,t),R(N,n),R(B,i),M(U,`placeholder`,a),M(U,`aria-label`,o),G=Y(W,1,`drop-zone svelte-1x1hfd6`,null,G,{dragging:g(u)}),M(W,`aria-label`,s),R(te,c)},[()=>Z(`accounts.title`),()=>Z(`common.import`),()=>Z(`common.connectAccount`),()=>Z(r.accounts.length===1?`common.accountCount.one`:`common.accountCount.other`,{count:r.accounts.length}),()=>Z(`common.searchAccount`),()=>Z(`common.searchAccount`),()=>Z(`accounts.dropLabel`),()=>Z(`accounts.drop`)]),c(`click`,w,()=>o.click()),c(`click`,D,function(...e){r.connect?.apply(this,e)}),c(`change`,P,e=>{e.currentTarget.files?.length&&r.importFiles(e.currentTarget.files),e.currentTarget.value=``}),z(U,()=>g(i),e=>h(i,e)),d(`dragover`,W,e=>{e.preventDefault(),h(u,!0)}),d(`dragleave`,W,()=>h(u,!1)),d(`drop`,W,e=>{e.preventDefault(),h(u,!1),e.dataTransfer?.files.length&&r.importFiles(e.dataTransfer.files)}),t(n,f),q()}o([`click`,`change`]);var br=new Set([`$$slots`,`$$events`,`$$legacy`]);function xr(e,t){let n=E(t,br),r=[[`path`,{d:`M12 7v6`}],[`path`,{d:`M12 9h2`}],[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.74 9.74 0 0 0-6.74 2.74L3 8`}],[`path`,{d:`M3 3v5h5`}],[`circle`,{cx:`12`,cy:`15`,r:`2`}]];X(e,W({name:`rotate-ccw-key`},()=>n,{get iconNode(){return r}}))}var Sr=new Set([`$$slots`,`$$events`,`$$legacy`]);function Cr(e,t){let n=E(t,Sr),r=[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`}],[`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`}]];X(e,W({name:`lock`},()=>n,{get iconNode(){return r}}))}var wr=new Set([`$$slots`,`$$events`,`$$legacy`]);function Tr(e,t){let n=E(t,wr),r=[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`}],[`path`,{d:`M7 11V7a5 5 0 0 1 9.9-1`}]];X(e,W({name:`lock-open`},()=>n,{get iconNode(){return r}}))}var Er=new Set([`$$slots`,`$$events`,`$$legacy`]);function Dr(e,t){let n=E(t,Er),r=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 16v-4`}],[`path`,{d:`M12 8h.01`}]];X(e,W({name:`info`},()=>n,{get iconNode(){return r}}))}var Or=new Set([`$$slots`,`$$events`,`$$legacy`]);function kr(e,t){let n=E(t,Or),r=[[`path`,{d:`M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z`}],[`path`,{d:`M21.21 15.89A10 10 0 1 1 8 2.83`}]];X(e,W({name:`chart-pie`},()=>n,{get iconNode(){return r}}))}var Ar=f(`

`);function jr(e,n){I(n,!0);let r=F(n,`locked`,3,!1),i=F(n,`wide`,3,!1),a;H(()=>(a.showModal(),()=>a.close()));var o=Ar();let s;var u=l(o),f=l(u),p=l(f,!0);k(f);var m=S(f);Pe(l(m),{size:20}),k(m),k(u);var h=S(u,2);ae(h,()=>n.children),k(o),J(o,e=>a=e,()=>a),y(e=>{s=Y(o,1,`modal svelte-1k2jq0p`,null,s,{wide:i()}),R(p,n.title),M(m,`aria-label`,e),m.disabled=r()},[()=>Z(`common.close`)]),d(`cancel`,o,e=>{e.preventDefault(),r()||n.close()}),c(`click`,m,function(...e){n.close?.apply(this,e)}),t(e,o),q()}o([`click`]);var Mr=f(``),Nr=f(`
`),Pr=f(`
`),Fr=f(``),Ir=f(``),Lr=f(`

`),Rr=f(``),zr=f(`

`);function Br(n,r){I(r,!0);let i=b(()=>G(r.client)),a=e(w(i?.name??``)),o=e(w(i?.access.all??!0)),s=e(w([...i?.access.pools??[]])),u=e(w([...i?.access.accounts??[]])),f=w(Object.fromEntries(Object.entries(i?.shares??{}).map(([e,t])=>[e,String(t)]))),p=e(!1),_=e(``),x=j(()=>It(r.accounts)),C=j(()=>g(x).filter(e=>g(o)||g(s).includes(e.id)||e.accounts.some(e=>g(u).includes(e.id))));function T(e){return r.clients.reduce((t,n)=>n.id===i?.id?t:t+(n.shares[e]??0),0)}function E(e){let t=Number((f[e]??``).trim().replace(`,`,`.`));return Number.isFinite(t)&&t>0?t:0}function O(e){return 100-T(e)-E(e)}function N(e){h(s,g(s).includes(e)?g(s).filter(t=>t!==e):[...g(s),e],!0)}function P(e){h(u,g(u).includes(e)?g(u).filter(t=>t!==e):[...g(u),e],!0)}async function F(e){if(e.preventDefault(),g(p))return;h(_,``);let t=g(o)?[]:g(x).filter(e=>g(s).includes(e.id)).map(e=>e.id),n=g(o)?[]:r.accounts.filter(e=>g(u).includes(e.id)&&!t.includes(e.route||e.provider)).map(e=>e.id);if(!g(o)&&!t.length&&!n.length){h(_,Z(`clients.pickAccess`),!0);return}let c={};for(let e of g(C)){let t=(f[e.id]??``).trim().replace(`,`,`.`);if(!t)continue;let n=Number(t);if(!/^\d+(\.\d+)?$/.test(t)||n<=0||n>100){h(_,Z(`clients.shareInvalid`),!0);return}c[e.id]=n}let l={name:g(a).trim(),access:{all:g(o),pools:t,accounts:n},shares:c};h(p,!0);try{r.saved(i?await $.updateClient(i.id,l):await $.createClient(l),!i)}catch(e){h(_,e.message,!0)}finally{h(p,!1)}}{let e=j(()=>i?Z(`clients.editTitle`,{name:i.name}):Z(`clients.new`));jr(n,{get title(){return g(e)},get close(){return r.close},get locked(){return g(p)},wide:!0,children:(e,n)=>{var b=zr(),w=l(b),T=l(w),E=l(T,!0);k(T);var I=S(T);A(I),k(w);var L=S(w,2),B=l(L),V=l(B,!0);k(B);var H=S(B,2),U=l(H),W=l(U),G=l(W,!0);k(W);var K=S(W),q=l(K,!0);k(K),k(U);var J=S(U);k(H);var ne=S(H,2),re=e=>{var n=Pr();v(n,21,()=>g(x),e=>e.id,(e,n)=>{let r=j(()=>g(s).includes(g(n).id));var i=Nr(),a=l(i),o=l(a);A(o);var d=S(o);st(d,{get provider(){return g(n).provider},size:20});var f=S(d),p=l(f,!0);k(f),k(a);var m=S(a,2);v(m,21,()=>g(n).accounts,e=>e.id,(e,n)=>{let i=j(()=>g(r)||g(u).includes(g(n).id));var a=Mr(),o=l(a,!0);k(a),y(e=>{Y(a,1,D([`chip`,g(i)&&`on`]),`svelte-vb71yz`),M(a,`aria-pressed`,g(i)),a.disabled=g(r),R(o,e)},[()=>Lt(g(n).name)]),c(`click`,a,()=>P(g(n).id)),t(e,a)}),k(m),k(i),y(e=>{M(a,`title`,e),ee(o,g(r)),R(p,g(n).name)},[()=>Z(`clients.wholePool`,{pool:g(n).name})]),c(`change`,o,()=>N(g(n).id)),t(e,i)}),k(n),t(e,n)};m(ne,e=>{g(o)||e(re)}),k(L);var ie=S(L,2),ae=l(ie),oe=l(ae,!0),se=S(oe);Dr(l(se),{size:16}),k(se),k(ae);var ce=S(ae,2),le=e=>{var n=Ir();v(n,21,()=>g(C),e=>e.id,(e,n)=>{let r=j(()=>O(g(n).id));var i=Fr(),a=l(i),o=l(a);st(o,{get provider(){return g(n).provider},size:22});var s=S(o,1,!0);k(a);var c=S(a),u=l(c);A(u),te(),k(c);var d=S(c),p=l(d,!0);k(d),k(i),y((e,t)=>{R(s,g(n).name),M(u,`aria-label`,e),Y(d,1,D([`share-common`,g(r)<0&&`over`]),`svelte-vb71yz`),R(p,t)},[()=>Z(`clients.shareOf`,{pool:g(n).name}),()=>g(r)<0?Z(`clients.overbooked`):Z(`clients.common`,{value:Ut(g(r))})]),z(u,()=>f[g(n).id],e=>f[g(n).id]=e),t(e,i)}),k(n),t(e,n)},ue=e=>{var n=Lr(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`clients.noPool`)]),t(e,n)};m(ce,e=>{g(C).length?e(le):e(ue,-1)}),k(ie);var de=S(ie,2),fe=e=>{var n=Rr(),r=l(n,!0);k(n),y(()=>R(r,g(_))),t(e,n)};m(de,e=>{g(_)&&e(fe)});var X=S(de,2),pe=l(X),me=l(pe,!0);k(pe);var he=S(pe),ge=l(he,!0);k(he),k(X),k(b),y((e,t,n,r,i,a,s,c,l,u,d,f)=>{R(E,e),M(I,`placeholder`,t),R(V,n),R(G,r),R(q,i),Y(J,1,D([`switch`,g(o)&&`on`])),M(J,`aria-checked`,g(o)),M(J,`aria-label`,a),R(oe,s),M(se,`title`,c),M(se,`aria-label`,l),pe.disabled=g(p),R(me,u),he.disabled=d,R(ge,f)},[()=>Z(`clients.name`),()=>Z(`clients.namePlaceholder`),()=>Z(`clients.access`),()=>Z(`clients.allAccounts`),()=>Z(`clients.allAccountsHint`),()=>Z(`clients.allAccounts`),()=>Z(`clients.shares`),()=>Z(`clients.sharesInfo`),()=>Z(`clients.sharesInfo`),()=>Z(`common.cancel`),()=>g(p)||!g(a).trim(),()=>Z(i?`common.save`:`clients.create`)]),d(`submit`,b,F),z(I,()=>g(a),e=>h(a,e)),c(`click`,J,()=>h(o,!g(o))),c(`click`,pe,function(...e){r.close?.apply(this,e)}),t(e,b)},$$slots:{default:!0}})}q()}o([`click`,`change`]);var Vr=new Set([`$$slots`,`$$events`,`$$legacy`]);function Hr(e,t){let n=E(t,Vr),r=[[`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`}]];X(e,W({name:`copy`},()=>n,{get iconNode(){return r}}))}async function Ur(e){try{if(navigator.clipboard?.writeText){await navigator.clipboard.writeText(e);return}}catch{}let t=document.activeElement instanceof HTMLElement?document.activeElement:null,n=t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement?t:null,r=n?.selectionStart!=null&&n.selectionEnd!=null?{start:n.selectionStart,end:n.selectionEnd,direction:n.selectionDirection}:null,i=document.getSelection(),a=i?Array.from({length:i.rangeCount},(e,t)=>i.getRangeAt(t).cloneRange()):[],o=document.createElement(`textarea`);o.value=e,o.readOnly=!0,o.tabIndex=-1,o.setAttribute(`aria-hidden`,`true`),o.style.cssText=`position:fixed;top:0;left:0;opacity:0;pointer-events:none;font-size:16px`;try{if((t?.closest(`dialog[open]`)??document.body).append(o),o.focus({preventScroll:!0}),o.select(),o.setSelectionRange(0,e.length),!document.execCommand(`copy`))throw Error(`Clipboard copy failed.`)}finally{if(o.remove(),t?.focus({preventScroll:!0}),i){i.removeAllRanges();for(let e of a)i.addRange(e)}n&&r&&n.setSelectionRange(r.start,r.end,r.direction??void 0)}}var Wr=f(` `,1),Gr=f(``),Kr=f(`

`,1);function qr(n,r){I(r,!0);let i=e(!1),a=e(``);async function o(){try{await Ur(r.key),h(i,!0),h(a,``)}catch{h(i,!1),h(a,Z(`common.copyRefused`),!0)}}{let e=j(()=>Z(`clients.keyTitle`,{name:r.name}));jr(n,{get title(){return g(e)},get close(){return r.close},children:(e,n)=>{var s=Kr(),u=C(s),d=l(u);be(d,{size:17});var f=S(d,1,!0);k(u);var p=S(u,2),h=l(p),_=l(h,!0);k(h);var v=S(h),b=l(v),x=e=>{var n=Wr(),r=C(n);Dt(r,{size:17});var i=S(r,1,!0);y(e=>R(i,e),[()=>Z(`clients.copied`)]),t(e,n)},w=e=>{var n=Wr(),r=C(n);Hr(r,{size:17});var i=S(r,1,!0);y(e=>R(i,e),[()=>Z(`clients.copyKey`)]),t(e,n)};m(b,e=>{g(i)?e(x):e(w,-1)}),k(v),k(p);var T=S(p,2),E=l(T,!0);k(T);var D=S(T,2),O=e=>{var n=Gr(),r=l(n,!0);k(n),y(()=>R(r,g(a))),t(e,n)};m(D,e=>{g(a)&&e(O)});var A=S(D,2),j=l(A),M=l(j,!0);k(j),k(A),y((e,t,n)=>{R(f,e),R(_,r.key),R(E,t),R(M,n)},[()=>Z(`clients.keyOnce`),()=>Z(`clients.keyBoite`),()=>Z(`common.close`)]),c(`click`,v,o),c(`click`,j,function(...e){r.close?.apply(this,e)}),t(e,s)},$$slots:{default:!0}})}q()}o([`click`]);var Jr=f(` `),Yr=f(` `),Xr=f(`

`),Zr=f(`
`),Qr=f(` `),$r=f(` `),ei=f(` `),ti=f(` `,1),ni=f(``),ri=f(` `),ii=f(``),ai=f(`
`),oi=f(`

`),si=f(`

`),ci=f(`

`),li=f(` `),ui=f(`

`),di=f(``),fi=f(`
`),pi=f(``),mi=f(`

`),hi=f(`
`),gi=f(`

`,1),_i=f(`

`),vi=f(`

`),yi=f(`

`,1),bi=f(``),xi=f(`
`,1),Si=f(`

`,1);function Ci(n,r){I(r,!0);let i=`#d6def0`,a=`#9b8ec4`,o=[`#7899ff`,`#4dd4ac`,`#f4c154`,`#c792ea`,`#5ccfe6`,`#ff9e7a`,`#a3e635`,`#f78fb3`],s=j(()=>r.report?.clients??[]),u=j(()=>r.report?.usage??[]),d=j(()=>It(r.accounts)),f=e(null),p=e(null),_=e(null),b=e(!1),x=e(``),w=j(()=>new Map(g(s).map((e,t)=>[e.id,o[t%o.length]]))),T=j(()=>new Map(g(s).map(e=>[e.id,e.name]))),E=j(()=>g(u).some(e=>(e.clients[``]??0)>0)),O=j(()=>g(u).some(e=>Object.entries(e.clients).some(([e,t])=>e&&!g(T).has(e)&&t>0)));function A(e){return Z(`common.percent`,{value:Ut(e)})}function N(e){return g(d).find(t=>t.id===e)??{id:e,provider:e,name:e,accounts:[]}}function P(e){let t=r.accounts.find(t=>t.id===e);return t?Lt(t.name):Z(`activity.unknownAccount`)}function F(e,t){return At.indexOf(e.kind)-At.indexOf(t.kind)}function L(e,t){return e.access.all||e.access.pools.includes(t.id)||t.accounts.some(t=>e.access.accounts.includes(t.id))}function z(e){return[...new Set([...g(d).filter(t=>L(e,t)).map(e=>e.id),...Object.keys(e.shares)])].map(t=>{let n=N(t),r=new Map;for(let t of g(u)){if(!n.accounts.some(e=>e.id===t.account_id))continue;let i=t.clients[e.id]??0,a=r.get(t.kind);(!a||i>a.points)&&r.set(t.kind,{kind:t.kind,points:i,account:t.account_id})}return{pool:n,share:e.shares[t]??null,kinds:[...r.values()].sort(F)}}).filter(e=>e.kinds.length||e.share!=null)}function B(e){let t=[];for(let n of g(s)){let r=e.clients[n.id]??0;r>0&&t.push({id:n.id,label:n.name,points:r,color:g(w).get(n.id)??o[0],kind:`client`})}let n=e.clients[``]??0;n>0&&t.push({id:`no-key`,label:Z(`clients.noKey`),points:n,color:i,kind:`client`});let r=Object.entries(e.clients).reduce((e,[t,n])=>t&&!g(T).has(t)?e+n:e,0);r>0&&t.push({id:`former`,label:Z(`clients.former`),points:r,color:a,kind:`client`}),e.outside>0&&t.push({id:`outside`,label:Z(`clients.outside`),points:e.outside,color:`#6f80a0`,kind:`outside`});let c=e.used-t.reduce((e,t)=>e+t.points,0);return c>.05&&t.push({id:`rest`,label:Z(`clients.unexplained`),points:c,color:``,kind:`rest`}),t}let V=j(()=>{let e=[],t=new Set;for(let n of g(d))for(let r of n.accounts){let n=g(u).filter(e=>e.account_id===r.id).sort(F);if(t.add(r.id),!n.length)continue;let i=e.find(e=>e.provider===r.provider);i||(i={provider:r.provider,name:Ht(r.provider),accounts:[]},e.push(i)),i.accounts.push({id:r.id,rows:n})}let n=[...new Set(g(u).filter(e=>!t.has(e.account_id)).map(e=>e.account_id))];return n.length&&e.push({provider:``,name:Z(`activity.unknownAccount`),accounts:n.map(e=>({id:e,rows:g(u).filter(t=>t.account_id===e).sort(F)}))}),e});function H(e){return{whole:e.access.pools.map(N),single:r.accounts.filter(t=>e.access.accounts.includes(t.id)&&!e.access.pools.includes(t.route||t.provider)),missing:e.access.accounts.filter(e=>!r.accounts.some(t=>t.id===e))}}function U(e,t){h(f,null),e.key&&h(p,{name:e.client.name,key:e.key},!0),r.updated(Z(t?`notice.clientCreated`:`notice.clientSaved`))}async function W(){let e=g(_);if(!(!e||g(b))){h(b,!0),h(x,``);try{if(e.kind===`rotate`){let t=await $.updateClient(e.client.id,{rotate_key:!0});h(_,null),t.key&&h(p,{name:t.client.name,key:t.key},!0),r.updated(Z(`notice.keyReplaced`))}else await $.deleteClient(e.client.id),h(_,null),r.updated(Z(`notice.clientDeleted`))}catch(e){h(x,e.message,!0)}finally{h(b,!1)}}}var G=Si(),ee=C(G),K=l(ee),J=l(K),te=l(J,!0);k(J);var ne=S(J,2),ae=e=>{var n=Xr(),i=l(n),a=e=>{var n=Jr(),r=l(n);Cr(r,{size:14});var i=S(r,1,!0);k(n),y(e=>R(i,e),[()=>Z(`clients.enforced`)]),t(e,n)},o=e=>{var n=Yr(),r=l(n);Tr(r,{size:16});var i=S(r,1,!0);k(n),y(e=>R(i,e),[()=>Z(`clients.open`)]),t(e,n)};m(i,e=>{r.report.enforced?e(a):e(o,-1)}),k(n),t(e,n)};m(ne,e=>{r.report&&e(ae)}),k(K);var oe=S(K,2),se=l(oe),ce=l(se);Be(ce,{size:20});var le=S(ce,1,!0);k(se),k(oe),k(ee);var ue=S(ee,2),de=e=>{var n=Zr(),r=l(n);{let e=j(()=>Z(`clients.emptyTitle`)),t=j(()=>Z(`clients.emptyDescription`)),n=j(()=>Z(`clients.new`));Cn(r,{get title(){return g(e)},get description(){return g(t)},get action(){return g(n)},onclick:()=>h(f,{client:null},!0)})}k(n),t(e,n)},fe=e=>{var n=gi(),o=C(n);v(o,21,()=>g(s),e=>e.id,(e,n)=>{let i=j(()=>H(g(n))),a=j(()=>Object.entries(g(n).shares));var o=ci();let s;var u=l(o),d=l(u),p=S(l(d)),b=l(p,!0);k(p);var T=S(p),E=l(T,!0);k(T),k(d);var D=S(d,2),O=l(D);Tt(l(O),{size:18}),k(O);var F=S(O,2);xr(l(F),{size:18}),k(F);var I=S(F,2);Yn(l(I),{size:18}),k(I),k(D),k(u);var L=S(u,2),B=l(L),V=e=>{var n=Qr(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`clients.allAccounts`)]),t(e,n)},U=e=>{var n=ti(),r=C(n);v(r,17,()=>g(i).whole,e=>e.id,(e,n)=>{var r=$r(),i=l(r);st(i,{get provider(){return g(n).provider},size:17});var a=S(i,1,!0);k(r),y(()=>R(a,g(n).name)),t(e,r)});var a=S(r,2);v(a,17,()=>g(i).single,e=>e.id,(e,n)=>{var r=$r(),i=l(r);st(i,{get provider(){return g(n).provider},size:17});var a=S(i,1,!0);k(r),y(e=>R(a,e),[()=>Lt(g(n).name)]),t(e,r)});var o=S(a,2);v(o,16,()=>g(i).missing,e=>e,(e,n)=>{var r=ei(),i=l(r,!0);k(r),y(e=>R(i,e),[()=>Z(`activity.unknownAccount`)]),t(e,r)});var s=S(o,2),c=e=>{var n=ei(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`clients.noAccess`)]),t(e,n)};m(s,e=>{!g(i).whole.length&&!g(i).single.length&&!g(i).missing.length&&e(c)}),t(e,n)};m(B,e=>{g(n).access.all?e(V):e(U,-1)}),k(L);var W=S(L,2);v(W,21,()=>g(a),([e,t])=>e,(e,n)=>{var r=j(()=>re(g(n),2));let i=()=>g(r)[0],a=()=>g(r)[1],o=j(()=>N(i()));var s=ni(),c=l(s);kr(c,{size:15});var u=S(c,1,!0),d=S(u),f=l(d,!0);k(d),k(s),y((e,t)=>{M(s,`title`,e),R(u,g(o).name),R(f,t)},[()=>Z(`clients.shareOf`,{pool:g(o).name}),()=>A(a())]),t(e,s)},e=>{var n=ri(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`clients.noShare`)]),t(e,n)}),k(W);var G=S(W,2);v(G,17,()=>z(g(n)),e=>e.pool.id,(e,n)=>{var r=si(),i=l(r),a=l(i);st(a,{get provider(){return g(n).pool.provider},size:18});var o=S(a,1,!0);k(i);var s=S(i,2);v(s,17,()=>g(n).kinds,e=>e.kind,(e,r)=>{var i=ai(),a=l(i),o=l(a,!0);k(a);var s=S(a,2),c=l(s);let u;var d=S(c),f=e=>{var r=ii();let i;y(e=>i=ie(r,``,i,e),[()=>({left:`${Math.min(100,g(n).share)}%`})]),t(e,r)};m(d,e=>{g(n).share!=null&&e(f)}),k(s);var p=S(s,2);let h;var _=l(p,!0);k(p),k(i),y((e,t,a,s)=>{M(i,`title`,e),R(o,t),u=ie(c,``,u,a),h=Y(p,1,`usage-value tabular svelte-15ihc32`,null,h,{over:g(n).share!=null&&g(r).points>=g(n).share}),R(_,s)},[()=>g(n).pool.accounts.length>1?Z(`clients.highest`,{name:P(g(r).account)}):void 0,()=>jt(g(r).kind),()=>({width:`${Math.min(100,g(r).points)}%`}),()=>g(n).share==null?A(g(r).points):Z(`clients.ofShare`,{used:Ut(g(r).points),share:Ut(g(n).share)})]),t(e,i)},e=>{var n=oi(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`clients.notMeasured`)]),t(e,n)}),k(r),y(()=>R(o,g(n).pool.name)),t(e,r)}),k(o),y((e,t,i,a,c,l,u,d)=>{s=ie(o,``,s,e),R(b,g(n).name),M(T,`title`,t),R(E,g(n).key_hint),M(O,`title`,i),M(O,`aria-label`,a),O.disabled=!!r.busy,M(F,`title`,c),M(F,`aria-label`,l),F.disabled=!!r.busy,M(I,`title`,u),M(I,`aria-label`,d),I.disabled=!!r.busy},[()=>({"--client":g(w).get(g(n).id)}),()=>Z(`clients.createdAt`,{date:Kt(g(n).created_at)}),()=>Z(`clients.editTitle`,{name:g(n).name}),()=>Z(`clients.editTitle`,{name:g(n).name}),()=>Z(`clients.rotate`),()=>Z(`clients.rotateNamed`,{name:g(n).name}),()=>Z(`clients.delete`),()=>Z(`clients.deleteNamed`,{name:g(n).name})]),c(`click`,O,()=>h(f,{client:g(n)},!0)),c(`click`,F,()=>{h(x,``),h(_,{kind:`rotate`,client:g(n)},!0)}),c(`click`,I,()=>{h(x,``),h(_,{kind:`delete`,client:g(n)},!0)}),t(e,o)}),k(o);var u=S(o,2),d=l(u),p=l(d,!0),b=S(p);Dr(l(b),{size:16}),k(b),k(d);var T=S(d,2),F=l(T);v(F,17,()=>g(s),e=>e.id,(e,n)=>{var r=li(),i=l(r);let a;var o=S(i,1,!0);k(r),y(e=>{a=ie(i,``,a,e),R(o,g(n).name)},[()=>({background:g(w).get(g(n).id)})]),t(e,r)});var I=S(F,2),L=e=>{var n=li(),r=l(n);ie(r,``,{},{background:i});var a=S(r,1,!0);k(n),y(e=>R(a,e),[()=>Z(`clients.noKey`)]),t(e,n)};m(I,e=>{g(E)&&e(L)});var U=S(I,2),W=e=>{var n=li(),r=l(n);ie(r,``,{},{background:a});var i=S(r,1,!0);k(n),y(e=>R(i,e),[()=>Z(`clients.former`)]),t(e,n)};m(U,e=>{g(O)&&e(W)});var G=S(U,2),ee=l(G);ie(ee,``,{},{background:`#6f80a0`});var K=S(ee,1,!0);k(G);var q=S(G,2),J=S(l(q),1,!0);k(q),k(T),k(u);var te=S(u,2),ne=e=>{var n=ui(),r=l(n),i=l(r,!0);k(r),k(n),y(e=>R(i,e),[()=>Z(`clients.breakdownEmpty`)]),t(e,n)},ae=e=>{var n=hi();v(n,21,()=>g(V),e=>e.provider,(e,n)=>{var r=mi(),i=l(r),a=l(i),o=e=>{st(e,{get provider(){return g(n).provider},size:24})};m(a,e=>{g(n).provider&&e(o)});var s=S(a),c=l(s,!0);k(s),k(i);var u=S(i,2);v(u,17,()=>g(n).accounts,e=>e.id,(e,n)=>{var r=pi(),i=l(r),a=l(i,!0);k(i);var o=S(i,2);v(o,21,()=>g(n).rows,e=>e.kind,(e,n)=>{var r=fi(),i=l(r),a=l(i,!0);k(i);var o=S(i,2);v(o,21,()=>B(g(n)),e=>e.id,(e,n)=>{var r=di();let i;y((e,t)=>{Y(r,1,D([`segment`,g(n).kind]),`svelte-15ihc32`),M(r,`title`,`${g(n).label??``}: ${e??``}`),i=ie(r,``,i,t)},[()=>A(g(n).points),()=>({width:`${Math.min(100,g(n).points)}%`,background:g(n).color||void 0})]),t(e,r)}),k(o);var s=S(o,2),c=l(s,!0);k(s);var u=S(s,2),d=l(u);Ae(d,{size:14});var f=S(d,1,!0);k(u),k(r),y((e,t,n,r,i)=>{R(a,e),M(o,`aria-label`,t),R(c,n),M(u,`title`,r),R(f,i)},[()=>jt(g(n).kind),()=>B(g(n)).map(e=>`${e.label} ${A(e.points)}`).join(`, `),()=>Z(`clients.used`,{value:Ut(g(n).used)}),()=>Z(`quotas.resetAt`,{date:Kt(new Date(g(n).reset*1e3).toISOString())}),()=>qt(new Date(g(n).reset*1e3).toISOString())]),t(e,r)}),k(o),k(r),y(e=>R(a,e),[()=>P(g(n).id)]),t(e,r)}),k(r),y(()=>R(c,g(n).name)),t(e,r)}),k(n),t(e,n)};m(te,e=>{g(V).length?e(ae,-1):e(ne)}),y((e,t,n,r,i)=>{R(p,e),M(b,`title`,t),M(b,`aria-label`,n),R(K,r),R(J,i)},[()=>Z(`clients.breakdown`),()=>Z(`clients.breakdownInfo`),()=>Z(`clients.breakdownInfo`),()=>Z(`clients.outside`),()=>Z(`clients.unexplained`)]),t(e,n)};m(ue,e=>{r.report&&!g(s).length?e(de):g(s).length&&e(fe,1)});var X=S(ue,2),pe=e=>{Br(e,{get client(){return g(f).client},get clients(){return g(s)},get accounts(){return r.accounts},close:()=>h(f,null),saved:U})};m(X,e=>{g(f)&&e(pe)});var me=S(X,2),he=e=>{qr(e,{get name(){return g(p).name},get key(){return g(p).key},close:()=>h(p,null)})};m(me,e=>{g(p)&&e(he)});var ge=S(me,2),_e=e=>{let n=j(()=>g(_));{let r=j(()=>Z(g(n).kind===`rotate`?`clients.rotateTitle`:`clients.deleteTitle`,{name:g(n).client.name}));jr(e,{get title(){return g(r)},close:()=>h(_,null),get locked(){return g(b)},children:(e,r)=>{var i=xi(),a=C(i),o=e=>{var n=_i(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`clients.rotateText`)]),t(e,n)},u=e=>{var n=yi(),r=C(n),i=l(r,!0);k(r);var a=S(r),o=e=>{var n=vi(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`clients.deleteLast`)]),t(e,n)};m(a,e=>{g(s).length===1&&e(o)}),y(e=>R(i,e),[()=>Z(`clients.deleteText`)]),t(e,n)};m(a,e=>{g(n).kind===`rotate`?e(o):e(u,-1)});var d=S(a,2),f=e=>{var n=bi(),r=l(n,!0);k(n),y(()=>R(r,g(x))),t(e,n)};m(d,e=>{g(x)&&e(f)});var p=S(d,2),v=l(p),w=l(v,!0);k(v);var T=S(v),E=l(T,!0);k(T),k(p),y((e,t)=>{v.disabled=g(b),R(w,e),Y(T,1,D([`button`,g(n).kind===`delete`?`danger`:`primary`])),T.disabled=g(b),R(E,t)},[()=>Z(`common.cancel`),()=>Z(g(n).kind===`rotate`?`clients.rotateButton`:`clients.deleteButton`)]),c(`click`,v,()=>h(_,null)),c(`click`,T,W),t(e,i)},$$slots:{default:!0}})}};m(ge,e=>{g(_)&&e(_e)}),y((e,t)=>{R(te,e),se.disabled=!r.report||!!r.busy,R(le,t)},[()=>Z(`clients.title`),()=>Z(`clients.new`)]),c(`click`,se,()=>h(f,{client:null},!0)),t(n,G),q()}o([`click`]);var wi=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ti(e,t){let n=E(t,wi),r=[[`path`,{d:`M7 7h10v10`}],[`path`,{d:`M7 17 17 7`}]];X(e,W({name:`arrow-up-right`},()=>n,{get iconNode(){return r}}))}var Ei=f(` `),Di=f(`
`),Oi=f(`

`,1),ki=f(` `),Ai=f(`

/v1/models

`,1),ji=f(` `),Mi=f(`

`),Ni=f(` `),Pi=f(`
`),Fi=f(`

`,1),Ii=f(`

`),Li=f(`

`),Ri=f(`

douane

`),zi=f(``),Bi=f(`

Claude Code

 

`),Vi=f(``),Hi=f(`

`,1);function Ui(n,r){I(r,!0);let i=F(r,`clients`,19,()=>[]),a=F(r,`showEmails`,3,!1),o=e(``),s=e(!1),u=e(!1),d=e(``),f=e(`openai`),p=j(()=>r.models.filter(e=>`${e.id} ${e.name} ${e.provider}`.toLowerCase().includes(g(o).toLowerCase()))),_=j(()=>new Map(i().map(e=>[e.id,e.name]))),b=j(()=>r.calls.filter(e=>(!g(s)||e.status>=400||e.error)&&`${e.model} ${e.provider} ${e.account_id} ${e.client_id?g(_).get(e.client_id)??``:``}`.toLowerCase().includes(g(o).toLowerCase()))),x=j(()=>r.summary?.requests?Math.round((r.summary.requests-r.summary.errors)/r.summary.requests*100):null),w=j(()=>r.summary?.client_api_base_url??(typeof window>`u`?``:`${window.location.origin}/v1`)),T=j(()=>`$env:ANTHROPIC_BASE_URL = '${g(w).replace(/\/v1$/,``).replace(/'/g,`''`)}'\n$env:ANTHROPIC_AUTH_TOKEN = 'douane'\nclaude`);async function E(e){try{await Ur(e),h(u,!0),h(d,``)}catch{h(u,!1),h(d,Z(`common.copyRefused`),!0)}}var D=L(),N=C(D),P=e=>{var n=Oi(),i=C(n),a=l(i),o=l(a),s=l(o,!0);k(o);var u=S(o),d=l(u,!0);k(u),k(a);var f=S(a);let p;var h=S(l(f),1,!0);k(f),k(i);var _=S(i,2),b=l(_),w=l(b),T=l(w,!0);k(w);var E=S(w),D=l(E,!0);k(E);var O=S(E),A=l(O,!0);k(O),k(b);var M=S(b),N=l(M),P=l(N,!0);k(N);var F=S(N),I=l(F,!0);k(F);var L=S(F),z=l(L,!0);k(L),k(M);var B=S(M),V=l(B),H=l(V,!0);k(V);var U=S(V),W=l(U,!0);k(U);var G=S(U),ee=l(G,!0);k(G),k(B);var K=S(B),q=l(K),J=l(q,!0);k(q);var te=S(q),ne=l(te,!0);k(te);var re=S(te),ie=l(re,!0);k(re),k(K);var ae=S(K),oe=l(ae),se=l(oe,!0);k(oe);var ce=S(oe),le=l(ce,!0);k(ce);var ue=S(ce),de=l(ue,!0);k(ue),k(ae),k(_);var fe=S(_,2),X=l(fe),pe=l(X),me=l(pe,!0);k(pe);var he=S(pe),ge=l(he,!0);k(he),k(X);var _e=S(X),ve=l(_e,!0);Ti(S(ve),{size:14}),k(_e),k(fe);var ye=S(fe,2),be=l(ye),xe=e=>{{let t=j(()=>Z(`overview.emptyTitle`)),n=j(()=>Z(`overview.emptyDescription`)),i=j(()=>Z(`overview.openQuickstart`));Cn(e,{get title(){return g(t)},get description(){return g(n)},get action(){return g(i)},onclick:()=>r.navigate(`quickstart`)})}},Se=e=>{var n=Di(),i=l(n),a=l(i),o=l(a),s=l(o),c=l(s,!0);k(s);var u=S(s),d=l(u,!0);k(u);var f=S(u),p=l(f,!0);k(f);var m=S(f),h=l(m,!0);k(m);var _=S(m),b=l(_,!0);k(_),k(o),k(a);var x=S(a);v(x,21,()=>r.calls.slice(0,8),e=>e.id,(e,n)=>{var r=Ei(),i=l(r),a=l(i,!0);k(i);var o=S(i),s=l(o,!0);k(o);var c=S(o),u=l(c,!0);k(c);var d=S(c),f=l(d);let p;var m=l(f,!0);k(f),k(d);var h=S(d),_=l(h,!0);k(h),k(r),y((e,t,r)=>{R(a,g(n).model),R(s,e),R(u,t),p=Y(f,1,`http-status svelte-15ozkp9`,null,p,{error:g(n).status>=400||!!g(n).error}),R(m,r),R(_,g(n).latency_ms==null?`-`:`${g(n).latency_ms} ms`)},[()=>Ht(g(n).provider),()=>Kt(g(n).started_at),()=>g(n).error?Z(`table.error`):g(n).status]),t(e,r)}),k(x),k(i),k(n),y((e,t,n,r,i)=>{R(c,e),R(d,t),R(p,n),R(h,r),R(b,i)},[()=>Z(`table.model`),()=>Z(`table.provider`),()=>Z(`table.time`),()=>Z(`table.status`),()=>Z(`table.duration`)]),t(e,n)};m(be,e=>{r.calls.length?e(Se,-1):e(xe)}),k(ye),y((e,t,n,i,a,o,c,l,u,m,g,_,v,y,b,x,S,C,w,E)=>{R(s,e),R(d,t),p=Y(f,1,`state-badge`,null,p,{inactive:!r.summary}),R(h,n),R(T,i),R(D,r.summary?r.summary.enabled_accounts:`-`),R(A,a),R(P,o),R(I,c),R(z,l),R(H,u),R(W,m),R(ee,g),R(J,_),R(ne,v),R(ie,y),R(se,b),R(le,x),R(de,S),R(me,C),R(ge,w),R(ve,E)},[()=>Z(`nav.overview`),()=>Z(`overview.description`),()=>Z(r.summary?`overview.connected`:`overview.disconnected`),()=>Z(`overview.activeAccounts`),()=>Z(`overview.ofAccounts`,{count:r.summary?.accounts??0}),()=>Z(`overview.requests`),()=>Wt(r.summary?.requests),()=>Z(`overview.inFlight`,{count:r.summary?.in_flight??0}),()=>Z(`overview.tokens`),()=>r.summary?Wt(r.summary.input_tokens+r.summary.output_tokens):`-`,()=>Z(`overview.tokensDetail`),()=>Z(`overview.cache`),()=>r.summary?Wt(r.summary.cache_read_tokens??0):`-`,()=>Z(`overview.cacheDetail`),()=>Z(`overview.success`),()=>g(x)==null?`-`:Z(`common.percent`,{value:g(x)}),()=>Z(`overview.errors`,{count:r.summary?.errors??0}),()=>Z(`overview.recent`),()=>Z(`overview.recentDescription`),()=>Z(`overview.viewAll`)]),c(`click`,_e,()=>r.navigate(`activity`)),t(e,n)},B=e=>{var n=Ai(),i=C(n),a=l(i),s=l(a),u=l(s,!0);k(s);var d=S(s),f=l(d,!0);k(d),k(a);var _=S(a),b=l(_,!0);k(_),k(i);var x=S(i,2),w=l(x),T=l(w);te(),k(w);var E=S(w),D=l(E);Re(D,{size:15});var O=S(D);A(O),k(E),k(x);var N=S(x,2),P=l(N),F=e=>{{let t=j(()=>Z(`models.emptyTitle`)),n=j(()=>Z(`models.emptyDescription`)),i=j(()=>Z(`models.addAccount`));Cn(e,{get title(){return g(t)},get description(){return g(n)},get action(){return g(i)},onclick:()=>r.navigate(`accounts`)})}},I=e=>{{let t=j(()=>Z(`models.noMatchTitle`)),n=j(()=>Z(`models.noMatchDescription`));Cn(e,{get title(){return g(t)},get description(){return g(n)}})}},L=e=>{var n=Di(),i=l(n),a=l(i),o=l(a),s=l(o),u=l(s,!0);k(s);var d=S(s),f=l(d,!0);k(d);var m=S(d),h=l(m,!0);k(m);var _=S(m),b=l(_,!0);k(_);var x=S(_),C=l(x,!0);k(x),k(o),k(a);var w=S(a);v(w,21,()=>g(p),e=>`${e.provider}:${e.id}`,(e,n)=>{var i=ki(),a=l(i),o=l(a,!0);k(a);var s=S(a),u=l(s,!0);k(s);var d=S(s),f=l(d),p=l(f);st(p,{get provider(){return g(n).provider},size:17});var m=S(p,1,!0);k(f),k(d);var h=S(d),_=l(h,!0);k(h);var v=S(h),b=l(v);let x;k(v),k(i),y((e,t,i)=>{R(o,g(n).name??g(n).id),R(u,g(n).id),R(m,e),R(_,t),x=Y(b,1,`switch`,null,x,{on:g(n).enabled!==!1}),M(b,`aria-checked`,g(n).enabled!==!1),M(b,`aria-label`,i),b.disabled=!!r.busy},[()=>Ht(g(n).provider),()=>Wt(g(n).context_length??void 0),()=>Z(`common.enable`,{name:g(n).name??g(n).id})]),c(`click`,b,()=>r.toggleModel(g(n))),t(e,i)}),k(w),k(i),k(n),y((e,t,n,r,i)=>{R(u,e),R(f,t),R(h,n),R(b,r),R(C,i)},[()=>Z(`table.model`),()=>Z(`table.id`),()=>Z(`table.provider`),()=>Z(`table.context`),()=>Z(`table.available`)]),t(e,n)};m(P,e=>{r.models.length?g(p).length?e(L,-1):e(I,1):e(F)}),k(N),y((e,t,n,r,i,a)=>{R(u,e),R(f,t),R(b,n),R(T,`${r??``} `),M(O,`aria-label`,i),M(O,`placeholder`,a)},[()=>Z(`nav.models`),()=>Z(`models.description`),()=>Z(`models.count`,{count:r.models.length}),()=>Z(`models.endpoint`),()=>Z(`models.search`),()=>Z(`models.search`)]),z(O,()=>g(o),e=>h(o,e)),t(e,n)},V=e=>{var n=Fi(),i=C(n),c=l(i),u=l(c),d=l(u,!0);k(u);var f=S(u),p=l(f,!0);k(f),k(c);var x=S(c),w=l(x,!0);k(x),k(i);var T=S(i,2),E=l(T),D=l(E);A(D);var N=S(D,1,!0);k(E);var P=S(E),F=l(P);Re(F,{size:15});var I=S(F);A(I),k(P),k(T);var L=S(T,2),B=l(L),V=e=>{{let t=j(()=>Z(r.calls.length?`activity.noMatchTitle`:`activity.emptyTitle`)),n=j(()=>Z(r.calls.length?`activity.noMatchDescription`:`activity.emptyDescription`));Cn(e,{get title(){return g(t)},get description(){return g(n)}})}},H=e=>{var n=Pi(),i=l(n),o=l(i),s=l(o),c=l(s),u=l(c,!0);k(c);var d=S(c),f=l(d,!0);k(d);var p=S(d),h=l(p,!0);k(p);var x=S(p),C=l(x,!0);k(x);var w=S(x),T=l(w,!0);k(w);var E=S(w),D=l(E,!0);k(E),k(s),k(o);var O=S(o);v(O,21,()=>g(b),e=>e.id,(e,n)=>{var i=Ni(),o=l(i),s=l(o,!0);k(o);var c=S(o),u=l(c,!0),d=S(u),f=l(d,!0),p=S(f),h=e=>{var r=ji(),i=l(r,!0);k(r),y((e,t)=>{M(r,`title`,e),R(i,t)},[()=>Z(`activity.client`,{name:g(_).get(g(n).client_id)??``}),()=>g(_).get(g(n).client_id)]),t(e,r)},v=j(()=>g(n).client_id&&g(_).has(g(n).client_id));m(p,e=>{g(v)&&e(h)}),k(d);var b=S(d),x=e=>{var r=Mi(),i=l(r,!0);k(r),y(()=>R(i,g(n).error)),t(e,r)};m(b,e=>{g(n).error&&e(x)}),k(c);var C=S(c),w=l(C,!0);k(C);var T=S(C),E=l(T);let D;var O=l(E,!0);k(E),k(T);var A=S(T),N=l(A,!0);k(A);var P=S(A),F=l(P,!0);k(P),k(i),y((e,t,r,i,a)=>{R(s,e),R(u,g(n).model),R(f,t),R(w,r),D=Y(E,1,`http-status svelte-15ozkp9`,null,D,{error:g(n).status>=400||!!g(n).error}),R(O,i),R(N,g(n).latency_ms==null?`-`:`${g(n).latency_ms} ms`),R(F,a)},[()=>Kt(g(n).started_at),()=>Lt(r.accounts.find(e=>e.id===g(n).account_id)?.name??g(n).account_id??Z(`activity.unknownAccount`),a()),()=>Ht(g(n).provider),()=>g(n).error?Z(`table.error`):g(n).status,()=>Wt((g(n).input_tokens??0)+(g(n).output_tokens??0))]),t(e,i)}),k(O),k(i),k(n),y((e,t,n,r,i,a)=>{R(u,e),R(f,t),R(h,n),R(C,r),R(T,i),R(D,a)},[()=>Z(`table.time`),()=>Z(`table.modelAccount`),()=>Z(`table.provider`),()=>Z(`table.status`),()=>Z(`table.duration`),()=>Z(`table.tokens`)]),t(e,n)};m(B,e=>{g(b).length?e(H,-1):e(V)}),k(L),y((e,t,n,r,i,a)=>{R(d,e),R(p,t),R(w,n),R(N,r),M(I,`aria-label`,i),M(I,`placeholder`,a)},[()=>Z(`activity.title`),()=>Z(`activity.description`),()=>Z(`activity.count`,{count:r.calls.length}),()=>Z(`activity.onlyErrors`),()=>Z(`activity.search`),()=>Z(`activity.searchPlaceholder`)]),O(D,()=>g(s),e=>h(s,e)),z(I,()=>g(o),e=>h(o,e)),t(e,n)},H=e=>{var n=Hi(),i=C(n),a=l(i),o=l(a,!0);k(a),k(i);var s=S(i,2),p=l(s);let _;var v=l(p,!0);k(p);var b=S(p);let x;k(s);var D=S(s,2),O=l(D),A=e=>{var n=Ii(),i=l(n),a=l(i),o=l(a,!0);k(a);var s=S(a),u=l(s,!0);Ti(S(u),{size:18}),k(s),k(i),k(n),y((e,t)=>{R(o,e),R(u,t)},[()=>Z(`common.connectAccount`),()=>Z(`quickstart.openAccounts`)]),c(`click`,s,()=>r.navigate(`accounts`)),t(e,n)};m(O,e=>{r.accounts.length||e(A)});var N=S(O,2),P=e=>{var n=Ri(),i=l(n),a=l(i),o=l(a,!0);k(a);var s=S(a),d=l(s),f=l(d,!0);k(d);var p=S(d),h=l(p),_=e=>{Dt(e,{size:20})},v=e=>{Hr(e,{size:20})};m(h,e=>{g(u)?e(_):e(v,-1)}),k(p),k(s);var b=S(s),x=l(b,!0),C=S(x,2,!0);k(b);var T=S(b),D=e=>{var n=Li(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`quickstart.keyRequired`)]),t(e,n)};m(T,e=>{r.summary?.clients&&e(D)});var O=S(T),A=l(O,!0);Ti(S(A),{size:18}),k(O),k(i),k(n),y((e,t,n,r,i)=>{R(o,e),R(f,g(w)),M(p,`aria-label`,t),R(x,n),R(C,r),R(A,i)},[()=>Z(`quickstart.baseUrl`),()=>Z(`quickstart.copyUrl`),()=>Z(`quickstart.openaiHint1`),()=>Z(`quickstart.openaiHint2`),()=>Z(`quickstart.chooseModel`)]),c(`click`,p,()=>E(g(w))),c(`click`,O,()=>r.navigate(`models`)),t(e,n)},F=e=>{var n=Bi(),i=l(n),a=S(l(i)),o=l(a,!0);k(a);var s=S(a),d=l(s),f=l(d),p=l(f,!0);k(f),k(d);var h=S(d),_=l(h),v=e=>{Dt(e,{size:20})},b=e=>{Hr(e,{size:20})};m(_,e=>{g(u)?e(v):e(b,-1)}),k(h),k(s);var x=S(s),C=l(x,!0);k(x);var w=S(x),D=e=>{var n=Li(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`quickstart.keyRequired`)]),t(e,n)};m(w,e=>{r.summary?.clients&&e(D)});var O=S(w),A=e=>{var n=zi(),i=l(n,!0);Ti(S(i),{size:18}),k(n),y(e=>R(i,e),[()=>Z(`quickstart.connectClaude`)]),c(`click`,n,()=>r.navigate(`accounts`)),t(e,n)},N=j(()=>!r.accounts.some(e=>e.provider===`claude`&&e.enabled));m(O,e=>{g(N)&&e(A)}),k(i),k(n),y((e,t,n)=>{R(o,e),R(p,g(T)),M(h,`aria-label`,t),R(C,n)},[()=>Z(`quickstart.powershell`),()=>Z(`quickstart.copyClaude`),()=>Z(`quickstart.claudeHint`)]),c(`click`,h,()=>E(g(T))),t(e,n)};m(N,e=>{g(f)===`openai`?e(P):e(F,-1)});var I=S(N,2),L=e=>{var n=Vi(),r=l(n,!0);k(n),y(()=>R(r,g(d))),t(e,n)};m(I,e=>{g(d)&&e(L)}),k(D),y((e,t,n)=>{R(o,e),M(s,`aria-label`,t),_=Y(p,1,`button`,null,_,{primary:g(f)===`openai`}),M(p,`aria-pressed`,g(f)===`openai`),R(v,n),x=Y(b,1,`button`,null,x,{primary:g(f)===`claude`}),M(b,`aria-pressed`,g(f)===`claude`)},[()=>Z(`nav.setupTool`),()=>Z(`quickstart.chooseTool`),()=>Z(`provider.openaiCompatible`)]),c(`click`,p,()=>{h(f,`openai`),h(u,!1),h(d,``)}),c(`click`,b,()=>{h(f,`claude`),h(u,!1),h(d,``)}),t(e,n)};m(N,e=>{r.screen===`overview`?e(P):r.screen===`models`?e(B,1):r.screen===`activity`?e(V,2):r.screen===`quickstart`&&e(H,3)}),t(n,D),q()}o([`click`]);var Wi=new Set([`$$slots`,`$$events`,`$$legacy`]);function Gi(e,t){let n=E(t,Wi),r=[[`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`}]];X(e,W({name:`save`},()=>n,{get iconNode(){return r}}))}var Ki=new Set([`$$slots`,`$$events`,`$$legacy`]);function qi(e,t){let n=E(t,Ki),r=[[`path`,{d:`M15 6a9 9 0 0 0-9 9V3`}],[`circle`,{cx:`18`,cy:`6`,r:`3`}],[`circle`,{cx:`6`,cy:`18`,r:`3`}]];X(e,W({name:`git-branch`},()=>n,{get iconNode(){return r}}))}var Ji=new Set([`$$slots`,`$$events`,`$$legacy`]);function Yi(e,t){let n=E(t,Ji),r=[[`path`,{d:`m5 8 6 6`}],[`path`,{d:`m4 14 6-6 2-3`}],[`path`,{d:`M2 5h12`}],[`path`,{d:`M7 2h1`}],[`path`,{d:`m22 22-5-10-5 10`}],[`path`,{d:`M14 18h6`}]];X(e,W({name:`languages`},()=>n,{get iconNode(){return r}}))}var Xi=f(`

`);function Zi(e,n){I(n,!0);var r=Xi(),i=l(r),a=l(i),o=l(a,!0);k(a);var s=S(a),u=l(s,!0);k(s),k(i);var d=S(i,2),f=l(d);Yi(f,{size:18});var p=S(f),m=l(p),h=l(m,!0);k(m),m.value=m.__value=`auto`;var g=S(m),_=l(g,!0);k(g),g.value=g.__value=`en`;var v=S(g),b=l(v,!0);k(v),v.value=v.__value=`fr`,k(p);var x;N(p),k(d),k(r),y((e,t,n,r,i,a,s)=>{R(o,e),R(u,t),M(p,`aria-label`,n),R(h,r),R(_,i),R(b,a),x!==(x=s)&&(p.value=(p.__value=s)??``,T(p,s))},[()=>Z(`settings.language`),()=>Z(`settings.languageDescription`),()=>Z(`settings.language`),()=>Z(`settings.languageAuto`),()=>Z(`settings.languageEnglish`),()=>Z(`settings.languageFrench`),()=>gt()]),c(`change`,p,e=>bt(e.currentTarget.value)),t(e,r),q()}o([`change`]);var Qi=new Set([`$$slots`,`$$events`,`$$legacy`]);function $i(e,t){let n=E(t,Qi),r=[[`path`,{d:`M12 15V3`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}],[`path`,{d:`m7 10 5 5 5-5`}]];X(e,W({name:`download`},()=>n,{get iconNode(){return r}}))}var ea=new Set([`$$slots`,`$$events`,`$$legacy`]);function ta(e,t){let n=E(t,ea),r=[[`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`}]];X(e,W({name:`triangle-alert`},()=>n,{get iconNode(){return r}}))}var na=f(``),ra=f(`

`),ia=f(`

`);function aa(n,r){I(r,!0);let i=e(!1),a=e(``),o=e(null),s=e(!1),u=e(void 0);async function d(){h(i,!0),h(a,``);try{let e=await $.exportConfig(),t=typeof e.exported_at==`string`?e.exported_at.slice(0,10):new Date().toISOString().slice(0,10),n=URL.createObjectURL(new Blob([JSON.stringify(e,null,2)],{type:`application/json`}));Object.assign(document.createElement(`a`),{href:n,download:`douane-export-${t}.json`}).click(),setTimeout(()=>URL.revokeObjectURL(n),1e3)}catch(e){h(a,e.message,!0)}finally{h(i,!1)}}async function f(e){h(a,``),h(o,null),h(s,!1);let t=e?.[0];if(g(u)&&(g(u).value=``),!t)return;if(t.size>33554432){h(a,Z(`backup.tooLarge`,{name:t.name}),!0);return}let n;try{n=JSON.parse(await t.text())}catch{h(a,Z(`notice.invalidJson`,{name:t.name}),!0);return}if(n?.format!==`douane-export`||!Array.isArray(n.accounts)){h(a,Z(`backup.notExport`,{name:t.name}),!0);return}h(o,{name:t.name,bundle:n,count:n.accounts.length},!0)}async function p(){g(o)&&await r.restore(g(o).bundle,g(s))&&h(o,null)}var _=ia(),v=l(_),b=l(v),x=l(b,!0);k(b);var C=S(b),w=l(C,!0);k(C),k(v);var T=S(v,2),E=l(T),D=l(E);ta(D,{size:18});var j=S(D),N=l(j,!0);k(j),k(E);var P=S(E,2),F=l(P),L=l(F);$i(L,{size:16});var z=S(L,1,!0);k(F);var B=S(F,2),V=l(B);qn(V,{size:16});var H=S(V,1,!0);k(B);var U=S(B,2);J(U,e=>h(u,e),()=>g(u)),k(P);var W=S(P,2),G=e=>{var n=na(),r=l(n,!0);k(n),y(()=>R(r,g(a))),t(e,n)};m(W,e=>{g(a)&&e(G)});var ee=S(W,2),K=e=>{var n=ra(),i=l(n),a=l(i,!0);k(i);var u=S(i,2),d=l(u);A(d);var f=S(d),m=l(f,!0);k(f),k(u);var _=S(u,2),v=l(_),b=l(v,!0);k(v);var x=S(v,2),C=l(x,!0);k(x),k(_),k(n),y((e,t,i,o,s)=>{M(n,`aria-label`,e),R(a,t),R(m,i),v.disabled=!!r.busy,R(b,o),x.disabled=r.busy===`restore`,R(C,s)},[()=>Z(`backup.restore`),()=>Z(g(o).count===1?`backup.confirm.one`:`backup.confirm.other`,{count:g(o).count,name:g(o).name}),()=>Z(`backup.withSettings`),()=>r.busy===`restore`?Z(`backup.restoring`):Z(`backup.confirmButton`),()=>Z(`common.cancel`)]),O(d,()=>g(s),e=>h(s,e)),c(`click`,v,p),c(`click`,x,()=>h(o,null)),t(e,n)};m(ee,e=>{g(o)&&e(K)}),k(T),k(_),y((e,t,n,a,o,s)=>{R(x,e),R(w,t),R(N,n),F.disabled=g(i)||!!r.busy,R(z,a),B.disabled=!!r.busy,R(H,o),M(U,`aria-label`,s)},[()=>Z(`backup.title`),()=>Z(`backup.description`),()=>Z(`backup.warning`),()=>g(i)?Z(`backup.exporting`):Z(`backup.export`),()=>Z(`backup.restore`),()=>Z(`backup.restore`)]),c(`click`,F,d),c(`click`,B,()=>g(u)?.click()),c(`change`,U,e=>f(e.currentTarget.files)),t(n,_),q()}o([`click`,`change`]);var oa=f(``),sa=f(``),ca=f(``),la=f(`

`),ua=f(`

`,1);function da(n,r){I(r,!0);let i=e(w(b(()=>({...r.settings,provider_strategies:{...r.settings.provider_strategies}})))),a=[`round-robin`,`fill-first`,`reset-first`,`smart`];async function o(e){let t={strategy:g(i).strategy,provider_strategies:g(i).provider_strategies};h(i,{...g(i),...e},!0),await r.save(g(i))||h(i,{...g(i),...t},!0)}function s(e,t){let n={...g(i).provider_strategies};t?n[e]=t:delete n[e],o({provider_strategies:n})}var u=ua(),f=C(u),p=l(f),_=l(p,!0);k(p),k(f);var x=S(f,2),E=l(x);qi(E,{size:18});var D=S(E),O=l(D,!0);k(D),k(x);var j=S(x,2),M=l(j),F=l(M),L=l(F),B=l(L,!0);k(L);var H=S(L),U=l(H,!0);k(H),k(F);var W=S(F);v(W,20,()=>a,e=>e,(e,n)=>{var a=oa();let s;var u=l(a);A(u);var d=S(u),f=l(d,!0),p=S(f),m=l(p,!0);k(p),k(d),k(a),y((e,t)=>{s=Y(a,1,`strategy-option svelte-eyvqa5`,null,s,{chosen:g(i).strategy===n}),V(u,n),ee(u,g(i).strategy===n),u.disabled=!!r.busy,R(f,e),R(m,t)},[()=>Z(`strategy.${n}.label`),()=>Z(`strategy.${n}.desc`)]),c(`change`,u,()=>o({strategy:n})),t(e,a)}),k(W),k(M);var G=S(M,2),K=l(G),J=l(K),te=l(J,!0);k(J);var ne=S(J),re=l(ne,!0);k(ne),k(K);var ie=S(K),ae=l(ie);v(ae,17,()=>r.providers,e=>e.id,(e,n)=>{var o=ca(),u=l(o),d=l(u);st(d,{get provider(){return g(n).id},size:22});var f=S(d,1,!0);k(u);var p=S(u),m=l(p),h=l(m,!0);k(m),m.value=m.__value=``;var _=S(m);v(_,16,()=>a,e=>e,(e,n)=>{var r=sa(),i=l(r,!0);k(r);var a={};y(e=>{R(i,e),a!==(a=n)&&(r.value=(r.__value=n)??``)},[()=>Z(`strategy.${n}.label`)]),t(e,r)}),k(p);var b;N(p),k(o),y((e,t)=>{R(f,e),p.disabled=!!r.busy,R(h,t),b!==(b=g(i).provider_strategies?.[g(n).id]??``)&&(p.value=(p.__value=g(i).provider_strategies?.[g(n).id]??``)??``,T(p,g(i).provider_strategies?.[g(n).id]??``))},[()=>Ht(g(n).id,g(n).name),()=>Z(`settings.defaultRule`)]),c(`change`,p,e=>s(g(n).id,e.currentTarget.value)),t(e,o)});var oe=S(ae),se=e=>{var n=la(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`settings.noProviders`)]),t(e,n)};m(oe,e=>{r.providers.length||e(se)}),k(ie),k(G);var ce=S(G,2),le=l(ce),ue=l(le),de=l(ue,!0);k(ue);var fe=S(ue),X=l(fe,!0);k(fe),k(le);var pe=S(le),me=l(pe),he=l(me,!0),ge=S(he),_e=l(ge);A(_e);var ve=S(_e),ye=l(ve,!0);k(ve),k(ge),k(me);var be=S(me),xe=l(be,!0),Se=S(xe),Ce=l(Se);A(Ce);var we=S(Ce),Te=l(we,!0);k(we),k(Se),k(be);var Ee=S(be),De=l(Ee,!0),Oe=S(De),ke=l(Oe),Ae=l(ke,!0);k(ke),ke.value=(ke.__value=null,``);var je=S(ke);v(je,17,()=>r.providers,e=>e.id,(e,n)=>{var r=sa(),i=l(r,!0);k(r);var a={};y(e=>{R(i,e),a!==(a=g(n).id)&&(r.value=(r.__value=g(n).id)??``)},[()=>Ht(g(n).id,g(n).name)]),t(e,r)}),k(Oe),k(Ee),k(pe),k(ce);var Me=S(ce,2),Ne=l(Me),Pe=l(Ne),Fe=l(Pe,!0);k(Pe);var Ie=S(Pe),Le=l(Ie,!0);k(Ie),k(Ne);var Re=S(Ne),ze=l(Re),Be=l(ze,!0),Ve=S(Be),He=l(Ve);A(He);var Ue=S(He),We=l(Ue,!0);k(Ue),k(Ve),k(ze),k(Re),k(Me);var Ge=S(Me,2),Ke=l(Ge),qe=l(Ke);Gi(qe,{size:14});var Je=S(qe,1,!0);k(Ke),k(Ge),k(j);var Ye=S(j,2);aa(Ye,{get busy(){return r.busy},get restore(){return r.restore}}),Zi(S(Ye,2),{}),y((e,t,n,i,a,o,s,c,l,u,d,f,p,m,h,g,v,y,b)=>{R(_,e),R(O,t),R(B,n),R(U,i),R(te,a),R(re,o),R(de,s),R(X,c),R(he,l),R(ye,u),R(xe,d),R(Te,f),R(De,p),R(Ae,m),R(Fe,h),R(Le,g),R(Be,v),R(We,y),Ke.disabled=!!r.busy,R(Je,b)},[()=>Z(`nav.settings`),()=>Z(`settings.sessionNote`),()=>Z(`settings.routing`),()=>Z(`settings.routingDescription`),()=>Z(`settings.perProvider`),()=>Z(`settings.perProviderDescription`),()=>Z(`settings.refresh`),()=>Z(`settings.refreshDescription`),()=>Z(`settings.refreshEvery`),()=>Z(`settings.seconds`),()=>Z(`settings.timeout`),()=>Z(`settings.seconds`),()=>Z(`settings.defaultProvider`),()=>Z(`settings.autoProvider`),()=>Z(`settings.weekEnd`),()=>Z(`settings.weekEndDescription`),()=>Z(`settings.freeBefore`),()=>Z(`settings.hours`),()=>r.busy===`settings`?Z(`settings.saving`):Z(`settings.save`)]),d(`submit`,j,e=>{e.preventDefault(),r.save(g(i))}),z(_e,()=>g(i).quota_refresh_seconds,e=>g(i).quota_refresh_seconds=e),z(Ce,()=>g(i).request_timeout_seconds,e=>g(i).request_timeout_seconds=e),P(Oe,()=>g(i).default_provider,e=>g(i).default_provider=e),z(He,()=>g(i).free_before_reset_hours,e=>g(i).free_before_reset_hours=e),t(n,u),q()}o([`change`]);var fa=f(`

`),pa=f(` `),ma=f(`

`),ha=f(`

`),ga=f(``),_a=f(`

`,1),va=f(`

`,1),ya=f(`

`),ba=f(``),xa=f(``),Sa=f(`

deepseek

`),Ca=f(`

`),wa=f(``),Ta=f(`

`),Ea=f(`

`,1),Da=f(`

`),Oa=f(``),ka=f(`

`);function Aa(n,r){I(r,!0);let i,a=e(void 0),o=e(null),s=e(``),u=e(!1),f=e(``),p=e(!1),_=e(!1),b=e(``),w=e(``),T=e(``),E=e(``),D=e(``),O=e(``),N=e(`chat`),F=j(()=>g(w)===`openai_compatible`),B=e(!1),V=!1,U={opencode_go:`https://opencode.ai/zen/go`,xai:`https://cli-chat-proxy.grok.com/v1`,openai_compatible:``,kimi:`https://api.kimi.com/coding/v1`,qwen:`https://portal.qwen.ai/v1`};H(()=>(V=!0,i.showModal(),()=>{V=!1,i.close(),h(E,``),h(s,``)}));async function W(e){h(u,!0),h(f,``),h(s,``),h(b,``),h(_,!1),h(B,!1);try{let t=await $.startOAuth(e);V&&(h(o,t),h(b,t.user_code?Z(`connect.waiting`):``,!0))}catch(e){V&&h(f,e.message,!0)}finally{h(u,!1)}}function G(){h(p,!0),h(_,!0),h(s,``),h(E,``),r.completed()}function ee(e,t){return!V||g(o)?.id!==e.id||!t.verification_required&&(e.provider!==`antigravity`||t.error_code!==`google_project_unavailable`)?!1:(h(o,{...e,error_code:t.error_code,verification_required:t.verification_required,verification_available:t.verification_available}),h(_,!0),h(s,``),h(f,``),h(b,``),!0)}async function K(e=!0){let t=g(o);if(!t||g(u)||g(_))return t?.interval??5;h(u,!0),e&&h(f,``);try{let e=await $.oauth(t.id);return!V||g(o)?.id!==t.id||ee(t,e)?5:((e.account_id||e.account?.id)&&[`complete`,`completed`,`connected`,`success`].includes(e.status)?G():e.status===`expired`?(h(_,!0),h(f,Z(`connect.expired`),!0)):e.error||e.status===`error`?(h(_,!0),h(f,e.error||Z(`connect.refused`),!0)):h(b,Z(e.status===`exchanging`?`connect.exchanging`:t.user_code?`connect.waiting`:`connect.stillWaiting`),!0),Math.min(60,Math.max(5,e.interval??t.interval??5)))}catch(e){return V&&h(f,e.message,!0),t.interval??5}finally{h(u,!1)}}x(()=>{let e=g(o);if(!e?.user_code||g(p)||g(_))return;let t=!1,n;async function r(){let i=document.hidden?e?.interval??5:await K(!1);t||(n=setTimeout(r,(i??5)*1e3))}return n=setTimeout(r,Math.max(5,e.interval??5)*1e3),()=>{t=!0,clearTimeout(n)}});async function te(e){e.preventDefault();let t=g(o);if(!(!t||g(u))){h(u,!0),h(f,``);try{if(!(await $.oauthCallback(t.id,g(s).trim(),t.state)).account?.id)throw Error(Z(`connect.unconfirmed`));V&&G()}catch(e){V&&h(f,e.message,!0);try{let e=await $.oauth(t.id);V&&g(o)?.id===t.id&&(h(_,[`error`,`expired`].includes(e.status),!0),g(_)&&h(s,``),ee(t,e))}catch{}}finally{h(u,!1)}}}async function ne(e){e.preventDefault(),h(u,!0),h(f,``);try{let e=await $.importCredential({type:g(w),name:g(T),access_token:g(E),base_url:g(D),...g(F)?{route:g(O).trim().toLowerCase(),...g(N)?{dialect:g(N)}:{}}:{}});if(e.errors?.length||!e.imported)throw Error(e.errors?.length?Rt(e.errors):Z(`connect.notAdded`));V&&G()}catch(e){V&&h(f,e.message,!0)}finally{h(u,!1)}}function re(){h(o,null),h(w,``),h(E,``),h(s,``),h(f,``),h(b,``),h(_,!1),h(O,``),h(N,`chat`)}async function ie(){if(g(o)?.user_code)try{await Ur(g(o).user_code),h(B,!0),g(f)===Z(`connect.copyRefused`)&&h(f,``)}catch{h(B,!1),h(f,Z(`connect.copyRefused`),!0)}}var ae=ka(),oe=l(ae),Y=l(oe),se=l(Y),ce=l(se,!0);k(se);var le=S(se),ue=l(le,!0);k(le),k(Y);var de=S(Y);Pe(l(de),{size:18}),k(de),k(oe);var fe=S(oe,2),X=e=>{var n=fa(),i=l(n);Dt(l(i),{size:24}),k(i);var a=S(i),o=l(a,!0);k(a);var s=S(a),u=l(s,!0);k(s);var d=S(s),f=l(d,!0);k(d),k(n),y((e,t,n)=>{R(o,e),R(u,t),R(f,n)},[()=>Z(`connect.success`),()=>Z(`connect.successText`),()=>Z(`connect.viewAccounts`)]),c(`click`,d,function(...e){r.close?.apply(this,e)}),t(e,n)},pe=e=>{var n=L(),r=C(n),i=e=>{var n=ha(),r=l(n),i=l(r,!0);k(r);var a=S(r,2),s=e=>{var n=pa(),r=l(n,!0);He(S(r),{size:16}),k(n),y((e,t)=>{M(n,`href`,e),R(r,t)},[()=>`/admin/api/oauth/${encodeURIComponent(g(o).id)}/verification`,()=>Z(`common.verifyGoogle`)]),t(e,n)},d=e=>{var n=ma(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`common.openAntigravity`)]),t(e,n)};m(a,e=>{g(o).verification_available?e(s):e(d,-1)});var f=S(a,2),p=l(f,!0);k(f);var h=S(f,2),_=l(h),v=l(_,!0);k(_);var b=S(_),x=l(b,!0);k(b),k(h),k(n),y((e,t,n,r)=>{R(i,e),R(p,t),_.disabled=g(u),R(v,n),b.disabled=g(u),R(x,r)},[()=>Z(`connect.googleVerify`),()=>Z(`connect.afterVerify`),()=>Z(`connect.restart`),()=>Z(`common.chooseOtherProvider`)]),c(`click`,_,()=>g(o)&&W(g(o).provider)),c(`click`,b,re),t(e,n)},a=e=>{var n=ga(),r=l(n),i=l(r,!0);k(r);var a=S(r,2),s=l(a,!0);k(a);var d=S(a,2),f=l(d,!0);k(d);var p=S(d,2),m=l(p,!0);He(S(m),{size:16}),k(p);var h=S(p,2),_=l(h),v=l(_,!0);k(_);var b=S(_),x=l(b,!0);k(b),k(h),k(n),y((e,t,n,r,a,o)=>{R(i,e),R(s,t),R(f,n),R(m,r),_.disabled=g(u),R(v,a),b.disabled=g(u),R(x,o)},[()=>Z(`connect.antigravityTitle`),()=>Z(`connect.antigravityProject`),()=>Z(`connect.antigravityFirstUse`),()=>Z(`connect.antigravityGuide`),()=>Z(`connect.restart`),()=>Z(`common.chooseOtherProvider`)]),c(`click`,_,()=>g(o)&&W(g(o).provider)),c(`click`,b,re),t(e,n)},f=e=>{var n=ba(),r=l(n),i=e=>{var n=_a(),r=C(n),i=l(r,!0);k(r);var a=S(r),s=l(a),u=l(s,!0);k(s);var d=S(s),f=l(d),p=e=>{Dt(e,{size:16})},h=e=>{Hr(e,{size:16})};m(f,e=>{g(B)?e(p):e(h,-1)}),k(d),k(a),y((e,t)=>{R(i,e),R(u,g(o).user_code),M(d,`aria-label`,t)},[()=>Z(`connect.enterCode`,{provider:Ht(g(o).provider)}),()=>Z(`connect.copyCode`)]),c(`click`,d,ie),t(e,n)},a=e=>{var n=ma(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`connect.authorize`)]),t(e,n)};m(r,e=>{g(o).user_code?e(i):e(a,-1)});var f=S(r,2),p=l(f,!0);He(S(p),{size:14}),k(f);var v=S(f,2),x=e=>{var n=va(),r=C(n),i=l(r,!0);k(r);var a=S(r),o=l(a),c=l(o,!0);k(o);var f=S(o);A(f);var p=S(f),m=l(p,!0);k(p),k(a),y((e,t,n,r,a)=>{R(i,e),R(c,t),M(f,`placeholder`,n),p.disabled=r,R(m,a)},[()=>Z(`connect.callbackHint`),()=>Z(`connect.callbackLabel`),()=>Z(`connect.callbackPlaceholder`),()=>g(u)||g(_)||!g(s).trim(),()=>Z(`connect.finish`)]),d(`submit`,a,te),z(f,()=>g(s),e=>h(s,e)),t(e,n)};m(v,e=>{g(o).user_code||e(x)});var w=S(v,2),T=l(w),E=l(T,!0);k(T);var D=S(T),O=l(D,!0);k(D),k(w);var j=S(w),N=e=>{var n=ya(),r=l(n,!0);k(n),y(()=>R(r,g(b))),t(e,n)};m(j,e=>{g(b)&&e(N)}),k(n),y((e,t,n)=>{M(f,`href`,g(o).url),R(p,e),T.disabled=g(u)||g(_),R(E,t),D.disabled=g(u),R(O,n)},[()=>Z(`connect.open`),()=>Z(`connect.check`),()=>Z(`common.chooseOtherProvider`)]),c(`click`,T,()=>K()),c(`click`,D,re),t(e,n)};m(r,e=>{g(o).verification_required?e(i):g(o).provider===`antigravity`&&g(o).error_code===`google_project_unavailable`?e(a,1):e(f,-1)}),t(e,n)},me=e=>{var n=Sa(),r=l(n),i=l(r,!0),a=S(i,2,!0),o=S(a),s=l(o,!0);k(o);var f=S(o,1,!0);k(r);var p=S(r),m=l(p),_=l(m,!0);k(m);var b=S(m);A(b);var x=S(b),C=l(x,!0);k(x);var w=S(x);A(w),M(w,`pattern`,`[a-z0-9][a-z0-9_\\-]{0,31}`);var j=S(w),F=l(j,!0);k(j);var I=S(j);A(I);var L=S(I),B=l(L,!0);k(L);var V=S(L);v(V,20,()=>Ot,e=>e,(e,n)=>{var r=xa(),i=l(r,!0);k(r);var a={};y(e=>{R(i,e),a!==(a=n)&&(r.value=(r.__value=n)??``)},[()=>kt(n)]),t(e,r)}),k(V);var H=S(V),U=l(H,!0);k(H);var W=S(H);A(W);var G=S(W),ee=l(G,!0);k(G),k(p);var K=S(p),q=l(K,!0);k(K),k(n),y((e,t,n,r,o,c,l,d,p,m,h,v)=>{R(i,e),R(a,t),R(s,n),R(f,r),R(_,o),R(C,c),R(F,l),R(B,d),R(U,p),G.disabled=m,R(ee,h),K.disabled=g(u),R(q,v)},[()=>Z(`connect.customIntro1`),()=>Z(`connect.customIntro2`),()=>Z(`connect.customModel`),()=>Z(`connect.customIntro3`),()=>Z(`connect.name`),()=>Z(`endpoint.route`),()=>Z(`endpoint.url`),()=>Z(`endpoint.format`),()=>Z(`endpoint.key`),()=>g(u)||!g(E).trim()||!g(O).trim(),()=>Z(`connect.addEndpoint`),()=>Z(`common.chooseOtherProvider`)]),d(`submit`,p,ne),z(b,()=>g(T),e=>h(T,e)),z(w,()=>g(O),e=>h(O,e)),z(I,()=>g(D),e=>h(D,e)),P(V,()=>g(N),e=>h(N,e)),z(W,()=>g(E),e=>h(E,e)),c(`click`,K,re),t(e,n)},he=e=>{var n=Ca(),r=l(n),i=l(r,!0);k(r);var a=S(r),o=l(a),s=l(o,!0);k(o);var f=S(o);A(f);var p=S(f),m=l(p,!0);k(p);var _=S(p);A(_);var v=S(_),b=l(v,!0);k(v);var x=S(v);A(x);var C=S(x),w=l(C,!0);k(C),k(a);var O=S(a),j=l(O,!0);k(O),k(n),y((e,t,n,r,a,o,c,l,d)=>{R(i,e),R(s,t),M(f,`placeholder`,n),R(m,r),R(b,a),M(x,`placeholder`,o),C.disabled=c,R(w,l),O.disabled=g(u),R(j,d)},[()=>Z(`connect.tokenIntro`),()=>Z(`connect.accountName`),()=>Z(`connect.accountNamePlaceholder`),()=>Z(`connect.token`),()=>Z(`connect.providerUrl`),()=>Z(`connect.providerUrlPlaceholder`),()=>g(u)||!g(E).trim(),()=>Z(`connect.addAccount`),()=>Z(`common.chooseOtherProvider`)]),d(`submit`,a,ne),z(f,()=>g(T),e=>h(T,e)),z(_,()=>g(E),e=>h(E,e)),z(x,()=>g(D),e=>h(D,e)),c(`click`,O,re),t(e,n)},ge=e=>{var n=Ea(),i=C(n),o=l(i);v(o,17,()=>r.providers,e=>e.id,(e,n)=>{var r=wa(),i=l(r);st(l(i),{get provider(){return g(n).id},size:28}),k(i);var a=S(i),o=l(a,!0),s=S(o),d=l(s,!0);k(s),k(a),Ie(S(a),{size:15}),k(r),y((e,t)=>{r.disabled=g(u),R(o,e),R(d,t)},[()=>Ht(g(n).id,g(n).name),()=>Z(g(n).oauth?`connect.oauthOption`:g(n).id===`openai_compatible`?`connect.apiKeyOption`:`connect.tokenOption`)]),c(`click`,r,()=>{g(n).oauth?W(g(n).id):(h(w,g(n).id,!0),h(D,g(n).base_url??U[g(n).id]??``,!0),h(T,g(n).id===`openai_compatible`?``:Ht(g(n).id,g(n).name),!0))}),t(e,r)});var s=S(o),d=e=>{var n=Ta(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`connect.noProvider`)]),t(e,n)};m(s,e=>{r.providers.length||e(d)}),k(i);var f=S(i,2),p=l(f),_=l(p),b=l(_,!0);k(_);var x=S(_),E=l(x,!0);k(x),k(p);var O=S(p),A=l(O);qn(A,{size:14});var j=S(A,1,!0);k(O);var M=S(O);J(M,e=>h(a,e),()=>g(a)),k(f),y((e,t,n)=>{R(b,e),R(E,t),O.disabled=g(u),R(j,n)},[()=>Z(`connect.haveFile`),()=>Z(`connect.importFiles`),()=>Z(`common.import`)]),c(`click`,O,()=>g(a)?.click()),c(`change`,M,e=>{e.currentTarget.files?.length&&(r.importFiles(e.currentTarget.files),r.close())}),t(e,n)};m(fe,e=>{g(p)?e(X):g(o)?e(pe,1):g(w)&&g(F)?e(me,2):g(w)?e(he,3):e(ge,-1)});var _e=S(fe,2),ve=e=>{var n=Da(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`connect.pending`)]),t(e,n)};m(_e,e=>{g(u)&&e(ve)});var ye=S(_e,2),be=e=>{var n=Oa(),r=l(n,!0);k(n),y(()=>R(r,g(f))),t(e,n)};m(ye,e=>{g(f)&&e(be)}),k(ae),J(ae,e=>i=e,()=>i),y((e,t,n)=>{R(ce,e),R(ue,t),M(de,`aria-label`,n)},[()=>Z(`common.connectAccount`),()=>Z(`connect.subtitle`),()=>Z(`common.close`)]),d(`cancel`,ae,function(...e){r.close?.apply(this,e)}),c(`click`,de,function(...e){r.close?.apply(this,e)}),t(n,ae),q()}o([`click`,`change`]);var ja=p(``);function Ma(e,n){let r=F(n,`size`,3,38);var i=ja();y(()=>{M(i,`width`,r()),M(i,`height`,r())}),t(e,i)}var Na=f(``),Pa=f(``),Fa=f(` `),Ia=f(``),La=f(``),Ra=f(``),za=f(`
`),Ba=f(`
`),Va=f(`

`,1),Ha=f(``),Ua=f(`
`,1);function Wa(n,a){I(a,!0);let o=[{label:`nav.subscriptions`,items:[{id:`quotas`,label:`nav.quotas`,icon:me},{id:`overview`,label:`nav.overview`,icon:ge},{id:`accounts`,label:`nav.accounts`,icon:ve},{id:`clients`,label:`nav.clients`,icon:be},{id:`models`,label:`nav.models`,icon:Se}]},{label:`nav.service`,items:[{id:`activity`,label:`nav.activity`,icon:we},{id:`settings`,label:`nav.settings`,icon:Ee},{id:`quickstart`,label:`nav.quickstart`,icon:Oe}]}],f=o.flatMap(e=>e.items).filter(e=>[`quotas`,`accounts`,`activity`,`settings`].includes(e.id)),p=e(`quotas`),_=e(!1),b=e(!1),x=e([]),w=e([]),T=e([]),E=e([]),D=e([]),O=e(null),A=e(null),N=e(null),P=e(!0),F=e(``),z=e(``),B=e(``),V=j(()=>Z(o.flatMap(e=>e.items).find(e=>e.id===g(p))?.label??`nav.quotas`)),U=null;async function W(e=!1){if(U)return U;e||h(P,!0),U=(async()=>{let e=await Promise.allSettled([$.accounts(),$.quotas(),$.providers(),$.models(),$.calls(),$.status(),$.settings(),$.clients()]),t=[];e[0].status===`fulfilled`?h(x,e[0].value.accounts):t.push(e[0].reason.message),e[1].status===`fulfilled`?h(w,e[1].value.quotas):t.push(e[1].reason.message),e[2].status===`fulfilled`?h(T,e[2].value.providers):t.push(e[2].reason.message),e[3].status===`fulfilled`?h(E,e[3].value.models):t.push(e[3].reason.message),e[4].status===`fulfilled`?h(D,e[4].value.calls):t.push(e[4].reason.message),e[5].status===`fulfilled`?h(O,e[5].value):(h(O,null),t.push(e[5].reason.message)),e[6].status===`fulfilled`?h(A,e[6].value):t.push(e[6].reason.message),e[7].status===`fulfilled`?h(N,e[7].value):t.push(e[7].reason.message),h(z,[...new Set(t)].join(` `),!0),h(P,!1)})();try{await U}finally{U=null}}function G(e){h(p,e,!0),h(_,!1),h(z,``),h(B,``),location.hash=e,window.scrollTo(0,0)}function ee(){let e=location.hash.slice(1);o.flatMap(e=>e.items).some(t=>t.id===e)&&h(p,e,!0)}async function J(e,t,n=``){if(g(F))return!1;h(F,e,!0),h(z,``),h(B,``);try{return await t(),U&&await U,await W(!0),h(B,n,!0),!0}catch(e){return h(z,e.message,!0),!1}finally{h(F,``)}}function te(e){return J(`quotas`,()=>$.refreshQuotas(e))}async function ne(e,t){let n={...g(A)?.quota_display};t===`average`?n[e]=t:delete n[e],await J(`settings`,()=>$.settingsSave({quota_display:n}),Z(`notice.displaySaved`))}async function re(e,t){let n={...g(A)?.quota_windows};t.hidden?.length||t.primary?n[e]={hidden:t.hidden??[],primary:t.primary??null}:delete n[e],await J(`settings`,()=>$.settingsSave({quota_windows:n}),Z(`notice.windowsSaved`))}async function ie(e,t){if(g(F))throw Error(Z(`notice.busy`));h(F,`rename`);try{let n=await $.renameAccount(e.id,t);h(x,g(x).map(t=>t.id===e.id?n.account:t))}finally{h(F,``)}}function ae(e,t){return J(`endpoint`,()=>$.updateEndpoint(e.id,t),Z(`notice.endpointSaved`))}function se(e,t,n){return J(`reserve`,()=>$.setAccountReserve(e.id,t,n),Z(t==null?`notice.reserveRemoved`:`notice.reserveSaved`))}async function ce(e){let t=Array.from(e);await J(`import`,async()=>{let e=await Promise.all(t.map(async e=>{if(e.size>2097152)throw Error(Z(`notice.fileTooLarge`,{name:e.name}));try{return{name:e.name,content:JSON.parse(await e.text())}}catch{throw Error(Z(`notice.invalidJson`,{name:e.name}))}})),n=await $.importAccounts(e);if(n.errors?.length)throw await W(!0),Error(Z(`notice.partialImport`,{count:n.imported,errors:Rt(n.errors)}));if(!n.imported)throw Error(Z(`notice.nothingImported`))},Z(`notice.imported`))}async function le(e,t){let n=0,r=await J(`restore`,async()=>{let r=await $.restore(e,t);if(n=r.restored,r.errors?.length)throw await W(!0),Error(Z(`notice.partialRestore`,{count:r.restored,errors:Rt(r.errors)}))});return r&&h(B,Z(n===1?`notice.restored.one`:`notice.restored.other`,{count:n}),!0),r}H(()=>{ee(),W();let e=setInterval(()=>{!document.hidden&&!g(F)&&W(!0)},15e3);return()=>clearInterval(e)});var ue=Ua();oe(`1uha8ag`,e=>{var n=Na();y(e=>M(n,`content`,e),[()=>Z(`page.description`)]),s(()=>{u.title=`${g(V)??``} · douane`}),t(e,n)}),d(`hashchange`,K,ee),d(`keydown`,K,e=>{e.key===`Escape`&&h(_,!1)}),d(`visibilitychange`,u,()=>{document.hidden||W(!0)});var de=C(ue),fe=l(de),X=e=>{var n=Pa();y(e=>M(n,`aria-label`,e),[()=>Z(`nav.closeMenu`)]),c(`click`,n,()=>h(_,!1)),t(e,n)};m(fe,e=>{g(_)&&e(X)});var pe=S(fe,2);let he;var _e=l(pe),ye=l(_e);Ma(l(ye),{}),k(ye);var xe=S(ye,2);Pe(l(xe),{size:18}),k(xe),k(_e);var Ce=S(_e,2);v(Ce,21,()=>o,e=>e.label,(e,n)=>{var i=La(),a=l(i),o=l(a,!0);k(a);var s=S(a);v(s,17,()=>g(n).items,e=>e.id,(e,n)=>{let i=j(()=>g(n).icon);var a=Ia();let o;var s=l(a);r(s,()=>g(i),(e,t)=>{t(e,{size:17})});var u=S(s),d=l(u,!0);k(u);var f=S(u),h=e=>{var n=Fa(),r=l(n,!0);k(n),y(()=>R(r,g(x).length)),t(e,n)},_=e=>{var n=Fa(),r=l(n,!0);k(n),y(()=>R(r,g(N).clients.length)),t(e,n)};m(f,e=>{g(n).id===`accounts`&&g(x).length?e(h):g(n).id===`clients`&&g(N)?.clients.length&&e(_,1)}),k(a),y(e=>{o=Y(a,1,`nav-link`,null,o,{active:g(p)===g(n).id}),M(a,`aria-current`,g(p)===g(n).id?`page`:void 0),R(d,e)},[()=>Z(g(n).label)]),c(`click`,a,()=>G(g(n).id)),t(e,a)}),k(i),y(e=>R(o,e),[()=>Z(g(n).label)]),t(e,i)}),k(Ce);var Te=S(Ce,2),De=l(Te),ke=l(De,!0);Ie(S(ke),{size:19}),k(De),k(Te),k(pe);var je=S(pe,2),Ne=l(je),Fe=l(Ne),Le=e=>{var n=Ra(),r=l(n),i=l(r,!0);k(r);var a=S(r),o=l(a,!0);k(a),k(n),y(e=>{R(i,g(z)),a.disabled=g(P),R(o,e)},[()=>Z(`common.retry`)]),c(`click`,a,()=>W()),t(e,n)};m(Fe,e=>{g(z)&&e(Le)});var Re=S(Fe,2),ze=e=>{var n=za(),r=l(n,!0),i=S(r);Pe(l(i),{size:14}),k(i),k(n),y(e=>{R(r,g(B)),M(i,`aria-label`,e)},[()=>Z(`page.dismissNotice`)]),c(`click`,i,()=>h(B,``)),t(e,n)};m(Re,e=>{g(B)&&e(ze)});var Be=S(Re,2),Ve=e=>{var n=Ba(),r=l(n);Ae(r,{size:18,class:`spinning`});var i=S(r),a=l(i,!0);k(i),k(n),y(e=>R(a,e),[()=>Z(`page.loading`)]),t(e,n)};m(Be,e=>{g(P)&&!g(O)&&e(Ve)});var He=S(Be,2),Ue=e=>{Gn(e,{get accounts(){return g(x)},get quotas(){return g(w)},get providers(){return g(T)},get busy(){return g(F)},refresh:te,rename:ie,get settings(){return g(A)},setQuotaDisplay:ne,setQuotaWindows:re,resetUpdated:()=>W(!0),connect:()=>h(b,!0)})},We=e=>{yr(e,{get accounts(){return g(x)},get quotas(){return g(w)},get busy(){return g(F)},rename:ie,setReserve:se,updateEndpoint:ae,connect:()=>h(b,!0),importFiles:ce,toggle:e=>J(`account`,()=>$.setAccountEnabled(e.id,!e.enabled),Z(e.enabled?`notice.accountDisabled`:`notice.accountEnabled`)),remove:e=>J(`account`,()=>$.deleteAccount(e.id),Z(`notice.accountDeleted`))})},Ge=e=>{Ci(e,{get report(){return g(N)},get accounts(){return g(x)},get busy(){return g(F)},updated:async e=>{await W(!0),h(B,e,!0)}})},Ke=e=>{var n=L(),r=C(n),a=e=>{var n=L(),r=C(n);i(r,()=>JSON.stringify(g(A)),e=>{da(e,{get settings(){return g(A)},get providers(){return g(T)},get busy(){return g(F)},restore:le,save:e=>J(`settings`,()=>$.settingsSave(e),Z(`notice.settingsSaved`))})}),t(e,n)},o=e=>{var n=Va(),r=C(n),i=l(r),a=l(i),o=l(a,!0);k(a);var s=S(a),c=l(s,!0);k(s),k(i),k(r),Zi(S(r),{}),y((e,t)=>{R(o,e),R(c,t)},[()=>Z(`nav.settings`),()=>Z(`page.settingsUnavailable`)]),t(e,n)};m(r,e=>{g(A)?e(a):e(o,-1)}),t(e,n)},qe=e=>{var n=L(),r=C(n);i(r,()=>g(p),e=>{{let t=j(()=>g(N)?.clients??[]);Ui(e,{get screen(){return g(p)},get summary(){return g(O)},get calls(){return g(D)},get models(){return g(E)},get accounts(){return g(x)},get clients(){return g(t)},get busy(){return g(F)},navigate:G,toggleModel:e=>J(`model`,()=>$.setModelEnabled(e.id,e.enabled===!1),Z(`notice.modelUpdated`))})}}),t(e,n)};m(He,e=>{g(p)===`quotas`?e(Ue):g(p)===`accounts`?e(We,1):g(p)===`clients`?e(Ge,2):g(p)===`settings`?e(Ke,3):e(qe,-1)}),k(Ne),k(je),k(de);var Je=S(de,2),Ye=l(Je);v(Ye,17,()=>f,e=>e.id,(e,n)=>{let i=j(()=>g(n).icon);var a=Ha();let o;var s=l(a);r(s,()=>g(i),(e,t)=>{t(e,{size:19})});var u=S(s),d=l(u,!0);k(u),k(a),y(e=>{M(a,`aria-current`,g(p)===g(n).id?`page`:void 0),o=Y(a,1,``,null,o,{active:g(p)===g(n).id}),R(d,e)},[()=>Z(g(n).label)]),c(`click`,a,()=>G(g(n).id)),t(e,a)});var Xe=S(Ye),Ze=l(Xe);Me(Ze,{size:19});var Qe=S(Ze),$e=l(Qe,!0);k(Qe),k(Xe),k(Je);var et=S(Je,2),tt=e=>{Aa(e,{get providers(){return g(T)},close:()=>h(b,!1),completed:()=>{h(B,Z(`notice.accountConnected`),!0),W(!0)},importFiles:ce})};m(et,e=>{g(b)&&e(tt)}),y((e,t,n,r,i,a)=>{he=Y(pe,1,`sidebar`,null,he,{"mobile-open":g(_)}),M(xe,`aria-label`,e),M(Ce,`aria-label`,t),R(ke,n),M(Je,`aria-label`,r),M(Xe,`aria-label`,i),M(Xe,`aria-expanded`,g(_)),R($e,a)},[()=>Z(`nav.closeMenu`),()=>Z(`nav.main`),()=>Z(`nav.setupTool`),()=>Z(`nav.mobile`),()=>Z(`nav.openMenu`),()=>Z(`nav.menu`)]),c(`click`,xe,()=>h(_,!1)),c(`click`,De,()=>G(`quickstart`)),c(`click`,Xe,()=>h(_,!0)),t(n,ue),q()}o([`click`]);export{Wa as component}; \ No newline at end of file diff --git a/dash/build/_app/immutable/nodes/2.Cc36NNm7.js b/dash/build/_app/immutable/nodes/2.Cc36NNm7.js deleted file mode 100644 index 941d193..0000000 --- a/dash/build/_app/immutable/nodes/2.Cc36NNm7.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,A as t,B as n,C as r,D as i,E as a,F as o,H as s,I as c,J as l,K as u,L as d,M as f,N as p,O as m,Q as h,R as g,S as _,T as v,U as y,V as b,W as x,X as S,Y as C,Z as w,_ as T,a as E,b as D,c as O,ct as k,d as A,et as j,f as M,g as N,h as P,i as F,it as I,j as L,k as R,l as z,lt as B,m as V,n as H,nt as U,o as W,ot as G,p as ee,q as K,rt as q,s as J,st as te,u as ne,ut as re,v as ie,w as ae,x as oe,y as Y}from"../chunks/QjDztciA.js";import"../chunks/xihTtKlq.js";var se={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`},ce=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},le=Symbol(`lucide-context`),ue=()=>U(le),de=new Set([`$$slots`,`$$events`,`$$legacy`,`name`,`color`,`size`,`strokeWidth`,`absoluteStrokeWidth`,`iconNode`,`children`]),fe=p(``);function X(e,n){I(n,!0);let r=ue()??{},i=F(n,`color`,19,()=>r.color??`currentColor`),o=F(n,`size`,19,()=>r.size??24),s=F(n,`strokeWidth`,19,()=>r.strokeWidth??2),c=F(n,`absoluteStrokeWidth`,19,()=>r.absoluteStrokeWidth??!1),u=F(n,`iconNode`,19,()=>[]),d=E(n,de),f=j(()=>c()?Number(s())*24/Number(o()):s());var p=fe();ne(p,e=>({...se,...e,...d,width:o(),height:o(),stroke:i(),"stroke-width":g(f),class:[`lucide-icon lucide`,r.class,n.name&&`lucide-${n.name}`,n.class]}),[()=>!n.children&&!ce(d)&&{"aria-hidden":`true`}]);var m=l(p);v(m,17,u,a,(e,n)=>{var r=j(()=>re(g(n),2));let i=()=>g(r)[0],a=()=>g(r)[1];var o=L(),s=C(o);_(s,i,!0,(e,t)=>{ne(e,()=>({...a()}))}),t(e,o)});var h=S(m);ae(h,()=>n.children??B),k(p),t(e,p),q()}var pe=new Set([`$$slots`,`$$events`,`$$legacy`]);function me(e,t){let n=E(t,pe),r=[[`path`,{d:`m12 14 4-4`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`}]];X(e,W({name:`gauge`},()=>n,{get iconNode(){return r}}))}var he=new Set([`$$slots`,`$$events`,`$$legacy`]);function ge(e,t){let n=E(t,he),r=[[`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`}]];X(e,W({name:`layout-dashboard`},()=>n,{get iconNode(){return r}}))}var _e=new Set([`$$slots`,`$$events`,`$$legacy`]);function ve(e,t){let n=E(t,_e),r=[[`path`,{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`}],[`path`,{d:`M16 3.128a4 4 0 0 1 0 7.744`}],[`path`,{d:`M22 21v-2a4 4 0 0 0-3-3.87`}],[`circle`,{cx:`9`,cy:`7`,r:`4`}]];X(e,W({name:`users`},()=>n,{get iconNode(){return r}}))}var ye=new Set([`$$slots`,`$$events`,`$$legacy`]);function be(e,t){let n=E(t,ye),r=[[`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`}]];X(e,W({name:`key-round`},()=>n,{get iconNode(){return r}}))}var xe=new Set([`$$slots`,`$$events`,`$$legacy`]);function Se(e,t){let n=E(t,xe),r=[[`path`,{d:`M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z`}],[`path`,{d:`m7 16.5-4.74-2.85`}],[`path`,{d:`m7 16.5 5-3`}],[`path`,{d:`M7 16.5v5.17`}],[`path`,{d:`M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z`}],[`path`,{d:`m17 16.5-5-3`}],[`path`,{d:`m17 16.5 4.74-2.85`}],[`path`,{d:`M17 16.5v5.17`}],[`path`,{d:`M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z`}],[`path`,{d:`M12 8 7.26 5.15`}],[`path`,{d:`m12 8 4.74-2.85`}],[`path`,{d:`M12 13.5V8`}]];X(e,W({name:`boxes`},()=>n,{get iconNode(){return r}}))}var Ce=new Set([`$$slots`,`$$events`,`$$legacy`]);function we(e,t){let n=E(t,Ce),r=[[`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`}]];X(e,W({name:`activity`},()=>n,{get iconNode(){return r}}))}var Te=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ee(e,t){let n=E(t,Te),r=[[`path`,{d:`M14 17H5`}],[`path`,{d:`M19 7h-9`}],[`circle`,{cx:`17`,cy:`17`,r:`3`}],[`circle`,{cx:`7`,cy:`7`,r:`3`}]];X(e,W({name:`settings-2`},()=>n,{get iconNode(){return r}}))}var De=new Set([`$$slots`,`$$events`,`$$legacy`]);function Oe(e,t){let n=E(t,De),r=[[`path`,{d:`M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5`}],[`path`,{d:`M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09`}],[`path`,{d:`M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z`}],[`path`,{d:`M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05`}]];X(e,W({name:`rocket`},()=>n,{get iconNode(){return r}}))}var ke=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ae(e,t){let n=E(t,ke),r=[[`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`}]];X(e,W({name:`refresh-cw`},()=>n,{get iconNode(){return r}}))}var je=new Set([`$$slots`,`$$events`,`$$legacy`]);function Me(e,t){let n=E(t,je),r=[[`path`,{d:`M4 5h16`}],[`path`,{d:`M4 12h16`}],[`path`,{d:`M4 19h16`}]];X(e,W({name:`menu`},()=>n,{get iconNode(){return r}}))}var Ne=new Set([`$$slots`,`$$events`,`$$legacy`]);function Pe(e,t){let n=E(t,Ne),r=[[`path`,{d:`M18 6 6 18`}],[`path`,{d:`m6 6 12 12`}]];X(e,W({name:`x`},()=>n,{get iconNode(){return r}}))}var Fe=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ie(e,t){let n=E(t,Fe),r=[[`path`,{d:`m9 18 6-6-6-6`}]];X(e,W({name:`chevron-right`},()=>n,{get iconNode(){return r}}))}var Le=new Set([`$$slots`,`$$events`,`$$legacy`]);function Re(e,t){let n=E(t,Le),r=[[`path`,{d:`m21 21-4.34-4.34`}],[`circle`,{cx:`11`,cy:`11`,r:`8`}]];X(e,W({name:`search`},()=>n,{get iconNode(){return r}}))}var ze=new Set([`$$slots`,`$$events`,`$$legacy`]);function Be(e,t){let n=E(t,ze),r=[[`path`,{d:`M5 12h14`}],[`path`,{d:`M12 5v14`}]];X(e,W({name:`plus`},()=>n,{get iconNode(){return r}}))}var Ve=new Set([`$$slots`,`$$events`,`$$legacy`]);function He(e,t){let n=E(t,Ve),r=[[`path`,{d:`M15 3h6v6`}],[`path`,{d:`M10 14 21 3`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`}]];X(e,W({name:`external-link`},()=>n,{get iconNode(){return r}}))}var Ue=new Set([`$$slots`,`$$events`,`$$legacy`]);function We(e,t){let n=E(t,Ue),r=[[`path`,{d:`M10 5H3`}],[`path`,{d:`M12 19H3`}],[`path`,{d:`M14 3v4`}],[`path`,{d:`M16 17v4`}],[`path`,{d:`M21 12h-9`}],[`path`,{d:`M21 19h-5`}],[`path`,{d:`M21 5h-7`}],[`path`,{d:`M8 10v4`}],[`path`,{d:`M8 12H3`}]];X(e,W({name:`sliders-horizontal`},()=>n,{get iconNode(){return r}}))}var Ge=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ke(e,t){let n=E(t,Ge),r=[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`}]];X(e,W({name:`star`},()=>n,{get iconNode(){return r}}))}var qe=new Set([`$$slots`,`$$events`,`$$legacy`]);function Je(e,t){let n=E(t,qe),r=[[`rect`,{x:`16`,y:`16`,width:`6`,height:`6`,rx:`1`}],[`rect`,{x:`2`,y:`16`,width:`6`,height:`6`,rx:`1`}],[`rect`,{x:`9`,y:`2`,width:`6`,height:`6`,rx:`1`}],[`path`,{d:`M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3`}],[`path`,{d:`M12 12V8`}]];X(e,W({name:`network`},()=>n,{get iconNode(){return r}}))}var Ye=`data:image/svg+xml,%3csvg%20height='24'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eClaude%3c/title%3e%3cpath%20d='M4.709%2015.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0%2011.784l.055-.352.48-.321.686.06%201.52.103%202.278.158%201.652.097%202.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686%201.908%201.476%202.491%201.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97%202.97%200%2001-.104-.729L6.283.134%206.696%200l.996.134.42.364.62%201.414%201.002%202.229%201.555%203.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286%201.851-.559%202.903-.364%201.942h.212l.243-.242.985-1.306%201.652-2.064.73-.82.85-.904.547-.431h1.033l.76%201.129-.34%201.166-1.064%201.347-.881%201.142-1.264%201.7-.79%201.36.073.11.188-.02%202.856-.606%201.543-.28%201.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061%201.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093%201.068%202.006%201.81%202.509%202.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649%202.345%203.521.122%201.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674%207.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434%201.967-2.18%202.945-1.726%201.845-.414.164-.717-.37.067-.662.401-.589%202.388-3.036%201.44-1.882.93-1.086-.006-.158h-.055L4.132%2018.56l-1.13.146-.487-.456.061-.746.231-.243%201.908-1.312-.006.006z'%20fill='%23D97757'%20fill-rule='nonzero'%3e%3c/path%3e%3c/svg%3e`,Xe=`data:image/svg+xml,%3csvg%20fill='%23ffffff'%20fill-rule='evenodd'%20height='24'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eOpenAI%3c/title%3e%3cpath%20d='M9.205%208.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357%201.356-.523%202.117-.523%202.854%200%204.662%202.212%204.662%204.566%200%20.167%200%20.357-.024.547l-4.71-2.759a.797.797%200%2000-.856%200l-5.97%203.473zm10.609%208.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473%201.95-1.118a.433.433%200%2001.476%200l4.543%202.617c1.309.76%202.189%202.378%202.189%203.948%200%201.808-1.07%203.473-2.76%204.163zM7.802%2012.703l-1.95-1.142c-.167-.095-.239-.238-.239-.428V5.899c0-2.545%201.95-4.472%204.591-4.472%201%200%201.927.333%202.712.928L8.23%205.067c-.285.166-.428.404-.428.737v6.898zM12%2015.128l-2.795-1.57v-3.33L12%208.658l2.795%201.57v3.33L12%2015.128zm1.796%207.23c-1%200-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974%201.142c.167.095.238.238.238.428v5.233c0%202.545-1.974%204.472-4.614%204.472zm-5.637-5.303l-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.482%204.482%200%20014.21%206.327v5.423c0%20.333.143.571.428.738l5.947%203.449-1.95%201.118a.432.432%200%2001-.476%200zm-.262%203.9c-2.688%200-4.662-2.021-4.662-4.519%200-.19.024-.38.047-.57l4.686%202.71c.286.167.571.167.856%200l5.97-3.448v2.26c0%20.19-.07.333-.237.428l-4.543%202.616c-.619.357-1.356.523-2.117.523zm5.899%202.83a5.947%205.947%200%20005.827-4.756C22.287%2018.339%2024%2015.84%2024%2013.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498%200-3.401-2.759-5.947-5.946-5.947-.642%200-1.26.095-1.88.31A5.962%205.962%200%200010.205%200a5.947%205.947%200%2000-5.827%204.757C1.713%205.447%200%207.945%200%2010.49c0%201.666.713%203.283%201.998%204.448-.119.5-.19%201-.19%201.499%200%203.401%202.759%205.946%205.946%205.946.642%200%201.26-.095%201.88-.309a5.96%205.96%200%20004.162%201.713z'%3e%3c/path%3e%3c/svg%3e`,Ze=`data:image/svg+xml,%3csvg%20fill='%23ffffff'%20fill-rule='evenodd'%20height='24'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eOpenAI%3c/title%3e%3cpath%20d='M9.205%208.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357%201.356-.523%202.117-.523%202.854%200%204.662%202.212%204.662%204.566%200%20.167%200%20.357-.024.547l-4.71-2.759a.797.797%200%2000-.856%200l-5.97%203.473zm10.609%208.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473%201.95-1.118a.433.433%200%2001.476%200l4.543%202.617c1.309.76%202.189%202.378%202.189%203.948%200%201.808-1.07%203.473-2.76%204.163zM7.802%2012.703l-1.95-1.142c-.167-.095-.239-.238-.239-.428V5.899c0-2.545%201.95-4.472%204.591-4.472%201%200%201.927.333%202.712.928L8.23%205.067c-.285.166-.428.404-.428.737v6.898zM12%2015.128l-2.795-1.57v-3.33L12%208.658l2.795%201.57v3.33L12%2015.128zm1.796%207.23c-1%200-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974%201.142c.167.095.238.238.238.428v5.233c0%202.545-1.974%204.472-4.614%204.472zm-5.637-5.303l-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.482%204.482%200%20014.21%206.327v5.423c0%20.333.143.571.428.738l5.947%203.449-1.95%201.118a.432.432%200%2001-.476%200zm-.262%203.9c-2.688%200-4.662-2.021-4.662-4.519%200-.19.024-.38.047-.57l4.686%202.71c.286.167.571.167.856%200l5.97-3.448v2.26c0%20.19-.07.333-.237.428l-4.543%202.616c-.619.357-1.356.523-2.117.523zm5.899%202.83a5.947%205.947%200%20005.827-4.756C22.287%2018.339%2024%2015.84%2024%2013.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498%200-3.401-2.759-5.947-5.946-5.947-.642%200-1.26.095-1.88.31A5.962%205.962%200%200010.205%200a5.947%205.947%200%2000-5.827%204.757C1.713%205.447%200%207.945%200%2010.49c0%201.666.713%203.283%201.998%204.448-.119.5-.19%201-.19%201.499%200%203.401%202.759%205.946%205.946%205.946.642%200%201.26-.095%201.88-.309a5.96%205.96%200%20004.162%201.713z'%3e%3c/path%3e%3c/svg%3e`,Qe=`data:image/svg+xml,%3csvg%20width='240'%20height='300'%20viewBox='0%200%20240%20300'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_1401_86283)'%3e%3cmask%20id='mask0_1401_86283'%20style='mask-type:luminance'%20maskUnits='userSpaceOnUse'%20x='0'%20y='0'%20width='240'%20height='300'%3e%3cpath%20d='M240%200H0V300H240V0Z'%20fill='white'/%3e%3c/mask%3e%3cg%20mask='url(%23mask0_1401_86283)'%3e%3cpath%20d='M180%20240H60V120H180V240Z'%20fill='%234B4646'/%3e%3cpath%20d='M180%2060H60V240H180V60ZM240%20300H0V0H240V300Z'%20fill='%23F1ECEC'/%3e%3c/g%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_1401_86283'%3e%3crect%20width='240'%20height='300'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e`,$e=`data:image/svg+xml,%3csvg%20fill='%23ffffff'%20fill-rule='evenodd'%20height='24'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eGrok%3c/title%3e%3cpath%20d='M9.27%2015.29l7.978-5.897c.391-.29.95-.177%201.137.272.98%202.369.542%205.215-1.41%207.169-1.951%201.954-4.667%202.382-7.149%201.406l-2.711%201.257c3.889%202.661%208.611%202.003%2011.562-.953%202.341-2.344%203.066-5.539%202.388-8.42l.006.007c-.983-4.232.242-5.924%202.75-9.383.06-.082.12-.164.179-.248l-3.301%203.305v-.01L9.267%2015.292M7.623%2016.723c-2.792-2.67-2.31-6.801.071-9.184%201.761-1.763%204.647-2.483%207.166-1.425l2.705-1.25a7.808%207.808%200%2000-1.829-1A8.975%208.975%200%20005.984%205.83c-2.533%202.536-3.33%206.436-1.962%209.764%201.022%202.487-.653%204.246-2.34%206.022-.599.63-1.199%201.259-1.682%201.925l7.62-6.815'%3e%3c/path%3e%3c/svg%3e`,et=`data:image/svg+xml,%3csvg%20width='180'%20height='180'%20viewBox='0%200%20180%20180'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M144.248%20149.062C151.748%20154.688%20162.998%20150.938%20152.685%20140.625C121.748%20110.625%20128.31%2028.125%2089.8727%2028.125C51.4352%2028.125%2057.9977%20110.625%2027.0602%20140.625C15.8102%20151.875%2027.9977%20154.688%2035.4977%20149.062C64.5602%20129.375%2062.6852%2094.6875%2089.8727%2094.6875C117.06%2094.6875%20115.185%20129.375%20144.248%20149.062Z'%20fill='white'/%3e%3c/svg%3e`,tt=`data:image/svg+xml,%3csvg%20height='24'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eGemini%3c/title%3e%3cpath%20d='M20.616%2010.835a14.147%2014.147%200%2001-4.45-3.001%2014.111%2014.111%200%2001-3.678-6.452.503.503%200%2000-.975%200%2014.134%2014.134%200%2001-3.679%206.452%2014.155%2014.155%200%2001-4.45%203.001c-.65.28-1.318.505-2.002.678a.502.502%200%20000%20.975c.684.172%201.35.397%202.002.677a14.147%2014.147%200%20014.45%203.001%2014.112%2014.112%200%20013.679%206.453.502.502%200%2000.975%200c.172-.685.397-1.351.677-2.003a14.145%2014.145%200%20013.001-4.45%2014.113%2014.113%200%20016.453-3.678.503.503%200%20000-.975%2013.245%2013.245%200%2001-2.003-.678z'%20fill='%233186FF'%3e%3c/path%3e%3cpath%20d='M20.616%2010.835a14.147%2014.147%200%2001-4.45-3.001%2014.111%2014.111%200%2001-3.678-6.452.503.503%200%2000-.975%200%2014.134%2014.134%200%2001-3.679%206.452%2014.155%2014.155%200%2001-4.45%203.001c-.65.28-1.318.505-2.002.678a.502.502%200%20000%20.975c.684.172%201.35.397%202.002.677a14.147%2014.147%200%20014.45%203.001%2014.112%2014.112%200%20013.679%206.453.502.502%200%2000.975%200c.172-.685.397-1.351.677-2.003a14.145%2014.145%200%20013.001-4.45%2014.113%2014.113%200%20016.453-3.678.503.503%200%20000-.975%2013.245%2013.245%200%2001-2.003-.678z'%20fill='url(%23lobe-icons-gemini-0-_R_0_)'%3e%3c/path%3e%3cpath%20d='M20.616%2010.835a14.147%2014.147%200%2001-4.45-3.001%2014.111%2014.111%200%2001-3.678-6.452.503.503%200%2000-.975%200%2014.134%2014.134%200%2001-3.679%206.452%2014.155%2014.155%200%2001-4.45%203.001c-.65.28-1.318.505-2.002.678a.502.502%200%20000%20.975c.684.172%201.35.397%202.002.677a14.147%2014.147%200%20014.45%203.001%2014.112%2014.112%200%20013.679%206.453.502.502%200%2000.975%200c.172-.685.397-1.351.677-2.003a14.145%2014.145%200%20013.001-4.45%2014.113%2014.113%200%20016.453-3.678.503.503%200%20000-.975%2013.245%2013.245%200%2001-2.003-.678z'%20fill='url(%23lobe-icons-gemini-1-_R_0_)'%3e%3c/path%3e%3cpath%20d='M20.616%2010.835a14.147%2014.147%200%2001-4.45-3.001%2014.111%2014.111%200%2001-3.678-6.452.503.503%200%2000-.975%200%2014.134%2014.134%200%2001-3.679%206.452%2014.155%2014.155%200%2001-4.45%203.001c-.65.28-1.318.505-2.002.678a.502.502%200%20000%20.975c.684.172%201.35.397%202.002.677a14.147%2014.147%200%20014.45%203.001%2014.112%2014.112%200%20013.679%206.453.502.502%200%2000.975%200c.172-.685.397-1.351.677-2.003a14.145%2014.145%200%20013.001-4.45%2014.113%2014.113%200%20016.453-3.678.503.503%200%20000-.975%2013.245%2013.245%200%2001-2.003-.678z'%20fill='url(%23lobe-icons-gemini-2-_R_0_)'%3e%3c/path%3e%3cdefs%3e%3clinearGradient%20gradientUnits='userSpaceOnUse'%20id='lobe-icons-gemini-0-_R_0_'%20x1='7'%20x2='11'%20y1='15.5'%20y2='12'%3e%3cstop%20stop-color='%2308B962'%3e%3c/stop%3e%3cstop%20offset='1'%20stop-color='%2308B962'%20stop-opacity='0'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20gradientUnits='userSpaceOnUse'%20id='lobe-icons-gemini-1-_R_0_'%20x1='8'%20x2='11.5'%20y1='5.5'%20y2='11'%3e%3cstop%20stop-color='%23F94543'%3e%3c/stop%3e%3cstop%20offset='1'%20stop-color='%23F94543'%20stop-opacity='0'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20gradientUnits='userSpaceOnUse'%20id='lobe-icons-gemini-2-_R_0_'%20x1='3.5'%20x2='17.5'%20y1='13.5'%20y2='12'%3e%3cstop%20stop-color='%23FABC12'%3e%3c/stop%3e%3cstop%20offset='.46'%20stop-color='%23FABC12'%20stop-opacity='0'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e`,nt=`data:image/svg+xml,%3csvg%20height='24'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eKimi%3c/title%3e%3cpath%20d='M21.846%200a1.923%201.923%200%20110%203.846H20.15a.226.226%200%2001-.227-.226V1.923C19.923.861%2020.784%200%2021.846%200z'%20fill='%231783FF'%3e%3c/path%3e%3cpath%20d='M11.065%2011.199l7.257-7.2c.137-.136.06-.41-.116-.41H14.3a.164.164%200%2000-.117.051l-7.82%207.756c-.122.12-.302.013-.302-.179V3.82c0-.127-.083-.23-.185-.23H3.186c-.103%200-.186.103-.186.23V19.77c0%20.128.083.23.186.23h2.69c.103%200%20.186-.102.186-.23v-3.25c0-.069.025-.135.069-.178l2.424-2.406a.158.158%200%2001.205-.023l6.484%204.772a7.677%207.677%200%20003.453%201.283c.108.012.2-.095.2-.23v-3.06c0-.117-.07-.212-.164-.227a5.028%205.028%200%2001-2.027-.807l-5.613-4.064c-.117-.078-.132-.279-.028-.381z'%20fill='%23fff'%3e%3c/path%3e%3c/svg%3e`,rt=`data:image/svg+xml,%3csvg%20height='24'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eQwen%3c/title%3e%3cpath%20d='M12.604%201.34c.393.69.784%201.382%201.174%202.075a.18.18%200%2000.157.091h5.552c.174%200%20.322.11.446.327l1.454%202.57c.19.337.24.478.024.837-.26.43-.513.864-.76%201.3l-.367.658c-.106.196-.223.28-.04.512l2.652%204.637c.172.301.111.494-.043.77-.437.785-.882%201.564-1.335%202.34-.159.272-.352.375-.68.37-.777-.016-1.552-.01-2.327.016a.099.099%200%2000-.081.05%20575.097%20575.097%200%2001-2.705%204.74c-.169.293-.38.363-.725.364-.997.003-2.002.004-3.017.002a.537.537%200%2001-.465-.271l-1.335-2.323a.09.09%200%2000-.083-.049H4.982c-.285.03-.553-.001-.805-.092l-1.603-2.77a.543.543%200%2001-.002-.54l1.207-2.12a.198.198%200%20000-.197%20550.951%20550.951%200%2001-1.875-3.272l-.79-1.395c-.16-.31-.173-.496.095-.965.465-.813.927-1.625%201.387-2.436.132-.234.304-.334.584-.335a338.3%20338.3%200%20012.589-.001.124.124%200%2000.107-.063l2.806-4.895a.488.488%200%2001.422-.246c.524-.001%201.053%200%201.583-.006L11.704%201c.341-.003.724.032.9.34zm-3.432.403a.06.06%200%2000-.052.03L6.254%206.788a.157.157%200%2001-.135.078H3.253c-.056%200-.07.025-.041.074l5.81%2010.156c.025.042.013.062-.034.063l-2.795.015a.218.218%200%2000-.2.116l-1.32%202.31c-.044.078-.021.118.068.118l5.716.008c.046%200%20.08.02.104.061l1.403%202.454c.046.081.092.082.139%200l5.006-8.76.783-1.382a.055.055%200%2001.096%200l1.424%202.53a.122.122%200%2000.107.062l2.763-.02a.04.04%200%2000.035-.02.041.041%200%20000-.04l-2.9-5.086a.108.108%200%20010-.113l.293-.507%201.12-1.977c.024-.041.012-.062-.035-.062H9.2c-.059%200-.073-.026-.043-.077l1.434-2.505a.107.107%200%20000-.114L9.225%201.774a.06.06%200%2000-.053-.031zm6.29%208.02c.046%200%20.058.02.034.06l-.832%201.465-2.613%204.585a.056.056%200%2001-.05.029.058.058%200%2001-.05-.029L8.498%209.841c-.02-.034-.01-.052.028-.054l.216-.012%206.722-.012z'%20fill='url(%23lobe-icons-qwen-_R_0_)'%20fill-rule='nonzero'%3e%3c/path%3e%3cdefs%3e%3clinearGradient%20id='lobe-icons-qwen-_R_0_'%20x1='0%25'%20x2='100%25'%20y1='0%25'%20y2='0%25'%3e%3cstop%20offset='0%25'%20stop-color='%236336E7'%20stop-opacity='.84'%3e%3c/stop%3e%3cstop%20offset='100%25'%20stop-color='%236F69F7'%20stop-opacity='.84'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e`,it=`data:image/svg+xml,%3csvg%20fill='%23ffffff'%20fill-rule='evenodd'%20height='24'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eGithubCopilot%3c/title%3e%3cpath%20d='M19.245%205.364c1.322%201.36%201.877%203.216%202.11%205.817.622%200%201.2.135%201.592.654l.73.964c.21.278.323.61.323.955v2.62c0%20.339-.173.669-.453.868C20.239%2019.602%2016.157%2021.5%2012%2021.5c-4.6%200-9.205-2.583-11.547-4.258-.28-.2-.452-.53-.453-.868v-2.62c0-.345.113-.679.321-.956l.73-.963c.392-.517.974-.654%201.593-.654l.029-.297c.25-2.446.81-4.213%202.082-5.52%202.461-2.54%205.71-2.851%207.146-2.864h.198c1.436.013%204.685.323%207.146%202.864zm-7.244%204.328c-.284%200-.613.016-.962.05-.123.447-.305.85-.57%201.108-1.05%201.023-2.316%201.18-2.994%201.18-.638%200-1.306-.13-1.851-.464-.516.165-1.012.403-1.044.996a65.882%2065.882%200%2000-.063%202.884l-.002.48c-.002.563-.005%201.126-.013%201.69.002.326.204.63.51.765%202.482%201.102%204.83%201.657%206.99%201.657%202.156%200%204.504-.555%206.985-1.657a.854.854%200%2000.51-.766c.03-1.682.006-3.372-.076-5.053-.031-.596-.528-.83-1.046-.996-.546.333-1.212.464-1.85.464-.677%200-1.942-.157-2.993-1.18-.266-.258-.447-.661-.57-1.108-.32-.032-.64-.049-.96-.05zm-2.525%204.013c.539%200%20.976.426.976.95v1.753c0%20.525-.437.95-.976.95a.964.964%200%2001-.976-.95v-1.752c0-.525.437-.951.976-.951zm5%200c.539%200%20.976.426.976.95v1.753c0%20.525-.437.95-.976.95a.964.964%200%2001-.976-.95v-1.752c0-.525.437-.951.976-.951zM7.635%205.087c-1.05.102-1.935.438-2.385.906-.975%201.037-.765%203.668-.21%204.224.405.394%201.17.657%201.995.657h.09c.649-.013%201.785-.176%202.73-1.11.435-.41.705-1.433.675-2.47-.03-.834-.27-1.52-.63-1.813-.39-.336-1.275-.482-2.265-.394zm6.465.394c-.36.292-.6.98-.63%201.813-.03%201.037.24%202.06.675%202.47.968.957%202.136%201.104%202.776%201.11h.044c.825%200%201.59-.263%201.995-.657.555-.556.765-3.187-.21-4.224-.45-.468-1.335-.804-2.385-.906-.99-.088-1.875.058-2.265.394zM12%207.615c-.24%200-.525.015-.84.044.03.16.045.336.06.526l-.001.159a2.94%202.94%200%2001-.014.25c.225-.022.425-.027.612-.028h.366c.187%200%20.387.006.612.028-.015-.146-.015-.277-.015-.409.015-.19.03-.365.06-.526a9.29%209.29%200%2000-.84-.044z'%3e%3c/path%3e%3c/svg%3e`,at=f(``),ot=f(``);function st(e,n){let r=F(n,`size`,3,20),i={claude:Ye,codex:Xe,openai:Ze,opencode_go:Qe,opencode:Qe,xai:$e,grok:$e,antigravity:et,gemini:tt,google:tt,kimi:nt,qwen:rt,copilot:it},a=j(()=>i[n.provider]);var o=ot();let s,c;var u=l(o),d=e=>{var n=at();y(()=>{M(n,`src`,g(a)),M(n,`width`,r()),M(n,`height`,r())}),t(e,n)},f=e=>{Je(e,{get size(){return r()},strokeWidth:1.6})};m(u,e=>{g(a)?e(d):e(f,-1)}),k(o),y(()=>{s=Y(o,1,`provider-mark svelte-1vulm01`,null,s,{"light-mat":n.provider===`qwen`}),c=ie(o,``,c,{width:`${r()??``}px`,height:`${r()??``}px`})}),t(e,o)}var ct={"common.save":`Save`,"common.cancel":`Cancel`,"common.close":`Close`,"common.import":`Import`,"common.retry":`Retry`,"common.connectAccount":`Connect an account`,"common.chooseOtherProvider":`Choose another provider`,"common.searchAccount":`Search accounts`,"common.noAccountConnected":`No account connected`,"common.noMatchingAccount":`No matching account`,"common.tryOtherName":`Try another name or provider.`,"common.enable":`Enable {name}`,"common.disabled":`Disabled`,"common.verifyGoogle":`Verify the Google account`,"common.openAntigravity":`Open Antigravity with this account to finish verification.`,"common.percent":`{value}%`,"common.accountCount.one":`{count} account`,"common.accountCount.other":`{count} accounts`,"common.copyRefused":`Copy unavailable. Select the text to copy it.`,"nav.subscriptions":`Subscriptions`,"nav.quotas":`Quotas`,"nav.overview":`Overview`,"nav.accounts":`Accounts`,"nav.models":`Models`,"nav.service":`Service`,"nav.activity":`Requests`,"nav.settings":`Settings`,"nav.quickstart":`Quick start`,"nav.main":`Main navigation`,"nav.mobile":`Mobile navigation`,"nav.openMenu":`Open menu`,"nav.closeMenu":`Close menu`,"nav.menu":`Menu`,"nav.setupTool":`Set up a tool`,"page.description":`Manage your subscriptions, their quotas and your tools' requests.`,"page.loading":`Loading your subscriptions...`,"page.dismissNotice":`Dismiss notification`,"page.settingsUnavailable":`Settings will be available once the server responds.`,"notice.displaySaved":`Boite display saved.`,"notice.windowsSaved":`Windows shown in Boite saved.`,"notice.busy":`Another action is in progress.`,"notice.endpointSaved":`Endpoint saved.`,"notice.reserveRemoved":`Reserve removed.`,"notice.reserveSaved":`Reserve saved.`,"notice.fileTooLarge":`{name} is over the 2 MB limit.`,"notice.invalidJson":`{name}: the file must contain valid JSON.`,"notice.partialImport":`{count} account(s) imported. {errors}`,"notice.nothingImported":`The file added no accounts.`,"notice.imported":`Accounts imported.`,"notice.accountDisabled":`Account disabled.`,"notice.accountEnabled":`Account enabled.`,"notice.accountDeleted":`Account deleted.`,"notice.settingsSaved":`Settings saved.`,"notice.modelUpdated":`Model updated.`,"notice.accountConnected":`Account connected.`,"notice.partialRestore":`{count} account(s) restored. {errors}`,"notice.restored.one":`{count} account restored.`,"notice.restored.other":`{count} accounts restored.`,"api.serverStatus":`The server returned {status}.`,"api.errorPrefix":`{name}: {error}`,"private.account":`account`,"status.active":`Active`,"status.exhausted":`Quota used up`,"status.cooldown":`Paused`,"status.expired":`Sign-in expired`,"status.check":`Needs checking`,"status.reserveReached":`Reserve reached`,"date.unknown":`Date not reported`,"credit.unknown":`Not reported`,"credit.credits":`credits`,"usage.weekly":`Weekly`,"usage.monthly":`Monthly`,"usage.fiveHours":`5 hours`,"usage.extra":`Extra usage`,"usage.codexCredits":`Codex credits`,"usage.creditBalance":`Credit balance`,"usage.premiumRequests":`Premium requests`,"usage.chat":`Chat`,"usage.completions":`Completions`,"dialect.client":`Same as the client`,"reserveWindow.five-hour":`5 h`,"reserveWindow.daily":`Day`,"reserveWindow.weekly":`Week`,"reserveWindow.monthly":`Month`,"provider.openaiCompatible":`OpenAI-compatible`,"accounts.title":`Accounts`,"accounts.dropLabel":`Drop auth files`,"accounts.drop":`Drop your JSON files to import accounts`,"accounts.emptyDescription":`Connect a subscription or import its JSON file.`,"accounts.colAccount":`Account`,"accounts.colSubscription":`Subscription`,"accounts.colStatus":`Status`,"accounts.colReserve":`Reserve`,"accounts.colVerified":`Quotas checked`,"accounts.colActions":`Actions`,"accounts.verifiedPrefix":`Quotas checked: `,"accounts.notVerified":`Not checked`,"accounts.delete":`Delete {name}`,"accounts.deleteTitle":`Delete this account`,"accounts.deleteConfirm":`Delete this account from douane?`,"accounts.deleteButton":`Delete`,"name.invalid":`Enter a name of 1 to 120 characters.`,"name.input":`New account name`,"name.save":`Save name`,"name.cancel":`Cancel rename`,"name.rename":`Rename this account`,"reserve.notSaved":`The reserve was not saved.`,"reserve.invalid":`Enter a percentage from 0 to 99.`,"reserve.keepAtLeast":`Keep at least`,"reserve.input":`Minimum reserve in percent`,"reserve.save":`Save reserve`,"reserve.watched":`Watched limits`,"reserve.longestTitle":`The account's longest limit (month or week)`,"reserve.longest":`Longest`,"reserve.remove":`Remove reserve`,"reserve.titleWatched":`Douane stops using this account when one of these limits reaches this level: {windows}`,"reserve.titleLongest":`Douane stops using this account when its longest quota (month or week) reaches this level`,"reserve.add":`Add a reserve`,"reserve.label":`Reserve {percent}%`,"reserve.reached":`Reserve reached: douane no longer uses this account until the reset.`,"reserve.inactiveWindows":`Inactive: this account does not report these limits.`,"reserve.inactiveAccount":`Inactive: this provider does not report a quota for the whole account.`,"resets.reset":`Quota reset.`,"resets.alreadyRedeemed":`This reset was already applied.`,"resets.nothingToReset":`The quota is already available. No reset used.`,"resets.noCredit":`No reset available.`,"resets.unconfirmed":`The server did not confirm the reset result.`,"resets.resume":`Resume reset`,"resets.button":`Reset ({count})`,"resets.checking":`Checking resets`,"resets.none":`0 resets available`,"resets.check":`Check resets`,"resets.title":`Reset quota`,"resets.closeConfirmation":`Close confirmation`,"resets.warning":`This uses 1 reset to restore the account's quota. It cannot be undone.`,"resets.expiresFirst":`The reset that expires on {date} is used first.`,"resets.pending":`An attempt is waiting for confirmation. Retrying checks the same operation.`,"resets.running":`Resetting`,"resets.retrySame":`Retry the same reset`,"resets.use":`Use 1 reset`,"connect.copyRefused":`The browser refused the copy. Select the code to copy it.`,"connect.waiting":`Waiting for authorization. The connection is checked automatically.`,"connect.expired":`This connection expired. Choose the provider to start again.`,"connect.refused":`The provider refused the connection. Start again to retry.`,"connect.exchanging":`Authorization received, connecting the account.`,"connect.stillWaiting":`The connection is still waiting for your authorization.`,"connect.unconfirmed":`The server did not confirm the new account.`,"connect.notAdded":`The account was not added.`,"connect.subtitle":`Add a subscription to douane.`,"connect.success":`Account connected`,"connect.successText":`Your subscription is now available in douane.`,"connect.viewAccounts":`View my accounts`,"connect.googleVerify":`Google asks you to verify this account before connecting.`,"connect.afterVerify":`Once verification is done, start the connection again.`,"connect.restart":`Start again`,"connect.antigravityTitle":`Antigravity setup incomplete`,"connect.antigravityProject":`The Google sign-in worked, but Google did not provide the project this account needs.`,"connect.antigravityFirstUse":`If this is the first use, open the Antigravity app with this account and finish onboarding. If Antigravity also refuses the sign-in, follow Google's message.`,"connect.antigravityGuide":`Open the Antigravity guide`,"connect.enterCode":`Open the {provider} page and enter this code to authorize the connection.`,"connect.copyCode":`Copy code`,"connect.authorize":`Open the provider's page and authorize the connection.`,"connect.open":`Open sign-in`,"connect.callbackHint":`If the redirect to localhost does not load, copy its full URL. Claude can also show a code to paste here.`,"connect.callbackLabel":`Redirect URL or sign-in code`,"connect.callbackPlaceholder":`Redirect URL or code#state`,"connect.finish":`Finish connecting`,"connect.check":`Check connection`,"connect.customIntro1":`An API key becomes a model prefix: with `,"connect.customIntro2":`, its models are called `,"connect.customModel":`deepseek/model-name`,"connect.customIntro3":`. Several keys under the same prefix take turns. The key leaves this form once saved.`,"connect.name":`Name`,"connect.addEndpoint":`Add endpoint`,"connect.tokenIntro":`Add your subscription's access token. It leaves this form once saved.`,"connect.accountName":`Account name`,"connect.accountNamePlaceholder":`My subscription`,"connect.token":`Access token`,"connect.providerUrl":`Provider URL`,"connect.providerUrlPlaceholder":`https://your-provider/v1`,"connect.addAccount":`Add account`,"connect.oauthOption":`Connect my subscription`,"connect.apiKeyOption":`Add an API key`,"connect.tokenOption":`Add a token`,"connect.noProvider":`No provider available. Import an auth file to add an account.`,"connect.haveFile":`Already have a file?`,"connect.importFiles":`Import one or more JSON auth files.`,"connect.pending":`Connecting...`,"endpoint.route":`Model prefix`,"endpoint.url":`API URL`,"endpoint.format":`API format`,"endpoint.key":`API key`,"endpoint.models":`Served models`,"endpoint.modelsPlaceholder":`All models from the API`,"endpoint.newKey":`New API key`,"endpoint.unchanged":`Unchanged`,"endpoint.edit":`Edit endpoint`,"email.hide":`Hide this email`,"email.show":`Show this email`,"meter.left":`Quota left`,"meter.unavailable":`Unavailable`,"meter.valueLeft":`{value}% left`,"quotas.refresh":`Refresh quotas`,"quotas.filter":`Filter by provider`,"quotas.all":`All`,"quotas.search":`Search`,"quotas.sort":`Sort accounts`,"quotas.byName":`By name`,"quotas.byRemaining":`Quota left`,"quotas.emptyDescription":`Connect a subscription to see its quotas.`,"quotas.group":`{provider} quotas`,"quotas.displayTitle":`How {provider} quotas show in Boite and /v1/quotas clients`,"quotas.displayLabel":`In Boite / clients`,"quotas.perAccount":`Per account`,"quotas.average":`Account average`,"quotas.windowsTitle":`{provider} quota windows shown in Boite`,"quotas.windows":`Windows`,"quotas.windowsLabel":`{provider} windows in Boite`,"quotas.primary":`Main`,"quotas.makePrimary":`Make main`,"quotas.showWindow":`Show {label} in Boite`,"quotas.noWindow":`No window read for this provider.`,"quotas.defaultWindow":`Without a main window, Boite highlights the weekly one.`,"quotas.googleVerify":`Google asks you to verify this account.`,"quotas.resetAt":`Resets: {date}`,"quotas.notReported":`Quota not reported`,"quotas.unlimited":`Unlimited`,"quotas.remaining":`left`,"quotas.used":`{used} used`,"quotas.usedOf":`{used} used of {limit}`,"quotas.refreshAccount":`Refresh this account`,"quotas.refreshNamed":`Refresh {name}`,"overview.description":`Activity across your subscriptions`,"overview.connected":`Service connected`,"overview.disconnected":`Connection unavailable`,"overview.activeAccounts":`Active accounts`,"overview.ofAccounts":`of {count} accounts`,"overview.requests":`Requests`,"overview.inFlight":`{count} in progress`,"overview.tokens":`Tokens exchanged`,"overview.tokensDetail":`input and output`,"overview.cache":`Cache read`,"overview.cacheDetail":`tokens reused`,"overview.success":`Successful requests`,"overview.errors":`{count} errors`,"overview.recent":`Recent activity`,"overview.recentDescription":`The latest requests douane handled`,"overview.viewAll":`View all`,"overview.emptyTitle":`Your activity will show here`,"overview.emptyDescription":`Connect an account, then send a first request from your tool.`,"overview.openQuickstart":`Open quick start`,"table.model":`Model`,"table.provider":`Provider`,"table.time":`Time`,"table.status":`Status`,"table.duration":`Duration`,"table.id":`ID`,"table.context":`Context`,"table.available":`Available`,"table.modelAccount":`Model and account`,"table.tokens":`Tokens`,"table.error":`Error`,"models.description":`Models available with your accounts`,"models.count":`{count} models`,"models.endpoint":`OpenAI-compatible URL`,"models.search":`Search models`,"models.emptyTitle":`No model available`,"models.emptyDescription":`Add an account to load its subscription's models.`,"models.addAccount":`Add an account`,"models.noMatchTitle":`No matching model`,"models.noMatchDescription":`Try another model or provider name.`,"activity.title":`Request log`,"activity.description":`Each call, its account and its usage`,"activity.count":`Last {count} requests`,"activity.onlyErrors":`Show errors only`,"activity.search":`Search requests`,"activity.searchPlaceholder":`Model, account or provider`,"activity.noMatchTitle":`No matching request`,"activity.emptyTitle":`No requests yet`,"activity.noMatchDescription":`Change your search or the error filter.`,"activity.emptyDescription":`Your tools' calls will show here with their real result.`,"activity.unknownAccount":`Account not reported`,"quickstart.chooseTool":`Choose a tool`,"quickstart.openAccounts":`Open accounts`,"quickstart.baseUrl":`Base URL`,"quickstart.copyUrl":`Copy URL`,"quickstart.openaiHint1":`Pick your tool's OpenAI-compatible mode. If it asks for a key, enter `,"quickstart.openaiHint2":`.`,"quickstart.chooseModel":`Choose a model`,"quickstart.powershell":`Run these commands in PowerShell.`,"quickstart.copyClaude":`Copy the Claude Code setup`,"quickstart.claudeHint":`Claude Code will send its requests through the connected Claude account.`,"quickstart.connectClaude":`Connect a Claude account`,"strategy.round-robin.label":`Round robin`,"strategy.round-robin.desc":`Each active account takes requests in turn.`,"strategy.fill-first.label":`Use up one account`,"strategy.fill-first.desc":`Uses the first available account before moving to the next.`,"strategy.reset-first.label":`Nearest reset`,"strategy.reset-first.desc":`Uses the account whose weekly quota resets first. The others serve only when it is unavailable.`,"strategy.smart.label":`Smart split`,"strategy.smart.desc":`Within 48 h of the reset, 90% of new conversations use this account until it runs out.`,"settings.sessionNote":`A conversation keeps its account while it stays available. With Nearest reset, it returns to the account with the nearest reset as soon as that account is available.`,"settings.routing":`Request routing`,"settings.routingDescription":`The default rule applies to providers without their own choice. Each choice saves on click.`,"settings.perProvider":`Per provider`,"settings.perProviderDescription":`Adjust routing for each of your subscriptions.`,"settings.defaultRule":`Default rule`,"settings.noProviders":`Providers will show once the service is connected.`,"settings.refresh":`Refresh and timeouts`,"settings.refreshDescription":`Quotas and account selection are recomputed after each refresh.`,"settings.refreshEvery":`Refresh quotas every`,"settings.seconds":`seconds`,"settings.timeout":`Request timeout`,"settings.defaultProvider":`Default provider`,"settings.autoProvider":`Automatic selection`,"settings.saving":`Saving...`,"settings.save":`Save settings`,"settings.language":`Language`,"settings.languageDescription":`Language of this dashboard, saved in this browser.`,"settings.languageAuto":`Automatic`,"settings.languageEnglish":`English`,"settings.languageFrench":`Français`,"backup.title":`Backup`,"backup.description":`Move this configuration to another douane: settings, disabled models and every account.`,"backup.warning":`The file holds live sign-ins and keys. Refresh tokens rotate, so an account works in one douane at a time: after a restore, remove it here. Keep the file private.`,"backup.export":`Export`,"backup.exporting":`Exporting...`,"backup.restore":`Restore`,"backup.restoring":`Restoring...`,"backup.confirm.one":`{name} holds {count} account. Accounts already here are updated, the others are added.`,"backup.confirm.other":`{name} holds {count} accounts. Accounts already here are updated, the others are added.`,"backup.withSettings":`Also apply its settings and disabled models`,"backup.confirmButton":`Restore accounts`,"backup.notExport":`{name} is not a douane export.`,"backup.tooLarge":`{name} is over the 32 MB limit.`,"nav.clients":`Clients`,"clients.title":`Clients`,"clients.new":`New client`,"clients.open":`Open to anyone who reaches douane. The first client makes a key required on every call, Boite included.`,"clients.enforced":`Keys required`,"clients.emptyTitle":`No client yet`,"clients.emptyDescription":`Give each Boite or tool its own key, the accounts it may use and its share of each quota.`,"clients.allAccounts":`All accounts`,"clients.allAccountsHint":`Accounts connected later included`,"clients.noAccess":`No account`,"clients.noShare":`Common part only`,"clients.createdAt":`Created {date}`,"clients.ofShare":`{used} / {share}%`,"clients.highest":`Highest account: {name}`,"clients.notMeasured":`Not measured yet`,"clients.rotate":`New key`,"clients.rotateNamed":`New key for {name}`,"clients.delete":`Delete`,"clients.deleteNamed":`Delete {name}`,"clients.breakdown":`Breakdown`,"clients.breakdownInfo":`Each rise of a window goes to the clients whose calls ended on that account, weighted by tokens. A rise no call through douane explains counts as outside douane.`,"clients.breakdownEmpty":`No window measured since the first client.`,"clients.noKey":`Without key`,"clients.former":`Deleted clients`,"clients.outside":`Outside douane`,"clients.unexplained":`Unattributed`,"clients.used":`{value}% used`,"clients.editTitle":`Edit {name}`,"clients.name":`Name`,"clients.namePlaceholder":`Desktop`,"clients.access":`Accounts`,"clients.wholePool":`Every {pool} account, later ones included`,"clients.shares":`Quota shares`,"clients.sharesInfo":`A share reserves this percent of each window (5 h, day, week, month) of every account of the provider. An unused share frees up in the last seventh of the window. What no share covers is common to every client.`,"clients.shareOf":`Share of {pool}`,"clients.common":`Common {value}%`,"clients.overbooked":`Over 100%`,"clients.noPool":`Choose accounts first.`,"clients.shareInvalid":`A share is a number above 0 and at most 100.`,"clients.pickAccess":`Choose at least one account.`,"clients.create":`Create`,"clients.keyTitle":`Key for {name}`,"clients.keyOnce":`Shown once. Copy it now.`,"clients.keyBoite":`Paste it in Boite: Settings, subscription proxy, key.`,"clients.copyKey":`Copy`,"clients.copied":`Copied`,"clients.rotateTitle":`New key for {name}?`,"clients.rotateText":`The current key stops working at once. Paste the new one in the tool that uses it.`,"clients.rotateButton":`Replace the key`,"clients.deleteTitle":`Delete {name}?`,"clients.deleteText":`Calls with its key are refused.`,"clients.deleteLast":`It is the last client: the API opens again to anyone who reaches douane.`,"clients.deleteButton":`Delete`,"notice.clientCreated":`Client created.`,"notice.clientSaved":`Client saved.`,"notice.clientDeleted":`Client deleted.`,"notice.keyReplaced":`Key replaced.`,"activity.client":`Client {name}`,"quickstart.keyRequired":`Keys are required: use a client key from the Clients page instead of douane.`},lt={"common.save":`Enregistrer`,"common.cancel":`Annuler`,"common.close":`Fermer`,"common.import":`Importer`,"common.retry":`Réessayer`,"common.connectAccount":`Connecter un compte`,"common.chooseOtherProvider":`Choisir un autre fournisseur`,"common.searchAccount":`Rechercher un compte`,"common.noAccountConnected":`Aucun compte connecté`,"common.noMatchingAccount":`Aucun compte correspondant`,"common.tryOtherName":`Essayez un autre nom ou fournisseur.`,"common.enable":`Activer {name}`,"common.disabled":`Désactivé`,"common.verifyGoogle":`Vérifier le compte Google`,"common.openAntigravity":`Ouvrez Antigravity avec ce compte pour terminer la vérification.`,"common.percent":`{value} %`,"common.accountCount.one":`{count} compte`,"common.accountCount.other":`{count} comptes`,"common.copyRefused":`Copie indisponible. Sélectionnez le texte pour le copier.`,"nav.subscriptions":`Abonnements`,"nav.quotas":`Quotas`,"nav.overview":`Vue d'ensemble`,"nav.accounts":`Comptes`,"nav.models":`Modèles`,"nav.service":`Service`,"nav.activity":`Requêtes`,"nav.settings":`Réglages`,"nav.quickstart":`Démarrage rapide`,"nav.main":`Navigation principale`,"nav.mobile":`Navigation mobile`,"nav.openMenu":`Ouvrir le menu`,"nav.closeMenu":`Fermer le menu`,"nav.menu":`Menu`,"nav.setupTool":`Configurer un outil`,"page.description":`Gérez vos abonnements, leurs quotas et les requêtes de vos outils.`,"page.loading":`Chargement de vos abonnements...`,"page.dismissNotice":`Fermer la notification`,"page.settingsUnavailable":`Les réglages seront disponibles lorsque le serveur répondra.`,"notice.displaySaved":`Affichage dans Boite enregistré.`,"notice.windowsSaved":`Fenêtres affichées dans Boite enregistrées.`,"notice.busy":`Une action est déjà en cours.`,"notice.endpointSaved":`Endpoint enregistré.`,"notice.reserveRemoved":`Réserve retirée.`,"notice.reserveSaved":`Réserve enregistrée.`,"notice.fileTooLarge":`{name} dépasse la limite de 2 Mo.`,"notice.invalidJson":`{name} : le fichier doit contenir du JSON valide.`,"notice.partialImport":`{count} compte(s) importé(s). {errors}`,"notice.nothingImported":`Le fichier n'a ajouté aucun compte.`,"notice.imported":`Comptes importés.`,"notice.accountDisabled":`Compte désactivé.`,"notice.accountEnabled":`Compte activé.`,"notice.accountDeleted":`Compte supprimé.`,"notice.settingsSaved":`Réglages enregistrés.`,"notice.modelUpdated":`Modèle mis à jour.`,"notice.accountConnected":`Compte connecté.`,"notice.partialRestore":`{count} compte(s) restauré(s). {errors}`,"notice.restored.one":`{count} compte restauré.`,"notice.restored.other":`{count} comptes restaurés.`,"api.serverStatus":`Le serveur a répondu {status}.`,"api.errorPrefix":`{name} : {error}`,"private.account":`compte`,"status.active":`Actif`,"status.exhausted":`Quota épuisé`,"status.cooldown":`En pause`,"status.expired":`Connexion expirée`,"status.check":`À vérifier`,"status.reserveReached":`Réserve atteinte`,"date.unknown":`Date non communiquée`,"credit.unknown":`Non communiqué`,"credit.credits":`crédits`,"usage.weekly":`Semaine`,"usage.monthly":`Mois`,"usage.fiveHours":`5 heures`,"usage.extra":`Usage supplémentaire`,"usage.codexCredits":`Crédits Codex`,"usage.creditBalance":`Solde des crédits`,"usage.premiumRequests":`Requêtes premium`,"usage.chat":`Chat`,"usage.completions":`Complétions`,"dialect.client":`Celui du client`,"reserveWindow.five-hour":`5 h`,"reserveWindow.daily":`Jour`,"reserveWindow.weekly":`Semaine`,"reserveWindow.monthly":`Mois`,"provider.openaiCompatible":`Compatible OpenAI`,"accounts.title":`Comptes`,"accounts.dropLabel":`Déposer des fichiers d'authentification`,"accounts.drop":`Déposez vos fichiers JSON pour importer des comptes`,"accounts.emptyDescription":`Connectez un abonnement ou importez son fichier JSON.`,"accounts.colAccount":`Compte`,"accounts.colSubscription":`Abonnement`,"accounts.colStatus":`État`,"accounts.colReserve":`Réserve`,"accounts.colVerified":`Quotas vérifiés`,"accounts.colActions":`Actions`,"accounts.verifiedPrefix":`Quotas vérifiés : `,"accounts.notVerified":`Non vérifiés`,"accounts.delete":`Supprimer {name}`,"accounts.deleteTitle":`Supprimer ce compte`,"accounts.deleteConfirm":`Supprimer ce compte de douane ?`,"accounts.deleteButton":`Supprimer`,"name.invalid":`Saisissez un nom de 1 à 120 caractères.`,"name.input":`Nouveau nom du compte`,"name.save":`Enregistrer le nom`,"name.cancel":`Annuler le renommage`,"name.rename":`Renommer ce compte`,"reserve.notSaved":`La réserve n'a pas été enregistrée.`,"reserve.invalid":`Saisissez un pourcentage entre 0 et 99.`,"reserve.keepAtLeast":`Garder au moins`,"reserve.input":`Réserve minimale en pourcentage`,"reserve.save":`Enregistrer la réserve`,"reserve.watched":`Limites surveillées`,"reserve.longestTitle":`La limite la plus longue du compte (mois ou semaine)`,"reserve.longest":`Plus longue`,"reserve.remove":`Retirer la réserve`,"reserve.titleWatched":`Douane cesse d'utiliser ce compte quand une de ces limites atteint ce seuil : {windows}`,"reserve.titleLongest":`Douane cesse d'utiliser ce compte quand son quota le plus long (mois ou semaine) atteint ce seuil`,"reserve.add":`Ajouter une réserve`,"reserve.label":`Réserve {percent} %`,"reserve.reached":`Réserve atteinte : douane n'utilise plus ce compte jusqu'à la réinitialisation.`,"reserve.inactiveWindows":`Inactive : ce compte ne communique pas ces limites.`,"reserve.inactiveAccount":`Inactive : ce fournisseur ne communique pas de quota pour l'ensemble du compte.`,"resets.reset":`Quota réinitialisé.`,"resets.alreadyRedeemed":`Ce reset a déjà été appliqué.`,"resets.nothingToReset":`Le quota est déjà disponible. Aucun reset utilisé.`,"resets.noCredit":`Aucun reset disponible.`,"resets.unconfirmed":`Le serveur n’a pas confirmé le résultat du reset.`,"resets.resume":`Reprendre le reset`,"resets.button":`Réinitialiser ({count})`,"resets.checking":`Vérification des resets`,"resets.none":`0 reset disponible`,"resets.check":`Vérifier les resets`,"resets.title":`Réinitialiser le quota`,"resets.closeConfirmation":`Fermer la confirmation`,"resets.warning":`Cette action consomme 1 reset pour rétablir le quota du compte. Elle est irréversible.`,"resets.expiresFirst":`Le reset qui expire le {date} sera utilisé en premier.`,"resets.pending":`Une tentative est en attente de confirmation. Réessayer vérifie la même opération.`,"resets.running":`Réinitialisation en cours`,"resets.retrySame":`Réessayer le même reset`,"resets.use":`Utiliser 1 reset`,"connect.copyRefused":`Copie refusée par le navigateur. Sélectionnez le code pour le copier.`,"connect.waiting":`En attente d'autorisation. La connexion est vérifiée automatiquement.`,"connect.expired":`Cette connexion a expiré. Choisissez le fournisseur pour recommencer.`,"connect.refused":`Le fournisseur a refusé la connexion. Recommencez pour réessayer.`,"connect.exchanging":`Autorisation reçue, connexion du compte en cours.`,"connect.stillWaiting":`La connexion attend encore votre autorisation.`,"connect.unconfirmed":`Le serveur n'a pas confirmé l'ajout du compte.`,"connect.notAdded":`Le compte n'a pas été ajouté.`,"connect.subtitle":`Ajoutez un abonnement à douane.`,"connect.success":`Compte connecté`,"connect.successText":`Votre abonnement est maintenant disponible dans douane.`,"connect.viewAccounts":`Voir mes comptes`,"connect.googleVerify":`Google demande de vérifier ce compte avant la connexion.`,"connect.afterVerify":`Une fois la vérification terminée, recommencez la connexion.`,"connect.restart":`Recommencer la connexion`,"connect.antigravityTitle":`Activation Antigravity incomplète`,"connect.antigravityProject":`La connexion Google a réussi, mais Google n'a pas fourni le projet nécessaire à ce compte.`,"connect.antigravityFirstUse":`Pour une première utilisation, ouvrez l'application Antigravity avec ce compte et terminez l'accueil. Si Antigravity refuse aussi la connexion, suivez le message affiché par Google.`,"connect.antigravityGuide":`Ouvrir le guide Antigravity`,"connect.enterCode":`Ouvrez la page {provider} et saisissez ce code pour autoriser la connexion.`,"connect.copyCode":`Copier le code`,"connect.authorize":`Ouvrez la page du fournisseur et autorisez la connexion.`,"connect.open":`Ouvrir la connexion`,"connect.callbackHint":`Si le retour vers localhost ne charge pas, copiez son URL complète. Claude peut aussi afficher un code à coller ici.`,"connect.callbackLabel":`URL de retour ou code de connexion`,"connect.callbackPlaceholder":`URL de retour ou code#state`,"connect.finish":`Terminer la connexion`,"connect.check":`Vérifier la connexion`,"connect.customIntro1":`Une clé d'API devient un préfixe de modèles : avec `,"connect.customIntro2":`, ses modèles s'appellent `,"connect.customModel":`deepseek/nom-du-modèle`,"connect.customIntro3":`. Plusieurs clés sous le même préfixe tournent entre elles. La clé disparaît de ce formulaire après l'enregistrement.`,"connect.name":`Nom`,"connect.addEndpoint":`Ajouter l'endpoint`,"connect.tokenIntro":`Ajoutez le jeton de connexion de votre abonnement. Il disparaît de ce formulaire après l'enregistrement.`,"connect.accountName":`Nom du compte`,"connect.accountNamePlaceholder":`Mon abonnement`,"connect.token":`Jeton de connexion`,"connect.providerUrl":`Adresse du fournisseur`,"connect.providerUrlPlaceholder":`https://votre-fournisseur/v1`,"connect.addAccount":`Ajouter le compte`,"connect.oauthOption":`Connecter mon abonnement`,"connect.apiKeyOption":`Ajouter une clé d'API`,"connect.tokenOption":`Ajouter un jeton`,"connect.noProvider":`Aucun fournisseur disponible. Importez un fichier d'authentification pour ajouter un compte.`,"connect.haveFile":`Vous avez déjà un fichier ?`,"connect.importFiles":`Importez un ou plusieurs fichiers d'authentification JSON.`,"connect.pending":`Connexion en cours...`,"endpoint.route":`Préfixe des modèles`,"endpoint.url":`Adresse de l'API`,"endpoint.format":`Format de l'API`,"endpoint.key":`Clé d'API`,"endpoint.models":`Modèles servis`,"endpoint.modelsPlaceholder":`Tous les modèles de l'API`,"endpoint.newKey":`Nouvelle clé d'API`,"endpoint.unchanged":`Inchangée`,"endpoint.edit":`Modifier l'endpoint`,"email.hide":`Masquer cet email`,"email.show":`Afficher cet email`,"meter.left":`Quota restant`,"meter.unavailable":`Indisponible`,"meter.valueLeft":`{value} % restants`,"quotas.refresh":`Actualiser les quotas`,"quotas.filter":`Filtrer par fournisseur`,"quotas.all":`Tous`,"quotas.search":`Rechercher`,"quotas.sort":`Trier les comptes`,"quotas.byName":`Par nom`,"quotas.byRemaining":`Quota restant`,"quotas.emptyDescription":`Connectez un abonnement pour afficher ses quotas.`,"quotas.group":`Quotas {provider}`,"quotas.displayTitle":`Affichage des quotas {provider} dans Boite et les clients de /v1/quotas`,"quotas.displayLabel":`Dans Boite / les clients`,"quotas.perAccount":`Détail par compte`,"quotas.average":`Moyenne des comptes`,"quotas.windowsTitle":`Fenêtres de quota {provider} montrées dans Boite`,"quotas.windows":`Fenêtres`,"quotas.windowsLabel":`Fenêtres {provider} dans Boite`,"quotas.primary":`Principale`,"quotas.makePrimary":`Rendre principale`,"quotas.showWindow":`Afficher {label} dans Boite`,"quotas.noWindow":`Aucune fenêtre lue pour ce fournisseur.`,"quotas.defaultWindow":`Sans fenêtre principale, Boite met la semaine en avant.`,"quotas.googleVerify":`Google demande de vérifier ce compte.`,"quotas.resetAt":`Réinitialisation : {date}`,"quotas.notReported":`Quota non communiqué`,"quotas.unlimited":`Illimités`,"quotas.remaining":`restants`,"quotas.used":`{used} utilisés`,"quotas.usedOf":`{used} utilisés sur {limit}`,"quotas.refreshAccount":`Actualiser ce compte`,"quotas.refreshNamed":`Actualiser {name}`,"overview.description":`L'activité de vos abonnements`,"overview.connected":`Service connecté`,"overview.disconnected":`Connexion indisponible`,"overview.activeAccounts":`Comptes actifs`,"overview.ofAccounts":`sur {count} comptes`,"overview.requests":`Requêtes`,"overview.inFlight":`{count} en cours`,"overview.tokens":`Tokens échangés`,"overview.tokensDetail":`entrée et sortie`,"overview.cache":`Cache relu`,"overview.cacheDetail":`tokens réutilisés`,"overview.success":`Requêtes réussies`,"overview.errors":`{count} erreurs`,"overview.recent":`Activité récente`,"overview.recentDescription":`Les dernières requêtes traitées par douane`,"overview.viewAll":`Tout voir`,"overview.emptyTitle":`Votre activité apparaîtra ici`,"overview.emptyDescription":`Connectez un compte puis envoyez une première requête depuis votre outil.`,"overview.openQuickstart":`Ouvrir le démarrage rapide`,"table.model":`Modèle`,"table.provider":`Fournisseur`,"table.time":`Heure`,"table.status":`Statut`,"table.duration":`Durée`,"table.id":`Identifiant`,"table.context":`Contexte`,"table.available":`Disponible`,"table.modelAccount":`Modèle et compte`,"table.tokens":`Tokens`,"table.error":`Erreur`,"models.description":`Les modèles disponibles avec vos comptes`,"models.count":`{count} modèles`,"models.endpoint":`Adresse compatible OpenAI`,"models.search":`Rechercher un modèle`,"models.emptyTitle":`Aucun modèle disponible`,"models.emptyDescription":`Ajoutez un compte pour charger les modèles de son abonnement.`,"models.addAccount":`Ajouter un compte`,"models.noMatchTitle":`Aucun modèle correspondant`,"models.noMatchDescription":`Essayez un autre nom de modèle ou de fournisseur.`,"activity.title":`Journal des requêtes`,"activity.description":`Chaque appel, son compte et sa consommation`,"activity.count":`{count} dernières requêtes`,"activity.onlyErrors":`Afficher les erreurs seulement`,"activity.search":`Rechercher une requête`,"activity.searchPlaceholder":`Modèle, compte ou fournisseur`,"activity.noMatchTitle":`Aucune requête correspondante`,"activity.emptyTitle":`Aucune requête pour le moment`,"activity.noMatchDescription":`Modifiez votre recherche ou le filtre des erreurs.`,"activity.emptyDescription":`Les appels de vos outils apparaîtront ici avec leur résultat réel.`,"activity.unknownAccount":`Compte non communiqué`,"quickstart.chooseTool":`Choisir un outil`,"quickstart.openAccounts":`Ouvrir les comptes`,"quickstart.baseUrl":`Adresse de base`,"quickstart.copyUrl":`Copier l'adresse`,"quickstart.openaiHint1":`Choisissez le mode compatible OpenAI de votre outil. S’il demande une clé, saisissez `,"quickstart.openaiHint2":`.`,"quickstart.chooseModel":`Choisir un modèle`,"quickstart.powershell":`Exécutez ces commandes dans PowerShell.`,"quickstart.copyClaude":`Copier la configuration Claude Code`,"quickstart.claudeHint":`Claude Code utilisera le compte Claude connecté pour envoyer ses requêtes.`,"quickstart.connectClaude":`Connecter un compte Claude`,"strategy.round-robin.label":`Rotation`,"strategy.round-robin.desc":`Chaque compte actif reçoit les requêtes à tour de rôle.`,"strategy.fill-first.label":`Épuiser un compte`,"strategy.fill-first.desc":`Utilise le premier compte disponible avant de passer au suivant.`,"strategy.reset-first.label":`Reset le plus proche`,"strategy.reset-first.desc":`Utilise le compte dont le quota hebdomadaire se réinitialise en premier. Les autres servent seulement s’il est indisponible.`,"strategy.smart.label":`Répartition intelligente`,"strategy.smart.desc":`À moins de 48 h du reset, 90 % des nouvelles conversations utilisent ce compte jusqu’à épuisement.`,"settings.sessionNote":`Une conversation garde son compte tant qu'il reste disponible. Avec Reset le plus proche, elle revient au compte dont le reset est le plus proche dès qu'il est disponible.`,"settings.routing":`Répartition des requêtes`,"settings.routingDescription":`La règle par défaut s'applique aux fournisseurs sans choix particulier. Chaque choix est enregistré dès le clic.`,"settings.perProvider":`Par fournisseur`,"settings.perProviderDescription":`Adaptez la répartition à chacun de vos abonnements.`,"settings.defaultRule":`Règle par défaut`,"settings.noProviders":`Les fournisseurs apparaîtront lorsque le service sera connecté.`,"settings.refresh":`Actualisation et délais`,"settings.refreshDescription":`Les quotas et la sélection des comptes sont recalculés après chaque actualisation.`,"settings.refreshEvery":`Actualiser les quotas toutes les`,"settings.seconds":`secondes`,"settings.timeout":`Délai maximal d'une requête`,"settings.defaultProvider":`Fournisseur par défaut`,"settings.autoProvider":`Sélection automatique`,"settings.saving":`Enregistrement...`,"settings.save":`Enregistrer les réglages`,"settings.language":`Langue`,"settings.languageDescription":`Langue de ce tableau de bord, enregistrée dans ce navigateur.`,"settings.languageAuto":`Automatique`,"settings.languageEnglish":`English`,"settings.languageFrench":`Français`,"backup.title":`Sauvegarde`,"backup.description":`Déplacez cette configuration vers une autre douane : réglages, modèles désactivés et tous les comptes.`,"backup.warning":`Le fichier contient des connexions et des clés actives. Les jetons de renouvellement changent à chaque usage : un compte ne fonctionne que dans une douane à la fois. Après une restauration, retirez-le ici. Gardez le fichier privé.`,"backup.export":`Exporter`,"backup.exporting":`Export...`,"backup.restore":`Restaurer`,"backup.restoring":`Restauration...`,"backup.confirm.one":`{name} contient {count} compte. Les comptes déjà présents sont mis à jour, les autres sont ajoutés.`,"backup.confirm.other":`{name} contient {count} comptes. Les comptes déjà présents sont mis à jour, les autres sont ajoutés.`,"backup.withSettings":`Appliquer aussi ses réglages et modèles désactivés`,"backup.confirmButton":`Restaurer les comptes`,"backup.notExport":`{name} n'est pas un export douane.`,"backup.tooLarge":`{name} dépasse la limite de 32 Mo.`,"nav.clients":`Clients`,"clients.title":`Clients`,"clients.new":`Nouveau client`,"clients.open":`Ouvert à quiconque atteint douane. Le premier client rend une clé obligatoire à chaque appel, Boite compris.`,"clients.enforced":`Clé obligatoire`,"clients.emptyTitle":`Aucun client`,"clients.emptyDescription":`Donnez à chaque Boite ou outil sa clé, les comptes qu'il peut utiliser et sa part de chaque quota.`,"clients.allAccounts":`Tous les comptes`,"clients.allAccountsHint":`Comptes connectés plus tard compris`,"clients.noAccess":`Aucun compte`,"clients.noShare":`Part commune seulement`,"clients.createdAt":`Créé le {date}`,"clients.ofShare":`{used} / {share} %`,"clients.highest":`Compte le plus utilisé : {name}`,"clients.notMeasured":`Pas encore mesuré`,"clients.rotate":`Nouvelle clé`,"clients.rotateNamed":`Nouvelle clé pour {name}`,"clients.delete":`Supprimer`,"clients.deleteNamed":`Supprimer {name}`,"clients.breakdown":`Répartition`,"clients.breakdownInfo":`Chaque hausse d'une fenêtre revient aux clients dont les appels ont fini sur ce compte, au prorata des tokens. Une hausse qu'aucun appel par douane n'explique compte comme hors douane.`,"clients.breakdownEmpty":`Aucune fenêtre mesurée depuis le premier client.`,"clients.noKey":`Sans clé`,"clients.former":`Clients supprimés`,"clients.outside":`Hors douane`,"clients.unexplained":`Non attribué`,"clients.used":`{value} % utilisés`,"clients.editTitle":`Modifier {name}`,"clients.name":`Nom`,"clients.namePlaceholder":`PC fixe`,"clients.access":`Comptes`,"clients.wholePool":`Tous les comptes {pool}, futurs compris`,"clients.shares":`Parts de quota`,"clients.sharesInfo":`Une part réserve ce pourcentage de chaque fenêtre (5 h, jour, semaine, mois) de chaque compte du fournisseur. Une part inutilisée se libère dans le dernier septième de la fenêtre. Ce qu'aucune part ne couvre est commun à tous les clients.`,"clients.shareOf":`Part de {pool}`,"clients.common":`Commun {value} %`,"clients.overbooked":`Plus de 100 %`,"clients.noPool":`Choisissez d'abord des comptes.`,"clients.shareInvalid":`Une part est un nombre supérieur à 0 et au plus 100.`,"clients.pickAccess":`Choisissez au moins un compte.`,"clients.create":`Créer`,"clients.keyTitle":`Clé de {name}`,"clients.keyOnce":`Affichée une seule fois. Copiez-la maintenant.`,"clients.keyBoite":`Collez-la dans Boite : Réglages, proxy d'abonnements, clé.`,"clients.copyKey":`Copier`,"clients.copied":`Copiée`,"clients.rotateTitle":`Nouvelle clé pour {name} ?`,"clients.rotateText":`La clé actuelle cesse de fonctionner tout de suite. Collez la nouvelle dans l'outil qui l'utilise.`,"clients.rotateButton":`Remplacer la clé`,"clients.deleteTitle":`Supprimer {name} ?`,"clients.deleteText":`Les appels avec sa clé sont refusés.`,"clients.deleteLast":`C'est le dernier client : l'API redevient ouverte à quiconque atteint douane.`,"clients.deleteButton":`Supprimer`,"notice.clientCreated":`Client créé.`,"notice.clientSaved":`Client enregistré.`,"notice.clientDeleted":`Client supprimé.`,"notice.keyReplaced":`Clé remplacée.`,"activity.client":`Client {name}`,"quickstart.keyRequired":`Une clé est obligatoire : utilisez une clé client de la page Clients au lieu de douane.`},ut=`douane-language`,dt={en:ct,fr:lt},ft={en:`en-US`,fr:`fr-FR`};function pt(){try{let e=localStorage.getItem(ut);return e===`en`||e===`fr`?e:`auto`}catch{return`auto`}}function mt(){if(typeof navigator>`u`)return`en`;let e=navigator.languages?.length?navigator.languages:[navigator.language];for(let t of e){let e=t?.toLowerCase()??``;if(e.startsWith(`fr`))return`fr`;if(e.startsWith(`en`))return`en`}return`en`}var ht=w({choice:typeof window>`u`?`auto`:pt(),detected:mt()});function gt(){return ht.choice}function _t(){return ht.choice===`auto`?ht.detected:ht.choice}function vt(){return ft[_t()]}function yt(){typeof document<`u`&&(document.documentElement.lang=_t())}function bt(e){ht.choice=e;try{e===`auto`?localStorage.removeItem(ut):localStorage.setItem(ut,e)}catch{}yt()}typeof window<`u`&&(yt(),window.addEventListener(`languagechange`,()=>{ht.detected=mt(),yt()}));function Z(e,t){let n=dt[_t()][e]??ct[e];return t?n.replace(/\{(\w+)\}/g,(e,n)=>n in t?String(t[n]):e):n}var xt=f(`
`),St=f(`
`);function Ct(e,n){I(n,!0);let r=F(n,`compact`,3,!1),i=j(()=>n.label??Z(`meter.left`)),a=j(()=>n.value==null?null:Math.min(100,Math.max(0,n.value)));var o=St();let s;var c=l(o),u=l(c),d=l(u,!0);k(u);var f=S(u),p=l(f,!0);k(f),k(c);var h=S(c,2),_=l(h),v=e=>{var n=xt();let r,i;y(()=>{r=Y(n,1,`meter-fill svelte-1dmbtuk`,null,r,{low:g(a)<25,medium:g(a)>=25&&g(a)<60}),i=ie(n,``,i,{width:`${g(a)??``}%`})}),t(e,n)};m(_,e=>{g(a)!=null&&e(v)}),k(h),k(o),y((e,t)=>{s=Y(o,1,`quota-meter svelte-1dmbtuk`,null,s,{compact:r()}),R(d,g(i)),R(p,e),M(h,`aria-label`,g(i)),M(h,`aria-valuenow`,g(a)??void 0),M(h,`aria-valuetext`,t)},[()=>g(a)==null?Z(`meter.unavailable`):Z(`common.percent`,{value:Math.round(g(a))}),()=>g(a)==null?Z(`meter.unavailable`):Z(`meter.valueLeft`,{value:Math.round(g(a))})]),t(e,o),q()}var wt=new Set([`$$slots`,`$$events`,`$$legacy`]);function Tt(e,t){let n=E(t,wt),r=[[`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`}]];X(e,W({name:`pencil`},()=>n,{get iconNode(){return r}}))}var Et=new Set([`$$slots`,`$$events`,`$$legacy`]);function Dt(e,t){let n=E(t,Et),r=[[`path`,{d:`M20 6 9 17l-5-5`}]];X(e,W({name:`check`},()=>n,{get iconNode(){return r}}))}var Ot=[`chat`,`responses`,`messages`,``];function kt(e){return e===``?Z(`dialect.client`):{chat:`Chat Completions`,responses:`Responses`,messages:`Messages (Anthropic)`}[e]}var At=[`five-hour`,`daily`,`weekly`,`monthly`];function jt(e){return Z(`reserveWindow.${e}`)}function Mt(e){return{"five-hour":`five-hour`,daily:`daily`,weekly:`weekly`,"seven-day":`weekly`,seven_day:`weekly`,monthly:`monthly`}[e]??null}var Nt=class extends Error{status;constructor(e,t){super(t),this.status=e}};async function Q(e,t){let n=await fetch(`/admin/api${e}`,{...t,headers:{...t?.body?{"content-type":`application/json`}:{},...t?.headers}});if(!n.ok){let e=Z(`api.serverStatus`,{status:n.status});try{let t=await n.json();e=t.errors?.length?Rt(t.errors):typeof t.error==`string`?t.error:t.error?.message??t.message??e}catch{}throw new Nt(n.status,e)}return n.status===204?void 0:n.json()}var $={status:()=>Q(`/summary`),providers:()=>Q(`/providers`),accounts:()=>Q(`/accounts`),quotas:()=>Q(`/quotas`),models:()=>Q(`/models`),calls:()=>Q(`/calls?limit=100`),settings:()=>Q(`/settings`),refreshQuotas:e=>Q(`/quotas/refresh`,{method:`POST`,body:JSON.stringify({account_id:e})}),importAccounts:e=>Q(`/accounts/import`,{method:`POST`,body:JSON.stringify({files:e})}),importCredential:e=>Q(`/accounts/import`,{method:`POST`,body:JSON.stringify(e)}),updateEndpoint:(e,t)=>Q(`/accounts/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify(t)}),setAccountEnabled:(e,t)=>Q(`/accounts/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify({enabled:t})}),renameAccount:(e,t)=>Q(`/accounts/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify({name:t})}),setAccountReserve:(e,t,n)=>Q(`/accounts/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify({reserve_percent:t,reserve_windows:n})}),accountResets:e=>Q(`/accounts/${encodeURIComponent(e)}/resets`),redeemReset:(e,t)=>Q(`/accounts/${encodeURIComponent(e)}/resets/redeem`,{method:`POST`,body:JSON.stringify({confirmation:!0,request_id:t})}),deleteAccount:e=>Q(`/accounts/${encodeURIComponent(e)}`,{method:`DELETE`}),startOAuth:e=>Q(`/oauth/start`,{method:`POST`,body:JSON.stringify({provider:e})}),oauth:e=>Q(`/oauth/${encodeURIComponent(e)}`),oauthCallback:(e,t,n)=>Q(`/oauth/callback`,{method:`POST`,body:JSON.stringify({id:e,code:t,state:n})}),setModelEnabled:(e,t)=>Q(`/models/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify({enabled:t})}),settingsSave:e=>Q(`/settings`,{method:`PATCH`,body:JSON.stringify(e)}),clients:()=>Q(`/clients`),createClient:e=>Q(`/clients`,{method:`POST`,body:JSON.stringify(e)}),updateClient:(e,t)=>Q(`/clients/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify(t)}),deleteClient:e=>Q(`/clients/${encodeURIComponent(e)}`,{method:`DELETE`}),exportConfig:()=>Q(`/export`),restore:(e,t)=>Q(`/restore`,{method:`POST`,body:JSON.stringify({bundle:e,settings:t})})},Pt={codex:`Codex`,claude:`Claude`,gemini:`Gemini`,antigravity:`Antigravity`,qwen:`Qwen`,kimi:`Kimi`,copilot:`GitHub Copilot`,iflow:`iFlow`,opencode_go:`OpenCode Go`,xai:`Grok`,grok:`Grok`,openai_compatible:`OpenAI-compatible`};function Ft(e){return e.route||e.provider}function It(e){let t=new Map;for(let n of e){let e=Ft(n),r=t.get(e)??{id:e,provider:n.provider,name:n.route?n.name:Ht(n.provider),accounts:[]};r.accounts.push(n),t.set(e,r)}return[...t.values()]}function Lt(e,t=!1){return t?e:e.replace(/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}/gi,Z(`private.account`))}function Rt(e){return e.map(e=>typeof e==`string`?e:e.name?Z(`api.errorPrefix`,{name:Lt(e.name),error:e.error}):e.error).join(` `)}var zt={ready:`status.active`,active:`status.active`,disabled:`common.disabled`,exhausted:`status.exhausted`,cooldown:`status.cooldown`,expired:`status.expired`,error:`status.check`};function Bt(e){return Z(e.enabled?zt[e.status]??`status.check`:`common.disabled`)}function Vt(e){return e.enabled&&(!!e.last_error||![`ready`,`active`].includes(e.status))}function Ht(e,t=e){return e===`openai_compatible`?Z(`provider.openaiCompatible`):Pt[e]??t}function Ut(e){return new Intl.NumberFormat(vt(),{maximumFractionDigits:1}).format(e)}function Wt(e){return e==null?`-`:new Intl.NumberFormat(vt(),{notation:e>=1e4?`compact`:`standard`,maximumFractionDigits:1}).format(e)}function Gt(){return _t()===`en`?`numeric`:`2-digit`}function Kt(e){return e?new Intl.DateTimeFormat(vt(),{day:`2-digit`,month:`short`,hour:Gt(),minute:`2-digit`}).format(new Date(e)):`-`}function qt(e){if(!e)return Z(`date.unknown`);let t=new Date(e);if(Number.isNaN(t.getTime()))return Z(`date.unknown`);let n=Math.abs(t.getTime()-Date.now())>6048e5;return new Intl.DateTimeFormat(vt(),{weekday:`long`,...n?{day:`numeric`,month:`short`}:{},hour:Gt(),minute:`2-digit`}).format(t)}function Jt(e,t){return e==null?Z(`credit.unknown`):t===`USD`?new Intl.NumberFormat(vt(),{style:`currency`,currency:`USD`,maximumFractionDigits:2}).format(e):/^[A-Z]{3}_minor$/.test(t)?new Intl.NumberFormat(vt(),{style:`currency`,currency:t.slice(0,3),maximumFractionDigits:2}).format(e/100):`${new Intl.NumberFormat(vt(),{maximumFractionDigits:2}).format(e)} ${t===`credits`?Z(`credit.credits`):t}`}var Yt={weekly:`usage.weekly`,"codex weekly":`usage.weekly`,"grok weekly":`usage.weekly`,monthly:`usage.monthly`,"5 hours":`usage.fiveHours`,"five hour":`usage.fiveHours`,"extra usage":`usage.extra`,"additional usage":`usage.extra`,"codex credits":`usage.codexCredits`,"credit balance":`usage.creditBalance`,"premium requests":`usage.premiumRequests`,chat:`usage.chat`,completions:`usage.completions`};function Xt(e){let t=Yt[e.toLowerCase()];return t?Z(t):e}function Zt(){if(typeof crypto.randomUUID==`function`)return crypto.randomUUID();let e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}var Qt=f(``),$t=f(`
`),en=f(``);function tn(r,i){I(i,!0);let a=e(!1),o=e(``),s=e(!1),u=e(``),f=e(void 0);async function p(){h(o,i.account.name,!0),h(u,``),h(a,!0),await n(),g(f)?.focus(),g(f)?.select()}async function _(){if(g(s)||i.busy)return;let e=g(o).trim();if(!e||e.length>120||/[\x00-\x1f\x7f]/.test(e)){h(u,Z(`name.invalid`),!0);return}if(e===i.account.name){h(a,!1);return}h(s,!0),h(u,``);try{await i.rename(i.account,e),h(a,!1)}catch(e){h(u,Lt(e.message),!0)}finally{h(s,!1)}}var v=L(),b=C(v),x=e=>{var n=$t(),r=l(n);A(r),J(r,e=>h(f,e),()=>g(f));var p=S(r,2),v=l(p);Dt(l(v),{size:20}),k(v);var b=S(v);Pe(l(b),{size:20}),k(b),k(p);var x=S(p,2),C=e=>{var n=Qt(),r=l(n,!0);k(n),y(()=>R(r,g(u))),t(e,n)};m(x,e=>{g(u)&&e(C)}),k(n),y((e,t,n,a,o)=>{M(r,`aria-label`,e),r.disabled=g(s),M(v,`aria-label`,t),M(v,`title`,n),v.disabled=g(s)||!!i.busy,M(b,`aria-label`,a),M(b,`title`,o),b.disabled=g(s)},[()=>Z(`name.input`),()=>Z(`name.save`),()=>Z(`common.save`),()=>Z(`name.cancel`),()=>Z(`common.cancel`)]),d(`submit`,n,e=>{e.preventDefault(),_()}),c(`keydown`,r,e=>{e.key===`Escape`&&!g(s)&&h(a,!1)}),z(r,()=>g(o),e=>h(o,e)),c(`click`,b,()=>h(a,!1)),t(e,n)},w=e=>{var n=en(),r=l(n),a=l(r,!0);k(r),Tt(S(r),{size:15}),k(n),y((e,t)=>{M(n,`title`,e),n.disabled=!!i.busy,R(a,t)},[()=>Z(`name.rename`),()=>Lt(i.account.name)]),c(`click`,n,p),t(e,n)};m(b,e=>{g(a)?e(x):e(w,-1)}),t(r,v),q()}o([`keydown`,`click`]);var nn=new Set([`$$slots`,`$$events`,`$$legacy`]);function rn(e,t){let n=E(t,nn),r=[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`}]];X(e,W({name:`eye`},()=>n,{get iconNode(){return r}}))}var an=new Set([`$$slots`,`$$events`,`$$legacy`]);function on(e,t){let n=E(t,an),r=[[`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`}],[`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`}],[`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`}],[`path`,{d:`m2 2 20 20`}]];X(e,W({name:`eye-off`},()=>n,{get iconNode(){return r}}))}var sn=f(``);function cn(n,r){I(r,!0);let i=e(!1);var a=sn(),o=l(a);let s;var u=l(o,!0);k(o);var d=S(o,2),f=e=>{on(e,{size:16})},p=e=>{rn(e,{size:16})};m(d,e=>{g(i)?e(f):e(p,-1)}),k(a),y((e,t)=>{M(a,`aria-label`,e),M(a,`aria-pressed`,g(i)),M(a,`title`,t),M(o,`aria-hidden`,!g(i)),s=Y(o,1,`svelte-1n2y5u`,null,s,{blurred:!g(i)}),R(u,r.email)},[()=>Z(g(i)?`email.hide`:`email.show`),()=>Z(g(i)?`email.hide`:`email.show`)]),c(`click`,a,()=>h(i,!g(i))),t(n,a),q()}o([`click`]);var ln=f(``),un=f(` `),dn=f(``),fn=f(``),pn=f(`

`),mn=f(`

`,1),hn=f(`

`),gn=f(`

`,1),_n=f(`

`,1);function vn(n,r){I(r,!0);let i=e(null),a=e(!1),o=e(!1),s=e(``),u=e(``),f=e(!1),p=``,_=e(void 0),v=j(()=>r.account.enabled&&[`claude`,`codex`].includes(r.account.provider)),w=j(()=>`douane-reset-${r.account.id}`),T=j(()=>g(i)?.status===`ready`&&(g(i).available_count??0)>0);async function E(){if(!(!g(v)||g(a))){h(a,!0),h(s,``);try{h(i,await $.accountResets(r.account.id)),g(i).pending_request_id&&(sessionStorage.setItem(g(w),g(i).pending_request_id),h(f,!0))}catch(e){h(s,Lt(e.message),!0)}finally{h(a,!1)}}}x(()=>{g(v)?b(()=>{h(f,!!sessionStorage.getItem(g(w))),E()}):h(i,null)});function D(){p=g(i)?.pending_request_id??sessionStorage.getItem(g(w))??Zt(),h(s,``),h(u,``),g(_)?.showModal()}async function O(){if(!(g(o)||r.busy)){h(o,!0),h(s,``);try{sessionStorage.setItem(g(w),p),h(f,!0);let e={reset:`resets.reset`,already_redeemed:`resets.alreadyRedeemed`,nothing_to_reset:`resets.nothingToReset`,no_credit:`resets.noCredit`}[(await $.redeemReset(r.account.id,p)).outcome];if(!e)throw Error(Z(`resets.unconfirmed`));h(u,Z(e),!0),sessionStorage.removeItem(g(w)),h(f,!1),await E(),await r.updated()}catch(e){h(s,Lt(e.message),!0)}finally{h(o,!1)}}}var A=L(),N=C(A),P=e=>{var n=_n(),p=C(n),v=l(p),b=e=>{var n=ln(),o=l(n);Ae(o,{size:17});var s=S(o,1,!0);k(n),y(e=>{n.disabled=!!r.busy||g(a),R(s,e)},[()=>g(f)?Z(`resets.resume`):Z(`resets.button`,{count:g(i)?.available_count??0})]),c(`click`,n,D),t(e,n)},x=e=>{var n=un(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`resets.checking`)]),t(e,n)},w=e=>{var n=un(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`resets.none`)]),t(e,n)},A=e=>{var n=dn(),i=l(n,!0);k(n),y(e=>{n.disabled=!!r.busy,R(i,e)},[()=>Z(`resets.check`)]),c(`click`,n,E),t(e,n)};m(v,e=>{g(T)||g(f)?e(b):g(a)?e(x,1):g(i)?.status===`ready`?e(w,2):g(i)?.status!==`unsupported`&&e(A,3)});var j=S(v,2),N=e=>{var n=fn(),r=l(n,!0);k(n),y(()=>R(r,g(s))),t(e,n)};m(j,e=>{g(s)&&!g(_)?.open&&e(N)});var P=S(j,2),F=e=>{var n=pn(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Lt(g(i).error)]),t(e,n)};m(P,e=>{g(i)?.error&&!g(s)&&g(i).status!==`unsupported`&&e(F)}),k(p);var I=S(p,2),L=l(I),z=l(L),B=l(z),V=l(B,!0);k(B);var H=S(B);Pe(l(H),{size:22}),k(H),k(z);var U=S(z,2),W=l(U,!0);k(U);var G=S(U,2),ee=e=>{var n=mn(),r=C(n),i=l(r,!0);k(r);var a=S(r),o=l(a),s=l(o,!0);k(o),k(a),y(e=>{R(i,g(u)),R(s,e)},[()=>Z(`common.close`)]),c(`click`,o,()=>g(_)?.close()),t(e,n)},K=e=>{var n=gn(),a=C(n),u=l(a,!0);k(a);var d=S(a,2),p=e=>{var n=hn(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`resets.expiresFirst`,{date:Kt(g(i).next_expires_at)})]),t(e,n)};m(d,e=>{g(i)?.next_expires_at&&e(p)});var h=S(d,2),v=e=>{var n=hn(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`resets.pending`)]),t(e,n)};m(h,e=>{g(f)&&e(v)});var b=S(h,2),x=e=>{var n=fn(),r=l(n,!0);k(n),y(()=>R(r,g(s))),t(e,n)};m(b,e=>{g(s)&&e(x)});var w=S(b,2),T=l(w),E=l(T,!0);k(T);var D=S(T),A=l(D,!0);k(D),k(w),y((e,t,n)=>{R(u,e),T.disabled=g(o),R(E,t),D.disabled=g(o)||!!r.busy,R(A,n)},[()=>Z(`resets.warning`),()=>Z(`common.cancel`),()=>g(o)?Z(`resets.running`):g(f)?Z(`resets.retrySame`):Z(`resets.use`)]),c(`click`,T,()=>g(_)?.close()),c(`click`,D,O),t(e,n)};m(G,e=>{g(u)?e(ee):e(K,-1)}),k(L),k(I),J(I,e=>h(_,e),()=>g(_)),y((e,t,n)=>{R(V,e),M(H,`aria-label`,t),H.disabled=g(o),R(W,n)},[()=>Z(`resets.title`),()=>Z(`resets.closeConfirmation`),()=>Lt(r.account.name)]),d(`cancel`,I,e=>{g(o)&&e.preventDefault()}),c(`click`,H,()=>g(_)?.close()),t(e,n)};m(N,e=>{g(v)&&e(P)}),t(n,A),q()}o([`click`]);var yn=new Set([`$$slots`,`$$events`,`$$legacy`]);function bn(e,t){let n=E(t,yn),r=[[`polyline`,{points:`22 12 16 12 14 15 10 15 8 12 2 12`}],[`path`,{d:`M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z`}]];X(e,W({name:`inbox`},()=>n,{get iconNode(){return r}}))}var xn=f(``),Sn=f(`

`);function Cn(e,n){var r=Sn(),i=l(r);bn(l(i),{size:22}),k(i);var a=S(i,2),o=l(a,!0);k(a);var s=S(a),u=l(s,!0);k(s);var d=S(s,2),f=e=>{var r=xn(),i=l(r,!0);k(r),y(()=>R(i,n.action)),c(`click`,r,function(...e){n.onclick?.apply(this,e)}),t(e,r)};m(d,e=>{n.action&&n.onclick&&e(f)}),k(r),y(()=>{R(o,n.title),R(u,n.description)}),t(e,r)}o([`click`]);var wn=f(``),Tn=f(`
`),En=f(`
`),Dn=f(``,1),On=f(`
`),kn=f(`

`),An=f(`

`),jn=f(`
`),Mn=f(``),Nn=f(` `),Pn=f(`

`),Fn=f(`

`),In=f(`

`),Ln=f(` `),Rn=f(`

`),zn=f(`
`),Bn=f(`
`),Vn=f(`
`),Hn=f(`

`),Un=f(`
`),Wn=f(`

`,1);function Gn(n,r){I(r,!0);let i=F(r,`providers`,19,()=>[]),a=e(`all`),o=e(``),s=e(`name`),u=e(null),d=[`claude`,`codex`,`opencode_go`,`xai`],f=j(()=>new Set(i().filter(e=>!e.quota).map(e=>e.id))),p=j(()=>[...new Set(r.accounts.map(e=>e.provider).filter(e=>!g(f).has(e)))].sort((e,t)=>(d.indexOf(e)<0?99:d.indexOf(e))-(d.indexOf(t)<0?99:d.indexOf(t))||Ht(e).localeCompare(Ht(t)))),_=j(()=>r.accounts.filter(e=>(g(a)===`all`||!g(p).includes(g(a))||e.provider===g(a))&&`${e.name} ${e.email??``}`.toLowerCase().includes(g(o).toLowerCase())).sort((e,t)=>g(s)===`remaining`?(V(e.id)??101)-(V(t.id)??101):e.name.localeCompare(t.name))),b=j(()=>g(p).map(e=>({id:e,accounts:g(_).filter(t=>t.provider===e)})).filter(e=>e.accounts.length));function x(e){return r.settings?.quota_display?.[e]??`accounts`}async function w(e,t){await r.setQuotaDisplay(e,t.value),t.value=x(e)}function E(e){let t=new Set(r.accounts.filter(t=>t.provider===e).map(e=>e.id)),n=new Map;for(let e of r.quotas)if(t.has(e.account_id))for(let t of e.windows)n.has(t.id)||n.set(t.id,t);return[...n.values()]}function D(e){let t=r.settings?.quota_windows?.[e],n=t?.primary??null;return{hidden:(t?.hidden??[]).filter(e=>e!==n),primary:n}}function O(e,t){let n=D(e),i=n.hidden.includes(t)?n.hidden.filter(e=>e!==t):[...n.hidden,t];return r.setQuotaWindows(e,{...n,hidden:i})}function B(e,t){let n=D(e);return r.setQuotaWindows(e,{hidden:n.hidden.filter(e=>e!==t),primary:t})}function V(e){let t=r.quotas.find(t=>t.account_id===e)?.windows.map(e=>e.remaining_percent).filter(e=>e!=null)??[];return t.length?Math.min(...t):null}var H=Wn(),U=C(H),W=l(U),G=l(W,!0);k(W);var ee=S(W,2),K=l(ee),J=l(K);{let e=j(()=>r.busy===`quotas`?`spinning`:``);Ae(J,{size:18,get class(){return g(e)}})}var te=S(J,1,!0);k(K);var ne=S(K),re=l(ne);Be(re,{size:20});var ie=S(re,1,!0);k(ne),k(ee),k(U);var ae=S(U,2),oe=e=>{var n=Tn(),i=l(n);let o;var s=l(i),u=S(s),d=l(u,!0);k(u),k(i);var f=S(i,2);v(f,16,()=>g(p),e=>e,(e,n)=>{var i=wn();let o;var s=l(i);st(s,{get provider(){return n},size:22});var u=S(s,1,!0),d=S(u),f=l(d,!0);k(d),k(i),y((e,t)=>{M(i,`aria-pressed`,g(a)===n),o=Y(i,1,``,null,o,{active:g(a)===n}),R(u,e),R(f,t)},[()=>Ht(n),()=>r.accounts.filter(e=>e.provider===n).length]),c(`click`,i,()=>h(a,n,!0)),t(e,i)}),k(n),y((e,t,r)=>{M(n,`aria-label`,e),M(i,`aria-pressed`,g(a)===`all`),o=Y(i,1,``,null,o,{active:g(a)===`all`}),R(s,`${t??``} `),R(d,r)},[()=>Z(`quotas.filter`),()=>Z(`quotas.all`),()=>r.accounts.filter(e=>g(p).includes(e.provider)).length]),c(`click`,i,()=>h(a,`all`)),t(e,n)};m(ae,e=>{g(p).length>1&&e(oe)});var se=S(ae,2),ce=l(se),le=l(ce);Re(le,{size:18});var ue=S(le);A(ue),k(ce);var de=S(ce),fe=l(de),X=l(fe,!0);k(fe),fe.value=fe.__value=`name`;var pe=S(fe),me=l(pe,!0);k(pe),pe.value=pe.__value=`remaining`,k(de),k(se);var he=S(se,2),ge=e=>{var n=En(),i=l(n);{let e=j(()=>Z(`common.noAccountConnected`)),t=j(()=>Z(`quotas.emptyDescription`)),n=j(()=>Z(`common.connectAccount`));Cn(i,{get title(){return g(e)},get description(){return g(t)},get action(){return g(n)},get onclick(){return r.connect}})}k(n),t(e,n)},_e=e=>{var n=En(),r=l(n);{let e=j(()=>Z(`common.noMatchingAccount`)),t=j(()=>Z(`common.tryOtherName`));Cn(r,{get title(){return g(e)},get description(){return g(t)}})}k(n),t(e,n)},ve=e=>{var n=Un();v(n,21,()=>g(b),e=>e.id,(e,n)=>{var i=Hn(),a=l(i),o=l(a);st(o,{get provider(){return g(n).id},size:29});var s=S(o),d=l(s,!0);k(s);var f=S(s),p=l(f,!0);k(f);var _=S(f),b=e=>{var i=Dn(),a=C(i),o=l(a),s=l(o,!0);k(o);var d=S(o),f=l(d),p=l(f,!0);k(f),f.value=f.__value=`accounts`;var m=S(f),_=l(m,!0);k(m),m.value=m.__value=`average`,k(d);var v;N(d),k(a);var b=S(a),E=l(b);We(E,{size:16});var D=S(E,1,!0);k(b),y((e,t,i,o,c,l,f)=>{M(a,`title`,e),R(s,t),d.disabled=!!r.busy,R(p,i),R(_,o),v!==(v=c)&&(d.value=(d.__value=c)??``,T(d,c)),M(b,`aria-expanded`,g(u)===g(n).id),M(b,`aria-controls`,`windows-${g(n).id??``}`),M(b,`title`,l),R(D,f)},[()=>Z(`quotas.displayTitle`,{provider:Ht(g(n).id)}),()=>Z(`quotas.displayLabel`),()=>Z(`quotas.perAccount`),()=>Z(`quotas.average`),()=>x(g(n).id),()=>Z(`quotas.windowsTitle`,{provider:Ht(g(n).id)}),()=>Z(`quotas.windows`)]),c(`change`,d,e=>w(g(n).id,e.currentTarget)),c(`click`,b,()=>h(u,g(u)===g(n).id?null:g(n).id,!0)),t(e,i)};m(_,e=>{r.settings&&e(b)}),k(a);var A=S(a,2),P=e=>{let i=j(()=>D(g(n).id));var a=jn(),o=l(a);v(o,17,()=>E(g(n).id),e=>e.id,(e,a)=>{let o=j(()=>g(i).primary===g(a).id),s=j(()=>g(o)||!g(i).hidden.includes(g(a).id));var u=On();let d;var f=l(u),p=l(f,!0);k(f);var m=S(f,2);let h;var _=l(m);Ke(_,{size:16});var v=S(_,1,!0);k(m);var b=S(m,2);let x;k(u),y((e,t,n)=>{d=Y(u,1,`window-choice svelte-137c7x1`,null,d,{"hidden-window":!g(s)}),R(p,e),h=Y(m,1,`primary-choice svelte-137c7x1`,null,h,{on:g(o)}),M(m,`aria-pressed`,g(o)),m.disabled=!!r.busy,R(v,t),x=Y(b,1,`switch`,null,x,{on:g(s)}),M(b,`aria-checked`,g(s)),M(b,`aria-label`,n),b.disabled=!!r.busy||g(o)},[()=>Xt(g(a).label),()=>Z(g(o)?`quotas.primary`:`quotas.makePrimary`),()=>Z(`quotas.showWindow`,{label:Xt(g(a).label)})]),c(`click`,m,()=>B(g(n).id,g(o)?null:g(a).id)),c(`click`,b,()=>O(g(n).id,g(a).id)),t(e,u)},e=>{var n=kn(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`quotas.noWindow`)]),t(e,n)});var s=S(o,2),u=e=>{var n=An(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`quotas.defaultWindow`)]),t(e,n)},d=j(()=>!g(i).primary&&E(g(n).id).length);m(s,e=>{g(d)&&e(u)}),k(a),y(e=>{M(a,`id`,`windows-${g(n).id??``}`),M(a,`aria-label`,e)},[()=>Z(`quotas.windowsLabel`,{provider:Ht(g(n).id)})]),t(e,a)};m(A,e=>{r.settings&&g(u)===g(n).id&&e(P)});var F=S(A,2);v(F,21,()=>g(n).accounts,e=>e.id,(e,n)=>{let i=j(()=>r.quotas.find(e=>e.account_id===g(n).id)),a=j(()=>g(i)?.subscription??g(n).subscription);var o=Vn();let s;var u=l(o),d=l(u);tn(d,{get account(){return g(n)},get rename(){return r.rename},get busy(){return r.busy}});var f=S(d),p=e=>{var r=Mn(),i=l(r,!0);k(r),y(()=>R(i,g(a)?.label??g(n).plan)),t(e,r)};m(f,e=>{(g(a)?.label||g(n).plan)&&e(p)});var h=S(f),_=e=>{cn(e,{get email(){return g(n).email}})};m(h,e=>{g(n).email&&e(_)}),vn(S(h),{get account(){return g(n)},get busy(){return r.busy},get updated(){return r.resetUpdated}}),k(u);var b=S(u,2),x=l(b),w=e=>{var r=Fn(),a=l(r),o=l(a,!0);k(a);var s=S(a),c=e=>{var r=Nn(),i=l(r,!0);He(S(i),{size:16}),k(r),y((e,t)=>{M(r,`href`,e),R(i,t)},[()=>`/admin/api/accounts/${encodeURIComponent(g(n).id)}/verification`,()=>Z(`common.verifyGoogle`)]),t(e,r)},u=e=>{var n=Pn(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`common.openAntigravity`)]),t(e,n)};m(s,e=>{g(i).verification_available?e(c):e(u,-1)}),k(r),y(e=>R(o,e),[()=>Z(`quotas.googleVerify`)]),t(e,r)};m(x,e=>{g(i)?.verification_required&&e(w)});var T=S(x,2),E=l(T),D=e=>{var n=L(),r=C(n);v(r,17,()=>g(i).windows,e=>e.id,(e,n)=>{var r=In(),i=l(r);{let e=j(()=>Xt(g(n).label));Ct(i,{get value(){return g(n).remaining_percent},get label(){return g(e)}})}var a=S(i),o=l(a);Ae(o,{size:16});var s=S(o,1,!0);k(a),k(r),y((e,t)=>{M(a,`title`,e),R(s,t)},[()=>g(n).reset_at?Z(`quotas.resetAt`,{date:Kt(g(n).reset_at)}):void 0,()=>qt(g(n).reset_at)]),t(e,r)}),t(e,n)},O=e=>{var n=kn(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>g(i)?.error?Lt(g(i).error):Z(`quotas.notReported`)]),t(e,n)};m(E,e=>{g(i)?.windows.length?e(D):g(i)?.verification_required||e(O,1)}),k(T);var A=S(T,2),N=e=>{var n=Bn();v(n,21,()=>g(i).credits,e=>e.id,(e,n)=>{var r=zn(),i=l(r),a=l(i),o=l(a,!0);k(a);var s=S(a),c=l(s,!0),u=S(c),d=e=>{var n=Ln(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>` ${Z(`quotas.remaining`)}`]),t(e,n)};m(u,e=>{g(n).enabled!==!1&&g(n).remaining!=null&&e(d)}),k(s),k(i);var f=S(i),p=e=>{var r=Pn(),i=l(r,!0);k(r),y(e=>R(i,e),[()=>g(n).limit==null?Z(`quotas.used`,{used:Jt(g(n).used,g(n).unit)}):Z(`quotas.usedOf`,{used:Jt(g(n).used,g(n).unit),limit:Jt(g(n).limit,g(n).unit)})]),t(e,r)};m(f,e=>{g(n).used!=null&&e(p)});var h=S(f),_=e=>{var r=Rn(),i=l(r);Ae(i,{size:16});var a=S(i,1,!0);k(r),y(e=>R(a,e),[()=>qt(g(n).reset_at)]),t(e,r)};m(h,e=>{g(n).reset_at&&e(_)}),k(r),y((e,t)=>{R(o,e),R(c,t)},[()=>Xt(g(n).label),()=>g(n).enabled===!1?Z(`common.disabled`):g(n).unlimited?Z(`quotas.unlimited`):Jt(g(n).remaining,g(n).unit)]),t(e,r)}),k(n),t(e,n)};m(A,e=>{g(i)?.credits?.length&&e(N)}),k(b);var P=S(b,2),F=l(P);let I;var z=S(l(F),1,!0);k(F);var B=S(F);Ae(l(B),{size:19}),k(B),k(P),k(o),y((e,t,i,a)=>{s=Y(o,1,`quota-row svelte-137c7x1`,null,s,{"disabled-row":!g(n).enabled}),I=Y(F,1,`state-badge`,null,I,e),R(z,t),B.disabled=!!r.busy,M(B,`title`,i),M(B,`aria-label`,a)},[()=>({warning:!!g(i)?.error||Vt(g(n))||g(n).enabled&&!!g(n).reserve_reached,inactive:!g(n).enabled}),()=>g(n).enabled?g(i)?.error?Z(`status.check`):g(n).reserve_reached&&[`ready`,`active`].includes(g(n).status)?Z(`status.reserveReached`):Bt(g(n)):Z(`common.disabled`),()=>Z(`quotas.refreshAccount`),()=>Z(`quotas.refreshNamed`,{name:Lt(g(n).name)})]),c(`click`,B,()=>r.refresh(g(n).id)),t(e,o)}),k(F),k(i),y((e,t,n)=>{M(i,`aria-label`,e),R(d,t),R(p,n)},[()=>Z(`quotas.group`,{provider:Ht(g(n).id)}),()=>Ht(g(n).id),()=>Z(g(n).accounts.length===1?`common.accountCount.one`:`common.accountCount.other`,{count:g(n).accounts.length})]),t(e,i)}),k(n),t(e,n)};m(he,e=>{r.accounts.length?g(_).length?e(ve,-1):e(_e,1):e(ge)}),y((e,t,n,i,a,o,s,c)=>{R(G,e),K.disabled=!!r.busy||!r.accounts.length,R(te,t),R(ie,n),M(ue,`placeholder`,i),M(ue,`aria-label`,a),M(de,`aria-label`,o),R(X,s),R(me,c)},[()=>Z(`nav.quotas`),()=>Z(`quotas.refresh`),()=>Z(`common.connectAccount`),()=>Z(`quotas.search`),()=>Z(`common.searchAccount`),()=>Z(`quotas.sort`),()=>Z(`quotas.byName`),()=>Z(`quotas.byRemaining`)]),c(`click`,K,()=>r.refresh()),c(`click`,ne,function(...e){r.connect?.apply(this,e)}),z(ue,()=>g(o),e=>h(o,e)),P(de,()=>g(s),e=>h(s,e)),t(n,H),q()}o([`click`,`change`]);var Kn=new Set([`$$slots`,`$$events`,`$$legacy`]);function qn(e,t){let n=E(t,Kn),r=[[`path`,{d:`M12 3v12`}],[`path`,{d:`m17 8-5-5-5 5`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}]];X(e,W({name:`upload`},()=>n,{get iconNode(){return r}}))}var Jn=new Set([`$$slots`,`$$events`,`$$legacy`]);function Yn(e,t){let n=E(t,Jn),r=[[`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`}]];X(e,W({name:`trash-2`},()=>n,{get iconNode(){return r}}))}var Xn=new Set([`$$slots`,`$$events`,`$$legacy`]);function Zn(e,t){let n=E(t,Xn),r=[[`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`}]];X(e,W({name:`shield-check`},()=>n,{get iconNode(){return r}}))}var Qn=f(``),$n=f(`
`),er=f(``),tr=f(``),nr=f(`
`),rr=f(`

`),ir=f(`

`),ar=f(` `,1);function or(r,i){I(i,!0);let a=e(!1),o=e(``),s=e(w([])),u=e(!1),f=e(``),p=e(void 0),_=j(()=>i.account.reserve_percent??null),b=j(()=>i.account.reserve_windows??[]),x=j(()=>At.filter(e=>g(b).includes(e)||i.quota?.windows.some(t=>t.remaining_percent!=null&&Mt(t.id)===e))),T=j(()=>At.filter(e=>g(b).includes(e)).map(jt).join(` + `));async function E(){h(o,g(_)==null?``:String(g(_)),!0),h(s,[...g(b)],!0),h(f,``),h(a,!0),await n(),g(p)?.focus(),g(p)?.select()}function D(e){h(s,g(s).includes(e)?g(s).filter(t=>t!==e):[...g(s),e],!0)}async function O(e,t){if(!(g(u)||i.busy)){if(e===g(_)&&t.length===g(b).length&&t.every(e=>g(b).includes(e))){h(a,!1);return}h(u,!0),h(f,``);try{await i.save(i.account,e,t)?h(a,!1):h(f,Z(`reserve.notSaved`),!0)}finally{h(u,!1)}}}function N(){let e=g(o).trim().replace(`,`,`.`);if(!e)return O(null,[]);let t=Number(e);if(!/^\d+(\.\d+)?$/.test(e)||t>=100){h(f,Z(`reserve.invalid`),!0);return}return t===0?O(null,[]):O(t,g(s))}var P=L(),F=C(P),B=e=>{var n=nr(),r=l(n),b=l(r),C=l(b,!0);k(b);var w=S(b);A(w),J(w,e=>h(p,e),()=>g(p)),te(),k(r);var T=S(r,2),E=l(T);Dt(l(E),{size:20}),k(E);var j=S(E);Pe(l(j),{size:20}),k(j),k(T);var P=S(T,2),F=e=>{var n=$n(),r=l(n);let i;var a=l(r,!0);k(r);var o=S(r,2);v(o,16,()=>g(x),e=>e,(e,n)=>{var r=Qn();let i;var a=l(r,!0);k(r),y((e,t,n)=>{i=Y(r,1,`chip svelte-c6cuiu`,null,i,e),M(r,`aria-pressed`,t),r.disabled=g(u),R(a,n)},[()=>({on:g(s).includes(n)}),()=>g(s).includes(n),()=>jt(n)]),c(`click`,r,()=>D(n)),t(e,r)}),k(n),y((e,t,o)=>{M(n,`aria-label`,e),i=Y(r,1,`chip svelte-c6cuiu`,null,i,{on:!g(s).length}),M(r,`aria-pressed`,!g(s).length),M(r,`title`,t),r.disabled=g(u),R(a,o)},[()=>Z(`reserve.watched`),()=>Z(`reserve.longestTitle`),()=>Z(`reserve.longest`)]),c(`click`,r,()=>h(s,[],!0)),t(e,n)};m(P,e=>{g(x).length>1&&e(F)});var I=S(P,2),L=e=>{var n=er(),r=l(n,!0);k(n),y(e=>{n.disabled=g(u)||!!i.busy,R(r,e)},[()=>Z(`reserve.remove`)]),c(`click`,n,()=>O(null,[])),t(e,n)};m(I,e=>{g(_)!=null&&e(L)});var B=S(I,2),V=e=>{var n=tr(),r=l(n,!0);k(n),y(()=>R(r,g(f))),t(e,n)};m(B,e=>{g(f)&&e(V)}),k(n),y((e,t,n,r,a,o)=>{R(C,e),M(w,`aria-label`,t),w.disabled=g(u),M(E,`aria-label`,n),M(E,`title`,r),E.disabled=g(u)||!!i.busy,M(j,`aria-label`,a),M(j,`title`,o),j.disabled=g(u)},[()=>Z(`reserve.keepAtLeast`),()=>Z(`reserve.input`),()=>Z(`reserve.save`),()=>Z(`common.save`),()=>Z(`common.cancel`),()=>Z(`common.cancel`)]),d(`submit`,n,e=>{e.preventDefault(),N()}),c(`keydown`,w,e=>{e.key===`Escape`&&!g(u)&&h(a,!1)}),z(w,()=>g(o),e=>h(o,e)),c(`click`,j,()=>h(a,!1)),t(e,n)},V=e=>{var n=ar(),r=C(n);let a;var o=l(r);Zn(o,{size:16});var s=S(o,1,!0);k(r);var u=S(r,2),d=e=>{var n=rr(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`reserve.reached`)]),t(e,n)},f=e=>{var n=ir(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(g(b).length?`reserve.inactiveWindows`:`reserve.inactiveAccount`)]),t(e,n)};m(u,e=>{g(_)!=null&&i.account.enabled&&i.account.reserve_reached?e(d):g(_)!=null&&i.account.reserve_measured===!1&&e(f,1)}),y((e,t)=>{a=Y(r,1,`reserve svelte-c6cuiu`,null,a,{set:g(_)!=null}),r.disabled=!!i.busy,M(r,`title`,e),R(s,t)},[()=>g(b).length?Z(`reserve.titleWatched`,{windows:g(T)}):Z(`reserve.titleLongest`),()=>g(_)==null?Z(`reserve.add`):`${Z(`reserve.label`,{percent:Ut(g(_))})}${g(b).length?` · ${g(T)}`:``}`]),c(`click`,r,E),t(e,n)};m(F,e=>{g(a)?e(B):e(V,-1)}),t(r,P),q()}o([`keydown`,`click`]);var sr=f(``),cr=f(`
`),lr=f(` `),ur=f(` `),dr=f(`
`);function fr(n,r){I(r,!0);let i=e(!1),a=e(``),o=e(``),s=e(``),u=e(``),f=e(``),p=j(()=>kt(r.account.dialect??``));function _(){h(a,r.account.route??``,!0),h(o,r.account.base_url??``,!0),h(s,r.account.dialect??``,!0),h(u,(r.account.models??[]).join(`, `),!0),h(f,``),h(i,!0)}async function b(e){e.preventDefault();let t={},n=g(a).trim().toLowerCase();n&&n!==(r.account.route??``)&&(t.route=n),g(o).trim()&&g(o).trim()!==(r.account.base_url??``)&&(t.base_url=g(o).trim()),(g(s)||null)!==(r.account.dialect??null)&&(t.dialect=g(s)||null);let c=g(u).split(`,`).map(e=>e.trim()).filter(Boolean);if(c.join(`,`)!==(r.account.models??[]).join(`,`)&&(t.models=c),g(f).trim()&&(t.api_key=g(f).trim()),!Object.keys(t).length){h(i,!1);return}await r.save(r.account,t)&&(h(i,!1),h(f,``))}var x=L(),w=C(x),T=e=>{var n=cr(),p=l(n),m=l(p,!0),_=S(m);A(_),M(_,`pattern`,`[a-z0-9][a-z0-9_\\-]{0,31}`),k(p);var x=S(p,2),C=l(x,!0),w=S(C);A(w),k(x);var T=S(x,2),E=l(T,!0),D=S(E);v(D,20,()=>Ot,e=>e,(e,n)=>{var r=sr(),i=l(r,!0);k(r);var a={};y(e=>{R(i,e),a!==(a=n)&&(r.value=(r.__value=n)??``)},[()=>kt(n)]),t(e,r)}),k(D),k(T);var O=S(T,2),j=l(O,!0),N=S(j);A(N),k(O);var F=S(O,2),I=l(F,!0),L=S(I);A(L),k(F);var B=S(F,2),V=l(B),H=l(V,!0);k(V);var U=S(V),W=l(U,!0);k(U),k(B),k(n),y((e,t,n,i,a,o,s,c,l)=>{R(m,e),R(C,t),R(E,n),R(j,i),M(N,`placeholder`,a),R(I,o),M(L,`placeholder`,s),V.disabled=!!r.busy,R(H,c),R(W,l)},[()=>Z(`endpoint.route`),()=>Z(`endpoint.url`),()=>Z(`endpoint.format`),()=>Z(`endpoint.models`),()=>Z(`endpoint.modelsPlaceholder`),()=>Z(`endpoint.newKey`),()=>Z(`endpoint.unchanged`),()=>Z(`common.save`),()=>Z(`common.cancel`)]),d(`submit`,n,b),z(_,()=>g(a),e=>h(a,e)),z(w,()=>g(o),e=>h(o,e)),P(D,()=>g(s),e=>h(s,e)),z(N,()=>g(u),e=>h(u,e)),z(L,()=>g(f),e=>h(f,e)),c(`click`,U,()=>{h(i,!1),h(f,``)}),t(e,n)},E=e=>{var n=dr(),i=l(n),a=e=>{var n=lr(),i=l(n);k(n),y(()=>R(i,`${r.account.route??``}/`)),t(e,n)};m(i,e=>{r.account.route&&e(a)});var o=S(i,2),s=l(o,!0);k(o);var u=S(o,2),d=e=>{var n=ur(),r=l(n,!0);k(n),y(()=>R(r,g(p))),t(e,n)};m(u,e=>{g(p)&&e(d)});var f=S(u,2);Tt(l(f),{size:15}),k(f),k(n),y((e,t)=>{M(o,`title`,r.account.base_url??``),R(s,r.account.base_url),M(f,`aria-label`,e),M(f,`title`,t),f.disabled=!!r.busy},[()=>Z(`endpoint.edit`),()=>Z(`endpoint.edit`)]),c(`click`,f,_),t(e,n)};m(w,e=>{g(i)?e(T):(r.account.route||r.account.base_url)&&e(E,1)}),t(n,x),q()}o([`click`]);var pr=f(`

`),mr=f(``),hr=f(`

`),gr=f(`
`),_r=f(``),vr=f(`

`,1);function yr(n,r){I(r,!0);let i=e(``),a=e(null),o,s=j(()=>r.accounts.filter(e=>`${e.name} ${e.provider} ${e.route??``} ${e.email??``}`.toLowerCase().includes(g(i).toLowerCase()))),u=e(!1);var f=vr(),p=C(f),_=l(p),b=l(_,!0);k(_);var x=S(_),w=l(x),T=l(w);qn(T,{size:18});var E=S(T,1,!0);k(w);var D=S(w),O=l(D);Be(O,{size:20});var N=S(O,1,!0);k(D),k(x),k(p);var P=S(p,2);J(P,e=>o=e,()=>o);var F=S(P,2),L=l(F),B=l(L,!0);k(L);var V=S(L),H=l(V);Re(H,{size:18});var U=S(H);A(U),k(V),k(F);var W=S(F,2);let G;var ee=l(W);qn(ee,{size:19});var K=S(ee),te=l(K,!0);k(K),k(W);var ne=S(W,2),re=l(ne),ie=e=>{{let t=j(()=>Z(`common.noAccountConnected`)),n=j(()=>Z(`accounts.emptyDescription`)),i=j(()=>Z(`common.connectAccount`));Cn(e,{get title(){return g(t)},get description(){return g(n)},get action(){return g(i)},get onclick(){return r.connect}})}},ae=e=>{{let t=j(()=>Z(`common.noMatchingAccount`)),n=j(()=>Z(`common.tryOtherName`));Cn(e,{get title(){return g(t)},get description(){return g(n)}})}},oe=e=>{var n=_r(),i=l(n),o=l(i),u=l(o),d=l(u),f=l(d,!0);k(d);var p=S(d),_=l(p,!0);k(p);var b=S(p),x=l(b,!0);k(b);var C=S(b),w=l(C,!0);k(C);var T=S(C),E=l(T,!0);k(T);var D=S(T),O=l(D,!0);k(D),k(u),k(o);var A=S(o);v(A,21,()=>g(s),e=>e.id,(e,n)=>{let i=j(()=>r.quotas.find(e=>e.account_id===g(n).id));var o=gr(),s=l(o),u=l(s);tn(u,{get account(){return g(n)},get rename(){return r.rename},get busy(){return r.busy}});var d=S(u),f=e=>{cn(e,{get email(){return g(n).email}})};m(d,e=>{g(n).email&&e(f)});var p=S(d),_=e=>{fr(e,{get account(){return g(n)},get busy(){return r.busy},get save(){return r.updateEndpoint}})};m(p,e=>{g(n).provider===`openai_compatible`&&e(_)});var v=S(p),b=e=>{var r=pr(),i=l(r,!0);k(r),y(e=>R(i,e),[()=>Lt(g(n).last_error)]),t(e,r)};m(v,e=>{g(n).last_error&&e(b)}),k(s);var x=S(s),C=l(x),w=l(C);st(w,{get provider(){return g(n).provider},size:23});var T=S(w,1,!0);k(C);var E=S(C),D=e=>{var r=mr(),a=l(r,!0);k(r),y(()=>R(a,g(i)?.subscription?.label??g(n).subscription?.label??g(n).plan)),t(e,r)};m(E,e=>{(g(i)?.subscription?.label||g(n).subscription?.label||g(n).plan)&&e(D)}),k(x);var O=S(x),A=l(O);let N;var P=S(l(A),1,!0);k(A),k(O);var F=S(O);or(l(F),{get account(){return g(n)},get quota(){return g(i)},get busy(){return r.busy},get save(){return r.setReserve}}),k(F);var I=S(F),L=l(I,!0);k(I);var z=S(I),B=l(z),V=l(B);let H;var U=S(V);Yn(l(U),{size:20}),k(U),k(B);var W=S(B),G=e=>{var i=hr(),o=l(i),s=l(o,!0);k(o);var u=S(o),d=l(u,!0);k(u);var f=S(u),p=l(f,!0);k(f),k(i),y((e,t,n)=>{R(s,e),u.disabled=!!r.busy,R(d,t),R(p,n)},[()=>Z(`accounts.deleteConfirm`),()=>Z(`accounts.deleteButton`),()=>Z(`common.cancel`)]),c(`click`,u,()=>{r.remove(g(n)),h(a,null)}),c(`click`,f,()=>h(a,null)),t(e,i)};m(W,e=>{g(a)===g(n).id&&e(G)}),k(z),k(o),y((e,t,i,a,o,s,c,l)=>{R(T,e),N=Y(A,1,`state-badge`,null,N,t),R(P,i),M(I,`data-label`,a),R(L,o),H=Y(V,1,`switch`,null,H,{on:g(n).enabled}),M(V,`aria-checked`,g(n).enabled),M(V,`aria-label`,s),V.disabled=!!r.busy,M(U,`aria-label`,c),M(U,`title`,l),U.disabled=!!r.busy},[()=>Ht(g(n).provider),()=>({inactive:!g(n).enabled,warning:Vt(g(n))}),()=>Bt(g(n)),()=>Z(`accounts.verifiedPrefix`),()=>g(i)?.updated_at?Kt(g(i).updated_at):Z(`accounts.notVerified`),()=>Z(`common.enable`,{name:Lt(g(n).name)}),()=>Z(`accounts.delete`,{name:Lt(g(n).name)}),()=>Z(`accounts.deleteTitle`)]),c(`click`,V,()=>r.toggle(g(n))),c(`click`,U,()=>h(a,g(n).id,!0)),t(e,o)}),k(A),k(i),k(n),y((e,t,n,r,i,a)=>{R(f,e),R(_,t),R(x,n),R(w,r),R(E,i),R(O,a)},[()=>Z(`accounts.colAccount`),()=>Z(`accounts.colSubscription`),()=>Z(`accounts.colStatus`),()=>Z(`accounts.colReserve`),()=>Z(`accounts.colVerified`),()=>Z(`accounts.colActions`)]),t(e,n)};m(re,e=>{r.accounts.length?g(s).length?e(oe,-1):e(ae,1):e(ie)}),k(ne),y((e,t,n,i,a,o,s,c)=>{R(b,e),w.disabled=!!r.busy,R(E,t),R(N,n),R(B,i),M(U,`placeholder`,a),M(U,`aria-label`,o),G=Y(W,1,`drop-zone svelte-1x1hfd6`,null,G,{dragging:g(u)}),M(W,`aria-label`,s),R(te,c)},[()=>Z(`accounts.title`),()=>Z(`common.import`),()=>Z(`common.connectAccount`),()=>Z(r.accounts.length===1?`common.accountCount.one`:`common.accountCount.other`,{count:r.accounts.length}),()=>Z(`common.searchAccount`),()=>Z(`common.searchAccount`),()=>Z(`accounts.dropLabel`),()=>Z(`accounts.drop`)]),c(`click`,w,()=>o.click()),c(`click`,D,function(...e){r.connect?.apply(this,e)}),c(`change`,P,e=>{e.currentTarget.files?.length&&r.importFiles(e.currentTarget.files),e.currentTarget.value=``}),z(U,()=>g(i),e=>h(i,e)),d(`dragover`,W,e=>{e.preventDefault(),h(u,!0)}),d(`dragleave`,W,()=>h(u,!1)),d(`drop`,W,e=>{e.preventDefault(),h(u,!1),e.dataTransfer?.files.length&&r.importFiles(e.dataTransfer.files)}),t(n,f),q()}o([`click`,`change`]);var br=new Set([`$$slots`,`$$events`,`$$legacy`]);function xr(e,t){let n=E(t,br),r=[[`path`,{d:`M12 7v6`}],[`path`,{d:`M12 9h2`}],[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.74 9.74 0 0 0-6.74 2.74L3 8`}],[`path`,{d:`M3 3v5h5`}],[`circle`,{cx:`12`,cy:`15`,r:`2`}]];X(e,W({name:`rotate-ccw-key`},()=>n,{get iconNode(){return r}}))}var Sr=new Set([`$$slots`,`$$events`,`$$legacy`]);function Cr(e,t){let n=E(t,Sr),r=[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`}],[`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`}]];X(e,W({name:`lock`},()=>n,{get iconNode(){return r}}))}var wr=new Set([`$$slots`,`$$events`,`$$legacy`]);function Tr(e,t){let n=E(t,wr),r=[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`}],[`path`,{d:`M7 11V7a5 5 0 0 1 9.9-1`}]];X(e,W({name:`lock-open`},()=>n,{get iconNode(){return r}}))}var Er=new Set([`$$slots`,`$$events`,`$$legacy`]);function Dr(e,t){let n=E(t,Er),r=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 16v-4`}],[`path`,{d:`M12 8h.01`}]];X(e,W({name:`info`},()=>n,{get iconNode(){return r}}))}var Or=new Set([`$$slots`,`$$events`,`$$legacy`]);function kr(e,t){let n=E(t,Or),r=[[`path`,{d:`M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z`}],[`path`,{d:`M21.21 15.89A10 10 0 1 1 8 2.83`}]];X(e,W({name:`chart-pie`},()=>n,{get iconNode(){return r}}))}var Ar=f(`

`);function jr(e,n){I(n,!0);let r=F(n,`locked`,3,!1),i=F(n,`wide`,3,!1),a;H(()=>(a.showModal(),()=>a.close()));var o=Ar();let s;var u=l(o),f=l(u),p=l(f,!0);k(f);var m=S(f);Pe(l(m),{size:20}),k(m),k(u);var h=S(u,2);ae(h,()=>n.children),k(o),J(o,e=>a=e,()=>a),y(e=>{s=Y(o,1,`modal svelte-1k2jq0p`,null,s,{wide:i()}),R(p,n.title),M(m,`aria-label`,e),m.disabled=r()},[()=>Z(`common.close`)]),d(`cancel`,o,e=>{e.preventDefault(),r()||n.close()}),c(`click`,m,function(...e){n.close?.apply(this,e)}),t(e,o),q()}o([`click`]);var Mr=f(``),Nr=f(`
`),Pr=f(`
`),Fr=f(``),Ir=f(``),Lr=f(`

`),Rr=f(``),zr=f(`

`);function Br(n,r){I(r,!0);let i=b(()=>G(r.client)),a=e(w(i?.name??``)),o=e(w(i?.access.all??!0)),s=e(w([...i?.access.pools??[]])),u=e(w([...i?.access.accounts??[]])),f=w(Object.fromEntries(Object.entries(i?.shares??{}).map(([e,t])=>[e,String(t)]))),p=e(!1),_=e(``),x=j(()=>It(r.accounts)),C=j(()=>g(x).filter(e=>g(o)||g(s).includes(e.id)||e.accounts.some(e=>g(u).includes(e.id))));function T(e){return r.clients.reduce((t,n)=>n.id===i?.id?t:t+(n.shares[e]??0),0)}function E(e){let t=Number((f[e]??``).trim().replace(`,`,`.`));return Number.isFinite(t)&&t>0?t:0}function O(e){return 100-T(e)-E(e)}function N(e){h(s,g(s).includes(e)?g(s).filter(t=>t!==e):[...g(s),e],!0)}function P(e){h(u,g(u).includes(e)?g(u).filter(t=>t!==e):[...g(u),e],!0)}async function F(e){if(e.preventDefault(),g(p))return;h(_,``);let t=g(o)?[]:g(x).filter(e=>g(s).includes(e.id)).map(e=>e.id),n=g(o)?[]:r.accounts.filter(e=>g(u).includes(e.id)&&!t.includes(e.route||e.provider)).map(e=>e.id);if(!g(o)&&!t.length&&!n.length){h(_,Z(`clients.pickAccess`),!0);return}let c={};for(let e of g(C)){let t=(f[e.id]??``).trim().replace(`,`,`.`);if(!t)continue;let n=Number(t);if(!/^\d+(\.\d+)?$/.test(t)||n<=0||n>100){h(_,Z(`clients.shareInvalid`),!0);return}c[e.id]=n}let l={name:g(a).trim(),access:{all:g(o),pools:t,accounts:n},shares:c};h(p,!0);try{r.saved(i?await $.updateClient(i.id,l):await $.createClient(l),!i)}catch(e){h(_,e.message,!0)}finally{h(p,!1)}}{let e=j(()=>i?Z(`clients.editTitle`,{name:i.name}):Z(`clients.new`));jr(n,{get title(){return g(e)},get close(){return r.close},get locked(){return g(p)},wide:!0,children:(e,n)=>{var b=zr(),w=l(b),T=l(w),E=l(T,!0);k(T);var I=S(T);A(I),k(w);var L=S(w,2),B=l(L),V=l(B,!0);k(B);var H=S(B,2),U=l(H),W=l(U),G=l(W,!0);k(W);var K=S(W),q=l(K,!0);k(K),k(U);var J=S(U);k(H);var ne=S(H,2),re=e=>{var n=Pr();v(n,21,()=>g(x),e=>e.id,(e,n)=>{let r=j(()=>g(s).includes(g(n).id));var i=Nr(),a=l(i),o=l(a);A(o);var d=S(o);st(d,{get provider(){return g(n).provider},size:20});var f=S(d),p=l(f,!0);k(f),k(a);var m=S(a,2);v(m,21,()=>g(n).accounts,e=>e.id,(e,n)=>{let i=j(()=>g(r)||g(u).includes(g(n).id));var a=Mr(),o=l(a,!0);k(a),y(e=>{Y(a,1,D([`chip`,g(i)&&`on`]),`svelte-vb71yz`),M(a,`aria-pressed`,g(i)),a.disabled=g(r),R(o,e)},[()=>Lt(g(n).name)]),c(`click`,a,()=>P(g(n).id)),t(e,a)}),k(m),k(i),y(e=>{M(a,`title`,e),ee(o,g(r)),R(p,g(n).name)},[()=>Z(`clients.wholePool`,{pool:g(n).name})]),c(`change`,o,()=>N(g(n).id)),t(e,i)}),k(n),t(e,n)};m(ne,e=>{g(o)||e(re)}),k(L);var ie=S(L,2),ae=l(ie),oe=l(ae,!0),se=S(oe);Dr(l(se),{size:16}),k(se),k(ae);var ce=S(ae,2),le=e=>{var n=Ir();v(n,21,()=>g(C),e=>e.id,(e,n)=>{let r=j(()=>O(g(n).id));var i=Fr(),a=l(i),o=l(a);st(o,{get provider(){return g(n).provider},size:22});var s=S(o,1,!0);k(a);var c=S(a),u=l(c);A(u),te(),k(c);var d=S(c),p=l(d,!0);k(d),k(i),y((e,t)=>{R(s,g(n).name),M(u,`aria-label`,e),Y(d,1,D([`share-common`,g(r)<0&&`over`]),`svelte-vb71yz`),R(p,t)},[()=>Z(`clients.shareOf`,{pool:g(n).name}),()=>g(r)<0?Z(`clients.overbooked`):Z(`clients.common`,{value:Ut(g(r))})]),z(u,()=>f[g(n).id],e=>f[g(n).id]=e),t(e,i)}),k(n),t(e,n)},ue=e=>{var n=Lr(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`clients.noPool`)]),t(e,n)};m(ce,e=>{g(C).length?e(le):e(ue,-1)}),k(ie);var de=S(ie,2),fe=e=>{var n=Rr(),r=l(n,!0);k(n),y(()=>R(r,g(_))),t(e,n)};m(de,e=>{g(_)&&e(fe)});var X=S(de,2),pe=l(X),me=l(pe,!0);k(pe);var he=S(pe),ge=l(he,!0);k(he),k(X),k(b),y((e,t,n,r,i,a,s,c,l,u,d,f)=>{R(E,e),M(I,`placeholder`,t),R(V,n),R(G,r),R(q,i),Y(J,1,D([`switch`,g(o)&&`on`])),M(J,`aria-checked`,g(o)),M(J,`aria-label`,a),R(oe,s),M(se,`title`,c),M(se,`aria-label`,l),pe.disabled=g(p),R(me,u),he.disabled=d,R(ge,f)},[()=>Z(`clients.name`),()=>Z(`clients.namePlaceholder`),()=>Z(`clients.access`),()=>Z(`clients.allAccounts`),()=>Z(`clients.allAccountsHint`),()=>Z(`clients.allAccounts`),()=>Z(`clients.shares`),()=>Z(`clients.sharesInfo`),()=>Z(`clients.sharesInfo`),()=>Z(`common.cancel`),()=>g(p)||!g(a).trim(),()=>Z(i?`common.save`:`clients.create`)]),d(`submit`,b,F),z(I,()=>g(a),e=>h(a,e)),c(`click`,J,()=>h(o,!g(o))),c(`click`,pe,function(...e){r.close?.apply(this,e)}),t(e,b)},$$slots:{default:!0}})}q()}o([`click`,`change`]);var Vr=new Set([`$$slots`,`$$events`,`$$legacy`]);function Hr(e,t){let n=E(t,Vr),r=[[`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`}]];X(e,W({name:`copy`},()=>n,{get iconNode(){return r}}))}async function Ur(e){try{if(navigator.clipboard?.writeText){await navigator.clipboard.writeText(e);return}}catch{}let t=document.activeElement instanceof HTMLElement?document.activeElement:null,n=t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement?t:null,r=n?.selectionStart!=null&&n.selectionEnd!=null?{start:n.selectionStart,end:n.selectionEnd,direction:n.selectionDirection}:null,i=document.getSelection(),a=i?Array.from({length:i.rangeCount},(e,t)=>i.getRangeAt(t).cloneRange()):[],o=document.createElement(`textarea`);o.value=e,o.readOnly=!0,o.tabIndex=-1,o.setAttribute(`aria-hidden`,`true`),o.style.cssText=`position:fixed;top:0;left:0;opacity:0;pointer-events:none;font-size:16px`;try{if((t?.closest(`dialog[open]`)??document.body).append(o),o.focus({preventScroll:!0}),o.select(),o.setSelectionRange(0,e.length),!document.execCommand(`copy`))throw Error(`Clipboard copy failed.`)}finally{if(o.remove(),t?.focus({preventScroll:!0}),i){i.removeAllRanges();for(let e of a)i.addRange(e)}n&&r&&n.setSelectionRange(r.start,r.end,r.direction??void 0)}}var Wr=f(` `,1),Gr=f(``),Kr=f(`

`,1);function qr(n,r){I(r,!0);let i=e(!1),a=e(``);async function o(){try{await Ur(r.key),h(i,!0),h(a,``)}catch{h(i,!1),h(a,Z(`common.copyRefused`),!0)}}{let e=j(()=>Z(`clients.keyTitle`,{name:r.name}));jr(n,{get title(){return g(e)},get close(){return r.close},children:(e,n)=>{var s=Kr(),u=C(s),d=l(u);be(d,{size:17});var f=S(d,1,!0);k(u);var p=S(u,2),h=l(p),_=l(h,!0);k(h);var v=S(h),b=l(v),x=e=>{var n=Wr(),r=C(n);Dt(r,{size:17});var i=S(r,1,!0);y(e=>R(i,e),[()=>Z(`clients.copied`)]),t(e,n)},w=e=>{var n=Wr(),r=C(n);Hr(r,{size:17});var i=S(r,1,!0);y(e=>R(i,e),[()=>Z(`clients.copyKey`)]),t(e,n)};m(b,e=>{g(i)?e(x):e(w,-1)}),k(v),k(p);var T=S(p,2),E=l(T,!0);k(T);var D=S(T,2),O=e=>{var n=Gr(),r=l(n,!0);k(n),y(()=>R(r,g(a))),t(e,n)};m(D,e=>{g(a)&&e(O)});var A=S(D,2),j=l(A),M=l(j,!0);k(j),k(A),y((e,t,n)=>{R(f,e),R(_,r.key),R(E,t),R(M,n)},[()=>Z(`clients.keyOnce`),()=>Z(`clients.keyBoite`),()=>Z(`common.close`)]),c(`click`,v,o),c(`click`,j,function(...e){r.close?.apply(this,e)}),t(e,s)},$$slots:{default:!0}})}q()}o([`click`]);var Jr=f(` `),Yr=f(` `),Xr=f(`

`),Zr=f(`
`),Qr=f(` `),$r=f(` `),ei=f(` `),ti=f(` `,1),ni=f(``),ri=f(` `),ii=f(``),ai=f(`
`),oi=f(`

`),si=f(`

`),ci=f(`

`),li=f(` `),ui=f(`

`),di=f(``),fi=f(`
`),pi=f(``),mi=f(`

`),hi=f(`
`),gi=f(`

`,1),_i=f(`

`),vi=f(`

`),yi=f(`

`,1),bi=f(``),xi=f(`
`,1),Si=f(`

`,1);function Ci(n,r){I(r,!0);let i=`#d6def0`,a=`#9b8ec4`,o=[`#7899ff`,`#4dd4ac`,`#f4c154`,`#c792ea`,`#5ccfe6`,`#ff9e7a`,`#a3e635`,`#f78fb3`],s=j(()=>r.report?.clients??[]),u=j(()=>r.report?.usage??[]),d=j(()=>It(r.accounts)),f=e(null),p=e(null),_=e(null),b=e(!1),x=e(``),w=j(()=>new Map(g(s).map((e,t)=>[e.id,o[t%o.length]]))),T=j(()=>new Map(g(s).map(e=>[e.id,e.name]))),E=j(()=>g(u).some(e=>(e.clients[``]??0)>0)),O=j(()=>g(u).some(e=>Object.entries(e.clients).some(([e,t])=>e&&!g(T).has(e)&&t>0)));function A(e){return Z(`common.percent`,{value:Ut(e)})}function N(e){return g(d).find(t=>t.id===e)??{id:e,provider:e,name:e,accounts:[]}}function P(e){let t=r.accounts.find(t=>t.id===e);return t?Lt(t.name):Z(`activity.unknownAccount`)}function F(e,t){return At.indexOf(e.kind)-At.indexOf(t.kind)}function L(e,t){return e.access.all||e.access.pools.includes(t.id)||t.accounts.some(t=>e.access.accounts.includes(t.id))}function z(e){return[...new Set([...g(d).filter(t=>L(e,t)).map(e=>e.id),...Object.keys(e.shares)])].map(t=>{let n=N(t),r=new Map;for(let t of g(u)){if(!n.accounts.some(e=>e.id===t.account_id))continue;let i=t.clients[e.id]??0,a=r.get(t.kind);(!a||i>a.points)&&r.set(t.kind,{kind:t.kind,points:i,account:t.account_id})}return{pool:n,share:e.shares[t]??null,kinds:[...r.values()].sort(F)}}).filter(e=>e.kinds.length||e.share!=null)}function B(e){let t=[];for(let n of g(s)){let r=e.clients[n.id]??0;r>0&&t.push({id:n.id,label:n.name,points:r,color:g(w).get(n.id)??o[0],kind:`client`})}let n=e.clients[``]??0;n>0&&t.push({id:`no-key`,label:Z(`clients.noKey`),points:n,color:i,kind:`client`});let r=Object.entries(e.clients).reduce((e,[t,n])=>t&&!g(T).has(t)?e+n:e,0);r>0&&t.push({id:`former`,label:Z(`clients.former`),points:r,color:a,kind:`client`}),e.outside>0&&t.push({id:`outside`,label:Z(`clients.outside`),points:e.outside,color:`#6f80a0`,kind:`outside`});let c=e.used-t.reduce((e,t)=>e+t.points,0);return c>.05&&t.push({id:`rest`,label:Z(`clients.unexplained`),points:c,color:``,kind:`rest`}),t}let V=j(()=>{let e=[],t=new Set;for(let n of g(d))for(let r of n.accounts){let n=g(u).filter(e=>e.account_id===r.id).sort(F);if(t.add(r.id),!n.length)continue;let i=e.find(e=>e.provider===r.provider);i||(i={provider:r.provider,name:Ht(r.provider),accounts:[]},e.push(i)),i.accounts.push({id:r.id,rows:n})}let n=[...new Set(g(u).filter(e=>!t.has(e.account_id)).map(e=>e.account_id))];return n.length&&e.push({provider:``,name:Z(`activity.unknownAccount`),accounts:n.map(e=>({id:e,rows:g(u).filter(t=>t.account_id===e).sort(F)}))}),e});function H(e){return{whole:e.access.pools.map(N),single:r.accounts.filter(t=>e.access.accounts.includes(t.id)&&!e.access.pools.includes(t.route||t.provider)),missing:e.access.accounts.filter(e=>!r.accounts.some(t=>t.id===e))}}function U(e,t){h(f,null),e.key&&h(p,{name:e.client.name,key:e.key},!0),r.updated(Z(t?`notice.clientCreated`:`notice.clientSaved`))}async function W(){let e=g(_);if(!(!e||g(b))){h(b,!0),h(x,``);try{if(e.kind===`rotate`){let t=await $.updateClient(e.client.id,{rotate_key:!0});h(_,null),t.key&&h(p,{name:t.client.name,key:t.key},!0),r.updated(Z(`notice.keyReplaced`))}else await $.deleteClient(e.client.id),h(_,null),r.updated(Z(`notice.clientDeleted`))}catch(e){h(x,e.message,!0)}finally{h(b,!1)}}}var G=Si(),ee=C(G),K=l(ee),J=l(K),te=l(J,!0);k(J);var ne=S(J,2),ae=e=>{var n=Xr(),i=l(n),a=e=>{var n=Jr(),r=l(n);Cr(r,{size:14});var i=S(r,1,!0);k(n),y(e=>R(i,e),[()=>Z(`clients.enforced`)]),t(e,n)},o=e=>{var n=Yr(),r=l(n);Tr(r,{size:16});var i=S(r,1,!0);k(n),y(e=>R(i,e),[()=>Z(`clients.open`)]),t(e,n)};m(i,e=>{r.report.enforced?e(a):e(o,-1)}),k(n),t(e,n)};m(ne,e=>{r.report&&e(ae)}),k(K);var oe=S(K,2),se=l(oe),ce=l(se);Be(ce,{size:20});var le=S(ce,1,!0);k(se),k(oe),k(ee);var ue=S(ee,2),de=e=>{var n=Zr(),r=l(n);{let e=j(()=>Z(`clients.emptyTitle`)),t=j(()=>Z(`clients.emptyDescription`)),n=j(()=>Z(`clients.new`));Cn(r,{get title(){return g(e)},get description(){return g(t)},get action(){return g(n)},onclick:()=>h(f,{client:null},!0)})}k(n),t(e,n)},fe=e=>{var n=gi(),o=C(n);v(o,21,()=>g(s),e=>e.id,(e,n)=>{let i=j(()=>H(g(n))),a=j(()=>Object.entries(g(n).shares));var o=ci();let s;var u=l(o),d=l(u),p=S(l(d)),b=l(p,!0);k(p);var T=S(p),E=l(T,!0);k(T),k(d);var D=S(d,2),O=l(D);Tt(l(O),{size:18}),k(O);var F=S(O,2);xr(l(F),{size:18}),k(F);var I=S(F,2);Yn(l(I),{size:18}),k(I),k(D),k(u);var L=S(u,2),B=l(L),V=e=>{var n=Qr(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`clients.allAccounts`)]),t(e,n)},U=e=>{var n=ti(),r=C(n);v(r,17,()=>g(i).whole,e=>e.id,(e,n)=>{var r=$r(),i=l(r);st(i,{get provider(){return g(n).provider},size:17});var a=S(i,1,!0);k(r),y(()=>R(a,g(n).name)),t(e,r)});var a=S(r,2);v(a,17,()=>g(i).single,e=>e.id,(e,n)=>{var r=$r(),i=l(r);st(i,{get provider(){return g(n).provider},size:17});var a=S(i,1,!0);k(r),y(e=>R(a,e),[()=>Lt(g(n).name)]),t(e,r)});var o=S(a,2);v(o,16,()=>g(i).missing,e=>e,(e,n)=>{var r=ei(),i=l(r,!0);k(r),y(e=>R(i,e),[()=>Z(`activity.unknownAccount`)]),t(e,r)});var s=S(o,2),c=e=>{var n=ei(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`clients.noAccess`)]),t(e,n)};m(s,e=>{!g(i).whole.length&&!g(i).single.length&&!g(i).missing.length&&e(c)}),t(e,n)};m(B,e=>{g(n).access.all?e(V):e(U,-1)}),k(L);var W=S(L,2);v(W,21,()=>g(a),([e,t])=>e,(e,n)=>{var r=j(()=>re(g(n),2));let i=()=>g(r)[0],a=()=>g(r)[1],o=j(()=>N(i()));var s=ni(),c=l(s);kr(c,{size:15});var u=S(c,1,!0),d=S(u),f=l(d,!0);k(d),k(s),y((e,t)=>{M(s,`title`,e),R(u,g(o).name),R(f,t)},[()=>Z(`clients.shareOf`,{pool:g(o).name}),()=>A(a())]),t(e,s)},e=>{var n=ri(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`clients.noShare`)]),t(e,n)}),k(W);var G=S(W,2);v(G,17,()=>z(g(n)),e=>e.pool.id,(e,n)=>{var r=si(),i=l(r),a=l(i);st(a,{get provider(){return g(n).pool.provider},size:18});var o=S(a,1,!0);k(i);var s=S(i,2);v(s,17,()=>g(n).kinds,e=>e.kind,(e,r)=>{var i=ai(),a=l(i),o=l(a,!0);k(a);var s=S(a,2),c=l(s);let u;var d=S(c),f=e=>{var r=ii();let i;y(e=>i=ie(r,``,i,e),[()=>({left:`${Math.min(100,g(n).share)}%`})]),t(e,r)};m(d,e=>{g(n).share!=null&&e(f)}),k(s);var p=S(s,2);let h;var _=l(p,!0);k(p),k(i),y((e,t,a,s)=>{M(i,`title`,e),R(o,t),u=ie(c,``,u,a),h=Y(p,1,`usage-value tabular svelte-15ihc32`,null,h,{over:g(n).share!=null&&g(r).points>=g(n).share}),R(_,s)},[()=>g(n).pool.accounts.length>1?Z(`clients.highest`,{name:P(g(r).account)}):void 0,()=>jt(g(r).kind),()=>({width:`${Math.min(100,g(r).points)}%`}),()=>g(n).share==null?A(g(r).points):Z(`clients.ofShare`,{used:Ut(g(r).points),share:Ut(g(n).share)})]),t(e,i)},e=>{var n=oi(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`clients.notMeasured`)]),t(e,n)}),k(r),y(()=>R(o,g(n).pool.name)),t(e,r)}),k(o),y((e,t,i,a,c,l,u,d)=>{s=ie(o,``,s,e),R(b,g(n).name),M(T,`title`,t),R(E,g(n).key_hint),M(O,`title`,i),M(O,`aria-label`,a),O.disabled=!!r.busy,M(F,`title`,c),M(F,`aria-label`,l),F.disabled=!!r.busy,M(I,`title`,u),M(I,`aria-label`,d),I.disabled=!!r.busy},[()=>({"--client":g(w).get(g(n).id)}),()=>Z(`clients.createdAt`,{date:Kt(g(n).created_at)}),()=>Z(`clients.editTitle`,{name:g(n).name}),()=>Z(`clients.editTitle`,{name:g(n).name}),()=>Z(`clients.rotate`),()=>Z(`clients.rotateNamed`,{name:g(n).name}),()=>Z(`clients.delete`),()=>Z(`clients.deleteNamed`,{name:g(n).name})]),c(`click`,O,()=>h(f,{client:g(n)},!0)),c(`click`,F,()=>{h(x,``),h(_,{kind:`rotate`,client:g(n)},!0)}),c(`click`,I,()=>{h(x,``),h(_,{kind:`delete`,client:g(n)},!0)}),t(e,o)}),k(o);var u=S(o,2),d=l(u),p=l(d,!0),b=S(p);Dr(l(b),{size:16}),k(b),k(d);var T=S(d,2),F=l(T);v(F,17,()=>g(s),e=>e.id,(e,n)=>{var r=li(),i=l(r);let a;var o=S(i,1,!0);k(r),y(e=>{a=ie(i,``,a,e),R(o,g(n).name)},[()=>({background:g(w).get(g(n).id)})]),t(e,r)});var I=S(F,2),L=e=>{var n=li(),r=l(n);ie(r,``,{},{background:i});var a=S(r,1,!0);k(n),y(e=>R(a,e),[()=>Z(`clients.noKey`)]),t(e,n)};m(I,e=>{g(E)&&e(L)});var U=S(I,2),W=e=>{var n=li(),r=l(n);ie(r,``,{},{background:a});var i=S(r,1,!0);k(n),y(e=>R(i,e),[()=>Z(`clients.former`)]),t(e,n)};m(U,e=>{g(O)&&e(W)});var G=S(U,2),ee=l(G);ie(ee,``,{},{background:`#6f80a0`});var K=S(ee,1,!0);k(G);var q=S(G,2),J=S(l(q),1,!0);k(q),k(T),k(u);var te=S(u,2),ne=e=>{var n=ui(),r=l(n),i=l(r,!0);k(r),k(n),y(e=>R(i,e),[()=>Z(`clients.breakdownEmpty`)]),t(e,n)},ae=e=>{var n=hi();v(n,21,()=>g(V),e=>e.provider,(e,n)=>{var r=mi(),i=l(r),a=l(i),o=e=>{st(e,{get provider(){return g(n).provider},size:24})};m(a,e=>{g(n).provider&&e(o)});var s=S(a),c=l(s,!0);k(s),k(i);var u=S(i,2);v(u,17,()=>g(n).accounts,e=>e.id,(e,n)=>{var r=pi(),i=l(r),a=l(i,!0);k(i);var o=S(i,2);v(o,21,()=>g(n).rows,e=>e.kind,(e,n)=>{var r=fi(),i=l(r),a=l(i,!0);k(i);var o=S(i,2);v(o,21,()=>B(g(n)),e=>e.id,(e,n)=>{var r=di();let i;y((e,t)=>{Y(r,1,D([`segment`,g(n).kind]),`svelte-15ihc32`),M(r,`title`,`${g(n).label??``}: ${e??``}`),i=ie(r,``,i,t)},[()=>A(g(n).points),()=>({width:`${Math.min(100,g(n).points)}%`,background:g(n).color||void 0})]),t(e,r)}),k(o);var s=S(o,2),c=l(s,!0);k(s);var u=S(s,2),d=l(u);Ae(d,{size:14});var f=S(d,1,!0);k(u),k(r),y((e,t,n,r,i)=>{R(a,e),M(o,`aria-label`,t),R(c,n),M(u,`title`,r),R(f,i)},[()=>jt(g(n).kind),()=>B(g(n)).map(e=>`${e.label} ${A(e.points)}`).join(`, `),()=>Z(`clients.used`,{value:Ut(g(n).used)}),()=>Z(`quotas.resetAt`,{date:Kt(new Date(g(n).reset*1e3).toISOString())}),()=>qt(new Date(g(n).reset*1e3).toISOString())]),t(e,r)}),k(o),k(r),y(e=>R(a,e),[()=>P(g(n).id)]),t(e,r)}),k(r),y(()=>R(c,g(n).name)),t(e,r)}),k(n),t(e,n)};m(te,e=>{g(V).length?e(ae,-1):e(ne)}),y((e,t,n,r,i)=>{R(p,e),M(b,`title`,t),M(b,`aria-label`,n),R(K,r),R(J,i)},[()=>Z(`clients.breakdown`),()=>Z(`clients.breakdownInfo`),()=>Z(`clients.breakdownInfo`),()=>Z(`clients.outside`),()=>Z(`clients.unexplained`)]),t(e,n)};m(ue,e=>{r.report&&!g(s).length?e(de):g(s).length&&e(fe,1)});var X=S(ue,2),pe=e=>{Br(e,{get client(){return g(f).client},get clients(){return g(s)},get accounts(){return r.accounts},close:()=>h(f,null),saved:U})};m(X,e=>{g(f)&&e(pe)});var me=S(X,2),he=e=>{qr(e,{get name(){return g(p).name},get key(){return g(p).key},close:()=>h(p,null)})};m(me,e=>{g(p)&&e(he)});var ge=S(me,2),_e=e=>{let n=j(()=>g(_));{let r=j(()=>Z(g(n).kind===`rotate`?`clients.rotateTitle`:`clients.deleteTitle`,{name:g(n).client.name}));jr(e,{get title(){return g(r)},close:()=>h(_,null),get locked(){return g(b)},children:(e,r)=>{var i=xi(),a=C(i),o=e=>{var n=_i(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`clients.rotateText`)]),t(e,n)},u=e=>{var n=yi(),r=C(n),i=l(r,!0);k(r);var a=S(r),o=e=>{var n=vi(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`clients.deleteLast`)]),t(e,n)};m(a,e=>{g(s).length===1&&e(o)}),y(e=>R(i,e),[()=>Z(`clients.deleteText`)]),t(e,n)};m(a,e=>{g(n).kind===`rotate`?e(o):e(u,-1)});var d=S(a,2),f=e=>{var n=bi(),r=l(n,!0);k(n),y(()=>R(r,g(x))),t(e,n)};m(d,e=>{g(x)&&e(f)});var p=S(d,2),v=l(p),w=l(v,!0);k(v);var T=S(v),E=l(T,!0);k(T),k(p),y((e,t)=>{v.disabled=g(b),R(w,e),Y(T,1,D([`button`,g(n).kind===`delete`?`danger`:`primary`])),T.disabled=g(b),R(E,t)},[()=>Z(`common.cancel`),()=>Z(g(n).kind===`rotate`?`clients.rotateButton`:`clients.deleteButton`)]),c(`click`,v,()=>h(_,null)),c(`click`,T,W),t(e,i)},$$slots:{default:!0}})}};m(ge,e=>{g(_)&&e(_e)}),y((e,t)=>{R(te,e),se.disabled=!r.report||!!r.busy,R(le,t)},[()=>Z(`clients.title`),()=>Z(`clients.new`)]),c(`click`,se,()=>h(f,{client:null},!0)),t(n,G),q()}o([`click`]);var wi=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ti(e,t){let n=E(t,wi),r=[[`path`,{d:`M7 7h10v10`}],[`path`,{d:`M7 17 17 7`}]];X(e,W({name:`arrow-up-right`},()=>n,{get iconNode(){return r}}))}var Ei=f(` `),Di=f(`
`),Oi=f(`

`,1),ki=f(` `),Ai=f(`

/v1/models

`,1),ji=f(` `),Mi=f(`

`),Ni=f(` `),Pi=f(`
`),Fi=f(`

`,1),Ii=f(`

`),Li=f(`

`),Ri=f(`

douane

`),zi=f(``),Bi=f(`

Claude Code

 

`),Vi=f(``),Hi=f(`

`,1);function Ui(n,r){I(r,!0);let i=F(r,`clients`,19,()=>[]),a=F(r,`showEmails`,3,!1),o=e(``),s=e(!1),u=e(!1),d=e(``),f=e(`openai`),p=j(()=>r.models.filter(e=>`${e.id} ${e.name} ${e.provider}`.toLowerCase().includes(g(o).toLowerCase()))),_=j(()=>new Map(i().map(e=>[e.id,e.name]))),b=j(()=>r.calls.filter(e=>(!g(s)||e.status>=400||e.error)&&`${e.model} ${e.provider} ${e.account_id} ${e.client_id?g(_).get(e.client_id)??``:``}`.toLowerCase().includes(g(o).toLowerCase()))),x=j(()=>r.summary?.requests?Math.round((r.summary.requests-r.summary.errors)/r.summary.requests*100):null),w=j(()=>r.summary?.client_api_base_url??(typeof window>`u`?``:`${window.location.origin}/v1`)),T=j(()=>`$env:ANTHROPIC_BASE_URL = '${g(w).replace(/\/v1$/,``).replace(/'/g,`''`)}'\n$env:ANTHROPIC_AUTH_TOKEN = 'douane'\nclaude`);async function E(e){try{await Ur(e),h(u,!0),h(d,``)}catch{h(u,!1),h(d,Z(`common.copyRefused`),!0)}}var D=L(),N=C(D),P=e=>{var n=Oi(),i=C(n),a=l(i),o=l(a),s=l(o,!0);k(o);var u=S(o),d=l(u,!0);k(u),k(a);var f=S(a);let p;var h=S(l(f),1,!0);k(f),k(i);var _=S(i,2),b=l(_),w=l(b),T=l(w,!0);k(w);var E=S(w),D=l(E,!0);k(E);var O=S(E),A=l(O,!0);k(O),k(b);var M=S(b),N=l(M),P=l(N,!0);k(N);var F=S(N),I=l(F,!0);k(F);var L=S(F),z=l(L,!0);k(L),k(M);var B=S(M),V=l(B),H=l(V,!0);k(V);var U=S(V),W=l(U,!0);k(U);var G=S(U),ee=l(G,!0);k(G),k(B);var K=S(B),q=l(K),J=l(q,!0);k(q);var te=S(q),ne=l(te,!0);k(te);var re=S(te),ie=l(re,!0);k(re),k(K);var ae=S(K),oe=l(ae),se=l(oe,!0);k(oe);var ce=S(oe),le=l(ce,!0);k(ce);var ue=S(ce),de=l(ue,!0);k(ue),k(ae),k(_);var fe=S(_,2),X=l(fe),pe=l(X),me=l(pe,!0);k(pe);var he=S(pe),ge=l(he,!0);k(he),k(X);var _e=S(X),ve=l(_e,!0);Ti(S(ve),{size:14}),k(_e),k(fe);var ye=S(fe,2),be=l(ye),xe=e=>{{let t=j(()=>Z(`overview.emptyTitle`)),n=j(()=>Z(`overview.emptyDescription`)),i=j(()=>Z(`overview.openQuickstart`));Cn(e,{get title(){return g(t)},get description(){return g(n)},get action(){return g(i)},onclick:()=>r.navigate(`quickstart`)})}},Se=e=>{var n=Di(),i=l(n),a=l(i),o=l(a),s=l(o),c=l(s,!0);k(s);var u=S(s),d=l(u,!0);k(u);var f=S(u),p=l(f,!0);k(f);var m=S(f),h=l(m,!0);k(m);var _=S(m),b=l(_,!0);k(_),k(o),k(a);var x=S(a);v(x,21,()=>r.calls.slice(0,8),e=>e.id,(e,n)=>{var r=Ei(),i=l(r),a=l(i,!0);k(i);var o=S(i),s=l(o,!0);k(o);var c=S(o),u=l(c,!0);k(c);var d=S(c),f=l(d);let p;var m=l(f,!0);k(f),k(d);var h=S(d),_=l(h,!0);k(h),k(r),y((e,t,r)=>{R(a,g(n).model),R(s,e),R(u,t),p=Y(f,1,`http-status svelte-15ozkp9`,null,p,{error:g(n).status>=400||!!g(n).error}),R(m,r),R(_,g(n).latency_ms==null?`-`:`${g(n).latency_ms} ms`)},[()=>Ht(g(n).provider),()=>Kt(g(n).started_at),()=>g(n).error?Z(`table.error`):g(n).status]),t(e,r)}),k(x),k(i),k(n),y((e,t,n,r,i)=>{R(c,e),R(d,t),R(p,n),R(h,r),R(b,i)},[()=>Z(`table.model`),()=>Z(`table.provider`),()=>Z(`table.time`),()=>Z(`table.status`),()=>Z(`table.duration`)]),t(e,n)};m(be,e=>{r.calls.length?e(Se,-1):e(xe)}),k(ye),y((e,t,n,i,a,o,c,l,u,m,g,_,v,y,b,x,S,C,w,E)=>{R(s,e),R(d,t),p=Y(f,1,`state-badge`,null,p,{inactive:!r.summary}),R(h,n),R(T,i),R(D,r.summary?r.summary.enabled_accounts:`-`),R(A,a),R(P,o),R(I,c),R(z,l),R(H,u),R(W,m),R(ee,g),R(J,_),R(ne,v),R(ie,y),R(se,b),R(le,x),R(de,S),R(me,C),R(ge,w),R(ve,E)},[()=>Z(`nav.overview`),()=>Z(`overview.description`),()=>Z(r.summary?`overview.connected`:`overview.disconnected`),()=>Z(`overview.activeAccounts`),()=>Z(`overview.ofAccounts`,{count:r.summary?.accounts??0}),()=>Z(`overview.requests`),()=>Wt(r.summary?.requests),()=>Z(`overview.inFlight`,{count:r.summary?.in_flight??0}),()=>Z(`overview.tokens`),()=>r.summary?Wt(r.summary.input_tokens+r.summary.output_tokens):`-`,()=>Z(`overview.tokensDetail`),()=>Z(`overview.cache`),()=>r.summary?Wt(r.summary.cache_read_tokens??0):`-`,()=>Z(`overview.cacheDetail`),()=>Z(`overview.success`),()=>g(x)==null?`-`:Z(`common.percent`,{value:g(x)}),()=>Z(`overview.errors`,{count:r.summary?.errors??0}),()=>Z(`overview.recent`),()=>Z(`overview.recentDescription`),()=>Z(`overview.viewAll`)]),c(`click`,_e,()=>r.navigate(`activity`)),t(e,n)},B=e=>{var n=Ai(),i=C(n),a=l(i),s=l(a),u=l(s,!0);k(s);var d=S(s),f=l(d,!0);k(d),k(a);var _=S(a),b=l(_,!0);k(_),k(i);var x=S(i,2),w=l(x),T=l(w);te(),k(w);var E=S(w),D=l(E);Re(D,{size:15});var O=S(D);A(O),k(E),k(x);var N=S(x,2),P=l(N),F=e=>{{let t=j(()=>Z(`models.emptyTitle`)),n=j(()=>Z(`models.emptyDescription`)),i=j(()=>Z(`models.addAccount`));Cn(e,{get title(){return g(t)},get description(){return g(n)},get action(){return g(i)},onclick:()=>r.navigate(`accounts`)})}},I=e=>{{let t=j(()=>Z(`models.noMatchTitle`)),n=j(()=>Z(`models.noMatchDescription`));Cn(e,{get title(){return g(t)},get description(){return g(n)}})}},L=e=>{var n=Di(),i=l(n),a=l(i),o=l(a),s=l(o),u=l(s,!0);k(s);var d=S(s),f=l(d,!0);k(d);var m=S(d),h=l(m,!0);k(m);var _=S(m),b=l(_,!0);k(_);var x=S(_),C=l(x,!0);k(x),k(o),k(a);var w=S(a);v(w,21,()=>g(p),e=>`${e.provider}:${e.id}`,(e,n)=>{var i=ki(),a=l(i),o=l(a,!0);k(a);var s=S(a),u=l(s,!0);k(s);var d=S(s),f=l(d),p=l(f);st(p,{get provider(){return g(n).provider},size:17});var m=S(p,1,!0);k(f),k(d);var h=S(d),_=l(h,!0);k(h);var v=S(h),b=l(v);let x;k(v),k(i),y((e,t,i)=>{R(o,g(n).name??g(n).id),R(u,g(n).id),R(m,e),R(_,t),x=Y(b,1,`switch`,null,x,{on:g(n).enabled!==!1}),M(b,`aria-checked`,g(n).enabled!==!1),M(b,`aria-label`,i),b.disabled=!!r.busy},[()=>Ht(g(n).provider),()=>Wt(g(n).context_length??void 0),()=>Z(`common.enable`,{name:g(n).name??g(n).id})]),c(`click`,b,()=>r.toggleModel(g(n))),t(e,i)}),k(w),k(i),k(n),y((e,t,n,r,i)=>{R(u,e),R(f,t),R(h,n),R(b,r),R(C,i)},[()=>Z(`table.model`),()=>Z(`table.id`),()=>Z(`table.provider`),()=>Z(`table.context`),()=>Z(`table.available`)]),t(e,n)};m(P,e=>{r.models.length?g(p).length?e(L,-1):e(I,1):e(F)}),k(N),y((e,t,n,r,i,a)=>{R(u,e),R(f,t),R(b,n),R(T,`${r??``} `),M(O,`aria-label`,i),M(O,`placeholder`,a)},[()=>Z(`nav.models`),()=>Z(`models.description`),()=>Z(`models.count`,{count:r.models.length}),()=>Z(`models.endpoint`),()=>Z(`models.search`),()=>Z(`models.search`)]),z(O,()=>g(o),e=>h(o,e)),t(e,n)},V=e=>{var n=Fi(),i=C(n),c=l(i),u=l(c),d=l(u,!0);k(u);var f=S(u),p=l(f,!0);k(f),k(c);var x=S(c),w=l(x,!0);k(x),k(i);var T=S(i,2),E=l(T),D=l(E);A(D);var N=S(D,1,!0);k(E);var P=S(E),F=l(P);Re(F,{size:15});var I=S(F);A(I),k(P),k(T);var L=S(T,2),B=l(L),V=e=>{{let t=j(()=>Z(r.calls.length?`activity.noMatchTitle`:`activity.emptyTitle`)),n=j(()=>Z(r.calls.length?`activity.noMatchDescription`:`activity.emptyDescription`));Cn(e,{get title(){return g(t)},get description(){return g(n)}})}},H=e=>{var n=Pi(),i=l(n),o=l(i),s=l(o),c=l(s),u=l(c,!0);k(c);var d=S(c),f=l(d,!0);k(d);var p=S(d),h=l(p,!0);k(p);var x=S(p),C=l(x,!0);k(x);var w=S(x),T=l(w,!0);k(w);var E=S(w),D=l(E,!0);k(E),k(s),k(o);var O=S(o);v(O,21,()=>g(b),e=>e.id,(e,n)=>{var i=Ni(),o=l(i),s=l(o,!0);k(o);var c=S(o),u=l(c,!0),d=S(u),f=l(d,!0),p=S(f),h=e=>{var r=ji(),i=l(r,!0);k(r),y((e,t)=>{M(r,`title`,e),R(i,t)},[()=>Z(`activity.client`,{name:g(_).get(g(n).client_id)??``}),()=>g(_).get(g(n).client_id)]),t(e,r)},v=j(()=>g(n).client_id&&g(_).has(g(n).client_id));m(p,e=>{g(v)&&e(h)}),k(d);var b=S(d),x=e=>{var r=Mi(),i=l(r,!0);k(r),y(()=>R(i,g(n).error)),t(e,r)};m(b,e=>{g(n).error&&e(x)}),k(c);var C=S(c),w=l(C,!0);k(C);var T=S(C),E=l(T);let D;var O=l(E,!0);k(E),k(T);var A=S(T),N=l(A,!0);k(A);var P=S(A),F=l(P,!0);k(P),k(i),y((e,t,r,i,a)=>{R(s,e),R(u,g(n).model),R(f,t),R(w,r),D=Y(E,1,`http-status svelte-15ozkp9`,null,D,{error:g(n).status>=400||!!g(n).error}),R(O,i),R(N,g(n).latency_ms==null?`-`:`${g(n).latency_ms} ms`),R(F,a)},[()=>Kt(g(n).started_at),()=>Lt(r.accounts.find(e=>e.id===g(n).account_id)?.name??g(n).account_id??Z(`activity.unknownAccount`),a()),()=>Ht(g(n).provider),()=>g(n).error?Z(`table.error`):g(n).status,()=>Wt((g(n).input_tokens??0)+(g(n).output_tokens??0))]),t(e,i)}),k(O),k(i),k(n),y((e,t,n,r,i,a)=>{R(u,e),R(f,t),R(h,n),R(C,r),R(T,i),R(D,a)},[()=>Z(`table.time`),()=>Z(`table.modelAccount`),()=>Z(`table.provider`),()=>Z(`table.status`),()=>Z(`table.duration`),()=>Z(`table.tokens`)]),t(e,n)};m(B,e=>{g(b).length?e(H,-1):e(V)}),k(L),y((e,t,n,r,i,a)=>{R(d,e),R(p,t),R(w,n),R(N,r),M(I,`aria-label`,i),M(I,`placeholder`,a)},[()=>Z(`activity.title`),()=>Z(`activity.description`),()=>Z(`activity.count`,{count:r.calls.length}),()=>Z(`activity.onlyErrors`),()=>Z(`activity.search`),()=>Z(`activity.searchPlaceholder`)]),O(D,()=>g(s),e=>h(s,e)),z(I,()=>g(o),e=>h(o,e)),t(e,n)},H=e=>{var n=Hi(),i=C(n),a=l(i),o=l(a,!0);k(a),k(i);var s=S(i,2),p=l(s);let _;var v=l(p,!0);k(p);var b=S(p);let x;k(s);var D=S(s,2),O=l(D),A=e=>{var n=Ii(),i=l(n),a=l(i),o=l(a,!0);k(a);var s=S(a),u=l(s,!0);Ti(S(u),{size:18}),k(s),k(i),k(n),y((e,t)=>{R(o,e),R(u,t)},[()=>Z(`common.connectAccount`),()=>Z(`quickstart.openAccounts`)]),c(`click`,s,()=>r.navigate(`accounts`)),t(e,n)};m(O,e=>{r.accounts.length||e(A)});var N=S(O,2),P=e=>{var n=Ri(),i=l(n),a=l(i),o=l(a,!0);k(a);var s=S(a),d=l(s),f=l(d,!0);k(d);var p=S(d),h=l(p),_=e=>{Dt(e,{size:20})},v=e=>{Hr(e,{size:20})};m(h,e=>{g(u)?e(_):e(v,-1)}),k(p),k(s);var b=S(s),x=l(b,!0),C=S(x,2,!0);k(b);var T=S(b),D=e=>{var n=Li(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`quickstart.keyRequired`)]),t(e,n)};m(T,e=>{r.summary?.clients&&e(D)});var O=S(T),A=l(O,!0);Ti(S(A),{size:18}),k(O),k(i),k(n),y((e,t,n,r,i)=>{R(o,e),R(f,g(w)),M(p,`aria-label`,t),R(x,n),R(C,r),R(A,i)},[()=>Z(`quickstart.baseUrl`),()=>Z(`quickstart.copyUrl`),()=>Z(`quickstart.openaiHint1`),()=>Z(`quickstart.openaiHint2`),()=>Z(`quickstart.chooseModel`)]),c(`click`,p,()=>E(g(w))),c(`click`,O,()=>r.navigate(`models`)),t(e,n)},F=e=>{var n=Bi(),i=l(n),a=S(l(i)),o=l(a,!0);k(a);var s=S(a),d=l(s),f=l(d),p=l(f,!0);k(f),k(d);var h=S(d),_=l(h),v=e=>{Dt(e,{size:20})},b=e=>{Hr(e,{size:20})};m(_,e=>{g(u)?e(v):e(b,-1)}),k(h),k(s);var x=S(s),C=l(x,!0);k(x);var w=S(x),D=e=>{var n=Li(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`quickstart.keyRequired`)]),t(e,n)};m(w,e=>{r.summary?.clients&&e(D)});var O=S(w),A=e=>{var n=zi(),i=l(n,!0);Ti(S(i),{size:18}),k(n),y(e=>R(i,e),[()=>Z(`quickstart.connectClaude`)]),c(`click`,n,()=>r.navigate(`accounts`)),t(e,n)},N=j(()=>!r.accounts.some(e=>e.provider===`claude`&&e.enabled));m(O,e=>{g(N)&&e(A)}),k(i),k(n),y((e,t,n)=>{R(o,e),R(p,g(T)),M(h,`aria-label`,t),R(C,n)},[()=>Z(`quickstart.powershell`),()=>Z(`quickstart.copyClaude`),()=>Z(`quickstart.claudeHint`)]),c(`click`,h,()=>E(g(T))),t(e,n)};m(N,e=>{g(f)===`openai`?e(P):e(F,-1)});var I=S(N,2),L=e=>{var n=Vi(),r=l(n,!0);k(n),y(()=>R(r,g(d))),t(e,n)};m(I,e=>{g(d)&&e(L)}),k(D),y((e,t,n)=>{R(o,e),M(s,`aria-label`,t),_=Y(p,1,`button`,null,_,{primary:g(f)===`openai`}),M(p,`aria-pressed`,g(f)===`openai`),R(v,n),x=Y(b,1,`button`,null,x,{primary:g(f)===`claude`}),M(b,`aria-pressed`,g(f)===`claude`)},[()=>Z(`nav.setupTool`),()=>Z(`quickstart.chooseTool`),()=>Z(`provider.openaiCompatible`)]),c(`click`,p,()=>{h(f,`openai`),h(u,!1),h(d,``)}),c(`click`,b,()=>{h(f,`claude`),h(u,!1),h(d,``)}),t(e,n)};m(N,e=>{r.screen===`overview`?e(P):r.screen===`models`?e(B,1):r.screen===`activity`?e(V,2):r.screen===`quickstart`&&e(H,3)}),t(n,D),q()}o([`click`]);var Wi=new Set([`$$slots`,`$$events`,`$$legacy`]);function Gi(e,t){let n=E(t,Wi),r=[[`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`}]];X(e,W({name:`save`},()=>n,{get iconNode(){return r}}))}var Ki=new Set([`$$slots`,`$$events`,`$$legacy`]);function qi(e,t){let n=E(t,Ki),r=[[`path`,{d:`M15 6a9 9 0 0 0-9 9V3`}],[`circle`,{cx:`18`,cy:`6`,r:`3`}],[`circle`,{cx:`6`,cy:`18`,r:`3`}]];X(e,W({name:`git-branch`},()=>n,{get iconNode(){return r}}))}var Ji=new Set([`$$slots`,`$$events`,`$$legacy`]);function Yi(e,t){let n=E(t,Ji),r=[[`path`,{d:`m5 8 6 6`}],[`path`,{d:`m4 14 6-6 2-3`}],[`path`,{d:`M2 5h12`}],[`path`,{d:`M7 2h1`}],[`path`,{d:`m22 22-5-10-5 10`}],[`path`,{d:`M14 18h6`}]];X(e,W({name:`languages`},()=>n,{get iconNode(){return r}}))}var Xi=f(`

`);function Zi(e,n){I(n,!0);var r=Xi(),i=l(r),a=l(i),o=l(a,!0);k(a);var s=S(a),u=l(s,!0);k(s),k(i);var d=S(i,2),f=l(d);Yi(f,{size:18});var p=S(f),m=l(p),h=l(m,!0);k(m),m.value=m.__value=`auto`;var g=S(m),_=l(g,!0);k(g),g.value=g.__value=`en`;var v=S(g),b=l(v,!0);k(v),v.value=v.__value=`fr`,k(p);var x;N(p),k(d),k(r),y((e,t,n,r,i,a,s)=>{R(o,e),R(u,t),M(p,`aria-label`,n),R(h,r),R(_,i),R(b,a),x!==(x=s)&&(p.value=(p.__value=s)??``,T(p,s))},[()=>Z(`settings.language`),()=>Z(`settings.languageDescription`),()=>Z(`settings.language`),()=>Z(`settings.languageAuto`),()=>Z(`settings.languageEnglish`),()=>Z(`settings.languageFrench`),()=>gt()]),c(`change`,p,e=>bt(e.currentTarget.value)),t(e,r),q()}o([`change`]);var Qi=new Set([`$$slots`,`$$events`,`$$legacy`]);function $i(e,t){let n=E(t,Qi),r=[[`path`,{d:`M12 15V3`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}],[`path`,{d:`m7 10 5 5 5-5`}]];X(e,W({name:`download`},()=>n,{get iconNode(){return r}}))}var ea=new Set([`$$slots`,`$$events`,`$$legacy`]);function ta(e,t){let n=E(t,ea),r=[[`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`}]];X(e,W({name:`triangle-alert`},()=>n,{get iconNode(){return r}}))}var na=f(``),ra=f(`

`),ia=f(`

`);function aa(n,r){I(r,!0);let i=e(!1),a=e(``),o=e(null),s=e(!1),u=e(void 0);async function d(){h(i,!0),h(a,``);try{let e=await $.exportConfig(),t=typeof e.exported_at==`string`?e.exported_at.slice(0,10):new Date().toISOString().slice(0,10),n=URL.createObjectURL(new Blob([JSON.stringify(e,null,2)],{type:`application/json`}));Object.assign(document.createElement(`a`),{href:n,download:`douane-export-${t}.json`}).click(),setTimeout(()=>URL.revokeObjectURL(n),1e3)}catch(e){h(a,e.message,!0)}finally{h(i,!1)}}async function f(e){h(a,``),h(o,null),h(s,!1);let t=e?.[0];if(g(u)&&(g(u).value=``),!t)return;if(t.size>33554432){h(a,Z(`backup.tooLarge`,{name:t.name}),!0);return}let n;try{n=JSON.parse(await t.text())}catch{h(a,Z(`notice.invalidJson`,{name:t.name}),!0);return}if(n?.format!==`douane-export`||!Array.isArray(n.accounts)){h(a,Z(`backup.notExport`,{name:t.name}),!0);return}h(o,{name:t.name,bundle:n,count:n.accounts.length},!0)}async function p(){g(o)&&await r.restore(g(o).bundle,g(s))&&h(o,null)}var _=ia(),v=l(_),b=l(v),x=l(b,!0);k(b);var C=S(b),w=l(C,!0);k(C),k(v);var T=S(v,2),E=l(T),D=l(E);ta(D,{size:18});var j=S(D),N=l(j,!0);k(j),k(E);var P=S(E,2),F=l(P),L=l(F);$i(L,{size:16});var z=S(L,1,!0);k(F);var B=S(F,2),V=l(B);qn(V,{size:16});var H=S(V,1,!0);k(B);var U=S(B,2);J(U,e=>h(u,e),()=>g(u)),k(P);var W=S(P,2),G=e=>{var n=na(),r=l(n,!0);k(n),y(()=>R(r,g(a))),t(e,n)};m(W,e=>{g(a)&&e(G)});var ee=S(W,2),K=e=>{var n=ra(),i=l(n),a=l(i,!0);k(i);var u=S(i,2),d=l(u);A(d);var f=S(d),m=l(f,!0);k(f),k(u);var _=S(u,2),v=l(_),b=l(v,!0);k(v);var x=S(v,2),C=l(x,!0);k(x),k(_),k(n),y((e,t,i,o,s)=>{M(n,`aria-label`,e),R(a,t),R(m,i),v.disabled=!!r.busy,R(b,o),x.disabled=r.busy===`restore`,R(C,s)},[()=>Z(`backup.restore`),()=>Z(g(o).count===1?`backup.confirm.one`:`backup.confirm.other`,{count:g(o).count,name:g(o).name}),()=>Z(`backup.withSettings`),()=>r.busy===`restore`?Z(`backup.restoring`):Z(`backup.confirmButton`),()=>Z(`common.cancel`)]),O(d,()=>g(s),e=>h(s,e)),c(`click`,v,p),c(`click`,x,()=>h(o,null)),t(e,n)};m(ee,e=>{g(o)&&e(K)}),k(T),k(_),y((e,t,n,a,o,s)=>{R(x,e),R(w,t),R(N,n),F.disabled=g(i)||!!r.busy,R(z,a),B.disabled=!!r.busy,R(H,o),M(U,`aria-label`,s)},[()=>Z(`backup.title`),()=>Z(`backup.description`),()=>Z(`backup.warning`),()=>g(i)?Z(`backup.exporting`):Z(`backup.export`),()=>Z(`backup.restore`),()=>Z(`backup.restore`)]),c(`click`,F,d),c(`click`,B,()=>g(u)?.click()),c(`change`,U,e=>f(e.currentTarget.files)),t(n,_),q()}o([`click`,`change`]);var oa=f(``),sa=f(``),ca=f(``),la=f(`

`),ua=f(`

`,1);function da(n,r){I(r,!0);let i=e(w(b(()=>({...r.settings,provider_strategies:{...r.settings.provider_strategies}})))),a=[`round-robin`,`fill-first`,`reset-first`,`smart`];async function o(e){let t={strategy:g(i).strategy,provider_strategies:g(i).provider_strategies};h(i,{...g(i),...e},!0),await r.save(g(i))||h(i,{...g(i),...t},!0)}function s(e,t){let n={...g(i).provider_strategies};t?n[e]=t:delete n[e],o({provider_strategies:n})}var u=ua(),f=C(u),p=l(f),_=l(p,!0);k(p),k(f);var x=S(f,2),E=l(x);qi(E,{size:18});var D=S(E),O=l(D,!0);k(D),k(x);var j=S(x,2),M=l(j),F=l(M),L=l(F),B=l(L,!0);k(L);var H=S(L),U=l(H,!0);k(H),k(F);var W=S(F);v(W,20,()=>a,e=>e,(e,n)=>{var a=oa();let s;var u=l(a);A(u);var d=S(u),f=l(d,!0),p=S(f),m=l(p,!0);k(p),k(d),k(a),y((e,t)=>{s=Y(a,1,`strategy-option svelte-eyvqa5`,null,s,{chosen:g(i).strategy===n}),V(u,n),ee(u,g(i).strategy===n),u.disabled=!!r.busy,R(f,e),R(m,t)},[()=>Z(`strategy.${n}.label`),()=>Z(`strategy.${n}.desc`)]),c(`change`,u,()=>o({strategy:n})),t(e,a)}),k(W),k(M);var G=S(M,2),K=l(G),J=l(K),te=l(J,!0);k(J);var ne=S(J),re=l(ne,!0);k(ne),k(K);var ie=S(K),ae=l(ie);v(ae,17,()=>r.providers,e=>e.id,(e,n)=>{var o=ca(),u=l(o),d=l(u);st(d,{get provider(){return g(n).id},size:22});var f=S(d,1,!0);k(u);var p=S(u),m=l(p),h=l(m,!0);k(m),m.value=m.__value=``;var _=S(m);v(_,16,()=>a,e=>e,(e,n)=>{var r=sa(),i=l(r,!0);k(r);var a={};y(e=>{R(i,e),a!==(a=n)&&(r.value=(r.__value=n)??``)},[()=>Z(`strategy.${n}.label`)]),t(e,r)}),k(p);var b;N(p),k(o),y((e,t)=>{R(f,e),p.disabled=!!r.busy,R(h,t),b!==(b=g(i).provider_strategies?.[g(n).id]??``)&&(p.value=(p.__value=g(i).provider_strategies?.[g(n).id]??``)??``,T(p,g(i).provider_strategies?.[g(n).id]??``))},[()=>Ht(g(n).id,g(n).name),()=>Z(`settings.defaultRule`)]),c(`change`,p,e=>s(g(n).id,e.currentTarget.value)),t(e,o)});var oe=S(ae),se=e=>{var n=la(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`settings.noProviders`)]),t(e,n)};m(oe,e=>{r.providers.length||e(se)}),k(ie),k(G);var ce=S(G,2),le=l(ce),ue=l(le),de=l(ue,!0);k(ue);var fe=S(ue),X=l(fe,!0);k(fe),k(le);var pe=S(le),me=l(pe),he=l(me,!0),ge=S(he),_e=l(ge);A(_e);var ve=S(_e),ye=l(ve,!0);k(ve),k(ge),k(me);var be=S(me),xe=l(be,!0),Se=S(xe),Ce=l(Se);A(Ce);var we=S(Ce),Te=l(we,!0);k(we),k(Se),k(be);var Ee=S(be),De=l(Ee,!0),Oe=S(De),ke=l(Oe),Ae=l(ke,!0);k(ke),ke.value=(ke.__value=null,``);var je=S(ke);v(je,17,()=>r.providers,e=>e.id,(e,n)=>{var r=sa(),i=l(r,!0);k(r);var a={};y(e=>{R(i,e),a!==(a=g(n).id)&&(r.value=(r.__value=g(n).id)??``)},[()=>Ht(g(n).id,g(n).name)]),t(e,r)}),k(Oe),k(Ee),k(pe),k(ce);var Me=S(ce,2),Ne=l(Me),Pe=l(Ne);Gi(Pe,{size:14});var Fe=S(Pe,1,!0);k(Ne),k(Me),k(j);var Ie=S(j,2);aa(Ie,{get busy(){return r.busy},get restore(){return r.restore}}),Zi(S(Ie,2),{}),y((e,t,n,i,a,o,s,c,l,u,d,f,p,m,h)=>{R(_,e),R(O,t),R(B,n),R(U,i),R(te,a),R(re,o),R(de,s),R(X,c),R(he,l),R(ye,u),R(xe,d),R(Te,f),R(De,p),R(Ae,m),Ne.disabled=!!r.busy,R(Fe,h)},[()=>Z(`nav.settings`),()=>Z(`settings.sessionNote`),()=>Z(`settings.routing`),()=>Z(`settings.routingDescription`),()=>Z(`settings.perProvider`),()=>Z(`settings.perProviderDescription`),()=>Z(`settings.refresh`),()=>Z(`settings.refreshDescription`),()=>Z(`settings.refreshEvery`),()=>Z(`settings.seconds`),()=>Z(`settings.timeout`),()=>Z(`settings.seconds`),()=>Z(`settings.defaultProvider`),()=>Z(`settings.autoProvider`),()=>r.busy===`settings`?Z(`settings.saving`):Z(`settings.save`)]),d(`submit`,j,e=>{e.preventDefault(),r.save(g(i))}),z(_e,()=>g(i).quota_refresh_seconds,e=>g(i).quota_refresh_seconds=e),z(Ce,()=>g(i).request_timeout_seconds,e=>g(i).request_timeout_seconds=e),P(Oe,()=>g(i).default_provider,e=>g(i).default_provider=e),t(n,u),q()}o([`change`]);var fa=f(`

`),pa=f(` `),ma=f(`

`),ha=f(`

`),ga=f(``),_a=f(`

`,1),va=f(`

`,1),ya=f(`

`),ba=f(``),xa=f(``),Sa=f(`

deepseek

`),Ca=f(`

`),wa=f(``),Ta=f(`

`),Ea=f(`

`,1),Da=f(`

`),Oa=f(``),ka=f(`

`);function Aa(n,r){I(r,!0);let i,a=e(void 0),o=e(null),s=e(``),u=e(!1),f=e(``),p=e(!1),_=e(!1),b=e(``),w=e(``),T=e(``),E=e(``),D=e(``),O=e(``),N=e(`chat`),F=j(()=>g(w)===`openai_compatible`),B=e(!1),V=!1,U={opencode_go:`https://opencode.ai/zen/go`,xai:`https://cli-chat-proxy.grok.com/v1`,openai_compatible:``,kimi:`https://api.kimi.com/coding/v1`,qwen:`https://portal.qwen.ai/v1`};H(()=>(V=!0,i.showModal(),()=>{V=!1,i.close(),h(E,``),h(s,``)}));async function W(e){h(u,!0),h(f,``),h(s,``),h(b,``),h(_,!1),h(B,!1);try{let t=await $.startOAuth(e);V&&(h(o,t),h(b,t.user_code?Z(`connect.waiting`):``,!0))}catch(e){V&&h(f,e.message,!0)}finally{h(u,!1)}}function G(){h(p,!0),h(_,!0),h(s,``),h(E,``),r.completed()}function ee(e,t){return!V||g(o)?.id!==e.id||!t.verification_required&&(e.provider!==`antigravity`||t.error_code!==`google_project_unavailable`)?!1:(h(o,{...e,error_code:t.error_code,verification_required:t.verification_required,verification_available:t.verification_available}),h(_,!0),h(s,``),h(f,``),h(b,``),!0)}async function K(e=!0){let t=g(o);if(!t||g(u)||g(_))return t?.interval??5;h(u,!0),e&&h(f,``);try{let e=await $.oauth(t.id);return!V||g(o)?.id!==t.id||ee(t,e)?5:((e.account_id||e.account?.id)&&[`complete`,`completed`,`connected`,`success`].includes(e.status)?G():e.status===`expired`?(h(_,!0),h(f,Z(`connect.expired`),!0)):e.error||e.status===`error`?(h(_,!0),h(f,e.error||Z(`connect.refused`),!0)):h(b,Z(e.status===`exchanging`?`connect.exchanging`:t.user_code?`connect.waiting`:`connect.stillWaiting`),!0),Math.min(60,Math.max(5,e.interval??t.interval??5)))}catch(e){return V&&h(f,e.message,!0),t.interval??5}finally{h(u,!1)}}x(()=>{let e=g(o);if(!e?.user_code||g(p)||g(_))return;let t=!1,n;async function r(){let i=document.hidden?e?.interval??5:await K(!1);t||(n=setTimeout(r,(i??5)*1e3))}return n=setTimeout(r,Math.max(5,e.interval??5)*1e3),()=>{t=!0,clearTimeout(n)}});async function te(e){e.preventDefault();let t=g(o);if(!(!t||g(u))){h(u,!0),h(f,``);try{if(!(await $.oauthCallback(t.id,g(s).trim(),t.state)).account?.id)throw Error(Z(`connect.unconfirmed`));V&&G()}catch(e){V&&h(f,e.message,!0);try{let e=await $.oauth(t.id);V&&g(o)?.id===t.id&&(h(_,[`error`,`expired`].includes(e.status),!0),g(_)&&h(s,``),ee(t,e))}catch{}}finally{h(u,!1)}}}async function ne(e){e.preventDefault(),h(u,!0),h(f,``);try{let e=await $.importCredential({type:g(w),name:g(T),access_token:g(E),base_url:g(D),...g(F)?{route:g(O).trim().toLowerCase(),...g(N)?{dialect:g(N)}:{}}:{}});if(e.errors?.length||!e.imported)throw Error(e.errors?.length?Rt(e.errors):Z(`connect.notAdded`));V&&G()}catch(e){V&&h(f,e.message,!0)}finally{h(u,!1)}}function re(){h(o,null),h(w,``),h(E,``),h(s,``),h(f,``),h(b,``),h(_,!1),h(O,``),h(N,`chat`)}async function ie(){if(g(o)?.user_code)try{await Ur(g(o).user_code),h(B,!0),g(f)===Z(`connect.copyRefused`)&&h(f,``)}catch{h(B,!1),h(f,Z(`connect.copyRefused`),!0)}}var ae=ka(),oe=l(ae),Y=l(oe),se=l(Y),ce=l(se,!0);k(se);var le=S(se),ue=l(le,!0);k(le),k(Y);var de=S(Y);Pe(l(de),{size:18}),k(de),k(oe);var fe=S(oe,2),X=e=>{var n=fa(),i=l(n);Dt(l(i),{size:24}),k(i);var a=S(i),o=l(a,!0);k(a);var s=S(a),u=l(s,!0);k(s);var d=S(s),f=l(d,!0);k(d),k(n),y((e,t,n)=>{R(o,e),R(u,t),R(f,n)},[()=>Z(`connect.success`),()=>Z(`connect.successText`),()=>Z(`connect.viewAccounts`)]),c(`click`,d,function(...e){r.close?.apply(this,e)}),t(e,n)},pe=e=>{var n=L(),r=C(n),i=e=>{var n=ha(),r=l(n),i=l(r,!0);k(r);var a=S(r,2),s=e=>{var n=pa(),r=l(n,!0);He(S(r),{size:16}),k(n),y((e,t)=>{M(n,`href`,e),R(r,t)},[()=>`/admin/api/oauth/${encodeURIComponent(g(o).id)}/verification`,()=>Z(`common.verifyGoogle`)]),t(e,n)},d=e=>{var n=ma(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`common.openAntigravity`)]),t(e,n)};m(a,e=>{g(o).verification_available?e(s):e(d,-1)});var f=S(a,2),p=l(f,!0);k(f);var h=S(f,2),_=l(h),v=l(_,!0);k(_);var b=S(_),x=l(b,!0);k(b),k(h),k(n),y((e,t,n,r)=>{R(i,e),R(p,t),_.disabled=g(u),R(v,n),b.disabled=g(u),R(x,r)},[()=>Z(`connect.googleVerify`),()=>Z(`connect.afterVerify`),()=>Z(`connect.restart`),()=>Z(`common.chooseOtherProvider`)]),c(`click`,_,()=>g(o)&&W(g(o).provider)),c(`click`,b,re),t(e,n)},a=e=>{var n=ga(),r=l(n),i=l(r,!0);k(r);var a=S(r,2),s=l(a,!0);k(a);var d=S(a,2),f=l(d,!0);k(d);var p=S(d,2),m=l(p,!0);He(S(m),{size:16}),k(p);var h=S(p,2),_=l(h),v=l(_,!0);k(_);var b=S(_),x=l(b,!0);k(b),k(h),k(n),y((e,t,n,r,a,o)=>{R(i,e),R(s,t),R(f,n),R(m,r),_.disabled=g(u),R(v,a),b.disabled=g(u),R(x,o)},[()=>Z(`connect.antigravityTitle`),()=>Z(`connect.antigravityProject`),()=>Z(`connect.antigravityFirstUse`),()=>Z(`connect.antigravityGuide`),()=>Z(`connect.restart`),()=>Z(`common.chooseOtherProvider`)]),c(`click`,_,()=>g(o)&&W(g(o).provider)),c(`click`,b,re),t(e,n)},f=e=>{var n=ba(),r=l(n),i=e=>{var n=_a(),r=C(n),i=l(r,!0);k(r);var a=S(r),s=l(a),u=l(s,!0);k(s);var d=S(s),f=l(d),p=e=>{Dt(e,{size:16})},h=e=>{Hr(e,{size:16})};m(f,e=>{g(B)?e(p):e(h,-1)}),k(d),k(a),y((e,t)=>{R(i,e),R(u,g(o).user_code),M(d,`aria-label`,t)},[()=>Z(`connect.enterCode`,{provider:Ht(g(o).provider)}),()=>Z(`connect.copyCode`)]),c(`click`,d,ie),t(e,n)},a=e=>{var n=ma(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`connect.authorize`)]),t(e,n)};m(r,e=>{g(o).user_code?e(i):e(a,-1)});var f=S(r,2),p=l(f,!0);He(S(p),{size:14}),k(f);var v=S(f,2),x=e=>{var n=va(),r=C(n),i=l(r,!0);k(r);var a=S(r),o=l(a),c=l(o,!0);k(o);var f=S(o);A(f);var p=S(f),m=l(p,!0);k(p),k(a),y((e,t,n,r,a)=>{R(i,e),R(c,t),M(f,`placeholder`,n),p.disabled=r,R(m,a)},[()=>Z(`connect.callbackHint`),()=>Z(`connect.callbackLabel`),()=>Z(`connect.callbackPlaceholder`),()=>g(u)||g(_)||!g(s).trim(),()=>Z(`connect.finish`)]),d(`submit`,a,te),z(f,()=>g(s),e=>h(s,e)),t(e,n)};m(v,e=>{g(o).user_code||e(x)});var w=S(v,2),T=l(w),E=l(T,!0);k(T);var D=S(T),O=l(D,!0);k(D),k(w);var j=S(w),N=e=>{var n=ya(),r=l(n,!0);k(n),y(()=>R(r,g(b))),t(e,n)};m(j,e=>{g(b)&&e(N)}),k(n),y((e,t,n)=>{M(f,`href`,g(o).url),R(p,e),T.disabled=g(u)||g(_),R(E,t),D.disabled=g(u),R(O,n)},[()=>Z(`connect.open`),()=>Z(`connect.check`),()=>Z(`common.chooseOtherProvider`)]),c(`click`,T,()=>K()),c(`click`,D,re),t(e,n)};m(r,e=>{g(o).verification_required?e(i):g(o).provider===`antigravity`&&g(o).error_code===`google_project_unavailable`?e(a,1):e(f,-1)}),t(e,n)},me=e=>{var n=Sa(),r=l(n),i=l(r,!0),a=S(i,2,!0),o=S(a),s=l(o,!0);k(o);var f=S(o,1,!0);k(r);var p=S(r),m=l(p),_=l(m,!0);k(m);var b=S(m);A(b);var x=S(b),C=l(x,!0);k(x);var w=S(x);A(w),M(w,`pattern`,`[a-z0-9][a-z0-9_\\-]{0,31}`);var j=S(w),F=l(j,!0);k(j);var I=S(j);A(I);var L=S(I),B=l(L,!0);k(L);var V=S(L);v(V,20,()=>Ot,e=>e,(e,n)=>{var r=xa(),i=l(r,!0);k(r);var a={};y(e=>{R(i,e),a!==(a=n)&&(r.value=(r.__value=n)??``)},[()=>kt(n)]),t(e,r)}),k(V);var H=S(V),U=l(H,!0);k(H);var W=S(H);A(W);var G=S(W),ee=l(G,!0);k(G),k(p);var K=S(p),q=l(K,!0);k(K),k(n),y((e,t,n,r,o,c,l,d,p,m,h,v)=>{R(i,e),R(a,t),R(s,n),R(f,r),R(_,o),R(C,c),R(F,l),R(B,d),R(U,p),G.disabled=m,R(ee,h),K.disabled=g(u),R(q,v)},[()=>Z(`connect.customIntro1`),()=>Z(`connect.customIntro2`),()=>Z(`connect.customModel`),()=>Z(`connect.customIntro3`),()=>Z(`connect.name`),()=>Z(`endpoint.route`),()=>Z(`endpoint.url`),()=>Z(`endpoint.format`),()=>Z(`endpoint.key`),()=>g(u)||!g(E).trim()||!g(O).trim(),()=>Z(`connect.addEndpoint`),()=>Z(`common.chooseOtherProvider`)]),d(`submit`,p,ne),z(b,()=>g(T),e=>h(T,e)),z(w,()=>g(O),e=>h(O,e)),z(I,()=>g(D),e=>h(D,e)),P(V,()=>g(N),e=>h(N,e)),z(W,()=>g(E),e=>h(E,e)),c(`click`,K,re),t(e,n)},he=e=>{var n=Ca(),r=l(n),i=l(r,!0);k(r);var a=S(r),o=l(a),s=l(o,!0);k(o);var f=S(o);A(f);var p=S(f),m=l(p,!0);k(p);var _=S(p);A(_);var v=S(_),b=l(v,!0);k(v);var x=S(v);A(x);var C=S(x),w=l(C,!0);k(C),k(a);var O=S(a),j=l(O,!0);k(O),k(n),y((e,t,n,r,a,o,c,l,d)=>{R(i,e),R(s,t),M(f,`placeholder`,n),R(m,r),R(b,a),M(x,`placeholder`,o),C.disabled=c,R(w,l),O.disabled=g(u),R(j,d)},[()=>Z(`connect.tokenIntro`),()=>Z(`connect.accountName`),()=>Z(`connect.accountNamePlaceholder`),()=>Z(`connect.token`),()=>Z(`connect.providerUrl`),()=>Z(`connect.providerUrlPlaceholder`),()=>g(u)||!g(E).trim(),()=>Z(`connect.addAccount`),()=>Z(`common.chooseOtherProvider`)]),d(`submit`,a,ne),z(f,()=>g(T),e=>h(T,e)),z(_,()=>g(E),e=>h(E,e)),z(x,()=>g(D),e=>h(D,e)),c(`click`,O,re),t(e,n)},ge=e=>{var n=Ea(),i=C(n),o=l(i);v(o,17,()=>r.providers,e=>e.id,(e,n)=>{var r=wa(),i=l(r);st(l(i),{get provider(){return g(n).id},size:28}),k(i);var a=S(i),o=l(a,!0),s=S(o),d=l(s,!0);k(s),k(a),Ie(S(a),{size:15}),k(r),y((e,t)=>{r.disabled=g(u),R(o,e),R(d,t)},[()=>Ht(g(n).id,g(n).name),()=>Z(g(n).oauth?`connect.oauthOption`:g(n).id===`openai_compatible`?`connect.apiKeyOption`:`connect.tokenOption`)]),c(`click`,r,()=>{g(n).oauth?W(g(n).id):(h(w,g(n).id,!0),h(D,g(n).base_url??U[g(n).id]??``,!0),h(T,g(n).id===`openai_compatible`?``:Ht(g(n).id,g(n).name),!0))}),t(e,r)});var s=S(o),d=e=>{var n=Ta(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`connect.noProvider`)]),t(e,n)};m(s,e=>{r.providers.length||e(d)}),k(i);var f=S(i,2),p=l(f),_=l(p),b=l(_,!0);k(_);var x=S(_),E=l(x,!0);k(x),k(p);var O=S(p),A=l(O);qn(A,{size:14});var j=S(A,1,!0);k(O);var M=S(O);J(M,e=>h(a,e),()=>g(a)),k(f),y((e,t,n)=>{R(b,e),R(E,t),O.disabled=g(u),R(j,n)},[()=>Z(`connect.haveFile`),()=>Z(`connect.importFiles`),()=>Z(`common.import`)]),c(`click`,O,()=>g(a)?.click()),c(`change`,M,e=>{e.currentTarget.files?.length&&(r.importFiles(e.currentTarget.files),r.close())}),t(e,n)};m(fe,e=>{g(p)?e(X):g(o)?e(pe,1):g(w)&&g(F)?e(me,2):g(w)?e(he,3):e(ge,-1)});var _e=S(fe,2),ve=e=>{var n=Da(),r=l(n,!0);k(n),y(e=>R(r,e),[()=>Z(`connect.pending`)]),t(e,n)};m(_e,e=>{g(u)&&e(ve)});var ye=S(_e,2),be=e=>{var n=Oa(),r=l(n,!0);k(n),y(()=>R(r,g(f))),t(e,n)};m(ye,e=>{g(f)&&e(be)}),k(ae),J(ae,e=>i=e,()=>i),y((e,t,n)=>{R(ce,e),R(ue,t),M(de,`aria-label`,n)},[()=>Z(`common.connectAccount`),()=>Z(`connect.subtitle`),()=>Z(`common.close`)]),d(`cancel`,ae,function(...e){r.close?.apply(this,e)}),c(`click`,de,function(...e){r.close?.apply(this,e)}),t(n,ae),q()}o([`click`,`change`]);var ja=p(``);function Ma(e,n){let r=F(n,`size`,3,38);var i=ja();y(()=>{M(i,`width`,r()),M(i,`height`,r())}),t(e,i)}var Na=f(``),Pa=f(``),Fa=f(` `),Ia=f(``),La=f(``),Ra=f(``),za=f(`
`),Ba=f(`
`),Va=f(`

`,1),Ha=f(``),Ua=f(`
`,1);function Wa(n,a){I(a,!0);let o=[{label:`nav.subscriptions`,items:[{id:`quotas`,label:`nav.quotas`,icon:me},{id:`overview`,label:`nav.overview`,icon:ge},{id:`accounts`,label:`nav.accounts`,icon:ve},{id:`clients`,label:`nav.clients`,icon:be},{id:`models`,label:`nav.models`,icon:Se}]},{label:`nav.service`,items:[{id:`activity`,label:`nav.activity`,icon:we},{id:`settings`,label:`nav.settings`,icon:Ee},{id:`quickstart`,label:`nav.quickstart`,icon:Oe}]}],f=o.flatMap(e=>e.items).filter(e=>[`quotas`,`accounts`,`activity`,`settings`].includes(e.id)),p=e(`quotas`),_=e(!1),b=e(!1),x=e([]),w=e([]),T=e([]),E=e([]),D=e([]),O=e(null),A=e(null),N=e(null),P=e(!0),F=e(``),z=e(``),B=e(``),V=j(()=>Z(o.flatMap(e=>e.items).find(e=>e.id===g(p))?.label??`nav.quotas`)),U=null;async function W(e=!1){if(U)return U;e||h(P,!0),U=(async()=>{let e=await Promise.allSettled([$.accounts(),$.quotas(),$.providers(),$.models(),$.calls(),$.status(),$.settings(),$.clients()]),t=[];e[0].status===`fulfilled`?h(x,e[0].value.accounts):t.push(e[0].reason.message),e[1].status===`fulfilled`?h(w,e[1].value.quotas):t.push(e[1].reason.message),e[2].status===`fulfilled`?h(T,e[2].value.providers):t.push(e[2].reason.message),e[3].status===`fulfilled`?h(E,e[3].value.models):t.push(e[3].reason.message),e[4].status===`fulfilled`?h(D,e[4].value.calls):t.push(e[4].reason.message),e[5].status===`fulfilled`?h(O,e[5].value):(h(O,null),t.push(e[5].reason.message)),e[6].status===`fulfilled`?h(A,e[6].value):t.push(e[6].reason.message),e[7].status===`fulfilled`?h(N,e[7].value):t.push(e[7].reason.message),h(z,[...new Set(t)].join(` `),!0),h(P,!1)})();try{await U}finally{U=null}}function G(e){h(p,e,!0),h(_,!1),h(z,``),h(B,``),location.hash=e,window.scrollTo(0,0)}function ee(){let e=location.hash.slice(1);o.flatMap(e=>e.items).some(t=>t.id===e)&&h(p,e,!0)}async function J(e,t,n=``){if(g(F))return!1;h(F,e,!0),h(z,``),h(B,``);try{return await t(),U&&await U,await W(!0),h(B,n,!0),!0}catch(e){return h(z,e.message,!0),!1}finally{h(F,``)}}function te(e){return J(`quotas`,()=>$.refreshQuotas(e))}async function ne(e,t){let n={...g(A)?.quota_display};t===`average`?n[e]=t:delete n[e],await J(`settings`,()=>$.settingsSave({quota_display:n}),Z(`notice.displaySaved`))}async function re(e,t){let n={...g(A)?.quota_windows};t.hidden?.length||t.primary?n[e]={hidden:t.hidden??[],primary:t.primary??null}:delete n[e],await J(`settings`,()=>$.settingsSave({quota_windows:n}),Z(`notice.windowsSaved`))}async function ie(e,t){if(g(F))throw Error(Z(`notice.busy`));h(F,`rename`);try{let n=await $.renameAccount(e.id,t);h(x,g(x).map(t=>t.id===e.id?n.account:t))}finally{h(F,``)}}function ae(e,t){return J(`endpoint`,()=>$.updateEndpoint(e.id,t),Z(`notice.endpointSaved`))}function se(e,t,n){return J(`reserve`,()=>$.setAccountReserve(e.id,t,n),Z(t==null?`notice.reserveRemoved`:`notice.reserveSaved`))}async function ce(e){let t=Array.from(e);await J(`import`,async()=>{let e=await Promise.all(t.map(async e=>{if(e.size>2097152)throw Error(Z(`notice.fileTooLarge`,{name:e.name}));try{return{name:e.name,content:JSON.parse(await e.text())}}catch{throw Error(Z(`notice.invalidJson`,{name:e.name}))}})),n=await $.importAccounts(e);if(n.errors?.length)throw await W(!0),Error(Z(`notice.partialImport`,{count:n.imported,errors:Rt(n.errors)}));if(!n.imported)throw Error(Z(`notice.nothingImported`))},Z(`notice.imported`))}async function le(e,t){let n=0,r=await J(`restore`,async()=>{let r=await $.restore(e,t);if(n=r.restored,r.errors?.length)throw await W(!0),Error(Z(`notice.partialRestore`,{count:r.restored,errors:Rt(r.errors)}))});return r&&h(B,Z(n===1?`notice.restored.one`:`notice.restored.other`,{count:n}),!0),r}H(()=>{ee(),W();let e=setInterval(()=>{!document.hidden&&!g(F)&&W(!0)},15e3);return()=>clearInterval(e)});var ue=Ua();oe(`1uha8ag`,e=>{var n=Na();y(e=>M(n,`content`,e),[()=>Z(`page.description`)]),s(()=>{u.title=`${g(V)??``} · douane`}),t(e,n)}),d(`hashchange`,K,ee),d(`keydown`,K,e=>{e.key===`Escape`&&h(_,!1)}),d(`visibilitychange`,u,()=>{document.hidden||W(!0)});var de=C(ue),fe=l(de),X=e=>{var n=Pa();y(e=>M(n,`aria-label`,e),[()=>Z(`nav.closeMenu`)]),c(`click`,n,()=>h(_,!1)),t(e,n)};m(fe,e=>{g(_)&&e(X)});var pe=S(fe,2);let he;var _e=l(pe),ye=l(_e);Ma(l(ye),{}),k(ye);var xe=S(ye,2);Pe(l(xe),{size:18}),k(xe),k(_e);var Ce=S(_e,2);v(Ce,21,()=>o,e=>e.label,(e,n)=>{var i=La(),a=l(i),o=l(a,!0);k(a);var s=S(a);v(s,17,()=>g(n).items,e=>e.id,(e,n)=>{let i=j(()=>g(n).icon);var a=Ia();let o;var s=l(a);r(s,()=>g(i),(e,t)=>{t(e,{size:17})});var u=S(s),d=l(u,!0);k(u);var f=S(u),h=e=>{var n=Fa(),r=l(n,!0);k(n),y(()=>R(r,g(x).length)),t(e,n)},_=e=>{var n=Fa(),r=l(n,!0);k(n),y(()=>R(r,g(N).clients.length)),t(e,n)};m(f,e=>{g(n).id===`accounts`&&g(x).length?e(h):g(n).id===`clients`&&g(N)?.clients.length&&e(_,1)}),k(a),y(e=>{o=Y(a,1,`nav-link`,null,o,{active:g(p)===g(n).id}),M(a,`aria-current`,g(p)===g(n).id?`page`:void 0),R(d,e)},[()=>Z(g(n).label)]),c(`click`,a,()=>G(g(n).id)),t(e,a)}),k(i),y(e=>R(o,e),[()=>Z(g(n).label)]),t(e,i)}),k(Ce);var Te=S(Ce,2),De=l(Te),ke=l(De,!0);Ie(S(ke),{size:19}),k(De),k(Te),k(pe);var je=S(pe,2),Ne=l(je),Fe=l(Ne),Le=e=>{var n=Ra(),r=l(n),i=l(r,!0);k(r);var a=S(r),o=l(a,!0);k(a),k(n),y(e=>{R(i,g(z)),a.disabled=g(P),R(o,e)},[()=>Z(`common.retry`)]),c(`click`,a,()=>W()),t(e,n)};m(Fe,e=>{g(z)&&e(Le)});var Re=S(Fe,2),ze=e=>{var n=za(),r=l(n,!0),i=S(r);Pe(l(i),{size:14}),k(i),k(n),y(e=>{R(r,g(B)),M(i,`aria-label`,e)},[()=>Z(`page.dismissNotice`)]),c(`click`,i,()=>h(B,``)),t(e,n)};m(Re,e=>{g(B)&&e(ze)});var Be=S(Re,2),Ve=e=>{var n=Ba(),r=l(n);Ae(r,{size:18,class:`spinning`});var i=S(r),a=l(i,!0);k(i),k(n),y(e=>R(a,e),[()=>Z(`page.loading`)]),t(e,n)};m(Be,e=>{g(P)&&!g(O)&&e(Ve)});var He=S(Be,2),Ue=e=>{Gn(e,{get accounts(){return g(x)},get quotas(){return g(w)},get providers(){return g(T)},get busy(){return g(F)},refresh:te,rename:ie,get settings(){return g(A)},setQuotaDisplay:ne,setQuotaWindows:re,resetUpdated:()=>W(!0),connect:()=>h(b,!0)})},We=e=>{yr(e,{get accounts(){return g(x)},get quotas(){return g(w)},get busy(){return g(F)},rename:ie,setReserve:se,updateEndpoint:ae,connect:()=>h(b,!0),importFiles:ce,toggle:e=>J(`account`,()=>$.setAccountEnabled(e.id,!e.enabled),Z(e.enabled?`notice.accountDisabled`:`notice.accountEnabled`)),remove:e=>J(`account`,()=>$.deleteAccount(e.id),Z(`notice.accountDeleted`))})},Ge=e=>{Ci(e,{get report(){return g(N)},get accounts(){return g(x)},get busy(){return g(F)},updated:async e=>{await W(!0),h(B,e,!0)}})},Ke=e=>{var n=L(),r=C(n),a=e=>{var n=L(),r=C(n);i(r,()=>JSON.stringify(g(A)),e=>{da(e,{get settings(){return g(A)},get providers(){return g(T)},get busy(){return g(F)},restore:le,save:e=>J(`settings`,()=>$.settingsSave(e),Z(`notice.settingsSaved`))})}),t(e,n)},o=e=>{var n=Va(),r=C(n),i=l(r),a=l(i),o=l(a,!0);k(a);var s=S(a),c=l(s,!0);k(s),k(i),k(r),Zi(S(r),{}),y((e,t)=>{R(o,e),R(c,t)},[()=>Z(`nav.settings`),()=>Z(`page.settingsUnavailable`)]),t(e,n)};m(r,e=>{g(A)?e(a):e(o,-1)}),t(e,n)},qe=e=>{var n=L(),r=C(n);i(r,()=>g(p),e=>{{let t=j(()=>g(N)?.clients??[]);Ui(e,{get screen(){return g(p)},get summary(){return g(O)},get calls(){return g(D)},get models(){return g(E)},get accounts(){return g(x)},get clients(){return g(t)},get busy(){return g(F)},navigate:G,toggleModel:e=>J(`model`,()=>$.setModelEnabled(e.id,e.enabled===!1),Z(`notice.modelUpdated`))})}}),t(e,n)};m(He,e=>{g(p)===`quotas`?e(Ue):g(p)===`accounts`?e(We,1):g(p)===`clients`?e(Ge,2):g(p)===`settings`?e(Ke,3):e(qe,-1)}),k(Ne),k(je),k(de);var Je=S(de,2),Ye=l(Je);v(Ye,17,()=>f,e=>e.id,(e,n)=>{let i=j(()=>g(n).icon);var a=Ha();let o;var s=l(a);r(s,()=>g(i),(e,t)=>{t(e,{size:19})});var u=S(s),d=l(u,!0);k(u),k(a),y(e=>{M(a,`aria-current`,g(p)===g(n).id?`page`:void 0),o=Y(a,1,``,null,o,{active:g(p)===g(n).id}),R(d,e)},[()=>Z(g(n).label)]),c(`click`,a,()=>G(g(n).id)),t(e,a)});var Xe=S(Ye),Ze=l(Xe);Me(Ze,{size:19});var Qe=S(Ze),$e=l(Qe,!0);k(Qe),k(Xe),k(Je);var et=S(Je,2),tt=e=>{Aa(e,{get providers(){return g(T)},close:()=>h(b,!1),completed:()=>{h(B,Z(`notice.accountConnected`),!0),W(!0)},importFiles:ce})};m(et,e=>{g(b)&&e(tt)}),y((e,t,n,r,i,a)=>{he=Y(pe,1,`sidebar`,null,he,{"mobile-open":g(_)}),M(xe,`aria-label`,e),M(Ce,`aria-label`,t),R(ke,n),M(Je,`aria-label`,r),M(Xe,`aria-label`,i),M(Xe,`aria-expanded`,g(_)),R($e,a)},[()=>Z(`nav.closeMenu`),()=>Z(`nav.main`),()=>Z(`nav.setupTool`),()=>Z(`nav.mobile`),()=>Z(`nav.openMenu`),()=>Z(`nav.menu`)]),c(`click`,xe,()=>h(_,!1)),c(`click`,De,()=>G(`quickstart`)),c(`click`,Xe,()=>h(_,!0)),t(n,ue),q()}o([`click`]);export{Wa as component}; \ No newline at end of file diff --git a/dash/build/_app/version.json b/dash/build/_app/version.json index ce1fd79..a37c700 100644 --- a/dash/build/_app/version.json +++ b/dash/build/_app/version.json @@ -1 +1 @@ -{"version":"1792495117827"} \ No newline at end of file +{"version":"1792586093948"} \ No newline at end of file diff --git a/dash/build/index.html b/dash/build/index.html index 241268d..75fbdfb 100644 --- a/dash/build/index.html +++ b/dash/build/index.html @@ -6,10 +6,10 @@ douane - - + + - + @@ -19,7 +19,7 @@