wherdr 2.4.0 → 2.5.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/.output/nitro.json +1 -1
- package/.output/public/_nuxt/1gzTzt3j.js +9 -0
- package/.output/public/_nuxt/1gzTzt3j.js.br +0 -0
- package/.output/public/_nuxt/1gzTzt3j.js.gz +0 -0
- package/.output/public/_nuxt/AgentView.B6zltno1.css +1 -0
- package/.output/public/_nuxt/AgentView.B6zltno1.css.br +0 -0
- package/.output/public/_nuxt/AgentView.B6zltno1.css.gz +0 -0
- package/.output/public/_nuxt/{CLf2i_DM.js → Bd0Z2zzq.js} +1 -1
- package/.output/public/_nuxt/BrxmYJEM.js +1 -0
- package/.output/public/_nuxt/BrxmYJEM.js.br +0 -0
- package/.output/public/_nuxt/BrxmYJEM.js.gz +0 -0
- package/.output/public/_nuxt/C6fXOTRV.js +3 -0
- package/.output/public/_nuxt/C6fXOTRV.js.br +0 -0
- package/.output/public/_nuxt/C6fXOTRV.js.gz +0 -0
- package/.output/public/_nuxt/{CPlkxpge.js → CXbAL3Yu.js} +43 -42
- package/.output/public/_nuxt/CXbAL3Yu.js.br +0 -0
- package/.output/public/_nuxt/CXbAL3Yu.js.gz +0 -0
- package/.output/public/_nuxt/Cf1C5Vkb.js +27 -0
- package/.output/public/_nuxt/Cf1C5Vkb.js.br +0 -0
- package/.output/public/_nuxt/Cf1C5Vkb.js.gz +0 -0
- package/.output/public/_nuxt/CmTpxyM2.js +62 -0
- package/.output/public/_nuxt/CmTpxyM2.js.br +0 -0
- package/.output/public/_nuxt/CmTpxyM2.js.gz +0 -0
- package/.output/public/_nuxt/{BDTOz37p.js → DMzjoyW_.js} +1 -1
- package/.output/public/_nuxt/DMzjoyW_.js.br +0 -0
- package/.output/public/_nuxt/DMzjoyW_.js.gz +0 -0
- package/.output/public/_nuxt/{B2KlcBQ-.js → DOVT2Tt8.js} +1 -1
- package/.output/public/_nuxt/DOVT2Tt8.js.br +0 -0
- package/.output/public/_nuxt/{B2KlcBQ-.js.gz → DOVT2Tt8.js.gz} +0 -0
- package/.output/public/_nuxt/PjGJWal8.js +23 -0
- package/.output/public/_nuxt/PjGJWal8.js.br +0 -0
- package/.output/public/_nuxt/PjGJWal8.js.gz +0 -0
- package/.output/public/_nuxt/WPcHpWhL.js +31 -0
- package/.output/public/_nuxt/WPcHpWhL.js.br +0 -0
- package/.output/public/_nuxt/WPcHpWhL.js.gz +0 -0
- package/.output/public/_nuxt/{board.fZYj3O-m.css → board.CpFnG_Ho.css} +1 -1
- package/.output/public/_nuxt/board.CpFnG_Ho.css.br +0 -0
- package/.output/public/_nuxt/board.CpFnG_Ho.css.gz +0 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/d4aab09d-c1c4-4743-b8aa-35541006e853.json +1 -0
- package/.output/public/_nuxt/entry.DosS87kQ.css +2 -0
- package/.output/public/_nuxt/entry.DosS87kQ.css.br +0 -0
- package/.output/public/_nuxt/entry.DosS87kQ.css.gz +0 -0
- package/.output/public/_nuxt/nfsDZG4P.js +123 -0
- package/.output/public/_nuxt/nfsDZG4P.js.br +0 -0
- package/.output/public/_nuxt/nfsDZG4P.js.gz +0 -0
- package/.output/public/_nuxt/{CV6ukk-M.js → qODuBH5E.js} +1 -1
- package/.output/public/_nuxt/{settings.Cdb21nNw.css → settings.ycbeituV.css} +1 -1
- package/.output/public/_nuxt/settings.ycbeituV.css.br +0 -0
- package/.output/public/_nuxt/settings.ycbeituV.css.gz +0 -0
- package/.output/public/_nuxt/tYQOxjM1.js +1 -0
- package/.output/public/_nuxt/tYQOxjM1.js.br +0 -0
- package/.output/public/_nuxt/tYQOxjM1.js.gz +0 -0
- package/.output/public/sw.js +1 -1
- package/.output/server/chunks/_/branding.mjs +1 -1
- package/.output/server/chunks/_/fileDownload.mjs +1 -1
- package/.output/server/chunks/_/machineOrder.mjs +1 -1
- package/.output/server/chunks/_/onboarding.mjs +1 -1
- package/.output/server/chunks/_/package.mjs +1 -1
- package/.output/server/chunks/_/plugins.mjs +1 -1
- package/.output/server/chunks/_/restart.mjs +1 -1
- package/.output/server/chunks/_/selfupdate.mjs +1 -1
- package/.output/server/chunks/_/splitShell.mjs +42 -0
- package/.output/server/chunks/_/updates.mjs +1 -1
- package/.output/server/chunks/_/worktrees.mjs +1 -1
- package/.output/server/chunks/_/ws.mjs +1 -1
- package/.output/server/chunks/nitro/nitro.mjs +14191 -13983
- package/.output/server/chunks/raw/check-leaks.mjs +1 -1
- package/.output/server/chunks/raw/ci-browser-plan.mjs +5 -0
- package/.output/server/chunks/raw/engine-changes.mjs +5 -0
- package/.output/server/chunks/raw/engine-result.mjs +7 -0
- package/.output/server/chunks/raw/prerelease.mjs +1 -1
- package/.output/server/chunks/raw/test-affected.mjs +1 -1
- package/.output/server/chunks/routes/api/_..._.mjs +3 -3
- package/.output/server/chunks/routes/api/agents.post.mjs +3 -3
- package/.output/server/chunks/routes/api/ask-tab.post.mjs +3 -3
- package/.output/server/chunks/routes/api/attach.post.mjs +3 -3
- package/.output/server/chunks/routes/api/auth/disable.post.mjs +3 -3
- package/.output/server/chunks/routes/api/auth/lock-all.post.mjs +3 -3
- package/.output/server/chunks/routes/api/auth/lock.post.mjs +3 -3
- package/.output/server/chunks/routes/api/auth/login/options.post.mjs +3 -3
- package/.output/server/chunks/routes/api/auth/login/verify.post.mjs +3 -3
- package/.output/server/chunks/routes/api/auth/max-session.post.mjs +3 -3
- package/.output/server/chunks/routes/api/auth/register/options.post.mjs +3 -3
- package/.output/server/chunks/routes/api/auth/register/verify.post.mjs +3 -3
- package/.output/server/chunks/routes/api/auth/status.get.mjs +3 -3
- package/.output/server/chunks/routes/api/changes.get.mjs +3 -3
- package/.output/server/chunks/routes/api/chat/image.get.mjs +3 -3
- package/.output/server/chunks/routes/api/chat.get.mjs +3 -3
- package/.output/server/chunks/routes/api/choose.post.mjs +3 -3
- package/.output/server/chunks/routes/api/claude-setup.post.mjs +3 -3
- package/.output/server/chunks/routes/api/claude-statusline.post.mjs +3 -3
- package/.output/server/chunks/routes/api/clear-queued-input.post.mjs +3 -3
- package/.output/server/chunks/routes/api/close/status.get.mjs +3 -3
- package/.output/server/chunks/routes/api/close-preview.get.mjs +62 -0
- package/.output/server/chunks/routes/api/close.post.mjs +3 -3
- package/.output/server/chunks/routes/api/codex-update.post.mjs +4 -4
- package/.output/server/chunks/routes/api/commands.get.mjs +4 -4
- package/.output/server/chunks/routes/api/config.get.mjs +4 -4
- package/.output/server/chunks/routes/api/dirs.get.mjs +4 -4
- package/.output/server/chunks/routes/api/dismiss-stopped.post.mjs +4 -4
- package/.output/server/chunks/routes/api/dismiss.post.mjs +4 -4
- package/.output/server/chunks/routes/api/effort.post.mjs +4 -4
- package/.output/server/chunks/routes/api/efforts.get.mjs +4 -4
- package/.output/server/chunks/routes/api/file.post.mjs +4 -4
- package/.output/server/chunks/routes/api/files/download.get.mjs +3 -3
- package/.output/server/chunks/routes/api/files/download.head.mjs +3 -3
- package/.output/server/chunks/routes/api/files/read.get.mjs +3 -3
- package/.output/server/chunks/routes/api/files.get.mjs +3 -3
- package/.output/server/chunks/routes/api/health.get.mjs +3 -3
- package/.output/server/chunks/routes/api/input.post.mjs +4 -4
- package/.output/server/chunks/routes/api/interrupt.post.mjs +4 -4
- package/.output/server/chunks/routes/api/isgit.get.mjs +4 -4
- package/.output/server/chunks/routes/api/machine/awake.get.mjs +3 -3
- package/.output/server/chunks/routes/api/machine/awake.post.mjs +3 -3
- package/.output/server/chunks/routes/api/machine/order.get.mjs +3 -3
- package/.output/server/chunks/routes/api/machine/order.post.mjs +3 -3
- package/.output/server/chunks/routes/api/machine/reconnect.post.mjs +4 -4
- package/.output/server/chunks/routes/api/machine/rename.post.mjs +4 -4
- package/.output/server/chunks/routes/api/machine/status.post.mjs +4 -4
- package/.output/server/chunks/routes/api/menu-left.post.mjs +4 -4
- package/.output/server/chunks/routes/api/menu.post.mjs +4 -4
- package/.output/server/chunks/routes/api/model.post.mjs +4 -4
- package/.output/server/chunks/routes/api/models.get.mjs +4 -4
- package/.output/server/chunks/routes/api/nav.post.mjs +4 -4
- package/.output/server/chunks/routes/api/onboarding.get.mjs +3 -3
- package/.output/server/chunks/routes/api/onboarding.post.mjs +3 -3
- package/.output/server/chunks/routes/api/phone.get.mjs +4 -4
- package/.output/server/chunks/routes/api/phone.post.mjs +4 -4
- package/.output/server/chunks/routes/api/plugins/actions.get.mjs +3 -3
- package/.output/server/chunks/routes/api/plugins/invoke.post.mjs +3 -3
- package/.output/server/chunks/routes/api/plugins/projects.get.mjs +4 -4
- package/.output/server/chunks/routes/api/plugins/projects.post.mjs +4 -4
- package/.output/server/chunks/routes/api/prompt.post.mjs +4 -4
- package/.output/server/chunks/routes/api/push/devices.post.mjs +49 -0
- package/.output/server/chunks/routes/api/push/quiet.post.mjs +4 -4
- package/.output/server/chunks/routes/api/push/subscribe.post.mjs +4 -4
- package/.output/server/chunks/routes/api/push/test.post.mjs +4 -4
- package/.output/server/chunks/routes/api/push/unsubscribe.post.mjs +4 -4
- package/.output/server/chunks/routes/api/quotas.get.mjs +4 -4
- package/.output/server/chunks/routes/api/rename.post.mjs +3 -3
- package/.output/server/chunks/routes/api/requeue.post.mjs +4 -4
- package/.output/server/chunks/routes/api/restart.get.mjs +3 -3
- package/.output/server/chunks/routes/api/restart.post.mjs +3 -3
- package/.output/server/chunks/routes/api/reveal.post.mjs +4 -4
- package/.output/server/chunks/routes/api/screen-key.post.mjs +4 -4
- package/.output/server/chunks/routes/api/screen.get.mjs +4 -4
- package/.output/server/chunks/routes/api/search.get.mjs +4 -4
- package/.output/server/chunks/routes/api/seen.post.mjs +4 -4
- package/.output/server/chunks/routes/api/send-now.post.mjs +4 -4
- package/.output/server/chunks/routes/api/sessions.get.mjs +4 -4
- package/.output/server/chunks/routes/api/sessions.post.mjs +4 -4
- package/.output/server/chunks/routes/api/settings-tab.post.mjs +4 -4
- package/.output/server/chunks/routes/api/settings.get.mjs +4 -4
- package/.output/server/chunks/routes/api/settings.post.mjs +4 -4
- package/.output/server/chunks/routes/api/space.post.mjs +4 -4
- package/.output/server/chunks/routes/api/split-command.post.mjs +7 -42
- package/.output/server/chunks/routes/api/state.get.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/action.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/add.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/after.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/approve.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/archive-done.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/archived.get.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/autopilot.get.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/autopilot.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/board-settings.get.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/board-settings.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/coordinator.get.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/coordinator.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/describe.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/details.get.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/limit.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/links.get.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/models.get.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/pick.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/project.get.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/project.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/question.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/scheduled.get.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/settings.get.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/start.get.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/tell.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks.get.mjs +4 -4
- package/.output/server/chunks/routes/api/unqueue.post.mjs +4 -4
- package/.output/server/chunks/routes/api/update/status.get.mjs +3 -3
- package/.output/server/chunks/routes/api/update.get.mjs +3 -3
- package/.output/server/chunks/routes/api/update.post.mjs +3 -3
- package/.output/server/chunks/routes/api/upload.post.mjs +4 -4
- package/.output/server/chunks/routes/api/worktrees/remove.post.mjs +3 -3
- package/.output/server/chunks/routes/api/worktrees.get.mjs +3 -3
- package/.output/server/chunks/routes/favicon.ico.get.mjs +3 -3
- package/.output/server/chunks/routes/icons/_name_.get.mjs +4 -4
- package/.output/server/chunks/routes/renderer.mjs +5 -5
- package/.output/server/chunks/routes/uploads/_...name_.get.mjs +4 -4
- package/.output/server/chunks/routes/ws/_..._.mjs +4 -4
- package/.output/server/chunks/routes/ws/events.mjs +4 -4
- package/.output/server/chunks/routes/ws/term.mjs +4 -4
- package/.output/server/chunks/virtual/precomputed.mjs +1 -1
- package/.output/server/index.mjs +4 -4
- package/.output/server/package.json +1 -1
- package/docs/README.md +2 -0
- package/docs/RELEASING.md +27 -5
- package/docs/configuration.md +3 -4
- package/docs/conversation.md +2 -3
- package/docs/design.md +1 -1
- package/docs/devices.md +28 -0
- package/docs/notifications.md +7 -0
- package/docs/quotas.md +7 -1
- package/docs/release-notes-2.5.0.md +25 -0
- package/docs/security.md +7 -0
- package/package.json +1 -1
- package/skills/wherdr/SKILL.md +21 -0
- package/.output/public/_nuxt/AgentView.B12D6ccj.css +0 -1
- package/.output/public/_nuxt/AgentView.B12D6ccj.css.br +0 -0
- package/.output/public/_nuxt/AgentView.B12D6ccj.css.gz +0 -0
- package/.output/public/_nuxt/B2KlcBQ-.js.br +0 -0
- package/.output/public/_nuxt/BDTOz37p.js.br +0 -0
- package/.output/public/_nuxt/BDTOz37p.js.gz +0 -0
- package/.output/public/_nuxt/BGD5AamG.js +0 -25
- package/.output/public/_nuxt/BGD5AamG.js.br +0 -0
- package/.output/public/_nuxt/BGD5AamG.js.gz +0 -0
- package/.output/public/_nuxt/BxlzUs1i.js +0 -23
- package/.output/public/_nuxt/BxlzUs1i.js.br +0 -0
- package/.output/public/_nuxt/BxlzUs1i.js.gz +0 -0
- package/.output/public/_nuxt/C-BDzEtI.js +0 -3
- package/.output/public/_nuxt/C-BDzEtI.js.br +0 -0
- package/.output/public/_nuxt/C-BDzEtI.js.gz +0 -0
- package/.output/public/_nuxt/CO4sDeSt.js +0 -62
- package/.output/public/_nuxt/CO4sDeSt.js.br +0 -0
- package/.output/public/_nuxt/CO4sDeSt.js.gz +0 -0
- package/.output/public/_nuxt/CPlkxpge.js.br +0 -0
- package/.output/public/_nuxt/CPlkxpge.js.gz +0 -0
- package/.output/public/_nuxt/CTPNZj4T.js +0 -9
- package/.output/public/_nuxt/CTPNZj4T.js.br +0 -0
- package/.output/public/_nuxt/CTPNZj4T.js.gz +0 -0
- package/.output/public/_nuxt/CwurhZnh.js +0 -123
- package/.output/public/_nuxt/CwurhZnh.js.br +0 -0
- package/.output/public/_nuxt/CwurhZnh.js.gz +0 -0
- package/.output/public/_nuxt/D7fCPncR.js +0 -1
- package/.output/public/_nuxt/D7fCPncR.js.br +0 -0
- package/.output/public/_nuxt/D7fCPncR.js.gz +0 -0
- package/.output/public/_nuxt/DFe-cDm2.js +0 -1
- package/.output/public/_nuxt/DFe-cDm2.js.br +0 -0
- package/.output/public/_nuxt/DFe-cDm2.js.gz +0 -0
- package/.output/public/_nuxt/Dpe9TNcA.js +0 -31
- package/.output/public/_nuxt/Dpe9TNcA.js.br +0 -0
- package/.output/public/_nuxt/Dpe9TNcA.js.gz +0 -0
- package/.output/public/_nuxt/board.fZYj3O-m.css.br +0 -0
- package/.output/public/_nuxt/board.fZYj3O-m.css.gz +0 -0
- package/.output/public/_nuxt/builds/meta/75cc4ea7-3027-463a-aa3e-29e474ed7173.json +0 -1
- package/.output/public/_nuxt/entry.KNdllmoL.css +0 -2
- package/.output/public/_nuxt/entry.KNdllmoL.css.br +0 -0
- package/.output/public/_nuxt/entry.KNdllmoL.css.gz +0 -0
- package/.output/public/_nuxt/settings.Cdb21nNw.css.br +0 -0
- package/.output/public/_nuxt/settings.Cdb21nNw.css.gz +0 -0
|
Binary file
|
|
Binary file
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{A as e,B as t,Et as n,Fn as r,Ft as i,Hn as a,M as o,Mn as s,N as c,Ot as l,P as u,Pt as d,Rt as f,St as p,U as m,V as h,Yt as g,b as _,fr as v,gr as y,hr as b,ht as x,j as S,ln as C,nn as w,pt as T,sn as E,vt as D,wn as O}from"./C25ROUa9.js";import{_t as k,dt as A,gt as ee,vt as te}from"./CDWjMk9C.js";import{$t as j,Ar as ne,Br as re,Gr as M,Ir as N,Jr as P,Kr as F,Lr as I,Or as L,Pr as R,Qr as ie,Rr as z,Ur as B,Vr as ae,Wr as oe,Xr as se,Yr as V,Zr as H,br as ce,ei as le,f as ue,fn as U,jr as de,kr as fe,qr as pe,r as me,s as he,ti as ge,un as _e,vr as ve,xr as ye,zr as W}from"./BxlzUs1i.js";import{f as be,p as xe,u as Se}from"./CXJnLmWv.js";import{D as G,G as Ce,K as we,a as Te,b as Ee,j as De,n as Oe,o as ke}from"./CTPNZj4T.js";import{At as Ae,B as je,Cn as Me,D as Ne,G as Pe,J as K,Jr as Fe,Mi as Ie,O as Le,V as Re,Yr as ze,Zr as Be,a as Ve,b as He,i as q,j as Ue,li as J,r as We,si as Ge,t as Ke,u as qe,ui as Y,v as Je,wn as Ye,wt as Xe,x as Ze,z as Qe}from"./CwurhZnh.js";import{A as $e,D as et,E as tt,M as nt,N as rt,O as it,T as at,c as ot,j as st,k as ct,p as lt,t as ut,y as X}from"./D7fCPncR.js";import{i as dt,n as ft,r as pt,t as mt}from"./CPlkxpge.js";import{t as ht}from"./BDNMzG2s.js";import{C as gt,D as _t,E as Z,F as vt,N as yt,O as bt,P as xt,S as St,T as Ct,_ as wt,b as Tt,d as Et,g as Dt,h as Ot,m as kt,p as At,t as jt,w as Mt,x as Nt,y as Pt}from"#entry";import{t as Ft}from"./BDTOz37p.js";var It=[`aria-label`],Lt=Object.assign(m({__name:`CoordinatorHint`,props:{text:{}},setup(e){let t=s(!1),n=!1,r=De({onPress:()=>{n=!0,t.value=!0}});function c(e){n=!1,r.down(e)}function u(){n&&r.suppressClick(),r.cancel()}function d(e){r.swallowClick()&&(e.preventDefault(),e.stopPropagation())}return D(r.cancel),(n,s)=>{let f=me;return l(),o(f,{open:a(t),"onUpdate:open":s[4]||=e=>O(t)?t.value=e:null,text:e.text,content:{side:`bottom`},ui:{content:`coordinator-tooltip`}},{default:E(()=>[S(`span`,{class:`coordinator-hint`,tabindex:`0`,"aria-label":e.text,onPointerdown:c,onPointermove:s[0]||=(...e)=>a(r).move&&a(r).move(...e),onPointerup:u,onPointercancel:s[1]||=(...e)=>a(r).cancel&&a(r).cancel(...e),onPointerleave:s[2]||=(...e)=>a(r).cancel&&a(r).cancel(...e),onClickCapture:d,onContextmenu:s[3]||=te(()=>{},[`prevent`])},[i(n.$slots,`default`)],40,It)]),_:3},8,[`open`,`text`])}}}),{__name:`CoordinatorHint`});function Rt(e){return e.kind===`project`?`project:${e.repo}`:e.kind}var zt=2e4,Q=new Map;function Bt(){let e=jt(`autopilot`,()=>({})),t=jt(`autopilot-actions`,()=>0);function n(t,n=!1){let r=e.value[t];if(!n&&r&&Date.now()-r.at<zt)return Promise.resolve();let i=Q.get(t);if(i&&!n)return i;let a=q(`/api/tasks/autopilot?${new URLSearchParams({machine:t})}`).then(n=>{e.value[t]={statuses:n,at:Date.now()}}).catch(n=>{e.value[t]={error:n.message,code:n instanceof Ke?n.code:void 0,at:Date.now()}}).finally(()=>{Q.get(t)===a&&Q.delete(t)});return Q.set(t,a),a}function r(n,r,i,a=!1){a&&t.value++;let o=e.value[n];e.value[n]={statuses:{...o?.statuses,[r]:i},at:o?.statuses?o.at:0}}return{machines:e,actions:t,load:n,put:r}}var Vt=[`aria-checked`,`aria-label`,`aria-description`,`title`,`disabled`],Ht={key:0,class:`autopilot-state`},Ut={key:1,class:`autopilot-next`},Wt={class:`autopilot-now`},Gt={class:`field-label`},Kt={key:0},qt={key:0,class:`autopilot-could-not`},Jt={class:`field-label`},Yt={class:`autopilot-goal`},Xt={class:`autopilot-ask`},Zt=[`for`],Qt={class:`autopilot-limits`},$t=[`for`],en={class:`muted`},tn=[`for`],nn={class:`muted`},rn=[`for`],an={class:`muted`},on={class:`autopilot-note`},$={key:3,class:`form-error`,role:`alert`},sn={class:`sheet-form autopilot-actions`},cn=Object.assign(ht(m({__name:`CoordinatorAutopilot`,props:{machine:{},to:{},disabled:{type:Boolean},compact:{type:Boolean}},setup(n){let r=n,{machines:i,load:d,put:f}=Bt(),m=e(()=>Rt(r.to)),g=e(()=>i.value[r.machine]),b=e(()=>{let e=g.value?.statuses;return e?e[m.value]??{on:!1,goal:``,next:``,state:``,couldNot:``}:void 0}),x=e(()=>g.value?.code===`projects_too_old`),C=s(!1),T=s(!1),k=s(!1),A=s(``),ee=s(``),j=s(``),ne=s(``),re=s(``),M=s({every:``,tasksPerDay:``,tasksAtOnce:``}),N=e(()=>{let e=b.value?.next||``;return e.startsWith(`next in `)?Y(`Next wake in ${e.slice(8)}`,`Prochain réveil dans ${e.slice(8)}`):e===`waits for its hours`?Y(`Waiting for its active hours`,`En attente de ses heures actives`):e}),P=e(()=>b.value?b.value.on?Y(`On`,`Actif`):Y(`Off`,`Arrêté`):`…`),F=e(()=>`Autopilot · ${ce(r.to,``)}`),I=e(()=>[F.value,P.value,N.value].filter(Boolean).join(` · `)),L=(e=!1)=>r.disabled?Promise.resolve():d(r.machine,e);async function R(){C.value=!0,A.value=``,j.value=ne.value=re.value=``,ee.value=b.value?.goal||``,k.value=!0;try{let e=await q(`/api/tasks/autopilot?${ie()}`);z(e),ee.value=e.goal}catch(e){A.value=e.message,await L(!0)}finally{k.value=!1}}function ie(){return new URLSearchParams({machine:r.machine,kind:r.to.kind,...r.to.kind===`project`?{repo:r.to.repo}:{}})}function z(e,t=!1){let{defaults:n,...i}=e;M.value=n,f(r.machine,m.value,i,t)}let B=e(()=>!T.value&&!k.value&&!!b.value&&(b.value.on||!!ee.value.trim()));async function ae(){if(!B.value)return;let e=!b.value.on;T.value=!0,A.value=``;try{z(await q(`/api/tasks/autopilot`,{machine:r.machine,to:r.to,action:e?`on`:`off`,...e?{goal:ee.value,every:j.value,tasksPerDay:ne.value,tasksAtOnce:re.value}:{}}),!0),C.value=!1}catch(e){A.value=e.message,await L(!0)}finally{T.value=!1}}w(()=>[r.machine,r.disabled],()=>{L()});let oe;return p(()=>{L(),oe=Ie(()=>{!T.value&&!C.value&&document.visibilityState===`visible`&&L()},6e4)}),D(()=>clearInterval(oe)),(e,r)=>{let i=Ee,s=we,d=he,f=G;return n.compact&&a(x)?c(``,!0):(l(),u(`span`,{key:0,class:v([`autopilot`,{compact:n.compact}])},[S(`button`,{type:`button`,role:`switch`,class:v([`autopilot-switch`,{on:a(b)?.on}]),"aria-checked":a(b)?.on?`true`:`false`,"aria-label":a(F),"aria-description":a(I),title:a(I),disabled:n.disabled||a(T),onClick:R},[r[5]||=S(`i`,{class:`autopilot-dot`,"aria-hidden":`true`},null,-1),r[6]||=S(`span`,{class:`autopilot-name`},`Autopilot`,-1),!n.compact||a(b)?.on?(l(),u(`span`,Ht,y(a(P)),1)):c(``,!0),!n.compact&&a(b)?.on&&a(N)?(l(),u(`span`,Ut,y(a(N)),1)):c(``,!0)],10,Vt),h(f,{open:a(C),"onUpdate:open":r[4]||=e=>O(C)?C.value=e:null,title:a(F),top:``},{footer:E(()=>[S(`div`,sn,[a(b)?(l(),o(d,{key:0,block:``,size:`xl`,class:`sheet-btn`,color:a(b).on?`error`:`primary`,variant:a(b).on?`outline`:`solid`,icon:a(b).on?`i-lucide-square`:`i-lucide-play`,loading:a(T),disabled:!a(B),onClick:ae},{default:E(()=>[t(y(a(b).on?(`tl`in e?e.tl:a(Y))(`Stop Autopilot`,`Arrêter Autopilot`):(`tl`in e?e.tl:a(Y))(`Turn on Autopilot`,`Activer Autopilot`)),1)]),_:1},8,[`color`,`variant`,`icon`,`loading`,`disabled`])):(l(),o(d,{key:1,block:``,size:`xl`,color:`neutral`,variant:`outline`,class:`sheet-btn`,icon:`i-lucide-refresh-cw`,loading:a(k),onClick:R},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Retry`,`Réessayer`)),1)]),_:1},8,[`loading`]))])]),default:E(()=>[S(`form`,{class:`sheet-form autopilot-form`,onSubmit:te(ae,[`prevent`])},[S(`p`,Wt,[S(`span`,Gt,y((`tl`in e?e.tl:a(Y))(`State`,`État`)),1),S(`b`,{class:v({on:a(b)?.on})},y(a(k)&&!a(b)?`…`:a(P)),3),a(b)?.on&&a(N)?(l(),u(`span`,Kt,` · `+y(a(N)),1)):c(``,!0)]),a(b)?.couldNot?(l(),u(`p`,qt,y(a(b).couldNot),1)):c(``,!0),a(b)?.on?(l(),u(_,{key:1},[a(b).goal?(l(),u(_,{key:0},[S(`span`,Jt,y((`tl`in e?e.tl:a(Y))(`Goal`,`Objectif`)),1),S(`p`,Yt,y(a(b).goal),1)],64)):c(``,!0),S(`p`,Xt,y((`tl`in e?e.tl:a(Y))(`Stop Autopilot? The coordinator stays, it just is no longer woken up.`,`Arrêter Autopilot ? Le coordinateur reste là, il n’est simplement plus réveillé.`)),1)],64)):a(b)?(l(),u(_,{key:2},[S(`label`,{class:`field-label`,for:`ap-goal-${a(m)}`},y((`tl`in e?e.tl:a(Y))(`Goal`,`Objectif`)),9,Zt),h(i,{id:`ap-goal-${a(m)}`,modelValue:a(ee),"onUpdate:modelValue":r[0]||=e=>O(ee)?ee.value=e:null,rows:3,autoresize:``,maxrows:8,size:`xl`,class:`w-full`,maxlength:16e3,disabled:a(T)||a(k),placeholder:(`tl`in e?e.tl:a(Y))(`What it works toward, e.g. Ship 2.1: the small fixes first`,`Ce vers quoi il travaille, ex. Sortir la 2.1 : les petites corrections d’abord`)},null,8,[`id`,`modelValue`,`disabled`,`placeholder`]),S(`div`,Qt,[S(`div`,null,[S(`label`,{class:`field-label`,for:`ap-every-${a(m)}`},[t(y((`tl`in e?e.tl:a(Y))(`Every`,`Fréquence`))+` `,1),S(`span`,en,y((`t`in e?e.t:a(J))(`(optional)`)),1)],8,$t),h(s,{id:`ap-every-${a(m)}`,modelValue:a(j),"onUpdate:modelValue":r[1]||=e=>O(j)?j.value=e:null,size:`xl`,class:`w-full mono`,placeholder:a(M).every||`2h`,maxlength:`20`,autocapitalize:`none`,autocorrect:`off`,spellcheck:!1,disabled:a(T)},null,8,[`id`,`modelValue`,`placeholder`,`disabled`])]),S(`div`,null,[S(`label`,{class:`field-label`,for:`ap-day-${a(m)}`},[t(y((`tl`in e?e.tl:a(Y))(`Tasks / day`,`Tâches / jour`))+` `,1),S(`span`,nn,y((`t`in e?e.t:a(J))(`(optional)`)),1)],8,tn),h(s,{id:`ap-day-${a(m)}`,modelValue:a(ne),"onUpdate:modelValue":r[2]||=e=>O(ne)?ne.value=e:null,size:`xl`,class:`w-full mono`,placeholder:a(M).tasksPerDay,inputmode:`numeric`,maxlength:`6`,disabled:a(T)},null,8,[`id`,`modelValue`,`placeholder`,`disabled`])]),S(`div`,null,[S(`label`,{class:`field-label`,for:`ap-once-${a(m)}`},[t(y((`tl`in e?e.tl:a(Y))(`At once`,`En parallèle`))+` `,1),S(`span`,an,y((`t`in e?e.t:a(J))(`(optional)`)),1)],8,rn),h(s,{id:`ap-once-${a(m)}`,modelValue:a(re),"onUpdate:modelValue":r[3]||=e=>O(re)?re.value=e:null,size:`xl`,class:`w-full mono`,placeholder:a(M).tasksAtOnce,inputmode:`numeric`,maxlength:`6`,disabled:a(T)},null,8,[`id`,`modelValue`,`placeholder`,`disabled`])])]),S(`p`,on,y((`tl`in e?e.tl:a(Y))(`Empty values keep the coordinator’s settings. Values given here are for this time only.`,`Les valeurs vides gardent les réglages du coordinateur. Celles données ici valent pour cette fois seulement.`)),1)],64)):c(``,!0),a(A)||!a(b)&&a(g)?.error?(l(),u(`p`,$,y(a(A)||a(g)?.error),1)):c(``,!0),r[7]||=S(`button`,{type:`submit`,hidden:``},null,-1)],32)]),_:1},8,[`open`,`title`])],2))}}}),[[`__scopeId`,`data-v-9f7f1964`]]),{__name:`CoordinatorAutopilot`}),ln={class:`board-skel`,"aria-hidden":`true`},un={key:0,class:`board-seg-btn board-done-toggle`},dn={key:0,class:`board-grid-head`},fn={class:`board-cols board-cells`},pn={class:`board-col-body`},mn=Object.assign(m({__name:`BoardSkeleton`,props:{wide:{type:Boolean},groups:{}},setup(t){let n=t,r={needs:1,ready:1,working:2,todo:3,done:1},i=e(()=>`repeat(${n.groups.length}, minmax(0, 1fr))`);return(e,n)=>(l(),u(`div`,ln,[n[4]||=S(`div`,{class:`board-tools`},[S(`span`,{class:`skel-tools`})],-1),t.wide?c(``,!0):(l(),u(`div`,{key:0,class:`board-seg tasks`,style:b({gridTemplateColumns:`${a(i)} auto`})},[(l(!0),u(_,null,d(t.groups,(t,r)=>(l(),u(`span`,{key:t,class:v([`board-seg-btn`,[t,{on:r===0}]])},[S(`span`,null,y((`taskGroupLabel`in e?e.taskGroupLabel:a(wt))(t)),1),n[0]||=S(`b`,null,`—`,-1)],2))),128)),t.groups.includes(`done`)?c(``,!0):(l(),u(`span`,un,[S(`span`,null,y((`taskGroupLabel`in e?e.taskGroupLabel:a(wt))(`done`)),1),n[1]||=S(`b`,null,`—`,-1)]))],4)),S(`div`,{class:v([`board-grid`,{desk:t.wide}]),style:b({"--board-cols":a(i)})},[t.wide?(l(),u(`div`,dn,[(l(!0),u(_,null,d(t.groups,t=>(l(),u(`h3`,{key:t,class:v([`board-col-head`,t])},[S(`span`,null,y((`taskGroupLabel`in e?e.taskGroupLabel:a(wt))(t)),1),n[2]||=S(`span`,{class:`pp-count`},`—`,-1)],2))),128))])):c(``,!0),S(`div`,fn,[(l(!0),u(_,null,d(t.wide?t.groups:t.groups.slice(0,1),e=>(l(),u(`section`,{key:e,class:v([`board-col`,e])},[S(`div`,pn,[(l(!0),u(_,null,d(t.wide?r[e]:3,e=>(l(),u(`div`,{key:e,class:`board-card skel-card`},[...n[3]||=[S(`i`,{style:{width:`22%`}},null,-1),S(`i`,{style:{width:`78%`}},null,-1),S(`i`,{style:{width:`48%`}},null,-1)]]))),128))])],2))),128))])],6)]))}}),{__name:`BoardSkeleton`}),hn=Object.assign(m({__name:`RepoArchiveMenu`,props:{machine:{},repo:{},machineLabel:{},tasks:{},disabled:{type:Boolean}},emits:[`refresh`],setup(t,{emit:n}){let r=t,i=n,c=s(!1),u=e(()=>r.tasks.filter(e=>e.repo===r.repo&&e.group===`done`&&!e.archived).length),d=e(()=>r.disabled||K.value||c.value||!u.value),f=()=>Y(`Archive completed tasks`,`Archiver les tâches terminées`);async function p(){if(!d.value){c.value=!0;try{if(!await _e(Y(`Archive completed tasks in ${r.repo} on ${r.machineLabel}? Completed tasks currently known: ${u.value}. Pinned tasks are kept, as are working and to-do tasks.`,`Archiver les tâches terminées de ${r.repo} sur ${r.machineLabel} ? Tâches terminées actuellement connues : ${u.value}. Les tâches épinglées, en cours et à faire sont conservées.`),f())||r.disabled||K.value||!u.value)return;try{let e=await q(`/api/tasks/archive-done`,{machine:r.machine,repo:r.repo});Object.assign(U,{open:!0,pane:null,cmd:f(),text:[e.stdout,e.stderr,e.code?Y(`Exit code: ${e.code}`,`Code de sortie : ${e.code}`):``].filter(Boolean).join(`
|
|
2
|
-
`),tabs:[],tab:null})}catch(e){Object.assign(U,{open:!0,pane:null,cmd:f(),text:e.message,tabs:[],tab:null})}finally{i(`refresh`)}}finally{c.value=!1}}}let m=()=>[{label:f(),icon:`i-lucide-archive`,disabled:d.value,run:p}];return(e,n)=>{let r=xt;return l(),o(r,{items:m,title:t.repo,size:`sm`,label:(`tl`in e?e.tl:a(Y))(`Repository options: ${t.repo}`,`Options du dépôt : ${t.repo}`)},null,8,[`title`,`label`])}}}),{__name:`RepoArchiveMenu`}),gn=[`title`,`aria-label`],_n={class:`task-key-text`},vn={key:0,class:`task-key-flash`,"aria-live":`polite`},yn=Object.assign(m({__name:`TaskKey`,props:{value:{}},setup(e){let t=e,n=s(``),r;function i(e){let t=document.createElement(`textarea`);t.value=e,t.setAttribute(`readonly`,``),t.style.cssText=`position:fixed;top:0;left:0;opacity:0;font-size:16px`,document.body.appendChild(t),t.select(),t.setSelectionRange(0,e.length);try{return document.execCommand(`copy`)}finally{t.remove()}}async function o(e){e.stopPropagation();let a=!1;try{navigator.clipboard?.writeText?(await navigator.clipboard.writeText(t.value),a=!0):a=i(t.value)}catch{a=!1}n.value=a?`done`:`fail`,clearTimeout(r),r=setTimeout(()=>{n.value=``},1e3)}return D(()=>clearTimeout(r)),(t,r)=>(l(),u(`button`,{type:`button`,class:v([`task-key task-key-copy`,a(n)]),title:(`t`in t?t.t:a(J))(`Copy ID`),"aria-label":`${(`t`in t?t.t:a(J))(`Copy ID`)} ${e.value}`,onClick:o},[S(`span`,_n,y(e.value),1),a(n)?(l(),u(`span`,vn,y(a(n)===`done`?(`t`in t?t.t:a(J))(`Copied`):(`t`in t?t.t:a(J))(`Copy failed`)),1)):c(``,!0)],10,gn))}}),{__name:`TaskKey`});function bn(e){return e===`question`||e===`permission`||e===`auth`?e:null}function xn(e){return e===`question`?Y(`Question`,`Question`):e===`permission`?Y(`Permission`,`Permission`):Y(`Sign-in`,`Connexion`)}var Sn=/https?:\/\/[^\s<>"'`]+/g,Cn=/[.,;:!?)\]}»”’]+$/;function wn(e){let t=oe(e);if(t)return`PR ${t}`;try{let t=new URL(e),n=t.pathname.replace(/\/+$/,``),r=n.split(`/`).filter(Boolean).slice(-2).join(`/`),i=r?`${t.host}/${n.split(`/`).filter(Boolean).length>2?`…/`:``}${r}`:t.host;return i.length>40?`${i.slice(0,39)}…`:i}catch{return e}}function Tn(e){let t=[],n=0;for(let r of e.matchAll(Sn)){let i=r[0],a=Cn.exec(i);if(a&&!(a[0].startsWith(`)`)&&i.includes(`(`))&&(i=i.slice(0,-a[0].length)),!i.replace(/^https?:\/\//,``))continue;let o=r.index;o>n&&t.push({text:e.slice(n,o)}),t.push({text:wn(i),href:i}),n=o+i.length}return n<e.length&&t.push({text:e.slice(n)}),t}function En(e){for(let t of Tn(e))if(`href`in t&&oe(t.href))return t.href;return``}var Dn=5,On=80,kn=e=>e.replace(/\s+/g,` `).replace(/^[\s,;:–—-]+/,``).replace(/(?:[\s,;:–—-]+|\s+(?:or|ou))+$/i,``).replace(/[?.!]+$/,``).trim();function An(e){for(let t of[`1`,`a`,`A`]){let n=[],r=t;for(let t of e.matchAll(/(^|[\s(:;,])([0-9]|[a-zA-Z])[).]\s+/g)){if(t[2]!==r)continue;let e=t.index+t[1].length;n.push({at:e,end:t.index+t[0].length,mark:t[2]}),r=String.fromCharCode(r.charCodeAt(0)+1)}if(n.length<2||n.length>Dn)continue;let i=n.map((t,r)=>{let i=kn(e.slice(t.end,r+1<n.length?n[r+1].at:void 0).split(`
|
|
3
|
-
`)[0]);return{label:i,reply:`${t.mark}) ${i}`}});if(i.every(e=>e.label&&e.label.length<=On))return i}return[]}function jn(e){let t=/[([]([^()[\]\n]{1,160})[)\]]\s*[?.!:]?\s*$/.exec(e.trim());if(!t)return[];let n=t[1].trim();if(/:\/\/|^(?:e\.g\.|ex\.|i\.e\.)/i.test(n)||/^[~.]?[\w.-]*\/[\w./-]*$/.test(n)&&/[.~]|\/.*\//.test(n))return[];let r=n.split(/\s*[/|]\s*|\s+(?:or|ou)\s+/i).map(kn).filter(Boolean);return r.length<2||r.length>Dn||r.some(e=>e.length>40)?[]:r.map(e=>({label:e,reply:e}))}function Mn(e){let t=An(e);return t.length?t:jn(e)}var Nn=/^(?:(?:always|toujours)(?:\s+(?:allow|allowed|autoriser|autorisé))?|(?:allow|autoriser)\s+always|autoriser\s+toujours)$/i,Pn=/\b(?:or|ou)\s+(?:always|toujours)(?:\s+(?:allow|autoriser))?\s*[?.!]?\s*$/i,Fn=/\b(?:you\s+(?:can|could|may|might)|(?:tu|vous)\s+(?:peux|pouvez|pourrais|pourriez))\s+(?:(?:also|aussi|également|plutôt|instead)\s+)?(?:always\s+allow|toujours\s+(?:l['’]\s*)?autoriser|(?:l['’]\s*)?autoriser\s+toujours|allow\s+(?:it\s+|this\s+)?always)\b/i;function In(e){return[...jn(e),...An(e)].some(e=>Nn.test(e.label.replace(/[.!]+$/,``)))?!0:Pn.test(e.trim())||Fn.test(e)}function Ln(e){return e===`allow`?Y(`Allowed: go ahead.`,`Autorisé : vas-y.`):e===`refuse`?Y(`Refused: do not do it.`,`Refusé : ne le fais pas.`):Y(`Allowed, always: no need to ask again for this.`,`Autorisé, toujours : plus besoin de demander pour ça.`)}function Rn(e,t){let n=[...e.querySelectorAll(`.msg-ai`)];if(!n.length)return null;let r=e=>e.replace(/[*_`#>]/g,``).replace(/\s+/g,` `).trim().toLowerCase(),i=t.split(/https?:\/\/\S+/).map(e=>r(e).replace(/^[^\p{L}\p{N}]+/u,``).slice(0,40).trim()).filter(e=>e.length>=8).sort((e,t)=>t.length-e.length);for(let e of i)for(let t=n.length-1;t>=0;t--)if(r(n[t].textContent||``).includes(e))return n[t];return n[n.length-1]}var zn=[`href`,`title`],Bn=Object.assign(m({__name:`LinkedText`,props:{text:{}},setup(n){let r=n,i=e(()=>Tn(r.text));return(e,n)=>(l(!0),u(_,null,d(a(i),(e,r)=>(l(),u(_,{key:r},[`href`in e?(l(),u(`a`,{key:0,class:`linked-text-link`,href:e.href,title:e.href,target:`_blank`,rel:`noopener noreferrer`,onClick:n[0]||=te(()=>{},[`stop`])},y(e.text),9,zn)):(l(),u(_,{key:1},[t(y(e.text),1)],64))],64))),128))}}),{__name:`LinkedText`}),Vn=[`title`,`data-task`],Hn=[`aria-current`,`aria-label`],Un={class:`board-card-head`},Wn={key:1,class:`board-card-label`},Gn={class:`task-card-title`},Kn={class:`board-card-title wrap`},qn=[`href`,`title`],Jn=[`title`],Yn=[`data-kind`],Xn={class:`task-card-msg-text`},Zn={key:1,class:`task-chips`},Qn={key:0,class:`task-chip`},$n=Object.assign(m({__name:`TaskCard`,props:{task:{},status:{type:Boolean},machine:{},stale:{type:Boolean},readAt:{},selected:{type:Boolean}},emits:[`open`],setup(t){let n=t,r=e(()=>n.task.group===`needs`?bn(n.task.kind):null),i=e(()=>(n.task.msg||``).replace(/\s+/g,` `).trim()),o=e(()=>n.task.pr||En(n.task.msg||``)),s=e(()=>vt(n.task)),f=e(()=>[n.task.progress!==null&&s.value?.kind===`running`?`${n.task.progress}%`:``].filter(Boolean)),p=e(()=>n.stale?n.readAt?Y(`As read at ${n.readAt}: see the note above`,`Lue à ${n.readAt} : voir la note plus haut`):Y(`An older read: see the note above`,`Lecture plus ancienne : voir la note plus haut`):void 0);return(e,n)=>{let m=gt,g=yn,b=Mt,x=Bn;return l(),u(`div`,{class:v([`board-card task-card`,[t.task.group,{stale:t.stale,sel:t.selected},a(s)&&a(s).kind!==`running`?`activity-${a(s).kind}`:``]]),title:a(p),"data-task":t.task.id},[S(`button`,{type:`button`,class:`task-card-open`,"aria-current":t.selected?`true`:void 0,"aria-label":`${a(ie)(t.task.id,t.task.repoKey)} ${t.task.title}`,onClick:n[0]||=t=>e.$emit(`open`)},null,8,Hn),S(`span`,Un,[h(m,{identity:t.task.identity||{agent:t.task.app,reviewer:``,from:``},primary:``},null,8,[`identity`]),h(g,{value:a(ie)(t.task.id,t.task.repoKey)},null,8,[`value`]),h(b,{activity:a(s)},null,8,[`activity`]),t.status?(l(),u(`span`,{key:0,class:v([`task-state`,t.task.group])},y((`taskGroupLabel`in e?e.taskGroupLabel:a(wt))(t.task.group)),3)):c(``,!0),t.machine?(l(),u(`span`,Wn,y(t.machine),1)):c(``,!0)]),S(`span`,Gn,[S(`span`,Kn,y(t.task.title),1),a(o)?(l(),u(`a`,{key:0,class:`task-chip task-card-pr`,href:a(o),title:a(o),target:`_blank`,rel:`noopener noreferrer`},y(a(oe)(a(o))?`PR ${a(oe)(a(o))}`:`PR`),9,qn)):c(``,!0)]),a(i)?(l(),u(`span`,{key:0,class:`board-note task-card-msg`,title:t.task.msg},[a(r)?(l(),u(`span`,{key:0,class:`task-needs-type`,"data-kind":a(r)},y(a(xn)(a(r))),9,Yn)):c(``,!0),S(`span`,Xn,[h(x,{text:a(i)},null,8,[`text`])])],8,Jn)):c(``,!0),t.task.chat||a(f).length||t.task.review?(l(),u(`span`,Zn,[t.task.chat?(l(),u(`span`,Qn,y((`tl`in e?e.tl:a(Y))(`Conversation`,`Conversation`)),1)):c(``,!0),(l(!0),u(_,null,d(a(f),e=>(l(),u(`span`,{key:e,class:`task-chip`},y(e),1))),128)),t.task.review?(l(),u(`span`,{key:1,class:v([`task-chip`,t.task.review.pass===!1?`fail`:t.task.review.pass?`pass`:``])},y(t.task.review.pass===!1?(`tl`in e?e.tl:a(Y))(`review failed`,`revue échouée`):(`tl`in e?e.tl:a(Y))(`review`,`revue`))+y(t.task.review.tally?` · ${t.task.review.tally}`:``),3)):c(``,!0)])):c(``,!0)],10,Vn)}}}),{__name:`TaskCard`}),er={class:`scheduled-content`},tr={key:0},nr={key:1,role:`status`},rr={key:0},ir={key:1},ar={class:`scheduled-prompt`},or={class:`scheduled-tasks`},sr=[`href`],cr={class:`scheduled-session`},lr={key:0,class:`scheduled-cron`},ur={class:`scheduled-prompt`},dr={key:3,class:`scheduled-zone`},fr=Object.assign(ht(m({__name:`CoordinatorScheduled`,props:{machine:{},target:{},refreshKey:{}},setup(n){let i=n,o=s(!1),f=r(null),p=s(``),m=s(!1),h=0;async function g(){let e=++h;m.value=!0,p.value=``;let t=new URLSearchParams({machine:i.machine,kind:i.target.kind,...i.target.kind===`project`?{repo:i.target.repo}:{}});try{let n=await q(`/api/tasks/scheduled?${t}`);e===h&&(f.value=n)}catch{e===h&&(p.value=Y(`Schedule unavailable`,`Programmation indisponible`))}finally{e===h&&(m.value=!1)}}function v(e){let t=e.target.open;t!==o.value&&(o.value=t,o.value&&(f.value=null,g()))}w(()=>[i.machine,JSON.stringify(i.target)],()=>{h++,f.value=null,p.value=``,m.value=!1,o.value&&g()}),w(()=>i.refreshKey,()=>{o.value?g():f.value=null}),D(()=>h++);let b=e(()=>f.value&&!f.value.autopilot?.on&&!f.value.automations.length&&!f.value.timers.length);function x(e){return e?typeof e==`string`?C(e):new Intl.DateTimeFormat(Ge===`fr`?`fr-FR`:`en-GB`,{timeZone:f.value?.timezone||`UTC`,dateStyle:`short`,timeStyle:`short`}).format(e):`—`}function C(e){return Ge===`fr`?e.replace(/when a task is merged/g,`après chaque fusion`).replace(/when a task is added/g,`après chaque ajout de tâche`).replace(/when a task waits for approval/g,`quand une tâche attend une approbation`).replace(/when a task failed its review/g,`après un échec de relecture`).replace(/when a task went wrong/g,`après un échec de tâche`).replace(/when a task needs you/g,`quand une tâche a besoin de toi`).replace(/in every repo/g,`dans tous les projets`).replace(/every /g,`tous les `).replace(/daily /g,`tous les jours à `).replace(/\bmon\b/gi,`lundis`).replace(/\btue\b/gi,`mardis`).replace(/\bwed\b/gi,`mercredis`).replace(/\bthu\b/gi,`jeudis`).replace(/\bfri\b/gi,`vendredis`).replace(/\bsat\b/gi,`samedis`).replace(/\bsun\b/gi,`dimanches`).replace(/\bon done stuck added\b/g,`sur fin, blocage, ajout`).replace(/next in /g,`dans `).replace(/next /g,`prochain `).replace(/\bof\b/g,`sur`).replace(/added/g,`ajoutées`).replace(/under way/g,`en cours`):e}function T(e){if(/^(mon|tue|wed|thu|fri|sat|sun)(?:,(?:mon|tue|wed|thu|fri|sat|sun))* (\d{1,2}:\d{2})$/i.exec(e)){let[t,n]=e.split(` `),r={mon:`Monday`,tue:`Tuesday`,wed:`Wednesday`,thu:`Thursday`,fri:`Friday`,sat:`Saturday`,sun:`Sunday`};return Ge===`fr`?`Tous les ${C(t)} à ${n}`:`Every ${t.split(`,`).map(e=>r[e.toLowerCase()]).join(`, `)} at ${n}`}let t=/^(?:cron\s+)?(\d+) (\d+) \* \* ([0-6])$/.exec(e);if(t){let e=Ge===`fr`?[`dimanches`,`lundis`,`mardis`,`mercredis`,`jeudis`,`vendredis`,`samedis`]:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`];return Y(`Every ${e[Number(t[3])]} at ${t[2]}:${t[1].padStart(2,`0`)}`,`Tous les ${e[Number(t[3])]} à ${t[2]}:${t[1].padStart(2,`0`)}`)}return C(e)}let E=e=>`/#/board?machine=${encodeURIComponent(i.machine)}&task=${encodeURIComponent(e)}`;return(e,n)=>(l(),u(`details`,{class:`coordinator-scheduled`,onToggle:v},[S(`summary`,null,y((`tl`in e?e.tl:a(Y))(`Scheduled`,`Programmé`)),1),S(`div`,er,[a(m)?(l(),u(`p`,tr,y((`t`in e?e.t:a(J))(`Loading…`)),1)):c(``,!0),a(p)?(l(),u(`p`,nr,y(a(p)),1)):c(``,!0),a(f)?(l(),u(_,{key:2},[(l(!0),u(_,null,d(a(f).warnings,t=>(l(),u(`p`,{key:t,role:`status`},y((`t`in e?e.t:a(J))(t)),1))),128)),a(b)&&!a(f).warnings.length?(l(),u(`p`,rr,y((`tl`in e?e.tl:a(Y))(`Nothing scheduled`,`Rien de programmé`)),1)):c(``,!0),a(f).autopilot?(l(),u(`article`,ir,[S(`h4`,null,[n[0]||=t(`Autopilot `,-1),S(`span`,null,y(a(f).autopilot.on?(`tl`in e?e.tl:a(Y))(`On`,`Actif`):(`tl`in e?e.tl:a(Y))(`Off`,`Inactif`)),1)]),a(f).autopilot.on?(l(),u(_,{key:0},[S(`p`,null,y(C(a(f).autopilot.frequency)),1),S(`p`,ar,y(a(f).autopilot.goal),1),S(`p`,null,y((`tl`in e?e.tl:a(Y))(`Today`,`Aujourd’hui`))+` : `+y(C(a(f).autopilot.today)),1),S(`p`,null,y((`tl`in e?e.tl:a(Y))(`Last wake`,`Dernier réveil`))+` : `+y(x(a(f).autopilot.last)),1),S(`p`,null,y((`tl`in e?e.tl:a(Y))(`Next wake`,`Prochain réveil`))+` : `+y(x(a(f).autopilot.next)),1)],64)):c(``,!0)])):c(``,!0),(l(!0),u(_,null,d(a(f).automations,n=>(l(),u(`article`,{key:n.id},[S(`h4`,null,[t(y(n.name)+` `,1),S(`span`,null,y(n.on?(`tl`in e?e.tl:a(Y))(`On`,`Active`):(`tl`in e?e.tl:a(Y))(`Off`,`Inactive`)),1)]),S(`p`,null,y(T(n.trigger)),1),S(`p`,null,y((`tl`in e?e.tl:a(Y))(`Last trigger`,`Dernier déclenchement`))+` : `+y(x(n.last)),1),S(`p`,null,y((`tl`in e?e.tl:a(Y))(`Next trigger`,`Prochain déclenchement`))+` : `+y(x(n.next)),1),S(`p`,or,[(l(!0),u(_,null,d(n.tasks,e=>(l(),u(`a`,{key:e,href:E(e)},y(e),9,sr))),128))])]))),128)),a(f).timers.length?(l(),u(_,{key:2},[S(`p`,cr,y((`tl`in e?e.tl:a(Y))(`Session: lost when the session closes`,`Session : perdus si la session se ferme`)),1),(l(!0),u(_,null,d(a(f).timers,n=>(l(),u(`article`,{key:n.id},[S(`h4`,null,[t(y(n.id===a(`ScheduleWakeup`)?(`tl`in e?e.tl:a(Y))(`Wakeup`,`Réveil`):n.id)+` `,1),S(`span`,null,y(n.recurring?(`tl`in e?e.tl:a(Y))(`Recurring`,`Récurrent`):(`tl`in e?e.tl:a(Y))(`Once`,`Ponctuel`)),1)]),n.cron?(l(),u(`p`,lr,y(n.cron),1)):c(``,!0),S(`p`,null,y((`tl`in e?e.tl:a(Y))(`Next run (estimated)`,`Prochaine exécution (estimée)`))+` : `+y(x(n.next)),1),S(`p`,ur,y(n.prompt),1)]))),128))],64)):c(``,!0),a(b)?c(``,!0):(l(),u(`p`,dr,y(a(f).timezone),1))],64)):c(``,!0)])],32))}}),[[`__scopeId`,`data-v-89e07225`]]),{__name:`CoordinatorScheduled`}),pr=[`agent`,`review`,`plan`,`limits`,`merge`,`workspace`,`other`];function mr(e){return/^worker\.|^(research|chat)\.only$/.test(e)?`agent`:/^(reviewer|review)\./.test(e)?`review`:/^(plan|attempts|check)\./.test(e)?`plan`:e.startsWith(`limit.`)?`limits`:e.startsWith(`merge.`)?`merge`:e.startsWith(`workspace.`)?`workspace`:`other`}function hr(e){return e==null?null:typeof e==`string`?e:JSON.stringify(e,null,2)}function gr(e){switch(e){case`agent`:return Y(`Agent`,`Agent`);case`review`:return Y(`Review`,`Revue`);case`plan`:return Y(`Plan and attempts`,`Plan et essais`);case`limits`:return Y(`Limits`,`Limites`);case`merge`:return Y(`Merge`,`Fusion`);case`workspace`:return Y(`Workspace`,`Espace de travail`);case`other`:return Y(`Other settings`,`Autres réglages`)}}function _r(e){switch(e){case`task`:return Y(`Task`,`Tâche`);case`repo`:return Y(`Repository`,`Dépôt`);case`you`:return Y(`You`,`Toi`);case`file`:return Y(`Repository file`,`Fichier du dépôt`);case`builtin`:return Y(`Default`,`Défaut`);default:return e||Y(`Source not provided`,`Provenance non renseignée`)}}function vr(e){switch(e){case`worker.agent`:return Y(`Working agent`,`Agent de travail`);case`worker.effort`:return Y(`Reasoning effort`,`Effort de raisonnement`);case`worker.fast`:return Y(`Fast mode`,`Mode rapide`);case`worker.access`:return Y(`Access`,`Accès`);case`worker.instructions`:return Y(`Instructions`,`Instructions`);case`worker.fallback`:return Y(`Fallback agents`,`Agents de secours`);case`reviewer.agent`:return Y(`Reviewing agent`,`Agent de revue`);case`reviewer.effort`:return Y(`Review reasoning effort`,`Effort de raisonnement de revue`);case`reviewer.fast`:return Y(`Fast review mode`,`Mode rapide de revue`);case`reviewer.access`:return Y(`Reviewer access`,`Accès du relecteur`);case`reviewer.instructions`:return Y(`Review instructions`,`Instructions de revue`);case`reviewer.fallback`:return Y(`Fallback reviewers`,`Relecteurs de secours`);case`research.only`:return Y(`Research only`,`Recherche seule`);case`chat.only`:return Y(`Conversation only`,`Conversation seule`);case`plan.approve`:return Y(`Plan approval`,`Approbation du plan`);case`plan.agent`:return Y(`Planning agent`,`Agent du plan`);case`attempts.by`:return Y(`Number of attempts`,`Nombre d’essais`);case`attempts.pick`:return Y(`Attempt selection`,`Sélection de l’essai`);case`check.command`:return Y(`Check command`,`Commande de vérification`);case`check.again`:return Y(`Repeat checks`,`Répétition des vérifications`);case`check.timeout`:return Y(`Check timeout`,`Délai des vérifications`);case`review.when`:return Y(`When to review`,`Quand relire`);case`review.mustFix`:return Y(`Required fixes`,`Corrections obligatoires`);case`review.rounds`:return Y(`Review rounds`,`Tours de revue`);case`review.timeout`:return Y(`Review timeout`,`Délai de revue`);case`review.afterChat`:return Y(`Review after conversation`,`Revue après conversation`);case`review.evidence`:return Y(`Review evidence`,`Preuves de revue`);case`limit.time`:return Y(`Time limit`,`Limite de temps`);case`limit.tokens`:return Y(`Token limit`,`Limite de tokens`);case`merge.by`:return Y(`Who merges`,`Qui fusionne`);case`merge.method`:return Y(`Merge method`,`Méthode de fusion`);case`merge.pr`:return Y(`Pull request`,`Pull request`);case`merge.pushTimeout`:return Y(`Push timeout`,`Délai du push`);case`merge.checks`:return Y(`Merge checks`,`Vérifications avant fusion`);case`workspace.from`:return Y(`Starting branch`,`Branche de départ`);case`workspace.branch`:return Y(`Work branch pattern`,`Format de la branche de travail`);case`workspace.setup`:return Y(`Setup command`,`Commande de préparation`);case`workspace.include`:return Y(`Included files`,`Fichiers inclus`);case`workspace.teardown`:return Y(`Teardown command`,`Commande de fin`);case`workspace.cleanup`:return Y(`Workspace cleanup`,`Nettoyage de l’espace de travail`);default:return e}}var yr=[`aria-label`],br={key:0,class:`board-note`,role:`status`},xr={key:1,class:`board-empty`,role:`status`},Sr={key:2,role:`alert`,class:`board-note error`},Cr={key:0,class:`board-empty`},wr={class:`settings-key`},Tr={class:`settings-value`},Er={class:`settings-origin`},Dr={key:0},Or={key:1,class:`settings-note`},kr={key:2},Ar=Object.assign(ht(m({__name:`TaskSettings`,props:{machine:{},id:{},active:{type:Boolean,default:!0},reachable:{type:Boolean,default:!0}},setup(n){let r=n,i=s(null),o=s(!1),f=s(``),p=e(()=>!r.reachable||K.value),m=e(()=>pr.map(e=>({group:e,rows:i.value?.settings.filter(t=>![`board`,`coordinator`,`repo`].includes(t.kind)&&mr(t.name)===e)??[]})).filter(e=>e.rows.length)),g=0,b=!1;async function x(){if(!r.active||p.value||b)return;b=!0;let e=++g;o.value=!0,f.value=``;try{let t=await q(`/api/tasks/settings?machine=${encodeURIComponent(r.machine)}&id=${encodeURIComponent(r.id)}`);e===g&&(i.value=t)}catch(t){e===g&&(f.value=t.message)}finally{e===g&&(o.value=!1)}}w(()=>[r.machine,r.id],()=>{g++,b=!1,o.value=!1,i.value=null,f.value=``},{flush:`sync`}),w(()=>[r.machine,r.id,r.active,p.value],()=>{x()},{immediate:!0});function C(){b=!1,x()}return(e,n)=>{let r=he;return l(),u(`section`,{class:`task-settings task-sheet-block`,"aria-label":(`tl`in e?e.tl:a(Y))(`Settings`,`Réglages`)},[S(`h4`,null,y((`tl`in e?e.tl:a(Y))(`Settings`,`Réglages`))+` · `+y((`tl`in e?e.tl:a(Y))(`Read-only`,`Lecture seule`)),1),a(p)?(l(),u(`p`,br,y((`tl`in e?e.tl:a(Y))(`Machine offline. Settings cannot be read.`,`Machine hors ligne. Impossible de lire les réglages.`)),1)):a(o)?(l(),u(`p`,xr,y((`t`in e?e.t:a(J))(`Loading…`)),1)):a(f)?(l(),u(`div`,Sr,[S(`p`,null,y((`tl`in e?e.tl:a(Y))(`Could not read settings`,`Impossible de lire les réglages`))+` · `+y(a(f)),1),h(r,{color:`neutral`,variant:`outline`,onClick:C},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Retry`,`Réessayer`)),1)]),_:1})])):a(i)?(l(),u(_,{key:3},[(l(!0),u(_,null,d(a(i).problems,(e,t)=>(l(),u(`p`,{key:t,class:`board-note error`,role:`alert`},y(e),1))),128)),a(m).length?c(``,!0):(l(),u(`p`,Cr,y((`tl`in e?e.tl:a(Y))(`No settings returned by the CLI.`,`Aucun réglage renvoyé par le CLI.`)),1)),(l(!0),u(_,null,d(a(m),({group:n,rows:r})=>(l(),u(`section`,{key:n,class:`settings-group`},[S(`h5`,null,y(a(gr)(n)),1),S(`dl`,null,[(l(!0),u(_,null,d(r,(n,r)=>(l(),u(`div`,{key:`${n.name}-${r}`,class:`settings-row`},[S(`dt`,null,[t(y(a(vr)(n.name)),1),S(`small`,wr,y(n.name),1)]),S(`dd`,Tr,y(a(hr)(n.value)??(`tl`in e?e.tl:a(Y))(`Not provided`,`Non renseigné`)),1),S(`dd`,Er,[S(`span`,{class:v([`settings-source`,{own:n.place===`task`}])},y(a(_r)(n.place)),3),n.from?(l(),u(`span`,Dr,y(n.from),1)):c(``,!0),n.note?(l(),u(`span`,Or,y(n.note),1)):c(``,!0),n.later?(l(),u(`span`,kr,y(n.later),1)):c(``,!0)])]))),128))])]))),128))],64)):c(``,!0)],8,yr)}}}),[[`__scopeId`,`data-v-7134ed46`]]),{__name:`TaskSettings`}),jr=`none`,Mr=36e5,Nr=6e4;function Pr(e){if(typeof e!=`string`)return null;let t=e.trim().match(/^(?:(\d+)h)?(?:(\d+)m)?(?:(\d+)s)?$/);return!t||!t[1]&&!t[2]&&!t[3]?null:Number(t[1]||0)*Mr+Number(t[2]||0)*Nr+Number(t[3]||0)*1e3}function Fr(e){if(typeof e==`number`)return Number.isFinite(e)&&e>=0?e:null;if(typeof e!=`string`)return null;let t=e.trim().match(/^(\d+(?:[.,]\d+)?)\s*([kmb])?$/i);if(!t)return null;let n=Number(t[1].replace(`,`,`.`))*({k:1e3,m:1e6,b:1e9}[t[2]?.toLowerCase()||``]||1);return Number.isFinite(n)?n:null}var Ir=e=>e===`fr`?`,`:`.`;function Lr(e){let t=Math.round(Math.max(0,e)/1e3),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60;return n>0?r>0?`${n} h ${String(r).padStart(2,`0`)}`:`${n} h`:r>=10||r>0&&i===0?`${r} min`:r>0?`${r} min ${String(i).padStart(2,`0`)}`:`${t} s`}function Rr(e,t=`en`){let n=Math.max(0,Math.round(e)),r=e=>{let n=e<10?2:+(e<100),r=e.toFixed(n);return r.includes(`.`)&&(r=r.replace(/0+$/,``).replace(/\.$/,``)),r.replace(`.`,Ir(t))};return n>=999500?`${r(n/1e6)} M`:n>=1e3?`${r(n/1e3)} k`:String(n)}function zr(e,t,n=`en`){if(e===`time`){let e=Pr(t);return e===null?t:Lr(e)}let r=Fr(t);return r===null?t:Rr(r,n)}function Br(e){let t=Math.max(1,Math.round(e/1e3));return t%3600==0?`${t/3600}h`:t%60==0?`${t/60}m`:`${t}s`}function Vr(e){let t=Math.max(1,Math.round(e));return t%1e6==0?`${t/1e6}m`:t%1e3==0?`${t/1e3}k`:String(t)}function Hr(e,t,n){let r=e=>n===null||e>n;if(e===`time`){let e=Pr(t);return e===null?[{id:`none`,value:jr,resumes:!0}]:[{id:`plus1h`,value:Br(e+Mr),resumes:r(e+Mr)},{id:`double`,value:Br(e*2),resumes:r(e*2)},{id:`none`,value:jr,resumes:!0}]}let i=Fr(t);return i===null?[{id:`none`,value:jr,resumes:!0}]:[{id:`double`,value:Vr(i*2),resumes:r(i*2)},{id:`plus10m`,value:Vr(i+1e7),resumes:r(i+1e7)},{id:`none`,value:jr,resumes:!0}]}function Ur(e,t){return e===null||t===null||t<=0?null:e/t}var Wr=.9;function Gr(e,t){let n=(t||``).match(/^stopped at its (\S+) limit\b/i),r=n?null:(t||``).match(/^stopped at (\S+) tokens\b/i),i=n?`time`:r?`tokens`:null,a=e?.stopped??i;if(!a)return null;let o=a===i?(n??r)[1]:``,s=e?.[a];return{kind:a,limit:s&&s!==`none`&&(a===`time`?Pr(s):Fr(s))!==null?s:o,used:a===`tokens`?e?.tokensCounted??e?.stoppedUsed??null:e?.stoppedUsed??e?.timeUsedMs??null}}var Kr=e=>Fr(e);function qr(e,t=Ge){let n=Kr(e);return n===null?e==null||e===``?`—`:String(e):Rr(n,t)}var Jr={key:0},Yr={key:1,class:`token-count`},Xr=[`title`,`aria-expanded`,`aria-label`],Zr={key:0,class:`token-count-exact`},Qr=Object.assign(ht(m({__name:`TokenCount`,props:{value:{}},setup(t){let n=t,r=s(!1),i=e(()=>Kr(n.value));return w(()=>n.value,()=>{r.value=!1}),(e,n)=>a(i)===null?(l(),u(`span`,Jr,y(a(qr)(t.value)),1)):(l(),u(`span`,Yr,[S(`button`,{type:`button`,title:String(a(i)),"aria-expanded":a(r),"aria-label":(`tl`in e?e.tl:a(Y))(`Show exact token count: ${a(i)}`,`Afficher le nombre exact de tokens : ${a(i)}`),onClick:n[0]||=e=>r.value=!a(r)},y(a(qr)(t.value)),9,Xr),a(r)?(l(),u(`span`,Zr,` (`+y(a(i))+`)`,1)):c(``,!0)]))}}),[[`__scopeId`,`data-v-ea3455b4`]]),{__name:`TokenCount`}),$r=[`aria-label`],ei=[`data-kind`],ti={class:`task-limit-head`},ni={class:`task-limit-label`},ri={class:`task-limit-value`},ii=[`aria-label`,`aria-valuemax`,`aria-valuenow`],ai={key:0,class:`task-limit-total`},oi=Object.assign(m({__name:`TaskLimitGauges`,props:{limits:{}},setup(n){let r=n,i=e(()=>{let e=r.limits,t=Pr(e.time),n=e.timeUsedMs??Pr(e.timeUsed)??(e.stopped===`time`?e.stoppedUsed??null:null),i=Fr(e.tokens),a=e.tokensCounted??(e.stopped===`tokens`?e.stoppedUsed??null:null)??e.tokensUsed;return[{kind:`time`,label:Y(`Time · this run`,`Temps · cette tranche`),used:n,limit:t,raw:e.time,share:Ur(n,t)},{kind:`tokens`,label:Y(`Tokens`,`Tokens`),used:a,limit:i,raw:e.tokens,share:Ur(a,i)}]}),s=e(()=>{let e=r.limits,t=i.value[1].used;return e.tokensUsed!==null&&e.tokensUsed!==t?e.tokensUsed:null}),f=e=>`${Math.min(100,Math.max(0,(e.share??0)*100))}%`,p=e=>e.raw===`none`?Y(`No limit`,`Aucune limite`):e.raw||Y(`Not provided`,`Non renseigné`);return(e,n)=>{let r=Qr;return l(),u(`section`,{class:`task-sheet-block task-limits`,"aria-label":(`tl`in e?e.tl:a(Y))(`Limits`,`Limites`)},[(l(!0),u(_,null,d(a(i),e=>(l(),u(`div`,{key:e.kind,class:v([`task-limit`,{hot:(e.share??0)>=a(Wr),unset:e.limit===null}]),"data-kind":e.kind},[S(`div`,ti,[S(`span`,ni,y(e.label),1),S(`span`,ri,[e.kind===`time`?(l(),u(_,{key:0},[t(y(e.used===null?`—`:a(Lr)(e.used))+` / `+y(e.limit===null?p(e):a(Lr)(e.limit)),1)],64)):(l(),u(_,{key:1},[e.used===null?(l(),u(_,{key:1},[t(`—`)],64)):(l(),o(r,{key:0,value:e.used},null,8,[`value`])),n[0]||=t(` / `,-1),e.limit===null?(l(),u(_,{key:3},[t(y(p(e)),1)],64)):(l(),o(r,{key:2,value:e.limit},null,8,[`value`]))],64))])]),e.limit===null?c(``,!0):(l(),u(`div`,{key:0,class:`task-limit-bar`,role:`meter`,"aria-label":e.label,"aria-valuemin":0,"aria-valuemax":e.limit,"aria-valuenow":e.used??0},[S(`i`,{style:b({width:f(e)})},null,4)],8,ii))],10,ei))),128)),a(s)===null?c(``,!0):(l(),u(`p`,ai,[t(y((`tl`in e?e.tl:a(Y))(`Whole task`,`Toute la tâche`))+` · `,1),h(r,{value:a(s)},null,8,[`value`])]))],8,$r)}}}),{__name:`TaskLimitGauges`});function si(e){switch(e){case`conversation`:return Y(`End this conversation when you are done.`,`Termine cette conversation quand tu as fini.`);case`limit`:return Y(`Continue grants a new allowance. Raising the limit keeps usage and resumes automatically. Take as is: checks, then review. These work limits are separate from provider quotas.`,`Continuer accorde une nouvelle tranche. Relever la limite conserve la consommation et reprend automatiquement. Prendre tel quel : vérifications puis relecture. Ces limites de travail sont distinctes des quotas fournisseur.`);case`nosummary`:return Y(`Retry: the agent goes on. Finish: the work is taken as it is, its screen as the summary, checked, then reviewed.`,`Réessayer : l’agent continue. Terminer : le travail est pris tel quel, son écran comme résumé, vérifié, puis relu.`);case`stuck`:return Y(`Its agent is at rest, but the board did not see its turn end. Finish: the work is taken as it is, with what the agent said last, checked, then reviewed.`,`Son agent est au repos, mais le board n’a pas vu la fin de son tour. Terminer : le travail est pris tel quel, avec ce que l’agent a dit en dernier, vérifié, puis relu.`)}}var ci=(e=!1)=>e?Y(`End conversation`,`Terminer la conversation`):Y(`Finish`,`Terminer`),li=(e=!1)=>e?Y(`End this conversation`,`Terminer cette conversation`):Y(`Take the work as it is: checks, then review`,`Prendre le travail tel quel : vérifications puis relecture`),ui=(e,t=!1)=>t?Y(`End “${e}”?`,`Terminer la conversation « ${e} » ?`):Y(`Take “${e}” as it is? Its checks run, then its review. If this task merges by itself (merge.by itself), it can merge without asking you.`,`Prendre « ${e} » tel quel ? Ses vérifications tournent, puis sa relecture. Si cette tâche fusionne d’elle-même (merge.by itself), elle peut fusionner sans te demander.`);function di(e,t){let n=re(e);return n!==null&&(n!==`stuck`||t!==`working`&&t!==`blocked`)}function fi(e){if(!e?.limit)return si(`limit`);let t=zr(e.kind,e.limit,Ge),n=e.kind===`time`?Y(`${t} a run`,`${t} par tranche`):Y(`${t} tokens`,`${t} tokens`);return Y(`Continue grants a new allowance (${n}). Raising the limit keeps usage and resumes automatically. Take as is: checks, then review. These work limits are separate from provider quotas.`,`Continuer accorde une nouvelle tranche (${n}). Relever la limite conserve la consommation et reprend automatiquement. Prendre tel quel : vérifications puis relecture. Ces limites de travail sont distinctes des quotas fournisseur.`)}var pi={key:0,class:`task-sheet`},mi={key:0,class:`task-sheet-meta`},hi={key:0,class:`task-chip task-archived`},gi={key:1,class:`task-chip`},_i={key:2,class:`task-chip`},vi={key:3,class:`task-chip`},yi={key:4,class:`task-chip`},bi={key:1,class:`task-chip`},xi={key:2,class:`task-sheet-msg`},Si={key:3,class:`task-sheet-msg`},Ci={key:4,class:`task-sheet-block task-wait`,role:`status`},wi={class:`task-wait-line`},Ti={key:5,class:`task-sheet-block task-wait`,role:`status`},Ei={class:`task-wait-line`},Di=[`title`],Oi={key:0},ki={key:0,class:`board-note error`},Ai={class:`task-wait-hint`},ji={key:6,class:`board-note task-sheet-archived`},Mi={key:7,class:`board-empty`},Ni={key:8,class:`board-note error`},Pi={key:9,class:`task-sheet-block task-attempts`},Fi={key:0,class:`task-sheet-text`},Ii={key:1,class:`task-sheet-text`},Li={key:2,class:`board-note error`},Ri={class:`mono`},zi={key:0},Bi={key:1},Vi={key:3,class:`board-note`},Hi={key:10,class:`task-sheet-facts`},Ui=[`href`],Wi={class:`mono`},Gi={key:11,class:`task-sheet-block task-handovers`},Ki={class:`task-handover-list`},qi={key:0,class:`task-handover-meta`},Ji={key:1},Yi={key:2},Xi={key:3},Zi=[`datetime`],Qi={key:12,class:`plugin-input-note warn`},$i={key:13,class:`task-sheet-block task-sheet-earlier`},ea={class:`task-sheet-text`},ta={key:14,class:`task-sheet-block task-description`},na={key:0},ra={for:`task-description`,class:`field-label`},ia={key:0,class:`board-note error`,role:`alert`},aa={class:`task-sheet-actions`},oa={class:`task-sheet-text`},sa={key:16,class:`task-sheet-block`},ca={class:`task-sheet-text`},la={key:17,class:`task-sheet-block board-panel-note`},ua={class:`task-sheet-text`},da={key:18,class:`board-panel-report`},fa=[`href`],pa={key:1},ma={key:19,class:`task-sheet-block`},ha={key:21,class:`task-sheet-block`},ga={class:`task-sheet-actions`},_a={for:`task-question`,class:`field-label`},va={class:`task-sheet-actions`},ya=[`aria-label`],ba={class:`task-start-label`},xa={key:0,class:`task-start-wait`},Sa=[`aria-checked`,`disabled`,`onClick`],Ca={class:`task-start-name`},wa={key:1},Ta={key:1,class:`task-start-model`},Ea={class:`task-start-label`},Da={key:2,class:`task-start-from`},Oa={key:3,class:`task-start-from task-start-missing`,role:`status`},ka={key:4,class:`task-start-from`},Aa={key:23,class:`task-sheet-actions`},ja={key:24,role:`status`},Ma={key:25,class:`task-finish-why`},Na={id:`task-limit-kind`,class:`field-label`},Pa=[`aria-label`],Fa={class:`raise-limit-op`},Ia={key:0,class:`raise-limit-to`},La={for:`task-limit-value`,class:`field-label`},Ra={key:1,role:`status`},za={key:2,role:`alert`},Ba={class:`task-sheet-actions`},Va={key:26,class:`task-queue-place`,role:`status`},Ha={key:27,class:`task-sheet-block task-after-pick`},Ua={class:`task-wait-hint`},Wa={key:0,class:`task-wait-line`},Ga=[`aria-label`,`onClick`],Ka={class:`task-after-list`},qa={key:0},Ja={class:`mono`},Ya=[`onClick`],Xa={class:`mono`},Za={class:`task-after-title`},Qa={key:1,class:`board-empty`},$a={class:`task-sheet-actions`},eo={key:28,class:`task-finish-why`},to={key:29,class:`board-note error task-sheet-error`,role:`alert`},no=Object.assign(ht(m({__name:`TaskSheet`,props:T({task:{},machine:{},refresh:{},embedded:{type:Boolean},reachable:{type:Boolean,default:!0},limitRequest:{}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:T([`changed`,`archived`,`restored`,`chat`,`coordinator`],[`update:open`]),setup(n,{emit:r}){let i=n,p=r,m=g(n,`open`),b=s(null),x=s(!1),C=s(``),T=s(``),D=e(()=>I.value||K.value||i.reachable===!1||V.value||F.value||!!N.value||!b.value);function A(){D.value||(C.value=b.value?.description??``,T.value=``,x.value=!0)}async function ee(){let e=i.task;if(!e||!x.value||D.value)return;let t=Q,n=C.value;I.value=!0,T.value=``;try{if(await q(`/api/tasks/describe`,{machine:i.machine,id:e.id,text:n}),t!==Q)return;x.value=!1,await Bt(t)}catch(e){t===Q&&(T.value=e.message)}finally{t===Q&&(I.value=!1)}}let j=s(``),M=s(!1),N=s(``),F=s(!1),I=s(!1),z=s(null),B=s(``),ae=e(()=>b.value&&b.value.id===i.task?.id?b.value:null),se=s(!1),V=e(()=>!!ae.value?.archived||!!i.task?.archived&&!se.value),H=e(()=>i.task?{...i.task,archived:V.value,chat:ae.value?.chat??i.task.chat}:null),ce=e(()=>Ne.value.panes.find(e=>e.id===ae.value?.pane)?.status??null),le=e=>({...e,finish:e.finish&&!!H.value&&di(H.value,ce.value)}),U=e(()=>H.value?le(P(H.value,ae.value)):L),de=e(()=>{let e=H.value?re(H.value):null;return e?si(e):``}),fe=e(()=>H.value?.stage===`stopped`&&H.value?.state===`blocked`&&!V.value),me=s(!1),ge=e(()=>ae.value?.limits?.stopped?`limit.${ae.value.limits.stopped}`:null),ve=s(``),ye=s(``),W=s(!1);w(ge,()=>{ye.value=``,ve.value=``});function be(){ve.value=``,ye.value=``,me.value=!0}let xe=e(()=>fe.value?Gr(ae.value?.limits,H.value?.msg):null),Se=e(()=>{let e=xe.value;return e&&ge.value===`limit.${e.kind}`?Hr(e.kind,e.limit,e.used):[]});function Ce(e){switch(e.id){case`plus1h`:return`+1 h`;case`plus10m`:return`+10 M`;case`double`:return`×2`;default:return Y(`No limit`,`Sans limite`)}}let Te=e=>e.value===`none`||!xe.value?``:zr(xe.value.kind,e.value,Ge);function De(e){e.resumes&&(ye.value=e.value,Oe())}async function Oe(){let e=i.task;if(!e||I.value||K.value||i.reachable===!1||!fe.value||!ge.value||!ye.value.trim())return;let t=Q,n=i.machine;I.value=!0,W.value=!0,ve.value=``,B.value=``;try{await q(`/api/tasks/limit`,{machine:n,id:e.id,name:ge.value,value:ye.value.trim()}),await Bt(t),t===Q&&(!N.value&&ae.value?.stage&&ae.value.stage!==`stopped`?me.value=!1:ve.value=Y(`Limit saved. Resumption is not confirmed yet. It can take a few seconds; if the task stays stopped, choose a ceiling above its usage.`,`Plafond enregistré. La reprise n’est pas encore confirmée. Elle peut prendre quelques secondes ; si la tâche reste arrêtée, choisis un plafond supérieur à sa consommation.`))}catch(e){Vt(e,t)}finally{t===Q&&(I.value=!1,W.value=!1)}}let ke=e(()=>b.value?.pr||i.task?.pr||``),Ae=e(()=>b.value?.review||i.task?.review||null),Ie=e(()=>i.task?vt(i.task):null),ze=e(()=>i.task?ie(i.task.id,i.task.repoKey):``),Be=e(()=>!V.value&&(!!ae.value?.pane||U.value.tell)),Ve=s(null),He=s(!1),We=s(null),Ke=e(()=>Ve.value?.agent?.kind||``),qe=e(()=>Ve.value?Me(Ve.value,Le.value,Y(`default`,`par défaut`)):[]),Je=e(()=>qe.value[0]?.usable??!0),Ye=e(()=>We.value&&qe.value.some(e=>!e.isDefault&&e.id===We.value)?We.value:null),Ze=e(()=>!Je.value&&!Ye.value),Qe=s(null),$e=s(null),et=e(()=>Ye.value||(Je.value?Ke.value:``)),tt=e(()=>Qe.value&&et.value?`${et.value}/${Qe.value}`:Ye.value),nt=e=>e.isDefault?e.usable&&!Ye.value:e.id===Ye.value;function rt(e){return e.usable?e.hidden?Y(`default · hidden in Settings`,`défaut · masqué dans les réglages`):Y(`default`,`défaut`):Y(`default · not installed`,`défaut · pas installé`)}function it(){let e=Ve.value?.agent;if(!e)return``;let t=i.task?.repo||``;switch(e.place){case`task`:return Y(`Default set on this task`,`Défaut réglé sur cette tâche`);case`repo`:return Y(`Default from your settings for ${t}`,`Défaut de tes réglages pour ${t}`);case`you`:return Y(`Default from your settings`,`Défaut de tes réglages`);case`builtin`:return Y(`herdr-projects’ built-in default`,`Défaut intégré de herdr-projects`);default:return Y(`Default: ${e.from}`,`Défaut : ${e.from}`)}}let at=0;async function ot(){let e=i.task;if(!e)return;let t=++at;He.value=!0;try{let n=await q(`/api/tasks/start?machine=${encodeURIComponent(i.machine)}&id=${encodeURIComponent(e.id)}`);t===at&&(Ve.value=n)}catch{t===at&&(Ve.value=null)}finally{t===at&&(He.value=!1)}}let st=e(()=>pe(Ve.value?.slots));function ct(){let e=tt.value;return st.value?e?Y(`Queue with ${e}`,`Mettre en file avec ${e}`):Y(`Queue`,`Mettre en file`):e?Y(`Start with ${e}`,`Lancer avec ${e}`):Y(`Start`,`Lancer`)}let lt=e(()=>{let e=Ve.value?.slots;return!st.value||!e?``:`${Ct(st.value)} · ${Y(`all ${e.max} slots are taken`,e.max===1?`la seule place est prise`:`les ${e.max} places sont prises`)}`}),ut=e(()=>i.task?.stage===`queued`&&!V.value?i.task.queue??ae.value?.queue??0:null),X=e(()=>{let e=ae.value?.after;return e&&!V.value&&(e.waiting||i.task?.stage===`todo`||i.task?.stage===`after`)?e:null}),dt=e=>e?je(e)?.label||e:Ue.value,pt=e(()=>Nt.value?.machines??[]),mt=e=>bt(e,i.machine,pt.value,dt),ht=e(()=>!!X.value),gt=s(!1),xt=s(``),St=s([]),Et=s(!1),Dt=e(()=>gt.value&&i.task?_t(pt.value,i.machine,i.task.id,dt,xt.value).filter(e=>!St.value.some(t=>t.ref===e.ref)):[]),Ot=e(()=>{let e=Z(xt.value);return e&&!St.value.some(t=>t.ref===e)&&!Dt.value.some(t=>t.ref.toLowerCase()===e.toLowerCase())?e:null}),kt=0;async function At(){gt.value=!0,xt.value=``,St.value=[];let e=++kt;Et.value=!Nt.value;try{let e=await q(`/api/tasks`);`same`in e||Tt(e)}catch{}finally{e===kt&&(Et.value=!1)}}function jt(){gt.value=!1,xt.value=``,St.value=[]}function Pt(e){St.value.length<20&&(St.value=[...St.value,e]),xt.value=``}function Ft(){let e=Ot.value;e&&Pt({ref:e,id:e,machine:``,title:``,group:`todo`})}function It(e){St.value=St.value.filter(t=>t.ref!==e)}let Lt=0;async function Rt(){let e=i.task;if(!e)return;let t=++Lt;F.value=!0,N.value=``;try{let n=await q(`/api/tasks/details?machine=${encodeURIComponent(i.machine)}&id=${encodeURIComponent(e.id)}`);t===Lt&&(b.value=n)}catch(e){t===Lt&&(N.value=e.message)}finally{t===Lt&&(F.value=!1)}}let zt=()=>`${i.machine}|${i.task?.id??``}`,Q=0;w([m,zt],([e])=>{Q++,x.value=!1,C.value=``,T.value=``,me.value=!1,ye.value=``,ve.value=``,W.value=!1,I.value=!1,z.value=null,B.value=``,se.value=!1,We.value=null,Qe.value=null,$e.value=null,jt(),j.value=``,M.value=!1,Ve.value=null,He.value=!1,at++,e&&(b.value=null,Rt())},{immediate:!0}),w(()=>i.limitRequest,()=>{fe.value&&be()}),w(()=>`${m.value&&U.value.delegate}|${zt()}`,()=>{m.value&&U.value.delegate&&!Ve.value&&!He.value&&ot()},{immediate:!0}),w([zt,()=>`${i.task?.stage??``}|${i.task?.state??``}`],([e,t],[n,r])=>{m.value&&e===n&&t!==r&&Rt()});async function Bt(e){i.refresh?await i.refresh().catch(()=>{}):p(`changed`),e===Q&&m.value&&await Rt()}function Vt(e,t){let n=e.message;Xe(n,!0),t===Q&&(B.value=n)}let Ht=e=>m.value&&zt()===e;async function Ut(){let e=i.task;if(!e||I.value)return;let t=zt(),n=i.machine,r=e.stage===`plan`;if(!await _e(r?Y(`Say yes to the plan of “${e.title}”? Its agent starts building.`,`Accepter le plan de « ${e.title} » ? Son agent commence à construire.`):Y(`Approve “${e.title}”? herdr-projects merges its work. This cannot be undone.`,`Approuver « ${e.title} » ? herdr-projects fusionne son travail. C’est irréversible.`),r?Y(`Approve plan`,`Accepter le plan`):Y(`Approve and merge`,`Approuver et fusionner`),`primary`)||!Ht(t))return;let a=Q;I.value=!0,B.value=``;try{let t=await q(`/api/tasks/approve`,{machine:n,id:e.id});Xe(t.msg||Y(`Approved`,`Approuvé`)),await Bt(a)}catch(e){Vt(e,a)}finally{a===Q&&(I.value=!1)}}let Wt=()=>K.value||i.reachable===!1;async function Gt(e){let t=i.task;if(!t||I.value||Wt()||F.value||N.value||!R(ae.value,e))return;let n=zt(),r=Q,a=i.machine;I.value=!0,B.value=``;try{if(!await _e(Y(`Keep attempt ${e} for “${t.title}”? The other attempts’ tabs close.`,`Garder l’essai ${e} pour « ${t.title} » ? Les onglets des autres essais se ferment.`),Y(`Keep ${e} and close the others`,`Garder ${e} et fermer les autres`),`primary`)||r!==Q||!Ht(n)||Wt()||!R(ae.value,e))return;let i=await q(`/api/tasks/pick`,{machine:a,id:t.id,letter:e,confirmed:!0});Xe(i.msg),await Bt(r)}catch(e){Vt(e,r)}finally{r===Q&&(I.value=!1)}}let Kt={delegate:()=>Y(`Started: an agent is on it`,`Lancée : un agent s’en occupe`),stop:()=>Y(`Stopped`,`Arrêtée`),fix:()=>Y(`Sent to the agent to fix`,`Envoyée à l’agent pour correction`),retry:()=>Y(`Sent back to its agent`,`Renvoyée à son agent`),review:()=>Y(`Review sent back to the agent`,`Remarques renvoyées à l’agent`),finish:()=>Y(`Taken as it is: checks, then review`,`Prise telle quelle : vérifications puis relecture`),restore:()=>Y(`Restored`,`Restaurée`)};async function qt(e,t){let n=i.task;if(!n||I.value||e===`delegate`&&Ze.value)return;let r=zt(),a=i.machine;if(e===`stop`&&!await _e(Y(`Stop the agent of “${n.title}”? Its turn ends now; the task stays, and Retry or Start picks it up again.`,`Arrêter l’agent de « ${n.title} » ? Son tour s’arrête maintenant ; la tâche reste, Réessayer ou Lancer la reprend.`),Y(`Stop the agent`,`Arrêter l’agent`))||e===`finish`&&!await _e(ui(n.title,H.value?.chat),ci(H.value?.chat),`primary`)||!Ht(r))return;let o=Q;I.value=!0,z.value=e,B.value=``;try{let r=e===`delegate`?tt.value:null,i=e===`delegate`&&Qe.value?$e.value:null,s=await q(`/api/tasks/action`,{machine:a,id:n.id,action:e,...r?{agent:r}:{},...i?{effort:i}:{},...e===`delegate`&&t?.length?{after:t}:{}});if(e===`delegate`&&o===Q&&jt(),Fe(),e===`archive`){o===Q&&(m.value=!1),p(`archived`,a,n);return}Xe(s.msg||(e===`finish`&&H.value?.chat?Y(`Conversation ended`,`Conversation terminée`):Kt[e]())),e===`restore`&&o===Q&&(se.value=!0),e===`restore`&&p(`restored`,a,n),await Bt(o)}catch(e){Vt(e,o)}finally{o===Q&&(I.value=!1,z.value=null)}}function Jt(){St.value.length&&qt(`delegate`,St.value.map(e=>e.ref))}async function Yt(){let e=i.task;if(!e||I.value||!ht.value)return;let t=i.machine,n=Q;I.value=!0,B.value=``;try{let r=await q(`/api/tasks/after`,{machine:t,id:e.id});Fe(),Xe(r.msg||Y(`No longer waiting`,`N’attend plus`)),await Bt(n)}catch(e){Vt(e,n)}finally{n===Q&&(I.value=!1)}}async function Xt(){let e=i.task;if(!e||V.value||I.value||!j.value.trim()||K.value)return;let t=i.machine,n=Q;I.value=!0,B.value=``;try{await q(`/api/tasks/question`,{machine:t,id:e.id,text:j.value.trim()}),n===Q&&(j.value=``,m.value=!1,p(`coordinator`,t,e))}catch(e){Vt(e,n)}finally{n===Q&&(I.value=!1)}}function Zt(){i.task&&!I.value&&(m.value=!1,p(`coordinator`,i.machine,i.task))}function Qt(){let e=i.task;e&&Be.value&&(m.value=!1,p(`chat`,i.machine,e))}return(e,r)=>{let i=yn,s=Mt,p=ue,g=he,w=Ee,re=Ar,P=oi,L=yt,ie=we;return l(),o(f(n.embedded?`section`:G),{open:m.value,"onUpdate:open":r[18]||=e=>m.value=e,title:n.task?.title||(`tl`in e?e.tl:a(Y))(`Task`,`Tâche`),wide:``},{default:E(()=>[n.task?(l(),u(`div`,pi,[n.embedded?c(``,!0):(l(),u(`p`,mi,[h(i,{value:a(ze)},null,8,[`value`]),S(`span`,{class:v([`task-state`,n.task.group])},y((`taskGroupLabel`in e?e.taskGroupLabel:a(wt))(n.task.group)),3),h(s,{activity:a(Ie)},null,8,[`activity`]),a(V)?(l(),u(`span`,hi,[h(p,{name:`i-lucide-archive`}),t(y((`tl`in e?e.tl:a(Y))(`Archived`,`Archivée`)),1)])):c(``,!0),n.task.app?(l(),u(`span`,gi,y(n.task.app),1)):c(``,!0),a(H)?.chat?(l(),u(`span`,_i,y((`tl`in e?e.tl:a(Y))(`Conversation`,`Conversation`)),1)):n.task.research?(l(),u(`span`,vi,y((`tl`in e?e.tl:a(Y))(`research`,`recherche`)),1)):c(``,!0),(`multiMachine`in e?e.multiMachine:a(Pe))&&n.machine!==void 0?(l(),u(`span`,yi,y((`machineName`in e?e.machineName:a(Re))(n.machine)),1)):c(``,!0)])),n.embedded&&a(H)?.chat?(l(),u(`span`,bi,y((`tl`in e?e.tl:a(Y))(`Conversation`,`Conversation`)),1)):c(``,!0),n.embedded&&a(Ie)?.kind===`running`&&n.task.progress!==null?(l(),u(`p`,xi,[t(y((`tl`in e?e.tl:a(Y))(`Progress`,`Avancement`))+` · `+y(n.task.progress)+`%`,1),n.task.eta===null?c(``,!0):(l(),u(_,{key:0},[t(` · `+y((`tl`in e?e.tl:a(Y))(`${n.task.eta} min left`,`${n.task.eta} min restantes`)),1)],64))])):c(``,!0),n.task.msg&&!a(X)&&a(ut)===null?(l(),u(`p`,Si,y(n.task.msg),1)):c(``,!0),a(ut)===null?c(``,!0):(l(),u(`section`,Ci,[S(`h4`,null,y((`tl`in e?e.tl:a(Y))(`In the queue`,`En file`)),1),S(`p`,wi,[h(p,{name:`i-lucide-list-ordered`}),t(y((`tl`in e?e.tl:a(Y))(`Waiting for a free slot`,`Attend une place libre`)),1),a(ut)?(l(),u(_,{key:0},[r[19]||=t(` · `,-1),S(`strong`,null,y(a(Ct)(a(ut))),1)],64)):c(``,!0)])])),a(X)?(l(),u(`section`,Ti,[S(`h4`,null,y(a(X).waiting?(`tl`in e?e.tl:a(Y))(`Waiting`,`En attente`):(`tl`in e?e.tl:a(Y))(`To wait for`,`À attendre`)),1),S(`p`,Ei,[h(p,{name:`i-lucide-hourglass`}),t(y(a(X).waiting?(`tl`in e?e.tl:a(Y))(`Waits for`,`Attend`):(`tl`in e?e.tl:a(Y))(`Will wait for`,`Attendra`))+` `,1),(l(!0),u(_,null,d(a(X).waitsFor,n=>(l(),u(`span`,{key:n,class:v([`task-wait-chip`,{done:!a(X).left.includes(n)}]),title:a(X).titles[n]||void 0},[t(y(mt(n)),1),a(X).left.includes(n)?c(``,!0):(l(),u(`small`,Oi,y((`tl`in e?e.tl:a(Y))(`done`,`fait`)),1))],10,Di))),128))]),a(X).forYou?(l(),u(`p`,ki,y(a(X).forYou),1)):c(``,!0),S(`p`,Ai,y(a(X).waiting?(`tl`in e?e.tl:a(Y))(`It starts by itself once they are done.`,`Elle démarre d’elle-même quand elles sont faites.`):(`tl`in e?e.tl:a(Y))(`Once started, it waits for them to be done.`,`Une fois lancée, elle attend qu’elles soient faites.`)),1),a(ht)?(l(),o(g,{key:1,color:`neutral`,variant:`outline`,icon:`i-lucide-x`,class:`task-wait-clear`,disabled:a(I)||(`offlineView`in e?e.offlineView:a(K)),onClick:Yt},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Stop waiting`,`Ne plus attendre`)),1)]),_:1},8,[`disabled`])):c(``,!0)])):c(``,!0),a(V)?(l(),u(`p`,ji,y((`tl`in e?e.tl:a(Y))(`Archived: read-only, as in herdr-projects. Restore it to change or start it again.`,`Archivée : en lecture seule, comme dans herdr-projects. Restaure-la pour la modifier ou la relancer.`)),1)):c(``,!0),a(F)&&!a(b)?(l(),u(`p`,Mi,y((`t`in e?e.t:a(J))(`Loading…`)),1)):c(``,!0),a(N)?(l(),u(`p`,Ni,y(a(N)),1)):c(``,!0),!a(V)&&n.task.stage===`pick`&&a(b)?.stage===`pick`?(l(),u(`section`,Pi,[S(`h4`,null,y((`tl`in e?e.tl:a(Y))(`Choose an attempt`,`Choisis un essai`)),1),a(b).comparison?.pick?(l(),u(`p`,Fi,y((`tl`in e?e.tl:a(Y))(`Picker recommends ${a(b).comparison.pick}`,`Le picker recommande ${a(b).comparison.pick}`)),1)):c(``,!0),a(b).comparison?.why?(l(),u(`p`,Ii,y(a(b).comparison.why),1)):c(``,!0),a(b).comparison?.error?(l(),u(`p`,Li,y(a(b).comparison.error),1)):c(``,!0),(l(!0),u(_,null,d(a(b).attempts,r=>(l(),u(`div`,{key:r.letter,class:`task-attempt`},[S(`p`,null,[S(`strong`,Ri,y(r.letter),1),t(` · `+y(r.agent),1)]),S(`p`,null,[t(y(r.standing===`passed`?(`tl`in e?e.tl:a(Y))(`Checks passed`,`Vérifications réussies`):r.standing===`out`?(`tl`in e?e.tl:a(Y))(`Not selectable`,`Non sélectionnable`):(`tl`in e?e.tl:a(Y))(`Checks not passed yet`,`Vérifications pas encore réussies`)),1),r.standing===`passed`?c(``,!0):(l(),u(_,{key:0},[t(` · `+y(r.stage),1)],64))]),r.stat?(l(),u(`p`,zi,y(r.stat),1)):c(``,!0),a(b).comparison?.notes[r.letter]?(l(),u(`p`,Bi,y(a(b).comparison.notes[r.letter]),1)):c(``,!0),h(g,{disabled:a(I)||(`offlineView`in e?e.offlineView:a(K))||n.reachable===!1||a(F)||!!a(N)||!a(R)(a(b),r.letter),onClick:e=>Gt(r.letter)},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Keep ${r.letter}`,`Garder ${r.letter}`)),1)]),_:2},1032,[`disabled`,`onClick`])]))),128)),a(b).attempts?.length?c(``,!0):(l(),u(`p`,Vi,y((`tl`in e?e.tl:a(Y))(`No attempts available`,`Aucun essai disponible`)),1))])):c(``,!0),a(ke)||a(Ae)||a(b)?.branch||a(b)?.agent?(l(),u(`dl`,Hi,[a(ke)?(l(),u(_,{key:0},[S(`dt`,null,y((`tl`in e?e.tl:a(Y))(`Pull request`,`Pull request`)),1),S(`dd`,null,[S(`a`,{href:a(ke),target:`_blank`,rel:`noopener noreferrer`},[t(y(a(oe)(a(ke))||`PR`)+` `,1),h(p,{name:`i-lucide-external-link`})],8,Ui)])],64)):c(``,!0),a(Ae)?(l(),u(_,{key:1},[S(`dt`,null,y((`tl`in e?e.tl:a(Y))(`Review`,`Revue`))+y(n.task.reviewRound>1?` · R${n.task.reviewRound}`:``),1),S(`dd`,{class:v(a(Ae).pass===!1?`fail`:a(Ae).pass?`pass`:``)},y(a(Ae).pass===!1?(`tl`in e?e.tl:a(Y))(`Fail`,`Échec`):a(Ae).pass?(`tl`in e?e.tl:a(Y))(`Pass`,`Validée`):``)+y(a(Ae).tally?` · ${a(Ae).tally}`:``)+y(a(Ae).by?` · ${a(Ae).by}`:``),3)],64)):c(``,!0),a(b)?.branch?(l(),u(_,{key:2},[S(`dt`,null,y((`tl`in e?e.tl:a(Y))(`Branch`,`Branche`)),1),S(`dd`,Wi,y(a(b).branch),1)],64)):c(``,!0),a(b)?.agent?(l(),u(_,{key:3},[S(`dt`,null,y((`tl`in e?e.tl:a(Y))(`Agent`,`Agent`)),1),S(`dd`,null,y(a(b).agent),1)],64)):c(``,!0)])):c(``,!0),a(b)?.handovers?.length?(l(),u(`section`,Gi,[S(`h4`,null,y((`t`in e?e.t:a(J))(`Handovers`)),1),S(`ol`,Ki,[(l(!0),u(_,null,d(a(b).handovers,(n,r)=>(l(),u(`li`,{key:r,class:`task-sheet-text`},[n.role?(l(),u(`p`,qi,y(n.role===`worker`?(`t`in e?e.t:a(J))(`Agent`):n.role===`reviewer`?(`t`in e?e.t:a(J))(`Reviewer`):n.role),1)):c(``,!0),n.from?(l(),u(`p`,Ji,[S(`span`,null,y((`t`in e?e.t:a(J))(`Previous agent`))+`: `,1),t(y(n.from),1)])):c(``,!0),n.to?(l(),u(`p`,Yi,[S(`span`,null,y((`t`in e?e.t:a(J))(`Taken over by`))+`: `,1),t(y(n.to),1)])):c(``,!0),n.why?(l(),u(`p`,Xi,y(n.why),1)):c(``,!0),n.at===null?c(``,!0):(l(),u(`time`,{key:4,datetime:new Date(n.at).toISOString(),class:`task-handover-meta`},y(new Date(n.at).toLocaleString()),9,Zi))]))),128))])])):c(``,!0),a(b)?.failure&&!a(b).failureStale&&!n.embedded?(l(),u(`div`,Qi,[h(p,{name:`i-lucide-triangle-alert`}),S(`p`,null,y(a(b).failure),1)])):c(``,!0),a(b)?.failure&&a(b).failureStale?(l(),u(`section`,$i,[S(`h4`,null,[t(y((`tl`in e?e.tl:a(Y))(`Earlier failure`,`Échec précédent`)),1),a(b).failureAt?(l(),u(_,{key:0},[t(` · `+y(new Date(a(b).failureAt).toLocaleString()),1)],64)):c(``,!0)]),S(`p`,ea,y(a(b).failureTitle||a(b).failure),1)])):c(``,!0),a(b)?(l(),u(`section`,ta,[a(x)?c(``,!0):(l(),u(`h4`,na,y((`tl`in e?e.tl:a(Y))(`Description`,`Description`)),1)),a(x)?(l(),u(`form`,{key:1,class:`sheet-form task-question`,onSubmit:te(ee,[`prevent`])},[S(`label`,ra,y((`tl`in e?e.tl:a(Y))(`Description`,`Description`)),1),h(w,{id:`task-description`,modelValue:a(C),"onUpdate:modelValue":r[0]||=e=>O(C)?C.value=e:null,disabled:a(I)||a(V),rows:6,class:`w-full`},null,8,[`modelValue`,`disabled`]),a(T)?(l(),u(`p`,ia,y(a(T)),1)):c(``,!0),S(`div`,aa,[h(g,{type:`submit`,loading:a(I),disabled:a(D)},{default:E(()=>[t(y((`t`in e?e.t:a(J))(`Save`)),1)]),_:1},8,[`loading`,`disabled`]),h(g,{color:`neutral`,variant:`outline`,disabled:a(I),onClick:r[1]||=e=>x.value=!1},{default:E(()=>[t(y((`t`in e?e.t:a(J))(`Cancel`)),1)]),_:1},8,[`disabled`])])],32)):(l(),u(_,{key:2},[S(`p`,oa,y(a(b).description),1),a(V)?c(``,!0):(l(),o(g,{key:0,color:`neutral`,variant:`outline`,icon:`i-lucide-pencil`,disabled:a(D),onClick:A},{default:E(()=>[t(y((`t`in e?e.t:a(J))(`Edit description`)),1)]),_:1},8,[`disabled`]))],64))])):c(``,!0),n.embedded?c(``,!0):(l(),o(re,{key:15,machine:n.machine,id:n.task.id,active:m.value,reachable:n.reachable},null,8,[`machine`,`id`,`active`,`reachable`])),a(b)?.plan?(l(),u(`section`,sa,[S(`h4`,null,y((`tl`in e?e.tl:a(Y))(`Plan`,`Plan`)),1),S(`p`,ca,y(a(b).plan),1)])):c(``,!0),a(b)?.summary?(l(),u(`section`,la,[S(`h4`,null,y((`tl`in e?e.tl:a(Y))(`Closing note`,`Note de fin`)),1),S(`p`,ua,y(a(b).summary),1)])):c(``,!0),a(b)?.report?(l(),u(`p`,da,[S(`span`,null,y(a(b).research?(`tl`in e?e.tl:a(Y))(`Research report`,`Rapport de recherche`):(`tl`in e?e.tl:a(Y))(`Report`,`Rapport`)),1),a(b).report.link?(l(),u(`a`,{key:0,href:a(b).report.link,target:`_blank`,rel:`noopener noreferrer`},y(a(b).report.file),9,fa)):(l(),u(`span`,pa,y(a(b).report.file),1))])):c(``,!0),a(b)?.findings?.length?(l(),u(`section`,ma,[S(`h4`,null,y((`tl`in e?e.tl:a(Y))(`Review findings`,`Remarques de relecture`)),1),(l(!0),u(_,null,d(a(b).findings,(e,n)=>(l(),u(`p`,{key:n,class:`task-sheet-text`},[t(y(e.severity)+` · `+y(e.title),1),e.detail?(l(),u(_,{key:0},[t(` — `+y(e.detail),1)],64)):c(``,!0)]))),128))])):c(``,!0),a(b)?.limits?(l(),o(P,{key:20,limits:a(b).limits},null,8,[`limits`])):c(``,!0),a(V)?c(``,!0):(l(),u(`section`,ha,[S(`div`,ga,[h(g,{color:`neutral`,variant:`outline`,icon:`i-lucide-message-circle-question-mark`,"aria-expanded":a(M),disabled:a(I)||(`offlineView`in e?e.offlineView:a(K)),onClick:r[2]||=e=>M.value=!a(M)},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Ask the coordinator`,`Demander au coordinateur`)),1)]),_:1},8,[`aria-expanded`,`disabled`]),h(g,{color:`neutral`,variant:`ghost`,disabled:a(I)||(`offlineView`in e?e.offlineView:a(K)),onClick:Zt},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Coordinator replies`,`Réponses du coordinateur`)),1)]),_:1},8,[`disabled`])]),a(M)?(l(),u(`form`,{key:0,class:`task-question sheet-form`,onSubmit:te(Xt,[`prevent`])},[S(`label`,_a,y((`tl`in e?e.tl:a(Y))(`Your question about this task`,`Ta question sur cette tâche`)),1),h(w,{id:`task-question`,modelValue:a(j),"onUpdate:modelValue":r[3]||=e=>O(j)?j.value=e:null,maxlength:a(ne),disabled:a(I),rows:3},null,8,[`modelValue`,`maxlength`,`disabled`]),S(`p`,null,y((`tl`in e?e.tl:a(Y))(`The project coordinator answers in its chat. Asking leaves the task as it is.`,`Le coordinateur du projet répond dans son chat. Poser une question laisse la tâche en l’état.`)),1),S(`div`,va,[h(g,{type:`submit`,loading:a(I),disabled:a(I)||(`offlineView`in e?e.offlineView:a(K))||!a(j).trim()},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Send question`,`Envoyer la question`)),1)]),_:1},8,[`loading`,`disabled`])])],32)):c(``,!0)])),a(U).delegate?(l(),u(`div`,{key:22,class:`task-start-agent`,role:`radiogroup`,"aria-label":(`tl`in e?e.tl:a(Y))(`Agent for this start`,`Agent pour ce lancement`)},[S(`span`,ba,y((`tl`in e?e.tl:a(Y))(`Agent`,`Agent`)),1),a(Ve)?c(``,!0):(l(),u(`span`,xa,y(a(He)?(`t`in e?e.t:a(J))(`Loading…`):(`tl`in e?e.tl:a(Y))(`the task’s default`,`celui de la tâche par défaut`)),1)),(l(!0),u(_,null,d(a(qe),t=>(l(),u(`button`,{key:t.id??``,type:`button`,role:`radio`,class:v([`task-start-chip`,{on:nt(t),off:!t.usable}]),"aria-checked":nt(t),disabled:a(I)||(`offlineView`in e?e.offlineView:a(K))||!t.usable,onClick:e=>We.value=t.id},[t.id||a(Ve)?.agent?(l(),o(L,{key:0,agent:t.id||a(Ke)},null,8,[`agent`])):c(``,!0),S(`span`,Ca,y(t.label),1),t.isDefault?(l(),u(`small`,wa,y(rt(t)),1)):c(``,!0)],10,Sa))),128)),a(Ve)&&a(et)&&!(`offlineView`in e?e.offlineView:a(K))?(l(),u(`span`,Ta,[S(`span`,Ea,y((`tl`in e?e.tl:a(Y))(`Model`,`Modèle`)),1),(l(),o(ft,{key:`${zt()}|${a(et)}`,model:a(Qe),"onUpdate:model":r[4]||=e=>O(Qe)?Qe.value=e:null,effort:a($e),"onUpdate:effort":r[5]||=e=>O($e)?$e.value=e:null,launch:{machine:n.machine,program:a(et)}},null,8,[`model`,`effort`,`launch`]))])):c(``,!0),a(Ve)?.agent?(l(),u(`span`,Da,y(it()),1)):c(``,!0),a(Ze)?(l(),u(`span`,Oa,y((`tl`in e?e.tl:a(Y))(`${a(Ke)} is not installed on this machine: pick another agent to start it.`,`${a(Ke)} n’est pas installé sur cette machine : choisis un autre agent pour la lancer.`)),1)):c(``,!0),a(tt)?(l(),u(`span`,ka,y((`tl`in e?e.tl:a(Y))(`For this start only: the default stays.`,`Pour ce lancement seulement : le défaut ne change pas.`)),1)):c(``,!0)],8,ya)):c(``,!0),a(Be)||a(U).approve||a(U).delegate||a(U).retry||a(U).finish||a(U).stop||a(U).archive||a(U).restore?(l(),u(`div`,Aa,[a(U).restore?(l(),o(g,{key:0,color:`primary`,icon:`i-lucide-archive-restore`,loading:a(z)===`restore`,disabled:a(I)||(`offlineView`in e?e.offlineView:a(K)),onClick:r[6]||=e=>qt(`restore`)},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Restore`,`Restaurer`)),1)]),_:1},8,[`loading`,`disabled`])):c(``,!0),a(U).delegate?(l(),o(g,{key:1,color:`primary`,icon:a(st)?`i-lucide-list-ordered`:`i-lucide-play`,class:`task-start`,loading:a(z)===`delegate`&&!a(gt),disabled:a(I)||(`offlineView`in e?e.offlineView:a(K))||a(Ze),onClick:r[7]||=e=>qt(`delegate`)},{default:E(()=>[t(y(ct()),1)]),_:1},8,[`icon`,`loading`,`disabled`])):c(``,!0),a(U).delegate?(l(),o(g,{key:2,color:`primary`,variant:`outline`,icon:`i-lucide-hourglass`,class:`task-start-after`,"aria-expanded":a(gt),disabled:a(I)||(`offlineView`in e?e.offlineView:a(K))||a(Ze),onClick:r[8]||=e=>a(gt)?jt():At()},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Start after…`,`Démarrer après…`)),1)]),_:1},8,[`aria-expanded`,`disabled`])):c(``,!0),a(U).approve?(l(),o(g,{key:3,color:`primary`,icon:`i-lucide-check`,loading:a(I)&&!a(z),disabled:a(I)||(`offlineView`in e?e.offlineView:a(K)),onClick:Ut},{default:E(()=>[t(y(n.task.stage===`plan`?(`tl`in e?e.tl:a(Y))(`Approve plan`,`Accepter le plan`):(`tl`in e?e.tl:a(Y))(`Approve`,`Approuver`)),1)]),_:1},8,[`loading`,`disabled`])):c(``,!0),a(U).retry?(l(),o(g,{key:4,color:`primary`,variant:`outline`,icon:`i-lucide-rotate-ccw`,loading:a(z)===`retry`,disabled:a(I)||(`offlineView`in e?e.offlineView:a(K)),onClick:r[9]||=e=>qt(`retry`)},{default:E(()=>[t(y(a(fe)?(`tl`in e?e.tl:a(Y))(`Continue`,`Continuer`):(`tl`in e?e.tl:a(Y))(`Retry`,`Réessayer`)),1)]),_:1},8,[`loading`,`disabled`])):c(``,!0),a(fe)?(l(),o(g,{key:5,variant:`outline`,disabled:a(I)||(`offlineView`in e?e.offlineView:a(K))||n.reachable===!1,onClick:be},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Raise limit`,`Relever la limite`)),1)]),_:1},8,[`disabled`])):c(``,!0),a(U).finish?(l(),o(g,{key:6,color:`primary`,variant:`outline`,icon:`i-lucide-flag`,class:`task-finish`,title:a(li)(a(H)?.chat),"aria-description":a(li)(a(H)?.chat),loading:a(z)===`finish`,disabled:a(I)||(`offlineView`in e?e.offlineView:a(K)),onClick:r[10]||=e=>qt(`finish`)},{default:E(()=>[t(y(a(fe)&&!a(H)?.chat?(`tl`in e?e.tl:a(Y))(`Take as is`,`Prendre tel quel`):a(ci)(a(H)?.chat)),1)]),_:1},8,[`title`,`aria-description`,`loading`,`disabled`])):c(``,!0),a(Be)&&!n.embedded?(l(),o(g,{key:7,class:`task-chat`,color:`neutral`,variant:`outline`,icon:`i-lucide-message-square`,onClick:Qt},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Open the chat`,`Ouvrir la discussion`)),1)]),_:1})):c(``,!0),a(U).stop?(l(),o(g,{key:8,color:`error`,variant:`outline`,icon:`i-lucide-square`,loading:a(z)===`stop`,disabled:a(I)||(`offlineView`in e?e.offlineView:a(K)),onClick:r[11]||=e=>qt(`stop`)},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Stop`,`Arrêter`)),1)]),_:1},8,[`loading`,`disabled`])):c(``,!0),a(U).archive?(l(),o(g,{key:9,color:`neutral`,variant:`ghost`,icon:`i-lucide-archive`,class:`task-archive`,loading:a(z)===`archive`,disabled:a(I)||(`offlineView`in e?e.offlineView:a(K)),onClick:r[12]||=e=>qt(`archive`)},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Archive`,`Archiver`)),1)]),_:1},8,[`loading`,`disabled`])):c(``,!0)])):c(``,!0),a(W)?(l(),u(`p`,ja,y((`tl`in e?e.tl:a(Y))(`Resuming…`,`Reprise…`)),1)):c(``,!0),a(fe)&&n.embedded?(l(),u(`p`,Ma,y(a(de)),1)):c(``,!0),h(G,{open:a(me),"onUpdate:open":r[15]||=e=>O(me)?me.value=e:null,title:(`tl`in e?e.tl:a(Y))(`Raise limit`,`Relever la limite`),top:``},{default:E(()=>[S(`form`,{class:`sheet-form task-question`,onSubmit:te(Oe,[`prevent`])},[S(`p`,null,y((`tl`in e?e.tl:a(Y))(`Choose a total ceiling above usage for the limit that stopped this task. Usage is kept; the CLI resumes automatically when this limit is lifted. Enter none to explicitly remove it.`,`Choisis un plafond total supérieur à la consommation pour la limite qui a arrêté cette tâche. La consommation est conservée ; le CLI reprend automatiquement quand cette limite est levée. Saisis none pour la supprimer explicitement.`)),1),S(`p`,Na,y(a(ge)===`limit.time`?(`tl`in e?e.tl:a(Y))(`Reached limit: time per run`,`Limite atteinte : temps par tranche`):a(ge)===`limit.tokens`?(`tl`in e?e.tl:a(Y))(`Reached limit: tokens for the whole task`,`Limite atteinte : jetons pour toute la tâche`):(`tl`in e?e.tl:a(Y))(`The reached limit is not available. Refresh the task before changing a ceiling.`,`La limite atteinte n’est pas disponible. Actualise la tâche avant de modifier un plafond.`)),1),a(Se).length?(l(),u(`div`,{key:0,class:`raise-limit-presets`,role:`group`,"aria-label":(`tl`in e?e.tl:a(Y))(`Quick choices`,`Choix rapides`)},[(l(!0),u(_,null,d(a(Se),t=>(l(),o(g,{key:t.id,color:`neutral`,variant:`outline`,"data-preset":t.id,disabled:a(I)||(`offlineView`in e?e.offlineView:a(K))||n.reachable===!1||!t.resumes,title:t.resumes?void 0:(`tl`in e?e.tl:a(Y))(`Not above what it already used: it would not resume`,`Pas au-dessus de ce qu’elle a déjà utilisé : elle ne reprendrait pas`),onClick:e=>De(t)},{default:E(()=>[S(`span`,Fa,y(Ce(t)),1),Te(t)?(l(),u(`span`,Ia,y(Te(t)),1)):c(``,!0)]),_:2},1032,[`data-preset`,`disabled`,`title`,`onClick`]))),128))],8,Pa)):c(``,!0),S(`label`,La,y(a(ge)===`limit.time`?(`tl`in e?e.tl:a(Y))(`New duration (e.g. 4h, 90m, none)`,`Nouvelle durée (ex. 4h, 90m, none)`):(`tl`in e?e.tl:a(Y))(`New token count (e.g. 3m, 500k, none)`,`Nouvelle quantité de jetons (ex. 3m, 500k, none)`)),1),h(ie,{id:`task-limit-value`,modelValue:a(ye),"onUpdate:modelValue":r[13]||=e=>O(ye)?ye.value=e:null,disabled:a(I)||!a(ge),maxlength:40},null,8,[`modelValue`,`disabled`]),a(ve)?(l(),u(`p`,Ra,y(a(ve)),1)):c(``,!0),a(B)?(l(),u(`p`,za,y(a(B)),1)):c(``,!0),S(`div`,Ba,[h(g,{color:`neutral`,variant:`outline`,disabled:a(I),onClick:r[14]||=e=>me.value=!1},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Cancel`,`Annuler`)),1)]),_:1},8,[`disabled`]),h(g,{type:`submit`,disabled:a(I)||(`offlineView`in e?e.offlineView:a(K))||!a(ge)||!a(ye).trim(),loading:a(W)},{default:E(()=>[t(y(a(W)?(`tl`in e?e.tl:a(Y))(`Resuming…`,`Reprise…`):(`tl`in e?e.tl:a(Y))(`Apply limit`,`Appliquer le plafond`)),1)]),_:1},8,[`disabled`,`loading`])])],32)]),_:1},8,[`open`,`title`]),a(U).delegate&&a(lt)?(l(),u(`p`,Va,y(a(lt)),1)):c(``,!0),a(U).delegate&&a(gt)?(l(),u(`section`,Ha,[S(`h4`,null,y((`tl`in e?e.tl:a(Y))(`Start after…`,`Démarrer après…`)),1),S(`p`,Ua,y((`tl`in e?e.tl:a(Y))(`It starts by itself once these tasks are done. Another machine’s task: machine:KEY-12.`,`Elle démarre d’elle-même quand ces tâches sont faites. Tâche d’une autre machine : machine:CLÉ-12.`)),1),a(St).length?(l(),u(`p`,Wa,[(l(!0),u(_,null,d(a(St),n=>(l(),u(`span`,{key:n.ref,class:`task-wait-chip`},[t(y(n.ref),1),S(`button`,{type:`button`,class:`task-wait-unchoose`,"aria-label":(`tl`in e?e.tl:a(Y))(`Remove ${n.ref}`,`Retirer ${n.ref}`),onClick:e=>It(n.ref)},[h(p,{name:`i-lucide-x`})],8,Ga)]))),128))])):c(``,!0),h(ie,{modelValue:a(xt),"onUpdate:modelValue":r[16]||=e=>O(xt)?xt.value=e:null,size:`xl`,class:`w-full task-after-search`,icon:`i-lucide-search`,autocapitalize:`none`,autocorrect:`off`,spellcheck:!1,enterkeyhint:`done`,maxlength:`120`,placeholder:(`tl`in e?e.tl:a(Y))(`Key, id or title`,`Clé, id ou titre`),"aria-label":(`tl`in e?e.tl:a(Y))(`Task to wait for`,`Tâche à attendre`),onKeydown:r[17]||=k(te(e=>a(Ot)?Ft():a(Dt)[0]&&Pt(a(Dt)[0]),[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`aria-label`]),S(`ul`,Ka,[a(Ot)?(l(),u(`li`,qa,[S(`button`,{type:`button`,class:`task-after-choice`,onClick:Ft},[S(`span`,Ja,y(a(Ot)),1),S(`span`,null,y((`tl`in e?e.tl:a(Y))(`Wait for this task`,`Attendre cette tâche`)),1)])])):c(``,!0),(l(!0),u(_,null,d(a(Dt),t=>(l(),u(`li`,{key:t.ref},[S(`button`,{type:`button`,class:`task-after-choice`,onClick:e=>Pt(t)},[S(`span`,Xa,y(t.ref),1),S(`span`,Za,y(t.title),1),S(`small`,null,y((`taskGroupLabel`in e?e.taskGroupLabel:a(wt))(t.group)),1)],8,Ya)]))),128))]),!a(Dt).length&&!a(Ot)?(l(),u(`p`,Qa,y(a(Et)?(`t`in e?e.t:a(J))(`Loading…`):(`tl`in e?e.tl:a(Y))(`No task to wait for matches.`,`Aucune tâche à attendre ne correspond.`)),1)):c(``,!0),S(`div`,$a,[h(g,{color:`primary`,icon:a(st)?`i-lucide-list-ordered`:`i-lucide-hourglass`,loading:a(z)===`delegate`,disabled:a(I)||(`offlineView`in e?e.offlineView:a(K))||a(Ze)||!a(St).length,onClick:Jt},{default:E(()=>[t(y(a(St).length?(`tl`in e?e.tl:a(Y))(`Start after ${a(St).length===1?a(St)[0].ref:`${a(St).length} tasks`}`,`Démarrer après ${a(St).length===1?a(St)[0].ref:`${a(St).length} tâches`}`):(`tl`in e?e.tl:a(Y))(`Pick a task`,`Choisis une tâche`)),1)]),_:1},8,[`icon`,`loading`,`disabled`]),h(g,{color:`neutral`,variant:`ghost`,disabled:a(z)===`delegate`,onClick:jt},{default:E(()=>[t(y((`t`in e?e.t:a(J))(`Cancel`)),1)]),_:1},8,[`disabled`])])])):c(``,!0),a(U).finish&&!n.embedded?(l(),u(`p`,eo,y(a(de)),1)):c(``,!0),a(B)?(l(),u(`p`,to,y(a(B)),1)):c(``,!0)])):c(``,!0)]),_:1},40,[`open`,`title`])}}}),[[`__scopeId`,`data-v-7dc0784e`]]),{__name:`TaskSheet`});function ro(e){return[...e.chat?[`chat`]:[],...e.term?[`term`]:[],...e.reviewer?[`reviewer`]:[],`task`,...e.settings?[`settings`]:[]]}function io(e,t){let n=ro(e);return t&&n.includes(t)?t:e.chat?`chat`:`task`}var ao=new Map,oo=e=>ao.get(e)??null;function so(e,t){t?ao.set(e,t):ao.delete(e)}function co(e,t){let n=t===`term`?`chat`:`term`;return e.includes(n)?n:null}function lo(e){if(e.stage!==`reviewneeds`)return null;let t=e.reviewer?.pane;if(!t||!e.live)return`away`;let n=e.panes.find(e=>e.id===t);return n?n.status===`blocked`?`open`:`quiet`:e.everywhere?.some(e=>e.id===t)?`hidden`:`gone`}var uo=[`data-kind`,`aria-label`],fo=[`aria-label`,`aria-valuenow`,`aria-valuemin`,`aria-valuemax`,`title`],po={class:`board-panel-who`},mo={class:`board-panel-path`},ho={class:`board-panel-machine`},go={key:0,class:`board-panel-repo`},_o=[`title`],vo={class:`board-panel-name`},yo=[`title`],bo={key:1,class:`board-panel-title skel-title`,"aria-hidden":`true`},xo={class:`board-panel-title`},So={key:0,class:`task-chip`},Co={key:3,class:`board-panel-purpose`},wo={key:1,class:`board-panel-autopilot`},To=[`aria-label`],Eo=[`aria-pressed`,`aria-label`,`aria-description`,`title`,`onClick`],Do={key:0,class:`task-new`,"aria-hidden":`true`},Oo={key:3,class:`board-panel-tabs skel-tabs`,"aria-hidden":`true`},ko={key:4,class:`task-review-context`},Ao=[`data-kind`],jo={class:`task-needs-type`},Mo=[`title`],No=[`aria-expanded`,`aria-label`],Po={key:0},Fo={key:1},Io={key:2},Lo={key:3},Ro=[`data-wait`],zo={key:2,class:`task-needs-findings`},Bo={class:`task-needs-findings-head`},Vo=[`data-severity`],Ho={class:`task-needs-severity`},Uo={class:`task-needs-subject`},Wo={key:3,class:`task-finish-why`},Go={class:`task-needs-actions`},Ko={key:4},qo={key:5,class:`error`},Jo={class:`board-panel-body`},Yo={key:0,class:`board-note error`},Xo={class:`board-panel-reviewer-bar`},Zo={class:`board-panel-reviewer-who`},Qo={class:`board-panel-reviewer-bar board-panel-agent-bar`},$o={class:`board-panel-reviewer-who`},es=[`aria-label`],ts={key:8,class:`board-note error board-panel-wait`},ns={key:9,class:`board-panel-start task-setup`},rs={key:0},is={for:`board-panel-tell`},as={key:0,class:`board-panel-away`,role:`status`},os={key:10,class:`board-empty board-panel-wait`},ss={key:11,class:`board-panel-start`},cs=[`aria-label`],ls={class:`board-panel-failed-what`},us={class:`board-panel-failed-why`},ds={class:`board-panel-failed-next`},fs={key:0,class:`board-panel-away`,role:`status`},ps={key:1,class:`board-empty`},ms={key:2,class:`board-empty board-panel-starting`,role:`status`},hs={for:`board-panel-first`},gs={key:0,class:`board-panel-away`,role:`status`},_s={for:`coordinator-agent`},vs={for:`coordinator-model`},ys={for:`coordinator-effort`},bs=`your message sits unsent in its box. Go into it and press enter.`,xs=Object.assign(m({__name:`BoardPanel`,props:{overlay:{type:Boolean},target:{},task:{},machineLabel:{},reachable:{type:Boolean},refresh:{type:Function},refreshKey:{}},emits:[`retarget`,`coordinator`,`close`,`sheet`,`noAgent`,`changed`,`archived`,`restored`],setup(r,{emit:i}){let f=r,m=e(()=>Ze.value&&!f.overlay),{actions:g}=Bt(),T=s(`__default`),D=s(``),k=s(`__default`),A=e(()=>{let e=f.target.machine,t=Qe.value?.find(t=>t.key===e);return[{label:Y(`Default`,`Par défaut`),value:`__default`},...Ye(t?.kinds||Ve.value.kinds||[],Le.value).filter(e=>e!==`shell`).map(e=>({label:Be(e),value:e}))]}),ne=e(()=>[{label:Y(`Default`,`Par défaut`),value:`__default`},...[`low`,`medium`,`high`,`xhigh`,`max`].map(e=>({label:e,value:e}))]),N=i,F=s(null),L=s(null),R=s(!1),B=s(``),ae=s(!1),oe=e=>!!f.task&&P(f.task,e).tell,U=0;async function fe(e=!1){let t=f.target;if(t.kind!==`task`)return;let n=++U;e||(F.value=null,L.value=null,B.value=``,R.value=!0);try{let e=await q(`/api/tasks/details?machine=${encodeURIComponent(t.machine)}&id=${encodeURIComponent(t.id)}`);if(n!==U)return;if(L.value=e,!e.pane){ae.value=oe(e),F.value=null;return}ae.value=!1,F.value=e.pane}catch(t){n===U&&!e&&(B.value=t.message)}finally{n===U&&(R.value=!1)}}w(()=>f.target.kind===`task`?`${f.target.machine}|${f.target.id}`:``,e=>{e&&fe()},{immediate:!0});let pe=pt(e(()=>f.target.kind===`task`&&R.value&&!L.value));w(()=>f.task?`${f.task.stage}|${f.task.group}|${f.task.state}|${f.task.msg}`:``,(e,t)=>{e&&t&&e!==t&&fe(!0)});let me=s(``),ge=s(!1);async function ye(e){let t=f.target,n=(e??me.value).trim();if(t.kind===`task`&&n&&!ge.value&&f.reachable){ge.value=!0;try{await q(`/api/tasks/tell`,{machine:t.machine,id:t.id,text:n}),Fe(),Xe(Je.value?Y(`Sent to the reviewer`,`Envoyé au relecteur`):Y(`Sent to the task’s agent`,`Envoyé à l’agent de la tâche`)),e===void 0&&(me.value=``),fe(!0)}catch(e){Xe(e.message,!0)}finally{ge.value=!1}}}let W=s(!1),be=s(!0),xe=s(!1),Se=s(``),G=e(()=>Ne.value.panes.find(e=>e.id===F.value)),Ce=e(()=>{let e=L.value?.identity||f.task?.identity;return{agent:G.value?.agent||e?.agent||L.value?.agent||f.task?.app||``,reviewer:je.value&&(e?.reviewer||Wt.value?.agent)||``,from:e?.from||``}}),De=e(()=>f.target.kind===`task`&&f.task?vt(f.task):null),Ae=e(()=>De.value&&De.value.kind!==`running`?`activity-${De.value.kind}`:``),je=e(()=>[`reviewing`,`reviewneeds`].includes(L.value?.stage||f.task?.stage||``)),Me=e(()=>!!(G.value&&ze(G.value))&&!(f.task?.stage===`failed`&&[`start`,`setup`,`attempts`].includes(L.value?.failureStage||``))),Pe=e(()=>G.value?Y(`Agent: ${j(G.value)}`,`Agent : ${j(G.value)}`):Y(`Agent not running`,`Agent arrêté`)),Ie=e(()=>f.task?P(f.task,L.value):null),Re=e(()=>f.task&&se(f.task,L.value)),Ue=e(()=>f.task&&V(f.task,L.value)),Ge=e(()=>!!(f.task&&H(f.task,L.value))),Ke=e(()=>Ge.value?M(L.value?.findings):null),Je=e(()=>(L.value?.stage||f.task?.stage)===`reviewneeds`),$e=e(()=>!!(xe.value||K.value||!f.reachable||f.task?.stale)),et=e(()=>f.task?re(f.task):null),tt=s(0);async function nt(){fn(`task`),await x(),tt.value++}let rt=e(()=>!!(f.task&&Ie.value?.finish&&di(f.task,G.value?.status??null))),it=e(()=>rt.value&&et.value===`stuck`),at=e(()=>et.value===`limit`?Gr(L.value?.limits,f.task?.msg):null),ot=e(()=>f.task?.group===`needs`),st=e(()=>L.value&&!L.value.failureStale?L.value:null),ct=e(()=>f.task?.stage===`pick`),lt=e(()=>ct.value?Y(`Choose an attempt`,`Choisis un essai`):st.value?.failureTitle||L.value?.msg||f.task?.msg||G.value?.prompt?.question||Y(`Your answer is needed`,`Ta réponse est attendue`)),ut=e(()=>st.value?.failureDetail||st.value?.failure||``),X=e(()=>ot.value&&!ct.value&&!st.value?.failureTitle&&!ut.value?bn(f.task?.kind):null),ft=e(()=>lt.value),ht=e(()=>f.task?.stage===`asks`),_t=e(()=>!!(X.value&&X.value!==`auth`&&ht.value)),Z=e(()=>_t.value&&!!Ie.value?.tell),bt=e(()=>Z.value&&X.value===`question`?Mn(ft.value):[]),xt=e(()=>Z.value&&X.value===`permission`),St=e(()=>In(ft.value)),Ct=e(()=>ge.value||$e.value),Tt=s(!1),jt=s(null),Nt=s(!1);function Pt(){let e=jt.value;e&&!Tt.value&&(Nt.value=e.scrollWidth>e.clientWidth+1)}w(jt,(e,t,n)=>{if(!e||typeof ResizeObserver>`u`)return;let r=new ResizeObserver(Pt);r.observe(e),n(()=>r.disconnect())}),w(ft,()=>{Tt.value=!1,x(Pt)});let Ft=s(null);async function It(e){for(let t=0;t<60;t++){await x();let t=Ft.value?.querySelector(`.board-panel-body`),n=t?e(t):null;if(n)return n;await new Promise(e=>setTimeout(e,50))}return null}async function Lt(){fn(`chat`),(await It(e=>e.querySelector(`.composer textarea, #board-panel-tell`)))?.focus()}let Rt=e(()=>!!(X.value&&F.value&&Me.value));async function zt(){fn(`chat`);let e=await It(e=>Rn(e,ft.value));e&&(e.scrollIntoView({block:`center`,behavior:`smooth`}),e.classList.remove(`msg-lit`),e.offsetWidth,e.classList.add(`msg-lit`),setTimeout(()=>e.classList.remove(`msg-lit`),2600))}function Q(e){switch(e){case`critical`:return Y(`Critical`,`Critique`);case`major`:return Y(`Major`,`Majeur`);case`minor`:return Y(`Minor`,`Mineur`);case`trivial`:return Y(`Trivial`,`Trivial`);default:return e||Y(`Finding`,`Remarque`)}}function Vt(e){return e===`settings`?Y(`Settings`,`Réglages`):e===`chat`||e===`term`?J(`Agent`):e===`reviewer`?Y(`Reviewer`,`Relecteur`):Y(`Task`,`Tâche`)}let Ht=e(()=>ot.value&&(f.task?.stage===`reviewneeds`||L.value?.stage===`reviewneeds`)),Ut=e(()=>{let e=L.value?.reviewer?.pane;return e&&Ne.value.panes.some(t=>t.id===e)?e:null}),Wt=e(()=>Ne.value.panes.find(e=>e.id===Ut.value)),Gt=e(()=>Wt.value?Y(`Reviewer: ${j(Wt.value)}`,`Relecteur : ${j(Wt.value)}`):Y(`Reviewer`,`Relecteur`)),Kt=e(()=>Ht.value&&L.value?.stage===`reviewneeds`?lo({stage:`reviewneeds`,reviewer:L.value.reviewer,panes:Ne.value.panes,everywhere:We.value.panes,live:Ne.value.ok&&f.reachable!==!1}):null),qt=e(()=>{if(!je.value||Ut.value||!We.value.ok)return null;let e=We.value.panes.find(e=>e.id===L.value?.reviewer?.pane),t=e&&We.value.machines?.find(t=>t.key===(e.machine||``));return t?{baseKey:t.baseKey??t.key,name:t.session||`default`}:null}),Jt=s(!1);async function Yt(){let e=qt.value;if(e&&!Jt.value){Jt.value=!0;try{await qe(e.baseKey,e.name),fn(`reviewer`,!0)}catch(e){Xe(e.message,!0)}finally{Jt.value=!1}}}let Xt=e(()=>{switch(Kt.value){case`quiet`:return Y(`The reviewer shows no dialog now: the board moves on by itself in a few seconds.`,`Le relecteur n’affiche plus de dialogue : le tableau reprend tout seul dans quelques secondes.`);case`gone`:return Y(`The reviewer’s pane is closed: no dialog is left to answer. If the task stays here, stop it from the Task tab.`,`Le pane du relecteur est fermé : plus aucun dialogue à répondre. Si la tâche reste bloquée ici, arrête-la depuis l’onglet Tâche.`);case`hidden`:return qt.value?Y(`The reviewer runs in the session “${qt.value.name}”, which this device does not show. Switch to it to answer.`,`Le relecteur tourne dans la session « ${qt.value.name} », que cet appareil n’affiche pas. Passe sur cette session pour répondre.`):Y(`The reviewer runs in a session this device does not show.`,`Le relecteur tourne dans une session que cet appareil n’affiche pas.`);case`away`:return Y(`wherdr cannot reach the reviewer’s pane. Answer it on ${f.machineLabel}, in the task’s space: its Reviewer tab.`,`wherdr ne peut pas joindre le pane du relecteur. Réponds-y sur ${f.machineLabel}, dans l’espace de la tâche : son onglet Reviewer.`);default:return``}}),Zt=s(null),Qt=e(()=>Wt.value&&ze(Wt.value)?Zt.value??He.value:`term`);w(Ut,()=>{Zt.value=null});let $t=e(()=>f.target.kind===`task`?`${f.target.machine}|${f.target.id}`:``),en=s(oo($t.value)),tn=e(()=>!R.value||L.value!==null),nn=e(()=>({chat:!!F.value||ae.value||!(!ut.value||ot.value),term:!!F.value,reviewer:!!Ut.value,settings:f.target.kind===`task`})),rn=e(()=>ro(nn.value)),an=s(en.value===`chat`||en.value===`term`?en.value:null),on=e(()=>G.value&&!ze(G.value)?`term`:an.value??He.value),$=e(()=>io(nn.value,en.value??(nn.value.term?on.value:null))),sn=e(()=>[`task`,...nn.value.chat||nn.value.term?[`chat`]:[],...nn.value.reviewer?[`reviewer`]:[],...nn.value.settings?[`settings`]:[]]);function ln(e){return e===`chat`?$.value===`chat`||$.value===`term`:$.value===e}function un(e){an.value=e,fn(e,!0)}let dn=e(()=>G.value&&!ze(G.value)?$.value===`term`||$.value===`chat`?null:`term`:co(rn.value,$.value));function fn(e,t=!1){(t||e!==$.value)&&((e===`chat`||e===`term`)&&(an.value=e),en.value=e,so($t.value,e))}w(()=>f.target,e=>{e.kind===`task`&&(e.mode||e.chat)&&fn(e.mode??`chat`,!0)},{immediate:!0}),w([rn,tn],()=>{tn.value&&!B.value&&en.value&&!rn.value.includes(en.value)&&(en.value=null,so($t.value,null))});let pn=e(()=>JSON.stringify([L.value?.summary,L.value?.review,L.value?.findings])),mn=s(``),hn=e(()=>!!(L.value?.summary||L.value?.review)&&pn.value!==mn.value);w([$,pn],()=>{$.value===`task`&&(mn.value=pn.value)});function gn(e,t){N(`archived`,e,t),N(`close`)}function _n(e,t){N(`restored`,e,t)}async function vn(){f.refresh?await f.refresh():N(`changed`),await fe(!0)}async function Sn(e){let t=f.target;if(!(t.kind!==`task`||$e.value)&&(e!==`anyway`||Ue.value)&&(e!==`fix`||Re.value)&&(e!==`review`||Ge.value)&&(e!==`finish`||rt.value&&await _e(ui(f.task?.title||L.value?.title||``,f.task?.chat),ci(f.task?.chat),`primary`))&&(e!==`approve`&&e!==`anyway`||await _e(e===`anyway`?Y(`Approve despite the failed review or checks? This merges the work.`,`Approuver malgré la relecture ou les contrôles en échec ? Cela fusionne le travail.`):Y(`Approve this task?`,`Approuver cette tâche ?`),e===`anyway`?Y(`Approve anyway`,`Approuver quand même`):Y(`Approve`,`Approuver`),`primary`))&&!(f.target!==t||$e.value)){xe.value=!0,Se.value=``;try{await q(e===`approve`||e===`anyway`?`/api/tasks/approve`:`/api/tasks/action`,{machine:t.machine,id:t.id,...e===`approve`||e===`anyway`?{anyway:e===`anyway`}:{action:e}}),Fe(),await vn()}catch(e){Se.value=e.message}finally{xe.value=!1}}}let Cn=0,wn=s(null),Tn=s(!1),En=s(``),Dn=s(``),On=s(null),kn,An=0,jn=0;async function Nn(e){let t=f.target;if(t.kind!==`coordinator`||e!==Cn)return;clearTimeout(kn);let n=++jn,r=()=>e===Cn&&n===jn;try{let n=new URLSearchParams({machine:t.machine,kind:t.to.kind,...t.to.kind===`project`?{repo:t.to.repo}:{}}),i=await q(`/api/tasks/coordinator?${n}`);if(!r())return;wn.value=i.pane??null,En.value=i.state??``,Dn.value=i.error??``,On.value=i.queued??null;let a=I({pane:wn.value,state:En.value,error:Dn.value});(i.pane&&Ne.value.ok&&!Ne.value.panes.some(e=>e.id===i.pane)||a===`starting`||er.value&&a===`idle`)&&++An<=40&&(kn=setTimeout(()=>Nn(e),3e3))}catch{r()&&er.value&&++An<=40&&(kn=setTimeout(()=>Nn(e),3e3))}finally{r()&&(Tn.value=!0)}}n(()=>{Cn++,clearTimeout(kn)});let Pn=e(()=>wn.value&&Ne.value.panes.some(e=>e.id===wn.value)?wn.value:null);function Fn(){f.target.kind===`coordinator`&&(An=0,Nn(Cn))}let zn;w(()=>f.target.kind===`coordinator`&&Tn.value&&!Pn.value?Ne.value.panes.filter(e=>e.agent).map(e=>e.id).join(` `):null,(e,t)=>{e!==null&&t!==null&&e!==t&&(clearTimeout(zn),zn=setTimeout(Fn,800))}),w(()=>f.target.kind===`coordinator`&&!!wn.value&&Ne.value.ok&&!Pn.value,e=>{e&&(clearTimeout(zn),zn=setTimeout(Fn,800))}),w(()=>f.reachable,(e,t)=>{e&&t===!1&&Fn()}),n(()=>clearTimeout(zn));let Vn=e(()=>f.target.kind===`task`?F.value:Pn.value),Hn=e(()=>f.target.kind===`task`&&!!F.value&&Ne.value.ok&&!Ne.value.panes.some(e=>e.id===F.value));w(Hn,e=>{e&&fe(!0)});let Un=e(()=>f.target.kind===`coordinator`?z(f.target.to,f.machineLabel):``),Wn=e(()=>f.target.kind===`coordinator`?ce(f.target.to,f.machineLabel):``),Gn=e(()=>{let e=Un.value;return e?Y(`The ${e} coordinator`,`Le coordinateur ${e}`):Y(`The Coordinator`,`Le Coordinateur`)}),Kn=e(()=>I({pane:wn.value,state:En.value,error:Dn.value})),qn=e(()=>Dn.value===bs),Jn=e(()=>qn.value?Y(`Message could not be sent`,`Envoi du message impossible`):Y(`Could not start`,`Démarrage impossible`)),Yn=e(()=>{let e=On.value;return e===null?Y(`The message queue status is unavailable.`,`L’état de la file de messages est indisponible.`):e===0?Y(`No message is waiting.`,`Aucun message en attente.`):e===1?Y(`1 message still waiting: it goes in once it runs.`,`1 message attend toujours : il part dès qu’il tourne.`):Y(`${e} messages still waiting: they go in once it runs.`,`${e} messages attendent toujours : ils partent dès qu’il tourne.`)}),Xn=e(()=>{let e=f.target;return e.kind===`task`?f.task?.repo||e.id.split(`/`)[0]||``:e.to.kind===`project`?e.to.repo:``}),Zn=e(()=>{let e=f.target;return e.kind===`task`?ie(e.id,f.task?.repoKey):``}),Qn=s(``),$n=s(!1),er=s(!1),tr=s(!1);w(()=>JSON.stringify(f.target),()=>{Cn++,clearTimeout(kn),clearTimeout(zn),An=0,Qn.value=``,er.value=!1,$n.value=!1,tr.value=!1,wn.value=null,Tn.value=!1,En.value=``,Dn.value=``,On.value=null,Nn(Cn)},{immediate:!0});async function nr(){let e=f.target,t=Qn.value.trim();if(e.kind!==`coordinator`||!t||$n.value||!f.reachable)return;let n=Cn;$n.value=!0;try{let r=await q(`/api/tasks/coordinator`,{machine:e.machine,text:t,to:e.to,...e.freshProject&&T.value!==`__default`?{start:{agent:T.value+(D.value.trim()?`/${D.value.trim()}`:``),...k.value===`__default`?{}:{effort:k.value}}}:{}});if(Fe(),n!==Cn)return;if(Qn.value=``,le(),e.to.kind===`project`&&r.repo&&r.repo!==e.to.repo){N(`changed`),N(`retarget`,{kind:`project`,repo:r.repo});return}N(`changed`),er.value=!0,En.value=`starting`,Dn.value=``,An=0,Nn(n)}catch(e){Xe(e.message,!0),n===Cn&&Nn(n)}finally{n===Cn&&($n.value=!1)}}async function rr(){let e=f.target;if(e.kind!==`coordinator`||tr.value||!f.reachable)return;let t=Cn;tr.value=!0;try{if(await q(`/api/tasks/coordinator`,{machine:e.machine,to:e.to,restart:!0}),Fe(),t!==Cn)return;er.value=!0,En.value=`starting`,Dn.value=``,An=0,Nn(t)}catch(e){t===Cn&&Xe(e.message,!0)}finally{t===Cn&&(tr.value=!1)}}function ir(e){e.key===`Escape`&&Ze.value&&!e.defaultPrevented&&(document.querySelector(`.hw-sheet`)||N(`close`))}p(()=>window.addEventListener(`keydown`,ir)),n(()=>window.removeEventListener(`keydown`,ir));let ar=s(null),or=s(!1),sr;p(()=>{ar.value=Ot()}),w(ar,e=>{document.documentElement.style.setProperty(`--board-panel-w`,kt(e))},{immediate:!0}),n(()=>{sr?.(),document.documentElement.style.removeProperty(`--board-panel-w`)});function cr(){return Ft.value?.getBoundingClientRect().width||320}function lr(e){let t=document.getElementById(`board`);ar.value=At(e,window.innerWidth-(t?.getBoundingClientRect().left||0))}function ur(){ar.value=null,Dt(null)}function dr(e){if(e.button!==0)return;e.preventDefault(),sr?.();let t=e.currentTarget,n=e.clientX,r=cr();t.setPointerCapture(e.pointerId),or.value=!0;let i=e=>lr(r+n-e.clientX),a=()=>{t.removeEventListener(`pointermove`,i),t.removeEventListener(`pointerup`,a),t.removeEventListener(`pointercancel`,a),t.removeEventListener(`lostpointercapture`,a),or.value=!1,Dt(ar.value),sr=void 0};sr=a,t.addEventListener(`pointermove`,i),t.addEventListener(`pointerup`,a),t.addEventListener(`pointercancel`,a),t.addEventListener(`lostpointercapture`,a)}function pr(e){if(e.key===`Home`||e.key===`Enter`)return e.preventDefault(),ur();let t=e.shiftKey?64:16,n=e.key===`ArrowLeft`?t:e.key===`ArrowRight`?-t:0;n&&(e.preventDefault(),lr(cr()+n),Dt(ar.value))}let mr=e(()=>!m.value&&Oe.value?{height:`${Te.value}px`,top:`${ke.value}px`}:{});return(e,n)=>{let i=he,s=ue,f=yt,p=yn,x=Mt,w=gt,re=cn,M=Bn,P=fr,F=Ar,I=no,ie=mt,z=dt,oe=Ee,se=Et,V=we;return l(),u(`aside`,{ref_key:`panelEl`,ref:Ft,class:v([`board-panel`,{desk:a(m),expanded:a(W),resizing:a(or)}]),style:b(a(mr)),"data-kind":r.target.kind,"aria-label":(`tl`in e?e.tl:a(Y))(`Conversation`,`Conversation`)},[a(m)&&!a(W)?(l(),u(`div`,{key:0,class:v([`list-handle panel-handle`,{dragging:a(or)}]),role:`separator`,"aria-orientation":`vertical`,tabindex:`0`,"aria-label":(`t`in e?e.t:a(J))(`Ticket panel width`),"aria-valuenow":a(ar)??Math.round(cr()),"aria-valuemin":a(320),"aria-valuemax":a(960),title:(`t`in e?e.t:a(J))(`Drag to resize · double-click: default width`),onPointerdown:dr,onDblclick:ur,onKeydown:pr},null,42,fo)):c(``,!0),S(`header`,{class:v([`board-panel-head`,a(Ae)])},[a(m)?c(``,!0):(l(),o(i,{key:0,icon:`i-lucide-chevron-left`,color:`neutral`,variant:`ghost`,size:`lg`,class:`icon-btn board-panel-back`,"aria-label":(`tl`in e?e.tl:a(Y))(`Back to the Board`,`Retour au Board`),onClick:n[0]||=e=>N(`close`)},null,8,[`aria-label`])),S(`div`,po,[S(`p`,mo,[S(`span`,ho,[h(s,{name:`i-lucide-server`}),t(y(r.machineLabel),1)]),a(Xn)?(l(),u(`span`,go,y(a(Xn)),1)):c(``,!0),r.target.kind===`task`&&a(Ce).agent?(l(),u(`span`,{key:1,title:a(Pe)},`· `+y(a(Ce).agent),9,_o)):c(``,!0)]),S(`p`,vo,[r.target.kind===`task`?(l(),u(_,{key:0},[h(f,{agent:a(Ce).agent,title:a(Pe)},null,8,[`agent`,`title`]),h(p,{value:a(Zn)},null,8,[`value`]),a(L)?.title||r.task?.title||!a(pe)?(l(),u(`span`,{key:0,class:`board-panel-title`,title:a(L)?.title||r.task?.title},y(a(L)?.title||r.task?.title),9,yo)):(l(),u(`i`,bo)),r.task?(l(),u(`span`,{key:2,class:v([`task-state`,r.task.group])},y((`taskGroupLabel`in e?e.taskGroupLabel:a(wt))(r.task.group)),3)):c(``,!0)],64)):(l(),u(_,{key:1},[h(s,{name:`i-lucide-message-square-text`,class:`board-panel-coord-icon`}),S(`span`,xo,y(a(Wn)),1)],64))]),r.target.kind===`task`&&r.task?.chat?(l(),u(`span`,So,y((`tl`in e?e.tl:a(Y))(`Conversation`,`Conversation`)),1)):c(``,!0),r.target.kind===`task`?(l(),o(x,{key:1,activity:a(De)},null,8,[`activity`])):c(``,!0),r.target.kind===`task`?(l(),o(w,{key:2,identity:a(Ce)},null,8,[`identity`])):c(``,!0),r.target.kind===`coordinator`?(l(),u(`p`,Co,y((`coordinatorDescription`in e?e.coordinatorDescription:a(ve))(r.target.to)),1)):c(``,!0)]),r.target.kind===`task`?(l(),u(_,{key:1},[a(m)?(l(),o(i,{key:0,icon:a(W)?`i-lucide-minimize`:`i-lucide-maximize`,color:`neutral`,variant:`ghost`,class:`icon-btn`,"aria-label":a(W)?(`tl`in e?e.tl:a(Y))(`Exit full screen`,`Quitter le plein écran`):(`tl`in e?e.tl:a(Y))(`Full screen`,`Plein écran`),onClick:n[1]||=e=>W.value=!a(W)},null,8,[`icon`,`aria-label`])):c(``,!0),h(i,{icon:`i-lucide-ellipsis`,color:`neutral`,variant:`ghost`,class:`icon-btn board-panel-sheet`,"aria-label":(`tl`in e?e.tl:a(Y))(`Task details and actions`,`Fiche et actions de la tâche`),onClick:n[2]||=e=>N(`sheet`)},null,8,[`aria-label`])],64)):c(``,!0),a(m)?(l(),o(i,{key:2,icon:`i-lucide-x`,color:`neutral`,variant:`ghost`,size:`md`,class:`icon-btn board-panel-close`,"aria-label":(`t`in e?e.t:a(J))(`Close`),onClick:n[3]||=e=>N(`close`)},null,8,[`aria-label`])):c(``,!0)],2),r.target.kind===`coordinator`?(l(),u(`div`,wo,[(l(),o(re,{key:JSON.stringify(r.target),machine:r.target.machine,to:r.target.to,disabled:!r.reachable},null,8,[`machine`,`to`,`disabled`]))])):c(``,!0),r.target.kind===`task`&&a(tn)?(l(),u(`nav`,{key:2,class:`board-panel-tabs`,"aria-label":(`tl`in e?e.tl:a(Y))(`Task views`,`Vues de la tâche`)},[(l(!0),u(_,null,d(a(sn),n=>(l(),u(`button`,{key:n,type:`button`,class:v({on:ln(n),"board-panel-tab-reviewer":n===`reviewer`,asks:n===`reviewer`&&a(Kt)===`open`}),"aria-pressed":ln(n),"aria-label":Vt(n),"aria-description":n===`task`&&a(hn)?(`tl`in e?e.tl:a(Y))(`New task details`,`Nouveaux détails de la tâche`):void 0,title:n===`task`||n===`settings`?void 0:a(n===`reviewer`?Gt:Pe),onClick:e=>fn(n===`chat`?a(an)??a(on):n)},[t(y(Vt(n)),1),n===`task`&&a(hn)?(l(),u(`i`,Do)):c(``,!0)],10,Eo))),128))],8,To)):r.target.kind===`task`&&a(pe)?(l(),u(`div`,Oo,[...n[34]||=[S(`i`,null,null,-1),S(`i`,null,null,-1),S(`i`,null,null,-1)]])):c(``,!0),r.target.kind===`task`&&a(je)&&a($)===`chat`&&a(on)===`chat`?(l(),u(`div`,ko,[S(`span`,null,y((`tl`in e?e.tl:a(Y))(`Agent · ${(`kindLabel`in e?e.kindLabel:a(Be))(a(Ce).agent)}’s conversation. The review runs separately.`,`Agent · conversation de ${(`kindLabel`in e?e.kindLabel:a(Be))(a(Ce).agent)}. La relecture tourne séparément.`)),1),a(Wt)&&!(`offlineView`in e?e.offlineView:a(K))?(l(),u(`button`,{key:0,type:`button`,onClick:n[4]||=e=>{Zt.value=`term`,fn(`reviewer`)}},y((`tl`in e?e.tl:a(Y))(`Open reviewer terminal`,`Ouvrir le terminal du relecteur`)),1)):a(qt)&&!(`offlineView`in e?e.offlineView:a(K))?(l(),u(`button`,{key:1,type:`button`,onClick:Yt},y((`tl`in e?e.tl:a(Y))(`Switch to the reviewer session`,`Passer à la session du relecteur`)),1)):c(``,!0)])):c(``,!0),r.target.kind===`task`&&(a(ot)||a(it))?(l(),u(`section`,{key:5,class:v([`task-needs`,{"task-needs-wait":a(X)}]),"data-kind":a(X)||void 0,role:`alert`},[a(X)?(l(),u(`div`,{key:0,class:v([`task-needs-line`,{open:a(Tt)}])},[S(`span`,jo,y(a(xn)(a(X))),1),S(`h3`,{ref_key:`waitEl`,ref:jt,class:`task-needs-text`,title:a(Tt)?void 0:a(ft)},[h(M,{text:a(ft)},null,8,[`text`])],8,Mo),a(Nt)||a(Tt)?(l(),u(`button`,{key:0,type:`button`,class:`task-needs-more`,"aria-expanded":a(Tt),"aria-label":a(Tt)?(`tl`in e?e.tl:a(Y))(`Show less`,`Réduire`):(`tl`in e?e.tl:a(Y))(`Show all`,`Tout afficher`),onClick:n[5]||=e=>Tt.value=!a(Tt)},[h(s,{name:a(Tt)?`i-lucide-chevron-up`:`i-lucide-chevron-down`},null,8,[`name`])],8,No)):c(``,!0),a(Rt)?(l(),u(`button`,{key:1,type:`button`,class:`task-needs-see`,onClick:zt},y((`tl`in e?e.tl:a(Y))(`See ↓`,`Voir ↓`)),1)):c(``,!0)],2)):(l(),u(_,{key:1},[a(ot)?(l(),u(`h3`,Po,[t(y((`tl`in e?e.tl:a(Y))(`Needs you`,`À toi`))+` · `,1),h(M,{text:a(lt)},null,8,[`text`])])):(l(),u(`h3`,Fo,y((`tl`in e?e.tl:a(Y))(`Finishing`,`Fin en cours`))+` · `+y((`tl`in e?e.tl:a(Y))(`its agent is at rest`,`son agent est au repos`)),1)),a(ut)?(l(),u(`pre`,Io,[h(M,{text:a(ut)},null,8,[`text`])])):c(``,!0),a(st)?.failureNext?(l(),u(`p`,Lo,[h(M,{text:a(st).failureNext},null,8,[`text`])])):c(``,!0),a(Xt)?(l(),u(`p`,{key:4,class:`task-needs-reviewer`,"data-wait":a(Kt)},y(a(Xt)),9,Ro)):c(``,!0)],64)),a(Ke)?.list.length?(l(),u(`div`,zo,[S(`span`,Bo,y((`tl`in e?e.tl:a(Y))(`Review findings`,`Remarques de relecture`)),1),S(`ul`,null,[(l(!0),u(_,null,d(a(Ke).list,(e,t)=>(l(),u(`li`,{key:t,"data-severity":e.severity||void 0},[S(`span`,Ho,y(Q(e.severity)),1),S(`span`,Uo,y(e.title),1)],8,Vo))),128))]),a(Ke).more?(l(),u(`button`,{key:0,type:`button`,class:`task-needs-findings-more`,onClick:n[6]||=e=>fn(`task`)},y((`tl`in e?e.tl:a(Y))(`+${a(Ke).more} more in Task`,`+${a(Ke).more} de plus dans Tâche`)),1)):c(``,!0)])):c(``,!0),a(rt)&&a(et)?(l(),u(`p`,Wo,y(a(et)===`limit`?a(fi)(a(at)):a(si)(a(et))),1)):c(``,!0),S(`div`,Go,[a(ct)&&a($)!==`task`?(l(),o(i,{key:0,onClick:n[7]||=e=>fn(`task`)},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Choose an attempt`,`Choisis un essai`)),1)]),_:1})):c(``,!0),a(Ge)?(l(),o(i,{key:1,class:`task-needs-review`,color:`primary`,icon:`i-lucide-undo-2`,disabled:a($e),onClick:n[8]||=e=>Sn(`review`)},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Send the review back to the agent`,`Renvoyer les remarques à l’agent`)),1)]),_:1},8,[`disabled`])):c(``,!0),a(Ie)?.retry?(l(),o(i,{key:2,disabled:a($e),onClick:n[9]||=e=>Sn(`retry`)},{default:E(()=>[t(y(a(et)===`limit`?(`tl`in e?e.tl:a(Y))(`Continue`,`Continuer`):(`tl`in e?e.tl:a(Y))(`Retry`,`Réessayer`)),1)]),_:1},8,[`disabled`])):c(``,!0),a(et)===`limit`?(l(),o(i,{key:3,disabled:a($e),onClick:nt},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Raise limit`,`Relever la limite`)),1)]),_:1},8,[`disabled`])):c(``,!0),a(rt)?(l(),o(i,{key:4,class:`task-finish`,title:a(li)(r.task?.chat),"aria-description":a(li)(r.task?.chat),disabled:a($e),onClick:n[10]||=e=>Sn(`finish`)},{default:E(()=>[t(y(a(et)===`limit`&&!r.task?.chat?(`tl`in e?e.tl:a(Y))(`Take as is`,`Prendre tel quel`):a(ci)(r.task?.chat)),1)]),_:1},8,[`title`,`aria-description`,`disabled`])):c(``,!0),a(Re)?(l(),o(i,{key:5,disabled:a($e),onClick:n[11]||=e=>Sn(`fix`)},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Send the error to the agent`,`Envoyer l’erreur à l’agent`)),1)]),_:1},8,[`disabled`])):c(``,!0),a(Ie)?.delegate?(l(),o(i,{key:6,disabled:a($e),onClick:n[12]||=e=>Sn(`delegate`)},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Start again`,`Relancer`)),1)]),_:1},8,[`disabled`])):c(``,!0),a(xt)?(l(),u(_,{key:7},[h(i,{class:`task-needs-allow`,color:`primary`,disabled:a(Ct),onClick:n[13]||=e=>ye(a(Ln)(`allow`))},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Allow`,`Autoriser`)),1)]),_:1},8,[`disabled`]),a(St)?(l(),o(i,{key:0,class:`task-needs-always`,disabled:a(Ct),onClick:n[14]||=e=>ye(a(Ln)(`always`))},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Always allow`,`Toujours autoriser`)),1)]),_:1},8,[`disabled`])):c(``,!0),h(i,{class:`task-needs-refuse`,disabled:a(Ct),onClick:n[15]||=e=>ye(a(Ln)(`refuse`))},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Refuse`,`Refuser`)),1)]),_:1},8,[`disabled`])],64)):c(``,!0),(l(!0),u(_,null,d(a(bt),e=>(l(),o(i,{key:e.reply,class:`task-needs-choice`,title:e.label,disabled:a(Ct),onClick:t=>ye(e.reply)},{default:E(()=>[t(y(e.label),1)]),_:2},1032,[`title`,`disabled`,`onClick`]))),128)),a(_t)&&!a(bt).length&&!a(xt)?(l(),o(i,{key:8,class:`task-needs-reply`,icon:`i-lucide-corner-down-left`,disabled:`offlineView`in e?e.offlineView:a(K),onClick:Lt},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Reply…`,`Répondre…`)),1)]),_:1},8,[`disabled`])):c(``,!0),a(Ht)?(l(),u(_,{key:9},[(a(Kt)===`open`||a(Kt)===`quiet`)&&a($)!==`reviewer`?(l(),o(i,{key:0,class:`task-needs-reviewer-open`,color:a(Kt)===`open`?`primary`:void 0,disabled:`offlineView`in e?e.offlineView:a(K),onClick:n[16]||=e=>fn(`reviewer`)},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Open the reviewer`,`Ouvrir le relecteur`)),1)]),_:1},8,[`color`,`disabled`])):a(Kt)===`hidden`&&a(qt)?(l(),o(i,{key:1,class:`task-needs-reviewer-session`,color:`primary`,loading:a(Jt),disabled:`offlineView`in e?e.offlineView:a(K),onClick:Yt},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Switch to that session`,`Passer à cette session`)),1)]),_:1},8,[`loading`,`disabled`])):(a(Kt)===`gone`||a(Kt)===`away`)&&a($)!==`task`?(l(),o(i,{key:2,class:`task-needs-task`,onClick:n[17]||=e=>fn(`task`)},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Task actions`,`Actions de la tâche`)),1)]),_:1})):c(``,!0)],64)):a(_t)?c(``,!0):(l(),u(_,{key:10},[a(dn)===`term`&&(!a(X)||a(X)===`auth`)?(l(),o(i,{key:0,class:`task-needs-term`,disabled:(`offlineView`in e?e.offlineView:a(K))||!r.reachable,onClick:n[18]||=e=>fn(`term`)},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Open terminal`,`Ouvrir le terminal`)),1)]),_:1},8,[`disabled`])):a(dn)===`chat`&&a(X)!==`auth`?(l(),o(i,{key:1,class:`task-needs-chat`,onClick:n[19]||=e=>fn(`chat`)},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Answer in the conversation`,`Répondre dans la conversation`)),1)]),_:1})):c(``,!0)],64)),a(Ue)?(l(),o(i,{key:11,class:`task-needs-anyway`,color:a(Ge)?`neutral`:void 0,variant:a(Ge)?`outline`:void 0,disabled:a($e),onClick:n[20]||=e=>Sn(`anyway`)},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Approve anyway`,`Approuver quand même`)),1)]),_:1},8,[`color`,`variant`,`disabled`])):a(Ie)?.approve?(l(),o(i,{key:12,disabled:a($e),onClick:n[21]||=e=>Sn(`approve`)},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Approve`,`Approuver`)),1)]),_:1},8,[`disabled`])):c(``,!0)]),r.reachable?c(``,!0):(l(),u(`p`,Ko,y((`tl`in e?e.tl:a(Y))(`Machine unavailable`,`Machine indisponible`)),1)),a(Se)?(l(),u(`p`,qo,y(a(Se)),1)):c(``,!0)],10,Ao)):c(``,!0),r.target.kind===`coordinator`?(l(),o(P,{key:6,machine:r.target.machine,target:r.target.to,"refresh-key":(r.refreshKey??0)+a(g)},null,8,[`machine`,`target`,`refresh-key`])):c(``,!0),S(`div`,Jo,[r.target.kind===`task`&&a(tn)&&a(B)&&a($)===`task`?(l(),u(`p`,Yo,y(a(B)),1)):c(``,!0),r.target.kind===`task`&&a(tn)?C((l(),o(F,{key:1,machine:r.target.machine,id:r.target.id,active:a($)===`settings`,reachable:r.reachable},null,8,[`machine`,`id`,`active`,`reachable`])),[[ee,a($)===`settings`]]):c(``,!0),r.target.kind===`task`&&a(tn)&&a($)===`task`?(l(),o(I,{key:2,"limit-request":a(tt),open:a(be),"onUpdate:open":n[22]||=e=>O(be)?be.value=e:null,embedded:``,task:r.task,machine:r.target.machine,reachable:r.reachable,refresh:vn,onChat:n[23]||=e=>fn(`chat`),onCoordinator:n[24]||=(e,t)=>N(`coordinator`,e,t),onArchived:gn,onRestored:_n},null,8,[`limit-request`,`open`,`task`,`machine`,`reachable`])):a($)===`settings`?(l(),u(_,{key:3},[],64)):r.target.kind===`task`&&a($)===`reviewer`&&a(Ut)?(l(),u(_,{key:4},[S(`div`,Xo,[S(`span`,Zo,[t(y((`tl`in e?e.tl:a(Y))(`Reviewer`,`Relecteur`)),1),a(Wt)?(l(),u(_,{key:0},[t(` · `+y((`statusLabel`in e?e.statusLabel:a(j))(a(Wt))),1)],64)):c(``,!0)]),a(Wt)&&(`hasChat`in e?e.hasChat:a(ze))(a(Wt))?(l(),u(`button`,{key:0,type:`button`,class:`board-panel-reviewer-mode`,onClick:n[25]||=e=>Zt.value=a(Qt)===`chat`?`term`:`chat`},y(a(Qt)===`chat`?(`t`in e?e.t:a(J))(`Terminal`):(`t`in e?e.t:a(J))(`Conversation`)),1)):c(``,!0)]),(l(),o(ie,{key:`reviewer-${a(Ut)}`,"pane-id":a(Ut),cell:``,active:``,embedded:``,"selected-mode":a(Qt),"onUpdate:selectedMode":n[26]||=e=>Zt.value=e},null,8,[`pane-id`,`selected-mode`]))],64)):r.target.kind===`task`&&a(Vn)&&(a($)===`term`||a(Me)||!a(G)||!(`hasChat`in e?e.hasChat:a(ze))(a(G)))?(l(),u(_,{key:5},[S(`div`,Qo,[S(`span`,$o,[t(y((`t`in e?e.t:a(J))(`Agent`)),1),a(G)?(l(),u(_,{key:0},[t(` · `+y((`kindLabel`in e?e.kindLabel:a(Be))(a(G).agent))+` · `+y((`statusLabel`in e?e.statusLabel:a(j))(a(G))),1)],64)):c(``,!0)]),a(G)&&(`hasChat`in e?e.hasChat:a(ze))(a(G))?(l(),u(`button`,{key:0,type:`button`,class:`board-panel-reviewer-mode`,onClick:n[27]||=e=>un(a(on)===`chat`?`term`:`chat`)},y(a(on)===`chat`?(`t`in e?e.t:a(J))(`Terminal`):(`t`in e?e.t:a(J))(`Conversation`)),1)):c(``,!0)]),(l(),o(ie,{key:a(Vn),"pane-id":a(Vn),cell:``,active:``,embedded:``,"selected-mode":a(on),"onUpdate:selectedMode":un},null,8,[`pane-id`,`selected-mode`]))],64)):a(Vn)&&r.target.kind===`coordinator`?(l(),o(ie,{key:a(Vn),"pane-id":a(Vn),cell:``,active:``},null,8,[`pane-id`])):r.target.kind===`task`&&a(R)?(l(),u(`div`,{key:7,class:`chat-list skeleton board-panel-skel`,role:`status`,"aria-label":(`t`in e?e.t:a(J))(`Loading…`)},[a(pe)?(l(),o(z,{key:0,agent:a(Ce).agent},null,8,[`agent`])):c(``,!0)],8,es)):a(B)?(l(),u(`p`,ts,y(a(B)),1)):r.target.kind===`task`?(l(),u(`div`,ns,[S(`h3`,null,y(a(L)?.failureStage===`setup`||a(L)?.failureStage===`start`?(`tl`in e?e.tl:a(Y))(`Setup output`,`Sortie du démarrage`):(`tl`in e?e.tl:a(Y))(`No agent conversation yet`,`Pas encore de conversation avec l’agent`)),1),a(ut)&&!a(ot)?(l(),u(`pre`,rs,y(a(ut)),1)):c(``,!0),S(`p`,null,y((`tl`in e?e.tl:a(Y))(`The terminal stays available when the task has a pane. Task details and actions are in the Task tab.`,`Le terminal reste accessible quand la tâche a un pane. Les détails et actions sont dans l’onglet Tâche.`)),1),a(ae)?(l(),u(`form`,{key:1,class:`board-panel-first board-panel-tell`,onSubmit:n[29]||=te(e=>ye(),[`prevent`])},[S(`label`,is,y(a(Je)?(`tl`in e?e.tl:a(Y))(`The reviewer is waiting for an answer: herdr-projects passes your reply on to it.`,`Le relecteur attend une réponse : herdr-projects lui transmet ta réponse.`):r.task?.stage===`plan`?(`tl`in e?e.tl:a(Y))(`Its agent is not running now: your words send the plan back, through herdr-projects.`,`Son agent ne tourne pas en ce moment : tes mots renvoient le plan, par herdr-projects.`):(`tl`in e?e.tl:a(Y))(`Its agent is not running now: herdr-projects passes your reply on.`,`Son agent ne tourne pas en ce moment : herdr-projects lui transmet ta réponse.`)),1),r.reachable?c(``,!0):(l(),u(`p`,as,y((`tl`in e?e.tl:a(Y))(`${r.machineLabel} cannot be reached now.`,`${r.machineLabel} est injoignable pour l’instant.`)),1)),h(oe,{id:`board-panel-tell`,modelValue:a(me),"onUpdate:modelValue":n[28]||=e=>O(me)?me.value=e:null,rows:3,autoresize:``,maxlength:a(de),placeholder:(`tl`in e?e.tl:a(Y))(`Message`,`Message`),disabled:`offlineView`in e?e.offlineView:a(K)},null,8,[`modelValue`,`maxlength`,`placeholder`,`disabled`]),h(i,{type:`submit`,color:`primary`,icon:`i-lucide-send`,loading:a(ge),disabled:!a(me).trim()||(`offlineView`in e?e.offlineView:a(K))||!r.reachable},{default:E(()=>[t(y((`t`in e?e.t:a(J))(`Send`)),1)]),_:1},8,[`loading`,`disabled`])],32)):c(``,!0)])):r.target.kind===`coordinator`&&!a(Tn)?(l(),u(`p`,os,y((`t`in e?e.t:a(J))(`Loading…`)),1)):r.target.kind===`coordinator`?(l(),u(`div`,ss,[a(Kn)===`failed`?(l(),u(`section`,{key:0,class:`board-panel-failed`,role:`alert`,"aria-label":a(Jn)},[S(`h4`,null,[h(s,{name:`i-lucide-octagon-alert`}),t(y(a(Jn)),1)]),S(`p`,ls,y(a(qn)?(`tl`in e?e.tl:a(Y))(`The message was not sent to ${a(Wn)} on ${r.machineLabel}.`,`Le message destiné à ${a(Wn)} n’a pas été envoyé sur ${r.machineLabel}.`):(`tl`in e?e.tl:a(Y))(`${a(Gn)} could not start on ${r.machineLabel}.`,`${a(Gn)} n’a pas pu démarrer sur ${r.machineLabel}.`)),1),S(`p`,us,y(a(Dn)),1),S(`p`,ds,y((`tl`in e?e.tl:a(Y))(`Fix this on the machine, then try again.`,`Corrige cela sur la machine, puis réessaie.`))+` `+y(a(Yn)),1),r.reachable?c(``,!0):(l(),u(`p`,fs,y((`tl`in e?e.tl:a(Y))(`${r.machineLabel} cannot be reached now.`,`${r.machineLabel} est injoignable pour l’instant.`)),1)),h(i,{color:`neutral`,variant:`outline`,icon:`i-lucide-rotate-cw`,loading:a(tr),disabled:(`offlineView`in e?e.offlineView:a(K))||!r.reachable,onClick:rr},{default:E(()=>[t(y((`t`in e?e.t:a(J))(`Try again`)),1)]),_:1},8,[`loading`,`disabled`])],8,cs)):a(Kn)===`live`?(l(),u(`p`,ps,y((`t`in e?e.t:a(J))(`Loading…`)),1)):a(Kn)===`starting`?(l(),u(`p`,ms,y(a(er)?(`tl`in e?e.tl:a(Y))(`Sent. ${a(Gn)} is starting: its conversation opens here.`,`Envoyé. ${a(Gn)} démarre : sa conversation s’ouvre ici.`):(`tl`in e?e.tl:a(Y))(`${a(Gn)} is starting: its conversation opens here.`,`${a(Gn)} démarre : sa conversation s’ouvre ici.`)),1)):(l(),u(`form`,{key:3,class:`board-panel-first`,onSubmit:te(nr,[`prevent`])},[S(`label`,hs,y((`tl`in e?e.tl:a(Y))(`Not started yet: your first message starts it.`,`Pas encore démarré : ton premier message le lance.`)),1),r.reachable?c(``,!0):(l(),u(`p`,gs,y((`tl`in e?e.tl:a(Y))(`${r.machineLabel} cannot be reached now: your message waits for it here.`,`${r.machineLabel} est injoignable pour l’instant : ton message l’attend ici.`)),1)),r.target.freshProject&&a(En)===`none`?(l(),u(_,{key:1},[S(`label`,_s,y((`t`in e?e.t:a(J))(`Agent`)),1),h(se,{id:`coordinator-agent`,modelValue:a(T),"onUpdate:modelValue":n[30]||=e=>O(T)?T.value=e:null,items:a(A),disabled:a($n)},null,8,[`modelValue`,`items`,`disabled`]),a(T)===`__default`?c(``,!0):(l(),u(_,{key:0},[S(`label`,vs,y((`t`in e?e.t:a(J))(`Model`))+` `+y((`t`in e?e.t:a(J))(`(optional)`)),1),h(V,{id:`coordinator-model`,modelValue:a(D),"onUpdate:modelValue":n[31]||=e=>O(D)?D.value=e:null,disabled:a($n),autocapitalize:`none`,autocorrect:`off`,spellcheck:!1},null,8,[`modelValue`,`disabled`]),S(`label`,ys,y((`t`in e?e.t:a(J))(`Effort`)),1),h(se,{id:`coordinator-effort`,modelValue:a(k),"onUpdate:modelValue":n[32]||=e=>O(k)?k.value=e:null,items:a(ne),disabled:a($n)},null,8,[`modelValue`,`items`,`disabled`])],64))],64)):c(``,!0),h(oe,{id:`board-panel-first`,modelValue:a(Qn),"onUpdate:modelValue":n[33]||=e=>O(Qn)?Qn.value=e:null,rows:3,autoresize:``,maxlength:a(de),placeholder:(`tl`in e?e.tl:a(Y))(`Message`,`Message`),disabled:`offlineView`in e?e.offlineView:a(K)},null,8,[`modelValue`,`maxlength`,`placeholder`,`disabled`]),h(i,{type:`submit`,color:`primary`,icon:`i-lucide-send`,loading:a($n),disabled:!a(Qn).trim()||(`offlineView`in e?e.offlineView:a(K))||!r.reachable},{default:E(()=>[t(y((`t`in e?e.t:a(J))(`Send`)),1)]),_:1},8,[`loading`,`disabled`])],32))])):c(``,!0)])],14,uo)}}}),{__name:`BoardPanel`}),Ss=[`machine`,`defaults`,`repo`],Cs=[`worker`,`review`,`plan`,`attempts`,`merge`,`limits`,`workspace`,`check`,`modes`,`other`],ws=[`board`,`coordinator`,`autopilot`,`watcher`,`voice`,`other`];function Ts(e){let t=e.split(`.`)[0]??``;return e===`research.only`||e===`chat.only`?`modes`:t===`reviewer`||t===`review`?`review`:t===`limit`?`limits`:[`worker`,`plan`,`attempts`,`merge`,`workspace`,`check`,`board`,`coordinator`,`autopilot`,`watcher`,`voice`].includes(t)?t:`other`}var Es=[`board`,`coordinator`];function Ds(e,t){return t===`machine`?e.filter(e=>Es.includes(e.kind)):t===`defaults`?e.filter(e=>!Es.includes(e.kind)&&e.kind!==`repo`):e.filter(e=>!Es.includes(e.kind))}function Os(e,t){let n=t===`machine`?ws:Cs,r=Ds(e,t);return n.map(e=>({theme:e,rows:r.filter(t=>Ts(t.name)===e)})).filter(e=>e.rows.length)}var ks=e=>e.place===`repo`||e.place===`file`,As=e=>e.own===!0;function js(e){return e==null?``:Array.isArray(e)?e.map(e=>String(e)).join(`, `):String(e)}var Ms=e=>e.split(`/`)[0].trim(),Ns=e=>e.includes(`/`)?e.slice(e.indexOf(`/`)+1):``,Ps={"review.when":[`repos`,`always`,`never`],"review.mustFix":[`critical`,`major`,`minor`,`trivial`],"merge.by":[`you`,`itself`],"merge.checks":[`github`,`none`],"attempts.pick":[`you`,`reviewer`],"plan.approve":[`none`,`you`,`reviewer`],"board.open":[`tab`,`popup`]},Fs=[`full`,`ask`],Is=[`plan.agent`,`coordinator.agent`,`watcher.agent`],Ls=[`worker.instructions`,`reviewer.instructions`,`coordinator.instructions`,`board.notify`,`board.keys`];function Rs(e,t){if(typeof t==`boolean`)return{type:`switch`};if(Ps[e])return{type:`pick`,values:Ps[e]};let[n,r]=e.split(`.`);return r===`access`&&[`worker`,`reviewer`,`coordinator`].includes(n)?{type:`pick`,values:Fs}:r===`agent`&&[`worker`,`reviewer`,`coordinator`,`plan`,`watcher`].includes(n)?{type:`agent`,none:Is.includes(e)}:r===`effort`&&[`worker`,`reviewer`,`coordinator`].includes(n)?{type:`effort`,agent:`${n}.agent`}:{type:`text`,long:Ls.includes(e)}}function zs(e,t){if(e===`board.agents`)return`boardAgents`;if(t===null)return e===`merge.by`?`mayMergeItself`:e===`merge.checks`?`mayMergeNoChecks`:null;let n=t.trim();return e===`merge.by`&&n===`itself`?`mergeItself`:e===`merge.checks`&&n===`none`?`mergeNoChecks`:e===`review.when`&&n===`never`?`noReview`:e===`coordinator.agent`&&n===`none`?`noCoordinator`:null}function Bs(e){switch(e){case`machine`:return Y(`Machine`,`Machine`);case`defaults`:return Y(`Defaults`,`Par défaut`);case`repo`:return Y(`Repositories`,`Dépôts`)}}function Vs(e){switch(e){case`machine`:return Y(`The board itself, its Coordinator and its Watcher. Yours only, for this machine.`,`Le board lui-même, son Coordinateur et son Veilleur. À toi seul, pour cette machine.`);case`defaults`:return Y(`Your values for every task of this machine. A repository’s entry or a task can say otherwise.`,`Tes valeurs pour toutes les tâches de cette machine. L’entrée d’un dépôt ou une tâche peut dire autrement.`);case`repo`:return Y(`Your entry for one repository: what differs there from your defaults.`,`Ton entrée pour un dépôt : ce qui y diffère de tes valeurs par défaut.`)}}function Hs(e){switch(e){case`worker`:return Y(`Who works`,`Qui travaille`);case`review`:return Y(`Review`,`Relecture`);case`plan`:return Y(`Plan`,`Plan`);case`attempts`:return Y(`Attempts`,`Essais`);case`merge`:return Y(`Merge`,`Fusion`);case`limits`:return Y(`Limits`,`Limites`);case`workspace`:return Y(`Workspace`,`Espace de travail`);case`check`:return Y(`Check`,`Contrôle`);case`modes`:return Y(`Research / Conversation`,`Recherche / Conversation`);case`board`:return Y(`Board`,`Board`);case`coordinator`:return Y(`Coordinator`,`Coordinateur`);case`autopilot`:return Y(`Autopilot`,`Pilote automatique`);case`watcher`:return Y(`Watcher`,`Veilleur`);case`voice`:return Y(`Voice calls`,`Appels vocaux`);case`other`:return Y(`Other settings`,`Autres réglages`)}}var Us={"board.agents":[`Agents at once`,`Agents en même temps`],"board.diskFree":[`Free disk to keep`,`Disque libre à garder`],"board.oldBuilds":[`Old builds kept (days)`,`Anciens builds gardés (jours)`],"board.machines":[`Other machines`,`Autres machines`],"board.open":[`What the board key opens`,`Ce qu’ouvre la touche du board`],"board.notify":[`Notification`,`Notification`],"board.keys":[`Your own keys`,`Tes propres touches`],"board.webUi":[`Board in the herdr web UI`,`Board dans l’interface web de herdr`],"board.theme":[`Board colours`,`Couleurs du board`],"coordinator.agent":[`Coordinator agent`,`Agent du Coordinateur`],"coordinator.effort":[`Coordinator effort`,`Effort du Coordinateur`],"coordinator.fast":[`Coordinator fast mode`,`Mode rapide du Coordinateur`],"coordinator.access":[`Coordinator access`,`Accès du Coordinateur`],"coordinator.instructions":[`Coordinator instructions`,`Instructions du Coordinateur`],"watcher.agent":[`Watcher model`,`Modèle du Veilleur`],"watcher.every":[`Watcher interval`,`Intervalle du Veilleur`],"repo.key":[`Repository key`,`Clé du dépôt`]};function Ws(e){let t=Us[e];return t?Y(t[0],t[1]):vr(e)}function Gs(e,t){let n=t?Y(` in ${t}`,` dans ${t}`):``;switch(e){case`mergeItself`:return Y(`Work${n} will merge by itself, without your yes. Tasks already reviewed will merge right away.`,`Le travail${n} fusionnera tout seul, sans ton accord. Les tâches déjà relues fusionneront tout de suite.`);case`mayMergeItself`:return Y(`merge.by goes back to its inherited value${n}. If that value is itself, tasks already reviewed will merge right away.`,`merge.by revient à sa valeur héritée${n}. Si cette valeur est itself, les tâches déjà relues fusionneront tout de suite.`);case`mayMergeNoChecks`:return Y(`merge.checks goes back to its inherited value${n}. If that value is none, pull requests will merge without waiting for their GitHub checks, from the next merge on.`,`merge.checks revient à sa valeur héritée${n}. Si cette valeur est none, les pull requests fusionneront sans attendre leurs vérifications GitHub, dès la prochaine fusion.`);case`mergeNoChecks`:return Y(`Pull requests${n} will merge without waiting for their GitHub checks, from the next merge on.`,`Les pull requests${n} fusionneront sans attendre leurs vérifications GitHub, dès la prochaine fusion.`);case`noReview`:return Y(`Finished work${n} will no longer be reviewed, starting with the tasks finishing now.`,`Le travail fini${n} ne sera plus relu, à commencer par les tâches qui finissent maintenant.`);case`boardAgents`:return Y(`This changes how many agents work at once on this machine, right now: tasks in the queue may start at once.`,`Cela change tout de suite le nombre d’agents qui travaillent en même temps sur cette machine : des tâches en file peuvent démarrer aussitôt.`);case`noCoordinator`:return Y(`This machine will have no Coordinator: the board’s chat box stops answering.`,`Cette machine n’aura plus de Coordinateur : la zone de discussion du board ne répondra plus.`)}}var Ks=[`data-setting`],qs={class:`bs-head`},Js={class:`bs-name`},Ys={class:`bs-key`},Xs={class:`bs-actions`},Zs={class:`bs-value`},Qs={class:`bs-origin`},$s={key:0},ec={key:1,class:`bs-note`},tc=[`for`],nc=[`for`],rc={key:0,class:`bs-hint`},ic={key:3,class:`bs-hint`},ac=[`for`],oc={key:0,class:`bs-hint`},sc={class:`bs-preview`},cc={class:`bs-buttons`},lc={key:1,class:`board-note error bs-error`,role:`alert`},uc=`__default`,dc=Object.assign(ht(m({__name:`BoardSettingRow`,props:{row:{},machine:{},repo:{},agents:{},rows:{},busy:{type:Boolean},error:{},disabled:{type:Boolean},change:{type:Function}},setup(n){let r=n,i=e(()=>Rs(r.row.name,r.row.value)),d=e(()=>js(r.row.value)),f=s(!1),p=s(``),m=s(``),g=s(uc),b=s(``),x=e(()=>{let e=i.value;return e.type===`effort`?js(r.rows.find(t=>t.name===e.agent)?.value):``}),C=e(()=>i.value.type===`agent`?m.value:i.value.type===`effort`?Ms(x.value):``),T=s(null),D=s(!1),k=s(!1),A=0;async function ee(e){let t=++A;if(T.value=null,k.value=!1,e&&e!==`none`){D.value=!0;try{let n=await q(`/api/tasks/models?machine=${encodeURIComponent(r.machine)}&program=${encodeURIComponent(e)}`);t===A&&(T.value=n)}catch{t===A&&(k.value=!0)}finally{t===A&&(D.value=!1)}}}w(()=>f.value?C.value:``,e=>{e&&ee(e)});let j=(e,t)=>t&&!e.includes(t)?[t,...e]:e,ne=e(()=>{let e=i.value,t=j([...r.agents],Ms(d.value)===`none`?``:Ms(d.value));return[...e.type===`agent`&&e.none?[{label:`none`,value:`none`}]:[],...t.map(e=>({label:e,value:e}))]}),re=e(()=>{let e=j(T.value?.models??[],Ms(d.value)===m.value?Ns(d.value):``);return[{label:Y(`Program’s default`,`Modèle par défaut du programme`),value:uc},...e.map(e=>({label:e,value:e}))]}),M=e(()=>!D.value&&m.value!==`none`&&(k.value||T.value!==null&&!T.value.models.length)),N=e(()=>{let e=T.value,t=Ns(x.value),n=e?t?W(e,t):e.efforts:[];return j([`default`,...n],d.value).map(e=>({label:e,value:e}))}),P=e(()=>{let e=i.value,t=e.type===`pick`?e.values:e.type===`switch`?[`true`,`false`]:[];return j(t,d.value).map(e=>({label:e,value:e}))});function F(){p.value=d.value,m.value=Ms(d.value)||r.agents[0]||``,g.value=Ns(d.value)||uc,b.value=Ns(d.value),f.value=!0}w(m,(e,t)=>{t&&e!==t&&(g.value=uc,b.value=``)});let I=e(()=>{if(i.value.type!==`agent`)return p.value.trim();if(!m.value||m.value===`none`)return m.value;let e=M.value?b.value.trim():g.value===uc?``:g.value;return e?`${m.value}/${e}`:m.value}),L=e(()=>!!I.value&&I.value!==d.value&&!r.busy&&!r.disabled);async function R(){L.value&&await r.change(I.value)&&(f.value=!1)}async function ie(){r.busy||r.disabled||await r.change(null)&&(f.value=!1)}let z=e(()=>`bs-${r.row.name.replace(`.`,`-`)}`);return(e,r)=>{let s=he,C=Et,w=we,T=Ee;return l(),u(`div`,{class:v([`bs-row`,{editing:a(f),own:a(As)(n.row)}]),"data-setting":n.row.name},[S(`div`,qs,[S(`p`,Js,[t(y(a(Ws)(n.row.name)),1),S(`small`,Ys,y(n.row.name),1)]),S(`div`,Xs,[a(As)(n.row)?(l(),o(s,{key:0,icon:`i-lucide-rotate-ccw`,color:`neutral`,variant:`ghost`,size:`sm`,class:`icon-btn bs-reset`,disabled:n.busy||n.disabled,loading:n.busy&&!a(f),"aria-label":(`tl`in e?e.tl:a(Y))(`Back to the inherited value: ${n.row.name}`,`Revenir à la valeur héritée : ${n.row.name}`),title:(`tl`in e?e.tl:a(Y))(`Back to the inherited value`,`Revenir à la valeur héritée`),onClick:ie},null,8,[`disabled`,`loading`,`aria-label`,`title`])):c(``,!0),a(f)?c(``,!0):(l(),o(s,{key:1,color:`neutral`,variant:`outline`,size:`sm`,class:`bs-edit`,disabled:n.disabled,onClick:F},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Change`,`Modifier`)),1)]),_:1},8,[`disabled`]))])]),S(`p`,Zs,y(a(d)||(`tl`in e?e.tl:a(Y))(`(empty)`,`(vide)`)),1),S(`p`,Qs,[S(`span`,{class:v([`bs-source`,{own:a(As)(n.row)}])},y(a(_r)(n.row.place)),3),n.row.from?(l(),u(`span`,$s,y(n.row.from),1)):c(``,!0),n.row.note?(l(),u(`span`,ec,y(n.row.note),1)):c(``,!0)]),a(f)?(l(),u(`form`,{key:0,class:`bs-editor`,onSubmit:te(R,[`prevent`])},[a(i).type===`agent`?(l(),u(_,{key:0},[S(`label`,{for:`${a(z)}-program`},y((`tl`in e?e.tl:a(Y))(`Program`,`Programme`)),9,tc),h(C,{id:`${a(z)}-program`,modelValue:a(m),"onUpdate:modelValue":r[0]||=e=>O(m)?m.value=e:null,items:a(ne),size:`md`,class:`bs-field`},null,8,[`id`,`modelValue`,`items`]),a(m)&&a(m)!==`none`?(l(),u(_,{key:0},[S(`label`,{for:`${a(z)}-model`},y((`tl`in e?e.tl:a(Y))(`Model`,`Modèle`)),9,nc),a(D)?(l(),u(`p`,rc,y((`tl`in e?e.tl:a(Y))(`Reading models…`,`Lecture des modèles…`)),1)):a(M)?(l(),o(w,{key:1,id:`${a(z)}-model`,modelValue:a(b),"onUpdate:modelValue":r[1]||=e=>O(b)?b.value=e:null,size:`md`,class:`bs-field`,placeholder:(`tl`in e?e.tl:a(Y))(`Program’s default`,`Modèle par défaut du programme`)},null,8,[`id`,`modelValue`,`placeholder`])):(l(),o(C,{key:2,id:`${a(z)}-model`,modelValue:a(g),"onUpdate:modelValue":r[2]||=e=>O(g)?g.value=e:null,items:a(re),size:`md`,class:`bs-field`},null,8,[`id`,`modelValue`,`items`])),a(M)?(l(),u(`p`,ic,y((`tl`in e?e.tl:a(Y))(`herdr-projects did not list models for this program here: type one, or leave it empty.`,`herdr-projects n’a pas listé de modèles pour ce programme ici : tape un nom, ou laisse vide.`)),1)):c(``,!0)],64)):c(``,!0)],64)):a(i).type===`effort`?(l(),u(_,{key:1},[S(`label`,{for:`${a(z)}-v`},y((`tl`in e?e.tl:a(Y))(`Effort for ${a(x)||`?`}`,`Effort pour ${a(x)||`?`}`)),9,ac),a(D)?(l(),u(`p`,oc,y((`tl`in e?e.tl:a(Y))(`Reading efforts…`,`Lecture des efforts…`)),1)):(l(),o(C,{key:1,id:`${a(z)}-v`,modelValue:a(p),"onUpdate:modelValue":r[3]||=e=>O(p)?p.value=e:null,items:a(N),size:`md`,class:`bs-field`},null,8,[`id`,`modelValue`,`items`]))],64)):a(i).type===`switch`||a(i).type===`pick`?(l(),o(C,{key:2,id:`${a(z)}-v`,modelValue:a(p),"onUpdate:modelValue":r[4]||=e=>O(p)?p.value=e:null,items:a(P),size:`md`,class:`bs-field`,"aria-label":n.row.name},null,8,[`id`,`modelValue`,`items`,`aria-label`])):a(i).long?(l(),o(T,{key:3,id:`${a(z)}-v`,modelValue:a(p),"onUpdate:modelValue":r[5]||=e=>O(p)?p.value=e:null,rows:4,autoresize:``,maxrows:12,class:`bs-field`,"aria-label":n.row.name},null,8,[`id`,`modelValue`,`aria-label`])):(l(),o(w,{key:4,id:`${a(z)}-v`,modelValue:a(p),"onUpdate:modelValue":r[6]||=e=>O(p)?p.value=e:null,size:`md`,class:`bs-field`,"aria-label":n.row.name},null,8,[`id`,`modelValue`,`aria-label`])),S(`p`,sc,[t(y((`tl`in e?e.tl:a(Y))(`Sends`,`Envoie`))+` · `,1),S(`code`,null,`herdr-projects set `+y(n.row.name)+` `+y(a(I)||`…`)+y(n.repo?` --repo ${n.repo}`:``),1)]),S(`div`,cc,[h(s,{color:`neutral`,variant:`ghost`,size:`sm`,disabled:n.busy,onClick:r[7]||=e=>f.value=!1},{default:E(()=>[t(y((`t`in e?e.t:a(J))(`Cancel`)),1)]),_:1},8,[`disabled`]),h(s,{type:`submit`,color:`primary`,variant:`solid`,size:`sm`,class:`hw-cta bs-save`,disabled:!a(L),loading:n.busy},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Save`,`Enregistrer`)),1)]),_:1},8,[`disabled`,`loading`])])],32)):c(``,!0),n.error?(l(),u(`p`,lc,y(n.error),1)):c(``,!0)],10,Ks)}}}),[[`__scopeId`,`data-v-3bb8d261`]]),{__name:`BoardSettingRow`}),fc=[`aria-label`],pc={class:`board-panel-head`},mc={class:`board-panel-who`},hc={class:`board-panel-path`},gc={class:`board-panel-machine`},_c={key:0,class:`board-panel-repo`},vc={class:`board-panel-name`},yc={class:`board-panel-title`},bc={class:`board-settings-switch-label`},xc={key:0,class:`board-settings-body`},Sc={class:`board-settings-hint`},Cc={class:`board-settings-machines`},wc=[`disabled`,`onClick`],Tc={key:0},Ec={key:0,class:`board-empty`},Dc=[`aria-label`],Oc=[`aria-pressed`,`onClick`],kc={class:`board-settings-body`},Ac={class:`board-settings-hint`},jc={key:0,class:`board-settings-repo`},Mc={key:1,class:`board-settings-diff`},Nc={key:2,class:`board-empty`},Pc={key:1,class:`board-note`,role:`status`},Fc={key:2,class:`board-empty`,role:`status`},Ic={key:3,role:`alert`,class:`board-note error`},Lc={key:0,class:`board-empty`},Rc=[`data-theme`],zc=Object.assign(ht(m({__name:`BoardSettings`,props:{overlay:{type:Boolean},target:{},repos:{},machineLabel:{type:Function},reachable:{type:Function}},emits:[`close`,`changed`],setup(r,{emit:i}){let f=r,m=e(()=>Ze.value&&!f.overlay),g=i,x=s(f.target.machine??(f.target.machines.length===1?f.target.machines[0]:null)),T=s(f.target.repo?`repo`:`machine`),D=e(()=>{let e=x.value,t=e===null?[]:f.repos[e]??[];return f.target.repo&&!t.includes(f.target.repo)?[f.target.repo,...t]:t}),k=s(f.target.repo??``);w(D,e=>{e.includes(k.value)||(k.value=e[0]??``)},{immediate:!0});let ee=s(!0),te=s(``),j=s({}),ne=s(null),re=s(null),M=s(!1),N=s(``),P=e(()=>T.value===`repo`?k.value:``),F=e(()=>T.value===`repo`?re.value?.repo===k.value?re.value:null:ne.value),I=e(()=>x.value===null||!f.reachable(x.value)||K.value),L=0;async function R(){let e=x.value;if(e===null||I.value||T.value===`repo`&&!k.value)return;let t=P.value,n=++L;M.value=!0,N.value=``;try{let r=await q(`/api/tasks/board-settings?machine=${encodeURIComponent(e)}${t?`&repo=${encodeURIComponent(t)}`:``}`);if(n!==L)return;t?re.value=r:ne.value=r}catch(e){n===L&&(N.value=e.message)}finally{n===L&&(M.value=!1)}}w([x,T,k,I],()=>{j.value={},F.value||R()},{immediate:!0}),w(x,()=>{ne.value=null,re.value=null},{flush:`sync`});let ie=e(()=>F.value?.settings??[]),z=e(()=>{let e=Os(ie.value,T.value);return T.value!==`repo`||!ee.value?e:e.map(e=>({...e,rows:e.rows.filter(ks)})).filter(e=>e.rows.length)}),B=e(()=>T.value===`repo`&&ee.value?Os(ie.value,`repo`).reduce((e,t)=>e+t.rows.filter(e=>!ks(e)).length,0):0);async function ae(e,t){let n=x.value;if(n===null||te.value||I.value)return!1;let r=P.value,i=zs(e.name,t);if(i&&!await _e(Gs(i,r),t===null?Y(`Go back`,`Revenir`):Y(`Change`,`Modifier`),`error`,t===null?`herdr-projects unset ${e.name}${r?` --repo ${r}`:``}`:`herdr-projects set ${e.name} ${t}${r?` --repo ${r}`:``}`))return!1;te.value=e.name;let{[e.name]:a,...o}=j.value;j.value=o;try{let i=await q(`/api/tasks/board-settings`,{machine:n,name:e.name,repo:r,...t===null?{unset:!0}:{value:t}});return x.value!==n||(r?re.value=i:(ne.value=i,re.value=null),Fe(),Xe(i.msg||Y(`Saved`,`Enregistré`)),g(`changed`,n),!0)}catch(t){return j.value={...j.value,[e.name]:t.message},x.value===n&&P.value===r&&R(),!1}finally{te.value=``}}let oe=e(()=>x.value===null?Y(`Board settings`,`Réglages du board`):`${Y(`Board settings`,`Réglages du board`)} · ${f.machineLabel(x.value)}`);function se(e){e.key===`Escape`&&Ze.value&&!e.defaultPrevented&&(document.querySelector(`.hw-sheet`)||g(`close`))}p(()=>{window.addEventListener(`keydown`,se),document.documentElement.style.setProperty(`--board-panel-w`,kt(Ot()))}),n(()=>{window.removeEventListener(`keydown`,se),document.documentElement.style.removeProperty(`--board-panel-w`)});let V=e(()=>!m.value&&Oe.value?{height:`${Te.value}px`,top:`${ke.value}px`}:{}),H=e(()=>D.value.map(e=>({label:e,value:e})));return(e,n)=>{let i=he,s=ue,f=Et,p=dc;return l(),u(`aside`,{class:v([`board-panel board-settings`,{desk:a(m)}]),style:b(a(V)),"data-kind":`settings`,"aria-label":a(oe)},[S(`header`,pc,[a(m)?c(``,!0):(l(),o(i,{key:0,icon:`i-lucide-chevron-left`,color:`neutral`,variant:`ghost`,size:`lg`,class:`icon-btn board-panel-back`,"aria-label":(`tl`in e?e.tl:a(Y))(`Back to the Board`,`Retour au Board`),onClick:n[0]||=e=>g(`close`)},null,8,[`aria-label`])),S(`div`,mc,[S(`p`,hc,[S(`span`,gc,[h(s,{name:`i-lucide-server`}),t(y(a(x)===null?(`tl`in e?e.tl:a(Y))(`Choose a machine`,`Choisis une machine`):r.machineLabel(a(x))),1)]),a(T)===`repo`&&a(k)&&a(x)!==null?(l(),u(`span`,_c,y(a(k)),1)):c(``,!0)]),S(`h2`,vc,[h(s,{name:`i-lucide-settings`,class:`board-settings-icon`}),S(`span`,yc,y(a(oe)),1)])]),a(x)!==null&&r.target.machines.length>1?(l(),o(i,{key:1,color:`neutral`,variant:`outline`,size:`sm`,class:`board-settings-switch`,icon:`i-lucide-arrow-left-right`,"aria-label":(`tl`in e?e.tl:a(Y))(`Another machine`,`Autre machine`),onClick:n[1]||=e=>x.value=null},{default:E(()=>[S(`span`,bc,y((`tl`in e?e.tl:a(Y))(`Machine`,`Machine`)),1)]),_:1},8,[`aria-label`])):c(``,!0),a(m)?(l(),o(i,{key:2,icon:`i-lucide-x`,color:`neutral`,variant:`ghost`,size:`md`,class:`icon-btn board-panel-close`,"aria-label":(`t`in e?e.t:a(J))(`Close`),onClick:n[2]||=e=>g(`close`)},null,8,[`aria-label`])):c(``,!0)]),a(x)===null?(l(),u(`div`,xc,[S(`p`,Sc,y((`tl`in e?e.tl:a(Y))(`Each machine has its own board settings. Which one?`,`Chaque machine a ses propres réglages du board. Laquelle ?`)),1),S(`ul`,Cc,[(l(!0),u(_,null,d(r.target.machines,t=>(l(),u(`li`,{key:t||`local`},[S(`button`,{type:`button`,disabled:!r.reachable(t),onClick:e=>x.value=t},[h(s,{name:`i-lucide-server`}),S(`span`,null,y(r.machineLabel(t)),1),r.reachable(t)?c(``,!0):(l(),u(`small`,Tc,y((`tl`in e?e.tl:a(Y))(`cannot be read now`,`illisible pour l’instant`)),1)),h(s,{name:`i-lucide-chevron-right`,class:`board-settings-go`})],8,wc)]))),128))]),r.target.machines.length?c(``,!0):(l(),u(`p`,Ec,y((`tl`in e?e.tl:a(Y))(`No machine with a board here.`,`Aucune machine avec un board ici.`)),1))])):(l(),u(_,{key:1},[S(`nav`,{class:`board-panel-tabs`,"aria-label":(`tl`in e?e.tl:a(Y))(`Board settings`,`Réglages du board`)},[(l(!0),u(_,null,d(a(Ss),e=>(l(),u(`button`,{key:e,type:`button`,class:v({on:a(T)===e}),"aria-pressed":a(T)===e,onClick:t=>T.value=e},y(a(Bs)(e)),11,Oc))),128))],8,Dc),S(`div`,kc,[S(`p`,Ac,y(a(Vs)(a(T))),1),a(T)===`repo`?(l(),u(`div`,jc,[a(H).length?(l(),o(f,{key:0,modelValue:a(k),"onUpdate:modelValue":n[3]||=e=>O(k)?k.value=e:null,items:a(H),size:`md`,class:`board-settings-repo-pick`,"aria-label":(`tl`in e?e.tl:a(Y))(`Repository`,`Dépôt`)},null,8,[`modelValue`,`items`,`aria-label`])):c(``,!0),a(H).length?(l(),u(`label`,Mc,[C(S(`input`,{"onUpdate:modelValue":n[4]||=e=>O(ee)?ee.value=e:null,type:`checkbox`},null,512),[[A,a(ee)]]),t(y((`tl`in e?e.tl:a(Y))(`Only what differs`,`Seulement ce qui diffère`)),1)])):(l(),u(`p`,Nc,y((`tl`in e?e.tl:a(Y))(`No repository on this board yet.`,`Aucun dépôt sur ce board pour l’instant.`)),1))])):c(``,!0),a(I)?(l(),u(`p`,Pc,y((`tl`in e?e.tl:a(Y))(`Machine offline. Settings cannot be read.`,`Machine hors ligne. Impossible de lire les réglages.`)),1)):a(M)&&!a(F)?(l(),u(`p`,Fc,y((`t`in e?e.t:a(J))(`Loading…`)),1)):a(N)&&!a(F)?(l(),u(`div`,Ic,[S(`p`,null,y((`tl`in e?e.tl:a(Y))(`Could not read settings`,`Impossible de lire les réglages`))+` · `+y(a(N)),1),h(i,{color:`neutral`,variant:`outline`,onClick:R},{default:E(()=>[t(y((`tl`in e?e.tl:a(Y))(`Retry`,`Réessayer`)),1)]),_:1})])):a(F)?(l(),u(_,{key:4},[(l(!0),u(_,null,d(a(F).problems,(e,t)=>(l(),u(`p`,{key:t,class:`board-note error`,role:`alert`},y(e),1))),128)),a(T)===`repo`&&a(ee)&&!a(z).length?(l(),u(`p`,Lc,y((`tl`in e?e.tl:a(Y))(`Nothing differs here: this repository follows your defaults.`,`Rien ne diffère ici : ce dépôt suit tes valeurs par défaut.`)),1)):c(``,!0),(l(!0),u(_,null,d(a(z),e=>(l(),u(`section`,{key:e.theme,class:`board-settings-group`,"data-theme":e.theme},[S(`h3`,null,y(a(Hs)(e.theme)),1),(l(!0),u(_,null,d(e.rows,e=>(l(),o(p,{key:`${a(P)}|${e.name}`,row:e,rows:a(ie),machine:a(x),repo:a(P),agents:a(F).agents,busy:a(te)===e.name,disabled:!!(a(te)&&a(te)!==e.name)||a(I),error:a(j)[e.name],change:t=>ae(e,t)},null,8,[`row`,`rows`,`machine`,`repo`,`agents`,`busy`,`disabled`,`error`,`change`]))),128))],8,Rc))),128)),a(B)?(l(),u(`button`,{key:1,type:`button`,class:`board-more`,onClick:n[5]||=e=>ee.value=!1},y((`tl`in e?e.tl:a(Y))(`Show the ${a(B)} inherited settings`,`Afficher les ${a(B)} réglages hérités`)),1)):c(``,!0)],64)):c(``,!0)])],64))],14,fc)}}}),[[`__scopeId`,`data-v-a0e2aeec`]]),{__name:`BoardSettings`}),Bc={class:`field-label`},Vc=[`data-machine`,`onClick`],Hc={class:`machine-choice-name`},Uc={class:`field-label`,for:`new-task-repo`},Wc={id:`new-task-type-label`,class:`field-label`},Gc={class:`segmented`,role:`group`,"aria-labelledby":`new-task-type-label`,"aria-describedby":`new-task-type-help`,style:{"--segment-count":3}},Kc=[`aria-pressed`,`data-task-type`,`onClick`],qc={id:`new-task-type-help`,class:`muted`},Jc={class:`field-label`,for:`new-task-title`},Yc={class:`field-label`,for:`new-task-desc`},Xc={class:`muted`},Zc=[`open`],Qc={class:`field-label`},$c={class:`field-label`,for:`new-task-plan`},el={id:`new-task-plan-help`,class:`muted`},tl={class:`toggle-row`},nl={class:`sheet-form`},rl={key:0,class:`form-error`},il=`\0home`,al=`\0other`,ol=Object.assign(ht(m({__name:`NewTaskSheet`,props:T({machines:{},repos:{},machine:{},repo:{}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:T([`added`],[`update:open`]),setup(n,{emit:r}){let i=n,f=r,p=g(n,`open`),m=s(``),x=s(il),C=s(``),T=s(``),D=s(``),k=s(`work`),A=e(()=>[{value:`work`,label:J(`Work`)},{value:`research`,label:J(`Research`)},{value:`chat`,label:Y(`Conversation`,`Conversation`)}]),ee=e(()=>k.value===`research`?J(`Produces a research report.`):k.value===`chat`?J(`Discuss with an agent, without changing code.`):J(`An agent carries out the task in the repo.`)),j=s(`inherit`),ne=s(!1),re=e(()=>[{value:`inherit`,label:Y(`Inherited value`,`Valeur héritée`)},{value:`you`,label:Y(`I approve`,`Je valide`)},{value:`reviewer`,label:Y(`The reviewer approves`,`Le relecteur valide`)}]),M=e(()=>j.value===`inherit`?Y(`Use inherited settings, which may already require a plan.`,`Suivre les réglages hérités, qui peuvent déjà demander un plan.`):j.value===`you`?Y(`You approve the plan before the task starts.`,`Tu valides le plan avant le début du travail.`):Y(`The reviewer approves the plan before the task starts.`,`Le relecteur valide le plan avant le début du travail.`)),P=s(!1),F=s(!1),I=s(``),L=e(()=>[{label:Y(`Home folder`,`Dossier personnel`),value:il},...(i.repos[m.value]||[]).map(e=>({label:e,value:e})),{label:Y(`Other repo or folder…`,`Autre dépôt ou dossier…`),value:al}]),R=e(()=>x.value===al?C.value.trim():x.value===il?``:x.value),ie=e(()=>N(R.value)!==null&&(x.value!==al||!!R.value));w(p,e=>{e&&(m.value=i.machine&&i.machines.includes(i.machine)?i.machine:i.machines[0]??``,x.value=i.repo||il,C.value=``,T.value=``,D.value=``,k.value=`work`,j.value=`inherit`,ne.value=!1,P.value=!1,I.value=``)},{immediate:!0}),w(m,()=>{x.value!==al&&x.value!==il&&!(i.repos[m.value]||[]).includes(x.value)&&(x.value=il)});async function z(){if(!F.value&&T.value.trim()){if(!ie.value){I.value=Y(`A repo’s name, or a folder’s path (/… or ~/…)`,`Le nom d’un dépôt, ou le chemin d’un dossier (/… ou ~/…)`);return}F.value=!0,I.value=``;try{let e=await q(`/api/tasks/add`,{machine:m.value,title:T.value,description:D.value,repo:R.value,delegate:P.value,type:k.value,...j.value===`inherit`?{}:{planApprove:j.value}});Fe(),Xe(e.msg||(P.value?Y(`Added, an agent is on it`,`Ajoutée, un agent s’en occupe`):Y(`Added to To do`,`Ajoutée à À faire`))),f(`added`,m.value),p.value=!1}catch(e){I.value=e.message}finally{F.value=!1}}}return(e,r)=>{let i=Et,s=we,f=Ee,g=ut,w=he,N=G;return l(),o(N,{open:p.value,"onUpdate:open":r[7]||=e=>p.value=e,title:(`tl`in e?e.tl:a(Y))(`New task`,`Nouvelle tâche`),tall:``},{footer:E(()=>[S(`div`,nl,[a(I)?(l(),u(`p`,rl,y(a(I)),1)):c(``,!0),h(w,{block:``,size:`xl`,color:`primary`,class:`launch-btn hw-cta`,icon:a(P)?`i-lucide-play`:`i-lucide-plus`,loading:a(F),disabled:!a(T).trim()||!a(m)&&n.machines.length===0||(`offlineView`in e?e.offlineView:a(K)),onClick:z},{default:E(()=>[t(y(a(P)?(`tl`in e?e.tl:a(Y))(`Add and start`,`Ajouter et lancer`):(`tl`in e?e.tl:a(Y))(`Add to To do`,`Ajouter à À faire`)),1)]),_:1},8,[`icon`,`loading`,`disabled`])])]),default:E(()=>[S(`form`,{class:`sheet-form new-task`,onSubmit:te(z,[`prevent`])},[n.machines.length>1?(l(),u(_,{key:0},[S(`span`,Bc,y((`t`in e?e.t:a(J))(`Machine`)),1),S(`div`,{class:`segmented`,style:b({"--segment-count":n.machines.length})},[(l(!0),u(_,null,d(n.machines,t=>(l(),u(`button`,{key:t,type:`button`,class:v({on:t===a(m)}),"data-machine":t||`local`,onClick:e=>m.value=t},[S(`span`,Hc,y((`machineName`in e?e.machineName:a(Re))(t)||(`hostLabel`in e?e.hostLabel:a(Ue))||(`t`in e?e.t:a(J))(`This machine`)),1)],10,Vc))),128))],4)],64)):c(``,!0),S(`label`,Uc,y((`tl`in e?e.tl:a(Y))(`Repo`,`Dépôt`)),1),h(i,{id:`new-task-repo`,modelValue:a(x),"onUpdate:modelValue":r[0]||=e=>O(x)?x.value=e:null,items:a(L),size:`xl`,class:`w-full`,ui:{content:`z-[30]`}},null,8,[`modelValue`,`items`]),a(x)===al?(l(),o(s,{key:1,modelValue:a(C),"onUpdate:modelValue":r[1]||=e=>O(C)?C.value=e:null,size:`xl`,class:`w-full mono`,autocapitalize:`none`,autocorrect:`off`,spellcheck:!1,placeholder:(`tl`in e?e.tl:a(Y))(`Repo name, or /path/to/folder`,`Nom du dépôt, ou /chemin/du/dossier`),maxlength:`500`,"aria-label":(`tl`in e?e.tl:a(Y))(`Repo or folder`,`Dépôt ou dossier`)},null,8,[`modelValue`,`placeholder`,`aria-label`])):c(``,!0),S(`span`,Wc,y((`t`in e?e.t:a(J))(`Task type`)),1),S(`div`,Gc,[(l(!0),u(_,null,d(a(A),e=>(l(),u(`button`,{key:e.value,type:`button`,class:v({on:a(k)===e.value}),"aria-pressed":a(k)===e.value,"data-task-type":e.value,onClick:t=>k.value=e.value},y(e.label),11,Kc))),128))]),S(`p`,qc,y(a(ee)),1),S(`label`,Jc,y((`tl`in e?e.tl:a(Y))(`Title`,`Titre`)),1),h(s,{id:`new-task-title`,modelValue:a(T),"onUpdate:modelValue":r[2]||=e=>O(T)?T.value=e:null,size:`xl`,class:`w-full`,maxlength:a(300),enterkeyhint:`next`,placeholder:(`tl`in e?e.tl:a(Y))(`E.g. Dark mode toggle in Settings`,`Ex. Bouton de thème sombre dans les réglages`)},null,8,[`modelValue`,`maxlength`,`placeholder`]),S(`label`,Yc,[t(y((`tl`in e?e.tl:a(Y))(`Description`,`Description`))+` `,1),S(`span`,Xc,y((`t`in e?e.t:a(J))(`(optional)`)),1)]),h(f,{id:`new-task-desc`,modelValue:a(D),"onUpdate:modelValue":r[3]||=e=>O(D)?D.value=e:null,rows:4,autoresize:``,maxrows:12,size:`xl`,class:`w-full`,maxlength:a(de),placeholder:(`tl`in e?e.tl:a(Y))(`What the agent needs to know: the goal, where to look, how to check it`,`Ce que l’agent doit savoir : le but, où regarder, comment vérifier`)},null,8,[`modelValue`,`maxlength`,`placeholder`]),S(`details`,{open:a(ne),onToggle:r[5]||=e=>ne.value=e.target.open},[S(`summary`,Qc,y((`tl`in e?e.tl:a(Y))(`Options`,`Options`)),1),S(`label`,$c,y((`tl`in e?e.tl:a(Y))(`Plan before work`,`Plan avant le travail`)),1),h(i,{id:`new-task-plan`,modelValue:a(j),"onUpdate:modelValue":r[4]||=e=>O(j)?j.value=e:null,items:a(re),size:`xl`,class:`w-full`,ui:{content:`z-[30]`},"aria-describedby":`new-task-plan-help`},null,8,[`modelValue`,`items`]),S(`p`,el,y(a(M)),1)],40,Zc),S(`label`,tl,[S(`span`,null,[S(`b`,null,y((`tl`in e?e.tl:a(Y))(`Start now`,`Lancer tout de suite`)),1),S(`small`,null,y(a(P)?(`tl`in e?e.tl:a(Y))(`an agent is put on it at once`,`un agent s’en occupe tout de suite`):(`tl`in e?e.tl:a(Y))(`it waits under To do until you start it`,`elle attend dans À faire jusqu’à ce que tu la lances`)),1)]),h(g,{modelValue:a(P),"onUpdate:modelValue":r[6]||=e=>O(P)?P.value=e:null,color:`success`,size:`xl`},null,8,[`modelValue`])]),r[8]||=S(`button`,{type:`submit`,hidden:``},null,-1)],32)]),_:1},8,[`open`,`title`])}}}),[[`__scopeId`,`data-v-247f57ac`]]),{__name:`NewTaskSheet`}),sl=`boardDone`,cl=e=>e===`1`,ll=e=>e?`1`:`0`,ul=e=>fe.filter(t=>e||t!==`done`),dl=(e,t)=>e===`done`&&!t?`needs`:e;function fl(e,t,n,r){let i=e===`done`&&!n?t.slice(0,r):t;return{cards:i,hidden:t.length-i.length}}var pl=e=>[...e].sort((e,t)=>B(e.task,t.task));function ml(e,t){return{wide:e>=900,sideBySide:e-t>=640}}var hl={class:`top bar board-top`},gl={class:`board-new-label`},_l={class:`board-coord-label`},vl={class:`board-coord-label`},yl={key:0,class:`board-autopilots`},bl={key:0,class:`board-autopilots-machine`},xl={key:1,class:`notice board-notice`},Sl={key:2,class:`board-empty board-slow`,role:`status`},Cl={key:4,class:`board-notes`},wl={key:0,class:`board-note`,role:`status`},Tl={class:`board-tools`},El=[`title`],Dl={class:`cached-tag-word`},Ol=[`aria-label`],kl=[`aria-pressed`],Al=[`aria-pressed`],jl={class:`board-grouping board-archived-toggle`},Ml=[`aria-pressed`,`disabled`],Nl=[`aria-label`],Pl=[`aria-pressed`,`onClick`],Fl=[`aria-pressed`,`aria-label`,`title`],Il={key:0,class:`board-grid-head`},Ll={class:`pp-count`},Rl=[`aria-pressed`,`aria-label`,`title`],zl=[`data-machine`],Bl=[`aria-expanded`,`aria-label`,`onClick`],Vl={class:`board-head-name`},Hl={class:`board-head-sum`},Ul={key:0,class:`board-head-done`},Wl={class:`board-machine-error`,role:`status`},Gl={class:`board-head-actions`},Kl=[`data-repo`],ql=[`aria-expanded`,`aria-label`,`onClick`],Jl={class:`board-head-name`},Yl={class:`board-head-sum`},Xl={key:0,class:`board-head-done`},Zl={class:`board-head-actions`},Ql={key:0,class:`board-repo-cols board-cells`},$l=[`data-group`,`aria-label`],eu={class:`board-repo-col-body`},tu={key:0,class:`board-empty`},nu={key:0,class:`board-empty board-machine-empty`},ru={key:2,class:`board-cols board-cells`},iu=[`aria-label`],au={class:`board-col-body`},ou={key:0,class:`board-empty`},su=[`aria-label`],cu={class:`board-col-head archived`},lu={class:`pp-count`},uu={key:0},du={class:`board-archived-body`},fu={key:0,class:`board-empty`},pu={key:1,class:`board-empty`},mu=`boardColumn`,hu=`boardMachine`,gu=`boardGrouping`,_u=`boardFolds`,vu=Object.assign(ht(m({__name:`BoardView`,setup(i){let f=xe(),m=be(),{board:g,cachedAt:T,error:D,reads:k,reload:A}=St(),te=e(()=>!g.value&&!D.value&&!K.value),j=pt(te),ne=pt(te,1e4,0),re=s(0),M=ge(),N=e=>{try{return localStorage.getItem(e)}catch{return null}},P=(e,t)=>{try{localStorage.setItem(e,t)}catch{}},I=e(()=>(g.value?.machines||[]).filter(e=>e.status===`ready`)),L=e=>at(e,Re(e),Ue.value||J(`This machine`)),R=e=>e?new Date(e).toLocaleTimeString(Ge===`fr`?`fr-FR`:`en-US`,{hour:`2-digit`,minute:`2-digit`}):``,z=e(()=>(g.value?.machines||[]).filter(e=>e.status===`missing`||e.status===`old`||e.status===`shepherdr`)),B=e(()=>(g.value?.machines||[]).filter(e=>e.status===`disabled`)),oe=e(()=>(g.value?.machines.length||0)>1),se=e(()=>(g.value?.machines||[]).filter(e=>e.status===`ready`||e.status===`error`||e.tasks.length||e.error||e.stale)),V=s(it(N(hu)));w([ot,se,lt],()=>{let e=rt.update(ot.value,se.value.map(e=>e.machine),lt.value);e!==void 0&&(V.value=e)},{immediate:!0});let H=e(()=>nt(V.value,se.value.map(e=>e.machine),lt.value)),le=e(()=>ct(H.value,lt.value)),U=e=>le.value===null||le.value.includes(e),de=e(()=>oe.value&&(le.value===null||le.value.length>1)),pe=e(()=>et(se.value.map(e=>e.machine),L,Y(`All machines`,`Toutes les machines`),lt.value,Y(`Groups`,`Groupes`),Y(`Machines`,`Machines`)));function me(e){V.value=it(e),rt.manual(V.value),P(hu,e)}let _e=e(()=>se.value.filter(e=>U(e.machine))),W=Ae(gu,e=>[`global`,`status`].includes(e||``)?`global`:`repo`,e=>e);function G(e){W.value=e}let we=(e,t)=>({key:`${e.machine}|${t.id}`,machine:e.machine,task:t,stale:!!(e.stale||t.stale),readAt:t.stale?t.readAt:e.at}),Te=r(new Set),Ee=(e,t)=>{let n=new Set(Te.value);t?n.add(e):n.delete(e),Te.value=n};w(g,e=>{if(!e||!Te.value.size)return;let t=new Set(e.machines.flatMap(e=>e.tasks.filter(e=>!e.archived).map(t=>`${e.machine}|${t.id}`))),n=[...Te.value].filter(e=>t.has(e));n.length!==Te.value.size&&(Te.value=new Set(n))});let De=e(()=>se.value.flatMap(e=>F(e.tasks.filter(t=>!t.archived&&!Te.value.has(`${e.machine}|${t.id}`))).map(t=>we(e,t)))),Oe=e(()=>De.value.filter(e=>U(e.machine))),ke=Ae(sl,cl,ll),je=s(!1),Me=e(()=>Oe.value.filter(e=>e.task.group===`done`).length);function Ne(){ke.value=!ke.value,ke.value?ft.value||_t(`done`):je.value=!1,Fe()}let Pe=e(()=>ke.value?Y(`Hide done tasks`,`Masquer les tâches faites`):Y(`Show done tasks (${Me.value})`,`Afficher les tâches faites (${Me.value})`)),Ie=e(()=>ul(ke.value)),Le=e(()=>Ie.value.map(e=>{let t=Oe.value.filter(t=>t.task.group===e),n=e===`done`?pl(t):t;return{id:e,label:wt(e),total:n.length,...fl(e,n,je.value,5)}})),ze=e(()=>({"--board-cols":`repeat(${Le.value.length}, minmax(0, 1fr))`})),Be=Ae(_u,e=>{try{let t=JSON.parse(e||`[]`);return new Set(Array.isArray(t)?t.map(String):[])}catch{return new Set}},e=>JSON.stringify([...e].slice(-200)));function Ve(e){let t=new Set(Be.value);t.delete(e)||t.add(e),Be.value=t}function He(e){let t=ae(e),n=[`needs`,`ready`,`working`,`todo`].filter(e=>t[e]).map(e=>`${t[e]} ${wt(e).toLowerCase()}`),r=t.done?Y(`${t.done} done`,`${t.done} fait${t.done>1?`s`:``}`):``;return{main:n.join(` · `)||(r?``:Y(`no task`,`aucune tâche`)),done:r}}let We=e(()=>_e.value.map(e=>{let t=e.tasks.filter(t=>!t.archived&&!Te.value.has(`${e.machine}|${t.id}`));return{machine:e.machine,trouble:!!(e.status===`error`||e.error||e.stale),error:e.error||Y(`No answer yet`,`Pas encore de réponse`),at:e.at,summary:He(t),repos:[...new Set([...t.map(e=>e.repo),...(M.value.find(t=>t.machine===e.machine)?.repos||[]).map(e=>e.repo)])].sort().map(n=>{let r=F(t.filter(e=>e.repo===n)),i=Ie.value.map(t=>{let n=r.filter(e=>e.group===t).map(t=>we(e,t));return{id:t,label:wt(t),total:n.length,...fl(t,n,je.value,3)}});return{repo:n,summary:He(r),cols:i}})}})),Ke=e(()=>Object.fromEntries(se.value.map(e=>[e.machine,[...new Set(e.tasks.map(e=>e.repo))].sort()]))),qe=s(null),Je=s(null),Ye=s(0),Qe=s(!1),ut=null;p(()=>{qe.value&&typeof ResizeObserver<`u`&&(ut=new ResizeObserver(()=>{let e=qe.value;Ye.value=e.clientWidth,Qe.value=ml(window.innerWidth-e.getBoundingClientRect().left,Je.value.getBoundingClientRect().width).sideBySide}),ut.observe(qe.value),ut.observe(Je.value),ut.observe(document.documentElement))}),n(()=>ut?.disconnect());let dt=e(()=>Ze.value&&Qe.value),ft=e(()=>Ze.value&&ml(Ye.value,0).wide);function mt(){let e=N(mu);return fe.includes(e)?e:`needs`}let ht=s(mt()),gt=e(()=>dl(ht.value,ke.value));function _t(e){ht.value=e,P(mu,e)}let Z=r(null),vt=r(null),yt=s(!1);function bt(e){vt.value=e,yt.value=!0}function xt(e){let t=ot.value;X(e);let n=tt(e,H.value,ot.value,lt.value);(n!==void 0||t!==ot.value)&&(rt.followTab(ot.value),V.value=n??V.value,rt.manual(V.value),P(hu,$e(V.value)))}function Ct(e){vt.value=e,Tt(e.machine,e.task.id),Fe()}function Tt(e,t){let n=Z.value;(n?.kind!==`task`||n.machine!==e||n.id!==t||Ot.value?.mode)&&(Z.value={machine:e,kind:`task`,id:t,mode:Ot.value?.id===t?Ot.value.mode:void 0}),xt(e)}let Dt=e(()=>{let e=vt.value;return e?De.value.find(t=>t.key===e.key)?.task||Q.value.find(t=>t.key===e.key)?.task||(Te.value.has(e.key)?{...e.task,archived:!0}:e.task):null}),Ot=s(null),kt=s(!1);w(()=>m.query,e=>{if(e.coordinator||`task`in e&&e.task||!(`machine`in e))return;let t=e.machine;(typeof t==`string`||t===null)&&me($e(t??``)),f.replace({query:{}})},{immediate:!0}),w(()=>m.query.task,e=>{if(typeof e!=`string`||!e)return;let t=typeof m.query.machine==`string`?m.query.machine:null,n=m.query.now===`1`,r=m.query.view??m.query.tab;Ot.value={machine:t,id:e,mode:r===`chat`||r===`term`?r:void 0},kt.value=!1,f.replace({query:{}});let i=De.value.filter(n=>n.task.id===e&&(t===null||n.machine===t));i.length===1?Ct(i[0]):n&&t!==null&&Tt(t,e)},{immediate:!0}),w([Ot,g,k],()=>{let e=Ot.value;if(!e||!g.value||!k.value)return;let t=De.value.filter(t=>t.task.id===e.id&&(e.machine===null||t.machine===e.machine)),n=e=>g.value.machines.some(t=>t.machine===e&&t.status===`ready`&&!t.error&&!t.stale);if(t.length===1){Ct(t[0]),Ot.value=null;return}if(e.machine!==null&&!n(e.machine)){kt.value||Xe(Y(`${L(e.machine)} cannot be read now: its task opens once it answers`,`${L(e.machine)} ne peut pas être lue pour l’instant : sa tâche s’ouvre dès qu’elle répond`),!0),kt.value=!0;return}Ot.value=null;let r=Z.value;r?.kind===`task`&&r.id===e.id&&(e.machine===null||r.machine===e.machine)&&(Z.value=null),At(e)});async function At(e){let t=se.value.filter(t=>t.status===`ready`&&(e.machine===null||t.machine===e.machine)).map(e=>e.machine),n=(await Promise.all(t.map(e=>q(`/api/tasks/archived?machine=${encodeURIComponent(e)}`).catch(()=>null)))).flatMap(t=>t?t.tasks.filter(t=>t.id===e.id).map(e=>we({machine:t.machine},e)):[]);if(n.length===1)return bt(n[0]);Xe(Y(`That task is no longer on the Board`,`Cette tâche n’est plus sur le Board`),!0)}let jt=s(!1),Mt=r([]),Nt=s(!1),It=0;async function Rt(){if(!jt.value)return;let e=++It;Nt.value=!0;let t=se.value.filter(e=>e.status===`ready`).map(e=>e.machine),n=await Promise.all(t.map(e=>q(`/api/tasks/archived?machine=${encodeURIComponent(e)}`).then(t=>({machine:e,tasks:t.tasks})).catch(t=>({machine:e,tasks:[],error:t.message}))));e===It&&(Mt.value=n,Nt.value=!1)}function zt(){jt.value=!jt.value,jt.value&&Rt()}let Q=e(()=>Mt.value.filter(e=>U(e.machine)).flatMap(e=>e.tasks.map(t=>we({machine:e.machine},t)))),Bt=e(()=>Mt.value.filter(e=>e.error&&U(e.machine)));function Vt(e,t){Ee(`${e}|${t.id}`,!0);let n=Z.value;n?.kind===`task`&&n.machine===e&&n.id===t.id&&(Z.value=null);let r=ie(t.id,t.repoKey);Xe(Y(`${r} archived`,`${r} archivée`),!1,void 0,{label:Y(`Restore`,`Restaurer`),icon:`i-lucide-archive-restore`,run:()=>Ht(e,t)}),A().then(Rt)}async function Ht(e,t){try{await q(`/api/tasks/action`,{machine:e,id:t.id,action:`restore`}),Fe(),Xe(Y(`${ie(t.id,t.repoKey)} restored`,`${ie(t.id,t.repoKey)} restaurée`)),Ut(e,t)}catch(e){Xe(e.message,!0)}}function Ut(e,t){Ee(`${e}|${t.id}`,!1),Mt.value=Mt.value.map(n=>n.machine===e?{...n,tasks:n.tasks.filter(e=>e.id!==t.id)}:n),A().then(Rt)}let Wt=s(!1),Gt=s({});function Kt(e,t){Gt.value={machine:e??(le.value?.length===1?le.value[0]:Z.value?.machine),repo:t},Wt.value=!0}function qt(){setTimeout(A,1500)}function Jt(e,t){Qt(e)||(Z.value={machine:e,kind:`coordinator`,to:t},Fe())}w(()=>m.query.coordinator,e=>{typeof e==`string`&&e&&(Z.value={machine:typeof m.query.machine==`string`?m.query.machine:``,kind:`coordinator`,to:{kind:`project`,repo:e},freshProject:!0},f.replace({query:{}}))},{immediate:!0});let Yt=(e,t)=>ce(t,L(e)),Xt=[{kind:`machine`}],Zt=e(()=>g.value?.machines||[]),Qt=e=>{let t=Zt.value.find(t=>t.machine===e);return t?ye(t,K.value):Y(`Machine unavailable`,`Machine indisponible`)},$t=(e,t)=>[ve(t),Qt(e)].filter(Boolean).join(` `),en=e(()=>[Zt.value.map(e=>({label:L(e.machine),description:$t(e.machine,{kind:`main`}),disabled:!!Qt(e.machine),icon:`i-lucide-server`,onSelect:()=>Jt(e.machine,{kind:`main`})}))]),tn=e(()=>!!g.value&&!Zt.value.some(e=>!Qt(e.machine))),nn=(e,t)=>{let n=Z.value;return!n||n.kind!==`coordinator`||n.machine!==e||n.to.kind!==t.kind?!1:t.kind!==`project`||n.to.kind===`project`&&n.to.repo===t.repo},rn=e(()=>{let e=Z.value;return e?.kind===`task`&&(De.value.find(t=>t.machine===e.machine&&t.task.id===e.id)?.task||vt.value?.task)||null}),an=s(``),on=e(()=>Z.value?.kind===`task`?`${Z.value.machine}|${Z.value.id}`:``),$=e(()=>on.value||(Z.value||dt.value?``:an.value));w(Z,e=>{Pt.value=e?.kind===`task`?{machine:e.machine,id:e.id}:null,e&&(an.value=on.value)},{immediate:!0}),n(()=>{Pt.value=null}),w(()=>[$.value,De.value.find(e=>e.key===$.value)?.task.group],([e,t])=>{e&&t&&(!ft.value&&fe.includes(t)&&(t!==`done`||ke.value)&&(ht.value=t),x(()=>qe.value?.querySelector(`.task-card.sel`)?.scrollIntoView?.({block:`nearest`,inline:`nearest`})))},{immediate:!0}),w(g,e=>{Z.value&&e&&!e.machines.some(e=>e.machine===Z.value.machine)&&(Z.value=null)});function sn(e,t){Jt(e,{kind:`project`,repo:t.repo})}function ln(e,t){Z.value={machine:e,kind:`task`,id:t.id,chat:!0},Fe()}function un(){let e=Z.value;if(e?.kind!==`task`)return;let t=De.value.find(t=>t.machine===e.machine&&t.task.id===e.id)||vt.value;t&&bt(t)}let dn=e(()=>{let e=Z.value;return e?e.kind===`task`?`t|${e.machine}|${e.id}`:`c|${e.machine}|${e.to.kind}|${e.to.kind===`project`?e.to.repo:``}`:``});function fn(){let e=Z.value;e?.kind===`task`&&De.value.some(t=>t.machine===e.machine&&t.task.id===e.id)&&un(),Z.value=null}let pn=r(null);function gn(e,t){let n=st(e,I.value.map(e=>e.machine),lt.value);pn.value={machines:n,...t?{repo:t}:{}},Z.value=null,Fe()}w(Z,e=>{e&&(pn.value=null)});let _n=s(null);w(()=>m.query.settings,e=>{e===void 0||Array.isArray(e)||(_n.value=e??``,f.replace({query:{}}))},{immediate:!0}),w([_n,g],([e,t])=>{e!==null&&t&&(_n.value=null,gn(e))},{immediate:!0});let vn=e(()=>Object.fromEntries(se.value.map(e=>[e.machine,[...new Set([...e.tasks.map(e=>e.repo),...(M.value.find(t=>t.machine===e.machine)?.repos||[]).map(e=>e.repo)])].filter(Boolean).sort()]))),yn=e=>I.value.some(t=>t.machine===e);function bn(){let e=history.state?.back;typeof e==`string`&&e.startsWith(`/`)&&e!==`/board`?f.back():Se(`/`,{replace:!0})}return(e,n)=>{let r=he,i=Lt,s=Ce,f=cn,p=mn,m=Ft,g=Et,x=ue,w=hn,k=$n,te=xs,M=zc,N=no,P=ol;return l(),u(`section`,{id:`board`,ref_key:`root`,ref:qe,class:v([`view board-view`,{"with-panel":(a(Z)||a(pn))&&a(dt),narrow:!a(ft),"board-cached":a(T)}])},[S(`div`,{ref_key:`panelSizer`,ref:Je,class:`board-panel-sizer`,"aria-hidden":`true`},null,512),S(`header`,hl,[h(r,{icon:`i-lucide-chevron-left`,color:`neutral`,variant:`ghost`,size:`lg`,class:`icon-btn`,"aria-label":(`t`in e?e.t:a(J))(`Back`),onClick:bn},null,8,[`aria-label`]),S(`h2`,null,y((`t`in e?e.t:a(J))(`Board`)),1),a(I).length?(l(),o(r,{key:0,icon:`i-lucide-plus`,color:`primary`,variant:`outline`,size:`md`,class:`board-new`,disabled:`offlineView`in e?e.offlineView:a(K),"aria-label":(`tl`in e?e.tl:a(Y))(`New task`,`Nouvelle tâche`),onClick:n[0]||=e=>Kt()},{default:E(()=>[S(`span`,gl,y((`tl`in e?e.tl:a(Y))(`New task`,`Nouvelle tâche`)),1)]),_:1},8,[`disabled`,`aria-label`])):c(``,!0),a(Zt).length===1?(l(),o(i,{key:1,text:$t(a(Zt)[0].machine,{kind:`main`})},{default:E(()=>[h(r,{color:`neutral`,variant:`outline`,size:`md`,class:v([`board-coord board-top-coord`,{on:nn(a(Zt)[0].machine,{kind:`main`})}]),icon:a(ft)?void 0:`i-lucide-message-square-text`,disabled:!!Qt(a(Zt)[0].machine),onClick:n[1]||=e=>Jt(a(Zt)[0].machine,{kind:`main`}),"aria-label":Yt(a(Zt)[0].machine,{kind:`main`})},{default:E(()=>[S(`span`,_l,y(Yt(a(Zt)[0].machine,{kind:`main`})),1)]),_:1},8,[`icon`,`class`,`disabled`,`aria-label`])]),_:1},8,[`text`])):a(Zt).length>1?(l(),o(s,{key:2,items:a(en),content:{align:`end`,sideOffset:6},ui:{content:`hw-dropdown board-coord-menu`,itemLabel:`whitespace-normal`,itemDescription:`whitespace-normal`}},{default:E(()=>[h(i,{text:(`coordinatorDescription`in e?e.coordinatorDescription:a(ve))({kind:`main`})},{default:E(()=>[h(r,{color:`neutral`,variant:`outline`,size:`md`,class:`board-coord board-top-coord`,icon:a(ft)?void 0:`i-lucide-message-square-text`,"aria-label":(`coordinatorLabel`in e?e.coordinatorLabel:a(ce))({kind:`main`},``),"trailing-icon":`i-lucide-chevron-down`},{default:E(()=>[S(`span`,vl,y((`coordinatorLabel`in e?e.coordinatorLabel:a(ce))({kind:`main`},``)),1)]),_:1},8,[`icon`,`aria-label`])]),_:1},8,[`text`])]),_:1},8,[`items`])):c(``,!0),h(r,{icon:`i-lucide-refresh-cw`,color:`neutral`,variant:`ghost`,size:`lg`,class:`icon-btn board-filter`,"aria-label":(`tl`in e?e.tl:a(Y))(`Refresh`,`Actualiser`),disabled:`offlineView`in e?e.offlineView:a(K),onClick:n[2]||=e=>{re.value++,a(A)()}},null,8,[`aria-label`,`disabled`])]),a(Zt).length&&!(`offlineView`in e?e.offlineView:a(K))?(l(),u(`div`,yl,[(l(!0),u(_,null,d(a(Zt),e=>(l(),u(`div`,{key:e.machine},[a(Zt).length>1?(l(),u(`span`,bl,y(L(e.machine)),1)):c(``,!0),h(f,{machine:e.machine,to:{kind:`main`},disabled:!!Qt(e.machine)},null,8,[`machine`,`disabled`])]))),128))])):c(``,!0),a(D)?(l(),u(`div`,xl,y(a(D)),1)):a(ne)?(l(),u(`p`,Sl,[t(y((`tl`in e?e.tl:a(Y))(`herdr-projects is not answering`,`herdr-projects ne répond pas`))+` · `,1),S(`button`,{type:`button`,class:`board-retry`,onClick:n[3]||=(...e)=>a(A)&&a(A)(...e)},y((`t`in e?e.t:a(J))(`Retry`)),1)])):a(j)?(l(),o(p,{key:3,wide:a(ft),groups:a(Le).map(e=>e.id)},null,8,[`wide`,`groups`])):c(``,!0),a(tn)||a(z).length||a(B).length?(l(),u(`div`,Cl,[a(tn)?(l(),u(`p`,wl,y((`tl`in e?e.tl:a(Y))(`No Coordinator can be reached now. See each machine’s availability.`,`Aucun Coordinateur n’est joignable pour l’instant. Consulte la disponibilité de chaque machine.`)),1)):c(``,!0),(l(!0),u(_,null,d(a(z),t=>(l(),o(m,{key:t.machine,status:t.status,version:t.version||null,machine:a(oe)?(`machineName`in e?e.machineName:a(Re))(t.machine)||(`hostLabel`in e?e.hostLabel:a(Ue))||(`t`in e?e.t:a(J))(`This machine`):void 0},null,8,[`status`,`version`,`machine`]))),128)),(l(!0),u(_,null,d(a(B),t=>(l(),u(`p`,{key:t.machine,class:`board-note`},y((`tl`in e?e.tl:a(Y))(`herdr-projects is disabled in Herdr${a(oe)?` on ${(`machineName`in e?e.machineName:a(Re))(t.machine)}`:``}: herdr plugin enable herdr-projects`,`herdr-projects est désactivé dans Herdr${a(oe)?` sur ${(`machineName`in e?e.machineName:a(Re))(t.machine)}`:``} : herdr plugin enable herdr-projects`)),1))),128))])):c(``,!0),a(se).length&&!a(j)?(l(),u(_,{key:5},[S(`div`,Tl,[a(se).length>1?(l(),o(g,{key:0,"model-value":(`boardScopeValue`in e?e.boardScopeValue:a($e))(a(H)),items:a(pe),size:`sm`,class:`board-scope`,"aria-label":(`tl`in e?e.tl:a(Y))(`Machines shown`,`Machines affichées`),"onUpdate:modelValue":n[4]||=e=>me(String(e))},null,8,[`model-value`,`items`,`aria-label`])):c(``,!0),a(T)?(l(),u(`span`,{key:1,class:`cached-tag board-cached-tag`,role:`status`,title:(`tl`in e?e.tl:a(Y))(`Kept on this device, as read at ${R(a(T))}; being read again`,`Gardé sur cet appareil, lu à ${R(a(T))} ; relecture en cours`)},[S(`span`,Dl,y(`${(`tl`in e?e.tl:a(Y))(`Read at`,`Lu à`)} `),1),t(y(R(a(T))),1)],8,El)):c(``,!0),a(I).length?(l(),o(r,{key:2,icon:`i-lucide-settings`,color:`neutral`,variant:`outline`,size:`sm`,class:v([`icon-btn board-settings-open`,{on:a(pn)&&!a(pn).repo}]),disabled:`offlineView`in e?e.offlineView:a(K),"aria-label":(`tl`in e?e.tl:a(Y))(`Board settings`,`Réglages du board`),title:(`tl`in e?e.tl:a(Y))(`Board settings`,`Réglages du board`),onClick:n[5]||=e=>gn(a(H))},null,8,[`class`,`disabled`,`aria-label`,`title`])):c(``,!0),S(`div`,{class:`board-grouping`,role:`group`,"aria-label":(`tl`in e?e.tl:a(Y))(`View`,`Vue`)},[S(`button`,{type:`button`,class:v({on:a(W)===`global`}),"aria-pressed":a(W)===`global`,onClick:n[6]||=e=>G(`global`)},y((`tl`in e?e.tl:a(Y))(`Global`,`Global`)),11,kl),S(`button`,{type:`button`,class:v({on:a(W)===`repo`}),"aria-pressed":a(W)===`repo`,onClick:n[7]||=e=>G(`repo`)},y((`tl`in e?e.tl:a(Y))(`By repo`,`Par dépôt`)),11,Al)],8,Ol),S(`div`,jl,[S(`button`,{type:`button`,class:v({on:a(jt)}),"aria-pressed":a(jt),disabled:`offlineView`in e?e.offlineView:a(K),onClick:zt},[h(x,{name:`i-lucide-archive`}),t(y((`tl`in e?e.tl:a(Y))(`Archived`,`Archivées`)),1)],10,Ml)])]),a(ft)?c(``,!0):(l(),u(`div`,{key:0,class:`board-seg tasks`,style:b({gridTemplateColumns:`repeat(${a(Le).length}, minmax(0, 1fr)) auto`}),role:`group`,"aria-label":(`t`in e?e.t:a(J))(`Board`)},[(l(!0),u(_,null,d(a(Le),e=>(l(),u(`button`,{key:e.id,type:`button`,class:v([`board-seg-btn`,[e.id,{on:a(gt)===e.id}]]),"aria-pressed":a(gt)===e.id,onClick:t=>_t(e.id)},[S(`span`,null,y(e.label),1),S(`b`,null,y(e.total),1)],10,Pl))),128)),S(`button`,{type:`button`,class:v([`board-seg-btn board-done-toggle`,{shown:a(ke)}]),"aria-pressed":a(ke),"aria-label":a(Pe),title:a(Pe),onClick:Ne},[a(ke)?(l(),o(x,{key:0,name:`i-lucide-eye-off`,class:`board-done-icon`})):(l(),u(_,{key:1},[S(`span`,null,y((`taskGroupLabel`in e?e.taskGroupLabel:a(wt))(`done`)),1),S(`b`,null,[h(x,{name:`i-lucide-eye`,class:`board-done-icon`}),t(y(a(Me)),1)])],64))],10,Fl)],12,Nl)),S(`div`,{class:v([`board-grid`,{desk:a(ft),lanes:a(W)===`repo`}]),style:b(a(ze))},[a(ft)?(l(),u(`div`,Il,[(l(!0),u(_,null,d(a(Le),(t,n)=>(l(),u(`h3`,{key:t.id,class:v([`board-col-head`,t.id])},[S(`span`,null,y(t.label),1),S(`span`,Ll,y(t.total),1),n===a(Le).length-1?(l(),u(`button`,{key:0,type:`button`,class:v([`board-done-toggle`,{shown:a(ke)}]),"aria-pressed":a(ke),"aria-label":a(Pe),title:a(Pe),onClick:Ne},[h(x,{name:a(ke)?`i-lucide-eye-off`:`i-lucide-eye`,class:`board-done-icon`},null,8,[`name`]),S(`span`,null,y(a(ke)?(`tl`in e?e.tl:a(Y))(`Hide`,`Masquer`):`${(`taskGroupLabel`in e?e.taskGroupLabel:a(wt))(`done`)} · ${a(Me)}`),1)],10,Rl)):c(``,!0)],2))),128))])):c(``,!0),a(W)===`repo`||a(We).some(e=>e.trouble)?(l(!0),u(_,{key:1},d(a(We).filter(e=>a(W)===`repo`||e.trouble),s=>(l(),u(`section`,{key:s.machine||`local`,class:`board-machine`,"data-machine":s.machine||`local`},[S(`div`,{class:v([`board-head machine`,{talking:nn(s.machine,{kind:`main`})||nn(s.machine,{kind:`machine`})}])},[S(`button`,{type:`button`,class:`board-fold`,"aria-expanded":!a(Be).has(`m:${s.machine}`),"aria-label":(`tl`in e?e.tl:a(Y))(`Fold`,`Replier`),onClick:e=>Ve(`m:${s.machine}`)},[h(x,{name:a(Be).has(`m:${s.machine}`)?`i-lucide-chevron-right`:`i-lucide-chevron-down`},null,8,[`name`])],8,Bl),S(`p`,Vl,[S(`b`,null,y(L(s.machine)),1),S(`span`,Hl,[t(y(s.summary.main),1),s.summary.done?(l(),u(`span`,Ul,y(s.summary.main?` · `:``)+y(s.summary.done),1)):c(``,!0)]),s.trouble?(l(),o(i,{key:0,text:s.error},{default:E(()=>[S(`span`,Wl,y(s.at?(`tl`in e?e.tl:a(Y))(`unreachable · read at ${R(s.at)}`,`injoignable · lu à ${R(s.at)}`):(`tl`in e?e.tl:a(Y))(`unreachable`,`injoignable`)),1)]),_:2},1032,[`text`])):c(``,!0)]),S(`div`,Gl,[(l(),u(_,null,d(Xt,e=>h(i,{key:e.kind,text:$t(s.machine,e)},{default:E(()=>[h(r,{color:`neutral`,variant:`outline`,size:`sm`,class:v([`board-coord`,{on:nn(s.machine,e)}]),disabled:!!Qt(s.machine),"aria-description":Qt(s.machine)||void 0,onClick:t=>Jt(s.machine,e)},{default:E(()=>[t(y(Yt(s.machine,e)),1)]),_:2},1032,[`class`,`disabled`,`aria-description`,`onClick`])]),_:2},1032,[`text`])),64)),h(f,{machine:s.machine,to:{kind:`machine`},disabled:!!Qt(s.machine),compact:``},null,8,[`machine`,`disabled`])])],2),a(W)===`repo`&&!a(Be).has(`m:${s.machine}`)?(l(),u(_,{key:0},[(l(!0),u(_,null,d(s.repos,p=>(l(),u(`section`,{key:p.repo,class:`board-repo`,"data-repo":p.repo},[S(`div`,{class:v([`board-head repo`,{talking:nn(s.machine,{kind:`project`,repo:p.repo})}])},[S(`button`,{type:`button`,class:`board-fold`,"aria-expanded":!a(Be).has(`r:${s.machine}|${p.repo}`),"aria-label":(`tl`in e?e.tl:a(Y))(`Fold`,`Replier`),onClick:e=>Ve(`r:${s.machine}|${p.repo}`)},[h(x,{name:a(Be).has(`r:${s.machine}|${p.repo}`)?`i-lucide-chevron-right`:`i-lucide-chevron-down`},null,8,[`name`])],8,ql),S(`p`,Jl,[S(`b`,null,y(p.repo),1),S(`span`,Yl,[t(y(p.summary.main),1),p.summary.done?(l(),u(`span`,Xl,y(p.summary.main?` · `:``)+y(p.summary.done),1)):c(``,!0)])]),S(`div`,Zl,[h(i,{text:$t(s.machine,{kind:`project`,repo:p.repo})},{default:E(()=>[h(r,{color:`neutral`,variant:`outline`,size:`sm`,class:v([`board-coord`,{on:nn(s.machine,{kind:`project`,repo:p.repo})}]),disabled:!!Qt(s.machine),"aria-description":Qt(s.machine)||void 0,onClick:e=>Jt(s.machine,{kind:`project`,repo:p.repo})},{default:E(()=>[t(y(Yt(s.machine,{kind:`project`,repo:p.repo})),1)]),_:2},1032,[`class`,`disabled`,`aria-description`,`onClick`])]),_:2},1032,[`text`]),h(f,{machine:s.machine,to:{kind:`project`,repo:p.repo},disabled:!!Qt(s.machine),compact:``},null,8,[`machine`,`to`,`disabled`]),h(w,{machine:s.machine,repo:p.repo,"machine-label":L(s.machine),tasks:a(se).find(e=>e.machine===s.machine)?.tasks||[],disabled:(`offlineView`in e?e.offlineView:a(K))||!yn(s.machine)||s.trouble,onRefresh:n[8]||=e=>a(A)().then(Rt)},null,8,[`machine`,`repo`,`machine-label`,`tasks`,`disabled`]),h(r,{icon:`i-lucide-settings`,color:`neutral`,variant:`outline`,size:`sm`,class:`board-head-add board-repo-settings`,disabled:(`offlineView`in e?e.offlineView:a(K))||!yn(s.machine),"aria-label":(`tl`in e?e.tl:a(Y))(`Repository settings: ${p.repo}`,`Réglages du dépôt : ${p.repo}`),title:(`tl`in e?e.tl:a(Y))(`Repository settings`,`Réglages du dépôt`),onClick:e=>gn(s.machine,p.repo)},null,8,[`disabled`,`aria-label`,`title`,`onClick`]),h(r,{icon:`i-lucide-plus`,color:`neutral`,variant:`outline`,size:`sm`,class:`board-head-add`,disabled:`offlineView`in e?e.offlineView:a(K),"aria-label":(`tl`in e?e.tl:a(Y))(`New task in ${p.repo}`,`Nouvelle tâche dans ${p.repo}`),onClick:e=>Kt(s.machine,p.repo)},null,8,[`disabled`,`aria-label`,`onClick`])])],2),a(Be).has(`r:${s.machine}|${p.repo}`)?c(``,!0):(l(),u(`div`,Ql,[(l(!0),u(_,null,d(p.cols,t=>C((l(),u(`section`,{key:t.id,class:v([`board-repo-col`,[t.id,{none:!t.total}]]),"data-group":t.id,"aria-label":t.label},[S(`div`,eu,[(l(!0),u(_,null,d(t.cards,e=>(l(),o(k,{key:e.key,task:e.task,stale:e.stale,"read-at":R(e.readAt),selected:e.key===a($),onOpen:t=>Ct(e)},null,8,[`task`,`stale`,`read-at`,`selected`,`onOpen`]))),128)),!a(ft)&&!t.total?(l(),u(`p`,tu,y((`t`in e?e.t:a(J))(`Nothing here`)),1)):c(``,!0),t.hidden?(l(),u(`button`,{key:1,type:`button`,class:`board-more`,onClick:n[9]||=e=>je.value=!0},y((`tl`in e?e.tl:a(Y))(`Show all (${t.hidden} more)`,`Tout afficher (${t.hidden} de plus)`)),1)):c(``,!0)])],10,$l)),[[ee,a(ft)||a(gt)===t.id]])),128))]))],8,Kl))),128)),s.repos.length?c(``,!0):(l(),u(`p`,nu,y((`tl`in e?e.tl:a(Y))(`No task yet: talk to the Coordinator at the top, or add one.`,`Aucune tâche : parle au Coordinateur en haut, ou ajoutes-en une.`)),1))],64)):c(``,!0)],8,zl))),128)):c(``,!0),a(W)===`global`?(l(),u(`div`,ru,[(l(!0),u(_,null,d(a(Le),t=>C((l(),u(`section`,{key:t.id,class:v([`board-col`,t.id]),"aria-label":t.label},[S(`div`,au,[(l(!0),u(_,null,d(t.cards,t=>(l(),o(k,{key:t.key,task:t.task,machine:a(de)?(`machineName`in e?e.machineName:a(Re))(t.machine):void 0,stale:t.stale,"read-at":R(t.readAt),selected:t.key===a($),onOpen:e=>Ct(t)},null,8,[`task`,`machine`,`stale`,`read-at`,`selected`,`onOpen`]))),128)),t.cards.length?c(``,!0):(l(),u(`p`,ou,y((`t`in e?e.t:a(J))(`Nothing here`)),1)),t.hidden?(l(),u(`button`,{key:1,type:`button`,class:`board-more`,onClick:n[10]||=e=>je.value=!0},y((`tl`in e?e.tl:a(Y))(`Show all (${t.hidden} more)`,`Tout afficher (${t.hidden} de plus)`)),1)):c(``,!0)])],10,iu)),[[ee,a(ft)||a(gt)===t.id]])),128))])):c(``,!0),a(jt)?(l(),u(`section`,{key:3,class:`board-archived`,"aria-label":(`tl`in e?e.tl:a(Y))(`Archived tasks`,`Tâches archivées`)},[S(`h3`,cu,[S(`span`,null,y((`tl`in e?e.tl:a(Y))(`Archived`,`Archivées`)),1),S(`span`,lu,y(a(Q).length),1)]),(l(!0),u(_,null,d(a(Bt),e=>(l(),u(`p`,{key:e.machine,class:`board-note error`},[a(oe)?(l(),u(`b`,uu,y(L(e.machine))+` · `,1)):c(``,!0),t(y(e.error),1)]))),128)),S(`div`,du,[(l(!0),u(_,null,d(a(Q),t=>(l(),o(k,{key:t.key,task:t.task,machine:a(de)?(`machineName`in e?e.machineName:a(Re))(t.machine):void 0,onOpen:e=>bt(t)},null,8,[`task`,`machine`,`onOpen`]))),128))]),a(Nt)&&!a(Q).length?(l(),u(`p`,fu,y((`t`in e?e.t:a(J))(`Loading…`)),1)):a(Q).length?c(``,!0):(l(),u(`p`,pu,y((`t`in e?e.t:a(J))(`Nothing here`)),1))],8,su)):c(``,!0)],6)],64)):c(``,!0),a(Z)?(l(),o(te,{key:a(dn),overlay:!a(dt),target:a(Z),task:a(rn),refresh:a(A),"refresh-key":a(re),"machine-label":L(a(Z).machine),reachable:a(I).some(e=>e.machine===a(Z).machine),onArchived:Vt,onRestored:Ut,onChanged:a(A),onClose:n[11]||=e=>Z.value=null,onSheet:un,onNoAgent:fn,onCoordinator:sn,onRetarget:n[12]||=e=>{a(Z)?.kind===`coordinator`&&(Z.value={machine:a(Z).machine,kind:`coordinator`,to:e})}},null,8,[`overlay`,`target`,`task`,`refresh`,`refresh-key`,`machine-label`,`reachable`,`onChanged`])):c(``,!0),a(pn)&&!a(Z)?(l(),o(M,{overlay:!a(dt),key:JSON.stringify(a(pn)),target:a(pn),repos:a(vn),"machine-label":L,reachable:yn,onClose:n[13]||=e=>pn.value=null,onChanged:n[14]||=e=>a(A)()},null,8,[`overlay`,`target`,`repos`])):c(``,!0),h(N,{open:a(yt),"onUpdate:open":n[15]||=e=>O(yt)?yt.value=e:null,task:a(Dt),machine:a(vt)?.machine??``,reachable:a(I).some(e=>e.machine===(a(vt)?.machine??``)),refresh:a(A),onArchived:Vt,onRestored:Ut,onChat:ln,onCoordinator:sn},null,8,[`open`,`task`,`machine`,`reachable`,`refresh`]),h(P,{open:a(Wt),"onUpdate:open":n[16]||=e=>O(Wt)?Wt.value=e:null,machines:a(I).map(e=>e.machine),repos:a(Ke),machine:a(Gt).machine,repo:a(Gt).repo,onAdded:qt},null,8,[`open`,`machines`,`repos`,`machine`,`repo`])],2)}}}),[[`__scopeId`,`data-v-d03359e4`]]),{__name:`BoardView`}),yu=m({__name:`board`,setup(e){return p(()=>{Je.value=null}),(e,t)=>{let n=vu;return l(),o(n)}}});export{yu as default};
|
|
Binary file
|
|
Binary file
|