@openchambery/web 2.1.10-beta.6 → 2.1.10-beta.8

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 (48) hide show
  1. package/dist/assets/{AssistantView-m0hmXDf4.js → AssistantView-sg_gJwXp.js} +3 -3
  2. package/dist/assets/{DiagramView-D_BLChnN.js → DiagramView-BW-3spOQ.js} +1 -1
  3. package/dist/assets/{ImageLoadingPlaceholder-CP-dbqDu.js → ImageLoadingPlaceholder-CN33uB-A.js} +1 -1
  4. package/dist/assets/{LoadingImage-B9bc2pgC.js → LoadingImage-BR82n0vB.js} +1 -1
  5. package/dist/assets/{MarkdownRenderer-DAPSBp63.js → MarkdownRenderer-LEXHIyuj.js} +2 -2
  6. package/dist/assets/{MarkdownRendererImpl-CjHRZ099.js → MarkdownRendererImpl-Xs4gJB0s.js} +1 -1
  7. package/dist/assets/{MarkstreamRendererImpl-G6GmYaqC.js → MarkstreamRendererImpl-RXTIFS1c.js} +1 -1
  8. package/dist/assets/{MobileDetailNavigation-tHf7fDgn.js → MobileDetailNavigation-Bx1Vbirv.js} +1 -1
  9. package/dist/assets/{MobileShareBridge-DGgG4oRL.js → MobileShareBridge-DKsBX4J6.js} +1 -1
  10. package/dist/assets/{MobileTabPageHeader-CYjl11aq.js → MobileTabPageHeader-BIbvqv8n.js} +1 -1
  11. package/dist/assets/{MultiRunWindow-CCr6EHxI.js → MultiRunWindow-Dl6X54iv.js} +1 -1
  12. package/dist/assets/{SettingsView-g1WuSSpx.js → SettingsView-DJZEQaSF.js} +1 -1
  13. package/dist/assets/{SettingsWindow-C9tE9lWj.js → SettingsWindow-TvlhBd6w.js} +1 -1
  14. package/dist/assets/{TerminalView-C9WgVDCP.js → TerminalView-By3D_hLv.js} +1 -1
  15. package/dist/assets/ToolOutputDialog-Dt49fiUz.js +10 -0
  16. package/dist/assets/{appThemeRegistry-B5ht87VL.js → appThemeRegistry-Du5KFmTd.js} +1 -1
  17. package/dist/assets/{fileMentionTouchSelection-C_IjOcKq.js → fileMentionTouchSelection-DZvVbBP-.js} +1 -1
  18. package/dist/assets/{gitApi-DiA1_xt7.js → gitApi-DdM2FGUu.js} +1 -1
  19. package/dist/assets/{image-loading-CObM4tcX.css → image-loading-j2FgxzZQ.css} +1 -1
  20. package/dist/assets/{insertionBoundaries-CxlsfeYu.js → insertionBoundaries-D5hR7Bnk.js} +1 -1
  21. package/dist/assets/{main-CrPdH4SH.js → main-C4f3ftkw.js} +2 -2
  22. package/dist/assets/{main-Djt2Ye-9.js → main-M6NuXmS9.js} +4 -4
  23. package/dist/assets/{mcpQueries-Ft2WOl69.js → mcpQueries-BJQRGKlF.js} +1 -1
  24. package/dist/assets/{miniChat-CCkOU-rB.js → miniChat-haVuHJtE.js} +2 -2
  25. package/dist/assets/{mobile-PHkyx3kO.js → mobile-AgEB6KUi.js} +2 -2
  26. package/dist/assets/{mobileBackNavigation-Cdy07X6w.js → mobileBackNavigation-DYaEgNKl.js} +1 -1
  27. package/dist/assets/{multirun-BQNooovq.js → multirun-CLywRk_h.js} +1 -1
  28. package/dist/assets/{projectMeta-ppXHP-Kt.js → projectMeta-CmY-ALGU.js} +1 -1
  29. package/dist/assets/{renderElectronMiniChatApp-yaRkLsUO.js → renderElectronMiniChatApp-G3oei-lb.js} +2 -2
  30. package/dist/assets/{renderMobileApp-xdhzGwkI.js → renderMobileApp-CLKJYLRa.js} +4 -4
  31. package/dist/assets/{runtimeConfig-Cg06nyOV.js → runtimeConfig-wXAjg8Wj.js} +1 -1
  32. package/dist/assets/{runtimeEndpointReset-h7CvSjcJ.js → runtimeEndpointReset-BcpbVtkr.js} +1 -1
  33. package/dist/assets/{sessionChangeSummary-C5JsM_Ja.js → sessionChangeSummary-DIIJkyzk.js} +1 -1
  34. package/dist/assets/{sessionLookup-CP9x9Qj6.js → sessionLookup-Dayma9hk.js} +1 -1
  35. package/dist/assets/{speechSettingsQueries-vIjzQaTP.js → speechSettingsQueries-F67f52-o.js} +1 -1
  36. package/dist/assets/src-azLZheh6.css +2 -0
  37. package/dist/assets/{useAppFontEffects-DnH4SWwB.js → useAppFontEffects-Cf-BIyAh.js} +5 -5
  38. package/dist/assets/{useDesktopWindowControlsLayout-CDi9JpcR.js → useDesktopWindowControlsLayout-BgLopOdv.js} +1 -1
  39. package/dist/assets/{useEffectiveDirectory-BHLhwD2H.js → useEffectiveDirectory-BljJHzlP.js} +1 -1
  40. package/dist/assets/{useMobileNavigationStore-DA8WrLNS.js → useMobileNavigationStore-Bc3q1mPg.js} +3 -3
  41. package/dist/assets/{useWorkerHighlightedLines-B3ZQu7ME.js → useWorkerHighlightedLines-r5Bij0Em.js} +1 -1
  42. package/dist/index.html +3 -3
  43. package/dist/mini-chat.html +3 -3
  44. package/dist/mobile.html +3 -3
  45. package/package.json +1 -1
  46. package/dist/assets/ToolOutputDialog-CZrZeX0C.js +0 -10
  47. package/dist/assets/src-CKGZdmYc.css +0 -2
  48. /package/dist/assets/{image-loading-CnAqJpZd.js → image-loading-DImQz00b.js} +0 -0
