agent-relay-server 0.113.0 → 0.114.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/openapi.json +1 -1
- package/package.json +2 -2
- package/public/assets/MessageBubble-CxqPFLGP.js +4 -0
- package/public/assets/{MessageBubble-CFujR6_L.js.map → MessageBubble-CxqPFLGP.js.map} +1 -1
- package/public/assets/PlanGraphPanel-gQ_lb6zP.js +2 -0
- package/public/assets/PlanGraphPanel-gQ_lb6zP.js.map +1 -0
- package/public/assets/{activity-C7-gIF9O.js → activity-Dw15HMdi.js} +2 -2
- package/public/assets/{activity-C7-gIF9O.js.map → activity-Dw15HMdi.js.map} +1 -1
- package/public/assets/{agent-profiles-BGPa2-BZ.js → agent-profiles-DNtXbS77.js} +2 -2
- package/public/assets/{agent-profiles-BGPa2-BZ.js.map → agent-profiles-DNtXbS77.js.map} +1 -1
- package/public/assets/agents-DOwnLE42.js +2 -0
- package/public/assets/{agents-CWCbBuq6.js.map → agents-DOwnLE42.js.map} +1 -1
- package/public/assets/{analytics-BhGpT0JR.js → analytics-CRwxJWuV.js} +3 -3
- package/public/assets/{analytics-BhGpT0JR.js.map → analytics-CRwxJWuV.js.map} +1 -1
- package/public/assets/{automation-DnpahVqs.js → automation-BQk8XQEj.js} +2 -2
- package/public/assets/{automation-DnpahVqs.js.map → automation-BQk8XQEj.js.map} +1 -1
- package/public/assets/{badge-kdQDWO6e.js → badge-oaCc6hVH.js} +2 -2
- package/public/assets/{badge-kdQDWO6e.js.map → badge-oaCc6hVH.js.map} +1 -1
- package/public/assets/branch-state-badge-JDaHO2fG.js +2 -0
- package/public/assets/{branch-state-badge-CcAq2Igv.js.map → branch-state-badge-JDaHO2fG.js.map} +1 -1
- package/public/assets/{button-BKFvNXa3.js → button-Cx0NiToX.js} +2 -2
- package/public/assets/{button-BKFvNXa3.js.map → button-Cx0NiToX.js.map} +1 -1
- package/public/assets/card-DkHdS68K.js +2 -0
- package/public/assets/{card-B0y1i_2D.js.map → card-DkHdS68K.js.map} +1 -1
- package/public/assets/{channels-DBP3-Gg0.js → channels-wQha9YA6.js} +2 -2
- package/public/assets/{channels-DBP3-Gg0.js.map → channels-wQha9YA6.js.map} +1 -1
- package/public/assets/chat-BTmgzO_g.js +2 -0
- package/public/assets/{chat-Bue-qNx_.js.map → chat-BTmgzO_g.js.map} +1 -1
- package/public/assets/{connectors-BJxbuxoU.js → connectors-BF-XDm0s.js} +2 -2
- package/public/assets/{connectors-BJxbuxoU.js.map → connectors-BF-XDm0s.js.map} +1 -1
- package/public/assets/copy-button-CsCBPQzj.js +2 -0
- package/public/assets/{copy-button-aLaiAkv2.js.map → copy-button-CsCBPQzj.js.map} +1 -1
- package/public/assets/{dist-BDYU37NZ.js → dist-1g1lCjVb.js} +2 -2
- package/public/assets/{dist-BDYU37NZ.js.map → dist-1g1lCjVb.js.map} +1 -1
- package/public/assets/{dist-DnyQI0qt.js → dist-AbnkNPcD.js} +2 -2
- package/public/assets/{dist-DnyQI0qt.js.map → dist-AbnkNPcD.js.map} +1 -1
- package/public/assets/{dist-EO8jbi2F.js → dist-BJnh7VkB.js} +2 -2
- package/public/assets/{dist-EO8jbi2F.js.map → dist-BJnh7VkB.js.map} +1 -1
- package/public/assets/dist-C7VlX6hz.js +2 -0
- package/public/assets/{dist-BnfqT2cl.js.map → dist-C7VlX6hz.js.map} +1 -1
- package/public/assets/{dist-DKoRwEZq.js → dist-DBti5--U.js} +2 -2
- package/public/assets/{dist-DKoRwEZq.js.map → dist-DBti5--U.js.map} +1 -1
- package/public/assets/{dist-DDh8a_SK.js → dist-DJpDTmGg.js} +2 -2
- package/public/assets/{dist-DDh8a_SK.js.map → dist-DJpDTmGg.js.map} +1 -1
- package/public/assets/{dist-D_qcpfbI.js → dist-DLOrqIs-.js} +2 -2
- package/public/assets/{dist-D_qcpfbI.js.map → dist-DLOrqIs-.js.map} +1 -1
- package/public/assets/dist-DjJMNrsj.js +2 -0
- package/public/assets/{dist-cyag2tir.js.map → dist-DjJMNrsj.js.map} +1 -1
- package/public/assets/{dist-avJPT3qF.js → dist-Pak9TL_I.js} +2 -2
- package/public/assets/{dist-avJPT3qF.js.map → dist-Pak9TL_I.js.map} +1 -1
- package/public/assets/dist-QY_EIkcd.js +2 -0
- package/public/assets/{dist-CF28Y5wI.js.map → dist-QY_EIkcd.js.map} +1 -1
- package/public/assets/{dist-DQPz52Zx.js → dist-REUlCFee.js} +2 -2
- package/public/assets/{dist-DQPz52Zx.js.map → dist-REUlCFee.js.map} +1 -1
- package/public/assets/{es2015-C9FSEGd7.js → es2015-GhJvD7eR.js} +2 -2
- package/public/assets/{es2015-C9FSEGd7.js.map → es2015-GhJvD7eR.js.map} +1 -1
- package/public/assets/formatted-body-impl-2ZWd80_S.js +3 -0
- package/public/assets/formatted-body-impl-2ZWd80_S.js.map +1 -0
- package/public/assets/index-D4mb_LKw.js +23 -0
- package/public/assets/index-D4mb_LKw.js.map +1 -0
- package/public/assets/index-DYwuv_Na.css +2 -0
- package/public/assets/{input-DfN6sUbX.js → input-CPfrBmej.js} +2 -2
- package/public/assets/{input-DfN6sUbX.js.map → input-CPfrBmej.js.map} +1 -1
- package/public/assets/{insights-CZ_JrJ8M.js → insights-DwS0svZy.js} +2 -2
- package/public/assets/{insights-CZ_JrJ8M.js.map → insights-DwS0svZy.js.map} +1 -1
- package/public/assets/{integrations-L75xhZd5.js → integrations-De1_UHQE.js} +2 -2
- package/public/assets/{integrations-L75xhZd5.js.map → integrations-De1_UHQE.js.map} +1 -1
- package/public/assets/{lib-DRRHEqRZ.js → lib-Bi-xeh6t.js} +2 -2
- package/public/assets/{lib-DRRHEqRZ.js.map → lib-Bi-xeh6t.js.map} +1 -1
- package/public/assets/{lucide-react-DmbfpRvJ.js → lucide-react-De5edQpl.js} +2 -2
- package/public/assets/{lucide-react-DmbfpRvJ.js.map → lucide-react-De5edQpl.js.map} +1 -1
- package/public/assets/{maintenance-Dpb87NaB.js → maintenance-B5qrcsDt.js} +2 -2
- package/public/assets/{maintenance-Dpb87NaB.js.map → maintenance-B5qrcsDt.js.map} +1 -1
- package/public/assets/{managed-agents-DyGbrKwJ.js → managed-agents-BGMWAUfG.js} +4 -4
- package/public/assets/{managed-agents-DyGbrKwJ.js.map → managed-agents-BGMWAUfG.js.map} +1 -1
- package/public/assets/{markdown-preview-impl-Bx4AcI8G.js → markdown-preview-impl-DsZ4Ek80.js} +2 -2
- package/public/assets/{markdown-preview-impl-Bx4AcI8G.js.map → markdown-preview-impl-DsZ4Ek80.js.map} +1 -1
- package/public/assets/memory-CouN7Y4r.js +2 -0
- package/public/assets/{memory-2l6G_m1p.js.map → memory-CouN7Y4r.js.map} +1 -1
- package/public/assets/messages-D9mYFxhU.js +2 -0
- package/public/assets/{messages-DC-QXNwz.js.map → messages-D9mYFxhU.js.map} +1 -1
- package/public/assets/{orchestrators-D_X3a0dm.js → orchestrators-B_SD_mhI.js} +2 -2
- package/public/assets/{orchestrators-D_X3a0dm.js.map → orchestrators-B_SD_mhI.js.map} +1 -1
- package/public/assets/overview-C8hVsCqz.js +2 -0
- package/public/assets/{overview-76JPEbGZ.js.map → overview-C8hVsCqz.js.map} +1 -1
- package/public/assets/{pairs-IeLXl-Z8.js → pairs-B6vWKXnX.js} +2 -2
- package/public/assets/{pairs-IeLXl-Z8.js.map → pairs-B6vWKXnX.js.map} +1 -1
- package/public/assets/{projects-D8ClXDUg.js → projects-C2gHOdEY.js} +2 -2
- package/public/assets/{projects-D8ClXDUg.js.map → projects-C2gHOdEY.js.map} +1 -1
- package/public/assets/prompt-settings-D4SXk0af.js +2 -0
- package/public/assets/{prompt-settings-BRduaHOj.js.map → prompt-settings-D4SXk0af.js.map} +1 -1
- package/public/assets/{react-dom-jQ4Vs380.js → react-dom-FNIdlE_z.js} +2 -2
- package/public/assets/{react-dom-jQ4Vs380.js.map → react-dom-FNIdlE_z.js.map} +1 -1
- package/public/assets/registry-CMPhWcx3.js +2 -0
- package/public/assets/{registry-CXyaPToV.js.map → registry-CMPhWcx3.js.map} +1 -1
- package/public/assets/{security-8n8VEsf5.js → security-C1fE4DVg.js} +2 -2
- package/public/assets/{security-8n8VEsf5.js.map → security-C1fE4DVg.js.map} +1 -1
- package/public/assets/{select-D-wcg_2U.js → select-D9j1MBVi.js} +2 -2
- package/public/assets/{select-D-wcg_2U.js.map → select-D9j1MBVi.js.map} +1 -1
- package/public/assets/settings-CduSwUr9.js +6 -0
- package/public/assets/{settings-BhnCGXgo.js.map → settings-CduSwUr9.js.map} +1 -1
- package/public/assets/{store-Du8k5mLJ.js → store-Bk6Lku_S.js} +5 -5
- package/public/assets/store-Bk6Lku_S.js.map +1 -0
- package/public/assets/{tasks-DEKQqgPB.js → tasks-Bi456f7f.js} +2 -2
- package/public/assets/{tasks-DEKQqgPB.js.map → tasks-Bi456f7f.js.map} +1 -1
- package/public/assets/{teams-DoRSWZRQ.js → teams-ZEXvcAz_.js} +2 -2
- package/public/assets/{teams-DoRSWZRQ.js.map → teams-ZEXvcAz_.js.map} +1 -1
- package/public/assets/{terminal-viewer-impl-C_o3BOpu.js → terminal-viewer-impl-tktfofs3.js} +3 -3
- package/public/assets/{terminal-viewer-impl-C_o3BOpu.js.map → terminal-viewer-impl-tktfofs3.js.map} +1 -1
- package/public/assets/{use-keyboard-viewport-Dw2CHZ50.js → use-keyboard-viewport-wzkGlTqU.js} +2 -2
- package/public/assets/{use-keyboard-viewport-Dw2CHZ50.js.map → use-keyboard-viewport-wzkGlTqU.js.map} +1 -1
- package/public/assets/user-avatar-_Dq16BWV.js +2 -0
- package/public/assets/{user-avatar-BQoM4jPT.js.map → user-avatar-_Dq16BWV.js.map} +1 -1
- package/public/assets/{work-queue-CWnf1_iE.js → work-queue-Bk8g7t9K.js} +2 -2
- package/public/assets/{work-queue-CWnf1_iE.js.map → work-queue-Bk8g7t9K.js.map} +1 -1
- package/public/assets/workspaces-D2bYW3zl.js +3 -0
- package/public/assets/workspaces-D2bYW3zl.js.map +1 -0
- package/public/index.html +21 -21
- package/runner/plugins/claude/.claude-plugin/plugin.json +1 -1
- package/src/db/provisioning-registry.ts +39 -15
- package/src/db/task-entity.ts +2 -0
- package/src/routes/tasks.ts +1 -0
- package/public/assets/MessageBubble-CFujR6_L.js +0 -4
- package/public/assets/PlanGraphPanel-BfxvqmNS.js +0 -2
- package/public/assets/PlanGraphPanel-BfxvqmNS.js.map +0 -1
- package/public/assets/agents-CWCbBuq6.js +0 -2
- package/public/assets/branch-state-badge-CcAq2Igv.js +0 -2
- package/public/assets/card-B0y1i_2D.js +0 -2
- package/public/assets/chat-Bue-qNx_.js +0 -2
- package/public/assets/copy-button-aLaiAkv2.js +0 -2
- package/public/assets/dist-BnfqT2cl.js +0 -2
- package/public/assets/dist-CF28Y5wI.js +0 -2
- package/public/assets/dist-cyag2tir.js +0 -2
- package/public/assets/formatted-body-impl-CTz6wch8.js +0 -3
- package/public/assets/formatted-body-impl-CTz6wch8.js.map +0 -1
- package/public/assets/index-BMAblAKQ.js +0 -23
- package/public/assets/index-BMAblAKQ.js.map +0 -1
- package/public/assets/index-D-Ntiy3M.css +0 -2
- package/public/assets/memory-2l6G_m1p.js +0 -2
- package/public/assets/messages-DC-QXNwz.js +0 -2
- package/public/assets/overview-76JPEbGZ.js +0 -2
- package/public/assets/prompt-settings-BRduaHOj.js +0 -2
- package/public/assets/registry-CXyaPToV.js +0 -2
- package/public/assets/settings-BhnCGXgo.js +0 -6
- package/public/assets/store-Du8k5mLJ.js.map +0 -1
- package/public/assets/user-avatar-BQoM4jPT.js +0 -2
- package/public/assets/workspaces-C_fFCoCu.js +0 -3
- package/public/assets/workspaces-C_fFCoCu.js.map +0 -1
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./chunk-CilyBKbf.js";import{$n as t,$t as n,Cn as r,Gn as i,H as a,Ht as o,Ln as s,Mn as c,Ot as l,R as u,S as d,Tn as f,V as p,Wn as m,Zn as h,_ as g,_n as _,a as v,bn as y,en as b,fn as ee,fr as x,h as S,kt as C,l as te,o as ne,pt as w,r as T,sn as E,tr as D,un as O,ut as re,wn as ie,x as k,xn as A,yn as j}from"./lucide-react-DmbfpRvJ.js";import{r as M,t as N,y as P}from"./store-Du8k5mLJ.js";import{o as F}from"./types-DSwhOFcJ.js";import{E as I,H as ae,N as L,P as R,R as oe,S as se,V as ce,_ as le,d as ue,f as de,k as z,q as B,rt as V,v as fe}from"./display-_5kFrHJh.js";import{k as H,n as pe,r as me,s as he,t as U}from"./index-BMAblAKQ.js";import{t as ge}from"./user-avatar-BQoM4jPT.js";var W=e(x(),1),_e={online:`came online`,offline:`went offline`,shutdown:`shut down`,restarted:`restarted`,"compaction-requested":`compaction requested`,compacting:`compaction started`,compacted:`context compacted`,"compaction-stalled":`compaction stalled — may need manual intervention`,"clear-requested":`clear requested`,"clearing-context":`clear started`,"context-cleared":`context cleared`,"clear-stalled":`context clear stalled — may need manual intervention`,"shutting-down":`shutting down`},ve=new Set(Object.keys(_e)),ye=3e3;function G(e){return new Date(e.occurredAt??e.createdAt).getTime()}function be(e){if(e.kind!==`session`)return null;let t=e.payload?.session;return!t||t.type!==`narration`&&t.type!==`reasoning`&&t.type!==`tool`?null:{id:e.id,kind:t.type,label:typeof t.label==`string`?t.label:void 0,text:e.body,ts:G(e),turnId:typeof t.turnId==`string`?t.turnId:void 0}}function xe(e){if(e.kind!==`session`)return null;let t=e.payload?.session;if(t?.type!==`notice`)return null;let n=typeof t.label==`string`&&t.label?t.label:`compacted`;return{id:`notice-${e.id}`,status:n,timestamp:G(e)}}function Se(e){if(e.kind!==`session`)return null;let t=e.payload?.session;if(t?.type!==`relay-injection`)return null;let n=t.relayInjection&&typeof t.relayInjection==`object`&&!Array.isArray(t.relayInjection)?t.relayInjection:{},r=typeof n.category==`string`&&[`memory`,`instructions`,`tools`,`comms`,`knowledge`,`context`].includes(n.category)?n.category:`context`,i=typeof n.timestamp==`number`&&Number.isFinite(n.timestamp)?n.timestamp:G(e),a=n.detail&&typeof n.detail==`object`&&!Array.isArray(n.detail)?n.detail:{};return{id:e.id,category:r,summary:typeof n.summary==`string`&&n.summary.trim()?n.summary:e.body,detail:a,agentId:typeof n.agentId==`string`&&n.agentId?n.agentId:e.from,timestamp:i}}function Ce(e){if(e.kind!==`session`)return null;let t=e.payload?.session;if(t?.type!==`prompt-resolution`)return null;let n=t.promptResolution&&typeof t.promptResolution==`object`&&!Array.isArray(t.promptResolution)?t.promptResolution:{},r=n.kind===`questions`||n.kind===`plan`||n.kind===`command`||n.kind===`tool`?n.kind:`tool`,i=typeof n.title==`string`&&n.title.trim()?n.title:`Prompt resolved`,a=typeof n.decisionLabel==`string`&&n.decisionLabel.trim()?n.decisionLabel:typeof t.label==`string`&&t.label.trim()?t.label:`Resolved`,o=n.answers&&typeof n.answers==`object`&&!Array.isArray(n.answers)?n.answers:{};return{id:e.id,title:i,kind:r,body:typeof n.promptBody==`string`?n.promptBody:typeof n.body==`string`?n.body:e.body,toolName:typeof n.toolName==`string`&&n.toolName.trim()?n.toolName:i,decisionLabel:a,questions:we(n.questions,o,a),timestamp:G(e)}}function we(e,t,n){let r=(Array.isArray(e)?e:[]).map((e,r)=>{let i=e&&typeof e==`object`&&!Array.isArray(e)?e:{},a=typeof i.question==`string`&&i.question.trim()?i.question.trim():typeof i.header==`string`&&i.header.trim()?i.header.trim():`Question ${r+1}`,o=t[a]??t[String(i.question??``)]??t[String(i.header??``)];return{question:a,answer:typeof o==`string`&&o.trim()?o.trim():n}});return r.length?r:Object.entries(t).map(([e,t])=>({question:e,answer:t}))}function Te(e,t){let n=e.trim();for(let e of t){let t=e.trim();if(t){if(n===t)break;n.startsWith(`${t}\n\n`)&&(n=n.slice(t.length+2).trimStart())}}return n.trim()||e.trim()}function Ee(e){return e.kind===`system`&&e.from===`system`}var De=new Set([`agent.ready`,`agent.exited`,`agent.spawn_failed`]);function K(e){let t=new Date(e);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`}function Oe(e){let t=e.filter(e=>ve.has(e.status)).slice().sort((e,t)=>e.timestamp-t.timestamp),n=[];for(let e of t)n.some(t=>t.id===e.id)||n.some(t=>t.status===e.status&&Math.abs(t.timestamp-e.timestamp)<=ye)||n.push(e);return n}function ke(e,t,n,r=[],i){let a=[];for(let e of r){let t=e.entries.reduce((e,t)=>Math.min(e,B(t.originalCreatedAt)),1/0),n=Number.isFinite(t)?t-1:e.importedAt;a.push({ts:n,entry:{type:`import-boundary`,history:e,timestamp:n}});for(let t of e.entries)a.push({ts:B(t.originalCreatedAt),entry:{type:`imported-message`,history:e,entry:t}})}if(n){let e=new Date(n).getTime();Number.isFinite(e)&&a.push({ts:e,entry:{type:`created`,timestamp:e}})}if(i?.spawnedBy){let e=n?new Date(n).getTime():0,t=Number.isFinite(e)?e:0;a.push({ts:t,entry:{type:`agent-action`,direction:`spawned-by`,agentId:i.spawnedBy.agentId,provider:i.spawnedBy.provider,status:`ready`,timestamp:t}})}let o=i?.spawnedBy?.agentId,s=null,c=1/0;for(let t of e){if(t.kind===`session`||Ee(t)||I(t)||!(t.from===`user`||o!==void 0&&t.from===o)||!z(t).trim())continue;let e=G(t);e<c&&(c=e,s=t.id)}let l=new Map,u=new Map,d=new Map;for(let t of e){if(t.kind!==`session`)continue;let e=t.payload?.session;if(e?.type===`narration`&&typeof e.turnId==`string`){let n=u.get(e.turnId)??[];n.push({id:t.id,body:t.body.trim()}),u.set(e.turnId,n)}else if(e?.type===`response`&&typeof e.turnId==`string`){let n=l.get(e.turnId)??[];n.push(t.body.trim()),l.set(e.turnId,n)}}let f=new Map;for(let[e,t]of l){let n=(u.get(e)??[]).map(e=>e.body);f.set(e,t.map(e=>Te(e,n)))}for(let t of e){if(t.kind!==`session`)continue;let e=t.payload?.session;if(e?.type!==`response`||typeof e.turnId!=`string`)continue;let n=Te(t.body,(u.get(e.turnId)??[]).map(e=>e.body));n&&n!==t.body&&d.set(t.id,n)}let p=new Set;for(let[e,t]of f){let n=u.get(e)??[];for(let e of t)for(let t=n.length-1;t>=0;t--){let r=n[t];if(!p.has(r.id)&&ae(e,r.body)){p.add(r.id);break}}}let m=new Map,h=[];for(let t of e){if(Ee(t)){let e=typeof t.payload?.kind==`string`?t.payload.kind:``;if(De.has(e)){let n=t.payload,r=typeof n.agentId==`string`?n.agentId:``,i=G(t);if(!r){a.push({ts:i,entry:{type:`notice`,msg:t}});continue}let o=e===`agent.ready`?`ready`:e===`agent.exited`?`exited`:`failed`,s=m.get(r);if(s)s.entry.status=o,typeof n.reason==`string`&&(s.entry.reason=n.reason),s.entry.timestamp=i,s.ts=i;else{let e={ts:i,entry:{type:`agent-action`,direction:`spawned-child`,agentId:r,provider:typeof n.provider==`string`?n.provider:void 0,status:o,reason:typeof n.reason==`string`?n.reason:void 0,timestamp:i}};m.set(r,e),a.push(e)}continue}a.push({ts:G(t),entry:{type:`notice`,msg:t}});continue}let e=xe(t);if(e){h.push(e);continue}let n=be(t);if(n){if(n.kind===`narration`&&p.has(n.id))continue;a.push({ts:n.ts,entry:{type:`activity`,steps:[n],timestamp:n.ts}});continue}let r=Se(t);if(r){a.push({ts:r.timestamp,entry:{type:`relay-injection`,event:r}});continue}let i=Ce(t);if(i){a.push({ts:i.timestamp,entry:{type:`prompt-resolution`,event:i}});continue}if(t.kind===`session`){let e=t.payload?.session;if(e?.type===`response`&&typeof e.turnId==`string`){let e=d.get(t.id);if(e&&e!==t.body){a.push({ts:G(t),entry:{type:`message`,msg:{...t,body:e}}});continue}}}let o=t.id===s?`initial-prompt`:`message`;a.push({ts:G(t),entry:{type:o,msg:t}})}for(let e of Oe([...t,...h]))a.push({ts:e.timestamp,entry:{type:`status`,event:e}});let g={created:0,date:1,"import-boundary":2,"imported-message":3,"initial-prompt":4,message:4,activity:4,notice:4,"agent-action":4,"relay-injection":4,"prompt-resolution":4,status:5};a.sort((e,t)=>{let n=e.ts-t.ts;return Math.abs(n)<3e3&&g[e.entry.type]-g[t.entry.type]||n});let _=[],v=``;for(let{ts:e,entry:t}of a){if(t.type===`created`){_.push(t);continue}let n=K(e);if(n!==v&&(_.push({type:`date`,date:n,timestamp:e}),v=n),t.type===`activity`){let e=_[_.length-1];if(e&&e.type===`activity`&&Me(e,t)){e.steps.push(...t.steps);continue}}_.push(t)}return _}function Ae(e){return e.type===`message`?`msg-${e.msg.id}`:e.type===`initial-prompt`?`initprompt-${e.msg.id}`:e.type===`notice`?`notice-${e.msg.id}`:e.type===`relay-injection`?`relay-injection-${e.event.id}`:e.type===`prompt-resolution`?`prompt-resolution-${e.event.id}`:e.type===`agent-action`?`agent-action-${e.direction}-${e.agentId}`:e.type===`activity`?`act-${e.steps[0]?.id??e.timestamp}`:e.type===`import-boundary`?`import-${e.history.id}`:e.type===`imported-message`?`import-msg-${e.history.id}-${e.entry.originalMessageId}-${e.entry.position}`:e.type===`status`?`status-${e.event.id}`:e.type===`date`?`date-${e.date}`:`created-${e.timestamp}`}function je(e){return e.type===`message`||e.type===`initial-prompt`||e.type===`notice`?(e.msg.subject?`${e.msg.subject} `:``)+z(e.msg):e.type===`imported-message`?z(e.entry.message):e.type===`activity`?e.steps.map(e=>[e.label,e.text].filter(Boolean).join(` `)).join(`
|
|
2
|
-
`):e.type===`relay-injection`?`${e.event.category} ${e.event.summary}\n${JSON.stringify(e.event.detail)}`:e.type===`prompt-resolution`?[e.event.title,e.event.decisionLabel,e.event.body,...e.event.questions.map(e=>`${e.question} ${e.answer}`)].filter(Boolean).join(`
|
|
3
|
-
`):``}function Me(e,t){let n=e.steps[e.steps.length-1]?.turnId,r=t.steps[0]?.turnId;return n&&r?n===r:!n&&!r}function Ne(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/1024/1024).toFixed(1)} MB`}function Pe(e,t){if(t.startsWith(`/`))return t;let n=`${e.replace(/\/+$/,``)}/${t}`.split(`/`),r=[];for(let e of n)!e||e===`.`||(e===`..`?r.pop():r.push(e));return`/`+r.join(`/`)}function Fe(e){let t=e.replace(/\/+$/,``),n=t.lastIndexOf(`/`);return n>0?t.slice(0,n):`/`}function Ie(e,t){return e.filter(e=>e.status===`online`&&oe(t,e.baseDir)).sort((e,t)=>L(t.baseDir).length-L(e.baseDir).length)[0]||e.find(e=>e.status===`online`)}function Le(){return typeof window<`u`&&window.matchMedia(`(min-width: 1280px)`).matches}function Re(){return typeof window<`u`&&!!window.getSelection()?.toString()}function ze(e){let t=e.payload?.attachments;return Array.isArray(t)?t.filter(e=>!!(e&&typeof e==`object`&&typeof e.artifactId==`string`)):[]}var Be=[`👍`,`❤️`,`✅`,`👀`];function Ve(e){let t=new Map;for(let n of e.reactions||[]){let e=R(n.emoji),r=t.get(e)??{emoji:e,count:0,mine:!1,actors:[]};r.count+=1,r.mine=r.mine||n.actorId===`user`,r.actors.push(n.actorId),t.set(e,r)}return[...t.values()].sort((e,t)=>t.count-e.count||e.emoji.localeCompare(t.emoji))}function q(e){return I(e)}function He(e,t){let n=e.readBy||[],r=e.resolvedToAgent||t||e.to,i=r?n.includes(r):!1,a=n.some(e=>e!==V);if(i||a){let e=i?r:n.find(e=>e!==V);return{label:`read`,title:e?`Read by ${e}`:`Read by agent`,tone:`ok`,icon:f}}if(e.deliveryStatus===`delivered`)return{label:`delivered`,title:`Delivered to agent inbox`,tone:`ok`,icon:f};if(e.deliveryStatus===`queued`)return{label:`queued`,title:`Queued until the target agent is available`,tone:`warn`,icon:E};if(e.deliveryStatus===`failed`||e.deliveryStatus===`dead`){let t=e.deliveryPoisonReason||e.deliveryLastError||e.deliveryStatus;return{label:e.deliveryStatus,title:t,tone:`danger`,icon:j}}return{label:`sent`,title:`Accepted by Relay`,tone:`muted`,icon:ie}}function Ue(e){let t=B(e.createdAt);return(e.reactions||[]).reduce((e,t)=>Math.max(e,B(t.updatedAt||t.createdAt)),t)}function We(e){return e?e.messages.reduce((e,t)=>Math.max(e,Ue(t)),0):0}function Ge(e,t,n){return(e-t)*n}function Ke(e){if(!e)return 0;let t=0;for(let n of e.messages)se(n)&&(t=Math.max(t,B(n.createdAt)));return t}function J(e){return new Date(e).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})}function qe(e){for(let t of e)t.previewUrl&&URL.revokeObjectURL(t.previewUrl)}function Je(e,t,n,r){if(e?.teamId)return{teamId:e.teamId};let i=[...t];n&&!i.some(e=>e.id===n.id)&&i.push(n);let a=i.filter(e=>e.threadId).reverse(),o=a.find(e=>!!r[M(e.threadId,e.channel)])??a[0];return o?.threadId?{threadId:o.threadId,...o.channel?{channel:o.channel}:{}}:null}var Y=t(),Ye={online:`text-emerald-400`,offline:`text-zinc-400`,shutdown:`text-zinc-400`,restarted:`text-blue-400`,"compaction-requested":`text-zinc-400`,compacting:`text-amber-400`,compacted:`text-amber-400`,"compaction-stalled":`text-red-400`,"clear-requested":`text-zinc-400`,"clearing-context":`text-amber-400`,"context-cleared":`text-amber-400`,"clear-stalled":`text-red-400`,"shutting-down":`text-zinc-400`};function Xe(e){let t=new Date,[n,r,i]=e.split(`-`).map(Number),a=new Date(n,r-1,i);if(e===K(t.getTime()))return`Today`;let o=new Date(t);return o.setDate(o.getDate()-1),e===K(o.getTime())?`Yesterday`:a.toLocaleDateString(void 0,{weekday:`short`,month:`short`,day:`numeric`,year:a.getFullYear()===t.getFullYear()?void 0:`numeric`})}function Ze({event:e}){return(0,Y.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-2 my-1`,children:[(0,Y.jsx)(`div`,{className:`h-px flex-1 bg-border`}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs text-muted-foreground`,children:[(0,Y.jsx)(O,{className:h(`w-2 h-2 fill-current`,Ye[e.status]||`text-zinc-400`)}),(0,Y.jsx)(`span`,{children:_e[e.status]||e.status}),(0,Y.jsx)(`span`,{className:`text-muted-foreground/60`,children:J(e.timestamp)})]}),(0,Y.jsx)(`div`,{className:`h-px flex-1 bg-border`})]})}var Qe={"branch.landed":l,"context.warning":S,"agent.context_threshold":S,"agent.resume_budget_exhausted":S,"agent.rate_limit_resume":a},$e={"branch.landed":`branch landed`,"context.warning":`context warning`,"agent.context_threshold":`context threshold reached`};function et(e){return e&&(e.includes(`.`)?e.slice(e.indexOf(`.`)+1):e).replace(/[._-]+/g,` `).trim()||`system signal`}function X({agentId:e,fallbackLabel:t,className:n,noIcon:r}){let i=N(t=>t.agentsById[e])||null,a=N(e=>e.openInboxThread),o=N(e=>e.switchView),s=i?ue(i):t||e;return(0,Y.jsxs)(`button`,{type:`button`,className:h(`inline-flex max-w-full items-center gap-1 rounded px-1 text-muted-foreground transition-colors hover:bg-muted/50 hover:text-foreground`,n),onClick:t=>{t.stopPropagation(),a(e),o(`chat`)},title:`Open chat for ${s}`,children:[!r&&(0,Y.jsx)(H,{agent:i,className:`w-4 h-4 text-[10px]`}),(0,Y.jsx)(`span`,{className:`max-w-[160px] truncate`,children:s})]})}function tt({msg:e}){let t=e.payload??{},n=rt(e),r=typeof t.sha==`string`?t.sha:``,i=r?r.slice(0,7):``,a=typeof t.author==`string`?t.author:``,o=typeof t.branch==`string`?t.branch:``,s=typeof t.base==`string`?t.base:``,c=t.pushed;return(0,Y.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-2 my-1`,children:[(0,Y.jsx)(`div`,{className:`h-px flex-1 bg-border`}),(0,Y.jsxs)(`div`,{className:`flex max-w-full flex-wrap items-center justify-center gap-x-1.5 gap-y-0.5 rounded-full border border-emerald-600/35 bg-emerald-500/10 px-2.5 py-1 text-xs text-emerald-700 dark:border-emerald-500/25 dark:text-emerald-300/90`,children:[(0,Y.jsx)(l,{className:`h-3 w-3 shrink-0 text-emerald-600 dark:text-emerald-400`}),(0,Y.jsx)(`span`,{className:`text-emerald-700 dark:text-emerald-300`,children:`branch landed`}),o&&s&&(0,Y.jsxs)(`span`,{className:`font-mono text-emerald-700/80 dark:text-emerald-200/70`,title:`${o} → ${s}`,children:[o,(0,Y.jsx)(`span`,{className:`opacity-50`,children:` → `}),s]}),i&&(0,Y.jsx)(`span`,{className:`rounded bg-emerald-500/15 px-1 font-mono text-emerald-800 dark:text-emerald-200`,title:r,children:i}),a&&(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-emerald-700/80 dark:text-emerald-300/80`,children:[(0,Y.jsx)(`span`,{className:`opacity-70`,children:`by`}),(0,Y.jsx)(X,{agentId:a,className:`text-emerald-700 hover:text-emerald-900 dark:text-emerald-300/90 dark:hover:text-emerald-100`})]}),c===!1&&(0,Y.jsx)(`span`,{className:`text-amber-600 dark:text-amber-300/80`,title:`Local-only land — not pushed to origin`,children:`· local only`}),n&&(0,Y.jsxs)(`span`,{className:`max-w-[220px] truncate text-emerald-700/70 dark:text-emerald-300/70`,title:n,children:[`· because `,n]}),(0,Y.jsx)(`span`,{className:`text-emerald-700/60 dark:text-emerald-300/50`,children:J(e.occurredAt??e.createdAt)})]}),(0,Y.jsx)(`div`,{className:`h-px flex-1 bg-border`})]})}function nt({msg:e}){let t=typeof e.payload?.kind==`string`?e.payload.kind:``;if(t===`branch.landed`)return(0,Y.jsx)(tt,{msg:e});let n=Qe[t]??u,r=$e[t]??et(t),i=rt(e);return(0,Y.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-2 my-1`,children:[(0,Y.jsx)(`div`,{className:`h-px flex-1 bg-border`}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5 rounded-full border border-border bg-muted/30 px-2.5 py-1 text-xs text-muted-foreground`,children:[(0,Y.jsx)(n,{className:`h-3 w-3`}),(0,Y.jsx)(`span`,{children:r}),i&&(0,Y.jsxs)(`span`,{className:`max-w-[220px] truncate text-muted-foreground/80`,title:i,children:[`· because `,i]}),(0,Y.jsx)(`span`,{className:`text-muted-foreground/60`,children:J(e.occurredAt??e.createdAt)})]}),(0,Y.jsx)(`div`,{className:`h-px flex-1 bg-border`})]})}function rt(e){let t=e.payload?.routing;if(!t||typeof t!=`object`||Array.isArray(t))return``;let n=t.reason;return typeof n==`string`?n:``}var it={"spawned-child":{ready:`spawned`,exited:`spawned · exited`,failed:`spawn failed`},"spawned-by":{ready:`spawned by`,exited:`spawned by`,failed:`spawned by`}},at={"spawned-child-ready":p,"spawned-child-exited":re,"spawned-child-failed":j,"spawned-by-ready":i,"spawned-by-exited":i,"spawned-by-failed":i},ot={"spawned-child-ready":`text-emerald-400`,"spawned-child-exited":`text-zinc-400`,"spawned-child-failed":`text-red-400`,"spawned-by-ready":`text-blue-400`,"spawned-by-exited":`text-blue-400`,"spawned-by-failed":`text-blue-400`};function st({entry:e}){let t=`${e.direction}-${e.status}`,n=it[e.direction]?.[e.status]??e.direction,r=at[t]??u,i=ot[t]??`text-muted-foreground`,a=e.status===`failed`;return(0,Y.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-2 my-1`,children:[(0,Y.jsx)(`div`,{className:`h-px flex-1 bg-border`}),(0,Y.jsxs)(`div`,{className:h(`flex items-center gap-1.5 rounded-full border bg-muted/30 px-2.5 py-1 text-xs`,a?`border-red-500/30`:`border-border`),children:[(0,Y.jsx)(r,{className:h(`h-3 w-3 shrink-0`,i)}),(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:n}),(0,Y.jsx)(X,{agentId:e.agentId}),e.reason&&a&&(0,Y.jsxs)(`span`,{className:`text-red-400/80 max-w-[120px] truncate`,title:e.reason,children:[`— `,e.reason]}),(0,Y.jsx)(`span`,{className:`text-muted-foreground/60 shrink-0`,children:J(e.timestamp)})]}),(0,Y.jsx)(`div`,{className:`h-px flex-1 bg-border`})]})}var ct={memory:c,instructions:o,tools:ne,comms:u,knowledge:s,context:b},lt={memory:`border-emerald-500/25 bg-emerald-500/10 text-emerald-300`,instructions:`border-sky-500/25 bg-sky-500/10 text-sky-300`,tools:`border-amber-500/25 bg-amber-500/10 text-amber-300`,comms:`border-violet-500/25 bg-violet-500/10 text-violet-300`,knowledge:`border-cyan-500/25 bg-cyan-500/10 text-cyan-300`,context:`border-zinc-500/25 bg-zinc-500/10 text-zinc-300`};function ut(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}function dt({entry:e}){let[t,n]=(0,W.useState)(!1),r=e.event,i=ct[r.category]??k;return(0,Y.jsx)(`div`,{className:`flex justify-center py-2 my-1`,children:(0,Y.jsxs)(`div`,{className:h(`w-full max-w-[85%] md:max-w-[75%] rounded-lg border px-2.5 py-1.5 text-xs shadow-sm`,lt[r.category]??lt.context),children:[(0,Y.jsxs)(`button`,{type:`button`,className:`flex w-full min-w-0 items-center gap-1.5 text-left`,onClick:()=>n(e=>!e),children:[(0,Y.jsx)(i,{className:`h-3.5 w-3.5 shrink-0`}),(0,Y.jsx)(`span`,{className:`shrink-0 font-medium`,children:r.category}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-foreground/80`,children:r.summary}),(0,Y.jsx)(`span`,{className:`shrink-0 text-muted-foreground/60`,children:J(r.timestamp)}),(0,Y.jsx)(A,{className:h(`h-3.5 w-3.5 shrink-0 transition-transform`,t&&`rotate-90`)})]}),t&&(0,Y.jsx)(`pre`,{className:`mt-2 max-h-72 overflow-auto rounded-md border border-border/60 bg-background/75 p-2 font-mono text-[11px] leading-relaxed text-muted-foreground whitespace-pre-wrap break-words`,children:ut(r.detail)})]})})}function ft({blockedLabel:e,onInterrupt:t}){return e?(0,Y.jsx)(`div`,{className:`flex justify-start mb-3 animate-in fade-in slide-in-from-bottom-1 duration-150`,children:(0,Y.jsxs)(`div`,{className:`flex h-9 items-center gap-2 rounded-2xl rounded-bl-sm bg-card ring-1 ring-red-500/30 px-4`,children:[(0,Y.jsx)(j,{className:`w-3.5 h-3.5 text-red-400`}),(0,Y.jsxs)(`span`,{className:`text-xs text-red-300`,children:[`blocked: `,e]})]})}):(0,Y.jsx)(`div`,{className:`flex justify-start mb-3 animate-in fade-in slide-in-from-bottom-1 duration-150`,children:(0,Y.jsxs)(`div`,{className:`flex h-9 items-center gap-2 rounded-2xl rounded-bl-sm bg-card ring-1 ring-foreground/10 px-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,Y.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-yellow-400 animate-[pulse_1.4s_ease-in-out_infinite]`}),(0,Y.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-yellow-400 animate-[pulse_1.4s_ease-in-out_0.2s_infinite]`}),(0,Y.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-yellow-400 animate-[pulse_1.4s_ease-in-out_0.4s_infinite]`})]}),(0,Y.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`working`}),t&&(0,Y.jsxs)(`button`,{onClick:t,title:`Interrupt`,className:`ml-1 flex items-center gap-1 rounded-full px-1.5 py-0.5 text-xs text-muted-foreground hover:text-red-300 hover:bg-red-500/10 transition-colors`,children:[(0,Y.jsx)(ee,{className:`w-3.5 h-3.5`}),`Stop`]})]})})}var Z=`agent-relay:chat-hide-tools`,Q=(()=>{let e=new Set,t=(()=>{try{return window.localStorage.getItem(Z)===`on`}catch{return!1}})(),n=()=>e.forEach(e=>e());return typeof window<`u`&&window.addEventListener(`storage`,e=>{e.key===Z&&(t=e.newValue===`on`,n())}),{subscribe(t){return e.add(t),()=>e.delete(t)},get:()=>t,toggle(){t=!t;try{window.localStorage.setItem(Z,t?`on`:`off`)}catch{}n()}}})();function pt(){return[(0,W.useSyncExternalStore)(Q.subscribe,Q.get,()=>!1),Q.toggle]}function mt({steps:e,showReasoning:t,issueRepo:n}){let[r,i]=pt(),a=t?e:e.filter(e=>e.kind!==`reasoning`);if(!a.length)return null;let o=a.filter(e=>e.kind===`tool`).length;return(0,Y.jsx)(`div`,{className:`flex justify-start mb-2`,children:(0,Y.jsxs)(`div`,{className:`max-w-[85%] md:max-w-[75%] min-w-0 space-y-1.5`,children:[a.map(e=>e.kind===`narration`?(0,Y.jsx)(U,{text:e.text,issueRepo:n,className:`text-sm leading-relaxed break-words text-foreground/90 min-w-0`},e.id):e.kind===`reasoning`?(0,Y.jsxs)(`div`,{className:`flex items-start gap-1.5 text-xs leading-relaxed text-muted-foreground/80`,children:[(0,Y.jsx)(c,{className:`w-3.5 h-3.5 mt-0.5 shrink-0 opacity-70`}),(0,Y.jsx)(U,{text:e.text,issueRepo:n,className:`italic break-words min-w-0`})]},e.id):r?null:(0,Y.jsxs)(`div`,{className:`flex items-start gap-1.5 text-xs leading-relaxed text-muted-foreground`,children:[(0,Y.jsx)(g,{className:`w-3 h-3 mt-0.5 shrink-0 opacity-70`}),(0,Y.jsxs)(`span`,{className:`min-w-0 break-words`,children:[(0,Y.jsx)(`span`,{className:`font-medium`,children:e.label||`tool`}),e.text&&e.text.trim()&&e.text.trim()!==(e.label??``).trim()?(0,Y.jsxs)(`span`,{className:`opacity-70`,children:[` — `,e.text]}):null]})]},e.id)),o>0&&(0,Y.jsxs)(`button`,{onClick:i,className:`flex items-center gap-1 text-[11px] text-muted-foreground/50 hover:text-muted-foreground transition-colors text-left`,children:[(0,Y.jsx)(A,{className:h(`w-3 h-3 shrink-0 transition-transform`,!r&&`rotate-90`)}),(0,Y.jsx)(`span`,{children:r?`show ${o} tool step${o===1?``:`s`}`:`hide tool steps`})]})]})})}function ht({entry:e}){let{event:t}=e,n=t.kind===`questions`,r=n?t.title:t.kind===`plan`?`Plan prompt`:`${t.toolName} permission`;return(0,Y.jsx)(`div`,{className:`flex justify-center py-1.5`,children:(0,Y.jsxs)(`div`,{className:`w-full max-w-2xl rounded-md border border-border bg-muted/20 px-3 py-2 text-sm`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,Y.jsx)(_,{className:`h-3.5 w-3.5 text-emerald-500`}),(0,Y.jsx)(`span`,{className:`font-medium text-foreground`,children:r}),(0,Y.jsx)(`span`,{children:t.decisionLabel}),(0,Y.jsx)(`span`,{className:`ml-auto shrink-0 text-muted-foreground/60`,children:J(t.timestamp)})]}),n&&t.questions.length>0?(0,Y.jsx)(`div`,{className:`mt-2 space-y-1.5`,children:t.questions.map((e,t)=>(0,Y.jsxs)(`div`,{className:`grid gap-0.5`,children:[(0,Y.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:e.question}),(0,Y.jsx)(`div`,{className:`text-sm text-foreground`,children:e.answer})]},`${e.question}-${t}`))}):t.body.trim()?(0,Y.jsx)(`div`,{className:`mt-2 max-h-48 overflow-auto rounded border border-border/70 bg-background/40 px-2 py-1.5 text-sm`,children:(0,Y.jsx)(U,{text:t.body})}):null]})})}function gt({date:e}){return(0,Y.jsxs)(`div`,{className:`flex items-center justify-center gap-3 py-3 my-1`,children:[(0,Y.jsx)(`div`,{className:`h-px flex-1 bg-border`}),(0,Y.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground`,children:Xe(e)}),(0,Y.jsx)(`div`,{className:`h-px flex-1 bg-border`})]})}function _t({timestamp:e}){let t=new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,year:`numeric`,hour:`2-digit`,minute:`2-digit`});return(0,Y.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-2 my-1`,children:[(0,Y.jsx)(`div`,{className:`h-px flex-1 bg-border`}),(0,Y.jsxs)(`span`,{className:`text-xs text-muted-foreground/60`,children:[`created `,t]}),(0,Y.jsx)(`div`,{className:`h-px flex-1 bg-border`})]})}function vt({history:e}){let t=e.sourceAgentLabel||e.sourcePeerId,n=e.entries.length;return(0,Y.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-2 my-1`,children:[(0,Y.jsx)(`div`,{className:`h-px flex-1 bg-border`}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5 rounded-full border border-dashed border-border bg-muted/30 px-2 py-1 text-[11px] text-muted-foreground`,children:[(0,Y.jsx)(C,{className:`h-3 w-3`}),(0,Y.jsxs)(`span`,{children:[`forked history from `,t]}),(0,Y.jsxs)(`span`,{className:`text-muted-foreground/60`,children:[n,` `,n===1?`entry`:`entries`]})]}),(0,Y.jsx)(`div`,{className:`h-px flex-1 bg-border`})]})}function yt({entry:e,sourceLabel:t,issueRepo:n}){let r=e.message,i=z(r),a=e.originalFrom===V;return(0,Y.jsx)(`div`,{className:h(`flex mb-3 opacity-80`,a?`justify-end`:`justify-start`),children:(0,Y.jsx)(`div`,{className:`max-w-[85%] md:max-w-[75%]`,children:(0,Y.jsxs)(`div`,{className:h(`rounded-2xl border border-dashed px-3.5 py-2 text-sm select-text`,a?`border-primary/25 bg-primary/10 text-foreground rounded-br-sm`:`border-border bg-card/70 rounded-bl-sm`),children:[(0,Y.jsxs)(`div`,{className:h(`mb-1 text-[10px] uppercase tracking-normal`,a?`text-primary/70`:`text-muted-foreground`),children:[`forked history · `,a?`you`:t||e.originalFrom]}),(0,Y.jsx)(U,{text:i,rawBody:r.body,issueRepo:n,className:`leading-relaxed`}),(0,Y.jsxs)(`p`,{className:h(`mt-1 flex items-center justify-end gap-1.5 text-xs`,a?`text-primary/60`:`text-muted-foreground`),children:[(0,Y.jsxs)(`span`,{className:`opacity-40`,children:[`#`,e.originalMessageId]}),(0,Y.jsx)(`span`,{children:J(e.originalCreatedAt)})]})]})})})}function $({msg:e,issueRepo:t}){let n=z(e),r=J(e.occurredAt??e.createdAt);return(0,Y.jsx)(`div`,{"data-msg-id":e.id,className:`mb-3`,children:(0,Y.jsxs)(`div`,{className:`rounded-xl border border-primary/30 bg-primary/[0.06] px-3.5 py-2.5 shadow-sm`,children:[(0,Y.jsxs)(`div`,{className:`mb-1.5 flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wide text-primary/80`,children:[(0,Y.jsx)(k,{className:`h-3.5 w-3.5`}),(0,Y.jsx)(`span`,{children:`Initial prompt`}),(0,Y.jsx)(`span`,{className:`ml-auto text-[10px] font-normal normal-case text-muted-foreground/60`,children:r})]}),(0,Y.jsx)(U,{text:n,rawBody:e.body,issueRepo:t,className:`text-sm leading-relaxed text-foreground`})]})})}function bt({scrollEl:e,timeline:t}){let[n,i]=(0,W.useState)(!0),[a,o]=(0,W.useState)(null),[s,c]=(0,W.useState)(null),[l,u]=(0,W.useState)(!1),d=(0,W.useMemo)(()=>{for(let e=t.length-1;e>=0;e--){let n=t[e];if(!(!n||n.type!==`message`&&n.type!==`initial-prompt`)&&n.msg.from===`user`)return{id:n.msg.id,body:z(n.msg)}}return null},[t]);if((0,W.useEffect)(()=>{if(!d||!e){i(!0);return}let t=null,n=null,r=()=>{let r=e.querySelector(`[data-msg-id="${d.id}"]`);if(!r){t?.disconnect(),t=null,n=null,i(!1);return}let a=r.getBoundingClientRect(),o=e.getBoundingClientRect();u(a.top<o.top),r!==n&&(t?.disconnect(),n=r,t=new IntersectionObserver(([e])=>{e&&i(e.isIntersecting)},{root:e,threshold:0}),t.observe(r))};return r(),e.addEventListener(`scroll`,r,{passive:!0}),()=>{t?.disconnect(),e.removeEventListener(`scroll`,r)}},[d?.id,e]),n||!d||!d.body.trim())return null;let f=a?.id===d.id?a.value:!1,p=s?.id===d.id?s.value:!1;function m(){!e||!d||e.querySelector(`[data-msg-id="${d.id}"]`)?.scrollIntoView({behavior:`smooth`,block:`center`})}let g=l?`↑`:`↓`;return p?(0,Y.jsx)(`div`,{className:`flex shrink-0 bg-card/45 border-b border-border`,children:(0,Y.jsxs)(`button`,{type:`button`,className:`w-full flex items-center justify-center gap-1.5 py-1 text-[11px] text-primary/60 hover:text-primary transition-colors`,onClick:()=>c({id:d.id,value:!1}),children:[(0,Y.jsx)(`span`,{children:`Your prompt`}),(0,Y.jsx)(r,{className:`w-3 h-3`})]})}):(0,Y.jsxs)(`section`,{className:`flex shrink-0 flex-col border-b border-border bg-card/45 px-3 py-2`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 text-[11px] text-muted-foreground mb-0.5`,children:[(0,Y.jsx)(`span`,{className:`font-medium text-primary/70`,children:`Your prompt`}),(0,Y.jsxs)(`button`,{type:`button`,className:`ml-auto hover:text-foreground transition-colors`,onClick:m,children:[g,` scroll to original`]}),(0,Y.jsx)(`button`,{type:`button`,className:`hover:text-foreground transition-colors`,onClick:()=>c({id:d.id,value:!0}),title:`Minimize`,children:(0,Y.jsx)(y,{className:`w-3 h-3`})})]}),(0,Y.jsx)(`p`,{className:h(`text-sm text-foreground leading-snug cursor-pointer`,!f&&`line-clamp-2`),onClick:()=>o({id:d.id,value:!f}),children:d.body})]})}function xt(){return(0,W.useSyncExternalStore)(e=>P.subscribe(e),()=>P.getPlayingKey(),()=>null)}function St({msg:e,peer:t}){return(0,Y.jsx)($,{msg:e,issueRepo:N(e=>e.agentsById[t]?.issueRepo)})}function Ct({agent:e,onClick:t}){let n=!!(t&&e);return(0,Y.jsx)(`button`,{type:`button`,title:e?e.label||e.name||e.id:void 0,onClick:t,disabled:!n,className:h(`shrink-0 self-end transition-opacity`,n?`cursor-pointer hover:opacity-80`:`cursor-default opacity-60`),children:(0,Y.jsx)(H,{agent:e})})}function wt({agentId:e,onOpen:t}){let n=N(t=>t.agentsById[e]??null);return(0,Y.jsx)(Ct,{agent:n,onClick:n?()=>t(n):void 0})}function Tt({attachment:e,outbound:t}){let r=e.kind===`image`,i=e.title||e.artifactId,[a,s]=(0,W.useState)(null),[c,l]=(0,W.useState)(null),[u,d]=(0,W.useState)(!1),[f,p]=(0,W.useState)(!1);(0,W.useEffect)(()=>{let t=!1,n=null;async function r(){d(!0),l(null),s(null);try{let r=await D(`/artifacts/${encodeURIComponent(e.artifactId)}/content`);if(t)return;n=URL.createObjectURL(r),s(n)}catch(e){t||l(e.message)}finally{t||d(!1)}}return r(),()=>{t=!0,n&&URL.revokeObjectURL(n)}},[e.artifactId]);function m(){if(!a)return;let e=document.createElement(`a`);e.href=a,e.download=i,document.body.appendChild(e),e.click(),e.remove()}return r?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`button`,{type:`button`,onClick:()=>a&&p(!0),disabled:!a,className:`group/img mt-2 block overflow-hidden rounded-md border border-foreground/10 bg-black/10 text-left disabled:cursor-default relative`,children:a?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`img`,{src:a,alt:i,loading:`lazy`,className:`block max-h-72 max-w-full object-contain`}),(0,Y.jsx)(`span`,{className:`absolute inset-0 flex items-center justify-center bg-black/0 group-hover/img:bg-black/30 transition-colors`,children:(0,Y.jsx)(T,{className:`w-6 h-6 text-white opacity-0 group-hover/img:opacity-100 transition-opacity drop-shadow-md`})})]}):(0,Y.jsxs)(`span`,{className:h(`flex min-h-20 items-center gap-2 px-3 py-2 text-xs`,c?`text-red-400`:`text-muted-foreground`),children:[u?(0,Y.jsx)(w,{className:`h-4 w-4 animate-spin`}):(0,Y.jsx)(j,{className:`h-4 w-4`}),c||`Loading image`]})}),a&&(0,Y.jsx)(pe,{open:f,onOpenChange:p,children:(0,Y.jsxs)(me,{className:`max-w-[95vw] max-h-[95vh] w-auto p-0 bg-black/95 border-zinc-800 gap-0 overflow-hidden`,showCloseButton:!1,children:[(0,Y.jsx)(he,{className:`sr-only`,children:i}),(0,Y.jsxs)(`div`,{className:`relative flex items-center justify-center min-h-[200px]`,children:[(0,Y.jsx)(`img`,{src:a,alt:i,className:`max-w-[93vw] max-h-[90vh] object-contain`}),(0,Y.jsxs)(`div`,{className:`absolute top-2 right-2 flex gap-1`,children:[(0,Y.jsx)(`button`,{type:`button`,onClick:m,className:`rounded-md bg-black/60 hover:bg-black/80 p-2 text-white transition-colors`,title:`Download`,children:(0,Y.jsx)(n,{className:`w-4 h-4`})}),(0,Y.jsx)(`button`,{type:`button`,onClick:()=>p(!1),className:`rounded-md bg-black/60 hover:bg-black/80 p-2 text-white transition-colors`,title:`Close`,children:(0,Y.jsx)(v,{className:`w-4 h-4`})})]})]})]})})]}):(0,Y.jsxs)(`button`,{type:`button`,onClick:m,disabled:!a,className:h(`mt-2 flex w-full items-center gap-2 rounded-md border px-2.5 py-2 text-left text-xs transition-colors disabled:cursor-default disabled:opacity-70`,t?`border-primary-foreground/20 bg-primary-foreground/10 hover:bg-primary-foreground/15`:`border-border bg-background hover:bg-muted`),children:[u?(0,Y.jsx)(w,{className:`h-4 w-4 shrink-0 animate-spin`}):c?(0,Y.jsx)(j,{className:`h-4 w-4 shrink-0 text-red-400`}):(0,Y.jsx)(o,{className:`h-4 w-4 shrink-0`}),(0,Y.jsx)(`span`,{className:h(`min-w-0 flex-1 truncate`,c&&`text-red-400`),children:c||i}),(0,Y.jsx)(n,{className:`h-3.5 w-3.5 shrink-0`})]})}function Et({open:e,onToggle:t,onReact:n}){return(0,Y.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,Y.jsx)(`button`,{type:`button`,title:`Add reaction`,onClick:t,className:h(`inline-flex h-5 w-6 items-center justify-center rounded-full border border-border bg-popover text-muted-foreground shadow-sm transition hover:bg-muted hover:text-foreground`,e?`opacity-100`:`opacity-0 pointer-events-none md:group-hover/msg:opacity-100 md:group-hover/msg:pointer-events-auto`),children:(0,Y.jsx)(d,{className:`h-3 w-3`})}),e&&(0,Y.jsx)(`div`,{className:`absolute bottom-full left-0 z-30 mb-1 flex gap-0.5 rounded-full border border-border bg-popover p-0.5 shadow-md`,children:Be.map(e=>(0,Y.jsx)(`button`,{type:`button`,title:`React ${e}`,onClick:()=>n(e),className:`inline-flex h-6 w-7 items-center justify-center rounded-full text-xs transition-colors hover:bg-muted`,children:e},e))})]})}function Dt({msg:e,peer:t}){let[n,r]=(0,W.useState)(!1),a=N(e=>e.agentsById),o=N(e=>e.openAgentDetail),s=e.from===t,c=(s?e.to:e.from)||``,l=a[s?t:c]?.issueRepo??a[t]?.issueRepo,u=!c||c===`broadcast`||c.includes(`:`),d=z(e),f=J(e.occurredAt??e.createdAt),p=s?m:i,g=a[e.from??``]??null;function _(e){e.stopPropagation(),g&&o(g)}return(0,Y.jsx)(`div`,{"data-msg-id":e.id,className:`flex justify-center mb-1.5`,children:(0,Y.jsxs)(`div`,{className:`w-full max-w-[94%] rounded-md border border-border/50 bg-muted/15 px-2.5 py-1`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs cursor-pointer select-none`,onClick:()=>r(e=>!e),children:[(0,Y.jsx)(A,{className:h(`h-3 w-3 shrink-0 text-muted-foreground/60 transition-transform`,n&&`rotate-90`)}),(0,Y.jsx)(`button`,{type:`button`,title:g?g.label||g.name||g.id:void 0,disabled:!g,onClick:_,className:h(`shrink-0 transition-opacity`,g?`cursor-pointer hover:opacity-80`:`cursor-default opacity-60`),children:(0,Y.jsx)(H,{agent:g,className:`!w-4 !h-4 !rounded-sm opacity-70`})}),(0,Y.jsx)(p,{className:`h-3 w-3 shrink-0 text-muted-foreground/70`}),(0,Y.jsxs)(`span`,{className:`shrink-0 text-muted-foreground`,children:[`Message `,s?`to`:`from`]}),u?(0,Y.jsx)(`span`,{className:`shrink-0 font-medium text-muted-foreground`,children:de(c,a)}):(0,Y.jsx)(X,{agentId:c,className:`shrink-0 px-0.5 text-foreground/80`,noIcon:!0}),!n&&(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-muted-foreground/50`,children:d}),(0,Y.jsx)(`span`,{className:`ml-auto shrink-0 text-muted-foreground/40`,children:f})]}),n&&(0,Y.jsx)(`div`,{className:`mt-1.5 pl-5`,children:(0,Y.jsx)(U,{text:d,rawBody:e.body,issueRepo:l,className:`text-sm leading-relaxed text-foreground/90`})})]})})}var Ot=(0,W.memo)(function({msg:e,peer:t,showAvatar:n=!1,onOpenReferencedPath:r,onPreviewReferencedPath:i,onPreviewReferencedPathEnd:a}){if(!F(e.from)&&!F(e.to))return(0,Y.jsx)(Dt,{msg:e,peer:t});let o=e.kind===`session`?e.payload?.session:void 0;if(o?.type===`prompt`&&o?.origin===`provider`)return(0,Y.jsx)(St,{msg:e,peer:t});let s=F(e.from),c=N(e=>e.reactToMessage),l=N(e=>e.voiceTtsEnabled),u=xt(),d=N(e=>{let n=e.agentsById[t]?.meta?.cwd;return typeof n==`string`?n:``}),f=N(e=>e.agentsById[t]?.issueRepo),p=N(e=>e.usersById),m=N(e=>e.users.length>1),g=s?ce(e.from,p):void 0,_=N(e=>e.openAgentDetail);N(e=>e.openTaskDetailById);let[v,y]=(0,W.useState)(!1),b=(0,W.useRef)(null),x=(0,W.useRef)(null),S=(0,W.useRef)(!1),C=z(e),ne=J(e.occurredAt??e.createdAt),w=ze(e),T=Ve(e),E=s?He(e,t):null,D=E?.icon,O=u===String(e.id),re=l&&!s&&!q(e)&&C.trim().length>0;function ie(t){t.stopPropagation(),O?P.bargeIn():P.speak(e.body,String(e.id))}(0,W.useEffect)(()=>{if(!v)return;function e(e){Re()||b.current&&!b.current.contains(e.target)&&y(!1)}return document.addEventListener(`mousedown`,e),document.addEventListener(`touchstart`,e),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`touchstart`,e)}},[v]);function k(e){return Pe(d||`/`,e)}function A(e,t){let n=k(e);r?.(n,t)}function j(e,t,n){let r=k(e);i?.(r,t,n)}function M(t){c(e,t),y(!1)}function I(e){e.button===0&&(x.current={x:e.clientX,y:e.clientY},S.current=!1)}function ae(e){let t=x.current;t&&(Math.abs(e.clientX-t.x)>3||Math.abs(e.clientY-t.y)>3)&&(S.current=!0)}function L(t){if(!(q(e)||s)&&!t.target.closest(`a,button,input,textarea,select,[role="button"]`)){if(S.current||Re()){S.current=!1;return}y(e=>!e)}}let R=n&&!q(e);return(0,Y.jsxs)(`div`,{"data-msg-id":e.id,className:h(`group/msg flex mb-3 items-end`,s?`justify-end`:`justify-start`,R&&`gap-1.5`),children:[!s&&R&&(0,Y.jsx)(wt,{agentId:t,onOpen:_}),(0,Y.jsxs)(`div`,{ref:b,className:h(`relative`,R?`max-w-[calc(85%-2rem)] md:max-w-[calc(75%-2rem)]`:`max-w-[85%] md:max-w-[75%]`),children:[re&&(0,Y.jsx)(`button`,{type:`button`,title:O?`Stop playback`:`Play aloud`,onClick:ie,className:h(`absolute -top-2 -right-2 z-20 inline-flex h-6 w-6 items-center justify-center rounded-full border bg-popover shadow-sm transition`,O?`border-primary/50 text-primary opacity-100`:`border-border text-muted-foreground opacity-70 hover:bg-muted hover:text-foreground hover:opacity-100 [@media(hover:hover)]:md:opacity-0 [@media(hover:hover)]:md:group-hover/msg:opacity-100`),children:O?(0,Y.jsx)(ee,{className:`h-3.5 w-3.5 animate-pulse`}):(0,Y.jsx)(te,{className:`h-3.5 w-3.5`})}),(0,Y.jsxs)(`div`,{className:h(`rounded-2xl px-3.5 py-2 text-sm select-text`,!s&&!q(e)&&`cursor-pointer`,s?`bg-primary text-primary-foreground rounded-br-sm`:`bg-card ring-1 ring-foreground/10 rounded-bl-sm`),onPointerDown:I,onPointerMove:ae,onClick:L,children:[s&&m&&(0,Y.jsx)(`p`,{className:h(`text-[11px] font-semibold mb-0.5 text-right`,le(e.from)),children:fe(e.from,p)}),e.subject&&(0,Y.jsx)(`p`,{className:h(`text-xs font-semibold mb-1`,s?`text-primary-foreground/70`:`text-muted-foreground`),children:e.subject}),(0,Y.jsx)(U,{text:C,rawBody:e.body,issueRepo:f,className:`leading-relaxed`,onPrimary:s,onOpenPath:A,onPreviewPath:j,onPreviewPathEnd:a,resolvePathTitle:(e,t)=>`${k(e)}${t?`:${t}`:``}`}),w.map(t=>(0,Y.jsx)(Tt,{attachment:t,outbound:s},`${e.id}-${t.artifactId}-${t.role||``}`)),(0,Y.jsxs)(`p`,{className:h(`text-xs mt-1 flex items-center gap-1.5`,s?`justify-end text-primary-foreground/60`:`justify-end text-muted-foreground`),children:[(0,Y.jsxs)(`span`,{className:`opacity-40`,children:[`#`,e.id]}),(0,Y.jsx)(`span`,{children:ne}),E&&D&&(0,Y.jsxs)(`span`,{className:h(`inline-flex items-center gap-1`,E.tone===`ok`&&`text-emerald-300`,E.tone===`warn`&&`text-amber-200`,E.tone===`danger`&&`text-red-200`),title:E.title,children:[(0,Y.jsx)(D,{className:`h-3 w-3`}),E.label]})]})]}),!q(e)&&T.length>0&&(0,Y.jsxs)(`div`,{className:h(`flex flex-wrap items-center gap-0.5 -mt-1 relative z-10`,s?`justify-end pr-2`:`justify-start pl-2`),children:[!s&&(0,Y.jsx)(Et,{open:v,onToggle:()=>y(e=>!e),onReact:M}),T.map(e=>(0,Y.jsxs)(`button`,{type:`button`,title:e.actors.join(`, `),onClick:()=>M(e.emoji),className:h(`inline-flex h-5 items-center gap-0.5 rounded-full border px-1.5 text-[11px] shadow-sm transition-colors`,e.mine?`border-primary/40 bg-primary/10 text-primary`:`border-border bg-background hover:bg-muted text-foreground`),children:[(0,Y.jsx)(`span`,{children:e.emoji}),e.count>1&&(0,Y.jsx)(`span`,{children:e.count})]},e.emoji))]}),!q(e)&&!s&&T.length===0&&(0,Y.jsx)(`div`,{className:`absolute -bottom-2.5 left-1 z-20`,children:(0,Y.jsx)(Et,{open:v,onToggle:()=>y(e=>!e),onReact:M})})]}),s&&R&&(0,Y.jsx)(`span`,{className:`shrink-0 self-end opacity-60`,children:(0,Y.jsx)(ge,{user:g,address:e.from,distinct:m})})]})});export{We as C,je as E,Le as S,Ae as T,Ke as _,_t as a,Je as b,yt as c,ht as d,dt as f,Ne as g,Ge as h,ft as i,$ as l,bt as m,mt as n,gt as o,Ze as p,st as r,vt as s,Ot as t,nt as u,Ie as v,ke as w,qe as x,Fe as y};
|
|
4
|
-
//# sourceMappingURL=MessageBubble-CFujR6_L.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./chunk-CilyBKbf.js";import{$n as t,Cn as n,Zn as r,bn as i,er as a,fr as o,jt as s}from"./lucide-react-DmbfpRvJ.js";import{i as c,r as l,t as u}from"./store-Du8k5mLJ.js";import{_ as d,f}from"./index-BMAblAKQ.js";var p=e(o(),1),m=`(max-width: 767px)`;function h(e){if(typeof window>`u`)return()=>{};let t=window.matchMedia(m);return t.addEventListener(`change`,e),()=>t.removeEventListener(`change`,e)}function g(){return(0,p.useSyncExternalStore)(h,()=>typeof window<`u`?window.matchMedia(m).matches:!1,()=>!1)}var _=t(),v=196,y=84,b=52,x=16,S=14,C=[`landed`,`in-progress`,`pending`,`blocked`],w={landed:{label:`landed`,dot:`bg-emerald-400`,accent:`border-l-emerald-400`,text:`text-emerald-300`,wire:`#34d399`},"in-progress":{label:`in progress`,dot:`bg-sky-400`,accent:`border-l-sky-400`,text:`text-sky-300`,wire:`#38bdf8`},pending:{label:`pending`,dot:`bg-amber-400`,accent:`border-l-amber-400`,text:`text-amber-300`,wire:`#fbbf24`},blocked:{label:`blocked`,dot:`bg-red-400`,accent:`border-l-red-400`,text:`text-red-300`,wire:`#f87171`}};function T(e){return e?e.label||(e.policyName?`policy:${e.policyName}`:e.agentId||``):``}function E(e){let t=new Map(e.nodes.map(e=>[e.id,e])),n=new Map(e.nodes.map((e,t)=>[e.id,t])),r=new Map,i=new Map(e.nodes.map(e=>[e.id,0]));for(let n of e.edges)!t.has(n.from)||!t.has(n.to)||(r.set(n.from,[...r.get(n.from)??[],n.to]),i.set(n.to,(i.get(n.to)??0)+1));let a=new Map(e.nodes.map(e=>[e.id,0])),o=e.nodes.filter(e=>(i.get(e.id)??0)===0).map(e=>e.id),s=new Set;for(;o.length;){let e=o.shift();s.add(e);let t=a.get(e)??0;for(let n of r.get(e)??[])a.set(n,Math.max(a.get(n)??0,t+1)),i.set(n,(i.get(n)??0)-1),(i.get(n)??0)===0&&o.push(n)}let c=Math.max(0,...Array.from(a.values()))+1;for(let t of e.nodes)s.has(t.id)||a.set(t.id,c++);let l=new Map;for(let t of e.nodes){let e=a.get(t.id)??0;l.set(e,[...l.get(e)??[],t])}let u=[...l.entries()].sort(([e],[t])=>e-t),d=Math.max(1,...u.map(([,e])=>e.length)),f=y+x,p=[];u.forEach(([e,t],r)=>{let i=[...t].sort((e,t)=>(e.lane||``).localeCompare(t.lane||``)||(n.get(e.id)??0)-(n.get(t.id)??0)),a=(d-i.length)*f/2;i.forEach((t,n)=>{p.push({node:t,layer:e,x:S+r*(v+b),y:S+a+n*f})})});let m=u.length;return{nodes:p,width:Math.max(320,S*2+m*v+Math.max(0,m-1)*b),height:Math.max(y+S*2,S*2+d*y+Math.max(0,d-1)*x)}}function D(e,t){let n=e.x+v,r=e.y+y/2,i=t.x,a=t.y+y/2,o=n+Math.max(20,(i-n)/2);return`M ${n} ${r} C ${o} ${r}, ${o} ${a}, ${i} ${a}`}function O({threadId:e,teamId:t,channel:a}){let o=t?c(t,a):e?l(e,a):``,m=u(e=>t?e.plansByTeam[o]:o?e.plansByThread[o]:null),h=u(e=>e.fetchPlan),b=u(e=>e.planCollapsed),x=u(e=>e.setPlanCollapsed),S=u(e=>e.issueRefsById),O=u(e=>e.deliverableTasks),k=u(e=>e.openTaskDetailById),A=g(),j=b??A;(0,p.useEffect)(()=>{if(t){h({teamId:t,channel:a});return}e&&h({threadId:e,channel:a})},[a,h,t,e]);let M=(0,p.useMemo)(()=>m?E(m):null,[m]),N=(0,p.useMemo)(()=>new Map(M?.nodes.map(e=>[e.node.id,e])??[]),[M]),P=(0,p.useMemo)(()=>{if(!m)return[];let e=new Map;for(let t of m.nodes)e.set(t.status,(e.get(t.status)??0)+1);return C.filter(t=>e.has(t)).map(t=>({status:t,count:e.get(t)??0}))},[m]);if(!m||!M)return null;let F=m.nodes.length,I=P.find(e=>e.status===`landed`)?.count??0,L=`${F} node${F===1?``:`s`}${I>0?` · ${I} landed`:``}`;return(0,_.jsxs)(`section`,{className:`shrink-0 border-b border-border bg-card/45 px-3 py-2`,children:[(0,_.jsxs)(`button`,{type:`button`,onClick:()=>x(!j),"aria-expanded":!j,"aria-label":j?`Expand plan graph`:`Collapse plan graph`,className:r(`flex w-full min-w-0 items-center gap-2 text-left`,!j&&`mb-2`),children:[(0,_.jsx)(`span`,{className:`flex h-5 w-5 shrink-0 items-center justify-center rounded bg-muted/60`,children:(0,_.jsx)(s,{className:`h-3 w-3 text-muted-foreground`})}),(0,_.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,_.jsx)(`div`,{className:`truncate text-[13px] font-semibold leading-tight text-foreground`,children:m.title||`Plan`}),(0,_.jsx)(`div`,{className:`truncate text-[11px] leading-tight text-muted-foreground`,children:j?L:m.objective||L})]}),P.length>0&&(0,_.jsx)(`div`,{className:`hidden shrink-0 items-center gap-2.5 sm:flex`,children:P.map(({status:e,count:t})=>(0,_.jsxs)(`span`,{className:`flex items-center gap-1 text-[10px] text-muted-foreground`,children:[(0,_.jsx)(`span`,{className:r(`h-1.5 w-1.5 rounded-full`,w[e].dot)}),(0,_.jsx)(`span`,{className:r(`font-medium tabular-nums`,w[e].text),children:t}),(0,_.jsx)(`span`,{children:w[e].label})]},e))}),(0,_.jsxs)(`span`,{className:`shrink-0 rounded bg-muted/60 px-1.5 py-0.5 text-[10px] font-medium tabular-nums text-muted-foreground`,children:[`v`,m.version]}),(0,_.jsx)(`span`,{className:`flex h-5 w-5 shrink-0 items-center justify-center rounded text-muted-foreground hover:bg-muted/60 hover:text-foreground`,children:j?(0,_.jsx)(n,{className:`h-3.5 w-3.5`}):(0,_.jsx)(i,{className:`h-3.5 w-3.5`})})]}),j?null:m.nodes.length===0?(0,_.jsx)(`div`,{className:`rounded-md border border-dashed border-border px-3 py-3 text-center text-xs text-muted-foreground`,children:`No nodes yet — the plan graph fills in as the team is composed.`}):(0,_.jsx)(`div`,{className:`max-h-[min(46vh,360px)] overflow-auto`,children:(0,_.jsxs)(`div`,{className:`relative`,style:{width:M.width,height:M.height},children:[(0,_.jsxs)(`svg`,{className:`pointer-events-none absolute inset-0`,width:M.width,height:M.height,"aria-hidden":`true`,children:[(0,_.jsx)(`defs`,{children:C.map(e=>(0,_.jsx)(`marker`,{id:`plan-arrow-${e}`,viewBox:`0 0 8 8`,refX:`6.5`,refY:`4`,markerWidth:`6`,markerHeight:`6`,orient:`auto-start-reverse`,children:(0,_.jsx)(`path`,{d:`M0 0 L8 4 L0 8 z`,fill:w[e].wire})},e))}),m.edges.map(e=>{let t=N.get(e.from),n=N.get(e.to);if(!t||!n)return null;let r=w[t.node.status];return(0,_.jsx)(`path`,{d:D(t,n),stroke:r.wire,strokeOpacity:.7,strokeWidth:2,fill:`none`,strokeLinecap:`round`,markerEnd:`url(#plan-arrow-${t.node.status})`},`${e.from}->${e.to}`)})]}),M.nodes.map(({node:e,x:t,y:n})=>{let i=w[e.status],a=T(e.ownerRef),o=e.refs?.issueId?S[e.refs.issueId]:null,s=e.refs?.taskId?parseInt(e.refs.taskId,10):null,c=s==null?void 0:O.find(e=>e.id===s)?.title;return(0,_.jsxs)(`article`,{className:r(`group absolute flex flex-col justify-between rounded-md border border-l-[3px] bg-background/95 p-2`,`shadow-sm transition-all hover:-translate-y-px hover:border-border hover:shadow-md hover:bg-background`,i.accent),style:{left:t,top:n,width:v,height:y},title:e.scopeBlurb||e.label,children:[(0,_.jsx)(`div`,{className:`truncate text-xs font-semibold leading-tight text-foreground`,children:e.label}),(e.scopeBlurb||e.id)&&(0,_.jsx)(`div`,{className:`truncate text-[10px] leading-tight text-muted-foreground`,children:e.scopeBlurb||e.id}),(o||s!=null)&&(0,_.jsxs)(`div`,{className:`flex min-w-0 flex-wrap gap-1`,children:[o&&(0,_.jsx)(d,{issueRef:o,compact:!0,className:`max-w-full`}),s!=null&&(0,_.jsx)(f,{id:s,title:c,onClick:()=>k(s),className:`max-w-full`})]}),(0,_.jsxs)(`div`,{className:`flex min-w-0 items-center justify-between gap-1.5`,children:[(0,_.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:[(0,_.jsx)(`span`,{className:r(`h-1.5 w-1.5 shrink-0 rounded-full`,i.dot)}),(0,_.jsx)(`span`,{className:r(`text-[10px] font-medium`,i.text),children:i.label})]}),(0,_.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[a&&(0,_.jsx)(`span`,{className:`truncate text-[10px] text-muted-foreground`,children:a}),e.lane&&(0,_.jsx)(`span`,{className:`shrink-0 rounded-sm bg-muted/70 px-1 py-px text-[9px] font-medium uppercase tracking-wide text-muted-foreground`,children:e.lane})]})]})]},e.id)})]})})]})}function k({agentId:e}){let t=u(e=>e.openTaskDetailById),[n,r]=(0,p.useState)([]);return(0,p.useEffect)(()=>{a(`GET`,`/task-entities?createdBy=`+encodeURIComponent(e)).then(e=>r(e)).catch(()=>{})},[e]),n.length===0?null:(0,_.jsxs)(`section`,{className:`shrink-0 border-b border-border bg-card/45 px-3 py-2`,children:[(0,_.jsxs)(`div`,{className:`mb-1.5 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground`,children:[`Tasks from this session (`,n.length,`)`]}),(0,_.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:n.map(e=>(0,_.jsx)(f,{id:e.id,title:e.title,status:e.status,onClick:()=>t(e.id)},e.id))})]})}export{k as n,O as t};
|
|
2
|
-
//# sourceMappingURL=PlanGraphPanel-BfxvqmNS.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PlanGraphPanel-BfxvqmNS.js","names":[],"sources":["../../dashboard/src/components/chat/hooks/useIsMobile.ts","../../dashboard/src/components/chat/PlanGraphPanel.tsx"],"sourcesContent":["import { useSyncExternalStore } from 'react'\n\n// Reactive narrow-viewport flag. Subscribes to the same `max-width: 767px`\n// breakpoint the chat single-pane layout uses, via useSyncExternalStore — an\n// external-store subscription, not effect-driven derived state — so it stays\n// correct across resize/rotate without a useEffect.\nconst QUERY = '(max-width: 767px)'\n\nfunction subscribe(cb: () => void): () => void {\n if (typeof window === 'undefined') return () => {}\n const mql = window.matchMedia(QUERY)\n mql.addEventListener('change', cb)\n return () => mql.removeEventListener('change', cb)\n}\n\nexport function useIsMobile(): boolean {\n return useSyncExternalStore(\n subscribe,\n () => (typeof window !== 'undefined' ? window.matchMedia(QUERY).matches : false),\n () => false,\n )\n}\n","import { useEffect, useMemo, useState } from 'react'\nimport { ChevronDown, ChevronUp, GitBranch } from 'lucide-react'\nimport { useRelayStore } from '@/store'\nimport type { Plan, PlanNode, PlanOwnerRef, PlanStatus, Task } from '@/types'\nimport { cn } from '@/lib/utils'\nimport { planLookupKey, planTeamLookupKey } from '@/store/slices/plans'\nimport { IssueRefChip } from '@/components/shared/issue-ref-chip'\nimport { TaskChip } from '@/components/shared/task-chip'\nimport { useIsMobile } from './hooks/useIsMobile'\nimport { api } from '@/lib/api'\n\n// Left-to-right DAG: dependency depth flows along x (sequential gates), nodes\n// that share a depth stack along y (parallel lanes). This keeps the panel SHORT\n// — it's an operator overlay above the chat, not a full view — and lets the\n// gate-vs-lane structure read at a glance. Height is capped + scrollable below.\nconst NODE_W = 196\nconst NODE_H = 84\nconst COL_GAP = 52\nconst ROW_GAP = 16\nconst PAD = 14\n\nconst STATUS_ORDER: PlanStatus[] = ['landed', 'in-progress', 'pending', 'blocked']\n\nconst STATUS_STYLE: Record<\n PlanStatus,\n { label: string; dot: string; accent: string; text: string; wire: string }\n> = {\n landed: { label: 'landed', dot: 'bg-emerald-400', accent: 'border-l-emerald-400', text: 'text-emerald-300', wire: '#34d399' },\n 'in-progress': { label: 'in progress', dot: 'bg-sky-400', accent: 'border-l-sky-400', text: 'text-sky-300', wire: '#38bdf8' },\n pending: { label: 'pending', dot: 'bg-amber-400', accent: 'border-l-amber-400', text: 'text-amber-300', wire: '#fbbf24' },\n blocked: { label: 'blocked', dot: 'bg-red-400', accent: 'border-l-red-400', text: 'text-red-300', wire: '#f87171' },\n}\n\ninterface LayoutNode {\n node: PlanNode\n x: number\n y: number\n layer: number\n}\n\nfunction ownerLabel(owner?: PlanOwnerRef): string {\n if (!owner) return ''\n return owner.label || (owner.policyName ? `policy:${owner.policyName}` : owner.agentId || '')\n}\n\nfunction layerPlan(plan: Plan): { nodes: LayoutNode[]; width: number; height: number } {\n const nodeById = new Map(plan.nodes.map((node) => [node.id, node]))\n const indexById = new Map(plan.nodes.map((node, index) => [node.id, index]))\n const outgoing = new Map<string, string[]>()\n const indegree = new Map(plan.nodes.map((node) => [node.id, 0]))\n for (const edge of plan.edges) {\n if (!nodeById.has(edge.from) || !nodeById.has(edge.to)) continue\n outgoing.set(edge.from, [...(outgoing.get(edge.from) ?? []), edge.to])\n indegree.set(edge.to, (indegree.get(edge.to) ?? 0) + 1)\n }\n\n const layerById = new Map(plan.nodes.map((node) => [node.id, 0]))\n const queue = plan.nodes\n .filter((node) => (indegree.get(node.id) ?? 0) === 0)\n .map((node) => node.id)\n const visited = new Set<string>()\n\n while (queue.length) {\n const id = queue.shift()!\n visited.add(id)\n const fromLayer = layerById.get(id) ?? 0\n for (const to of outgoing.get(id) ?? []) {\n layerById.set(to, Math.max(layerById.get(to) ?? 0, fromLayer + 1))\n indegree.set(to, (indegree.get(to) ?? 0) - 1)\n if ((indegree.get(to) ?? 0) === 0) queue.push(to)\n }\n }\n\n let fallbackLayer = Math.max(0, ...Array.from(layerById.values())) + 1\n for (const node of plan.nodes) {\n if (visited.has(node.id)) continue\n layerById.set(node.id, fallbackLayer++)\n }\n\n const layers = new Map<number, PlanNode[]>()\n for (const node of plan.nodes) {\n const layer = layerById.get(node.id) ?? 0\n layers.set(layer, [...(layers.get(layer) ?? []), node])\n }\n\n const orderedLayers = [...layers.entries()].sort(([a], [b]) => a - b)\n const maxRows = Math.max(1, ...orderedLayers.map(([, nodes]) => nodes.length))\n const rowPitch = NODE_H + ROW_GAP\n\n const layoutNodes: LayoutNode[] = []\n orderedLayers.forEach(([layer, nodes], col) => {\n const ordered = [...nodes].sort((a, b) => {\n const lane = (a.lane || '').localeCompare(b.lane || '')\n return lane || ((indexById.get(a.id) ?? 0) - (indexById.get(b.id) ?? 0))\n })\n // Center each column vertically against the tallest column so the spine\n // runs through the middle and the parallel fan reads as a fan.\n const offset = ((maxRows - ordered.length) * rowPitch) / 2\n ordered.forEach((node, row) => {\n layoutNodes.push({\n node,\n layer,\n x: PAD + col * (NODE_W + COL_GAP),\n y: PAD + offset + row * rowPitch,\n })\n })\n })\n\n const cols = orderedLayers.length\n return {\n nodes: layoutNodes,\n width: Math.max(320, PAD * 2 + cols * NODE_W + Math.max(0, cols - 1) * COL_GAP),\n height: Math.max(NODE_H + PAD * 2, PAD * 2 + maxRows * NODE_H + Math.max(0, maxRows - 1) * ROW_GAP),\n }\n}\n\nfunction edgePath(from: LayoutNode, to: LayoutNode): string {\n const x1 = from.x + NODE_W\n const y1 = from.y + NODE_H / 2\n const x2 = to.x\n const y2 = to.y + NODE_H / 2\n const midX = x1 + Math.max(20, (x2 - x1) / 2)\n return `M ${x1} ${y1} C ${midX} ${y1}, ${midX} ${y2}, ${x2} ${y2}`\n}\n\nexport function PlanGraphPanel({ threadId, teamId, channel }: { threadId?: string | number | null; teamId?: string | null; channel?: string }) {\n const key = teamId ? planTeamLookupKey(teamId, channel) : threadId ? planLookupKey(threadId, channel) : ''\n const plan = useRelayStore((s) => teamId ? s.plansByTeam[key] : key ? s.plansByThread[key] : null)\n const fetchPlan = useRelayStore((s) => s.fetchPlan)\n const planCollapsed = useRelayStore((s) => s.planCollapsed)\n const setPlanCollapsed = useRelayStore((s) => s.setPlanCollapsed)\n const issueRefsById = useRelayStore((s) => s.issueRefsById)\n const deliverableTasks = useRelayStore((s) => s.deliverableTasks)\n const openTaskDetailById = useRelayStore((s) => s.openTaskDetailById)\n const isMobile = useIsMobile()\n // null = no manual toggle yet → follow the viewport default. The graph\n // dominates a phone screen, so it starts collapsed there and expanded on\n // desktop; an explicit user toggle (persisted) overrides the default.\n const collapsed = planCollapsed ?? isMobile\n\n useEffect(() => {\n if (teamId) {\n void fetchPlan({ teamId, channel })\n return\n }\n if (threadId) void fetchPlan({ threadId, channel })\n }, [channel, fetchPlan, teamId, threadId])\n\n const layout = useMemo(() => plan ? layerPlan(plan) : null, [plan])\n const nodeById = useMemo(() => new Map(layout?.nodes.map((node) => [node.node.id, node]) ?? []), [layout])\n\n const legend = useMemo(() => {\n if (!plan) return []\n const counts = new Map<PlanStatus, number>()\n for (const node of plan.nodes) counts.set(node.status, (counts.get(node.status) ?? 0) + 1)\n return STATUS_ORDER.filter((status) => counts.has(status)).map((status) => ({\n status,\n count: counts.get(status) ?? 0,\n }))\n }, [plan])\n\n if (!plan || !layout) return null\n\n const nodeCount = plan.nodes.length\n const landedCount = legend.find((entry) => entry.status === 'landed')?.count ?? 0\n // Thin summary for the collapsed bar (the legend dots are hidden on mobile),\n // e.g. \"5 nodes · 4 landed\".\n const summary = `${nodeCount} node${nodeCount === 1 ? '' : 's'}${landedCount > 0 ? ` · ${landedCount} landed` : ''}`\n\n return (\n <section className=\"shrink-0 border-b border-border bg-card/45 px-3 py-2\">\n <button\n type=\"button\"\n onClick={() => setPlanCollapsed(!collapsed)}\n aria-expanded={!collapsed}\n aria-label={collapsed ? 'Expand plan graph' : 'Collapse plan graph'}\n className={cn(\n 'flex w-full min-w-0 items-center gap-2 text-left',\n !collapsed && 'mb-2',\n )}\n >\n <span className=\"flex h-5 w-5 shrink-0 items-center justify-center rounded bg-muted/60\">\n <GitBranch className=\"h-3 w-3 text-muted-foreground\" />\n </span>\n <div className=\"min-w-0 flex-1\">\n <div className=\"truncate text-[13px] font-semibold leading-tight text-foreground\">{plan.title || 'Plan'}</div>\n <div className=\"truncate text-[11px] leading-tight text-muted-foreground\">\n {collapsed ? summary : (plan.objective || summary)}\n </div>\n </div>\n {legend.length > 0 && (\n <div className=\"hidden shrink-0 items-center gap-2.5 sm:flex\">\n {legend.map(({ status, count }) => (\n <span key={status} className=\"flex items-center gap-1 text-[10px] text-muted-foreground\">\n <span className={cn('h-1.5 w-1.5 rounded-full', STATUS_STYLE[status].dot)} />\n <span className={cn('font-medium tabular-nums', STATUS_STYLE[status].text)}>{count}</span>\n <span>{STATUS_STYLE[status].label}</span>\n </span>\n ))}\n </div>\n )}\n <span className=\"shrink-0 rounded bg-muted/60 px-1.5 py-0.5 text-[10px] font-medium tabular-nums text-muted-foreground\">\n v{plan.version}\n </span>\n <span className=\"flex h-5 w-5 shrink-0 items-center justify-center rounded text-muted-foreground hover:bg-muted/60 hover:text-foreground\">\n {collapsed ? <ChevronDown className=\"h-3.5 w-3.5\" /> : <ChevronUp className=\"h-3.5 w-3.5\" />}\n </span>\n </button>\n {collapsed ? null : plan.nodes.length === 0 ? (\n <div className=\"rounded-md border border-dashed border-border px-3 py-3 text-center text-xs text-muted-foreground\">\n No nodes yet — the plan graph fills in as the team is composed.\n </div>\n ) : (\n <div className=\"max-h-[min(46vh,360px)] overflow-auto\">\n <div className=\"relative\" style={{ width: layout.width, height: layout.height }}>\n <svg className=\"pointer-events-none absolute inset-0\" width={layout.width} height={layout.height} aria-hidden=\"true\">\n <defs>\n {STATUS_ORDER.map((status) => (\n <marker\n key={status}\n id={`plan-arrow-${status}`}\n viewBox=\"0 0 8 8\"\n refX=\"6.5\"\n refY=\"4\"\n markerWidth=\"6\"\n markerHeight=\"6\"\n orient=\"auto-start-reverse\"\n >\n <path d=\"M0 0 L8 4 L0 8 z\" fill={STATUS_STYLE[status].wire} />\n </marker>\n ))}\n </defs>\n {plan.edges.map((edge) => {\n const from = nodeById.get(edge.from)\n const to = nodeById.get(edge.to)\n if (!from || !to) return null\n const wire = STATUS_STYLE[from.node.status]\n return (\n <path\n key={`${edge.from}->${edge.to}`}\n d={edgePath(from, to)}\n stroke={wire.wire}\n strokeOpacity={0.7}\n strokeWidth={2}\n fill=\"none\"\n strokeLinecap=\"round\"\n markerEnd={`url(#plan-arrow-${from.node.status})`}\n />\n )\n })}\n </svg>\n {layout.nodes.map(({ node, x, y }) => {\n const status = STATUS_STYLE[node.status]\n const owner = ownerLabel(node.ownerRef)\n const issueRef = node.refs?.issueId ? issueRefsById[node.refs.issueId] : null\n const taskNumId = node.refs?.taskId ? parseInt(node.refs.taskId, 10) : null\n const taskTitle = taskNumId != null ? deliverableTasks.find((t) => t.id === taskNumId)?.title : undefined\n return (\n <article\n key={node.id}\n className={cn(\n 'group absolute flex flex-col justify-between rounded-md border border-l-[3px] bg-background/95 p-2',\n 'shadow-sm transition-all hover:-translate-y-px hover:border-border hover:shadow-md hover:bg-background',\n status.accent,\n )}\n style={{ left: x, top: y, width: NODE_W, height: NODE_H }}\n title={node.scopeBlurb || node.label}\n >\n <div className=\"truncate text-xs font-semibold leading-tight text-foreground\">{node.label}</div>\n {(node.scopeBlurb || node.id) && (\n <div className=\"truncate text-[10px] leading-tight text-muted-foreground\">{node.scopeBlurb || node.id}</div>\n )}\n {(issueRef || taskNumId != null) && (\n <div className=\"flex min-w-0 flex-wrap gap-1\">\n {issueRef && <IssueRefChip issueRef={issueRef} compact className=\"max-w-full\" />}\n {taskNumId != null && (\n <TaskChip id={taskNumId} title={taskTitle} onClick={() => openTaskDetailById(taskNumId)} className=\"max-w-full\" />\n )}\n </div>\n )}\n <div className=\"flex min-w-0 items-center justify-between gap-1.5\">\n <div className=\"flex shrink-0 items-center gap-1.5\">\n <span className={cn('h-1.5 w-1.5 shrink-0 rounded-full', status.dot)} />\n <span className={cn('text-[10px] font-medium', status.text)}>{status.label}</span>\n </div>\n <div className=\"flex min-w-0 items-center gap-1.5\">\n {owner && <span className=\"truncate text-[10px] text-muted-foreground\">{owner}</span>}\n {node.lane && (\n <span className=\"shrink-0 rounded-sm bg-muted/70 px-1 py-px text-[9px] font-medium uppercase tracking-wide text-muted-foreground\">\n {node.lane}\n </span>\n )}\n </div>\n </div>\n </article>\n )\n })}\n </div>\n </div>\n )}\n </section>\n )\n}\n\n// Tasks created/triggered from a session (#856, #860). Fetches server-side via createdBy filter.\nexport function SessionTasksPanel({ agentId }: { agentId: string }) {\n const openTaskDetailById = useRelayStore((s) => s.openTaskDetailById)\n const [sessionTasks, setSessionTasks] = useState<Task[]>([])\n useEffect(() => {\n void api<import('@/types').Task[]>('GET', '/task-entities?createdBy=' + encodeURIComponent(agentId))\n .then((tasks) => setSessionTasks(tasks))\n .catch(() => {})\n }, [agentId])\n if (sessionTasks.length === 0) return null\n return (\n <section className=\"shrink-0 border-b border-border bg-card/45 px-3 py-2\">\n <div className=\"mb-1.5 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground\">\n Tasks from this session ({sessionTasks.length})\n </div>\n <div className=\"flex flex-wrap gap-1.5\">\n {sessionTasks.map((task) => (\n <TaskChip\n key={task.id}\n id={task.id}\n title={task.title}\n status={task.status}\n onClick={() => openTaskDetailById(task.id)}\n />\n ))}\n </div>\n </section>\n )\n}\n"],"mappings":"uPAMM,EAAQ,qBAEd,SAAS,EAAU,EAA4B,CAC7C,GAAI,OAAO,OAAW,IAAa,UAAa,GAChD,IAAM,EAAM,OAAO,WAAW,EAAM,CAEpC,OADA,EAAI,iBAAiB,SAAU,EAAG,KACrB,EAAI,oBAAoB,SAAU,EAAG,CAGpD,SAAgB,GAAuB,CACrC,OAAA,EAAA,EAAA,sBACE,MACO,OAAO,OAAW,IAAc,OAAO,WAAW,EAAM,CAAC,QAAU,OACpE,GACP,WCLG,EAAS,IACT,EAAS,GACT,EAAU,GACV,EAAU,GACV,EAAM,GAEN,EAA6B,CAAC,SAAU,cAAe,UAAW,UAAU,CAE5E,EAGF,CACF,OAAQ,CAAE,MAAO,SAAU,IAAK,iBAAkB,OAAQ,uBAAwB,KAAM,mBAAoB,KAAM,UAAW,CAC7H,cAAe,CAAE,MAAO,cAAe,IAAK,aAAc,OAAQ,mBAAoB,KAAM,eAAgB,KAAM,UAAW,CAC7H,QAAS,CAAE,MAAO,UAAW,IAAK,eAAgB,OAAQ,qBAAsB,KAAM,iBAAkB,KAAM,UAAW,CACzH,QAAS,CAAE,MAAO,UAAW,IAAK,aAAc,OAAQ,mBAAoB,KAAM,eAAgB,KAAM,UAAW,CACpH,CASD,SAAS,EAAW,EAA8B,CAEhD,OADK,EACE,EAAM,QAAU,EAAM,WAAa,UAAU,EAAM,aAAe,EAAM,SAAW,IADvE,GAIrB,SAAS,EAAU,EAAoE,CACrF,IAAM,EAAW,IAAI,IAAI,EAAK,MAAM,IAAK,GAAS,CAAC,EAAK,GAAI,EAAK,CAAC,CAAC,CAC7D,EAAY,IAAI,IAAI,EAAK,MAAM,KAAK,EAAM,IAAU,CAAC,EAAK,GAAI,EAAM,CAAC,CAAC,CACtE,EAAW,IAAI,IACf,EAAW,IAAI,IAAI,EAAK,MAAM,IAAK,GAAS,CAAC,EAAK,GAAI,EAAE,CAAC,CAAC,CAChE,IAAK,IAAM,KAAQ,EAAK,MAClB,CAAC,EAAS,IAAI,EAAK,KAAK,EAAI,CAAC,EAAS,IAAI,EAAK,GAAG,GACtD,EAAS,IAAI,EAAK,KAAM,CAAC,GAAI,EAAS,IAAI,EAAK,KAAK,EAAI,EAAE,CAAG,EAAK,GAAG,CAAC,CACtE,EAAS,IAAI,EAAK,IAAK,EAAS,IAAI,EAAK,GAAG,EAAI,GAAK,EAAE,EAGzD,IAAM,EAAY,IAAI,IAAI,EAAK,MAAM,IAAK,GAAS,CAAC,EAAK,GAAI,EAAE,CAAC,CAAC,CAC3D,EAAQ,EAAK,MAChB,OAAQ,IAAU,EAAS,IAAI,EAAK,GAAG,EAAI,KAAO,EAAE,CACpD,IAAK,GAAS,EAAK,GAAG,CACnB,EAAU,IAAI,IAEpB,KAAO,EAAM,QAAQ,CACnB,IAAM,EAAK,EAAM,OAAO,CACxB,EAAQ,IAAI,EAAG,CACf,IAAM,EAAY,EAAU,IAAI,EAAG,EAAI,EACvC,IAAK,IAAM,KAAM,EAAS,IAAI,EAAG,EAAI,EAAE,CACrC,EAAU,IAAI,EAAI,KAAK,IAAI,EAAU,IAAI,EAAG,EAAI,EAAG,EAAY,EAAE,CAAC,CAClE,EAAS,IAAI,GAAK,EAAS,IAAI,EAAG,EAAI,GAAK,EAAE,EACxC,EAAS,IAAI,EAAG,EAAI,KAAO,GAAG,EAAM,KAAK,EAAG,CAIrD,IAAI,EAAgB,KAAK,IAAI,EAAG,GAAG,MAAM,KAAK,EAAU,QAAQ,CAAC,CAAC,CAAG,EACrE,IAAK,IAAM,KAAQ,EAAK,MAClB,EAAQ,IAAI,EAAK,GAAG,EACxB,EAAU,IAAI,EAAK,GAAI,IAAgB,CAGzC,IAAM,EAAS,IAAI,IACnB,IAAK,IAAM,KAAQ,EAAK,MAAO,CAC7B,IAAM,EAAQ,EAAU,IAAI,EAAK,GAAG,EAAI,EACxC,EAAO,IAAI,EAAO,CAAC,GAAI,EAAO,IAAI,EAAM,EAAI,EAAE,CAAG,EAAK,CAAC,CAGzD,IAAM,EAAgB,CAAC,GAAG,EAAO,SAAS,CAAC,CAAC,MAAM,CAAC,GAAI,CAAC,KAAO,EAAI,EAAE,CAC/D,EAAU,KAAK,IAAI,EAAG,GAAG,EAAc,KAAK,EAAG,KAAW,EAAM,OAAO,CAAC,CACxE,EAAW,EAAS,EAEpB,EAA4B,EAAE,CACpC,EAAc,SAAS,CAAC,EAAO,GAAQ,IAAQ,CAC7C,IAAM,EAAU,CAAC,GAAG,EAAM,CAAC,MAAM,EAAG,KACpB,EAAE,MAAQ,IAAI,cAAc,EAAE,MAAQ,GAC7C,GAAU,EAAU,IAAI,EAAE,GAAG,EAAI,IAAM,EAAU,IAAI,EAAE,GAAG,EAAI,GACrE,CAGI,GAAW,EAAU,EAAQ,QAAU,EAAY,EACzD,EAAQ,SAAS,EAAM,IAAQ,CAC7B,EAAY,KAAK,CACf,OACA,QACA,EAAG,EAAM,GAAO,EAAS,GACzB,EAAG,EAAM,EAAS,EAAM,EACzB,CAAC,EACF,EACF,CAEF,IAAM,EAAO,EAAc,OAC3B,MAAO,CACL,MAAO,EACP,MAAO,KAAK,IAAI,IAAK,EAAM,EAAI,EAAO,EAAS,KAAK,IAAI,EAAG,EAAO,EAAE,CAAG,EAAQ,CAC/E,OAAQ,KAAK,IAAI,EAAS,EAAM,EAAG,EAAM,EAAI,EAAU,EAAS,KAAK,IAAI,EAAG,EAAU,EAAE,CAAG,EAAQ,CACpG,CAGH,SAAS,EAAS,EAAkB,EAAwB,CAC1D,IAAM,EAAK,EAAK,EAAI,EACd,EAAK,EAAK,EAAI,EAAS,EACvB,EAAK,EAAG,EACR,EAAK,EAAG,EAAI,EAAS,EACrB,EAAO,EAAK,KAAK,IAAI,IAAK,EAAK,GAAM,EAAE,CAC7C,MAAO,KAAK,EAAG,GAAG,EAAG,KAAK,EAAK,GAAG,EAAG,IAAI,EAAK,GAAG,EAAG,IAAI,EAAG,GAAG,IAGhE,SAAgB,EAAe,CAAE,WAAU,SAAQ,WAA4F,CAC7I,IAAM,EAAM,EAAS,EAAkB,EAAQ,EAAQ,CAAG,EAAW,EAAc,EAAU,EAAQ,CAAG,GAClG,EAAO,EAAe,GAAM,EAAS,EAAE,YAAY,GAAO,EAAM,EAAE,cAAc,GAAO,KAAK,CAC5F,EAAY,EAAe,GAAM,EAAE,UAAU,CAC7C,EAAgB,EAAe,GAAM,EAAE,cAAc,CACrD,EAAmB,EAAe,GAAM,EAAE,iBAAiB,CAC3D,EAAgB,EAAe,GAAM,EAAE,cAAc,CACrD,EAAmB,EAAe,GAAM,EAAE,iBAAiB,CAC3D,EAAqB,EAAe,GAAM,EAAE,mBAAmB,CAC/D,EAAW,GAAa,CAIxB,EAAY,GAAiB,GAEnC,EAAA,EAAA,eAAgB,CACd,GAAI,EAAQ,CACV,EAAe,CAAE,SAAQ,UAAS,CAAC,CACnC,OAEE,GAAU,EAAe,CAAE,WAAU,UAAS,CAAC,EAClD,CAAC,EAAS,EAAW,EAAQ,EAAS,CAAC,CAE1C,IAAM,GAAA,EAAA,EAAA,aAAuB,EAAO,EAAU,EAAK,CAAG,KAAM,CAAC,EAAK,CAAC,CAC7D,GAAA,EAAA,EAAA,aAAyB,IAAI,IAAI,GAAQ,MAAM,IAAK,GAAS,CAAC,EAAK,KAAK,GAAI,EAAK,CAAC,EAAI,EAAE,CAAC,CAAE,CAAC,EAAO,CAAC,CAEpG,GAAA,EAAA,EAAA,aAAuB,CAC3B,GAAI,CAAC,EAAM,MAAO,EAAE,CACpB,IAAM,EAAS,IAAI,IACnB,IAAK,IAAM,KAAQ,EAAK,MAAO,EAAO,IAAI,EAAK,QAAS,EAAO,IAAI,EAAK,OAAO,EAAI,GAAK,EAAE,CAC1F,OAAO,EAAa,OAAQ,GAAW,EAAO,IAAI,EAAO,CAAC,CAAC,IAAK,IAAY,CAC1E,SACA,MAAO,EAAO,IAAI,EAAO,EAAI,EAC9B,EAAE,EACF,CAAC,EAAK,CAAC,CAEV,GAAI,CAAC,GAAQ,CAAC,EAAQ,OAAO,KAE7B,IAAM,EAAY,EAAK,MAAM,OACvB,EAAc,EAAO,KAAM,GAAU,EAAM,SAAW,SAAS,EAAE,OAAS,EAG1E,EAAU,GAAG,EAAU,OAAO,IAAc,EAAI,GAAK,MAAM,EAAc,EAAI,MAAM,EAAY,SAAW,KAEhH,OACE,EAAA,EAAA,MAAC,UAAD,CAAS,UAAU,gEAAnB,EACE,EAAA,EAAA,MAAC,SAAD,CACE,KAAK,SACL,YAAe,EAAiB,CAAC,EAAU,CAC3C,gBAAe,CAAC,EAChB,aAAY,EAAY,oBAAsB,sBAC9C,UAAW,EACT,mDACA,CAAC,GAAa,OACf,UARH,EAUE,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,kFACd,EAAA,EAAA,KAAC,EAAD,CAAW,UAAU,gCAAkC,CAAA,CAClD,CAAA,EACP,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,0BAAf,EACE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,4EAAoE,EAAK,OAAS,OAAa,CAAA,EAC9G,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,oEACZ,EAAY,EAAW,EAAK,WAAa,EACtC,CAAA,CACF,GACL,EAAO,OAAS,IACf,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,wDACZ,EAAO,KAAK,CAAE,SAAQ,YACrB,EAAA,EAAA,MAAC,OAAD,CAAmB,UAAU,qEAA7B,EACE,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAG,2BAA4B,EAAa,GAAQ,IAAI,CAAI,CAAA,EAC7E,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAG,2BAA4B,EAAa,GAAQ,KAAK,UAAG,EAAa,CAAA,EAC1F,EAAA,EAAA,KAAC,OAAD,CAAA,SAAO,EAAa,GAAQ,MAAa,CAAA,CACpC,EAJI,EAIJ,CACP,CACE,CAAA,EAER,EAAA,EAAA,MAAC,OAAD,CAAM,UAAU,iHAAhB,CAAwH,IACpH,EAAK,QACF,IACP,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,mIACb,GAAY,EAAA,EAAA,KAAC,EAAD,CAAa,UAAU,cAAgB,CAAA,EAAG,EAAA,EAAA,KAAC,EAAD,CAAW,UAAU,cAAgB,CAAA,CACvF,CAAA,CACA,GACR,EAAY,KAAO,EAAK,MAAM,SAAW,GACxC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,6GAAoG,kEAE7G,CAAA,EAEN,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,kDACb,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,WAAW,MAAO,CAAE,MAAO,EAAO,MAAO,OAAQ,EAAO,OAAQ,UAA/E,EACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,uCAAuC,MAAO,EAAO,MAAO,OAAQ,EAAO,OAAQ,cAAY,gBAA9G,EACE,EAAA,EAAA,KAAC,OAAD,CAAA,SACG,EAAa,IAAK,IACjB,EAAA,EAAA,KAAC,SAAD,CAEE,GAAI,cAAc,IAClB,QAAQ,UACR,KAAK,MACL,KAAK,IACL,YAAY,IACZ,aAAa,IACb,OAAO,+BAEP,EAAA,EAAA,KAAC,OAAD,CAAM,EAAE,mBAAmB,KAAM,EAAa,GAAQ,KAAQ,CAAA,CACvD,CAVF,EAUE,CACT,CACG,CAAA,CACN,EAAK,MAAM,IAAK,GAAS,CACxB,IAAM,EAAO,EAAS,IAAI,EAAK,KAAK,CAC9B,EAAK,EAAS,IAAI,EAAK,GAAG,CAChC,GAAI,CAAC,GAAQ,CAAC,EAAI,OAAO,KACzB,IAAM,EAAO,EAAa,EAAK,KAAK,QACpC,OACE,EAAA,EAAA,KAAC,OAAD,CAEE,EAAG,EAAS,EAAM,EAAG,CACrB,OAAQ,EAAK,KACb,cAAe,GACf,YAAa,EACb,KAAK,OACL,cAAc,QACd,UAAW,mBAAmB,EAAK,KAAK,OAAO,GAC/C,CARK,GAAG,EAAK,KAAK,IAAI,EAAK,KAQ3B,EAEJ,CACE,GACL,EAAO,MAAM,KAAK,CAAE,OAAM,IAAG,OAAQ,CACpC,IAAM,EAAS,EAAa,EAAK,QAC3B,EAAQ,EAAW,EAAK,SAAS,CACjC,EAAW,EAAK,MAAM,QAAU,EAAc,EAAK,KAAK,SAAW,KACnE,EAAY,EAAK,MAAM,OAAS,SAAS,EAAK,KAAK,OAAQ,GAAG,CAAG,KACjE,EAAY,GAAa,KAAiE,IAAA,GAA1D,EAAiB,KAAM,GAAM,EAAE,KAAO,EAAU,EAAE,MACxF,OACE,EAAA,EAAA,MAAC,UAAD,CAEE,UAAW,EACT,qGACA,yGACA,EAAO,OACR,CACD,MAAO,CAAE,KAAM,EAAG,IAAK,EAAG,MAAO,EAAQ,OAAQ,EAAQ,CACzD,MAAO,EAAK,YAAc,EAAK,eARjC,EAUE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,wEAAgE,EAAK,MAAY,CAAA,EAC9F,EAAK,YAAc,EAAK,MACxB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,oEAA4D,EAAK,YAAc,EAAK,GAAS,CAAA,EAE5G,GAAY,GAAa,QACzB,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,wCAAf,CACG,IAAY,EAAA,EAAA,KAAC,EAAD,CAAwB,WAAU,QAAA,GAAQ,UAAU,aAAe,CAAA,CAC/E,GAAa,OACZ,EAAA,EAAA,KAAC,EAAD,CAAU,GAAI,EAAW,MAAO,EAAW,YAAe,EAAmB,EAAU,CAAE,UAAU,aAAe,CAAA,CAEhH,IAER,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,6DAAf,EACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,8CAAf,EACE,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAG,oCAAqC,EAAO,IAAI,CAAI,CAAA,EACxE,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAG,0BAA2B,EAAO,KAAK,UAAG,EAAO,MAAa,CAAA,CAC9E,IACN,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,6CAAf,CACG,IAAS,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,sDAA8C,EAAa,CAAA,CACpF,EAAK,OACJ,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,2HACb,EAAK,KACD,CAAA,CAEL,GACF,GACE,EAnCH,EAAK,GAmCF,EAEZ,CACE,GACF,CAAA,CAEA,GAKd,SAAgB,EAAkB,CAAE,WAAgC,CAClE,IAAM,EAAqB,EAAe,GAAM,EAAE,mBAAmB,CAC/D,CAAC,EAAc,IAAA,EAAA,EAAA,UAAoC,EAAE,CAAC,CAO5D,OANA,EAAA,EAAA,eAAgB,CACd,EAAmC,MAAO,4BAA8B,mBAAmB,EAAQ,CAAC,CACjG,KAAM,GAAU,EAAgB,EAAM,CAAC,CACvC,UAAY,GAAG,EACjB,CAAC,EAAQ,CAAC,CACT,EAAa,SAAW,EAAU,MAEpC,EAAA,EAAA,MAAC,UAAD,CAAS,UAAU,gEAAnB,EACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,2FAAf,CAAiG,4BACrE,EAAa,OAAO,IAC1C,IACN,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,kCACZ,EAAa,IAAK,IACjB,EAAA,EAAA,KAAC,EAAD,CAEE,GAAI,EAAK,GACT,MAAO,EAAK,MACZ,OAAQ,EAAK,OACb,YAAe,EAAmB,EAAK,GAAG,CAC1C,CALK,EAAK,GAKV,CACF,CACE,CAAA,CACE"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./chunk-CilyBKbf.js";import{$ as t,$n as n,Bt as r,Jn as i,K as a,Un as o,V as s,Xt as c,Zn as l,_ as u,a as d,fr as f,g as p,ht as m,nt as h,u as g,z as _}from"./lucide-react-DmbfpRvJ.js";import{f as ee,t as v}from"./store-Du8k5mLJ.js";import{h as y,p as b}from"./types-DSwhOFcJ.js";import{J as x,K as S,W as C,Y as w,a as T,d as E,i as te,n as ne}from"./display-_5kFrHJh.js";import{o as D,r as O}from"./dist-DKoRwEZq.js";import{t as k}from"./dist-DnyQI0qt.js";import{i as re,n as A}from"./dist-DQPz52Zx.js";import{t as j}from"./dist-EO8jbi2F.js";import{t as M}from"./dist-D_qcpfbI.js";import{a as N,i as P,n as F,o as I,r as L,s as ie,t as ae}from"./es2015-C9FSEGd7.js";import{a as R,i as oe,n as se,r as z,t as B}from"./dist-BDYU37NZ.js";import{t as V}from"./badge-kdQDWO6e.js";import{t as H}from"./button-BKFvNXa3.js";import{t as ce}from"./copy-button-aLaiAkv2.js";import{A as U,C as le,H as ue,J as de,S as fe,X as W,Y as pe,Z as me,g as he,h as ge,k as G,m as _e,v as ve,w as ye,x as be}from"./index-BMAblAKQ.js";import{r as xe,t as Se}from"./card-B0y1i_2D.js";import{i as Ce,n as we,r as Te,t as Ee}from"./branch-state-badge-CcAq2Igv.js";var K=e(f(),1),q=n(),J=`Popover`,[De,Oe]=re(J,[R]),Y=R(),[ke,X]=De(J),Ae=e=>{let{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!1}=e,s=Y(t),c=K.useRef(null),[l,u]=K.useState(!1),[d,f]=j({prop:r,defaultProp:i??!1,onChange:a,caller:J});return(0,q.jsx)(oe,{...s,children:(0,q.jsx)(ke,{scope:t,contentId:ie(),triggerRef:c,open:d,onOpenChange:f,onOpenToggle:K.useCallback(()=>f(e=>!e),[f]),hasCustomAnchor:l,onCustomAnchorAdd:K.useCallback(()=>u(!0),[]),onCustomAnchorRemove:K.useCallback(()=>u(!1),[]),modal:o,children:n})})};Ae.displayName=J;var je=`PopoverAnchor`,Me=K.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=X(je,n),a=Y(n),{onCustomAnchorAdd:o,onCustomAnchorRemove:s}=i;return K.useEffect(()=>(o(),()=>s()),[o,s]),(0,q.jsx)(B,{...a,...r,ref:t})});Me.displayName=je;var Ne=`PopoverTrigger`,Z=K.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=X(Ne,n),a=Y(n),o=D(t,i.triggerRef),s=(0,q.jsx)(k.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":i.open,"aria-controls":i.contentId,"data-state":Ke(i.open),...r,ref:o,onClick:A(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?s:(0,q.jsx)(B,{asChild:!0,...a,children:s})});Z.displayName=Ne;var Q=`PopoverPortal`,[Pe,Fe]=De(Q,{forceMount:void 0}),Ie=e=>{let{__scopePopover:t,forceMount:n,children:r,container:i}=e,a=X(Q,t);return(0,q.jsx)(Pe,{scope:t,forceMount:n,children:(0,q.jsx)(M,{present:n||a.open,children:(0,q.jsx)(P,{asChild:!0,container:i,children:r})})})};Ie.displayName=Q;var $=`PopoverContent`,Le=K.forwardRef((e,t)=>{let n=Fe($,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,a=X($,e.__scopePopover);return(0,q.jsx)(M,{present:r||a.open,children:a.modal?(0,q.jsx)(ze,{...i,ref:t}):(0,q.jsx)(Be,{...i,ref:t})})});Le.displayName=$;var Re=O(`PopoverContent.RemoveScroll`),ze=K.forwardRef((e,t)=>{let n=X($,e.__scopePopover),r=K.useRef(null),i=D(t,r),a=K.useRef(!1);return K.useEffect(()=>{let e=r.current;if(e)return ae(e)},[]),(0,q.jsx)(F,{as:Re,allowPinchZoom:!0,children:(0,q.jsx)(Ve,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:A(e.onCloseAutoFocus,e=>{e.preventDefault(),a.current||n.triggerRef.current?.focus()}),onPointerDownOutside:A(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;a.current=t.button===2||n},{checkForDefaultPrevented:!1}),onFocusOutside:A(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),Be=K.forwardRef((e,t)=>{let n=X($,e.__scopePopover),r=K.useRef(!1),i=K.useRef(!1);return(0,q.jsx)(Ve,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})}),Ve=K.forwardRef((e,t)=>{let{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,disableOutsidePointerEvents:o,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onInteractOutside:u,...d}=e,f=X($,n),p=Y(n);return L(),(0,q.jsx)(N,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,q.jsx)(I,{asChild:!0,disableOutsidePointerEvents:o,onInteractOutside:u,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onDismiss:()=>f.onOpenChange(!1),children:(0,q.jsx)(z,{"data-state":Ke(f.open),role:`dialog`,id:f.contentId,...p,...d,ref:t,style:{...d.style,"--radix-popover-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-popover-content-available-width":`var(--radix-popper-available-width)`,"--radix-popover-content-available-height":`var(--radix-popper-available-height)`,"--radix-popover-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-popover-trigger-height":`var(--radix-popper-anchor-height)`}})})})}),He=`PopoverClose`,Ue=K.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=X(He,n);return(0,q.jsx)(k.button,{type:`button`,...r,ref:t,onClick:A(e.onClick,()=>i.onOpenChange(!1))})});Ue.displayName=He;var We=`PopoverArrow`,Ge=K.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=Y(n);return(0,q.jsx)(se,{...i,...r,ref:t})});Ge.displayName=We;function Ke(e){return e?`open`:`closed`}var qe=Ae,Je=Z,Ye=Ie,Xe=Le;function Ze({...e}){return(0,q.jsx)(qe,{"data-slot":`popover`,...e})}function Qe({...e}){return(0,q.jsx)(Je,{"data-slot":`popover-trigger`,...e})}function $e({className:e,align:t=`center`,sideOffset:n=4,...r}){return(0,q.jsx)(Ye,{children:(0,q.jsx)(Xe,{"data-slot":`popover-content`,align:t,sideOffset:n,className:l(`z-50 flex w-72 origin-(--radix-popover-content-transform-origin) flex-col gap-2.5 rounded-lg bg-popover p-2.5 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,e),...r})})}function et({className:e,...t}){return(0,q.jsx)(`div`,{"data-slot":`popover-header`,className:l(`flex flex-col gap-0.5 text-sm`,e),...t})}function tt({className:e,...t}){return(0,q.jsx)(`div`,{"data-slot":`popover-title`,className:l(`font-medium`,e),...t})}function nt({agent:e,childAgents:n=[],parentAgent:i}){let o=ee();v(e=>e.set);let s=v(e=>e.switchView),l=v(e=>e.openInboxThread),d=v(e=>e.openAgentDetail),f=v(e=>e.openPairInvite),y=v(e=>e.openRename),b=v(e=>e.openConfirm),D=v(e=>e.doAgentAction),O=v(e=>e.doDeleteAgent),k=v(e=>e.openFilesForAgent),re=v(e=>e.workspaceAction),A=v(e=>e.openWorkspaceFocus),{terminalOpen:j,terminalTarget:M,terminalOpening:N,openTerminal:P,closeTerminal:F}=Ce(e.id),I=de(),L=te(o,e,ue(e),I[e.id]||null),ie=T(e,`shutdown`),ae=T(e,`compact`),R=T(e,`clearContext`),oe=!!(e.providerCapabilities?.terminal?.live?.read||e.providerCapabilities?.terminal?.attach?.create),se=!!e.providerCapabilities?.terminal?.live?.write,z=ne(e),B=i?E(i):e.spawnedBy,W=n.length>0;return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Se,{className:`group hover:border-zinc-600 transition-colors cursor-pointer`,onClick:()=>d(e),children:(0,q.jsxs)(xe,{className:`p-4`,children:[(0,q.jsxs)(`div`,{className:`flex items-start gap-2.5 mb-2.5`,children:[(0,q.jsx)(U,{agent:e,now:o,className:`mt-0.5`}),(0,q.jsx)(G,{agent:e}),(0,q.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1 min-w-0`,children:[(0,q.jsx)(we,{profile:Te(e),className:`text-sm shrink-0`}),(0,q.jsx)(`span`,{className:`text-sm font-medium truncate`,children:E(e)})]}),(0,q.jsx)(`div`,{className:`text-xs mt-0.5 ${x(L.tone)}`,children:L.label}),typeof e.meta?.cwd==`string`&&e.meta.cwd&&(0,q.jsx)(`button`,{type:`button`,className:`mt-0.5 block max-w-full truncate font-mono text-[10px] text-muted-foreground hover:text-foreground`,title:`Open ${e.meta.cwd} in Files`,onClick:t=>{t.stopPropagation(),k(e)},children:C(e.meta.cwd)}),(0,q.jsx)(ve,{agent:e,className:`mt-1`})]}),e.branchState&&e.branchWorkspaceId&&(0,q.jsx)(Ee,{state:e.branchState,className:`mt-0.5 shrink-0`,onClick:t=>{t.stopPropagation(),A(e.branchWorkspaceId)}})]}),L.badges.length>0&&(0,q.jsx)(`div`,{className:`flex flex-wrap gap-1 mb-2`,children:L.badges.map(e=>(0,q.jsx)(`span`,{className:`text-[10px] px-1.5 py-0.5 rounded-full font-medium ${e.className}`,children:e.label},e.label))}),(W||e.spawnedBy&&B)&&(0,q.jsxs)(`div`,{className:`mb-2 flex flex-wrap gap-1.5`,onClick:e=>e.stopPropagation(),children:[W&&(0,q.jsxs)(Ze,{children:[(0,q.jsx)(Qe,{asChild:!0,children:(0,q.jsxs)(`button`,{type:`button`,className:`inline-flex h-6 max-w-full items-center gap-1.5 rounded-full border border-sky-500/30 bg-sky-500/10 px-2 text-[10px] font-medium text-sky-300 transition-colors hover:bg-sky-500/15`,title:`${n.length} live child ${n.length===1?`agent`:`agents`}`,children:[(0,q.jsx)(g,{className:`h-3 w-3`}),(0,q.jsx)(`span`,{children:n.length}),(0,q.jsx)(`span`,{className:`flex -space-x-1`,children:n.slice(0,4).map(e=>(0,q.jsx)(U,{agent:e,now:o,className:`h-2 w-2 ring-1 ring-background`},e.id))})]})}),(0,q.jsxs)($e,{align:`start`,className:`w-80`,onClick:e=>e.stopPropagation(),children:[(0,q.jsx)(et,{children:(0,q.jsx)(tt,{children:`Team`})}),(0,q.jsx)(`div`,{className:`space-y-1.5`,children:n.map(e=>(0,q.jsxs)(`div`,{className:`rounded-md border border-border bg-card/60 p-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,q.jsx)(U,{agent:e,now:o,className:`mt-1`}),(0,q.jsx)(G,{agent:e}),(0,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,q.jsx)(`div`,{className:`truncate text-xs font-medium`,children:E(e)}),(0,q.jsx)(`div`,{className:`truncate text-[10px] text-muted-foreground`,children:e.providerCapabilities?.model?.alias||e.providerCapabilities?.model?.id||e.providerCapabilities?.model?.provider||e.status})]}),(0,q.jsx)(V,{variant:`outline`,className:`h-4 px-1.5 text-[9px]`,children:e.status})]}),(0,q.jsxs)(`div`,{className:`mt-2 flex gap-1`,children:[(0,q.jsx)(H,{size:`xs`,variant:`outline`,onClick:()=>d(e),children:`Open`}),(0,q.jsxs)(H,{size:`xs`,variant:`ghost`,onClick:()=>{l(e.id),s(`chat`)},children:[(0,q.jsx)(h,{className:`h-3 w-3`}),`Chat`]})]})]},e.id))})]})]}),e.spawnedBy&&B&&(0,q.jsx)(V,{variant:`outline`,className:`max-w-full text-[10px] text-muted-foreground`,children:(0,q.jsxs)(`span`,{className:`truncate`,children:[`spawned by `,B]})})]}),(e.tags.length>0||w(e.capabilities).length>0)&&(0,q.jsxs)(`div`,{className:`flex flex-wrap gap-1 mb-2`,children:[e.tags.slice(0,3).map(e=>(0,q.jsx)(V,{variant:`outline`,className:`text-[9px] px-1 py-0 h-4`,children:e},e)),w(e.capabilities).slice(0,2).map(e=>(0,q.jsx)(V,{variant:`secondary`,className:`text-[9px] px-1 py-0 h-4`,children:e},e))]}),(0,q.jsxs)(`div`,{className:`space-y-2 mb-2`,children:[(0,q.jsx)(le,{agent:e}),(0,q.jsx)(fe,{agent:e,compact:!0}),(0,q.jsx)(ye,{agent:e})]}),(0,q.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:e.id!==`user`&&e.id!==`system`&&S(o,e.lastSeen)}),(0,q.jsxs)(`div`,{className:`flex gap-1 mt-2.5 opacity-100 sm:opacity-0 sm:group-hover:opacity-100 transition-opacity`,onClick:e=>e.stopPropagation(),children:[(0,q.jsx)(ce,{value:e.id,label:`Copy agent ID`,size:`icon`,className:`h-7 w-7`,iconClassName:`w-3 h-3`}),(0,q.jsx)(H,{size:`icon`,variant:`ghost`,className:`h-7 w-7`,title:`Chat`,onClick:()=>{l(e.id),s(`chat`)},children:(0,q.jsx)(h,{className:`w-3 h-3`})}),(0,q.jsx)(H,{size:`icon`,variant:`ghost`,className:`h-7 w-7`,title:`Pair`,onClick:()=>f(e.id),children:(0,q.jsx)(m,{className:`w-3 h-3`})}),(0,q.jsx)(H,{size:`icon`,variant:`ghost`,className:`h-7 w-7`,title:`Rename`,onClick:()=>y(e),children:(0,q.jsx)(a,{className:`w-3 h-3`})}),oe&&(0,q.jsx)(H,{size:`icon`,variant:`ghost`,className:`h-7 w-7`,title:`Terminal`,disabled:N,onClick:()=>void P(),children:(0,q.jsx)(u,{className:`w-3 h-3`})}),(e.branchState===`changes`||e.branchState===`idle`)&&e.branchWorkspaceId&&(0,q.jsx)(H,{size:`icon`,variant:`ghost`,className:`h-7 w-7 text-amber-400 hover:text-amber-300`,title:`Mark workspace ready — hand off to the auto-merge`,onClick:()=>b(`Mark Workspace Ready`,`Mark ${E(e)}'s branch ready to land? The relay auto-merge will rebase and land it.`,()=>re(e.branchWorkspaceId,`ready`)),children:(0,q.jsx)(r,{className:`w-3 h-3`})}),ae&&(0,q.jsx)(H,{size:`icon`,variant:`ghost`,className:`h-7 w-7`,title:`Compact`,onClick:()=>b(`Compact Agent`,`Compact context for ${E(e)}?`,()=>D(e,`compact`,`agents-grid`)),children:(0,q.jsx)(t,{className:`w-3 h-3`})}),R&&(0,q.jsx)(H,{size:`icon`,variant:`ghost`,className:`h-7 w-7`,title:`Clear Context`,onClick:()=>b(`Clear Context`,`Clear context for ${E(e)}?`,()=>D(e,`clearContext`,`agents-grid`)),children:(0,q.jsx)(c,{className:`w-3 h-3`})}),ie&&(0,q.jsx)(H,{size:`icon`,variant:`ghost`,className:`h-7 w-7 text-red-400 hover:text-red-300`,title:`Shutdown`,onClick:()=>b(`Shutdown Agent`,`Shutdown ${E(e)}?`,()=>D(e,`shutdown`,`agents-grid`)),children:(0,q.jsx)(_,{className:`w-3 h-3`})}),z&&(0,q.jsx)(H,{size:`icon`,variant:`ghost`,className:`h-7 w-7 text-red-400 hover:text-red-300`,title:`Forget stale agent`,onClick:()=>b(`Forget Agent`,`Forget ${E(e)}?`,()=>O(e.id)),children:(0,q.jsx)(p,{className:`w-3 h-3`})})]})]})}),M&&(0,q.jsx)(be,{open:j,onOpenChange:F,orchestratorId:M.orchestratorId,session:M.session,interactive:M.interactive||se})]})}function rt(){let e=v(e=>e.agentPresetFilter),t=v(e=>e.agentStatusFilter),n=v(e=>e.agentTagFilter),r=v(e=>e.agentHostFilter),a=v(e=>e.agentSort),c=v(e=>e.agentSortDir),l=v(e=>e.showOffline),u=v(e=>e.set),f=v(e=>e.openAgentSpawn),p=v(e=>e.agentsById),m=ee(),h=pe(),g=me(),_=W(),x=_e(h,m),S=he(h,m),C=e||t||n||r;function w(){u({agentPresetFilter:``,agentStatusFilter:``,agentTagFilter:``,agentHostFilter:``})}function T(){u({agentSortDir:c===`asc`?`desc`:`asc`})}return(0,q.jsxs)(`div`,{className:`space-y-4`,children:[(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,q.jsxs)(`select`,{value:e,onChange:e=>u({agentPresetFilter:e.target.value}),className:`h-8 rounded-md border border-border bg-card text-sm px-2 text-foreground`,children:[(0,q.jsx)(`option`,{value:``,children:`All agents`}),(0,q.jsx)(`option`,{value:`active`,children:`Active`}),b().map(e=>(0,q.jsx)(`option`,{value:e,children:y(e)},e)),(0,q.jsx)(`option`,{value:`paired`,children:`Paired`}),(0,q.jsx)(`option`,{value:`unpaired`,children:`Unpaired`}),(0,q.jsx)(`option`,{value:`offline_stale`,children:`Offline / Stale`})]}),(0,q.jsxs)(`select`,{value:t,onChange:e=>u({agentStatusFilter:e.target.value}),className:`h-8 rounded-md border border-border bg-card text-sm px-2 text-foreground`,children:[(0,q.jsx)(`option`,{value:``,children:`Any status`}),(0,q.jsx)(`option`,{value:`online`,children:`Online`}),(0,q.jsx)(`option`,{value:`idle`,children:`Idle`}),(0,q.jsx)(`option`,{value:`busy`,children:`Busy`}),(0,q.jsx)(`option`,{value:`offline`,children:`Offline`}),(0,q.jsx)(`option`,{value:`starting`,children:`Starting`})]}),g.length>0&&(0,q.jsxs)(`select`,{value:n,onChange:e=>u({agentTagFilter:e.target.value}),className:`h-8 rounded-md border border-border bg-card text-sm px-2 text-foreground`,children:[(0,q.jsx)(`option`,{value:``,children:`Any tag`}),g.map(e=>(0,q.jsx)(`option`,{value:e,children:e},e))]}),_.length>1&&(0,q.jsxs)(`select`,{value:r,onChange:e=>u({agentHostFilter:e.target.value}),className:`h-8 rounded-md border border-border bg-card text-sm px-2 text-foreground`,children:[(0,q.jsx)(`option`,{value:``,children:`Any host`}),_.map(e=>(0,q.jsx)(`option`,{value:e,children:e},e))]}),(0,q.jsxs)(`select`,{value:a,onChange:e=>u({agentSort:e.target.value}),className:`h-8 rounded-md border border-border bg-card text-sm px-2 text-foreground`,children:[(0,q.jsx)(`option`,{value:`status`,children:`Sort: Status`}),(0,q.jsx)(`option`,{value:`name`,children:`Sort: Name`}),(0,q.jsx)(`option`,{value:`lastSeen`,children:`Sort: Last seen`}),(0,q.jsx)(`option`,{value:`created`,children:`Sort: Created`})]}),(0,q.jsx)(H,{size:`icon`,variant:`outline`,className:`h-8 w-8`,title:`Toggle sort direction`,onClick:T,children:c===`asc`?(0,q.jsx)(o,{className:`w-3.5 h-3.5`}):(0,q.jsx)(i,{className:`w-3.5 h-3.5`})}),(0,q.jsxs)(`label`,{className:`flex items-center gap-1.5 text-sm text-muted-foreground cursor-pointer select-none`,children:[(0,q.jsx)(`input`,{type:`checkbox`,checked:l,onChange:e=>u({showOffline:e.target.checked}),className:`rounded`}),`Show offline`]}),C&&(0,q.jsxs)(H,{size:`sm`,variant:`ghost`,className:`h-8 text-muted-foreground hover:text-foreground gap-1`,onClick:w,children:[(0,q.jsx)(d,{className:`w-3 h-3`}),`Clear filters`]}),(0,q.jsx)(`div`,{className:`ml-auto`,children:(0,q.jsxs)(H,{size:`sm`,onClick:f,className:`gap-1`,children:[(0,q.jsx)(s,{className:`w-3.5 h-3.5`}),`Spawn`]})})]}),S.length===0?(0,q.jsx)(`div`,{className:`text-center py-16 text-muted-foreground text-sm`,children:`No agents match the current filters.`}):(0,q.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-4 gap-3`,children:S.map(e=>(0,q.jsx)(nt,{agent:e,parentAgent:e.spawnedBy?p[e.spawnedBy]??null:null,childAgents:ge(x.get(e.id)??[])},e.id))})]})}export{rt as AgentsView};
|
|
2
|
-
//# sourceMappingURL=agents-CWCbBuq6.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./chunk-CilyBKbf.js";import{$n as t,At as n,Zn as r,er as i,fr as a,h as o,o as s,un as c,vn as l}from"./lucide-react-DmbfpRvJ.js";import{t as u}from"./store-Du8k5mLJ.js";var d=e(a(),1);function f(e){let t=u(e=>e.showError),[n,r]=(0,d.useState)(!1),[a,o]=(0,d.useState)(null),[s,c]=(0,d.useState)(!1);async function l(){if(!(!e||s)){c(!0);try{o(await i(`POST`,`/agents/`+encodeURIComponent(e)+`/terminal-session`)),r(!0)}catch(e){t(`Terminal Failed`,e.message)}finally{c(!1)}}}function f(t){if(t){r(!0);return}r(!1);let n=a;o(null),e&&n?.mode===`guest`&&i(`DELETE`,`/agents/`+encodeURIComponent(e)+`/terminal-session/`+encodeURIComponent(n.session)).catch(()=>{})}return{terminalOpen:n,terminalTarget:a,terminalOpening:s,openTerminal:l,closeTerminal:f}}var p=t(),m=`•`;function h(e){return u(t=>e&&t.agentProfiles.find(t=>t.name===e)?.icon?.trim()||null)}function g(e){return typeof e?.meta?.profile==`string`?e.meta.profile:void 0}function _({profile:e,className:t,title:n}){let i=h(e),a=n??(e?`Profile: ${e}`:`No profile`);return(0,p.jsx)(`span`,{role:`img`,"aria-label":a,title:a,className:r(`inline-flex items-center justify-center leading-none select-none`,!i&&`text-muted-foreground/70`,t),children:i??m})}var v={idle:{label:`idle`,tip:`Branch worktree — nothing to land yet.`,className:`bg-zinc-500/10 text-zinc-400 border-zinc-500/20`,Icon:c},changes:{label:`changes`,tip:`Unlanded work in this branch — use "Mark workspace ready" to land it.`,className:`bg-amber-500/10 text-amber-400 border-amber-500/20`,Icon:n},ready:{label:`ready`,tip:`Handed off — the relay auto-merge will land it (~2 min sweep).`,className:`bg-blue-500/10 text-blue-400 border-blue-500/20`,Icon:l},steward:{label:`steward`,tip:`Under reconciliation — a steward is landing it. No action needed.`,className:`bg-orange-500/10 text-orange-400 border-orange-500/20`,Icon:s},blocked:{label:`blocked`,tip:`Escalated — the auto-merge/steward path is stuck. Needs human attention.`,className:`bg-red-500/10 text-red-400 border-red-500/20`,Icon:o}};function y({state:e,onClick:t,iconOnly:n=!1,className:i}){let a=v[e],{Icon:o}=a,s=!!t,c=s?`${a.tip} Click to open this workspace.`:a.tip;return(0,p.jsxs)(`span`,{role:s?`button`:void 0,tabIndex:s?0:void 0,title:c,onClick:t,onKeyDown:s?e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t?.(e))}:void 0,className:r(`inline-flex items-center gap-1 rounded-full border px-1.5 py-0.5 text-[10px] font-medium leading-none`,a.className,s&&`cursor-pointer hover:brightness-125 focus:outline-none focus:ring-1 focus:ring-current`,i),children:[(0,p.jsx)(o,{className:`h-2.5 w-2.5 shrink-0`}),!n&&(0,p.jsx)(`span`,{children:a.label})]})}export{f as i,_ as n,g as r,y as t};
|
|
2
|
-
//# sourceMappingURL=branch-state-badge-CcAq2Igv.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"./chunk-CilyBKbf.js";import{$n as e,Zn as t,fr as n}from"./lucide-react-DmbfpRvJ.js";n();var r=e();function i({className:e,size:n=`default`,...i}){return(0,r.jsx)(`div`,{"data-slot":`card`,"data-size":n,className:t(`group/card flex flex-col gap-4 overflow-hidden rounded-xl bg-card py-4 text-sm text-card-foreground ring-1 ring-foreground/10 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl`,e),...i})}function a({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`card-header`,className:t(`group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3`,e),...n})}function o({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`card-title`,className:t(`font-heading text-base leading-snug font-medium group-data-[size=sm]/card:text-sm`,e),...n})}function s({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`card-description`,className:t(`text-sm text-muted-foreground`,e),...n})}function c({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`card-action`,className:t(`col-start-2 row-span-2 row-start-1 self-start justify-self-end`,e),...n})}function l({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`card-content`,className:t(`px-4 group-data-[size=sm]/card:px-3`,e),...n})}function u({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`card-footer`,className:t(`flex items-center rounded-b-xl border-t bg-muted/50 p-4 group-data-[size=sm]/card:p-3`,e),...n})}export{u as a,s as i,c as n,a as o,l as r,o as s,i as t};
|
|
2
|
-
//# sourceMappingURL=card-B0y1i_2D.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./chunk-CilyBKbf.js";import{$ as t,$n as n,$t as r,A as i,Bn as a,Bt as o,C as s,Cn as c,G as l,Gn as u,Ht as d,In as f,J as p,Jn as m,Lt as h,Nt as g,Sn as _,Un as v,V as y,Xt as b,Yn as x,Zn as S,Zt as C,_ as w,a as T,at as E,bn as D,c as ee,ct as te,er as ne,et as O,fn as re,fr as ie,ir as ae,k as oe,kt as se,l as ce,lt as le,mt as ue,nt as de,pt as fe,qt as pe,r as me,rn as he,ur as ge,v as k,wn as _e,xn as ve,yn as ye,z as be}from"./lucide-react-DmbfpRvJ.js";import{t as xe}from"./react-dom-jQ4Vs380.js";import{_ as Se,a as Ce,f as we,h as Te,o as Ee,t as A,v as De,y as Oe}from"./store-Du8k5mLJ.js";import{g as ke,h as Ae,o as je,p as Me}from"./types-DSwhOFcJ.js";import{A as Ne,E as Pe,K as j,M as Fe,W as Ie,X as Le,Y as Re,Z as ze,a as Be,d as Ve,h as He,k as Ue,o as We,q as Ge,r as Ke,v as qe,z as Je}from"./display-_5kFrHJh.js";import{t as Ye}from"./badge-kdQDWO6e.js";import{t as M}from"./button-BKFvNXa3.js";import{t as Xe}from"./input-DfN6sUbX.js";import{t as Ze}from"./copy-button-aLaiAkv2.js";import{A as Qe,C as $e,D as et,E as tt,F as nt,I as rt,L as it,M as at,O as ot,R as st,T as ct,U as lt,X as ut,j as dt,k as ft,l as pt,n as mt,p as ht,r as gt,s as _t,t as vt,x as yt,z as bt}from"./index-BMAblAKQ.js";import{t as xt}from"./use-keyboard-viewport-Dw2CHZ50.js";import{C as St,E as Ct,S as wt,T as Tt,_ as Et,a as Dt,b as Ot,c as kt,d as At,f as jt,g as Mt,h as Nt,i as Pt,l as Ft,m as It,n as Lt,o as Rt,p as zt,r as Bt,s as Vt,t as Ht,u as Ut,v as Wt,w as Gt,x as Kt,y as qt}from"./MessageBubble-CFujR6_L.js";import{i as Jt,n as Yt,r as Xt,t as Zt}from"./branch-state-badge-CcAq2Igv.js";import{n as Qt,t as $t}from"./PlanGraphPanel-BfxvqmNS.js";var N=e(ie(),1);function en(e,t,n,r,i){if(i.includes(e))return!1;if(r.includes(e)||n)return!0;let a=t[e];return!!(a&&je(a.spawnedBy??``))}function tn(){let e=A(e=>e.agents),t=A(e=>e.agentsById),n=A(e=>e.showBuiltIns),r=A(e=>e.showOffline),i=A(e=>e.chatAgentSearch),a=A(e=>e.chatAgentProviderFilter),o=A(e=>e.chatAgentStatusFilter),s=A(e=>e.chatAgentTagFilter),c=A(e=>e.chatAgentCapFilter),l=A(e=>e.chatAgentHostFilter),u=A(e=>e.chatAgentSort),d=A(e=>e.chatAgentSortDir),f=A(e=>e.managedPolicies),p=A(e=>e.feedObserveAll),m=A(e=>e.coordinatorFollows),h=A(e=>e.coordinatorMutes),g=lt();return(0,N.useMemo)(()=>{let _=new Set(g.map(e=>e.peer)),v=Le(e,n,f);if(r||(v=v.filter(e=>e.status!==`offline`)),v=p?v.filter(e=>!h.includes(e.id)):v.filter(e=>en(e.id,t,_.has(e.id),m,h)),i){let e=i.toLowerCase();v=v.filter(t=>t.id.toLowerCase().includes(e)||(t.name||``).toLowerCase().includes(e)||(t.label||``).toLowerCase().includes(e)||(t.tags||[]).some(t=>t.toLowerCase().includes(e))||(t.capabilities||[]).some(t=>t.toLowerCase().includes(e)))}a&&(v=v.filter(e=>We(e)===a)),o&&(v=v.filter(e=>e.status===o)),s&&(v=v.filter(e=>(e.tags||[]).includes(s))),c&&(v=v.filter(e=>(e.capabilities||[]).includes(c))),l&&(v=v.filter(e=>(e.machine||``)===l));let y=d===`desc`?-1:1;return[...v].sort((e,t)=>u===`name`?Ve(e).localeCompare(Ve(t))*y:u===`lastSeen`?Nt(Ge(e.lastSeen),Ge(t.lastSeen),y)||Ve(e).localeCompare(Ve(t)):((ze[e.status]??9)-(ze[t.status]??9))*y||Ve(e).localeCompare(Ve(t)))},[e,t,n,r,f,i,a,o,s,c,l,u,d,p,m,h,g])}var P=n(),nn=[{re:/`([^`]+)`/,recurse:!1,wrap:(e,t)=>(0,P.jsx)(`code`,{className:`rounded bg-muted px-1 font-mono text-[0.9em]`,children:e},t)},{re:/\*\*([^*]+)\*\*/,recurse:!0,wrap:(e,t)=>(0,P.jsx)(`strong`,{className:`font-semibold text-foreground/90`,children:e},t)},{re:/__([^_]+)__/,recurse:!0,wrap:(e,t)=>(0,P.jsx)(`strong`,{className:`font-semibold text-foreground/90`,children:e},t)},{re:/~~([^~]+)~~/,recurse:!0,wrap:(e,t)=>(0,P.jsx)(`s`,{children:e},t)},{re:/\*([^*]+)\*/,recurse:!0,wrap:(e,t)=>(0,P.jsx)(`em`,{children:e},t)},{re:/_([^_]+)_/,recurse:!0,wrap:(e,t)=>(0,P.jsx)(`em`,{children:e},t)},{re:/\[([^\]]+)\]\([^)]+\)/,recurse:!0,wrap:(e,t)=>(0,P.jsx)(`span`,{className:`underline decoration-dotted underline-offset-2`,children:e},t)}];function rn(e,t=`i`){let n=null;for(let t of nn){let r=t.re.exec(e);r&&r[1]&&(n===null||r.index<n.index)&&(n={index:r.index,length:r[0].length,inner:r[1],pattern:t})}if(!n)return[e];let r=[];n.index>0&&r.push(e.slice(0,n.index));let i=n.pattern.recurse?rn(n.inner,`${t}x`):n.inner;r.push(n.pattern.wrap(i,`${t}m`));let a=e.slice(n.index+n.length);return a&&r.push(...rn(a,`${t}r`)),r}function an({threads:e,onSelectAgent:t}){let n=A(e=>e.set),r=A(e=>e.openInboxThread),o=A(e=>e.openAgentSpawn),l=A(e=>e.selectedInboxThread),u=A(e=>e.chatAgentSearch),d=A(e=>e.chatAgentSort),p=A(e=>e.chatAgentSortDir),h=A(e=>e.chatAgentProviderFilter),_=A(e=>e.chatAgentStatusFilter),b=A(e=>e.chatAgentTagFilter),x=A(e=>e.chatAgentCapFilter),C=A(e=>e.chatAgentHostFilter),w=A(e=>e.chatAgentGroupBy),T=A(e=>e.chatAgentFiltersCollapsed),E=A(e=>e.agentsById),ee=A(e=>e.chatCollapsedChildren),te=A(e=>e.toggleChatChildrenCollapsed),ne=A(e=>e.feedObserveAll),O=A(e=>e.setFeedObserveAll),re=A(e=>e.coordinatorFollows),ie=A(e=>e.coordinatorMutes),ae=A(e=>e.toggleCoordinatorFollow),oe=A(e=>e.toggleCoordinatorMute),se=we(),ce=tn(),le=(0,N.useMemo)(()=>new Set(ee),[ee]),ue=(0,N.useMemo)(()=>{let t=new Map;for(let n of e)t.set(n.peer,n);return t},[e]),de=(0,N.useMemo)(()=>{if(d!==`lastMessage`)return ce;let e=p===`desc`?-1:1;return[...ce].sort((t,n)=>Nt(St(ue.get(t.id)),St(ue.get(n.id)),e)||Ve(t).localeCompare(Ve(n)))},[ce,d,p,ue]),fe=(0,N.useMemo)(()=>[...new Set(ce.flatMap(e=>e.tags||[]))],[ce]),me=(0,N.useMemo)(()=>[...new Set(ce.flatMap(e=>Re(e.capabilities||[])))],[ce]),ge=ut(),_e=(0,N.useMemo)(()=>{if(w!==`project`)return null;let e=new Map;for(let t of de){let n=et(t)||`No project`,r=e.get(n);r?r.push(t):e.set(n,[t])}return[...e.entries()].sort((e,t)=>e[0].localeCompare(t[0]))},[de,w]),be=[h,_,b,x,C].filter(Boolean).length,xe=(0,N.useMemo)(()=>ht(de,E,se),[de,E,se]);function Se(e){r(e,ue.get(e)?.messages),t?.(e)}function Ce(e){let{agent:t}=e;if(e.depth===1&&e.parent&&le.has(e.parent.id))return null;let n=ue.get(t.id),r=n?.attention.unread||0,i=Ke(t),o=n?.previewMessage,s=Et(n)||St(n),u=l===t.id,d=ot(t),f=et(t),p=d.Icon,m=e.parent?Ve(e.parent):t.spawnedBy,h=e.children.length,g=e.depth===0&&h>0,_=le.has(t.id),v=ie.includes(t.id),y=re.includes(t.id);return(0,P.jsxs)(`li`,{className:S(`relative group`,e.depth===1&&`pl-4`),children:[e.depth===1&&(0,P.jsx)(`div`,{className:`absolute left-2 top-3.5 text-muted-foreground/55`,children:(0,P.jsx)(he,{className:`h-3.5 w-3.5`})}),(0,P.jsxs)(`div`,{className:`absolute right-1.5 top-1.5 z-10 hidden items-center gap-0.5 rounded-md border border-border/60 bg-popover/95 px-0.5 py-0.5 shadow-sm backdrop-blur-sm group-hover:flex`,children:[(0,P.jsx)(`button`,{type:`button`,title:y?`Unfollow (stop pinning into scoped view)`:`Follow (keep visible even in scoped view)`,onClick:e=>{e.stopPropagation(),ae(t.id)},className:S(`rounded p-1 transition-colors`,y?`text-primary bg-primary/15 hover:bg-primary/25`:`text-muted-foreground hover:text-foreground hover:bg-muted`),children:(0,P.jsx)(k,{className:`h-3 w-3`})}),(0,P.jsx)(`button`,{type:`button`,title:v?`Unmute`:`Mute (hide from all views)`,onClick:e=>{e.stopPropagation(),oe(t.id)},className:S(`rounded p-1 transition-colors`,v?`text-orange-400 bg-orange-500/15 hover:bg-orange-500/25`:`text-muted-foreground hover:text-foreground hover:bg-muted`),children:(0,P.jsx)(a,{className:`h-3 w-3`})})]}),(0,P.jsxs)(`button`,{className:S(`w-full text-left px-3 py-2.5 flex items-start gap-2.5 hover:bg-muted/50 transition-colors border-b border-border/50`,e.depth===1&&`bg-muted/15`,u&&`bg-muted/60`,v&&`opacity-50`),onClick:()=>Se(t.id),children:[(0,P.jsxs)(`div`,{className:`relative shrink-0 mt-0.5`,children:[(0,P.jsx)(ft,{agent:t}),(0,P.jsx)(Qe,{agent:t,now:se,className:`absolute -bottom-0.5 -right-0.5 w-2 h-2`})]}),(0,P.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,P.jsxs)(`div`,{className:`flex items-center justify-between gap-1 mb-0.5`,children:[(0,P.jsxs)(`span`,{className:`flex items-center gap-1 min-w-0`,children:[(0,P.jsx)(Yt,{profile:Xt(t),className:`text-xs shrink-0`}),(0,P.jsx)(`span`,{className:`text-xs font-medium truncate`,children:Ve(t)})]}),(0,P.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0 transition-opacity group-hover:opacity-0`,children:[y&&(0,P.jsx)(k,{className:`h-3 w-3 text-primary`,"aria-label":`Followed`}),s>0&&(0,P.jsx)(`span`,{className:`text-[10px] text-muted-foreground tabular-nums`,title:He(s),children:j(se,s)}),r>0&&(0,P.jsx)(Ye,{className:`bg-red-500 text-white text-[11px] font-semibold leading-none tabular-nums min-w-[18px] h-[18px] flex items-center justify-center shrink-0 px-1 rounded-full`,children:r}),!r&&i&&(0,P.jsx)(Ye,{className:`bg-amber-500 text-black min-w-[18px] h-[18px] flex items-center justify-center shrink-0 px-1 rounded-full`,title:`Needs response`,children:(0,P.jsx)(ye,{className:`h-3 w-3`})})]})]}),(0,P.jsxs)(`div`,{className:`flex items-center gap-1.5 mb-0.5 text-[10px] text-muted-foreground`,children:[(0,P.jsx)(`span`,{title:d.title,className:`inline-flex shrink-0`,children:(0,P.jsx)(p,{className:S(`h-3 w-3`,d.iconColor)})}),(0,P.jsx)(`span`,{className:`truncate`,children:f||d.label}),tt(t)&&(0,P.jsx)(`span`,{className:`ml-auto shrink-0`,children:(0,P.jsx)(ct,{context:t.context,expected:!0,size:18})})]}),e.depth===0&&t.spawnedBy&&m&&(0,P.jsx)(`div`,{className:`mb-0.5`,children:(0,P.jsx)(Ye,{variant:`outline`,className:`max-w-full text-[9px] h-4 px-1.5 text-muted-foreground`,children:(0,P.jsxs)(`span`,{className:`truncate`,children:[`spawned by `,m]})})}),o&&(0,P.jsxs)(`p`,{className:`text-xs text-muted-foreground truncate leading-tight`,children:[o.from===`user`?`You: `:``,rn(Fe(o).replace(/\s+/g,` `))]})]})]}),g&&(0,P.jsxs)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),te(t.id)},className:`flex w-full items-center gap-1.5 border-b border-border/50 bg-muted/20 py-1 pl-8 pr-3 text-[10px] text-muted-foreground transition-colors hover:bg-muted/40 hover:text-foreground`,"aria-expanded":!_,title:_?`Show ${h} child ${h===1?`agent`:`agents`}`:`Hide children`,children:[_?(0,P.jsx)(ve,{className:`h-3.5 w-3.5 shrink-0`}):(0,P.jsx)(c,{className:`h-3.5 w-3.5 shrink-0`}),(0,P.jsxs)(`span`,{className:`font-medium`,children:[h,` child `,h===1?`agent`:`agents`]})]})]},t.id)}return(0,P.jsxs)(`div`,{className:`flex flex-col h-full border-r border-border min-w-0`,children:[(0,P.jsxs)(`div`,{className:`p-3 border-b border-border space-y-2`,children:[(0,P.jsxs)(`div`,{className:`relative`,children:[(0,P.jsx)(i,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-muted-foreground pointer-events-none`}),(0,P.jsx)(Xe,{placeholder:`Search agents...`,value:u,onChange:e=>n({chatAgentSearch:e.target.value}),className:`pl-8 h-7 text-xs`})]}),(0,P.jsxs)(`div`,{className:`flex h-7 items-center rounded-md border border-border bg-background p-0.5 text-xs`,children:[(0,P.jsxs)(`button`,{type:`button`,onClick:()=>O(!1),title:`Show only conversations where you're in the audience (agents you spawned or messaged)`,"aria-pressed":!ne,className:S(`flex h-full flex-1 items-center justify-center gap-1.5 rounded-[5px] transition-colors`,ne?`text-muted-foreground hover:text-foreground`:`bg-primary/15 text-primary font-medium`),children:[(0,P.jsx)(g,{className:`h-3.5 w-3.5`}),`Scoped`]}),(0,P.jsxs)(`button`,{type:`button`,onClick:()=>O(!0),title:`Show every agent conversation, including agent-to-agent chatter`,"aria-pressed":ne,className:S(`flex h-full flex-1 items-center justify-center gap-1.5 rounded-[5px] transition-colors`,ne?`bg-primary/15 text-primary font-medium`:`text-muted-foreground hover:text-foreground`),children:[(0,P.jsx)(pe,{className:`h-3.5 w-3.5`}),`All`]})]}),(0,P.jsxs)(`button`,{type:`button`,onClick:()=>n({chatAgentFiltersCollapsed:!T}),className:`sm:hidden flex w-full items-center justify-between h-6 px-1.5 text-xs rounded-md border border-border bg-background text-muted-foreground`,children:[(0,P.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,P.jsx)(s,{className:`w-3.5 h-3.5`}),`Filters & sort`,be>0&&(0,P.jsx)(Ye,{className:`bg-primary/20 text-primary text-[10px] h-4 min-w-4 px-1 flex items-center justify-center`,children:be})]}),T?(0,P.jsx)(c,{className:`w-3.5 h-3.5`}):(0,P.jsx)(D,{className:`w-3.5 h-3.5`})]}),(0,P.jsxs)(`div`,{className:S(`space-y-2`,T?`hidden`:`block`,`sm:block`),children:[(0,P.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,P.jsxs)(`select`,{value:d,onChange:e=>n({chatAgentSort:e.target.value}),className:`flex-1 h-6 text-xs rounded-md border border-border bg-background px-1.5 text-foreground`,children:[(0,P.jsx)(`option`,{value:`status`,children:`By status`}),(0,P.jsx)(`option`,{value:`name`,children:`By name`}),(0,P.jsx)(`option`,{value:`lastSeen`,children:`By last seen`}),(0,P.jsx)(`option`,{value:`lastMessage`,children:`By last activity`})]}),(0,P.jsx)(M,{variant:`ghost`,size:`icon-xs`,onClick:()=>n({chatAgentSortDir:p===`asc`?`desc`:`asc`}),children:p===`asc`?(0,P.jsx)(v,{className:`w-3.5 h-3.5`}):(0,P.jsx)(m,{className:`w-3.5 h-3.5`})})]}),(0,P.jsxs)(`select`,{value:w,onChange:e=>n({chatAgentGroupBy:e.target.value}),className:`w-full h-6 text-xs rounded-md border border-border bg-background px-1.5 text-foreground`,children:[(0,P.jsx)(`option`,{value:``,children:`No grouping`}),(0,P.jsx)(`option`,{value:`project`,children:`Group by project`})]}),(0,P.jsxs)(`div`,{className:`flex gap-1`,children:[(0,P.jsxs)(`select`,{value:h,onChange:e=>n({chatAgentProviderFilter:e.target.value}),className:`flex-1 h-6 text-xs rounded-md border border-border bg-background px-1.5 text-foreground`,children:[(0,P.jsx)(`option`,{value:``,children:`All types`}),Me().map(e=>(0,P.jsx)(`option`,{value:e,children:Ae(e)},e)),(0,P.jsx)(`option`,{value:`agent`,children:`Agent`}),(0,P.jsx)(`option`,{value:`user`,children:`User`})]}),(0,P.jsxs)(`select`,{value:_,onChange:e=>n({chatAgentStatusFilter:e.target.value}),className:`flex-1 h-6 text-xs rounded-md border border-border bg-background px-1.5 text-foreground`,children:[(0,P.jsx)(`option`,{value:``,children:`All status`}),(0,P.jsx)(`option`,{value:`online`,children:`Online`}),(0,P.jsx)(`option`,{value:`idle`,children:`Idle`}),(0,P.jsx)(`option`,{value:`busy`,children:`Busy`}),(0,P.jsx)(`option`,{value:`offline`,children:`Offline`})]}),ge.length>1&&(0,P.jsxs)(`select`,{value:C,onChange:e=>n({chatAgentHostFilter:e.target.value}),className:`flex-1 h-6 text-xs rounded-md border border-border bg-background px-1.5 text-foreground`,children:[(0,P.jsx)(`option`,{value:``,children:`All hosts`}),ge.map(e=>(0,P.jsx)(`option`,{value:e,children:e},e))]})]}),(fe.length>0||me.length>0)&&(0,P.jsxs)(`div`,{className:`flex gap-1`,children:[fe.length>0&&(0,P.jsxs)(`select`,{value:b,onChange:e=>n({chatAgentTagFilter:e.target.value}),className:`flex-1 h-6 text-xs rounded-md border border-border bg-background px-1.5 text-foreground`,children:[(0,P.jsx)(`option`,{value:``,children:`All tags`}),fe.map(e=>(0,P.jsxs)(`option`,{value:e,children:[`#`,e]},e))]}),me.length>0&&(0,P.jsxs)(`select`,{value:x,onChange:e=>n({chatAgentCapFilter:e.target.value}),className:`flex-1 h-6 text-xs rounded-md border border-border bg-background px-1.5 text-foreground`,children:[(0,P.jsx)(`option`,{value:``,children:`All caps`}),me.map(e=>(0,P.jsx)(`option`,{value:e,children:e},e))]})]})]})]}),(0,P.jsxs)(`button`,{type:`button`,className:`flex w-full shrink-0 items-center gap-2.5 border-b border-border px-3 py-2 text-left transition-colors hover:bg-muted/50`,onClick:o,children:[(0,P.jsx)(`div`,{className:`flex h-7 w-7 shrink-0 items-center justify-center rounded-full border border-dashed border-primary/50 bg-primary/10 text-primary`,children:(0,P.jsx)(y,{className:`h-3.5 w-3.5`})}),(0,P.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,P.jsx)(`div`,{className:`text-xs font-medium`,children:`New Agent`}),(0,P.jsx)(`div`,{className:`truncate text-[10px] text-muted-foreground`,children:`Spawn a fresh chat agent`})]})]}),(0,P.jsx)(`div`,{className:`flex-1 overflow-y-auto`,children:de.length===0?!ne&&!u&&be===0?(0,P.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-10 text-center px-6`,children:[(0,P.jsx)(k,{className:`w-8 h-8 text-muted-foreground/40 mb-3`}),(0,P.jsx)(`p`,{className:`text-xs font-medium text-foreground/80`,children:`No conversations in your audience`}),(0,P.jsx)(`p`,{className:`mt-1 text-[11px] text-muted-foreground`,children:`Agents you spawn or message show up here.`}),(0,P.jsxs)(`button`,{type:`button`,onClick:()=>O(!0),className:`mt-3 inline-flex items-center gap-1.5 rounded-md border border-border bg-background px-2.5 py-1 text-[11px] text-muted-foreground transition-colors hover:bg-muted/50 hover:text-foreground`,children:[(0,P.jsx)(pe,{className:`h-3.5 w-3.5`}),` Show all agents`]})]}):(0,P.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-10 text-center px-4`,children:[(0,P.jsx)(f,{className:`w-8 h-8 text-muted-foreground/40 mb-2`}),(0,P.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No agents match filters`})]}):_e?_e.map(([e,t])=>(0,P.jsxs)(`div`,{children:[(0,P.jsxs)(`div`,{className:`sticky top-0 z-10 flex items-center gap-1.5 border-b border-border/50 bg-background/95 px-3 py-1 text-[10px] font-medium uppercase tracking-wide text-muted-foreground backdrop-blur`,children:[(0,P.jsx)(`span`,{className:`truncate`,children:e}),(0,P.jsx)(`span`,{className:`text-muted-foreground/50`,children:t.length})]}),(0,P.jsx)(`ul`,{children:ht(t,E,se).map(Ce)})]},e)):(0,P.jsx)(`ul`,{children:xe.map(Ce)})})]})}var on=[{name:`/reply`,source:`skill`,description:`Reply to a relay message by id`,argumentHint:`<messageId> <body>`},{name:`/message`,source:`skill`,description:`Send a relay message to an agent, label, tag, or broadcast`,argumentHint:`<target> <body>`},{name:`/pair`,source:`skill`,description:`Start or manage a two-agent pair session`},{name:`/react`,source:`skill`,description:`Add a reaction to a relay message`,argumentHint:`<messageId> <emoji>`},{name:`/read-message`,source:`skill`,description:`Fetch a full relay message by id`,argumentHint:`<messageId>`},{name:`/send-claimable`,source:`skill`,description:`Enqueue a claimable work item for one agent to claim`},{name:`/status`,source:`skill`,description:`Show this agent's relay status`},{name:`/tags`,source:`skill`,description:`List or update this agent's relay tags`},{name:`/label`,source:`skill`,description:`Read, set, or clear this agent's relay label`},{name:`/disconnect`,source:`skill`,description:`End the current relay pair session`}],sn={"/clear":{description:`Clear conversation history and free up context`},"/compact":{description:`Compact the conversation to reclaim context`,argumentHint:`[instructions]`},"/model":{description:`Switch the active model`,argumentHint:`[model]`},"/help":{description:`Show help`},"/new":{description:`Start a new thread`}};function cn(e){return[...((e?ke(e):void 0)?.slashCommands??[]).map(e=>({name:e,source:`builtin`,...sn[e]})),...on]}function ln({agentId:e,className:t}){let n=A(t=>t.presenceByAgent[e]),r=A(e=>e.usersById),i=ge(),a=(n??[]).filter(e=>e.clientId!==i);if(a.length===0)return null;let o=Array.from(new Set(a.map(e=>qe(e.userId,r)))),s=a.some(e=>e.typing),c=o.length===1?o[0]:`${o.length} viewers`,u=s?l:pe;return(0,P.jsxs)(`span`,{title:`${o.join(`, `)}${s?` · typing`:` · viewing`}`,className:S(`inline-flex items-center gap-1 rounded-full bg-muted/40 px-2 py-0.5 text-[11px] text-muted-foreground`,t),children:[(0,P.jsx)(u,{className:S(`h-3 w-3 shrink-0`,s&&`text-emerald-400`)}),(0,P.jsxs)(`span`,{className:`truncate max-w-[12ch]`,children:[c,s&&o.length===1?` is typing…`:``]})]})}function un({selectedInboxThread:e,agent:n,now:a,blockedState:s,thread:c,exportableThread:l,importedHistory:d,showBackButton:f,onBack:p,openAgentDetail:m,openWorkspaceFocus:g,voiceTtsEnabled:_,setVoiceTtsEnabled:v,canOpenTerminal:y,terminalOpening:x,handleOpenTerminal:S,canInterrupt:T,interruptAgent:E,canCompact:D,canClearContext:ne,canShutdown:O,openConfirm:ie,workspaceAction:ae,doAgentAction:oe,openFilesForAgent:ue,forkFromAgent:de,markInboxThreadUnread:fe,markInboxThreadRead:pe,exportThread:me,onOpenSearch:he}){return(0,P.jsxs)(`div`,{className:`flex items-center justify-between px-3 md:px-4 py-2.5 md:py-3 border-b border-border shrink-0`,children:[(0,P.jsxs)(`div`,{className:`flex items-center gap-2 md:gap-2.5 min-w-0`,children:[f&&(0,P.jsx)(M,{variant:`ghost`,size:`icon-sm`,onClick:p,className:`shrink-0 -ml-1`,children:(0,P.jsx)(u,{className:`w-4 h-4`})}),(0,P.jsxs)(`button`,{type:`button`,className:`flex items-center gap-2 md:gap-2.5 min-w-0 hover:opacity-80 transition-opacity`,onClick:()=>n&&m(n),disabled:!n,children:[(0,P.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,P.jsx)(ft,{agent:n}),(0,P.jsx)(Qe,{agent:n,now:a,className:`absolute -bottom-0.5 -right-0.5 w-2 h-2`})]}),(0,P.jsxs)(`div`,{className:`min-w-0 text-left`,children:[(0,P.jsxs)(`p`,{className:`flex items-center gap-1 text-sm font-medium truncate`,children:[n&&(0,P.jsx)(Yt,{profile:Xt(n),className:`shrink-0`}),(0,P.jsx)(`span`,{className:`truncate`,children:n?Ve(n):e})]}),n&&(0,P.jsxs)(`p`,{className:`text-xs text-muted-foreground truncate`,children:[s?`blocked: ${s.label}`:n.status,n.machine&&` · ${n.machine}`,typeof n.meta?.cwd==`string`&&n.meta.cwd&&` · ${Ie(n.meta.cwd,1)}`]})]})]}),n&&(0,P.jsx)($e,{agent:n,compact:!0,className:`hidden @4xl/chat:flex shrink-0`}),n&&tt(n)&&(0,P.jsx)(ct,{context:n.context,expected:!0}),n?.branchState&&n.branchWorkspaceId&&(0,P.jsx)(Zt,{state:n.branchState,className:`shrink-0`,onClick:()=>void g(n.branchWorkspaceId)}),c?.attention.unread?(0,P.jsxs)(Ye,{className:`bg-red-500/20 text-red-400 text-xs shrink-0 hidden @2xl/chat:flex`,children:[c.attention.unread,` unread`]}):null,n&&(0,P.jsx)(ln,{agentId:n.id,className:`shrink-0 hidden @3xl/chat:inline-flex`})]}),(0,P.jsx)(`div`,{className:`flex items-center gap-0.5 md:gap-1 shrink-0`,children:n&&(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(Ze,{value:n.id,label:`Copy agent ID`,size:`icon-sm`}),he&&(0,P.jsx)(M,{variant:`ghost`,size:`icon-sm`,title:`Search this chat`,onClick:he,children:(0,P.jsx)(i,{className:`w-3.5 h-3.5`})}),Oe.available&&(0,P.jsx)(M,{variant:`ghost`,size:`icon-sm`,title:_?`Speaking agent responses aloud — click to mute (engine & voice in Settings)`:`Speak agent responses aloud (active chat) — engine & voice in Settings`,className:_?`text-primary`:``,onClick:()=>v(!_),children:_?(0,P.jsx)(ce,{className:`w-3.5 h-3.5`}):(0,P.jsx)(ee,{className:`w-3.5 h-3.5`})}),y&&(0,P.jsx)(M,{variant:`ghost`,size:`icon-sm`,className:`hidden @4xl/chat:inline-flex`,disabled:x,title:`Terminal`,onClick:()=>void S(),children:(0,P.jsx)(w,{className:`w-3.5 h-3.5`})}),T&&(0,P.jsx)(M,{variant:`ghost`,size:`icon-sm`,className:`text-red-400 hover:text-red-300`,title:`Interrupt`,onClick:E,children:(0,P.jsx)(re,{className:`w-3.5 h-3.5`})}),(n.branchState===`changes`||n.branchState===`idle`)&&n.branchWorkspaceId&&(0,P.jsx)(M,{variant:`ghost`,size:`icon-sm`,className:`hidden @4xl/chat:inline-flex text-amber-400 hover:text-amber-300`,title:`Mark workspace ready — hand off to the auto-merge`,onClick:()=>ie(`Mark Workspace Ready`,`Mark ${Ve(n)}'s branch ready to land? The relay auto-merge will rebase and land it.`,()=>ae(n.branchWorkspaceId,`ready`)),children:(0,P.jsx)(o,{className:`w-3.5 h-3.5`})}),D&&(0,P.jsx)(M,{variant:`ghost`,size:`icon-sm`,className:`hidden @4xl/chat:inline-flex`,title:`Compact`,onClick:()=>ie(`Compact Agent`,`Compact context for ${Ve(n)}?`,()=>oe(n,`compact`)),children:(0,P.jsx)(t,{className:`w-3.5 h-3.5`})}),ne&&(0,P.jsx)(M,{variant:`ghost`,size:`icon-sm`,className:`hidden @4xl/chat:inline-flex`,title:`Clear context`,onClick:()=>ie(`Clear Context`,`Clear context for ${Ve(n)}?`,()=>oe(n,`clearContext`)),children:(0,P.jsx)(b,{className:`w-3.5 h-3.5`})}),O&&(0,P.jsx)(M,{variant:`ghost`,size:`icon-sm`,className:`hidden @4xl/chat:inline-flex`,title:`Shutdown`,onClick:()=>ie(`Shutdown Agent`,`Shutdown ${Ve(n)}?`,()=>oe(n,`shutdown`)),children:(0,P.jsx)(be,{className:`w-3.5 h-3.5`})}),n&&typeof n.meta?.cwd==`string`&&n.meta.cwd&&(0,P.jsx)(M,{variant:`ghost`,size:`icon-sm`,className:`hidden @4xl/chat:inline-flex`,title:`Open ${n.meta.cwd} in Files`,onClick:()=>void ue(n),children:(0,P.jsx)(h,{className:`w-3.5 h-3.5`})}),n&&c&&c.messages.length>0&&(0,P.jsx)(M,{variant:`ghost`,size:`icon-sm`,className:`hidden @4xl/chat:inline-flex`,title:`Fork — spawn new agent with this chat history`,onClick:()=>de(n.id,c.messages),children:(0,P.jsx)(se,{className:`w-3.5 h-3.5`})}),c&&(0,P.jsx)(M,{variant:`ghost`,size:`icon-sm`,className:`hidden @4xl/chat:inline-flex`,title:`Mark unread`,onClick:()=>fe(e),children:(0,P.jsx)(te,{className:`w-3.5 h-3.5`})}),c&&(0,P.jsx)(M,{variant:`ghost`,size:`icon-sm`,className:`hidden @4xl/chat:inline-flex`,title:`Mark read`,onClick:()=>pe(c.peer,c.messages),children:(0,P.jsx)(le,{className:`w-3.5 h-3.5`})}),l&&(0,P.jsx)(M,{variant:`ghost`,size:`icon-sm`,className:`hidden @4xl/chat:inline-flex`,title:`Export thread`,onClick:()=>me({...l,importedHistory:d},`json`),children:(0,P.jsx)(r,{className:`w-3.5 h-3.5`})}),(0,P.jsxs)(nt,{children:[(0,P.jsx)(bt,{asChild:!0,children:(0,P.jsx)(M,{variant:`ghost`,size:`icon-sm`,className:`@4xl/chat:hidden`,children:(0,P.jsx)(C,{className:`w-3.5 h-3.5`})})}),(0,P.jsxs)(rt,{align:`end`,children:[y&&(0,P.jsxs)(it,{disabled:x,onClick:()=>void S(),children:[(0,P.jsx)(w,{className:`w-3.5 h-3.5`}),`Terminal`]}),T&&(0,P.jsxs)(it,{onClick:E,children:[(0,P.jsx)(re,{className:`w-3.5 h-3.5`}),`Interrupt`]}),(n.branchState===`changes`||n.branchState===`idle`)&&n.branchWorkspaceId&&(0,P.jsxs)(it,{onClick:()=>ie(`Mark Workspace Ready`,`Mark ${Ve(n)}'s branch ready to land? The relay auto-merge will rebase and land it.`,()=>ae(n.branchWorkspaceId,`ready`)),children:[(0,P.jsx)(o,{className:`w-3.5 h-3.5`}),`Mark Ready`]}),D&&(0,P.jsxs)(it,{onClick:()=>ie(`Compact Agent`,`Compact context for ${Ve(n)}?`,()=>oe(n,`compact`)),children:[(0,P.jsx)(t,{className:`w-3.5 h-3.5`}),`Compact`]}),ne&&(0,P.jsxs)(it,{onClick:()=>ie(`Clear Context`,`Clear context for ${Ve(n)}?`,()=>oe(n,`clearContext`)),children:[(0,P.jsx)(b,{className:`w-3.5 h-3.5`}),`Clear Context`]}),O&&(0,P.jsxs)(it,{onClick:()=>ie(`Shutdown Agent`,`Shutdown ${Ve(n)}?`,()=>oe(n,`shutdown`)),children:[(0,P.jsx)(be,{className:`w-3.5 h-3.5`}),`Shutdown`]}),n&&typeof n.meta?.cwd==`string`&&n.meta.cwd&&(0,P.jsxs)(it,{onClick:()=>void ue(n),children:[(0,P.jsx)(h,{className:`w-3.5 h-3.5`}),`Open Files`]}),n&&c&&c.messages.length>0&&(0,P.jsxs)(it,{onClick:()=>de(n.id,c.messages),children:[(0,P.jsx)(se,{className:`w-3.5 h-3.5`}),`Fork`]}),(y||D||ne||O)&&(0,P.jsx)(st,{}),c&&(0,P.jsxs)(it,{onClick:()=>fe(e),children:[(0,P.jsx)(te,{className:`w-3.5 h-3.5`}),`Mark Unread`]}),c&&(0,P.jsxs)(it,{onClick:()=>pe(c.peer,c.messages),children:[(0,P.jsx)(le,{className:`w-3.5 h-3.5`}),`Mark Read`]}),l&&(0,P.jsxs)(it,{onClick:()=>me({...l,importedHistory:d},`json`),children:[(0,P.jsx)(r,{className:`w-3.5 h-3.5`}),`Download`]})]})]})]})})]})}function dn({query:e,position:t,total:n,onQueryChange:r,onNext:a,onPrev:o,onClose:s}){let l=(0,N.useRef)(null),u=e.trim().length>0,d=u&&n===0;function f(e){if(e.key===`Escape`){e.preventDefault(),s();return}e.key===`Enter`&&(e.preventDefault(),e.shiftKey?o():a())}return(0,P.jsxs)(`section`,{className:`flex shrink-0 items-center gap-2 border-b border-border bg-card/45 px-3 py-2`,children:[(0,P.jsx)(i,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`}),(0,P.jsx)(Xe,{ref:l,autoFocus:!0,value:e,onChange:e=>r(e.target.value),onKeyDown:f,placeholder:`Search this chat…`,"aria-label":`Search this chat`,className:`h-7 flex-1 text-sm`}),(0,P.jsx)(`span`,{className:`shrink-0 tabular-nums text-xs `+(d?`text-red-400`:`text-muted-foreground`),children:u?d?`No results`:`${t}/${n}`:``}),(0,P.jsxs)(`div`,{className:`flex shrink-0 items-center gap-0.5`,children:[(0,P.jsx)(M,{type:`button`,variant:`ghost`,size:`icon-sm`,title:`Previous match (Shift+Enter)`,disabled:n===0,onClick:o,children:(0,P.jsx)(D,{className:`h-3.5 w-3.5`})}),(0,P.jsx)(M,{type:`button`,variant:`ghost`,size:`icon-sm`,title:`Next match (Enter)`,disabled:n===0,onClick:a,children:(0,P.jsx)(c,{className:`h-3.5 w-3.5`})}),(0,P.jsx)(M,{type:`button`,variant:`ghost`,size:`icon-sm`,title:`Close search (Esc)`,onClick:s,children:(0,P.jsx)(T,{className:`h-3.5 w-3.5`})})]})]})}function fn({matches:e,activeIndex:t,onAccept:n,onHover:r}){return e.length===0?null:(0,P.jsx)(`div`,{className:`absolute bottom-full left-3 right-3 md:left-4 md:right-4 mb-2 z-20 max-h-64 overflow-auto rounded-xl border border-border bg-popover shadow-lg`,children:e.map((e,i)=>(0,P.jsxs)(`button`,{onMouseDown:t=>{t.preventDefault(),n(e)},onMouseEnter:()=>r(i),className:S(`flex w-full items-baseline gap-2 px-3 py-1.5 text-left text-sm`,i===t?`bg-accent`:`hover:bg-accent/50`),children:[(0,P.jsx)(`span`,{className:`font-medium shrink-0`,children:e.name}),e.argumentHint&&(0,P.jsx)(`span`,{className:`text-xs text-muted-foreground shrink-0`,children:e.argumentHint}),e.description&&(0,P.jsx)(`span`,{className:`ml-auto truncate text-xs text-muted-foreground/70`,children:e.description})]},e.name))})}function pn({value:e,onChange:t,onKeyDown:n,onPaste:r,placeholder:i,className:a}){let o=(0,N.useRef)(null);return(0,N.useEffect)(()=>{let e=o.current;e&&(e.style.height=`auto`,e.style.height=Math.min(e.scrollHeight,200)+`px`)},[e]),(0,N.useEffect)(()=>{let e=window.visualViewport;if(!e)return;function t(){let e=o.current;!e||document.activeElement!==e||requestAnimationFrame(()=>{e.scrollIntoView({block:`nearest`,behavior:`smooth`})})}return e.addEventListener(`resize`,t),()=>e.removeEventListener(`resize`,t)},[]),(0,P.jsx)(`textarea`,{ref:o,value:e,onChange:t,onKeyDown:n,onPaste:r,placeholder:i,rows:1,className:S(`w-full resize-none rounded-xl border border-border bg-background px-3.5 py-2.5 text-sm`,`placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`,`min-h-[42px] max-h-[200px] overflow-y-auto`,a)})}function mn({item:e,onRemove:t}){let[n,r]=(0,N.useState)(!1),i=!!(e.previewUrl&&!e.error);return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 rounded-md border border-border bg-card px-2.5 py-2 text-xs`,children:[(0,P.jsx)(`button`,{type:`button`,disabled:!i,onClick:()=>r(!0),className:`group/pending relative flex h-9 w-9 shrink-0 items-center justify-center overflow-hidden rounded bg-muted disabled:cursor-default`,title:i?`Preview image`:e.fileName,children:e.previewUrl?(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(`img`,{src:e.previewUrl,alt:e.fileName,className:`h-full w-full object-cover`}),(0,P.jsx)(`span`,{className:`absolute inset-0 flex items-center justify-center bg-black/0 group-hover/pending:bg-black/30 transition-colors`,children:(0,P.jsx)(me,{className:`h-3.5 w-3.5 text-white opacity-0 group-hover/pending:opacity-100 transition-opacity drop-shadow-md`})})]}):e.error?(0,P.jsx)(ye,{className:`h-4 w-4 text-red-400`}):e.uploading?(0,P.jsx)(fe,{className:`h-4 w-4 animate-spin text-muted-foreground`}):(0,P.jsx)(d,{className:`h-4 w-4 text-muted-foreground`})}),(0,P.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,P.jsx)(`p`,{className:`truncate font-medium`,children:e.fileName}),(0,P.jsx)(`p`,{className:S(`truncate text-muted-foreground`,e.error&&`text-red-400`),children:e.error||(e.uploading?`Uploading`:Mt(e.size))})]}),(0,P.jsx)(M,{variant:`ghost`,size:`icon-sm`,title:`Remove attachment`,onClick:t,children:(0,P.jsx)(T,{className:`h-3.5 w-3.5`})})]}),e.previewUrl&&(0,P.jsx)(mt,{open:n,onOpenChange:r,children:(0,P.jsxs)(gt,{className:`max-w-[95vw] max-h-[95vh] w-auto p-0 bg-black/95 border-zinc-800 gap-0 overflow-hidden`,showCloseButton:!1,children:[(0,P.jsx)(_t,{className:`sr-only`,children:e.fileName}),(0,P.jsxs)(`div`,{className:`relative flex items-center justify-center min-h-[200px]`,children:[(0,P.jsx)(`img`,{src:e.previewUrl,alt:e.fileName,className:`max-w-[93vw] max-h-[90vh] object-contain`}),(0,P.jsx)(`button`,{type:`button`,onClick:()=>r(!1),className:`absolute top-2 right-2 rounded-md bg-black/60 hover:bg-black/80 p-2 text-white transition-colors`,title:`Close`,children:(0,P.jsx)(T,{className:`w-4 h-4`})})]})]})})]})}function hn({draft:e,placeholder:t,chatSending:n,disabled:r,hasPendingUploads:i,readyAttachmentCount:a,pendingAttachments:o,micAvailable:s,micState:c,slashMatches:l,slashActiveIndex:u,onDraftChange:d,onKeyDown:f,onPaste:m,onUploadFiles:h,onRemovePendingAttachment:g,onSend:_,onAcceptSlash:v,onSlashHover:y,onStartPtt:b,onStopPtt:x,footerText:C}){let w=(0,N.useRef)(null),[T,E]=(0,N.useState)(!1),D=!e.trim()&&a===0||i||n||r;return(0,P.jsxs)(`div`,{className:S(`relative shrink-0 border-t border-border px-3 md:px-4 py-2.5 md:py-3 safe-area-bottom`,T&&`bg-primary/5 ring-1 ring-primary/40`),onDragOver:e=>{e.preventDefault(),E(!0)},onDragLeave:()=>E(!1),onDrop:e=>{e.preventDefault(),E(!1),h(e.dataTransfer.files)},children:[o.length>0&&(0,P.jsx)(`div`,{className:`mb-2 grid gap-2 sm:grid-cols-2`,children:o.map(e=>(0,P.jsx)(mn,{item:e,onRemove:()=>g(e.id)},e.id))}),(0,P.jsx)(`input`,{ref:w,type:`file`,multiple:!0,className:`hidden`,onChange:e=>{e.target.files&&h(e.target.files),e.currentTarget.value=``}}),(0,P.jsx)(fn,{matches:l,activeIndex:u,onAccept:v,onHover:y}),(0,P.jsxs)(`div`,{className:`hidden md:flex items-end gap-2`,children:[(0,P.jsx)(M,{variant:`ghost`,size:`icon`,title:`Attach files`,disabled:n,onClick:()=>w.current?.click(),className:`shrink-0 mb-0.5 rounded-xl h-[42px] w-[42px]`,children:(0,P.jsx)(p,{className:`w-4 h-4`})}),(0,P.jsx)(pn,{value:e,onChange:e=>d(e.target.value),onKeyDown:f,onPaste:m,placeholder:t,className:`flex-1`}),s&&(0,P.jsx)(M,{variant:`ghost`,size:`icon`,title:c===`recording`?`Release to transcribe`:`Hold to talk`,disabled:n||c===`transcribing`,onPointerDown:e=>{e.preventDefault(),e.currentTarget.setPointerCapture(e.pointerId),b()},onPointerUp:e=>{e.preventDefault();try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}x()},className:`shrink-0 mb-0.5 rounded-xl h-[42px] w-[42px] ${c===`recording`?`text-red-400 animate-pulse`:``}`,children:c===`transcribing`?(0,P.jsx)(fe,{className:`w-4 h-4 animate-spin`}):(0,P.jsx)(O,{className:`w-4 h-4`})}),(0,P.jsx)(M,{size:`icon`,disabled:D,onClick:_,className:`shrink-0 mb-0.5 rounded-xl h-[42px] w-[42px]`,children:(0,P.jsx)(oe,{className:`w-4 h-4`})})]}),(0,P.jsxs)(`div`,{className:`md:hidden space-y-2`,children:[(0,P.jsx)(pn,{value:e,onChange:e=>d(e.target.value),onKeyDown:f,onPaste:m,placeholder:t,className:`w-full`}),(0,P.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,P.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,P.jsx)(M,{variant:`ghost`,size:`icon`,title:`Attach files`,disabled:n,onClick:()=>w.current?.click(),className:`rounded-xl h-9 w-9`,children:(0,P.jsx)(p,{className:`w-4 h-4`})}),s&&(0,P.jsx)(M,{variant:`ghost`,size:`icon`,title:c===`recording`?`Release to transcribe`:`Hold to talk`,disabled:n||c===`transcribing`,onPointerDown:e=>{e.preventDefault(),e.currentTarget.setPointerCapture(e.pointerId),b()},onPointerUp:e=>{e.preventDefault();try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}x()},className:`rounded-xl h-9 w-9 ${c===`recording`?`text-red-400 animate-pulse`:``}`,children:c===`transcribing`?(0,P.jsx)(fe,{className:`w-4 h-4 animate-spin`}):(0,P.jsx)(O,{className:`w-4 h-4`})})]}),(0,P.jsx)(M,{size:`icon`,disabled:D,onClick:_,className:`rounded-xl h-9 w-9`,children:(0,P.jsx)(oe,{className:`w-4 h-4`})})]})]}),C&&(0,P.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1.5 hidden md:block`,children:C})]})}var gn=e(xe(),1);function _n({preview:e,error:t,onReadError:n,onMouseEnter:r,onMouseLeave:i}){let{anchor:a}=e,o=Math.min(560,window.innerWidth-24),s=Math.min(380,window.innerHeight-24),c=Math.max(12,Math.min(a.left,window.innerWidth-o-12));return(0,gn.createPortal)((0,P.jsxs)(`div`,{className:`fixed z-50 flex flex-col overflow-hidden rounded-lg border border-border bg-background shadow-xl`,style:{top:window.innerHeight-a.bottom>=s+8?a.bottom+8:a.top-8-s>=12?a.top-8-s:Math.max(12,window.innerHeight-s-12),left:c,width:o,height:s},onMouseEnter:r,onMouseLeave:i,children:[(0,P.jsxs)(`div`,{className:`flex h-8 shrink-0 items-center gap-2 border-b border-border px-2.5`,children:[(0,P.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[11px] font-medium text-muted-foreground`,children:e.path}),t&&(0,P.jsx)(`span`,{className:`max-w-[12rem] truncate text-[11px] text-red-400`,children:t}),(0,P.jsx)(`span`,{className:`shrink-0 text-[10px] text-muted-foreground/70`,children:`click to pin`})]}),(0,P.jsx)(`div`,{className:`min-h-0 flex-1`,children:e.type===`directory`?(0,P.jsx)(dt,{orchestratorId:e.orchestratorId,selectedPath:e.path,onReadError:n}):(0,P.jsx)(at,{orchestratorId:e.orchestratorId,selectedPath:e.path,line:e.line,onReadError:n})})]}),document.body)}var vn=[];function yn(e){return A(t=>t.chatStatusEvents[e]??vn)}function bn(e,t){let n=(0,N.useRef)(!1);(0,N.useEffect)(()=>{if(!e)return;n.current||=(window.history.pushState({chatGuard:!0},``),!0);function r(e){(e.state?.chatGuard!==void 0||!n.current)&&(window.history.pushState({chatGuard:!0},``),t())}function i(e){e.preventDefault()}return window.addEventListener(`popstate`,r),window.addEventListener(`beforeunload`,i),()=>{window.removeEventListener(`popstate`,r),window.removeEventListener(`beforeunload`,i)}},[e,t]),(0,N.useEffect)(()=>{!e&&n.current&&(n.current=!1)},[e])}function xn(e,t){let n=e.toLowerCase(),r=t.trim().toLowerCase();return r?n.includes(r)?!0:/\s/.test(r)||r.length<4?!1:Sn(n,r):!1}function Sn(e,t,n=4){let r=0,i=-1;for(let a=0;a<e.length&&r<t.length;a+=1)if(e[a]===t[r]){if(i!==-1&&a-i-1>n)return!1;i=a,r+=1}return r===t.length}function Cn(e,t){let n=t.trim();if(!n)return[];let r=[];for(let t of e){let e=Ct(t);e&&xn(e,n)&&r.push(Tt(t))}return r}function wn(e){let[t,n]=(0,N.useState)(!1),[r,i]=(0,N.useState)(``),[a,o]=(0,N.useState)(0),s=(0,N.useMemo)(()=>t?Cn(e,r):[],[t,r,e]),c=(0,N.useMemo)(()=>new Set(s),[s]),l=s.length,u=l?Math.min(a,l-1):0,d=l?s[u]??null:null,f=(0,N.useCallback)(()=>n(!0),[]),p=(0,N.useCallback)(()=>{n(!1),i(``),o(0)},[]),m=(0,N.useCallback)(e=>{i(e),o(0)},[]),h=(0,N.useCallback)(()=>{o(e=>l?(e+1)%l:0)},[l]),g=(0,N.useCallback)(()=>{o(e=>l?(e-1+l)%l:0)},[l]);return{open:t,query:r,matchKeys:s,matchKeySet:c,total:l,position:l?u+1:0,currentKey:d,openSearch:f,close:p,setQuery:m,next:h,prev:g}}var Tn=1e4;function En(e,t){let n=A(e=>e.announcePresence),r=(0,N.useRef)(t);r.current=t,(0,N.useEffect)(()=>{if(!e)return;n(e,r.current);let t=setInterval(()=>{n(e,r.current)},Tn);return()=>{clearInterval(t),n(e,!1,!0)}},[e,n]),(0,N.useEffect)(()=>{e&&n(e,t)},[e,t,n])}var Dn=0,On=1,kn=2,An=4;function jn(e){return()=>e}function Mn(e){e()}function Nn(e,t){return n=>e(t(n))}function Pn(e,t){return()=>e(t)}function Fn(e,t){return n=>e(t,n)}function In(e){return e!==void 0}function Ln(...e){return()=>{e.map(Mn)}}function Rn(){}function zn(e,t){return t(e),e}function Bn(e,t){return t(e)}function F(...e){return e}function I(e,t){return e(On,t)}function L(e,t){e(Dn,t)}function Vn(e){e(kn)}function R(e){return e(An)}function z(e,t){return I(e,Fn(t,Dn))}function Hn(e,t){let n=e(On,e=>{n(),t(e)});return n}function Un(e){let t,n;return r=>i=>{t=i,n&&clearTimeout(n),n=setTimeout(()=>{r(t)},e)}}function Wn(e,t){return e===t}function B(e=Wn){let t;return n=>r=>{e(t,r)||(t=r,n(r))}}function V(e){return t=>n=>{e(n)&&t(n)}}function H(e){return t=>Nn(t,e)}function Gn(e){return t=>()=>{t(e)}}function U(e,...t){let n=Yn(...t);return((t,r)=>{switch(t){case kn:Vn(e);return;case On:return I(e,n(r))}})}function Kn(e,t){return n=>r=>{n(t=e(t,r))}}function qn(e){return t=>n=>{e>0?e--:t(n)}}function Jn(e){let t=null,n;return r=>i=>{t=i,!n&&(n=setTimeout(()=>{n=void 0,r(t)},e))}}function W(...e){let t=Array(e.length),n=0,r=null,i=2**e.length-1;return e.forEach((e,a)=>{let o=2**a;I(e,e=>{let s=n;n|=o,t[a]=e,s!==i&&n===i&&r&&(r(),r=null)})}),e=>a=>{let o=()=>{e([a].concat(t))};n===i?o():r=o}}function Yn(...e){return t=>e.reduceRight(Bn,t)}function Xn(e){let t,n,r=()=>t?.();return function(i,a){switch(i){case On:return a?n===a?void 0:(r(),n=a,t=I(e,a),t):(r(),Rn);case kn:r(),n=null;return}}}function G(e){let t=e,n=K();return((e,r)=>{switch(e){case Dn:t=r;break;case On:r(t);break;case An:return t}return n(e,r)})}function Zn(e,t){return zn(G(t),t=>z(e,t))}function K(){let e=[];return((t,n)=>{switch(t){case Dn:e.slice().forEach(e=>{e(n)});return;case kn:e.splice(0,e.length);return;case On:return e.push(n),()=>{let t=e.indexOf(n);t>-1&&e.splice(t,1)}}})}function Qn(e){return zn(K(),t=>z(e,t))}function q(e,t=[],{singleton:n}={singleton:!0}){return{constructor:e,dependencies:t,id:$n(),singleton:n}}var $n=()=>Symbol();function er(e){let t=new Map,n=({constructor:e,dependencies:r,id:i,singleton:a})=>{if(a&&t.has(i))return t.get(i);let o=e(r.map(e=>n(e)));return a&&t.set(i,o),o};return n(e)}function tr(...e){let t=K(),n=Array(e.length),r=0,i=2**e.length-1;return e.forEach((e,a)=>{let o=2**a;I(e,e=>{n[a]=e,r|=o,r===i&&L(t,n)})}),function(e,a){switch(e){case kn:Vn(t);return;case On:return r===i&&a(n),I(t,a)}}}function J(e,t=Wn){return U(e,B(t))}function nr(...e){return function(t,n){switch(t){case kn:return;case On:return Ln(...e.map(e=>I(e,n)))}}}var rr={DEBUG:0,INFO:1,WARN:2,ERROR:3},ir={[rr.DEBUG]:`debug`,[rr.ERROR]:`error`,[rr.INFO]:`log`,[rr.WARN]:`warn`},ar=()=>typeof globalThis>`u`?window:globalThis,or=q(()=>{let e=G(rr.ERROR);return{log:G((t,n,r=rr.INFO)=>{r>=(ar().VIRTUOSO_LOG_LEVEL??R(e))&&console[ir[r]](`%creact-virtuoso: %c%s %o`,`color: #0253b3; font-weight: bold`,`color: initial`,t,n)}),logLevel:e}},[],{singleton:!0}),sr=new WeakMap;function cr(e){return`self`in e?e.document.documentElement:e}function lr(e){let t=cr(e),n=sr.get(t);if(n!==void 0)return n;let r=t.ownerDocument.defaultView.getComputedStyle(t).direction===`rtl`;return sr.set(t,r),r}function ur(e){sr.delete(cr(e))}function dr(e,t){return lr(e)?-t:t}var fr=dr;function pr(e,t){return dr(e,t)}function mr(e,t,n){return hr(e,t,n).callbackRef}function hr(e,t,n){let r=N.useRef(null),i=e=>{},a=N.useMemo(()=>typeof ResizeObserver<`u`?new ResizeObserver(t=>{let r=()=>{let n=t[0].target;n.offsetParent!==null&&e(n)};n?r():requestAnimationFrame(r)}):null,[e,n]);return i=e=>{e&&t?(a?.observe(e),r.current=e):(r.current&&a?.unobserve(r.current),r.current=null)},{callbackRef:i,ref:r}}function gr(e,t,n,r,i,a,o,s,c){return hr(N.useCallback(n=>{let c=_r(n.children,t,s?`offsetWidth`:`offsetHeight`,i),l=n.parentElement;for(;l.dataset.virtuosoScroller===void 0;)l=l.parentElement;let u=l.lastElementChild.dataset.viewportType===`window`,d;u&&(d=l.ownerDocument.defaultView);let f=o?s?o.scrollWidth:o.scrollHeight:u?s?d.document.documentElement.scrollWidth:d.document.documentElement.scrollHeight:s?l.scrollWidth:l.scrollHeight,p=o?s?o.offsetWidth:o.offsetHeight:u?s?d.innerWidth:d.innerHeight:s?l.offsetWidth:l.offsetHeight,m=o?s?fr(o,o.scrollLeft):o.scrollTop:u?s?fr(d,d.scrollX||d.document.documentElement.scrollLeft):d.scrollY||d.document.documentElement.scrollTop:s?fr(l,l.scrollLeft):l.scrollTop;r({scrollHeight:f,scrollTop:Math.max(m,0),viewportHeight:p}),a?.(s?vr(`column-gap`,getComputedStyle(n).columnGap,i):vr(`row-gap`,getComputedStyle(n).rowGap,i)),c!==null&&e(c)},[e,t,i,a,o,r,s]),n,c)}function _r(e,t,n,r){let i=e.length;if(i===0)return null;let a=[];for(let o=0;o<i;o++){let i=e.item(o);if(i.dataset.index===void 0)continue;let s=parseInt(i.dataset.index),c=parseFloat(i.dataset.knownSize),l=t(i,n);if(l===0&&r(`Zero-sized element, this should not happen`,{child:i},rr.ERROR),l===c)continue;let u=a[a.length-1];a.length===0||u.size!==l||u.endIndex!==s-1?a.push({endIndex:s,size:l,startIndex:s}):a[a.length-1].endIndex++}return a}function vr(e,t,n){return t!==`normal`&&t?.endsWith(`px`)!==!0&&n(`${e} was not resolved to pixel value correctly`,t,rr.WARN),t===`normal`?0:parseInt(t??`0`,10)}function yr(e,t,n){let r=N.useRef(null),i=N.useCallback(n=>{if(!n?.offsetParent)return;let i=n.getBoundingClientRect(),a=i.width,s,c;if(t){let e=t.getBoundingClientRect(),n=i.top-e.top;c=e.height-Math.max(0,n),s=n+t.scrollTop}else{let e=o.current.ownerDocument.defaultView;c=e.innerHeight-Math.max(0,i.top),s=i.top+e.scrollY}r.current={listHeight:i.height,offsetTop:s,visibleHeight:c,visibleWidth:a},e(r.current)},[e,t]),{callbackRef:a,ref:o}=hr(i,!0,n),s=N.useCallback(()=>{i(o.current)},[i,o]);return N.useEffect(()=>{if(t){t.addEventListener(`scroll`,s);let e=new ResizeObserver(()=>{requestAnimationFrame(s)});return e.observe(t),()=>{t.removeEventListener(`scroll`,s),e.unobserve(t)}}let e=o.current?.ownerDocument.defaultView;return e?.addEventListener(`scroll`,s),e?.addEventListener(`resize`,s),()=>{e?.removeEventListener(`scroll`,s),e?.removeEventListener(`resize`,s)}},[s,t,o]),a}var br=q(()=>{let e=K(),t=K(),n=G(0),r=K(),i=G(0),a=K(),o=K(),s=G(0),c=G(0),l=G(0),u=G(0),d=K(),f=K(),p=G(!1),m=G(!1),h=G(!1);return z(U(e,H(({scrollTop:e})=>e)),t),z(U(e,H(({scrollHeight:e})=>e)),o),z(t,i),{deviation:n,fixedFooterHeight:l,fixedHeaderHeight:c,footerHeight:u,headerHeight:s,horizontalDirection:m,scrollBy:f,scrollContainerState:e,scrollHeight:o,scrollingInProgress:p,scrollTo:d,scrollTop:t,skipAnimationFrameInResizeObserver:h,smoothScrollTargetReached:r,statefulScrollTop:i,viewportHeight:a}},[],{singleton:!0}),xr={lvl:0};function Sr(e,t){let n=e.length;if(n===0)return[];let{index:r,value:i}=t(e[0]),a=[];for(let o=1;o<n;o++){let{index:n,value:s}=t(e[o]);a.push({end:n-1,start:r,value:i}),r=n,i=s}return a.push({end:1/0,start:r,value:i}),a}function Y(e){return e===xr}function Cr(e,t){if(!Y(e))return t===e.k?e.v:t<e.k?Cr(e.l,t):Cr(e.r,t)}function wr(e,t,n=`k`){if(Y(e))return[-1/0,void 0];if(Number(e[n])===t)return[e.k,e.v];if(Number(e[n])<t){let r=wr(e.r,t,n);return r[0]===-1/0?[e.k,e.v]:r}return wr(e.l,t,n)}function Tr(e,t,n){return Y(e)?Ir(t,n,1):t===e.k?Mr(e,{k:t,v:n}):t<e.k?Lr(Mr(e,{l:Tr(e.l,t,n)})):Lr(Mr(e,{r:Tr(e.r,t,n)}))}function Er(){return xr}function Dr(e,t,n){if(Y(e))return[];let r=wr(e,t)[0];return Br(Ar(e,r,n))}function Or(e,t){if(Y(e))return xr;let{k:n,l:r,r:i}=e;if(t===n){if(Y(r))return i;if(Y(i))return r;let[t,n]=Fr(r);return jr(Mr(e,{k:t,l:Nr(r),v:n}))}return jr(t<n?Mr(e,{l:Or(r,t)}):Mr(e,{r:Or(i,t)}))}function kr(e){return Y(e)?[]:[...kr(e.l),{k:e.k,v:e.v},...kr(e.r)]}function Ar(e,t,n){if(Y(e))return[];let{k:r,l:i,r:a,v:o}=e,s=[];return r>t&&(s=s.concat(Ar(i,t,n))),r>=t&&r<=n&&s.push({k:r,v:o}),r<=n&&(s=s.concat(Ar(a,t,n))),s}function jr(e){let{l:t,lvl:n,r}=e;if(r.lvl>=n-1&&t.lvl>=n-1)return e;if(n>r.lvl+1){if(Pr(t))return Rr(Mr(e,{lvl:n-1}));if(!Y(t)&&!Y(t.r))return Mr(t.r,{l:Mr(t,{r:t.r.l}),lvl:n,r:Mr(e,{l:t.r.r,lvl:n-1})});throw Error(`Unexpected empty nodes`)}if(Pr(e))return zr(Mr(e,{lvl:n-1}));if(!Y(r)&&!Y(r.l)){let t=r.l,i=Pr(t)?r.lvl-1:r.lvl;return Mr(t,{l:Mr(e,{lvl:n-1,r:t.l}),lvl:t.lvl+1,r:zr(Mr(r,{l:t.r,lvl:i}))})}throw Error(`Unexpected empty nodes`)}function Mr(e,t){return Ir(t.k===void 0?e.k:t.k,t.v===void 0?e.v:t.v,t.lvl===void 0?e.lvl:t.lvl,t.l===void 0?e.l:t.l,t.r===void 0?e.r:t.r)}function Nr(e){return Y(e.r)?e.l:jr(Mr(e,{r:Nr(e.r)}))}function Pr(e){return Y(e)||e.lvl>e.r.lvl}function Fr(e){return Y(e.r)?[e.k,e.v]:Fr(e.r)}function Ir(e,t,n,r=xr,i=xr){return{k:e,l:r,lvl:n,r:i,v:t}}function Lr(e){return zr(Rr(e))}function Rr(e){let{l:t}=e;return!Y(t)&&t.lvl===e.lvl?Mr(t,{r:Mr(e,{l:t.r})}):e}function zr(e){let{lvl:t,r:n}=e;return!Y(n)&&!Y(n.r)&&n.lvl===t&&n.r.lvl===t?Mr(n,{l:Mr(e,{r:n.l}),lvl:t+1}):e}function Br(e){return Sr(e,({k:e,v:t})=>({index:e,value:t}))}function Vr(e,t){return!!(e&&e.startIndex===t.startIndex&&e.endIndex===t.endIndex)}function Hr(e,t){return!!(e&&e[0]===t[0]&&e[1]===t[1])}var Ur=q(()=>({recalcInProgress:G(!1)}),[],{singleton:!0});function Wr(e,t,n){return e[Gr(e,t,n)]}function Gr(e,t,n,r=0){let i=e.length-1;for(;r<=i;){let a=Math.floor((r+i)/2),o=e[a],s=n(o,t);if(s===0)return a;if(s===-1){if(i-r<2)return a-1;i=a-1}else{if(i===r)return a;r=a+1}}throw Error(`Failed binary finding record in array - ${e.join(`,`)}, searched for ${t}`)}function Kr(e,t,n,r){let i=Gr(e,t,r),a=Gr(e,n,r,i);return e.slice(i,a+1)}function qr(e,t){return Math.round(e.getBoundingClientRect()[t])}function Jr(e){return!Y(e.groupOffsetTree)}function Yr({index:e},t){return t===e?0:t<e?-1:1}function Xr(){return{groupIndices:[],groupOffsetTree:Er(),lastIndex:0,lastOffset:0,lastSize:0,offsetTree:[],sizeTree:Er()}}function Zr(e,t){let n=Y(e)?0:1/0;for(let r of t){let{endIndex:t,size:i,startIndex:a}=r;if(n=Math.min(n,a),Y(e)){e=Tr(e,0,i);continue}let o=Dr(e,a-1,t+1);if(o.some(li(r)))continue;let s=!1,c=!1;for(let{end:n,start:r,value:a}of o)s?(t>=r||i===a)&&(e=Or(e,r)):(c=a!==i,s=!0),n>t&&t>=r&&a!==i&&(e=Tr(e,t+1,a));c&&(e=Tr(e,a,i))}return[e,n]}function Qr(e){return typeof e.groupIndex<`u`}function $r({offset:e},t){return t===e?0:t<e?-1:1}function ei(e,t,n){if(t.length===0)return 0;let{index:r,offset:i,size:a}=Wr(t,e,Yr),o=e-r,s=a*o+(o-1)*n+i;return s>0?s+n:s}function ti(e,t){if(!Jr(t))return e;let n=0;for(;t.groupIndices[n]<=e+n;)n++;return e+n}function ni(e,t,n){if(Qr(e))return t.groupIndices[e.groupIndex]+1;let r=ti(e.index===`LAST`?n:e.index,t);return r=Math.max(0,r,Math.min(n,r)),r}function ri(e,t,n,r=0){return r>0&&(t=Math.max(t,Wr(e,r,Yr).offset)),Sr(Kr(e,t,n,$r),ci)}function ii(e,[t,n,r,i]){t.length>0&&r(`received item sizes`,t,rr.DEBUG);let a=e.sizeTree,o=a,s=0;if(n.length>0&&Y(a)&&t.length===2){let e=t[0].size,r=t[1].size;o=n.reduce((t,n)=>Tr(Tr(t,n,e),n+1,r),o)}else [o,s]=Zr(o,t);if(o===a)return e;let{lastIndex:c,lastOffset:l,lastSize:u,offsetTree:d}=si(e.offsetTree,s,o,i);return{groupIndices:n,groupOffsetTree:n.reduce((e,t)=>Tr(e,t,ei(t,d,i)),Er()),lastIndex:c,lastOffset:l,lastSize:u,offsetTree:d,sizeTree:o}}function ai(e){return kr(e).map(({k:e,v:t},n,r)=>{let i=r[n+1];return{endIndex:i===void 0?1/0:i.k-1,size:t,startIndex:e}})}function oi(e,t){let n=0,r=0;for(;n<e;)n+=t[r+1]-t[r]-1,r++;return r-(n===e?0:1)}function si(e,t,n,r){let i=e,a=0,o=0,s=0,c=0;if(t!==0){c=Gr(i,t-1,Yr),s=i[c].offset;let e=wr(n,t-1);a=e[0],o=e[1],i.length&&i[c].size===wr(n,t)[1]&&--c,i=i.slice(0,c+1)}else i=[];for(let{start:e,value:c}of Dr(n,t,1/0)){let t=e-a,n=t*o+s+t*r;i.push({index:e,offset:n,size:c}),a=e,s=n,o=c}return{lastIndex:a,lastOffset:s,lastSize:o,offsetTree:i}}function ci(e){return{index:e.index,value:e}}function li(e){let{endIndex:t,size:n,startIndex:r}=e;return e=>e.start===r&&(e.end===t||e.end===1/0)&&e.value===n}var ui={offsetHeight:`height`,offsetWidth:`width`},di=q(([{log:e},{recalcInProgress:t}])=>{let n=K(),r=K(),i=Zn(r,0),a=K(),o=K(),s=G(0),c=G([]),l=G(void 0),u=G(void 0),d=G(void 0),f=G(void 0),p=G((e,t)=>qr(e,ui[t])),m=G(void 0),h=G(0),g=Xr(),_=Zn(U(n,W(c,e,h),Kn(ii,g),B()),g),v=Zn(U(c,B(),Kn((e,t)=>({current:t,prev:e.current}),{current:[],prev:[]}),H(({prev:e})=>e)),[]);z(U(c,V(e=>e.length>0),W(_,h),H(([e,t,n])=>{let r=e.reduce((e,r,i)=>Tr(e,r,ei(r,t.offsetTree,n)||i),Er());return{...t,groupIndices:e,groupOffsetTree:r}})),_),z(U(r,W(_),V(([e,{lastIndex:t}])=>e<t),H(([e,{lastIndex:t,lastSize:n}])=>[{endIndex:t,size:n,startIndex:e}])),n),z(l,u);let y=Zn(U(l,H(e=>e===void 0)),!0);z(U(u,V(e=>e!==void 0&&Y(R(_).sizeTree)),H(e=>{let t=R(d),n=R(c).length>0;return t!==void 0&&t!==0?n?[{endIndex:0,size:t,startIndex:0},{endIndex:1,size:e,startIndex:1}]:[]:[{endIndex:0,size:e,startIndex:0}]})),n),z(U(f,V(e=>e!==void 0&&e.length>0&&Y(R(_).sizeTree)),H(e=>{let t=[],n=e[0],r=0;for(let i=1;i<e.length;i++){let a=e[i];a!==n&&(t.push({endIndex:i-1,size:n,startIndex:r}),n=a,r=i)}return t.push({endIndex:e.length-1,size:n,startIndex:r}),t})),n),z(U(c,W(d,u),V(([,e,t])=>e!==void 0&&t!==void 0),H(([e,t,n])=>{let r=[];for(let i=0;i<e.length;i++){let a=e[i],o=e[i+1];r.push({startIndex:a,endIndex:a,size:t}),o!==void 0&&r.push({startIndex:a+1,endIndex:o-1,size:n})}return r})),n);let b=Qn(U(n,W(_),Kn(({sizes:e},[t,n])=>({changed:n!==e,sizes:n}),{changed:!1,sizes:g}),H(e=>e.changed)));I(U(s,Kn((e,t)=>({diff:e.prev-t,prev:t}),{diff:0,prev:0}),H(e=>e.diff)),e=>{let{groupIndices:n}=R(_);if(e>0)L(t,!0),L(a,e+oi(e,n));else if(e<0){let t=R(v);t.length>0&&(e-=oi(-e,t)),L(o,e)}}),I(U(s,W(e)),([e,t])=>{e<0&&t("`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value",{firstItemIndex:s},rr.ERROR)});let x=Qn(a);z(U(a,W(_),H(([e,t])=>{let n=t.groupIndices.length>0,r=[],i=t.lastSize;if(n){let n=Cr(t.sizeTree,0),a=0,o=0;for(;a<e;){let e=t.groupIndices[o],s=t.groupIndices.length===o+1?1/0:t.groupIndices[o+1]-e-1;r.push({endIndex:e,size:n,startIndex:e}),r.push({endIndex:e+1+s-1,size:i,startIndex:e+1}),o++,a+=s+1}let s=kr(t.sizeTree);return a!==e&&s.shift(),s.reduce((t,{k:n,v:r})=>{let i=t.ranges;return t.prevSize!==0&&(i=[...t.ranges,{endIndex:n+e-1,size:t.prevSize,startIndex:t.prevIndex}]),{prevIndex:n+e,prevSize:r,ranges:i}},{prevIndex:e,prevSize:0,ranges:r}).ranges}return kr(t.sizeTree).reduce((t,{k:n,v:r})=>({prevIndex:n+e,prevSize:r,ranges:[...t.ranges,{endIndex:n+e-1,size:t.prevSize,startIndex:t.prevIndex}]}),{prevIndex:0,prevSize:i,ranges:[]}).ranges})),n);let S=Qn(U(o,W(_,h),H(([e,{offsetTree:t},n])=>ei(-e,t,n))));return z(U(o,W(_,h),H(([e,t,n])=>{if(t.groupIndices.length>0){if(Y(t.sizeTree))return t;let r=Er(),i=R(v),a=0,o=0,s=0;for(;a<-e;){s=i[o];let e=i[o+1]-s-1;o++,a+=e+1}if(r=kr(t.sizeTree).reduce((t,{k:n,v:r})=>Tr(t,Math.max(0,n+e),r),r),a!==-e){let n=Cr(t.sizeTree,s);r=Tr(r,0,n);let i=wr(t.sizeTree,-e+1)[1];r=Tr(r,1,i)}return{...t,sizeTree:r,...si(t.offsetTree,0,r,n)}}let r=kr(t.sizeTree).reduce((t,{k:n,v:r})=>Tr(t,Math.max(0,n+e),r),Er());return{...t,sizeTree:r,...si(t.offsetTree,0,r,n)}})),_),{beforeUnshiftWith:x,data:m,defaultItemSize:u,firstItemIndex:s,fixedItemSize:l,fixedGroupSize:d,gap:h,groupIndices:c,heightEstimates:f,itemSize:p,listRefresh:b,shiftWith:o,shiftWithOffset:S,sizeRanges:n,sizes:_,statefulTotalCount:i,totalCount:r,trackItemSizes:y,unshiftWith:a}},F(or,Ur),{singleton:!0});function fi(e){return e.reduce((e,t)=>(e.groupIndices.push(e.totalCount),e.totalCount+=t+1,e),{groupIndices:[],totalCount:0})}var pi=q(([{groupIndices:e,sizes:t,totalCount:n},{headerHeight:r,scrollTop:i}])=>{let a=K(),o=K(),s=Qn(U(a,H(fi)));return z(U(s,H(e=>e.totalCount)),n),z(U(s,H(e=>e.groupIndices)),e),z(U(tr(i,t,r),V(([e,t])=>Jr(t)),H(([e,t,n])=>wr(t.groupOffsetTree,Math.max(e-n,0),`v`)[0]),B(),H(e=>[e])),o),{groupCounts:a,topItemsIndexes:o}},F(di,br)),mi=q(([{log:e}])=>{let t=G(!1),n=Qn(U(t,V(e=>e),B()));return I(t,t=>{t&&R(e)(`props updated`,{},rr.DEBUG)}),{didMount:n,propsReady:t}},F(or),{singleton:!0}),hi=typeof document<`u`&&`scrollBehavior`in document.documentElement.style;function gi(e){let t=typeof e==`number`?{index:e}:e;return t.align||=`start`,(!t.behavior||!hi)&&(t.behavior=`auto`),t.offset===void 0&&(t.offset=0),t}var _i=q(([{gap:e,listRefresh:t,sizes:n,totalCount:r},{fixedFooterHeight:i,fixedHeaderHeight:a,footerHeight:o,headerHeight:s,scrollingInProgress:c,scrollTo:l,smoothScrollTargetReached:u,viewportHeight:d},{log:f}])=>{let p=K(),m=K(),h=G(0),g=null,_=null,v=null;function y(){g!==null&&(g(),g=null),v!==null&&(v(),v=null),_&&=(clearTimeout(_),null),L(c,!1)}return z(U(p,W(n,d,r,h,s,o,f),W(e,a,i),H(([[e,n,r,i,a,o,s,l],d,f,h])=>{let b=gi(e),{align:x,behavior:S,offset:C}=b,w=i-1,T=ni(b,n,w),E=ei(T,n.offsetTree,d)+o;x===`end`?(E+=f+wr(n.sizeTree,T)[1]-r+h,T===w&&(E+=s)):x===`center`?E+=(f+wr(n.sizeTree,T)[1]-r+h)/2:E-=a,C!==void 0&&C!==0&&(E+=C);let D=t=>{y(),t?(l(`retrying to scroll to`,{location:e},rr.DEBUG),L(p,e)):(L(m,!0),l(`list did not change, scroll successful`,{},rr.DEBUG))};if(y(),S===`smooth`){let e=!1;v=I(t,t=>{e||=t}),g=Hn(u,()=>{D(e)})}else g=Hn(U(t,vi(150)),D);return _=setTimeout(()=>{y()},1200),L(c,!0),l(`scrolling from index to`,{behavior:S,index:T,top:E},rr.DEBUG),{behavior:S,top:E}})),l),{scrollTargetReached:m,scrollToIndex:p,topListHeight:h}},F(di,br,or),{singleton:!0});function vi(e){return t=>{let n=setTimeout(()=>{t(!1)},e);return e=>{e&&(t(!0),clearTimeout(n))}}}function yi(e,t){e===0?t():requestAnimationFrame(()=>{yi(e-1,t)})}function bi(e,t){let n=t-1;return typeof e==`number`?e:e.index===`LAST`?n:e.index}var xi=q(([{defaultItemSize:e,listRefresh:t,sizes:n},{scrollTop:r},{scrollTargetReached:i,scrollToIndex:a},{didMount:o}])=>{let s=G(!0),c=G(0),l=G(!0);return z(U(o,W(c),V(([e,t])=>t!==0),Gn(!1)),s),z(U(o,W(c),V(([e,t])=>t!==0),Gn(!1)),l),I(U(tr(t,o),W(s,n,e,l),V(([[,e],t,{sizeTree:n},r,i])=>e&&(!Y(n)||In(r))&&!t&&!i),W(c)),([,e])=>{Hn(i,()=>{L(l,!0)}),yi(4,()=>{Hn(r,()=>{L(s,!0)}),L(a,e)})}),{initialItemFinalLocationReached:l,initialTopMostItemIndex:c,scrolledToInitialItem:s}},F(di,br,_i,mi),{singleton:!0});function Si(e,t){return Math.abs(e-t)<1.01}var Ci=`up`,wi=`down`,Ti=`none`,Ei={atBottom:!1,notAtBottomBecause:`NOT_SHOWING_LAST_ITEM`,state:{offsetBottom:0,scrollHeight:0,scrollTop:0,viewportHeight:0}},Di=0,Oi=q(([{footerHeight:e,headerHeight:t,scrollBy:n,scrollContainerState:r,scrollTop:i,viewportHeight:a}])=>{let o=G(!1),s=G(!0),c=K(),l=K(),u=G(4),d=G(Di),f=Zn(U(nr(U(J(i),qn(1),Gn(!0)),U(J(i),qn(1),Gn(!1),Un(100))),B()),!1),p=Zn(U(nr(U(n,Gn(!0)),U(n,Gn(!1),Un(200))),B()),!1);z(U(tr(J(i),J(d)),H(([e,t])=>e<=t),B()),s),z(U(s,Jn(50)),l);let m=Qn(U(tr(r,J(a),J(t),J(e),J(u)),Kn((e,[{scrollHeight:t,scrollTop:n},r,i,a,o])=>{let s=n+r-t>-o,c={scrollHeight:t,scrollTop:n,viewportHeight:r};if(s){let t,r;return n>e.state.scrollTop?(t=`SCROLLED_DOWN`,r=e.state.scrollTop-n):(t=`SIZE_DECREASED`,r=e.state.scrollTop-n||e.scrollTopDelta),{atBottom:!0,atBottomBecause:t,scrollTopDelta:r,state:c}}let l;return l=c.scrollHeight>e.state.scrollHeight?`SIZE_INCREASED`:r<e.state.viewportHeight?`VIEWPORT_HEIGHT_DECREASING`:n<e.state.scrollTop?`SCROLLING_UPWARDS`:`NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM`,{atBottom:!1,notAtBottomBecause:l,state:c}},Ei),B((e,t)=>e!==void 0&&e.atBottom===t.atBottom))),h=Zn(U(r,Kn((e,{scrollHeight:t,scrollTop:n,viewportHeight:r})=>{if(!Si(e.scrollHeight,t)){let i=t-(n+r)<1;return e.scrollTop!==n&&i?{changed:!0,jump:e.scrollTop-n,scrollHeight:t,scrollTop:n}:{changed:!0,jump:0,scrollHeight:t,scrollTop:n}}return{changed:!1,jump:0,scrollHeight:t,scrollTop:n}},{changed:!1,jump:0,scrollHeight:0,scrollTop:0}),V(e=>e.changed),H(e=>e.jump)),0);z(U(m,H(e=>e.atBottom)),o),z(U(o,Jn(50)),c);let g=G(wi);z(U(r,H(({scrollTop:e})=>e),B(),Kn((e,t)=>R(p)?{direction:e.direction,prevScrollTop:t}:{direction:t<e.prevScrollTop?Ci:wi,prevScrollTop:t},{direction:wi,prevScrollTop:0}),H(e=>e.direction)),g),z(U(r,Jn(50),Gn(Ti)),g);let _=G(0);return z(U(f,V(e=>!e),Gn(0)),_),z(U(i,Jn(100),W(f),V(([e,t])=>t),Kn(([e,t],[n])=>[t,n],[0,0]),H(([e,t])=>t-e)),_),{atBottomState:m,atBottomStateChange:c,atBottomThreshold:u,atTopStateChange:l,atTopThreshold:d,isAtBottom:o,isAtTop:s,isScrolling:f,lastJumpDueToItemResize:h,scrollDirection:g,scrollVelocity:_}},F(br)),ki=`top`,Ai=`bottom`,ji=`none`;function Mi(e,t,n){return typeof e==`number`?n===Ci&&t===ki||n===wi&&t===Ai?e:0:n===Ci?t===ki?e.main:e.reverse:t===Ai?e.main:e.reverse}function Ni(e,t){return typeof e==`number`?e:e[t]??0}var Pi=q(([{deviation:e,fixedHeaderHeight:t,headerHeight:n,scrollTop:r,viewportHeight:i}])=>{let a=K(),o=G(0),s=G(0),c=G(0);return{increaseViewportBy:s,listBoundary:a,overscan:c,topListHeight:o,visibleRange:Zn(U(tr(J(r),J(i),J(n),J(a,Hr),J(c),J(o),J(t),J(e),J(s)),H(([e,t,n,[r,i],a,o,s,c,l])=>{let u=e-c,d=o+s,f=Math.max(n-u,0),p=ji,m=Ni(l,ki),h=Ni(l,Ai);return r-=c,r+=n+s,i+=n+s,i-=c,r>e+d-m&&(p=Ci),i<e-f+t+h&&(p=wi),p===ji?null:[Math.max(u-n-Mi(a,ki,p)-m,0),u-f-s+t+Mi(a,Ai,p)+h]}),V(e=>e!==null),B(Hr)),[0,0])}},F(br),{singleton:!0});function Fi(e,t,n){if(Jr(t)){let r=ti(e,t);return[{index:wr(t.groupOffsetTree,r)[0],offset:0,size:0},{data:n?.[0],index:r,offset:0,size:0}]}return[{data:n?.[0],index:e,offset:0,size:0}]}var Ii={bottom:0,firstItemIndex:0,items:[],offsetBottom:0,offsetTop:0,top:0,topItems:[],topListHeight:0,totalCount:0};function Li(e,t,n,r,i,a){let{lastIndex:o,lastOffset:s,lastSize:c}=i,l=0,u=0;if(e.length>0){l=e[0].offset;let t=e[e.length-1];u=t.offset+t.size}let d=n-o,f=s+d*c+(d-1)*r,p=l,m=f-u;return{bottom:u,firstItemIndex:a,items:zi(e,i,a),offsetBottom:m,offsetTop:l,top:p,topItems:zi(t,i,a),topListHeight:t.reduce((e,t)=>t.size+e,0),totalCount:n}}function Ri(e,t,n,r,i,a){let o=0;if(n.groupIndices.length>0)for(let t of n.groupIndices){if(t-o>=e)break;o++}let s=e+o,c=bi(t,s);return Li(Array.from({length:s}).map((e,t)=>({data:a[t+c],index:t+c,offset:0,size:0})),[],s,i,n,r)}function zi(e,t,n){if(e.length===0)return[];if(!Jr(t))return e.map(e=>({...e,index:e.index+n,originalIndex:e.index}));let r=e[0].index,i=e[e.length-1].index,a=[],o=Dr(t.groupOffsetTree,r,i),s,c=0;for(let r of e){(!s||s.end<r.index)&&(s=o.shift(),c=t.groupIndices.indexOf(s.start));let e;e=r.index===s.start?{index:c,type:`group`}:{groupIndex:c,index:r.index-(c+1)+n},a.push({...e,data:r.data,offset:r.offset,originalIndex:r.index,size:r.size})}return a}function Bi(e,t){return e===void 0?0:typeof e==`number`?e:e[t]??0}var Vi=q(([{data:e,firstItemIndex:t,gap:n,sizes:r,totalCount:i},a,{listBoundary:o,topListHeight:s,visibleRange:c},{initialTopMostItemIndex:l,scrolledToInitialItem:u},{topListHeight:d},f,{didMount:p},{recalcInProgress:m}])=>{let h=G([]),g=G(0),_=K(),v=G(0);z(a.topItemsIndexes,h);let y=Zn(U(tr(p,m,J(c,Hr),J(i),J(r),J(l),u,J(h),J(t),J(n),J(v),e),V(([e,t,,n,,,,,,,,r])=>{let i=r!==void 0&&r.length!==n;return e&&!t&&!i}),H(([,,[e,t],n,r,i,a,o,s,c,l,u])=>{let d=r,{offsetTree:f,sizeTree:p}=d,m=R(g);if(n===0)return{...Ii,totalCount:n};if(e===0&&t===0)return m===0?{...Ii,totalCount:n}:Ri(m,i,r,s,c,u||[]);if(Y(p))return m>0?null:Li(Fi(bi(i,n),d,u),[],n,c,d,s);let h=[];if(o.length>0){let e=o[0],t=o[o.length-1],n=0;for(let r of Dr(p,e,t)){let i=r.value,a=Math.max(r.start,e),o=Math.min(r.end,t);for(let e=a;e<=o;e++)h.push({data:u?.[e],index:e,offset:n,size:i}),n+=i}}if(!a)return Li([],h,n,c,d,s);let _=o.length>0?o[o.length-1]+1:0,v=ri(f,e,t,_);if(v.length===0)return null;let y=n-1,b=zn([],n=>{for(let r of v){let i=r.value,a=i.offset,o=r.start,s=i.size;if(i.offset<e){o+=Math.floor((e-i.offset+c)/(s+c));let t=o-r.start;a+=t*s+t*c}o<_&&(a+=(_-o)*s,o=_);let l=Math.min(r.end,y);for(let e=o;e<=l&&!(a>=t);e++)n.push({data:u?.[e],index:e,offset:a,size:s}),a+=s+c}}),x=Bi(l,ki),S=Bi(l,Ai);if(b.length>0&&(x>0||S>0)){let e=b[0],t=b[b.length-1];if(x>0&&e.index>_){let t=Math.min(x,e.index-_),n=[],r=e.offset;for(let i=e.index-1;i>=e.index-t;i--){let t=Dr(p,i,i)[0]?.value??e.size;r-=t+c,n.unshift({data:u?.[i],index:i,offset:r,size:t})}b.unshift(...n)}if(S>0&&t.index<y){let e=Math.min(S,y-t.index),n=t.offset+t.size+c;for(let r=t.index+1;r<=t.index+e;r++){let e=Dr(p,r,r)[0]?.value??t.size;b.push({data:u?.[r],index:r,offset:n,size:e}),n+=e+c}}}return Li(b,h,n,c,d,s)}),V(e=>e!==null),B()),Ii);z(U(e,V(In),H(e=>e?.length)),i),z(U(y,H(e=>e.topListHeight)),d),z(d,s),z(U(y,H(e=>[e.top,e.bottom])),o),z(U(y,H(e=>e.items)),_);let b=Qn(U(y,V(({items:e})=>e.length>0),W(i,e),V(([{items:e},t])=>e[e.length-1].originalIndex===t-1),H(([,e,t])=>[e-1,t]),B(Hr),H(([e])=>e))),x=Qn(U(y,Jn(200),V(({items:e,topItems:t})=>e.length>0&&e[0].originalIndex===t.length),H(({items:e})=>e[0].index),B()));return{endReached:b,initialItemCount:g,itemsRendered:_,listState:y,minOverscanItemCount:v,rangeChanged:Qn(U(y,V(({items:e})=>e.length>0),H(({items:e})=>{let t=0,n=e.length-1;for(;e[t].type===`group`&&t<n;)t++;for(;e[n].type===`group`&&n>t;)n--;return{endIndex:e[n].index,startIndex:e[t].index}}),B(Vr))),startReached:x,topItemsIndexes:h,...f}},F(di,pi,Pi,xi,_i,Oi,mi,Ur),{singleton:!0}),Hi=q(([{fixedFooterHeight:e,fixedHeaderHeight:t,footerHeight:n,headerHeight:r},{listState:i}])=>{let a=K(),o=Zn(U(tr(n,e,r,t,i),H(([e,t,n,r,i])=>e+t+n+r+i.offsetBottom+i.bottom)),0);return z(J(o),a),{totalListHeight:o,totalListHeightChanged:a}},F(br,Vi),{singleton:!0}),Ui=q(([{viewportHeight:e},{totalListHeight:t}])=>{let n=G(!1);return{alignToBottom:n,paddingTopAddition:Zn(U(tr(n,e,t),V(([e])=>e),H(([,e,t])=>Math.max(0,e-t)),Jn(0),B()),0)}},F(br,Hi),{singleton:!0}),Wi=q(()=>({context:G(null)})),Gi=({itemBottom:e,itemTop:t,locationParams:{align:n,behavior:r,...i},viewportBottom:a,viewportTop:o})=>t<o?{...i,align:n??`start`,...r===void 0?{}:{behavior:r}}:e>a?{...i,align:n??`end`,...r===void 0?{}:{behavior:r}}:null,Ki=q(([{gap:e,sizes:t,totalCount:n},{fixedFooterHeight:r,fixedHeaderHeight:i,headerHeight:a,scrollingInProgress:o,scrollTop:s,viewportHeight:c},{scrollToIndex:l}])=>{let u=K();return z(U(u,W(t,c,n,a,i,r,s),W(e),H(([[e,t,n,r,i,a,s,c],l])=>{let{calculateViewLocation:u=Gi,done:d,...f}=e,p=ni(e,t,r-1),m=ei(p,t.offsetTree,l)+i+a,h=m+wr(t.sizeTree,p)[1],g=c+a,_=u({itemBottom:h,itemTop:m,locationParams:f,viewportBottom:c+n-s,viewportTop:g});return _===null?d?.():d&&Hn(U(o,V(e=>!e),qn(R(o)?1:2)),d),_}),V(e=>e!==null)),l),{scrollIntoView:u}},F(di,br,_i,Vi,or),{singleton:!0});function qi(e){return e===!1?!1:e===`smooth`?`smooth`:`auto`}var Ji=(e,t)=>typeof e==`function`?qi(e(t)):t&&qi(e),Yi=q(([{listRefresh:e,totalCount:t,fixedItemSize:n,data:r},{atBottomState:i,isAtBottom:a},{scrollToIndex:o},{scrolledToInitialItem:s},{didMount:c,propsReady:l},{log:u},{scrollingInProgress:d},{context:f},{scrollIntoView:p}])=>{let m=G(!1),h=K(),g=null;function _(e){L(o,{align:`end`,behavior:e,index:`LAST`})}I(U(tr(U(J(t),qn(1)),c),W(J(m),a,s,d),H(([[e,t],n,r,i,a])=>{let o=t&&i,s=`auto`;return o&&(s=Ji(n,r||a),o&&=s!==!1),{followOutputBehavior:s,shouldFollow:o,totalCount:e}}),V(({shouldFollow:e})=>e)),({followOutputBehavior:t,totalCount:r})=>{g!==null&&(g(),g=null),R(n)===void 0?g=Hn(e,()=>{R(u)(`following output to `,{totalCount:r},rr.DEBUG),_(t),g=null}):requestAnimationFrame(()=>{R(u)(`following output to `,{totalCount:r},rr.DEBUG),_(t)})});function v(e){let t=Hn(i,t=>{e&&!t.atBottom&&t.notAtBottomBecause===`SIZE_INCREASED`&&g===null&&(R(u)(`scrolling to bottom due to increased size`,{},rr.DEBUG),_(`auto`))});setTimeout(t,100)}I(U(tr(J(m),t,l),V(([e,,t])=>e!==!1&&t),Kn(({value:e},[,t])=>({refreshed:e===t,value:t}),{refreshed:!1,value:0}),V(({refreshed:e})=>e),W(m,t)),([,e])=>{R(s)&&v(e!==!1)}),I(h,()=>{v(R(m)!==!1)}),I(tr(J(m),i),([e,t])=>{e!==!1&&!t.atBottom&&t.notAtBottomBecause===`VIEWPORT_HEIGHT_DECREASING`&&_(`auto`)});let y=G(null),b=K();return z(nr(U(J(r),H(e=>e?.length??0)),U(J(t))),b),I(U(tr(U(b,qn(1)),c),W(J(y),s,d,f),H(([[e,t],n,r,i,a])=>t&&r&&n?.({context:a,totalCount:e,scrollingInProgress:i})),V(e=>!!e),Jn(0)),t=>{g!==null&&(g(),g=null),R(n)===void 0?g=Hn(e,()=>{R(u)(`scrolling into view`,{}),L(p,t),g=null}):requestAnimationFrame(()=>{R(u)(`scrolling into view`,{}),L(p,t)})}),{autoscrollToBottom:h,followOutput:m,scrollIntoViewOnChange:y}},F(di,Oi,_i,xi,mi,or,br,Wi,Ki)),Xi=q(([{data:e,firstItemIndex:t,gap:n,sizes:r},{initialTopMostItemIndex:i},{initialItemCount:a,listState:o},{didMount:s}])=>(z(U(s,W(a),V(([,e])=>e!==0),W(i,r,t,n,e),H(([[,e],t,n,r,i,a=[]])=>Ri(e,t,n,r,i,a))),o),{}),F(di,xi,Vi,mi),{singleton:!0}),Zi=q(([{didMount:e},{scrollTo:t},{listState:n}])=>{let r=G(0);return I(U(e,W(r),V(([,e])=>e!==0),H(([,e])=>({top:e}))),e=>{Hn(U(n,qn(1),V(e=>e.items.length>1)),()=>{requestAnimationFrame(()=>{L(t,e)})})}),{initialScrollTop:r}},F(mi,br,Vi),{singleton:!0}),Qi=q(([{scrollVelocity:e}])=>{let t=G(!1),n=K(),r=G(!1);return z(U(e,W(r,t,n),V(([e,t])=>t!==!1&&t!==void 0),H(([e,t,n,r])=>{let{enter:i,exit:a}=t;if(n){if(a(e,r))return!1}else if(i(e,r))return!0;return n}),B()),t),I(U(tr(t,e,n),W(r)),([[e,t,n],r])=>{e&&r!==!1&&r!==void 0&&r.change&&r.change(t,n)}),{isSeeking:t,scrollSeekConfiguration:r,scrollSeekRangeChanged:n,scrollVelocity:e}},F(Oi),{singleton:!0}),$i=q(([{scrollContainerState:e,scrollTo:t}])=>{let n=K(),r=K(),i=K(),a=G(!1),o=G(void 0);return z(U(tr(n,r),H(([{scrollTop:e,viewportHeight:t},{offsetTop:n,listHeight:r}])=>({scrollHeight:r,scrollTop:Math.max(0,e-n),viewportHeight:t}))),e),z(U(t,W(r),H(([e,{offsetTop:t}])=>({...e,top:e.top+t}))),i),{customScrollParent:o,useWindowScroll:a,windowScrollContainerState:n,windowScrollTo:i,windowViewportRect:r}},F(br)),ea=q(([{sizeRanges:e,sizes:t},{headerHeight:n,scrollTop:r},{initialTopMostItemIndex:i},{didMount:a},{useWindowScroll:o,windowScrollContainerState:s,windowViewportRect:c}])=>{let l=K(),u=G(void 0),d=G(null),f=G(null);return z(s,d),z(c,f),I(U(l,W(t,r,o,d,f,n)),([e,t,n,r,i,a,o])=>{let s=ai(t.sizeTree);r&&i!==null&&a!==null&&(n=i.scrollTop-a.offsetTop),n-=o,e({ranges:s,scrollTop:n})}),z(U(u,V(In),H(ta)),i),z(U(a,W(u),V(([,e])=>e!==void 0),B(),H(([,e])=>e.ranges)),e),{getState:l,restoreStateFrom:u}},F(di,br,xi,mi,$i));function ta(e){return{align:`start`,index:0,offset:e.scrollTop}}var na=q(([{topItemsIndexes:e}])=>{let t=G(0);return z(U(t,V(e=>e>=0),H(e=>Array.from({length:e}).map((e,t)=>t))),e),{topItemCount:t}},F(Vi));function ra(e){let t=!1,n;return(()=>(t||(t=!0,n=e()),n))}var ia=ra(()=>/iP(ad|od|hone)/i.test(navigator.userAgent)&&/WebKit/i.test(navigator.userAgent)),aa=q(([{data:e,defaultItemSize:t,firstItemIndex:n,fixedItemSize:r,fixedGroupSize:i,gap:a,groupIndices:o,heightEstimates:s,itemSize:c,sizeRanges:l,sizes:u,statefulTotalCount:d,totalCount:f,trackItemSizes:p},{initialItemFinalLocationReached:m,initialTopMostItemIndex:h,scrolledToInitialItem:g},_,v,y,b,{scrollToIndex:x},S,{topItemCount:C},{groupCounts:w},T])=>{let{listState:E,minOverscanItemCount:D,topItemsIndexes:ee,rangeChanged:te,...ne}=b;return z(te,T.scrollSeekRangeChanged),z(U(T.windowViewportRect,H(e=>e.visibleHeight)),_.viewportHeight),{data:e,defaultItemHeight:t,firstItemIndex:n,fixedItemHeight:r,fixedGroupHeight:i,gap:a,groupCounts:w,heightEstimates:s,initialItemFinalLocationReached:m,initialTopMostItemIndex:h,scrolledToInitialItem:g,sizeRanges:l,topItemCount:C,topItemsIndexes:ee,totalCount:f,...y,groupIndices:o,itemSize:c,listState:E,minOverscanItemCount:D,scrollToIndex:x,statefulTotalCount:d,trackItemSizes:p,rangeChanged:te,...ne,...T,..._,sizes:u,...v}},F(di,xi,br,ea,Yi,Vi,_i,q(([{deviation:e,scrollBy:t,scrollingInProgress:n,scrollTop:r},{isAtBottom:i,isScrolling:a,lastJumpDueToItemResize:o,scrollDirection:s},{listState:c},{beforeUnshiftWith:l,gap:u,shiftWithOffset:d,sizes:f},{log:p},{recalcInProgress:m}])=>{let h=Qn(U(c,W(o),Kn(([,e,t,n],[{bottom:r,items:i,offsetBottom:a,totalCount:o},s])=>{let c=r+a,l=0;return t===o&&e.length>0&&i.length>0&&(i[0].originalIndex===0&&e[0].originalIndex===0||(l=c-n,l!==0&&(l+=s))),[l,i,o,c]},[0,[],0,0]),V(([e])=>e!==0),W(r,s,n,i,p,m),V(([,e,t,n,,,r])=>!r&&!n&&e!==0&&t===Ci),H(([[e],,,,,t])=>(t(`Upward scrolling compensation`,{amount:e},rr.DEBUG),e))));function g(n){n>0?(L(t,{behavior:`auto`,top:-n}),L(e,0)):(L(e,0),L(t,{behavior:`auto`,top:-n}))}return I(U(h,W(e,a)),([t,n,r])=>{r&&ia()?L(e,n-t):g(-t)}),I(U(tr(Zn(a,!1),e,m),V(([e,t,n])=>!e&&!n&&t!==0),H(([e,t])=>t),Jn(1)),g),z(U(d,H(e=>({top:-e}))),t),I(U(l,W(f,u),H(([e,{groupIndices:t,lastSize:n,sizeTree:r},i])=>{function a(e){return e*(n+i)}if(t.length===0)return a(e);let o=0,s=Cr(r,0),c=0,l=0;for(;c<e;){c++,o+=s;let n=t.length===l+1?1/0:t[l+1]-t[l]-1;c+n>e&&(o-=s,n=e-c+1),c+=n,o+=a(n),l++}return o})),n=>{L(e,n),requestAnimationFrame(()=>{L(t,{top:n}),requestAnimationFrame(()=>{L(e,0),L(m,!1)})})}),{deviation:e}},F(br,Oi,Vi,di,or,Ur)),na,pi,q(([e,t,n,r,i,a,o,s,c,l,u])=>({...e,...t,...n,...r,...i,...a,...o,...s,...c,...l,...u}),F(Pi,Xi,mi,Qi,Hi,Zi,Ui,$i,Ki,or,Wi))));function oa(e,t){let n={},r={},i=0,a=e.length;for(;i<a;)r[e[i]]=1,i+=1;for(let e in t)Object.hasOwn(r,e)||(n[e]=t[e]);return n}var sa=typeof document<`u`?N.useLayoutEffect:N.useEffect;function ca(e,t,n){let r=Object.keys(t.required||{}),i=Object.keys(t.optional||{}),a=Object.keys(t.methods||{}),o=Object.keys(t.events||{}),s=N.createContext({});function c(e,n){e.propsReady!==void 0&&L(e.propsReady,!1);for(let i of r){let r=e[t.required[i]];L(r,n[i])}for(let r of i)if(r in n){let i=e[t.optional[r]];L(i,n[r])}e.propsReady!==void 0&&L(e.propsReady,!0)}function l(e){return a.reduce((n,r)=>(n[r]=n=>{let i=e[t.methods[r]];L(i,n)},n),{})}function u(e){return o.reduce((n,r)=>(n[r]=Xn(e[t.events[r]]),n),{})}return{Component:N.forwardRef(function(t,a){let{children:d,...f}=t,[p]=N.useState(()=>zn(er(e),e=>{c(e,f)})),[m]=N.useState(Pn(u,p));sa(()=>{for(let e of o)e in f&&I(m[e],f[e]);return()=>{Object.values(m).map(Vn)}},[f,m,p]),sa(()=>{c(p,f)}),N.useImperativeHandle(a,jn(l(p)));let h=n;return(0,P.jsx)(s.Provider,{value:p,children:n===void 0?d:(0,P.jsx)(h,{...oa([...r,...i,...o],f),children:d})})}),useEmitter:(e,t)=>{let n=N.useContext(s)[e];sa(()=>I(n,t),[t,n])},useEmitterValue:e=>{let t=N.useContext(s)[e],n=N.useCallback(e=>I(t,e),[t]);return N.useSyncExternalStore(n,()=>R(t),()=>R(t))},usePublisher:e=>{let t=N.useContext(s);return N.useCallback(n=>{L(t[e],n)},[t,e])}}}var la=N.createContext(void 0),ua=N.createContext(void 0),da=`-webkit-sticky`,fa=`sticky`,pa=ra(()=>{if(typeof document>`u`)return fa;let e=document.createElement(`div`);return e.style.position=da,e.style.position===da?da:fa}),ma=typeof document<`u`?N.useLayoutEffect:N.useEffect;function ha(e){return`self`in e}function ga(e){return`body`in e}function _a(e,t,n,r=Rn,i,a){let o=N.useRef(null),s=N.useRef(null),c=N.useRef(null),l=N.useCallback(n=>{let r,i,o,l=n.target;if(ga(l)||ha(l)){let e=ha(l)?l:l.defaultView;o=a===!0?fr(e,e.scrollX):e.scrollY,r=a===!0?e.document.documentElement.scrollWidth:e.document.documentElement.scrollHeight,i=a===!0?e.innerWidth:e.innerHeight}else o=a===!0?fr(l,l.scrollLeft):l.scrollTop,r=a===!0?l.scrollWidth:l.scrollHeight,i=a===!0?l.offsetWidth:l.offsetHeight;let u=()=>{e({scrollHeight:r,scrollTop:Math.max(o,0),viewportHeight:i})};n.suppressFlushSync===!0?u():gn.flushSync(u),s.current!==null&&(o===s.current||o<=0||o===r-i)&&(s.current=null,t(!0),c.current&&=(clearTimeout(c.current),null))},[e,t,a]);N.useEffect(()=>{let e=i||o.current;return ur(e),r(i||o.current),l({suppressFlushSync:!0,target:e}),e.addEventListener(`scroll`,l,{passive:!0}),()=>{ur(e),r(null),e.removeEventListener(`scroll`,l)}},[o,l,n,r,i]);function u(n){let r=o.current;if(!r||(a===!0?`offsetWidth`in r&&r.offsetWidth===0:`offsetHeight`in r&&r.offsetHeight===0))return;let i=n.behavior===`smooth`,l,u,d;ha(r)?(u=Math.max(qr(r.document.documentElement,a===!0?`width`:`height`),a===!0?r.document.documentElement.scrollWidth:r.document.documentElement.scrollHeight),l=a===!0?r.innerWidth:r.innerHeight,d=a===!0?fr(r,r.scrollX):r.scrollY):(u=r[a===!0?`scrollWidth`:`scrollHeight`],l=qr(r,a===!0?`width`:`height`),d=a===!0?fr(r,r.scrollLeft):r.scrollTop);let f=u-l;if(n.top===void 0){r.scrollTo(n);return}let p=Math.ceil(Math.max(Math.min(f,n.top),0));if(n.top=p,Si(l,u)||p===d){e({scrollHeight:u,scrollTop:d,viewportHeight:l}),i&&t(!0);return}i?(s.current=p,c.current&&clearTimeout(c.current),c.current=setTimeout(()=>{c.current=null,s.current=null,t(!0)},1e3)):s.current=null,a===!0&&(n={...n.behavior===void 0?{}:{behavior:n.behavior},left:pr(r,p)}),r.scrollTo(n)}function d(e){a===!0&&(e={...e.behavior===void 0?{}:{behavior:e.behavior},...e.top===void 0?{}:{left:pr(o.current,e.top)}}),o.current.scrollBy(e)}return{scrollByCallback:d,scrollerRef:o,scrollToCallback:u}}function va(e){return e}var ya=q(([e,t])=>({...e,...t}),F(aa,q(()=>{let e=G(e=>`Item ${e}`),t=G(e=>`Group ${e}`),n=G({}),r=G(va),i=G(`div`),a=G(Rn),o=(e,t=null)=>Zn(U(n,H(t=>t[e]),B()),t);return{components:n,computeItemKey:r,EmptyPlaceholder:o(`EmptyPlaceholder`),FooterComponent:o(`Footer`),GroupComponent:o(`Group`,`div`),groupContent:t,HeaderComponent:o(`Header`),HeaderFooterTag:i,ItemComponent:o(`Item`,`div`),itemContent:e,ListComponent:o(`List`,`div`),ScrollerComponent:o(`Scroller`,`div`),scrollerRef:a,ScrollSeekPlaceholder:o(`ScrollSeekPlaceholder`),TopItemListComponent:o(`TopItemList`)}}))),ba=({height:e})=>(0,P.jsx)(`div`,{style:{height:e}}),xa={overflowAnchor:`none`,position:pa(),zIndex:1},Sa={overflowAnchor:`none`},Ca={...Sa,display:`inline-block`,height:`100%`},wa=N.memo(function({showTopList:e=!1}){let t=Z(`listState`),n=Ba(`sizeRanges`),r=Z(`useWindowScroll`),i=Z(`customScrollParent`),a=Ba(`windowScrollContainerState`),o=Ba(`scrollContainerState`),s=i||r?a:o,c=Z(`itemContent`),l=Z(`context`),u=Z(`groupContent`),d=Z(`trackItemSizes`),f=Z(`itemSize`),p=Z(`log`),m=Ba(`gap`),h=Z(`horizontalDirection`),{callbackRef:g}=gr(n,f,d,e?Rn:s,p,m,i,h,Z(`skipAnimationFrameInResizeObserver`)),[_,v]=N.useState(0);za(`deviation`,e=>{_!==e&&v(e)});let y=Z(`EmptyPlaceholder`),b=Z(`ScrollSeekPlaceholder`)??ba,x=Z(`ListComponent`),S=Z(`ItemComponent`),C=Z(`GroupComponent`),w=Z(`computeItemKey`),T=Z(`isSeeking`),E=Z(`groupIndices`).length>0,D=Z(`alignToBottom`),ee=Z(`initialItemFinalLocationReached`),te=e?{}:{boxSizing:`border-box`,...h?{display:`inline-block`,height:`100%`,marginInlineStart:_===0?D?`auto`:0:_,paddingInlineEnd:t.offsetBottom,paddingInlineStart:t.offsetTop,whiteSpace:`nowrap`}:{marginTop:_===0?D?`auto`:0:_,paddingBottom:t.offsetBottom,paddingTop:t.offsetTop},...ee?{}:{visibility:`hidden`}};return!e&&t.totalCount===0&&y!=null?(0,P.jsx)(y,{...X(y,l)}):(0,P.jsx)(x,{...X(x,l),"data-testid":e?`virtuoso-top-item-list`:`virtuoso-item-list`,ref:g,style:te,children:(e?t.topItems:t.items).map(e=>{let n=e.originalIndex,r=w(n+t.firstItemIndex,e.data,l);return T?(0,N.createElement)(b,{...X(b,l),height:e.size,index:e.index,key:r,type:e.type||`item`,...e.type===`group`?{}:{groupIndex:e.groupIndex}}):e.type===`group`?(0,N.createElement)(C,{...X(C,l),"data-index":n,"data-item-index":e.index,"data-known-size":e.size,key:r,style:xa},u(e.index,l)):(0,N.createElement)(S,{...X(S,l),...Aa(S,e.data),"data-index":n,"data-item-group-index":e.groupIndex,"data-item-index":e.index,"data-known-size":e.size,key:r,style:h?Ca:Sa},E?c(e.index,e.groupIndex,e.data,l):c(e.index,e.data,l))})})}),Ta={height:`100%`,outline:`none`,overflowY:`auto`,position:`relative`,WebkitOverflowScrolling:`touch`},Ea={outline:`none`,overflowX:`auto`,position:`relative`},Da=e=>({height:`100%`,position:`absolute`,top:0,width:`100%`,...e?{display:`flex`,flexDirection:`column`}:void 0}),Oa=(e,t,n=0)=>({...Da(e),position:t?`relative`:`absolute`,top:t?-n:0}),ka={position:pa(),top:0,width:`100%`,zIndex:1};function X(e,t){if(typeof e!=`string`)return{context:t}}function Aa(e,t){return{item:typeof e==`string`?void 0:t}}var ja=N.memo(function(){let e=Z(`HeaderComponent`),t=Ba(`headerHeight`),n=Z(`HeaderFooterTag`),r=mr(N.useMemo(()=>e=>{t(qr(e,`height`))},[t]),!0,Z(`skipAnimationFrameInResizeObserver`)),i=Z(`context`);return e==null?null:(0,P.jsx)(n,{ref:r,children:(0,P.jsx)(e,{...X(e,i)})})}),Ma=N.memo(function(){let e=Z(`FooterComponent`),t=Ba(`footerHeight`),n=Z(`HeaderFooterTag`),r=mr(N.useMemo(()=>e=>{t(qr(e,`height`))},[t]),!0,Z(`skipAnimationFrameInResizeObserver`)),i=Z(`context`);return e==null?null:(0,P.jsx)(n,{ref:r,children:(0,P.jsx)(e,{...X(e,i)})})});function Na({useEmitter:e,useEmitterValue:t,usePublisher:n}){return N.memo(function({children:r,style:i,context:a,...o}){let s=n(`scrollContainerState`),c=t(`ScrollerComponent`),l=n(`smoothScrollTargetReached`),u=t(`scrollerRef`),d=t(`horizontalDirection`)||!1,{scrollByCallback:f,scrollerRef:p,scrollToCallback:m}=_a(s,l,c,u,void 0,d);return e(`scrollTo`,m),e(`scrollBy`,f),(0,P.jsx)(c,{"data-testid":`virtuoso-scroller`,"data-virtuoso-scroller":!0,ref:p,style:{...d?Ea:Ta,...i},tabIndex:0,...o,...X(c,a),children:r})})}function Pa({useEmitter:e,useEmitterValue:t,usePublisher:n}){return N.memo(function({children:r,style:i,context:a,...o}){let s=n(`windowScrollContainerState`),c=t(`ScrollerComponent`),l=n(`smoothScrollTargetReached`),u=t(`totalListHeight`),d=t(`deviation`),f=t(`customScrollParent`),p=N.useRef(null),{scrollByCallback:m,scrollerRef:h,scrollToCallback:g}=_a(s,l,c,t(`scrollerRef`),f);return ma(()=>(h.current=f||p.current?.ownerDocument.defaultView,()=>{h.current=null}),[h,f]),e(`windowScrollTo`,g),e(`scrollBy`,m),(0,P.jsx)(c,{ref:p,"data-virtuoso-scroller":!0,style:{position:`relative`,...i,...u===0?void 0:{height:u+d}},...o,...X(c,a),children:r})})}var Fa=({children:e})=>{let t=N.useContext(la),n=Ba(`viewportHeight`),r=Ba(`fixedItemHeight`),i=Z(`alignToBottom`),a=Z(`horizontalDirection`),o=mr(N.useMemo(()=>Nn(n,e=>qr(e,a?`width`:`height`)),[n,a]),!0,Z(`skipAnimationFrameInResizeObserver`));return N.useEffect(()=>{t&&(n(t.viewportHeight),r(t.itemHeight))},[t,n,r]),(0,P.jsx)(`div`,{"data-viewport-type":`element`,ref:o,style:Da(i),children:e})},Ia=({children:e})=>{let t=N.useContext(la),n=Ba(`windowViewportRect`),r=Ba(`fixedItemHeight`),i=Z(`customScrollParent`),a=Z(`useWindowScroll`),o=Z(`topListHeight`),s=yr(n,i,Z(`skipAnimationFrameInResizeObserver`)),c=Z(`alignToBottom`);return N.useEffect(()=>{t&&(r(t.itemHeight),n({listHeight:0,offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:100}))},[t,n,r]),(0,P.jsx)(`div`,{"data-viewport-type":`window`,ref:s,style:Oa(c,a,o),children:e})},La=({children:e})=>{let t=Z(`TopItemListComponent`)??`div`,n=Z(`headerHeight`);return(0,P.jsx)(t,{style:{...ka,marginTop:`${n}px`},...X(t,Z(`context`)),children:e})},{Component:Ra,useEmitter:za,useEmitterValue:Z,usePublisher:Ba}=ca(ya,{optional:{restoreStateFrom:`restoreStateFrom`,context:`context`,followOutput:`followOutput`,scrollIntoViewOnChange:`scrollIntoViewOnChange`,itemContent:`itemContent`,groupContent:`groupContent`,overscan:`overscan`,increaseViewportBy:`increaseViewportBy`,minOverscanItemCount:`minOverscanItemCount`,totalCount:`totalCount`,groupCounts:`groupCounts`,topItemCount:`topItemCount`,firstItemIndex:`firstItemIndex`,initialTopMostItemIndex:`initialTopMostItemIndex`,components:`components`,atBottomThreshold:`atBottomThreshold`,atTopThreshold:`atTopThreshold`,computeItemKey:`computeItemKey`,defaultItemHeight:`defaultItemHeight`,fixedGroupHeight:`fixedGroupHeight`,fixedItemHeight:`fixedItemHeight`,heightEstimates:`heightEstimates`,itemSize:`itemSize`,scrollSeekConfiguration:`scrollSeekConfiguration`,headerFooterTag:`HeaderFooterTag`,data:`data`,initialItemCount:`initialItemCount`,initialScrollTop:`initialScrollTop`,alignToBottom:`alignToBottom`,useWindowScroll:`useWindowScroll`,customScrollParent:`customScrollParent`,scrollerRef:`scrollerRef`,logLevel:`logLevel`,horizontalDirection:`horizontalDirection`,skipAnimationFrameInResizeObserver:`skipAnimationFrameInResizeObserver`},methods:{scrollToIndex:`scrollToIndex`,scrollIntoView:`scrollIntoView`,scrollTo:`scrollTo`,scrollBy:`scrollBy`,autoscrollToBottom:`autoscrollToBottom`,getState:`getState`},events:{isScrolling:`isScrolling`,endReached:`endReached`,startReached:`startReached`,rangeChanged:`rangeChanged`,atBottomStateChange:`atBottomStateChange`,atTopStateChange:`atTopStateChange`,totalListHeightChanged:`totalListHeightChanged`,itemsRendered:`itemsRendered`,groupIndices:`groupIndices`}},N.memo(function(e){let t=Z(`useWindowScroll`),n=Z(`topItemsIndexes`).length>0,r=Z(`customScrollParent`),i=Z(`context`);return(0,P.jsxs)(r||t?Ha:Va,{...e,context:i,children:[n&&(0,P.jsx)(La,{children:(0,P.jsx)(wa,{showTopList:!0})}),(0,P.jsxs)(r||t?Ia:Fa,{children:[(0,P.jsx)(ja,{}),(0,P.jsx)(wa,{}),(0,P.jsx)(Ma,{})]})]})})),Va=Na({useEmitter:za,useEmitterValue:Z,usePublisher:Ba}),Ha=Pa({useEmitter:za,useEmitterValue:Z,usePublisher:Ba}),Ua=Ra,Wa=q(([e,t])=>({...e,...t}),F(aa,q(()=>{let e=G(e=>(0,P.jsxs)(`td`,{children:[`Item $`,e]})),t=G(null),n=G(e=>(0,P.jsxs)(`td`,{colSpan:1e3,children:[`Group `,e]})),r=G(null),i=G(null),a=G({}),o=G(va),s=G(Rn),c=(e,t=null)=>Zn(U(a,H(t=>t[e]),B()),t);return{components:a,computeItemKey:o,context:t,EmptyPlaceholder:c(`EmptyPlaceholder`),FillerRow:c(`FillerRow`),fixedFooterContent:i,fixedHeaderContent:r,itemContent:e,groupContent:n,ScrollerComponent:c(`Scroller`,`div`),scrollerRef:s,ScrollSeekPlaceholder:c(`ScrollSeekPlaceholder`),TableBodyComponent:c(`TableBody`,`tbody`),TableComponent:c(`Table`,`table`),TableFooterComponent:c(`TableFoot`,`tfoot`),TableHeadComponent:c(`TableHead`,`thead`),TableRowComponent:c(`TableRow`,`tr`),GroupComponent:c(`Group`,`tr`)}}))),Ga=({height:e})=>(0,P.jsx)(`tr`,{children:(0,P.jsx)(`td`,{style:{height:e}})}),Ka=({height:e})=>(0,P.jsx)(`tr`,{children:(0,P.jsx)(`td`,{style:{border:0,height:e,padding:0}})}),qa={overflowAnchor:`none`},Ja={position:pa(),zIndex:2,overflowAnchor:`none`},Ya=N.memo(function({showTopList:e=!1}){let t=Q(`listState`),n=Q(`computeItemKey`),r=Q(`firstItemIndex`),i=Q(`context`),a=Q(`isSeeking`),o=Q(`fixedHeaderHeight`),s=Q(`groupIndices`).length>0,c=Q(`itemContent`),l=Q(`groupContent`),u=Q(`ScrollSeekPlaceholder`)??Ga,d=Q(`GroupComponent`),f=Q(`TableRowComponent`),p=(e?t.topItems:[]).reduce((e,t,n)=>(n===0?e.push(t.size):e.push(e[n-1]+t.size),e),[]);return(e?t.topItems:t.items).map(t=>{let m=t.originalIndex,h=n(m+r,t.data,i),g=e?m===0?0:p[m-1]:0;return a?(0,N.createElement)(u,{...X(u,i),height:t.size,index:t.index,key:h,type:t.type||`item`}):t.type===`group`?(0,N.createElement)(d,{...X(d,i),"data-index":m,"data-item-index":t.index,"data-known-size":t.size,key:h,style:{...Ja,top:o}},l(t.index,i)):(0,N.createElement)(f,{...X(f,i),...Aa(f,t.data),"data-index":m,"data-item-index":t.index,"data-known-size":t.size,"data-item-group-index":t.groupIndex,key:h,style:e?{...Ja,top:o+g}:qa},s?c(t.index,t.groupIndex,t.data,i):c(t.index,t.data,i))})}),Xa=N.memo(function(){let e=Q(`listState`),t=Q(`topItemsIndexes`).length>0,n=to(`sizeRanges`),r=Q(`useWindowScroll`),i=Q(`customScrollParent`),a=to(`windowScrollContainerState`),o=to(`scrollContainerState`),s=i||r?a:o,c=Q(`trackItemSizes`),{callbackRef:l,ref:u}=gr(n,Q(`itemSize`),c,s,Q(`log`),void 0,i,!1,Q(`skipAnimationFrameInResizeObserver`)),[d,f]=N.useState(0);eo(`deviation`,e=>{d!==e&&(u.current.style.marginTop=`${e}px`,f(e))});let p=Q(`EmptyPlaceholder`),m=Q(`FillerRow`)??Ka,h=Q(`TableBodyComponent`),g=Q(`paddingTopAddition`),_=Q(`statefulTotalCount`),v=Q(`context`);if(_===0&&p!=null)return(0,P.jsx)(p,{...X(p,v)});let y=(t?e.topItems:[]).reduce((e,t)=>e+t.size,0),b=e.offsetTop+g+d-y,x=e.offsetBottom,S=b>0?(0,P.jsx)(m,{context:v,height:b},`padding-top`):null,C=x>0?(0,P.jsx)(m,{context:v,height:x},`padding-bottom`):null;return(0,P.jsxs)(h,{"data-testid":`virtuoso-item-list`,ref:l,...X(h,v),children:[S,t&&(0,P.jsx)(Ya,{showTopList:!0}),(0,P.jsx)(Ya,{}),C]})}),Za=({children:e})=>{let t=N.useContext(la),n=to(`viewportHeight`),r=to(`fixedItemHeight`),i=mr(N.useMemo(()=>Nn(n,e=>qr(e,`height`)),[n]),!0,Q(`skipAnimationFrameInResizeObserver`));return N.useEffect(()=>{t&&(n(t.viewportHeight),r(t.itemHeight))},[t,n,r]),(0,P.jsx)(`div`,{"data-viewport-type":`element`,ref:i,style:Da(!1),children:e})},Qa=({children:e})=>{let t=N.useContext(la),n=to(`windowViewportRect`),r=to(`fixedItemHeight`),i=Q(`customScrollParent`),a=Q(`useWindowScroll`),o=yr(n,i,Q(`skipAnimationFrameInResizeObserver`));return N.useEffect(()=>{t&&(r(t.itemHeight),n({listHeight:0,offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:100}))},[t,n,r]),(0,P.jsx)(`div`,{"data-viewport-type":`window`,ref:o,style:Oa(!1,a),children:e})},{Component:$a,useEmitter:eo,useEmitterValue:Q,usePublisher:to}=ca(Wa,{optional:{restoreStateFrom:`restoreStateFrom`,context:`context`,followOutput:`followOutput`,firstItemIndex:`firstItemIndex`,itemContent:`itemContent`,groupContent:`groupContent`,fixedHeaderContent:`fixedHeaderContent`,fixedFooterContent:`fixedFooterContent`,overscan:`overscan`,increaseViewportBy:`increaseViewportBy`,minOverscanItemCount:`minOverscanItemCount`,totalCount:`totalCount`,topItemCount:`topItemCount`,initialTopMostItemIndex:`initialTopMostItemIndex`,components:`components`,groupCounts:`groupCounts`,atBottomThreshold:`atBottomThreshold`,atTopThreshold:`atTopThreshold`,computeItemKey:`computeItemKey`,defaultItemHeight:`defaultItemHeight`,fixedGroupHeight:`fixedGroupHeight`,fixedItemHeight:`fixedItemHeight`,itemSize:`itemSize`,scrollSeekConfiguration:`scrollSeekConfiguration`,data:`data`,initialItemCount:`initialItemCount`,initialScrollTop:`initialScrollTop`,alignToBottom:`alignToBottom`,useWindowScroll:`useWindowScroll`,customScrollParent:`customScrollParent`,scrollerRef:`scrollerRef`,logLevel:`logLevel`},methods:{scrollToIndex:`scrollToIndex`,scrollIntoView:`scrollIntoView`,scrollTo:`scrollTo`,scrollBy:`scrollBy`,getState:`getState`},events:{isScrolling:`isScrolling`,endReached:`endReached`,startReached:`startReached`,rangeChanged:`rangeChanged`,atBottomStateChange:`atBottomStateChange`,atTopStateChange:`atTopStateChange`,totalListHeightChanged:`totalListHeightChanged`,itemsRendered:`itemsRendered`,groupIndices:`groupIndices`}},N.memo(function(e){let t=Q(`useWindowScroll`),n=Q(`customScrollParent`),r=to(`fixedHeaderHeight`),i=to(`fixedFooterHeight`),a=Q(`fixedHeaderContent`),o=Q(`fixedFooterContent`),s=Q(`context`),c=mr(N.useMemo(()=>Nn(r,e=>qr(e,`height`)),[r]),!0,Q(`skipAnimationFrameInResizeObserver`)),l=mr(N.useMemo(()=>Nn(i,e=>qr(e,`height`)),[i]),!0,Q(`skipAnimationFrameInResizeObserver`)),u=n||t?ro:no,d=n||t?Qa:Za,f=Q(`TableComponent`),p=Q(`TableHeadComponent`),m=Q(`TableFooterComponent`),h=a?(0,P.jsx)(p,{ref:c,style:{position:`sticky`,top:0,zIndex:2},...X(p,s),children:a()},`TableHead`):null,g=o?(0,P.jsx)(m,{ref:l,style:{bottom:0,position:`sticky`,zIndex:1},...X(m,s),children:o()},`TableFoot`):null;return(0,P.jsx)(u,{...e,...X(u,s),children:(0,P.jsx)(d,{children:(0,P.jsxs)(f,{style:{borderSpacing:0,overflowAnchor:`none`},...X(f,s),children:[h,(0,P.jsx)(Xa,{},`TableBody`),g]})})})})),no=Na({useEmitter:eo,useEmitterValue:Q,usePublisher:to}),ro=Pa({useEmitter:eo,useEmitterValue:Q,usePublisher:to}),io={bottom:0,itemHeight:0,items:[],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},ao={bottom:0,itemHeight:0,items:[{index:0}],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},{ceil:oo,floor:so,max:co,min:lo,round:uo}=Math;function fo(e,t,n){return Array.from({length:t-e+1}).map((t,r)=>({data:n===null?null:n[r+e],index:r+e}))}function po(e){return{...ao,items:e}}function mo(e,t){return e!==void 0&&e.width===t.width&&e.height===t.height}function ho(e,t){return e!==void 0&&e.column===t.column&&e.row===t.row}var go=q(([{increaseViewportBy:e,listBoundary:t,overscan:n,visibleRange:r},{footerHeight:i,headerHeight:a,scrollBy:o,scrollContainerState:s,scrollTo:c,scrollTop:l,smoothScrollTargetReached:u,viewportHeight:d},f,p,{didMount:m,propsReady:h},{customScrollParent:g,useWindowScroll:_,windowScrollContainerState:v,windowScrollTo:y,windowViewportRect:b},x])=>{let S=G(0),C=G(0),w=G(io),T=G({height:0,width:0}),E=G({height:0,width:0}),D=K(),ee=K(),te=G(0),ne=G(null),O=G({column:0,row:0}),re=K(),ie=K(),ae=G(!1),oe=G(0),se=G(!0),ce=G(!1),le=G(!1);I(U(m,W(oe),V(([e,t])=>t!==0)),()=>{L(se,!1)}),I(U(tr(m,se,E,T,oe,ce),V(([e,t,n,r,,i])=>e&&!t&&n.height!==0&&r.height!==0&&!i)),([,,,,e])=>{L(ce,!0),yi(1,()=>{L(D,e)}),Hn(U(l),()=>{L(t,[0,0]),L(se,!0)})}),z(U(ie,V(e=>e!=null&&e.scrollTop>0),Gn(0)),C),I(U(m,W(ie),V(([,e])=>e!=null)),([,e])=>{e&&(L(T,e.viewport),L(E,e.item),L(O,e.gap),e.scrollTop>0&&(L(ae,!0),Hn(U(l,qn(1)),e=>{L(ae,!1)}),L(c,{top:e.scrollTop})))}),z(U(T,H(({height:e})=>e)),d),z(U(tr(J(T,mo),J(E,mo),J(O,(e,t)=>e!==void 0&&e.column===t.column&&e.row===t.row),J(l)),H(([e,t,n,r])=>({gap:n,item:t,scrollTop:r,viewport:e}))),re),z(U(tr(J(S),r,J(O,ho),J(E,mo),J(T,mo),J(ne),J(C),J(ae),J(se),J(oe)),V(([,,,,,,,e])=>!e),H(([e,[t,n],r,i,a,o,s,,c,l])=>{let{column:u,row:d}=r,{height:f,width:p}=i,{width:m}=a;if(s===0&&(e===0||m===0))return io;if(p===0){let t=bi(l,e);return po(fo(t,t+Math.max(s-1,0),o))}let h=_o(m,p,u),g,_;c?t===0&&n===0&&s>0?(g=0,_=s-1):(g=h*so((t+d)/(f+d)),_=h*oo((n+d)/(f+d))-1,_=lo(e-1,co(_,h-1)),g=lo(_,co(0,g))):(g=0,_=-1);let v=fo(g,_,o),{bottom:y,top:b}=vo(a,r,i,v),x=oo(e/h);return{bottom:y,itemHeight:f,items:v,itemWidth:p,offsetBottom:x*f+(x-1)*d-y,offsetTop:b,top:b}})),w),z(U(ne,V(e=>e!==null),H(e=>e.length)),S),z(U(tr(T,E,w,O),V(([e,t,{items:n}])=>n.length>0&&t.height!==0&&e.height!==0),H(([e,t,{items:n},r])=>{let{bottom:i,top:a}=vo(e,r,t,n);return[a,i]}),B(Hr)),t);let ue=G(!1);z(U(l,W(ue),H(([e,t])=>t||e!==0)),ue);let de=Qn(U(tr(w,S),V(([{items:e}])=>e.length>0),W(ue),V(([[e,t],n])=>{let r=e.items[e.items.length-1].index===t-1;return(n||e.bottom>0&&e.itemHeight>0&&e.offsetBottom===0&&e.items.length===t)&&r}),H(([[,e]])=>e-1),B())),fe=Qn(U(J(w),V(({items:e})=>e.length>0&&e[0].index===0),Gn(0),B())),pe=Qn(U(J(w),W(ae),V(([{items:e},t])=>e.length>0&&!t),H(([{items:e}])=>({endIndex:e[e.length-1].index,startIndex:e[0].index})),B(Vr),Jn(0)));z(pe,p.scrollSeekRangeChanged),z(U(D,W(T,E,S,O),H(([e,t,n,r,i])=>{let a=gi(e),{align:o,behavior:s,offset:c}=a,l=a.index;l===`LAST`&&(l=r-1),l=co(0,l,lo(r-1,l));let u=yo(t,i,n,l);return o===`end`?u=uo(u-t.height+n.height):o===`center`&&(u=uo(u-t.height/2+n.height/2)),c!==void 0&&c!==0&&(u+=c),{behavior:s,top:u}})),c);let me=Zn(U(w,H(e=>e.offsetBottom+e.bottom)),0);return z(U(b,H(e=>({height:e.visibleHeight,width:e.visibleWidth}))),T),{customScrollParent:g,data:ne,deviation:te,footerHeight:i,gap:O,headerHeight:a,increaseViewportBy:e,initialItemCount:C,itemDimensions:E,overscan:n,restoreStateFrom:ie,scrollBy:o,scrollContainerState:s,scrollHeight:ee,scrollTo:c,scrollToIndex:D,scrollTop:l,smoothScrollTargetReached:u,totalCount:S,useWindowScroll:_,viewportDimensions:T,windowScrollContainerState:v,windowScrollTo:y,windowViewportRect:b,...p,gridState:w,horizontalDirection:le,initialTopMostItemIndex:oe,totalListHeight:me,...f,endReached:de,propsReady:h,rangeChanged:pe,startReached:fe,stateChanged:re,stateRestoreInProgress:ae,...x}},F(Pi,br,Oi,Qi,mi,$i,or));function _o(e,t,n){return co(1,so((e+n)/(so(t)+n)))}function vo(e,t,n,r){let{height:i}=n;if(i===void 0||r.length===0)return{bottom:0,top:0};let a=yo(e,t,n,r[0].index);return{bottom:yo(e,t,n,r[r.length-1].index)+i,top:a}}function yo(e,t,n,r){let i=so(r/_o(e.width,n.width,t.column)),a=i*n.height+co(0,i-1)*t.row;return a>0?a+t.row:a}var bo=q(([e,t])=>({...e,...t}),F(go,q(()=>{let e=G(e=>`Item ${e}`),t=G({}),n=G(null),r=G(`virtuoso-grid-item`),i=G(`virtuoso-grid-list`),a=G(va),o=G(`div`),s=G(Rn),c=(e,n=null)=>Zn(U(t,H(t=>t[e]),B()),n),l=G(!1),u=G(!1);return z(J(u),l),{components:t,computeItemKey:a,context:n,FooterComponent:c(`Footer`),HeaderComponent:c(`Header`),headerFooterTag:o,itemClassName:r,ItemComponent:c(`Item`,`div`),itemContent:e,listClassName:i,ListComponent:c(`List`,`div`),readyStateChanged:l,reportReadyState:u,ScrollerComponent:c(`Scroller`,`div`),scrollerRef:s,ScrollSeekPlaceholder:c(`ScrollSeekPlaceholder`,`div`)}}))),xo=N.memo(function(){let e=$(`gridState`),t=$(`listClassName`),n=$(`itemClassName`),r=$(`itemContent`),i=$(`computeItemKey`),a=$(`isSeeking`),o=Oo(`scrollHeight`),s=$(`ItemComponent`),c=$(`ListComponent`),l=$(`ScrollSeekPlaceholder`),u=$(`context`),d=Oo(`itemDimensions`),f=Oo(`gap`),p=$(`log`),m=$(`stateRestoreInProgress`),h=Oo(`reportReadyState`),g=mr(N.useMemo(()=>e=>{let t=e.parentElement.parentElement.scrollHeight;o(t);let n=e.firstChild;if(n!==null){let{height:e,width:t}=n.getBoundingClientRect();d({height:e,width:t})}f({column:jo(`column-gap`,getComputedStyle(e).columnGap,p),row:jo(`row-gap`,getComputedStyle(e).rowGap,p)})},[o,d,f,p]),!0,!1);return ma(()=>{e.itemHeight>0&&e.itemWidth>0&&h(!0)},[e]),m?null:(0,P.jsx)(c,{className:t,ref:g,...X(c,u),"data-testid":`virtuoso-item-list`,style:{paddingBottom:e.offsetBottom,paddingTop:e.offsetTop},children:e.items.map(t=>{let o=i(t.index,t.data,u);return a?(0,P.jsx)(l,{...X(l,u),height:e.itemHeight,index:t.index,width:e.itemWidth},o):(0,N.createElement)(s,{...X(s,u),className:n,"data-index":t.index,key:o},r(t.index,t.data,u))})})}),So=N.memo(function(){let e=$(`HeaderComponent`),t=Oo(`headerHeight`),n=$(`headerFooterTag`),r=mr(N.useMemo(()=>e=>{t(qr(e,`height`))},[t]),!0,!1),i=$(`context`);return e==null?null:(0,P.jsx)(n,{ref:r,children:(0,P.jsx)(e,{...X(e,i)})})}),Co=N.memo(function(){let e=$(`FooterComponent`),t=Oo(`footerHeight`),n=$(`headerFooterTag`),r=mr(N.useMemo(()=>e=>{t(qr(e,`height`))},[t]),!0,!1),i=$(`context`);return e==null?null:(0,P.jsx)(n,{ref:r,children:(0,P.jsx)(e,{...X(e,i)})})}),wo=({children:e})=>{let t=N.useContext(ua),n=Oo(`itemDimensions`),r=Oo(`viewportDimensions`),i=mr(N.useMemo(()=>e=>{r(e.getBoundingClientRect())},[r]),!0,!1);return N.useEffect(()=>{t&&(r({height:t.viewportHeight,width:t.viewportWidth}),n({height:t.itemHeight,width:t.itemWidth}))},[t,r,n]),(0,P.jsx)(`div`,{ref:i,style:Da(!1),children:e})},To=({children:e})=>{let t=N.useContext(ua),n=Oo(`windowViewportRect`),r=Oo(`itemDimensions`),i=$(`customScrollParent`),a=$(`useWindowScroll`),o=yr(n,i,!1);return N.useEffect(()=>{t&&(r({height:t.itemHeight,width:t.itemWidth}),n({listHeight:0,offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:t.viewportWidth}))},[t,n,r]),(0,P.jsx)(`div`,{ref:o,style:Oa(!1,a),children:e})},{Component:Eo,useEmitter:Do,useEmitterValue:$,usePublisher:Oo}=ca(bo,{optional:{context:`context`,totalCount:`totalCount`,overscan:`overscan`,itemContent:`itemContent`,components:`components`,computeItemKey:`computeItemKey`,data:`data`,initialItemCount:`initialItemCount`,scrollSeekConfiguration:`scrollSeekConfiguration`,headerFooterTag:`headerFooterTag`,listClassName:`listClassName`,itemClassName:`itemClassName`,useWindowScroll:`useWindowScroll`,customScrollParent:`customScrollParent`,scrollerRef:`scrollerRef`,logLevel:`logLevel`,restoreStateFrom:`restoreStateFrom`,initialTopMostItemIndex:`initialTopMostItemIndex`,increaseViewportBy:`increaseViewportBy`},methods:{scrollTo:`scrollTo`,scrollBy:`scrollBy`,scrollToIndex:`scrollToIndex`},events:{isScrolling:`isScrolling`,endReached:`endReached`,startReached:`startReached`,rangeChanged:`rangeChanged`,atBottomStateChange:`atBottomStateChange`,atTopStateChange:`atTopStateChange`,stateChanged:`stateChanged`,readyStateChanged:`readyStateChanged`}},N.memo(function({...e}){let t=$(`useWindowScroll`),n=$(`customScrollParent`),r=n||t?Ao:ko,i=n||t?To:wo,a=$(`context`);return(0,P.jsx)(r,{...e,...X(r,a),children:(0,P.jsxs)(i,{children:[(0,P.jsx)(So,{}),(0,P.jsx)(xo,{}),(0,P.jsx)(Co,{})]})})})),ko=Na({useEmitter:Do,useEmitterValue:$,usePublisher:Oo}),Ao=Pa({useEmitter:Do,useEmitterValue:$,usePublisher:Oo});function jo(e,t,n){return t!==`normal`&&t?.endsWith(`px`)!==!0&&n(`${e} was not resolved to pixel value correctly`,t,rr.WARN),t===`normal`?0:parseInt(t??`0`,10)}function Mo({agentId:e,approval:t}){let n=A(e=>e.sendPermissionDecision),[r,i]=(0,N.useState)(null);if(!t)return null;if(t.questions&&t.questions.length)return(0,P.jsx)(Fo,{agentId:e,approval:t,questions:t.questions});let a=t,o=t.choices.length?t.choices:[{id:`approve`,label:`Approve`},{id:`deny`,label:`Deny`}];async function s(t){if(!r){i(t.id);try{await n(e,a.id,t.id)}finally{i(null)}}}let c=t.kind===`plan`;return(0,P.jsx)(`div`,{className:`flex justify-start mb-3`,children:(0,P.jsx)(`div`,{className:`max-w-[92%] md:max-w-[78%] rounded-2xl rounded-bl-sm bg-card ring-1 ring-amber-500/35 px-3.5 py-3 text-sm`,children:(0,P.jsxs)(`div`,{className:`flex items-start gap-2`,children:[c?(0,P.jsx)(ue,{className:`mt-0.5 h-4 w-4 shrink-0 text-amber-400`}):(0,P.jsx)(ye,{className:`mt-0.5 h-4 w-4 shrink-0 text-amber-400`}),(0,P.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,P.jsx)(`div`,{className:`text-sm font-medium text-amber-900 dark:text-amber-100`,children:t.title}),t.body&&(c?(0,P.jsx)(`div`,{className:`mt-2 max-h-72 overflow-auto rounded-md bg-background/60 p-2.5 text-xs leading-relaxed`,children:(0,P.jsx)(vt,{text:t.body,rawBody:t.body,className:`leading-relaxed`})}):(0,P.jsx)(`pre`,{className:`mt-2 max-h-44 overflow-auto whitespace-pre-wrap break-words rounded-md bg-background/80 p-2 font-mono text-xs leading-relaxed text-muted-foreground`,children:t.body})),(0,P.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:o.map(e=>(0,P.jsxs)(M,{size:`sm`,variant:e.id===`deny`||e.id===`abort`?`outline`:`default`,disabled:!!r,onClick:()=>void s(e),className:`h-7 px-2 text-xs`,children:[r===e.id&&(0,P.jsx)(fe,{className:`mr-1.5 h-3 w-3 animate-spin`}),e.label]},e.id))})]})]})})})}function No(e){return e?e.otherActive&&e.other.trim()?!0:e.labels.length>0:!1}function Po(e){let t=[...e.labels];return e.otherActive&&e.other.trim()&&t.push(e.other.trim()),t.join(`, `)}function Fo({agentId:e,approval:t,questions:n}){let r=A(e=>e.sendPermissionDecision),[i,a]=(0,N.useState)(0),[o,s]=(0,N.useState)({}),[c,l]=(0,N.useState)(null),u=n[Math.min(i,n.length-1)],d=o[i];if(!u)return null;let f=!!u.multiSelect,p=n.length,m=i===p-1,h=No(d),g=n.every((e,t)=>No(o[t])),v=!!c;function y(e){s(t=>{let n=t[i]??{labels:[],other:``,otherActive:!1};return{...t,[i]:{...n,...e}}})}function b(e){if(f){let t=d?.labels.includes(e);y({labels:t?(d?.labels??[]).filter(t=>t!==e):[...d?.labels??[],e]})}else y({labels:[e],otherActive:!1})}function x(){y(f?{otherActive:!d?.otherActive}:{labels:[],otherActive:!0})}async function C(){if(!(!g||v)){l(`answer`);try{let i={};n.forEach((e,t)=>{let n=o[t];n&&(i[e.question]=Po(n))}),await r(e,t.id,`answer`,i)}finally{l(null)}}}async function w(){if(!v){l(`dismiss`);try{await r(e,t.id,`deny`)}finally{l(null)}}}let T=!!d?.otherActive;return(0,P.jsx)(`div`,{className:`flex justify-start mb-3`,children:(0,P.jsxs)(`div`,{className:`w-full max-w-[92%] md:max-w-[78%] rounded-2xl rounded-bl-sm bg-card ring-1 ring-amber-500/35 px-3.5 py-3 text-sm`,children:[(0,P.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,P.jsx)(E,{className:`h-4 w-4 shrink-0 text-amber-400`}),(0,P.jsx)(`div`,{className:`text-sm font-medium text-amber-900 dark:text-amber-100`,children:t.title}),p>1&&(0,P.jsxs)(Ye,{variant:`outline`,className:`ml-auto h-5 px-1.5 text-[10px] text-muted-foreground`,children:[i+1,` / `,p]})]}),(0,P.jsxs)(`div`,{className:`mt-3`,children:[u.header&&(0,P.jsx)(`div`,{className:`text-[11px] font-semibold uppercase tracking-wide text-amber-700 dark:text-amber-300/80`,children:u.header}),(0,P.jsx)(`div`,{className:`mt-0.5 text-sm text-foreground whitespace-pre-wrap break-words`,children:u.question}),f&&(0,P.jsx)(`div`,{className:`mt-0.5 text-[11px] text-muted-foreground`,children:`Select all that apply`}),(0,P.jsxs)(`div`,{className:`mt-2 flex flex-col gap-1.5`,children:[u.options.map(e=>{let t=!!d?.labels.includes(e.label);return(0,P.jsxs)(`button`,{type:`button`,disabled:v,onClick:()=>b(e.label),className:S(`flex items-start gap-2 rounded-lg border px-2.5 py-2 text-left transition-colors`,t?`border-amber-500/60 bg-amber-500/10`:`border-border bg-background/60 hover:bg-background`,v&&`opacity-60`),children:[(0,P.jsx)(`span`,{className:S(`mt-0.5 flex h-4 w-4 shrink-0 items-center justify-center border text-amber-300`,f?`rounded`:`rounded-full`,t?`border-amber-400 bg-amber-400/20`:`border-muted-foreground/40`),children:t&&(0,P.jsx)(_e,{className:`h-3 w-3`})}),(0,P.jsxs)(`span`,{className:`min-w-0`,children:[(0,P.jsx)(`span`,{className:`text-sm text-foreground`,children:e.label}),e.description&&(0,P.jsx)(`span`,{className:`block text-xs text-muted-foreground`,children:e.description})]})]},e.label)}),(0,P.jsxs)(`button`,{type:`button`,disabled:v,onClick:x,className:S(`flex items-start gap-2 rounded-lg border px-2.5 py-2 text-left transition-colors`,T?`border-amber-500/60 bg-amber-500/10`:`border-border bg-background/60 hover:bg-background`,v&&`opacity-60`),children:[(0,P.jsx)(`span`,{className:S(`mt-0.5 flex h-4 w-4 shrink-0 items-center justify-center border text-amber-300`,f?`rounded`:`rounded-full`,T?`border-amber-400 bg-amber-400/20`:`border-muted-foreground/40`),children:T&&(0,P.jsx)(_e,{className:`h-3 w-3`})}),(0,P.jsx)(`span`,{className:`text-sm text-foreground`,children:`Other…`})]}),T&&(0,P.jsx)(pt,{autoFocus:!0,rows:2,disabled:v,value:d?.other??``,onChange:e=>y({other:e.target.value,otherActive:!0}),placeholder:`Type your answer`,className:`mt-1 text-sm`})]})]}),(0,P.jsxs)(`div`,{className:`mt-3 flex items-center gap-1.5`,children:[i>0&&(0,P.jsxs)(M,{size:`sm`,variant:`outline`,disabled:v,onClick:()=>a(e=>e-1),className:`h-7 px-2 text-xs`,children:[(0,P.jsx)(_,{className:`mr-1 h-3 w-3`}),`Back`]}),m?(0,P.jsxs)(M,{size:`sm`,disabled:v||!g,onClick:()=>void C(),className:`h-7 px-2 text-xs`,children:[c===`answer`&&(0,P.jsx)(fe,{className:`mr-1.5 h-3 w-3 animate-spin`}),`Send answer`,p>1?`s`:``]}):(0,P.jsxs)(M,{size:`sm`,disabled:v||!h,onClick:()=>a(e=>e+1),className:`h-7 px-2 text-xs`,children:[`Next`,(0,P.jsx)(ve,{className:`ml-1 h-3 w-3`})]}),(0,P.jsxs)(M,{size:`sm`,variant:`ghost`,disabled:v,onClick:()=>void w(),className:`ml-auto h-7 px-2 text-xs text-muted-foreground`,children:[c===`dismiss`&&(0,P.jsx)(fe,{className:`mr-1.5 h-3 w-3 animate-spin`}),`Dismiss`]})]})]})})}var Io=1e6,Lo=`px-3 md:px-4`;function Ro({context:e}){if(!e)return null;let{agentId:t,busy:n,pendingApproval:r,blockedLabel:i,canInterrupt:a,onInterrupt:o}=e,s=n&&!r;return!r&&!s?null:(0,P.jsxs)(`div`,{className:`${Lo} pb-3 md:pb-4`,children:[r&&(0,P.jsx)(Mo,{agentId:t,approval:r},r.id),s&&(0,P.jsx)(Pt,{blockedLabel:i,onInterrupt:a?o:void 0})]})}function zo(e){let t=e.findIndex(e=>e.type!==`date`&&e.type!==`created`),n=t>=0?t:0,r=e[n];return{key:r?Tt(r):null,index:n}}function Bo(e,t){let[n,r]=(0,N.useState)(()=>Io-t.length),i=(0,N.useRef)({agentId:e,anchor:zo(t)});return(0,N.useLayoutEffect)(()=>{let n=zo(t),a=i.current;r(n=>{if(a.agentId!==e)return Io-t.length;if(!a.anchor.key)return n;let r=t.findIndex(e=>Tt(e)===a.anchor.key)-a.anchor.index;return r>0?n-r:n}),i.current={agentId:e,anchor:n}},[e,t]),n}function Vo({agentId:e,agentStatus:t,timeline:n,hasMore:r,loading:i,loadedInitial:a,showReasoning:o,pendingApproval:s,blockedLabel:c,canInterrupt:l,searchActive:u,searchCurrentKey:d,searchMatchKeys:f,onAtBottomChange:p,onScrollerRef:m,onLoadOlder:h,onInterrupt:g,onOpenReferencedPath:_,onPreviewReferencedPath:v,onPreviewReferencedPathEnd:y}){let b=(0,N.useRef)(null),C=(0,N.useRef)(null),[w,T]=(0,N.useState)(!0),E=t===`busy`,[D,ee]=(0,N.useState)(E);(0,N.useLayoutEffect)(()=>{if(E){ee(!0);return}let e=setTimeout(()=>ee(!1),600);return()=>clearTimeout(e)},[E]);let te=Bo(e,n),ne=n.length>0?n[n.length-1]:null,O=ne?Tt(ne):null,re=(ne?.type===`message`||ne?.type===`initial-prompt`)&&ne.msg.from===`user`,ie=(0,N.useRef)(n);ie.current=n;let ae=(0,N.useRef)(te);ae.current=te;let oe=(0,N.useRef)(e);oe.current=e;let se=(0,N.useRef)(!1),ce=(0,N.useCallback)(()=>{se.current||(se.current=!0,requestAnimationFrame(()=>{se.current=!1;let e=C.current;if(!e)return;let t=e.getBoundingClientRect().top,n=Array.from(e.querySelectorAll(`[data-item-index]`));for(let e of n){let n=e.getBoundingClientRect();if(n.bottom>t+1){let r=Number(e.getAttribute(`data-item-index`))-ae.current,i=ie.current[r];Ee(oe.current,{stick:!1,topKey:i?Tt(i):null,offset:Math.max(0,Math.round(t-n.top))});return}}}))},[]),le=(0,N.useRef)(null);if(le.current===null){let t=Ce(e),r=-1;t&&!t.stick&&t.topKey&&(r=n.findIndex(e=>Tt(e)===t.topKey)),le.current=r>=0?r:Math.max(0,n.length-1)}let ue=(0,N.useRef)(O),pe=(0,N.useRef)(e);pe.current!==e&&(pe.current=e,ue.current=O);let me=ue.current?n.findIndex(e=>Tt(e)===ue.current):-1,he=!w&&me>=0?n.slice(me+1).filter(e=>e.type===`message`&&e.msg.from!==`user`).length:0;(0,N.useLayoutEffect)(()=>{w&&(ue.current=O)},[w,O]);let ge=(0,N.useRef)(w);ge.current=w;let k=(0,N.useRef)(Ce(e)?.stick??!0),_e=(0,N.useRef)(!1),ve=(0,N.useRef)(!1),ye=(0,N.useRef)(null),be=(0,N.useRef)(0),xe=(0,N.useRef)(0),Se=(0,N.useCallback)(()=>{xe.current=performance.now()+150},[]),we=(0,N.useCallback)(()=>{Se(),b.current?.scrollToIndex({index:`LAST`,align:`end`});let e=performance.now(),t=0,n=!1,r=!1,i=()=>{if(n||!k.current)return;let a=C.current;if(a){let e=a.scrollHeight-a.clientHeight-a.scrollTop,t=a.scrollHeight-a.clientHeight>64;if(e<=64&&t&&(r=!0,_e.current=!0),r&&e>300)return;Se(),a.scrollTo({top:a.scrollHeight,behavior:`auto`})}performance.now()-e>800||(t=requestAnimationFrame(i))};return t=requestAnimationFrame(i),()=>{n=!0,cancelAnimationFrame(t)}},[Se]);(0,N.useLayoutEffect)(()=>{if(re&&(k.current=!0,Ee(oe.current,{stick:!0,topKey:null,offset:0})),k.current)return we()},[O,re,we]),(0,N.useLayoutEffect)(()=>{let t=Ce(e);if(!t||t.stick||!t.topKey)return;k.current=!1;let n=t.topKey,r=t.offset,i=0,a=!1,o=0,s=performance.now();ve.current=!0;let c=()=>{a=!0,cancelAnimationFrame(i),ve.current=!1,ye.current=null};ye.current=c;let l=()=>{if(a)return;let e=ie.current.findIndex(e=>Tt(e)===n);e>=0&&(o===0&&(o=performance.now()),Se(),b.current?.scrollToIndex({index:e,align:`start`,offset:r}));let t=performance.now();if(o===0){t-s<1500?i=requestAnimationFrame(l):c();return}t-o<800?i=requestAnimationFrame(l):c()};return i=requestAnimationFrame(l),c},[]);let Te=s?.id;(0,N.useLayoutEffect)(()=>{if(!D&&!Te||!k.current)return;let e=0,t=performance.now(),n=()=>{let r=C.current;r&&k.current&&r.scrollHeight-r.clientHeight-r.scrollTop>2&&(Se(),r.scrollTo({top:r.scrollHeight,behavior:`auto`})),performance.now()-t<300&&(e=requestAnimationFrame(n))};return e=requestAnimationFrame(n),()=>cancelAnimationFrame(e)},[D,Te,Se]),(0,N.useLayoutEffect)(()=>{if(!u||!d)return;let e=ie.current.findIndex(e=>Tt(e)===d);e<0||(k.current=!1,Se(),b.current?.scrollToIndex({index:e,align:`center`}))},[u,d,Se]);let A=(0,N.useRef)(null),De=(0,N.useCallback)(e=>{let t=e instanceof HTMLElement?e:null;if(C.current=t,m?.(t),A.current?.(),A.current=null,!t)return;be.current=t.scrollTop;let n=()=>{k.current=!1,ye.current?.()},r=()=>{let e=t.scrollTop,n=t.scrollHeight-t.clientHeight-e,r=performance.now()<xe.current;n<=64?(k.current||Ee(oe.current,{stick:!0,topKey:null,offset:0}),k.current=!0,ye.current?.()):!r&&e<be.current-1&&(k.current=!1,ye.current?.()),be.current=e,!k.current&&!ve.current&&ce()},i=e=>{ye.current?.(),e.deltaY<0&&n()},a=0,o=e=>{a=e.touches[0]?.clientY??0},s=e=>{let t=(e.touches[0]?.clientY??0)-a;Math.abs(t)>6&&ye.current?.(),t>6&&n()};t.addEventListener(`scroll`,r,{passive:!0}),t.addEventListener(`wheel`,i,{passive:!0}),t.addEventListener(`touchstart`,o,{passive:!0}),t.addEventListener(`touchmove`,s,{passive:!0}),A.current=()=>{t.removeEventListener(`scroll`,r),t.removeEventListener(`wheel`,i),t.removeEventListener(`touchstart`,o),t.removeEventListener(`touchmove`,s)}},[m,ce]),Oe=(0,N.useCallback)(e=>{T(e),e&&!ve.current&&(k.current=!0),p?.(e)},[p]),ke=(0,N.useCallback)(()=>{!r||i||h()},[r,i,h]),Ae=(0,N.useCallback)(()=>{ue.current=O,k.current=!0,Ee(e,{stick:!0,topKey:null,offset:0}),we()},[e,O,we]),je=(0,N.useMemo)(()=>function(){return(0,P.jsx)(`div`,{className:Lo,children:(0,P.jsx)(Ho,{hasMore:r,loading:i,loadedInitial:a,hasItems:n.length>0})})},[r,a,i,n]),Me=(0,N.useMemo)(()=>({agentId:e,busy:D,pendingApproval:s,blockedLabel:c,canInterrupt:l,onInterrupt:g}),[e,D,c,l,g,s]),Ne=(0,N.useMemo)(()=>function(){return(0,P.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center text-center`,children:[i?(0,P.jsx)(fe,{className:`mb-2 h-5 w-5 animate-spin text-muted-foreground`}):(0,P.jsx)(de,{className:`mb-2 h-8 w-8 text-zinc-600`}),(0,P.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:i?`Loading messages`:`No messages yet`})]})},[i]),Pe=(0,N.useMemo)(()=>({Header:je,Footer:Ro,EmptyPlaceholder:Ne}),[Ne,je]);return(0,P.jsxs)(`div`,{className:`relative min-h-0 flex-1`,children:[(0,P.jsx)(Ua,{ref:b,scrollerRef:De,className:`h-full py-3 md:py-4`,style:{height:`100%`,overflowX:`hidden`,overscrollBehavior:`contain`},context:Me,data:n,firstItemIndex:te,initialTopMostItemIndex:le.current??Math.max(0,n.length-1),computeItemKey:(e,t)=>Tt(t),itemContent:(t,r)=>{let i=u?Tt(r):``,a=u&&f?.has(i),s=a&&i===d,c=t-te,l=r.type===`message`||r.type===`initial-prompt`?r.msg.from:null,p=n[c+1],m=p?.type===`message`||p?.type===`initial-prompt`?p.msg.from:null,h=l!==null&&l!==m;return(0,P.jsx)(`div`,{className:Lo,children:(0,P.jsx)(`div`,{className:S(a&&`rounded-xl ring-1 ring-amber-400/40 transition-shadow`,s&&`ring-2 ring-amber-400 bg-amber-400/5`),children:(0,P.jsx)(Uo,{entry:r,agentId:e,showReasoning:o,showAvatar:h,onOpenReferencedPath:_,onPreviewReferencedPath:v,onPreviewReferencedPathEnd:y})})})},components:Pe,startReached:ke,atBottomStateChange:Oe,atBottomThreshold:64,followOutput:()=>k.current?`auto`:!1,totalListHeightChanged:()=>{if(!k.current)return;let e=C.current;if(!e)return;let t=e.scrollHeight-e.clientHeight-e.scrollTop;t>=0&&t<=240&&(Se(),e.scrollTo({top:e.scrollHeight,behavior:`auto`}))},increaseViewportBy:{top:600,bottom:600}},e),!w&&n.length>0&&(0,P.jsxs)(M,{type:`button`,size:`sm`,variant:`secondary`,className:`absolute bottom-3 right-4 z-20 h-8 gap-1.5 rounded-full border border-border/70 bg-background/95 px-3 text-xs shadow-lg backdrop-blur`,onClick:Ae,children:[(0,P.jsx)(x,{className:`h-3.5 w-3.5`}),`Latest`,he>0&&(0,P.jsx)(`span`,{className:`ml-0.5 min-w-4 rounded-full bg-primary px-1.5 py-0.5 text-[10px] font-medium leading-none text-primary-foreground`,children:he>99?`99+`:he})]})]})}function Ho({hasMore:e,loading:t,loadedInitial:n,hasItems:r}){return t?(0,P.jsxs)(`div`,{className:`flex items-center justify-center gap-2 pb-3 text-xs text-muted-foreground`,children:[(0,P.jsx)(fe,{className:`h-3.5 w-3.5 animate-spin`}),(0,P.jsx)(`span`,{children:`Loading earlier messages`})]}):!e&&n&&r?(0,P.jsxs)(`div`,{className:`flex items-center justify-center gap-2 pb-3 text-xs text-muted-foreground/70`,children:[(0,P.jsx)(`div`,{className:`h-px flex-1 bg-border`}),(0,P.jsx)(`span`,{children:`Beginning of conversation`}),(0,P.jsx)(`div`,{className:`h-px flex-1 bg-border`})]}):null}function Uo({entry:e,agentId:t,showReasoning:n,showAvatar:r,onOpenReferencedPath:i,onPreviewReferencedPath:a,onPreviewReferencedPathEnd:o}){let s=A(e=>e.agentsById[t]?.issueRepo);return e.type===`message`?(0,P.jsx)(Ht,{msg:e.msg,peer:t,showAvatar:r,onOpenReferencedPath:i,onPreviewReferencedPath:a,onPreviewReferencedPathEnd:o}):e.type===`initial-prompt`?(0,P.jsx)(Ft,{msg:e.msg,issueRepo:s}):e.type===`notice`?(0,P.jsx)(Ut,{msg:e.msg}):e.type===`relay-injection`?(0,P.jsx)(jt,{entry:e}):e.type===`prompt-resolution`?(0,P.jsx)(At,{entry:e}):e.type===`agent-action`?(0,P.jsx)(Bt,{entry:e}):e.type===`activity`?(0,P.jsx)(Lt,{steps:e.steps,showReasoning:n,issueRepo:s}):e.type===`import-boundary`?(0,P.jsx)(Vt,{history:e.history}):e.type===`imported-message`?(0,P.jsx)(kt,{entry:e.entry,sourceLabel:e.history.sourceAgentLabel||e.history.sourcePeerId,issueRepo:s}):e.type===`status`?(0,P.jsx)(zt,{event:e.event}):e.type===`date`?(0,P.jsx)(Rt,{date:e.date}):(0,P.jsx)(Dt,{timestamp:e.timestamp})}var Wo=[],Go=15e3;function Ko(e){return e.kind===`session`&&e.payload?.session?.type===`prompt`}function qo(e){let t=e.filter(e=>e.kind===`chat`&&e.from===`user`);return t.length?e.filter(e=>{if(!Ko(e)||e.from!==`user`)return!0;let n=Ue(e).trim();if(!n)return!0;let r=Ge(e.createdAt);return!t.some(e=>Ue(e).trim()===n&&Math.abs(Ge(e.createdAt)-r)<=Go)}):e}function Jo({threads:e,onBack:t,showBackButton:n}){let r=A(e=>e.selectedInboxThread),i=A(e=>e.agentsById),a=A(e=>e.inboxDrafts),o=we(),s=A(e=>e.sendChatMessage),c=A(e=>e.openFilesAt),l=A(e=>e.openFilesForAgent),u=A(e=>e.openAgentDetail),d=A(e=>e.chatSending),f=A(e=>e.markInboxThreadRead),p=A(e=>e.markInboxThreadUnread),m=A(e=>e.setReplyDraft),h=A(e=>e.exportThread),g=A(e=>e.doAgentAction),_=A(e=>e.workspaceAction),v=A(e=>e.openWorkspaceFocus),y=A(e=>e.forkFromAgent),b=A(e=>e.chatHistoryImports),x=A(e=>e.agentChatByAgent[e.selectedInboxThread]),S=x?.messages??Wo,C=A(e=>e.loadOlder),w=A(e=>e.openConfirm),E=A(e=>e.showError),D=A(e=>e.orchestrators),ee=A(e=>e.fetchOrchestrators),te=A(e=>e.showReasoning),O=A(e=>e.voiceTtsEnabled),re=A(e=>e.setVoiceTtsEnabled),ie=A(e=>e.voiceInputMode),oe=A(e=>e.plansByThread);(0,N.useRef)(null);let se=(0,N.useRef)(null),[ce,le]=(0,N.useState)(`idle`),ue=(0,N.useRef)([]),[fe,pe]=(0,N.useState)([]),[me,he]=(0,N.useState)(!1),[ge,k]=(0,N.useState)(null),[_e,ve]=(0,N.useState)(null),[ye,be]=(0,N.useState)(``),xe=(0,N.useRef)(null),Ce=(0,N.useRef)(0),[Ee,ke]=(0,N.useState)(null),Ae=yn(r),je=(0,N.useMemo)(()=>e.find(e=>e.peer===r)||null,[e,r]),Me=(0,N.useMemo)(()=>qo(S.filter(e=>Ne(r,e)&&!Pe(e)).sort((e,t)=>e.id-t.id)),[S,r]),j=i[r]||null,Fe=typeof j?.meta?.lifecycleAction==`string`&&j.meta.lifecycleAction.startsWith(`finalizing-`),{terminalOpen:Ie,terminalTarget:Le,terminalOpening:Re,openTerminal:ze,closeTerminal:He}=Jt(j?.id),Ue=typeof j?.meta?.spawnRequestId==`string`?j.meta.spawnRequestId:``,We=(0,N.useMemo)(()=>b.filter(e=>e.targetAgentId===r||!!(Ue&&e.targetSpawnRequestId===Ue)),[Ue,b,r]),Ge=Je(j),Ke=Ge?.pendingApproval,qe=(0,N.useMemo)(()=>{if(!r||!je&&Me.length===0)return null;let e=Me[Me.length-1]??je?.lastMessage??null,t=je?.previewMessage&&Me.some(e=>e.id===je.previewMessage?.id)?je.previewMessage:e;return{id:je?.id??r,peer:r,messages:Me,lastMessage:e,previewMessage:t,attention:je?.attention??{unread:0,needsHumanResponse:!1,score:0},archived:je?.archived??!1,draft:je?.draft??``}},[r,je,Me]),Ye=qe||(We.length>0?{peer:r,messages:[],importedHistory:We}:null),Xe=a[r]||``,Ze=typeof j?.meta?.tmuxSession==`string`&&j.meta.tmuxSession.trim()?j.meta.tmuxSession:null,Qe=Ze?D.find(e=>e.managedAgents?.some(e=>e.agentId===j.id||e.tmuxSession===Ze))??null:null,$e=!!(Ze&&Qe?.status===`online`&&j?.providerCapabilities?.terminal?.live?.read),et=!!($e&&j?.providerCapabilities?.terminal?.live?.write),tt=j?.providerCapabilities?.terminal?.attach?.create===!0,nt=$e||tt,rt=Be(j,`compact`),it=Be(j,`clearContext`),ot=Be(j,`shutdown`),st=Be(j,`interrupt`),ct=()=>{j&&g(j,`interrupt`)},[lt,ut]=(0,N.useState)(0),[ft,pt]=(0,N.useState)(!1),mt=j?.providerCapabilities?.liveSession?.slashCommands===!0,ht=j?.providerCapabilities?.model?.provider??(typeof j?.meta?.provider==`string`?j.meta.provider:void 0),gt=mt&&!ft&&/^\/\S*$/.test(Xe)?cn(ht).filter(e=>e.name.toLowerCase().startsWith(Xe.toLowerCase())):[],_t=gt.length?Math.min(lt,gt.length-1):0;function vt(e){m(r,`${e.name} `),ut(0)}function bt(e){m(r,e),ft&&pt(!1),ut(0)}let xt=fe.some(e=>e.uploading),St=fe.filter(e=>e.artifact),Ct=Xe.trim().length>0||fe.length>0;En(j?.id??``,Xe.trim().length>0),bn(Ct,(0,N.useCallback)(()=>{},[])),ue.current=fe,(0,N.useEffect)(()=>()=>{Kt(ue.current)},[]),(0,N.useEffect)(()=>{j?.meta?.tmuxSession&&D.length===0&&ee()},[j?.id,j?.meta?.tmuxSession,D.length]),(0,N.useEffect)(()=>()=>{xe.current!==null&&window.clearTimeout(xe.current)},[]);let Tt=typeof j?.spawnedBy==`string`?j.spawnedBy:void 0,Et=Tt?i[Tt]?.meta?.provider:void 0,Dt=(0,N.useMemo)(()=>Gt(Me,Ae,j?.createdAt,We,Tt?{spawnedBy:{agentId:Tt,provider:Et}}:void 0),[Me,Ae,j?.createdAt,We,Tt,Et]),kt=(0,N.useMemo)(()=>Ot(j,Me,qe?.lastMessage,oe),[j,qe?.lastMessage,oe,Me]),At=wn(Dt),jt=(0,N.useCallback)(()=>{!r||!x?.hasMore||x.loading||C(r)},[x?.hasMore,x?.loading,C,r]),Mt=(0,N.useCallback)(()=>{xe.current!==null&&(window.clearTimeout(xe.current),xe.current=null)},[]),Nt=(0,N.useCallback)(async e=>{let t=Wt(D,e);if(!t)return null;try{let n=await ne(`GET`,`/orchestrators/${encodeURIComponent(t.id)}/files/stat?path=${encodeURIComponent(e)}`);return{orchestratorId:t.id,path:n.path,type:n.type}}catch{return null}},[D]),Pt=(0,N.useCallback)((e,t,n)=>{if(!wt()||!n)return;let r=++Ce.current;Nt(e).then(e=>{Ce.current===r&&e&&(Mt(),ve({...e,line:t||0,anchor:n}),be(``))})},[Mt,Nt]),Ft=(0,N.useCallback)(()=>{Ce.current+=1,Mt(),xe.current=window.setTimeout(()=>{ve(null)},250)},[Mt]),Lt=(0,N.useCallback)((e,t)=>{Nt(e).then(n=>{if(!n){E(`File Not Found`,e);return}if(wt()){Ce.current+=1,Mt(),ve(null),k({...n,line:t||0}),be(``);return}n.type===`directory`?c({orchestratorId:n.orchestratorId,path:n.path,overlay:!0}):c({orchestratorId:n.orchestratorId,path:qt(n.path),selectedPath:n.path,line:t,overlay:!0})})},[Mt,c,Nt,E]);function Rt(){k(null),be(``)}async function zt(e){let t=Array.from(e).filter(e=>e.size>0);if(!t.length)return;let n=t.map(e=>({id:`${Date.now()}-${e.name}-${Math.random().toString(16).slice(2)}`,fileName:e.name,size:e.size,previewUrl:e.type.startsWith(`image/`)?URL.createObjectURL(e):void 0,uploading:!0}));pe(e=>[...e,...n]);for(let e=0;e<t.length;e+=1){let r=t[e],i=n[e];try{let e=await ae(`/artifacts`,r,{filename:r.name,sensitivity:`normal`});pe(t=>t.map(t=>t.id===i.id?{...t,artifact:e,uploading:!1}:t))}catch(e){pe(t=>t.map(t=>t.id===i.id?{...t,error:e.message,uploading:!1}:t))}}}function Bt(e){pe(t=>{let n=t.find(t=>t.id===e);return n?.previewUrl&&URL.revokeObjectURL(n.previewUrl),t.filter(t=>t.id!==e)})}function Vt(){Kt(fe),pe([])}function Ht(){if(!Xe.trim()&&St.length===0||!r||d||xt||Fe)return;let e=St.map(e=>({artifactId:e.artifact.id,kind:e.artifact.kind,role:`media`,title:e.artifact.filename||e.fileName}));s(Xe,{peer:r,lastMessage:qe?.lastMessage||null},e),Vt()}function Ut(e){if(gt.length){if(e.key===`ArrowDown`){e.preventDefault(),ut(e=>Math.min(e+1,gt.length-1));return}if(e.key===`ArrowUp`){e.preventDefault(),ut(e=>Math.max(e-1,0));return}if(e.key===`Escape`){e.preventDefault(),pt(!0);return}if(e.key===`Enter`||e.key===`Tab`){e.preventDefault();let t=gt[_t];t&&vt(t);return}}e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),Ht())}function Yt(e){let t=Array.from(e.clipboardData.files).filter(e=>e.type.startsWith(`image/`));t.length&&(e.preventDefault(),zt(t))}async function Xt(){if(!Se||ce!==`idle`||!r)return;Oe.bargeIn();let e=new Te;try{await e.start(),se.current=e,le(`recording`)}catch(e){se.current=null,le(`idle`),E(`Microphone unavailable`,e?.message||`Could not access the microphone.`)}}async function Zt(){let e=se.current;if(!(!e||ce!==`recording`)){se.current=null,le(`transcribing`);try{let t=await e.stop();if(!t)return;let n=await De(t);if(!n)return;let i=Xe?`${Xe} ${n}`:n;if(ie===`autosend`&&!d&&!xt){let e=St.map(e=>({artifactId:e.artifact.id,kind:e.artifact.kind,role:`media`,title:e.artifact.filename||e.fileName}));s(i,{peer:r,lastMessage:qe?.lastMessage||null},e),Vt()}else m(r,i)}catch(e){E(`Transcription failed`,e?.message||`Could not transcribe audio.`)}finally{le(`idle`)}}}return r?(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(`div`,{className:`flex h-full min-w-0`,children:[(0,P.jsxs)(`div`,{className:`@container/chat flex h-full min-w-0 flex-1 flex-col`,children:[(0,P.jsx)(un,{selectedInboxThread:r,agent:j,now:o,blockedState:Ge,thread:qe,exportableThread:Ye,importedHistory:We,showBackButton:n,onBack:t,openAgentDetail:u,openWorkspaceFocus:v,voiceTtsEnabled:O,setVoiceTtsEnabled:re,canOpenTerminal:nt,terminalOpening:Re,handleOpenTerminal:ze,canInterrupt:st,interruptAgent:ct,canCompact:rt,canClearContext:it,canShutdown:ot,openConfirm:w,workspaceAction:_,doAgentAction:g,openFilesForAgent:l,forkFromAgent:y,markInboxThreadUnread:p,markInboxThreadRead:f,exportThread:h,onOpenSearch:At.openSearch}),(0,P.jsx)($t,{threadId:kt&&`threadId`in kt?kt.threadId:null,teamId:kt&&`teamId`in kt?kt.teamId:void 0,channel:kt?.channel}),r&&(0,P.jsx)(Qt,{agentId:r}),At.open&&(0,P.jsx)(dn,{query:At.query,position:At.position,total:At.total,onQueryChange:At.setQuery,onNext:At.next,onPrev:At.prev,onClose:At.close}),(0,P.jsx)(It,{scrollEl:Ee,timeline:Dt}),(0,P.jsx)(Vo,{agentId:r,agentStatus:j?.status,timeline:Dt,hasMore:x?.hasMore??!1,loading:x?.loading??!1,loadedInitial:x?.loadedInitial??!1,showReasoning:te,pendingApproval:Ke,blockedLabel:Ge?.label,canInterrupt:st,searchActive:At.open,searchCurrentKey:At.currentKey,searchMatchKeys:At.matchKeySet,onScrollerRef:ke,onLoadOlder:jt,onInterrupt:ct,onOpenReferencedPath:Lt,onPreviewReferencedPath:Pt,onPreviewReferencedPathEnd:Ft}),(0,P.jsx)(hn,{draft:Xe,placeholder:`Message ${j?Ve(j):r}…`,chatSending:d,disabled:Fe,hasPendingUploads:xt,readyAttachmentCount:St.length,pendingAttachments:fe,micAvailable:Se,micState:ce,slashMatches:gt,slashActiveIndex:_t,onDraftChange:bt,onKeyDown:Ut,onPaste:Yt,onUploadFiles:e=>{zt(e)},onRemovePendingAttachment:Bt,onSend:Ht,onAcceptSlash:vt,onSlashHover:ut,onStartPtt:()=>{Xt()},onStopPtt:()=>{Zt()},footerText:Fe?`${j?Ve(j):`Agent`} is wrapping up (${(j?.meta?.lifecycleAction).slice(11)}) — messaging paused`:`Enter to send · Shift+Enter for newline`})]}),ge&&(0,P.jsxs)(`aside`,{className:`hidden h-full w-[min(44vw,720px)] min-w-[360px] shrink-0 flex-col border-l border-border bg-background xl:flex`,children:[(0,P.jsxs)(`div`,{className:`flex h-10 shrink-0 items-center gap-2 border-b border-border px-3`,children:[(0,P.jsx)(`span`,{className:`min-w-0 flex-1 text-xs font-medium text-muted-foreground`,children:`File preview`}),ye&&(0,P.jsx)(`span`,{className:`max-w-[18rem] truncate text-xs text-red-400`,children:ye}),(0,P.jsx)(M,{variant:`ghost`,size:`icon-sm`,title:`Close preview`,onClick:Rt,children:(0,P.jsx)(T,{className:`h-3.5 w-3.5`})})]}),(0,P.jsx)(`div`,{className:`min-h-0 flex-1`,children:ge.type===`directory`?(0,P.jsx)(dt,{orchestratorId:ge.orchestratorId,selectedPath:ge.path,onReadError:be}):(0,P.jsx)(at,{orchestratorId:ge.orchestratorId,selectedPath:ge.path,line:ge.line,onReadError:be})})]})]}),_e&&(0,P.jsx)(_n,{preview:_e,error:ye,onReadError:be,onMouseEnter:Mt,onMouseLeave:Ft}),Le&&(0,P.jsx)(yt,{open:Ie,onOpenChange:He,orchestratorId:Le.orchestratorId,session:Le.session,interactive:Le.interactive||et})]}):(0,P.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full text-center px-4`,children:[(0,P.jsx)(de,{className:`w-12 h-12 text-zinc-600 mb-3`}),(0,P.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:`Select an agent to start chatting`})]})}function Yo(){let e=A(e=>e.inboxDrafts),t=A(e=>e.agentsById),n=A(e=>e.set);(0,N.useEffect)(()=>{let r=Object.keys(e);if(r.length===0)return;let i=r.filter(e=>!t[e]&&e!==`user`);if(i.length===0)return;let a=setTimeout(()=>{let e=A.getState().agentsById,t={...A.getState().inboxDrafts},r=!1;for(let n of i)e[n]||(delete t[n],r=!0);r&&n({inboxDrafts:t})},3e4);return()=>clearTimeout(a)},[])}function Xo(e,t){(0,N.useEffect)(()=>{if(typeof window>`u`||!e||!window.matchMedia(`(max-width: 767px)`).matches)return;window.history.pushState({chatOpen:!0},``);function n(){t()}return window.addEventListener(`popstate`,n),()=>{window.removeEventListener(`popstate`,n),window.history.state?.chatOpen&&window.history.back()}},[e,t])}function Zo(){let e=lt(),t=A(e=>e.selectedInboxThread),n=A(e=>e.set),r=A(e=>e.loadAgentChat),i=A(e=>e.agentsById),a=!!t;Yo(),(0,N.useEffect)(()=>{t&&r(t)},[t,r]),(0,N.useEffect)(()=>{t&&(i[t]||n({selectedInboxThread:``}))},[t,i,n]);let o=(0,N.useCallback)(()=>{n({selectedInboxThread:``})},[n]);return Xo(a,o),(0,P.jsxs)(`div`,{className:`flex h-full min-h-0`,children:[(0,P.jsxs)(`div`,{className:`hidden md:flex w-full`,children:[(0,P.jsx)(`div`,{className:`w-1/3 min-w-[240px] max-w-xs flex flex-col overflow-hidden`,children:(0,P.jsx)(an,{threads:e})}),(0,P.jsx)(`div`,{className:`flex-1 flex flex-col overflow-hidden`,children:(0,P.jsx)(Jo,{threads:e},t||`empty`)})]}),(0,P.jsx)(`div`,{className:`md:hidden flex w-full overflow-hidden`,children:a?(0,P.jsx)(Qo,{children:(0,P.jsx)(Jo,{threads:e,onBack:o,showBackButton:!0},t||`empty`)}):(0,P.jsx)(`div`,{className:`w-full flex flex-col overflow-hidden`,children:(0,P.jsx)(an,{threads:e})})})]})}function Qo({children:e}){let t=xt();return(0,P.jsx)(`div`,{className:`fixed inset-x-0 top-0 z-40 flex flex-col bg-background pt-[var(--sat)]`,style:{height:t?`${t}px`:`100dvh`},children:e})}export{Zo as ChatView};
|
|
2
|
-
//# sourceMappingURL=chat-Bue-qNx_.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./chunk-CilyBKbf.js";import{$n as t,Zn as n,fr as r,in as i,wn as a}from"./lucide-react-DmbfpRvJ.js";import{t as o}from"./button-BKFvNXa3.js";var s=e(r(),1),c=t();function l({value:e,label:t=`Copy`,copiedLabel:r=`Copied`,showText:l=!1,size:u,variant:d=`ghost`,className:f,iconClassName:p,disabled:m,onCopied:h}){let[g,_]=(0,s.useState)(!1),v=(0,s.useRef)(null);(0,s.useEffect)(()=>()=>{v.current&&clearTimeout(v.current)},[]);async function y(t){t.preventDefault(),t.stopPropagation();try{await navigator.clipboard?.writeText(typeof e==`function`?e():e),_(!0),h?.(),v.current&&clearTimeout(v.current),v.current=setTimeout(()=>_(!1),1400)}catch{_(!1)}}let b=u??(l?`sm`:`icon-sm`),x=n(`h-3.5 w-3.5`,p);return(0,c.jsxs)(o,{type:`button`,size:b,variant:d,className:f,disabled:m,title:g?r:t,"aria-label":g?r:t,onClick:e=>void y(e),children:[g?(0,c.jsx)(a,{className:x}):(0,c.jsx)(i,{className:x}),l&&(g?r:t)]})}export{l as t};
|
|
2
|
-
//# sourceMappingURL=copy-button-aLaiAkv2.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./chunk-CilyBKbf.js";import{fr as t}from"./lucide-react-DmbfpRvJ.js";var n=e(t(),1);function r(e){let t=n.useRef({value:e,previous:e});return n.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}export{r as t};
|
|
2
|
-
//# sourceMappingURL=dist-BnfqT2cl.js.map
|