@timqi/pier 0.0.19 → 0.0.21
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/agent/config-sync.js +123 -0
- package/dist/agent/config.js +95 -3
- package/dist/agent/events.js +10 -1
- package/dist/agent/pi.js +50 -28
- package/dist/config-sync-fetch.js +84 -0
- package/dist/config-sync-task.js +59 -0
- package/dist/config-sync.js +179 -0
- package/dist/core/hub.js +10 -3
- package/dist/core/reply.js +12 -2
- package/dist/core/router.js +162 -37
- package/dist/db.js +6 -0
- package/dist/main.js +31 -1
- package/dist/tasks/agent.js +11 -22
- package/dist/tasks/callbacks.js +1 -1
- package/dist/tasks/definitions.js +25 -16
- package/dist/tasks/execution.js +11 -3
- package/dist/tasks/messages.js +57 -14
- package/dist/tasks/routes.js +58 -10
- package/dist/tasks/runs.js +0 -5
- package/dist/tasks/service.js +9 -4
- package/dist/tasks/store.js +45 -0
- package/dist/tasks/tool.js +8 -4
- package/dist/web/config-sync.js +91 -0
- package/dist/web/public/assets/activity-Cw0LRVNI.js +5 -0
- package/dist/web/public/assets/activity-Cw0LRVNI.js.br +0 -0
- package/dist/web/public/assets/activity-Cw0LRVNI.js.gz +0 -0
- package/dist/web/public/assets/{boards-DEMQ51m1.js → boards-DMVbV84c.js} +1 -1
- package/dist/web/public/assets/boards-DMVbV84c.js.br +0 -0
- package/dist/web/public/assets/boards-DMVbV84c.js.gz +0 -0
- package/dist/web/public/assets/{code-DjWvqL94.js → code-C86xKk2k.js} +1 -1
- package/dist/web/public/assets/{explorer-BTGQ6Syc.js → explorer-DTvsy5Rs.js} +1 -1
- package/dist/web/public/assets/explorer-DTvsy5Rs.js.br +0 -0
- package/dist/web/public/assets/explorer-DTvsy5Rs.js.gz +0 -0
- package/dist/web/public/assets/{ghostty-web-D8CLFi_l.js → ghostty-web-CvSZragH.js} +1 -1
- package/dist/web/public/assets/ghostty-web-CvSZragH.js.br +0 -0
- package/dist/web/public/assets/ghostty-web-CvSZragH.js.gz +0 -0
- package/dist/web/public/assets/index-DHxoYoeq.js +79 -0
- package/dist/web/public/assets/index-DHxoYoeq.js.br +0 -0
- package/dist/web/public/assets/index-DHxoYoeq.js.gz +0 -0
- package/dist/web/public/assets/{index-yNocr797.css → index-DuZ2vERd.css} +1 -1
- package/dist/web/public/assets/index-DuZ2vERd.css.br +0 -0
- package/dist/web/public/assets/index-DuZ2vERd.css.gz +0 -0
- package/dist/web/public/assets/runs-jY40JBP-.js +1 -0
- package/dist/web/public/assets/runs-jY40JBP-.js.br +0 -0
- package/dist/web/public/assets/runs-jY40JBP-.js.gz +0 -0
- package/dist/web/public/assets/settings-Dux7PIKF.js +6 -0
- package/dist/web/public/assets/settings-Dux7PIKF.js.br +0 -0
- package/dist/web/public/assets/settings-Dux7PIKF.js.gz +0 -0
- package/dist/web/public/assets/task-runs-DKvtBVxS.js +3 -0
- package/dist/web/public/assets/task-runs-DKvtBVxS.js.br +0 -0
- package/dist/web/public/assets/task-runs-DKvtBVxS.js.gz +0 -0
- package/dist/web/public/assets/tasks-CqfrOVIt.js +4 -0
- package/dist/web/public/assets/tasks-CqfrOVIt.js.br +0 -0
- package/dist/web/public/assets/tasks-CqfrOVIt.js.gz +0 -0
- package/dist/web/public/assets/{terminal-zLyOvGto.js → terminal-DL_0yEy7.js} +2 -2
- package/dist/web/public/assets/terminal-DL_0yEy7.js.br +0 -0
- package/dist/web/public/assets/terminal-DL_0yEy7.js.gz +0 -0
- package/dist/web/public/index.html +13 -2
- package/dist/web/public/index.html.br +0 -0
- package/dist/web/public/index.html.gz +0 -0
- package/dist/web/server.js +65 -60
- package/package.json +2 -2
- package/skills/pier-tasks/SKILL.md +14 -9
- package/dist/web/public/assets/activity-BsoWK6vt.js +0 -5
- package/dist/web/public/assets/activity-BsoWK6vt.js.br +0 -0
- package/dist/web/public/assets/activity-BsoWK6vt.js.gz +0 -0
- package/dist/web/public/assets/boards-DEMQ51m1.js.br +0 -0
- package/dist/web/public/assets/boards-DEMQ51m1.js.gz +0 -0
- package/dist/web/public/assets/explorer-BTGQ6Syc.js.br +0 -0
- package/dist/web/public/assets/explorer-BTGQ6Syc.js.gz +0 -0
- package/dist/web/public/assets/ghostty-web-D8CLFi_l.js.br +0 -0
- package/dist/web/public/assets/ghostty-web-D8CLFi_l.js.gz +0 -0
- package/dist/web/public/assets/index-BFzmvpGX.js +0 -78
- package/dist/web/public/assets/index-BFzmvpGX.js.br +0 -0
- package/dist/web/public/assets/index-BFzmvpGX.js.gz +0 -0
- package/dist/web/public/assets/index-yNocr797.css.br +0 -0
- package/dist/web/public/assets/index-yNocr797.css.gz +0 -0
- package/dist/web/public/assets/settings-DSTKXN2o.js +0 -6
- package/dist/web/public/assets/settings-DSTKXN2o.js.br +0 -0
- package/dist/web/public/assets/settings-DSTKXN2o.js.gz +0 -0
- package/dist/web/public/assets/tasks-Dy1SCAE_.js +0 -4
- package/dist/web/public/assets/tasks-Dy1SCAE_.js.br +0 -0
- package/dist/web/public/assets/tasks-Dy1SCAE_.js.gz +0 -0
- package/dist/web/public/assets/terminal-zLyOvGto.js.br +0 -0
- package/dist/web/public/assets/terminal-zLyOvGto.js.gz +0 -0
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{B as e,C as t,D as n,F as r,G as i,I as a,M as o,T as s,U as c,V as l,W as u,g as d,x as f,y as p,z as m}from"./index-BFzmvpGX.js";function h(e,t){let n=e.map(e=>[`${e.title??`Untitled`} · ${e.cwd}`,e.id]);return t&&!n.some(([,e])=>e===t)&&n.push([`Current session · ${t}`,t]),n}function g(e,r){let i=document.createElement(`dialog`);i.className=`m-auto w-[38.75rem] max-w-[94vw] rounded-lg border border-neutral-200 p-0 shadow-xl backdrop:bg-black/20`;let o=document.createElement(`form`);o.className=`flex max-h-[88vh] flex-col`;let s=a(`span`,`mr-auto text-[12px] text-red-600`),c=a(`header`,`flex h-11 flex-none items-center border-b border-neutral-200 px-4 font-medium`,r?`Edit task`:`New task`),l=a(`div`,`grid min-h-0 flex-1 grid-cols-2 gap-3 overflow-y-auto p-4`),u=f(r?.name??``);u.required=!0;let m=f(r?.description??``),g=f(String(r?.timeoutSeconds??900),`number`);g.min=`1`,g.max=`86400`;let v=t([[`Manual`,`manual`],[`Scheduled`,`cron`],[`Watch`,`watch`]],r?.trigger.type??`manual`),y=t([[`Bash`,`bash`],[`Agent`,`agent`],[`Task`,`task`]],r?.action.type??`bash`),b=t([[`No callback`,`none`],[`Invoking session`,`origin`],[`Specific session`,`session`]],r?.callback.type??`none`),x=r?.callback.type===`session`?r.callback.sessionId:null,S=t(h(e.sessions(),x),x??``),C=p(`Callback session`,S);C.classList.toggle(`hidden`,b.value!==`session`),b.onchange=()=>C.classList.toggle(`hidden`,b.value!==`session`),l.append(p(`Name`,u),p(`Description`,m),p(`Trigger`,v),p(`Action`,y),p(`Callback`,b),C,p(`Timeout (seconds)`,g));let w=a(`div`,`col-span-2 grid grid-cols-2 gap-3 border-t border-neutral-200 pt-3`);l.append(w);let T=()=>{w.replaceChildren();let c,l,d,x,C,T;if(v.value===`cron`)c=f(r?.trigger.type===`cron`?r.trigger.expression:`0 9 * * *`),l=f(r?.trigger.type===`cron`?r.trigger.timezone:Intl.DateTimeFormat().resolvedOptions().timeZone),w.append(p(`Cron`,c),p(`Timezone`,l));else if(v.value===`watch`){d=n(r?.trigger.type===`watch`?r.trigger.script:``,4),T=f(r?.trigger.type===`watch`?r.trigger.cwd:e.sessions()[0]?.cwd??``),x=f(String(r?.trigger.type===`watch`?r.trigger.intervalSeconds:60),`number`),C=t([[`Continue after matches`,`repeat`],[`Stop after first match`,`once`]],r?.trigger.type===`watch`?r.trigger.mode:`repeat`);let i=p(`Probe script (0=match, 1=no match)`,d);i.classList.add(`col-span-2`),w.append(i,p(`Probe directory`,T),p(`Interval (seconds)`,x),p(`Mode`,C))}let E,D,O,k,A,j,M,N,P,F;if(y.value===`bash`){D=f(r?.action.type===`bash`?r.action.cwd:e.sessions()[0]?.cwd??``),E=n(r?.action.type===`bash`?r.action.script:``,6);let t=p(`Bash script`,E);t.classList.add(`col-span-2`),w.append(p(`Working directory`,D),a(`span`,``),t)}else if(y.value===`agent`){let i=e.sessions(),a=r?.action.type===`agent`?r.action:null,o=a?.session.mode===`reuse`?a.session.sessionId:``,s=h(i,o||null);O=t([[`Reuse session`,`reuse`],[`Fresh child per run`,`fresh`],[`Fork caller context`,`fork`]],a?.session.mode??`fresh`),k=t(s,o||s[0]?.[1]||``);let c=a?.session.mode===`fresh`||a?.session.mode===`fork`?a.session.cwd??``:``;A=f(c||i[0]?.cwd||``),j=n(a?.prompt??``,6),M=t([[`Project default`,``],[`Off`,`off`],[`Low`,`low`],[`Medium`,`medium`],[`High`,`high`],[`Extra high`,`xhigh`]],a?.launch?.thinking??``),N=f(a?.launch?.model?.provider??``),P=f(a?.launch?.model?.id??``);let l=p(`Session`,k),u=p(`Child directory`,A),d=[p(`Thinking`,M),p(`Model provider (optional)`,N),p(`Model id (optional)`,P)],m=()=>{let e=O?.value===`reuse`;l.classList.toggle(`hidden`,!e),u.classList.toggle(`hidden`,e);for(let t of d)t.classList.toggle(`hidden`,e)};O.onchange=m,m();let g=p(`Prompt`,j);g.classList.add(`col-span-2`),w.append(p(`Session policy`,O),l,u,...d,g)}else F=t(e.tasks().filter(e=>e.id!==r?.id&&!e.archived).map(e=>[e.name,e.id]),r?.action.type===`task`?r.action.taskId:``),w.append(p(`Target task`,F));o.onsubmit=t=>{t.preventDefault();let n=v.value===`manual`?{type:`manual`}:v.value===`cron`?{type:`cron`,expression:c.value,timezone:l.value}:{type:`watch`,script:d.value,cwd:T.value,intervalSeconds:Number(x.value),mode:C.value},a=y.value===`agent`&&O.value!==`reuse`?{...M.value?{thinking:M.value}:{},...N.value.trim()&&P.value.trim()?{model:{provider:N.value.trim(),id:P.value.trim()}}:{}}:void 0,o=y.value===`bash`?{type:`bash`,cwd:D.value,script:E.value}:y.value===`agent`?{type:`agent`,prompt:j.value,session:O.value===`reuse`?{mode:`reuse`,sessionId:k.value}:O.value===`fork`?{mode:`fork`,...A.value.trim()?{cwd:A.value.trim()}:{}}:{mode:`fresh`,cwd:A.value},...a?{launch:a}:{}}:{type:`task`,taskId:F.value},f=b.value===`origin`?{type:`origin`}:b.value===`session`?{type:`session`,sessionId:S.value}:{type:`none`},p={name:u.value,description:m.value,trigger:n,action:o,callback:f,timeoutSeconds:Number(g.value)};s.textContent=``,_(r?.id,p,i,s,e.onSaved)}};v.onchange=T,y.onchange=T,T();let E=d(`Cancel`);E.onclick=()=>i.close();let D=d(`Save`,!0);D.type=`submit`;let O=a(`footer`,`flex flex-none justify-end gap-2 border-t border-neutral-200 px-4 py-3`);O.append(s,E,D),o.append(c,l,O),i.append(o),i.addEventListener(`close`,()=>i.remove()),document.body.append(i),i.showModal(),u.focus()}async function _(e,t,n,r,a){let o=await i(e?`/api/tasks/${e}`:`/api/tasks`,t,e?`PATCH`:`POST`);if(!o.ok){r.textContent=(await o.json()).error??`Task save failed`;return}let s=await o.json(),c=`task`in s?s.task:s;n.close(),a(c.id)}var v=e=>e===null?`-`:new Date(e).toLocaleString(),y=e=>e.startedAt===null?`-`:r((e.finishedAt??Date.now())-e.startedAt);function b(e,t,n){let r=a(`div`,`divide-y divide-neutral-100`);for(let i of t){let t=a(`button`,`grid w-full cursor-pointer grid-cols-[7.5rem_1fr_7.5rem_6.25rem] gap-3 px-4 py-2.5 text-left text-[12.5px] hover:bg-neutral-50`);t.append(a(`span`,`font-medium`,i.state),a(`span`,`truncate text-neutral-500`,v(i.queuedAt)),a(`span`,`text-neutral-500`,i.triggerSource),a(`span`,`text-right text-neutral-500`,y(i))),t.onclick=()=>void x(e,i.id,r,n),r.append(t)}t.length||r.append(a(`p`,`p-4 text-[13px] text-neutral-400`,`No runs yet.`)),e.replaceChildren(r)}async function x(e,t,n,r){let[i,o]=await Promise.all([l(`/api/task-runs/${t}`,`Could not load the run`),l(`/api/task-runs/${t}/messages`,`Could not load the run's messages`)]);if(!i.ok){e.replaceChildren(a(`p`,`p-4 text-[13px] text-red-600`,i.error));return}let s=i.value,u=o.ok?o.value:[],f=d(`Back to runs`);f.onclick=()=>e.replaceChildren(n);let p=a(`div`,`flex items-center gap-2 border-b border-neutral-200 px-4 py-2`);if(p.append(f,a(`span`,`font-mono text-[12px] text-neutral-400`,s.id)),s.targetSessionId){let e=d(`Open session`);e.classList.add(`ml-auto`),e.onclick=()=>r.openSession(s.targetSessionId),p.append(e)}if(s.state===`queued`||s.state===`running`){let e=d(`Steer`);e.onclick=()=>void S(c(`Steer subagent`,`/api/task-runs/${s.id}/steer`,{mode:`steer`,sourceSessionId:r.currentSessionId()},`Run control failed`),r);let t=d(`Stop`);t.onclick=()=>void r.mutate(`/api/task-runs/${s.id}/cancel`),p.append(e,t)}else if(s.targetSessionId){let e=d(`Continue`);e.onclick=()=>void S(c(`Continue subagent`,`/api/task-runs/${s.id}/resume`,{sourceSessionId:r.currentSessionId()},`Run control failed`),r),p.append(e)}let m=a(`div`,`min-h-0 flex-1 overflow-auto`),h=a(`pre`,`whitespace-pre-wrap break-words p-4 font-mono text-[12px]`,JSON.stringify(s,null,2));if(m.append(h),u.length){let e=a(`div`,`border-t border-neutral-200`);e.append(a(`div`,`px-4 py-2 text-[11px] font-semibold uppercase text-neutral-400`,`Messages`));for(let t of u){let n=a(`div`,`grid grid-cols-[6.25rem_6.25rem_1fr] gap-3 border-t border-neutral-100 px-4 py-2 text-[12px]`);n.append(a(`span`,`font-medium`,t.kind),a(`span`,`text-neutral-500`,t.state),a(`span`,`whitespace-pre-wrap`,t.content)),e.append(n)}m.append(e)}e.replaceChildren(p,m)}async function S(e,t){let n=await e;n.sent&&(n.error?t.onError(n.error):await t.reload())}var C=e=>e.trigger.type===`manual`?`Manual`:e.trigger.type===`cron`?`${e.trigger.expression} (${e.trigger.timezone})`:`Every ${e.trigger.intervalSeconds}s · ${e.trigger.mode}`,w=e=>e.action.type===`agent`?`Agent · ${e.action.session.mode}`:e.action.type===`bash`?`Bash`:`Task`;function T(t,n,r,c,f,p){let h=[],_=[],x=null,S=`active`,T=``,E=m(async()=>{let e=S,t=await l(`/api/tasks?state=${e===`archived`?`archived`:`active`}${e===`subagent`?`&kind=subagent`:``}`,`Failed to load tasks`);if(!t.ok)return T=``,D(t.error);if(e!==S)return;let n=JSON.stringify(t.value);e+n===T&&!x||(T=e+n,h=t.value,_=e===`archived`||e===`subagent`?await O():h,e!==`active`&&e!==`archived`&&e!==`subagent`&&(h=h.filter(t=>t.trigger.type===e)),x?await I(x):P())});function D(e){t.replaceChildren(a(`p`,`p-4 text-[13px] text-red-600`,e))}async function O(){let e=await l(`/api/tasks?state=active`,`Failed to load tasks`);return e.ok?e.value:_}let k={sessions:n,tasks:()=>_,onSaved:e=>{x=e,E()}},A={openSession:c,currentSessionId:f,mutate:z,onError:D,reload:E};function j(e,t){let n=a(`header`,`flex h-10 flex-none items-center gap-2 border-b border-neutral-200 px-4`);if(n.append(typeof e==`string`?a(`span`,`truncate font-medium max-md:hidden`,e):e),t.length){let e=a(`div`,`ml-auto flex items-center gap-2`);e.append(...t),n.append(e)}return n}function M(){return a(`div`,`tabstrip`,s(`Sessions`,!1,()=>p(`sessions`)),s(`Dependencies`,!1,()=>p(`dependencies`)),s(`Tasks`,!0,N))}function N(){x=null,P()}function P(){let e=d(`New task`,!0);e.onclick=()=>void r().then(()=>g(k));let n=M(),i=a(`div`,`ml-auto flex flex-none items-center gap-1 pl-1 max-md:ml-0 max-md:w-full max-md:overflow-x-auto max-md:pl-0`);for(let[e,t]of[[`All`,`active`],[`Manual`,`manual`],[`Scheduled`,`cron`],[`Watching`,`watch`],[`Subagents`,`subagent`],[`Archived`,`archived`]])i.append(s(e,S===t,()=>{S=t,x=null,E()}));n.append(i);let o=document.createElement(`table`);o.className=`w-full min-w-[52rem] table-fixed text-left text-[12.5px]`,o.innerHTML=`<thead class="sticky top-0 bg-neutral-50 text-[10.5px] uppercase text-neutral-400"><tr>
|
|
2
|
-
<th class="w-[24%] px-4 py-2 font-semibold">Name</th><th class="w-[10%] px-2 py-2 font-semibold">Action</th>
|
|
3
|
-
<th class="w-[23%] px-2 py-2 font-semibold">Trigger</th><th class="w-[17%] px-2 py-2 font-semibold">Next</th>
|
|
4
|
-
<th class="w-[14%] px-2 py-2 font-semibold">Last result</th><th class="px-2 py-2 font-semibold"></th></tr></thead>`;let c=document.createElement(`tbody`);for(let e of h)c.append(F(e));o.append(c),t.replaceChildren(j(`Tasks`,[e]),n,a(`div`,`min-h-0 flex-1 overflow-auto`,o))}function F(e){let t=document.createElement(`tr`);t.className=`cursor-pointer border-b border-neutral-100 hover:bg-neutral-50`,t.onclick=()=>{x=e.id,I(e.id)};let n=e.archived?`Archived`:e.enabled?`Enabled`:`Paused`;t.append(a(`td`,`truncate py-2.5 pl-4 pr-2`,a(`div`,`truncate font-medium`,e.name),a(`div`,`text-[11px] text-neutral-400`,n)));for(let n of[w(e),C(e),v(e.nextRunAt),e.lastRun?`${e.lastRun.state} · ${y(e.lastRun)}`:`-`])t.append(a(`td`,`truncate px-2 py-2.5`,n));let r=d(`Run`);return r.disabled=e.archived,r.onclick=t=>{t.stopPropagation(),R(e.id)},t.append(a(`td`,`px-2 py-1 text-right`,r)),t}async function I(e){let[n,i]=await Promise.all([l(`/api/tasks/${e}`,`Failed to load task`),l(`/api/tasks/${e}/runs`,`Failed to load the task's runs`)]);if(!n.ok)return D(n.error);if(!i.ok)return D(i.error);let o=n.value,s=i.value,c=d(`Tasks`);c.className=`cursor-pointer text-neutral-500 hover:underline`,c.onclick=N;let u=a(`span`,`flex min-w-0 items-center gap-1.5`,c,a(`span`,`text-neutral-400`,`›`),a(`span`,`truncate font-medium`,o.name)),f=d(`Run now`,!0);f.disabled=o.archived,f.onclick=()=>void R(o.id);let p=d(o.enabled?`Pause`:`Resume`);p.disabled=o.archived||o.trigger.type===`manual`,p.onclick=()=>void z(`/api/tasks/${o.id}/${o.enabled?`pause`:`resume`}`);let m=d(`Edit`);m.disabled=o.archived,m.onclick=()=>void r().then(()=>g(k,o));let h=d(`Archive`);h.disabled=o.archived,h.onclick=()=>void z(`/api/tasks/${o.id}/archive`);let _=a(`div`,`flex flex-none gap-1 border-b border-neutral-200 px-4 py-2`),v=d(`Definition`),y=d(`Runs (${s.length})`),x=a(`div`,`min-h-0 flex-1 overflow-auto`),S=()=>{v.classList.add(`bg-neutral-200`),y.classList.remove(`bg-neutral-200`),L(x,o)};v.onclick=S,y.onclick=()=>{y.classList.add(`bg-neutral-200`),v.classList.remove(`bg-neutral-200`),b(x,s,A)},_.append(v,y),t.replaceChildren(j(u,[f,p,m,h]),M(),_,x),s.length?y.click():S()}function L(e,t){let n=a(`div`,`grid max-w-4xl grid-cols-[9.375rem_minmax(0,1fr)] gap-x-5 gap-y-3 p-4 text-[13px]`),r=[[`Status`,t.archived?`Archived`:t.enabled?`Enabled`:`Paused`],[`Trigger`,C(t)],[`Action`,w(t)],[`Timeout`,`${t.timeoutSeconds}s`],[`Next run`,v(t.nextRunAt)],[`Revision`,String(t.revision)],[`Created by`,t.createdBySessionId??t.creator],[`Callback`,t.callback.type===`session`?t.callback.sessionId:t.callback.type],[`Description`,t.description||`-`]];t.action.type===`agent`&&(r.push([`Session policy`,t.action.session.mode]),t.action.session.mode===`reuse`&&r.push([`Session`,t.action.session.sessionId]),t.action.session.mode===`fresh`&&r.push([`Directory`,t.action.session.cwd]),t.action.session.mode===`fork`&&r.push([`Directory`,t.action.session.cwd??`Caller project`]),t.action.launch?.model&&r.push([`Model`,`${t.action.launch.model.provider}/${t.action.launch.model.id}`]),t.action.launch?.thinking&&r.push([`Thinking`,t.action.launch.thinking]),r.push([`Prompt`,t.action.prompt])),t.action.type===`bash`&&r.push([`Directory`,t.action.cwd],[`Script`,t.action.script]),t.action.type===`task`&&r.push([`Target task`,t.action.taskId]),t.trigger.type===`watch`&&r.push([`Probe`,t.trigger.script]);for(let[e,t]of r)n.append(a(`span`,`text-[11px] font-semibold uppercase text-neutral-400`,e),a(`pre`,`whitespace-pre-wrap break-words font-mono text-[12.5px]`,t));if(t.action.type===`agent`&&t.action.session.mode===`reuse`){let{sessionId:e}=t.action.session,r=d(`Open session`);r.onclick=()=>c(e),n.append(a(`span`,``,``),r)}e.replaceChildren(n)}async function R(t){let n=await i(`/api/tasks/${t}/run`,{sourceSessionId:f()});if(!n.ok)return D(await e(n,`Failed to run task`));x=t,await I(t)}async function z(e){let t=await u(e,`POST`,`Task update failed`);if(t)return D(t);await E()}let B=o(t,e=>{e&&(x=e),E()});return Object.assign(B,{refresh(e){B.visible&&(!x||!e||x===e)&&E()}})}export{T as createTasksView};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|