@ycodium-ai/plugin-conversation 0.2.2974 → 0.2.2978

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/assets/ui.js CHANGED
@@ -4115,7 +4115,7 @@ ${w}
4115
4115
  .session-map-inspector { max-height: 58vh; border: 0; border-top: 1px solid var(--map-border); }
4116
4116
  .session-map-transcript { min-height: 9rem; max-height: 36vh; }
4117
4117
  }
4118
- `;function UT(e){let[t,n]=W(""),[o,r]=W("all"),[a]=W(()=>cp(e.memoryScope)),s=M(a.camera!==null&&a.focusThreadId===e.focusThreadId),[i,l]=W(s.current?a.selectedId:null),[d,u]=W(s.current&&a.camera!==null?a.camera:{x:24,y:24,scale:1}),[f,p]=W({}),[m,h]=W(a.draft);U(()=>{Rv(e.memoryScope,{focusThreadId:e.focusThreadId,camera:d,selectedId:i,draft:m})},[e.memoryScope,e.focusThreadId,d,i,m]),U(()=>()=>Av(e.memoryScope),[e.memoryScope]);let[g,v]=W(null),C=M(null),y=K(()=>e.board===null?null:IT(e.board,e.fuller),[e.board,e.fuller]),x=K(()=>{let w=new Map;if(y===null)return w;for(let L of y.threads)w.set(L.threadId,L);return w},[y]),b=K(()=>{if(y===null)return{cards:[],childCounts:new Map,descendantCounts:new Map};let w=Cv(yv(y.threads),y.anchors);return mT(w,e.collapsed)},[y,e.collapsed]),I=b.cards.filter(w=>{let L=x.get(w.threadId);return L===void 0||o!=="all"&&L.projectId!==o?!1:t.trim().length===0?!0:`${L.title} ${w.question} ${w.answer}`.toLowerCase().includes(t.trim().toLowerCase())}),T=b.cards.find(w=>w.id===i)??I.find(w=>w.threadId===e.focusThreadId)??null,P=o==="all"?e.t("map.projectAll"):y?.projects.find(w=>w.projectId===o)?.title??e.t("map.projectAll"),k=e.focusThreadId!==null&&x.has(e.focusThreadId);return U(()=>{if(!k||e.focusThreadId===null||y===null)return;let w=Cv(yv(y.threads),y.anchors),L=k3(w,e.focusThreadId,e.collapsed);if(L.length===e.collapsed.size&&L.every(A=>e.collapsed.has(A))||e.onCollapsed(L),s.current){s.current=!1;return}let N=w.findLast(A=>A.threadId===e.focusThreadId);N!==void 0&&l(N.id)},[e.focusThreadId,e.locateToken,k]),S("section",{ref:C,className:"ycodium-session-map","data-pane":e.fill==="pane"?"":void 0,"data-page":e.fill==="page"?"":void 0,children:[c("style",{children:up}),S("header",{className:"session-map-bar",children:[S("div",{className:"session-map-title",children:[c("strong",{children:y?.workspaceTitle||e.t("map.title")}),c("span",{children:e.pending&&y===null?e.t("map.loading"):e.t("map.sessions",{count:y?.threads.length??0})})]}),S("div",{className:"session-map-actions",children:[e.viewSwitch,S("div",{className:"session-map-zoom",children:[c(ee,{type:"button",size:"icon-xs",variant:"outline","aria-label":e.t("map.zoomOut"),onClick:()=>u(BT(d,1/1.15)),children:c(Rs,{})}),c("span",{children:e.t("map.zoom",{percent:Math.round(d.scale*100)})}),c(ee,{type:"button",size:"icon-xs",variant:"outline","aria-label":e.t("map.zoomIn"),onClick:()=>u(BT(d,1.15)),children:c(Qd,{})}),c(ee,{type:"button",size:"xs",variant:"outline",onClick:()=>{let L=C.current?.querySelector(".session-map-stage")?.getBoundingClientRect(),R=y===null?[]:I.map(N=>wc(N,y.positions,f));u(vT(R,L?.width??800,L?.height??600)),p({})},children:e.t("map.fit")})]}),c(ee,{type:"button",size:"xs",variant:"outline",onClick:e.onLocate,children:e.t("map.locate")}),c(ee,{type:"button",size:"xs",variant:"ghost",onClick:()=>{p({}),e.onTidy()},children:e.t("map.tidy")}),e.viewSwitch!=null||e.onClose===null?null:c(ee,{type:"button",size:"xs",variant:"ghost",onClick:e.onClose,children:e.t("map.close")})]})]}),g===null?null:S("div",{className:"session-map-undo",children:[c("span",{children:e.t("map.hiddenNotice",{title:g.title})}),c(ee,{type:"button",size:"xs",variant:"outline",onClick:()=>{e.onRestore(g.threadId),v(null)},children:e.t("map.undo")})]}),y===null?null:S("div",{className:"session-map-body",children:[S("aside",{className:"session-map-side",children:[c(iS,{className:"session-map-search",value:t,size:"sm",variant:"ghost","aria-label":e.t("map.search"),placeholder:e.t("map.search"),onValueChange:n}),S("div",{className:"session-map-actions",style:{marginTop:8},children:[c(ee,{type:"button",size:"xs",onClick:()=>h({kind:"new"}),children:e.t("map.new")}),S(Yr,{value:o,onValueChange:w=>r(w??"all"),children:[c(Bs,{size:"xs","aria-label":e.t("map.projectAll"),children:c(Zr,{children:P})}),S(Jr,{children:[c(rr,{value:"all",children:e.t("map.projectAll")}),y.projects.map(w=>c(rr,{value:w.projectId,children:w.title||w.workspaceRoot},w.projectId))]})]})]}),y.threads.length===0?c(Fs,{title:e.t("map.empty")}):null,c(I3,{t:e.t,board:y,focusThreadId:e.focusThreadId,onOpen:w=>{let L=b.cards.findLast(R=>R.threadId===w);L!==void 0&&l(L.id),e.onOpenThread(w)}})]}),c(AT,{t:e.t,board:y,cards:I,childCounts:b.childCounts,descendantCounts:b.descendantCounts,collapsed:e.collapsed,focusThreadId:e.focusThreadId,selectedId:T?.id??null,optimistic:f,camera:d,resumeCamera:a.camera!==null&&a.focusThreadId===e.focusThreadId,locateToken:e.locateToken,onCamera:u,onSelect:w=>l(w.id),onMove:e.onMove,onOptimistic:(w,L,R)=>p(N=>({...N,[w]:{x:L,y:R}})),onToggleCollapse:w=>{let L=new Set(e.collapsed);L.has(w)?L.delete(w):L.add(w),e.onCollapsed([...L])},onContinue:w=>{l(w.id),h({kind:"continue",threadId:w.threadId})},onBranch:w=>{l(w.id),h({kind:"branch",threadId:w.threadId,messageId:w.messageId})},onHide:w=>{let L=x.get(w)?.title??e.t("settings.hiddenUntitled");v({threadId:w,title:L}),e.onHide(w)},onOpen:e.onOpenThread}),c(FT,{t:e.t,board:y,cards:b.cards,selected:T,detail:e.detail,detailThreadId:e.detailThreadId,phrases:e.phrases,draft:m,savedText:w=>{let L=cp(e.memoryScope);return L.textTarget===w?L.text:""},onText:(w,L)=>Rv(e.memoryScope,{textTarget:w,text:L}),onDraft:h,onPhrases:e.onPhrases,onAnchor:e.onAnchor,onLoadDetail:e.onLoadDetail,onOpen:e.onOpenThread,formatTime:e.formatTime,onSend:e.onSend})]})]})}function I3(e){let t=M(null),n=K(()=>T3(e.board,e.t),[e.board,e.t]),o=n.findIndex(r=>r.kind==="thread"&&r.thread.threadId===e.focusThreadId);return U(()=>{o<0||t.current?.scrollIndexIntoView({index:o,animated:!1})},[e.focusThreadId,o]),c("div",{className:"session-map-sessions",children:c(op,{ref:t,data:n,estimatedItemSize:36,keyExtractor:r=>r.key,extraData:e.focusThreadId,style:{height:"100%"},renderItem:({item:r})=>r.kind==="header"?c("div",{className:"session-map-project",children:r.title}):c(lS,{className:"session-map-session",label:r.thread.title||e.t("card.empty"),pressed:r.thread.threadId===e.focusThreadId,trailing:r.thread.running?c("span",{className:"session-map-running",children:e.t("map.running")}):void 0,onClick:()=>e.onOpen(r.thread.threadId)})})})}function T3(e,t){let n=new Map;for(let s of e.threads){let i=n.get(s.projectId)??[];i.push(s),n.set(s.projectId,i)}let o=new Set(e.projects.map(s=>s.projectId)),r=[];for(let s of e.projects){let i=n.get(s.projectId)??[];if(i.length!==0){r.push({kind:"header",key:`project:${s.projectId}`,title:s.title||s.workspaceRoot});for(let l of i)r.push({kind:"thread",key:l.threadId,thread:l})}}let a=e.threads.filter(s=>!o.has(s.projectId));if(a.length>0){r.push({kind:"header",key:"project:none",title:t("map.ungrouped")});for(let s of a)r.push({kind:"thread",key:s.threadId,thread:s})}return r}function BT(e,t){let n=Math.min(4,Math.max(.25,e.scale*t));return{...e,scale:n}}function k3(e,t,n){return[...gT(e,t,n)]}var Ev="ycodium-session-map:phrases",Mv="ycodium-session-map:collapsed",HT="ycodium-session-map:phrases",KT="ycodium-session-map:collapsed";function $T(e,t,n){let o=r=>{r.key===e&&n()};return window.addEventListener("storage",o),window.addEventListener(t,n),()=>{window.removeEventListener("storage",o),window.removeEventListener(t,n)}}var Xs=[];function VT(){return XT(Ev)}function qT(e){YT(Ev,JSON.stringify(e)),window.dispatchEvent(new Event(HT))}function WT(e){return $T(Ev,HT,e)}function jT(){return XT(Mv)}function GT(e){YT(Mv,JSON.stringify(e)),window.dispatchEvent(new Event(KT))}function QT(e){return $T(Mv,KT,e)}var zT=new Map;function XT(e){let t=L3(e),n=zT.get(e);if(n!==void 0&&n.raw===t)return n.value;let o=P3(t);return zT.set(e,{raw:t,value:o}),o}function P3(e){if(e===null)return Xs;try{let t=JSON.parse(e);if(!Array.isArray(t))return Xs;let n=t.filter(o=>typeof o=="string");return n.length===0?Xs:n}catch{return Xs}}function L3(e){try{return localStorage.getItem(e)}catch{return null}}function YT(e,t){try{localStorage.setItem(e,t)}catch{}}Y();function fp(e){let[t,n]=W(()=>({data:e,board:wv(null,e)}));return t.data!==e&&n({data:e,board:wv(t.board,e)}),t.board}function pp(e){let t=Bn(WT,VT,()=>Xs),n=Bn(QT,jT,()=>Xs),o=K(()=>new Set(n),[n]),[r,a]=W(null),s=M(0),[i,l]=W(0),d=e.environmentId,u=e.threadId,f=d===null?{}:{environmentId:d},p=e.bridge.commands.useSubscription("live",{},f),m=e.bridge.commands.useSubscription("ycodium.sessionProjection",{name:"card",threadId:u!==null&&u.length>0?u:"_"},f),h=e.bridge.i18n.usePluginTranslation(),g=e.bridge.useFormatTimestamp(),v=fp(p.data);U(()=>{u===null||u.length===0||e.bridge.commands.invoke("focus",{threadId:u},f)},[u,d,e.bridge]);let C=u===null?null:TT(m.data);return c(UT,{t:h,board:v,pending:p.isPending,focusThreadId:u,fuller:C,detail:r?.view??null,detailThreadId:r?.threadId??null,phrases:Sc(t),collapsed:o,fill:e.fill,locateToken:e.locateToken+i,memoryScope:d??"",viewSwitch:e.viewSwitch??null,formatTime:g,onClose:e.onClose,onOpenThread:y=>{d!==null&&e.bridge.openThread({environmentId:d,threadId:y})},onLocate:()=>l(y=>y+1),onPhrases:qT,onCollapsed:GT,onMove:(y,x,b)=>{e.bridge.commands.invoke("move",{cardId:y,x,y:b},f)},onTidy:()=>{e.bridge.commands.invoke("tidy",{},f)},onHide:y=>{e.bridge.commands.invoke("hide",{threadId:y},f)},onRestore:y=>{e.bridge.commands.invoke("restore",{threadId:y},f)},onAnchor:(y,x)=>{e.bridge.commands.invoke("preferences",{patch:{anchor:{threadId:y,cardId:x}}},f)},onLoadDetail:y=>{let x=s.current+1;s.current=x,e.bridge.commands.invoke("detail",{threadId:y},f).then(b=>{s.current===x&&a({threadId:y,view:kT(b)})})},onSend:async(y,x,b)=>{let I=PT(await R3(e.bridge,y,x,b,f));return I.ok&&I.walkedBack?e.bridge.notify(h("card.walkedBack"),"info"):I.ok&&e.bridge.notify(h("draft.sent"),"success"),I}})}async function R3(e,t,n,o,r){switch(t.kind){case"continue":return e.commands.invoke("send",{threadId:t.threadId,text:n},r);case"branch":return e.commands.invoke("fork",{threadId:t.threadId,messageId:t.messageId,text:n},r);case"new":return e.commands.invoke("create",{projectId:o,text:n},r);default:return t}}Y();function sn(){return{t:Un().i18n.usePluginTranslation()}}function JT(e){if(e.cacheDisjoint!==!0)return null;let t=e.cachedInputTokens,n=e.inputTokens;if(t===void 0||n===void 0)return null;let o=t+n;if(o<=0)return null;if(t>=o)return"100%";let r=t/o*100;for(let a=0;a<=3;a+=1){let s=r.toFixed(a);if(Number.parseFloat(s)<100)return`${s}%`}return"99.9%"}function ZT(e){let t,n,o,r=!0,a=!1;for(let s of e)s!==void 0&&(a=!0,s.cacheDisjoint!==!0&&(r=!1),s.outputTokens!==void 0&&(t=(t??0)+s.outputTokens),s.inputTokens!==void 0&&(n=(n??0)+s.inputTokens),s.cachedInputTokens!==void 0&&(o=(o??0)+s.cachedInputTokens));if(!(t===void 0&&n===void 0&&o===void 0))return{...a&&r?{cacheDisjoint:!0}:{},...t!==void 0?{outputTokens:t}:{},...n!==void 0?{inputTokens:n}:{},...o!==void 0?{cachedInputTokens:o}:{}}}function Ic(e){return e<1e3?String(Math.round(e)):e<1e6?`${(e/1e3).toFixed(1).replace(/\.0$/,"")}k`:`${(e/1e6).toFixed(1).replace(/\.0$/,"")}m`}var A3=ce(function({item:t,ordinal:n,usage:o,onSelect:r}){return S("button",{type:"button","data-turn-navigator-row":t.sectionKey,onClick:()=>r(t),className:"flex w-full cursor-pointer items-start gap-2.5 rounded-md px-2 py-1.5 text-left transition-colors hover:bg-accent",children:[c("span",{className:"shrink-0 pt-px font-mono text-[10px] text-muted-foreground tabular-nums",children:n}),S("span",{className:"flex min-w-0 flex-1 flex-col gap-0.5",children:[c("span",{className:"line-clamp-2 min-w-0 font-medium text-chat leading-snug",children:t.userText}),t.assistantText?S("span",{className:"flex items-baseline gap-2",children:[c("span",{className:"line-clamp-1 min-w-0 flex-1 text-[11px] text-muted-foreground leading-snug",children:t.assistantText}),o?.outputTokens!==void 0?c("span",{className:"shrink-0 font-mono text-[9px] text-muted-foreground tabular-nums",children:Ic(o.outputTokens)}):null]}):null]})]})});function E3({totals:e}){let{t}=sn();if(!e)return null;let n=JT(e),o=[e.outputTokens===void 0?null:{label:t("turnNavigator.usageOutput"),value:Ic(e.outputTokens)},e.inputTokens===void 0?null:{label:t("turnNavigator.usageInput"),value:Ic(e.inputTokens)},e.cachedInputTokens===void 0?null:{label:t("turnNavigator.usageCacheRead"),value:n===null?Ic(e.cachedInputTokens):`${Ic(e.cachedInputTokens)} (${n})`}].filter(r=>r!==null);return o.length===0?null:S("div",{className:"flex items-baseline gap-2 border-t px-2 py-1.5",children:[c("span",{className:"flex-1 font-mono text-[10px] text-muted-foreground uppercase tracking-[0.14em]",children:t("turnNavigator.usage")}),o.map(r=>S("span",{className:"shrink-0 font-mono text-[10px] text-muted-foreground tabular-nums",children:[r.label," ",r.value]},r.label))]})}var M3=ce(function({getText:t,size:n="xs",variant:o="outline",className:r}){let{t:a}=sn(),s=Un().writeClipboard,[i,l]=W(!1),d=a("turnNavigator.copyMarkdown");return S(ze,{children:[c(Ke,{render:c(ee,{"aria-label":d,disabled:i,onClick:()=>{s(t()).then(()=>{l(!0),window.setTimeout(()=>l(!1),1e3)})},type:"button",size:n,variant:o,className:j("text-muted-foreground hover:text-foreground",r)}),children:i?c(Qn,{className:"size-3 text-primary"}):c(Ts,{className:"size-3"})}),c(He,{children:c("p",{children:d})})]})});function e0({items:e,totalTurnCount:t,bottomInset:n,usageByTurnId:o,onSelect:r,exportMarkdown:a,onDownload:s,placement:i="float"}){let{t:l}=sn(),[d,u]=W(!1),f=K(()=>e.map((g,v)=>({item:g,ordinal:v+1})).reverse(),[e]),p=K(()=>ZT(f.map(({item:g})=>g.turnId===null?void 0:o.get(g.turnId))),[f,o]);if(e.length===0)return null;let m=t??e.length,h=l("turnNavigator.open",{count:m});return S(Ho,{onOpenChange:u,open:d,children:[S(Ar,{render:c(ee,{"aria-label":h,className:j("gap-1.5 rounded-full px-3",i==="float"&&"absolute right-3 z-40"),"data-testid":"turn-navigator-pill",size:"xs",style:i==="float"?{bottom:n+12}:void 0,title:h,variant:"glass"}),children:[c(Kd,{"aria-hidden":!0}),c("span",{className:"font-mono font-semibold text-[11px] tabular-nums",children:m})]}),c(Ko,{align:"end",className:"w-80 flex-col",side:"top",children:S("div",{className:"flex max-h-[min(60vh,26rem)] flex-col",children:[S("div",{className:"flex items-center gap-1.5 border-b px-2 py-1.5",children:[c("span",{className:"flex-1 font-mono text-[10px] text-muted-foreground uppercase tracking-[0.14em]",children:l("turnNavigator.title")}),c("span",{className:"font-mono text-[10px] text-muted-foreground tabular-nums",children:m})]}),c("div",{className:j("min-h-0 flex-1 overflow-y-auto overflow-x-hidden p-1"),children:f.map(({item:g,ordinal:v})=>c(A3,{item:g,onSelect:C=>{u(!1),r(C)},ordinal:v,usage:g.turnId===null?void 0:o.get(g.turnId)},g.sectionKey))}),c(E3,{totals:p}),S("div",{className:"flex items-center gap-1 border-t px-2 py-1.5",children:[c("span",{className:"flex-1 font-mono text-[10px] text-muted-foreground uppercase tracking-[0.14em]",children:l("turnNavigator.export")}),c(M3,{size:"icon-xs",getText:a,variant:"ghost"}),c(ee,{"aria-label":l("turnNavigator.downloadMarkdown"),onClick:()=>s("md"),size:"xs",title:l("turnNavigator.downloadMarkdown"),variant:"ghost",children:c("span",{className:"font-mono text-[10px]",children:".md"})}),c(ee,{"aria-label":l("turnNavigator.downloadJson"),onClick:()=>s("json"),size:"xs",title:l("turnNavigator.downloadJson"),variant:"ghost",children:c("span",{className:"font-mono text-[10px]",children:".json"})})]})]})})]})}Y();function Tc(e){return e.replace(/\s+/g," ")}function N3(e,t){let n=e.slice(Math.max(0,e.length-t));return/^[\uDC00-\uDFFF]/.test(n)&&(n=n.slice(1)),n}function _3(e,t){let n=e.slice(0,t);return/[\uD800-\uDBFF]$/.test(n)&&(n=n.slice(0,-1)),n}function mp(e){let n=(e instanceof Element?e:e?.parentElement??null)?.closest("[data-assistant-quote-body]")??null;return n?.closest('[data-message-role="assistant"]')?n:null}function t0(e){if(!e||e.isCollapsed||e.rangeCount===0)return null;let t=e.getRangeAt(0),n=mp(t.startContainer);if(n===null||mp(t.endContainer)!==n)return null;let o=n.closest("[data-message-id]")?.dataset.messageId;if(!o)return null;let r=e.toString().trim();if(r.length===0)return null;let a=document.createRange();a.selectNodeContents(n),a.setEnd(t.startContainer,t.startOffset);let s=document.createRange();s.selectNodeContents(n),s.setStart(t.endContainer,t.endOffset);let i=Tc(t.toString()),l=i.length>i.trimStart().length?" ":"",d=i.length>i.trimEnd().length?" ":"",u=Tc(a.toString()+l),f=Tc(d+s.toString()),p=u.length,m=p+i.trim().length,h=t.getClientRects(),g=h[0]??t.getBoundingClientRect(),v=h[h.length-1]??g;return{messageId:o,text:r,start:p,end:m,prefix:N3(u,32),suffix:_3(f,32),anchor:{x:v.right,top:g.top,bottom:v.bottom}}}var gp="assistant-quote-inserter",hp="assistant-quote-open-comment";Y();var o0=100,D3=new Map,n0=new Map,vp=e=>typeof e=="function"?e():e,r0=(e,t)=>typeof t=="function"?t(e):t;function O3(e,t,n){let o=e.get(t);return o===void 0&&(o={values:new Map,limit:Math.max(1,n)},e.set(t,o)),o}function F3(e,t){let n=n0.get(e);return n===void 0&&(n={values:new Map,limit:Math.max(1,t)},n0.set(e,n)),n}function B3(e,t){if(!(e.values.size<=e.limit)){for(let[n,o]of e.values){if(e.values.size<=e.limit)return;o===t||o.committed||o.leases>0||(e.values.delete(n),o.alive=!1,o.subscribers.clear())}for(let[n,o]of e.values){if(e.values.size<=e.limit)return;o===t||o.leases>0||(e.values.delete(n),o.alive=!1,o.subscribers.clear())}}}function Nv(e,t,n){e.values.get(t)===n&&(e.values.delete(t),e.values.set(t,n))}function a0(e,t,n){let o=e.values.get(t);return o===void 0&&(o={value:vp(n),subscribers:new Set,leases:0,alive:!0,committed:!1},e.values.set(t,o)),o}function kc(e){queueMicrotask(()=>B3(e))}function Pt(e,t,n,o=o0){let r=Math.max(1,o),a=O3(D3,e,r),s=a0(a,t,n),i=E(f=>s.alive?(a.limit=r,s.committed=!0,Nv(a,t,s),s.leases+=1,s.subscribers.add(f),kc(a),()=>{s.subscribers.delete(f),s.leases=Math.max(0,s.leases-1),kc(a)}):()=>{},[r,s,a,t]),l=E(()=>s.value,[s]),d=Bn(i,l,l),u=E(f=>{if(!s.alive||a.values.get(t)!==s)return;let p=s.value,m=r0(p,f);if(!Object.is(m,p)){s.value=m,Nv(a,t,s);for(let h of s.subscribers)h();kc(a)}},[s,a,t]);return[d,u]}function s0(e,t){let n=M(null);(n.current===null||n.current.key!==e)&&(n.current={key:e,value:vp(t)});let[,o]=Wr(a=>a+1,0),r=E(a=>{let s=n.current;if(s===null||s.key!==e)return;let i=r0(s.value,a);Object.is(i,s.value)||(s.value=i,o())},[e]);return[n.current.value,r]}function ot(e,t,n,o=o0){let r=Math.max(1,o),a=F3(e,r),s=a0(a,t,()=>({current:vp(n)}));return U(()=>{if(!(!s.alive||a.values.get(t)!==s))return a.limit=r,s.committed=!0,Nv(a,t,s),s.leases+=1,kc(a),()=>{s.leases=Math.max(0,s.leases-1),kc(a)}},[r,s,a,t]),s.value}function Ao(e,t){let n=M(null);return(n.current===null||n.current.key!==e)&&(n.current={key:e,ref:{current:vp(t)}}),n.current.ref}var U3=300;function i0(e){let{data:t,target:n,threadKey:o,surfaceRef:r}=e,{t:a}=ie(),s=ot(gp,o,null),[,i]=Pt(hp,o,null),[l,d]=W(null),u=M(null);if(U(()=>{let g,v=()=>{let T=r.current,P=document.getSelection(),k=P&&P.rangeCount>0?P.getRangeAt(0):null;if(!T||!k||!T.contains(k.commonAncestorContainer)){d(null);return}let w=t0(P);if(w===null){d(null);return}let L=t.assistantQuotes.serialize({version:1,environmentId:n.environmentId,threadId:n.threadId,messageId:w.messageId,text:w.text,start:w.start,end:w.end,prefix:w.prefix,suffix:w.suffix});d({source:L,...w.anchor})},C=T=>{u.current?.contains(T.target)||(clearTimeout(g),g=setTimeout(v,U3))},y=T=>{u.current?.contains(T.target)||(clearTimeout(g),d(null))},x=()=>d(null),b=T=>{T.key==="Escape"&&d(null)},I=()=>{(document.getSelection()?.isCollapsed??!0)&&d(null)};return document.addEventListener("pointerup",C,!0),document.addEventListener("keyup",C,!0),document.addEventListener("pointerdown",y,!0),document.addEventListener("keydown",b,!0),document.addEventListener("selectionchange",I),window.addEventListener("scroll",x,!0),()=>{clearTimeout(g),document.removeEventListener("pointerup",C,!0),document.removeEventListener("keyup",C,!0),document.removeEventListener("pointerdown",y,!0),document.removeEventListener("keydown",b,!0),document.removeEventListener("selectionchange",I),window.removeEventListener("scroll",x,!0)}},[t,r,n.environmentId,n.threadId]),l===null)return null;let f=l.source,p=Math.max(8,Math.min(window.innerWidth-200,l.x-12)),m=l.bottom+6,h=m+40<=window.innerHeight?m:Math.max(8,l.top-40);return c("div",{ref:u,className:"fixed z-50",style:{left:p,top:h},"data-assistant-quote-toolbar":"",children:S(ee,{size:"sm",variant:"outline",className:"shadow-md",disabled:f===null,title:f===null?a("timeline.quote.tooLong"):void 0,onMouseDown:g=>g.preventDefault(),onClick:()=>{f!==null&&s.current?.(f)===!0&&(i(f),document.getSelection()?.removeAllRanges(),d(null))},children:[c(Xr,{"aria-hidden":"true"}),a("timeline.quote.cite")]})})}Y();Y();function l0(e){let t=e.map(o=>({key:o.key,turnId:o.turnId,firstRowIndex:o.firstRowIndex,endRowIndex:o.firstRowIndex+o.rowIds.length})),n=new Map;for(let o of e)for(let[r,a]of o.rowIds.entries())n.set(a,{turnId:o.turnId,index:o.firstRowIndex+r});return{sections:t,bySectionKey:new Map(t.map(o=>[o.key,o])),byRowId:n}}function yp({index:e,visibleSectionKeys:t,protectedRowIds:n,selectionRows:o}){let r=t.flatMap(d=>{let u=e.bySectionKey.get(d)?.turnId;return u==null?[]:[u]}),a=n.flatMap(d=>{let u=e.byRowId.get(d)?.turnId;return u==null?[]:[u]}),s=o?e.byRowId.get(o.firstRowId)?.index:void 0,i=o?e.byRowId.get(o.lastRowId)?.index:void 0,l=s===void 0||i===void 0?[]:e.sections.flatMap(d=>d.turnId!==null&&d.endRowIndex>Math.min(s,i)&&d.firstRowIndex<=Math.max(s,i)?[d.turnId]:[]);return{firstTurnId:r[0]??null,lastTurnId:r.at(-1)??null,protectedTurnIds:[...new Set(a)],selectionTurnRange:l.length>0?{firstTurnId:l[0],lastTurnId:l.at(-1)}:null}}function d0(e,t,n,o){if(!o)return n;let r=e.findIndex(a=>t.has(a));return r<0?n:Math.max(n,e.length-r)}Y();Y();function _v(e,t){for(let n of e.querySelectorAll("[data-timeline-row-id]"))if(n.dataset.timelineRowId===t)return n;return null}function Ys(e,t){let n=0,o=e.length,r=-1;for(;n<o;){let a=Math.floor((n+o)/2),i=e[a].getBoundingClientRect();Math.max(i.bottom,i.top+1)>t?(r=a,o=a):n=a+1}return r}function z3(e){let t=e.getBoundingClientRect().top,n=e.querySelectorAll("[data-timeline-turn-section]"),o=a=>{let s=a.querySelectorAll("[data-timeline-row-id]"),i=Ys(s,t),l=i<0?void 0:s[i],d=l?.dataset.timelineRowId;return!l||d===void 0?null:{rowId:d,offsetPx:Math.round(t-l.getBoundingClientRect().top)}};if(n.length===0)return o(e);let r=Ys(n,t);if(r<0)return null;for(let a=r;a<n.length;a+=1){let s=o(n[a]);if(s)return s}return null}function c0(e,t){let n=0,o=e;for(;o&&o!==t;)n+=o.offsetTop,o=o.offsetParent;return n}var Dv=class extends Vr{getSnapshotBeforeUpdate(t){return t.inputKey!==this.props.inputKey&&t.onBeforeInputChange(),null}componentDidUpdate(){}componentWillUnmount(){this.props.onBeforeInputChange()}render(){return this.props.children}};function u0({inputKey:e,onBeforeInputChange:t,handleRef:n,onAttach:o,className:r,children:a,onScroll:s,onInteractionRowsChange:i}){let l=M(null),d=M({inputKey:e,store:nc()});d.current.inputKey!==e&&(d.current={inputKey:e,store:nc()});let u=M(i);u.current=i;let f=E(m=>{let h=d.current;return h.store.acquire(m,()=>{d.current===h&&u.current?.(h.store.rows())})},[]);pe(()=>{i?.(d.current.store.rows())},[e,i]),Fo(n,()=>({get node(){return l.current},measure:()=>{let m=l.current;return m?{scroll:m.scrollTop,scrollLength:m.clientHeight,contentLength:m.scrollHeight,topOf:h=>{let g=_v(m,h);return g===null?null:c0(g,m)},heightOf:h=>{let g=_v(m,h);return g===null?null:g.offsetHeight},rowAtScroll:()=>z3(m)}:null},scrollToEnd:m=>{let h=l.current;if(h){if(m?.animated){h.scrollTo({top:h.scrollHeight,behavior:"smooth"});return}h.scrollTop=h.scrollHeight-h.clientHeight}},scrollToRow:(m,h)=>{let g=l.current;if(!g)return!1;let v=_v(g,m);return v?(g.scrollTop=Math.max(0,c0(v,g)-(h?.viewOffset??0)),!0):!1},scrollToOffset:m=>{let h=l.current;h&&(h.scrollTop=Math.max(0,m))}}),[]);let p=E(m=>{l.current=m,o(m)},[o]);return c(Dv,{inputKey:e,onBeforeInputChange:t,children:c(tc,{value:f,children:c("div",{ref:p,className:r,style:{position:"relative"},onScroll:s,children:a})})})}function ll(e){if(!e)return!1;let t=e.tagName?.toLowerCase(),n=e.getAttribute?.("contenteditable");if(t==="textarea"||n==="true"||n===""||n==="plaintext-only"||"isContentEditable"in e&&e.isContentEditable===!0)return!0;if(t==="input"){let o=e.getAttribute?.("type")?.toLowerCase()??"text";if(!["button","submit","reset","image","checkbox","radio"].includes(o))return!0}return e.matches?.(":focus-visible")??!1}function il(e,t){let o=(e?.nodeType===1?e:e?.parentElement)?.closest("[data-timeline-row-id]");return o&&t.contains(o)?o.dataset.timelineRowId??null:null}function Cp(e){let t=e.ownerDocument.getSelection?.();if(!t||t.isCollapsed)return null;let n=null,o=null;for(let d=0;d<t.rangeCount;d+=1){let u=t.getRangeAt(d);u.intersectsNode(e)&&(n??=u,o=u)}if(!n||!o)return null;let r=il(n.startContainer,e),a=il(o.endContainer,e);if(r&&a)return{firstRowId:r,lastRowId:a};let s=e.querySelectorAll("[data-timeline-row-id]"),i=s[0]?.dataset.timelineRowId,l=s[s.length-1]?.dataset.timelineRowId;return i&&l?{firstRowId:r??i,lastRowId:a??l}:null}function Pc(e){let t=e.ownerDocument.getSelection?.();if(!t||t.isCollapsed)return!1;for(let n=0;n<t.rangeCount;n+=1)if(t.getRangeAt(n).intersectsNode(e))return!0;return!1}Y();function qa(e){let t=M(e);t.current=e;let n=M(!1),o=M(null),r=M(null),a=M(0),s=E(()=>{a.current+=1,r.current!==null&&cancelAnimationFrame(r.current),r.current=null},[]),i=E(()=>{if(!n.current||!t.current||r.current!==null||o.current===null)return;let u=++a.current;r.current=requestAnimationFrame(f=>{if(u!==a.current||(r.current=null,!n.current||!t.current))return;let p=o.current;o.current=null,p?.(f)})},[]),l=E(u=>{o.current=u,i()},[i]),d=E(()=>{o.current=null,s()},[s]);return pe(()=>(n.current=!0,i(),()=>{n.current=!1,s()}),[e,s,i]),K(()=>({request:l,cancel:d}),[l,d])}function f0({root:e,inputKey:t,visible:n,index:o,topInset:r,bottomInset:a,interactionRows:s,onRangeChange:i,onSelectionChange:l}){let d=M({inputKey:t,visible:n,index:o,topInset:r,bottomInset:a,interactionRows:s,onRangeChange:i,onSelectionChange:l});d.current={inputKey:t,visible:n,index:o,topInset:r,bottomInset:a,interactionRows:s,onRangeChange:i,onSelectionChange:l};let u=qa(n),f=M(null),p=E(()=>{let h=d.current;if(!e||!h.visible||e.clientHeight<=0)return;let g=e.getBoundingClientRect();if(g.height<=0)return;let v=g.top+h.topInset,C=g.bottom-h.bottomInset,y=e.querySelectorAll("[data-timeline-turn-section]"),x=Ys(y,v),b=[];if(x>=0)for(let w=x;w<y.length;w+=1){let L=y[w];if(L.getBoundingClientRect().top>=C)break;L.dataset.timelineTurnSection!==void 0&&b.push(L.dataset.timelineTurnSection)}let I=[...h.interactionRows()],T=e.ownerDocument.activeElement;if(ll(T)){let w=il(T,e);w&&I.push(w)}let P=yp({index:h.index,visibleSectionKeys:b,protectedRowIds:I,selectionRows:Cp(e)}),k=`${h.inputKey}:${JSON.stringify(P)}`;k!==f.current&&(f.current=k,h.onRangeChange?.(P))},[e]),m=E(()=>u.request(p),[u,p]);return pe(()=>{if(f.current=null,!n||!e)return;let h=t,g=!0,v=()=>{!g||d.current.inputKey!==h||!d.current.visible||(d.current.onSelectionChange(Pc(e)),m())};e.addEventListener("scroll",v,{passive:!0}),e.addEventListener("focusin",v),e.addEventListener("focusout",v),e.ownerDocument.addEventListener("selectionchange",v);let C=typeof ResizeObserver>"u"?null:new ResizeObserver(v);return C?.observe(e),e.firstElementChild&&C?.observe(e.firstElementChild),v(),()=>{g=!1,u.cancel(),C?.disconnect(),e.removeEventListener("scroll",v),e.removeEventListener("focusin",v),e.removeEventListener("focusout",v),e.ownerDocument.removeEventListener("selectionchange",v),i?.(null)}},[u,t,i,m,e,n]),pe(()=>{n&&m()},[o,m,n]),m}Y();var p0=ce(function({sectionKey:t,rowKeyPrefix:n,rowIds:o,renderRow:r,sectionRef:a}){return c("div",{className:"session-turn","data-timeline-turn-section":t,ref:a,children:o.map(s=>c("div",{className:"transcript-col min-w-0 overflow-x-clip",children:r(s)},`${n}:${s}`))})});var H3=400;function m0({root:e,minimumCount:t,keepAbovePx:n=0,canCompact:o,onCompact:r}){let a=e.ownerDocument,s=new Set,i,l=!1,d=()=>e.scrollHeight-e.clientHeight-e.scrollTop<=2,u=()=>{if(i=void 0,a.hidden||s.size>0||!o()||e.clientHeight<=0||!d()||Pc(e))return;let b=e.querySelectorAll("[data-timeline-turn-section]"),I=e.getBoundingClientRect().top-32-n,T=0,P=Math.max(0,b.length-t);for(;T<P;){let w=Math.floor((T+P)/2),L=b[w].getBoundingClientRect().bottom;if(!Number.isFinite(L))return;L<=I?T=w+1:P=w}if(T===0)return;let k=a.activeElement;if(k&&ll(k)){for(let w=0;w<T;w+=1)if(b[w].contains(k))return}r(b.length-T)},f=!1,p=()=>{if(a.hidden||s.size>0||!o()||f){clearTimeout(i),i=void 0;return}i===void 0&&(i=setTimeout(u,H3))},m=()=>{clearTimeout(i),i=void 0,p()},h=()=>{let b=d();!b||!l?m():p(),l=b},g=b=>{s.add(b.pointerId),m()},v=b=>{s.delete(b.pointerId),m()},C=()=>{f=Pc(e),m()},y=()=>{s.clear(),m()},x=["wheel","keydown","focusin","focusout"];for(let b of x)e.addEventListener(b,m,{passive:!0});return e.addEventListener("scroll",h,{passive:!0}),e.addEventListener("pointerdown",g,!0),a.addEventListener("pointerup",v,!0),a.addEventListener("pointercancel",v,!0),a.addEventListener("selectionchange",C),a.addEventListener("visibilitychange",p),a.defaultView?.addEventListener("blur",y),p(),{schedule:p,disconnect:()=>{clearTimeout(i);for(let b of x)e.removeEventListener(b,m);e.removeEventListener("scroll",h),e.removeEventListener("pointerdown",g,!0),a.removeEventListener("pointerup",v,!0),a.removeEventListener("pointercancel",v,!0),a.removeEventListener("selectionchange",C),a.removeEventListener("visibilitychange",p),a.defaultView?.removeEventListener("blur",y)}}}Y();function g0({root:e,topInsetPx:t,onActiveSectionChange:n,active:o}){let r=M(o);r.current=o;let a=qa(o),s=M(new Map),i=M(null),l=M(null),d=M(n);d.current=n;let u=E(()=>{if(!r.current||!e)return;let g=e.scrollTop+t,v=null,C=Number.NEGATIVE_INFINITY,y=null,x=Number.POSITIVE_INFINITY;for(let[I,T]of s.current){if(!T.isConnected)continue;let P=T.offsetTop;P<x&&(x=P,y=I),P<=g&&P>=C&&(C=P,v=I)}let b=v??y;b!==l.current&&(l.current=b,d.current(b))},[e,t]),f=E(()=>{r.current&&a.request(u)},[a,u]);U(()=>{if(!o||!e||typeof IntersectionObserver>"u")return;let g=!0,v=new IntersectionObserver(()=>{!g||!r.current||f()},{root:e,rootMargin:`-${t}px 0px 0px 0px`,threshold:0});i.current=v;for(let C of s.current.values())v.observe(C);return f(),()=>{g=!1,v.disconnect(),i.current=null,a.cancel()}},[o,a,f,e,t]);let p=M(new Map),m=E(g=>{let v=p.current.get(g);if(v)return v;let C=y=>{let x=s.current.get(g);x&&x!==y&&(i.current?.unobserve(x),s.current.delete(g)),y?(s.current.set(g,y),i.current?.observe(y)):p.current.get(g)===C&&p.current.delete(g)};return p.current.set(g,C),C},[]),h=E(()=>{r.current&&(l.current=null,f())},[f]);return K(()=>({observeSection:m,refresh:h}),[m,h])}Y();function h0(e){return Bn(e.subscribe,e.getStructure,e.getStructure)}function v0(e,t){let n=E(r=>e.subscribeRow(t,r),[e,t]),o=E(()=>e.getRow(t),[e,t]);return Bn(n,o,o)}function In(e,t,n=Object.is){let o=M(null),r=E(()=>{let a=e.getVersion(),s=o.current;if(s!==null&&s.store===e&&s.select===t&&s.version===a)return s.value;let i=t(e),l=s!==null&&s.store===e&&n(s.value,i)?s.value:i;return o.current={store:e,select:t,version:a,value:l},l},[e,t,n]);return Bn(e.subscribe,r,r)}Y();Y();function K3(e,t){let n={hour:"numeric",minute:"2-digit",...t?{second:"2-digit"}:{}};return e==="locale"?n:{...n,hour12:e==="12-hour"}}function $3(e){let t=e?.trim();if(t)try{return Intl.DateTimeFormat.supportedLocalesOf([t]),t}catch{return}}function V3(){return typeof window>"u"?null:window.desktopBridge?.getSystemLocale?.()??null}var Ov=$3(V3()),y0=new Map;function C0(e,t){let n=`${e}:${t?"seconds":"minutes"}`,o=y0.get(n);if(o)return o;let r=new Intl.DateTimeFormat(Ov,K3(e,t));return y0.set(n,r),r}function Fv(e){let t=new Date(e);return Number.isNaN(t.getTime())?null:t}var q3=new Intl.DateTimeFormat(void 0,{month:"long"});function W3(e){let t=e%100;if(t>=11&&t<=13)return"th";switch(e%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}}function j3(e,t){let n=Fv(e);return n?C0(t,!1).format(n):""}function Mr(e,t){let n=Fv(e);if(!n)return"";let o=j3(e,t),r=n.getDate(),a=q3.format(n),s=n.getFullYear();return`${o}, ${r}${W3(r)} ${a} ${s}`}var G3=new Intl.DateTimeFormat(Ov,{month:"numeric",day:"numeric"}),Q3=new Intl.DateTimeFormat(Ov,{month:"numeric",day:"numeric",year:"numeric"});function ia(e,t,n,o=Date.now()){let r=Fv(e);if(!r)return"";let a=C0(t,!1).format(r),s=new Date(o),i=new Date(s.getFullYear(),s.getMonth(),s.getDate()).getTime(),l=new Date(r.getFullYear(),r.getMonth(),r.getDate()).getTime(),d=Math.round((i-l)/864e5);return d<=0?a:d===1?n("relativeTime.yesterdayAt",{time:a}):`${(r.getFullYear()===s.getFullYear()?G3:Q3).format(r)} ${a}`}Y();var It=ct(null),xp=ct(null);Y();var dl=new Map,x0=24,X3=4e3,Y3=1024,b0=16384;function Bv(e){let t=dl.get(e);if(t)return t;let n={values:new Map,listeners:new Set,stringLength:0};if(dl.set(e,n),dl.size>x0){for(let[o,r]of dl)if(r.listeners.size===0&&o!==e&&(dl.delete(o),dl.size<=x0))break}return n}function Uv(e,t,n){return Bv(e).values.get(t)??n}function Lc(e,t,n,o=!0){let r=Bv(e);if(typeof n=="string"&&(n=n.slice(0,Y3)),r.values.get(t)===n)return;let a=r.values.get(t);if(typeof a=="string"&&(r.stringLength-=a.length),r.values.delete(t),r.values.set(t,n),typeof n=="string"&&(r.stringLength+=n.length),r.stringLength>b0){for(let[s,i]of r.values)if(!(typeof i!="string"||s===t)&&(r.values.delete(s),r.stringLength-=i.length,r.stringLength<=b0))break}if(r.values.size>X3){let s=r.values.keys().next().value;if(s!==void 0){let i=r.values.get(s);typeof i=="string"&&(r.stringLength-=i.length),r.values.delete(s)}}o&&r.listeners.forEach(s=>s())}function go(e,t,n){let o=E(i=>{let l=Bv(e);return l.listeners.add(i),()=>l.listeners.delete(i)},[e]),r=E(()=>Uv(e,t,n),[e,t,n]),a=Bn(o,r,r),s=E(i=>Lc(e,t,i),[e,t]);return[a,s]}function We(){let e=Un().i18n.usePluginTranslation();return{t:(t,n)=>e(t,n)}}var w0=window.__ycodiumPluginHost.modules?.["@ycodium-ai/plugin-api"];if(!w0)throw new Error("This plugin needs a newer Ycodium app. Update the app.");var{MAX_PLUGIN_SESSION_PROJECTION_BYTES:sae,MAX_PLUGIN_SKILL_COMPANION_FILE_BYTES:iae,MAX_PLUGIN_SKILL_COMPANION_TOTAL_BYTES:lae,MAX_PLUGIN_STREAM_BUFFER:dae,MAX_PLUGIN_TOOL_PRESENTATION_BYTES:cae,MAX_PLUGIN_WORKSPACE_WRITE_BYTES:uae,MIN_PLUGIN_INTERVAL_MS:fae,PLUGIN_API_MIN_VERSION:pae,PLUGIN_API_VERSION:mae,PLUGIN_COMMUNICATION_MAX_RECORDS:gae,PLUGIN_PROXY_DIRECT:hae,PLUGIN_SESSION_PROJECTION_COMMAND:vae,REASONING_OPTION_LABEL:yae,REQUEST_RESOLVED_TRIGGER_KIND:Cae,TURN_PROGRESS_TRIGGER_KIND:xae,USER_INPUT_PENDING_TRIGGER_KIND:bae,acceptPluginToolPresentation:wae,definePlugin:Sae,effortText:S0,knownEffortLevel:Iae,mergeLaunchEnv:Tae,modelOptionLabelKind:I0,modelSelectionStringOption:kae,parseRetryAfterMs:Pae,pluginJsonByteLength:Lae,readRequestResolved:Rae,readTurnProgress:Aae,readUserInputPending:Eae,reasoningEffortLevel:Mae,reasoningEffortShortLabel:Nae,relabelModelOptionDescriptors:T0}=w0;function bp(e,t,n){if(e!=="opencode"||t.length===0)return!1;let o=n?.trim();return o?!t.some(r=>r.slug===o):!1}function wp(e,t){if(e)return t?e:e.filter(n=>n.id!=="agent"||n.value!=="plan")}var k0={effort:"traits.savedOption.effort",reasoningEffort:"traits.savedOption.reasoningEffort",variant:"traits.savedOption.variant"},P0=e=>`traits.optionValue.${e}`;function J3(e){let t=e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").toLowerCase();return t.charAt(0).toUpperCase()+t.slice(1)}function L0(e,t){if(t==="agent")return e("traits.savedOption.agent");let n=I0(t);return n===void 0?J3(t):e(k0[n])}function zv(e,t){return T0(t,{kind:n=>e(k0[n]),level:n=>e(P0(n))})}function Hv(e,t){return S0(t,n=>e(P0(n)))}function R0(e,t){return(e??[]).map(n=>typeof n.value=="boolean"?{id:n.id,label:t(n.id),type:"boolean",currentValue:n.value}:{id:n.id,label:t(n.id),type:"select",options:[{id:n.value,label:n.value}],currentValue:n.value})}function A0(e){return e==="failed"?"failed":e==="running"?"running":"idle"}function E0(e){return e.includes("failed")?"failed":e.includes("running")?"running":"idle"}var Sp="chat-process-row flex w-full min-w-0 select-none items-center gap-1.5 px-2 text-left";function Rc({children:e}){return c("span",{"aria-hidden":!0,className:"flex size-4 shrink-0 items-center justify-center",children:e})}function Ac({status:e}){return c("span",{"aria-hidden":!0,className:"flex size-2 shrink-0 items-center justify-center",children:e===null?null:c("span",{className:j("block size-2 rounded-full",e==="failed"?"bg-destructive":e==="success"?"bg-success":"border border-muted-foreground/60")})})}function Ip({state:e,variant:t="inline",className:n,children:o}){return S("div",{"data-process-state":e,"data-process-kind":t,className:j("chat-process-shell relative min-w-0 overflow-hidden",t==="tool"?"rounded-lg bg-card":"rounded-md",n),children:[e==="running"?c("span",{"aria-hidden":!0,className:"chat-process-shell-pulse animate-status-pulse"}):null,o]})}Y();Y();var cl=class extends Error{reason;constructor(t,n,o){super(n,o),this.reason=t}};function Z3(e){if(typeof document>"u"||typeof document.execCommand!="function")return!1;let t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.setAttribute("aria-hidden","true"),t.style.position="fixed",t.style.top="0",t.style.left="0",t.style.opacity="0",t.style.fontSize="16px";let n=document.activeElement;document.body.appendChild(t);try{return t.focus({preventScroll:!0}),t.select(),t.setSelectionRange(0,e.length),document.execCommand("copy")}catch{return!1}finally{t.remove();let o=n?.focus;typeof o=="function"&&o.call(n)}}async function eV(e,t){let n=()=>new cl("unavailable",`Clipboard API is unavailable while copying ${t}.`);if(typeof window>"u")throw n();if(!e)return!1;if(typeof navigator>"u"||!navigator.clipboard?.writeText){if(Z3(e))return!0;throw n()}try{return await navigator.clipboard.writeText(e),!0}catch(o){throw new cl("write-failed",`Failed to copy ${t} to the clipboard.`,{cause:o})}}function Tp({timeout:e=2e3,target:t="text",onCopy:n,onError:o}={}){let[r,a]=W(!1),s=M(null),i=M(n),l=M(o),d=M(t),u=M(e);i.current=n,l.current=o,d.current=t,u.current=e;let f=E((p,m)=>{eV(p,d.current).then(h=>{h&&(s.current&&clearTimeout(s.current),a(!0),i.current?.(m),u.current!==0&&(s.current=setTimeout(()=>{a(!1),s.current=null},u.current)))},h=>{l.current?.(h instanceof Error?h:new Error(String(h)),m)})},[]);return U(()=>()=>{s.current&&clearTimeout(s.current)},[]),{copyToClipboard:f,isCopied:r}}var M0=1e3,tV={unavailable:"copyButton.clipboardUnavailable","write-failed":"copyButton.copyFailedDetail"};function nV({title:e,description:t}){return S("span",{role:"status",className:"dropdown-glass pointer-events-none fixed z-100 rounded-md px-2 py-1 text-pretty text-popover-foreground text-xs shadow-xl shadow-black/25",children:[e,t?c("span",{className:"block text-muted-foreground",children:t}):null]})}var Wa=ce(function({text:t,size:n="xs",variant:o="outline",className:r,toastAnchor:a="above",label:s}){let{t:i}=We(),l=s??i("copyButton.copyToClipboard"),d=M(null),[u,f]=W(null),p=M(null),m=(v,C)=>{let y=d.current?.getBoundingClientRect();y&&(p.current&&clearTimeout(p.current),f({top:a==="above"?Math.max(4,y.top-(C===void 0?26:40)):Math.min(window.innerHeight-26,y.bottom+4),left:Math.max(4,y.left+y.width/2),title:v,description:C}),p.current=setTimeout(()=>f(null),M0))};U(()=>()=>{p.current&&clearTimeout(p.current)},[]);let{copyToClipboard:h,isCopied:g}=Tp({onCopy:()=>m(i("copyButton.copied")),onError:v=>m(i("copyButton.failedToCopy"),v instanceof cl?i(tV[v.reason]):v.message),timeout:M0});return S(ze,{children:[c(Ke,{render:c(ee,{"aria-label":l,disabled:g,onClick:()=>h(t),ref:d,type:"button",size:n,variant:o,className:j("text-muted-foreground hover:text-foreground",r)}),children:g?c(Qn,{className:"size-3 text-primary"}):c(Ts,{className:"size-3"})}),c(He,{children:c("p",{children:l})}),u?c("span",{"aria-hidden":!0,className:"pointer-events-none fixed",style:{top:u.top,left:u.left},children:c("span",{className:"relative block -translate-x-1/2",children:c(nV,{title:u.title,description:u.description})})}):null]})});function kp({text:e,label:t,children:n}){return S("span",{className:"group/hover-copy inline-flex min-w-0 items-center gap-0.5",children:[n,c("span",{className:"inline-flex opacity-0 transition-opacity duration-(--control-duration) pointer-events-none group-focus-within/hover-copy:pointer-events-auto group-focus-within/hover-copy:opacity-100 group-hover/hover-copy:pointer-events-auto group-hover/hover-copy:opacity-100 [@media(pointer:coarse)]:pointer-events-auto [@media(pointer:coarse)]:opacity-100",children:c(Wa,{text:e,label:t,variant:"ghost",size:"icon-xs",className:"shrink-0",toastAnchor:"below"})})]})}Y();var oV=[".m4v",".mov",".mp4",".ogv",".webm"],rV=[".aac",".flac",".m4a",".mp3",".oga",".ogg",".opus",".wav",".weba"];function N0(e){let t=e.name.lastIndexOf(".");if(t<=0)return null;let n=e.name.slice(t).toLowerCase();return oV.includes(n)?"video":rV.includes(n)?"audio":null}var aV=["image/gif","image/jpeg","image/png","image/webp"],sV=new Set(aV);function Kv(e){return sV.has(e.toLowerCase())}function iV(e){return Kv(e)?"image":"file"}var lV=new Set(["application/json","application/xml","application/x-yaml","application/yaml"]),dV=[".doc",".docx",".odt",".ppt",".pptx",".odp",".xls",".xlsx",".ods"];function Nr(e){if(e.type==="image")return"image";let t=e.mimeType.toLowerCase();if(t==="image/svg+xml")return"svg";if(t==="application/pdf")return"pdf";let n=N0(e);if(n)return n;let o=e.name.lastIndexOf(".");return o>0&&dV.includes(e.name.slice(o).toLowerCase())?"office":t.startsWith("text/")||lV.has(t)?"text":"file"}function ja(e){let t=Nr(e);return t==="image"||t==="svg"}function Ga(e){return!Number.isFinite(e)||e<=0?"0 KB":e>=1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:`${Math.max(1,Math.round(e/1024))} KB`}function $v(e){let t={id:e.id,name:e.name,mimeType:e.mimeType,sizeBytes:e.sizeBytes};return iV(e.mimeType)==="image"?{type:"image",...t}:{type:"file",...t,...e.source?{source:e.source}:{}}}function Pp(e,t){let n=e.flatMap(r=>r.previewUrl?[{...r,src:r.previewUrl}]:[]);if(n.length===0)return null;let o=n.findIndex(r=>r.id===t);return o<0?null:{images:n.map(r=>({src:r.src,name:r.name,attachmentId:r.id,...r.source===void 0?{}:{source:r.source},...r.type!==void 0&&r.mimeType!==void 0&&Nr({type:r.type,mimeType:r.mimeType,name:r.name})==="svg"?{svg:!0}:{}})),index:o}}function Lp(e){switch(e){case"image":case"svg":return Ud;case"video":return _a;case"audio":return nr;case"pdf":return Ed;case"office":return Md;case"text":return Ad;case"file":return To}}function Ec({images:e}){let t=Ye(It),{t:n}=We();return e.length===0?null:c("div",{className:"mb-2 grid max-w-[420px] grid-cols-2 gap-2",children:e.map(o=>c("div",{className:"overflow-hidden rounded-lg border border-border/80 bg-background/70",children:o.previewUrl?c("button",{type:"button",className:"h-full w-full cursor-zoom-in","data-attachment-action":"preview","data-attachment-name":o.name,"aria-label":n("attachments.preview",{name:o.name}),onClick:()=>{let r=Pp(e,o.id);r&&t.onImageExpand(r)},children:c("img",{src:o.previewUrl,alt:o.name,loading:"lazy",decoding:"async",className:Nr(o)==="svg"?"block h-auto max-h-[220px] w-full bg-white object-contain":"block h-auto max-h-[220px] w-full object-cover object-top"})}):c("div",{className:"flex min-h-[72px] items-center justify-center px-2 py-3 text-center text-secondary-label text-chat-dense",children:o.name})},o.id))})}function Mc(e){let{t}=We(),n=Ye(It).onAttachmentDocumentOpen,o=Nr(e.attachment),r=Lp(o),a=t("attachments.open",{name:e.attachment.name}),s=S(he,{children:[c(r,{className:"size-4 shrink-0 text-secondary-label"}),S("span",{className:"min-w-0 flex-1",children:[c("span",{className:"block truncate font-medium text-foreground text-chat-row",children:e.attachment.name}),c("span",{className:"block text-secondary-label text-chat-meta",children:Ga(e.attachment.sizeBytes)})]})]});return e.attachment.previewUrl&&(o==="video"||o==="audio")?S("div",{className:"flex max-w-sm flex-col gap-2 rounded-sm border border-border/70 bg-background/70 px-2.5 py-2",children:[c("a",{href:e.attachment.previewUrl,target:"_blank",rel:"noreferrer","aria-label":a,className:"flex items-center gap-2 hover:underline",children:s}),c(IS,{kind:o,src:e.attachment.previewUrl,title:e.attachment.name})]}):(o==="pdf"||o==="office")&&n?c("button",{type:"button","data-attachment-action":"open","data-attachment-name":e.attachment.name,"aria-label":a,onClick:()=>n({attachmentId:e.attachment.id,name:e.attachment.name}),className:"flex w-full cursor-pointer items-center gap-2 rounded-sm border border-border/70 bg-background/70 px-2.5 py-2 text-start hover:bg-background/90",children:s}):e.attachment.previewUrl?c("a",{href:e.attachment.previewUrl,target:"_blank",rel:"noreferrer","aria-label":a,className:"flex items-center gap-2 rounded-sm border border-border/70 bg-background/70 px-2.5 py-2 hover:bg-background/90",children:s}):c("div",{className:"flex items-center gap-2 rounded-sm border border-border/70 bg-background/70 px-2.5 py-2",children:s})}Y();Y();var cV=Object.freeze([]),uV=()=>cV;function _0(e){return e.type==="file"&&e.source?._tag==="thread-reference"}function fV(e){return e.omitted===null?e.carried:S(he,{children:[c("span",{className:"inline-block max-w-full",children:`${e.carried} \xB7`})," ",c("span",{className:"inline-block max-w-full",children:e.omitted})]})}function D0(e){let t=Ye(It),{t:n}=We(),r=(t.threadReferences?.useDeliveries??uV)(t.activeThreadEnvironmentId,e).filter(a=>a.status!=="unreadable");return r.length===0?null:c("ul",{"aria-label":n("threadReference.listLabel"),className:"flex min-w-0 max-w-[min(70%,40rem)] flex-col gap-0.5 text-chat-dense text-muted-foreground",children:r.map(a=>S("li",{"data-thread-reference-delivery":a.status,className:"flex min-w-0 items-start gap-1",children:[c("span",{className:"flex h-lh shrink-0 items-center",children:c(Qr,{"aria-hidden":"true",className:"size-3.5"})}),S("span",{className:"flex min-w-0 flex-1 flex-wrap gap-x-1",children:[c("span",{className:"max-w-max min-w-0 grow basis-24 truncate",children:n("threadReference.title",{title:a.reference.title})}),c("span",{className:"max-w-full",children:a.status==="carried"?c(fV,{carried:n("threadReference.carried",{count:a.carriedMessages}),omitted:a.omittedMessages>0?n("threadReference.omitted",{count:a.omittedMessages}):null}):a.status==="missing"?n("threadReference.missing"):n("threadReference.loading")})]})]},`${a.reference.environmentId}:${a.reference.threadId}`))})}Y();function pV(e){let t=e.match(/:(\d+)$/);if(!t?.[1])return{path:e,line:void 0,column:void 0};let n=e.slice(0,-t[0].length),o=n.match(/:(\d+)$/);return o?.[1]?{path:n.slice(0,-o[0].length),line:o[1],column:t[1]}:{path:n,line:t[1],column:void 0}}function Vv(e){return e.replaceAll("\\","/")}function qv(e){return/^\/[A-Za-z]:\//.test(e)?e.slice(1):e}function mV(e){return qv(Vv(e.replace(/[\\/]+$/,"")))}function gV(e){return e.slice(e.lastIndexOf("/")+1)}function hV(e){return e.startsWith("/")||/^[A-Za-z]:\//.test(e)}function vV(e){return e.startsWith("\\\\")||/^[A-Za-z]:([/\\]|$)/.test(qv(Vv(e)))}function Rp(e,t){let{path:n,line:o,column:r}=pV(e),a=qv(Vv(n)),s=a;if(t){let i=mV(t),l=gV(i),d=vV(t)?p=>p.toLowerCase():p=>p,u=d(a),f=d(i);if(u===f)s=l;else if(u.startsWith(`${f}/`))s=`${l}/${a.slice(i.length+1)}`;else if(!hV(a)){let p=a.replace(/^\.\/+/,"").replace(/^\/+/,"");s=u.startsWith(`${d(l)}/`)?a:`${l}/${p}`}}return o?`${s}:${o}${r?`:${r}`:""}`:s}var yV=/<review_comment\b([^>]*)>\s*([\s\S]*?)<\/review_comment>/g,CV=/([a-zA-Z][a-zA-Z0-9_-]*)="([^"]*)"/g,xV=/(`{3,})([^\s`]*)[^\n]*\n([\s\S]*?)\n\1/g;function bV(e){return e.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&amp;/g,"&")}function wV(e){let t={};for(let n of e.matchAll(CV))t[n[1]]=bV(n[2]??"");return t}function O0(e){return e===void 0||!/^\d+$/.test(e)?null:Number(e)}function SV(e){let n=Array.from(e.matchAll(xV)).at(-1),o=n?.index;return{text:e.slice(0,o??e.length).trim(),language:n?.[2]?.trim()||"diff",contents:n?.[3]??""}}function IV(e,t,n){let o=wV(e),r=O0(o.startIndex),a=O0(o.endIndex),s=o.filePath?.trim(),i=o.sectionId?.trim();if(!s||!i||r===null||a===null)return null;let l=SV(t);return{id:`review-comment:${n}:${i}:${s}:${r}:${a}`,sectionId:i,sectionTitle:o.sectionTitle?.trim()||null,filePath:s,startIndex:Math.min(r,a),endIndex:Math.max(r,a),rangeLabel:o.rangeLabel?.trim()||null,text:l.text,diff:l.contents,fenceLanguage:l.language}}function Ap(e){let t=[],n=0,o=0;for(let a of e.matchAll(yV)){let s=a.index??0,i=e.slice(n,s);i.length>0&&t.push({kind:"text",id:`review-comment-text:${n}`,text:i});let l=IV(a[1]??"",a[2]??"",o);l?(t.push({kind:"review-comment",comment:l}),o+=1):t.push({kind:"text",id:`review-comment-invalid:${s}`,text:a[0]}),n=s+a[0].length}let r=e.slice(n);return r.length>0&&t.push({kind:"text",id:`review-comment-text:${n}`,text:r}),t}function F0(e,t){let n=Math.max(0,...Array.from(t.matchAll(/`+/g),r=>r[0].length)),o="`".repeat(Math.max(3,n+1));return[`${o}${e}`,t.trimEnd(),o].join(`
4118
+ `;function UT(e){let[t,n]=W(""),[o,r]=W("all"),[a]=W(()=>cp(e.memoryScope)),s=M(a.camera!==null&&a.focusThreadId===e.focusThreadId),[i,l]=W(s.current?a.selectedId:null),[d,u]=W(s.current&&a.camera!==null?a.camera:{x:24,y:24,scale:1}),[f,p]=W({}),[m,h]=W(a.draft);U(()=>{Rv(e.memoryScope,{focusThreadId:e.focusThreadId,camera:d,selectedId:i,draft:m})},[e.memoryScope,e.focusThreadId,d,i,m]),U(()=>()=>Av(e.memoryScope),[e.memoryScope]);let[g,v]=W(null),C=M(null),y=K(()=>e.board===null?null:IT(e.board,e.fuller),[e.board,e.fuller]),x=K(()=>{let w=new Map;if(y===null)return w;for(let L of y.threads)w.set(L.threadId,L);return w},[y]),b=K(()=>{if(y===null)return{cards:[],childCounts:new Map,descendantCounts:new Map};let w=Cv(yv(y.threads),y.anchors);return mT(w,e.collapsed)},[y,e.collapsed]),I=b.cards.filter(w=>{let L=x.get(w.threadId);return L===void 0||o!=="all"&&L.projectId!==o?!1:t.trim().length===0?!0:`${L.title} ${w.question} ${w.answer}`.toLowerCase().includes(t.trim().toLowerCase())}),T=b.cards.find(w=>w.id===i)??I.find(w=>w.threadId===e.focusThreadId)??null,P=o==="all"?e.t("map.projectAll"):y?.projects.find(w=>w.projectId===o)?.title??e.t("map.projectAll"),k=e.focusThreadId!==null&&x.has(e.focusThreadId);return U(()=>{if(!k||e.focusThreadId===null||y===null)return;let w=Cv(yv(y.threads),y.anchors),L=k3(w,e.focusThreadId,e.collapsed);if(L.length===e.collapsed.size&&L.every(A=>e.collapsed.has(A))||e.onCollapsed(L),s.current){s.current=!1;return}let N=w.findLast(A=>A.threadId===e.focusThreadId);N!==void 0&&l(N.id)},[e.focusThreadId,e.locateToken,k]),S("section",{ref:C,className:"ycodium-session-map","data-pane":e.fill==="pane"?"":void 0,"data-page":e.fill==="page"?"":void 0,children:[c("style",{children:up}),S("header",{className:"session-map-bar",children:[S("div",{className:"session-map-title",children:[c("strong",{children:y?.workspaceTitle||e.t("map.title")}),c("span",{children:e.pending&&y===null?e.t("map.loading"):e.t("map.sessions",{count:y?.threads.length??0})})]}),S("div",{className:"session-map-actions",children:[e.viewSwitch,S("div",{className:"session-map-zoom",children:[c(ee,{type:"button",size:"icon-xs",variant:"outline","aria-label":e.t("map.zoomOut"),onClick:()=>u(BT(d,1/1.15)),children:c(Rs,{})}),c("span",{children:e.t("map.zoom",{percent:Math.round(d.scale*100)})}),c(ee,{type:"button",size:"icon-xs",variant:"outline","aria-label":e.t("map.zoomIn"),onClick:()=>u(BT(d,1.15)),children:c(Qd,{})}),c(ee,{type:"button",size:"xs",variant:"outline",onClick:()=>{let L=C.current?.querySelector(".session-map-stage")?.getBoundingClientRect(),R=y===null?[]:I.map(N=>wc(N,y.positions,f));u(vT(R,L?.width??800,L?.height??600)),p({})},children:e.t("map.fit")})]}),c(ee,{type:"button",size:"xs",variant:"outline",onClick:e.onLocate,children:e.t("map.locate")}),c(ee,{type:"button",size:"xs",variant:"ghost",onClick:()=>{p({}),e.onTidy()},children:e.t("map.tidy")}),e.viewSwitch!=null||e.onClose===null?null:c(ee,{type:"button",size:"xs",variant:"ghost",onClick:e.onClose,children:e.t("map.close")})]})]}),g===null?null:S("div",{className:"session-map-undo",children:[c("span",{children:e.t("map.hiddenNotice",{title:g.title})}),c(ee,{type:"button",size:"xs",variant:"outline",onClick:()=>{e.onRestore(g.threadId),v(null)},children:e.t("map.undo")})]}),y===null?null:S("div",{className:"session-map-body",children:[S("aside",{className:"session-map-side",children:[c(iS,{className:"session-map-search",value:t,size:"sm",variant:"ghost","aria-label":e.t("map.search"),placeholder:e.t("map.search"),onValueChange:n}),S("div",{className:"session-map-actions",style:{marginTop:8},children:[c(ee,{type:"button",size:"xs",onClick:()=>h({kind:"new"}),children:e.t("map.new")}),S(Yr,{value:o,onValueChange:w=>r(w??"all"),children:[c(Bs,{size:"xs","aria-label":e.t("map.projectAll"),children:c(Zr,{children:P})}),S(Jr,{children:[c(rr,{value:"all",children:e.t("map.projectAll")}),y.projects.map(w=>c(rr,{value:w.projectId,children:w.title||w.workspaceRoot},w.projectId))]})]})]}),y.threads.length===0?c(Fs,{title:e.t("map.empty")}):null,c(I3,{t:e.t,board:y,focusThreadId:e.focusThreadId,onOpen:w=>{let L=b.cards.findLast(R=>R.threadId===w);L!==void 0&&l(L.id),e.onOpenThread(w)}})]}),c(AT,{t:e.t,board:y,cards:I,childCounts:b.childCounts,descendantCounts:b.descendantCounts,collapsed:e.collapsed,focusThreadId:e.focusThreadId,selectedId:T?.id??null,optimistic:f,camera:d,resumeCamera:a.camera!==null&&a.focusThreadId===e.focusThreadId,locateToken:e.locateToken,onCamera:u,onSelect:w=>l(w.id),onMove:e.onMove,onOptimistic:(w,L,R)=>p(N=>({...N,[w]:{x:L,y:R}})),onToggleCollapse:w=>{let L=new Set(e.collapsed);L.has(w)?L.delete(w):L.add(w),e.onCollapsed([...L])},onContinue:w=>{l(w.id),h({kind:"continue",threadId:w.threadId})},onBranch:w=>{l(w.id),h({kind:"branch",threadId:w.threadId,messageId:w.messageId})},onHide:w=>{let L=x.get(w)?.title??e.t("settings.hiddenUntitled");v({threadId:w,title:L}),e.onHide(w)},onOpen:e.onOpenThread}),c(FT,{t:e.t,board:y,cards:b.cards,selected:T,detail:e.detail,detailThreadId:e.detailThreadId,phrases:e.phrases,draft:m,savedText:w=>{let L=cp(e.memoryScope);return L.textTarget===w?L.text:""},onText:(w,L)=>Rv(e.memoryScope,{textTarget:w,text:L}),onDraft:h,onPhrases:e.onPhrases,onAnchor:e.onAnchor,onLoadDetail:e.onLoadDetail,onOpen:e.onOpenThread,formatTime:e.formatTime,onSend:e.onSend})]})]})}function I3(e){let t=M(null),n=K(()=>T3(e.board,e.t),[e.board,e.t]),o=n.findIndex(r=>r.kind==="thread"&&r.thread.threadId===e.focusThreadId);return U(()=>{o<0||t.current?.scrollIndexIntoView({index:o,animated:!1})},[e.focusThreadId,o]),c("div",{className:"session-map-sessions",children:c(op,{ref:t,data:n,estimatedItemSize:36,keyExtractor:r=>r.key,extraData:e.focusThreadId,style:{height:"100%"},renderItem:({item:r})=>r.kind==="header"?c("div",{className:"session-map-project",children:r.title}):c(lS,{className:"session-map-session",label:r.thread.title||e.t("card.empty"),pressed:r.thread.threadId===e.focusThreadId,trailing:r.thread.running?c("span",{className:"session-map-running",children:e.t("map.running")}):void 0,onClick:()=>e.onOpen(r.thread.threadId)})})})}function T3(e,t){let n=new Map;for(let s of e.threads){let i=n.get(s.projectId)??[];i.push(s),n.set(s.projectId,i)}let o=new Set(e.projects.map(s=>s.projectId)),r=[];for(let s of e.projects){let i=n.get(s.projectId)??[];if(i.length!==0){r.push({kind:"header",key:`project:${s.projectId}`,title:s.title||s.workspaceRoot});for(let l of i)r.push({kind:"thread",key:l.threadId,thread:l})}}let a=e.threads.filter(s=>!o.has(s.projectId));if(a.length>0){r.push({kind:"header",key:"project:none",title:t("map.ungrouped")});for(let s of a)r.push({kind:"thread",key:s.threadId,thread:s})}return r}function BT(e,t){let n=Math.min(4,Math.max(.25,e.scale*t));return{...e,scale:n}}function k3(e,t,n){return[...gT(e,t,n)]}var Ev="ycodium-session-map:phrases",Mv="ycodium-session-map:collapsed",HT="ycodium-session-map:phrases",KT="ycodium-session-map:collapsed";function $T(e,t,n){let o=r=>{r.key===e&&n()};return window.addEventListener("storage",o),window.addEventListener(t,n),()=>{window.removeEventListener("storage",o),window.removeEventListener(t,n)}}var Xs=[];function VT(){return XT(Ev)}function qT(e){YT(Ev,JSON.stringify(e)),window.dispatchEvent(new Event(HT))}function WT(e){return $T(Ev,HT,e)}function jT(){return XT(Mv)}function GT(e){YT(Mv,JSON.stringify(e)),window.dispatchEvent(new Event(KT))}function QT(e){return $T(Mv,KT,e)}var zT=new Map;function XT(e){let t=L3(e),n=zT.get(e);if(n!==void 0&&n.raw===t)return n.value;let o=P3(t);return zT.set(e,{raw:t,value:o}),o}function P3(e){if(e===null)return Xs;try{let t=JSON.parse(e);if(!Array.isArray(t))return Xs;let n=t.filter(o=>typeof o=="string");return n.length===0?Xs:n}catch{return Xs}}function L3(e){try{return localStorage.getItem(e)}catch{return null}}function YT(e,t){try{localStorage.setItem(e,t)}catch{}}Y();function fp(e){let[t,n]=W(()=>({data:e,board:wv(null,e)}));return t.data!==e&&n({data:e,board:wv(t.board,e)}),t.board}function pp(e){let t=Bn(WT,VT,()=>Xs),n=Bn(QT,jT,()=>Xs),o=K(()=>new Set(n),[n]),[r,a]=W(null),s=M(0),[i,l]=W(0),d=e.environmentId,u=e.threadId,f=d===null?{}:{environmentId:d},p=e.bridge.commands.useSubscription("live",{},f),m=e.bridge.commands.useSubscription("ycodium.sessionProjection",{name:"card",threadId:u!==null&&u.length>0?u:"_"},f),h=e.bridge.i18n.usePluginTranslation(),g=e.bridge.useFormatTimestamp(),v=fp(p.data);U(()=>{u===null||u.length===0||e.bridge.commands.invoke("focus",{threadId:u},f)},[u,d,e.bridge]);let C=u===null?null:TT(m.data);return c(UT,{t:h,board:v,pending:p.isPending,focusThreadId:u,fuller:C,detail:r?.view??null,detailThreadId:r?.threadId??null,phrases:Sc(t),collapsed:o,fill:e.fill,locateToken:e.locateToken+i,memoryScope:d??"",viewSwitch:e.viewSwitch??null,formatTime:g,onClose:e.onClose,onOpenThread:y=>{d!==null&&e.bridge.openThread({environmentId:d,threadId:y})},onLocate:()=>l(y=>y+1),onPhrases:qT,onCollapsed:GT,onMove:(y,x,b)=>{e.bridge.commands.invoke("move",{cardId:y,x,y:b},f)},onTidy:()=>{e.bridge.commands.invoke("tidy",{},f)},onHide:y=>{e.bridge.commands.invoke("hide",{threadId:y},f)},onRestore:y=>{e.bridge.commands.invoke("restore",{threadId:y},f)},onAnchor:(y,x)=>{e.bridge.commands.invoke("preferences",{patch:{anchor:{threadId:y,cardId:x}}},f)},onLoadDetail:y=>{let x=s.current+1;s.current=x,e.bridge.commands.invoke("detail",{threadId:y},f).then(b=>{s.current===x&&a({threadId:y,view:kT(b)})})},onSend:async(y,x,b)=>{let I=PT(await R3(e.bridge,y,x,b,f));return I.ok&&I.walkedBack?e.bridge.notify(h("card.walkedBack"),"info"):I.ok&&e.bridge.notify(h("draft.sent"),"success"),I}})}async function R3(e,t,n,o,r){switch(t.kind){case"continue":return e.commands.invoke("send",{threadId:t.threadId,text:n},r);case"branch":return e.commands.invoke("fork",{threadId:t.threadId,messageId:t.messageId,text:n},r);case"new":return e.commands.invoke("create",{projectId:o,text:n},r);default:return t}}Y();function sn(){return{t:Un().i18n.usePluginTranslation()}}function JT(e){if(e.cacheDisjoint!==!0)return null;let t=e.cachedInputTokens,n=e.inputTokens;if(t===void 0||n===void 0)return null;let o=t+n;if(o<=0)return null;if(t>=o)return"100%";let r=t/o*100;for(let a=0;a<=3;a+=1){let s=r.toFixed(a);if(Number.parseFloat(s)<100)return`${s}%`}return"99.9%"}function ZT(e){let t,n,o,r=!0,a=!1;for(let s of e)s!==void 0&&(a=!0,s.cacheDisjoint!==!0&&(r=!1),s.outputTokens!==void 0&&(t=(t??0)+s.outputTokens),s.inputTokens!==void 0&&(n=(n??0)+s.inputTokens),s.cachedInputTokens!==void 0&&(o=(o??0)+s.cachedInputTokens));if(!(t===void 0&&n===void 0&&o===void 0))return{...a&&r?{cacheDisjoint:!0}:{},...t!==void 0?{outputTokens:t}:{},...n!==void 0?{inputTokens:n}:{},...o!==void 0?{cachedInputTokens:o}:{}}}function Ic(e){return e<1e3?String(Math.round(e)):e<1e6?`${(e/1e3).toFixed(1).replace(/\.0$/,"")}k`:`${(e/1e6).toFixed(1).replace(/\.0$/,"")}m`}var A3=ce(function({item:t,ordinal:n,usage:o,onSelect:r}){return S("button",{type:"button","data-turn-navigator-row":t.sectionKey,onClick:()=>r(t),className:"flex w-full cursor-pointer items-start gap-2.5 rounded-md px-2 py-1.5 text-left transition-colors hover:bg-accent",children:[c("span",{className:"shrink-0 pt-px font-mono text-[10px] text-muted-foreground tabular-nums",children:n}),S("span",{className:"flex min-w-0 flex-1 flex-col gap-0.5",children:[c("span",{className:"line-clamp-2 min-w-0 font-medium text-chat leading-snug",children:t.userText}),t.assistantText?S("span",{className:"flex items-baseline gap-2",children:[c("span",{className:"line-clamp-1 min-w-0 flex-1 text-[11px] text-muted-foreground leading-snug",children:t.assistantText}),o?.outputTokens!==void 0?c("span",{className:"shrink-0 font-mono text-[9px] text-muted-foreground tabular-nums",children:Ic(o.outputTokens)}):null]}):null]})]})});function E3({totals:e}){let{t}=sn();if(!e)return null;let n=JT(e),o=[e.outputTokens===void 0?null:{label:t("turnNavigator.usageOutput"),value:Ic(e.outputTokens)},e.inputTokens===void 0?null:{label:t("turnNavigator.usageInput"),value:Ic(e.inputTokens)},e.cachedInputTokens===void 0?null:{label:t("turnNavigator.usageCacheRead"),value:n===null?Ic(e.cachedInputTokens):`${Ic(e.cachedInputTokens)} (${n})`}].filter(r=>r!==null);return o.length===0?null:S("div",{className:"flex items-baseline gap-2 border-t px-2 py-1.5",children:[c("span",{className:"flex-1 font-mono text-[10px] text-muted-foreground uppercase tracking-[0.14em]",children:t("turnNavigator.usage")}),o.map(r=>S("span",{className:"shrink-0 font-mono text-[10px] text-muted-foreground tabular-nums",children:[r.label," ",r.value]},r.label))]})}var M3=ce(function({getText:t,size:n="xs",variant:o="outline",className:r}){let{t:a}=sn(),s=Un().writeClipboard,[i,l]=W(!1),d=a("turnNavigator.copyMarkdown");return S(ze,{children:[c(Ke,{render:c(ee,{"aria-label":d,disabled:i,onClick:()=>{s(t()).then(()=>{l(!0),window.setTimeout(()=>l(!1),1e3)})},type:"button",size:n,variant:o,className:j("text-muted-foreground hover:text-foreground",r)}),children:i?c(Qn,{className:"size-3 text-primary"}):c(Ts,{className:"size-3"})}),c(He,{children:c("p",{children:d})})]})});function e0({items:e,totalTurnCount:t,bottomInset:n,usageByTurnId:o,onSelect:r,exportMarkdown:a,onDownload:s,placement:i="float"}){let{t:l}=sn(),[d,u]=W(!1),f=K(()=>e.map((g,v)=>({item:g,ordinal:v+1})).reverse(),[e]),p=K(()=>ZT(f.map(({item:g})=>g.turnId===null?void 0:o.get(g.turnId))),[f,o]);if(e.length===0)return null;let m=t??e.length,h=l("turnNavigator.open",{count:m});return S(Ho,{onOpenChange:u,open:d,children:[S(Ar,{render:c(ee,{"aria-label":h,className:j("gap-1.5 rounded-full px-3",i==="float"&&"absolute right-3 z-40"),"data-testid":"turn-navigator-pill",size:"xs",style:i==="float"?{bottom:n+12}:void 0,title:h,variant:"glass"}),children:[c(Kd,{"aria-hidden":!0}),c("span",{className:"font-mono font-semibold text-[11px] tabular-nums",children:m})]}),c(Ko,{align:"end",className:"w-80 flex-col",side:"top",children:S("div",{className:"flex max-h-[min(60vh,26rem)] flex-col",children:[S("div",{className:"flex items-center gap-1.5 border-b px-2 py-1.5",children:[c("span",{className:"flex-1 font-mono text-[10px] text-muted-foreground uppercase tracking-[0.14em]",children:l("turnNavigator.title")}),c("span",{className:"font-mono text-[10px] text-muted-foreground tabular-nums",children:m})]}),c("div",{className:j("min-h-0 flex-1 overflow-y-auto overflow-x-hidden p-1"),children:f.map(({item:g,ordinal:v})=>c(A3,{item:g,onSelect:C=>{u(!1),r(C)},ordinal:v,usage:g.turnId===null?void 0:o.get(g.turnId)},g.sectionKey))}),c(E3,{totals:p}),S("div",{className:"flex items-center gap-1 border-t px-2 py-1.5",children:[c("span",{className:"flex-1 font-mono text-[10px] text-muted-foreground uppercase tracking-[0.14em]",children:l("turnNavigator.export")}),c(M3,{size:"icon-xs",getText:a,variant:"ghost"}),c(ee,{"aria-label":l("turnNavigator.downloadMarkdown"),onClick:()=>s("md"),size:"xs",title:l("turnNavigator.downloadMarkdown"),variant:"ghost",children:c("span",{className:"font-mono text-[10px]",children:".md"})}),c(ee,{"aria-label":l("turnNavigator.downloadJson"),onClick:()=>s("json"),size:"xs",title:l("turnNavigator.downloadJson"),variant:"ghost",children:c("span",{className:"font-mono text-[10px]",children:".json"})})]})]})})]})}Y();function Tc(e){return e.replace(/\s+/g," ")}function N3(e,t){let n=e.slice(Math.max(0,e.length-t));return/^[\uDC00-\uDFFF]/.test(n)&&(n=n.slice(1)),n}function _3(e,t){let n=e.slice(0,t);return/[\uD800-\uDBFF]$/.test(n)&&(n=n.slice(0,-1)),n}function mp(e){let n=(e instanceof Element?e:e?.parentElement??null)?.closest("[data-assistant-quote-body]")??null;return n?.closest('[data-message-role="assistant"]')?n:null}function t0(e){if(!e||e.isCollapsed||e.rangeCount===0)return null;let t=e.getRangeAt(0),n=mp(t.startContainer);if(n===null||mp(t.endContainer)!==n)return null;let o=n.closest("[data-message-id]")?.dataset.messageId;if(!o)return null;let r=e.toString().trim();if(r.length===0)return null;let a=document.createRange();a.selectNodeContents(n),a.setEnd(t.startContainer,t.startOffset);let s=document.createRange();s.selectNodeContents(n),s.setStart(t.endContainer,t.endOffset);let i=Tc(t.toString()),l=i.length>i.trimStart().length?" ":"",d=i.length>i.trimEnd().length?" ":"",u=Tc(a.toString()+l),f=Tc(d+s.toString()),p=u.length,m=p+i.trim().length,h=t.getClientRects(),g=h[0]??t.getBoundingClientRect(),v=h[h.length-1]??g;return{messageId:o,text:r,start:p,end:m,prefix:N3(u,32),suffix:_3(f,32),anchor:{x:v.right,top:g.top,bottom:v.bottom}}}var gp="assistant-quote-inserter",hp="assistant-quote-open-comment";Y();var o0=100,D3=new Map,n0=new Map,vp=e=>typeof e=="function"?e():e,r0=(e,t)=>typeof t=="function"?t(e):t;function O3(e,t,n){let o=e.get(t);return o===void 0&&(o={values:new Map,limit:Math.max(1,n)},e.set(t,o)),o}function F3(e,t){let n=n0.get(e);return n===void 0&&(n={values:new Map,limit:Math.max(1,t)},n0.set(e,n)),n}function B3(e,t){if(!(e.values.size<=e.limit)){for(let[n,o]of e.values){if(e.values.size<=e.limit)return;o===t||o.committed||o.leases>0||(e.values.delete(n),o.alive=!1,o.subscribers.clear())}for(let[n,o]of e.values){if(e.values.size<=e.limit)return;o===t||o.leases>0||(e.values.delete(n),o.alive=!1,o.subscribers.clear())}}}function Nv(e,t,n){e.values.get(t)===n&&(e.values.delete(t),e.values.set(t,n))}function a0(e,t,n){let o=e.values.get(t);return o===void 0&&(o={value:vp(n),subscribers:new Set,leases:0,alive:!0,committed:!1},e.values.set(t,o)),o}function kc(e){queueMicrotask(()=>B3(e))}function Pt(e,t,n,o=o0){let r=Math.max(1,o),a=O3(D3,e,r),s=a0(a,t,n),i=E(f=>s.alive?(a.limit=r,s.committed=!0,Nv(a,t,s),s.leases+=1,s.subscribers.add(f),kc(a),()=>{s.subscribers.delete(f),s.leases=Math.max(0,s.leases-1),kc(a)}):()=>{},[r,s,a,t]),l=E(()=>s.value,[s]),d=Bn(i,l,l),u=E(f=>{if(!s.alive||a.values.get(t)!==s)return;let p=s.value,m=r0(p,f);if(!Object.is(m,p)){s.value=m,Nv(a,t,s);for(let h of s.subscribers)h();kc(a)}},[s,a,t]);return[d,u]}function s0(e,t){let n=M(null);(n.current===null||n.current.key!==e)&&(n.current={key:e,value:vp(t)});let[,o]=Wr(a=>a+1,0),r=E(a=>{let s=n.current;if(s===null||s.key!==e)return;let i=r0(s.value,a);Object.is(i,s.value)||(s.value=i,o())},[e]);return[n.current.value,r]}function ot(e,t,n,o=o0){let r=Math.max(1,o),a=F3(e,r),s=a0(a,t,()=>({current:vp(n)}));return U(()=>{if(!(!s.alive||a.values.get(t)!==s))return a.limit=r,s.committed=!0,Nv(a,t,s),s.leases+=1,kc(a),()=>{s.leases=Math.max(0,s.leases-1),kc(a)}},[r,s,a,t]),s.value}function Ao(e,t){let n=M(null);return(n.current===null||n.current.key!==e)&&(n.current={key:e,ref:{current:vp(t)}}),n.current.ref}var U3=300;function i0(e){let{data:t,target:n,threadKey:o,surfaceRef:r}=e,{t:a}=ie(),s=ot(gp,o,null),[,i]=Pt(hp,o,null),[l,d]=W(null),u=M(null);if(U(()=>{let g,v=()=>{let T=r.current,P=document.getSelection(),k=P&&P.rangeCount>0?P.getRangeAt(0):null;if(!T||!k||!T.contains(k.commonAncestorContainer)){d(null);return}let w=t0(P);if(w===null){d(null);return}let L=t.assistantQuotes.serialize({version:1,environmentId:n.environmentId,threadId:n.threadId,messageId:w.messageId,text:w.text,start:w.start,end:w.end,prefix:w.prefix,suffix:w.suffix});d({source:L,...w.anchor})},C=T=>{u.current?.contains(T.target)||(clearTimeout(g),g=setTimeout(v,U3))},y=T=>{u.current?.contains(T.target)||(clearTimeout(g),d(null))},x=()=>d(null),b=T=>{T.key==="Escape"&&d(null)},I=()=>{(document.getSelection()?.isCollapsed??!0)&&d(null)};return document.addEventListener("pointerup",C,!0),document.addEventListener("keyup",C,!0),document.addEventListener("pointerdown",y,!0),document.addEventListener("keydown",b,!0),document.addEventListener("selectionchange",I),window.addEventListener("scroll",x,!0),()=>{clearTimeout(g),document.removeEventListener("pointerup",C,!0),document.removeEventListener("keyup",C,!0),document.removeEventListener("pointerdown",y,!0),document.removeEventListener("keydown",b,!0),document.removeEventListener("selectionchange",I),window.removeEventListener("scroll",x,!0)}},[t,r,n.environmentId,n.threadId]),l===null)return null;let f=l.source,p=Math.max(8,Math.min(window.innerWidth-200,l.x-12)),m=l.bottom+6,h=m+40<=window.innerHeight?m:Math.max(8,l.top-40);return c("div",{ref:u,className:"fixed z-50",style:{left:p,top:h},"data-assistant-quote-toolbar":"",children:S(ee,{size:"sm",variant:"outline",className:"shadow-md",disabled:f===null,title:f===null?a("timeline.quote.tooLong"):void 0,onMouseDown:g=>g.preventDefault(),onClick:()=>{f!==null&&s.current?.(f)===!0&&(i(f),document.getSelection()?.removeAllRanges(),d(null))},children:[c(Xr,{"aria-hidden":"true"}),a("timeline.quote.cite")]})})}Y();Y();function l0(e){let t=e.map(o=>({key:o.key,turnId:o.turnId,firstRowIndex:o.firstRowIndex,endRowIndex:o.firstRowIndex+o.rowIds.length})),n=new Map;for(let o of e)for(let[r,a]of o.rowIds.entries())n.set(a,{turnId:o.turnId,index:o.firstRowIndex+r});return{sections:t,bySectionKey:new Map(t.map(o=>[o.key,o])),byRowId:n}}function yp({index:e,visibleSectionKeys:t,protectedRowIds:n,selectionRows:o}){let r=t.flatMap(d=>{let u=e.bySectionKey.get(d)?.turnId;return u==null?[]:[u]}),a=n.flatMap(d=>{let u=e.byRowId.get(d)?.turnId;return u==null?[]:[u]}),s=o?e.byRowId.get(o.firstRowId)?.index:void 0,i=o?e.byRowId.get(o.lastRowId)?.index:void 0,l=s===void 0||i===void 0?[]:e.sections.flatMap(d=>d.turnId!==null&&d.endRowIndex>Math.min(s,i)&&d.firstRowIndex<=Math.max(s,i)?[d.turnId]:[]);return{firstTurnId:r[0]??null,lastTurnId:r.at(-1)??null,protectedTurnIds:[...new Set(a)],selectionTurnRange:l.length>0?{firstTurnId:l[0],lastTurnId:l.at(-1)}:null}}function d0(e,t,n,o){if(!o)return n;let r=e.findIndex(a=>t.has(a));return r<0?n:Math.max(n,e.length-r)}Y();Y();function _v(e,t){for(let n of e.querySelectorAll("[data-timeline-row-id]"))if(n.dataset.timelineRowId===t)return n;return null}function Ys(e,t){let n=0,o=e.length,r=-1;for(;n<o;){let a=Math.floor((n+o)/2),i=e[a].getBoundingClientRect();Math.max(i.bottom,i.top+1)>t?(r=a,o=a):n=a+1}return r}function z3(e){let t=e.getBoundingClientRect().top,n=e.querySelectorAll("[data-timeline-turn-section]"),o=a=>{let s=a.querySelectorAll("[data-timeline-row-id]"),i=Ys(s,t),l=i<0?void 0:s[i],d=l?.dataset.timelineRowId;return!l||d===void 0?null:{rowId:d,offsetPx:Math.round(t-l.getBoundingClientRect().top)}};if(n.length===0)return o(e);let r=Ys(n,t);if(r<0)return null;for(let a=r;a<n.length;a+=1){let s=o(n[a]);if(s)return s}return null}function c0(e,t){let n=0,o=e;for(;o&&o!==t;)n+=o.offsetTop,o=o.offsetParent;return n}var Dv=class extends Vr{getSnapshotBeforeUpdate(t){return t.inputKey!==this.props.inputKey&&t.onBeforeInputChange(),null}componentDidUpdate(){}componentWillUnmount(){this.props.onBeforeInputChange()}render(){return this.props.children}};function u0({inputKey:e,onBeforeInputChange:t,handleRef:n,onAttach:o,className:r,children:a,onScroll:s,onInteractionRowsChange:i}){let l=M(null),d=M({inputKey:e,store:nc()});d.current.inputKey!==e&&(d.current={inputKey:e,store:nc()});let u=M(i);u.current=i;let f=E(m=>{let h=d.current;return h.store.acquire(m,()=>{d.current===h&&u.current?.(h.store.rows())})},[]);pe(()=>{i?.(d.current.store.rows())},[e,i]),Fo(n,()=>({get node(){return l.current},measure:()=>{let m=l.current;return m?{scroll:m.scrollTop,scrollLength:m.clientHeight,contentLength:m.scrollHeight,topOf:h=>{let g=_v(m,h);return g===null?null:c0(g,m)},heightOf:h=>{let g=_v(m,h);return g===null?null:g.offsetHeight},rowAtScroll:()=>z3(m)}:null},scrollToEnd:m=>{let h=l.current;if(h){if(m?.animated){h.scrollTo({top:h.scrollHeight,behavior:"smooth"});return}h.scrollTop=h.scrollHeight-h.clientHeight}},scrollToRow:(m,h)=>{let g=l.current;if(!g)return!1;let v=_v(g,m);return v?(g.scrollTop=Math.max(0,c0(v,g)-(h?.viewOffset??0)),!0):!1},scrollToOffset:m=>{let h=l.current;h&&(h.scrollTop=Math.max(0,m))}}),[]);let p=E(m=>{l.current=m,o(m)},[o]);return c(Dv,{inputKey:e,onBeforeInputChange:t,children:c(tc,{value:f,children:c("div",{ref:p,className:r,style:{position:"relative"},onScroll:s,children:a})})})}function ll(e){if(!e)return!1;let t=e.tagName?.toLowerCase(),n=e.getAttribute?.("contenteditable");if(t==="textarea"||n==="true"||n===""||n==="plaintext-only"||"isContentEditable"in e&&e.isContentEditable===!0)return!0;if(t==="input"){let o=e.getAttribute?.("type")?.toLowerCase()??"text";if(!["button","submit","reset","image","checkbox","radio"].includes(o))return!0}return e.matches?.(":focus-visible")??!1}function il(e,t){let o=(e?.nodeType===1?e:e?.parentElement)?.closest("[data-timeline-row-id]");return o&&t.contains(o)?o.dataset.timelineRowId??null:null}function Cp(e){let t=e.ownerDocument.getSelection?.();if(!t||t.isCollapsed)return null;let n=null,o=null;for(let d=0;d<t.rangeCount;d+=1){let u=t.getRangeAt(d);u.intersectsNode(e)&&(n??=u,o=u)}if(!n||!o)return null;let r=il(n.startContainer,e),a=il(o.endContainer,e);if(r&&a)return{firstRowId:r,lastRowId:a};let s=e.querySelectorAll("[data-timeline-row-id]"),i=s[0]?.dataset.timelineRowId,l=s[s.length-1]?.dataset.timelineRowId;return i&&l?{firstRowId:r??i,lastRowId:a??l}:null}function Pc(e){let t=e.ownerDocument.getSelection?.();if(!t||t.isCollapsed)return!1;for(let n=0;n<t.rangeCount;n+=1)if(t.getRangeAt(n).intersectsNode(e))return!0;return!1}Y();function qa(e){let t=M(e);t.current=e;let n=M(!1),o=M(null),r=M(null),a=M(0),s=E(()=>{a.current+=1,r.current!==null&&cancelAnimationFrame(r.current),r.current=null},[]),i=E(()=>{if(!n.current||!t.current||r.current!==null||o.current===null)return;let u=++a.current;r.current=requestAnimationFrame(f=>{if(u!==a.current||(r.current=null,!n.current||!t.current))return;let p=o.current;o.current=null,p?.(f)})},[]),l=E(u=>{o.current=u,i()},[i]),d=E(()=>{o.current=null,s()},[s]);return pe(()=>(n.current=!0,i(),()=>{n.current=!1,s()}),[e,s,i]),K(()=>({request:l,cancel:d}),[l,d])}function f0({root:e,inputKey:t,visible:n,index:o,topInset:r,bottomInset:a,interactionRows:s,onRangeChange:i,onSelectionChange:l}){let d=M({inputKey:t,visible:n,index:o,topInset:r,bottomInset:a,interactionRows:s,onRangeChange:i,onSelectionChange:l});d.current={inputKey:t,visible:n,index:o,topInset:r,bottomInset:a,interactionRows:s,onRangeChange:i,onSelectionChange:l};let u=qa(n),f=M(null),p=E(()=>{let h=d.current;if(!e||!h.visible||e.clientHeight<=0)return;let g=e.getBoundingClientRect();if(g.height<=0)return;let v=g.top+h.topInset,C=g.bottom-h.bottomInset,y=e.querySelectorAll("[data-timeline-turn-section]"),x=Ys(y,v),b=[];if(x>=0)for(let w=x;w<y.length;w+=1){let L=y[w];if(L.getBoundingClientRect().top>=C)break;L.dataset.timelineTurnSection!==void 0&&b.push(L.dataset.timelineTurnSection)}let I=[...h.interactionRows()],T=e.ownerDocument.activeElement;if(ll(T)){let w=il(T,e);w&&I.push(w)}let P=yp({index:h.index,visibleSectionKeys:b,protectedRowIds:I,selectionRows:Cp(e)}),k=`${h.inputKey}:${JSON.stringify(P)}`;k!==f.current&&(f.current=k,h.onRangeChange?.(P))},[e]),m=E(()=>u.request(p),[u,p]);return pe(()=>{if(f.current=null,!n||!e)return;let h=t,g=!0,v=()=>{!g||d.current.inputKey!==h||!d.current.visible||(d.current.onSelectionChange(Pc(e)),m())};e.addEventListener("scroll",v,{passive:!0}),e.addEventListener("focusin",v),e.addEventListener("focusout",v),e.ownerDocument.addEventListener("selectionchange",v);let C=typeof ResizeObserver>"u"?null:new ResizeObserver(v);return C?.observe(e),e.firstElementChild&&C?.observe(e.firstElementChild),v(),()=>{g=!1,u.cancel(),C?.disconnect(),e.removeEventListener("scroll",v),e.removeEventListener("focusin",v),e.removeEventListener("focusout",v),e.ownerDocument.removeEventListener("selectionchange",v),i?.(null)}},[u,t,i,m,e,n]),pe(()=>{n&&m()},[o,m,n]),m}Y();var p0=ce(function({sectionKey:t,rowKeyPrefix:n,rowIds:o,renderRow:r,sectionRef:a}){return c("div",{className:"session-turn","data-timeline-turn-section":t,ref:a,children:o.map(s=>c("div",{className:"transcript-col min-w-0 overflow-x-clip",children:r(s)},`${n}:${s}`))})});var H3=400;function m0({root:e,minimumCount:t,keepAbovePx:n=0,canCompact:o,onCompact:r}){let a=e.ownerDocument,s=new Set,i,l=!1,d=()=>e.scrollHeight-e.clientHeight-e.scrollTop<=2,u=()=>{if(i=void 0,a.hidden||s.size>0||!o()||e.clientHeight<=0||!d()||Pc(e))return;let b=e.querySelectorAll("[data-timeline-turn-section]"),I=e.getBoundingClientRect().top-32-n,T=0,P=Math.max(0,b.length-t);for(;T<P;){let w=Math.floor((T+P)/2),L=b[w].getBoundingClientRect().bottom;if(!Number.isFinite(L))return;L<=I?T=w+1:P=w}if(T===0)return;let k=a.activeElement;if(k&&ll(k)){for(let w=0;w<T;w+=1)if(b[w].contains(k))return}r(b.length-T)},f=!1,p=()=>{if(a.hidden||s.size>0||!o()||f){clearTimeout(i),i=void 0;return}i===void 0&&(i=setTimeout(u,H3))},m=()=>{clearTimeout(i),i=void 0,p()},h=()=>{let b=d();!b||!l?m():p(),l=b},g=b=>{s.add(b.pointerId),m()},v=b=>{s.delete(b.pointerId),m()},C=()=>{f=Pc(e),m()},y=()=>{s.clear(),m()},x=["wheel","keydown","focusin","focusout"];for(let b of x)e.addEventListener(b,m,{passive:!0});return e.addEventListener("scroll",h,{passive:!0}),e.addEventListener("pointerdown",g,!0),a.addEventListener("pointerup",v,!0),a.addEventListener("pointercancel",v,!0),a.addEventListener("selectionchange",C),a.addEventListener("visibilitychange",p),a.defaultView?.addEventListener("blur",y),p(),{schedule:p,disconnect:()=>{clearTimeout(i);for(let b of x)e.removeEventListener(b,m);e.removeEventListener("scroll",h),e.removeEventListener("pointerdown",g,!0),a.removeEventListener("pointerup",v,!0),a.removeEventListener("pointercancel",v,!0),a.removeEventListener("selectionchange",C),a.removeEventListener("visibilitychange",p),a.defaultView?.removeEventListener("blur",y)}}}Y();function g0({root:e,topInsetPx:t,onActiveSectionChange:n,active:o}){let r=M(o);r.current=o;let a=qa(o),s=M(new Map),i=M(null),l=M(null),d=M(n);d.current=n;let u=E(()=>{if(!r.current||!e)return;let g=e.scrollTop+t,v=null,C=Number.NEGATIVE_INFINITY,y=null,x=Number.POSITIVE_INFINITY;for(let[I,T]of s.current){if(!T.isConnected)continue;let P=T.offsetTop;P<x&&(x=P,y=I),P<=g&&P>=C&&(C=P,v=I)}let b=v??y;b!==l.current&&(l.current=b,d.current(b))},[e,t]),f=E(()=>{r.current&&a.request(u)},[a,u]);U(()=>{if(!o||!e||typeof IntersectionObserver>"u")return;let g=!0,v=new IntersectionObserver(()=>{!g||!r.current||f()},{root:e,rootMargin:`-${t}px 0px 0px 0px`,threshold:0});i.current=v;for(let C of s.current.values())v.observe(C);return f(),()=>{g=!1,v.disconnect(),i.current=null,a.cancel()}},[o,a,f,e,t]);let p=M(new Map),m=E(g=>{let v=p.current.get(g);if(v)return v;let C=y=>{let x=s.current.get(g);x&&x!==y&&(i.current?.unobserve(x),s.current.delete(g)),y?(s.current.set(g,y),i.current?.observe(y)):p.current.get(g)===C&&p.current.delete(g)};return p.current.set(g,C),C},[]),h=E(()=>{r.current&&(l.current=null,f())},[f]);return K(()=>({observeSection:m,refresh:h}),[m,h])}Y();function h0(e){return Bn(e.subscribe,e.getStructure,e.getStructure)}function v0(e,t){let n=E(r=>e.subscribeRow(t,r),[e,t]),o=E(()=>e.getRow(t),[e,t]);return Bn(n,o,o)}function In(e,t,n=Object.is){let o=M(null),r=E(()=>{let a=e.getVersion(),s=o.current;if(s!==null&&s.store===e&&s.select===t&&s.version===a)return s.value;let i=t(e),l=s!==null&&s.store===e&&n(s.value,i)?s.value:i;return o.current={store:e,select:t,version:a,value:l},l},[e,t,n]);return Bn(e.subscribe,r,r)}Y();Y();function K3(e,t){let n={hour:"numeric",minute:"2-digit",...t?{second:"2-digit"}:{}};return e==="locale"?n:{...n,hour12:e==="12-hour"}}function $3(e){let t=e?.trim();if(t)try{return Intl.DateTimeFormat.supportedLocalesOf([t]),t}catch{return}}function V3(){return typeof window>"u"?null:window.desktopBridge?.getSystemLocale?.()??null}var Ov=$3(V3()),y0=new Map;function C0(e,t){let n=`${e}:${t?"seconds":"minutes"}`,o=y0.get(n);if(o)return o;let r=new Intl.DateTimeFormat(Ov,K3(e,t));return y0.set(n,r),r}function Fv(e){let t=new Date(e);return Number.isNaN(t.getTime())?null:t}var q3=new Intl.DateTimeFormat(void 0,{month:"long"});function W3(e){let t=e%100;if(t>=11&&t<=13)return"th";switch(e%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}}function j3(e,t){let n=Fv(e);return n?C0(t,!1).format(n):""}function Mr(e,t){let n=Fv(e);if(!n)return"";let o=j3(e,t),r=n.getDate(),a=q3.format(n),s=n.getFullYear();return`${o}, ${r}${W3(r)} ${a} ${s}`}var G3=new Intl.DateTimeFormat(Ov,{month:"numeric",day:"numeric"}),Q3=new Intl.DateTimeFormat(Ov,{month:"numeric",day:"numeric",year:"numeric"});function ia(e,t,n,o=Date.now()){let r=Fv(e);if(!r)return"";let a=C0(t,!1).format(r),s=new Date(o),i=new Date(s.getFullYear(),s.getMonth(),s.getDate()).getTime(),l=new Date(r.getFullYear(),r.getMonth(),r.getDate()).getTime(),d=Math.round((i-l)/864e5);return d<=0?a:d===1?n("relativeTime.yesterdayAt",{time:a}):`${(r.getFullYear()===s.getFullYear()?G3:Q3).format(r)} ${a}`}Y();var It=ct(null),xp=ct(null);Y();var dl=new Map,x0=24,X3=4e3,Y3=1024,b0=16384;function Bv(e){let t=dl.get(e);if(t)return t;let n={values:new Map,listeners:new Set,stringLength:0};if(dl.set(e,n),dl.size>x0){for(let[o,r]of dl)if(r.listeners.size===0&&o!==e&&(dl.delete(o),dl.size<=x0))break}return n}function Uv(e,t,n){return Bv(e).values.get(t)??n}function Lc(e,t,n,o=!0){let r=Bv(e);if(typeof n=="string"&&(n=n.slice(0,Y3)),r.values.get(t)===n)return;let a=r.values.get(t);if(typeof a=="string"&&(r.stringLength-=a.length),r.values.delete(t),r.values.set(t,n),typeof n=="string"&&(r.stringLength+=n.length),r.stringLength>b0){for(let[s,i]of r.values)if(!(typeof i!="string"||s===t)&&(r.values.delete(s),r.stringLength-=i.length,r.stringLength<=b0))break}if(r.values.size>X3){let s=r.values.keys().next().value;if(s!==void 0){let i=r.values.get(s);typeof i=="string"&&(r.stringLength-=i.length),r.values.delete(s)}}o&&r.listeners.forEach(s=>s())}function go(e,t,n){let o=E(i=>{let l=Bv(e);return l.listeners.add(i),()=>l.listeners.delete(i)},[e]),r=E(()=>Uv(e,t,n),[e,t,n]),a=Bn(o,r,r),s=E(i=>Lc(e,t,i),[e,t]);return[a,s]}function We(){let e=Un().i18n.usePluginTranslation();return{t:(t,n)=>e(t,n)}}var w0=window.__ycodiumPluginHost.modules?.["@ycodium-ai/plugin-api"];if(!w0)throw new Error("This plugin needs a newer Ycodium app. Update the app.");var{COMMUNICATION_RECORDS_READ_LIMIT:sae,MAX_PLUGIN_SESSION_PROJECTION_BYTES:iae,MAX_PLUGIN_SKILL_COMPANION_FILE_BYTES:lae,MAX_PLUGIN_SKILL_COMPANION_TOTAL_BYTES:dae,MAX_PLUGIN_STREAM_BUFFER:cae,MAX_PLUGIN_TOOL_PRESENTATION_BYTES:uae,MAX_PLUGIN_WORKSPACE_WRITE_BYTES:fae,MIN_PLUGIN_INTERVAL_MS:pae,PLUGIN_API_MIN_VERSION:mae,PLUGIN_API_VERSION:gae,PLUGIN_PROXY_DIRECT:hae,PLUGIN_SESSION_PROJECTION_COMMAND:vae,REASONING_OPTION_LABEL:yae,REQUEST_RESOLVED_TRIGGER_KIND:Cae,TURN_PROGRESS_TRIGGER_KIND:xae,USER_INPUT_PENDING_TRIGGER_KIND:bae,acceptPluginToolPresentation:wae,definePlugin:Sae,effortText:S0,knownEffortLevel:Iae,mergeLaunchEnv:Tae,modelOptionLabelKind:I0,modelSelectionStringOption:kae,parseRetryAfterMs:Pae,pluginJsonByteLength:Lae,readRequestResolved:Rae,readTurnProgress:Aae,readUserInputPending:Eae,reasoningEffortLevel:Mae,reasoningEffortShortLabel:Nae,relabelModelOptionDescriptors:T0}=w0;function bp(e,t,n){if(e!=="opencode"||t.length===0)return!1;let o=n?.trim();return o?!t.some(r=>r.slug===o):!1}function wp(e,t){if(e)return t?e:e.filter(n=>n.id!=="agent"||n.value!=="plan")}var k0={effort:"traits.savedOption.effort",reasoningEffort:"traits.savedOption.reasoningEffort",variant:"traits.savedOption.variant"},P0=e=>`traits.optionValue.${e}`;function J3(e){let t=e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").toLowerCase();return t.charAt(0).toUpperCase()+t.slice(1)}function L0(e,t){if(t==="agent")return e("traits.savedOption.agent");let n=I0(t);return n===void 0?J3(t):e(k0[n])}function zv(e,t){return T0(t,{kind:n=>e(k0[n]),level:n=>e(P0(n))})}function Hv(e,t){return S0(t,n=>e(P0(n)))}function R0(e,t){return(e??[]).map(n=>typeof n.value=="boolean"?{id:n.id,label:t(n.id),type:"boolean",currentValue:n.value}:{id:n.id,label:t(n.id),type:"select",options:[{id:n.value,label:n.value}],currentValue:n.value})}function A0(e){return e==="failed"?"failed":e==="running"?"running":"idle"}function E0(e){return e.includes("failed")?"failed":e.includes("running")?"running":"idle"}var Sp="chat-process-row flex w-full min-w-0 select-none items-center gap-1.5 px-2 text-left";function Rc({children:e}){return c("span",{"aria-hidden":!0,className:"flex size-4 shrink-0 items-center justify-center",children:e})}function Ac({status:e}){return c("span",{"aria-hidden":!0,className:"flex size-2 shrink-0 items-center justify-center",children:e===null?null:c("span",{className:j("block size-2 rounded-full",e==="failed"?"bg-destructive":e==="success"?"bg-success":"border border-muted-foreground/60")})})}function Ip({state:e,variant:t="inline",className:n,children:o}){return S("div",{"data-process-state":e,"data-process-kind":t,className:j("chat-process-shell relative min-w-0 overflow-hidden",t==="tool"?"rounded-lg bg-card":"rounded-md",n),children:[e==="running"?c("span",{"aria-hidden":!0,className:"chat-process-shell-pulse animate-status-pulse"}):null,o]})}Y();Y();var cl=class extends Error{reason;constructor(t,n,o){super(n,o),this.reason=t}};function Z3(e){if(typeof document>"u"||typeof document.execCommand!="function")return!1;let t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.setAttribute("aria-hidden","true"),t.style.position="fixed",t.style.top="0",t.style.left="0",t.style.opacity="0",t.style.fontSize="16px";let n=document.activeElement;document.body.appendChild(t);try{return t.focus({preventScroll:!0}),t.select(),t.setSelectionRange(0,e.length),document.execCommand("copy")}catch{return!1}finally{t.remove();let o=n?.focus;typeof o=="function"&&o.call(n)}}async function eV(e,t){let n=()=>new cl("unavailable",`Clipboard API is unavailable while copying ${t}.`);if(typeof window>"u")throw n();if(!e)return!1;if(typeof navigator>"u"||!navigator.clipboard?.writeText){if(Z3(e))return!0;throw n()}try{return await navigator.clipboard.writeText(e),!0}catch(o){throw new cl("write-failed",`Failed to copy ${t} to the clipboard.`,{cause:o})}}function Tp({timeout:e=2e3,target:t="text",onCopy:n,onError:o}={}){let[r,a]=W(!1),s=M(null),i=M(n),l=M(o),d=M(t),u=M(e);i.current=n,l.current=o,d.current=t,u.current=e;let f=E((p,m)=>{eV(p,d.current).then(h=>{h&&(s.current&&clearTimeout(s.current),a(!0),i.current?.(m),u.current!==0&&(s.current=setTimeout(()=>{a(!1),s.current=null},u.current)))},h=>{l.current?.(h instanceof Error?h:new Error(String(h)),m)})},[]);return U(()=>()=>{s.current&&clearTimeout(s.current)},[]),{copyToClipboard:f,isCopied:r}}var M0=1e3,tV={unavailable:"copyButton.clipboardUnavailable","write-failed":"copyButton.copyFailedDetail"};function nV({title:e,description:t}){return S("span",{role:"status",className:"dropdown-glass pointer-events-none fixed z-100 rounded-md px-2 py-1 text-pretty text-popover-foreground text-xs shadow-xl shadow-black/25",children:[e,t?c("span",{className:"block text-muted-foreground",children:t}):null]})}var Wa=ce(function({text:t,size:n="xs",variant:o="outline",className:r,toastAnchor:a="above",label:s}){let{t:i}=We(),l=s??i("copyButton.copyToClipboard"),d=M(null),[u,f]=W(null),p=M(null),m=(v,C)=>{let y=d.current?.getBoundingClientRect();y&&(p.current&&clearTimeout(p.current),f({top:a==="above"?Math.max(4,y.top-(C===void 0?26:40)):Math.min(window.innerHeight-26,y.bottom+4),left:Math.max(4,y.left+y.width/2),title:v,description:C}),p.current=setTimeout(()=>f(null),M0))};U(()=>()=>{p.current&&clearTimeout(p.current)},[]);let{copyToClipboard:h,isCopied:g}=Tp({onCopy:()=>m(i("copyButton.copied")),onError:v=>m(i("copyButton.failedToCopy"),v instanceof cl?i(tV[v.reason]):v.message),timeout:M0});return S(ze,{children:[c(Ke,{render:c(ee,{"aria-label":l,disabled:g,onClick:()=>h(t),ref:d,type:"button",size:n,variant:o,className:j("text-muted-foreground hover:text-foreground",r)}),children:g?c(Qn,{className:"size-3 text-primary"}):c(Ts,{className:"size-3"})}),c(He,{children:c("p",{children:l})}),u?c("span",{"aria-hidden":!0,className:"pointer-events-none fixed",style:{top:u.top,left:u.left},children:c("span",{className:"relative block -translate-x-1/2",children:c(nV,{title:u.title,description:u.description})})}):null]})});function kp({text:e,label:t,children:n}){return S("span",{className:"group/hover-copy inline-flex min-w-0 items-center gap-0.5",children:[n,c("span",{className:"inline-flex opacity-0 transition-opacity duration-(--control-duration) pointer-events-none group-focus-within/hover-copy:pointer-events-auto group-focus-within/hover-copy:opacity-100 group-hover/hover-copy:pointer-events-auto group-hover/hover-copy:opacity-100 [@media(pointer:coarse)]:pointer-events-auto [@media(pointer:coarse)]:opacity-100",children:c(Wa,{text:e,label:t,variant:"ghost",size:"icon-xs",className:"shrink-0",toastAnchor:"below"})})]})}Y();var oV=[".m4v",".mov",".mp4",".ogv",".webm"],rV=[".aac",".flac",".m4a",".mp3",".oga",".ogg",".opus",".wav",".weba"];function N0(e){let t=e.name.lastIndexOf(".");if(t<=0)return null;let n=e.name.slice(t).toLowerCase();return oV.includes(n)?"video":rV.includes(n)?"audio":null}var aV=["image/gif","image/jpeg","image/png","image/webp"],sV=new Set(aV);function Kv(e){return sV.has(e.toLowerCase())}function iV(e){return Kv(e)?"image":"file"}var lV=new Set(["application/json","application/xml","application/x-yaml","application/yaml"]),dV=[".doc",".docx",".odt",".ppt",".pptx",".odp",".xls",".xlsx",".ods"];function Nr(e){if(e.type==="image")return"image";let t=e.mimeType.toLowerCase();if(t==="image/svg+xml")return"svg";if(t==="application/pdf")return"pdf";let n=N0(e);if(n)return n;let o=e.name.lastIndexOf(".");return o>0&&dV.includes(e.name.slice(o).toLowerCase())?"office":t.startsWith("text/")||lV.has(t)?"text":"file"}function ja(e){let t=Nr(e);return t==="image"||t==="svg"}function Ga(e){return!Number.isFinite(e)||e<=0?"0 KB":e>=1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:`${Math.max(1,Math.round(e/1024))} KB`}function $v(e){let t={id:e.id,name:e.name,mimeType:e.mimeType,sizeBytes:e.sizeBytes};return iV(e.mimeType)==="image"?{type:"image",...t}:{type:"file",...t,...e.source?{source:e.source}:{}}}function Pp(e,t){let n=e.flatMap(r=>r.previewUrl?[{...r,src:r.previewUrl}]:[]);if(n.length===0)return null;let o=n.findIndex(r=>r.id===t);return o<0?null:{images:n.map(r=>({src:r.src,name:r.name,attachmentId:r.id,...r.source===void 0?{}:{source:r.source},...r.type!==void 0&&r.mimeType!==void 0&&Nr({type:r.type,mimeType:r.mimeType,name:r.name})==="svg"?{svg:!0}:{}})),index:o}}function Lp(e){switch(e){case"image":case"svg":return Ud;case"video":return _a;case"audio":return nr;case"pdf":return Ed;case"office":return Md;case"text":return Ad;case"file":return To}}function Ec({images:e}){let t=Ye(It),{t:n}=We();return e.length===0?null:c("div",{className:"mb-2 grid max-w-[420px] grid-cols-2 gap-2",children:e.map(o=>c("div",{className:"overflow-hidden rounded-lg border border-border/80 bg-background/70",children:o.previewUrl?c("button",{type:"button",className:"h-full w-full cursor-zoom-in","data-attachment-action":"preview","data-attachment-name":o.name,"aria-label":n("attachments.preview",{name:o.name}),onClick:()=>{let r=Pp(e,o.id);r&&t.onImageExpand(r)},children:c("img",{src:o.previewUrl,alt:o.name,loading:"lazy",decoding:"async",className:Nr(o)==="svg"?"block h-auto max-h-[220px] w-full bg-white object-contain":"block h-auto max-h-[220px] w-full object-cover object-top"})}):c("div",{className:"flex min-h-[72px] items-center justify-center px-2 py-3 text-center text-secondary-label text-chat-dense",children:o.name})},o.id))})}function Mc(e){let{t}=We(),n=Ye(It).onAttachmentDocumentOpen,o=Nr(e.attachment),r=Lp(o),a=t("attachments.open",{name:e.attachment.name}),s=S(he,{children:[c(r,{className:"size-4 shrink-0 text-secondary-label"}),S("span",{className:"min-w-0 flex-1",children:[c("span",{className:"block truncate font-medium text-foreground text-chat-row",children:e.attachment.name}),c("span",{className:"block text-secondary-label text-chat-meta",children:Ga(e.attachment.sizeBytes)})]})]});return e.attachment.previewUrl&&(o==="video"||o==="audio")?S("div",{className:"flex max-w-sm flex-col gap-2 rounded-sm border border-border/70 bg-background/70 px-2.5 py-2",children:[c("a",{href:e.attachment.previewUrl,target:"_blank",rel:"noreferrer","aria-label":a,className:"flex items-center gap-2 hover:underline",children:s}),c(IS,{kind:o,src:e.attachment.previewUrl,title:e.attachment.name})]}):(o==="pdf"||o==="office")&&n?c("button",{type:"button","data-attachment-action":"open","data-attachment-name":e.attachment.name,"aria-label":a,onClick:()=>n({attachmentId:e.attachment.id,name:e.attachment.name}),className:"flex w-full cursor-pointer items-center gap-2 rounded-sm border border-border/70 bg-background/70 px-2.5 py-2 text-start hover:bg-background/90",children:s}):e.attachment.previewUrl?c("a",{href:e.attachment.previewUrl,target:"_blank",rel:"noreferrer","aria-label":a,className:"flex items-center gap-2 rounded-sm border border-border/70 bg-background/70 px-2.5 py-2 hover:bg-background/90",children:s}):c("div",{className:"flex items-center gap-2 rounded-sm border border-border/70 bg-background/70 px-2.5 py-2",children:s})}Y();Y();var cV=Object.freeze([]),uV=()=>cV;function _0(e){return e.type==="file"&&e.source?._tag==="thread-reference"}function fV(e){return e.omitted===null?e.carried:S(he,{children:[c("span",{className:"inline-block max-w-full",children:`${e.carried} \xB7`})," ",c("span",{className:"inline-block max-w-full",children:e.omitted})]})}function D0(e){let t=Ye(It),{t:n}=We(),r=(t.threadReferences?.useDeliveries??uV)(t.activeThreadEnvironmentId,e).filter(a=>a.status!=="unreadable");return r.length===0?null:c("ul",{"aria-label":n("threadReference.listLabel"),className:"flex min-w-0 max-w-[min(70%,40rem)] flex-col gap-0.5 text-chat-dense text-muted-foreground",children:r.map(a=>S("li",{"data-thread-reference-delivery":a.status,className:"flex min-w-0 items-start gap-1",children:[c("span",{className:"flex h-lh shrink-0 items-center",children:c(Qr,{"aria-hidden":"true",className:"size-3.5"})}),S("span",{className:"flex min-w-0 flex-1 flex-wrap gap-x-1",children:[c("span",{className:"max-w-max min-w-0 grow basis-24 truncate",children:n("threadReference.title",{title:a.reference.title})}),c("span",{className:"max-w-full",children:a.status==="carried"?c(fV,{carried:n("threadReference.carried",{count:a.carriedMessages}),omitted:a.omittedMessages>0?n("threadReference.omitted",{count:a.omittedMessages}):null}):a.status==="missing"?n("threadReference.missing"):n("threadReference.loading")})]})]},`${a.reference.environmentId}:${a.reference.threadId}`))})}Y();function pV(e){let t=e.match(/:(\d+)$/);if(!t?.[1])return{path:e,line:void 0,column:void 0};let n=e.slice(0,-t[0].length),o=n.match(/:(\d+)$/);return o?.[1]?{path:n.slice(0,-o[0].length),line:o[1],column:t[1]}:{path:n,line:t[1],column:void 0}}function Vv(e){return e.replaceAll("\\","/")}function qv(e){return/^\/[A-Za-z]:\//.test(e)?e.slice(1):e}function mV(e){return qv(Vv(e.replace(/[\\/]+$/,"")))}function gV(e){return e.slice(e.lastIndexOf("/")+1)}function hV(e){return e.startsWith("/")||/^[A-Za-z]:\//.test(e)}function vV(e){return e.startsWith("\\\\")||/^[A-Za-z]:([/\\]|$)/.test(qv(Vv(e)))}function Rp(e,t){let{path:n,line:o,column:r}=pV(e),a=qv(Vv(n)),s=a;if(t){let i=mV(t),l=gV(i),d=vV(t)?p=>p.toLowerCase():p=>p,u=d(a),f=d(i);if(u===f)s=l;else if(u.startsWith(`${f}/`))s=`${l}/${a.slice(i.length+1)}`;else if(!hV(a)){let p=a.replace(/^\.\/+/,"").replace(/^\/+/,"");s=u.startsWith(`${d(l)}/`)?a:`${l}/${p}`}}return o?`${s}:${o}${r?`:${r}`:""}`:s}var yV=/<review_comment\b([^>]*)>\s*([\s\S]*?)<\/review_comment>/g,CV=/([a-zA-Z][a-zA-Z0-9_-]*)="([^"]*)"/g,xV=/(`{3,})([^\s`]*)[^\n]*\n([\s\S]*?)\n\1/g;function bV(e){return e.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&amp;/g,"&")}function wV(e){let t={};for(let n of e.matchAll(CV))t[n[1]]=bV(n[2]??"");return t}function O0(e){return e===void 0||!/^\d+$/.test(e)?null:Number(e)}function SV(e){let n=Array.from(e.matchAll(xV)).at(-1),o=n?.index;return{text:e.slice(0,o??e.length).trim(),language:n?.[2]?.trim()||"diff",contents:n?.[3]??""}}function IV(e,t,n){let o=wV(e),r=O0(o.startIndex),a=O0(o.endIndex),s=o.filePath?.trim(),i=o.sectionId?.trim();if(!s||!i||r===null||a===null)return null;let l=SV(t);return{id:`review-comment:${n}:${i}:${s}:${r}:${a}`,sectionId:i,sectionTitle:o.sectionTitle?.trim()||null,filePath:s,startIndex:Math.min(r,a),endIndex:Math.max(r,a),rangeLabel:o.rangeLabel?.trim()||null,text:l.text,diff:l.contents,fenceLanguage:l.language}}function Ap(e){let t=[],n=0,o=0;for(let a of e.matchAll(yV)){let s=a.index??0,i=e.slice(n,s);i.length>0&&t.push({kind:"text",id:`review-comment-text:${n}`,text:i});let l=IV(a[1]??"",a[2]??"",o);l?(t.push({kind:"review-comment",comment:l}),o+=1):t.push({kind:"text",id:`review-comment-invalid:${s}`,text:a[0]}),n=s+a[0].length}let r=e.slice(n);return r.length>0&&t.push({kind:"text",id:`review-comment-text:${n}`,text:r}),t}function F0(e,t){let n=Math.max(0,...Array.from(t.matchAll(/`+/g),r=>r[0].length)),o="`".repeat(Math.max(3,n+1));return[`${o}${e}`,t.trimEnd(),o].join(`
4119
4119
  `)}function B0(e){if((e.fenceLanguage??"diff")!=="diff")return"";let t=e.diff.trim();if(t.length===0)return"";if(t.startsWith("diff --git "))return t;let n=e.filePath.replaceAll("\\","/");return[`diff --git a/${n} b/${n}`,`--- a/${n}`,`+++ b/${n}`,t].join(`
4120
4120
  `)}var Nc="[a-zA-Z][a-zA-Z0-9:_-]*";function ul(e){return e===" "||e===`
4121
4121
  `||e===" "||e==="\r"}function fl(e){return e.enabled&&e.userInvocable!==!1}var z0="ycodium",U0=`${z0}:`,TV=new RegExp(String.raw`(^|\s)([$/])(${Nc})(?=\s|$)`,"g");function Wv(e){return[...e.matchAll(TV)].map(t=>{let n=(t.index??0)+(t[1]?.length??0),o=t[3]??"";return{sigil:t[2],name:o,start:n,end:n+o.length+1}})}var xse=new RegExp(String.raw`([$/])(${Nc})(?=\s|$)`,"y");function H0(e,t){let n=t.get(e);if(n!==void 0)return n;if(!e.startsWith(U0))return;let o=t.get(e.slice(U0.length));return o?.scope===z0?o:void 0}function K0(e,t,n,o=ul){if(t.length!==e.length+1)return null;let r=0;for(;r<e.length&&e[r]===t[r];)r+=1;let a=t.charAt(r);if(!ul(a)||r<e.length&&o(e.charAt(r))||t.slice(r+1)!==e.slice(r))return null;let s=r;for(;s>0&&!o(t.charAt(s-1));)s-=1;let l=kV.exec(t.slice(s,r))?.[1];return l===void 0||H0(l,n)===void 0?null:{start:s,end:r+1,replacement:`$${l}${a}`}}var kV=new RegExp(String.raw`^/(${Nc})$`);function Ep(e){return new Map(e.map(t=>[t.name,t]))}function $0(e,t){return t.size===0?[]:Wv(e).flatMap(n=>{let o=H0(n.name,t);return o===void 0?[]:[{...n,skill:o}]})}var PV="inline-flex h-[1.41em] max-w-full items-center gap-[0.33em] rounded-[0.5em] px-[0.5em] font-medium leading-none align-middle",LV=`${PV} border border-border/70 bg-accent/40 text-foreground`,Mp=`${LV} text-[12px]`,Np="block size-[1.17em] shrink-0 self-center opacity-85 [&>svg]:block",_p="truncate leading-tight",V0='<svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.85" stroke-linecap="round" stroke-linejoin="round"><path d="M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z"/><path d="m3.3 7 8.7 5 8.7-5"/><path d="M12 22V12"/></svg>';var q0="inline-flex h-[1.41em] max-w-full items-center gap-[0.33em] rounded-[0.5em] px-[0.5em] font-medium leading-none align-middle",W0=`${q0} border border-border/70 bg-accent/40 text-foreground`,RV=`${W0} text-[12px]`,qo=`${W0} text-[0.86em] select-none`,lr="relative inline-flex align-[-0.125em] leading-none data-[composer-chip-selected]:after:pointer-events-none data-[composer-chip-selected]:after:absolute data-[composer-chip-selected]:after:inset-0 data-[composer-chip-selected]:after:rounded-[6px] data-[composer-chip-selected]:after:bg-[Highlight] data-[composer-chip-selected]:after:opacity-30 data-[composer-chip-selected]:after:content-['']",ho="block size-[1.17em] shrink-0 self-center opacity-85 [&>svg]:block",j0="truncate leading-tight",vo="block self-center truncate leading-tight select-none",jv="border-skill-chip-border bg-skill-chip text-skill-chip-foreground",G0=`${q0} select-none border ${jv} text-[0.86em]`,Q0='<svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.85" stroke-linecap="round" stroke-linejoin="round"><path d="M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z"/><path d="m3.3 7 8.7 5 8.7-5"/><path d="M12 22V12"/></svg>',Dp="ml-[0.17em] inline-flex size-[1.17em] shrink-0 cursor-pointer items-center justify-center rounded-sm text-muted-foreground/72 transition-colors hover:bg-foreground/10 hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring";function AV(e){return e.split(/[\s_-]+/).filter(t=>t.length>0).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function EV(e){let t=e.displayName?.trim();return t||AV(e.name)}function X0(e){let t=[],n=0;for(let o of $0(e.text,e.index))o.start>n&&t.push(e.text.slice(n,o.start)),t.push(c(MV,{skill:o.skill,rawText:e.text.slice(o.start,o.end)},`${o.start}:${o.name}`)),n=o.end;return n===0?c(he,{children:e.text}):(n<e.text.length&&t.push(e.text.slice(n)),c(he,{children:t}))}function MV(e){return c("span",{className:"inline-flex align-middle leading-none","data-markdown-copy":e.rawText,children:S("span",{className:j(Mp,jv),children:[c("span",{"aria-hidden":"true",className:Np,dangerouslySetInnerHTML:{__html:V0}}),c("span",{className:_p,children:EV(e.skill)})]})})}function Y0(e){let{label:t,tooltipText:n,expired:o=!1}=e;return S(ze,{children:[S(Ke,{render:c("span",{className:j(Mp,o&&"border-destructive/35 bg-destructive/8 text-destructive-foreground"),"data-terminal-context-expired":o?"true":void 0}),children:[c(ko,{className:j(Np,"size-icon-1",o&&"opacity-100")}),c("span",{className:_p,children:t})]}),c(He,{side:"top",className:"max-w-80 whitespace-pre-wrap leading-tight",children:n})]})}var NV=/\n*<element_context>\n([\s\S]*?)\n<\/element_context>\s*$/;function pl(e){let t=NV.exec(e);if(!t)return{promptText:e,contextCount:0,contexts:[]};let n=e.slice(0,t.index).replace(/\n+$/,""),o=_V(t[1]??"");return{promptText:n,contextCount:o.length,contexts:o}}function _V(e){let t=[],n=null,o=()=>{n&&(t.push({header:n.header,body:n.bodyLines.join(`
package/dist/index.js CHANGED
@@ -532,12 +532,12 @@ async function listSessionShells(ctx) {
532
532
  const shells = [];
533
533
  let cursor = null;
534
534
  for (; ; ) {
535
- const page = await ctx.projections.listThreads({
535
+ const page = await ctx.threads.list({
536
536
  limit: THREAD_PAGE_SIZE,
537
537
  cursor,
538
- includeArchived: true
538
+ archived: "include"
539
539
  });
540
- shells.push(...page.threads);
540
+ shells.push(...page.items);
541
541
  if (page.nextCursor === null || page.nextCursor === cursor) return shells;
542
542
  cursor = page.nextCursor;
543
543
  }
@@ -1316,7 +1316,7 @@ function abort(signal) {
1316
1316
  // src/index.ts
1317
1317
  var index_default = definePlugin({
1318
1318
  id: "conversation",
1319
- apiVersion: 3,
1319
+ apiVersion: 5,
1320
1320
  activate(ctx) {
1321
1321
  activateSessionMap(ctx);
1322
1322
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ycodium-ai/plugin-conversation",
3
- "version": "0.2.2974",
3
+ "version": "0.2.2978",
4
4
  "description": "The conversation surface: chat, trajectory, and session map, the input card, the queue, and turn navigation.",
5
5
  "keywords": [
6
6
  "chat",
@@ -41,7 +41,7 @@
41
41
  "tailwindcss": "^4.0.0",
42
42
  "typescript": "~6.0.3",
43
43
  "vite-plus": "0.2.2",
44
- "@ycodium-ai/plugin-api": "0.2.2974",
44
+ "@ycodium-ai/plugin-api": "0.2.2978",
45
45
  "ycodium-composer-tokens": "0.0.0",
46
46
  "ycodium-workspace-path": "0.0.0"
47
47
  },