@openchambery/web 1.17.1-beta.12 → 1.17.1-beta.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AssistantView-DrITRlES.js → AssistantView-BXLxZXL5.js} +1 -1
- package/dist/assets/{ChatContainer-DSnO6pw8.js → ChatContainer-BJGlptbG.js} +4 -4
- package/dist/assets/{DiagramView-BB_54kgj.js → DiagramView-Czx_DVw0.js} +1 -1
- package/dist/assets/{MarkdownRendererImpl-bI0skhdB.js → MarkdownRendererImpl-B9Bv95Vd.js} +1 -1
- package/dist/assets/{MobileDetailNavigation-DXR5NoC6.js → MobileDetailNavigation-RupyXzPu.js} +1 -1
- package/dist/assets/{MobileShareBridge-ffCYu3OU.js → MobileShareBridge-LVT1_q5C.js} +1 -1
- package/dist/assets/{MobileSurface-DHPIyC9f.js → MobileSurface-BVwSEqn4.js} +1 -1
- package/dist/assets/{MultiRunWindow-BUeoNxPY.js → MultiRunWindow-C7hbEpv9.js} +1 -1
- package/dist/assets/{OverlayScrollbar-BZkH3K6L.js → OverlayScrollbar-vZXoSFA9.js} +1 -1
- package/dist/assets/{SettingsView-CnqVfDE3.js → SettingsView-C1sYcHr1.js} +1 -1
- package/dist/assets/{SettingsWindow-CWBrFuZT.js → SettingsWindow-MtcqpoiN.js} +1 -1
- package/dist/assets/{TerminalView-DMof3T4T.js → TerminalView-DXQZlHNA.js} +1 -1
- package/dist/assets/{ToolOutputDialog-HJXiOZEd.js → ToolOutputDialog-_Qzdo46T.js} +1 -1
- package/dist/assets/{appThemeRegistry-BjwRZCAT.js → appThemeRegistry-Chv6_pxq.js} +2 -2
- package/dist/assets/{context-menu-B4nWNYrw.js → context-menu-DeJdA9F6.js} +1 -1
- package/dist/assets/{gitApi-DW9DPgCG.js → gitApi-DV6F5KKI.js} +1 -1
- package/dist/assets/{insertionBoundaries-BCjKfuK1.js → insertionBoundaries-7-TvMfgn.js} +1 -1
- package/dist/assets/{main-BU_3V7Qq.js → main-CADHVH9Y.js} +4 -4
- package/dist/assets/{main-DrGYXmL0.js → main-q1V-_wWx.js} +2 -2
- package/dist/assets/{miniChat-Cty6CSTJ.js → miniChat-VXuyA8mS.js} +2 -2
- package/dist/assets/{mobile-CkGeDrYH.js → mobile-CaKZM4y3.js} +2 -2
- package/dist/assets/{multirun-Bih8bS1D.js → multirun-QqMnIbXa.js} +1 -1
- package/dist/assets/{projectMeta-B1t9cpLj.js → projectMeta-WJhNyk90.js} +1 -1
- package/dist/assets/{radio-C7IX1jxE.js → radio-C1riLnF0.js} +1 -1
- package/dist/assets/{renderElectronMiniChatApp-hyI6p-3D.js → renderElectronMiniChatApp-CnmMV1o9.js} +2 -2
- package/dist/assets/{renderMobileApp-Ct90nT9f.js → renderMobileApp-Bhe41b2q.js} +4 -4
- package/dist/assets/{runtimeEndpointReset-C9zXIPqI.js → runtimeEndpointReset-GtJt8YhT.js} +1 -1
- package/dist/assets/{sortable-tabs-strip-BvdwoMVP.js → sortable-tabs-strip-Fiq5nrkF.js} +1 -1
- package/dist/assets/{ui-DqzK0-Jk.js → ui-D5j3JxkE.js} +1 -1
- package/dist/assets/{useAppFontEffects-_VT6aMWN.js → useAppFontEffects-CaGwli-K.js} +2 -2
- package/dist/assets/{useDesktopWindowControlsLayout-CsPEyB4S.js → useDesktopWindowControlsLayout-DCZXksMp.js} +1 -1
- package/dist/assets/{useEffectiveDirectory-sWNsFnbW.js → useEffectiveDirectory-CssNtlqg.js} +1 -1
- package/dist/assets/{useSessionAutoCleanup-CvS-0fz-.js → useSessionAutoCleanup-B_mSwN7n.js} +1 -1
- package/dist/assets/{useWorkerHighlightedLines-Cq3vOe49.js → useWorkerHighlightedLines-C74ZKDtw.js} +1 -1
- package/dist/index.html +1 -1
- package/dist/mini-chat.html +1 -1
- package/dist/mobile.html +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./useUIStore-WQV8IuFw.js";import{Gt as n,bn as r,ln as i,qt as a}from"./persistence-CFtygeYy.js";import{I as o,nt as s,rt as c}from"./vendor-base-ui-CnHfUmDN.js";import{n as l}from"./vendor-react-DLPElpoQ.js";import{n as u}from"./vendor-reactuses-core-DDoDDyM9.js";import{t as d}from"./i18n-BAqcSln8.js";import{Fn as f,Gt as p,d as m,fo as h,vr as g,xr as _}from"./ui-DqzK0-Jk.js";import{t as v}from"./utils-Cwlw2GM0.js";import{n as y}from"./Icon-Vc-aDche.js";import{D as b,P as x,R as S,k as C}from"./useAppFontEffects-_VT6aMWN.js";import{i as w,n as T,t as E}from"./tooltip-CbxKYhKv.js";import{f as D,o as O}from"./useSessionAutoCleanup-CvS-0fz-.js";import{T as k,j as A,w as j}from"./radio-C7IX1jxE.js";import{z as ee}from"./ChatContainer-DSnO6pw8.js";import{b as M}from"./insertionBoundaries-BCjKfuK1.js";var te=l(),ne=e(c(),1),N=s(),P=e=>{let t=(0,te.c)(177),{totalTokens:n,percentage:r,colorPercentage:i,contextLimit:a,outputLimit:o,size:s,isMobile:c,hideIcon:l,showPercentIcon:u,appearance:f,className:p,valueClassName:m,percentIconClassName:h,onClick:g,pressed:_}=e,b=s===void 0?`default`:s,x=c!==void 0&&c,S=l!==void 0&&l,C=u!==void 0&&u,k=f===void 0?`default`:f,A=_!==void 0&&_,{t:j}=d(),[M,P]=ne.useState(!1),I=typeof i==`number`?i:r,L,ae,R,z,B,V,H,U,W,G,K,q,J,Y,X,Z,oe,Q,$;if(t[0]!==k||t[1]!==I||t[2]!==a||t[3]!==x||t[4]!==g||t[5]!==o||t[6]!==h||t[7]!==r||t[8]!==j||t[9]!==n){let e=O(r)??0;G=k===`subtle`;let i=D(I);K=G?`var(--surface-muted-foreground)`:i===`critical`?`var(--status-error)`:i===`warn`?`var(--status-warning)`:`var(--status-success)`,H=re,U=ie,z=G?18:20,B=G?2:3,R=(z-B)/2,L=2*Math.PI*R,ae=L*(1-e/100),q=typeof o==`number`?Math.max(o,0):0;let s=Math.min(r,999),c;t[29]===s?c=t[30]:(c=s.toFixed(1),t[29]=s,t[30]=c),Q=`${c}%`;let l,u;t[31]!==a||t[32]!==j||t[33]!==n||t[34]!==Q?($=H(n),V=H(a),t[39]!==j||t[40]!==Q?(l=j(`contextUsage.tooltip.usage`,{percent:Q}),t[39]=j,t[40]=Q,t[41]=l):l=t[41],u=j(`contextUsage.tooltip.usedOfLimit`,{used:$,limit:V}),t[31]=a,t[32]=j,t[33]=n,t[34]=Q,t[35]=V,t[36]=l,t[37]=u,t[38]=$):(V=t[35],l=t[36],u=t[37],$=t[38]);let d;t[42]!==q||t[43]!==j?(d=j(`contextUsage.tooltip.outputLimit`,{tokens:H(q)}),t[42]=q,t[43]=j,t[44]=d):d=t[44];let f;t[45]!==l||t[46]!==u||t[47]!==d?(f=[l,u,d],t[45]=l,t[46]=u,t[47]=d,t[48]=f):f=t[48],oe=f,W=!x&&typeof g==`function`,Y=`0 0 ${z} ${z}`;let p=G?`h-4 w-4 shrink-0 -rotate-90 text-muted-foreground/70`:`h-3.5 w-3.5 -rotate-90`;t[49]!==h||t[50]!==p?(X=v(p,h),t[49]=h,t[50]=p,t[51]=X):X=t[51],Z=`progressbar`,J=Math.round(e),t[0]=k,t[1]=I,t[2]=a,t[3]=x,t[4]=g,t[5]=o,t[6]=h,t[7]=r,t[8]=j,t[9]=n,t[10]=L,t[11]=ae,t[12]=R,t[13]=z,t[14]=B,t[15]=V,t[16]=H,t[17]=U,t[18]=W,t[19]=G,t[20]=K,t[21]=q,t[22]=J,t[23]=Y,t[24]=X,t[25]=Z,t[26]=oe,t[27]=Q,t[28]=$}else L=t[10],ae=t[11],R=t[12],z=t[13],B=t[14],V=t[15],H=t[16],U=t[17],W=t[18],G=t[19],K=t[20],q=t[21],J=t[22],Y=t[23],X=t[24],Z=t[25],oe=t[26],Q=t[27],$=t[28];let se=z/2,ce=z/2,le;t[52]!==R||t[53]!==B||t[54]!==se||t[55]!==ce?(le=(0,N.jsx)(`circle`,{cx:se,cy:ce,r:R,fill:`none`,stroke:`var(--interactive-border)`,strokeWidth:B}),t[52]=R,t[53]=B,t[54]=se,t[55]=ce,t[56]=le):le=t[56];let ue=z/2,de=z/2,fe;t[57]!==L||t[58]!==ae||t[59]!==R||t[60]!==B||t[61]!==K||t[62]!==ue||t[63]!==de?(fe=(0,N.jsx)(`circle`,{cx:ue,cy:de,r:R,fill:`none`,stroke:K,strokeWidth:B,strokeLinecap:`round`,strokeDasharray:L,strokeDashoffset:ae,className:`transition-[stroke-dashoffset,stroke] duration-300`}),t[57]=L,t[58]=ae,t[59]=R,t[60]=B,t[61]=K,t[62]=ue,t[63]=de,t[64]=fe):fe=t[64];let pe;t[65]!==J||t[66]!==le||t[67]!==fe||t[68]!==Y||t[69]!==X||t[70]!==Z?(pe=(0,N.jsxs)(`svg`,{viewBox:Y,className:X,role:Z,"aria-valuenow":J,"aria-valuemin":0,"aria-valuemax":100,children:[le,fe]}),t[65]=J,t[66]=le,t[67]=fe,t[68]=Y,t[69]=X,t[70]=Z,t[71]=pe):pe=t[71];let me=pe,he=A?`ml-1 max-w-[14rem] opacity-100`:`ml-0 max-w-0 opacity-0 group-hover:ml-1 group-hover:max-w-[14rem] group-hover:opacity-100 group-focus-visible:ml-1 group-focus-visible:max-w-[14rem] group-focus-visible:opacity-100`,ge;t[72]===he?ge=t[73]:(ge=v(`inline-flex items-center gap-1.5 overflow-hidden whitespace-nowrap typography-micro font-medium text-foreground transition-[max-width,opacity,margin] duration-200`,he),t[72]=he,t[73]=ge);let _e;t[74]===Q?_e=t[75]:(_e=(0,N.jsx)(`span`,{children:Q}),t[74]=Q,t[75]=_e);let ve;t[76]===Symbol.for(`react.memo_cache_sentinel`)?(ve=(0,N.jsx)(`span`,{className:`mx-0.5 text-muted-foreground/60`,children:`/`}),t[76]=ve):ve=t[76];let ye;t[77]!==V||t[78]!==$?(ye=(0,N.jsxs)(`span`,{className:`text-muted-foreground`,children:[$,ve,V]}),t[77]=V,t[78]=$,t[79]=ye):ye=t[79];let be;t[80]!==ge||t[81]!==_e||t[82]!==ye?(be=(0,N.jsxs)(`span`,{className:ge,children:[_e,ye]}),t[80]=ge,t[81]=_e,t[82]=ye,t[83]=be):be=t[83];let xe=be,Se;t[84]!==I||t[85]!==U||t[86]!==S||t[87]!==x||t[88]!==G||t[89]!==r||t[90]!==me||t[91]!==C||t[92]!==xe||t[93]!==Q||t[94]!==m?(Se=G?(0,N.jsxs)(N.Fragment,{children:[me,xe]}):(0,N.jsxs)(N.Fragment,{children:[!x&&!S&&(0,N.jsx)(y,{name:`donut-chart`,className:`h-4 w-4 flex-shrink-0`}),(0,N.jsx)(`span`,{className:v(`font-medium inline-flex items-center gap-1.5`,m),children:C?(0,N.jsxs)(N.Fragment,{children:[me,(0,N.jsx)(`span`,{className:`text-foreground`,children:Q})]}):(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`span`,{className:U(I),children:Math.min(r,999).toFixed(1)}),`%`]})})]}),t[84]=I,t[85]=U,t[86]=S,t[87]=x,t[88]=G,t[89]=r,t[90]=me,t[91]=C,t[92]=xe,t[93]=Q,t[94]=m,t[95]=Se):Se=t[95];let Ce=Se,we=b===`compact`?`typography-micro`:`typography-meta`,Te;t[96]!==p||t[97]!==W||t[98]!==G||t[99]!==A||t[100]!==we?(Te=v(`app-region-no-drag flex items-center gap-1.5 select-none`,we,W?v(`group rounded-md text-foreground transition-colors`,G?v(`p-1.5 text-muted-foreground hover:text-foreground hover:bg-interactive-hover/50`,A&&`bg-interactive-hover/50 text-foreground`):`px-2 py-1.5 hover:bg-interactive-hover`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`):`text-muted-foreground/60`,p),t[96]=p,t[97]=W,t[98]=G,t[99]=A,t[100]=we,t[101]=Te):Te=t[101];let Ee=Te,De;t[102]!==Ce||t[103]!==W||t[104]!==x||t[105]!==g||t[106]!==A||t[107]!==Ee||t[108]!==j?(De=W?(0,N.jsx)(`button`,{type:`button`,className:Ee,"aria-label":j(`contextUsage.aria.label`),"aria-pressed":A,onClick:g,children:Ce}):(0,N.jsx)(`div`,{className:Ee,"aria-label":j(`contextUsage.aria.label`),onClick:x?()=>P(!0):void 0,children:Ce}),t[102]=Ce,t[103]=W,t[104]=x,t[105]=g,t[106]=A,t[107]=Ee,t[108]=j,t[109]=De):De=t[109];let Oe=De;if(x){let e;t[110]===Symbol.for(`react.memo_cache_sentinel`)?(e=()=>P(!1),t[110]=e):e=t[110];let n;t[111]===j?n=t[112]:(n=j(`contextUsage.mobile.title`),t[111]=j,t[112]=n);let i;t[113]===j?i=t[114]:(i=j(`contextUsage.mobile.usedTokens`),t[113]=j,t[114]=i);let a;t[115]===i?a=t[116]:(a=(0,N.jsx)(`span`,{className:`typography-meta text-muted-foreground`,children:i}),t[115]=i,t[116]=a);let o;t[117]===$?o=t[118]:(o=(0,N.jsx)(`span`,{className:`typography-meta text-foreground font-medium`,children:$}),t[117]=$,t[118]=o);let s;t[119]!==a||t[120]!==o?(s=(0,N.jsxs)(`div`,{className:`flex justify-between items-center`,children:[a,o]}),t[119]=a,t[120]=o,t[121]=s):s=t[121];let c;t[122]===j?c=t[123]:(c=j(`contextUsage.mobile.contextLimit`),t[122]=j,t[123]=c);let l;t[124]===c?l=t[125]:(l=(0,N.jsx)(`span`,{className:`typography-meta text-muted-foreground`,children:c}),t[124]=c,t[125]=l);let u;t[126]===V?u=t[127]:(u=(0,N.jsx)(`span`,{className:`typography-meta text-foreground font-medium`,children:V}),t[126]=V,t[127]=u);let d;t[128]!==l||t[129]!==u?(d=(0,N.jsxs)(`div`,{className:`flex justify-between items-center`,children:[l,u]}),t[128]=l,t[129]=u,t[130]=d):d=t[130];let f;t[131]===j?f=t[132]:(f=j(`contextUsage.mobile.outputLimit`),t[131]=j,t[132]=f);let p;t[133]===f?p=t[134]:(p=(0,N.jsx)(`span`,{className:`typography-meta text-muted-foreground`,children:f}),t[133]=f,t[134]=p);let m;t[135]!==H||t[136]!==q?(m=H(q),t[135]=H,t[136]=q,t[137]=m):m=t[137];let h;t[138]===m?h=t[139]:(h=(0,N.jsx)(`span`,{className:`typography-meta text-foreground font-medium`,children:m}),t[138]=m,t[139]=h);let g;t[140]!==p||t[141]!==h?(g=(0,N.jsxs)(`div`,{className:`flex justify-between items-center`,children:[p,h]}),t[140]=p,t[141]=h,t[142]=g):g=t[142];let _;t[143]===j?_=t[144]:(_=j(`contextUsage.mobile.usage`),t[143]=j,t[144]=_);let y;t[145]===_?y=t[146]:(y=(0,N.jsx)(`span`,{className:`typography-meta text-muted-foreground`,children:_}),t[145]=_,t[146]=y);let b;t[147]!==I||t[148]!==U?(b=v(`typography-meta font-semibold`,U(I)),t[147]=I,t[148]=U,t[149]=b):b=t[149];let x=Math.min(r,999),S;t[150]===x?S=t[151]:(S=x.toFixed(1),t[150]=x,t[151]=S);let C;t[152]!==b||t[153]!==S?(C=(0,N.jsxs)(`span`,{className:b,children:[S,`%`]}),t[152]=b,t[153]=S,t[154]=C):C=t[154];let w;t[155]!==y||t[156]!==C?(w=(0,N.jsxs)(`div`,{className:`flex justify-between items-center pt-1 border-t border-border/40`,children:[y,C]}),t[155]=y,t[156]=C,t[157]=w):w=t[157];let T;t[158]!==s||t[159]!==d||t[160]!==g||t[161]!==w?(T=(0,N.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:(0,N.jsxs)(`div`,{className:`rounded-xl border border-border/40 bg-sidebar/30 px-3 py-2 space-y-1`,children:[s,d,g,w]})}),t[158]=s,t[159]=d,t[160]=g,t[161]=w,t[162]=T):T=t[162];let E;t[163]!==M||t[164]!==n||t[165]!==T?(E=(0,N.jsx)(ee,{open:M,onClose:e,title:n,children:T}),t[163]=M,t[164]=n,t[165]=T,t[166]=E):E=t[166];let D;return t[167]!==Oe||t[168]!==E?(D=(0,N.jsxs)(N.Fragment,{children:[Oe,E]}),t[167]=Oe,t[168]=E,t[169]=D):D=t[169],D}if(G)return Oe;let ke;t[170]===Oe?ke=t[171]:(ke=(0,N.jsx)(w,{asChild:!0,children:Oe}),t[170]=Oe,t[171]=ke);let Ae;t[172]===oe?Ae=t[173]:(Ae=(0,N.jsx)(T,{children:(0,N.jsx)(`div`,{className:`space-y-0.5`,children:oe.map(F)})}),t[172]=oe,t[173]=Ae);let je;return t[174]!==ke||t[175]!==Ae?(je=(0,N.jsxs)(E,{children:[ke,Ae]}),t[174]=ke,t[175]=Ae,t[176]=je):je=t[176],je};function re(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:e.toFixed(1).replace(/\.0$/,``)}function ie(e){return e>=90?`text-status-error`:e>=75?`text-status-warning`:`text-status-success`}function F(e){return(0,N.jsx)(`p`,{className:`typography-micro leading-tight`,children:e},e)}var I=ne.memo(function(e){let t=(0,te.c)(45),{visible:r,position:i}=e,o=i===void 0?`right`:i,{t:s}=d(),[c,l]=ne.useState(!1),u,f;if(t[0]===r?(u=t[1],f=t[2]):(u=()=>{if(!r)return;let e=!1;a(`desktop_get_current_window_state`).then(t=>{e||l(!!t?.maximized)}).catch(L);let t=e=>{let t=e.detail;l(!!t?.maximized)};return window.addEventListener(`openchamber:window-maximized-changed`,t),()=>{e=!0,window.removeEventListener(`openchamber:window-maximized-changed`,t)}},f=[r],t[0]=r,t[1]=u,t[2]=f),(0,ne.useEffect)(u,f),!r)return null;let p;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(p=n(),t[3]=p):p=t[3];let m=p===`win32`,h;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(h=v(`app-region-no-drag inline-flex h-12 w-11 items-center justify-center text-muted-foreground transition-colors hover:bg-interactive-hover hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`,m&&`bg-[var(--surface-background)] backdrop-blur-none`),t[4]=h):h=t[4];let g=h,_=o===`left`?`app-region-no-drag -ml-3 mr-2 flex h-12 shrink-0 items-center`:`app-region-no-drag -mr-3 ml-2 flex h-12 shrink-0 items-center`,b;t[5]===_?b=t[6]:(b=v(_,m&&`bg-[var(--surface-background)] backdrop-blur-none`),t[5]=_,t[6]=b);let x=b,S;t[7]===s?S=t[8]:(S=s(`header.windowControls.groupAria`),t[7]=s,t[8]=S);let C;t[9]===s?C=t[10]:(C=s(`header.windowControls.minimize`),t[9]=s,t[10]=C);let w;t[11]===s?w=t[12]:(w=s(`header.windowControls.minimize`),t[11]=s,t[12]=w);let T;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,N.jsx)(y,{name:`subtract`,className:`h-4 w-4`}),t[13]=T):T=t[13];let E;t[14]!==w||t[15]!==C?(E=(0,N.jsx)(`button`,{type:`button`,className:g,onClick:ae,title:C,"aria-label":w,children:T}),t[14]=w,t[15]=C,t[16]=E):E=t[16];let D;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(D=()=>{a(`desktop_toggle_current_window_maximized`).then(e=>l(!!e?.maximized)).catch(R)},t[17]=D):D=t[17];let O;t[18]!==c||t[19]!==s?(O=s(c?`header.windowControls.restore`:`header.windowControls.maximize`),t[18]=c,t[19]=s,t[20]=O):O=t[20];let k;t[21]!==c||t[22]!==s?(k=s(c?`header.windowControls.restore`:`header.windowControls.maximize`),t[21]=c,t[22]=s,t[23]=k):k=t[23];let A=c?`fullscreen-exit`:`checkbox-blank`,j;t[24]===A?j=t[25]:(j=(0,N.jsx)(y,{name:A,className:`h-3.5 w-3.5`}),t[24]=A,t[25]=j);let ee;t[26]!==O||t[27]!==k||t[28]!==j?(ee=(0,N.jsx)(`button`,{type:`button`,className:g,onClick:D,title:O,"aria-label":k,children:j}),t[26]=O,t[27]=k,t[28]=j,t[29]=ee):ee=t[29];let M;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(M=v(g,`hover:bg-status-error hover:text-status-error-foreground`),t[30]=M):M=t[30];let P;t[31]===s?P=t[32]:(P=s(`header.windowControls.close`),t[31]=s,t[32]=P);let re;t[33]===s?re=t[34]:(re=s(`header.windowControls.close`),t[33]=s,t[34]=re);let ie;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(ie=(0,N.jsx)(y,{name:`close`,className:`h-4 w-4`}),t[35]=ie):ie=t[35];let F;t[36]!==P||t[37]!==re?(F=(0,N.jsx)(`button`,{type:`button`,className:M,onClick:z,title:P,"aria-label":re,children:ie}),t[36]=P,t[37]=re,t[38]=F):F=t[38];let I;return t[39]!==x||t[40]!==E||t[41]!==ee||t[42]!==F||t[43]!==S?(I=(0,N.jsxs)(`div`,{className:x,"aria-label":S,children:[E,ee,F]}),t[39]=x,t[40]=E,t[41]=ee,t[42]=F,t[43]=S,t[44]=I):I=t[44],I});function L(){}function ae(){a(`desktop_minimize_current_window`)}function R(){}function z(){a(`desktop_close_current_window`)}var B=7,V=e=>{if(!e)return null;let t=e.replace(/\\/g,`/`);return t===`/`?`/`:t.length>1?t.replace(/\/+$/,``):t},H=e=>{if(!e)return null;let t=e.path.split(/[\\/]/).filter(Boolean);return t[t.length-1]??null},U=(e,t)=>{let n=(0,te.c)(32),r;n[0]===t?r=n[1]:(r=t===void 0?{}:t,n[0]=t,n[1]=r);let{scopeProjectId:i}=r,a=i===void 0?null:i,o=_(W),s=h(G),c=S(K),l;n[2]===s?l=n[3]:(l=s.map(q).filter(J),n[2]=s,n[3]=l);let u=l,d;n[4]===u?d=n[5]:(d=e=>e?u.filter(t=>x(e,t.normalizedPath)).sort(Y)[0]??null:null,n[4]=u,n[5]=d);let f=d,p;bb0:{if(!e){let e;n[6]===Symbol.for(`react.memo_cache_sentinel`)?(e=[],n[6]=e):e=n[6],p=e;break bb0}let t;if(n[7]!==o||n[8]!==f||n[9]!==c||n[10]!==a){let e;n[12]!==f||n[13]!==a?(e=e=>!a||f(g(e))?.id===a,n[12]=f,n[13]=a,n[14]=e):e=n[14];let r;n[15]===c?r=n[16]:(r=(e,t)=>b(e,t,c),n[15]=c,n[16]=r),t=Array.from(new Set(o.filter(X).filter(Z).filter(e).sort(r).slice(0,B).map(oe).filter(Q))),n[7]=o,n[8]=f,n[9]=c,n[10]=a,n[11]=t}else t=n[11];p=t}let m=p,v;n[17]===Symbol.for(`react.memo_cache_sentinel`)?(v=new Map,n[17]=v):v=n[17];let y=ne.useRef(v),C;n[18]===m?C=n[19]:(C=e=>{let t=y.current,n=t.size===m.length;if(n){for(let r of m)if(t.get(r)!==(e.directories.get(r)?.status?.current??null)){n=!1;break}}if(n)return t;let r=new Map;return m.forEach(t=>r.set(t,e.directories.get(t)?.status?.current??null)),y.current=r,r},n[18]=m,n[19]=C);let w=M(C),T;bb1:{if(!e){let e;n[20]===Symbol.for(`react.memo_cache_sentinel`)?(e=[],n[20]=e):e=n[20],T=e;break bb1}let t;if(n[21]!==o||n[22]!==w||n[23]!==f||n[24]!==c||n[25]!==a){let e=new Map;for(let t of o){let n=t.parentID;if(!n||t.time?.archived)continue;let r=e.get(n);r?r.push(t):e.set(n,[t])}e.forEach(e=>{e.sort((e,t)=>b(e,t,c))});let r;n[27]!==f||n[28]!==a?(r=e=>{if(!a)return!0;let t=g(e);return f(t)?.id===a},n[27]=f,n[28]=a,n[29]=r):r=n[29];let i;n[30]===c?i=n[31]:(i=(e,t)=>b(e,t,c),n[30]=c,n[31]=i);let s=o.filter($).filter(se).filter(r).sort(i).slice(0,B),l=t=>({session:t,children:(e.get(t.id)??[]).map(e=>l(e)),worktree:null});t=s.map(e=>{let t=g(e),n=f(t),r=H(n),i=t?w.get(t)??null:null;return{node:l(e),projectId:n?.id??null,groupDirectory:t,secondaryMeta:{projectLabel:r,branchLabel:i&&i!==r?i:null}}}),n[21]=o,n[22]=w,n[23]=f,n[24]=c,n[25]=a,n[26]=t}else t=n[26];T=t}return T};function W(e){return e.activeSessions}function G(e){return e.projects}function K(e){return e.ids}function q(e){return{...e,normalizedPath:V(e.path)}}function J(e){return e.normalizedPath}function Y(e,t){return(t.normalizedPath?.length??0)-(e.normalizedPath?.length??0)}function X(e){return!e.time?.archived}function Z(e){return!e.parentID}function oe(e){return g(e)}function Q(e){return!!e}function $(e){return!e.time?.archived}function se(e){return!e.parentID}function ce(e){let n=(0,te.c)(18),{children:r,variant:i,scopeProjectId:a,align:o}=e,s=i===void 0?`default`:i,c=a===void 0?null:a,l=o===void 0?`start`:o,u=t(ue),d=t(le),f;n[0]===r?f=n[1]:(f=(0,N.jsx)(A,{asChild:!0,children:r}),n[0]=r,n[1]=f);let p=s===`compact`?`w-[280px]`:`w-[360px]`,m;n[2]===p?m=n[3]:(m=v(`overflow-hidden p-1 max-w-[calc(100vw-32px)]`,p),n[2]=p,n[3]=m);let h;n[4]!==u||n[5]!==c||n[6]!==d||n[7]!==s?(h=u?(0,N.jsx)(de,{onSelect:()=>d(!1),variant:s,scopeProjectId:c}):null,n[4]=u,n[5]=c,n[6]=d,n[7]=s,n[8]=h):h=n[8];let g;n[9]!==l||n[10]!==m||n[11]!==h?(g=(0,N.jsx)(k,{align:l,sideOffset:6,className:m,children:h}),n[9]=l,n[10]=m,n[11]=h,n[12]=g):g=n[12];let _;return n[13]!==u||n[14]!==d||n[15]!==f||n[16]!==g?(_=(0,N.jsxs)(j,{open:u,onOpenChange:d,modal:!1,children:[f,g]}),n[13]=u,n[14]=d,n[15]=f,n[16]=g,n[17]=_):_=n[17],_}function le(e){return e.setSessionDropdownOpen}function ue(e){return e.isSessionDropdownOpen}function de(e){let n=(0,te.c)(27),{onSelect:r,variant:i,scopeProjectId:a}=e,s;n[0]===a?s=n[1]:(s={scopeProjectId:a},n[0]=a,n[1]=s);let c=U(!0,s),l=m(pe),f=t(fe),{t:p}=d(),h;n[2]!==r||n[3]!==l||n[4]!==f?(h=()=>{f(`chat`),r(),l()},n[2]=r,n[3]=l,n[4]=f,n[5]=h):h=n[5];let g=u(h),_;n[6]===Symbol.for(`react.memo_cache_sentinel`)?(_=new Set,n[6]=_):_=n[6];let[b,x]=ne.useState(_),S;n[7]===Symbol.for(`react.memo_cache_sentinel`)?(S=e=>{x(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},n[7]=S):S=n[7];let C=u(S),w,T;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(w=v(`group relative flex w-full cursor-pointer items-center gap-2 rounded-lg px-2 py-1.5 outline-hidden select-none`,`data-[highlighted]:bg-interactive-hover hover:bg-interactive-hover`),T=(0,N.jsx)(y,{name:`chat-new`,className:`h-4 w-4 flex-shrink-0 text-muted-foreground`}),n[8]=w,n[9]=T):(w=n[8],T=n[9]);let E;n[10]===p?E=n[11]:(E=p(`sessions.sidebar.header.actions.newSession`),n[10]=p,n[11]=E);let D;n[12]===E?D=n[13]:(D=(0,N.jsx)(`span`,{className:`truncate text-[14px] font-normal leading-tight text-foreground`,children:E}),n[12]=E,n[13]=D);let O;n[14]!==g||n[15]!==D?(O=(0,N.jsxs)(o,{onClick:g,className:w,children:[T,D]}),n[14]=g,n[15]=D,n[16]=O):O=n[16];let k;n[17]!==b||n[18]!==c||n[19]!==r||n[20]!==p||n[21]!==C||n[22]!==i?(k=c.length===0?(0,N.jsx)(`div`,{className:`px-3 py-4 text-center typography-meta text-muted-foreground`,children:p(`sessions.switcher.empty`)}):c.map(e=>(0,N.jsx)(me,{item:e,depth:0,variant:i,expandedParents:b,toggleParent:C,closeDropdown:r},e.node.session.id)),n[17]=b,n[18]=c,n[19]=r,n[20]=p,n[21]=C,n[22]=i,n[23]=k):k=n[23];let A;return n[24]!==k||n[25]!==O?(A=(0,N.jsx)(`div`,{className:`max-h-[60vh] overflow-y-auto`,children:(0,N.jsxs)(`div`,{className:`space-y-0.5`,children:[O,k]})}),n[24]=k,n[25]=O,n[26]=A):A=n[26],A}function fe(e){return e.setActiveMainTab}function pe(e){return e.openNewSessionDraft}function me(e){let t=(0,te.c)(31),{item:n,depth:r,variant:i,expandedParents:a,toggleParent:o,closeDropdown:s}=e,{node:c,secondaryMeta:l}=n,u=c.session,d=c.children.length>0,f;t[0]!==a||t[1]!==u.id?(f=a.has(u.id),t[0]=a,t[1]=u.id,t[2]=f):f=t[2];let p=f,m;t[3]!==d||t[4]!==u.id||t[5]!==o?(m=d?()=>o(u.id):void 0,t[3]=d,t[4]=u.id,t[5]=o,t[6]=m):m=t[6];let h;t[7]!==s||t[8]!==r||t[9]!==d||t[10]!==p||t[11]!==l||t[12]!==u||t[13]!==m||t[14]!==i?(h=(0,N.jsx)(he,{session:u,depth:r,variant:i,secondaryMeta:l,hasChildren:d,isExpanded:p,onToggleExpand:m,closeDropdown:s}),t[7]=s,t[8]=r,t[9]=d,t[10]=p,t[11]=l,t[12]=u,t[13]=m,t[14]=i,t[15]=h):h=t[15];let g;t[16]!==s||t[17]!==r||t[18]!==a||t[19]!==d||t[20]!==p||t[21]!==n.groupDirectory||t[22]!==n.projectId||t[23]!==c.children||t[24]!==l||t[25]!==o||t[26]!==i?(g=d&&p?c.children.map(e=>(0,N.jsx)(me,{item:{node:e,projectId:n.projectId,groupDirectory:n.groupDirectory,secondaryMeta:l},depth:r+1,variant:i,expandedParents:a,toggleParent:o,closeDropdown:s},e.session.id)):null,t[16]=s,t[17]=r,t[18]=a,t[19]=d,t[20]=p,t[21]=n.groupDirectory,t[22]=n.projectId,t[23]=c.children,t[24]=l,t[25]=o,t[26]=i,t[27]=g):g=t[27];let _;return t[28]!==h||t[29]!==g?(_=(0,N.jsxs)(N.Fragment,{children:[h,g]}),t[28]=h,t[29]=g,t[30]=_):_=t[30],_}function he(e){let t=(0,te.c)(57),{session:n,depth:r,variant:i,secondaryMeta:a,hasChildren:s,isExpanded:c,onToggleExpand:l,closeDropdown:h}=e,{t:_}=d(),b=m(_e),x=m(ge),S=p(n.id),w=f(n.id),T=b===n.id,E;t[0]!==n.title||t[1]!==_?(E=n.title?.trim()||_(`sessions.sidebar.session.untitled`),t[0]=n.title,t[1]=_,t[2]=E):E=t[2];let D=E,O=!!n.parentID,k=w>0&&!O,A=S?.type??`idle`,j=A===`busy`||A===`retry`,ee=!j&&k&&!T,M;t[3]!==n.time?.created||t[4]!==n.time?.updated?(M=n.time?.updated||n.time?.created||Date.now(),t[3]=n.time?.created,t[4]=n.time?.updated,t[5]=M):M=t[5];let ne=M,P;t[6]===ne?P=t[7]:(P=C(ne),t[6]=ne,t[7]=P);let re=P,ie;t[8]===a?.projectLabel?ie=t[9]:(ie=a?.projectLabel?.trim()||null,t[8]=a?.projectLabel,t[9]=ie);let F=ie,I;t[10]===a?.branchLabel?I=t[11]:(I=a?.branchLabel?.trim()||null,t[10]=a?.branchLabel,t[11]=I);let L=I,ae=L&&L!==`HEAD`?L:null,R;t[12]!==h||t[13]!==T||t[14]!==n||t[15]!==x?(R=()=>{if(T){h();return}let e=g(n);x(n.id,e??null),h()},t[12]=h,t[13]=T,t[14]=n,t[15]=x,t[16]=R):R=t[16];let z=u(R),B;t[17]===z?B=t[18]:(B=e=>{if(e.target?.closest(`[data-switcher-expand]`)){e.preventDefault();return}z()},t[17]=z,t[18]=B);let V;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(V=v(`group relative flex w-full cursor-pointer items-start gap-2 rounded-lg px-2 py-1.5 outline-hidden select-none`,`data-[highlighted]:bg-interactive-hover hover:bg-interactive-hover`),t[19]=V):V=t[19];let H=8+r*12,U;t[20]===H?U=t[21]:(U={paddingLeft:H},t[20]=H,t[21]=U);let W;t[22]!==s||t[23]!==c||t[24]!==l||t[25]!==_||t[26]!==i?(W=i===`compact`&&s?(0,N.jsx)(`span`,{role:`button`,tabIndex:-1,"data-switcher-expand":!0,onClick:e=>{e.preventDefault(),e.stopPropagation(),l?.()},className:`inline-flex h-3.5 w-3.5 flex-shrink-0 items-center justify-center rounded text-muted-foreground/70 hover:text-foreground`,"aria-label":_(c?`sessions.sidebar.session.subsessions.collapse`:`sessions.sidebar.session.subsessions.expand`),children:c?(0,N.jsx)(y,{name:`arrow-down-s`,className:`h-3.5 w-3.5`}):(0,N.jsx)(y,{name:`arrow-right-s`,className:`h-3.5 w-3.5`})}):null,t[22]=s,t[23]=c,t[24]=l,t[25]=_,t[26]=i,t[27]=W):W=t[27];let G=T?`text-primary`:`text-foreground`,K;t[28]===G?K=t[29]:(K=v(`truncate text-[14px] font-normal leading-tight`,G),t[28]=G,t[29]=K);let q;t[30]!==D||t[31]!==K?(q=(0,N.jsx)(`span`,{className:K,children:D}),t[30]=D,t[31]=K,t[32]=q):q=t[32];let J;t[33]!==W||t[34]!==q?(J=(0,N.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[W,q]}),t[33]=W,t[34]=q,t[35]=J):J=t[35];let Y;t[36]!==ae||t[37]!==s||t[38]!==c||t[39]!==l||t[40]!==F||t[41]!==_||t[42]!==re||t[43]!==i?(Y=i==="default"?(0,N.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5 truncate text-muted-foreground/70 leading-tight`,style:{fontSize:`calc(var(--text-ui-label) * 0.85)`},children:[s?(0,N.jsx)(`span`,{role:`button`,tabIndex:-1,"data-switcher-expand":!0,onClick:e=>{e.preventDefault(),e.stopPropagation(),l?.()},className:`inline-flex h-3 w-3 flex-shrink-0 items-center justify-center rounded text-muted-foreground/70 hover:text-foreground`,"aria-label":_(c?`sessions.sidebar.session.subsessions.collapse`:`sessions.sidebar.session.subsessions.expand`),children:c?(0,N.jsx)(y,{name:`arrow-down-s`,className:`h-3 w-3`}):(0,N.jsx)(y,{name:`arrow-right-s`,className:`h-3 w-3`})}):null,(0,N.jsx)(`span`,{className:`flex-shrink-0`,children:re}),F?(0,N.jsx)(`span`,{className:`truncate`,children:F}):null,ae?(0,N.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-0.5`,children:[(0,N.jsx)(y,{name:`git-branch`,className:`h-3 w-3 flex-shrink-0 text-muted-foreground/70`}),(0,N.jsx)(`span`,{className:`truncate`,children:ae})]}):null]}):null,t[36]=ae,t[37]=s,t[38]=c,t[39]=l,t[40]=F,t[41]=_,t[42]=re,t[43]=i,t[44]=Y):Y=t[44];let X;t[45]!==J||t[46]!==Y?(X=(0,N.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[J,Y]}),t[45]=J,t[46]=Y,t[47]=X):X=t[47];let Z;t[48]!==j||t[49]!==ee||t[50]!==_?(Z=j||ee?(0,N.jsx)(`span`,{className:`flex h-3 w-3 flex-shrink-0 items-center justify-center self-center`,children:j?(0,N.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full bg-primary animate-busy-pulse`,"aria-label":_(`sessions.sidebar.session.status.active`),title:_(`sessions.sidebar.session.status.active`)}):(0,N.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full bg-[var(--status-info)]`,"aria-label":_(`sessions.sidebar.session.status.unread`),title:_(`sessions.sidebar.session.status.unread`)})}):null,t[48]=j,t[49]=ee,t[50]=_,t[51]=Z):Z=t[51];let oe;return t[52]!==U||t[53]!==X||t[54]!==Z||t[55]!==B?(oe=(0,N.jsxs)(o,{onClick:B,"data-slot":`session-switcher-item`,className:V,style:U,children:[X,Z]}),t[52]=U,t[53]=X,t[54]=Z,t[55]=B,t[56]=oe):oe=t[56],oe}function ge(e){return e.setCurrentSession}function _e(e){return e.currentSessionId}function ve(){let e=(0,te.c)(5),n=t(ye),a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=r(),e[0]=a):a=e[0];let o=a,s;e[1]===n?s=e[2]:(s=i(n),e[1]=n,e[2]=s);let c=s,l;return e[3]===c?l=e[4]:(l={usesFramelessChrome:o,side:c},e[3]=c,e[4]=l),l}function ye(e){return e.desktopWindowControlsPosition}export{P as i,ce as n,I as r,ve as t};
|
|
1
|
+
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./useUIStore-WQV8IuFw.js";import{Gt as n,bn as r,ln as i,qt as a}from"./persistence-CFtygeYy.js";import{I as o,nt as s,rt as c}from"./vendor-base-ui-CnHfUmDN.js";import{n as l}from"./vendor-react-DLPElpoQ.js";import{n as u}from"./vendor-reactuses-core-DDoDDyM9.js";import{t as d}from"./i18n-BAqcSln8.js";import{Fn as f,Gt as p,d as m,fo as h,vr as g,xr as _}from"./ui-D5j3JxkE.js";import{t as v}from"./utils-Cwlw2GM0.js";import{n as y}from"./Icon-Vc-aDche.js";import{D as b,P as x,R as S,k as C}from"./useAppFontEffects-CaGwli-K.js";import{i as w,n as T,t as E}from"./tooltip-CbxKYhKv.js";import{f as D,o as O}from"./useSessionAutoCleanup-B_mSwN7n.js";import{T as k,j as A,w as j}from"./radio-C1riLnF0.js";import{z as ee}from"./ChatContainer-BJGlptbG.js";import{b as M}from"./insertionBoundaries-7-TvMfgn.js";var te=l(),ne=e(c(),1),N=s(),P=e=>{let t=(0,te.c)(177),{totalTokens:n,percentage:r,colorPercentage:i,contextLimit:a,outputLimit:o,size:s,isMobile:c,hideIcon:l,showPercentIcon:u,appearance:f,className:p,valueClassName:m,percentIconClassName:h,onClick:g,pressed:_}=e,b=s===void 0?`default`:s,x=c!==void 0&&c,S=l!==void 0&&l,C=u!==void 0&&u,k=f===void 0?`default`:f,A=_!==void 0&&_,{t:j}=d(),[M,P]=ne.useState(!1),I=typeof i==`number`?i:r,L,ae,R,z,B,V,H,U,W,G,K,q,J,Y,X,Z,oe,Q,$;if(t[0]!==k||t[1]!==I||t[2]!==a||t[3]!==x||t[4]!==g||t[5]!==o||t[6]!==h||t[7]!==r||t[8]!==j||t[9]!==n){let e=O(r)??0;G=k===`subtle`;let i=D(I);K=G?`var(--surface-muted-foreground)`:i===`critical`?`var(--status-error)`:i===`warn`?`var(--status-warning)`:`var(--status-success)`,H=re,U=ie,z=G?18:20,B=G?2:3,R=(z-B)/2,L=2*Math.PI*R,ae=L*(1-e/100),q=typeof o==`number`?Math.max(o,0):0;let s=Math.min(r,999),c;t[29]===s?c=t[30]:(c=s.toFixed(1),t[29]=s,t[30]=c),Q=`${c}%`;let l,u;t[31]!==a||t[32]!==j||t[33]!==n||t[34]!==Q?($=H(n),V=H(a),t[39]!==j||t[40]!==Q?(l=j(`contextUsage.tooltip.usage`,{percent:Q}),t[39]=j,t[40]=Q,t[41]=l):l=t[41],u=j(`contextUsage.tooltip.usedOfLimit`,{used:$,limit:V}),t[31]=a,t[32]=j,t[33]=n,t[34]=Q,t[35]=V,t[36]=l,t[37]=u,t[38]=$):(V=t[35],l=t[36],u=t[37],$=t[38]);let d;t[42]!==q||t[43]!==j?(d=j(`contextUsage.tooltip.outputLimit`,{tokens:H(q)}),t[42]=q,t[43]=j,t[44]=d):d=t[44];let f;t[45]!==l||t[46]!==u||t[47]!==d?(f=[l,u,d],t[45]=l,t[46]=u,t[47]=d,t[48]=f):f=t[48],oe=f,W=!x&&typeof g==`function`,Y=`0 0 ${z} ${z}`;let p=G?`h-4 w-4 shrink-0 -rotate-90 text-muted-foreground/70`:`h-3.5 w-3.5 -rotate-90`;t[49]!==h||t[50]!==p?(X=v(p,h),t[49]=h,t[50]=p,t[51]=X):X=t[51],Z=`progressbar`,J=Math.round(e),t[0]=k,t[1]=I,t[2]=a,t[3]=x,t[4]=g,t[5]=o,t[6]=h,t[7]=r,t[8]=j,t[9]=n,t[10]=L,t[11]=ae,t[12]=R,t[13]=z,t[14]=B,t[15]=V,t[16]=H,t[17]=U,t[18]=W,t[19]=G,t[20]=K,t[21]=q,t[22]=J,t[23]=Y,t[24]=X,t[25]=Z,t[26]=oe,t[27]=Q,t[28]=$}else L=t[10],ae=t[11],R=t[12],z=t[13],B=t[14],V=t[15],H=t[16],U=t[17],W=t[18],G=t[19],K=t[20],q=t[21],J=t[22],Y=t[23],X=t[24],Z=t[25],oe=t[26],Q=t[27],$=t[28];let se=z/2,ce=z/2,le;t[52]!==R||t[53]!==B||t[54]!==se||t[55]!==ce?(le=(0,N.jsx)(`circle`,{cx:se,cy:ce,r:R,fill:`none`,stroke:`var(--interactive-border)`,strokeWidth:B}),t[52]=R,t[53]=B,t[54]=se,t[55]=ce,t[56]=le):le=t[56];let ue=z/2,de=z/2,fe;t[57]!==L||t[58]!==ae||t[59]!==R||t[60]!==B||t[61]!==K||t[62]!==ue||t[63]!==de?(fe=(0,N.jsx)(`circle`,{cx:ue,cy:de,r:R,fill:`none`,stroke:K,strokeWidth:B,strokeLinecap:`round`,strokeDasharray:L,strokeDashoffset:ae,className:`transition-[stroke-dashoffset,stroke] duration-300`}),t[57]=L,t[58]=ae,t[59]=R,t[60]=B,t[61]=K,t[62]=ue,t[63]=de,t[64]=fe):fe=t[64];let pe;t[65]!==J||t[66]!==le||t[67]!==fe||t[68]!==Y||t[69]!==X||t[70]!==Z?(pe=(0,N.jsxs)(`svg`,{viewBox:Y,className:X,role:Z,"aria-valuenow":J,"aria-valuemin":0,"aria-valuemax":100,children:[le,fe]}),t[65]=J,t[66]=le,t[67]=fe,t[68]=Y,t[69]=X,t[70]=Z,t[71]=pe):pe=t[71];let me=pe,he=A?`ml-1 max-w-[14rem] opacity-100`:`ml-0 max-w-0 opacity-0 group-hover:ml-1 group-hover:max-w-[14rem] group-hover:opacity-100 group-focus-visible:ml-1 group-focus-visible:max-w-[14rem] group-focus-visible:opacity-100`,ge;t[72]===he?ge=t[73]:(ge=v(`inline-flex items-center gap-1.5 overflow-hidden whitespace-nowrap typography-micro font-medium text-foreground transition-[max-width,opacity,margin] duration-200`,he),t[72]=he,t[73]=ge);let _e;t[74]===Q?_e=t[75]:(_e=(0,N.jsx)(`span`,{children:Q}),t[74]=Q,t[75]=_e);let ve;t[76]===Symbol.for(`react.memo_cache_sentinel`)?(ve=(0,N.jsx)(`span`,{className:`mx-0.5 text-muted-foreground/60`,children:`/`}),t[76]=ve):ve=t[76];let ye;t[77]!==V||t[78]!==$?(ye=(0,N.jsxs)(`span`,{className:`text-muted-foreground`,children:[$,ve,V]}),t[77]=V,t[78]=$,t[79]=ye):ye=t[79];let be;t[80]!==ge||t[81]!==_e||t[82]!==ye?(be=(0,N.jsxs)(`span`,{className:ge,children:[_e,ye]}),t[80]=ge,t[81]=_e,t[82]=ye,t[83]=be):be=t[83];let xe=be,Se;t[84]!==I||t[85]!==U||t[86]!==S||t[87]!==x||t[88]!==G||t[89]!==r||t[90]!==me||t[91]!==C||t[92]!==xe||t[93]!==Q||t[94]!==m?(Se=G?(0,N.jsxs)(N.Fragment,{children:[me,xe]}):(0,N.jsxs)(N.Fragment,{children:[!x&&!S&&(0,N.jsx)(y,{name:`donut-chart`,className:`h-4 w-4 flex-shrink-0`}),(0,N.jsx)(`span`,{className:v(`font-medium inline-flex items-center gap-1.5`,m),children:C?(0,N.jsxs)(N.Fragment,{children:[me,(0,N.jsx)(`span`,{className:`text-foreground`,children:Q})]}):(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`span`,{className:U(I),children:Math.min(r,999).toFixed(1)}),`%`]})})]}),t[84]=I,t[85]=U,t[86]=S,t[87]=x,t[88]=G,t[89]=r,t[90]=me,t[91]=C,t[92]=xe,t[93]=Q,t[94]=m,t[95]=Se):Se=t[95];let Ce=Se,we=b===`compact`?`typography-micro`:`typography-meta`,Te;t[96]!==p||t[97]!==W||t[98]!==G||t[99]!==A||t[100]!==we?(Te=v(`app-region-no-drag flex items-center gap-1.5 select-none`,we,W?v(`group rounded-md text-foreground transition-colors`,G?v(`p-1.5 text-muted-foreground hover:text-foreground hover:bg-interactive-hover/50`,A&&`bg-interactive-hover/50 text-foreground`):`px-2 py-1.5 hover:bg-interactive-hover`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`):`text-muted-foreground/60`,p),t[96]=p,t[97]=W,t[98]=G,t[99]=A,t[100]=we,t[101]=Te):Te=t[101];let Ee=Te,De;t[102]!==Ce||t[103]!==W||t[104]!==x||t[105]!==g||t[106]!==A||t[107]!==Ee||t[108]!==j?(De=W?(0,N.jsx)(`button`,{type:`button`,className:Ee,"aria-label":j(`contextUsage.aria.label`),"aria-pressed":A,onClick:g,children:Ce}):(0,N.jsx)(`div`,{className:Ee,"aria-label":j(`contextUsage.aria.label`),onClick:x?()=>P(!0):void 0,children:Ce}),t[102]=Ce,t[103]=W,t[104]=x,t[105]=g,t[106]=A,t[107]=Ee,t[108]=j,t[109]=De):De=t[109];let Oe=De;if(x){let e;t[110]===Symbol.for(`react.memo_cache_sentinel`)?(e=()=>P(!1),t[110]=e):e=t[110];let n;t[111]===j?n=t[112]:(n=j(`contextUsage.mobile.title`),t[111]=j,t[112]=n);let i;t[113]===j?i=t[114]:(i=j(`contextUsage.mobile.usedTokens`),t[113]=j,t[114]=i);let a;t[115]===i?a=t[116]:(a=(0,N.jsx)(`span`,{className:`typography-meta text-muted-foreground`,children:i}),t[115]=i,t[116]=a);let o;t[117]===$?o=t[118]:(o=(0,N.jsx)(`span`,{className:`typography-meta text-foreground font-medium`,children:$}),t[117]=$,t[118]=o);let s;t[119]!==a||t[120]!==o?(s=(0,N.jsxs)(`div`,{className:`flex justify-between items-center`,children:[a,o]}),t[119]=a,t[120]=o,t[121]=s):s=t[121];let c;t[122]===j?c=t[123]:(c=j(`contextUsage.mobile.contextLimit`),t[122]=j,t[123]=c);let l;t[124]===c?l=t[125]:(l=(0,N.jsx)(`span`,{className:`typography-meta text-muted-foreground`,children:c}),t[124]=c,t[125]=l);let u;t[126]===V?u=t[127]:(u=(0,N.jsx)(`span`,{className:`typography-meta text-foreground font-medium`,children:V}),t[126]=V,t[127]=u);let d;t[128]!==l||t[129]!==u?(d=(0,N.jsxs)(`div`,{className:`flex justify-between items-center`,children:[l,u]}),t[128]=l,t[129]=u,t[130]=d):d=t[130];let f;t[131]===j?f=t[132]:(f=j(`contextUsage.mobile.outputLimit`),t[131]=j,t[132]=f);let p;t[133]===f?p=t[134]:(p=(0,N.jsx)(`span`,{className:`typography-meta text-muted-foreground`,children:f}),t[133]=f,t[134]=p);let m;t[135]!==H||t[136]!==q?(m=H(q),t[135]=H,t[136]=q,t[137]=m):m=t[137];let h;t[138]===m?h=t[139]:(h=(0,N.jsx)(`span`,{className:`typography-meta text-foreground font-medium`,children:m}),t[138]=m,t[139]=h);let g;t[140]!==p||t[141]!==h?(g=(0,N.jsxs)(`div`,{className:`flex justify-between items-center`,children:[p,h]}),t[140]=p,t[141]=h,t[142]=g):g=t[142];let _;t[143]===j?_=t[144]:(_=j(`contextUsage.mobile.usage`),t[143]=j,t[144]=_);let y;t[145]===_?y=t[146]:(y=(0,N.jsx)(`span`,{className:`typography-meta text-muted-foreground`,children:_}),t[145]=_,t[146]=y);let b;t[147]!==I||t[148]!==U?(b=v(`typography-meta font-semibold`,U(I)),t[147]=I,t[148]=U,t[149]=b):b=t[149];let x=Math.min(r,999),S;t[150]===x?S=t[151]:(S=x.toFixed(1),t[150]=x,t[151]=S);let C;t[152]!==b||t[153]!==S?(C=(0,N.jsxs)(`span`,{className:b,children:[S,`%`]}),t[152]=b,t[153]=S,t[154]=C):C=t[154];let w;t[155]!==y||t[156]!==C?(w=(0,N.jsxs)(`div`,{className:`flex justify-between items-center pt-1 border-t border-border/40`,children:[y,C]}),t[155]=y,t[156]=C,t[157]=w):w=t[157];let T;t[158]!==s||t[159]!==d||t[160]!==g||t[161]!==w?(T=(0,N.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:(0,N.jsxs)(`div`,{className:`rounded-xl border border-border/40 bg-sidebar/30 px-3 py-2 space-y-1`,children:[s,d,g,w]})}),t[158]=s,t[159]=d,t[160]=g,t[161]=w,t[162]=T):T=t[162];let E;t[163]!==M||t[164]!==n||t[165]!==T?(E=(0,N.jsx)(ee,{open:M,onClose:e,title:n,children:T}),t[163]=M,t[164]=n,t[165]=T,t[166]=E):E=t[166];let D;return t[167]!==Oe||t[168]!==E?(D=(0,N.jsxs)(N.Fragment,{children:[Oe,E]}),t[167]=Oe,t[168]=E,t[169]=D):D=t[169],D}if(G)return Oe;let ke;t[170]===Oe?ke=t[171]:(ke=(0,N.jsx)(w,{asChild:!0,children:Oe}),t[170]=Oe,t[171]=ke);let Ae;t[172]===oe?Ae=t[173]:(Ae=(0,N.jsx)(T,{children:(0,N.jsx)(`div`,{className:`space-y-0.5`,children:oe.map(F)})}),t[172]=oe,t[173]=Ae);let je;return t[174]!==ke||t[175]!==Ae?(je=(0,N.jsxs)(E,{children:[ke,Ae]}),t[174]=ke,t[175]=Ae,t[176]=je):je=t[176],je};function re(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:e.toFixed(1).replace(/\.0$/,``)}function ie(e){return e>=90?`text-status-error`:e>=75?`text-status-warning`:`text-status-success`}function F(e){return(0,N.jsx)(`p`,{className:`typography-micro leading-tight`,children:e},e)}var I=ne.memo(function(e){let t=(0,te.c)(45),{visible:r,position:i}=e,o=i===void 0?`right`:i,{t:s}=d(),[c,l]=ne.useState(!1),u,f;if(t[0]===r?(u=t[1],f=t[2]):(u=()=>{if(!r)return;let e=!1;a(`desktop_get_current_window_state`).then(t=>{e||l(!!t?.maximized)}).catch(L);let t=e=>{let t=e.detail;l(!!t?.maximized)};return window.addEventListener(`openchamber:window-maximized-changed`,t),()=>{e=!0,window.removeEventListener(`openchamber:window-maximized-changed`,t)}},f=[r],t[0]=r,t[1]=u,t[2]=f),(0,ne.useEffect)(u,f),!r)return null;let p;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(p=n(),t[3]=p):p=t[3];let m=p===`win32`,h;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(h=v(`app-region-no-drag inline-flex h-12 w-11 items-center justify-center text-muted-foreground transition-colors hover:bg-interactive-hover hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`,m&&`bg-[var(--surface-background)] backdrop-blur-none`),t[4]=h):h=t[4];let g=h,_=o===`left`?`app-region-no-drag -ml-3 mr-2 flex h-12 shrink-0 items-center`:`app-region-no-drag -mr-3 ml-2 flex h-12 shrink-0 items-center`,b;t[5]===_?b=t[6]:(b=v(_,m&&`bg-[var(--surface-background)] backdrop-blur-none`),t[5]=_,t[6]=b);let x=b,S;t[7]===s?S=t[8]:(S=s(`header.windowControls.groupAria`),t[7]=s,t[8]=S);let C;t[9]===s?C=t[10]:(C=s(`header.windowControls.minimize`),t[9]=s,t[10]=C);let w;t[11]===s?w=t[12]:(w=s(`header.windowControls.minimize`),t[11]=s,t[12]=w);let T;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,N.jsx)(y,{name:`subtract`,className:`h-4 w-4`}),t[13]=T):T=t[13];let E;t[14]!==w||t[15]!==C?(E=(0,N.jsx)(`button`,{type:`button`,className:g,onClick:ae,title:C,"aria-label":w,children:T}),t[14]=w,t[15]=C,t[16]=E):E=t[16];let D;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(D=()=>{a(`desktop_toggle_current_window_maximized`).then(e=>l(!!e?.maximized)).catch(R)},t[17]=D):D=t[17];let O;t[18]!==c||t[19]!==s?(O=s(c?`header.windowControls.restore`:`header.windowControls.maximize`),t[18]=c,t[19]=s,t[20]=O):O=t[20];let k;t[21]!==c||t[22]!==s?(k=s(c?`header.windowControls.restore`:`header.windowControls.maximize`),t[21]=c,t[22]=s,t[23]=k):k=t[23];let A=c?`fullscreen-exit`:`checkbox-blank`,j;t[24]===A?j=t[25]:(j=(0,N.jsx)(y,{name:A,className:`h-3.5 w-3.5`}),t[24]=A,t[25]=j);let ee;t[26]!==O||t[27]!==k||t[28]!==j?(ee=(0,N.jsx)(`button`,{type:`button`,className:g,onClick:D,title:O,"aria-label":k,children:j}),t[26]=O,t[27]=k,t[28]=j,t[29]=ee):ee=t[29];let M;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(M=v(g,`hover:bg-status-error hover:text-status-error-foreground`),t[30]=M):M=t[30];let P;t[31]===s?P=t[32]:(P=s(`header.windowControls.close`),t[31]=s,t[32]=P);let re;t[33]===s?re=t[34]:(re=s(`header.windowControls.close`),t[33]=s,t[34]=re);let ie;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(ie=(0,N.jsx)(y,{name:`close`,className:`h-4 w-4`}),t[35]=ie):ie=t[35];let F;t[36]!==P||t[37]!==re?(F=(0,N.jsx)(`button`,{type:`button`,className:M,onClick:z,title:P,"aria-label":re,children:ie}),t[36]=P,t[37]=re,t[38]=F):F=t[38];let I;return t[39]!==x||t[40]!==E||t[41]!==ee||t[42]!==F||t[43]!==S?(I=(0,N.jsxs)(`div`,{className:x,"aria-label":S,children:[E,ee,F]}),t[39]=x,t[40]=E,t[41]=ee,t[42]=F,t[43]=S,t[44]=I):I=t[44],I});function L(){}function ae(){a(`desktop_minimize_current_window`)}function R(){}function z(){a(`desktop_close_current_window`)}var B=7,V=e=>{if(!e)return null;let t=e.replace(/\\/g,`/`);return t===`/`?`/`:t.length>1?t.replace(/\/+$/,``):t},H=e=>{if(!e)return null;let t=e.path.split(/[\\/]/).filter(Boolean);return t[t.length-1]??null},U=(e,t)=>{let n=(0,te.c)(32),r;n[0]===t?r=n[1]:(r=t===void 0?{}:t,n[0]=t,n[1]=r);let{scopeProjectId:i}=r,a=i===void 0?null:i,o=_(W),s=h(G),c=S(K),l;n[2]===s?l=n[3]:(l=s.map(q).filter(J),n[2]=s,n[3]=l);let u=l,d;n[4]===u?d=n[5]:(d=e=>e?u.filter(t=>x(e,t.normalizedPath)).sort(Y)[0]??null:null,n[4]=u,n[5]=d);let f=d,p;bb0:{if(!e){let e;n[6]===Symbol.for(`react.memo_cache_sentinel`)?(e=[],n[6]=e):e=n[6],p=e;break bb0}let t;if(n[7]!==o||n[8]!==f||n[9]!==c||n[10]!==a){let e;n[12]!==f||n[13]!==a?(e=e=>!a||f(g(e))?.id===a,n[12]=f,n[13]=a,n[14]=e):e=n[14];let r;n[15]===c?r=n[16]:(r=(e,t)=>b(e,t,c),n[15]=c,n[16]=r),t=Array.from(new Set(o.filter(X).filter(Z).filter(e).sort(r).slice(0,B).map(oe).filter(Q))),n[7]=o,n[8]=f,n[9]=c,n[10]=a,n[11]=t}else t=n[11];p=t}let m=p,v;n[17]===Symbol.for(`react.memo_cache_sentinel`)?(v=new Map,n[17]=v):v=n[17];let y=ne.useRef(v),C;n[18]===m?C=n[19]:(C=e=>{let t=y.current,n=t.size===m.length;if(n){for(let r of m)if(t.get(r)!==(e.directories.get(r)?.status?.current??null)){n=!1;break}}if(n)return t;let r=new Map;return m.forEach(t=>r.set(t,e.directories.get(t)?.status?.current??null)),y.current=r,r},n[18]=m,n[19]=C);let w=M(C),T;bb1:{if(!e){let e;n[20]===Symbol.for(`react.memo_cache_sentinel`)?(e=[],n[20]=e):e=n[20],T=e;break bb1}let t;if(n[21]!==o||n[22]!==w||n[23]!==f||n[24]!==c||n[25]!==a){let e=new Map;for(let t of o){let n=t.parentID;if(!n||t.time?.archived)continue;let r=e.get(n);r?r.push(t):e.set(n,[t])}e.forEach(e=>{e.sort((e,t)=>b(e,t,c))});let r;n[27]!==f||n[28]!==a?(r=e=>{if(!a)return!0;let t=g(e);return f(t)?.id===a},n[27]=f,n[28]=a,n[29]=r):r=n[29];let i;n[30]===c?i=n[31]:(i=(e,t)=>b(e,t,c),n[30]=c,n[31]=i);let s=o.filter($).filter(se).filter(r).sort(i).slice(0,B),l=t=>({session:t,children:(e.get(t.id)??[]).map(e=>l(e)),worktree:null});t=s.map(e=>{let t=g(e),n=f(t),r=H(n),i=t?w.get(t)??null:null;return{node:l(e),projectId:n?.id??null,groupDirectory:t,secondaryMeta:{projectLabel:r,branchLabel:i&&i!==r?i:null}}}),n[21]=o,n[22]=w,n[23]=f,n[24]=c,n[25]=a,n[26]=t}else t=n[26];T=t}return T};function W(e){return e.activeSessions}function G(e){return e.projects}function K(e){return e.ids}function q(e){return{...e,normalizedPath:V(e.path)}}function J(e){return e.normalizedPath}function Y(e,t){return(t.normalizedPath?.length??0)-(e.normalizedPath?.length??0)}function X(e){return!e.time?.archived}function Z(e){return!e.parentID}function oe(e){return g(e)}function Q(e){return!!e}function $(e){return!e.time?.archived}function se(e){return!e.parentID}function ce(e){let n=(0,te.c)(18),{children:r,variant:i,scopeProjectId:a,align:o}=e,s=i===void 0?`default`:i,c=a===void 0?null:a,l=o===void 0?`start`:o,u=t(ue),d=t(le),f;n[0]===r?f=n[1]:(f=(0,N.jsx)(A,{asChild:!0,children:r}),n[0]=r,n[1]=f);let p=s===`compact`?`w-[280px]`:`w-[360px]`,m;n[2]===p?m=n[3]:(m=v(`overflow-hidden p-1 max-w-[calc(100vw-32px)]`,p),n[2]=p,n[3]=m);let h;n[4]!==u||n[5]!==c||n[6]!==d||n[7]!==s?(h=u?(0,N.jsx)(de,{onSelect:()=>d(!1),variant:s,scopeProjectId:c}):null,n[4]=u,n[5]=c,n[6]=d,n[7]=s,n[8]=h):h=n[8];let g;n[9]!==l||n[10]!==m||n[11]!==h?(g=(0,N.jsx)(k,{align:l,sideOffset:6,className:m,children:h}),n[9]=l,n[10]=m,n[11]=h,n[12]=g):g=n[12];let _;return n[13]!==u||n[14]!==d||n[15]!==f||n[16]!==g?(_=(0,N.jsxs)(j,{open:u,onOpenChange:d,modal:!1,children:[f,g]}),n[13]=u,n[14]=d,n[15]=f,n[16]=g,n[17]=_):_=n[17],_}function le(e){return e.setSessionDropdownOpen}function ue(e){return e.isSessionDropdownOpen}function de(e){let n=(0,te.c)(27),{onSelect:r,variant:i,scopeProjectId:a}=e,s;n[0]===a?s=n[1]:(s={scopeProjectId:a},n[0]=a,n[1]=s);let c=U(!0,s),l=m(pe),f=t(fe),{t:p}=d(),h;n[2]!==r||n[3]!==l||n[4]!==f?(h=()=>{f(`chat`),r(),l()},n[2]=r,n[3]=l,n[4]=f,n[5]=h):h=n[5];let g=u(h),_;n[6]===Symbol.for(`react.memo_cache_sentinel`)?(_=new Set,n[6]=_):_=n[6];let[b,x]=ne.useState(_),S;n[7]===Symbol.for(`react.memo_cache_sentinel`)?(S=e=>{x(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},n[7]=S):S=n[7];let C=u(S),w,T;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(w=v(`group relative flex w-full cursor-pointer items-center gap-2 rounded-lg px-2 py-1.5 outline-hidden select-none`,`data-[highlighted]:bg-interactive-hover hover:bg-interactive-hover`),T=(0,N.jsx)(y,{name:`chat-new`,className:`h-4 w-4 flex-shrink-0 text-muted-foreground`}),n[8]=w,n[9]=T):(w=n[8],T=n[9]);let E;n[10]===p?E=n[11]:(E=p(`sessions.sidebar.header.actions.newSession`),n[10]=p,n[11]=E);let D;n[12]===E?D=n[13]:(D=(0,N.jsx)(`span`,{className:`truncate text-[14px] font-normal leading-tight text-foreground`,children:E}),n[12]=E,n[13]=D);let O;n[14]!==g||n[15]!==D?(O=(0,N.jsxs)(o,{onClick:g,className:w,children:[T,D]}),n[14]=g,n[15]=D,n[16]=O):O=n[16];let k;n[17]!==b||n[18]!==c||n[19]!==r||n[20]!==p||n[21]!==C||n[22]!==i?(k=c.length===0?(0,N.jsx)(`div`,{className:`px-3 py-4 text-center typography-meta text-muted-foreground`,children:p(`sessions.switcher.empty`)}):c.map(e=>(0,N.jsx)(me,{item:e,depth:0,variant:i,expandedParents:b,toggleParent:C,closeDropdown:r},e.node.session.id)),n[17]=b,n[18]=c,n[19]=r,n[20]=p,n[21]=C,n[22]=i,n[23]=k):k=n[23];let A;return n[24]!==k||n[25]!==O?(A=(0,N.jsx)(`div`,{className:`max-h-[60vh] overflow-y-auto`,children:(0,N.jsxs)(`div`,{className:`space-y-0.5`,children:[O,k]})}),n[24]=k,n[25]=O,n[26]=A):A=n[26],A}function fe(e){return e.setActiveMainTab}function pe(e){return e.openNewSessionDraft}function me(e){let t=(0,te.c)(31),{item:n,depth:r,variant:i,expandedParents:a,toggleParent:o,closeDropdown:s}=e,{node:c,secondaryMeta:l}=n,u=c.session,d=c.children.length>0,f;t[0]!==a||t[1]!==u.id?(f=a.has(u.id),t[0]=a,t[1]=u.id,t[2]=f):f=t[2];let p=f,m;t[3]!==d||t[4]!==u.id||t[5]!==o?(m=d?()=>o(u.id):void 0,t[3]=d,t[4]=u.id,t[5]=o,t[6]=m):m=t[6];let h;t[7]!==s||t[8]!==r||t[9]!==d||t[10]!==p||t[11]!==l||t[12]!==u||t[13]!==m||t[14]!==i?(h=(0,N.jsx)(he,{session:u,depth:r,variant:i,secondaryMeta:l,hasChildren:d,isExpanded:p,onToggleExpand:m,closeDropdown:s}),t[7]=s,t[8]=r,t[9]=d,t[10]=p,t[11]=l,t[12]=u,t[13]=m,t[14]=i,t[15]=h):h=t[15];let g;t[16]!==s||t[17]!==r||t[18]!==a||t[19]!==d||t[20]!==p||t[21]!==n.groupDirectory||t[22]!==n.projectId||t[23]!==c.children||t[24]!==l||t[25]!==o||t[26]!==i?(g=d&&p?c.children.map(e=>(0,N.jsx)(me,{item:{node:e,projectId:n.projectId,groupDirectory:n.groupDirectory,secondaryMeta:l},depth:r+1,variant:i,expandedParents:a,toggleParent:o,closeDropdown:s},e.session.id)):null,t[16]=s,t[17]=r,t[18]=a,t[19]=d,t[20]=p,t[21]=n.groupDirectory,t[22]=n.projectId,t[23]=c.children,t[24]=l,t[25]=o,t[26]=i,t[27]=g):g=t[27];let _;return t[28]!==h||t[29]!==g?(_=(0,N.jsxs)(N.Fragment,{children:[h,g]}),t[28]=h,t[29]=g,t[30]=_):_=t[30],_}function he(e){let t=(0,te.c)(57),{session:n,depth:r,variant:i,secondaryMeta:a,hasChildren:s,isExpanded:c,onToggleExpand:l,closeDropdown:h}=e,{t:_}=d(),b=m(_e),x=m(ge),S=p(n.id),w=f(n.id),T=b===n.id,E;t[0]!==n.title||t[1]!==_?(E=n.title?.trim()||_(`sessions.sidebar.session.untitled`),t[0]=n.title,t[1]=_,t[2]=E):E=t[2];let D=E,O=!!n.parentID,k=w>0&&!O,A=S?.type??`idle`,j=A===`busy`||A===`retry`,ee=!j&&k&&!T,M;t[3]!==n.time?.created||t[4]!==n.time?.updated?(M=n.time?.updated||n.time?.created||Date.now(),t[3]=n.time?.created,t[4]=n.time?.updated,t[5]=M):M=t[5];let ne=M,P;t[6]===ne?P=t[7]:(P=C(ne),t[6]=ne,t[7]=P);let re=P,ie;t[8]===a?.projectLabel?ie=t[9]:(ie=a?.projectLabel?.trim()||null,t[8]=a?.projectLabel,t[9]=ie);let F=ie,I;t[10]===a?.branchLabel?I=t[11]:(I=a?.branchLabel?.trim()||null,t[10]=a?.branchLabel,t[11]=I);let L=I,ae=L&&L!==`HEAD`?L:null,R;t[12]!==h||t[13]!==T||t[14]!==n||t[15]!==x?(R=()=>{if(T){h();return}let e=g(n);x(n.id,e??null),h()},t[12]=h,t[13]=T,t[14]=n,t[15]=x,t[16]=R):R=t[16];let z=u(R),B;t[17]===z?B=t[18]:(B=e=>{if(e.target?.closest(`[data-switcher-expand]`)){e.preventDefault();return}z()},t[17]=z,t[18]=B);let V;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(V=v(`group relative flex w-full cursor-pointer items-start gap-2 rounded-lg px-2 py-1.5 outline-hidden select-none`,`data-[highlighted]:bg-interactive-hover hover:bg-interactive-hover`),t[19]=V):V=t[19];let H=8+r*12,U;t[20]===H?U=t[21]:(U={paddingLeft:H},t[20]=H,t[21]=U);let W;t[22]!==s||t[23]!==c||t[24]!==l||t[25]!==_||t[26]!==i?(W=i===`compact`&&s?(0,N.jsx)(`span`,{role:`button`,tabIndex:-1,"data-switcher-expand":!0,onClick:e=>{e.preventDefault(),e.stopPropagation(),l?.()},className:`inline-flex h-3.5 w-3.5 flex-shrink-0 items-center justify-center rounded text-muted-foreground/70 hover:text-foreground`,"aria-label":_(c?`sessions.sidebar.session.subsessions.collapse`:`sessions.sidebar.session.subsessions.expand`),children:c?(0,N.jsx)(y,{name:`arrow-down-s`,className:`h-3.5 w-3.5`}):(0,N.jsx)(y,{name:`arrow-right-s`,className:`h-3.5 w-3.5`})}):null,t[22]=s,t[23]=c,t[24]=l,t[25]=_,t[26]=i,t[27]=W):W=t[27];let G=T?`text-primary`:`text-foreground`,K;t[28]===G?K=t[29]:(K=v(`truncate text-[14px] font-normal leading-tight`,G),t[28]=G,t[29]=K);let q;t[30]!==D||t[31]!==K?(q=(0,N.jsx)(`span`,{className:K,children:D}),t[30]=D,t[31]=K,t[32]=q):q=t[32];let J;t[33]!==W||t[34]!==q?(J=(0,N.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[W,q]}),t[33]=W,t[34]=q,t[35]=J):J=t[35];let Y;t[36]!==ae||t[37]!==s||t[38]!==c||t[39]!==l||t[40]!==F||t[41]!==_||t[42]!==re||t[43]!==i?(Y=i==="default"?(0,N.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5 truncate text-muted-foreground/70 leading-tight`,style:{fontSize:`calc(var(--text-ui-label) * 0.85)`},children:[s?(0,N.jsx)(`span`,{role:`button`,tabIndex:-1,"data-switcher-expand":!0,onClick:e=>{e.preventDefault(),e.stopPropagation(),l?.()},className:`inline-flex h-3 w-3 flex-shrink-0 items-center justify-center rounded text-muted-foreground/70 hover:text-foreground`,"aria-label":_(c?`sessions.sidebar.session.subsessions.collapse`:`sessions.sidebar.session.subsessions.expand`),children:c?(0,N.jsx)(y,{name:`arrow-down-s`,className:`h-3 w-3`}):(0,N.jsx)(y,{name:`arrow-right-s`,className:`h-3 w-3`})}):null,(0,N.jsx)(`span`,{className:`flex-shrink-0`,children:re}),F?(0,N.jsx)(`span`,{className:`truncate`,children:F}):null,ae?(0,N.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-0.5`,children:[(0,N.jsx)(y,{name:`git-branch`,className:`h-3 w-3 flex-shrink-0 text-muted-foreground/70`}),(0,N.jsx)(`span`,{className:`truncate`,children:ae})]}):null]}):null,t[36]=ae,t[37]=s,t[38]=c,t[39]=l,t[40]=F,t[41]=_,t[42]=re,t[43]=i,t[44]=Y):Y=t[44];let X;t[45]!==J||t[46]!==Y?(X=(0,N.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[J,Y]}),t[45]=J,t[46]=Y,t[47]=X):X=t[47];let Z;t[48]!==j||t[49]!==ee||t[50]!==_?(Z=j||ee?(0,N.jsx)(`span`,{className:`flex h-3 w-3 flex-shrink-0 items-center justify-center self-center`,children:j?(0,N.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full bg-primary animate-busy-pulse`,"aria-label":_(`sessions.sidebar.session.status.active`),title:_(`sessions.sidebar.session.status.active`)}):(0,N.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full bg-[var(--status-info)]`,"aria-label":_(`sessions.sidebar.session.status.unread`),title:_(`sessions.sidebar.session.status.unread`)})}):null,t[48]=j,t[49]=ee,t[50]=_,t[51]=Z):Z=t[51];let oe;return t[52]!==U||t[53]!==X||t[54]!==Z||t[55]!==B?(oe=(0,N.jsxs)(o,{onClick:B,"data-slot":`session-switcher-item`,className:V,style:U,children:[X,Z]}),t[52]=U,t[53]=X,t[54]=Z,t[55]=B,t[56]=oe):oe=t[56],oe}function ge(e){return e.setCurrentSession}function _e(e){return e.currentSessionId}function ve(){let e=(0,te.c)(5),n=t(ye),a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=r(),e[0]=a):a=e[0];let o=a,s;e[1]===n?s=e[2]:(s=i(n),e[1]=n,e[2]=s);let c=s,l;return e[3]===c?l=e[4]:(l={usesFramelessChrome:o,side:c},e[3]=c,e[4]=l),l}function ye(e){return e.desktopWindowControlsPosition}export{P as i,ce as n,I as r,ve as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{yt as e}from"./gitApiHttp-BswZXfrf.js";import{n as t}from"./vendor-react-DLPElpoQ.js";import{S as n,Zt as r,d as i,y as a}from"./ui-
|
|
1
|
+
import{yt as e}from"./gitApiHttp-BswZXfrf.js";import{n as t}from"./vendor-react-DLPElpoQ.js";import{S as n,Zt as r,d as i,y as a}from"./ui-D5j3JxkE.js";var o=t(),s=()=>{let t=i.getState(),r=t.currentSessionId,o=t.newSessionDraft,s=t.worktreeMetadata,c=e.getState().currentDirectory;if(r){let e=n.getState().getAttachment(r),i=a(e);if(i)return i;let o=s.get(r);if(o?.path)return o.path;let c=t.getDirectoryForSession(r);if(c)return c}return o?.open&&(o.bootstrapPendingDirectory||o.directoryOverride)?(o.bootstrapPendingDirectory||o.directoryOverride)??void 0:c??void 0},c=()=>{let t=(0,o.c)(7),s=i(l),c=i(u),p=r(s),m;t[0]===s?m=t[1]:(m=e=>s?e.getAttachment(s):void 0,t[0]=s,t[1]=m);let h=n(m),g=i(d),_=e(f);if(s){let e;t[2]===h?e=t[3]:(e=a(h),t[2]=h,t[3]=e);let n=e;if(n)return n;let r;t[4]!==s||t[5]!==g?(r=g.get(s),t[4]=s,t[5]=g,t[6]=r):r=t[6];let i=r;if(i?.path)return i.path;if(p)return p}return c?.open&&(c.bootstrapPendingDirectory||c.directoryOverride)?(c.bootstrapPendingDirectory||c.directoryOverride)??void 0:_??void 0};function l(e){return e.currentSessionId}function u(e){return e.newSessionDraft}function d(e){return e.worktreeMetadata}function f(e){return e.currentDirectory}export{c as n,s as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{M as t,t as n}from"./useUIStore-WQV8IuFw.js";import{Kt as r,kn as i,qt as a,u as o}from"./persistence-CFtygeYy.js";import{m as s}from"./desktopHosts-RE7NIkeq.js";import{a as c,i as l,o as u,r as d}from"./desktopRelayRestore-BzyaU7-i.js";import{nt as f,rt as p}from"./vendor-base-ui-CnHfUmDN.js";import{kt as m}from"./gitApiHttp-BswZXfrf.js";import{n as h}from"./vendor-react-DLPElpoQ.js";import{n as g}from"./vendor-tanstack-query-core-BWz0ose6.js";import{i as _,r as v}from"./vendor-tanstack-react-query-D7pys_c9.js";import{l as y,t as b}from"./i18n-BAqcSln8.js";import{Ji as x,d as S,fr as C,t as ee,vr as te,xr as w}from"./ui-DqzK0-Jk.js";import{i as T,t as E}from"./store-CS6l6pH7.js";import{t as D}from"./utils-Cwlw2GM0.js";import{n as O}from"./Icon-Vc-aDche.js";import{t as k}from"./button-rDAIP5kY.js";import{i as ne,n as re,r as ie,t as ae}from"./vendor-simplewebauthn-browser-Dwhcdg_5.js";import{n as oe,r as se}from"./radio-C7IX1jxE.js";var A=h(),j=[`desktopHostSwitch`],M=class extends Error{result;host;constructor(e,t){super(e.reason),this.name=`DesktopHostSwitchError`,this.result=e,this.host=t}},ce=(e,t)=>E(T.getState().dictionary,e,t),le=async e=>{let{host:n}=e;if(n.id===`local`){let r=(e.localApiOrigin||``).trim();if(!r)throw new M({ok:!1,status:{status:`unreachable`,latencyMs:0},reason:`unreachable`},n);return t({apiBaseUrl:r,clientToken:e.localClientToken||null,runtimeKey:l(n)}),{ok:!0,via:`direct`,status:{status:`ok`,latencyMs:0}}}if(n.viaSshRelay){let e=await u(n);if(!e.ok)throw new M(e,n);return e}let r=await c(n,{cachedProbe:e.cachedProbe});if(!r.ok)throw new M(r,n);return r},N=null,ue=()=>N||(N=new g(o,{mutationKey:j,mutationFn:le,onError:(e,t)=>{e instanceof M&&e.result.reason!==`unsupported`&&ee.error(ce(`desktopHostSwitcher.toast.instanceUnreachable`,{host:s(t.host.label)}))}}),N.subscribe(()=>void 0),N),de=async e=>{if(d(e.host))return{ok:!0,via:`direct`,status:e.cachedProbe?.status===`ok`?e.cachedProbe:{status:`ok`,latencyMs:0}};if(o.isMutating({mutationKey:j})>0)return{ok:!1,status:{status:`unreachable`,latencyMs:0},reason:`unsupported`};try{return await ue().mutate(e)}catch(e){if(e instanceof M)return e.result;throw e}},fe=()=>{let e=(0,A.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={mutationKey:j},e[0]=t):t=e[0],v(t)>0},pe=()=>{let e=(0,A.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={filters:{mutationKey:j,status:`pending`},select:me},e[0]=t):t=e[0],_(t)[0]?.host.id??null};function me(e){return e.state.variables}var P=e=>typeof e==`object`&&!!e,F=(e,t)=>{let n=e[t];return typeof n==`string`?n:null},I=(e,t)=>{let n=e[t];return typeof n==`number`&&Number.isFinite(n)?n:null},L=(e,t)=>{let n=e[t];return typeof n==`boolean`?n:null},he=e=>Array.isArray(e)?e.filter(e=>typeof e==`string`):[],R=()=>r()?(e,t)=>a(e,t):null,z=e=>{if(!P(e))return;let t=L(e,`enabled`)??!1,n=F(e,`store`)?.toLowerCase()===`settings`?`settings`:`never`,r=F(e,`value`);return{enabled:t,store:n,...r?{value:r}:{}}},ge=e=>e===`remote`||e===`dynamic`?e:`local`,_e=e=>{if(!P(e))return null;let t=F(e,`id`);if(!t)return null;let n=L(e,`enabled`)??!0,r=ge(F(e,`type`)),i=F(e,`localHost`)||F(e,`local_host`)||void 0,a=I(e,`localPort`)??I(e,`local_port`)??void 0,o=F(e,`remoteHost`)||F(e,`remote_host`)||void 0,s=I(e,`remotePort`)??I(e,`remote_port`)??void 0;return{id:t,enabled:n,type:r,...i?{localHost:i}:{},...typeof a==`number`?{localPort:a}:{},...o?{remoteHost:o}:{},...typeof s==`number`?{remotePort:s}:{}}},ve=e=>{if(!P(e))return null;let t=F(e,`id`),n=F(e,`sshCommand`)||F(e,`ssh_command`);if(!t||!n)return null;let r=F(e,`nickname`),i=e.sshParsed,a=P(i)?{destination:F(i,`destination`)||``,args:he(i.args)}:void 0,o=P(e.remoteOpenchamber)?e.remoteOpenchamber:P(e.remote_openchamber)?e.remote_openchamber:{},s=P(e.localForward)?e.localForward:P(e.local_forward)?e.local_forward:{},c=P(e.auth)?e.auth:{},l=F(o,`mode`)?.toLowerCase()===`external`?`external`:`managed`,u=F(o,`installMethod`)||F(o,`install_method`),d=u===`npm`||u===`download_release`||u===`upload_bundle`?u:`bun`,f=F(s,`bindHost`)||F(s,`bind_host`)||`127.0.0.1`,p=f===`localhost`||f===`0.0.0.0`?f:`127.0.0.1`,m=(Array.isArray(e.portForwards)?e.portForwards:Array.isArray(e.port_forwards)?e.port_forwards:[]).map(e=>_e(e)).filter(e=>!!e),h=I(o,`preferredPort`)??I(o,`preferred_port`),g=I(s,`preferredLocalPort`)??I(s,`preferred_local_port`),_=z(c.sshPassword||c.ssh_password),v=z(c.openchamberPassword||c.openchamber_password);return{id:t,...r?{nickname:r}:{},sshCommand:n,...a&&a.destination?{sshParsed:a}:{},connectionTimeoutSec:I(e,`connectionTimeoutSec`)??I(e,`connection_timeout_sec`)??60,remoteOpenchamber:{mode:l,keepRunning:L(o,`keepRunning`)??L(o,`keep_running`)??!0,...h?{preferredPort:h}:{},installMethod:d,uploadBundleOverSsh:L(o,`uploadBundleOverSsh`)??L(o,`upload_bundle_over_ssh`)??!1},localForward:{...g?{preferredLocalPort:g}:{},bindHost:p},auth:{..._?{sshPassword:_}:{},...v?{openchamberPassword:v}:{}},portForwards:m}},ye=e=>{switch(e){case`config_resolved`:case`auth_check`:case`master_connecting`:case`remote_probe`:case`installing`:case`updating`:case`server_detecting`:case`server_starting`:case`forwarding`:case`ready`:case`degraded`:case`error`:return e;default:return`idle`}},be=e=>{if(!P(e))return null;let t=F(e,`id`);return t?{id:t,phase:ye(F(e,`phase`)),...F(e,`detail`)?{detail:F(e,`detail`)||void 0}:{},...F(e,`localUrl`)||F(e,`local_url`)?{localUrl:F(e,`localUrl`)||F(e,`local_url`)||void 0}:{},...typeof(I(e,`localPort`)??I(e,`local_port`))==`number`?{localPort:I(e,`localPort`)??I(e,`local_port`)??void 0}:{},...typeof(I(e,`remotePort`)??I(e,`remote_port`))==`number`?{remotePort:I(e,`remotePort`)??I(e,`remote_port`)??void 0}:{},startedByUs:L(e,`startedByUs`)??L(e,`started_by_us`)??!1,retryAttempt:I(e,`retryAttempt`)??I(e,`retry_attempt`)??0,requiresUserAction:L(e,`requiresUserAction`)??L(e,`requires_user_action`)??!1,updatedAtMs:I(e,`updatedAtMs`)??I(e,`updated_at_ms`)??Date.now()}:null},xe=e=>{if(!P(e))return null;let t=F(e,`host`),n=F(e,`source`),r=F(e,`sshCommand`)||F(e,`ssh_command`);return!t||!n||!r?null:{host:t,source:n,sshCommand:r,pattern:L(e,`pattern`)??!1}},Se=(e,t)=>({id:e,sshCommand:t,connectionTimeoutSec:60,remoteOpenchamber:{mode:`managed`,keepRunning:!0,installMethod:`bun`,uploadBundleOverSsh:!1},localForward:{bindHost:`127.0.0.1`},auth:{},portForwards:[]}),Ce=async()=>{let e=R();if(!e)return{instances:[]};let t=await e(`desktop_ssh_instances_get`);return P(t)?{instances:(Array.isArray(t.instances)?t.instances:Array.isArray(t.desktopSshInstances)?t.desktopSshInstances:[]).map(e=>ve(e)).filter(e=>!!e)}:{instances:[]}},we=async e=>{let t=R();t&&await t(`desktop_ssh_instances_set`,{config:{instances:e.instances}})},Te=async()=>{let e=R();if(!e)return[];let t=await e(`desktop_ssh_import_hosts`);return Array.isArray(t)?t.map(e=>xe(e)).filter(e=>!!e):[]},Ee=async e=>{let t=R();t&&await t(`desktop_ssh_connect`,{id:e})},De=async e=>{let t=R();t&&await t(`desktop_ssh_disconnect`,{id:e})},Oe=async e=>{let t=R();if(!t)return[];let n=await t(`desktop_ssh_status`,{...e?{id:e}:{}});return Array.isArray(n)?n.map(e=>be(e)).filter(e=>!!e):[]},ke=async(e,t)=>{let n=R();if(!n)return[];let r=await n(`desktop_ssh_logs`,{id:e,...typeof t==`number`?{limit:t}:{}});return Array.isArray(r)?r.filter(e=>typeof e==`string`):[]},Ae=async e=>{let t=R();t&&await t(`desktop_ssh_logs_clear`,{id:e})},je=async e=>{if(!r())return async()=>{};let t=window.__OPENCHAMBER_DESKTOP__?.listen;if(typeof t!=`function`)return async()=>{};let n=await t(`openchamber:ssh-instance-status`,t=>{let n=be(t?.payload);n&&e(n)});return async()=>{await n()}},Me=`/auth/passkey/authenticate/options`,Ne=`/auth/passkey/authenticate/verify`,Pe=`/auth/passkey/register/options`,Fe=`/auth/passkey/register/verify`,B=`/api/passkeys`,Ie=`/auth/passkey/status`,Le=`/api/auth/reset`,V={enabled:!1,hasPasskeys:!1,passkeyCount:0,rpID:null},H=async(e,t)=>i(e,{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:t===void 0?void 0:JSON.stringify(t)}),U=async(e,t)=>{try{let t=await e.json();if(t&&typeof t.error==`string`&&t.error.trim())return t.error}catch{}return t},Re=e=>e instanceof ne&&e.code===`ERROR_CEREMONY_ABORTED`,ze=()=>{ie.cancelCeremony()},W=()=>typeof window>`u`?{supported:!1,reason:`Passkeys are unavailable outside the browser.`}:window.isSecureContext?{supported:!0,reason:``}:{supported:!1,reason:`Passkeys require HTTPS or localhost.`},Be=async()=>{let e=W();if(!e.supported)throw Error(e.reason);let t=await H(Pe,{label:typeof navigator.userAgent==`string`&&navigator.userAgent.trim()?navigator.userAgent:`This device`});if(!t.ok)throw Error(await U(t,`Could not start passkey setup.`));let{requestId:n,optionsJSON:r}=await t.json(),i=await H(Fe,{requestId:n,response:await re({optionsJSON:r})});if(!i.ok)throw Error(await U(i,`Could not finish passkey setup.`));return i.json().catch(()=>null)},Ve=async(e,t={})=>{let n=W();if(!n.supported)throw Error(n.reason);let r=await H(Me);if(!r.ok)throw Error(await U(r,`Passkey sign-in is not available right now.`));let{requestId:i,optionsJSON:a}=await r.json(),o=await H(Ne,{requestId:i,response:await ae({optionsJSON:a}),trustDevice:e,issueClientToken:t.issueClientToken===!0,clientLabel:t.clientLabel,clientKind:t.clientKind,dedupeKey:t.dedupeKey});if(!o.ok)throw Error(await U(o,`Passkey sign-in failed.`));return o.json().catch(()=>null)},He=async()=>{let e=await i(Ie,{method:`GET`,credentials:`include`,headers:{Accept:`application/json`}});if(!e.ok)return V;let t=await e.json().catch(()=>null);return{enabled:t?.enabled===!0,hasPasskeys:t?.hasPasskeys===!0,passkeyCount:typeof t?.passkeyCount==`number`?t.passkeyCount:0,rpID:typeof t?.rpID==`string`&&t.rpID?t.rpID:null}},Ue=async()=>{let e=await i(B,{method:`GET`,credentials:`include`,headers:{Accept:`application/json`}});if(!e.ok)throw Error(await U(e,`Could not load passkeys.`));let t=await e.json().catch(()=>null);return Array.isArray(t?.passkeys)?t.passkeys:[]},We=async e=>{let t=await i(`${B}/${encodeURIComponent(e)}`,{method:`DELETE`,credentials:`include`,headers:{Accept:`application/json`}});if(!t.ok)throw Error(await U(t,`Could not remove passkey.`));return t.json().catch(()=>null)},Ge=async()=>{let e=await H(Le);if(!e.ok)throw Error(await U(e,`Could not clear saved authentication.`));return e.json().catch(()=>null)},G=e(p(),1),K=f();function q(e){let t=(0,A.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=D(`bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-none`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,K.jsx)(`div`,{"data-slot":`card`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function J(e){let t=(0,A.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=D(`@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,K.jsx)(`div`,{"data-slot":`card-header`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function Y(e){let t=(0,A.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=D(`leading-none font-semibold`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,K.jsx)(`div`,{"data-slot":`card-title`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function X(e){let t=(0,A.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=D(`px-6`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,K.jsx)(`div`,{"data-slot":`card-content`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}var Ke=class extends G.Component{constructor(e){super(e),this.state={hasError:!1}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){this.setState({error:e,errorInfo:t,copied:!1}),console.error(`Error caught by boundary:`,e,t)}handleReset=()=>{this.setState({hasError:!1,error:void 0,errorInfo:void 0})};handleCopy=async()=>{let{strings:e}=this.props,t=`${this.state.error?String(this.state.error):e.unknownError}${this.state.error?.stack?`\n\nStack:\n${this.state.error.stack}`:``}${this.state.errorInfo?.componentStack?`\n\n${e.componentStackLabel}${this.state.errorInfo.componentStack}`:``}`;(await y(t)).ok&&(this.setState({copied:!0}),window.setTimeout(()=>{this.setState(e=>e.copied?{copied:!1}:null)},1500))};render(){let{strings:e}=this.props;return this.state.hasError?this.props.fallback?this.props.fallback:(0,K.jsx)(`div`,{className:`p-4 flex items-center justify-center min-h-screen`,children:(0,K.jsxs)(q,{className:`w-full max-w-md`,children:[(0,K.jsx)(J,{className:`text-center`,children:(0,K.jsxs)(Y,{className:`flex items-center justify-center gap-2 text-destructive`,children:[(0,K.jsx)(O,{name:`error-warning`,className:`h-5 w-5`}),e.title]})}),(0,K.jsxs)(X,{className:`space-y-4`,children:[(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground text-center`,children:e.description}),this.state.error&&(0,K.jsxs)(`details`,{className:`text-xs font-mono bg-muted p-3 rounded`,children:[(0,K.jsx)(`summary`,{className:`cursor-pointer hover:bg-interactive-hover/80`,children:e.detailsSummary}),(0,K.jsxs)(`pre`,{className:`mt-2 max-h-48 overflow-auto`,children:[this.state.error.toString(),this.state.errorInfo?.componentStack?`\n\n${e.componentStackLabel}${this.state.errorInfo.componentStack}`:``]})]}),(0,K.jsxs)(`div`,{className:`flex gap-2`,children:[(0,K.jsxs)(k,{onClick:this.handleReset,variant:`outline`,className:`flex-1`,children:[(0,K.jsx)(O,{name:`restart`,className:`h-4 w-4 mr-2`}),e.tryAgain]}),(0,K.jsx)(k,{onClick:this.handleCopy,variant:`outline`,className:`flex-1`,children:this.state.copied?e.copied:e.copy})]})]})]})}):this.props.children}},qe=e=>{let t=(0,A.c)(29),{children:n,fallback:r}=e,{t:i}=b(),a;t[0]===i?a=t[1]:(a=i(`errorBoundary.state.unknownError`),t[0]=i,t[1]=a);let o;t[2]===i?o=t[3]:(o=i(`errorBoundary.title`),t[2]=i,t[3]=o);let s;t[4]===i?s=t[5]:(s=i(`errorBoundary.description`),t[4]=i,t[5]=s);let c;t[6]===i?c=t[7]:(c=i(`errorBoundary.actions.errorDetails`),t[6]=i,t[7]=c);let l;t[8]===i?l=t[9]:(l=i(`errorBoundary.state.componentStackLabel`),t[8]=i,t[9]=l);let u;t[10]===i?u=t[11]:(u=i(`errorBoundary.actions.tryAgain`),t[10]=i,t[11]=u);let d;t[12]===i?d=t[13]:(d=i(`errorBoundary.actions.copied`),t[12]=i,t[13]=d);let f;t[14]===i?f=t[15]:(f=i(`errorBoundary.actions.copy`),t[14]=i,t[15]=f);let p;t[16]!==a||t[17]!==o||t[18]!==s||t[19]!==c||t[20]!==l||t[21]!==u||t[22]!==d||t[23]!==f?(p={unknownError:a,title:o,description:s,detailsSummary:c,componentStackLabel:l,tryAgain:u,copied:d,copy:f},t[16]=a,t[17]=o,t[18]=s,t[19]=c,t[20]=l,t[21]=u,t[22]=d,t[23]=f,t[24]=p):p=t[24];let m=p,h;return t[25]!==n||t[26]!==r||t[27]!==m?(h=(0,K.jsx)(Ke,{fallback:r,strings:m,children:n}),t[25]=n,t[26]=r,t[27]=m,t[28]=h):h=t[28],h},Z=e=>E(T.getState().dictionary,e),Je=e=>typeof e!=`number`||!Number.isFinite(e)?null:Math.max(0,Math.min(100,Math.round(e))),Ye=e=>typeof e!=`number`||!Number.isFinite(e)?`-`:`${Math.round(e)}%`,Xe=(e,t)=>e??Ye(t),Ze=(e,t,n=`auto`)=>{if(!e)return t??``;try{let r=new Date(e);if(!Number.isFinite(r.getTime()))return t??``;let i=new Date;return r.toDateString()===i.toDateString()?se(r,n,{fallback:t??``}):oe(r,n,{month:`short`,day:`numeric`,weekday:`short`,hour:`numeric`,minute:`2-digit`})}catch{return t??``}},Qe=e=>e===null?`safe`:e>=80?`critical`:e>=50?`warn`:`safe`,$e=e=>e===`5h`?Z(`quota.window.5h`):e===`7d`?Z(`quota.window.7d`):e===`7d-sonnet`?Z(`quota.window.7dSonnet`):e===`7d-opus`?Z(`quota.window.7dOpus`):e===`weekly`?Z(`quota.window.weekly`):e===`daily`?Z(`quota.window.daily`):e===`monthly`?Z(`quota.window.monthly`):e===`credits`?Z(`quota.window.credits`):e===`credits_balance`?Z(`quota.window.creditsBalance`):e===`billing_cycle`?Z(`quota.window.billingCycle`):e===`auto`?Z(`quota.window.auto`):e===`api`?Z(`quota.window.api`):e===`plan_limit`?Z(`quota.window.planLimit`):e===`on_demand`?Z(`quota.window.onDemand`):e===`session`?Z(`quota.window.session`):e===`premium`?Z(`quota.window.premium`):e===`chat`?Z(`quota.window.chat`):e===`completions`?Z(`quota.window.completions`):e===`premium_interactions`?Z(`quota.window.premiumInteractions`):e,et=e=>{let t=e.toLowerCase().trim();if(t===`5h`)return 18e3;if(t===`7d`||t===`weekly`||t===`7d-sonnet`||t===`7d-opus`)return 604800;if(t===`monthly`)return 2592e3;if(t===`24h`||t===`daily`)return 86400;if(t===`1h`)return 3600;let n=t.match(/^(\d+)h$/);if(n)return parseInt(n[1],10)*3600;let r=t.match(/^(\d+)d$/);return r?parseInt(r[1],10)*86400:null},tt=(e,t,n,r)=>{let i=n;if(i===null&&r&&(i=et(r)),e===null||t===null||i===null||i<=0)return null;let a=Math.max(0,(t-Date.now())/1e3),o=Math.max(0,Math.min(i,i-a)),s=Math.max(0,Math.min(1,o/i)),c=e/100,l=e>=100&&a>0,u;u=s>.01?Math.min(999,c/s*100):e;let d;d=l?`exhausted`:c<=s?`on-track`:u<=130?`slightly-fast`:`too-fast`;let f=i>=432e3,p=f?86400:3600,m=f?`d`:`h`,h=i/p,g=e/Math.max(o/p,h*.01),_=Number.isFinite(g)?`${Math.min(999.9,Math.max(0,g)).toFixed(1)}%/${m}`:`-`,v=u>100?`+${Math.round(u)}%`:`${Math.round(u)}%`,y=null,b=i/86400;return b>=7&&(y=100/b),{elapsedRatio:s,usageRatio:c,predictedFinalPercent:u,remainingSeconds:a,isExhausted:l,elapsedSeconds:o,totalSeconds:i,status:d,paceRateText:_,predictText:v,dailyAllocationPercent:y}},nt=e=>{switch(e){case`exhausted`:case`too-fast`:return`var(--status-error)`;case`slightly-fast`:return`var(--status-warning)`;case`on-track`:return`var(--status-success)`}},rt=e=>{let t=Math.floor(Math.max(0,Math.floor(e))/60),n=Math.floor(t/60),r=Math.floor(n/24),i=n%24,a=t%60;return r>0?`${r}d ${i}h`:n>0?`${n}h`:t===0?`<1m`:`${a}m`},it=e=>Math.min(100,Math.max(0,e*100)),at=[`standalone`,`minimal-ui`,`fullscreen`,`window-controls-overlay`],ot=`openchamber.pwaRecentSessions`,st=e=>typeof window>`u`||typeof window.matchMedia!=`function`?!1:window.matchMedia(`(display-mode: ${e})`).matches,ct=()=>typeof window>`u`?`browser`:typeof document<`u`&&document.referrer.startsWith(`android-app://`)?`twa`:window.navigator.standalone?`standalone`:at.find(e=>st(e))??`browser`,lt=864e5,Q=5,ut=864e5,$=e=>e.time?.updated??e.time?.created??0,dt=({sessions:e,currentSessionId:t,cutoffDays:n,keepRecent:r=Q,now:i=Date.now()})=>{if(!Array.isArray(e)||n<=0)return[];let a=i-n*lt,o=[...e].sort((e,t)=>$(t)-$(e)),s=new Set(o.slice(0,r).map(e=>e.id));return o.filter(e=>{if(!e?.id||s.has(e.id)||e.id===t||e.share)return!1;let n=$(e);return n?n<a:!1}).map(e=>e.id)},ft=e=>{let t=typeof e==`object`?e:void 0,r=t?.autoRun!==!1,i=typeof e==`boolean`?e:t?.enabled??!0,a=S(e=>e.currentSessionId),o=S(e=>e.isLoading),s=w(e=>e.activeSessions),c=w(e=>e.hasLoadedFullCatalog),l=n(e=>e.autoDeleteEnabled),u=n(e=>e.autoDeleteAfterDays),d=n(e=>e.sessionRetentionAction),f=n(e=>e.autoDeleteLastRunAt),p=n(e=>e.setAutoDeleteLastRunAt),[h,g]=G.useState(!1),_=G.useRef(!1);G.useEffect(()=>{if(!i||!r||!l||u<=0)return;let e=window.setTimeout(()=>{C(x())},8e3);return()=>window.clearTimeout(e)},[u,l,r,i]);let v=G.useMemo(()=>u<=0?[]:dt({sessions:s,currentSessionId:a,cutoffDays:u}),[u,a,s]),y=G.useCallback(async({force:e=!1}={})=>{if(_.current)return{completedIds:[],failedIds:[],action:d,skippedReason:`running`};if((!l||u<=0)&&!e)return{completedIds:[],failedIds:[],action:d,skippedReason:`disabled`};if(o)return{completedIds:[],failedIds:[],action:d,skippedReason:`loading`};let t=Date.now();if(!e&&f&&t-f<ut)return{completedIds:[],failedIds:[],action:d,skippedReason:`cooldown`};let{activeSessions:n}=await C(x());if(n.length===0)return{completedIds:[],failedIds:[],action:d,skippedReason:`no-candidates`};let r=dt({sessions:n,currentSessionId:a,cutoffDays:u,now:t});if(r.length===0)return p(t),{completedIds:[],failedIds:[],action:d,skippedReason:`no-candidates`};_.current=!0,g(!0);try{let e=new Map(n.map(e=>[e.id,e])),t=[],i=[];for(let n of r){let r=e.get(n),a=r?te(r):null;if(!a){i.push(n);continue}try{d===`archive`?await m.updateSession(n,{time:{archived:Date.now()}},a):await m.deleteSession(n,a),t.push(n)}catch{i.push(n)}}return d===`archive`?w.getState().archiveSessions(t):w.getState().removeSessions(t),{completedIds:t,failedIds:i,action:d}}finally{_.current=!1,g(!1),p(Date.now())}},[u,l,f,a,o,d,p]);return G.useEffect(()=>{i&&r&&(!l||u<=0||o||!c||s.length===0||f&&Date.now()-f<ut||y())},[u,l,f,r,i,c,s.length,o,y]),{candidates:v,isRunning:h,runCleanup:y,keepRecentCount:Q,action:d}};export{De as A,pe as B,W as C,We as D,Ge as E,Ae as F,Oe as I,je as L,Ce as M,we as N,Se as O,ke as P,de as R,Ue as S,Be as T,Y as _,tt as a,V as b,Xe as c,nt as d,Qe as f,J as g,X as h,it as i,Te as j,Ee as k,rt as l,q as m,ot as n,Je as o,qe as p,ct as r,Ze as s,ft as t,$e as u,Ve as v,Re as w,He as x,ze as y,fe as z};
|
|
1
|
+
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{M as t,t as n}from"./useUIStore-WQV8IuFw.js";import{Kt as r,kn as i,qt as a,u as o}from"./persistence-CFtygeYy.js";import{m as s}from"./desktopHosts-RE7NIkeq.js";import{a as c,i as l,o as u,r as d}from"./desktopRelayRestore-BzyaU7-i.js";import{nt as f,rt as p}from"./vendor-base-ui-CnHfUmDN.js";import{kt as m}from"./gitApiHttp-BswZXfrf.js";import{n as h}from"./vendor-react-DLPElpoQ.js";import{n as g}from"./vendor-tanstack-query-core-BWz0ose6.js";import{i as _,r as v}from"./vendor-tanstack-react-query-D7pys_c9.js";import{l as y,t as b}from"./i18n-BAqcSln8.js";import{Ji as x,d as S,fr as C,t as ee,vr as te,xr as w}from"./ui-D5j3JxkE.js";import{i as T,t as E}from"./store-CS6l6pH7.js";import{t as D}from"./utils-Cwlw2GM0.js";import{n as O}from"./Icon-Vc-aDche.js";import{t as k}from"./button-rDAIP5kY.js";import{i as ne,n as re,r as ie,t as ae}from"./vendor-simplewebauthn-browser-Dwhcdg_5.js";import{n as oe,r as se}from"./radio-C1riLnF0.js";var A=h(),j=[`desktopHostSwitch`],M=class extends Error{result;host;constructor(e,t){super(e.reason),this.name=`DesktopHostSwitchError`,this.result=e,this.host=t}},ce=(e,t)=>E(T.getState().dictionary,e,t),le=async e=>{let{host:n}=e;if(n.id===`local`){let r=(e.localApiOrigin||``).trim();if(!r)throw new M({ok:!1,status:{status:`unreachable`,latencyMs:0},reason:`unreachable`},n);return t({apiBaseUrl:r,clientToken:e.localClientToken||null,runtimeKey:l(n)}),{ok:!0,via:`direct`,status:{status:`ok`,latencyMs:0}}}if(n.viaSshRelay){let e=await u(n);if(!e.ok)throw new M(e,n);return e}let r=await c(n,{cachedProbe:e.cachedProbe});if(!r.ok)throw new M(r,n);return r},N=null,ue=()=>N||(N=new g(o,{mutationKey:j,mutationFn:le,onError:(e,t)=>{e instanceof M&&e.result.reason!==`unsupported`&&ee.error(ce(`desktopHostSwitcher.toast.instanceUnreachable`,{host:s(t.host.label)}))}}),N.subscribe(()=>void 0),N),de=async e=>{if(d(e.host))return{ok:!0,via:`direct`,status:e.cachedProbe?.status===`ok`?e.cachedProbe:{status:`ok`,latencyMs:0}};if(o.isMutating({mutationKey:j})>0)return{ok:!1,status:{status:`unreachable`,latencyMs:0},reason:`unsupported`};try{return await ue().mutate(e)}catch(e){if(e instanceof M)return e.result;throw e}},fe=()=>{let e=(0,A.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={mutationKey:j},e[0]=t):t=e[0],v(t)>0},pe=()=>{let e=(0,A.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={filters:{mutationKey:j,status:`pending`},select:me},e[0]=t):t=e[0],_(t)[0]?.host.id??null};function me(e){return e.state.variables}var P=e=>typeof e==`object`&&!!e,F=(e,t)=>{let n=e[t];return typeof n==`string`?n:null},I=(e,t)=>{let n=e[t];return typeof n==`number`&&Number.isFinite(n)?n:null},L=(e,t)=>{let n=e[t];return typeof n==`boolean`?n:null},he=e=>Array.isArray(e)?e.filter(e=>typeof e==`string`):[],R=()=>r()?(e,t)=>a(e,t):null,z=e=>{if(!P(e))return;let t=L(e,`enabled`)??!1,n=F(e,`store`)?.toLowerCase()===`settings`?`settings`:`never`,r=F(e,`value`);return{enabled:t,store:n,...r?{value:r}:{}}},ge=e=>e===`remote`||e===`dynamic`?e:`local`,_e=e=>{if(!P(e))return null;let t=F(e,`id`);if(!t)return null;let n=L(e,`enabled`)??!0,r=ge(F(e,`type`)),i=F(e,`localHost`)||F(e,`local_host`)||void 0,a=I(e,`localPort`)??I(e,`local_port`)??void 0,o=F(e,`remoteHost`)||F(e,`remote_host`)||void 0,s=I(e,`remotePort`)??I(e,`remote_port`)??void 0;return{id:t,enabled:n,type:r,...i?{localHost:i}:{},...typeof a==`number`?{localPort:a}:{},...o?{remoteHost:o}:{},...typeof s==`number`?{remotePort:s}:{}}},ve=e=>{if(!P(e))return null;let t=F(e,`id`),n=F(e,`sshCommand`)||F(e,`ssh_command`);if(!t||!n)return null;let r=F(e,`nickname`),i=e.sshParsed,a=P(i)?{destination:F(i,`destination`)||``,args:he(i.args)}:void 0,o=P(e.remoteOpenchamber)?e.remoteOpenchamber:P(e.remote_openchamber)?e.remote_openchamber:{},s=P(e.localForward)?e.localForward:P(e.local_forward)?e.local_forward:{},c=P(e.auth)?e.auth:{},l=F(o,`mode`)?.toLowerCase()===`external`?`external`:`managed`,u=F(o,`installMethod`)||F(o,`install_method`),d=u===`npm`||u===`download_release`||u===`upload_bundle`?u:`bun`,f=F(s,`bindHost`)||F(s,`bind_host`)||`127.0.0.1`,p=f===`localhost`||f===`0.0.0.0`?f:`127.0.0.1`,m=(Array.isArray(e.portForwards)?e.portForwards:Array.isArray(e.port_forwards)?e.port_forwards:[]).map(e=>_e(e)).filter(e=>!!e),h=I(o,`preferredPort`)??I(o,`preferred_port`),g=I(s,`preferredLocalPort`)??I(s,`preferred_local_port`),_=z(c.sshPassword||c.ssh_password),v=z(c.openchamberPassword||c.openchamber_password);return{id:t,...r?{nickname:r}:{},sshCommand:n,...a&&a.destination?{sshParsed:a}:{},connectionTimeoutSec:I(e,`connectionTimeoutSec`)??I(e,`connection_timeout_sec`)??60,remoteOpenchamber:{mode:l,keepRunning:L(o,`keepRunning`)??L(o,`keep_running`)??!0,...h?{preferredPort:h}:{},installMethod:d,uploadBundleOverSsh:L(o,`uploadBundleOverSsh`)??L(o,`upload_bundle_over_ssh`)??!1},localForward:{...g?{preferredLocalPort:g}:{},bindHost:p},auth:{..._?{sshPassword:_}:{},...v?{openchamberPassword:v}:{}},portForwards:m}},ye=e=>{switch(e){case`config_resolved`:case`auth_check`:case`master_connecting`:case`remote_probe`:case`installing`:case`updating`:case`server_detecting`:case`server_starting`:case`forwarding`:case`ready`:case`degraded`:case`error`:return e;default:return`idle`}},be=e=>{if(!P(e))return null;let t=F(e,`id`);return t?{id:t,phase:ye(F(e,`phase`)),...F(e,`detail`)?{detail:F(e,`detail`)||void 0}:{},...F(e,`localUrl`)||F(e,`local_url`)?{localUrl:F(e,`localUrl`)||F(e,`local_url`)||void 0}:{},...typeof(I(e,`localPort`)??I(e,`local_port`))==`number`?{localPort:I(e,`localPort`)??I(e,`local_port`)??void 0}:{},...typeof(I(e,`remotePort`)??I(e,`remote_port`))==`number`?{remotePort:I(e,`remotePort`)??I(e,`remote_port`)??void 0}:{},startedByUs:L(e,`startedByUs`)??L(e,`started_by_us`)??!1,retryAttempt:I(e,`retryAttempt`)??I(e,`retry_attempt`)??0,requiresUserAction:L(e,`requiresUserAction`)??L(e,`requires_user_action`)??!1,updatedAtMs:I(e,`updatedAtMs`)??I(e,`updated_at_ms`)??Date.now()}:null},xe=e=>{if(!P(e))return null;let t=F(e,`host`),n=F(e,`source`),r=F(e,`sshCommand`)||F(e,`ssh_command`);return!t||!n||!r?null:{host:t,source:n,sshCommand:r,pattern:L(e,`pattern`)??!1}},Se=(e,t)=>({id:e,sshCommand:t,connectionTimeoutSec:60,remoteOpenchamber:{mode:`managed`,keepRunning:!0,installMethod:`bun`,uploadBundleOverSsh:!1},localForward:{bindHost:`127.0.0.1`},auth:{},portForwards:[]}),Ce=async()=>{let e=R();if(!e)return{instances:[]};let t=await e(`desktop_ssh_instances_get`);return P(t)?{instances:(Array.isArray(t.instances)?t.instances:Array.isArray(t.desktopSshInstances)?t.desktopSshInstances:[]).map(e=>ve(e)).filter(e=>!!e)}:{instances:[]}},we=async e=>{let t=R();t&&await t(`desktop_ssh_instances_set`,{config:{instances:e.instances}})},Te=async()=>{let e=R();if(!e)return[];let t=await e(`desktop_ssh_import_hosts`);return Array.isArray(t)?t.map(e=>xe(e)).filter(e=>!!e):[]},Ee=async e=>{let t=R();t&&await t(`desktop_ssh_connect`,{id:e})},De=async e=>{let t=R();t&&await t(`desktop_ssh_disconnect`,{id:e})},Oe=async e=>{let t=R();if(!t)return[];let n=await t(`desktop_ssh_status`,{...e?{id:e}:{}});return Array.isArray(n)?n.map(e=>be(e)).filter(e=>!!e):[]},ke=async(e,t)=>{let n=R();if(!n)return[];let r=await n(`desktop_ssh_logs`,{id:e,...typeof t==`number`?{limit:t}:{}});return Array.isArray(r)?r.filter(e=>typeof e==`string`):[]},Ae=async e=>{let t=R();t&&await t(`desktop_ssh_logs_clear`,{id:e})},je=async e=>{if(!r())return async()=>{};let t=window.__OPENCHAMBER_DESKTOP__?.listen;if(typeof t!=`function`)return async()=>{};let n=await t(`openchamber:ssh-instance-status`,t=>{let n=be(t?.payload);n&&e(n)});return async()=>{await n()}},Me=`/auth/passkey/authenticate/options`,Ne=`/auth/passkey/authenticate/verify`,Pe=`/auth/passkey/register/options`,Fe=`/auth/passkey/register/verify`,B=`/api/passkeys`,Ie=`/auth/passkey/status`,Le=`/api/auth/reset`,V={enabled:!1,hasPasskeys:!1,passkeyCount:0,rpID:null},H=async(e,t)=>i(e,{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:t===void 0?void 0:JSON.stringify(t)}),U=async(e,t)=>{try{let t=await e.json();if(t&&typeof t.error==`string`&&t.error.trim())return t.error}catch{}return t},Re=e=>e instanceof ne&&e.code===`ERROR_CEREMONY_ABORTED`,ze=()=>{ie.cancelCeremony()},W=()=>typeof window>`u`?{supported:!1,reason:`Passkeys are unavailable outside the browser.`}:window.isSecureContext?{supported:!0,reason:``}:{supported:!1,reason:`Passkeys require HTTPS or localhost.`},Be=async()=>{let e=W();if(!e.supported)throw Error(e.reason);let t=await H(Pe,{label:typeof navigator.userAgent==`string`&&navigator.userAgent.trim()?navigator.userAgent:`This device`});if(!t.ok)throw Error(await U(t,`Could not start passkey setup.`));let{requestId:n,optionsJSON:r}=await t.json(),i=await H(Fe,{requestId:n,response:await re({optionsJSON:r})});if(!i.ok)throw Error(await U(i,`Could not finish passkey setup.`));return i.json().catch(()=>null)},Ve=async(e,t={})=>{let n=W();if(!n.supported)throw Error(n.reason);let r=await H(Me);if(!r.ok)throw Error(await U(r,`Passkey sign-in is not available right now.`));let{requestId:i,optionsJSON:a}=await r.json(),o=await H(Ne,{requestId:i,response:await ae({optionsJSON:a}),trustDevice:e,issueClientToken:t.issueClientToken===!0,clientLabel:t.clientLabel,clientKind:t.clientKind,dedupeKey:t.dedupeKey});if(!o.ok)throw Error(await U(o,`Passkey sign-in failed.`));return o.json().catch(()=>null)},He=async()=>{let e=await i(Ie,{method:`GET`,credentials:`include`,headers:{Accept:`application/json`}});if(!e.ok)return V;let t=await e.json().catch(()=>null);return{enabled:t?.enabled===!0,hasPasskeys:t?.hasPasskeys===!0,passkeyCount:typeof t?.passkeyCount==`number`?t.passkeyCount:0,rpID:typeof t?.rpID==`string`&&t.rpID?t.rpID:null}},Ue=async()=>{let e=await i(B,{method:`GET`,credentials:`include`,headers:{Accept:`application/json`}});if(!e.ok)throw Error(await U(e,`Could not load passkeys.`));let t=await e.json().catch(()=>null);return Array.isArray(t?.passkeys)?t.passkeys:[]},We=async e=>{let t=await i(`${B}/${encodeURIComponent(e)}`,{method:`DELETE`,credentials:`include`,headers:{Accept:`application/json`}});if(!t.ok)throw Error(await U(t,`Could not remove passkey.`));return t.json().catch(()=>null)},Ge=async()=>{let e=await H(Le);if(!e.ok)throw Error(await U(e,`Could not clear saved authentication.`));return e.json().catch(()=>null)},G=e(p(),1),K=f();function q(e){let t=(0,A.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=D(`bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-none`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,K.jsx)(`div`,{"data-slot":`card`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function J(e){let t=(0,A.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=D(`@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,K.jsx)(`div`,{"data-slot":`card-header`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function Y(e){let t=(0,A.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=D(`leading-none font-semibold`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,K.jsx)(`div`,{"data-slot":`card-title`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function X(e){let t=(0,A.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=D(`px-6`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,K.jsx)(`div`,{"data-slot":`card-content`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}var Ke=class extends G.Component{constructor(e){super(e),this.state={hasError:!1}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){this.setState({error:e,errorInfo:t,copied:!1}),console.error(`Error caught by boundary:`,e,t)}handleReset=()=>{this.setState({hasError:!1,error:void 0,errorInfo:void 0})};handleCopy=async()=>{let{strings:e}=this.props,t=`${this.state.error?String(this.state.error):e.unknownError}${this.state.error?.stack?`\n\nStack:\n${this.state.error.stack}`:``}${this.state.errorInfo?.componentStack?`\n\n${e.componentStackLabel}${this.state.errorInfo.componentStack}`:``}`;(await y(t)).ok&&(this.setState({copied:!0}),window.setTimeout(()=>{this.setState(e=>e.copied?{copied:!1}:null)},1500))};render(){let{strings:e}=this.props;return this.state.hasError?this.props.fallback?this.props.fallback:(0,K.jsx)(`div`,{className:`p-4 flex items-center justify-center min-h-screen`,children:(0,K.jsxs)(q,{className:`w-full max-w-md`,children:[(0,K.jsx)(J,{className:`text-center`,children:(0,K.jsxs)(Y,{className:`flex items-center justify-center gap-2 text-destructive`,children:[(0,K.jsx)(O,{name:`error-warning`,className:`h-5 w-5`}),e.title]})}),(0,K.jsxs)(X,{className:`space-y-4`,children:[(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground text-center`,children:e.description}),this.state.error&&(0,K.jsxs)(`details`,{className:`text-xs font-mono bg-muted p-3 rounded`,children:[(0,K.jsx)(`summary`,{className:`cursor-pointer hover:bg-interactive-hover/80`,children:e.detailsSummary}),(0,K.jsxs)(`pre`,{className:`mt-2 max-h-48 overflow-auto`,children:[this.state.error.toString(),this.state.errorInfo?.componentStack?`\n\n${e.componentStackLabel}${this.state.errorInfo.componentStack}`:``]})]}),(0,K.jsxs)(`div`,{className:`flex gap-2`,children:[(0,K.jsxs)(k,{onClick:this.handleReset,variant:`outline`,className:`flex-1`,children:[(0,K.jsx)(O,{name:`restart`,className:`h-4 w-4 mr-2`}),e.tryAgain]}),(0,K.jsx)(k,{onClick:this.handleCopy,variant:`outline`,className:`flex-1`,children:this.state.copied?e.copied:e.copy})]})]})]})}):this.props.children}},qe=e=>{let t=(0,A.c)(29),{children:n,fallback:r}=e,{t:i}=b(),a;t[0]===i?a=t[1]:(a=i(`errorBoundary.state.unknownError`),t[0]=i,t[1]=a);let o;t[2]===i?o=t[3]:(o=i(`errorBoundary.title`),t[2]=i,t[3]=o);let s;t[4]===i?s=t[5]:(s=i(`errorBoundary.description`),t[4]=i,t[5]=s);let c;t[6]===i?c=t[7]:(c=i(`errorBoundary.actions.errorDetails`),t[6]=i,t[7]=c);let l;t[8]===i?l=t[9]:(l=i(`errorBoundary.state.componentStackLabel`),t[8]=i,t[9]=l);let u;t[10]===i?u=t[11]:(u=i(`errorBoundary.actions.tryAgain`),t[10]=i,t[11]=u);let d;t[12]===i?d=t[13]:(d=i(`errorBoundary.actions.copied`),t[12]=i,t[13]=d);let f;t[14]===i?f=t[15]:(f=i(`errorBoundary.actions.copy`),t[14]=i,t[15]=f);let p;t[16]!==a||t[17]!==o||t[18]!==s||t[19]!==c||t[20]!==l||t[21]!==u||t[22]!==d||t[23]!==f?(p={unknownError:a,title:o,description:s,detailsSummary:c,componentStackLabel:l,tryAgain:u,copied:d,copy:f},t[16]=a,t[17]=o,t[18]=s,t[19]=c,t[20]=l,t[21]=u,t[22]=d,t[23]=f,t[24]=p):p=t[24];let m=p,h;return t[25]!==n||t[26]!==r||t[27]!==m?(h=(0,K.jsx)(Ke,{fallback:r,strings:m,children:n}),t[25]=n,t[26]=r,t[27]=m,t[28]=h):h=t[28],h},Z=e=>E(T.getState().dictionary,e),Je=e=>typeof e!=`number`||!Number.isFinite(e)?null:Math.max(0,Math.min(100,Math.round(e))),Ye=e=>typeof e!=`number`||!Number.isFinite(e)?`-`:`${Math.round(e)}%`,Xe=(e,t)=>e??Ye(t),Ze=(e,t,n=`auto`)=>{if(!e)return t??``;try{let r=new Date(e);if(!Number.isFinite(r.getTime()))return t??``;let i=new Date;return r.toDateString()===i.toDateString()?se(r,n,{fallback:t??``}):oe(r,n,{month:`short`,day:`numeric`,weekday:`short`,hour:`numeric`,minute:`2-digit`})}catch{return t??``}},Qe=e=>e===null?`safe`:e>=80?`critical`:e>=50?`warn`:`safe`,$e=e=>e===`5h`?Z(`quota.window.5h`):e===`7d`?Z(`quota.window.7d`):e===`7d-sonnet`?Z(`quota.window.7dSonnet`):e===`7d-opus`?Z(`quota.window.7dOpus`):e===`weekly`?Z(`quota.window.weekly`):e===`daily`?Z(`quota.window.daily`):e===`monthly`?Z(`quota.window.monthly`):e===`credits`?Z(`quota.window.credits`):e===`credits_balance`?Z(`quota.window.creditsBalance`):e===`billing_cycle`?Z(`quota.window.billingCycle`):e===`auto`?Z(`quota.window.auto`):e===`api`?Z(`quota.window.api`):e===`plan_limit`?Z(`quota.window.planLimit`):e===`on_demand`?Z(`quota.window.onDemand`):e===`session`?Z(`quota.window.session`):e===`premium`?Z(`quota.window.premium`):e===`chat`?Z(`quota.window.chat`):e===`completions`?Z(`quota.window.completions`):e===`premium_interactions`?Z(`quota.window.premiumInteractions`):e,et=e=>{let t=e.toLowerCase().trim();if(t===`5h`)return 18e3;if(t===`7d`||t===`weekly`||t===`7d-sonnet`||t===`7d-opus`)return 604800;if(t===`monthly`)return 2592e3;if(t===`24h`||t===`daily`)return 86400;if(t===`1h`)return 3600;let n=t.match(/^(\d+)h$/);if(n)return parseInt(n[1],10)*3600;let r=t.match(/^(\d+)d$/);return r?parseInt(r[1],10)*86400:null},tt=(e,t,n,r)=>{let i=n;if(i===null&&r&&(i=et(r)),e===null||t===null||i===null||i<=0)return null;let a=Math.max(0,(t-Date.now())/1e3),o=Math.max(0,Math.min(i,i-a)),s=Math.max(0,Math.min(1,o/i)),c=e/100,l=e>=100&&a>0,u;u=s>.01?Math.min(999,c/s*100):e;let d;d=l?`exhausted`:c<=s?`on-track`:u<=130?`slightly-fast`:`too-fast`;let f=i>=432e3,p=f?86400:3600,m=f?`d`:`h`,h=i/p,g=e/Math.max(o/p,h*.01),_=Number.isFinite(g)?`${Math.min(999.9,Math.max(0,g)).toFixed(1)}%/${m}`:`-`,v=u>100?`+${Math.round(u)}%`:`${Math.round(u)}%`,y=null,b=i/86400;return b>=7&&(y=100/b),{elapsedRatio:s,usageRatio:c,predictedFinalPercent:u,remainingSeconds:a,isExhausted:l,elapsedSeconds:o,totalSeconds:i,status:d,paceRateText:_,predictText:v,dailyAllocationPercent:y}},nt=e=>{switch(e){case`exhausted`:case`too-fast`:return`var(--status-error)`;case`slightly-fast`:return`var(--status-warning)`;case`on-track`:return`var(--status-success)`}},rt=e=>{let t=Math.floor(Math.max(0,Math.floor(e))/60),n=Math.floor(t/60),r=Math.floor(n/24),i=n%24,a=t%60;return r>0?`${r}d ${i}h`:n>0?`${n}h`:t===0?`<1m`:`${a}m`},it=e=>Math.min(100,Math.max(0,e*100)),at=[`standalone`,`minimal-ui`,`fullscreen`,`window-controls-overlay`],ot=`openchamber.pwaRecentSessions`,st=e=>typeof window>`u`||typeof window.matchMedia!=`function`?!1:window.matchMedia(`(display-mode: ${e})`).matches,ct=()=>typeof window>`u`?`browser`:typeof document<`u`&&document.referrer.startsWith(`android-app://`)?`twa`:window.navigator.standalone?`standalone`:at.find(e=>st(e))??`browser`,lt=864e5,Q=5,ut=864e5,$=e=>e.time?.updated??e.time?.created??0,dt=({sessions:e,currentSessionId:t,cutoffDays:n,keepRecent:r=Q,now:i=Date.now()})=>{if(!Array.isArray(e)||n<=0)return[];let a=i-n*lt,o=[...e].sort((e,t)=>$(t)-$(e)),s=new Set(o.slice(0,r).map(e=>e.id));return o.filter(e=>{if(!e?.id||s.has(e.id)||e.id===t||e.share)return!1;let n=$(e);return n?n<a:!1}).map(e=>e.id)},ft=e=>{let t=typeof e==`object`?e:void 0,r=t?.autoRun!==!1,i=typeof e==`boolean`?e:t?.enabled??!0,a=S(e=>e.currentSessionId),o=S(e=>e.isLoading),s=w(e=>e.activeSessions),c=w(e=>e.hasLoadedFullCatalog),l=n(e=>e.autoDeleteEnabled),u=n(e=>e.autoDeleteAfterDays),d=n(e=>e.sessionRetentionAction),f=n(e=>e.autoDeleteLastRunAt),p=n(e=>e.setAutoDeleteLastRunAt),[h,g]=G.useState(!1),_=G.useRef(!1);G.useEffect(()=>{if(!i||!r||!l||u<=0)return;let e=window.setTimeout(()=>{C(x())},8e3);return()=>window.clearTimeout(e)},[u,l,r,i]);let v=G.useMemo(()=>u<=0?[]:dt({sessions:s,currentSessionId:a,cutoffDays:u}),[u,a,s]),y=G.useCallback(async({force:e=!1}={})=>{if(_.current)return{completedIds:[],failedIds:[],action:d,skippedReason:`running`};if((!l||u<=0)&&!e)return{completedIds:[],failedIds:[],action:d,skippedReason:`disabled`};if(o)return{completedIds:[],failedIds:[],action:d,skippedReason:`loading`};let t=Date.now();if(!e&&f&&t-f<ut)return{completedIds:[],failedIds:[],action:d,skippedReason:`cooldown`};let{activeSessions:n}=await C(x());if(n.length===0)return{completedIds:[],failedIds:[],action:d,skippedReason:`no-candidates`};let r=dt({sessions:n,currentSessionId:a,cutoffDays:u,now:t});if(r.length===0)return p(t),{completedIds:[],failedIds:[],action:d,skippedReason:`no-candidates`};_.current=!0,g(!0);try{let e=new Map(n.map(e=>[e.id,e])),t=[],i=[];for(let n of r){let r=e.get(n),a=r?te(r):null;if(!a){i.push(n);continue}try{d===`archive`?await m.updateSession(n,{time:{archived:Date.now()}},a):await m.deleteSession(n,a),t.push(n)}catch{i.push(n)}}return d===`archive`?w.getState().archiveSessions(t):w.getState().removeSessions(t),{completedIds:t,failedIds:i,action:d}}finally{_.current=!1,g(!1),p(Date.now())}},[u,l,f,a,o,d,p]);return G.useEffect(()=>{i&&r&&(!l||u<=0||o||!c||s.length===0||f&&Date.now()-f<ut||y())},[u,l,f,r,i,c,s.length,o,y]),{candidates:v,isRunning:h,runCleanup:y,keepRecentCount:Q,action:d}};export{De as A,pe as B,W as C,We as D,Ge as E,Ae as F,Oe as I,je as L,Ce as M,we as N,Se as O,ke as P,de as R,Ue as S,Be as T,Y as _,tt as a,V as b,Xe as c,nt as d,Qe as f,J as g,X as h,it as i,Te as j,Ee as k,rt as l,q as m,ot as n,Je as o,qe as p,ct as r,Ze as s,ft as t,$e as u,Ve as v,Re as w,He as x,ze as y,fe as z};
|
package/dist/assets/{useWorkerHighlightedLines-Cq3vOe49.js → useWorkerHighlightedLines-C74ZKDtw.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{_ as t}from"./useUIStore-WQV8IuFw.js";import{$t as n,kn as r,xn as i}from"./persistence-CFtygeYy.js";import{nt as a,rt as o}from"./vendor-base-ui-CnHfUmDN.js";import{a as s,n as c}from"./vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js";import{n as l}from"./vendor-react-DLPElpoQ.js";import{t as u}from"./i18n-BAqcSln8.js";import{di as d}from"./ui-DqzK0-Jk.js";import{t as f}from"./utils-Cwlw2GM0.js";import{n as p}from"./Icon-Vc-aDche.js";import{t as m}from"./button-rDAIP5kY.js";import{i as h,n as g,t as _}from"./tooltip-CbxKYhKv.js";import{n as v}from"./useThemeSystem-DMzWVJaW.js";import{c as y,n as b,o as x,r as S,s as C}from"./markdownTheme-CNJf24L-.js";import{i as w}from"./appThemeRegistry-BjwRZCAT.js";import{d as T,n as E,t as D,u as ee}from"./markdown-worker-DmBYud1m.js";import{t as te}from"./vendor-tanstack-react-virtual-tlDgH6PG.js";var O=e(o(),1),k=l(),A=a(),ne=`w-[min(30rem,calc(100cqw-1rem))] min-w-[280px] max-w-full overflow-hidden rounded-xl shadow-[inset_0_1px_0_0_rgba(255,255,255,0.8),inset_0_0_0_1px_rgba(0,0,0,0.04),0_0_0_1px_rgba(0,0,0,0.10),0_1px_2px_-0.5px_rgba(0,0,0,0.08),0_4px_8px_-2px_rgba(0,0,0,0.08),0_12px_20px_-4px_rgba(0,0,0,0.08)] dark:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.12),inset_0_0_0_1px_rgba(255,255,255,0.08),0_0_0_1px_rgba(0,0,0,0.36),0_1px_1px_-0.5px_rgba(0,0,0,0.22),0_3px_3px_-1.5px_rgba(0,0,0,0.20),0_6px_6px_-3px_rgba(0,0,0,0.16)]`,j={maxWidth:`min(28rem, calc(100cqw - 4ch))`,backgroundColor:`var(--surface-elevated)`,color:`var(--surface-elevated-foreground)`},M=`flex items-center justify-between gap-3 border-b border-[var(--surface-subtle)] px-3 py-2.5`,N=`text-xs font-medium leading-4 text-foreground md:text-[0.8125rem] md:leading-5`,re=`text-xs tabular-nums leading-4 text-muted-foreground md:text-[0.8125rem] md:leading-5`,P=`m-0 list-none divide-y divide-[var(--surface-subtle)] p-0`,F=`${P} max-h-[min(22rem,50vh)] overflow-y-auto`,ie=`${P} w-full`,ae={className:`p-0 rounded-none`,maxHeightClass:`max-h-[46vh]`,disableHorizontal:!0},I=`px-2.5 py-1.5 text-xs leading-4 md:py-2 md:text-[0.8125rem] md:leading-5`,oe=`flex min-w-0 items-center gap-1 text-xs leading-4 text-muted-foreground md:gap-1.5 md:text-[0.8125rem] md:leading-5`,se=`min-w-0 truncate text-xs leading-4 text-foreground md:text-[0.8125rem] md:leading-5`,ce=`inline-flex shrink-0 items-center gap-1 text-xs leading-4 tabular-nums text-muted-foreground md:text-[0.8125rem] md:leading-5`,le=`h-3 w-3 shrink-0 md:h-3.5 md:w-3.5`,ue={in_progress:`text-foreground`,pending:`text-foreground`,completed:`text-muted-foreground line-through`,cancelled:`text-muted-foreground line-through`},L={in_progress:`chat.statusRow.todo.status.inProgress`,pending:`chat.statusRow.todo.status.pending`,completed:`chat.statusRow.todo.status.completed`,cancelled:`chat.statusRow.todo.status.cancelled`},R=e=>{let t=(0,k.c)(26),{todo:n,isActive:r,activeRef:i}=e,{t:a}=u(),o=z.has(n.status)?n.status:`pending`,s=L[o],c;t[0]!==a||t[1]!==s?(c=a(s),t[0]=a,t[1]=s,t[2]=c):c=t[2];let l=c,d;t[3]===o?d=t[4]:(d=o===`in_progress`?(0,A.jsx)(p,{name:`record-circle`,className:`h-3.5 w-3.5 text-[var(--status-info)]`,"aria-hidden":`true`}):o===`completed`?(0,A.jsx)(p,{name:`checkbox-circle`,className:`h-3.5 w-3.5 text-[var(--status-success)]`,"aria-hidden":`true`}):(0,A.jsx)(p,{name:`time`,className:`h-3.5 w-3.5 text-muted-foreground`,"aria-hidden":`true`}),t[3]=o,t[4]=d);let m=d,v=r?`step`:void 0,y=r&&`bg-[var(--surface-muted)] before:absolute before:inset-y-2 before:left-0 before:w-0.5 before:rounded-full before:bg-[var(--status-info)]`,b;t[5]===y?b=t[6]:(b=f(`group relative grid min-w-0 grid-cols-[1rem_minmax(0,1fr)] items-start gap-2.5`,I,y),t[5]=y,t[6]=b);let x;t[7]!==m||t[8]!==l?(x=(0,A.jsx)(h,{asChild:!0,children:(0,A.jsx)(`span`,{className:`flex size-4 items-center justify-center`,"aria-label":l,children:m})}),t[7]=m,t[8]=l,t[9]=x):x=t[9];let S;t[10]===l?S=t[11]:(S=(0,A.jsx)(g,{side:`left`,sideOffset:6,children:l}),t[10]=l,t[11]=S);let C;t[12]!==x||t[13]!==S?(C=(0,A.jsxs)(_,{children:[x,S]}),t[12]=x,t[13]=S,t[14]=C):C=t[14];let w=ue[o],T;t[15]===w?T=t[16]:(T=f(`block whitespace-normal break-words`,w),t[15]=w,t[16]=T);let E;t[17]!==T||t[18]!==n.content?(E=(0,A.jsx)(`span`,{className:`min-w-0 flex-1`,children:(0,A.jsx)(`span`,{className:T,children:n.content})}),t[17]=T,t[18]=n.content,t[19]=E):E=t[19];let D;return t[20]!==i||t[21]!==E||t[22]!==v||t[23]!==b||t[24]!==C?(D=(0,A.jsxs)(`li`,{ref:i,"aria-current":v,className:b,children:[C,E]}),t[20]=i,t[21]=E,t[22]=v,t[23]=b,t[24]=C,t[25]=D):D=t[25],D},z=new Set([`in_progress`,`pending`,`completed`,`cancelled`]),B=`image/png`,V=s(`OpenChamberMedia`),H=e=>{let t=e.toLowerCase().split(`;`)[0]?.trim()||B;if(t===`image/jpeg`||t===`image/jpg`)return`jpg`;if(t===`image/webp`)return`webp`;if(t===`image/gif`)return`gif`;if(t===`image/svg+xml`)return`svg`;if(t===`image/png`)return`png`;let n=t.split(`/`)[1];return n&&/^[a-z0-9.+-]+$/i.test(n)?n:`png`},U=(e,t)=>{let n=`image.${H(t)}`,r=(((e||``).trim()||n).split(/[\\/]/).pop()||n).replace(/[^\w.\- ()[\]]+/g,`_`).replace(/^\.+/,``);return r?/\.[a-z0-9]{1,8}$/i.test(r)?r:`${r}.${H(t)}`:n},W=e=>new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{if(typeof r.result==`string`){t(r.result);return}n(Error(`Failed to encode image`))},r.onerror=()=>n(r.error??Error(`Failed to encode image`)),r.readAsDataURL(e)}),de=async e=>{let t=await W(e),n=t.indexOf(`,`);return n>=0?t.slice(n+1):t},fe=(e,t)=>{let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),window.setTimeout(()=>URL.revokeObjectURL(n),1e3)},G=async(e,t)=>{let n=await fetch(e,{signal:t,cache:`no-store`});if(!n.ok)throw Error(`Image fetch failed (${n.status})`);return n.blob()},pe=async(e,t=B)=>{if(!e.naturalWidth||!e.naturalHeight)return null;let n=e.currentSrc||e.src;if(n&&(/^(?:blob:|data:|openchamber-asset:)/i.test(n)||/^https?:/i.test(n)||/^\/api(?=\/|[?#]|$)/.test(n)))try{let e=await G(n);if(e.size>0)return e}catch{}try{let n=document.createElement(`canvas`);n.width=e.naturalWidth,n.height=e.naturalHeight;let r=n.getContext(`2d`);if(!r)return null;r.drawImage(e,0,0);let i=t.startsWith(`image/`)?t:B,a=await new Promise(e=>{n.toBlob(t=>e(t),i===`image/jpg`?`image/jpeg`:i)});return a&&a.size>0?a:null}catch{return null}},me=async(e,t)=>{let n=``;try{return n=await S(e,t??new AbortController().signal),await G(n,t)}finally{n&&C(n)}},he=async(e,t)=>{let n=e.effectiveDirectory??``,i=null;e.prefetchedBlob&&e.prefetchedBlob.size>0&&(i=e.prefetchedBlob);let a=e.displayUrl?.trim();if(!i&&a)try{i=await G(a,t)}catch{i=null}if(!i){let a=e.sourceUrl.trim();if(!a)throw Error(`Image source is empty`);if(/^(?:data|blob):/i.test(a)||/^https?:/i.test(a)||/^\/api(?=\/|[?#]|$)/.test(a))i=await G(a,t);else{let e=y(a,n);if(x(e))try{i=await me(e.path,t)}catch{let n=await r(`/api/fs/raw`,{method:`GET`,cache:`no-store`,query:{path:e.path},signal:t});if(!n.ok)throw Error(`Image source request failed with status ${n.status}`);i=await n.blob()}else i=await G(e.source,t)}}if(!i||i.size<=0)throw Error(`Image is empty`);let o=(e.mimeType||(i.type&&i.type.startsWith(`image/`)?i.type:``)||B).split(`;`)[0].trim()||B;return{blob:i,filename:U(e.filename,o),mimeType:o}},ge=()=>!d()||c===void 0?!1:c.isPluginAvailable(`OpenChamberMedia`),_e=async(e,t)=>{let{blob:r,filename:a,mimeType:o}=await he(e,t);if(ge()){let e=await de(r);return await V.saveImage({dataBase64:e,mimeType:o,filename:a}),`saved`}if(n()){let e=i()?.vscode;if(e?.saveImage){let t=await W(r);return await e.saveImage({fileName:a,dataUrl:t}),`saved`}}return fe(r,a),`downloaded`},ve=e=>e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`),ye=e=>e?Object.entries(e).map(([e,t])=>t==null?``:`${e.startsWith(`--`)?e:e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}:${typeof t==`number`?`${t}px`:t};`).join(``):``,K=(e,t,n)=>{let r=e.querySelector(`pre`);r&&(r.style.margin=`0`,r.style.background=`transparent`,r.style.whiteSpace=t?`pre-wrap`:`pre`,t&&(r.style.wordBreak=`break-word`,r.style.overflowWrap=`break-word`));let i=e.querySelector(`code`);if(i){let e=ye(n);e&&i.setAttribute(`style`,`${i.getAttribute(`style`)??``}${e}`)}},be=e=>`<pre><code>${ve(e)}</code></pre>`,xe=e=>{let t=(0,k.c)(21),{code:n,language:r,className:i,style:a,codeStyle:o,wrap:s}=e,c=s!==void 0&&s,{currentTheme:l}=v(),u=O.useRef(null),d;t[0]===l?d=t[1]:(d=b(l),t[0]=l,t[1]=d);let p=d,m,h;t[2]!==n||t[3]!==o||t[4]!==c?(m=()=>{let e=u.current;e&&(e.innerHTML=be(n),K(e,c,o))},h=[n,c,o],t[2]=n,t[3]=o,t[4]=c,t[5]=m,t[6]=h):(m=t[5],h=t[6]),O.useLayoutEffect(m,h);let g,_;t[7]!==n||t[8]!==o||t[9]!==r||t[10]!==c?(g=()=>{let e=u.current;if(!e)return;let t=!0,i=new AbortController;return D(n,(r||`text`).toLowerCase(),{signal:i.signal,priority:`visible`}).then(n=>{!t||!e||!n||(e.innerHTML=n,K(e,c,o))}),()=>{t=!1,i.abort()}},_=[n,r,c,o],t[7]=n,t[8]=o,t[9]=r,t[10]=c,t[11]=g,t[12]=_):(g=t[11],_=t[12]),O.useEffect(g,_);let y;t[13]===i?y=t[14]:(y=f(`typography-code`,i),t[13]=i,t[14]=y);let x=p,S;t[15]!==a||t[16]!==x?(S={...x,...a},t[15]=a,t[16]=x,t[17]=S):S=t[17];let C;return t[18]!==y||t[19]!==S?(C=(0,A.jsx)(`div`,{ref:u,className:y,style:S}),t[18]=y,t[19]=S,t[20]=C):C=t[20],C},Se=e=>{let t=e.replace(/^<file>\s*\n?/,``).replace(/\n?<\/file>\s*$/,``);return t=t.replace(/^\s*\d{5}\|\s?/gm,``),t.trim()},Ce=(e,t=``)=>{if(typeof e==`string`)return e;if(e==null)return t;if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`)return String(e);try{return JSON.stringify(e)}catch{return t}},we=e=>e?e.includes(`<diagnostics`)||e.includes(`<file_diagnostics>`)||e.includes(`LSP errors detected`)||e.includes(`This file has errors`):!1,Te=e=>e?e.replace(/\n{0,2}LSP errors detected[\s\S]*?<diagnostics[^>]*>[\s\S]*?<\/diagnostics>/g,``).replace(/\n{0,2}This file has errors[\s\S]*?<\/file_diagnostics>/g,``).replace(/<diagnostics[^>]*>[\s\S]*?<\/diagnostics>/g,``).replace(/<file_diagnostics>[\s\S]*?<\/file_diagnostics>/g,``).trim():``,Ee=(e,t)=>!e||typeof e!=`object`?String(e):T(e,t||``),q=e=>{if(typeof e==`string`){let t=e.trim();return t.length>0?t:void 0}if(e&&typeof e==`object`){let t=e.patch;if(typeof t==`string`){let e=t.trim();return e.length>0?e:void 0}}},De=e=>{if(!e||typeof e!=`object`)return;let t=q(e.patch)??q(e.diff);if(t)return t;let n=Array.isArray(e.files)?e.files:[];for(let e of n){if(!e||typeof e!=`object`)continue;let t=q(e.patch)??q(e.diff);if(t)return t}},Oe=e=>{if(!e||typeof e!=`string`)return{data:null,isJson:!1};let t=e.trim();if(!t.startsWith(`{`)&&!t.startsWith(`[`)||!t.endsWith(`}`)&&!t.endsWith(`]`)||t.length<2)return{data:null,isJson:!1};try{let e=JSON.parse(t);return typeof e==`object`&&e?{data:e,isJson:!0}:{data:null,isJson:!1}}catch{return{data:null,isJson:!1}}},ke=(e,t,n)=>{let r=Se(e);if((t===`edit`||t===`multiedit`||t===`write`||t===`apply_patch`)&&we(r)&&(r=Te(r)),(t===`edit`||t===`multiedit`||t===`apply_patch`)&&r.trim().length===0){let e=De(n);if(e)return e}return r},Ae=e=>{let t=e.match(/<type>(file|directory)<\/type>/i)?.[1]?.toLowerCase()??`unknown`,n=(e.match(/<content>([\s\S]*?)<\/content>/i)?.[1]??e).replace(/\r\n/g,`
|
|
1
|
+
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{_ as t}from"./useUIStore-WQV8IuFw.js";import{$t as n,kn as r,xn as i}from"./persistence-CFtygeYy.js";import{nt as a,rt as o}from"./vendor-base-ui-CnHfUmDN.js";import{a as s,n as c}from"./vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js";import{n as l}from"./vendor-react-DLPElpoQ.js";import{t as u}from"./i18n-BAqcSln8.js";import{di as d}from"./ui-D5j3JxkE.js";import{t as f}from"./utils-Cwlw2GM0.js";import{n as p}from"./Icon-Vc-aDche.js";import{t as m}from"./button-rDAIP5kY.js";import{i as h,n as g,t as _}from"./tooltip-CbxKYhKv.js";import{n as v}from"./useThemeSystem-DMzWVJaW.js";import{c as y,n as b,o as x,r as S,s as C}from"./markdownTheme-CNJf24L-.js";import{i as w}from"./appThemeRegistry-Chv6_pxq.js";import{d as T,n as E,t as D,u as ee}from"./markdown-worker-DmBYud1m.js";import{t as te}from"./vendor-tanstack-react-virtual-tlDgH6PG.js";var O=e(o(),1),k=l(),A=a(),ne=`w-[min(30rem,calc(100cqw-1rem))] min-w-[280px] max-w-full overflow-hidden rounded-xl shadow-[inset_0_1px_0_0_rgba(255,255,255,0.8),inset_0_0_0_1px_rgba(0,0,0,0.04),0_0_0_1px_rgba(0,0,0,0.10),0_1px_2px_-0.5px_rgba(0,0,0,0.08),0_4px_8px_-2px_rgba(0,0,0,0.08),0_12px_20px_-4px_rgba(0,0,0,0.08)] dark:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.12),inset_0_0_0_1px_rgba(255,255,255,0.08),0_0_0_1px_rgba(0,0,0,0.36),0_1px_1px_-0.5px_rgba(0,0,0,0.22),0_3px_3px_-1.5px_rgba(0,0,0,0.20),0_6px_6px_-3px_rgba(0,0,0,0.16)]`,j={maxWidth:`min(28rem, calc(100cqw - 4ch))`,backgroundColor:`var(--surface-elevated)`,color:`var(--surface-elevated-foreground)`},M=`flex items-center justify-between gap-3 border-b border-[var(--surface-subtle)] px-3 py-2.5`,N=`text-xs font-medium leading-4 text-foreground md:text-[0.8125rem] md:leading-5`,re=`text-xs tabular-nums leading-4 text-muted-foreground md:text-[0.8125rem] md:leading-5`,P=`m-0 list-none divide-y divide-[var(--surface-subtle)] p-0`,F=`${P} max-h-[min(22rem,50vh)] overflow-y-auto`,ie=`${P} w-full`,ae={className:`p-0 rounded-none`,maxHeightClass:`max-h-[46vh]`,disableHorizontal:!0},I=`px-2.5 py-1.5 text-xs leading-4 md:py-2 md:text-[0.8125rem] md:leading-5`,oe=`flex min-w-0 items-center gap-1 text-xs leading-4 text-muted-foreground md:gap-1.5 md:text-[0.8125rem] md:leading-5`,se=`min-w-0 truncate text-xs leading-4 text-foreground md:text-[0.8125rem] md:leading-5`,ce=`inline-flex shrink-0 items-center gap-1 text-xs leading-4 tabular-nums text-muted-foreground md:text-[0.8125rem] md:leading-5`,le=`h-3 w-3 shrink-0 md:h-3.5 md:w-3.5`,ue={in_progress:`text-foreground`,pending:`text-foreground`,completed:`text-muted-foreground line-through`,cancelled:`text-muted-foreground line-through`},L={in_progress:`chat.statusRow.todo.status.inProgress`,pending:`chat.statusRow.todo.status.pending`,completed:`chat.statusRow.todo.status.completed`,cancelled:`chat.statusRow.todo.status.cancelled`},R=e=>{let t=(0,k.c)(26),{todo:n,isActive:r,activeRef:i}=e,{t:a}=u(),o=z.has(n.status)?n.status:`pending`,s=L[o],c;t[0]!==a||t[1]!==s?(c=a(s),t[0]=a,t[1]=s,t[2]=c):c=t[2];let l=c,d;t[3]===o?d=t[4]:(d=o===`in_progress`?(0,A.jsx)(p,{name:`record-circle`,className:`h-3.5 w-3.5 text-[var(--status-info)]`,"aria-hidden":`true`}):o===`completed`?(0,A.jsx)(p,{name:`checkbox-circle`,className:`h-3.5 w-3.5 text-[var(--status-success)]`,"aria-hidden":`true`}):(0,A.jsx)(p,{name:`time`,className:`h-3.5 w-3.5 text-muted-foreground`,"aria-hidden":`true`}),t[3]=o,t[4]=d);let m=d,v=r?`step`:void 0,y=r&&`bg-[var(--surface-muted)] before:absolute before:inset-y-2 before:left-0 before:w-0.5 before:rounded-full before:bg-[var(--status-info)]`,b;t[5]===y?b=t[6]:(b=f(`group relative grid min-w-0 grid-cols-[1rem_minmax(0,1fr)] items-start gap-2.5`,I,y),t[5]=y,t[6]=b);let x;t[7]!==m||t[8]!==l?(x=(0,A.jsx)(h,{asChild:!0,children:(0,A.jsx)(`span`,{className:`flex size-4 items-center justify-center`,"aria-label":l,children:m})}),t[7]=m,t[8]=l,t[9]=x):x=t[9];let S;t[10]===l?S=t[11]:(S=(0,A.jsx)(g,{side:`left`,sideOffset:6,children:l}),t[10]=l,t[11]=S);let C;t[12]!==x||t[13]!==S?(C=(0,A.jsxs)(_,{children:[x,S]}),t[12]=x,t[13]=S,t[14]=C):C=t[14];let w=ue[o],T;t[15]===w?T=t[16]:(T=f(`block whitespace-normal break-words`,w),t[15]=w,t[16]=T);let E;t[17]!==T||t[18]!==n.content?(E=(0,A.jsx)(`span`,{className:`min-w-0 flex-1`,children:(0,A.jsx)(`span`,{className:T,children:n.content})}),t[17]=T,t[18]=n.content,t[19]=E):E=t[19];let D;return t[20]!==i||t[21]!==E||t[22]!==v||t[23]!==b||t[24]!==C?(D=(0,A.jsxs)(`li`,{ref:i,"aria-current":v,className:b,children:[C,E]}),t[20]=i,t[21]=E,t[22]=v,t[23]=b,t[24]=C,t[25]=D):D=t[25],D},z=new Set([`in_progress`,`pending`,`completed`,`cancelled`]),B=`image/png`,V=s(`OpenChamberMedia`),H=e=>{let t=e.toLowerCase().split(`;`)[0]?.trim()||B;if(t===`image/jpeg`||t===`image/jpg`)return`jpg`;if(t===`image/webp`)return`webp`;if(t===`image/gif`)return`gif`;if(t===`image/svg+xml`)return`svg`;if(t===`image/png`)return`png`;let n=t.split(`/`)[1];return n&&/^[a-z0-9.+-]+$/i.test(n)?n:`png`},U=(e,t)=>{let n=`image.${H(t)}`,r=(((e||``).trim()||n).split(/[\\/]/).pop()||n).replace(/[^\w.\- ()[\]]+/g,`_`).replace(/^\.+/,``);return r?/\.[a-z0-9]{1,8}$/i.test(r)?r:`${r}.${H(t)}`:n},W=e=>new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{if(typeof r.result==`string`){t(r.result);return}n(Error(`Failed to encode image`))},r.onerror=()=>n(r.error??Error(`Failed to encode image`)),r.readAsDataURL(e)}),de=async e=>{let t=await W(e),n=t.indexOf(`,`);return n>=0?t.slice(n+1):t},fe=(e,t)=>{let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),window.setTimeout(()=>URL.revokeObjectURL(n),1e3)},G=async(e,t)=>{let n=await fetch(e,{signal:t,cache:`no-store`});if(!n.ok)throw Error(`Image fetch failed (${n.status})`);return n.blob()},pe=async(e,t=B)=>{if(!e.naturalWidth||!e.naturalHeight)return null;let n=e.currentSrc||e.src;if(n&&(/^(?:blob:|data:|openchamber-asset:)/i.test(n)||/^https?:/i.test(n)||/^\/api(?=\/|[?#]|$)/.test(n)))try{let e=await G(n);if(e.size>0)return e}catch{}try{let n=document.createElement(`canvas`);n.width=e.naturalWidth,n.height=e.naturalHeight;let r=n.getContext(`2d`);if(!r)return null;r.drawImage(e,0,0);let i=t.startsWith(`image/`)?t:B,a=await new Promise(e=>{n.toBlob(t=>e(t),i===`image/jpg`?`image/jpeg`:i)});return a&&a.size>0?a:null}catch{return null}},me=async(e,t)=>{let n=``;try{return n=await S(e,t??new AbortController().signal),await G(n,t)}finally{n&&C(n)}},he=async(e,t)=>{let n=e.effectiveDirectory??``,i=null;e.prefetchedBlob&&e.prefetchedBlob.size>0&&(i=e.prefetchedBlob);let a=e.displayUrl?.trim();if(!i&&a)try{i=await G(a,t)}catch{i=null}if(!i){let a=e.sourceUrl.trim();if(!a)throw Error(`Image source is empty`);if(/^(?:data|blob):/i.test(a)||/^https?:/i.test(a)||/^\/api(?=\/|[?#]|$)/.test(a))i=await G(a,t);else{let e=y(a,n);if(x(e))try{i=await me(e.path,t)}catch{let n=await r(`/api/fs/raw`,{method:`GET`,cache:`no-store`,query:{path:e.path},signal:t});if(!n.ok)throw Error(`Image source request failed with status ${n.status}`);i=await n.blob()}else i=await G(e.source,t)}}if(!i||i.size<=0)throw Error(`Image is empty`);let o=(e.mimeType||(i.type&&i.type.startsWith(`image/`)?i.type:``)||B).split(`;`)[0].trim()||B;return{blob:i,filename:U(e.filename,o),mimeType:o}},ge=()=>!d()||c===void 0?!1:c.isPluginAvailable(`OpenChamberMedia`),_e=async(e,t)=>{let{blob:r,filename:a,mimeType:o}=await he(e,t);if(ge()){let e=await de(r);return await V.saveImage({dataBase64:e,mimeType:o,filename:a}),`saved`}if(n()){let e=i()?.vscode;if(e?.saveImage){let t=await W(r);return await e.saveImage({fileName:a,dataUrl:t}),`saved`}}return fe(r,a),`downloaded`},ve=e=>e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`),ye=e=>e?Object.entries(e).map(([e,t])=>t==null?``:`${e.startsWith(`--`)?e:e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}:${typeof t==`number`?`${t}px`:t};`).join(``):``,K=(e,t,n)=>{let r=e.querySelector(`pre`);r&&(r.style.margin=`0`,r.style.background=`transparent`,r.style.whiteSpace=t?`pre-wrap`:`pre`,t&&(r.style.wordBreak=`break-word`,r.style.overflowWrap=`break-word`));let i=e.querySelector(`code`);if(i){let e=ye(n);e&&i.setAttribute(`style`,`${i.getAttribute(`style`)??``}${e}`)}},be=e=>`<pre><code>${ve(e)}</code></pre>`,xe=e=>{let t=(0,k.c)(21),{code:n,language:r,className:i,style:a,codeStyle:o,wrap:s}=e,c=s!==void 0&&s,{currentTheme:l}=v(),u=O.useRef(null),d;t[0]===l?d=t[1]:(d=b(l),t[0]=l,t[1]=d);let p=d,m,h;t[2]!==n||t[3]!==o||t[4]!==c?(m=()=>{let e=u.current;e&&(e.innerHTML=be(n),K(e,c,o))},h=[n,c,o],t[2]=n,t[3]=o,t[4]=c,t[5]=m,t[6]=h):(m=t[5],h=t[6]),O.useLayoutEffect(m,h);let g,_;t[7]!==n||t[8]!==o||t[9]!==r||t[10]!==c?(g=()=>{let e=u.current;if(!e)return;let t=!0,i=new AbortController;return D(n,(r||`text`).toLowerCase(),{signal:i.signal,priority:`visible`}).then(n=>{!t||!e||!n||(e.innerHTML=n,K(e,c,o))}),()=>{t=!1,i.abort()}},_=[n,r,c,o],t[7]=n,t[8]=o,t[9]=r,t[10]=c,t[11]=g,t[12]=_):(g=t[11],_=t[12]),O.useEffect(g,_);let y;t[13]===i?y=t[14]:(y=f(`typography-code`,i),t[13]=i,t[14]=y);let x=p,S;t[15]!==a||t[16]!==x?(S={...x,...a},t[15]=a,t[16]=x,t[17]=S):S=t[17];let C;return t[18]!==y||t[19]!==S?(C=(0,A.jsx)(`div`,{ref:u,className:y,style:S}),t[18]=y,t[19]=S,t[20]=C):C=t[20],C},Se=e=>{let t=e.replace(/^<file>\s*\n?/,``).replace(/\n?<\/file>\s*$/,``);return t=t.replace(/^\s*\d{5}\|\s?/gm,``),t.trim()},Ce=(e,t=``)=>{if(typeof e==`string`)return e;if(e==null)return t;if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`)return String(e);try{return JSON.stringify(e)}catch{return t}},we=e=>e?e.includes(`<diagnostics`)||e.includes(`<file_diagnostics>`)||e.includes(`LSP errors detected`)||e.includes(`This file has errors`):!1,Te=e=>e?e.replace(/\n{0,2}LSP errors detected[\s\S]*?<diagnostics[^>]*>[\s\S]*?<\/diagnostics>/g,``).replace(/\n{0,2}This file has errors[\s\S]*?<\/file_diagnostics>/g,``).replace(/<diagnostics[^>]*>[\s\S]*?<\/diagnostics>/g,``).replace(/<file_diagnostics>[\s\S]*?<\/file_diagnostics>/g,``).trim():``,Ee=(e,t)=>!e||typeof e!=`object`?String(e):T(e,t||``),q=e=>{if(typeof e==`string`){let t=e.trim();return t.length>0?t:void 0}if(e&&typeof e==`object`){let t=e.patch;if(typeof t==`string`){let e=t.trim();return e.length>0?e:void 0}}},De=e=>{if(!e||typeof e!=`object`)return;let t=q(e.patch)??q(e.diff);if(t)return t;let n=Array.isArray(e.files)?e.files:[];for(let e of n){if(!e||typeof e!=`object`)continue;let t=q(e.patch)??q(e.diff);if(t)return t}},Oe=e=>{if(!e||typeof e!=`string`)return{data:null,isJson:!1};let t=e.trim();if(!t.startsWith(`{`)&&!t.startsWith(`[`)||!t.endsWith(`}`)&&!t.endsWith(`]`)||t.length<2)return{data:null,isJson:!1};try{let e=JSON.parse(t);return typeof e==`object`&&e?{data:e,isJson:!0}:{data:null,isJson:!1}}catch{return{data:null,isJson:!1}}},ke=(e,t,n)=>{let r=Se(e);if((t===`edit`||t===`multiedit`||t===`write`||t===`apply_patch`)&&we(r)&&(r=Te(r)),(t===`edit`||t===`multiedit`||t===`apply_patch`)&&r.trim().length===0){let e=De(n);if(e)return e}return r},Ae=e=>{let t=e.match(/<type>(file|directory)<\/type>/i)?.[1]?.toLowerCase()??`unknown`,n=(e.match(/<content>([\s\S]*?)<\/content>/i)?.[1]??e).replace(/\r\n/g,`
|
|
2
2
|
`).split(`
|
|
3
3
|
`),r=e=>/\(\s*File has more lines\..*offset.*\)/i.test(e.trim());return{type:t,lines:n.map(e=>{let n=e.trim(),i=n.startsWith(`(`)&&n.endsWith(`)`)||r(n);if(t!==`directory`){let t=e.match(/^(\d+):\s?(.*)$/);if(t){let e=t[2],n=e.trim(),i=n.startsWith(`(`)&&n.endsWith(`)`)||r(n);return{lineNumber:i?null:Number(t[1]),text:e,isInfo:i}}}return{lineNumber:null,text:e,isInfo:i}}).filter((e,t,n)=>{if(e.text.trim().length>0)return!0;let r=n[t-1],i=n[t+1],a=!!(r?.isInfo||i?.isInfo),o=e.lineNumber!==null;return!(a&&o)})}},je=(e,n)=>{try{let r=e.trim().split(`
|
|
4
4
|
`).filter(Boolean);if(r.length===0)return null;let i=[];return r.forEach(e=>{let t=e.match(/^(\s*)(.+)$/);if(t){let[,e,n]=t,r=Math.floor(e.length/2),a=!n.endsWith(`/`);i.push({name:n.replace(/\/$/,``),depth:r,isFile:a})}}),(0,A.jsx)(`div`,{className:f(`w-full min-w-0 font-mono space-y-0.5`,n?.unstyled?null:`p-3 bg-muted/20 rounded-xl border border-border/30`),style:t.tool.popup,children:i.map((e,t)=>(0,A.jsx)(`div`,{className:`min-w-0`,style:{paddingLeft:`${e.depth*20}px`},children:e.isFile?(0,A.jsx)(`span`,{className:`text-foreground/90 block truncate`,children:e.name}):(0,A.jsxs)(`span`,{className:`font-semibold text-foreground block truncate`,children:[e.name,`/`]})},t))})}catch{return null}},Me={backgroundColor:`var(--status-info)`,opacity:.6},Ne=(e,n,r)=>{try{let i=e.trim().split(`
|
package/dist/index.html
CHANGED
|
@@ -552,7 +552,7 @@
|
|
|
552
552
|
opacity: 0.72;
|
|
553
553
|
}
|
|
554
554
|
</style>
|
|
555
|
-
<script type="module" crossorigin src="/assets/main-
|
|
555
|
+
<script type="module" crossorigin src="/assets/main-q1V-_wWx.js"></script>
|
|
556
556
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-C0FnF6B9.js">
|
|
557
557
|
<link rel="modulepreload" crossorigin href="/assets/vendor-base-ui-CnHfUmDN.js">
|
|
558
558
|
<link rel="modulepreload" crossorigin href="/assets/vendor-zustand-B4dlGEM2.js">
|
package/dist/mini-chat.html
CHANGED
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
}
|
|
75
75
|
</style>
|
|
76
76
|
|
|
77
|
-
<script type="module" crossorigin src="/assets/miniChat-
|
|
77
|
+
<script type="module" crossorigin src="/assets/miniChat-VXuyA8mS.js"></script>
|
|
78
78
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-C0FnF6B9.js">
|
|
79
79
|
<link rel="modulepreload" crossorigin href="/assets/vendor-base-ui-CnHfUmDN.js">
|
|
80
80
|
<link rel="modulepreload" crossorigin href="/assets/vendor-zustand-B4dlGEM2.js">
|
package/dist/mobile.html
CHANGED
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
})();
|
|
64
64
|
</script>
|
|
65
65
|
|
|
66
|
-
<script type="module" crossorigin src="/assets/mobile-
|
|
66
|
+
<script type="module" crossorigin src="/assets/mobile-CaKZM4y3.js"></script>
|
|
67
67
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-C0FnF6B9.js">
|
|
68
68
|
<link rel="modulepreload" crossorigin href="/assets/vendor-base-ui-CnHfUmDN.js">
|
|
69
69
|
<link rel="modulepreload" crossorigin href="/assets/vendor-zustand-B4dlGEM2.js">
|