@useorgx/openclaw-plugin 0.7.15 → 0.7.16
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/dashboard/dist/assets/8pbG6uLK.js +1 -0
- package/dashboard/dist/assets/8pbG6uLK.js.br +0 -0
- package/dashboard/dist/assets/8pbG6uLK.js.gz +0 -0
- package/dashboard/dist/assets/B1LENRC8.js +212 -0
- package/dashboard/dist/assets/B1LENRC8.js.br +0 -0
- package/dashboard/dist/assets/B1LENRC8.js.gz +0 -0
- package/dashboard/dist/assets/{gZr_xKlA.js → BM75sh1f.js} +1 -1
- package/dashboard/dist/assets/BM75sh1f.js.br +0 -0
- package/dashboard/dist/assets/BM75sh1f.js.gz +0 -0
- package/dashboard/dist/assets/{CJjEAGFN.js → BYVYH9CH.js} +1 -1
- package/dashboard/dist/assets/BYVYH9CH.js.br +0 -0
- package/dashboard/dist/assets/BYVYH9CH.js.gz +0 -0
- package/dashboard/dist/assets/BkMrrjAv.js +1 -0
- package/dashboard/dist/assets/BkMrrjAv.js.br +0 -0
- package/dashboard/dist/assets/BkMrrjAv.js.gz +0 -0
- package/dashboard/dist/assets/BpF7v1Dk.js +1 -0
- package/dashboard/dist/assets/BpF7v1Dk.js.br +0 -0
- package/dashboard/dist/assets/BpF7v1Dk.js.gz +0 -0
- package/dashboard/dist/assets/{C9fvfXmS.js → Bv_86bUY.js} +1 -1
- package/dashboard/dist/assets/Bv_86bUY.js.br +0 -0
- package/dashboard/dist/assets/Bv_86bUY.js.gz +0 -0
- package/dashboard/dist/assets/{CFZ4Swr5.js → C3PrI8L7.js} +1 -1
- package/dashboard/dist/assets/C3PrI8L7.js.br +0 -0
- package/dashboard/dist/assets/C3PrI8L7.js.gz +0 -0
- package/dashboard/dist/assets/{C91KLKit.js → C6AqbA9J.js} +1 -1
- package/dashboard/dist/assets/C6AqbA9J.js.br +0 -0
- package/dashboard/dist/assets/C6AqbA9J.js.gz +0 -0
- package/dashboard/dist/assets/{7DhYqBrM.js → CUXb_4F3.js} +1 -1
- package/dashboard/dist/assets/CUXb_4F3.js.br +0 -0
- package/dashboard/dist/assets/CUXb_4F3.js.gz +0 -0
- package/dashboard/dist/assets/{3TtV4moZ.js → Cn8sRTkO.js} +1 -1
- package/dashboard/dist/assets/Cn8sRTkO.js.br +0 -0
- package/dashboard/dist/assets/Cn8sRTkO.js.gz +0 -0
- package/dashboard/dist/assets/{CnPC783_.js → D5IgXoTj.js} +1 -1
- package/dashboard/dist/assets/D5IgXoTj.js.br +0 -0
- package/dashboard/dist/assets/D5IgXoTj.js.gz +0 -0
- package/dashboard/dist/assets/DMKyYAtD.js +1 -0
- package/dashboard/dist/assets/DMKyYAtD.js.br +0 -0
- package/dashboard/dist/assets/DMKyYAtD.js.gz +0 -0
- package/dashboard/dist/assets/{CGj8kRhg.js → DXzpQUC0.js} +1 -1
- package/dashboard/dist/assets/DXzpQUC0.js.br +0 -0
- package/dashboard/dist/assets/DXzpQUC0.js.gz +0 -0
- package/dashboard/dist/assets/JDPvhd68.js +1 -0
- package/dashboard/dist/assets/JDPvhd68.js.br +0 -0
- package/dashboard/dist/assets/JDPvhd68.js.gz +0 -0
- package/dashboard/dist/assets/{3VwNyxUf.js → R6N_VVqm.js} +1 -1
- package/dashboard/dist/assets/R6N_VVqm.js.br +0 -0
- package/dashboard/dist/assets/R6N_VVqm.js.gz +0 -0
- package/dashboard/dist/assets/{CKrH5fYO.js → cEP7N1dn.js} +1 -1
- package/dashboard/dist/assets/cEP7N1dn.js.br +0 -0
- package/dashboard/dist/assets/cEP7N1dn.js.gz +0 -0
- package/dashboard/dist/assets/iLnvdWmW.css +1 -0
- package/dashboard/dist/assets/iLnvdWmW.css.br +0 -0
- package/dashboard/dist/assets/iLnvdWmW.css.gz +0 -0
- package/dashboard/dist/assets/{Ctw95IkC.js → konqMbVI.js} +1 -1
- package/dashboard/dist/assets/konqMbVI.js.br +0 -0
- package/dashboard/dist/assets/konqMbVI.js.gz +0 -0
- package/dashboard/dist/assets/{T2NFtzAv.js → wc6cgXzV.js} +1 -1
- package/dashboard/dist/assets/wc6cgXzV.js.br +0 -0
- package/dashboard/dist/assets/wc6cgXzV.js.gz +0 -0
- package/dashboard/dist/index.html +3 -3
- package/dashboard/dist/index.html.br +0 -0
- package/dashboard/dist/index.html.gz +0 -0
- package/dist/http/helpers/auto-continue-engine.d.ts +15 -0
- package/dist/http/helpers/auto-continue-engine.js +165 -0
- package/dist/http/helpers/mission-control.d.ts +3 -0
- package/dist/http/helpers/mission-control.js +38 -7
- package/dist/http/helpers/value-utils.d.ts +1 -1
- package/dist/http/helpers/value-utils.js +5 -2
- package/dist/http/index.js +3 -1
- package/dist/http/routes/chat.d.ts +1 -1
- package/dist/http/routes/chat.js +2 -2
- package/dist/http/routes/entities.js +60 -2
- package/dist/http/routes/entity-dynamic.js +49 -9
- package/dist/http/routes/live-snapshot.d.ts +10 -1
- package/dist/http/routes/live-snapshot.js +11 -3
- package/dist/http/routes/mission-control-actions.d.ts +6 -0
- package/dist/http/routes/mission-control-actions.js +33 -0
- package/package.json +1 -1
- package/dashboard/dist/assets/0RUEVzJa.js +0 -1
- package/dashboard/dist/assets/0RUEVzJa.js.br +0 -0
- package/dashboard/dist/assets/0RUEVzJa.js.gz +0 -0
- package/dashboard/dist/assets/3TtV4moZ.js.br +0 -0
- package/dashboard/dist/assets/3TtV4moZ.js.gz +0 -0
- package/dashboard/dist/assets/3VwNyxUf.js.br +0 -0
- package/dashboard/dist/assets/3VwNyxUf.js.gz +0 -0
- package/dashboard/dist/assets/7DhYqBrM.js.br +0 -0
- package/dashboard/dist/assets/7DhYqBrM.js.gz +0 -0
- package/dashboard/dist/assets/BVvffj0x.js +0 -1
- package/dashboard/dist/assets/BVvffj0x.js.br +0 -0
- package/dashboard/dist/assets/BVvffj0x.js.gz +0 -0
- package/dashboard/dist/assets/BiOgVMED.js +0 -1
- package/dashboard/dist/assets/BiOgVMED.js.br +0 -0
- package/dashboard/dist/assets/BiOgVMED.js.gz +0 -0
- package/dashboard/dist/assets/C91KLKit.js.br +0 -0
- package/dashboard/dist/assets/C91KLKit.js.gz +0 -0
- package/dashboard/dist/assets/C9fvfXmS.js.br +0 -0
- package/dashboard/dist/assets/C9fvfXmS.js.gz +0 -0
- package/dashboard/dist/assets/CFZ4Swr5.js.br +0 -0
- package/dashboard/dist/assets/CFZ4Swr5.js.gz +0 -0
- package/dashboard/dist/assets/CGj8kRhg.js.br +0 -0
- package/dashboard/dist/assets/CGj8kRhg.js.gz +0 -0
- package/dashboard/dist/assets/CJjEAGFN.js.br +0 -0
- package/dashboard/dist/assets/CJjEAGFN.js.gz +0 -0
- package/dashboard/dist/assets/CKrH5fYO.js.br +0 -0
- package/dashboard/dist/assets/CKrH5fYO.js.gz +0 -0
- package/dashboard/dist/assets/CMTTPXch.js +0 -1
- package/dashboard/dist/assets/CMTTPXch.js.br +0 -0
- package/dashboard/dist/assets/CMTTPXch.js.gz +0 -0
- package/dashboard/dist/assets/CnPC783_.js.br +0 -0
- package/dashboard/dist/assets/CnPC783_.js.gz +0 -0
- package/dashboard/dist/assets/Ctw95IkC.js.br +0 -0
- package/dashboard/dist/assets/Ctw95IkC.js.gz +0 -0
- package/dashboard/dist/assets/DHz-aQPw.js +0 -1
- package/dashboard/dist/assets/DHz-aQPw.js.br +0 -0
- package/dashboard/dist/assets/DHz-aQPw.js.gz +0 -0
- package/dashboard/dist/assets/DNX2foSJ.css +0 -1
- package/dashboard/dist/assets/DNX2foSJ.css.br +0 -0
- package/dashboard/dist/assets/DNX2foSJ.css.gz +0 -0
- package/dashboard/dist/assets/DxUw4FMR.js +0 -212
- package/dashboard/dist/assets/DxUw4FMR.js.br +0 -0
- package/dashboard/dist/assets/DxUw4FMR.js.gz +0 -0
- package/dashboard/dist/assets/T2NFtzAv.js.br +0 -0
- package/dashboard/dist/assets/T2NFtzAv.js.gz +0 -0
- package/dashboard/dist/assets/gZr_xKlA.js.br +0 -0
- package/dashboard/dist/assets/gZr_xKlA.js.gz +0 -0
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as p,j as e}from"./Dj2k1r16.js";import{y as D,E as W,e as m,
|
|
1
|
+
import{r as p,j as e}from"./Dj2k1r16.js";import{y as D,E as W,e as m,v as Q}from"./B1LENRC8.js";import"./DMKyYAtD.js";import"./eeHXe_OQ.js";import"./cX2e-TLi.js";import"./BjK42gtU.js";import"./BV0BcV1u.js";const q={blocked:0,failed:1,running:2,active:2,queued:3,in_progress:3,pending:4,paused:5,cancelled:6,completed:7,archived:8};function Y(n){if(!n)return 0;const x=Date.parse(n);return Number.isFinite(x)?x:0}function F(n){return Y(n.updatedAt??n.lastEventAt??n.startedAt)}function G(n,x){const i=q[(n.status??"").toLowerCase()]??99,y=q[(x.status??"").toLowerCase()]??99;return i!==y?i-y:F(x)-F(n)}function H(n,x){const i=n.trim().toLowerCase();return i==="failed"?m.red:i==="blocked"||x>0?m.red:i==="running"||i==="active"||i==="in_progress"?m.lime:i==="queued"||i==="pending"?m.amber:i==="completed"?m.teal:m.textMuted}function J(n){switch(n){case"active":return{title:"Active Sessions",subtitle:"Running and queued work across agents."};case"blocked":return{title:"Blocked Sessions",subtitle:"Work that needs attention before it can proceed."};case"failed":return{title:"Failed Sessions",subtitle:"Runs that exited with an error and may need a retry."};default:return{title:"Sessions",subtitle:"All sessions visible to this dashboard."}}}function K(n,x){var j;const i=(x.status??"").toLowerCase(),y=((j=x.blockers)==null?void 0:j.length)??0;return n==="active"?["running","active","queued","pending","in_progress"].includes(i):n==="blocked"?i==="blocked"||y>0:n==="failed"?i==="failed":!0}function le({open:n,onClose:x,mode:i,sessions:y,onOpenSession:j,onRunAction:A,onRefetch:L,onSetNotice:v}){const{title:I,subtitle:P}=J(i),[S,_]=p.useState(""),[w,B]=p.useState(new Set),[d,k]=p.useState(null),[M,h]=p.useState(null),[N,C]=p.useState(null);p.useEffect(()=>{n&&(h(null),C(null))},[n]);const f=p.useMemo(()=>y.filter(t=>K(i,t)),[i,y]),g=p.useMemo(()=>{const t={};for(const o of f){const a=(o.status??"unknown").toLowerCase();t[a]=(t[a]??0)+1}const r=f.filter(o=>{var a;return(o.status??"").toLowerCase()==="blocked"||(((a=o.blockers)==null?void 0:a.length)??0)>0}).length,s=f.filter(o=>(o.status??"").toLowerCase()==="failed").length,l=f.filter(o=>["running","active","queued","pending","in_progress"].includes((o.status??"").toLowerCase())).length;return{total:f.length,active:l,blocked:r,failed:s,byStatus:t}},[f]),u=p.useMemo(()=>{const t=S.trim().toLowerCase(),r=[...f].sort(G);return t?r.filter(s=>[s.title,s.agentName,s.agentId,s.runId,s.lastEventSummary].filter(Boolean).join(" ").toLowerCase().includes(t)):r},[S,f]);p.useEffect(()=>{n&&B(t=>{const r=new Set(u.map(l=>l.id)),s=new Set;for(const l of t)r.has(l)&&s.add(l);return s})},[u,n]);const b=w.size,T=u.length>0&&u.every(t=>w.has(t.id)),R=()=>{d||B(t=>u.length===0?t:T?new Set:new Set(u.map(r=>r.id)))},U=t=>{d||B(r=>{const s=new Set(r);return s.has(t)?s.delete(t):s.add(t),s})},O=async()=>{if(b===0||d)return;const t=[];for(const s of u){if(!w.has(s.id))continue;const l=s.blockers??[];if(l.length!==0){t.push(`- ${s.title} (${l.length} blocker${l.length===1?"":"s"})`);for(const o of l)t.push(` - ${o}`)}}const r=t.length>0?t.join(`
|
|
2
2
|
`):"No blockers found for selected sessions.";try{await navigator.clipboard.writeText(r),h("Copied blockers to clipboard.")}catch{h("Copy failed (clipboard unavailable).")}},$=async t=>{if(b===0||d)return;if(t==="cancel"){C({text:""});return}const r=u.filter(a=>w.has(a.id));h(null),k({action:t,processed:0,total:r.length});let s=0;const l=[];for(const a of r)try{await A(a,t)}catch(c){s+=1;const E=c instanceof Error?c.message:"unknown error";l.push(`${a.title||a.runId}: ${E}`)}finally{k(c=>c&&{...c,processed:Math.min(c.total,c.processed+1)})}const o=r.length-s;if(k(null),s>0){const a=l.length>0?` — ${l[0]}${l.length>1?` (+${l.length-1} more)`:""}`:"";h(`${t} finished: ${o} ok, ${s} failed.${a}`)}else h(`${t} finished: ${o} session${o===1?"":"s"}.`);try{await L()}catch{}t==="resume"?v(`Bulk resume requested: ${o} ok${s?`, ${s} failed`:""}.`):t==="pause"?v(`Bulk pause requested: ${o} ok${s?`, ${s} failed`:""}.`):t==="complete"&&v(`Bulk mark completed requested: ${o} ok${s?`, ${s} failed`:""}.`)},z=async()=>{if(!N||d||N.text.trim().toUpperCase()!=="CANCEL")return;const t=u.filter(a=>w.has(a.id));h(null),k({action:"cancel",processed:0,total:t.length}),C(null);let r=0;const s=[];for(const a of t)try{await A(a,"cancel")}catch(c){r+=1;const E=c instanceof Error?c.message:"unknown error";s.push(`${a.title||a.runId}: ${E}`)}finally{k(c=>c&&{...c,processed:Math.min(c.total,c.processed+1)})}const l=t.length-r;k(null);const o=s.length>0?` — ${s[0]}${s.length>1?` (+${s.length-1} more)`:""}`:"";h(`cancel finished: ${l} ok${r?`, ${r} failed`:""}.${o}`),v(`Bulk cancel requested: ${l} ok${r?`, ${r} failed`:""}.`);try{await L()}catch{}};return e.jsx(D,{open:n,onClose:x,maxWidth:"max-w-4xl",children:e.jsxs("div",{className:"flex h-full w-full flex-col",children:[e.jsxs("div",{className:"border-b border-subtle px-5 pt-5 pb-4",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("h3",{className:"inline-flex items-center gap-2 text-heading font-semibold text-white",children:[e.jsx(W,{type:"session",size:14}),e.jsx("span",{className:"truncate",children:I}),e.jsx("span",{className:"rounded-full border border-strong bg-white/[0.04] px-2 py-0.5 text-caption font-semibold text-primary",children:g.total})]}),e.jsx("p",{className:"mt-1 text-body leading-relaxed text-secondary",children:P}),e.jsxs("div",{className:"mt-3 flex flex-wrap items-center gap-1.5",children:[e.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full border border-white/[0.1] bg-white/[0.03] px-2 py-0.5 text-micro text-secondary",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full",style:{backgroundColor:m.teal}}),"Total ",e.jsx("span",{className:"font-semibold text-white",children:g.total})]}),e.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full border border-white/[0.1] bg-white/[0.03] px-2 py-0.5 text-micro text-secondary",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full",style:{backgroundColor:g.active>0?m.lime:m.textMuted}}),"Active ",e.jsx("span",{className:"font-semibold text-white",children:g.active})]}),e.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full border border-white/[0.1] bg-white/[0.03] px-2 py-0.5 text-micro text-secondary",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full",style:{backgroundColor:g.blocked>0?m.red:m.textMuted}}),"Blocked ",e.jsx("span",{className:"font-semibold text-white",children:g.blocked})]}),e.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full border border-white/[0.1] bg-white/[0.03] px-2 py-0.5 text-micro text-secondary",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full",style:{backgroundColor:g.failed>0?m.red:m.textMuted}}),"Failed ",e.jsx("span",{className:"font-semibold text-white",children:g.failed})]})]})]}),e.jsx("button",{type:"button",onClick:x,className:"rounded-md border border-strong bg-white/[0.03] px-2.5 py-1.5 text-caption text-primary transition-colors hover:bg-white/[0.08]","aria-label":"Close bulk modal",children:"Close"})]}),e.jsxs("div",{className:"mt-4 flex flex-col gap-2 sm:flex-row sm:items-center",children:[e.jsxs("div",{className:"flex-1",children:[e.jsx("label",{className:"sr-only",htmlFor:"bulk-sessions-search",children:"Search sessions"}),e.jsx("input",{id:"bulk-sessions-search",value:S,onChange:t=>_(t.target.value),placeholder:"Search title, agent, run id…","data-modal-autofocus":"true",className:"w-full rounded-lg border border-strong bg-black/25 px-3 py-2 text-body text-white placeholder:text-muted focus:outline-none focus:ring-1 focus:ring-[#BFFF00]/35"})]}),e.jsx("button",{type:"button",onClick:R,disabled:u.length===0||!!d,className:"rounded-lg border border-strong bg-white/[0.03] px-3 py-2 text-caption text-primary transition-colors hover:bg-white/[0.08] disabled:opacity-45",children:T?"Clear all":`Select all (${u.length})`})]}),M&&e.jsx("div",{className:"mt-3 rounded-xl border border-white/[0.08] bg-white/[0.02] px-3 py-2 text-body text-secondary",children:M}),N&&e.jsxs("div",{className:"mt-3 rounded-xl border border-red-400/25 bg-red-500/[0.06] px-3 py-2.5",children:[e.jsxs("p",{className:"text-body font-semibold text-red-200",children:["Cancel ",b," session",b===1?"":"s","?"]}),e.jsxs("p",{className:"mt-1 text-caption text-red-200/70",children:["This is destructive. Type ",e.jsx("span",{className:"font-semibold",children:"CANCEL"})," to confirm."]}),e.jsxs("div",{className:"mt-2 flex flex-col gap-2 sm:flex-row sm:items-center",children:[e.jsx("input",{value:N.text,onChange:t=>C({text:t.target.value}),placeholder:"CANCEL",className:"flex-1 rounded-lg border border-red-300/25 bg-black/30 px-3 py-2 text-body text-white placeholder:text-muted focus:outline-none focus:ring-1 focus:ring-red-300/40"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("button",{type:"button",onClick:()=>C(null),className:"rounded-lg border border-strong bg-white/[0.03] px-3 py-2 text-caption text-primary transition-colors hover:bg-white/[0.08]",children:"Back"}),e.jsx("button",{type:"button",onClick:z,disabled:N.text.trim().toUpperCase()!=="CANCEL",className:"rounded-lg border border-red-300/25 bg-red-500/15 px-3 py-2 text-caption font-semibold text-red-200 transition-colors hover:bg-red-500/20 disabled:opacity-45",children:"Confirm cancel"})]})]})]})]}),e.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-5 py-4",children:u.length===0?e.jsx("div",{className:"rounded-xl border border-subtle bg-white/[0.02] p-4 text-body text-secondary",children:"No sessions match this view."}):e.jsx("div",{className:"space-y-2",children:u.map(t=>{const r=w.has(t.id),s=t.blockers??[],l=H(t.status??"",s.length),o=t.updatedAt??t.lastEventAt??t.startedAt,a=[(t.agentName??t.agentId??"").trim()||"Unknown agent",(t.status??"unknown").toLowerCase(),o?Q(o):null].filter(Boolean);return e.jsx("div",{className:"rounded-xl border border-white/[0.08] bg-white/[0.02] px-3 py-2.5 transition-colors hover:bg-white/[0.04]",style:{borderColor:r?`${m.lime}40`:"rgba(255,255,255,0.08)"},children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("input",{type:"checkbox",checked:r,onChange:()=>U(t.id),disabled:!!d,className:"mt-0.5 h-4 w-4 rounded border-white/20 bg-black/40 text-lime focus:ring-lime/40","aria-label":`Select session ${t.title}`}),e.jsx("button",{type:"button",onClick:()=>j(t),disabled:!!d,className:"min-w-0 flex-1 text-left",title:"Open session inspector",children:e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"truncate text-body font-medium text-white",children:t.title}),e.jsx("p",{className:"mt-0.5 text-caption text-secondary",children:a.join(" · ")}),t.lastEventSummary&&e.jsx("p",{className:"mt-1 line-clamp-2 text-caption text-secondary",children:t.lastEventSummary}),s.length>0&&e.jsxs("p",{className:"mt-1 text-micro text-red-200/80",children:[s.length," blocker",s.length===1?"":"s"," · ",s[0]]})]}),e.jsx("span",{className:"shrink-0 rounded-full border px-2 py-0.5 text-micro font-semibold uppercase tracking-[0.08em]",style:{borderColor:`${l}30`,backgroundColor:`${l}14`,color:l},children:(t.status??"unknown").toUpperCase()})]})})]})},t.id)})})}),e.jsxs("div",{className:"flex flex-col gap-2 border-t border-subtle px-5 py-3 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2 text-caption text-secondary",children:[d?e.jsxs("span",{children:[d.action," ",d.processed,"/",d.total]}):e.jsx("span",{children:b>0?`${b} selected`:"No selection"}),i==="blocked"&&e.jsx("button",{type:"button",onClick:O,disabled:b===0||!!d,className:"rounded-md border border-strong bg-white/[0.03] px-2.5 py-1.5 text-caption text-secondary transition-colors hover:bg-white/[0.08] disabled:opacity-45",children:"Copy blockers"})]}),e.jsxs("div",{className:"flex flex-wrap items-center justify-end gap-2",children:[e.jsx("button",{type:"button",onClick:()=>{const t=u.find(r=>w.has(r.id))??null;t&&j(t)},disabled:b!==1||!!d,className:"rounded-md border border-strong bg-white/[0.03] px-3 py-1.5 text-caption text-primary transition-colors hover:bg-white/[0.08] disabled:opacity-45",children:"Open inspector"}),e.jsx("button",{type:"button",onClick:()=>void $("resume"),disabled:b===0||!!d,className:"rounded-md border border-lime/25 bg-lime/10 px-3 py-1.5 text-caption font-semibold text-lime transition-colors hover:bg-lime/20 disabled:opacity-45",children:"Resume selected"}),e.jsx("button",{type:"button",onClick:()=>void $("complete"),disabled:b===0||!!d,className:"rounded-md border border-teal/25 bg-teal/10 px-3 py-1.5 text-caption font-semibold text-teal transition-colors hover:bg-teal/20 disabled:opacity-45",children:"Mark completed"}),e.jsx("button",{type:"button",onClick:()=>void $("pause"),disabled:b===0||!!d,className:"rounded-md border border-strong bg-white/[0.03] px-3 py-1.5 text-caption text-primary transition-colors hover:bg-white/[0.08] disabled:opacity-45",children:"Pause selected"}),e.jsx("button",{type:"button",onClick:()=>void $("cancel"),disabled:b===0||!!d,className:"rounded-md border border-red-300/25 bg-red-500/10 px-3 py-1.5 text-caption font-semibold text-red-200 transition-colors hover:bg-red-500/15 disabled:opacity-45",children:"Cancel selected"})]})]})]})})}export{le as BulkSessionsModal};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as x,j as e}from"./Dj2k1r16.js";import{
|
|
1
|
+
import{r as x,j as e}from"./Dj2k1r16.js";import{c as R}from"./DMKyYAtD.js";import{l as T,q as V,y as W,S as u,e as o,M as $,b as E}from"./B1LENRC8.js";import{S as b}from"./DXzpQUC0.js";import"./eeHXe_OQ.js";import"./cX2e-TLi.js";import"./BjK42gtU.js";import"./BV0BcV1u.js";const f={draft:o.textMuted,in_review:o.amber,approved:o.lime,changes_requested:o.red,superseded:o.textMuted,archived:o.textMuted},U={draft:"Draft",in_review:"In Review",approved:"Approved",changes_requested:"Changes Requested",superseded:"Superseded",archived:"Archived"};function D(){return e.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:o.cyan,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"}),e.jsx("path",{d:"M14 2v4a2 2 0 0 0 2 2h4"}),e.jsx("path",{d:"M10 9H8"}),e.jsx("path",{d:"M16 13H8"}),e.jsx("path",{d:"M16 17H8"})]})}function J(){var M,_,C,L,I,q;const{state:l,close:m}=T(),g=null,j=!1,[c,p]=x.useState(null),{data:a,isLoading:F,isFetching:v,error:y,refetch:H}=R({queryKey:V.artifactDetail({artifactId:l.artifactId??"",authToken:g,embedMode:j}),enabled:!!l.artifactId,queryFn:async()=>{const i=E({authToken:g,embedMode:j}),s=await fetch(`/orgx/api/artifacts/${encodeURIComponent(l.artifactId)}`,{headers:i});if(!s.ok){const r=await s.json().catch(()=>null),d=(typeof(r==null?void 0:r.error)=="string"?r.error:null)??(r!=null&&r.error&&typeof r.error=="object"&&typeof r.error.message=="string"?r.error.message:null)??(typeof(r==null?void 0:r.message)=="string"?r.message:null),B=s.status===401?"Authentication required to view this artifact.":`Failed to fetch artifact (${s.status}).`;throw new Error(d!=null&&d.trim().length?d.trim():B)}return s.json()}}),t=a==null?void 0:a.artifact,S=(a==null?void 0:a.localFallback)===!0||((M=t==null?void 0:t.metadata)==null?void 0:M.local_fallback)===!0,w=(typeof(a==null?void 0:a.warning)=="string"&&a.warning.trim().length>0?a.warning:(_=t==null?void 0:t.metadata)==null?void 0:_.local_warning)??null,h=((C=t==null?void 0:t.metadata)==null?void 0:C.preview_markdown)??null,n=x.useMemo(()=>{if(!(t!=null&&t.metadata))return null;const i=[t.metadata.local_source_path,t.metadata.url,t.metadata.path,t.metadata.file_path,t.metadata.filepath,t.metadata.artifact_path,t.metadata.output_path];for(const s of i)if(typeof s=="string"&&s.trim().length>0)return s.trim();return null},[t==null?void 0:t.metadata]),k=x.useMemo(()=>n?/^https?:\/\//i.test(n)?n:`/orgx/api/live/filesystem/open?path=${encodeURIComponent(n)}`:null,[n]),N=((L=t==null?void 0:t.metadata)==null?void 0:L.external_url)??(t==null?void 0:t.artifact_url);x.useEffect(()=>{if(!c)return;const i=window.setTimeout(()=>p(null),2e3);return()=>window.clearTimeout(i)},[c]);const A=async(i,s)=>{try{await navigator.clipboard.writeText(i),p(`${s} copied`)}catch{p("Copy failed")}};return e.jsxs(W,{open:!!l.artifactId,onClose:m,maxWidth:"max-w-3xl",children:[F&&e.jsxs("div",{className:"p-6 space-y-4",children:[e.jsx(b,{className:"h-6 w-2/3"}),e.jsx(b,{className:"h-4 w-1/3"}),e.jsx(b,{className:"h-32 w-full"})]}),y&&e.jsxs("div",{className:"space-y-4 p-6",children:[e.jsxs("div",{className:"rounded-xl border border-red-300/22 bg-red-500/[0.08] p-4",children:[e.jsx("p",{className:"text-body font-semibold text-red-200",children:"Failed to load artifact"}),e.jsx("p",{className:"mt-1 text-caption leading-relaxed text-red-100/80",children:y.message})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("button",{type:"button",onClick:m,className:"rounded-full border border-strong bg-white/[0.03] px-3 py-1.5 text-caption font-semibold text-primary transition-colors hover:bg-white/[0.08]",children:"Back to activity"}),e.jsx("button",{type:"button",onClick:()=>void H(),disabled:v,className:"rounded-full border border-red-300/22 bg-red-500/[0.08] px-3 py-1.5 text-caption font-semibold text-red-100 transition-colors hover:bg-red-500/[0.14] disabled:opacity-45",children:v?"Retrying…":"Retry"})]})]}),t&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-subtle px-5 py-4 sm:px-6",children:[e.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[e.jsx(D,{}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("h3",{className:"truncate text-sm font-medium text-white",children:t.name}),e.jsxs("div",{className:"flex items-center gap-2 mt-0.5",children:[e.jsx(u,{tone:"muted",className:"text-micro uppercase tracking-[0.06em]",children:((I=t.catalog)==null?void 0:I.label)??t.artifact_type}),e.jsx(u,{tone:"neutral",className:"text-micro font-semibold uppercase tracking-[0.06em]",style:{color:f[t.status]??o.textMuted,backgroundColor:`${f[t.status]??o.textMuted}20`,borderColor:`${f[t.status]??o.textMuted}44`},children:U[t.status]??t.status}),((q=t.catalog)==null?void 0:q.domain)&&e.jsxs("span",{className:"text-micro text-faint",children:[t.catalog.domain," / ",t.catalog.stage]}),c&&e.jsx(u,{tone:"neutral",className:"text-micro text-secondary",children:c})]})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[N&&e.jsx("a",{href:N,target:"_blank",rel:"noopener noreferrer",className:"rounded-lg p-2 text-secondary transition-colors hover:bg-white/[0.08] hover:text-white",title:"Open source",children:e.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"M15 3h6v6"}),e.jsx("path",{d:"M10 14 21 3"}),e.jsx("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"})]})}),e.jsx("button",{onClick:m,className:"p-2 rounded-lg hover:bg-white/[0.06] text-secondary hover:text-white transition-colors",children:e.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"M18 6 6 18"}),e.jsx("path",{d:"m6 6 12 12"})]})})]})]}),e.jsxs("div",{className:"max-h-[65vh] overflow-y-auto px-5 py-4 sm:px-6 space-y-4",children:[S&&e.jsxs("div",{className:"rounded-xl border border-amber-300/25 bg-amber-500/[0.09] p-4",children:[e.jsx("p",{className:"text-caption font-semibold uppercase tracking-[0.08em] text-amber-100/90",children:"Local fallback artifact"}),e.jsx("p",{className:"mt-1 text-body text-amber-50/90",children:"This artifact is buffered locally because OrgX registration is currently unavailable."}),w&&e.jsxs("p",{className:"mt-1.5 text-caption text-amber-100/70",children:["Upstream error: ",w]}),e.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[k&&e.jsx("a",{href:k,target:"_blank",rel:"noopener noreferrer",className:"rounded-full border border-amber-200/25 bg-black/25 px-3 py-1 text-caption font-semibold text-amber-100 transition-colors hover:bg-black/35",children:"Open local artifact"}),n&&e.jsx("button",{type:"button",onClick:()=>void A(n,"Artifact path"),className:"rounded-full border border-amber-200/25 bg-black/20 px-3 py-1 text-caption font-semibold text-amber-100 transition-colors hover:bg-black/35",children:"Copy path"})]})]}),t.description&&e.jsx("div",{children:e.jsx("p",{className:"text-body leading-relaxed text-primary",children:t.description})}),h&&e.jsx("div",{className:"rounded-xl border border-white/[0.06] bg-white/[0.02] p-4",children:e.jsx($,{mode:"block",text:h,className:"text-body leading-relaxed text-primary"})}),!t.description&&!h&&e.jsxs("div",{className:"py-12 text-center text-muted",children:[e.jsxs("svg",{className:"mx-auto mb-3 opacity-50",width:"32",height:"32",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"}),e.jsx("path",{d:"M14 2v4a2 2 0 0 0 2 2h4"})]}),e.jsx("p",{className:"text-sm",children:"No preview available"})]}),e.jsxs("div",{className:"flex flex-wrap gap-x-6 gap-y-1.5 text-micro text-faint",children:[e.jsxs("span",{children:["Entity: ",t.entity_type,"/",t.entity_id.slice(0,8)]}),e.jsxs("span",{children:["Version: ",t.version]}),e.jsxs("span",{children:["Updated:"," ",new Date(t.updated_at).toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})]})]})]})]})]})}export{J as ArtifactViewerModal};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as o,j as e}from"./Dj2k1r16.js";import{E as ie,e as T,y as qe,a0 as H,v as De,a1 as Be,a2 as Oe,M as ze,h as Le,P as Ue,B as oe}from"./B1LENRC8.js";import{E as Ge}from"./C6AqbA9J.js";import{A as Re,m as ce,u as Ke}from"./eeHXe_OQ.js";import{u as Xe}from"./Bv_86bUY.js";import"./DMKyYAtD.js";import"./cX2e-TLi.js";import"./BjK42gtU.js";import"./BV0BcV1u.js";const Je={pr:"⎋",file:"◇",artifact:"▪",log:"▸",decision:"◈"};function Ve(a){return a>=.8?"#BFFF00":a>=.5?"#F5B700":"#FF6B88"}function Ze(a){const t=a.match(/https?:\/\/\S+/);return t?t[0]:null}function Qe({evidenceType:a,title:t,summary:u,sourceUrl:p,confidence:b,payload:v,icon:R,label:w,onOpenTerminal:k}){const[N,B]=o.useState(!1),O=t??w??null,E=a??(R?R.toUpperCase():null),_=R?Je[R]:null,M=R==="pr"&&w?Ze(w):null;return e.jsxs("div",{className:"rounded-xl border border-white/[0.06] bg-white/[0.02] px-3 py-2.5",children:[e.jsxs("div",{className:"flex items-start gap-2.5 cursor-pointer",onClick:()=>B(y=>!y),children:[(E||_)&&e.jsxs("span",{className:"mt-0.5 flex-shrink-0 rounded bg-white/[0.06] px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wider text-secondary",children:[_?e.jsx("span",{className:"mr-1",children:_}):null,E]}),e.jsxs("div",{className:"min-w-0 flex-1",children:[O&&e.jsx("p",{className:"text-body font-medium text-primary",children:p?e.jsx("a",{href:p,target:"_blank",rel:"noopener noreferrer",className:"text-[#D8FFA1] hover:underline",onClick:y=>y.stopPropagation(),children:O}):M?e.jsx("a",{href:M,target:"_blank",rel:"noopener noreferrer",className:"text-[#D8FFA1] hover:underline",onClick:y=>y.stopPropagation(),children:O}):O}),u&&e.jsx("p",{className:`mt-0.5 text-caption text-secondary ${N?"":"line-clamp-2"}`,children:u})]}),e.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:`mt-1 flex-shrink-0 text-muted transition-transform ${N?"rotate-180":""}`,children:e.jsx("path",{d:"m6 9 6 6 6-6"})})]}),b!=null&&e.jsxs("div",{className:"mt-2 flex items-center gap-2",children:[e.jsx("div",{className:"h-1 flex-1 overflow-hidden rounded-full bg-white/[0.06]",children:e.jsx("div",{className:"h-full rounded-full transition-all",style:{width:`${Math.round(b*100)}%`,backgroundColor:Ve(b)}})}),e.jsxs("span",{className:"text-micro text-muted tabular-nums",children:[Math.round(b*100),"%"]})]}),e.jsx(Re,{children:N&&e.jsx(ce.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.2},className:"overflow-hidden",children:e.jsxs("div",{className:"mt-2 space-y-2",children:[R==="log"&&k&&e.jsxs("button",{type:"button",onClick:y=>{y.stopPropagation(),k()},className:"inline-flex items-center gap-1.5 rounded-lg border border-white/[0.12] bg-white/[0.04] px-3 py-1.5 text-caption font-semibold text-primary transition-colors hover:bg-white/[0.08]",children:[e.jsx("span",{className:"font-mono text-micro",children:">_"}),"Open in terminal"]}),v&&Object.keys(v).length>0&&e.jsx("pre",{className:"max-h-40 overflow-auto rounded-lg bg-black/40 p-2.5 text-micro text-secondary font-mono",children:JSON.stringify(v,null,2)})]})})})]})}function Ye({segments:a}){return a.length===0?null:e.jsx("nav",{className:"flex items-center gap-1.5 min-w-0 text-caption text-secondary",children:a.map((t,u)=>e.jsxs("span",{className:"flex items-center gap-1.5 min-w-0",children:[u>0&&e.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"flex-shrink-0 text-faint",children:e.jsx("path",{d:"m9 18 6-6-6-6"})}),t.icon&&e.jsx(ie,{type:t.icon,size:11,className:"flex-shrink-0 opacity-80"}),t.onClick?e.jsx("button",{type:"button",onClick:t.onClick,className:"truncate transition-colors hover:text-primary",children:t.label}):e.jsx("span",{className:"truncate",children:t.label})]},u))})}const ye={label:"Retry this workstream",description:"Re-run with the same configuration. Recommended if this was a transient issue.",impliedStatus:"approved"},K={label:"Skip and continue",description:"Mark as accepted and move to the next workstream.",impliedStatus:"approved"},He=[{test:/Worker exited without structured output.*?code=(\S+?),\s*signal=(\S+?)\)/i,headline:"Agent work stopped unexpectedly",explain:(a,t)=>{const u=t[1]==="null"?"none":t[1],p=t[2]==="null"?"none":t[2];return`The agent process exited before producing results. Exit code: ${u}. Signal: ${p}. This usually means the worker was terminated externally or ran out of resources.`},severity:"critical",options:[ye,{label:"Retry with more resources",description:"Increase token budget before re-running.",impliedStatus:"approved"},K],extractDetails:(a,t)=>({exitCode:t[1]==="null"?void 0:t[1],signal:t[2]==="null"?void 0:t[2]})},{test:/MCP handshake failed(?:\s+for\s+(\S+))?/i,headline:"Agent couldn't connect to tools",explain:(a,t)=>`The agent failed to connect to its tool server${t[1]?` (${t[1]})`:""}. This typically means the MCP server is unreachable or took too long to respond.`,severity:"critical",options:[ye,{label:"Check MCP server",description:"Investigate the tool server connection before retrying.",impliedStatus:"approved"},K],extractDetails:(a,t)=>({server:t[1]||void 0})},{test:/(?:Slice|Autopilot slice) timed out after (\d+)/i,headline:"Agent ran out of time",explain:(a,t)=>{const u=Math.round(parseInt(t[1],10)/6e4);return`The agent exceeded its ${u>0?`${u}-minute`:`${t[1]}ms`} time limit. Consider breaking the work into smaller steps or increasing the time budget.`},severity:"warning",options:[{label:"Retry with more time",description:"Increase the timeout before re-running.",impliedStatus:"approved"},{label:"Break into smaller tasks",description:"Split the workstream into smaller pieces that fit the time budget.",impliedStatus:"approved"},K],extractDetails:(a,t)=>({elapsedMs:t[1]})},{test:/(?:Slice|Autopilot slice) stalled/i,headline:"Agent stopped making progress",explain:()=>"The agent stopped producing output. It may be stuck in a loop, waiting on an unresponsive resource, or unable to proceed with the current approach.",severity:"warning",options:[ye,{label:"Review logs",description:"Check the session logs to understand why the agent stalled.",impliedStatus:"approved"},K]},{test:/blocked.*?(?:needs|requires?) intervention/i,headline:"Agent needs your help to continue",explain:()=>"The agent reached a point where it cannot proceed without human guidance. This may be a question about requirements, a permission needed, or an ambiguity.",severity:"warning",options:[{label:"Review blocker",description:"Look at what the agent needs and provide guidance.",impliedStatus:"approved"},{label:"Provide guidance",description:"Add a note with instructions for the agent.",impliedStatus:"approved"},K]},{test:/completed.*?(?:without|no) (?:verifiable )?(?:outcomes?|artifacts?)/i,headline:"Agent finished but produced no outputs",explain:()=>"The agent reported completion but produced no artifacts or status updates. The work may have been done informally, or the agent could not find actionable work.",severity:"info",options:[{label:"Accept as-is",description:"The work was done informally or no output was needed.",impliedStatus:"approved"},{label:"Retry with stronger output requirements",description:"Re-run and require the agent to produce structured artifacts.",impliedStatus:"approved"},K]},{test:/Spawn guard denied/i,headline:"Agent dispatch was blocked by safety check",explain:()=>"The system's safety checks prevented this agent from starting. This is typically due to capacity limits or quality gate requirements.",severity:"warning",options:[{label:"Approve exception",description:"Override the safety check and allow dispatch.",impliedStatus:"approved"},{label:"Investigate quality gate",description:"Review what safety check failed before proceeding.",impliedStatus:"approved"},K]},{test:/code=(\d+)/i,headline:"Agent encountered an error",explain:(a,t)=>`The agent process exited with error code ${t[1]}. Reviewing the session logs will show what operation failed.`,severity:"critical",options:[ye,{label:"Review error logs",description:"Check session logs to understand the error before retrying.",impliedStatus:"approved"},K],extractDetails:(a,t)=>({exitCode:t[1]})}];function et(a){var u;const t=a.context||a.title||"";for(const p of He){const b=t.match(p.test);if(b)return{headline:p.headline,explanation:p.explain(t,b),structuredDetails:((u=p.extractDetails)==null?void 0:u.call(p,t,b))??{},suggestedOptions:p.options,severity:p.severity}}return a.decisionType==="autopilot_failure"?{headline:"Agent work needs attention",explanation:t||"An issue occurred during autopilot execution that requires review.",structuredDetails:{},suggestedOptions:[ye,K],severity:"warning"}:{headline:a.title||"Decision needed",explanation:t||"Review the details and choose an action.",structuredDetails:{},suggestedOptions:[],severity:"info"}}function tt(a){return a.map((t,u)=>({id:`suggested-${u}`,label:t.label,description:t.description,impliedStatus:t.impliedStatus,actionType:null,requiresNote:!1}))}function rt(a,t){var w;if(!t||!a.workstreamId||!t.nodes.find(k=>k.id===a.workstreamId&&k.entityType==="workstream"))return null;const p=new Set(t.edges.filter(k=>k.source===a.workstreamId).map(k=>k.target)),b=[];for(const k of p){const N=t.nodes.find(B=>B.id===k);N&&b.push({id:N.id,title:N.title,taskCount:((w=N.children)==null?void 0:w.length)??0,status:N.status})}if(b.length===0)return null;const v=b.reduce((k,N)=>k+N.taskCount,0),R=b.some(k=>t.edges.some(N=>N.source===k.id));return{blockedWorkstreams:b,totalBlockedTasks:v,criticalPath:R}}function st(a){const t=a.blockedWorkstreams.length,u=a.blockedWorkstreams.map(p=>p.title);return t===1?`Resolving this unblocks 1 downstream workstream: ${u[0]}.`:t<=3?`Resolving this unblocks ${t} downstream workstreams: ${u.join(", ")}.`:`Resolving this unblocks ${t} downstream workstreams including ${u[0]} and ${u[1]}.`}const Pe=typeof navigator<"u"&&/Mac|iPhone|iPad/.test(navigator.userAgent);function nt(a){try{return JSON.stringify(a,null,2)}catch{return null}}function Fe(a){if(typeof a!="string")return null;const t=a.trim().toLowerCase();return t==="rejected"?"declined":t==="approved"||t==="declined"||t==="cancelled"?t:null}function Ce(a,t){return!a||a.trim().length===0?t:Le(a.trim())||t}function it(a){switch(a){case"spawn_guard_blocked":return"Spawn Guard";case"autopilot_failure":return"Autopilot Failure";case"budget_exceeded":return"Budget Exceeded";case"scope_change":return"Scope Change";case"conflict_resolution":return"Conflict Resolution";case"approval_required":return"Approval Required";case"review_required":return"Review Required";case"permission_request":return"Permission Request";default:return a.replace(/[_-]/g," ").replace(/\b\w/g,t=>t.toUpperCase())}}function at(a){const t=a.toLowerCase();return t==="critical"||t==="p0"?T.red:t==="high"||t==="p1"?T.amber:t==="medium"||t==="p2"?T.iris:"rgba(255,255,255,0.5)"}function lt({open:a,decision:t,onClose:u,onApprove:p,onReject:b,initiativeTitle:v,workstreamTitle:R,onNavigate:w,currentIndex:k,totalCount:N,onFocusRunId:B,graph:O}){const[E,_]=o.useState("idle"),[M,y]=o.useState(null),[P,F]=o.useState(null),[C,X]=o.useState(""),[ve,ee]=o.useState(!1),[de,je]=o.useState(!1),J=o.useRef(null),ae=o.useRef(),ue=o.useRef(u);ue.current=u,o.useEffect(()=>{if(a){_("idle"),y(null);const i=(t==null?void 0:t.selectedOptionId)??(t!=null&&t.options&&t.options.length===1?t.options[0].id:null);F(i),X(""),ee(!1),je(!1)}return()=>{ae.current&&clearTimeout(ae.current)}},[a,t==null?void 0:t.id]);const z=t==null?void 0:t.metadata,W=o.useMemo(()=>{if(!z)return[];const i=z,l=i.decision_options??i.options??i.actions??null;if(!Array.isArray(l))return[];const j=[],D=new Set;for(let L=0;L<l.length;L+=1){const Q=l[L];if(typeof Q=="string"){const s=Q.trim();if(!s)continue;const r=`option-${L+1}`;if(D.has(r))continue;D.add(r),j.push({id:r,label:s,description:null,impliedStatus:null,actionType:null,requiresNote:!1});continue}if(!Q||typeof Q!="object")continue;const g=Q,be=typeof g.id=="string"&&g.id.trim()||typeof g.option_id=="string"&&g.option_id.trim()||typeof g.action_id=="string"&&g.action_id.trim()||`option-${L+1}`;if(D.has(be))continue;const we=typeof g.label=="string"&&g.label.trim()||typeof g.title=="string"&&g.title.trim()||typeof g.name=="string"&&g.name.trim()||typeof g.action=="string"&&g.action.trim()||null;we&&(D.add(be),j.push({id:be,label:we,description:typeof g.description=="string"?g.description:null,impliedStatus:Fe(g.implied_status)??Fe(g.status),actionType:typeof g.action_type=="string"&&g.action_type||typeof g.type=="string"&&g.type||null,requiresNote:g.requires_note===!0||g.requiresNote===!0||g.note_required===!0}))}return j.slice(0,12)},[z]),f=o.useMemo(()=>t?et(t):null,[t==null?void 0:t.context,t==null?void 0:t.title,t==null?void 0:t.decisionType]),te=o.useMemo(()=>t?rt(t,O??null):null,[t==null?void 0:t.workstreamId,t==null?void 0:t.initiativeId,O]),le=((t==null?void 0:t.waitingMinutes)??0)>1440,A=o.useMemo(()=>t!=null&&t.options&&t.options.length>0?t.options:W.length>0?W:f&&f.suggestedOptions.length>0?tt(f.suggestedOptions):[],[t==null?void 0:t.options,W,f]),x=o.useMemo(()=>A.find(i=>i.id===P)??null,[A,P]),pe=(x==null?void 0:x.requiresNote)===!0,h=o.useMemo(()=>{const i=((t==null?void 0:t.context)??"").trim();if(i)return i;if(!z)return"";const l=z,j=(typeof l.summary=="string"?l.summary:null)??(typeof l.description=="string"?l.description:null)??"";return String(j??"").trim()},[t==null?void 0:t.context,z]),V=o.useMemo(()=>{const i=(t==null?void 0:t.waitingMinutes)??0;return i>=15?T.red:i>=5?T.amber:T.teal},[t==null?void 0:t.waitingMinutes]),q=o.useCallback(async()=>{if(!t)return;const i=nt({decision:t,metadata:z});if(i)try{await navigator.clipboard.writeText(i),ee(!0),setTimeout(()=>ee(!1),2e3)}catch{}},[t,z]),U=o.useCallback(()=>{const i=C.trim(),l=x==null?void 0:x.id;if(!(!i&&!l))return{note:i.length>0?i:void 0,optionId:l??void 0}},[C,x]),re=o.useCallback(async()=>{if(!t||!p)return;if(A.length>0&&!x){y("Select an option before approving this decision.");return}if(x!=null&&x.requiresNote&&C.trim().length===0){y("A note is required for the selected option."),requestAnimationFrame(()=>{var l;return(l=J.current)==null?void 0:l.focus()});return}let i=!1;if(_(l=>l==="approving"||l==="rejecting"?l:(i=!0,"approving")),!!i){y(null);try{const l=await p(t.id,U());l.failed>0?(_("error"),y(Ce(l.firstError,"Approval failed. Please try again."))):(_("success"),ae.current=setTimeout(()=>ue.current(),800))}catch(l){_("error");const j=l instanceof Error?l.message:"";y(Ce(j,"Approval failed."))}}},[U,t,C,p,A.length,x]),me=o.useCallback(async()=>{if(!t||!b)return;if(A.length>0&&!x){y("Select an option before rejecting this decision.");return}if(x!=null&&x.requiresNote&&C.trim().length===0){y("A note is required for the selected option."),requestAnimationFrame(()=>{var l;return(l=J.current)==null?void 0:l.focus()});return}let i=!1;if(_(l=>l==="approving"||l==="rejecting"?l:(i=!0,"rejecting")),!!i){y(null);try{const l=await b(t.id,U());l.failed>0?(_("error"),y(Ce(l.firstError,"Rejection failed. Please try again."))):(_("rejected"),ae.current=setTimeout(()=>ue.current(),800))}catch(l){_("error");const j=l instanceof Error?l.message:"";y(Ce(j,"Rejection failed."))}}},[U,t,C,b,A.length,x]);if(o.useEffect(()=>{if(!a)return;const i=l=>{var D,L;if((l.metaKey||l.ctrlKey)&&l.key==="Enter"){l.preventDefault(),re();return}const j=(D=l.target)==null?void 0:D.tagName;if(!(j==="INPUT"||j==="TEXTAREA"))switch(l.key){case"j":l.preventDefault(),w==null||w(1);break;case"k":l.preventDefault(),w==null||w(-1);break;case"a":l.preventDefault(),re();break;case"r":l.preventDefault(),me();break;case"n":l.preventDefault(),(L=J.current)==null||L.focus();break}};return document.addEventListener("keydown",i),()=>document.removeEventListener("keydown",i)},[a,re,me,w]),!a||!t)return null;const Z=E==="approving"||E==="rejecting",Me=E==="success"||E==="rejected",se=(t.status??"pending").toLowerCase(),ke=!se.includes("approved")&&!se.includes("resolved")&&!se.includes("rejected")&&!se.includes("declined")&&!se.includes("cancelled"),Ne=A.length>0&&!x,$e=(x==null?void 0:x.requiresNote)===!0&&C.trim().length===0,G=Z||Ne||$e,$=t.evidenceRefs??[],Ie=$.length>0,Se=t.recommendedAction??null,xe=t.decisionType??null,he=t.priority??null,fe=t.occurrenceCount??null,I=t.sourceRunId??null,ne=[];v&&ne.push({label:v,icon:"initiative"}),R&&ne.push({label:R,icon:"workstream"});const ge=[["ID",t.id],["Type",t.decisionType],["Dedupe key",t.dedupeKey],["Source system",t.sourceSystem],["Conflict source",t.conflictSource],["Agent ID",t.agentId],["Source run",t.sourceRunId],["Source session",t.sourceSessionId],["Source stream",t.sourceStreamId]].filter(([,i])=>i!=null);if(Me){const i=E==="success",l=i?T.lime:T.red;return e.jsx(qe,{open:a,onClose:u,maxWidth:"max-w-xl",fitContent:!0,children:e.jsxs("div",{className:"flex flex-col items-center justify-center px-8 py-12",children:[e.jsx("div",{className:"mb-4 flex h-16 w-16 items-center justify-center rounded-full",style:{backgroundColor:`${l}18`,border:`1.5px solid ${l}40`},children:i?e.jsx("svg",{width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",stroke:l,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:e.jsx("polyline",{points:"20 6 9 17 4 12"})}):e.jsxs("svg",{width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",stroke:l,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"M18 6L6 18"}),e.jsx("path",{d:"M6 6l12 12"})]})}),e.jsx("p",{className:"text-heading font-semibold text-white",children:i?"Approved":"Rejected"}),e.jsx("p",{className:"mt-1 text-body text-secondary",children:t.title})]})})}return e.jsx(qe,{open:a,onClose:u,maxWidth:"max-w-xl",children:e.jsxs("div",{className:"flex h-full min-h-0 w-full flex-col",style:le?{boxShadow:`inset 0 0 0 1px ${T.amber}30`,borderRadius:"inherit"}:void 0,children:[e.jsx("div",{className:"h-[2px] w-full flex-shrink-0",style:{background:`linear-gradient(90deg, ${V}60, ${V}20, transparent)`}}),w&&e.jsxs("div",{className:"flex items-center justify-between px-6 pt-3 pb-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("button",{type:"button",onClick:()=>w(-1),className:"rounded p-1 text-muted hover:text-secondary hover:bg-white/[0.06] transition-colors",title:"Previous (k)",children:e.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:e.jsx("path",{d:"m15 18-6-6 6-6"})})}),e.jsx("button",{type:"button",onClick:()=>w(1),className:"rounded p-1 text-muted hover:text-secondary hover:bg-white/[0.06] transition-colors",title:"Next (j)",children:e.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:e.jsx("path",{d:"m9 18 6-6-6-6"})})}),k!=null&&N!=null&&e.jsxs("span",{className:"text-micro text-muted tabular-nums",children:[k+1," of ",N,e.jsx("span",{className:"ml-1 hidden sm:inline",children:"· Longest waiting first"})]})]}),e.jsx("button",{type:"button",onClick:u,"aria-label":"Close",className:"rounded p-1 text-muted hover:text-secondary hover:bg-white/[0.06] transition-colors",children:e.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:e.jsx("path",{d:"M18 6 6 18M6 6l12 12"})})})]}),ne.length>0&&e.jsx("div",{className:"px-6 pt-2",children:e.jsx(Ye,{segments:ne})}),e.jsxs("div",{className:"flex items-start justify-between gap-3 px-6 pt-4 pb-4",children:[e.jsx("div",{className:"min-w-0 flex-1",children:e.jsxs("div",{className:"flex items-center gap-2.5",children:[e.jsx("div",{className:"flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg",style:{backgroundColor:`${V}14`,border:`1px solid ${V}30`},children:e.jsx(ie,{type:"decision",size:14})}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("h2",{className:"text-title font-medium leading-tight text-white mb-2",children:t.title||"Decision Required"}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-body text-secondary",children:[e.jsx("span",{children:t.agentName||"OrgX Autopilot"}),e.jsx("span",{className:"text-white/[0.15]",children:"|"}),e.jsx("span",{className:le?"font-semibold text-red-300":"",children:H(t.waitingMinutes).text}),xe&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-white/[0.15]",children:"|"}),e.jsx("span",{className:"text-primary",children:it(xe)})]}),he&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-white/[0.15]",children:"|"}),e.jsx("span",{className:"font-medium",style:{color:at(he)},children:he})]})]}),fe!=null&&fe>1&&e.jsxs("p",{className:"mt-2 text-caption text-muted",children:["Seen ",fe," times",t.firstSeenAt&&e.jsxs(e.Fragment,{children:[" · first ",De(t.firstSeenAt)]}),t.lastSeenAt&&e.jsxs(e.Fragment,{children:[" · last ",De(t.lastSeenAt)]})]})]})]})}),!w&&e.jsx("button",{type:"button",onClick:u,"aria-label":"Close",className:"mt-0.5 flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg text-muted transition-colors hover:bg-white/[0.06] hover:text-white",children:e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"M18 6L6 18"}),e.jsx("path",{d:"M6 6l12 12"})]})})]}),e.jsxs("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 pb-4",children:[(t.initiativeId||t.workstreamId)&&e.jsx("div",{className:"mb-4",children:e.jsx(Be,{nodes:Oe({initiativeId:t.initiativeId,initiativeTitle:v,workstreamId:t.workstreamId,workstreamTitle:R,agentName:t.agentName,agentId:t.agentId}),activeId:t.workstreamId,compact:!0})}),Se&&e.jsxs("div",{className:"mb-4 rounded-xl border border-cyan-300/[0.28] bg-cyan-500/[0.12] px-4 py-3",children:[e.jsx("p",{className:"text-micro font-semibold uppercase tracking-wider text-cyan-200 mb-1",children:"Recommended"}),e.jsx("p",{className:"text-body text-cyan-100",children:Se})]}),Ie&&e.jsxs("div",{className:"mb-4",children:[e.jsx("p",{className:"mb-2 px-1 text-micro font-semibold uppercase tracking-wider text-muted",children:"Evidence"}),e.jsx("div",{className:"space-y-1.5",children:$.map((i,l)=>e.jsx(Qe,{evidenceType:i.evidenceType,title:i.title,summary:i.summary,sourceUrl:i.sourceUrl,confidence:i.confidence,payload:i.payload},l))})]}),le&&e.jsx("div",{className:"mb-4 rounded-xl border border-amber-400/[0.3] bg-amber-500/[0.08] px-4 py-3",children:e.jsxs("p",{className:"text-body text-amber-200",children:["This decision has been waiting"," ",e.jsx("span",{className:"font-semibold text-amber-100",children:H(t.waitingMinutes).text}),". Downstream work is paused."]})}),f&&f.headline!==t.title?e.jsxs("div",{className:"rounded-xl border border-white/[0.06] bg-white/[0.02] px-4 py-3",children:[e.jsx("p",{className:"text-micro font-semibold uppercase tracking-wider text-muted mb-2",children:"What happened"}),e.jsx("p",{className:"text-body text-primary leading-relaxed",children:f.explanation}),Object.keys(f.structuredDetails).length>0&&e.jsx("div",{className:"mt-3 flex flex-wrap gap-x-4 gap-y-1 text-caption text-secondary",children:Object.entries(f.structuredDetails).filter(([,i])=>i!=null).map(([i,l])=>e.jsxs("span",{children:[i.replace(/([A-Z])/g," $1").replace(/^./,j=>j.toUpperCase()),": ",l]},i))})]}):h?e.jsx("div",{className:"rounded-xl border border-white/[0.06] bg-white/[0.02] px-4 py-3",children:e.jsx(ze,{text:h,mode:"block"})}):e.jsx("p",{className:"px-1 text-body text-muted italic",children:"No additional context provided."}),A.length>0&&e.jsxs("div",{className:"mt-8",children:[e.jsx("p",{className:"mb-3 px-1 text-[11px] font-semibold uppercase tracking-widest text-muted",children:"Options"}),e.jsx("div",{className:"space-y-1 relative",children:A.map(i=>{const l=P===i.id;return e.jsxs("button",{type:"button",onClick:()=>{F(l?null:i.id),i.requiresNote&&requestAnimationFrame(()=>{var j;return(j=J.current)==null?void 0:j.focus()})},disabled:Z,className:"group relative flex w-full items-start gap-4 px-4 py-4 text-left focus:outline-none",children:[l&&e.jsx(ce.div,{layoutId:"decision-option-bg",className:"absolute inset-0 rounded-xl",style:{backgroundColor:`${T.lime}12`},transition:{type:"spring",stiffness:400,damping:25}}),!l&&e.jsx("div",{className:"absolute inset-0 rounded-xl opacity-0 transition-opacity group-hover:bg-white/[0.03]"}),e.jsx("div",{className:"relative mt-0.5 flex h-5 w-5 flex-shrink-0 items-center justify-center rounded-full border-[1.5px] transition-colors",style:{borderColor:l?T.lime:"rgba(255,255,255,0.2)"},children:e.jsx(Re,{children:l&&e.jsx(ce.div,{initial:{scale:0},animate:{scale:1},exit:{scale:0},transition:{type:"spring",stiffness:500,damping:30},className:"h-2.5 w-2.5 rounded-full",style:{backgroundColor:T.lime}})})}),e.jsxs("div",{className:"relative min-w-0 flex-1",children:[e.jsx("span",{className:`block text-[15px] ${l?"font-medium text-white":"text-primary"}`,children:i.label}),i.description&&e.jsx("p",{className:"mt-1 text-[13px] leading-relaxed text-secondary",children:i.description}),i.requiresNote&&e.jsx("p",{className:"mt-1.5 text-[11px] font-medium uppercase tracking-wider text-amber-400",children:"Note required"})]})]},i.id)})})]}),ke&&pe&&e.jsxs("div",{className:"mt-4",children:[e.jsx("textarea",{ref:J,value:C,onChange:i=>X(i.target.value),disabled:Z,placeholder:"Required: add context for this decision...",rows:3,className:"w-full resize-none rounded-xl border border-white/[0.08] bg-white/[0.03] px-4 py-3 text-body text-primary placeholder-white/30 outline-none transition-colors focus:border-white/[0.16] focus:bg-white/[0.04]"}),C.trim().length===0&&e.jsx("p",{className:"mt-2 text-caption text-amber-300",children:"This option requires a note before submission."})]}),te&&e.jsxs("div",{className:"mt-6 rounded-xl border border-white/[0.06] bg-white/[0.02] px-4 py-3",children:[e.jsx("p",{className:"text-micro font-semibold uppercase tracking-wider text-muted mb-2",children:"Impact"}),e.jsx("p",{className:"text-body text-primary leading-relaxed",children:st(te)}),te.blockedWorkstreams.length>0&&e.jsx("ul",{className:"mt-2 space-y-1 text-caption text-secondary",children:te.blockedWorkstreams.map(i=>e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"inline-block h-1 w-1 rounded-full bg-amber-400 flex-shrink-0"}),i.title,i.status==="blocked"&&e.jsx("span",{className:"text-amber-400 text-micro",children:"(blocked)"})]},i.id))})]}),I&&B&&e.jsx("div",{className:"mt-4",children:e.jsxs("button",{type:"button",onClick:()=>B(I),className:"inline-flex items-center gap-1.5 text-caption text-[#D8FFA1] transition-colors hover:text-white",children:[e.jsx(ie,{type:"session",size:12}),"View source run"]})}),e.jsx("div",{className:"mt-4 border-t border-white/[0.06] pt-4",children:e.jsx(Ge,{entityType:"decision",entityId:t.id})}),ge.length>0&&e.jsxs("div",{className:"mt-4 border-t border-white/[0.06] pt-2",children:[e.jsxs("button",{type:"button",onClick:()=>je(i=>!i),className:"flex w-full items-center justify-between text-micro font-semibold uppercase tracking-wider text-muted hover:text-secondary transition-colors",children:[e.jsx("span",{children:"Technical details"}),e.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:`transition-transform ${de?"rotate-180":""}`,children:e.jsx("path",{d:"m6 9 6 6 6-6"})})]}),de&&e.jsx("div",{className:"mt-2 space-y-0.5",children:ge.map(([i,l])=>e.jsxs("div",{className:"flex gap-2 text-micro",children:[e.jsx("span",{className:"text-muted w-28 flex-shrink-0",children:i}),e.jsx("span",{className:"text-secondary truncate",children:l})]},i))})]}),e.jsxs("div",{className:"mt-4 flex flex-wrap gap-x-3 gap-y-1 text-micro text-muted opacity-60",children:[w&&e.jsx("span",{children:"j/k nav"}),e.jsx("span",{children:"a approve"}),e.jsx("span",{children:"r reject"}),e.jsx("span",{children:"n note"}),e.jsxs("span",{children:[Pe?"⌘":"Ctrl","+Enter approve"]}),e.jsx("span",{children:"esc close"})]})]}),M&&e.jsxs("div",{className:"flex items-center gap-2 border-t border-white/[0.06] px-6 py-3",children:[e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:T.red,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("circle",{cx:"12",cy:"12",r:"10"}),e.jsx("line",{x1:"12",x2:"12",y1:"8",y2:"12"}),e.jsx("line",{x1:"12",x2:"12.01",y1:"16",y2:"16"})]}),e.jsx("p",{className:"text-caption text-red-300",children:M})]}),ke&&e.jsx("div",{className:"relative mt-auto border-t border-white/[0.04] bg-black/60 px-6 py-5 backdrop-blur-xl",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[b&&e.jsx(ce.button,{whileTap:{scale:.97},type:"button",onClick:me,disabled:G,className:"rounded-lg px-4 py-2 text-[14px] font-medium text-secondary transition-colors hover:text-red-400 disabled:opacity-40 focus:outline-none",children:E==="rejecting"?e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"inline-block h-3 w-3 animate-spin rounded-full border-[1.5px] border-current border-t-transparent"}),"Rejecting"]}):"Reject"}),e.jsx("button",{type:"button",onClick:q,className:"rounded-lg px-2 py-2 text-[13px] text-muted transition-colors hover:text-secondary focus:outline-none",title:"Copy decision as JSON",children:ve?"Copied":"Copy JSON"})]}),e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs("span",{className:"hidden text-[13px] text-muted sm:block",children:[Pe?"⌘":"Ctrl","+Enter"]}),e.jsx(ce.button,{whileTap:!p||G?void 0:{scale:.97},type:"button",onClick:re,disabled:!p||G,"data-modal-autofocus":"true",className:"rounded-lg px-6 py-2.5 text-[14px] font-semibold transition-all focus:outline-none",style:{backgroundColor:!p||G?"rgba(255,255,255,0.06)":T.lime,color:!p||G?"rgba(255,255,255,0.4)":"#000"},children:E==="approving"?e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"inline-block h-3 w-3 animate-spin rounded-full border-[1.5px] border-black/40 border-t-black"}),"Approving"]}):"Approve"})]})]})})]})})}const Te=40;function Ae(a,t){return!a||a.trim().length===0?t:Le(a.trim())||t}function Ee(a,t,u){const p=a==="approve"?`Approval failed for ${t} decision${t===1?"":"s"}.`:`Rejection failed for ${t} decision${t===1?"":"s"}.`;return Ae(u,p)}function _e(a){return a>=1440?"overdue":a>=60?"urgent":"normal"}function ot(a){return a.length>=32?a.slice(0,8):a}function We({group:a}){const t=_e(a.worstWaitingMinutes),u=a.decisions.length;return e.jsxs("div",{className:"flex items-center gap-2 px-1 pb-1 pt-2.5 first:pt-0",children:[e.jsx("span",{className:"text-caption font-semibold text-white/70 truncate",children:a.label}),e.jsxs("span",{className:"text-micro text-muted whitespace-nowrap",children:["(",u," decision",u===1?"":"s",")"]}),t==="overdue"&&e.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full bg-red-500/[0.12] px-1.5 py-0.5 text-micro font-medium text-red-400",children:[e.jsx("span",{"aria-hidden":!0,className:"h-1.5 w-1.5 rounded-full bg-red-400"}),"overdue"]}),t==="urgent"&&e.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full bg-amber-400/[0.12] px-1.5 py-0.5 text-micro font-medium text-amber-400",children:[e.jsx("span",{"aria-hidden":!0,className:"h-1.5 w-1.5 rounded-full bg-amber-400"}),"urgent"]})]})}function ct(a,t){return`${a}_${t}`}const wt=o.memo(function({decisions:t,focusDecisionId:u=null,onFocusDecisionHandled:p,onApproveDecision:b,onRejectDecision:v,onApproveAll:R,onBulkDecisionAction:w,mutationState:k,showHeader:N=!0,panelStyle:B="card",className:O,initiativeNames:E}){var we;const _=Ke(),[M,y]=o.useState(!1),[P,F]=o.useState(new Set),[C,X]=o.useState(new Set),[ve,ee]=o.useState(new Set),{enqueue:de,ToastRenderer:je}=Xe(),[J,ae]=o.useState("approve_selected"),[ue,z]=o.useState(""),[W,f]=o.useState(null),[te,le]=o.useState(Te),[A,x]=o.useState(null),pe=o.useRef(null),h=o.useMemo(()=>{const s=new Set;return[...t].filter(r=>s.has(r.id)?!1:(s.add(r.id),!0)).sort((r,n)=>{if(r.waitingMinutes!==n.waitingMinutes)return n.waitingMinutes-r.waitingMinutes;const c=Date.parse(r.requestedAt??r.updatedAt??""),d=Date.parse(n.requestedAt??n.updatedAt??""),m=Number.isFinite(c)?c:0;return(Number.isFinite(d)?d:0)-m})},[t]);o.useEffect(()=>{X(s=>{const r=new Set(h.map(c=>c.id)),n=new Set;for(const c of s)r.has(c)&&n.add(c);return n})},[h]);const V=C.size,q=o.useMemo(()=>h.filter(s=>!ve.has(s.id)).slice(0,te),[h,te,ve]),U=o.useMemo(()=>{const s=new Map,r=[];for(const c of q){const d=c.initiativeId??"_unscoped";let m=s.get(d);m||(m=[],s.set(d,m),r.push(d)),m.push(c)}const n=r.map(c=>{const d=s.get(c),m=Math.max(0,...d.map(Y=>Y.waitingMinutes)),S=c==="_unscoped"?"General":(E==null?void 0:E[c])??ot(c);return{initiativeId:c,label:S,decisions:d,worstWaitingMinutes:m}});return n.sort((c,d)=>d.worstWaitingMinutes-c.worstWaitingMinutes),n},[q,E]),re=o.useMemo(()=>{if(q.length===0)return!1;for(const s of q)if(!C.has(s.id))return!1;return!0},[C,q]),me=o.useMemo(()=>A?h.find(s=>s.id===A)??null:null,[A,h]),Z=o.useMemo(()=>A?h.findIndex(s=>s.id===A):-1,[A,h]),Me=o.useCallback(s=>{const r=Z+s;r>=0&&r<h.length&&x(h[r].id)},[Z,h]),se=async(s,r)=>{f(null),F(c=>{const d=new Set(c);return d.add(s),d});const n=await b(s,r);return n.failed>0?f(Ee("approve",n.failed,n.firstError)):n.updated>0&&f("Decision approved. Changes synced."),F(c=>{const d=new Set(c);return d.delete(s),d}),n},ke=v?async(s,r)=>{f(null),F(c=>{const d=new Set(c);return d.add(s),d});const n=await v(s,r);return n.failed>0?f(Ee("reject",n.failed,n.firstError)):n.updated>0&&f("Decision rejected. Changes synced."),F(c=>{const d=new Set(c);return d.delete(s),d}),n}:void 0;o.useEffect(()=>{le(s=>h.length===0?0:Math.min(Math.max(Te,s),h.length))},[h.length]),o.useEffect(()=>{const s=(u??"").trim();if(!s){pe.current=null;return}pe.current===s||!h.some(n=>n.id===s)||(pe.current=s,x(s),p==null||p(s))},[u,p,h]);const Ne=s=>{X(r=>{const n=new Set(r);return n.has(s)?n.delete(s):n.add(s),n})},$e=()=>{X(s=>{if(q.length===0)return s;const r=new Set(s),n=re;for(const c of q)n?r.delete(c.id):r.add(c.id);return r})},G=o.useMemo(()=>{const s=h.map(n=>n.id).filter(n=>C.has(n)),r=q.map(n=>n.id);return[{id:"approve_selected",label:`Approve selected (${s.length})`,action:"approve",ids:s},{id:"reject_selected",label:`Reject selected (${s.length})`,action:"reject",ids:s,hidden:!v},{id:"approve_visible",label:`Approve visible (${r.length})`,action:"approve",ids:r},{id:"reject_visible",label:`Reject visible (${r.length})`,action:"reject",ids:r,hidden:!v}].filter(n=>!n.hidden)},[v,C,h,q]),$=o.useMemo(()=>G.find(s=>s.id===J)??G[0]??null,[J,G]),Ie=async(s,r,n)=>{if(s.length===0)return{updated:0,failed:0};if(r==="approve"&&s.length===h.length&&!n)return R();let c=0,d=0,m;for(const S of s)try{const Y=r==="approve"?await b(S,n?{note:n}:void 0):v?await v(S,n?{note:n}:void 0):{updated:0,failed:1};c+=Y.updated,d+=Y.failed,!m&&Y.firstError&&(m=Y.firstError)}catch{d+=1}return{updated:c,failed:d,firstError:m}},Se=async()=>{if(!$||M)return;const s=$.ids;if(s.length===0){f("No decisions selected for this action.");return}f(null),y(!0),F(new Set(s));const r=ue.trim();try{const n=w?await w(s,$.action,r.length>0?r:void 0):await Ie(s,$.action,r.length>0?r:void 0),c=$.action==="approve"?"Approved":"Rejected";if(n.failed>0){const d=`${c} ${n.updated}; ${n.failed} failed.`,m=Ae(n.firstError,d);f(m===d?d:`${d} ${m}`)}else n.updated>0?f(`${c} ${n.updated} decision${n.updated===1?"":"s"}.`):f("No decisions were updated.");X(new Set)}catch(n){const c=n instanceof Error?n.message:"";f(Ae(c,"Bulk decision action failed."))}finally{y(!1),F(new Set)}},xe=async s=>{if(!(P.has(s)||M)){f(null),F(r=>{const n=new Set(r);return n.add(s),n});try{const r=await b(s);r.failed>0?f(Ee("approve",r.failed,r.firstError)):r.updated>0&&f("Decision approved.")}catch(r){const n=r instanceof Error?r.message:"";f(Ae(n,"Decision approval failed."))}finally{F(r=>{const n=new Set(r);return n.delete(s),n}),X(r=>{if(!r.has(s))return r;const n=new Set(r);return n.delete(s),n})}}},he=o.useCallback(s=>{P.has(s.id)||M||(ee(r=>new Set(r).add(s.id)),de({message:`Approved '${s.title.length>40?s.title.slice(0,40)+"…":s.title}'`,onUndo:()=>{ee(r=>{const n=new Set(r);return n.delete(s.id),n})},onCommit:()=>{ee(r=>{const n=new Set(r);return n.delete(s.id),n}),b(s.id).catch(()=>{f("Approval failed. Try again from the decision panel.")})}}))},[P,M,de,b]);o.useEffect(()=>{if(!W)return;const s=window.setTimeout(()=>f(null),5200);return()=>window.clearTimeout(s)},[W]);const fe=W!==null&&!W.toLowerCase().includes("fail"),I=M||P.size>0,ne=Math.max(P.size,M?V:0),ge=I?`Applying ${ne} decision action${ne===1?"":"s"}…`:W??null,i=I?"processing":W?fe?"success":"warning":"idle",l=!_&&q.length<=32,j=$!==null&&$.ids.length>0&&!M,D=h.length;(we=h[0])==null||we.waitingMinutes;const L=$!=null&&$.id.includes("visible")?"visible":"selected",Q=($==null?void 0:$.action)??"approve",g=ge!==null||i!=="idle",be=B==="card"?Ue:"div";return e.jsxs(be,{className:oe("flex h-full min-h-0 flex-col",B==="card"&&"card-enter",O),children:[e.jsx(lt,{open:A!==null,decision:me,onClose:()=>x(null),onApprove:se,onReject:ke,onNavigate:Me,currentIndex:Z>=0?Z:void 0,totalCount:h.length}),N?e.jsxs("div",{className:"space-y-2.5 border-b border-subtle px-4 py-3.5",children:[e.jsx("div",{className:"flex items-start justify-between gap-3",children:e.jsxs("div",{className:"min-w-0",children:[e.jsxs("h2",{className:"inline-flex items-center gap-2 text-heading font-semibold text-white",children:[e.jsx(ie,{type:"decision",size:14}),"Decisions"]}),e.jsx("p",{className:"mt-0.5 text-caption text-secondary",children:D>0?`${D} decision${D===1?"":"s"} need${D===1?"s":""} your input`:"All clear — no decisions pending"})]})}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[h.length>0&&e.jsx("button",{onClick:$e,disabled:I,className:"control-pill h-8 flex-shrink-0 px-3 text-caption font-semibold disabled:opacity-45",children:re?"Clear all":"Select all"}),V>0&&e.jsxs(e.Fragment,{children:[e.jsx("button",{onClick:Se,disabled:!j||I,"data-state":j?"active":"idle",className:"control-pill h-8 flex-shrink-0 px-3 text-caption font-semibold disabled:opacity-45",children:M?"Approving…":`Approve ${V} selected`}),v&&e.jsx("button",{type:"button",onClick:()=>ae(ct("reject",L)),disabled:I,"data-state":Q==="reject"?"active":"idle",className:oe("control-pill h-8 px-2.5 text-caption font-semibold disabled:opacity-45",Q==="reject"&&"border-amber-300/35 bg-amber-400/[0.12] text-amber-100"),children:"Reject"})]})]}),g?e.jsxs("div",{"aria-live":"polite",className:oe("flex min-h-[32px] items-center gap-2 rounded-lg border px-2.5 py-1.5 text-caption transition-colors",i==="processing"?"border-amber-300/25 bg-amber-400/[0.08] text-amber-100":i==="success"?"border-lime/30 bg-lime/10 text-lime":i==="warning"?"border-red-400/25 bg-red-500/[0.08] text-red-100":"border-strong bg-white/[0.02] text-secondary"),children:[i==="processing"?e.jsx("span",{"aria-hidden":!0,className:"h-3.5 w-3.5 rounded-full border-2 border-amber-200/45 border-t-transparent animate-spin"}):i==="success"?e.jsx(ie,{type:"decision",size:12,className:"opacity-90"}):i==="warning"?e.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"opacity-90",children:[e.jsx("path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z"}),e.jsx("line",{x1:"12",x2:"12",y1:"9",y2:"13"}),e.jsx("line",{x1:"12",x2:"12.01",y1:"17",y2:"17"})]}):e.jsx("span",{"aria-hidden":!0,className:"h-1.5 w-1.5 rounded-full bg-white/35"}),e.jsx("span",{className:"min-w-0 truncate",children:ge})]}):null]}):null,e.jsxs("div",{className:oe("min-h-0 flex-1 space-y-2 overflow-y-auto",N?"p-3":"p-0"),children:[h.length===0&&e.jsx("div",{className:"flex flex-col items-center gap-2.5 rounded-xl border border-subtle bg-white/[0.02] p-4 text-center",children:I?e.jsxs(e.Fragment,{children:[e.jsx("span",{"aria-hidden":!0,className:"h-5 w-5 rounded-full border-2 border-amber-200/45 border-t-transparent animate-spin"}),e.jsx("p",{className:"text-body text-secondary",children:"Finalizing decision updates…"})]}):e.jsxs(e.Fragment,{children:[e.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",className:"text-faint",children:[e.jsx("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"}),e.jsx("polyline",{points:"22 4 12 14.01 9 11.01"})]}),e.jsx("p",{className:"text-body text-secondary",children:"No pending decisions. All clear."})]})}),l?e.jsx(Re,{mode:"popLayout",children:U.map(s=>e.jsxs("div",{children:[U.length>1&&e.jsx(We,{group:s}),s.decisions.map((r,n)=>{const c=P.has(r.id),d=C.has(r.id),m=_e(r.waitingMinutes);return e.jsx(ce.article,{role:"button",tabIndex:0,onClick:()=>x(r.id),onKeyDown:S=>{(S.key==="Enter"||S.key===" ")&&(S.preventDefault(),x(r.id))},drag:!I&&!c?"x":!1,dragConstraints:{left:0,right:0},dragElastic:.3,onDragEnd:(S,Y)=>{Y.offset.x>120&&he(r)},initial:M?{opacity:0,x:300}:{opacity:0,y:8,scale:.98},animate:{opacity:1,y:0,x:0,scale:1},exit:{opacity:0,x:300,scale:.95},transition:{duration:.25,ease:[.22,1,.36,1],...M?{delay:n*.04}:{}},layout:!0,className:"mt-1.5 rounded-xl border bg-white/[0.03] px-3 py-2.5 transition-[border-color,box-shadow] cv-auto",style:{borderColor:d?`${T.lime}50`:"rgba(255, 255, 255, 0.1)",boxShadow:d?"0 0 0 1px rgba(191, 255, 0, 0.14)":"none"},children:e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",checked:d,onChange:()=>Ne(r.id),disabled:c||I,onClick:S=>S.stopPropagation(),className:"mt-0.5 h-4 w-4 rounded border-white/20 bg-black/40 text-lime focus:ring-lime/40"}),e.jsx("div",{className:"min-w-0 flex-1",children:e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex min-w-0 items-start gap-1.5",children:[m!=="normal"&&e.jsx("span",{"aria-label":m==="overdue"?"Overdue":"Urgent",className:oe("mt-[5px] h-2 w-2 flex-shrink-0 rounded-full",m==="overdue"?"bg-red-400":"bg-amber-400")}),e.jsxs("p",{className:"flex min-w-0 items-start gap-1.5 text-body font-medium text-white",title:r.title,children:[e.jsx(ie,{type:"decision",size:12,className:"mt-[3px] flex-shrink-0 opacity-90"}),e.jsx("span",{className:"line-clamp-2",children:r.title})]})]}),r.context&&e.jsx("p",{className:"mt-1 line-clamp-2 text-caption text-secondary",title:r.context,children:r.context}),e.jsxs("div",{className:"mt-1.5 flex items-center justify-between gap-2",children:[e.jsxs("p",{className:`min-w-0 truncate text-micro ${(()=>{const S=H(r.waitingMinutes);return S.tone==="urgent"?"text-red-400":S.tone==="attention"?"text-amber-400":"text-muted"})()}`,title:`${r.agentName??"OrgX Autopilot"} · ${H(r.waitingMinutes).text}`,children:[r.agentName??"OrgX Autopilot"," · ",H(r.waitingMinutes).text]}),e.jsx("button",{onClick:S=>{S.stopPropagation(),xe(r.id)},disabled:c||I,className:"flex-shrink-0 rounded-md border border-lime/25 bg-lime/10 px-2.5 py-1 text-micro font-semibold text-lime transition-colors hover:bg-lime/20 disabled:cursor-not-allowed disabled:border-white/10 disabled:bg-white/[0.08] disabled:text-secondary",children:c?"Approving…":"Approve"}),v&&e.jsx("button",{onClick:S=>{S.stopPropagation(),x(r.id)},disabled:c||I,className:"flex-shrink-0 rounded-md border border-white/[0.08] bg-white/[0.03] px-2.5 py-1 text-micro font-semibold text-secondary transition-colors hover:border-red-400/30 hover:bg-red-400/[0.08] hover:text-red-300 disabled:cursor-not-allowed disabled:opacity-40",children:"Reject"})]})]})})]})},r.id)})]},s.initiativeId))}):e.jsx(e.Fragment,{children:U.map(s=>e.jsxs("div",{children:[U.length>1&&e.jsx(We,{group:s}),s.decisions.map(r=>{const n=P.has(r.id),c=C.has(r.id),d=_e(r.waitingMinutes);return e.jsx("article",{role:"button",tabIndex:0,onClick:()=>x(r.id),onKeyDown:m=>{(m.key==="Enter"||m.key===" ")&&(m.preventDefault(),x(r.id))},className:"mt-1.5 rounded-xl border bg-white/[0.03] px-3 py-2.5 transition-[border-color,box-shadow] cv-auto",style:{borderColor:c?`${T.lime}50`:"rgba(255, 255, 255, 0.1)",boxShadow:c?"0 0 0 1px rgba(191, 255, 0, 0.14)":"none"},children:e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",checked:c,onChange:()=>Ne(r.id),disabled:n||I,onClick:m=>m.stopPropagation(),className:"mt-0.5 h-4 w-4 rounded border-white/20 bg-black/40 text-lime focus:ring-lime/40"}),e.jsx("div",{className:"min-w-0 flex-1",children:e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex min-w-0 items-start gap-1.5",children:[d!=="normal"&&e.jsx("span",{"aria-label":d==="overdue"?"Overdue":"Urgent",className:oe("mt-[5px] h-2 w-2 flex-shrink-0 rounded-full",d==="overdue"?"bg-red-400":"bg-amber-400")}),e.jsxs("p",{className:"flex min-w-0 items-start gap-1.5 text-body font-medium text-white",title:r.title,children:[e.jsx(ie,{type:"decision",size:12,className:"mt-[3px] flex-shrink-0 opacity-90"}),e.jsx("span",{className:"line-clamp-2",children:r.title})]})]}),r.context&&e.jsx("p",{className:"mt-1 line-clamp-2 text-caption text-secondary",title:r.context,children:r.context}),e.jsxs("div",{className:"mt-1.5 flex items-center justify-between gap-2",children:[e.jsxs("p",{className:`min-w-0 truncate text-micro ${(()=>{const m=H(r.waitingMinutes);return m.tone==="urgent"?"text-red-400":m.tone==="attention"?"text-amber-400":"text-muted"})()}`,title:`${r.agentName??"OrgX Autopilot"} · ${H(r.waitingMinutes).text}`,children:[r.agentName??"OrgX Autopilot"," · ",H(r.waitingMinutes).text]}),e.jsx("button",{onClick:m=>{m.stopPropagation(),xe(r.id)},disabled:n||I,className:"flex-shrink-0 rounded-md border border-lime/25 bg-lime/10 px-2.5 py-1 text-micro font-semibold text-lime transition-colors hover:bg-lime/20 disabled:cursor-not-allowed disabled:border-white/10 disabled:bg-white/[0.08] disabled:text-secondary",children:n?"Approving…":"Approve"}),v&&e.jsx("button",{onClick:m=>{m.stopPropagation(),x(r.id)},disabled:n||I,className:"flex-shrink-0 rounded-md border border-white/[0.08] bg-white/[0.03] px-2.5 py-1 text-micro font-semibold text-secondary transition-colors hover:border-red-400/30 hover:bg-red-400/[0.08] hover:text-red-300 disabled:cursor-not-allowed disabled:opacity-40",children:"Reject"})]})]})})]})},r.id)})]},s.initiativeId))}),q.length<h.length&&e.jsxs("button",{onClick:()=>le(s=>Math.min(h.length,s+Te)),className:"w-full rounded-xl border border-white/[0.08] bg-white/[0.02] px-3 py-2 text-caption text-secondary transition-colors hover:bg-white/[0.05]",children:["Load more (",h.length-q.length," remaining)"]})]}),e.jsx(je,{})]})});export{wt as DecisionQueue};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as l,j as e}from"./Dj2k1r16.js";import{G as Jt,u as Xt,K as b,P as Yt,B as ie,H as ft,T as Ot,C as I,v as Nt,A as kt,E as je,e as bt,h as Ye,D as gt,F as es,U as ts}from"./B1LENRC8.js";import{S as A}from"./DXzpQUC0.js";import{A as ke,m as z,u as jt,R as ss,b as ns,a as is}from"./eeHXe_OQ.js";import{Q as m,d as rs,q as Ue,a as wt,b as yt,c as St,e as Ze}from"./R6N_VVqm.js";async function Ct(s,a){var f;const o=await(await fetch(s,a)).json().catch(()=>null),p=((f=o==null?void 0:o.data)==null?void 0:f.url)??(o==null?void 0:o.url)??null;if(typeof p=="string"&&p.trim())return p.trim();throw new Error((o==null?void 0:o.error)??"Billing link unavailable")}async function as(s){var p;const a=((p=s==null?void 0:s.actions)==null?void 0:p.checkout)??"/orgx/api/billing/checkout",c=((s==null?void 0:s.requiredPlan)??"starter").trim().toLowerCase()||"starter",o=await Ct(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({planId:c})});window.open(o,"_blank","noopener,noreferrer")}async function os(s){var o;const a=((o=s==null?void 0:s.actions)==null?void 0:o.portal)??"/orgx/api/billing/portal",c=await Ct(a,{method:"POST"});window.open(c,"_blank","noopener,noreferrer")}function ls(s){return s==="success"?"border-emerald-400/30 bg-[#0A1210]/95 text-emerald-100":s==="warning"?"border-amber-300/30 bg-[#12100A]/95 text-amber-100":s==="error"?"border-red-400/32 bg-[#120A0A]/95 text-red-100":s==="info"?"border-cyan-300/28 bg-[#0A1012]/95 text-cyan-100":"border-strong bg-[#0B0F16]/95 text-primary"}function cs({open:s,tone:a="neutral",title:c,message:o=null,className:p,primaryAction:f=null,secondaryAction:k=null,onDismiss:S=null,autoDismissMs:q=null}){return l.useEffect(()=>{if(!s||!S||!q)return;const K=window.setTimeout(()=>S(),q);return()=>window.clearTimeout(K)},[q,S,s,c,o]),e.jsx(ke,{initial:!1,children:s?e.jsx(z.div,{initial:{opacity:0,y:-8,scale:.985},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-8,scale:.985},transition:{duration:.2,ease:[.22,1,.36,1]},className:`pointer-events-none ${p??""}`,children:e.jsxs("div",{className:`pointer-events-none min-w-[220px] max-w-[420px] rounded-xl border px-3 py-2 shadow-[0_16px_36px_rgba(0,0,0,0.42)] backdrop-blur ${ls(a)}`,children:[e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("p",{className:"text-caption font-semibold",children:c}),o?e.jsx("p",{className:"mt-0.5 text-caption opacity-85",children:o}):null]}),S?e.jsx("button",{type:"button",onClick:S,className:"pointer-events-auto inline-flex h-6 w-6 items-center justify-center rounded-md text-current/70 transition-colors hover:bg-white/[0.08] hover:text-current","aria-label":"Dismiss toast",title:"Dismiss",children:e.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"M18 6 6 18"}),e.jsx("path",{d:"m6 6 12 12"})]})}):null]}),f||k?e.jsxs("div",{className:"mt-2 flex items-center gap-1.5",children:[k?e.jsx("button",{type:"button",onClick:k.onClick,className:"pointer-events-auto h-7 rounded-md border border-strong bg-white/[0.06] px-2.5 text-micro font-semibold text-current transition-colors hover:bg-white/[0.12]",children:k.label}):null,f?e.jsx("button",{type:"button",onClick:f.onClick,className:"pointer-events-auto h-7 rounded-md border border-white/25 bg-white/[0.14] px-2.5 text-micro font-semibold text-current transition-colors hover:bg-white/[0.2]",children:f.label}):null]}):null]})}):null})}function It({className:s=""}){return e.jsx("svg",{viewBox:"0 0 20 20",fill:"none","aria-hidden":!0,className:s,children:e.jsx("path",{d:"M7 5.4v9.2c0 .7.75 1.15 1.38.83l7.6-4.6a.95.95 0 0 0 0-1.62l-7.6-4.64A.95.95 0 0 0 7 5.4Z",fill:"currentColor"})})}function ds({className:s=""}){return e.jsxs("svg",{viewBox:"0 0 20 20",fill:"none","aria-hidden":!0,className:s,children:[e.jsx("path",{d:"M6.2 9.4V6.7c0-.7.5-1.2 1.1-1.2s1.1.5 1.1 1.2v2.2",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"}),e.jsx("path",{d:"M8.4 8.9V5.8c0-.7.5-1.3 1.1-1.3s1.1.6 1.1 1.3v3",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"}),e.jsx("path",{d:"M10.6 8.9V6.2c0-.7.5-1.3 1.1-1.3s1.1.6 1.1 1.3v3.2",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"}),e.jsx("path",{d:"M12.8 9.6V7.2c0-.7.5-1.2 1.1-1.2s1.1.5 1.1 1.2v4.2c0 2.7-1.9 4.6-4.6 4.6H9.2c-2.1 0-3.7-1-4.6-2.8l-.9-1.7c-.3-.6 0-1.4.6-1.7.6-.3 1.3 0 1.6.6l.7 1.4",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})]})}function us({className:s=""}){return e.jsxs("svg",{viewBox:"0 0 20 20",fill:"none","aria-hidden":!0,className:s,children:[e.jsx("path",{d:"M6.4 9.2V7.4c0-.7.5-1.2 1.1-1.2s1.1.5 1.1 1.2v1.3",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"}),e.jsx("path",{d:"M8.6 8.9V7c0-.7.5-1.2 1.1-1.2s1.1.5 1.1 1.2v2",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"}),e.jsx("path",{d:"M10.8 9.2V7.3c0-.7.5-1.2 1.1-1.2s1.1.5 1.1 1.2v2.6",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"}),e.jsx("path",{d:"M13 9.8V8.2c0-.7.5-1.2 1.1-1.2s1.1.5 1.1 1.2v3.6c0 2.4-1.7 4-4.1 4H9.7c-2 0-3.4-.9-4.2-2.5l-.8-1.4c-.3-.6 0-1.3.5-1.6.6-.3 1.2-.1 1.6.5l.6 1",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})]})}function Je(s){const a=typeof s.sliceTaskCount=="number"&&Number.isFinite(s.sliceTaskCount)?Math.max(0,Math.floor(s.sliceTaskCount)):null,c=s.sliceScope==="task"?"task":s.sliceScope==="milestone"?"milestone slice":"workstream slice",o=a&&a>0?`${a} ${a===1?"task":"tasks"}`:null;return s.queueState===m.RUNNING?o?`Executing ${o} in ${c}.`:"Execution in progress. Task detail will appear as the scheduler advances.":s.queueState===m.BLOCKED?s.blockReason?"Blocked while waiting for dependency resolution.":"Blocked. Waiting for dependency or review.":s.queueState===m.QUEUED?o?`Queued with ${o} in ${c}.`:"Queued at workstream scope. Task detail will populate after dispatch.":s.queueState===m.COMPLETED?"Completed. No queued tasks remain.":"Idle. Ready to dispatch when started."}function qt(s){const a=typeof s.initiativePriority=="string"?s.initiativePriority.trim().toLowerCase():"",c=typeof s.initiativePriorityNum=="number"&&Number.isFinite(s.initiativePriorityNum)?Math.max(1,Math.min(100,Math.round(s.initiativePriorityNum))):null,o=a==="urgent"||a==="high"||a==="medium"||a==="low"?a:c!==null?c<=12?"urgent":c<=30?"high":c<=60?"medium":"low":null;if(!o)return null;const p=o==="urgent"?"P1":o==="high"?"P2":o==="medium"?"P3":"P4",f=o==="urgent"?"Urgent":o==="high"?"High":o==="medium"?"Medium":"Low",k=o==="urgent"?"border-red-300/35 bg-red-500/[0.14] text-red-100":o==="high"?"border-amber-300/35 bg-amber-500/[0.14] text-amber-100":o==="medium"?"border-[#BFFF00]/35 bg-[#BFFF00]/14 text-[#E1FFB2]":"border-white/[0.2] bg-white/[0.08] text-white/70";return{shortLabel:`${p} ${f}`,longLabel:`Initiative priority ${f} (${p})`,toneClass:k}}function ms(s){const a=s.trim().toLowerCase();if(a.includes("timed out")||a.includes("timeout")||a.includes("request cancelled")||a.includes("signal is aborted"))return"Next Up is still syncing. Keep this panel open and it will repopulate automatically.";if(a.includes("unauthorized")||a.includes("forbidden")||a.includes("api key")||a.includes("auth"))return"Next Up is unavailable until OrgX authentication is reconnected in Settings.";if(a.includes("unknown api endpoint")||a.includes("route is unavailable"))return"This runtime is missing queue routes. Restart and update the plugin build.";const c=s.split("|").map(o=>o.trim()).filter(Boolean).map(o=>o.replace(/^[^:]+:\s*/,"").trim()).filter(Boolean).slice(0,2).join(" ");return Ye(c||s)||"Next Up is temporarily unavailable."}function xs(s){const a=s.trim().toLowerCase();return a.includes("circular")||a.includes("timeline estimate")||a.includes("adjusted accordingly")?null:a.includes("timed out")||a.includes("timeout")||a.includes("request cancelled")||a.includes("signal is aborted")?"Signal is delayed right now. Queue data will appear as soon as sync catches up.":a.includes("fallback")?"Showing fallback queue data while full signal refreshes.":a.includes("unknown api endpoint")||a.includes("route is unavailable")?"Some queue controls are unavailable in this plugin build. Update and restart to restore full controls.":Ye(s.trim())}function Se(s,a,c){const o=typeof s=="string"?s.trim():"";if(o&&!gt(o))return I(o);const p=typeof a=="string"?a.trim():"";return p?gt(p)?`${c} ${es(p)}`:I(p):c}function $t(s){const a=typeof s.runnerAgentName=="string"?s.runnerAgentName.trim():"";if(!a)return"Unassigned";const c=a.toLowerCase();return c==="undefined"||c==="null"||c==="main"&&(s.runnerAgentId==="unassigned"||s.runnerSource==="fallback")?"Unassigned":a}function Tt(s){return s.runnerSource==="inferred"?"inferred":null}function Mt(s,a){const c=s.runnerSource==="assigned"?"assigned":s.runnerSource==="inferred"?"inferred":"fallback";return a==="Unassigned"?`Runner ${c}`:`${a} · ${c}`}function pe(s,a){return!s||s.trim().length===0?a:Ye(s.trim())||a}function vt(s){return!s||typeof s!="object"||Array.isArray(s)?null:s}function Xe(s,a){const c=I(s.workstreamTitle),o=vt(a),p=o&&typeof o.dispatchMode=="string"?o.dispatchMode:null,f=vt(o==null?void 0:o.run);return(f&&typeof f.stopReason=="string"?f.stopReason:f&&typeof f.stop_reason=="string"?f.stop_reason:null)==="budget_exhausted"?`Dispatch acknowledged for ${c}, but autopilot stopped: budget exhausted.`:p==="pending"?`Dispatching ${c}; waiting for slice start…`:p==="fallback"?`Dispatched ${c} using fallback runner.`:`Dispatched ${c}.`}function Rt({className:s=""}){return e.jsxs("svg",{viewBox:"0 0 20 20",fill:"none","aria-hidden":!0,className:s,children:[e.jsx("circle",{cx:"4.5",cy:"10",r:"1.4",fill:"currentColor"}),e.jsx("circle",{cx:"10",cy:"10",r:"1.4",fill:"currentColor"}),e.jsx("circle",{cx:"15.5",cy:"10",r:"1.4",fill:"currentColor"})]})}function ps({compact:s}){const a=s?3:6;return e.jsxs("div",{className:"space-y-2.5",children:[e.jsxs("div",{className:"flex items-center gap-2 px-1 pt-1 text-micro uppercase tracking-[0.12em] text-muted",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-[#BFFF00]/70 status-breathe"}),e.jsx("span",{children:"Calibrating queue"})]}),Array.from({length:a}).map((c,o)=>e.jsxs("div",{className:"nextup-skeleton-card rounded-2xl border border-white/[0.08] bg-white/[0.02] px-3 py-3",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2.5",children:[e.jsxs("div",{className:"flex min-w-0 flex-1 items-start gap-2.5",children:[e.jsx(A,{className:"h-8 w-8 rounded-full"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx(A,{className:"h-3 w-40 rounded-md"}),e.jsx(A,{className:"mt-2 h-4 w-56 rounded-md"})]})]}),e.jsx(A,{className:"h-5 w-16 rounded-full"})]}),e.jsxs("div",{className:"mt-3 rounded-lg border border-white/[0.07] bg-black/[0.18] px-2.5 py-2",children:[e.jsx(A,{className:"h-3 w-14 rounded"}),e.jsx(A,{className:"mt-2 h-3 w-full rounded"}),e.jsx(A,{className:"mt-2 h-3 w-3/5 rounded"})]}),e.jsxs("div",{className:"mt-2.5 flex flex-wrap gap-1.5",children:[e.jsx(A,{className:"h-8 w-24 rounded-full"}),e.jsx(A,{className:"h-8 w-20 rounded-full"}),e.jsx(A,{className:"h-8 w-24 rounded-full"})]})]},`nextup-skeleton-${o}`))]})}function hs({initiativeId:s=null,projectId:a=null,authToken:c=null,embedMode:o=!1,title:p="Next Up",showHeader:f=!0,compact:k=!1,className:S,disableEnterAnimation:q=!1,allowCompactToggle:K=!1,onToggleCompact:he,onOpenInitiative:$,onOpenSettings:L,onUpgradeGate:D,onOpenSliceDetail:_,selectionEnabled:Q=!0,panelStyle:Ce="card",showQueueSettings:Ie=!0,queueModel:qe,queueActions:Ae,onPlayWorkstream:W,snapshotVersion:$e=null,excludeRunning:T=!1}){var ht;const[re,fe]=l.useState(k);l.useEffect(()=>fe(k),[k]);const d=K&&!he?re:k,ae=t=>{he?he(t):fe(t)},[B,y]=l.useState(null),[w,J]=l.useState("workstream"),oe="bottom",[j,le]=l.useState(null),[F,X]=l.useState(null),[x,Y]=l.useState(null),[V,ce]=l.useState(new Set),[Te,de]=l.useState(null),[be,ge]=l.useState(!1),[Et,Me]=l.useState(!1),G=jt(),Oe=l.useRef(null),et=l.useRef(null),tt=l.useRef(null),Lt=Jt({initiativeId:s,projectId:a,limit:40,authToken:c,embedMode:o,enabled:!qe,snapshotVersion:$e,zoomLevel:w}),Bt=qe??Lt,{items:ue,degraded:O,isLoading:M,isFetching:st,isFetchingNextPage:Re,hasNextPage:ze,error:Ee,refetch:Ft,fetchNextPage:nt,playWorkstream:Pt,startWorkstreamAutoContinue:it,initiativeGroups:De,milestoneGroups:_e}=Bt,Ut=Xt({authToken:c,embedMode:o}),H=Ae??Ut,P=t=>`${t.initiativeId}:${t.workstreamId}`,ee=w==="workstream",Ge=l.useMemo(()=>G?{duration:.01}:b.surfaceSwitch,[G]),U=l.useMemo(()=>{if(T)return ue.filter(i=>i.queueState!==m.RUNNING);const t=ue.filter(i=>i.queueState!==m.RUNNING);return t.length>0?t:ue},[T,ue]),rt=l.useMemo(()=>U.length===0?"empty":U.some(t=>t.queueState!==m.RUNNING&&t.queueState!==m.BLOCKED)?m.QUEUED:U.some(t=>t.queueState===m.BLOCKED)?m.BLOCKED:U.some(t=>t.queueState===m.RUNNING)?m.RUNNING:m.QUEUED,[U]),at=l.useMemo(()=>{if(!T)return De;const t=[];for(const i of De){const r=i.items.filter(n=>n.queueState!==m.RUNNING);r.length!==0&&t.push({...i,items:r,queueState:rs(r)})}return t},[T,De]),we=l.useMemo(()=>[...at].sort((t,i)=>{const r=Ue(t.queueState)-Ue(i.queueState);return r!==0?r:t.initiativeTitle.localeCompare(i.initiativeTitle)}),[at]),ot=l.useMemo(()=>T?_e.filter(t=>t.item.queueState!==m.RUNNING):_e,[T,_e]),ye=l.useMemo(()=>[...ot].sort((t,i)=>{const r=Ue(t.queueState)-Ue(i.queueState);if(r!==0)return r;const n=t.initiativeTitle.localeCompare(i.initiativeTitle);if(n!==0)return n;const u=t.workstreamTitle.localeCompare(i.workstreamTitle);return u!==0?u:t.milestoneTitle.localeCompare(i.milestoneTitle)}),[ot]),Ke=l.useMemo(()=>d?we.slice(0,5):we,[d,we]),Qe=l.useMemo(()=>d?ye.slice(0,5):ye,[d,ye]),lt=l.useMemo(()=>w==="initiative"?we.length:w==="milestone"?ye.length:U.length,[U.length,we.length,ye.length,w]),At=[{value:"initiative",label:"Initiative"},{value:"workstream",label:"Workstream"},{value:"milestone",label:"Milestone"}],C=l.useMemo(()=>ee?d?U.slice(0,5):U:[],[d,ee,U]),zt=l.useMemo(()=>C.filter(t=>V.has(P(t))),[V,C]),[me,ct]=l.useState([]),We=l.useRef([]),dt=l.useMemo(()=>{const t=new Map;for(const i of C)t.set(P(i),i);return t},[C]),R=l.useMemo(()=>C.map(P),[C]),Dt=l.useMemo(()=>R.join("|"),[R]);l.useEffect(()=>{ct(t=>{if(d)return[];const i=[],r=new Set(R);for(const n of t)r.has(n)&&i.push(n);for(const n of R)i.includes(n)||i.push(n);return i})},[d,Dt]),l.useEffect(()=>{We.current=me},[me]),l.useEffect(()=>{Te&&(R.includes(Te)||de(null))},[Te,R]),l.useEffect(()=>{ce(t=>{if(t.size===0)return t;const i=new Set(C.map(P)),r=new Set;for(const n of t)i.has(n)&&r.add(n);return r.size===t.size?t:r})},[C]),l.useEffect(()=>{if(!x)return;C.some(i=>P(i)===x)||Y(null)},[x,C]),l.useEffect(()=>{if(O.length===0){Me(!1);return}Me(!1)},[O]),l.useEffect(()=>{Q&&!d&&V.size>0&&ge(!1)},[d,V.size,Q]),l.useEffect(()=>{if(!be)return;const t=r=>{var u;const n=r.target;n&&((u=Oe.current)!=null&&u.contains(n)||ge(!1))},i=r=>{r.key==="Escape"&&ge(!1)};return document.addEventListener("mousedown",t),document.addEventListener("touchstart",t),document.addEventListener("keydown",i),()=>{document.removeEventListener("mousedown",t),document.removeEventListener("touchstart",t),document.removeEventListener("keydown",i)}},[be]),l.useEffect(()=>{if(!ze)return;const t=et.current,i=tt.current;if(!t||!i)return;const r=new IntersectionObserver(n=>{n.some(u=>u.isIntersecting)&&(M||Re||nt().catch(()=>null))},{root:t,rootMargin:"220px 0px 220px 0px",threshold:0});return r.observe(i),()=>r.disconnect()},[nt,ze,Re,M]);const ut=async t=>{const i=P(t),r=I(t.workstreamTitle);try{await H.remove({initiativeId:t.initiativeId,workstreamId:t.workstreamId}),ce(n=>{if(!n.has(i))return n;const u=new Set(n);return u.delete(i),u}),de(n=>n===i?null:n),y(`Removed ${r} from queue.`)}catch(n){const u=n instanceof Error?n.message:"";y(pe(u,"Failed to remove from queue"))}},_t=(t,i,r)=>{const n=d?R:me.length>0?me:R;ce(u=>{const h=new Set(u),E=Te;if(r&&E&&n.includes(E)){const g=n.indexOf(t),Z=n.indexOf(E);if(g>=0&&Z>=0){const[Fe,Pe]=g<Z?[g,Z]:[Z,g];for(const Ne of n.slice(Fe,Pe+1))i?h.add(Ne):h.delete(Ne)}else i?h.add(t):h.delete(t)}else i?h.add(t):h.delete(t);return h}),de(t)},Gt=()=>{ce(new Set(R)),de(R.length>0?R[R.length-1]:null)},Kt=()=>{ce(new Set),de(null)},Ve=async t=>{if(V.size===0){y("Select one or more queue items first.");return}const i=C.map(r=>({key:P(r),item:r})).filter(r=>V.has(r.key));if(i.length===0){y("Selected queue items are no longer visible.");return}X(`bulk:${t}`),y(null);try{const r=i.map(({item:g})=>({initiativeId:g.initiativeId,workstreamId:g.workstreamId})),n=await H.bulk({action:t,items:r}),u=typeof(n==null?void 0:n.updated)=="number"?n.updated??0:0,h=typeof(n==null?void 0:n.failed)=="number"?n.failed??0:0,E=Array.isArray(n==null?void 0:n.errors)?n.errors.filter(g=>typeof g=="string").map(g=>g.trim()).filter(Boolean):[],v=t==="remove"?"removed":t==="move_top"?"moved to top":"moved to bottom";u===0&&h>0&&E.length>0?y(pe(E[0],`${h} queue action${h===1?"":"s"} failed.`)):y(h>0?`${u} item${u===1?"":"s"} ${v}; ${h} failed.`:`${u} item${u===1?"":"s"} ${v}.`),ce(new Set),de(null)}catch(r){const n=r instanceof Error?r.message:"";y(pe(n,"Bulk queue action failed"))}finally{X(null)}},Qt=async()=>{const t=We.current.map(i=>dt.get(i)).filter(Boolean).map(i=>({initiativeId:i.initiativeId,workstreamId:i.workstreamId}));t.length!==0&&await H.reorder({order:t})},te=async(t,i,r)=>{y(null),le(null),D==null||D(null),X(t);try{const n=await i();y(typeof r=="function"?r(n):r)}catch(n){if(n instanceof ts)le(n),D==null||D(n);else{const u=n instanceof Error?n.message:"";y(pe(u,"Action failed"))}}finally{X(null)}},Le=async t=>W?await W(t):await Pt({initiativeId:t.initiativeId,workstreamId:t.workstreamId,agentId:t.runnerAgentId}),Be=j?"upgrade":Ee?"error":B?"notice":null,mt=Ee?ms(Ee):null,ve=O.length>0?xs(O[0]):null,Wt=Be!==null,Vt=O.length>0&&ve!==null&&!Et&&x===null&&!be,se=zt.length,Ht=l.useMemo(()=>w==="initiative"?Ke.length>0:w==="milestone"?Qe.length>0:C.length>0,[Ke.length,C.length,Qe.length,w]),xt=Q&&ee&&!d&&se>0,He=l.useMemo(()=>{if(!T)return 0;let t=0;for(const i of ue)i.queueState===m.RUNNING&&t++;return t},[T,ue]),Zt=w==="initiative"?"No initiatives in the queue right now.":w==="milestone"?"No milestone slices in the queue right now.":He>0?`All queued work is in progress (${He} running).`:O.length>0&&ve?"Queue signal is delayed right now.":"No queued workstreams right now.",pt=e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",onClick:Gt,className:"control-pill h-8 px-2.5 text-caption font-semibold",children:"Select all"}),e.jsx("button",{type:"button",onClick:Kt,disabled:V.size===0,className:"control-pill h-8 px-2.5 text-caption font-semibold disabled:opacity-45",children:"Clear"}),e.jsx("button",{type:"button",disabled:se===0||F==="bulk:move_top",onClick:()=>void Ve("move_top"),className:"control-pill h-8 px-2.5 text-caption font-semibold disabled:opacity-45",children:"Move top"}),e.jsx("button",{type:"button",disabled:se===0||F==="bulk:move_bottom",onClick:()=>void Ve("move_bottom"),className:"control-pill h-8 px-2.5 text-caption font-semibold disabled:opacity-45",children:"Move bottom"}),e.jsx("button",{type:"button",disabled:se===0||F==="bulk:remove",onClick:()=>void Ve("remove"),className:"control-pill h-8 px-2.5 text-caption font-semibold disabled:opacity-45",children:"Remove"})]});return e.jsxs(Yt,{surface:Ce==="card",className:`flex h-full min-h-0 flex-col overflow-hidden ${q?"":"card-enter"} ${Ce==="flat"?"!rounded-none !border-none !bg-transparent !shadow-none":""} ${S??""}`,children:[f?e.jsxs("div",{className:"flex items-center justify-between gap-2 border-b border-subtle px-4 py-3",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("h2",{className:"truncate text-heading font-semibold text-white",children:p}),e.jsx("span",{className:"chip inline-flex min-w-[52px] justify-center text-micro tabular-nums",children:M?e.jsx("span",{"aria-hidden":!0,className:"h-2.5 w-5 rounded bg-white/15 animate-pulse"}):lt}),e.jsx("span",{className:ie("inline-flex min-w-[92px] justify-end text-micro text-muted transition-opacity",st&&!M?"opacity-100":"opacity-0"),"aria-live":"polite",children:"refreshing…"})]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("div",{className:"inline-flex items-center rounded-xl border border-white/[0.1] bg-white/[0.03] p-1",role:"tablist","aria-label":"Next Up scope",children:At.map(t=>{const i=w===t.value;return e.jsxs(z.button,{type:"button",role:"tab","aria-selected":i,onClick:()=>J(t.value),...b.segmentedTap,className:ie("relative h-7 rounded-lg px-2.5 text-caption font-semibold transition-colors",i?"text-[#E8FFD0]":"text-secondary hover:text-white"),title:`Show ${t.label.toLowerCase()} queue`,children:[i?e.jsx(z.span,{layoutId:"next-up-scope-indicator",transition:G?{duration:.01}:b.railMorphSpring,className:"pointer-events-none absolute inset-0 rounded-lg border border-[#BFFF00]/35 bg-[#BFFF00]/16","aria-hidden":!0}):null,e.jsx("span",{className:"relative z-[1]",children:t.label})]},t.value)})}),K?e.jsx("button",{type:"button",onClick:()=>ae(!d),className:"control-pill h-8 flex-shrink-0 whitespace-nowrap px-3 text-caption font-semibold",title:d?"Switch to expanded cards":"Switch to compact list","aria-label":d?"Expand Next Up queue":"Compact Next Up queue",children:d?"Expand":"Compact"}):null]})]}):null,Wt&&e.jsx("div",{className:"px-3 pt-2",children:e.jsx(ke,{initial:!1,mode:"wait",children:Be==="upgrade"&&j?e.jsx(z.div,{initial:{opacity:0,y:-4,scale:.99},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-4,scale:.99},transition:Ge,className:"rounded-xl border border-amber-200/25 bg-amber-200/10 px-3 py-2 text-caption text-amber-100",children:e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"rounded-full border border-amber-200/25 bg-amber-200/10 px-2 py-0.5 text-micro font-semibold uppercase tracking-[0.08em] text-amber-100/90",children:"Upgrade required"}),e.jsxs("span",{className:"truncate text-micro text-secondary",children:[ft(j.currentPlan)," →"," ",ft(j.requiredPlan)]})]}),e.jsx("div",{className:"mt-1 line-clamp-2 text-caption leading-snug text-amber-50/90",title:j.message,children:j.message}),B?e.jsx("div",{className:"mt-1 text-micro text-rose-50/85",children:B}):null]}),e.jsxs("div",{className:"flex flex-shrink-0 flex-col items-end gap-1",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("button",{type:"button",onClick:()=>void as({actions:j.actions,requiredPlan:j.requiredPlan}).catch(t=>y(pe(t instanceof Error?t.message:"","Checkout failed"))),className:"h-7 rounded-full border border-amber-200/25 bg-amber-200/15 px-3 text-micro font-semibold text-amber-50 transition-colors hover:bg-amber-200/20",children:"Upgrade"}),e.jsx("button",{type:"button",onClick:()=>void os({actions:j.actions}).catch(t=>y(pe(t instanceof Error?t.message:"","Portal failed"))),className:"h-7 rounded-full border border-strong bg-white/[0.04] px-3 text-micro font-semibold text-primary transition-colors hover:bg-white/[0.08]",children:"Billing"}),L&&e.jsx("button",{type:"button",onClick:L,className:"h-7 rounded-full border border-strong bg-white/[0.04] px-2.5 text-micro font-semibold text-primary transition-colors hover:bg-white/[0.08]",children:"Settings"})]}),(ht=j.actions)!=null&&ht.pricing?e.jsx("a",{href:j.actions.pricing,target:"_blank",rel:"noopener noreferrer",className:"text-micro text-secondary underline decoration-white/20 hover:text-primary",children:"View pricing"}):null]})]})},"upgrade"):Be==="error"&&mt?e.jsx(z.div,{initial:{opacity:0,y:-4},animate:{opacity:1,y:0},exit:{opacity:0,y:-4},transition:Ge,className:"rounded-xl border border-red-400/25 bg-red-500/[0.08] px-3 py-2 text-caption text-red-100",children:mt},"error"):Be==="notice"&&B?e.jsx(z.div,{initial:{opacity:0,y:-4},animate:{opacity:1,y:0},exit:{opacity:0,y:-4},transition:Ge,className:"rounded-xl border border-white/[0.1] bg-white/[0.03] px-3 py-2 text-caption text-primary",children:B},"notice"):null})}),e.jsxs("div",{ref:et,className:`flex-1 space-y-2.5 overflow-y-auto overscroll-y-contain scroll-smooth px-3 pb-3 ${f?"pt-1":"pt-2.5"}`,children:[!M&<>0?e.jsxs("div",{className:"flex flex-col gap-2.5 px-0.5 sm:flex-row sm:items-start sm:justify-between",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"truncate text-micro uppercase tracking-[0.08em] text-muted",children:w==="initiative"?"Initiatives":w==="milestone"?"Milestone slices":rt===m.BLOCKED?"Needs attention":rt===m.RUNNING?"Running now":"Queue"}),e.jsxs("div",{className:"mt-1 flex flex-wrap items-center gap-1.5",children:[se>0?e.jsxs("span",{className:"chip text-micro",children:[se," selected"]}):null,e.jsx("span",{className:ie("inline-flex min-w-[92px] text-micro text-muted transition-opacity",st&&!M?"opacity-100":"opacity-0"),"aria-live":"polite",children:"refreshing…"}),Q&&ee&&!d&&se===0?e.jsx("span",{className:"text-micro text-muted",children:"Shift+select to pick ranges."}):null]})]}),e.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-1.5 sm:justify-end",children:[K?e.jsx("button",{type:"button",onClick:()=>ae(!d),className:"control-pill h-8 px-2.5 text-caption font-semibold",title:d?"Switch to expanded cards":"Switch to compact list","aria-label":d?"Expand Next Up queue":"Compact Next Up queue",children:d?"Expand":"Compact"}):null,xt?e.jsx("div",{className:"flex flex-wrap justify-end gap-1.5",children:pt}):null,!xt&&Ie&&ee?e.jsxs("div",{ref:Oe,className:"relative",children:[e.jsxs("button",{type:"button",onClick:()=>ge(t=>!t),className:"control-pill h-8 px-2.5 text-caption font-semibold","aria-haspopup":"menu","aria-expanded":be,title:"Queue settings",children:[e.jsxs("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"opacity-85","aria-hidden":!0,children:[e.jsx("path",{d:"M4 6h16"}),e.jsx("path",{d:"M7 12h10"}),e.jsx("path",{d:"M10 18h4"})]}),e.jsx("span",{children:"Queue"})]}),be?e.jsx("div",{className:"surface-tier-2 absolute right-0 top-[calc(100%+8px)] z-[280] w-[320px] max-w-[86vw] rounded-xl p-3 shadow-[0_18px_42px_rgba(0,0,0,0.46)] backdrop-blur-xl",children:e.jsxs("div",{className:"space-y-2.5",children:[Q&&!d?e.jsxs("div",{children:[e.jsx("p",{className:"section-kicker",children:"Bulk actions"}),e.jsx("div",{className:"mt-1.5 flex flex-wrap items-center gap-1.5",children:pt})]}):null,L?e.jsx("button",{type:"button",onClick:()=>{ge(!1),L()},className:"control-pill h-7 px-2.5 text-micro font-semibold",children:"Open settings"}):null]})}):null]}):null]})]}):null,M?e.jsx(ps,{compact:d}):null,!M&&!Ht&&!Ee&&e.jsx(Ot,{icon:"queue",headline:Zt,description:He>0?"Check the In Progress tab to see active work.":ve??"Create an initiative or add workstreams to populate the queue.",primaryAction:O.length>0&&ve?{label:"Retry now",onClick:()=>{Me(!1),Ft()}}:void 0}),!M&&w==="initiative"?e.jsx(ke,{initial:!1,children:Ke.map((t,i)=>{const r=t.items.find(v=>v.queueState!==m.RUNNING&&v.queueState!=="completed")??t.items[0]??null,n=Se(t.initiativeTitle,t.initiativeId,"Initiative"),u=wt(t.queueState),h=yt(t.queueState),E=t.items.reduce((v,g)=>v+(g.sliceTaskCount??0),0);return e.jsxs(z.article,{layout:!0,initial:{opacity:0,y:8,scale:.99},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-4,scale:.99},transition:{duration:G?.01:b.surfaceSwitch.duration,delay:G?0:Math.min(i,b.listStaggerMaxItems)*b.listStaggerStep,ease:b.surfaceSwitch.ease},className:"rounded-2xl border border-white/[0.08] bg-white/[0.02] px-3 py-3",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"text-micro uppercase tracking-[0.08em] text-muted",children:"Initiative"}),e.jsx("p",{className:"mt-0.5 truncate text-body font-semibold text-white",title:n,children:n})]}),e.jsx("span",{className:ie("inline-flex items-center rounded-full border px-2 py-0.5 text-[10px] font-semibold uppercase tracking-[0.08em]",h),children:u})]}),e.jsxs("p",{className:"mt-1 text-micro text-secondary",children:[t.workstreamCount," workstreams · ",E," tasks"]}),e.jsx("div",{className:"mt-2 space-y-1",children:t.items.slice(0,3).map((v,g)=>e.jsxs("div",{className:"flex items-center justify-between gap-2 rounded-lg border border-white/[0.06] bg-black/[0.18] px-2.5 py-1.5 text-caption",children:[e.jsx("span",{className:"truncate text-white/84",children:I(v.workstreamTitle)}),e.jsxs("span",{className:"text-micro text-secondary",children:[v.sliceTaskCount??0," tasks"]})]},`${v.workstreamId}:${g}`))}),e.jsxs("div",{className:"mt-2.5 flex items-center gap-1.5",children:[e.jsx("button",{type:"button",onClick:()=>$==null?void 0:$(t.initiativeId,t.initiativeTitle),className:"control-pill h-7 px-2.5 text-micro font-semibold",children:"Open"}),e.jsx("button",{type:"button",disabled:!r||F===`initiative:${t.initiativeId}`,onClick:()=>{r&&te(`initiative:${t.initiativeId}`,()=>Le(r),`Dispatched ${I(r.workstreamTitle)}.`)},className:"control-pill h-7 px-2.5 text-micro font-semibold disabled:opacity-45",children:"Dispatch"})]})]},`initiative-group:${t.initiativeId}`)})}):null,!M&&w==="milestone"?e.jsx(ke,{initial:!1,children:Qe.map((t,i)=>{const r=t.item,n=`milestone:${t.workstreamId}:${t.milestoneId??"none"}`;return e.jsxs(z.article,{layout:!0,initial:{opacity:0,y:8,scale:.99},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-4,scale:.99},transition:{duration:G?.01:b.surfaceSwitch.duration,delay:G?0:Math.min(i,b.listStaggerMaxItems)*b.listStaggerStep,ease:b.surfaceSwitch.ease},className:"rounded-2xl border border-white/[0.08] bg-white/[0.02] px-3 py-3",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("p",{className:"text-micro uppercase tracking-[0.08em] text-muted",children:[I(t.initiativeTitle)," · ",I(t.workstreamTitle)]}),e.jsx("p",{className:"mt-0.5 truncate text-body font-semibold text-white",title:t.milestoneTitle,children:I(t.milestoneTitle)})]}),e.jsx("span",{className:ie("inline-flex items-center rounded-full border px-2 py-0.5 text-[10px] font-semibold uppercase tracking-[0.08em]",yt(t.queueState)),children:wt(t.queueState)})]}),e.jsxs("p",{className:"mt-1 text-micro text-secondary",children:[t.taskCount," tasks in slice"]}),e.jsxs("div",{className:"mt-2.5 flex items-center gap-1.5",children:[e.jsx("button",{type:"button",onClick:()=>$==null?void 0:$(t.initiativeId,t.initiativeTitle),className:"control-pill h-7 px-2.5 text-micro font-semibold",children:"Open"}),e.jsx("button",{type:"button",disabled:F===n||t.queueState===m.RUNNING,onClick:()=>void te(n,()=>Le(r),u=>Xe(r,u)),className:"control-pill h-7 px-2.5 text-micro font-semibold disabled:opacity-45",children:t.queueState===m.RUNNING?"Running":"Start"})]})]},`${t.initiativeId}:${t.workstreamId}:${t.milestoneId??"none"}`)})}):null,!M&&ee&&d?e.jsx(ke,{initial:!1,children:C.map((t,i)=>{const r=P(t),n=F===r,u=t.queueState===m.RUNNING,h=t.nextTaskDueAt?Nt(t.nextTaskDueAt):null,E=Se(t.initiativeTitle,t.initiativeId,"Initiative"),v=Se(t.workstreamTitle,t.workstreamId,"Workstream"),g=qt(t),Z=t.nextTaskTitle?I(t.nextTaskTitle):null,Fe=t.blockReason?I(t.blockReason):null,Pe=$t(t),Ne=Tt(t);return e.jsxs(z.article,{layout:!0,initial:{opacity:0,y:6,scale:.99},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-4,scale:.99},transition:{duration:G?.01:b.surfaceSwitch.duration,delay:G?0:Math.min(i,b.listStaggerMaxItems)*b.listStaggerStep,ease:b.surfaceSwitch.ease},className:"group relative overflow-visible rounded-2xl border border-white/[0.08] bg-white/[0.02] px-2.5 py-2 cursor-pointer transition-colors hover:border-white/[0.14]",onClick:()=>_==null?void 0:_(t),role:"button",tabIndex:0,onKeyDown:N=>{(N.key==="Enter"||N.key===" ")&&(N.preventDefault(),_==null||_(t))},children:[e.jsx("div",{className:`pointer-events-none absolute inset-x-2.5 top-0 h-px bg-gradient-to-r ${St(t.queueState)}`,"aria-hidden":!0}),e.jsxs("div",{className:"flex min-w-0 items-center gap-2.5",children:[e.jsx(kt,{name:Pe,hint:Mt(t,Pe),size:"xs"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[e.jsx(je,{type:"initiative",size:11,className:"flex-shrink-0 opacity-85"}),e.jsx("button",{type:"button",onClick:()=>$==null?void 0:$(t.initiativeId,t.initiativeTitle),className:"block min-w-0 flex-1 truncate text-left text-micro uppercase tracking-[0.08em] text-muted transition-colors hover:text-white/72",title:E,children:E}),g?e.jsx("span",{className:ie("inline-flex flex-shrink-0 items-center rounded-full border px-2 py-0.5 text-[9px] font-semibold uppercase tracking-[0.08em]",g.toneClass),title:g.longLabel,children:g.shortLabel}):null]}),e.jsxs("p",{className:"mt-0.5 flex min-w-0 items-center gap-1.5 text-caption font-semibold leading-snug text-white",title:v,children:[e.jsx(je,{type:"workstream",size:12,className:"flex-shrink-0 opacity-95"}),e.jsx("span",{className:"line-clamp-2",children:v})]}),Z?e.jsxs("p",{className:"mt-0.5 line-clamp-2 text-micro leading-snug text-secondary",title:`${Ze(t.queueState)}: ${Z}${h?` · ${h}`:""}`,children:[Ze(t.queueState),": ",Z,h?` · ${h}`:""]}):e.jsx("p",{className:"mt-0.5 line-clamp-2 text-micro leading-snug text-secondary",title:Je(t),children:Je(t)}),Ne?e.jsxs("p",{className:"mt-0.5 text-micro text-muted",children:["Runner ",Ne]}):null,e.jsxs("div",{className:"mt-1 flex flex-wrap items-center gap-1.5",children:[(()=>{const N=t.objectiveScore??t.compositeScore??null;if(N==null)return null;const xe=N>=80?"S":N>=60?"A":"B",ne=xe==="S"?"border-[#BFFF00]/30 bg-[#BFFF00]/[0.12] text-[#d8ffa1]":xe==="A"?"border-[#14B8A6]/30 bg-[#14B8A6]/[0.12] text-[#87FFE9]":"border-white/[0.12] bg-white/[0.05] text-white/60";return e.jsxs("span",{className:`chip text-[9px] font-semibold ${ne}`,children:[xe,"-tier"]})})(),(()=>{const N=t.expectedValueUsd,xe=t.sliceTaskCount??0,ne=[];return xe>0&&ne.push(`${xe} tasks`),typeof N=="number"&&N>0&&ne.push(`$${N.toFixed(2)}`),h&&ne.push(h),ne.length===0?null:e.jsx("span",{className:"text-micro text-muted",children:ne.join(" · ")})})()]})]})]}),(t.sliceTaskCount??0)>0&&e.jsx("div",{className:"pointer-events-none absolute inset-x-0 bottom-0 h-[2px] rounded-b-2xl overflow-hidden",children:e.jsx("div",{className:"h-full rounded-full",style:{width:`${Math.max(t.queueState===m.COMPLETED?100:t.queueState===m.RUNNING?50:15,4)}%`,background:`linear-gradient(90deg, ${bt.lime}, ${bt.teal})`,opacity:.6}})}),Fe&&e.jsxs("div",{className:"mt-1.5 rounded-lg border border-red-400/24 bg-red-500/[0.08] px-2.5 py-1 text-micro text-red-100/85",children:["Blocked: ",Fe]}),e.jsxs("div",{className:"mt-1.5 flex items-center gap-1.5",onClick:N=>N.stopPropagation(),children:[e.jsx("button",{type:"button",disabled:n||u,onClick:()=>void te(r,()=>Le(t),N=>Xe(t,N)),className:"control-pill flex h-7 items-center justify-center px-2.5 text-micro font-semibold disabled:opacity-40",title:u?"Already running":"Start now",children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(It,{className:"h-3 w-3 opacity-85"}),e.jsx("span",{children:u?"Running":"Start"})]})}),e.jsxs("div",{className:"relative ml-auto",children:[e.jsx("button",{type:"button",disabled:n,onClick:()=>Y(N=>N===r?null:r),className:"control-pill flex h-7 items-center justify-center px-2.5 text-micro font-semibold disabled:opacity-40",title:"Queue actions",children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(Rt,{className:"h-3 w-3 opacity-85"}),e.jsx("span",{children:"More"})]})}),x===r&&e.jsxs("div",{className:"absolute right-0 top-[calc(100%+6px)] z-[320] min-w-[178px] rounded-xl border border-white/[0.1] bg-[#080d14]/95 p-1.5 shadow-[0_16px_36px_rgba(0,0,0,0.42)] backdrop-blur",children:[e.jsx("button",{type:"button",onClick:()=>{Y(null),te(`${r}:top`,()=>H.move({initiativeId:t.initiativeId,workstreamId:t.workstreamId,placement:"top"}),`Moved ${v} to top of queue.`)},className:"flex h-8 w-full items-center rounded-md px-2.5 text-left text-caption text-primary transition-colors hover:bg-white/[0.08]",children:"Move to top"}),e.jsx("button",{type:"button",onClick:()=>{Y(null),te(`${r}:bottom`,()=>H.move({initiativeId:t.initiativeId,workstreamId:t.workstreamId,placement:"bottom"}),`Moved ${v} to bottom of queue.`)},className:"flex h-8 w-full items-center rounded-md px-2.5 text-left text-caption text-primary transition-colors hover:bg-white/[0.08]",children:"Move to bottom"}),e.jsx("button",{type:"button",onClick:()=>{Y(null),te(`${r}:auto`,()=>it({initiativeId:t.initiativeId,workstreamId:t.workstreamId,agentId:t.runnerAgentId,scope:"initiative"}),`Auto enabled for ${E}.`)},className:"flex h-8 w-full items-center rounded-md px-2.5 text-left text-caption text-primary transition-colors hover:bg-white/[0.08]",children:"Auto on"}),e.jsx("button",{type:"button",disabled:H.isRemoving,onClick:()=>{Y(null),ut(t)},className:"mt-1 flex h-8 w-full items-center rounded-md px-2.5 text-left text-caption text-red-100 transition-colors hover:bg-red-500/[0.12] disabled:opacity-45",children:"Remove from queue"})]})]})]})]},r)})}):!M&&ee?e.jsx(ss,{axis:"y",values:me,onReorder:t=>{We.current=t,ct(t)},className:"space-y-2.5",children:me.map(t=>dt.get(t)).filter(Boolean).map((t,i)=>e.jsx(fs,{item:t,index:i,actionKey:F,setNotice:y,setUpgradeGate:le,onUpgradeGate:D,onOpenInitiative:$,onOpenSliceDetail:_,selected:V.has(P(t)),selectionEnabled:Q,onToggleSelection:_t,menuKey:x,setMenuKey:Y,onPlayWorkstream:Le,startWorkstreamAutoContinue:it,triagePlacement:oe,onPauseWorkstream:(r,n)=>H.stopTriage({initiativeId:r.initiativeId,workstreamId:r.workstreamId,placement:n,resetToTodo:!1}),onMoveWorkstream:(r,n)=>H.move({initiativeId:r.initiativeId,workstreamId:r.workstreamId,placement:n}),onCommitReorder:()=>void Qt().catch(()=>null),onDismiss:ut,runAction:te},P(t)))}):null,(ze||Re)&&e.jsx("div",{ref:tt,className:"flex h-10 items-center justify-center",children:e.jsx("span",{className:"text-micro text-muted",children:Re?"Loading more queue items…":"Scroll for more"})})]}),e.jsx("div",{className:"pointer-events-none absolute bottom-3 right-3 z-[250]",children:e.jsx(cs,{open:Vt,tone:"warning",title:"Limited signal",message:ve,autoDismissMs:6e3,onDismiss:()=>Me(!0)})})]})}function fs({item:s,index:a,actionKey:c,setNotice:o,setUpgradeGate:p,onUpgradeGate:f,onOpenInitiative:k,onOpenSliceDetail:S,selected:q,selectionEnabled:K,onToggleSelection:he,menuKey:$,setMenuKey:L,onPlayWorkstream:D,startWorkstreamAutoContinue:_,triagePlacement:Q,onPauseWorkstream:Ce,onMoveWorkstream:Ie,onCommitReorder:qe,onDismiss:Ae,runAction:W}){const $e=ns(),T=jt(),[re,fe]=l.useState(!1),d=`${s.initiativeId}:${s.workstreamId}`,ae=c===d,B=s.queueState===m.RUNNING,y=s.nextTaskDueAt?Nt(s.nextTaskDueAt):null,w=Se(s.initiativeTitle,s.initiativeId,"Initiative"),J=Se(s.workstreamTitle,s.workstreamId,"Workstream"),oe=qt(s),j=s.nextTaskTitle?I(s.nextTaskTitle):null,le=s.blockReason?I(s.blockReason):null,F=$t(s),X=Tt(s);return e.jsx(is,{value:d,id:d,dragListener:!1,dragControls:$e,onDragStart:()=>fe(!0),onDragEnd:()=>{fe(!1),qe()},whileDrag:{scale:1.02,boxShadow:"0 20px 48px rgba(0,0,0,0.5), 0 0 0 1px rgba(191,255,0,0.15)",zIndex:50,cursor:"grabbing"},className:"relative",children:e.jsxs(z.article,{layout:!0,initial:{opacity:0,y:12,scale:.97},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-8,scale:.98},transition:{duration:T?.01:b.surfaceSwitch.duration,ease:b.surfaceSwitch.ease,delay:T?0:Math.min(a,b.listStaggerMaxItems)*b.listStaggerStep,opacity:{duration:T?.01:b.surfaceSwitch.duration,ease:b.surfaceSwitch.ease}},className:"group relative overflow-visible rounded-2xl border border-white/[0.08] bg-white/[0.02] px-3 py-3 cursor-pointer transition-colors hover:border-white/[0.14]",onClick:()=>S==null?void 0:S(s),role:"button",tabIndex:0,onKeyDown:x=>{(x.key==="Enter"||x.key===" ")&&(x.preventDefault(),S==null||S(s))},children:[e.jsx("div",{className:`pointer-events-none absolute inset-x-3 top-0 h-px bg-gradient-to-r ${St(s.queueState)}`,"aria-hidden":!0}),e.jsx("div",{className:"flex items-start justify-between gap-2.5",children:e.jsxs("div",{className:"min-w-0 flex flex-1 items-start gap-2.5",children:[e.jsxs("div",{className:"relative h-8 w-8 flex-shrink-0",children:[e.jsx("div",{className:`absolute inset-0 transition-[opacity,transform] duration-200 ease-out ${K?q?"opacity-0 scale-90":"opacity-100 scale-100 group-hover:opacity-0 group-hover:scale-90 group-focus-within:opacity-0 group-focus-within:scale-90":"opacity-100 scale-100"}`,children:e.jsx(kt,{name:F,hint:Mt(s,F),size:"sm"})}),K?e.jsx("button",{type:"button",role:"checkbox","aria-checked":q,"aria-label":"Select queue row",title:q?"Selected (Shift+click for range)":"Select (Shift+click for range)",onClick:x=>{x.stopPropagation(),he(d,!q,x.shiftKey)},onMouseDown:x=>x.stopPropagation(),onKeyDown:x=>x.stopPropagation(),className:`absolute inset-0 flex items-center justify-center rounded-full border transition-[opacity,transform,background-color,border-color,color] duration-200 ease-out ${q?"opacity-100 scale-100 border-[#BFFF00]/40 bg-[#BFFF00]/18 text-[#E1FFB2]":"opacity-0 scale-90 border-white/[0.24] bg-black/55 text-white/78 group-hover:opacity-100 group-hover:scale-100 group-focus-within:opacity-100 group-focus-within:scale-100 hover:bg-black/62"}`,children:e.jsx("span",{className:"inline-flex h-4 w-4 items-center justify-center rounded-full border border-current/45 bg-black/30",children:q?e.jsx("svg",{viewBox:"0 0 16 16",className:"h-2.5 w-2.5",fill:"none","aria-hidden":!0,children:e.jsx("path",{d:"M3.2 8.3 6.2 11l6.6-6.1",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}):null})}):null]}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[e.jsx(je,{type:"initiative",size:11,className:"flex-shrink-0 opacity-85"}),e.jsx("button",{type:"button",onClick:()=>k==null?void 0:k(s.initiativeId,s.initiativeTitle),className:"block min-w-0 flex-1 truncate text-left text-micro uppercase tracking-[0.08em] text-muted transition-colors hover:text-white/72",title:w,children:w}),oe?e.jsx("span",{className:ie("inline-flex flex-shrink-0 items-center rounded-full border px-2 py-0.5 text-[9px] font-semibold uppercase tracking-[0.08em]",oe.toneClass),title:oe.longLabel,children:oe.shortLabel}):null]}),e.jsxs("div",{className:"mt-0.5 flex min-w-0 items-start gap-1.5",children:[e.jsx(je,{type:"workstream",size:12,className:"mt-[3px] flex-shrink-0 opacity-95"}),e.jsx("p",{className:"min-w-0 line-clamp-2 text-body font-semibold leading-snug text-white",title:J,children:J})]}),e.jsxs("div",{className:"mt-1.5 flex items-center gap-2 text-micro text-secondary",children:[e.jsx("span",{className:"rounded-full border border-strong bg-white/[0.03] px-2 py-0.5 text-micro uppercase tracking-[0.08em] text-secondary",children:"Runner"}),e.jsxs("span",{className:"truncate text-white/68",children:[F,X?` · ${X}`:""]})]})]})]})}),e.jsx("div",{className:"mt-2 rounded-lg border border-white/[0.07] bg-black/[0.18] px-2.5 py-2 text-caption text-white/68",children:j?e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-1 text-micro uppercase tracking-[0.08em] text-white/44",children:[e.jsx(je,{type:"task",size:10,className:"flex-shrink-0 opacity-80"}),e.jsx("span",{children:Ze(s.queueState)}),y?e.jsxs("span",{className:"truncate text-micro normal-case tracking-normal text-muted",children:["· ",y]}):null]}),e.jsx("p",{className:"line-clamp-2 break-words text-caption leading-snug text-white/84",title:j,children:j})]}):e.jsx("span",{className:"text-secondary",children:Je(s)})}),le&&e.jsxs("div",{className:"mt-1.5 rounded-lg border border-red-400/24 bg-red-500/[0.08] px-2.5 py-1 text-micro text-red-100/85",children:["Blocked: ",le]}),e.jsxs("div",{className:"mt-2 flex items-center gap-1.5",onClick:x=>x.stopPropagation(),children:[e.jsx("button",{type:"button",disabled:ae||B,onClick:()=>void W(d,()=>D(s),x=>Xe(s,x)),className:"control-pill flex h-7 items-center justify-center px-2.5 text-micro font-semibold disabled:opacity-40",title:B?"Already running":"Start this workstream now",children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(It,{className:"h-3 w-3 opacity-85"}),e.jsx("span",{children:B?"Running":"Start"})]})}),e.jsxs("button",{type:"button",onPointerDown:x=>$e.start(x),"aria-label":"Drag to reorder",title:re?"Reordering":"Drag to reorder",className:`control-pill flex h-7 items-center justify-center gap-1 px-2 text-micro font-semibold transition-colors ${re?"border-[#BFFF00]/35 bg-[#BFFF00]/14 text-[#E1FFB2] cursor-grabbing":"cursor-grab hover:bg-white/[0.08] hover:text-bright"}`,children:[re?e.jsx(us,{className:"h-3.5 w-3.5 opacity-90"}):e.jsx(ds,{className:"h-3.5 w-3.5 opacity-90"}),e.jsx("span",{children:re?"Reordering":"Drag"})]}),e.jsxs("div",{className:"relative ml-auto",children:[e.jsx("button",{type:"button",disabled:ae,onClick:()=>L(x=>x===d?null:d),className:"control-pill flex h-7 items-center justify-center px-2.5 text-micro font-semibold disabled:opacity-40",title:"Queue actions",children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(Rt,{className:"h-3 w-3 opacity-85"}),e.jsx("span",{children:"More"})]})}),$===d&&e.jsxs("div",{className:"absolute right-0 top-[calc(100%+6px)] z-[320] min-w-[198px] rounded-xl border border-white/[0.1] bg-[#080d14]/95 p-1.5 shadow-[0_16px_36px_rgba(0,0,0,0.42)] backdrop-blur",children:[e.jsx("button",{type:"button",onClick:()=>{L(null),W(`${d}:top`,()=>Ie(s,"top"),`Moved ${J} to top of queue.`)},className:"flex h-8 w-full items-center rounded-md px-2.5 text-left text-caption text-primary transition-colors hover:bg-white/[0.08]",children:"Move to top"}),e.jsx("button",{type:"button",onClick:()=>{L(null),W(`${d}:bottom`,()=>Ie(s,"bottom"),`Moved ${J} to bottom of queue.`)},className:"flex h-8 w-full items-center rounded-md px-2.5 text-left text-caption text-primary transition-colors hover:bg-white/[0.08]",children:"Move to bottom"}),e.jsx("button",{type:"button",onClick:()=>{L(null),W(`${d}:auto`,()=>_({initiativeId:s.initiativeId,workstreamId:s.workstreamId,agentId:s.runnerAgentId,scope:"initiative"}),`Auto enabled for ${w}.`)},className:"flex h-8 w-full items-center rounded-md px-2.5 text-left text-caption text-primary transition-colors hover:bg-white/[0.08]",children:"Auto on"}),B?e.jsx("button",{type:"button",onClick:()=>{L(null),W(`${d}:pause`,()=>Ce(s,Q),`Paused ${J}.`)},className:"mt-1 flex h-8 w-full items-center rounded-md px-2.5 text-left text-caption text-primary transition-colors hover:bg-white/[0.08]",children:"Pause run"}):null,e.jsx("button",{type:"button",disabled:ae||B,onClick:()=>{L(null),Ae(s)},className:"mt-1 flex h-8 w-full items-center rounded-md px-2.5 text-left text-caption text-red-100 transition-colors hover:bg-red-500/[0.12] disabled:opacity-45",children:"Remove from queue"})]})]})]})]})})}const Ns=Object.freeze(Object.defineProperty({__proto__:null,NextUpPanel:hs},Symbol.toStringTag,{value:"Module"}));export{cs as I,hs as N,Ns as a,as as o};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as a,j as e}from"./Dj2k1r16.js";import{e as i}from"./
|
|
1
|
+
import{r as a,j as e}from"./Dj2k1r16.js";import{e as i}from"./B1LENRC8.js";import{A as m,m as x}from"./eeHXe_OQ.js";function f({message:l,durationMs:s=5e3,onUndo:d,onExpire:r}){const[t,c]=a.useState(!0),o=a.useRef();a.useEffect(()=>(o.current=setTimeout(()=>{c(!1),r()},s),()=>clearTimeout(o.current)),[s,r]);const n=()=>{clearTimeout(o.current),c(!1),d()};return e.jsx(m,{children:t&&e.jsx(x.div,{initial:{opacity:0,y:20,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:10,scale:.95},transition:{duration:.22,ease:[.22,1,.36,1]},className:"fixed bottom-6 left-1/2 z-50 -translate-x-1/2",children:e.jsxs("div",{className:"flex items-center gap-3 rounded-xl px-4 py-2.5 shadow-lg",style:{backgroundColor:i.cardBgElevated,border:`1px solid ${i.cardBorderStrong}`},children:[e.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:i.lime,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:e.jsx("path",{d:"M20 6 9 17l-5-5"})}),e.jsx("span",{className:"text-body text-primary",children:l}),e.jsx("button",{onClick:n,className:"ml-1 rounded-md px-2.5 py-1 text-caption font-semibold transition-colors hover:bg-white/[0.08]",style:{color:i.lime},children:"Undo"}),e.jsx("div",{className:"absolute bottom-0 left-3 right-3 h-0.5 overflow-hidden rounded-full",children:e.jsx("div",{className:"h-full origin-left rounded-full",style:{backgroundColor:i.lime,opacity:.4,animation:`undoCountdown ${s}ms linear forwards`}})})]})})})}function y(){const[l,s]=a.useState([]),d=o=>{const n=`undo-${Date.now()}-${Math.random().toString(36).slice(2,6)}`;return s(u=>[...u,{...o,id:n}]),n},r=o=>{s(n=>n.filter(u=>u.id!==o))},t=l[0]??null;return{enqueue:d,ToastRenderer:()=>t?e.jsx(f,{message:t.message,onUndo:()=>{t.onUndo(),r(t.id)},onExpire:()=>{t.onCommit(),r(t.id)}},t.id):null}}export{y as u};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as a,j as e}from"./Dj2k1r16.js";import{e as l,y as p,E as h
|
|
1
|
+
import{r as a,j as e}from"./Dj2k1r16.js";import{e as l,y as p,E as h,$ as u}from"./B1LENRC8.js";import{DecisionQueue as b}from"./BkMrrjAv.js";import"./DMKyYAtD.js";import"./eeHXe_OQ.js";import"./cX2e-TLi.js";import"./BjK42gtU.js";import"./BV0BcV1u.js";import"./C6AqbA9J.js";import"./Bv_86bUY.js";function D({open:n,onClose:o,decisions:t,onApproveDecision:i,onRejectDecision:m,onApproveAll:d,onBulkDecisionAction:x}){const r=a.useMemo(()=>t.length>0?Math.max(0,...t.map(c=>c.waitingMinutes)):0,[t]),s=a.useMemo(()=>t.length>=20||r>=15?l.red:t.length>0?l.amber:l.textMuted,[t.length,r]);return e.jsx(p,{open:n,onClose:o,maxWidth:"max-w-3xl",children:e.jsxs("div",{className:"flex h-full w-full flex-col",children:[e.jsx("div",{className:"border-b border-subtle px-5 pt-5 pb-4",children:e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("h3",{className:"inline-flex items-center gap-2 text-heading font-semibold text-white",children:[e.jsx(h,{type:"decision",size:14}),e.jsx("span",{className:"truncate",children:"Decisions"}),e.jsx("span",{className:"rounded-full border px-2 py-0.5 text-caption font-semibold",style:{borderColor:`${s}30`,backgroundColor:`${s}14`,color:s},children:t.length})]}),e.jsx("p",{className:"mt-1 text-body leading-relaxed text-secondary",children:"Bulk review and resolve pending decisions."}),t.length>0&&e.jsxs("p",{className:"mt-2 text-caption text-secondary",children:["Oldest: ",e.jsxs("span",{className:"font-semibold text-white",children:[u(r)," ago"]})]})]}),e.jsx("button",{type:"button",onClick:o,className:"rounded-md border border-strong bg-white/[0.03] px-2.5 py-1.5 text-caption text-primary transition-colors hover:bg-white/[0.08]","aria-label":"Close decisions modal",children:"Close"})]})}),e.jsx("div",{className:"min-h-0 flex-1 overflow-hidden p-4",children:e.jsx(b,{decisions:t,onApproveDecision:i,onRejectDecision:m,onApproveAll:d,onBulkDecisionAction:x})})]})})}export{D as BulkDecisionsModal};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as o,j as t}from"./Dj2k1r16.js";import{i as L,b as C,T as A,
|
|
1
|
+
import{r as o,j as t}from"./Dj2k1r16.js";import{i as L,b as C,T as A,a8 as T}from"./B1LENRC8.js";function R(c){const i=Date.parse(c);if(!Number.isFinite(i))return null;const s=Date.now()-i,r=s<0,a=Math.abs(s),l=Math.round(a/6e4);if(l<1)return r?"soon":"just now";if(l<60)return r?`in ${l}m`:`${l}m ago`;const u=Math.round(a/36e5);if(u<48)return r?`in ${u}h`:`${u}h ago`;const p=Math.round(a/864e5);return p<30?r?`in ${p}d`:`${p}d ago`:new Date(i).toLocaleDateString()}async function M(c,i){const s=await fetch(c,i);if(!s.ok){const r=await s.json().catch(()=>null),a=typeof(r==null?void 0:r.error)=="string"&&r.error||typeof(r==null?void 0:r.message)=="string"&&r.message||`Request failed (${s.status})`;throw new Error(a)}return await s.json()}function J(c){const{entityType:i,entityId:s,authToken:r,embedMode:a,className:l,variant:u="default"}=c,[p,b]=o.useState(!0),[j,v]=o.useState(!1),[N,x]=o.useState(null),[E,S]=o.useState([]),[h,g]=o.useState(""),m=L(),y=o.useMemo(()=>{const e=encodeURIComponent(i),n=encodeURIComponent(s);return`/orgx/api/entities/${e}/${n}/comments`},[i,s]),f=o.useCallback(async()=>{if(m){S([]),x(null),b(!1);return}b(!0),x(null);try{const e=await M(y,{method:"GET",headers:C({authToken:r,embedMode:a})});S(Array.isArray(e.comments)?e.comments:[])}catch(e){x(e instanceof Error?e.message:String(e))}finally{b(!1)}},[r,m,a,y]);o.useEffect(()=>{f()},[f]);const w=o.useCallback(async()=>{if(m){g("");return}const e=h.trim();if(e){v(!0),x(null);try{await M(y,{method:"POST",headers:C({authToken:r,embedMode:a,contentTypeJson:!0}),body:JSON.stringify({body:e,commentType:"note",severity:"info",tags:[]})}),g(""),await f()}catch(n){x(n instanceof Error?n.message:String(n))}finally{v(!1)}}},[r,h,m,a,y,f]),_=o.useCallback(e=>{e.key==="Enter"&&(!e.metaKey&&!e.ctrlKey||(e.preventDefault(),w()))},[w]),d=u==="inline";return t.jsxs("div",{className:l,children:[t.jsxs("div",{className:d?"space-y-1":"space-y-2",children:[t.jsx("textarea",{value:h,onChange:e=>g(e.target.value),onKeyDown:_,placeholder:"Leave a note for humans or agents...",className:d?"min-h-[60px] w-full resize-y border-b border-white/[0.06] bg-transparent px-0 py-2 text-body text-bright outline-none placeholder:text-faint focus:border-white/15 transition-colors":"min-h-[96px] w-full resize-y rounded-xl border border-white/[0.10] bg-white/[0.03] px-4 py-3 text-body text-bright outline-none placeholder:text-faint focus:border-white/20 focus:bg-white/[0.05] transition-colors"}),t.jsxs("div",{className:`flex flex-wrap items-center justify-between gap-3 ${d?"opacity-70":""}`,children:[t.jsx("p",{className:"text-caption text-muted",children:"Cmd/Ctrl+Enter to post. Visible to agents and collaborators."}),t.jsx("button",{type:"button",onClick:w,disabled:j||h.trim().length===0,className:d?"text-caption font-semibold text-primary hover:text-white transition-colors disabled:opacity-50":"inline-flex items-center justify-center rounded-full border border-strong bg-white/[0.05] px-3.5 py-1.5 text-caption font-semibold tracking-wide text-primary transition-colors hover:bg-white/[0.09] disabled:opacity-50 disabled:hover:bg-white/[0.05]",children:j?"Saving…":"Post note"})]})]}),N?t.jsx("div",{className:`mt-2 text-caption text-red-200 ${d?"":"rounded-xl border border-red-500/20 bg-red-500/10 px-3.5 py-2"}`,children:N}):null,p?t.jsx("div",{className:"mt-2 text-body text-muted",children:"Loading notes…"}):E.length===0?t.jsx(A,{icon:"inbox",headline:"No notes yet",description:m?"Notes are unavailable in demo mode.":"Add a note to keep context for your team and agents.",className:"py-6"}):t.jsx("div",{className:`mt-2 space-y-2 ${d?"divide-y divide-white/[0.06]":"space-y-3"}`,children:E.map(e=>{const n=e.created_at?R(e.created_at):null,k=e.author_name??(e.author_type==="agent"?e.author_id:"Unknown");if(d)return t.jsxs("div",{className:"pt-2 first:pt-0",children:[t.jsxs("div",{className:"flex items-center gap-2 text-micro text-muted",children:[t.jsx("span",{className:"font-medium text-secondary",children:k}),n?t.jsx("span",{title:T(e.created_at),children:n}):null]}),t.jsx("p",{className:"mt-0.5 whitespace-pre-wrap text-body leading-relaxed text-primary",children:e.body})]},e.id);const D=e.comment_type??"note",$=typeof e.severity=="string"?e.severity:"info";return t.jsxs("div",{className:"rounded-2xl border border-white/[0.10] bg-white/[0.02] px-4 py-3",children:[t.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[t.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[t.jsx("span",{className:"text-body font-semibold text-bright",children:k}),t.jsx("span",{className:"rounded-full border border-strong bg-white/[0.06] px-2 py-0.5 text-micro uppercase tracking-[0.08em] text-secondary",children:e.author_type}),t.jsx("span",{className:"rounded-full border border-strong px-2 py-0.5 text-micro uppercase tracking-[0.08em] text-secondary",children:D}),$!=="info"?t.jsx("span",{className:"rounded-full border border-strong px-2 py-0.5 text-micro uppercase tracking-[0.08em] text-secondary",children:$}):null]}),n?t.jsx("span",{className:"text-caption text-muted",title:T(e.created_at),children:n}):null]}),t.jsx("p",{className:"mt-2 whitespace-pre-wrap text-body leading-relaxed text-primary",children:e.body})]},e.id)})})]})}export{J as E};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as d,j as e}from"./Dj2k1r16.js";import{y as C,E as k,e as m,
|
|
1
|
+
import{r as d,j as e}from"./Dj2k1r16.js";import{y as C,E as k,e as m,v as S}from"./B1LENRC8.js";import"./DMKyYAtD.js";import"./eeHXe_OQ.js";import"./cX2e-TLi.js";import"./BjK42gtU.js";import"./BV0BcV1u.js";function $(i){const o=i.trim().toLowerCase();return o==="fulfilled"||o==="completed"?m.lime:o==="claimed"?m.teal:o==="blocked"?m.red:m.amber}function z({open:i,onClose:o,handoffs:x}){const[p,g]=d.useState(""),[c,h]=d.useState(new Set),[y,n]=d.useState(null);d.useEffect(()=>{i&&n(null)},[i]);const b=d.useMemo(()=>[...x].sort((t,s)=>Date.parse(s.updatedAt??"")-Date.parse(t.updatedAt??"")),[x]),r=d.useMemo(()=>{const t=p.trim().toLowerCase();return t?b.filter(s=>[s.title,s.summary,s.status,s.priority].filter(Boolean).join(" ").toLowerCase().includes(t)):b},[b,p]);d.useEffect(()=>{i&&h(t=>{const s=new Set(r.map(a=>a.id)),l=new Set;for(const a of t)s.has(a)&&l.add(a);return l})},[r,i]);const u=c.size,f=r.length>0&&r.every(t=>c.has(t.id)),w=()=>{h(t=>r.length===0?t:f?new Set:new Set(r.map(s=>s.id)))},j=t=>{h(s=>{const l=new Set(s);return l.has(t)?l.delete(t):l.add(t),l})},N=async()=>{const t=r.filter(a=>u===0||c.has(a.id)),s=[];s.push(`# Handoffs (${t.length})`),s.push("");for(const a of t)s.push(`- **${a.title}** — ${a.status}${a.priority?` (priority: ${a.priority})`:""}`),a.summary&&s.push(` - ${a.summary}`),s.push(` - Updated: ${a.updatedAt}`);const l=s.join(`
|
|
2
2
|
`);try{await navigator.clipboard.writeText(l),n("Copied markdown."),setTimeout(()=>n(null),1200)}catch{n("Copy failed (clipboard unavailable).")}},v=async()=>{const t=r.filter(s=>u===0||c.has(s.id));try{await navigator.clipboard.writeText(JSON.stringify(t,null,2)),n("Copied JSON."),setTimeout(()=>n(null),1200)}catch{n("Copy failed (clipboard unavailable).")}};return e.jsx(C,{open:i,onClose:o,maxWidth:"max-w-3xl",children:e.jsxs("div",{className:"flex h-full w-full flex-col",children:[e.jsxs("div",{className:"border-b border-subtle px-5 pt-5 pb-4",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("h3",{className:"inline-flex items-center gap-2 text-heading font-semibold text-white",children:[e.jsx(k,{type:"handoff",size:14}),e.jsx("span",{className:"truncate",children:"Handoffs"}),e.jsx("span",{className:"rounded-full border border-strong bg-white/[0.04] px-2 py-0.5 text-caption font-semibold text-primary",children:x.length})]}),e.jsx("p",{className:"mt-1 text-body leading-relaxed text-secondary",children:"Review and export current handoffs. Select items for a tighter export."})]}),e.jsx("button",{type:"button",onClick:o,className:"rounded-md border border-strong bg-white/[0.03] px-2.5 py-1.5 text-caption text-primary transition-colors hover:bg-white/[0.08]","aria-label":"Close handoffs modal",children:"Close"})]}),e.jsxs("div",{className:"mt-4 flex flex-col gap-2 sm:flex-row sm:items-center",children:[e.jsxs("div",{className:"flex-1",children:[e.jsx("label",{className:"sr-only",htmlFor:"bulk-handoffs-search",children:"Search handoffs"}),e.jsx("input",{id:"bulk-handoffs-search",value:p,onChange:t=>g(t.target.value),placeholder:"Search title, summary, status…","data-modal-autofocus":"true",className:"w-full rounded-lg border border-strong bg-black/25 px-3 py-2 text-body text-white placeholder:text-muted focus:outline-none focus:ring-1 focus:ring-[#BFFF00]/35"})]}),e.jsx("button",{type:"button",onClick:w,disabled:r.length===0,className:"rounded-lg border border-strong bg-white/[0.03] px-3 py-2 text-caption text-primary transition-colors hover:bg-white/[0.08] disabled:opacity-45",children:f?"Clear all":`Select all (${r.length})`})]}),y&&e.jsx("div",{className:"mt-3 rounded-xl border border-white/[0.08] bg-white/[0.02] px-3 py-2 text-body text-secondary",children:y})]}),e.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-5 py-4",children:r.length===0?e.jsx("div",{className:"rounded-xl border border-subtle bg-white/[0.02] p-4 text-body text-secondary",children:"No handoffs match this view."}):e.jsx("div",{className:"space-y-2",children:r.map(t=>{const s=c.has(t.id),l=$(t.status);return e.jsx("div",{className:"rounded-xl border border-white/[0.08] bg-white/[0.02] px-3 py-2.5",style:{borderColor:s?`${m.lime}40`:"rgba(255,255,255,0.08)"},children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("input",{type:"checkbox",checked:s,onChange:()=>j(t.id),className:"mt-0.5 h-4 w-4 rounded border-white/20 bg-black/40 text-lime focus:ring-lime/40","aria-label":`Select handoff ${t.title}`}),e.jsx("div",{className:"min-w-0 flex-1",children:e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"truncate text-body font-medium text-white",children:t.title}),t.summary&&e.jsx("p",{className:"mt-1 line-clamp-2 text-caption text-secondary",children:t.summary}),e.jsxs("p",{className:"mt-1 text-micro text-secondary",children:["Updated ",S(t.updatedAt)]})]}),e.jsx("span",{className:"shrink-0 rounded-full border px-2 py-0.5 text-micro font-semibold uppercase tracking-[0.08em]",style:{borderColor:`${l}30`,backgroundColor:`${l}14`,color:l},children:t.status})]})})]})},t.id)})})}),e.jsxs("div",{className:"flex flex-col gap-2 border-t border-subtle px-5 py-3 sm:flex-row sm:items-center sm:justify-between",children:[e.jsx("div",{className:"text-caption text-secondary",children:u>0?`${u} selected`:"No selection (exporting will include all filtered handoffs)"}),e.jsxs("div",{className:"flex flex-wrap items-center justify-end gap-2",children:[e.jsx("button",{type:"button",onClick:N,disabled:r.length===0,className:"rounded-md border border-strong bg-white/[0.03] px-3 py-1.5 text-caption text-primary transition-colors hover:bg-white/[0.08] disabled:opacity-45",children:"Copy markdown"}),e.jsx("button",{type:"button",onClick:v,disabled:r.length===0,className:"rounded-md border border-strong bg-white/[0.03] px-3 py-1.5 text-caption text-primary transition-colors hover:bg-white/[0.08] disabled:opacity-45",children:"Copy JSON"})]})]})]})})}export{z as BulkHandoffsModal};
|
|
Binary file
|
|
Binary file
|