@openchambery/web 1.18.2-beta.2 → 1.18.2-beta.21
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/{AgentAvatar-B2kZjgaf.js → AgentAvatar-B4fj9PIe.js} +1 -1
- package/dist/assets/{AssistantView-DvoyOGkx.js → AssistantView-C00aiEHK.js} +1 -1
- package/dist/assets/{ChatContainer-D6yfuigV.js → ChatContainer-BDFeDKu-.js} +39 -39
- package/dist/assets/{DiagramView-MGGo9iME.js → DiagramView-CUfSFI3e.js} +1 -1
- package/dist/assets/{FadeInOnReveal-aeWlaqVB.js → FadeInOnReveal-CKKU6fKI.js} +1 -1
- package/dist/assets/{Icon-AXqa-fYB.js → Icon-DiIuWOuC.js} +1 -1
- package/dist/assets/{MarkdownRendererImpl-jVOkZkyX.js → MarkdownRendererImpl-Cen6E9Lj.js} +2 -2
- package/dist/assets/{MobileDetailNavigation-Q2IzHqGA.js → MobileDetailNavigation-DILi0tN7.js} +1 -1
- package/dist/assets/{MobileShareBridge-apXM34Lb.js → MobileShareBridge-PZMRiieI.js} +1 -1
- package/dist/assets/MobileSurface-BLYcR0tO.js +2 -0
- package/dist/assets/{MultiRunWindow-B-l_O-bd.js → MultiRunWindow-D_2mWZyv.js} +1 -1
- package/dist/assets/{OnboardingScreen-CUsgwt4y.js → OnboardingScreen-CYeRZznl.js} +1 -1
- package/dist/assets/{OverlayScrollbar-D6NySAxi.js → OverlayScrollbar-BgMLtMIq.js} +1 -1
- package/dist/assets/SettingsView-CbDBfQp1.js +25 -0
- package/dist/assets/{SettingsWindow-DfVgTQ4I.js → SettingsWindow-Br7XLcSd.js} +1 -1
- package/dist/assets/{TerminalView-DNyjfkvT.js → TerminalView-CM5jRKlj.js} +1 -1
- package/dist/assets/{ToolOutputDialog-DLG1iThm.js → ToolOutputDialog-D3U6aTZ4.js} +1 -1
- package/dist/assets/appThemeRegistry-CDxBJNNB.js +2 -0
- package/dist/assets/assistant-guide-hero-BeUHQcxE.jpg +0 -0
- package/dist/assets/{button-CDvMVaiO.js → button-DaAoVF4X.js} +1 -1
- package/dist/assets/{clipboard-BW7nk_Cx.js → clipboard-BnElHSnO.js} +1 -1
- package/dist/assets/{collapsible-C2aamDvD.js → collapsible-BmuQu0dq.js} +1 -1
- package/dist/assets/{context-menu-BaxmodD8.js → context-menu-DBOMervd.js} +1 -1
- package/dist/assets/{desktopHosts-CBoBpJ1Z.js → desktopHosts-ZK_vkdzL.js} +1 -1
- package/dist/assets/{desktopRelayRestore-l2R9muux.js → desktopRelayRestore-CewM6-g5.js} +1 -1
- package/dist/assets/{diagram-CEon0BQs.js → diagram-DAE4CZy2.js} +1 -1
- package/dist/assets/{dialog-DjYfj1Sn.js → dialog-COrLBm9O.js} +1 -1
- package/dist/assets/{es-5Lhudh0n.js → es-DIVYdoxi.js} +1 -1
- package/dist/assets/{fileQueries-CE_DaZWQ.js → fileQueries-CmWYnRVz.js} +1 -1
- package/dist/assets/{fr-Q_UhFmKT.js → fr-CNTlVypq.js} +2 -2
- package/dist/assets/{gitApi-BYxg_qGJ.js → gitApi-BQT3QXD2.js} +1 -1
- package/dist/assets/gitApiHttp-BxGAFLTf.js +2 -0
- package/dist/assets/{input-k9DGGyZ6.js → input-XiL2-2gG.js} +1 -1
- package/dist/assets/insertionBoundaries-9a0RuIDc.js +1 -0
- package/dist/assets/{ja-CzMPz7bT.js → ja-C_eW5ZM8.js} +1 -1
- package/dist/assets/{ko-B-EslUsR.js → ko-CE3cOv7v.js} +1 -1
- package/dist/assets/{main-LDphyc-v.js → main-BGfX81Y9.js} +20 -20
- package/dist/assets/{main-CO6z5yRB.js → main-CEqSDnE2.js} +2 -2
- package/dist/assets/{markdown-worker-DkeWiER6.js → markdown-worker-BDyY0vt6.js} +1 -1
- package/dist/assets/{markdownTheme-DNT93i5L.js → markdownTheme-D-aLQZaM.js} +1 -1
- package/dist/assets/{miniChat-BZQwTZpx.js → miniChat-CKucSAhg.js} +2 -2
- package/dist/assets/mobile-C4bTWKry.js +2 -0
- package/dist/assets/{multirun-ZlwlkIy5.js → multirun-DeNtSkgb.js} +1 -1
- package/dist/assets/{persistence-DPNMIbF5.js → persistence-D1lIuyqO.js} +1 -1
- package/dist/assets/{pl-Dnea6Ppc.js → pl-BZKZOE99.js} +1 -1
- package/dist/assets/projectMeta-BunN9pH5.js +3 -0
- package/dist/assets/{pt-BR-Ca6QTem7.js → pt-BR-DHDgp8S3.js} +1 -1
- package/dist/assets/{radio-CJuhbQ5a.js → radio-Bziafaje.js} +1 -1
- package/dist/assets/renderElectronMiniChatApp-D8-FDgWE.js +2 -0
- package/dist/assets/renderMobileApp-CdU0aJ-e.js +23 -0
- package/dist/assets/{runtimeConfig-BtWi74Pm.js → runtimeConfig-BXCt7ZsQ.js} +1 -1
- package/dist/assets/runtimeEndpointReset-CK1GhIsm.js +145 -0
- package/dist/assets/{sortable-tabs-strip-D8JHUI0z.js → sortable-tabs-strip-pWlBorwQ.js} +1 -1
- package/dist/assets/src-8kQFmtjw.css +2 -0
- package/dist/assets/{store-wa1ersRf.js → store-CUWqzRt7.js} +2 -2
- package/dist/assets/{terminalApi-tB3qLcfa.js → terminalApi-DpiAJlil.js} +1 -1
- package/dist/assets/{tooltip-DMNR5rN0.js → tooltip-BLugzWq-.js} +1 -1
- package/dist/assets/{uk-xGc9Pzge.js → uk-CfQK6cz1.js} +1 -1
- package/dist/assets/{url-7MqoLs9X.js → url-DMs_PgIC.js} +1 -1
- package/dist/assets/useAppFontEffects-IEUQDvE8.js +7 -0
- package/dist/assets/useDesktopWindowControlsLayout-MlqJX89k.js +1 -0
- package/dist/assets/{useEffectiveDirectory-aUC3zzl_.js → useEffectiveDirectory-GbhkdO6m.js} +1 -1
- package/dist/assets/{useFontPreferences-CIurCeNv.js → useFontPreferences-92Qg-98H.js} +1 -1
- package/dist/assets/useMobileNavigationStore-DQHF_ETu.js +476 -0
- package/dist/assets/useSessionAutoCleanup-BuU_S_Sh.js +1 -0
- package/dist/assets/{useWorkerHighlightedLines-CiYQjBe6.js → useWorkerHighlightedLines-Ca6OgNHF.js} +1 -1
- package/dist/assets/{utils-Co19EJEL.js → utils-BxJEIWv5.js} +1 -1
- package/dist/assets/{zh-CN-sL4ktGB3.js → zh-CN-DvY2fKWp.js} +1 -1
- package/dist/assets/{zh-TW-Cfxps4gq.js → zh-TW-eWe0lm3-.js} +1 -1
- package/dist/index.html +8 -8
- package/dist/mini-chat.html +8 -8
- package/dist/mobile.html +8 -8
- package/package.json +1 -1
- package/server/index.d.ts +6 -0
- package/server/index.js +13 -0
- package/server/lib/config-sync/DOCUMENTATION.md +70 -0
- package/server/lib/config-sync/config-sync.test.js +197 -0
- package/server/lib/config-sync/constants.js +39 -0
- package/server/lib/config-sync/contract.js +130 -0
- package/server/lib/config-sync/credential-auth.js +39 -0
- package/server/lib/config-sync/engine.js +108 -0
- package/server/lib/config-sync/index.js +67 -0
- package/server/lib/config-sync/local-backup.js +171 -0
- package/server/lib/config-sync/plan.js +318 -0
- package/server/lib/config-sync/receiver.js +330 -0
- package/server/lib/config-sync/routes.js +141 -0
- package/server/lib/config-sync/routes.test.js +154 -0
- package/server/lib/config-sync/scripts.js +264 -0
- package/server/lib/config-sync/selections.js +112 -0
- package/server/lib/config-sync/tar.js +35 -0
- package/server/lib/config-sync/target-id.js +24 -0
- package/server/lib/event-stream/DOCUMENTATION.md +2 -2
- package/server/lib/event-stream/diff-summary.js +39 -11
- package/server/lib/event-stream/diff-summary.test.js +73 -6
- package/server/lib/event-stream/protocol.test.js +70 -7
- package/server/lib/notifications/DOCUMENTATION.md +2 -2
- package/server/lib/notifications/runtime.js +68 -27
- package/server/lib/notifications/runtime.test.js +176 -0
- package/server/lib/opencode/DOCUMENTATION.md +4 -1
- package/server/lib/opencode/bootstrap-runtime.js +2 -0
- package/server/lib/opencode/core-routes.js +1 -0
- package/server/lib/opencode/feature-routes-runtime.test.js +10 -1
- package/server/lib/opencode/openchamber-routes.js +7 -0
- package/server/lib/opencode/settings-runtime.js +82 -51
- package/server/lib/opencode/settings-runtime.test.js +42 -0
- package/server/lib/relay/DOCUMENTATION.md +1 -1
- package/server/lib/session-index/DOCUMENTATION.md +12 -6
- package/server/lib/session-index/routes.js +34 -0
- package/server/lib/session-index/routes.test.js +76 -0
- package/server/lib/session-index/service.js +53 -4
- package/server/lib/session-index/service.test.js +72 -2
- package/server/lib/session-title/DOCUMENTATION.md +19 -14
- package/server/lib/session-title/runtime.js +8 -8
- package/server/lib/session-title/runtime.test.js +231 -0
- package/server/lib/session-turn-pages/DOCUMENTATION.md +26 -6
- package/server/lib/session-turn-pages/changes.service.js +156 -0
- package/server/lib/session-turn-pages/changes.service.test.js +188 -0
- package/server/lib/session-turn-pages/reconcile.routes.test.js +52 -0
- package/server/lib/session-turn-pages/reconcile.service.js +3 -1
- package/server/lib/session-turn-pages/reconcile.service.test.js +44 -0
- package/server/lib/session-turn-pages/routes.js +273 -12
- package/server/lib/session-turn-pages/routes.test.js +387 -0
- package/server/lib/session-turn-pages/service.js +31 -7
- package/server/lib/session-turn-pages/service.test.js +40 -0
- package/server/lib/small-model/DOCUMENTATION.md +93 -38
- package/server/lib/small-model/catalog.js +10 -2
- package/server/lib/small-model/catalog.test.js +3 -1
- package/server/lib/small-model/index.js +52 -28
- package/server/lib/small-model/opencode-session.js +339 -0
- package/server/lib/small-model/opencode-session.test.js +177 -0
- package/server/lib/small-model/resolve.js +116 -5
- package/server/lib/small-model/resolve.test.js +76 -10
- package/server/lib/small-model/summary-settings.test.js +60 -3
- package/dist/assets/MobileSurface-htGkf7Ua.js +0 -2
- package/dist/assets/SettingsView-DxMpVLlt.js +0 -25
- package/dist/assets/appThemeRegistry-CgfOR_0L.js +0 -2
- package/dist/assets/gitApiHttp-D8j1qRH4.js +0 -2
- package/dist/assets/insertionBoundaries-DzXMTleb.js +0 -1
- package/dist/assets/mobile-BktO3_4R.js +0 -2
- package/dist/assets/projectMeta-v-LP2mzz.js +0 -3
- package/dist/assets/renderElectronMiniChatApp-Db8uO-6q.js +0 -2
- package/dist/assets/renderMobileApp-BCV81Ryl.js +0 -23
- package/dist/assets/runtimeEndpointReset-Dg3DMy9v.js +0 -145
- package/dist/assets/src-oHrYIqHF.css +0 -2
- package/dist/assets/useAppFontEffects-CM0VKsdo.js +0 -7
- package/dist/assets/useDesktopWindowControlsLayout-Cq-r4Hcb.js +0 -1
- package/dist/assets/useMobileNavigationStore-DnzT4jO2.js +0 -475
- package/dist/assets/useSessionAutoCleanup-DxZeceKO.js +0 -1
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor-capacitor-app-PzT84wSx.js","assets/rolldown-runtime-C0FnF6B9.js","assets/vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{A as t,D as n,E as r,F as i,H as a,M as o,T as s,b as c,d as l,h as u,j as d,k as f,m as p,s as m,t as h,v as g,w as _}from"./useUIStore-5agS8bsW.js";import{$ as v,$t as y,At as b,Ft as x,Mt as S,Xt as C,Yt as w,Zt as T,c as E,en as D,g as O,h as k,kn as A,m as j,n as ee,qt as M,r as te,t as N,u as P,xn as F}from"./persistence-DPNMIbF5.js";import{c as ne,d as re,f as I,h as L,i as R,l as z,m as B,n as V,o as ie,p as H,r as U,s as ae,v as oe}from"./desktopHosts-CBoBpJ1Z.js";import{i as W}from"./desktopRelayRestore-l2R9muux.js";import{a as se,i as G}from"./vendor-zustand-B4dlGEM2.js";import{nt as ce,rt as le,tt as ue}from"./vendor-base-ui-CnHfUmDN.js";import{kt as de,wt as fe,yt as pe}from"./gitApiHttp-D8j1qRH4.js";import{o as me}from"./vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js";import{n as he}from"./vendor-react-DLPElpoQ.js";import{c as ge}from"./vendor-tanstack-react-query-D7pys_c9.js";import{t as _e}from"./vendor-sonner-DVzioF3d.js";import{a as ve,n as ye}from"./vendor-reactuses-core-DDoDDyM9.js";import{c as be,n as xe,r as Se,s as Ce,t as we}from"./clipboard-BW7nk_Cx.js";import{i as Te,t as Ee}from"./store-wa1ersRf.js";import{$i as De,Cr as Oe,Do as ke,Ft as Ae,H as je,I as Me,Ia as Ne,Ji as K,Jr as Pe,Ki as Fe,Na as Ie,Nr as Le,Oo as Re,Qi as ze,Qr as Be,R as Ve,St as He,Tn as Ue,V as We,W as Ge,Xi as Ke,_t as qe,bn as Je,bt as Ye,ea as Xe,gt as Ze,ko as Qe,l as q,mo as $e,mt as et,pt as tt,tr as nt,un as rt,vt as it,wr as at,xt as ot,z as st}from"./useMobileNavigationStore-DnzT4jO2.js";import{t as ct}from"./utils-Co19EJEL.js";import{n as J}from"./Icon-AXqa-fYB.js";import{a as lt,n as ut,o as dt,r as ft,t as pt}from"./dialog-DjYfj1Sn.js";import{t as mt}from"./button-CDvMVaiO.js";import{n as ht}from"./gitApi-BYxg_qGJ.js";import{a as gt}from"./vendor-simplewebauthn-browser-Dwhcdg_5.js";import{N as _t,c as vt}from"./projectMeta-v-LP2mzz.js";import{t as yt}from"./input-k9DGGyZ6.js";import{i as bt,n as xt,t as St}from"./tooltip-DMNR5rN0.js";import{A as Ct,H as wt,I as Tt,M as Et,T as Dt,U as Ot,V as kt,b as At,k as jt,n as Mt,t as Nt,v as Pt,w as Ft,x as It,y as Lt}from"./useSessionAutoCleanup-DxZeceKO.js";import{n as Rt,r as zt}from"./useThemeSystem-DMzWVJaW.js";import{B as Bt,Q as Vt,U as Ht,W as Ut,Y as Wt,z as Y}from"./radio-CJuhbQ5a.js";import{i as Gt}from"./OverlayScrollbar-D6NySAxi.js";import{C as Kt,S as qt,b as Jt,x as Yt,y as Xt}from"./markdownTheme-DNT93i5L.js";import{D as Zt,J as Qt,X as $t,Y as en,_ as tn,et as nn,g as rn,q as an,s as on,tt as sn,v as cn}from"./ChatContainer-D6yfuigV.js";import{r as ln}from"./useRuntimeAPIs-DSLXJybW.js";import{t as un}from"./useEffectiveDirectory-aUC3zzl_.js";import{n as dn,t as fn}from"./useFontPreferences-CIurCeNv.js";typeof window<`u`&&(window.__opencodeDebug={getLastAssistantMessage(){let e=q.getState().currentSessionId;if(!e)return null;let t=ze(e);if(!t||t.length===0)return null;for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.role===`assistant`){let e=(De(n.id)||[]).map(e=>{let t={id:e.id,type:e.type};return e.type===`text`?(t.text=e.text,t.textLength=e.text?.length||0):e.type===`tool`?(t.tool=e.tool,t.state=e.state?.status):(e.type===`step-start`||e.type===`step-finish`)&&(t.isStepMarker=!0),t}),t=e.some(e=>e.type===`text`&&e.text&&e.text.trim().length>0),r=e.some(e=>e.type===`tool`),i=e.some(e=>e.type===`step-start`||e.type===`step-finish`),a=e.length===0,o=!t&&!r&&(!a||i),s={messageId:n.id,role:n.role,timestamp:n.time?.created||0,partsCount:e.length,parts:e,isEmpty:a,isEmptyResponse:o,raw:n};return s.messageId,s.partsCount,s.isEmpty,s.isEmptyResponse,s.isEmpty&&console.warn(`[WARNING] Message has NO parts!`),s.isEmptyResponse&&(console.warn(`[WARNING] Message has parts but NO meaningful content (empty text, no tools)!`),i&&!t&&!r&&console.warn(`[CRITICAL] CLAUDE EMPTY RESPONSE BUG: Only step-start/step-finish markers, no actual content!`)),s}}return null},truncateString(e,t=80){return!e||typeof e!=`string`||e.length<=t?e:e.substring(0,t)+`…`},truncateMessages(e){return e.map(e=>({...e,parts:(De(e.id)||[]).map(e=>{let t={...e};return`text`in e&&(t.text=this.truncateString(e.text)),`textPreview`in e&&(t.textPreview=this.truncateString(e.textPreview)),e.state&&(t.state={...e.state},`output`in e.state&&(t.state.output=this.truncateString(e.state.output)),`error`in e.state&&(t.state.error=this.truncateString(e.state.error)),e.state.metadata&&`preview`in e.state.metadata&&(t.state.metadata={...e.state.metadata,preview:this.truncateString(e.state.metadata.preview)})),t})}))},getAllMessages(e=!1){let t=q.getState().currentSessionId;if(!t)return[];let n=ze(t);return`${n.length}`,n.forEach((e,t)=>{let n=De(e.id)||[];`${t}${e.role}${e.id}${n.length}`}),e?this.truncateMessages(n):n},async getAppStatus(){let e=pe.getState(),t=q.getState(),n=$e.getState(),r=e.currentDirectory||null,i=de.getDirectory()??null,a=Xe(),o=new Set,s={};a.forEach(e=>{let t=e.directory;typeof t==`string`&&t.trim().length>0?(o.add(t),s[t]=(s[t]??0)+1):s[`(none)`]=(s[`(none)`]??0)+1});let c=(()=>{if(typeof window>`u`)return{available:!1};try{return{available:!0,lastDirectory:window.localStorage.getItem(`lastDirectory`),homeDirectory:window.localStorage.getItem(`homeDirectory`)}}catch(e){return{available:!1,error:e instanceof Error?e.message:String(e)}}})(),l=F(),u=typeof window<`u`&&!!window.__OPENCHAMBER_ELECTRON__,d=async e=>{try{return await e.json()}catch{return null}},f=async e=>{try{return await e.text()}catch{return null}},p=async e=>{try{let t=await A(e);return t.ok?await d(t):{status:t.status}}catch(e){return{error:e instanceof Error?e.message:String(e)}}},m=null,h=null,g=null,_=null;try{let e=await de.getSdkClient().path.get(r?{directory:r}:void 0);m=e.error?{error:e.error}:e.data}catch(e){m={error:e instanceof Error?e.message:String(e)}}try{let e=await de.getSdkClient().project.current(r?{directory:r}:void 0);h=e.error?{error:e.error}:e.data}catch(e){h={error:e instanceof Error?e.message:String(e)}}g=await p(`/api/config/settings`);try{let e=await A(`/api/health`),t=e.headers.get(`content-type`)||``,n=await f(e),r=t.toLowerCase().includes(`application/json`),i=null;if(r&&n)try{let e=JSON.parse(n);e&&typeof e==`object`&&!Array.isArray(e)&&(i=e)}catch{i=null}_={status:e.status,ok:e.ok,contentType:t,type:r?`json`:`html`,openCodePort:i?.openCodePort??null,openCodeRunning:i?.openCodeRunning??null,openCodeSecureConnection:i?.openCodeSecureConnection??null,openCodeAuthSource:i?.openCodeAuthSource??null,isOpenCodeReady:i?.isOpenCodeReady??null,lastOpenCodeError:i?.lastOpenCodeError??null,preview:n?n.slice(0,120):null}}catch(e){_={error:e instanceof Error?e.message:String(e)}}let v={isGitRepo:null};if(r)try{v.isGitRepo=await ht(r)}catch(e){v={isGitRepo:null,error:e instanceof Error?e.message:String(e)}}let y=n.projects.map(e=>({id:e.id,path:e.path,label:e.label}));return{runtime:{platform:l?.runtime?.platform??null,isDesktop:u,isVSCode:!!l?.runtime?.isVSCode,hasRuntimeApis:!!l,desktopServerOrigin:null},location:typeof window<`u`?{href:window.location?.href??null,origin:window.location?.origin??null}:null,directories:{currentDirectory:r,opencodeDirectory:m?.directory||m?.worktree||i,homeDirectory:e.homeDirectory||null,isHomeReady:e.isHomeReady,hasPersistedDirectory:e.hasPersistedDirectory,isSwitchingDirectory:e.isSwitchingDirectory},projects:{total:n.projects.length,activeProjectId:n.activeProjectId,samples:y},sessions:{total:a.length,currentSessionId:t.currentSessionId,lastLoadedDirectory:t.lastLoadedDirectory,uniqueDirectories:o.size,directorySamples:Array.from(o).slice(0,5),directoryCounts:s},worktrees:{available:t.availableWorktrees.length,metadataEntries:t.worktreeMetadata.size},git:v,localStorage:c,opencode:{pathInfo:m,projectInfo:h,health:_},openchamber:{settingsInfo:g}}},async buildDiagnosticsReport(){let e=await this.getAppStatus();return JSON.stringify(e,null,2)},async copyTextToClipboard(e){return we(e)},async copyDiagnosticsReport(){let e=await this.buildDiagnosticsReport();return{...await this.copyTextToClipboard(e),report:e}},checkLastMessage(){let e=this.getLastAssistantMessage();if(!e)return!1;let t=e.isEmpty||e.isEmptyResponse;return t&&(console.error(`[ALERT] PROBLEMATIC MESSAGE DETECTED!`),e.messageId,e.isEmpty,e.isEmptyResponse,e.partsCount,e.parts.length>0&&e.parts),t},getStreamingState(){let e=q.getState(),t=Je.getState(),n=e.currentSessionId?t.streamingMessageIds.get(e.currentSessionId)??null:null;return Array.from(t.streamingMessageIds.entries()),Array.from(t.messageStreamStates.entries()),{streamingMessageId:n,streamingMessageIds:t.streamingMessageIds,streamStates:t.messageStreamStates}},findEmptyMessages(){let e=q.getState().currentSessionId;if(!e)return[];let t=ze(e).filter(e=>e.role===`assistant`).filter(e=>{let t=De(e.id)||[],n=t.some(e=>e.type===`text`&&e.text&&e.text.trim().length>0),r=t.some(e=>e.type===`tool`);return t.length===0||!n&&!r});return`${t.length}`,t.forEach((e,t)=>{let n=De(e.id)||[];`${t}`,e.id,n.length,e.providerID,e.modelID,e.time?.created}),t},showRetryHelp(){},analyzeMessageCompletionConsistency(e={}){let{includeNonAssistant:t=!1,verbose:n=!0,maxTableRows:r=25}=e,i=q.getState().currentSessionId;if(!i)return{summary:null,rows:[]};let a=ze(i),o=t?a:a.filter(e=>e.role===`assistant`),s={totalMessages:a.length,analyzedMessages:o.length,completedMissing:0,completedBeforeTool:0,completedBeforeReasoning:0,runningToolsWhenCompleted:0,reasoningOpenWhenCompleted:0,withTools:0,withReasoning:0},c=e=>typeof e==`number`&&Number.isFinite(e)?e:null,l=e=>{let t=e.filter(e=>typeof e==`number`);return t.length>0?Math.max(...t):null},u=o.map((e,t)=>{let n=e,r=De(e.id)||[],i=n.time??{},a=c(i.completed),o=a!==null,u=r.filter(e=>e.type===`tool`),d=r.filter(e=>e.type===`reasoning`),f=l(u.map(e=>c(e.state?.time?.end??e.state?.time?.start))),p=l(d.map(e=>c(e.time?.end??e.time?.start))),m=l([f,p].filter(e=>e!==null)),h=u.some(e=>[`pending`,`running`,`started`].includes(e.state?.status)),g=d.some(e=>typeof e.time?.end!=`number`);u.length>0&&(s.withTools+=1),d.length>0&&(s.withReasoning+=1),o||(s.completedMissing+=1);let _=!!(o&&typeof f==`number`&&a<f);_&&(s.completedBeforeTool+=1);let v=!!(o&&typeof p==`number`&&a<p);return v&&(s.completedBeforeReasoning+=1),o&&h&&(s.runningToolsWhenCompleted+=1),o&&g&&(s.reasoningOpenWhenCompleted+=1),{index:t,messageId:n.id,role:n.role,completedAt:a,latestToolTimestamp:f,latestReasoningTimestamp:p,latestPartTimestamp:m,completed_missing:!o,completed_before_tool:_,completed_before_reasoning:v,running_tools_when_completed:!!(o&&h),reasoning_open_when_completed:!!(o&&g),has_tools:u.length>0,has_reasoning:d.length>0}});return n&&(console.table(u.slice(0,r)),u.length>r&&`${r}${u.length}`),{summary:s,rows:u}},checkCompletionStatus(){let e=q.getState().currentSessionId;if(!e)return null;let t=ze(e).filter(e=>e.role===`assistant`);if(t.length===0)return null;let n=t[t.length-1],r=(De(n.id)||[]).filter(e=>e.type===`step-finish`),i=n.finish===`stop`,a=n.time?.completed,o=n.status,s=typeof a==`number`&&a>0||o===`completed`,c=!!(s&&i),l=Je.getState();n.sessionID&&l.streamingMessageIds.get(n.sessionID);let u=l.messageStreamStates.get(n.id);return n.id,n.id,u?.phase,{messageId:n.id,completed:a,status:o,hasCompletedFlag:s,hasStopReason:i,messageIsComplete:c,stepFinishParts:r,raw:n}}},fe(),window.addEventListener(`error`,e=>{try{let t=e.message||``,n=e.filename||``;typeof t==`string`&&t.includes(`this._renderer.value.dimensions`)&&/xterm/i.test(String(n))&&e.preventDefault()}catch{}}));var X=e(le(),1),Z=he(),pn=async()=>{if(typeof window>`u`)return;let e=null;try{e=S(`lastDirectory`)}catch(e){console.warn(`Failed to read saved directory preferences:`,e)}e&&!y()&&pe.getState().setDirectory(e,{showOverlay:!1})},mn=new Map,hn=e=>mn.get(e)??null,gn=({runtimeKey:e,initializeAppearance:t,syncSettings:n,applyDirectory:r,onError:i},a={})=>{let o=mn.get(e);if(o&&!a.force)return o;let s=(async()=>{o&&await o;try{await t()}catch(e){return i(`appearance`,e),!1}try{await Promise.all([n(),r()])}catch(e){i(`secondary`,e)}return!0})();return mn.set(e,s),s},_n=async({runtimeKey:e,initializeAppearance:t,syncSettings:n,applyDirectory:r,startWatchers:i,onError:a})=>{await gn({runtimeKey:e,initializeAppearance:t,syncSettings:n,applyDirectory:r,onError:a})&&i()},vn=(e,t=50)=>{let n=null,r;return{schedule:i=>{r=i,n&&clearTimeout(n),n=setTimeout(()=>{n=null;let t=r;r=void 0,t!==void 0&&e(t)},t)},cancel:()=>{n&&clearTimeout(n),n=null,r=void 0}}};function yn(e){return!e||e===`idle`?null:e===`ready`?`ok`:e===`error`?`unreachable`:`auth`}function bn(e,t){let n=e.via===`relay`;return t?n:!n}function xn(e){let{isActive:t,isSsh:n,runtimeIsConnected:r,runtimeConnectionPhase:i,currentTransportIsRelay:a,probe:o,sshPhase:s}=e,c;c=t?r&&i===`connected`?`ok`:`checking`:n?yn(s):o?.status??`checking`;let l=t?a:o?.via===`relay`,u=null;return!n&&c===`ok`&&o?.status===`ok`&&typeof o.latencyMs==`number`&&(!t||bn(o,a))&&(u=Math.max(0,Math.round(o.latencyMs))),{statusKind:c,showViaRelay:l,latencyMs:u}}var Q=ce(),$=`local`,Sn=9e4,Cn=`SSH connection cancelled`,wn=e=>W(e),Tn={},En=e=>{let t=H(e);if(!t)return e.trim();try{let e=new URL(t);return e.pathname.endsWith(`/`)||(e.pathname=`${e.pathname}/`),e.toString()}catch{return t}},Dn=()=>typeof window>`u`?``:window.__OPENCHAMBER_LOCAL_ORIGIN__||window.location.origin,On=async()=>T()?ie().catch(()=>``):``,kn=e=>e===`ok`?`bg-status-success`:e===`auth`||e===`update-recommended`?`bg-status-warning`:e===`incompatible`||e===`wrong-service`||e===`unreachable`?`bg-status-error`:e===`checking`?`bg-status-info`:`bg-muted-foreground/40`,An=e=>e===`ok`?`text-[var(--status-success)]`:e===`auth`||e===`update-recommended`?`text-[var(--status-warning)]`:e===`incompatible`||e===`wrong-service`||e===`unreachable`?`text-[var(--status-error)]`:`text-muted-foreground`,jn=e=>e===`unreachable`||e===`wrong-service`||e===`incompatible`,Mn=e=>e===`unreachable`||e===`wrong-service`||e===`incompatible`,Nn=e=>e===`ok`?`desktopHostSwitcher.status.connected`:e===`auth`?`desktopHostSwitcher.status.authRequired`:e===`checking`?`desktopHostSwitcher.status.checking`:e===`update-recommended`?`desktopHostSwitcher.status.updateRecommended`:e===`incompatible`?`desktopHostSwitcher.status.incompatible`:e===`wrong-service`?`desktopHostSwitcher.status.wrongService`:e===`unreachable`?`desktopHostSwitcher.status.unreachable`:`desktopHostSwitcher.status.unknown`,Pn=e=>new Promise(t=>window.setTimeout(t,e)),Fn=e=>{switch(e){case`ready`:return`desktopHostSwitcher.sshPhase.ready`;case`error`:return`desktopHostSwitcher.sshPhase.error`;case`degraded`:return`desktopHostSwitcher.sshPhase.reconnecting`;case`config_resolved`:return`desktopHostSwitcher.sshPhase.resolvingConfig`;case`auth_check`:return`desktopHostSwitcher.sshPhase.checkingAuth`;case`master_connecting`:return`desktopHostSwitcher.sshPhase.connectingSsh`;case`remote_probe`:return`desktopHostSwitcher.sshPhase.probingRemote`;case`installing`:return`desktopHostSwitcher.sshPhase.installing`;case`updating`:return`desktopHostSwitcher.sshPhase.updating`;case`server_detecting`:return`desktopHostSwitcher.sshPhase.detectingServer`;case`server_starting`:return`desktopHostSwitcher.sshPhase.startingServer`;case`forwarding`:return`desktopHostSwitcher.sshPhase.forwardingPorts`;default:return`desktopHostSwitcher.sshPhase.idle`}},In=async()=>{let e=await Tt().catch(()=>[]),t={};for(let n of e)t[n.id]=n;return t},Ln=async(e,t,n,r)=>{let i=Date.now()+t;for(;Date.now()<i;){if(r?.())throw Error(Cn);let t=(await Tt(e).catch(()=>[])).find(t=>t.id===e);if(t){if(n(t),t.phase===`ready`)return t;if(t.phase===`error`)throw Error(t.detail||`SSH connection failed`)}await Pn(700)}throw r?.()?Error(Cn):Error(`Timed out waiting for SSH connection`)},Rn=e=>({id:$,label:`Local`,url:e||Dn()}),zn=e=>{let t=typeof window>`u`?``:window.location.href,n=e.find(e=>e.id===$)?.url||Dn(),i=_(),a=H(n)||n,o=H(t)||t,s=r(),c=e.find(e=>e.relay&&wn(e)===s);if(c)return{id:c.id,label:c.label,url:c.url};if(i&&I(i,n))return{id:$,label:`Local`,url:a};let l=e.find(e=>i?I(i,z(e)):!1);if(l)return{id:l.id,label:l.label,url:H(z(l))||z(l)};if(t&&I(t,n))return{id:$,label:`Local`,url:a};let u=e.find(e=>t?I(t,e.url):!1);return u?{id:u.id,label:u.label,url:H(u.url)||u.url}:t.startsWith(`openchamber-ui://`)?{id:$,label:`Local`,url:a}:{id:`custom`,label:L(o||`Instance`),url:o}};function Bn({open:e,onOpenChange:t,embedded:i=!1,onHostSwitched:a}){let{t:o}=xe(),s=h(e=>e.setSettingsDialogOpen),c=h(e=>e.setSettingsPage),l=K(e=>e.isConnected),u=K(e=>e.connectionPhase),[f,p]=X.useState([]),[m,g]=X.useState(null),[_,v]=X.useState(()=>({...Tn}));X.useEffect(()=>{Object.assign(Tn,_)},[_]);let[y,b]=X.useState(!1),[x,S]=X.useState(!1),[w,E]=X.useState(!1),D=wt(),O=Ot(),[k,A]=X.useState(null),j=k||O,[ee,M]=X.useState({}),[te,N]=X.useState({}),[P,F]=X.useState({open:!1,hostId:null,hostLabel:``,phase:`idle`,detail:null,error:null}),[I,ie]=X.useState(``),[W,se]=X.useState(()=>Dn()),[G,ce]=X.useState(null),[le,ue]=X.useState(``),[de,fe]=X.useState(``),[pe,me]=X.useState(0),he=X.useRef(0),ge=X.useMemo(()=>[Rn(W),...f.map(e=>({...e,url:H(e.url)||e.url}))],[f,W]),_e=X.useMemo(()=>new Set(Object.keys(ee)),[ee]),ve=X.useMemo(()=>ge.filter(e=>e.id===$||re(e,_e)),[ge,_e]);X.useEffect(()=>d(()=>me(e=>e+1)),[]);let be=X.useMemo(()=>zn(ge),[ge,pe]),Se=X.useMemo(()=>n().startsWith(`relay:`),[pe]),Ce=X.useMemo(()=>{let e=m||$;return ge.find(t=>t.id===e)?.label||o(`desktopHostSwitcher.instance.local`)},[ge,m,o]),we=X.useCallback(async(e,t)=>{if(C()){E(!0),ie(``);try{let n=e.filter(e=>e.id!==$);await R({hosts:n,defaultHostId:t}),p(n),g(t)}catch(e){ie(e instanceof Error?e.message:o(`desktopHostSwitcher.error.failedToSave`))}finally{E(!1)}}},[o]),Te=X.useCallback(()=>{c(`remote-instances`),s(!0),t(!1)},[t,s,c]),Ee=X.useCallback(async()=>{if(C()){b(!0),ie(``);try{let[e,t,n]=await Promise.all([U(),Et().catch(()=>({instances:[]})),In()]);e.localOrigin&&se(e.localOrigin);let r={};for(let e of t.instances)r[e.id]=!0;p(e.hosts||[]),g(e.defaultHostId??null),M(r),N(n)}catch(e){ie(e instanceof Error?e.message:o(`desktopHostSwitcher.error.failedToLoad`)),p([]),g(null),M({}),N({})}finally{b(!1)}}},[o]),De=X.useCallback(async e=>{if(C()){S(!0);try{let t=await On(),n=await Promise.all(e.map(async e=>{let n=async()=>{let t=await B(e.relay,{sshTarget:e.sshTarget}).catch(()=>({status:`unreachable`,latencyMs:0}));return{status:t.status,latencyMs:t.latencyMs,...t.status===`ok`?{via:`relay`}:{}}};if(e.relay&&!e.apiUrl)return[e.id,await n()];let r=H(T()?z(e):e.url);if(!r)return[e.id,{status:`unreachable`,latencyMs:0}];let i=e.id===$?t:e.clientToken||``,a=await V(r,{clientToken:i||null,requestHeaders:e.requestHeaders||null}).catch(()=>({status:`unreachable`,latencyMs:0}));if(jn(a.status)&&e.relay){let t=await n();if(t.status===`ok`)return[e.id,t]}return[e.id,{status:a.status,latencyMs:a.latencyMs}]})),r={};for(let[e,t]of n)r[e]=t;v(r)}finally{S(!1)}}},[]);X.useEffect(()=>{if(!e){ce(null),ue(``),fe(``),A(null),F({open:!1,hostId:null,hostLabel:``,phase:`idle`,detail:null,error:null}),ie(``);return}Ee()},[e,Ee]),X.useEffect(()=>{e&&De(ve)},[e,ve,De]),X.useEffect(()=>{if(!e||!C())return;let t=!1,n=async()=>{let e=await In();t||N(e)};n();let r=window.setInterval(()=>{typeof document<`u`&&document.visibilityState!==`visible`||n()},1500);return()=>{t=!0,window.clearInterval(r)}},[e]);let Oe=ye(async e=>{let t=e.id===$?W:H(e.url)||``,n=e.id===$?W:H(z(e))||``,i=!!e.relay&&!e.apiUrl&&e.id!==$;if(e.viaSshRelay&&Se){if(D)return;if(r()===wn(e)){a?.();return}let t=await kt({host:e});v(n=>({...n,[e.id]:t.status})),t.ok&&a?.();return}if(!t&&!i)return;if(T()){if(!n&&!e.relay||D)return;let t=e.id===$?await On():null,r=await kt({host:e,cachedProbe:_[e.id]||null,...e.id===$?{localApiOrigin:n,localClientToken:t}:{}});v(t=>({...t,[e.id]:r.status})),r.ok&&a?.();return}let s=!!ee[e.id];if(e.id!==$&&s&&C()){let n=te[e.id],r=await Tt(e.id).then(t=>t.find(t=>t.id===e.id)||null).catch(()=>null);r&&(n=r,N(t=>({...t,[e.id]:r})));let i=H(n?.localUrl||e.url||``);if(n?.phase===`ready`&&i){let e=En(i);a?.(),window.location.assign(e);return}A(e.id);let s=he.current+1;he.current=s,F({open:!0,hostId:e.id,hostLabel:L(e.label),phase:`master_connecting`,detail:null,error:null});try{if(await jt(e.id),s!==he.current)return;let n=await Ln(e.id,Sn,e=>{N(t=>({...t,[e.id]:e})),F(t=>({...t,phase:e.phase,detail:e.detail||null}))},()=>s!==he.current);if(s!==he.current)return;let r=En(H(n.localUrl||``)||t);a?.(),window.location.assign(r);return}catch(t){if(s!==he.current)return;let n=t instanceof Error?t.message:String(t);if(n===Cn)return;F(e=>({...e,error:n})),nt.error(o(`desktopHostSwitcher.toast.sshFailedToConnect`,{host:L(e.label)}),{description:n});return}finally{s===he.current&&A(null)}}if(e.id!==$&&C()){A(e.id);let n=await V(t,{clientToken:e.clientToken||null,requestHeaders:e.requestHeaders||null}).catch(()=>({status:`unreachable`,latencyMs:0}));if(v(t=>({...t,[e.id]:{status:n.status,latencyMs:n.latencyMs}})),jn(n.status)){nt.error(o(`desktopHostSwitcher.toast.instanceUnreachable`,{host:L(e.label)})),A(null);return}}let c=En(t);a?.();try{window.location.assign(c)}catch{window.location.href=c}}),ke=X.useCallback(()=>{ce(null),ue(``),fe(``)},[]),Ae=X.useCallback(e=>{e.stopPropagation()},[]),je=X.useCallback(async()=>{if(!G)return;if(G===$){ke();return}let e=oe(de);if(!e){ie(o(`desktopHostSwitcher.error.invalidUrl`));return}let t=e.persistedUrl,n=(le||L(t)).trim(),r=f.map(e=>e.id===G?{...e,label:n,url:t,apiUrl:t}:e);await we(r,m),ke(),e.redeemUrl&&window.location.assign(e.redeemUrl)},[ke,f,m,le,de,G,we,o]),Me=X.useCallback(async e=>{await we(f,e===$?$:e)},[f,we]),Ne=X.useCallback(e=>{let t=e=>{nt.error(o(`desktopHostSwitcher.error.failedToOpenNewWindow`),{description:e instanceof Error?e.message:String(e)})};if(e.relay&&e.id!==$){ne(e.id).catch(t);return}let n=e.id===$?W:z(e);if(!n)return;let r=En(n);ae(r,{clientToken:e.clientToken||null,requestHeaders:e.requestHeaders||null}).catch(t)},[W,o]),Pe=ye(async()=>{he.current+=1,A(null),F(e=>({...e,open:!1,hostId:null,error:null,detail:null,phase:`idle`}));let e=En(W);if(T()){if(D)return;let e=await On();(await kt({host:Rn(W),localApiOrigin:W,localClientToken:e})).ok&&a?.();return}a?.(),window.location.assign(e)}),Fe=X.useCallback(async()=>{let e=P.hostId||j;he.current+=1,A(null),F({open:!1,hostId:null,hostLabel:``,phase:`idle`,detail:null,error:null}),!(!e||e===$||!C())&&await Ct(e).catch(()=>{})},[P.hostId,j]),Ie=X.useCallback(()=>{let e=P.hostId;if(!e)return;let t=ge.find(t=>t.id===e);t&&Oe(t)},[ge,Oe,P.hostId]),Le=X.useCallback(async e=>{if(C()){A(e.id);try{await jt(e.id),(await Ln(e.id,Sn,e=>{N(t=>({...t,[e.id]:e}))})).phase===`ready`&&nt.success(o(`desktopHostSwitcher.toast.sshConnected`,{host:L(e.label)}))}catch(t){let n=t instanceof Error?t.message:String(t);n!==Cn&&nt.error(o(`desktopHostSwitcher.toast.sshFailedToConnect`,{host:L(e.label)}),{description:n})}finally{A(null)}}},[o]);if(!C())return null;let Re=C(),ze=(0,Q.jsxs)(Q.Fragment,{children:[i?(0,Q.jsx)(`div`,{className:`flex-shrink-0 border-b border-[var(--interactive-border)] px-3 py-2`,children:(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0 flex items-baseline gap-1.5 typography-ui-label`,children:[(0,Q.jsx)(`span`,{className:`font-medium text-foreground`,children:o(`desktopHostSwitcher.header.current`)}),(0,Q.jsx)(`span`,{className:`max-w-[9rem] truncate text-muted-foreground`,children:L(be.label)}),(0,Q.jsx)(`span`,{className:`text-muted-foreground/50`,children:`•`}),(0,Q.jsx)(`span`,{className:`font-medium text-foreground`,children:o(`desktopHostSwitcher.header.default`)}),(0,Q.jsx)(`span`,{className:`max-w-[9rem] truncate text-muted-foreground`,children:L(Ce)})]}),(0,Q.jsx)(`button`,{type:`button`,className:ct(`inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground transition-colors`,`hover:text-foreground hover:bg-interactive-hover`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`),onClick:()=>void De(ve),disabled:!Re||y||x,"aria-label":o(`desktopHostSwitcher.actions.refreshInstancesAria`),children:(0,Q.jsx)(J,{name:`refresh`,className:ct(`h-4 w-4`,x&&`animate-spin`)})})]})}):(0,Q.jsxs)(lt,{className:`flex-shrink-0`,children:[(0,Q.jsxs)(dt,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(J,{name:`server`,className:`h-5 w-5`}),o(`desktopHostSwitcher.title`)]}),(0,Q.jsx)(ft,{children:o(`desktopHostSwitcher.description`)})]}),!i&&(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-2 flex-shrink-0`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,Q.jsx)(`span`,{className:`typography-meta text-muted-foreground`,children:o(`desktopHostSwitcher.header.currentColon`)}),(0,Q.jsx)(`span`,{className:`typography-ui-label text-foreground truncate`,children:L(be.label)}),(0,Q.jsx)(`span`,{className:`typography-meta text-muted-foreground`,children:o(`desktopHostSwitcher.header.currentDefaultColon`)}),(0,Q.jsx)(`span`,{className:`typography-ui-label text-foreground truncate`,children:L(Ce)})]}),(0,Q.jsx)(`div`,{className:`flex items-center gap-1`,children:(0,Q.jsxs)(mt,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>void De(ve),disabled:!Re||y||x,children:[(0,Q.jsx)(J,{name:`refresh`,className:ct(`h-4 w-4`,x&&`animate-spin`)}),o(`desktopHostSwitcher.actions.refresh`)]})})]}),!Re&&(0,Q.jsx)(`div`,{className:`flex-shrink-0 rounded-lg border border-border/50 bg-muted/20 p-3`,children:(0,Q.jsx)(`div`,{className:`typography-meta text-muted-foreground`,children:o(`desktopHostSwitcher.state.limitedOnPage`)})}),(0,Q.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto`,children:(0,Q.jsx)(`div`,{className:ct(`space-y-1`,i&&`space-y-1.5 px-3 py-1`),children:y?(0,Q.jsx)(`div`,{className:`px-2 py-2 text-muted-foreground text-sm`,children:o(`desktopHostSwitcher.state.loading`)}):ve.map(e=>{let t=e.id===$,n=!!ee[e.id],r=e.id===be.id,a=(m||$)===e.id,s=_[e.id]||null,c=te[e.id]||null,d=xn({isActive:r,isSsh:n,runtimeIsConnected:l,runtimeConnectionPhase:u,currentTransportIsRelay:Se,probe:s,sshPhase:c?.phase}),f=d.statusKind,p=d.showViaRelay,h=G===e.id,g=t?W:H(e.url)||e.url,v=e.id===$?o(`desktopHostSwitcher.instance.local`):L(e.label),y=e.relay&&!e.apiUrl?o(`mobile.connect.relay.badge`):L(g);return(0,Q.jsxs)(`div`,{className:ct(`group flex items-center gap-2 px-2.5 py-2 rounded-md overflow-hidden`,i&&`rounded-xl bg-[var(--surface-muted)] px-3 py-2.5`,i&&r&&`bg-[var(--interactive-selection)]/25`,h?`bg-interactive-hover/20`:`hover:bg-interactive-hover/30`),children:[(0,Q.jsxs)(`button`,{type:`button`,className:ct(`flex items-center gap-2 flex-1 min-w-0 text-left`,h&&`pointer-events-none opacity-70`),onClick:()=>void Oe(e),disabled:j===e.id,"aria-label":o(`desktopHostSwitcher.actions.switchToAria`,{instance:v}),children:[(0,Q.jsx)(`span`,{className:ct(`h-2 w-2 rounded-full flex-shrink-0`,kn(f))}),(0,Q.jsxs)(`div`,{className:`flex-1 min-w-0 space-y-0.5`,children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[(0,Q.jsx)(`span`,{className:`typography-ui-label font-medium truncate text-foreground`,children:v}),r&&(0,Q.jsx)(`span`,{className:`typography-micro flex-shrink-0 text-muted-foreground bg-muted px-1 rounded leading-none pb-px border border-border/50`,children:o(`desktopHostSwitcher.header.current`)}),n&&(0,Q.jsx)(`span`,{className:`typography-micro flex-shrink-0 px-1 rounded leading-none pb-px text-[var(--status-info)] bg-[var(--status-info)]/10`,children:`SSH`})]}),(0,Q.jsxs)(`div`,{className:ct(`typography-micro truncate`,An(f)),children:[o(n&&!r?Fn(c?.phase):Nn(f)),d.latencyMs==null?``:o(`desktopHostSwitcher.status.ping`,{ms:d.latencyMs}),p?` · ${o(`settings.remoteInstances.clientAuth.state.viaRelay`)}`:``]}),(0,Q.jsx)(`div`,{className:`typography-micro text-muted-foreground/70 truncate font-mono`,children:y})]})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[n&&!t&&(c?.phase===`idle`||!c?.phase?(0,Q.jsxs)(mt,{type:`button`,variant:`outline`,size:`sm`,className:`h-8 px-2.5`,disabled:j===e.id,onClick:t=>{t.stopPropagation(),Le(e)},children:[j===e.id?(0,Q.jsx)(J,{name:`loader-4`,className:`h-3.5 w-3.5 animate-spin`}):(0,Q.jsx)(J,{name:`plug-2`,className:`h-3.5 w-3.5`}),o(`desktopHostSwitcher.actions.connect`)]}):(0,Q.jsx)(`div`,{className:`h-8 w-8 opacity-0 pointer-events-none`,"aria-hidden":`true`})),(0,Q.jsxs)(St,{children:[(0,Q.jsx)(bt,{asChild:!0,children:(0,Q.jsx)(`button`,{type:`button`,className:ct(`h-8 w-8 rounded-md inline-flex items-center justify-center hover:bg-interactive-hover transition-colors`,a?`text-primary hover:text-primary/80`:`text-muted-foreground/60 hover:text-primary/80`),onClick:()=>void Me(e.id),"aria-label":o(a?`desktopHostSwitcher.actions.defaultInstanceAria`:`desktopHostSwitcher.actions.setAsDefaultAria`),disabled:w||!a&&Mn(f),children:a?(0,Q.jsx)(J,{name:`star-fill`,className:`h-4 w-4`}):(0,Q.jsx)(J,{name:`star`,className:`h-4 w-4`})})}),(0,Q.jsx)(xt,{sideOffset:6,children:o(a?`desktopHostSwitcher.header.default`:`desktopHostSwitcher.actions.setAsDefault`)})]}),(0,Q.jsxs)(St,{children:[(0,Q.jsx)(bt,{asChild:!0,children:(0,Q.jsx)(`button`,{type:`button`,className:ct(`h-8 w-8 rounded-md inline-flex items-center justify-center hover:bg-interactive-hover transition-colors`,Mn(f)?`text-muted-foreground/30 cursor-not-allowed`:`text-muted-foreground/60 hover:text-foreground`),onClick:t=>{t.stopPropagation(),Ne(e)},disabled:Mn(f),"aria-label":o(`desktopHostSwitcher.actions.openInNewWindowAria`),children:(0,Q.jsx)(J,{name:`window`,className:`h-4 w-4`})})}),(0,Q.jsx)(xt,{sideOffset:6,children:Mn(f)?o(`desktopHostSwitcher.state.instanceUnreachable`):o(`desktopHostSwitcher.actions.openInNewWindow`)})]})]})]},e.id)})})}),Re&&G&&G!==$&&(0,Q.jsxs)(`div`,{className:`flex-shrink-0 rounded-lg border border-border/50 bg-muted/20 p-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Q.jsx)(`div`,{className:`typography-ui-label font-medium text-foreground`,children:o(`desktopHostSwitcher.edit.title`)}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(mt,{type:`button`,variant:`outline`,size:`sm`,onClick:ke,disabled:w,children:o(`desktopHostSwitcher.actions.cancel`)}),(0,Q.jsxs)(mt,{type:`button`,size:`sm`,onClick:()=>void je(),disabled:w,children:[w?(0,Q.jsx)(J,{name:`loader-4`,className:`h-4 w-4 animate-spin`}):null,o(`desktopHostSwitcher.actions.save`)]})]})]}),(0,Q.jsxs)(`div`,{className:`mt-2 grid grid-cols-1 gap-2 sm:grid-cols-2`,children:[(0,Q.jsx)(yt,{value:le,onChange:e=>ue(e.target.value),onKeyDown:Ae,placeholder:o(`desktopHostSwitcher.field.labelPlaceholder`),disabled:w}),(0,Q.jsx)(yt,{value:de,onChange:e=>fe(e.target.value),onKeyDown:Ae,placeholder:o(`desktopHostSwitcher.field.urlPlaceholder`),disabled:w})]})]}),(0,Q.jsx)(`div`,{className:`flex-shrink-0 border-t border-[var(--interactive-border)]`,children:(0,Q.jsxs)(`button`,{type:`button`,className:`w-full flex items-center gap-2 px-2 py-2 text-left text-muted-foreground hover:text-foreground hover:bg-interactive-hover/30 transition-colors`,onClick:Te,children:[(0,Q.jsx)(J,{name:`add`,className:`h-4 w-4`}),(0,Q.jsx)(`span`,{className:`typography-ui-label`,children:o(`desktopHostSwitcher.actions.addInstance`)})]})}),I&&(0,Q.jsx)(`div`,{className:`flex-shrink-0 typography-meta text-status-error`,children:I})]}),Be=(0,Q.jsx)(pt,{open:P.open,onOpenChange:e=>{if(!e&&j){Fe();return}F(t=>({...t,open:e,...e?{}:{hostId:null,error:null,detail:null,phase:`idle`}}))},children:(0,Q.jsxs)(ut,{className:`w-[min(28rem,calc(100vw-2rem))] max-w-none`,children:[(0,Q.jsxs)(lt,{children:[(0,Q.jsxs)(dt,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(J,{name:`loader-4`,className:ct(`h-4 w-4`,!P.error&&`animate-spin`)}),o(`desktopHostSwitcher.ssh.connectingTo`,{host:P.hostLabel||o(`desktopHostSwitcher.ssh.instanceFallback`)})]}),(0,Q.jsx)(ft,{children:P.error?P.error:P.detail||o(Fn(P.phase))})]}),P.error?(0,Q.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,Q.jsx)(mt,{type:`button`,size:`sm`,variant:`outline`,onClick:()=>void Pe(),children:o(`desktopHostSwitcher.actions.switchToLocal`)}),(0,Q.jsx)(mt,{type:`button`,size:`sm`,onClick:Ie,disabled:!P.hostId,children:o(`desktopHostSwitcher.actions.retry`)})]}):null]})});return i?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`w-full max-h-[70vh] flex flex-col overflow-hidden gap-2`,children:ze}),Be]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(pt,{open:e,onOpenChange:t,children:(0,Q.jsx)(ut,{className:`w-[min(42rem,calc(100vw-2rem))] max-w-none max-h-[70vh] flex flex-col overflow-hidden gap-3`,children:ze})}),Be]})}function Vn(){let e=(0,Z.c)(11),[t,n]=X.useState(!1),{t:r}=xe();if(!C())return null;let i,a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=()=>n(!0),a=(0,Q.jsx)(J,{name:`server`,className:`h-4 w-4`}),e[0]=i,e[1]=a):(i=e[0],a=e[1]);let o;e[2]===r?o=e[3]:(o=r(`desktopHostSwitcher.actions.switchInstance`),e[2]=r,e[3]=o);let s;e[4]===o?s=e[5]:(s=(0,Q.jsxs)(mt,{type:`button`,variant:`ghost`,size:`sm`,"data-oc-host-switcher":!0,className:`w-full justify-center`,onClick:i,children:[a,o]}),e[4]=o,e[5]=s);let c;e[6]===t?c=e[7]:(c=(0,Q.jsx)(Bn,{open:t,onOpenChange:n}),e[6]=t,e[7]=c);let l;return e[8]!==s||e[9]!==c?(l=(0,Q.jsxs)(Q.Fragment,{children:[s,c]}),e[8]=s,e[9]=c,e[10]=l):l=e[10],l}var Hn=e=>e.shouldUseDesktopShellPasswordLogin?`locked`:`error`,Un=`/auth/session`,Wn=4,Gn=1500,Kn=`openchamber.uiAuth.trustDevice`,qn=`desktop-local`,Jn=`desktop-local`,Yn=()=>{if(typeof window>`u`)return``;let e=window.__OPENCHAMBER_LOCAL_ORIGIN__;return typeof e==`string`?e.trim():``},Xn=(e,t)=>{let n=H(e),r=H(t);if(!n||!r)return!1;try{return new URL(n).origin===new URL(r).origin}catch{return!1}},Zn=()=>C(),Qn=e=>{let t=e.replace(/^\[|\]$/g,``);return t===`localhost`||t===`127.0.0.1`||t===`::1`},$n=()=>{if(!C())return!1;let e=Yn();if(!e)return!1;let t=_()||(typeof window<`u`?window.location.origin:``);if(Xn(e,t))return!0;try{let e=H(t);return!!(e&&Qn(new URL(e).hostname))}catch{return!1}},er=()=>$n()?{clientKind:qn,dedupeKey:Jn}:{},tr=async()=>await A(Un,{method:`GET`,credentials:`include`,headers:{Accept:`application/json`}}),nr=()=>typeof window>`u`?!1:window.localStorage.getItem(Kn)===`true`,rr=async(e,t)=>{let n=Zn();return await A(Un,{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({password:e,trustDevice:t,issueClientToken:n,clientLabel:`OpenChamber Desktop`,...er()})})},ir=async()=>{if(!C())return``;let e=await A(`/api/client-auth/clients`,{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({label:`OpenChamber Desktop`,...er()})}).catch(()=>null);if(!e?.ok)return``;let t=await e.json().catch(()=>null);return typeof t?.token==`string`?t.token.trim():``},ar=()=>C()&&!$n(),or=async(e,t)=>{if(!C()||typeof window>`u`)return null;let n=await M(`desktop_remote_password_login`,{url:_(),password:e,trustDevice:t,requestHeaders:a()}).catch(()=>null);if(!n||typeof n!=`object`)return null;let r=n.token,i=n.status;return{token:typeof r==`string`?r.trim():``,...typeof i==`number`?{status:i}:{}}},sr=async(e,t)=>{if(!C()||!t)return;let n=await U().catch(()=>null);if(!n)return;if(n.localOrigin&&Xn(n.localOrigin,e)){await R({hosts:n.hosts,defaultHostId:n.defaultHostId,initialHostChoiceCompleted:n.initialHostChoiceCompleted,localClientToken:t}).catch(()=>void 0);return}let r=!1,i=n.hosts.map(n=>!Xn(z(n),e)||n.clientToken===t?n:(r=!0,{...n,clientToken:t}));r&&await R({hosts:i,defaultHostId:n.defaultHostId,initialHostChoiceCompleted:n.initialHostChoiceCompleted}).catch(()=>void 0)},cr=async e=>{if(!e)return;let t=_(),n=a();await sr(t,e),o({apiBaseUrl:t,clientToken:e,requestHeaders:Object.keys(n).length>0?n:null})},lr=e=>{let t=(0,Z.c)(7),{children:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r={height:`var(--oc-wco-titlebar-height, 0px)`,right:`var(--oc-wco-right-inset, 0px)`},t[0]=r):r=t[0];let i=r,a,o;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(a={fontFamily:`"Inter", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif`},o=(0,Q.jsx)(`div`,{className:`app-region-drag fixed left-0 top-0 z-20`,style:i,"aria-hidden":!0}),t[1]=a,t[2]=o):(a=t[1],o=t[2]);let s;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Q.jsx)(`div`,{className:`pointer-events-none absolute inset-0 opacity-55`,style:{background:`radial-gradient(120% 140% at 50% -20%, var(--surface-overlay) 0%, transparent 68%)`}}),t[3]=s):s=t[3];let c;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Q.jsx)(`div`,{className:`pointer-events-none absolute inset-0`,style:{backgroundColor:`var(--surface-subtle)`,opacity:.22}}),t[4]=c):c=t[4];let l;return t[5]===n?l=t[6]:(l=(0,Q.jsxs)(`div`,{className:`relative flex min-h-screen items-center justify-center overflow-hidden bg-background text-foreground`,style:a,children:[o,s,c,(0,Q.jsx)(`div`,{className:`app-region-no-drag relative z-10 flex w-full justify-center px-4 py-12 sm:px-6`,children:n})]}),t[5]=n,t[6]=l),l},ur=()=>{let e=(0,Z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Q.jsx)(`div`,{className:`flex min-h-screen items-center justify-center bg-background text-foreground`,children:(0,Q.jsx)(Vt,{width:120,height:120})}),e[0]=t):t=e[0],t},dr=e=>{let t=(0,Z.c)(23),{onRetry:n,errorType:r,retryAfter:i,children:a}=e,o=r===void 0?`network`:r,{t:s}=xe(),c=o===`rate-limit`,l=i?Math.ceil(i/60):1,u;t[0]!==c||t[1]!==s?(u=s(c?`sessionAuth.error.rateLimitTitle`:`sessionAuth.error.networkTitle`),t[0]=c,t[1]=s,t[2]=u):u=t[2];let d;t[3]===u?d=t[4]:(d=(0,Q.jsx)(`h1`,{className:`typography-ui-header font-semibold text-destructive`,children:u}),t[3]=u,t[4]=d);let f;t[5]!==c||t[6]!==l||t[7]!==s?(f=c?s(l>1?`sessionAuth.error.rateLimitDescriptionPlural`:`sessionAuth.error.rateLimitDescriptionSingle`,{minutes:l}):s(`sessionAuth.error.networkDescription`),t[5]=c,t[6]=l,t[7]=s,t[8]=f):f=t[8];let p;t[9]===f?p=t[10]:(p=(0,Q.jsx)(`p`,{className:`typography-meta text-muted-foreground max-w-xs`,children:f}),t[9]=f,t[10]=p);let m;t[11]!==d||t[12]!==p?(m=(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[d,p]}),t[11]=d,t[12]=p,t[13]=m):m=t[13];let h;t[14]===s?h=t[15]:(h=s(`sessionAuth.error.retry`),t[14]=s,t[15]=h);let g;t[16]!==n||t[17]!==h?(g=(0,Q.jsx)(mt,{type:`button`,onClick:n,className:`w-full max-w-xs`,children:h}),t[16]=n,t[17]=h,t[18]=g):g=t[18];let _;return t[19]!==a||t[20]!==m||t[21]!==g?(_=(0,Q.jsx)(lr,{children:(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-6 text-center`,children:[m,g,a]})}),t[19]=a,t[20]=m,t[21]=g,t[22]=_):_=t[22],_},fr=({children:e})=>{let{t}=xe(),n=X.useMemo(()=>y(),[]),i=n,a=X.useMemo(()=>C()&&!n,[n]),[o,s]=X.useState(()=>i?`authenticated`:`pending`),[c,l]=X.useState(``),[u,p]=X.useState(!1),[m,h]=X.useState(``),[g,_]=X.useState(void 0),[v,b]=X.useState(!1),[x,S]=X.useState(At),[w,T]=X.useState(!1),[E,D]=X.useState(!1),[O,k]=X.useState(()=>nr()),[A,j]=X.useState(null),[M,te]=X.useState(i),P=X.useRef(null),F=X.useRef(i);X.useEffect(()=>{typeof window>`u`||window.localStorage.setItem(Kn,O?`true`:`false`)},[O]);let ne=X.useCallback(async()=>{if(i)return At;try{let e=await It();return S(e),e}catch{return S(At),At}},[i]);X.useEffect(()=>{let e=!1;if(!i)return(async()=>{try{if(!window.isSecureContext||!gt()){e||T(!1);return}e||T(!0)}catch{e||T(!1)}})(),()=>{e=!0}},[i]);let re=X.useRef(0),I=X.useRef(null),L=X.useRef(null),R=X.useCallback(()=>{I.current!==null&&(window.clearTimeout(I.current),I.current=null)},[]),z=X.useCallback(()=>{re.current=0,R()},[R]),B=X.useCallback(()=>re.current>=Wn?!1:(re.current+=1,R(),I.current=window.setTimeout(()=>{I.current=null,L.current?.()},Gn*re.current),!0),[R]);X.useEffect(()=>R,[R]);let V=X.useCallback(async()=>{if(i){s(`authenticated`);return}s(e=>e===`authenticated`?e:`pending`);try{let[e,t]=await Promise.all([tr(),ne()]),n=await e.text();if(e.ok){z(),s(`authenticated`),b(!1),h(``),_(void 0);return}if(e.status===401){let e={};try{e=JSON.parse(n)}catch{e={}}z(),b(e.tunnelLocked===!0),S(t),s(`locked`),_(void 0);return}if(e.status===429){let e={};try{e=JSON.parse(n)}catch{e={}}z(),_(e.retryAfter),b(!1),s(`rate-limited`);return}if(B())return;s(`error`),b(!1)}catch(e){if(console.warn(`Failed to check session status:`,e),Hn({shouldUseDesktopShellPasswordLogin:ar()})===`locked`){s(`locked`),_(void 0),b(!1);return}if(B())return;s(`error`),b(!1)}},[ne,z,B,i]);X.useEffect(()=>{L.current=V},[V]),X.useEffect(()=>{i||V()},[V,i]),X.useEffect(()=>{if(o===`pending`||o===`authenticated`||typeof document>`u`)return;let e=document.getElementById(`initial-loading`);if(!e)return;e.classList.add(`fade-out`);let t=window.setTimeout(()=>{e.remove()},300);return()=>{window.clearTimeout(t)}},[o]),X.useEffect(()=>{if(i)return;let e=vn(e=>{f(e)&&(l(``),h(``),_(void 0),b(!1),z(),te(!1),F.current=!1,s(`pending`),V())}),t=d(t=>e.schedule(t));return()=>{t(),e.cancel()}},[V,z,i]),X.useEffect(()=>{!i&&o===`locked`&&(F.current=!1,te(!1))},[i,o]),X.useEffect(()=>{o===`locked`&&P.current&&(P.current.focus(),P.current.select())},[o]),X.useEffect(()=>{if(!i&&o===`authenticated`&&!F.current){F.current=!0;let e=!1;return gn({runtimeKey:r(),initializeAppearance:N,syncSettings:ee,applyDirectory:pn,onError:(e,t)=>{console.error(`[SessionAuthGate] ${e} settings hydration failed:`,t)}},{force:!0}).then(()=>{e||te(!0)}),()=>{e=!0}}},[i,o]);let ie=async e=>{e.preventDefault(),await ae(!1)},H=X.useCallback(async()=>{j(`register`),D(!0);try{await Dt()}finally{j(null),D(!1)}await ne()},[ne]),U=X.useCallback(()=>{Lt(),j(null),D(!1)},[]),ae=X.useCallback(async e=>{if(!v&&!(!c||u)){E&&U(),p(!0),h(``);try{if(ar()){let e=await or(c,O);if(e?.token){l(``),b(!1),await cr(e.token),s(`authenticated`);return}if(e?.status===401){h(t(`sessionAuth.error.incorrectPassword`)),b(!1),s(`locked`);return}if(e?.status===429){_(void 0),b(!1),s(`rate-limited`);return}}let n=await rr(c,O);if(n.ok){let r=await n.json().catch(()=>null),i=Zn(),a=``;if(i&&(a=typeof r?.clientToken==`string`&&r.clientToken.trim()?r.clientToken.trim():``,a||=(await or(c,O))?.token||await ir()),l(``),b(!1),a&&await cr(a),e&&w)try{await H(),nt.success(t(`sessionAuth.toast.passkeyAdded`)),s(`authenticated`);return}catch(e){if(Ft(e))nt.message(t(`sessionAuth.toast.passkeySetupCanceled`));else{let n=e instanceof Error?e.message:t(`sessionAuth.error.passkeySetupFailed`);nt.error(n)}s(`authenticated`);return}s(`authenticated`);return}if(n.status===401){h(t(`sessionAuth.error.incorrectPassword`)),b(!1),s(`locked`);return}if(n.status===429){let e=await n.json().catch(()=>({}));_(e.retryAfter),b(!1),s(`rate-limited`);return}h(t(`sessionAuth.error.unexpectedResponse`)),b(!1),s(`error`)}catch(e){console.warn(`Failed to submit UI password:`,e);let n=ar()?await or(c,O):null;if(n?.token){l(``),b(!1),await cr(n.token),s(`authenticated`);return}if(n?.status===401){h(t(`sessionAuth.error.incorrectPassword`)),b(!1),s(`locked`);return}if(n?.status===429){_(void 0),b(!1),s(`rate-limited`);return}h(t(`sessionAuth.error.networkRetry`)),b(!1),s(`error`)}finally{p(!1)}}},[U,E,u,v,c,H,w,t,O]),oe=X.useCallback(async()=>{if(!(u||!w)){if(E){U();return}D(!0),j(`auth`),h(``);try{let e=await Pt(O,{issueClientToken:Zn(),clientLabel:`OpenChamber Desktop`,...er()}),t=Zn()&&typeof e?.clientToken==`string`&&e.clientToken.trim()?e.clientToken.trim():``;t&&await cr(t),l(``),s(`authenticated`)}catch(e){if(Ft(e))h(``);else{let n=e instanceof Error?e.message:t(`sessionAuth.error.passkeySignInCanceled`);h(n)}}finally{j(null),D(!1)}}},[U,E,u,w,t,O]),W=X.useCallback(async()=>{if(!(u||v||!w)){if(E){U();return}if(o!==`authenticated`){if(!c){h(t(`sessionAuth.error.enterPasswordForPasskey`));return}await ae(!0);return}h(``);try{await H(),nt.success(t(`sessionAuth.toast.passkeyAdded`))}catch(e){if(Ft(e)){nt.message(t(`sessionAuth.toast.passkeySetupCanceled`));return}let n=e instanceof Error?e.message:t(`sessionAuth.error.passkeySetupFailed`);nt.error(n)}}},[U,ae,E,u,v,c,H,o,w,t]),se=w&&x.enabled,G=se&&x.hasPasskeys;return o===`pending`||o===`authenticated`&&!M?(0,Q.jsx)(ur,{}):o===`error`?(0,Q.jsx)(dr,{onRetry:()=>{z(),V()},errorType:`network`,children:a&&(0,Q.jsxs)(`div`,{className:`w-full max-w-xs`,children:[(0,Q.jsx)(Vn,{}),(0,Q.jsx)(`p`,{className:`mt-1 text-center typography-micro text-muted-foreground`,children:t(`sessionAuth.locked.hostSwitcherHint`)})]})}):o===`rate-limited`?(0,Q.jsx)(dr,{onRetry:()=>void V(),errorType:`rate-limit`,retryAfter:g}):o===`locked`?(0,Q.jsx)(lr,{children:(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-6 w-full max-w-xs`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-1 text-center`,children:[(0,Q.jsx)(`h1`,{className:`text-xl font-semibold text-foreground`,children:t(v?`sessionAuth.locked.tunnelTitle`:`sessionAuth.locked.unlockTitle`)}),(0,Q.jsx)(`p`,{className:`typography-meta text-muted-foreground`,children:t(v?`sessionAuth.locked.tunnelDescription`:`sessionAuth.locked.passwordDescription`)})]}),!v&&(0,Q.jsxs)(`form`,{onSubmit:ie,className:`w-full space-y-2`,children:[G&&(0,Q.jsxs)(mt,{type:`button`,variant:`outline`,className:`w-full`,onClick:()=>void oe(),disabled:u||E&&A!==`auth`,children:[E?(0,Q.jsx)(J,{name:`loader-4`,className:`h-4 w-4 animate-spin`}):(0,Q.jsx)(J,{name:`lock-unlock`,className:`h-4 w-4`}),(0,Q.jsx)(`span`,{children:t(E&&A===`auth`?`sessionAuth.actions.cancelPasskey`:`sessionAuth.actions.usePasskey`)})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(`div`,{className:`relative flex-1`,children:[(0,Q.jsx)(J,{name:`lock`,className:`absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground/60`}),(0,Q.jsx)(yt,{id:`openchamber-ui-password`,ref:P,type:`password`,autoComplete:`current-password`,placeholder:t(`sessionAuth.password.placeholder`),value:c,onChange:e=>{l(e.target.value),m&&h(``)},className:`pl-10`,"aria-invalid":!!m||void 0,"aria-describedby":m?`oc-ui-auth-error`:void 0,disabled:u})]}),(0,Q.jsx)(mt,{type:`submit`,size:`icon`,disabled:!c||u,"aria-label":t(u?`sessionAuth.actions.unlockingAria`:`sessionAuth.actions.unlockAria`),children:u?(0,Q.jsx)(J,{name:`loader-4`,className:`h-4 w-4 animate-spin`}):(0,Q.jsx)(J,{name:`lock-unlock`,className:`h-4 w-4`})})]}),se?(0,Q.jsxs)(`div`,{className:`flex items-center justify-between pt-1`,children:[(0,Q.jsxs)(`label`,{className:`flex items-center gap-2 text-center typography-micro text-muted-foreground`,children:[(0,Q.jsx)(_t,{checked:O,onChange:k,disabled:u,ariaLabel:t(`sessionAuth.actions.trustDeviceAria`),className:`size-4`,iconClassName:`size-4`}),(0,Q.jsx)(`span`,{children:t(`sessionAuth.actions.trustDevice`)})]}),(0,Q.jsx)(mt,{type:`button`,variant:`ghost`,size:`sm`,className:`text-muted-foreground hover:text-foreground`,onClick:()=>void W(),disabled:u,children:t(E&&A===`register`?`sessionAuth.actions.cancelPasskeySetup`:`sessionAuth.actions.addPasskey`)})]}):(0,Q.jsxs)(`label`,{className:`flex items-center justify-center gap-2 pt-1 text-center typography-micro text-muted-foreground`,children:[(0,Q.jsx)(_t,{checked:O,onChange:k,disabled:u,ariaLabel:t(`sessionAuth.actions.trustDeviceAria`),className:`size-4`,iconClassName:`size-4`}),(0,Q.jsx)(`span`,{children:t(`sessionAuth.actions.trustDevice`)})]}),m&&(0,Q.jsx)(`p`,{id:`oc-ui-auth-error`,className:`typography-meta text-destructive`,children:m})]}),a&&(0,Q.jsxs)(`div`,{className:`w-full`,children:[(0,Q.jsx)(Vn,{}),(0,Q.jsx)(`p`,{className:`mt-1 text-center typography-micro text-muted-foreground`,children:t(`sessionAuth.locked.hostSwitcherHint`)})]})]})}):(0,Q.jsx)(Q.Fragment,{children:e})},pr=e=>{let t=(0,Z.c)(14),{children:n}=e,r=h(mr),i=h(hr),a=h(gr),o=h(_r),s=h(vr),{deviceType:c,hasTouchInput:l}=Gt(),u;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=typeof document<`u`&&g(),t[0]=u):u=t[0];let d=u,f;t[1]!==s||t[2]!==a?(f=()=>{a(),s()},t[1]=s,t[2]=a,t[3]=f):f=t[3];let p;t[4]!==s||t[5]!==a||t[6]!==i||t[7]!==c||t[8]!==r||t[9]!==l||t[10]!==o?(p=[r,i,a,o,s,c,l,d],t[4]=s,t[5]=a,t[6]=i,t[7]=c,t[8]=r,t[9]=l,t[10]=o,t[11]=p):p=t[11],X.useLayoutEffect(f,p);let m;return t[12]===n?m=t[13]:(m=(0,Q.jsx)(Q.Fragment,{children:n}),t[12]=n,t[13]=m),m};function mr(e){return e.fontSize}function hr(e){return e.codeFontSize}function gr(e){return e.applyTypography}function _r(e){return e.padding}function vr(e){return e.applyPadding}var yr=e(ue(),1),br=e=>{if(!e||typeof e!=`string`)return null;let t=e.trim();if(!t.startsWith(`#`))return null;let n=t.slice(1);if((n.length===3||n.length===4)&&(n=n.split(``).map(e=>e+e).join(``)),n.length===8&&(n=n.slice(0,6)),n.length!==6)return null;let r=Number.parseInt(n,16);return Number.isNaN(r)?null:`${r>>16&255} ${r>>8&255} ${r&255}`},xr=class{inheritanceMap=new Map;constructor(){this.initializeInheritanceMap()}generate(e){let t=[];return t.push(...this.generateTailwindVariables(e)),t.push(...this.generatePrimaryColors(e.colors.primary)),t.push(...this.generateSurfaceColors(e.colors.surface)),t.push(...this.generateInteractiveColors(e.colors.interactive)),t.push(...this.generateStatusColors(e.colors.status)),t.push(...this.generatePullRequestColors(e)),t.push(...this.generateSyntaxColors(e.colors.syntax)),t.push(...this.generateComponentColors(e.colors,e)),t.push(...this.generateTypographyVariables()),e.config&&t.push(...this.generateConfigVariables(e.config)),t.join(`
|
|
3
|
-
`)}generateTailwindVariables(e){let t=[];t.push(` --background: ${e.colors.surface.background} !important;`),t.push(` --foreground: ${e.colors.surface.foreground} !important;`),t.push(` --muted: ${e.colors.surface.muted} !important;`),t.push(` --muted-foreground: ${e.colors.surface.mutedForeground} !important;`),t.push(` --card: ${e.colors.surface.elevated} !important;`),t.push(` --card-foreground: ${e.colors.surface.elevatedForeground} !important;`),t.push(` --popover: ${e.colors.surface.elevated} !important;`),t.push(` --popover-foreground: ${e.colors.surface.elevatedForeground} !important;`),t.push(` --border: ${e.colors.interactive.border} !important;`),t.push(` --input: ${e.colors.interactive.border} !important;`),t.push(` --primary: ${e.colors.primary.base} !important;`),t.push(` --primary-foreground: ${e.colors.primary.foreground} !important;`),t.push(` --secondary: ${e.colors.surface.muted} !important;`),t.push(` --secondary-foreground: ${e.colors.surface.mutedForeground} !important;`),t.push(` --accent: ${e.colors.surface.subtle} !important;`),t.push(` --accent-foreground: ${e.colors.surface.foreground} !important;`),t.push(` --destructive: ${e.colors.status.error} !important;`),t.push(` --destructive-foreground: ${e.colors.status.errorForeground} !important;`),t.push(` --ring: ${e.colors.interactive.focusRing} !important;`);let n=br(e.colors.surface.muted),r=br(e.colors.surface.subtle),i=br(e.colors.interactive.border);t.push(` --sidebar-base: ${e.colors.surface.muted} !important;`),n&&t.push(` --sidebar-base-rgb: ${n} !important;`),t.push(` --sidebar: var(--sidebar-base) !important;`),t.push(` --sidebar-foreground: ${e.colors.surface.mutedForeground} !important;`),t.push(` --sidebar-primary: ${e.colors.primary.base} !important;`),t.push(` --sidebar-primary-foreground: ${e.colors.primary.foreground} !important;`),t.push(` --sidebar-accent-base: ${e.colors.surface.subtle} !important;`),r&&t.push(` --sidebar-accent-base-rgb: ${r} !important;`),t.push(` --sidebar-accent: var(--sidebar-accent-base) !important;`),t.push(` --sidebar-accent-foreground: ${e.colors.surface.foreground} !important;`),t.push(` --sidebar-border: ${e.colors.interactive.border} !important;`),i&&t.push(` --sidebar-border-rgb: ${i} !important;`),t.push(` --sidebar-ring: ${e.colors.interactive.focusRing} !important;`);let a=e.metadata.variant===`dark`,o=a?.15:.5,s=a?.1:.3,c=a?.42:.52;if(n)t.push(` --sidebar-overlay-strong: rgb(${n} / ${o}) !important;`),t.push(` --sidebar-overlay-soft: rgb(${n} / ${s}) !important;`),t.push(` --sidebar-vibrancy-overlay: rgb(${n} / ${c}) !important;`);else{let n=e.colors.surface.muted;t.push(` --sidebar-overlay-strong: ${this.opacity(n,o)} !important;`),t.push(` --sidebar-overlay-soft: ${this.opacity(n,s)} !important;`),t.push(` --sidebar-vibrancy-overlay: ${this.opacity(n,c)} !important;`)}return e.colors.charts?.series&&Array.isArray(e.colors.charts.series)&&e.colors.charts.series.forEach((e,n)=>{t.push(` --chart-${n+1}: ${e};`)}),e.colors.loading?(t.push(` --loading-spinner: ${e.colors.loading.spinner||e.colors.primary.base};`),t.push(` --loading-spinner-track: ${e.colors.loading.spinnerTrack||e.colors.surface.muted};`)):(t.push(` --loading-spinner: ${e.colors.primary.base};`),t.push(` --loading-spinner-track: ${e.colors.surface.muted};`)),t}apply(e){let t=this.generate(e),n=document.createElement(`style`);n.id=`opencode-theme-variables`;let r=``;e.metadata.variant===`dark`?(r=`:root {\n${t}\n}\n\n.dark {\n${t}\n}`,document.documentElement.classList.add(`dark`),document.documentElement.classList.remove(`light`)):(r=`:root {\n${t}\n}\n\n:root:not(.dark) {\n${t}\n}`,document.documentElement.classList.remove(`dark`),document.documentElement.classList.add(`light`)),n.textContent=r;let i=document.getElementById(`opencode-theme-variables`);i&&i.remove(),document.head.appendChild(n),document.documentElement.setAttribute(`data-theme`,e.metadata.variant);let a=typeof window<`u`&&window.__OPENCHAMBER_ELECTRON__?.runtime===`electron`&&window.__OPENCHAMBER_ELECTRON__?.macVibrancy===!0;document.documentElement.toggleAttribute(`data-oc-vibrancy`,a),a&&document.documentElement.toggleAttribute(`data-oc-vibrancy-ready`,!0)}generatePrimaryColors(e){let t=[];return t.push(` --primary-base: ${e.base};`),t.push(` --primary-hover: ${e.hover||this.darken(e.base,10)};`),t.push(` --primary-active: ${e.active||this.darken(e.base,20)};`),t.push(` --primary-foreground: ${e.foreground||`#ffffff`};`),t.push(` --primary-muted: ${e.muted||this.opacity(e.base,.5)};`),t.push(` --primary-emphasis: ${e.emphasis||this.lighten(e.base,10)};`),t}generateSurfaceColors(e){let t=[];return t.push(` --surface-background: ${e.background};`),t.push(` --surface-foreground: ${e.foreground};`),t.push(` --surface-muted: ${e.muted};`),t.push(` --surface-muted-foreground: ${e.mutedForeground};`),t.push(` --surface-elevated: ${e.elevated};`),t.push(` --surface-elevated-foreground: ${e.elevatedForeground};`),t.push(` --surface-overlay: ${e.overlay};`),t.push(` --surface-subtle: ${e.subtle};`),t}generateInteractiveColors(e){let t=[];return t.push(` --interactive-border: ${e.border};`),t.push(` --interactive-border-hover: ${e.borderHover};`),t.push(` --interactive-border-focus: ${e.borderFocus};`),t.push(` --interactive-selection: ${e.selection};`),t.push(` --interactive-selection-foreground: ${e.selectionForeground};`),t.push(` --interactive-focus: ${e.focus};`),t.push(` --interactive-focus-ring: ${e.focusRing};`),t.push(` --interactive-cursor: ${e.cursor};`),t.push(` --interactive-hover: ${e.hover};`),t.push(` --interactive-active: ${e.active};`),t}generateStatusColors(e){let t=[];return t.push(` --status-error: ${e.error};`),t.push(` --status-error-foreground: ${e.errorForeground};`),t.push(` --status-error-background: ${e.errorBackground};`),t.push(` --status-error-border: ${e.errorBorder};`),t.push(` --status-warning: ${e.warning};`),t.push(` --status-warning-foreground: ${e.warningForeground};`),t.push(` --status-warning-background: ${e.warningBackground};`),t.push(` --status-warning-border: ${e.warningBorder};`),t.push(` --status-success: ${e.success};`),t.push(` --status-success-foreground: ${e.successForeground};`),t.push(` --status-success-background: ${e.successBackground};`),t.push(` --status-success-border: ${e.successBorder};`),t.push(` --status-info: ${e.info};`),t.push(` --status-info-foreground: ${e.infoForeground};`),t.push(` --status-info-background: ${e.infoBackground};`),t.push(` --status-info-border: ${e.infoBorder};`),t}generatePullRequestColors(e){let t=[],n=e.colors.pr;return t.push(` --pr-open: ${n?.open||e.colors.status.success};`),t.push(` --pr-draft: ${n?.draft||e.colors.surface.mutedForeground};`),t.push(` --pr-blocked: ${n?.blocked||e.colors.status.warning};`),t.push(` --pr-merged: ${n?.merged||(e.metadata.variant===`dark`?`#8957e5`:`#8250df`)};`),t.push(` --pr-closed: ${n?.closed||e.colors.status.error};`),t}generateSyntaxColors(e){let t=[];t.push(` --syntax-background: ${e.base.background};`),t.push(` --syntax-foreground: ${e.base.foreground};`),t.push(` --syntax-comment: ${e.base.comment};`),t.push(` --syntax-keyword: ${e.base.keyword};`),t.push(` --syntax-string: ${e.base.string};`),t.push(` --syntax-number: ${e.base.number};`),t.push(` --syntax-function: ${e.base.function};`),t.push(` --syntax-variable: ${e.base.variable};`),t.push(` --syntax-type: ${e.base.type};`),t.push(` --syntax-operator: ${e.base.operator};`);let n=this.generateSyntaxTokens(e);for(let[e,r]of Object.entries(n))t.push(` --syntax-${this.kebabCase(e)}: ${r};`);return t}generateSyntaxTokens(e){let t=e.base,n=e.tokens||{};return{commentDoc:n.commentDoc||this.lighten(t.comment,10),stringEscape:n.stringEscape||this.darken(t.string,20),stringInterpolation:n.stringInterpolation||t.variable,stringRegex:n.stringRegex||this.adjustHue(t.string,15),keywordControl:n.keywordControl||t.keyword,keywordOperator:n.keywordOperator||t.operator,keywordImport:n.keywordImport||this.lighten(t.keyword,10),keywordReturn:n.keywordReturn||this.emphasize(t.keyword),functionCall:n.functionCall||this.lighten(t.function,5),functionBuiltin:n.functionBuiltin||this.darken(t.function,10),method:n.method||t.function,methodCall:n.methodCall||this.lighten(t.function,5),variableBuiltin:n.variableBuiltin||this.emphasize(t.variable),variableProperty:n.variableProperty||this.lighten(t.variable,10),variableReadonly:n.variableReadonly||t.number,parameter:n.parameter||t.variable,typePrimitive:n.typePrimitive||this.darken(t.type,10),typeInterface:n.typeInterface||t.type,className:n.className||this.emphasize(t.type),enum:n.enum||t.type,boolean:n.boolean||t.number,null:n.null||this.opacity(t.number,.7),constant:n.constant||t.number,punctuation:n.punctuation||this.opacity(t.foreground,.7),delimiter:n.delimiter||this.opacity(t.foreground,.8),bracket:n.bracket||t.foreground,tag:n.tag||t.keyword,tagAttribute:n.tagAttribute||t.variable,tagAttributeValue:n.tagAttributeValue||t.string,tagBracket:n.tagBracket||this.opacity(t.foreground,.8),decorator:n.decorator||t.function,annotation:n.annotation||t.function,namespace:n.namespace||this.opacity(t.type,.8),module:n.module||this.opacity(t.type,.8),...n}}generateComponentColors(e,t){let n=[];return e.markdown?n.push(...this.generateMarkdownColors(e.markdown,t)):n.push(...this.generateDefaultMarkdownColors(t)),e.chat?n.push(...this.generateChatColors(e.chat,t)):n.push(...this.generateDefaultChatColors(t)),e.tools?n.push(...this.generateToolColors(e.tools,t)):n.push(...this.generateDefaultToolColors(t)),n}generateMarkdownColors(e,t){let n=[],r=t.colors.primary.base,i=t.colors.chat?.background||t.colors.surface.background;return n.push(` --markdown-heading1: ${e.heading1||r};`),n.push(` --markdown-heading2: ${e.heading2||this.opacity(r,.9)};`),n.push(` --markdown-heading3: ${e.heading3||this.opacity(r,.8)};`),n.push(` --markdown-heading4: ${e.heading4||t.colors.surface.foreground};`),n.push(` --markdown-link: ${e.link||r};`),n.push(` --markdown-link-hover: ${e.linkHover||t.colors.primary.hover||this.darken(r,10)};`),n.push(` --markdown-inline-code: ${e.inlineCode||t.colors.syntax.base.string};`),n.push(` --markdown-inline-code-bg: ${e.inlineCodeBackground||i};`),n.push(` --markdown-blockquote: ${e.blockquote||t.colors.surface.mutedForeground};`),n.push(` --markdown-blockquote-border: ${e.blockquoteBorder||t.colors.interactive.border};`),n.push(` --markdown-list-marker: ${r};`),n.push(` --markdown-bold: ${e.bold||t.colors.surface.foreground};`),n.push(` --markdown-italic: ${e.italic||this.opacity(t.colors.surface.foreground,.9)};`),n.push(` --markdown-strikethrough: ${e.strikethrough||t.colors.surface.mutedForeground};`),n.push(` --markdown-hr: ${e.hr||t.colors.interactive.border};`),n}generateDefaultMarkdownColors(e){let t=[],n=e.colors.primary.base,r=e.colors.chat?.background||e.colors.surface.background;return t.push(` --markdown-heading1: ${n};`),t.push(` --markdown-heading2: ${this.opacity(n,.9)};`),t.push(` --markdown-heading3: ${this.opacity(n,.8)};`),t.push(` --markdown-heading4: ${e.colors.surface.foreground};`),t.push(` --markdown-link: ${n};`),t.push(` --markdown-link-hover: ${e.colors.primary.hover||this.darken(n,10)};`),t.push(` --markdown-inline-code: ${e.colors.syntax.base.string};`),t.push(` --markdown-inline-code-bg: ${r};`),t.push(` --markdown-blockquote: ${e.colors.surface.mutedForeground};`),t.push(` --markdown-blockquote-border: ${e.colors.interactive.border};`),t.push(` --markdown-list-marker: ${n};`),t.push(` --markdown-bold: ${e.colors.surface.foreground};`),t.push(` --markdown-italic: ${this.opacity(e.colors.surface.foreground,.9)};`),t.push(` --markdown-strikethrough: ${e.colors.surface.mutedForeground};`),t.push(` --markdown-hr: ${e.colors.interactive.border};`),t}generateChatColors(e,t){let n=[],r=e.background||t.colors.surface.background,i=e.composerSkill||this.getDefaultComposerSkillColor(t);return n.push(` --chat-background: ${r};`),n.push(` --chat-user-message: ${e.userMessage||t.colors.surface.foreground};`),n.push(` --chat-user-message-bg: ${e.userMessageBackground||t.colors.surface.elevated};`),n.push(` --chat-assistant-message: ${e.assistantMessage||t.colors.surface.foreground};`),n.push(` --chat-assistant-message-bg: ${e.assistantMessageBackground||t.colors.surface.muted};`),n.push(` --chat-timestamp: ${e.timestamp||t.colors.surface.mutedForeground};`),n.push(` --chat-divider: ${e.divider||t.colors.interactive.border};`),n.push(` --chat-typing: ${e.typing||t.colors.surface.mutedForeground};`),n.push(` --chat-composer-skill: ${i};`),n}generateDefaultChatColors(e){let t=[];return t.push(` --chat-background: ${e.colors.surface.background};`),t.push(` --chat-user-message: ${e.colors.surface.foreground};`),t.push(` --chat-user-message-bg: ${e.colors.surface.elevated};`),t.push(` --chat-assistant-message: ${e.colors.surface.foreground};`),t.push(` --chat-assistant-message-bg: ${e.colors.surface.muted};`),t.push(` --chat-timestamp: ${e.colors.surface.mutedForeground};`),t.push(` --chat-divider: ${e.colors.interactive.border};`),t.push(` --chat-typing: ${e.colors.surface.mutedForeground};`),t.push(` --chat-composer-skill: ${this.getDefaultComposerSkillColor(e)};`),t}getDefaultComposerSkillColor(e){return e.metadata.variant===`dark`?this.lighten(e.colors.status.warning,25):e.colors.status.warning}generateToolColors(e,t){let n=[];return n.push(` --tools-background: ${e?.background||this.opacity(t.colors.surface.muted,.2)};`),n.push(` --tools-border: ${e?.border||this.opacity(t.colors.interactive.border,.3)};`),n.push(` --tools-header-hover: ${e?.headerHover||this.opacity(t.colors.surface.muted,.3)};`),n.push(` --tools-icon: ${e?.icon||t.colors.surface.mutedForeground};`),n.push(` --tools-title: ${e?.title||t.colors.surface.foreground};`),n.push(` --tools-description: ${e?.description||this.opacity(t.colors.surface.mutedForeground,.6)};`),e?.edit?(n.push(` --tools-edit-added: ${e.edit.added||t.colors.status.success};`),n.push(` --tools-edit-added-bg: ${e.edit.addedBackground||t.colors.status.successBackground};`),n.push(` --tools-edit-removed: ${e.edit.removed||t.colors.status.error};`),n.push(` --tools-edit-removed-bg: ${e.edit.removedBackground||t.colors.status.errorBackground};`),n.push(` --tools-edit-modified: ${e.edit.modified||t.colors.status.info};`),n.push(` --tools-edit-modified-bg: ${e.edit.modifiedBackground||t.colors.status.infoBackground};`),n.push(` --tools-edit-line-number: ${e.edit.lineNumber||this.opacity(t.colors.surface.mutedForeground,.6)};`)):(n.push(` --tools-edit-added: ${t.colors.status.success};`),n.push(` --tools-edit-added-bg: ${t.colors.status.successBackground};`),n.push(` --tools-edit-removed: ${t.colors.status.error};`),n.push(` --tools-edit-removed-bg: ${t.colors.status.errorBackground};`),n.push(` --tools-edit-modified: ${t.colors.status.info};`),n.push(` --tools-edit-modified-bg: ${t.colors.status.infoBackground};`),n.push(` --tools-edit-line-number: ${this.opacity(t.colors.surface.mutedForeground,.6)};`)),n}generateDefaultToolColors(e){let t=[];return t.push(` --tools-background: ${this.opacity(e.colors.surface.muted,.2)};`),t.push(` --tools-border: ${this.opacity(e.colors.interactive.border,.3)};`),t.push(` --tools-header-hover: ${this.opacity(e.colors.surface.muted,.3)};`),t.push(` --tools-icon: ${e.colors.surface.mutedForeground};`),t.push(` --tools-title: ${e.colors.surface.foreground};`),t.push(` --tools-description: ${this.opacity(e.colors.surface.mutedForeground,.6)};`),t.push(` --tools-edit-added: ${e.colors.status.success};`),t.push(` --tools-edit-added-bg: ${this.addTransparency(this.removeTransparency(e.colors.status.successBackground),.15)};`),t.push(` --tools-edit-removed: ${e.colors.status.error};`),t.push(` --tools-edit-removed-bg: ${this.addTransparency(this.removeTransparency(e.colors.status.errorBackground),.15)};`),t.push(` --tools-edit-modified: ${e.colors.status.info};`),t.push(` --tools-edit-modified-bg: ${this.addTransparency(this.removeTransparency(e.colors.status.infoBackground),.15)};`),t.push(` --tools-edit-line-number: ${this.opacity(e.colors.surface.mutedForeground,.6)};`),t}generateConfigVariables(e){let t=[];return e?(e.fonts&&(e.fonts.sans&&(t.push(` --font-sans: ${e.fonts.sans};`),t.push(` --font-family-sans: ${e.fonts.sans};`)),e.fonts.mono&&(t.push(` --font-mono: ${e.fonts.mono};`),t.push(` --font-family-mono: ${e.fonts.mono};`)),e.fonts.heading&&t.push(` --font-heading: ${e.fonts.heading};`)),e.transitions&&(e.transitions.fast&&t.push(` --transition-fast: ${e.transitions.fast};`),e.transitions.normal&&t.push(` --transition-normal: ${e.transitions.normal};`),e.transitions.slow&&t.push(` --transition-slow: ${e.transitions.slow};`)),t):t}generateTypographyVariables(){let e=[],t=y()?u:p;return e.push(` /* Semantic Typography Variables */`),e.push(` --ui-regular-font-weight: 400;`),e.push(` /* Markdown content - all markdown elements use same size */`),e.push(` --text-markdown: ${t.markdown};`),e.push(` /* Code content - all code elements use same size */`),e.push(` --text-code: ${t.code};`),e.push(` /* UI headers - dialog titles, panel headers */`),e.push(` --text-ui-header: ${t.uiHeader};`),e.push(` /* UI labels - buttons, menus, navigation */`),e.push(` --text-ui-label: ${t.uiLabel};`),e.push(` /* Metadata - timestamps, status, helper text */`),e.push(` --text-meta: ${t.meta};`),e.push(` /* Micro text - badges, shortcuts, indicators */`),e.push(` --text-micro: ${t.micro};`),e.push(` /* Heading line height and letter spacing */`),e.push(` --h1-line-height: 1.25rem;`),e.push(` --h2-line-height: 1.25rem;`),e.push(` --h3-line-height: 1.5rem;`),e.push(` --h4-line-height: 1.5rem;`),e.push(` --h5-line-height: 1.5rem;`),e.push(` --h6-line-height: 1.5rem;`),e.push(` --h1-letter-spacing: -0.025em;`),e.push(` --h2-letter-spacing: -0.02em;`),e.push(` --h3-letter-spacing: -0.015em;`),e.push(` --h4-letter-spacing: -0.01em;`),e.push(` --h5-letter-spacing: 0;`),e.push(` --h6-letter-spacing: 0.01em;`),e.push(` /* UI element line height and letter spacing */`),e.push(` --ui-button-line-height: 1.375rem;`),e.push(` --ui-button-letter-spacing: 0.02em;`),e.push(` --ui-button-font-weight: 500;`),e.push(` --ui-label-line-height: 1rem;`),e.push(` --ui-label-letter-spacing: 0.03em;`),e.push(` --ui-label-font-weight: 500;`),e.push(` --ui-caption-line-height: 1rem;`),e.push(` --ui-caption-letter-spacing: 0.025em;`),e.push(` --ui-caption-font-weight: var(--ui-regular-font-weight, 400);`),e.push(` /* Markdown line height and letter spacing */`),e.push(` --markdown-body-line-height: 1.625;`),e.push(` --markdown-body-letter-spacing: 0;`),e.push(` --markdown-body-font-weight: var(--ui-regular-font-weight, 400);`),e.push(` --markdown-h1-line-height: 1.25rem;`),e.push(` --markdown-h1-letter-spacing: -0.025em;`),e.push(` --markdown-h2-line-height: 1.25rem;`),e.push(` --markdown-h2-letter-spacing: -0.02em;`),e.push(` --markdown-h3-line-height: 1.5rem;`),e.push(` --markdown-h3-letter-spacing: -0.015em;`),e.push(` --markdown-h4-line-height: 1.5rem;`),e.push(` --markdown-h4-letter-spacing: -0.01em;`),e.push(` --markdown-h5-line-height: 1.5rem;`),e.push(` --markdown-h5-letter-spacing: 0;`),e.push(` --markdown-h6-line-height: 1.5rem;`),e.push(` --markdown-h6-letter-spacing: 0.01em;`),e.push(` --markdown-list-line-height: 1.625;`),e.push(` --markdown-code-block-line-height: 1rem;`),e.push(` --ui-button-small-line-height: 1.25rem;`),e.push(` --ui-button-small-letter-spacing: 0.02em;`),e.push(` --ui-button-small-font-weight: 500;`),e.push(` --markdown-body-small-line-height: 1.5;`),e.push(` --markdown-body-small-letter-spacing: 0;`),e.push(` --markdown-body-small-font-weight: var(--ui-regular-font-weight, 400);`),e.push(` --ui-button-large-line-height: 1.5rem;`),e.push(` --ui-button-large-letter-spacing: 0.02em;`),e.push(` --ui-button-large-font-weight: 500;`),e.push(` --markdown-body-large-line-height: 1.625;`),e.push(` --markdown-body-large-letter-spacing: 0;`),e.push(` --markdown-body-large-font-weight: var(--ui-regular-font-weight, 400);`),e.push(` /* Code line height and letter spacing */`),e.push(` --code-inline-line-height: 1rem;`),e.push(` --code-inline-letter-spacing: 0;`),e.push(` --code-inline-font-weight: 400;`),e.push(` --code-block-line-height: 1.4rem;`),e.push(` --code-block-letter-spacing: 0;`),e.push(` --code-block-font-weight: 400;`),e.push(` --code-line-numbers-line-height: 1.25rem;`),e.push(` --code-line-numbers-letter-spacing: 0;`),e.push(` --code-line-numbers-font-weight: 400;`),e.push(` /* Additional UI element line height and letter spacing */`),e.push(` --ui-badge-line-height: 1rem;`),e.push(` --ui-badge-letter-spacing: 0.025em;`),e.push(` --ui-badge-font-weight: 500;`),e.push(` --ui-tooltip-line-height: 1rem;`),e.push(` --ui-tooltip-letter-spacing: 0.025em;`),e.push(` --ui-tooltip-font-weight: var(--ui-regular-font-weight, 400);`),e.push(` --ui-input-line-height: 1.375rem;`),e.push(` --ui-input-letter-spacing: 0.02em;`),e.push(` --ui-input-font-weight: var(--ui-regular-font-weight, 400);`),e.push(` --ui-helper-text-line-height: 1rem;`),e.push(` --ui-helper-text-letter-spacing: 0.025em;`),e.push(` --ui-helper-text-font-weight: var(--ui-regular-font-weight, 400);`),e.push(` /* Additional markdown line height and letter spacing */`),e.push(` --markdown-blockquote-line-height: 1.625;`),e.push(` --markdown-blockquote-letter-spacing: 0;`),e.push(` --markdown-blockquote-font-weight: var(--ui-regular-font-weight, 400);`),e.push(` --markdown-list-letter-spacing: 0;`),e.push(` --markdown-list-font-weight: var(--ui-regular-font-weight, 400);`),e.push(` --markdown-link-line-height: 1.625;`),e.push(` --markdown-link-letter-spacing: 0;`),e.push(` --markdown-link-font-weight: var(--ui-regular-font-weight, 400);`),e.push(` --markdown-code-line-height: 1.35;`),e.push(` --markdown-code-letter-spacing: 0;`),e.push(` --markdown-code-font-weight: 400;`),e.push(` --markdown-code-block-letter-spacing: 0;`),e.push(` --markdown-code-block-font-weight: 400;`),e}initializeInheritanceMap(){this.inheritanceMap.set(`header.background`,`surface.background`),this.inheritanceMap.set(`header.foreground`,`surface.foreground`),this.inheritanceMap.set(`header.logoTint`,`primary.base`),this.inheritanceMap.set(`header.divider`,`interactive.border`),this.inheritanceMap.set(`sidebar.background`,`surface.muted`),this.inheritanceMap.set(`sidebar.foreground`,`surface.mutedForeground`),this.inheritanceMap.set(`sidebar.hover`,`interactive.hover`),this.inheritanceMap.set(`sidebar.active`,`primary.base`),this.inheritanceMap.set(`sidebar.activeForeground`,`primary.foreground`)}opacity(e,t){return e.startsWith(`#`)?`${e}${Math.round(t*255).toString(16).padStart(2,`0`)}`:e.startsWith(`rgb`)?e.replace(`rgb`,`rgba`).replace(`)`,`, ${t})`):e}removeTransparency(e){return e.startsWith(`#`)?e.length===9?e.slice(0,7):e.length===5?e.slice(0,4):e:e.startsWith(`rgba`)?e.replace(`rgba`,`rgb`).replace(/,\s*[\d.]+\)$/,`)`):e}addTransparency(e,t){if(e.startsWith(`#`)){let n=e.slice(1);if(n.length===3)return`rgba(${parseInt(n[0]+n[0],16)}, ${parseInt(n[1]+n[1],16)}, ${parseInt(n[2]+n[2],16)}, ${t})`;if(n.length===6)return`rgba(${parseInt(n.slice(0,2),16)}, ${parseInt(n.slice(2,4),16)}, ${parseInt(n.slice(4,6),16)}, ${t})`}return e.startsWith(`rgb`)?e.replace(`rgb`,`rgba`).replace(`)`,`, ${t})`):e}darken(e,t){if(e.startsWith(`#`)){let n=parseInt(e.slice(1),16),r=Math.round(2.55*t),i=(n>>16)-r,a=(n>>8&255)-r,o=(n&255)-r;return`#`+(16777216+(i<255?i<0?0:i:255)*65536+(a<255?a<0?0:a:255)*256+(o<255?o<0?0:o:255)).toString(16).slice(1)}return e}lighten(e,t){if(e.startsWith(`#`)){let n=parseInt(e.slice(1),16),r=Math.round(2.55*t),i=(n>>16)+r,a=(n>>8&255)+r,o=(n&255)+r;return`#`+(16777216+(i<255?i<0?0:i:255)*65536+(a<255?a<0?0:a:255)*256+(o<255?o<0?0:o:255)).toString(16).slice(1)}return e}adjustHue(e,t){return this.lighten(e,t/10)}emphasize(e){return this.lighten(e,15)}kebabCase(e){return e.replace(/([a-z])([A-Z])/g,`$1-$2`).toLowerCase()}},Sr=()=>nn()?new URLSearchParams(window.location.search):null,Cr=()=>typeof window>`u`||window.matchMedia(`(prefers-color-scheme: dark)`).matches,wr=()=>{let e=Sr()?.get(`themeVariant`);return e===`dark`||e===`light`?e===`dark`:Cr()},Tr=(e,t)=>t.reduce((e,t)=>e&&typeof e==`object`?e[t]:void 0,e),Er=e=>typeof e==`string`&&e.trim().length>0,Dr=e=>{if(!e||typeof e!=`object`)return!1;for(let t of[[`metadata`,`id`],[`metadata`,`name`],[`metadata`,`variant`],[`colors`,`primary`,`base`],[`colors`,`primary`,`foreground`],[`colors`,`surface`,`background`],[`colors`,`surface`,`foreground`],[`colors`,`surface`,`muted`],[`colors`,`surface`,`mutedForeground`],[`colors`,`surface`,`elevated`],[`colors`,`surface`,`elevatedForeground`],[`colors`,`surface`,`subtle`],[`colors`,`interactive`,`border`],[`colors`,`interactive`,`selection`],[`colors`,`interactive`,`selectionForeground`],[`colors`,`interactive`,`focusRing`],[`colors`,`interactive`,`hover`],[`colors`,`status`,`error`],[`colors`,`status`,`errorForeground`],[`colors`,`status`,`errorBackground`],[`colors`,`status`,`errorBorder`],[`colors`,`status`,`warning`],[`colors`,`status`,`warningForeground`],[`colors`,`status`,`warningBackground`],[`colors`,`status`,`warningBorder`],[`colors`,`status`,`success`],[`colors`,`status`,`successForeground`],[`colors`,`status`,`successBackground`],[`colors`,`status`,`successBorder`],[`colors`,`status`,`info`],[`colors`,`status`,`infoForeground`],[`colors`,`status`,`infoBackground`],[`colors`,`status`,`infoBorder`],[`colors`,`syntax`,`base`,`background`],[`colors`,`syntax`,`base`,`foreground`],[`colors`,`syntax`,`base`,`keyword`],[`colors`,`syntax`,`base`,`string`],[`colors`,`syntax`,`base`,`number`],[`colors`,`syntax`,`base`,`function`],[`colors`,`syntax`,`base`,`variable`],[`colors`,`syntax`,`base`,`type`],[`colors`,`syntax`,`base`,`comment`],[`colors`,`syntax`,`base`,`operator`],[`colors`,`syntax`,`highlights`,`diffAdded`],[`colors`,`syntax`,`highlights`,`diffRemoved`],[`colors`,`syntax`,`highlights`,`lineNumber`]])if(!Er(Tr(e,t)))return!1;let t=Tr(e,[`metadata`,`variant`]);return t===`light`||t===`dark`},Or=e=>Dr(e.currentTheme)?e.currentTheme:null,kr=e=>Or(e)?.metadata.variant??null,Ar=Jt,jr=Xt,Mr=()=>{let e=Sr()?.get(`currentTheme`);if(!e)return null;try{let t=JSON.parse(e);return Dr(t)?t:null}catch{return null}},Nr=e=>Yt(e===`dark`),Pr=typeof window<`u`?X.useLayoutEffect:X.useEffect,Fr=()=>{if(typeof document>`u`)return;let e=document.documentElement;e.classList.add(`oc-theme-switching`);let t=window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{e.classList.remove(`oc-theme-switching`)})});return()=>{window.cancelAnimationFrame(t),e.classList.remove(`oc-theme-switching`)}},Ir=e=>{let t=Ar,n=jr,r=`system`;if(typeof window<`u`){let e=Sr(),i=e?.get(`themeMode`),a=e?.get(`lightThemeId`),o=e?.get(`darkThemeId`),s=k(`themeMode`),c=k(`lightThemeId`),l=k(`darkThemeId`),u=k(`useSystemTheme`),d=k(`selectedThemeId`),f=k(`selectedThemeVariant`);if(i===`light`||i===`dark`||i===`system`)r=i;else if(s===`light`||s===`dark`||s===`system`)r=s;else if(u!==null){if(u===`true`)r=`system`;else if(d){let e=qt(d);e&&(r=e.metadata.variant===`dark`?`dark`:`light`,e.metadata.variant===`dark`?n=e.metadata.id:t=e.metadata.id)}}else(f===`light`||f===`dark`)&&(r=f);typeof a==`string`&&a.trim().length>0?t=a.trim():typeof c==`string`&&c.trim().length>0&&(t=c.trim()),typeof o==`string`&&o.trim().length>0?n=o.trim():typeof l==`string`&&l.trim().length>0&&(n=l.trim())}if(e){let r=qt(e);r&&(r.metadata.variant===`light`?t=r.metadata.id:n=r.metadata.id)}return{themeMode:r,lightThemeId:t,darkThemeId:n}};function Lr({children:e,defaultThemeId:t}){let n=(0,X.useMemo)(()=>new xr,[]),[r,i]=(0,X.useState)(()=>Ir(t)),[a,o]=(0,X.useState)(!1),[s,c]=(0,X.useState)(()=>wr()),[l,u]=(0,X.useState)([]),[p]=(0,X.useState)(()=>Mr()),[m,h]=(0,X.useState)(null),[g,_]=(0,X.useState)(!1),[v,b]=(0,X.useState)(()=>typeof window>`u`||!y()?null:window.__OPENCHAMBER_VSCODE_THEME__||null),x=(0,X.useMemo)(()=>y(),[]),S=(0,X.useMemo)(()=>w(),[]),T=(0,X.useMemo)(()=>C(),[]),E=(0,X.useMemo)(()=>typeof window>`u`?!1:Sr()!==null,[]),D=(0,X.useMemo)(()=>{let e=[],t=new Set,n=n=>{let r=n.metadata.id;t.has(r)||(t.add(r),e.push(n))};return x&&v&&n(v),m&&n(m),p&&n(p),l.forEach(n),Kt.forEach(n),e},[l,p,m,x,v]),ee=(0,X.useMemo)(()=>e=>D.find(t=>t.metadata.id===e),[D]),M=(0,X.useMemo)(()=>(e,t)=>{let n=ee(e);return n&&n.metadata.variant===t?n:D.find(e=>e.metadata.variant===t)??Nr(t)},[D,ee]),N=(0,X.useMemo)(()=>x&&v?v:r.themeMode===`light`?M(r.lightThemeId,`light`):r.themeMode===`dark`||s?M(r.darkThemeId,`dark`):M(r.lightThemeId,`light`),[M,x,r,s,v]),P=ye(async()=>{if(!(typeof window>`u`||x)){_(!0);try{let e=await A(`/api/config/themes`,{method:`GET`,credentials:S?`omit`:`include`,headers:{Accept:`application/json`}});if(e.status===401||!e.ok)return;let t=await e.json(),n=(Array.isArray(t?.themes)?t.themes:[]).filter(Dr);u(n)}catch{}finally{_(!1)}}});(0,X.useEffect)(()=>{P()},[P]),(0,X.useEffect)(()=>{if(!x)return;let e=e=>{b(e)},t=t=>{let n=t.detail;n?.theme&&e(n.theme)},n=window.__OPENCHAMBER_VSCODE_THEME__;return n&&e(n),window.addEventListener(`openchamber:vscode-theme`,t),()=>window.removeEventListener(`openchamber:vscode-theme`,t)},[x]);let F=ye(e=>{if(typeof document>`u`)return;let t=document.documentElement.hasAttribute(`data-oc-vibrancy`)||window.__OPENCHAMBER_ELECTRON__?.macVibrancy===!0?`transparent`:e.colors.surface.background;document.body.style.backgroundColor=t;let n=document.querySelector(`meta[name="theme-color"]`);n||(n=document.createElement(`meta`),n.setAttribute(`name`,`theme-color`),document.head.appendChild(n)),n.setAttribute(`content`,t);let r=e.metadata.variant===`dark`?`(prefers-color-scheme: dark)`:`(prefers-color-scheme: light)`,i=document.querySelector(`meta[name="theme-color"][media="${r}"]`);i||(i=document.createElement(`meta`),i.setAttribute(`name`,`theme-color`),i.setAttribute(`media`,r),document.head.appendChild(i)),i.setAttribute(`content`,t)}),ne=ye(e=>{typeof document>`u`||document.documentElement.classList.toggle(`vscode-runtime`,e)});Pr(()=>{if(typeof window>`u`)return;let e=Fr();n.apply(N),ne(x),F(N);let t=document.documentElement;return t.classList.remove(`light`,`dark`),t.classList.add(N.metadata.variant),e},[ne,n,N,x,F]),(0,X.useEffect)(()=>{if(r.themeMode!==`system`||typeof window>`u`||E)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`),t=e=>{c(e.matches)};return c(e.matches),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[r.themeMode,E]),(0,X.useEffect)(()=>{if(E||typeof window>`u`)return;O(`themeMode`,r.themeMode),O(`lightThemeId`,r.lightThemeId),O(`darkThemeId`,r.darkThemeId),O(`useSystemTheme`,String(r.themeMode===`system`)),O(`selectedThemeId`,N.metadata.id),O(`selectedThemeVariant`,N.metadata.variant===`light`?`light`:`dark`);let e=M(r.lightThemeId,`light`),t=M(r.darkThemeId,`dark`);O(`splashBgLight`,e.colors.surface.background),O(`splashFgLight`,e.colors.surface.foreground),O(`splashBgDark`,t.colors.surface.background),O(`splashFgDark`,t.colors.surface.foreground),S&&(localStorage.setItem(`themeMode`,r.themeMode),localStorage.setItem(`useSystemTheme`,String(r.themeMode===`system`)),localStorage.setItem(`splashBgLight`,e.colors.surface.background),localStorage.setItem(`splashFgLight`,e.colors.surface.foreground),localStorage.setItem(`splashBgDark`,t.colors.surface.background),localStorage.setItem(`splashFgDark`,t.colors.surface.foreground))},[r,N,M,S,E]),(0,X.useEffect)(()=>{if(typeof window>`u`||E)return;let e=e=>{e.storageArea===window.localStorage&&(j(e.key,`themeMode`)||j(e.key,`lightThemeId`)||j(e.key,`darkThemeId`))&&i(e=>{let t=k(`themeMode`),n=t===`light`||t===`dark`||t===`system`?t:e.themeMode,r=k(`lightThemeId`),i=typeof r==`string`&&r.trim().length>0?r.trim():e.lightThemeId,a=k(`darkThemeId`),o=typeof a==`string`&&a.trim().length>0?a.trim():e.darkThemeId;return n===e.themeMode&&i===e.lightThemeId&&o===e.darkThemeId?e:{themeMode:n,lightThemeId:i,darkThemeId:o}})};return window.addEventListener(`storage`,e),()=>window.removeEventListener(`storage`,e)},[E]);let re=ye(e=>{let t=e.themeMode,n=e.lightThemeId,r=e.darkThemeId,a=kr(e),o=Or(e);if(t!==`light`&&t!==`dark`&&t!==`system`||typeof n!=`string`||typeof r!=`string`)return;let s=n.trim(),l=r.trim();!s||!l||(Fr(),(0,yr.flushSync)(()=>{E&&o&&h(o),t===`system`&&a&&c(a===`dark`),i(e=>e.themeMode===t&&e.lightThemeId===s&&e.darkThemeId===l?e:{themeMode:t,lightThemeId:s,darkThemeId:l})}))});(0,X.useEffect)(()=>{if(typeof window>`u`)return;let e=window;return e.__openchamberApplyThemeSync=re,()=>{e.__openchamberApplyThemeSync===re&&delete e.__openchamberApplyThemeSync}},[re]),(0,X.useEffect)(()=>{if(typeof window>`u`)return;let e=e=>{if(e.origin!==window.location.origin)return;let t=e.data;t?.type!==`openchamber:theme-sync`||!t.payload||re(t.payload)};return window.addEventListener(`message`,e),()=>window.removeEventListener(`message`,e)},[re]),(0,X.useEffect)(()=>{if(E||!a)return;let e=M(r.lightThemeId,`light`),t=M(r.darkThemeId,`dark`);te({themeId:N.metadata.id,themeVariant:N.metadata.variant===`light`?`light`:`dark`,useSystemTheme:r.themeMode===`system`,lightThemeId:r.lightThemeId,darkThemeId:r.darkThemeId,splashBgLight:e.colors.surface.background,splashFgLight:e.colors.surface.foreground,splashBgDark:t.colors.surface.background,splashFgDark:t.colors.surface.foreground})},[N.metadata.id,N.metadata.variant,M,r.themeMode,r.lightThemeId,r.darkThemeId,E,a]),(0,X.useEffect)(()=>{E||!T||(async()=>{await Ce(r.themeMode,N.metadata.variant)})()},[N.metadata.variant,T,r.themeMode,E]),(0,X.useEffect)(()=>{if(typeof window>`u`)return;let e=e=>{let t=e.detail;t&&(i(e=>{let n=e.themeMode;t.useSystemTheme===!0?n=`system`:t.useSystemTheme===!1&&(t.themeVariant===`dark`||t.themeVariant===`light`)&&(n=t.themeVariant);let r=e.lightThemeId;typeof t.lightThemeId==`string`&&t.lightThemeId.length>0&&(r=t.lightThemeId.trim());let i=e.darkThemeId;return typeof t.darkThemeId==`string`&&t.darkThemeId.length>0&&(i=t.darkThemeId.trim()),n===e.themeMode&&r===e.lightThemeId&&i===e.darkThemeId?e:{themeMode:n,lightThemeId:r,darkThemeId:i}}),o(!0))};return window.addEventListener(`openchamber:settings-synced`,e),()=>window.removeEventListener(`openchamber:settings-synced`,e)},[]),(0,X.useEffect)(()=>{if(!(E||typeof window>`u`))return d(e=>{f(e)&&(i(e=>{let t=k(`themeMode`),n=t===`light`||t===`dark`||t===`system`?t:e.themeMode,r=k(`lightThemeId`),i=typeof r==`string`&&r.trim().length>0?r.trim():e.lightThemeId,a=k(`darkThemeId`),o=typeof a==`string`&&a.trim().length>0?a.trim():e.darkThemeId;return n===e.themeMode&&i===e.lightThemeId&&o===e.darkThemeId?e:{themeMode:n,lightThemeId:i,darkThemeId:o}}),o(!1))})},[E]);let I=ye(e=>{let t=D.find(t=>t.metadata.id===e);t&&i(e=>t.metadata.variant===`dark`?e.darkThemeId===t.metadata.id&&e.themeMode===`dark`?e:{...e,darkThemeId:t.metadata.id,themeMode:`dark`}:e.lightThemeId===t.metadata.id&&e.themeMode===`light`?e:{...e,lightThemeId:t.metadata.id,themeMode:`light`})}),L=ye(e=>{i(t=>t.themeMode===e?t:{...t,themeMode:e})}),R=ye(e=>{if(e){i(e=>e.themeMode===`system`?e:{...e,themeMode:`system`});return}let t=N.metadata.variant===`dark`?`dark`:`light`;i(e=>e.themeMode===t?e:{...e,themeMode:t})}),z=ye(e=>{let t=D.find(t=>t.metadata.id===e&&t.metadata.variant===`light`);t&&i(e=>e.lightThemeId===t.metadata.id?e:{...e,lightThemeId:t.metadata.id})}),B=ye(e=>{let t=D.find(t=>t.metadata.id===e&&t.metadata.variant===`dark`);t&&i(e=>e.darkThemeId===t.metadata.id?e:{...e,darkThemeId:t.metadata.id})}),V=(0,X.useMemo)(()=>({currentTheme:N,availableThemes:D,setTheme:I,customThemesLoading:g,reloadCustomThemes:P,isSystemPreference:r.themeMode===`system`,setSystemPreference:R,themeMode:r.themeMode,setThemeMode:L,lightThemeId:r.lightThemeId,darkThemeId:r.darkThemeId,setLightThemePreference:z,setDarkThemePreference:B}),[D,N,g,r.darkThemeId,r.lightThemeId,r.themeMode,P,B,z,R,I,L]);return(0,Q.jsx)(zt.Provider,{value:V,children:e})}var Rr=!1,zr=()=>{if(Rr||typeof window>`u`)return;Rr=!0;let e={showReasoningTraces:h.getState().showReasoningTraces,sessionRecapEnabled:h.getState().sessionRecapEnabled,sessionTitleRefreshEnabled:h.getState().sessionTitleRefreshEnabled,sessionGoalEnabled:h.getState().sessionGoalEnabled,sessionGoalDefaultBudgetEnabled:h.getState().sessionGoalDefaultBudgetEnabled,sessionGoalDefaultBudget:h.getState().sessionGoalDefaultBudget,collapsibleThinkingBlocks:h.getState().collapsibleThinkingBlocks,showDeletionDialog:h.getState().showDeletionDialog,nativeNotificationsEnabled:h.getState().nativeNotificationsEnabled,notificationMode:h.getState().notificationMode,notifyOnSubtasks:h.getState().notifyOnSubtasks,notifyOnCompletion:h.getState().notifyOnCompletion,notifyOnError:h.getState().notifyOnError,notifyOnQuestion:h.getState().notifyOnQuestion,notificationTemplates:h.getState().notificationTemplates,summarizeLastMessage:h.getState().summarizeLastMessage,summaryThreshold:h.getState().summaryThreshold,summaryLength:h.getState().summaryLength,maxLastMessageLength:h.getState().maxLastMessageLength,autoDeleteEnabled:h.getState().autoDeleteEnabled,autoDeleteAfterDays:h.getState().autoDeleteAfterDays,sessionRetentionAction:h.getState().sessionRetentionAction,fontSize:h.getState().fontSize,terminalFontSize:h.getState().terminalFontSize,editorFontSize:h.getState().editorFontSize,uiFont:h.getState().uiFont,monoFont:h.getState().monoFont,padding:h.getState().padding,cornerRadius:h.getState().cornerRadius,inputBarOffset:h.getState().inputBarOffset,mobileKeyboardMode:h.getState().mobileKeyboardMode,diffLayoutPreference:h.getState().diffLayoutPreference,gitChangesViewMode:h.getState().gitChangesViewMode},t=null,n=null,r=()=>{let e=t;t=null,n=null,e&&Object.keys(e).length>0&&te(e)},i=e=>{t={...t??{},...e},!n&&(n=setTimeout(r,150))};h.subscribe(t=>{let n={showReasoningTraces:t.showReasoningTraces,sessionRecapEnabled:t.sessionRecapEnabled,sessionTitleRefreshEnabled:t.sessionTitleRefreshEnabled,sessionGoalEnabled:t.sessionGoalEnabled,sessionGoalDefaultBudgetEnabled:t.sessionGoalDefaultBudgetEnabled,sessionGoalDefaultBudget:t.sessionGoalDefaultBudget,collapsibleThinkingBlocks:t.collapsibleThinkingBlocks,showDeletionDialog:t.showDeletionDialog,nativeNotificationsEnabled:t.nativeNotificationsEnabled,notificationMode:t.notificationMode,notifyOnSubtasks:t.notifyOnSubtasks,notifyOnCompletion:t.notifyOnCompletion,notifyOnError:t.notifyOnError,notifyOnQuestion:t.notifyOnQuestion,notificationTemplates:t.notificationTemplates,summarizeLastMessage:t.summarizeLastMessage,summaryThreshold:t.summaryThreshold,summaryLength:t.summaryLength,maxLastMessageLength:t.maxLastMessageLength,autoDeleteEnabled:t.autoDeleteEnabled,autoDeleteAfterDays:t.autoDeleteAfterDays,sessionRetentionAction:t.sessionRetentionAction,fontSize:t.fontSize,terminalFontSize:t.terminalFontSize,editorFontSize:t.editorFontSize,uiFont:t.uiFont,monoFont:t.monoFont,padding:t.padding,cornerRadius:t.cornerRadius,inputBarOffset:t.inputBarOffset,mobileKeyboardMode:t.mobileKeyboardMode,diffLayoutPreference:t.diffLayoutPreference,gitChangesViewMode:t.gitChangesViewMode},r={};n.showReasoningTraces!==e.showReasoningTraces&&(r.showReasoningTraces=n.showReasoningTraces),n.sessionRecapEnabled!==e.sessionRecapEnabled&&(r.sessionRecapEnabled=n.sessionRecapEnabled),n.sessionTitleRefreshEnabled!==e.sessionTitleRefreshEnabled&&(r.sessionTitleRefreshEnabled=n.sessionTitleRefreshEnabled),n.sessionGoalEnabled!==e.sessionGoalEnabled&&(r.sessionGoalEnabled=n.sessionGoalEnabled),n.sessionGoalDefaultBudgetEnabled!==e.sessionGoalDefaultBudgetEnabled&&(r.sessionGoalDefaultBudgetEnabled=n.sessionGoalDefaultBudgetEnabled),n.sessionGoalDefaultBudget!==e.sessionGoalDefaultBudget&&(r.sessionGoalDefaultBudget=n.sessionGoalDefaultBudget),n.collapsibleThinkingBlocks!==e.collapsibleThinkingBlocks&&(r.collapsibleThinkingBlocks=n.collapsibleThinkingBlocks),n.showDeletionDialog!==e.showDeletionDialog&&(r.showDeletionDialog=n.showDeletionDialog),n.nativeNotificationsEnabled!==e.nativeNotificationsEnabled&&(r.nativeNotificationsEnabled=n.nativeNotificationsEnabled),n.notificationMode!==e.notificationMode&&(r.notificationMode=n.notificationMode),n.notifyOnSubtasks!==e.notifyOnSubtasks&&(r.notifyOnSubtasks=n.notifyOnSubtasks),n.notifyOnCompletion!==e.notifyOnCompletion&&(r.notifyOnCompletion=n.notifyOnCompletion),n.notifyOnError!==e.notifyOnError&&(r.notifyOnError=n.notifyOnError),n.notifyOnQuestion!==e.notifyOnQuestion&&(r.notifyOnQuestion=n.notifyOnQuestion),JSON.stringify(n.notificationTemplates)!==JSON.stringify(e.notificationTemplates)&&(r.notificationTemplates=n.notificationTemplates),n.summarizeLastMessage!==e.summarizeLastMessage&&(r.summarizeLastMessage=n.summarizeLastMessage),n.summaryThreshold!==e.summaryThreshold&&(r.summaryThreshold=n.summaryThreshold),n.summaryLength!==e.summaryLength&&(r.summaryLength=n.summaryLength),n.maxLastMessageLength!==e.maxLastMessageLength&&(r.maxLastMessageLength=n.maxLastMessageLength),n.autoDeleteEnabled!==e.autoDeleteEnabled&&(r.autoDeleteEnabled=n.autoDeleteEnabled),n.autoDeleteAfterDays!==e.autoDeleteAfterDays&&(r.autoDeleteAfterDays=n.autoDeleteAfterDays),n.sessionRetentionAction!==e.sessionRetentionAction&&(r.sessionRetentionAction=n.sessionRetentionAction),n.fontSize!==e.fontSize&&(r.fontSize=n.fontSize),n.terminalFontSize!==e.terminalFontSize&&(r.terminalFontSize=n.terminalFontSize),n.editorFontSize!==e.editorFontSize&&(r.editorFontSize=n.editorFontSize),n.uiFont!==e.uiFont&&(r.uiFont=n.uiFont),n.monoFont!==e.monoFont&&(r.monoFont=n.monoFont),n.padding!==e.padding&&(r.padding=n.padding),n.cornerRadius!==e.cornerRadius&&(r.cornerRadius=n.cornerRadius),n.inputBarOffset!==e.inputBarOffset&&(r.inputBarOffset=n.inputBarOffset),n.mobileKeyboardMode!==e.mobileKeyboardMode&&(r.mobileKeyboardMode=n.mobileKeyboardMode),n.diffLayoutPreference!==e.diffLayoutPreference&&(r.diffLayoutPreference=n.diffLayoutPreference),n.gitChangesViewMode!==e.gitChangesViewMode&&(r.gitChangesViewMode=n.gitChangesViewMode),e=n,Object.keys(r).length>0&&i(r)})},Br=(e,t)=>{if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]?.providerID!==t[n]?.providerID||e[n]?.modelID!==t[n]?.modelID)return!1;return!0},Vr=(e,t)=>{if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0},Hr=(e,t)=>{if(e===t)return!0;let n=Object.keys(e);return n.length===Object.keys(t).length&&n.every(n=>Array.isArray(t[n])&&Vr(e[n],t[n]))},Ur=()=>{let e=h.getState();return{favoriteModels:e.favoriteModels,hiddenModels:e.hiddenModels,collapsedModelProviders:e.collapsedModelProviders,recentModels:e.recentModels,recentAgents:e.recentAgents,recentEfforts:e.recentEfforts}},Wr=(e,t)=>Br(e.favoriteModels,t.favoriteModels)&&Br(e.hiddenModels,t.hiddenModels)&&Vr(e.collapsedModelProviders,t.collapsedModelProviders)&&Br(e.recentModels,t.recentModels)&&Vr(e.recentAgents,t.recentAgents)&&Hr(e.recentEfforts,t.recentEfforts),Gr=e=>({favoriteModels:e.favoriteModels.slice(),hiddenModels:e.hiddenModels.slice(),collapsedModelProviders:e.collapsedModelProviders.slice(),recentModels:e.recentModels.slice(),recentAgents:e.recentAgents.slice(),recentEfforts:Object.fromEntries(Object.entries(e.recentEfforts).map(([e,t])=>[e,t.slice()]))}),Kr=()=>{if(typeof window>`u`)return()=>{};let e=null,t=null,n=!1,r=()=>{e=null;let n=Ur();t&&Wr(t,n)||(t=Gr(n),te(n).catch(()=>{}))},i=()=>{if(!n){n=!0;return}e!==null&&window.clearTimeout(e),e=window.setTimeout(r,1200)},a=h.subscribe((e,t)=>{Wr({favoriteModels:e.favoriteModels,hiddenModels:e.hiddenModels,collapsedModelProviders:e.collapsedModelProviders,recentModels:e.recentModels,recentAgents:e.recentAgents,recentEfforts:e.recentEfforts},{favoriteModels:t.favoriteModels,hiddenModels:t.hiddenModels,collapsedModelProviders:t.collapsedModelProviders,recentModels:t.recentModels,recentAgents:t.recentAgents,recentEfforts:t.recentEfforts})||i()});return()=>{a(),e!==null&&window.clearTimeout(e)}},qr=!1,Jr=`openchamber-typography-base`,Yr=()=>{if(typeof document>`u`)return;let e=`:root {\n${Object.entries(p).map(([e,t])=>` --text-${e.replace(/([A-Z])/g,`-$1`).toLowerCase()}: ${t};`).join(`
|
|
4
|
-
`)}\n}\n`,t=document.getElementById(Jr);if(t){t.textContent=e;return}let n=document.createElement(`style`);n.id=Jr,n.textContent=e,document.head.appendChild(n)},Xr=()=>{qr||typeof window>`u`||(qr=!0,Yr())};function Zr(e){let t=(0,Z.c)(3),{children:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=[],t[0]=r):r=t[0],(0,X.useEffect)(Qr,r);let i;return t[1]===n?i=t[2]:(i=(0,Q.jsx)(ge,{client:P,children:n}),t[1]=n,t[2]=i),i}function Qr(){return E(P)}var $r=15,ei=2e3,ti=e=>{let t=K(e=>e.isConnected),n=K(e=>e.providers.length),r=K(e=>e.agents.length),i=K(e=>e.activeDirectoryKey),a=K(e=>e.refreshMissingCatalogs),o=e.enabled&&t&&(n===0||r===0),s=X.useRef(0),c=X.useRef(!1),[l,u]=X.useState(!1),d=e.source,f=ye(async()=>{if(!o||c.current)return;if(s.current>=$r){u(!0);return}let e=K.getState();if(!(e.providers.length>0&&e.agents.length>0)){c.current=!0,s.current+=1;try{await a({source:d})}catch{}finally{c.current=!1}}});X.useEffect(()=>{s.current=0,c.current=!1,u(!1),o&&f()},[o,i]),ve(f,o&&!l?ei:null)},ni=40,ri=20971520,ii=new Map,ai=0;function oi(e){return e.length*2}function si(e,t){let n=ii.get(e);n!==void 0&&(ai-=n),ii.delete(e),ii.set(e,t),ai+=t}function ci(e,t){let n=ii.get(e);(n!==void 0||t!==void 0)&&si(e,t??n??0)}function li(e){let t=ii.get(e);t!==void 0&&(ii.delete(e),ai-=t)}function ui(e,t){let n=e??new Set;for(;ii.size>ni||ai>ri;){let e=ii.keys().next().value;if(!e)return;if(n.has(e)){if(ci(e),ii.size<=n.size)return;continue}li(e),t(e)}}function di(e,t){si(e,t)}function fi(e){li(e)}function pi(e,t){ci(e,t)}function mi(e){let t=new Map,n=e=>{t.delete(e),fi(e)},r=e=>{let r=e.endsWith(`/`)?e:`${e}/`;for(let i of t.keys())(i===e||i.startsWith(r))&&n(i)},i=(e,t)=>t.isFile?e.mtimeMs!==void 0&&t.mtimeMs!==void 0?e.mtimeMs===t.mtimeMs&&e.size===t.size:e.size===t.size:!1,a=(e,n,r)=>{let i=oi(n.content);return t.set(e,{...n,size:r?.isFile?r.size:void 0,mtimeMs:r?.isFile?r.mtimeMs:void 0}),di(e,i),ui(new Set,e=>{t.delete(e)}),n},o=async(t,n)=>{let r=await e.statFile?.(t,n).catch(()=>null),i=await e.readFile(t,n),o=await e.statFile?.(t,n).catch(()=>null);if(r&&o&&r.isFile&&o.isFile){if(r.size===o.size&&r.mtimeMs===o.mtimeMs)return a(t,i,o);let s=await e.statFile?.(t,n).catch(()=>null),c=await e.readFile(t,n),l=await e.statFile?.(t,n).catch(()=>null);return s&&l&&s.isFile&&l.isFile&&s.size===l.size&&(s.mtimeMs,l.mtimeMs),a(t,c,l)}return a(t,i,o??r)},s=e.readFile?async(r,a)=>{if(a?.allowOutsideWorkspace)return o(r,a);let s=t.get(r);if(s){if(e.statFile){let t=await e.statFile(r,a).catch(()=>(n(r),null));if(!t||!i(s,t))return n(r),o(r,a)}return pi(r),{content:s.content,path:s.path}}return o(r,a)}:void 0,c=e.writeFile?async(t,r)=>(n(t),e.writeFile(t,r)):void 0,l=e.delete?async t=>(r(t),e.delete(t)):void 0,u=e.rename?async(t,n)=>(r(t),r(n),e.rename(t,n)):void 0;return{...e,readFile:s,writeFile:c,delete:l,rename:u}}function hi(e){let t=(0,Z.c)(8),{apis:n,children:r}=e,i;t[0]===n.files?i=t[1]:(i=mi(n.files),t[0]=n.files,t[1]=i);let a;t[2]!==n||t[3]!==i?(a={...n,files:i},t[2]=n,t[3]=i,t[4]=a):a=t[4];let o=a,s;return t[5]!==o||t[6]!==r?(s=(0,Q.jsx)(ln.Provider,{value:o,children:r}),t[5]=o,t[6]=r,t[7]=s):s=t[7],s}var gi=`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)`,_i=`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)`;function vi(){let e=(0,Z.c)(2),t=yi,[n,r]=X.useState(t),i,a;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=()=>{let e=()=>r(t()),n=new MutationObserver(e);return n.observe(document.documentElement,{attributes:!0,attributeFilter:[`class`]}),e(),()=>n.disconnect()},a=[],e[0]=i,e[1]=a):(i=e[0],a=e[1]),X.useEffect(i,a),n}function yi(){return typeof document<`u`&&document.documentElement.classList.contains(`dark`)}function bi(e){let t=(0,Z.c)(3),n,r;t[0]===e?(n=t[1],r=t[2]):(n=()=>{if(typeof document>`u`)return;let t=t=>{t.style.setProperty(`box-shadow`,e,`important`),t.style.setProperty(`outline`,`none`,`important`),t.getAttribute(`tabindex`)===`0`&&t.setAttribute(`tabindex`,`-1`)},n=()=>{document.querySelectorAll(`[data-sonner-toast]`).forEach(t)};n();let r=new MutationObserver(e=>{for(let n of e)n.addedNodes.forEach(e=>{e instanceof HTMLElement&&(e.matches?.(`[data-sonner-toast]`)&&t(e),e.querySelectorAll?.(`[data-sonner-toast]`).forEach(t))});n()});return r.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`style`,`tabindex`,`data-expanded`,`data-swiping`]}),()=>r.disconnect()},r=[e],t[0]=e,t[1]=n,t[2]=r),X.useEffect(n,r)}var xi=e=>{let t=(0,Z.c)(7),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r=vi();bi(r?gi:_i);let i=r?`dark`:`light`,a,o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(a={classNames:{toast:`group/toast toast !flex !min-w-[min(var(--width),calc(100vw-2rem))] !max-w-[calc(100vw-2rem)] !items-center !rounded-[var(--radius-xl)] !border-0 !px-3.5 !py-3 !gap-2.5 !text-foreground`,content:`!min-w-0 !flex-1 !text-left`,title:`typography-ui-label !font-medium !text-foreground`,description:`typography-meta !text-muted-foreground !mt-0.5`,actionButton:`!ms-0 !me-0 !shrink-0 !rounded-[var(--radius-md)] !bg-[var(--primary-base)] !text-[var(--primary-foreground)] hover:!opacity-85 !px-2 !py-1 typography-meta !font-medium transition-opacity`,cancelButton:`!ms-0 !me-0 !shrink-0 !rounded-[var(--radius-md)] !bg-[var(--interactive-hover)] !text-foreground hover:!bg-[var(--interactive-active)] !px-2 !py-1 typography-meta !font-medium transition-colors`,closeButton:`!rounded-[var(--radius-md)] !bg-[var(--interactive-hover)] !text-foreground hover:!bg-[var(--interactive-active)]`,icon:`!shrink-0 !text-muted-foreground`,success:`[&_[data-icon]]:!text-[var(--status-success)]`,error:`[&_[data-icon]]:!text-[var(--status-error)]`,warning:`[&_[data-icon]]:!text-[var(--status-warning)]`,info:`[&_[data-icon]]:!text-[var(--status-info)]`},style:{borderRadius:`var(--radius-xl)`,backgroundColor:`var(--surface-elevated)`}},o={"--normal-bg":`var(--surface-elevated)`,"--normal-text":`var(--foreground)`,"--normal-border":`transparent`,"--error-bg":`var(--surface-elevated)`,"--error-text":`var(--foreground)`,"--error-border":`transparent`,"--success-bg":`var(--surface-elevated)`,"--success-text":`var(--foreground)`,"--success-border":`transparent`,"--warning-bg":`var(--surface-elevated)`,"--warning-text":`var(--foreground)`,"--warning-border":`transparent`,"--info-bg":`var(--surface-elevated)`,"--info-text":`var(--foreground)`,"--info-border":`transparent`},t[2]=a,t[3]=o):(a=t[2],o=t[3]);let s;return t[4]!==n||t[5]!==i?(s=(0,Q.jsx)(_e,{theme:i,className:`toaster group`,closeButton:!1,toastOptions:a,style:o,...n}),t[4]=n,t[5]=i,t[6]=s):s=t[6],s},Si=`oc.sessions.pinned`,Ci=e=>{try{let t=e.getItem(Si);if(!t)return new Set;let n=JSON.parse(t);return Array.isArray(n)?new Set(n.filter(e=>typeof e==`string`)):new Set}catch{return new Set}},wi=(e,t)=>{try{e.setItem(Si,JSON.stringify([...t]))}catch{}},Ti=b(c()),Ei=se((e,t)=>({ids:Ci(Ti),setIds:n=>{let r=t().ids,i=typeof n==`function`?n(r):n;i!==r&&(e({ids:i}),wi(Ti,i))},toggle:n=>{let r=t().ids,i=new Set(r);i.has(n)?i.delete(n):i.add(n),e({ids:i}),wi(Ti,i)}}));typeof window<`u`&&d(e=>{t(e)&&Ei.setState({ids:Ci(Ti)})});var Di=(e,t)=>Ee(Te.getState().dictionary,e,t),Oi=e=>{let t=new Date(e),n=new Date,r=(e,t)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate(),i=new Date(n);return i.setDate(n.getDate()-1),r(t,n)?Di(`common.date.today`):r(t,i)?Di(`common.date.yesterday`):t.toLocaleDateString(Se(),{month:`short`,day:`numeric`,year:`numeric`}).replace(`,`,``)},ki=e=>{let t=new Date;if(((e,t)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate())(new Date(e),t)){let t=Date.now()-e;return t<6e4?Di(`common.relative.justNow`):t<36e5?Di(`common.relative.minutesAgoShort`,{count:Math.floor(t/6e4)}):Di(`common.relative.hoursAgoShort`,{count:Math.floor(t/36e5)})}return Oi(e)},Ai=e=>{let t=Math.max(0,Date.now()-e),n=6e4,r=60*n,i=24*r,a=7*i,o=365*i;return t<r?Di(`common.relative.minutesAgoCompact`,{count:Math.max(1,Math.floor(t/n))}):t<i?Di(`common.relative.hoursAgoCompact`,{count:Math.floor(t/r)}):t<a?Di(`common.relative.daysAgoCompact`,{count:Math.floor(t/i)}):t<5*a?Di(`common.relative.weeksAgoCompact`,{count:Math.floor(t/a)}):t<o?Di(`common.relative.monthsAgoCompact`,{count:Math.floor(t/2592e6)}):Di(`common.relative.yearsAgoCompact`,{count:Math.floor(t/o)})},ji=(e,t)=>Mi(v(e),v(t)),Mi=(e,t)=>!e||!t?!1:e===t?!0:t===`/`?e.startsWith(`/`):e.startsWith(`${t}/`),Ni=e=>e.toLowerCase().replace(/^opencode[/-]?/i,``).replace(/[-_]/g,``).trim(),Pi=(e,t)=>e?Ni(e)!==Ni(t):!1,Fi=e=>{if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`&&e.trim().length>0){let t=Number(e);if(Number.isFinite(t))return t}},Ii=e=>Fi(e.time?.created)??0,Li=(e,t,n)=>{let r=n.has(e.id),i=n.has(t.id);return r===i?r&&i?Ii(t)-Ii(e):Fe(t)-Fe(e):r?-1:1},Ri=e=>{let t=new Map;return e.forEach(e=>{t.set(e.id,e)}),Array.from(t.values())},zi=e=>`__archived__:${e}`,Bi=(e,t)=>{let n=v(e.directory??null),r=v(e.project?.worktree??null),i=n??r;if(!i)return`unassigned`;if(t&&i===t)return`project root`;let a=(t&&i.startsWith(`${t}/`)?i.slice(t.length+1):i).split(`/`).filter(Boolean);return a[a.length-1]??`unassigned`},Vi=`box-border w-full px-2 py-1.5 text-left typography-micro text-muted-foreground/70 select-none`,Hi=`bg-[color-mix(in_srgb,var(--surface-foreground)_6%,transparent)] dark:bg-[color-mix(in_srgb,var(--surface-foreground)_11%,transparent)]`,Ui=`hover:bg-[color-mix(in_srgb,var(--surface-foreground)_3.5%,transparent)] dark:hover:bg-[color-mix(in_srgb,var(--surface-foreground)_8%,transparent)]`,Wi=e=>{let t=Math.max(0,e);return t===0?8:30+(t-1)*14},Gi=(e,t)=>{if(!t)return e;let n=e.toLowerCase(),r=t.toLowerCase(),i=r.length;if(i===0)return e;let a=[],o=0,s=n.indexOf(r,o);for(;s!==-1;){s>o&&a.push(e.slice(o,s));let t=e.slice(s,s+i);a.push((0,Q.jsx)(`mark`,{className:`bg-primary text-primary-foreground ring-1 ring-primary/90`,children:t},`${s}-${t}`)),o=s+i,s=n.indexOf(r,o)}return o<e.length&&a.push(e.slice(o)),a.length>0?a:e},Ki=2e4,qi=()=>typeof document>`u`||document.visibilityState===`visible`&&document.hasFocus()?`visible`:`hidden`,Ji=e=>{if(!D()&&!Qe())return;let t=F();t?.push?.setVisibility&&t.push.setVisibility({visible:e,platform:Re()})},Yi=e=>{let t=e?.enabled??!0;X.useEffect(()=>{if(!t||!D()&&!Qe()||typeof window>`u`)return;if(Qe()){let e=!0,t=!1,n=null,r=()=>Ji(e);me(async()=>{let{App:e}=await import(`./vendor-capacitor-app-PzT84wSx.js`).then(e=>e.t);return{App:e}},__vite__mapDeps([0,1,2])).then(async({App:i})=>{if(t)return;let a=await i.getState().catch(()=>null);a&&(e=a.isActive===!0),r();let o=await i.addListener(`appStateChange`,({isActive:t})=>{e=t===!0,r()});if(t){o.remove();return}n=()=>void o.remove()}).catch(()=>void 0);let i=window.setInterval(()=>{e&&Ji(!0)},Ki);return()=>{t=!0,window.clearInterval(i),n?.()}}if(typeof document>`u`)return;let e=()=>{Ji(qi()===`visible`)},n=()=>{qi()===`visible`&&Ji(!0)},r=()=>{Ji(!1)};e();let i=window.setInterval(n,Ki);return document.addEventListener(`visibilitychange`,e),window.addEventListener(`pagehide`,r),window.addEventListener(`pageshow`,e),window.addEventListener(`focus`,e),window.addEventListener(`blur`,e),()=>{window.clearInterval(i),document.removeEventListener(`visibilitychange`,e),window.removeEventListener(`pagehide`,r),window.removeEventListener(`pageshow`,e),window.removeEventListener(`focus`,e),window.removeEventListener(`blur`,e)}},[t])},Xi=`OpenChamber`,Zi=e=>{let t=e.replace(/\\/g,`/`).replace(/\/+$/,``).split(`/`).filter(Boolean);return t[t.length-1]??``},Qi=(e,t)=>[e,t,Xi].filter(e=>typeof e==`string`&&e.trim().length>0).join(` | `),$i=()=>{let e=$e(e=>e.activeProjectId?e.projects.find(t=>t.id===e.activeProjectId)??null:null),t=X.useMemo(()=>e&&Zi(e.path)||null,[e]),[n,r]=X.useState(null);X.useEffect(()=>{if(typeof window>`u`||!C()){r(null);return}let e=!1,t=async()=>{try{if(w()){e||r(null);return}let t=window.__OPENCHAMBER_LOCAL_ORIGIN__||window.location.origin,n=_();if(n&&I(n,t)){e||r(null);return}let i=(await U()).hosts.find(e=>n?I(n,z(e)):!1),a=i?.label?.trim()?L(i.label.trim()):`Instance`;e||r(a)}catch{e||r(`Instance`)}};t();let n=()=>{t()};return window.addEventListener(`focus`,n),()=>{e=!0,window.removeEventListener(`focus`,n)}},[]);let i=X.useMemo(()=>Qi(t,n),[t,n]);X.useEffect(()=>{typeof document<`u`&&(document.title=i),C()&&(async()=>{try{if(typeof navigator<`u`&&/Macintosh|Mac OS X/.test(navigator.userAgent||``))return;await be(i)}catch{return}})()},[i])},ea=()=>{let e=q.getState().currentSessionId;if(!e)return``;let t=Xe().find(t=>t.id===e);return typeof t?.directory==`string`?t.directory:``},ta=async(e,t=6e3)=>{let n=new AbortController,r=setTimeout(()=>n.abort(),t),i=Date.now();try{let t=await A(e,{method:`GET`,headers:{Accept:`application/json`},signal:n.signal}),r=Date.now()-i,a=t.headers.get(`content-type`)||``,o=a.toLowerCase(),s=o.includes(`json`)&&!o.includes(`text/html`),c=``;if(s){let e=await t.json().catch(()=>null);if(Array.isArray(e))c=`json[array] len=${e.length}`;else if(e&&typeof e==`object`){let t=Object.keys(e).slice(0,8);c=`json[object] keys=${t.join(`,`)}${Object.keys(e).length>t.length?`,…`:``}`}else c=`json[${typeof e}]`}else c=a?`content-type=${a}`:`no content-type`;return{ok:t.ok&&s,status:t.status,elapsedMs:r,summary:c}}catch(e){return{ok:!1,status:0,elapsedMs:Date.now()-i,summary:`error=${n.signal.aborted||e instanceof Error&&(e.name===`AbortError`||e.message.toLowerCase().includes(`aborted`))?`timeout after ${t}ms`:e instanceof Error?e.message:String(e)}`}}finally{clearTimeout(r)}},na=e=>{if(!e||!Number.isFinite(e))return`(n/a)`;try{return new Date(e).toISOString()}catch{return`(invalid)`}},ra=e=>{if(typeof e==`number`&&Number.isFinite(e)&&e>0)return Math.trunc(e);if(typeof e==`string`){let t=Number.parseInt(e,10);if(Number.isFinite(t)&&t>0)return t}return null},ia=e=>!!e&&typeof e==`object`&&!Array.isArray(e),aa=(e,t=`(n/a)`)=>typeof e==`string`?e.trim()||t:typeof e==`number`&&Number.isFinite(e)?String(e):typeof e==`boolean`?e?`true`:`false`:t,oa=(e,t,n)=>e===`node-shebang`||e===`node-launcher`?t?`node (${t})`:`node`:e===`bun-shebang`?n?`bun (${n})`:`bun`:e||`direct executable`,sa=async()=>{let e=new Date,t=typeof navigator<`u`?navigator.userAgent:`(no navigator)`,n=ea(),r=h.getState().eventStreamStatus,a=typeof window<`u`?window.location.origin:``,o=i(),s=o.health(),c=o.api(`/api/`),l=await(async()=>{if(!s)return null;let e=new AbortController,t=setTimeout(()=>e.abort(),5e3);try{let t=await A(s,{method:`GET`,headers:{Accept:`application/json`},signal:e.signal});if(!t.ok)return null;let n=await t.json().catch(()=>null);return!n||typeof n!=`object`||Array.isArray(n)?null:n}catch{return null}finally{clearTimeout(t)}})(),u=await(async()=>{if(!c)return null;let e=new AbortController,t=setTimeout(()=>e.abort(),7e3);try{let t=await A(o.api(`/api/config/opencode-resolution`),{method:`GET`,headers:{Accept:`application/json`},signal:e.signal}),n=t.headers.get(`content-type`)||`(none)`;if(!t.ok)return{data:null,status:t.status,error:`http ${t.status} content-type=${n}`};let r=await t.text(),i=null;try{i=JSON.parse(r)}catch{let e=r.replace(/\s+/g,` `).slice(0,120);return{data:null,status:t.status,error:`invalid json content-type=${n} body=${e||`(empty)`}`}}return!i||typeof i!=`object`||Array.isArray(i)?{data:null,status:t.status,error:`invalid json-shape content-type=${n}`}:{data:i,status:t.status,error:null}}catch(e){return{data:null,status:null,error:e instanceof Error?e.message:String(e)}}finally{clearTimeout(t)}})()||{data:null,status:null,error:null},d=(e,t=!0)=>{if(!c)return null;let r=new URL(e.replace(/^\/+/,``),c);return t&&n&&r.searchParams.set(`directory`,n),r.toString()},f=c?await Promise.all([{label:`health`,path:`/health`,includeDirectory:!1},{label:`config`,path:`/config`,includeDirectory:!0},{label:`providers`,path:`/config/providers`,includeDirectory:!0},{label:`agents`,path:`/agent`,includeDirectory:!0,timeoutMs:12e3},{label:`commands`,path:`/command`,includeDirectory:!0,timeoutMs:1e4},{label:`project`,path:`/project/current`,includeDirectory:!0},{label:`path`,path:`/path`,includeDirectory:!0},{label:`sessions`,path:`/session`,includeDirectory:!0,timeoutMs:12e3},{label:`sessionStatus`,path:`/session/status`,includeDirectory:!0}].map(async e=>{let t=d(e.path,e.includeDirectory!==!1);if(!t)return{label:e.label,url:`(none)`,result:null};let n=await ta(t,typeof e.timeoutMs==`number`?e.timeoutMs:void 0);return{label:e.label,url:t,result:n}})):[],p=[];p.push(`Time: ${e.toISOString()}`),p.push(`OpenChamber version: 1.18.2-beta.2`),p.push(`Runtime: ${a||`(unknown)`} (api=${c||`(unknown)`})`),p.push(`OpenCode SDK base: ${de.getBaseUrl()}`),p.push(`Event stream: ${r}`),p.push(`Directory: ${n||`(none)`}`),p.push(`Platform: ${t}`);let m=ra(l?.openCodePort);if(p.push(`OpenCode runtime port: ${m??`(unknown)`}`),typeof l?.openCodeRunning==`boolean`&&p.push(`OpenCode runtime running: ${l.openCodeRunning?`yes`:`no`}`),typeof l?.openCodeSecureConnection==`boolean`&&p.push(`Secure OpenCode connection: ${l.openCodeSecureConnection?`true`:`false`}`),typeof l?.openCodeAuthSource==`string`&&l.openCodeAuthSource.trim()&&p.push(`OpenCode auth source: ${l.openCodeAuthSource}`),typeof window<`u`){let e=window.__OPENCHAMBER_MACOS_MAJOR__;typeof e==`number`&&Number.isFinite(e)&&e>0&&p.push(`macOS major: ${e}`)}if(/Mac OS X|Macintosh/.test(t)){p.push(``),p.push(`OpenCode CLI resolution:`);let e=ia(l?.lastOpenCodeLaunchDiagnostics)?l.lastOpenCodeLaunchDiagnostics:null,t=e&&Array.isArray(e.args)?e.args.filter(e=>typeof e==`string`):[],n=u.data,r=n&&typeof n.configured==`string`?n.configured:null,i=n&&typeof n.resolved==`string`?n.resolved:l&&typeof l.opencodeBinaryResolved==`string`?l.opencodeBinaryResolved:``,a=n&&typeof n.resolvedDir==`string`?n.resolvedDir:``,o=n&&typeof n.source==`string`?n.source:l&&typeof l.opencodeBinarySource==`string`?l.opencodeBinarySource:``,s=n&&typeof n.launchBinary==`string`?n.launchBinary:l&&typeof l.opencodeLaunchBinary==`string`?l.opencodeLaunchBinary:``,c=n&&typeof n.launchWrapperType==`string`?n.launchWrapperType:l&&typeof l.opencodeLaunchWrapperType==`string`?l.opencodeLaunchWrapperType:``,d=n&&Array.isArray(n.launchArgs)?n.launchArgs.filter(e=>typeof e==`string`):l&&Array.isArray(l.opencodeLaunchArgs)?l.opencodeLaunchArgs.filter(e=>typeof e==`string`):[],f=n&&typeof n.node==`string`?n.node:l&&typeof l.nodeBinaryResolved==`string`?l.nodeBinaryResolved:``,m=n&&typeof n.bun==`string`?n.bun:l&&typeof l.bunBinaryResolved==`string`?l.bunBinaryResolved:``,h=n&&typeof n.detectedNow==`string`?n.detectedNow:``,g=n&&typeof n.detectedSourceNow==`string`?n.detectedSourceNow:``;if(r!==null&&p.push(`- configured: ${r.trim().length===0?`(cleared)`:r}`),i){let e=a||(i.includes(`/`)?i.split(`/`).slice(0,-1).join(`/`)||`/`:``);p.push(`- opencode: ${i}${e?` (dir=${e})`:``}`)}else p.push(`- opencode: (n/a)`);p.push(`- source: ${o||`(n/a)`}`),h&&(p.push(`- detected-now: ${h}`),p.push(`- detected-source: ${g||`(n/a)`}`)),e?(p.push(`- launched-at: ${aa(e.launchedAt)}`),p.push(`- launch: ${aa(e.binary)} ${t.join(` `)}`.trim()),p.push(`- cwd: ${aa(e.cwd)}`),p.push(`- wrapper: ${aa(e.wrapperType)}`),p.push(`- runtime: ${oa(aa(e.wrapperType,``),f,m)}`),p.push(`- PATH entries: ${aa(e.pathEntryCount,`(unknown)`)}`),p.push(`- shell env: ${aa(e.hasShellEnv,`(unknown)`)} (${aa(e.shellEnvKeysCount,`?`)} keys)`)):(p.push(`- launch-binary: ${s||`(n/a)`}`),p.push(`- launch-wrapper: ${c||`(n/a)`}`),p.push(`- launch-args: ${d.length?d.join(` `):`(none)`}`),p.push(`- runtime: ${oa(c||``,f,m)}`)),!n&&u.error&&p.push(`- resolution-endpoint: ${u.error}`)}if(p.push(``),f.length){p.push(`OpenCode API probes:`);for(let e of f){if(!e.result){p.push(`- ${e.label}: (no url)`);continue}let{ok:t,status:n,elapsedMs:r,summary:i}=e.result,a=t?``:` url=${e.url}`;p.push(`- ${e.label}: ${t?`ok`:`fail`} status=${n} time=${r}ms ${i}${a}`)}}else p.push(`OpenCode API probes: (skipped)`);return p.push(``),p.push(`Generated: ${na(Date.now())}`),p.join(`
|
|
5
|
-
`)},ca=async()=>{let e=await sa(),t=h.getState();t.setOpenCodeStatusText(e),t.setOpenCodeStatusDialogOpen(!0)},la=(e,t)=>e===t?!0:!e||!t?!1:e.scope===t.scope&&e.sessionId===t.sessionId&&e.projectId===t.projectId,ua=e=>e?`${e.scope}:${e.projectId??``}:${e.sessionId}`:null,da=e=>({scope:`project`,sessionId:e,projectId:null}),fa=se()(e=>({focus:null,setFocus:t=>e(e=>la(e.focus,t)?e:{focus:t})})),pa=null,ma=0,ha=(e,t)=>{let n=new Set,r=[];for(let i of t){if(!i.sessionId)continue;let t=e===`pinned`?i.sessionId:`${i.projectId??``}:${i.sessionId}`;n.has(t)||(n.add(t),r.push(i.scope===e?i:{...i,scope:e}))}return r},ga=e=>{let t=++ma;return pa={pinned:ha(`pinned`,e.pinned),project:ha(`project`,e.project)},()=>{ma===t&&(pa=null)}},_a=()=>pa,va=e=>!!e.parentID,ya=(e,t)=>{if(!e)return null;let n=new Map(t.map(e=>[e.id,e])),r=n.get(e);if(!r)return e;for(;r&&va(r);){let e=r.parentID;if(!e)break;let t=n.get(e);if(!t)return e;r=t}return r?.id??e},ba=()=>{let e=at.getState().activeSessions;if(e.length>0)return e;let t=Ke();return t.length>0?t:Xe()},xa=(e,t,n)=>{if(!t)return-1;if(n?.projectId){let r=e.findIndex(e=>e.sessionId===t&&e.projectId===n.projectId);if(r>=0)return r}return e.findIndex(e=>e.sessionId===t)},Sa=(e,t,n,r)=>{if(e.length===0)return null;let i=xa(e,n,r);return i<0?t>0?e[0]??null:e[e.length-1]??null:e[(i+t+e.length)%e.length]??null},Ca=(e,t,n=fa.getState().focus)=>{let r=ya(t,ba()),i=n?.sessionId===t?n:null,a=i?.scope??`project`,o=_a();return o?Sa(a===`pinned`?o.pinned:o.project,e,r,i)||(a===`pinned`?Sa(o.project,e,r,i):null):null},wa=(e,t,n=e=>{q.getState().setCurrentSession(e.sessionId,e.directory)})=>{let r=Ca(e,t);return r?(fa.getState().setFocus({scope:r.scope,sessionId:r.sessionId,projectId:r.projectId}),n(r),r):null},Ta=.5,Ea=.1,Da=`oc.webviewZoomFactor`,Oa=e=>Number.isFinite(e)?Math.min(3,Math.max(Ta,Math.round(e*100)/100)):1,ka=()=>{if(typeof window>`u`)return 1;try{let e=window.localStorage.getItem(Da);return e?Oa(Number.parseFloat(e)):1}catch{return 1}},Aa=e=>{if(!(typeof window>`u`))try{window.localStorage.setItem(Da,String(e))}catch{}},ja=e=>{let t=Oa(e);return typeof document<`u`&&(document.documentElement.style.zoom=t===1?``:String(t)),Aa(t),t},Ma=()=>{if(typeof document>`u`)return 1;let e=document.documentElement.style.zoom;if(!e)return ka();let t=Number.parseFloat(e);return Number.isFinite(t)&&t>0?Oa(t):ka()},Na=()=>{if(x())return;let e=ka();e!==1&&ja(e)},Pa=async()=>{if(x())try{let e=await M(`desktop_zoom_in`);if(typeof e==`number`&&Number.isFinite(e))return Oa(e)}catch(e){console.warn(`[webview-zoom] desktop_zoom_in failed, using CSS zoom`,e)}return ja(Ma()+Ea)},Fa=async()=>{if(x())try{let e=await M(`desktop_zoom_out`);if(typeof e==`number`&&Number.isFinite(e))return Oa(e)}catch(e){console.warn(`[webview-zoom] desktop_zoom_out failed, using CSS zoom`,e)}return ja(Ma()-Ea)},Ia=async()=>{if(x())try{let e=await M(`desktop_zoom_reset`);if(typeof e==`number`&&Number.isFinite(e))return Oa(e)}catch(e){console.warn(`[webview-zoom] desktop_zoom_reset failed, using CSS zoom`,e)}return ja(1)},La=9,Ra=null,za=0,Ba=({pinnedTargets:e,projectTargets:t})=>[...e,...t].slice(0,La),Va=(e,t)=>{let n=e.findIndex(e=>e.scope===t.scope&&e.sessionId===t.sessionId&&(e.projectId??null)===(t.projectId??null));return n>=0?n+1:null},Ha=e=>{let t=++za;return Ra={targets:e.targets.slice(0,La),activate:e.activate},()=>{za===t&&(Ra=null)}},Ua=e=>{if(!Number.isInteger(e)||e<1||e>La)return!1;let t=Ra,n=t?.targets[e-1];return!t||!n?!1:(t.activate(n),!0)},Wa=e=>{let t=e.trim();if(!t)return null;let n=dn.getState(),r=n.createTab(t);return!r||r===`tab-invalid`?null:(n.setActiveTab(t,r),r)},Ga=e=>{let t=e.trim();if(!t)return null;let n=h.getState();return!n.isBottomTerminalOpen&&n.activeMainTab!==`terminal`&&n.setBottomTerminalOpen(!0),Wa(t)},Ka=(e,t)=>{let n=e.trim();if(!n)return!1;let r=dn.getState(),i=r.getDirectoryState(n);if(!i||i.tabs.length<2)return!1;let a=i.tabs.findIndex(e=>e.id===i.activeTabId),o=((a>=0?a:0)+t+i.tabs.length)%i.tabs.length,s=i.tabs[o]?.id;return!s||s===i.activeTabId?!1:(r.setActiveTab(n,s),!0)},qa=e=>{let t=e.trim();if(!t)return{closed:!1,wasLastTab:!1};let n=dn.getState(),r=n.getDirectoryState(t),i=r?.activeTabId??null;if(!r||!i)return{closed:!1,wasLastTab:!1};let a=r.tabs.length===1;return n.closeTab(t,i),{closed:!0,wasLastTab:a}},Ja=()=>typeof window>`u`||window.parent===window||!sn(window.location.search)?!1:(window.parent.postMessage({type:$t},window.location.origin),!0),Ya=()=>{let{isMobile:e,closeActiveContextPanelTab:t}=h.getState();if(e)return!1;let n=un();return n&&t(n)?!0:x()?(M(`desktop_close_current_window`).catch(e=>{console.warn(`[keyboard-shortcuts] failed to close current window`,e)}),!0):!1},Xa=({sessionId:e,surfaceKind:t,wiringCanAbort:n,primaryCanAbort:r})=>e?n?!0:t===`primary`&&r:!1,Za=async({sessionId:e,currentProviderId:t,currentModelId:n,waitForConnectionOrThrow:r,getAuthoritativeDirectoryForSession:i,summarizeSession:a,onCompactFailed:o})=>{try{await r();let s=i(e);if(!s){o();return}await a(e,t,n,s)}catch(e){o(e)}},Qa=()=>{let e=(0,Z.c)(70),{t}=xe(),n=q($a),r=q(eo),i=q(to),a=q(no),o=Le,s=h(ro),c=h(io),l=h(ao),u=h(oo),d=h(so),f=h(co),p=h(lo),m=h(uo),g=h(fo),_=h(po),v=h(mo),b=h(ho),S=h(go),C=h(_o),w=h(vo),T=h(yo),E=h(bo),D=h(xo),O=h(So),k=pe(Co),A=$e(wo),{themeMode:j,setThemeMode:ee}=Rt(),{working:te}=on(),N=X.useRef(null),P=X.useRef(null),F=X.useRef(null),ne=X.useRef(!1),re=X.useRef(j),I,L;e[0]===j?(I=e[1],L=e[2]):(I=()=>{re.current=j},L=[j],e[0]=j,e[1]=I,e[2]=L),X.useEffect(I,L);let R;e[3]===i?R=e[4]:(R=()=>{P.current&&=(clearTimeout(P.current),null),N.current=null,i()},e[3]=i,e[4]=R);let z=R,B;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(B=()=>{F.current&&=(clearTimeout(F.current),null),en.getState().clear()},e[5]=B):B=e[5];let V=B,ie;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(ie=()=>{F.current&&=(clearTimeout(F.current),null);let e=en.getState().arm(Qt);F.current=setTimeout(()=>{let{expiresAt:e}=en.getState();e&&Date.now()>=e&&en.getState().clear(),F.current=null},Math.max(0,e-Date.now()))},e[6]=ie):ie=e[6];let H=ie,U;e[7]!==A?.id||e[8]!==A?.path||e[9]!==r||e[10]!==k||e[11]!==a||e[12]!==g||e[13]!==n||e[14]!==z||e[15]!==v||e[16]!==C||e[17]!==m||e[18]!==S||e[19]!==E||e[20]!==d||e[21]!==f||e[22]!==_||e[23]!==b||e[24]!==ee||e[25]!==w||e[26]!==O||e[27]!==t||e[28]!==p||e[29]!==s||e[30]!==D||e[31]!==c||e[32]!==T||e[33]!==u||e[34]!==l||e[35]!==te?(U=()=>{let e=e=>Ht(e,O),i=e=>Ut(e,O),j=To,F=[`[data-slot="dropdown-menu-content"]`,`[data-slot="select-content"]`,`[role="combobox"]`,`[role="listbox"]`,`[role="menu"]`,`[role="menuitem"]`,`[role="option"]`,`[data-radix-popper-content-wrapper]`].join(`,`),I=e=>e instanceof Element&&!!e.closest(F),L=Do,R=ko,B=Ao,ie=async()=>{let e=tn(),n=e?rn(e):null;if(n&&e){try{await n.compact({providerID:e.selection.value.providerID,modelID:e.selection.value.modelID,agent:e.selection.value.agent,variant:e.selection.value.variant})}catch(e){let n=e;nt.error(n instanceof Error?n.message:t(`chat.chatInput.toast.compactFailed`))}return}let r=q.getState().currentSessionId;if(!r)return;let{currentProviderId:i,currentModelId:a}=K.getState();await Za({sessionId:r,currentProviderId:i,currentModelId:a,waitForConnectionOrThrow:Be,getAuthoritativeDirectoryForSession:q.getState().getAuthoritativeDirectoryForSession,summarizeSession:jo,onCompactFailed:e=>{nt.error(e instanceof Error?e.message:t(`chat.chatInput.toast.compactFailed`))}})},U=t=>{let r=en.getState().pending;if(t.repeat||t.isComposing&&!r||t.defaultPrevented&&!r||j(t.target)&&!r)return;let i=e(`leader_key`);if(r){let e=()=>{ne.current=!0,window.setTimeout(()=>{ne.current=!1},0)};if(i&&Y(t,i)){t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),H();return}let r=t.key.toLowerCase();if(r===`escape`){t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),V();return}if(t.key===`Control`||t.key===`Shift`||t.key===`Alt`||t.key===`Meta`)return;if(t.metaKey||t.ctrlKey||t.altKey){t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),e(),V();return}let{activeMainTab:a,isModelSelectorOpen:o,isAgentSelectorOpen:s}=h.getState(),c=cn(a)&&!B();if(r===`m`&&c){t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),e(),V(),window.requestAnimationFrame(()=>{S(!o,{instant:!0})});return}if(r===`a`&&c){t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),e(),V(),C(!s,{instant:!0});return}if(r===`n`&&c){t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),e(),V();let r=tn(),i=r?rn(r):null;i?i.shortcut(`new`):(v(`chat`),_(!1),n());return}if(r===`c`&&c){t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),e(),V(),ie(),R();return}t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),e(),V(),R();return}if(!i||!Y(t,i)||B())return;let{activeMainTab:a}=h.getState();cn(a)&&(t.preventDefault(),t.stopPropagation(),H())},ae=()=>en.getState().pending||ne.current,oe=e=>{ae()&&e.preventDefault()},W=e=>{ae()&&(e.preventDefault(),e.stopPropagation())},se=t=>{if(j(t.target)){if(!y()&&Y(t,e(`new_terminal_tab`))){let e=un();if(!e||!Wa(e))return;t.preventDefault(),t.stopPropagation();return}if(!y()&&Y(t,e(`previous_terminal_tab`))){let e=un();if(!e||!Ka(e,-1))return;t.preventDefault(),t.stopPropagation();return}if(!y()&&Y(t,e(`next_terminal_tab`))){let e=un();if(!e||!Ka(e,1))return;t.preventDefault(),t.stopPropagation();return}if(Y(t,e(`close_context_panel_tab`))){let e=un();if(!e)return;let{closed:n,wasLastTab:r}=qa(e);if(!n)return;if(t.preventDefault(),t.stopPropagation(),r){let e=h.getState();e.setBottomTerminalOpen(!1),e.activeMainTab===`terminal`&&e.setActiveMainTab(`chat`)}return}if(Y(t,e(`toggle_terminal`))){let{isMobile:e}=h.getState();if(e)return;t.preventDefault(),t.stopPropagation(),p();return}if(Y(t,e(`toggle_bottom_panel`))){let{isMobile:e}=h.getState();if(e)return;t.preventDefault(),t.stopPropagation(),p();return}if(Y(t,e(`toggle_terminal_expanded`))){let{isMobile:e,isBottomTerminalExpanded:n}=h.getState();if(e)return;t.preventDefault(),t.stopPropagation(),m(!n);return}}},G=Mo,ce=t=>{if(t.defaultPrevented)return;if(Y(t,e(`close_context_panel_tab`))){(Ja()||Ya())&&(t.preventDefault(),t.stopPropagation());return}if(j(t.target))return;let C=No;if(C(t.target)&&t.ctrlKey&&!t.metaKey&&!t.shiftKey&&!t.altKey&&t.key.toLowerCase()===`t`){t.preventDefault(),G();return}if(Y(t,e(`open_command_palette`))){t.preventDefault(),s();return}if(Y(t,e(`open_timeline_dialog`))){t.preventDefault(),w(!0);return}if(Y(t,e(`toggle_prompt_navigator`))){let{activeMainTab:e,promptNavigatorEnabled:n,isSettingsDialogOpen:r,isCommandPaletteOpen:i,isHelpDialogOpen:a,isSessionSwitcherOpen:o,isAboutDialogOpen:s,isTimelineDialogOpen:c,isMultiRunLauncherOpen:l,isImagePreviewOpen:u}=h.getState();if(!n||g||y()||e!==`chat`||r||i||a||o||s||c||l||u)return;t.preventDefault(),T();return}if(Y(t,e(`open_status`))){t.preventDefault(),ca();return}if(Y(t,e(`open_help`))){t.preventDefault(),c();return}if(x()&&Y(t,e(`new_mini_chat`))){t.preventDefault(),M(`desktop_open_draft_mini_chat_window`,{directory:k||A?.path||``,projectId:A?.id??null}).catch(Po);return}let O=Y(t,e(`new_chat`)),F=Y(t,e(`new_chat_worktree`));if(O||F){if(t.preventDefault(),v(`chat`),_(!1),!y()&&F){Zt();return}n();return}if(Y(t,e(`cycle_theme`))){if(t.preventDefault(),Sr()!==null&&window.parent&&window.parent!==window){window.parent.postMessage({type:`openchamber:cycle-theme-request`},window.location.origin);return}let e=[`light`,`dark`,`system`],n=document.activeElement,r=(e.indexOf(re.current)+1)%e.length;ee(e[r]),requestAnimationFrame(()=>{typeof document>`u`||typeof window>`u`||(document.hasFocus()||window.focus(),n&&document.contains(n)&&n.focus({preventScroll:!0}))});return}if(Bt(t,`in`,e(`zoom_in`))){t.preventDefault(),Pa();return}if(Bt(t,`out`,e(`zoom_out`))){t.preventDefault(),Fa();return}if(Y(t,e(`zoom_reset`))){t.preventDefault(),Ia();return}if(Y(t,e(`open_settings`))){t.preventDefault();let{isSettingsDialogOpen:e}=h.getState();b(!e);return}if(Y(t,e(`toggle_sidebar`))){t.preventDefault();let{isMobile:e,isSessionSwitcherOpen:n}=h.getState();e?_(!n):l();return}if(Y(t,e(`focus_input`))){t.preventDefault(),document.querySelector(`textarea[data-chat-input="true"]`)?.focus();return}let ne=e(`cycle_agent`),R=ne&&!ne.includes(`shift`)?Wt(`shift+${ne}`):``,B=R&&Y(t,R)?-1:+!!Y(t,ne);if(B!==0){let{isSettingsDialogOpen:e,isCommandPaletteOpen:n,isHelpDialogOpen:r,isSessionSwitcherOpen:i,isAboutDialogOpen:a,activeMainTab:o}=h.getState();if(e||n||r||i||a||!cn(o)||!C(t.target))return;let s=tn(),c=s?rn(s):null;if(c){t.preventDefault(),c.shortcut(`cycle`,B);return}let l=K.getState(),u=Ne(l.getVisibleAgents(),l.currentAgentName,B);if(!u)return;t.preventDefault(),l.setAgent(u),h.getState().addRecentAgent(u);let d=q.getState().currentSessionId;d&&Ie.getState().saveSessionAgentSelection(d,u);return}if(i(`toggle_right_sidebar`).some(e=>Y(t,e))){let{isMobile:e}=h.getState();if(e)return;t.preventDefault(),u();return}if(Y(t,e(`open_right_sidebar_git`))){let{isMobile:e}=h.getState();if(e)return;t.preventDefault(),d(!0),f(`git`);return}if(Y(t,e(`open_right_sidebar_files`))){let{isMobile:e}=h.getState();if(e)return;t.preventDefault(),d(!0),f(`files`);return}if(Y(t,e(`cycle_right_sidebar_tab`))){let{isMobile:e,rightSidebarTab:n}=h.getState();if(e)return;let r=[`git`,`files`,`context`],i=r[(r.indexOf(n)+1)%r.length];t.preventDefault(),d(!0),f(i);return}let V=e=>wa(e,q.getState().currentSessionId,e=>{v(`chat`),_(!1),q.getState().setCurrentSession(e.sessionId,e.directory)});if(i(`previous_session`).some(e=>Y(t,e))){t.preventDefault(),V(-1);return}if(i(`next_session`).some(e=>Y(t,e))){t.preventDefault(),V(1);return}for(let n=1;n<=9;n+=1)if(Y(t,e(`switch_tab_${n}`))){Ua(n)&&t.preventDefault();return}if(Y(t,e(`toggle_terminal`))){let{isMobile:e}=h.getState();if(e)return;t.preventDefault(),p();return}if(Y(t,e(`open_new_terminal`))){let{isMobile:e}=h.getState();if(e||y())return;let n=un();if(!n||!Ga(n))return;t.preventDefault();return}if(Y(t,e(`toggle_bottom_panel`))){let{isMobile:e}=h.getState();if(e)return;t.preventDefault(),p();return}if(Y(t,e(`toggle_terminal_expanded`))){let{isMobile:e,isBottomTerminalExpanded:n}=h.getState();if(e)return;t.preventDefault(),m(!n);return}if(Y(t,e(`open_model_selector`))){let{isSettingsDialogOpen:e,isCommandPaletteOpen:n,isHelpDialogOpen:r,isSessionSwitcherOpen:i,isAboutDialogOpen:a,activeMainTab:o,isModelSelectorOpen:s}=h.getState();if(e)return;let c=n||r||i||a,l=cn(o);if(c||!l)return;t.preventDefault(),S(!s,{instant:!0});return}if(Y(t,e(`cycle_thinking_variant`))){G()&&t.preventDefault();return}if(Y(t,e(`cycle_favorite_model_forward`))||Y(t,e(`cycle_favorite_model_backward`))){let{isSettingsDialogOpen:n,isCommandPaletteOpen:r,isHelpDialogOpen:i,isSessionSwitcherOpen:a,isAboutDialogOpen:o,activeMainTab:s,favoriteModels:c,addRecentModel:l}=h.getState();if(n)return;let u=r||i||a||o,d=cn(s);if(u||!d||c.length===0)return;t.preventDefault();let f=c.length,p=Y(t,e(`cycle_favorite_model_forward`))?1:-1,m=tn();if(m?.selection.change){let e=m.selection.value.providerID,t=m.selection.value.modelID,n=c[(c.findIndex(n=>n.providerID===e&&n.modelID===t)+p+f)%f];m.selection.change({...m.selection.value,providerID:n.providerID,modelID:n.modelID,variant:void 0}),l(n.providerID,n.modelID);return}let{currentProviderId:g,currentModelId:_,setProvider:v,setModel:y}=K.getState(),b=c[(c.findIndex(e=>e.providerID===g&&e.modelID===_)+p+f)%f];v(b.providerID),y(b.modelID),l(b.providerID,b.modelID);return}if(Y(t,e(`expand_input`))){if(g)return;t.preventDefault(),D();return}if(Y(t,e(`toggle_dictation`))){let{activeMainTab:e,isCommandPaletteOpen:n,isHelpDialogOpen:r,isSessionSwitcherOpen:i,isSettingsDialogOpen:a}=h.getState();if(!cn(e)||n||r||i||a)return;t.preventDefault(),window.dispatchEvent(new CustomEvent(`openchamber:dictation-toggle`));return}if(t.key===`Escape`){let e=t.target,n=!!e?.closest(`[role="dialog"]`),i=!!document.querySelector(`[data-settings-view="true"]`),s=!!(e?.closest(`.terminal-viewport-container`)||e?.getAttribute(`data-terminal-hidden-input`)===`true`),c=I(e)||L(),{isSettingsDialogOpen:l,isCommandPaletteOpen:u,isHelpDialogOpen:d,isSessionSwitcherOpen:f,isAboutDialogOpen:p,isMultiRunLauncherOpen:m,isImagePreviewOpen:g,activeMainTab:_,isPromptNavigatorPanelOpen:v}=h.getState();if(n||s||c){z();return}if(v){t.preventDefault(),E(!1),z();return}if(l){t.preventDefault(),b(!1),z();return}if(i){z();return}let y=u||d||f||p||m||g,x=cn(_);if(y||!x){z();return}let S=tn(),C=S?rn(S):null,w=S?.sessionID??a;if(!Xa({sessionId:w,surfaceKind:S?.kind,wiringCanAbort:C?.canAbort,primaryCanAbort:te.canAbort})){z();return}let T=Date.now(),D=N.current;if(D&&T<D){t.preventDefault(),z(),C?C.abort():(w&&Me(w),o(w??``));return}t.preventDefault();let O=S?.kind===`secondary`?T+3e3:r(3e3)??T+3e3;N.current=O,P.current&&clearTimeout(P.current);let k=Math.max(O-T,0);P.current=setTimeout(()=>{N.current&&Date.now()>=N.current&&z()},k||0);return}};return window.addEventListener(`keydown`,U,!0),window.addEventListener(`beforeinput`,oe,!0),window.addEventListener(`compositionstart`,W,!0),window.addEventListener(`compositionupdate`,W,!0),window.addEventListener(`compositionend`,W,!0),window.addEventListener(`keydown`,se,!0),window.addEventListener(`keydown`,ce),()=>{window.removeEventListener(`keydown`,U,!0),window.removeEventListener(`beforeinput`,oe,!0),window.removeEventListener(`compositionstart`,W,!0),window.removeEventListener(`compositionupdate`,W,!0),window.removeEventListener(`compositionend`,W,!0),window.removeEventListener(`keydown`,se,!0),window.removeEventListener(`keydown`,ce)}},e[7]=A?.id,e[8]=A?.path,e[9]=r,e[10]=k,e[11]=a,e[12]=g,e[13]=n,e[14]=z,e[15]=v,e[16]=C,e[17]=m,e[18]=S,e[19]=E,e[20]=d,e[21]=f,e[22]=_,e[23]=b,e[24]=ee,e[25]=w,e[26]=O,e[27]=t,e[28]=p,e[29]=s,e[30]=D,e[31]=c,e[32]=T,e[33]=u,e[34]=l,e[35]=te,e[36]=U):U=e[36];let ae=A?.id,oe=A?.path,W;e[37]!==r||e[38]!==k||e[39]!==a||e[40]!==g||e[41]!==n||e[42]!==z||e[43]!==v||e[44]!==C||e[45]!==m||e[46]!==S||e[47]!==E||e[48]!==d||e[49]!==f||e[50]!==_||e[51]!==b||e[52]!==ee||e[53]!==w||e[54]!==O||e[55]!==t||e[56]!==ae||e[57]!==oe||e[58]!==p||e[59]!==s||e[60]!==D||e[61]!==c||e[62]!==T||e[63]!==u||e[64]!==l||e[65]!==te?(W=[n,o,s,c,l,u,d,f,p,m,g,_,v,b,S,C,w,T,E,D,ee,te,r,z,H,V,a,k,ae,oe,O,t],e[37]=r,e[38]=k,e[39]=a,e[40]=g,e[41]=n,e[42]=z,e[43]=v,e[44]=C,e[45]=m,e[46]=S,e[47]=E,e[48]=d,e[49]=f,e[50]=_,e[51]=b,e[52]=ee,e[53]=w,e[54]=O,e[55]=t,e[56]=ae,e[57]=oe,e[58]=p,e[59]=s,e[60]=D,e[61]=c,e[62]=T,e[63]=u,e[64]=l,e[65]=te,e[66]=W):W=e[66],X.useEffect(U,W);let se,G;e[67]===z?(se=e[68],G=e[69]):(G=()=>()=>{z(),V()},se=[z,V],e[67]=z,e[68]=se,e[69]=G),X.useEffect(G,se)};function $a(e){return e.openNewSessionDraft}function eo(e){return e.armAbortPrompt}function to(e){return e.clearAbortPrompt}function no(e){return e.currentSessionId}function ro(e){return e.toggleCommandPalette}function io(e){return e.toggleHelpDialog}function ao(e){return e.toggleSidebar}function oo(e){return e.toggleRightSidebar}function so(e){return e.setRightSidebarOpen}function co(e){return e.setRightSidebarTab}function lo(e){return e.toggleBottomTerminal}function uo(e){return e.setBottomTerminalExpanded}function fo(e){return e.isMobile}function po(e){return e.setSessionSwitcherOpen}function mo(e){return e.setActiveMainTab}function ho(e){return e.setSettingsDialogOpen}function go(e){return e.setModelSelectorOpen}function _o(e){return e.setAgentSelectorOpen}function vo(e){return e.setTimelineDialogOpen}function yo(e){return e.togglePromptNavigatorPanel}function bo(e){return e.setPromptNavigatorPanelOpen}function xo(e){return e.toggleExpandedInput}function So(e){return e.shortcutOverrides}function Co(e){return e.currentDirectory}function wo(e){return e.getActiveProject()}function To(e){return e instanceof Element&&!!(e.closest(`[data-terminal-view="true"]`)||e.closest(`.terminal-viewport-container`)||e.getAttribute(`data-terminal-hidden-input`)===`true`)}function Eo(e){return e.getClientRects().length>0}function Do(){let e=document.querySelectorAll(`[data-slot="dropdown-menu-content"], [data-slot="select-content"], [role="listbox"], [role="menu"], [data-radix-popper-content-wrapper]`);return Array.from(e).some(Eo)}function Oo(){document.querySelector(`textarea[data-chat-input="true"]`)?.focus({preventScroll:!0})}function ko(){window.requestAnimationFrame(Oo)}function Ao(){let{isSettingsDialogOpen:e,isCommandPaletteOpen:t,isHelpDialogOpen:n,isSessionSwitcherOpen:r,isAboutDialogOpen:i}=h.getState();return e||t||n||r||i}function jo(e,t,n,r){return de.summarizeSession(e,t,n,r)}function Mo(){let{isSettingsDialogOpen:e,isCommandPaletteOpen:t,isHelpDialogOpen:n,isSessionSwitcherOpen:r,isAboutDialogOpen:i,activeMainTab:a}=h.getState();if(e||t||n||r||i||!cn(a))return!1;let o=tn();if(o?.selection.change){let e=o.selection.catalog?.variants??[];if(e.length===0)return!1;let t=o.selection.value.variant,n=e[((t?e.indexOf(t):-1)+1)%e.length];return o.selection.change({...o.selection.value,variant:n}),!0}let s=K.getState();if(s.getCurrentModelVariants().length===0)return!1;s.cycleCurrentVariant();let c=K.getState().currentVariant,l=q.getState().currentSessionId,u=K.getState().currentAgentName,d=K.getState().currentProviderId,f=K.getState().currentModelId;return l&&u&&d&&f&&Ie.getState().saveAgentModelVariantForSession(l,u,d,f,c),u&&d&&f&&K.getState().saveAgentModelSelection(u,d,f,c),!0}function No(e){return e instanceof HTMLTextAreaElement&&e.getAttribute(`data-chat-input`)===`true`}function Po(e){console.warn(`[keyboard-shortcuts] failed to open draft mini chat window`,e)}var Fo=3,Io=(e,t)=>{if(typeof e!=`string`)return t;let n=e.trim().replace(/\s+/g,` `);return n?n.slice(0,48):t},Lo=(e,t)=>{let n=t?[...e.filter(e=>e.id===t),...e.filter(e=>e.id!==t)]:e,r=[],i=new Set;for(let e of n){let t=typeof e.id==`string`?e.id.trim():``;if(!(!t||i.has(t))&&(i.add(t),r.push({sessionId:t,title:Io(e.title,`Session ${r.length+1}`)}),r.length>=Fo))break}return r},Ro=()=>{let e=(0,Z.c)(9),t=rt(),n=q(zo),r;e[0]!==n||e[1]!==t?(r=Lo(t,n),e[0]=n,e[1]=t,e[2]=r):r=e[2];let i=r,a;e[3]===i?a=e[4]:(a=JSON.stringify(i),e[3]=i,e[4]=a);let o=a,s,c;e[5]!==i||e[6]!==o?(s=()=>{if(!(typeof window>`u`||!D())){try{i.length===0?localStorage.removeItem(Mt):localStorage.setItem(Mt,o)}catch{return}window.__OPENCHAMBER_UPDATE_PWA_MANIFEST__?.()}},c=[i,o],e[5]=i,e[6]=o,e[7]=s,e[8]=c):(s=e[7],c=e[8]),X.useEffect(s,c)};function zo(e){return e.currentSessionId}var Bo=e=>Number.isFinite(e)?`${Math.max(0,Math.round(e))}px`:`0px`,Vo=(e,t,n,r)=>{e.style.setProperty(`--oc-wco-left-inset`,Bo(t)),e.style.setProperty(`--oc-wco-right-inset`,Bo(n)),e.style.setProperty(`--oc-wco-titlebar-height`,Bo(r))},Ho=()=>{let e=(0,Z.c)(1),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0],X.useEffect(Uo,t)};function Uo(){if(typeof window>`u`||!D())return;let e=document.documentElement,t=typeof window.matchMedia==`function`?window.matchMedia(`(display-mode: window-controls-overlay)`):null,n=window.navigator.windowControlsOverlay,r=()=>{if(!n||!t?.matches||!n.visible){Vo(e,0,0,0);return}let r=n.getTitlebarAreaRect(),i=Math.max(0,Number(r.x)||0),a=Math.max(0,Number(r.width)||0),o=Math.max(0,Number(r.height)||0),s=Math.max(0,window.innerWidth-(i+a));Vo(e,i,s,o)},i=()=>{r()};return r(),window.addEventListener(`resize`,r),window.addEventListener(`focus`,r),t&&(typeof t.addEventListener==`function`?t.addEventListener(`change`,i):typeof t.addListener==`function`&&t.addListener(i)),n&&typeof n.addEventListener==`function`&&n.addEventListener(`geometrychange`,r),()=>{window.removeEventListener(`resize`,r),window.removeEventListener(`focus`,r),t&&(typeof t.removeEventListener==`function`?t.removeEventListener(`change`,i):typeof t.removeListener==`function`&&t.removeListener(i)),n&&typeof n.removeEventListener==`function`&&n.removeEventListener(`geometrychange`,r),Vo(e,0,0,0)}}var Wo=null,Go=e=>{let t=Wo;return Wo=e,()=>{Wo===e&&(Wo=t)}},Ko=()=>({orderByProject:{},pendingProjectIDs:{}}),qo=(e,t)=>!!(e&&e.length===t.length&&e.every((e,n)=>e===t[n])),Jo=n(),Yo=se()(G((e,t)=>({runtimeIdentity:Jo,...Ko(),serverRevisionByProject:{},deferredServerOrderByProject:{},runtimeOrdersByIdentity:{[Jo]:Ko()},activateWorktreeOrderRuntime:t=>e(e=>{if(e.runtimeIdentity===t)return e;let n=e.runtimeOrdersByIdentity[t]??Ko();return{runtimeIdentity:t,orderByProject:n.orderByProject,pendingProjectIDs:n.pendingProjectIDs,serverRevisionByProject:{},deferredServerOrderByProject:{},runtimeOrdersByIdentity:e.runtimeOrdersByIdentity[t]?e.runtimeOrdersByIdentity:{...e.runtimeOrdersByIdentity,[t]:n}}}),setWorktreeOrder:(t,n,r)=>{let i=!1;e(e=>{let n=qo(e.orderByProject[t],r),a=e.pendingProjectIDs[t]?e.pendingProjectIDs:{...e.pendingProjectIDs,[t]:!0};if(i=!n||a!==e.pendingProjectIDs,!i)return e;let o=n?e.orderByProject:{...e.orderByProject,[t]:r},s={orderByProject:o,pendingProjectIDs:a};return{orderByProject:o,pendingProjectIDs:a,runtimeOrdersByIdentity:{...e.runtimeOrdersByIdentity,[e.runtimeIdentity]:s}}}),i&&Wo?.(t,n,r)},markPendingWorktreeOrder:t=>e(e=>{if(e.pendingProjectIDs[t])return e;let n={...e.pendingProjectIDs,[t]:!0};return{pendingProjectIDs:n,runtimeOrdersByIdentity:{...e.runtimeOrdersByIdentity,[e.runtimeIdentity]:{orderByProject:e.orderByProject,pendingProjectIDs:n}}}}),applyServerWorktreeOrder:(t,n,r)=>e(e=>{let i=e.serverRevisionByProject[t];if(i!==void 0&&r<=i)return e;let a={...e.serverRevisionByProject,[t]:r};if(e.pendingProjectIDs[t])return{serverRevisionByProject:a,deferredServerOrderByProject:{...e.deferredServerOrderByProject,[t]:{orderedPaths:n,revision:r}}};if(qo(e.orderByProject[t],n))return{serverRevisionByProject:a};let o={...e.orderByProject,[t]:n};return{orderByProject:o,serverRevisionByProject:a,runtimeOrdersByIdentity:{...e.runtimeOrdersByIdentity,[e.runtimeIdentity]:{orderByProject:o,pendingProjectIDs:e.pendingProjectIDs}}}}),setServerRevision:(t,n)=>e(e=>{let r=e.serverRevisionByProject[t];return r!==void 0&&n<=r?e:{serverRevisionByProject:{...e.serverRevisionByProject,[t]:n}}}),resolvePendingWorktreeOrder:(t,n)=>e(e=>{let r=e.serverRevisionByProject[t],i=e.deferredServerOrderByProject[t],a=Math.max(r??0,n,i?.revision??0),o=r===a?e.serverRevisionByProject:{...e.serverRevisionByProject,[t]:a},s=i?(()=>{let n={...e.deferredServerOrderByProject};return delete n[t],n})():e.deferredServerOrderByProject;if(!e.pendingProjectIDs[t])return o===e.serverRevisionByProject&&s===e.deferredServerOrderByProject?e:{serverRevisionByProject:o,deferredServerOrderByProject:s};let c={...e.pendingProjectIDs};delete c[t];let l=i&&i.revision>n&&!qo(e.orderByProject[t],i.orderedPaths)?{...e.orderByProject,[t]:i.orderedPaths}:e.orderByProject;return{pendingProjectIDs:c,orderByProject:l,serverRevisionByProject:o,deferredServerOrderByProject:s,runtimeOrdersByIdentity:{...e.runtimeOrdersByIdentity,[e.runtimeIdentity]:{orderByProject:l,pendingProjectIDs:c}}}}),resetServerWorktreeOrders:()=>e(e=>Object.keys(e.serverRevisionByProject).length===0&&Object.keys(e.deferredServerOrderByProject).length===0?e:{serverRevisionByProject:{},deferredServerOrderByProject:{}}),hasPendingWorktreeOrder:e=>!!t().pendingProjectIDs[e]}),{name:`mobile-worktree-order`,version:2,partialize:e=>({runtimeOrdersByIdentity:e.runtimeOrdersByIdentity}),migrate:e=>{let t=e;return t.runtimeOrdersByIdentity?{runtimeOrdersByIdentity:t.runtimeOrdersByIdentity}:{runtimeOrdersByIdentity:{[Jo]:{orderByProject:t.orderByProject??{},pendingProjectIDs:t.pendingProjectIDs??{}}}}},merge:(e,t)=>{let n=e.runtimeOrdersByIdentity??t.runtimeOrdersByIdentity,r=n[t.runtimeIdentity]??Ko();return{...t,runtimeOrdersByIdentity:n,orderByProject:r.orderByProject,pendingProjectIDs:r.pendingProjectIDs}}})),Xo=e=>e.replace(/\\/g,`/`).replace(/\/+$/,``),Zo=(e,t)=>{if(!e||e.length===0)return t;let n=new Map(e.map((e,t)=>[Xo(e),t]));return t.map((e,t)=>({worktree:e,index:t})).sort((e,t)=>(n.get(Xo(e.worktree.path))??2**53-1)-(n.get(Xo(t.worktree.path))??2**53-1)||e.index-t.index).map(e=>e.worktree)},Qo=3e4,$o=e=>e.replace(/\\/g,`/`).replace(/\/+$/,``)||`/`,es=e=>e instanceof it?e.status===501?`unsupported`:e.status>=400&&e.status<500&&e.status!==408&&e.status!==429&&e.code!==`revision_conflict`?`permanent`:`retry`:`retry`,ts=(e,t)=>new Promise((n,r)=>{let i=()=>{clearTimeout(a),t.removeEventListener(`abort`,i),r(new DOMException(`Aborted`,`AbortError`))},a=setTimeout(()=>{t.removeEventListener(`abort`,i),n()},e);t.aborted?i():t.addEventListener(`abort`,i,{once:!0})}),ns=(e,t)=>e.then(e=>{if(t?.aborted)throw new DOMException(`Aborted`,`AbortError`);return e}),rs={fetchSnapshot:e=>ns(Ze(P),e),refreshSnapshot:e=>ns(qe(P),e),fetchOrder:Ye,setOrder:ot,waitInvalidation:He,captureRuntime:()=>({transportIdentity:n(),generation:s()}),isCurrent:e=>e.transportIdentity===n()&&e.generation===s(),sleep:ts,createRequestID:()=>typeof crypto<`u`&&crypto.randomUUID?crypto.randomUUID():`worktree-order-${Date.now()}-${Math.random().toString(36).slice(2)}`},is=new Map,as=()=>{for(let e of is.values())e.controller.abort();is.clear()},os=(e,t,n,r=rs)=>{is.get(e)?.controller.abort();let i={projectDirectory:$o(t),orderedPaths:[...n],capture:r.captureRuntime(),controller:new AbortController,backoffMs:500,running:!1};is.set(e,i),ss(e,r)},ss=async(e,t=rs)=>{let n=is.get(e);if(!(!n||n.running)){n.running=!0;try{for(;;){let n=is.get(e);if(!n||!t.isCurrent(n.capture)||n.controller.signal.aborted)return;let r=Yo.getState().serverRevisionByProject[e]??0;n.expectedRevision!==r&&(n.expectedRevision=r,n.requestID=t.createRequestID());try{let i=await t.setOrder({requestID:n.requestID,projectDirectory:n.projectDirectory,expectedRevision:r,orderedPaths:n.orderedPaths,signal:n.controller.signal});if(!t.isCurrent(n.capture)||is.get(e)!==n)return;let a=i.worktreeOrder??{projectDirectory:n.projectDirectory,orderedPaths:n.orderedPaths,revision:i.revision};Yo.getState().setServerRevision(e,a.revision),Yo.getState().resolvePendingWorktreeOrder(e,a.revision),is.delete(e);return}catch(r){if(n.controller.signal.aborted||!t.isCurrent(n.capture)||is.get(e)!==n)return;if(r instanceof it&&r.code===`revision_conflict`)try{let r=await t.fetchOrder(n.projectDirectory,n.controller.signal);if(is.get(e)!==n||!t.isCurrent(n.capture))return;Yo.getState().applyServerWorktreeOrder(e,r.orderedPaths,r.revision),n.expectedRevision=void 0,n.requestID=void 0,n.backoffMs=500;continue}catch(e){if(es(e)!==`retry`)return}else if(es(r)!==`retry`)return;if(await t.sleep(n.backoffMs,n.controller.signal).catch(()=>{}),n.backoffMs=Math.min(n.backoffMs*2,Qo),n.controller.signal.aborted)return}}}finally{is.get(e)===n&&(!t.isCurrent(n.capture)||n.controller.signal.aborted)&&is.delete(e),is.get(e)===n&&(n.running=!1)}}},cs=(e,t,n,r)=>{let i=new Map(t.map(e=>[$o(e.path),e.id]));for(let t of e){let e=i.get($o(t.projectDirectory));e&&r.isCurrent(n)&&Yo.getState().applyServerWorktreeOrder(e,t.orderedPaths,t.revision)}},ls=(e,t=rs)=>{let n=null,r=()=>n?.abort();return{start:()=>{r(),n=new AbortController;let i=n.signal,a=t.captureRuntime();(async()=>{let n=0,r=500;for(;!i.aborted&&t.isCurrent(a);)try{let r=await t.fetchSnapshot(i);if(i.aborted||!t.isCurrent(a))return;n=r.revision;let o=e();cs(r.worktreeOrders,o,a,t);let s=new Set(r.worktreeOrders.map(e=>$o(e.projectDirectory)));for(let e of o){let n=Yo.getState(),r=n.orderByProject[e.id];n.pendingProjectIDs[e.id]?os(e.id,e.path,r??[],t):r?.length&&!s.has($o(e.path))&&(n.markPendingWorktreeOrder(e.id),os(e.id,e.path,r,t))}break}catch(e){if(es(e)!==`retry`)return;await t.sleep(r,i).catch(()=>{}),r=Math.min(r*2,Qo)}for(;!i.aborted&&t.isCurrent(a);)try{let o=await t.waitInvalidation(n,{signal:i});if(i.aborted||!t.isCurrent(a)||o===`aborted`)return;let s=await(t.refreshSnapshot??t.fetchSnapshot)(i);if(i.aborted||!t.isCurrent(a))return;n=s.revision,cs(s.worktreeOrders,e(),a,t),r=500}catch(e){if(es(e)!==`retry`)return;await t.sleep(r,i).catch(()=>{}),r=Math.min(r*2,Qo)}})()},stop:r}},us=()=>{let e=(0,Z.c)(2),t=$e(fs),n;e[0]===t?n=e[1]:(n=[t],e[0]=t,e[1]=n),X.useEffect(hs,n)};function ds(e){return[e.id,$o(e.path)]}function fs(e){return JSON.stringify(e.projects.map(ds))}function ps(e,t,n){return os(e,t,n)}function ms(){return $e.getState().projects}function hs(){let e=n();Yo.getState().activateWorktreeOrderRuntime(e);let t=Go(ps),r=ls(ms);r.start();let i=d(e=>{f(e)&&(as(),Yo.getState().activateWorktreeOrderRuntime(n()),r.start())});return()=>{t(),i(),r.stop(),as()}}var gs=e=>e.replace(/\\/g,`/`).replace(/\/+$/,``)||`/`,_s=e=>{let t=!1,n=0,r=0,i=0,a=new Map,o=new Map,s=new Set,c=new Set,l=new Map,u=new Set,d=new Set,f=new Set,p=``,m=[],h=t=>{let n=gs(t);return e.getProjects().find(e=>gs(e.path)===n)},g=(n,i=150)=>{let s=gs(n.path),c=o.get(s);c&&e.clearTimer(c.timer);let l=r,u=e.setTimer(()=>{!t||l!==r||(o.delete(s),a.set(s,n),_(l))},i);o.set(s,{timer:u,epoch:l})},_=(n=r)=>{if(!(!t||n!==r))for(;i<2&&a.size>0;){let[n,o]=a.entries().next().value;a.delete(n),i+=1;let s=e.generation(),c=r;e.refresh(o,{isCurrent:()=>t&&c===r&&s===e.generation()}).then(i=>{if(!(!t||c!==r||s!==e.generation())){f.add(n);for(let e of i.addedDirectories)u.add(gs(e));if(e.needsSessionSync)for(let t of i.worktrees){let n=gs(t.path);e.needsSessionSync(n)&&u.add(n)}v(c,s),y()}}).then(()=>{t&&c===r&&s===e.generation()&&l.delete(n)}).catch(()=>{if(!t||c!==r||s!==e.generation())return;let i=(l.get(n)??0)+1;l.set(n,i),t&&c===r&&g(o,[1e3,2e3,5e3,15e3,3e4][Math.min(i-1,4)])}).finally(()=>{c===r&&(--i,_(c))})}},v=(n,i)=>{if(u.size===0)return;let a=[...u];u.clear(),e.syncAdded(a).catch(()=>{if(t&&n===r&&i===e.generation()){for(let e of a)u.add(e);let o=e.setTimer(()=>{s.delete(o),t&&n===r&&v(n,i)},1e3);s.add(o)}})},y=()=>{if(f.size!==e.getProjects().length)return;let t=e.getCatalog();for(let e of d){let n=e.slice(e.indexOf(`:`)+1);[...t.entries()].some(([e,t])=>gs(e)===n||t.some(e=>gs(e.path)===n))||c.add(e)}},b=()=>{f.clear();for(let t of e.getProjects())g(t,0)},x=()=>{let t=e.getCatalog(),r=e.getProjects(),i=new Set;for(let t of e.getActiveDirectories())t.trim()&&i.add(gs(t));for(let e of[...d]){let t=e.slice(e.indexOf(`:`)+1);i.has(t)||d.delete(e)}for(let e of[...c]){let t=e.slice(e.indexOf(`:`)+1);i.has(t)||c.delete(e)}for(let e of i)if(!r.find(n=>{let r=gs(n.path),i=t.get(r)?.some(t=>gs(t.path)===e);return e===r||i})){let t=`${n}:${e}`;!c.has(t)&&!d.has(t)&&(d.add(t),b())}},S=()=>{r+=1,c.clear(),d.clear(),l.clear(),u.clear(),f.clear();for(let t of o.values())e.clearTimer(t.timer);o.clear();for(let t of s)e.clearTimer(t);s.clear(),a.clear(),i=0};return{start:()=>{t||e.isVSCode()||(t=!0,m.push(e.subscribeEvents(e=>{if(e.type===`event-stream-ready`&&(n+=1,S(),b()),e.type===`worktree-topology-changed`&&e.projectDirectory){let t=h(e.projectDirectory);t&&g(t)}})),p=e.getProjects().map(e=>`${e.id}\u0000${gs(e.path)}`).sort().join(`
|
|
6
|
-
`),m.push(e.subscribeProjects(()=>{let t=e.getProjects().map(e=>`${e.id}\u0000${gs(e.path)}`).sort().join(`
|
|
7
|
-
`);t!==p&&(p=t,S(),b(),x())})),m.push(e.subscribeCatalog(x)),m.push(e.subscribeSessions(x)),m.push(e.subscribeRuntime(e=>{e&&(n+=1,S(),b())})),b(),x())},stop:()=>{t=!1,S();for(let{timer:t}of o.values())e.clearTimer(t);for(o.clear(),a.clear(),i=0;m.length;)m.pop()?.()},reconcileAll:b}},vs=null,ys=0,bs=()=>(vs||=_s({isVSCode:y,getProjects:()=>$e.getState().projects,getCatalog:()=>q.getState().availableWorktreesByProject,getActiveDirectories:()=>{let e=at.getState(),t=[];for(let n of e.activeSessions)typeof n.directory==`string`&&t.push(n.directory);for(let n of e.cachedDirectories)t.push(n);return t},needsSessionSync:e=>!at.getState().loadedDirectories.has(gs(e)),refresh:vt,syncAdded:e=>Oe(e,at.getState().activeSessions),subscribeProjects:e=>$e.subscribe(e),subscribeCatalog:e=>q.subscribe((t,n)=>{t.availableWorktreesByProject!==n.availableWorktreesByProject&&e()}),subscribeSessions:e=>at.subscribe((t,n)=>{(t.activeSessions!==n.activeSessions||t.cachedDirectories!==n.cachedDirectories)&&e()}),subscribeEvents:ke,subscribeRuntime:e=>d(t=>e(f(t))),generation:s,setTimer:(e,t)=>globalThis.setTimeout(e,t),clearTimer:e=>globalThis.clearTimeout(e)}),ys+=1,vs.start(),()=>{ys=Math.max(0,ys-1),ys===0&&vs?.stop()}),xs=`openchamber:mini-chat-presence`,Ss=()=>{let e=an(),t=X.useRef(e.optimistic.add),n=X.useRef(e.optimistic.remove),r=X.useRef(e.optimistic.confirm);return t.current=e.optimistic.add,n.current=e.optimistic.remove,r.current=e.optimistic.confirm,X.useEffect(()=>{Pe(e=>t.current(e),e=>n.current(e),e=>r.current(e))},[]),X.useEffect(()=>bs(),[]),null},Cs=()=>{let e=(0,Z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0],X.useEffect(ks,t),null};function ws(e){let t=(0,Z.c)(4),{embeddedBackgroundWorkEnabled:n}=e,r;t[0]===n?r=t[1]:(r={enabled:n,autoRun:!1},t[0]=n,t[1]=r),Nt(r);let i=X.useSyncExternalStore(je,We,We);Ge(n&&i===`legacy-enabled`),Ve();let a;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=[],t[2]=a):a=t[2],X.useEffect(Ts,a);let o;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,Q.jsx)(Ss,{}),t[3]=o):o=t[3],o}function Ts(){let e=tt(),t=st();e.start(),t.start();let n=et(e);return()=>{n(),t.stop(),e.stop()}}function Es(e){let t=(0,Z.c)(6),{embeddedBackgroundWorkEnabled:n}=e;Ro(),Ho(),Qa(),us();let r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=[],t[0]=r):r=t[0],X.useEffect(Ds,r);let i;t[1]===n?i=t[2]:(i=(0,Q.jsx)(ws,{embeddedBackgroundWorkEnabled:n}),t[1]=n,t[2]=i);let a;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Q.jsx)(Cs,{}),t[3]=a):a=t[3];let o;return t[4]===i?o=t[5]:(o=(0,Q.jsxs)(Q.Fragment,{children:[i,a]}),t[4]=i,t[5]=o),o}function Ds(){Na()}function Os(e){let t=e.data;if(t?.type!==`mini-chat-session-presence`||!t.sessionId||!t.directory)return;let n=t.viewed!==!1;Ae(t.directory,t.sessionId,n),n&&Ue(t.sessionId)}function ks(){if(typeof BroadcastChannel>`u`)return;let e=new BroadcastChannel(xs);return e.onmessage=Os,()=>e.close()}var As=new Set,js=new Map,Ms=(e,t)=>`https://cdn.jsdelivr.net/npm/${encodeURIComponent(e.packageName).replace(`%40`,`@`).replace(`%2F`,`/`)}/files/${e.filePrefix}-latin-${t}-normal.woff2`,Ns=(e,t)=>{let n=`${e.family}:${t}`;if(As.has(n))return Promise.resolve();let r=js.get(n);if(r)return r;if(typeof document>`u`||typeof FontFace>`u`||!document.fonts)return Promise.resolve();let i=new FontFace(e.family,`url(${Ms(e,t)}) format('woff2')`,{style:`normal`,weight:String(t),display:`swap`});document.fonts.add(i);let a=i.load().then(()=>{As.add(n)}).catch(n=>{document.fonts.delete(i),console.warn(`Failed to load font: ${e.family} ${t}`,n)}).finally(()=>{js.delete(n)});return js.set(n,a),a},Ps=e=>e?Promise.all(e.weights.map(t=>Ns(e,t))).then(()=>void 0):Promise.resolve(),Fs=e=>Ps(l[e]?.source),Is=e=>Ps(m[e]?.source),Ls={family:`Syne`,packageName:`@fontsource/syne`,filePrefix:`syne`,weights:[700]},Rs=()=>Ps(Ls);function zs(){let e=(0,Z.c)(4),{uiFont:t,monoFont:n}=fn(),r,i;e[0]!==n||e[1]!==t?(r=()=>{if(typeof document>`u`)return;let e=document.documentElement,r=l[t]?.stack??l.system.stack,i=m[n]?.stack??m[`system-mono`].stack;Fs(t),Is(n),e.style.setProperty(`--font-sans`,r),e.style.setProperty(`--font-heading`,r),e.style.setProperty(`--font-family-sans`,r),e.style.setProperty(`--font-mono`,i),e.style.setProperty(`--font-family-mono`,i),e.style.setProperty(`--ui-regular-font-weight`,`400`),document.body&&(document.body.style.fontFamily=r)},i=[t,n],e[0]=n,e[1]=t,e[2]=r,e[3]=i):(r=e[2],i=e[3]),X.useEffect(r,i)}export{pn as $,ki as A,hi as B,Yi as C,Li as D,Ui as E,Ni as F,zr as G,Zr as H,Gi as I,fr as J,Lr as K,Bi as L,Wi as M,Pi as N,Ri as O,ji as P,_n as Q,Ei as R,$i as S,Hi as T,Xr as U,ti as V,Kr as W,vn as X,Bn as Y,hn as Z,da as _,ws as a,fa as b,Ga as c,Ha as d,Ia as f,ga as g,wa as h,Es as i,zi as j,Ai as k,Ba as l,Fa as m,Rs as n,Zo as o,Pa as p,pr as q,Fs as r,Yo as s,zs as t,Va as u,ua as v,Vi as w,ca as x,la as y,xi as z};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./useUIStore-5agS8bsW.js";import{Gt as n,bn as r,ln as i,qt as a}from"./persistence-DPNMIbF5.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{n as d}from"./clipboard-BW7nk_Cx.js";import{Dn as f,Ut as p,l as m,mo as h,wr as g,xr as _}from"./useMobileNavigationStore-DnzT4jO2.js";import{t as v}from"./utils-Co19EJEL.js";import{n as y}from"./Icon-AXqa-fYB.js";import{D as b,P as x,R as S,k as C}from"./useAppFontEffects-CM0VKsdo.js";import{i as w,n as T,t as E}from"./tooltip-DMNR5rN0.js";import{f as D,o as O}from"./useSessionAutoCleanup-DxZeceKO.js";import{D as k,E as A,N as j}from"./radio-CJuhbQ5a.js";import{z as ee}from"./ChatContainer-D6yfuigV.js";import{b as M}from"./insertionBoundaries-DzXMTleb.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=g(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(_(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=_(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=_(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 _(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)(j,{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)(A,{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:g}=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]!==g?(E=n.title?.trim()||g(`sessions.sidebar.session.untitled`),t[0]=n.title,t[1]=g,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=_(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]!==g||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":g(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]=g,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]!==g||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":g(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]=g,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]!==g?(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":g(`sessions.sidebar.session.status.active`),title:g(`sessions.sidebar.session.status.active`)}):(0,N.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full bg-[var(--status-info)]`,"aria-label":g(`sessions.sidebar.session.status.unread`),title:g(`sessions.sidebar.session.status.unread`)})}):null,t[48]=j,t[49]=ee,t[50]=g,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};
|