@overlordai/server 1.0.68 → 1.0.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/dist/dispatcher/pty-relay.service.d.ts.map +1 -1
  2. package/dist/dispatcher/pty-relay.service.js +19 -0
  3. package/dist/dispatcher/pty-relay.service.js.map +1 -1
  4. package/package.json +4 -4
  5. package/public/assets/{AccessTokensPage-DcOzH6vQ.js → AccessTokensPage-C1KxsuHq.js} +1 -1
  6. package/public/assets/AdminPage-DbFm0hOL.js +1 -0
  7. package/public/assets/{ApiReferencePage-Cn1nZmYJ.js → ApiReferencePage-C2sQuzcP.js} +1 -1
  8. package/public/assets/ArchitecturePage-C7el9GsX.js +47 -0
  9. package/public/assets/{AuditLogPage-CkE1EJZh.js → AuditLogPage-CX9OBQtG.js} +2 -2
  10. package/public/assets/{BindPlatformPage-DYNztOnJ.js → BindPlatformPage-BW2M2vKF.js} +1 -1
  11. package/public/assets/BotIntegrationPage-Bsj1xlUm.js +1 -0
  12. package/public/assets/BotManage-CfH6RaDx.js +6 -0
  13. package/public/assets/BotSetupPage-B9qbCa_P.js +33 -0
  14. package/public/assets/ChangelogPage-CaIv9C_t.js +1 -0
  15. package/public/assets/{CliReferencePage-DyfbBqGH.js → CliReferencePage-FGtSB-WE.js} +1 -1
  16. package/public/assets/DeploymentPage-BAudG2Tr.js +34 -0
  17. package/public/assets/DevWorkflowPage-Cg3pznxy.js +6 -0
  18. package/public/assets/{DeveloperManage-DgwZWjLh.js → DeveloperManage-7_kw4pfm.js} +2 -2
  19. package/public/assets/DeveloperSetupPage-23Davo01.js +4 -0
  20. package/public/assets/DocsLayout-D3VKB5zJ.js +41 -0
  21. package/public/assets/DocsPrimitives-BiDMVOFl.js +1 -0
  22. package/public/assets/{EditProjectPage-DjGCEool.js → EditProjectPage-C6YcYdiz.js} +1 -1
  23. package/public/assets/{EmptyState-C7-kuf8X.js → EmptyState-C3yiKdL6.js} +1 -1
  24. package/public/assets/EnvVariablesPage-lxLwDyYf.js +1 -0
  25. package/public/assets/{HomePage-CWYmPB1e.js → HomePage-CMqtLPFH.js} +1 -1
  26. package/public/assets/InfoRow-BzF-Ghcu.js +1 -0
  27. package/public/assets/InstallationPage-CelO432V.js +7 -0
  28. package/public/assets/{LandingPage-ZuEWmIZL.js → LandingPage-W9ko7DVU.js} +8 -13
  29. package/public/assets/LocalDevelopmentPage-Rs-RJn5-.js +11 -0
  30. package/public/assets/{LoginPage-ZN3nJzEX.js → LoginPage-Bp96JFVD.js} +1 -1
  31. package/public/assets/{MetricBar-CH5ccxZr.js → MetricBar-BQkmuXAL.js} +1 -1
  32. package/public/assets/{NotFoundPage-DkoNgmQ4.js → NotFoundPage-ZvsZseSi.js} +1 -1
  33. package/public/assets/{OnboardingGuide-dk4OyOgV.js → OnboardingGuide-CDNvxE9_.js} +1 -1
  34. package/public/assets/PermissionsPage-CawIrPGc.js +1 -0
  35. package/public/assets/PipelineConfigPage-B_wutEEq.js +28 -0
  36. package/public/assets/{PipelineEditorPage-CtUnQDef.js → PipelineEditorPage-BSxxF72g.js} +1 -1
  37. package/public/assets/{ProfilePage-B0CWDm55.js → ProfilePage-C-nmN-By.js} +1 -1
  38. package/public/assets/{ProjectDetailPage-BbOgUrnR.js → ProjectDetailPage-LPHSSu7P.js} +3 -3
  39. package/public/assets/{ProjectListPage-CtGknAYM.js → ProjectListPage-C31_Ay4t.js} +1 -1
  40. package/public/assets/{PtyTerminal-C28RQ62I.js → PtyTerminal-CTqEV7Nd.js} +12 -7
  41. package/public/assets/{QuickAuth-8eT76fKz.js → QuickAuth-CFK1UL14.js} +1 -1
  42. package/public/assets/{RemoveMemberConfirmDialog-Ctyx8n2a.js → RemoveMemberConfirmDialog-C1y2iS_9.js} +1 -1
  43. package/public/assets/{Select-8MUED_Fj.js → Select-BmSEj4-2.js} +1 -1
  44. package/public/assets/{SettingsPage-CXDXq71S.js → SettingsPage-DggZSPQB.js} +1 -1
  45. package/public/assets/{Skeleton-B0x9oN6a.js → Skeleton-B2I8dIUF.js} +1 -1
  46. package/public/assets/SkillPage-CBTxscku.js +1 -0
  47. package/public/assets/TaskDetailPage-B9zrQxVz.js +21 -0
  48. package/public/assets/{TaskListPage-DMYTWhw_.js → TaskListPage-CLMgzykc.js} +1 -1
  49. package/public/assets/{TaskStatusBadge-yU5DIpkP.js → TaskStatusBadge-D7YtciSI.js} +1 -1
  50. package/public/assets/TerminalHomePage-DS9egsne.js +11 -0
  51. package/public/assets/{TokenManage-NYgoI8yJ.js → TokenManage-XhEZLm3U.js} +1 -1
  52. package/public/assets/{TotpSetupPage-lw418pBO.js → TotpSetupPage-BwXOuC8h.js} +1 -1
  53. package/public/assets/{WorkerDetailPage-CF7FWzQn.js → WorkerDetailPage-BidnHWSI.js} +1 -1
  54. package/public/assets/WorkerListPage-D9Sx2Qj1.js +1 -0
  55. package/public/assets/WorkerOperationsPage-BVqOPKPL.js +1 -0
  56. package/public/assets/{WorkerSetupGuidePage-dRLxcC1D.js → WorkerSetupGuidePage-CisdSN3i.js} +2 -7
  57. package/public/assets/WorkerSetupPage-D1EfdiQR.js +5 -0
  58. package/public/assets/{arrow-left-D3hlGpFa.js → arrow-left-BhUPkdy5.js} +1 -1
  59. package/public/assets/{arrow-right-DbRiIkn5.js → arrow-right-b1VhePsW.js} +1 -1
  60. package/public/assets/{bot-DJcm4TDu.js → bot-3wzbq300.js} +1 -1
  61. package/public/assets/{chevron-right-Cz1_0u26.js → chevron-right-u3Q_FU8D.js} +1 -1
  62. package/public/assets/{copy-BSpogfAn.js → copy-B1jQ4pbs.js} +1 -1
  63. package/public/assets/download-DJCYeset.js +6 -0
  64. package/public/assets/{external-link-BYnHDfTq.js → external-link-BlAvfzj2.js} +1 -1
  65. package/public/assets/index-BLXQrTv9.js +225 -0
  66. package/public/assets/index-CVFlBK8x.css +1 -0
  67. package/public/assets/{key-B7y18xnM.js → key-elqvuBzT.js} +1 -1
  68. package/public/assets/{loader-circle-j2WCDelv.js → loader-circle-BRMYxZfv.js} +1 -1
  69. package/public/assets/message-square-CZau8J5h.js +6 -0
  70. package/public/assets/{pencil-CkuHyqYU.js → pencil-BzyGpI8s.js} +1 -1
  71. package/public/assets/{plus-DETa4kg0.js → plus-NWcYLEIq.js} +1 -1
  72. package/public/assets/{rotate-ccw-oPqSTHU8.js → rotate-ccw-CPStvDV2.js} +1 -1
  73. package/public/assets/{scroll-text--ZQgIRbt.js → scroll-text-FNU4RbjS.js} +1 -1
  74. package/public/assets/{settings-COdENdI-.js → settings-Vg0cVhzJ.js} +1 -1
  75. package/public/assets/{status-colors-C_xltR1x.js → status-colors-CNClmRSt.js} +1 -1
  76. package/public/assets/{task-constants-BisV3uAk.js → task-constants-OK8-vXXs.js} +1 -1
  77. package/public/assets/{trash-2-BLxwKGg4.js → trash-2-YP06bYAN.js} +1 -1
  78. package/public/assets/{useFetch-CKA2R0HW.js → useFetch-WwlQwbqf.js} +1 -1
  79. package/public/assets/{users-Cm06VaAm.js → users-CFJarfcd.js} +1 -1
  80. package/public/assets/{wifi-CoOrgHWP.js → wifi-D7sIQnh6.js} +1 -1
  81. package/public/assets/workflow-Bz54V-O_.js +11 -0
  82. package/public/index.html +2 -2
  83. package/public/sw.js +1 -1
  84. package/public/assets/AdminPage-DjzkTi-Z.js +0 -1
  85. package/public/assets/BotManage-B4YAKqEk.js +0 -6
  86. package/public/assets/InfoRow-DGZv5P3m.js +0 -1
  87. package/public/assets/SkillPage-CeTlmMdA.js +0 -1
  88. package/public/assets/TaskDetailPage-jyeOPtsb.js +0 -31
  89. package/public/assets/TerminalHomePage-D3Z-uJUx.js +0 -16
  90. package/public/assets/WorkerListPage-Dd6P84ye.js +0 -6
  91. package/public/assets/index-C5ry7bCb.js +0 -225
  92. package/public/assets/index-DBZN6iTO.css +0 -1
  93. package/public/assets/zap-CZBm69SW.js +0 -6
