@coreplane/switchboard 1.202.1 → 1.204.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/config/config.example.yaml +10 -0
- package/dist/assets/deploy/cloudflare-resident/preflight.mjs +3 -3
- package/dist/assets/deploy/cloudflare-resident/refresh.ts +179 -93
- package/dist/assets/deploy/cloudflare-resident/shared.ts +15 -10
- package/dist/assets/deploy/cloudflare-resident/worker.ts +459 -632
- package/dist/assets/package-lock.json +3 -3
- package/dist/assets/package.json +1 -1
- package/dist/assets/project.json +1 -1
- package/dist/assets/source.json +3 -3
- package/dist/assets/src/core/authz/policy.ts +4 -0
- package/dist/assets/src/core/runRecord.ts +11 -0
- package/dist/assets/src/core/schedules.ts +12 -6
- package/dist/assets/src/core/ship/handoff.ts +246 -0
- package/dist/assets/src/execution/residentDisk.ts +2 -2
- package/dist/assets/src/execution/residentInstanceId.ts +48 -45
- package/dist/assets/src/execution/residentRefresh.ts +17 -66
- package/dist/assets/src/execution/residentState.ts +8 -9
- package/dist/assets/src/execution/residentStepPlan.ts +1 -1
- package/dist/assets/web/dist/.vite/manifest.json +55 -44
- package/dist/assets/web/dist/assets/{AppShell-CJLPO_aI.js → AppShell-Bw3-_TTE.js} +1 -1
- package/dist/assets/web/dist/assets/{CostsPage-C6ZvnAmH.js → CostsPage-XQ-fQzdz.js} +1 -1
- package/dist/assets/web/dist/assets/DeliveryPage-BRwcQyr7.js +1 -0
- package/dist/assets/web/dist/assets/{NotFoundPage-BdLcY60r.js → NotFoundPage-RjH-9dPy.js} +1 -1
- package/dist/assets/web/dist/assets/{ResidentDetailPage-hXWrr8T6.js → ResidentDetailPage-BRy5wkv9.js} +1 -1
- package/dist/assets/web/dist/assets/{ResidentsIndexPage-YLu4JwxJ.js → ResidentsIndexPage-DAEVLN8j.js} +1 -1
- package/dist/assets/web/dist/assets/{RunRoutePage-BDhHRJVO.js → RunRoutePage-B1KHmkZ9.js} +1 -1
- package/dist/assets/web/dist/assets/{RunsIndexPage-D7zZ5a0l.js → RunsIndexPage-3hUWFpFV.js} +1 -1
- package/dist/assets/web/dist/assets/{RunsTabs-BOUlSa2W.js → RunsTabs-Qn_5TVJU.js} +1 -1
- package/dist/assets/web/dist/assets/{ScheduledPage-BciOQcC-.js → ScheduledPage-DysVvVm1.js} +1 -1
- package/dist/assets/web/dist/assets/{StatusDot-CTDLBv92.js → StatusDot-Bug2a6T6.js} +1 -1
- package/dist/assets/web/dist/assets/{Tooltip-DD2v9Gxx.js → Tooltip-C2eEUbwn.js} +1 -1
- package/dist/assets/web/dist/assets/{favicon-C4Q8cRsP.js → favicon-CFfbl2AI.js} +1 -1
- package/dist/assets/web/dist/assets/{main-DrSlUcMg.js → main-0uhp-taL.js} +3 -3
- package/dist/assets/web/dist/assets/main-Xickfv8V.css +1 -0
- package/dist/cli.js +3065 -1912
- package/package.json +1 -1
- package/dist/assets/web/dist/assets/main-DoTjwE-G.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./AppShell-CJLPO_aI.js";import{Pr as t,an as n,bi as r,gn as i,hi as a,in as o,mn as s,on as c,pn as l,qt as u,r as d,rn as f,sn as p,sr as m,tr as h,vi as g,xi as _}from"./seed-B8mQEhhw.js";var v=`Durable Objects`,y=`Workers · storage · R2`,b=`LLM (Anthropic)`,x=(e,t=2)=>`$${e.toFixed(t)}`,S=e=>e.workersUsd+e.doRowsUsd+e.doStorageUsd+e.r2Usd+e.workflowsUsd;function ee(e){let t=[];for(let n of e.days)for(let e of Object.keys(n.containers))t.includes(e)||t.push(e);return e.days.some(e=>Object.keys(e.durableObjects).length>0)&&t.push(v),e.days.some(e=>S(e)>0)&&t.push(y),e.llmAvailable&&t.push(b),t}function C(e,t){return t===`Durable Objects`?Object.values(e.durableObjects).reduce((e,t)=>e+t,0)+e.doRequestsUsd:t===`Workers · storage · R2`?S(e):t===`LLM (Anthropic)`?e.llmUsd:e.containers[t]?.total??0}function w(e){let t=e.range.partialLastDay?e.days.slice(0,-1):e.days,n=t[t.length-1],r=t.slice(-7),i=r.length?r.reduce((e,t)=>e+t.total,0)/r.length:0,a=e.totals.total>0?Math.round(e.totals.llmUsd/e.totals.total*100):0,o=e.account.cloudUsd>0?Math.round(e.totals.cloudUsd/e.account.cloudUsd*100):0;return{...n?{yesterday:{date:n.date,total:n.total}}:{},avg7:i,projectedMonth:i*30.4,llmShare:a,accountShare:o}}function T(e,t){let n={t:12,r:12,b:30,l:48},r=960-n.l-n.r,i=260-n.t-n.b,a=e.days,o=Math.max(1e-9,...a.map(e=>e.total))*1.08,s=r/Math.max(1,a.length),c=Math.min(10,s*.28),l=e=>n.t+i-e/o*i,u=Array.from({length:5},(e,t)=>{let n=o/4*t;return{y:Number(l(n).toFixed(1)),label:x(n)}}),d=[],f=[];return a.forEach((e,r)=>{let i=0,o=n.l+r*s+c/2,u=s-c;t.forEach((t,n)=>{let r=C(e,t);if(r<=0)return;let a=l(i+r),s=l(i),c=Math.max(0,s-a-2);d.push({seriesIndex:n,x:Number(o.toFixed(1)),y:Number(a.toFixed(1)),width:Number(u.toFixed(1)),height:Number(c.toFixed(1)),title:`${e.date} · ${t} · ${x(r)}`}),i+=r}),(a.length<=16||r%Math.ceil(a.length/16)===0)&&f.push({x:Number((o+u/2).toFixed(1)),label:e.date.slice(5)})}),{width:960,height:260,gridLines:u,segments:d,dayLabels:f,axisY:Number(l(0).toFixed(1)),marginLeft:n.l,marginRight:n.r}}function E(e){let t=e.totals.byResource,n=[[`Memory (provisioned while awake)`,t.memory],[`vCPU (active use only)`,t.cpu],[`Durable Object duration + requests`,t.durableObjects],[`Disk (provisioned while awake)`,t.disk],[`Workers requests + CPU`,t.workers],[`Durable Object SQLite rows`,t.doRows],[`Durable Object SQLite storage`,t.doStorage],[`R2 storage + operations`,t.r2],[`Workflow steps + state`,t.workflows]],r=n.reduce((e,t)=>e+t[1],0)||1;return n.map(([e,t])=>({label:e,usd:t,percent:t/r*100}))}var D=[`fill-[#4478b8] dark:fill-[#7aa7e0]`,`fill-[#c8823b] dark:fill-[#e0a95a]`,`fill-[#4c8c57] dark:fill-[#6fae7a]`,`fill-[#b8963e] dark:fill-[#d4b45a]`,`fill-[#b0568c] dark:fill-[#d489b8]`,`fill-[#6b7bcc] dark:fill-[#98a5e6]`,`fill-[#d05252] dark:fill-[#e07a74]`,`fill-[#3e8e96] dark:fill-[#6fb9c0]`],O=[`bg-[#4478b8] dark:bg-[#7aa7e0]`,`bg-[#c8823b] dark:bg-[#e0a95a]`,`bg-[#4c8c57] dark:bg-[#6fae7a]`,`bg-[#b8963e] dark:bg-[#d4b45a]`,`bg-[#b0568c] dark:bg-[#d489b8]`,`bg-[#6b7bcc] dark:bg-[#98a5e6]`,`bg-[#d05252] dark:bg-[#e07a74]`,`bg-[#3e8e96] dark:bg-[#6fb9c0]`],k={class:`overflow-x-auto`},A=[`viewBox`],j=[`x1`,`x2`,`y1`,`y2`],M=[`x`,`y`],N=[`x`,`y`,`width`,`height`],P=[`x`,`y`],F=[`x1`,`x2`,`y1`,`y2`],I=i({__name:`CostChart`,props:{report:{},series:{}},setup(e){let t=e,n=f(()=>T(t.report,t.series));return(e,t)=>(h(),p(`div`,k,[(h(),p(`svg`,{class:`block h-auto w-full font-mono`,viewBox:`0 0 ${n.value.width} ${n.value.height}`,role:`img`,"aria-label":`Daily cost, stacked by component`},[(h(!0),p(u,null,m(n.value.gridLines,(e,t)=>(h(),p(u,{key:`g${t}`},[o(`line`,{class:`stroke-(--ui-border-muted)`,x1:n.value.marginLeft,x2:n.value.width-n.value.marginRight,y1:e.y,y2:e.y},null,8,j),o(`text`,{class:`fill-(--ui-text-dimmed) text-[11px] tabular-nums`,x:n.value.marginLeft-8,y:e.y+4,"text-anchor":`end`},_(e.label),9,M)],64))),128)),(h(!0),p(u,null,m(n.value.segments,(e,t)=>(h(),p(`rect`,{key:`s${t}`,class:g([`seg hover:opacity-85`,a(D)[e.seriesIndex%a(D).length]]),x:e.x,y:e.y,width:e.width,height:e.height},[o(`title`,null,_(e.title),1)],10,N))),128)),(h(!0),p(u,null,m(n.value.dayLabels,(e,t)=>(h(),p(`text`,{key:`d${t}`,class:`fill-(--ui-text-dimmed) text-[11px]`,x:e.x,y:n.value.height-10,"text-anchor":`middle`},_(e.label),9,P))),128)),o(`line`,{class:`stroke-(--ui-border)`,x1:n.value.marginLeft,x2:n.value.width-n.value.marginRight,y1:n.value.axisY,y2:n.value.axisY},null,8,F)],8,A))]))}}),L={class:`text-xs text-muted`},R={key:1,class:`text-highlighted`},z=[`href`],B={class:`mb-4 flex flex-wrap items-center gap-x-4 gap-y-2`},V={key:0,class:`flex items-center gap-1`,"aria-label":`Cost groups`},H={key:0,class:`rounded-md bg-accented px-2.5 py-1 text-xs font-medium text-highlighted`,"aria-current":`page`},U=[`href`],W={class:`font-mono text-sm tabular-nums text-muted`},G={class:`mb-5 grid grid-cols-[repeat(auto-fit,minmax(190px,1fr))] gap-3`},K={class:`grid gap-0.5 rounded-lg border border-default bg-elevated px-4 py-3.5`},q={class:`font-mono text-2xl font-medium tabular-nums`},J={class:`text-xs text-muted`},Y={class:`grid gap-0.5 rounded-lg border border-default bg-elevated px-4 py-3.5`},X={class:`font-mono text-2xl font-medium tabular-nums`},Z={class:`grid gap-0.5 rounded-lg border border-default bg-elevated px-4 py-3.5`},Q={class:`font-mono text-2xl font-medium tabular-nums`},te={class:`grid gap-0.5 rounded-lg border border-default bg-elevated px-4 py-3.5`},ne={class:`font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},re={class:`font-mono text-2xl font-medium tabular-nums`},ie={class:`text-xs text-muted`},ae={class:`grid gap-0.5 rounded-lg border border-default bg-elevated px-4 py-3.5`},oe={class:`font-mono text-2xl font-medium tabular-nums`},se={class:`text-xs text-muted`},ce={class:`mb-5 grid gap-3 rounded-lg border border-default bg-elevated px-5 py-4`},le={class:`flex flex-wrap items-baseline justify-between gap-x-4 gap-y-2`},ue={class:`legend flex flex-wrap gap-x-4 gap-y-1.5 text-xs text-muted`},de={key:0,class:`text-xs text-warn`},fe={class:`mb-5 grid gap-3 rounded-lg border border-default bg-elevated px-5 py-4`},pe={class:`w-full border-collapse font-mono text-[0.8125rem] tabular-nums`},me={class:`px-2.5 py-1.5`},he={class:`px-2.5 py-1.5 text-right`},ge={class:`px-2.5 py-1.5 text-right`},_e={class:`w-2/5 px-2.5 py-1.5`},ve={class:`mb-5 grid gap-3 rounded-lg border border-default bg-elevated px-5 py-4`},ye={open:``},be={class:`mt-2.5 overflow-x-auto`},$={class:`data w-full min-w-[38rem] border-collapse whitespace-nowrap font-mono text-[0.8125rem] tabular-nums`},xe=[`title`],Se={key:0,class:`text-xs text-dimmed`},Ce={class:`border-b border-muted px-2.5 py-1.5 text-right font-medium`},we={class:`text-xs text-muted`},Te={class:`rounded bg-accented px-1 py-0.5`},Ee={class:`border-t border-default pt-3.5 text-xs text-dimmed`},De={class:`mt-2 grid gap-1.5`},Oe=i({__name:`CostsPage`,setup(i){let v=d(`costs`),y=f(()=>v?.report??null),b=f(()=>v?.groups??[]),S=f(()=>y.value?ee(y.value):[]),T=f(()=>y.value?w(y.value):null),D=f(()=>y.value?E(y.value):[]),k=[7,30,90];function A(e){let t=new Date(`${e}T00:00:00Z`);return Number.isNaN(t.getTime())?e:`${[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`][t.getUTCMonth()]} ${t.getUTCDate()}`}return(i,d)=>y.value&&T.value?(h(),n(e,{key:0,title:`${y.value.label} spend`,nav:`costs`},{actions:t(()=>[o(`span`,L,[(h(),p(u,null,m(k,(e,t)=>(h(),p(u,{key:e},[t>0?(h(),p(u,{key:0},[l(` · `)],64)):c(``,!0),e===y.value.range.days?(h(),p(`b`,R,_(e)+`d`,1)):(h(),p(`a`,{key:2,class:`text-primary hover:underline`,href:`/costs/${y.value.group}?days=${e}`},_(e)+`d`,9,z))],64))),64))])]),default:t(()=>[o(`div`,B,[b.value.length>1?(h(),p(`nav`,V,[(h(!0),p(u,null,m(b.value,e=>(h(),p(u,{key:e},[e===y.value.group?(h(),p(`span`,H,_(e),1)):(h(),p(`a`,{key:1,class:`rounded-md px-2.5 py-1 text-xs text-muted no-underline hover:bg-elevated hover:text-highlighted`,href:`/costs/${e}`},_(e),9,U))],64))),128))])):c(``,!0),o(`p`,W,[l(_(A(y.value.range.from))+` → `+_(A(y.value.range.to))+` · `+_(y.value.range.days)+`d`,1),y.value.range.partialLastDay?(h(),p(u,{key:0},[l(` · today partial`)],64)):c(``,!0)])]),o(`section`,G,[o(`div`,K,[d[0]||=o(`span`,{class:`font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},`Yesterday`,-1),o(`span`,q,_(T.value.yesterday?a(x)(T.value.yesterday.total):`—`),1),o(`span`,J,_(T.value.yesterday?`${T.value.yesterday.date} · last full day`:`no full day in range`),1)]),o(`div`,Y,[d[1]||=o(`span`,{class:`font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},`7-day average`,-1),o(`span`,X,_(a(x)(T.value.avg7)),1),d[2]||=o(`span`,{class:`text-xs text-muted`},`per day, full days only`,-1)]),o(`div`,Z,[d[3]||=o(`span`,{class:`font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},`Projected month`,-1),o(`span`,Q,_(a(x)(T.value.projectedMonth,0)),1),d[4]||=o(`span`,{class:`text-xs text-muted`},`7-day rate × 30.4, before plan fees and included allowances`,-1)]),o(`div`,te,[o(`span`,ne,_(y.value.llmAvailable?`LLM share`:`LLM spend`),1),o(`span`,re,_(y.value.llmAvailable?`${T.value.llmShare}%`:`—`),1),o(`span`,ie,_(y.value.llmAvailable?`of the range total`:`LLM spend not configured`),1)]),o(`div`,ae,[d[5]||=o(`span`,{class:`font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},`Share of account`,-1),o(`span`,oe,_(T.value.accountShare)+`%`,1),o(`span`,se,_(a(x)(y.value.totals.cloudUsd))+` of `+_(a(x)(y.value.account.cloudUsd))+` Cloudflare spend in range`,1)])]),o(`section`,ce,[o(`div`,le,[d[6]||=o(`div`,null,[o(`h2`,{class:`text-[0.9375rem] font-medium`},`Daily cost`),o(`p`,{class:`text-sm text-muted`},`Stacked by component · USD list price`)],-1),o(`div`,ue,[(h(!0),p(u,null,m(S.value,(e,t)=>(h(),p(`span`,{key:e,class:`inline-flex items-center gap-1.5`},[o(`i`,{class:g([`inline-block size-2.5 rounded-xs`,a(O)[t%a(O).length]])},null,2),l(_(e),1)]))),128))])]),s(I,{report:y.value,series:S.value},null,8,[`report`,`series`]),y.value.llmAvailable?c(``,!0):(h(),p(`p`,de,[...d[7]||=[l(` LLM spend not configured — set `,-1),o(`code`,null,`ANTHROPIC_ADMIN_KEY`,-1),l(` and the group's `,-1),o(`code`,null,`anthropicWorkspaceId`,-1),l(` to layer it in. `,-1)]]))]),o(`section`,fe,[d[8]||=o(`div`,null,[o(`h2`,{class:`text-[0.9375rem] font-medium`},`What each cloud dollar buys`)],-1),o(`table`,pe,[o(`tbody`,null,[(h(!0),p(u,null,m(D.value,e=>(h(),p(`tr`,{key:e.label,class:`border-b border-muted`},[o(`td`,me,_(e.label),1),o(`td`,he,_(a(x)(e.usd)),1),o(`td`,ge,_(Math.round(e.percent))+`%`,1),o(`td`,_e,[o(`i`,{class:`block h-2.5 rounded-xs bg-primary opacity-75`,style:r({width:`${e.percent.toFixed(1)}%`})},null,4)])]))),128))])])]),o(`section`,ve,[o(`details`,ye,[d[11]||=o(`summary`,{class:`cursor-pointer text-sm text-muted`},`Table view — daily cost by component (USD)`,-1),o(`div`,be,[o(`table`,$,[o(`thead`,null,[o(`tr`,null,[d[9]||=o(`th`,{class:`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-left text-xs font-medium text-muted`},` Date `,-1),(h(!0),p(u,null,m(S.value,e=>(h(),p(`th`,{key:e,class:`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-right text-xs font-medium text-muted`},_(e),1))),128)),d[10]||=o(`th`,{class:`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-right text-xs font-medium text-muted`},` Total `,-1)])]),o(`tbody`,null,[(h(!0),p(u,null,m(y.value.days,e=>(h(),p(`tr`,{key:e.date},[o(`td`,{class:`border-b border-muted px-2.5 py-1.5`,title:e.date},[l(_(A(e.date))+` `,1),y.value.range.partialLastDay&&e.date===y.value.range.to?(h(),p(`span`,Se,`(partial day)`)):c(``,!0)],8,xe),(h(!0),p(u,null,m(S.value,t=>(h(),p(`td`,{key:t,class:`border-b border-muted px-2.5 py-1.5 text-right`},_(a(x)(a(C)(e,t),3)),1))),128)),o(`td`,Ce,_(a(x)(e.total,3)),1)]))),128))])])])]),o(`p`,we,[d[12]||=l(` Machine-readable twin: `,-1),o(`code`,Te,`GET /costs/`+_(y.value.group)+`.json`,1),d[13]||=l(` (same Access gate). `,-1)])]),o(`footer`,Ee,[o(`details`,null,[d[18]||=o(`summary`,{class:`cursor-pointer text-muted`},`How these numbers are computed`,-1),o(`div`,De,[d[16]||=o(`div`,null,[o(`b`,null,`Live.`),l(` Both billing sources are read live from this page — nothing cached, nothing stored. Cloudflare bills vCPU on active use only; memory and disk bill on the provisioned size for every second a container is awake. LLM spend is the Anthropic Admin API cost report for this group's workspace (gross, USD). `)],-1),d[17]||=o(`div`,null,[o(`b`,null,`Method.`),l(` Cloudflare GraphQL Analytics, every meter a Workers deployment is billed on: `),o(`code`,null,`containersUsageAdaptiveGroups`),l(` (cpuTimeSec, allocatedMemory, allocatedDisk per app per UTC day), `),o(`code`,null,`durableObjectsPeriodicGroups`),l(` (billable `),o(`code`,null,`duration`),l(` GB-s and SQLite rows read and written per namespace), `),o(`code`,null,`durableObjectsInvocationsAdaptiveGroups`),l(` (requests per namespace), `),o(`code`,null,`durableObjectsSqlStorageGroups`),l(` (bytes stored), `),o(`code`,null,`workersInvocationsAdaptive`),l(` (requests, CPU time), `),o(`code`,null,`r2StorageAdaptiveGroups`),l(` and `),o(`code`,null,`r2OperationsAdaptiveGroups`),l(` (bytes stored, class A/B operations). Prices: vCPU $0.000020/s, memory $0.0000025/GiB-s, disk $0.00000007/GB-s, DO duration $12.50 per million GB-s, DO requests $0.15/M, SQLite rows $0.001/M read and $1.00/M written, DO storage $0.20/GB-month, Workers $0.30/M requests and $0.02/M CPU-ms, R2 $0.015/GB-month, $4.50/M class A and $0.36/M class B (deletes free). Storage is the day's peak, prorated over a 30.44-day month. Gross list price — plan fees and included allowances are not subtracted; Workers Logs volume has no analytics dataset and is not priced. `)],-1),o(`div`,null,[d[14]||=o(`b`,null,`Scope.`,-1),d[15]||=l(` Attributed to this group: the Workers `,-1),o(`code`,null,_(y.value.attribution.workers.join(`, `)),1),l(`, every Durable Object namespace they host (`+_(Object.keys(y.value.attribution.durableObjectNamespaces).length)+`), the R2 buckets named after them (`+_(Object.keys(y.value.attribution.r2Buckets).length)+`), and the container apps mapped in `,1),o(`code`,null,`costs.groups.`+_(y.value.group),1),l(` (`+_(Object.keys(y.value.attribution.containerApps).length)+`). Everything else in the account is priced the same way into the account total, which is what "share of account" divides by. `,1)])])])])]),_:1},8,[`title`])):c(``,!0)}});export{Oe as default};
|
|
1
|
+
import{t as e}from"./AppShell-Bw3-_TTE.js";import{Pr as t,an as n,bi as r,gn as i,hi as a,in as o,mn as s,on as c,pn as l,qt as u,r as d,rn as f,sn as p,sr as m,tr as h,vi as g,xi as _}from"./seed-B8mQEhhw.js";var v=`Durable Objects`,y=`Workers · storage · R2`,b=`LLM (Anthropic)`,x=(e,t=2)=>`$${e.toFixed(t)}`,S=e=>e.workersUsd+e.doRowsUsd+e.doStorageUsd+e.r2Usd+e.workflowsUsd;function ee(e){let t=[];for(let n of e.days)for(let e of Object.keys(n.containers))t.includes(e)||t.push(e);return e.days.some(e=>Object.keys(e.durableObjects).length>0)&&t.push(v),e.days.some(e=>S(e)>0)&&t.push(y),e.llmAvailable&&t.push(b),t}function C(e,t){return t===`Durable Objects`?Object.values(e.durableObjects).reduce((e,t)=>e+t,0)+e.doRequestsUsd:t===`Workers · storage · R2`?S(e):t===`LLM (Anthropic)`?e.llmUsd:e.containers[t]?.total??0}function w(e){let t=e.range.partialLastDay?e.days.slice(0,-1):e.days,n=t[t.length-1],r=t.slice(-7),i=r.length?r.reduce((e,t)=>e+t.total,0)/r.length:0,a=e.totals.total>0?Math.round(e.totals.llmUsd/e.totals.total*100):0,o=e.account.cloudUsd>0?Math.round(e.totals.cloudUsd/e.account.cloudUsd*100):0;return{...n?{yesterday:{date:n.date,total:n.total}}:{},avg7:i,projectedMonth:i*30.4,llmShare:a,accountShare:o}}function T(e,t){let n={t:12,r:12,b:30,l:48},r=960-n.l-n.r,i=260-n.t-n.b,a=e.days,o=Math.max(1e-9,...a.map(e=>e.total))*1.08,s=r/Math.max(1,a.length),c=Math.min(10,s*.28),l=e=>n.t+i-e/o*i,u=Array.from({length:5},(e,t)=>{let n=o/4*t;return{y:Number(l(n).toFixed(1)),label:x(n)}}),d=[],f=[];return a.forEach((e,r)=>{let i=0,o=n.l+r*s+c/2,u=s-c;t.forEach((t,n)=>{let r=C(e,t);if(r<=0)return;let a=l(i+r),s=l(i),c=Math.max(0,s-a-2);d.push({seriesIndex:n,x:Number(o.toFixed(1)),y:Number(a.toFixed(1)),width:Number(u.toFixed(1)),height:Number(c.toFixed(1)),title:`${e.date} · ${t} · ${x(r)}`}),i+=r}),(a.length<=16||r%Math.ceil(a.length/16)===0)&&f.push({x:Number((o+u/2).toFixed(1)),label:e.date.slice(5)})}),{width:960,height:260,gridLines:u,segments:d,dayLabels:f,axisY:Number(l(0).toFixed(1)),marginLeft:n.l,marginRight:n.r}}function E(e){let t=e.totals.byResource,n=[[`Memory (provisioned while awake)`,t.memory],[`vCPU (active use only)`,t.cpu],[`Durable Object duration + requests`,t.durableObjects],[`Disk (provisioned while awake)`,t.disk],[`Workers requests + CPU`,t.workers],[`Durable Object SQLite rows`,t.doRows],[`Durable Object SQLite storage`,t.doStorage],[`R2 storage + operations`,t.r2],[`Workflow steps + state`,t.workflows]],r=n.reduce((e,t)=>e+t[1],0)||1;return n.map(([e,t])=>({label:e,usd:t,percent:t/r*100}))}var D=[`fill-[#4478b8] dark:fill-[#7aa7e0]`,`fill-[#c8823b] dark:fill-[#e0a95a]`,`fill-[#4c8c57] dark:fill-[#6fae7a]`,`fill-[#b8963e] dark:fill-[#d4b45a]`,`fill-[#b0568c] dark:fill-[#d489b8]`,`fill-[#6b7bcc] dark:fill-[#98a5e6]`,`fill-[#d05252] dark:fill-[#e07a74]`,`fill-[#3e8e96] dark:fill-[#6fb9c0]`],O=[`bg-[#4478b8] dark:bg-[#7aa7e0]`,`bg-[#c8823b] dark:bg-[#e0a95a]`,`bg-[#4c8c57] dark:bg-[#6fae7a]`,`bg-[#b8963e] dark:bg-[#d4b45a]`,`bg-[#b0568c] dark:bg-[#d489b8]`,`bg-[#6b7bcc] dark:bg-[#98a5e6]`,`bg-[#d05252] dark:bg-[#e07a74]`,`bg-[#3e8e96] dark:bg-[#6fb9c0]`],k={class:`overflow-x-auto`},A=[`viewBox`],j=[`x1`,`x2`,`y1`,`y2`],M=[`x`,`y`],N=[`x`,`y`,`width`,`height`],P=[`x`,`y`],F=[`x1`,`x2`,`y1`,`y2`],I=i({__name:`CostChart`,props:{report:{},series:{}},setup(e){let t=e,n=f(()=>T(t.report,t.series));return(e,t)=>(h(),p(`div`,k,[(h(),p(`svg`,{class:`block h-auto w-full font-mono`,viewBox:`0 0 ${n.value.width} ${n.value.height}`,role:`img`,"aria-label":`Daily cost, stacked by component`},[(h(!0),p(u,null,m(n.value.gridLines,(e,t)=>(h(),p(u,{key:`g${t}`},[o(`line`,{class:`stroke-(--ui-border-muted)`,x1:n.value.marginLeft,x2:n.value.width-n.value.marginRight,y1:e.y,y2:e.y},null,8,j),o(`text`,{class:`fill-(--ui-text-dimmed) text-[11px] tabular-nums`,x:n.value.marginLeft-8,y:e.y+4,"text-anchor":`end`},_(e.label),9,M)],64))),128)),(h(!0),p(u,null,m(n.value.segments,(e,t)=>(h(),p(`rect`,{key:`s${t}`,class:g([`seg hover:opacity-85`,a(D)[e.seriesIndex%a(D).length]]),x:e.x,y:e.y,width:e.width,height:e.height},[o(`title`,null,_(e.title),1)],10,N))),128)),(h(!0),p(u,null,m(n.value.dayLabels,(e,t)=>(h(),p(`text`,{key:`d${t}`,class:`fill-(--ui-text-dimmed) text-[11px]`,x:e.x,y:n.value.height-10,"text-anchor":`middle`},_(e.label),9,P))),128)),o(`line`,{class:`stroke-(--ui-border)`,x1:n.value.marginLeft,x2:n.value.width-n.value.marginRight,y1:n.value.axisY,y2:n.value.axisY},null,8,F)],8,A))]))}}),L={class:`text-xs text-muted`},R={key:1,class:`text-highlighted`},z=[`href`],B={class:`mb-4 flex flex-wrap items-center gap-x-4 gap-y-2`},V={key:0,class:`flex items-center gap-1`,"aria-label":`Cost groups`},H={key:0,class:`rounded-md bg-accented px-2.5 py-1 text-xs font-medium text-highlighted`,"aria-current":`page`},U=[`href`],W={class:`font-mono text-sm tabular-nums text-muted`},G={class:`mb-5 grid grid-cols-[repeat(auto-fit,minmax(190px,1fr))] gap-3`},K={class:`grid gap-0.5 rounded-lg border border-default bg-elevated px-4 py-3.5`},q={class:`font-mono text-2xl font-medium tabular-nums`},J={class:`text-xs text-muted`},Y={class:`grid gap-0.5 rounded-lg border border-default bg-elevated px-4 py-3.5`},X={class:`font-mono text-2xl font-medium tabular-nums`},Z={class:`grid gap-0.5 rounded-lg border border-default bg-elevated px-4 py-3.5`},Q={class:`font-mono text-2xl font-medium tabular-nums`},te={class:`grid gap-0.5 rounded-lg border border-default bg-elevated px-4 py-3.5`},ne={class:`font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},re={class:`font-mono text-2xl font-medium tabular-nums`},ie={class:`text-xs text-muted`},ae={class:`grid gap-0.5 rounded-lg border border-default bg-elevated px-4 py-3.5`},oe={class:`font-mono text-2xl font-medium tabular-nums`},se={class:`text-xs text-muted`},ce={class:`mb-5 grid gap-3 rounded-lg border border-default bg-elevated px-5 py-4`},le={class:`flex flex-wrap items-baseline justify-between gap-x-4 gap-y-2`},ue={class:`legend flex flex-wrap gap-x-4 gap-y-1.5 text-xs text-muted`},de={key:0,class:`text-xs text-warn`},fe={class:`mb-5 grid gap-3 rounded-lg border border-default bg-elevated px-5 py-4`},pe={class:`w-full border-collapse font-mono text-[0.8125rem] tabular-nums`},me={class:`px-2.5 py-1.5`},he={class:`px-2.5 py-1.5 text-right`},ge={class:`px-2.5 py-1.5 text-right`},_e={class:`w-2/5 px-2.5 py-1.5`},ve={class:`mb-5 grid gap-3 rounded-lg border border-default bg-elevated px-5 py-4`},ye={open:``},be={class:`mt-2.5 overflow-x-auto`},$={class:`data w-full min-w-[38rem] border-collapse whitespace-nowrap font-mono text-[0.8125rem] tabular-nums`},xe=[`title`],Se={key:0,class:`text-xs text-dimmed`},Ce={class:`border-b border-muted px-2.5 py-1.5 text-right font-medium`},we={class:`text-xs text-muted`},Te={class:`rounded bg-accented px-1 py-0.5`},Ee={class:`border-t border-default pt-3.5 text-xs text-dimmed`},De={class:`mt-2 grid gap-1.5`},Oe=i({__name:`CostsPage`,setup(i){let v=d(`costs`),y=f(()=>v?.report??null),b=f(()=>v?.groups??[]),S=f(()=>y.value?ee(y.value):[]),T=f(()=>y.value?w(y.value):null),D=f(()=>y.value?E(y.value):[]),k=[7,30,90];function A(e){let t=new Date(`${e}T00:00:00Z`);return Number.isNaN(t.getTime())?e:`${[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`][t.getUTCMonth()]} ${t.getUTCDate()}`}return(i,d)=>y.value&&T.value?(h(),n(e,{key:0,title:`${y.value.label} spend`,nav:`costs`},{actions:t(()=>[o(`span`,L,[(h(),p(u,null,m(k,(e,t)=>(h(),p(u,{key:e},[t>0?(h(),p(u,{key:0},[l(` · `)],64)):c(``,!0),e===y.value.range.days?(h(),p(`b`,R,_(e)+`d`,1)):(h(),p(`a`,{key:2,class:`text-primary hover:underline`,href:`/costs/${y.value.group}?days=${e}`},_(e)+`d`,9,z))],64))),64))])]),default:t(()=>[o(`div`,B,[b.value.length>1?(h(),p(`nav`,V,[(h(!0),p(u,null,m(b.value,e=>(h(),p(u,{key:e},[e===y.value.group?(h(),p(`span`,H,_(e),1)):(h(),p(`a`,{key:1,class:`rounded-md px-2.5 py-1 text-xs text-muted no-underline hover:bg-elevated hover:text-highlighted`,href:`/costs/${e}`},_(e),9,U))],64))),128))])):c(``,!0),o(`p`,W,[l(_(A(y.value.range.from))+` → `+_(A(y.value.range.to))+` · `+_(y.value.range.days)+`d`,1),y.value.range.partialLastDay?(h(),p(u,{key:0},[l(` · today partial`)],64)):c(``,!0)])]),o(`section`,G,[o(`div`,K,[d[0]||=o(`span`,{class:`font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},`Yesterday`,-1),o(`span`,q,_(T.value.yesterday?a(x)(T.value.yesterday.total):`—`),1),o(`span`,J,_(T.value.yesterday?`${T.value.yesterday.date} · last full day`:`no full day in range`),1)]),o(`div`,Y,[d[1]||=o(`span`,{class:`font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},`7-day average`,-1),o(`span`,X,_(a(x)(T.value.avg7)),1),d[2]||=o(`span`,{class:`text-xs text-muted`},`per day, full days only`,-1)]),o(`div`,Z,[d[3]||=o(`span`,{class:`font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},`Projected month`,-1),o(`span`,Q,_(a(x)(T.value.projectedMonth,0)),1),d[4]||=o(`span`,{class:`text-xs text-muted`},`7-day rate × 30.4, before plan fees and included allowances`,-1)]),o(`div`,te,[o(`span`,ne,_(y.value.llmAvailable?`LLM share`:`LLM spend`),1),o(`span`,re,_(y.value.llmAvailable?`${T.value.llmShare}%`:`—`),1),o(`span`,ie,_(y.value.llmAvailable?`of the range total`:`LLM spend not configured`),1)]),o(`div`,ae,[d[5]||=o(`span`,{class:`font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},`Share of account`,-1),o(`span`,oe,_(T.value.accountShare)+`%`,1),o(`span`,se,_(a(x)(y.value.totals.cloudUsd))+` of `+_(a(x)(y.value.account.cloudUsd))+` Cloudflare spend in range`,1)])]),o(`section`,ce,[o(`div`,le,[d[6]||=o(`div`,null,[o(`h2`,{class:`text-[0.9375rem] font-medium`},`Daily cost`),o(`p`,{class:`text-sm text-muted`},`Stacked by component · USD list price`)],-1),o(`div`,ue,[(h(!0),p(u,null,m(S.value,(e,t)=>(h(),p(`span`,{key:e,class:`inline-flex items-center gap-1.5`},[o(`i`,{class:g([`inline-block size-2.5 rounded-xs`,a(O)[t%a(O).length]])},null,2),l(_(e),1)]))),128))])]),s(I,{report:y.value,series:S.value},null,8,[`report`,`series`]),y.value.llmAvailable?c(``,!0):(h(),p(`p`,de,[...d[7]||=[l(` LLM spend not configured — set `,-1),o(`code`,null,`ANTHROPIC_ADMIN_KEY`,-1),l(` and the group's `,-1),o(`code`,null,`anthropicWorkspaceId`,-1),l(` to layer it in. `,-1)]]))]),o(`section`,fe,[d[8]||=o(`div`,null,[o(`h2`,{class:`text-[0.9375rem] font-medium`},`What each cloud dollar buys`)],-1),o(`table`,pe,[o(`tbody`,null,[(h(!0),p(u,null,m(D.value,e=>(h(),p(`tr`,{key:e.label,class:`border-b border-muted`},[o(`td`,me,_(e.label),1),o(`td`,he,_(a(x)(e.usd)),1),o(`td`,ge,_(Math.round(e.percent))+`%`,1),o(`td`,_e,[o(`i`,{class:`block h-2.5 rounded-xs bg-primary opacity-75`,style:r({width:`${e.percent.toFixed(1)}%`})},null,4)])]))),128))])])]),o(`section`,ve,[o(`details`,ye,[d[11]||=o(`summary`,{class:`cursor-pointer text-sm text-muted`},`Table view — daily cost by component (USD)`,-1),o(`div`,be,[o(`table`,$,[o(`thead`,null,[o(`tr`,null,[d[9]||=o(`th`,{class:`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-left text-xs font-medium text-muted`},` Date `,-1),(h(!0),p(u,null,m(S.value,e=>(h(),p(`th`,{key:e,class:`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-right text-xs font-medium text-muted`},_(e),1))),128)),d[10]||=o(`th`,{class:`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-right text-xs font-medium text-muted`},` Total `,-1)])]),o(`tbody`,null,[(h(!0),p(u,null,m(y.value.days,e=>(h(),p(`tr`,{key:e.date},[o(`td`,{class:`border-b border-muted px-2.5 py-1.5`,title:e.date},[l(_(A(e.date))+` `,1),y.value.range.partialLastDay&&e.date===y.value.range.to?(h(),p(`span`,Se,`(partial day)`)):c(``,!0)],8,xe),(h(!0),p(u,null,m(S.value,t=>(h(),p(`td`,{key:t,class:`border-b border-muted px-2.5 py-1.5 text-right`},_(a(x)(a(C)(e,t),3)),1))),128)),o(`td`,Ce,_(a(x)(e.total,3)),1)]))),128))])])])]),o(`p`,we,[d[12]||=l(` Machine-readable twin: `,-1),o(`code`,Te,`GET /costs/`+_(y.value.group)+`.json`,1),d[13]||=l(` (same Access gate). `,-1)])]),o(`footer`,Ee,[o(`details`,null,[d[18]||=o(`summary`,{class:`cursor-pointer text-muted`},`How these numbers are computed`,-1),o(`div`,De,[d[16]||=o(`div`,null,[o(`b`,null,`Live.`),l(` Both billing sources are read live from this page — nothing cached, nothing stored. Cloudflare bills vCPU on active use only; memory and disk bill on the provisioned size for every second a container is awake. LLM spend is the Anthropic Admin API cost report for this group's workspace (gross, USD). `)],-1),d[17]||=o(`div`,null,[o(`b`,null,`Method.`),l(` Cloudflare GraphQL Analytics, every meter a Workers deployment is billed on: `),o(`code`,null,`containersUsageAdaptiveGroups`),l(` (cpuTimeSec, allocatedMemory, allocatedDisk per app per UTC day), `),o(`code`,null,`durableObjectsPeriodicGroups`),l(` (billable `),o(`code`,null,`duration`),l(` GB-s and SQLite rows read and written per namespace), `),o(`code`,null,`durableObjectsInvocationsAdaptiveGroups`),l(` (requests per namespace), `),o(`code`,null,`durableObjectsSqlStorageGroups`),l(` (bytes stored), `),o(`code`,null,`workersInvocationsAdaptive`),l(` (requests, CPU time), `),o(`code`,null,`r2StorageAdaptiveGroups`),l(` and `),o(`code`,null,`r2OperationsAdaptiveGroups`),l(` (bytes stored, class A/B operations). Prices: vCPU $0.000020/s, memory $0.0000025/GiB-s, disk $0.00000007/GB-s, DO duration $12.50 per million GB-s, DO requests $0.15/M, SQLite rows $0.001/M read and $1.00/M written, DO storage $0.20/GB-month, Workers $0.30/M requests and $0.02/M CPU-ms, R2 $0.015/GB-month, $4.50/M class A and $0.36/M class B (deletes free). Storage is the day's peak, prorated over a 30.44-day month. Gross list price — plan fees and included allowances are not subtracted; Workers Logs volume has no analytics dataset and is not priced. `)],-1),o(`div`,null,[d[14]||=o(`b`,null,`Scope.`,-1),d[15]||=l(` Attributed to this group: the Workers `,-1),o(`code`,null,_(y.value.attribution.workers.join(`, `)),1),l(`, every Durable Object namespace they host (`+_(Object.keys(y.value.attribution.durableObjectNamespaces).length)+`), the R2 buckets named after them (`+_(Object.keys(y.value.attribution.r2Buckets).length)+`), and the container apps mapped in `,1),o(`code`,null,`costs.groups.`+_(y.value.group),1),l(` (`+_(Object.keys(y.value.attribution.containerApps).length)+`). Everything else in the account is priced the same way into the account total, which is what "share of account" divides by. `,1)])])])])]),_:1},8,[`title`])):c(``,!0)}});export{Oe as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./AppShell-Bw3-_TTE.js";import{Pr as t,an as n,gn as r,hi as i,in as a,on as o,pn as s,qt as c,r as l,rn as u,sn as d,sr as f,tr as p,vi as m,xi as h}from"./seed-B8mQEhhw.js";var g=e=>e===null?`—`:`${Math.round(e*100)}%`;function _(e){return e===null?`—`:e<1?`${Math.round(e*60)} min`:e<48?`${e.toFixed(1)} h`:`${(e/24).toFixed(1)} d`}var v=(e,t=2)=>e===null?`—`:e.toFixed(t);function y(e){let t=new Date(`${e}T00:00:00Z`);return Number.isNaN(t.getTime())?e:`${[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`][t.getUTCMonth()]} ${t.getUTCDate()}`}function b(e){let t=e.totals;return[{label:`Merged`,value:String(t.prsMerged),note:`${t.agentAuthoredPrs} agent-authored · ${e.range.weeks} week${e.range.weeks===1?``:`s`}`},{label:`Issue → merge`,value:_(t.leadTimeHours.median),note:t.leadTimeHours.mean===null?`no merges in range`:`median · mean ${_(t.leadTimeHours.mean)}`},{label:`First-pass CI`,value:g(t.firstPassCi.share),note:t.firstPassCi.known===0?`no CI facts in range`:`${t.firstPassCi.passed} of ${t.firstPassCi.known} green at the first attempt`},{label:`Review rounds`,value:v(t.reviewRounds.perPr),note:`per PR · ${t.reviewRounds.verdicts} verdicts, ${t.reviewRounds.fixRounds} fix round${t.reviewRounds.fixRounds===1?``:`s`}`},{label:`No human edit`,value:g(t.findings.noHumanEditShare),note:t.findings.total===0?`no findings in range`:`of ${t.findings.total} findings resolved by an agent alone`},{label:`Blocking caught`,value:String(t.findings.blocking),note:`${t.findings.major} major · ${t.findings.minor} minor · ${t.findings.nit} nit`}]}function x(e){return e.findings.total===0?`0`:`${e.findings.total}${e.findings.blocking>0?` (${e.findings.blocking} blocking)`:``}`}function S(e){return e.firstPassCi.known===0?`—`:`${e.firstPassCi.passed}/${e.firstPassCi.known}`}var C={class:`text-xs text-muted`},ee={key:1,class:`text-highlighted`},te=[`href`],w={class:`mb-4 flex flex-wrap items-center gap-x-4 gap-y-2`},T={key:0,class:`flex items-center gap-1`,"aria-label":`Repositories`},E={key:0,class:`rounded-md bg-accented px-2.5 py-1 text-xs font-medium text-highlighted`,"aria-current":`page`},D=[`href`],O={class:`font-mono text-sm tabular-nums text-muted`},k={class:`mb-5 grid grid-cols-[repeat(auto-fit,minmax(190px,1fr))] gap-3`},A={class:`font-mono text-[0.6875rem] font-medium uppercase tracking-widest text-dimmed`},j={class:`font-mono text-2xl font-medium tabular-nums`},M={class:`text-xs text-muted`},N={class:`mb-5 grid gap-3 rounded-lg border border-default bg-elevated px-5 py-4`},P={class:`overflow-x-auto`},F={class:`weeks w-full min-w-[52rem] border-collapse whitespace-nowrap font-mono text-[0.8125rem] tabular-nums`},I=[`title`],L={class:`mb-5 grid gap-3 rounded-lg border border-default bg-elevated px-5 py-4`},R={key:0,class:`text-sm text-muted`},z={key:1,class:`overflow-x-auto`},B={class:`units w-full min-w-[52rem] border-collapse font-mono text-[0.8125rem] tabular-nums`},V=[`href`],H={key:1,class:`text-dimmed`},U=[`title`],W=[`href`],G={class:`text-xs text-muted`},K={class:`rounded bg-accented px-1 py-0.5`},q={class:`border-t border-default pt-3.5 text-xs text-dimmed`},J={class:`mt-2 grid gap-1.5`},Y=`border-b border-muted bg-(--ui-bg-muted) px-2.5 py-1.5 text-xs font-medium text-muted whitespace-nowrap`,X=`border-b border-muted px-2.5 py-1.5`,Z=r({__name:`DeliveryPage`,setup(r){let Z=l(`delivery`),Q=u(()=>Z?.report??null),$=u(()=>Z?.repos??[]),ne=u(()=>Q.value?b(Q.value):[]),re=[1,2,4,8,13];return(r,l)=>Q.value?(p(),n(e,{key:0,title:`${Q.value.repo} delivery`,nav:`delivery`},{actions:t(()=>[a(`span`,C,[(p(),d(c,null,f(re,(e,t)=>(p(),d(c,{key:e},[t>0?(p(),d(c,{key:0},[s(` · `)],64)):o(``,!0),e===Q.value.range.weeks?(p(),d(`b`,ee,h(e)+`w`,1)):(p(),d(`a`,{key:2,class:`text-primary hover:underline`,href:`/delivery/${Q.value.repo}?weeks=${e}`},h(e)+`w`,9,te))],64))),64))])]),default:t(()=>[a(`div`,w,[$.value.length>1?(p(),d(`nav`,T,[(p(!0),d(c,null,f($.value,e=>(p(),d(c,{key:e},[e===Q.value.repo?(p(),d(`span`,E,h(e),1)):(p(),d(`a`,{key:1,class:`rounded-md px-2.5 py-1 text-xs text-muted no-underline hover:bg-elevated hover:text-highlighted`,href:`/delivery/${e}`},h(e),9,D))],64))),128))])):o(``,!0),a(`p`,O,[s(h(i(y)(Q.value.range.since))+` → `+h(i(y)(Q.value.range.until))+` · `+h(Q.value.range.weeks)+`w · weeks start Monday, UTC`,1),Q.value.truncated?(p(),d(c,{key:0},[s(` · newest pull requests only`)],64)):o(``,!0)])]),a(`section`,k,[(p(!0),d(c,null,f(ne.value,e=>(p(),d(`div`,{key:e.label,class:`grid gap-0.5 rounded-lg border border-default bg-elevated px-4 py-3.5`},[a(`span`,A,h(e.label),1),a(`span`,j,h(e.value),1),a(`span`,M,h(e.note),1)]))),128))]),a(`section`,N,[l[0]||=a(`div`,null,[a(`h2`,{class:`text-[0.9375rem] font-medium`},`By week`),a(`p`,{class:`text-sm text-muted`},`One row per Monday-start week · merged pull requests only`)],-1),a(`div`,P,[a(`table`,F,[a(`thead`,null,[a(`tr`,null,[a(`th`,{class:m([Y,`text-left`])},`Week`,2),a(`th`,{class:m([Y,`text-right`])},`Merged`,2),a(`th`,{class:m([Y,`text-right`])},`Agent-authored`,2),a(`th`,{class:m([Y,`text-right`])},`Issue → merge`,2),a(`th`,{class:m([Y,`text-right`])},`First-pass CI`,2),a(`th`,{class:m([Y,`text-right`])},`Rounds / PR`,2),a(`th`,{class:m([Y,`text-right`])},`Findings`,2),a(`th`,{class:m([Y,`text-right`])},`No human edit`,2),a(`th`,{class:m([Y,`text-right`])},`Agent run min`,2)])]),a(`tbody`,null,[(p(!0),d(c,null,f(Q.value.weeks,e=>(p(),d(`tr`,{key:e.week},[a(`td`,{class:m(X),title:`${e.week} → ${e.until}`},h(i(y)(e.week))+` – `+h(i(y)(e.until)),9,I),a(`td`,{class:m([X,`text-right font-medium`])},h(e.prsMerged),3),a(`td`,{class:m([X,`text-right`])},h(e.agentAuthoredPrs),3),a(`td`,{class:m([X,`text-right`])},h(i(_)(e.leadTimeHours.median)),3),a(`td`,{class:m([X,`text-right`])},h(i(S)(e)),3),a(`td`,{class:m([X,`text-right`])},h(i(v)(e.reviewRounds.perPr)),3),a(`td`,{class:m([X,`text-right`])},h(i(x)(e)),3),a(`td`,{class:m([X,`text-right`])},h(i(g)(e.findings.noHumanEditShare)),3),a(`td`,{class:m([X,`text-right`])},h(e.agentRuns.minutes.toFixed(0)),3)]))),128))])])])]),a(`section`,L,[l[3]||=a(`div`,null,[a(`h2`,{class:`text-[0.9375rem] font-medium`},`By unit`),a(`p`,{class:`text-sm text-muted`},` One row per board issue the pull requests link · the issue's opening starts the clock `)],-1),Q.value.units.length===0?(p(),d(`p`,R,`Nothing merged in range.`)):(p(),d(`div`,z,[a(`table`,B,[a(`thead`,null,[a(`tr`,null,[a(`th`,{class:m([Y,`text-left`])},`Issue`,2),a(`th`,{class:m([Y,`text-left`])},`Unit`,2),a(`th`,{class:m([Y,`text-left`])},`PRs`,2),a(`th`,{class:m([Y,`text-right`])},`Issue → merge`,2),a(`th`,{class:m([Y,`text-right`])},`First-pass CI`,2),a(`th`,{class:m([Y,`text-right`])},`Rounds`,2),a(`th`,{class:m([Y,`text-right`])},`Findings`,2),a(`th`,{class:m([Y,`text-right`])},`No human edit`,2)])]),a(`tbody`,null,[(p(!0),d(c,null,f(Q.value.units,e=>(p(),d(`tr`,{key:e.issue??`none`},[a(`td`,{class:m([X,`whitespace-nowrap`])},[e.issue===null?(p(),d(`span`,H,`—`)):(p(),d(`a`,{key:0,class:`text-primary hover:underline`,href:`https://github.com/${Q.value.repo}/issues/${e.issue}`},`#`+h(e.issue),9,V))],2),a(`td`,{class:m([X,`max-w-[28rem] truncate font-sans`]),title:e.title},h(e.title),11,U),a(`td`,{class:m([X,`whitespace-nowrap`])},[(p(!0),d(c,null,f(e.prs,(e,t)=>(p(),d(c,{key:e},[t>0?(p(),d(c,{key:0},[s(`, `)],64)):o(``,!0),a(`a`,{class:`text-primary hover:underline`,href:`https://github.com/${Q.value.repo}/pull/${e}`},h(e),9,W)],64))),128))],2),a(`td`,{class:m([X,`text-right`])},h(i(_)(e.leadTimeHours.median)),3),a(`td`,{class:m([X,`text-right`])},h(i(S)(e)),3),a(`td`,{class:m([X,`text-right`])},h(e.reviewRounds.verdicts),3),a(`td`,{class:m([X,`text-right`])},h(i(x)(e)),3),a(`td`,{class:m([X,`text-right`])},h(i(g)(e.findings.noHumanEditShare)),3)]))),128))])])])),a(`p`,G,[l[1]||=s(` Machine-readable twin: `,-1),a(`code`,K,`GET /delivery/`+h(Q.value.repo)+`.json`,1),l[2]||=s(` (same gate). `,-1)])]),a(`footer`,q,[a(`details`,null,[l[13]||=a(`summary`,{class:`cursor-pointer text-muted`},`How these numbers are computed`,-1),a(`div`,J,[l[11]||=a(`div`,null,[a(`b`,null,`Live.`),s(` Every load reads GitHub (the merged pull requests in range, each one's timeline and its branch's workflow runs, the board issue its body links) and the run history you may see — nothing cached, nothing stored. `)],-1),l[12]||=a(`div`,null,[a(`b`,null,`Issue → merge`),s(` runs from the linked board issue's opening (a closing keyword or a `),a(`code`,null,`board item`),s(` reference in the body) to the merge; a pull request that links no issue counts from its own opening. `),a(`b`,null,`First-pass CI`),s(` is green when every pull-request-triggered workflow run (`),a(`code`,null,`pull_request`),s(`, `),a(`code`,null,`pull_request_target`),s(`) on the first head succeeded at its first attempt — a rerun or a red run fails it; a head with no such run is not counted. `),a(`b`,null,`Review rounds`),s(` are the review agent's verdicts; a `),a(`i`,null,`fix round`),s(` is a verdict that followed a push. `),a(`b`,null,`No human edit`),s(` is the share of the agent's findings on pull requests where every push after the first verdict was an agent's: a bot login, or a commit co-authored by an agent. `),a(`b`,null,`Agent run minutes`),s(` are the finished runs of this repository that named a pull request. `)],-1),a(`div`,null,[l[5]||=a(`b`,null,`Identities.`,-1),l[6]||=s(` Verdicts by `,-1),a(`code`,null,h(Q.value.identities.reviewers.join(`, `)||`(none configured)`),1),l[7]||=s(`; agent logins end in `,-1),l[8]||=a(`code`,null,`[bot]`,-1),Q.value.identities.agentLogins.length?(p(),d(c,{key:0},[l[4]||=s(`, plus `,-1),a(`code`,null,h(Q.value.identities.agentLogins.join(`, `)),1)],64)):o(``,!0),l[9]||=s(`; agent co-authors named `,-1),a(`code`,null,h(Q.value.identities.agentCoauthors.join(`, `)||`(none)`),1),l[10]||=s(`. `,-1)])])])])]),_:1},8,[`title`])):o(``,!0)}});export{Z as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e,y as t}from"./AppShell-
|
|
1
|
+
import{t as e,y as t}from"./AppShell-Bw3-_TTE.js";import{Pr as n,a as r,an as i,gn as a,hi as o,i as s,in as c,mn as l,r as u,tr as d,xi as f}from"./seed-B8mQEhhw.js";import{t as p}from"./RunsTabs-Qn_5TVJU.js";var m={class:`notfound mx-auto my-12 max-w-xl text-center text-toned`},h={class:`why text-[0.8rem] text-muted`},g=a({__name:`NotFoundPage`,setup(t){let a=u(`runNotFound`),g=s(a?.retentionDays??null);return(t,a)=>{let s=r;return d(),i(e,{title:`Run not found`,nav:`runs`},{default:n(()=>[l(p,{current:`runs`}),c(`section`,m,[a[0]||=c(`p`,{class:`code mb-3 font-mono text-4xl font-medium tracking-wide text-dimmed`},`404`,-1),a[1]||=c(`h2`,{class:`mb-3 text-lg font-medium tracking-tight text-highlighted`},`That run isn't here.`,-1),a[2]||=c(`p`,{class:`mb-2.5 leading-relaxed`},` It may have finished and aged out, the link may be missing its token, or it never existed — this page says the same thing in every case. `,-1),c(`p`,h,f(o(g)),1),l(s,{class:`back mt-4`,color:`neutral`,variant:`outline`,to:`/runs`,label:`← All runs`})])]),_:1})}}}),_=t({default:()=>v}),v=g;export{_ as n,v as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./AppShell-CJLPO_aI.js";import{Pr as t,an as n,gn as r,hi as i,in as a,mn as o,on as ee,pn as s,qt as c,r as l,rn as u,sn as d,sr as f,tr as p,xi as m}from"./seed-B8mQEhhw.js";import{t as h}from"./StatusDot-CTDLBv92.js";import{a as te,c as ne,d as re,f as g,i as _,l as ie,n as ae,o as oe,r as se,s as v,t as ce,u as le}from"./residentDiskBudget-BMBKlYRH.js";var ue={class:`mt-4 first:mt-0`},de={class:`w-full border-collapse font-mono text-[0.8125rem]`},fe={class:`border-t border-muted`},pe={class:`px-2 py-1 align-top`},me={class:`ml-1.5 font-medium`},y={class:`border-t border-muted`},b={class:`break-all px-2 py-1 align-top`},x={key:0},S={key:1,class:`text-dimmed`},C={class:`border-t border-muted`},w={class:`break-all px-2 py-1 align-top`},T={key:0},E={key:1,class:`text-dimmed`},D={class:`border-t border-muted`},O={class:`break-all px-2 py-1 align-top`},k={key:0},A={key:1,class:`text-dimmed`},j={class:`border-t border-muted`},M={class:`break-all px-2 py-1 align-top`},N={key:0},P={key:1,class:`text-dimmed`},F={class:`border-t border-muted`},I={class:`break-all px-2 py-1 align-top`},L={key:1,class:`text-dimmed`},R={class:`mt-4`},z={class:`w-full border-collapse font-mono text-[0.8125rem]`},he={class:`border-t border-muted`},ge={class:`break-all px-2 py-1 align-top`},_e=[`href`],ve={key:1},ye={class:`border-t border-muted`},be={class:`break-all px-2 py-1 align-top`},xe={class:`border-t border-muted`},Se={class:`break-all px-2 py-1 align-top`},Ce=[`href`],we={key:1},Te={key:2,class:`text-dimmed`},Ee={class:`border-t border-muted`},De={class:`break-all px-2 py-1 align-top`},Oe={key:0},ke={key:1,class:`text-dimmed`},Ae={class:`border-t border-muted`},je={class:`break-all px-2 py-1 align-top`},Me={key:0},Ne={key:1,class:`text-dimmed`},Pe={class:`border-t border-muted`},Fe={class:`break-all px-2 py-1 align-top`},Ie={key:0},Le={key:1,class:`text-dimmed`},Re={class:`mt-4`},ze={class:`w-full border-collapse font-mono text-[0.8125rem]`},Be={class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},Ve={class:`break-all px-2 py-1 align-top`},He={class:`w-full border-collapse font-mono text-[0.8125rem]`},Ue={class:`w-32 break-all px-2 py-1 align-top text-muted sm:w-96 sm:break-words`},We={class:`px-2 py-1 align-top`},Ge={key:1,class:`text-xs text-muted`},Ke={class:`mt-4`},qe={key:0,class:`w-full border-collapse font-mono text-[0.8125rem]`},Je={class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},Ye={class:`break-all px-2 py-1 align-top`},Xe={key:0},Ze={key:1,class:`text-dimmed`},B={key:1,class:`text-xs text-muted`},Qe={class:`mt-4`},$e={class:`mb-1 text-xs text-muted`},et={class:`overflow-x-auto`},tt={class:`w-full border-collapse font-mono text-[0.8125rem]`},nt={class:`break-all px-2 py-1 align-top`},rt={key:0,class:`text-xs text-muted`},it={class:`break-all px-2 py-1 align-top`},at=[`href`],ot={key:1},st={key:2,class:`text-dimmed`},ct={class:`break-all px-2 py-1 align-top`},lt={key:0},ut={key:1,class:`text-dimmed`},dt={key:2},ft={key:3,class:`text-dimmed`},pt={class:`break-all px-2 py-1 align-top`},mt={key:0},ht={key:1,class:`text-dimmed`},gt={key:2},_t={key:3,class:`text-dimmed`},vt={key:1,class:`text-xs text-muted`},yt={class:`mt-4`},bt={class:`w-full border-collapse font-mono text-[0.8125rem]`},xt={class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},St={class:`px-2 py-1 align-top`},Ct={class:`mt-4`},wt={key:0,class:`w-full border-collapse font-mono text-[0.8125rem]`},Tt={class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},Et={class:`break-all px-2 py-1 align-top`},Dt={class:`text-xs text-muted`},Ot={key:1,class:`text-xs text-muted`},kt={class:`mt-4`},At={class:`w-full border-collapse font-mono text-[0.8125rem]`},jt={class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},Mt={class:`break-all px-2 py-1 align-top`},Nt={key:0},Pt={key:1,class:`text-dimmed`},Ft={class:`mt-4 text-xs text-muted`},It={class:`rounded bg-elevated px-1 py-0.5`},Lt={class:`rounded bg-elevated px-1 py-0.5`},Rt={class:`rounded bg-elevated px-1 py-0.5`},V=r({__name:`ResidentDetailPage`,setup(r){let V=l(`resident`),H=u(()=>V?.record??{}),U=u(()=>ie(H.value)),W=u(()=>le(H.value)||(V?.slug??``)),G=u(()=>g(U.value.sha)),K=u(()=>oe.test(W.value)?`https://github.com/${W.value}`:void 0),q=u(()=>K.value&&/^[0-9a-f]{7,40}$/.test(G.value)?`${K.value}/commit/${G.value}`:void 0),J=u(()=>{let e=U.value.snapshot;return e&&typeof e==`object`?v(e):void 0}),zt=u(()=>v(U.value.schedules)),Y=u(()=>{let e=v(H.value.commands),t=v(H.value.effects);return Object.keys(e).sort().map(n=>({name:n,command:g(e[n]),effect:g(t[n])||`readonly`}))}),X=u(()=>{let e=U.value.threads;return(Array.isArray(e)?e.map(v):[]).map(e=>{let t=g(e.sha);return{threadKey:g(e.threadKey)||`?`,ref:g(e.ref)||`?`,sha:t?t.slice(0,8):``,commitHref:K.value&&/^[0-9a-f]{7,40}$/.test(t)?`${K.value}/commit/${t}`:void 0,user:g(e.user),deps:g(e.deps),boundAt:g(e.boundAt),lastAttachAt:g(e.lastAttachAt),evicted:e.evicted===!0,evictedAt:g(e.evictedAt),evictedWhy:g(e.evictedWhy)}}).sort((e,t)=>t.lastAttachAt.localeCompare(e.lastAttachAt))}),Z=u(()=>X.value.filter(e=>!e.evicted).length),Q=u(()=>{let e=U.value.lastRestore;return e?JSON.stringify(e):``}),$=u(()=>ne(H.value)),Bt=u(()=>typeof H.value.diskBudgetMb==`number`?H.value.diskBudgetMb:void 0),Vt=u(()=>{let e=$.value;if(!e)return[];let t=ce(e),{freeKiB:n,capped:r,capacityKiB:i}=ae(e,Bt.value),a=n-t.totalKiB,o=t=>{let n=te(e.parts,t);return n===null?`? (checkout not measured)`:n===0?`?`:`${Math.max(0,Math.floor(a/n))} more (${_(n)} each)`};return[[`used / total`,se(e)],[`free`,`${_(n)}${r?` under the ${_(i)} diskBudgetMb cap`:``}`],[`reserve`,`${_(t.totalKiB)} (snapshot staging ${_(t.stagingKiB)} + floor ${_(t.floorKiB)})`],[`headroom`,`${_(Math.max(0,a))} — room for ${o(`hardlink`)} hardlinked trees, ${o(`reconcile`)} lockfile-diverged (reconciling)`],[`measured`,e.at||`—`]]}),Ht=u(()=>{let e=$.value;if(!e)return[];let t=[[`mirror`,_(e.parts.mirror)],[`checkout deps (node_modules)`,_(e.parts.deps)],[`checkout (history + tree + build)`,_(e.parts.checkout)]];for(let[n,r]of Object.entries(e.parts.threads).sort((e,t)=>t[1]-e[1]))t.push([`thread ${n}`,_(r)]);for(let[n,r]of Object.entries(e.parts.homes).sort((e,t)=>t[1]-e[1]))r>=1024&&t.push([`home ${n}`,_(r)]);return t.push([`other (image, /tmp, …)`,_(e.parts.other)]),t});return(r,l)=>(p(),n(e,{title:W.value||`Resident`,nav:`residents`},{leading:t(()=>[...l[0]||=[a(`a`,{class:`back text-sm text-muted no-underline hover:text-primary`,href:`/residents`},`← All residents`,-1)]]),default:t(()=>[a(`section`,ue,[l[8]||=a(`h2`,{class:`mb-1.5 font-mono text-xs font-medium uppercase tracking-wider text-muted`},`Lifecycle`,-1),a(`table`,de,[a(`tbody`,null,[a(`tr`,fe,[l[1]||=a(`td`,{class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},`state`,-1),a(`td`,pe,[o(h,{tone:i(re)(U.value.state),label:U.value.state},null,8,[`tone`,`label`]),a(`span`,me,m(U.value.state),1)])]),a(`tr`,y,[l[2]||=a(`td`,{class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},`reason`,-1),a(`td`,b,[U.value.reason?(p(),d(`span`,x,m(U.value.reason),1)):(p(),d(`span`,S,`—`))])]),a(`tr`,C,[l[3]||=a(`td`,{class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},`last refresh error`,-1),a(`td`,w,[i(g)(U.value.lastRefreshError)?(p(),d(`span`,T,m(i(g)(U.value.lastRefreshError)),1)):(p(),d(`span`,E,`—`))])]),a(`tr`,D,[l[4]||=a(`td`,{class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},`last restore`,-1),a(`td`,O,[Q.value?(p(),d(`span`,k,m(Q.value),1)):(p(),d(`span`,A,`—`))])]),a(`tr`,j,[l[5]||=a(`td`,{class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},`state updated`,-1),a(`td`,M,[i(g)(U.value.updatedAt)?(p(),d(`span`,N,m(i(g)(U.value.updatedAt)),1)):(p(),d(`span`,P,`—`))])]),a(`tr`,F,[l[7]||=a(`td`,{class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},`idle since`,-1),a(`td`,I,[i(g)(U.value.idleSince)?(p(),d(c,{key:0},[s(m(i(g)(U.value.idleSince))+` `,1),l[6]||=a(`span`,{class:`text-xs text-muted`},`(refresh parked; container may sleep)`,-1)],64)):(p(),d(`span`,L,`awake`))])])])])]),a(`section`,R,[l[15]||=a(`h2`,{class:`mb-1.5 font-mono text-xs font-medium uppercase tracking-wider text-muted`},`Pinned facts`,-1),a(`table`,z,[a(`tbody`,null,[a(`tr`,he,[l[9]||=a(`td`,{class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},`repository`,-1),a(`td`,ge,[K.value?(p(),d(`a`,{key:0,class:`text-primary`,href:K.value},m(K.value),9,_e)):(p(),d(`span`,ve,m(i(g)(H.value.resource)||`—`),1))])]),a(`tr`,ye,[l[10]||=a(`td`,{class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},`default ref`,-1),a(`td`,be,m(i(g)(U.value.defaultRef)||i(g)(H.value.defaultRef)||`—`),1)]),a(`tr`,xe,[l[11]||=a(`td`,{class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},`pinned sha`,-1),a(`td`,Se,[q.value?(p(),d(`a`,{key:0,class:`text-primary`,href:q.value},m(G.value),9,Ce)):G.value?(p(),d(`span`,we,m(G.value),1)):(p(),d(`span`,Te,`—`))])]),a(`tr`,Ee,[l[12]||=a(`td`,{class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},`lockfile hash`,-1),a(`td`,De,[i(g)(U.value.lockfileHash)?(p(),d(`span`,Oe,m(i(g)(U.value.lockfileHash)),1)):(p(),d(`span`,ke,`—`))])]),a(`tr`,Ae,[l[13]||=a(`td`,{class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},`provisioned`,-1),a(`td`,je,[i(g)(U.value.provisionedAt)?(p(),d(`span`,Me,m(i(g)(U.value.provisionedAt)),1)):(p(),d(`span`,Ne,`—`))])]),a(`tr`,Pe,[l[14]||=a(`td`,{class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},`last refresh`,-1),a(`td`,Fe,[i(g)(U.value.lastRefreshAt)?(p(),d(`span`,Ie,m(i(g)(U.value.lastRefreshAt)),1)):(p(),d(`span`,Le,`—`))])])])])]),a(`section`,Re,[l[17]||=a(`h2`,{class:`mb-1.5 font-mono text-xs font-medium uppercase tracking-wider text-muted`},`Disk`,-1),$.value?(p(),d(c,{key:0},[a(`table`,ze,[a(`tbody`,null,[(p(!0),d(c,null,f(Vt.value,([e,t])=>(p(),d(`tr`,{key:e,class:`border-t border-muted`},[a(`td`,Be,m(e),1),a(`td`,Ve,m(t),1)]))),128))])]),l[16]||=a(`p`,{class:`mb-1 mt-2 text-xs text-muted`},` components (one du, hardlinks counted once — a thread tree shows only what it does not share with the checkout) `,-1),a(`table`,He,[a(`tbody`,null,[(p(!0),d(c,null,f(Ht.value,([e,t])=>(p(),d(`tr`,{key:e,class:`border-t border-muted`},[a(`td`,Ue,m(e),1),a(`td`,We,m(t),1)]))),128))])])],64)):(p(),d(`p`,Ge,` not measured yet — the first refresh cycle or attach of this container measures it `))]),a(`section`,Ke,[l[18]||=a(`h2`,{class:`mb-1.5 font-mono text-xs font-medium uppercase tracking-wider text-muted`},`Snapshot stamp`,-1),J.value?(p(),d(`table`,qe,[a(`tbody`,null,[(p(),d(c,null,f([`ref`,`sha`,`lockfileHash`,`createdAt`,`mirrorBackupId`,`checkoutBackupId`],e=>a(`tr`,{key:e,class:`border-t border-muted`},[a(`td`,Je,m(e),1),a(`td`,Ye,[i(g)(J.value[e])?(p(),d(`span`,Xe,m(i(g)(J.value[e])),1)):(p(),d(`span`,Ze,`—`))])])),64))])])):(p(),d(`p`,B,`no snapshot recorded`))]),a(`section`,Qe,[l[22]||=a(`h2`,{class:`mb-1.5 font-mono text-xs font-medium uppercase tracking-wider text-muted`},`Thread worktrees`,-1),X.value.length>0?(p(),d(c,{key:0},[a(`p`,$e,m(Z.value)+` live · `+m(X.value.length-Z.value)+` evicted`,1),a(`div`,et,[a(`table`,tt,[a(`tbody`,null,[l[21]||=a(`tr`,{class:`text-xs text-muted`},[a(`td`,{class:`px-2 py-1`},`thread`),a(`td`,{class:`px-2 py-1`},`ref · sha`),a(`td`,{class:`px-2 py-1`},`user · deps`),a(`td`,{class:`px-2 py-1`},`bound · last attach`)],-1),(p(!0),d(c,null,f(X.value,e=>(p(),d(`tr`,{key:e.threadKey,class:`border-t border-muted`},[a(`td`,nt,[e.evicted?(p(),d(`span`,rt,[s(`evicted `+m(e.evictedAt||`—`),1),e.evictedWhy?(p(),d(c,{key:0},[s(` · `+m(e.evictedWhy),1)],64)):ee(``,!0)])):(p(),n(h,{key:1,tone:`green`,label:`live`,tip:`live`})),s(` `+m(e.threadKey),1)]),a(`td`,it,[s(m(e.ref)+` · `,1),e.commitHref?(p(),d(`a`,{key:0,class:`text-primary`,href:e.commitHref},m(e.sha),9,at)):e.sha?(p(),d(`span`,ot,m(e.sha),1)):(p(),d(`span`,st,`—`))]),a(`td`,ct,[e.user?(p(),d(`span`,lt,m(e.user),1)):(p(),d(`span`,ut,`—`)),l[19]||=s(` · `,-1),e.deps?(p(),d(`span`,dt,m(e.deps),1)):(p(),d(`span`,ft,`—`))]),a(`td`,pt,[e.boundAt?(p(),d(`span`,mt,m(e.boundAt),1)):(p(),d(`span`,ht,`—`)),l[20]||=s(` · `,-1),e.lastAttachAt?(p(),d(`span`,gt,m(e.lastAttachAt),1)):(p(),d(`span`,_t,`—`))])]))),128))])])])],64)):(p(),d(`p`,vt,`no thread worktrees`))]),a(`section`,yt,[l[23]||=a(`h2`,{class:`mb-1.5 font-mono text-xs font-medium uppercase tracking-wider text-muted`},`Pending schedules`,-1),a(`table`,bt,[a(`tbody`,null,[(p(),d(c,null,f([[`refresh`,`refresh`],[`provision run`,`provisionRun`],[`provision deadline`,`provisionDeadline`]],([e,t])=>a(`tr`,{key:t,class:`border-t border-muted`},[a(`td`,xt,m(e),1),a(`td`,St,m(i(g)(zt.value[t]??0)||`0`),1)])),64))])])]),a(`section`,Ct,[l[25]||=a(`h2`,{class:`mb-1.5 font-mono text-xs font-medium uppercase tracking-wider text-muted`},`Command table`,-1),Y.value.length>0?(p(),d(`table`,wt,[a(`tbody`,null,[(p(!0),d(c,null,f(Y.value,e=>(p(),d(`tr`,{key:e.name,class:`border-t border-muted`},[a(`td`,Tt,m(e.name),1),a(`td`,Et,[a(`code`,null,m(e.command),1),l[24]||=s(),a(`span`,Dt,m(e.effect),1)])]))),128))])])):(p(),d(`p`,Ot,`no command table`))]),a(`section`,kt,[l[26]||=a(`h2`,{class:`mb-1.5 font-mono text-xs font-medium uppercase tracking-wider text-muted`},`Registry settings`,-1),a(`table`,At,[a(`tbody`,null,[(p(!0),d(c,null,f([[`onboarded`,i(g)(H.value.onboardedAt)],[`record updated`,i(g)(H.value.updatedAt)],[`provisioning timeout (ms)`,i(g)(H.value.provisioningTimeoutMs)],[`disk budget (MB)`,i(g)(H.value.diskBudgetMb)],[`worktree TTL (days)`,i(g)(H.value.worktreeTtlDays??7)]],([e,t])=>(p(),d(`tr`,{key:e,class:`border-t border-muted`},[a(`td`,jt,m(e),1),a(`td`,Mt,[t?(p(),d(`span`,Nt,m(t),1)):(p(),d(`span`,Pt,`—`))])]))),128))])])]),a(`p`,Ft,[l[27]||=s(` Manage from chat: `,-1),a(`code`,It,`repo rebuild `+m(W.value),1),l[28]||=s(` · `,-1),a(`code`,Lt,`repo reconfigure `+m(W.value)+` …`,1),l[29]||=s(` · `,-1),a(`code`,Rt,`repo offboard `+m(W.value)+` --dry-run`,1)])]),_:1},8,[`title`]))}});export{V as default};
|
|
1
|
+
import{t as e}from"./AppShell-Bw3-_TTE.js";import{Pr as t,an as n,gn as r,hi as i,in as a,mn as o,on as ee,pn as s,qt as c,r as l,rn as u,sn as d,sr as f,tr as p,xi as m}from"./seed-B8mQEhhw.js";import{t as h}from"./StatusDot-Bug2a6T6.js";import{a as te,c as ne,d as re,f as g,i as _,l as ie,n as ae,o as oe,r as se,s as v,t as ce,u as le}from"./residentDiskBudget-BMBKlYRH.js";var ue={class:`mt-4 first:mt-0`},de={class:`w-full border-collapse font-mono text-[0.8125rem]`},fe={class:`border-t border-muted`},pe={class:`px-2 py-1 align-top`},me={class:`ml-1.5 font-medium`},y={class:`border-t border-muted`},b={class:`break-all px-2 py-1 align-top`},x={key:0},S={key:1,class:`text-dimmed`},C={class:`border-t border-muted`},w={class:`break-all px-2 py-1 align-top`},T={key:0},E={key:1,class:`text-dimmed`},D={class:`border-t border-muted`},O={class:`break-all px-2 py-1 align-top`},k={key:0},A={key:1,class:`text-dimmed`},j={class:`border-t border-muted`},M={class:`break-all px-2 py-1 align-top`},N={key:0},P={key:1,class:`text-dimmed`},F={class:`border-t border-muted`},I={class:`break-all px-2 py-1 align-top`},L={key:1,class:`text-dimmed`},R={class:`mt-4`},z={class:`w-full border-collapse font-mono text-[0.8125rem]`},he={class:`border-t border-muted`},ge={class:`break-all px-2 py-1 align-top`},_e=[`href`],ve={key:1},ye={class:`border-t border-muted`},be={class:`break-all px-2 py-1 align-top`},xe={class:`border-t border-muted`},Se={class:`break-all px-2 py-1 align-top`},Ce=[`href`],we={key:1},Te={key:2,class:`text-dimmed`},Ee={class:`border-t border-muted`},De={class:`break-all px-2 py-1 align-top`},Oe={key:0},ke={key:1,class:`text-dimmed`},Ae={class:`border-t border-muted`},je={class:`break-all px-2 py-1 align-top`},Me={key:0},Ne={key:1,class:`text-dimmed`},Pe={class:`border-t border-muted`},Fe={class:`break-all px-2 py-1 align-top`},Ie={key:0},Le={key:1,class:`text-dimmed`},Re={class:`mt-4`},ze={class:`w-full border-collapse font-mono text-[0.8125rem]`},Be={class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},Ve={class:`break-all px-2 py-1 align-top`},He={class:`w-full border-collapse font-mono text-[0.8125rem]`},Ue={class:`w-32 break-all px-2 py-1 align-top text-muted sm:w-96 sm:break-words`},We={class:`px-2 py-1 align-top`},Ge={key:1,class:`text-xs text-muted`},Ke={class:`mt-4`},qe={key:0,class:`w-full border-collapse font-mono text-[0.8125rem]`},Je={class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},Ye={class:`break-all px-2 py-1 align-top`},Xe={key:0},Ze={key:1,class:`text-dimmed`},B={key:1,class:`text-xs text-muted`},Qe={class:`mt-4`},$e={class:`mb-1 text-xs text-muted`},et={class:`overflow-x-auto`},tt={class:`w-full border-collapse font-mono text-[0.8125rem]`},nt={class:`break-all px-2 py-1 align-top`},rt={key:0,class:`text-xs text-muted`},it={class:`break-all px-2 py-1 align-top`},at=[`href`],ot={key:1},st={key:2,class:`text-dimmed`},ct={class:`break-all px-2 py-1 align-top`},lt={key:0},ut={key:1,class:`text-dimmed`},dt={key:2},ft={key:3,class:`text-dimmed`},pt={class:`break-all px-2 py-1 align-top`},mt={key:0},ht={key:1,class:`text-dimmed`},gt={key:2},_t={key:3,class:`text-dimmed`},vt={key:1,class:`text-xs text-muted`},yt={class:`mt-4`},bt={class:`w-full border-collapse font-mono text-[0.8125rem]`},xt={class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},St={class:`px-2 py-1 align-top`},Ct={class:`mt-4`},wt={key:0,class:`w-full border-collapse font-mono text-[0.8125rem]`},Tt={class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},Et={class:`break-all px-2 py-1 align-top`},Dt={class:`text-xs text-muted`},Ot={key:1,class:`text-xs text-muted`},kt={class:`mt-4`},At={class:`w-full border-collapse font-mono text-[0.8125rem]`},jt={class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},Mt={class:`break-all px-2 py-1 align-top`},Nt={key:0},Pt={key:1,class:`text-dimmed`},Ft={class:`mt-4 text-xs text-muted`},It={class:`rounded bg-elevated px-1 py-0.5`},Lt={class:`rounded bg-elevated px-1 py-0.5`},Rt={class:`rounded bg-elevated px-1 py-0.5`},V=r({__name:`ResidentDetailPage`,setup(r){let V=l(`resident`),H=u(()=>V?.record??{}),U=u(()=>ie(H.value)),W=u(()=>le(H.value)||(V?.slug??``)),G=u(()=>g(U.value.sha)),K=u(()=>oe.test(W.value)?`https://github.com/${W.value}`:void 0),q=u(()=>K.value&&/^[0-9a-f]{7,40}$/.test(G.value)?`${K.value}/commit/${G.value}`:void 0),J=u(()=>{let e=U.value.snapshot;return e&&typeof e==`object`?v(e):void 0}),zt=u(()=>v(U.value.schedules)),Y=u(()=>{let e=v(H.value.commands),t=v(H.value.effects);return Object.keys(e).sort().map(n=>({name:n,command:g(e[n]),effect:g(t[n])||`readonly`}))}),X=u(()=>{let e=U.value.threads;return(Array.isArray(e)?e.map(v):[]).map(e=>{let t=g(e.sha);return{threadKey:g(e.threadKey)||`?`,ref:g(e.ref)||`?`,sha:t?t.slice(0,8):``,commitHref:K.value&&/^[0-9a-f]{7,40}$/.test(t)?`${K.value}/commit/${t}`:void 0,user:g(e.user),deps:g(e.deps),boundAt:g(e.boundAt),lastAttachAt:g(e.lastAttachAt),evicted:e.evicted===!0,evictedAt:g(e.evictedAt),evictedWhy:g(e.evictedWhy)}}).sort((e,t)=>t.lastAttachAt.localeCompare(e.lastAttachAt))}),Z=u(()=>X.value.filter(e=>!e.evicted).length),Q=u(()=>{let e=U.value.lastRestore;return e?JSON.stringify(e):``}),$=u(()=>ne(H.value)),Bt=u(()=>typeof H.value.diskBudgetMb==`number`?H.value.diskBudgetMb:void 0),Vt=u(()=>{let e=$.value;if(!e)return[];let t=ce(e),{freeKiB:n,capped:r,capacityKiB:i}=ae(e,Bt.value),a=n-t.totalKiB,o=t=>{let n=te(e.parts,t);return n===null?`? (checkout not measured)`:n===0?`?`:`${Math.max(0,Math.floor(a/n))} more (${_(n)} each)`};return[[`used / total`,se(e)],[`free`,`${_(n)}${r?` under the ${_(i)} diskBudgetMb cap`:``}`],[`reserve`,`${_(t.totalKiB)} (snapshot staging ${_(t.stagingKiB)} + floor ${_(t.floorKiB)})`],[`headroom`,`${_(Math.max(0,a))} — room for ${o(`hardlink`)} hardlinked trees, ${o(`reconcile`)} lockfile-diverged (reconciling)`],[`measured`,e.at||`—`]]}),Ht=u(()=>{let e=$.value;if(!e)return[];let t=[[`mirror`,_(e.parts.mirror)],[`checkout deps (node_modules)`,_(e.parts.deps)],[`checkout (history + tree + build)`,_(e.parts.checkout)]];for(let[n,r]of Object.entries(e.parts.threads).sort((e,t)=>t[1]-e[1]))t.push([`thread ${n}`,_(r)]);for(let[n,r]of Object.entries(e.parts.homes).sort((e,t)=>t[1]-e[1]))r>=1024&&t.push([`home ${n}`,_(r)]);return t.push([`other (image, /tmp, …)`,_(e.parts.other)]),t});return(r,l)=>(p(),n(e,{title:W.value||`Resident`,nav:`residents`},{leading:t(()=>[...l[0]||=[a(`a`,{class:`back text-sm text-muted no-underline hover:text-primary`,href:`/residents`},`← All residents`,-1)]]),default:t(()=>[a(`section`,ue,[l[8]||=a(`h2`,{class:`mb-1.5 font-mono text-xs font-medium uppercase tracking-wider text-muted`},`Lifecycle`,-1),a(`table`,de,[a(`tbody`,null,[a(`tr`,fe,[l[1]||=a(`td`,{class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},`state`,-1),a(`td`,pe,[o(h,{tone:i(re)(U.value.state),label:U.value.state},null,8,[`tone`,`label`]),a(`span`,me,m(U.value.state),1)])]),a(`tr`,y,[l[2]||=a(`td`,{class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},`reason`,-1),a(`td`,b,[U.value.reason?(p(),d(`span`,x,m(U.value.reason),1)):(p(),d(`span`,S,`—`))])]),a(`tr`,C,[l[3]||=a(`td`,{class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},`last refresh error`,-1),a(`td`,w,[i(g)(U.value.lastRefreshError)?(p(),d(`span`,T,m(i(g)(U.value.lastRefreshError)),1)):(p(),d(`span`,E,`—`))])]),a(`tr`,D,[l[4]||=a(`td`,{class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},`last restore`,-1),a(`td`,O,[Q.value?(p(),d(`span`,k,m(Q.value),1)):(p(),d(`span`,A,`—`))])]),a(`tr`,j,[l[5]||=a(`td`,{class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},`state updated`,-1),a(`td`,M,[i(g)(U.value.updatedAt)?(p(),d(`span`,N,m(i(g)(U.value.updatedAt)),1)):(p(),d(`span`,P,`—`))])]),a(`tr`,F,[l[7]||=a(`td`,{class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},`idle since`,-1),a(`td`,I,[i(g)(U.value.idleSince)?(p(),d(c,{key:0},[s(m(i(g)(U.value.idleSince))+` `,1),l[6]||=a(`span`,{class:`text-xs text-muted`},`(refresh parked; container may sleep)`,-1)],64)):(p(),d(`span`,L,`awake`))])])])])]),a(`section`,R,[l[15]||=a(`h2`,{class:`mb-1.5 font-mono text-xs font-medium uppercase tracking-wider text-muted`},`Pinned facts`,-1),a(`table`,z,[a(`tbody`,null,[a(`tr`,he,[l[9]||=a(`td`,{class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},`repository`,-1),a(`td`,ge,[K.value?(p(),d(`a`,{key:0,class:`text-primary`,href:K.value},m(K.value),9,_e)):(p(),d(`span`,ve,m(i(g)(H.value.resource)||`—`),1))])]),a(`tr`,ye,[l[10]||=a(`td`,{class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},`default ref`,-1),a(`td`,be,m(i(g)(U.value.defaultRef)||i(g)(H.value.defaultRef)||`—`),1)]),a(`tr`,xe,[l[11]||=a(`td`,{class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},`pinned sha`,-1),a(`td`,Se,[q.value?(p(),d(`a`,{key:0,class:`text-primary`,href:q.value},m(G.value),9,Ce)):G.value?(p(),d(`span`,we,m(G.value),1)):(p(),d(`span`,Te,`—`))])]),a(`tr`,Ee,[l[12]||=a(`td`,{class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},`lockfile hash`,-1),a(`td`,De,[i(g)(U.value.lockfileHash)?(p(),d(`span`,Oe,m(i(g)(U.value.lockfileHash)),1)):(p(),d(`span`,ke,`—`))])]),a(`tr`,Ae,[l[13]||=a(`td`,{class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},`provisioned`,-1),a(`td`,je,[i(g)(U.value.provisionedAt)?(p(),d(`span`,Me,m(i(g)(U.value.provisionedAt)),1)):(p(),d(`span`,Ne,`—`))])]),a(`tr`,Pe,[l[14]||=a(`td`,{class:`w-32 px-2 py-1 align-top text-muted sm:w-48 sm:whitespace-nowrap`},`last refresh`,-1),a(`td`,Fe,[i(g)(U.value.lastRefreshAt)?(p(),d(`span`,Ie,m(i(g)(U.value.lastRefreshAt)),1)):(p(),d(`span`,Le,`—`))])])])])]),a(`section`,Re,[l[17]||=a(`h2`,{class:`mb-1.5 font-mono text-xs font-medium uppercase tracking-wider text-muted`},`Disk`,-1),$.value?(p(),d(c,{key:0},[a(`table`,ze,[a(`tbody`,null,[(p(!0),d(c,null,f(Vt.value,([e,t])=>(p(),d(`tr`,{key:e,class:`border-t border-muted`},[a(`td`,Be,m(e),1),a(`td`,Ve,m(t),1)]))),128))])]),l[16]||=a(`p`,{class:`mb-1 mt-2 text-xs text-muted`},` components (one du, hardlinks counted once — a thread tree shows only what it does not share with the checkout) `,-1),a(`table`,He,[a(`tbody`,null,[(p(!0),d(c,null,f(Ht.value,([e,t])=>(p(),d(`tr`,{key:e,class:`border-t border-muted`},[a(`td`,Ue,m(e),1),a(`td`,We,m(t),1)]))),128))])])],64)):(p(),d(`p`,Ge,` not measured yet — the first refresh cycle or attach of this container measures it `))]),a(`section`,Ke,[l[18]||=a(`h2`,{class:`mb-1.5 font-mono text-xs font-medium uppercase tracking-wider text-muted`},`Snapshot stamp`,-1),J.value?(p(),d(`table`,qe,[a(`tbody`,null,[(p(),d(c,null,f([`ref`,`sha`,`lockfileHash`,`createdAt`,`mirrorBackupId`,`checkoutBackupId`],e=>a(`tr`,{key:e,class:`border-t border-muted`},[a(`td`,Je,m(e),1),a(`td`,Ye,[i(g)(J.value[e])?(p(),d(`span`,Xe,m(i(g)(J.value[e])),1)):(p(),d(`span`,Ze,`—`))])])),64))])])):(p(),d(`p`,B,`no snapshot recorded`))]),a(`section`,Qe,[l[22]||=a(`h2`,{class:`mb-1.5 font-mono text-xs font-medium uppercase tracking-wider text-muted`},`Thread worktrees`,-1),X.value.length>0?(p(),d(c,{key:0},[a(`p`,$e,m(Z.value)+` live · `+m(X.value.length-Z.value)+` evicted`,1),a(`div`,et,[a(`table`,tt,[a(`tbody`,null,[l[21]||=a(`tr`,{class:`text-xs text-muted`},[a(`td`,{class:`px-2 py-1`},`thread`),a(`td`,{class:`px-2 py-1`},`ref · sha`),a(`td`,{class:`px-2 py-1`},`user · deps`),a(`td`,{class:`px-2 py-1`},`bound · last attach`)],-1),(p(!0),d(c,null,f(X.value,e=>(p(),d(`tr`,{key:e.threadKey,class:`border-t border-muted`},[a(`td`,nt,[e.evicted?(p(),d(`span`,rt,[s(`evicted `+m(e.evictedAt||`—`),1),e.evictedWhy?(p(),d(c,{key:0},[s(` · `+m(e.evictedWhy),1)],64)):ee(``,!0)])):(p(),n(h,{key:1,tone:`green`,label:`live`,tip:`live`})),s(` `+m(e.threadKey),1)]),a(`td`,it,[s(m(e.ref)+` · `,1),e.commitHref?(p(),d(`a`,{key:0,class:`text-primary`,href:e.commitHref},m(e.sha),9,at)):e.sha?(p(),d(`span`,ot,m(e.sha),1)):(p(),d(`span`,st,`—`))]),a(`td`,ct,[e.user?(p(),d(`span`,lt,m(e.user),1)):(p(),d(`span`,ut,`—`)),l[19]||=s(` · `,-1),e.deps?(p(),d(`span`,dt,m(e.deps),1)):(p(),d(`span`,ft,`—`))]),a(`td`,pt,[e.boundAt?(p(),d(`span`,mt,m(e.boundAt),1)):(p(),d(`span`,ht,`—`)),l[20]||=s(` · `,-1),e.lastAttachAt?(p(),d(`span`,gt,m(e.lastAttachAt),1)):(p(),d(`span`,_t,`—`))])]))),128))])])])],64)):(p(),d(`p`,vt,`no thread worktrees`))]),a(`section`,yt,[l[23]||=a(`h2`,{class:`mb-1.5 font-mono text-xs font-medium uppercase tracking-wider text-muted`},`Pending schedules`,-1),a(`table`,bt,[a(`tbody`,null,[(p(),d(c,null,f([[`refresh`,`refresh`],[`provision run`,`provisionRun`],[`provision deadline`,`provisionDeadline`]],([e,t])=>a(`tr`,{key:t,class:`border-t border-muted`},[a(`td`,xt,m(e),1),a(`td`,St,m(i(g)(zt.value[t]??0)||`0`),1)])),64))])])]),a(`section`,Ct,[l[25]||=a(`h2`,{class:`mb-1.5 font-mono text-xs font-medium uppercase tracking-wider text-muted`},`Command table`,-1),Y.value.length>0?(p(),d(`table`,wt,[a(`tbody`,null,[(p(!0),d(c,null,f(Y.value,e=>(p(),d(`tr`,{key:e.name,class:`border-t border-muted`},[a(`td`,Tt,m(e.name),1),a(`td`,Et,[a(`code`,null,m(e.command),1),l[24]||=s(),a(`span`,Dt,m(e.effect),1)])]))),128))])])):(p(),d(`p`,Ot,`no command table`))]),a(`section`,kt,[l[26]||=a(`h2`,{class:`mb-1.5 font-mono text-xs font-medium uppercase tracking-wider text-muted`},`Registry settings`,-1),a(`table`,At,[a(`tbody`,null,[(p(!0),d(c,null,f([[`onboarded`,i(g)(H.value.onboardedAt)],[`record updated`,i(g)(H.value.updatedAt)],[`provisioning timeout (ms)`,i(g)(H.value.provisioningTimeoutMs)],[`disk budget (MB)`,i(g)(H.value.diskBudgetMb)],[`worktree TTL (days)`,i(g)(H.value.worktreeTtlDays??7)]],([e,t])=>(p(),d(`tr`,{key:e,class:`border-t border-muted`},[a(`td`,jt,m(e),1),a(`td`,Mt,[t?(p(),d(`span`,Nt,m(t),1)):(p(),d(`span`,Pt,`—`))])]))),128))])])]),a(`p`,Ft,[l[27]||=s(` Manage from chat: `,-1),a(`code`,It,`repo rebuild `+m(W.value),1),l[28]||=s(` · `,-1),a(`code`,Lt,`repo reconfigure `+m(W.value)+` …`,1),l[29]||=s(` · `,-1),a(`code`,Rt,`repo offboard `+m(W.value)+` --dry-run`,1)])]),_:1},8,[`title`]))}});export{V as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./AppShell-
|
|
1
|
+
import{t as e}from"./AppShell-Bw3-_TTE.js";import{Pr as t,an as n,dr as r,gn as i,in as a,mn as o,on as s,pn as c,qt as l,r as u,rn as d,sn as f,sr as p,tr as m,vi as h,xi as g}from"./seed-B8mQEhhw.js";import{t as _}from"./StatusDot-Bug2a6T6.js";import{c as v,d as y,f as b,l as x,o as S,r as C,u as w}from"./residentDiskBudget-BMBKlYRH.js";import{i as T,n as E}from"./wallClock-DI4HIEN5.js";var D={class:`mb-2 text-xs text-muted`},O={class:`m-0 list-none p-0`},k={class:`font-mono font-medium text-primary`},A={class:`font-medium`},j=[`title`],M=[`title`],N={key:0,class:`basis-full pl-5 text-xs text-warn`},P={key:1,class:`px-2 py-1.5 text-muted`},F=i({__name:`ResidentsIndexPage`,setup(i){let F=u(`residents`),I=E(),L=d(()=>(F?.residents??[]).map((e,t)=>{let n=e,r=w(n),i=x(n),a=b(i.sha),o=b(i.lastRefreshAt),s=o?Date.parse(o):NaN,c=v(n);return{key:`${r||`?`}-${t}`,display:r||b(n.resource)||`?`,state:i.state,tone:y(i.state),reason:i.reason,ref:b(n.defaultRef)||`?`,sha:a?a.slice(0,8):``,refreshed:o,refreshedLabel:Number.isFinite(s)?T(s,I):o,disk:c?C(c):``,diskAt:c?.at??``,href:S.test(r)?`/residents/${r}`:null}})),R=d(()=>b(F?.cap)||`?`),z=d(()=>b(F?.count)||String(L.value.length));return(i,u)=>(m(),n(e,{title:`Resident repos`,nav:`residents`},{default:t(()=>[L.value.length>0?(m(),f(l,{key:0},[a(`p`,D,g(z.value)+`/`+g(R.value)+` resident slots in use · live registry read, not cached `,1),a(`ul`,O,[(m(!0),f(l,null,p(L.value,e=>(m(),f(`li`,{key:e.key,class:`border-b border-muted first:border-t`},[(m(),n(r(e.href?`a`:`span`),{class:h([`row flex flex-wrap items-center gap-2.5 rounded-md px-2 py-1.5 text-inherit no-underline`,e.href?`hover:bg-elevated`:``]),href:e.href??void 0},{default:t(()=>[o(_,{tone:e.tone,label:e.state,tip:e.state},null,8,[`tone`,`label`,`tip`]),a(`span`,k,g(e.display),1),a(`span`,A,g(e.state),1),a(`span`,{class:`font-mono text-xs text-muted max-sm:basis-full max-sm:pl-5`,title:e.refreshed||void 0},[c(` ref `+g(e.ref),1),e.sha?(m(),f(l,{key:0},[c(` · sha `+g(e.sha),1)],64)):s(``,!0),e.refreshedLabel?(m(),f(l,{key:1},[c(` · refreshed `+g(e.refreshedLabel),1)],64)):s(``,!0),e.disk?(m(),f(l,{key:2},[u[0]||=c(` · `,-1),a(`span`,{title:e.diskAt?`measured ${e.diskAt}`:void 0},`disk `+g(e.disk),9,M)],64)):s(``,!0)],8,j),e.reason?(m(),f(`span`,N,g(e.reason),1)):s(``,!0)]),_:2},1032,[`class`,`href`]))]))),128))])],64)):(m(),f(`p`,P,[c(` No repos onboarded (0/`+g(R.value)+`). Onboard one from chat: `,1),u[1]||=a(`code`,{class:`rounded bg-elevated px-1.5 py-0.5`},`repo onboard <owner/name>`,-1),u[2]||=c(`. `,-1)]))]),_:1}))}});export{F as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as e,b as t,d as n,f as r,h as i,m as a,n as o,p as s,r as c,t as l,v as u}from"./AppShell-CJLPO_aI.js";import{$n as d,A as f,B as p,En as m,Fn as h,Gn as g,H as _,Hn as v,Ir as y,J as b,N as x,P as S,Pr as C,Vn as w,Vt as T,Yn as E,_ as D,a as ee,ai as O,an as k,bi as A,cr as j,d as te,di as ne,dr as re,f as M,fi as ie,g as ae,gn as N,h as oe,hi as P,in as F,j as se,kr as I,lt as ce,m as le,mn as L,nt as ue,on as R,p as de,pn as z,qt as B,r as fe,ri as pe,rn as V,rr as me,sn as H,sr as U,t as he,tr as W,u as ge,vi as G,vr as _e,wr as ve,x as ye,xi as K,y as be,yi as xe,z as Se,zt as Ce}from"./seed-B8mQEhhw.js";import{t as we}from"./Tooltip-DD2v9Gxx.js";import{n as q}from"./main-DrSlUcMg.js";import{t as Te}from"./NotFoundPage-BdLcY60r.js";import{n as Ee,r as De,t as Oe}from"./wallClock-DI4HIEN5.js";import{A as ke,D as Ae,E as je,M as J,O as Me,b as Ne,j as Pe,k as Fe,n as Ie,t as Le}from"./favicon-C4Q8cRsP.js";import{t as Re}from"./localIso-L06jV29p.js";var[Y,ze]=p(`DialogRoot`),Be=N({inheritAttrs:!1,__name:`DialogRoot`,props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1,default:!1},modal:{type:Boolean,required:!1,default:!0},unmountOnHide:{type:Boolean,required:!1,default:!0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=ue(n,`open`,t,{defaultValue:n.defaultOpen,passive:n.open===void 0}),i=O(),a=O(),{modal:o,unmountOnHide:s}=ie(n);return ze({open:r,modal:o,unmountOnHide:s,openModal:()=>{r.value=!0},onOpenChange:e=>{r.value=e},onOpenToggle:()=>{r.value=!r.value},contentId:``,titleId:``,descriptionId:``,triggerElement:i,contentElement:a}),(e,t)=>j(e.$slots,`default`,{open:P(r),close:()=>r.value=!1})}}),Ve=N({__name:`DialogClose`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e;x();let n=Y();return(e,r)=>(W(),k(P(f),w(t,{type:e.as===`button`?`button`:void 0,onClick:r[0]||=e=>P(n).onOpenChange(!1)}),{default:C(()=>[j(e.$slots,`default`)]),_:3},16,[`type`]))}}),He=N({__name:`DialogContentImpl`,props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let i=e,o=t,c=Y(),{forwardRef:l,currentElement:u}=x();return c.titleId||=a(void 0,`reka-dialog-title`),c.descriptionId||=a(void 0,`reka-dialog-description`),E(()=>{c.contentElement=u,Se()!==document.body&&(c.triggerElement.value=Se())}),(e,t)=>(W(),k(P(r),{"as-child":``,loop:``,trapped:i.trapFocus,present:i.present,onMountAutoFocus:t[5]||=e=>o(`openAutoFocus`,e),onUnmountAutoFocus:t[6]||=e=>o(`closeAutoFocus`,e)},{default:C(()=>[L(P(s),w({id:P(c).contentId,ref:P(l),as:e.as,"as-child":e.asChild,present:i.present,"disable-outside-pointer-events":e.disableOutsidePointerEvents,role:`dialog`,"aria-describedby":P(c).descriptionId,"aria-labelledby":P(c).titleId,"data-state":P(n)(P(c).open.value)},e.$attrs,{onDismiss:t[0]||=e=>P(c).onOpenChange(!1),onEscapeKeyDown:t[1]||=e=>o(`escapeKeyDown`,e),onFocusOutside:t[2]||=e=>o(`focusOutside`,e),onInteractOutside:t[3]||=e=>o(`interactOutside`,e),onPointerDownOutside:t[4]||=e=>o(`pointerDownOutside`,e)}),{default:C(()=>[j(e.$slots,`default`)]),_:3},16,[`id`,`as`,`as-child`,`present`,`disable-outside-pointer-events`,`aria-describedby`,`aria-labelledby`,`data-state`])]),_:3},8,[`trapped`,`present`]))}}),Ue=N({__name:`DialogContentModal`,props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!0}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,a=Y(),o=S(r),{forwardRef:s,currentElement:c}=x(),l=V(()=>n.present?c.value:void 0);i(l);let u=V(()=>{let{present:e,...t}=n;return t});return I(()=>n.present,(e,t)=>{!e&&t&&a.triggerElement.value?.focus()}),(e,t)=>(W(),k(He,w({...u.value,...P(o)},{ref:P(s),present:e.present,"trap-focus":P(a).open.value,"disable-outside-pointer-events":n.disableOutsidePointerEvents,onCloseAutoFocus:t[0]||=e=>{e.defaultPrevented||(e.preventDefault(),P(a).triggerElement.value?.focus())},onPointerDownOutside:t[1]||=e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()},onFocusOutside:t[2]||=e=>{e.preventDefault()}}),{default:C(()=>[j(e.$slots,`default`)]),_:3},16,[`present`,`trap-focus`,`disable-outside-pointer-events`]))}}),We=N({__name:`DialogContentNonModal`,props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!0}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=S(t);x();let i=Y(),a=O(!1),o=O(!1),s=V(()=>{let{present:e,...t}=n;return t});return I(()=>n.present,(e,t)=>{!e&&t&&(a.value||i.triggerElement.value?.focus(),a.value=!1,o.value=!1)}),(e,t)=>(W(),k(He,w({...s.value,...P(r)},{present:e.present,"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:t[0]||=e=>{e.defaultPrevented||(a.value||P(i).triggerElement.value?.focus(),e.preventDefault()),a.value=!1,o.value=!1},onInteractOutside:t[1]||=e=>{e.defaultPrevented||(a.value=!0,e.detail.originalEvent.type===`pointerdown`&&(o.value=!0));let t=e.target;P(i).triggerElement.value?.contains(t)&&e.preventDefault(),e.detail.originalEvent.type===`focusin`&&o.value&&e.preventDefault()}}),{default:C(()=>[j(e.$slots,`default`)]),_:3},16,[`present`]))}}),Ge=N({__name:`DialogContent`,props:{forceMount:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=Y(),a=S(r),{forwardRef:o}=x();return(e,t)=>(W(),k(P(se),{present:e.forceMount||P(i).open.value,"force-mount":e.forceMount||!P(i).unmountOnHide.value},{default:C(({present:t})=>[P(i).modal.value?y((W(),k(Ue,w({key:0,ref:P(o),present:P(i).unmountOnHide.value||t},{...n,...P(a),...e.$attrs}),{default:C(()=>[j(e.$slots,`default`)]),_:2},1040,[`present`])),[[Ce,P(i).unmountOnHide.value||t]]):y((W(),k(We,w({key:1,ref:P(o),present:P(i).unmountOnHide.value||t},{...n,...P(a),...e.$attrs}),{default:C(()=>[j(e.$slots,`default`)]),_:2},1040,[`present`])),[[Ce,P(i).unmountOnHide.value||t]])]),_:3},8,[`present`,`force-mount`]))}}),Ke=N({__name:`DialogDescription`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`p`}},setup(e){let t=e;x();let n=Y();return(e,r)=>(W(),k(P(f),w(t,{id:P(n).descriptionId}),{default:C(()=>[j(e.$slots,`default`)]),_:3},16,[`id`]))}}),qe=N({__name:`DialogOverlayImpl`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!1,default:!0}},setup(t){let n=t,r=Y(),i=e(n.present);return I(()=>n.present,e=>i.value=e),x(),(e,t)=>(W(),k(P(f),{as:e.as,"as-child":e.asChild,"data-state":P(r).open.value?`open`:`closed`,style:{"pointer-events":`auto`},onPointerdown:t[0]||=T(()=>{},[`left`,`self`,`prevent`])},{default:C(()=>[j(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`data-state`]))}}),Je=N({__name:`DialogOverlay`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=Y(),{forwardRef:n}=x();return(e,r)=>P(t)?.modal.value?(W(),k(P(se),{key:0,present:e.forceMount||P(t).open.value,"force-mount":e.forceMount||!P(t).unmountOnHide.value},{default:C(({present:r})=>[y(L(qe,w(e.$attrs,{ref:P(n),as:e.as,"as-child":e.asChild,present:P(t).unmountOnHide.value||r}),{default:C(()=>[j(e.$slots,`default`)]),_:2},1040,[`as`,`as-child`,`present`]),[[Ce,P(t).unmountOnHide.value||r]])]),_:3},8,[`present`,`force-mount`])):R(`v-if`,!0)}}),Ye=N({__name:`DialogPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(W(),k(P(ye),xe(m(t)),{default:C(()=>[j(e.$slots,`default`)]),_:3},16))}}),Xe=N({__name:`DialogTitle`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`h2`}},setup(e){let t=e,n=Y();return x(),(e,r)=>(W(),k(P(f),w(t,{id:P(n).titleId}),{default:C(()=>[j(e.$slots,`default`)]),_:3},16,[`id`]))}}),Ze=N({__name:`DialogTrigger`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=Y(),{forwardRef:r,currentElement:i}=x();return n.contentId||=a(void 0,`reka-dialog-content`),E(()=>{n.triggerElement.value=i.value}),(e,i)=>(W(),k(P(f),w(t,{ref:P(r),type:e.as===`button`?`button`:void 0,"aria-haspopup":`dialog`,"aria-expanded":P(n).open.value||!1,"aria-controls":P(n).open.value?P(n).contentId:void 0,"data-state":P(n).open.value?`open`:`closed`,onClick:P(n).onOpenToggle}),{default:C(()=>[j(e.$slots,`default`)]),_:3},16,[`type`,`aria-expanded`,`aria-controls`,`data-state`,`onClick`]))}});function Qe(e){let t=new Date(e),n=t.getHours(),r=e=>String(e).padStart(2,`0`),i=new Intl.DateTimeFormat(void 0,{timeZoneName:`short`}).formatToParts(t).find(e=>e.type===`timeZoneName`)?.value;return`${n%12==0?12:n%12}:${r(t.getMinutes())}:${r(t.getSeconds())} ${n<12?`AM`:`PM`}${i?` ${i}`:``}`}function $e(e,t={}){let n=e.detail.originalEvent,r=n.target;if(!r?.isConnected){e.preventDefault();return}t.scrollable&&(n.offsetX>r.clientWidth||n.offsetY>r.clientHeight)&&e.preventDefault()}var et={slots:{overlay:`fixed inset-0 bg-elevated/75`,content:`fixed bg-default divide-y divide-default sm:ring ring-default sm:shadow-lg flex flex-col focus:outline-none`,header:`flex items-center gap-1.5 p-4 sm:px-6 min-h-(--ui-header-height)`,wrapper:``,body:`flex-1 overflow-y-auto p-4 sm:p-6`,footer:`flex items-center gap-1.5 p-4 sm:px-6`,title:`text-highlighted font-semibold`,description:`mt-1 text-muted text-sm`,close:`absolute top-4 end-4`},variants:{side:{top:{content:``},right:{content:`max-w-md`},bottom:{content:``},left:{content:`max-w-md`}},inset:{true:{content:`rounded-lg`}},transition:{true:{overlay:`data-[state=open]:animate-[fade-in_200ms_var(--ease-out)] data-[state=closed]:animate-[fade-out_200ms_var(--ease-out)]`}}},compoundVariants:[{side:`top`,inset:!0,class:{content:`max-h-[calc(100%-2rem)] inset-x-4 top-4`}},{side:`top`,inset:!1,class:{content:`max-h-full inset-x-0 top-0`}},{side:`right`,inset:!0,class:{content:`w-[calc(100%-2rem)] inset-y-4 right-4`}},{side:`right`,inset:!1,class:{content:`w-full inset-y-0 right-0`}},{side:`bottom`,inset:!0,class:{content:`max-h-[calc(100%-2rem)] inset-x-4 bottom-4`}},{side:`bottom`,inset:!1,class:{content:`max-h-full inset-x-0 bottom-0`}},{side:`left`,inset:!0,class:{content:`w-[calc(100%-2rem)] inset-y-4 left-4`}},{side:`left`,inset:!1,class:{content:`w-full inset-y-0 left-0`}},{transition:!0,side:`top`,class:{content:`data-[state=open]:animate-[slide-in-from-top_200ms_var(--ease-out)] data-[state=closed]:animate-[slide-out-to-top_200ms_var(--ease-out)]`}},{transition:!0,side:`right`,class:{content:`data-[state=open]:animate-[slide-in-from-right_200ms_var(--ease-out)] data-[state=closed]:animate-[slide-out-to-right_200ms_var(--ease-out)]`}},{transition:!0,side:`bottom`,class:{content:`data-[state=open]:animate-[slide-in-from-bottom_200ms_var(--ease-out)] data-[state=closed]:animate-[slide-out-to-bottom_200ms_var(--ease-out)]`}},{transition:!0,side:`left`,class:{content:`data-[state=open]:animate-[slide-in-from-left_200ms_var(--ease-out)] data-[state=closed]:animate-[slide-out-to-left_200ms_var(--ease-out)]`}}]},tt={__name:`Slideover`,props:{title:{type:String,required:!1},description:{type:String,required:!1},content:{type:Object,required:!1},overlay:{type:Boolean,required:!1,default:!0},transition:{type:Boolean,required:!1,default:!0},side:{type:null,required:!1,default:`right`},inset:{type:Boolean,required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},close:{type:[Boolean,Object],required:!1,default:!0},closeIcon:{type:null,required:!1},dismissible:{type:Boolean,required:!1,default:!0},class:{type:null,required:!1},ui:{type:Object,required:!1},open:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1},modal:{type:Boolean,required:!1,default:!0},unmountOnHide:{type:Boolean,required:!1}},emits:[`leave`,`after:leave`,`enter`,`after:enter`,`close:prevent`,`update:open`],setup(e,{emit:t}){let n=e,r=t,i=ve(),a=D(`slideover`,n),{t:o}=_(),s=b(),c=ae(ce(a,`open`,`defaultOpen`,`modal`,`unmountOnHide`),r),l=be(ne(()=>a.portal)),u=ne(()=>a.content),d=V(()=>a.dismissible?{pointerDownOutside:$e}:[`interactOutside`,`escapeKeyDown`].reduce((e,t)=>(e[t]=e=>{e.preventDefault(),r(`close:prevent`)},e),{})),f=V(()=>oe({extend:et,...s.ui?.slideover||{}})({transition:a.transition,side:a.side,inset:a.inset}));return(e,t)=>(W(),k(P(Be),xe(m(P(c))),{default:C(({open:n,close:c})=>[i.default?(W(),k(P(Ze),{key:0,"as-child":``,class:G(P(a).class)},{default:C(()=>[j(e.$slots,`default`,{open:n})]),_:2},1032,[`class`])):R(``,!0),L(P(Ye),w(P(l),{"force-mount":P(l).disabled&&P(a).unmountOnHide===!1||void 0}),{default:C(()=>[L(P(ge),null,{default:C(()=>[P(a).overlay?(W(),k(P(Je),{key:0,"data-slot":`overlay`,class:G(f.value.overlay({class:P(a).ui?.overlay}))},null,8,[`class`])):R(``,!0),L(P(Ge),w({"data-side":P(a).side,"data-slot":`content`,class:f.value.content({class:[!i.default&&P(a).class,P(a).ui?.content]})},u.value,{onEnter:t[0]||=e=>r(`enter`),onAfterEnter:t[1]||=e=>r(`after:enter`),onLeave:t[2]||=e=>r(`leave`),onAfterLeave:t[3]||=e=>r(`after:leave`)},_e(d.value)),{default:C(()=>[!P(a).title&&!i.title||!P(a).description&&!i.description||i.content?(W(),k(P(q),{key:0},{default:C(()=>[!P(a).title&&!i.title?(W(),k(P(Xe),{key:0})):i.content?(W(),k(P(Xe),{key:1},{default:C(()=>[j(e.$slots,`title`,{},()=>[z(K(P(a).title),1)])]),_:3})):R(``,!0),!P(a).description&&!i.description?(W(),k(P(Ke),{key:2})):i.content?(W(),k(P(Ke),{key:3},{default:C(()=>[j(e.$slots,`description`,{},()=>[z(K(P(a).description),1)])]),_:3})):R(``,!0)]),_:3})):R(``,!0),j(e.$slots,`content`,{close:c},()=>[i.header||P(a).title||i.title||P(a).description||i.description||P(a).close||i.close?(W(),H(`div`,{key:0,"data-slot":`header`,class:G(f.value.header({class:P(a).ui?.header}))},[j(e.$slots,`header`,{close:c},()=>[P(a).title||i.title||P(a).description||i.description?(W(),H(`div`,{key:0,"data-slot":`wrapper`,class:G(f.value.wrapper({class:P(a).ui?.wrapper}))},[P(a).title||i.title?(W(),k(P(Xe),{key:0,"data-slot":`title`,class:G(f.value.title({class:P(a).ui?.title}))},{default:C(()=>[j(e.$slots,`title`,{},()=>[z(K(P(a).title),1)])]),_:3},8,[`class`])):R(``,!0),P(a).description||i.description?(W(),k(P(Ke),{key:1,"data-slot":`description`,class:G(f.value.description({class:P(a).ui?.description}))},{default:C(()=>[j(e.$slots,`description`,{},()=>[z(K(P(a).description),1)])]),_:3},8,[`class`])):R(``,!0)],2)):R(``,!0),j(e.$slots,`actions`),P(a).close||i.close?(W(),k(P(Ve),{key:1,"as-child":``},{default:C(()=>[j(e.$slots,`close`,{ui:f.value},()=>[P(a).close?(W(),k(ee,w({key:0,icon:P(a).closeIcon||P(s).ui.icons.close,color:`neutral`,variant:`ghost`,"aria-label":P(o)(`slideover.close`)},typeof P(a).close==`object`?P(a).close:{},{"data-slot":`close`,class:f.value.close({class:P(a).ui?.close})}),null,16,[`icon`,`aria-label`,`class`])):R(``,!0)])]),_:2},1024)):R(``,!0)])],2)):R(``,!0),F(`div`,{"data-slot":`body`,class:G(f.value.body({class:P(a).ui?.body}))},[j(e.$slots,`body`,{close:c})],2),i.footer?(W(),H(`div`,{key:1,"data-slot":`footer`,class:G(f.value.footer({class:P(a).ui?.footer}))},[j(e.$slots,`footer`,{close:c})],2)):R(``,!0)])]),_:2},1040,[`data-side`,`class`])]),_:2},1024)]),_:2},1040,[`force-mount`])]),_:3},16))}},nt=[`data-expanded`,`data-overflowing`],rt={key:0,class:`fade pointer-events-none absolute inset-x-0 bottom-6 h-10`},it={key:1,class:`mt-1 flex justify-start`},at=[`aria-expanded`],ot=c(N({__name:`ExpandableText`,props:{lines:{default:5}},setup(e){let t=e,n=O(!1),r=O(!1),i=O(null),a=`expandable-${Math.random().toString(36).slice(2,8)}`;function o(){let e=i.value;e&&!n.value&&(r.value=e.scrollHeight>e.clientHeight+1)}let s=null;E(()=>{o(),typeof ResizeObserver<`u`&&i.value&&(s=new ResizeObserver(()=>o()),s.observe(i.value))}),g(()=>s?.disconnect()),I(n,e=>{e||Promise.resolve().then(o)});function c(){n.value=!n.value}function l(e){!n.value&&r.value&&(e.target?.closest?.(`a`)||(n.value=!0))}return(e,o)=>(W(),H(`div`,{class:G([`expandable group relative`,!n.value&&r.value?`cursor-pointer`:``]),"data-expanded":n.value?`1`:`0`,"data-overflowing":r.value?`1`:`0`,onClick:l},[F(`div`,{id:a,ref_key:`body`,ref:i,class:G([`body`,n.value?``:`clamped`]),style:A(n.value?void 0:{"--expandable-lines":String(t.lines)})},[j(e.$slots,`default`,{},void 0,!0)],6),!n.value&&r.value?(W(),H(`div`,rt)):R(``,!0),r.value||n.value?(W(),H(`div`,it,[F(`button`,{type:`button`,class:`more cursor-pointer text-xs text-dimmed group-hover:text-primary hover:underline focus-visible:outline-2 focus-visible:outline-primary`,"aria-expanded":n.value?`true`:`false`,"aria-controls":a,onClick:T(c,[`stop`])},K(n.value?`Show less`:`Show more`),9,at)])):R(``,!0)],10,nt))}}),[[`__scopeId`,`data-v-ce3bfa89`]]);function st(e,t){let n=e.ownerDocument;e.textContent=``;let r=String(t??``).replace(/\r\n?/g,`
|
|
1
|
+
import{_ as e,b as t,d as n,f as r,h as i,m as a,n as o,p as s,r as c,t as l,v as u}from"./AppShell-Bw3-_TTE.js";import{$n as d,A as f,B as p,En as m,Fn as h,Gn as g,H as _,Hn as v,Ir as y,J as b,N as x,P as S,Pr as C,Vn as w,Vt as T,Yn as E,_ as D,a as ee,ai as O,an as k,bi as A,cr as j,d as te,di as ne,dr as re,f as M,fi as ie,g as ae,gn as N,h as oe,hi as P,in as F,j as se,kr as I,lt as ce,m as le,mn as L,nt as ue,on as R,p as de,pn as z,qt as B,r as fe,ri as pe,rn as V,rr as me,sn as H,sr as U,t as he,tr as W,u as ge,vi as G,vr as _e,wr as ve,x as ye,xi as K,y as be,yi as xe,z as Se,zt as Ce}from"./seed-B8mQEhhw.js";import{t as we}from"./Tooltip-C2eEUbwn.js";import{n as q}from"./main-0uhp-taL.js";import{t as Te}from"./NotFoundPage-RjH-9dPy.js";import{n as Ee,r as De,t as Oe}from"./wallClock-DI4HIEN5.js";import{A as ke,D as Ae,E as je,M as J,O as Me,b as Ne,j as Pe,k as Fe,n as Ie,t as Le}from"./favicon-CFfbl2AI.js";import{t as Re}from"./localIso-L06jV29p.js";var[Y,ze]=p(`DialogRoot`),Be=N({inheritAttrs:!1,__name:`DialogRoot`,props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1,default:!1},modal:{type:Boolean,required:!1,default:!0},unmountOnHide:{type:Boolean,required:!1,default:!0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=ue(n,`open`,t,{defaultValue:n.defaultOpen,passive:n.open===void 0}),i=O(),a=O(),{modal:o,unmountOnHide:s}=ie(n);return ze({open:r,modal:o,unmountOnHide:s,openModal:()=>{r.value=!0},onOpenChange:e=>{r.value=e},onOpenToggle:()=>{r.value=!r.value},contentId:``,titleId:``,descriptionId:``,triggerElement:i,contentElement:a}),(e,t)=>j(e.$slots,`default`,{open:P(r),close:()=>r.value=!1})}}),Ve=N({__name:`DialogClose`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e;x();let n=Y();return(e,r)=>(W(),k(P(f),w(t,{type:e.as===`button`?`button`:void 0,onClick:r[0]||=e=>P(n).onOpenChange(!1)}),{default:C(()=>[j(e.$slots,`default`)]),_:3},16,[`type`]))}}),He=N({__name:`DialogContentImpl`,props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let i=e,o=t,c=Y(),{forwardRef:l,currentElement:u}=x();return c.titleId||=a(void 0,`reka-dialog-title`),c.descriptionId||=a(void 0,`reka-dialog-description`),E(()=>{c.contentElement=u,Se()!==document.body&&(c.triggerElement.value=Se())}),(e,t)=>(W(),k(P(r),{"as-child":``,loop:``,trapped:i.trapFocus,present:i.present,onMountAutoFocus:t[5]||=e=>o(`openAutoFocus`,e),onUnmountAutoFocus:t[6]||=e=>o(`closeAutoFocus`,e)},{default:C(()=>[L(P(s),w({id:P(c).contentId,ref:P(l),as:e.as,"as-child":e.asChild,present:i.present,"disable-outside-pointer-events":e.disableOutsidePointerEvents,role:`dialog`,"aria-describedby":P(c).descriptionId,"aria-labelledby":P(c).titleId,"data-state":P(n)(P(c).open.value)},e.$attrs,{onDismiss:t[0]||=e=>P(c).onOpenChange(!1),onEscapeKeyDown:t[1]||=e=>o(`escapeKeyDown`,e),onFocusOutside:t[2]||=e=>o(`focusOutside`,e),onInteractOutside:t[3]||=e=>o(`interactOutside`,e),onPointerDownOutside:t[4]||=e=>o(`pointerDownOutside`,e)}),{default:C(()=>[j(e.$slots,`default`)]),_:3},16,[`id`,`as`,`as-child`,`present`,`disable-outside-pointer-events`,`aria-describedby`,`aria-labelledby`,`data-state`])]),_:3},8,[`trapped`,`present`]))}}),Ue=N({__name:`DialogContentModal`,props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!0}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,a=Y(),o=S(r),{forwardRef:s,currentElement:c}=x(),l=V(()=>n.present?c.value:void 0);i(l);let u=V(()=>{let{present:e,...t}=n;return t});return I(()=>n.present,(e,t)=>{!e&&t&&a.triggerElement.value?.focus()}),(e,t)=>(W(),k(He,w({...u.value,...P(o)},{ref:P(s),present:e.present,"trap-focus":P(a).open.value,"disable-outside-pointer-events":n.disableOutsidePointerEvents,onCloseAutoFocus:t[0]||=e=>{e.defaultPrevented||(e.preventDefault(),P(a).triggerElement.value?.focus())},onPointerDownOutside:t[1]||=e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()},onFocusOutside:t[2]||=e=>{e.preventDefault()}}),{default:C(()=>[j(e.$slots,`default`)]),_:3},16,[`present`,`trap-focus`,`disable-outside-pointer-events`]))}}),We=N({__name:`DialogContentNonModal`,props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!0}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=S(t);x();let i=Y(),a=O(!1),o=O(!1),s=V(()=>{let{present:e,...t}=n;return t});return I(()=>n.present,(e,t)=>{!e&&t&&(a.value||i.triggerElement.value?.focus(),a.value=!1,o.value=!1)}),(e,t)=>(W(),k(He,w({...s.value,...P(r)},{present:e.present,"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:t[0]||=e=>{e.defaultPrevented||(a.value||P(i).triggerElement.value?.focus(),e.preventDefault()),a.value=!1,o.value=!1},onInteractOutside:t[1]||=e=>{e.defaultPrevented||(a.value=!0,e.detail.originalEvent.type===`pointerdown`&&(o.value=!0));let t=e.target;P(i).triggerElement.value?.contains(t)&&e.preventDefault(),e.detail.originalEvent.type===`focusin`&&o.value&&e.preventDefault()}}),{default:C(()=>[j(e.$slots,`default`)]),_:3},16,[`present`]))}}),Ge=N({__name:`DialogContent`,props:{forceMount:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=Y(),a=S(r),{forwardRef:o}=x();return(e,t)=>(W(),k(P(se),{present:e.forceMount||P(i).open.value,"force-mount":e.forceMount||!P(i).unmountOnHide.value},{default:C(({present:t})=>[P(i).modal.value?y((W(),k(Ue,w({key:0,ref:P(o),present:P(i).unmountOnHide.value||t},{...n,...P(a),...e.$attrs}),{default:C(()=>[j(e.$slots,`default`)]),_:2},1040,[`present`])),[[Ce,P(i).unmountOnHide.value||t]]):y((W(),k(We,w({key:1,ref:P(o),present:P(i).unmountOnHide.value||t},{...n,...P(a),...e.$attrs}),{default:C(()=>[j(e.$slots,`default`)]),_:2},1040,[`present`])),[[Ce,P(i).unmountOnHide.value||t]])]),_:3},8,[`present`,`force-mount`]))}}),Ke=N({__name:`DialogDescription`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`p`}},setup(e){let t=e;x();let n=Y();return(e,r)=>(W(),k(P(f),w(t,{id:P(n).descriptionId}),{default:C(()=>[j(e.$slots,`default`)]),_:3},16,[`id`]))}}),qe=N({__name:`DialogOverlayImpl`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!1,default:!0}},setup(t){let n=t,r=Y(),i=e(n.present);return I(()=>n.present,e=>i.value=e),x(),(e,t)=>(W(),k(P(f),{as:e.as,"as-child":e.asChild,"data-state":P(r).open.value?`open`:`closed`,style:{"pointer-events":`auto`},onPointerdown:t[0]||=T(()=>{},[`left`,`self`,`prevent`])},{default:C(()=>[j(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`data-state`]))}}),Je=N({__name:`DialogOverlay`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=Y(),{forwardRef:n}=x();return(e,r)=>P(t)?.modal.value?(W(),k(P(se),{key:0,present:e.forceMount||P(t).open.value,"force-mount":e.forceMount||!P(t).unmountOnHide.value},{default:C(({present:r})=>[y(L(qe,w(e.$attrs,{ref:P(n),as:e.as,"as-child":e.asChild,present:P(t).unmountOnHide.value||r}),{default:C(()=>[j(e.$slots,`default`)]),_:2},1040,[`as`,`as-child`,`present`]),[[Ce,P(t).unmountOnHide.value||r]])]),_:3},8,[`present`,`force-mount`])):R(`v-if`,!0)}}),Ye=N({__name:`DialogPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(W(),k(P(ye),xe(m(t)),{default:C(()=>[j(e.$slots,`default`)]),_:3},16))}}),Xe=N({__name:`DialogTitle`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`h2`}},setup(e){let t=e,n=Y();return x(),(e,r)=>(W(),k(P(f),w(t,{id:P(n).titleId}),{default:C(()=>[j(e.$slots,`default`)]),_:3},16,[`id`]))}}),Ze=N({__name:`DialogTrigger`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=Y(),{forwardRef:r,currentElement:i}=x();return n.contentId||=a(void 0,`reka-dialog-content`),E(()=>{n.triggerElement.value=i.value}),(e,i)=>(W(),k(P(f),w(t,{ref:P(r),type:e.as===`button`?`button`:void 0,"aria-haspopup":`dialog`,"aria-expanded":P(n).open.value||!1,"aria-controls":P(n).open.value?P(n).contentId:void 0,"data-state":P(n).open.value?`open`:`closed`,onClick:P(n).onOpenToggle}),{default:C(()=>[j(e.$slots,`default`)]),_:3},16,[`type`,`aria-expanded`,`aria-controls`,`data-state`,`onClick`]))}});function Qe(e){let t=new Date(e),n=t.getHours(),r=e=>String(e).padStart(2,`0`),i=new Intl.DateTimeFormat(void 0,{timeZoneName:`short`}).formatToParts(t).find(e=>e.type===`timeZoneName`)?.value;return`${n%12==0?12:n%12}:${r(t.getMinutes())}:${r(t.getSeconds())} ${n<12?`AM`:`PM`}${i?` ${i}`:``}`}function $e(e,t={}){let n=e.detail.originalEvent,r=n.target;if(!r?.isConnected){e.preventDefault();return}t.scrollable&&(n.offsetX>r.clientWidth||n.offsetY>r.clientHeight)&&e.preventDefault()}var et={slots:{overlay:`fixed inset-0 bg-elevated/75`,content:`fixed bg-default divide-y divide-default sm:ring ring-default sm:shadow-lg flex flex-col focus:outline-none`,header:`flex items-center gap-1.5 p-4 sm:px-6 min-h-(--ui-header-height)`,wrapper:``,body:`flex-1 overflow-y-auto p-4 sm:p-6`,footer:`flex items-center gap-1.5 p-4 sm:px-6`,title:`text-highlighted font-semibold`,description:`mt-1 text-muted text-sm`,close:`absolute top-4 end-4`},variants:{side:{top:{content:``},right:{content:`max-w-md`},bottom:{content:``},left:{content:`max-w-md`}},inset:{true:{content:`rounded-lg`}},transition:{true:{overlay:`data-[state=open]:animate-[fade-in_200ms_var(--ease-out)] data-[state=closed]:animate-[fade-out_200ms_var(--ease-out)]`}}},compoundVariants:[{side:`top`,inset:!0,class:{content:`max-h-[calc(100%-2rem)] inset-x-4 top-4`}},{side:`top`,inset:!1,class:{content:`max-h-full inset-x-0 top-0`}},{side:`right`,inset:!0,class:{content:`w-[calc(100%-2rem)] inset-y-4 right-4`}},{side:`right`,inset:!1,class:{content:`w-full inset-y-0 right-0`}},{side:`bottom`,inset:!0,class:{content:`max-h-[calc(100%-2rem)] inset-x-4 bottom-4`}},{side:`bottom`,inset:!1,class:{content:`max-h-full inset-x-0 bottom-0`}},{side:`left`,inset:!0,class:{content:`w-[calc(100%-2rem)] inset-y-4 left-4`}},{side:`left`,inset:!1,class:{content:`w-full inset-y-0 left-0`}},{transition:!0,side:`top`,class:{content:`data-[state=open]:animate-[slide-in-from-top_200ms_var(--ease-out)] data-[state=closed]:animate-[slide-out-to-top_200ms_var(--ease-out)]`}},{transition:!0,side:`right`,class:{content:`data-[state=open]:animate-[slide-in-from-right_200ms_var(--ease-out)] data-[state=closed]:animate-[slide-out-to-right_200ms_var(--ease-out)]`}},{transition:!0,side:`bottom`,class:{content:`data-[state=open]:animate-[slide-in-from-bottom_200ms_var(--ease-out)] data-[state=closed]:animate-[slide-out-to-bottom_200ms_var(--ease-out)]`}},{transition:!0,side:`left`,class:{content:`data-[state=open]:animate-[slide-in-from-left_200ms_var(--ease-out)] data-[state=closed]:animate-[slide-out-to-left_200ms_var(--ease-out)]`}}]},tt={__name:`Slideover`,props:{title:{type:String,required:!1},description:{type:String,required:!1},content:{type:Object,required:!1},overlay:{type:Boolean,required:!1,default:!0},transition:{type:Boolean,required:!1,default:!0},side:{type:null,required:!1,default:`right`},inset:{type:Boolean,required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},close:{type:[Boolean,Object],required:!1,default:!0},closeIcon:{type:null,required:!1},dismissible:{type:Boolean,required:!1,default:!0},class:{type:null,required:!1},ui:{type:Object,required:!1},open:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1},modal:{type:Boolean,required:!1,default:!0},unmountOnHide:{type:Boolean,required:!1}},emits:[`leave`,`after:leave`,`enter`,`after:enter`,`close:prevent`,`update:open`],setup(e,{emit:t}){let n=e,r=t,i=ve(),a=D(`slideover`,n),{t:o}=_(),s=b(),c=ae(ce(a,`open`,`defaultOpen`,`modal`,`unmountOnHide`),r),l=be(ne(()=>a.portal)),u=ne(()=>a.content),d=V(()=>a.dismissible?{pointerDownOutside:$e}:[`interactOutside`,`escapeKeyDown`].reduce((e,t)=>(e[t]=e=>{e.preventDefault(),r(`close:prevent`)},e),{})),f=V(()=>oe({extend:et,...s.ui?.slideover||{}})({transition:a.transition,side:a.side,inset:a.inset}));return(e,t)=>(W(),k(P(Be),xe(m(P(c))),{default:C(({open:n,close:c})=>[i.default?(W(),k(P(Ze),{key:0,"as-child":``,class:G(P(a).class)},{default:C(()=>[j(e.$slots,`default`,{open:n})]),_:2},1032,[`class`])):R(``,!0),L(P(Ye),w(P(l),{"force-mount":P(l).disabled&&P(a).unmountOnHide===!1||void 0}),{default:C(()=>[L(P(ge),null,{default:C(()=>[P(a).overlay?(W(),k(P(Je),{key:0,"data-slot":`overlay`,class:G(f.value.overlay({class:P(a).ui?.overlay}))},null,8,[`class`])):R(``,!0),L(P(Ge),w({"data-side":P(a).side,"data-slot":`content`,class:f.value.content({class:[!i.default&&P(a).class,P(a).ui?.content]})},u.value,{onEnter:t[0]||=e=>r(`enter`),onAfterEnter:t[1]||=e=>r(`after:enter`),onLeave:t[2]||=e=>r(`leave`),onAfterLeave:t[3]||=e=>r(`after:leave`)},_e(d.value)),{default:C(()=>[!P(a).title&&!i.title||!P(a).description&&!i.description||i.content?(W(),k(P(q),{key:0},{default:C(()=>[!P(a).title&&!i.title?(W(),k(P(Xe),{key:0})):i.content?(W(),k(P(Xe),{key:1},{default:C(()=>[j(e.$slots,`title`,{},()=>[z(K(P(a).title),1)])]),_:3})):R(``,!0),!P(a).description&&!i.description?(W(),k(P(Ke),{key:2})):i.content?(W(),k(P(Ke),{key:3},{default:C(()=>[j(e.$slots,`description`,{},()=>[z(K(P(a).description),1)])]),_:3})):R(``,!0)]),_:3})):R(``,!0),j(e.$slots,`content`,{close:c},()=>[i.header||P(a).title||i.title||P(a).description||i.description||P(a).close||i.close?(W(),H(`div`,{key:0,"data-slot":`header`,class:G(f.value.header({class:P(a).ui?.header}))},[j(e.$slots,`header`,{close:c},()=>[P(a).title||i.title||P(a).description||i.description?(W(),H(`div`,{key:0,"data-slot":`wrapper`,class:G(f.value.wrapper({class:P(a).ui?.wrapper}))},[P(a).title||i.title?(W(),k(P(Xe),{key:0,"data-slot":`title`,class:G(f.value.title({class:P(a).ui?.title}))},{default:C(()=>[j(e.$slots,`title`,{},()=>[z(K(P(a).title),1)])]),_:3},8,[`class`])):R(``,!0),P(a).description||i.description?(W(),k(P(Ke),{key:1,"data-slot":`description`,class:G(f.value.description({class:P(a).ui?.description}))},{default:C(()=>[j(e.$slots,`description`,{},()=>[z(K(P(a).description),1)])]),_:3},8,[`class`])):R(``,!0)],2)):R(``,!0),j(e.$slots,`actions`),P(a).close||i.close?(W(),k(P(Ve),{key:1,"as-child":``},{default:C(()=>[j(e.$slots,`close`,{ui:f.value},()=>[P(a).close?(W(),k(ee,w({key:0,icon:P(a).closeIcon||P(s).ui.icons.close,color:`neutral`,variant:`ghost`,"aria-label":P(o)(`slideover.close`)},typeof P(a).close==`object`?P(a).close:{},{"data-slot":`close`,class:f.value.close({class:P(a).ui?.close})}),null,16,[`icon`,`aria-label`,`class`])):R(``,!0)])]),_:2},1024)):R(``,!0)])],2)):R(``,!0),F(`div`,{"data-slot":`body`,class:G(f.value.body({class:P(a).ui?.body}))},[j(e.$slots,`body`,{close:c})],2),i.footer?(W(),H(`div`,{key:1,"data-slot":`footer`,class:G(f.value.footer({class:P(a).ui?.footer}))},[j(e.$slots,`footer`,{close:c})],2)):R(``,!0)])]),_:2},1040,[`data-side`,`class`])]),_:2},1024)]),_:2},1040,[`force-mount`])]),_:3},16))}},nt=[`data-expanded`,`data-overflowing`],rt={key:0,class:`fade pointer-events-none absolute inset-x-0 bottom-6 h-10`},it={key:1,class:`mt-1 flex justify-start`},at=[`aria-expanded`],ot=c(N({__name:`ExpandableText`,props:{lines:{default:5}},setup(e){let t=e,n=O(!1),r=O(!1),i=O(null),a=`expandable-${Math.random().toString(36).slice(2,8)}`;function o(){let e=i.value;e&&!n.value&&(r.value=e.scrollHeight>e.clientHeight+1)}let s=null;E(()=>{o(),typeof ResizeObserver<`u`&&i.value&&(s=new ResizeObserver(()=>o()),s.observe(i.value))}),g(()=>s?.disconnect()),I(n,e=>{e||Promise.resolve().then(o)});function c(){n.value=!n.value}function l(e){!n.value&&r.value&&(e.target?.closest?.(`a`)||(n.value=!0))}return(e,o)=>(W(),H(`div`,{class:G([`expandable group relative`,!n.value&&r.value?`cursor-pointer`:``]),"data-expanded":n.value?`1`:`0`,"data-overflowing":r.value?`1`:`0`,onClick:l},[F(`div`,{id:a,ref_key:`body`,ref:i,class:G([`body`,n.value?``:`clamped`]),style:A(n.value?void 0:{"--expandable-lines":String(t.lines)})},[j(e.$slots,`default`,{},void 0,!0)],6),!n.value&&r.value?(W(),H(`div`,rt)):R(``,!0),r.value||n.value?(W(),H(`div`,it,[F(`button`,{type:`button`,class:`more cursor-pointer text-xs text-dimmed group-hover:text-primary hover:underline focus-visible:outline-2 focus-visible:outline-primary`,"aria-expanded":n.value?`true`:`false`,"aria-controls":a,onClick:T(c,[`stop`])},K(n.value?`Show less`:`Show more`),9,at)])):R(``,!0)],10,nt))}}),[[`__scopeId`,`data-v-ce3bfa89`]]);function st(e,t){let n=e.ownerDocument;e.textContent=``;let r=String(t??``).replace(/\r\n?/g,`
|
|
2
2
|
`).split(`
|
|
3
3
|
`),i=/^(\s*)([-*]|\d+[.)])\s+(.*)$/,a=/^(```|#{1,6}\s|>)/;function o(e,t){let r=n.createElement(t);return e.appendChild(r),r}function s(e,t){t&&e.appendChild(n.createTextNode(t))}function c(e){let t=e.trim();return t[0]===`|`&&(t=t.slice(1)),t[t.length-1]===`|`&&(t=t.slice(0,-1)),t.split(`|`).map(e=>e.trim())}function l(e){let t=e.trim();return t.indexOf(`|`)<0||!/^[\s:|-]+$/.test(t)?!1:c(t).every(e=>/^:?-+:?$/.test(e))}function u(e,t){let n=e[t];return n.indexOf(`|`)<0||l(n)||t+1>=e.length||!l(e[t+1])?!1:c(n).length===c(e[t+1]).length}function d(e,t){let n=0,r=``,i=()=>{s(e,r),r=``};for(;n<t.length;){let a=t[n];if(a==="`"){let r=t.indexOf("`",n+1);if(r>n+1){i(),o(e,`code`).textContent=t.slice(n+1,r),n=r+1;continue}}else if(a===`*`&&t[n+1]===`*`){let r=t.indexOf(`**`,n+2);if(r>n+2){i(),d(o(e,`strong`),t.slice(n+2,r)),n=r+2;continue}}else if(a===`*`||a===`_`){let r=n>0?t[n-1]:``;if(/\S/.test(t[n+1]||``)&&!/\w/.test(r)){let r=-1;for(let e=n+2;e<t.length;e++)if(t[e]===a&&/\S/.test(t[e-1])&&!/\w/.test(t[e+1]||``)){r=e;break}if(r>0){i(),d(o(e,`em`),t.slice(n+1,r)),n=r+1;continue}}}else if(a===`[`){let r=/^\[([^\]\n]+)\]\(([^)\s]+)\)/.exec(t.slice(n));if(r&&/^https?:\/\//i.test(r[2])){i();let t=o(e,`a`);t.setAttribute(`href`,r[2]),t.setAttribute(`rel`,`noopener noreferrer`),t.setAttribute(`target`,`_blank`),d(t,r[1]),n+=r[0].length;continue}}r+=a,n++}i()}function f(e,t,n=0){let r=0;for(;r<t.length;){let s=t[r];if(/^\s*$/.test(s)){r++;continue}if(/^```/.test(s)){let n=[];for(r++;r<t.length&&!/^```\s*$/.test(t[r]);)n.push(t[r++]);r++,o(o(e,`pre`),`code`).textContent=n.join(`
|
|
4
4
|
`);continue}let l=/^(#{1,6})\s+(\S.*?)\s*$/.exec(s);if(l){d(o(e,`h`+l[1].length),l[2]),r++;continue}if(s[0]===`>`&&n<8){let i=[];for(;r<t.length&&t[r][0]===`>`;)i.push(t[r++].replace(/^>\s?/,``));f(o(e,`blockquote`),i,n+1);continue}if(u(t,r)){let n=c(s),i=o(e,`table`),a=o(o(i,`thead`),`tr`);for(let e of n)d(o(a,`th`),e);r+=2;let l=null;for(;r<t.length&&t[r].indexOf(`|`)>=0&&!u(t,r);){l||=o(i,`tbody`);let e=c(t[r]),a=o(l,`tr`);for(let t=0;t<n.length;t++)d(o(a,`td`),t<e.length?e[t]:``);r++}continue}if(i.test(s)){let n=[],a;for(;r<t.length&&(a=i.exec(t[r]))!==null;)n.push({indent:a[1].length,ordered:/^\d/.test(a[2]),text:a[3]}),r++;let s=n[0].indent,c=o(e,n[0].ordered?`ol`:`ul`),l=null,u=null;for(let e of n)e.indent>s&&l?(u||=o(l,e.ordered?`ol`:`ul`),d(o(u,`li`),e.text)):(l=o(c,`li`),u=null,d(l,e.text));continue}let p=[];for(;r<t.length&&!/^\s*$/.test(t[r])&&!a.test(t[r])&&!i.test(t[r])&&!u(t,r);)p.push(t[r++]);p.length===0&&p.push(t[r++]),d(o(e,`p`),p.join(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,n as t,t as n}from"./AppShell-CJLPO_aI.js";import{$n as r,Pr as i,Yn as a,a as o,ai as s,an as c,bi as l,gn as u,hi as d,i as f,in as p,kr as m,mn as h,on as g,pn as _,qt as v,r as y,ri as b,rn as x,sn as S,sr as C,tr as w,vi as T,xi as E}from"./seed-B8mQEhhw.js";import{t as D}from"./Tooltip-DD2v9Gxx.js";import{t as O}from"./RunsTabs-BOUlSa2W.js";import{t as k}from"./StatusDot-CTDLBv92.js";import{a as A,i as j,r as ee,t as M}from"./wallClock-DI4HIEN5.js";import{C as N,E as P,O as F,S as I,T as L,_ as R,a as z,b as B,c as V,d as H,f as U,g as W,h as G,i as K,j as q,k as J,l as te,m as ne,n as Y,o as X,p as Z,s as re,t as Q,u as ie,v as ae,w as oe,x as se,y as ce}from"./favicon-C4Q8cRsP.js";import{t as le}from"./localIso-L06jV29p.js";var $={class:`flex items-baseline gap-1.5 whitespace-pre-line px-2 py-1 text-xs`},ue={key:1,class:`text-dimmed`},de=[`data-kind`,`aria-label`,`href`],fe=[`data-kind`,`aria-label`],pe=u({__name:`SourceMark`,props:{kind:{},tip:{},url:{}},setup(e){let t=e,n=()=>K[t.kind]??`○`,r=()=>z[t.kind]??t.kind;return(t,a)=>{let o=D;return w(),c(o,null,{content:i(()=>[p(`span`,$,[e.kind===`slack`?(w(),c(q,{key:0})):d(K)[e.kind]?(w(),S(`span`,ue,E(n()),1)):g(``,!0),p(`span`,null,E(e.tip),1)])]),default:i(()=>[e.url?(w(),S(`a`,{key:0,class:`source linked pointer-events-auto w-[1.6em] shrink-0 rounded border border-transparent text-center text-[0.8rem] text-toned opacity-0 transition-opacity hover:border-primary/30 hover:bg-primary/10 hover:text-primary focus-visible:opacity-100 group-hover:opacity-100 group-focus-within:opacity-100 motion-reduce:transition-none`,"data-kind":e.kind,"aria-label":`open the ${r()} thread (new tab)`,href:e.url,target:`_blank`,rel:`noopener noreferrer`},`↗`,8,de)):(w(),S(`span`,{key:1,class:T([`source pointer-events-auto w-[1.6em] shrink-0 text-center text-[0.8rem] text-dimmed opacity-0 transition-opacity focus-visible:opacity-100 group-hover:opacity-100 group-focus-within:opacity-100 motion-reduce:transition-none`,e.kind===`cli`?`text-[0.7rem]`:``]),"data-kind":e.kind,"aria-label":`source: ${r()}`},E(n()),11,fe))]),_:1})}}}),me=[`data-run-id`,`data-started-at`,`data-persisted`,`data-expires-at`],he=[`href`,`aria-label`],ge={class:`pointer-events-auto flex items-center max-sm:order-1`},_e=[`data-agent-hue`],ve=[`href`],ye={key:3,class:`snippet min-w-0 truncate text-muted max-sm:order-6 max-sm:basis-full max-sm:whitespace-normal max-sm:pl-5 max-sm:text-[0.8rem] max-sm:leading-snug max-sm:line-clamp-2 sm:flex-1`},be={class:`hidden sm:contents`},xe={class:`expires pointer-events-auto shrink-0 font-mono text-xs tabular-nums text-warn max-sm:order-11`},Se=[`data-heat`],Ce={class:`count shrink-0 text-right font-mono text-xs tabular-nums max-sm:order-9 max-sm:text-dimmed sm:min-w-[6em] sm:text-muted`},we={class:`actions hidden min-w-[7.6em] shrink-0 justify-end gap-1.5 whitespace-nowrap sm:flex`},Te=u({__name:`RunRow`,props:{run:{},now:{},retentionMs:{}},setup(n){let r=n,a=x(()=>A(r.run.label||R(r.run.id))),s=x(()=>ne(r.run,a.value.scope)),u=x(()=>ce(r.run)),f=x(()=>G(r.run)),m=x(()=>oe(r.run)),_=x(()=>W(r.run)),y=x(()=>H(r.run,r.retentionMs)),C=x(()=>y.value!==void 0&&y.value-r.now<=864e5),O=x(()=>!r.run.finished&&!r.run.stop),M=x(()=>F(r.run.finished&&typeof r.run.finishedAt==`number`?r.run.finishedAt-r.run.startedAt:void 0,`run`)),P=x(()=>J(M.value)),U=x(()=>r.run.finished&&r.run.status&&r.run.status!==`completed`?B(r.run.status):``),K=x(()=>r.run.stop&&!(r.run.finished&&r.run.status)?N(r.run.stop):``),q={coding:`text-ok bg-ok/8 border-ok/25`,review:`text-review bg-review/8 border-review/25`,research:`text-research bg-research/8 border-research/25`,general:`text-info bg-info/8 border-info/25`,other:`text-toned bg-accented/60 border-accented`},Y=b({soft:!1,hard:!1}),Z=x(()=>[..._.value?[{label:`Open ${z[m.value.kind]??m.value.kind} thread`,icon:`i-lucide-external-link`,to:_.value,target:`_blank`}]:[],...O.value?[{label:`Stop (soft)`,icon:`i-lucide-octagon-pause`,onSelect:()=>Q(`soft`)},{label:`Kill (hard)`,icon:`i-lucide-octagon-x`,color:`error`,onSelect:()=>Q(`hard`)}]:[]]);function Q(e){(e!==`hard`||t.confirm(`Hard stop: abort this run now with no summary and free its sandbox?`))&&(Y[e]=!0,fetch(I(r.run,e),{method:`POST`,credentials:`same-origin`}).then(e=>{if(!e.ok)throw Error(`HTTP ${e.status}`)}).catch(()=>{Y[e]=!1}))}function $(e){e.target?.closest(`a, button`)||t.navigate(f.value)}return(t,r)=>{let b=D,x=o,A=e;return w(),S(`li`,{class:T([`run group relative rounded-md border-b border-muted hover:bg-(--ui-bg-muted) focus-within:bg-(--ui-bg-muted)`,[n.run.finished?`finished`:`live`,C.value?`leaving`:``]]),"data-run-id":n.run.id,"data-started-at":String(n.run.startedAt),"data-persisted":n.run.persisted?`1`:void 0,"data-expires-at":y.value===void 0?void 0:String(y.value),onClick:$},[p(`a`,{class:`row absolute inset-0 rounded-md focus-visible:outline-2 focus-visible:outline-primary`,href:f.value,"aria-label":`open run ${n.run.label||d(R)(n.run.id)}`},null,8,he),p(`div`,{class:T([`body pointer-events-none relative z-[1] flex min-w-0 flex-wrap items-center gap-x-2.5 px-2 max-sm:gap-y-1.5 max-sm:py-3 sm:flex-nowrap sm:py-2`,[n.run.finished?`text-muted`:``,C.value?`opacity-85`:``]])},[p(`span`,ge,[h(k,{tone:u.value,label:d(se)(n.run),tip:d(te)(n.run),pulse:!n.run.finished},null,8,[`tone`,`label`,`tip`,`pulse`])]),h(b,{text:d(L)(n.run),ui:{text:`whitespace-pre-line`}},{default:i(()=>[p(`span`,{class:T([`when pointer-events-auto shrink-0 font-mono tabular-nums max-sm:order-7 max-sm:pl-5 max-sm:text-xs max-sm:text-dimmed sm:min-w-[8.5em] sm:text-[0.8rem]`,n.run.finished?`text-dimmed`:`text-muted`])},E(d(j)(n.run.startedAt,n.now)),3)]),_:1},8,[`text`]),a.value.agent?(w(),S(`span`,{key:0,class:T([`agent shrink-0 rounded border px-1.5 font-mono text-[0.68rem] font-medium uppercase tracking-wider max-sm:order-2`,[q[d(X)(a.value.agent)],n.run.finished?`opacity-55`:``]]),"data-agent-hue":d(X)(a.value.agent)},E(a.value.agent),11,_e)):g(``,!0),s.value?(w(),c(b,{key:1,text:s.value},{default:i(()=>[p(`a`,{class:`repo pointer-events-auto min-w-0 shrink-0 rounded border border-accented bg-accented/50 px-1.5 font-mono text-[0.72rem] font-medium leading-normal text-toned no-underline hover:border-(--ui-text-dimmed) hover:text-highlighted max-sm:order-3`,href:`https://github.com/${s.value}`,target:`_blank`,rel:`noopener noreferrer`},E(s.value.slice(s.value.indexOf(`/`)+1)),9,ve)]),_:1},8,[`text`])):(w(),S(`span`,{key:2,class:T([`scope min-w-0 shrink-0 truncate font-medium max-sm:order-3`,n.run.finished?`text-toned`:`text-highlighted`])},E(a.value.scope),3)),a.value.snippet===void 0?g(``,!0):(w(),S(`span`,ye,E(a.value.snippet),1)),U.value?(w(),S(`span`,{key:4,class:T([`outcome shrink-0 rounded border px-1.5 font-mono text-[0.7rem] max-sm:order-10`,u.value===`red`?`border-bad/30 text-bad`:`border-warn/30 text-warn`])},E(U.value),3)):g(``,!0),K.value?(w(),S(`span`,{key:5,class:T([`stopbadge shrink-0 rounded border px-1.5 font-mono text-[0.7rem] max-sm:order-10`,n.run.stop?.state===`stopped`?`border-accented text-muted`:`border-warn/30 text-warn`])},E(K.value),3)):g(``,!0),p(`span`,be,[h(pe,{kind:m.value.kind,tip:d(ae)(n.run),url:_.value||void 0},null,8,[`kind`,`tip`,`url`])]),C.value&&y.value!==void 0?(w(),c(b,{key:6,text:`removed at ${d(le)(y.value)}`},{default:i(()=>[p(`span`,xe,`gone `+E(d(ee)(y.value,n.now)),1)]),_:1},8,[`text`])):g(``,!0),h(b,{text:n.run.finished?`start to finish`:`running for`},{default:i(()=>[p(`span`,{class:T([`elapsed pointer-events-auto ml-auto shrink-0 text-right font-mono text-xs tabular-nums max-sm:order-4 sm:min-w-[4.5em]`,n.run.finished?[P.value?`heat`:`text-muted`,M.value.level>=2?`font-medium`:``]:`text-ok`]),style:l(n.run.finished?P.value:void 0),"data-heat":n.run.finished?M.value.level:void 0},E(d(ie)(n.run,n.now)),15,Se)]),_:1},8,[`text`]),r[2]||=p(`span`,{class:`hidden text-xs text-dimmed max-sm:order-8 max-sm:inline`,"aria-hidden":`true`},`·`,-1),h(b,{text:d(V)(n.run)},{default:i(()=>[p(`span`,Ce,E(d(re)(n.run)),1)]),_:1},8,[`text`]),p(`span`,we,[O.value?(w(),S(v,{key:0},[h(b,{text:`Soft stop: no new steps, the agent writes up what it has`},{default:i(()=>[h(x,{class:`pointer-events-auto`,size:`xs`,color:`neutral`,variant:`outline`,label:`Stop`,disabled:Y.soft,onClick:r[0]||=e=>Q(`soft`)},null,8,[`disabled`])]),_:1}),h(b,{text:`Hard stop: abort now, no summary, free the sandbox`},{default:i(()=>[h(x,{class:`pointer-events-auto`,size:`xs`,color:`error`,variant:`outline`,label:`Kill`,disabled:Y.hard,onClick:r[1]||=e=>Q(`hard`)},null,8,[`disabled`])]),_:1})],64)):g(``,!0)]),Z.value.length>0?(w(),c(A,{key:7,items:Z.value,content:{align:`end`}},{default:i(()=>[h(x,{class:`pointer-events-auto -my-1.5 -mr-1 max-sm:order-5 sm:hidden`,size:`md`,color:`neutral`,variant:`ghost`,icon:`i-lucide-ellipsis-vertical`,"aria-label":`Run actions`})]),_:1},8,[`items`])):g(``,!0)],2)],10,me)}}}),Ee={class:`conn flex items-center gap-1.5`},De={id:`state`,class:`text-xs text-muted`},Oe={class:`toolbar mb-1.5 flex items-center gap-4 px-2 text-xs text-muted`},ke={id:`livecount`,class:`count font-mono tabular-nums`},Ae={class:`filter ml-auto inline-flex items-center gap-1.5`},je={class:`toggle inline-flex cursor-pointer select-none items-center gap-1.5 text-toned hover:text-highlighted`},Me=[`checked`],Ne={id:`retention`,class:`sr-only`},Pe={key:0,class:`banner mb-3 rounded-md border border-warn px-2.5 py-1.5 text-[0.8rem] text-warn`,role:`status`},Fe={id:`runs`,class:`m-0 list-none border-t border-muted p-0`},Ie={key:0,id:`leaving`,class:`divider flex items-baseline gap-2 border-b border-dashed border-warn/40 px-2 pb-1.5 pt-3 font-mono text-[0.72rem] uppercase tracking-wider text-warn`,role:`separator`},Le={key:1,id:`empty`,class:`empty px-2 py-2 text-muted`},Re={key:1,class:`pager mt-3 flex items-baseline gap-2 px-2 text-[0.8rem] text-muted`,"aria-label":`Completed runs pages`},ze={class:`range font-mono tabular-nums text-dimmed`},Be=[`href`],Ve=u({__name:`RunsIndexPage`,setup(e){let o=y(`runs`),l=o?.all??!1,u=o?.olderThan!==void 0,T=o?.retentionDays??null,A=T===null?void 0:T*864e5,j=f(T),N=b(new Map);for(let e of o?.rows??[])N.set(e.id,e);let F=M(o?.now),I=s({tone:`amber`,text:`connecting…`}),L=x(()=>[...N.values()].sort((e,t)=>t.startedAt-e.startedAt)),R=x(()=>L.value.filter(e=>!e.finished).length),z=x(()=>A===void 0?-1:L.value.findIndex(e=>{let t=H(e,A);return t!==void 0&&t-F.value<=864e5})),B=x(()=>z.value===-1?L.value:L.value.slice(0,z.value)),V=x(()=>z.value===-1?[]:L.value.slice(z.value)),W=l?`All runs`:`Live runs`;m(R,e=>{t.setTitle((e>0?`(${e}) `:``)+W),t.setFavicon(e>0?Y:Q)},{immediate:!0});function G(e){t.navigate(e.target.checked?`/runs?all=1`:`/runs`)}let K=x(()=>o?.olderThan===void 0?``:ee(o.olderThan,F.value)),q=P(),J=null;return a(()=>{J=q(l?`/runs?stream=1&all=1`:`/runs?stream=1`);let e=!1;J.onopen=()=>{if(e){t.reload();return}e=!0,I.value={tone:`green`,text:`connected`}},J.onmessage=e=>{let t;try{t=JSON.parse(e.data)}catch{return}let n=t.type===`removed`?t.id:t.run?.id,r=n?N.get(n):void 0;if(u&&!r)return;let i=U(t,l,r?.persisted===!0);i.op===`upsert`?N.set(i.run.id,Z(N.get(i.run.id),i.run)):i.op===`remove`&&N.delete(i.id)},J.onerror=()=>{J&&J.readyState===2?I.value={tone:`red`,text:`disconnected`}:I.value={tone:`amber`,text:`connecting…`}}}),r(()=>{J?.close()}),(e,t)=>{let r=D;return w(),c(n,{title:d(W),nav:`runs`},{status:i(()=>[p(`span`,Ee,[h(k,{tone:I.value.tone,label:I.value.text},null,8,[`tone`,`label`]),p(`span`,De,E(I.value.text),1)])]),default:i(()=>[h(O,{current:`runs`}),p(`div`,Oe,[p(`span`,ke,E(R.value)+` running`,1),p(`span`,Ae,[p(`label`,je,[p(`input`,{id:`showdone`,type:`checkbox`,class:`accent-(--ui-bg-inverted)`,checked:d(l),"aria-describedby":`retention`,onChange:G},null,40,Me),t[0]||=_(` Show completed `,-1)]),h(r,{text:d(j)},{default:i(()=>[...t[1]||=[p(`span`,{class:`help inline-flex size-[1.1em] cursor-help items-center justify-center rounded-full border border-accented text-[0.7rem] leading-none text-dimmed hover:border-(--ui-text-dimmed) hover:text-toned`,tabindex:`0`},`?`,-1)]]),_:1},8,[`text`]),p(`span`,Ne,E(d(j)),1)])]),d(o)?.storeUnavailable?(w(),S(`p`,Pe,E(d(o).storeUnavailable),1)):g(``,!0),p(`ul`,Fe,[(w(!0),S(v,null,C(B.value,e=>(w(),c(Te,{key:e.id,run:e,now:d(F),"retention-ms":d(A)},null,8,[`run`,`now`,`retention-ms`]))),128)),V.value.length>0?(w(),S(`li`,Ie,[...t[2]||=[p(`span`,{"aria-hidden":`true`,class:`text-sm tracking-normal`},`⏳`,-1),p(`span`,{class:`whitespace-nowrap`},`Leaving within a day`,-1),p(`span`,{class:`normal-case tracking-normal text-dimmed max-sm:hidden`},`— each row says when it is removed`,-1)]])):g(``,!0),(w(!0),S(v,null,C(V.value,e=>(w(),c(Te,{key:e.id,run:e,now:d(F),"retention-ms":d(A)},null,8,[`run`,`now`,`retention-ms`]))),128)),L.value.length===0?(w(),S(`li`,Le,E(d(l)?`No runs.`:`No active runs.`),1)):g(``,!0)]),d(l)&&(d(o)?.olderHref||d(o)?.olderThan!==void 0)?(w(),S(`nav`,Re,[d(o)?.olderThan===void 0?g(``,!0):(w(),S(v,{key:0},[t[3]||=p(`a`,{class:`text-primary hover:underline`,href:`/runs?all=1`},`← Newest runs`,-1),p(`span`,ze,`· runs finished before `+E(K.value),1)],64)),d(o)?.olderHref?(w(),S(`a`,{key:1,class:`older ml-auto text-primary hover:underline`,href:d(o).olderHref},`Older runs →`,8,Be)):g(``,!0)])):g(``,!0)]),_:1},8,[`title`])}}});export{Ve as default};
|
|
1
|
+
import{a as e,n as t,t as n}from"./AppShell-Bw3-_TTE.js";import{$n as r,Pr as i,Yn as a,a as o,ai as s,an as c,bi as l,gn as u,hi as d,i as f,in as p,kr as m,mn as h,on as g,pn as _,qt as v,r as y,ri as b,rn as x,sn as S,sr as C,tr as w,vi as T,xi as E}from"./seed-B8mQEhhw.js";import{t as D}from"./Tooltip-C2eEUbwn.js";import{t as O}from"./RunsTabs-Qn_5TVJU.js";import{t as k}from"./StatusDot-Bug2a6T6.js";import{a as A,i as j,r as ee,t as M}from"./wallClock-DI4HIEN5.js";import{C as N,E as P,O as F,S as I,T as L,_ as R,a as z,b as B,c as V,d as H,f as U,g as W,h as G,i as K,j as q,k as J,l as te,m as ne,n as Y,o as X,p as Z,s as re,t as Q,u as ie,v as ae,w as oe,x as se,y as ce}from"./favicon-CFfbl2AI.js";import{t as le}from"./localIso-L06jV29p.js";var $={class:`flex items-baseline gap-1.5 whitespace-pre-line px-2 py-1 text-xs`},ue={key:1,class:`text-dimmed`},de=[`data-kind`,`aria-label`,`href`],fe=[`data-kind`,`aria-label`],pe=u({__name:`SourceMark`,props:{kind:{},tip:{},url:{}},setup(e){let t=e,n=()=>K[t.kind]??`○`,r=()=>z[t.kind]??t.kind;return(t,a)=>{let o=D;return w(),c(o,null,{content:i(()=>[p(`span`,$,[e.kind===`slack`?(w(),c(q,{key:0})):d(K)[e.kind]?(w(),S(`span`,ue,E(n()),1)):g(``,!0),p(`span`,null,E(e.tip),1)])]),default:i(()=>[e.url?(w(),S(`a`,{key:0,class:`source linked pointer-events-auto w-[1.6em] shrink-0 rounded border border-transparent text-center text-[0.8rem] text-toned opacity-0 transition-opacity hover:border-primary/30 hover:bg-primary/10 hover:text-primary focus-visible:opacity-100 group-hover:opacity-100 group-focus-within:opacity-100 motion-reduce:transition-none`,"data-kind":e.kind,"aria-label":`open the ${r()} thread (new tab)`,href:e.url,target:`_blank`,rel:`noopener noreferrer`},`↗`,8,de)):(w(),S(`span`,{key:1,class:T([`source pointer-events-auto w-[1.6em] shrink-0 text-center text-[0.8rem] text-dimmed opacity-0 transition-opacity focus-visible:opacity-100 group-hover:opacity-100 group-focus-within:opacity-100 motion-reduce:transition-none`,e.kind===`cli`?`text-[0.7rem]`:``]),"data-kind":e.kind,"aria-label":`source: ${r()}`},E(n()),11,fe))]),_:1})}}}),me=[`data-run-id`,`data-started-at`,`data-persisted`,`data-expires-at`],he=[`href`,`aria-label`],ge={class:`pointer-events-auto flex items-center max-sm:order-1`},_e=[`data-agent-hue`],ve=[`href`],ye={key:3,class:`snippet min-w-0 truncate text-muted max-sm:order-6 max-sm:basis-full max-sm:whitespace-normal max-sm:pl-5 max-sm:text-[0.8rem] max-sm:leading-snug max-sm:line-clamp-2 sm:flex-1`},be={class:`hidden sm:contents`},xe={class:`expires pointer-events-auto shrink-0 font-mono text-xs tabular-nums text-warn max-sm:order-11`},Se=[`data-heat`],Ce={class:`count shrink-0 text-right font-mono text-xs tabular-nums max-sm:order-9 max-sm:text-dimmed sm:min-w-[6em] sm:text-muted`},we={class:`actions hidden min-w-[7.6em] shrink-0 justify-end gap-1.5 whitespace-nowrap sm:flex`},Te=u({__name:`RunRow`,props:{run:{},now:{},retentionMs:{}},setup(n){let r=n,a=x(()=>A(r.run.label||R(r.run.id))),s=x(()=>ne(r.run,a.value.scope)),u=x(()=>ce(r.run)),f=x(()=>G(r.run)),m=x(()=>oe(r.run)),_=x(()=>W(r.run)),y=x(()=>H(r.run,r.retentionMs)),C=x(()=>y.value!==void 0&&y.value-r.now<=864e5),O=x(()=>!r.run.finished&&!r.run.stop),M=x(()=>F(r.run.finished&&typeof r.run.finishedAt==`number`?r.run.finishedAt-r.run.startedAt:void 0,`run`)),P=x(()=>J(M.value)),U=x(()=>r.run.finished&&r.run.status&&r.run.status!==`completed`?B(r.run.status):``),K=x(()=>r.run.stop&&!(r.run.finished&&r.run.status)?N(r.run.stop):``),q={coding:`text-ok bg-ok/8 border-ok/25`,review:`text-review bg-review/8 border-review/25`,research:`text-research bg-research/8 border-research/25`,general:`text-info bg-info/8 border-info/25`,other:`text-toned bg-accented/60 border-accented`},Y=b({soft:!1,hard:!1}),Z=x(()=>[..._.value?[{label:`Open ${z[m.value.kind]??m.value.kind} thread`,icon:`i-lucide-external-link`,to:_.value,target:`_blank`}]:[],...O.value?[{label:`Stop (soft)`,icon:`i-lucide-octagon-pause`,onSelect:()=>Q(`soft`)},{label:`Kill (hard)`,icon:`i-lucide-octagon-x`,color:`error`,onSelect:()=>Q(`hard`)}]:[]]);function Q(e){(e!==`hard`||t.confirm(`Hard stop: abort this run now with no summary and free its sandbox?`))&&(Y[e]=!0,fetch(I(r.run,e),{method:`POST`,credentials:`same-origin`}).then(e=>{if(!e.ok)throw Error(`HTTP ${e.status}`)}).catch(()=>{Y[e]=!1}))}function $(e){e.target?.closest(`a, button`)||t.navigate(f.value)}return(t,r)=>{let b=D,x=o,A=e;return w(),S(`li`,{class:T([`run group relative rounded-md border-b border-muted hover:bg-(--ui-bg-muted) focus-within:bg-(--ui-bg-muted)`,[n.run.finished?`finished`:`live`,C.value?`leaving`:``]]),"data-run-id":n.run.id,"data-started-at":String(n.run.startedAt),"data-persisted":n.run.persisted?`1`:void 0,"data-expires-at":y.value===void 0?void 0:String(y.value),onClick:$},[p(`a`,{class:`row absolute inset-0 rounded-md focus-visible:outline-2 focus-visible:outline-primary`,href:f.value,"aria-label":`open run ${n.run.label||d(R)(n.run.id)}`},null,8,he),p(`div`,{class:T([`body pointer-events-none relative z-[1] flex min-w-0 flex-wrap items-center gap-x-2.5 px-2 max-sm:gap-y-1.5 max-sm:py-3 sm:flex-nowrap sm:py-2`,[n.run.finished?`text-muted`:``,C.value?`opacity-85`:``]])},[p(`span`,ge,[h(k,{tone:u.value,label:d(se)(n.run),tip:d(te)(n.run),pulse:!n.run.finished},null,8,[`tone`,`label`,`tip`,`pulse`])]),h(b,{text:d(L)(n.run),ui:{text:`whitespace-pre-line`}},{default:i(()=>[p(`span`,{class:T([`when pointer-events-auto shrink-0 font-mono tabular-nums max-sm:order-7 max-sm:pl-5 max-sm:text-xs max-sm:text-dimmed sm:min-w-[8.5em] sm:text-[0.8rem]`,n.run.finished?`text-dimmed`:`text-muted`])},E(d(j)(n.run.startedAt,n.now)),3)]),_:1},8,[`text`]),a.value.agent?(w(),S(`span`,{key:0,class:T([`agent shrink-0 rounded border px-1.5 font-mono text-[0.68rem] font-medium uppercase tracking-wider max-sm:order-2`,[q[d(X)(a.value.agent)],n.run.finished?`opacity-55`:``]]),"data-agent-hue":d(X)(a.value.agent)},E(a.value.agent),11,_e)):g(``,!0),s.value?(w(),c(b,{key:1,text:s.value},{default:i(()=>[p(`a`,{class:`repo pointer-events-auto min-w-0 shrink-0 rounded border border-accented bg-accented/50 px-1.5 font-mono text-[0.72rem] font-medium leading-normal text-toned no-underline hover:border-(--ui-text-dimmed) hover:text-highlighted max-sm:order-3`,href:`https://github.com/${s.value}`,target:`_blank`,rel:`noopener noreferrer`},E(s.value.slice(s.value.indexOf(`/`)+1)),9,ve)]),_:1},8,[`text`])):(w(),S(`span`,{key:2,class:T([`scope min-w-0 shrink-0 truncate font-medium max-sm:order-3`,n.run.finished?`text-toned`:`text-highlighted`])},E(a.value.scope),3)),a.value.snippet===void 0?g(``,!0):(w(),S(`span`,ye,E(a.value.snippet),1)),U.value?(w(),S(`span`,{key:4,class:T([`outcome shrink-0 rounded border px-1.5 font-mono text-[0.7rem] max-sm:order-10`,u.value===`red`?`border-bad/30 text-bad`:`border-warn/30 text-warn`])},E(U.value),3)):g(``,!0),K.value?(w(),S(`span`,{key:5,class:T([`stopbadge shrink-0 rounded border px-1.5 font-mono text-[0.7rem] max-sm:order-10`,n.run.stop?.state===`stopped`?`border-accented text-muted`:`border-warn/30 text-warn`])},E(K.value),3)):g(``,!0),p(`span`,be,[h(pe,{kind:m.value.kind,tip:d(ae)(n.run),url:_.value||void 0},null,8,[`kind`,`tip`,`url`])]),C.value&&y.value!==void 0?(w(),c(b,{key:6,text:`removed at ${d(le)(y.value)}`},{default:i(()=>[p(`span`,xe,`gone `+E(d(ee)(y.value,n.now)),1)]),_:1},8,[`text`])):g(``,!0),h(b,{text:n.run.finished?`start to finish`:`running for`},{default:i(()=>[p(`span`,{class:T([`elapsed pointer-events-auto ml-auto shrink-0 text-right font-mono text-xs tabular-nums max-sm:order-4 sm:min-w-[4.5em]`,n.run.finished?[P.value?`heat`:`text-muted`,M.value.level>=2?`font-medium`:``]:`text-ok`]),style:l(n.run.finished?P.value:void 0),"data-heat":n.run.finished?M.value.level:void 0},E(d(ie)(n.run,n.now)),15,Se)]),_:1},8,[`text`]),r[2]||=p(`span`,{class:`hidden text-xs text-dimmed max-sm:order-8 max-sm:inline`,"aria-hidden":`true`},`·`,-1),h(b,{text:d(V)(n.run)},{default:i(()=>[p(`span`,Ce,E(d(re)(n.run)),1)]),_:1},8,[`text`]),p(`span`,we,[O.value?(w(),S(v,{key:0},[h(b,{text:`Soft stop: no new steps, the agent writes up what it has`},{default:i(()=>[h(x,{class:`pointer-events-auto`,size:`xs`,color:`neutral`,variant:`outline`,label:`Stop`,disabled:Y.soft,onClick:r[0]||=e=>Q(`soft`)},null,8,[`disabled`])]),_:1}),h(b,{text:`Hard stop: abort now, no summary, free the sandbox`},{default:i(()=>[h(x,{class:`pointer-events-auto`,size:`xs`,color:`error`,variant:`outline`,label:`Kill`,disabled:Y.hard,onClick:r[1]||=e=>Q(`hard`)},null,8,[`disabled`])]),_:1})],64)):g(``,!0)]),Z.value.length>0?(w(),c(A,{key:7,items:Z.value,content:{align:`end`}},{default:i(()=>[h(x,{class:`pointer-events-auto -my-1.5 -mr-1 max-sm:order-5 sm:hidden`,size:`md`,color:`neutral`,variant:`ghost`,icon:`i-lucide-ellipsis-vertical`,"aria-label":`Run actions`})]),_:1},8,[`items`])):g(``,!0)],2)],10,me)}}}),Ee={class:`conn flex items-center gap-1.5`},De={id:`state`,class:`text-xs text-muted`},Oe={class:`toolbar mb-1.5 flex items-center gap-4 px-2 text-xs text-muted`},ke={id:`livecount`,class:`count font-mono tabular-nums`},Ae={class:`filter ml-auto inline-flex items-center gap-1.5`},je={class:`toggle inline-flex cursor-pointer select-none items-center gap-1.5 text-toned hover:text-highlighted`},Me=[`checked`],Ne={id:`retention`,class:`sr-only`},Pe={key:0,class:`banner mb-3 rounded-md border border-warn px-2.5 py-1.5 text-[0.8rem] text-warn`,role:`status`},Fe={id:`runs`,class:`m-0 list-none border-t border-muted p-0`},Ie={key:0,id:`leaving`,class:`divider flex items-baseline gap-2 border-b border-dashed border-warn/40 px-2 pb-1.5 pt-3 font-mono text-[0.72rem] uppercase tracking-wider text-warn`,role:`separator`},Le={key:1,id:`empty`,class:`empty px-2 py-2 text-muted`},Re={key:1,class:`pager mt-3 flex items-baseline gap-2 px-2 text-[0.8rem] text-muted`,"aria-label":`Completed runs pages`},ze={class:`range font-mono tabular-nums text-dimmed`},Be=[`href`],Ve=u({__name:`RunsIndexPage`,setup(e){let o=y(`runs`),l=o?.all??!1,u=o?.olderThan!==void 0,T=o?.retentionDays??null,A=T===null?void 0:T*864e5,j=f(T),N=b(new Map);for(let e of o?.rows??[])N.set(e.id,e);let F=M(o?.now),I=s({tone:`amber`,text:`connecting…`}),L=x(()=>[...N.values()].sort((e,t)=>t.startedAt-e.startedAt)),R=x(()=>L.value.filter(e=>!e.finished).length),z=x(()=>A===void 0?-1:L.value.findIndex(e=>{let t=H(e,A);return t!==void 0&&t-F.value<=864e5})),B=x(()=>z.value===-1?L.value:L.value.slice(0,z.value)),V=x(()=>z.value===-1?[]:L.value.slice(z.value)),W=l?`All runs`:`Live runs`;m(R,e=>{t.setTitle((e>0?`(${e}) `:``)+W),t.setFavicon(e>0?Y:Q)},{immediate:!0});function G(e){t.navigate(e.target.checked?`/runs?all=1`:`/runs`)}let K=x(()=>o?.olderThan===void 0?``:ee(o.olderThan,F.value)),q=P(),J=null;return a(()=>{J=q(l?`/runs?stream=1&all=1`:`/runs?stream=1`);let e=!1;J.onopen=()=>{if(e){t.reload();return}e=!0,I.value={tone:`green`,text:`connected`}},J.onmessage=e=>{let t;try{t=JSON.parse(e.data)}catch{return}let n=t.type===`removed`?t.id:t.run?.id,r=n?N.get(n):void 0;if(u&&!r)return;let i=U(t,l,r?.persisted===!0);i.op===`upsert`?N.set(i.run.id,Z(N.get(i.run.id),i.run)):i.op===`remove`&&N.delete(i.id)},J.onerror=()=>{J&&J.readyState===2?I.value={tone:`red`,text:`disconnected`}:I.value={tone:`amber`,text:`connecting…`}}}),r(()=>{J?.close()}),(e,t)=>{let r=D;return w(),c(n,{title:d(W),nav:`runs`},{status:i(()=>[p(`span`,Ee,[h(k,{tone:I.value.tone,label:I.value.text},null,8,[`tone`,`label`]),p(`span`,De,E(I.value.text),1)])]),default:i(()=>[h(O,{current:`runs`}),p(`div`,Oe,[p(`span`,ke,E(R.value)+` running`,1),p(`span`,Ae,[p(`label`,je,[p(`input`,{id:`showdone`,type:`checkbox`,class:`accent-(--ui-bg-inverted)`,checked:d(l),"aria-describedby":`retention`,onChange:G},null,40,Me),t[0]||=_(` Show completed `,-1)]),h(r,{text:d(j)},{default:i(()=>[...t[1]||=[p(`span`,{class:`help inline-flex size-[1.1em] cursor-help items-center justify-center rounded-full border border-accented text-[0.7rem] leading-none text-dimmed hover:border-(--ui-text-dimmed) hover:text-toned`,tabindex:`0`},`?`,-1)]]),_:1},8,[`text`]),p(`span`,Ne,E(d(j)),1)])]),d(o)?.storeUnavailable?(w(),S(`p`,Pe,E(d(o).storeUnavailable),1)):g(``,!0),p(`ul`,Fe,[(w(!0),S(v,null,C(B.value,e=>(w(),c(Te,{key:e.id,run:e,now:d(F),"retention-ms":d(A)},null,8,[`run`,`now`,`retention-ms`]))),128)),V.value.length>0?(w(),S(`li`,Ie,[...t[2]||=[p(`span`,{"aria-hidden":`true`,class:`text-sm tracking-normal`},`⏳`,-1),p(`span`,{class:`whitespace-nowrap`},`Leaving within a day`,-1),p(`span`,{class:`normal-case tracking-normal text-dimmed max-sm:hidden`},`— each row says when it is removed`,-1)]])):g(``,!0),(w(!0),S(v,null,C(V.value,e=>(w(),c(Te,{key:e.id,run:e,now:d(F),"retention-ms":d(A)},null,8,[`run`,`now`,`retention-ms`]))),128)),L.value.length===0?(w(),S(`li`,Le,E(d(l)?`No runs.`:`No active runs.`),1)):g(``,!0)]),d(l)&&(d(o)?.olderHref||d(o)?.olderThan!==void 0)?(w(),S(`nav`,Re,[d(o)?.olderThan===void 0?g(``,!0):(w(),S(v,{key:0},[t[3]||=p(`a`,{class:`text-primary hover:underline`,href:`/runs?all=1`},`← Newest runs`,-1),p(`span`,ze,`· runs finished before `+E(K.value),1)],64)),d(o)?.olderHref?(w(),S(`a`,{key:1,class:`older ml-auto text-primary hover:underline`,href:d(o).olderHref},`Older runs →`,8,Be)):g(``,!0)])):g(``,!0)]),_:1},8,[`title`])}}});export{Ve as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./AppShell-
|
|
1
|
+
import{i as e}from"./AppShell-Bw3-_TTE.js";import{gn as t,on as n,qt as r,rn as i,sn as a,sr as o,tr as s,xi as c}from"./seed-B8mQEhhw.js";var l={key:0,class:`tabs mb-3.5 flex gap-5 border-b border-muted px-2 text-[0.8rem]`,"aria-label":`Runs views`},u=[`href`,`aria-current`],d=[{id:`runs`,href:`/runs`,label:`Runs`},{id:`scheduled`,href:`/runs/scheduled`,label:`Scheduled`,on:e=>e.schedules}];function f(e,t){return d.filter(n=>n.id===t||n.on===void 0||e!==null&&n.on(e))}var p=t({__name:`RunsTabs`,props:{current:{}},setup(t){let d=t,p=e(),m=i(()=>f(p,d.current));return(e,i)=>m.value.length>1?(s(),a(`nav`,l,[(s(!0),a(r,null,o(m.value,e=>(s(),a(`a`,{key:e.id,href:e.href,"aria-current":e.id===t.current?`page`:void 0,class:`-mb-px border-b border-transparent pb-2 pt-1.5 text-muted no-underline hover:text-highlighted aria-[current=page]:border-(--ui-text-highlighted) aria-[current=page]:font-medium aria-[current=page]:text-highlighted`},c(e.label),9,u))),128))])):n(``,!0)}});export{p as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./AppShell-
|
|
1
|
+
import{t as e}from"./AppShell-Bw3-_TTE.js";import{Pr as t,an as n,gn as r,hi as i,in as a,mn as o,on as s,pn as c,qt as l,r as u,rn as d,sn as f,sr as p,tr as m,vi as h,xi as g}from"./seed-B8mQEhhw.js";import{t as _}from"./Tooltip-C2eEUbwn.js";import{t as ee}from"./RunsTabs-Qn_5TVJU.js";import{n as v,r as y}from"./wallClock-DI4HIEN5.js";import{t as b}from"./localIso-L06jV29p.js";function x(e,t){return{kind:`schedule`,id:`schedule:${e}`,grants:t}}x(`self-improvement`,Object.freeze({actions:new Set([`friction:read`,`friction:write`]),channels:`all`,repos:new Set}));function S(e,t){let n=e-t,r=Math.floor(Math.abs(n)/6e4),i=Math.floor(r/60),a=Math.floor(i/24),o=a>0?`${a}d ${i%24}h`:i>0?`${i}h ${r%60}m`:r>0?`${r}m`:`<1m`;return n>=0?`in ${o}`:`${o} ago`}var C={healthz:`container health check`,watchdog:`resident watchdog`},w={completed:`succeeded`,failed:`failed`,stopped_soft:`stopped early`,stopped_hard:`killed`,"no-run":`no run created`,"ingress-error":`ingress error`,misconfigured:`misconfigured — nothing ran`},T={completed:`ok`,failed:`bad`,stopped_soft:`warn`,stopped_hard:`warn`,"no-run":`warn`,"ingress-error":`bad`,misconfigured:`bad`},E=120;function D(e){let t=e.replace(/\s+/g,` `).trim();return t=t.replace(/^[^\p{L}\p{N}*_`<[(]+/u,``),t=t.replace(/^\*[^*]{1,60}\*\s+[—–-]\s+/,``),t=t.replace(/^[^\p{L}\p{N}]+/u,``).trim(),t.length>E?`${t.slice(0,E)}…`:t}var O={key:0,class:`px-2 py-1.5 text-muted`},k={key:1,id:`scheduled`,"aria-label":`Scheduled jobs`},A={class:`m-0 list-none p-0`},j=[`data-schedule`],M={class:`def flex flex-wrap items-baseline gap-x-2 gap-y-1.5 text-[0.8rem] text-toned`},N={class:`name font-medium text-highlighted max-sm:text-[0.9rem]`},P={class:`max-sm:ml-auto`},F={class:`rounded-xs bg-accented px-1.5 py-0.5 text-toned`},te={class:`max-sm:flex max-sm:basis-full max-sm:flex-wrap max-sm:items-baseline max-sm:gap-2 sm:contents`},I={class:`rounded-xs bg-accented px-1.5 py-0.5 text-toned`},L={class:`rounded-xs bg-accented px-1.5 py-0.5 text-toned`},R={key:1,class:`text-dimmed`},z={class:`max-sm:flex max-sm:basis-full max-sm:flex-wrap max-sm:items-baseline max-sm:gap-2 sm:contents`},B={class:`rounded-xs bg-accented px-1.5 py-0.5 text-toned`},V=[`title`],H={class:`max-sm:hidden`},U={class:`font-medium text-highlighted`},W={class:`text-dimmed`},G={class:`text-toned sm:hidden`},K={key:1,class:`text-dimmed`},q={class:`fire mt-1.5 font-mono text-xs text-muted max-sm:flex max-sm:flex-wrap max-sm:items-baseline max-sm:gap-x-1.5 max-sm:gap-y-1 sm:overflow-hidden sm:text-ellipsis sm:whitespace-nowrap`},J=[`title`],Y=[`href`],X=[`title`],Z=[`title`],Q={key:1,class:`text-dimmed`},ne={key:0,class:`mt-2.5 px-2 text-xs text-muted`},$=r({__name:`ScheduledPage`,setup(r){let x=u(`scheduled`),E=d(()=>x?.now??v()),$=d(()=>x?.rows??null),re={ok:`text-ok`,bad:`text-bad`,warn:`text-warn`};return(r,u)=>{let d=_;return m(),n(e,{title:`Scheduled runs`,nav:`runs`},{default:t(()=>[o(ee,{current:`scheduled`}),$.value===null?(m(),f(`p`,O,`No schedule registry configured.`)):(m(),f(`section`,k,[a(`ul`,A,[(m(!0),f(l,null,p($.value,e=>(m(),f(`li`,{key:e.name,class:`border-b border-muted px-2 pb-3 pt-2.5`,"data-schedule":e.name},[a(`div`,M,[o(d,{text:e.description},{default:t(()=>[a(`span`,N,g(e.name),1)]),_:2},1032,[`text`]),u[5]||=a(`span`,{class:`hidden text-accented sm:inline`,"aria-hidden":`true`},`·`,-1),a(`span`,P,[u[0]||=a(`span`,{class:`mr-1 font-mono text-[0.62rem] uppercase tracking-wider text-dimmed`},`on`,-1),a(`code`,F,g(e.worker),1)]),u[6]||=a(`span`,{class:`hidden text-accented sm:inline`,"aria-hidden":`true`},`·`,-1),a(`span`,te,[e.action.type===`run`?(m(),f(l,{key:0},[a(`code`,I,g(e.action.command),1),u[1]||=a(`span`,{class:`text-dimmed`},`as`,-1),a(`code`,L,g(e.action.identity),1)],64)):(m(),f(`span`,R,g(i(C)[e.action.type])+` — not a run`,1))]),u[7]||=a(`span`,{class:`hidden text-accented sm:inline`,"aria-hidden":`true`},`·`,-1),a(`span`,z,[a(`code`,B,g(e.cron),1),u[3]||=a(`span`,{class:`text-dimmed`},`UTC`,-1),u[4]||=a(`span`,{class:`hidden text-accented sm:inline`,"aria-hidden":`true`},`·`,-1),a(`span`,{class:`next font-mono tabular-nums max-sm:ml-auto`,title:e.nextFireAt===void 0?void 0:i(b)(e.nextFireAt)},[u[2]||=a(`span`,{class:`mr-1 font-mono text-[0.62rem] uppercase tracking-wider text-dimmed`},`next`,-1),e.nextFireAt===void 0?(m(),f(`span`,K,`never`)):(m(),f(l,{key:0},[a(`span`,H,[a(`b`,U,g(i(y)(e.nextFireAt,E.value)),1),a(`span`,W,` (`+g(i(S)(e.nextFireAt,E.value))+`)`,1)]),a(`span`,G,g(i(S)(e.nextFireAt,E.value)),1)],64))],8,V)])]),a(`div`,q,[u[12]||=a(`span`,{class:`mr-1 font-mono text-[0.62rem] uppercase tracking-wider text-dimmed`},`last`,-1),e.last?(m(),f(l,{key:0},[a(`span`,{class:h([`outcome`,re[i(T)[e.last.outcome]]])},g(i(w)[e.last.outcome]),3),u[11]||=a(`span`,{class:`mx-1.5 text-accented max-sm:mx-0`,"aria-hidden":`true`},`·`,-1),a(`span`,{class:`when text-toned`,title:i(b)(e.last.firedAt)},g(i(S)(e.last.firedAt,E.value)),9,J),e.last.runId?(m(),f(l,{key:0},[u[8]||=a(`span`,{class:`mx-1.5 text-accented max-sm:mx-0`,"aria-hidden":`true`},`·`,-1),e.last.runHref?(m(),f(`a`,{key:0,class:`text-primary hover:underline`,href:e.last.runHref},`run `+g(e.last.runId.slice(0,8)),9,Y)):(m(),f(l,{key:1},[c(`run `+g(e.last.runId.slice(0,8)),1)],64))],64)):s(``,!0),e.last.traceId?(m(),f(l,{key:1},[u[9]||=a(`span`,{class:`mx-1.5 text-accented max-sm:mx-0`,"aria-hidden":`true`},`·`,-1),a(`span`,{class:`trace text-dimmed`,title:`trace ${e.last.traceId}`},`trace `+g(e.last.traceId.slice(0,8)),9,X)],64)):s(``,!0),e.last.detail&&i(D)(e.last.detail)?(m(),f(l,{key:2},[u[10]||=a(`span`,{class:`mx-1.5 text-accented max-sm:hidden`,"aria-hidden":`true`},`·`,-1),a(`span`,{class:`detail font-sans max-sm:line-clamp-2 max-sm:basis-full max-sm:whitespace-normal`,title:e.last.detail},g(i(D)(e.last.detail)),9,Z)],64)):s(``,!0)],64)):(m(),f(`span`,Q,g(i(x)?.firingsUnavailable?`unknown`:`never fired`),1))])],8,j))),128))]),i(x)?.firingsUnavailable?(m(),f(`p`,ne,` Firing history unavailable: `+g(i(x).firingsUnavailable),1)):s(``,!0)]))]),_:1})}}});export{$ as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Pr as e,an as t,gn as n,in as r,sn as i,tr as a,vi as o}from"./seed-B8mQEhhw.js";import{t as s}from"./Tooltip-
|
|
1
|
+
import{Pr as e,an as t,gn as n,in as r,sn as i,tr as a,vi as o}from"./seed-B8mQEhhw.js";import{t as s}from"./Tooltip-C2eEUbwn.js";var c=[`aria-label`,`data-tone`],l=[`aria-label`,`data-tone`],u=n({__name:`StatusDot`,props:{tone:{},label:{},tip:{},pulse:{type:Boolean}},setup(n){let u={green:`bg-ok`,amber:`bg-warn`,red:`bg-bad`,grey:`bg-(--ui-text-dimmed)`};return(d,f)=>{let p=s;return n.tip?(a(),t(p,{key:0,text:n.tip},{default:e(()=>[r(`span`,{class:o([`inline-block size-[0.6em] shrink-0 rounded-full`,[u[n.tone],n.pulse?`motion-safe:animate-pulse`:``]]),role:`img`,"aria-label":n.label,"data-tone":n.tone},null,10,c)]),_:1},8,[`text`])):(a(),i(`span`,{key:1,class:o([`inline-block size-[0.6em] shrink-0 rounded-full`,[u[n.tone],n.pulse?`motion-safe:animate-pulse`:``]]),role:`img`,"aria-label":n.label,"data-tone":n.tone},null,10,l))}}});export{u as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as e,g as t,l as n,m as r,o as i,p as a,s as o,u as s}from"./AppShell-CJLPO_aI.js";import{A as c,Ar as l,B as u,En as d,J as f,M as p,N as m,Pr as h,Vn as g,Vt as _,Yn as v,_ as y,ai as b,an as x,cr as S,di as C,dr as w,et as T,ft as E,g as ee,gn as D,h as te,hi as O,j as ne,kr as k,lt as A,mn as j,mt as M,nt as N,on as P,pn as re,q as F,qt as ie,rn as I,rt as ae,sn as L,sr as R,tr as z,u as B,ut as V,vi as H,vr as U,wr as W,x as G,xi as K,y as q,yi as J}from"./seed-B8mQEhhw.js";import{n as oe,t as Y}from"./main-DrSlUcMg.js";function se(e,t){let n=V(!1,300);E(()=>{n.value=!1});let r=b(null),i=ae();function a(){r.value=null,n.value=!1}function o(e,t){if(!t)return;let i=e.currentTarget,a={x:e.clientX,y:e.clientY},o=le(a,ce(a,i.getBoundingClientRect()),1),s=ue(t.getBoundingClientRect()),c=fe([...o,...s]);r.value=c,n.value=!0}return l(n=>{if(e.value&&t.value){let r=e=>o(e,t.value),i=t=>o(t,e.value);e.value.addEventListener(`pointerleave`,r),t.value.addEventListener(`pointerleave`,i),n(()=>{e.value?.removeEventListener(`pointerleave`,r),t.value?.removeEventListener(`pointerleave`,i)})}}),l(n=>{if(r.value){let o=n=>{if(!r.value||!(n.target instanceof Element))return;let o=n.target,s={x:n.clientX,y:n.clientY},c=e.value?.contains(o)||t.value?.contains(o),l=!de(s,r.value),u=!!o.closest(`[data-grace-area-trigger]`);c?a():(l||u)&&(a(),i.trigger())};e.value?.ownerDocument.addEventListener(`pointermove`,o),n(()=>e.value?.ownerDocument.removeEventListener(`pointermove`,o))}}),{isPointerInTransit:n,onPointerExit:i.on}}function ce(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function le(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return r}function ue(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function de(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e].x,s=t[e].y,c=t[a].x,l=t[a].y;s>r!=l>r&&n<(c-o)*(r-s)/(l-s)+o&&(i=!i)}return i}function fe(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),pe(t)}function pe(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t.at(-1),n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n.at(-1),t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var me=D({__name:`TooltipArrow`,props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(e){let t=e;return m(),(e,n)=>(z(),x(O(o),J(d(t)),{default:h(()=>[S(e.$slots,`default`)]),_:3},16))}}),X=`tooltip.open`,[Z,Q]=u(`TooltipRoot`),he=D({__name:`TooltipRoot`,props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},delayDuration:{type:Number,required:!1,default:void 0},disableHoverableContent:{type:Boolean,required:!1,default:void 0},disableClosingTrigger:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1,default:void 0},ignoreNonKeyboardFocus:{type:Boolean,required:!1,default:void 0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t;m();let i=Y(),a=I(()=>n.disableHoverableContent??i.disableHoverableContent.value),o=I(()=>n.disableClosingTrigger??i.disableClosingTrigger.value),c=I(()=>n.disabled??i.disabled.value),l=I(()=>n.delayDuration??i.delayDuration.value),u=I(()=>n.ignoreNonKeyboardFocus??i.ignoreNonKeyboardFocus.value),d=N(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0});k(d,e=>{i.onClose&&(e?(i.onOpen(),document.dispatchEvent(new CustomEvent(X))):i.onClose())});let f=b(!1),p=b(),g=I(()=>d.value?f.value?`delayed-open`:`instant-open`:`closed`),{start:_,stop:v}=M(()=>{f.value=!0,d.value=!0},l,{immediate:!1});function y(){v(),f.value=!1,d.value=!0}function C(){v(),d.value=!1}function w(){_()}return Q({contentId:``,open:d,stateAttribute:g,trigger:p,onTriggerChange(e){p.value=e},onTriggerEnter(){i.isOpenDelayed.value?w():y()},onTriggerLeave(){a.value?C():v()},onOpen:y,onClose:C,disableHoverableContent:a,disableClosingTrigger:o,disabled:c,ignoreNonKeyboardFocus:u}),(e,t)=>(z(),x(O(s),null,{default:h(()=>[S(e.$slots,`default`,{open:O(d)})]),_:3}))}}),$=D({__name:`TooltipContentImpl`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1,default:void 0},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1,default:void 0},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1,default:void 0},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(t,{emit:n}){let r=t,i=n,o=Z(),s=Y(),{forwardRef:c,currentElement:l}=m(),u=I(()=>r.ariaLabel||l.value?.textContent),d=I(()=>{let{ariaLabel:e,...t}=r;return F(t,s.content.value??{},{side:`top`,sideOffset:0,align:`center`,avoidCollisions:!0,collisionBoundary:[],collisionPadding:0,arrowPadding:0,sticky:`partial`,hideWhenDetached:!1})});return v(()=>{T(window,`scroll`,e=>{e.target?.contains(o.trigger.value)&&o.onClose()},{capture:!0}),T(document,X,o.onClose)}),(t,n)=>(z(),x(O(a),{"as-child":``,"disable-outside-pointer-events":!1,onEscapeKeyDown:n[0]||=e=>i(`escapeKeyDown`,e),onPointerDownOutside:n[1]||=e=>{O(o).disableClosingTrigger.value&&O(o).trigger.value?.contains(e.target)&&e.preventDefault(),i(`pointerDownOutside`,e)},onFocusOutside:n[2]||=_(()=>{},[`prevent`]),onDismiss:n[3]||=e=>O(o).onClose()},{default:h(()=>[j(O(e),g({ref:O(c),"data-state":O(o).stateAttribute.value},{...t.$attrs,...d.value},{style:{"--reka-tooltip-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-tooltip-content-available-width":`var(--reka-popper-available-width)`,"--reka-tooltip-content-available-height":`var(--reka-popper-available-height)`,"--reka-tooltip-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-tooltip-trigger-height":`var(--reka-popper-anchor-height)`}}),{default:h(()=>[S(t.$slots,`default`),j(O(oe),{id:O(o).contentId,role:`tooltip`},{default:h(()=>[re(K(u.value),1)]),_:1},8,[`id`])]),_:3},16,[`data-state`])]),_:3}))}}),ge=D({__name:`TooltipContentHoverable`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},setup(e){let t=p(e),{forwardRef:n,currentElement:r}=m(),{trigger:i,onClose:a}=Z(),o=Y(),{isPointerInTransit:s,onPointerExit:c}=se(i,r);return o.isPointerInTransitRef=s,c(()=>{a()}),(e,r)=>(z(),x($,g({ref:O(n)},O(t)),{default:h(()=>[S(e.$slots,`default`)]),_:3},16))}}),_e=D({__name:`TooltipContent`,props:{forceMount:{type:Boolean,required:!1},ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:n}){let r=e,i=n,a=Z(),o=t(r,i),{forwardRef:s}=m();return(e,t)=>(z(),x(O(ne),{present:e.forceMount||O(a).open.value},{default:h(()=>[(z(),x(w(O(a).disableHoverableContent.value?$:ge),g({ref:O(s)},O(o)),{default:h(()=>[S(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),ve=D({__name:`TooltipPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(z(),x(O(G),J(d(t)),{default:h(()=>[S(e.$slots,`default`)]),_:3},16))}}),ye=D({__name:`TooltipTrigger`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,i=Z(),a=Y();i.contentId||=r(void 0,`reka-tooltip-content`);let{forwardRef:o,currentElement:s}=m(),l=b(!1),u=b(!1),d=I(()=>i.disabled.value?{}:{click:T,focus:C,pointermove:_,pointerleave:y,pointerdown:p,blur:w});v(()=>{i.onTriggerChange(s.value)});function f(){setTimeout(()=>{l.value=!1},1)}function p(){i.open&&!i.disableClosingTrigger.value&&i.onClose(),l.value=!0,document.addEventListener(`pointerup`,f,{once:!0})}function _(e){e.pointerType!==`touch`&&!u.value&&!a.isPointerInTransitRef.value&&(i.onTriggerEnter(),u.value=!0)}function y(){i.onTriggerLeave(),u.value=!1}function C(e){l.value||(!i.ignoreNonKeyboardFocus.value||e.target.matches?.(`:focus-visible`))&&i.onOpen()}function w(){i.onClose()}function T(){i.disableClosingTrigger.value||i.onClose()}return(e,r)=>(z(),x(O(n),{"as-child":``,reference:e.reference},{default:h(()=>[j(O(c),g({ref:O(o),"aria-describedby":O(i).open.value?O(i).contentId:void 0,"data-state":O(i).stateAttribute.value,as:e.as,"as-child":t.asChild,"data-grace-area-trigger":``},U(d.value)),{default:h(()=>[S(e.$slots,`default`)]),_:3},16,[`aria-describedby`,`data-state`,`as`,`as-child`])]),_:3},8,[`reference`]))}}),be={slots:{content:`flex items-center gap-1 bg-default text-highlighted shadow-sm rounded-sm ring ring-default h-6 px-2.5 py-1 text-xs select-none data-[state=delayed-open]:animate-[scale-in_100ms_var(--ease-out)] data-[state=closed]:animate-[scale-out_100ms_var(--ease-out)] origin-(--reka-tooltip-content-transform-origin) pointer-events-auto`,arrow:`fill-bg stroke-default`,text:`truncate`,kbds:`hidden lg:inline-flex items-center shrink-0 gap-0.5 not-first-of-type:before:content-['·'] not-first-of-type:before:me-0.5`,kbdsSize:`sm`}},xe={__name:`Tooltip`,props:{text:{type:String,required:!1},kbds:{type:Array,required:!1},content:{type:Object,required:!1},arrow:{type:[Boolean,Object],required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},reference:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1},delayDuration:{type:Number,required:!1},disableHoverableContent:{type:Boolean,required:!1},disableClosingTrigger:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},ignoreNonKeyboardFocus:{type:Boolean,required:!1}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t,a=W(),o=y(`tooltip`,n),s=f(),c=Y(),l=ee(A(o,`defaultOpen`,`open`,`delayDuration`,`disableHoverableContent`,`disableClosingTrigger`,`ignoreNonKeyboardFocus`),r),u=q(C(()=>o.portal)),p=C(()=>F(o.content,c.content.value,{side:`bottom`,sideOffset:8,collisionPadding:8})),m=C(()=>F(o.arrow,{rounded:!0})),_=I(()=>te({extend:be,...s.ui?.tooltip||{}})({side:p.value.side}));return(e,t)=>(z(),x(O(he),g(O(l),{disabled:!(O(o).text||O(o).kbds?.length||a.content)||O(o).disabled}),{default:h(({open:t})=>[a.default||O(o).reference?(z(),x(O(ye),g({key:0},e.$attrs,{"as-child":``,reference:O(o).reference,class:O(o).class}),{default:h(()=>[S(e.$slots,`default`,{open:t})]),_:2},1040,[`reference`,`class`])):P(``,!0),j(O(ve),J(d(O(u))),{default:h(()=>[j(O(B),null,{default:h(()=>[j(O(_e),g(p.value,{"data-slot":`content`,class:_.value.content({class:[!a.default&&O(o).class,O(o).ui?.content]})}),{default:h(()=>[S(e.$slots,`content`,{ui:_.value},()=>[O(o).text?(z(),L(`span`,{key:0,"data-slot":`text`,class:H(_.value.text({class:O(o).ui?.text}))},K(O(o).text),3)):P(``,!0),O(o).kbds?.length?(z(),L(`span`,{key:1,"data-slot":`kbds`,class:H(_.value.kbds({class:O(o).ui?.kbds}))},[(z(!0),L(ie,null,R(O(o).kbds,(e,t)=>(z(),x(i,g({key:t,size:O(o).ui?.kbdsSize||_.value.kbdsSize()},{ref_for:!0},typeof e==`string`?{value:e}:e),null,16,[`size`]))),128))],2)):P(``,!0)]),O(o).arrow?(z(),x(O(me),g({key:0},m.value,{"data-slot":`arrow`,class:_.value.arrow({class:O(o).ui?.arrow})}),null,16,[`class`])):P(``,!0)]),_:3},16,[`class`])]),_:3})]),_:3},16)]),_:3},16,[`disabled`]))}};export{xe as t};
|
|
1
|
+
import{c as e,g as t,l as n,m as r,o as i,p as a,s as o,u as s}from"./AppShell-Bw3-_TTE.js";import{A as c,Ar as l,B as u,En as d,J as f,M as p,N as m,Pr as h,Vn as g,Vt as _,Yn as v,_ as y,ai as b,an as x,cr as S,di as C,dr as w,et as T,ft as E,g as ee,gn as D,h as te,hi as O,j as ne,kr as k,lt as A,mn as j,mt as M,nt as N,on as P,pn as re,q as F,qt as ie,rn as I,rt as ae,sn as L,sr as R,tr as z,u as B,ut as V,vi as H,vr as U,wr as W,x as G,xi as K,y as q,yi as J}from"./seed-B8mQEhhw.js";import{n as oe,t as Y}from"./main-0uhp-taL.js";function se(e,t){let n=V(!1,300);E(()=>{n.value=!1});let r=b(null),i=ae();function a(){r.value=null,n.value=!1}function o(e,t){if(!t)return;let i=e.currentTarget,a={x:e.clientX,y:e.clientY},o=le(a,ce(a,i.getBoundingClientRect()),1),s=ue(t.getBoundingClientRect()),c=fe([...o,...s]);r.value=c,n.value=!0}return l(n=>{if(e.value&&t.value){let r=e=>o(e,t.value),i=t=>o(t,e.value);e.value.addEventListener(`pointerleave`,r),t.value.addEventListener(`pointerleave`,i),n(()=>{e.value?.removeEventListener(`pointerleave`,r),t.value?.removeEventListener(`pointerleave`,i)})}}),l(n=>{if(r.value){let o=n=>{if(!r.value||!(n.target instanceof Element))return;let o=n.target,s={x:n.clientX,y:n.clientY},c=e.value?.contains(o)||t.value?.contains(o),l=!de(s,r.value),u=!!o.closest(`[data-grace-area-trigger]`);c?a():(l||u)&&(a(),i.trigger())};e.value?.ownerDocument.addEventListener(`pointermove`,o),n(()=>e.value?.ownerDocument.removeEventListener(`pointermove`,o))}}),{isPointerInTransit:n,onPointerExit:i.on}}function ce(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function le(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return r}function ue(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function de(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e].x,s=t[e].y,c=t[a].x,l=t[a].y;s>r!=l>r&&n<(c-o)*(r-s)/(l-s)+o&&(i=!i)}return i}function fe(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),pe(t)}function pe(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t.at(-1),n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n.at(-1),t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var me=D({__name:`TooltipArrow`,props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(e){let t=e;return m(),(e,n)=>(z(),x(O(o),J(d(t)),{default:h(()=>[S(e.$slots,`default`)]),_:3},16))}}),X=`tooltip.open`,[Z,Q]=u(`TooltipRoot`),he=D({__name:`TooltipRoot`,props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},delayDuration:{type:Number,required:!1,default:void 0},disableHoverableContent:{type:Boolean,required:!1,default:void 0},disableClosingTrigger:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1,default:void 0},ignoreNonKeyboardFocus:{type:Boolean,required:!1,default:void 0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t;m();let i=Y(),a=I(()=>n.disableHoverableContent??i.disableHoverableContent.value),o=I(()=>n.disableClosingTrigger??i.disableClosingTrigger.value),c=I(()=>n.disabled??i.disabled.value),l=I(()=>n.delayDuration??i.delayDuration.value),u=I(()=>n.ignoreNonKeyboardFocus??i.ignoreNonKeyboardFocus.value),d=N(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0});k(d,e=>{i.onClose&&(e?(i.onOpen(),document.dispatchEvent(new CustomEvent(X))):i.onClose())});let f=b(!1),p=b(),g=I(()=>d.value?f.value?`delayed-open`:`instant-open`:`closed`),{start:_,stop:v}=M(()=>{f.value=!0,d.value=!0},l,{immediate:!1});function y(){v(),f.value=!1,d.value=!0}function C(){v(),d.value=!1}function w(){_()}return Q({contentId:``,open:d,stateAttribute:g,trigger:p,onTriggerChange(e){p.value=e},onTriggerEnter(){i.isOpenDelayed.value?w():y()},onTriggerLeave(){a.value?C():v()},onOpen:y,onClose:C,disableHoverableContent:a,disableClosingTrigger:o,disabled:c,ignoreNonKeyboardFocus:u}),(e,t)=>(z(),x(O(s),null,{default:h(()=>[S(e.$slots,`default`,{open:O(d)})]),_:3}))}}),$=D({__name:`TooltipContentImpl`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1,default:void 0},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1,default:void 0},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1,default:void 0},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(t,{emit:n}){let r=t,i=n,o=Z(),s=Y(),{forwardRef:c,currentElement:l}=m(),u=I(()=>r.ariaLabel||l.value?.textContent),d=I(()=>{let{ariaLabel:e,...t}=r;return F(t,s.content.value??{},{side:`top`,sideOffset:0,align:`center`,avoidCollisions:!0,collisionBoundary:[],collisionPadding:0,arrowPadding:0,sticky:`partial`,hideWhenDetached:!1})});return v(()=>{T(window,`scroll`,e=>{e.target?.contains(o.trigger.value)&&o.onClose()},{capture:!0}),T(document,X,o.onClose)}),(t,n)=>(z(),x(O(a),{"as-child":``,"disable-outside-pointer-events":!1,onEscapeKeyDown:n[0]||=e=>i(`escapeKeyDown`,e),onPointerDownOutside:n[1]||=e=>{O(o).disableClosingTrigger.value&&O(o).trigger.value?.contains(e.target)&&e.preventDefault(),i(`pointerDownOutside`,e)},onFocusOutside:n[2]||=_(()=>{},[`prevent`]),onDismiss:n[3]||=e=>O(o).onClose()},{default:h(()=>[j(O(e),g({ref:O(c),"data-state":O(o).stateAttribute.value},{...t.$attrs,...d.value},{style:{"--reka-tooltip-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-tooltip-content-available-width":`var(--reka-popper-available-width)`,"--reka-tooltip-content-available-height":`var(--reka-popper-available-height)`,"--reka-tooltip-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-tooltip-trigger-height":`var(--reka-popper-anchor-height)`}}),{default:h(()=>[S(t.$slots,`default`),j(O(oe),{id:O(o).contentId,role:`tooltip`},{default:h(()=>[re(K(u.value),1)]),_:1},8,[`id`])]),_:3},16,[`data-state`])]),_:3}))}}),ge=D({__name:`TooltipContentHoverable`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},setup(e){let t=p(e),{forwardRef:n,currentElement:r}=m(),{trigger:i,onClose:a}=Z(),o=Y(),{isPointerInTransit:s,onPointerExit:c}=se(i,r);return o.isPointerInTransitRef=s,c(()=>{a()}),(e,r)=>(z(),x($,g({ref:O(n)},O(t)),{default:h(()=>[S(e.$slots,`default`)]),_:3},16))}}),_e=D({__name:`TooltipContent`,props:{forceMount:{type:Boolean,required:!1},ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:n}){let r=e,i=n,a=Z(),o=t(r,i),{forwardRef:s}=m();return(e,t)=>(z(),x(O(ne),{present:e.forceMount||O(a).open.value},{default:h(()=>[(z(),x(w(O(a).disableHoverableContent.value?$:ge),g({ref:O(s)},O(o)),{default:h(()=>[S(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),ve=D({__name:`TooltipPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(z(),x(O(G),J(d(t)),{default:h(()=>[S(e.$slots,`default`)]),_:3},16))}}),ye=D({__name:`TooltipTrigger`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,i=Z(),a=Y();i.contentId||=r(void 0,`reka-tooltip-content`);let{forwardRef:o,currentElement:s}=m(),l=b(!1),u=b(!1),d=I(()=>i.disabled.value?{}:{click:T,focus:C,pointermove:_,pointerleave:y,pointerdown:p,blur:w});v(()=>{i.onTriggerChange(s.value)});function f(){setTimeout(()=>{l.value=!1},1)}function p(){i.open&&!i.disableClosingTrigger.value&&i.onClose(),l.value=!0,document.addEventListener(`pointerup`,f,{once:!0})}function _(e){e.pointerType!==`touch`&&!u.value&&!a.isPointerInTransitRef.value&&(i.onTriggerEnter(),u.value=!0)}function y(){i.onTriggerLeave(),u.value=!1}function C(e){l.value||(!i.ignoreNonKeyboardFocus.value||e.target.matches?.(`:focus-visible`))&&i.onOpen()}function w(){i.onClose()}function T(){i.disableClosingTrigger.value||i.onClose()}return(e,r)=>(z(),x(O(n),{"as-child":``,reference:e.reference},{default:h(()=>[j(O(c),g({ref:O(o),"aria-describedby":O(i).open.value?O(i).contentId:void 0,"data-state":O(i).stateAttribute.value,as:e.as,"as-child":t.asChild,"data-grace-area-trigger":``},U(d.value)),{default:h(()=>[S(e.$slots,`default`)]),_:3},16,[`aria-describedby`,`data-state`,`as`,`as-child`])]),_:3},8,[`reference`]))}}),be={slots:{content:`flex items-center gap-1 bg-default text-highlighted shadow-sm rounded-sm ring ring-default h-6 px-2.5 py-1 text-xs select-none data-[state=delayed-open]:animate-[scale-in_100ms_var(--ease-out)] data-[state=closed]:animate-[scale-out_100ms_var(--ease-out)] origin-(--reka-tooltip-content-transform-origin) pointer-events-auto`,arrow:`fill-bg stroke-default`,text:`truncate`,kbds:`hidden lg:inline-flex items-center shrink-0 gap-0.5 not-first-of-type:before:content-['·'] not-first-of-type:before:me-0.5`,kbdsSize:`sm`}},xe={__name:`Tooltip`,props:{text:{type:String,required:!1},kbds:{type:Array,required:!1},content:{type:Object,required:!1},arrow:{type:[Boolean,Object],required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},reference:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1},delayDuration:{type:Number,required:!1},disableHoverableContent:{type:Boolean,required:!1},disableClosingTrigger:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},ignoreNonKeyboardFocus:{type:Boolean,required:!1}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t,a=W(),o=y(`tooltip`,n),s=f(),c=Y(),l=ee(A(o,`defaultOpen`,`open`,`delayDuration`,`disableHoverableContent`,`disableClosingTrigger`,`ignoreNonKeyboardFocus`),r),u=q(C(()=>o.portal)),p=C(()=>F(o.content,c.content.value,{side:`bottom`,sideOffset:8,collisionPadding:8})),m=C(()=>F(o.arrow,{rounded:!0})),_=I(()=>te({extend:be,...s.ui?.tooltip||{}})({side:p.value.side}));return(e,t)=>(z(),x(O(he),g(O(l),{disabled:!(O(o).text||O(o).kbds?.length||a.content)||O(o).disabled}),{default:h(({open:t})=>[a.default||O(o).reference?(z(),x(O(ye),g({key:0},e.$attrs,{"as-child":``,reference:O(o).reference,class:O(o).class}),{default:h(()=>[S(e.$slots,`default`,{open:t})]),_:2},1040,[`reference`,`class`])):P(``,!0),j(O(ve),J(d(O(u))),{default:h(()=>[j(O(B),null,{default:h(()=>[j(O(_e),g(p.value,{"data-slot":`content`,class:_.value.content({class:[!a.default&&O(o).class,O(o).ui?.content]})}),{default:h(()=>[S(e.$slots,`content`,{ui:_.value},()=>[O(o).text?(z(),L(`span`,{key:0,"data-slot":`text`,class:H(_.value.text({class:O(o).ui?.text}))},K(O(o).text),3)):P(``,!0),O(o).kbds?.length?(z(),L(`span`,{key:1,"data-slot":`kbds`,class:H(_.value.kbds({class:O(o).ui?.kbds}))},[(z(!0),L(ie,null,R(O(o).kbds,(e,t)=>(z(),x(i,g({key:t,size:O(o).ui?.kbdsSize||_.value.kbdsSize()},{ref_for:!0},typeof e==`string`?{value:e}:e),null,16,[`size`]))),128))],2)):P(``,!0)]),O(o).arrow?(z(),x(O(me),g({key:0},m.value,{"data-slot":`arrow`,class:_.value.arrow({class:O(o).ui?.arrow})}),null,16,[`class`])):P(``,!0)]),_:3},16,[`class`])]),_:3})]),_:3},16)]),_:3},16,[`disabled`]))}};export{xe as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./AppShell-
|
|
1
|
+
import{r as e}from"./AppShell-Bw3-_TTE.js";import{Fn as t,in as n,sn as r,tr as i}from"./seed-B8mQEhhw.js";import{t as a}from"./localIso-L06jV29p.js";function o(e,t){if(e===void 0)return``;switch(t){case`precise`:return s(e);case`clock`:return c(e);case`report`:return l(e)}}function s(e){if(!(e>=0))return`0ms`;if(e<1e3)return`${Math.round(e)}ms`;let t=Math.round(e/100);if(t<600)return`${(t/10).toFixed(1)}s`;let n=Math.round(e/1e3);return`${Math.floor(n/60)}m ${u(n%60)}s`}function c(e){if(!(e>0))return`0s`;let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60);return n<60?`${n}m ${u(t%60)}s`:`${Math.floor(n/60)}h ${u(n%60)}m`}function l(e){if(!(e>=0))return`0ms`;if(e<1e3)return`${Math.round(e)}ms`;let t=Math.round(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60);return n<60?`${n}m ${u(t%60)}s`:`${Math.floor(n/60)}h ${u(n%60)}m`}function u(e){return e<10?`0${e}`:String(e)}var d={},f={viewBox:`0 0 24 24`,class:`inline-block size-[1em] shrink-0 align-[-0.1em]`,"aria-label":`Slack`,role:`img`};function p(e,t){return i(),r(`svg`,f,[...t[0]||=[n(`rect`,{x:`2`,y:`13`,width:`9`,height:`3`,rx:`1.5`,fill:`#e01e5a`},null,-1),n(`rect`,{x:`13`,y:`2`,width:`3`,height:`9`,rx:`1.5`,fill:`#36c5f0`},null,-1),n(`rect`,{x:`13`,y:`13`,width:`9`,height:`3`,rx:`1.5`,fill:`#ecb22e`},null,-1),n(`rect`,{x:`9`,y:`13`,width:`3`,height:`9`,rx:`1.5`,fill:`#2eb67d`},null,-1)]])}var m=e(d,[[`render`,p]]),h={tool:{floorMs:2e3,ceilingMs:12e5},turn:{floorMs:15e3,ceilingMs:3e5},run:{floorMs:6e4,ceilingMs:27e5}};function g(e){return e===124}function _(e,t){let{floorMs:n,ceilingMs:r}=h[t];if(!(e>n))return 0;let i=Math.log(e/n)/Math.log(r/n);return i>=1?1:i}function v(e){return e<=0?0:e<.4?1:e<.7?2:3}function y(e,t,n=!1){if(n)return{level:4,over:!0,t:1};if(e===void 0)return{level:0,over:!1,t:0};let r=_(e,t);return{level:v(r),over:!1,t:r}}function b(e){return e.level>=1&&e.level<=3?{"--heat-t":e.t.toFixed(3)}:void 0}function x(e,t){let n=e.finishedAt??t;if(n!==void 0)return Math.max(0,n-(e.receivedAt??e.startedAt))}var S=Symbol(`sb-event-source`);function C(e){return{get onopen(){return e.onopen},set onopen(t){e.onopen=t},get onmessage(){return e.onmessage},set onmessage(t){e.onmessage=t},get onerror(){return e.onerror},set onerror(t){e.onerror=t},addEventListener(t,n){e.addEventListener(t,e=>n(typeof e.data==`string`?e.data:void 0))},close(){e.close()},get readyState(){return e.readyState}}}function w(){return t(S,e=>C(new EventSource(e)))}function T(e){return e===`completed`?`succeeded`:e===`stopped_soft`?`stopped early`:e===`stopped_hard`?`killed`:e}function E(e){return e.state===`stopped`?T(`stopped_${e.mode}`):`${e.state} (${e.mode})`}function D(e){return e.finished?e.status?T(e.status):`finished`:`live`}function O(e){return e.finished&&!e.persisted&&e.sealedAt===void 0}function k(e){return e.finished?O(e)?`amber`:e.status===`failed`||e.status===`stopped_hard`||e.status===`interrupted`?`red`:e.status===`stopped_soft`?`amber`:`grey`:`green`}function A(e){return e===`coding`||e===`review`||e===`research`||e===`general`?e:`other`}function j(e){let t=e.stepCount??e.eventCount;return`${t} event${t===1?``:`s`}`}function M(e){return e.stepCount===void 0?`events published, span records included`:`content events; span records excluded`}function ee(e){return`/runs/${encodeURIComponent(e.id)}${!e.finished&&e.token?`?t=${encodeURIComponent(e.token)}`:``}`}function N(e,t){return`/runs/${encodeURIComponent(e.id)}/stop?t=${encodeURIComponent(e.token??``)}&mode=${encodeURIComponent(t)}`}function P(e){return e.length>8?`${e.slice(0,8)}…`:e}function F(e,t){let n=x(e,e.finished?void 0:t);return n===void 0?``:o(n,`clock`)}function I(e){return typeof e.receivedAt==`number`?` (received to finish)`:``}function L(e){let t=e.channelId??``,n=t.indexOf(`:`),r=n===-1?`unknown`:t.slice(0,n);if(e.userName)return{kind:r,identity:e.userName};let i=e.userId??``,a=i.indexOf(`:`);return{kind:r,identity:a===-1?i:i.slice(a+1)}}var R={slack:`⁙`,http:`⌁`,mcp:`◈`,cli:`>_`},z={slack:`Slack`,http:`HTTP ingress`,mcp:`MCP`,cli:`CLI`};function B(e){if(!e.finished)return e.activity?`now: ${e.activity}`:`starting…`;let t=D(e),n=x(e);return n!==void 0&&(t+=` in ${o(n,`clock`)}${I(e)}`),O(e)&&(t+=` · delivering the reply`),e.status&&e.status!==`completed`&&e.activity&&(t+=`\n${e.activity}`),t}function V(e){let t=typeof e.receivedAt==`number`?`received ${a(e.receivedAt)}\n`:``;return t+=`started ${a(e.startedAt)}`,e.finished&&typeof e.finishedAt==`number`&&(t+=`\nfinished ${a(e.finishedAt)}`),t}function H(e){let t=L(e);return`via ${z[t.kind]??t.kind}${t.identity?` · ${t.identity}`:``}`}function U(e,t){return e.repo??(/^[\w.-]+\/[\w.-]+$/.test(t)?t:``)}function W(e){return e.sourceUrl&&/^https?:\/\//.test(e.sourceUrl)?e.sourceUrl:``}function G(e,t,n){return e.type===`upsert`&&e.run?!t&&e.run.finished?{op:`remove`,id:e.run.id}:{op:`upsert`,run:e.run}:e.type===`removed`&&e.id?t&&n?{op:`keep`}:{op:`remove`,id:e.id}:{op:`keep`}}function K(e,t){if(!e||!e.finished)return t;let n={...t};return n.finishedAt===void 0&&e.finishedAt!==void 0&&(n.finishedAt=e.finishedAt),n.status===void 0&&e.status!==void 0&&(n.status=e.status),n.receivedAt===void 0&&e.receivedAt!==void 0&&(n.receivedAt=e.receivedAt),n.sealedAt===void 0&&e.sealedAt!==void 0&&(n.sealedAt=e.sealedAt),n.replyOk===void 0&&e.replyOk!==void 0&&(n.replyOk=e.replyOk),n}function q(e,t){return e.finished&&typeof e.finishedAt==`number`&&typeof t==`number`?e.finishedAt+t:void 0}var J=864e5;function Y(e){return`<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><circle cx='8' cy='8' r='6' fill='${e}'/></svg>`}var X=`<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'><g transform='translate(0 2)' stroke-linejoin='round' stroke-linecap='round' stroke-width='5'><polygon points='32,30 59,43 32,56 5,43' fill='none' stroke='#15151a'/><polygon points='32,17 59,30 32,43 5,30' fill='#15151a' stroke='#15151a'/><polygon points='32,4 59,17 32,30 5,17' fill='#fafaf7' stroke='#15151a'/><path d='M32 17 L32 30 L19 37 M32 30 L45 37' fill='none' stroke='#1a7f37'/><circle cx='32' cy='17' r='5' fill='#1a7f37' stroke='#fafaf7' stroke-width='3'/><circle cx='19' cy='37' r='5' fill='#1a7f37' stroke='#15151a' stroke-width='3'/><circle cx='45' cy='37' r='5' fill='#1a7f37' stroke='#15151a' stroke-width='3'/></g></svg>`,Z=e=>`data:image/svg+xml,${encodeURIComponent(e)}`,Q=Z(Y(`#2ea043`));Z(Y(`#d29922`)),Z(Y(`#f85149`));var $=Z(Y(`#6e7681`));Z(X);export{g as A,E as C,x as D,w as E,o as M,y as O,N as S,V as T,P as _,z as a,T as b,M as c,q as d,G as f,W as g,ee as h,R as i,m as j,b as k,B as l,U as m,Q as n,A as o,K as p,J as r,j as s,$ as t,F as u,H as v,L as w,D as x,k as y};
|