PageSourceSearch

https://inference.club/_nuxt/DWHcdgC4.js

js inference.club collected 2026-09-24 12:30:48 UTC 4,046 bytes, 6 lines download raw bytes

1import{_ as C}from"./0U2laMoF.js";import{_ as L}from"./CQFkVSdy.js";import{u as M}from"./C4aaEZIL.js";import{C as N}from"./CFKNc7hs.js";import{e as z,f as B,i as D,c as a,a as o,g as l,d as i,h as n,t as r,b as R,w as S,F as u,r as h,o as s,E as T,n as f}from"./DdRirg_F.js";import"./VfuRUxXd.js";import"./BoE8DsGH.js";import"./CT6oeXmt.js";import"./B5Wy7ekL.js";/**
2 * @license lucide-vue-next v0.503.0 - ISC
3 *
4 * This source code is licensed under the ISC license.
5 * See the LICENSE file in the root directory of this source tree.
6 */const V=z("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]),$={class:"mx-auto w-full max-w-4xl px-3 sm:px-6 py-6"},A={class:"flex items-center justify-between mb-6"},E=["disabled"],P={key:0,class:"p-4 mb-4 bg-destructive/10 text-destructive rounded"},j={key:1,class:"p-6 bg-card rounded-lg border"},F={class:"text-muted-foreground"},Y={class:"space-y-4"},q={class:"flex items-center justify-between px-5 py-3 border-b"},H={class:"flex items-center gap-3"},I={class:"font-semibold"},U={key:0,class:"text-xs text-muted-foreground"},G={key:0,class:"px-5 py-4 text-sm text-muted-foreground"},J={key:1,class:"px-5 py-3 bg-destructive/5 border-b text-xs text-destructive list-disc pl-9 space-y-0.5"},K={key:2,class:"px-5 py-4 text-xs font-mono overflow-auto whitespace-pre"},O={key:3,class:"px-5 py-4 text-xs text-muted-foreground italic"},re=B({__name:"index",setup(Q){const{providers:x,isLoading:c,error:_,fetchProviders:m}=M();D(m);const g=d=>{if(!d)return"never";const t=Math.floor((Date.now()-new Date(d).getTime())/1e3);return t<60?`${t}s ago`:t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:new Date(d).toLocaleString()};return(d,t)=>{const b=C,k=L;return s(),a("div",$,[o("div",A,[t[1]||(t[1]=o("div",null,[o("h1",{class:"text-2xl font-bold"},"Service manifests"),o("p",{class:"text-sm text-muted-foreground mt-1"},[i(" The YAML each agent has uploaded. Edit "),o("code",{class:"text-foreground"},"agent.yaml"),i(" on the agent host and "),o("code",{class:"text-foreground"},"docker kill -s HUP club-host"),i(" to reload. ")])],-1)),o("button",{class:"text-sm text-muted-foreground hover:text-foreground",disabled:n(c),onClick:t[0]||(t[0]=(...e)=>n(m)&&n(m)(...e))},r(n(c)?"Refreshing…":"Refresh"),9,E)]),n(_)?(s(),a("div",P,r(n(_)),1)):l("",!0),!n(c)&&n(x).length===0?(s(),a("div",j,[o("p",F,[t[3]||(t[3]=i(" No agents registered yet. ",-1)),R(b,{to:"/dashboard/providers/my-nodes",class:"underline"},{default:S(()=>[...t[2]||(t[2]=[i(" Register an agent ",-1)])]),_:1}),t[4]||(t[4]=i(" to get started. ",-1))])])):l("",!0),o("div",Y,[(s(!0),a(u,null,h(n(x),e=>{var p,y;return s(),a("article",{key:e.id,class:"rounded-lg border bg-card overflow-hidden"},[o("header",q,[o("div",H,[o("h2",I,r(e.name),1),e.manifest?(s(),a("span",{key:0,class:T(["inline-flex items-center gap-1 text-xs",e.manifest.is_valid?"text-emerald-600 dark:text-emerald-400":"text-destructive"])},[e.manifest.is_valid?(s(),f(n(N),{key:0,class:"size-3.5"})):(s(),f(n(V),{key:1,class:"size-3.5"})),i(" "+r(e.manifest.is_valid?"valid":"invalid"),1)],2)):l("",!0)]),e.manifest?(s(),a("p",U," uploaded "+r(g(e.manifest.uploaded_at))+" · schema v"+r(e.manifest.schema_version),1)):l("",!0)]),e.manifest?(s(),a(u,{key:1},[(y=(p=e.manifest.parsed)==null?void 0:p.hosts)!=null&&y.length?(s(),f(k,{key:0,hosts:e.manifest.parsed.hosts,class:"px-5 py-3 border-b"},null,8,["hosts"])):l("",!0),e.manifest.validation_errors.length?(s(),a("ul",J,[(s(!0),a(u,null,h(e.manifest.validation_errors,(v,w)=>(s(),a("li",{key:w},r(v),1))),128))])):l("",!0),e.manifest.raw_yaml?(s(),a("pre",K,r(e.manifest.raw_yaml),1)):(s(),a("p",O," (raw YAML empty — manifest was synthesized from env vars) "))],64)):(s(),a("div",G," No manifest uploaded. The agent's older config-by-env-vars setup still works, but uploading a manifest enables the public profile view. "))])}),128))])])}}});export{re as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.