@@ -1,4 +1,4 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{it as t,rt as n}from"./vendor-base-ui-CdzJ6My_.js";import{v as r}from"./useUIStore-CEqU9Ujv.js";import{n as i}from"./vendor-react-BP2cRVqX.js";import{f as a,r as o,t as s}from"./button-CWSs9Baz.js";import{n as c}from"./useThemeSystem-8jhE4Zyk.js";import{n as l}from"./Icon-BCFeHDWx.js";import{i as u,n as d,t as f}from"./tooltip-CV6dvLBp.js";import{n as p}from"./MarkdownRenderer-DAPSBp63.js";import{n as m,o as h,s as g,t as _}from"./markdown-worker-DFNZ3KJ_.js";import{t as v}from"./vendor-tanstack-react-virtual-B_EO--9t.js";import{n as y}from"./markdownTheme-BUfvCGAn.js";var b=e(t(),1),x=i(),S=n(),C=`w-[min(30rem,calc(100cqw-1rem))] min-w-[280px] max-w-full overflow-hidden rounded-xl shadow-[inset_0_1px_0_0_rgba(255,255,255,0.8),inset_0_0_0_1px_rgba(0,0,0,0.04),0_0_0_1px_rgba(0,0,0,0.10),0_1px_2px_-0.5px_rgba(0,0,0,0.08),0_4px_8px_-2px_rgba(0,0,0,0.08),0_12px_20px_-4px_rgba(0,0,0,0.08)] dark:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.12),inset_0_0_0_1px_rgba(255,255,255,0.08),0_0_0_1px_rgba(0,0,0,0.36),0_1px_1px_-0.5px_rgba(0,0,0,0.22),0_3px_3px_-1.5px_rgba(0,0,0,0.20),0_6px_6px_-3px_rgba(0,0,0,0.16)]`,w={maxWidth:`min(28rem, calc(100cqw - 4ch))`,backgroundColor:`var(--surface-elevated)`,color:`var(--surface-elevated-foreground)`},T=`flex items-center justify-between gap-3 border-b border-[var(--surface-subtle)] px-3 py-2.5`,E=`text-xs font-medium leading-4 text-foreground md:text-[0.8125rem] md:leading-5`,D=`text-xs tabular-nums leading-4 text-muted-foreground md:text-[0.8125rem] md:leading-5`,O=`m-0 list-none divide-y divide-[var(--surface-subtle)] p-0`,k=`${O} max-h-[min(22rem,50vh)] overflow-y-auto`,A=`${O} w-full`,ee={className:`p-0 rounded-none`,maxHeightClass:`max-h-[46vh]`,disableHorizontal:!0},j=`px-2.5 py-1.5 text-xs leading-4 md:py-2 md:text-[0.8125rem] md:leading-5`,M=`flex min-w-0 items-center gap-1 text-xs leading-4 text-muted-foreground md:gap-1.5 md:text-[0.8125rem] md:leading-5`,te=`min-w-0 truncate text-xs leading-4 text-foreground md:text-[0.8125rem] md:leading-5`,ne=`inline-flex shrink-0 items-center gap-1 text-xs leading-4 tabular-nums text-muted-foreground md:text-[0.8125rem] md:leading-5`,re=`h-3 w-3 shrink-0 md:h-3.5 md:w-3.5`,ie={in_progress:`text-foreground`,pending:`text-foreground`,completed:`text-muted-foreground line-through`,cancelled:`text-muted-foreground line-through`},ae={in_progress:`chat.statusRow.todo.status.inProgress`,pending:`chat.statusRow.todo.status.pending`,completed:`chat.statusRow.todo.status.completed`,cancelled:`chat.statusRow.todo.status.cancelled`},N=e=>{let t=(0,x.c)(26),{todo:n,isActive:r,activeRef:i}=e,{t:s}=a(),c=oe.has(n.status)?n.status:`pending`,p=ae[c],m;t[0]!==s||t[1]!==p?(m=s(p),t[0]=s,t[1]=p,t[2]=m):m=t[2];let h=m,g;t[3]===c?g=t[4]:(g=c===`in_progress`?(0,S.jsx)(l,{name:`record-circle`,className:`h-3.5 w-3.5 text-[var(--status-info)]`,"aria-hidden":`true`}):c===`completed`?(0,S.jsx)(l,{name:`checkbox-circle`,className:`h-3.5 w-3.5 text-[var(--status-success)]`,"aria-hidden":`true`}):(0,S.jsx)(l,{name:`time`,className:`h-3.5 w-3.5 text-muted-foreground`,"aria-hidden":`true`}),t[3]=c,t[4]=g);let _=g,v=r?`step`:void 0,y=r&&`bg-[var(--surface-muted)] before:absolute before:inset-y-2 before:left-0 before:w-0.5 before:rounded-full before:bg-[var(--status-info)]`,b;t[5]===y?b=t[6]:(b=o(`group relative grid min-w-0 grid-cols-[1rem_minmax(0,1fr)] items-start gap-2.5`,j,y),t[5]=y,t[6]=b);let C;t[7]!==_||t[8]!==h?(C=(0,S.jsx)(u,{asChild:!0,children:(0,S.jsx)(`span`,{className:`flex size-4 items-center justify-center`,"aria-label":h,children:_})}),t[7]=_,t[8]=h,t[9]=C):C=t[9];let w;t[10]===h?w=t[11]:(w=(0,S.jsx)(d,{side:`left`,sideOffset:6,children:h}),t[10]=h,t[11]=w);let T;t[12]!==C||t[13]!==w?(T=(0,S.jsxs)(f,{children:[C,w]}),t[12]=C,t[13]=w,t[14]=T):T=t[14];let E=ie[c],D;t[15]===E?D=t[16]:(D=o(`block whitespace-normal break-words`,E),t[15]=E,t[16]=D);let O;t[17]!==D||t[18]!==n.content?(O=(0,S.jsx)(`span`,{className:`min-w-0 flex-1`,children:(0,S.jsx)(`span`,{className:D,children:n.content})}),t[17]=D,t[18]=n.content,t[19]=O):O=t[19];let k;return t[20]!==i||t[21]!==O||t[22]!==v||t[23]!==b||t[24]!==T?(k=(0,S.jsxs)(`li`,{ref:i,"aria-current":v,className:b,children:[T,O]}),t[20]=i,t[21]=O,t[22]=v,t[23]=b,t[24]=T,t[25]=k):k=t[25],k},oe=new Set([`in_progress`,`pending`,`completed`,`cancelled`]),P=e=>e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`),F=e=>e?Object.entries(e).map(([e,t])=>t==null?``:`${e.startsWith(`--`)?e:e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}:${typeof t==`number`?`${t}px`:t};`).join(``):``,I=(e,t,n)=>{let r=e.querySelector(`pre`);r&&(r.style.margin=`0`,r.style.background=`transparent`,r.style.whiteSpace=t?`pre-wrap`:`pre`,t&&(r.style.wordBreak=`break-word`,r.style.overflowWrap=`break-word`));let i=e.querySelector(`code`);if(i){let e=F(n);e&&i.setAttribute(`style`,`${i.getAttribute(`style`)??``}${e}`)}},L=e=>`<pre><code>${P(e)}</code></pre>`,R=e=>{let t=(0,x.c)(21),{code:n,language:r,className:i,style:a,codeStyle:s,wrap:l}=e,u=l!==void 0&&l,{currentTheme:d}=c(),f=b.useRef(null),p;t[0]===d?p=t[1]:(p=y(d),t[0]=d,t[1]=p);let m=p,h,g;t[2]!==n||t[3]!==s||t[4]!==u?(h=()=>{let e=f.current;e&&(e.innerHTML=L(n),I(e,u,s))},g=[n,u,s],t[2]=n,t[3]=s,t[4]=u,t[5]=h,t[6]=g):(h=t[5],g=t[6]),b.useLayoutEffect(h,g);let v,C;t[7]!==n||t[8]!==s||t[9]!==r||t[10]!==u?(v=()=>{let e=f.current;if(!e)return;let t=!0,i=new AbortController;return _(n,(r||`text`).toLowerCase(),{signal:i.signal,priority:`visible`}).then(n=>{!t||!e||!n||(e.innerHTML=n,I(e,u,s))}),()=>{t=!1,i.abort()}},C=[n,r,u,s],t[7]=n,t[8]=s,t[9]=r,t[10]=u,t[11]=v,t[12]=C):(v=t[11],C=t[12]),b.useEffect(v,C);let w;t[13]===i?w=t[14]:(w=o(`typography-code`,i),t[13]=i,t[14]=w);let T=m,E;t[15]!==a||t[16]!==T?(E={...T,...a},t[15]=a,t[16]=T,t[17]=E):E=t[17];let D;return t[18]!==w||t[19]!==E?(D=(0,S.jsx)(`div`,{ref:f,className:w,style:E}),t[18]=w,t[19]=E,t[20]=D):D=t[20],D},z=e=>{let t=e.replace(/^<file>\s*\n?/,``).replace(/\n?<\/file>\s*$/,``);return t=t.replace(/^\s*\d{5}\|\s?/gm,``),t.trim()},B=(e,t=``)=>{if(typeof e==`string`)return e;if(e==null)return t;if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`)return String(e);try{return JSON.stringify(e)}catch{return t}},V=e=>e?e.includes(`<diagnostics`)||e.includes(`<file_diagnostics>`)||e.includes(`LSP errors detected`)||e.includes(`This file has errors`):!1,H=e=>e?e.replace(/\n{0,2}LSP errors detected[\s\S]*?<diagnostics[^>]*>[\s\S]*?<\/diagnostics>/g,``).replace(/\n{0,2}This file has errors[\s\S]*?<\/file_diagnostics>/g,``).replace(/<diagnostics[^>]*>[\s\S]*?<\/diagnostics>/g,``).replace(/<file_diagnostics>[\s\S]*?<\/file_diagnostics>/g,``).trim():``,U=(e,t)=>!e||typeof e!=`object`?String(e):g(e,t||``),W=e=>{if(typeof e==`string`){let t=e.trim();return t.length>0?t:void 0}if(e&&typeof e==`object`){let t=e.patch;if(typeof t==`string`){let e=t.trim();return e.length>0?e:void 0}}},G=e=>{if(!e||typeof e!=`object`)return;let t=W(e.patch)??W(e.diff);if(t)return t;let n=Array.isArray(e.files)?e.files:[];for(let e of n){if(!e||typeof e!=`object`)continue;let t=W(e.patch)??W(e.diff);if(t)return t}},K=e=>{if(!e||typeof e!=`string`)return{data:null,isJson:!1};let t=e.trim();if(!t.startsWith(`{`)&&!t.startsWith(`[`)||!t.endsWith(`}`)&&!t.endsWith(`]`)||t.length<2)return{data:null,isJson:!1};try{let e=JSON.parse(t);return typeof e==`object`&&e?{data:e,isJson:!0}:{data:null,isJson:!1}}catch{return{data:null,isJson:!1}}},q=(e,t,n)=>{let r=z(e);if((t===`edit`||t===`multiedit`||t===`write`||t===`apply_patch`)&&V(r)&&(r=H(r)),(t===`edit`||t===`multiedit`||t===`apply_patch`)&&r.trim().length===0){let e=G(n);if(e)return e}return r},se=e=>{let t=e.match(/<type>(file|directory)<\/type>/i)?.[1]?.toLowerCase()??`unknown`,n=(e.match(/<content>([\s\S]*?)<\/content>/i)?.[1]??e).replace(/\r\n/g,`
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{it as t,rt as n}from"./vendor-base-ui-CdzJ6My_.js";import{v as r}from"./useUIStore-CEqU9Ujv.js";import{n as i}from"./vendor-react-BP2cRVqX.js";import{f as a,r as o,t as s}from"./button-CWSs9Baz.js";import{n as c}from"./useThemeSystem-8jhE4Zyk.js";import{n as l}from"./Icon-BCFeHDWx.js";import{i as u,n as d,t as f}from"./tooltip-CV6dvLBp.js";import{n as p}from"./MarkdownRenderer-LEXHIyuj.js";import{n as m,o as h,s as g,t as _}from"./markdown-worker-DFNZ3KJ_.js";import{t as v}from"./vendor-tanstack-react-virtual-B_EO--9t.js";import{n as y}from"./markdownTheme-BUfvCGAn.js";var b=e(t(),1),x=i(),S=n(),C=`w-[min(30rem,calc(100cqw-1rem))] min-w-[280px] max-w-full overflow-hidden rounded-xl shadow-[inset_0_1px_0_0_rgba(255,255,255,0.8),inset_0_0_0_1px_rgba(0,0,0,0.04),0_0_0_1px_rgba(0,0,0,0.10),0_1px_2px_-0.5px_rgba(0,0,0,0.08),0_4px_8px_-2px_rgba(0,0,0,0.08),0_12px_20px_-4px_rgba(0,0,0,0.08)] dark:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.12),inset_0_0_0_1px_rgba(255,255,255,0.08),0_0_0_1px_rgba(0,0,0,0.36),0_1px_1px_-0.5px_rgba(0,0,0,0.22),0_3px_3px_-1.5px_rgba(0,0,0,0.20),0_6px_6px_-3px_rgba(0,0,0,0.16)]`,w={maxWidth:`min(28rem, calc(100cqw - 4ch))`,backgroundColor:`var(--surface-elevated)`,color:`var(--surface-elevated-foreground)`},T=`flex items-center justify-between gap-3 border-b border-[var(--surface-subtle)] px-3 py-2.5`,E=`text-xs font-medium leading-4 text-foreground md:text-[0.8125rem] md:leading-5`,D=`text-xs tabular-nums leading-4 text-muted-foreground md:text-[0.8125rem] md:leading-5`,O=`m-0 list-none divide-y divide-[var(--surface-subtle)] p-0`,k=`${O} max-h-[min(22rem,50vh)] overflow-y-auto`,A=`${O} w-full`,ee={className:`p-0 rounded-none`,maxHeightClass:`max-h-[46vh]`,disableHorizontal:!0},j=`px-2.5 py-1.5 text-xs leading-4 md:py-2 md:text-[0.8125rem] md:leading-5`,M=`flex min-w-0 items-center gap-1 text-xs leading-4 text-muted-foreground md:gap-1.5 md:text-[0.8125rem] md:leading-5`,te=`min-w-0 truncate text-xs leading-4 text-foreground md:text-[0.8125rem] md:leading-5`,ne=`inline-flex shrink-0 items-center gap-1 text-xs leading-4 tabular-nums text-muted-foreground md:text-[0.8125rem] md:leading-5`,re=`h-3 w-3 shrink-0 md:h-3.5 md:w-3.5`,ie={in_progress:`text-foreground`,pending:`text-foreground`,completed:`text-muted-foreground line-through`,cancelled:`text-muted-foreground line-through`},ae={in_progress:`chat.statusRow.todo.status.inProgress`,pending:`chat.statusRow.todo.status.pending`,completed:`chat.statusRow.todo.status.completed`,cancelled:`chat.statusRow.todo.status.cancelled`},N=e=>{let t=(0,x.c)(26),{todo:n,isActive:r,activeRef:i}=e,{t:s}=a(),c=oe.has(n.status)?n.status:`pending`,p=ae[c],m;t[0]!==s||t[1]!==p?(m=s(p),t[0]=s,t[1]=p,t[2]=m):m=t[2];let h=m,g;t[3]===c?g=t[4]:(g=c===`in_progress`?(0,S.jsx)(l,{name:`record-circle`,className:`h-3.5 w-3.5 text-[var(--status-info)]`,"aria-hidden":`true`}):c===`completed`?(0,S.jsx)(l,{name:`checkbox-circle`,className:`h-3.5 w-3.5 text-[var(--status-success)]`,"aria-hidden":`true`}):(0,S.jsx)(l,{name:`time`,className:`h-3.5 w-3.5 text-muted-foreground`,"aria-hidden":`true`}),t[3]=c,t[4]=g);let _=g,v=r?`step`:void 0,y=r&&`bg-[var(--surface-muted)] before:absolute before:inset-y-2 before:left-0 before:w-0.5 before:rounded-full before:bg-[var(--status-info)]`,b;t[5]===y?b=t[6]:(b=o(`group relative grid min-w-0 grid-cols-[1rem_minmax(0,1fr)] items-start gap-2.5`,j,y),t[5]=y,t[6]=b);let C;t[7]!==_||t[8]!==h?(C=(0,S.jsx)(u,{asChild:!0,children:(0,S.jsx)(`span`,{className:`flex size-4 items-center justify-center`,"aria-label":h,children:_})}),t[7]=_,t[8]=h,t[9]=C):C=t[9];let w;t[10]===h?w=t[11]:(w=(0,S.jsx)(d,{side:`left`,sideOffset:6,children:h}),t[10]=h,t[11]=w);let T;t[12]!==C||t[13]!==w?(T=(0,S.jsxs)(f,{children:[C,w]}),t[12]=C,t[13]=w,t[14]=T):T=t[14];let E=ie[c],D;t[15]===E?D=t[16]:(D=o(`block whitespace-normal break-words`,E),t[15]=E,t[16]=D);let O;t[17]!==D||t[18]!==n.content?(O=(0,S.jsx)(`span`,{className:`min-w-0 flex-1`,children:(0,S.jsx)(`span`,{className:D,children:n.content})}),t[17]=D,t[18]=n.content,t[19]=O):O=t[19];let k;return t[20]!==i||t[21]!==O||t[22]!==v||t[23]!==b||t[24]!==T?(k=(0,S.jsxs)(`li`,{ref:i,"aria-current":v,className:b,children:[T,O]}),t[20]=i,t[21]=O,t[22]=v,t[23]=b,t[24]=T,t[25]=k):k=t[25],k},oe=new Set([`in_progress`,`pending`,`completed`,`cancelled`]),P=e=>e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`),F=e=>e?Object.entries(e).map(([e,t])=>t==null?``:`${e.startsWith(`--`)?e:e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}:${typeof t==`number`?`${t}px`:t};`).join(``):``,I=(e,t,n)=>{let r=e.querySelector(`pre`);r&&(r.style.margin=`0`,r.style.background=`transparent`,r.style.whiteSpace=t?`pre-wrap`:`pre`,t&&(r.style.wordBreak=`break-word`,r.style.overflowWrap=`break-word`));let i=e.querySelector(`code`);if(i){let e=F(n);e&&i.setAttribute(`style`,`${i.getAttribute(`style`)??``}${e}`)}},L=e=>`<pre><code>${P(e)}</code></pre>`,R=e=>{let t=(0,x.c)(21),{code:n,language:r,className:i,style:a,codeStyle:s,wrap:l}=e,u=l!==void 0&&l,{currentTheme:d}=c(),f=b.useRef(null),p;t[0]===d?p=t[1]:(p=y(d),t[0]=d,t[1]=p);let m=p,h,g;t[2]!==n||t[3]!==s||t[4]!==u?(h=()=>{let e=f.current;e&&(e.innerHTML=L(n),I(e,u,s))},g=[n,u,s],t[2]=n,t[3]=s,t[4]=u,t[5]=h,t[6]=g):(h=t[5],g=t[6]),b.useLayoutEffect(h,g);let v,C;t[7]!==n||t[8]!==s||t[9]!==r||t[10]!==u?(v=()=>{let e=f.current;if(!e)return;let t=!0,i=new AbortController;return _(n,(r||`text`).toLowerCase(),{signal:i.signal,priority:`visible`}).then(n=>{!t||!e||!n||(e.innerHTML=n,I(e,u,s))}),()=>{t=!1,i.abort()}},C=[n,r,u,s],t[7]=n,t[8]=s,t[9]=r,t[10]=u,t[11]=v,t[12]=C):(v=t[11],C=t[12]),b.useEffect(v,C);let w;t[13]===i?w=t[14]:(w=o(`typography-code`,i),t[13]=i,t[14]=w);let T=m,E;t[15]!==a||t[16]!==T?(E={...T,...a},t[15]=a,t[16]=T,t[17]=E):E=t[17];let D;return t[18]!==w||t[19]!==E?(D=(0,S.jsx)(`div`,{ref:f,className:w,style:E}),t[18]=w,t[19]=E,t[20]=D):D=t[20],D},z=e=>{let t=e.replace(/^<file>\s*\n?/,``).replace(/\n?<\/file>\s*$/,``);return t=t.replace(/^\s*\d{5}\|\s?/gm,``),t.trim()},B=(e,t=``)=>{if(typeof e==`string`)return e;if(e==null)return t;if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`)return String(e);try{return JSON.stringify(e)}catch{return t}},V=e=>e?e.includes(`<diagnostics`)||e.includes(`<file_diagnostics>`)||e.includes(`LSP errors detected`)||e.includes(`This file has errors`):!1,H=e=>e?e.replace(/\n{0,2}LSP errors detected[\s\S]*?<diagnostics[^>]*>[\s\S]*?<\/diagnostics>/g,``).replace(/\n{0,2}This file has errors[\s\S]*?<\/file_diagnostics>/g,``).replace(/<diagnostics[^>]*>[\s\S]*?<\/diagnostics>/g,``).replace(/<file_diagnostics>[\s\S]*?<\/file_diagnostics>/g,``).trim():``,U=(e,t)=>!e||typeof e!=`object`?String(e):g(e,t||``),W=e=>{if(typeof e==`string`){let t=e.trim();return t.length>0?t:void 0}if(e&&typeof e==`object`){let t=e.patch;if(typeof t==`string`){let e=t.trim();return e.length>0?e:void 0}}},G=e=>{if(!e||typeof e!=`object`)return;let t=W(e.patch)??W(e.diff);if(t)return t;let n=Array.isArray(e.files)?e.files:[];for(let e of n){if(!e||typeof e!=`object`)continue;let t=W(e.patch)??W(e.diff);if(t)return t}},K=e=>{if(!e||typeof e!=`string`)return{data:null,isJson:!1};let t=e.trim();if(!t.startsWith(`{`)&&!t.startsWith(`[`)||!t.endsWith(`}`)&&!t.endsWith(`]`)||t.length<2)return{data:null,isJson:!1};try{let e=JSON.parse(t);return typeof e==`object`&&e?{data:e,isJson:!0}:{data:null,isJson:!1}}catch{return{data:null,isJson:!1}}},q=(e,t,n)=>{let r=z(e);if((t===`edit`||t===`multiedit`||t===`write`||t===`apply_patch`)&&V(r)&&(r=H(r)),(t===`edit`||t===`multiedit`||t===`apply_patch`)&&r.trim().length===0){let e=G(n);if(e)return e}return r},se=e=>{let t=e.match(/<type>(file|directory)<\/type>/i)?.[1]?.toLowerCase()??`unknown`,n=(e.match(/<content>([\s\S]*?)<\/content>/i)?.[1]??e).replace(/\r\n/g,`
2
2
  `).split(`
3
3
  `),r=e=>/\(\s*File has more lines\..*offset.*\)/i.test(e.trim());return{type:t,lines:n.map(e=>{let n=e.trim(),i=n.startsWith(`(`)&&n.endsWith(`)`)||r(n);if(t!==`directory`){let t=e.match(/^(\d+):\s?(.*)$/);if(t){let e=t[2],n=e.trim(),i=n.startsWith(`(`)&&n.endsWith(`)`)||r(n);return{lineNumber:i?null:Number(t[1]),text:e,isInfo:i}}}return{lineNumber:null,text:e,isInfo:i}}).filter((e,t,n)=>{if(e.text.trim().length>0)return!0;let r=n[t-1],i=n[t+1],a=!!(r?.isInfo||i?.isInfo),o=e.lineNumber!==null;return!(a&&o)})}},ce=(e,t)=>{try{let n=e.trim().split(`
4
4
  `).filter(Boolean);if(n.length===0)return null;let i=[];return n.forEach(e=>{let t=e.match(/^(\s*)(.+)$/);if(t){let[,e,n]=t,r=Math.floor(e.length/2),a=!n.endsWith(`/`);i.push({name:n.replace(/\/$/,``),depth:r,isFile:a})}}),(0,S.jsx)(`div`,{className:o(`w-full min-w-0 font-mono space-y-0.5`,t?.unstyled?null:`p-3 bg-muted/20 rounded-xl border border-border/30`),style:r.tool.popup,children:i.map((e,t)=>(0,S.jsx)(`div`,{className:`min-w-0`,style:{paddingLeft:`${e.depth*20}px`},children:e.isFile?(0,S.jsx)(`span`,{className:`text-foreground/90 block truncate`,children:e.name}):(0,S.jsxs)(`span`,{className:`font-semibold text-foreground block truncate`,children:[e.name,`/`]})},t))})}catch{return null}},le={backgroundColor:`var(--status-info)`,opacity:.6},ue=(e,t,n)=>{try{let i=e.trim().split(`
package/dist/index.html CHANGED
@@ -552,7 +552,7 @@
552
552
  opacity: 0.72;
553
553
  }
