@av-pi-studio/web-client 0.0.108 → 0.0.109

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/web/assets/{BinaryFallbackViewer-CETZBSFn.js → BinaryFallbackViewer-D3SiymLg.js} +1 -1
  2. package/dist/web/assets/ChatPanel-CBL-3Y4a.js +8 -0
  3. package/dist/web/assets/ChatPanel-DOXUilBm.css +1 -0
  4. package/dist/web/assets/{CodeView-Ll6fG3qP.js → CodeView-_q2A5_u4.js} +1 -1
  5. package/dist/web/assets/{FilePanel-DEo396Lk.js → FilePanel-CtTMIGGN.js} +1 -1
  6. package/dist/web/assets/{HtmlViewer-CJ9W44fj.js → HtmlViewer-C375X5VB.js} +1 -1
  7. package/dist/web/assets/{ImageViewer-aE8UjQHQ.js → ImageViewer-DEd1JdfT.js} +1 -1
  8. package/dist/web/assets/{MarkdownFileViewer-CQ0UwCPR.js → MarkdownFileViewer-DUmXZ9I3.js} +1 -1
  9. package/dist/web/assets/{ModelProvidersPanel-BKWs9cUE.js → ModelProvidersPanel-EvzaltXg.js} +1 -1
  10. package/dist/web/assets/{MoleculeViewerPanel-BDi_0OgB.js → MoleculeViewerPanel-B9ru3Tfz.js} +1 -1
  11. package/dist/web/assets/{SettingsDialog-CR8pWXdE.js → SettingsDialog-Dzrj8U14.js} +5 -5
  12. package/dist/web/assets/{TerminalPanel-BT5ai_QP.js → TerminalPanel-B4aQ2vFZ.js} +1 -1
  13. package/dist/web/assets/{TextViewer-BEtDY7QZ.js → TextViewer-DPjR2BtN.js} +1 -1
  14. package/dist/web/assets/{VideoViewer-DsNLEt3Q.js → VideoViewer-FVciwP8b.js} +1 -1
  15. package/dist/web/assets/{ViewersPanel-BQDubxVN.js → ViewersPanel-C0NvKhk9.js} +1 -1
  16. package/dist/web/assets/{href-resolution-mWbiAWb5.js → href-resolution-BRKhhrZR.js} +1 -1
  17. package/dist/web/assets/index-Dsmi2Bzk.js +19 -0
  18. package/dist/web/assets/{index-C_17Gn7C.css → index-pQTEQ2P2.css} +1 -1
  19. package/dist/web/assets/{markdown-D1SSpG2J.js → markdown-Cg0b167h.js} +1 -1
  20. package/dist/web/assets/{use-file-download-hogFXJ1-.js → use-file-download-Dg_DH4LU.js} +1 -1
  21. package/dist/web/assets/{use-file-watch-RCm9-VVB.js → use-file-watch-C7pdkH79.js} +1 -1
  22. package/dist/web/assets/{use-provider-auth-list-Dlczxxvd.js → use-provider-auth-list-CbjpDpe7.js} +1 -1
  23. package/dist/web/assets/vendor-overlays-3MkedLFU.js +1 -0
  24. package/dist/web/index.html +3 -3
  25. package/package.json +3 -3
  26. package/dist/web/assets/ChatPanel-B8AiSd3V.css +0 -1
  27. package/dist/web/assets/ChatPanel-CirFvAuS.js +0 -8
  28. package/dist/web/assets/index-T-iCQirw.js +0 -19
  29. package/dist/web/assets/vendor-overlays-ar75LZPp.js +0 -1
