diff --git a/container.go b/container.go index d04c147..47bee73 100644 --- a/container.go +++ b/container.go @@ -19,14 +19,11 @@ type Container struct { IP string `json:"ip"` Image string `json:"image"` ID string `json:"id"` + Engine string `json:"engine"` Status string `json:"status"` State string `json:"state"` } -type Models struct { - Models []Model `json:"models"` -} - func (c *Containers) Add(ctr Container) { c.Containers = append(c.Containers, ctr) } @@ -53,8 +50,17 @@ func get_ollama_containers(host Host, all bool) Containers { } for _, ctr := range containers { - if strings.Contains(ctr.Names[0], "ollama") { //&& ctr.Image == "ollama/ollama" { - c := Container{ID: ctr.ID, Name: ctr.Names[0], Image: ctr.Image, State: ctr.State, Status: ctr.Status} + if strings.Contains(ctr.Names[0], "ollama") { + c := Container{ID: ctr.ID, Name: ctr.Names[0], Image: ctr.Image, State: ctr.State, Status: ctr.Status, Engine: "ollama"} + if ctr.State == "running" { + // fmt.Println(ctr.Ports[0]) + c.Port = int(ctr.Ports[0].PublicPort) + } + c.IP = host.IP + ctr_list.Add(c) + // ctr_list = append(ctr_list, c) + } else if strings.Contains(ctr.Names[0], "vllm") { + c := Container{ID: ctr.ID, Name: ctr.Names[0], Image: ctr.Image, State: ctr.State, Status: ctr.Status, Engine: "vllm"} if ctr.State == "running" { // fmt.Println(ctr.Ports[0]) c.Port = int(ctr.Ports[0].PublicPort) diff --git a/host.go b/host.go index b16b7ca..ee488e6 100644 --- a/host.go +++ b/host.go @@ -19,6 +19,10 @@ type Host struct { Containers []Container `json:"containers"` } +type Models struct { + Models []Model `json:"models"` +} + type Model struct { Container string `json:"container"` Name string `json:"name"` @@ -28,9 +32,37 @@ type Model struct { Details Details `json:"details"` Ip string `json:"ip"` Port int `json:"port"` + Engine string `json:"engine"` State string `json:"state"` } +type Vllm struct { + Object string `json:"object"` + Data []struct { + ID string `json:"id"` + Object string `json:"object"` + Created int `json:"created"` + OwnedBy string `json:"owned_by"` + Root string `json:"root"` + Parent interface{} `json:"parent"` + MaxModelLen int `json:"max_model_len"` + Permission []struct { + ID string `json:"id"` + Object string `json:"object"` + Created int `json:"created"` + AllowCreateEngine bool `json:"allow_create_engine"` + AllowSampling bool `json:"allow_sampling"` + AllowLogprobs bool `json:"allow_logprobs"` + AllowSearchIndices bool `json:"allow_search_indices"` + AllowView bool `json:"allow_view"` + AllowFineTuning bool `json:"allow_fine_tuning"` + Organization string `json:"organization"` + Group interface{} `json:"group"` + IsBlocking bool `json:"is_blocking"` + } `json:"permission"` + } `json:"data"` +} + type Details struct { Parent_model string `json:"parent_model"` Format string `json:"format"` @@ -51,37 +83,77 @@ func get_ollama_tags(hosts Hosts) (Models, error) { retval := []Model{} - for _, ollama := range ctr.Containers { - if ollama.State != "running" { - retval = append(retval, Model{Ip: ollama.IP, Port: ollama.Port, State: "stopped"}) - } else { - url := fmt.Sprintf("http://%s:%d/api/tags", ollama.IP, ollama.Port) - resp, err := http.Get(url) - if err != nil { - return Models{}, fmt.Errorf("failed to get %s: %v", url, err) - } - defer resp.Body.Close() + for _, engine := range ctr.Containers { + if engine.Engine == "ollama" { + if engine.State != "running" { + retval = append(retval, Model{Ip: engine.IP, Port: engine.Port, State: "stopped", Engine: "ollama"}) + } else { + url := fmt.Sprintf("http://%s:%d/api/tags", engine.IP, engine.Port) + resp, err := http.Get(url) + if err != nil { + return Models{}, fmt.Errorf("failed to get %s: %v", url, err) + } + defer resp.Body.Close() - body, err := io.ReadAll(resp.Body) - if err != nil { - return Models{}, fmt.Errorf("failed to read body: %v", err) - } + body, err := io.ReadAll(resp.Body) + if err != nil { + return Models{}, fmt.Errorf("failed to read body: %v", err) + } - mods := Models{} - err = json.Unmarshal(body, &mods) - if err != nil { - return Models{}, fmt.Errorf("failed to unmarshal JSON: %v", err) - } + mods := Models{} + err = json.Unmarshal(body, &mods) + if err != nil { + return Models{}, fmt.Errorf("failed to unmarshal JSON: %v", err) + } - for n := range mods.Models { - mods.Models[n].Ip = ollama.IP - mods.Models[n].Port = ollama.Port - mods.Models[n].State = "running" - mods.Models[n].Container = ollama.Name - fmt.Printf("mod: %s - %s:%d\n", mods.Models[n].Name, mods.Models[n].Ip, mods.Models[n].Port) - } + for n := range mods.Models { + mods.Models[n].Ip = engine.IP + mods.Models[n].Port = engine.Port + mods.Models[n].State = "running" + mods.Models[n].Container = engine.Name + mods.Models[n].Engine = "ollama" + fmt.Printf("mod: %s - %s:%d\n", mods.Models[n].Name, mods.Models[n].Ip, mods.Models[n].Port) + } - retval = append(retval, mods.Models...) + retval = append(retval, mods.Models...) + } + } else if engine.Engine == "vllm" { + if engine.State != "running" { + retval = append(retval, Model{Ip: engine.IP, Port: engine.Port, State: "stopped", Engine: "vllm"}) + } else { + url := fmt.Sprintf("http://%s:%d/v1/models", engine.IP, engine.Port) + resp, err := http.Get(url) + if err != nil { + return Models{}, fmt.Errorf("failed to get %s: %v", url, err) + } + defer resp.Body.Close() + + body, err := io.ReadAll(resp.Body) + if err != nil { + return Models{}, fmt.Errorf("failed to read body: %v", err) + } + + vllm := Vllm{} + err = json.Unmarshal(body, &vllm) + if err != nil { + return Models{}, fmt.Errorf("failed to unmarshal JSON: %v", err) + } + + mods := Models{} + mods.Models = make([]Model, len(vllm.Data)) + + for n := range vllm.Data { + mods.Models[n].Name = vllm.Data[n].ID + mods.Models[n].Ip = engine.IP + mods.Models[n].Port = engine.Port + mods.Models[n].State = "running" + mods.Models[n].Container = engine.Name + mods.Models[n].Engine = "vllm" + fmt.Printf("mod: %s - %s:%d\n", mods.Models[n].Name, mods.Models[n].Ip, mods.Models[n].Port) + } + + retval = append(retval, mods.Models...) + } } } diff --git a/hosts.cfg b/hosts.cfg index 6e06d41..232c6b3 100644 --- a/hosts.cfg +++ b/hosts.cfg @@ -9,3 +9,4 @@ 192.168.55.10:2375,192.168.55.15:2375 192.168.55.13:2375 +192.168.55.14:2375 diff --git a/static/_app/immutable/chunks/entry.34uOwJQj.js b/static/_app/immutable/chunks/entry.34uOwJQj.js deleted file mode 100644 index 99fe0ec..0000000 --- a/static/_app/immutable/chunks/entry.34uOwJQj.js +++ /dev/null @@ -1,3 +0,0 @@ -import{n as lt,s as le,t as fe}from"./scheduler.D9xsQs6S.js";new URL("sveltekit-internal://");function ue(t,n){return t==="/"||n==="ignore"?t:n==="never"?t.endsWith("/")?t.slice(0,-1):t:n==="always"&&!t.endsWith("/")?t+"/":t}function de(t){return t.split("%25").map(decodeURI).join("%25")}function he(t){for(const n in t)t[n]=decodeURIComponent(t[n]);return t}function ft({href:t}){return t.split("#")[0]}const pe=["href","pathname","search","toString","toJSON"];function ge(t,n,e){const a=new URL(t);Object.defineProperty(a,"searchParams",{value:new Proxy(a.searchParams,{get(r,o){if(o==="get"||o==="getAll"||o==="has")return s=>(e(s),r[o](s));n();const i=Reflect.get(r,o);return typeof i=="function"?i.bind(r):i}}),enumerable:!0,configurable:!0});for(const r of pe)Object.defineProperty(a,r,{get(){return n(),t[r]},enumerable:!0,configurable:!0});return a}const me="/__data.json",_e=".html__data.json";function ye(t){return t.endsWith(".html")?t.replace(/\.html$/,_e):t.replace(/\/$/,"")+me}function we(...t){let n=5381;for(const e of t)if(typeof e=="string"){let a=e.length;for(;a;)n=n*33^e.charCodeAt(--a)}else if(ArrayBuffer.isView(e)){const a=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);let r=a.length;for(;r;)n=n*33^a[--r]}else throw new TypeError("value must be a string or TypedArray");return(n>>>0).toString(36)}function ve(t){const n=atob(t),e=new Uint8Array(n.length);for(let a=0;a((t instanceof Request?t.method:(n==null?void 0:n.method)||"GET")!=="GET"&&G.delete(mt(t)),Vt(t,n));const G=new Map;function be(t,n){const e=mt(t,n),a=document.querySelector(e);if(a!=null&&a.textContent){let{body:r,...o}=JSON.parse(a.textContent);const i=a.getAttribute("data-ttl");return i&&G.set(e,{body:r,init:o,ttl:1e3*Number(i)}),a.getAttribute("data-b64")!==null&&(r=ve(r)),Promise.resolve(new Response(r,o))}return window.fetch(t,n)}function Ee(t,n,e){if(G.size>0){const a=mt(t,e),r=G.get(a);if(r){if(performance.now(){const r=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(a);if(r)return n.push({name:r[1],matcher:r[2],optional:!1,rest:!0,chained:!0}),"(?:/(.*))?";const o=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(a);if(o)return n.push({name:o[1],matcher:o[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!a)return;const i=a.split(/\[(.+?)\](?!\])/);return"/"+i.map((c,l)=>{if(l%2){if(c.startsWith("x+"))return ut(String.fromCharCode(parseInt(c.slice(2),16)));if(c.startsWith("u+"))return ut(String.fromCharCode(...c.slice(2).split("-").map(f=>parseInt(f,16))));const u=ke.exec(c),[,h,g,d,_]=u;return n.push({name:d,matcher:_,optional:!!h,rest:!!g,chained:g?l===1&&i[0]==="":!1}),g?"(.*?)":h?"([^/]*)?":"([^/]+?)"}return ut(c)}).join("")}).join("")}/?$`),params:n}}function Ae(t){return!/^\([^)]+\)$/.test(t)}function Re(t){return t.slice(1).split("/").filter(Ae)}function Ie(t,n,e){const a={},r=t.slice(1),o=r.filter(s=>s!==void 0);let i=0;for(let s=0;su).join("/"),i=0),l===void 0){c.rest&&(a[c.name]="");continue}if(!c.matcher||e[c.matcher](l)){a[c.name]=l;const u=n[s+1],h=r[s+1];u&&!u.rest&&u.optional&&h&&c.chained&&(i=0),!u&&!h&&Object.keys(a).length===o.length&&(i=0);continue}if(c.optional&&c.chained){i++;continue}return}if(!i)return a}function ut(t){return t.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Le({nodes:t,server_loads:n,dictionary:e,matchers:a}){const r=new Set(n);return Object.entries(e).map(([s,[c,l,u]])=>{const{pattern:h,params:g}=Se(s),d={id:s,exec:_=>{const f=h.exec(_);if(f)return Ie(f,g,a)},errors:[1,...u||[]].map(_=>t[_]),layouts:[0,...l||[]].map(i),leaf:o(c)};return d.errors.length=d.layouts.length=Math.max(d.errors.length,d.layouts.length),d});function o(s){const c=s<0;return c&&(s=~s),[c,t[s]]}function i(s){return s===void 0?s:[r.has(s),t[s]]}}function Ft(t,n=JSON.parse){try{return n(sessionStorage[t])}catch{}}function Pt(t,n,e=JSON.stringify){const a=e(n);try{sessionStorage[t]=a}catch{}}const O=[];function _t(t,n=lt){let e;const a=new Set;function r(s){if(le(t,s)&&(t=s,e)){const c=!O.length;for(const l of a)l[1](),O.push(l,t);if(c){for(let l=0;l{a.delete(l),a.size===0&&e&&(e(),e=null)}}return{set:r,update:o,subscribe:i}}var Dt;const P=((Dt=globalThis.__sveltekit_1gocnci)==null?void 0:Dt.base)??"";var Ct;const Pe=((Ct=globalThis.__sveltekit_1gocnci)==null?void 0:Ct.assets)??P,Te="1718274879681",qt="sveltekit:snapshot",Gt="sveltekit:scroll",Mt="sveltekit:states",Ue="sveltekit:pageurl",D="sveltekit:history",H="sveltekit:navigation",J={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},z=location.origin;function Ht(t){if(t instanceof URL)return t;let n=document.baseURI;if(!n){const e=document.getElementsByTagName("base");n=e.length?e[0].href:document.URL}return new URL(t,n)}function yt(){return{x:pageXOffset,y:pageYOffset}}function j(t,n){return t.getAttribute(`data-sveltekit-${n}`)}const Tt={...J,"":J.hover};function Bt(t){let n=t.assignedSlot??t.parentNode;return(n==null?void 0:n.nodeType)===11&&(n=n.host),n}function Kt(t,n){for(;t&&t!==n;){if(t.nodeName.toUpperCase()==="A"&&t.hasAttribute("href"))return t;t=Bt(t)}}function ht(t,n){let e;try{e=new URL(t instanceof SVGAElement?t.href.baseVal:t.href,document.baseURI)}catch{}const a=t instanceof SVGAElement?t.target.baseVal:t.target,r=!e||!!a||at(e,n)||(t.getAttribute("rel")||"").split(/\s+/).includes("external"),o=(e==null?void 0:e.origin)===z&&t.hasAttribute("download");return{url:e,external:r,target:a,download:o}}function W(t){let n=null,e=null,a=null,r=null,o=null,i=null,s=t;for(;s&&s!==document.documentElement;)a===null&&(a=j(s,"preload-code")),r===null&&(r=j(s,"preload-data")),n===null&&(n=j(s,"keepfocus")),e===null&&(e=j(s,"noscroll")),o===null&&(o=j(s,"reload")),i===null&&(i=j(s,"replacestate")),s=Bt(s);function c(l){switch(l){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:Tt[a??"off"],preload_data:Tt[r??"off"],keepfocus:c(n),noscroll:c(e),reload:c(o),replace_state:c(i)}}function Ut(t){const n=_t(t);let e=!0;function a(){e=!0,n.update(i=>i)}function r(i){e=!1,n.set(i)}function o(i){let s;return n.subscribe(c=>{(s===void 0||e&&c!==s)&&i(s=c)})}return{notify:a,set:r,subscribe:o}}function xe(){const{set:t,subscribe:n}=_t(!1);let e;async function a(){clearTimeout(e);try{const r=await fetch(`${Pe}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!r.ok)return!1;const i=(await r.json()).version!==Te;return i&&(t(!0),clearTimeout(e)),i}catch{return!1}}return{subscribe:n,check:a}}function at(t,n){return t.origin!==z||!t.pathname.startsWith(n)}const Ne=-1,Oe=-2,je=-3,$e=-4,De=-5,Ce=-6;function Ve(t,n){if(typeof t=="number")return r(t,!0);if(!Array.isArray(t)||t.length===0)throw new Error("Invalid input");const e=t,a=Array(e.length);function r(o,i=!1){if(o===Ne)return;if(o===je)return NaN;if(o===$e)return 1/0;if(o===De)return-1/0;if(o===Ce)return-0;if(i)throw new Error("Invalid input");if(o in a)return a[o];const s=e[o];if(!s||typeof s!="object")a[o]=s;else if(Array.isArray(s))if(typeof s[0]=="string"){const c=s[0],l=n==null?void 0:n[c];if(l)return a[o]=l(r(s[1]));switch(c){case"Date":a[o]=new Date(s[1]);break;case"Set":const u=new Set;a[o]=u;for(let d=1;dn!=null)}class rt{constructor(n,e){this.status=n,typeof e=="string"?this.body={message:e}:e?this.body=e:this.body={message:`Error: ${n}`}}toString(){return JSON.stringify(this.body)}}class Yt{constructor(n,e){this.status=n,this.location=e}}class wt extends Error{constructor(n,e,a){super(a),this.status=n,this.text=e}}const Ge="x-sveltekit-invalidated",Me="x-sveltekit-trailing-slash";function X(t){return t instanceof rt||t instanceof wt?t.status:500}function He(t){return t instanceof wt?t.text:"Internal Error"}const N=Ft(Gt)??{},B=Ft(qt)??{},U={url:Ut({}),page:Ut({}),navigating:_t(null),updated:xe()};function vt(t){N[t]=yt()}function Be(t,n){let e=t+1;for(;N[e];)delete N[e],e+=1;for(e=n+1;B[e];)delete B[e],e+=1}function V(t){return location.href=t.href,new Promise(()=>{})}function xt(){}let ot,pt,Z,T,gt,F;const Jt=[],Q=[];let R=null;const Wt=[],Ke=[];let $=[],y={branch:[],error:null,url:null},bt=!1,tt=!1,Nt=!0,K=!1,q=!1,Xt=!1,Et=!1,kt,S,L,I,et;const M=new Set;async function an(t,n,e){var r,o;document.URL!==location.href&&(location.href=location.href),F=t,ot=Le(t),T=document.documentElement,gt=n,pt=t.nodes[0],Z=t.nodes[1],pt(),Z(),S=(r=history.state)==null?void 0:r[D],L=(o=history.state)==null?void 0:o[H],S||(S=L=Date.now(),history.replaceState({...history.state,[D]:S,[H]:L},""));const a=N[S];a&&(history.scrollRestoration="manual",scrollTo(a.x,a.y)),e?await tn(gt,e):Ze(location.href,{replaceState:!0}),Qe()}function ze(){Jt.length=0,Et=!1}function Zt(t){Q.some(n=>n==null?void 0:n.snapshot)&&(B[t]=Q.map(n=>{var e;return(e=n==null?void 0:n.snapshot)==null?void 0:e.capture()}))}function Qt(t){var n;(n=B[t])==null||n.forEach((e,a)=>{var r,o;(o=(r=Q[a])==null?void 0:r.snapshot)==null||o.restore(e)})}function Ot(){vt(S),Pt(Gt,N),Zt(L),Pt(qt,B)}async function te(t,n,e,a){return Y({type:"goto",url:Ht(t),keepfocus:n.keepFocus,noscroll:n.noScroll,replace_state:n.replaceState,state:n.state,redirect_count:e,nav_token:a,accept:()=>{n.invalidateAll&&(Et=!0)}})}async function Ye(t){if(t.id!==(R==null?void 0:R.id)){const n={};M.add(n),R={id:t.id,token:n,promise:ne({...t,preload:n}).then(e=>(M.delete(n),e.type==="loaded"&&e.state.error&&(R=null),e))}}return R.promise}async function dt(t){const n=ot.find(e=>e.exec(ae(t)));n&&await Promise.all([...n.layouts,n.leaf].map(e=>e==null?void 0:e[1]()))}function ee(t,n,e){var o;y=t.state;const a=document.querySelector("style[data-sveltekit]");a&&a.remove(),I=t.props.page,kt=new F.root({target:n,props:{...t.props,stores:U,components:Q},hydrate:e}),Qt(L);const r={from:null,to:{params:y.params,route:{id:((o=y.route)==null?void 0:o.id)??null},url:new URL(location.href)},willUnload:!1,type:"enter",complete:Promise.resolve()};$.forEach(i=>i(r)),tt=!0}async function nt({url:t,params:n,branch:e,status:a,error:r,route:o,form:i}){let s="never";if(P&&(t.pathname===P||t.pathname===P+"/"))s="always";else for(const d of e)(d==null?void 0:d.slash)!==void 0&&(s=d.slash);t.pathname=ue(t.pathname,s),t.search=t.search;const c={type:"loaded",state:{url:t,params:n,branch:e,error:r,route:o},props:{constructors:qe(e).map(d=>d.node.component),page:I}};i!==void 0&&(c.props.form=i);let l={},u=!I,h=0;for(let d=0;d(s&&(c.route=!0),f[m])}),params:new Proxy(a,{get:(f,m)=>(s&&c.params.add(m),f[m])}),data:(o==null?void 0:o.data)??null,url:ge(e,()=>{s&&(c.url=!0)},f=>{s&&c.search_params.add(f)}),async fetch(f,m){let b;f instanceof Request?(b=f.url,m={body:f.method==="GET"||f.method==="HEAD"?void 0:await f.blob(),cache:f.cache,credentials:f.credentials,headers:f.headers,integrity:f.integrity,keepalive:f.keepalive,method:f.method,mode:f.mode,redirect:f.redirect,referrer:f.referrer,referrerPolicy:f.referrerPolicy,signal:f.signal,...m}):b=f;const A=new URL(b,e);return s&&d(A.href),A.origin===e.origin&&(b=A.href.slice(e.origin.length)),tt?Ee(b,A.href,m):be(b,m)},setHeaders:()=>{},depends:d,parent(){return s&&(c.parent=!0),n()},untrack(f){s=!1;try{return f()}finally{s=!0}}};i=await l.universal.load.call(null,_)??null}return{node:l,loader:t,server:o,universal:(h=l.universal)!=null&&h.load?{type:"data",data:i,uses:c}:null,data:i??(o==null?void 0:o.data)??null,slash:((g=l.universal)==null?void 0:g.trailingSlash)??(o==null?void 0:o.slash)}}function jt(t,n,e,a,r,o){if(Et)return!0;if(!r)return!1;if(r.parent&&t||r.route&&n||r.url&&e)return!0;for(const i of r.search_params)if(a.has(i))return!0;for(const i of r.params)if(o[i]!==y.params[i])return!0;for(const i of r.dependencies)if(Jt.some(s=>s(new URL(i))))return!0;return!1}function At(t,n){return(t==null?void 0:t.type)==="data"?t:(t==null?void 0:t.type)==="skip"?n??null:null}function Je(t,n){if(!t)return new Set(n.searchParams.keys());const e=new Set([...t.searchParams.keys(),...n.searchParams.keys()]);for(const a of e){const r=t.searchParams.getAll(a),o=n.searchParams.getAll(a);r.every(i=>o.includes(i))&&o.every(i=>r.includes(i))&&e.delete(a)}return e}function $t({error:t,url:n,route:e,params:a}){return{type:"loaded",state:{error:t,url:n,route:e,params:a,branch:[]},props:{page:I,constructors:[]}}}async function ne({id:t,invalidating:n,url:e,params:a,route:r,preload:o}){if((R==null?void 0:R.id)===t)return M.delete(R.token),R.promise;const{errors:i,layouts:s,leaf:c}=r,l=[...s,c];i.forEach(p=>p==null?void 0:p().catch(()=>{})),l.forEach(p=>p==null?void 0:p[1]().catch(()=>{}));let u=null;const h=y.url?t!==y.url.pathname+y.url.search:!1,g=y.route?r.id!==y.route.id:!1,d=Je(y.url,e);let _=!1;const f=l.map((p,v)=>{var x;const E=y.branch[v],k=!!(p!=null&&p[0])&&((E==null?void 0:E.loader)!==p[1]||jt(_,g,h,d,(x=E.server)==null?void 0:x.uses,a));return k&&(_=!0),k});if(f.some(Boolean)){try{u=await se(e,f)}catch(p){const v=await C(p,{url:e,params:a,route:{id:t}});return M.has(o)?$t({error:v,url:e,params:a,route:r}):st({status:X(p),error:v,url:e,route:r})}if(u.type==="redirect")return u}const m=u==null?void 0:u.nodes;let b=!1;const A=l.map(async(p,v)=>{var it;if(!p)return;const E=y.branch[v],k=m==null?void 0:m[v];if((!k||k.type==="skip")&&p[1]===(E==null?void 0:E.loader)&&!jt(b,g,h,d,(it=E.universal)==null?void 0:it.uses,a))return E;if(b=!0,(k==null?void 0:k.type)==="error")throw k;return St({loader:p[1],url:e,params:a,route:r,parent:async()=>{var Lt;const It={};for(let ct=0;ct{});const w=[];for(let p=0;pPromise.resolve({}),server_data_node:At(o)}),c={node:await Z(),loader:Z,universal:null,server:null,data:null};return await nt({url:e,params:r,branch:[s,c],status:t,error:n,route:null})}function Rt(t,n){if(!t||at(t,P))return;let e;try{e=F.hooks.reroute({url:new URL(t)})??t.pathname}catch{return}const a=ae(e);for(const r of ot){const o=r.exec(a);if(o)return{id:t.pathname+t.search,invalidating:n,route:r,params:he(o),url:t}}}function ae(t){return de(t.slice(P.length)||"/")}function re({url:t,type:n,intent:e,delta:a}){let r=!1;const o=ce(y,e,t,n);a!==void 0&&(o.navigation.delta=a);const i={...o.navigation,cancel:()=>{r=!0,o.reject(new Error("navigation cancelled"))}};return K||Wt.forEach(s=>s(i)),r?null:o}async function Y({type:t,url:n,popped:e,keepfocus:a,noscroll:r,replace_state:o,state:i={},redirect_count:s=0,nav_token:c={},accept:l=xt,block:u=xt}){const h=Rt(n,!1),g=re({url:n,type:t,delta:e==null?void 0:e.delta,intent:h});if(!g){u();return}const d=S,_=L;l(),K=!0,tt&&U.navigating.set(g.navigation),et=c;let f=h&&await ne(h);if(!f){if(at(n,P))return await V(n);f=await oe(n,{id:null},await C(new wt(404,"Not Found",`Not found: ${n.pathname}`),{url:n,params:{},route:{id:null}}),404)}if(n=(h==null?void 0:h.url)||n,et!==c)return g.reject(new Error("navigation aborted")),!1;if(f.type==="redirect")if(s>=20)f=await st({status:500,error:await C(new Error("Redirect loop"),{url:n,params:{},route:{id:null}}),url:n,route:{id:null}});else return te(new URL(f.location,n).href,{},s+1,c),!1;else f.props.page.status>=400&&await U.updated.check()&&await V(n);if(ze(),vt(d),Zt(_),f.props.page.url.pathname!==n.pathname&&(n.pathname=f.props.page.url.pathname),i=e?e.state:i,!e){const w=o?0:1,p={[D]:S+=w,[H]:L+=w,[Mt]:i};(o?history.replaceState:history.pushState).call(history,p,"",n),o||Be(S,L)}if(R=null,f.props.page.state=i,tt){y=f.state,f.props.page&&(f.props.page.url=n);const w=(await Promise.all(Ke.map(p=>p(g.navigation)))).filter(p=>typeof p=="function");if(w.length>0){let p=function(){$=$.filter(v=>!w.includes(v))};w.push(p),$.push(...w)}kt.$set(f.props),Xt=!0}else ee(f,gt,!1);const{activeElement:m}=document;await fe();const b=e?e.scroll:r?yt():null;if(Nt){const w=n.hash&&document.getElementById(decodeURIComponent(n.hash.slice(1)));b?scrollTo(b.x,b.y):w?w.scrollIntoView():scrollTo(0,0)}const A=document.activeElement!==m&&document.activeElement!==document.body;!a&&!A&&en(),Nt=!0,f.props.page&&(I=f.props.page),K=!1,t==="popstate"&&Qt(L),g.fulfil(void 0),$.forEach(w=>w(g.navigation)),U.navigating.set(null)}async function oe(t,n,e,a){return t.origin===z&&t.pathname===location.pathname&&!bt?await st({status:a,error:e,url:t,route:n}):await V(t)}function Xe(){let t;T.addEventListener("mousemove",o=>{const i=o.target;clearTimeout(t),t=setTimeout(()=>{a(i,2)},20)});function n(o){a(o.composedPath()[0],1)}T.addEventListener("mousedown",n),T.addEventListener("touchstart",n,{passive:!0});const e=new IntersectionObserver(o=>{for(const i of o)i.isIntersecting&&(dt(i.target.href),e.unobserve(i.target))},{threshold:0});function a(o,i){const s=Kt(o,T);if(!s)return;const{url:c,external:l,download:u}=ht(s,P);if(l||u)return;const h=W(s);if(!h.reload)if(i<=h.preload_data){const g=Rt(c,!1);g&&Ye(g)}else i<=h.preload_code&&dt(c.pathname)}function r(){e.disconnect();for(const o of T.querySelectorAll("a")){const{url:i,external:s,download:c}=ht(o,P);if(s||c)continue;const l=W(o);l.reload||(l.preload_code===J.viewport&&e.observe(o),l.preload_code===J.eager&&dt(i.pathname))}}$.push(r),r()}function C(t,n){if(t instanceof rt)return t.body;const e=X(t),a=He(t);return F.hooks.handleError({error:t,event:n,status:e,message:a})??{message:a}}function Ze(t,n={}){return t=Ht(t),t.origin!==z?Promise.reject(new Error("goto: invalid URL")):te(t,n,0)}function Qe(){var n;history.scrollRestoration="manual",addEventListener("beforeunload",e=>{let a=!1;if(Ot(),!K){const r=ce(y,void 0,null,"leave"),o={...r.navigation,cancel:()=>{a=!0,r.reject(new Error("navigation cancelled"))}};Wt.forEach(i=>i(o))}a?(e.preventDefault(),e.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&Ot()}),(n=navigator.connection)!=null&&n.saveData||Xe(),T.addEventListener("click",async e=>{var g;if(e.button||e.which!==1||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.defaultPrevented)return;const a=Kt(e.composedPath()[0],T);if(!a)return;const{url:r,external:o,target:i,download:s}=ht(a,P);if(!r)return;if(i==="_parent"||i==="_top"){if(window.parent!==window)return}else if(i&&i!=="_self")return;const c=W(a);if(!(a instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol==="https:"||r.protocol==="http:")||s)return;if(o||c.reload){re({url:r,type:"link"})?K=!0:e.preventDefault();return}const[u,h]=r.href.split("#");if(h!==void 0&&u===ft(location)){const[,d]=y.url.href.split("#");if(d===h){e.preventDefault(),h===""||h==="top"&&a.ownerDocument.getElementById("top")===null?window.scrollTo({top:0}):(g=a.ownerDocument.getElementById(h))==null||g.scrollIntoView();return}if(q=!0,vt(S),t(r),!c.replace_state)return;q=!1}e.preventDefault(),await new Promise(d=>{requestAnimationFrame(()=>{setTimeout(d,0)}),setTimeout(d,100)}),Y({type:"link",url:r,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??r.href===location.href})}),T.addEventListener("submit",e=>{if(e.defaultPrevented)return;const a=HTMLFormElement.prototype.cloneNode.call(e.target),r=e.submitter;if(((r==null?void 0:r.formMethod)||a.method)!=="get")return;const i=new URL((r==null?void 0:r.hasAttribute("formaction"))&&(r==null?void 0:r.formAction)||a.action);if(at(i,P))return;const s=e.target,c=W(s);if(c.reload)return;e.preventDefault(),e.stopPropagation();const l=new FormData(s),u=r==null?void 0:r.getAttribute("name");u&&l.append(u,(r==null?void 0:r.getAttribute("value"))??""),i.search=new URLSearchParams(l).toString(),Y({type:"form",url:i,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??i.href===location.href})}),addEventListener("popstate",async e=>{var a;if((a=e.state)!=null&&a[D]){const r=e.state[D];if(et={},r===S)return;const o=N[r],i=e.state[Mt]??{},s=new URL(e.state[Ue]??location.href),c=e.state[H],l=ft(location)===ft(y.url);if(c===L&&(Xt||l)){t(s),N[S]=yt(),o&&scrollTo(o.x,o.y),i!==I.state&&(I={...I,state:i},kt.$set({page:I})),S=r;return}const h=r-S;await Y({type:"popstate",url:s,popped:{state:i,scroll:o,delta:h},accept:()=>{S=r,L=c},block:()=>{history.go(-h)},nav_token:et})}else if(!q){const r=new URL(location.href);t(r)}}),addEventListener("hashchange",()=>{q&&(q=!1,history.replaceState({...history.state,[D]:++S,[H]:L},"",location.href))});for(const e of document.querySelectorAll("link"))e.rel==="icon"&&(e.href=e.href);addEventListener("pageshow",e=>{e.persisted&&U.navigating.set(null)});function t(e){y.url=e,U.page.set({...I,url:e}),U.page.notify()}}async function tn(t,{status:n=200,error:e,node_ids:a,params:r,route:o,data:i,form:s}){bt=!0;const c=new URL(location.href);({params:r={},route:o={id:null}}=Rt(c,!1)||{});let l;try{const u=a.map(async(d,_)=>{const f=i[_];return f!=null&&f.uses&&(f.uses=ie(f.uses)),St({loader:F.nodes[d],url:c,params:r,route:o,parent:async()=>{const m={};for(let b=0;b<_;b+=1)Object.assign(m,(await u[b]).data);return m},server_data_node:At(f)})}),h=await Promise.all(u),g=ot.find(({id:d})=>d===o.id);if(g){const d=g.layouts;for(let _=0;_o?"1":"0").join(""));const a=await Vt(e.href);if(!a.ok){let o;throw(r=a.headers.get("content-type"))!=null&&r.includes("application/json")?o=await a.json():a.status===404?o="Not Found":a.status===500&&(o="Internal Error"),new rt(a.status,o)}return new Promise(async o=>{var h;const i=new Map,s=a.body.getReader(),c=new TextDecoder;function l(g){return Ve(g,{Promise:d=>new Promise((_,f)=>{i.set(d,{fulfil:_,reject:f})})})}let u="";for(;;){const{done:g,value:d}=await s.read();if(g&&!u)break;for(u+=!d&&u?` -`:c.decode(d,{stream:!0});;){const _=u.indexOf(` -`);if(_===-1)break;const f=JSON.parse(u.slice(0,_));if(u=u.slice(_+1),f.type==="redirect")return o(f);if(f.type==="data")(h=f.nodes)==null||h.forEach(m=>{(m==null?void 0:m.type)==="data"&&(m.uses=ie(m.uses),m.data=l(m.data))}),o(f);else if(f.type==="chunk"){const{id:m,data:b,error:A}=f,w=i.get(m);i.delete(m),A?w.reject(l(A)):w.fulfil(l(b))}}}})}function ie(t){return{dependencies:new Set((t==null?void 0:t.dependencies)??[]),params:new Set((t==null?void 0:t.params)??[]),parent:!!(t!=null&&t.parent),route:!!(t!=null&&t.route),url:!!(t!=null&&t.url),search_params:new Set((t==null?void 0:t.search_params)??[])}}function en(){const t=document.querySelector("[autofocus]");if(t)t.focus();else{const n=document.body,e=n.getAttribute("tabindex");n.tabIndex=-1,n.focus({preventScroll:!0,focusVisible:!1}),e!==null?n.setAttribute("tabindex",e):n.removeAttribute("tabindex");const a=getSelection();if(a&&a.type!=="None"){const r=[];for(let o=0;o{if(a.rangeCount===r.length){for(let o=0;o{r=u,o=h});return i.catch(()=>{}),{navigation:{from:{params:t.params,route:{id:((c=t.route)==null?void 0:c.id)??null},url:t.url},to:e&&{params:(n==null?void 0:n.params)??null,route:{id:((l=n==null?void 0:n.route)==null?void 0:l.id)??null},url:e},willUnload:!n,type:a,complete:i},fulfil:r,reject:o}}export{an as a,U as s}; diff --git a/static/_app/immutable/chunks/entry.34uOwJQj.js.br b/static/_app/immutable/chunks/entry.34uOwJQj.js.br deleted file mode 100644 index 2be12ba..0000000 Binary files a/static/_app/immutable/chunks/entry.34uOwJQj.js.br and /dev/null differ diff --git a/static/_app/immutable/chunks/entry.34uOwJQj.js.gz b/static/_app/immutable/chunks/entry.34uOwJQj.js.gz deleted file mode 100644 index 873dd70..0000000 Binary files a/static/_app/immutable/chunks/entry.34uOwJQj.js.gz and /dev/null differ diff --git a/static/_app/immutable/entry/app.BUn2_CVn.js b/static/_app/immutable/entry/app.BUn2_CVn.js deleted file mode 100644 index c678961..0000000 --- a/static/_app/immutable/entry/app.BUn2_CVn.js +++ /dev/null @@ -1,2 +0,0 @@ -const __vite__fileDeps=["../nodes/0.DpoNe3AF.js","../chunks/scheduler.D9xsQs6S.js","../chunks/index.B2LhTP1n.js","../nodes/1.DgcYxlIK.js","../chunks/entry.34uOwJQj.js","../nodes/2.-Hdt9aq9.js"],__vite__mapDeps=i=>i.map(i=>__vite__fileDeps[i]); -import{s as V,e as B,o as U,f as A,t as j}from"../chunks/scheduler.D9xsQs6S.js";import{S as z,i as W,s as F,q as d,a as G,j as k,k as p,r as L,t as w,d as g,e as H,c as J,m as K,b as q,u as h,l as Q,n as X,o as Y,v as S,w as E,x as y,y as D,z as R,A as P}from"../chunks/index.B2LhTP1n.js";const Z="modulepreload",M=function(a,e){return new URL(a,e).href},I={},C=function(e,n,i){let s=Promise.resolve();if(n&&n.length>0){const u=document.getElementsByTagName("link"),t=document.querySelector("meta[property=csp-nonce]"),r=(t==null?void 0:t.nonce)||(t==null?void 0:t.getAttribute("nonce"));s=Promise.all(n.map(o=>{if(o=M(o,i),o in I)return;I[o]=!0;const f=o.endsWith(".css"),l=f?'[rel="stylesheet"]':"";if(!!i)for(let b=u.length-1;b>=0;b--){const v=u[b];if(v.href===o&&(!f||v.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${o}"]${l}`))return;const _=document.createElement("link");if(_.rel=f?"stylesheet":Z,f||(_.as="script",_.crossOrigin=""),_.href=o,r&&_.setAttribute("nonce",r),document.head.appendChild(_),f)return new Promise((b,v)=>{_.addEventListener("load",b),_.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${o}`)))})}))}return s.then(()=>e()).catch(u=>{const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=u,window.dispatchEvent(t),!t.defaultPrevented)throw u})},re={};function $(a){let e,n,i;var s=a[1][0];function u(t,r){return{props:{data:t[3],form:t[2]}}}return s&&(e=E(s,u(a)),a[12](e)),{c(){e&&y(e.$$.fragment),n=d()},l(t){e&&D(e.$$.fragment,t),n=d()},m(t,r){e&&R(e,t,r),k(t,n,r),i=!0},p(t,r){if(r&2&&s!==(s=t[1][0])){if(e){S();const o=e;p(o.$$.fragment,1,0,()=>{P(o,1)}),L()}s?(e=E(s,u(t)),t[12](e),y(e.$$.fragment),w(e.$$.fragment,1),R(e,n.parentNode,n)):e=null}else if(s){const o={};r&8&&(o.data=t[3]),r&4&&(o.form=t[2]),e.$set(o)}},i(t){i||(e&&w(e.$$.fragment,t),i=!0)},o(t){e&&p(e.$$.fragment,t),i=!1},d(t){t&&g(n),a[12](null),e&&P(e,t)}}}function x(a){let e,n,i;var s=a[1][0];function u(t,r){return{props:{data:t[3],$$slots:{default:[ee]},$$scope:{ctx:t}}}}return s&&(e=E(s,u(a)),a[11](e)),{c(){e&&y(e.$$.fragment),n=d()},l(t){e&&D(e.$$.fragment,t),n=d()},m(t,r){e&&R(e,t,r),k(t,n,r),i=!0},p(t,r){if(r&2&&s!==(s=t[1][0])){if(e){S();const o=e;p(o.$$.fragment,1,0,()=>{P(o,1)}),L()}s?(e=E(s,u(t)),t[11](e),y(e.$$.fragment),w(e.$$.fragment,1),R(e,n.parentNode,n)):e=null}else if(s){const o={};r&8&&(o.data=t[3]),r&8215&&(o.$$scope={dirty:r,ctx:t}),e.$set(o)}},i(t){i||(e&&w(e.$$.fragment,t),i=!0)},o(t){e&&p(e.$$.fragment,t),i=!1},d(t){t&&g(n),a[11](null),e&&P(e,t)}}}function ee(a){let e,n,i;var s=a[1][1];function u(t,r){return{props:{data:t[4],form:t[2]}}}return s&&(e=E(s,u(a)),a[10](e)),{c(){e&&y(e.$$.fragment),n=d()},l(t){e&&D(e.$$.fragment,t),n=d()},m(t,r){e&&R(e,t,r),k(t,n,r),i=!0},p(t,r){if(r&2&&s!==(s=t[1][1])){if(e){S();const o=e;p(o.$$.fragment,1,0,()=>{P(o,1)}),L()}s?(e=E(s,u(t)),t[10](e),y(e.$$.fragment),w(e.$$.fragment,1),R(e,n.parentNode,n)):e=null}else if(s){const o={};r&16&&(o.data=t[4]),r&4&&(o.form=t[2]),e.$set(o)}},i(t){i||(e&&w(e.$$.fragment,t),i=!0)},o(t){e&&p(e.$$.fragment,t),i=!1},d(t){t&&g(n),a[10](null),e&&P(e,t)}}}function N(a){let e,n=a[6]&&O(a);return{c(){e=H("div"),n&&n.c(),this.h()},l(i){e=J(i,"DIV",{id:!0,"aria-live":!0,"aria-atomic":!0,style:!0});var s=K(e);n&&n.l(s),s.forEach(g),this.h()},h(){q(e,"id","svelte-announcer"),q(e,"aria-live","assertive"),q(e,"aria-atomic","true"),h(e,"position","absolute"),h(e,"left","0"),h(e,"top","0"),h(e,"clip","rect(0 0 0 0)"),h(e,"clip-path","inset(50%)"),h(e,"overflow","hidden"),h(e,"white-space","nowrap"),h(e,"width","1px"),h(e,"height","1px")},m(i,s){k(i,e,s),n&&n.m(e,null)},p(i,s){i[6]?n?n.p(i,s):(n=O(i),n.c(),n.m(e,null)):n&&(n.d(1),n=null)},d(i){i&&g(e),n&&n.d()}}}function O(a){let e;return{c(){e=Q(a[7])},l(n){e=X(n,a[7])},m(n,i){k(n,e,i)},p(n,i){i&128&&Y(e,n[7])},d(n){n&&g(e)}}}function te(a){let e,n,i,s,u;const t=[x,$],r=[];function o(l,m){return l[1][1]?0:1}e=o(a),n=r[e]=t[e](a);let f=a[5]&&N(a);return{c(){n.c(),i=F(),f&&f.c(),s=d()},l(l){n.l(l),i=G(l),f&&f.l(l),s=d()},m(l,m){r[e].m(l,m),k(l,i,m),f&&f.m(l,m),k(l,s,m),u=!0},p(l,[m]){let _=e;e=o(l),e===_?r[e].p(l,m):(S(),p(r[_],1,1,()=>{r[_]=null}),L(),n=r[e],n?n.p(l,m):(n=r[e]=t[e](l),n.c()),w(n,1),n.m(i.parentNode,i)),l[5]?f?f.p(l,m):(f=N(l),f.c(),f.m(s.parentNode,s)):f&&(f.d(1),f=null)},i(l){u||(w(n),u=!0)},o(l){p(n),u=!1},d(l){l&&(g(i),g(s)),r[e].d(l),f&&f.d(l)}}}function ne(a,e,n){let{stores:i}=e,{page:s}=e,{constructors:u}=e,{components:t=[]}=e,{form:r}=e,{data_0:o=null}=e,{data_1:f=null}=e;B(i.page.notify);let l=!1,m=!1,_=null;U(()=>{const c=i.page.subscribe(()=>{l&&(n(6,m=!0),j().then(()=>{n(7,_=document.title||"untitled page")}))});return n(5,l=!0),c});function b(c){A[c?"unshift":"push"](()=>{t[1]=c,n(0,t)})}function v(c){A[c?"unshift":"push"](()=>{t[0]=c,n(0,t)})}function T(c){A[c?"unshift":"push"](()=>{t[0]=c,n(0,t)})}return a.$$set=c=>{"stores"in c&&n(8,i=c.stores),"page"in c&&n(9,s=c.page),"constructors"in c&&n(1,u=c.constructors),"components"in c&&n(0,t=c.components),"form"in c&&n(2,r=c.form),"data_0"in c&&n(3,o=c.data_0),"data_1"in c&&n(4,f=c.data_1)},a.$$.update=()=>{a.$$.dirty&768&&i.page.set(s)},[t,u,r,o,f,l,m,_,i,s,b,v,T]}class oe extends z{constructor(e){super(),W(this,e,ne,te,V,{stores:8,page:9,constructors:1,components:0,form:2,data_0:3,data_1:4})}}const ae=[()=>C(()=>import("../nodes/0.DpoNe3AF.js"),__vite__mapDeps([0,1,2]),import.meta.url),()=>C(()=>import("../nodes/1.DgcYxlIK.js"),__vite__mapDeps([3,1,2,4]),import.meta.url),()=>C(()=>import("../nodes/2.-Hdt9aq9.js"),__vite__mapDeps([5,1,2]),import.meta.url)],le=[],fe={"/":[2]},ce={handleError:({error:a})=>{console.error(a)},reroute:()=>{}};export{fe as dictionary,ce as hooks,re as matchers,ae as nodes,oe as root,le as server_loads}; diff --git a/static/_app/immutable/entry/app.BUn2_CVn.js.br b/static/_app/immutable/entry/app.BUn2_CVn.js.br deleted file mode 100644 index c93047b..0000000 Binary files a/static/_app/immutable/entry/app.BUn2_CVn.js.br and /dev/null differ diff --git a/static/_app/immutable/entry/app.BUn2_CVn.js.gz b/static/_app/immutable/entry/app.BUn2_CVn.js.gz deleted file mode 100644 index 2b0b469..0000000 Binary files a/static/_app/immutable/entry/app.BUn2_CVn.js.gz and /dev/null differ diff --git a/static/_app/immutable/entry/start.iwPToE8J.js b/static/_app/immutable/entry/start.iwPToE8J.js deleted file mode 100644 index f5bf820..0000000 --- a/static/_app/immutable/entry/start.iwPToE8J.js +++ /dev/null @@ -1 +0,0 @@ -import{a as t}from"../chunks/entry.34uOwJQj.js";export{t as start}; diff --git a/static/_app/immutable/entry/start.iwPToE8J.js.br b/static/_app/immutable/entry/start.iwPToE8J.js.br deleted file mode 100644 index 632b7b3..0000000 --- a/static/_app/immutable/entry/start.iwPToE8J.js.br +++ /dev/null @@ -1,2 +0,0 @@ -‹!€import{a as t}from"../chunks/entry.34uOwJQj.js";export{t as start}; - \ No newline at end of file diff --git a/static/_app/immutable/entry/start.iwPToE8J.js.gz b/static/_app/immutable/entry/start.iwPToE8J.js.gz deleted file mode 100644 index 1e56bc3..0000000 Binary files a/static/_app/immutable/entry/start.iwPToE8J.js.gz and /dev/null differ diff --git a/static/_app/immutable/nodes/1.DgcYxlIK.js b/static/_app/immutable/nodes/1.DgcYxlIK.js deleted file mode 100644 index d8c8af7..0000000 --- a/static/_app/immutable/nodes/1.DgcYxlIK.js +++ /dev/null @@ -1 +0,0 @@ -import{s as S,n as _,d as x}from"../chunks/scheduler.D9xsQs6S.js";import{S as j,i as q,e as d,l as f,s as y,c as g,m as h,n as v,d as l,a as C,j as m,f as $,o as E}from"../chunks/index.B2LhTP1n.js";import{s as H}from"../chunks/entry.34uOwJQj.js";const P=()=>{const s=H;return{page:{subscribe:s.page.subscribe},navigating:{subscribe:s.navigating.subscribe},updated:s.updated}},k={subscribe(s){return P().page.subscribe(s)}};function w(s){var b;let t,r=s[0].status+"",o,n,i,c=((b=s[0].error)==null?void 0:b.message)+"",u;return{c(){t=d("h1"),o=f(r),n=y(),i=d("p"),u=f(c)},l(e){t=g(e,"H1",{});var a=h(t);o=v(a,r),a.forEach(l),n=C(e),i=g(e,"P",{});var p=h(i);u=v(p,c),p.forEach(l)},m(e,a){m(e,t,a),$(t,o),m(e,n,a),m(e,i,a),$(i,u)},p(e,[a]){var p;a&1&&r!==(r=e[0].status+"")&&E(o,r),a&1&&c!==(c=((p=e[0].error)==null?void 0:p.message)+"")&&E(u,c)},i:_,o:_,d(e){e&&(l(t),l(n),l(i))}}}function z(s,t,r){let o;return x(s,k,n=>r(0,o=n)),[o]}let F=class extends j{constructor(t){super(),q(this,t,z,w,S,{})}};export{F as component}; diff --git a/static/_app/immutable/nodes/1.DgcYxlIK.js.br b/static/_app/immutable/nodes/1.DgcYxlIK.js.br deleted file mode 100644 index dfeb541..0000000 Binary files a/static/_app/immutable/nodes/1.DgcYxlIK.js.br and /dev/null differ diff --git a/static/_app/immutable/nodes/1.DgcYxlIK.js.gz b/static/_app/immutable/nodes/1.DgcYxlIK.js.gz deleted file mode 100644 index dc4a2dc..0000000 Binary files a/static/_app/immutable/nodes/1.DgcYxlIK.js.gz and /dev/null differ diff --git a/static/_app/immutable/nodes/2.-Hdt9aq9.js b/static/_app/immutable/nodes/2.-Hdt9aq9.js deleted file mode 100644 index 2916b98..0000000 --- a/static/_app/immutable/nodes/2.-Hdt9aq9.js +++ /dev/null @@ -1 +0,0 @@ -import{s as X,n as J}from"../chunks/scheduler.D9xsQs6S.js";import{S as Z,i as $,e as v,s as S,c as b,g as K,a as k,m as D,d as m,b as w,j as P,f as d,p as x,l as z,n as C,o as A}from"../chunks/index.B2LhTP1n.js";function U(l){return(l==null?void 0:l.length)!==void 0?l:Array.from(l)}async function tt(){return{containers:await fetch("/api/tags",{mode:"cors",headers:{"Access-Control-Allow-Origin":"*"}}).then(l=>l.json())}}const it=Object.freeze(Object.defineProperty({__proto__:null,load:tt},Symbol.toStringTag,{value:"Module"}));function V(l,t,o){const n=l.slice();return n[1]=t[o],n}function et(l){let t,o=l[1].ip+"",n;return{c(){t=v("td"),n=z(o)},l(e){t=b(e,"TD",{});var i=D(t);n=C(i,o),i.forEach(m)},m(e,i){P(e,t,i),d(t,n)},p(e,i){i&1&&o!==(o=e[1].ip+"")&&A(n,o)},d(e){e&&m(t)}}}function lt(l){let t,o=l[1].ip+"",n,e,i=l[1].port+"",p;return{c(){t=v("td"),n=z(o),e=z(":"),p=z(i)},l(h){t=b(h,"TD",{});var r=D(t);n=C(r,o),e=C(r,":"),p=C(r,i),r.forEach(m)},m(h,r){P(h,t,r),d(t,n),d(t,e),d(t,p)},p(h,r){r&1&&o!==(o=h[1].ip+"")&&A(n,o),r&1&&i!==(i=h[1].port+"")&&A(p,i)},d(h){h&&m(t)}}}function W(l){let t,o,n=l[1].name+"",e,i,p,h,r=l[1].container+"",g,f,a,u=l[1].details.parameter_size+"",s,E,j,H=l[1].details.quantization_level+"",B,y,O,q=l[1].state+"",L,G;function I(_,c){return _[1].state=="running"?lt:et}let M=I(l),T=M(l);return{c(){t=v("tr"),o=v("td"),e=z(n),i=S(),T.c(),p=S(),h=v("td"),g=z(r),f=S(),a=v("td"),s=z(u),E=S(),j=v("td"),B=z(H),y=S(),O=v("td"),L=z(q),G=S()},l(_){t=b(_,"TR",{});var c=D(t);o=b(c,"TD",{});var N=D(o);e=C(N,n),N.forEach(m),i=k(c),T.l(c),p=k(c),h=b(c,"TD",{});var Q=D(h);g=C(Q,r),Q.forEach(m),f=k(c),a=b(c,"TD",{});var R=D(a);s=C(R,u),R.forEach(m),E=k(c),j=b(c,"TD",{});var Y=D(j);B=C(Y,H),Y.forEach(m),y=k(c),O=b(c,"TD",{});var F=D(O);L=C(F,q),F.forEach(m),G=k(c),c.forEach(m)},m(_,c){P(_,t,c),d(t,o),d(o,e),d(t,i),T.m(t,null),d(t,p),d(t,h),d(h,g),d(t,f),d(t,a),d(a,s),d(t,E),d(t,j),d(j,B),d(t,y),d(t,O),d(O,L),d(t,G)},p(_,c){c&1&&n!==(n=_[1].name+"")&&A(e,n),M===(M=I(_))&&T?T.p(_,c):(T.d(1),T=M(_),T&&(T.c(),T.m(t,p))),c&1&&r!==(r=_[1].container+"")&&A(g,r),c&1&&u!==(u=_[1].details.parameter_size+"")&&A(s,u),c&1&&H!==(H=_[1].details.quantization_level+"")&&A(B,H),c&1&&q!==(q=_[1].state+"")&&A(L,q)},d(_){_&&m(t),T.d()}}}function at(l){let t,o="GPT Backend",n,e,i,p="Name IP:Port Container Size Quantization Status",h,r,g=U(l[0].containers.models),f=[];for(let a=0;a{"data"in e&&o(0,n=e.data)},[n]}class rt extends Z{constructor(t){super(),$(this,t,nt,at,X,{data:0})}}export{rt as component,it as universal}; diff --git a/static/_app/immutable/nodes/2.-Hdt9aq9.js.br b/static/_app/immutable/nodes/2.-Hdt9aq9.js.br deleted file mode 100644 index 896dd2b..0000000 Binary files a/static/_app/immutable/nodes/2.-Hdt9aq9.js.br and /dev/null differ diff --git a/static/_app/immutable/nodes/2.-Hdt9aq9.js.gz b/static/_app/immutable/nodes/2.-Hdt9aq9.js.gz deleted file mode 100644 index e5ad266..0000000 Binary files a/static/_app/immutable/nodes/2.-Hdt9aq9.js.gz and /dev/null differ diff --git a/static/_app/version.json b/static/_app/version.json index f5de1ca..59f19a7 100644 --- a/static/_app/version.json +++ b/static/_app/version.json @@ -1 +1 @@ -{"version":"1718274879681"} \ No newline at end of file +{"version":"1732805292774"} \ No newline at end of file diff --git a/static/_app/version.json.br b/static/_app/version.json.br index 13e278e..44a66bb 100644 Binary files a/static/_app/version.json.br and b/static/_app/version.json.br differ diff --git a/static/_app/version.json.gz b/static/_app/version.json.gz index 5fea08b..d37d675 100644 Binary files a/static/_app/version.json.gz and b/static/_app/version.json.gz differ diff --git a/static/index.html b/static/index.html index c304823..ed7ec74 100644 --- a/static/index.html +++ b/static/index.html @@ -5,25 +5,25 @@ - - + + - +