@openchambery/web 1.19.0-beta.4 → 1.19.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/assets/{AssistantView-BmrllM8T.js → AssistantView-DCyQwboq.js} +1 -1
  2. package/dist/assets/{ChatContainer-BTOShmJo.js → ChatContainer-C8NGm0Wn.js} +9 -9
  3. package/dist/assets/{ContextPanel-DrOpxE_Z.js → ContextPanel-ebV9_XcJ.js} +3 -3
  4. package/dist/assets/{DiagramView-CkAyvW7S.js → DiagramView-DBgKA_F1.js} +1 -1
  5. package/dist/assets/{MarkdownRendererImpl-B0eBCtyD.js → MarkdownRendererImpl-D8FpFmH6.js} +1 -1
  6. package/dist/assets/{MobileDetailNavigation-DL4SVma_.js → MobileDetailNavigation-5KInSLfK.js} +1 -1
  7. package/dist/assets/{MobileShareBridge-FZ2V3gRM.js → MobileShareBridge-Ce4LpzjB.js} +1 -1
  8. package/dist/assets/{MobileSurface-DeRexDW2.js → MobileSurface-BKbI1HS3.js} +1 -1
  9. package/dist/assets/{MultiRunWindow-D-kO7Hwi.js → MultiRunWindow-cl_F6S0-.js} +1 -1
  10. package/dist/assets/{SettingsView-yNqH1aC2.js → SettingsView-CnP7naQJ.js} +1 -1
  11. package/dist/assets/{SettingsWindow-L92_gMCL.js → SettingsWindow-D7h3KJQR.js} +1 -1
  12. package/dist/assets/{TerminalView-D4W3gUrF.js → TerminalView-dCIT-tdR.js} +1 -1
  13. package/dist/assets/{ToolOutputDialog-CpMU9Jmc.js → ToolOutputDialog-d3CFS8Ao.js} +1 -1
  14. package/dist/assets/{appThemeRegistry-DohSaUlr.js → appThemeRegistry-mDg3kXo3.js} +2 -2
  15. package/dist/assets/{gitApi-BIqXEOV4.js → gitApi-DAIbIRH4.js} +1 -1
  16. package/dist/assets/{insertionBoundaries-9AGImjk0.js → insertionBoundaries-Ce3VE0Fh.js} +1 -1
  17. package/dist/assets/{main-CnioFiw7.js → main-B3-IK-bb.js} +3 -3
  18. package/dist/assets/{main-BtWdJ1o-.js → main-eb47lOwf.js} +2 -2
  19. package/dist/assets/{miniChat-CJzPIIkQ.js → miniChat-BBLuCUzJ.js} +2 -2
  20. package/dist/assets/{mobile-CvkyrtMY.js → mobile-DWTgNe-i.js} +2 -2
  21. package/dist/assets/{multirun-BjeA-Baw.js → multirun-BOxd-XB0.js} +1 -1
  22. package/dist/assets/{projectMeta-BP0IYkad.js → projectMeta-DXVnCKmW.js} +1 -1
  23. package/dist/assets/{radio-dL5rRE7d.js → radio-D09f0ONw.js} +1 -1
  24. package/dist/assets/{renderElectronMiniChatApp-Dzfy8-St.js → renderElectronMiniChatApp-DRPA1nJZ.js} +2 -2
  25. package/dist/assets/{renderMobileApp-Bi1Sm_lT.js → renderMobileApp-SOk8glPK.js} +4 -4
  26. package/dist/assets/{runtimeConfig-DMpRvT8y.js → runtimeConfig-C1ICojQq.js} +1 -1
  27. package/dist/assets/{runtimeEndpointReset-C6_MkS3Z.js → runtimeEndpointReset-DLoICwI5.js} +1 -1
  28. package/dist/assets/{shikiHighlight-CGuRQJIr.js → shikiHighlight-BQb6Inwc.js} +1 -1
  29. package/dist/assets/{useAppFontEffects-Dlfg51WY.js → useAppFontEffects-BtVDcsDz.js} +2 -2
  30. package/dist/assets/{useDesktopWindowControlsLayout-B6l3XRlk.js → useDesktopWindowControlsLayout-Cp_KanGP.js} +1 -1
  31. package/dist/assets/{useEffectiveDirectory-DrRShKin.js → useEffectiveDirectory-D3ALorSW.js} +1 -1
  32. package/dist/assets/{useMobileNavigationStore-CncTmwzO.js → useMobileNavigationStore-CrT2Yvjn.js} +1 -1
  33. package/dist/assets/{useSessionAutoCleanup-BkMesfd-.js → useSessionAutoCleanup-CTb-6h47.js} +1 -1
  34. package/dist/assets/{useWorkerHighlightedLines-DXDqlnez.js → useWorkerHighlightedLines-B7IiLLeg.js} +1 -1
  35. package/dist/index.html +2 -2
  36. package/dist/mini-chat.html +2 -2
  37. package/dist/mobile.html +2 -2
  38. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ToolOutputDialog-CpMU9Jmc.js","assets/rolldown-runtime-C0FnF6B9.js","assets/useUIStore-DzwCfRqr.js","assets/vendor-zustand-B4dlGEM2.js","assets/vendor-base-ui-CnHfUmDN.js","assets/persistence-6sclr7B6.js","assets/vendor-pathe-vBmvQE8f.js","assets/vendor-react-DLPElpoQ.js","assets/vendor-tanstack-query-core-BWz0ose6.js","assets/vendor-reactuses-core-DDoDDyM9.js","assets/vendor-lodash-es-DfLbG5Af.js","assets/vendor-js-cookie-hSOiFTtX.js","assets/clipboard-DWuULPzo.js","assets/store-DQY8Fkb0.js","assets/vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js","assets/utils-B1EK5zKa.js","assets/vendor-class-variance-authority-BLUaYARZ.js","assets/vendor-tailwind-merge-BicNWLTg.js","assets/Icon-DpjYnXxn.js","assets/dialog-DPS0W9eS.js","assets/button-C7OXr4ae.js","assets/useThemeSystem-DMzWVJaW.js","assets/markdownTheme-B89dbj3N.js","assets/vendor-pierre-diffs-BenIz2TM.js","assets/vendor-hast-util-to-html-B0p1k5Xa.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-DpDied8H.js","assets/appThemeRegistry-DohSaUlr.js","assets/platform-CbeLpKPk.js","assets/vendor-opencode-sdk-C07HQypa.js","assets/markdown-worker-W06-MhF5.js","assets/useEffectiveDirectory-DrRShKin.js","assets/useMobileNavigationStore-CncTmwzO.js","assets/vendor-tanstack-react-query-D7pys_c9.js","assets/vendor-sonner-DVzioF3d.js","assets/useAssistantUIStore-BHsHXCKE.js","assets/vendor-fuse.js-DB5wDJbI.js","assets/useWorkerHighlightedLines-DXDqlnez.js","assets/tooltip-D_orJMYd.js","assets/vendor-tanstack-react-virtual-tlDgH6PG.js"])))=>i.map(i=>d[i]);