@@ -1 +1 @@
1
- import{r as l,j as e}from"./vendor-react-DQUAl2K8.js";import{S as d,B as a}from"./index-T-iCQirw.js";import{u as m}from"./use-file-download-hogFXJ1-.js";import{F as c}from"./vendor-icons-K8oF_80Q.js";import"./vendor-query-i7fr__Xm.js";import"./vendor-DaF96HbP.js";import"./vendor-overlays-ar75LZPp.js";import"./vendor-dnd-CayJj8TC.js";const p="_wrap_inn1j_1",j="_name_inn1j_12",n={wrap:p,name:j};function z({path:s,workspaceCwd:f}){const[i,t]=l.useState(!1),r=m(s,i),o=s.split("/").pop()||s;return e.jsxs("div",{className:n.wrap,children:[e.jsx(c,{size:32}),e.jsx("div",{className:n.name,children:o}),e.jsx("div",{children:"No preview available for this file type."}),r.isError&&e.jsxs("div",{children:["Error: ",r.error instanceof Error?r.error.message:"download failed"]}),i&&r.isLoading?e.jsx(d,{size:"sm"}):r.data?e.jsx("a",{href:r.data.objectUrl,download:r.data.fileName||o,children:e.jsx(a,{size:"sm",children:"Save file"})}):e.jsx(a,{size:"sm",onClick:()=>t(!0),children:"Download"})]})}export{z as BinaryFallbackViewer};
1
+ import{r as l,j as e}from"./vendor-react-DQUAl2K8.js";import{S as d,B as a}from"./index-Dsmi2Bzk.js";import{u as m}from"./use-file-download-Dg_DH4LU.js";import{F as c}from"./vendor-icons-K8oF_80Q.js";import"./vendor-query-i7fr__Xm.js";import"./vendor-DaF96HbP.js";import"./vendor-overlays-3MkedLFU.js";import"./vendor-dnd-CayJj8TC.js";const p="_wrap_inn1j_1",j="_name_inn1j_12",n={wrap:p,name:j};function z({path:s,workspaceCwd:f}){const[i,t]=l.useState(!1),r=m(s,i),o=s.split("/").pop()||s;return e.jsxs("div",{className:n.wrap,children:[e.jsx(c,{size:32}),e.jsx("div",{className:n.name,children:o}),e.jsx("div",{children:"No preview available for this file type."}),r.isError&&e.jsxs("div",{children:["Error: ",r.error instanceof Error?r.error.message:"download failed"]}),i&&r.isLoading?e.jsx(d,{size:"sm"}):r.data?e.jsx("a",{href:r.data.objectUrl,download:r.data.fileName||o,children:e.jsx(a,{size:"sm",children:"Save file"})}):e.jsx(a,{size:"sm",onClick:()=>t(!0),children:"Download"})]})}export{z as BinaryFallbackViewer};
@@ -0,0 +1,8 @@
1
+ import{r as g,j as t}from"./vendor-react-DQUAl2K8.js";import{a as At,b as It,m as Lt,u as Ce}from"./vendor-query-i7fr__Xm.js";import{D as be,F as L,G as Ot,u as $,H as Mt,I as M,J as Pt,K as Ft,B as E,M as Kt,N as tt,S as pe,z as zt,O as Ht,Q as $t,R as Ut,o as Wt,n as Gt,U as Vt,W as Yt,X as Jt,m as Qt,Y as Xt,E as Zt,Z as me,r as we,_ as De,$ as en,a0 as ie,h as tn,a1 as nn,a2 as ue,a3 as sn,A as on,P as Ge}from"./index-Dsmi2Bzk.js";import{L as an,G as rn,S as cn,a as ln,P as dn,E as un,T as nt,C as he,b as Be,B as mn,c as st,d as ot,A as fn,e as pn,f as hn,U as gn,g as at,h as _n,i as xn,j as vn,k as kn,l as Ve,m as jn,N as yn,n as bn}from"./vendor-icons-K8oF_80Q.js";import{u as Nn}from"./use-provider-auth-list-CbjpDpe7.js";import{N as S}from"./vendor-DaF96HbP.js";import{S as rt,M as Te,r as Sn}from"./markdown-Cg0b167h.js";import{D as Cn,p as wn}from"./DiffView-D1TsZBGe.js";import{R as Ee,T as qe,I as it}from"./vendor-overlays-3MkedLFU.js";import"./vendor-dnd-CayJj8TC.js";import"./vendor-highlight-Ddi_n-Jh.js";import"./vendor-markdown-DJUOT8ep.js";import"./href-resolution-BRKhhrZR.js";function ct(e,s){if(s.trim()==="")return e;const n=s.toLowerCase();return e.filter(o=>o.label.toLowerCase().includes(n)||o.description!==void 0&&o.description.toLowerCase().includes(n))}const Dn={shell:nt,read:un,edit:dn,write:ln,search:cn,fetch:rn,task:an};function Bn(e){return Dn[e.kind]??nt}function lt(e){switch(e.kind){case"read":case"write":case"edit":return e.path??null;default:return null}}function Tn(e){return e.kind==="write"||e.kind==="edit"||e.kind==="shell"}function En(e){const s=[];if(e.kind==="edit"&&e.diff)s.push({kind:"diff",patch:e.diff});else{const n=be(e);n&&s.push({kind:"code",text:n})}return e.output&&s.push({kind:"code",text:e.output}),s}const Ye={shell:{label:"SHELL",token:"statusInfo"},read:{label:"READ",token:"statusInfo"},write:{label:"WRITE",token:"statusSuccess"},edit:{label:"EDIT",token:"statusWarning"},search:{label:"SEARCH",token:"statusInfo"},fetch:{label:"FETCH",token:"statusInfo"},task:{label:"TASK",token:"foregroundMuted"}};function qn(e){return Ye[e.kind]??Ye.task}function Rn(e){if(!e)return{added:0,removed:0};let s=0,n=0;for(const o of e.split(`
2
+ `))o.startsWith("+++")||o.startsWith("---")||(o.startsWith("+")?s++:o.startsWith("-")&&n++);return{added:s,removed:n}}function An(e){return e?(e.endsWith(`
3
+ `)?e.slice(0,-1):e).split(`
4
+ `).length:0}const In=500;let ve;function Ln(e,s,n,o){clearTimeout(ve),ve=setTimeout(()=>{ve=void 0,e.invalidateQueries({queryKey:["file"]}),e.invalidateQueries({queryKey:["explorer"]}),s&&n&&s.connection.request("checkout_refresh_request",{cwd:n}).catch(()=>{})},In)}function On({sessionId:e,event:s,timestamp:n,client:o,queryClient:r}){const a=L.getState();switch(a.applyStreamEvent(e,s,n),s.kind){case"turn_started":a.setStatus(e,"running");break;case"turn_completed":a.setStatus(e,"idle");break;case"turn_failed":a.setStatus(e,"error");break;case"turn_canceled":a.setStatus(e,"idle");break;case"compaction":s.phase==="completed"&&s.estimatedTokensAfter!==void 0&&Ot(e,s.estimatedTokensAfter);break;case"tool_call":{if(s.status==="completed"&&Tn(s.tool)){const c=a.sessions[e],l=(c==null?void 0:c.cwd)||null;Ln(r,o,l,lt(s.tool))}break}}}function Mn(e){const s=$(r=>r.client),n=L(r=>{var a;return((a=r.sessions[e])==null?void 0:a.agentId)??null}),o=At();g.useEffect(()=>!s||!n?void 0:s.agent(n).timeline.subscribe((a,c)=>{const l=typeof c.timestamp=="number"?new Date(c.timestamp).toISOString():c.timestamp;On({sessionId:e,event:a,timestamp:l,client:s,queryClient:o})}),[s,n,e,o])}const dt=64;function ke(e){return e.clientHeight>0}function Pn(e,s,n,o=dt){switch(s.kind){case"scroll":return ke(n)?n.scrollHeight-n.scrollTop-n.clientHeight<=o?{pinned:!0,stick:!1}:{pinned:s.gesture?!1:e,stick:!1}:{pinned:e,stick:!1};case"tail":return{pinned:e,stick:e&&ke(n)};case"shown":return{pinned:e,stick:e};case"pin":return{pinned:!0,stick:ke(n)}}}function Fn(e){const s=e[e.length-1];return(s==null?void 0:s.kind)==="user"?s.id:null}const Kn="_shellRow_1kabp_2",zn="_rail_1kabp_10",Hn="_disc_1kabp_18",$n="_connector_1kabp_28",Un="_content_1kabp_2",Wn="_metaLine_1kabp_40",Gn="_metaTime_1kabp_52",Vn="_forkButton_1kabp_66",O={shellRow:Kn,rail:zn,disc:Hn,connector:$n,content:Un,metaLine:Wn,metaTime:Gn,forkButton:Vn};function z({disc:e,discClassName:s,connector:n,meta:o,metaTrailing:r,className:a,children:c}){return t.jsxs("div",{className:O.shellRow,children:[t.jsxs("div",{className:O.rail,children:[t.jsx("span",{className:S(O.disc,s),children:e}),n&&t.jsx("span",{className:O.connector})]}),t.jsxs("div",{className:S(O.content,a),children:[o&&t.jsxs("div",{className:O.metaLine,children:[o,r]}),c]})]})}function Je(e){return typeof e=="number"?e:Date.parse(e)}function Yn(e,s){const n=Je(e.entry.createdAt),o=Je(s.entry.createdAt);return n!==o?n-o:e.entry.requestId<s.entry.requestId?-1:e.entry.requestId>s.entry.requestId?1:0}function Jn(e,s){return[...e.map(o=>({kind:"pending",entry:o})),...s.map(o=>({kind:"resolved",entry:o}))].toSorted(Yn)}function Qn(e){return e.entry.requestId}function ut(e){return e.receivedAt===void 0}const Xn=4;function Zn(e,s){let n=0;const o=e.map(l=>l.kind!=="pending"?{item:l,collapsed:!1}:(n++,{item:l,collapsed:!s&&n>Xn})),r=o.filter(l=>l.collapsed).length,a=o.findIndex(l=>l.collapsed),c=[];return o.forEach((l,m)=>{m===a&&c.push({kind:"more",count:r}),c.push({kind:"card",item:l.item,collapsed:l.collapsed})}),c}function es(e,s){if(e.timeoutMs===void 0)return{show:!1,fraction:0,approximate:!1};const n=Mt(e,s)??0;return{show:!0,fraction:Math.max(0,Math.min(1,n/e.timeoutMs)),approximate:e.receivedAt===void 0}}function mt(e){return e==="editor"}const ts="Esc again to dismiss — the extension gets an empty answer";function ns(e,s){return s?{kind:"warning",text:ts}:{kind:"keys",segments:[{key:mt(e)?"⇧↵":"↵",label:"submit"},{key:"Esc",label:"dismiss"}]}}function ss(e){return e?{armed:!1,resolve:!0}:{armed:!0,resolve:!1}}const os=5,as=40,rs=6;function is(e){return{mode:e.length>=os||e.some(n=>n.length>as)?"stack":"row",scrolls:e.length>rs}}function Ne(e){const s=e.split(`
5
+ `),n=[];let o=!1;for(const r of s)if(r===""){if(o)continue;o=!0,n.push("")}else o=!1,n.push(r);return n}function cs(e,s){return{title:Ne(e),...s!==void 0?{message:Ne(s)}:{}}}const ls="_askDisc_ffqf1_5",ds="_card_ffqf1_9",us="_cardInert_ffqf1_41",ms="_askDiscInert_ffqf1_47",fs="_reconnectingNote_ffqf1_52",ps="_reconnectingDot_ffqf1_61",hs="_deadlineBar_ffqf1_71",gs="_deadlineApproximate_ffqf1_80",_s="_header_ffqf1_85",xs="_askBadge_ffqf1_16",vs="_methodName_ffqf1_101",ks="_title_ffqf1_107",js="_titleEmphasised_ffqf1_115",ys="_message_ffqf1_119",bs="_emptyOptionsNote_ffqf1_127",Ns="_controls_ffqf1_133",Ss="_controlsStack_ffqf1_141",Cs="_controlsScroll_ffqf1_148",ws="_optionButton_ffqf1_153",Ds="_field_ffqf1_161",Bs="_editorField_ffqf1_168",Ts="_rawPayload_ffqf1_176",Es="_resolvedCard_ffqf1_190",qs="_askBadgeNeutral_ffqf1_204",Rs="_resolvedMethodName_ffqf1_209",As="_outcome_ffqf1_218",Is="_outcomeSuccess_ffqf1_229",Ls="_outcomeText_ffqf1_233",Os="_hint_ffqf1_255",Ms="_hintKey_ffqf1_270",Ps="_hintSep_ffqf1_278",Fs="_recoveredChip_ffqf1_285",Ks="_collapsedPendingCard_ffqf1_297",zs="_moreRow_ffqf1_303",h={askDisc:ls,card:ds,cardInert:us,askDiscInert:ms,reconnectingNote:fs,reconnectingDot:ps,deadlineBar:hs,deadlineApproximate:gs,header:_s,askBadge:xs,methodName:vs,title:ks,titleEmphasised:js,message:ys,emptyOptionsNote:bs,controls:Ns,controlsStack:Ss,controlsScroll:Cs,optionButton:ws,field:Ds,editorField:Bs,rawPayload:Ts,resolvedCard:Es,askBadgeNeutral:qs,resolvedMethodName:Rs,outcome:As,outcomeSuccess:Is,outcomeText:Ls,hint:Os,hintKey:Ms,hintSep:Ps,recoveredChip:Fs,collapsedPendingCard:Ks,moreRow:zs},Hs=250,$s=320;function J(e,s){const n=e[s];return typeof n=="string"?n:void 0}function Us(e,s){const n=e[s];return Array.isArray(n)?n.filter(o=>typeof o=="string"):[]}function Ws({item:e,connector:s,collapsed:n=!1,autoFocus:o=!1,sessionTitle:r}){return e.kind==="resolved"?t.jsx(Ys,{entry:e.entry,connector:s}):n?t.jsx(Gs,{entry:e.entry,connector:s}):t.jsx(Qs,{entry:e.entry,connector:s,autoFocus:o,sessionTitle:r})}function ft(){return t.jsx("span",{className:h.recoveredChip,children:"still waiting"})}function Gs({entry:e,connector:s}){return t.jsx(z,{disc:t.jsx(M,{icon:he,size:"xs",color:"var(--pi-color-statusWarning)"}),discClassName:h.askDisc,connector:s,children:t.jsxs("div",{className:S(h.resolvedCard,h.collapsedPendingCard),children:[t.jsx("span",{className:h.askBadge,children:"ASK"}),t.jsx("span",{className:h.resolvedMethodName,children:e.method}),ut(e)&&t.jsx(ft,{})]})})}function Vs({count:e,connector:s,onExpand:n}){return t.jsx(z,{disc:t.jsx(M,{icon:he,size:"xs",color:"var(--pi-color-foregroundMuted)"}),discClassName:h.askDiscInert,connector:s,children:t.jsxs("button",{type:"button",className:h.moreRow,onClick:n,children:[e," more waiting"]})})}function Ys({entry:e,connector:s}){const n=Pt(e);return t.jsx(z,{disc:t.jsx(M,{icon:he,size:"xs",color:"var(--pi-color-foregroundMuted)"}),discClassName:h.askDiscInert,connector:s,children:t.jsxs("div",{className:h.resolvedCard,children:[t.jsx("span",{className:S(h.askBadge,h.askBadgeNeutral),children:"ASK"}),t.jsx("span",{className:h.resolvedMethodName,children:e.method}),t.jsxs("span",{className:S(h.outcome,n.tone==="success"&&h.outcomeSuccess),children:[n.glyph==="check"&&t.jsx(Be,{size:11,"aria-hidden":!0}),t.jsx("span",{className:S(n.truncate&&h.outcomeText),children:n.text})]})]})})}function U(e,s){return e.answerable?e.submitting?s?{loading:!0,style:{opacity:1}}:{disabled:!0}:{}:{disabled:!0,style:{opacity:1}}}function Js({hint:e}){return e.kind==="warning"?t.jsx("p",{className:h.hint,children:e.text}):t.jsx("p",{className:h.hint,children:e.segments.map((s,n)=>t.jsxs(g.Fragment,{children:[n>0&&t.jsx("span",{className:h.hintSep,children:"·"}),t.jsx("span",{className:h.hintKey,children:s.key}),s.label]},s.label))})}function Qs({entry:e,connector:s,autoFocus:n=!1,sessionTitle:o}){const[r,a]=g.useState(()=>Date.now()),c=es(e,r),[l,m]=g.useState(!1),d=g.useRef(null),p=g.useRef(null),u=g.useRef(null);g.useEffect(()=>{if(!c.show)return;const j=setInterval(()=>a(Date.now()),Hs);return()=>clearInterval(j)},[e.requestId,e.timeoutMs,c.show]),g.useEffect(()=>{var y,q;if(!n||!e.answerable)return;const j=document.activeElement;(j instanceof HTMLTextAreaElement||j instanceof HTMLInputElement)&&j.value.length>0&&!((y=d.current)!=null&&y.contains(j))||(q=p.current)==null||q.focus()},[n,e.answerable]);function v(j){var x,y;e.answerable&&(j.target.closest("button, input, textarea, a, select")||(x=d.current)!=null&&x.contains(document.activeElement)||(y=d.current)==null||y.focus())}function B(j){Ft(e.requestId,j)}function P(j){var y;if(j.key!=="Escape"||!e.answerable)return;j.preventDefault(),j.stopPropagation();const x=ss(l);if(m(x.armed),!x.resolve){(y=u.current)==null||y.focus();return}u.current?u.current.click():B({cancelled:!0})}function A(j){j.currentTarget.contains(j.relatedTarget)||m(!1)}return t.jsxs(z,{disc:t.jsx(M,{icon:he,size:"xs",color:e.answerable?"var(--pi-color-statusWarning)":"var(--pi-color-foregroundMuted)"}),discClassName:e.answerable?h.askDisc:h.askDiscInert,connector:s,children:[t.jsxs("div",{ref:d,className:S(h.card,!e.answerable&&h.cardInert),role:"group","aria-label":`Question in ${o}`,tabIndex:-1,onKeyDown:P,onMouseDown:v,onBlur:A,children:[c.show&&t.jsx("div",{className:S(h.deadlineBar,c.approximate&&h.deadlineApproximate),style:{width:`${c.fraction*100}%`}}),t.jsxs("div",{className:h.header,children:[t.jsx("span",{className:S(h.askBadge,!e.answerable&&h.askBadgeNeutral),"aria-hidden":"true",children:"ASK"}),t.jsx("span",{className:h.methodName,children:e.method}),ut(e)&&t.jsx(ft,{})]}),t.jsx(Xs,{entry:e,onSubmit:B,primaryRef:p,dismissRef:u})]}),t.jsx(Js,{hint:ns(e.method,l)}),!e.answerable&&t.jsxs("p",{className:h.reconnectingNote,children:[t.jsx("span",{className:h.reconnectingDot}),"Reconnecting — you can answer again in a moment"]})]})}function Xs({entry:e,onSubmit:s,primaryRef:n,dismissRef:o}){const{method:r,payload:a}=e;return r==="select"?t.jsx(Zs,{entry:e,payload:a,onSubmit:s,primaryRef:n,dismissRef:o}):r==="confirm"?t.jsx(eo,{entry:e,payload:a,onSubmit:s,primaryRef:n,dismissRef:o}):r==="input"?t.jsx(to,{entry:e,payload:a,onSubmit:s,primaryRef:n}):r==="editor"?t.jsx(no,{entry:e,payload:a,onSubmit:s,primaryRef:n,dismissRef:o}):t.jsx(so,{entry:e,method:r,payload:a,onSubmit:s,primaryRef:n,dismissRef:o})}function fe({text:e}){return t.jsx("div",{className:h.title,children:Ne(e).join(`
6
+ `)})}function Zs({entry:e,payload:s,onSubmit:n,primaryRef:o,dismissRef:r}){const a=J(s,"title")??"",c=Us(s,"options"),[l,m]=g.useState(null);if(c.length===0){const p=U(e,l===0);return t.jsxs(t.Fragment,{children:[t.jsx(fe,{text:a}),t.jsx("p",{className:h.emptyOptionsNote,children:"The extension offered no options."}),t.jsx("div",{className:h.controls,children:t.jsx(E,{ref:u=>{o.current=u,r.current=u},size:"xs",variant:"secondary",onClick:()=>{m(0),n({cancelled:!0})},...p,children:"Cancel"})})]})}const d=is(c);return t.jsxs(t.Fragment,{children:[t.jsx(fe,{text:a}),t.jsx("div",{className:S(h.controls,d.mode==="stack"&&h.controlsStack,d.scrolls&&h.controlsScroll),children:c.map((p,u)=>t.jsx(E,{ref:u===0?v=>{o.current=v}:void 0,size:"xs",variant:"secondary",className:h.optionButton,onClick:()=>{m(u),n({value:p})},...U(e,l===u),children:p},u))})]})}function eo({entry:e,payload:s,onSubmit:n,primaryRef:o,dismissRef:r}){const a=J(s,"title")??"",c=J(s,"message"),l=cs(a,c),[m,d]=g.useState(null);return t.jsxs(t.Fragment,{children:[t.jsx("div",{className:S(h.title,l.message&&h.titleEmphasised),children:l.title.join(`
7
+ `)}),l.message&&t.jsx("div",{className:h.message,children:l.message.join(`
8
+ `)}),t.jsxs("div",{className:h.controls,children:[t.jsx(E,{ref:p=>{o.current=p},size:"xs",variant:"default",onClick:()=>{d("yes"),n({confirmed:!0})},...U(e,m==="yes"),children:"Yes"}),t.jsx(E,{ref:p=>{r.current=p},size:"xs",variant:"secondary",onClick:()=>{d("no"),n({confirmed:!1})},...U(e,m==="no"),children:"No"})]})]})}function to({entry:e,payload:s,onSubmit:n,primaryRef:o}){const r=J(s,"title")??"",a=J(s,"placeholder"),[c,l]=g.useState(""),m=U(e,e.submitting===!0),d=m.disabled===!0||m.loading===!0;return t.jsxs(t.Fragment,{children:[t.jsx(fe,{text:r}),t.jsxs("div",{className:h.controls,children:[t.jsx(Kt,{ref:p=>{o.current=p},className:h.field,value:c,placeholder:a,disabled:d,onChange:p=>l(p.target.value),onKeyDown:p=>{p.key!=="Enter"||d||(p.preventDefault(),p.stopPropagation(),n({value:c}))}}),t.jsx(E,{size:"xs",variant:"default",onClick:()=>n({value:c}),...m,children:"Submit"})]})]})}function no({entry:e,payload:s,onSubmit:n,primaryRef:o,dismissRef:r}){const a=J(s,"title")??"",c=J(s,"prefill")??"",[l,m]=g.useState(c),[d,p]=g.useState(null);return t.jsxs(t.Fragment,{children:[t.jsx(fe,{text:a}),t.jsx(tt,{ref:u=>{o.current=u},className:h.editorField,rows:3,value:l,disabled:!e.answerable||e.submitting,onChange:u=>{m(u.target.value);const v=u.target;v.style.height="auto",v.style.height=`${Math.min(v.scrollHeight,$s)}px`},onKeyDown:u=>{u.key!=="Enter"||u.shiftKey!==mt(e.method)||(u.preventDefault(),u.stopPropagation(),p("submit"),n({value:l}))}}),t.jsxs("div",{className:h.controls,children:[t.jsx(E,{size:"xs",variant:"default",onClick:()=>{p("submit"),n({value:l})},...U(e,d==="submit"),children:"Submit"}),t.jsx(E,{ref:u=>{r.current=u},size:"xs",variant:"secondary",onClick:()=>{p("cancel"),n({cancelled:!0})},...U(e,d==="cancel"),children:"Cancel"})]})]})}function so({entry:e,method:s,payload:n,onSubmit:o,primaryRef:r,dismissRef:a}){const c={method:s,...n},l=U(e,e.submitting===!0);return t.jsxs(t.Fragment,{children:[t.jsx("p",{className:h.title,children:"This extension asked something this version of Pi-Studio can't display."}),t.jsx("pre",{className:h.rawPayload,children:JSON.stringify(c,null,2)}),t.jsx("div",{className:h.controls,children:t.jsx(E,{ref:m=>{r.current=m,a.current=m},size:"xs",variant:"secondary",onClick:()=>o({cancelled:!0}),...l,children:"Cancel"})})]})}function Qe(e){if(e===void 0)return null;const s=typeof e=="number"?e:Date.parse(e);return Number.isNaN(s)?null:s}function oo(e,s,n,o){if(s.length===0)return e.map(n);const r=[];let a=0;const c=l=>{for(;a<e.length;){const m=e[a];if(m===void 0)break;if(l!==null){const d=Qe(m.timestamp);if(d!==null&&d>l)break}r.push(n(m)),a++}};for(const l of s){if(l.kind==="more"){r.push(o(l));continue}c(Qe(l.item.entry.createdAt)),r.push(o(l))}for(;a<e.length;a++){const l=e[a];l!==void 0&&r.push(n(l))}return r}function ao(e,s){return!e||s===void 0?!1:s.every(n=>n.configured===!1)}const ro=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Xe(e){return String(e).padStart(2,"0")}function Re(e){if(!e)return;const s=new Date(e);if(!Number.isNaN(s.getTime()))return`${ro[s.getMonth()]} ${s.getDate()}, ${Xe(s.getHours())}:${Xe(s.getMinutes())}`}const io="_queuedBadge_12qdc_8",co="_finalChip_12qdc_20",lo="_userDisc_12qdc_30",uo="_userAligned_12qdc_34",mo="_userPendingRow_12qdc_40",fo="_userBubble_12qdc_44",po="_userBubbleFailed_12qdc_58",ho="_userImages_12qdc_63",go="_userImage_12qdc_63",_o="_imageDialog_12qdc_79",xo="_imageDialogPreview_12qdc_83",vo="_assistantDisc_12qdc_93",ko="_assistantBody_12qdc_97",jo="_reasoningDisc_12qdc_108",yo="_reasoningBody_12qdc_112",bo="_toolDisc_12qdc_123",No="_toolCardBody_12qdc_127",So="_toolCardBodyRunning_12qdc_134",Co="_toolCardBodyCompleted_12qdc_138",wo="_toolCardBodyError_12qdc_142",Do="_toolHeader_12qdc_146",Bo="_toolHeaderRunning_12qdc_172",To="_toolChevron_12qdc_182",Eo="_toolChevronOpen_12qdc_188",qo="_kindBadge_12qdc_192",Ro="_toolPath_12qdc_204",Ao="_toolTrailing_12qdc_213",Io="_toolStatusRunning_12qdc_221",Lo="_toolStatusSuccess_12qdc_228",Oo="_toolStatusError_12qdc_232",Mo="_toolStatusUnknown_12qdc_236",Po="_toolDiffAdded_12qdc_240",Fo="_toolDiffRemoved_12qdc_244",Ko="_toolOpenButton_12qdc_248",zo="_toolBody_12qdc_266",Ho="_toolCode_12qdc_272",$o="_toolOutputStrip_12qdc_283",Uo="_toolDiffPreview_12qdc_293",Wo="_toolDiffPreviewLine_12qdc_301",Go="_toolDiffPreviewAdd_12qdc_305",Vo="_toolDiffPreviewDel_12qdc_310",Yo="_toolDiffPreviewMore_12qdc_315",Jo="_errorDisc_12qdc_322",Qo="_errorCard_12qdc_326",Xo="_errorLead_12qdc_335",Zo="_systemRow_12qdc_342",ea="_compactionRow_12qdc_351",ta="_compactionRowFailed_12qdc_357",na="_compactionDivider_12qdc_361",sa="_compactionRule_12qdc_367",oa="_compactionLabel_12qdc_373",aa="_compactionText_12qdc_380",ra="_compactionToggle_12qdc_386",ia="_compactionSummary_12qdc_403",f={queuedBadge:io,finalChip:co,userDisc:lo,userAligned:uo,userPendingRow:mo,userBubble:fo,userBubbleFailed:po,userImages:ho,userImage:go,imageDialog:_o,imageDialogPreview:xo,assistantDisc:vo,assistantBody:ko,reasoningDisc:jo,reasoningBody:yo,toolDisc:bo,toolCardBody:No,toolCardBodyRunning:So,toolCardBodyCompleted:Co,toolCardBodyError:wo,toolHeader:Do,toolHeaderRunning:Bo,toolChevron:To,toolChevronOpen:Eo,kindBadge:qo,toolPath:Ro,toolTrailing:Ao,toolStatusRunning:Io,toolStatusSuccess:Lo,toolStatusError:Oo,toolStatusUnknown:Mo,toolDiffAdded:Po,toolDiffRemoved:Fo,toolOpenButton:Ko,toolBody:zo,toolCode:Ho,toolOutputStrip:$o,toolDiffPreview:Uo,toolDiffPreviewLine:Wo,toolDiffPreviewAdd:Go,toolDiffPreviewDel:Vo,toolDiffPreviewMore:Yo,errorDisc:Jo,errorCard:Qo,errorLead:Xo,systemRow:Zo,compactionRow:ea,compactionRowFailed:ta,compactionDivider:na,compactionRule:sa,compactionLabel:oa,compactionText:aa,compactionToggle:ra,compactionSummary:ia};function ca({row:e,assetBase:s=null,owningPaneId:n=null,workspaceCwd:o=null,connector:r}){const a=Re(e.timestamp);return t.jsx(z,{disc:t.jsx(M,{icon:mn,size:"xs",color:"var(--pi-color-accentForeground)"}),discClassName:f.assistantDisc,connector:r,meta:t.jsxs(t.Fragment,{children:["Assistant",a&&t.jsxs("span",{className:O.metaTime,children:[" · ",a]})]}),children:t.jsx("div",{className:f.assistantBody,children:e.streaming?t.jsx(rt,{text:e.text,assetBase:s,owningPaneId:n,workspaceCwd:o}):t.jsx(Te,{text:e.text,assetBase:s,owningPaneId:n,workspaceCwd:o})})})}function la({row:e,owningPaneId:s=null,workspaceCwd:n=null,connector:o}){const r=Re(e.timestamp);return t.jsx(z,{disc:t.jsx(M,{icon:st,size:"xs",color:"var(--pi-color-foregroundMuted)"}),discClassName:f.reasoningDisc,connector:o,meta:t.jsxs(t.Fragment,{children:["Reasoning",r&&t.jsxs("span",{className:O.metaTime,children:[" · ",r]})]}),metaTrailing:!e.streaming&&t.jsx("span",{className:f.finalChip,children:"final"}),children:t.jsx("div",{className:f.reasoningBody,children:e.streaming?t.jsx(rt,{text:e.text,owningPaneId:s,workspaceCwd:n}):t.jsx(Te,{text:e.text,owningPaneId:s,workspaceCwd:n})})})}function da(e){const s=wn(e).filter(o=>o.kind==="add"||o.kind==="del"),n=s[0];return n?{text:n.text,kind:n.kind,moreCount:s.length-1}:null}function ua(e){return e.status==="completed"?t.jsx("span",{className:f.toolStatusSuccess,children:"✓ completed"}):e.status==="error"?t.jsx("span",{className:f.toolStatusError,children:e.statusText||"error"}):e.statusText&&e.statusText!=="running"?t.jsx("span",{className:f.toolStatusUnknown,children:e.statusText}):t.jsxs("span",{className:f.toolStatusRunning,children:[t.jsx(pe,{size:"xs",color:"var(--pi-color-accentBright)"}),"running"]})}function ma({row:e,assetBase:s=null,owningPaneId:n=null,workspaceCwd:o=null,connector:r}){const[a,c]=g.useState(!1),l=qn(e.tool),m=En(e.tool),d=m.length>0,p=An(e.tool.output),u=e.tool.kind==="edit"||e.tool.kind==="write"?lt(e.tool):null,v=e.tool.kind==="edit"?Rn(e.tool.diff):null,B=e.tool.kind==="edit"&&e.tool.diff&&!a?da(e.tool.diff):null;function P(){d&&c(x=>!x)}function A(x){x.target===x.currentTarget&&(x.key==="Enter"||x.key===" ")&&(x.preventDefault(),P())}function j(x){if(x.stopPropagation(),!u)return;const y=Sn(s,n,o);zt(u,y.workspaceCwd,y.targetPaneId)}return t.jsx(z,{disc:t.jsx(M,{icon:Bn(e.tool),size:"xs",color:"var(--pi-color-foregroundMuted)"}),discClassName:f.toolDisc,connector:r,children:t.jsxs("div",{className:S(f.toolCardBody,e.status==="running"&&f.toolCardBodyRunning,e.status==="completed"&&f.toolCardBodyCompleted,e.status==="error"&&f.toolCardBodyError),children:[t.jsxs("div",{role:"button",tabIndex:d?0:-1,"aria-expanded":d?a:void 0,"aria-disabled":!d,className:S(f.toolHeader,e.status==="running"&&f.toolHeaderRunning),onClick:P,onKeyDown:A,children:[d&&t.jsx(ot,{size:12,className:S(f.toolChevron,a&&f.toolChevronOpen)}),t.jsx("span",{className:f.kindBadge,style:{"--kindToken":`var(--pi-color-${l.token})`},children:l.label}),t.jsx("span",{className:f.toolPath,title:be(e.tool),children:be(e.tool)}),t.jsxs("span",{className:f.toolTrailing,children:[v&&(v.added>0||v.removed>0)&&t.jsxs(t.Fragment,{children:[t.jsxs("span",{className:f.toolDiffAdded,children:["+",v.added]}),t.jsxs("span",{className:f.toolDiffRemoved,children:["−",v.removed]})]}),ua(e),u&&t.jsxs("button",{type:"button",className:f.toolOpenButton,onClick:j,onKeyDown:x=>x.stopPropagation(),children:["Open",t.jsx(fn,{size:10})]})]})]}),p>0&&t.jsxs("div",{className:f.toolOutputStrip,children:["output · ",p," lines"]}),B&&t.jsxs("div",{className:f.toolDiffPreview,children:[t.jsx("div",{className:S(f.toolDiffPreviewLine,B.kind==="add"?f.toolDiffPreviewAdd:f.toolDiffPreviewDel),children:B.text}),B.moreCount>0&&t.jsxs("div",{className:f.toolDiffPreviewMore,children:["… ",B.moreCount," more lines"]})]}),a&&d&&t.jsx("div",{className:f.toolBody,children:m.map((x,y)=>x.kind==="diff"?t.jsx(Cn,{patch:x.patch},y):t.jsx("pre",{className:f.toolCode,children:x.text},y))})]})})}const fa="Fork from here",pa="Fork conversation from this message";function ha({row:e,connector:s,onFork:n}){const[o,r]=g.useState(null),a=Re(e.timestamp);return t.jsxs(z,{disc:t.jsx(M,{icon:gn,size:"xs",color:"var(--pi-color-successForeground)"}),discClassName:f.userDisc,connector:s,className:S(f.userAligned,e.pending&&f.userPendingRow),meta:t.jsxs(t.Fragment,{children:["You",a&&t.jsxs("span",{className:O.metaTime,children:[" · ",a]}),e.failed&&" · failed to send"]}),metaTrailing:t.jsxs(t.Fragment,{children:[e.queued&&!e.failed&&t.jsxs("span",{className:f.queuedBadge,children:[t.jsx(pn,{size:9}),"queued"]}),n&&t.jsx($t,{className:O.forkButton,hoverBase:"var(--pi-color-surface3)",title:fa,"aria-label":pa,onClick:n,children:t.jsx(hn,{size:13,strokeWidth:1.8,"aria-hidden":"true"})})]}),children:[t.jsx("span",{className:S(f.userBubble,e.failed&&f.userBubbleFailed),children:e.text}),e.images&&e.images.length>0&&t.jsx("div",{className:f.userImages,children:e.images.map((c,l)=>{const m=`data:${c.mimeType??"image/png"};base64,${c.data??""}`;return t.jsx("img",{className:f.userImage,src:m,alt:"",role:"button",tabIndex:0,onClick:()=>r(m),onKeyDown:d=>{(d.key==="Enter"||d.key===" ")&&r(m)}},l)})}),t.jsx(Ht,{open:o!==null,onOpenChange:c=>{c||r(null)},title:"Image",width:"auto",bare:!0,className:f.imageDialog,children:o&&t.jsx("img",{className:f.imageDialogPreview,src:o,alt:""})})]})}function ga({row:e,connector:s}){return t.jsx(z,{disc:t.jsx(M,{icon:at,size:"xs",color:"var(--pi-color-destructive)"}),discClassName:f.errorDisc,connector:s,children:t.jsxs("div",{className:f.errorCard,children:[t.jsx("span",{className:f.errorLead,children:"Error"})," · ",e.text]})})}function _a({row:e}){return t.jsx("div",{className:f.systemRow,children:e.text})}function xa({row:e,assetBase:s=null,owningPaneId:n=null,workspaceCwd:o=null}){const[r,a]=g.useState(!1),c=Ut(e),l=e.phase==="completed"&&!!e.summary,m=t.jsx("span",{className:f.compactionText,children:c});return t.jsxs("div",{className:S(f.compactionRow,e.phase==="failed"&&f.compactionRowFailed),children:[t.jsxs("div",{className:f.compactionDivider,children:[t.jsx("span",{className:f.compactionRule,"aria-hidden":"true"}),t.jsxs("span",{className:f.compactionLabel,children:[e.phase==="started"&&t.jsx(pe,{size:"xs","aria-label":"Compacting context"}),e.phase==="failed"&&t.jsx(M,{icon:at,size:"xs",color:"var(--pi-color-statusDanger)"}),l?t.jsxs("button",{type:"button",className:f.compactionToggle,"aria-expanded":r,onClick:()=>a(d=>!d),children:[t.jsx(ot,{size:12,className:S(f.toolChevron,r&&f.toolChevronOpen)}),m]}):m]}),t.jsx("span",{className:f.compactionRule,"aria-hidden":"true"})]}),l&&r&&t.jsx("div",{className:f.compactionSummary,children:t.jsx(Te,{text:e.summary,assetBase:s,owningPaneId:n,workspaceCwd:o})})]})}const va=500;function ka(e,s){const n=g.useRef(!0),[o,r]=g.useState(!0),a=g.useRef(0),c=g.useCallback(d=>{const p=s.current,u=p?{scrollTop:p.scrollTop,scrollHeight:p.scrollHeight,clientHeight:p.clientHeight}:{scrollTop:0,scrollHeight:0,clientHeight:0},v=Pn(n.current,d,u);v.pinned!==n.current&&(n.current=v.pinned,r(v.pinned)),v.stick&&e.options.count>0&&e.scrollToEnd({behavior:"auto"})},[s,e]);g.useEffect(()=>{const d=s.current;if(!d)return;const p=()=>{a.current=performance.now()},u=()=>{c({kind:"scroll",gesture:performance.now()-a.current<va})};d.addEventListener("scroll",u,{passive:!0}),d.addEventListener("wheel",p,{passive:!0}),d.addEventListener("touchmove",p,{passive:!0}),d.addEventListener("pointerdown",p,{passive:!0}),d.addEventListener("keydown",p,{passive:!0});const v=new ResizeObserver(()=>{d.clientHeight>0&&c({kind:"shown"})});return v.observe(d),()=>{v.disconnect(),d.removeEventListener("scroll",u),d.removeEventListener("wheel",p),d.removeEventListener("touchmove",p),d.removeEventListener("pointerdown",p),d.removeEventListener("keydown",p)}},[c,s]);const l=g.useCallback(()=>c({kind:"tail"}),[c]),m=g.useCallback(()=>c({kind:"pin"}),[c]);return{pinned:o,followTail:l,pinToBottom:m}}const ja="_root_1xg4h_6",ya="_viewport_1xg4h_13",ba="_inner_1xg4h_20",Na="_rowWrap_1xg4h_25",Sa="_empty_1xg4h_35",Ca="_nudge_1xg4h_47",wa="_jumpToLatest_1xg4h_56",Y={root:ja,viewport:ya,inner:ba,rowWrap:Na,empty:Sa,nudge:Ca,jumpToLatest:wa},Da=160;function Ba(e){return e.kind==="ask"?`ask:${Qn(e.item)}`:e.kind==="ask-more"?"ask-more":e.row.id}function Ta(e,s,n,o,r,a){switch(e.kind){case"user":{const c=a.ordinalByRowId.get(e.id),l=c!==void 0?()=>a.onForkFromRow(c):null;return t.jsx(ha,{row:e,connector:!s,onFork:l})}case"assistant":return t.jsx(ca,{row:e,assetBase:n,owningPaneId:o,workspaceCwd:r,connector:!s});case"reasoning":return t.jsx(la,{row:e,owningPaneId:o,workspaceCwd:r,connector:!s});case"tool":return t.jsx(ma,{row:e,assetBase:n,owningPaneId:o,workspaceCwd:r,connector:!s});case"error":return t.jsx(ga,{row:e,connector:!s});case"system":return t.jsx(_a,{row:e});case"compaction":return t.jsx(xa,{row:e,assetBase:n,owningPaneId:o,workspaceCwd:r})}}function Ea(e,s,n,o,r,a,c,l,m){return e.kind==="ask"?t.jsx(Ws,{item:e.item,collapsed:e.collapsed,connector:!s,autoFocus:e.item.kind==="pending"&&e.item.entry.requestId===c,sessionTitle:l}):e.kind==="ask-more"?t.jsx(Vs,{count:e.count,connector:!s,onExpand:a}):Ta(e.row,s,n,o,r,m)}function qa({session:e,owningPaneId:s,workspaceCwd:n}){var K,ee;const o=e.timeline.rows,r=e.status==="running",a=Wt(),c=Gt(e.cwd,a),l=g.useRef(null),m=Vt(e),d=Yt(e.agentId??""),p=Jt(e.agentId??""),[u,v]=g.useState(!1),B=L(N=>N.activeSessionId===e.id),P=Qt(N=>{var D;return((D=N.layouts[n])==null?void 0:D.focusedPaneId)===s}),A=B&&P?((K=d[0])==null?void 0:K.requestId)??null:null,j=g.useMemo(()=>{const N=Zn(Jn(d,p),u);return oo(o,N,D=>({kind:"row",row:D}),D=>D.kind==="more"?{kind:"ask-more",count:D.count}:{kind:"ask",item:D.item,collapsed:D.collapsed})},[o,d,p,u]),x=$(N=>N.status==="open"),y=$(N=>N.serverInfo),q=!!((ee=y==null?void 0:y.features)!=null&&ee.providerAuth),W=Xt(N=>N.openSettings),{data:Q}=Nn(o.length===0&&x&&q),w=ao(q,Q),T=It({count:j.length,getScrollElement:()=>l.current,estimateSize:()=>Da,overscan:8,getItemKey:N=>{const D=j[N];return D?Ba(D):N},measureElement:(N,D,H)=>{if(N.offsetParent!==null)return Lt(N,D,H);const te=H.indexFromElement(N),le=H.options.getItemKey(te);return H.itemSizeCache.get(le)??H.options.estimateSize(te)},anchorTo:"end",scrollEndThreshold:dt}),{pinned:ge,followTail:I,pinToBottom:X}=ka(T,l),F=Fn(o);return g.useEffect(()=>{I()},[j.length,I]),g.useEffect(()=>{F!==null&&X()},[F,X]),t.jsxs("div",{className:Y.root,children:[t.jsx("div",{className:Y.viewport,ref:l,children:j.length===0?!r&&(w?t.jsxs(Zt,{className:Y.nudge,children:[t.jsx("span",{children:"No messages yet — connect a model provider to get started."}),t.jsx(E,{size:"xs",variant:"secondary",onClick:()=>W(),children:"Connect a model provider"})]}):t.jsx("div",{className:Y.empty,children:"No messages yet — say something to start."})):t.jsx("div",{className:Y.inner,style:{height:T.getTotalSize()},children:T.getVirtualItems().map(N=>{const D=j[N.index];return D?t.jsx("div",{ref:T.measureElement,"data-index":N.index,className:Y.rowWrap,style:{transform:`translateY(${N.start}px)`},children:Ea(D,N.index===j.length-1,c,s,n,()=>v(!0),A,e.title,m)},N.key):null})})}),!ge&&j.length>0&&t.jsx("button",{type:"button",className:Y.jumpToLatest,onClick:X,title:"Jump to latest","aria-label":"Jump to latest",children:t.jsx(_n,{size:16,"aria-hidden":"true"})})]})}function Ra(e,s=!0){const n=$(o=>o.client);return Ce({queryKey:we.agentCommands(e),queryFn:async()=>{if(!n)throw new Error("not connected");const o=await me(n,e),{commands:r}=await n.agent(o).listCommands();return r},enabled:!!n&&!!e&&s})}function pt(e,s=!0){const n=$(o=>o.client);return Ce({queryKey:we.providerModels(e),queryFn:async()=>{if(!n)throw new Error("not connected");return(await n.providers.listModels(e)).models},enabled:!!n&&!!e&&s})}function Aa(e,s,n=!0){const o=$(r=>r.client);return Ce({queryKey:we.thinkingLevels(e??"",s),queryFn:async()=>{if(!o||!e)throw new Error("not connected");return(await o.agent(e).listThinkingLevels()).levels},enabled:!!o&&!!e&&n,retry:!1})}const Ia="_strip_nzfk5_4",La="_thumb_nzfk5_11",Oa="_remove_nzfk5_28",je={strip:Ia,thumb:La,remove:Oa};function Ma({images:e,onRemove:s}){return e.length===0?null:t.jsx("div",{className:je.strip,children:e.map((n,o)=>t.jsxs("div",{className:je.thumb,children:[t.jsx("img",{src:n.thumbUrl,alt:""}),t.jsx("button",{type:"button",className:je.remove,title:"Remove",onClick:()=>s(o),children:"×"})]},o))})}function Pa(e){const{promise:s,resolve:n,reject:o}=Promise.withResolvers(),r=new FileReader;return r.onload=()=>{const a=r.result;if(typeof a!="string"){o(new Error("Unexpected FileReader result"));return}const c=a.indexOf(","),l=c>=0?a.slice(c+1):a;n({mimeType:e.type,data:l,thumbUrl:a})},r.onerror=()=>o(r.error??new Error("Failed to read file")),r.readAsDataURL(e),s}function Fa(e,s,n){return e?n:s}const Se=[{name:"compact",description:"Manually compact the session context",source:"builtin"}];function ht(e){var o;const s=/^\/([^\s]+)(?:\s+([\s\S]*))?$/.exec(e.trim());if((s==null?void 0:s[1])!=="compact")return null;const n=(o=s[2])==null?void 0:o.trim();return{name:"compact",args:n||void 0}}function Ae(e){if(!e.startsWith("/"))return null;const s=/^\/(\S*)/.exec(e),n=(s==null?void 0:s[1])??"",o=1+n.length,r=/\S/.test(e.slice(o));return{name:n,end:o,hasArgs:r}}function Ka(e){return/^\/\S*$/.test(e)}function za(e,s){let n=0;const o=Se.map(a=>({value:a.name,label:`/${a.name}`,description:a.description,kind:a.source,disabled:s.builtinsDisabled===!0})),r=new Set(Se.map(a=>a.name));for(const a of e)if(!r.has(a.name)){if(s.running&&a.source==="extension"){n+=1;continue}o.push({value:a.name,label:`/${a.name}`,description:a.description,kind:a.source})}return{options:o,hiddenExtensionCount:n}}function Ha(e,s,n){return n<=0?0:(e+s+n)%n}function $a(e,s){const n=Ae(e);return n?n.hasArgs?`/${s}${e.slice(n.end)}`:`/${s} `:`/${s} ${e}`}function Ua(e,s){const n=Ae(e);return!n||!s.includes(n.name)?null:{end:n.end}}function gt({running:e,compacting:s,hasAgent:n}){return n&&!e&&!s}function Wa(e){const s=e.text.trim().length>0||e.hasImages;return!e.hasClient||!s||e.busy||e.compacting?!1:ht(e.text)!==null?gt(e):!0}const Ga="_picker_4appn_4",Va="_search_4appn_10",Ya="_list_4appn_28",Ja="_item_4appn_33",Qa="_itemActive_4appn_50",Xa="_checkSlot_4appn_54",Za="_label_4appn_63",er="_modelId_4appn_69",tr="_state_4appn_76",nr="_stateError_4appn_85",sr="_commandContent_4appn_95",or="_commandList_4appn_98",ar="_commandItem_4appn_103",rr="_commandItemHeader_4appn_135",ir="_commandKindBadge_4appn_149",cr="_commandKindExtension_4appn_168",lr="_commandKindPrompt_4appn_173",dr="_commandKindSkill_4appn_178",ur="_commandDescription_4appn_183",mr="_commandItemDisabled_4appn_197",k={picker:Ga,search:Va,list:Ya,item:Ja,itemActive:Qa,checkSlot:Xa,label:Za,modelId:er,state:tr,stateError:nr,commandContent:sr,commandList:or,commandItem:ar,commandItemHeader:rr,commandKindBadge:ir,commandKindExtension:cr,commandKindPrompt:lr,commandKindSkill:dr,commandDescription:ur,commandItemDisabled:mr},fr={onOpenAutoFocus:e=>e.preventDefault()};function pr(e){switch(e){case"extension":return k.commandKindExtension;case"prompt":return k.commandKindPrompt;case"skill":return k.commandKindSkill;default:return}}function hr({open:e,onOpenChange:s,options:n,highlightedIndex:o,onSelect:r,isLoading:a,isError:c,errorMessage:l,hiddenExtensionCount:m,renderTrigger:d}){const p=g.useRef(null);return g.useEffect(()=>{var u,v;e&&((v=(u=p.current)==null?void 0:u.querySelector('[aria-selected="true"]'))==null||v.scrollIntoView({block:"nearest"}))},[e,o]),t.jsxs(Ee,{open:e,onOpenChange:s,modal:!1,children:[t.jsx(qe,{asChild:!0,children:d()}),t.jsxs(De,{className:S(k.picker,k.commandContent),side:"top",sideOffset:4,...fr,onCloseAutoFocus:u=>u.preventDefault(),children:[a&&t.jsx("div",{className:k.state,children:t.jsx(pe,{size:"sm"})}),!a&&c&&t.jsx("div",{className:k.stateError,children:l??"Failed to load commands"}),!a&&!c&&n.length===0&&t.jsx("div",{className:k.state,children:"No commands found"}),!a&&!c&&n.length>0&&t.jsx("div",{ref:p,className:S(k.list,k.commandList),children:n.map((u,v)=>t.jsxs("div",{role:"option","aria-selected":v===o,"aria-disabled":u.disabled||void 0,className:S(k.item,k.commandItem,v===o&&k.itemActive,u.disabled&&k.commandItemDisabled),title:u.description,onMouseDown:B=>{B.preventDefault(),u.disabled||r(u.value)},children:[t.jsxs("div",{className:k.commandItemHeader,children:[t.jsx("span",{className:k.label,children:u.label}),u.kind&&t.jsx("span",{className:S(k.commandKindBadge,pr(u.kind)),children:u.kind})]}),u.description&&t.jsx("div",{className:k.commandDescription,children:u.description})]},u.value))}),!a&&!c&&m>0&&t.jsxs("div",{className:k.state,children:[m," extension command(s) unavailable while the agent is running"]})]})]})}function gr(e,s={}){const n=new Map;for(const m of e){const d=m.group??"",p=n.get(d);p?p.push(m):n.set(d,[m])}const o=n.get("");n.delete("");const r=[...n.keys()],{priorityGroup:a,ungroupedLabel:c}=s;a!==void 0&&n.has(a)&&(r.splice(r.indexOf(a),1),r.unshift(a));const l=r.map(m=>({key:m,label:m,options:n.get(m)??[]}));return o&&l.push({key:"",label:c,options:o}),l}function _r(e,s,n){if(!s)return e;const o=e.filter(a=>a.id===s),r=(n===void 0?void 0:o.find(a=>a.provider===n))??o[0];return r?[r,...e.filter(a=>a!==r)]:e}function xr(e){const s=new Set;return e.filter(n=>{const o=`${n.provider??""}/${n.id}`;return s.has(o)?!1:(s.add(o),!0)})}function vr({currentModel:e,currentModelProvider:s,provider:n,onSelect:o,renderTrigger:r}){const[a,c]=g.useState(!1),[l,m]=g.useState(""),d=g.useRef(null),{data:p=[],isLoading:u,isError:v,error:B}=pt(n,a||e!==void 0);g.useEffect(()=>{var w;a&&(m(""),(w=d.current)==null||w.focus())},[a]);const A=xr(_r(p,e,s)).map(w=>({value:w.id,label:w.label??w.id,description:w.id,group:w.provider})),j=A[0],x=(j==null?void 0:j.value)===e?j:void 0,y=gr(ct(A,l),{priorityGroup:s,ungroupedLabel:"Other"}),q=y.length>1,W=B instanceof Error?B.message:"Failed to load models";function Q(w){w.stopPropagation(),w.key==="Escape"&&c(!1)}return t.jsxs(Ee,{open:a,onOpenChange:c,modal:!1,children:[t.jsx(qe,{asChild:!0,children:r(e,x==null?void 0:x.label)}),t.jsxs(De,{minWidth:240,align:"end",sideOffset:6,className:k.picker,children:[t.jsx("input",{ref:d,className:k.search,placeholder:"Search models…",value:l,onChange:w=>m(w.target.value),onKeyDown:Q}),u&&t.jsx("div",{className:k.state,children:t.jsx(pe,{size:"sm"})}),!u&&v&&t.jsx("div",{className:k.stateError,children:W}),!u&&!v&&y.length===0&&t.jsx("div",{className:k.state,children:"No models found"}),!u&&!v&&y.length>0&&t.jsx("div",{className:k.list,children:y.map(w=>t.jsx(en,{label:q?w.label:void 0,children:w.options.map(T=>t.jsxs(it,{className:k.item,onSelect:()=>o(T.value,T.group),children:[t.jsx("span",{className:k.checkSlot,"aria-hidden":!0,children:T===x&&t.jsx(Be,{size:14})}),t.jsx("span",{className:k.label,children:T.label}),t.jsxs("span",{className:k.modelId,children:["(",T.value,")"]})]},`${T.group??""}/${T.value}`))},w.key))})]})]})}function kr({currentLevel:e,levels:s,open:n,onOpenChange:o,onSelect:r,renderTrigger:a}){return t.jsxs(Ee,{open:n,onOpenChange:o,modal:!1,children:[t.jsx(qe,{asChild:!0,children:a(e)}),t.jsx(De,{minWidth:140,align:"end",side:"top",sideOffset:6,className:k.picker,children:s.length===0?t.jsx("div",{className:k.state,children:"Loading levels…"}):t.jsx("div",{className:k.list,children:s.map(c=>t.jsxs(it,{className:k.item,onSelect:()=>r(c),children:[t.jsx("span",{className:k.checkSlot,"aria-hidden":!0,children:c===e&&t.jsx(Be,{size:14})}),t.jsx("span",{className:k.label,children:c})]},c))})})]})}const Ze=["off","minimal","low","medium","high","xhigh","max"];function jr(e,s){if(!e)return Ze;const n=s==null?void 0:s.find(o=>o.id===e);return n!=null&&n.thinkingLevels&&n.thinkingLevels.length>0?n.thinkingLevels:Ze}const yr="_composer_18cg3_4",br="_card_18cg3_13",Nr="_flash_18cg3_27",Sr="_note_18cg3_41",Cr="_compactError_18cg3_47",wr="_textarea_18cg3_55",Dr="_textareaWrap_18cg3_79",Br="_highlightLayer_18cg3_67",Tr="_commandMark_18cg3_102",Er="_hiddenFileInput_18cg3_127",qr="_toolbar_18cg3_133",Rr="_toolbarRight_18cg3_140",Ar="_toolBtn_18cg3_148",Ir="_roundBtn_18cg3_154",Lr="_modelBtn_18cg3_159",Or="_modelLabel_18cg3_189",Mr="_modelId_18cg3_187",Pr="_modelChevron_18cg3_207",C={composer:yr,card:br,flash:Nr,note:Sr,compactError:Cr,textarea:wr,textareaWrap:Dr,highlightLayer:Br,commandMark:Tr,hiddenFileInput:Er,toolbar:qr,toolbarRight:Rr,toolBtn:Ar,roundBtn:Ir,modelBtn:Lr,modelLabel:Or,modelId:Mr,modelChevron:Pr},Fr=160;function ce(e){e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,Fr)}px`}function Kr(e){return typeof e=="object"&&e!==null&&"ok"in e&&e.ok===!1}function zr(){return typeof window<"u"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}function Hr({sessionId:e}){var Ue;const s=$(i=>i.client),n=L(i=>i.sessions[e]),o=L(i=>i.addOptimisticUserMessage),r=L(i=>i.markUserMessageFailed),a=L(i=>i.setCwd),c=L(i=>i.setModel),l=L(i=>i.setThinkingLevel),m=$(i=>i.serverInfo),[d,p]=g.useState(!1),u=!!((Ue=m==null?void 0:m.features)!=null&&Ue.thinkingLevels),{data:v}=Aa(n==null?void 0:n.agentId,n==null?void 0:n.model,d&&!!(n!=null&&n.agentId)&&((n==null?void 0:n.userMessageCount)??0)>0),{data:B}=pt("pi"),P=jr(n==null?void 0:n.model,B),A=v!==void 0&&v.length>0?v:P,j=u&&!(v!==void 0&&v.length===0),x=ie(i=>i.drafts[e]??""),y=ie(i=>i.setDraft),[q,W]=g.useState([]),[Q,w]=g.useState(!1),[T,ge]=g.useState(!1),I=g.useRef(null),X=g.useRef(null),[F,K]=g.useState(!1),[ee,N]=g.useState(0),D=tn(sn.chat(e)),H=ie(i=>i.pendingFeedback[e]),[te,le]=g.useState(null),[_t,Ie]=g.useState(!1),ne=g.useRef(null),se=g.useRef(null);g.useEffect(()=>{if(!D||H===void 0)return;const i=ie.getState().consumeFeedback(e);if(!i)return;le(i.copy==="filled"?"Your message was filled in":"Your draft was replaced"),ne.current!==null&&window.clearTimeout(ne.current),ne.current=window.setTimeout(()=>le(null),4e3);const _=I.current;_&&_.setSelectionRange(_.value.length,_.value.length),i.flash&&(Ie(!0),se.current!==null&&window.clearTimeout(se.current),se.current=window.setTimeout(()=>Ie(!1),zr()?1e3:400))},[D,H,e]),g.useEffect(()=>()=>{ne.current!==null&&window.clearTimeout(ne.current),se.current!==null&&window.clearTimeout(se.current)},[]);const R=(n==null?void 0:n.status)==="running",oe=nn(e),_e=ue(i=>i.lastErrorBySession[e]),xt=ue(i=>i.compactSession),vt=ue(i=>i.cancelCompaction),kt=ue(i=>i.clearError),Le=!!(n!=null&&n.agentId),jt=Fa(R,Q,T),Oe=Wa({hasClient:!!s,busy:jt,compacting:oe,running:R,hasAgent:Le,text:x,hasImages:q.length>0}),{data:Me=[],isLoading:yt,isError:bt,error:Pe}=Ra(e,F),{options:Fe,hiddenExtensionCount:Nt}=za(Me,{running:R,builtinsDisabled:!gt({running:R,compacting:oe,hasAgent:Le})}),Ke=Ae(x),de=Ke?ct(Fe,Ke.name):Fe,St=[...Se,...Me].map(i=>i.name),Z=Ua(x,St);async function ze(i){if(i.type.startsWith("image/"))try{const _=await Pa(i);W(b=>[...b,_])}catch{}}function Ct(i){for(const _ of i.target.files??[])ze(_);i.target.value=""}function wt(i){for(const _ of i.clipboardData.items)if(_.type.startsWith("image/")){i.preventDefault();const b=_.getAsFile();b&&ze(b)}}function Dt(i){W(_=>_.filter((b,G)=>G!==i))}function Bt(i){const _=i.target.value;y(e,_),ce(i.target),_e&&kt(e);const b=Ka(_);b!==F&&K(b),b&&N(0)}function Tt(i){if(!F&&Z&&i.key==="Backspace"){const _=i.currentTarget,b=_.selectionStart;if(b!==null&&b===_.selectionEnd){const G=Z.end+(x[Z.end]===" "?1:0);if(b>0&&b<=G){i.preventDefault();const ae=x.slice(G);y(e,ae),_.setSelectionRange(0,0),ce(_);return}}}if(F&&de.length>0){if(i.key==="ArrowDown"||i.key==="ArrowUp"){i.preventDefault(),N(_=>Ha(_,i.key==="ArrowDown"?1:-1,de.length));return}if(i.key==="Enter"&&!i.shiftKey||i.key==="Tab"){i.preventDefault();const _=de[ee];_&&!_.disabled&&He(_.value);return}}if(F&&i.key==="Escape"){i.preventDefault(),K(!1);return}i.key==="Enter"&&!i.shiftKey&&(i.preventDefault(),$e(R?"steer":"send"))}function He(i){const _=$a(x,i);y(e,_),K(!1),N(0);const b=I.current;b&&(b.focus(),b.setSelectionRange(_.length,_.length),ce(b))}async function $e(i){if(!s||!n||(i==="steer"?T:Q)||i==="steer"&&!n.agentId)return;const _=x.trim();if(!_&&q.length===0||!Oe)return;const b=ht(_);if(b){K(!1),(await xt(e,b.args)).ok&&ie.getState().drafts[e]===x&&(y(e,""),I.current&&ce(I.current));return}y(e,""),K(!1),I.current&&ce(I.current);const G=q;W([]);const ae=_||"Describe this image",xe=G.length>0?G.map(V=>({mimeType:V.mimeType,data:V.data})):void 0,re=on();o(e,re,ae,xe,i==="steer");const We=i==="steer"?ge:w;We(!0);try{if(i==="steer"){const V=await s.agent(n.agentId).steer(ae,{clientMessageId:re,images:xe});Kr(V)&&r(e,re)}else{n.agentId||a(e,n.cwd||"~");const V=await me(s,e);await s.agent(V).send(ae,{clientMessageId:re,images:xe})}}catch{r(e,re)}finally{We(!1)}}function Et(){n!=null&&n.agentId&&(oe?vt(e):s==null||s.agent(n.agentId).interrupt())}function qt(i,_){c(e,i,_),!(!s||!_)&&(async()=>{const b=await me(s,e);await s.agent(b).setModel(_,i)})().catch(()=>{})}function Rt(i){l(e,i),s&&(async()=>{const _=await me(s,e),b=await s.agent(_).setThinking(i);l(e,b.level)})().catch(()=>{})}return t.jsxs("div",{className:C.composer,children:[t.jsxs("div",{className:S(C.card,_t&&C.flash),children:[t.jsxs("div",{className:C.textareaWrap,children:[t.jsx("div",{className:C.highlightLayer,"aria-hidden":!0,children:Z?t.jsxs(t.Fragment,{children:[t.jsx("mark",{className:C.commandMark,children:x.slice(0,Z.end)}),x.slice(Z.end)]}):x}),t.jsx(tt,{ref:I,className:C.textarea,rows:1,value:x,placeholder:R?"Steer the running turn… ⏎ steer · ⇧⏎ newline":"Ask anything… ⏎ send · ⇧⏎ newline · / commands",onChange:Bt,onKeyDown:Tt,onPaste:wt,"data-session-id":e})]}),t.jsx(Ma,{images:q,onRemove:Dt}),t.jsxs("div",{className:C.toolbar,children:[t.jsx(E,{className:C.toolBtn,variant:"ghost",size:"sm",iconOnly:!0,title:"Attach image","aria-label":"Attach image",onClick:()=>{var i;return(i=X.current)==null?void 0:i.click()},children:t.jsx(xn,{size:16})}),t.jsx(hr,{open:F,onOpenChange:K,options:de,highlightedIndex:ee,onSelect:He,isLoading:yt,isError:bt,errorMessage:Pe instanceof Error?Pe.message:void 0,hiddenExtensionCount:Nt,renderTrigger:()=>t.jsx(E,{className:C.toolBtn,variant:"ghost",size:"sm",iconOnly:!0,title:"Slash commands","aria-label":"Slash commands",children:t.jsx(vn,{size:16})})}),t.jsxs("div",{className:C.toolbarRight,children:[t.jsx(vr,{currentModel:n==null?void 0:n.model,currentModelProvider:n==null?void 0:n.modelProvider,provider:"pi",onSelect:qt,renderTrigger:(i,_)=>{const b=_!==void 0&&_!==i;return t.jsxs("button",{type:"button",className:C.modelBtn,disabled:!s,title:i?`Model: ${_??i}${b?` (${i})`:""}`:"Select model",children:[t.jsx(kn,{size:14,"aria-hidden":"true"}),t.jsx("span",{className:C.modelLabel,children:_??i??"Model"}),b&&t.jsxs("span",{className:C.modelId,children:["(",i,")"]}),t.jsx(Ve,{size:13,className:C.modelChevron,"aria-hidden":"true"})]})}}),j&&t.jsx(kr,{currentLevel:n==null?void 0:n.thinkingLevel,levels:A,open:d,onOpenChange:p,onSelect:Rt,renderTrigger:i=>t.jsxs("button",{type:"button",className:C.modelBtn,disabled:!s,title:i?`Thinking: ${i}`:"Thinking level",children:[t.jsx(st,{size:14,"aria-hidden":"true"}),t.jsx("span",{className:C.modelLabel,children:i??"Thinking"}),t.jsx(Ve,{size:13,className:C.modelChevron,"aria-hidden":"true"})]})}),(R||oe)&&t.jsx(E,{className:C.roundBtn,variant:"destructive",size:"sm",iconOnly:!0,title:oe?"Cancel the compaction":"Stop the running turn","aria-label":"Stop",onClick:Et,children:t.jsx(jn,{size:14})}),t.jsx(E,{className:C.roundBtn,size:"sm",iconOnly:!0,disabled:!Oe,title:R?"Steer the running turn":"Send","aria-label":R?"Steer":"Send",onClick:()=>void $e(R?"steer":"send"),children:R?t.jsx(yn,{size:16}):t.jsx(bn,{size:18})})]})]})]}),te!==null&&t.jsx("div",{className:C.note,children:te}),_e&&t.jsx("div",{role:"alert",className:C.compactError,children:_e}),t.jsx("input",{ref:X,className:C.hiddenFileInput,type:"file",accept:"image/*",multiple:!0,onChange:Ct})]})}const $r="_track_oxvl6_2",Ur="_sweep_oxvl6_24",Wr="_visuallyHidden_oxvl6_64",ye={track:$r,sweep:Ur,visuallyHidden:Wr};function Gr({running:e}){return e?t.jsxs("div",{className:ye.track,role:"progressbar","aria-label":"Turn in progress",children:[t.jsx("div",{className:ye.sweep,"aria-hidden":"true"}),t.jsx("span",{className:ye.visuallyHidden,role:"status","aria-live":"polite",children:"Agent is working…"})]}):null}const Vr="_panel_1tq06_1",Yr="_empty_1tq06_5",et={panel:Vr,empty:Yr};function li({tab:e,owningPaneId:s}){const{sessionId:n}=e.data,o=L(r=>r.sessions[n]);return Mn(n),o?t.jsxs(Ge,{className:et.panel,children:[t.jsx(Gr,{running:o.status==="running"}),t.jsx(qa,{session:o,owningPaneId:s,workspaceCwd:e.workspaceCwd}),t.jsx(Hr,{sessionId:o.id})]}):t.jsx(Ge,{children:t.jsx("div",{className:et.empty,children:"Session not found."})})}export{li as ChatPanel};
@@ -0,0 +1 @@
1
+ ._shellRow_1kabp_2{display:flex;gap:var(--pi-spacing-12)}._rail_1kabp_10{width:20px;flex:none;display:flex;flex-direction:column;align-items:center}._disc_1kabp_18{width:18px;height:18px;flex:none;border-radius:var(--pi-radius-full);display:flex;align-items:center;justify-content:center}._connector_1kabp_28{flex:1;width:var(--pi-border-width-2);background:var(--pi-color-surface3)}._content_1kabp_2{flex:1;min-width:0;padding-bottom:var(--pi-spacing-8)}._metaLine_1kabp_40{display:flex;align-items:center;gap:var(--pi-spacing-7);font-size:var(--pi-font-size-3xs);color:var(--pi-color-foregroundMuted);margin-bottom:var(--pi-spacing-3)}._metaTime_1kabp_52{opacity:.55;transition:opacity .12s ease}._shellRow_1kabp_2:hover ._metaTime_1kabp_52{opacity:1}._forkButton_1kabp_66{position:relative;opacity:0;transition:opacity .12s ease-out}._shellRow_1kabp_2:hover ._forkButton_1kabp_66,._shellRow_1kabp_2:focus-within ._forkButton_1kabp_66{opacity:1}@media(max-width:575px),(hover:none){._forkButton_1kabp_66{opacity:.55}._forkButton_1kabp_66:active{opacity:1}._forkButton_1kabp_66:after{content:"";position:absolute;inset:50% auto auto 50%;width:44px;height:44px;transform:translate(-50%,-50%)}}@media(prefers-reduced-motion:reduce){._forkButton_1kabp_66{transition:none}}@media(prefers-reduced-motion:reduce){._metaTime_1kabp_52{transition:none}}._askDisc_ffqf1_5{background:color-mix(in srgb,var(--pi-color-statusWarning) 20%,var(--pi-color-surface3))}._card_ffqf1_9{position:relative;overflow:hidden;border-radius:var(--pi-radius-lg);background:var(--pi-color-surface1);border:var(--pi-border-width-1) solid var(--pi-color-border);padding:var(--pi-spacing-8) var(--pi-spacing-12);display:flex;flex-direction:column;gap:var(--pi-spacing-8)}._card_ffqf1_9:focus-within{border-color:color-mix(in srgb,var(--pi-color-statusWarning) 45%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--pi-color-statusWarning) 18%,transparent)}._cardInert_ffqf1_41{opacity:.55;border-color:var(--pi-color-border)}._askDiscInert_ffqf1_47{background:var(--pi-color-surface3)}._reconnectingNote_ffqf1_52{display:flex;align-items:center;gap:var(--pi-spacing-7);margin:0;font-size:var(--pi-font-size-3xs);color:var(--pi-color-foregroundMuted)}._reconnectingDot_ffqf1_61{width:8px;height:8px;border-radius:var(--pi-radius-full);background:var(--pi-color-foregroundMuted);flex:none}._deadlineBar_ffqf1_71{position:absolute;top:0;left:0;height:2px;background:var(--pi-color-statusWarning);transition:width 1s linear}._deadlineApproximate_ffqf1_80{opacity:.7}._header_ffqf1_85{display:flex;align-items:center;gap:var(--pi-spacing-7)}._askBadge_ffqf1_16{font-size:var(--pi-font-size-4xs);font-weight:700;letter-spacing:.06em;border-radius:var(--pi-radius-base);padding:0 var(--pi-spacing-5);color:var(--pi-color-statusWarning);background:color-mix(in srgb,var(--pi-color-statusWarning) 18%,transparent)}._methodName_ffqf1_101{font-family:var(--pi-font-mono);font-size:var(--pi-font-size-3xs);color:var(--pi-color-foregroundMuted)}._title_ffqf1_107{font-size:var(--pi-font-size-xs);line-height:1.5;color:var(--pi-color-foreground);white-space:pre-line;overflow-wrap:break-word}._titleEmphasised_ffqf1_115{font-weight:600}._message_ffqf1_119{font-size:var(--pi-font-size-xs);line-height:1.5;color:var(--pi-color-foregroundMuted);white-space:pre-line;overflow-wrap:break-word}._emptyOptionsNote_ffqf1_127{font-size:var(--pi-font-size-xs);font-style:italic;color:var(--pi-color-foregroundMuted)}._controls_ffqf1_133{display:flex;align-items:center;gap:var(--pi-spacing-8);flex-wrap:wrap;row-gap:var(--pi-spacing-8)}._controlsStack_ffqf1_141{flex-direction:column;align-items:stretch;flex-wrap:nowrap}._controlsScroll_ffqf1_148{max-height:208px;overflow-y:auto}._optionButton_ffqf1_153{text-align:left;justify-content:flex-start;white-space:normal;height:auto;min-height:28px}._field_ffqf1_161{flex:1;min-width:0;font-family:var(--pi-font-mono);font-size:var(--pi-font-size-code)}._editorField_ffqf1_168{font-family:var(--pi-font-mono);font-size:var(--pi-font-size-code);line-height:1.55;resize:none;overflow-y:auto}._rawPayload_ffqf1_176{margin:0;padding:var(--pi-spacing-6) var(--pi-spacing-8);border-radius:var(--pi-radius-base);background:var(--pi-color-surface0);color:var(--pi-color-foregroundMuted);font-family:var(--pi-font-mono);font-size:var(--pi-font-size-3xs);white-space:pre;overflow-x:auto}._resolvedCard_ffqf1_190{display:flex;align-items:center;gap:var(--pi-spacing-8);padding:var(--pi-spacing-8) var(--pi-spacing-12);border-radius:var(--pi-radius-lg);background:var(--pi-color-surface1);border:var(--pi-border-width-1) solid var(--pi-color-border);font-size:var(--pi-font-size-3xs)}._askBadgeNeutral_ffqf1_204{color:var(--pi-color-foregroundMuted);background:var(--pi-color-surface3)}._resolvedMethodName_ffqf1_209{flex:1;font-family:var(--pi-font-mono);color:var(--pi-color-foregroundMuted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._outcome_ffqf1_218{display:flex;align-items:center;gap:var(--pi-spacing-3);flex:none;max-width:40%;color:var(--pi-color-foregroundMuted)}._outcomeSuccess_ffqf1_229{color:var(--pi-color-statusSuccess)}._outcomeText_ffqf1_233{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(prefers-reduced-motion:reduce){._deadlineBar_ffqf1_71{transition:none}}._hint_ffqf1_255{display:flex;visibility:hidden;align-items:center;flex-wrap:wrap;gap:var(--pi-spacing-6);font-size:var(--pi-font-size-3xs);color:var(--pi-color-foregroundMuted)}._card_ffqf1_9:focus-within~._hint_ffqf1_255{visibility:visible}._hintKey_ffqf1_270{font-family:var(--pi-font-mono);border:var(--pi-border-width-1) solid var(--pi-color-border);border-radius:4px;padding:0 4px;background:var(--pi-color-surface2)}._hintSep_ffqf1_278{opacity:.5}._recoveredChip_ffqf1_285{margin-left:auto;flex:none;font-size:var(--pi-font-size-4xs);color:var(--pi-color-foregroundMuted);border:var(--pi-border-width-1) solid var(--pi-color-border);border-radius:var(--pi-radius-base);padding:0 var(--pi-spacing-5)}._collapsedPendingCard_ffqf1_297{border-color:color-mix(in srgb,var(--pi-color-statusWarning) 45%,transparent)}._moreRow_ffqf1_303{display:flex;align-items:center;justify-content:center;width:100%;padding:var(--pi-spacing-6) var(--pi-spacing-12);border:none;border-radius:var(--pi-radius-base);background:none;color:var(--pi-color-foregroundMuted);font-size:var(--pi-font-size-3xs);cursor:pointer}._moreRow_ffqf1_303:hover{color:var(--pi-color-foreground);background:color-mix(in srgb,var(--pi-color-surface1) 85%,var(--pi-color-foreground) 15%)}._queuedBadge_12qdc_8{display:inline-flex;align-items:center;gap:var(--pi-spacing-2);padding:0 var(--pi-spacing-4);border:var(--pi-border-width-1) solid var(--pi-color-border);border-radius:var(--pi-radius-sm);font-size:var(--pi-font-size-4xs);font-weight:600;color:var(--pi-color-foregroundMuted)}._finalChip_12qdc_20{padding:0 var(--pi-spacing-4);border:var(--pi-border-width-1) solid var(--pi-color-border);border-radius:var(--pi-radius-sm);font-size:var(--pi-font-size-4xs);color:var(--pi-color-foregroundMuted)}._userDisc_12qdc_30{background:color-mix(in srgb,var(--pi-color-statusSuccess) 65%,var(--pi-color-surface3))}._userAligned_12qdc_34{display:flex;flex-direction:column;align-items:flex-end}._userPendingRow_12qdc_40{opacity:.6}._userBubble_12qdc_44{display:inline-block;max-width:100%;padding:var(--pi-spacing-6) var(--pi-spacing-10);border-radius:var(--pi-radius-lg);background:color-mix(in srgb,var(--pi-color-accent) 20%,var(--pi-color-surface1));border:var(--pi-border-width-1) solid color-mix(in srgb,var(--pi-color-accent) 45%,transparent);color:var(--pi-color-foreground);font-size:var(--pi-font-size-sm);line-height:1.5;white-space:pre-wrap;word-break:break-word}._userBubbleFailed_12qdc_58{background:color-mix(in srgb,var(--pi-color-destructive) 20%,var(--pi-color-surface1));border-color:color-mix(in srgb,var(--pi-color-destructive) 45%,transparent)}._userImages_12qdc_63{display:flex;gap:var(--pi-spacing-6);flex-wrap:wrap;margin-top:var(--pi-spacing-6)}._userImage_12qdc_63{max-width:200px;max-height:150px;border-radius:var(--pi-radius-base);display:block;object-fit:cover;cursor:pointer}._imageDialog_12qdc_79{max-width:90vw}._imageDialogPreview_12qdc_83{display:block;max-width:90vw;max-height:80vh;object-fit:contain}._assistantDisc_12qdc_93{background:var(--pi-color-accent)}._assistantBody_12qdc_97{padding:var(--pi-spacing-6) var(--pi-spacing-10);border-radius:var(--pi-radius-lg);background:var(--pi-color-surface2);border:var(--pi-border-width-1) solid var(--pi-color-surface3);font-size:var(--pi-font-size-sm);line-height:1.5}._reasoningDisc_12qdc_108{background:var(--pi-color-surface3)}._reasoningBody_12qdc_112{color:color-mix(in srgb,var(--pi-color-foregroundMuted) 82%,transparent);font-style:italic;font-size:var(--pi-font-size-2xs);line-height:1.5}._toolDisc_12qdc_123{background:var(--pi-color-surface3)}._toolCardBody_12qdc_127{border:var(--pi-border-width-1) solid var(--pi-color-border);border-radius:var(--pi-radius-lg);background:var(--pi-color-surface1);overflow:hidden}._toolCardBodyRunning_12qdc_134{border-color:color-mix(in srgb,var(--pi-color-accent) 45%,transparent)}._toolCardBodyCompleted_12qdc_138{border-color:color-mix(in srgb,var(--pi-color-statusSuccess) 45%,transparent)}._toolCardBodyError_12qdc_142{border-color:color-mix(in srgb,var(--pi-color-destructive) 45%,transparent)}._toolHeader_12qdc_146{display:flex;align-items:center;gap:var(--pi-spacing-8);width:100%;padding:var(--pi-spacing-7) var(--pi-spacing-12);font-size:var(--pi-font-size-2xs);cursor:pointer;-webkit-user-select:none;user-select:none}._toolHeader_12qdc_146[aria-disabled=true]{cursor:default}._toolHeader_12qdc_146:hover:not([aria-disabled=true]){background:color-mix(in srgb,var(--pi-color-surface1) 85%,var(--pi-color-foreground) 15%)}._toolHeader_12qdc_146._toolHeaderRunning_12qdc_172:hover:not([aria-disabled=true]){background:color-mix(in srgb,var(--pi-color-accent) 16%,transparent)}._toolHeaderRunning_12qdc_172{background:color-mix(in srgb,var(--pi-color-accent) 10%,transparent)}._toolChevron_12qdc_182{flex-shrink:0;color:var(--pi-color-foregroundMuted);transition:transform .12s ease}._toolChevronOpen_12qdc_188{transform:rotate(90deg)}._kindBadge_12qdc_192{flex-shrink:0;font-size:var(--pi-font-size-4xs);font-weight:var(--pi-font-weight-bold);letter-spacing:.06em;border-radius:var(--pi-radius-base);padding:0 var(--pi-spacing-5);color:var(--kindToken);background:color-mix(in srgb,var(--kindToken) 20%,transparent);border:var(--pi-border-width-1) solid color-mix(in srgb,var(--kindToken) 48%,transparent)}._toolPath_12qdc_204{flex:1;min-width:0;font-family:var(--pi-font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._toolTrailing_12qdc_213{flex-shrink:0;display:flex;align-items:center;gap:var(--pi-spacing-6);font-size:var(--pi-font-size-3xs)}._toolStatusRunning_12qdc_221{display:flex;align-items:center;gap:var(--pi-spacing-4);color:var(--pi-color-accentBright)}._toolStatusSuccess_12qdc_228{color:var(--pi-color-statusSuccess)}._toolStatusError_12qdc_232{color:var(--pi-color-destructive)}._toolStatusUnknown_12qdc_236{color:var(--pi-color-foregroundMuted)}._toolDiffAdded_12qdc_240{color:var(--pi-color-statusSuccess)}._toolDiffRemoved_12qdc_244{color:var(--pi-color-destructive)}._toolOpenButton_12qdc_248{flex-shrink:0;display:inline-flex;align-items:center;gap:var(--pi-spacing-2);padding:0;border:none;background:none;color:var(--pi-color-foregroundMuted);font:inherit;font-size:var(--pi-font-size-3xs);cursor:pointer}._toolOpenButton_12qdc_248:hover{color:var(--pi-color-foreground)}._toolBody_12qdc_266{border-top:1px solid var(--pi-color-border);max-height:420px;overflow:auto}._toolCode_12qdc_272{margin:0;padding:var(--pi-spacing-8) var(--pi-spacing-12);font-family:var(--pi-font-mono);font-size:var(--pi-font-size-xs);line-height:1.5;white-space:pre-wrap;word-break:break-word;color:var(--pi-color-foreground)}._toolOutputStrip_12qdc_283{border-top:var(--pi-border-width-1) solid color-mix(in srgb,var(--pi-color-border) 60%,transparent);padding:var(--pi-spacing-6) var(--pi-spacing-12);background:var(--pi-color-surface0);font-family:var(--pi-font-mono);font-size:var(--pi-font-size-3xs);color:var(--pi-color-foregroundMuted)}._toolDiffPreview_12qdc_293{border-top:var(--pi-border-width-1) solid color-mix(in srgb,var(--pi-color-border) 60%,transparent);padding:var(--pi-spacing-3) 0;font-family:var(--pi-font-mono);font-size:var(--pi-font-size-3xs)}._toolDiffPreviewLine_12qdc_301{padding:var(--pi-spacing-1) var(--pi-spacing-12)}._toolDiffPreviewAdd_12qdc_305{color:var(--pi-color-statusSuccess);background:color-mix(in srgb,var(--pi-color-statusSuccess) 9%,transparent)}._toolDiffPreviewDel_12qdc_310{color:var(--pi-color-destructive);background:color-mix(in srgb,var(--pi-color-destructive) 9%,transparent)}._toolDiffPreviewMore_12qdc_315{padding:var(--pi-spacing-1) var(--pi-spacing-12);color:var(--pi-color-foregroundMuted)}._errorDisc_12qdc_322{background:color-mix(in srgb,var(--pi-color-destructive) 25%,var(--pi-color-surface3))}._errorCard_12qdc_326{border:var(--pi-border-width-1) solid color-mix(in srgb,var(--pi-color-destructive) 45%,transparent);border-radius:var(--pi-radius-lg);background:color-mix(in srgb,var(--pi-color-destructive) 10%,var(--pi-color-surface1));padding:var(--pi-spacing-7) var(--pi-spacing-12);font-size:var(--pi-font-size-2xs)}._errorLead_12qdc_335{color:var(--pi-color-destructive);font-weight:var(--pi-font-weight-bold)}._systemRow_12qdc_342{text-align:center;color:var(--pi-color-foregroundMuted);font-size:var(--pi-font-size-3xs);padding:var(--pi-spacing-4) 0}._compactionRow_12qdc_351{color:var(--pi-color-foregroundMuted);font-size:var(--pi-font-size-3xs);padding:var(--pi-spacing-6) 0}._compactionRowFailed_12qdc_357{color:var(--pi-color-statusDanger)}._compactionDivider_12qdc_361{display:flex;align-items:center;gap:var(--pi-spacing-8)}._compactionRule_12qdc_367{flex:1;height:var(--pi-border-width-1);background:var(--pi-color-border)}._compactionLabel_12qdc_373{display:inline-flex;align-items:center;gap:var(--pi-spacing-4);max-width:80%}._compactionText_12qdc_380{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._compactionToggle_12qdc_386{display:inline-flex;align-items:center;gap:var(--pi-spacing-4);min-width:0;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}._compactionToggle_12qdc_386:hover{color:var(--pi-color-foreground)}._compactionSummary_12qdc_403{margin-top:var(--pi-spacing-6);padding:var(--pi-spacing-7) var(--pi-spacing-12);border:var(--pi-border-width-1) solid var(--pi-color-border);border-radius:var(--pi-radius-lg);background:var(--pi-color-surface1);color:var(--pi-color-foreground);font-size:var(--pi-font-size-2xs)}._root_1xg4h_6{position:relative;flex:1 1 auto;min-height:0;display:flex}._viewport_1xg4h_13{flex:1 1 auto;overflow-y:auto;min-height:0;padding:var(--pi-spacing-16) var(--pi-spacing-20)}._inner_1xg4h_20{position:relative;width:100%}._rowWrap_1xg4h_25{position:absolute;top:0;left:0;width:100%;display:flex;flex-direction:column;padding-bottom:var(--pi-spacing-4)}._empty_1xg4h_35{display:flex;align-items:center;justify-content:center;height:100%;color:var(--pi-color-foregroundMuted);font-size:var(--pi-font-size-sm)}._nudge_1xg4h_47{flex-direction:column;height:100%;width:100%;font-size:var(--pi-font-size-sm)}._jumpToLatest_1xg4h_56{position:absolute;right:var(--pi-spacing-20);bottom:var(--pi-spacing-16);width:32px;height:32px;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--pi-color-border);border-radius:var(--pi-radius-full);background:var(--pi-color-surface2);color:var(--pi-color-foreground);box-shadow:var(--pi-shadow-md);cursor:pointer;animation:_jumpToLatestIn_1xg4h_1 .12s ease-out}._jumpToLatest_1xg4h_56:hover{background:var(--pi-color-surface3)}._jumpToLatest_1xg4h_56:focus-visible{outline:2px solid var(--pi-color-accent);outline-offset:2px}@keyframes _jumpToLatestIn_1xg4h_1{0%{opacity:0;transform:translateY(var(--pi-spacing-4))}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){._jumpToLatest_1xg4h_56{animation:none}}._strip_nzfk5_4{display:flex;gap:var(--pi-spacing-6);flex-wrap:wrap;padding:var(--pi-spacing-6) 0 0}._thumb_nzfk5_11{position:relative;width:48px;height:48px;border-radius:var(--pi-radius-base);overflow:hidden;border:1px solid var(--pi-color-border);flex-shrink:0}._thumb_nzfk5_11 img{width:100%;height:100%;object-fit:cover;display:block}._remove_nzfk5_28{position:absolute;top:-2px;right:-2px;width:16px;height:16px;background:var(--pi-color-statusDanger);color:#fff;border:none;border-radius:50%;font-size:var(--pi-font-size-3xs);line-height:16px;text-align:center;cursor:pointer;padding:0}._picker_4appn_4{display:flex;flex-direction:column;gap:var(--pi-spacing-4)}._search_4appn_10{width:100%;box-sizing:border-box;padding:var(--pi-spacing-6) var(--pi-spacing-8);border-radius:var(--pi-radius-md);border:1px solid var(--pi-color-border);background:var(--pi-color-surface2);color:var(--pi-color-foreground);font-size:var(--pi-font-size-xs);outline:none}._search_4appn_10::placeholder{color:var(--pi-color-foregroundMuted)}._search_4appn_10:focus{border-color:var(--pi-color-accent)}._list_4appn_28{max-height:320px;overflow-y:auto}._item_4appn_33{display:flex;align-items:center;gap:var(--pi-spacing-6);padding:var(--pi-spacing-6) var(--pi-spacing-8);border-radius:var(--pi-radius-base);font-size:var(--pi-font-size-sm);cursor:pointer;outline:none;scroll-margin-top:var(--pi-spacing-24)}._item_4appn_33:hover,._item_4appn_33[data-highlighted],._item_4appn_33._itemActive_4appn_50{background:color-mix(in srgb,var(--pi-color-surface1) 85%,var(--pi-color-foreground) 15%)}._checkSlot_4appn_54{width:var(--pi-icon-size-md);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;color:var(--pi-color-foreground)}._label_4appn_63{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._modelId_4appn_69{color:var(--pi-color-foregroundMuted);margin-left:var(--pi-spacing-4);font-size:var(--pi-font-size-xs);white-space:nowrap}._state_4appn_76{display:flex;align-items:center;justify-content:center;padding:var(--pi-spacing-12);color:var(--pi-color-foregroundMuted);font-size:var(--pi-font-size-xs)}._stateError_4appn_85{padding:var(--pi-spacing-8);color:var(--pi-color-statusDanger);font-size:var(--pi-font-size-xs)}._commandContent_4appn_95{max-width:420px}._commandList_4appn_98{display:flex;flex-direction:column;gap:var(--pi-spacing-2)}._commandItem_4appn_103{flex-direction:column;align-items:stretch;gap:var(--pi-spacing-4);padding:var(--pi-spacing-8) var(--pi-spacing-10)}._commandItem_4appn_103:hover{background:color-mix(in srgb,var(--pi-color-foreground) 10%,transparent)}._commandItem_4appn_103._itemActive_4appn_50{background:var(--pi-color-surface0);box-shadow:inset 2px 0 0 var(--pi-color-accent);border-radius:var(--pi-radius-none)}._commandItemHeader_4appn_135{display:flex;align-items:center;justify-content:space-between;gap:var(--pi-spacing-8);width:100%}._commandItemHeader_4appn_135 ._label_4appn_63{flex:1;min-width:0;font-size:var(--pi-font-size-sm);font-weight:600;color:var(--pi-color-foreground)}._commandKindBadge_4appn_149{flex-shrink:0;display:inline-flex;align-items:center;padding:0 var(--pi-spacing-4);border-radius:var(--pi-radius-full);border:1px solid var(--pi-color-border);background:var(--pi-color-surface2);color:var(--pi-color-foregroundMuted);font-size:var(--pi-font-size-4xs);font-weight:600;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;line-height:1.5}._commandKindExtension_4appn_168{background:color-mix(in srgb,var(--pi-color-accent) 18%,transparent);border-color:color-mix(in srgb,var(--pi-color-accent) 45%,transparent);color:var(--pi-color-accent)}._commandKindPrompt_4appn_173{background:color-mix(in srgb,var(--pi-color-statusSuccess) 18%,transparent);border-color:color-mix(in srgb,var(--pi-color-statusSuccess) 45%,transparent);color:var(--pi-color-statusSuccess)}._commandKindSkill_4appn_178{background:color-mix(in srgb,var(--pi-color-statusMerged) 18%,transparent);border-color:color-mix(in srgb,var(--pi-color-statusMerged) 45%,transparent);color:var(--pi-color-statusMerged)}._commandDescription_4appn_183{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;text-overflow:ellipsis;white-space:normal;line-height:1.4;font-size:var(--pi-font-size-xs);color:var(--pi-color-foregroundMuted)}._commandItemDisabled_4appn_197{opacity:.45;cursor:default}._composer_18cg3_4{padding:var(--pi-spacing-8) var(--pi-spacing-16) var(--pi-spacing-12);border-top:1px solid var(--pi-color-border);background:var(--pi-color-surface1);flex-shrink:0}._card_18cg3_13{display:flex;flex-direction:column;gap:var(--pi-spacing-4);padding:var(--pi-spacing-6);border:1px solid var(--pi-color-border);border-radius:var(--pi-radius-xl);background:var(--pi-color-surface2);transition:border-color .12s ease}._card_18cg3_13._flash_18cg3_27{border-color:color-mix(in srgb,var(--pi-color-accentBright) 45%,var(--pi-color-border) 55%)}@media(prefers-reduced-motion:reduce){._card_18cg3_13._flash_18cg3_27{transition:none}}._note_18cg3_41{margin-top:var(--pi-spacing-4);font-size:var(--pi-font-size-3xs);color:var(--pi-color-foregroundMuted)}._compactError_18cg3_47{margin-top:var(--pi-spacing-4);font-size:var(--pi-font-size-3xs);color:var(--pi-color-statusDanger)}._card_18cg3_13:has(._textarea_18cg3_55:focus){border-color:var(--pi-color-accent)}._textarea_18cg3_55{resize:none;min-height:38px;max-height:160px;overflow-y:auto;font-size:var(--pi-font-size-md)}._card_18cg3_13 ._textarea_18cg3_55{background:transparent;border-color:transparent}._card_18cg3_13 ._textarea_18cg3_55:focus{border-color:transparent;outline:none}._textareaWrap_18cg3_79{position:relative;display:flex;min-width:0}._textareaWrap_18cg3_79 ._textarea_18cg3_55{position:relative}._highlightLayer_18cg3_67{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--pi-spacing-8) var(--pi-spacing-12);border:1px solid transparent;box-sizing:border-box;font-size:var(--pi-font-size-md);font-family:var(--pi-font-ui);line-height:normal;white-space:pre-wrap;overflow-wrap:break-word;overflow:hidden;color:transparent;pointer-events:none}._commandMark_18cg3_102{background:color-mix(in srgb,var(--pi-color-accent) 24%,transparent);color:transparent;border-radius:var(--pi-radius-base);box-shadow:0 0 0 1px color-mix(in srgb,var(--pi-color-accent) 55%,transparent),0 0 0 3px color-mix(in srgb,var(--pi-color-accent) 24%,transparent)}._hiddenFileInput_18cg3_127{display:none}._toolbar_18cg3_133{display:flex;align-items:center;gap:var(--pi-spacing-2);min-width:0}._toolbarRight_18cg3_140{display:flex;align-items:center;gap:var(--pi-spacing-6);margin-left:auto;min-width:0}._toolBtn_18cg3_148{flex-shrink:0}._card_18cg3_13 ._roundBtn_18cg3_154{border-radius:var(--pi-radius-full);flex-shrink:0}._modelBtn_18cg3_159{display:flex;align-items:center;gap:var(--pi-spacing-2);min-width:0;max-width:340px;padding:var(--pi-spacing-4) var(--pi-spacing-6);border:none;border-radius:var(--pi-radius-md);background:transparent;color:var(--pi-color-foregroundMuted);font-family:var(--pi-font-ui);font-size:var(--pi-font-size-sm);cursor:pointer}._modelBtn_18cg3_159:hover:not(:disabled),._modelBtn_18cg3_159[data-state=open]{background:var(--pi-color-surface3);color:var(--pi-color-foreground)}._modelBtn_18cg3_159:disabled{cursor:default;opacity:.6}._modelLabel_18cg3_189{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--pi-color-foreground)}._modelId_18cg3_187{flex-shrink:8;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--pi-color-foregroundMuted);font-size:var(--pi-font-size-xs)}._modelChevron_18cg3_207{flex-shrink:0;transition:transform .15s ease}._modelBtn_18cg3_159[data-state=open] ._modelChevron_18cg3_207{transform:rotate(180deg)}._track_oxvl6_2{position:absolute;inset-inline:0;top:0;z-index:1;height:3px;background:color-mix(in srgb,var(--pi-color-accent) 22%,transparent);overflow:hidden}._sweep_oxvl6_24{position:absolute;inset-block:0;width:38%;left:-38%;background:linear-gradient(90deg,transparent,var(--pi-color-accent) 35%,color-mix(in srgb,var(--pi-color-accent) 75%,var(--pi-color-accentBright)) 50%,var(--pi-color-accent) 65%,transparent);animation:_sweep_oxvl6_24 1.5s linear infinite}@keyframes _sweep_oxvl6_24{0%{left:-38%}to{left:100%}}@media(prefers-reduced-motion:reduce){._sweep_oxvl6_24{animation:none;width:100%;left:0;opacity:var(--pi-opacity-50)}}._visuallyHidden_oxvl6_64{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}._panel_1tq06_1{position:relative}._empty_1tq06_5{display:flex;align-items:center;justify-content:center;height:100%;color:var(--pi-color-foregroundMuted);font-size:var(--pi-font-size-sm)}
@@ -1 +1 @@
1
- var j=Object.defineProperty;var q=(r,n,e)=>n in r?j(r,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[n]=e;var d=(r,n,e)=>q(r,typeof n!="symbol"?n+"":n,e);import{r as u,j as w}from"./vendor-react-DQUAl2K8.js";import{u as y}from"./vendor-query-i7fr__Xm.js";import{u as F,r as p}from"./index-T-iCQirw.js";import{u as x}from"./use-file-download-hogFXJ1-.js";import{Q as S,S as _,T as b,U as B,V as z,W as U}from"./vendor-DaF96HbP.js";function D(r){const{maxDisplayBytes:n,inline:e,streamed:o,download:a}=r;if(e.isLoading)return{kind:"loading"};if(e.tooLarge){const{size:t}=e.tooLarge;return t>n?{kind:"too-large",size:t,maxDisplayBytes:n,downloading:a.requested&&a.isLoading,downloadUrl:a.objectUrl,downloadName:a.fileName}:o.isLoading?{kind:"streaming",size:t}:o.isError?{kind:"stream-error",size:t,message:o.errorMessage??"stream failed"}:o.content!==null?{kind:"streamed",size:t,content:o.content}:{kind:"loading"}}return e.isError?{kind:"error",message:e.errorMessage??"unknown error"}:e.content!==null?{kind:"inline",content:e.content}:{kind:"loading"}}class h extends Error{constructor(e,o){super("file_too_large");d(this,"size");d(this,"maxBytes");this.name="FileTooLargeError",this.size=e,this.maxBytes=o}}function R(r){if(!r.ok)throw r.error==="file_too_large"?new h(r.size??0,r.maxBytes):new Error(r.error??"file read failed");return{content:r.content??"",size:r.size??0}}function T(r,n=!0){const e=F(o=>o.client);return y({queryKey:p.fileRead(r),queryFn:async()=>{if(!e)throw new Error("not connected");const o=await e.connection.request("file_read_request",{path:r});return R(o)},enabled:!!e&&!!r&&n})}function M(r){const{enabled:n,download:e,decode:o}=r;return{isLoading:n&&(e.isLoading||e.hasObjectUrl&&o.isLoading),isError:e.isError||o.isError,error:e.isError?e.error:o.error,data:o.data}}function C(r,n=!0){var t;const e=x(r,n),o=(t=e.data)==null?void 0:t.objectUrl,a=y({queryKey:p.fileText(r,o??null),queryFn:async()=>({content:await(await fetch(o)).text()}),enabled:n&&!!o});return M({enabled:n,download:{isLoading:e.isLoading,isError:e.isError,error:e.error,hasObjectUrl:!!o},decode:{isLoading:a.isLoading,isError:a.isError,error:a.error,data:a.data}})}const E=30*1024*1024;function Y(r,n=!0){var c,f,g,m;const e=T(r,n),o=e.error instanceof h?e.error:null,a=o!==null&&o.size<=E,t=C(r,n&&a),[i,k]=u.useState(!1),s=x(r,n&&i),l=D({maxDisplayBytes:E,inline:{isLoading:e.isLoading,isError:e.isError,tooLarge:o?{size:o.size}:null,errorMessage:e.error instanceof Error?e.error.message:null,content:((c=e.data)==null?void 0:c.content)??null},streamed:{isLoading:t.isLoading,isError:t.isError,errorMessage:t.error instanceof Error?t.error.message:null,content:((f=t.data)==null?void 0:f.content)??null},download:{requested:i,isLoading:s.isLoading,objectUrl:((g=s.data)==null?void 0:g.objectUrl)??null,fileName:((m=s.data)==null?void 0:m.fileName)??null}});return l.kind==="too-large"?{...l,requestDownload:()=>k(!0)}:l}const N="_wrap_1feu3_1",v={wrap:N},L=new Map;function K(r){const[n,e]=u.useState(null);return u.useEffect(()=>{const o=z.matchFilename(U,r);if(!o){e(null);return}const a=L.get(o.name);if(a){e(a);return}let t=!1;return e(null),o.load().then(i=>{L.set(o.name,i),t||e(i)}),()=>{t=!0}},[r]),n?[n]:[]}function I({path:r,content:n}){const e=K(r),o=[S.lineWrapping,_(),...e];return w.jsx("div",{className:v.wrap,children:w.jsx(b,{value:n,theme:B,extensions:o,editable:!1,readOnly:!0,basicSetup:{highlightActiveLine:!1,foldGutter:!1,searchKeymap:!1},height:"100%"})})}export{I as C,Y as u};
1
+ var j=Object.defineProperty;var q=(r,n,e)=>n in r?j(r,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[n]=e;var d=(r,n,e)=>q(r,typeof n!="symbol"?n+"":n,e);import{r as u,j as w}from"./vendor-react-DQUAl2K8.js";import{u as y}from"./vendor-query-i7fr__Xm.js";import{u as F,r as p}from"./index-Dsmi2Bzk.js";import{u as x}from"./use-file-download-Dg_DH4LU.js";import{Q as S,S as _,T as b,U as B,V as z,W as U}from"./vendor-DaF96HbP.js";function D(r){const{maxDisplayBytes:n,inline:e,streamed:o,download:a}=r;if(e.isLoading)return{kind:"loading"};if(e.tooLarge){const{size:t}=e.tooLarge;return t>n?{kind:"too-large",size:t,maxDisplayBytes:n,downloading:a.requested&&a.isLoading,downloadUrl:a.objectUrl,downloadName:a.fileName}:o.isLoading?{kind:"streaming",size:t}:o.isError?{kind:"stream-error",size:t,message:o.errorMessage??"stream failed"}:o.content!==null?{kind:"streamed",size:t,content:o.content}:{kind:"loading"}}return e.isError?{kind:"error",message:e.errorMessage??"unknown error"}:e.content!==null?{kind:"inline",content:e.content}:{kind:"loading"}}class h extends Error{constructor(e,o){super("file_too_large");d(this,"size");d(this,"maxBytes");this.name="FileTooLargeError",this.size=e,this.maxBytes=o}}function R(r){if(!r.ok)throw r.error==="file_too_large"?new h(r.size??0,r.maxBytes):new Error(r.error??"file read failed");return{content:r.content??"",size:r.size??0}}function T(r,n=!0){const e=F(o=>o.client);return y({queryKey:p.fileRead(r),queryFn:async()=>{if(!e)throw new Error("not connected");const o=await e.connection.request("file_read_request",{path:r});return R(o)},enabled:!!e&&!!r&&n})}function M(r){const{enabled:n,download:e,decode:o}=r;return{isLoading:n&&(e.isLoading||e.hasObjectUrl&&o.isLoading),isError:e.isError||o.isError,error:e.isError?e.error:o.error,data:o.data}}function C(r,n=!0){var t;const e=x(r,n),o=(t=e.data)==null?void 0:t.objectUrl,a=y({queryKey:p.fileText(r,o??null),queryFn:async()=>({content:await(await fetch(o)).text()}),enabled:n&&!!o});return M({enabled:n,download:{isLoading:e.isLoading,isError:e.isError,error:e.error,hasObjectUrl:!!o},decode:{isLoading:a.isLoading,isError:a.isError,error:a.error,data:a.data}})}const E=30*1024*1024;function Y(r,n=!0){var c,f,g,m;const e=T(r,n),o=e.error instanceof h?e.error:null,a=o!==null&&o.size<=E,t=C(r,n&&a),[i,k]=u.useState(!1),s=x(r,n&&i),l=D({maxDisplayBytes:E,inline:{isLoading:e.isLoading,isError:e.isError,tooLarge:o?{size:o.size}:null,errorMessage:e.error instanceof Error?e.error.message:null,content:((c=e.data)==null?void 0:c.content)??null},streamed:{isLoading:t.isLoading,isError:t.isError,errorMessage:t.error instanceof Error?t.error.message:null,content:((f=t.data)==null?void 0:f.content)??null},download:{requested:i,isLoading:s.isLoading,objectUrl:((g=s.data)==null?void 0:g.objectUrl)??null,fileName:((m=s.data)==null?void 0:m.fileName)??null}});return l.kind==="too-large"?{...l,requestDownload:()=>k(!0)}:l}const N="_wrap_1feu3_1",v={wrap:N},L=new Map;function K(r){const[n,e]=u.useState(null);return u.useEffect(()=>{const o=z.matchFilename(U,r);if(!o){e(null);return}const a=L.get(o.name);if(a){e(a);return}let t=!1;return e(null),o.load().then(i=>{L.set(o.name,i),t||e(i)}),()=>{t=!0}},[r]),n?[n]:[]}function I({path:r,content:n}){const e=K(r),o=[S.lineWrapping,_(),...e];return w.jsx("div",{className:v.wrap,children:w.jsx(b,{value:n,theme:B,extensions:o,editable:!1,readOnly:!0,basicSetup:{highlightActiveLine:!1,foldGutter:!1,searchKeymap:!1},height:"100%"})})}export{I as C,Y as u};
@@ -1 +1 @@
1
- import{r as u,j as s}from"./vendor-react-DQUAl2K8.js";import{N as v}from"./vendor-DaF96HbP.js";import{u as j,r as d,L as w,a as E,e as D,V as K,P as N,B as x,E as l,S as y}from"./index-T-iCQirw.js";import{u as k,a as q}from"./vendor-query-i7fr__Xm.js";import{u as z}from"./use-file-watch-RCm9-VVB.js";import{D as S}from"./DiffView-D1TsZBGe.js";import"./vendor-icons-K8oF_80Q.js";import"./vendor-overlays-ar75LZPp.js";import"./vendor-dnd-CayJj8TC.js";function b(e,t,r,i=!0){const a=j(n=>n.client);return k({queryKey:d.fileDiff(e,t,r),queryFn:async()=>{if(!a)throw new Error("not connected");return{patch:(await a.connection.request("file_diff_request",{path:e,cwd:t,staged:r})).patch??""}},enabled:!!a&&!!e&&!!t&&i})}function B(e,t,r){const i=q(),a=w.has(r)?E(e,t):null,{changedAt:n}=z(a);u.useEffect(()=>{n!==null&&(i.invalidateQueries({queryKey:d.fileRead(e)}),i.invalidateQueries({queryKey:d.fileDownload(e)}),i.invalidateQueries({queryKey:d.fileDiffByPath(e)}))},[n,e,i])}const C="_header_10rse_1",F="_path_10rse_11",V="_size_10rse_18",L="_viewToggle_10rse_23",P="_body_10rse_28",c={header:C,path:F,size:V,viewToggle:L,body:P};function g(e){return"path"in e}function Q(e){return"staged"in e}function J({tab:e}){var m;const t=e.kind==="diff",r=e.data,i=g(r)?r.path:"",a=g(r)&&Q(r)?r.staged:!1,[n,h]=u.useState(t?"diff":"file"),f=e.workspaceCwd||"~",p=D(i);B(i,f,p);const o=b(i,f,a,n==="diff"),_=K[p];return s.jsxs(N,{children:[s.jsxs("div",{className:c.header,children:[s.jsx("span",{className:c.path,children:i}),s.jsx("span",{className:c.size,children:n==="diff"?a?"staged":"unstaged":null}),s.jsxs("div",{className:c.viewToggle,children:[s.jsx(x,{size:"xs",variant:n==="file"?"default":"ghost",onClick:()=>h("file"),children:"File"}),s.jsx(x,{size:"xs",variant:n==="diff"?"default":"ghost",onClick:()=>h("diff"),children:"Diff"})]})]}),s.jsx("div",{className:v(c.body,"file-body"),children:n==="file"?s.jsx(u.Suspense,{fallback:s.jsxs(l,{children:[s.jsx(y,{size:"sm"})," Loading..."]}),children:s.jsx(_,{path:i,workspaceCwd:f})}):o.isLoading?s.jsxs(l,{children:[s.jsx(y,{size:"sm"})," Loading diff..."]}):o.isError?s.jsxs(l,{children:["Error: ",o.error instanceof Error?o.error.message:"unknown error"]}):(m=o.data)!=null&&m.patch?s.jsx(S,{patch:o.data.patch}):s.jsx(l,{style:{padding:"var(--pi-spacing-30)"},children:"No changes (file matches HEAD)"})})]})}export{J as FilePanel};
1
+ import{r as u,j as s}from"./vendor-react-DQUAl2K8.js";import{N as v}from"./vendor-DaF96HbP.js";import{u as j,r as d,L as w,a as E,e as D,V as K,P as N,B as x,E as l,S as y}from"./index-Dsmi2Bzk.js";import{u as k,a as q}from"./vendor-query-i7fr__Xm.js";import{u as z}from"./use-file-watch-C7pdkH79.js";import{D as S}from"./DiffView-D1TsZBGe.js";import"./vendor-icons-K8oF_80Q.js";import"./vendor-overlays-3MkedLFU.js";import"./vendor-dnd-CayJj8TC.js";function b(e,t,r,i=!0){const a=j(n=>n.client);return k({queryKey:d.fileDiff(e,t,r),queryFn:async()=>{if(!a)throw new Error("not connected");return{patch:(await a.connection.request("file_diff_request",{path:e,cwd:t,staged:r})).patch??""}},enabled:!!a&&!!e&&!!t&&i})}function B(e,t,r){const i=q(),a=w.has(r)?E(e,t):null,{changedAt:n}=z(a);u.useEffect(()=>{n!==null&&(i.invalidateQueries({queryKey:d.fileRead(e)}),i.invalidateQueries({queryKey:d.fileDownload(e)}),i.invalidateQueries({queryKey:d.fileDiffByPath(e)}))},[n,e,i])}const C="_header_10rse_1",F="_path_10rse_11",V="_size_10rse_18",L="_viewToggle_10rse_23",P="_body_10rse_28",c={header:C,path:F,size:V,viewToggle:L,body:P};function g(e){return"path"in e}function Q(e){return"staged"in e}function J({tab:e}){var m;const t=e.kind==="diff",r=e.data,i=g(r)?r.path:"",a=g(r)&&Q(r)?r.staged:!1,[n,h]=u.useState(t?"diff":"file"),f=e.workspaceCwd||"~",p=D(i);B(i,f,p);const o=b(i,f,a,n==="diff"),_=K[p];return s.jsxs(N,{children:[s.jsxs("div",{className:c.header,children:[s.jsx("span",{className:c.path,children:i}),s.jsx("span",{className:c.size,children:n==="diff"?a?"staged":"unstaged":null}),s.jsxs("div",{className:c.viewToggle,children:[s.jsx(x,{size:"xs",variant:n==="file"?"default":"ghost",onClick:()=>h("file"),children:"File"}),s.jsx(x,{size:"xs",variant:n==="diff"?"default":"ghost",onClick:()=>h("diff"),children:"Diff"})]})]}),s.jsx("div",{className:v(c.body,"file-body"),children:n==="file"?s.jsx(u.Suspense,{fallback:s.jsxs(l,{children:[s.jsx(y,{size:"sm"})," Loading..."]}),children:s.jsx(_,{path:i,workspaceCwd:f})}):o.isLoading?s.jsxs(l,{children:[s.jsx(y,{size:"sm"})," Loading diff..."]}):o.isError?s.jsxs(l,{children:["Error: ",o.error instanceof Error?o.error.message:"unknown error"]}):(m=o.data)!=null&&m.patch?s.jsx(S,{patch:o.data.patch}):s.jsx(l,{style:{padding:"var(--pi-spacing-30)"},children:"No changes (file matches HEAD)"})})]})}export{J as FilePanel};
@@ -1 +1 @@
1
- import{r as v,j as r}from"./vendor-react-DQUAl2K8.js";import{a as ie,u as ae}from"./vendor-query-i7fr__Xm.js";import{n as ce,a as G,c as le,d as X,u as F,o as ue,E as A,S as R,B as C,r as B,t as de}from"./index-T-iCQirw.js";import{S as fe}from"./Switch-1I6AMAC7.js";import{u as me,C as pe}from"./CodeView-Ll6fG3qP.js";import{p as he,S as ge}from"./href-resolution-mWbiAWb5.js";import"./vendor-DaF96HbP.js";import"./vendor-icons-K8oF_80Q.js";import"./vendor-overlays-ar75LZPp.js";import"./vendor-dnd-CayJj8TC.js";import"./use-file-download-hogFXJ1-.js";const I={maxCount:64,maxBytesPerAsset:2*1024*1024,maxBytesTotal:16*1024*1024};function K(s,t,e){return!(s>=I.maxCount||e>I.maxBytesPerAsset||t+e>I.maxBytesTotal)}function Y(s){return s===""||s.startsWith("#")?"unsupported":s.startsWith("//")||ge.test(s)?"external":null}function xe(s,t,e){return e!==null&&t===e?s:t}function J(s,t,e,n,i=null){const o=s.trim(),u=Y(o);if(u)return{kind:"skip",raw:s,reason:u};const a=he(o);let p;if(a.startsWith("/")?p=a:a==="~"||a.startsWith("~/")?p=i!==null?ce(a,i):null:p=G(a,t),!p)return{kind:"skip",raw:s,reason:"unsupported"};const h=le(p);return h!==e&&!h.startsWith(`${e}/`)?{kind:"skip",raw:s,reason:"outside-workspace"}:{kind:"local",raw:s,path:h,context:n}}const we={css:"text/css",js:"text/javascript",mjs:"text/javascript",html:"text/html",htm:"text/html",json:"application/json",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",ico:"image/x-icon",bmp:"image/bmp",avif:"image/avif",mp4:"video/mp4",webm:"video/webm",mov:"video/quicktime",m4v:"video/x-m4v",ogv:"video/ogg",mp3:"audio/mpeg",wav:"audio/wav",oga:"audio/ogg",ogg:"audio/ogg",m4a:"audio/mp4",woff:"font/woff",woff2:"font/woff2",ttf:"font/ttf",otf:"font/otf",eot:"application/vnd.ms-fontobject"};function _e(s){const t=s.lastIndexOf("/"),e=s.lastIndexOf(".");return e<=t?"application/octet-stream":we[s.slice(e+1).toLowerCase()]??"application/octet-stream"}function ve(s){let t="";for(let n=0;n<s.length;n+=32768)t+=String.fromCharCode(...s.subarray(n,n+32768));return btoa(t)}function q(s,t){return`data:${s};base64,${ve(t)}`}const z=/<([a-zA-Z][a-zA-Z0-9]*)((?:\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s"'=<>`]+))?)*)(\s*\/?>)/g,O=/([a-zA-Z_:][-a-zA-Z0-9_:.]*)\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'=<>`]+))/g;function ee(s){const t=new Map;O.lastIndex=0;let e;for(;e=O.exec(s);){const n=e[1].toLowerCase();t.has(n)||t.set(n,e[2]??e[3]??e[4]??"")}return t}function te(s,t){switch(s){case"link":{const e=t.get("rel")??"";return/(^|\s)stylesheet(\s|$)/i.test(e)?t.has("href")?[{name:"href",context:"style",multi:!1}]:[]:[]}case"script":return t.has("src")?[{name:"src",context:"script",multi:!1}]:[];case"img":{const e=[];return t.has("src")&&e.push({name:"src",context:"image",multi:!1}),t.has("srcset")&&e.push({name:"srcset",context:"image",multi:!0}),e}case"source":{const e=[];return t.has("src")&&e.push({name:"src",context:"media",multi:!1}),t.has("srcset")&&e.push({name:"srcset",context:"media",multi:!0}),e}case"video":{const e=[];return t.has("src")&&e.push({name:"src",context:"media",multi:!1}),t.has("poster")&&e.push({name:"poster",context:"media",multi:!1}),e}case"audio":return t.has("src")?[{name:"src",context:"media",multi:!1}]:[];default:return[]}}function se(s){return s.split(",").map(t=>t.trim()).filter(t=>t!=="").map(t=>{const e=t.search(/\s/);return e===-1?{url:t,descriptor:""}:{url:t.slice(0,e),descriptor:t.slice(e).trim()}})}function ye(s){return s.map(t=>t.descriptor?`${t.url} ${t.descriptor}`:t.url).join(", ")}function $(s,t,e){Y(t.trim())||s.has(t)||s.set(t,{raw:t,context:e})}function ke(s){const t=new Map;z.lastIndex=0;let e;for(;e=z.exec(s);){const n=e[1].toLowerCase(),i=ee(e[2]??"");for(const o of te(n,i)){const u=i.get(o.name)??"";if(o.multi)for(const a of se(u))$(t,a.url,o.context);else $(t,u,o.context)}}return[...t.values()]}function je(s,t){let e=!1;const n=se(s).map(i=>{const o=t[i.url];return o===void 0?i:(e=!0,{url:o,descriptor:i.descriptor})});return e?ye(n):null}function be(s,t){return Object.keys(t).length===0?s:(z.lastIndex=0,s.replace(z,(e,n,i,o)=>{const u=ee(i),a=te(n.toLowerCase(),u);if(a.length===0)return e;const p=new Map(a.map(d=>[d.name,d]));let h=!1;const E=i.replace(O,(d,f,l,w,y)=>{const _=p.get(f.toLowerCase());if(!_)return d;const g=l??w??y??"",b=_.multi?je(g,t):t[g]??null;return b===null?d:(h=!0,`${f}="${b}"`)});return h?`<${n}${E}${o}`:e}))}const P=/url\(\s*(?:"([^"]*)"|'([^']*)'|([^'")\s]*))\s*\)/gi,U=/@font-face\s*\{[^}]*\}/gi;function ne(s,t,e){return s??t??e??""}function Se(s){const t=[];U.lastIndex=0;let e;for(;e=U.exec(s);)t.push([e.index,e.index+e[0].length]);return t}function Ee(s){const t=Se(s),e=new Map;P.lastIndex=0;let n;for(;n=P.exec(s);){const i=ne(n[1],n[2],n[3]),o=t.some(([u,a])=>n.index>=u&&n.index<a)?"font":"image";$(e,i,o)}return[...e.values()]}function Le(s,t){return Object.keys(t).length===0?s:(P.lastIndex=0,s.replace(P,(e,n,i,o)=>{const u=t[ne(n,i,o)];return u===void 0?e:`url("${u}")`}))}const Ae=Object.freeze(["allow-scripts"]),Ce="https://pi-studio-preview.invalid/",Ne="default-src 'none'; img-src data:; style-src 'unsafe-inline' data:; script-src 'unsafe-inline' data:; font-src data:; media-src data:",Te=`<script>(function(){document.addEventListener("click",function(e){var a=e.target&&e.target.closest&&e.target.closest('a[href^="#"]');if(!a)return;var frag=a.getAttribute("href").slice(1);e.preventDefault();if(!frag){window.scrollTo(0,0);return;}var el=document.getElementById(frag)||document.getElementsByName(frag)[0];if(el)el.scrollIntoView();},true);})();<\/script>`,Re=/<head(\s[^>]*)?>/i,Be=/<html(\s[^>]*)?>/i,Me=/<base[\s/>]/i;function ze(s,t){const e=be(s,t.assets??{}),n=[];t.blockRemote&&n.push(`<meta http-equiv="Content-Security-Policy" content="${Ne}">`),Me.test(e)||(n.push(`<base href="${Ce}">`),n.push(Te));const i=n.join("");if(i==="")return e;const o=Re.exec(e);if(o){const a=o.index+o[0].length;return e.slice(0,a)+i+e.slice(a)}const u=Be.exec(e);if(u){const a=u.index+u[0].length;return e.slice(0,a)+`<head>${i}</head>`+e.slice(a)}return`<head>${i}</head>`+e}const V=6;async function W(s,t,e){let n=0;async function i(){for(;n<s.length;){const o=s[n];n+=1,await e(o)}}await Promise.all(Array.from({length:Math.min(t,s.length)},i))}function Q(s){const t=new Map;for(const e of s){const n=t.get(e.path);n?n.push(e):t.set(e.path,[e])}return t}async function Pe(s,t){const e={},n=[];let i=0,o=0,u=!1;const a=[];for(const d of s)d.kind==="skip"?n.push({raw:d.raw,reason:d.reason}):a.push(d);function p(d,f){for(const l of d)n.push({raw:l.raw,reason:f})}async function h(d,f){if(u){p(f,"over-cap");return}let l;try{l=await t.fetchBytes(d)}catch{p(f,"fetch-failed");return}if(!K(i,o,l.byteLength)){u=!0,p(f,"over-cap");return}if(i+=1,o+=l.byteLength,f[0].context!=="style"){const m=q(_e(d),l);for(const j of f)e[j.raw]=m;return}const w=new TextDecoder().decode(l),y=X(d),_=Ee(w).map(m=>J(m.raw,y,t.root,m.context,t.homeDir)),g=[];for(const m of _)m.kind==="skip"?n.push({raw:m.raw,reason:m.reason}):g.push(m);const b=Q(g);await W([...b.entries()],V,([m,j])=>h(m,j));const N={};for(const m of g){const j=e[m.raw];j!==void 0&&(N[m.raw]=j)}const L=Le(w,N),S=new TextEncoder().encode(L),k=S.byteLength-l.byteLength;if(k>0&&!K(i-1,o-l.byteLength,S.byteLength)){u=!0,p(f,"over-cap");return}o+=k;const T=q("text/css",S);for(const m of f)e[m.raw]=T}const E=Q(a);return await W([...E.entries()],V,([d,f])=>h(d,f)),{assets:e,skipped:n}}const Ie="_wrap_1et27_1",Oe="_toolbar_1et27_7",$e="_modeToggle_1et27_20",De="_controls_1et27_24",He="_switchLabel_1et27_29",Fe="_streamedNote_1et27_37",Ke="_skippedNote_1et27_45",qe="_skippedToggle_1et27_52",Ue="_skippedList_1et27_64",Ve="_body_1et27_69",We="_frame_1et27_73",Qe="_tooLarge_1et27_79",x={wrap:Ie,toolbar:Oe,modeToggle:$e,controls:De,switchLabel:He,streamedNote:Fe,skippedNote:Ke,skippedToggle:qe,skippedList:Ue,body:Ve,frame:We,tooLarge:Qe},Ze=Ae.join(" "),Z=Object.freeze({}),Ge=Object.freeze([]),oe={external:"external","outside-workspace":"outside workspace",unsupported:"unsupported","over-cap":"over cap","fetch-failed":"not found"};function Xe(s){const t=new Map;for(const e of s){const n=oe[e.reason];t.set(n,(t.get(n)??0)+1)}return[...t.entries()].map(([e,n])=>`${n} ${e}`).join(", ")}function Ye(s){let t=2166136261;for(let e=0;e<s.length;e++)t^=s.charCodeAt(e),t=Math.imul(t,16777619);return(t>>>0).toString(16)}function M(s){return`${(s/(1024*1024)).toFixed(1)} MB`}function dt({path:s,workspaceCwd:t}){var D,H;const e=me(s),[n,i]=v.useState("preview"),[o,u]=v.useState(!1),[a,p]=v.useState(!1),h=ie(),E=F(c=>c.client),d=F(c=>c.daemon),f=ue(),l=e.kind==="inline"||e.kind==="streamed"?e.content:null,w=v.useMemo(()=>{const c=G(s,t);return c?X(c):null},[s,t]),y=v.useMemo(()=>w!==null?xe(w,t,f):null,[w,t,f]),_=v.useMemo(()=>l===null||w===null||y===null?[]:ke(l).map(c=>J(c.raw,w,y,c.context,f)),[l,w,y,f]),g=v.useMemo(()=>_.some(c=>c.kind==="local"),[_]),b=v.useMemo(()=>_.flatMap(c=>c.kind==="skip"?[{raw:c.raw,reason:c.reason}]:[]),[_]),N=v.useMemo(()=>g&&l!==null?Ye(l):"",[l,g]),L=ae({queryKey:B.htmlAssetBundle(s,N),queryFn:()=>y===null?Promise.resolve({assets:{},skipped:[]}):Pe(_,{root:y,homeDir:f,fetchBytes:async re=>{if(!E||!d)throw new Error("not connected");return(await de(d).download(re)).bytes}}),enabled:g,staleTime:1/0}),S=g?((D=L.data)==null?void 0:D.assets)??Z:Z,k=g?((H=L.data)==null?void 0:H.skipped)??Ge:b,T=v.useMemo(()=>l===null?null:ze(l,{assets:S,blockRemote:o}),[l,S,o]);function m(){h.invalidateQueries({queryKey:B.fileRead(s)}),h.invalidateQueries({queryKey:B.fileDownload(s)}),h.invalidateQueries({queryKey:B.htmlAssetBundleByPath(s)})}switch(e.kind){case"loading":return r.jsxs(A,{children:[r.jsx(R,{size:"sm"})," Loading..."]});case"streaming":return r.jsxs(A,{children:[r.jsx(R,{size:"sm"})," Streaming ",M(e.size)," file..."]});case"stream-error":case"error":return r.jsxs(A,{children:["Error: ",e.message]});case"too-large":{const c=s.split("/").pop()||s;return r.jsx(A,{children:r.jsxs("div",{className:x.tooLarge,children:[r.jsxs("div",{children:[M(e.size)," — too large to display (display ceiling is"," ",M(e.maxDisplayBytes),")."]}),e.downloading?r.jsx(R,{size:"sm"}):e.downloadUrl?r.jsx("a",{href:e.downloadUrl,download:e.downloadName||c,children:r.jsx(C,{size:"sm",children:"Save file"})}):r.jsx(C,{size:"sm",onClick:()=>e.requestDownload(),children:"Download"})]})})}}if(l===null||T===null)return null;if(g&&L.data===void 0)return r.jsxs(A,{children:[r.jsx(R,{size:"sm"})," Loading assets..."]});const j=s.split("/").pop()||s;return r.jsxs("div",{className:x.wrap,children:[r.jsxs("div",{className:x.toolbar,children:[r.jsxs("div",{className:x.modeToggle,children:[r.jsx(C,{size:"xs",variant:n==="preview"?"default":"ghost",onClick:()=>i("preview"),children:"Preview"}),r.jsx(C,{size:"xs",variant:n==="source"?"default":"ghost",onClick:()=>i("source"),children:"Source"})]}),r.jsxs("div",{className:x.controls,children:[r.jsxs("label",{className:x.switchLabel,children:[r.jsx(fe,{checked:o,onCheckedChange:u,"aria-label":"Block remote resources"}),"Block remote resources"]}),r.jsx(C,{size:"xs",variant:"ghost",onClick:m,children:"Reload"})]})]}),e.kind==="streamed"?r.jsxs("div",{className:x.streamedNote,children:[M(e.size)," file streamed"]}):null,k.length>0?r.jsxs("div",{className:x.skippedNote,children:[r.jsxs("button",{type:"button",className:x.skippedToggle,onClick:()=>p(c=>!c),children:[k.length," reference",k.length===1?"":"s"," not inlined (",Xe(k),")"]}),a?r.jsx("ul",{className:x.skippedList,children:k.map(c=>r.jsxs("li",{children:[c.raw," — ",oe[c.reason]]},c.raw))}):null]}):null,r.jsxs("div",{className:x.body,children:[r.jsx("iframe",{sandbox:Ze,srcDoc:T,referrerPolicy:"no-referrer",allow:"",className:x.frame,style:n==="preview"?void 0:{display:"none"},title:j}),n==="source"?r.jsx(pe,{path:s,content:l}):null]})]})}export{dt as HtmlViewer};
1
+ import{r as v,j as r}from"./vendor-react-DQUAl2K8.js";import{a as ie,u as ae}from"./vendor-query-i7fr__Xm.js";import{n as ce,a as G,c as le,d as X,u as F,o as ue,E as A,S as R,B as C,r as B,t as de}from"./index-Dsmi2Bzk.js";import{S as fe}from"./Switch-1I6AMAC7.js";import{u as me,C as pe}from"./CodeView-_q2A5_u4.js";import{p as he,S as ge}from"./href-resolution-BRKhhrZR.js";import"./vendor-DaF96HbP.js";import"./vendor-icons-K8oF_80Q.js";import"./vendor-overlays-3MkedLFU.js";import"./vendor-dnd-CayJj8TC.js";import"./use-file-download-Dg_DH4LU.js";const I={maxCount:64,maxBytesPerAsset:2*1024*1024,maxBytesTotal:16*1024*1024};function K(s,t,e){return!(s>=I.maxCount||e>I.maxBytesPerAsset||t+e>I.maxBytesTotal)}function Y(s){return s===""||s.startsWith("#")?"unsupported":s.startsWith("//")||ge.test(s)?"external":null}function xe(s,t,e){return e!==null&&t===e?s:t}function J(s,t,e,n,i=null){const o=s.trim(),u=Y(o);if(u)return{kind:"skip",raw:s,reason:u};const a=he(o);let p;if(a.startsWith("/")?p=a:a==="~"||a.startsWith("~/")?p=i!==null?ce(a,i):null:p=G(a,t),!p)return{kind:"skip",raw:s,reason:"unsupported"};const h=le(p);return h!==e&&!h.startsWith(`${e}/`)?{kind:"skip",raw:s,reason:"outside-workspace"}:{kind:"local",raw:s,path:h,context:n}}const we={css:"text/css",js:"text/javascript",mjs:"text/javascript",html:"text/html",htm:"text/html",json:"application/json",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",ico:"image/x-icon",bmp:"image/bmp",avif:"image/avif",mp4:"video/mp4",webm:"video/webm",mov:"video/quicktime",m4v:"video/x-m4v",ogv:"video/ogg",mp3:"audio/mpeg",wav:"audio/wav",oga:"audio/ogg",ogg:"audio/ogg",m4a:"audio/mp4",woff:"font/woff",woff2:"font/woff2",ttf:"font/ttf",otf:"font/otf",eot:"application/vnd.ms-fontobject"};function _e(s){const t=s.lastIndexOf("/"),e=s.lastIndexOf(".");return e<=t?"application/octet-stream":we[s.slice(e+1).toLowerCase()]??"application/octet-stream"}function ve(s){let t="";for(let n=0;n<s.length;n+=32768)t+=String.fromCharCode(...s.subarray(n,n+32768));return btoa(t)}function q(s,t){return`data:${s};base64,${ve(t)}`}const z=/<([a-zA-Z][a-zA-Z0-9]*)((?:\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s"'=<>`]+))?)*)(\s*\/?>)/g,O=/([a-zA-Z_:][-a-zA-Z0-9_:.]*)\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'=<>`]+))/g;function ee(s){const t=new Map;O.lastIndex=0;let e;for(;e=O.exec(s);){const n=e[1].toLowerCase();t.has(n)||t.set(n,e[2]??e[3]??e[4]??"")}return t}function te(s,t){switch(s){case"link":{const e=t.get("rel")??"";return/(^|\s)stylesheet(\s|$)/i.test(e)?t.has("href")?[{name:"href",context:"style",multi:!1}]:[]:[]}case"script":return t.has("src")?[{name:"src",context:"script",multi:!1}]:[];case"img":{const e=[];return t.has("src")&&e.push({name:"src",context:"image",multi:!1}),t.has("srcset")&&e.push({name:"srcset",context:"image",multi:!0}),e}case"source":{const e=[];return t.has("src")&&e.push({name:"src",context:"media",multi:!1}),t.has("srcset")&&e.push({name:"srcset",context:"media",multi:!0}),e}case"video":{const e=[];return t.has("src")&&e.push({name:"src",context:"media",multi:!1}),t.has("poster")&&e.push({name:"poster",context:"media",multi:!1}),e}case"audio":return t.has("src")?[{name:"src",context:"media",multi:!1}]:[];default:return[]}}function se(s){return s.split(",").map(t=>t.trim()).filter(t=>t!=="").map(t=>{const e=t.search(/\s/);return e===-1?{url:t,descriptor:""}:{url:t.slice(0,e),descriptor:t.slice(e).trim()}})}function ye(s){return s.map(t=>t.descriptor?`${t.url} ${t.descriptor}`:t.url).join(", ")}function $(s,t,e){Y(t.trim())||s.has(t)||s.set(t,{raw:t,context:e})}function ke(s){const t=new Map;z.lastIndex=0;let e;for(;e=z.exec(s);){const n=e[1].toLowerCase(),i=ee(e[2]??"");for(const o of te(n,i)){const u=i.get(o.name)??"";if(o.multi)for(const a of se(u))$(t,a.url,o.context);else $(t,u,o.context)}}return[...t.values()]}function je(s,t){let e=!1;const n=se(s).map(i=>{const o=t[i.url];return o===void 0?i:(e=!0,{url:o,descriptor:i.descriptor})});return e?ye(n):null}function be(s,t){return Object.keys(t).length===0?s:(z.lastIndex=0,s.replace(z,(e,n,i,o)=>{const u=ee(i),a=te(n.toLowerCase(),u);if(a.length===0)return e;const p=new Map(a.map(d=>[d.name,d]));let h=!1;const E=i.replace(O,(d,f,l,w,y)=>{const _=p.get(f.toLowerCase());if(!_)return d;const g=l??w??y??"",b=_.multi?je(g,t):t[g]??null;return b===null?d:(h=!0,`${f}="${b}"`)});return h?`<${n}${E}${o}`:e}))}const P=/url\(\s*(?:"([^"]*)"|'([^']*)'|([^'")\s]*))\s*\)/gi,U=/@font-face\s*\{[^}]*\}/gi;function ne(s,t,e){return s??t??e??""}function Se(s){const t=[];U.lastIndex=0;let e;for(;e=U.exec(s);)t.push([e.index,e.index+e[0].length]);return t}function Ee(s){const t=Se(s),e=new Map;P.lastIndex=0;let n;for(;n=P.exec(s);){const i=ne(n[1],n[2],n[3]),o=t.some(([u,a])=>n.index>=u&&n.index<a)?"font":"image";$(e,i,o)}return[...e.values()]}function Le(s,t){return Object.keys(t).length===0?s:(P.lastIndex=0,s.replace(P,(e,n,i,o)=>{const u=t[ne(n,i,o)];return u===void 0?e:`url("${u}")`}))}const Ae=Object.freeze(["allow-scripts"]),Ce="https://pi-studio-preview.invalid/",Ne="default-src 'none'; img-src data:; style-src 'unsafe-inline' data:; script-src 'unsafe-inline' data:; font-src data:; media-src data:",Te=`<script>(function(){document.addEventListener("click",function(e){var a=e.target&&e.target.closest&&e.target.closest('a[href^="#"]');if(!a)return;var frag=a.getAttribute("href").slice(1);e.preventDefault();if(!frag){window.scrollTo(0,0);return;}var el=document.getElementById(frag)||document.getElementsByName(frag)[0];if(el)el.scrollIntoView();},true);})();<\/script>`,Re=/<head(\s[^>]*)?>/i,Be=/<html(\s[^>]*)?>/i,Me=/<base[\s/>]/i;function ze(s,t){const e=be(s,t.assets??{}),n=[];t.blockRemote&&n.push(`<meta http-equiv="Content-Security-Policy" content="${Ne}">`),Me.test(e)||(n.push(`<base href="${Ce}">`),n.push(Te));const i=n.join("");if(i==="")return e;const o=Re.exec(e);if(o){const a=o.index+o[0].length;return e.slice(0,a)+i+e.slice(a)}const u=Be.exec(e);if(u){const a=u.index+u[0].length;return e.slice(0,a)+`<head>${i}</head>`+e.slice(a)}return`<head>${i}</head>`+e}const V=6;async function W(s,t,e){let n=0;async function i(){for(;n<s.length;){const o=s[n];n+=1,await e(o)}}await Promise.all(Array.from({length:Math.min(t,s.length)},i))}function Q(s){const t=new Map;for(const e of s){const n=t.get(e.path);n?n.push(e):t.set(e.path,[e])}return t}async function Pe(s,t){const e={},n=[];let i=0,o=0,u=!1;const a=[];for(const d of s)d.kind==="skip"?n.push({raw:d.raw,reason:d.reason}):a.push(d);function p(d,f){for(const l of d)n.push({raw:l.raw,reason:f})}async function h(d,f){if(u){p(f,"over-cap");return}let l;try{l=await t.fetchBytes(d)}catch{p(f,"fetch-failed");return}if(!K(i,o,l.byteLength)){u=!0,p(f,"over-cap");return}if(i+=1,o+=l.byteLength,f[0].context!=="style"){const m=q(_e(d),l);for(const j of f)e[j.raw]=m;return}const w=new TextDecoder().decode(l),y=X(d),_=Ee(w).map(m=>J(m.raw,y,t.root,m.context,t.homeDir)),g=[];for(const m of _)m.kind==="skip"?n.push({raw:m.raw,reason:m.reason}):g.push(m);const b=Q(g);await W([...b.entries()],V,([m,j])=>h(m,j));const N={};for(const m of g){const j=e[m.raw];j!==void 0&&(N[m.raw]=j)}const L=Le(w,N),S=new TextEncoder().encode(L),k=S.byteLength-l.byteLength;if(k>0&&!K(i-1,o-l.byteLength,S.byteLength)){u=!0,p(f,"over-cap");return}o+=k;const T=q("text/css",S);for(const m of f)e[m.raw]=T}const E=Q(a);return await W([...E.entries()],V,([d,f])=>h(d,f)),{assets:e,skipped:n}}const Ie="_wrap_1et27_1",Oe="_toolbar_1et27_7",$e="_modeToggle_1et27_20",De="_controls_1et27_24",He="_switchLabel_1et27_29",Fe="_streamedNote_1et27_37",Ke="_skippedNote_1et27_45",qe="_skippedToggle_1et27_52",Ue="_skippedList_1et27_64",Ve="_body_1et27_69",We="_frame_1et27_73",Qe="_tooLarge_1et27_79",x={wrap:Ie,toolbar:Oe,modeToggle:$e,controls:De,switchLabel:He,streamedNote:Fe,skippedNote:Ke,skippedToggle:qe,skippedList:Ue,body:Ve,frame:We,tooLarge:Qe},Ze=Ae.join(" "),Z=Object.freeze({}),Ge=Object.freeze([]),oe={external:"external","outside-workspace":"outside workspace",unsupported:"unsupported","over-cap":"over cap","fetch-failed":"not found"};function Xe(s){const t=new Map;for(const e of s){const n=oe[e.reason];t.set(n,(t.get(n)??0)+1)}return[...t.entries()].map(([e,n])=>`${n} ${e}`).join(", ")}function Ye(s){let t=2166136261;for(let e=0;e<s.length;e++)t^=s.charCodeAt(e),t=Math.imul(t,16777619);return(t>>>0).toString(16)}function M(s){return`${(s/(1024*1024)).toFixed(1)} MB`}function dt({path:s,workspaceCwd:t}){var D,H;const e=me(s),[n,i]=v.useState("preview"),[o,u]=v.useState(!1),[a,p]=v.useState(!1),h=ie(),E=F(c=>c.client),d=F(c=>c.daemon),f=ue(),l=e.kind==="inline"||e.kind==="streamed"?e.content:null,w=v.useMemo(()=>{const c=G(s,t);return c?X(c):null},[s,t]),y=v.useMemo(()=>w!==null?xe(w,t,f):null,[w,t,f]),_=v.useMemo(()=>l===null||w===null||y===null?[]:ke(l).map(c=>J(c.raw,w,y,c.context,f)),[l,w,y,f]),g=v.useMemo(()=>_.some(c=>c.kind==="local"),[_]),b=v.useMemo(()=>_.flatMap(c=>c.kind==="skip"?[{raw:c.raw,reason:c.reason}]:[]),[_]),N=v.useMemo(()=>g&&l!==null?Ye(l):"",[l,g]),L=ae({queryKey:B.htmlAssetBundle(s,N),queryFn:()=>y===null?Promise.resolve({assets:{},skipped:[]}):Pe(_,{root:y,homeDir:f,fetchBytes:async re=>{if(!E||!d)throw new Error("not connected");return(await de(d).download(re)).bytes}}),enabled:g,staleTime:1/0}),S=g?((D=L.data)==null?void 0:D.assets)??Z:Z,k=g?((H=L.data)==null?void 0:H.skipped)??Ge:b,T=v.useMemo(()=>l===null?null:ze(l,{assets:S,blockRemote:o}),[l,S,o]);function m(){h.invalidateQueries({queryKey:B.fileRead(s)}),h.invalidateQueries({queryKey:B.fileDownload(s)}),h.invalidateQueries({queryKey:B.htmlAssetBundleByPath(s)})}switch(e.kind){case"loading":return r.jsxs(A,{children:[r.jsx(R,{size:"sm"})," Loading..."]});case"streaming":return r.jsxs(A,{children:[r.jsx(R,{size:"sm"})," Streaming ",M(e.size)," file..."]});case"stream-error":case"error":return r.jsxs(A,{children:["Error: ",e.message]});case"too-large":{const c=s.split("/").pop()||s;return r.jsx(A,{children:r.jsxs("div",{className:x.tooLarge,children:[r.jsxs("div",{children:[M(e.size)," — too large to display (display ceiling is"," ",M(e.maxDisplayBytes),")."]}),e.downloading?r.jsx(R,{size:"sm"}):e.downloadUrl?r.jsx("a",{href:e.downloadUrl,download:e.downloadName||c,children:r.jsx(C,{size:"sm",children:"Save file"})}):r.jsx(C,{size:"sm",onClick:()=>e.requestDownload(),children:"Download"})]})})}}if(l===null||T===null)return null;if(g&&L.data===void 0)return r.jsxs(A,{children:[r.jsx(R,{size:"sm"})," Loading assets..."]});const j=s.split("/").pop()||s;return r.jsxs("div",{className:x.wrap,children:[r.jsxs("div",{className:x.toolbar,children:[r.jsxs("div",{className:x.modeToggle,children:[r.jsx(C,{size:"xs",variant:n==="preview"?"default":"ghost",onClick:()=>i("preview"),children:"Preview"}),r.jsx(C,{size:"xs",variant:n==="source"?"default":"ghost",onClick:()=>i("source"),children:"Source"})]}),r.jsxs("div",{className:x.controls,children:[r.jsxs("label",{className:x.switchLabel,children:[r.jsx(fe,{checked:o,onCheckedChange:u,"aria-label":"Block remote resources"}),"Block remote resources"]}),r.jsx(C,{size:"xs",variant:"ghost",onClick:m,children:"Reload"})]})]}),e.kind==="streamed"?r.jsxs("div",{className:x.streamedNote,children:[M(e.size)," file streamed"]}):null,k.length>0?r.jsxs("div",{className:x.skippedNote,children:[r.jsxs("button",{type:"button",className:x.skippedToggle,onClick:()=>p(c=>!c),children:[k.length," reference",k.length===1?"":"s"," not inlined (",Xe(k),")"]}),a?r.jsx("ul",{className:x.skippedList,children:k.map(c=>r.jsxs("li",{children:[c.raw," — ",oe[c.reason]]},c.raw))}):null]}):null,r.jsxs("div",{className:x.body,children:[r.jsx("iframe",{sandbox:Ze,srcDoc:T,referrerPolicy:"no-referrer",allow:"",className:x.frame,style:n==="preview"?void 0:{display:"none"},title:j}),n==="source"?r.jsx(pe,{path:s,content:l}):null]})]})}export{dt as HtmlViewer};
@@ -1 +1 @@
1
- import{j as o}from"./vendor-react-DQUAl2K8.js";import{E as s,S as a}from"./index-T-iCQirw.js";import{u as t}from"./use-file-download-hogFXJ1-.js";import"./vendor-query-i7fr__Xm.js";import"./vendor-DaF96HbP.js";import"./vendor-icons-K8oF_80Q.js";import"./vendor-overlays-ar75LZPp.js";import"./vendor-dnd-CayJj8TC.js";const n="_wrap_1vzo5_1",m="_image_1vzo5_15",i={wrap:n,image:m};function x({path:e,workspaceCwd:p}){const r=t(e);return r.isLoading?o.jsxs(s,{children:[o.jsx(a,{size:"sm"})," Loading image..."]}):r.isError?o.jsxs(s,{children:["Error: ",r.error instanceof Error?r.error.message:"unknown error"]}):r.data?o.jsx("div",{className:i.wrap,children:o.jsx("img",{className:i.image,src:r.data.objectUrl,alt:e.split("/").pop()||e})}):null}export{x as ImageViewer};
1
+ import{j as o}from"./vendor-react-DQUAl2K8.js";import{E as s,S as a}from"./index-Dsmi2Bzk.js";import{u as t}from"./use-file-download-Dg_DH4LU.js";import"./vendor-query-i7fr__Xm.js";import"./vendor-DaF96HbP.js";import"./vendor-icons-K8oF_80Q.js";import"./vendor-overlays-3MkedLFU.js";import"./vendor-dnd-CayJj8TC.js";const n="_wrap_1vzo5_1",m="_image_1vzo5_15",i={wrap:n,image:m};function x({path:e,workspaceCwd:p}){const r=t(e);return r.isLoading?o.jsxs(s,{children:[o.jsx(a,{size:"sm"})," Loading image..."]}):r.isError?o.jsxs(s,{children:["Error: ",r.error instanceof Error?r.error.message:"unknown error"]}):r.data?o.jsx("div",{className:i.wrap,children:o.jsx("img",{className:i.image,src:r.data.objectUrl,alt:e.split("/").pop()||e})}):null}export{x as ImageViewer};
@@ -1 +1 @@
1
- import{r as x,j as e}from"./vendor-react-DQUAl2K8.js";import{a as j,d as g,B as i,E as a,S as c}from"./index-T-iCQirw.js";import{u as w,C as h}from"./CodeView-Ll6fG3qP.js";import{M as v}from"./markdown-D1SSpG2J.js";import"./vendor-query-i7fr__Xm.js";import"./vendor-DaF96HbP.js";import"./vendor-icons-K8oF_80Q.js";import"./vendor-overlays-ar75LZPp.js";import"./vendor-dnd-CayJj8TC.js";import"./use-file-download-hogFXJ1-.js";import"./vendor-highlight-Ddi_n-Jh.js";import"./vendor-markdown-DJUOT8ep.js";import"./href-resolution-mWbiAWb5.js";const _="_wrap_g5iym_1",f="_toolbar_g5iym_6",y="_rendered_g5iym_17",z="_streamedNote_g5iym_21",N="_tooLarge_g5iym_29",t={wrap:_,toolbar:f,rendered:y,streamedNote:z,tooLarge:N};function n(r){return`${(r/(1024*1024)).toFixed(1)} MB`}function q({path:r,workspaceCwd:d}){const s=w(r),[l,m]=x.useState("preview"),p=x.useMemo(()=>{const o=j(r,d);return o?g(o):null},[r,d]);switch(s.kind){case"loading":return e.jsxs(a,{children:[e.jsx(c,{size:"sm"})," Loading..."]});case"streaming":return e.jsxs(a,{children:[e.jsx(c,{size:"sm"})," Streaming ",n(s.size)," file..."]});case"stream-error":case"error":return e.jsxs(a,{children:["Error: ",s.message]});case"too-large":{const o=r.split("/").pop()||r;return e.jsx(a,{children:e.jsxs("div",{className:t.tooLarge,children:[e.jsxs("div",{children:[n(s.size)," — too large to display (display ceiling is"," ",n(s.maxDisplayBytes),")."]}),s.downloading?e.jsx(c,{size:"sm"}):s.downloadUrl?e.jsx("a",{href:s.downloadUrl,download:s.downloadName||o,children:e.jsx(i,{size:"sm",children:"Save file"})}):e.jsx(i,{size:"sm",onClick:()=>s.requestDownload(),children:"Download"})]})})}case"inline":case"streamed":{const o=s.content,u=s.kind==="streamed";return e.jsxs("div",{className:t.wrap,children:[e.jsxs("div",{className:t.toolbar,children:[e.jsx(i,{size:"xs",variant:l==="preview"?"default":"ghost",onClick:()=>m("preview"),children:"Preview"}),e.jsx(i,{size:"xs",variant:l==="source"?"default":"ghost",onClick:()=>m("source"),children:"Source"})]}),u?e.jsxs("div",{className:t.streamedNote,children:[n(s.size)," file streamed"]}):null,l==="preview"?e.jsx("div",{className:t.rendered,children:e.jsx(v,{text:o,assetBase:p,workspaceCwd:d})}):e.jsx(h,{path:r,content:o})]})}}}export{q as MarkdownFileViewer};
1
+ import{r as x,j as e}from"./vendor-react-DQUAl2K8.js";import{a as j,d as g,B as i,E as a,S as c}from"./index-Dsmi2Bzk.js";import{u as w,C as h}from"./CodeView-_q2A5_u4.js";import{M as v}from"./markdown-Cg0b167h.js";import"./vendor-query-i7fr__Xm.js";import"./vendor-DaF96HbP.js";import"./vendor-icons-K8oF_80Q.js";import"./vendor-overlays-3MkedLFU.js";import"./vendor-dnd-CayJj8TC.js";import"./use-file-download-Dg_DH4LU.js";import"./vendor-highlight-Ddi_n-Jh.js";import"./vendor-markdown-DJUOT8ep.js";import"./href-resolution-BRKhhrZR.js";const _="_wrap_g5iym_1",f="_toolbar_g5iym_6",y="_rendered_g5iym_17",z="_streamedNote_g5iym_21",N="_tooLarge_g5iym_29",t={wrap:_,toolbar:f,rendered:y,streamedNote:z,tooLarge:N};function n(r){return`${(r/(1024*1024)).toFixed(1)} MB`}function q({path:r,workspaceCwd:d}){const s=w(r),[l,m]=x.useState("preview"),p=x.useMemo(()=>{const o=j(r,d);return o?g(o):null},[r,d]);switch(s.kind){case"loading":return e.jsxs(a,{children:[e.jsx(c,{size:"sm"})," Loading..."]});case"streaming":return e.jsxs(a,{children:[e.jsx(c,{size:"sm"})," Streaming ",n(s.size)," file..."]});case"stream-error":case"error":return e.jsxs(a,{children:["Error: ",s.message]});case"too-large":{const o=r.split("/").pop()||r;return e.jsx(a,{children:e.jsxs("div",{className:t.tooLarge,children:[e.jsxs("div",{children:[n(s.size)," — too large to display (display ceiling is"," ",n(s.maxDisplayBytes),")."]}),s.downloading?e.jsx(c,{size:"sm"}):s.downloadUrl?e.jsx("a",{href:s.downloadUrl,download:s.downloadName||o,children:e.jsx(i,{size:"sm",children:"Save file"})}):e.jsx(i,{size:"sm",onClick:()=>s.requestDownload(),children:"Download"})]})})}case"inline":case"streamed":{const o=s.content,u=s.kind==="streamed";return e.jsxs("div",{className:t.wrap,children:[e.jsxs("div",{className:t.toolbar,children:[e.jsx(i,{size:"xs",variant:l==="preview"?"default":"ghost",onClick:()=>m("preview"),children:"Preview"}),e.jsx(i,{size:"xs",variant:l==="source"?"default":"ghost",onClick:()=>m("source"),children:"Source"})]}),u?e.jsxs("div",{className:t.streamedNote,children:[n(s.size)," file streamed"]}):null,l==="preview"?e.jsx("div",{className:t.rendered,children:e.jsx(v,{text:o,assetBase:p,workspaceCwd:d})}):e.jsx(h,{path:r,content:o})]})}}}export{q as MarkdownFileViewer};
@@ -1 +1 @@
1
- import{r as b,j as t}from"./vendor-react-DQUAl2K8.js";import{a as A}from"./vendor-query-i7fr__Xm.js";import{u as E,E as u,S as P,B as x,r as C}from"./index-T-iCQirw.js";import{S as v}from"./StatusBadge-BMKAPA9O.js";import{u as R}from"./use-provider-auth-list-Dlczxxvd.js";import{u as y}from"./provider-auth-store-9hsJ07X1.js";import"./vendor-DaF96HbP.js";import"./vendor-icons-K8oF_80Q.js";import"./vendor-overlays-ar75LZPp.js";import"./vendor-dnd-CayJj8TC.js";const N="env:";function I(e){var i;return e.configured==="unknown"?{label:"Unknown",variant:"warning"}:e.configured===!1?{label:"Not configured",variant:"muted"}:(i=e.configuredSource)!=null&&i.startsWith(N)?{label:`env: ${e.configuredSource.slice(N.length)}`,variant:"success"}:e.configuredType==="oauth"?{label:"OAuth",variant:"success"}:{label:"API key",variant:"success"}}function M(e){const i=e.configured===!0?"Re-login":"Log in";if(e.authTypes.length<=1){const s=e.authTypes[0]??"api_key";return[{authType:s,label:s==="oauth"?e.oauthLoginLabel??i:i}]}return e.authTypes.map(s=>s==="oauth"?{authType:s,label:e.oauthLoginLabel??"Log in with OAuth"}:{authType:s,label:"API key"})}const O="_list_vm1k7_1",T="_row_vm1k7_7",q="_rowMain_vm1k7_18",B="_name_vm1k7_25",z="_tag_vm1k7_33",F="_rowActions_vm1k7_37",U="_pendingNote_vm1k7_44",K="_note_vm1k7_49",Q="_errorState_vm1k7_55",a={list:O,row:T,rowMain:q,name:B,tag:z,rowActions:F,pendingNote:U,note:K,errorState:Q};function nn(){const e=E(n=>n.client),i=A(),s=y(n=>n.pendingLogin),j=y(n=>n.requestLogin),[d,g]=b.useState(null),[k,m]=b.useState({}),{data:r,isLoading:L,isError:S,error:h}=R();async function p(n){if(e&&window.confirm(`Log out of ${n.name}? Running agents keep working until their current credential use fails.`)){m(o=>({...o,[n.id]:""})),g(n.id);try{const o=await e.logoutProvider(n.id);m(l=>({...l,[n.id]:o.stillConfigured?"Removed the stored credential — still configured via an environment variable.":""})),await i.invalidateQueries({queryKey:C.providerAuthList()})}finally{g(null)}}}return L?t.jsxs(u,{children:[t.jsx(P,{size:"sm"})," Loading providers…"]}):S?t.jsx(u,{className:a.errorState,children:h instanceof Error?h.message:"Failed to load providers."}):!r||r.length===0?t.jsx(u,{children:"No providers available."}):t.jsx("div",{className:a.list,children:r.map(n=>{const o=I(n),l=M(n),f=(s==null?void 0:s.provider)===n.id,_=s!==null&&!f,w=k[n.id];return t.jsxs("div",{className:a.row,children:[t.jsxs("div",{className:a.rowMain,children:[t.jsx("span",{className:a.name,children:n.name}),n.oauthIsSubscription&&t.jsx(v,{label:"Subscription",variant:"muted",className:a.tag}),t.jsx(v,{label:o.label,variant:o.variant,className:a.tag})]}),t.jsx("div",{className:a.rowActions,children:f?t.jsx("span",{className:a.pendingNote,children:"Logging in…"}):t.jsxs(t.Fragment,{children:[l.map(c=>t.jsx(x,{size:"xs",variant:"secondary",disabled:_,onClick:()=>j(n.id,n.name,c.authType),children:c.label},c.authType)),n.configured!==!1&&t.jsx(x,{size:"xs",variant:"ghost",disabled:_||d===n.id,loading:d===n.id,onClick:()=>void p(n),children:"Log out"})]})}),w&&t.jsx("div",{className:a.note,children:w})]},n.id)})})}export{nn as ModelProvidersPanel};
1
+ import{r as b,j as t}from"./vendor-react-DQUAl2K8.js";import{a as A}from"./vendor-query-i7fr__Xm.js";import{u as E,E as u,S as P,B as x,r as C}from"./index-Dsmi2Bzk.js";import{S as v}from"./StatusBadge-BMKAPA9O.js";import{u as R}from"./use-provider-auth-list-CbjpDpe7.js";import{u as y}from"./provider-auth-store-9hsJ07X1.js";import"./vendor-DaF96HbP.js";import"./vendor-icons-K8oF_80Q.js";import"./vendor-overlays-3MkedLFU.js";import"./vendor-dnd-CayJj8TC.js";const N="env:";function I(e){var i;return e.configured==="unknown"?{label:"Unknown",variant:"warning"}:e.configured===!1?{label:"Not configured",variant:"muted"}:(i=e.configuredSource)!=null&&i.startsWith(N)?{label:`env: ${e.configuredSource.slice(N.length)}`,variant:"success"}:e.configuredType==="oauth"?{label:"OAuth",variant:"success"}:{label:"API key",variant:"success"}}function M(e){const i=e.configured===!0?"Re-login":"Log in";if(e.authTypes.length<=1){const s=e.authTypes[0]??"api_key";return[{authType:s,label:s==="oauth"?e.oauthLoginLabel??i:i}]}return e.authTypes.map(s=>s==="oauth"?{authType:s,label:e.oauthLoginLabel??"Log in with OAuth"}:{authType:s,label:"API key"})}const O="_list_vm1k7_1",T="_row_vm1k7_7",q="_rowMain_vm1k7_18",B="_name_vm1k7_25",z="_tag_vm1k7_33",F="_rowActions_vm1k7_37",U="_pendingNote_vm1k7_44",K="_note_vm1k7_49",Q="_errorState_vm1k7_55",a={list:O,row:T,rowMain:q,name:B,tag:z,rowActions:F,pendingNote:U,note:K,errorState:Q};function nn(){const e=E(n=>n.client),i=A(),s=y(n=>n.pendingLogin),j=y(n=>n.requestLogin),[d,g]=b.useState(null),[k,m]=b.useState({}),{data:r,isLoading:L,isError:S,error:h}=R();async function p(n){if(e&&window.confirm(`Log out of ${n.name}? Running agents keep working until their current credential use fails.`)){m(o=>({...o,[n.id]:""})),g(n.id);try{const o=await e.logoutProvider(n.id);m(l=>({...l,[n.id]:o.stillConfigured?"Removed the stored credential — still configured via an environment variable.":""})),await i.invalidateQueries({queryKey:C.providerAuthList()})}finally{g(null)}}}return L?t.jsxs(u,{children:[t.jsx(P,{size:"sm"})," Loading providers…"]}):S?t.jsx(u,{className:a.errorState,children:h instanceof Error?h.message:"Failed to load providers."}):!r||r.length===0?t.jsx(u,{children:"No providers available."}):t.jsx("div",{className:a.list,children:r.map(n=>{const o=I(n),l=M(n),f=(s==null?void 0:s.provider)===n.id,_=s!==null&&!f,w=k[n.id];return t.jsxs("div",{className:a.row,children:[t.jsxs("div",{className:a.rowMain,children:[t.jsx("span",{className:a.name,children:n.name}),n.oauthIsSubscription&&t.jsx(v,{label:"Subscription",variant:"muted",className:a.tag}),t.jsx(v,{label:o.label,variant:o.variant,className:a.tag})]}),t.jsx("div",{className:a.rowActions,children:f?t.jsx("span",{className:a.pendingNote,children:"Logging in…"}):t.jsxs(t.Fragment,{children:[l.map(c=>t.jsx(x,{size:"xs",variant:"secondary",disabled:_,onClick:()=>j(n.id,n.name,c.authType),children:c.label},c.authType)),n.configured!==!1&&t.jsx(x,{size:"xs",variant:"ghost",disabled:_||d===n.id,loading:d===n.id,onClick:()=>void p(n),children:"Log out"})]})}),w&&t.jsx("div",{className:a.note,children:w})]},n.id)})})}export{nn as ModelProvidersPanel};
@@ -1 +1 @@
1
- import{r as c,j as t}from"./vendor-react-DQUAl2K8.js";import{u as I,p as W,P as h,E as N,S as k,m as q,q as C,d as U,s as X,C as Y,v as z,h as D}from"./index-T-iCQirw.js";import{F as G}from"./vendor-molviewer-DeAF8d5d.js";import{S as v}from"./StatusBadge-BMKAPA9O.js";import{u as H}from"./use-file-download-hogFXJ1-.js";import{u as K}from"./use-file-watch-RCm9-VVB.js";import"./vendor-query-i7fr__Xm.js";import"./vendor-DaF96HbP.js";import"./vendor-icons-K8oF_80Q.js";import"./vendor-overlays-ar75LZPp.js";import"./vendor-dnd-CayJj8TC.js";function J(e,r){return!e||!r?null:{url:r,name:e.split("/").pop()||e}}function Q({changedAt:e,lastAppliedAt:r,modified:n}){return!(e===null||n||e===r)}const Z={empty_path:"Nothing to save.",too_large:"File is too large to save (over 5 MiB).",not_found:"The file no longer exists.",unreadable:"The file could not be read.",not_a_file:"That path is not a file."};async function ee(e,r,n){const a=await e.connection.request("file_write_request",{path:r,content:n});if(!a.ok){const l=a.error??"";throw new Error(Z[l]??l??"Failed to save")}}const re="mol2";function oe(e){const{sourcePath:r,monomers:n,attempt:a}=e,l=a>0?`_${a+1}`:"";return`${te(r)}_polymer_${n}${l}.${re}`}function te(e){return(e.split("/").pop()??"").replace(/\.[^.]+$/,"").trim()||"polymer"}const se={"--canvas":"var(--pi-color-surface0)","--well":"var(--pi-color-surface0)","--recess":"var(--pi-color-surface1)","--chrome":"var(--pi-color-surface1)","--control":"var(--pi-color-surface2)","--control-hover":"var(--pi-color-surface3)","--control-strong-hover":"var(--pi-color-surface4)","--border-control":"var(--pi-color-border)","--border-input":"var(--pi-color-border)","--popover":"var(--pi-color-surface1)","--popover-item-hover":"var(--pi-color-surface2)","--row-hover":"var(--pi-color-surface2)","--border-popover":"var(--pi-color-border)","--text-primary":"var(--pi-color-foreground)","--text-on-control":"var(--pi-color-foreground)"},ne="_wrap_tixu9_1",ae="_molViewer_tixu9_4",le="_badges_tixu9_8",g={wrap:ne,molViewer:ae,badges:le},ie=50;async function ce(e){const{client:r,upload:n,sourcePath:a,monomers:l,text:f}=e,p=U(a);let s=null,i="";for(let u=0;u<ie&&s===null;u+=1){i=oe({sourcePath:a,monomers:l,attempt:u});try{s=await X(r,p,i,"file")}catch(m){if(m instanceof Y&&m.code==="exists")continue;throw m}}if(s===null)throw new Error(`No free name for ${i} — too many builds in this folder.`);try{await n(p,new File([f],i,{type:"chemical/x-mol2"}))}catch(u){throw await z(r,s).catch(()=>{}),u}return s}function ue({path:e,workspaceCwd:r,tabId:n,isActive:a,onModifiedChange:l}){var T;const f=I(o=>o.client),{upload:p}=W(),s=H(e??"",!!e),{changedAt:i}=K(e),u=c.useRef(null),m=c.useRef(!1),[w,_]=c.useState(null),[E,A]=c.useState(!1),[S,x]=c.useState(null),[j,y]=c.useState(null),[M,P]=c.useState(null),b=c.useRef(null),R=((T=s.data)==null?void 0:T.objectUrl)??null,$=c.useMemo(()=>J(e,R),[e,R]);c.useEffect(()=>{Q({changedAt:i,lastAppliedAt:b.current,modified:E})&&(b.current=i,s.refetch())},[i,E,s.refetch]);const L=i!==null&&i!==b.current&&E;async function V(o){if(e){if(!f){x("Not connected — cannot save.");return}x(null);try{await ee(f,e,o.text()),o.saved()}catch(d){x(d instanceof Error?d.message:"Failed to save")}}}async function B(o){if(e){if(!f){y("Not connected — cannot save the polymer.");return}y(null),P(null);try{const d=await ce({client:f,upload:p,sourcePath:e,monomers:o.monomers,text:o.text()});o.report.clashes>0&&P(`${o.report.clashes} close contacts — relax the geometry before simulating`);const O=q.getState().paneOfTab(r,n);C(d,r,O??void 0)}catch(d){y(d instanceof Error?d.message:"Failed to save the polymer")}}}const F=(s.isError?s.error instanceof Error?s.error.message:"download failed":null)??(w==null?void 0:w.message)??null;return e&&s.isPending?t.jsx(h,{children:t.jsxs(N,{children:[t.jsx(k,{size:"sm"})," Loading..."]})}):F?t.jsx(h,{children:t.jsxs(N,{children:["Error: ",F]})}):t.jsxs(h,{className:g.wrap,"data-molecule-active":a?"true":"false",children:[t.jsxs("div",{className:g.badges,children:[L&&t.jsx(v,{label:"File changed on disk",variant:"muted"}),S&&t.jsx(v,{label:`Save failed: ${S}`,variant:"error"}),j&&t.jsx(v,{label:`Polymer build: ${j}`,variant:"error"}),M&&t.jsx(v,{label:M,variant:"warning"})]}),t.jsx(G,{ref:u,className:g.molViewer,theme:se,source:$,sourceMode:m.current?"update":"replace",onLoad:()=>{m.current=!0,_(null)},onLoadError:o=>_(o.error),onModifiedChange:o=>{A(o),l==null||l(o)},onSave:e?V:void 0,onPolymerBuild:e?B:void 0})]})}function _e({tab:e}){const{path:r}=e.data,n=D(e.id);return t.jsx(h,{children:t.jsx(ue,{path:r,workspaceCwd:e.workspaceCwd,tabId:e.id,isActive:n})})}export{_e as MoleculeViewerPanel};
1
+ import{r as c,j as t}from"./vendor-react-DQUAl2K8.js";import{u as I,p as W,P as h,E as N,S as k,m as q,q as C,d as U,s as X,C as Y,v as z,h as D}from"./index-Dsmi2Bzk.js";import{F as G}from"./vendor-molviewer-DeAF8d5d.js";import{S as v}from"./StatusBadge-BMKAPA9O.js";import{u as H}from"./use-file-download-Dg_DH4LU.js";import{u as K}from"./use-file-watch-C7pdkH79.js";import"./vendor-query-i7fr__Xm.js";import"./vendor-DaF96HbP.js";import"./vendor-icons-K8oF_80Q.js";import"./vendor-overlays-3MkedLFU.js";import"./vendor-dnd-CayJj8TC.js";function J(e,r){return!e||!r?null:{url:r,name:e.split("/").pop()||e}}function Q({changedAt:e,lastAppliedAt:r,modified:n}){return!(e===null||n||e===r)}const Z={empty_path:"Nothing to save.",too_large:"File is too large to save (over 5 MiB).",not_found:"The file no longer exists.",unreadable:"The file could not be read.",not_a_file:"That path is not a file."};async function ee(e,r,n){const a=await e.connection.request("file_write_request",{path:r,content:n});if(!a.ok){const l=a.error??"";throw new Error(Z[l]??l??"Failed to save")}}const re="mol2";function oe(e){const{sourcePath:r,monomers:n,attempt:a}=e,l=a>0?`_${a+1}`:"";return`${te(r)}_polymer_${n}${l}.${re}`}function te(e){return(e.split("/").pop()??"").replace(/\.[^.]+$/,"").trim()||"polymer"}const se={"--canvas":"var(--pi-color-surface0)","--well":"var(--pi-color-surface0)","--recess":"var(--pi-color-surface1)","--chrome":"var(--pi-color-surface1)","--control":"var(--pi-color-surface2)","--control-hover":"var(--pi-color-surface3)","--control-strong-hover":"var(--pi-color-surface4)","--border-control":"var(--pi-color-border)","--border-input":"var(--pi-color-border)","--popover":"var(--pi-color-surface1)","--popover-item-hover":"var(--pi-color-surface2)","--row-hover":"var(--pi-color-surface2)","--border-popover":"var(--pi-color-border)","--text-primary":"var(--pi-color-foreground)","--text-on-control":"var(--pi-color-foreground)"},ne="_wrap_tixu9_1",ae="_molViewer_tixu9_4",le="_badges_tixu9_8",g={wrap:ne,molViewer:ae,badges:le},ie=50;async function ce(e){const{client:r,upload:n,sourcePath:a,monomers:l,text:f}=e,p=U(a);let s=null,i="";for(let u=0;u<ie&&s===null;u+=1){i=oe({sourcePath:a,monomers:l,attempt:u});try{s=await X(r,p,i,"file")}catch(m){if(m instanceof Y&&m.code==="exists")continue;throw m}}if(s===null)throw new Error(`No free name for ${i} — too many builds in this folder.`);try{await n(p,new File([f],i,{type:"chemical/x-mol2"}))}catch(u){throw await z(r,s).catch(()=>{}),u}return s}function ue({path:e,workspaceCwd:r,tabId:n,isActive:a,onModifiedChange:l}){var T;const f=I(o=>o.client),{upload:p}=W(),s=H(e??"",!!e),{changedAt:i}=K(e),u=c.useRef(null),m=c.useRef(!1),[w,_]=c.useState(null),[E,A]=c.useState(!1),[S,x]=c.useState(null),[j,y]=c.useState(null),[M,P]=c.useState(null),b=c.useRef(null),R=((T=s.data)==null?void 0:T.objectUrl)??null,$=c.useMemo(()=>J(e,R),[e,R]);c.useEffect(()=>{Q({changedAt:i,lastAppliedAt:b.current,modified:E})&&(b.current=i,s.refetch())},[i,E,s.refetch]);const L=i!==null&&i!==b.current&&E;async function V(o){if(e){if(!f){x("Not connected — cannot save.");return}x(null);try{await ee(f,e,o.text()),o.saved()}catch(d){x(d instanceof Error?d.message:"Failed to save")}}}async function B(o){if(e){if(!f){y("Not connected — cannot save the polymer.");return}y(null),P(null);try{const d=await ce({client:f,upload:p,sourcePath:e,monomers:o.monomers,text:o.text()});o.report.clashes>0&&P(`${o.report.clashes} close contacts — relax the geometry before simulating`);const O=q.getState().paneOfTab(r,n);C(d,r,O??void 0)}catch(d){y(d instanceof Error?d.message:"Failed to save the polymer")}}}const F=(s.isError?s.error instanceof Error?s.error.message:"download failed":null)??(w==null?void 0:w.message)??null;return e&&s.isPending?t.jsx(h,{children:t.jsxs(N,{children:[t.jsx(k,{size:"sm"})," Loading..."]})}):F?t.jsx(h,{children:t.jsxs(N,{children:["Error: ",F]})}):t.jsxs(h,{className:g.wrap,"data-molecule-active":a?"true":"false",children:[t.jsxs("div",{className:g.badges,children:[L&&t.jsx(v,{label:"File changed on disk",variant:"muted"}),S&&t.jsx(v,{label:`Save failed: ${S}`,variant:"error"}),j&&t.jsx(v,{label:`Polymer build: ${j}`,variant:"error"}),M&&t.jsx(v,{label:M,variant:"warning"})]}),t.jsx(G,{ref:u,className:g.molViewer,theme:se,source:$,sourceMode:m.current?"update":"replace",onLoad:()=>{m.current=!0,_(null)},onLoadError:o=>_(o.error),onModifiedChange:o=>{A(o),l==null||l(o)},onSave:e?V:void 0,onPolymerBuild:e?B:void 0})]})}function _e({tab:e}){const{path:r}=e.data,n=D(e.id);return t.jsx(h,{children:t.jsx(ue,{path:r,workspaceCwd:e.workspaceCwd,tabId:e.id,isActive:n})})}export{_e as MoleculeViewerPanel};