@openchambery/web 2.1.10-beta.10 → 2.1.10-beta.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/AssistantView-h4JgDKch.js +3 -0
- package/dist/assets/{DiagramView-CD0JRf9L.js → DiagramView-COkfppid.js} +1 -1
- package/dist/assets/{ImageLoadingPlaceholder-Da1xKjxc.js → ImageLoadingPlaceholder-BH8oXC-W.js} +1 -1
- package/dist/assets/{LoadingImage-DO_V7mRh.js → LoadingImage-BiQ8G0W3.js} +1 -1
- package/dist/assets/MarkdownRenderer-BI0rNBtw.js +2 -0
- package/dist/assets/{MarkdownRendererImpl-BwBPrsxq.js → MarkdownRendererImpl-BLyOCqTz.js} +1 -1
- package/dist/assets/{MarkstreamRendererImpl-BeCY-mui.js → MarkstreamRendererImpl-Do60i4aN.js} +1 -1
- package/dist/assets/{MobileDetailNavigation-tDiUj5U0.js → MobileDetailNavigation-CH1olmS8.js} +1 -1
- package/dist/assets/{MobileShareBridge-iApPj95w.js → MobileShareBridge-D4PDUXQS.js} +2 -2
- package/dist/assets/{MobileTabPageHeader-DOpvXyuR.js → MobileTabPageHeader-B4l8kjn4.js} +1 -1
- package/dist/assets/{MultiRunWindow-CAzMa1Nm.js → MultiRunWindow-CPEzqHIB.js} +1 -1
- package/dist/assets/{SettingsView-BSKkzr8d.js → SettingsView-BnlqCPxN.js} +1 -1
- package/dist/assets/{SettingsWindow-BGmZ-fkc.js → SettingsWindow-BgSOpeEz.js} +1 -1
- package/dist/assets/{TerminalView-BnHTLMST.js → TerminalView-CZtA47Sq.js} +1 -1
- package/dist/assets/{ToolOutputDialog-DAVZmdoA.css → ToolOutputDialog-BgjZ_2_o.css} +1 -1
- package/dist/assets/ToolOutputDialog-DjKdgCBP.js +10 -0
- package/dist/assets/{appThemeRegistry-w-Ebbmh5.js → appThemeRegistry-BIjwa_wL.js} +1 -1
- package/dist/assets/{assistant-attachment-cache-CecNXB7z.js → assistant-attachment-cache-C-JB3e_-.js} +1 -1
- package/dist/assets/{fileMentionTouchSelection-CtLKSOq0.js → fileMentionTouchSelection-DFsw2Air.js} +1 -1
- package/dist/assets/{gitApi-D3JDHCiI.js → gitApi-CmIIjInT.js} +1 -1
- package/dist/assets/{image-loading-DImQz00b.js → image-loading-BLKPYB1F.js} +1 -1
- package/dist/assets/{insertionBoundaries-JP72UEgW.js → insertionBoundaries-BRzI9-zA.js} +1 -1
- package/dist/assets/main-B18HaTNc.js +169 -0
- package/dist/assets/{main-BnRW5v-z.js → main-DyI3Npnd.js} +2 -2
- package/dist/assets/{mcpQueries-B__Ge5kV.js → mcpQueries-ylwK_h6F.js} +1 -1
- package/dist/assets/{miniChat-DGxEvelP.js → miniChat-_Ap6jcID.js} +2 -2
- package/dist/assets/{mobile-eGR6pZsC.js → mobile-D-4NtQFc.js} +2 -2
- package/dist/assets/{mobileBackNavigation-CGH0aRvP.js → mobileBackNavigation-mSj0hnU6.js} +1 -1
- package/dist/assets/{multirun-D0s4kPUs.js → multirun-DCBP8mIS.js} +1 -1
- package/dist/assets/{projectMeta-DPvDDfM0.js → projectMeta-DRVg_EU7.js} +1 -1
- package/dist/assets/relay-image-stream-B05lazQn.js +2 -0
- package/dist/assets/{renderElectronMiniChatApp-DoJOOOvp.js → renderElectronMiniChatApp-DsMQnVs5.js} +2 -2
- package/dist/assets/{renderMobileApp-D8ARkO58.js → renderMobileApp-OVPO-Ol5.js} +4 -4
- package/dist/assets/{runtimeConfig-D0fGrt74.js → runtimeConfig-BQKJNTNq.js} +1 -1
- package/dist/assets/{runtimeEndpointReset-asSGzNnU.js → runtimeEndpointReset-KlafK5Te.js} +1 -1
- package/dist/assets/sessionChangeSummary-BW__1utJ.js +1 -0
- package/dist/assets/{sessionLookup-CZWffaVD.js → sessionLookup-CuUmBpTW.js} +1 -1
- package/dist/assets/{speechSettingsQueries-D9HkL9-8.js → speechSettingsQueries-CQnnDLiJ.js} +2 -2
- package/dist/assets/src-DtMCDy_d.css +2 -0
- package/dist/assets/{useAppFontEffects-CN_sjO4l.js → useAppFontEffects-_ks0w1bd.js} +53 -53
- package/dist/assets/{useDesktopWindowControlsLayout-QxfqckBX.js → useDesktopWindowControlsLayout-DXQVvdHD.js} +1 -1
- package/dist/assets/{useEffectiveDirectory-DXbRKe4_.js → useEffectiveDirectory-CCu_lDxO.js} +1 -1
- package/dist/assets/{useMobileNavigationStore-BvJJ9SP1.js → useMobileNavigationStore-DzAYtvXh.js} +3 -3
- package/dist/assets/{useWorkerHighlightedLines-hl5s_wXd.js → useWorkerHighlightedLines-cWzxInp-.js} +1 -1
- package/dist/index.html +3 -3
- package/dist/mini-chat.html +3 -3
- package/dist/mobile.html +3 -3
- package/package.json +1 -1
- package/server/lib/relay/relay-server.e2e.test.ts +8 -0
- package/dist/assets/AssistantView-CPPxqPo7.js +0 -3
- package/dist/assets/MarkdownRenderer-BZZFoaPb.js +0 -2
- package/dist/assets/ToolOutputDialog-Dm4ljddO.js +0 -10
- package/dist/assets/main-Vubfe9XA.js +0 -169
- package/dist/assets/relay-image-stream-CqgxIcA5.js +0 -2
- package/dist/assets/sessionChangeSummary-BTJ_oAdX.js +0 -1
- package/dist/assets/src-Doy5O-1o.css +0 -2
- package/dist/assets/vendor-legendapp-list-CNxU_ALy.js +0 -1
package/dist/assets/{useWorkerHighlightedLines-hl5s_wXd.js → useWorkerHighlightedLines-cWzxInp-.js}
RENAMED
|
@@ -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-Ca8Z9cOP.js";import{n as c}from"./useThemeSystem-8jhE4Zyk.js";import{n as l}from"./Icon-x0XTu231.js";import{i as u,n as d,t as f}from"./tooltip-B7cKvIho.js";import{n as p}from"./MarkdownRenderer-
|
|
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-Ca8Z9cOP.js";import{n as c}from"./useThemeSystem-8jhE4Zyk.js";import{n as l}from"./Icon-x0XTu231.js";import{i as u,n as d,t as f}from"./tooltip-B7cKvIho.js";import{n as p}from"./MarkdownRenderer-BI0rNBtw.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,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`),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-
|
|
555
|
+
<script type="module" crossorigin src="/assets/main-DyI3Npnd.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-BeYpC7rG.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-
|
|
576
|
-
<link rel="stylesheet" crossorigin href="/assets/src-
|
|
575
|
+
<link rel="modulepreload" crossorigin href="/assets/runtimeConfig-BQKJNTNq.js">
|
|
576
|
+
<link rel="stylesheet" crossorigin href="/assets/src-DtMCDy_d.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
|
package/dist/mini-chat.html
CHANGED
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
}
|
|
75
75
|
</style>
|
|
76
76
|
|
|
77
|
-
<script type="module" crossorigin src="/assets/miniChat-
|
|
77
|
+
<script type="module" crossorigin src="/assets/miniChat-_Ap6jcID.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-BeYpC7rG.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-
|
|
98
|
-
<link rel="stylesheet" crossorigin href="/assets/src-
|
|
97
|
+
<link rel="modulepreload" crossorigin href="/assets/runtimeConfig-BQKJNTNq.js">
|
|
98
|
+
<link rel="stylesheet" crossorigin href="/assets/src-DtMCDy_d.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-
|
|
66
|
+
<script type="module" crossorigin src="/assets/mobile-D-4NtQFc.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-BeYpC7rG.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-
|
|
87
|
-
<link rel="stylesheet" crossorigin href="/assets/src-
|
|
86
|
+
<link rel="modulepreload" crossorigin href="/assets/runtimeConfig-BQKJNTNq.js">
|
|
87
|
+
<link rel="stylesheet" crossorigin href="/assets/src-DtMCDy_d.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
|
@@ -25,6 +25,7 @@ import { configureRuntimeUrlResolver, getRuntimeUrlResolver, setRuntimeUrlResolv
|
|
|
25
25
|
import { setRuntimeBearerToken } from '../../../../ui/src/lib/runtime-auth.ts';
|
|
26
26
|
import { adoptRelayTunnel, deactivateRelayTunnel } from '../../../../ui/src/lib/relay/runtime-tunnel.ts';
|
|
27
27
|
import { acquireRuntimeImage } from '../../../../ui/src/lib/runtime-image-cache.ts';
|
|
28
|
+
import { materializeImageBlob } from '../../../../ui/src/components/chat/imageSave.ts';
|
|
28
29
|
import { NATIVE_RELAY_ASSET_BRIDGE_KEY } from '../../../../ui/src/lib/relay/native-asset-bridge.ts';
|
|
29
30
|
import { readRelayImageDisplayBlob, resetRelayImageStreamForTests } from '../../../../ui/src/lib/relay/relay-image-stream.ts';
|
|
30
31
|
import { registerFsRoutes } from '../fs/routes.js';
|
|
@@ -634,6 +635,13 @@ describe('private relay compiled-process boundary', () => {
|
|
|
634
635
|
expect(response.headers.get('content-type')).toBe('video/mp4');
|
|
635
636
|
expect(await response.text()).toBe(bytes);
|
|
636
637
|
}
|
|
638
|
+
const downloadProgress: Array<number | null> = [];
|
|
639
|
+
const savedVideo = await materializeImageBlob({ kind: 'video', sourceUrl: `file://${origin.videoPath}` }, undefined, percent => downloadProgress.push(percent));
|
|
640
|
+
expect(await savedVideo.blob.text()).toBe('0123456789');
|
|
641
|
+
expect(downloadProgress[0]).toBe(0);
|
|
642
|
+
expect(downloadProgress).toContain(99);
|
|
643
|
+
expect(downloadProgress.at(-1)).toBe(100);
|
|
644
|
+
expect(downloadProgress).not.toContain(null);
|
|
637
645
|
} finally {
|
|
638
646
|
resetRelayImageStreamForTests();
|
|
639
647
|
Reflect.deleteProperty(globalThis, NATIVE_RELAY_ASSET_BRIDGE_KEY);
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ToolOutputDialog-Dm4ljddO.js","assets/rolldown-runtime-hePW80VL.js","assets/runtime-switch-CMiMO5Yj.js","assets/runtime-auth-BpCQ-dPr.js","assets/runtime-fetch-WgH0pROs.js","assets/persistence-BKszKaoQ.js","assets/vendor-zustand-o69pgTEK.js","assets/vendor-base-ui-CdzJ6My_.js","assets/useUIStore-CEqU9Ujv.js","assets/vendor-react-BP2cRVqX.js","assets/vendor-pathe-vBmvQE8f.js","assets/vendor-tanstack-query-core-BWz0ose6.js","assets/platform-QykS5eAQ.js","assets/vendor-opencode-client-MF2GBrFx.js","assets/vendor-aparajita-capacitor-secure-storage-xol_6BsB.js","assets/vendor-tanstack-react-query-CdqCAt40.js","assets/vendor-pierre-diffs-DPBtNDJ5.js","assets/vendor-hast-util-to-html-Bw_SgZ1t.js","assets/vendor-character-entities-legacy-Wut6vMuj.js","assets/vendor-character-entities-html4-DlN_yAFd.js","assets/vendor-ccount-CyGsA0u7.js","assets/vendor-comma-separated-tokens-B9ouxNNS.js","assets/vendor-oniguruma-to-es-CrHzjjSU.js","assets/vendor-oniguruma-parser-D2DIvhSP.js","assets/vendor-diff-Dq7CZNim.js","assets/vendor-lru_map-BMOrLc9L.js","assets/vendor-reactuses-core-BpfIZ1tg.js","assets/vendor-lodash-es-DfLbG5Af.js","assets/vendor-js-cookie-hSOiFTtX.js","assets/button-Ca8Z9cOP.js","assets/store-D79UkOhB.js","assets/vendor-class-variance-authority-BLUaYARZ.js","assets/vendor-tailwind-merge-BicNWLTg.js","assets/useThemeSystem-8jhE4Zyk.js","assets/Icon-x0XTu231.js","assets/dialog-DKsOQO4Y.js","assets/image-loading-DImQz00b.js","assets/fileQueries-DVpZC5ha.js","assets/useRuntimeAPIs-Cx8S1HLz.js","assets/relay-image-stream-CqgxIcA5.js","assets/image-loading-j2FgxzZQ.css","assets/MobileWindowStack-DGLdgoGr.js","assets/appThemeRegistry-w-Ebbmh5.js","assets/useMobileNavigationStore-BvJJ9SP1.js","assets/vendor-sonner-ZS8XIOVl.js","assets/useAssistantUIStore-OyPm_4M_.js","assets/vendor-zod-Dzk5kdUU.js","assets/vendor-fuse.js-DB5wDJbI.js","assets/agentColors-DWSbQXy2.js","assets/rasterizePng-056Poix7.js","assets/MarkdownRenderer-BZZFoaPb.js","assets/markdownHeightCache-CYwP7eeh.js","assets/dualLimitLru-D8Sphgua.js","assets/markdown-worker-DFNZ3KJ_.js","assets/useEffectiveDirectory-DXbRKe4_.js","assets/ImageLoadingPlaceholder-Da1xKjxc.js","assets/useWorkerHighlightedLines-hl5s_wXd.js","assets/tooltip-B7cKvIho.js","assets/vendor-tanstack-react-virtual-B_EO--9t.js","assets/markdownTheme-BUfvCGAn.js","assets/mobileBackNavigation-CGH0aRvP.js","assets/ToolOutputDialog-DAVZmdoA.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{n as e,r as t}from"./rolldown-runtime-hePW80VL.js";import{c as n,i as r,n as i}from"./runtime-switch-CMiMO5Yj.js";import{$ as a,G as o,K as s,Q as c,Y as l,et as u,ht as d,nt as f,st as p}from"./persistence-BKszKaoQ.js";import{a as m}from"./vendor-zustand-o69pgTEK.js";import{it as h,rt as g}from"./vendor-base-ui-CdzJ6My_.js";import{n as _,r as v}from"./platform-QykS5eAQ.js";import{n as y}from"./useUIStore-CEqU9Ujv.js";import{n as b}from"./vendor-react-BP2cRVqX.js";import{o as x}from"./vendor-aparajita-capacitor-secure-storage-xol_6BsB.js";import{s as S}from"./vendor-tanstack-react-query-CdqCAt40.js";import{r as C}from"./vendor-sonner-ZS8XIOVl.js";import{a as w,d as T,f as E,i as D,n as O,r as k}from"./vendor-reactuses-core-BpfIZ1tg.js";import{f as A,r as j,t as M}from"./button-Ca8Z9cOP.js";import{a as N,n as P}from"./MobileShareBridge-iApPj95w.js";import{D as F,E as I,F as L,N as R,_ as z,b as B,c as V,d as H,i as U,n as ee,o as W,p as te,r as ne,t as re,u as G,v as ie}from"./MobileDetailNavigation-tDiUj5U0.js";import{Fr as ae,Pr as K,Sn as oe,ct as se,o as q,qt as ce,wo as le}from"./useMobileNavigationStore-BvJJ9SP1.js";import{i as ue,n as J,r as de}from"./useAssistantUIStore-OyPm_4M_.js";import{t as Y}from"./AgentAvatar-HkvwOX6E.js";import{n as X}from"./Icon-x0XTu231.js";import{a as fe,i as pe,n as me,o as he,r as ge,t as _e}from"./dialog-DKsOQO4Y.js";import{i as ve}from"./OverlayScrollbar-DYyjRbut.js";import{c as ye,l as be}from"./image-loading-DImQz00b.js";import{n as xe}from"./textarea-BfNgh87h.js";import{C as Se,D as Z,E as Ce,T as we,a as Te,b as Ee,d as De,f as Oe,h as ke,i as Ae,l as je,m as Me,n as Ne,p as Pe,r as Fe,s as Ie,t as Le,u as Re}from"./sessionChangeSummary-BTJ_oAdX.js";import{o as ze,t as Be}from"./vendor-framer-motion-D-oiwsxL.js";import{a as Ve,n as He,r as Ue,t as We}from"./fileMentionTouchSelection-CtLKSOq0.js";import{o as Ge,s as Ke,t as qe}from"./MarkdownRenderer-BZZFoaPb.js";import{t as Je}from"./ImageLoadingPlaceholder-Da1xKjxc.js";import{t as Ye}from"./LoadingImage-DO_V7mRh.js";import{t as Xe}from"./vendor-motion-88WXBOBf.js";import{a as Ze,c as Qe,l as $e,o as et,s as tt,t as nt}from"./scheduledTaskNavigation-CgctKy2R.js";import{a as rt,t as it}from"./sessionLookup-CZWffaVD.js";import{i as at,n as ot,r as st}from"./assistant-attachment-cache-CecNXB7z.js";var ct=b();function lt(e){return[...e].sort((e,t)=>{let n=Number((t.unreadCount??0)>0)-Number((e.unreadCount??0)>0);if(n)return n;let r=e.latestMessagePreview?.createdAt??-1/0,i=t.latestMessagePreview?.createdAt??-1/0;return r===i?0:i-r})}var Q=t(h(),1),$=g();function ut({snapshot:e,rowClassName:t}){let{t:n}=A(),[r,i]=Q.useState(!1),a=Q.useRef(!1),o=O(async()=>{if(!a.current){a.current=!0,i(!0);try{(await G(e)).failed&&C.error(n(`assistants.unread.markAllFailed`))}catch{C.error(n(`assistants.unread.markAllFailed`))}finally{a.current=!1,i(!1)}}});return e.assistants.some(e=>(e.unreadCount??0)>0)?(0,$.jsx)(`div`,{className:t,children:(0,$.jsx)(M,{type:`button`,variant:`ghost`,size:`xs`,onClick:o,className:`max-w-full whitespace-normal text-right`,disabled:r||!e.assistants.some(e=>(e.unreadCount??0)>0&&e.readTip),"aria-busy":r,children:n(`assistants.unread.markAll`)})}):null}var dt=m(e=>({workingByID:{},setWorking:(t,n)=>e(e=>({workingByID:{...e.workingByID,[t]:n}}))})),ft=({sending:e=!1,processing:t=!1,serverWorking:n=!1})=>e||t||n,pt=(e,t)=>{let n=(0,ct.c)(5),r=t!==void 0&&t,i;n[0]===e?i=n[1]:(i=t=>!!t.workingByID[e],n[0]=e,n[1]=i);let a=dt(i),o;return n[2]!==a||n[3]!==r?(o=ft({processing:a,serverWorking:r}),n[2]=a,n[3]=r,n[4]=o):o=n[4],o},mt=e=>{let t=(0,ct.c)(21),{name:n,avatarSeed:r,size:i,label:a,working:o,showWorkingDot:s,className:c}=e,l=i===void 0?24:i,u=s===void 0||s,{t:d}=A(),f;t[0]!==n||t[1]!==o?(f=e=>o!==void 0&&!!e.workingByID[n],t[0]=n,t[1]=o,t[2]=f):f=t[2];let p=dt(f),m=!!(o||p),h=`calc(${l}px * var(--dpt-n, 1))`,g;t[3]===c?g=t[4]:(g=j(`relative inline-block shrink-0 align-middle leading-none`,c),t[3]=c,t[4]=g);let _;t[5]===h?_=t[6]:(_={width:h,minWidth:h,maxWidth:h,height:h,minHeight:h,maxHeight:h},t[5]=h,t[6]=_);let v=r??n,y;t[7]!==m||t[8]!==a||t[9]!==l||t[10]!==v?(y=(0,$.jsx)(Y,{kind:`assistant`,animated:m,name:v,size:l,label:a,shape:`rounded`,className:`rounded-[0.5rem]`}),t[7]=m,t[8]=a,t[9]=l,t[10]=v,t[11]=y):y=t[11];let b;t[12]!==u||t[13]!==d||t[14]!==o?(b=o&&u?(0,$.jsx)(`span`,{className:`pointer-events-none absolute right-0 bottom-0 size-2.5 translate-x-0.5 translate-y-0.5 rounded-full bg-[var(--status-success)] ring-2 ring-background`,"data-assistant-working-dot":``,"aria-label":d(`assistants.contact.working`)}):null,t[12]=u,t[13]=d,t[14]=o,t[15]=b):b=t[15];let x;return t[16]!==g||t[17]!==_||t[18]!==y||t[19]!==b?(x=(0,$.jsxs)(`span`,{className:g,style:_,"data-assistant-working-avatar":``,children:[y,b]}),t[16]=g,t[17]=_,t[18]=y,t[19]=b,t[20]=x):x=t[20],x},ht=e=>{for(let t=e.messages.length-1;t>=0;t--){let n=e.messages[t];if(n.parts.some(F)&&Number.isFinite(new Date(n.createdAt).getTime()))return{timestamp:n.createdAt,empty:!1}}return{timestamp:void 0,empty:e.generation>=0&&e.olderComplete&&!e.hasMessageGap}},gt=(e,t)=>{let n=(0,ct.c)(5),r;n[0]!==e||n[1]!==t?(r=ne(e,t),n[0]=e,n[1]=t,n[2]=r):r=n[2];let i;return n[3]===r?i=n[4]:(i={...r,enabled:!1,select:ht},n[3]=r,n[4]=i),S(i)},_t=3e5,vt=(e,t)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate();function yt(e){let t=new Map,n=null;for(let r of e){if(!(r.status===`error`||r.status===`failed`||r.parts.some(e=>e.type!==`text`||e.text.trim()&&!e.text.trim().startsWith(`oc.settle.`))))continue;let e=new Date(r.createdAt);Number.isFinite(e.getTime())&&((!n||!vt(n,e)||e.getTime()-n.getTime()>_t)&&t.set(r.messageID,r.createdAt),n=e)}return t}function bt(e,t,n){let r=new Intl.DateTimeFormat(e,{hour:`2-digit`,minute:`2-digit`,hourCycle:`h23`}),i=new Intl.DateTimeFormat(e,{month:`long`,day:`numeric`}),a=new Intl.DateTimeFormat(e,{year:`numeric`,month:`long`,day:`numeric`});return e=>{let o=new Date(e);return`${vt(o,n)?t:(o.getFullYear()===n.getFullYear()?i:a).format(o)} ${r.format(o)}`}}var xt=Q.memo(e=>{let t=(0,ct.c)(17),{assistantID:n,serverWorking:r,lastContactAt:i}=e,{t:a,locale:o}=A(),s=pt(n,r),c=gt(n,be()),l;t[0]!==c||t[1]!==i?(l=i!==void 0&&Number.isFinite(new Date(i).getTime())?i:c.data?.timestamp,t[0]=c,t[1]=i,t[2]=l):l=t[2];let u=l,d;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=new Date().toDateString(),t[3]=d):d=t[3];let f=d,p;t[4]===a?p=t[5]:(p=a(`common.date.today`),t[4]=a,t[5]=p);let m=p,h;bb0:{if(u===void 0){h=null;break bb0}let e;t[6]!==o||t[7]!==u||t[8]!==m?(e=bt(o,m,new Date(f))(u),t[6]=o,t[7]=u,t[8]=m,t[9]=e):e=t[9],h=e}let g=h,_;t[10]!==c||t[11]!==g||t[12]!==a||t[13]!==s?(_=s?a(`assistants.conversation.typing`):g?a(`assistants.conversation.lastContact`,{time:g}):c.data?.empty?a(`assistants.conversation.neverContacted`):c.isError?a(`assistants.contact.loadFailed`):a(`common.loading`),t[10]=c,t[11]=g,t[12]=a,t[13]=s,t[14]=_):_=t[14];let v=_,y;return t[15]===v?y=t[16]:(y=(0,$.jsx)(`span`,{className:`mt-1 block truncate typography-micro font-normal leading-4 text-muted-foreground/70`,"aria-live":`polite`,title:v,children:v}),t[15]=v,t[16]=y),y});function St(e){let t=(0,ct.c)(12),{assistantID:n,position:a}=e,o=Q.useRef(null),s=Q.useRef(!1),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c={busy:!1,done:!1,retryAt:0},t[0]=c):c=t[0];let l=Q.useRef(c),[u]=Q.useState(Ot),d;t[1]!==n||t[2]!==a||t[3]!==u?(d=()=>{let e=o.current;if(!e||!s.current||l.current.busy||l.current.done||Date.now()<l.current.retryAt||u.transport!==r()||u.generation!==i()||document.visibilityState!==`visible`||(_()?!document.documentElement.classList.contains(`oc-native-app-active`):!document.hasFocus())||e.parentElement?.closest(`[inert], [aria-hidden="true"]`))return;let t=e.closest(`[data-assistant-contact-transcript]`);if(!t||t.scrollHeight-t.scrollTop-t.clientHeight>2)return;let c=e.getBoundingClientRect(),d=t.getBoundingClientRect(),f=window.visualViewport,p=f?.offsetTop??0,m=p+(f?.height??window.innerHeight);c.height<=0||c.width<=0||c.bottom>Math.min(d.bottom,m)||c.top<Math.max(d.top,p)||c.right<=Math.max(d.left,0)||c.left>=Math.min(d.right,window.innerWidth)||(l.current.busy=!0,H(n,a).then(()=>{l.current.done=!0}).catch(()=>{l.current.retryAt=Date.now()+15e3}).finally(()=>{l.current.busy=!1}))},t[1]=n,t[2]=a,t[3]=u,t[4]=d):d=t[4];let f=O(d),p;t[5]===f?p=t[6]:(p=e=>{s.current=e.some(Dt),f()},t[5]=f,t[6]=p);let m;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(m={threshold:1},t[7]=m):m=t[7],D(o,O(p),m),k(`visibilitychange`,f,Et),k(`focus`,f,Tt),k(`resize`,f,wt);let h,g;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>o.current?.closest(`[data-assistant-contact-transcript]`),g={passive:!0},t[8]=h,t[9]=g):(h=t[8],g=t[9]),k(`scroll`,f,h,g);let v;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(v={attributes:!0,attributeFilter:[`class`]},t[10]=v):v=t[10],T(f,Ct,v),w(f,15e3);let y;return t[11]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,$.jsx)(`span`,{ref:o,"aria-hidden":`true`,className:`absolute bottom-0 left-0 block h-px w-px`,"data-assistant-read-marker":``}),t[11]=y):y=t[11],y}function Ct(){return document.documentElement}function wt(){return window.visualViewport}function Tt(){return window}function Et(){return document}function Dt(e){return e.isIntersecting&&e.intersectionRatio===1}function Ot(){return{transport:r(),generation:i()}}var kt=()=>{},At=Q.memo(Z),jt=e=>e?.directories.flatMap(({directory:e,sessions:t})=>e?t.filter(e=>!e.time.archived).map(t=>({...t,directory:e||t.location?.directory||t.directory||``})).filter(e=>e.directory.length>0):[])??null,Mt=Q.forwardRef(({query:e,isMobile:t,listId:n,onHighlightChange:r,onSelect:i,onClose:a},o)=>{let{t:s}=A(),c=be(),l=S({...ae(c),select:jt}),u=Q.useMemo(()=>se({sessions:l.data??[],currentSessionId:null,searchQuery:e}),[l.data,e]),[d,f]=Q.useState({query:e,index:0}),p=Math.min(d.query===e?d.index:0,Math.max(0,u.length-1)),m=Q.useRef(null),h=Q.useRef([]),g=Q.useMemo(We,[]);k(`pointerdown`,e=>{e.target instanceof Node&&!m.current?.contains(e.target)&&a()},void 0,{capture:!0}),Q.useLayoutEffect(()=>{h.current[p]?.scrollIntoView?.({block:`nearest`})},[p]),Q.useLayoutEffect(()=>{r(u.length?`${n}-${p}`:void 0)},[p,n,u.length,r]);let _=O(t=>{if(t===`Escape`){a();return}u.length&&(t===`ArrowDown`&&f({query:e,index:(p+1)%u.length}),t===`ArrowUp`&&f({query:e,index:(p-1+u.length)%u.length}),(t===`Enter`||t===`Tab`)&&i(u[p]))});return Q.useImperativeHandle(o,()=>({keyDown:_}),[_]),(0,$.jsxs)(He,{ref:m,isMobile:t,className:`max-w-[640px] max-h-64`,children:[(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 px-3 py-1`,children:[(0,$.jsx)(`span`,{className:`min-w-0 flex-1 text-[length:calc(var(--text-meta)*0.875)] leading-4 text-muted-foreground`,children:s(`assistants.contact.sessionMention.scope`)}),(0,$.jsx)(M,{type:`button`,size:`xs`,variant:`ghost`,"aria-label":s(`dialog.common.actions.close`),onClick:a,children:(0,$.jsx)(X,{name:`close`,className:`size-4`})})]}),l.isPending?(0,$.jsx)(`p`,{role:`status`,className:`px-3 py-2 typography-meta text-muted-foreground`,children:s(`common.loading`)}):null,l.isError?(0,$.jsxs)(`div`,{role:`alert`,className:`px-3 py-2 typography-meta text-[var(--status-error)]`,children:[s(`assistants.contact.sessionMention.loadFailed`),(0,$.jsx)(M,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>void l.refetch(),children:s(`chat.history.retry`)})]}):null,l.isSuccess&&!u.length?(0,$.jsx)(`p`,{role:`status`,className:`px-3 py-2 typography-meta text-muted-foreground`,children:s(l.data===null?`common.unavailable`:`sessions.sidebar.empty.noMatches.title`)}):null,(0,$.jsx)(xe,{preventOverscroll:!0,outerClassName:`flex-1 min-h-0`,className:`px-0`,children:(0,$.jsx)(`div`,{id:n,role:`listbox`,"aria-label":s(`chat.fileMentionAutocomplete.groups.sessions`),className:`p-1.5`,children:u.map((r,a)=>(0,$.jsxs)(`div`,{id:`${n}-${a}`,role:`option`,"aria-selected":a===p,ref:e=>{h.current[a]=e},className:j(`flex min-h-10 cursor-pointer items-center gap-2 rounded-md px-1.5 py-1 typography-ui-label`,Ue(t,a===p)),onMouseDown:e=>e.preventDefault(),onMouseMove:()=>f({query:e,index:a}),onPointerDown:e=>{e.pointerType===`touch`&&g.pointerDown(e.clientX,e.clientY)},onPointerMove:e=>{e.pointerType===`touch`&&g.pointerMove(e.clientX,e.clientY)},onPointerUp:e=>{e.pointerType===`touch`&&g.pointerUp(()=>i(r))&&(e.preventDefault(),e.stopPropagation())},onPointerCancel:()=>g.pointerCancel(),onClick:()=>g.click(()=>i(r)),children:[(0,$.jsx)(X,{name:`chat-thread`,className:`size-4 shrink-0 text-muted-foreground`}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`div`,{className:`truncate font-medium leading-5`,title:r.title,children:r.title||s(`chat.fileMentionAutocomplete.untitledSession`)}),(0,$.jsx)(`div`,{className:`truncate text-[length:calc(var(--text-meta)*0.875)] leading-4 text-muted-foreground`,title:r.directory,children:r.directory})]})]},`${r.directory}:${r.id}`))})}),t?null:(0,$.jsx)(`div`,{className:`mx-1.5 shrink-0 border-t px-1.5 py-1 text-[length:calc(var(--text-meta)*0.875)] leading-4 text-muted-foreground`,children:s(`chat.autocomplete.keyboardHint`)})]})}),Nt=e=>{let t=(0,ct.c)(120),n,r,i,f,p;t[0]===e?(n=t[1],r=t[2],i=t[3],f=t[4],p=t[5]):({active:n,working:p,onChange:r,onVoiceSend:i,...f}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=f,t[5]=p);let m=p!==void 0&&p,{t:h}=A(),g=Q.useRef(null),_=n&&!!f.isMobile&&!!i,v;t[6]===_?v=t[7]:(v={available:_},t[6]=_,t[7]=v);let{enabled:y,hint:b,onHintChange:x}=Ce(v),S;t[8]!==b||t[9]!==f.placeholder||t[10]!==h?(S=b===null?f.placeholder:h(b===`recording`?`chat.dictation.releaseSend`:b===`cancelling`?`chat.dictation.releaseCancel`:b===`editing`?`chat.dictation.releaseEdit`:`chat.dictation.processing`),t[8]=b,t[9]=f.placeholder,t[10]=h,t[11]=S):S=t[11];let C=S,w;t[12]===f.value?w=t[13]:(w=()=>({canonical:f.value,document:l(f.value,new Map)}),t[12]=f.value,t[13]=w);let[T,E]=Q.useState(w),D;t[14]!==T.canonical||t[15]!==T.document||t[16]!==f.value?(D=T.canonical===f.value?T.document:l(f.value,new Map),t[14]=T.canonical,t[15]=T.document,t[16]=f.value,t[17]=D):D=t[17];let k=D,[M,N]=Q.useState(0),[P,F]=Q.useState(!0),[I,L]=Q.useState(!1),[R,z]=Q.useState(),B=Q.useRef(null),V=Q.useRef(null),H=Q.useRef(null),U=Q.useRef(null),ee;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(ee=Re(),t[18]=ee):ee=t[18];let W=Q.useRef(ee),te=Q.useId(),ne;t[19]!==n||t[20]!==I||t[21]!==M||t[22]!==P||t[23]!==k.text||t[24]!==f.disabled||t[25]!==f.pending?(ne=n&&!f.pending&&!f.disabled&&!P&&!I?Ve({text:k.text,cursor:M}):null,t[19]=n,t[20]=I,t[21]=M,t[22]=P,t[23]=k.text,t[24]=f.disabled,t[25]=f.pending,t[26]=ne):ne=t[26];let re=ne,G=re?.kind===`mention`?re:null,ie;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(ie=()=>{U.current!==null&&(B.current?.focus({preventScroll:!0}),B.current?.setSelectionRange(U.current,U.current),U.current=null)},t[27]=ie):ie=t[27];let ae;t[28]===k?ae=t[29]:(ae=[k],t[28]=k,t[29]=ae),Q.useLayoutEffect(ie,ae);let K;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(K=()=>F(!0),t[30]=K):K=t[30];let oe=O(K),se;t[31]!==I||t[32]!==M||t[33]!==k||t[34]!==r?(se=(e,t,n)=>{let i=n===void 0||n,a=u(e);a.ok&&(i&&(W.current=De(W.current,{before:je(k,[],{start:B.current?.selectionStart??M,end:B.current?.selectionEnd??M}),after:je(e,[],{start:t,end:t})})),I||(U.current=t),N(t),E({canonical:a.text,document:e}),r(a.text))},t[31]=I,t[32]=M,t[33]=k,t[34]=r,t[35]=se):se=t[35];let q=O(se),ce;t[36]!==q||t[37]!==k||t[38]!==G||t[39]!==h?(ce=e=>{if(!G)return;let t=e.title||h(`chat.fileMentionAutocomplete.untitledSession`),n=s(k,G.tokenStart,G.tokenEnd,{id:`session:${e.id}:${crypto.randomUUID()}`,kind:`session`,sessionId:e.id,display:d({trigger:`@`,icon:`chat-thread`,label:t})},{inlineBoundaries:!0,padDocumentEdges:!0}),r=n.caret+ +(n.document.text[n.caret]===` `);F(!0),q(n.document,r)},t[36]=q,t[37]=k,t[38]=G,t[39]=h,t[40]=ce):ce=t[40];let le=O(ce),ue;t[41]!==n||t[42]!==q||t[43]!==k||t[44]!==f.disabled||t[45]!==f.pending?(ue=e=>{if(!n||f.pending||f.disabled||!e.trim())return;let t=k.text?`${k.text} ${e}`:e,r=c(k,t,t.length,t.length);q(r.document,r.caret),F(!0)},t[41]=n,t[42]=q,t[43]=k,t[44]=f.disabled,t[45]=f.pending,t[46]=ue):ue=t[46];let J=O(ue),de;t[47]!==n||t[48]!==k.text||t[49]!==J||t[50]!==r||t[51]!==i||t[52]!==f.disabled||t[53]!==f.pending?(de=e=>{if(!(!n||f.pending||f.disabled||!e.trim())){if(k.text){J(e);return}r(e),i?.(e)}},t[47]=n,t[48]=k.text,t[49]=J,t[50]=r,t[51]=i,t[52]=f.disabled,t[53]=f.pending,t[54]=de):de=t[54];let Y=O(de),X;t[55]!==q||t[56]!==k?(X=(e,t)=>{let n=e.currentTarget;if(n.selectionStart===n.selectionEnd||!e.clipboardData||!k.references.some(e=>e.start<n.selectionEnd&&e.end>n.selectionStart))return;let r=o(n.selectionStart,n.selectionEnd,k.references)??{start:n.selectionStart,end:n.selectionEnd},i=u({text:k.text.slice(r.start,r.end),references:k.references.filter(e=>e.start>=r.start&&e.end<=r.end).map(e=>({...e,start:e.start-r.start,end:e.end-r.start}))});if(i.ok&&(e.preventDefault(),e.clipboardData.setData(`text/plain`,i.text),t)){let e=c(k,k.text.slice(0,r.start)+k.text.slice(r.end),r.start,r.start);q(e.document,e.caret)}},t[55]=q,t[56]=k,t[57]=X):X=t[57];let fe=O(X),pe;t[58]!==k.references||t[59]!==k.text?(pe=ke(k.text,k.references.map(Pt))?.map(Ft),t[58]=k.references,t[59]=k.text,t[60]=pe):pe=t[60];let me=pe,he=y&&k.text.length===0?`true`:void 0,ge;t[61]!==y||t[62]!==J||t[63]!==f.disabled||t[64]!==f.pending||t[65]!==Y||t[66]!==x?(ge=y&&(0,$.jsx)(At,{containerRef:g,disabled:!!(f.pending||f.disabled),onInsert:J,onSend:Y,onRelease:kt,onHintChange:x}),t[61]=y,t[62]=J,t[63]=f.disabled,t[64]=f.pending,t[65]=Y,t[66]=x,t[67]=ge):ge=t[67];let _e=k.text,ve=f.pending||m,ye=f.pending===!0,be=f.layout===`inline`?`py-3 leading-6`:`pt-4 pb-2`,xe;t[68]!==f.textLayoutClassName||t[69]!==be?(xe=j(`whitespace-pre-wrap break-words overflow-hidden px-3 typography-markdown md:typography-ui-label`,be,f.textLayoutClassName),t[68]=f.textLayoutClassName,t[69]=be,t[70]=xe):xe=t[70];let Z;t[71]!==q||t[72]!==k?(Z=(e,t)=>{let n=c(k,e,t?.target.selectionStart??e.length,t?.target.selectionEnd??e.length);q(n.document,n.caret),F(t?.nativeEvent?.inputType===`insertFromPaste`)},t[71]=q,t[72]=k,t[73]=Z):Z=t[73];let we=G?te:void 0,Te=G?R:void 0,Ae;t[74]===f.textareaProps?Ae=t[75]:(Ae=e=>{f.textareaProps?.onScroll?.(e),V.current&&(V.current.scrollTop=e.currentTarget.scrollTop,V.current.scrollLeft=e.currentTarget.scrollLeft)},t[74]=f.textareaProps,t[75]=Ae);let Me,Ne;t[76]!==fe||t[77]!==f.textareaProps?(Me=e=>{f.textareaProps?.onCopy?.(e),e.defaultPrevented||fe(e,!1)},Ne=e=>{f.textareaProps?.onCut?.(e),e.defaultPrevented||fe(e,!0)},t[76]=fe,t[77]=f.textareaProps,t[78]=Me,t[79]=Ne):(Me=t[78],Ne=t[79]);let Fe;t[80]===f.textareaProps?Fe=t[81]:(Fe=e=>{N(e.currentTarget.selectionStart),f.textareaProps?.onSelect?.(e)},t[80]=f.textareaProps,t[81]=Fe);let Ie,Le;t[82]===Symbol.for(`react.memo_cache_sentinel`)?(Ie=()=>{L(!0)},Le=e=>{L(!1),N(e.currentTarget.selectionStart)},t[82]=Ie,t[83]=Le):(Ie=t[82],Le=t[83]);let ze;t[84]!==q||t[85]!==I||t[86]!==k||t[87]!==G||t[88]!==f.textareaProps?(ze=e=>{if(f.textareaProps?.onKeyDown?.(e),!(e.defaultPrevented||Se(e))){if(I){e.key===`Enter`&&e.preventDefault();return}if((e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`z`){let t=e.shiftKey?Oe(W.current,k):Pe(W.current,k);t&&(e.preventDefault(),W.current=t.history,q(t.snapshot.document,t.snapshot.selection.end,!1),F(!0));return}if(e.key===`Backspace`||e.key===`Delete`){let t=a(k,{key:e.key,selectionStart:e.currentTarget.selectionStart,selectionEnd:e.currentTarget.selectionEnd,altKey:e.altKey});if(t){e.preventDefault(),q(t.document,t.caret),F(!0);return}}G&&[`ArrowDown`,`ArrowUp`,`Enter`,`Tab`,`Escape`].includes(e.key)&&(e.preventDefault(),e.stopPropagation(),H.current?.keyDown(e.key))}},t[84]=q,t[85]=I,t[86]=k,t[87]=G,t[88]=f.textareaProps,t[89]=ze):ze=t[89];let Be;t[90]!==f.textareaProps||t[91]!==we||t[92]!==Te||t[93]!==Ae||t[94]!==Me||t[95]!==Ne||t[96]!==Fe||t[97]!==ze?(Be={...f.textareaProps,"aria-controls":we,"aria-activedescendant":Te,"aria-autocomplete":`list`,onScroll:Ae,onCopy:Me,onCut:Ne,onSelect:Fe,onCompositionStart:Ie,onCompositionEnd:Le,onKeyDown:ze},t[90]=f.textareaProps,t[91]=we,t[92]=Te,t[93]=Ae,t[94]=Me,t[95]=Ne,t[96]=Fe,t[97]=ze,t[98]=Be):Be=t[98];let He;t[99]!==oe||t[100]!==te||t[101]!==G||t[102]!==f.isMobile||t[103]!==le?(He=G?(0,$.jsx)(Mt,{ref:H,query:G.query,isMobile:f.isMobile??!1,listId:te,onHighlightChange:z,onSelect:le,onClose:oe}):null,t[99]=oe,t[100]=te,t[101]=G,t[102]=f.isMobile,t[103]=le,t[104]=He):He=t[104];let Ue;t[105]!==k.text||t[106]!==me||t[107]!==C||t[108]!==f||t[109]!==ve||t[110]!==ye||t[111]!==xe||t[112]!==Z||t[113]!==Be||t[114]!==He?(Ue=(0,$.jsx)(Ee,{...f,value:_e,pending:ve,placeholder:C,disableInputWhilePending:ye,inputRef:B,highlightedContent:me,highlightRef:V,textLayoutClassName:xe,onChange:Z,textareaProps:Be,children:He}),t[105]=k.text,t[106]=me,t[107]=C,t[108]=f,t[109]=ve,t[110]=ye,t[111]=xe,t[112]=Z,t[113]=Be,t[114]=He,t[115]=Ue):Ue=t[115];let We;return t[116]!==he||t[117]!==ge||t[118]!==Ue?(We=(0,$.jsxs)(`div`,{ref:g,className:`oc-hold-to-talk-container`,"data-hold-to-talk-empty":he,children:[ge,Ue]}),t[116]=he,t[117]=ge,t[118]=Ue,t[119]=We):We=t[119],We};function Pt(e){return{start:e.start,end:e.end,priority:103,...f(e)}}function Ft(e,t){return(0,$.jsx)(`span`,{className:e.className,children:e.visual?(0,$.jsx)(Me,{visual:e.visual,text:e.text}):e.text},`${t}-${e.text.length}`)}var It=`rounded-[1.35rem] border border-border/40 cursor-zoom-in`;function Lt({assistantID:e,descriptor:t,onShowPopup:n}){let{t:r}=A(),i=be(),{attachmentID:a,sha256:o,size:s,mime:c,filename:l}=t,u=Q.useMemo(()=>({type:`file`,attachmentID:a,sha256:o,size:s,mime:c,filename:l}),[a,o,s,c,l]),d=c.startsWith(`image/`),f=Ge(l??``,c),[p,m]=Q.useState(0),[h,g]=Q.useState(``),[_,v]=Q.useState(!1),[y,b]=Q.useState(!1),x=Q.useRef(null),S=Q.useRef([]);Q.useEffect(()=>{g(``),v(!1);let t=new AbortController,n;return d&&st(e,u,{signal:t.signal}).then(e=>{if(t.signal.aborted){e.release();return}n=e.release,g(e.url)}).catch(()=>{t.signal.aborted||v(!0)}),()=>{t.abort(),n?.()}},[e,u,i,d,p]),Q.useEffect(()=>()=>{x.current?.abort(),S.current.forEach(e=>URL.revokeObjectURL(e)),S.current=[]},[e,u,i]);let C=O(async(t=!1)=>{if(x.current)return;let i=new AbortController;x.current=i,b(!0),v(!1);try{let a=await ot(e,u,{signal:i.signal});if(i.signal.aborted)return;S.current.forEach(e=>URL.revokeObjectURL(e));let o=URL.createObjectURL(a);if(S.current=[o],t&&n){n({open:!0,title:l||r(`assistants.contact.attachment.file`),content:``,video:{url:o,mimeType:c,filename:l}});return}let s=document.createElement(`a`);s.href=o,s.download=l||r(`assistants.contact.attachment.file`),document.body.appendChild(s),s.click(),s.remove()}catch{i.signal.aborted||v(!0)}finally{x.current===i&&(x.current=null),i.signal.aborted||b(!1)}}),w=l||r(d?`assistants.contact.attachment.image`:`assistants.contact.attachment.file`),T=O(e=>{!n||!h||n({open:!0,title:w,content:``,metadata:{tool:`image-preview`,filename:w,mime:c},previewSource:e.currentTarget,image:{url:h,mimeType:c,filename:w,size:s,gallery:[{url:h,mimeType:c,filename:w,size:s}],index:0}})});return d&&h&&!_?(0,$.jsx)(Ye,{src:h,alt:w,contentFrame:!0,className:It,onError:()=>v(!0),onClick:T,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),T(e))},role:`button`,tabIndex:0,"data-assistant-contact-image":``}):d&&!_?(0,$.jsx)(Je,{className:`h-[var(--oc-content-image-height)] w-[min(20rem,100%)] rounded-[1.35rem]`}):(0,$.jsxs)(`div`,{className:`flex max-w-full flex-col gap-1 rounded-[1.25rem] bg-[var(--surface-muted)] px-3.5 py-2.5 ring-1 ring-inset ring-[var(--surface-subtle)]`,"data-assistant-contact-file":``,children:[(0,$.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2.5`,children:[(0,$.jsx)(X,{name:`file-text`,className:`size-4 shrink-0 text-muted-foreground`}),(0,$.jsx)(`span`,{className:`truncate typography-ui`,children:w})]}),_?(0,$.jsx)(`p`,{role:`alert`,className:`typography-micro text-[var(--status-error)]`,children:r(`assistants.contact.attachment.loadFailed`)}):null,d&&!_||y?(0,$.jsx)(`span`,{role:`status`,className:`typography-micro text-muted-foreground`,children:r(`common.loading`)}):(0,$.jsx)(M,{type:`button`,size:`sm`,variant:`ghost`,onClick:d?()=>m(e=>e+1):()=>void C(f&&!!n),children:r(_?`chat.history.retry`:f&&n?`contextPanel.mode.preview`:`assistants.contact.attachment.download`)})]})}function Rt(e){let t=(0,ct.c)(39),{part:n,onShowPopup:r}=e,{t:i}=A(),a=/^(?:https?:|data:|blob:)/i.test(n.url)?n.url:``,o=ye(a,``),[s,c]=Q.useState(!1),l;t[0]!==n.filename||t[1]!==i?(l=n.filename||i(`assistants.contact.attachment.image`),t[0]=n.filename,t[1]=i,t[2]=l):l=t[2];let u=l,d;t[3]!==u||t[4]!==r||t[5]!==o?(d=e=>{!r||!o||r({open:!0,title:u,content:``,metadata:{tool:`image-preview`,filename:u},previewSource:e.currentTarget,image:{url:o,filename:u,gallery:[{url:o,filename:u}],index:0}})},t[3]=u,t[4]=r,t[5]=o,t[6]=d):d=t[6];let f=O(d);if(Ge(a,n.mime)&&a&&r){let e;t[7]!==r||t[8]!==n.filename||t[9]!==n.mime||t[10]!==a||t[11]!==i?(e=()=>r({open:!0,title:n.filename||i(`assistants.contact.attachment.file`),content:``,video:{url:a,filename:n.filename,mimeType:n.mime}}),t[7]=r,t[8]=n.filename,t[9]=n.mime,t[10]=a,t[11]=i,t[12]=e):e=t[12];let o;t[13]!==n.filename||t[14]!==i?(o=n.filename||i(`contextPanel.mode.preview`),t[13]=n.filename,t[14]=i,t[15]=o):o=t[15];let s;return t[16]!==e||t[17]!==o?(s=(0,$.jsx)(M,{variant:`secondary`,size:`sm`,onClick:e,children:o}),t[16]=e,t[17]=o,t[18]=s):s=t[18],s}if(n.mime.startsWith(`image/`)&&o&&!s){let e;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(e=()=>c(!0),t[19]=e):e=t[19];let n;t[20]===f?n=t[21]:(n=e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),f(e))},t[20]=f,t[21]=n);let r;return t[22]!==u||t[23]!==f||t[24]!==o||t[25]!==n?(r=(0,$.jsx)(Ye,{src:o,alt:u,contentFrame:!0,className:It,onError:e,onClick:f,onKeyDown:n,role:`button`,tabIndex:0,"data-assistant-contact-image":``}),t[22]=u,t[23]=f,t[24]=o,t[25]=n,t[26]=r):r=t[26],r}let p;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,$.jsx)(X,{name:`file-text`,className:`size-4 shrink-0 text-muted-foreground`}),t[27]=p):p=t[27];let m;t[28]!==n.filename||t[29]!==i?(m=n.filename||i(`assistants.contact.attachment.file`),t[28]=n.filename,t[29]=i,t[30]=m):m=t[30];let h;t[31]===m?h=t[32]:(h=(0,$.jsx)(`span`,{className:`truncate typography-ui`,children:m}),t[31]=m,t[32]=h);let g;t[33]!==s||t[34]!==i?(g=s?(0,$.jsx)(M,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>c(!1),children:i(`chat.history.retry`)}):null,t[33]=s,t[34]=i,t[35]=g):g=t[35];let _;return t[36]!==h||t[37]!==g?(_=(0,$.jsxs)(`div`,{className:`flex max-w-full items-center gap-2.5 rounded-[1.25rem] bg-[var(--surface-muted)] px-3.5 py-2.5`,"data-assistant-contact-file":``,children:[p,h,g]}),t[36]=h,t[37]=g,t[38]=_):_=t[38],_}function zt(e){let t=(0,ct.c)(5),{assistantID:n,part:r,onShowPopup:i}=e,a=be(),o;return t[0]!==n||t[1]!==i||t[2]!==r||t[3]!==a?(o=`attachmentID`in r?(0,$.jsx)(Lt,{assistantID:n,descriptor:r,onShowPopup:i},`${a}:${n}:${r.attachmentID}:${r.sha256}`):(0,$.jsx)(Rt,{part:r,onShowPopup:i},`${a}:${r.url}`),t[0]=n,t[1]=i,t[2]=r,t[3]=a,t[4]=o):o=t[4],o}var Bt=[],Vt=e=>e.flatMap(e=>e.type===`text`&&e.text.trim()?[e.text]:[]).join(`
|
|
3
|
-
`),Ht=(e,t,n,r=Date.now())=>({assistantID:e,messageID:t,parts:n,status:`sending`,createdAt:r}),Ut=(e,t)=>{let n=e.filter(e=>e.assistantID===t);return n.length===e.length?e:n},Wt=(e,t)=>{let n=e.filter(e=>e.assistantID===t);return n.length===e.length?e:n},Gt=(e,t,n,r)=>({messageID:t?`${e.turnID}:preview:${t.bubbleIndex}`:`${e.turnID}:preview:${r}`,assistantID:e.assistantID,role:`assistant`,turnID:e.turnID,bubbleIndex:t?.bubbleIndex??0,createdAt:t?.occurredAt??e.occurredAt,ordinal:n,status:r,fromAssistantID:null,fromAssistantName:null,parts:t?[{type:`text`,text:t.text}]:[],text:t?.text??``,cards:[]}),Kt=(e,t,n)=>{let r=e.bubbles.filter(e=>!t.has(e.bubbleIndex)).map((t,r)=>Gt(e,t,n+r,t.done?`complete`:`streaming`));return e.status===`failed`?[...r,Gt(e,null,n+r.length,`failed`)]:e.status===`admitted`||e.status===`streaming`?[...r,Gt(e,null,n+r.length,`admitted`)]:r},qt=(e,t,n,r=[])=>{let i=new Set(e.map(e=>e.messageID)),a=t.flatMap((t,r)=>t.assistantID!==n||i.has(t.messageID)?[]:[{messageID:t.messageID,assistantID:n,role:`user`,turnID:t.messageID,bubbleIndex:0,createdAt:t.createdAt,ordinal:e.length+r,status:t.status,fromAssistantID:null,fromAssistantName:null,parts:[...t.parts],text:Vt(t.parts),cards:[]}]),o=a.length===0?e:[...e,...a],s=r.filter(e=>e.assistantID===n);if(s.length===0)return o;let c=new Map,l=new Map;o.forEach((e,t)=>{if(c.set(e.turnID,t),e.role!==`assistant`||e.messageID.includes(`:preview:`))return;let n=l.get(e.turnID)??new Set;n.add(e.bubbleIndex),l.set(e.turnID,n)});let u=new Map,d=[];for(let e of s){let t=Kt(e,l.get(e.turnID)??new Set,o.length+d.length);if(t.length===0)continue;let n=c.get(e.turnID);if(n===void 0){if(e.status===`failed`&&o.some(t=>t.turnID!==e.turnID))continue;d.push(...t);continue}let r=u.get(n)??[];r.push(...t),u.set(n,r)}return u.size===0&&d.length===0?o:o.flatMap((e,t)=>[e,...u.get(t)??[]]).concat(d)},Jt=(e,t)=>{let n=new Set(t.map(e=>e.messageID)),r=e.filter(e=>!n.has(e.messageID));return r.length===e.length?e:r},Yt=(e,t)=>e.map(e=>e.messageID===t?{...e,status:`admitted`}:e),Xt=(e,t,n,r=Date.now())=>{let i=e.filter(e=>e.assistantID!==t||e.status!==`failed`||e.turnID===n);return i.some(e=>e.assistantID===t&&e.turnID===n)?i.length===e.length?e:i:[...i,{assistantID:t,turnID:n,status:`admitted`,bubbles:[],occurredAt:r}]},Zt=(e,t,n)=>!t?.turnID||!t.assistantID||n?.has(t.turnID)?e:Xt(e,t.assistantID,t.turnID,t.admittedAt),Qt=(e,t)=>{let n=t.assistantID,r=t.pendingSendTurnIDs??new Set,i=t.settledTurnIDs??new Set,a=typeof t.snapshotRevision==`number`&&Number.isFinite(t.snapshotRevision)?t.snapshotRevision:null,o=t.admissionRevisionByTurnID instanceof Map?t.admissionRevisionByTurnID:new Map(Object.entries(t.admissionRevisionByTurnID??{}).map(([e,t])=>[e,Number(t)])),s=t.occurredAt??Date.now(),c=t.activeContactTurn&&t.activeContactTurn.turnID?t.activeContactTurn:null,l=!!(t.serverWorking||c),u=Zt(e,c?{assistantID:n,turnID:c.turnID,admittedAt:c.admittedAt}:null,i),d=Array.isArray(t.messages)?t.messages:[];for(let e of d)e.role===`assistant`&&e.status===`error`&&(r.has(e.turnID)||i.has(e.turnID)||(u=en(u,{assistantID:n,turnID:e.turnID,status:`error`,error:e.text||`upstream_error`,occurredAt:s})));if(u=tn(u,d),l){let t=u.filter(e=>{if(e.assistantID!==n||e.status!==`admitted`&&e.status!==`streaming`||r.has(e.turnID)||c&&e.turnID===c.turnID)return!0;let t=o.get(e.turnID);return typeof t==`number`&&a!=null&&a<t?!0:typeof t==`number`&&a!=null&&a>=t&&e.turnID!==c?.turnID?!1:!c||e.turnID===c.turnID});return t.length===e.length&&t.every((t,n)=>t===e[n])?e:t}if(a==null)return u.length===e.length&&u.every((t,n)=>t===e[n])?e:u;let f=u.filter(e=>{if(e.assistantID!==n||e.status!==`admitted`&&e.status!==`streaming`||r.has(e.turnID))return!0;if(i.has(e.turnID))return!1;let t=o.get(e.turnID);return typeof t==`number`&&a<t});return f.length===e.length&&f.every((t,n)=>t===e[n])?e:f.length===u.length?u:f},$t=(e,t)=>Xt(e,t.assistantID,t.turnID,t.occurredAt).map(e=>{if(e.assistantID!==t.assistantID||e.turnID!==t.turnID||e.status===`failed`||e.status===`complete`)return e;let n=e.bubbles.find(e=>e.bubbleIndex===t.bubbleIndex);if(n?.done)return e;let r=n?{...n,text:`${n.text}${t.delta}`,done:t.done,occurredAt:t.occurredAt}:{bubbleIndex:t.bubbleIndex,text:t.delta,done:t.done,occurredAt:t.occurredAt},i=n?e.bubbles.map(e=>e.bubbleIndex===t.bubbleIndex?r:e):[...e.bubbles,r].sort((e,t)=>e.bubbleIndex-t.bubbleIndex);return{...e,status:`streaming`,bubbles:i}}),en=(e,t,n={})=>n.requireExisting&&!e.some(e=>e.assistantID===t.assistantID&&e.turnID===t.turnID)?e:Xt(e,t.assistantID,t.turnID,t.occurredAt).map(e=>e.assistantID!==t.assistantID||e.turnID!==t.turnID||e.status===`complete`||e.status===`failed`?e:{...e,status:t.status===`error`?`failed`:`complete`,...t.error?{error:t.error}:{}}),tn=(e,t)=>{let n=new Set(t.map(e=>e.turnID).filter(Boolean)),r=t.length>0?t[t.length-1]?.turnID??null:null,i=[...e].reverse().find(e=>e.status===`admitted`||e.status===`streaming`)?.turnID??r,a=new Set(t.flatMap(e=>e.role===`assistant`?[e.turnID]:[])),o=e.filter(e=>e.status===`admitted`||e.status===`streaming`||!(e.status===`complete`&&a.has(e.turnID)||!n.has(e.turnID)||e.status===`failed`&&(i&&i!==e.turnID||r&&r!==e.turnID)));return o.length===e.length?e:o},nn=(e,t,n)=>e.map(e=>e.messageID===t?{...e,status:`failed`,error:n}:e),rn=(e,t)=>{if(e instanceof R){if(e.code===`no_provider`)return t.noProvider;if(e.code===`admission_timeout`||e.code===`generate_timeout`)return t.timedOut;if(e.message&&e.message!==e.code)return e.message}return L(e)?t.timedOut:t.sendFailed},an=()=>{let e=!1;return{tryAcquire:()=>!e&&(e=!0,!0),release:()=>{e=!1}}},on=e=>{let t=e.text.trim();if(e.sending||!t&&e.attachments.length===0||!e.gate.tryAcquire())return{ok:!1};let n=[...t?[{type:`text`,text:t}]:[],...e.attachments.map(e=>({type:`file`,mime:e.mime,url:e.url,filename:e.name}))],r=e.createMessageID();return{ok:!0,messageID:r,parts:n,turn:Ht(e.assistantID,r,n,e.createdAt)}},sn=e=>e.some(e=>e.status===`sending`),cn=e=>e.some(e=>e.status===`admitted`||e.status===`streaming`),ln=[`cursor-pointer rounded-[1.35rem] bg-[var(--surface-elevated)] ring-1 ring-inset ring-[var(--surface-subtle)]`,`px-3.5 py-3 text-left transition-[background-color,box-shadow,transform] duration-200 ease-out motion-reduce:transition-none`,`hover:-translate-y-px hover:bg-interactive-hover/45 hover:shadow-sm active:translate-y-0 motion-reduce:hover:translate-y-0`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--interactive-focus-ring)]`].join(` `),un=`${ln} w-fit min-w-0 max-w-[min(100%,15rem)]`,dn=`${ln} w-fit min-w-0 max-w-[min(100%,20rem)]`;function fn(e,t){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t())}var pn=e=>{let t=(0,ct.c)(23),{card:n}=e,{t:r}=A(),i=we(),a;t[0]===i?a=t[1]:(a=i&&!v(),t[0]=i,t[1]=a);let o=!!a,s=n.name,c=`${n.providerID}/${n.modelID}`,l;t[2]!==n.assistantID||t[3]!==o?(l=()=>{if(o){q.getState().openAssistant(n.assistantID);return}J(n.assistantID)},t[2]=n.assistantID,t[3]=o,t[4]=l):l=t[4];let u=O(l),d;t[5]===u?d=t[6]:(d=e=>{fn(e,u)},t[5]=u,t[6]=d);let f=O(d),p;t[7]!==r||t[8]!==s?(p=r(`assistants.contact.card.assistant.aria`,{name:s}),t[7]=r,t[8]=s,t[9]=p):p=t[9];let m;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,$.jsx)(`span`,{className:`relative inline-block size-10 shrink-0 leading-none`,"aria-hidden":!0,children:(0,$.jsx)(`span`,{className:`flex size-10 items-center justify-center rounded-xl bg-[var(--surface-muted)] text-foreground`,children:(0,$.jsx)(X,{name:`robot-2`,className:`size-5`})})}),t[10]=m):m=t[10];let h;t[11]===s?h=t[12]:(h=(0,$.jsx)(`h3`,{className:`min-w-0 line-clamp-2 break-words typography-ui-label font-medium leading-5 text-foreground`,children:s}),t[11]=s,t[12]=h);let g;t[13]===c?g=t[14]:(g=(0,$.jsx)(`p`,{className:`truncate typography-micro font-normal leading-4 text-muted-foreground`,children:c}),t[13]=c,t[14]=g);let _;t[15]!==h||t[16]!==g?(_=(0,$.jsxs)(`div`,{className:`flex items-center gap-3`,children:[m,(0,$.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[h,g]})]}),t[15]=h,t[16]=g,t[17]=_):_=t[17];let y;return t[18]!==f||t[19]!==u||t[20]!==p||t[21]!==_?(y=(0,$.jsx)(`article`,{className:un,role:`button`,tabIndex:0,"aria-label":p,"data-assistant-contact-card":`assistant`,onClick:u,onKeyDown:f,children:_}),t[18]=f,t[19]=u,t[20]=p,t[21]=_,t[22]=y):y=t[22],y},mn=e=>{let t=(0,ct.c)(30),{card:n}=e,{t:r}=A(),i=n.name,a;t[0]!==n.kind||t[1]!==r?(a=n.kind===`daily`||n.kind===`weekly`||n.kind===`once`||n.kind===`cron`?r(`sessions.scheduledTasks.editor.scheduleType.${n.kind}`):n.kind,t[0]=n.kind,t[1]=r,t[2]=a):a=t[2];let o=a,s;t[3]!==n.time||t[4]!==o?(s=[o,n.time].filter(Boolean),t[3]=n.time,t[4]=o,t[5]=s):s=t[5];let c=s.join(` · `),l;t[6]!==n.prompt||t[7]!==c?(l=c.trim()||(typeof n.prompt==`string`?n.prompt.trim():``),t[6]=n.prompt,t[7]=c,t[8]=l):l=t[8];let u=l,d;t[9]!==n.projectID||t[10]!==n.taskID?(d=()=>{nt(n.projectID,n.taskID)},t[9]=n.projectID,t[10]=n.taskID,t[11]=d):d=t[11];let f=O(d),p;t[12]===f?p=t[13]:(p=e=>{fn(e,f)},t[12]=f,t[13]=p);let m=O(p),h;t[14]!==r||t[15]!==i?(h=r(`assistants.contact.card.schedule.aria`,{name:i}),t[14]=r,t[15]=i,t[16]=h):h=t[16];let g;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,$.jsx)(`span`,{className:`relative inline-block size-10 shrink-0 leading-none`,"aria-hidden":!0,children:(0,$.jsx)(`span`,{className:`flex size-10 items-center justify-center rounded-xl bg-[var(--surface-muted)] text-foreground`,children:(0,$.jsx)(X,{name:`calendar`,className:`size-5`})})}),t[17]=g):g=t[17];let _;t[18]===i?_=t[19]:(_=(0,$.jsx)(`h3`,{className:`min-w-0 line-clamp-2 break-words typography-ui-label font-medium leading-5 text-foreground`,children:i}),t[18]=i,t[19]=_);let v;t[20]===u?v=t[21]:(v=u?(0,$.jsx)(`p`,{className:`truncate typography-micro font-normal leading-4 text-muted-foreground`,children:u}):null,t[20]=u,t[21]=v);let y;t[22]!==_||t[23]!==v?(y=(0,$.jsxs)(`div`,{className:`flex items-center gap-3`,children:[g,(0,$.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[_,v]})]}),t[22]=_,t[23]=v,t[24]=y):y=t[24];let b;return t[25]!==m||t[26]!==f||t[27]!==y||t[28]!==h?(b=(0,$.jsx)(`article`,{className:un,role:`button`,tabIndex:0,"aria-label":h,"data-assistant-contact-card":`schedule`,onClick:f,onKeyDown:m,children:y}),t[25]=m,t[26]=f,t[27]=y,t[28]=h,t[29]=b):b=t[29],b},hn=(e,t)=>t===`cancelled`?t:e===`busy`||e===`retry`?e:t===`error`||t===`question`||t===`complete`?t:e===`idle`?`complete`:t===`busy`||t===`retry`||t===`idle`?t:t||`busy`,gn=e=>e===`cancelled`?`assistants.contact.card.session.status.cancelled`:e===`busy`?`assistants.contact.card.session.status.busy`:e===`retry`?`assistants.contact.card.session.status.retry`:e===`idle`?`assistants.contact.card.session.status.idle`:e===`complete`?`assistants.contact.card.session.status.complete`:e===`error`?`assistants.contact.card.session.status.error`:e===`question`?`assistants.contact.card.session.status.question`:null,_n=e=>e===`busy`?`bg-[var(--status-info)]/10 text-[var(--status-info)]`:e===`retry`||e===`question`?`bg-[var(--status-warning)]/10 text-[var(--status-warning)]`:e===`error`?`bg-[var(--status-error)]/10 text-[var(--status-error)]`:e===`idle`||e===`complete`?`bg-[var(--status-success)]/10 text-[var(--status-success)]`:`bg-[var(--surface-muted)] text-muted-foreground`,vn=e=>e.split(/[/\\]/u).filter(Boolean).at(-1)||e,yn=e=>{let t=(0,ct.c)(35),{card:n}=e,{t:r}=A(),i=we(),a;t[0]===i?a=t[1]:(a=i&&!v(),t[0]=i,t[1]=a);let o=!!a,s;t[2]===n.sessionID?s=t[3]:(s=e=>e.activeSessions.find(e=>e.id===n.sessionID)??e.archivedSessions.find(e=>e.id===n.sessionID)??null,t[2]=n.sessionID,t[3]=s);let c=K(s),l=ce(n.sessionID),u=(typeof c?.title==`string`&&c.title.trim()?c.title.trim():null)||n.title||r(`assistants.contact.card.session.untitled`),d=hn(l?.type,n.status),f=gn(d),p=d===`busy`||d===`retry`,m=vn(typeof c?.directory==`string`&&c.directory.trim()?c.directory.trim():n.directory),h=Ne(c)||n.branch,g=Ae(c),_=Fe(c),b=Le(_),x=[m,g,h].filter(bn),S;t[4]!==n.directory||t[5]!==n.sessionID||t[6]!==o?(S=()=>{let e=it(n.sessionID)?.directory||n.directory;oe(n.sessionID,e,{phoneShell:o,switchToChat:!0}),o||y.getState().setActiveMainTab(`chat`)},t[4]=n.directory,t[5]=n.sessionID,t[6]=o,t[7]=S):S=t[7];let C=O(S),w;t[8]===C?w=t[9]:(w=e=>{fn(e,C)},t[8]=C,t[9]=w);let T=O(w),E=dn,D=r(`assistants.contact.card.session.aria`,{title:u}),k;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,$.jsx)(`span`,{className:`flex size-10 items-center justify-center rounded-xl bg-[var(--surface-muted)] text-foreground`,children:(0,$.jsx)(X,{name:`chat-3`,className:`size-5`})}),t[10]=k):k=t[10];let M;t[11]===p?M=t[12]:(M=p?(0,$.jsx)(`span`,{className:`pointer-events-none absolute right-0 bottom-0 size-2.5 translate-x-0.5 translate-y-0.5 rounded-full bg-[var(--status-success)] ring-2 ring-[var(--surface-elevated)]`,"data-assistant-working-dot":``,"aria-hidden":!0}):null,t[11]=p,t[12]=M);let N;t[13]===M?N=t[14]:(N=(0,$.jsxs)(`span`,{className:`relative inline-block size-10 shrink-0 leading-none`,"aria-hidden":!0,children:[k,M]}),t[13]=M,t[14]=N);let P;t[15]===u?P=t[16]:(P=(0,$.jsx)(`h3`,{className:`min-w-0 flex-1 line-clamp-2 break-words typography-ui-label font-medium leading-5 text-foreground`,children:u}),t[15]=u,t[16]=P);let F=f?(0,$.jsx)(`span`,{className:j(`shrink-0 rounded-full px-1.5 py-0.5 typography-micro leading-none`,_n(d)),children:r(f)}):null,I;t[17]!==P||t[18]!==F?(I=(0,$.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[P,F]}),t[17]=P,t[18]=F,t[19]=I):I=t[19];let L;t[20]===x?L=t[21]:(L=x.length>0?(0,$.jsx)(`p`,{className:`truncate typography-micro font-normal leading-4 text-muted-foreground`,children:x.join(` · `)}):null,t[20]=x,t[21]=L);let R=b||_?.files!==void 0&&_.files>0?(0,$.jsxs)(`p`,{className:`flex flex-wrap items-baseline gap-x-1.5 typography-micro tabular-nums`,children:[_?.additions===void 0?null:(0,$.jsxs)(`span`,{className:`text-[var(--status-success)]`,children:[`+`,_.additions]}),_?.deletions===void 0?null:(0,$.jsxs)(`span`,{className:`text-[var(--status-error)]`,children:[`−`,_.deletions]}),_?.files===void 0?null:(0,$.jsx)(`span`,{className:`text-muted-foreground`,children:_.files===1?r(`assistants.contact.card.session.changes.filesSingle`,{count:_.files}):r(`assistants.contact.card.session.changes.filesPlural`,{count:_.files})})]}):null,z;t[22]!==I||t[23]!==L||t[24]!==R?(z=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[I,L,R]}),t[22]=I,t[23]=L,t[24]=R,t[25]=z):z=t[25];let B;t[26]!==N||t[27]!==z?(B=(0,$.jsxs)(`div`,{className:`flex items-start gap-3`,children:[N,z]}),t[26]=N,t[27]=z,t[28]=B):B=t[28];let V;return t[29]!==T||t[30]!==C||t[31]!==B||t[32]!==E||t[33]!==D?(V=(0,$.jsx)(`article`,{className:E,role:`button`,tabIndex:0,"aria-label":D,"data-assistant-contact-card":`session`,onClick:C,onKeyDown:T,children:B}),t[29]=T,t[30]=C,t[31]=B,t[32]=E,t[33]=D,t[34]=V):V=t[34],V};function bn(e){return!!(e&&e.trim())}var xn=2,Sn=1500,Cn=e=>({scrollTop:e.scrollTop,scrollHeight:e.scrollHeight,clientHeight:e.clientHeight}),wn=e=>e.scrollHeight-e.scrollTop-e.clientHeight,Tn=e=>wn(e)<=xn,En=(e,t)=>{let n=t instanceof Element?t:t instanceof Node?t.parentElement:null;for(;n&&n!==e;){if(n instanceof HTMLElement&&n.scrollHeight>n.clientHeight+1&&n.scrollTop+n.clientHeight<n.scrollHeight-1)return!0;n=n.parentElement}return!1},Dn=e=>e.altKey||e.ctrlKey||e.metaKey?!1:e.key===`ArrowDown`||e.key===`PageDown`||e.key===`End`,On=({active:e,assistantID:t,contentRevision:n,onLoadEarlier:r})=>{let i=Q.useRef(null),[a,o]=Q.useState(null),[s,c]=Q.useState(null),l=Q.useRef(!0),u=Q.useRef(null),d=Q.useRef(null),f=Q.useRef(null),p=Q.useRef(0),m=Q.useRef(null),h=Q.useRef(null),g=Q.useRef(e);g.current=e;let _=Be(),v=Q.useRef(!1),y=Q.useRef(null),b=Q.useRef(null),x=O(()=>{y.current?.stop(),y.current=null,b.current=null}),S=Q.useMemo(()=>e=>{i.current=e,o(t=>t===e?t:e)},[]),C=Q.useMemo(()=>e=>{c(t=>t===e?t:e)},[]),w=O(()=>{let e=i.current;if(!e||!g.current||l.current)return;let t=e.getBoundingClientRect().top,n=Array.from(e.querySelectorAll(`[data-message-id]`)).find(e=>e.getBoundingClientRect().bottom>t);u.current=n?{id:n.dataset.messageId,offset:n.getBoundingClientRect().top-t,scrollTop:e.scrollTop}:null}),T=O(()=>{let e=i.current,t=u.current;if(!e||!g.current||l.current)return;if(!t){w();return}let n=e.scrollTop-t.scrollTop;if(Math.abs(n)>.5&&m.current){p.current=e.scrollTop,w();return}let r=Array.from(e.querySelectorAll(`[data-message-id]`)).find(e=>e.dataset.messageId===t.id);if(!r){w();return}let a=r.getBoundingClientRect().top-e.getBoundingClientRect().top-(t.offset-n);Math.abs(a)>.5&&(e.scrollTop+=a),p.current=e.scrollTop,u.current={id:t.id,offset:r.getBoundingClientRect().top-e.getBoundingClientRect().top,scrollTop:e.scrollTop}}),D=O(()=>{x(),l.current=!1,p.current=i.current?.scrollTop??0,w()}),A=O(()=>{if(!g.current||!l.current)return!1;let e=i.current;if(!e)return!1;let t=Cn(e),n=Math.min(p.current,Math.max(0,t.scrollHeight-t.clientHeight));if(t.scrollTop<n-.5)return x(),l.current=!1,p.current=t.scrollTop,w(),!1;let r=!v.current;if(r&&e.querySelector(`[data-message-id]`)&&(v.current=!0),Tn(t))return x(),p.current=t.scrollTop,!1;let a=Math.max(0,t.scrollHeight-t.clientHeight);return!r&&!_?b.current!==a&&(x(),b.current=a,y.current=ze(e.scrollTop,a,{duration:.22,ease:`easeOut`,onUpdate:t=>{if(!g.current||!l.current||i.current!==e)return;let n=Math.max(0,e.scrollHeight-e.clientHeight);if(e.scrollTop<Math.min(p.current,n)-.5){l.current=!1,x(),p.current=e.scrollTop,w();return}e.scrollTop=Math.min(Math.max(e.scrollTop,t),n),p.current=e.scrollTop},onComplete:()=>{y.current=null,b.current=null}}),!0):(x(),e.scrollTop=a,p.current=e.scrollTop,!0)}),j=O(e=>{h.current={direction:e,expiresAt:performance.now()+Sn}}),M=O(()=>{let e=h.current;return e?performance.now()>e.expiresAt?(h.current=null,null):e.direction:null}),N=O(()=>{x(),l.current=!1,w()}),P=O(()=>{if(!g.current)return;let e=i.current;if(!e)return;let t=Cn(e),n=t.scrollTop>p.current,a=Math.min(p.current,Math.max(0,t.scrollHeight-t.clientHeight));if(p.current=t.scrollTop,l.current){t.scrollTop<a-.5&&N();return}let o=M();T(),t.scrollTop<=80&&o===`up`&&r?.(),n&&Tn(t)&&(o===`down`||o===`scrollbar`)&&(l.current=!0)}),F=O(e=>{let t=i.current;if(!(!t||e.deltaY===0)){if(e.deltaY<0){if(Ie(t,e.target))return;j(`up`),N(),t.scrollTop<=80&&r?.();return}En(t,e.target)||j(`down`)}}),I=O(e=>{h.current=null;let t=e.touches.item(0);m.current=t?{x:t.clientX,y:t.clientY,deltaX:0,deltaY:0}:null}),L=O(e=>{let t=i.current,n=e.touches.item(0);if(!t||!n){m.current=null;return}let a=m.current;if(!a)return;let o=n.clientY-a.y,s=o*a.deltaY<0,c=(s?0:a.deltaX)+n.clientX-a.x,l=(s?0:a.deltaY)+o;if(m.current={x:n.clientX,y:n.clientY,deltaX:c,deltaY:l},!(Math.abs(c)>=Math.abs(l))){if(l>0&&Ie(t,e.target)||l<0&&En(t,e.target)){m.current.deltaX=0,m.current.deltaY=0;return}j(l>0?`up`:`down`),l>2&&(N(),t.scrollTop<=80&&r?.())}}),R=O(()=>{m.current=null}),z=O(e=>{if(Te(e)){j(`up`),N(),(i.current?.scrollTop??1/0)<=80&&r?.();return}Dn(e)&&j(`down`)}),B=O(e=>{let t=i.current;e.pointerType===`mouse`&&e.target===t&&j(`scrollbar`)});Q.useLayoutEffect(()=>{let n=e?t:null,r=i.current;(d.current!==n||f.current!==r)&&(x(),v.current=!1,d.current=n,f.current=r,l.current=!0,u.current=null,h.current=null,m.current=null,p.current=r?.scrollTop??0),e&&(A(),T())},[e,t,n,a,_]),Q.useLayoutEffect(()=>()=>{x()},[e,t,a,x]);let V=Q.useMemo(()=>()=>void 0,[]),H=e&&a?a:V,U=Q.useMemo(()=>({passive:!0}),[]);k(`scroll`,P,H,U),k(`wheel`,F,H,U),k(`touchstart`,I,H,U),k(`touchmove`,L,H,U),k(`touchend`,R,H,U),k(`touchcancel`,R,H,U),k(`keydown`,z,H),k(`pointerdown`,B,H,U);let ee=O(()=>{A(),T()});return E(typeof ResizeObserver<`u`&&e?s:null,ee),{scrollRef:S,contentRef:C,preparePrepend:D}},kn=64,An=e=>{if(!e)return[];let t=Array.from(e.files||[]);return t.length>0?t:Array.from(e.items||[]).filter(e=>e.kind===`file`).map(e=>e.getAsFile()).filter(e=>e instanceof File)},jn=e=>Array.from(e?.files||[]),Mn=async(e,t=p)=>{let n=[],r=0;for(let i of Array.from(e||[])){if(!i||i.size<=0)continue;if(i.size>26214400){r+=1;continue}let e=URL.createObjectURL(i);n.push({id:t(),url:e,name:i.name.trim()||`attachment`,mime:i.type.trim()||`application/octet-stream`,file:i})}return{attachments:n,skippedTooLarge:r}},Nn=(e,t)=>{let n=[...e,...t];for(let e of n.slice(kn))e.url.startsWith(`blob:`)&&URL.revokeObjectURL(e.url);return n.slice(0,kn)},Pn=Ke(()=>x(()=>import(`./ToolOutputDialog-Dm4ljddO.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61]))),Fn=e=>e.trim().startsWith(`oc.settle.`),In=e=>e.status===`error`||e.status===`failed`&&e.messageID.endsWith(`:preview:failed`),Ln=e=>e.role===`assistant`&&e.status!==`error`&&e.parts.some(e=>e.type===`text`)?`${e.turnID}:assistant:${e.bubbleIndex}`:e.messageID,Rn=({assistant:e,warning:t,active:n,overlayHeader:r=!1})=>{let{t:i,locale:a}=A(),o=be(),s=y(e=>e.isMobile),c=z(),l=B(),u=ie(e.id,n),d=y(e=>e.isSettingsDialogOpen),f=n&&!d&&!u.hasMessageGap?I(e,u.data):null,m=N(e.name).displayName||e.name,h=(e,t)=>{let n=e?l.data?.assistants.find(t=>t.id===e):void 0;return n?N(n.name).displayName||n.name:t||i(`assistants.contact.peer.unknown`)},[g,_]=Q.useState(``),[v,b]=Q.useState([]),x=Q.useRef(null),S=Q.useRef(new Map),C=Q.useRef(new AbortController);Q.useEffect(()=>{let e=new AbortController;return C.current=e,()=>e.abort()},[e.id,o]);let w=Q.useRef(new Set);Q.useEffect(()=>{let e=new Set(v.map(e=>e.url));for(let t of w.current)e.has(t)||URL.revokeObjectURL(t);w.current=e},[v]),Q.useEffect(()=>()=>{for(let e of w.current)URL.revokeObjectURL(e)},[]);let[T,E]=Q.useState([]),[D,k]=Q.useState([]),[F,L]=Q.useState(null),[V,H]=Q.useState({open:!1,title:``,content:``}),W=y(e=>e.setImagePreviewOpen),ne=O(e=>{(e.image||e.mermaid||e.video)&&(H(e),W(!0))}),re=O(e=>{H(t=>({...t,open:e})),W(e)});Q.useEffect(()=>()=>{W(!1)},[W]);let G=Q.useRef(!1);Q.useEffect(()=>{S.current.clear(),x.current=null,E([]),k([]),L(null)},[o]);let ae=Q.useMemo(()=>an(),[]),K=Q.useRef(new Set),oe=Q.useRef(new Map),se=dt(e=>e.setWorking),q=u.data?.messages??Bt,ce=Ut(T,e.id),ue=Wt(D,e.id),J=qt(q,ce,e.id,ue).filter(e=>{if(e.status===`admitted`&&e.messageID.endsWith(`:preview:admitted`))return!1;let t=Array.isArray(e.parts)?e.parts:[];return t.length===0||t.some(e=>!(e.type===`text`&&Fn(e.text)))}),de=J.length-1;for(;de>=0&&In(J[de]);)--de;let Y=J.filter((e,t)=>!In(e)||t>de),fe=yt(Y),pe=Be(),me=`${o}:${e.id}`,he=Q.useRef(null),ge=he.current,_e=ge?.lastID?Y.findIndex(e=>Ln(e)===ge.lastID):-1,ve=n&&!pe&&ge?.scope===me&&ge.ready&&(ge.lastID===null||_e>=0);Q.useLayoutEffect(()=>{let e=Y.at(-1);he.current={scope:me,ready:n&&u.isSuccess,lastID:e?Ln(e):null}});let ye=new Date().toDateString(),xe=i(`common.date.today`),Se=Q.useMemo(()=>bt(a,xe,new Date(ye)),[a,xe,ye]),Z=sn(ce),Ce=cn(ue),we=!!(e.working||e.activeContactTurn),Te=l.data?.revision??null,Ee=ue.reduce((e,t)=>e+t.bubbles.reduce((e,t)=>e+t.text.length,0),0),De=new Map(ue.map(e=>[e.turnID,e])),Oe=Q.useRef(!1),ke=O(async(e=!1)=>{if(!(!n||Oe.current||u.isFetchingPreviousPage||u.isFillingMessageGap)&&!(e&&u.previousPageError)&&!(!u.hasPreviousPage&&!u.hasMessageGap)){Oe.current=!0,Me();try{u.hasMessageGap?await u.retryMessageGap():await u.fetchPreviousPage()}catch{}finally{Oe.current=!1}}}),{scrollRef:Ae,contentRef:je,preparePrepend:Me}=On({active:n,assistantID:e.id,contentRevision:`${Y[0]?.messageID}:${Y.length}:${Ee}:${u.isFetchingPreviousPage}:${u.hasPreviousPage}:${u.isFillingMessageGap}`,onLoadEarlier:()=>{ke(!0)}});Q.useEffect(()=>{L(null),K.current.clear(),oe.current=new Map,E(t=>Ut(t,e.id)),k(t=>Wt(t,e.id)),H({open:!1,title:``,content:``}),W(!1)},[e.id,W]),Q.useEffect(()=>{E(e=>Jt(e,q))},[q]),Q.useEffect(()=>{let t=new Set(ce.filter(e=>e.status===`sending`).map(e=>e.messageID));k(n=>Qt(n,{assistantID:e.id,activeContactTurn:e.activeContactTurn?{turnID:e.activeContactTurn.turnID,admittedAt:e.activeContactTurn.admittedAt}:null,serverWorking:we,snapshotRevision:Te,admissionRevisionByTurnID:oe.current,pendingSendTurnIDs:t,messages:q,settledTurnIDs:K.current}))},[e.activeContactTurn,e.id,q,ce,we,Te]),Q.useEffect(()=>{se(e.id,Z||Ce||we)},[e.id,Ce,Z,we,se]),Q.useEffect(()=>{let t=e.id;return()=>{se(t,!1)}},[e.id,se]);let Ne=O(t=>{if(!(!(`assistantID`in t)||t.assistantID!==e.id)){if(t.type===`contact-turn-start`){K.current.delete(t.turnID),k(e=>Xt(e,t.assistantID,t.turnID,t.occurredAt));return}if(t.type===`contact-bubble-delta`){if(K.current.has(t.turnID))return;k(e=>$t(e,t));return}t.type===`contact-turn-end`&&(K.current.add(t.turnID),k(e=>tn(en(e,t,{requireExisting:!0}),q)))}});Q.useEffect(()=>{if(n)return le(Ne)},[n,e.id]);let Pe=O(async e=>{if(Z)return;let t=C.current,n=await Mn(e);if(t.signal.aborted){n.attachments.forEach(e=>URL.revokeObjectURL(e.url));return}n.skippedTooLarge>0&&L(i(`assistants.contact.attachment.tooLarge`)),n.attachments.length!==0&&b(e=>Nn(e,n.attachments))}),Fe=O(e=>{let t=An(e.clipboardData);t.length!==0&&(e.preventDefault(),Pe(t))}),Ie=O(e=>{Array.from(e.dataTransfer?.types??[]).includes(`Files`)&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`)}),Le=O(e=>{let t=jn(e.dataTransfer);t.length!==0&&(e.preventDefault(),Pe(t))}),Re=O(async t=>{let n=C.current,r=t??g,a=v,o=e.id,s=x.current,l=s?.assistantID===o&&s.text===r&&s.attachments===a?s.messageID:null,u=on({gate:ae,sending:sn(ce),text:r,attachments:a,assistantID:o,createMessageID:()=>l||`oc_contact_${p()}`});if(!u.ok)return;se(o,!0),x.current={assistantID:o,text:r,attachments:a,messageID:u.messageID},E(e=>[...e.filter(e=>e.messageID!==u.messageID),u.turn]),L(null);let d=()=>{_(e=>e===r?``:e),b(e=>e.filter(e=>!a.includes(e))),a.forEach(e=>S.current.delete(`${o}:${e.id}`)),x.current=null};try{let t=[];for(let e of a){let r=`${o}:${e.id}`,i=S.current.get(r);if(!i){if(i=await at(o,e.file,e.id,n.signal),n.signal.aborted)return;S.current.set(r,i)}t.push(i)}if(n.signal.aborted)return;let r=[...u.parts.filter(e=>e.type===`text`),...t];E(e=>e.map(e=>e.messageID===u.messageID?{...e,parts:r}:e));let i=await te(o,u.messageID,{parts:r});if(n.signal.aborted)return;d(),typeof i.revision==`number`&&oe.current.set(u.messageID,i.revision),E(e=>Yt(e,u.messageID)),K.current.has(u.messageID)||k(e=>Xt(e,o,u.messageID)),c.data?.serverInstanceID&&P({serverInstanceID:c.data.serverInstanceID,assistantID:o,name:m,avatarSeed:e.avatarSeed??o}).catch(()=>void 0)}catch(e){if(n.signal.aborted)return;if(e instanceof R&&e.code===`admission_timeout`)try{let e=await U(o,u.messageID);if(n.signal.aborted)return;if(e){d(),typeof e.revision==`number`&&oe.current.set(u.messageID,e.revision),E(e=>Yt(e,u.messageID)),K.current.has(u.messageID)||k(e=>Xt(e,o,u.messageID));return}}catch{}let t=rn(e,{noProvider:i(`assistants.contact.noProvider`),sendFailed:i(`assistants.contact.sendFailed`),timedOut:i(`assistants.contact.timedOut`)});E(e=>nn(e,u.messageID,t)),L(t)}finally{ae.release()}}),ze=O(async()=>{if(G.current)return;G.current=!0;let t=C.current;L(null);try{await ee(e.id,e)}catch(e){t.signal.aborted||L(e instanceof Error?e.message:i(`settings.mcp.page.toast.unexpectedError`))}finally{G.current=!1}}),Ve=u.isError&&Y.length===0,He=u.isSuccess&&Y.length===0,Ue=new Map(ce.map(e=>[e.messageID,e]));return(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col bg-background`,children:[(0,$.jsxs)(`div`,{ref:Ae,className:j(`min-h-0 flex-1 overflow-x-hidden overflow-y-auto px-4 sm:px-8`,r?`pt-[calc(max(0.625rem,var(--oc-safe-area-top,0px))+var(--oc-mobile-detail-navigation-height)+1.25rem)]`:`pt-5 sm:pt-7`),style:{overflowAnchor:`none`,overscrollBehavior:`contain`,overscrollBehaviorY:`contain`},"data-assistant-contact-transcript":``,children:[t?(0,$.jsx)(`p`,{className:`mb-3 typography-micro text-[var(--status-warning)]`,children:t}):null,Ve?(0,$.jsxs)(`div`,{ref:je,className:`mx-auto flex h-full min-h-56 max-w-xs flex-col items-center justify-center pb-16 text-center`,"data-assistant-contact-error":``,children:[(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(mt,{name:e.id,avatarSeed:e.avatarSeed,size:44,label:m}),(0,$.jsx)(`span`,{"aria-hidden":!0,className:`absolute -right-1 -bottom-1 flex size-5 items-center justify-center rounded-full bg-[var(--surface-elevated)] text-[var(--status-error)] ring-2 ring-background`,children:(0,$.jsx)(X,{name:`error-warning`,className:`size-3`})})]}),(0,$.jsx)(`p`,{className:`mt-4 typography-ui-label font-medium text-foreground`,children:m}),(0,$.jsx)(`p`,{className:`mt-1.5 typography-ui leading-6 text-muted-foreground`,children:i(`assistants.contact.loadFailed`)}),(0,$.jsx)(M,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>void u.refetch(),children:i(`chat.history.retry`)})]}):He?(0,$.jsxs)(`div`,{ref:je,className:`mx-auto flex h-full min-h-56 max-w-sm flex-col items-center justify-center pb-16 text-center`,"data-assistant-contact-empty":``,children:[(0,$.jsx)(mt,{name:e.id,avatarSeed:e.avatarSeed,size:48,label:m,className:`opacity-90`}),(0,$.jsx)(`p`,{className:`mt-5 typography-ui-header font-medium tracking-[-0.01em] text-foreground`,children:i(`assistants.conversation.emptyTitle`,{name:m})}),(0,$.jsx)(`p`,{className:`mt-2 max-w-xs typography-ui leading-6 text-muted-foreground/80`,children:i(`assistants.contact.empty`)})]}):(0,$.jsxs)(`div`,{ref:je,className:`relative mx-auto flex w-full max-w-[42rem] flex-col pb-12`,"data-assistant-contact-content":``,children:[u.isPending?(0,$.jsx)(`p`,{role:`status`,className:`py-3 text-center typography-micro text-muted-foreground`,children:i(`common.loading`)}):null,u.hasPreviousPage||u.hasMessageGap?(0,$.jsxs)(`div`,{className:`mb-3 flex flex-col items-center gap-1`,"data-assistant-contact-pagination":``,"aria-busy":u.isFetchingPreviousPage||u.isFillingMessageGap,children:[u.previousPageError?(0,$.jsx)(`p`,{role:`alert`,className:`typography-micro text-[var(--status-error)]`,children:i(`chat.history.loadOlderFailed`)}):null,u.hasMessageGap?(0,$.jsx)(`p`,{role:`status`,className:`typography-micro text-muted-foreground`,children:i(`assistants.contact.history.gap`)}):null,(0,$.jsx)(M,{type:`button`,size:`sm`,variant:`ghost`,disabled:u.isFetchingPreviousPage||u.isFillingMessageGap,onClick:()=>void ke(),children:i(u.isFetchingPreviousPage||u.isFillingMessageGap?`chat.history.loadingMore`:u.previousPageError||u.hasMessageGap?`chat.history.retry`:`chat.history.loadOlder`)})]}):null,Y.map((t,n)=>{let r=`${me}:${Ln(t)}`,a=n>0?Y[n-1]:null,s=fe.get(t.messageID),c=s!==void 0,u=c?(0,$.jsx)(`div`,{className:`flex w-full justify-center px-4 pt-7 pb-4 first:pt-1`,"data-assistant-contact-time":``,children:(0,$.jsx)(`time`,{dateTime:new Date(s).toISOString(),className:`text-[11px] font-normal leading-4 tabular-nums text-muted-foreground/70`,children:Se(s)})}):null,d=t.role===`user`,p=t.role===`peer`,g=t.role===`assistant`&&!c&&a?.role===`assistant`&&a.turnID===t.turnID,_=a?.turnID!==t.turnID,v=!d&&(p||!g),y=p?h(t.fromAssistantID,t.fromAssistantName):m,b=p&&t.fromAssistantID?l.data?.assistants.find(e=>e.id===t.fromAssistantID):e,x=Ue.get(t.messageID),S=De.get(t.turnID),C=t.status===`failed`&&t.messageID.endsWith(`:preview:failed`);return t.status===`error`||C?(0,$.jsxs)(Q.Fragment,{children:[u,(0,$.jsxs)(`div`,{"data-message-id":t.messageID,"data-assistant-contact-error":``,className:j(`relative px-1`,!c&&`mt-3`),children:[(0,$.jsx)(`p`,{role:`alert`,className:`whitespace-pre-wrap text-center text-[11px] font-normal leading-4 text-muted-foreground [overflow-wrap:anywhere]`,children:t.text||S?.error||i(`assistants.contact.sendFailed`)}),f?.messageID===t.messageID?(0,$.jsx)(St,{assistantID:e.id,position:f},`${o}:${e.id}:${f.generation}:${f.ordinal}`):null]})]},r):(0,$.jsxs)(Q.Fragment,{children:[u,(0,$.jsxs)(Xe.div,{"data-message-id":t.messageID,initial:ve&&n>_e?{opacity:0,y:4}:!1,animate:{opacity:1,y:0},transition:{duration:pe?0:.18,ease:`easeOut`},className:j(`flex w-full`,d?`justify-end`:`justify-start`,c?`mt-0`:_?`mt-6 first:mt-0`:g?`mt-1.5`:`mt-3`),"data-assistant-contact-role":t.role,"data-assistant-contact-turn-status":x?.status??t.status,"data-assistant-contact-run-start":t.role===`assistant`&&!g?``:void 0,children:[d?null:(0,$.jsx)(`div`,{className:`mr-2.5 flex w-8 shrink-0 justify-center pt-0.5`,children:v?(0,$.jsx)(mt,{name:b?.id||t.fromAssistantID||e.id,avatarSeed:b?.avatarSeed??(t.fromAssistantID?void 0:e.avatarSeed),size:28,label:y,working:t.status===`streaming`||void 0,showWorkingDot:!1}):(0,$.jsx)(`span`,{className:`size-7`,"aria-hidden":!0})}),(0,$.jsxs)(`div`,{className:j(`relative flex min-w-0 flex-col gap-1.5`,d?`max-w-[min(82%,30rem)] items-end`:`max-w-[min(84%,34rem)] items-start`),children:[p?(0,$.jsx)(`span`,{className:`mb-0.5 px-1 typography-micro text-muted-foreground/75`,children:i(`assistants.contact.peer.from`,{name:y})}):null,t.parts.map((n,a)=>{if(n.type===`card`&&n.cardType===`session`)return(0,$.jsx)(yn,{card:n},`${r}:card:${a}`);if(n.type===`card`&&n.cardType===`assistant`)return(0,$.jsx)(pn,{card:n},`${r}:card:${a}`);if(n.type===`card`&&n.cardType===`schedule`)return(0,$.jsx)(mn,{card:n},`${r}:card:${a}`);if(n.type===`file`)return(0,$.jsx)(zt,{assistantID:e.id,part:n,onShowPopup:ne},`${r}:file:${a}`);if(n.type===`text`&&Fn(n.text))return null;if(n.type===`text`&&(n.text.trim()||t.status===`streaming`)){let e=!d,o=e&&/^!\[(?:\\.|[^\]\\\n])*\]\(\s*(?:<[^>\n]+>|[^\s()]+)(?:\s+"[^"\n]*")?\s*\)$/.test(n.text.trim());return(0,$.jsx)(`div`,{"aria-label":p?i(`assistants.contact.peer.aria`,{name:y}):void 0,"data-assistant-contact-text":``,"data-assistant-contact-media":o||void 0,className:j(`min-w-0 max-w-full [overflow-wrap:anywhere] rounded-[1.35rem] typography-markdown leading-6`,o?`p-0`:`px-4 py-2.5`,e?null:`whitespace-pre-wrap`,o?`text-foreground`:d?`rounded-[1.15rem] rounded-br-lg bg-[var(--primary-base)]/90 text-[var(--primary-foreground)]`:p?`rounded-[1.25rem] border border-dashed border-border/50 bg-[var(--surface-muted)]/70 text-foreground`:`bg-[var(--surface-muted)] text-foreground`),children:e?(0,$.jsx)(qe,{content:n.text,messageId:r,isAnimated:!1,isStreaming:t.status===`streaming`,variant:`assistant`,enableFileReferences:!1,onShowPopup:ne,className:`w-full min-w-0 [overflow-wrap:anywhere]`}):n.text},`${r}:text:${a}`)}return null}),x?.status===`sending`?(0,$.jsx)(`p`,{className:`absolute right-1 top-full mt-1 typography-micro text-muted-foreground/75`,children:i(`assistants.contact.sending`)}):null,x?.status===`failed`?(0,$.jsx)(`p`,{className:`px-1 typography-micro text-[var(--status-error)]`,children:x.error||i(`assistants.contact.sendFailed`)}):null,f?.messageID===t.messageID?(0,$.jsx)(St,{assistantID:e.id,position:f},`${o}:${e.id}:${f.generation}:${f.ordinal}`):null]})]})]},r)}),(0,$.jsx)(`div`,{className:`pointer-events-none absolute bottom-2 left-[2.625rem] flex h-8 items-center`,"data-assistant-contact-status-slot":``,children:Z||Ce||we?(0,$.jsxs)(`div`,{role:`status`,"aria-label":i(`assistants.contact.processing`),className:`inline-flex items-center gap-1 px-4 text-muted-foreground/70`,"data-assistant-contact-processing":``,children:[(0,$.jsx)(`span`,{"aria-hidden":!0,className:`size-1.5 animate-pulse rounded-full bg-current [animation-delay:-0.45s] [animation-duration:1.4s] motion-reduce:animate-none`}),(0,$.jsx)(`span`,{"aria-hidden":!0,className:`size-1.5 animate-pulse rounded-full bg-current [animation-delay:-0.22s] [animation-duration:1.4s] motion-reduce:animate-none`}),(0,$.jsx)(`span`,{"aria-hidden":!0,className:`size-1.5 animate-pulse rounded-full bg-current [animation-duration:1.4s] motion-reduce:animate-none`})]}):null})]})]}),(0,$.jsxs)(`footer`,{className:`relative z-10 shrink-0 bg-background pt-1`,"data-assistant-contact-composer":``,children:[F?(0,$.jsxs)(`div`,{className:`chat-input-column mb-2 flex items-center gap-2`,children:[(0,$.jsx)(`p`,{role:`alert`,className:`typography-micro text-[var(--status-error)]`,children:F}),x.current?(0,$.jsx)(M,{type:`button`,size:`sm`,variant:`ghost`,disabled:Z,onClick:()=>void Re(),children:i(`chat.history.retry`)}):null]}):null,(0,$.jsx)(`form`,{className:j(`relative w-full pt-1.5 pb-4`,s&&`bottom-safe-area oc-mobile-composer`),onSubmit:e=>{e.preventDefault(),Re()},onDragOver:Ie,onDrop:Le,children:(0,$.jsx)(`div`,{className:`chat-input-column relative overflow-visible`,children:(0,$.jsx)(Nt,{active:n,layout:`inline`,value:g,attachments:v,pending:Z,working:Ce||we,onStop:Ce||we?()=>{ze()}:void 0,stopLabel:i(`chat.chatInput.actions.stopGeneratingAria`),isMobile:s,placeholder:i(`assistants.contact.placeholder`,{name:m}),sendLabel:i(`assistants.contact.send`),addFilesLabel:i(`assistants.contact.addFiles`),removeAttachmentLabel:i(`assistants.contact.removeAttachment`),fileAccept:`*/*`,onChange:e=>_(e),onVoiceSend:e=>{Re(e)},onSubmit:()=>{Re()},onAddFiles:e=>{Pe(e)},onRemoveAttachment:t=>{Z||(S.current.delete(`${e.id}:${t}`),x.current=null,b(e=>e.filter(e=>e.id!==t)))},onPaste:Fe,onDragOver:Ie,onDrop:Le,className:j(`relative z-10`,s&&`oc-mobile-composer-surface`),style:{borderRadius:`1.5rem`},"data-assistant-contact-composer-surface":``,textareaProps:{"aria-label":i(`assistants.contact.placeholder`,{name:m})}},`${o}:${e.id}`)})})]}),V.open?(0,$.jsx)(Q.Suspense,{fallback:null,children:(0,$.jsx)(Pn,{popup:V,onOpenChange:re,isMobile:s})}):null]})};async function zn(e){await W(e);let t=ue.getState().defaultShareAssistant;if(t?.assistantID!==e.id)return;let n=await V();n.serverInstanceID&&t.serverInstanceID===n.serverInstanceID&&ue.getState().setDefaultShareAssistant(null)}function Bn({assistant:e,open:t,onOpenChange:n,onDeleted:r}){let{t:i}=A(),[a,o]=Q.useState(!1),s=e?N(e.name).displayName||e.name:``,c=O(e=>{a&&!e||n(e)}),l=O(()=>{a||n(!1)}),u=O(async()=>{if(!(!e||a)){o(!0);try{await zn(e),r?.(e.id),n(!1),C.success(i(`assistants.settings.toast.deleted`))}catch{C.error(i(`assistants.settings.toast.deleteFailed`))}finally{o(!1)}}});return(0,$.jsx)(_e,{open:t&&e!==null,onOpenChange:c,children:(0,$.jsxs)(me,{className:`max-w-md`,children:[(0,$.jsxs)(fe,{children:[(0,$.jsx)(he,{children:i(`assistants.settings.delete`)}),(0,$.jsx)(ge,{children:i(`assistants.settings.deleteConfirm`,{name:s})})]}),(0,$.jsxs)(pe,{children:[(0,$.jsx)(M,{size:`sm`,variant:`ghost`,onClick:l,disabled:a,children:i(`settings.common.actions.cancel`)}),(0,$.jsx)(M,{size:`sm`,variant:`destructive`,onClick:u,disabled:a,children:i(`settings.common.actions.delete`)})]})]})})}var Vn=`block min-w-0 max-w-full truncate typography-micro text-muted-foreground`,Hn={image:`assistants.contact.attachment.image`,file:`assistants.contact.attachment.file`,session:`assistants.contact.card.session.untitled`,assistant:`assistants.title`,schedule:`assistants.settings.scheduledTasks.title`};function Un(e,t){return e?.text.replace(/\s+/gu,` `).trim()||t(e?.fallbackKind?Hn[e.fallbackKind]:`assistants.contact.empty`)}var Wn=e=>e.capabilityPending?`loading`:e.capabilityError||e.supported!==!0||e.capabilityEnabled!==!0?`unavailable`:e.snapshotPending?`loading`:e.snapshotEnabled===!0?e.assistantCount===0?`onboarding`:e.hasAssistant?`ready`:e.snapshotSettled?`unavailable`:`loading`:`unavailable`,Gn=e({AssistantView:()=>Jn}),Kn=e=>{let t=(0,ct.c)(21),{assistant:n,onBack:r,onOpenSettings:i}=e,{t:a}=A(),o=we(),s;t[0]===n?s=t[1]:(s=n?N(n.name):null,t[0]=n,t[1]=s);let c=s,l=n&&c?c.displayName||n.name:``,u;t[2]!==n||t[3]!==o||t[4]!==i?(u=()=>{if(n){if(i){i(n.id);return}de(n.id,o?{openMobileSettings:o.openSettings}:void 0)}},t[2]=n,t[3]=o,t[4]=i,t[5]=u):u=t[5];let d=O(u),f;t[6]!==n||t[7]!==l||t[8]!==a?(f=n?(0,$.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-2.5`,children:[(0,$.jsx)(mt,{name:n.id,avatarSeed:n.avatarSeed,size:40,label:l,working:!!(n.working||n.activeContactTurn),showWorkingDot:!1}),(0,$.jsxs)(`span`,{className:`min-w-0`,children:[(0,$.jsx)(`span`,{className:`block truncate font-medium leading-5 tracking-[-0.01em]`,children:l||a(`assistants.title`)}),(0,$.jsx)(xt,{assistantID:n.id,serverWorking:!!(n.working||n.activeContactTurn),lastContactAt:n.latestMessagePreview?.createdAt})]})]}):l||a(`assistants.title`),t[6]=n,t[7]=l,t[8]=a,t[9]=f):f=t[9];let p;t[10]===a?p=t[11]:(p=a(`assistants.actions.backToChat`),t[10]=a,t[11]=p);let m;t[12]!==n||t[13]!==d||t[14]!==a?(m=n?[{icon:`settings-3`,ariaLabel:a(`assistants.conversation.openSettings`),onClick:d}]:[],t[12]=n,t[13]=d,t[14]=a,t[15]=m):m=t[15];let h;return t[16]!==r||t[17]!==f||t[18]!==p||t[19]!==m?(h=(0,$.jsx)(re,{title:f,backAriaLabel:p,onBack:r,actions:m,overlay:!0}),t[16]=r,t[17]=f,t[18]=p,t[19]=m,t[20]=h):h=t[20],h},qn=e=>{let t=(0,ct.c)(53),{avatarSeed:n,unreadCount:r,summary:i,assistantID:a,displayName:o,selected:s,enabled:c,editLabel:l,deleteLabel:u,onSelect:d,onEdit:f,onDelete:p,serverWorking:m}=e,h=pt(a,m!==void 0&&m),[g,_]=Q.useState(!1),v;t[0]===d?v=t[1]:(v=()=>d(),t[0]=d,t[1]=v);let y=O(v),b;t[2]===f?b=t[3]:(b=()=>{_(!1),f()},t[2]=f,t[3]=b);let x=O(b),S;t[4]===p?S=t[5]:(S=()=>{_(!1),p()},t[4]=p,t[5]=S);let C=O(S),w;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(w=e=>{e.preventDefault(),_(!0)},t[6]=w):w=t[6];let T=s?`border-border/50 bg-[var(--surface-elevated)]`:`border-transparent hover:bg-interactive-hover`,E=!c&&`opacity-65`,D;t[7]!==T||t[8]!==E?(D=j(`flex w-full min-h-11 items-center gap-3 rounded-xl border px-3 py-3 text-left outline-none transition-[background-color,border-color,opacity] duration-150 ease-out active:bg-interactive-active focus-visible:ring-2 focus-visible:ring-[var(--interactive-focus-ring)] motion-reduce:transition-none`,T,E),t[7]=T,t[8]=E,t[9]=D):D=t[9];let k;t[10]!==y||t[11]!==s||t[12]!==D?(k=(0,$.jsx)(`button`,{type:`button`,role:`option`,"aria-selected":s,onClick:y,onContextMenu:w,className:D}),t[10]=y,t[11]=s,t[12]=D,t[13]=k):k=t[13];let A;t[14]!==a||t[15]!==n||t[16]!==o||t[17]!==h?(A=(0,$.jsx)(mt,{name:a,avatarSeed:n,size:44,label:o,working:h}),t[14]=a,t[15]=n,t[16]=o,t[17]=h,t[18]=A):A=t[18];let M=s?`font-semibold`:`font-medium`,N;t[19]===M?N=t[20]:(N=j(`block truncate typography-ui-label leading-5`,M),t[19]=M,t[20]=N);let P;t[21]!==o||t[22]!==N?(P=(0,$.jsx)(`span`,{className:N,children:o}),t[21]=o,t[22]=N,t[23]=P):P=t[23];let F;t[24]===Symbol.for(`react.memo_cache_sentinel`)?(F=j(Vn,`mt-1 leading-5`),t[24]=F):F=t[24];let I;t[25]===i?I=t[26]:(I=(0,$.jsx)(`span`,{className:F,children:i}),t[25]=i,t[26]=I);let L;t[27]!==P||t[28]!==I?(L=(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[P,I]}),t[27]=P,t[28]=I,t[29]=L):L=t[29];let R;t[30]===r?R=t[31]:(R=(0,$.jsx)(rt,{count:r}),t[30]=r,t[31]=R);let z;t[32]!==A||t[33]!==L||t[34]!==R||t[35]!==k?(z=(0,$.jsxs)($e,{render:k,children:[A,L,R]}),t[32]=A,t[33]=L,t[34]=R,t[35]=k,t[36]=z):z=t[36];let B;t[37]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,$.jsx)(X,{name:`edit`,className:`size-4`}),t[37]=B):B=t[37];let V;t[38]!==l||t[39]!==x?(V=(0,$.jsxs)(tt,{onClick:x,children:[B,l]}),t[38]=l,t[39]=x,t[40]=V):V=t[40];let H;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,$.jsx)(Qe,{}),t[41]=H):H=t[41];let U;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,$.jsx)(X,{name:`delete-bin`,className:`size-4`}),t[42]=U):U=t[42];let ee;t[43]!==u||t[44]!==C?(ee=(0,$.jsxs)(tt,{onClick:C,className:`text-[var(--status-error)] focus:text-[var(--status-error)] data-[highlighted]:text-[var(--status-error)] [&_svg]:text-[var(--status-error)]`,children:[U,u]}),t[43]=u,t[44]=C,t[45]=ee):ee=t[45];let W;t[46]!==V||t[47]!==ee?(W=(0,$.jsxs)(et,{className:`min-w-[10rem]`,children:[V,H,ee]}),t[46]=V,t[47]=ee,t[48]=W):W=t[48];let te;return t[49]!==g||t[50]!==z||t[51]!==W?(te=(0,$.jsxs)(Ze,{open:g,onOpenChange:_,children:[z,W]}),t[49]=g,t[50]=z,t[51]=W,t[52]=te):te=t[52],te},Jn=e=>{let t=(0,ct.c)(118),{activeOverride:i,onMobileBack:a,onMobileOpenSettings:o}=e,{t:s}=A(),{isMobile:c}=ve(),l=we(),u=Q.useSyncExternalStore(n,r,r),d=y(Yn),f=i??d,p=y(Xn),m=c||p,h=z(),g=B(),_=g.data;_?.assistants;let v;t[0]===_?.assistants?v=t[1]:(v=_?.assistants??[],t[0]=_?.assistants,t[1]=v);let b;t[2]===v?b=t[3]:(b=lt(v),t[2]=v,t[3]=b);let x=b,S;t[4]===u?S=t[5]:(S=e=>e.assistantByTransport[u]??null,t[4]=u,t[5]=S);let C=ue(S),w=ue(Zn),T=ue(Qn),E;t[6]!==C||t[7]!==_?.assistants?(E=_?.assistants.find(e=>e.id===C)??null,t[6]=C,t[7]=_?.assistants,t[8]=E):E=t[8];let D=E,k;t[9]!==w||t[10]!==C||t[11]!==_?(k=()=>{!C&&_?.assistants[0]&&w(_.assistants[0].id)},t[9]=w,t[10]=C,t[11]=_,t[12]=k):k=t[12];let P=_?.assistants,F;t[13]!==w||t[14]!==C||t[15]!==P?(F=[w,C,P],t[13]=w,t[14]=C,t[15]=P,t[16]=F):F=t[16],Q.useEffect(k,F);let I;t[17]!==D||t[18]!==w||t[19]!==C||t[20]!==_?.assistants||t[21]!==g.isSuccess?(I=()=>{g.isSuccess&&C&&!D&&w(_?.assistants[0]?.id??null)},t[17]=D,t[18]=w,t[19]=C,t[20]=_?.assistants,t[21]=g.isSuccess,t[22]=I):I=t[22];let L=_?.assistants,R;t[23]!==D||t[24]!==w||t[25]!==C||t[26]!==g.isSuccess||t[27]!==L?(R=[D,w,C,L,g.isSuccess],t[23]=D,t[24]=w,t[25]=C,t[26]=g.isSuccess,t[27]=L,t[28]=R):R=t[28],Q.useEffect(I,R);let V;t[29]!==l||t[30]!==T?(V=()=>{if(T(),l){l.openSettings();return}let e=y.getState();e.setSettingsPage(`assistants`),e.setSettingsDialogOpen(!0)},t[29]=l,t[30]=T,t[31]=V):V=t[31];let H=O(V),U;t[32]===l?U=t[33]:(U=e=>{de(e,l?{openMobileSettings:l.openSettings}:void 0)},t[32]=l,t[33]=U);let ee=O(U),W;t[34]!==D||t[35]!==l?(W=()=>{D&&de(D.id,l?{openMobileSettings:l.openSettings}:void 0)},t[34]=D,t[35]=l,t[36]=W):W=t[36];let te=O(W),[ne,re]=Q.useState(null),G;t[37]===Symbol.for(`react.memo_cache_sentinel`)?(G=e=>{re(e)},t[37]=G):G=t[37];let ie=O(G),ae;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(ae=e=>{e||re(null)},t[38]=ae):ae=t[38];let K=O(ae),oe=O($n),se;t[39]!==a||t[40]!==oe?(se=()=>{if(a){a();return}oe()},t[39]=a,t[40]=oe,t[41]=se):se=t[41];let q=O(se),ce=Wn({capabilityPending:h.isPending,snapshotPending:g.isPending,capabilityError:h.isError,supported:h.data?.supported,capabilityEnabled:h.data?.enabled,snapshotEnabled:_?.enabled,snapshotSettled:g.isSuccess,assistantCount:_?.assistants.length??0,hasAssistant:!!D}),le;t[42]!==D||t[43]!==q||t[44]!==m||t[45]!==o?(le=(e,t,n,r)=>(0,$.jsxs)(`div`,{className:`relative flex h-full min-h-0 flex-col`,children:[m?(0,$.jsx)(Kn,{assistant:D,onBack:q,onOpenSettings:o}):null,(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col items-center justify-center px-6 pt-[calc(max(0.25rem,var(--oc-safe-area-top,0px))+var(--oc-mobile-detail-navigation-height,3.5rem))] text-center`,children:[(0,$.jsx)(X,{name:e,className:`size-6 text-muted-foreground`}),(0,$.jsx)(`h1`,{className:`mt-4 typography-ui-header font-semibold`,children:t}),n?(0,$.jsx)(`p`,{className:`mt-2 max-w-md typography-ui text-muted-foreground`,children:n}):null,r?(0,$.jsx)(`div`,{className:`mt-5`,children:r}):null]})]}),t[42]=D,t[43]=q,t[44]=m,t[45]=o,t[46]=le):le=t[46];let J=le;if(ce===`loading`){let e;t[47]!==D||t[48]!==q||t[49]!==m||t[50]!==o?(e=m?(0,$.jsx)(Kn,{assistant:D,onBack:q,onOpenSettings:o}):null,t[47]=D,t[48]=q,t[49]=m,t[50]=o,t[51]=e):e=t[51];let n;t[52]===s?n=t[53]:(n=s(`common.loading`),t[52]=s,t[53]=n);let r;t[54]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsx)(X,{name:`loader-4`,className:`size-6 animate-spin text-muted-foreground`}),t[54]=r):r=t[54];let i;t[55]===n?i=t[56]:(i=(0,$.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col items-center justify-center px-6 pt-[calc(max(0.25rem,var(--oc-safe-area-top,0px))+var(--oc-mobile-detail-navigation-height,3.5rem))] text-center`,"aria-busy":`true`,"aria-label":n,"data-assistant-workspace-loading":``,children:r}),t[55]=n,t[56]=i);let a;return t[57]!==e||t[58]!==i?(a=(0,$.jsxs)(`div`,{className:`relative flex h-full min-h-0 flex-col`,children:[e,i]}),t[57]=e,t[58]=i,t[59]=a):a=t[59],a}if(ce===`unavailable`){let e;return t[60]!==J||t[61]!==s?(e=J(`cloud-off`,s(`assistants.state.unavailable`)),t[60]=J,t[61]=s,t[62]=e):e=t[62],e}if(ce===`onboarding`){let e;if(t[63]!==H||t[64]!==J||t[65]!==s){let n=s(`assistants.onboarding.title`),r=s(`assistants.onboarding.description`),i;t[67]===s?i=t[68]:(i=s(`assistants.onboarding.action`),t[67]=s,t[68]=i);let a;t[69]!==H||t[70]!==i?(a=(0,$.jsx)(M,{onClick:H,children:i}),t[69]=H,t[70]=i,t[71]=a):a=t[71],e=J(`ai-agent`,n,r,a),t[63]=H,t[64]=J,t[65]=s,t[66]=e}else e=t[66];return e}if(!_||!D){let e;return t[72]!==J||t[73]!==s?(e=J(`cloud-off`,s(`assistants.state.unavailable`)),t[72]=J,t[73]=s,t[74]=e):e=t[74],e}let Y;t[75]===D.name?Y=t[76]:(Y=N(D.name),t[75]=D.name,t[76]=Y);let fe=Y,pe;t[77]!==D.enabled||t[78]!==g.isError||t[79]!==s?(pe=D.enabled?g.isError?s(`assistants.state.staleSnapshot`):null:s(`assistants.state.assistantDisabled`),t[77]=D.enabled,t[78]=g.isError,t[79]=s,t[80]=pe):pe=t[80];let me=pe,he;t[81]!==x||t[82]!==m||t[83]!==H||t[84]!==ee||t[85]!==ie||t[86]!==w||t[87]!==C||t[88]!==_||t[89]!==s?(he=m?null:(0,$.jsxs)(`section`,{className:`flex h-full min-h-0 w-[clamp(16rem,22vw,20rem)] shrink-0 flex-col overflow-hidden`,children:[(0,$.jsxs)(`header`,{className:`flex shrink-0 items-center gap-3 px-4 pb-3 pt-4 sm:px-5`,children:[(0,$.jsx)(`h1`,{className:`min-w-0 flex-1 truncate typography-ui-label font-semibold text-foreground`,children:s(`assistants.title`)}),(0,$.jsx)(M,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":s(`assistants.settings.create`),onClick:H,children:(0,$.jsx)(X,{name:`add`,className:`size-4`})})]}),(0,$.jsx)(ut,{snapshot:_,rowClassName:`flex justify-end px-4 pb-2 sm:px-5`}),(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-3 pb-4 sm:px-4`,role:`listbox`,"aria-label":s(`assistants.listAria`),children:(0,$.jsx)(`div`,{className:`flex flex-col gap-1 border-t border-border/40 pt-3`,children:x.map(e=>{let t=e.id===C,n=N(e.name);return(0,$.jsx)(qn,{assistantID:e.id,avatarSeed:e.avatarSeed,unreadCount:e.unreadCount??0,summary:Un(e.latestMessagePreview,s),displayName:n.displayName,selected:t,enabled:e.enabled,editLabel:s(`assistants.menu.edit`),deleteLabel:s(`assistants.settings.delete`),assignedSessionIDs:e.assignedSessionIDs,serverWorking:e.working,onSelect:()=>w(e.id),onEdit:()=>ee(e.id),onDelete:()=>ie(e)},e.id)})})})]}),t[81]=x,t[82]=m,t[83]=H,t[84]=ee,t[85]=ie,t[86]=w,t[87]=C,t[88]=_,t[89]=s,t[90]=he):he=t[90];let ge=ne!==null,_e;t[91]!==ne||t[92]!==K||t[93]!==ge?(_e=(0,$.jsx)(Bn,{assistant:ne,open:ge,onOpenChange:K}),t[91]=ne,t[92]=K,t[93]=ge,t[94]=_e):_e=t[94];let ye=!m&&`border-l border-[var(--surface-subtle)]`,be;t[95]===ye?be=t[96]:(be=j(`relative flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden bg-background`,ye),t[95]=ye,t[96]=be);let xe;t[97]!==D||t[98]!==q||t[99]!==m||t[100]!==o||t[101]!==te||t[102]!==fe||t[103]!==s?(xe=m?(0,$.jsx)(Kn,{assistant:D,onBack:q,onOpenSettings:o}):(0,$.jsxs)(`header`,{className:`flex h-16 shrink-0 items-center gap-3.5 border-b border-[var(--surface-subtle)]/70 px-5 sm:px-7`,children:[(0,$.jsx)(mt,{name:D.id,avatarSeed:D.avatarSeed,size:40,label:fe.displayName||D.name,working:!!(D.working||D.activeContactTurn),showWorkingDot:!1}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`div`,{className:`truncate typography-ui-label font-semibold leading-5 tracking-[-0.01em] text-foreground`,children:fe.displayName}),(0,$.jsx)(xt,{assistantID:D.id,serverWorking:!!(D.working||D.activeContactTurn),lastContactAt:D.latestMessagePreview?.createdAt})]}),(0,$.jsx)(M,{type:`button`,variant:`ghost`,size:`icon`,className:`size-8 shrink-0 rounded-full text-muted-foreground/65 transition-colors hover:text-foreground`,onClick:te,"aria-label":s(`assistants.conversation.openSettings`),children:(0,$.jsx)(X,{name:`settings-3`,className:`size-4`})})]}),t[97]=D,t[98]=q,t[99]=m,t[100]=o,t[101]=te,t[102]=fe,t[103]=s,t[104]=xe):xe=t[104];let Se;t[105]!==f||t[106]!==D||t[107]!==m||t[108]!==me?(Se=(0,$.jsx)(Rn,{assistant:D,warning:me,active:f,overlayHeader:m}),t[105]=f,t[106]=D,t[107]=m,t[108]=me,t[109]=Se):Se=t[109];let Z;t[110]!==be||t[111]!==xe||t[112]!==Se?(Z=(0,$.jsxs)(`div`,{className:be,children:[xe,Se]}),t[110]=be,t[111]=xe,t[112]=Se,t[113]=Z):Z=t[113];let Ce;return t[114]!==he||t[115]!==_e||t[116]!==Z?(Ce=(0,$.jsxs)(`div`,{className:`relative flex h-full min-h-0 overflow-hidden bg-background`,"data-presentation":`workspace`,children:[he,_e,Z]}),t[114]=he,t[115]=_e,t[116]=Z,t[117]=Ce):Ce=t[117],Ce};function Yn(e){return e.activeMainTab===`assistant`}function Xn(e){return e.isMobile}function Zn(e){return e.selectAssistant}function Qn(e){return e.requestCreate}function $n(){y.getState().setActiveMainTab(`chat`)}export{Bn as a,ut as c,Un as i,lt as l,Gn as n,mt as o,Vn as r,pt as s,Jn as t};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MarkstreamRendererImpl-BeCY-mui.js","assets/rolldown-runtime-hePW80VL.js","assets/vendor-base-ui-CdzJ6My_.js","assets/useUIStore-CEqU9Ujv.js","assets/runtime-switch-CMiMO5Yj.js","assets/runtime-auth-BpCQ-dPr.js","assets/vendor-zustand-o69pgTEK.js","assets/vendor-react-BP2cRVqX.js","assets/vendor-markstream-react-Bm0cO70Z.js","assets/vendor-aparajita-capacitor-secure-storage-xol_6BsB.js","assets/vendor-markstream-core-Cm34iPLL.js","assets/vendor-floating-ui-dom-BHhLtF5l.js","assets/vendor-floating-ui-core-Co1I1lFV.js","assets/vendor-reactuses-core-BpfIZ1tg.js","assets/vendor-lodash-es-DfLbG5Af.js","assets/vendor-js-cookie-hSOiFTtX.js","assets/button-Ca8Z9cOP.js","assets/persistence-BKszKaoQ.js","assets/runtime-fetch-WgH0pROs.js","assets/vendor-pathe-vBmvQE8f.js","assets/vendor-tanstack-query-core-BWz0ose6.js","assets/store-D79UkOhB.js","assets/vendor-class-variance-authority-BLUaYARZ.js","assets/vendor-tailwind-merge-BicNWLTg.js","assets/useMobileNavigationStore-BvJJ9SP1.js","assets/platform-QykS5eAQ.js","assets/vendor-opencode-client-MF2GBrFx.js","assets/vendor-tanstack-react-query-CdqCAt40.js","assets/vendor-sonner-ZS8XIOVl.js","assets/useAssistantUIStore-OyPm_4M_.js","assets/vendor-zod-Dzk5kdUU.js","assets/vendor-fuse.js-DB5wDJbI.js","assets/useThemeSystem-8jhE4Zyk.js","assets/tooltip-B7cKvIho.js","assets/image-loading-DImQz00b.js","assets/fileQueries-DVpZC5ha.js","assets/useRuntimeAPIs-Cx8S1HLz.js","assets/relay-image-stream-CqgxIcA5.js","assets/image-loading-j2FgxzZQ.css","assets/url-nBOUbtV_.js","assets/useEffectiveDirectory-DXbRKe4_.js","assets/LoadingImage-DO_V7mRh.js","assets/ImageLoadingPlaceholder-Da1xKjxc.js","assets/markdownHeightCache-CYwP7eeh.js","assets/dualLimitLru-D8Sphgua.js","assets/MarkdownRendererImpl-BwBPrsxq.js","assets/vendor-katex-DNVSTX6g.js","assets/markdown-worker-DFNZ3KJ_.js","assets/FadeInOnReveal-BKvNCFE0.js","assets/markdownTheme-BUfvCGAn.js","assets/vendor-pierre-diffs-DPBtNDJ5.js","assets/vendor-hast-util-to-html-Bw_SgZ1t.js","assets/vendor-character-entities-legacy-Wut6vMuj.js","assets/vendor-character-entities-html4-DlN_yAFd.js","assets/vendor-ccount-CyGsA0u7.js","assets/vendor-comma-separated-tokens-B9ouxNNS.js","assets/vendor-oniguruma-to-es-CrHzjjSU.js","assets/vendor-oniguruma-parser-D2DIvhSP.js","assets/vendor-diff-Dq7CZNim.js","assets/vendor-lru_map-BMOrLc9L.js","assets/vendor-morphdom-BbKiNDAu.js","assets/vendor-dompurify-CeJNOzik.js","assets/vendor-pele-C1WTNWUm.js","assets/vendor-marked-WVekxjAN.js","assets/vendor-remend-C3cXc-tf.js","assets/MarkstreamRendererImpl-DKhVy3nF.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{a as t}from"./vendor-zustand-o69pgTEK.js";import{it as n,rt as r}from"./vendor-base-ui-CdzJ6My_.js";import{n as i}from"./vendor-react-BP2cRVqX.js";import{o as a}from"./vendor-aparajita-capacitor-secure-storage-xol_6BsB.js";import{r as o}from"./button-Ca8Z9cOP.js";import{i as s,n as c,t as l}from"./markdownHeightCache-CYwP7eeh.js";var u=i(),d=e(n(),1),f=`openchamber:chunk-import-reload`,p=250,m=3e4,h=[/Importing a module script failed/i,/Failed to fetch dynamically imported module/i,/error loading dynamically imported module/i,/Loading chunk \S+ failed/i,/ChunkLoadError/i];function g(e){if(e instanceof Error)return`${e.name}\n${e.message}\n${e.stack??``}`;if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return String(e)}}function _(e){let t=g(e);return h.some(e=>e.test(t))}function v(e){return`2.1.10-beta.10:${g(e).slice(0,500)}`}function y(e){if(typeof window>`u`)return;let t=Date.now(),n=v(e),r=null;try{let e=window.sessionStorage.getItem(f);if(e)try{r=JSON.parse(e)}catch{r=null}}catch{return}let i=typeof r?.timestamp==`number`?r.timestamp:0;if(!(r?.signature===n&&t-i<m)){try{window.sessionStorage.setItem(f,JSON.stringify({signature:n,timestamp:t}))}catch{return}console.error(`[refresh-debug] chunk-import-reload`,{error:g(e).slice(0,1e3)}),window.setTimeout(()=>{window.location.reload()},0)}}async function b(e,t={}){let n=t.retries??1,r;for(let t=0;t<=n;t+=1)try{return await e()}catch(e){if(r=e,!_(e)||t>=n)break;await new Promise(e=>setTimeout(e,p*(t+1)))}throw _(r)&&y(r),r}var x=e=>(0,d.lazy)(()=>b(e)),S=(e,t)=>!!t?.toLowerCase().startsWith(`video/`)||/^data:video\//i.test(e)||/\.(?:mp4|m4v|webm|mov|ogv|ogg)(?:[?#]|$)/i.test(e),C=(e,t)=>{try{let n=t??(typeof localStorage>`u`?null:localStorage);return n?n.getItem(e)===`1`:!1}catch{return!1}},w=(e,t)=>{try{let n=t??(typeof localStorage>`u`?null:localStorage);return!n||n.getItem(e)!==`0`}catch{return!0}},T=(e,t)=>{try{typeof localStorage<`u`&&localStorage.setItem(e,t?`1`:`0`)}catch{}},E=`oc:legend-timeline`,D=e=>C(E,e),O=`oc:markstream-react`,k=e=>w(O,e),A=t(e=>({legendTimelineEnabled:D(),setLegendTimelineEnabled:t=>{T(E,t),e({legendTimelineEnabled:t})},markstreamReactEnabled:k(),setMarkstreamReactEnabled:t=>{T(O,t),e({markstreamReactEnabled:t})}})),j=null,M=()=>(j??=a(()=>import(`./MarkstreamRendererImpl-BeCY-mui.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65])).catch(e=>{throw j=null,e}),j),N=()=>{M().catch(()=>void 0)},P=null,F=()=>(P??=a(()=>import(`./MarkdownRendererImpl-BwBPrsxq.js`).then(e=>e.n),__vite__mapDeps([45,1,4,5,18,17,6,2,3,7,19,20,25,26,9,46,13,14,15,16,21,22,23,24,27,28,29,30,31,44,32,34,35,36,37,38,39,47,40,48,43,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64])).catch(e=>{throw P=null,e}),P),I=()=>{F().catch(()=>void 0),k()&&N()},L=class extends d.Component{state={hasError:!1};static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e){console.warn(`[markstream-react] falling back to the current Markdown renderer`,e)}render(){return this.state.hasError?this.props.fallback:this.props.children}},R=d.createContext(!0),z=()=>d.useContext(R),B=r(),V=x(()=>F().then(e=>({default:e.MarkdownRenderer}))),H=x(()=>M().then(e=>({default:e.MarkstreamRenderer}))),U=x(()=>F().then(e=>({default:e.SimpleMarkdownRenderer}))),W=e=>e===`tool`?`markdown-content markdown-tool`:e===`reasoning`?`markdown-content markdown-reasoning`:`markdown-content leading-relaxed`,G=e=>{let t=(0,u.c)(15),n=A(J),r=typeof e.content==`string`?e.content:``,i=typeof e.variant==`string`?e.variant:`assistant`,a;t[0]!==r||t[1]!==n||t[2]!==e.reserveMeasuredHeight||t[3]!==i?(a=e.reserveMeasuredHeight?c(l(r,n?`markstream:${i}`:i)):void 0,t[0]=r,t[1]=n,t[2]=e.reserveMeasuredHeight,t[3]=i,t[4]=a):a=t[4];let d=a,f;t[5]!==e.className||t[6]!==e.variant?(f=o(`relative break-words w-full min-w-0`,W(e.variant),typeof e.className==`string`?e.className:void 0),t[5]=e.className,t[6]=e.variant,t[7]=f):f=t[7];let p;t[8]!==r||t[9]!==e.animated||t[10]!==d?(p=(0,B.jsx)(s,{animated:e.animated,content:r,reservedHeight:d}),t[8]=r,t[9]=e.animated,t[10]=d,t[11]=p):p=t[11];let m;return t[12]!==f||t[13]!==p?(m=(0,B.jsx)(`div`,{className:f,"aria-busy":`true`,"data-markdown-hydration":`deferred`,"data-markdown-ready":`false`,children:p}),t[12]=f,t[13]=p,t[14]=m):m=t[14],m},K=e=>{let t=(0,u.c)(13),n=z(),r=A(Y);if(!n&&e.isStreaming!==!0){let n;return t[0]===e?n=t[1]:(n=(0,B.jsx)(G,{...e,animated:!1,reserveMeasuredHeight:!0}),t[0]=e,t[1]=n),n}let i;t[2]===e?i=t[3]:(i=(0,B.jsx)(d.Suspense,{fallback:(0,B.jsx)(G,{...e,reserveMeasuredHeight:!0}),children:(0,B.jsx)(V,{...e})}),t[2]=e,t[3]=i);let a=i,o;t[4]!==a||t[5]!==r||t[6]!==e?(o=r?(0,B.jsx)(L,{fallback:a,children:(0,B.jsx)(d.Suspense,{fallback:(0,B.jsx)(G,{...e,reserveMeasuredHeight:!0}),children:(0,B.jsx)(H,{...e})})}):a,t[4]=a,t[5]=r,t[6]=e,t[7]=o):o=t[7];let s=o,c;t[8]===e?c=t[9]:(c=t=>{if(!e.onShowPopup||t.button!==0||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey)return;let n=t.target instanceof Element?t.target.closest(`a[href]`):null,r=n?.getAttribute(`href`);if(!r||!S(r))return;t.preventDefault(),t.stopPropagation();let i=n?.textContent?.trim()||r.split(/[/?#]/).filter(Boolean).pop()||r;e.onShowPopup({open:!0,title:i,content:``,video:{url:r,filename:i}})},t[8]=e,t[9]=c);let l;return t[10]!==s||t[11]!==c?(l=(0,B.jsx)(`div`,{className:`contents`,onClickCapture:c,children:s}),t[10]=s,t[11]=c,t[12]=l):l=t[12],l},q=e=>{let t=(0,u.c)(4);if(!z()){let n;return t[0]===e?n=t[1]:(n=(0,B.jsx)(G,{...e,animated:!1}),t[0]=e,t[1]=n),n}let n;return t[2]===e?n=t[3]:(n=(0,B.jsx)(d.Suspense,{fallback:(0,B.jsx)(G,{...e}),children:(0,B.jsx)(U,{...e})}),t[2]=e,t[3]=n),n};function J(e){return e.markstreamReactEnabled}function Y(e){return e.markstreamReactEnabled}export{A as a,I as i,q as n,S as o,R as r,x as s,K as t};
|
|
@@ -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-QykS5eAQ.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-Ca8Z9cOP.js";import{n as x,t as S}from"./useThemeSystem-8jhE4Zyk.js";import{n as C}from"./Icon-x0XTu231.js";import{n as w,t as T}from"./dialog-DKsOQO4Y.js";import{i as E,l as D,o as O,s as k,v as A}from"./image-loading-DImQz00b.js";import{t as j}from"./MobileWindowStack-DGLdgoGr.js";import{t as M}from"./appThemeRegistry-w-Ebbmh5.js";import{n as N,o as P}from"./MarkdownRenderer-BZZFoaPb.js";import{l as ee}from"./markdown-worker-DFNZ3KJ_.js";import{n as te}from"./useEffectiveDirectory-DXbRKe4_.js";import{r as ne}from"./relay-image-stream-CqgxIcA5.js";import{t as F}from"./ImageLoadingPlaceholder-Da1xKjxc.js";import{d as I,f as L,g as R,h as z,l as B,m as V,n as H,p as U,r as W,s as G,t as re,u as ie}from"./useWorkerHighlightedLines-hl5s_wXd.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-CGH0aRvP.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)(W,{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,Q=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)},_e=e=>Promise.resolve().then(()=>Q(e)),ve=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??ve,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??ve,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??ve,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)(9),{children:n,isMobile:r}=e,i;t[0]===r?i=t[1]:(i=r?{bottom:`calc(var(--oc-safe-area-bottom, 0px) + 0.75rem)`,right:`calc(var(--oc-safe-area-right, 0px) + 0.75rem)`}:{bottom:`1rem`,left:`1rem`},t[0]=r,t[1]=i);let a=r?`mobile`:`desktop`,o=`pointer-events-auto flex items-center text-[var(--oc-media-preview-foreground)] ${r?`gap-1.5`:`gap-2`}`,s;t[2]!==n||t[3]!==a||t[4]!==o?(s=(0,Y.jsx)(`div`,{"data-media-preview-toolbar":a,className:o,onPointerDown:Le,onDoubleClick:Ie,children:n}),t[2]=n,t[3]=a,t[4]=o,t[5]=s):s=t[5];let c;return t[6]!==i||t[7]!==s?(c=(0,Y.jsx)(`div`,{className:`pointer-events-none absolute z-20`,style:i,children:s}),t[6]=i,t[7]=s,t[8]=c):c=t[8],c}function Ie(e){return e.stopPropagation()}function Le(e){return e.stopPropagation()}function Re(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:ze,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 ze(e){e.stopPropagation()}var Be=1048576,$=f(`OpenChamberVideo`),Ve=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,Be)}`}let n=Number(t[1]),r=t[2]?Number(t[2]):n+Be-1;if(!Number.isSafeInteger(n)||!Number.isSafeInteger(r)||r<n)throw Error(`Invalid media range`);return`bytes=${n}-${Math.min(r,n+Be-1)}`},He=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 Ue(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`:Ve(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`?``:He(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 We=`image/png`,Ge=f(`OpenChamberMedia`),Ke=e=>{let t=e.toLowerCase().split(`;`)[0]?.trim()||We;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`},qe=(e,t)=>{let n=`${t.startsWith(`video/`)?`video`:`image`}.${Ke(t)}`,r=(((e||``).trim()||n).split(/[\\/]/).pop()||n).replace(/[^\w.\- ()[\]]+/g,`_`).replace(/^\.+/,``);return r?/\.[a-z0-9]{1,8}$/i.test(r)?r:`${r}.${Ke(t)}`:n},Je=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)}),Ye=async e=>{let t=await Je(e),n=t.indexOf(`,`);return n>=0?t.slice(n+1):t},Xe=(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)},Ze=async(e,t)=>{if(e.startsWith(`openchamber-asset:`)){let n=await ne(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()},Qe=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()},$e=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 Ze(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 Ze(i,t);else{let e=O(i,n);r=E(e)?await Qe(e.path,t):await Ze(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`:``)||We).split(`;`)[0].trim()||We;return{blob:r,filename:qe(e.filename,a),mimeType:a}},et=()=>!l()||p===void 0?!1:p.isPluginAvailable(`OpenChamberMedia`),tt=async(e,t)=>{let{blob:n,filename:r,mimeType:o}=await $e(e,t);if(t?.throwIfAborted(),et()){let i=await Ye(n);if(t?.throwIfAborted(),e.kind===`video`){if((await Ge.saveFile({dataBase64:i,mimeType:o,filename:r}))?.cancelled)throw new DOMException(`Save cancelled`,`AbortError`);return`saved`}return await Ge.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 Je(n);return await t.saveImage({fileName:r,dataUrl:e}),`saved`}}return Xe(n,r),`downloaded`};function nt(e){let t=(0,q.c)(32),{target:n,isMobile:r}=e,{t:i}=v(),[a,o]=J.useState(`idle`),s=J.useRef(null),c,l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=()=>()=>s.current?.abort(),l=[],t[0]=c,t[1]=l):(c=t[0],l=t[1]),J.useEffect(c,l);let u;t[2]===n?u=t[3]:(u=async()=>{if(s.current)return;let e=new AbortController;s.current=e,o(`saving`);try{await tt(n,e.signal),e.signal.aborted||o(`saved`)}catch(t){let n=t;if(e.signal.aborted)return;s.current=null,o(n instanceof DOMException&&n.name===`AbortError`?`idle`:`error`)}},t[2]=n,t[3]=u);let d=_(u),f=a===`saving`,p=a===`saved`,m;t[4]!==p||t[5]!==f||t[6]!==i||t[7]!==n?(m=i(f?`chat.image.actions.saving`:p?`filesView.editor.saved`:n.kind===`video`?`filesView.editor.saveFile`:`chat.image.actions.saveImage`),t[4]=p,t[5]=f,t[6]=i,t[7]=n,t[8]=m):m=t[8];let h=m,g=r?`ghost`:`mobileGlass`,y=r?`icon`:`mobileIcon`,x=f||p,S;t[9]!==r||t[10]!==p||t[11]!==f?(S=f?(0,Y.jsx)(C,{name:`loader-4`,className:`${r?`size-5`:`size-6`} motion-safe:animate-spin`}):p?(0,Y.jsx)(C,{name:`check`,weight:`medium`,className:r?`size-5`:`size-6`}):(0,Y.jsx)(C,{name:`download-2-fill`,className:r?`size-5`:`size-6`}),t[9]=r,t[10]=p,t[11]=f,t[12]=S):S=t[12];let w;t[13]!==h||t[14]!==d||t[15]!==f||t[16]!==a||t[17]!==g||t[18]!==y||t[19]!==x||t[20]!==S?(w=(0,Y.jsx)(b,{variant:g,size:y,"data-media-save":a,className:`rounded-full [corner-shape:round] disabled:opacity-100`,"aria-label":h,"aria-busy":f,disabled:x,onClick:d,children:S}),t[13]=h,t[14]=d,t[15]=f,t[16]=a,t[17]=g,t[18]=y,t[19]=x,t[20]=S,t[21]=w):w=t[21];let T;t[22]!==h||t[23]!==a||t[24]!==i||t[25]!==n?(T=a===`error`?i(n.kind===`video`?`filesView.toast.saveFailed`:`chat.image.actions.saveFailed`):a===`idle`?``:h,t[22]=h,t[23]=a,t[24]=i,t[25]=n,t[26]=T):T=t[26];let E;t[27]===T?E=t[28]:(E=(0,Y.jsx)(`span`,{className:`sr-only`,role:`status`,"aria-live":`polite`,children:T}),t[27]=T,t[28]=E);let D;return t[29]!==E||t[30]!==w?(D=(0,Y.jsxs)(Y.Fragment,{children:[w,E]}),t[29]=E,t[30]=w,t[31]=D):D=t[31],D}function rt(e){let t=(0,q.c)(57),{video:n,onClose:i,isMobile:a}=e,{t:o}=v(),s=te()??``,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 Ue(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,[ee,ne]=J.useState(),F=x?.error||k.isError||!!(P&&ee===P),I;t[24]!==a||t[25]!==i?(I=(0,Y.jsx)(Pe,{onClose:i,isMobile:a}),t[24]=a,t[25]=i,t[26]=I):I=t[26];let L;t[27]!==F||t[28]!==P||t[29]!==o?(L=!P&&!F&&(0,Y.jsx)(`p`,{role:`status`,children:o(`common.loading`)}),t[27]=F,t[28]=P,t[29]=o,t[30]=L):L=t[30];let R;t[31]!==F||t[32]!==o?(R=F&&(0,Y.jsx)(`p`,{role:`alert`,children:o(`filesView.error.readFileFailed`)}),t[31]=F,t[32]=o,t[33]=R):R=t[33];let z;t[34]!==P||t[35]!==n.filename?(z=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:()=>ne(P),controlsList:`nodownload`,onContextMenu:it},P),t[34]=P,t[35]=n.filename,t[36]=z):z=t[36];let B=x?.url?void 0:P,V;t[37]!==s||t[38]!==k.data||t[39]!==B||t[40]!==n.filename||t[41]!==n.mimeType||t[42]!==n.url?(V={kind:`video`,sourceUrl:n.url,displayUrl:B,filename:n.filename,mimeType:n.mimeType,effectiveDirectory:s,prefetchedBlob:k.data},t[37]=s,t[38]=k.data,t[39]=B,t[40]=n.filename,t[41]=n.mimeType,t[42]=n.url,t[43]=V):V=t[43];let H;t[44]!==a||t[45]!==h||t[46]!==V?(H=(0,Y.jsx)(nt,{isMobile:a,target:V},h),t[44]=a,t[45]=h,t[46]=V,t[47]=H):H=t[47];let U;t[48]!==a||t[49]!==H?(U=(0,Y.jsx)(Fe,{isMobile:a,children:H}),t[48]=a,t[49]=H,t[50]=U):U=t[50];let W;return t[51]!==I||t[52]!==L||t[53]!==R||t[54]!==z||t[55]!==U?(W=(0,Y.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-3 p-4`,children:[I,L,R,z,U]}),t[51]=I,t[52]=L,t[53]=R,t[54]=z,t[55]=U,t[56]=W):W=t[56],W}function it(e){return e.preventDefault()}var at=400,ot=(e,t)=>new fe(e,t),st=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})},ct={style:{background:`transparent`,backgroundColor:`transparent`,fontSize:`inherit`}},lt={download:!1,copy:!1,showPanZoomControls:!0},ut=`
|
|
3
|
-
[data-diff-header],
|
|
4
|
-
[data-diff] {
|
|
5
|
-
[data-separator] {
|
|
6
|
-
height: 24px !important;
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
`,dt={hunkLineCount:50,lineHeight:24,diffHeaderHeight:44,hunkSeparatorHeight:24,spacing:0},ft=()=>{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},pt=()=>({width:typeof window<`u`?window.innerWidth:0,height:typeof window<`u`?window.innerHeight:0}),mt=e=>{let t=(0,q.c)(3),[n,r]=J.useState(pt),i,a;return t[0]===e?(i=t[1],a=t[2]):(i=()=>{if(!e||typeof window>`u`)return;let t=()=>{r(pt())};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},ht=({popup:e,onOpenChange:t,isMobile:n})=>{let{t:r}=v(),i=S(),a=te()??``,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=mt(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),ee=J.useRef(0);J.useEffect(()=>{e.open&&(ee.current=typeof performance<`u`?performance.now():Date.now())},[e.open]);let ne=_(()=>(typeof performance<`u`?performance.now():Date.now())-ee.current<at);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 I=o[s]??o[0]??e.image,L=k(I?.url??``,a,`preview`),R=L.source||(I?.url===e.image?.url?l?.currentSrc:``)||``,z=`${L.key}\n${R}`,[B,V]=J.useState(``),H=!!(L.error||B===z),U=_(()=>V(z)),W=I?.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=I?.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%`)},[I?.url,R,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(ne())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||!I||typeof document>`u`)return null;let Q=i?.currentTheme.metadata.variant===`dark`?`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&&!H&&(0,Y.jsx)(`div`,{className:`pointer-events-none absolute inset-0 flex items-center justify-center`,role:`status`,children:(0,Y.jsx)(F,{className:`aspect-square w-64 max-w-[80vw] rounded-xl`})}),H?(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":I?.url===e.image?.url,src:R||void 0,alt:W??``,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:U})]}),(0,Y.jsxs)(Fe,{isMobile:n,children:[G&&(0,Y.jsx)(b,{variant:n?`ghost`:`mobileGlass`,size:n?`icon`:`mobileIcon`,className:y(`rounded-full`,n&&`size-8`,n&&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`,weight:`medium`,className:n?`size-5`:`size-6`})}),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:n?`ghost`:`mobileGlass`,size:n?`icon`:`mobileIcon`,className:y(`rounded-full`,n&&`size-8`,n&&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`,weight:`medium`,className:n?`size-5`:`size-6`})}),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:n?`ghost`:`mobileGlass`,size:n?`icon`:`mobileIcon`,className:y(`rounded-full`,n&&`size-8`,n&&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`,weight:`medium`,className:n?`size-5`:`size-6`})}),(0,Y.jsxs)(b,{variant:n?`ghost`:`mobileGlass`,size:n?`sm`:`lg`,className:y(`rounded-full tabular-nums`,n?`min-w-14 px-2`:`min-w-20`,n&&Q),onClick:()=>q(!0),"aria-label":r(`chat.toolOutputDialog.image.resetZoomAria`),title:r(`chat.toolOutputDialog.image.resetZoomAria`),children:[(0,Y.jsx)(C,{name:`restart`,weight:`medium`,className:n?`size-4`:`size-5`}),(0,Y.jsx)(`span`,{ref:E,children:`100%`})]}),(0,Y.jsx)(b,{variant:n?`ghost`:`mobileGlass`,size:n?`icon`:`mobileIcon`,className:y(`rounded-full`,n&&`size-8`,n&&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`,weight:`medium`,className:n?`size-5`:`size-6`})}),(0,Y.jsx)(nt,{isMobile:n,target:{sourceUrl:I.url||R,displayUrl:R||void 0,filename:I.filename||e.image?.filename||e.title,mimeType:I.mimeType||e.image?.mimeType,effectiveDirectory:a}},L.key)]})]})},gt=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:ut},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:dt,options:s,className:`block w-full`})}),t[4]=a,t[5]=s,t[6]=c):c=t[6],c});gt.displayName=`DialogUnifiedDiff`;var _t=J.memo(e=>{let t=(0,q.c)(29),{popup:n,pierreThemeConfig:r}=e,i;t[0]===n.content?i=t[1]:(i=B(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(bt).join(`
|
|
10
|
-
`),t[4]=a.lines,t[5]=d);let f=d,p;t[6]!==u||t[7]!==n.language?(p=n.language||ee(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(xt),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});_t.displayName=`DialogReadContent`;var vt=({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=_e(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(ot(`chat.toolOutputDialog.mermaid.readFileFailedWithStatus`,{status:e.status}))):Promise.reject(ot(`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(ot(`chat.toolOutputDialog.mermaid.unsupportedUrlProtocol`)):fetch(e.toString()).then(e=>e.ok?e.text():Promise.reject(ot(`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:lt,mermaidTheme:o,enableFileReferences:!1})})]})})]})})},yt=e=>{let t=(0,q.c)(52),{popup:n,onOpenChange:r,isMobile:i}=e,{t:a}=v(),[o,s]=J.useState(`unified`),c=ft(),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)(rt,{video:f,onClose:e,isMobile:i}):n.image?(0,Y.jsx)(ht,{popup:n,onOpenChange:e,isMobile:i}):(0,Y.jsx)(vt,{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)(Re,{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?st(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)(H,{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)(R,{language:`bash`,code:r(`command`),style:u.getPopupStyles(),codeStyle:ct.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:ee(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)(gt,{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`?U(n.content)||(0,Y.jsx)(R,{language:`json`,code:n.content,style:u.getPopupContainerStyles(),codeStyle:ct.style,wrap:!0}):e===`list`?L(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`?I(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`?V(n.content)||(0,Y.jsx)(R,{language:`text`,code:n.content,style:u.getPopupContainerStyles(),codeStyle:ct.style,wrap:!0}):e===`read`?(0,Y.jsx)(_t,{popup:n,pierreThemeConfig:c}):(n.content?z(n.content):{data:null,isJson:!1}).isJson?(0,Y.jsx)(de,{jsonString:n.content,initiallyExpandedDepth:3,maxHeight:`70vh`}):(0,Y.jsx)(R,{language:n.language||`text`,code:n.content,style:u.getPopupContainerStyles(),codeStyle:ct.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 bt(e){return e.text}function xt(e){return e.lineNumber!==null}export{yt as default};
|