@@ -1,16 +0,0 @@
1
- import{c as U,k as ae,g as I,l as k,a as _,r as i,i as R,m as ne,j as e,X as q,e as re}from"./index-C5ry7bCb.js";import{T as O,u as ie,a as H}from"./task-constants-BisV3uAk.js";import{P as ce,C as oe}from"./PtyTerminal-C28RQ62I.js";import{i as L,O as G}from"./OnboardingGuide-dk4OyOgV.js";import{S as E,C as le}from"./Select-8MUED_Fj.js";import{a as Z}from"./status-colors-C_xltR1x.js";import{a as de}from"./date-BdNtiQTP.js";import{u as J}from"./useFetch-CKA2R0HW.js";import{P as A}from"./plus-DETa4kg0.js";import{Z as xe}from"./zap-CZBm69SW.js";import{W as ue}from"./wifi-CoOrgHWP.js";import"./chevron-right-Cz1_0u26.js";/**
2
- * @license lucide-react v0.469.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const me=U("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/**
7
- * @license lucide-react v0.469.0 - ISC
8
- *
9
- * This source code is licensed under the ISC license.
10
- * See the LICENSE file in the root directory of this source tree.
11
- */const pe=U("WifiOff",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);/**
12
- * @license lucide-react v0.469.0 - ISC
13
- *
14
- * This source code is licensed under the ISC license.
15
- * See the LICENSE file in the root directory of this source tree.
16
- */const he=U("ZapOff",[["path",{d:"M10.513 4.856 13.12 2.17a.5.5 0 0 1 .86.46l-1.377 4.317",key:"193nxd"}],["path",{d:"M15.656 10H20a1 1 0 0 1 .78 1.63l-1.72 1.773",key:"27a7lr"}],["path",{d:"M16.273 16.273 10.88 21.83a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14H4a1 1 0 0 1-.78-1.63l4.507-4.643",key:"1e0qe9"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),Q="overlord_home_terminal";function ve(){try{const s=localStorage.getItem(Q);if(s)return JSON.parse(s)}catch{}return{pinnedTaskIds:[],activeTaskId:null}}let K="";function M(s){const a=JSON.stringify(s);a!==K&&(K=a,localStorage.setItem(Q,a))}const W=ve(),fe=new Set([k.QUEUED,k.ASSIGNED,k.RUNNING,k.SUSPENDED]);let D=!1;const be=ae((s,a)=>({pinnedTaskIds:W.pinnedTaskIds,activeTaskId:W.activeTaskId,taskMetas:{},stageConfirm:null,loading:!1,setActiveTask:t=>{s({activeTaskId:t}),M({pinnedTaskIds:a().pinnedTaskIds,activeTaskId:t})},pinTask:t=>{const{pinnedTaskIds:n}=a();if(n.includes(t))return;const l=[...n,t];s({pinnedTaskIds:l}),M({pinnedTaskIds:l,activeTaskId:a().activeTaskId})},unpinTask:t=>{const{pinnedTaskIds:n,activeTaskId:l,taskMetas:r}=a(),d=n.filter(o=>o!==t),u=l===t?d[0]??null:l,{[t]:h,...c}=r;s({pinnedTaskIds:d,activeTaskId:u,taskMetas:c}),M({pinnedTaskIds:d,activeTaskId:u})},loadActiveTasks:async()=>{if(!D){D=!0,s({loading:!0});try{const n=(await I.get("web/tasks",{searchParams:{limit:"30"}}).json()).data.filter(o=>fe.has(o.status)),l={};for(const o of n)l[o.id]={id:o.id,description:o.description,status:o.status,projectKey:o.projectKey,currentStage:o.currentStage,currentSessionId:o.currentSessionId};const r=new Set(n.map(o=>o.id)),{pinnedTaskIds:d,activeTaskId:u}=a(),h=[...new Set([...d.filter(o=>r.has(o)),...r])],c=u&&h.includes(u)?u:h[0]??null;s({taskMetas:l,pinnedTaskIds:h,activeTaskId:c}),M({pinnedTaskIds:h,activeTaskId:c})}catch{}finally{D=!1,s({loading:!1})}}},fetchStageConfirm:async t=>{try{const n=await I.get(`web/tasks/${t}/pending-confirm`).json();s({stageConfirm:n.confirm})}catch{s({stageConfirm:null})}},clearStageConfirm:()=>s({stageConfirm:null}),updateTaskMeta:(t,n)=>{const{taskMetas:l}=a(),r=l[t];r&&s({taskMetas:{...l,[t]:{...r,...n}}})}}));function ge(){const[s,a]=i.useState(()=>L());i.useEffect(()=>{const n=()=>a(!0);return window.addEventListener("onboarding-dismissed",n),window.addEventListener("storage",()=>a(L())),()=>{window.removeEventListener("onboarding-dismissed",n),window.removeEventListener("storage",n)}},[]);const{data:t}=J(()=>s?Promise.resolve(null):I.get("web/dashboard/stats").json(),[s]);return s||!t?null:{activeTasks:(t.active_tasks??0)+(t.queued_tasks??0),totalWorkers:t.online_workers??0,totalProjects:t.project_count??0,totalDevelopers:t.developer_count??0}}function je({taskId:s,confirm:a,onSubmitted:t}){const{t:n}=_(),[l,r]=i.useState(a.timeout),[d,u]=i.useState(!1);i.useEffect(()=>{r(a.timeout);const c=setInterval(()=>{r(o=>o<=1?(clearInterval(c),0):o-1)},1e3);return()=>clearInterval(c)},[a.timeout,a.stageName]);const h=i.useCallback(async c=>{u(!0);try{await I.post(`web/tasks/${s}/confirm-stage`,{json:{stageName:a.stageName,approved:c}}),t()}catch{}finally{u(!1)}},[s,a.stageName,t]);return e.jsxs("div",{className:"flex items-center justify-between gap-2 border-b-2 border-[var(--warning)] bg-[var(--warning)]/10 px-3 py-2",children:[e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsx(oe,{className:"h-3.5 w-3.5 shrink-0 text-[var(--warning)]"}),e.jsxs("span",{className:"truncate text-xs text-[var(--text-primary)]",children:["// stage: ",a.stageName]}),e.jsx("span",{className:"shrink-0 text-xs text-[var(--warning)]",children:de(l)})]}),e.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[e.jsx("button",{onClick:()=>h(!1),disabled:d,className:"rounded-[4px] border border-[var(--border)] px-2 py-1 text-[11px] text-[var(--text-secondary)] hover:text-[var(--text-primary)] transition-colors disabled:opacity-50",children:n("tasks.reject")}),e.jsx("button",{onClick:()=>h(!0),disabled:d,className:"rounded-[4px] bg-[var(--accent)] px-2 py-1 text-[11px] text-black hover:opacity-90 transition-opacity disabled:opacity-50",children:n(d?"tasks.stage_submitting":"tasks.confirm_and_proceed")})]})]})}function ke({projectKey:s,onProjectChange:a,onCreated:t}){const{t:n}=_(),l=ie(p=>p.createTask),[r,d]=i.useState(""),[u,h]=i.useState("feat"),[c,o]=i.useState(!1),[f,T]=i.useState(!1),{data:N}=J(()=>I.get("web/projects").json(),[]),g=i.useMemo(()=>{const p=(N??[]).map(b=>({value:b.key,label:b.key}));return[{value:"",label:n("terminal_home.all_projects")},...p]},[N,n]),S=i.useRef(!1);i.useEffect(()=>{if(!S.current){if(s){S.current=!0;return}g.length>1&&(a(g[1].value),S.current=!0)}},[s,g,a]);const C=!!s&&!!r.trim();async function y(){if(C){o(!0);try{const p=await l({projectKey:s,description:r.trim(),taskType:u});d(""),t(p.id)}catch{}finally{o(!1)}}}const j="flex-1 rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-2 py-1.5 text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] outline-none focus:border-[var(--accent)]";return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"hidden md:flex items-center gap-2 border-b border-[var(--border)] bg-[var(--bg-card)] px-3 py-2",children:[e.jsx("div",{className:"w-[140px]",children:e.jsx(E,{value:s,onChange:a,options:g,placeholder:n("terminal_home.select_project")})}),e.jsx("div",{className:"w-[100px]",children:e.jsx(E,{value:u,onChange:h,options:H})}),e.jsx("input",{type:"text",value:r,onChange:p=>d(p.target.value),onKeyDown:p=>p.key==="Enter"&&y(),placeholder:n("terminal_home.task_description_placeholder"),className:j,disabled:c}),e.jsxs("button",{onClick:y,disabled:c||!C,className:"flex items-center gap-1 rounded-[4px] bg-[var(--accent)] px-3 py-1.5 text-xs text-black hover:opacity-90 transition-opacity disabled:opacity-50",children:[e.jsx(A,{className:"h-3 w-3"}),n(c?"common.creating":"terminal_home.new_task")]})]}),e.jsx("div",{className:"md:hidden border-b border-[var(--border)] bg-[var(--bg-card)]",children:f?e.jsxs("div",{className:"flex flex-col gap-2 p-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"flex-1",children:e.jsx(E,{value:s,onChange:a,options:g,placeholder:n("terminal_home.select_project")})}),e.jsx("div",{className:"w-[100px]",children:e.jsx(E,{value:u,onChange:h,options:H})}),e.jsx("button",{onClick:()=>T(!1),className:"p-1 text-[var(--text-muted)]",children:e.jsx(q,{className:"h-3.5 w-3.5"})})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("input",{type:"text",value:r,onChange:p=>d(p.target.value),onKeyDown:p=>p.key==="Enter"&&y(),placeholder:n("terminal_home.task_description_placeholder"),className:j,disabled:c}),e.jsx("button",{onClick:y,disabled:c||!C,className:"rounded-[4px] bg-[var(--accent)] px-3 py-1.5 text-xs text-black hover:opacity-90 transition-opacity disabled:opacity-50",children:e.jsx(A,{className:"h-3 w-3"})})]})]}):e.jsxs("button",{onClick:()=>T(!0),className:"flex w-full items-center justify-center gap-1 py-2 text-xs text-[var(--accent)] hover:opacity-80",children:[e.jsx(A,{className:"h-3.5 w-3.5"}),n("terminal_home.new_task")]})})]})}function z({status:s,size:a}){const t=s===k.SUSPENDED,n=Z(s),l=a==="sm"?"h-1.5 w-1.5":"h-2 w-2";return e.jsx("span",{className:`${l} shrink-0 rounded-full ${t?"animate-pulse":""}`,style:{backgroundColor:t?"var(--warning)":n}})}function Ne({tasks:s,activeId:a,onSelect:t,onUnpin:n}){const l=re();return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"hidden md:flex flex-col border-r border-[var(--border)] bg-[var(--bg-card)] overflow-y-auto",style:{width:200,minWidth:200},children:[e.jsx("div",{className:"border-b border-[var(--border)] px-3 py-2",children:e.jsx("span",{className:"text-[11px] text-[var(--text-muted)]",children:"// active tasks"})}),s.length===0?e.jsx("div",{className:"flex-1 flex items-center justify-center p-4",children:e.jsx("span",{className:"text-[11px] text-[var(--text-muted)]",children:"no active tasks"})}):e.jsx("div",{className:"flex-1",children:s.map(r=>{const d=r.id===a;return e.jsxs("div",{onClick:()=>t(r.id),className:`group flex items-center gap-2 px-3 py-2 cursor-pointer transition-colors ${d?"bg-[var(--accent)]/10 text-[var(--text-primary)]":"text-[var(--text-secondary)] hover:bg-[var(--bg-input)] hover:text-[var(--text-primary)]"}`,children:[e.jsx(z,{status:r.status,size:"md"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"truncate text-xs",children:["#",r.id," ",r.description]}),e.jsx("div",{className:"text-[10px] text-[var(--text-muted)]",children:r.projectKey})]}),e.jsx("button",{onClick:u=>{u.stopPropagation(),n(r.id)},className:"hidden group-hover:block shrink-0 p-0.5 text-[var(--text-muted)] hover:text-[var(--text-primary)]",title:"unpin",children:e.jsx(q,{className:"h-3 w-3"})}),e.jsx("button",{onClick:u=>{u.stopPropagation(),l(`/tasks/${r.id}`)},className:"hidden group-hover:block shrink-0 p-0.5 text-[var(--text-muted)] hover:text-[var(--accent)]",title:"open detail",children:e.jsx("span",{className:"text-[10px]",children:"→"})})]},r.id)})})]}),e.jsx("div",{className:"flex md:hidden overflow-x-auto border-b border-[var(--border)] bg-[var(--bg-card)]",style:{height:44},children:s.length===0?e.jsx("div",{className:"flex items-center justify-center w-full",children:e.jsx("span",{className:"text-[11px] text-[var(--text-muted)]",children:"no active tasks"})}):s.map(r=>{const d=r.id===a;return e.jsxs("button",{onClick:()=>t(r.id),className:`flex shrink-0 items-center gap-1.5 px-3 border-b-2 transition-colors ${d?"border-[var(--accent)] text-[var(--text-primary)]":"border-transparent text-[var(--text-secondary)]"}`,children:[e.jsx(z,{status:r.status,size:"sm"}),e.jsxs("span",{className:"text-[11px] whitespace-nowrap",children:["#",r.id]})]},r.id)})})]})}function ye({task:s,takeoverState:a,onTakeover:t,onRelease:n}){const l=Z(s.status),r=a==="manual";return e.jsxs("div",{className:"flex items-center justify-between border-b border-[var(--border)] bg-[var(--bg-card)] px-3",style:{height:36,minHeight:36},children:[e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsx("span",{className:"text-[11px] text-[var(--text-muted)]",children:s.projectKey}),e.jsx("span",{className:"text-[11px]",style:{color:l},children:s.status.toLowerCase()}),s.currentStage&&e.jsxs("span",{className:"text-[11px] text-[var(--text-muted)]",children:["// ",s.currentStage]})]}),e.jsx("div",{className:"flex items-center gap-1",children:!O.includes(s.status)&&(r?e.jsxs("button",{onClick:n,className:"flex items-center gap-1 rounded-[4px] border border-[var(--accent)] px-2 py-0.5 text-[11px] text-[var(--accent)] hover:bg-[var(--accent)]/10 transition-colors",children:[e.jsx(he,{className:"h-3 w-3"}),e.jsx("span",{className:"hidden md:inline",children:"release"})]}):e.jsxs("button",{onClick:t,disabled:a==="requesting",className:"flex items-center gap-1 rounded-[4px] border border-[var(--border)] px-2 py-0.5 text-[11px] text-[var(--text-secondary)] hover:text-[var(--accent)] hover:border-[var(--accent)] transition-colors disabled:opacity-50",children:[e.jsx(xe,{className:"h-3 w-3"}),e.jsx("span",{className:"hidden md:inline",children:"take over"})]}))})]})}function we({task:s,ptyStatus:a}){const t=a==="connected";return e.jsxs("div",{className:"flex items-center justify-between border-t border-[var(--border)] bg-[var(--bg-card)] px-3",style:{height:28,minHeight:28},children:[e.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:s.currentStage?`stage: ${s.currentStage}`:`task #${s.id}`}),e.jsxs("span",{className:`flex items-center gap-1 text-[10px] ${t?"text-[var(--accent)]":"text-[var(--text-muted)]"}`,children:[t?e.jsx(ue,{className:"h-2.5 w-2.5"}):e.jsx(pe,{className:"h-2.5 w-2.5"}),t?"connected":a]})]})}function Te({onboardingData:s}){const[a,t]=i.useState(!1),{t:n}=_();return s?a?e.jsxs("div",{className:"border-b border-[var(--accent)]/30",children:[e.jsxs("button",{onClick:()=>t(!1),className:"flex w-full items-center justify-between bg-[var(--bg-card)] px-3 py-1.5 transition-colors hover:bg-[var(--bg-input)]",children:[e.jsx("span",{className:"text-[11px] text-[var(--accent)]",children:n("onboarding.getting_started")}),e.jsx(me,{className:"h-3 w-3 text-[var(--text-muted)]"})]}),e.jsx("div",{className:"max-h-[300px] overflow-y-auto",children:e.jsx(G,{data:s})})]}):e.jsxs("button",{onClick:()=>t(!0),className:"flex w-full items-center justify-between border-b border-[var(--accent)]/30 bg-[var(--bg-card)] px-3 py-1.5 transition-colors hover:bg-[var(--bg-input)]",style:{height:36},children:[e.jsx("span",{className:"text-[11px] text-[var(--accent)]",children:n("onboarding.getting_started")}),e.jsx(le,{className:"h-3 w-3 text-[var(--text-muted)]"})]}):null}function B({onboardingData:s}){const{t:a}=_();return e.jsx("div",{className:"flex flex-1 flex-col items-center justify-center p-6",children:s?e.jsx("div",{className:"w-full max-w-lg",children:e.jsx(G,{data:s})}):e.jsxs("div",{className:"text-center",children:[e.jsxs("div",{className:"mb-3 text-3xl text-[var(--border)]",children:[">","_"]}),e.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:a("terminal_home.no_active_tasks")}),e.jsx("p",{className:"mt-1 text-xs text-[var(--text-muted)]",children:a("terminal_home.create_task_hint")})]})})}function Fe(){const{t:s}=_(),{pinnedTaskIds:a,activeTaskId:t,taskMetas:n,stageConfirm:l,loading:r,setActiveTask:d,pinTask:u,unpinTask:h,loadActiveTasks:c,fetchStageConfirm:o,clearStageConfirm:f,updateTaskMeta:T}=be(),N=i.useRef(null),[g,S]=i.useState("disconnected"),[C,y]=i.useState("auto"),[j,p]=i.useState(""),b=R(x=>x.lastEvent),$=R(x=>x.status),m=t?n[t]??null:null,Y=m?O.includes(m.status):!1,F=i.useRef(!1);i.useEffect(()=>{!F.current&&m&&(p(m.projectKey),F.current=!0)},[m]);const w=i.useMemo(()=>{const x=a.map(v=>n[v]).filter(Boolean);return j?x.filter(v=>v.projectKey===j):x},[a,n,j]);i.useEffect(()=>{w.length>0&&t&&!w.some(x=>x.id===t)&&d(w[0].id)},[w,t,d]);const P=ge();ne(m?`#${m.id} ${m.description}`:null),i.useEffect(()=>{c()},[c]),i.useEffect(()=>{t&&(m==null?void 0:m.status)===k.SUSPENDED?o(t):f()},[t,m==null?void 0:m.status,o,f]),i.useEffect(()=>{if(b){if(b.event==="task_status_changed"){const{taskId:x,status:v}=b;T(x,{status:v}),v===k.SUSPENDED&&x===t&&o(x),O.includes(v)&&x===t&&f()}b.event==="task_created"&&c()}},[b,t,o,f,T,c]),i.useEffect(()=>{if($==="connected")return;const v=setInterval(()=>{document.visibilityState!=="hidden"&&c()},15e3);return()=>clearInterval(v)},[$,c]);const V=i.useCallback(x=>{u(x),d(x),c()},[u,d,c]),X=i.useCallback(()=>{f(),c()},[f,c]),ee=i.useCallback(()=>{var x;(x=N.current)==null||x.requestTakeover()},[]),te=i.useCallback(()=>{var x;(x=N.current)==null||x.releaseTakeover()},[]);if(r&&a.length===0)return e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:s("common.loading")})});const se=w.length>0;return e.jsxs("div",{className:"flex h-full flex-col overflow-hidden",children:[e.jsx(ke,{projectKey:j,onProjectChange:p,onCreated:V}),e.jsx("div",{className:"flex flex-1 overflow-hidden",children:se?e.jsxs(e.Fragment,{children:[e.jsx(Ne,{tasks:w,activeId:t,onSelect:d,onUnpin:h}),e.jsx("div",{className:"flex flex-1 flex-col overflow-hidden",children:m?e.jsxs(e.Fragment,{children:[e.jsx(Te,{onboardingData:P}),e.jsx(ye,{task:m,takeoverState:C,onTakeover:ee,onRelease:te}),l&&t&&e.jsx(je,{taskId:t,confirm:l,onSubmitted:X}),e.jsx("div",{className:"flex-1 overflow-hidden",children:e.jsx(ce,{taskId:t,sessionId:m.currentSessionId??void 0,taskFinished:Y,onStatusChange:S,onTakeoverChange:y,ref:N},t)}),e.jsx(we,{task:m,ptyStatus:g})]}):e.jsx(B,{onboardingData:P})})]}):e.jsx(B,{onboardingData:P})})]})}export{Fe as default};
@@ -1,6 +0,0 @@
1
- import{c as G,R as U,a as S,j as e,r as a,g as _,X as K,w as q,e as H,u as V,W as N,n as X,D as J,S as L}from"./index-C5ry7bCb.js";import{w as M}from"./status-colors-C_xltR1x.js";import{M as w}from"./MetricBar-CH5ccxZr.js";import Q from"./WorkerSetupGuidePage-dRLxcC1D.js";import{C as W}from"./copy-BSpogfAn.js";import{L as Y}from"./loader-circle-j2WCDelv.js";import{S as Z}from"./Select-8MUED_Fj.js";import{E as ee}from"./EmptyState-C7-kuf8X.js";import{C as te}from"./Skeleton-B0x9oN6a.js";import{u as re}from"./useFetch-CKA2R0HW.js";import{P as se}from"./plus-DETa4kg0.js";import"./key-B7y18xnM.js";import"./settings-COdENdI-.js";import"./wifi-CoOrgHWP.js";/**
2
- * @license lucide-react v0.469.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const ae=G("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]),oe=U.memo(function({worker:r,onClick:l}){const{t}=S();return e.jsxs("div",{onClick:l,className:`rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-4 font-mono lowercase transition-colors ${l?"cursor-pointer hover:border-[var(--accent)]/40 hover:bg-[var(--bg-input)]":""}`,children:[e.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[e.jsxs("h3",{className:"truncate text-sm text-[var(--text-primary)]",children:[e.jsx("span",{style:{color:M[r.status],fontSize:"0.6rem"},children:"●"})," ",r.name]}),e.jsx("span",{className:"text-xs",style:{color:M[r.status]},children:r.status})]}),e.jsxs("div",{className:"mb-3 text-xs text-[var(--text-muted)]",children:[r.host,r.os?`:${r.os}`:""]}),e.jsxs("div",{className:"mb-3 flex flex-col gap-2",children:[e.jsx(w,{label:t("workers.cpu"),value:r.cpuUsage,variant:"inline"}),e.jsx(w,{label:t("workers.mem"),value:r.memoryUsage,variant:"inline"}),e.jsx(w,{label:t("workers.disk"),value:r.diskUsage,variant:"inline"})]}),e.jsx("div",{className:"flex items-center justify-between text-xs",children:e.jsx("span",{className:"text-[var(--text-secondary)]",children:t("workers.tasks_slots",{active:String(r.activeSlots),max:String(r.maxSlots)})})}),r.capabilities.length>0&&e.jsx("div",{className:"mt-2 flex flex-wrap gap-1",children:r.capabilities.map(s=>e.jsx("span",{className:"rounded-[4px] border border-[var(--border)] px-1.5 py-0.5 text-[11px] text-[var(--text-muted)]",children:s},s))})]})});function ne({isOpen:d,onClose:r,onRegistered:l}){const{t}=S(),[s,c]=a.useState(1),[g,p]=a.useState(!1),[i,m]=a.useState(""),[u,b]=a.useState(null),[h,j]=a.useState(""),[o,v]=a.useState(""),[z,f]=a.useState(!1),[A,y]=a.useState(!1),[F,C]=a.useState(""),[T,I]=a.useState(""),x=a.useRef(null),O={1:t("workers.reg_step_generate_token"),2:t("workers.reg_step_install_worker"),3:t("workers.reg_step_waiting_activation"),4:t("workers.reg_step_activated")};a.useEffect(()=>(d&&(c(1),m(""),b(null),j(""),v(""),f(!1),y(!1),C(""),I(""),p(!1)),()=>{x.current&&clearInterval(x.current)}),[d]);const $=async()=>{const n=h.trim();if(!n){v(t("admin.pat_label_required"));return}v(""),p(!0);try{const k=await _.post("admin/worker-tokens",{json:{label:n}}).json();m(k.token),b(k.tokenId),c(2)}catch{}finally{p(!1)}},P=typeof window<"u"?window.location.origin:"https://overlord.example.com",E=i?`overlord setup worker --token ${i} --server ${P}`:"",R=()=>{navigator.clipboard.writeText(i),f(!0),setTimeout(()=>f(!1),2e3)},D=()=>{navigator.clipboard.writeText(E),y(!0),setTimeout(()=>y(!1),2e3)},B=a.useCallback(()=>{u&&(c(3),x.current=setInterval(async()=>{try{const n=await _.get(`admin/worker-tokens/${u}/status`).json();n.used&&n.workerName&&(C(n.workerName),I(n.workerId??""),c(4),x.current&&clearInterval(x.current),l==null||l())}catch{}},3e3))},[u,l]);return a.useEffect(()=>()=>{x.current&&clearInterval(x.current)},[]),d?e.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center font-mono lowercase",children:[e.jsx("div",{className:"absolute inset-0 bg-[var(--bg-primary)]/60 backdrop-blur-sm",onClick:r}),e.jsxs("div",{className:"relative z-10 w-full max-w-[1080px] rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-8",children:[e.jsx("button",{type:"button",onClick:r,className:"absolute right-4 top-4 text-[var(--text-muted)] hover:text-[var(--text-primary)]",children:e.jsx(K,{className:"h-4 w-4"})}),e.jsx("h2",{className:"text-lg font-bold text-[var(--accent)]",children:t("workers.reg_title")}),e.jsx("p",{className:"mt-1 text-xs text-[var(--text-muted)]",children:t("workers.reg_subtitle")}),e.jsx("div",{className:"mt-6 flex items-center justify-center gap-2",children:[1,2,3,4].map((n,k)=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:`rounded-[4px] px-3 py-1.5 text-[11px] font-bold ${n===s?"bg-[var(--accent)] text-black":n<s?"bg-[var(--accent)]/20 text-[var(--accent)]":"border border-[var(--border)] bg-[var(--bg-primary)] text-[var(--text-muted)]"}`,children:[n,". ",O[n]]}),k<3&&e.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"→"})]},n))}),e.jsxs("div",{className:"mt-6 grid grid-cols-1 gap-4 lg:grid-cols-2",children:[e.jsxs("div",{className:`rounded-[4px] border p-4 ${s===1?"border-[var(--accent)] bg-[var(--bg-primary)]":"border-[var(--border)] bg-[var(--bg-primary)]"}`,children:[e.jsxs("p",{className:"text-[13px] font-bold text-[var(--accent)]",children:["> ",t("workers.reg_step_generate_token")]}),s===1&&!i?e.jsxs("div",{className:"mt-3 space-y-3",children:[e.jsx("p",{className:"text-[11px] text-[var(--text-muted)]",children:t("workers.reg_click_to_generate")}),o&&e.jsx("p",{className:"text-[11px] text-red-400",children:o}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-[11px] text-[var(--text-muted)]",children:t("admin.label")}),e.jsx("input",{type:"text",placeholder:t("admin.pat_label_placeholder"),value:h,onChange:n=>j(n.target.value),onKeyDown:n=>{n.key==="Enter"&&$()},className:"w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-1.5 text-[11px] text-[var(--text-primary)] placeholder:text-[var(--text-muted)] focus:border-[var(--accent)] focus:outline-none"})]}),e.jsx("button",{type:"button",onClick:$,disabled:g,className:"rounded-[4px] bg-[var(--accent)] px-4 py-1.5 text-xs font-bold text-black disabled:opacity-50",children:t(g?"admin.generating":"workers.reg_step_generate_token")})]}):i?e.jsxs("div",{className:"mt-3 space-y-3",children:[e.jsx("p",{className:"text-[11px] text-[var(--text-muted)]",children:t("workers.reg_token_generated")}),e.jsxs("div",{children:[e.jsx("p",{className:"mb-1 text-[11px] text-[var(--text-muted)]",children:"Token"}),e.jsxs("div",{className:"relative rounded-[4px] border border-[var(--border)] bg-[var(--bg-primary)] px-3 py-2 pr-16",children:[e.jsx("code",{className:"block break-all text-[11px] text-[var(--text-primary)]",children:i}),e.jsx("button",{type:"button",onClick:R,className:"absolute right-2 top-1.5 text-[11px] text-[var(--text-muted)] hover:text-[var(--text-primary)]",children:z?e.jsx("span",{className:"text-[var(--accent)]",children:t("common.copied")}):e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(W,{className:"h-3 w-3"})," ",t("common.copy")]})})]})]}),e.jsxs("div",{children:[e.jsx("p",{className:"mb-1 text-[11px] text-[var(--text-muted)]",children:t("admin.setup_command")}),e.jsxs("div",{className:"relative rounded-[4px] border border-[var(--border)] bg-[var(--bg-primary)] px-3 py-2 pr-16",children:[e.jsxs("code",{className:"block break-all text-[11px] text-[var(--accent)]",children:["$ ",E]}),e.jsx("button",{type:"button",onClick:D,className:"absolute right-2 top-1.5 text-[11px] text-[var(--text-muted)] hover:text-[var(--text-primary)]",children:A?e.jsx("span",{className:"text-[var(--accent)]",children:t("common.copied")}):e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(W,{className:"h-3 w-3"})," ",t("common.copy")]})})]})]}),e.jsx("div",{className:"rounded-[4px] border border-yellow-500/30 bg-yellow-500/10 px-3 py-2 text-[11px] text-yellow-400",children:t("admin.token_shown_once")})]}):e.jsx("p",{className:"mt-2 text-[11px] text-[var(--text-muted)]",children:t("workers.reg_completed")})]}),e.jsxs("div",{className:`rounded-[4px] border p-4 ${s===2?"border-[var(--accent)] bg-[var(--bg-primary)]":"border-[var(--border)] bg-[var(--bg-primary)]"}`,children:[e.jsxs("p",{className:"text-[13px] font-bold text-[var(--text-primary)]",children:["> ",t("workers.reg_step_install_worker")]}),e.jsx("p",{className:"mt-2 text-[11px] text-[var(--text-muted)]",children:t("workers.reg_running_installation")}),s>=2&&e.jsxs("div",{className:"mt-3 space-y-1 rounded-[4px] border border-[var(--border)] bg-[var(--bg-primary)] p-3",children:[e.jsx("p",{className:"text-[11px] text-[var(--text-primary)]",children:"$ overlord setup worker"}),e.jsx("p",{className:"text-[11px] text-[var(--text-muted)]",children:"server url: https://..."}),e.jsx("p",{className:"text-[11px] text-[var(--text-muted)]",children:"worker token: ovw_..."}),e.jsx("p",{className:"text-[11px] text-[var(--text-muted)]",children:"worker name: my-worker"}),e.jsx("p",{className:"text-[11px] text-[var(--accent)]",children:"config written. starting worker..."}),s===2&&e.jsx("p",{className:"text-[11px] text-[var(--accent)] animate-pulse",children:"&block;"})]}),s===2&&e.jsx("button",{type:"button",onClick:B,className:"mt-3 rounded-[4px] bg-[var(--accent)] px-4 py-1.5 text-xs font-bold text-black",children:t("workers.reg_installed_wait")})]}),e.jsxs("div",{className:`rounded-[4px] border p-4 ${s===3?"border-amber-500 bg-[var(--bg-primary)]":"border-[var(--border)] bg-[var(--bg-primary)]"}`,children:[e.jsxs("p",{className:"text-[13px] font-bold text-[var(--text-primary)]",children:["> ",t("workers.reg_step_waiting_activation")]}),s>=3?e.jsx("div",{className:"mt-3 flex flex-col items-center justify-center gap-3 py-6",children:s===3?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-full border-2 border-amber-500",children:e.jsx(Y,{className:"h-5 w-5 animate-spin text-amber-500"})}),e.jsx("p",{className:"text-[11px] text-[var(--text-muted)]",children:t("workers.reg_listening_for_worker")})]}):e.jsx("p",{className:"text-[11px] text-[var(--accent)]",children:t("workers.reg_worker_connected")})}):e.jsx("p",{className:"mt-2 text-[11px] text-[var(--text-muted)]",children:t("workers.reg_waiting_for_worker")})]}),e.jsxs("div",{className:`rounded-[4px] border p-4 ${s===4?"border-[var(--accent)] bg-[var(--bg-primary)]":"border-[var(--border)] bg-[var(--bg-primary)]"}`,children:[e.jsxs("p",{className:"text-[13px] font-bold text-[var(--text-primary)]",children:["> ",t("workers.reg_step_activated")]}),s===4?e.jsxs("div",{className:"mt-3 flex flex-col items-center justify-center gap-3 py-6",children:[e.jsx("div",{className:"flex h-12 w-12 items-center justify-center rounded-full bg-[var(--accent)]/20",children:e.jsx(q,{className:"h-6 w-6 text-[var(--accent)]"})}),e.jsx("p",{className:"text-xs font-bold text-[var(--accent)]",children:t("workers.reg_worker_activated",{name:F})}),T&&e.jsxs("p",{className:"text-[11px] text-[var(--text-muted)]",children:["worker_id: ",T]})]}):e.jsx("p",{className:"mt-2 text-[11px] text-[var(--text-muted)]",children:t("workers.reg_worker_registered")})]})]}),s===4&&e.jsx("div",{className:"mt-6 flex justify-end",children:e.jsx("button",{type:"button",onClick:r,className:"rounded-[4px] bg-[var(--accent)] px-5 py-2 text-xs font-bold text-black",children:t("workers.reg_done")})})]})]}):null}function fe(){const d=H(),{t:r}=S(),[l,t]=a.useState("all"),[s,c]=a.useState("fleet"),[g,p]=a.useState(!1),[i,m]=a.useState(0),u=V(o=>{var v;return(v=o.user)==null?void 0:v.role}),{data:b,loading:h}=re(()=>{const o={};return l!=="all"&&(o.status=l),_.get("web/workers",{searchParams:o}).json()},[l,i]),j=a.useMemo(()=>[{value:"all",label:r("workers.all_statuses")},{value:N.ONLINE,label:r("workers.online")},{value:N.OFFLINE,label:r("workers.offline")},{value:N.DRAINING,label:r("workers.draining")}],[r]);return X(a.useMemo(()=>u===J.ADMIN?e.jsxs("button",{type:"button",onClick:()=>p(!0),className:"flex items-center gap-1.5 rounded-[4px] bg-[var(--accent)] px-3 py-1.5 text-xs text-black hover:opacity-90 transition-opacity",children:[e.jsx(se,{size:14}),r("workers.register_worker")]}):null,[u,r])),e.jsxs("div",{className:"mx-auto max-w-6xl px-4 md:px-6 py-8 font-mono lowercase",children:[e.jsxs("div",{className:"mb-6 flex items-center justify-between border-b border-[var(--border)]",children:[e.jsxs("div",{className:"flex",children:[e.jsxs("button",{type:"button",onClick:()=>{c("fleet"),m(o=>o+1)},className:`flex items-center gap-2 px-4 py-2.5 text-xs transition-colors ${s==="fleet"?"border-b-2 border-[var(--accent)] text-[var(--text-primary)]":"text-[var(--text-muted)] hover:text-[var(--text-secondary)]"}`,children:[e.jsx(L,{size:14}),r("workers.fleet")]}),e.jsxs("button",{type:"button",onClick:()=>c("setup_guide"),className:`flex items-center gap-2 px-4 py-2.5 text-xs transition-colors ${s==="setup_guide"?"border-b-2 border-[var(--accent)] text-[var(--text-primary)]":"text-[var(--text-muted)] hover:text-[var(--text-secondary)]"}`,children:[e.jsx(ae,{size:14}),r("workers.setup_guide")]})]}),s==="fleet"&&e.jsx(Z,{value:l,onChange:t,options:j})]}),s==="fleet"?h?e.jsx(te,{cards:6}):!b||b.length===0?e.jsx(ee,{icon:L,title:r("workers.no_workers_found"),description:r(l!=="all"?"workers.try_changing_status_filter":"workers.no_workers_registered"),action:e.jsx("button",{type:"button",onClick:()=>c("setup_guide"),className:"rounded-[4px] bg-[var(--accent)] px-5 py-2 text-[11px] font-bold text-black",children:r("workers.view_setup_guide")})}):e.jsx("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:(b??[]).map(o=>e.jsx(oe,{worker:o,onClick:()=>d(`/workers/${o.id}`)},o.id))}):e.jsx(Q,{}),e.jsx(ne,{isOpen:g,onClose:()=>{p(!1),m(o=>o+1)},onRegistered:()=>{m(o=>o+1)}})]})}export{fe as default};