554
554
  </style>
555
- <script type="module" crossorigin src="/assets/main-CrPdH4SH.js"></script>
555
+ <script type="module" crossorigin src="/assets/main-C4f3ftkw.js"></script>
556
556
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-hePW80VL.js">
557
557
  <link rel="modulepreload" crossorigin href="/assets/runtime-auth-BpCQ-dPr.js">
558
558
  <link rel="modulepreload" crossorigin href="/assets/runtime-switch-CMiMO5Yj.js">
@@ -572,8 +572,8 @@
572
572
  <link rel="modulepreload" crossorigin href="/assets/terminalApi-rxsMWL0o.js">
573
573
  <link rel="modulepreload" crossorigin href="/assets/types-BuiqMmh_.js">
574
574
  <link rel="modulepreload" crossorigin href="/assets/capgoAdapter-KNLHDj7G.js">
575
- <link rel="modulepreload" crossorigin href="/assets/runtimeConfig-Cg06nyOV.js">
576
- <link rel="stylesheet" crossorigin href="/assets/src-CKGZdmYc.css">
575
+ <link rel="modulepreload" crossorigin href="/assets/runtimeConfig-wXAjg8Wj.js">
576
+ <link rel="stylesheet" crossorigin href="/assets/src-azLZheh6.css">
577
577
  </head>
578
578
  <body class="h-full bg-background text-foreground">
579
579
  <!-- Keep the startup layer outside #root. React replaces every child of
@@ -74,7 +74,7 @@
74
74
  }
75
75
  </style>
76
76
 
77
- <script type="module" crossorigin src="/assets/miniChat-CCkOU-rB.js"></script>
77
+ <script type="module" crossorigin src="/assets/miniChat-haVuHJtE.js"></script>
78
78
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-hePW80VL.js">
79
79
  <link rel="modulepreload" crossorigin href="/assets/runtime-auth-BpCQ-dPr.js">
80
80
  <link rel="modulepreload" crossorigin href="/assets/runtime-switch-CMiMO5Yj.js">
@@ -94,8 +94,8 @@
94
94
  <link rel="modulepreload" crossorigin href="/assets/terminalApi-rxsMWL0o.js">
95
95
  <link rel="modulepreload" crossorigin href="/assets/types-BuiqMmh_.js">
96
96
  <link rel="modulepreload" crossorigin href="/assets/capgoAdapter-KNLHDj7G.js">
97
- <link rel="modulepreload" crossorigin href="/assets/runtimeConfig-Cg06nyOV.js">
98
- <link rel="stylesheet" crossorigin href="/assets/src-CKGZdmYc.css">
97
+ <link rel="modulepreload" crossorigin href="/assets/runtimeConfig-wXAjg8Wj.js">
98
+ <link rel="stylesheet" crossorigin href="/assets/src-azLZheh6.css">
99
99
  </head>
100
100
  <body class="h-full bg-background text-foreground">
101
101
  <div id="root" class="h-full">
package/dist/mobile.html CHANGED
@@ -63,7 +63,7 @@
63
63
  })();
64
64
  </script>
65
65
 
66
- <script type="module" crossorigin src="/assets/mobile-PHkyx3kO.js"></script>
66
+ <script type="module" crossorigin src="/assets/mobile-AgEB6KUi.js"></script>
67
67
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-hePW80VL.js">
68
68
  <link rel="modulepreload" crossorigin href="/assets/runtime-auth-BpCQ-dPr.js">
69
69
  <link rel="modulepreload" crossorigin href="/assets/runtime-switch-CMiMO5Yj.js">
@@ -83,8 +83,8 @@
83
83
  <link rel="modulepreload" crossorigin href="/assets/terminalApi-rxsMWL0o.js">
84
84
  <link rel="modulepreload" crossorigin href="/assets/types-BuiqMmh_.js">
85
85
  <link rel="modulepreload" crossorigin href="/assets/capgoAdapter-KNLHDj7G.js">
86
- <link rel="modulepreload" crossorigin href="/assets/runtimeConfig-Cg06nyOV.js">
87
- <link rel="stylesheet" crossorigin href="/assets/src-CKGZdmYc.css">
86
+ <link rel="modulepreload" crossorigin href="/assets/runtimeConfig-wXAjg8Wj.js">
87
+ <link rel="stylesheet" crossorigin href="/assets/src-azLZheh6.css">
88
88
  </head>
89
89
  <body class="h-full bg-background text-foreground">
90
90
  <div id="root" class="h-full"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openchambery/web",