2
- import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{C as t,E as n,I as r,K as i,P as a,T as o,U as s,t as c}from"./useUIStore-DzwCfRqr.js";import{$t as l,D as u,Rt as d,Xt as f,Yt as p,d as m,in as h,k as g,kn as _,qt as v,r as y,rn as b,st as x,xn as S}from"./persistence-6sclr7B6.js";import{a as C}from"./vendor-zustand-B4dlGEM2.js";import{nt as w,rt as T,tt as E}from"./vendor-base-ui-CnHfUmDN.js";import{Ct as D,Mt as O,Nt as k}from"./platform-CbeLpKPk.js";import{o as A}from"./vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js";import{n as j}from"./vendor-react-DLPElpoQ.js";import{l as M,n as ee,s as N}from"./vendor-tanstack-react-query-D7pys_c9.js";import{W as P,ct as F}from"./vendor-codemirror-autocomplete-DHomsvW7.js";import{n as I}from"./vendor-reactuses-core-DDoDDyM9.js";import{n as te,o as L,r as R,t as ne}from"./clipboard-DWuULPzo.js";import{i as z,t as re}from"./store-DQY8Fkb0.js";import{$a as B,$t as V,Cn as H,Eo as ie,Et as ae,Fo as oe,Ga as U,Lt as se,On as W,Pr as ce,Qi as le,Rt as G,Ut as K,Vn as ue,Wt as de,Xa as fe,ao as pe,ba as me,br as q,cn as he,en as ge,fn as _e,l as ve,mn as ye,nn as be,oa as xe,oi as Se,pn as Ce,rn as we,tn as Te,ya as Ee}from"./useMobileNavigationStore-CncTmwzO.js";import{a as De,i as Oe,o as ke,t as J}from"./utils-B1EK5zKa.js";import{n as Y}from"./Icon-DpjYnXxn.js";import{a as Ae,i as je,n as Me,o as Ne,r as Pe,t as Fe}from"./dialog-DPS0W9eS.js";import{t as X}from"./button-C7OXr4ae.js";import{A as Ie,N as Le,j as Re,o as ze}from"./projectMeta-BP0IYkad.js";import{t as Be}from"./input-BzYA603C.js";import{i as Ve,n as He,t as Ue}from"./tooltip-D_orJMYd.js";import{n as We,t as Ge}from"./useThemeSystem-DMzWVJaW.js";import{$ as Ke,B as qe,D as Je,M as Ye,N as Xe,O as Ze,P as Qe,W as $e,c as et,h as tt,it as nt,j as rt,k as it,n as at,p as ot,s as st}from"./radio-dL5rRE7d.js";import{i as ct}from"./OverlayScrollbar-Ch3J6ASR.js";import{f as Z,g as lt,h as ut,x as dt}from"./markdownTheme-B89dbj3N.js";import{F as ft,G as pt,H as mt,I as ht,J as gt,K as _t,N as vt,O as yt,Q as bt,W as xt,a as St,c as Ct,d as wt,et as Tt,h as Et,j as Dt,k as Ot,l as kt,m as At,n as jt,p as Mt,q as Nt,s as Pt,u as Ft,z as It}from"./ChatContainer-BTOShmJo.js";import{n as Lt}from"./useRuntimeAPIs-DSLXJybW.js";import{i as Rt,n as zt,t as Bt,u as Vt}from"./appThemeRegistry-DohSaUlr.js";import{a as Ht}from"./url-BsaBG5-1.js";import{f as Ut,g as Wt,h as Gt,m as Kt,p as qt}from"./markdown-worker-W06-MhF5.js";import{n as Jt}from"./useEffectiveDirectory-DrRShKin.js";import{o as Yt}from"./FadeInOnReveal-By2F9vcI.js";import{M as Xt,N as Zt,b as Qt,g as $t,x as en,y as tn}from"./insertionBoundaries-9AGImjk0.js";import{g as nn,n as rn}from"./useWorkerHighlightedLines-DXDqlnez.js";import{t as an}from"./sortable-tabs-strip-nLsPC06f.js";import{a as on,c as sn,d as cn,f as ln,l as un,m as dn,n as fn,o as pn,p as mn,s as hn,t as gn,u as _n}from"./vendor-pierre-diffs-BenIz2TM.js";import{a as vn,c as yn,i as bn,l as xn,n as Sn,o as Cn,r as wn,s as Tn,t as En}from"./shikiHighlight-CGuRQJIr.js";import{n as Dn,r as On,t as kn}from"./collapsible-DaEya6b6.js";import{n as An,s as jn,t as Mn}from"./fileQueries-B_fTkH6s.js";import{t as Nn}from"./vendor-zumer-snapdom-yq9vlCKr.js";import{n as Pn,t as Fn}from"./vendor-html-to-image-BDMm2v6d.js";var Q=e(T(),1),In=j(),$=w(),Ln=e(E(),1);function Rn(){return new Worker(gn,{type:`module`})}var zn=[`typescript`,`javascript`,`tsx`,`jsx`,`json`,`markdown`],Bn={unified:{poolSize:1,totalASTLRUCacheSize:24,lineDiffType:`none`},split:{poolSize:2,totalASTLRUCacheSize:56,lineDiffType:`word-alt`}},Vn,Hn,Un=e=>{let t=Bn[e],n=new mn({workerFactory:Rn,poolSize:t.poolSize,totalASTLRUCacheSize:t.totalASTLRUCacheSize},{theme:{light:`pierre-light`,dark:`pierre-dark`},langs:zn,lineDiffType:t.lineDiffType,preferredHighlighter:`shiki-wasm`});return n.initialize(),n},Wn=e=>{if(!(typeof window>`u`))return e===`split`?(Hn??=Un(`split`),Hn):(Vn??=Un(`unified`),Vn)},Gn=e=>{let t=(0,In.c)(7),{children:n,renderTheme:r}=e,i=qn(`unified`),a=qn(`split`),o,s;t[0]!==r||t[1]!==a||t[2]!==i?(o=()=>{i&&i.setRenderOptions({theme:r,lineDiffType:Bn.unified.lineDiffType}),a&&a.setRenderOptions({theme:r,lineDiffType:Bn.split.lineDiffType})},s=[r,a,i],t[0]=r,t[1]=a,t[2]=i,t[3]=o,t[4]=s):(o=t[3],s=t[4]),(0,Q.useEffect)(o,s);let c;return t[5]===n?c=t[6]:(c=(0,$.jsx)($.Fragment,{children:n}),t[5]=n,t[6]=c),c},Kn=e=>{let t=(0,In.c)(11),{children:n}=e,r=Ge(),i,a;if(t[0]!==r?.availableThemes||t[1]!==r?.darkThemeId||t[2]!==r?.lightThemeId){let e=dt(!1),n=dt(!0),o=r?.lightThemeId??e.metadata.id,s=r?.darkThemeId??n.metadata.id;a=r?.availableThemes.find(e=>e.metadata.id===o)??e,i=r?.availableThemes.find(e=>e.metadata.id===s)??n,Bt(a),Bt(i),t[0]=r?.availableThemes,t[1]=r?.darkThemeId,t[2]=r?.lightThemeId,t[3]=i,t[4]=a}else i=t[3],a=t[4];let o;t[5]!==i.metadata.id||t[6]!==a.metadata.id?(o={light:a.metadata.id,dark:i.metadata.id},t[5]=i.metadata.id,t[6]=a.metadata.id,t[7]=o):o=t[7];let s=o,c;return t[8]!==n||t[9]!==s?(c=(0,$.jsx)(Gn,{renderTheme:s,children:n}),t[8]=n,t[9]=s,t[10]=c):c=t[10],c},qn=e=>{let t=(0,In.c)(2),n=e===void 0?`unified`:e,r;return t[0]===n?r=t[1]:(r=Wn(n),t[0]=n,t[1]=r),r};function Jn(e){let t=(0,In.c)(85),{draft:n,onEdit:r,onDelete:i,className:a,maxWidth:o}=e,{t:s}=te(),c=Ge()?.currentTheme,[l,u]=(0,Q.useState)(!1),[d,f]=(0,Q.useState)(!1),p=typeof n.text==`string`?n.text:``,m;t[0]===p?m=t[1]:(m=p.length>150||p.split(`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ToolOutputDialog-d3CFS8Ao.js","assets/rolldown-runtime-C0FnF6B9.js","assets/useUIStore-DzwCfRqr.js","assets/vendor-zustand-B4dlGEM2.js","assets/vendor-base-ui-CnHfUmDN.js","assets/persistence-6sclr7B6.js","assets/vendor-pathe-vBmvQE8f.js","assets/vendor-react-DLPElpoQ.js","assets/vendor-tanstack-query-core-BWz0ose6.js","assets/vendor-reactuses-core-DDoDDyM9.js","assets/vendor-lodash-es-DfLbG5Af.js","assets/vendor-js-cookie-hSOiFTtX.js","assets/clipboard-DWuULPzo.js","assets/store-DQY8Fkb0.js","assets/vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js","assets/utils-B1EK5zKa.js","assets/vendor-class-variance-authority-BLUaYARZ.js","assets/vendor-tailwind-merge-BicNWLTg.js","assets/Icon-DpjYnXxn.js","assets/dialog-DPS0W9eS.js","assets/button-C7OXr4ae.js","assets/useThemeSystem-DMzWVJaW.js","assets/markdownTheme-B89dbj3N.js","assets/vendor-pierre-diffs-BenIz2TM.js","assets/vendor-hast-util-to-html-B0p1k5Xa.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-DpDied8H.js","assets/appThemeRegistry-mDg3kXo3.js","assets/platform-CbeLpKPk.js","assets/vendor-opencode-sdk-C07HQypa.js","assets/markdown-worker-W06-MhF5.js","assets/useEffectiveDirectory-D3ALorSW.js","assets/useMobileNavigationStore-CrT2Yvjn.js","assets/vendor-tanstack-react-query-D7pys_c9.js","assets/vendor-sonner-DVzioF3d.js","assets/useAssistantUIStore-BHsHXCKE.js","assets/vendor-fuse.js-DB5wDJbI.js","assets/useWorkerHighlightedLines-B7IiLLeg.js","assets/tooltip-D_orJMYd.js","assets/vendor-tanstack-react-virtual-tlDgH6PG.js"])))=>i.map(i=>d[i]);
2
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{C as t,E as n,I as r,K as i,P as a,T as o,U as s,t as c}from"./useUIStore-DzwCfRqr.js";import{$t as l,D as u,Rt as d,Xt as f,Yt as p,d as m,in as h,k as g,kn as _,qt as v,r as y,rn as b,st as x,xn as S}from"./persistence-6sclr7B6.js";import{a as C}from"./vendor-zustand-B4dlGEM2.js";import{nt as w,rt as T,tt as E}from"./vendor-base-ui-CnHfUmDN.js";import{Ct as D,Mt as O,Nt as k}from"./platform-CbeLpKPk.js";import{o as A}from"./vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js";import{n as j}from"./vendor-react-DLPElpoQ.js";import{l as M,n as ee,s as N}from"./vendor-tanstack-react-query-D7pys_c9.js";import{W as P,ct as F}from"./vendor-codemirror-autocomplete-DHomsvW7.js";import{n as I}from"./vendor-reactuses-core-DDoDDyM9.js";import{n as te,o as L,r as R,t as ne}from"./clipboard-DWuULPzo.js";import{i as z,t as re}from"./store-DQY8Fkb0.js";import{$a as B,$t as V,Cn as H,Eo as ie,Et as ae,Fo as oe,Ga as U,Lt as se,On as W,Pr as ce,Qi as le,Rt as G,Ut as K,Vn as ue,Wt as de,Xa as fe,ao as pe,ba as me,br as q,cn as he,en as ge,fn as _e,l as ve,mn as ye,nn as be,oa as xe,oi as Se,pn as Ce,rn as we,tn as Te,ya as Ee}from"./useMobileNavigationStore-CrT2Yvjn.js";import{a as De,i as Oe,o as ke,t as J}from"./utils-B1EK5zKa.js";import{n as Y}from"./Icon-DpjYnXxn.js";import{a as Ae,i as je,n as Me,o as Ne,r as Pe,t as Fe}from"./dialog-DPS0W9eS.js";import{t as X}from"./button-C7OXr4ae.js";import{A as Ie,N as Le,j as Re,o as ze}from"./projectMeta-DXVnCKmW.js";import{t as Be}from"./input-BzYA603C.js";import{i as Ve,n as He,t as Ue}from"./tooltip-D_orJMYd.js";import{n as We,t as Ge}from"./useThemeSystem-DMzWVJaW.js";import{$ as Ke,B as qe,D as Je,M as Ye,N as Xe,O as Ze,P as Qe,W as $e,c as et,h as tt,it as nt,j as rt,k as it,n as at,p as ot,s as st}from"./radio-D09f0ONw.js";import{i as ct}from"./OverlayScrollbar-Ch3J6ASR.js";import{f as Z,g as lt,h as ut,x as dt}from"./markdownTheme-B89dbj3N.js";import{F as ft,G as pt,H as mt,I as ht,J as gt,K as _t,N as vt,O as yt,Q as bt,W as xt,a as St,c as Ct,d as wt,et as Tt,h as Et,j as Dt,k as Ot,l as kt,m as At,n as jt,p as Mt,q as Nt,s as Pt,u as Ft,z as It}from"./ChatContainer-C8NGm0Wn.js";import{n as Lt}from"./useRuntimeAPIs-DSLXJybW.js";import{i as Rt,n as zt,t as Bt,u as Vt}from"./appThemeRegistry-mDg3kXo3.js";import{a as Ht}from"./url-BsaBG5-1.js";import{f as Ut,g as Wt,h as Gt,m as Kt,p as qt}from"./markdown-worker-W06-MhF5.js";import{n as Jt}from"./useEffectiveDirectory-D3ALorSW.js";import{o as Yt}from"./FadeInOnReveal-By2F9vcI.js";import{M as Xt,N as Zt,b as Qt,g as $t,x as en,y as tn}from"./insertionBoundaries-Ce3VE0Fh.js";import{g as nn,n as rn}from"./useWorkerHighlightedLines-B7IiLLeg.js";import{t as an}from"./sortable-tabs-strip-nLsPC06f.js";import{a as on,c as sn,d as cn,f as ln,l as un,m as dn,n as fn,o as pn,p as mn,s as hn,t as gn,u as _n}from"./vendor-pierre-diffs-BenIz2TM.js";import{a as vn,c as yn,i as bn,l as xn,n as Sn,o as Cn,r as wn,s as Tn,t as En}from"./shikiHighlight-BQb6Inwc.js";import{n as Dn,r as On,t as kn}from"./collapsible-DaEya6b6.js";import{n as An,s as jn,t as Mn}from"./fileQueries-B_fTkH6s.js";import{t as Nn}from"./vendor-zumer-snapdom-yq9vlCKr.js";import{n as Pn,t as Fn}from"./vendor-html-to-image-BDMm2v6d.js";var Q=e(T(),1),In=j(),$=w(),Ln=e(E(),1);function Rn(){return new Worker(gn,{type:`module`})}var zn=[`typescript`,`javascript`,`tsx`,`jsx`,`json`,`markdown`],Bn={unified:{poolSize:1,totalASTLRUCacheSize:24,lineDiffType:`none`},split:{poolSize:2,totalASTLRUCacheSize:56,lineDiffType:`word-alt`}},Vn,Hn,Un=e=>{let t=Bn[e],n=new mn({workerFactory:Rn,poolSize:t.poolSize,totalASTLRUCacheSize:t.totalASTLRUCacheSize},{theme:{light:`pierre-light`,dark:`pierre-dark`},langs:zn,lineDiffType:t.lineDiffType,preferredHighlighter:`shiki-wasm`});return n.initialize(),n},Wn=e=>{if(!(typeof window>`u`))return e===`split`?(Hn??=Un(`split`),Hn):(Vn??=Un(`unified`),Vn)},Gn=e=>{let t=(0,In.c)(7),{children:n,renderTheme:r}=e,i=qn(`unified`),a=qn(`split`),o,s;t[0]!==r||t[1]!==a||t[2]!==i?(o=()=>{i&&i.setRenderOptions({theme:r,lineDiffType:Bn.unified.lineDiffType}),a&&a.setRenderOptions({theme:r,lineDiffType:Bn.split.lineDiffType})},s=[r,a,i],t[0]=r,t[1]=a,t[2]=i,t[3]=o,t[4]=s):(o=t[3],s=t[4]),(0,Q.useEffect)(o,s);let c;return t[5]===n?c=t[6]:(c=(0,$.jsx)($.Fragment,{children:n}),t[5]=n,t[6]=c),c},Kn=e=>{let t=(0,In.c)(11),{children:n}=e,r=Ge(),i,a;if(t[0]!==r?.availableThemes||t[1]!==r?.darkThemeId||t[2]!==r?.lightThemeId){let e=dt(!1),n=dt(!0),o=r?.lightThemeId??e.metadata.id,s=r?.darkThemeId??n.metadata.id;a=r?.availableThemes.find(e=>e.metadata.id===o)??e,i=r?.availableThemes.find(e=>e.metadata.id===s)??n,Bt(a),Bt(i),t[0]=r?.availableThemes,t[1]=r?.darkThemeId,t[2]=r?.lightThemeId,t[3]=i,t[4]=a}else i=t[3],a=t[4];let o;t[5]!==i.metadata.id||t[6]!==a.metadata.id?(o={light:a.metadata.id,dark:i.metadata.id},t[5]=i.metadata.id,t[6]=a.metadata.id,t[7]=o):o=t[7];let s=o,c;return t[8]!==n||t[9]!==s?(c=(0,$.jsx)(Gn,{renderTheme:s,children:n}),t[8]=n,t[9]=s,t[10]=c):c=t[10],c},qn=e=>{let t=(0,In.c)(2),n=e===void 0?`unified`:e,r;return t[0]===n?r=t[1]:(r=Wn(n),t[0]=n,t[1]=r),r};function Jn(e){let t=(0,In.c)(85),{draft:n,onEdit:r,onDelete:i,className:a,maxWidth:o}=e,{t:s}=te(),c=Ge()?.currentTheme,[l,u]=(0,Q.useState)(!1),[d,f]=(0,Q.useState)(!1),p=typeof n.text==`string`?n.text:``,m;t[0]===p?m=t[1]:(m=p.length>150||p.split(`
3
3
  `).length>3,t[0]=p,t[1]=m);let h=m,g;t[2]===a?g=t[3]:(g=J(`rounded-lg border shadow-none w-full max-w-[min(100%,calc(var(--oc-context-panel-width,100vw)-var(--oc-editor-gutter-width,0px)))] overflow-hidden transition-all duration-200`,a),t[2]=a,t[3]=g);let _=c?.colors?.surface?.elevated,v=c?.colors?.interactive?.border,y=o?`${Math.max(200,Math.floor(o))}px`:void 0,b;t[4]!==_||t[5]!==v||t[6]!==y?(b={backgroundColor:_,borderColor:v,maxWidth:y},t[4]=_,t[5]=v,t[6]=y,t[7]=b):b=t[7];let x;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(x=e=>{e.preventDefault(),f(!0)},t[8]=x):x=t[8];let S;t[9]!==g||t[10]!==b?(S=(0,$.jsx)(`div`,{className:g,style:b,"data-comment-card":`true`,onContextMenu:x}),t[9]=g,t[10]=b,t[11]=S):S=t[11];let C;t[12]===n.fileLabel?C=t[13]:(C=(0,$.jsx)(`span`,{className:`truncate max-w-[200px]`,title:n.fileLabel,children:n.fileLabel}),t[12]=n.fileLabel,t[13]=C);let w;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,$.jsx)(`span`,{children:`•`}),t[14]=w):w=t[14];let T;t[15]!==n.endLine||t[16]!==n.startLine||t[17]!==s?(T=s(`inlineComment.range.lines`,{start:n.startLine,end:n.endLine}),t[15]=n.endLine,t[16]=n.startLine,t[17]=s,t[18]=T):T=t[18];let E;t[19]===T?E=t[20]:(E=(0,$.jsx)(`span`,{children:T}),t[19]=T,t[20]=E);let D;t[21]===n.side?D=t[22]:(D=n.side&&(0,$.jsxs)(`span`,{children:[`(`,n.side,`)`]}),t[21]=n.side,t[22]=D);let O;t[23]!==E||t[24]!==D||t[25]!==C?(O=(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-xs font-medium text-muted-foreground mb-1.5`,children:[C,w,E,D]}),t[23]=E,t[24]=D,t[25]=C,t[26]=O):O=t[26];let k=l||!h,A=!l&&h&&`line-clamp-3`,j;t[27]===A?j=t[28]:(j=J(`text-sm whitespace-pre-wrap break-words leading-relaxed`,A),t[27]=A,t[28]=j);let M;t[29]!==p||t[30]!==j?(M=(0,$.jsx)(`div`,{className:j,children:p}),t[29]=p,t[30]=j,t[31]=M):M=t[31];let ee;t[32]!==h||t[33]!==l||t[34]!==s?(ee=h&&(0,$.jsx)(On,{asChild:!0,children:(0,$.jsx)(X,{variant:`ghost`,size:`sm`,className:`h-6 px-0 mt-1 text-xs text-muted-foreground hover:text-foreground w-full justify-start`,children:l?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Y,{name:`arrow-up-s`,className:`size-3 mr-1`}),s(`inlineComment.actions.showLess`)]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Y,{name:`arrow-down-s`,className:`size-3 mr-1`}),s(`inlineComment.actions.showMore`)]})})}),t[32]=h,t[33]=l,t[34]=s,t[35]=ee):ee=t[35];let N;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,$.jsx)(Dn,{}),t[36]=N):N=t[36];let P;t[37]!==k||t[38]!==M||t[39]!==ee?(P=(0,$.jsxs)(kn,{open:k,onOpenChange:u,children:[M,ee,N]}),t[37]=k,t[38]=M,t[39]=ee,t[40]=P):P=t[40];let F;t[41]!==O||t[42]!==P?(F=(0,$.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[O,P]}),t[41]=O,t[42]=P,t[43]=F):F=t[43];let I;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,$.jsx)(Qe,{asChild:!0,children:(0,$.jsx)(X,{variant:`ghost`,size:`icon`,className:`h-6 w-6 -mr-1 text-muted-foreground hover:text-foreground`,children:(0,$.jsx)(Y,{name:`more`,className:`size-4`})})}),t[44]=I):I=t[44];let L;t[45]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,$.jsx)(Y,{name:`edit`,className:`size-4 mr-2`}),t[45]=L):L=t[45];let R;t[46]===s?R=t[47]:(R=s(`inlineComment.actions.editComment`),t[46]=s,t[47]=R);let ne;t[48]!==r||t[49]!==R?(ne=(0,$.jsxs)(it,{onClick:r,children:[L,R]}),t[48]=r,t[49]=R,t[50]=ne):ne=t[50];let z;t[51]===Symbol.for(`react.memo_cache_sentinel`)?(z=(0,$.jsx)(Y,{name:`delete-bin`,className:`size-4 mr-2`}),t[51]=z):z=t[51];let re;t[52]===s?re=t[53]:(re=s(`inlineComment.actions.deleteComment`),t[52]=s,t[53]=re);let B;t[54]!==i||t[55]!==re?(B=(0,$.jsxs)(it,{onClick:i,className:`text-destructive`,children:[z,re]}),t[54]=i,t[55]=re,t[56]=B):B=t[56];let V;t[57]!==ne||t[58]!==B?(V=(0,$.jsxs)(Je,{children:[I,(0,$.jsxs)(Ze,{align:`end`,children:[ne,B]})]}),t[57]=ne,t[58]=B,t[59]=V):V=t[59];let H;t[60]!==F||t[61]!==V?(H=(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-2 p-3`,children:[F,V]}),t[60]=F,t[61]=V,t[62]=H):H=t[62];let ie;t[63]!==H||t[64]!==S?(ie=(0,$.jsx)(xn,{render:S,children:H}),t[63]=H,t[64]=S,t[65]=ie):ie=t[65];let ae;t[66]===Symbol.for(`react.memo_cache_sentinel`)?(ae=(0,$.jsx)(Y,{name:`edit`,className:`size-4 mr-2`}),t[66]=ae):ae=t[66];let oe;t[67]===s?oe=t[68]:(oe=s(`inlineComment.actions.editComment`),t[67]=s,t[68]=oe);let U;t[69]!==r||t[70]!==oe?(U=(0,$.jsxs)(Tn,{onClick:r,children:[ae,oe]}),t[69]=r,t[70]=oe,t[71]=U):U=t[71];let se;t[72]===Symbol.for(`react.memo_cache_sentinel`)?(se=(0,$.jsx)(Y,{name:`delete-bin`,className:`size-4 mr-2`}),t[72]=se):se=t[72];let W;t[73]===s?W=t[74]:(W=s(`inlineComment.actions.deleteComment`),t[73]=s,t[74]=W);let ce;t[75]!==i||t[76]!==W?(ce=(0,$.jsxs)(Tn,{onClick:i,className:`text-destructive focus:text-destructive`,children:[se,W]}),t[75]=i,t[76]=W,t[77]=ce):ce=t[77];let le;t[78]!==U||t[79]!==ce?(le=(0,$.jsxs)(Cn,{children:[U,ce]}),t[78]=U,t[79]=ce,t[80]=le):le=t[80];let G;return t[81]!==d||t[82]!==ie||t[83]!==le?(G=(0,$.jsxs)(vn,{open:d,onOpenChange:f,children:[ie,le]}),t[81]=d,t[82]=ie,t[83]=le,t[84]=G):G=t[84],G}function Yn(e){let t=(0,In.c)(67),{initialText:n,onTextChange:r,onSave:i,onCancel:a,fileLabel:o,lineRange:s,isEditing:c,className:l,maxWidth:u,onAddToChat:d}=e,f=n===void 0?``:n,p=c!==void 0&&c,{t:m}=te(),h=Ge()?.currentTheme,{isMobile:g}=ct(),[_,v]=Q.useState(f),y=(0,Q.useRef)(null),b;t[0]===r?b=t[1]:(b=e=>{v(e),r?.(e)},t[0]=r,t[1]=b);let x=b,S=(0,Q.useRef)(s),C,w;t[2]===s?(C=t[3],w=t[4]):(C=()=>{s&&(S.current=s)},w=[s],t[2]=s,t[3]=C,t[4]=w),(0,Q.useEffect)(C,w);let T=rr,E=T(s),D,O;t[5]===g?(D=t[6],O=t[7]):(D=()=>{let e=y.current;if(!e)return;let t=e.closest(`.overlay-scrollbar-container`),n=t?.scrollTop??window.scrollY,r=t?.scrollLeft??window.scrollX;if(g){e.scrollIntoView({behavior:`auto`,block:`nearest`});try{e.focus({preventScroll:!0})}catch{e.focus()}return}try{e.focus({preventScroll:!0})}catch{e.focus()}let i=e.value.length;try{e.setSelectionRange(i,i)}catch{}requestAnimationFrame(()=>{t?(t.scrollTop=n,t.scrollLeft=r):window.scrollTo({top:n,left:r})})},O=[g],t[5]=g,t[6]=D,t[7]=O),(0,Q.useEffect)(D,O);let k;t[8]!==a||t[9]!==i||t[10]!==_?(k=e=>{(e.metaKey||e.ctrlKey)&&e.key===`Enter`?(e.preventDefault(),_.trim()&&i(_,T(S.current))):e.key===`Escape`&&(e.preventDefault(),a())},t[8]=a,t[9]=i,t[10]=_,t[11]=k):k=t[11];let A=k,j;t[12]!==i||t[13]!==_?(j=e=>{e.stopPropagation(),_.trim()&&i(_,T(S.current))},t[12]=i,t[13]=_,t[14]=j):j=t[14];let M=j,ee;t[15]===l?ee=t[16]:(ee=J(`rounded-lg border shadow-none w-full max-w-[min(100%,calc(var(--oc-context-panel-width,100vw)-var(--oc-editor-gutter-width,0px)))] overflow-hidden animate-in fade-in zoom-in-95 duration-200`,l),t[15]=l,t[16]=ee);let N=h?.colors?.surface?.elevated,P=h?.colors?.interactive?.border,F=u?`${Math.max(200,Math.floor(u))}px`:void 0,I;t[17]!==N||t[18]!==P||t[19]!==F?(I={backgroundColor:N,borderColor:P,maxWidth:F},t[17]=N,t[18]=P,t[19]=F,t[20]=I):I=t[20];let L=nr,R=tr,ne=(o||s)&&(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-xs font-medium text-muted-foreground mb-2`,children:[o&&(0,$.jsx)(`span`,{className:`truncate max-w-[200px]`,children:o}),o&&s&&(0,$.jsx)(`span`,{children:`•`}),E&&(0,$.jsx)(`span`,{children:m(`inlineComment.range.lines`,{start:E.start,end:E.end})})]}),z;t[21]===x?z=t[22]:(z=e=>x(e.target.value),t[21]=x,t[22]=z);let re;t[23]!==g||t[24]!==m?(re=m(g?`inlineComment.input.placeholderShort`:`inlineComment.input.placeholder`),t[23]=g,t[24]=m,t[25]=re):re=t[25];let B;t[26]!==A||t[27]!==z||t[28]!==re||t[29]!==_?(B=(0,$.jsx)(ze,{simple:!0,ref:y,value:_,onChange:z,onKeyDown:A,placeholder:re,outerClassName:`rounded-[var(--radius-xl)] bg-[var(--surface-subtle)] ring-1 ring-inset ring-border/60 focus-within:ring-2 focus-within:ring-[var(--interactive-focus-ring)]`,className:`min-h-[80px] px-3 py-2.5 text-sm resize-y`}),t[26]=A,t[27]=z,t[28]=re,t[29]=_,t[30]=B):B=t[30];let V;t[31]!==E||t[32]!==d||t[33]!==m?(V=E&&d?(0,$.jsxs)(X,{variant:`outline`,size:`sm`,onClick:()=>d(E),onPointerDown:er,className:`mr-auto h-8 gap-1.5`,children:[(0,$.jsx)(Y,{name:`add`,className:`size-4`}),m(`chat.textSelection.actions.addToChat`),(0,$.jsx)(mt,{shortcut:`⌘+I`})]}):null,t[31]=E,t[32]=d,t[33]=m,t[34]=V):V=t[34];let H;t[35]===m?H=t[36]:(H=m(`inlineComment.actions.cancel`),t[35]=m,t[36]=H);let ie;t[37]!==a||t[38]!==H?(ie=(0,$.jsx)(X,{variant:`ghost`,size:`sm`,onClick:a,onPointerDown:$n,onTouchStart:Qn,className:`h-8 text-muted-foreground hover:text-foreground`,children:H}),t[37]=a,t[38]=H,t[39]=ie):ie=t[39];let ae;t[40]===_?ae=t[41]:(ae=_.trim(),t[40]=_,t[41]=ae);let oe=!ae,U=h?.colors?.status?.success,se=h?.colors?.status?.successForeground,W;t[42]!==U||t[43]!==se?(W={backgroundColor:U,color:se},t[42]=U,t[43]=se,t[44]=W):W=t[44];let ce;t[45]!==p||t[46]!==m?(ce=m(p?`inlineComment.actions.save`:`inlineComment.actions.comment`),t[45]=p,t[46]=m,t[47]=ce):ce=t[47];let le;t[48]!==M||t[49]!==oe||t[50]!==W||t[51]!==ce?(le=(0,$.jsx)(X,{size:`sm`,onClick:M,onPointerDown:Zn,onTouchStart:Xn,disabled:oe,className:`h-8 min-w-[80px]`,style:W,children:ce}),t[48]=M,t[49]=oe,t[50]=W,t[51]=ce,t[52]=le):le=t[52];let G;t[53]!==V||t[54]!==ie||t[55]!==le?(G=(0,$.jsxs)(`div`,{className:`flex items-center justify-end gap-2 mt-3`,children:[V,ie,le]}),t[53]=V,t[54]=ie,t[55]=le,t[56]=G):G=t[56];let K;t[57]!==ne||t[58]!==B||t[59]!==G?(K=(0,$.jsxs)(`div`,{className:`p-3`,children:[ne,B,G]}),t[57]=ne,t[58]=B,t[59]=G,t[60]=K):K=t[60];let ue;return t[61]!==ee||t[62]!==I||t[63]!==L||t[64]!==R||t[65]!==K?(ue=(0,$.jsx)(`div`,{className:ee,style:I,"data-comment-input":`true`,onPointerDown:L,onTouchStart:R,children:K}),t[61]=ee,t[62]=I,t[63]=L,t[64]=R,t[65]=K,t[66]=ue):ue=t[66],ue}function Xn(e){return e.stopPropagation()}function Zn(e){return e.stopPropagation()}function Qn(e){return e.stopPropagation()}function $n(e){return e.stopPropagation()}function er(e){return e.stopPropagation()}function tr(e){return e.stopPropagation()}function nr(e){return e.stopPropagation()}function rr(e){if(!e)return;let t=Math.min(e.start,e.end),n=Math.max(e.start,e.end);return{...e,start:t,end:n}}var ir=e=>{let t=Math.min(e.startLine,e.endLine),n=Math.max(e.startLine,e.endLine);return{...e,startLine:t,endLine:n}},ar=e=>{let t=Math.min(e.start,e.end),n=Math.max(e.start,e.end);return{...e,start:t,end:n}};function or(e){let t=(0,In.c)(40),{t:n}=te(),{source:r,fileLabel:i,language:a,getCodeForRange:o,toStoreRange:s,fromDraftRange:c}=e,l=ve(fr),u=ve(dr),d=Nt(ur),f=Nt(lr),p=Nt(cr),m=Nt(sr),[h,g]=Q.useState(null),[_,v]=Q.useState(``),[y,b]=Q.useState(null),x=l??(u?`draft`:null),S;bb0:{if(!x||!i){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=[],t[0]=e):e=t[0],S=e;break bb0}let e;t[1]!==m||t[2]!==x?(e=m[x]??[],t[1]=m,t[2]=x,t[3]=e):e=t[3];let n=e,a;if(t[4]!==i||t[5]!==n||t[6]!==r){let e;t[8]!==i||t[9]!==r?(e=e=>e.source===r&&e.fileLabel===i,t[8]=i,t[9]=r,t[10]=e):e=t[10],a=n.filter(e),t[4]=i,t[5]=n,t[6]=r,t[7]=a}else a=t[7];S=a}let C=S,w;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(w=()=>{g(null),v(``),b(null)},t[11]=w):w=t[11];let T=w,E;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(E=()=>{T()},t[12]=E):E=t[12];let D=E,O;t[13]===c?O=t[14]:(O=e=>{let t=ar(c(e));g(t),v(e.text),b(e.id)},t[13]=c,t[14]=O);let k=O,A;t[15]!==y||t[16]!==p?(A=e=>{p(e.sessionKey,e.id),y===e.id&&T()},t[15]=y,t[16]=p,t[17]=A):A=t[17];let j=A,M;t[18]!==d||t[19]!==y||t[20]!==i||t[21]!==o||t[22]!==a||t[23]!==h||t[24]!==x||t[25]!==r||t[26]!==n||t[27]!==s||t[28]!==f?(M=(e,t)=>{let c=t??h,l=e.trim();if(!c||!l||!i)return;if(!x){q.error(n(`inlineComment.toast.selectSessionToSave`));return}let u=ar(c),p=ir(s(u)),m=o(u);y?f(x,y,{fileLabel:i,startLine:p.startLine,endLine:p.endLine,side:p.side,code:m,language:a,text:l}):d({sessionKey:x,source:r,fileLabel:i,startLine:p.startLine,endLine:p.endLine,side:p.side,code:m,language:a,text:l}),T()},t[18]=d,t[19]=y,t[20]=i,t[21]=o,t[22]=a,t[23]=h,t[24]=x,t[25]=r,t[26]=n,t[27]=s,t[28]=f,t[29]=M):M=t[29];let ee=M,N;return t[30]!==_||t[31]!==j||t[32]!==C||t[33]!==y||t[34]!==c||t[35]!==ee||t[36]!==h||t[37]!==x||t[38]!==k?(N={sessionKey:x,drafts:C,selection:h,setSelection:g,commentText:_,setCommentText:v,editingDraftId:y,setEditingDraftId:b,reset:T,cancel:D,startEdit:k,deleteDraft:j,saveComment:ee,fromDraftRange:c},t[30]=_,t[31]=j,t[32]=C,t[33]=y,t[34]=c,t[35]=ee,t[36]=h,t[37]=x,t[38]=k,t[39]=N):N=t[39],N}function sr(e){return e.drafts}function cr(e){return e.removeDraft}function lr(e){return e.updateDraft}function ur(e){return e.addDraft}function dr(e){return e.newSessionDraft?.open}function fr(e){return e.currentSessionId}function pr(e){let{drafts:t,editingDraftId:n,commentText:r,onTextChange:i,selection:a,isDragging:o,fileLabel:s,newWidgetId:c,mapDraftToRange:l,onSave:u,onCancel:d,onEdit:f,onDelete:p,onAddToChat:m}=e,h=[];for(let e of t){let t=l(e);if(e.id===n){h.push({afterLine:t.end,id:`edit-${e.id}`,content:(0,$.jsx)(Yn,{initialText:r,onTextChange:i,fileLabel:s,lineRange:t,isEditing:!0,onSave:u,onCancel:d,onAddToChat:m},`edit-${e.id}`)});continue}h.push({afterLine:t.end,id:`card-${e.id}`,content:(0,$.jsx)(Jn,{draft:e,onEdit:()=>f(e),onDelete:()=>p(e)},`card-${e.id}`)})}if(a&&!n&&!o){let e={...a,start:Math.min(a.start,a.end),end:Math.max(a.start,a.end)};h.push({afterLine:e.end,id:c,content:(0,$.jsx)(Yn,{initialText:r,onTextChange:i,fileLabel:s,lineRange:e,isEditing:!1,onSave:u,onCancel:d,onAddToChat:m},c)})}return h}var mr=e=>{if(e.type===`new`){let t=Math.min(e.selection.start,e.selection.end),n=Math.max(e.selection.start,e.selection.end);return`new-comment-${e.selection.side??`additions`}-${t}-${n}`}return`draft-${e.draft.id}`},hr=e=>{let{drafts:t,editingDraftId:n,selection:r}=e,i=[];for(let e of t){if(!Number.isFinite(e.endLine))continue;let t=Math.max(1,Math.floor(e.endLine)),r=e.side===`original`?`deletions`:`additions`;i.push({lineNumber:t,side:r,metadata:{type:e.id===n?`edit`:`saved`,draft:e}})}return r&&!n&&i.push({lineNumber:Math.max(r.start,r.end),side:r.side??`additions`,metadata:{type:`new`,selection:r}}),i};function gr(e){let t=e.trim();if(!t)return null;if(/^-?\d+(\.\d+)?$/.test(t)){let e=Number.parseFloat(t);return Number.isFinite(e)?e:null}if(t.endsWith(`px`)){let e=Number.parseFloat(t.slice(0,-2));return Number.isFinite(e)?e:null}return null}function _r(e){if(!(!e||e<=0))return Math.max(200,Math.floor(e))}function vr(e){let{diffRootRef:t,drafts:n,selection:r,editingDraftId:i,commentText:a,onTextChange:o,fileLabel:s,onSave:c,onCancel:l,onEdit:u,onDelete:d,onAddToChat:f}=e,[p,m]=Q.useState(0),[h,g]=Q.useState(null),_=Q.useMemo(()=>!r||i?null:mr({type:`new`,selection:r}),[i,r]),v=Q.useMemo(()=>{let e=n.map(e=>mr({type:e.id===i?`edit`:`saved`,draft:e}));return _&&e.push(_),e},[n,i,_]),y=Q.useCallback(e=>{let n=t.current;if(!n)return null;let r=n.querySelector(`diffs-container`);if(!(r instanceof HTMLElement))return null;let i=r.querySelector(`[data-annotation-id="${e}"]`);if(i instanceof HTMLElement)return i;let a=r.shadowRoot;return a?a.querySelector(`[data-annotation-id="${e}"]`):null},[t]);Q.useEffect(()=>{if(v.length===0)return;let e=!1,t=0,n=()=>{e||v.every(e=>!!y(e))||t>=12||(t+=1,requestAnimationFrame(()=>{e||(m(e=>e+1),n())}))};return n(),()=>{e=!0}},[v,y]),Q.useEffect(()=>{let e=t.current;if(!e)return;let n=()=>{let t=gr(getComputedStyle(e).getPropertyValue(`--oc-context-panel-width`)),n=e.getBoundingClientRect(),r=t??n.width;g(r>0?r:null)};n();let r=new ResizeObserver(()=>{n()});return r.observe(e),window.addEventListener(`resize`,n),()=>{r.disconnect(),window.removeEventListener(`resize`,n)}},[t]);let b=Q.useCallback(e=>{let n=t.current?.getBoundingClientRect(),r=e.closest(`[data-annotation-content]`),i=r instanceof HTMLElement?r.getBoundingClientRect():e.getBoundingClientRect(),a=[i.width];n&&a.push(n.right-i.left);let o=a.filter(e=>Number.isFinite(e)&&e>0);return o.length>0?_r(Math.min(...o)):_r(h)},[t,h]);return(0,$.jsxs)($.Fragment,{children:[n.map(e=>{let t=mr({type:e.id===i?`edit`:`saved`,draft:e}),n=y(t);if(!n)return null;let r=b(n);return e.id===i?(0,Ln.createPortal)((0,$.jsx)(Yn,{initialText:a,onTextChange:o,fileLabel:s,lineRange:{start:e.startLine,end:e.endLine,side:e.side===`original`?`deletions`:`additions`},isEditing:!0,onSave:c,onCancel:l,onAddToChat:f,maxWidth:r}),n,`draft-edit-${e.id}`):(0,Ln.createPortal)((0,$.jsx)(Jn,{draft:e,onEdit:()=>u(e),onDelete:()=>d(e),maxWidth:r}),n,`draft-card-${e.id}`)}),r&&!i&&_&&(()=>{let e=y(_);if(!e)return null;let t=b(e);return(0,Ln.createPortal)((0,$.jsx)(Yn,{initialText:a,onTextChange:o,fileLabel:s,lineRange:r,isEditing:!1,onSave:c,onCancel:l,onAddToChat:f,maxWidth:t}),e,_)})()]})}function yr(e){let t=(0,In.c)(16),{position:n,onAddToChat:r,onDismiss:i}=e,{t:a}=te(),o=Q.useRef(null),s,c;t[0]===i?(s=t[1],c=t[2]):(s=()=>{if(!i)return;let e=e=>{o.current&&e.target instanceof Node&&o.current.contains(e.target)||i()};return window.addEventListener(`scroll`,e,{capture:!0,passive:!0}),()=>{window.removeEventListener(`scroll`,e,!0)}},c=[i],t[0]=i,t[1]=s,t[2]=c),Q.useEffect(s,c);let l;t[3]!==n.x||t[4]!==n.y?(l={left:n.x,top:n.y},t[3]=n.x,t[4]=n.y,t[5]=l):l=t[5];let u;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,$.jsx)(Y,{name:`add`,className:`size-4`}),t[6]=u):u=t[6];let d;t[7]===a?d=t[8]:(d=a(`chat.textSelection.actions.addToChat`),t[7]=a,t[8]=d);let f;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,$.jsx)(mt,{shortcut:`⌘+I`}),t[9]=f):f=t[9];let p;t[10]!==r||t[11]!==d?(p=(0,$.jsxs)(X,{variant:`ghost`,size:`sm`,className:`h-7 gap-1.5 px-2`,onClick:r,children:[u,d,f]}),t[10]=r,t[11]=d,t[12]=p):p=t[12];let m;return t[13]!==l||t[14]!==p?(m=(0,Ln.createPortal)((0,$.jsx)(`div`,{ref:o,"data-code-selection-action":`true`,className:`fixed z-[100] -translate-y-full rounded-lg border border-[var(--interactive-border)] bg-[var(--surface-elevated)] p-1 shadow-lg`,style:l,onPointerDown:br,children:p}),document.body),t[13]=l,t[14]=p,t[15]=m):m=t[15],m}function br(e){return e.preventDefault()}var xr=`[data-code-selection-action]`;function Sr(e){return e instanceof Element&&!!e.closest(xr)}function Cr(e,t=[]){return Sr(e)?!0:t.some(e=>e instanceof Element&&e.matches(`[data-column-number]`))}function wr(e,t){return e&&!!t?.trim()}function Tr(e,t,n,r){let i=r.side===`deletions`,a=Math.min(r.start,r.end),o=Math.max(r.start,r.end);if(!n){let n=(i?e:t).split(`
4
4
  `),r=Math.max(1,a),s=Math.min(n.length,o);return r>s?``:n.slice(r-1,s).join(`
5
5
  `)}let s=i?n.deletionLines:n.additionLines,c=[];for(let e=a;e<=o;e+=1){let t=n.isPartial?Er(n,e,i):e-1;if(t===null||t<0||t>=s.length)continue;let r=s[t]??``;c.push(r.endsWith(`
@@ -142,7 +142,7 @@ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{C as t,E as n,I as r,K
142
142
  `),n=null;for(let e of t){let t=e.match(/^@@\s*-\d+(?:,\d+)?\s+\+(\d+)(?:,\d+)?\s*@@/);if(t){let e=Number.parseInt(t[1]??``,10);n=Number.isFinite(e)&&e>=1?e:null;continue}if(n!==null){if(e.startsWith(` `)){n+=1;continue}if(e.startsWith(`+`))return n;if(e.startsWith(`-`))return Math.max(1,n)}}return null},ai=e=>{let t=[],n=new Set;for(let r of e){let e=r.path.trim(),i=r.patch;if(!e||!i.trim()||n.has(e))continue;n.add(e);let a=0,o=0;for(let e of i.split(`
143
143
  `))e.startsWith(`+++`)||e.startsWith(`---`)||(e.startsWith(`+`)&&(a+=1),e.startsWith(`-`)&&(o+=1));let s=/^---\s+\/dev\/null(?:\s|$)/m.test(i)?`added`:/^\+\+\+\s+\/dev\/null(?:\s|$)/m.test(i)?`deleted`:`modified`;t.push({file:e,patch:i,status:s,additions:a,deletions:o})}return t},oi=e=>`${e.scope}:${e.navigationRequestKey??``}:${(e.targetFilePath??``).trim()}:${e.targetLine??``}`,si=(e,t,n)=>n&&e!==t,ci=e=>`/api/openchamber/sessions/${encodeURIComponent(e)}/changes`,li=e=>e.trim(),ui=e=>e===404||e===405||e===501,di=e=>{if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e.diff;return!!t&&typeof t==`object`&&!Array.isArray(t)},fi=(e,t)=>{if(!Array.isArray(e))return null;for(let n of e)if(n&&typeof n==`object`&&!Array.isArray(n)&&n.file===t)return n;return null},pi=async(e,t)=>{let n={messageID:e.messageID,directory:e.directory};return typeof e.file==`string`&&e.file.length>0&&(n.file=e.file),_(ci(e.sessionID),{method:`GET`,headers:{Accept:`application/json`,"x-opencode-directory":e.directory},query:n,signal:t})},mi=async(e,t)=>{if(t.aborted)throw new DOMException(`Aborted`,`AbortError`);return k.getSessionDiff({sessionID:e.sessionID,directory:e.directory,messageID:e.messageID},{signal:t})},hi=(e,t=n())=>m.sessionTurnChanges.file(e.directory,e.sessionID,e.messageID,e.file,e.diffCount,t),gi=(e,t=n())=>({queryKey:hi(e,t),queryFn:async({signal:t})=>{let n=await pi(e,t);if(n.ok){let e=await n.json().catch(()=>null);if(di(e))return e}else if(!ui(n.status))throw Error(`Session turn change file request failed (${n.status})`);let r=fi(await mi(e,t),e.file);if(!r)throw Error(`change file not found`);return{diff:r}},staleTime:0,gcTime:6e4,retry:!1}),_i=(e,t)=>{let r=(0,In.c)(10),i;r[0]===t?i=r[1]:(i=t===void 0?{}:t,r[0]=t,r[1]=i);let a=i,o,s,c;if(r[2]!==e||r[3]!==a){let t=n();o=!!e&&!!e?.sessionID?.trim()&&!!e?.directory?.trim()&&!!e?.messageID?.trim()&&!!e?.file?.trim()&&a.enabled!==!1;let i=e??{sessionID:``,directory:``,messageID:``,file:``};c=N,s=gi({...i,directory:li(i.directory),file:i.file},t),r[2]=e,r[3]=a,r[4]=o,r[5]=s,r[6]=c}else o=r[4],s=r[5],c=r[6];let l;return r[7]!==o||r[8]!==s?(l={...s,enabled:o},r[7]=o,r[8]=s,r[9]=l):l=r[9],c(l)},vi=1100,yi=15e3,bi=500,xi=300,Si=1e6,Ci=3,wi=e=>e<=6?e:e<=12?6:e<=25?4:2,Ti=Q.memo(()=>{let e=(0,In.c)(4),{t}=te(),n;e[0]===t?n=e[1]:(n=t(`diffView.binary.unavailable`),e[0]=t,e[1]=n);let r;return e[2]===n?r=e[3]:(r=(0,$.jsx)(`div`,{className:`rounded-lg border border-border/60 bg-background px-3 py-2`,children:(0,$.jsx)(`div`,{className:`typography-meta text-muted-foreground`,children:n})}),e[2]=n,e[3]=r),r}),Ei={"?":{code:`?`,color:`var(--status-info)`,descriptionKey:`diffView.change.untracked`},A:{code:`A`,color:`var(--status-success)`,descriptionKey:`diffView.change.new`},D:{code:`D`,color:`var(--status-error)`,descriptionKey:`diffView.change.deleted`},R:{code:`R`,color:`var(--status-info)`,descriptionKey:`diffView.change.renamed`},C:{code:`C`,color:`var(--status-info)`,descriptionKey:`diffView.change.copied`},M:{code:`M`,color:`var(--status-warning)`,descriptionKey:`diffView.change.modified`}},Di=Ei.M,Oi=e=>{let t=e.index?.trim(),n=e.working_dir?.trim();return t&&t!==`?`?t.charAt(0):n?n.charAt(0):t?.charAt(0)||n?.charAt(0)||`M`},ki=e=>Ei[Oi(e)]??Di,Ai=e=>{let{index:t,working_dir:n}=e;return t===`A`||n===`A`||t===`?`||n===`?`},ji=e=>{let t=e.index?.trim();return!!(t&&t!==`?`)},Mi=e=>!!e.working_dir?.trim()||e.index===`?`,Ni=(e,t)=>lt(e,t),Pi=e=>(e||``).replace(/\\/g,`/`).replace(/\/+$/,``),Fi=(e,t)=>{let n=e.split(`
144
144
  `),r=t.split(`
145
- `),i=Math.min(n.length,r.length);for(let e=0;e<i;e+=1)if(n[e]!==r[e])return e+1;return r.length>n.length?n.length+1:n.length>r.length?Math.max(1,r.length):1},Ii=e=>/^Binary files .+ differ$/m.test(e)||/^GIT binary patch$/m.test(e),Li=e=>Array.isArray(e)?e.filter(e=>!e||typeof e!=`object`?!1:typeof e.file==`string`):[],Ri=e=>e===`added`?`A`:e===`deleted`?`D`:`M`,zi=e=>e.isBinary||typeof e.patch==`string`&&e.patch.length>0||e.fileDiff?!0:e.original.length>0||e.modified.length>0,Bi=(e,t,n)=>Ii(t)?{original:``,modified:``,isBinary:!0,patch:t,contextMode:n}:{original:``,modified:``,patch:t,fileDiff:$r(e,t),contextMode:n},Vi=(e,t,n)=>{let r=e??0,i=t??0;return!r&&!i?null:(0,$.jsxs)(`span`,{className:J(`typography-code flex items-center gap-1 whitespace-nowrap`,n?.shrink?`min-w-0 overflow-hidden`:`flex-shrink-0`,n?.className),children:[r?(0,$.jsxs)(`span`,{style:{color:`var(--status-success)`},children:[`+`,r]}):null,i?(0,$.jsxs)(`span`,{style:{color:`var(--status-error)`},children:[`-`,i]}):null]})},Hi=Q.memo(e=>{let t=(0,In.c)(53),{scope:n,workingCount:r,stagedCount:i,turnCount:a,onScopeChange:o}=e,{t:s}=te(),[c,l]=Q.useState(!1),u=n===`staged`?i:n===`turn`?a:r,d;t[0]!==n||t[1]!==s?(d=s(n===`staged`?`diffView.scope.staged`:n===`turn`?`diffView.scope.lastTurn`:`diffView.scope.changed`),t[0]=n,t[1]=s,t[2]=d):d=t[2];let f=d,p;t[3]===s?p=t[4]:(p=s(`diffView.scope.selectorAria`),t[3]=s,t[4]=p);let m;t[5]===u?m=t[6]:(m=(0,$.jsxs)(`span`,{className:`diff-toolbar__scope-count`,children:[`: `,u]}),t[5]=u,t[6]=m);let h;t[7]!==f||t[8]!==m?(h=(0,$.jsxs)(`span`,{className:`whitespace-nowrap`,children:[f,m]}),t[7]=f,t[8]=m,t[9]=h):h=t[9];let g;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,$.jsx)(Y,{name:`arrow-down-s`,className:`size-4 flex-shrink-0 opacity-60`}),t[10]=g):g=t[10];let _;t[11]!==p||t[12]!==h?(_=(0,$.jsx)(Qe,{asChild:!0,children:(0,$.jsxs)(`button`,{type:`button`,className:`flex h-7 flex-shrink-0 items-center gap-1.5 rounded-md px-2 typography-code font-semibold text-foreground outline-none hover:bg-interactive-hover focus-visible:ring-2 focus-visible:ring-ring`,"aria-label":p,children:[h,g]})}),t[11]=p,t[12]=h,t[13]=_):_=t[13];let v;t[14]===o?v=t[15]:(v=e=>{(e===`working`||e===`staged`||e===`turn`)&&(o?.(e),l(!1))},t[14]=o,t[15]=v);let y;t[16]===s?y=t[17]:(y=s(`diffView.scope.changed`),t[16]=s,t[17]=y);let b;t[18]===y?b=t[19]:(b=(0,$.jsx)(`span`,{children:y}),t[18]=y,t[19]=b);let x;t[20]===r?x=t[21]:(x=(0,$.jsx)(`span`,{className:`typography-meta text-muted-foreground`,children:r}),t[20]=r,t[21]=x);let S;t[22]!==x||t[23]!==b?(S=(0,$.jsx)(Ye,{value:`working`,children:(0,$.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center justify-between gap-3`,children:[b,x]})}),t[22]=x,t[23]=b,t[24]=S):S=t[24];let C;t[25]===s?C=t[26]:(C=s(`diffView.scope.staged`),t[25]=s,t[26]=C);let w;t[27]===C?w=t[28]:(w=(0,$.jsx)(`span`,{children:C}),t[27]=C,t[28]=w);let T;t[29]===i?T=t[30]:(T=(0,$.jsx)(`span`,{className:`typography-meta text-muted-foreground`,children:i}),t[29]=i,t[30]=T);let E;t[31]!==w||t[32]!==T?(E=(0,$.jsx)(Ye,{value:`staged`,children:(0,$.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center justify-between gap-3`,children:[w,T]})}),t[31]=w,t[32]=T,t[33]=E):E=t[33];let D;t[34]===s?D=t[35]:(D=s(`diffView.scope.lastTurn`),t[34]=s,t[35]=D);let O;t[36]===D?O=t[37]:(O=(0,$.jsx)(`span`,{children:D}),t[36]=D,t[37]=O);let k;t[38]===a?k=t[39]:(k=(0,$.jsx)(`span`,{className:`typography-meta text-muted-foreground`,children:a}),t[38]=a,t[39]=k);let A;t[40]!==O||t[41]!==k?(A=(0,$.jsx)(Ye,{value:`turn`,children:(0,$.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center justify-between gap-3`,children:[O,k]})}),t[40]=O,t[41]=k,t[42]=A):A=t[42];let j;t[43]!==n||t[44]!==S||t[45]!==E||t[46]!==A||t[47]!==v?(j=(0,$.jsx)(Ze,{align:`start`,className:`w-40`,children:(0,$.jsxs)(rt,{value:n,onValueChange:v,children:[S,E,A]})}),t[43]=n,t[44]=S,t[45]=E,t[46]=A,t[47]=v,t[48]=j):j=t[48];let M;return t[49]!==c||t[50]!==j||t[51]!==_?(M=(0,$.jsxs)(Je,{open:c,onOpenChange:l,children:[_,j]}),t[49]=c,t[50]=j,t[51]=_,t[52]=M):M=t[52],M}),Ui=Q.memo(e=>{let t=(0,In.c)(11),{changedFiles:n,selectedFile:r,onSelectFile:i}=e,{t:a}=te();if(n.length===0)return null;let o;if(t[0]!==n||t[1]!==i||t[2]!==r||t[3]!==a){let e;t[5]!==i||t[6]!==r||t[7]!==a?(e=e=>{let t=ki(e),n=r===e.path;return(0,$.jsx)(`li`,{children:(0,$.jsxs)(`button`,{type:`button`,onClick:()=>i(e.path),className:J(`flex w-full items-center gap-1.5 rounded-md px-2 py-1 text-left transition-colors`,n?`bg-interactive-selection text-interactive-selection-foreground`:`text-muted-foreground hover:bg-interactive-hover hover:text-foreground`),children:[(0,$.jsx)(xt,{filePath:e.path,className:`size-3 flex-shrink-0`}),(0,$.jsx)(`span`,{className:`typography-code font-semibold w-3.5 text-center uppercase`,style:{color:t.color},title:a(t.descriptionKey),"aria-label":a(t.descriptionKey),children:t.code}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate typography-code`,style:{direction:`rtl`,textAlign:`left`,unicodeBidi:`plaintext`},title:e.path,children:e.path}),Vi(e.insertions,e.deletions)]})},e.path)},t[5]=i,t[6]=r,t[7]=a,t[8]=e):e=t[8],o=n.map(e),t[0]=n,t[1]=i,t[2]=r,t[3]=a,t[4]=o}else o=t[4];let s;return t[9]===o?s=t[10]:(s=(0,$.jsx)(Ie,{outerClassName:`flex-1 min-h-0`,className:`px-2 py-2`,children:(0,$.jsx)(`ul`,{className:`flex flex-col gap-1`,children:o})}),t[9]=o,t[10]=s),s}),Wi=Q.memo(e=>{let t=(0,In.c)(20),{filePath:n,diff:r,renderSideBySide:i}=e,{t:a}=te(),o=r.original.length>0,s=r.modified.length>0,c=i?`flex flex-row gap-6 items-start justify-center`:`flex flex-col gap-4 items-center`,l=i?`flex flex-col items-center gap-2 flex-1 min-w-0`:`flex flex-col items-center gap-2`,u;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(u={contain:`layout`},t[0]=u):u=t[0];let d;t[1]!==r.original||t[2]!==n||t[3]!==o||t[4]!==l||t[5]!==i||t[6]!==a?(d=o&&(0,$.jsxs)(`div`,{className:l,children:[(0,$.jsx)(`span`,{className:`typography-meta text-muted-foreground font-medium`,children:a(`diffView.image.original`)}),(0,$.jsx)(`img`,{src:r.original,alt:a(`diffView.image.originalAlt`,{path:n}),className:i?`max-w-full max-h-[70vh] object-contain`:`max-w-full object-contain`,style:{imageRendering:`auto`}})]}),t[1]=r.original,t[2]=n,t[3]=o,t[4]=l,t[5]=i,t[6]=a,t[7]=d):d=t[7];let f;t[8]!==r.modified||t[9]!==n||t[10]!==s||t[11]!==o||t[12]!==l||t[13]!==i||t[14]!==a?(f=s&&(0,$.jsxs)(`div`,{className:l,children:[(0,$.jsx)(`span`,{className:`typography-meta text-muted-foreground font-medium`,children:a(o?`diffView.image.modified`:`diffView.image.new`)}),(0,$.jsx)(`img`,{src:r.modified,alt:a(`diffView.image.modifiedAlt`,{path:n}),className:i?`max-w-full max-h-[70vh] object-contain`:`max-w-full object-contain`,style:{imageRendering:`auto`}})]}),t[8]=r.modified,t[9]=n,t[10]=s,t[11]=o,t[12]=l,t[13]=i,t[14]=a,t[15]=f):f=t[15];let p;return t[16]!==c||t[17]!==d||t[18]!==f?(p=(0,$.jsx)(`div`,{className:`w-full overflow-auto p-4`,style:u,children:(0,$.jsxs)(`div`,{className:c,children:[d,f]})}),t[16]=c,t[17]=d,t[18]=f,t[19]=p):p=t[19],p}),Gi=Q.memo(e=>{let t=(0,In.c)(17),{filePath:n,diff:r,renderSideBySide:i,wrapLines:a,focusLine:o}=e,s;t[0]===n?s=t[1]:(s=qt(n)||`text`,t[0]=n,t[1]=s);let c=s;if(r.isBinary){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(Ti,{}),t[2]=e):e=t[2],e}if(Gt(n)){let e;return t[3]!==r||t[4]!==n||t[5]!==i?(e=(0,$.jsx)(Wi,{filePath:n,diff:r,renderSideBySide:i}),t[3]=r,t[4]=n,t[5]=i,t[6]=e):e=t[6],e}let l;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(l={contain:`layout`},t[7]=l):l=t[7];let u;return t[8]!==r.fileDiff||t[9]!==r.modified||t[10]!==r.original||t[11]!==n||t[12]!==o||t[13]!==c||t[14]!==i||t[15]!==a?(u=(0,$.jsx)(`div`,{className:`w-full`,style:l,children:(0,$.jsx)(Hr,{original:r.original,modified:r.modified,fileDiff:r.fileDiff,language:c,fileName:n,renderSideBySide:i,wrapLines:a,focusLine:o,layout:`inline`,enableSelectionActions:!0})}),t[8]=r.fileDiff,t[9]=r.modified,t[10]=r.original,t[11]=n,t[12]=o,t[13]=c,t[14]=i,t[15]=a,t[16]=u):u=t[16],u}),Ki=Q.memo(e=>{let t=(0,In.c)(7),{filePath:n,staged:r,busyAction:i,disabled:a,onAction:o}=e,{t:s}=te(),c;return t[0]!==i||t[1]!==a||t[2]!==n||t[3]!==o||t[4]!==r||t[5]!==s?(c=(0,$.jsx)(`div`,{className:`flex items-center gap-0.5 rounded-full border border-[var(--interactive-border)]/45 bg-[var(--surface-background)]/95 px-1 py-0.5 shadow-lg backdrop-blur-md`,children:r?(0,$.jsx)(qi,{label:s(`gitView.changes.unstageFileAria`,{path:n}),icon:`arrow-go-back`,loading:i===`unstage`,disabled:a,onClick:()=>o(`unstage`)}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(qi,{label:s(`gitView.changes.revertFileAria`,{path:n}),icon:`arrow-go-back`,loading:i===`discard`,disabled:a,tone:`failure`,onClick:()=>o(`discard`)}),(0,$.jsx)(qi,{label:s(`gitView.changes.stageFileAria`,{path:n}),icon:`add`,loading:i===`stage`,disabled:a,tone:`success`,onClick:()=>o(`stage`)})]})}),t[0]=i,t[1]=a,t[2]=n,t[3]=o,t[4]=r,t[5]=s,t[6]=c):c=t[6],c}),qi=e=>{let t=(0,In.c)(14),{label:n,icon:r,loading:i,disabled:a,tone:o,onClick:s}=e,c=o===`failure`&&`text-[var(--status-error)] hover:text-[var(--status-error)]`,l=o===`success`&&`text-[var(--status-success)] hover:text-[var(--status-success)]`,u;t[0]!==c||t[1]!==l?(u=J(`h-6 w-6 rounded-none bg-transparent p-0 text-muted-foreground opacity-70 hover:bg-transparent hover:text-foreground hover:opacity-100`,c,l),t[0]=c,t[1]=l,t[2]=u):u=t[2];let d;t[3]===s?d=t[4]:(d=e=>{e.stopPropagation(),s()},t[3]=s,t[4]=d);let f;t[5]!==r||t[6]!==i?(f=i?(0,$.jsx)(Y,{name:`loader-4`,className:`size-3.5 animate-spin`}):(0,$.jsx)(Y,{name:r,className:r===`add`?`size-4`:`size-3.5`}),t[5]=r,t[6]=i,t[7]=f):f=t[7];let p;return t[8]!==a||t[9]!==n||t[10]!==u||t[11]!==d||t[12]!==f?(p=(0,$.jsx)(X,{variant:`ghost`,size:`sm`,className:u,disabled:a,title:n,"aria-label":n,onClick:d,children:f}),t[8]=a,t[9]=n,t[10]=u,t[11]=d,t[12]=f,t[13]=p):p=t[13],p},Ji=Q.memo(({directory:e,file:t,layout:n,wrapLines:r,isSelected:i,isExpanded:a,isMounted:o,onSelect:s,onExpandedChange:c,registerSectionRef:l,showOpenInEditorAction:u=!1,isOpeningInEditor:d=!1,onOpenInEditor:f,onOpenFile:p,staged:m=!1,loadFullFiles:h=!1,initialDiffData:g=null,focusLine:_=null,showFileActions:v=!0,disableGitFetch:y=!1,turnChangesRequest:b=null,loadTurnChangeFile:x=!1})=>{let{t:S}=te(),{git:C}=Lt(),w=Qt(Q.useCallback(n=>n.directories.get(e)?.diffCache.get(t.path)??null,[e,t.path])),T=Qt(e=>e.setDiff),E=Qt(e=>e.fetchStatus),[D,O]=Q.useState(0),[k,A]=Q.useState(null),[j,M]=Q.useState(!1),[ee,N]=Q.useState(null),[P,F]=Q.useState(!1),[I,L]=Q.useState(null),[R,ne]=Q.useState(null),z=Q.useRef(null),re=Q.useRef(null),B=Q.useMemo(()=>ki(t),[t]),V=n===`side-by-side`,H=h?`full`:`patch`,ie=`${t.index}:${t.working_dir}:${t.insertions}:${t.deletions}`,ae=_i({sessionID:b?.sessionID??``,directory:b?.directory??``,messageID:b?.messageID??``,diffCount:b?.diffCount,file:t.path},{enabled:x&&!!b&&a&&o}),oe=Q.useMemo(()=>{let e=ae.data?.diff;return e?typeof e.patch==`string`&&e.patch.length>0?Bi(t.path,e.patch,`patch`):typeof e.before==`string`&&e.before.length>0||typeof e.after==`string`&&e.after.length>0?{original:e.before??``,modified:e.after??``,contextMode:`full`}:null:null},[t.path,ae.data]),U=Q.useMemo(()=>{if(g)return g;if(oe)return oe;if(m)return R;if(I)return I;if(!w)return null;let e={original:w.original,modified:w.modified,isBinary:w.isBinary,contextMode:`full`};return zi(e)?e:null},[w,g,I,m,R,oe]),se=ae.error instanceof Error?ae.error.message:ae.error?String(ae.error):null,W=U?null:se??k,ce=x&&ae.isPending||j,le=U?.contextMode===H,G=Q.useCallback(e=>{re.current=e,l(t.path,e)},[t.path,l]),K=Q.useCallback(e=>{c(t.path,e)},[t.path,c]),ue=Q.useCallback(()=>{s(t.path)},[t.path,s]);Q.useEffect(()=>{if(!a||!o)return;if(y){z.current=null,M(!1);return}if(!e||g){z.current=null,M(!1);return}let n=`${e}::${t.path}::${m?`staged`:`unstaged`}::${ie}::${H}::${D}`;if(z.current===n)return;let r=!!(U&&le);z.current=n,A(null),r||M(!0);let i=!1,s=h?Si:Ci,c=Gt(t.path)||h?C.getGitFileDiff(e,{path:t.path,staged:m}):C.getGitDiff(e,{path:t.path,staged:m,contextLines:s}),l=yi,u=new Promise((e,t)=>{setTimeout(()=>t(Error(`Timed out after ${l}ms`)),l)});return Promise.race([c,u]).then(n=>{if(!i){if(`diff`in n){let e=Bi(t.path,n.diff,H);m?ne(e):L(e)}else{let r={original:n.original??``,modified:n.modified??``,isBinary:n.isBinary,contextMode:`full`};m?ne(r):(L(r),T(e,t.path,r))}M(!1)}}).catch(e=>{if(i)return;let t=e instanceof Error?e.message:String(e);A(t),M(!1)}),()=>{i=!0,z.current===n&&(z.current=null)}},[H,U,le,D,e,y,t.path,ie,C,g,a,o,h,T,m]);let de=Q.useCallback(()=>{K(!a),ue()},[K,ue,a]),fe=Q.useCallback(async n=>{if(!(!e||ee!==null)){N(n);try{n===`stage`?await C.stageGitFile(e,t.path):n===`unstage`?await C.unstageGitFile(e,t.path):await C.revertGitFile(e,t.path,{scope:`working`}),O(e=>e+1),await E(e,C)}catch(e){let t=n===`unstage`?`gitView.toast.unstageFileFailed`:n===`stage`?`gitView.toast.stageFileFailed`:`gitView.toast.revertFailed`;q.error(e instanceof Error?e.message:S(t))}finally{N(e=>e===n?null:e)}}},[e,E,t.path,ee,C,S]);return(0,$.jsxs)(`div`,{ref:G,className:`scroll-mt-9 border-b border-[var(--interactive-border)]/40 last:border-b-0`,children:[(0,$.jsx)(`div`,{className:`sticky top-0 z-30 border-b border-[var(--interactive-border)]/35 bg-[var(--surface-elevated)]/90 backdrop-blur-md supports-[backdrop-filter]:bg-[var(--surface-elevated)]/80`,children:(0,$.jsxs)(`div`,{role:`button`,tabIndex:0,onClick:de,onKeyDown:e=>{e.target===e.currentTarget&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),de())},className:J(`cursor-pointer`,`group/header relative grid min-h-8 w-full min-w-0 grid-cols-[minmax(0,1fr)_auto] items-center gap-1.5 overflow-hidden px-2 py-1`,`bg-transparent`,`text-muted-foreground hover:text-foreground`,i?`bg-[var(--interactive-selection)]/35`:null),children:[(0,$.jsx)(`div`,{className:`absolute inset-0 pointer-events-none group-hover/header:bg-[var(--interactive-hover)]/50`}),(0,$.jsxs)(`div`,{className:`relative flex min-w-0 flex-1 items-center gap-1.5`,children:[(0,$.jsx)(`span`,{className:`flex size-4 items-center justify-center opacity-70 group-hover/header:opacity-100`,children:a?(0,$.jsx)(Y,{name:`arrow-down-s`,className:`size-3.5`}):(0,$.jsx)(Y,{name:`arrow-right-s`,className:`size-3.5`})}),(0,$.jsx)(`span`,{className:`typography-code font-semibold leading-none w-3.5 text-center uppercase`,style:{color:B.color},title:S(B.descriptionKey),"aria-label":S(B.descriptionKey),children:B.code}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 overflow-hidden typography-code`,title:t.path,children:(0,$.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1.5`,children:[(0,$.jsx)(xt,{filePath:t.path,className:`size-3 flex-shrink-0 align-middle`}),(()=>{let e=t.path.lastIndexOf(`/`);if(e===-1)return(0,$.jsx)(`span`,{className:`block min-w-0 truncate typography-code text-foreground`,style:{direction:`rtl`,textAlign:`left`,unicodeBidi:`plaintext`},children:t.path});let n=t.path.slice(0,e),r=t.path.slice(e+1);return(0,$.jsxs)(`span`,{className:`flex min-w-0 items-baseline overflow-hidden`,children:[(0,$.jsx)(`span`,{className:`min-w-0 truncate typography-code text-muted-foreground`,style:{direction:`rtl`,textAlign:`left`,unicodeBidi:`plaintext`},children:n}),(0,$.jsxs)(`span`,{className:`flex-shrink-0 typography-code`,children:[(0,$.jsx)(`span`,{className:`text-muted-foreground`,children:`/`}),(0,$.jsx)(`span`,{className:`text-foreground`,children:r})]})]})})()]})})]}),(0,$.jsxs)(`div`,{className:`relative flex shrink-0 items-center justify-self-end gap-1.5`,children:[Vi(t.insertions,t.deletions),u&&f?(0,$.jsx)(X,{variant:`ghost`,size:`sm`,className:`h-5 w-5 p-0 opacity-70 hover:opacity-100`,title:S(`diffView.actions.openFileInEditorAtChange`),onClick:e=>{e.stopPropagation(),f(t.path,U)},disabled:d,children:d?(0,$.jsx)(Y,{name:`loader-4`,className:`size-3.5 animate-spin`}):(0,$.jsx)(Y,{name:`edit`,className:`size-3.5`})}):null,p?(0,$.jsx)(X,{variant:`ghost`,size:`sm`,className:`h-5 w-5 p-0 opacity-70 hover:opacity-100`,title:S(`diffView.actions.openFilePreview`),"aria-label":S(`diffView.actions.openFilePreview`),onClick:e=>{e.stopPropagation(),p(t.path)},children:(0,$.jsx)(Y,{name:`eye`,className:`size-3.5`})}):null]})]})}),a&&(0,$.jsxs)(`div`,{className:`relative bg-background overflow-hidden`,children:[!o&&!W?(0,$.jsx)(`div`,{className:`h-40 border border-border/40 bg-background/40`}):null,W?(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-2 px-4 py-8 text-sm text-muted-foreground`,children:[(0,$.jsx)(`div`,{className:`typography-ui-label font-semibold text-foreground`,children:S(`diffView.state.failedToLoadDiff`)}),(0,$.jsx)(`div`,{className:`typography-meta text-muted-foreground max-w-[32rem] text-center`,children:W}),(0,$.jsx)(`button`,{type:`button`,className:`typography-ui-label text-primary hover:underline`,onClick:()=>{if(x){ae.refetch();return}O(e=>e+1)},children:S(`diffView.actions.retry`)})]}):null,o&&ce&&!U&&!W?(0,$.jsxs)(`div`,{className:`flex items-center justify-center gap-2 px-4 py-8 text-sm text-muted-foreground`,children:[(0,$.jsx)(Y,{name:`loader-4`,className:`size-4 animate-spin`}),S(`diffView.state.loadingDiff`)]}):null,o&&U&&!P&&t.insertions+t.deletions>bi?(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-2 px-4 py-8 text-sm text-muted-foreground`,children:[(0,$.jsx)(`div`,{className:`typography-ui-label font-semibold text-foreground`,children:S(`diffView.state.largeDiff`,{count:t.insertions+t.deletions})}),(0,$.jsx)(`div`,{className:`typography-meta text-muted-foreground`,children:S(`diffView.state.largeDiffDescription`)}),(0,$.jsx)(`button`,{type:`button`,className:`typography-ui-label text-primary hover:underline`,onClick:()=>F(!0),children:S(`diffView.actions.renderAnyway`)})]}):null,o&&U&&(P||t.insertions+t.deletions<=bi)?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Gi,{filePath:t.path,diff:U,renderSideBySide:V,wrapLines:r,focusLine:_}),v?(0,$.jsx)(`div`,{className:`pointer-events-none absolute bottom-3 right-3 z-20`,children:(0,$.jsx)(`div`,{className:`pointer-events-auto`,children:(0,$.jsx)(Ki,{filePath:t.path,staged:m,busyAction:ee,disabled:ee!==null,onAction:fe})})}):null]}):null]})]})}),Yi=({hideStackedFileSidebar:e=!1,stackedDefaultCollapsedAll:t=!1,pinSelectedFileHeaderToTopOnNavigate:n=!1,showOpenInEditorAction:r=!1,diffScope:i=`all`,turnMessageId:a=null,sessionId:o=null,directory:s=null,onDiffScopeChange:u,targetFilePath:d=null,targetLine:f=null,toolPatches:p=null,flushContent:m=!1,singleFileView:h=!1,preloadFullFiles:g=!1,navigationRequestKey:_})=>{let{t:v}=te(),{git:y,files:b}=Lt(),x=Jt(),S=typeof s==`string`&&s.trim()?s.trim():x,{screenWidth:C,isMobile:w}=ct(),T=en(S??null),E=tn(S??null),D=$t(S??null),O=Qt(e=>e.setActiveDirectory),k=Qt(e=>e.ensureStatus),A=Qt(e=>e.fetchStatus),j=Qt(e=>e.setDiff),[M,ee]=Q.useState(null),[N,P]=Q.useState(!1),[F,L]=Q.useState(null),[R,ne]=Q.useState(null),[z,re]=Q.useState(()=>new Set),[B,V]=Q.useState(()=>new Set),[H,ie]=Q.useState(g),[ae,oe]=Q.useState(0),[U,se]=Q.useState(!1),[W,le]=Q.useState(!1),[G,K]=Q.useState(i);Q.useEffect(()=>{K(i)},[i]);let ue=c(e=>e.pendingDiffFile),de=c(e=>e.pendingDiffStaged),fe=c(e=>e.pendingDiffScope),pe=c(e=>e.pendingDiffLine),me=c(e=>e.setPendingDiffFile),he=c(e=>e.diffLayoutPreference),ge=c(e=>e.diffFileLayout),_e=c(e=>e.setDiffFileLayout),ye=c(e=>e.diffWrapLines),be=c(e=>e.setDiffWrapLines),xe=c(e=>e.openContextFileAtLine),Ce=c(e=>e.openContextFile),Te=vt(),Ee=ve(e=>e.currentSessionId),De=typeof o==`string`&&o.trim()?o.trim():Ee,Oe=we(De??``,S??void 0),ke=ye,Ae=G===`staged`||G!==`working`&&null,je=Ae??N,Me=w||C<=768,Ne=!!De&&G!==`turn`&&!Me&&!l(),Pe=!e&&!Me&&C>=1024,Fe=Q.useRef(null),Le=Q.useRef(new Map),Re=Q.useRef(null),ze=Q.useRef(null),Be=Q.useRef(!1),We=Q.useRef(null),Ge=Q.useRef(null),Ke=Q.useRef(null),qe=Q.useRef(null),Je=Q.useCallback(()=>{Re.current=null,Be.current=!1,ne(null),ze.current!==null&&(window.cancelAnimationFrame(ze.current),ze.current=null)},[]),Ye=Q.useCallback(e=>{re(t=>{if(t.has(e))return t;let n=new Set(t);return n.add(e),n})},[]),Xe=Q.useMemo(()=>{let e=Oe.length-1;if(a&&(e=Oe.findIndex(e=>e.id===a),e<0))return{messageID:null,count:0,hasDiffs:!1,thinDiffs:[]};for(let t=e;t>=0;--t){let e=Oe[t];if(e.role!==`user`)continue;let n=Li(e.summary?.diffs),r=typeof e.summary?.diffCount==`number`&&Number.isFinite(e.summary.diffCount)?Math.max(0,Math.trunc(e.summary.diffCount)):n.length;return{messageID:typeof e.id==`string`&&e.id?e.id:null,count:r,hasDiffs:e.summary?.hasDiffs===!0||r>0||n.length>0,thinDiffs:n}}return{messageID:null,count:0,hasDiffs:!1,thinDiffs:[]}},[Oe,a]),Ze=Q.useMemo(()=>ai(p??[]),[p]),Qe=Ze.length>0,$e=Q.useMemo(()=>!De||!S||!Xe.messageID?null:{sessionID:De,directory:S,messageID:Xe.messageID,diffCount:Xe.count},[S,De,Xe.count,Xe.messageID]),et=Q.useMemo(()=>Qe?Ze:Xe.thinDiffs,[Ze,Xe.thinDiffs,Qe]),tt=Q.useMemo(()=>{let e=new Map;for(let t of et)if(t.file){if(typeof t.patch==`string`&&t.patch.length>0){e.set(t.file,Bi(t.file,t.patch,`patch`));continue}(typeof t.before==`string`&&t.before.length>0||typeof t.after==`string`&&t.after.length>0)&&e.set(t.file,{original:t.before??``,modified:t.after??``,contextMode:`full`})}return e},[et]),nt=Q.useMemo(()=>{if(G===`turn`)return et.map(e=>({path:e.file??``,index:``,working_dir:Ri(e.status),insertions:e.additions??0,deletions:e.deletions??0,isNew:e.status===`added`})).filter(e=>e.path).sort((e,t)=>e.path.localeCompare(t.path));if(!E?.files)return[];let e=E.diffStats??{},t=G===`staged`?ji:G===`working`?Mi:()=>!0;return E.files.filter(t).map(t=>({...t,insertions:e[t.path]?.insertions??0,deletions:e[t.path]?.deletions??0,isNew:Ai(t)})).sort((e,t)=>e.path.localeCompare(t.path))},[G,et,E]),rt=Q.useMemo(()=>E?.files?E.files.filter(Mi).length:0,[E]),it=Q.useMemo(()=>E?.files?E.files.filter(ji).length:0,[E]),at=Qe?et.length:Xe.count,ot=Q.useMemo(()=>nt.map(e=>e.path).join(`\0`),[nt]),st=Q.useMemo(()=>{if(!h)return nt;let e=d?.trim()||M;return e?nt.filter(t=>t.path===e):[]},[nt,M,h,d]);Q.useEffect(()=>{let e=ot?ot.split(`\0`):[],n=new Set(e),r=`${S??``}:${G}:${a??``}:${t?`collapsed`:`default`}`,i=p!==null&&Ke.current!==p,o=Ge.current!==r||i;Ge.current=r,Ke.current=p,re(r=>{if(o){let n=t||G===`turn`&&!Qe?0:wi(e.length);return new Set(e.slice(0,n))}let i=!1,a=new Set;for(let e of r){if(!n.has(e)){i=!0;continue}a.add(e)}return i?a:r}),V(e=>{if(o)return new Set;let t=!1,r=new Set;for(let i of e){if(!n.has(i)){t=!0;continue}r.add(i)}return t?r:e})},[G,ot,S,t,p,a,Qe]);let Z=Q.useCallback(()=>{We.current=null;let e=Fe.current;if(!e)return;let t=e.getBoundingClientRect(),n=t.top-xi,r=t.bottom+xi,i={};for(let[e,t]of Le.current){if(!t||!z.has(e))continue;let a=t.getBoundingClientRect();a.bottom<n||a.top>r||(i[e]=!0)}V(e=>{let t=!1,n=new Set(e);for(let e of Object.keys(i))n.has(e)||(n.add(e),t=!0);return t?n:e})},[z]),lt=Q.useCallback(()=>{typeof window>`u`||We.current===null&&(We.current=window.requestAnimationFrame(Z))},[Z]);Q.useEffect(()=>{let e=Fe.current;if(e)return lt(),e.addEventListener(`scroll`,lt,{passive:!0}),window.addEventListener(`resize`,lt),()=>{e.removeEventListener(`scroll`,lt),window.removeEventListener(`resize`,lt),We.current!==null&&(window.cancelAnimationFrame(We.current),We.current=null)}},[nt,z,lt]);let ut=Q.useCallback(e=>{let t=ge[e.path];if(t)return t;if(he===`inline`)return`inline`;if(he===`side-by-side`)return`side-by-side`;let n=C<vi;return e.isNew||n?`inline`:`side-by-side`},[ge,he,C]),dt=Q.useMemo(()=>st.length===0?null:st.every(e=>ut(e)===`side-by-side`)?`side-by-side`:`inline`,[ut,st]);Q.useEffect(()=>{S&&(O(S),k(S,y))},[S,O,k,y]),Q.useEffect(()=>{if(S)return Se.onGitRefreshHint(e=>{Pi(e.directory)===Pi(S)&&A(S,y)})},[S,A,y]),Q.useEffect(()=>{G!==`all`&&!fe||ue&&(fe&&K(fe),ee(ue),P(fe===`staged`||!fe&&de),L(pe),me(null),Be.current=!0,Re.current=ue,Ye(ue),oe(e=>e+1))},[G,Ye,ue,pe,fe,de,me]),Q.useEffect(()=>{if(G===`all`)return;let e=d?.trim();if(!e)return;Ye(e),ee(e),P(G===`staged`),L(f);let t=oi({scope:G,navigationRequestKey:_,targetFilePath:e,targetLine:f}),n=nt.some(t=>t.path===e);si(qe.current,t,n)&&(qe.current=t,Be.current=!0,Re.current=e,oe(e=>e+1))},[G,nt,Ye,_,d,f]),Q.useEffect(()=>{M&&(nt.some(e=>e.path===M)||(ee(null),P(!1)))},[nt,M]);let ft=Q.useCallback((e,t)=>{let n=Le.current;t?n.set(e,t):n.delete(e),lt()},[lt]),mt=Q.useCallback((e,t)=>{Je(),re(n=>{if(t===n.has(e))return n;let r=new Set(n);return t?r.add(e):r.delete(e),r}),t||V(t=>{if(!t.has(e))return t;let n=new Set(t);return n.delete(e),n}),lt()},[Je,lt]),ht=Q.useCallback(()=>{Je(),re(e=>e.size>0?new Set:new Set(nt.map(e=>e.path))),V(new Set),lt()},[Je,nt,lt]),gt=Q.useCallback(async e=>{if(!Ee)return;let t=ve.getState().getDirectoryForSession(Ee)||S||``;if(!t){q.error(v(`diffView.reviewDialog.toast.noSessionDirectory`));return}le(!0);try{await ce({originalSessionID:Ee,directory:t,providerID:e.providerID,modelID:e.modelID,agent:e.agent||void 0,variant:e.variant||void 0,generateHandoff:e.generateHandoff,returnAfterHandoffRequest:e.generateHandoff,autoReview:e.autoReview}),se(!1)}catch(e){console.error(`[review-flow] failed to start review flow`,e),q.error(e instanceof Error?e.message:v(`diffView.reviewDialog.toast.startFailed`))}finally{le(!1)}},[Ee,S,v]),_t=Q.useCallback(e=>{let t=Le.current.get(e),n=Fe.current;if(!t||!n)return!1;let r=n.getBoundingClientRect(),i=t.getBoundingClientRect().top-r.top,a=Math.max(0,n.scrollHeight-n.clientHeight);return n.scrollTop=Math.min(a,Math.max(0,n.scrollTop+i)),!0},[]);Q.useEffect(()=>{if(!Re.current)return;let e=0,t=!1,r=()=>{t||(t=!0,Re.current=null,Be.current=!1,ne(null),ze.current!==null&&(window.cancelAnimationFrame(ze.current),ze.current=null))},i=()=>{if(t){ze.current=null;return}let a=Re.current;if(!a){r(),ze.current=null;return}if(!_t(a)){e+=1,e<20?ze.current=window.requestAnimationFrame(i):(r(),ze.current=null);return}n&&Be.current&&ne(a),r()};return ze.current=window.requestAnimationFrame(i),()=>{t=!0,ze.current!==null&&(window.cancelAnimationFrame(ze.current),ze.current=null)}},[n,ae,_t]);let yt=Q.useCallback(e=>{},[]),bt=Q.useCallback(e=>{Je(),ee(e),P(!1),Be.current=!0,Re.current=e,Ye(e),oe(e=>e+1),_t(e)},[Je,Ye,_t]),xt=Q.useCallback(e=>{let t=e===`side-by-side`?`side-by-side`:`inline`;st.forEach(e=>{_e(e.path,t)})},[_e,st]),[St,Ct]=Q.useState(null),wt=Q.useCallback(async(e,t)=>{if(!(!S||!e)){Ct(e);try{let n=null;if(t?.patch&&!t.isBinary&&!Gt(e)?n=ii(t.patch):t&&t.contextMode===`full`&&!t.isBinary&&!Gt(e)&&(n=Fi(t.original,t.modified)),n===null)try{n=ii((await y.getGitDiff(S,{path:e,staged:je,contextLines:3})).diff)}catch{n=null}let r=t;if(n===null||!r){let t=await y.getGitFileDiff(S,{path:e,staged:je});r={original:t.original??``,modified:t.modified??``,isBinary:t.isBinary},je||j(S,e,r)}let i=n??(r.isBinary||Gt(e)?1:Fi(r.original,r.modified)),a=Ni(S,e),o=await Jr(b,a);if(!o.ok){q.error(Yr(o.reason));return}xe(S,a,i,1)}finally{Ct(t=>t===e?null:t)}}},[je,S,b,y,xe,j]),Tt=I(e=>{if(!S||!e)return;let t=Ni(S,e);if(Te){Te.openFile({path:t});return}Jr(b,t).then(e=>{if(!e.ok){q.error(Yr(e.reason));return}Ce(S,t)})});return(0,$.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden bg-background`,children:[h?null:(0,$.jsxs)(`div`,{className:`@container/diff-toolbar flex min-w-0 items-center gap-1.5 px-2 py-1.5 bg-background`,children:[!w&&(G===`working`||G===`staged`||G===`turn`?(0,$.jsx)(Hi,{scope:G,workingCount:rt,stagedCount:it,turnCount:at,onScopeChange:e=>{K(e),u?.(e)}}):(0,$.jsx)(`div`,{className:`flex items-center gap-1 rounded-md px-2 py-1 text-muted-foreground shrink-0`,children:(0,$.jsx)(`span`,{className:`typography-code font-semibold text-foreground`,children:D&&!E?v(`diffView.state.loadingChanges`):st.length===1?v(`diffView.summary.changedFilesSingle`,{count:st.length}):v(`diffView.summary.changedFilesPlural`,{count:st.length})})})),!h&&nt.length>0&&(G!==`turn`||Qe)&&(0,$.jsxs)(X,{variant:`ghost`,size:`sm`,onClick:ht,className:J(`diff-toolbar__expand-button h-7 flex-shrink-0 gap-1 px-1.5 text-muted-foreground hover:text-foreground`,`ml-auto`),title:z.size>0?v(`diffView.actions.collapseAll`):v(`diffView.actions.expandAll`),children:[(0,$.jsx)(Y,{name:`expand-up-down`,className:`size-4`}),(0,$.jsx)(`span`,{className:`diff-toolbar__expand-label typography-code`,children:z.size>0?v(`diffView.actions.collapseAll`):v(`diffView.actions.expandAll`)})]}),nt.length>0&&Ne&&(0,$.jsxs)(X,{variant:`default`,size:`sm`,onClick:()=>se(!0),disabled:W,className:`diff-toolbar__review-button h-7 flex-shrink-0 gap-1.5 px-2`,"aria-label":v(`diffView.actions.reviewAria`),children:[W?(0,$.jsx)(Y,{name:`loader-4`,className:`size-4 animate-spin`}):(0,$.jsx)(Y,{name:`search-eye`,className:`size-4`}),(0,$.jsx)(`span`,{className:`diff-toolbar__review-label typography-code`,children:v(`diffView.actions.review`)})]}),nt.length>0&&(0,$.jsxs)(Ue,{children:[(0,$.jsx)(Ve,{asChild:!0,children:(0,$.jsx)(X,{variant:`ghost`,size:`sm`,onClick:()=>ie(e=>!e),"aria-pressed":H,"aria-label":v(H?`diffView.actions.disableFullFiles`:`diffView.actions.loadFullFiles`),className:J(`h-7 w-7 flex-shrink-0 p-0 text-muted-foreground hover:text-foreground`,H&&`bg-interactive-selection text-interactive-selection-foreground`),children:(0,$.jsx)(Y,{name:`file-download`,className:`size-4`})})}),(0,$.jsx)(He,{children:(0,$.jsx)(`p`,{children:v(H?`diffView.actions.disableFullFiles`:`diffView.actions.loadFullFiles`)})})]}),nt.length>0&&(0,$.jsx)(X,{variant:`ghost`,size:`sm`,onClick:()=>be(!ye),className:J(`h-5 w-5 p-0 transition-opacity`,ke?`text-foreground opacity-100`:`text-muted-foreground opacity-60 hover:opacity-100`),title:v(ke?`diffView.actions.disableLineWrap`:`diffView.actions.enableLineWrap`),children:(0,$.jsx)(Y,{name:`text-wrap`,className:`size-4`})}),dt&&(0,$.jsx)(rn,{mode:dt===`side-by-side`?`side-by-side`:`unified`,onModeChange:xt})]}),(0,$.jsx)(pt,{open:U,onOpenChange:se,projectDirectory:S??null,submitting:W,onConfirm:gt}),S?G!==`turn`&&D&&!E?(0,$.jsxs)(`div`,{className:`flex flex-1 items-center justify-center gap-2 text-sm text-muted-foreground`,children:[(0,$.jsx)(Y,{name:`loader-4`,className:`size-4 animate-spin`}),v(`diffView.state.loadingRepositoryStatus`)]}):G!==`turn`&&T===!1?(0,$.jsx)(`div`,{className:`flex flex-1 items-center justify-center text-sm text-muted-foreground`,children:v(`diffView.state.notGitRepository`)}):st.length===0?(0,$.jsx)(`div`,{className:`flex flex-1 items-center justify-center text-sm text-muted-foreground`,children:v(G===`turn`?`diffView.state.noLastTurnChanges`:`diffView.state.cleanWorkingTree`)}):(()=>{if(!S)return null;let e=e=>Ae===null?N&&e===M:Ae;return(0,$.jsxs)(`div`,{className:J(`flex min-w-0 flex-1 min-h-0 h-full`,m?`gap-0`:`gap-3 px-3 pb-3 pt-2`),children:[Pe&&(0,$.jsxs)(`section`,{className:`hidden lg:flex w-72 flex-col rounded-xl border border-border/60 bg-background/70 overflow-hidden`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-1.5 border-b border-border/40`,children:[(0,$.jsx)(`span`,{className:`typography-code font-semibold text-foreground`,children:v(`diffView.section.files`)}),(0,$.jsx)(`span`,{className:`typography-code text-muted-foreground`,children:nt.length})]}),(0,$.jsx)(Ui,{changedFiles:nt,selectedFile:null,onSelectFile:bt})]}),(0,$.jsx)(`div`,{className:`relative flex-1 min-w-0 min-h-0 h-full`,children:(0,$.jsx)(Ie,{ref:Fe,outerClassName:`min-h-0 h-full`,className:`[overflow-anchor:none] pb-16 pwa-overlay-scroll`,disableHorizontal:!0,observeMutations:!1,preventOverscroll:!0,"data-diff-virtual-root":!0,children:(0,$.jsx)(`div`,{className:`flex flex-col [overflow-anchor:none]`,"data-diff-virtual-content":!0,children:st.map(t=>(0,$.jsx)(Ji,{directory:S,file:t,layout:ut(t),wrapLines:ke,isSelected:!1,isExpanded:z.has(t.path),isMounted:B.has(t.path)||t.path===R,onSelect:yt,onExpandedChange:mt,registerSectionRef:ft,showOpenInEditorAction:r&&G!==`turn`,isOpeningInEditor:St===t.path,onOpenInEditor:(e,t)=>{wt(e,t)},onOpenFile:Tt,staged:e(t.path),loadFullFiles:H,initialDiffData:G===`turn`?tt.get(t.path)??null:null,focusLine:t.path===(d?.trim()||M)?f??F:null,showFileActions:G!==`turn`,disableGitFetch:G===`turn`,turnChangesRequest:$e,loadTurnChangeFile:G===`turn`&&!Qe},t.path))})})})]})})():(0,$.jsx)(`div`,{className:`flex flex-1 items-center justify-center text-sm text-muted-foreground`,children:v(`diffView.state.selectSessionDirectory`)})]})},Xi=(e,t)=>{if(!t)return null;let n=Number.parseInt(e.trim(),10);return!Number.isFinite(n)||n<1?null:Math.min(n,t.state.doc.lines)},Zi=(e,t)=>{let n=e.state.doc.lineAt(t.main.head);return{lineNumber:n.number,character:t.main.head-n.from+1,selection:t}},Qi=(e,t,n)=>{let r=e.state.doc.line(t),i=Math.max(1,Math.min(n,r.length+1)),a=r.from+i-1;e.dispatch({selection:F.cursor(a),effects:P.scrollIntoView(a,{y:`center`})})};function $i({open:e,onOpenChange:t,view:n,variant:r=`overlay`}){let{t:i}=te(),[a,o]=Q.useState(``),s=Q.useRef(null),c=Q.useRef(!1),l=Q.useRef(null),u=Q.useRef(null),d=Q.useMemo(()=>Xi(a,n),[a,n]);Q.useEffect(()=>{!e||!n||(c.current=!1,s.current=Zi(n,n.state.selection),o(``))},[e,n]),Q.useEffect(()=>{e&&window.requestAnimationFrame(()=>{u.current?.focus(),u.current?.select()})},[e]),Q.useEffect(()=>{if(!(!e||!n||!s.current)){if(d===null){let{selection:e}=s.current;n.dispatch({selection:e,effects:P.scrollIntoView(e.main.from,{y:`center`})});return}Qi(n,d,s.current.character)}},[d,e,n]);let f=Q.useCallback(()=>{if(!n||c.current||!s.current)return;let{selection:e}=s.current;n.dispatch({selection:e,effects:P.scrollIntoView(e.main.from,{y:`center`})})},[n]),p=Q.useCallback(e=>{e||f(),t(e)},[t,f]),m=Q.useCallback(()=>{!n||d===null||!s.current||(c.current=!0,Qi(n,d,s.current.character),t(!1),n.focus())},[d,t,n]);Q.useEffect(()=>{if(!e)return;let t=e=>{let t=l.current,n=e.target;!t||!(n instanceof Node)||t.contains(n)||p(!1)},n=e=>{e.key===`Escape`&&(e.preventDefault(),p(!1))};return document.addEventListener(`pointerdown`,t,!0),document.addEventListener(`keydown`,n,!0),()=>{document.removeEventListener(`pointerdown`,t,!0),document.removeEventListener(`keydown`,n,!0)}},[p,e,r]);let h=Q.useMemo(()=>{if(!n)return i(`goToLineDialog.helper.editorUnavailable`);if(d===null){let e=s.current??Zi(n,n.state.selection);return i(`goToLineDialog.helper.currentLineRange`,{current:e.lineNumber,max:n.state.doc.lines})}return i(`goToLineDialog.helper.goToLine`,{line:d})},[d,i,n]);return r===`inline`?e?(0,$.jsxs)(`div`,{ref:l,className:`ml-1 flex h-6 items-center gap-1`,children:[(0,$.jsx)(Be,{ref:u,type:`number`,min:1,step:1,inputMode:`numeric`,value:a,onChange:e=>o(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),m())},placeholder:i(`goToLineDialog.field.linePlaceholderShort`),className:`h-6 w-20 rounded-md border-border/70 bg-transparent px-2 typography-meta`}),(0,$.jsx)(X,{variant:`outline`,size:`xs`,onClick:m,disabled:!n||d===null,className:`h-6 px-2`,children:i(`goToLineDialog.actions.go`)})]}):null:(0,$.jsx)(`div`,{ref:l,className:J(`absolute left-3 top-3 z-40 w-[min(32rem,calc(100%-1.5rem))] rounded-xl border border-[var(--interactive-border)] bg-[color:color-mix(in_srgb,var(--surface-elevated)_94%,transparent)] p-2.5 shadow-lg backdrop-blur-sm transition-all`,e?`pointer-events-auto translate-y-0 opacity-100`:`pointer-events-none -translate-y-1 opacity-0`),children:(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(Be,{ref:u,type:`number`,min:1,step:1,inputMode:`numeric`,value:a,onChange:e=>o(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),m())},placeholder:i(`goToLineDialog.field.linePlaceholder`),className:`h-8 w-full rounded-md border-border/70 bg-background/60 typography-ui-label`}),(0,$.jsx)(`div`,{className:`mt-2 rounded-md bg-primary/15 px-3 py-1.5 typography-ui-label text-foreground/95`,children:h})]})})}var ea=(e,t)=>{let n=Z(t,e);return!n||n===`.`||n===t?0:n.split(`/`).filter(Boolean).length},ta=(e,t,n=10)=>{let r=ut(e);if(!r||n<1)return[];let i=new Set,a=[];for(let e of Object.values(t))if(e)for(let t of e){if(t.type!==`directory`)continue;let e=ut(t.path);if(!e||i.has(e))continue;let o=ea(r,e);o<1||o>n||(i.add(e),a.push(e))}return a},na=e=>e.some(e=>!!ut(e)),ra=(e,t)=>{let n=new Set(t.map(e=>ut(e)).filter(Boolean));return e.filter(e=>!n.has(e))},ia=(e,t,n)=>t.length===0?e.length===0:ra(e,t).length>0?!1:t.every(e=>n.has(ut(e))),aa=[{id:`finder`,label:`Finder`,appName:`Finder`},{id:`terminal`,label:`Terminal`,appName:`Terminal`},{id:`iterm2`,label:`iTerm2`,appName:`iTerm`},{id:`ghostty`,label:`Ghostty`,appName:`Ghostty`},{id:`vscode`,label:`VS Code`,appName:`Visual Studio Code`},{id:`vscode-insiders`,label:`VS Code Insiders`,appName:`Visual Studio Code - Insiders`},{id:`intellij`,label:`IntelliJ`,appName:`IntelliJ IDEA`},{id:`visual-studio`,label:`Visual Studio`,appName:`Visual Studio`},{id:`cursor`,label:`Cursor`,appName:`Cursor`},{id:`android-studio`,label:`Android Studio`,appName:`Android Studio`},{id:`pycharm`,label:`PyCharm`,appName:`PyCharm`},{id:`xcode`,label:`Xcode`,appName:`Xcode`},{id:`sublime-text`,label:`Sublime`,appName:`Sublime Text`},{id:`webstorm`,label:`WebStorm`,appName:`WebStorm`},{id:`rider`,label:`Rider`,appName:`Rider`},{id:`zed`,label:`Zed`,appName:`Zed`},{id:`phpstorm`,label:`PhpStorm`,appName:`PhpStorm`},{id:`eclipse`,label:`Eclipse`,appName:`Eclipse`},{id:`windsurf`,label:`Windsurf`,appName:`Windsurf`},{id:`vscodium`,label:`VSCodium`,appName:`VSCodium`},{id:`rustrover`,label:`RustRover`,appName:`RustRover`},{id:`kiro`,label:`Kiro`,appName:`Kiro`},{id:`antigravity`,label:`Antigravity`,appName:`Antigravity`},{id:`trae`,label:`Trae`,appName:`Trae`}],oa=`finder`,sa=new Set([`finder`,`terminal`]),ca=e=>typeof window<`u`&&window.__OPENCHAMBER_PLATFORM__===`win32`&&e.id===`finder`?{...e,label:`Explorer`,appName:`File Explorer`}:e,la=e=>{if(!e)return null;let t=aa.find(t=>t.id===e)??null;return t?ca(t):null},ua=()=>aa.filter(e=>sa.has(e.id)).map(e=>({...ca(e)})),da=()=>{if(typeof window>`u`)return oa;let e=window.localStorage.getItem(`openInAppId`);return e&&la(e)?e:oa},fa=!1,pa=!1,ma=!1,ha=0,ga=null,_a=()=>{ga&&=(clearTimeout(ga),null)},va=C()((e,t)=>({selectedAppId:da(),availableApps:ua(),hasLoadedApps:!1,isCacheStale:!1,isScanning:!1,initialize:()=>{if(fa||typeof window>`u`)return;fa=!0;let n=(t,n=!0)=>{if(!Array.isArray(t)||t.length===0){e({availableApps:ua(),hasLoadedApps:n});return}let r=new Set(t.map(e=>e.name)),i=new Map(t.map(e=>[e.name,e.iconDataUrl??void 0]));e({availableApps:aa.filter(e=>r.has(e.appName)||sa.has(e.id)).map(e=>({...ca(e),iconDataUrl:i.get(e.appName)})),hasLoadedApps:!0})},r=async i=>{if(!f()||!p()||pa||t().hasLoadedApps&&!i)return;let a=aa.map(e=>e.appName);_a(),i&&e({hasLoadedApps:!1}),pa=!0,ma=!1,e({isScanning:!0});try{let{apps:t,success:o,hasCache:s,isCacheStale:c}=await d(a,i),l=o&&!s&&t.length===0&&ha<3;if(e({isCacheStale:s?c:!1}),n(t,o?!l:!1),o){if(l){let e=[800,1600,3200][ha]??3200;ha+=1,ma=!0,ga=setTimeout(()=>{r()},e);return}ha=0,ma=!1;return}if(ha<3){let e=[1e3,3e3,7e3][ha]??7e3;ha+=1,ma=!0,ga=setTimeout(()=>{r()},e)}}finally{pa=!1,ma||e({isScanning:!1})}};r(),window.addEventListener(`openchamber:settings-synced`,t=>{let n=t.detail,r=n&&typeof n.openInAppId==`string`&&n.openInAppId.length>0&&la(n.openInAppId)?n.openInAppId:null;r&&(window.localStorage.setItem(`openInAppId`,r),e({selectedAppId:r}))}),window.addEventListener(`openchamber:app-ready`,()=>{r()}),window.addEventListener(`openchamber:installed-apps-updated`,t=>{let r=t.detail;Array.isArray(r)&&(ha=3,ma=!1,e({isScanning:!1,isCacheStale:!1}),n(r))}),window.__openchamberAppReady&&r(),window.setTimeout(()=>{t().hasLoadedApps||r()},5e3)},loadInstalledApps:async n=>{if(fa||t().initialize(),!f()||!p()||pa||t().hasLoadedApps&&!n)return;let r=aa.map(e=>e.appName);_a(),n&&e({hasLoadedApps:!1}),pa=!0,ma=!1,e({isScanning:!0});try{let{apps:t,hasCache:i,isCacheStale:a}=await d(r,n),o=new Set(t.map(e=>e.name)),s=new Map(t.map(e=>[e.name,e.iconDataUrl??void 0])),c=aa.filter(e=>o.has(e.appName)||sa.has(e.id)).map(e=>({...e,iconDataUrl:s.get(e.appName)}));e({availableApps:c.length>0?c:ua(),hasLoadedApps:c.length>0,isCacheStale:i?a:!1})}finally{pa=!1,ma||e({isScanning:!1})}},selectApp:async t=>{la(t)&&(e({selectedAppId:t}),typeof window<`u`&&window.localStorage.setItem(`openInAppId`,t),await y({openInAppId:t}))}})),ya=Vt(()=>A(()=>import(`./ToolOutputDialog-CpMU9Jmc.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]))),ba=e=>{let t=Ca(e);if(!t)return``;if(t===`/`||/^[A-Za-z]:\/$/.test(t))return t;let n=t.lastIndexOf(`/`);if(n<0)return t;if(n===0)return`/`;let r=t.slice(0,n);return/^[A-Za-z]:$/.test(r)?`${r}/`:r},xa=e=>{let t=(0,In.c)(8),{label:n,iconDataUrl:r}=e,[i,a]=Q.useState(!1),o;t[0]===n?o=t[1]:(o=n.trim().slice(0,1).toUpperCase()||`?`,t[0]=n,t[1]=o);let s=o;if(r&&!i){let e;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=()=>a(!0),t[2]=e):e=t[2];let n;return t[3]===r?n=t[4]:(n=(0,$.jsx)(`img`,{src:r,alt:``,className:`size-4 rounded-sm`,onError:e}),t[3]=r,t[4]=n),n}let c;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(c=J(`size-4 rounded-sm flex items-center justify-center`,`bg-[var(--surface-muted)] text-[9px] font-medium text-muted-foreground`),t[5]=c):c=t[5];let l;return t[6]===s?l=t[7]:(l=(0,$.jsx)(`span`,{className:c,children:s}),t[6]=s,t[7]=l),l},Sa=e=>e.slice().sort((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`directory`?-1:1),Ca=e=>{if(!e)return``;let t=e.replace(/\\/g,`/`),n=t.startsWith(`//`),r=t.replace(/\/+/g,`/`);n&&!r.startsWith(`//`)&&(r=`/${r}`);let i=r===`/`,a=/^[A-Za-z]:\/$/.test(r);return!i&&!a&&(r=r.replace(/\/+$/,``)),r},wa=e=>e.startsWith(`/`)||e.startsWith(`//`)||/^[A-Za-z]:\//.test(e),Ta=e=>/^[A-Za-z]:\//.test(e)?e.toLowerCase():e,Ea=(e,t)=>{let n=Ca(t),r=Ca(e);if(!n||!r)return!1;let i=Ta(n),a=Ta(r);return a===i||a.startsWith(`${i}/`)},Da=(e,t)=>{let n=Ca(t),r=Ca(e);if(!Ea(r,n))return[];let i=r.slice(n.length).replace(/^\//,``).split(`/`),a=[],o=n;for(let e=0;e<i.length-1;e++)o=o?`${o}/${i[e]}`:i[e],a.push(o);return a},Oa=(e,t)=>{if(!t)return``;let n=Ca(t);if(!e||!Ea(n,e))return n;let r=n.slice(e.length);return r.startsWith(`/`)?r.slice(1):r},ka=new Set([`node_modules`]),Aa=e=>{let t=(0,In.c)(3),{status:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r={open:`var(--status-info)`,modified:`var(--status-warning)`,"git-modified":`var(--status-warning)`,"git-added":`var(--status-success)`,"git-deleted":`var(--status-error)`},t[0]=r):r=t[0];let i=r[n],a;return t[1]===i?a=t[2]:(a=(0,$.jsx)(`span`,{className:`size-2 rounded-full`,style:{backgroundColor:i}}),t[1]=i,t[2]=a),a},ja=e=>{let t=(0,In.c)(11),{name:n}=e,r=Q.useRef(null),i=Q.useRef(null),[a,o]=Q.useState(!1),s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=()=>{let e=r.current,t=i.current;if(!e||!t)return;let n=()=>{o(t.scrollWidth>e.clientWidth+1)};n();let a=new ResizeObserver(n);return a.observe(e),a.observe(t),()=>{a.disconnect()}},t[0]=s):s=t[0];let c;t[1]===n?c=t[2]:(c=[n],t[1]=n,t[2]=c),Q.useLayoutEffect(s,c);let l;t[3]===n?l=t[4]:(l=(0,$.jsx)(`span`,{ref:i,"aria-hidden":`true`,className:`invisible absolute whitespace-nowrap`,children:n}),t[3]=n,t[4]=l);let u;t[5]!==n||t[6]!==a?(u=a?(0,$.jsxs)(`span`,{className:`open-file-name-marquee-track`,children:[(0,$.jsx)(`span`,{className:`open-file-name-marquee-item`,children:n}),(0,$.jsx)(`span`,{className:`open-file-name-marquee-item`,"aria-hidden":`true`,children:n})]}):(0,$.jsx)(`span`,{className:`block min-w-0 truncate`,children:n}),t[5]=n,t[6]=a,t[7]=u):u=t[7];let d;return t[8]!==l||t[9]!==u?(d=(0,$.jsxs)(`span`,{ref:r,className:`relative block min-w-0 flex-1 overflow-hidden whitespace-nowrap`,children:[l,u]}),t[8]=l,t[9]=u,t[10]=d):d=t[10],d},Ma=e=>ka.has(e),Na=e=>{let t=Ca(e);return t===`node_modules`||t.endsWith(`/node_modules`)||t.includes(`/node_modules/`)},Pa=e=>{let t=(e instanceof Error?e.message:String(e??``)).toLowerCase();return t.includes(`is a directory`)||t.includes(`eisdir`)},Fa=e=>{let t=(e instanceof Error?e.message:String(e??``)).toLowerCase();return t.includes(`file not found`)||t.includes(`enoent`)||t.includes(`no such file`)||t.includes(`does not exist`)},Ia=2e5,La=`openchamber:files:auto-save-enabled`,Ra=e=>{let t=0,n=0;for(let r=0;r<e.length;r+=1)e.charCodeAt(r)===10&&(r>0&&e.charCodeAt(r-1)===13?t+=1:n+=1);return t>n?`\r
145
+ `),i=Math.min(n.length,r.length);for(let e=0;e<i;e+=1)if(n[e]!==r[e])return e+1;return r.length>n.length?n.length+1:n.length>r.length?Math.max(1,r.length):1},Ii=e=>/^Binary files .+ differ$/m.test(e)||/^GIT binary patch$/m.test(e),Li=e=>Array.isArray(e)?e.filter(e=>!e||typeof e!=`object`?!1:typeof e.file==`string`):[],Ri=e=>e===`added`?`A`:e===`deleted`?`D`:`M`,zi=e=>e.isBinary||typeof e.patch==`string`&&e.patch.length>0||e.fileDiff?!0:e.original.length>0||e.modified.length>0,Bi=(e,t,n)=>Ii(t)?{original:``,modified:``,isBinary:!0,patch:t,contextMode:n}:{original:``,modified:``,patch:t,fileDiff:$r(e,t),contextMode:n},Vi=(e,t,n)=>{let r=e??0,i=t??0;return!r&&!i?null:(0,$.jsxs)(`span`,{className:J(`typography-code flex items-center gap-1 whitespace-nowrap`,n?.shrink?`min-w-0 overflow-hidden`:`flex-shrink-0`,n?.className),children:[r?(0,$.jsxs)(`span`,{style:{color:`var(--status-success)`},children:[`+`,r]}):null,i?(0,$.jsxs)(`span`,{style:{color:`var(--status-error)`},children:[`-`,i]}):null]})},Hi=Q.memo(e=>{let t=(0,In.c)(53),{scope:n,workingCount:r,stagedCount:i,turnCount:a,onScopeChange:o}=e,{t:s}=te(),[c,l]=Q.useState(!1),u=n===`staged`?i:n===`turn`?a:r,d;t[0]!==n||t[1]!==s?(d=s(n===`staged`?`diffView.scope.staged`:n===`turn`?`diffView.scope.lastTurn`:`diffView.scope.changed`),t[0]=n,t[1]=s,t[2]=d):d=t[2];let f=d,p;t[3]===s?p=t[4]:(p=s(`diffView.scope.selectorAria`),t[3]=s,t[4]=p);let m;t[5]===u?m=t[6]:(m=(0,$.jsxs)(`span`,{className:`diff-toolbar__scope-count`,children:[`: `,u]}),t[5]=u,t[6]=m);let h;t[7]!==f||t[8]!==m?(h=(0,$.jsxs)(`span`,{className:`whitespace-nowrap`,children:[f,m]}),t[7]=f,t[8]=m,t[9]=h):h=t[9];let g;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,$.jsx)(Y,{name:`arrow-down-s`,className:`size-4 flex-shrink-0 opacity-60`}),t[10]=g):g=t[10];let _;t[11]!==p||t[12]!==h?(_=(0,$.jsx)(Qe,{asChild:!0,children:(0,$.jsxs)(`button`,{type:`button`,className:`flex h-7 flex-shrink-0 items-center gap-1.5 rounded-md px-2 typography-code font-semibold text-foreground outline-none hover:bg-interactive-hover focus-visible:ring-2 focus-visible:ring-ring`,"aria-label":p,children:[h,g]})}),t[11]=p,t[12]=h,t[13]=_):_=t[13];let v;t[14]===o?v=t[15]:(v=e=>{(e===`working`||e===`staged`||e===`turn`)&&(o?.(e),l(!1))},t[14]=o,t[15]=v);let y;t[16]===s?y=t[17]:(y=s(`diffView.scope.changed`),t[16]=s,t[17]=y);let b;t[18]===y?b=t[19]:(b=(0,$.jsx)(`span`,{children:y}),t[18]=y,t[19]=b);let x;t[20]===r?x=t[21]:(x=(0,$.jsx)(`span`,{className:`typography-meta text-muted-foreground`,children:r}),t[20]=r,t[21]=x);let S;t[22]!==x||t[23]!==b?(S=(0,$.jsx)(Ye,{value:`working`,children:(0,$.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center justify-between gap-3`,children:[b,x]})}),t[22]=x,t[23]=b,t[24]=S):S=t[24];let C;t[25]===s?C=t[26]:(C=s(`diffView.scope.staged`),t[25]=s,t[26]=C);let w;t[27]===C?w=t[28]:(w=(0,$.jsx)(`span`,{children:C}),t[27]=C,t[28]=w);let T;t[29]===i?T=t[30]:(T=(0,$.jsx)(`span`,{className:`typography-meta text-muted-foreground`,children:i}),t[29]=i,t[30]=T);let E;t[31]!==w||t[32]!==T?(E=(0,$.jsx)(Ye,{value:`staged`,children:(0,$.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center justify-between gap-3`,children:[w,T]})}),t[31]=w,t[32]=T,t[33]=E):E=t[33];let D;t[34]===s?D=t[35]:(D=s(`diffView.scope.lastTurn`),t[34]=s,t[35]=D);let O;t[36]===D?O=t[37]:(O=(0,$.jsx)(`span`,{children:D}),t[36]=D,t[37]=O);let k;t[38]===a?k=t[39]:(k=(0,$.jsx)(`span`,{className:`typography-meta text-muted-foreground`,children:a}),t[38]=a,t[39]=k);let A;t[40]!==O||t[41]!==k?(A=(0,$.jsx)(Ye,{value:`turn`,children:(0,$.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center justify-between gap-3`,children:[O,k]})}),t[40]=O,t[41]=k,t[42]=A):A=t[42];let j;t[43]!==n||t[44]!==S||t[45]!==E||t[46]!==A||t[47]!==v?(j=(0,$.jsx)(Ze,{align:`start`,className:`w-40`,children:(0,$.jsxs)(rt,{value:n,onValueChange:v,children:[S,E,A]})}),t[43]=n,t[44]=S,t[45]=E,t[46]=A,t[47]=v,t[48]=j):j=t[48];let M;return t[49]!==c||t[50]!==j||t[51]!==_?(M=(0,$.jsxs)(Je,{open:c,onOpenChange:l,children:[_,j]}),t[49]=c,t[50]=j,t[51]=_,t[52]=M):M=t[52],M}),Ui=Q.memo(e=>{let t=(0,In.c)(11),{changedFiles:n,selectedFile:r,onSelectFile:i}=e,{t:a}=te();if(n.length===0)return null;let o;if(t[0]!==n||t[1]!==i||t[2]!==r||t[3]!==a){let e;t[5]!==i||t[6]!==r||t[7]!==a?(e=e=>{let t=ki(e),n=r===e.path;return(0,$.jsx)(`li`,{children:(0,$.jsxs)(`button`,{type:`button`,onClick:()=>i(e.path),className:J(`flex w-full items-center gap-1.5 rounded-md px-2 py-1 text-left transition-colors`,n?`bg-interactive-selection text-interactive-selection-foreground`:`text-muted-foreground hover:bg-interactive-hover hover:text-foreground`),children:[(0,$.jsx)(xt,{filePath:e.path,className:`size-3 flex-shrink-0`}),(0,$.jsx)(`span`,{className:`typography-code font-semibold w-3.5 text-center uppercase`,style:{color:t.color},title:a(t.descriptionKey),"aria-label":a(t.descriptionKey),children:t.code}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate typography-code`,style:{direction:`rtl`,textAlign:`left`,unicodeBidi:`plaintext`},title:e.path,children:e.path}),Vi(e.insertions,e.deletions)]})},e.path)},t[5]=i,t[6]=r,t[7]=a,t[8]=e):e=t[8],o=n.map(e),t[0]=n,t[1]=i,t[2]=r,t[3]=a,t[4]=o}else o=t[4];let s;return t[9]===o?s=t[10]:(s=(0,$.jsx)(Ie,{outerClassName:`flex-1 min-h-0`,className:`px-2 py-2`,children:(0,$.jsx)(`ul`,{className:`flex flex-col gap-1`,children:o})}),t[9]=o,t[10]=s),s}),Wi=Q.memo(e=>{let t=(0,In.c)(20),{filePath:n,diff:r,renderSideBySide:i}=e,{t:a}=te(),o=r.original.length>0,s=r.modified.length>0,c=i?`flex flex-row gap-6 items-start justify-center`:`flex flex-col gap-4 items-center`,l=i?`flex flex-col items-center gap-2 flex-1 min-w-0`:`flex flex-col items-center gap-2`,u;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(u={contain:`layout`},t[0]=u):u=t[0];let d;t[1]!==r.original||t[2]!==n||t[3]!==o||t[4]!==l||t[5]!==i||t[6]!==a?(d=o&&(0,$.jsxs)(`div`,{className:l,children:[(0,$.jsx)(`span`,{className:`typography-meta text-muted-foreground font-medium`,children:a(`diffView.image.original`)}),(0,$.jsx)(`img`,{src:r.original,alt:a(`diffView.image.originalAlt`,{path:n}),className:i?`max-w-full max-h-[70vh] object-contain`:`max-w-full object-contain`,style:{imageRendering:`auto`}})]}),t[1]=r.original,t[2]=n,t[3]=o,t[4]=l,t[5]=i,t[6]=a,t[7]=d):d=t[7];let f;t[8]!==r.modified||t[9]!==n||t[10]!==s||t[11]!==o||t[12]!==l||t[13]!==i||t[14]!==a?(f=s&&(0,$.jsxs)(`div`,{className:l,children:[(0,$.jsx)(`span`,{className:`typography-meta text-muted-foreground font-medium`,children:a(o?`diffView.image.modified`:`diffView.image.new`)}),(0,$.jsx)(`img`,{src:r.modified,alt:a(`diffView.image.modifiedAlt`,{path:n}),className:i?`max-w-full max-h-[70vh] object-contain`:`max-w-full object-contain`,style:{imageRendering:`auto`}})]}),t[8]=r.modified,t[9]=n,t[10]=s,t[11]=o,t[12]=l,t[13]=i,t[14]=a,t[15]=f):f=t[15];let p;return t[16]!==c||t[17]!==d||t[18]!==f?(p=(0,$.jsx)(`div`,{className:`w-full overflow-auto p-4`,style:u,children:(0,$.jsxs)(`div`,{className:c,children:[d,f]})}),t[16]=c,t[17]=d,t[18]=f,t[19]=p):p=t[19],p}),Gi=Q.memo(e=>{let t=(0,In.c)(17),{filePath:n,diff:r,renderSideBySide:i,wrapLines:a,focusLine:o}=e,s;t[0]===n?s=t[1]:(s=qt(n)||`text`,t[0]=n,t[1]=s);let c=s;if(r.isBinary){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(Ti,{}),t[2]=e):e=t[2],e}if(Gt(n)){let e;return t[3]!==r||t[4]!==n||t[5]!==i?(e=(0,$.jsx)(Wi,{filePath:n,diff:r,renderSideBySide:i}),t[3]=r,t[4]=n,t[5]=i,t[6]=e):e=t[6],e}let l;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(l={contain:`layout`},t[7]=l):l=t[7];let u;return t[8]!==r.fileDiff||t[9]!==r.modified||t[10]!==r.original||t[11]!==n||t[12]!==o||t[13]!==c||t[14]!==i||t[15]!==a?(u=(0,$.jsx)(`div`,{className:`w-full`,style:l,children:(0,$.jsx)(Hr,{original:r.original,modified:r.modified,fileDiff:r.fileDiff,language:c,fileName:n,renderSideBySide:i,wrapLines:a,focusLine:o,layout:`inline`,enableSelectionActions:!0})}),t[8]=r.fileDiff,t[9]=r.modified,t[10]=r.original,t[11]=n,t[12]=o,t[13]=c,t[14]=i,t[15]=a,t[16]=u):u=t[16],u}),Ki=Q.memo(e=>{let t=(0,In.c)(7),{filePath:n,staged:r,busyAction:i,disabled:a,onAction:o}=e,{t:s}=te(),c;return t[0]!==i||t[1]!==a||t[2]!==n||t[3]!==o||t[4]!==r||t[5]!==s?(c=(0,$.jsx)(`div`,{className:`flex items-center gap-0.5 rounded-full border border-[var(--interactive-border)]/45 bg-[var(--surface-background)]/95 px-1 py-0.5 shadow-lg backdrop-blur-md`,children:r?(0,$.jsx)(qi,{label:s(`gitView.changes.unstageFileAria`,{path:n}),icon:`arrow-go-back`,loading:i===`unstage`,disabled:a,onClick:()=>o(`unstage`)}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(qi,{label:s(`gitView.changes.revertFileAria`,{path:n}),icon:`arrow-go-back`,loading:i===`discard`,disabled:a,tone:`failure`,onClick:()=>o(`discard`)}),(0,$.jsx)(qi,{label:s(`gitView.changes.stageFileAria`,{path:n}),icon:`add`,loading:i===`stage`,disabled:a,tone:`success`,onClick:()=>o(`stage`)})]})}),t[0]=i,t[1]=a,t[2]=n,t[3]=o,t[4]=r,t[5]=s,t[6]=c):c=t[6],c}),qi=e=>{let t=(0,In.c)(14),{label:n,icon:r,loading:i,disabled:a,tone:o,onClick:s}=e,c=o===`failure`&&`text-[var(--status-error)] hover:text-[var(--status-error)]`,l=o===`success`&&`text-[var(--status-success)] hover:text-[var(--status-success)]`,u;t[0]!==c||t[1]!==l?(u=J(`h-6 w-6 rounded-none bg-transparent p-0 text-muted-foreground opacity-70 hover:bg-transparent hover:text-foreground hover:opacity-100`,c,l),t[0]=c,t[1]=l,t[2]=u):u=t[2];let d;t[3]===s?d=t[4]:(d=e=>{e.stopPropagation(),s()},t[3]=s,t[4]=d);let f;t[5]!==r||t[6]!==i?(f=i?(0,$.jsx)(Y,{name:`loader-4`,className:`size-3.5 animate-spin`}):(0,$.jsx)(Y,{name:r,className:r===`add`?`size-4`:`size-3.5`}),t[5]=r,t[6]=i,t[7]=f):f=t[7];let p;return t[8]!==a||t[9]!==n||t[10]!==u||t[11]!==d||t[12]!==f?(p=(0,$.jsx)(X,{variant:`ghost`,size:`sm`,className:u,disabled:a,title:n,"aria-label":n,onClick:d,children:f}),t[8]=a,t[9]=n,t[10]=u,t[11]=d,t[12]=f,t[13]=p):p=t[13],p},Ji=Q.memo(({directory:e,file:t,layout:n,wrapLines:r,isSelected:i,isExpanded:a,isMounted:o,onSelect:s,onExpandedChange:c,registerSectionRef:l,showOpenInEditorAction:u=!1,isOpeningInEditor:d=!1,onOpenInEditor:f,onOpenFile:p,staged:m=!1,loadFullFiles:h=!1,initialDiffData:g=null,focusLine:_=null,showFileActions:v=!0,disableGitFetch:y=!1,turnChangesRequest:b=null,loadTurnChangeFile:x=!1})=>{let{t:S}=te(),{git:C}=Lt(),w=Qt(Q.useCallback(n=>n.directories.get(e)?.diffCache.get(t.path)??null,[e,t.path])),T=Qt(e=>e.setDiff),E=Qt(e=>e.fetchStatus),[D,O]=Q.useState(0),[k,A]=Q.useState(null),[j,M]=Q.useState(!1),[ee,N]=Q.useState(null),[P,F]=Q.useState(!1),[I,L]=Q.useState(null),[R,ne]=Q.useState(null),z=Q.useRef(null),re=Q.useRef(null),B=Q.useMemo(()=>ki(t),[t]),V=n===`side-by-side`,H=h?`full`:`patch`,ie=`${t.index}:${t.working_dir}:${t.insertions}:${t.deletions}`,ae=_i({sessionID:b?.sessionID??``,directory:b?.directory??``,messageID:b?.messageID??``,diffCount:b?.diffCount,file:t.path},{enabled:x&&!!b&&a&&o}),oe=Q.useMemo(()=>{let e=ae.data?.diff;return e?typeof e.patch==`string`&&e.patch.length>0?Bi(t.path,e.patch,`patch`):typeof e.before==`string`&&e.before.length>0||typeof e.after==`string`&&e.after.length>0?{original:e.before??``,modified:e.after??``,contextMode:`full`}:null:null},[t.path,ae.data]),U=Q.useMemo(()=>{if(g)return g;if(oe)return oe;if(m)return R;if(I)return I;if(!w)return null;let e={original:w.original,modified:w.modified,isBinary:w.isBinary,contextMode:`full`};return zi(e)?e:null},[w,g,I,m,R,oe]),se=ae.error instanceof Error?ae.error.message:ae.error?String(ae.error):null,W=U?null:se??k,ce=x&&ae.isPending||j,le=U?.contextMode===H,G=Q.useCallback(e=>{re.current=e,l(t.path,e)},[t.path,l]),K=Q.useCallback(e=>{c(t.path,e)},[t.path,c]),ue=Q.useCallback(()=>{s(t.path)},[t.path,s]);Q.useEffect(()=>{if(!a||!o)return;if(y){z.current=null,M(!1);return}if(!e||g){z.current=null,M(!1);return}let n=`${e}::${t.path}::${m?`staged`:`unstaged`}::${ie}::${H}::${D}`;if(z.current===n)return;let r=!!(U&&le);z.current=n,A(null),r||M(!0);let i=!1,s=h?Si:Ci,c=Gt(t.path)||h?C.getGitFileDiff(e,{path:t.path,staged:m}):C.getGitDiff(e,{path:t.path,staged:m,contextLines:s}),l=yi,u=new Promise((e,t)=>{setTimeout(()=>t(Error(`Timed out after ${l}ms`)),l)});return Promise.race([c,u]).then(n=>{if(!i){if(`diff`in n){let e=Bi(t.path,n.diff,H);m?ne(e):L(e)}else{let r={original:n.original??``,modified:n.modified??``,isBinary:n.isBinary,contextMode:`full`};m?ne(r):(L(r),T(e,t.path,r))}M(!1)}}).catch(e=>{if(i)return;let t=e instanceof Error?e.message:String(e);A(t),M(!1)}),()=>{i=!0,z.current===n&&(z.current=null)}},[H,U,le,D,e,y,t.path,ie,C,g,a,o,h,T,m]);let de=Q.useCallback(()=>{K(!a),ue()},[K,ue,a]),fe=Q.useCallback(async n=>{if(!(!e||ee!==null)){N(n);try{n===`stage`?await C.stageGitFile(e,t.path):n===`unstage`?await C.unstageGitFile(e,t.path):await C.revertGitFile(e,t.path,{scope:`working`}),O(e=>e+1),await E(e,C)}catch(e){let t=n===`unstage`?`gitView.toast.unstageFileFailed`:n===`stage`?`gitView.toast.stageFileFailed`:`gitView.toast.revertFailed`;q.error(e instanceof Error?e.message:S(t))}finally{N(e=>e===n?null:e)}}},[e,E,t.path,ee,C,S]);return(0,$.jsxs)(`div`,{ref:G,className:`scroll-mt-9 border-b border-[var(--interactive-border)]/40 last:border-b-0`,children:[(0,$.jsx)(`div`,{className:`sticky top-0 z-30 border-b border-[var(--interactive-border)]/35 bg-[var(--surface-elevated)]/90 backdrop-blur-md supports-[backdrop-filter]:bg-[var(--surface-elevated)]/80`,children:(0,$.jsxs)(`div`,{role:`button`,tabIndex:0,onClick:de,onKeyDown:e=>{e.target===e.currentTarget&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),de())},className:J(`cursor-pointer`,`group/header relative grid min-h-8 w-full min-w-0 grid-cols-[minmax(0,1fr)_auto] items-center gap-1.5 overflow-hidden px-2 py-1`,`bg-transparent`,`text-muted-foreground hover:text-foreground`,i?`bg-[var(--interactive-selection)]/35`:null),children:[(0,$.jsx)(`div`,{className:`absolute inset-0 pointer-events-none group-hover/header:bg-[var(--interactive-hover)]/50`}),(0,$.jsxs)(`div`,{className:`relative flex min-w-0 flex-1 items-center gap-1.5`,children:[(0,$.jsx)(`span`,{className:`flex size-4 items-center justify-center opacity-70 group-hover/header:opacity-100`,children:a?(0,$.jsx)(Y,{name:`arrow-down-s`,className:`size-3.5`}):(0,$.jsx)(Y,{name:`arrow-right-s`,className:`size-3.5`})}),(0,$.jsx)(`span`,{className:`typography-code font-semibold leading-none w-3.5 text-center uppercase`,style:{color:B.color},title:S(B.descriptionKey),"aria-label":S(B.descriptionKey),children:B.code}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 overflow-hidden typography-code`,title:t.path,children:(0,$.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1.5`,children:[(0,$.jsx)(xt,{filePath:t.path,className:`size-3 flex-shrink-0 align-middle`}),(()=>{let e=t.path.lastIndexOf(`/`);if(e===-1)return(0,$.jsx)(`span`,{className:`block min-w-0 truncate typography-code text-foreground`,style:{direction:`rtl`,textAlign:`left`,unicodeBidi:`plaintext`},children:t.path});let n=t.path.slice(0,e),r=t.path.slice(e+1);return(0,$.jsxs)(`span`,{className:`flex min-w-0 items-baseline overflow-hidden`,children:[(0,$.jsx)(`span`,{className:`min-w-0 truncate typography-code text-muted-foreground`,style:{direction:`rtl`,textAlign:`left`,unicodeBidi:`plaintext`},children:n}),(0,$.jsxs)(`span`,{className:`flex-shrink-0 typography-code`,children:[(0,$.jsx)(`span`,{className:`text-muted-foreground`,children:`/`}),(0,$.jsx)(`span`,{className:`text-foreground`,children:r})]})]})})()]})})]}),(0,$.jsxs)(`div`,{className:`relative flex shrink-0 items-center justify-self-end gap-1.5`,children:[Vi(t.insertions,t.deletions),u&&f?(0,$.jsx)(X,{variant:`ghost`,size:`sm`,className:`h-5 w-5 p-0 opacity-70 hover:opacity-100`,title:S(`diffView.actions.openFileInEditorAtChange`),onClick:e=>{e.stopPropagation(),f(t.path,U)},disabled:d,children:d?(0,$.jsx)(Y,{name:`loader-4`,className:`size-3.5 animate-spin`}):(0,$.jsx)(Y,{name:`edit`,className:`size-3.5`})}):null,p?(0,$.jsx)(X,{variant:`ghost`,size:`sm`,className:`h-5 w-5 p-0 opacity-70 hover:opacity-100`,title:S(`diffView.actions.openFilePreview`),"aria-label":S(`diffView.actions.openFilePreview`),onClick:e=>{e.stopPropagation(),p(t.path)},children:(0,$.jsx)(Y,{name:`eye`,className:`size-3.5`})}):null]})]})}),a&&(0,$.jsxs)(`div`,{className:`relative bg-background overflow-hidden`,children:[!o&&!W?(0,$.jsx)(`div`,{className:`h-40 border border-border/40 bg-background/40`}):null,W?(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-2 px-4 py-8 text-sm text-muted-foreground`,children:[(0,$.jsx)(`div`,{className:`typography-ui-label font-semibold text-foreground`,children:S(`diffView.state.failedToLoadDiff`)}),(0,$.jsx)(`div`,{className:`typography-meta text-muted-foreground max-w-[32rem] text-center`,children:W}),(0,$.jsx)(`button`,{type:`button`,className:`typography-ui-label text-primary hover:underline`,onClick:()=>{if(x){ae.refetch();return}O(e=>e+1)},children:S(`diffView.actions.retry`)})]}):null,o&&ce&&!U&&!W?(0,$.jsxs)(`div`,{className:`flex items-center justify-center gap-2 px-4 py-8 text-sm text-muted-foreground`,children:[(0,$.jsx)(Y,{name:`loader-4`,className:`size-4 animate-spin`}),S(`diffView.state.loadingDiff`)]}):null,o&&U&&!P&&t.insertions+t.deletions>bi?(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-2 px-4 py-8 text-sm text-muted-foreground`,children:[(0,$.jsx)(`div`,{className:`typography-ui-label font-semibold text-foreground`,children:S(`diffView.state.largeDiff`,{count:t.insertions+t.deletions})}),(0,$.jsx)(`div`,{className:`typography-meta text-muted-foreground`,children:S(`diffView.state.largeDiffDescription`)}),(0,$.jsx)(`button`,{type:`button`,className:`typography-ui-label text-primary hover:underline`,onClick:()=>F(!0),children:S(`diffView.actions.renderAnyway`)})]}):null,o&&U&&(P||t.insertions+t.deletions<=bi)?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Gi,{filePath:t.path,diff:U,renderSideBySide:V,wrapLines:r,focusLine:_}),v?(0,$.jsx)(`div`,{className:`pointer-events-none absolute bottom-3 right-3 z-20`,children:(0,$.jsx)(`div`,{className:`pointer-events-auto`,children:(0,$.jsx)(Ki,{filePath:t.path,staged:m,busyAction:ee,disabled:ee!==null,onAction:fe})})}):null]}):null]})]})}),Yi=({hideStackedFileSidebar:e=!1,stackedDefaultCollapsedAll:t=!1,pinSelectedFileHeaderToTopOnNavigate:n=!1,showOpenInEditorAction:r=!1,diffScope:i=`all`,turnMessageId:a=null,sessionId:o=null,directory:s=null,onDiffScopeChange:u,targetFilePath:d=null,targetLine:f=null,toolPatches:p=null,flushContent:m=!1,singleFileView:h=!1,preloadFullFiles:g=!1,navigationRequestKey:_})=>{let{t:v}=te(),{git:y,files:b}=Lt(),x=Jt(),S=typeof s==`string`&&s.trim()?s.trim():x,{screenWidth:C,isMobile:w}=ct(),T=en(S??null),E=tn(S??null),D=$t(S??null),O=Qt(e=>e.setActiveDirectory),k=Qt(e=>e.ensureStatus),A=Qt(e=>e.fetchStatus),j=Qt(e=>e.setDiff),[M,ee]=Q.useState(null),[N,P]=Q.useState(!1),[F,L]=Q.useState(null),[R,ne]=Q.useState(null),[z,re]=Q.useState(()=>new Set),[B,V]=Q.useState(()=>new Set),[H,ie]=Q.useState(g),[ae,oe]=Q.useState(0),[U,se]=Q.useState(!1),[W,le]=Q.useState(!1),[G,K]=Q.useState(i);Q.useEffect(()=>{K(i)},[i]);let ue=c(e=>e.pendingDiffFile),de=c(e=>e.pendingDiffStaged),fe=c(e=>e.pendingDiffScope),pe=c(e=>e.pendingDiffLine),me=c(e=>e.setPendingDiffFile),he=c(e=>e.diffLayoutPreference),ge=c(e=>e.diffFileLayout),_e=c(e=>e.setDiffFileLayout),ye=c(e=>e.diffWrapLines),be=c(e=>e.setDiffWrapLines),xe=c(e=>e.openContextFileAtLine),Ce=c(e=>e.openContextFile),Te=vt(),Ee=ve(e=>e.currentSessionId),De=typeof o==`string`&&o.trim()?o.trim():Ee,Oe=we(De??``,S??void 0),ke=ye,Ae=G===`staged`||G!==`working`&&null,je=Ae??N,Me=w||C<=768,Ne=!!De&&G!==`turn`&&!Me&&!l(),Pe=!e&&!Me&&C>=1024,Fe=Q.useRef(null),Le=Q.useRef(new Map),Re=Q.useRef(null),ze=Q.useRef(null),Be=Q.useRef(!1),We=Q.useRef(null),Ge=Q.useRef(null),Ke=Q.useRef(null),qe=Q.useRef(null),Je=Q.useCallback(()=>{Re.current=null,Be.current=!1,ne(null),ze.current!==null&&(window.cancelAnimationFrame(ze.current),ze.current=null)},[]),Ye=Q.useCallback(e=>{re(t=>{if(t.has(e))return t;let n=new Set(t);return n.add(e),n})},[]),Xe=Q.useMemo(()=>{let e=Oe.length-1;if(a&&(e=Oe.findIndex(e=>e.id===a),e<0))return{messageID:null,count:0,hasDiffs:!1,thinDiffs:[]};for(let t=e;t>=0;--t){let e=Oe[t];if(e.role!==`user`)continue;let n=Li(e.summary?.diffs),r=typeof e.summary?.diffCount==`number`&&Number.isFinite(e.summary.diffCount)?Math.max(0,Math.trunc(e.summary.diffCount)):n.length;return{messageID:typeof e.id==`string`&&e.id?e.id:null,count:r,hasDiffs:e.summary?.hasDiffs===!0||r>0||n.length>0,thinDiffs:n}}return{messageID:null,count:0,hasDiffs:!1,thinDiffs:[]}},[Oe,a]),Ze=Q.useMemo(()=>ai(p??[]),[p]),Qe=Ze.length>0,$e=Q.useMemo(()=>!De||!S||!Xe.messageID?null:{sessionID:De,directory:S,messageID:Xe.messageID,diffCount:Xe.count},[S,De,Xe.count,Xe.messageID]),et=Q.useMemo(()=>Qe?Ze:Xe.thinDiffs,[Ze,Xe.thinDiffs,Qe]),tt=Q.useMemo(()=>{let e=new Map;for(let t of et)if(t.file){if(typeof t.patch==`string`&&t.patch.length>0){e.set(t.file,Bi(t.file,t.patch,`patch`));continue}(typeof t.before==`string`&&t.before.length>0||typeof t.after==`string`&&t.after.length>0)&&e.set(t.file,{original:t.before??``,modified:t.after??``,contextMode:`full`})}return e},[et]),nt=Q.useMemo(()=>{if(G===`turn`)return et.map(e=>({path:e.file??``,index:``,working_dir:Ri(e.status),insertions:e.additions??0,deletions:e.deletions??0,isNew:e.status===`added`})).filter(e=>e.path).sort((e,t)=>e.path.localeCompare(t.path));if(!E?.files)return[];let e=E.diffStats??{},t=G===`staged`?ji:G===`working`?Mi:()=>!0;return E.files.filter(t).map(t=>({...t,insertions:e[t.path]?.insertions??0,deletions:e[t.path]?.deletions??0,isNew:Ai(t)})).sort((e,t)=>e.path.localeCompare(t.path))},[G,et,E]),rt=Q.useMemo(()=>E?.files?E.files.filter(Mi).length:0,[E]),it=Q.useMemo(()=>E?.files?E.files.filter(ji).length:0,[E]),at=Qe?et.length:Xe.count,ot=Q.useMemo(()=>nt.map(e=>e.path).join(`\0`),[nt]),st=Q.useMemo(()=>{if(!h)return nt;let e=d?.trim()||M;return e?nt.filter(t=>t.path===e):[]},[nt,M,h,d]);Q.useEffect(()=>{let e=ot?ot.split(`\0`):[],n=new Set(e),r=`${S??``}:${G}:${a??``}:${t?`collapsed`:`default`}`,i=p!==null&&Ke.current!==p,o=Ge.current!==r||i;Ge.current=r,Ke.current=p,re(r=>{if(o){let n=t||G===`turn`&&!Qe?0:wi(e.length);return new Set(e.slice(0,n))}let i=!1,a=new Set;for(let e of r){if(!n.has(e)){i=!0;continue}a.add(e)}return i?a:r}),V(e=>{if(o)return new Set;let t=!1,r=new Set;for(let i of e){if(!n.has(i)){t=!0;continue}r.add(i)}return t?r:e})},[G,ot,S,t,p,a,Qe]);let Z=Q.useCallback(()=>{We.current=null;let e=Fe.current;if(!e)return;let t=e.getBoundingClientRect(),n=t.top-xi,r=t.bottom+xi,i={};for(let[e,t]of Le.current){if(!t||!z.has(e))continue;let a=t.getBoundingClientRect();a.bottom<n||a.top>r||(i[e]=!0)}V(e=>{let t=!1,n=new Set(e);for(let e of Object.keys(i))n.has(e)||(n.add(e),t=!0);return t?n:e})},[z]),lt=Q.useCallback(()=>{typeof window>`u`||We.current===null&&(We.current=window.requestAnimationFrame(Z))},[Z]);Q.useEffect(()=>{let e=Fe.current;if(e)return lt(),e.addEventListener(`scroll`,lt,{passive:!0}),window.addEventListener(`resize`,lt),()=>{e.removeEventListener(`scroll`,lt),window.removeEventListener(`resize`,lt),We.current!==null&&(window.cancelAnimationFrame(We.current),We.current=null)}},[nt,z,lt]);let ut=Q.useCallback(e=>{let t=ge[e.path];if(t)return t;if(he===`inline`)return`inline`;if(he===`side-by-side`)return`side-by-side`;let n=C<vi;return e.isNew||n?`inline`:`side-by-side`},[ge,he,C]),dt=Q.useMemo(()=>st.length===0?null:st.every(e=>ut(e)===`side-by-side`)?`side-by-side`:`inline`,[ut,st]);Q.useEffect(()=>{S&&(O(S),k(S,y))},[S,O,k,y]),Q.useEffect(()=>{if(S)return Se.onGitRefreshHint(e=>{Pi(e.directory)===Pi(S)&&A(S,y)})},[S,A,y]),Q.useEffect(()=>{G!==`all`&&!fe||ue&&(fe&&K(fe),ee(ue),P(fe===`staged`||!fe&&de),L(pe),me(null),Be.current=!0,Re.current=ue,Ye(ue),oe(e=>e+1))},[G,Ye,ue,pe,fe,de,me]),Q.useEffect(()=>{if(G===`all`)return;let e=d?.trim();if(!e)return;Ye(e),ee(e),P(G===`staged`),L(f);let t=oi({scope:G,navigationRequestKey:_,targetFilePath:e,targetLine:f}),n=nt.some(t=>t.path===e);si(qe.current,t,n)&&(qe.current=t,Be.current=!0,Re.current=e,oe(e=>e+1))},[G,nt,Ye,_,d,f]),Q.useEffect(()=>{M&&(nt.some(e=>e.path===M)||(ee(null),P(!1)))},[nt,M]);let ft=Q.useCallback((e,t)=>{let n=Le.current;t?n.set(e,t):n.delete(e),lt()},[lt]),mt=Q.useCallback((e,t)=>{Je(),re(n=>{if(t===n.has(e))return n;let r=new Set(n);return t?r.add(e):r.delete(e),r}),t||V(t=>{if(!t.has(e))return t;let n=new Set(t);return n.delete(e),n}),lt()},[Je,lt]),ht=Q.useCallback(()=>{Je(),re(e=>e.size>0?new Set:new Set(nt.map(e=>e.path))),V(new Set),lt()},[Je,nt,lt]),gt=Q.useCallback(async e=>{if(!Ee)return;let t=ve.getState().getDirectoryForSession(Ee)||S||``;if(!t){q.error(v(`diffView.reviewDialog.toast.noSessionDirectory`));return}le(!0);try{await ce({originalSessionID:Ee,directory:t,providerID:e.providerID,modelID:e.modelID,agent:e.agent||void 0,variant:e.variant||void 0,generateHandoff:e.generateHandoff,returnAfterHandoffRequest:e.generateHandoff,autoReview:e.autoReview}),se(!1)}catch(e){console.error(`[review-flow] failed to start review flow`,e),q.error(e instanceof Error?e.message:v(`diffView.reviewDialog.toast.startFailed`))}finally{le(!1)}},[Ee,S,v]),_t=Q.useCallback(e=>{let t=Le.current.get(e),n=Fe.current;if(!t||!n)return!1;let r=n.getBoundingClientRect(),i=t.getBoundingClientRect().top-r.top,a=Math.max(0,n.scrollHeight-n.clientHeight);return n.scrollTop=Math.min(a,Math.max(0,n.scrollTop+i)),!0},[]);Q.useEffect(()=>{if(!Re.current)return;let e=0,t=!1,r=()=>{t||(t=!0,Re.current=null,Be.current=!1,ne(null),ze.current!==null&&(window.cancelAnimationFrame(ze.current),ze.current=null))},i=()=>{if(t){ze.current=null;return}let a=Re.current;if(!a){r(),ze.current=null;return}if(!_t(a)){e+=1,e<20?ze.current=window.requestAnimationFrame(i):(r(),ze.current=null);return}n&&Be.current&&ne(a),r()};return ze.current=window.requestAnimationFrame(i),()=>{t=!0,ze.current!==null&&(window.cancelAnimationFrame(ze.current),ze.current=null)}},[n,ae,_t]);let yt=Q.useCallback(e=>{},[]),bt=Q.useCallback(e=>{Je(),ee(e),P(!1),Be.current=!0,Re.current=e,Ye(e),oe(e=>e+1),_t(e)},[Je,Ye,_t]),xt=Q.useCallback(e=>{let t=e===`side-by-side`?`side-by-side`:`inline`;st.forEach(e=>{_e(e.path,t)})},[_e,st]),[St,Ct]=Q.useState(null),wt=Q.useCallback(async(e,t)=>{if(!(!S||!e)){Ct(e);try{let n=null;if(t?.patch&&!t.isBinary&&!Gt(e)?n=ii(t.patch):t&&t.contextMode===`full`&&!t.isBinary&&!Gt(e)&&(n=Fi(t.original,t.modified)),n===null)try{n=ii((await y.getGitDiff(S,{path:e,staged:je,contextLines:3})).diff)}catch{n=null}let r=t;if(n===null||!r){let t=await y.getGitFileDiff(S,{path:e,staged:je});r={original:t.original??``,modified:t.modified??``,isBinary:t.isBinary},je||j(S,e,r)}let i=n??(r.isBinary||Gt(e)?1:Fi(r.original,r.modified)),a=Ni(S,e),o=await Jr(b,a);if(!o.ok){q.error(Yr(o.reason));return}xe(S,a,i,1)}finally{Ct(t=>t===e?null:t)}}},[je,S,b,y,xe,j]),Tt=I(e=>{if(!S||!e)return;let t=Ni(S,e);if(Te){Te.openFile({path:t});return}Jr(b,t).then(e=>{if(!e.ok){q.error(Yr(e.reason));return}Ce(S,t)})});return(0,$.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden bg-background`,children:[h?null:(0,$.jsxs)(`div`,{className:`@container/diff-toolbar flex min-w-0 items-center gap-1.5 px-2 py-1.5 bg-background`,children:[!w&&(G===`working`||G===`staged`||G===`turn`?(0,$.jsx)(Hi,{scope:G,workingCount:rt,stagedCount:it,turnCount:at,onScopeChange:e=>{K(e),u?.(e)}}):(0,$.jsx)(`div`,{className:`flex items-center gap-1 rounded-md px-2 py-1 text-muted-foreground shrink-0`,children:(0,$.jsx)(`span`,{className:`typography-code font-semibold text-foreground`,children:D&&!E?v(`diffView.state.loadingChanges`):st.length===1?v(`diffView.summary.changedFilesSingle`,{count:st.length}):v(`diffView.summary.changedFilesPlural`,{count:st.length})})})),!h&&nt.length>0&&(G!==`turn`||Qe)&&(0,$.jsxs)(X,{variant:`ghost`,size:`sm`,onClick:ht,className:J(`diff-toolbar__expand-button h-7 flex-shrink-0 gap-1 px-1.5 text-muted-foreground hover:text-foreground`,`ml-auto`),title:z.size>0?v(`diffView.actions.collapseAll`):v(`diffView.actions.expandAll`),children:[(0,$.jsx)(Y,{name:`expand-up-down`,className:`size-4`}),(0,$.jsx)(`span`,{className:`diff-toolbar__expand-label typography-code`,children:z.size>0?v(`diffView.actions.collapseAll`):v(`diffView.actions.expandAll`)})]}),nt.length>0&&Ne&&(0,$.jsxs)(X,{variant:`default`,size:`sm`,onClick:()=>se(!0),disabled:W,className:`diff-toolbar__review-button h-7 flex-shrink-0 gap-1.5 px-2`,"aria-label":v(`diffView.actions.reviewAria`),children:[W?(0,$.jsx)(Y,{name:`loader-4`,className:`size-4 animate-spin`}):(0,$.jsx)(Y,{name:`search-eye`,className:`size-4`}),(0,$.jsx)(`span`,{className:`diff-toolbar__review-label typography-code`,children:v(`diffView.actions.review`)})]}),nt.length>0&&(0,$.jsxs)(Ue,{children:[(0,$.jsx)(Ve,{asChild:!0,children:(0,$.jsx)(X,{variant:`ghost`,size:`sm`,onClick:()=>ie(e=>!e),"aria-pressed":H,"aria-label":v(H?`diffView.actions.disableFullFiles`:`diffView.actions.loadFullFiles`),className:J(`h-7 w-7 flex-shrink-0 p-0 text-muted-foreground hover:text-foreground`,H&&`bg-interactive-selection text-interactive-selection-foreground`),children:(0,$.jsx)(Y,{name:`file-download`,className:`size-4`})})}),(0,$.jsx)(He,{children:(0,$.jsx)(`p`,{children:v(H?`diffView.actions.disableFullFiles`:`diffView.actions.loadFullFiles`)})})]}),nt.length>0&&(0,$.jsx)(X,{variant:`ghost`,size:`sm`,onClick:()=>be(!ye),className:J(`h-5 w-5 p-0 transition-opacity`,ke?`text-foreground opacity-100`:`text-muted-foreground opacity-60 hover:opacity-100`),title:v(ke?`diffView.actions.disableLineWrap`:`diffView.actions.enableLineWrap`),children:(0,$.jsx)(Y,{name:`text-wrap`,className:`size-4`})}),dt&&(0,$.jsx)(rn,{mode:dt===`side-by-side`?`side-by-side`:`unified`,onModeChange:xt})]}),(0,$.jsx)(pt,{open:U,onOpenChange:se,projectDirectory:S??null,submitting:W,onConfirm:gt}),S?G!==`turn`&&D&&!E?(0,$.jsxs)(`div`,{className:`flex flex-1 items-center justify-center gap-2 text-sm text-muted-foreground`,children:[(0,$.jsx)(Y,{name:`loader-4`,className:`size-4 animate-spin`}),v(`diffView.state.loadingRepositoryStatus`)]}):G!==`turn`&&T===!1?(0,$.jsx)(`div`,{className:`flex flex-1 items-center justify-center text-sm text-muted-foreground`,children:v(`diffView.state.notGitRepository`)}):st.length===0?(0,$.jsx)(`div`,{className:`flex flex-1 items-center justify-center text-sm text-muted-foreground`,children:v(G===`turn`?`diffView.state.noLastTurnChanges`:`diffView.state.cleanWorkingTree`)}):(()=>{if(!S)return null;let e=e=>Ae===null?N&&e===M:Ae;return(0,$.jsxs)(`div`,{className:J(`flex min-w-0 flex-1 min-h-0 h-full`,m?`gap-0`:`gap-3 px-3 pb-3 pt-2`),children:[Pe&&(0,$.jsxs)(`section`,{className:`hidden lg:flex w-72 flex-col rounded-xl border border-border/60 bg-background/70 overflow-hidden`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-1.5 border-b border-border/40`,children:[(0,$.jsx)(`span`,{className:`typography-code font-semibold text-foreground`,children:v(`diffView.section.files`)}),(0,$.jsx)(`span`,{className:`typography-code text-muted-foreground`,children:nt.length})]}),(0,$.jsx)(Ui,{changedFiles:nt,selectedFile:null,onSelectFile:bt})]}),(0,$.jsx)(`div`,{className:`relative flex-1 min-w-0 min-h-0 h-full`,children:(0,$.jsx)(Ie,{ref:Fe,outerClassName:`min-h-0 h-full`,className:`[overflow-anchor:none] pb-16 pwa-overlay-scroll`,disableHorizontal:!0,observeMutations:!1,preventOverscroll:!0,"data-diff-virtual-root":!0,children:(0,$.jsx)(`div`,{className:`flex flex-col [overflow-anchor:none]`,"data-diff-virtual-content":!0,children:st.map(t=>(0,$.jsx)(Ji,{directory:S,file:t,layout:ut(t),wrapLines:ke,isSelected:!1,isExpanded:z.has(t.path),isMounted:B.has(t.path)||t.path===R,onSelect:yt,onExpandedChange:mt,registerSectionRef:ft,showOpenInEditorAction:r&&G!==`turn`,isOpeningInEditor:St===t.path,onOpenInEditor:(e,t)=>{wt(e,t)},onOpenFile:Tt,staged:e(t.path),loadFullFiles:H,initialDiffData:G===`turn`?tt.get(t.path)??null:null,focusLine:t.path===(d?.trim()||M)?f??F:null,showFileActions:G!==`turn`,disableGitFetch:G===`turn`,turnChangesRequest:$e,loadTurnChangeFile:G===`turn`&&!Qe},t.path))})})})]})})():(0,$.jsx)(`div`,{className:`flex flex-1 items-center justify-center text-sm text-muted-foreground`,children:v(`diffView.state.selectSessionDirectory`)})]})},Xi=(e,t)=>{if(!t)return null;let n=Number.parseInt(e.trim(),10);return!Number.isFinite(n)||n<1?null:Math.min(n,t.state.doc.lines)},Zi=(e,t)=>{let n=e.state.doc.lineAt(t.main.head);return{lineNumber:n.number,character:t.main.head-n.from+1,selection:t}},Qi=(e,t,n)=>{let r=e.state.doc.line(t),i=Math.max(1,Math.min(n,r.length+1)),a=r.from+i-1;e.dispatch({selection:F.cursor(a),effects:P.scrollIntoView(a,{y:`center`})})};function $i({open:e,onOpenChange:t,view:n,variant:r=`overlay`}){let{t:i}=te(),[a,o]=Q.useState(``),s=Q.useRef(null),c=Q.useRef(!1),l=Q.useRef(null),u=Q.useRef(null),d=Q.useMemo(()=>Xi(a,n),[a,n]);Q.useEffect(()=>{!e||!n||(c.current=!1,s.current=Zi(n,n.state.selection),o(``))},[e,n]),Q.useEffect(()=>{e&&window.requestAnimationFrame(()=>{u.current?.focus(),u.current?.select()})},[e]),Q.useEffect(()=>{if(!(!e||!n||!s.current)){if(d===null){let{selection:e}=s.current;n.dispatch({selection:e,effects:P.scrollIntoView(e.main.from,{y:`center`})});return}Qi(n,d,s.current.character)}},[d,e,n]);let f=Q.useCallback(()=>{if(!n||c.current||!s.current)return;let{selection:e}=s.current;n.dispatch({selection:e,effects:P.scrollIntoView(e.main.from,{y:`center`})})},[n]),p=Q.useCallback(e=>{e||f(),t(e)},[t,f]),m=Q.useCallback(()=>{!n||d===null||!s.current||(c.current=!0,Qi(n,d,s.current.character),t(!1),n.focus())},[d,t,n]);Q.useEffect(()=>{if(!e)return;let t=e=>{let t=l.current,n=e.target;!t||!(n instanceof Node)||t.contains(n)||p(!1)},n=e=>{e.key===`Escape`&&(e.preventDefault(),p(!1))};return document.addEventListener(`pointerdown`,t,!0),document.addEventListener(`keydown`,n,!0),()=>{document.removeEventListener(`pointerdown`,t,!0),document.removeEventListener(`keydown`,n,!0)}},[p,e,r]);let h=Q.useMemo(()=>{if(!n)return i(`goToLineDialog.helper.editorUnavailable`);if(d===null){let e=s.current??Zi(n,n.state.selection);return i(`goToLineDialog.helper.currentLineRange`,{current:e.lineNumber,max:n.state.doc.lines})}return i(`goToLineDialog.helper.goToLine`,{line:d})},[d,i,n]);return r===`inline`?e?(0,$.jsxs)(`div`,{ref:l,className:`ml-1 flex h-6 items-center gap-1`,children:[(0,$.jsx)(Be,{ref:u,type:`number`,min:1,step:1,inputMode:`numeric`,value:a,onChange:e=>o(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),m())},placeholder:i(`goToLineDialog.field.linePlaceholderShort`),className:`h-6 w-20 rounded-md border-border/70 bg-transparent px-2 typography-meta`}),(0,$.jsx)(X,{variant:`outline`,size:`xs`,onClick:m,disabled:!n||d===null,className:`h-6 px-2`,children:i(`goToLineDialog.actions.go`)})]}):null:(0,$.jsx)(`div`,{ref:l,className:J(`absolute left-3 top-3 z-40 w-[min(32rem,calc(100%-1.5rem))] rounded-xl border border-[var(--interactive-border)] bg-[color:color-mix(in_srgb,var(--surface-elevated)_94%,transparent)] p-2.5 shadow-lg backdrop-blur-sm transition-all`,e?`pointer-events-auto translate-y-0 opacity-100`:`pointer-events-none -translate-y-1 opacity-0`),children:(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(Be,{ref:u,type:`number`,min:1,step:1,inputMode:`numeric`,value:a,onChange:e=>o(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),m())},placeholder:i(`goToLineDialog.field.linePlaceholder`),className:`h-8 w-full rounded-md border-border/70 bg-background/60 typography-ui-label`}),(0,$.jsx)(`div`,{className:`mt-2 rounded-md bg-primary/15 px-3 py-1.5 typography-ui-label text-foreground/95`,children:h})]})})}var ea=(e,t)=>{let n=Z(t,e);return!n||n===`.`||n===t?0:n.split(`/`).filter(Boolean).length},ta=(e,t,n=10)=>{let r=ut(e);if(!r||n<1)return[];let i=new Set,a=[];for(let e of Object.values(t))if(e)for(let t of e){if(t.type!==`directory`)continue;let e=ut(t.path);if(!e||i.has(e))continue;let o=ea(r,e);o<1||o>n||(i.add(e),a.push(e))}return a},na=e=>e.some(e=>!!ut(e)),ra=(e,t)=>{let n=new Set(t.map(e=>ut(e)).filter(Boolean));return e.filter(e=>!n.has(e))},ia=(e,t,n)=>t.length===0?e.length===0:ra(e,t).length>0?!1:t.every(e=>n.has(ut(e))),aa=[{id:`finder`,label:`Finder`,appName:`Finder`},{id:`terminal`,label:`Terminal`,appName:`Terminal`},{id:`iterm2`,label:`iTerm2`,appName:`iTerm`},{id:`ghostty`,label:`Ghostty`,appName:`Ghostty`},{id:`vscode`,label:`VS Code`,appName:`Visual Studio Code`},{id:`vscode-insiders`,label:`VS Code Insiders`,appName:`Visual Studio Code - Insiders`},{id:`intellij`,label:`IntelliJ`,appName:`IntelliJ IDEA`},{id:`visual-studio`,label:`Visual Studio`,appName:`Visual Studio`},{id:`cursor`,label:`Cursor`,appName:`Cursor`},{id:`android-studio`,label:`Android Studio`,appName:`Android Studio`},{id:`pycharm`,label:`PyCharm`,appName:`PyCharm`},{id:`xcode`,label:`Xcode`,appName:`Xcode`},{id:`sublime-text`,label:`Sublime`,appName:`Sublime Text`},{id:`webstorm`,label:`WebStorm`,appName:`WebStorm`},{id:`rider`,label:`Rider`,appName:`Rider`},{id:`zed`,label:`Zed`,appName:`Zed`},{id:`phpstorm`,label:`PhpStorm`,appName:`PhpStorm`},{id:`eclipse`,label:`Eclipse`,appName:`Eclipse`},{id:`windsurf`,label:`Windsurf`,appName:`Windsurf`},{id:`vscodium`,label:`VSCodium`,appName:`VSCodium`},{id:`rustrover`,label:`RustRover`,appName:`RustRover`},{id:`kiro`,label:`Kiro`,appName:`Kiro`},{id:`antigravity`,label:`Antigravity`,appName:`Antigravity`},{id:`trae`,label:`Trae`,appName:`Trae`}],oa=`finder`,sa=new Set([`finder`,`terminal`]),ca=e=>typeof window<`u`&&window.__OPENCHAMBER_PLATFORM__===`win32`&&e.id===`finder`?{...e,label:`Explorer`,appName:`File Explorer`}:e,la=e=>{if(!e)return null;let t=aa.find(t=>t.id===e)??null;return t?ca(t):null},ua=()=>aa.filter(e=>sa.has(e.id)).map(e=>({...ca(e)})),da=()=>{if(typeof window>`u`)return oa;let e=window.localStorage.getItem(`openInAppId`);return e&&la(e)?e:oa},fa=!1,pa=!1,ma=!1,ha=0,ga=null,_a=()=>{ga&&=(clearTimeout(ga),null)},va=C()((e,t)=>({selectedAppId:da(),availableApps:ua(),hasLoadedApps:!1,isCacheStale:!1,isScanning:!1,initialize:()=>{if(fa||typeof window>`u`)return;fa=!0;let n=(t,n=!0)=>{if(!Array.isArray(t)||t.length===0){e({availableApps:ua(),hasLoadedApps:n});return}let r=new Set(t.map(e=>e.name)),i=new Map(t.map(e=>[e.name,e.iconDataUrl??void 0]));e({availableApps:aa.filter(e=>r.has(e.appName)||sa.has(e.id)).map(e=>({...ca(e),iconDataUrl:i.get(e.appName)})),hasLoadedApps:!0})},r=async i=>{if(!f()||!p()||pa||t().hasLoadedApps&&!i)return;let a=aa.map(e=>e.appName);_a(),i&&e({hasLoadedApps:!1}),pa=!0,ma=!1,e({isScanning:!0});try{let{apps:t,success:o,hasCache:s,isCacheStale:c}=await d(a,i),l=o&&!s&&t.length===0&&ha<3;if(e({isCacheStale:s?c:!1}),n(t,o?!l:!1),o){if(l){let e=[800,1600,3200][ha]??3200;ha+=1,ma=!0,ga=setTimeout(()=>{r()},e);return}ha=0,ma=!1;return}if(ha<3){let e=[1e3,3e3,7e3][ha]??7e3;ha+=1,ma=!0,ga=setTimeout(()=>{r()},e)}}finally{pa=!1,ma||e({isScanning:!1})}};r(),window.addEventListener(`openchamber:settings-synced`,t=>{let n=t.detail,r=n&&typeof n.openInAppId==`string`&&n.openInAppId.length>0&&la(n.openInAppId)?n.openInAppId:null;r&&(window.localStorage.setItem(`openInAppId`,r),e({selectedAppId:r}))}),window.addEventListener(`openchamber:app-ready`,()=>{r()}),window.addEventListener(`openchamber:installed-apps-updated`,t=>{let r=t.detail;Array.isArray(r)&&(ha=3,ma=!1,e({isScanning:!1,isCacheStale:!1}),n(r))}),window.__openchamberAppReady&&r(),window.setTimeout(()=>{t().hasLoadedApps||r()},5e3)},loadInstalledApps:async n=>{if(fa||t().initialize(),!f()||!p()||pa||t().hasLoadedApps&&!n)return;let r=aa.map(e=>e.appName);_a(),n&&e({hasLoadedApps:!1}),pa=!0,ma=!1,e({isScanning:!0});try{let{apps:t,hasCache:i,isCacheStale:a}=await d(r,n),o=new Set(t.map(e=>e.name)),s=new Map(t.map(e=>[e.name,e.iconDataUrl??void 0])),c=aa.filter(e=>o.has(e.appName)||sa.has(e.id)).map(e=>({...e,iconDataUrl:s.get(e.appName)}));e({availableApps:c.length>0?c:ua(),hasLoadedApps:c.length>0,isCacheStale:i?a:!1})}finally{pa=!1,ma||e({isScanning:!1})}},selectApp:async t=>{la(t)&&(e({selectedAppId:t}),typeof window<`u`&&window.localStorage.setItem(`openInAppId`,t),await y({openInAppId:t}))}})),ya=Vt(()=>A(()=>import(`./ToolOutputDialog-d3CFS8Ao.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]))),ba=e=>{let t=Ca(e);if(!t)return``;if(t===`/`||/^[A-Za-z]:\/$/.test(t))return t;let n=t.lastIndexOf(`/`);if(n<0)return t;if(n===0)return`/`;let r=t.slice(0,n);return/^[A-Za-z]:$/.test(r)?`${r}/`:r},xa=e=>{let t=(0,In.c)(8),{label:n,iconDataUrl:r}=e,[i,a]=Q.useState(!1),o;t[0]===n?o=t[1]:(o=n.trim().slice(0,1).toUpperCase()||`?`,t[0]=n,t[1]=o);let s=o;if(r&&!i){let e;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=()=>a(!0),t[2]=e):e=t[2];let n;return t[3]===r?n=t[4]:(n=(0,$.jsx)(`img`,{src:r,alt:``,className:`size-4 rounded-sm`,onError:e}),t[3]=r,t[4]=n),n}let c;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(c=J(`size-4 rounded-sm flex items-center justify-center`,`bg-[var(--surface-muted)] text-[9px] font-medium text-muted-foreground`),t[5]=c):c=t[5];let l;return t[6]===s?l=t[7]:(l=(0,$.jsx)(`span`,{className:c,children:s}),t[6]=s,t[7]=l),l},Sa=e=>e.slice().sort((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`directory`?-1:1),Ca=e=>{if(!e)return``;let t=e.replace(/\\/g,`/`),n=t.startsWith(`//`),r=t.replace(/\/+/g,`/`);n&&!r.startsWith(`//`)&&(r=`/${r}`);let i=r===`/`,a=/^[A-Za-z]:\/$/.test(r);return!i&&!a&&(r=r.replace(/\/+$/,``)),r},wa=e=>e.startsWith(`/`)||e.startsWith(`//`)||/^[A-Za-z]:\//.test(e),Ta=e=>/^[A-Za-z]:\//.test(e)?e.toLowerCase():e,Ea=(e,t)=>{let n=Ca(t),r=Ca(e);if(!n||!r)return!1;let i=Ta(n),a=Ta(r);return a===i||a.startsWith(`${i}/`)},Da=(e,t)=>{let n=Ca(t),r=Ca(e);if(!Ea(r,n))return[];let i=r.slice(n.length).replace(/^\//,``).split(`/`),a=[],o=n;for(let e=0;e<i.length-1;e++)o=o?`${o}/${i[e]}`:i[e],a.push(o);return a},Oa=(e,t)=>{if(!t)return``;let n=Ca(t);if(!e||!Ea(n,e))return n;let r=n.slice(e.length);return r.startsWith(`/`)?r.slice(1):r},ka=new Set([`node_modules`]),Aa=e=>{let t=(0,In.c)(3),{status:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r={open:`var(--status-info)`,modified:`var(--status-warning)`,"git-modified":`var(--status-warning)`,"git-added":`var(--status-success)`,"git-deleted":`var(--status-error)`},t[0]=r):r=t[0];let i=r[n],a;return t[1]===i?a=t[2]:(a=(0,$.jsx)(`span`,{className:`size-2 rounded-full`,style:{backgroundColor:i}}),t[1]=i,t[2]=a),a},ja=e=>{let t=(0,In.c)(11),{name:n}=e,r=Q.useRef(null),i=Q.useRef(null),[a,o]=Q.useState(!1),s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=()=>{let e=r.current,t=i.current;if(!e||!t)return;let n=()=>{o(t.scrollWidth>e.clientWidth+1)};n();let a=new ResizeObserver(n);return a.observe(e),a.observe(t),()=>{a.disconnect()}},t[0]=s):s=t[0];let c;t[1]===n?c=t[2]:(c=[n],t[1]=n,t[2]=c),Q.useLayoutEffect(s,c);let l;t[3]===n?l=t[4]:(l=(0,$.jsx)(`span`,{ref:i,"aria-hidden":`true`,className:`invisible absolute whitespace-nowrap`,children:n}),t[3]=n,t[4]=l);let u;t[5]!==n||t[6]!==a?(u=a?(0,$.jsxs)(`span`,{className:`open-file-name-marquee-track`,children:[(0,$.jsx)(`span`,{className:`open-file-name-marquee-item`,children:n}),(0,$.jsx)(`span`,{className:`open-file-name-marquee-item`,"aria-hidden":`true`,children:n})]}):(0,$.jsx)(`span`,{className:`block min-w-0 truncate`,children:n}),t[5]=n,t[6]=a,t[7]=u):u=t[7];let d;return t[8]!==l||t[9]!==u?(d=(0,$.jsxs)(`span`,{ref:r,className:`relative block min-w-0 flex-1 overflow-hidden whitespace-nowrap`,children:[l,u]}),t[8]=l,t[9]=u,t[10]=d):d=t[10],d},Ma=e=>ka.has(e),Na=e=>{let t=Ca(e);return t===`node_modules`||t.endsWith(`/node_modules`)||t.includes(`/node_modules/`)},Pa=e=>{let t=(e instanceof Error?e.message:String(e??``)).toLowerCase();return t.includes(`is a directory`)||t.includes(`eisdir`)},Fa=e=>{let t=(e instanceof Error?e.message:String(e??``)).toLowerCase();return t.includes(`file not found`)||t.includes(`enoent`)||t.includes(`no such file`)||t.includes(`does not exist`)},Ia=2e5,La=`openchamber:files:auto-save-enabled`,Ra=e=>{let t=0,n=0;for(let r=0;r<e.length;r+=1)e.charCodeAt(r)===10&&(r>0&&e.charCodeAt(r-1)===13?t+=1:n+=1);return t>n?`\r
146
146
  `:`
147
147
  `},za=e=>e.replace(/\r\n/g,`
148
148
  `).replace(/\r/g,`
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{E as t,t as n}from"./useUIStore-DzwCfRqr.js";import{nt as r,rt as i}from"./vendor-base-ui-CnHfUmDN.js";import{l as a}from"./vendor-tanstack-react-query-D7pys_c9.js";import{r as o}from"./vendor-sonner-DVzioF3d.js";import{n as s}from"./clipboard-DWuULPzo.js";import{n as c}from"./Icon-DpjYnXxn.js";import{n as l}from"./useRuntimeAPIs-DSLXJybW.js";import{n as u}from"./useEffectiveDirectory-DrRShKin.js";import{n as d,r as f,s as p,t as m}from"./fileQueries-B_fTkH6s.js";var h=e(i(),1),g=r();function _(){let{t:e}=s(),{files:r}=l(),i=a(),_=u()??null,v=t(),[y,b]=h.useState(null),[x,S]=h.useState(``),C=h.useRef(null),w=h.useRef(!1),T=h.useRef(null),E=h.useRef(0),D=h.useRef(Promise.resolve()),O=n(e=>e.pendingDiagramFile),k=f({scopeDirectory:_,path:y},{enabled:!!y});if(y&&(T.current?.path!==y||T.current.transport!==v||T.current.scopeDirectory!==_)){let e=E.current+1;E.current=e,T.current={path:y,generation:e,transport:v,scopeDirectory:_}}h.useEffect(()=>(w.current=!0,()=>{w.current=!1,E.current+=1}),[]),h.useEffect(()=>{if(!O)return;let e=n.getState().consumePendingDiagramFile();if(e){let t=E.current+1;E.current=t,T.current={path:e,generation:t,transport:v,scopeDirectory:_},b(e)}},[_,O,v]),h.useEffect(()=>{let e=T.current;if(!(!e||e.path!==y||e.transport!==v||e.scopeDirectory!==_)){if(k.data!==void 0){S(k.data);return}k.isError&&S(``)}},[_,y,k.data,k.isError,v]);let A=h.useCallback(async()=>{let t=C.current?.getXml(),n=T.current,a=r?.writeFile;if(!y||!a||!t||t===x||n?.path!==y)return;let{path:s,generation:c,scopeDirectory:l,transport:u}=n,f=D.current.then(async()=>{try{if(!(await a(s,t))?.success)throw Error(e(`filesView.toast.writeFileFailed`));let n={scopeDirectory:l,path:s};await i.cancelQueries({queryKey:m(n,u),exact:!0}),d(i,n,u,t);let r=T.current;w.current&&r?.path===s&&r.generation===c&&r.transport===u&&r.scopeDirectory===l&&S(t)}catch(t){o.error(t instanceof Error?t.message:e(`filesView.toast.saveFailed`))}});D.current=f.catch(()=>void 0),await f},[y,r,i,e,x]),j=y?y.split(`/`).pop()||y:``;return y?k.isPending?(0,g.jsx)(`div`,{className:`flex h-full items-center justify-center p-3`,children:(0,g.jsx)(c,{name:`loader-4`,className:`size-4 animate-spin`})}):(0,g.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,g.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border/30 px-3 py-1.5`,children:[(0,g.jsx)(c,{name:`file`,className:`size-4 shrink-0 text-muted-foreground`}),(0,g.jsx)(`span`,{className:`typography-ui text-muted-foreground truncate flex-1`,children:j}),(0,g.jsx)(`button`,{type:`button`,onClick:()=>void A(),className:`size-6 flex items-center justify-center rounded-md text-foreground hover:bg-interactive-hover/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`,title:e(`filesView.diagram.saveDiagram`),children:(0,g.jsx)(c,{name:`save-3`,className:`size-4`})}),(0,g.jsx)(`button`,{type:`button`,onClick:()=>n.getState().setActiveMainTab(`chat`),className:`size-6 flex items-center justify-center rounded-md text-muted-foreground hover:bg-interactive-hover/50 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`,title:e(`filesView.diagram.closeDiagramView`),children:(0,g.jsx)(c,{name:`close`,className:`size-4`})})]}),(0,g.jsx)(`div`,{className:`flex-1 min-h-0`,children:(0,g.jsx)(p,{ref:C,xml:x,className:`h-full`})})]}):(0,g.jsx)(`div`,{className:`flex h-full items-center justify-center p-3`,children:(0,g.jsx)(`div`,{className:`typography-ui text-muted-foreground`,children:e(`filesView.editor.pickFileFromTree`)})})}export{_ as DiagramView};
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{E as t,t as n}from"./useUIStore-DzwCfRqr.js";import{nt as r,rt as i}from"./vendor-base-ui-CnHfUmDN.js";import{l as a}from"./vendor-tanstack-react-query-D7pys_c9.js";import{r as o}from"./vendor-sonner-DVzioF3d.js";import{n as s}from"./clipboard-DWuULPzo.js";import{n as c}from"./Icon-DpjYnXxn.js";import{n as l}from"./useRuntimeAPIs-DSLXJybW.js";import{n as u}from"./useEffectiveDirectory-D3ALorSW.js";import{n as d,r as f,s as p,t as m}from"./fileQueries-B_fTkH6s.js";var h=e(i(),1),g=r();function _(){let{t:e}=s(),{files:r}=l(),i=a(),_=u()??null,v=t(),[y,b]=h.useState(null),[x,S]=h.useState(``),C=h.useRef(null),w=h.useRef(!1),T=h.useRef(null),E=h.useRef(0),D=h.useRef(Promise.resolve()),O=n(e=>e.pendingDiagramFile),k=f({scopeDirectory:_,path:y},{enabled:!!y});if(y&&(T.current?.path!==y||T.current.transport!==v||T.current.scopeDirectory!==_)){let e=E.current+1;E.current=e,T.current={path:y,generation:e,transport:v,scopeDirectory:_}}h.useEffect(()=>(w.current=!0,()=>{w.current=!1,E.current+=1}),[]),h.useEffect(()=>{if(!O)return;let e=n.getState().consumePendingDiagramFile();if(e){let t=E.current+1;E.current=t,T.current={path:e,generation:t,transport:v,scopeDirectory:_},b(e)}},[_,O,v]),h.useEffect(()=>{let e=T.current;if(!(!e||e.path!==y||e.transport!==v||e.scopeDirectory!==_)){if(k.data!==void 0){S(k.data);return}k.isError&&S(``)}},[_,y,k.data,k.isError,v]);let A=h.useCallback(async()=>{let t=C.current?.getXml(),n=T.current,a=r?.writeFile;if(!y||!a||!t||t===x||n?.path!==y)return;let{path:s,generation:c,scopeDirectory:l,transport:u}=n,f=D.current.then(async()=>{try{if(!(await a(s,t))?.success)throw Error(e(`filesView.toast.writeFileFailed`));let n={scopeDirectory:l,path:s};await i.cancelQueries({queryKey:m(n,u),exact:!0}),d(i,n,u,t);let r=T.current;w.current&&r?.path===s&&r.generation===c&&r.transport===u&&r.scopeDirectory===l&&S(t)}catch(t){o.error(t instanceof Error?t.message:e(`filesView.toast.saveFailed`))}});D.current=f.catch(()=>void 0),await f},[y,r,i,e,x]),j=y?y.split(`/`).pop()||y:``;return y?k.isPending?(0,g.jsx)(`div`,{className:`flex h-full items-center justify-center p-3`,children:(0,g.jsx)(c,{name:`loader-4`,className:`size-4 animate-spin`})}):(0,g.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,g.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border/30 px-3 py-1.5`,children:[(0,g.jsx)(c,{name:`file`,className:`size-4 shrink-0 text-muted-foreground`}),(0,g.jsx)(`span`,{className:`typography-ui text-muted-foreground truncate flex-1`,children:j}),(0,g.jsx)(`button`,{type:`button`,onClick:()=>void A(),className:`size-6 flex items-center justify-center rounded-md text-foreground hover:bg-interactive-hover/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`,title:e(`filesView.diagram.saveDiagram`),children:(0,g.jsx)(c,{name:`save-3`,className:`size-4`})}),(0,g.jsx)(`button`,{type:`button`,onClick:()=>n.getState().setActiveMainTab(`chat`),className:`size-6 flex items-center justify-center rounded-md text-muted-foreground hover:bg-interactive-hover/50 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`,title:e(`filesView.diagram.closeDiagramView`),children:(0,g.jsx)(c,{name:`close`,className:`size-4`})})]}),(0,g.jsx)(`div`,{className:`flex-1 min-h-0`,children:(0,g.jsx)(p,{ref:C,xml:x,className:`h-full`})})]}):(0,g.jsx)(`div`,{className:`flex h-full items-center justify-center p-3`,children:(0,g.jsx)(`div`,{className:`typography-ui text-muted-foreground`,children:e(`filesView.editor.pickFileFromTree`)})})}export{_ as DiagramView};
@@ -1,4 +1,4 @@
1
- import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{E as t,t as n}from"./useUIStore-DzwCfRqr.js";import{$t as r,Jt as i,Xt as a,Yt as o,in as s,kn as c}from"./persistence-6sclr7B6.js";import{nt as l,rt as u}from"./vendor-base-ui-CnHfUmDN.js";import{t as d}from"./platform-CbeLpKPk.js";import{n as f}from"./vendor-react-DLPElpoQ.js";import{n as p,r as m,u as h}from"./vendor-reactuses-core-DDoDDyM9.js";import{n as g,t as _}from"./clipboard-DWuULPzo.js";import{zi as v}from"./useMobileNavigationStore-CncTmwzO.js";import{t as y}from"./utils-B1EK5zKa.js";import{t as b}from"./useThemeSystem-DMzWVJaW.js";import{c as x,d as S,g as C,h as w,m as T,n as ee,o as E,p as D,r as O,s as k,t as te,v as A,x as ne}from"./markdownTheme-B89dbj3N.js";import{n as re}from"./useRuntimeAPIs-DSLXJybW.js";import{a as j,i as M,n as N,r as P}from"./url-BsaBG5-1.js";import{c as ie,h as F,i as ae,o as I,s as L,t as R}from"./markdown-worker-W06-MhF5.js";import{n as oe}from"./useEffectiveDirectory-DrRShKin.js";import{a as z,c as B,d as V,f as se,i as ce,n as le,r as ue,u as de}from"./FadeInOnReveal-By2F9vcI.js";import{t as fe}from"./vendor-morphdom-BbKiNDAu.js";import{n as pe,t as me}from"./vendor-beautiful-mermaid-DykqIK5D.js";import{t as H}from"./vendor-marked-WVekxjAN.js";import{t as U}from"./vendor-remend-C3cXc-tf.js";import{t as he}from"./vendor-katex-CNGgSigB.js";import{t as W}from"./vendor-dompurify-CeJNOzik.js";var G=e(u(),1),ge=f(),K=`text`,_e=/^(\d+):(\d+):(.+)$/,ve={ts:`typescript`,mts:`typescript`,cts:`typescript`,tsx:`tsx`,js:`javascript`,mjs:`javascript`,cjs:`javascript`,jsx:`jsx`,vue:`vue`,svelte:`svelte`,astro:`astro`,json:`json`,jsonc:`jsonc`,json5:`json5`,jsonl:`json`,ndjson:`json`,geojson:`json`,yaml:`yaml`,yml:`yaml`,toml:`toml`,ini:`ini`,cfg:`ini`,conf:`ini`,properties:`properties`,env:`dotenv`,css:`css`,scss:`scss`,sass:`sass`,less:`less`,styl:`stylus`,html:`html`,htm:`html`,xml:`xml`,svg:`xml`,md:`markdown`,markdown:`markdown`,mdown:`markdown`,mkd:`markdown`,mdx:`mdx`,py:`python`,pyw:`python`,pyi:`python`,rb:`ruby`,go:`go`,rs:`rust`,java:`java`,kt:`kotlin`,kts:`kotlin`,swift:`swift`,scala:`scala`,c:`c`,h:`c`,cc:`cpp`,cpp:`cpp`,cxx:`cpp`,hpp:`cpp`,hh:`cpp`,m:`objective-c`,mm:`objective-cpp`,cs:`csharp`,fs:`fsharp`,fsx:`fsharp`,vb:`vb`,php:`php`,pl:`perl`,pm:`perl`,lua:`lua`,r:`r`,dart:`dart`,ex:`elixir`,exs:`elixir`,erl:`erlang`,hrl:`erlang`,hs:`haskell`,clj:`clojure`,cljs:`clojure`,cljc:`clojure`,groovy:`groovy`,jl:`julia`,ml:`ocaml`,mli:`ocaml`,zig:`zig`,nix:`nix`,sol:`solidity`,prisma:`prisma`,proto:`proto`,graphql:`graphql`,gql:`graphql`,sql:`sql`,sh:`shellscript`,bash:`shellscript`,zsh:`shellscript`,fish:`shellscript`,ps1:`powershell`,psm1:`powershell`,bat:`bat`,cmd:`bat`,tf:`terraform`,tfvars:`terraform`,hcl:`hcl`,diff:`diff`,patch:`diff`,csv:`csv`,tex:`latex`,vim:`viml`,wgsl:`wgsl`,glsl:`glsl`,wat:`wasm`,mermaid:`mermaid`,mmd:`mermaid`},ye={dockerfile:`docker`,containerfile:`docker`,makefile:`make`,gnumakefile:`make`,"cmakelists.txt":`cmake`,gemfile:`ruby`,rakefile:`ruby`,podfile:`ruby`,".env":`dotenv`,".bashrc":`shellscript`,".zshrc":`shellscript`,".profile":`shellscript`},be=e=>{let t=e.split(/[\\/]/).pop()?.toLowerCase()??``;if(!t)return K;let n=ye[t];if(n)return n;let r=t.lastIndexOf(`.`);return r<=0?K:ve[t.slice(r+1)]??K},xe=e=>{let t=e?.trim()??``;if(!t)return{lang:K,label:K,reference:!1};let n=_e.exec(t);if(!n){let e=t.toLowerCase();return{lang:e,label:e,reference:!1}}let[,r=``,i=``,a=``]=n,o=r===i?r:`${r}-${i}`;return{lang:be(a),label:`${a}:${o}`,reference:!0}},Se=e=>e===` `||e===` `||e===`
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{E as t,t as n}from"./useUIStore-DzwCfRqr.js";import{$t as r,Jt as i,Xt as a,Yt as o,in as s,kn as c}from"./persistence-6sclr7B6.js";import{nt as l,rt as u}from"./vendor-base-ui-CnHfUmDN.js";import{t as d}from"./platform-CbeLpKPk.js";import{n as f}from"./vendor-react-DLPElpoQ.js";import{n as p,r as m,u as h}from"./vendor-reactuses-core-DDoDDyM9.js";import{n as g,t as _}from"./clipboard-DWuULPzo.js";import{zi as v}from"./useMobileNavigationStore-CrT2Yvjn.js";import{t as y}from"./utils-B1EK5zKa.js";import{t as b}from"./useThemeSystem-DMzWVJaW.js";import{c as x,d as S,g as C,h as w,m as T,n as ee,o as E,p as D,r as O,s as k,t as te,v as A,x as ne}from"./markdownTheme-B89dbj3N.js";import{n as re}from"./useRuntimeAPIs-DSLXJybW.js";import{a as j,i as M,n as N,r as P}from"./url-BsaBG5-1.js";import{c as ie,h as F,i as ae,o as I,s as L,t as R}from"./markdown-worker-W06-MhF5.js";import{n as oe}from"./useEffectiveDirectory-D3ALorSW.js";import{a as z,c as B,d as V,f as se,i as ce,n as le,r as ue,u as de}from"./FadeInOnReveal-By2F9vcI.js";import{t as fe}from"./vendor-morphdom-BbKiNDAu.js";import{n as pe,t as me}from"./vendor-beautiful-mermaid-DykqIK5D.js";import{t as H}from"./vendor-marked-WVekxjAN.js";import{t as U}from"./vendor-remend-C3cXc-tf.js";import{t as he}from"./vendor-katex-CNGgSigB.js";import{t as W}from"./vendor-dompurify-CeJNOzik.js";var G=e(u(),1),ge=f(),K=`text`,_e=/^(\d+):(\d+):(.+)$/,ve={ts:`typescript`,mts:`typescript`,cts:`typescript`,tsx:`tsx`,js:`javascript`,mjs:`javascript`,cjs:`javascript`,jsx:`jsx`,vue:`vue`,svelte:`svelte`,astro:`astro`,json:`json`,jsonc:`jsonc`,json5:`json5`,jsonl:`json`,ndjson:`json`,geojson:`json`,yaml:`yaml`,yml:`yaml`,toml:`toml`,ini:`ini`,cfg:`ini`,conf:`ini`,properties:`properties`,env:`dotenv`,css:`css`,scss:`scss`,sass:`sass`,less:`less`,styl:`stylus`,html:`html`,htm:`html`,xml:`xml`,svg:`xml`,md:`markdown`,markdown:`markdown`,mdown:`markdown`,mkd:`markdown`,mdx:`mdx`,py:`python`,pyw:`python`,pyi:`python`,rb:`ruby`,go:`go`,rs:`rust`,java:`java`,kt:`kotlin`,kts:`kotlin`,swift:`swift`,scala:`scala`,c:`c`,h:`c`,cc:`cpp`,cpp:`cpp`,cxx:`cpp`,hpp:`cpp`,hh:`cpp`,m:`objective-c`,mm:`objective-cpp`,cs:`csharp`,fs:`fsharp`,fsx:`fsharp`,vb:`vb`,php:`php`,pl:`perl`,pm:`perl`,lua:`lua`,r:`r`,dart:`dart`,ex:`elixir`,exs:`elixir`,erl:`erlang`,hrl:`erlang`,hs:`haskell`,clj:`clojure`,cljs:`clojure`,cljc:`clojure`,groovy:`groovy`,jl:`julia`,ml:`ocaml`,mli:`ocaml`,zig:`zig`,nix:`nix`,sol:`solidity`,prisma:`prisma`,proto:`proto`,graphql:`graphql`,gql:`graphql`,sql:`sql`,sh:`shellscript`,bash:`shellscript`,zsh:`shellscript`,fish:`shellscript`,ps1:`powershell`,psm1:`powershell`,bat:`bat`,cmd:`bat`,tf:`terraform`,tfvars:`terraform`,hcl:`hcl`,diff:`diff`,patch:`diff`,csv:`csv`,tex:`latex`,vim:`viml`,wgsl:`wgsl`,glsl:`glsl`,wat:`wasm`,mermaid:`mermaid`,mmd:`mermaid`},ye={dockerfile:`docker`,containerfile:`docker`,makefile:`make`,gnumakefile:`make`,"cmakelists.txt":`cmake`,gemfile:`ruby`,rakefile:`ruby`,podfile:`ruby`,".env":`dotenv`,".bashrc":`shellscript`,".zshrc":`shellscript`,".profile":`shellscript`},be=e=>{let t=e.split(/[\\/]/).pop()?.toLowerCase()??``;if(!t)return K;let n=ye[t];if(n)return n;let r=t.lastIndexOf(`.`);return r<=0?K:ve[t.slice(r+1)]??K},xe=e=>{let t=e?.trim()??``;if(!t)return{lang:K,label:K,reference:!1};let n=_e.exec(t);if(!n){let e=t.toLowerCase();return{lang:e,label:e,reference:!1}}let[,r=``,i=``,a=``]=n,o=r===i?r:`${r}-${i}`;return{lang:be(a),label:`${a}:${o}`,reference:!0}},Se=e=>e===` `||e===` `||e===`
2
2
  `||e===`\r`,Ce=e=>e!==void 0&&e>=`0`&&e<=`9`,we=e=>e===`\\`||e===`^`||e===`_`||e===`{`||e===`}`||e===`=`||e===`+`||e===`*`||e===`/`||e===`-`,Te=e=>{for(let t=0;t<e.length;t+=1){let n=e[t];if(n!==void 0&&we(n))return!0}return!1},Ee=e=>{for(let t=0;t<e.length;t+=1){let n=e[t];if(n===`"`||n===`'`||Se(n))return!0}return!1},De=e=>{let t=0;for(;t<e.length;){let n=e.indexOf(`$`,t);if(n<0)return;let r=e[n+1];if(r===`$`||r!==void 0&&!Se(r))return n;t=n+1}},Oe=e=>{if(e[0]===`$`){if(e[1]===`$`){let t=e.indexOf(`$$`,2);return t<0?void 0:{raw:e.slice(0,t+2),text:e.slice(2,t),display:!0}}if(!(e.length<3||Se(e[1])))for(let t=1;t<e.length;t+=1){let n=e[t];if(n===`\\`){t+=1;continue}if(n!==`$`)continue;if(e[t+1]===`$`||Se(e[t-1]))return;if(Ce(e[t+1]))continue;if(t===1)return;let r=e.slice(1,t);return Ce(e[1])&&!Te(r)&&Ee(r)?void 0:{raw:e.slice(0,t+1),text:r,display:!1}}}},q=e=>e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`),ke=e=>/^\[[^\]]+\]:\s+\S+/m.test(e)||/^\[\^[^\]]+\]:\s+/m.test(e),Ae=e=>{let t=e.match(/^[ \t]{0,3}(`{3,}|~{3,})/);if(!t)return!1;let n=t[1];if(!n)return!1;let r=n[0],i=n.length,a=e.trimEnd().split(`
3
3
  `).at(-1)?.trim()??``;return!RegExp(`^[\\t ]{0,3}${r}{${i},}[\\t ]*$`).test(a)},je=e=>{try{return U(e,{linkMode:`text-only`})}catch{return e}},Me=(e,t)=>{let n=t?`live`:`full`;if(ke(e))return[{raw:e,src:je(e),mode:n,highlight:!0}];let r;try{r=H.lexer(e)}catch{return[{raw:e,src:je(e),mode:n,highlight:!0}]}let i=-1;for(let e=r.length-1;e>=0;--e)if(r[e]?.type!==`space`){i=e;break}if(i<0)return[{raw:e,src:je(e),mode:n,highlight:!0}];let a=[];for(let e=0;e<r.length;e+=1){let t=r[e];if(!t||t.type===`space`)continue;let o=t.raw??``,s=e===i,c=t.type===`code`&&Ae(o);a.push({raw:o,src:c?o:je(o),mode:s?n:`full`,highlight:!c})}return a.length===0?[{raw:e,src:je(e),mode:n,highlight:!0}]:a},Ne=16,Pe=new Map,Fe=(e,t)=>{let n=`${+!!t}:${e}`,r=Pe.get(n);if(r)return Pe.delete(n),Pe.set(n,r),r;let i=Me(e,t);for(;Pe.size>=Ne;){let e=Pe.keys().next().value;if(typeof e!=`string`)break;Pe.delete(e)}return Pe.set(n,i),i},Ie=(e,t,n)=>{try{return he.renderToString(e,{displayMode:n,throwOnError:!1})}catch{return t}},Le=H.use({gfm:!0,breaks:!1,extensions:[{name:`inlineMath`,level:`inline`,start(e){let t=e.indexOf(`\\(`);return t<0?void 0:t},tokenizer(e){let t=/^\\\(([\s\S]+?)\\\)/.exec(e);if(t)return{type:`inlineMath`,raw:t[0],text:t[1]??``}},renderer(e){let t=e;return Ie(t.text,t.raw,!1)}},{name:`blockMath`,level:`block`,start(e){let t=e.indexOf(`\\[`);return t<0?void 0:t},tokenizer(e){let t=/^\\\[([\s\S]+?)\\\]/.exec(e);if(t)return{type:`blockMath`,raw:t[0],text:t[1]??``}},renderer(e){let t=e;return Ie(t.text,t.raw,!0)}},{name:`dollarMath`,level:`inline`,start(e){return De(e)},tokenizer(e){let t=Oe(e);if(t)return{type:`dollarMath`,raw:t.raw,text:t.text,display:t.display}},renderer(e){let t=e;return Ie(t.text,t.raw,t.display)}}],renderer:{link({href:e,title:t,text:n}){let r=e??``,i=de(r);if(i)return`<a href="${q(B(i))}" data-openchamber-agent-mention="true" class="text-primary hover:underline" target="_blank" rel="noopener noreferrer">${n}</a>`;let a=V(r);if(a)return`<a href="${q(r)}" data-skill-name="${q(a)}" class="text-primary hover:underline">${n}</a>`;let o=t?` title="${q(t)}"`:``;return`<a href="${q(r)}"${o} class="external-link" target="_blank" rel="noopener noreferrer">${n}</a>`}}}),Re=e=>e.replace(/\$\$([\s\S]*?)\$\$/g,(e,t)=>{try{return he.renderToString(t,{displayMode:!0,throwOnError:!1})}catch{return`$$${t}$$`}}),ze=e=>e.indexOf(`$`)===-1?e:e.split(/(<(?:pre|code|kbd)[^>]*>[\s\S]*?<\/(?:pre|code|kbd)>)/gi).map((e,t)=>t%2==1?e:Re(e)).join(``),Be=/<pre><code(?:\s+class="language-([^"]*)")?>([\s\S]*?)<\/code><\/pre>/g,Ve=1200,He=200,Ue=(e,t)=>{let n=1;for(let r=0;r<e.length;r+=1)if(e.charCodeAt(r)===10&&++n>t)return!0;return!1},We=e=>e.replace(/&lt;/g,`<`).replace(/&gt;/g,`>`).replace(/&quot;/g,`"`).replace(/&#39;/g,`'`).replace(/&amp;/g,`&`),Ge=e=>e.reference?`data-md-lang="${q(e.lang)}" data-md-label="${q(e.label)}"`:`data-md-lang="${q(e.lang)}"`,Ke=async(e,t,n)=>{if(t?.aborted)return null;let i=[...e.matchAll(Be)];if(i.length===0)return e;let a=r()?He:Ve,o=e;for(let e of i){if(t?.aborted)return null;let[r,i,s]=e,c=xe(i);if(c.lang===`mermaid`&&!c.reference)continue;let l=We(s??``);if(Ue(l,a)){o=o.replace(r,()=>r.replace(`<pre`,`<pre ${Ge(c)}`));continue}let u=await R(l,c.lang,{signal:t,priority:n});if(t?.aborted)return null;if(u){let e=u.replace(/^<pre/,`<pre ${Ge(c)}`);o=o.replace(r,()=>e)}}return o},qe={USE_PROFILES:{html:!0,mathMl:!0,svg:!0},ADD_TAGS:[`svg`,`path`,`g`,`rect`,`line`,`polygon`,`polyline`,`circle`,`ellipse`,`text`,`tspan`,`defs`,`marker`],ADD_ATTR:[`d`,`viewBox`,`preserveAspectRatio`,`xmlns`,`target`,`fill`,`stroke`,`stroke-width`,`transform`,`points`,`x`,`y`,`x1`,`y1`,`x2`,`y2`,`cx`,`cy`,`r`,`rx`,`ry`,`style`],FORBID_TAGS:[`script`],FORBID_CONTENTS:[`script`]},Je=!1,Ye=()=>{Je||typeof window>`u`||!W.isSupported||(Je=!0,W.addHook(`uponSanitizeAttribute`,(e,t)=>{if(!(e instanceof HTMLImageElement)||t.attrName!==`src`)return;let n=typeof t.attrValue==`string`?t.attrValue:``;/^file:/i.test(n)&&(e.setAttribute(`data-md-image-source`,n),t.keepAttr=!1)}),W.addHook(`afterSanitizeAttributes`,e=>{e instanceof HTMLAnchorElement&&e.target===`_blank`&&e.setAttribute(`rel`,`noopener noreferrer`)}))},Xe=e=>W.isSupported?(Ye(),W.sanitize(e,qe)):``,Ze=`data-md-sanitize-block`,Qe=e=>{if(e.length===0)return[];if(e.length===1)return[Xe(e[0])];if(!W.isSupported||typeof document>`u`)return e.map(e=>Xe(e));let t=e.map((e,t)=>`<div ${Ze}="${t}">${e}</div>`).join(``),n=document.createElement(`div`);n.innerHTML=Xe(t);let r=e.map(()=>``);return n.querySelectorAll(`[${Ze}]`).forEach(e=>{let t=Number(e.getAttribute(Ze));Number.isInteger(t)&&t>=0&&t<r.length&&(r[t]=e.innerHTML)}),r},$e=240,et=16777216,tt=160,nt=8388608,rt=new L({maxEntries:$e,maxBytes:et}),it=new L({maxEntries:tt,maxBytes:nt}),at=e=>{let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(36)},ot=e=>e.length*2,st=(e,t)=>{rt.set(e,t,ot(e)+ot(t.hash)+ot(t.html))},ct=async(e,t,n)=>{if(t?.aborted)return null;let r=await Promise.resolve(Le.parse(e.src));if(t?.aborted)return null;let i=ze(r);if(t?.aborted)return null;let a=e.highlight?await Ke(i,t,n):i;if(a===null||t?.aborted)return null;let o=Xe(a);return t?.aborted?null:o},lt=e=>`${at(e)}:${e.length}`,ut=e=>{let t=it.get(lt(e));return t?.source===e?t.html:void 0},dt=(e,t)=>{let n=lt(e);it.set(n,{source:e,html:t},ot(n)+ot(e)+ot(t))},ft=e=>ze(Le.parse(e)),pt=e=>{if(!e)return[];let t=Fe(e,!1).map(e=>e.src),n=Array(t.length).fill(``),r=[],i=[];t.forEach((e,t)=>{let a=ut(e);if(a!==void 0){n[t]=a;return}r.push(t),i.push(ft(e))});let a=Qe(i);return r.forEach((e,r)=>{let i=a[r]??``;n[e]=i,dt(t[e],i)}),n},mt=8,ht=()=>typeof performance<`u`?performance.now():Date.now(),gt=e=>e?.aborted?Promise.resolve(!1):new Promise(t=>{let n=!1,r=r=>{n||(n=!0,e?.removeEventListener(`abort`,a),t(r))},i=ce(()=>{r(!e?.aborted)},{priority:`visible`}),a=()=>{i(),r(!1)};e?.addEventListener(`abort`,a,{once:!0})}),_t=async(e,t,n,r)=>{if(!e)return[];let i=Fe(e,t),a=t?`visible`:`background`,o=async(e,t)=>{if(r?.aborted)return null;let i=at(e.raw),o=`${i}:${e.mode}:${+!!e.highlight}`,s=`${n}:${t}:${e.mode}`,c=rt.get(s);if(c&&c.hash===i)return{id:o,html:c.html};let l=await ct(e,r,a);return l===null||r?.aborted?null:(st(s,{hash:i,html:l}),{id:o,html:l})};if(t)return(await Promise.all(i.map(o))).filter(e=>e!==null);let s=[],c=0;for(let e=0;e<i.length&&!r?.aborted;e+=1){let t=i[e];if(!t)continue;if(ht()>=c){if(!await gt(r))break;c=ht()+mt}let n=await o(t,e);n&&s.push(n)}return s},J=e=>Number.isFinite(e)&&e>0,vt=e=>{if(typeof e==`number`)return J(e)?e:null;if(typeof e!=`string`)return null;let t=e.trim().match(/^([+-]?(?:(?:\d+\.?\d*)|(?:\.\d+))(?:[eE][+-]?\d+)?)(?:px)?$/);if(!t)return null;let n=Number(t[1]);return J(n)?n:null},yt=(e,t,n)=>Math.min(n,Math.max(t,e)),bt=6,xt=1.25,St=1.0015,Ct=16,wt=1e3,Tt=.5,Et=12,Dt=400,Ot=`[data-markdown="mermaid-block"]`,kt=e=>e.querySelector(Ot)!==null,At=e=>[e.x,e.y,e.width,e.height].map(e=>{let t=Number(e.toFixed(bt));return Object.is(t,-0)?`0`:String(t)}).join(` `),jt=e=>{let t=e.viewBox?.trim().split(/[\s,]+/).map(e=>Number.parseFloat(e));if(t?.length===4){let[e,n,r,i]=t;if(Number.isFinite(e)&&Number.isFinite(n)&&J(r)&&J(i))return{x:e,y:n,width:r,height:i}}let n=vt(e.width),r=vt(e.height);return n===null||r===null?null:{x:0,y:0,width:n,height:r}},Mt=e=>{let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(36)},Nt=e=>{let t=e.renderMode||`unknown`,n=e.svgMarkup??``;if(!n){let n=[e.viewBox??``,e.width??``,e.height??``];return n.some(e=>e!==``)?`${t}:bounds:${n.join(`:`)}`:`${t}:no-svg`}return[t,Mt(n)].join(`:`)},Pt=(e,t)=>{if(!J(t.width)||!J(t.height))return e;let n=e.width/e.height,r=t.width/t.height;if(n>r){let t=e.width/r;return{x:e.x,y:e.y-(t-e.height)/2,width:e.width,height:t}}let i=e.height*r;return{x:e.x-(i-e.width)/2,y:e.y,width:i,height:e.height}},Ft=({currentBox:e,viewport:t,delta:n})=>!J(t.width)||!J(t.height)||!J(e.width)||!J(e.height)?e:{x:e.x-n.x/t.width*e.width,y:e.y-n.y/t.height*e.height,width:e.width,height:e.height},It=(e,t,n)=>{let r=e*(t===1?Ct:t===2?J(n)?n:0:1);return Number.isFinite(r)?yt(r,-1e3,wt):0},Lt=e=>{let t=null;for(let n of e){if(!t){t=n;continue}return{center:{x:(t.x+n.x)/2,y:(t.y+n.y)/2},distance:Math.hypot(n.x-t.x,n.y-t.y)}}return null},Rt=(e,t)=>{let n=t.x-e.x,r=t.y-e.y;return n*n+r*r>9},zt=({currentBox:e,contentBox:t,viewport:n,pointer:r,zoomFactor:i,minScale:a,maxScale:o})=>{if(!J(n.width)||!J(n.height)||!J(i)||!J(e.width)||!J(e.height)||!J(t.width)||!J(t.height)||!J(a)||!J(o))return e;let s=Math.min(a,o),c=Math.max(a,o),l=Pt(t,n),u=yt(l.width/e.width*i,s,c),d=l.width/u,f=d/(e.width/e.height),p=yt(r.x/n.width,0,1),m=yt(r.y/n.height,0,1),h=e.x+p*e.width,g=e.y+m*e.height;return{x:h-p*d,y:g-m*f,width:d,height:f}},Bt=({currentBox:e,contentBox:t,viewport:n,previousGesture:r,gesture:i,minScale:a,maxScale:o})=>!J(r.distance)||!J(i.distance)?e:zt({currentBox:Ft({currentBox:e,viewport:n,delta:{x:i.center.x-r.center.x,y:i.center.y-r.center.y}}),contentBox:t,viewport:n,pointer:i.center,zoomFactor:i.distance/r.distance,minScale:a,maxScale:o}),Vt=new WeakMap,Ht=e=>e instanceof HTMLElement?Vt.get(e)??null:null,Ut=e=>e.querySelector(`[data-markdown="mermaid-viewport"]`)??e.querySelector(`[data-markdown="mermaid"]`),Wt=e=>{let t=e.querySelector(`[data-markdown="mermaid"] svg`),n=e.querySelector(`[data-markdown="mermaid"]`);return Nt({renderMode:e.getAttribute(`data-mermaid-render`),svgMarkup:n?.getAttribute(`data-md-original-svg`)??t?.outerHTML??null,viewBox:t?.getAttribute(`viewBox`),width:t?.getAttribute(`width`),height:t?.getAttribute(`height`)})},Gt=e=>{let t=e.getBoundingClientRect();return{width:t.width,height:t.height}},Kt=(e,t)=>({x:e.clientX-t.left,y:e.clientY-t.top}),qt=(e,t)=>Kt(e,t.getBoundingClientRect()),Jt=e=>e instanceof Element&&!!e.closest(`button, a, [role="button"]`),Yt=e=>{let t=Ut(e),n=e.querySelector(`[data-markdown="mermaid"] svg`);if(!t||!n)return null;let r=jt({viewBox:n.getAttribute(`viewBox`),width:n.getAttribute(`width`),height:n.getAttribute(`height`)});if(!r)return null;let i=r,a=null,o=null,s=null,c=new Map,l=new Set,u=null,d=null,f=e=>{i=e,n.setAttribute(`viewBox`,At(e)),n.removeAttribute(`width`),n.removeAttribute(`height`)},p=()=>{f(Pt(r,Gt(t)))},m=(e,n)=>{f(zt({currentBox:i,contentBox:r,viewport:Gt(t),pointer:e,zoomFactor:n,minScale:Tt,maxScale:Et}))},h=()=>{let e=Gt(t);m({x:e.width/2,y:e.height/2},xt)},g=()=>{let e=Gt(t);m({x:e.width/2,y:e.height/2},1/xt)},_=e=>{e.preventDefault(),e.stopPropagation();let n=It(e.deltaY,e.deltaMode,Gt(t).height);m(qt(e,t),St**+-n)},v=e=>{try{t.setPointerCapture(e),l.add(e)}catch{}},y=e=>{if(l.delete(e))try{t.hasPointerCapture(e)&&t.releasePointerCapture(e)}catch{}},b=()=>{a=null,o=null,s=null,c.clear(),u=null},x=()=>{b(),e.removeAttribute(`data-mermaid-panning`),e.hasAttribute(`data-mermaid-suppress-click`)&&(d=window.setTimeout(()=>{e.removeAttribute(`data-mermaid-suppress-click`),d=null},Dt))},S=n=>{if(n.pointerType!==`touch`&&n.button!==0||Jt(n.target))return;d!==null&&(window.clearTimeout(d),d=null),e.removeAttribute(`data-mermaid-suppress-click`);let r=qt(n,t);v(n.pointerId),e.setAttribute(`data-mermaid-panning`,`true`),n.pointerType===`touch`?(c.set(n.pointerId,r),c.size>=2?(a=null,o=null,s=null,u=Lt(c.values()),e.setAttribute(`data-mermaid-suppress-click`,`true`)):(a=n.pointerId,o=r,s=r)):(a=n.pointerId,o=r,s=r),n.preventDefault()},C=n=>{if(n.pointerType===`touch`){if(!c.has(n.pointerId))return;let a=qt(n,t);if(c.set(n.pointerId,a),c.size>=2){let a=Lt(c.values());u&&a&&f(Bt({currentBox:i,contentBox:r,viewport:Gt(t),previousGesture:u,gesture:a,minScale:Tt,maxScale:Et})),u=a,e.setAttribute(`data-mermaid-suppress-click`,`true`),n.preventDefault();return}}if(a!==n.pointerId||!s)return;let l=qt(n,t);f(Ft({currentBox:i,viewport:Gt(t),delta:{x:l.x-s.x,y:l.y-s.y}})),s=l,o&&Rt(o,l)&&e.setAttribute(`data-mermaid-suppress-click`,`true`),n.preventDefault()},w=e=>{if(e.pointerType===`touch`||c.has(e.pointerId)){if(!c.has(e.pointerId))return;if(c.delete(e.pointerId),u=Lt(c.values()),c.size>0){for(let[e,t]of c){a=e,o=t,s=t;break}c.size>=2&&(a=null,o=null,s=null),y(e.pointerId);return}x(),y(e.pointerId);return}a===e.pointerId&&(x(),y(e.pointerId))},T=()=>{p()};t.addEventListener(`wheel`,_,{passive:!1}),t.addEventListener(`pointerdown`,S),t.addEventListener(`pointermove`,C),t.addEventListener(`pointerup`,w),t.addEventListener(`pointercancel`,w),t.addEventListener(`lostpointercapture`,w),window.addEventListener(`resize`,T);let ee=typeof ResizeObserver>`u`?null:new ResizeObserver(T);return ee?.observe(t),p(),{zoomIn:h,zoomOut:g,fit:p,cleanup:()=>{t.removeEventListener(`wheel`,_),t.removeEventListener(`pointerdown`,S),t.removeEventListener(`pointermove`,C),t.removeEventListener(`pointerup`,w),t.removeEventListener(`pointercancel`,w),t.removeEventListener(`lostpointercapture`,w),window.removeEventListener(`resize`,T),ee?.disconnect(),d!==null&&window.clearTimeout(d);for(let e of Array.from(l))y(e);b(),e.removeAttribute(`data-mermaid-panning`),e.removeAttribute(`data-mermaid-suppress-click`),Vt.delete(e)}}},Xt=e=>{let t=new Map,n=new Map,r=()=>{for(let[r,i]of Array.from(t.entries())){let a=Wt(r);(!e.contains(r)||a!==n.get(r))&&(i.cleanup(),t.delete(r),n.delete(r))}for(let r of Array.from(e.querySelectorAll(Ot))){if(t.has(r)||r.querySelector(`[data-markdown="mermaid"] svg`)===null)continue;let e=Yt(r);e&&(t.set(r,e),n.set(r,Wt(r)),Vt.set(r,e))}};return r(),{refresh:r,cleanup:()=>{for(let e of t.values())e.cleanup();t.clear(),n.clear()}}},Y=(e,t=`size-3.5`)=>`<svg class="oc-icon ${t}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#oc-${e}"></use></svg>`,Zt={copy:Y(`file-copy`),check:Y(`check`),download:Y(`download`),zoomIn:Y(`add`),zoomOut:Y(`subtract`),fit:Y(`refresh`),textWrap:Y(`text-wrap`),image:Y(`file-image`,`size-10`),imageDownload:Y(`download`,`size-3`),imageLoading:Y(`loader-4`,`size-3.5 animate-spin motion-reduce:animate-none`)},Qt=`p-1 rounded hover:bg-interactive-hover/60 text-muted-foreground hover:text-foreground transition-colors focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--interactive-focus-ring)]`,$t=(e,t)=>{e.innerHTML=t},X=(e,t,n)=>{let r=document.createElement(`button`);return r.type=`button`,r.className=Qt,r.setAttribute(`data-md-action`,n),r.setAttribute(`title`,t),r.setAttribute(`aria-label`,t),$t(r,Zt[e]),r},en=(e,t,n)=>{let r=e.querySelector(`[data-md-code-body]`),i=e.querySelector(`pre`),a=e.querySelector(`pre code`),o=e.querySelector(`[data-md-action="toggle-code-wrap"]`);if(e.setAttribute(`data-code-wrap`,t?`true`:`false`),r?.classList.toggle(`overflow-x-auto`,!t),r?.classList.toggle(`overflow-x-hidden`,t),i?.classList.toggle(`whitespace-pre-wrap`,t),i?.classList.toggle(`break-words`,t),a?.classList.toggle(`whitespace-pre-wrap`,t),a?.classList.toggle(`break-words`,t),i&&(i.style.whiteSpace=t?`pre-wrap`:`pre`,i.style.overflowWrap=t?`anywhere`:`normal`),a&&(a.style.whiteSpace=t?`pre-wrap`:`pre`,a.style.overflowWrap=t?`anywhere`:`normal`),o){let e=t?n.disableCodeWrap:n.enableCodeWrap;o.setAttribute(`title`,e),o.setAttribute(`aria-label`,e),o.classList.toggle(`text-foreground`,t),o.classList.toggle(`opacity-100`,t),o.classList.toggle(`text-muted-foreground`,!t),o.classList.toggle(`opacity-65`,!t),o.setAttribute(`aria-pressed`,t?`true`:`false`)}},tn=e=>{let t=document.createElement(`div`);t.setAttribute(`data-md-code-line-numbers`,``),t.setAttribute(`aria-hidden`,`true`),t.className=`min-w-8 shrink-0 select-none border-r border-border/50 pr-3 text-right font-mono text-[13px] text-muted-foreground/45`;let n=e.textContent??``,r=Math.max(1,n.endsWith(`
4
4
  `)?n.split(`
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{E as t,w as n}from"./useUIStore-DzwCfRqr.js";import{kn as r,u as i}from"./persistence-6sclr7B6.js";import{nt as a,rt as o}from"./vendor-base-ui-CnHfUmDN.js";import{n as s}from"./vendor-react-DLPElpoQ.js";import{s as c,t as l}from"./vendor-tanstack-react-query-D7pys_c9.js";import{Ro as u,zo as d}from"./useMobileNavigationStore-CncTmwzO.js";import{t as f}from"./utils-B1EK5zKa.js";import{n as p}from"./Icon-DpjYnXxn.js";import{t as m}from"./button-C7OXr4ae.js";var h=e(o(),1),g=s(),_=class extends Error{code;status;resource;constructor(e,t,n){super(e),this.code=e,this.status=t,this.resource=n}},v=class extends _{operation;constructor(e,t,n){super(e,t,`share_operation`),this.operation=n}},y=(e,t=200)=>{throw new _(`invalid_${e}_response`,t,e)},b=(e,t)=>e&&typeof e==`object`&&!Array.isArray(e)?e:y(t),x=(e,t)=>typeof e==`string`?e:y(t),S=(e,t)=>e===null||typeof e==`string`?e:y(t),C=(e,t)=>typeof e==`number`&&Number.isFinite(e)?e:y(t),w=(e,t)=>e===null?null:C(e,t),T=(e,t)=>typeof e==`boolean`?e:y(t),E=(e,t,n)=>t.includes(e)?e:y(n),D=e=>{let t=b(e,`capability`);return{supported:T(t.supported,`capability`),enabled:T(t.enabled,`capability`),revision:C(t.revision,`capability`),serverInstanceID:S(t.serverInstanceID,`capability`)}},O=e=>{let t=b(e,`assistant`),n=Array.isArray(t.historySessionIDs)?t.historySessionIDs.map(e=>x(e,`assistant`)):[],r=t.historySessionCount===void 0?n.length:C(t.historySessionCount,`assistant`);return!Number.isSafeInteger(r)||r<n.length?y(`assistant`):{id:x(t.id,`assistant`),revision:C(t.revision,`assistant`),enabled:T(t.enabled,`assistant`),name:x(t.name,`assistant`),defaultPrompt:x(t.defaultPrompt,`assistant`),workspacePath:S(t.workspacePath,`assistant`),effectiveWorkspacePath:x(t.effectiveWorkspacePath,`assistant`),managedWorkspacePath:S(t.managedWorkspacePath??null,`assistant`),providerID:x(t.providerID,`assistant`),modelID:x(t.modelID,`assistant`),agent:S(t.agent,`assistant`),variant:S(t.variant??null,`assistant`),mode:E(t.mode,[`continuous`,`stateless`],`assistant`),sessionID:S(t.sessionID,`assistant`),sessionGeneration:C(t.sessionGeneration,`assistant`),historySessionIDs:n,historySessionCount:r,createdAt:w(t.createdAt,`assistant`),updatedAt:C(t.updatedAt,`assistant`),tombstoneAt:w(t.tombstoneAt,`assistant`)}},k=e=>{let t=b(e,`snapshot`);return{revision:C(t.revision,`snapshot`),enabled:T(t.enabled,`snapshot`),assistants:Array.isArray(t.assistants)?t.assistants.map(O):y(`snapshot`)}},A=e=>{let t=b(e,`binding`);return{sessionID:S(t.sessionID,`binding`),directory:x(t.directory,`binding`),sessionGeneration:C(t.sessionGeneration,`binding`)}},j=e=>{let t=b(e,`compact`);return t.summarized===!0?{binding:A(t.binding),summarized:!0}:y(`compact`)},M=e=>{let t=b(e,`message_admission`);return t.admitted===!0?{binding:A(t.binding),messageID:x(t.messageID,`message_admission`),admitted:!0}:y(`message_admission`)},N=e=>{let t=b(e,`share_operation`);return{operationID:x(t.operationID,`share_operation`),assistantID:x(t.assistantID,`share_operation`),sessionID:S(t.sessionID,`share_operation`),messageID:S(t.messageID,`share_operation`),state:E(t.state,[`submitting`,`running`,`completed`,`failed`,`unresolved`],`share_operation`),phase:x(t.phase,`share_operation`),attempt:C(t.attempt,`share_operation`),leaseExpiresAt:w(t.leaseExpiresAt,`share_operation`),errorCode:S(t.errorCode,`share_operation`)}},P=e=>{let t=b(e,`assistant_history`),n=S(t.nextCursor,`assistant_history`),r=T(t.complete,`assistant_history`);return!r&&!n||r&&n||!Array.isArray(t.entries)?y(`assistant_history`):{entries:t.entries.map(e=>{let t=b(e,`assistant_history_entry`),n=x(t.sessionID,`assistant_history_entry`),r=b(t.info,`assistant_history_info`),i=b(r.time,`assistant_history_info`);if(x(r.id,`assistant_history_info`),x(r.sessionID,`assistant_history_info`)!==n||(E(r.role,[`user`,`assistant`,`system`,`tool`],`assistant_history_info`),C(i.created,`assistant_history_info`),!Array.isArray(t.parts)))return y(`assistant_history_entry`);let a=t.parts.map(e=>{let t=b(e,`assistant_history_part`);return x(t.id,`assistant_history_part`),x(t.sessionID,`assistant_history_part`)!==n||x(t.messageID,`assistant_history_part`)!==r.id?y(`assistant_history_part`):(x(t.type,`assistant_history_part`),t)});return{sessionID:n,directory:S(t.directory,`assistant_history_entry`),info:r,parts:a}}),nextCursor:n,complete:r}},F=30,I={snapshot:(e=t())=>[e,`assistants`,`snapshot`],capability:(e=t())=>[e,`assistants`,`capability`],history:(e,r,i,a=t(),o=n())=>[a,o,`assistants`,`history`,e,r,i]},L=(e,t,n)=>{if(!e||!t)return;let r=t.queryKey;if(r[0]===n.transport&&r[1]===n.runtimeGeneration&&r[2]===`assistants`&&r[3]===`history`&&r[4]===n.assistantID)return e},R=async(e,t={})=>{let n=await r(e,t),i=await n.json().catch(()=>null);if(!n.ok)throw new _(i&&typeof i==`object`&&`error`in i&&typeof i.error==`string`?i.error:`request_failed`,n.status);return i},z=(e,t)=>({method:e,headers:{"Content-Type":`application/json`},body:t===void 0?void 0:JSON.stringify(t)}),B=(e,r)=>{if(t()!==e||n()!==r)throw new _(`runtime_stale`,409)},V=(e,t,r)=>{i.setQueryData(I.snapshot(r),n=>n&&{...n,assistants:n.assistants.map(n=>n.id!==e||n.sessionGeneration>t.sessionGeneration?n:{...n,sessionID:t.sessionID,sessionGeneration:t.sessionGeneration,effectiveWorkspacePath:t.directory})}),i.invalidateQueries({queryKey:I.snapshot(r)}),i.invalidateQueries({queryKey:[r,n(),`assistants`,`history`,e]})},H=(e,t)=>{i.setQueryData(I.snapshot(t),t=>t&&{...t,assistants:t.assistants.some(t=>t.id===e.id)?t.assistants.map(t=>t.id===e.id?e:t):[...t.assistants,e]}),i.invalidateQueries({queryKey:I.snapshot(t)})},U=(e=t())=>({queryKey:I.snapshot(e),queryFn:async({signal:e})=>k(await R(`/api/openchamber/assistants/snapshot`,{signal:e})),retry:2}),W=()=>{let e=(0,g.c)(5),n,r,a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=t(),n=c,r=U(a),e[0]=n,e[1]=r,e[2]=a):(n=e[0],r=e[1],a=e[2]);let o=n(r),s,l;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(s=()=>d(e=>{if(t()!==a)return;if(e.type===`event-stream-ready`){i.invalidateQueries({queryKey:I.snapshot(a),exact:!0});return}if(e.type!==`assistants-changed`)return;let n=i.getQueryData(I.snapshot(a));(!n||e.revision>n.revision)&&i.invalidateQueries({queryKey:I.snapshot(a),exact:!0})}),l=[a],e[3]=s,e[4]=l):(s=e[3],l=e[4]),h.useEffect(s,l),o},G=(e,r,i,a=t(),o=n())=>({queryKey:I.history(e,r,i,a,o),queryFn:async({signal:t,pageParam:n})=>{B(a,o),await u(),B(a,o);let r=new URLSearchParams({limit:String(F)});n&&r.set(`before`,n);let i=P(await R(`/api/openchamber/assistants/${encodeURIComponent(e)}/messages?${r}`,{signal:t}));return B(a,o),i},initialPageParam:null,getNextPageParam:K,placeholderData:(t,n)=>L(t,n,{assistantID:e,transport:a,runtimeGeneration:o}),retry:2}),K=e=>e.complete?void 0:e.nextCursor??void 0,q=(e,t,n)=>{let r=(0,g.c)(7),i=n===void 0||n,a=t.sessionID??``,o;r[0]!==e||r[1]!==t.sessionGeneration||r[2]!==a?(o=G(e,a,t.sessionGeneration),r[0]=e,r[1]=t.sessionGeneration,r[2]=a,r[3]=o):o=r[3];let s=i&&!!(e&&t.sessionID),c;return r[4]!==o||r[5]!==s?(c={...o,enabled:s},r[4]=o,r[5]=s,r[6]=c):c=r[6],l(c)},J=async e=>k(await R(`/api/openchamber/assistants/snapshot`,{signal:e})),Y=(e=t())=>({queryKey:I.capability(e),queryFn:()=>Q(),retry:!1}),X=()=>{let e=(0,g.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=Y(),e[0]=t):t=e[0],c(t)},Z=(e=i,n=t())=>e.getQueryData(I.snapshot(n)),ee=(e=i,n=t())=>e.fetchQuery(U(n)),te=async(e=i)=>{let r=t(),a=n();await e.invalidateQueries({queryKey:I.snapshot(r),exact:!0}),B(r,a);let o=await e.fetchQuery(U(r));return B(r,a),o},ne=async e=>{let r=t(),i=n();await u(),B(r,i);let a=A(await R(`/api/openchamber/assistants/${encodeURIComponent(e)}/session/ensure`,z(`POST`)));return B(r,i),V(e,a,r),a},re=async e=>{let r=t(),i=n(),a=A(await R(`/api/openchamber/assistants/${encodeURIComponent(e)}/session/new`,z(`POST`)));return B(r,i),V(e,a,r),a},ie=async(e,r)=>{let i=t(),a=n(),o=j(await R(`/api/openchamber/assistants/${encodeURIComponent(e)}/session/compact`,z(`POST`,{sessionID:r.sessionID,sessionGeneration:r.sessionGeneration})));return B(i,a),V(e,o.binding,i),o},ae=async(e,r)=>{let i=t(),a=n();await R(`/api/openchamber/assistants/${encodeURIComponent(e)}/session/abort`,z(`POST`,{sessionID:r.sessionID,sessionGeneration:r.sessionGeneration})),B(i,a)},oe=async(e,r,i,a,o=`composer`)=>{let s=t(),c=n(),l=M(await R(`/api/openchamber/assistants/${encodeURIComponent(e)}/messages`,z(`POST`,{sessionID:r.sessionID,sessionGeneration:r.sessionGeneration,messageID:i,parts:a,source:o})));return B(s,c),V(e,l.binding,s),l},se=async(e,r,i,a,o)=>{let s=t(),c=n(),l=N(await R(`/api/openchamber/assistants/${encodeURIComponent(e)}/share`,z(`POST`,{operationID:r,payload:{messageID:i,parts:a,source:o}})));return B(s,c),l},ce=async(e,r=t(),i=n())=>{B(r,i);let a=N(await R(`/api/openchamber/assistants/share-operations/${encodeURIComponent(e)}`));return B(r,i),a},le=async(e,r=t(),i=n())=>{let a=e;for(let e=0;e<60&&(a.state===`running`||a.state===`submitting`);e+=1)B(r,i),await new Promise(e=>setTimeout(e,750)),a=await ce(a.operationID,r,i);if(B(r,i),a.state===`completed`)return a;throw a.state===`failed`?new v(a.errorCode??`share_failed`,400,a):new v(`share_unresolved`,408,a)},ue=async(e,n)=>{await R(`/api/openchamber/assistants/settings`,z(`PUT`,{enabled:e,expectedRevision:n}));let r=t();await Promise.all([i.invalidateQueries({queryKey:I.snapshot(r),exact:!0}),i.invalidateQueries({queryKey:I.capability(r),exact:!0})])},de=async e=>{let n=t(),r=O(await R(`/api/openchamber/assistants`,z(`POST`,e)));return H(r,n),r},fe=async(e,r)=>{let i=t(),a=n(),o=O(await R(`/api/openchamber/assistants/${encodeURIComponent(e.id)}`,z(`PATCH`,{...r,expectedRevision:e.revision})));return B(i,a),H(o,i),o},pe=async e=>{await R(`/api/openchamber/assistants/${encodeURIComponent(e.id)}`,z(`DELETE`,{expectedRevision:e.revision})),await i.invalidateQueries({queryKey:I.snapshot(t())})},Q=async()=>D(await R(`/api/openchamber/assistants/capability`)),$=a();function me(e){let t=(0,g.c)(32),{title:n,subtitle:r,backAriaLabel:i,onBack:a,backDisabled:o,actions:s,trailing:c,sticky:l,overlay:u,elevated:d}=e,h=o!==void 0&&o,_;t[0]===s?_=t[1]:(_=s===void 0?[]:s,t[0]=s,t[1]=_);let v=_,y=l!==void 0&&l,b=u!==void 0&&u,x=d!==void 0&&d,S=!!c||v.length>0,C=x||v.some(ge),w=y&&`oc-mobile-detail-navigation-sticky`,T=b&&`absolute inset-x-0 top-0`,E=C?`z-[60]`:b?`z-30`:void 0,D;t[2]!==w||t[3]!==T||t[4]!==E?(D=f(`oc-mobile-detail-navigation relative shrink-0 pt-[max(0.25rem,var(--oc-safe-area-top,0px))]`,w,T,E),t[2]=w,t[3]=T,t[4]=E,t[5]=D):D=t[5];let O=S&&v.length+ +!!c>1?`grid-cols-[2.75rem_minmax(0,1fr)_auto]`:`grid-cols-[2.75rem_minmax(0,1fr)_2.75rem]`,k;t[6]===O?k=t[7]:(k=f(`oc-mobile-detail-navigation-content grid items-center gap-1 px-4`,O),t[6]=O,t[7]=k);let A;t[8]!==i||t[9]!==h||t[10]!==a?(A=a?(0,$.jsx)(m,{type:`button`,variant:`mobileGlass`,size:`mobileIcon`,className:`justify-self-start`,onClick:a,disabled:h,"aria-label":i,children:(0,$.jsx)(p,{name:`arrow-left-s`,className:`size-5`})}):(0,$.jsx)(`span`,{"aria-hidden":`true`}),t[8]=i,t[9]=h,t[10]=a,t[11]=A):A=t[11];let j;t[12]===n?j=t[13]:(j=(0,$.jsx)(`div`,{className:`oc-mobile-detail-title w-full truncate typography-ui-label font-medium text-foreground`,children:n}),t[12]=n,t[13]=j);let M;t[14]===r?M=t[15]:(M=r?(0,$.jsx)(`div`,{className:`oc-mobile-detail-subtitle w-full truncate text-muted-foreground`,"aria-live":`polite`,children:r}):null,t[14]=r,t[15]=M);let N;t[16]!==j||t[17]!==M?(N=(0,$.jsxs)(`div`,{className:`flex w-full max-w-72 min-w-0 flex-col items-center justify-center justify-self-center px-1`,children:[j,M]}),t[16]=j,t[17]=M,t[18]=N):N=t[18];let P;t[19]===v?P=t[20]:(P=v.map(he),t[19]=v,t[20]=P);let F;t[21]!==P||t[22]!==c?(F=(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center justify-end gap-2`,children:[c,P]}),t[21]=P,t[22]=c,t[23]=F):F=t[23];let I;t[24]!==k||t[25]!==A||t[26]!==N||t[27]!==F?(I=(0,$.jsxs)(`div`,{className:k,children:[A,N,F]}),t[24]=k,t[25]=A,t[26]=N,t[27]=F,t[28]=I):I=t[28];let L;return t[29]!==D||t[30]!==I?(L=(0,$.jsx)(`header`,{className:D,children:I}),t[29]=D,t[30]=I,t[31]=L):L=t[31],L}function he(e,t){return(0,$.jsx)(m,{type:`button`,variant:`mobileGlass`,size:`mobileIcon`,className:f(e.elevated&&`relative z-[60]`),onClick:e.onClick,disabled:e.disabled,"aria-label":e.ariaLabel,"aria-expanded":e.pressed,title:e.title,children:(0,$.jsx)(p,{name:e.icon,className:`size-5`})},`${e.icon}:${t}`)}function ge(e){return e.elevated}export{v as S,X as _,pe as a,le as b,Q as c,re as d,Z as f,fe as g,ue as h,de as i,J as l,se as m,ae as n,ne as o,oe as p,ie as r,ee as s,me as t,te as u,q as v,_ as x,W as y};
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{E as t,w as n}from"./useUIStore-DzwCfRqr.js";import{kn as r,u as i}from"./persistence-6sclr7B6.js";import{nt as a,rt as o}from"./vendor-base-ui-CnHfUmDN.js";import{n as s}from"./vendor-react-DLPElpoQ.js";import{s as c,t as l}from"./vendor-tanstack-react-query-D7pys_c9.js";import{Ro as u,zo as d}from"./useMobileNavigationStore-CrT2Yvjn.js";import{t as f}from"./utils-B1EK5zKa.js";import{n as p}from"./Icon-DpjYnXxn.js";import{t as m}from"./button-C7OXr4ae.js";var h=e(o(),1),g=s(),_=class extends Error{code;status;resource;constructor(e,t,n){super(e),this.code=e,this.status=t,this.resource=n}},v=class extends _{operation;constructor(e,t,n){super(e,t,`share_operation`),this.operation=n}},y=(e,t=200)=>{throw new _(`invalid_${e}_response`,t,e)},b=(e,t)=>e&&typeof e==`object`&&!Array.isArray(e)?e:y(t),x=(e,t)=>typeof e==`string`?e:y(t),S=(e,t)=>e===null||typeof e==`string`?e:y(t),C=(e,t)=>typeof e==`number`&&Number.isFinite(e)?e:y(t),w=(e,t)=>e===null?null:C(e,t),T=(e,t)=>typeof e==`boolean`?e:y(t),E=(e,t,n)=>t.includes(e)?e:y(n),D=e=>{let t=b(e,`capability`);return{supported:T(t.supported,`capability`),enabled:T(t.enabled,`capability`),revision:C(t.revision,`capability`),serverInstanceID:S(t.serverInstanceID,`capability`)}},O=e=>{let t=b(e,`assistant`),n=Array.isArray(t.historySessionIDs)?t.historySessionIDs.map(e=>x(e,`assistant`)):[],r=t.historySessionCount===void 0?n.length:C(t.historySessionCount,`assistant`);return!Number.isSafeInteger(r)||r<n.length?y(`assistant`):{id:x(t.id,`assistant`),revision:C(t.revision,`assistant`),enabled:T(t.enabled,`assistant`),name:x(t.name,`assistant`),defaultPrompt:x(t.defaultPrompt,`assistant`),workspacePath:S(t.workspacePath,`assistant`),effectiveWorkspacePath:x(t.effectiveWorkspacePath,`assistant`),managedWorkspacePath:S(t.managedWorkspacePath??null,`assistant`),providerID:x(t.providerID,`assistant`),modelID:x(t.modelID,`assistant`),agent:S(t.agent,`assistant`),variant:S(t.variant??null,`assistant`),mode:E(t.mode,[`continuous`,`stateless`],`assistant`),sessionID:S(t.sessionID,`assistant`),sessionGeneration:C(t.sessionGeneration,`assistant`),historySessionIDs:n,historySessionCount:r,createdAt:w(t.createdAt,`assistant`),updatedAt:C(t.updatedAt,`assistant`),tombstoneAt:w(t.tombstoneAt,`assistant`)}},k=e=>{let t=b(e,`snapshot`);return{revision:C(t.revision,`snapshot`),enabled:T(t.enabled,`snapshot`),assistants:Array.isArray(t.assistants)?t.assistants.map(O):y(`snapshot`)}},A=e=>{let t=b(e,`binding`);return{sessionID:S(t.sessionID,`binding`),directory:x(t.directory,`binding`),sessionGeneration:C(t.sessionGeneration,`binding`)}},j=e=>{let t=b(e,`compact`);return t.summarized===!0?{binding:A(t.binding),summarized:!0}:y(`compact`)},M=e=>{let t=b(e,`message_admission`);return t.admitted===!0?{binding:A(t.binding),messageID:x(t.messageID,`message_admission`),admitted:!0}:y(`message_admission`)},N=e=>{let t=b(e,`share_operation`);return{operationID:x(t.operationID,`share_operation`),assistantID:x(t.assistantID,`share_operation`),sessionID:S(t.sessionID,`share_operation`),messageID:S(t.messageID,`share_operation`),state:E(t.state,[`submitting`,`running`,`completed`,`failed`,`unresolved`],`share_operation`),phase:x(t.phase,`share_operation`),attempt:C(t.attempt,`share_operation`),leaseExpiresAt:w(t.leaseExpiresAt,`share_operation`),errorCode:S(t.errorCode,`share_operation`)}},P=e=>{let t=b(e,`assistant_history`),n=S(t.nextCursor,`assistant_history`),r=T(t.complete,`assistant_history`);return!r&&!n||r&&n||!Array.isArray(t.entries)?y(`assistant_history`):{entries:t.entries.map(e=>{let t=b(e,`assistant_history_entry`),n=x(t.sessionID,`assistant_history_entry`),r=b(t.info,`assistant_history_info`),i=b(r.time,`assistant_history_info`);if(x(r.id,`assistant_history_info`),x(r.sessionID,`assistant_history_info`)!==n||(E(r.role,[`user`,`assistant`,`system`,`tool`],`assistant_history_info`),C(i.created,`assistant_history_info`),!Array.isArray(t.parts)))return y(`assistant_history_entry`);let a=t.parts.map(e=>{let t=b(e,`assistant_history_part`);return x(t.id,`assistant_history_part`),x(t.sessionID,`assistant_history_part`)!==n||x(t.messageID,`assistant_history_part`)!==r.id?y(`assistant_history_part`):(x(t.type,`assistant_history_part`),t)});return{sessionID:n,directory:S(t.directory,`assistant_history_entry`),info:r,parts:a}}),nextCursor:n,complete:r}},F=30,I={snapshot:(e=t())=>[e,`assistants`,`snapshot`],capability:(e=t())=>[e,`assistants`,`capability`],history:(e,r,i,a=t(),o=n())=>[a,o,`assistants`,`history`,e,r,i]},L=(e,t,n)=>{if(!e||!t)return;let r=t.queryKey;if(r[0]===n.transport&&r[1]===n.runtimeGeneration&&r[2]===`assistants`&&r[3]===`history`&&r[4]===n.assistantID)return e},R=async(e,t={})=>{let n=await r(e,t),i=await n.json().catch(()=>null);if(!n.ok)throw new _(i&&typeof i==`object`&&`error`in i&&typeof i.error==`string`?i.error:`request_failed`,n.status);return i},z=(e,t)=>({method:e,headers:{"Content-Type":`application/json`},body:t===void 0?void 0:JSON.stringify(t)}),B=(e,r)=>{if(t()!==e||n()!==r)throw new _(`runtime_stale`,409)},V=(e,t,r)=>{i.setQueryData(I.snapshot(r),n=>n&&{...n,assistants:n.assistants.map(n=>n.id!==e||n.sessionGeneration>t.sessionGeneration?n:{...n,sessionID:t.sessionID,sessionGeneration:t.sessionGeneration,effectiveWorkspacePath:t.directory})}),i.invalidateQueries({queryKey:I.snapshot(r)}),i.invalidateQueries({queryKey:[r,n(),`assistants`,`history`,e]})},H=(e,t)=>{i.setQueryData(I.snapshot(t),t=>t&&{...t,assistants:t.assistants.some(t=>t.id===e.id)?t.assistants.map(t=>t.id===e.id?e:t):[...t.assistants,e]}),i.invalidateQueries({queryKey:I.snapshot(t)})},U=(e=t())=>({queryKey:I.snapshot(e),queryFn:async({signal:e})=>k(await R(`/api/openchamber/assistants/snapshot`,{signal:e})),retry:2}),W=()=>{let e=(0,g.c)(5),n,r,a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=t(),n=c,r=U(a),e[0]=n,e[1]=r,e[2]=a):(n=e[0],r=e[1],a=e[2]);let o=n(r),s,l;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(s=()=>d(e=>{if(t()!==a)return;if(e.type===`event-stream-ready`){i.invalidateQueries({queryKey:I.snapshot(a),exact:!0});return}if(e.type!==`assistants-changed`)return;let n=i.getQueryData(I.snapshot(a));(!n||e.revision>n.revision)&&i.invalidateQueries({queryKey:I.snapshot(a),exact:!0})}),l=[a],e[3]=s,e[4]=l):(s=e[3],l=e[4]),h.useEffect(s,l),o},G=(e,r,i,a=t(),o=n())=>({queryKey:I.history(e,r,i,a,o),queryFn:async({signal:t,pageParam:n})=>{B(a,o),await u(),B(a,o);let r=new URLSearchParams({limit:String(F)});n&&r.set(`before`,n);let i=P(await R(`/api/openchamber/assistants/${encodeURIComponent(e)}/messages?${r}`,{signal:t}));return B(a,o),i},initialPageParam:null,getNextPageParam:K,placeholderData:(t,n)=>L(t,n,{assistantID:e,transport:a,runtimeGeneration:o}),retry:2}),K=e=>e.complete?void 0:e.nextCursor??void 0,q=(e,t,n)=>{let r=(0,g.c)(7),i=n===void 0||n,a=t.sessionID??``,o;r[0]!==e||r[1]!==t.sessionGeneration||r[2]!==a?(o=G(e,a,t.sessionGeneration),r[0]=e,r[1]=t.sessionGeneration,r[2]=a,r[3]=o):o=r[3];let s=i&&!!(e&&t.sessionID),c;return r[4]!==o||r[5]!==s?(c={...o,enabled:s},r[4]=o,r[5]=s,r[6]=c):c=r[6],l(c)},J=async e=>k(await R(`/api/openchamber/assistants/snapshot`,{signal:e})),Y=(e=t())=>({queryKey:I.capability(e),queryFn:()=>Q(),retry:!1}),X=()=>{let e=(0,g.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=Y(),e[0]=t):t=e[0],c(t)},Z=(e=i,n=t())=>e.getQueryData(I.snapshot(n)),ee=(e=i,n=t())=>e.fetchQuery(U(n)),te=async(e=i)=>{let r=t(),a=n();await e.invalidateQueries({queryKey:I.snapshot(r),exact:!0}),B(r,a);let o=await e.fetchQuery(U(r));return B(r,a),o},ne=async e=>{let r=t(),i=n();await u(),B(r,i);let a=A(await R(`/api/openchamber/assistants/${encodeURIComponent(e)}/session/ensure`,z(`POST`)));return B(r,i),V(e,a,r),a},re=async e=>{let r=t(),i=n(),a=A(await R(`/api/openchamber/assistants/${encodeURIComponent(e)}/session/new`,z(`POST`)));return B(r,i),V(e,a,r),a},ie=async(e,r)=>{let i=t(),a=n(),o=j(await R(`/api/openchamber/assistants/${encodeURIComponent(e)}/session/compact`,z(`POST`,{sessionID:r.sessionID,sessionGeneration:r.sessionGeneration})));return B(i,a),V(e,o.binding,i),o},ae=async(e,r)=>{let i=t(),a=n();await R(`/api/openchamber/assistants/${encodeURIComponent(e)}/session/abort`,z(`POST`,{sessionID:r.sessionID,sessionGeneration:r.sessionGeneration})),B(i,a)},oe=async(e,r,i,a,o=`composer`)=>{let s=t(),c=n(),l=M(await R(`/api/openchamber/assistants/${encodeURIComponent(e)}/messages`,z(`POST`,{sessionID:r.sessionID,sessionGeneration:r.sessionGeneration,messageID:i,parts:a,source:o})));return B(s,c),V(e,l.binding,s),l},se=async(e,r,i,a,o)=>{let s=t(),c=n(),l=N(await R(`/api/openchamber/assistants/${encodeURIComponent(e)}/share`,z(`POST`,{operationID:r,payload:{messageID:i,parts:a,source:o}})));return B(s,c),l},ce=async(e,r=t(),i=n())=>{B(r,i);let a=N(await R(`/api/openchamber/assistants/share-operations/${encodeURIComponent(e)}`));return B(r,i),a},le=async(e,r=t(),i=n())=>{let a=e;for(let e=0;e<60&&(a.state===`running`||a.state===`submitting`);e+=1)B(r,i),await new Promise(e=>setTimeout(e,750)),a=await ce(a.operationID,r,i);if(B(r,i),a.state===`completed`)return a;throw a.state===`failed`?new v(a.errorCode??`share_failed`,400,a):new v(`share_unresolved`,408,a)},ue=async(e,n)=>{await R(`/api/openchamber/assistants/settings`,z(`PUT`,{enabled:e,expectedRevision:n}));let r=t();await Promise.all([i.invalidateQueries({queryKey:I.snapshot(r),exact:!0}),i.invalidateQueries({queryKey:I.capability(r),exact:!0})])},de=async e=>{let n=t(),r=O(await R(`/api/openchamber/assistants`,z(`POST`,e)));return H(r,n),r},fe=async(e,r)=>{let i=t(),a=n(),o=O(await R(`/api/openchamber/assistants/${encodeURIComponent(e.id)}`,z(`PATCH`,{...r,expectedRevision:e.revision})));return B(i,a),H(o,i),o},pe=async e=>{await R(`/api/openchamber/assistants/${encodeURIComponent(e.id)}`,z(`DELETE`,{expectedRevision:e.revision})),await i.invalidateQueries({queryKey:I.snapshot(t())})},Q=async()=>D(await R(`/api/openchamber/assistants/capability`)),$=a();function me(e){let t=(0,g.c)(32),{title:n,subtitle:r,backAriaLabel:i,onBack:a,backDisabled:o,actions:s,trailing:c,sticky:l,overlay:u,elevated:d}=e,h=o!==void 0&&o,_;t[0]===s?_=t[1]:(_=s===void 0?[]:s,t[0]=s,t[1]=_);let v=_,y=l!==void 0&&l,b=u!==void 0&&u,x=d!==void 0&&d,S=!!c||v.length>0,C=x||v.some(ge),w=y&&`oc-mobile-detail-navigation-sticky`,T=b&&`absolute inset-x-0 top-0`,E=C?`z-[60]`:b?`z-30`:void 0,D;t[2]!==w||t[3]!==T||t[4]!==E?(D=f(`oc-mobile-detail-navigation relative shrink-0 pt-[max(0.25rem,var(--oc-safe-area-top,0px))]`,w,T,E),t[2]=w,t[3]=T,t[4]=E,t[5]=D):D=t[5];let O=S&&v.length+ +!!c>1?`grid-cols-[2.75rem_minmax(0,1fr)_auto]`:`grid-cols-[2.75rem_minmax(0,1fr)_2.75rem]`,k;t[6]===O?k=t[7]:(k=f(`oc-mobile-detail-navigation-content grid items-center gap-1 px-4`,O),t[6]=O,t[7]=k);let A;t[8]!==i||t[9]!==h||t[10]!==a?(A=a?(0,$.jsx)(m,{type:`button`,variant:`mobileGlass`,size:`mobileIcon`,className:`justify-self-start`,onClick:a,disabled:h,"aria-label":i,children:(0,$.jsx)(p,{name:`arrow-left-s`,className:`size-5`})}):(0,$.jsx)(`span`,{"aria-hidden":`true`}),t[8]=i,t[9]=h,t[10]=a,t[11]=A):A=t[11];let j;t[12]===n?j=t[13]:(j=(0,$.jsx)(`div`,{className:`oc-mobile-detail-title w-full truncate typography-ui-label font-medium text-foreground`,children:n}),t[12]=n,t[13]=j);let M;t[14]===r?M=t[15]:(M=r?(0,$.jsx)(`div`,{className:`oc-mobile-detail-subtitle w-full truncate text-muted-foreground`,"aria-live":`polite`,children:r}):null,t[14]=r,t[15]=M);let N;t[16]!==j||t[17]!==M?(N=(0,$.jsxs)(`div`,{className:`flex w-full max-w-72 min-w-0 flex-col items-center justify-center justify-self-center px-1`,children:[j,M]}),t[16]=j,t[17]=M,t[18]=N):N=t[18];let P;t[19]===v?P=t[20]:(P=v.map(he),t[19]=v,t[20]=P);let F;t[21]!==P||t[22]!==c?(F=(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center justify-end gap-2`,children:[c,P]}),t[21]=P,t[22]=c,t[23]=F):F=t[23];let I;t[24]!==k||t[25]!==A||t[26]!==N||t[27]!==F?(I=(0,$.jsxs)(`div`,{className:k,children:[A,N,F]}),t[24]=k,t[25]=A,t[26]=N,t[27]=F,t[28]=I):I=t[28];let L;return t[29]!==D||t[30]!==I?(L=(0,$.jsx)(`header`,{className:D,children:I}),t[29]=D,t[30]=I,t[31]=L):L=t[31],L}function he(e,t){return(0,$.jsx)(m,{type:`button`,variant:`mobileGlass`,size:`mobileIcon`,className:f(e.elevated&&`relative z-[60]`),onClick:e.onClick,disabled:e.disabled,"aria-label":e.ariaLabel,"aria-expanded":e.pressed,title:e.title,children:(0,$.jsx)(p,{name:e.icon,className:`size-5`})},`${e.icon}:${t}`)}function ge(e){return e.elevated}export{v as S,X as _,pe as a,le as b,Q as c,re as d,Z as f,fe as g,ue as h,de as i,J as l,se as m,ae as n,ne as o,oe as p,ie as r,ee as s,me as t,te as u,q as v,_ as x,W as y};