@coreplane/switchboard 0.0.0 → 1.18.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.
Files changed (131) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +18 -1
  3. package/dist/assets/.dockerignore +27 -0
  4. package/dist/assets/.env.example +33 -0
  5. package/dist/assets/Dockerfile +111 -0
  6. package/dist/assets/config/config.example.yaml +359 -0
  7. package/dist/assets/deploy/bin/build-stamp.d.mts +15 -0
  8. package/dist/assets/deploy/bin/build-stamp.mjs +98 -0
  9. package/dist/assets/deploy/bin/cf-logs +32 -0
  10. package/dist/assets/deploy/cloudflare/package.json +29 -0
  11. package/dist/assets/deploy/cloudflare/preflight.mjs +243 -0
  12. package/dist/assets/deploy/cloudflare/tsconfig.json +18 -0
  13. package/dist/assets/deploy/cloudflare/worker.ts +382 -0
  14. package/dist/assets/deploy/cloudflare/wrangler.template.jsonc +67 -0
  15. package/dist/assets/deploy/cloudflare/write-build.d.mts +7 -0
  16. package/dist/assets/deploy/cloudflare/write-build.mjs +53 -0
  17. package/dist/assets/deploy/cloudflare-docs/package.json +18 -0
  18. package/dist/assets/deploy/cloudflare-docs/wrangler.template.jsonc +30 -0
  19. package/dist/assets/deploy/cloudflare-memory/package.json +25 -0
  20. package/dist/assets/deploy/cloudflare-memory/tsconfig.json +17 -0
  21. package/dist/assets/deploy/cloudflare-memory/worker.ts +2635 -0
  22. package/dist/assets/deploy/cloudflare-memory/wrangler.template.jsonc +50 -0
  23. package/dist/assets/deploy/cloudflare-resident/Dockerfile +91 -0
  24. package/dist/assets/deploy/cloudflare-resident/gc.ts +287 -0
  25. package/dist/assets/deploy/cloudflare-resident/node-async-hooks.d.ts +11 -0
  26. package/dist/assets/deploy/cloudflare-resident/package.json +29 -0
  27. package/dist/assets/deploy/cloudflare-resident/preflight.mjs +224 -0
  28. package/dist/assets/deploy/cloudflare-resident/tsconfig.json +19 -0
  29. package/dist/assets/deploy/cloudflare-resident/worker.ts +6637 -0
  30. package/dist/assets/deploy/cloudflare-resident/wrangler.template.jsonc +120 -0
  31. package/dist/assets/deploy/cloudflare-sandbox/Dockerfile +67 -0
  32. package/dist/assets/deploy/cloudflare-sandbox/docker-wrapper.sh +37 -0
  33. package/dist/assets/deploy/cloudflare-sandbox/package.json +26 -0
  34. package/dist/assets/deploy/cloudflare-sandbox/tsconfig.json +20 -0
  35. package/dist/assets/deploy/cloudflare-sandbox/worker.ts +410 -0
  36. package/dist/assets/deploy/cloudflare-sandbox/wrangler.template.jsonc +67 -0
  37. package/dist/assets/deploy/profile.example.json +13 -0
  38. package/dist/assets/deploy/secrets.manifest.json +108 -0
  39. package/dist/assets/docker-entrypoint.sh +15 -0
  40. package/dist/assets/package-lock.json +18407 -0
  41. package/dist/assets/package.json +104 -0
  42. package/dist/assets/project.json +219 -0
  43. package/dist/assets/source.json +5 -0
  44. package/dist/assets/src/core/authz/actor.ts +100 -0
  45. package/dist/assets/src/core/authz/authorize.ts +169 -0
  46. package/dist/assets/src/core/authz/grants.ts +347 -0
  47. package/dist/assets/src/core/authz/policy.ts +281 -0
  48. package/dist/assets/src/core/authz/resource.ts +147 -0
  49. package/dist/assets/src/core/authz/types.ts +164 -0
  50. package/dist/assets/src/core/drain.ts +54 -0
  51. package/dist/assets/src/core/ingressTokens.ts +64 -0
  52. package/dist/assets/src/core/memory/engine.ts +115 -0
  53. package/dist/assets/src/core/memory/scorer.ts +147 -0
  54. package/dist/assets/src/core/memory/types.ts +120 -0
  55. package/dist/assets/src/core/normalizeSpans.ts +299 -0
  56. package/dist/assets/src/core/prDescriptionTypes.ts +54 -0
  57. package/dist/assets/src/core/redact.ts +113 -0
  58. package/dist/assets/src/core/runEvents.ts +537 -0
  59. package/dist/assets/src/core/runFriction.ts +665 -0
  60. package/dist/assets/src/core/runLedger/decisions.ts +126 -0
  61. package/dist/assets/src/core/runLedger/types.ts +177 -0
  62. package/dist/assets/src/core/runRecord.ts +627 -0
  63. package/dist/assets/src/core/runShape.ts +61 -0
  64. package/dist/assets/src/core/schedules.ts +452 -0
  65. package/dist/assets/src/core/time/formatDuration.ts +61 -0
  66. package/dist/assets/src/core/trace/attrs.ts +203 -0
  67. package/dist/assets/src/core/trace/classify.ts +49 -0
  68. package/dist/assets/src/core/trace/clock.ts +6 -0
  69. package/dist/assets/src/core/trace/context.ts +9 -0
  70. package/dist/assets/src/core/trace/ids.ts +23 -0
  71. package/dist/assets/src/core/trace/partition.ts +235 -0
  72. package/dist/assets/src/core/trace/sinks.ts +68 -0
  73. package/dist/assets/src/core/trace/streamSpans.ts +163 -0
  74. package/dist/assets/src/core/trace/traceparent.ts +29 -0
  75. package/dist/assets/src/core/trace/tracer.ts +247 -0
  76. package/dist/assets/src/core/trace/types.ts +125 -0
  77. package/dist/assets/src/core/trace/workerTrace.ts +97 -0
  78. package/dist/assets/src/deploy/buildStamp.ts +93 -0
  79. package/dist/assets/src/deploy/liveGate.ts +203 -0
  80. package/dist/assets/src/deploy/profile.ts +162 -0
  81. package/dist/assets/src/deploy/restart.ts +393 -0
  82. package/dist/assets/src/effort.ts +17 -0
  83. package/dist/assets/src/execution/bashTimeout.ts +78 -0
  84. package/dist/assets/src/execution/bindingPurge.ts +43 -0
  85. package/dist/assets/src/execution/residentBackupTransfer.ts +50 -0
  86. package/dist/assets/src/execution/residentCleanliness.ts +95 -0
  87. package/dist/assets/src/execution/residentCredentials.ts +81 -0
  88. package/dist/assets/src/execution/residentDepCache.ts +321 -0
  89. package/dist/assets/src/execution/residentDepsStore.ts +326 -0
  90. package/dist/assets/src/execution/residentDetach.ts +48 -0
  91. package/dist/assets/src/execution/residentDisk.ts +107 -0
  92. package/dist/assets/src/execution/residentDiskBudget.ts +448 -0
  93. package/dist/assets/src/execution/residentExecWrap.ts +100 -0
  94. package/dist/assets/src/execution/residentHead.ts +85 -0
  95. package/dist/assets/src/execution/residentReadonly.ts +72 -0
  96. package/dist/assets/src/execution/residentRefresh.ts +429 -0
  97. package/dist/assets/src/execution/residentRestoreExtract.ts +130 -0
  98. package/dist/assets/src/execution/residentState.ts +47 -0
  99. package/dist/assets/src/execution/residentStepReport.ts +98 -0
  100. package/dist/assets/src/execution/residentStepTrace.ts +97 -0
  101. package/dist/assets/src/execution/residentSteps.ts +99 -0
  102. package/dist/assets/src/execution/residentText.ts +83 -0
  103. package/dist/assets/src/execution/residentTrace.ts +119 -0
  104. package/dist/assets/src/execution/sandboxEnv.ts +42 -0
  105. package/dist/assets/src/execution/sandboxErrors.ts +159 -0
  106. package/dist/assets/src/execution/sandboxKeepalive.ts +118 -0
  107. package/dist/assets/src/execution/shellQuote.ts +8 -0
  108. package/dist/assets/src/mcp/registry.ts +242 -0
  109. package/dist/assets/src/providers/types.ts +152 -0
  110. package/dist/assets/web/dist/.vite/manifest.json +176 -0
  111. package/dist/assets/web/dist/assets/AppShell-Bk2gbvet.js +1 -0
  112. package/dist/assets/web/dist/assets/CostsPage-CTZcMYYx.js +1 -0
  113. package/dist/assets/web/dist/assets/NotFoundPage-C-BuaSm8.js +1 -0
  114. package/dist/assets/web/dist/assets/ResidentDetailPage-D3shEnzl.js +1 -0
  115. package/dist/assets/web/dist/assets/ResidentsIndexPage-DWIubQ05.js +1 -0
  116. package/dist/assets/web/dist/assets/RunRoutePage-BMjuE-oX.js +126 -0
  117. package/dist/assets/web/dist/assets/RunRoutePage-XVFj0XDc.css +1 -0
  118. package/dist/assets/web/dist/assets/RunsIndexPage-C3_jYIo0.js +1 -0
  119. package/dist/assets/web/dist/assets/RunsTabs-C4krAL9o.js +1 -0
  120. package/dist/assets/web/dist/assets/ScheduledPage-g1W58mtN.js +1 -0
  121. package/dist/assets/web/dist/assets/StatusDot-DcPRw3zu.js +1 -0
  122. package/dist/assets/web/dist/assets/Tooltip-DJUkMYjo.js +1 -0
  123. package/dist/assets/web/dist/assets/favicon-DL1rdWJt.js +1 -0
  124. package/dist/assets/web/dist/assets/localIso-L06jV29p.js +1 -0
  125. package/dist/assets/web/dist/assets/main-BsBGUyMH.css +2 -0
  126. package/dist/assets/web/dist/assets/main-CyM5f4JC.js +28 -0
  127. package/dist/assets/web/dist/assets/residentDiskBudget-BMBKlYRH.js +1 -0
  128. package/dist/assets/web/dist/assets/seed-BglCRKLA.js +6 -0
  129. package/dist/assets/web/dist/assets/wallClock-Ckv3sKoR.js +1 -0
  130. package/dist/cli.js +34494 -0
  131. package/package.json +43 -10