3
- "version": "2.1.10-beta.6",
3
+ "version": "2.1.10-beta.8",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./server/index.js",
@@ -1,10 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{c as t,i as n}from"./runtime-switch-CMiMO5Yj.js";import{n as r}from"./runtime-fetch-WgH0pROs.js";import{Mn as i,ln as a}from"./persistence-BKszKaoQ.js";import{it as o,nt as s,rt as c}from"./vendor-base-ui-CdzJ6My_.js";import{n as l}from"./platform-CgwxwfA4.js";import{_ as u}from"./useUIStore-CEqU9Ujv.js";import{n as d}from"./vendor-react-BP2cRVqX.js";import{a as f,n as p}from"./vendor-aparajita-capacitor-secure-storage-xol_6BsB.js";import{s as m}from"./vendor-tanstack-react-query-CdqCAt40.js";import{a as h,i as g}from"./vendor-pierre-diffs-DPBtNDJ5.js";import{n as _}from"./vendor-reactuses-core-BpfIZ1tg.js";import{f as v,r as y,t as b}from"./button-CWSs9Baz.js";import{n as x,t as S}from"./useThemeSystem-8jhE4Zyk.js";import{n as C}from"./Icon-BCFeHDWx.js";import{n as w,t as T}from"./dialog-BMa16qrs.js";import{i as E,l as D,o as O,s as k,v as A}from"./image-loading-CnAqJpZd.js";import{t as j}from"./MobileWindowStack-DGLdgoGr.js";import{t as M}from"./appThemeRegistry-B5ht87VL.js";import{n as N,o as P}from"./MarkdownRenderer-DAPSBp63.js";import{l as F}from"./markdown-worker-DFNZ3KJ_.js";import{n as ee}from"./useEffectiveDirectory-BHLhwD2H.js";import{r as te}from"./relay-image-stream-CqgxIcA5.js";import{t as I}from"./ImageLoadingPlaceholder-CP-dbqDu.js";import{d as L,f as R,g as z,h as B,l as V,m as H,n as U,p as W,r as ne,s as G,t as re,u as ie}from"./useWorkerHighlightedLines-B3ZQu7ME.js";import{t as K}from"./vendor-tanstack-react-virtual-B_EO--9t.js";import{n as ae}from"./markdownTheme-BUfvCGAn.js";import{n as oe}from"./mobileBackNavigation-Cdy07X6w.js";var q=d(),J=e(o(),1),Y=c(),X=80,Z=20,se=J.memo(e=>{let t=(0,q.c)(26),{lines:n,language:r,maxHeight:i,showLineNumbers:a,lineStyles:o}=e,s=i===void 0?`60vh`:i,c=a===void 0||a,{currentTheme:l}=x(),u;t[0]===l?u=t[1]:(u=ae(l),t[0]=l,t[1]=u);let d=u,f;t[2]===n?f=t[3]:(f=n.map(ue).join(`
2
- `),t[2]=n,t[3]=f);let p=re(f,r);if(!(n.length>X)){let e=d,r;t[4]!==s||t[5]!==e?(r={...e,maxHeight:s,overflow:`auto`},t[4]=s,t[5]=e,t[6]=r):r=t[6];let i;if(t[7]!==p||t[8]!==o||t[9]!==n||t[10]!==c){let e;t[12]!==p||t[13]!==o||t[14]!==c?(e=(e,t)=>(0,Y.jsx)(le,{line:e,html:p?.[t],showLineNumbers:c,style:o?.(e)},t),t[12]=p,t[13]=o,t[14]=c,t[15]=e):e=t[15],i=n.map(e),t[7]=p,t[8]=o,t[9]=n,t[10]=c,t[11]=i}else i=t[11];let a;return t[16]!==r||t[17]!==i?(a=(0,Y.jsx)(`div`,{className:`typography-code font-mono w-full min-w-0`,style:r,children:i}),t[16]=r,t[17]=i,t[18]=a):a=t[18],a}let m;return t[19]!==p||t[20]!==o||t[21]!==n||t[22]!==s||t[23]!==c||t[24]!==d?(m=(0,Y.jsx)(ce,{lines:n,highlighted:p,syntaxVars:d,maxHeight:s,showLineNumbers:c,lineStyles:o}),t[19]=p,t[20]=o,t[21]=n,t[22]=s,t[23]=c,t[24]=d,t[25]=m):m=t[25],m});se.displayName=`VirtualizedCodeBlock`;var ce=J.memo(({lines:e,highlighted:t,syntaxVars:n,maxHeight:r,showLineNumbers:i,lineStyles:a})=>{let o=J.useRef(null),s=`min(${e.length*Z}px, ${r})`,c=K({count:e.length,getScrollElement:()=>o.current,estimateSize:()=>Z,overscan:20}),l=c.getVirtualItems();return(0,Y.jsx)(`div`,{ref:o,className:`typography-code font-mono w-full min-w-0`,style:{...n,height:s,maxHeight:r,overflow:`auto`},children:(0,Y.jsx)(`div`,{style:{height:c.getTotalSize(),position:`relative`},children:l.map(n=>{let r=e[n.index];return r?(0,Y.jsx)(`div`,{"data-index":n.index,ref:c.measureElement,style:{position:`absolute`,top:0,left:0,width:`100%`,transform:`translateY(${n.start}px)`},children:(0,Y.jsx)(le,{line:r,html:t?.[n.index],showLineNumbers:i,style:a?.(r)})},n.index):null})})})});ce.displayName=`VirtualizedRows`;var le=J.memo(e=>{let t=(0,q.c)(12),{line:n,html:r,showLineNumbers:i,style:a}=e,o;t[0]!==n.isInfo||t[1]!==n.lineNumber||t[2]!==i?(o=i&&(0,Y.jsx)(`span`,{className:`w-10 flex-shrink-0 text-right pr-3 select-none border-r mr-3 -my-0.5 py-0.5`,style:{color:`var(--tools-edit-line-number)`,borderColor:`var(--tools-border)`},children:!n.isInfo&&n.lineNumber!=null?n.lineNumber:``}),t[0]=n.isInfo,t[1]=n.lineNumber,t[2]=i,t[3]=o):o=t[3];let s;t[4]!==r||t[5]!==n.isInfo||t[6]!==n.text?(s=(0,Y.jsx)(`div`,{className:`flex-1 min-w-0`,children:n.isInfo?(0,Y.jsx)(`div`,{className:`whitespace-pre-wrap break-words text-muted-foreground/70 italic`,children:n.text}):r===void 0?(0,Y.jsx)(`div`,{className:`whitespace-pre`,children:n.text}):(0,Y.jsx)(`div`,{className:`whitespace-pre`,dangerouslySetInnerHTML:{__html:r}})}),t[4]=r,t[5]=n.isInfo,t[6]=n.text,t[7]=s):s=t[7];let c;return t[8]!==a||t[9]!==o||t[10]!==s?(c=(0,Y.jsxs)(`div`,{className:`typography-code font-mono flex w-full min-w-0`,style:a,children:[o,s]}),t[8]=a,t[9]=o,t[10]=s,t[11]=c):c=t[11],c});le.displayName=`VirtualizedCodeBlock.Row`;function ue(e){return e.text}var de=J.memo(function({jsonString:e,className:t,maxHeight:n=`100%`,initiallyExpandedDepth:r=2}){let{t:i}=v(),a=J.useRef(null),[o,s]=J.useState(null),c=J.useMemo(()=>{try{let t=e.trim();if(!t)return s(i(`jsonTreeView.error.emptyJson`)),null;let n=JSON.parse(t);return s(null),n}catch(e){return s(e instanceof Error?e.message:i(`jsonTreeView.error.invalidJson`)),null}},[e,i]),l=J.useCallback(()=>{a.current?.expandAll()},[]),u=J.useCallback(()=>{a.current?.collapseAll()},[]);return o?(0,Y.jsx)(`div`,{className:t,children:(0,Y.jsxs)(`div`,{className:`rounded-md border border-[var(--interactive-border)] bg-[var(--syntax-base-background)] p-4`,children:[(0,Y.jsx)(`div`,{className:`mb-1 font-medium text-[var(--surface-foreground)]`,children:i(`jsonTreeView.error.invalidJsonTitle`)}),(0,Y.jsx)(`div`,{className:`font-mono text-xs text-[var(--surface-mutedForeground)]`,children:o})]})}):c===null?null:(0,Y.jsxs)(`div`,{className:t,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1 border-b border-[var(--interactive-border)] px-2 py-1`,children:[(0,Y.jsxs)(b,{variant:`ghost`,size:`xs`,onClick:l,className:`gap-1 text-xs text-muted-foreground`,children:[(0,Y.jsx)(C,{name:`arrow-down-s`,className:`h-3 w-3`}),i(`jsonTreeView.actions.expandAll`)]}),(0,Y.jsxs)(b,{variant:`ghost`,size:`xs`,onClick:u,className:`gap-1 text-xs text-muted-foreground`,children:[(0,Y.jsx)(C,{name:`arrow-up-s`,className:`h-3 w-3`}),i(`jsonTreeView.actions.collapseAll`)]})]}),(0,Y.jsx)(`div`,{className:`bg-[var(--syntax-base-background)] py-1`,style:{maxHeight:n,overflow:`auto`},children:(0,Y.jsx)(ne,{ref:a,data:c,maxHeight:n,initiallyExpandedDepth:r})})]})}),fe=class extends Error{key;params;constructor(e,t){super(e),this.name=`MermaidLoadFailure`,this.key=e,this.params=t}},pe=(e,t)=>new fe(e,t),me=e=>e instanceof fe,he=e=>e+1,ge=(e,t)=>e===t,_e=e=>{let t=e.indexOf(`,`);if(t<0)throw pe(`chat.toolOutputDialog.mermaid.dataUrlMalformed`);let n=e.slice(0,t).toLowerCase(),r=e.slice(t+1);return n.includes(`;base64`)?atob(r):decodeURIComponent(r)},ve=e=>Promise.resolve().then(()=>_e(e)),Q=1,ye=56,be=(e,t,n)=>Math.min(n,Math.max(t,e)),xe=({isMobile:e,pointerType:t,cancelled:n,moved:r,suppressTap:i,targetWasCanvas:a,start:o,end:s,startScale:c,hasMultipleImages:l})=>{if(n||i)return`none`;let u={x:s.x-o.x,y:s.y-o.y},d=Math.hypot(u.x,u.y),f=t!==`mouse`;if(e&&f&&c<=1.01&&Math.abs(u.x)>=ye&&Math.abs(u.x)>Math.abs(u.y)*1.2)return l?u.x<0?`next`:`previous`:`none`;let p=!r&&d<=10;return e&&f&&p||!e&&t===`mouse`&&p&&a?`close`:`none`},Se=(e,t)=>{if(e.width<=0||e.height<=0||t.width<=0||t.height<=0)return{width:1,height:1};let n=Math.min(t.width/e.width,t.height/e.height);return{width:Math.max(1,e.width*n),height:Math.max(1,e.height*n)}},Ce=(e,t)=>{let n=t.minScale??Q,r=t.maxScale??5,i=be(e.scale,n,r),a=Math.max(0,(t.image.width*i-t.viewport.width)/2),o=Math.max(0,(t.image.height*i-t.viewport.height)/2);return{scale:i,x:be(e.x,-a,a),y:be(e.y,-o,o)}},we=(e,t,n,r,i)=>{let a=be(t,i.minScale??Q,i.maxScale??5),o=a/e.scale;return Ce({scale:a,x:n.x-r.x-(n.x-r.x-e.x)*o,y:n.y-r.y-(n.y-r.y-e.y)*o},i)},Te=(e,t,n)=>Ce({...e,x:e.x+t.x,y:e.y+t.y},n),Ee=(e,t,n,r,i,a)=>{let o=be(r,a.minScale??Q,a.maxScale??5),s=o/e.scale;return Ce({scale:o,x:n.x-i.x-(t.x-i.x-e.x)*s,y:n.y-i.y-(t.y-i.y-e.y)*s},a)},De=500,Oe=24,ke=(e,t={})=>{let n=t.target??(typeof document>`u`?null:document);if(!n)return()=>{};let r=t.durationMs??De,i=t.maxDistance??Oe,a=!0,o,s=()=>{a&&(a=!1,n.removeEventListener(`click`,c,!0),o!==void 0&&globalThis.clearTimeout(o))},c=t=>{let n=t;typeof n.clientX==`number`&&typeof n.clientY==`number`&&(Math.hypot(n.clientX-e.x,n.clientY-e.y)>i||(s(),t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation()))};return n.addEventListener(`click`,c,!0),o=globalThis.setTimeout(s,r),s},Ae=(e,t,n={})=>{ke(e,n),t()},je=e(s(),1);function Me(e,t,n,r,i){let a=e instanceof HTMLImageElement?e:e.querySelector(`img`);if(!a||!t.complete||!t.naturalWidth||!t.animate)return;let o=t.getBoundingClientRect(),s=a.getBoundingClientRect();if(!o.width||!o.height||!s.width||!s.height)return;let c=getComputedStyle(a),l=t.naturalWidth/t.naturalHeight,u=c.objectFit===`cover`?Math.max(s.width,s.height*l):Math.min(s.width,s.height*l),d=u/l,f=c.objectPosition.split(` `);if(!f.every(e=>e.endsWith(`%`)))return;let p=(s.width-u)*parseFloat(f[0])/100,m=(s.height-d)*parseFloat(f[1]??f[0])/100,h=s.left,g=s.top,_=s.right,v=s.bottom,y=c.borderRadius;for(let e=a.parentElement;e;e=e.parentElement){let t=getComputedStyle(e),n=e.getBoundingClientRect();[`hidden`,`clip`,`auto`,`scroll`].includes(t.overflowX)&&(h=Math.max(h,n.left),_=Math.min(_,n.right)),[`hidden`,`clip`,`auto`,`scroll`].includes(t.overflowY)&&(g=Math.max(g,n.top),v=Math.min(v,n.bottom)),n.width===s.width&&n.height===s.height&&t.borderRadius!==`0px`&&(y=t.borderRadius)}if(_<=h||v<=g)return;let b=document.createElement(`div`);b.dataset.mediaCropAnimation=``,b.setAttribute(`aria-hidden`,`true`),Object.assign(b.style,{position:`fixed`,left:`0`,top:`0`,overflow:`hidden`,pointerEvents:`none`,zIndex:`51`,contain:`paint`});let x=document.createElement(`img`);x.src=t.currentSrc||t.src,x.alt=``,Object.assign(x.style,{display:`block`,width:`${o.width}px`,height:`${o.height}px`,maxWidth:`none`,transformOrigin:`0 0`}),b.append(x),document.body.append(b);let S={transform:`translate(${o.left}px, ${o.top}px)`,width:`${o.width}px`,height:`${o.height}px`,borderRadius:`0px`},C={transform:`translate(${h}px, ${g}px)`,width:`${_-h}px`,height:`${v-g}px`,borderRadius:y},w={transform:`translate(0px, 0px) scale(1)`},T={transform:`translate(${s.left+p-h}px, ${s.top+m-g}px) scale(${u/o.width})`},E={duration:280,easing:`cubic-bezier(0.2, 0, 0, 1)`,fill:`both`},D=t.style.visibility;t.style.visibility=`hidden`;let O=[b.animate(r?[S,C]:[C,S],E),x.animate(r?[w,T]:[T,w],E),n.animate({opacity:r?[1,0]:[0,1]},E)],k=!1,A=(e=!1)=>{b.remove(),t.style.visibility=D,O.forEach((t,n)=>{(!e||n!==2)&&t.cancel()})};return Promise.all(O.map(e=>e.finished)).then(()=>{k||(A(r),i())},()=>{k||(A(),i())}),()=>{k=!0,A()}}function Ne(e,t,n,r,i=()=>{}){let a=e?.getBoundingClientRect(),o=window.matchMedia(`(prefers-reduced-motion: reduce)`).matches;if(!o&&e?.isConnected&&t instanceof HTMLImageElement&&n&&a?.width&&a.height&&a.bottom>0&&a.top<window.innerHeight&&a.right>0&&a.left<window.innerWidth){let a=Me(e,t,n,r,i);if(a)return a}if(!document.startViewTransition||o||!e?.isConnected||!t||!n||!a?.width||!a.height||a.bottom<=0||a.top>=window.innerHeight||a.right<=0||a.left>=window.innerWidth){if(!n?.animate||o)return i(),()=>{};let e=n.animate({opacity:r?[1,0]:[0,1]},{duration:150,fill:`forwards`}),t=!1;return e.finished.then(()=>{t||i()},()=>{}),()=>{t=!0,e.cancel()}}let s=e.style.viewTransitionName,c=t.style.viewTransitionName,l=n.style.visibility,u=!1,d=`oc-media-preview`;e.style.viewTransitionName=r?`none`:d,t.style.viewTransitionName=r?d:`none`,r||(n.style.visibility=`hidden`);let f=document.startViewTransition(()=>{u||(e.style.viewTransitionName=r?d:`none`,t.style.viewTransitionName=r?`none`:d,n.style.visibility=r?`hidden`:l)}),p=()=>{e.style.viewTransitionName=s,t.style.viewTransitionName=c,n.style.visibility=l};f.ready.catch(()=>{});let m=()=>{u||(p(),i())};return f.finished.then(m,m),()=>{u=!0,f.skipTransition(),p()}}function Pe(e){let t=(0,q.c)(12),{onClose:n,isMobile:r,size:i}=e,{t:a}=v(),o;t[0]!==r||t[1]!==i?(o=r?{top:`calc(var(--oc-safe-area-top, 0px) + 0.5rem)`,right:`calc(var(--oc-safe-area-right, 0px) + 0.75rem)`}:{top:i?`calc(50% - ${i.height/2}px + 0.5rem)`:`0.5rem`,right:i?`calc(50% - ${i.width/2}px + 0.5rem)`:`0.5rem`},t[0]=r,t[1]=i,t[2]=o):o=t[2];let s;t[3]===a?s=t[4]:(s=a(`dialog.common.actions.close`),t[3]=a,t[4]=s);let c;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Y.jsx)(C,{name:`close`,className:`size-5`}),t[5]=c):c=t[5];let l;t[6]!==n||t[7]!==s?(l=(0,Y.jsx)(b,{variant:`mobileGlass`,size:`mobileIcon`,"aria-label":s,onClick:n,children:c}),t[6]=n,t[7]=s,t[8]=l):l=t[8];let u;return t[9]!==o||t[10]!==l?(u=(0,Y.jsx)(`div`,{className:`absolute right-3 z-20`,style:o,children:l}),t[9]=o,t[10]=l,t[11]=u):u=t[11],u}function Fe(e){let t=(0,q.c)(28),{open:n,title:r,kind:i,source:a,isMobile:o,onOpenChange:s,children:c}=e,l=J.useRef(null),u=J.useId(),d=J.useRef(null),f=J.useRef(!1),[p,m]=J.useState(!1),h;t[0]!==s||t[1]!==a?(h=()=>{if(f.current)return;f.current=!0,d.current?.();let e=l.current?.querySelector(`[data-preview-transition-target]`)??null;d.current=Ne(e?.dataset.previewReturn===`false`?void 0:a,e,l.current,!0,()=>{m(!0),s(!1)})},t[0]=s,t[1]=a,t[2]=h):h=t[2];let g=_(h),v=`${i}-preview`,y=n&&!p&&o,b;t[3]!==g||t[4]!==v||t[5]!==y?(b={id:v,active:y,layer:`overlay`,onBack:g,surfaceRef:l},t[3]=g,t[4]=v,t[5]=y,t[6]=b):b=t[6],oe(b);let x,S;if(t[7]!==g||t[8]!==p||t[9]!==o||t[10]!==u||t[11]!==n||t[12]!==a?(x=()=>{if(!n){m(!1),f.current=!1;return}if(p)return;let e=l.current,t=document.activeElement instanceof HTMLElement?document.activeElement:null,r=o?j.add({id:u,onClose:g},document.body):void 0;return e?.querySelector(`button`)?.focus({preventScroll:!0}),d.current=Ne(a,e?.querySelector(`[data-preview-transition-target]`)??null,e,!1),()=>{d.current?.(),d.current=null,f.current=!1,r?.(),t?.isConnected&&t.focus({preventScroll:!0})}},S=[p,n,a,o,u,g],t[7]=g,t[8]=p,t[9]=o,t[10]=u,t[11]=n,t[12]=a,t[13]=x,t[14]=S):(x=t[13],S=t[14]),J.useLayoutEffect(x,S),!n||p||typeof document>`u`)return null;let C=o?`var(--oc-media-preview-background)`:`color-mix(in srgb, var(--oc-media-preview-background) ${i===`mermaid`?90:70}%, transparent)`,w;t[15]===C?w=t[16]:(w={backgroundColor:C,color:`var(--oc-media-preview-foreground)`},t[15]=C,t[16]=w);let T;t[17]===g?T=t[18]:(T=e=>{if(!e.currentTarget.contains(e.target)||(e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),g()),e.key!==`Tab`))return;let t=Array.from(e.currentTarget.querySelectorAll(`button:not([disabled]), a[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex="0"]`)),n=t[0],r=t.at(-1);e.shiftKey&&document.activeElement===n?(e.preventDefault(),r?.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n?.focus())},t[17]=g,t[18]=T);let E;t[19]!==c||t[20]!==g?(E=c(g),t[19]=c,t[20]=g,t[21]=E):E=t[21];let D;return t[22]!==i||t[23]!==E||t[24]!==w||t[25]!==T||t[26]!==r?(D=(0,je.createPortal)((0,Y.jsx)(`div`,{ref:l,role:`dialog`,"aria-modal":`true`,"aria-label":r,"data-media-preview":i,"data-page-scroll-lock":`true`,tabIndex:-1,className:`fixed inset-0 z-[80] overflow-hidden select-none [-webkit-touch-callout:none]`,style:w,onClick:Ie,onKeyDown:T,children:E}),document.body),t[22]=i,t[23]=E,t[24]=w,t[25]=T,t[26]=r,t[27]=D):D=t[27],D}function Ie(e){e.stopPropagation()}var Le=1048576,$=f(`OpenChamberVideo`),Re=e=>{let t=/^bytes=(\d*)-(\d*)$/.exec(e||`bytes=0-1048575`);if(!t||!t[1]&&!t[2])throw Error(`Invalid media range`);if(!t[1]){let e=Number(t[2]);if(!Number.isSafeInteger(e)||e<=0)throw Error(`Invalid media range`);return`bytes=-${Math.min(e,Le)}`}let n=Number(t[1]),r=t[2]?Number(t[2]):n+Le-1;if(!Number.isSafeInteger(n)||!Number.isSafeInteger(r)||r<n)throw Error(`Invalid media range`);return`bytes=${n}-${Math.min(r,n+Le-1)}`},ze=e=>{let t=``;for(let n=0;n<e.length;n+=32768)t+=String.fromCharCode(...e.subarray(n,n+32768));return btoa(t)};async function Be(e,i,a){if(!p.isNativePlatform()||p.getPlatform()!==`ios`||!p.isPluginAvailable(`OpenChamberVideo`))return null;let o=n(),s=crypto.randomUUID(),c=new Map,l=!1,u=()=>{},d=async()=>{if(!l){l=!0,u(),a.removeEventListener(`abort`,f);for(let e of c.values())e.abort();c.clear(),await Promise.allSettled([h?.remove(),$.release({assetId:s})])}},f=()=>{d()},m=async t=>{if(t.assetId!==s||l)return;if(t.cancelled){c.get(t.requestId)?.abort();return}if(c.has(t.requestId))return;let u=new AbortController;c.set(t.requestId,u);let d;try{if(o!==n()||a.aborted)throw Error(`Video runtime changed`);let s=t.method===`HEAD`?`bytes=0-0`:Re(t.range);d=await r(e,{...i,headers:{Range:s},signal:u.signal});let c=d.headers.get(`content-range`)||``;if(d.status===416&&/^bytes \*\/\d+$/.test(c)){await $.respond({requestId:t.requestId,status:416,contentRange:c,dataBase64:``});return}let f=/^bytes (\d+)-(\d+)\/(\d+)$/.exec(c);if(d.status!==206||!f)throw Error(`Host does not support video ranges`);let[p,m,h]=f.slice(1).map(Number),g=m-p+1;if(![p,m,h].every(Number.isSafeInteger)||g<=0||g>1048576||m>=h)throw Error(`Invalid video range response`);let _=d.body?.getReader();if(!_)throw Error(`Missing video response body`);let v=new Uint8Array(g),y=0;try{for(;;){let{done:e,value:t}=await _.read();if(e)break;if(y+t.length>g)throw Error(`Oversized video range`);v.set(t,y),y+=t.length}}finally{await _.cancel().catch(()=>{}),_.releaseLock()}if(y!==g)throw Error(`Truncated video range`);if(l||u.signal.aborted||o!==n())return;let b=d.headers.get(`content-type`)?.split(`;`)[0]||`application/octet-stream`;await $.respond({requestId:t.requestId,status:t.method===`HEAD`?200:206,contentType:b,contentRange:t.method===`HEAD`?void 0:c,contentLength:t.method===`HEAD`?h:g,dataBase64:t.method===`HEAD`?``:ze(v)})}catch{!l&&!u.signal.aborted&&await $.respond({requestId:t.requestId,status:502,dataBase64:``}).catch(()=>{})}finally{d?.body&&!d.body.locked&&await d.body.cancel().catch(()=>{}),c.delete(t.requestId)}},h=await $.addListener(`request`,e=>{m(e)});a.addEventListener(`abort`,f,{once:!0}),u=t(f);try{a.throwIfAborted();let{url:e}=await $.create({assetId:s});if(l||a.aborted)throw await $.release({assetId:s}),new DOMException(`Aborted`,`AbortError`);return{url:e,release:d}}catch(e){throw await d(),e}}var Ve=`image/png`,He=f(`OpenChamberMedia`),Ue=e=>{let t=e.toLowerCase().split(`;`)[0]?.trim()||Ve;if(t===`image/jpeg`||t===`image/jpg`)return`jpg`;if(t===`image/webp`)return`webp`;if(t===`image/gif`)return`gif`;if(t===`image/svg+xml`)return`svg`;if(t===`image/png`)return`png`;if(t===`video/quicktime`)return`mov`;let n=t.split(`/`)[1];return n&&/^[a-z0-9.+-]+$/i.test(n)?n:`png`},We=(e,t)=>{let n=`${t.startsWith(`video/`)?`video`:`image`}.${Ue(t)}`,r=(((e||``).trim()||n).split(/[\\/]/).pop()||n).replace(/[^\w.\- ()[\]]+/g,`_`).replace(/^\.+/,``);return r?/\.[a-z0-9]{1,8}$/i.test(r)?r:`${r}.${Ue(t)}`:n},Ge=e=>new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{if(typeof r.result==`string`){t(r.result);return}n(Error(`Failed to encode image`))},r.onerror=()=>n(r.error??Error(`Failed to encode image`)),r.readAsDataURL(e)}),Ke=async e=>{let t=await Ge(e),n=t.indexOf(`,`);return n>=0?t.slice(n+1):t},qe=(e,t)=>{let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),window.setTimeout(()=>URL.revokeObjectURL(n),1e3)},Je=async(e,t)=>{if(e.startsWith(`openchamber-asset:`)){let n=await te(e,t);if(n)return n;if(l())throw Error(`Image display stream is no longer available`)}let n=await(/^\/api(?=\/|[?#]|$)/.test(e)?r(e,{signal:t,cache:`no-store`}):fetch(e,{signal:t,cache:`no-store`}));if(!n.ok)throw Error(`Image fetch failed (${n.status})`);return n.blob()},Ye=async(e,t)=>{let n=await r(`/api/fs/raw`,{query:{path:e},signal:t});if(!n.ok)throw Error(`Image source request failed (${n.status})`);return n.blob()},Xe=async(e,t)=>{let n=e.effectiveDirectory??``,r=null;e.prefetchedBlob&&e.prefetchedBlob.size>0&&(r=e.prefetchedBlob);let i=e.displayUrl?.trim();if(!r&&i)try{r=await Je(i,t)}catch{t?.throwIfAborted(),r=null}if(!r){let i=e.sourceUrl.trim();if(!i)throw Error(`Image source is empty`);if(/^(?:data|blob):/i.test(i)||/^https?:/i.test(i)||/^\/api(?=\/|[?#]|$)/.test(i))r=await Je(i,t);else{let e=O(i,n);r=E(e)?await Ye(e.path,t):await Je(e.source,t)}}if(!r||r.size<=0)throw Error(`Image is empty`);let a=(e.mimeType||(r.type&&/^(image|video)\//.test(r.type)?r.type:``)||(e.kind===`video`?`video/mp4`:``)||Ve).split(`;`)[0].trim()||Ve;return{blob:r,filename:We(e.filename,a),mimeType:a}},Ze=()=>!l()||p===void 0?!1:p.isPluginAvailable(`OpenChamberMedia`),Qe=async(e,t)=>{let{blob:n,filename:r,mimeType:o}=await Xe(e,t);if(t?.throwIfAborted(),Ze()){let i=await Ke(n);if(t?.throwIfAborted(),e.kind===`video`){if((await He.saveFile({dataBase64:i,mimeType:o,filename:r}))?.cancelled)throw new DOMException(`Save cancelled`,`AbortError`);return`saved`}return await He.saveImage({dataBase64:i,mimeType:o,filename:r}),`saved`}if(a()){if(e.kind===`video`){let t=O(e.sourceUrl,e.effectiveDirectory??``),n=i()?.files;if(E(t)&&n?.downloadFile)return await n.downloadFile(t.path),`saved`;throw Error(`Video download is unavailable for this source in VS Code`)}let t=i()?.vscode;if(t?.saveImage){let e=await Ge(n);return await t.saveImage({fileName:r,dataUrl:e}),`saved`}}return qe(n,r),`downloaded`};function $e(e){let t=(0,q.c)(30),{target:n}=e,{t:r}=v(),[i,a]=J.useState(`idle`),o=J.useRef(null),s,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=()=>()=>o.current?.abort(),c=[],t[0]=s,t[1]=c):(s=t[0],c=t[1]),J.useEffect(s,c);let l;t[2]===n?l=t[3]:(l=async()=>{if(o.current)return;let e=new AbortController;o.current=e,a(`saving`);try{await Qe(n,e.signal),e.signal.aborted||a(`saved`)}catch(t){let n=t;if(e.signal.aborted)return;o.current=null,a(n instanceof DOMException&&n.name===`AbortError`?`idle`:`error`)}},t[2]=n,t[3]=l);let u=_(l),d=i===`saving`,f=i===`saved`,p;t[4]!==f||t[5]!==d||t[6]!==r||t[7]!==n?(p=r(d?`chat.image.actions.saving`:f?`filesView.editor.saved`:n.kind===`video`?`filesView.editor.saveFile`:`chat.image.actions.saveImage`),t[4]=f,t[5]=d,t[6]=r,t[7]=n,t[8]=p):p=t[8];let m=p,h;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(h={bottom:`calc(var(--oc-safe-area-bottom, 0px) + 0.75rem)`},t[9]=h):h=t[9];let g=d||f,y=d?`loader-4`:f?`check`:`download`,x=d?`size-5 motion-safe:animate-spin`:`size-5`,S;t[10]!==y||t[11]!==x?(S=(0,Y.jsx)(C,{name:y,className:x}),t[10]=y,t[11]=x,t[12]=S):S=t[12];let w;t[13]!==m||t[14]!==u||t[15]!==d||t[16]!==i||t[17]!==g||t[18]!==S?(w=(0,Y.jsx)(b,{variant:`ghost`,size:`mobileIcon`,"data-media-save":i,className:`pointer-events-auto text-[var(--oc-media-preview-foreground)] hover:text-[var(--oc-media-preview-foreground)] hover:bg-[color-mix(in_srgb,var(--oc-media-preview-foreground)_12%,transparent)] disabled:opacity-100`,"aria-label":m,"aria-busy":d,disabled:g,onClick:u,children:S}),t[13]=m,t[14]=u,t[15]=d,t[16]=i,t[17]=g,t[18]=S,t[19]=w):w=t[19];let T;t[20]!==m||t[21]!==i||t[22]!==r||t[23]!==n?(T=i===`error`?r(n.kind===`video`?`filesView.toast.saveFailed`:`chat.image.actions.saveFailed`):i===`idle`?``:m,t[20]=m,t[21]=i,t[22]=r,t[23]=n,t[24]=T):T=t[24];let E;t[25]===T?E=t[26]:(E=(0,Y.jsx)(`span`,{className:`sr-only`,role:`status`,"aria-live":`polite`,children:T}),t[25]=T,t[26]=E);let D;return t[27]!==w||t[28]!==E?(D=(0,Y.jsxs)(`div`,{className:`pointer-events-none absolute inset-x-0 z-20 flex justify-center`,style:h,children:[w,E]}),t[27]=w,t[28]=E,t[29]=D):D=t[29],D}function et(e){let t=(0,q.c)(53),{video:n,onClose:i,isMobile:a}=e,{t:o}=v(),s=ee()??``,c=D(),l,u;t[0]!==s||t[1]!==n.url?(l=O(n.url,s),u=E(l)?l.path:``,t[0]=s,t[1]=n.url,t[2]=l,t[3]=u):(l=t[2],u=t[3]);let d=u,f=/^\/api(?=\/|[?#]|$)/.test(n.url)?n.url:``,p=!!(d||f),h=`${c}\n${s}\n${n.url}`,[g,_]=J.useState(),y,b;t[4]!==p||t[5]!==d||t[6]!==f||t[7]!==h?(y=()=>{if(!p)return;let e=new AbortController,t;return Be(f||`/api/fs/raw`,{query:d?{path:d}:void 0},e.signal).then(async n=>{if(e.signal.aborted){await n?.release();return}t=n?.release,_({key:h,url:n?.url,unsupported:!n})}).catch(()=>{e.signal.aborted||_({key:h,error:!0})}),()=>{e.abort(),t?.()}},b=[p,d,f,h],t[4]=p,t[5]=d,t[6]=f,t[7]=h,t[8]=y,t[9]=b):(y=t[8],b=t[9]),J.useEffect(y,b);let x=g?.key===h?g:void 0,S;t[10]!==s||t[11]!==c||t[12]!==n.url?(S=[`video-preview`,c,s,n.url],t[10]=s,t[11]=c,t[12]=n.url,t[13]=S):S=t[13];let C=p&&x?.unsupported===!0,w;t[14]!==d||t[15]!==f?(w=async e=>{let{signal:t}=e,n=await r(f||`/api/fs/raw`,{query:d?{path:d}:void 0,signal:t});if(!n.ok)throw Error(`Video request failed (${n.status})`);return n.blob()},t[14]=d,t[15]=f,t[16]=w):w=t[16];let T;t[17]!==S||t[18]!==C||t[19]!==w?(T={queryKey:S,enabled:C,gcTime:0,staleTime:1/0,retry:!1,queryFn:w},t[17]=S,t[18]=C,t[19]=w,t[20]=T):T=t[20];let k=m(T),[A,j]=J.useState(null),M,N;t[21]===k.data?(M=t[22],N=t[23]):(M=()=>{if(!k.data)return;let e=URL.createObjectURL(k.data);return j({blob:k.data,url:e}),()=>URL.revokeObjectURL(e)},N=[k.data],t[21]=k.data,t[22]=M,t[23]=N),J.useEffect(M,N);let P=p?x?.url||(A?.blob===k.data?A?.url:``):l.source,[F,te]=J.useState(),I=x?.error||k.isError||!!(P&&F===P),L;t[24]!==a||t[25]!==i?(L=(0,Y.jsx)(Pe,{onClose:i,isMobile:a}),t[24]=a,t[25]=i,t[26]=L):L=t[26];let R;t[27]!==I||t[28]!==P||t[29]!==o?(R=!P&&!I&&(0,Y.jsx)(`p`,{role:`status`,children:o(`common.loading`)}),t[27]=I,t[28]=P,t[29]=o,t[30]=R):R=t[30];let z;t[31]!==I||t[32]!==o?(z=I&&(0,Y.jsx)(`p`,{role:`alert`,children:o(`filesView.error.readFileFailed`)}),t[31]=I,t[32]=o,t[33]=z):z=t[33];let B;t[34]!==P||t[35]!==n.filename?(B=P&&(0,Y.jsx)(`video`,{src:P,controls:!0,playsInline:!0,preload:`metadata`,"aria-label":n.filename,className:`max-h-[80dvh] w-full max-w-5xl object-contain`,onError:()=>te(P),controlsList:`nodownload`,onContextMenu:tt},P),t[34]=P,t[35]=n.filename,t[36]=B):B=t[36];let V=x?.url?void 0:P,H;t[37]!==s||t[38]!==k.data||t[39]!==V||t[40]!==n.filename||t[41]!==n.mimeType||t[42]!==n.url?(H={kind:`video`,sourceUrl:n.url,displayUrl:V,filename:n.filename,mimeType:n.mimeType,effectiveDirectory:s,prefetchedBlob:k.data},t[37]=s,t[38]=k.data,t[39]=V,t[40]=n.filename,t[41]=n.mimeType,t[42]=n.url,t[43]=H):H=t[43];let U;t[44]!==h||t[45]!==H?(U=(0,Y.jsx)($e,{target:H},h),t[44]=h,t[45]=H,t[46]=U):U=t[46];let W;return t[47]!==L||t[48]!==R||t[49]!==z||t[50]!==B||t[51]!==U?(W=(0,Y.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-3 p-4`,children:[L,R,z,B,U]}),t[47]=L,t[48]=R,t[49]=z,t[50]=B,t[51]=U,t[52]=W):W=t[52],W}function tt(e){return e.preventDefault()}var nt=400,rt=(e,t)=>new fe(e,t),it=e=>{let t=`h-3.5 w-3.5 flex-shrink-0`,n=e.toLowerCase();return n===`reasoning`?(0,Y.jsx)(C,{name:`brain-ai-3`,className:t}):n===`image-preview`?(0,Y.jsx)(C,{name:`file-image`,className:t}):n===`mermaid-preview`?(0,Y.jsx)(C,{name:`file-list-2`,className:t}):n===`edit`||n===`multiedit`||n===`apply_patch`||n===`str_replace`||n===`str_replace_based_edit_tool`?(0,Y.jsx)(C,{name:`pencil-ai`,className:t}):n===`write`||n===`create`||n===`file_write`||n===`read`||n===`view`||n===`file_read`||n===`cat`?(0,Y.jsx)(C,{name:`file-pdf`,className:t}):n===`bash`||n===`shell`||n===`cmd`||n===`terminal`?(0,Y.jsx)(C,{name:`terminal-box`,className:t}):n===`list`||n===`ls`||n===`dir`||n===`list_files`?(0,Y.jsx)(C,{name:`folder-6`,className:t}):n===`search`||n===`grep`||n===`find`||n===`ripgrep`?(0,Y.jsx)(C,{name:`search`,className:t}):n===`glob`?(0,Y.jsx)(C,{name:`file-search`,className:t}):n===`fetch`||n===`curl`||n===`wget`||n===`webfetch`?(0,Y.jsx)(C,{name:`global`,className:t}):n===`web-search`||n===`websearch`||n===`search_web`||n===`google`||n===`bing`||n===`duckduckgo`?(0,Y.jsx)(C,{name:`search`,className:t}):n===`todowrite`||n===`todoread`?(0,Y.jsx)(C,{name:`list-check-3`,className:t}):n.startsWith(`git`)?(0,Y.jsx)(C,{name:`git-branch`,className:t}):(0,Y.jsx)(C,{name:`tools`,className:t})},at={style:{background:`transparent`,backgroundColor:`transparent`,fontSize:`inherit`}},ot={download:!1,copy:!1,showPanZoomControls:!0},st=`
3
- [data-diff-header],
4
- [data-diff] {
5
- [data-separator] {
6
- height: 24px !important;
7
- }
8
- }
9
- `,ct={hunkLineCount:50,lineHeight:24,diffHeaderHeight:44,hunkSeparatorHeight:24,spacing:0},lt=()=>{let e=(0,q.c)(22),t=S(),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=A(!1),e[0]=n):n=e[0];let r=n,i;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(i=A(!0),e[1]=i):i=e[1];let a=i,o;e[2]===t?.availableThemes?o=e[3]:(o=()=>t?.availableThemes??[r,a],e[2]=t?.availableThemes,e[3]=o),t?.availableThemes;let s;e[4]===o?s=e[5]:(s=o(),e[4]=o,e[5]=s);let c=s,l=t?.lightThemeId??r.metadata.id,u=t?.darkThemeId??a.metadata.id,d;e[6]!==c||e[7]!==l?(d=c.find(e=>e.metadata.id===l)??r,e[6]=c,e[7]=l,e[8]=d):d=e[8];let f=d,p;e[9]!==c||e[10]!==u?(p=c.find(e=>e.metadata.id===u)??a,e[9]=c,e[10]=u,e[11]=p):p=e[11];let m=p,h,g;e[12]!==m||e[13]!==f?(h=()=>{M(f),M(m)},g=[m,f],e[12]=m,e[13]=f,e[14]=h,e[15]=g):(h=e[14],g=e[15]),J.useEffect(h,g);let _=t?.currentTheme.metadata.variant??`light`,v;e[16]!==m.metadata.id||e[17]!==f.metadata.id?(v={light:f.metadata.id,dark:m.metadata.id},e[16]=m.metadata.id,e[17]=f.metadata.id,e[18]=v):v=e[18];let y=_===`dark`?`dark`:`light`,b;return e[19]!==v||e[20]!==y?(b={theme:v,themeType:y},e[19]=v,e[20]=y,e[21]=b):b=e[21],b},ut=()=>({width:typeof window<`u`?window.innerWidth:0,height:typeof window<`u`?window.innerHeight:0}),dt=e=>{let t=(0,q.c)(3),[n,r]=J.useState(ut),i,a;return t[0]===e?(i=t[1],a=t[2]):(i=()=>{if(!e||typeof window>`u`)return;let t=()=>{r(ut())};return t(),window.addEventListener(`resize`,t),()=>{window.removeEventListener(`resize`,t)}},a=[e],t[0]=e,t[1]=i,t[2]=a),J.useEffect(i,a),n},ft=({popup:e,onOpenChange:t,isMobile:n})=>{let{t:r}=v(),i=S(),a=ee()??``,o=J.useMemo(()=>{let t=e.image;if(!t)return[];let n=Array.isArray(t.gallery)?t.gallery.filter(e=>!!e?.url):[];return n.length>0?n:[{url:t.url,mimeType:t.mimeType,filename:t.filename,size:t.size}]},[e.image]),[s,c]=J.useState(()=>{let t=e.image?.index??o.findIndex(t=>t.url===e.image?.url);return t>=0&&t<o.length?t:0}),l=e.previewSource instanceof HTMLImageElement?e.previewSource:void 0,u=l?.naturalWidth&&l.naturalHeight?{width:l.naturalWidth,height:l.naturalHeight}:null,[d,f]=J.useState(u),[p,m]=J.useState(!!u),h=e.open,g=dt(e.open),x=J.useRef(null),w=J.useRef(null),T=J.useRef(null),E=J.useRef(null),D=J.useRef({scale:1,x:0,y:0}),O=J.useRef({image:{width:1,height:1},viewport:{width:1,height:1},maxScale:5}),A=J.useRef(new Map),j=J.useRef(null),M=J.useRef(null),N=J.useRef(null),P=J.useRef(null),F=J.useRef(0);J.useEffect(()=>{e.open&&(F.current=typeof performance<`u`?performance.now():Date.now())},[e.open]);let te=_(()=>(typeof performance<`u`?performance.now():Date.now())-F.current<nt);J.useEffect(()=>{if(!e.open||o.length===0)return;let t=typeof e.image?.index==`number`?e.image.index:-1;if(t>=0&&t<o.length){c(t);return}let n=e.image?.url?o.findIndex(t=>t.url===e.image?.url):-1;c(n>=0?n:0)},[o,e.image?.index,e.image?.url,e.open]);let L=o[s]??o[0]??e.image,R=k(L?.url??``,a,`preview`),z=R.source||(L?.url===e.image?.url?l?.currentSrc:``)||``,B=`${R.key}\n${z}`,[V,H]=J.useState(``),U=!!(R.error||V===B),W=_(()=>H(B)),ne=L?.filename||e.title,G=o.length>1,re=_(()=>{o.length<=1||c(e=>(e-1+o.length)%o.length)}),ie=_(()=>{o.length<=1||c(e=>(e+1)%o.length)}),K=J.useMemo(()=>{let e={width:Math.max(1,g.width*(n?1:.8)),height:Math.max(1,g.height*(n?1:.95))};return d?Se(d,e):e},[d,n,g.height,g.width]),ae=J.useMemo(()=>({image:K,viewport:{width:Math.max(1,g.width),height:Math.max(1,g.height)},maxScale:5}),[K,g.height,g.width]),oe=_((e,t=!1)=>{let n=Ce(e,O.current);D.current=n,P.current={transform:n,animate:t},!(N.current!==null||typeof window>`u`)&&(N.current=window.requestAnimationFrame(()=>{N.current=null;let e=P.current;P.current=null,e&&(T.current&&(T.current.style.transition=e.animate?`transform 180ms cubic-bezier(0.22, 1, 0.36, 1)`:`none`,T.current.style.transform=`translate3d(${e.transform.x}px, ${e.transform.y}px, 0) scale(${e.transform.scale})`),E.current&&(E.current.textContent=`${Math.round(e.transform.scale*100)}%`),x.current&&(x.current.style.cursor=e.transform.scale>1?`grab`:`zoom-in`))}))}),q=_((e=!0)=>{oe({scale:1,x:0,y:0},e)}),X=_(()=>({x:O.current.viewport.width/2,y:O.current.viewport.height/2})),Z=_((e,t,n=!1)=>{oe(we(D.current,e,t,X(),O.current),n)}),se=_(e=>{if(D.current.scale>1.01){q(!0);return}Z(2,e,!0)}),ce=_(e=>{if(!(n||e.defaultPrevented)){if(e.key===`+`||e.key===`=`){e.preventDefault(),Z(D.current.scale*1.4,X(),!0);return}if(e.key===`-`||e.key===`_`){e.preventDefault(),Z(D.current.scale/1.4,X(),!0);return}if(e.key===`0`){e.preventDefault(),q(!0);return}if(e.key===`ArrowLeft`&&G){e.preventDefault(),re();return}e.key===`ArrowRight`&&G&&(e.preventDefault(),ie())}});J.useEffect(()=>{if(e.open)return window.addEventListener(`keydown`,ce),()=>{window.removeEventListener(`keydown`,ce)}},[e.open]),J.useEffect(()=>{N.current!==null&&window.cancelAnimationFrame(N.current),N.current=null,P.current=null;let t=L?.url===e.image?.url?l:void 0;f(t?.naturalWidth&&t.naturalHeight?{width:t.naturalWidth,height:t.naturalHeight}:null),m(!!t?.naturalWidth),D.current={scale:1,x:0,y:0},A.current.clear(),j.current=null,M.current=null,T.current&&(T.current.style.transform=`translate3d(0, 0, 0) scale(1)`),E.current&&(E.current.textContent=`100%`)},[L?.url,z,e.image?.url,l]),J.useLayoutEffect(()=>{O.current=ae;let e=Ce(D.current,O.current);D.current=e,T.current&&(T.current.style.transition=`none`,T.current.style.transform=`translate3d(${e.x}px, ${e.y}px, 0) scale(${e.scale})`)},[ae]),J.useEffect(()=>()=>{N.current!==null&&window.cancelAnimationFrame(N.current),N.current=null,P.current=null},[]);let le=_(e=>{if(n)return;e.preventDefault();let t={x:e.clientX,y:e.clientY},r=Math.exp(-e.deltaY*.002);Z(D.current.scale*r,t)});J.useEffect(()=>{let e=x.current;if(!(!h||n||!e))return e.addEventListener(`wheel`,le,{passive:!1}),()=>e.removeEventListener(`wheel`,le)},[n,h]);let ue=_(e=>{n||(e.preventDefault(),se({x:e.clientX,y:e.clientY}))}),de=_(e=>{e.preventDefault(),e.stopPropagation()}),fe=_(e=>{e.pointerType!==`mouse`&&e.preventDefault(),e.currentTarget.setPointerCapture(e.pointerId);let t={x:e.clientX,y:e.clientY};if(A.current.set(e.pointerId,{point:t,pointerType:e.pointerType}),A.current.size===1){j.current={pointerId:e.pointerId,pointerType:e.pointerType,start:t,transform:D.current,moved:!1,targetWasCanvas:e.target===e.currentTarget,suppressTap:!1},x.current&&D.current.scale>1&&(x.current.style.cursor=`grabbing`);return}j.current&&(j.current.suppressTap=!0);let n=Array.from(A.current.values()).slice(0,2).map(e=>e.point),r=n[1].x-n[0].x,i=n[1].y-n[0].y;M.current={distance:Math.max(1,Math.hypot(r,i)),midpoint:{x:(n[0].x+n[1].x)/2,y:(n[0].y+n[1].y)/2},transform:D.current},j.current&&(j.current.suppressTap=!0)}),pe=_(e=>{if(!A.current.has(e.pointerId))return;e.preventDefault();let t={x:e.clientX,y:e.clientY};if(A.current.set(e.pointerId,{point:t,pointerType:e.pointerType}),A.current.size>=2&&M.current){let e=Array.from(A.current.values()).slice(0,2).map(e=>e.point),t=e[1].x-e[0].x,n=e[1].y-e[0].y,r={x:(e[0].x+e[1].x)/2,y:(e[0].y+e[1].y)/2},i=M.current.transform.scale*Math.hypot(t,n)/M.current.distance;oe(Ee(M.current.transform,M.current.midpoint,r,i,X(),O.current));return}let n=j.current;if(!n||n.pointerId!==e.pointerId)return;let r={x:t.x-n.start.x,y:t.y-n.start.y};Math.hypot(r.x,r.y)>10&&(n.moved=!0),n.transform.scale>1.01&&oe(Te(n.transform,r,O.current))}),me=_((e,r)=>{let i=j.current,a=A.current.get(e.pointerId)?{x:e.clientX,y:e.clientY}:void 0;if(A.current.delete(e.pointerId),i?.pointerId===e.pointerId&&a){let e=xe({isMobile:n,pointerType:i.pointerType,cancelled:r,moved:i.moved||Math.hypot(a.x-i.start.x,a.y-i.start.y)>10,suppressTap:i.suppressTap,targetWasCanvas:i.targetWasCanvas,start:i.start,end:a,startScale:i.transform.scale,hasMultipleImages:G});if(e===`next`&&ie(),e===`previous`&&re(),e===`close`){if(te())return;if(n&&i.pointerType!==`mouse`){Ae(a,()=>t(!1));return}t(!1)}}if(A.current.size===1){let[e,t]=Array.from(A.current.entries())[0];j.current={pointerId:e,pointerType:t.pointerType,start:t.point,transform:D.current,moved:!1,targetWasCanvas:!1,suppressTap:!0},M.current=null}else A.current.size===0&&(j.current=null,M.current=null,x.current&&(x.current.style.cursor=D.current.scale>1?`grab`:`zoom-in`));e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId)}),he=_(e=>{e.preventDefault(),e.stopPropagation(),j.current&&(j.current.suppressTap=!0)}),ge=_(e=>{let t=e.currentTarget;t.naturalWidth>0&&t.naturalHeight>0&&f(e=>e?.width===t.naturalWidth&&e.height===t.naturalHeight?e:{width:t.naturalWidth,height:t.naturalHeight}),m(!0)});if(!h||!L||typeof document>`u`)return null;let _e=i?.currentTheme.metadata.variant===`dark`,ve=_e?`border-foreground/15 bg-foreground/10 text-foreground`:`border-background/15 bg-background/10 text-background`,Q=_e?`text-foreground hover:bg-foreground/15 hover:text-foreground`:`text-background hover:bg-background/15 hover:text-background`;return(0,Y.jsxs)(`div`,{ref:w,className:`absolute inset-0 overflow-hidden select-none`,tabIndex:-1,onClick:de,children:[(0,Y.jsx)(Pe,{onClose:()=>t(!1),isMobile:n,size:K}),(0,Y.jsxs)(`div`,{ref:x,className:`absolute inset-0 flex items-center justify-center overflow-hidden touch-none [overscroll-behavior:none]`,onDoubleClick:n?void 0:ue,onContextMenu:he,onPointerDown:fe,onPointerMove:pe,onPointerUp:e=>me(e,!1),onPointerCancel:e=>me(e,!0),onLostPointerCapture:e=>me(e,!0),children:[!p&&!U&&(0,Y.jsx)(`div`,{className:`pointer-events-none absolute inset-0 flex items-center justify-center`,role:`status`,children:(0,Y.jsx)(I,{className:`aspect-square w-64 max-w-[80vw] rounded-xl`})}),U?(0,Y.jsx)(`p`,{role:`status`,className:`px-6 text-center typography-ui-label`,children:r(`filesView.error.readFileFailed`)}):(0,Y.jsx)(`img`,{ref:T,"data-preview-transition-target":``,"data-preview-return":L?.url===e.image?.url,src:z||void 0,alt:ne??``,className:y(`block max-w-none object-contain will-change-transform`,p?`opacity-100`:`opacity-0`),style:{width:`${K.width}px`,height:`${K.height}px`},loading:`lazy`,draggable:!1,onLoad:ge,onError:W})]}),(0,Y.jsx)(`div`,{className:`pointer-events-none absolute inset-x-0 z-10 flex justify-center px-2 pb-2`,style:{bottom:`calc(var(--oc-safe-area-bottom, 0px) + 3.75rem)`},children:(0,Y.jsxs)(`div`,{className:y(`pointer-events-auto flex h-10 items-center gap-0.5 rounded-full border px-1 shadow-lg backdrop-blur-xl`,ve),onPointerDown:e=>e.stopPropagation(),onDoubleClick:e=>e.stopPropagation(),children:[G&&(0,Y.jsx)(b,{variant:`ghost`,size:`icon`,className:y(`size-8 rounded-full`,Q),onClick:re,"aria-label":r(`chat.toolOutputDialog.image.previousAria`),title:r(`chat.toolOutputDialog.image.previousAria`),children:(0,Y.jsx)(C,{name:`arrow-left-s`,className:`size-5`})}),G&&(0,Y.jsxs)(`span`,{className:`min-w-10 px-1 text-center typography-micro tabular-nums opacity-80`,children:[s+1,` / `,o.length]}),G&&(0,Y.jsx)(b,{variant:`ghost`,size:`icon`,className:y(`size-8 rounded-full`,Q),onClick:ie,"aria-label":r(`chat.toolOutputDialog.image.nextAria`),title:r(`chat.toolOutputDialog.image.nextAria`),children:(0,Y.jsx)(C,{name:`arrow-right-s`,className:`size-5`})}),G&&(0,Y.jsx)(`span`,{className:`mx-0.5 h-4 w-px bg-current opacity-15`,"aria-hidden":`true`}),(0,Y.jsx)(b,{variant:`ghost`,size:`icon`,className:y(`size-8 rounded-full`,Q),onClick:()=>Z(D.current.scale/1.4,X(),!0),"aria-label":r(`chat.toolOutputDialog.image.zoomOutAria`),title:r(`chat.toolOutputDialog.image.zoomOutAria`),children:(0,Y.jsx)(C,{name:`subtract`,className:`size-4`})}),(0,Y.jsxs)(b,{variant:`ghost`,size:`sm`,className:y(`h-8 min-w-14 rounded-full px-2 tabular-nums`,Q),onClick:()=>q(!0),"aria-label":r(`chat.toolOutputDialog.image.resetZoomAria`),title:r(`chat.toolOutputDialog.image.resetZoomAria`),children:[(0,Y.jsx)(C,{name:`restart`,className:`size-3.5`}),(0,Y.jsx)(`span`,{ref:E,children:`100%`})]}),(0,Y.jsx)(b,{variant:`ghost`,size:`icon`,className:y(`size-8 rounded-full`,Q),onClick:()=>Z(D.current.scale*1.4,X(),!0),"aria-label":r(`chat.toolOutputDialog.image.zoomInAria`),title:r(`chat.toolOutputDialog.image.zoomInAria`),children:(0,Y.jsx)(C,{name:`add`,className:`size-4`})})]})}),(0,Y.jsx)($e,{target:{sourceUrl:L.url||z,displayUrl:z||void 0,filename:L.filename||e.image?.filename||e.title,mimeType:L.mimeType||e.image?.mimeType,effectiveDirectory:a}},R.key)]})},pt=J.memo(e=>{let t=(0,q.c)(7),{popup:n,diffViewMode:r,pierreThemeConfig:i}=e,a=n.content||``,o=r===`unified`?`unified`:`split`,s;t[0]!==i.theme||t[1]!==i.themeType||t[2]!==o?(s={diffStyle:o,diffIndicators:`none`,hunkSeparators:`line-info-basic`,lineDiffType:`none`,disableFileHeader:!0,maxLineDiffLength:1e3,expansionLineCount:20,overflow:`wrap`,theme:i.theme,themeType:i.themeType,unsafeCSS:st},t[0]=i.theme,t[1]=i.themeType,t[2]=o,t[3]=s):s=t[3];let c;return t[4]!==a||t[5]!==s?(c=(0,Y.jsx)(`div`,{className:`typography-code`,children:(0,Y.jsx)(g,{patch:a,metrics:ct,options:s,className:`block w-full`})}),t[4]=a,t[5]=s,t[6]=c):c=t[6],c});pt.displayName=`DialogUnifiedDiff`;var mt=J.memo(e=>{let t=(0,q.c)(29),{popup:n,pierreThemeConfig:r}=e,i;t[0]===n.content?i=t[1]:(i=V(n.content),t[0]=n.content,t[1]=i);let a=i,o=n.metadata?.input,s;t[2]===o?s=t[3]:(s=typeof o==`object`&&o?o:{},t[2]=o,t[3]=s);let c=s,l=typeof c.offset==`number`?c.offset:0,u=typeof c.file_path==`string`?c.file_path:typeof c.filePath==`string`?c.filePath:typeof c.path==`string`?c.path:`read-output`,d;t[4]===a.lines?d=t[5]:(d=a.lines.map(_t).join(`
10
- `),t[4]=a.lines,t[5]=d);let f=d,p;t[6]!==u||t[7]!==n.language?(p=n.language||F(u)||`text`,t[6]=u,t[7]=n.language,t[8]=p):p=t[8];let m=p,g;t[9]===a.lines?g=t[10]:(g=a.lines.some(vt),t[9]=a.lines,t[10]=g);let _=g,v;if(t[11]!==_||t[12]!==l||t[13]!==a.lines||t[14]!==a.type){v=[];let e=l;for(let t of a.lines){t.lineNumber!==null&&(e=t.lineNumber);let n=a.type===`file`&&!_&&t.lineNumber===null&&!t.isInfo,r=t.lineNumber??(n?e+1:null);typeof r==`number`&&(e=r),v.push({text:t.text,lineNumber:r,isInfo:t.isInfo})}t[11]=_,t[12]=l,t[13]=a.lines,t[14]=a.type,t[15]=v}else v=t[15];let y=v;if(a.type===`file`){let e=m||void 0,n;t[16]!==f||t[17]!==u||t[18]!==e?(n={name:u,contents:f,lang:e},t[16]=f,t[17]=u,t[18]=e,t[19]=n):n=t[19];let i;t[20]!==r.theme||t[21]!==r.themeType?(i={disableFileHeader:!0,overflow:`wrap`,theme:r.theme,themeType:r.themeType},t[20]=r.theme,t[21]=r.themeType,t[22]=i):i=t[22];let a;return t[23]!==n||t[24]!==i?(a=(0,Y.jsx)(h,{file:n,options:i,className:`block w-full`}),t[23]=n,t[24]=i,t[25]=a):a=t[25],a}let b;return t[26]!==y||t[27]!==m?(b=(0,Y.jsx)(se,{lines:y,language:m,maxHeight:`70vh`}),t[26]=y,t[27]=m,t[28]=b):b=t[28],b});mt.displayName=`DialogReadContent`;var ht=({popup:e,onOpenChange:t,isMobile:n})=>{let{t:i}=v(),a=S(),o=J.useMemo(()=>a?.currentTheme.metadata.variant===`dark`?a.currentTheme:a?.availableThemes.find(e=>e.metadata.id===a.darkThemeId&&e.metadata.variant===`dark`)??A(!0),[a?.currentTheme,a?.availableThemes,a?.darkThemeId]),[s,c]=J.useState(e.mermaid?.source||``),[l,u]=J.useState(e.mermaid?.source?`ready`:`idle`),[d,f]=J.useState(``),p=J.useRef(0),m=J.useCallback(e=>{let t=e.trim();if(!t.toLowerCase().startsWith(`file://`))return null;let n=e=>{if(!e||/[\0\r\n]/.test(e))return!1;let t=e.replace(/\\/g,`/`);return t.split(`/`).filter(Boolean).includes(`..`)?!1:t.startsWith(`/`)?!0:/^[A-Za-z]:\//.test(t)},r=e=>e.replace(/%([0-9A-Fa-f]{2})/g,(e,t)=>{let n=Number.parseInt(t,16);return Number.isFinite(n)?String.fromCharCode(n):`%${t}`});if(typeof URL.canParse==`function`&&URL.canParse(t)){let e=r(new URL(t).pathname||``);return/^\/[A-Za-z]:\//.test(e)&&(e=e.slice(1)),n(e)?e:null}let i=t.replace(/^file:\/\//i,``),a=r(i);return n(a)?a:n(i)?i:null},[]),h=J.useCallback(async()=>{let t=e.mermaid,n=he(p.current);if(p.current=n,!t?.url){u(`error`),f(i(`chat.toolOutputDialog.mermaid.missingSource`));return}if(t.source){c(t.source),u(`ready`),f(``);return}u(`loading`),f(``);let a;if(t.url.startsWith(`data:`))a=ve(t.url);else if(t.url.toLowerCase().startsWith(`file://`)){let e=m(t.url);a=e?r(`/api/fs/raw`,{query:{path:e}}).then(e=>e.ok?e.text():Promise.reject(rt(`chat.toolOutputDialog.mermaid.readFileFailedWithStatus`,{status:e.status}))):Promise.reject(rt(`chat.toolOutputDialog.mermaid.invalidLocalPath`))}else{let e=typeof URL.canParse==`function`&&URL.canParse(t.url,window.location.origin)?new URL(t.url,window.location.origin):null;a=!e||e.protocol!==`http:`&&e.protocol!==`https:`?Promise.reject(rt(`chat.toolOutputDialog.mermaid.unsupportedUrlProtocol`)):fetch(e.toString()).then(e=>e.ok?e.text():Promise.reject(rt(`chat.toolOutputDialog.mermaid.loadFailedWithStatus`,{status:e.status})))}await a.then(e=>{ge(p.current,n)&&(c(e),u(`ready`))}).catch(e=>{ge(p.current,n)&&(u(`error`),f(me(e)?i(e.key,e.params):i(`chat.toolOutputDialog.mermaid.loadFailed`)))})},[m,e.mermaid,i]);J.useEffect(()=>{!e.open||!e.mermaid||h()},[h,e.mermaid,e.open]);let g=`\`\`\`mermaid\n${s}\n\`\`\``;return!e.open||typeof document>`u`?null:(0,Y.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,onClick:e=>{e.target===e.currentTarget&&t(!1)},children:(0,Y.jsxs)(`div`,{"data-mermaid-preview":`true`,"data-preview-transition-target":``,className:`relative flex min-h-0 flex-col overflow-hidden`,style:{width:n?`100%`:`80%`,height:n?`100%`:`95%`},onMouseDown:e=>e.stopPropagation(),children:[(0,Y.jsx)(Pe,{onClose:()=>t(!1),isMobile:n}),(0,Y.jsx)(`div`,{className:`relative min-h-0 flex-1 overflow-hidden`,children:(0,Y.jsxs)(`div`,{className:`h-full overflow-hidden`,children:[l===`loading`&&(0,Y.jsxs)(`div`,{className:`h-full min-h-28 flex items-center justify-center gap-2 text-muted-foreground typography-meta`,children:[(0,Y.jsx)(C,{name:`loader-4`,className:`h-4 w-4 animate-spin`}),(0,Y.jsx)(`span`,{children:i(`chat.toolOutputDialog.mermaid.loading`)})]}),l===`error`&&(0,Y.jsxs)(`div`,{className:`rounded-xl border p-3 space-y-3`,style:{backgroundColor:`var(--status-error-background)`,borderColor:`var(--status-error-border)`},children:[(0,Y.jsx)(`p`,{className:`typography-markdown`,style:{color:`var(--status-error)`},children:d||i(`chat.toolOutputDialog.mermaid.renderFailed`)}),(0,Y.jsx)(`button`,{type:`button`,onClick:()=>{h()},className:`px-3 py-1.5 rounded-lg typography-meta border transition-colors hover:bg-[var(--interactive-hover)]`,style:{borderColor:`var(--interactive-border)`,color:`var(--surface-foreground)`},children:i(`chat.toolOutputDialog.mermaid.retry`)})]}),l===`ready`&&(0,Y.jsx)(`div`,{className:`h-full`,children:(0,Y.jsx)(N,{content:g,variant:`tool`,allowMermaidWheelEvents:!0,className:`markdown-mermaid-fullscreen h-full`,mermaidControls:ot,mermaidTheme:o,enableFileReferences:!1})})]})})]})})},gt=e=>{let t=(0,q.c)(52),{popup:n,onOpenChange:r,isMobile:i}=e,{t:a}=v(),[o,s]=J.useState(`unified`),c=lt(),l;t[0]===n.open?l=t[1]:(l=()=>{n.open&&s(`unified`)},t[0]=n.open,t[1]=l);let d;t[2]!==n.open||t[3]!==n.title?(d=[n.open,n.title],t[2]=n.open,t[3]=n.title,t[4]=d):d=t[4],J.useEffect(l,d);let f=n.video??(n.image&&P(n.image.url,n.image.mimeType)?n.image:void 0);if(n.image||n.mermaid||f){let e=f?`video`:n.image?`image`:`mermaid`,a;t[5]!==i||t[6]!==n||t[7]!==f?(a=e=>(0,Y.jsx)(Y.Fragment,{children:f?(0,Y.jsx)(et,{video:f,onClose:e,isMobile:i}):n.image?(0,Y.jsx)(ft,{popup:n,onOpenChange:e,isMobile:i}):(0,Y.jsx)(ht,{popup:n,onOpenChange:e,isMobile:i})}),t[5]=i,t[6]=n,t[7]=f,t[8]=a):a=t[8];let o;return t[9]!==i||t[10]!==r||t[11]!==n.open||t[12]!==n.previewSource||t[13]!==n.title||t[14]!==e||t[15]!==a?(o=(0,Y.jsx)(Fe,{open:n.open,title:n.title,kind:e,source:n.previewSource,isMobile:i,onOpenChange:r,children:a}),t[9]=i,t[10]=r,t[11]=n.open,t[12]=n.previewSource,t[13]=n.title,t[14]=e,t[15]=a,t[16]=o):o=t[16],o}let p=n.open,m=i?`w-[95vw] max-w-[95vw]`:`max-w-5xl`,g=i?`[&>button]:right-1`:`[&>button]:top-2.5 [&>button]:right-4`,_;t[17]!==m||t[18]!==g?(_=y(`overflow-hidden flex flex-col min-h-0 pt-3 pb-4 px-4 gap-1`,`[&>button]:top-1.5`,m,g),t[17]=m,t[18]=g,t[19]=_):_=t[19];let b;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(b={maxHeight:`90vh`},t[20]=b):b=t[20];let x;t[21]===n.metadata?x=t[22]:(x=n.metadata?.tool?it(n.metadata.tool):(0,Y.jsx)(C,{name:`tools`,className:`h-3.5 w-3.5 text-foreground flex-shrink-0`}),t[21]=n.metadata,t[22]=x);let S;t[23]===n.title?S=t[24]:(S=(0,Y.jsx)(`span`,{className:`break-words flex-1 leading-tight`,children:n.title}),t[23]=n.title,t[24]=S);let E;t[25]!==o||t[26]!==n.isDiff?(E=n.isDiff&&(0,Y.jsx)(U,{mode:o,onModeChange:s,className:`mr-8 flex-shrink-0`}),t[25]=o,t[26]=n.isDiff,t[27]=E):E=t[27];let D;t[28]!==E||t[29]!==x||t[30]!==S?(D=(0,Y.jsx)(`div`,{className:`flex-shrink-0 pb-1`,children:(0,Y.jsxs)(`div`,{className:`flex items-start gap-2 text-foreground typography-ui-header font-semibold`,children:[x,S,E]})}),t[28]=E,t[29]=x,t[30]=S,t[31]=D):D=t[31];let O;t[32]!==c||t[33]!==n.metadata?(O=n.metadata?.input&&typeof n.metadata.input==`object`&&Object.keys(n.metadata.input).length>0&&n.metadata?.tool!==`todowrite`&&n.metadata?.tool!==`todoread`&&n.metadata?.tool!==`apply_patch`?(()=>{let e=n.metadata,t=e.input,r=e=>{let n=t[e];return typeof n==`string`?n:typeof n==`number`?String(n):null};return(0,Y.jsxs)(`div`,{className:`border-b border-border/20 p-4 -mx-3`,children:[(0,Y.jsx)(`div`,{className:`typography-markdown font-medium text-muted-foreground mb-2 px-3`,children:e.tool===`bash`||e.tool===`shell`?`Command:`:e.tool===`task`||e.tool===`subagent`?`Task Details:`:`Input:`}),(e.tool===`bash`||e.tool===`shell`)&&r(`command`)?(0,Y.jsx)(`div`,{className:`tool-input-surface bg-transparent rounded-xl border border-border/20 mx-3`,children:(0,Y.jsx)(z,{language:`bash`,code:r(`command`),style:u.getPopupStyles(),codeStyle:at.style,wrap:!0})}):(e.tool===`task`||e.tool===`subagent`)&&r(`prompt`)?(0,Y.jsxs)(`div`,{className:`tool-input-surface bg-transparent rounded-xl border border-border/20 font-mono whitespace-pre-wrap text-foreground/90 mx-3`,style:u.getPopupStyles(),children:[r(`description`)?`Task: ${r(`description`)}\n`:``,r(`subagent_type`)||r(`agent`)?`Agent Type: ${r(`subagent_type`)||r(`agent`)}\n`:``,`Instructions:\n${r(`prompt`)}`]}):e.tool===`write`&&r(`content`)?(0,Y.jsx)(`div`,{className:`tool-input-surface bg-transparent rounded-xl border border-border/20 mx-3`,children:(0,Y.jsx)(h,{file:{name:r(`filePath`)||r(`file_path`)||`new-file`,contents:r(`content`),lang:F(r(`filePath`)||r(`file_path`)||``)||void 0},options:{disableFileHeader:!0,overflow:`wrap`,theme:c.theme,themeType:c.themeType},className:`block w-full`})}):(0,Y.jsx)(`div`,{className:`tool-input-surface bg-transparent rounded-xl border border-border/20 font-mono whitespace-pre-wrap text-foreground/90 mx-3`,style:u.getPopupStyles(),children:G(t,e.tool)})]})})():null,t[32]=c,t[33]=n.metadata,t[34]=O):O=t[34];let k;t[35]!==o||t[36]!==i||t[37]!==c||t[38]!==n||t[39]!==a?(k=n.isDiff?(0,Y.jsx)(pt,{popup:n,diffViewMode:o,pierreThemeConfig:c}):n.content?(0,Y.jsx)(`div`,{className:`p-4`,children:(()=>{let e=n.metadata?.tool;return e===`todowrite`||e===`todoread`?W(n.content)||(0,Y.jsx)(z,{language:`json`,code:n.content,style:u.getPopupContainerStyles(),codeStyle:at.style,wrap:!0}):e===`list`?R(n.content)||(0,Y.jsx)(`pre`,{className:`typography-markdown bg-muted/30 p-2 rounded-xl border border-border/20 font-mono whitespace-pre-wrap`,children:n.content}):e===`grep`?L(n.content,i)||(0,Y.jsx)(`pre`,{className:`typography-code bg-muted/30 p-2 rounded-xl border border-border/20 font-mono whitespace-pre-wrap`,children:n.content}):e===`glob`?ie(n.content,i)||(0,Y.jsx)(`pre`,{className:`typography-code bg-muted/30 p-2 rounded-xl border border-border/20 font-mono whitespace-pre-wrap`,children:n.content}):e===`task`||e===`subagent`||e===`reasoning`?(0,Y.jsx)(`div`,{className:e===`reasoning`?`text-muted-foreground/70`:``,children:(0,Y.jsx)(N,{content:n.content,variant:`tool`})}):e===`web-search`||e===`websearch`||e===`search_web`?H(n.content)||(0,Y.jsx)(z,{language:`text`,code:n.content,style:u.getPopupContainerStyles(),codeStyle:at.style,wrap:!0}):e===`read`?(0,Y.jsx)(mt,{popup:n,pierreThemeConfig:c}):(n.content?B(n.content):{data:null,isJson:!1}).isJson?(0,Y.jsx)(de,{jsonString:n.content,initiallyExpandedDepth:3,maxHeight:`70vh`}):(0,Y.jsx)(z,{language:n.language||`text`,code:n.content,style:u.getPopupContainerStyles(),codeStyle:at.style,wrap:!0})})()}):(0,Y.jsxs)(`div`,{className:`p-8 text-muted-foreground typography-ui-header`,children:[(0,Y.jsx)(`div`,{className:`mb-2`,children:a(`chat.toolOutputDialog.commandCompleted`)}),(0,Y.jsx)(`div`,{className:`typography-meta`,children:a(`chat.toolOutputDialog.noOutputProduced`)})]}),t[35]=o,t[36]=i,t[37]=c,t[38]=n,t[39]=a,t[40]=k):k=t[40];let A;t[41]!==O||t[42]!==k?(A=(0,Y.jsx)(`div`,{className:`flex-1 min-h-0 rounded-xl border border-border/30 bg-muted/10 overflow-hidden`,children:(0,Y.jsxs)(`div`,{className:`tool-output-surface h-full max-h-[75vh] overflow-y-auto px-3 pr-4`,children:[O,k]})}),t[41]=O,t[42]=k,t[43]=A):A=t[43];let j;t[44]!==D||t[45]!==A||t[46]!==_?(j=(0,Y.jsxs)(w,{className:_,style:b,children:[D,A]}),t[44]=D,t[45]=A,t[46]=_,t[47]=j):j=t[47];let M;return t[48]!==r||t[49]!==n.open||t[50]!==j?(M=(0,Y.jsx)(T,{open:p,onOpenChange:r,children:j}),t[48]=r,t[49]=n.open,t[50]=j,t[51]=M):M=t[51],M};function _t(e){return e.text}function vt(e){return e.lineNumber!==null}export{gt as default};