@ycodium-ai/plugin-conversation 0.2.2974 → 0.2.2976
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 +1 -1
- package/dist/index.js +4 -4
- package/package.json +2 -2
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(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/&/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(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/&/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.
|
|
535
|
+
const page = await ctx.threads.list({
|
|
536
536
|
limit: THREAD_PAGE_SIZE,
|
|
537
537
|
cursor,
|
|
538
|
-
|
|
538
|
+
archived: "include"
|
|
539
539
|
});
|
|
540
|
-
shells.push(...page.
|
|
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:
|
|
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.
|
|
3
|
+
"version": "0.2.2976",
|
|
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.
|
|
44
|
+
"@ycodium-ai/plugin-api": "0.2.2976",
|
|
45
45
|
"ycodium-composer-tokens": "0.0.0",
|
|
46
46
|
"ycodium-workspace-path": "0.0.0"
|
|
47
47
|
},
|