@openchambery/web 2.1.9-beta.3 → 2.1.9-beta.5
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-3Lz_SADb.js → AssistantView-BMvmzMFI.js} +3 -3
- package/dist/assets/{DiagramView-BZP5Aj4S.js → DiagramView-BO6rDoTN.js} +1 -1
- package/dist/assets/{MarkdownRenderer-DpB0hJ_E.js → MarkdownRenderer-D_ZS58Ur.js} +2 -2
- package/dist/assets/{MarkdownRendererImpl-Hg1bbRlM.js → MarkdownRendererImpl-gBtduBHO.js} +1 -1
- package/dist/assets/{MarkstreamRendererImpl-BfUZU3WC.js → MarkstreamRendererImpl-CKilBBOc.js} +1 -1
- package/dist/assets/{MobileDetailNavigation-DqGKTFzT.js → MobileDetailNavigation-Dgqdqrmy.js} +1 -1
- package/dist/assets/{MobileShareBridge-DHHw00TT.js → MobileShareBridge-G2wjyn4g.js} +1 -1
- package/dist/assets/{MobileTabPageHeader-jFeAz_Z2.js → MobileTabPageHeader-Cipo7N8C.js} +1 -1
- package/dist/assets/MobileWindowStack-DGLdgoGr.js +1 -0
- package/dist/assets/{MultiRunWindow-C92A1Qkc.js → MultiRunWindow-C_ow_lbm.js} +1 -1
- package/dist/assets/{SettingsView-C2-Tug3M.js → SettingsView-BaLgORC_.js} +2 -2
- package/dist/assets/{SettingsWindow-D_j-lLiY.js → SettingsWindow-DfSPTDHb.js} +1 -1
- package/dist/assets/{TerminalView-Veaa8xms.js → TerminalView-DhUynfus.js} +1 -1
- package/dist/assets/ToolOutputDialog-DaKPwmer.js +10 -0
- package/dist/assets/{appThemeRegistry-BhVqv80m.js → appThemeRegistry-zPqSQBFx.js} +1 -1
- package/dist/assets/{fileMentionTouchSelection-ytHOa8vD.js → fileMentionTouchSelection-C8mKDaBe.js} +1 -1
- package/dist/assets/{gitApi-DZSpp5_u.js → gitApi-BCPykg93.js} +1 -1
- package/dist/assets/{insertionBoundaries-B3F2vgJn.js → insertionBoundaries-h0pySzQJ.js} +1 -1
- package/dist/assets/{main-HsqXFi70.js → main-4JVZhTAZ.js} +2 -2
- package/dist/assets/{main-mdIF-V3Y.js → main-C8RDC4kz.js} +4 -4
- package/dist/assets/{mcpQueries-BAU9FYFF.js → mcpQueries-Cm1VNAmy.js} +1 -1
- package/dist/assets/{miniChat-B7C-IBFC.js → miniChat-_SvWYZuQ.js} +2 -2
- package/dist/assets/mobile-Cil7_kYn.js +2 -0
- package/dist/assets/{multirun-D3iS9HjC.js → multirun-BzeInZt6.js} +1 -1
- package/dist/assets/{projectMeta-DlHKE_8C.js → projectMeta-CUAgRGwW.js} +1 -1
- package/dist/assets/{renderElectronMiniChatApp-CVT0WyUz.js → renderElectronMiniChatApp-BrAIRgb-.js} +2 -2
- package/dist/assets/{renderMobileApp-hUJNFMKe.js → renderMobileApp-DxTazPkB.js} +6 -6
- package/dist/assets/{runtimeConfig-DAxmpV5p.js → runtimeConfig-Bljmgd6r.js} +1 -1
- package/dist/assets/{runtimeEndpointReset-BCf2ORY3.js → runtimeEndpointReset-BYsDk8ux.js} +1 -1
- package/dist/assets/{sessionChangeSummary-BYoAdclB.js → sessionChangeSummary-BslBzYAm.js} +1 -1
- package/dist/assets/{sessionLookup-DxWtYNX-.js → sessionLookup-5MrKwBXP.js} +1 -1
- package/dist/assets/{speechSettingsQueries-CBrLvvue.js → speechSettingsQueries-otzPynPJ.js} +1 -1
- package/dist/assets/src-Cq3Axl32.css +2 -0
- package/dist/assets/textarea-D_tvJ-Lw.js +1 -0
- package/dist/assets/{useAppFontEffects-BvJWL9Tq.js → useAppFontEffects-DHJ_Qc3g.js} +5 -5
- package/dist/assets/{useDesktopWindowControlsLayout-6B2M3hOM.js → useDesktopWindowControlsLayout-BnMDHglb.js} +1 -1
- package/dist/assets/{useEffectiveDirectory-fANUMttq.js → useEffectiveDirectory-D0qR3aRK.js} +1 -1
- package/dist/assets/{useMobileNavigationStore-DRpR2Oyd.js → useMobileNavigationStore-BZ7oo4Ir.js} +4 -4
- package/dist/assets/{useWorkerHighlightedLines-D1io7Q4t.js → useWorkerHighlightedLines-B86utfqe.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/session-index/DOCUMENTATION.md +6 -0
- package/server/lib/session-index/sync-runtime.js +5 -4
- package/server/lib/session-index/sync-runtime.test.js +4 -0
- package/dist/assets/ToolOutputDialog-CI32t1nx.js +0 -10
- package/dist/assets/mobile-CqWR9PBo.js +0 -2
- package/dist/assets/src-CdGit3gf.css +0 -2
- package/dist/assets/textarea-ClV5sMS-.js +0 -1
package/dist/assets/{useWorkerHighlightedLines-D1io7Q4t.js → useWorkerHighlightedLines-B86utfqe.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t}from"./runtime-fetch-WgH0pROs.js";import{Mn as n,ln as r}from"./persistence-BKszKaoQ.js";import{it as i,rt as a}from"./vendor-base-ui-CdzJ6My_.js";import{n as o}from"./platform-CgwxwfA4.js";import{v as s}from"./useUIStore-CEqU9Ujv.js";import{n as c}from"./vendor-react-BP2cRVqX.js";import{a as l,n as u}from"./vendor-aparajita-capacitor-secure-storage-xol_6BsB.js";import{f as d,r as f,t as p}from"./button-CWSs9Baz.js";import{n as m}from"./useThemeSystem-8jhE4Zyk.js";import{n as h}from"./Icon-BCFeHDWx.js";import{i as g,n as _,t as v}from"./tooltip-CV6dvLBp.js";import{a as y,i as b,o as x,t as S}from"./image-loading-Bj11k4gM.js";import{n as C}from"./MarkdownRenderer-DpB0hJ_E.js";import{n as w,o as T,s as E,t as D}from"./markdown-worker-DFNZ3KJ_.js";import{n as ee}from"./markdownTheme-CV7_0QAL.js";import{t as te}from"./vendor-tanstack-react-virtual-B_EO--9t.js";var O=e(i(),1),k=c(),A=a(),ne=`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)]`,j={maxWidth:`min(28rem, calc(100cqw - 4ch))`,backgroundColor:`var(--surface-elevated)`,color:`var(--surface-elevated-foreground)`},M=`flex items-center justify-between gap-3 border-b border-[var(--surface-subtle)] px-3 py-2.5`,N=`text-xs font-medium leading-4 text-foreground md:text-[0.8125rem] md:leading-5`,re=`text-xs tabular-nums leading-4 text-muted-foreground md:text-[0.8125rem] md:leading-5`,P=`m-0 list-none divide-y divide-[var(--surface-subtle)] p-0`,F=`${P} max-h-[min(22rem,50vh)] overflow-y-auto`,ie=`${P} w-full`,ae={className:`p-0 rounded-none`,maxHeightClass:`max-h-[46vh]`,disableHorizontal:!0},I=`px-2.5 py-1.5 text-xs leading-4 md:py-2 md:text-[0.8125rem] md:leading-5`,oe=`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`,se=`min-w-0 truncate text-xs leading-4 text-foreground md:text-[0.8125rem] md:leading-5`,ce=`inline-flex shrink-0 items-center gap-1 text-xs leading-4 tabular-nums text-muted-foreground md:text-[0.8125rem] md:leading-5`,le=`h-3 w-3 shrink-0 md:h-3.5 md:w-3.5`,ue={in_progress:`text-foreground`,pending:`text-foreground`,completed:`text-muted-foreground line-through`,cancelled:`text-muted-foreground line-through`},L={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`},R=e=>{let t=(0,k.c)(26),{todo:n,isActive:r,activeRef:i}=e,{t:a}=d(),o=z.has(n.status)?n.status:`pending`,s=L[o],c;t[0]!==a||t[1]!==s?(c=a(s),t[0]=a,t[1]=s,t[2]=c):c=t[2];let l=c,u;t[3]===o?u=t[4]:(u=o===`in_progress`?(0,A.jsx)(h,{name:`record-circle`,className:`h-3.5 w-3.5 text-[var(--status-info)]`,"aria-hidden":`true`}):o===`completed`?(0,A.jsx)(h,{name:`checkbox-circle`,className:`h-3.5 w-3.5 text-[var(--status-success)]`,"aria-hidden":`true`}):(0,A.jsx)(h,{name:`time`,className:`h-3.5 w-3.5 text-muted-foreground`,"aria-hidden":`true`}),t[3]=o,t[4]=u);let p=u,m=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=f(`group relative grid min-w-0 grid-cols-[1rem_minmax(0,1fr)] items-start gap-2.5`,I,y),t[5]=y,t[6]=b);let x;t[7]!==p||t[8]!==l?(x=(0,A.jsx)(g,{asChild:!0,children:(0,A.jsx)(`span`,{className:`flex size-4 items-center justify-center`,"aria-label":l,children:p})}),t[7]=p,t[8]=l,t[9]=x):x=t[9];let S;t[10]===l?S=t[11]:(S=(0,A.jsx)(_,{side:`left`,sideOffset:6,children:l}),t[10]=l,t[11]=S);let C;t[12]!==x||t[13]!==S?(C=(0,A.jsxs)(v,{children:[x,S]}),t[12]=x,t[13]=S,t[14]=C):C=t[14];let w=ue[o],T;t[15]===w?T=t[16]:(T=f(`block whitespace-normal break-words`,w),t[15]=w,t[16]=T);let E;t[17]!==T||t[18]!==n.content?(E=(0,A.jsx)(`span`,{className:`min-w-0 flex-1`,children:(0,A.jsx)(`span`,{className:T,children:n.content})}),t[17]=T,t[18]=n.content,t[19]=E):E=t[19];let D;return t[20]!==i||t[21]!==E||t[22]!==m||t[23]!==b||t[24]!==C?(D=(0,A.jsxs)(`li`,{ref:i,"aria-current":m,className:b,children:[C,E]}),t[20]=i,t[21]=E,t[22]=m,t[23]=b,t[24]=C,t[25]=D):D=t[25],D},z=new Set([`in_progress`,`pending`,`completed`,`cancelled`]),B=`image/png`,V=l(`OpenChamberMedia`),H=e=>{let t=e.toLowerCase().split(`;`)[0]?.trim()||B;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`;let n=t.split(`/`)[1];return n&&/^[a-z0-9.+-]+$/i.test(n)?n:`png`},U=(e,t)=>{let n=`image.${H(t)}`,r=(((e||``).trim()||n).split(/[\\/]/).pop()||n).replace(/[^\w.\- ()[\]]+/g,`_`).replace(/^\.+/,``);return r?/\.[a-z0-9]{1,8}$/i.test(r)?r:`${r}.${H(t)}`:n},W=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)}),de=async e=>{let t=await W(e),n=t.indexOf(`,`);return n>=0?t.slice(n+1):t},fe=(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)},G=async(e,t)=>{let n=await fetch(e,{signal:t,cache:`no-store`});if(!n.ok)throw Error(`Image fetch failed (${n.status})`);return n.blob()},pe=async(e,t=B)=>{if(!e.naturalWidth||!e.naturalHeight)return null;let n=e.currentSrc||e.src;if(n&&(/^(?:blob:|data:|openchamber-asset:)/i.test(n)||/^https?:/i.test(n)||/^\/api(?=\/|[?#]|$)/.test(n)))try{let e=await G(n);if(e.size>0)return e}catch{}try{let n=document.createElement(`canvas`);n.width=e.naturalWidth,n.height=e.naturalHeight;let r=n.getContext(`2d`);if(!r)return null;r.drawImage(e,0,0);let i=t.startsWith(`image/`)?t:B,a=await new Promise(e=>{n.toBlob(t=>e(t),i===`image/jpg`?`image/jpeg`:i)});return a&&a.size>0?a:null}catch{return null}},me=async(e,t)=>{let n=``;try{return n=await S(e,t??new AbortController().signal),await G(n,t)}finally{n&&y(n)}},he=async(e,n)=>{let r=e.effectiveDirectory??``,i=null;e.prefetchedBlob&&e.prefetchedBlob.size>0&&(i=e.prefetchedBlob);let a=e.displayUrl?.trim();if(!i&&a)try{i=await G(a,n)}catch{i=null}if(!i){let a=e.sourceUrl.trim();if(!a)throw Error(`Image source is empty`);if(/^(?:data|blob):/i.test(a)||/^https?:/i.test(a)||/^\/api(?=\/|[?#]|$)/.test(a))i=await G(a,n);else{let e=x(a,r);if(b(e))try{i=await me(e.path,n)}catch{let r=await t(`/api/fs/raw`,{method:`GET`,cache:`no-store`,query:{path:e.path},signal:n});if(!r.ok)throw Error(`Image source request failed with status ${r.status}`);i=await r.blob()}else i=await G(e.source,n)}}if(!i||i.size<=0)throw Error(`Image is empty`);let o=(e.mimeType||(i.type&&i.type.startsWith(`image/`)?i.type:``)||B).split(`;`)[0].trim()||B;return{blob:i,filename:U(e.filename,o),mimeType:o}},ge=()=>!o()||u===void 0?!1:u.isPluginAvailable(`OpenChamberMedia`),_e=async(e,t)=>{let{blob:i,filename:a,mimeType:o}=await he(e,t);if(ge()){let e=await de(i);return await V.saveImage({dataBase64:e,mimeType:o,filename:a}),`saved`}if(r()){let e=n()?.vscode;if(e?.saveImage){let t=await W(i);return await e.saveImage({fileName:a,dataUrl:t}),`saved`}}return fe(i,a),`downloaded`},ve=e=>e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`),ye=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(``):``,K=(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=ye(n);e&&i.setAttribute(`style`,`${i.getAttribute(`style`)??``}${e}`)}},be=e=>`<pre><code>${ve(e)}</code></pre>`,xe=e=>{let t=(0,k.c)(21),{code:n,language:r,className:i,style:a,codeStyle:o,wrap:s}=e,c=s!==void 0&&s,{currentTheme:l}=m(),u=O.useRef(null),d;t[0]===l?d=t[1]:(d=ee(l),t[0]=l,t[1]=d);let p=d,h,g;t[2]!==n||t[3]!==o||t[4]!==c?(h=()=>{let e=u.current;e&&(e.innerHTML=be(n),K(e,c,o))},g=[n,c,o],t[2]=n,t[3]=o,t[4]=c,t[5]=h,t[6]=g):(h=t[5],g=t[6]),O.useLayoutEffect(h,g);let _,v;t[7]!==n||t[8]!==o||t[9]!==r||t[10]!==c?(_=()=>{let e=u.current;if(!e)return;let t=!0,i=new AbortController;return D(n,(r||`text`).toLowerCase(),{signal:i.signal,priority:`visible`}).then(n=>{!t||!e||!n||(e.innerHTML=n,K(e,c,o))}),()=>{t=!1,i.abort()}},v=[n,r,c,o],t[7]=n,t[8]=o,t[9]=r,t[10]=c,t[11]=_,t[12]=v):(_=t[11],v=t[12]),O.useEffect(_,v);let y;t[13]===i?y=t[14]:(y=f(`typography-code`,i),t[13]=i,t[14]=y);let b=p,x;t[15]!==a||t[16]!==b?(x={...b,...a},t[15]=a,t[16]=b,t[17]=x):x=t[17];let S;return t[18]!==y||t[19]!==x?(S=(0,A.jsx)(`div`,{ref:u,className:y,style:x}),t[18]=y,t[19]=x,t[20]=S):S=t[20],S},Se=e=>{let t=e.replace(/^<file>\s*\n?/,``).replace(/\n?<\/file>\s*$/,``);return t=t.replace(/^\s*\d{5}\|\s?/gm,``),t.trim()},Ce=(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}},we=e=>e?e.includes(`<diagnostics`)||e.includes(`<file_diagnostics>`)||e.includes(`LSP errors detected`)||e.includes(`This file has errors`):!1,Te=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():``,Ee=(e,t)=>!e||typeof e!=`object`?String(e):E(e,t||``),q=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}}},De=e=>{if(!e||typeof e!=`object`)return;let t=q(e.patch)??q(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=q(e.patch)??q(e.diff);if(t)return t}},Oe=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}}},ke=(e,t,n)=>{let r=Se(e);if((t===`edit`||t===`multiedit`||t===`write`||t===`apply_patch`)&&we(r)&&(r=Te(r)),(t===`edit`||t===`multiedit`||t===`apply_patch`)&&r.trim().length===0){let e=De(n);if(e)return e}return r},Ae=e=>{let t=e.match(/<type>(file|directory)<\/type>/i)?.[1]?.toLowerCase()??`unknown`,n=(e.match(/<content>([\s\S]*?)<\/content>/i)?.[1]??e).replace(/\r\n/g,`
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t}from"./runtime-fetch-WgH0pROs.js";import{Mn as n,ln as r}from"./persistence-BKszKaoQ.js";import{it as i,rt as a}from"./vendor-base-ui-CdzJ6My_.js";import{n as o}from"./platform-CgwxwfA4.js";import{v as s}from"./useUIStore-CEqU9Ujv.js";import{n as c}from"./vendor-react-BP2cRVqX.js";import{a as l,n as u}from"./vendor-aparajita-capacitor-secure-storage-xol_6BsB.js";import{f as d,r as f,t as p}from"./button-CWSs9Baz.js";import{n as m}from"./useThemeSystem-8jhE4Zyk.js";import{n as h}from"./Icon-BCFeHDWx.js";import{i as g,n as _,t as v}from"./tooltip-CV6dvLBp.js";import{a as y,i as b,o as x,t as S}from"./image-loading-Bj11k4gM.js";import{n as C}from"./MarkdownRenderer-D_ZS58Ur.js";import{n as w,o as T,s as E,t as D}from"./markdown-worker-DFNZ3KJ_.js";import{n as ee}from"./markdownTheme-CV7_0QAL.js";import{t as te}from"./vendor-tanstack-react-virtual-B_EO--9t.js";var O=e(i(),1),k=c(),A=a(),ne=`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)]`,j={maxWidth:`min(28rem, calc(100cqw - 4ch))`,backgroundColor:`var(--surface-elevated)`,color:`var(--surface-elevated-foreground)`},M=`flex items-center justify-between gap-3 border-b border-[var(--surface-subtle)] px-3 py-2.5`,N=`text-xs font-medium leading-4 text-foreground md:text-[0.8125rem] md:leading-5`,re=`text-xs tabular-nums leading-4 text-muted-foreground md:text-[0.8125rem] md:leading-5`,P=`m-0 list-none divide-y divide-[var(--surface-subtle)] p-0`,F=`${P} max-h-[min(22rem,50vh)] overflow-y-auto`,ie=`${P} w-full`,ae={className:`p-0 rounded-none`,maxHeightClass:`max-h-[46vh]`,disableHorizontal:!0},I=`px-2.5 py-1.5 text-xs leading-4 md:py-2 md:text-[0.8125rem] md:leading-5`,oe=`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`,se=`min-w-0 truncate text-xs leading-4 text-foreground md:text-[0.8125rem] md:leading-5`,ce=`inline-flex shrink-0 items-center gap-1 text-xs leading-4 tabular-nums text-muted-foreground md:text-[0.8125rem] md:leading-5`,le=`h-3 w-3 shrink-0 md:h-3.5 md:w-3.5`,ue={in_progress:`text-foreground`,pending:`text-foreground`,completed:`text-muted-foreground line-through`,cancelled:`text-muted-foreground line-through`},L={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`},R=e=>{let t=(0,k.c)(26),{todo:n,isActive:r,activeRef:i}=e,{t:a}=d(),o=z.has(n.status)?n.status:`pending`,s=L[o],c;t[0]!==a||t[1]!==s?(c=a(s),t[0]=a,t[1]=s,t[2]=c):c=t[2];let l=c,u;t[3]===o?u=t[4]:(u=o===`in_progress`?(0,A.jsx)(h,{name:`record-circle`,className:`h-3.5 w-3.5 text-[var(--status-info)]`,"aria-hidden":`true`}):o===`completed`?(0,A.jsx)(h,{name:`checkbox-circle`,className:`h-3.5 w-3.5 text-[var(--status-success)]`,"aria-hidden":`true`}):(0,A.jsx)(h,{name:`time`,className:`h-3.5 w-3.5 text-muted-foreground`,"aria-hidden":`true`}),t[3]=o,t[4]=u);let p=u,m=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=f(`group relative grid min-w-0 grid-cols-[1rem_minmax(0,1fr)] items-start gap-2.5`,I,y),t[5]=y,t[6]=b);let x;t[7]!==p||t[8]!==l?(x=(0,A.jsx)(g,{asChild:!0,children:(0,A.jsx)(`span`,{className:`flex size-4 items-center justify-center`,"aria-label":l,children:p})}),t[7]=p,t[8]=l,t[9]=x):x=t[9];let S;t[10]===l?S=t[11]:(S=(0,A.jsx)(_,{side:`left`,sideOffset:6,children:l}),t[10]=l,t[11]=S);let C;t[12]!==x||t[13]!==S?(C=(0,A.jsxs)(v,{children:[x,S]}),t[12]=x,t[13]=S,t[14]=C):C=t[14];let w=ue[o],T;t[15]===w?T=t[16]:(T=f(`block whitespace-normal break-words`,w),t[15]=w,t[16]=T);let E;t[17]!==T||t[18]!==n.content?(E=(0,A.jsx)(`span`,{className:`min-w-0 flex-1`,children:(0,A.jsx)(`span`,{className:T,children:n.content})}),t[17]=T,t[18]=n.content,t[19]=E):E=t[19];let D;return t[20]!==i||t[21]!==E||t[22]!==m||t[23]!==b||t[24]!==C?(D=(0,A.jsxs)(`li`,{ref:i,"aria-current":m,className:b,children:[C,E]}),t[20]=i,t[21]=E,t[22]=m,t[23]=b,t[24]=C,t[25]=D):D=t[25],D},z=new Set([`in_progress`,`pending`,`completed`,`cancelled`]),B=`image/png`,V=l(`OpenChamberMedia`),H=e=>{let t=e.toLowerCase().split(`;`)[0]?.trim()||B;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`;let n=t.split(`/`)[1];return n&&/^[a-z0-9.+-]+$/i.test(n)?n:`png`},U=(e,t)=>{let n=`image.${H(t)}`,r=(((e||``).trim()||n).split(/[\\/]/).pop()||n).replace(/[^\w.\- ()[\]]+/g,`_`).replace(/^\.+/,``);return r?/\.[a-z0-9]{1,8}$/i.test(r)?r:`${r}.${H(t)}`:n},W=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)}),de=async e=>{let t=await W(e),n=t.indexOf(`,`);return n>=0?t.slice(n+1):t},fe=(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)},G=async(e,t)=>{let n=await fetch(e,{signal:t,cache:`no-store`});if(!n.ok)throw Error(`Image fetch failed (${n.status})`);return n.blob()},pe=async(e,t=B)=>{if(!e.naturalWidth||!e.naturalHeight)return null;let n=e.currentSrc||e.src;if(n&&(/^(?:blob:|data:|openchamber-asset:)/i.test(n)||/^https?:/i.test(n)||/^\/api(?=\/|[?#]|$)/.test(n)))try{let e=await G(n);if(e.size>0)return e}catch{}try{let n=document.createElement(`canvas`);n.width=e.naturalWidth,n.height=e.naturalHeight;let r=n.getContext(`2d`);if(!r)return null;r.drawImage(e,0,0);let i=t.startsWith(`image/`)?t:B,a=await new Promise(e=>{n.toBlob(t=>e(t),i===`image/jpg`?`image/jpeg`:i)});return a&&a.size>0?a:null}catch{return null}},me=async(e,t)=>{let n=``;try{return n=await S(e,t??new AbortController().signal),await G(n,t)}finally{n&&y(n)}},he=async(e,n)=>{let r=e.effectiveDirectory??``,i=null;e.prefetchedBlob&&e.prefetchedBlob.size>0&&(i=e.prefetchedBlob);let a=e.displayUrl?.trim();if(!i&&a)try{i=await G(a,n)}catch{i=null}if(!i){let a=e.sourceUrl.trim();if(!a)throw Error(`Image source is empty`);if(/^(?:data|blob):/i.test(a)||/^https?:/i.test(a)||/^\/api(?=\/|[?#]|$)/.test(a))i=await G(a,n);else{let e=x(a,r);if(b(e))try{i=await me(e.path,n)}catch{let r=await t(`/api/fs/raw`,{method:`GET`,cache:`no-store`,query:{path:e.path},signal:n});if(!r.ok)throw Error(`Image source request failed with status ${r.status}`);i=await r.blob()}else i=await G(e.source,n)}}if(!i||i.size<=0)throw Error(`Image is empty`);let o=(e.mimeType||(i.type&&i.type.startsWith(`image/`)?i.type:``)||B).split(`;`)[0].trim()||B;return{blob:i,filename:U(e.filename,o),mimeType:o}},ge=()=>!o()||u===void 0?!1:u.isPluginAvailable(`OpenChamberMedia`),_e=async(e,t)=>{let{blob:i,filename:a,mimeType:o}=await he(e,t);if(ge()){let e=await de(i);return await V.saveImage({dataBase64:e,mimeType:o,filename:a}),`saved`}if(r()){let e=n()?.vscode;if(e?.saveImage){let t=await W(i);return await e.saveImage({fileName:a,dataUrl:t}),`saved`}}return fe(i,a),`downloaded`},ve=e=>e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`),ye=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(``):``,K=(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=ye(n);e&&i.setAttribute(`style`,`${i.getAttribute(`style`)??``}${e}`)}},be=e=>`<pre><code>${ve(e)}</code></pre>`,xe=e=>{let t=(0,k.c)(21),{code:n,language:r,className:i,style:a,codeStyle:o,wrap:s}=e,c=s!==void 0&&s,{currentTheme:l}=m(),u=O.useRef(null),d;t[0]===l?d=t[1]:(d=ee(l),t[0]=l,t[1]=d);let p=d,h,g;t[2]!==n||t[3]!==o||t[4]!==c?(h=()=>{let e=u.current;e&&(e.innerHTML=be(n),K(e,c,o))},g=[n,c,o],t[2]=n,t[3]=o,t[4]=c,t[5]=h,t[6]=g):(h=t[5],g=t[6]),O.useLayoutEffect(h,g);let _,v;t[7]!==n||t[8]!==o||t[9]!==r||t[10]!==c?(_=()=>{let e=u.current;if(!e)return;let t=!0,i=new AbortController;return D(n,(r||`text`).toLowerCase(),{signal:i.signal,priority:`visible`}).then(n=>{!t||!e||!n||(e.innerHTML=n,K(e,c,o))}),()=>{t=!1,i.abort()}},v=[n,r,c,o],t[7]=n,t[8]=o,t[9]=r,t[10]=c,t[11]=_,t[12]=v):(_=t[11],v=t[12]),O.useEffect(_,v);let y;t[13]===i?y=t[14]:(y=f(`typography-code`,i),t[13]=i,t[14]=y);let b=p,x;t[15]!==a||t[16]!==b?(x={...b,...a},t[15]=a,t[16]=b,t[17]=x):x=t[17];let S;return t[18]!==y||t[19]!==x?(S=(0,A.jsx)(`div`,{ref:u,className:y,style:x}),t[18]=y,t[19]=x,t[20]=S):S=t[20],S},Se=e=>{let t=e.replace(/^<file>\s*\n?/,``).replace(/\n?<\/file>\s*$/,``);return t=t.replace(/^\s*\d{5}\|\s?/gm,``),t.trim()},Ce=(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}},we=e=>e?e.includes(`<diagnostics`)||e.includes(`<file_diagnostics>`)||e.includes(`LSP errors detected`)||e.includes(`This file has errors`):!1,Te=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():``,Ee=(e,t)=>!e||typeof e!=`object`?String(e):E(e,t||``),q=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}}},De=e=>{if(!e||typeof e!=`object`)return;let t=q(e.patch)??q(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=q(e.patch)??q(e.diff);if(t)return t}},Oe=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}}},ke=(e,t,n)=>{let r=Se(e);if((t===`edit`||t===`multiedit`||t===`write`||t===`apply_patch`)&&we(r)&&(r=Te(r)),(t===`edit`||t===`multiedit`||t===`apply_patch`)&&r.trim().length===0){let e=De(n);if(e)return e}return r},Ae=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)})}},je=(e,t)=>{try{let n=e.trim().split(`
|
|
4
4
|
`).filter(Boolean);if(n.length===0)return null;let r=[];return n.forEach(e=>{let t=e.match(/^(\s*)(.+)$/);if(t){let[,e,n]=t,i=Math.floor(e.length/2),a=!n.endsWith(`/`);r.push({name:n.replace(/\/$/,``),depth:i,isFile:a})}}),(0,A.jsx)(`div`,{className:f(`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:s.tool.popup,children:r.map((e,t)=>(0,A.jsx)(`div`,{className:`min-w-0`,style:{paddingLeft:`${e.depth*20}px`},children:e.isFile?(0,A.jsx)(`span`,{className:`text-foreground/90 block truncate`,children:e.name}):(0,A.jsxs)(`span`,{className:`font-semibold text-foreground block truncate`,children:[e.name,`/`]})},t))})}catch{return null}},Me={backgroundColor:`var(--status-info)`,opacity:.6},Ne=(e,t,n)=>{try{let r=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-4JVZhTAZ.js"></script>
|
|
556
556
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-hePW80VL.js">
|
|
557
557
|
<link rel="modulepreload" crossorigin href="/assets/runtime-auth-BpCQ-dPr.js">
|
|
558
558
|
<link rel="modulepreload" crossorigin href="/assets/runtime-switch-CMiMO5Yj.js">
|
|
@@ -572,8 +572,8 @@
|
|
|
572
572
|
<link rel="modulepreload" crossorigin href="/assets/terminalApi-rxsMWL0o.js">
|
|
573
573
|
<link rel="modulepreload" crossorigin href="/assets/types-BuiqMmh_.js">
|
|
574
574
|
<link rel="modulepreload" crossorigin href="/assets/capgoAdapter-KNLHDj7G.js">
|
|
575
|
-
<link rel="modulepreload" crossorigin href="/assets/runtimeConfig-
|
|
576
|
-
<link rel="stylesheet" crossorigin href="/assets/src-
|
|
575
|
+
<link rel="modulepreload" crossorigin href="/assets/runtimeConfig-Bljmgd6r.js">
|
|
576
|
+
<link rel="stylesheet" crossorigin href="/assets/src-Cq3Axl32.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-_SvWYZuQ.js"></script>
|
|
78
78
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-hePW80VL.js">
|
|
79
79
|
<link rel="modulepreload" crossorigin href="/assets/runtime-auth-BpCQ-dPr.js">
|
|
80
80
|
<link rel="modulepreload" crossorigin href="/assets/runtime-switch-CMiMO5Yj.js">
|
|
@@ -94,8 +94,8 @@
|
|
|
94
94
|
<link rel="modulepreload" crossorigin href="/assets/terminalApi-rxsMWL0o.js">
|
|
95
95
|
<link rel="modulepreload" crossorigin href="/assets/types-BuiqMmh_.js">
|
|
96
96
|
<link rel="modulepreload" crossorigin href="/assets/capgoAdapter-KNLHDj7G.js">
|
|
97
|
-
<link rel="modulepreload" crossorigin href="/assets/runtimeConfig-
|
|
98
|
-
<link rel="stylesheet" crossorigin href="/assets/src-
|
|
97
|
+
<link rel="modulepreload" crossorigin href="/assets/runtimeConfig-Bljmgd6r.js">
|
|
98
|
+
<link rel="stylesheet" crossorigin href="/assets/src-Cq3Axl32.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-Cil7_kYn.js"></script>
|
|
67
67
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-hePW80VL.js">
|
|
68
68
|
<link rel="modulepreload" crossorigin href="/assets/runtime-auth-BpCQ-dPr.js">
|
|
69
69
|
<link rel="modulepreload" crossorigin href="/assets/runtime-switch-CMiMO5Yj.js">
|
|
@@ -83,8 +83,8 @@
|
|
|
83
83
|
<link rel="modulepreload" crossorigin href="/assets/terminalApi-rxsMWL0o.js">
|
|
84
84
|
<link rel="modulepreload" crossorigin href="/assets/types-BuiqMmh_.js">
|
|
85
85
|
<link rel="modulepreload" crossorigin href="/assets/capgoAdapter-KNLHDj7G.js">
|
|
86
|
-
<link rel="modulepreload" crossorigin href="/assets/runtimeConfig-
|
|
87
|
-
<link rel="stylesheet" crossorigin href="/assets/src-
|
|
86
|
+
<link rel="modulepreload" crossorigin href="/assets/runtimeConfig-Bljmgd6r.js">
|
|
87
|
+
<link rel="stylesheet" crossorigin href="/assets/src-Cq3Axl32.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
|
@@ -127,6 +127,9 @@ not reset it, and delivery reads the latest revision and sync flags. New-batch
|
|
|
127
127
|
enqueue, idle (`active=false` and `enriching=false`), `publishChange()` (including
|
|
128
128
|
pin/rename and event-driven writes), and stop bypass the window and cancel its
|
|
129
129
|
pending delivery. These immediate edges are exceptions to the 500ms rate bound.
|
|
130
|
+
Only a `publishChange()` broadcast carries `cause: 'change'`; it replaces any
|
|
131
|
+
pending progress tip and the event-stream sink forwards it unchanged. Progress,
|
|
132
|
+
enqueue, idle and stop tips omit cause, so the marker cannot leak into later tips.
|
|
130
133
|
Stop publishes idle with interrupted directories marked failed; late worker
|
|
131
134
|
cleanup cannot emit another revision or leave a pending tip timer. Internal
|
|
132
135
|
revision increments and `waitForChange` delivery remain immediate, including the
|
|
@@ -137,6 +140,9 @@ The shared renderer independently throttles busy tips to a fixed 1000ms window
|
|
|
137
140
|
for compatibility with older Hosts. Idle/legacy tips use 100ms debounce and
|
|
138
141
|
shorten a pending busy deadline without extending it. Stream-ready and safety
|
|
139
142
|
timeout repair retain their existing behavior; GET remains authoritative.
|
|
143
|
+
`cause: 'change'` also selects that 100ms/earlier-deadline path while busy, keeping
|
|
144
|
+
external writes responsive. Unknown causes are ignored by the client parser;
|
|
145
|
+
Hosts without cause retain the existing progress-throttling behavior.
|
|
140
146
|
|
|
141
147
|
The OpenCode proxy calls `noteInteractiveRequest()` for selected-session reads
|
|
142
148
|
and mutations. That aborts the current background list, yields for one second,
|
|
@@ -115,7 +115,7 @@ export const createSessionIndexSyncRuntime = ({
|
|
|
115
115
|
...sessionIndexService.snapshot(),
|
|
116
116
|
});
|
|
117
117
|
|
|
118
|
-
const broadcastRevisionTip = () => {
|
|
118
|
+
const broadcastRevisionTip = (cause) => {
|
|
119
119
|
if (revisionTipTimer !== undefined) clearTimer(revisionTipTimer);
|
|
120
120
|
revisionTipTimer = undefined;
|
|
121
121
|
const sync = syncState();
|
|
@@ -128,6 +128,7 @@ export const createSessionIndexSyncRuntime = ({
|
|
|
128
128
|
enriching: sync.enriching,
|
|
129
129
|
},
|
|
130
130
|
occurredAt: now(),
|
|
131
|
+
...(cause === 'change' ? { cause } : {}),
|
|
131
132
|
});
|
|
132
133
|
} catch (error) {
|
|
133
134
|
console.warn('[session-index] onRevisionTip failed:', error);
|
|
@@ -135,7 +136,7 @@ export const createSessionIndexSyncRuntime = ({
|
|
|
135
136
|
}
|
|
136
137
|
};
|
|
137
138
|
|
|
138
|
-
const notify = (immediate = false) => {
|
|
139
|
+
const notify = (immediate = false, cause) => {
|
|
139
140
|
if (stopped && !immediate) return;
|
|
140
141
|
revision += 1;
|
|
141
142
|
if (waiters.size > 0) {
|
|
@@ -144,7 +145,7 @@ export const createSessionIndexSyncRuntime = ({
|
|
|
144
145
|
}
|
|
145
146
|
const sync = syncState();
|
|
146
147
|
if (immediate || (!sync.active && !sync.enriching)) {
|
|
147
|
-
broadcastRevisionTip();
|
|
148
|
+
broadcastRevisionTip(cause);
|
|
148
149
|
} else if (revisionTipTimer === undefined && typeof onRevisionTip === 'function') {
|
|
149
150
|
revisionTipTimer = setTimer(broadcastRevisionTip, REVISION_TIP_THROTTLE_MS);
|
|
150
151
|
}
|
|
@@ -477,7 +478,7 @@ export const createSessionIndexSyncRuntime = ({
|
|
|
477
478
|
|
|
478
479
|
const publishChange = () => {
|
|
479
480
|
if (stopped) return;
|
|
480
|
-
notify(true);
|
|
481
|
+
notify(true, 'change');
|
|
481
482
|
};
|
|
482
483
|
|
|
483
484
|
const waitForChange = (since, { signal, timeoutMs = LONG_POLL_MAX_MS } = {}) => {
|
|
@@ -82,6 +82,7 @@ describe('session index background sync runtime', () => {
|
|
|
82
82
|
expect(isFullyIdle(runtime)).toBe(true);
|
|
83
83
|
expect(tips).toHaveBeenCalledTimes(8);
|
|
84
84
|
expect(tips.mock.calls.map(([tip]) => tip.revision)).toEqual(revisionsAtDelivery);
|
|
85
|
+
for (const [tip] of tips.mock.calls) expect(tip).not.toHaveProperty('cause');
|
|
85
86
|
expect(tips.mock.lastCall[0]).toMatchObject({ revision: runtime.snapshot().revision, sync: { active: false, enriching: false } });
|
|
86
87
|
expect((await final).revision).toBe(runtime.snapshot().revision);
|
|
87
88
|
expect(vi.getTimerCount()).toBe(0);
|
|
@@ -107,8 +108,10 @@ describe('session index background sync runtime', () => {
|
|
|
107
108
|
});
|
|
108
109
|
runtime.enqueue(['/repo']);
|
|
109
110
|
expect(vi.getTimerCount()).toBe(1);
|
|
111
|
+
expect(tips.mock.lastCall[0]).not.toHaveProperty('cause');
|
|
110
112
|
runtime.publishChange();
|
|
111
113
|
expect(tips).toHaveBeenCalledTimes(2);
|
|
114
|
+
expect(tips.mock.lastCall[0]).toMatchObject({ cause: 'change', sync: { active: true } });
|
|
112
115
|
expect(tips.mock.lastCall[0].revision).toBe(runtime.snapshot().revision);
|
|
113
116
|
expect(vi.getTimerCount()).toBe(0);
|
|
114
117
|
runtime.enqueue(['/repo/second']);
|
|
@@ -118,6 +121,7 @@ describe('session index background sync runtime', () => {
|
|
|
118
121
|
const stoppedRevision = runtime.snapshot().revision;
|
|
119
122
|
expect(tips).toHaveBeenCalledTimes(3);
|
|
120
123
|
expect(tips.mock.lastCall[0]).toMatchObject({ revision: stoppedRevision, sync: { active: false, enriching: false } });
|
|
124
|
+
expect(tips.mock.lastCall[0]).not.toHaveProperty('cause');
|
|
121
125
|
await expect(final).resolves.toMatchObject({ revision: stoppedRevision, sync: { active: false, failedDirectories: ['/repo', '/repo/second'] } });
|
|
122
126
|
expect(vi.getTimerCount()).toBe(0);
|
|
123
127
|
releaseReady(true);
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t}from"./runtime-fetch-WgH0pROs.js";import{it as n,nt as r,rt as i}from"./vendor-base-ui-CdzJ6My_.js";import{_ as a}from"./useUIStore-CEqU9Ujv.js";import{n as o}from"./vendor-react-BP2cRVqX.js";import{a as s,i as c}from"./vendor-pierre-diffs-DPBtNDJ5.js";import{n as l}from"./vendor-reactuses-core-BpfIZ1tg.js";import{f as u,r as d,t as f}from"./button-CWSs9Baz.js";import{n as p,t as m}from"./useThemeSystem-8jhE4Zyk.js";import{n as h}from"./Icon-BCFeHDWx.js";import{n as g,t as _}from"./dialog-BMa16qrs.js";import{s as v,v as y}from"./image-loading-Bj11k4gM.js";import{i as b,t as x}from"./appThemeRegistry-BhVqv80m.js";import{n as S}from"./MarkdownRenderer-DpB0hJ_E.js";import{l as C}from"./markdown-worker-DFNZ3KJ_.js";import{n as w}from"./useEffectiveDirectory-fANUMttq.js";import{i as T,n as E}from"./markdownTheme-CV7_0QAL.js";import{t as D}from"./ImageLoadingPlaceholder-DEpMJXzV.js";import{_ as O,d as k,f as A,g as j,h as M,l as N,m as P,n as F,p as I,r as L,s as R,t as z,u as ee}from"./useWorkerHighlightedLines-D1io7Q4t.js";import{t as B}from"./vendor-tanstack-react-virtual-B_EO--9t.js";var V=o(),H=e(n(),1),U=i(),W=80,G=20,te=H.memo(e=>{let t=(0,V.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}=p(),u;t[0]===l?u=t[1]:(u=E(l),t[0]=l,t[1]=u);let d=u,f;t[2]===n?f=t[3]:(f=n.map(ie).join(`
|
|
2
|
-
`),t[2]=n,t[3]=f);let m=z(f,r);if(!(n.length>W)){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]!==m||t[8]!==o||t[9]!==n||t[10]!==c){let e;t[12]!==m||t[13]!==o||t[14]!==c?(e=(e,t)=>(0,U.jsx)(re,{line:e,html:m?.[t],showLineNumbers:c,style:o?.(e)},t),t[12]=m,t[13]=o,t[14]=c,t[15]=e):e=t[15],i=n.map(e),t[7]=m,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,U.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 h;return t[19]!==m||t[20]!==o||t[21]!==n||t[22]!==s||t[23]!==c||t[24]!==d?(h=(0,U.jsx)(ne,{lines:n,highlighted:m,syntaxVars:d,maxHeight:s,showLineNumbers:c,lineStyles:o}),t[19]=m,t[20]=o,t[21]=n,t[22]=s,t[23]=c,t[24]=d,t[25]=h):h=t[25],h});te.displayName=`VirtualizedCodeBlock`;var ne=H.memo(({lines:e,highlighted:t,syntaxVars:n,maxHeight:r,showLineNumbers:i,lineStyles:a})=>{let o=H.useRef(null),s=`min(${e.length*G}px, ${r})`,c=B({count:e.length,getScrollElement:()=>o.current,estimateSize:()=>G,overscan:20}),l=c.getVirtualItems();return(0,U.jsx)(`div`,{ref:o,className:`typography-code font-mono w-full min-w-0`,style:{...n,height:s,maxHeight:r,overflow:`auto`},children:(0,U.jsx)(`div`,{style:{height:c.getTotalSize(),position:`relative`},children:l.map(n=>{let r=e[n.index];return r?(0,U.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,U.jsx)(re,{line:r,html:t?.[n.index],showLineNumbers:i,style:a?.(r)})},n.index):null})})})});ne.displayName=`VirtualizedRows`;var re=H.memo(e=>{let t=(0,V.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,U.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,U.jsx)(`div`,{className:`flex-1 min-w-0`,children:n.isInfo?(0,U.jsx)(`div`,{className:`whitespace-pre-wrap break-words text-muted-foreground/70 italic`,children:n.text}):r===void 0?(0,U.jsx)(`div`,{className:`whitespace-pre`,children:n.text}):(0,U.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,U.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});re.displayName=`VirtualizedCodeBlock.Row`;function ie(e){return e.text}var ae=H.memo(function({jsonString:e,className:t,maxHeight:n=`100%`,initiallyExpandedDepth:r=2}){let{t:i}=u(),a=H.useRef(null),[o,s]=H.useState(null),c=H.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=H.useCallback(()=>{a.current?.expandAll()},[]),d=H.useCallback(()=>{a.current?.collapseAll()},[]);return o?(0,U.jsx)(`div`,{className:t,children:(0,U.jsxs)(`div`,{className:`rounded-md border border-[var(--interactive-border)] bg-[var(--syntax-base-background)] p-4`,children:[(0,U.jsx)(`div`,{className:`mb-1 font-medium text-[var(--surface-foreground)]`,children:i(`jsonTreeView.error.invalidJsonTitle`)}),(0,U.jsx)(`div`,{className:`font-mono text-xs text-[var(--surface-mutedForeground)]`,children:o})]})}):c===null?null:(0,U.jsxs)(`div`,{className:t,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-1 border-b border-[var(--interactive-border)] px-2 py-1`,children:[(0,U.jsxs)(f,{variant:`ghost`,size:`xs`,onClick:l,className:`gap-1 text-xs text-muted-foreground`,children:[(0,U.jsx)(h,{name:`arrow-down-s`,className:`h-3 w-3`}),i(`jsonTreeView.actions.expandAll`)]}),(0,U.jsxs)(f,{variant:`ghost`,size:`xs`,onClick:d,className:`gap-1 text-xs text-muted-foreground`,children:[(0,U.jsx)(h,{name:`arrow-up-s`,className:`h-3 w-3`}),i(`jsonTreeView.actions.collapseAll`)]})]}),(0,U.jsx)(`div`,{className:`bg-[var(--syntax-base-background)] py-1`,style:{maxHeight:n,overflow:`auto`},children:(0,U.jsx)(L,{ref:a,data:c,maxHeight:n,initiallyExpandedDepth:r})})]})}),oe=class extends Error{key;params;constructor(e,t){super(e),this.name=`MermaidLoadFailure`,this.key=e,this.params=t}},K=(e,t)=>new oe(e,t),se=e=>e instanceof oe,ce=e=>e+1,q=(e,t)=>e===t,J=e=>{let t=e.indexOf(`,`);if(t<0)throw K(`chat.toolOutputDialog.mermaid.dataUrlMalformed`);let n=e.slice(0,t).toLowerCase(),r=e.slice(t+1);return n.includes(`;base64`)?atob(r):decodeURIComponent(r)},le=e=>Promise.resolve().then(()=>J(e)),Y=1,ue=56,X=(e,t,n)=>Math.min(n,Math.max(t,e)),de=({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)>=ue&&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`},fe=(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)}},pe=(e,t)=>{let n=t.minScale??Y,r=t.maxScale??5,i=X(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:X(e.x,-a,a),y:X(e.y,-o,o)}},me=(e,t,n,r,i)=>{let a=X(t,i.minScale??Y,i.maxScale??5),o=a/e.scale;return pe({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)},he=(e,t,n)=>pe({...e,x:e.x+t.x,y:e.y+t.y},n),ge=(e,t,n,r,i,a)=>{let o=X(r,a.minScale??Y,a.maxScale??5),s=o/e.scale;return pe({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)},Z=500,_e=24,ve=(e,t={})=>{let n=t.target??(typeof document>`u`?null:document);if(!n)return()=>{};let r=t.durationMs??Z,i=t.maxDistance??_e,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},ye=(e,t,n={})=>{ve(e,n),t()},be=e(r(),1);function xe(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 Se(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=xe(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 Ce(e){let t=(0,V.c)(12),{onClose:n,isMobile:r,size:i}=e,{t:a}=u(),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,U.jsx)(h,{name:`close`,className:`size-5`}),t[5]=c):c=t[5];let l;t[6]!==n||t[7]!==s?(l=(0,U.jsx)(f,{variant:`mobileGlass`,size:`mobileIcon`,"aria-label":s,onClick:n,children:c}),t[6]=n,t[7]=s,t[8]=l):l=t[8];let d;return t[9]!==o||t[10]!==l?(d=(0,U.jsx)(`div`,{className:`absolute right-3 z-20`,style:o,children:l}),t[9]=o,t[10]=l,t[11]=d):d=t[11],d}function we(e){let t=(0,V.c)(25),{open:n,title:r,kind:i,source:a,isMobile:o,onOpenChange:s,children:c}=e,u=H.useRef(null),d=H.useRef(null),f=H.useRef(!1),[p,m]=H.useState(!1),h;t[0]!==s||t[1]!==a?(h=()=>{if(f.current)return;f.current=!0,d.current?.();let e=u.current?.querySelector(`[data-preview-transition-target]`)??null;d.current=Se(e?.dataset.previewReturn===`false`?void 0:a,e,u.current,!0,()=>{m(!0),s(!1)})},t[0]=s,t[1]=a,t[2]=h):h=t[2];let g=l(h),_=`${i}-preview`,v=n&&!p&&o,y;t[3]!==g||t[4]!==_||t[5]!==v?(y={id:_,active:v,layer:`overlay`,onBack:g,surfaceRef:u},t[3]=g,t[4]=_,t[5]=v,t[6]=y):y=t[6],b(y);let x,S;if(t[7]!==p||t[8]!==n||t[9]!==a?(x=()=>{if(!n){m(!1),f.current=!1;return}if(p)return;let e=u.current,t=document.activeElement instanceof HTMLElement?document.activeElement:null;return e?.querySelector(`button`)?.focus({preventScroll:!0}),d.current=Se(a,e?.querySelector(`[data-preview-transition-target]`)??null,e,!1),()=>{d.current?.(),d.current=null,f.current=!1,t?.isConnected&&t.focus({preventScroll:!0})}},S=[p,n,a],t[7]=p,t[8]=n,t[9]=a,t[10]=x,t[11]=S):(x=t[10],S=t[11]),H.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[12]===C?w=t[13]:(w={backgroundColor:C,color:`var(--oc-media-preview-foreground)`},t[12]=C,t[13]=w);let T;t[14]===g?T=t[15]:(T=e=>{if(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[14]=g,t[15]=T);let E;t[16]!==c||t[17]!==g?(E=c(g),t[16]=c,t[17]=g,t[18]=E):E=t[18];let D;return t[19]!==i||t[20]!==E||t[21]!==w||t[22]!==T||t[23]!==r?(D=(0,be.createPortal)((0,U.jsx)(`div`,{ref:u,role:`dialog`,"aria-modal":`true`,"aria-label":r,"data-media-preview":i,"data-page-scroll-lock":`true`,tabIndex:-1,className:`fixed inset-0 z-50 overflow-hidden select-none`,style:w,onClick:Te,onKeyDown:T,children:E}),document.body),t[19]=i,t[20]=E,t[21]=w,t[22]=T,t[23]=r,t[24]=D):D=t[24],D}function Te(e){e.preventDefault(),e.stopPropagation()}var Ee=500,De=400,Q=(e,t)=>new oe(e,t),Oe=e=>{let t=`h-3.5 w-3.5 flex-shrink-0`,n=e.toLowerCase();return n===`reasoning`?(0,U.jsx)(h,{name:`brain-ai-3`,className:t}):n===`image-preview`?(0,U.jsx)(h,{name:`file-image`,className:t}):n===`mermaid-preview`?(0,U.jsx)(h,{name:`file-list-2`,className:t}):n===`edit`||n===`multiedit`||n===`apply_patch`||n===`str_replace`||n===`str_replace_based_edit_tool`?(0,U.jsx)(h,{name:`pencil-ai`,className:t}):n===`write`||n===`create`||n===`file_write`||n===`read`||n===`view`||n===`file_read`||n===`cat`?(0,U.jsx)(h,{name:`file-pdf`,className:t}):n===`bash`||n===`shell`||n===`cmd`||n===`terminal`?(0,U.jsx)(h,{name:`terminal-box`,className:t}):n===`list`||n===`ls`||n===`dir`||n===`list_files`?(0,U.jsx)(h,{name:`folder-6`,className:t}):n===`search`||n===`grep`||n===`find`||n===`ripgrep`?(0,U.jsx)(h,{name:`search`,className:t}):n===`glob`?(0,U.jsx)(h,{name:`file-search`,className:t}):n===`fetch`||n===`curl`||n===`wget`||n===`webfetch`?(0,U.jsx)(h,{name:`global`,className:t}):n===`web-search`||n===`websearch`||n===`search_web`||n===`google`||n===`bing`||n===`duckduckgo`?(0,U.jsx)(h,{name:`search`,className:t}):n===`todowrite`||n===`todoread`?(0,U.jsx)(h,{name:`list-check-3`,className:t}):n.startsWith(`git`)?(0,U.jsx)(h,{name:`git-branch`,className:t}):(0,U.jsx)(h,{name:`tools`,className:t})},ke={style:{background:`transparent`,backgroundColor:`transparent`,fontSize:`inherit`}},Ae={download:!1,copy:!1,showPanZoomControls:!0},je=`
|
|
3
|
-
[data-diff-header],
|
|
4
|
-
[data-diff] {
|
|
5
|
-
[data-separator] {
|
|
6
|
-
height: 24px !important;
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
`,$={hunkLineCount:50,lineHeight:24,diffHeaderHeight:44,hunkSeparatorHeight:24,spacing:0},Me=()=>{let e=(0,V.c)(22),t=m(),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=y(!1),e[0]=n):n=e[0];let r=n,i;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(i=y(!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 h=p,g,_;e[12]!==h||e[13]!==f?(g=()=>{x(f),x(h)},_=[h,f],e[12]=h,e[13]=f,e[14]=g,e[15]=_):(g=e[14],_=e[15]),H.useEffect(g,_);let v=t?.currentTheme.metadata.variant??`light`,b;e[16]!==h.metadata.id||e[17]!==f.metadata.id?(b={light:f.metadata.id,dark:h.metadata.id},e[16]=h.metadata.id,e[17]=f.metadata.id,e[18]=b):b=e[18];let S=v===`dark`?`dark`:`light`,C;return e[19]!==b||e[20]!==S?(C={theme:b,themeType:S},e[19]=b,e[20]=S,e[21]=C):C=e[21],C},Ne=()=>({width:typeof window<`u`?window.innerWidth:0,height:typeof window<`u`?window.innerHeight:0}),Pe=e=>{let t=(0,V.c)(3),[n,r]=H.useState(Ne),i,a;return t[0]===e?(i=t[1],a=t[2]):(i=()=>{if(!e||typeof window>`u`)return;let t=()=>{r(Ne())};return t(),window.addEventListener(`resize`,t),()=>{window.removeEventListener(`resize`,t)}},a=[e],t[0]=e,t[1]=i,t[2]=a),H.useEffect(i,a),n},Fe=({popup:e,onOpenChange:t,isMobile:n})=>{let{t:r}=u(),i=m(),a=w()??``,o=H.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]=H.useState(()=>{let t=e.image?.index??o.findIndex(t=>t.url===e.image?.url);return t>=0&&t<o.length?t:0}),p=e.previewSource instanceof HTMLImageElement?e.previewSource:void 0,g=p?.naturalWidth&&p.naturalHeight?{width:p.naturalWidth,height:p.naturalHeight}:null,[_,y]=H.useState(g),[b,x]=H.useState(!!g),S=e.open,C=Pe(e.open),E=H.useRef(null),k=H.useRef(null),A=H.useRef(null),j=H.useRef(null),M=H.useRef({scale:1,x:0,y:0}),N=H.useRef({image:{width:1,height:1},viewport:{width:1,height:1},maxScale:5}),P=H.useRef(new Map),F=H.useRef(null),I=H.useRef(null),L=H.useRef(null),R=H.useRef(null),z=H.useRef(0);H.useEffect(()=>{e.open&&(z.current=typeof performance<`u`?performance.now():Date.now())},[e.open]);let ee=l(()=>(typeof performance<`u`?performance.now():Date.now())-z.current<De),B=l(()=>{let e=F.current;e?.longPressTimer&&(clearTimeout(e.longPressTimer),e.longPressTimer=null)});H.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 V=o[s]??o[0]??e.image,W=v(V?.url??``,a,`preview`),G=W.source||(V?.url===e.image?.url?p?.currentSrc:``)||``,te=`${W.key}\n${G}`,[ne,re]=H.useState(``),ie=!!(W.error||ne===te),ae=l(()=>re(te)),oe=V?.filename||e.title,K=o.length>1,se=l(()=>{let t=V?.url??e.image?.url??``;if(!t&&!G)return;let n=V?.mimeType||e.image?.mimeType,r=V?.filename||e.image?.filename||e.title,i=A.current;if(i&&i.naturalWidth>0){O(i,n||`image/png`).then(e=>{T({sourceUrl:t||G,displayUrl:G||i.currentSrc||i.src||void 0,filename:r,mimeType:n,effectiveDirectory:a,prefetchedBlob:e??void 0})});return}T({sourceUrl:t||G,displayUrl:G||void 0,filename:r,mimeType:n,effectiveDirectory:a})}),ce=l(()=>{o.length<=1||c(e=>(e-1+o.length)%o.length)}),q=l(()=>{o.length<=1||c(e=>(e+1)%o.length)}),J=H.useMemo(()=>{let e={width:Math.max(1,C.width*(n?1:.8)),height:Math.max(1,C.height*(n?1:.95))};return _?fe(_,e):e},[_,n,C.height,C.width]),le=H.useMemo(()=>({image:J,viewport:{width:Math.max(1,C.width),height:Math.max(1,C.height)},maxScale:5}),[J,C.height,C.width]),Y=l((e,t=!1)=>{let n=pe(e,N.current);M.current=n,R.current={transform:n,animate:t},!(L.current!==null||typeof window>`u`)&&(L.current=window.requestAnimationFrame(()=>{L.current=null;let e=R.current;R.current=null,e&&(A.current&&(A.current.style.transition=e.animate?`transform 180ms cubic-bezier(0.22, 1, 0.36, 1)`:`none`,A.current.style.transform=`translate3d(${e.transform.x}px, ${e.transform.y}px, 0) scale(${e.transform.scale})`),j.current&&(j.current.textContent=`${Math.round(e.transform.scale*100)}%`),E.current&&(E.current.style.cursor=e.transform.scale>1?`grab`:`zoom-in`))}))}),ue=l((e=!0)=>{Y({scale:1,x:0,y:0},e)}),X=l(()=>({x:N.current.viewport.width/2,y:N.current.viewport.height/2})),Z=l((e,t,n=!1)=>{Y(me(M.current,e,t,X(),N.current),n)}),_e=l(e=>{if(M.current.scale>1.01){ue(!0);return}Z(2,e,!0)}),ve=l(e=>{if(!(n||e.defaultPrevented)){if(e.key===`+`||e.key===`=`){e.preventDefault(),Z(M.current.scale*1.4,X(),!0);return}if(e.key===`-`||e.key===`_`){e.preventDefault(),Z(M.current.scale/1.4,X(),!0);return}if(e.key===`0`){e.preventDefault(),ue(!0);return}if(e.key===`ArrowLeft`&&K){e.preventDefault(),ce();return}e.key===`ArrowRight`&&K&&(e.preventDefault(),q())}});H.useEffect(()=>{if(e.open)return window.addEventListener(`keydown`,ve),()=>{window.removeEventListener(`keydown`,ve)}},[e.open]),H.useEffect(()=>{L.current!==null&&window.cancelAnimationFrame(L.current),L.current=null,R.current=null;let t=V?.url===e.image?.url?p:void 0;y(t?.naturalWidth&&t.naturalHeight?{width:t.naturalWidth,height:t.naturalHeight}:null),x(!!t?.naturalWidth),M.current={scale:1,x:0,y:0},P.current.clear(),F.current=null,I.current=null,A.current&&(A.current.style.transform=`translate3d(0, 0, 0) scale(1)`),j.current&&(j.current.textContent=`100%`)},[V?.url,G,e.image?.url,p]),H.useLayoutEffect(()=>{N.current=le;let e=pe(M.current,N.current);M.current=e,A.current&&(A.current.style.transition=`none`,A.current.style.transform=`translate3d(${e.x}px, ${e.y}px, 0) scale(${e.scale})`)},[le]),H.useEffect(()=>()=>{L.current!==null&&window.cancelAnimationFrame(L.current),L.current=null,R.current=null;let e=F.current;e?.longPressTimer&&(clearTimeout(e.longPressTimer),e.longPressTimer=null)},[]);let be=l(e=>{if(n)return;e.preventDefault();let t={x:e.clientX,y:e.clientY},r=Math.exp(-e.deltaY*.002);Z(M.current.scale*r,t)});H.useEffect(()=>{let e=E.current;if(!(!S||n||!e))return e.addEventListener(`wheel`,be,{passive:!1}),()=>e.removeEventListener(`wheel`,be)},[n,S]);let xe=l(e=>{n||(e.preventDefault(),_e({x:e.clientX,y:e.clientY}))}),Se=l(e=>{e.preventDefault(),e.stopPropagation()}),we=l(e=>{e.pointerType!==`mouse`&&e.preventDefault(),e.currentTarget.setPointerCapture(e.pointerId);let t={x:e.clientX,y:e.clientY};if(P.current.set(e.pointerId,{point:t,pointerType:e.pointerType}),P.current.size===1){if(F.current={pointerId:e.pointerId,pointerType:e.pointerType,start:t,transform:M.current,moved:!1,targetWasCanvas:e.target===e.currentTarget,suppressTap:!1,longPressTimer:null,longPressTriggered:!1},e.pointerType!==`mouse`||M.current.scale<=1.01){let t=F.current;t.longPressTimer=setTimeout(()=>{!F.current||F.current.pointerId!==e.pointerId||F.current.moved||(F.current.longPressTriggered=!0,F.current.suppressTap=!0,se())},Ee)}E.current&&M.current.scale>1&&(E.current.style.cursor=`grabbing`);return}B(),F.current&&(F.current.suppressTap=!0,F.current.longPressTriggered=!1);let n=Array.from(P.current.values()).slice(0,2).map(e=>e.point),r=n[1].x-n[0].x,i=n[1].y-n[0].y;I.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:M.current},F.current&&(F.current.suppressTap=!0)}),Te=l(e=>{if(!P.current.has(e.pointerId))return;e.preventDefault();let t={x:e.clientX,y:e.clientY};if(P.current.set(e.pointerId,{point:t,pointerType:e.pointerType}),P.current.size>=2&&I.current){B();let e=Array.from(P.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=I.current.transform.scale*Math.hypot(t,n)/I.current.distance;Y(ge(I.current.transform,I.current.midpoint,r,i,X(),N.current));return}let n=F.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,B()),n.transform.scale>1.01&&Y(he(n.transform,r,N.current))}),Q=l((e,r)=>{let i=F.current,a=P.current.get(e.pointerId)?{x:e.clientX,y:e.clientY}:void 0;if(P.current.delete(e.pointerId),i?.pointerId===e.pointerId&&(B(),a&&!i.longPressTriggered)){let e=de({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:K});if(e===`next`&&q(),e===`previous`&&ce(),e===`close`){if(ee())return;if(n&&i.pointerType!==`mouse`){ye(a,()=>t(!1));return}t(!1)}}if(P.current.size===1){let[e,t]=Array.from(P.current.entries())[0];F.current={pointerId:e,pointerType:t.pointerType,start:t.point,transform:M.current,moved:!1,targetWasCanvas:!1,suppressTap:!0,longPressTimer:null,longPressTriggered:!1},I.current=null}else P.current.size===0&&(F.current=null,I.current=null,E.current&&(E.current.style.cursor=M.current.scale>1?`grab`:`zoom-in`));e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId)}),Oe=l(e=>{e.preventDefault(),e.stopPropagation(),se()}),ke=l(e=>{let t=e.currentTarget;t.naturalWidth>0&&t.naturalHeight>0&&y(e=>e?.width===t.naturalWidth&&e.height===t.naturalHeight?e:{width:t.naturalWidth,height:t.naturalHeight}),x(!0)});if(!S||!V||typeof document>`u`)return null;let Ae=i?.currentTheme.metadata.variant===`dark`,je=Ae?`border-foreground/15 bg-foreground/10 text-foreground`:`border-background/15 bg-background/10 text-background`,$=Ae?`text-foreground hover:bg-foreground/15 hover:text-foreground`:`text-background hover:bg-background/15 hover:text-background`;return(0,U.jsxs)(`div`,{ref:k,className:`absolute inset-0 overflow-hidden select-none`,tabIndex:-1,onClick:Se,children:[(0,U.jsx)(Ce,{onClose:()=>t(!1),isMobile:n,size:J}),(0,U.jsxs)(`div`,{ref:E,className:`absolute inset-0 flex items-center justify-center overflow-hidden touch-none [overscroll-behavior:none]`,onDoubleClick:n?void 0:xe,onContextMenu:Oe,onPointerDown:we,onPointerMove:Te,onPointerUp:e=>Q(e,!1),onPointerCancel:e=>Q(e,!0),onLostPointerCapture:e=>Q(e,!0),children:[!b&&!ie&&(0,U.jsx)(`div`,{className:`pointer-events-none absolute inset-0 flex items-center justify-center`,role:`status`,children:(0,U.jsx)(D,{className:`aspect-square w-64 max-w-[80vw] rounded-xl`})}),ie?(0,U.jsx)(`p`,{role:`status`,className:`px-6 text-center typography-ui-label`,children:r(`filesView.error.readFileFailed`)}):(0,U.jsx)(`img`,{ref:A,"data-preview-transition-target":``,"data-preview-return":V?.url===e.image?.url,src:G||void 0,alt:oe??``,className:d(`block max-w-none object-contain will-change-transform`,b?`opacity-100`:`opacity-0`),style:{width:`${J.width}px`,height:`${J.height}px`},loading:`lazy`,draggable:!1,onLoad:ke,onError:ae})]}),(0,U.jsx)(`div`,{className:`pointer-events-none absolute inset-x-0 bottom-0 z-10 flex justify-center px-2 pb-2`,children:(0,U.jsxs)(`div`,{className:d(`pointer-events-auto flex h-10 items-center gap-0.5 rounded-full border px-1 shadow-lg backdrop-blur-xl`,je),onPointerDown:e=>e.stopPropagation(),onDoubleClick:e=>e.stopPropagation(),children:[K&&(0,U.jsx)(f,{variant:`ghost`,size:`icon`,className:d(`size-8 rounded-full`,$),onClick:ce,"aria-label":r(`chat.toolOutputDialog.image.previousAria`),title:r(`chat.toolOutputDialog.image.previousAria`),children:(0,U.jsx)(h,{name:`arrow-left-s`,className:`size-5`})}),K&&(0,U.jsxs)(`span`,{className:`min-w-10 px-1 text-center typography-micro tabular-nums opacity-80`,children:[s+1,` / `,o.length]}),K&&(0,U.jsx)(f,{variant:`ghost`,size:`icon`,className:d(`size-8 rounded-full`,$),onClick:q,"aria-label":r(`chat.toolOutputDialog.image.nextAria`),title:r(`chat.toolOutputDialog.image.nextAria`),children:(0,U.jsx)(h,{name:`arrow-right-s`,className:`size-5`})}),K&&(0,U.jsx)(`span`,{className:`mx-0.5 h-4 w-px bg-current opacity-15`,"aria-hidden":`true`}),(0,U.jsx)(f,{variant:`ghost`,size:`icon`,className:d(`size-8 rounded-full`,$),onClick:()=>Z(M.current.scale/1.4,X(),!0),"aria-label":r(`chat.toolOutputDialog.image.zoomOutAria`),title:r(`chat.toolOutputDialog.image.zoomOutAria`),children:(0,U.jsx)(h,{name:`subtract`,className:`size-4`})}),(0,U.jsxs)(f,{variant:`ghost`,size:`sm`,className:d(`h-8 min-w-14 rounded-full px-2 tabular-nums`,$),onClick:()=>ue(!0),"aria-label":r(`chat.toolOutputDialog.image.resetZoomAria`),title:r(`chat.toolOutputDialog.image.resetZoomAria`),children:[(0,U.jsx)(h,{name:`restart`,className:`size-3.5`}),(0,U.jsx)(`span`,{ref:j,children:`100%`})]}),(0,U.jsx)(f,{variant:`ghost`,size:`icon`,className:d(`size-8 rounded-full`,$),onClick:()=>Z(M.current.scale*1.4,X(),!0),"aria-label":r(`chat.toolOutputDialog.image.zoomInAria`),title:r(`chat.toolOutputDialog.image.zoomInAria`),children:(0,U.jsx)(h,{name:`add`,className:`size-4`})})]})})]})},Ie=H.memo(e=>{let t=(0,V.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:je},t[0]=i.theme,t[1]=i.themeType,t[2]=o,t[3]=s):s=t[3];let l;return t[4]!==a||t[5]!==s?(l=(0,U.jsx)(`div`,{className:`typography-code`,children:(0,U.jsx)(c,{patch:a,metrics:$,options:s,className:`block w-full`})}),t[4]=a,t[5]=s,t[6]=l):l=t[6],l});Ie.displayName=`DialogUnifiedDiff`;var Le=H.memo(e=>{let t=(0,V.c)(29),{popup:n,pierreThemeConfig:r}=e,i;t[0]===n.content?i=t[1]:(i=N(n.content),t[0]=n.content,t[1]=i);let a=i,o=n.metadata?.input,c;t[2]===o?c=t[3]:(c=typeof o==`object`&&o?o:{},t[2]=o,t[3]=c);let l=c,u=typeof l.offset==`number`?l.offset:0,d=typeof l.file_path==`string`?l.file_path:typeof l.filePath==`string`?l.filePath:typeof l.path==`string`?l.path:`read-output`,f;t[4]===a.lines?f=t[5]:(f=a.lines.map(Be).join(`
|
|
10
|
-
`),t[4]=a.lines,t[5]=f);let p=f,m;t[6]!==d||t[7]!==n.language?(m=n.language||C(d)||`text`,t[6]=d,t[7]=n.language,t[8]=m):m=t[8];let h=m,g;t[9]===a.lines?g=t[10]:(g=a.lines.some(Ve),t[9]=a.lines,t[10]=g);let _=g,v;if(t[11]!==_||t[12]!==u||t[13]!==a.lines||t[14]!==a.type){v=[];let e=u;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]=u,t[13]=a.lines,t[14]=a.type,t[15]=v}else v=t[15];let y=v;if(a.type===`file`){let e=h||void 0,n;t[16]!==p||t[17]!==d||t[18]!==e?(n={name:d,contents:p,lang:e},t[16]=p,t[17]=d,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,U.jsx)(s,{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]!==h?(b=(0,U.jsx)(te,{lines:y,language:h,maxHeight:`70vh`}),t[26]=y,t[27]=h,t[28]=b):b=t[28],b});Le.displayName=`DialogReadContent`;var Re=({popup:e,onOpenChange:n,isMobile:r})=>{let{t:i}=u(),a=m(),o=H.useMemo(()=>a?.currentTheme.metadata.variant===`dark`?a.currentTheme:a?.availableThemes.find(e=>e.metadata.id===a.darkThemeId&&e.metadata.variant===`dark`)??y(!0),[a?.currentTheme,a?.availableThemes,a?.darkThemeId]),[s,c]=H.useState(e.mermaid?.source||``),[l,d]=H.useState(e.mermaid?.source?`ready`:`idle`),[f,p]=H.useState(``),g=H.useRef(0),_=H.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},[]),v=H.useCallback(async()=>{let n=e.mermaid,r=ce(g.current);if(g.current=r,!n?.url){d(`error`),p(i(`chat.toolOutputDialog.mermaid.missingSource`));return}if(n.source){c(n.source),d(`ready`),p(``);return}d(`loading`),p(``);let a;if(n.url.startsWith(`data:`))a=le(n.url);else if(n.url.toLowerCase().startsWith(`file://`)){let e=_(n.url);a=e?t(`/api/fs/raw`,{query:{path:e}}).then(e=>e.ok?e.text():Promise.reject(Q(`chat.toolOutputDialog.mermaid.readFileFailedWithStatus`,{status:e.status}))):Promise.reject(Q(`chat.toolOutputDialog.mermaid.invalidLocalPath`))}else{let e=typeof URL.canParse==`function`&&URL.canParse(n.url,window.location.origin)?new URL(n.url,window.location.origin):null;a=!e||e.protocol!==`http:`&&e.protocol!==`https:`?Promise.reject(Q(`chat.toolOutputDialog.mermaid.unsupportedUrlProtocol`)):fetch(e.toString()).then(e=>e.ok?e.text():Promise.reject(Q(`chat.toolOutputDialog.mermaid.loadFailedWithStatus`,{status:e.status})))}await a.then(e=>{q(g.current,r)&&(c(e),d(`ready`))}).catch(e=>{q(g.current,r)&&(d(`error`),p(se(e)?i(e.key,e.params):i(`chat.toolOutputDialog.mermaid.loadFailed`)))})},[_,e.mermaid,i]);H.useEffect(()=>{!e.open||!e.mermaid||v()},[v,e.mermaid,e.open]);let b=`\`\`\`mermaid\n${s}\n\`\`\``;return!e.open||typeof document>`u`?null:(0,U.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,onClick:e=>{e.target===e.currentTarget&&n(!1)},children:(0,U.jsxs)(`div`,{"data-mermaid-preview":`true`,"data-preview-transition-target":``,className:`relative flex min-h-0 flex-col overflow-hidden`,style:{width:r?`100%`:`80%`,height:r?`100%`:`95%`},onMouseDown:e=>e.stopPropagation(),children:[(0,U.jsx)(Ce,{onClose:()=>n(!1),isMobile:r}),(0,U.jsx)(`div`,{className:`relative min-h-0 flex-1 overflow-hidden`,children:(0,U.jsxs)(`div`,{className:`h-full overflow-hidden`,children:[l===`loading`&&(0,U.jsxs)(`div`,{className:`h-full min-h-28 flex items-center justify-center gap-2 text-muted-foreground typography-meta`,children:[(0,U.jsx)(h,{name:`loader-4`,className:`h-4 w-4 animate-spin`}),(0,U.jsx)(`span`,{children:i(`chat.toolOutputDialog.mermaid.loading`)})]}),l===`error`&&(0,U.jsxs)(`div`,{className:`rounded-xl border p-3 space-y-3`,style:{backgroundColor:`var(--status-error-background)`,borderColor:`var(--status-error-border)`},children:[(0,U.jsx)(`p`,{className:`typography-markdown`,style:{color:`var(--status-error)`},children:f||i(`chat.toolOutputDialog.mermaid.renderFailed`)}),(0,U.jsx)(`button`,{type:`button`,onClick:()=>{v()},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,U.jsx)(`div`,{className:`h-full`,children:(0,U.jsx)(S,{content:b,variant:`tool`,allowMermaidWheelEvents:!0,className:`markdown-mermaid-fullscreen h-full`,mermaidControls:Ae,mermaidTheme:o,enableFileReferences:!1})})]})})]})})},ze=e=>{let t=(0,V.c)(51),{popup:n,onOpenChange:r,isMobile:i}=e,{t:o}=u(),[c,l]=H.useState(`unified`),f=Me(),p;t[0]===n.open?p=t[1]:(p=()=>{n.open&&l(`unified`)},t[0]=n.open,t[1]=p);let m;if(t[2]!==n.open||t[3]!==n.title?(m=[n.open,n.title],t[2]=n.open,t[3]=n.title,t[4]=m):m=t[4],H.useEffect(p,m),n.image||n.mermaid){let e=n.image?`image`:`mermaid`,a;t[5]!==i||t[6]!==n?(a=e=>n.image?(0,U.jsx)(Fe,{popup:n,onOpenChange:e,isMobile:i}):(0,U.jsx)(Re,{popup:n,onOpenChange:e,isMobile:i}),t[5]=i,t[6]=n,t[7]=a):a=t[7];let o;return t[8]!==i||t[9]!==r||t[10]!==n.open||t[11]!==n.previewSource||t[12]!==n.title||t[13]!==e||t[14]!==a?(o=(0,U.jsx)(we,{open:n.open,title:n.title,kind:e,source:n.previewSource,isMobile:i,onOpenChange:r,children:a}),t[8]=i,t[9]=r,t[10]=n.open,t[11]=n.previewSource,t[12]=n.title,t[13]=e,t[14]=a,t[15]=o):o=t[15],o}let v=n.open,y=i?`w-[95vw] max-w-[95vw]`:`max-w-5xl`,b=i?`[&>button]:right-1`:`[&>button]:top-2.5 [&>button]:right-4`,x;t[16]!==y||t[17]!==b?(x=d(`overflow-hidden flex flex-col min-h-0 pt-3 pb-4 px-4 gap-1`,`[&>button]:top-1.5`,y,b),t[16]=y,t[17]=b,t[18]=x):x=t[18];let w;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(w={maxHeight:`90vh`},t[19]=w):w=t[19];let T;t[20]===n.metadata?T=t[21]:(T=n.metadata?.tool?Oe(n.metadata.tool):(0,U.jsx)(h,{name:`tools`,className:`h-3.5 w-3.5 text-foreground flex-shrink-0`}),t[20]=n.metadata,t[21]=T);let E;t[22]===n.title?E=t[23]:(E=(0,U.jsx)(`span`,{className:`break-words flex-1 leading-tight`,children:n.title}),t[22]=n.title,t[23]=E);let D;t[24]!==c||t[25]!==n.isDiff?(D=n.isDiff&&(0,U.jsx)(F,{mode:c,onModeChange:l,className:`mr-8 flex-shrink-0`}),t[24]=c,t[25]=n.isDiff,t[26]=D):D=t[26];let O;t[27]!==D||t[28]!==T||t[29]!==E?(O=(0,U.jsx)(`div`,{className:`flex-shrink-0 pb-1`,children:(0,U.jsxs)(`div`,{className:`flex items-start gap-2 text-foreground typography-ui-header font-semibold`,children:[T,E,D]})}),t[27]=D,t[28]=T,t[29]=E,t[30]=O):O=t[30];let N;t[31]!==f||t[32]!==n.metadata?(N=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,U.jsxs)(`div`,{className:`border-b border-border/20 p-4 -mx-3`,children:[(0,U.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,U.jsx)(`div`,{className:`tool-input-surface bg-transparent rounded-xl border border-border/20 mx-3`,children:(0,U.jsx)(j,{language:`bash`,code:r(`command`),style:a.getPopupStyles(),codeStyle:ke.style,wrap:!0})}):(e.tool===`task`||e.tool===`subagent`)&&r(`prompt`)?(0,U.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:a.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,U.jsx)(`div`,{className:`tool-input-surface bg-transparent rounded-xl border border-border/20 mx-3`,children:(0,U.jsx)(s,{file:{name:r(`filePath`)||r(`file_path`)||`new-file`,contents:r(`content`),lang:C(r(`filePath`)||r(`file_path`)||``)||void 0},options:{disableFileHeader:!0,overflow:`wrap`,theme:f.theme,themeType:f.themeType},className:`block w-full`})}):(0,U.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:a.getPopupStyles(),children:R(t,e.tool)})]})})():null,t[31]=f,t[32]=n.metadata,t[33]=N):N=t[33];let L;t[34]!==c||t[35]!==i||t[36]!==f||t[37]!==n||t[38]!==o?(L=n.isDiff?(0,U.jsx)(Ie,{popup:n,diffViewMode:c,pierreThemeConfig:f}):n.content?(0,U.jsx)(`div`,{className:`p-4`,children:(()=>{let e=n.metadata?.tool;return e===`todowrite`||e===`todoread`?I(n.content)||(0,U.jsx)(j,{language:`json`,code:n.content,style:a.getPopupContainerStyles(),codeStyle:ke.style,wrap:!0}):e===`list`?A(n.content)||(0,U.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`?k(n.content,i)||(0,U.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`?ee(n.content,i)||(0,U.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,U.jsx)(`div`,{className:e===`reasoning`?`text-muted-foreground/70`:``,children:(0,U.jsx)(S,{content:n.content,variant:`tool`})}):e===`web-search`||e===`websearch`||e===`search_web`?P(n.content)||(0,U.jsx)(j,{language:`text`,code:n.content,style:a.getPopupContainerStyles(),codeStyle:ke.style,wrap:!0}):e===`read`?(0,U.jsx)(Le,{popup:n,pierreThemeConfig:f}):(n.content?M(n.content):{data:null,isJson:!1}).isJson?(0,U.jsx)(ae,{jsonString:n.content,initiallyExpandedDepth:3,maxHeight:`70vh`}):(0,U.jsx)(j,{language:n.language||`text`,code:n.content,style:a.getPopupContainerStyles(),codeStyle:ke.style,wrap:!0})})()}):(0,U.jsxs)(`div`,{className:`p-8 text-muted-foreground typography-ui-header`,children:[(0,U.jsx)(`div`,{className:`mb-2`,children:o(`chat.toolOutputDialog.commandCompleted`)}),(0,U.jsx)(`div`,{className:`typography-meta`,children:o(`chat.toolOutputDialog.noOutputProduced`)})]}),t[34]=c,t[35]=i,t[36]=f,t[37]=n,t[38]=o,t[39]=L):L=t[39];let z;t[40]!==N||t[41]!==L?(z=(0,U.jsx)(`div`,{className:`flex-1 min-h-0 rounded-xl border border-border/30 bg-muted/10 overflow-hidden`,children:(0,U.jsxs)(`div`,{className:`tool-output-surface h-full max-h-[75vh] overflow-y-auto px-3 pr-4`,children:[N,L]})}),t[40]=N,t[41]=L,t[42]=z):z=t[42];let B;t[43]!==O||t[44]!==z||t[45]!==x?(B=(0,U.jsxs)(g,{className:x,style:w,children:[O,z]}),t[43]=O,t[44]=z,t[45]=x,t[46]=B):B=t[46];let W;return t[47]!==r||t[48]!==n.open||t[49]!==B?(W=(0,U.jsx)(_,{open:v,onOpenChange:r,children:B}),t[47]=r,t[48]=n.open,t[49]=B,t[50]=W):W=t[50],W};function Be(e){return e.text}function Ve(e){return e.lineNumber!==null}export{ze as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/renderMobileApp-hUJNFMKe.js","assets/rolldown-runtime-hePW80VL.js","assets/runtime-auth-BpCQ-dPr.js","assets/runtime-switch-CMiMO5Yj.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-CgwxwfA4.js","assets/vendor-opencode-client-MF2GBrFx.js","assets/vendor-aparajita-capacitor-secure-storage-xol_6BsB.js","assets/capgoAdapter-KNLHDj7G.js","assets/types-BuiqMmh_.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-sonner-ZS8XIOVl.js","assets/vendor-reactuses-core-BpfIZ1tg.js","assets/vendor-lodash-es-DfLbG5Af.js","assets/vendor-js-cookie-hSOiFTtX.js","assets/button-CWSs9Baz.js","assets/store-CG7Ytsg9.js","assets/vendor-class-variance-authority-BLUaYARZ.js","assets/vendor-tailwind-merge-BicNWLTg.js","assets/MobileShareBridge-DHHw00TT.js","assets/MobileDetailNavigation-DqGKTFzT.js","assets/vendor-tanstack-react-query-CdqCAt40.js","assets/useMobileNavigationStore-DRpR2Oyd.js","assets/useAssistantUIStore-OyPm_4M_.js","assets/vendor-zod-Dzk5kdUU.js","assets/vendor-fuse.js-DB5wDJbI.js","assets/Icon-BCFeHDWx.js","assets/rasterizePng-CpK-xCkB.js","assets/AgentAvatar-qLxaEaDh.js","assets/vendor-dicebear-core-CV95S5Pg.js","assets/vendor-dicebear-styles-7lEG-JsF.js","assets/dualLimitLru-D8Sphgua.js","assets/useThemeSystem-8jhE4Zyk.js","assets/dialog-BMa16qrs.js","assets/gitApi-DZSpp5_u.js","assets/useAppFontEffects-BvJWL9Tq.js","assets/desktopHosts-C0e7Nes2.js","assets/desktopRelayRestore-DckkHKsi.js","assets/vendor-simplewebauthn-browser-Dwhcdg_5.js","assets/projectMeta-DlHKE_8C.js","assets/input-CALwaZEB.js","assets/tooltip-CV6dvLBp.js","assets/OverlayScrollbar-BY5HaNrb.js","assets/textarea-ClV5sMS-.js","assets/vendor-framer-motion-D-oiwsxL.js","assets/vendor-dnd-kit-core-5pNnzVdw.js","assets/vendor-dnd-kit-accessibility-COSwgjFs.js","assets/vendor-dnd-kit-sortable-Dm50I0m7.js","assets/speechSettingsQueries-CBrLvvue.js","assets/dropdown-menu.styles-BNwZmBRp.js","assets/image-loading-Bj11k4gM.js","assets/fileQueries-DVpZC5ha.js","assets/useRuntimeAPIs-Cx8S1HLz.js","assets/relay-image-stream-SV0lH6aG.js","assets/image-loading-CObM4tcX.css","assets/sessionChangeSummary-BYoAdclB.js","assets/LoadingImage-BAT9D9wN.js","assets/ImageLoadingPlaceholder-DEpMJXzV.js","assets/sessionChangeSummary-vC84qM3v.css","assets/insertionBoundaries-B3F2vgJn.js","assets/fileMentionTouchSelection-ytHOa8vD.js","assets/appThemeRegistry-BhVqv80m.js","assets/MarkdownRenderer-DpB0hJ_E.js","assets/markdownHeightCache-DXM_5jTe.js","assets/url-nBOUbtV_.js","assets/markdown-worker-DFNZ3KJ_.js","assets/useEffectiveDirectory-fANUMttq.js","assets/FadeInOnReveal-CX8Bkq-l.js","assets/markdownTheme-CV7_0QAL.js","assets/useWorkerHighlightedLines-D1io7Q4t.js","assets/vendor-tanstack-react-virtual-B_EO--9t.js","assets/vendor-cmdk-RDxC-9Iz.js","assets/vendor-aria-hidden-BbL3cEyI.js","assets/sortable-tabs-strip-CscHgCaq.js","assets/vendor-motion-88WXBOBf.js","assets/vendor-legendapp-list-CNxU_ALy.js","assets/useFontPreferences-DqEIKMEW.js","assets/terminalApi-rxsMWL0o.js","assets/MobileTabPageHeader-jFeAz_Z2.js","assets/vendor-codemirror-autocomplete-7c2L_4dM.js","assets/vendor-codemirror-lang-angular-DXOgWEVj.js","assets/vendor-codemirror-lang-json-mLulNbwB.js","assets/vendor-codemirror-lang-markdown-CV1IO6Qs.js","assets/vendor-codemirror-lang-python-YM2WVLHF.js","assets/vendor-codemirror-legacy-modes-DwltVFbT.js","assets/mcpQueries-BAU9FYFF.js","assets/collapsible-ngtoKADo.js","assets/vendor-codemirror-commands-B8KrBQ9B.js","assets/vendor-codemirror-search-ZqtrPLjU.js","assets/vendor-replit-codemirror-vim-DDj0dSVY.js","assets/vendor-codemirror-language-data-Ctd4WxgW.js","assets/projectActions-CWvNGKfA.js","assets/runtimeEndpointReset-BCf2ORY3.js","assets/scheduledTaskNavigation-DQcLqQ52.js","assets/sessionLookup-DxWtYNX-.js","assets/vendor-cron-parser-BmO80h0C.js","assets/runtimeEndpointReset-ByXtaeWD.css","assets/SettingsView-C2-Tug3M.js","assets/vendor-yaml-C9KlJAlj.js","assets/vendor-qrcode-D7jBCyl-.js","assets/vendor-dijkstrajs-BAzPDGZM.js","assets/AssistantView-3Lz_SADb.js","assets/assistant-attachment-cache-B2UAUHUZ.js","assets/src-CdGit3gf.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{t as e}from"./runtimeConfig-DAxmpV5p.js";import{o as t}from"./vendor-aparajita-capacitor-secure-storage-xol_6BsB.js";/* empty css */window.__OPENCHAMBER_RUNTIME_APIS__=e(),t(async()=>{let{renderMobileApp:e}=await import(`./renderMobileApp-hUJNFMKe.js`);return{renderMobileApp:e}},__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,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119])).then(({renderMobileApp:t})=>{t(window.__OPENCHAMBER_RUNTIME_APIS__??e())});
|