@@ -0,0 +1 @@
1
+ import{i as e}from"./AppShell-Bk2gbvet.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-BglCRKLA.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-2 border-transparent pb-2 pt-1.5 text-muted no-underline hover:text-default aria-[current=page]:border-primary aria-[current=page]:font-semibold aria-[current=page]:text-highlighted`},c(e.label),9,u))),128))])):n(``,!0)}});export{p as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./AppShell-Bk2gbvet.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-BglCRKLA.js";import{t as _}from"./Tooltip-DJUkMYjo.js";import{t as ee}from"./RunsTabs-C4krAL9o.js";import{n as v,r as y}from"./wallClock-Ckv3sKoR.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-semibold 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 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 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 tabular-nums max-sm:ml-auto`,title:e.nextFireAt===void 0?void 0:i(b)(e.nextFireAt)},[u[2]||=a(`span`,{class:`mr-1 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 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 font-mono 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 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};
@@ -0,0 +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-BglCRKLA.js";import{t as s}from"./Tooltip-DJUkMYjo.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-green-600`,amber:`bg-yellow-600`,red:`bg-red-500`,grey:`bg-neutral-500`};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};
@@ -0,0 +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-Bk2gbvet.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-BglCRKLA.js";import{n as oe,t as Y}from"./main-CyM5f4JC.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};
@@ -0,0 +1 @@
1
+ import{r as e}from"./AppShell-Bk2gbvet.js";import{Fn as t,in as n,sn as r,tr as i}from"./seed-BglCRKLA.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};
@@ -0,0 +1 @@
1
+ function e(e,t){let n=typeof t==`number`?t:new Date(e).getTimezoneOffset(),r=new Date(e-n*6e4);function i(e){return(e<10?`0`:``)+e}let a=n<=0?`+`:`-`,o=Math.abs(n);return r.getUTCFullYear()+`-`+i(r.getUTCMonth()+1)+`-`+i(r.getUTCDate())+`T`+i(r.getUTCHours())+`:`+i(r.getUTCMinutes())+`:`+i(r.getUTCSeconds())+a+i(Math.floor(o/60))+`:`+i(o%60)}export{e as t};