@openchambery/web 1.19.7-beta.2 → 1.19.7-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-DI2zs2WH.js +1 -0
- package/dist/assets/AssistantView-sV1PVQiM.js +2 -0
- package/dist/assets/DiagramView-D2hqP5VV.js +1 -0
- package/dist/assets/FadeInOnReveal-BWJcUp5P.js +1 -0
- package/dist/assets/Icon-4My8YZwt.js +1 -0
- package/dist/assets/MarkdownLoadingSkeleton-Vezjvk9B.js +3 -0
- package/dist/assets/MarkdownRenderer-x091Z--3.js +2 -0
- package/dist/assets/MarkdownRendererImpl-DML8BSro.js +7 -0
- package/dist/assets/MarkstreamRendererImpl-BK-HM2k3.js +1 -0
- package/dist/assets/{MarkstreamRendererImpl-CR0fBG5w.css → MarkstreamRendererImpl-Ca7RATbs.css} +1 -1
- package/dist/assets/MobileDetailNavigation-DcxkWiks.js +1 -0
- package/dist/assets/MobileShareBridge-TAGcOiyb.js +4 -0
- package/dist/assets/MobileSurface-zqlZzEFQ.js +2 -0
- package/dist/assets/{MultiRunWindow-khpnWyZO.js → MultiRunWindow-iH1d9S14.js} +1 -1
- package/dist/assets/OnboardingScreen-BNEtPmvw.js +1 -0
- package/dist/assets/OverlayScrollbar-BZB21Yp_.js +2 -0
- package/dist/assets/SettingsView-CzW23DZA.js +25 -0
- package/dist/assets/{SettingsWindow-Dx5rU9v5.js → SettingsWindow-DZXCWZid.js} +1 -1
- package/dist/assets/TerminalView-pU0wpD8s.js +8 -0
- package/dist/assets/ToolOutputDialog-Bt7JChFG.js +10 -0
- package/dist/assets/appThemeRegistry-BI7WR2Wo.js +1 -0
- package/dist/assets/{button-z0GOBtWi.js → button-Or0daT9o.js} +1 -1
- package/dist/assets/clipboard-BXxLshVq.js +1 -0
- package/dist/assets/{collapsible-D9zJRpeB.js → collapsible-C-kzSGkq.js} +1 -1
- package/dist/assets/context-menu-Dpjla5p4.js +1 -0
- package/dist/assets/desktopHosts-BzSE0sK7.js +1 -0
- package/dist/assets/desktopRelayRestore-BaKjk1kQ.js +1 -0
- package/dist/assets/{diagram-CoEqmReY.js → diagram-D0mT3mo1.js} +1 -1
- package/dist/assets/{dialog-HCE4eLUW.js → dialog-BkhHBTd4.js} +1 -1
- package/dist/assets/dropdown-menu.styles-Bzo6L3FH.js +1 -0
- package/dist/assets/{es-D9KcV5TX.js → es-BHqnSjoZ.js} +1 -1
- package/dist/assets/fileQueries-DFY6Kiy1.js +1 -0
- package/dist/assets/fileReferenceActions-Di_DoDex.js +1 -0
- package/dist/assets/{fr-DPA9qUl3.js → fr-BfrlJY9i.js} +1 -1
- package/dist/assets/{gitApi-DNTMAa3F.js → gitApi-CeFszLvk.js} +3 -3
- package/dist/assets/{input-BG3VWTIF.js → input-BUsGnzwe.js} +1 -1
- package/dist/assets/insertionBoundaries-DDJNusn2.js +4 -0
- package/dist/assets/{ja-Dsif3NoD.js → ja-DP-7qt-x.js} +1 -1
- package/dist/assets/{ko-Dixx4Ctg.js → ko-E2B5vGQP.js} +1 -1
- package/dist/assets/main-CjnOsKDL.js +169 -0
- package/dist/assets/main-j-Ij13jc.js +2 -0
- package/dist/assets/markdown-worker-BuveaH3O.js +1 -0
- package/dist/assets/markdownTheme-CVS01wHf.js +2 -0
- package/dist/assets/miniChat-DgxavREE.js +2 -0
- package/dist/assets/mobile-C0rwPMPM.js +2 -0
- package/dist/assets/multirun-ot7-bKg7.js +4 -0
- package/dist/assets/outsideFileGrants-BB4GPvCq.js +1 -0
- package/dist/assets/path-utils-jGozTg9d.js +1 -0
- package/dist/assets/persistence-CSZp1CNB.js +3 -0
- package/dist/assets/{pl-Bj78ZGgf.js → pl-r8X5gRM5.js} +1 -1
- package/dist/assets/platform-CenlWqxu.js +2 -0
- package/dist/assets/projectMeta-3yOEc0oI.js +3 -0
- package/dist/assets/{pt-BR-CFL3xSAf.js → pt-BR-DcpdXCf5.js} +1 -1
- package/dist/assets/renderElectronMiniChatApp-BPNvFA_N.js +2 -0
- package/dist/assets/renderMobileApp-CNog29Xy.js +28 -0
- package/dist/assets/runtimeConfig-D28kNEYO.js +2 -0
- package/dist/assets/runtimeEndpointReset-CorvFIRk.js +147 -0
- package/dist/assets/sessionChangeSummary-CX2MJIkc.js +1 -0
- package/dist/assets/sessionLookup-CbatbQf7.js +1 -0
- package/dist/assets/sortable-tabs-strip-C5gGnikj.js +1 -0
- package/dist/assets/src-Af9cMFKF.css +2 -0
- package/dist/assets/{store-DzpbXWX1.js → store-BDFdnk6l.js} +2 -2
- package/dist/assets/terminalApi-CIIs9vFx.js +1 -0
- package/dist/assets/textarea-CIO34TZz.js +1 -0
- package/dist/assets/toolHelpers-DEvVP9U0.js +2 -0
- package/dist/assets/{tooltip-CtH61mQh.js → tooltip-BSrJYYYc.js} +1 -1
- package/dist/assets/{uk-BY60Ub3Z.js → uk-Di0vl9V-.js} +1 -1
- package/dist/assets/url-CE_gAfNa.js +1 -0
- package/dist/assets/{ChatContainer-CnOrdAgs.js → useAppFontEffects-CDpeZWK4.js} +44 -39
- package/dist/assets/useAssistantUIStore-BHacrxe_.js +1 -0
- package/dist/assets/useDesktopWindowControlsLayout-D-xPByG0.js +1 -0
- package/dist/assets/useEffectiveDirectory-Dp-tez_r.js +1 -0
- package/dist/assets/useFontPreferences-BxOHKuVw.js +1 -0
- package/dist/assets/useMobileNavigationStore-DE1Pe9A9.js +412 -0
- package/dist/assets/useSessionAutoCleanup-jNJ_WC38.js +1 -0
- package/dist/assets/useUIStore-CqqO11ZI.js +1 -0
- package/dist/assets/useWorkerHighlightedLines-MDnGj3yv.js +7 -0
- package/dist/assets/utils-B0mQXN9L.js +1 -0
- package/dist/assets/{vendor-markstream-react-CwvbEg9R.js → vendor-markstream-react-C3K8YH0d.js} +4 -4
- package/dist/assets/{zh-CN-Cox1LaOW.js → zh-CN-coFCfeQE.js} +1 -1
- package/dist/assets/{zh-TW-B6RU0mxa.js → zh-TW-oDRZ1-yb.js} +1 -1
- package/dist/index.html +9 -11
- package/dist/mini-chat.html +9 -11
- package/dist/mobile.html +15 -17
- package/package.json +2 -1
- package/server/index.js +2 -0
- package/server/lib/assistant-delivery-parts.js +3 -1
- package/server/lib/assistant-delivery-parts.test.js +11 -0
- package/server/lib/assistants/DOCUMENTATION.md +76 -3
- package/server/lib/assistants/assign.js +225 -0
- package/server/lib/assistants/assign.test.js +118 -0
- package/server/lib/assistants/bubbles.js +45 -0
- package/server/lib/assistants/bubbles.test.js +36 -0
- package/server/lib/assistants/cards.js +148 -0
- package/server/lib/assistants/cards.test.js +116 -0
- package/server/lib/assistants/contact-store.js +284 -0
- package/server/lib/assistants/contact-store.test.js +131 -0
- package/server/lib/assistants/contact-tools.js +761 -0
- package/server/lib/assistants/contact-tools.test.js +328 -0
- package/server/lib/assistants/contracts.js +20 -1
- package/server/lib/assistants/harness.js +551 -0
- package/server/lib/assistants/harness.test.js +607 -0
- package/server/lib/assistants/routes.js +44 -4
- package/server/lib/assistants/service.js +930 -17
- package/server/lib/assistants/service.test.js +1163 -45
- package/server/lib/llm/DOCUMENTATION.md +84 -0
- package/server/lib/llm/catalog.js +100 -0
- package/server/lib/llm/catalog.test.js +78 -0
- package/server/lib/llm/completions.js +151 -0
- package/server/lib/llm/completions.test.js +127 -0
- package/server/lib/llm/generate.js +570 -0
- package/server/lib/llm/generate.test.js +459 -0
- package/server/lib/llm/routes.js +47 -0
- package/server/lib/llm/temp-directory.js +37 -0
- package/server/lib/notifications/APNS.md +23 -17
- package/server/lib/notifications/DOCUMENTATION.md +5 -4
- package/server/lib/notifications/apns-runtime.js +139 -20
- package/server/lib/notifications/apns-runtime.test.js +66 -7
- package/server/lib/notifications/apns-titles.js +62 -62
- package/server/lib/notifications/apns-titles.test.js +3 -1
- package/server/lib/notifications/routes.js +1 -1
- package/server/lib/notifications/runtime.js +177 -86
- package/server/lib/notifications/runtime.test.js +122 -0
- package/server/lib/opencode/feature-routes-runtime.js +30 -0
- package/server/lib/opencode/feature-routes-runtime.test.js +20 -0
- package/server/lib/opencode/settings-runtime.js +18 -2
- package/server/lib/session-goal/DOCUMENTATION.md +8 -1
- package/server/lib/session-goal/runtime.js +20 -0
- package/server/lib/session-index/DOCUMENTATION.md +3 -1
- package/server/lib/session-index/service.js +10 -4
- package/server/lib/session-index/service.test.js +37 -0
- package/server/lib/session-title/runtime.js +1 -0
- package/server/lib/session-title/runtime.test.js +11 -0
- package/dist/assets/AgentAvatar-ziUs4sw3.js +0 -1
- package/dist/assets/AssistantView-DF4yXFgS.js +0 -1
- package/dist/assets/ContextPanel-Cg_uCHzJ.js +0 -285
- package/dist/assets/DiagramView-DYh3Zn2y.js +0 -1
- package/dist/assets/FadeInOnReveal-BAlsRFJH.js +0 -1
- package/dist/assets/Icon-CLpn1mIz.js +0 -1
- package/dist/assets/MarkdownRendererImpl-QzUEpBEm.js +0 -7
- package/dist/assets/MarkstreamRendererImpl-CXrfeUia.js +0 -1
- package/dist/assets/MobileDetailNavigation-DJXEYfq4.js +0 -1
- package/dist/assets/MobileShareBridge-CliVo1YH.js +0 -4
- package/dist/assets/MobileSurface-9Xh6WQkY.js +0 -2
- package/dist/assets/OnboardingScreen-CJYyR54B.js +0 -1
- package/dist/assets/OverlayScrollbar-C-jZ8ITG.js +0 -2
- package/dist/assets/SettingsView-DyCZehFG.js +0 -25
- package/dist/assets/TerminalView-XSALfUaH.js +0 -8
- package/dist/assets/ToolOutputDialog-BfuXazW9.js +0 -10
- package/dist/assets/appThemeRegistry-DDWrniMM.js +0 -2
- package/dist/assets/clipboard-Bz0Zm9VJ.js +0 -1
- package/dist/assets/desktop-CfLlmafK.js +0 -1
- package/dist/assets/desktopHosts-C1Ns3DUu.js +0 -1
- package/dist/assets/desktopRelayRestore-LBt0CBOj.js +0 -1
- package/dist/assets/fileQueries-Dnn15WsA.js +0 -1
- package/dist/assets/insertionBoundaries-DMxuUnL_.js +0 -4
- package/dist/assets/main-B9HVtgXE.js +0 -2
- package/dist/assets/main-ZNyIs3Sn.js +0 -29
- package/dist/assets/markdown-worker-y3ewaqAK.js +0 -4
- package/dist/assets/markdownTheme-TdhQOZSN.js +0 -2
- package/dist/assets/miniChat-q0T0WGkZ.js +0 -2
- package/dist/assets/mobile-DEduvLJj.js +0 -2
- package/dist/assets/multirun-DU-wrxlG.js +0 -4
- package/dist/assets/persistence-CmjKImz2.js +0 -3
- package/dist/assets/platform-skqcMARt.js +0 -2
- package/dist/assets/projectMeta-DNWx6Uva.js +0 -3
- package/dist/assets/radio-BEonIX1k.js +0 -1
- package/dist/assets/renderElectronMiniChatApp--JYWY41L.js +0 -2
- package/dist/assets/renderMobileApp-B0Ix_uNo.js +0 -25
- package/dist/assets/runtime-switch-BkpTTbEi.js +0 -1
- package/dist/assets/runtimeConfig-BTDIG7mX.js +0 -2
- package/dist/assets/runtimeEndpointReset-CZQCYtVI.js +0 -4
- package/dist/assets/shikiHighlight-C9Cx56Qg.js +0 -1
- package/dist/assets/sortable-tabs-strip-Bj8N0VWf.js +0 -1
- package/dist/assets/src-2eFAiBLq.css +0 -2
- package/dist/assets/terminalApi-CNqqwjfG.js +0 -1
- package/dist/assets/url-KeihbE0d.js +0 -1
- package/dist/assets/useAppFontEffects-CKLSamae.js +0 -7
- package/dist/assets/useAssistantUIStore-DaplPyb0.js +0 -1
- package/dist/assets/useDesktopWindowControlsLayout-DJSkFfhT.js +0 -1
- package/dist/assets/useEffectiveDirectory-B3rbY1Kv.js +0 -1
- package/dist/assets/useFontPreferences-D8emhcNv.js +0 -1
- package/dist/assets/useMobileNavigationStore-CAvVUItx.js +0 -412
- package/dist/assets/useSessionAutoCleanup-DxNgqJ8s.js +0 -1
- package/dist/assets/useUIStore-B7KJS5G7.js +0 -1
- package/dist/assets/useWorkerHighlightedLines-DiDF68LR.js +0 -7
- package/dist/assets/utils-CTL16t2f.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{f as e,x as t}from"./runtime-switch-BkpTTbEi.js";import{It as n}from"./persistence-CmjKImz2.js";import{St as r}from"./platform-skqcMARt.js";var i=1,a=1,o=0,s=`/api/terminal/ws`,c=1200,l=250,u=2e4,d=5e3,f=`__openchamberTerminalTransportState`,p=new TextEncoder,m=new TextDecoder,h=t=>e().websocket(t),g=e=>{let t=p.encode(JSON.stringify(e)),n=new Uint8Array(t.length+1);return n[0]=i,n.set(t,1),n},_=e=>e?((e.transports??[]).includes(`ws`)||e.preferred===`ws`)&&typeof e.ws?.path==`string`&&e.ws.path.length>0:!1,v=e=>e.streamCapability?.ws?.path??e.inputCapability?.ws?.path??s,y=e=>{switch(e){case`SESSION_NOT_FOUND`:return Error(`Terminal session not found`);case`NOT_BOUND`:return Error(`Terminal session is not bound`);case`WRITE_FAIL`:return Error(`Failed to write to terminal`);case`RATE_LIMIT`:return Error(`Terminal websocket is rate limited`);case`BAD_FRAME`:return Error(`Terminal websocket protocol violation`);default:return Error(`Terminal websocket error`)}},b=class{socket=null;socketUrl=``;boundSessionId=null;requestedSessionId=null;openPromise=null;reconnectTimeout=null;keepaliveInterval=null;closed=!1;subscriptions=new Map;activeSubscriptionToken=null;replayCursorBySession=new Map;configure(e){if(e){if(this.socketUrl===e){this.closed=!1,this.isConnectedOrConnecting()||this.ensureConnected();return}this.socketUrl=e,this.closed=!1,this.resetConnection(),this.ensureConnected()}}subscribe(e,t,n,r){let i=Symbol(e),o={token:i,sessionId:e,onEvent:t,onError:n,maxRetries:r?.maxRetries??3,initialRetryDelay:r?.initialRetryDelay??1e3,maxRetryDelay:r?.maxRetryDelay??8e3,connectionTimeout:r?.connectionTimeout??1e4,retryCount:0,connected:!1,connectionTimeoutId:null};return this.subscriptions.set(i,o),this.activeSubscriptionToken=i,this.requestedSessionId=e,this.ensureConnected(),this.boundSessionId===e&&this.socket&&this.socket.readyState===a?(o.retryCount=0,o.connected=!0,o.onEvent({type:`connected`})):(this.boundSessionId=null,this.startConnectionTimeout(o),this.bindActiveSession()),()=>{if(this.clearConnectionTimeout(o),this.subscriptions.delete(i),this.activeSubscriptionToken===i&&(this.activeSubscriptionToken=null),this.hasSubscriptionForSession(e)||(this.boundSessionId===e&&(this.boundSessionId=null),this.requestedSessionId===e&&(this.requestedSessionId=null)),this.subscriptions.size===0){this.clearReconnectTimeout(),this.resetConnection();return}this.promoteActiveSubscription()}}async sendInput(e,t){if(!e||!t||this.closed||!this.socketUrl)return!1;let n=await this.getOpenSocket(c);if(!n||n.readyState!==a)return!1;try{return this.boundSessionId!==e&&(this.requestedSessionId=e,n.send(g({t:`b`,s:e,r:this.replayCursorBySession.get(e)??0,v:2}))),n.send(t),!0}catch{return this.handleSocketFailure(Error(`Terminal websocket send failed`)),!1}}unbindSession(e){e&&(this.boundSessionId===e&&(this.boundSessionId=null),this.requestedSessionId===e&&(this.requestedSessionId=null))}close(){this.closed=!0,this.clearReconnectTimeout();for(let e of this.subscriptions.values())this.clearConnectionTimeout(e);this.resetConnection(),this.socketUrl=``,this.subscriptions.clear(),this.activeSubscriptionToken=null,this.replayCursorBySession.clear()}prime(){this.closed||!this.socketUrl||this.isConnectedOrConnecting()||this.ensureConnected()}isConnectedOrConnecting(e){return this.closed||e&&this.socketUrl!==e?!1:this.socket&&(this.socket.readyState===a||this.socket.readyState===o)?!0:this.openPromise!==null}getActiveSubscription(){return this.activeSubscriptionToken?this.subscriptions.get(this.activeSubscriptionToken)??null:null}hasSubscriptionForSession(e){for(let t of this.subscriptions.values())if(t.sessionId===e)return!0;return!1}promoteActiveSubscription(){if(this.getActiveSubscription())return;let e=this.subscriptions.values().next().value;if(!e){this.activeSubscriptionToken=null;return}this.activeSubscriptionToken=e.token,this.requestedSessionId=e.sessionId,this.boundSessionId===e.sessionId?e.connected||(e.retryCount=0,e.connected=!0,this.clearConnectionTimeout(e),e.onEvent({type:`connected`})):(this.boundSessionId=null,this.startConnectionTimeout(e),this.bindActiveSession())}emitToSession(e,t){for(let n of this.subscriptions.values())n.sessionId===e&&n.onEvent(t)}markSessionConnected(e,t){for(let n of this.subscriptions.values())n.sessionId===e&&(n.retryCount=0,n.connected=!0,this.clearConnectionTimeout(n),n.onEvent(t))}emitErrorToSession(e,t,n){for(let r of this.subscriptions.values())r.sessionId===e&&(r.connected=!1,n&&this.clearConnectionTimeout(r),r.onError?.(t,n))}startConnectionTimeout(e){this.clearConnectionTimeout(e),e.connectionTimeoutId=setTimeout(()=>{e.connected||!this.subscriptions.has(e.token)||this.getActiveSubscription()?.token===e.token&&this.handleSocketFailure(Error(`Connection timeout`))},e.connectionTimeout)}clearConnectionTimeout(e){e.connectionTimeoutId&&=(clearTimeout(e.connectionTimeoutId),null)}async getOpenSocket(e){if(this.socket&&this.socket.readyState===a||(this.ensureConnected(),this.socket&&this.socket.readyState===a))return this.socket;let t=await Promise.race([this.openPromise??Promise.resolve(null),new Promise(t=>{setTimeout(()=>t(null),e)})]);return t&&t.readyState===a?t:this.socket&&this.socket.readyState===a?this.socket:null}ensureConnected(){this.closed||!this.socketUrl||this.socket&&(this.socket.readyState===a||this.socket.readyState===o)||(this.openPromise||=(this.clearReconnectTimeout(),(async()=>{try{await t()}catch{}return new Promise(e=>{let t=!1,n=null,i=r=>{t||(t=!0,n&&=(clearTimeout(n),null),this.openPromise=null,e(r))};try{let e=r(h(this.socketUrl));e.binaryType=`arraybuffer`,e.onopen=()=>{this.socket=e,this.startKeepalive(),i(e)},e.onmessage=e=>{this.handleSocketMessage(e.data)},e.onerror=()=>{!this.closed&&!this.getActiveSubscription()&&this.scheduleReconnect(Error(`Terminal websocket error`))},e.onclose=()=>{this.socket===e&&(this.socket=null,this.boundSessionId=null,this.stopKeepalive(),this.closed||this.scheduleReconnect(Error(`Terminal stream connection error`))),i(null)},this.socket=e,n=setTimeout(()=>{e.readyState===o&&(e.close(),i(null))},d)}catch{i(null),this.closed||this.scheduleReconnect(Error(`Terminal websocket open failed`))}})})()))}bindActiveSession(){let e=this.getActiveSubscription();if(!(!e||!this.socket||this.socket.readyState!==a)){this.requestedSessionId=e.sessionId;try{this.socket.send(g({t:`b`,s:e.sessionId,r:this.replayCursorBySession.get(e.sessionId)??0,v:2}))}catch{this.handleSocketFailure(Error(`Terminal websocket bind failed`))}}}scheduleReconnect(e){if(this.closed||!this.socketUrl||this.reconnectTimeout)return;this.promoteActiveSubscription();let t=this.getActiveSubscription();if(!t)return;let n=t.retryCount+1,r=t.initialRetryDelay,i=t.maxRetryDelay,a=t.maxRetries;if(n>a){this.clearConnectionTimeout(t),this.emitErrorToSession(t.sessionId,e,!0);return}t.retryCount=n;for(let e of this.subscriptions.values())e.sessionId===t.sessionId&&(e.connected=!1,e.retryCount=n,e.onEvent({type:`reconnecting`,attempt:n,maxAttempts:a}));this.startConnectionTimeout(t);let o=Math.min(r*2**Math.max(n-1,0),i)+Math.floor(Math.random()*l);this.reconnectTimeout=setTimeout(()=>{this.reconnectTimeout=null,this.ensureConnected(),this.bindActiveSession()},o)}clearReconnectTimeout(){this.reconnectTimeout&&=(clearTimeout(this.reconnectTimeout),null)}sendControl(e){if(!this.socket||this.socket.readyState!==a)return!1;try{return this.socket.send(g(e)),!0}catch{return this.handleSocketFailure(Error(`Terminal websocket control send failed`)),!1}}startKeepalive(){this.stopKeepalive(),this.keepaliveInterval=setInterval(()=>{this.closed||this.sendControl({t:`p`,v:2})},u)}stopKeepalive(){this.keepaliveInterval&&=(clearInterval(this.keepaliveInterval),null)}async handleSocketMessage(e){let t=await this.asUint8Array(e);if(t&&t.length>0&&t[0]===i){this.handleControlMessage(t);return}let n=await this.asText(e);if(!n)return;let r=this.boundSessionId??this.requestedSessionId??this.getActiveSubscription()?.sessionId;r&&this.emitToSession(r,{type:`data`,data:n})}handleControlMessage(e){if(e.length<2)return;let t;try{t=JSON.parse(m.decode(e.subarray(1)))}catch{this.handleSocketFailure(Error(`Terminal websocket control parse failed`));return}let n=this.getActiveSubscription();switch(t.t){case`ok`:this.bindActiveSession();return;case`po`:return;case`d`:{let e=t.s??this.boundSessionId??this.requestedSessionId;if(!e)return;typeof t.i==`number`&&Number.isFinite(t.i)&&this.replayCursorBySession.set(e,Math.max(this.replayCursorBySession.get(e)??0,Math.trunc(t.i))),typeof t.d==`string`&&t.d.length>0&&this.emitToSession(e,{type:`data`,data:t.d});return}case`bok`:{let e=t.s??this.requestedSessionId;if(this.boundSessionId=e,!e)return;this.markSessionConnected(e,{type:`connected`,runtime:t.runtime,ptyBackend:t.ptyBackend});return}case`x`:{let e=t.s??this.boundSessionId??n?.sessionId??null;if(!e){this.boundSessionId=null;return}this.boundSessionId===e&&(this.boundSessionId=null),this.requestedSessionId===e&&(this.requestedSessionId=null),this.replayCursorBySession.delete(e);for(let n of this.subscriptions.values())n.sessionId===e&&(n.connected=!1,this.clearConnectionTimeout(n),n.onEvent({type:`exit`,exitCode:t.exitCode,signal:t.signal??null}));return}case`e`:{let e=y(t.c),r=t.f===!0;(t.c===`NOT_BOUND`||t.c===`SESSION_NOT_FOUND`)&&(this.boundSessionId=null);let i=t.s??this.requestedSessionId??n?.sessionId??null;if(i){if(t.c===`SESSION_NOT_FOUND`){this.emitErrorToSession(i,e,!0);return}this.emitErrorToSession(i,e,r)}else n&&(n.connected=!1,r&&this.clearConnectionTimeout(n),n.onError?.(e,r));t.f===!0&&this.handleSocketFailure(e);return}default:return}}async asUint8Array(e){if(e instanceof ArrayBuffer)return new Uint8Array(e);if(e instanceof Uint8Array)return e;if(typeof Blob<`u`&&e instanceof Blob){let t=await e.arrayBuffer();return new Uint8Array(t)}return null}async asText(e){if(typeof e==`string`)return e;let t=await this.asUint8Array(e);return t?m.decode(t):``}handleSocketFailure(e){this.boundSessionId=null,this.requestedSessionId=null,this.resetConnection(),this.scheduleReconnect(e)}resetConnection(){if(this.openPromise=null,this.stopKeepalive(),this.socket){let e=this.socket;this.socket=null,e.onopen=null,e.onmessage=null,e.onerror=null,e.onclose=null,(e.readyState===a||e.readyState===o)&&e.close()}this.boundSessionId=null}},x=()=>{let e=globalThis;return e[f]||(e[f]={inputCapability:null,streamCapability:null,manager:null}),e[f]},S=()=>{let e=x();return e.manager||=new b,e.manager},C=e=>{let t=x();if(t.inputCapability=e?.input??null,t.streamCapability=e?.stream??null,!_(t.inputCapability)&&!_(t.streamCapability)){t.manager?.close(),t.manager=null;return}let n=h(v(t));n&&S().configure(n)},w=async(e,t)=>{let r=await n(`/api/terminal/${e}/input`,{method:`POST`,headers:{"Content-Type":`text/plain`},body:t});if(!r.ok){let e=await r.json().catch(()=>({error:`Failed to send terminal input`}));throw Error(e.error||`Failed to send terminal input`)}};async function T(e){let t=await n(`/api/terminal/create`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({cwd:e.cwd,cols:e.cols??80,rows:e.rows??24})});if(!t.ok){let e=await t.json().catch(()=>({error:`Failed to create terminal`}));throw Error(e.error||`Failed to create terminal session`)}let r=await t.json();return C(r.capabilities),r}var E=(t,n,r,i={})=>{let a=i.maxRetries??3,o=i.initialRetryDelay??1e3,s=i.maxRetryDelay??8e3,c=i.connectionTimeout??1e4,l=null,u=0,d=null,f=null,p=!1,m=!1,h=()=>{d&&=(clearTimeout(d),null),f&&=(clearTimeout(f),null)},g=()=>{p||(p=!0,h(),l&&=(l.close(),null))},_=(e,t)=>{if(!(p||m)){if(u<a&&!t){u+=1;let e=Math.min(o*2**(u-1),s);n({type:`reconnecting`,attempt:u,maxAttempts:a}),d=setTimeout(()=>{!p&&!m&&v()},e);return}r?.(e,!0),g()}},v=()=>{if(p||m||l&&l.readyState!==EventSource.CLOSED)return;l=new EventSource(e().sse(`/api/terminal/${t}/stream`));let i=!1;f=setTimeout(()=>{!i&&l?.readyState!==EventSource.OPEN&&(l?.close(),_(Error(`Connection timeout`),!1))},c),l.onopen=()=>{i||(i=!0,u=0,h(),n({type:`connected`}))},l.onmessage=e=>{try{let r=JSON.parse(e.data);r.type===`exit`&&(x().manager?.unbindSession(t),m=!0,g()),n(r)}catch(e){r?.(e,!1)}},l.onerror=()=>{h();let e=m||l?.readyState===EventSource.CLOSED;l?.close(),l=null,m||_(Error(`Terminal stream connection error`),e)}};return v(),g};function D(e,t,n,r={}){let i=x();if(i.streamCapability&&!_(i.streamCapability))return E(e,t,n,r);let a=S(),o=h(v(i));return o?(a.configure(o),a.subscribe(e,t,n,r)):E(e,t,n,r)}async function O(e,t){let n=x();n.manager&&await n.manager.sendInput(e,t)||await w(e,t)}async function k(e,t,r){let i=await n(`/api/terminal/${e}/resize`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({cols:t,rows:r})});if(!i.ok){let e=await i.json().catch(()=>({error:`Failed to resize terminal`}));throw Error(e.error||`Failed to resize terminal`)}}async function A(e){x().manager?.unbindSession(e);let t=await n(`/api/terminal/${e}`,{method:`DELETE`});if(!t.ok){let e=await t.json().catch(()=>({error:`Failed to close terminal`}));throw Error(e.error||`Failed to close terminal`)}}async function j(e,t){x().manager?.unbindSession(e);let r=await n(`/api/terminal/${e}/restart`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({cwd:t.cwd,cols:t.cols??80,rows:t.rows??24})});if(!r.ok){let e=await r.json().catch(()=>({error:`Failed to restart terminal`}));throw Error(e.error||`Failed to restart terminal`)}let i=await r.json();return C(i.capabilities),i}async function M(e){let t=await n(`/api/terminal/force-kill`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok){let e=await t.json().catch(()=>({error:`Failed to force kill terminal`}));throw Error(e.error||`Failed to force kill terminal`)}e.sessionId&&x().manager?.unbindSession(e.sessionId)}function N(){let e=x();e.manager?.close(),e.manager=null,e.inputCapability=null,e.streamCapability=null}function P(){let e=x();if(e.inputCapability&&e.streamCapability&&!_(e.inputCapability)&&!_(e.streamCapability))return;let t=h(v(e)||s);if(!t)return;let n=S();n.isConnectedOrConnecting(t)||(n.configure(t),n.prime())}export{M as a,j as c,N as i,O as l,D as n,P as o,T as r,k as s,A as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{V as e}from"./desktop-CfLlmafK.js";var t=e=>{try{return new URL(e)}catch{return null}},n=e=>{let n=t(e.trim());return n?n.protocol===`http:`||n.protocol===`https:`:!1},r=e=>{let n=t(e.trim());return!n||n.protocol!==`http:`&&n.protocol!==`https:`?null:`https://icons.duckduckgo.com/ip3/${n.hostname.toLowerCase()}.ico`},i=new Set([`localhost`,`127.0.0.1`,`0.0.0.0`,`::1`]),a=e=>{let n=t(e.trim());return!n||n.protocol!==`http:`&&n.protocol!==`https:`?!1:i.has(n.hostname.toLowerCase())},o=/\bhttps?:\/\/(?:localhost|127\.0\.0\.1|0\.0\.0\.0|\[::1\])(?::\d{2,5})?(?:\/[^\s<>"'`\u0000-\u001f]*)?/gi,s=e=>{if(!e)return[];let t=e.match(o);if(!t||t.length===0)return[];let n=new Set,r=[];for(let e of t){let t=e.replace(/[),.;:!?'"`]+$/g,``);!t||!a(t)||n.has(t)||(n.add(t),r.push(t))}return r},c=async n=>{if(typeof window>`u`)return!1;let r=n.trim();if(!r)return!1;let i=t(r);if(!i||i.protocol!==`http:`&&i.protocol!==`https:`)return!1;let a=i.toString(),o=e();if(o?.runtime?.isVSCode&&o.vscode?.openExternalUrl)try{return await o.vscode.openExternalUrl(a),!0}catch{return!1}let s=window.__OPENCHAMBER_DESKTOP__;if(s?.openExternal)try{return await s.openExternal(a),!0}catch{}try{return window.open(a,`_blank`,`noopener,noreferrer`),!0}catch{return!1}};export{c as a,a as i,r as n,n as r,s as t};
|
|
@@ -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{E as t,c as n,f as r,i,l as a,n as o,o as s,r as c,t as l,y as u}from"./runtime-switch-BkpTTbEi.js";import{$ as d,It as f,Mt as p,c as m,g as h,h as g,m as _,n as v,r as y,t as b,u as x}from"./persistence-CmjKImz2.js";import{V as S,_ as C,b as w,g as T,h as ee,p as E,t as D,y as O}from"./desktop-CfLlmafK.js";import{_ as k,c as A,d as j,f as M,h as N,i as P,l as F,m as te,n as ne,o as I,p as L,r as re,s as R}from"./desktopHosts-C1Ns3DUu.js";import{r as z}from"./desktopRelayRestore-LBt0CBOj.js";import{a as B,i as V}from"./vendor-zustand-B4dlGEM2.js";import{nt as ie,rt as ae,tt as H}from"./vendor-base-ui-CnHfUmDN.js";import{Ct as U,Nt as W,Ot as oe,n as se,t as ce}from"./platform-skqcMARt.js";import{d as le,h as ue,m as de,s as fe,t as G,v as pe}from"./useUIStore-B7KJS5G7.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-Bz0Zm9VJ.js";import{i as Te,t as Ee}from"./store-DzpbXWX1.js";import{$i as De,An as Oe,B as ke,Bt as Ae,Ct as je,Dt as Me,Et as Ne,F as Pe,Ha as Fe,Kr as Ie,L as Le,No as Re,R as ze,St as Be,Tn as Ve,Tt as He,U as Ue,V as We,Xr as Ge,aa as Ke,bo as qe,dr as Je,fr as Ye,hn as Xe,hr as Ze,jr as Qe,l as K,oa as $e,ra as et,sa as tt,ta as q,vt as nt,xt as rt,yt as it,za as at}from"./useMobileNavigationStore-CAvVUItx.js";import{a as ot,n as st,o as ct,r as lt,t as ut}from"./dialog-HCE4eLUW.js";import{t as dt}from"./utils-CTL16t2f.js";import{n as J}from"./Icon-CLpn1mIz.js";import{t as ft}from"./button-z0GOBtWi.js";import{n as pt}from"./gitApi-DNTMAa3F.js";import{a as mt}from"./vendor-simplewebauthn-browser-Dwhcdg_5.js";import{c as ht,et as gt}from"./projectMeta-DNWx6Uva.js";import{t as _t}from"./input-BG3VWTIF.js";import{i as vt,n as yt,t as bt}from"./tooltip-CtH61mQh.js";import{A as xt,C as St,D as Ct,E as wt,G as Tt,L as Et,N as Dt,T as Ot,U as kt,W as At,b as jt,g as Mt,h as Nt,j as Pt,m as Ft,n as It,p as Lt,t as Rt,w as zt,y as Bt}from"./useSessionAutoCleanup-DxNgqJ8s.js";import{n as Vt,r as Ht}from"./useThemeSystem-DMzWVJaW.js";import{A as Y,B as Ut,F as Wt,K as Gt,P as Kt,j as qt}from"./radio-BEonIX1k.js";import{i as Jt}from"./OverlayScrollbar-C-jZ8ITG.js";import{C as Yt,S as Xt,b as Zt,x as Qt,y as $t}from"./markdownTheme-TdhQOZSN.js";import{O as en,Q as tn,X as nn,Y as rn,Z as an,_ as on,l as sn,nt as cn,rt as ln,v as un,y as dn}from"./ChatContainer-CnOrdAgs.js";import{r as fn}from"./useRuntimeAPIs-DSLXJybW.js";import{t as pn}from"./useEffectiveDirectory-B3rbY1Kv.js";import{n as mn,t as hn}from"./useFontPreferences-D8emhcNv.js";typeof window<`u`&&(window.__opencodeDebug={getLastAssistantMessage(){let e=K.getState().currentSessionId;if(!e)return null;let t=Ke(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=($e(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:($e(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=K.getState().currentSessionId;if(!t)return[];let n=Ke(t);return`${n.length}`,n.forEach((e,t)=>{let n=$e(e.id)||[];`${t}${e.role}${e.id}${n.length}`}),e?this.truncateMessages(n):n},async getAppStatus(){let e=U.getState(),t=K.getState(),n=qe.getState(),r=e.currentDirectory||null,i=W.getDirectory()??null,a=tt(),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=S(),u=typeof window<`u`&&!!window.__OPENCHAMBER_ELECTRON__,d=async e=>{try{return await e.json()}catch{return null}},p=async e=>{try{return await e.text()}catch{return null}},m=async e=>{try{let t=await f(e);return t.ok?await d(t):{status:t.status}}catch(e){return{error:e instanceof Error?e.message:String(e)}}},h=null,g=null,_=null,v=null;try{let e=await W.getSdkClient().path.get(r?{directory:r}:void 0);h=e.error?{error:e.error}:e.data}catch(e){h={error:e instanceof Error?e.message:String(e)}}try{let e=await W.getSdkClient().project.current(r?{directory:r}:void 0);g=e.error?{error:e.error}:e.data}catch(e){g={error:e instanceof Error?e.message:String(e)}}_=await m(`/api/config/settings`);try{let e=await f(`/api/health`),t=e.headers.get(`content-type`)||``,n=await p(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}v={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){v={error:e instanceof Error?e.message:String(e)}}let y={isGitRepo:null};if(r)try{y.isGitRepo=await pt(r)}catch(e){y={isGitRepo:null,error:e instanceof Error?e.message:String(e)}}let b=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:h?.directory||h?.worktree||i,homeDirectory:e.homeDirectory||null,isHomeReady:e.isHomeReady,hasPersistedDirectory:e.hasPersistedDirectory,isSwitchingDirectory:e.isSwitchingDirectory},projects:{total:n.projects.length,activeProjectId:n.activeProjectId,samples:b},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:y,localStorage:c,opencode:{pathInfo:h,projectInfo:g,health:v},openchamber:{settingsInfo:_}}},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=K.getState(),t=Ve.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=K.getState().currentSessionId;if(!e)return[];let t=Ke(e).filter(e=>e.role===`assistant`).filter(e=>{let t=$e(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=$e(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=K.getState().currentSessionId;if(!i)return{summary:null,rows:[]};let a=Ke(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=$e(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=K.getState().currentSessionId;if(!e)return null;let t=Ke(e).filter(e=>e.role===`assistant`);if(t.length===0)return null;let n=t[t.length-1],r=($e(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=Ve.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}}},oe(),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(ae(),1),Z=he(),gn=async()=>{if(typeof window>`u`)return;let e=null;try{e=p(`lastDirectory`)}catch(e){console.warn(`Failed to read saved directory preferences:`,e)}e&&!O()&&U.getState().setDirectory(e,{showOverlay:!1})},_n=new Map,vn=e=>_n.get(e)??null,yn=({runtimeKey:e,initializeAppearance:t,syncSettings:n,applyDirectory:r,onError:i},a={})=>{let o=_n.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 _n.set(e,s),s},bn=async({runtimeKey:e,initializeAppearance:t,syncSettings:n,applyDirectory:r,startWatchers:i,onError:a})=>{await yn({runtimeKey:e,initializeAppearance:t,syncSettings:n,applyDirectory:r,onError:a})&&i()},xn=(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 Sn(e){return!e||e===`idle`?null:e===`ready`?`ok`:e===`error`?`unreachable`:`auth`}function Cn(e,t){let n=e.via===`relay`;return t?n:!n}function wn(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?Sn(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||Cn(o,a))&&(u=Math.max(0,Math.round(o.latencyMs))),{statusKind:c,showViaRelay:l,latencyMs:u}}var Q=ie(),$=`local`,Tn=9e4,En=`SSH connection cancelled`,Dn=e=>z(e),On={},kn=e=>{let t=L(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}},An=()=>typeof window>`u`?``:window.__OPENCHAMBER_LOCAL_ORIGIN__||window.location.origin,jn=async()=>C()?I().catch(()=>``):``,Mn=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`,Nn=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`,Pn=e=>e===`unreachable`||e===`wrong-service`||e===`incompatible`,Fn=e=>e===`unreachable`||e===`wrong-service`||e===`incompatible`,In=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`,Ln=e=>new Promise(t=>window.setTimeout(t,e)),Rn=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`}},zn=async()=>{let e=await Et().catch(()=>[]),t={};for(let n of e)t[n.id]=n;return t},Bn=async(e,t,n,r)=>{let i=Date.now()+t;for(;Date.now()<i;){if(r?.())throw Error(En);let t=(await Et(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 Ln(700)}throw r?.()?Error(En):Error(`Timed out waiting for SSH connection`)},Vn=e=>({id:$,label:`Local`,url:e||An()}),Hn=e=>{let t=typeof window>`u`?``:window.location.href,n=e.find(e=>e.id===$)?.url||An(),r=l(),i=L(n)||n,a=L(t)||t,o=c(),s=e.find(e=>e.relay&&Dn(e)===o);if(s)return{id:s.id,label:s.label,url:s.url};if(r&&M(r,n))return{id:$,label:`Local`,url:i};let u=e.find(e=>r?M(r,F(e)):!1);if(u)return{id:u.id,label:u.label,url:L(F(u))||F(u)};if(t&&M(t,n))return{id:$,label:`Local`,url:i};let d=e.find(e=>t?M(t,e.url):!1);return d?{id:d.id,label:d.label,url:L(d.url)||d.url}:t.startsWith(`openchamber-ui://`)?{id:$,label:`Local`,url:i}:{id:`custom`,label:N(a||`Instance`),url:a}};function Un({open:e,onOpenChange:t,embedded:r=!1,onHostSwitched:a}){let{t:o}=xe(),s=G(e=>e.setSettingsDialogOpen),c=G(e=>e.setSettingsPage),l=q(e=>e.isConnected),u=q(e=>e.connectionPhase),[d,f]=X.useState([]),[p,m]=X.useState(null),[h,g]=X.useState(()=>({...On}));X.useEffect(()=>{Object.assign(On,h)},[h]);let[_,v]=X.useState(!1),[y,b]=X.useState(!1),[x,S]=X.useState(!1),w=At(),ee=Tt(),[E,D]=X.useState(null),O=E||ee,[M,I]=X.useState({}),[z,B]=X.useState({}),[V,ie]=X.useState({open:!1,hostId:null,hostLabel:``,phase:`idle`,detail:null,error:null,errorCode:null}),[ae,H]=X.useState(``),[U,W]=X.useState(()=>An()),[oe,se]=X.useState(null),[ce,le]=X.useState(``),[ue,de]=X.useState(``),[fe,pe]=X.useState(0),me=X.useRef(0),he=X.useMemo(()=>[Vn(U),...d.map(e=>({...e,url:L(e.url)||e.url}))],[d,U]),ge=X.useMemo(()=>new Set(Object.keys(M)),[M]),_e=X.useMemo(()=>he.filter(e=>e.id===$||j(e,ge)),[he,ge]);X.useEffect(()=>n(()=>pe(e=>e+1)),[]);let ve=X.useMemo(()=>Hn(he),[he,fe]),be=X.useMemo(()=>i().startsWith(`relay:`),[fe]),Se=X.useMemo(()=>{let e=p||$;return he.find(t=>t.id===e)?.label||o(`desktopHostSwitcher.instance.local`)},[he,p,o]),Ce=X.useCallback(async(e,t)=>{if(T()){S(!0),H(``);try{let n=e.filter(e=>e.id!==$);await P({hosts:n,defaultHostId:t}),f(n),m(t)}catch(e){H(e instanceof Error?e.message:o(`desktopHostSwitcher.error.failedToSave`))}finally{S(!1)}}},[o]),we=X.useCallback(()=>{c(`remote-instances`),s(!0),t(!1)},[t,s,c]),Te=X.useCallback(async()=>{if(T()){v(!0),H(``);try{let[e,t,n]=await Promise.all([re(),Dt().catch(()=>({instances:[]})),zn()]);e.localOrigin&&W(e.localOrigin);let r={};for(let e of t.instances)r[e.id]=!0;f(e.hosts||[]),m(e.defaultHostId??null),I(r),B(n)}catch(e){H(e instanceof Error?e.message:o(`desktopHostSwitcher.error.failedToLoad`)),f([]),m(null),I({}),B({})}finally{v(!1)}}},[o]),Ee=X.useCallback(async e=>{if(T()){b(!0);try{let t=await jn(),n=await Promise.all(e.map(async e=>{let n=async()=>{let t=await te(e.relay).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=L(C()?F(e):e.url);if(!r)return[e.id,{status:`unreachable`,latencyMs:0}];let i=e.id===$?t:e.clientToken||``,a=await ne(r,{clientToken:i||null,requestHeaders:e.requestHeaders||null}).catch(()=>({status:`unreachable`,latencyMs:0}));if(Pn(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;g(r)}finally{b(!1)}}},[]);X.useEffect(()=>{if(!e){se(null),le(``),de(``),D(null),ie({open:!1,hostId:null,hostLabel:``,phase:`idle`,detail:null,error:null,errorCode:null}),H(``);return}Te()},[e,Te]),X.useEffect(()=>{e&&Ee(_e)},[e,_e,Ee]),X.useEffect(()=>{if(!e||!T())return;let t=!1,n=async()=>{let e=await zn();t||B(e)};n();let r=window.setInterval(()=>{typeof document<`u`&&document.visibilityState!==`visible`||n()},1500);return()=>{t=!0,window.clearInterval(r)}},[e]);let De=ye(async e=>{let t=e.id===$?U:L(e.url)||``,n=e.id===$?U:L(F(e))||``,r=!!e.relay&&!e.apiUrl&&e.id!==$;if(!t&&!r)return;if(C()){if(!n&&!e.relay||w)return;let t=e.id===$?await jn():null,r=await kt({host:e,cachedProbe:h[e.id]||null,...e.id===$?{localApiOrigin:n,localClientToken:t}:{}});g(t=>({...t,[e.id]:r.status})),r.ok&&a?.();return}let i=!!M[e.id];if(e.id!==$&&i&&T()){let n=z[e.id],r=await Et(e.id).then(t=>t.find(t=>t.id===e.id)||null).catch(()=>null);r&&(n=r,B(t=>({...t,[e.id]:r})));let i=L(n?.localUrl||e.url||``);if(n?.phase===`ready`&&i){let e=kn(i);a?.(),window.location.assign(e);return}D(e.id);let s=me.current+1;me.current=s,ie({open:!0,hostId:e.id,hostLabel:N(e.label),phase:`master_connecting`,detail:null,error:null,errorCode:null});try{if(await xt(e.id),s!==me.current)return;let n=await Bn(e.id,Tn,e=>{B(t=>({...t,[e.id]:e})),ie(t=>({...t,phase:e.phase,detail:e.detail||null,errorCode:e.errorCode||null}))},()=>s!==me.current);if(s!==me.current)return;let r=kn(L(n.localUrl||``)||t);a?.(),window.location.assign(r);return}catch(t){if(s!==me.current)return;let n=t instanceof Error?t.message:String(t);if(n===En)return;let r=Ot(V.errorCode,n);ie(e=>({...e,error:n,errorCode:r})),Ze.error(o(`desktopHostSwitcher.toast.sshFailedToConnect`,{host:N(e.label)}),{description:zt(o(wt(r)),r,n)});return}finally{s===me.current&&D(null)}}if(e.id!==$&&T()){D(e.id);let n=await ne(t,{clientToken:e.clientToken||null,requestHeaders:e.requestHeaders||null}).catch(()=>({status:`unreachable`,latencyMs:0}));if(g(t=>({...t,[e.id]:{status:n.status,latencyMs:n.latencyMs}})),Pn(n.status)){Ze.error(o(`desktopHostSwitcher.toast.instanceUnreachable`,{host:N(e.label)})),D(null);return}}let s=kn(t);a?.();try{window.location.assign(s)}catch{window.location.href=s}}),Oe=X.useCallback(()=>{se(null),le(``),de(``)},[]),ke=X.useCallback(e=>{e.stopPropagation()},[]),Ae=X.useCallback(async()=>{if(!oe)return;if(oe===$){Oe();return}let e=k(ue);if(!e){H(o(`desktopHostSwitcher.error.invalidUrl`));return}let t=e.persistedUrl,n=(ce||N(t)).trim(),r=d.map(e=>e.id===oe?{...e,label:n,url:t,apiUrl:t}:e);await Ce(r,p),Oe(),e.redeemUrl&&window.location.assign(e.redeemUrl)},[Oe,d,p,ce,ue,oe,Ce,o]),je=X.useCallback(async e=>{await Ce(d,e===$?$:e)},[d,Ce]),Me=X.useCallback(e=>{let t=e=>{Ze.error(o(`desktopHostSwitcher.error.failedToOpenNewWindow`),{description:e instanceof Error?e.message:String(e)})};if(e.relay&&e.id!==$){A(e.id).catch(t);return}let n=e.id===$?U:F(e);if(!n)return;let r=kn(n);R(r,{clientToken:e.clientToken||null,requestHeaders:e.requestHeaders||null}).catch(t)},[U,o]),Ne=ye(async()=>{me.current+=1,D(null),ie(e=>({...e,open:!1,hostId:null,error:null,errorCode:null,detail:null,phase:`idle`}));let e=kn(U);if(C()){if(w)return;let e=await jn();(await kt({host:Vn(U),localApiOrigin:U,localClientToken:e})).ok&&a?.();return}a?.(),window.location.assign(e)}),Pe=X.useCallback(async()=>{let e=V.hostId||O;me.current+=1,D(null),ie({open:!1,hostId:null,hostLabel:``,phase:`idle`,detail:null,error:null,errorCode:null}),!(!e||e===$||!T())&&await Pt(e).catch(()=>{})},[V.hostId,O]),Fe=X.useCallback(()=>{let e=V.hostId;if(!e)return;let t=he.find(t=>t.id===e);t&&De(t)},[he,De,V.hostId]),Ie=X.useCallback(async e=>{if(T()){D(e.id);try{await xt(e.id),(await Bn(e.id,Tn,e=>{B(t=>({...t,[e.id]:e}))})).phase===`ready`&&Ze.success(o(`desktopHostSwitcher.toast.sshConnected`,{host:N(e.label)}))}catch(t){let n=t instanceof Error?t.message:String(t);if(n!==En){let t=Ot(null,n);Ze.error(o(`desktopHostSwitcher.toast.sshFailedToConnect`,{host:N(e.label)}),{description:zt(o(wt(t)),t,n)})}}finally{D(null)}}},[o]);if(!T())return null;let Le=T(),Re=(0,Q.jsxs)(Q.Fragment,{children:[r?(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:N(ve.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:N(Se)})]}),(0,Q.jsx)(`button`,{type:`button`,className:dt(`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 Ee(_e),disabled:!Le||_||y,"aria-label":o(`desktopHostSwitcher.actions.refreshInstancesAria`),children:(0,Q.jsx)(J,{name:`refresh`,className:dt(`h-4 w-4`,y&&`animate-spin`)})})]})}):(0,Q.jsxs)(ot,{className:`flex-shrink-0`,children:[(0,Q.jsxs)(ct,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(J,{name:`server`,className:`h-5 w-5`}),o(`desktopHostSwitcher.title`)]}),(0,Q.jsx)(lt,{children:o(`desktopHostSwitcher.description`)})]}),!r&&(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:N(ve.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:N(Se)})]}),(0,Q.jsx)(`div`,{className:`flex items-center gap-1`,children:(0,Q.jsxs)(ft,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>void Ee(_e),disabled:!Le||_||y,children:[(0,Q.jsx)(J,{name:`refresh`,className:dt(`h-4 w-4`,y&&`animate-spin`)}),o(`desktopHostSwitcher.actions.refresh`)]})})]}),!Le&&(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:dt(`space-y-1`,r&&`space-y-1.5 px-3 py-1`),children:_?(0,Q.jsx)(`div`,{className:`px-2 py-2 text-muted-foreground text-sm`,children:o(`desktopHostSwitcher.state.loading`)}):_e.map(e=>{let t=e.id===$,n=!!M[e.id],i=e.id===ve.id,a=(p||$)===e.id,s=h[e.id]||null,c=z[e.id]||null,d=wn({isActive:i,isSsh:n,runtimeIsConnected:l,runtimeConnectionPhase:u,currentTransportIsRelay:be,probe:s,sshPhase:c?.phase}),f=d.statusKind,m=d.showViaRelay,g=oe===e.id,_=t?U:L(e.url)||e.url,v=e.id===$?o(`desktopHostSwitcher.instance.local`):N(e.label),y=e.relay&&!e.apiUrl?o(`mobile.connect.relay.badge`):N(_);return(0,Q.jsxs)(`div`,{className:dt(`group flex items-center gap-2 px-2.5 py-2 rounded-md overflow-hidden`,r&&`rounded-xl bg-[var(--surface-muted)] px-3 py-2.5`,r&&i&&`bg-[var(--interactive-selection)]/25`,g?`bg-interactive-hover/20`:`hover:bg-interactive-hover/30`),children:[(0,Q.jsxs)(`button`,{type:`button`,className:dt(`flex items-center gap-2 flex-1 min-w-0 text-left`,g&&`pointer-events-none opacity-70`),onClick:()=>void De(e),disabled:O===e.id,"aria-label":o(`desktopHostSwitcher.actions.switchToAria`,{instance:v}),children:[(0,Q.jsx)(`span`,{className:dt(`h-2 w-2 rounded-full flex-shrink-0`,Mn(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}),i&&(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:dt(`typography-micro truncate`,Nn(f)),children:[o(n&&!i?Rn(c?.phase):In(f)),d.latencyMs==null?``:o(`desktopHostSwitcher.status.ping`,{ms:d.latencyMs}),m?` · ${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)(ft,{type:`button`,variant:`outline`,size:`sm`,className:`h-8 px-2.5`,disabled:O===e.id,onClick:t=>{t.stopPropagation(),Ie(e)},children:[O===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)(bt,{children:[(0,Q.jsx)(vt,{asChild:!0,children:(0,Q.jsx)(`button`,{type:`button`,className:dt(`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 je(e.id),"aria-label":o(a?`desktopHostSwitcher.actions.defaultInstanceAria`:`desktopHostSwitcher.actions.setAsDefaultAria`),disabled:x||!a&&Fn(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)(yt,{sideOffset:6,children:o(a?`desktopHostSwitcher.header.default`:`desktopHostSwitcher.actions.setAsDefault`)})]}),(0,Q.jsxs)(bt,{children:[(0,Q.jsx)(vt,{asChild:!0,children:(0,Q.jsx)(`button`,{type:`button`,className:dt(`h-8 w-8 rounded-md inline-flex items-center justify-center hover:bg-interactive-hover transition-colors`,Fn(f)?`text-muted-foreground/30 cursor-not-allowed`:`text-muted-foreground/60 hover:text-foreground`),onClick:t=>{t.stopPropagation(),Me(e)},disabled:Fn(f),"aria-label":o(`desktopHostSwitcher.actions.openInNewWindowAria`),children:(0,Q.jsx)(J,{name:`window`,className:`h-4 w-4`})})}),(0,Q.jsx)(yt,{sideOffset:6,children:Fn(f)?o(`desktopHostSwitcher.state.instanceUnreachable`):o(`desktopHostSwitcher.actions.openInNewWindow`)})]})]})]},e.id)})})}),Le&&oe&&oe!==$&&(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)(ft,{type:`button`,variant:`outline`,size:`sm`,onClick:Oe,disabled:x,children:o(`desktopHostSwitcher.actions.cancel`)}),(0,Q.jsxs)(ft,{type:`button`,size:`sm`,onClick:()=>void Ae(),disabled:x,children:[x?(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)(_t,{value:ce,onChange:e=>le(e.target.value),onKeyDown:ke,placeholder:o(`desktopHostSwitcher.field.labelPlaceholder`),disabled:x}),(0,Q.jsx)(_t,{value:ue,onChange:e=>de(e.target.value),onKeyDown:ke,placeholder:o(`desktopHostSwitcher.field.urlPlaceholder`),disabled:x})]})]}),(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:we,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`)})]})}),ae&&(0,Q.jsx)(`div`,{className:`flex-shrink-0 typography-meta text-status-error`,children:ae})]}),ze=(0,Q.jsx)(ut,{open:V.open,onOpenChange:e=>{if(!e&&O){Pe();return}ie(t=>({...t,open:e,...e?{}:{hostId:null,error:null,errorCode:null,detail:null,phase:`idle`}}))},children:(0,Q.jsxs)(st,{className:`w-[min(28rem,calc(100vw-2rem))] max-w-none`,children:[(0,Q.jsxs)(ot,{children:[(0,Q.jsxs)(ct,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(J,{name:`loader-4`,className:dt(`h-4 w-4`,!V.error&&`animate-spin`)}),o(`desktopHostSwitcher.ssh.connectingTo`,{host:V.hostLabel||o(`desktopHostSwitcher.ssh.instanceFallback`)})]}),V.error?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(lt,{className:`sr-only`,children:o(Ct(Ot(V.errorCode,V.error)))}),(0,Q.jsx)(St,{errorCode:V.errorCode,detail:V.error})]}):(0,Q.jsx)(lt,{children:V.detail||o(Rn(V.phase))})]}),V.error?(0,Q.jsxs)(`div`,{className:`flex flex-wrap justify-end gap-2`,children:[(0,Q.jsx)(ft,{type:`button`,size:`sm`,variant:`outline`,onClick:()=>{we(),Pe()},children:o(`desktopHostSwitcher.sshError.openRemoteSettings`)}),(0,Q.jsx)(ft,{type:`button`,size:`sm`,variant:`outline`,onClick:()=>void Ne(),children:o(`desktopHostSwitcher.actions.switchToLocal`)}),(0,Q.jsx)(ft,{type:`button`,size:`sm`,onClick:Fe,disabled:!V.hostId,children:o(`desktopHostSwitcher.actions.retry`)})]}):null]})});return r?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`w-full max-h-[70vh] flex flex-col overflow-hidden gap-2`,children:Re}),ze]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(ut,{open:e,onOpenChange:t,children:(0,Q.jsx)(st,{className:`w-[min(42rem,calc(100vw-2rem))] max-w-none max-h-[70vh] flex flex-col overflow-hidden gap-3`,children:Re})}),ze]})}function Wn(){let e=(0,Z.c)(11),[t,n]=X.useState(!1),{t:r}=xe();if(!T())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)(ft,{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)(Un,{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 Gn=e=>e.shouldUseDesktopShellPasswordLogin?`locked`:`error`,Kn=`/auth/session`,qn=4,Jn=1500,Yn=`openchamber.uiAuth.trustDevice`,Xn=`desktop-local`,Zn=`desktop-local`,Qn=()=>{if(typeof window>`u`)return``;let e=window.__OPENCHAMBER_LOCAL_ORIGIN__;return typeof e==`string`?e.trim():``},$n=(e,t)=>{let n=L(e),r=L(t);if(!n||!r)return!1;try{return new URL(n).origin===new URL(r).origin}catch{return!1}},er=()=>T(),tr=e=>{let t=e.replace(/^\[|\]$/g,``);return t===`localhost`||t===`127.0.0.1`||t===`::1`},nr=()=>{if(!T())return!1;let e=Qn();if(!e)return!1;let t=l()||(typeof window<`u`?window.location.origin:``);if($n(e,t))return!0;try{let e=L(t);return!!(e&&tr(new URL(e).hostname))}catch{return!1}},rr=()=>nr()?{clientKind:Xn,dedupeKey:Zn}:{},ir=async()=>await f(Kn,{method:`GET`,credentials:`include`,headers:{Accept:`application/json`}}),ar=()=>typeof window>`u`?!1:window.localStorage.getItem(Yn)===`true`,or=async(e,t)=>{let n=er();return await f(Kn,{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({password:e,trustDevice:t,issueClientToken:n,clientLabel:`OpenChamber Desktop`,...rr()})})},sr=async()=>{if(!T())return``;let e=await f(`/api/client-auth/clients`,{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({label:`OpenChamber Desktop`,...rr()})}).catch(()=>null);if(!e?.ok)return``;let t=await e.json().catch(()=>null);return typeof t?.token==`string`?t.token.trim():``},cr=()=>T()&&!nr(),lr=async(e,t)=>{if(!T()||typeof window>`u`)return null;let n=await E(`desktop_remote_password_login`,{url:l(),password:e,trustDevice:t,requestHeaders:u()}).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}:{}}},ur=async(e,t)=>{if(!T()||!t)return;let n=await re().catch(()=>null);if(!n)return;if(n.localOrigin&&$n(n.localOrigin,e)){await P({hosts:n.hosts,defaultHostId:n.defaultHostId,initialHostChoiceCompleted:n.initialHostChoiceCompleted,localClientToken:t}).catch(()=>void 0);return}let r=!1,i=n.hosts.map(n=>!$n(F(n),e)||n.clientToken===t?n:(r=!0,{...n,clientToken:t}));r&&await P({hosts:i,defaultHostId:n.defaultHostId,initialHostChoiceCompleted:n.initialHostChoiceCompleted}).catch(()=>void 0)},dr=async e=>{if(!e)return;let n=l(),r=u();await ur(n,e),a({apiBaseUrl:n,clientToken:e,requestHeaders:Object.keys(r).length>0?r:null,relay:t()})},fr=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},pr=()=>{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)(Gt,{width:120,height:120})}),e[0]=t):t=e[0],t},mr=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)(ft,{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)(fr,{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],_},hr=({children:e})=>{let{t}=xe(),r=X.useMemo(()=>O(),[]),i=r,a=X.useMemo(()=>T()&&!r,[r]),[o,l]=X.useState(()=>i?`authenticated`:`pending`),[u,d]=X.useState(``),[f,p]=X.useState(!1),[m,h]=X.useState(``),[g,_]=X.useState(void 0),[y,x]=X.useState(!1),[S,C]=X.useState(Nt),[w,ee]=X.useState(!1),[E,D]=X.useState(!1),[k,A]=X.useState(()=>ar()),[j,M]=X.useState(null),[N,P]=X.useState(i),F=X.useRef(null),te=X.useRef(i);X.useEffect(()=>{typeof window>`u`||window.localStorage.setItem(Yn,k?`true`:`false`)},[k]);let ne=X.useCallback(async()=>{if(i)return Nt;try{let e=await Mt();return C(e),e}catch{return C(Nt),Nt}},[i]);X.useEffect(()=>{let e=!1;if(!i)return(async()=>{try{if(!window.isSecureContext||!mt()){e||ee(!1);return}e||ee(!0)}catch{e||ee(!1)}})(),()=>{e=!0}},[i]);let I=X.useRef(0),L=X.useRef(null),re=X.useRef(null),R=X.useCallback(()=>{L.current!==null&&(window.clearTimeout(L.current),L.current=null)},[]),z=X.useCallback(()=>{I.current=0,R()},[R]),B=X.useCallback(()=>I.current>=qn?!1:(I.current+=1,R(),L.current=window.setTimeout(()=>{L.current=null,re.current?.()},Jn*I.current),!0),[R]);X.useEffect(()=>R,[R]);let V=X.useCallback(async()=>{if(i){l(`authenticated`);return}l(e=>e===`authenticated`?e:`pending`);try{let[e,t]=await Promise.all([ir(),ne()]),n=await e.text();if(e.ok){z(),l(`authenticated`),x(!1),h(``),_(void 0);return}if(e.status===401){let e={};try{e=JSON.parse(n)}catch{e={}}z(),x(e.tunnelLocked===!0),C(t),l(`locked`),_(void 0);return}if(e.status===429){let e={};try{e=JSON.parse(n)}catch{e={}}z(),_(e.retryAfter),x(!1),l(`rate-limited`);return}if(B())return;l(`error`),x(!1)}catch(e){if(console.warn(`Failed to check session status:`,e),Gn({shouldUseDesktopShellPasswordLogin:cr()})===`locked`){l(`locked`),_(void 0),x(!1);return}if(B())return;l(`error`),x(!1)}},[ne,z,B,i]);X.useEffect(()=>{re.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=xn(e=>{s(e)&&(d(``),h(``),_(void 0),x(!1),z(),P(!1),te.current=!1,l(`pending`),V())}),t=n(t=>e.schedule(t));return()=>{t(),e.cancel()}},[V,z,i]),X.useEffect(()=>{!i&&o===`locked`&&(te.current=!1,P(!1))},[i,o]),X.useEffect(()=>{o===`locked`&&F.current&&(F.current.focus(),F.current.select())},[o]),X.useEffect(()=>{if(!i&&o===`authenticated`&&!te.current){te.current=!0;let e=!1;return yn({runtimeKey:c(),initializeAppearance:b,syncSettings:v,applyDirectory:gn,onError:(e,t)=>{console.error(`[SessionAuthGate] ${e} settings hydration failed:`,t)}},{force:!0}).then(()=>{e||P(!0)}),()=>{e=!0}}},[i,o]);let ie=async e=>{e.preventDefault(),await U(!1)},ae=X.useCallback(async()=>{M(`register`),D(!0);try{await jt()}finally{M(null),D(!1)}await ne()},[ne]),H=X.useCallback(()=>{Ft(),M(null),D(!1)},[]),U=X.useCallback(async e=>{if(!y&&!(!u||f)){E&&H(),p(!0),h(``);try{if(cr()){let e=await lr(u,k);if(e?.token){d(``),x(!1),await dr(e.token),l(`authenticated`);return}if(e?.status===401){h(t(`sessionAuth.error.incorrectPassword`)),x(!1),l(`locked`);return}if(e?.status===429){_(void 0),x(!1),l(`rate-limited`);return}}let n=await or(u,k);if(n.ok){let r=await n.json().catch(()=>null),i=er(),a=``;if(i&&(a=typeof r?.clientToken==`string`&&r.clientToken.trim()?r.clientToken.trim():``,a||=(await lr(u,k))?.token||await sr()),d(``),x(!1),a&&await dr(a),e&&w)try{await ae(),Ze.success(t(`sessionAuth.toast.passkeyAdded`)),l(`authenticated`);return}catch(e){if(Bt(e))Ze.message(t(`sessionAuth.toast.passkeySetupCanceled`));else{let n=e instanceof Error?e.message:t(`sessionAuth.error.passkeySetupFailed`);Ze.error(n)}l(`authenticated`);return}l(`authenticated`);return}if(n.status===401){h(t(`sessionAuth.error.incorrectPassword`)),x(!1),l(`locked`);return}if(n.status===429){let e=await n.json().catch(()=>({}));_(e.retryAfter),x(!1),l(`rate-limited`);return}h(t(`sessionAuth.error.unexpectedResponse`)),x(!1),l(`error`)}catch(e){console.warn(`Failed to submit UI password:`,e);let n=cr()?await lr(u,k):null;if(n?.token){d(``),x(!1),await dr(n.token),l(`authenticated`);return}if(n?.status===401){h(t(`sessionAuth.error.incorrectPassword`)),x(!1),l(`locked`);return}if(n?.status===429){_(void 0),x(!1),l(`rate-limited`);return}h(t(`sessionAuth.error.networkRetry`)),x(!1),l(`error`)}finally{p(!1)}}},[H,E,f,y,u,ae,w,t,k]),W=X.useCallback(async()=>{if(!(f||!w)){if(E){H();return}D(!0),M(`auth`),h(``);try{let e=await Lt(k,{issueClientToken:er(),clientLabel:`OpenChamber Desktop`,...rr()}),t=er()&&typeof e?.clientToken==`string`&&e.clientToken.trim()?e.clientToken.trim():``;t&&await dr(t),d(``),l(`authenticated`)}catch(e){if(Bt(e))h(``);else{let n=e instanceof Error?e.message:t(`sessionAuth.error.passkeySignInCanceled`);h(n)}}finally{M(null),D(!1)}}},[H,E,f,w,t,k]),oe=X.useCallback(async()=>{if(!(f||y||!w)){if(E){H();return}if(o!==`authenticated`){if(!u){h(t(`sessionAuth.error.enterPasswordForPasskey`));return}await U(!0);return}h(``);try{await ae(),Ze.success(t(`sessionAuth.toast.passkeyAdded`))}catch(e){if(Bt(e)){Ze.message(t(`sessionAuth.toast.passkeySetupCanceled`));return}let n=e instanceof Error?e.message:t(`sessionAuth.error.passkeySetupFailed`);Ze.error(n)}}},[H,U,E,f,y,u,ae,o,w,t]),se=w&&S.enabled,ce=se&&S.hasPasskeys;return o===`pending`||o===`authenticated`&&!N?(0,Q.jsx)(pr,{}):o===`error`?(0,Q.jsx)(mr,{onRetry:()=>{z(),V()},errorType:`network`,children:a&&(0,Q.jsxs)(`div`,{className:`w-full max-w-xs`,children:[(0,Q.jsx)(Wn,{}),(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)(mr,{onRetry:()=>void V(),errorType:`rate-limit`,retryAfter:g}):o===`locked`?(0,Q.jsx)(fr,{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(y?`sessionAuth.locked.tunnelTitle`:`sessionAuth.locked.unlockTitle`)}),(0,Q.jsx)(`p`,{className:`typography-meta text-muted-foreground`,children:t(y?`sessionAuth.locked.tunnelDescription`:`sessionAuth.locked.passwordDescription`)})]}),!y&&(0,Q.jsxs)(`form`,{onSubmit:ie,className:`w-full space-y-2`,children:[ce&&(0,Q.jsxs)(ft,{type:`button`,variant:`outline`,className:`w-full`,onClick:()=>void W(),disabled:f||E&&j!==`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&&j===`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)(_t,{id:`openchamber-ui-password`,ref:F,type:`password`,autoComplete:`current-password`,placeholder:t(`sessionAuth.password.placeholder`),value:u,onChange:e=>{d(e.target.value),m&&h(``)},className:`pl-10`,"aria-invalid":!!m||void 0,"aria-describedby":m?`oc-ui-auth-error`:void 0,disabled:f})]}),(0,Q.jsx)(ft,{type:`submit`,size:`icon`,disabled:!u||f,"aria-label":t(f?`sessionAuth.actions.unlockingAria`:`sessionAuth.actions.unlockAria`),children:f?(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)(gt,{checked:k,onChange:A,disabled:f,ariaLabel:t(`sessionAuth.actions.trustDeviceAria`),className:`size-4`,iconClassName:`size-4`}),(0,Q.jsx)(`span`,{children:t(`sessionAuth.actions.trustDevice`)})]}),(0,Q.jsx)(ft,{type:`button`,variant:`ghost`,size:`sm`,className:`text-muted-foreground hover:text-foreground`,onClick:()=>void oe(),disabled:f,children:t(E&&j===`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)(gt,{checked:k,onChange:A,disabled:f,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)(Wn,{}),(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})},gr=e=>{let t=(0,Z.c)(14),{children:n}=e,r=G(_r),i=G(vr),a=G(yr),o=G(br),s=G(xr),{deviceType:c,hasTouchInput:l}=Jt(),u;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=typeof document<`u`&&pe(),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 _r(e){return e.fontSize}function vr(e){return e.codeFontSize}function yr(e){return e.applyTypography}function br(e){return e.padding}function xr(e){return e.applyPadding}var Sr=e(H(),1),Cr=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}`},wr=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=Cr(e.colors.surface.muted),r=Cr(e.colors.surface.subtle),i=Cr(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=O()?ue:de;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()}},Tr=()=>cn()?new URLSearchParams(window.location.search):null,Er=()=>typeof window>`u`||window.matchMedia(`(prefers-color-scheme: dark)`).matches,Dr=()=>{let e=Tr()?.get(`themeVariant`);return e===`dark`||e===`light`?e===`dark`:Er()},Or=(e,t)=>t.reduce((e,t)=>e&&typeof e==`object`?e[t]:void 0,e),kr=e=>typeof e==`string`&&e.trim().length>0,Ar=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(!kr(Or(e,t)))return!1;let t=Or(e,[`metadata`,`variant`]);return t===`light`||t===`dark`},jr=e=>Ar(e.currentTheme)?e.currentTheme:null,Mr=e=>jr(e)?.metadata.variant??null,Nr=Zt,Pr=$t,Fr=()=>{let e=Tr()?.get(`currentTheme`);if(!e)return null;try{let t=JSON.parse(e);return Ar(t)?t:null}catch{return null}},Ir=e=>Qt(e===`dark`),Lr=typeof window<`u`?X.useLayoutEffect:X.useEffect,Rr=()=>{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`)}},zr=e=>{let t=Nr,n=Pr,r=`system`;if(typeof window<`u`){let e=Tr(),i=e?.get(`themeMode`),a=e?.get(`lightThemeId`),o=e?.get(`darkThemeId`),s=g(`themeMode`),c=g(`lightThemeId`),l=g(`darkThemeId`),u=g(`useSystemTheme`),d=g(`selectedThemeId`),f=g(`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=Xt(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=Xt(e);r&&(r.metadata.variant===`light`?t=r.metadata.id:n=r.metadata.id)}return{themeMode:r,lightThemeId:t,darkThemeId:n}};function Br({children:e,defaultThemeId:t}){let r=(0,X.useMemo)(()=>new wr,[]),[i,a]=(0,X.useState)(()=>zr(t)),[o,c]=(0,X.useState)(!1),[l,u]=(0,X.useState)(()=>Dr()),[d,p]=(0,X.useState)([]),[m]=(0,X.useState)(()=>Fr()),[v,b]=(0,X.useState)(null),[x,S]=(0,X.useState)(!1),[C,w]=(0,X.useState)(()=>typeof window>`u`||!O()?null:window.__OPENCHAMBER_VSCODE_THEME__||null),E=(0,X.useMemo)(()=>O(),[]),D=(0,X.useMemo)(()=>ee(),[]),k=(0,X.useMemo)(()=>T(),[]),A=(0,X.useMemo)(()=>typeof window>`u`?!1:Tr()!==null,[]),j=(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 E&&C&&n(C),v&&n(v),m&&n(m),d.forEach(n),Yt.forEach(n),e},[d,m,v,E,C]),M=(0,X.useMemo)(()=>e=>j.find(t=>t.metadata.id===e),[j]),N=(0,X.useMemo)(()=>(e,t)=>{let n=M(e);return n&&n.metadata.variant===t?n:j.find(e=>e.metadata.variant===t)??Ir(t)},[j,M]),P=(0,X.useMemo)(()=>E&&C?C:i.themeMode===`light`?N(i.lightThemeId,`light`):i.themeMode===`dark`||l?N(i.darkThemeId,`dark`):N(i.lightThemeId,`light`),[N,E,i,l,C]),F=ye(async()=>{if(!(typeof window>`u`||E)){S(!0);try{let e=await f(`/api/config/themes`,{method:`GET`,credentials:D?`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(Ar);p(n)}catch{}finally{S(!1)}}});(0,X.useEffect)(()=>{F()},[F]),(0,X.useEffect)(()=>{if(!E)return;let e=e=>{w(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)},[E]);let te=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)});Lr(()=>{if(typeof window>`u`)return;let e=Rr();r.apply(P),ne(E),te(P);let t=document.documentElement;return t.classList.remove(`light`,`dark`),t.classList.add(P.metadata.variant),e},[ne,r,P,E,te]),(0,X.useEffect)(()=>{if(i.themeMode!==`system`||typeof window>`u`||A)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`),t=e=>{u(e.matches)};return u(e.matches),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[i.themeMode,A]),(0,X.useEffect)(()=>{if(A||typeof window>`u`)return;h(`themeMode`,i.themeMode),h(`lightThemeId`,i.lightThemeId),h(`darkThemeId`,i.darkThemeId),h(`useSystemTheme`,String(i.themeMode===`system`)),h(`selectedThemeId`,P.metadata.id),h(`selectedThemeVariant`,P.metadata.variant===`light`?`light`:`dark`);let e=N(i.lightThemeId,`light`),t=N(i.darkThemeId,`dark`);h(`splashBgLight`,e.colors.surface.background),h(`splashFgLight`,e.colors.surface.foreground),h(`splashBgDark`,t.colors.surface.background),h(`splashFgDark`,t.colors.surface.foreground),D&&(localStorage.setItem(`themeMode`,i.themeMode),localStorage.setItem(`useSystemTheme`,String(i.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))},[i,P,N,D,A]),(0,X.useEffect)(()=>{if(typeof window>`u`||A)return;let e=e=>{e.storageArea===window.localStorage&&(_(e.key,`themeMode`)||_(e.key,`lightThemeId`)||_(e.key,`darkThemeId`))&&a(e=>{let t=g(`themeMode`),n=t===`light`||t===`dark`||t===`system`?t:e.themeMode,r=g(`lightThemeId`),i=typeof r==`string`&&r.trim().length>0?r.trim():e.lightThemeId,a=g(`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)},[A]);let I=ye(e=>{let t=e.themeMode,n=e.lightThemeId,r=e.darkThemeId,i=Mr(e),o=jr(e);if(t!==`light`&&t!==`dark`&&t!==`system`||typeof n!=`string`||typeof r!=`string`)return;let s=n.trim(),c=r.trim();!s||!c||(Rr(),(0,Sr.flushSync)(()=>{A&&o&&b(o),t===`system`&&i&&u(i===`dark`),a(e=>e.themeMode===t&&e.lightThemeId===s&&e.darkThemeId===c?e:{themeMode:t,lightThemeId:s,darkThemeId:c})}))});(0,X.useEffect)(()=>{if(typeof window>`u`)return;let e=window;return e.__openchamberApplyThemeSync=I,()=>{e.__openchamberApplyThemeSync===I&&delete e.__openchamberApplyThemeSync}},[I]),(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||I(t.payload)};return window.addEventListener(`message`,e),()=>window.removeEventListener(`message`,e)},[I]),(0,X.useEffect)(()=>{if(A||!o)return;let e=N(i.lightThemeId,`light`),t=N(i.darkThemeId,`dark`);y({themeId:P.metadata.id,themeVariant:P.metadata.variant===`light`?`light`:`dark`,useSystemTheme:i.themeMode===`system`,lightThemeId:i.lightThemeId,darkThemeId:i.darkThemeId,splashBgLight:e.colors.surface.background,splashFgLight:e.colors.surface.foreground,splashBgDark:t.colors.surface.background,splashFgDark:t.colors.surface.foreground})},[P.metadata.id,P.metadata.variant,N,i.themeMode,i.lightThemeId,i.darkThemeId,A,o]),(0,X.useEffect)(()=>{A||!k||(async()=>{await Ce(i.themeMode,P.metadata.variant)})()},[P.metadata.variant,k,i.themeMode,A]),(0,X.useEffect)(()=>{if(typeof window>`u`)return;let e=e=>{let t=e.detail;t&&(a(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}}),c(!0))};return window.addEventListener(`openchamber:settings-synced`,e),()=>window.removeEventListener(`openchamber:settings-synced`,e)},[]),(0,X.useEffect)(()=>{if(!(A||typeof window>`u`))return n(e=>{s(e)&&(a(e=>{let t=g(`themeMode`),n=t===`light`||t===`dark`||t===`system`?t:e.themeMode,r=g(`lightThemeId`),i=typeof r==`string`&&r.trim().length>0?r.trim():e.lightThemeId,a=g(`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}}),c(!1))})},[A]);let L=ye(e=>{let t=j.find(t=>t.metadata.id===e);t&&a(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`})}),re=ye(e=>{a(t=>t.themeMode===e?t:{...t,themeMode:e})}),R=ye(e=>{if(e){a(e=>e.themeMode===`system`?e:{...e,themeMode:`system`});return}let t=P.metadata.variant===`dark`?`dark`:`light`;a(e=>e.themeMode===t?e:{...e,themeMode:t})}),z=ye(e=>{let t=j.find(t=>t.metadata.id===e&&t.metadata.variant===`light`);t&&a(e=>e.lightThemeId===t.metadata.id?e:{...e,lightThemeId:t.metadata.id})}),B=ye(e=>{let t=j.find(t=>t.metadata.id===e&&t.metadata.variant===`dark`);t&&a(e=>e.darkThemeId===t.metadata.id?e:{...e,darkThemeId:t.metadata.id})}),V=(0,X.useMemo)(()=>({currentTheme:P,availableThemes:j,setTheme:L,customThemesLoading:x,reloadCustomThemes:F,isSystemPreference:i.themeMode===`system`,setSystemPreference:R,themeMode:i.themeMode,setThemeMode:re,lightThemeId:i.lightThemeId,darkThemeId:i.darkThemeId,setLightThemePreference:z,setDarkThemePreference:B}),[j,P,x,i.darkThemeId,i.lightThemeId,i.themeMode,F,B,z,R,L,re]);return(0,Q.jsx)(Ht.Provider,{value:V,children:e})}var Vr=!1,Hr=()=>{if(Vr||typeof window>`u`)return;Vr=!0;let e={showReasoningTraces:G.getState().showReasoningTraces,sessionTitleRefreshEnabled:G.getState().sessionTitleRefreshEnabled,sessionGoalEnabled:G.getState().sessionGoalEnabled,sessionGoalDefaultBudgetEnabled:G.getState().sessionGoalDefaultBudgetEnabled,sessionGoalDefaultBudget:G.getState().sessionGoalDefaultBudget,collapsibleThinkingBlocks:G.getState().collapsibleThinkingBlocks,showDeletionDialog:G.getState().showDeletionDialog,nativeNotificationsEnabled:G.getState().nativeNotificationsEnabled,notificationMode:G.getState().notificationMode,notifyOnSubtasks:G.getState().notifyOnSubtasks,notifyOnCompletion:G.getState().notifyOnCompletion,notifyOnError:G.getState().notifyOnError,notifyOnQuestion:G.getState().notifyOnQuestion,notificationTemplates:G.getState().notificationTemplates,summarizeLastMessage:G.getState().summarizeLastMessage,summaryThreshold:G.getState().summaryThreshold,summaryLength:G.getState().summaryLength,maxLastMessageLength:G.getState().maxLastMessageLength,autoDeleteEnabled:G.getState().autoDeleteEnabled,autoDeleteAfterDays:G.getState().autoDeleteAfterDays,sessionRetentionAction:G.getState().sessionRetentionAction,fontSize:G.getState().fontSize,terminalFontSize:G.getState().terminalFontSize,editorFontSize:G.getState().editorFontSize,uiFont:G.getState().uiFont,monoFont:G.getState().monoFont,padding:G.getState().padding,cornerRadius:G.getState().cornerRadius,inputBarOffset:G.getState().inputBarOffset,mobileKeyboardMode:G.getState().mobileKeyboardMode,diffLayoutPreference:G.getState().diffLayoutPreference,gitChangesViewMode:G.getState().gitChangesViewMode},t=null,n=null,r=()=>{let e=t;t=null,n=null,e&&Object.keys(e).length>0&&y(e)},i=e=>{t={...t??{},...e},!n&&(n=setTimeout(r,150))};G.subscribe(t=>{let n={showReasoningTraces:t.showReasoningTraces,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.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)})},Ur=(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||e[n]?.variant!==t[n]?.variant)return!1;return!0},Wr=(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},Gr=(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},Kr=(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])&&Gr(e[n],t[n]))},qr=()=>{let e=G.getState();return{favoriteModels:e.favoriteModels,hiddenModels:e.hiddenModels,collapsedModelProviders:e.collapsedModelProviders,recentModels:e.recentModels,recentAgents:e.recentAgents,recentEfforts:e.recentEfforts}},Jr=(e,t)=>Ur(e.favoriteModels,t.favoriteModels)&&Wr(e.hiddenModels,t.hiddenModels)&&Gr(e.collapsedModelProviders,t.collapsedModelProviders)&&Ur(e.recentModels,t.recentModels)&&Gr(e.recentAgents,t.recentAgents)&&Kr(e.recentEfforts,t.recentEfforts),Yr=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()]))}),Xr=()=>{if(typeof window>`u`)return()=>{};let e=null,t=null,n=!1,r=()=>{e=null;let n=qr();t&&Jr(t,n)||(t=Yr(n),y(n).catch(()=>{}))},i=()=>{if(!n){n=!0;return}e!==null&&window.clearTimeout(e),e=window.setTimeout(r,1200)},a=G.subscribe((e,t)=>{Jr({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)}},Zr=!1,Qr=`openchamber-typography-base`,$r=()=>{if(typeof document>`u`)return;let e=`:root {\n${Object.entries(de).map(([e,t])=>` --text-${e.replace(/([A-Z])/g,`-$1`).toLowerCase()}: ${t};`).join(`
|
|
4
|
-
`)}\n}\n`,t=document.getElementById(Qr);if(t){t.textContent=e;return}let n=document.createElement(`style`);n.id=Qr,n.textContent=e,document.head.appendChild(n)},ei=()=>{Zr||typeof window>`u`||(Zr=!0,$r())};function ti(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)(ni,r);let i;return t[1]===n?i=t[2]:(i=(0,Q.jsx)(ge,{client:x,children:n}),t[1]=n,t[2]=i),i}function ni(){return m(x)}var ri=15,ii=2e3,ai=e=>{let t=q(e=>e.isConnected),n=q(e=>e.providers.length),r=q(e=>e.agents.length),i=q(e=>e.activeDirectoryKey),a=q(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>=ri){u(!0);return}let e=q.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?ii:null)},oi=40,si=20971520,ci=new Map,li=0;function ui(e){return e.length*2}function di(e,t){let n=ci.get(e);n!==void 0&&(li-=n),ci.delete(e),ci.set(e,t),li+=t}function fi(e,t){let n=ci.get(e);(n!==void 0||t!==void 0)&&di(e,t??n??0)}function pi(e){let t=ci.get(e);t!==void 0&&(ci.delete(e),li-=t)}function mi(e,t){let n=e??new Set;for(;ci.size>oi||li>si;){let e=ci.keys().next().value;if(!e)return;if(n.has(e)){if(fi(e),ci.size<=n.size)return;continue}pi(e),t(e)}}function hi(e,t){di(e,t)}function gi(e){pi(e)}function _i(e,t){fi(e,t)}function vi(e){let t=new Map,n=e=>{t.delete(e),gi(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=ui(n.content);return t.set(e,{...n,size:r?.isFile?r.size:void 0,mtimeMs:r?.isFile?r.mtimeMs:void 0}),hi(e,i),mi(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 _i(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 yi(e){let t=(0,Z.c)(8),{apis:n,children:r}=e,i;t[0]===n.files?i=t[1]:(i=vi(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)(fn.Provider,{value:o,children:r}),t[5]=o,t[6]=r,t[7]=s):s=t[7],s}var bi=`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)`,xi=`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 Si(){let e=(0,Z.c)(2),t=Ci,[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 Ci(){return typeof document<`u`&&document.documentElement.classList.contains(`dark`)}function wi(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 Ti=e=>{let t=(0,Z.c)(7),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r=Si();wi(r?bi:xi);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},Ei=(e,t)=>Ee(Te.getState().dictionary,e,t),Di=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)?Ei(`common.date.today`):r(t,i)?Ei(`common.date.yesterday`):t.toLocaleDateString(Se(),{month:`short`,day:`numeric`,year:`numeric`}).replace(`,`,``)},Oi=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?Ei(`common.relative.justNow`):t<36e5?Ei(`common.relative.minutesAgoShort`,{count:Math.floor(t/6e4)}):Ei(`common.relative.hoursAgoShort`,{count:Math.floor(t/36e5)})}return Di(e)},ki=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?Ei(`common.relative.minutesAgoCompact`,{count:Math.max(1,Math.floor(t/n))}):t<i?Ei(`common.relative.hoursAgoCompact`,{count:Math.floor(t/r)}):t<a?Ei(`common.relative.daysAgoCompact`,{count:Math.floor(t/i)}):t<5*a?Ei(`common.relative.weeksAgoCompact`,{count:Math.floor(t/a)}):t<o?Ei(`common.relative.monthsAgoCompact`,{count:Math.floor(t/2592e6)}):Ei(`common.relative.yearsAgoCompact`,{count:Math.floor(t/o)})},Ai=(e,t)=>ji(d(e),d(t)),ji=(e,t)=>!e||!t?!1:e===t?!0:t===`/`?e.startsWith(`/`):e.startsWith(`${t}/`),Mi=e=>e.toLowerCase().replace(/^opencode[/-]?/i,``).replace(/[-_]/g,``).trim(),Ni=(e,t)=>e?Mi(e)!==Mi(t):!1,Pi=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}},Fi=e=>Pi(e.time?.created)??0,Ii=(e,t,n)=>{let r=n.has(e.id),i=n.has(t.id);return r===i?r&&i?Fi(t)-Fi(e):De(t)-De(e):r?-1:1},Li=e=>{let t=new Map;return e.forEach(e=>{t.set(e.id,e)}),Array.from(t.values())},Ri=e=>`__archived__:${e}`,zi=(e,t)=>{let n=d(e.directory??null),r=d(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`},Bi=`box-border w-full px-2 py-1.5 text-left typography-micro text-muted-foreground/70 select-none`,Vi=`bg-[color-mix(in_srgb,var(--surface-foreground)_6%,transparent)] dark:bg-[color-mix(in_srgb,var(--surface-foreground)_11%,transparent)]`,Hi=`hover:bg-[color-mix(in_srgb,var(--surface-foreground)_3.5%,transparent)] dark:hover:bg-[color-mix(in_srgb,var(--surface-foreground)_8%,transparent)]`,Ui=e=>{let t=Math.max(0,e);return t===0?8:30+(t-1)*14},Wi=(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},Gi=2e4,Ki=()=>typeof document>`u`||document.visibilityState===`visible`&&document.hasFocus()?`visible`:`hidden`,qi=e=>{if(!w()&&!se())return;let t=S();t?.push?.setVisibility&&t.push.setVisibility({visible:e,platform:ce()})},Ji=e=>{let t=e?.enabled??!0;X.useEffect(()=>{if(!t||!w()&&!se()||typeof window>`u`)return;if(se()){let e=!0,t=!1,n=null,r=()=>qi(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&&qi(!0)},Gi);return()=>{t=!0,window.clearInterval(i),n?.()}}if(typeof document>`u`)return;let e=()=>{qi(Ki()===`visible`)},n=()=>{Ki()===`visible`&&qi(!0)},r=()=>{qi(!1)};e();let i=window.setInterval(n,Gi);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])},Yi=`OpenChamber`,Xi=e=>{let t=e.replace(/\\/g,`/`).replace(/\/+$/,``).split(`/`).filter(Boolean);return t[t.length-1]??``},Zi=(e,t)=>[e,t,Yi].filter(e=>typeof e==`string`&&e.trim().length>0).join(` | `),Qi=()=>{let e=qe(e=>e.activeProjectId?e.projects.find(t=>t.id===e.activeProjectId)??null:null),t=X.useMemo(()=>e&&Xi(e.path)||null,[e]),[n,r]=X.useState(null);X.useEffect(()=>{if(typeof window>`u`||!T()){r(null);return}let e=!1,t=async()=>{try{if(ee()){e||r(null);return}let t=window.__OPENCHAMBER_LOCAL_ORIGIN__||window.location.origin,n=l();if(n&&M(n,t)){e||r(null);return}let i=(await re()).hosts.find(e=>n?M(n,F(e)):!1),a=i?.label?.trim()?N(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(()=>Zi(t,n),[t,n]);X.useEffect(()=>{typeof document<`u`&&(document.title=i),T()&&(async()=>{try{if(typeof navigator<`u`&&/Macintosh|Mac OS X/.test(navigator.userAgent||``))return;await be(i)}catch{return}})()},[i])},$i=()=>{let e=K.getState().currentSessionId;if(!e)return``;let t=tt().find(t=>t.id===e);return typeof t?.directory==`string`?t.directory:``},ea=async(e,t=6e3)=>{let n=new AbortController,r=setTimeout(()=>n.abort(),t),i=Date.now();try{let t=await f(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)}},ta=e=>{if(!e||!Number.isFinite(e))return`(n/a)`;try{return new Date(e).toISOString()}catch{return`(invalid)`}},na=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},ra=e=>!!e&&typeof e==`object`&&!Array.isArray(e),ia=(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,aa=(e,t,n)=>e===`node-shebang`||e===`node-launcher`?t?`node (${t})`:`node`:e===`bun-shebang`?n?`bun (${n})`:`bun`:e||`direct executable`,oa=async()=>{let e=new Date,t=typeof navigator<`u`?navigator.userAgent:`(no navigator)`,n=$i(),i=G.getState().eventStreamStatus,a=typeof window<`u`?window.location.origin:``,o=r(),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 f(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 f(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()},p=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 ea(t,typeof e.timeoutMs==`number`?e.timeoutMs:void 0);return{label:e.label,url:t,result:n}})):[],m=[];m.push(`Time: ${e.toISOString()}`),m.push(`OpenChamber version: 1.19.7-beta.2`),m.push(`Runtime: ${a||`(unknown)`} (api=${c||`(unknown)`})`),m.push(`OpenCode SDK base: ${W.getBaseUrl()}`),m.push(`Event stream: ${i}`),m.push(`Directory: ${n||`(none)`}`),m.push(`Platform: ${t}`);let h=na(l?.openCodePort);if(m.push(`OpenCode runtime port: ${h??`(unknown)`}`),typeof l?.openCodeRunning==`boolean`&&m.push(`OpenCode runtime running: ${l.openCodeRunning?`yes`:`no`}`),typeof l?.openCodeSecureConnection==`boolean`&&m.push(`Secure OpenCode connection: ${l.openCodeSecureConnection?`true`:`false`}`),typeof l?.openCodeAuthSource==`string`&&l.openCodeAuthSource.trim()&&m.push(`OpenCode auth source: ${l.openCodeAuthSource}`),typeof window<`u`){let e=window.__OPENCHAMBER_MACOS_MAJOR__;typeof e==`number`&&Number.isFinite(e)&&e>0&&m.push(`macOS major: ${e}`)}if(/Mac OS X|Macintosh/.test(t)){m.push(``),m.push(`OpenCode CLI resolution:`);let e=ra(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:``,p=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&&m.push(`- configured: ${r.trim().length===0?`(cleared)`:r}`),i){let e=a||(i.includes(`/`)?i.split(`/`).slice(0,-1).join(`/`)||`/`:``);m.push(`- opencode: ${i}${e?` (dir=${e})`:``}`)}else m.push(`- opencode: (n/a)`);m.push(`- source: ${o||`(n/a)`}`),h&&(m.push(`- detected-now: ${h}`),m.push(`- detected-source: ${g||`(n/a)`}`)),e?(m.push(`- launched-at: ${ia(e.launchedAt)}`),m.push(`- launch: ${ia(e.binary)} ${t.join(` `)}`.trim()),m.push(`- cwd: ${ia(e.cwd)}`),m.push(`- wrapper: ${ia(e.wrapperType)}`),m.push(`- runtime: ${aa(ia(e.wrapperType,``),f,p)}`),m.push(`- PATH entries: ${ia(e.pathEntryCount,`(unknown)`)}`),m.push(`- shell env: ${ia(e.hasShellEnv,`(unknown)`)} (${ia(e.shellEnvKeysCount,`?`)} keys)`)):(m.push(`- launch-binary: ${s||`(n/a)`}`),m.push(`- launch-wrapper: ${c||`(n/a)`}`),m.push(`- launch-args: ${d.length?d.join(` `):`(none)`}`),m.push(`- runtime: ${aa(c||``,f,p)}`)),!n&&u.error&&m.push(`- resolution-endpoint: ${u.error}`)}if(m.push(``),p.length){m.push(`OpenCode API probes:`);for(let e of p){if(!e.result){m.push(`- ${e.label}: (no url)`);continue}let{ok:t,status:n,elapsedMs:r,summary:i}=e.result,a=t?``:` url=${e.url}`;m.push(`- ${e.label}: ${t?`ok`:`fail`} status=${n} time=${r}ms ${i}${a}`)}}else m.push(`OpenCode API probes: (skipped)`);return m.push(``),m.push(`Generated: ${ta(Date.now())}`),m.join(`
|
|
5
|
-
`)},sa=async()=>{let e=await oa(),t=G.getState();t.setOpenCodeStatusText(e),t.setOpenCodeStatusDialogOpen(!0)},ca=(e,t)=>e===t?!0:!e||!t?!1:e.scope===t.scope&&e.sessionId===t.sessionId&&e.projectId===t.projectId,la=e=>e?`${e.scope}:${e.projectId??``}:${e.sessionId}`:null,ua=e=>({scope:`project`,sessionId:e,projectId:null}),da=B()(e=>({focus:null,setFocus:t=>e(e=>ca(e.focus,t)?e:{focus:t})})),fa=null,pa=0,ma=(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},ha=e=>{let t=++pa;return fa={pinned:ma(`pinned`,e.pinned),project:ma(`project`,e.project)},()=>{pa===t&&(fa=null)}},ga=()=>fa,_a=e=>!!e.parentID,va=(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&&_a(r);){let e=r.parentID;if(!e)break;let t=n.get(e);if(!t)return e;r=t}return r?.id??e},ya=()=>{let e=Ye.getState().activeSessions;if(e.length>0)return e;let t=et();return t.length>0?t:tt()},ba=(e,t,n)=>{if(!t)return-1;if(n?.scope){let r=e.findIndex(e=>e.scope===n.scope&&e.sessionId===t&&(!n.projectId||e.projectId===n.projectId));if(r>=0)return r}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)},xa=e=>[...e.pinned,...e.project],Sa=(e,t,n,r)=>{if(e.length===0)return null;let i=ba(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=da.getState().focus)=>{let r=va(t,ya()),i=n?.sessionId===t?n:null,a=ga();return a?Sa(xa(a),e,r,i):null},wa=(e,t,n=e=>{K.getState().setCurrentSession(e.sessionId,e.directory)})=>{let r=Ca(e,t);return r?(da.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(D())return;let e=ka();e!==1&&ja(e)},Pa=async()=>{if(D())try{let e=await E(`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(D())try{let e=await E(`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(D())try{let e=await E(`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=mn.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=G.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=mn.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=mn.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||!ln(window.location.search)?!1:(window.parent.postMessage({type:tn},window.location.origin),!0),Ya=()=>{let{isMobile:e,closeActiveContextPanelTab:t}=G.getState();if(e)return!1;let n=pn();return n&&t(n)?!0:D()?(E(`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=K($a),r=K(eo),i=K(to),a=K(no),o=Qe,s=G(ro),c=G(io),l=G(ao),u=G(oo),d=G(so),f=G(co),p=G(lo),m=G(uo),h=G(fo),g=G(po),_=G(mo),v=G(ho),y=G(go),b=G(_o),x=G(vo),S=G(yo),C=G(bo),w=G(xo),T=G(So),ee=U(Co),k=qe(wo),{themeMode:A,setThemeMode:j}=Vt(),{working:M}=sn(),N=X.useRef(null),P=X.useRef(null),F=X.useRef(null),te=X.useRef(!1),ne=X.useRef(A),I,L;e[0]===A?(I=e[1],L=e[2]):(I=()=>{ne.current=A},L=[A],e[0]=A,e[1]=I,e[2]=L),X.useEffect(I,L);let re;e[3]===i?re=e[4]:(re=()=>{P.current&&=(clearTimeout(P.current),null),N.current=null,i()},e[3]=i,e[4]=re);let R=re,z;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(z=()=>{F.current&&=(clearTimeout(F.current),null),an.getState().clear()},e[5]=z):z=e[5];let B=z,V;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(V=()=>{F.current&&=(clearTimeout(F.current),null);let e=an.getState().arm(nn);F.current=setTimeout(()=>{let{expiresAt:e}=an.getState();e&&Date.now()>=e&&an.getState().clear(),F.current=null},Math.max(0,e-Date.now()))},e[6]=V):V=e[6];let ie=V,ae;e[7]!==k?.id||e[8]!==k?.path||e[9]!==r||e[10]!==ee||e[11]!==a||e[12]!==h||e[13]!==n||e[14]!==R||e[15]!==_||e[16]!==b||e[17]!==m||e[18]!==y||e[19]!==C||e[20]!==d||e[21]!==f||e[22]!==g||e[23]!==v||e[24]!==j||e[25]!==x||e[26]!==T||e[27]!==t||e[28]!==p||e[29]!==s||e[30]!==w||e[31]!==c||e[32]!==S||e[33]!==u||e[34]!==l||e[35]!==M?(ae=()=>{let e=e=>Kt(e,T),i=e=>Wt(e,T),A=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,re=ko,z=Ao,V=async()=>{let e=un(),n=e?on(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;Ze.error(n instanceof Error?n.message:t(`chat.chatInput.toast.compactFailed`))}return}let r=K.getState().currentSessionId;if(!r)return;let{currentProviderId:i,currentModelId:a}=q.getState();await Za({sessionId:r,currentProviderId:i,currentModelId:a,waitForConnectionOrThrow:Ge,getAuthoritativeDirectoryForSession:K.getState().getAuthoritativeDirectoryForSession,summarizeSession:jo,onCompactFailed:e=>{Ze.error(e instanceof Error?e.message:t(`chat.chatInput.toast.compactFailed`))}})},ae=t=>{let r=an.getState().pending;if(t.repeat||t.isComposing&&!r||t.defaultPrevented&&!r||A(t.target)&&!r)return;let i=e(`leader_key`);if(r){let e=()=>{te.current=!0,window.setTimeout(()=>{te.current=!1},0)};if(i&&Y(t,i)){t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),ie();return}let r=t.key.toLowerCase();if(r===`escape`){t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),B();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(),B();return}let{activeMainTab:a,isModelSelectorOpen:o,isAgentSelectorOpen:s}=G.getState(),c=dn(a)&&!z();if(r===`m`&&c){t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),e(),B(),window.requestAnimationFrame(()=>{y(!o,{instant:!0})});return}if(r===`a`&&c){t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),e(),B(),b(!s,{instant:!0});return}if(r===`n`&&c){t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),e(),B();let r=un(),i=r?on(r):null;i?i.shortcut(`new`):(_(`chat`),g(!1),n());return}if(r===`c`&&c){t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),e(),B(),V(),re();return}t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),e(),B(),re();return}if(!i||!Y(t,i)||z())return;let{activeMainTab:a}=G.getState();dn(a)&&(t.preventDefault(),t.stopPropagation(),ie())},H=()=>an.getState().pending||te.current,U=e=>{H()&&e.preventDefault()},W=e=>{H()&&(e.preventDefault(),e.stopPropagation())},oe=t=>{if(A(t.target)){if(!O()&&Y(t,e(`new_terminal_tab`))){let e=pn();if(!e||!Wa(e))return;t.preventDefault(),t.stopPropagation();return}if(!O()&&Y(t,e(`previous_terminal_tab`))){let e=pn();if(!e||!Ka(e,-1))return;t.preventDefault(),t.stopPropagation();return}if(!O()&&Y(t,e(`next_terminal_tab`))){let e=pn();if(!e||!Ka(e,1))return;t.preventDefault(),t.stopPropagation();return}if(Y(t,e(`close_context_panel_tab`))){let e=pn();if(!e)return;let{closed:n,wasLastTab:r}=qa(e);if(!n)return;if(t.preventDefault(),t.stopPropagation(),r){let e=G.getState();e.setBottomTerminalOpen(!1),e.activeMainTab===`terminal`&&e.setActiveMainTab(`chat`)}return}if(Y(t,e(`toggle_terminal`))){let{isMobile:e}=G.getState();if(e)return;t.preventDefault(),t.stopPropagation(),p();return}if(Y(t,e(`toggle_bottom_panel`))){let{isMobile:e}=G.getState();if(e)return;t.preventDefault(),t.stopPropagation(),p();return}if(Y(t,e(`toggle_terminal_expanded`))){let{isMobile:e,isBottomTerminalExpanded:n}=G.getState();if(e)return;t.preventDefault(),t.stopPropagation(),m(!n);return}}},se=Mo,ce=t=>{if(t.defaultPrevented)return;if(Y(t,e(`close_context_panel_tab`))){(Ja()||Ya())&&(t.preventDefault(),t.stopPropagation());return}if(A(t.target))return;let b=No;if(b(t.target)&&t.ctrlKey&&!t.metaKey&&!t.shiftKey&&!t.altKey&&t.key.toLowerCase()===`t`){t.preventDefault(),se();return}if(Y(t,e(`open_command_palette`))){t.preventDefault(),s();return}if(Y(t,e(`open_timeline_dialog`))){t.preventDefault(),x(!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}=G.getState();if(!n||h||O()||e!==`chat`||r||i||a||o||s||c||l||u)return;t.preventDefault(),S();return}if(Y(t,e(`open_status`))){t.preventDefault(),sa();return}if(Y(t,e(`open_help`))){t.preventDefault(),c();return}if(D()&&Y(t,e(`new_mini_chat`))){t.preventDefault(),E(`desktop_open_draft_mini_chat_window`,{directory:ee||k?.path||``,projectId:k?.id??null}).catch(Po);return}let T=Y(t,e(`new_chat`)),F=Y(t,e(`new_chat_worktree`));if(T||F){if(t.preventDefault(),_(`chat`),g(!1),!O()&&F){en();return}n();return}if(Y(t,e(`cycle_theme`))){if(t.preventDefault(),Tr()!==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(ne.current)+1)%e.length;j(e[r]),requestAnimationFrame(()=>{typeof document>`u`||typeof window>`u`||(document.hasFocus()||window.focus(),n&&document.contains(n)&&n.focus({preventScroll:!0}))});return}if(qt(t,`in`,e(`zoom_in`))){t.preventDefault(),Pa();return}if(qt(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}=G.getState();v(!e);return}if(Y(t,e(`toggle_sidebar`))){t.preventDefault();let{isMobile:e,isSessionSwitcherOpen:n}=G.getState();e?g(!n):l();return}if(Y(t,e(`focus_input`))){t.preventDefault(),document.querySelector(`textarea[data-chat-input="true"]`)?.focus();return}let te=e(`cycle_agent`),re=te&&!te.includes(`shift`)?Ut(`shift+${te}`):``,z=re&&Y(t,re)?-1:+!!Y(t,te);if(z!==0){let{isSettingsDialogOpen:e,isCommandPaletteOpen:n,isHelpDialogOpen:r,isSessionSwitcherOpen:i,isAboutDialogOpen:a,activeMainTab:o}=G.getState();if(e||n||r||i||a||!dn(o)||!b(t.target))return;let s=un(),c=s?on(s):null;if(c){t.preventDefault(),c.shortcut(`cycle`,z);return}let l=q.getState(),u=Fe(l.getVisibleAgents(),l.currentAgentName,z);if(!u)return;t.preventDefault(),l.setAgent(u),G.getState().addRecentAgent(u);let d=K.getState().currentSessionId;d&&at.getState().saveSessionAgentSelection(d,u);return}if(i(`toggle_right_sidebar`).some(e=>Y(t,e))){let{isMobile:e}=G.getState();if(e)return;t.preventDefault(),u();return}if(Y(t,e(`open_right_sidebar_git`))){let{isMobile:e}=G.getState();if(e)return;t.preventDefault(),d(!0),f(`git`);return}if(Y(t,e(`open_right_sidebar_files`))){let{isMobile:e}=G.getState();if(e)return;t.preventDefault(),d(!0),f(`files`);return}if(Y(t,e(`cycle_right_sidebar_tab`))){let{isMobile:e,rightSidebarTab:n}=G.getState();if(e)return;let r=[`git`,`files`],i=r[(r.indexOf(n)+1)%r.length];t.preventDefault(),d(!0),f(i);return}let B=e=>wa(e,K.getState().currentSessionId,e=>{_(`chat`),g(!1),K.getState().setCurrentSession(e.sessionId,e.directory)});if(i(`previous_session`).some(e=>Y(t,e))){t.preventDefault(),B(-1);return}if(i(`next_session`).some(e=>Y(t,e))){t.preventDefault(),B(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}=G.getState();if(e)return;t.preventDefault(),p();return}if(Y(t,e(`open_new_terminal`))){let{isMobile:e}=G.getState();if(e||O())return;let n=pn();if(!n||!Ga(n))return;t.preventDefault();return}if(Y(t,e(`toggle_bottom_panel`))){let{isMobile:e}=G.getState();if(e)return;t.preventDefault(),p();return}if(Y(t,e(`toggle_terminal_expanded`))){let{isMobile:e,isBottomTerminalExpanded:n}=G.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}=G.getState();if(e)return;let c=n||r||i||a,l=dn(o);if(c||!l)return;t.preventDefault(),y(!s,{instant:!0});return}if(Y(t,e(`cycle_thinking_variant`))){se()&&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}=G.getState();if(n)return;let u=r||i||a||o,d=dn(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=un();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],r=q.getState().providers.find(e=>e.id===n.providerID)?.models?.find(e=>e.id===n.modelID),i=r?.variants?Object.keys(r.variants):[],a=n.variant!==void 0&&i.includes(n.variant)?n.variant:void 0;m.selection.change({...m.selection.value,providerID:n.providerID,modelID:n.modelID,variant:a}),l(n.providerID,n.modelID,a);return}let{currentProviderId:h,currentModelId:g,providers:_,setProvider:v,setModel:y,setCurrentVariant:b}=q.getState(),x=c[(c.findIndex(e=>e.providerID===h&&e.modelID===g)+p+f)%f];v(x.providerID),y(x.modelID);let S=_.find(e=>e.id===x.providerID)?.models?.find(e=>e.id===x.modelID),C=S?.variants?Object.keys(S.variants):[],w=x.variant!==void 0&&C.includes(x.variant)?x.variant:void 0;b(w),l(x.providerID,x.modelID,w);return}if(Y(t,e(`expand_input`))){if(h)return;t.preventDefault(),w();return}if(Y(t,e(`toggle_dictation`))){let{activeMainTab:e,isCommandPaletteOpen:n,isHelpDialogOpen:r,isSessionSwitcherOpen:i,isSettingsDialogOpen:a}=G.getState();if(!dn(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:h,activeMainTab:g,isPromptNavigatorPanelOpen:_}=G.getState();if(n||s||c){R();return}if(_){t.preventDefault(),C(!1),R();return}if(l){t.preventDefault(),v(!1),R();return}if(i){R();return}let y=u||d||f||p||m||h,b=dn(g);if(y||!b){R();return}let x=un(),S=x?on(x):null,w=x?.sessionID??a;if(!Xa({sessionId:w,surfaceKind:x?.kind,wiringCanAbort:S?.canAbort,primaryCanAbort:M.canAbort})){R();return}let T=Date.now(),ee=N.current;if(ee&&T<ee){t.preventDefault(),R(),S?S.abort():(w&&Pe(w),o(w??``));return}t.preventDefault();let E=x?.kind===`secondary`?T+3e3:r(3e3)??T+3e3;N.current=E,P.current&&clearTimeout(P.current);let D=Math.max(E-T,0);P.current=setTimeout(()=>{N.current&&Date.now()>=N.current&&R()},D||0);return}};return window.addEventListener(`keydown`,ae,!0),window.addEventListener(`beforeinput`,U,!0),window.addEventListener(`compositionstart`,W,!0),window.addEventListener(`compositionupdate`,W,!0),window.addEventListener(`compositionend`,W,!0),window.addEventListener(`keydown`,oe,!0),window.addEventListener(`keydown`,ce),()=>{window.removeEventListener(`keydown`,ae,!0),window.removeEventListener(`beforeinput`,U,!0),window.removeEventListener(`compositionstart`,W,!0),window.removeEventListener(`compositionupdate`,W,!0),window.removeEventListener(`compositionend`,W,!0),window.removeEventListener(`keydown`,oe,!0),window.removeEventListener(`keydown`,ce)}},e[7]=k?.id,e[8]=k?.path,e[9]=r,e[10]=ee,e[11]=a,e[12]=h,e[13]=n,e[14]=R,e[15]=_,e[16]=b,e[17]=m,e[18]=y,e[19]=C,e[20]=d,e[21]=f,e[22]=g,e[23]=v,e[24]=j,e[25]=x,e[26]=T,e[27]=t,e[28]=p,e[29]=s,e[30]=w,e[31]=c,e[32]=S,e[33]=u,e[34]=l,e[35]=M,e[36]=ae):ae=e[36];let H=k?.id,W=k?.path,oe;e[37]!==r||e[38]!==ee||e[39]!==a||e[40]!==h||e[41]!==n||e[42]!==R||e[43]!==_||e[44]!==b||e[45]!==m||e[46]!==y||e[47]!==C||e[48]!==d||e[49]!==f||e[50]!==g||e[51]!==v||e[52]!==j||e[53]!==x||e[54]!==T||e[55]!==t||e[56]!==H||e[57]!==W||e[58]!==p||e[59]!==s||e[60]!==w||e[61]!==c||e[62]!==S||e[63]!==u||e[64]!==l||e[65]!==M?(oe=[n,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,j,M,r,R,ie,B,a,ee,H,W,T,t],e[37]=r,e[38]=ee,e[39]=a,e[40]=h,e[41]=n,e[42]=R,e[43]=_,e[44]=b,e[45]=m,e[46]=y,e[47]=C,e[48]=d,e[49]=f,e[50]=g,e[51]=v,e[52]=j,e[53]=x,e[54]=T,e[55]=t,e[56]=H,e[57]=W,e[58]=p,e[59]=s,e[60]=w,e[61]=c,e[62]=S,e[63]=u,e[64]=l,e[65]=M,e[66]=oe):oe=e[66],X.useEffect(ae,oe);let se,ce;e[67]===R?(se=e[68],ce=e[69]):(ce=()=>()=>{R(),B()},se=[R,B],e[67]=R,e[68]=se,e[69]=ce),X.useEffect(ce,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}=G.getState();return e||t||n||r||i}function jo(e,t,n,r){return W.summarizeSession(e,t,n,r)}function Mo(){let{isSettingsDialogOpen:e,isCommandPaletteOpen:t,isHelpDialogOpen:n,isSessionSwitcherOpen:r,isAboutDialogOpen:i,activeMainTab:a}=G.getState();if(e||t||n||r||i||!dn(a))return!1;let o=un();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=q.getState();if(s.getCurrentModelVariants().length===0)return!1;s.cycleCurrentVariant();let c=q.getState().currentVariant,l=K.getState().currentSessionId,u=q.getState().currentAgentName,d=q.getState().currentProviderId,f=q.getState().currentModelId;return l&&u&&d&&f&&at.getState().saveAgentModelVariantForSession(l,u,d,f,c),u&&d&&f&&q.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=Xe(),n=K(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`||!w())){try{i.length===0?localStorage.removeItem(It):localStorage.setItem(It,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`||!w())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=i(),Yo=B()(V((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 je?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(rt(x),e),refreshSnapshot:e=>ns(Be(x),e),fetchOrder:He,setOrder:Ne,waitInvalidation:Me,captureRuntime:()=>({transportIdentity:i(),generation:o()}),isCurrent:e=>e.transportIdentity===i()&&e.generation===o(),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 je&&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=qe(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 qe.getState().projects}function hs(){let e=i();Yo.getState().activateWorktreeOrderRuntime(e);let t=Go(ps),r=ls(ms);r.start();let a=n(e=>{s(e)&&(as(),Yo.getState().activateWorktreeOrderRuntime(i()),r.start())});return()=>{t(),a(),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:O,getProjects:()=>qe.getState().projects,getCatalog:()=>K.getState().availableWorktreesByProject,getActiveDirectories:()=>{let e=Ye.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=>!Ye.getState().loadedDirectories.has(gs(e)),refresh:ht,syncAdded:e=>Je(e,Ye.getState().activeSessions),subscribeProjects:e=>qe.subscribe(e),subscribeCatalog:e=>K.subscribe((t,n)=>{t.availableWorktreesByProject!==n.availableWorktreesByProject&&e()}),subscribeSessions:e=>Ye.subscribe((t,n)=>{(t.activeSessions!==n.activeSessions||t.cachedDirectories!==n.cachedDirectories)&&e()}),subscribeEvents:Re,subscribeRuntime:e=>n(t=>e(s(t))),generation:o,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=rn(),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(()=>{Ie(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),Rt(r);let i=X.useSyncExternalStore(We,ke,ke);Ue(n&&i===`legacy-enabled`),Le();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=nt(),t=ze();e.start(),t.start();let n=it(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&&Oe(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(le[e]?.source),Is=e=>Ps(fe[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}=hn(),r,i;e[0]!==n||e[1]!==t?(r=()=>{if(typeof document>`u`)return;let e=document.documentElement,r=le[t]?.stack??le.system.stack,i=fe[n]?.stack??fe[`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{Oi as A,ai as B,Ji as C,Ii as D,Hi as E,Mi as F,Br as G,ei as H,Wi as I,Un as J,gr as K,zi as L,Ui as M,Ni as N,Li as O,Ai as P,gn as Q,Ti as R,Qi as S,Vi as T,Xr as U,ti as V,Hr as W,vn as X,xn as Y,bn as Z,ua as _,ws as a,da as b,Ga as c,Ha as d,Ia as f,ha as g,wa as h,Es as i,Ri as j,ki as k,Ba as l,Fa as m,Rs as n,Zo as o,Pa as p,hr as q,Fs as r,Yo as s,zs as t,Va as u,la as v,Bi as w,sa as x,ca as y,yi as z};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-C0FnF6B9.js";import{i as t}from"./runtime-switch-BkpTTbEi.js";import{a as n,i as r}from"./vendor-zustand-B4dlGEM2.js";import{t as i,y as a}from"./useUIStore-B7KJS5G7.js";var o=e({getSelectedAssistantID:()=>f,openAssistant:()=>p,openAssistantSettings:()=>m,useAssistantUIStore:()=>d}),s=()=>t(),c=e=>typeof e==`string`&&e.length>0,l=e=>{if(!e||typeof e!=`object`)return null;let t=e;return!c(t.serverInstanceID)||!c(t.assistantID)||!c(t.name)||!c(t.avatarSeed)||!c(t.serverLabel)||!c(t.connectionKey)||typeof t.enabled!=`boolean`?null:{serverInstanceID:t.serverInstanceID,assistantID:t.assistantID,name:t.name,avatarSeed:t.avatarSeed,serverLabel:t.serverLabel,connectionKey:t.connectionKey,enabled:t.enabled,isDefaultShareTarget:!1}},u=e=>!e||typeof e!=`object`||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).flatMap(([e,t])=>{if(!t||typeof t!=`object`)return[];let n=t;if(!c(n.serverInstanceID)||!c(n.connectionKey)||n.connectionKey!==e||typeof n.revision!=`number`||!Number.isFinite(n.revision)||typeof n.lastLoadedAt!=`number`||!Number.isFinite(n.lastLoadedAt)||!Array.isArray(n.entries))return[];let r=n.entries.map(l);return r.some(e=>e===null)||r.some(t=>t?.connectionKey!==e||t.serverInstanceID!==n.serverInstanceID)?[]:[[e,{serverInstanceID:n.serverInstanceID,connectionKey:n.connectionKey,revision:n.revision,lastLoadedAt:n.lastLoadedAt,entries:r}]]})),d=n()(r(e=>({assistantByTransport:{},settingsSelectedAssistantID:null,defaultShareAssistant:null,assistantCatalogByConnection:{},createRequestRevision:0,openSettingsRequestRevision:0,selectAssistant:t=>e(e=>({assistantByTransport:{...e.assistantByTransport,[s()]:t}})),selectSettingsAssistant:t=>e({settingsSelectedAssistantID:t}),setDefaultShareAssistant:t=>e(e=>({defaultShareAssistant:t,assistantCatalogByConnection:Object.fromEntries(Object.entries(e.assistantCatalogByConnection).map(([e,n])=>[e,{...n,entries:n.entries.map(e=>({...e,isDefaultShareTarget:!!(t&&e.serverInstanceID===t.serverInstanceID&&e.assistantID===t.assistantID)}))}]))})),replaceCatalogPartition:t=>e(e=>{let n=e.defaultShareAssistant;return{assistantCatalogByConnection:{...e.assistantCatalogByConnection,[t.connectionKey]:{...t,entries:t.entries.map(e=>({...e,isDefaultShareTarget:!!(n&&e.serverInstanceID===n.serverInstanceID&&e.assistantID===n.assistantID)}))}}}}),removeCatalogPartition:t=>e(e=>{let n=e.defaultShareAssistant,r={...e.assistantCatalogByConnection};delete r[t];let i=!!(n&&Object.values(r).some(e=>e.serverInstanceID===n.serverInstanceID&&e.entries.some(e=>e.assistantID===n.assistantID)));return{assistantCatalogByConnection:r,...n&&!i?{defaultShareAssistant:null}:{}}}),requestCreate:()=>e(e=>({createRequestRevision:e.createRequestRevision+1,settingsSelectedAssistantID:`new`})),requestOpenSettings:t=>e(e=>({settingsSelectedAssistantID:t,openSettingsRequestRevision:e.openSettingsRequestRevision+1}))}),{name:`openchamber-assistant-ui`,storage:a(),partialize:e=>({assistantByTransport:e.assistantByTransport,defaultShareAssistant:e.defaultShareAssistant,assistantCatalogByConnection:e.assistantCatalogByConnection}),migrate:e=>{let t=e&&typeof e==`object`?e:{},n=t.assistantByTransport&&typeof t.assistantByTransport==`object`&&!Array.isArray(t.assistantByTransport)?Object.fromEntries(Object.entries(t.assistantByTransport).flatMap(([e,t])=>c(e)&&(t===null||c(t))?[[e,t]]:[])):{},r=t.defaultShareAssistant,i=r&&typeof r==`object`&&c(r.serverInstanceID)&&c(r.assistantID)?{serverInstanceID:r.serverInstanceID,assistantID:r.assistantID}:null,a=u(t.assistantCatalogByConnection);return{assistantByTransport:n,assistantCatalogByConnection:a,defaultShareAssistant:i&&Object.values(a).some(e=>e.serverInstanceID===i.serverInstanceID&&e.entries.some(e=>e.assistantID===i.assistantID))?i:null}},version:4})),f=()=>d.getState().assistantByTransport[s()]??null,p=e=>{let t=d.getState();e!==void 0&&t.selectAssistant(e),i.getState().setActiveMainTab(`assistant`)},m=(e,t)=>{if(d.getState().requestOpenSettings(e),t?.openMobileSettings){t.openMobileSettings(`assistants`);return}let n=i.getState();n.setSettingsPage(`assistants`),n.setSettingsDialogOpen(!0)};export{o as a,d as i,p as n,m as r,f as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{B as t,d as n,k as r,p as i}from"./desktop-CfLlmafK.js";import{I as a,nt as o,rt as s}from"./vendor-base-ui-CnHfUmDN.js";import{t as c}from"./useUIStore-B7KJS5G7.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-Bz0Zm9VJ.js";import{Jt as f,Mn as p,bo as m,fr as h,l as g,lr as _,pr as v}from"./useMobileNavigationStore-CAvVUItx.js";import{t as y}from"./utils-CTL16t2f.js";import{n as b}from"./Icon-CLpn1mIz.js";import{D as x,P as S,k as C}from"./useAppFontEffects-CKLSamae.js";import{i as w,n as T,t as E}from"./tooltip-CtH61mQh.js";import{f as D,o as O}from"./useSessionAutoCleanup-DxNgqJ8s.js";import{_ as k,v as A,w as j}from"./radio-BEonIX1k.js";import{H as ee}from"./ChatContainer-CnOrdAgs.js";import{b as M}from"./insertionBoundaries-DMxuUnL_.js";var te=l(),ne=e(s(),1),N=o(),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,v=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=y(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=y(`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)(b,{name:`donut-chart`,className:`h-4 w-4 flex-shrink-0`}),(0,N.jsx)(`span`,{className:y(`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=v===`compact`?`typography-micro`:`typography-meta`,Te;t[96]!==p||t[97]!==W||t[98]!==G||t[99]!==A||t[100]!==we?(Te=y(`app-region-no-drag flex items-center gap-1.5 select-none`,we,W?y(`group rounded-md text-foreground transition-colors`,G?y(`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 v;t[145]===_?v=t[146]:(v=(0,N.jsx)(`span`,{className:`typography-meta text-muted-foreground`,children:_}),t[145]=_,t[146]=v);let b;t[147]!==I||t[148]!==U?(b=y(`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]!==v||t[156]!==C?(w=(0,N.jsxs)(`div`,{className:`flex justify-between items-center pt-1 border-t border-border/40`,children:[v,C]}),t[155]=v,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:a}=e,o=a===void 0?`right`:a,{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;i(`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=y(`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`,v;t[5]===_?v=t[6]:(v=y(_,m&&`bg-[var(--surface-background)] backdrop-blur-none`),t[5]=_,t[6]=v);let x=v,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)(b,{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=()=>{i(`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)(b,{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=y(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)(b,{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(){i(`desktop_minimize_current_window`)}function R(){}function z(){i(`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=h(W),s=m(G),c=v(),l;n[2]===s?l=n[3]:(l=s.map(K).filter(q),n[2]=s,n[3]=l);let u=l,d;n[4]===u?d=n[5]:(d=e=>e?u.filter(t=>S(e,t.normalizedPath)).sort(J)[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)=>x(e,t,c),n[15]=c,n[16]=r),t=Array.from(new Set(o.filter(Y).filter(X).filter(e).sort(r).slice(0,B).map(Z).filter(oe))),n[7]=o,n[8]=f,n[9]=c,n[10]=a,n[11]=t}else t=n[11];p=t}let g=p,y;n[17]===Symbol.for(`react.memo_cache_sentinel`)?(y=new Map,n[17]=y):y=n[17];let b=ne.useRef(y),C;n[18]===g?C=n[19]:(C=e=>{let t=b.current,n=t.size===g.length;if(n){for(let r of g)if(t.get(r)!==(e.directories.get(r)?.status?.current??null)){n=!1;break}}if(n)return t;let r=new Map;return g.forEach(t=>r.set(t,e.directories.get(t)?.status?.current??null)),b.current=r,r},n[18]=g,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)=>x(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)=>x(e,t,c),n[30]=c,n[31]=i);let s=o.filter(Q).filter($).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,normalizedPath:V(e.path)}}function q(e){return e.normalizedPath}function J(e,t){return(t.normalizedPath?.length??0)-(e.normalizedPath?.length??0)}function Y(e){return!e.time?.archived}function X(e){return!e.parentID}function Z(e){return _(e)}function oe(e){return!!e}function Q(e){return!e.time?.archived}function $(e){return!e.parentID}function se(e){let t=(0,te.c)(18),{children:n,variant:r,scopeProjectId:i,align:a}=e,o=r===void 0?`default`:r,s=i===void 0?null:i,l=a===void 0?`start`:a,u=c(le),d=c(ce),f;t[0]===n?f=t[1]:(f=(0,N.jsx)(j,{asChild:!0,children:n}),t[0]=n,t[1]=f);let p=o===`compact`?`w-[280px]`:`w-[360px]`,m;t[2]===p?m=t[3]:(m=y(`overflow-hidden p-1 max-w-[calc(100vw-32px)]`,p),t[2]=p,t[3]=m);let h;t[4]!==u||t[5]!==s||t[6]!==d||t[7]!==o?(h=u?(0,N.jsx)(ue,{onSelect:()=>d(!1),variant:o,scopeProjectId:s}):null,t[4]=u,t[5]=s,t[6]=d,t[7]=o,t[8]=h):h=t[8];let g;t[9]!==l||t[10]!==m||t[11]!==h?(g=(0,N.jsx)(A,{align:l,sideOffset:6,className:m,children:h}),t[9]=l,t[10]=m,t[11]=h,t[12]=g):g=t[12];let _;return t[13]!==u||t[14]!==d||t[15]!==f||t[16]!==g?(_=(0,N.jsxs)(k,{open:u,onOpenChange:d,modal:!1,children:[f,g]}),t[13]=u,t[14]=d,t[15]=f,t[16]=g,t[17]=_):_=t[17],_}function ce(e){return e.setSessionDropdownOpen}function le(e){return e.isSessionDropdownOpen}function ue(e){let t=(0,te.c)(27),{onSelect:n,variant:r,scopeProjectId:i}=e,o;t[0]===i?o=t[1]:(o={scopeProjectId:i},t[0]=i,t[1]=o);let s=U(!0,o),l=g(fe),f=c(de),{t:p}=d(),m;t[2]!==n||t[3]!==l||t[4]!==f?(m=()=>{f(`chat`),n(),l()},t[2]=n,t[3]=l,t[4]=f,t[5]=m):m=t[5];let h=u(m),_;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(_=new Set,t[6]=_):_=t[6];let[v,x]=ne.useState(_),S;t[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})},t[7]=S):S=t[7];let C=u(S),w,T;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(w=y(`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)(b,{name:`chat-new`,className:`h-4 w-4 flex-shrink-0 text-muted-foreground`}),t[8]=w,t[9]=T):(w=t[8],T=t[9]);let E;t[10]===p?E=t[11]:(E=p(`sessions.sidebar.header.actions.newSession`),t[10]=p,t[11]=E);let D;t[12]===E?D=t[13]:(D=(0,N.jsx)(`span`,{className:`truncate text-[14px] font-normal leading-tight text-foreground`,children:E}),t[12]=E,t[13]=D);let O;t[14]!==h||t[15]!==D?(O=(0,N.jsxs)(a,{onClick:h,className:w,children:[T,D]}),t[14]=h,t[15]=D,t[16]=O):O=t[16];let k;t[17]!==v||t[18]!==s||t[19]!==n||t[20]!==p||t[21]!==C||t[22]!==r?(k=s.length===0?(0,N.jsx)(`div`,{className:`px-3 py-4 text-center typography-meta text-muted-foreground`,children:p(`sessions.switcher.empty`)}):s.map(e=>(0,N.jsx)(pe,{item:e,depth:0,variant:r,expandedParents:v,toggleParent:C,closeDropdown:n},e.node.session.id)),t[17]=v,t[18]=s,t[19]=n,t[20]=p,t[21]=C,t[22]=r,t[23]=k):k=t[23];let A;return t[24]!==k||t[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]})}),t[24]=k,t[25]=O,t[26]=A):A=t[26],A}function de(e){return e.setActiveMainTab}function fe(e){return e.openNewSessionDraft}function pe(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)(me,{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)(pe,{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 me(e){let t=(0,te.c)(57),{session:n,depth:r,variant:i,secondaryMeta:o,hasChildren:s,isExpanded:c,onToggleExpand:l,closeDropdown:m}=e,{t:h}=d(),v=g(ge),x=g(he),S=f(n.id),w=p(n.id),T=v===n.id,E;t[0]!==n.title||t[1]!==h?(E=n.title?.trim()||h(`sessions.sidebar.session.untitled`),t[0]=n.title,t[1]=h,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]===o?.projectLabel?ie=t[9]:(ie=o?.projectLabel?.trim()||null,t[8]=o?.projectLabel,t[9]=ie);let F=ie,I;t[10]===o?.branchLabel?I=t[11]:(I=o?.branchLabel?.trim()||null,t[10]=o?.branchLabel,t[11]=I);let L=I,ae=L&&L!==`HEAD`?L:null,R;t[12]!==m||t[13]!==T||t[14]!==n||t[15]!==x?(R=()=>{if(T){m();return}let e=_(n);x(n.id,e??null),m()},t[12]=m,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=y(`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]!==h||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":h(c?`sessions.sidebar.session.subsessions.collapse`:`sessions.sidebar.session.subsessions.expand`),children:c?(0,N.jsx)(b,{name:`arrow-down-s`,className:`h-3.5 w-3.5`}):(0,N.jsx)(b,{name:`arrow-right-s`,className:`h-3.5 w-3.5`})}):null,t[22]=s,t[23]=c,t[24]=l,t[25]=h,t[26]=i,t[27]=W):W=t[27];let G=T?`text-primary`:`text-foreground`,K;t[28]===G?K=t[29]:(K=y(`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]!==h||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":h(c?`sessions.sidebar.session.subsessions.collapse`:`sessions.sidebar.session.subsessions.expand`),children:c?(0,N.jsx)(b,{name:`arrow-down-s`,className:`h-3 w-3`}):(0,N.jsx)(b,{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)(b,{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]=h,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]!==h?(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":h(`sessions.sidebar.session.status.active`),title:h(`sessions.sidebar.session.status.active`)}):(0,N.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full bg-[var(--status-info)]`,"aria-label":h(`sessions.sidebar.session.status.unread`),title:h(`sessions.sidebar.session.status.unread`)})}):null,t[48]=j,t[49]=ee,t[50]=h,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)(a,{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 he(e){return e.setCurrentSession}function ge(e){return e.currentSessionId}function _e(){let e=(0,te.c)(5),n=c(ve),i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=t(),e[0]=i):i=e[0];let a=i,o;e[1]===n?o=e[2]:(o=r(n),e[1]=n,e[2]=o);let s=o,l;return e[3]===s?l=e[4]:(l={usesFramelessChrome:a,side:s},e[3]=s,e[4]=l),l}function ve(e){return e.desktopWindowControlsPosition}export{P as i,se as n,I as r,_e as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Ct as e}from"./platform-skqcMARt.js";import{n as t}from"./vendor-react-DLPElpoQ.js";import{_ as n,b as r,en as i,l as a}from"./useMobileNavigationStore-CAvVUItx.js";var o=t(),s=()=>{let t=a.getState(),i=t.currentSessionId,o=t.newSessionDraft,s=t.worktreeMetadata,c=e.getState().currentDirectory;if(i){let e=r.getState().getAttachment(i),a=n(e);if(a)return a;let o=s.get(i);if(o?.path)return o.path;let c=t.getDirectoryForSession(i);if(c)return c}return o?.open&&(o.bootstrapPendingDirectory||o.directoryOverride)?(o.bootstrapPendingDirectory||o.directoryOverride)??void 0:c??void 0},c=()=>{let t=(0,o.c)(7),s=a(l),c=a(u),p=i(s),m;t[0]===s?m=t[1]:(m=e=>s?e.getAttachment(s):void 0,t[0]=s,t[1]=m);let h=r(m),g=a(d),_=e(f);if(s){let e;t[2]===h?e=t[3]:(e=n(h),t[2]=h,t[3]=e);let r=e;if(r)return r;let i;t[4]!==s||t[5]!==g?(i=g.get(s),t[4]=s,t[5]=g,t[6]=i):i=t[6];let a=i;if(a?.path)return a.path;if(p)return p}return c?.open&&(c.bootstrapPendingDirectory||c.directoryOverride)?(c.bootstrapPendingDirectory||c.directoryOverride)??void 0:_??void 0};function l(e){return e.currentSessionId}function u(e){return e.newSessionDraft}function d(e){return e.worktreeMetadata}function f(e){return e.currentDirectory}export{c as n,s as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,i as t,n,r}from"./vendor-zustand-B4dlGEM2.js";import{t as i,x as a}from"./useUIStore-B7KJS5G7.js";import{n as o}from"./vendor-react-DLPElpoQ.js";import{t as s}from"./terminalApi-CNqqwjfG.js";var c=1e6,l=`terminal-store`,u=!1,d=e=>typeof e==`object`&&!!e,f=e=>{let t=/^tab-(\d+)$/.exec(e);if(!t)return null;let n=Number(t[1]);return Number.isFinite(n)?n:null};function p(e){let t=e.trim();for(;t.length>1&&t.endsWith(`/`);)t=t.slice(0,-1);return t}var m=(e,t)=>({id:e,terminalSessionId:null,lifecycle:`idle`,label:t,iconKey:null,bufferChunks:[],bufferLength:0,isConnecting:!1,createdAt:Date.now(),previewUrl:null,previewAutoOpened:!1,previewUrlLocked:!1}),h=e=>({tabs:[e],activeTabId:e.id}),g=(e,t)=>e.tabs.findIndex(e=>e.id===t),_=e()(r(t((e,t)=>({sessions:new Map,projectActionRuns:{},nextChunkId:1,nextTabId:1,hasHydrated:typeof window>`u`,ensureDirectory:t=>{let n=p(t);n&&e(e=>{if(e.sessions.has(n))return e;let t=new Map(e.sessions),r=m(`tab-${e.nextTabId}`,`Terminal`);return t.set(n,h(r)),{sessions:t,nextTabId:e.nextTabId+1}})},getDirectoryState:e=>{let n=p(e);return t().sessions.get(n)},getActiveTab:e=>{let n=p(e),r=t().sessions.get(n);if(!r)return;let i=r.activeTabId;return i?r.tabs.find(e=>e.id===i)??r.tabs[0]:r.tabs[0]},createTab:n=>{let r=p(n);if(!r)return`tab-invalid`;let i=`tab-${t().nextTabId}`;return e(e=>{let t=new Map(e.sessions),n=t.get(r),a=e.nextTabId+1,o=`Terminal ${(n?.tabs.length??0)+1}`,s=m(i,o);return n?t.set(r,{...n,tabs:[...n.tabs,s]}):t.set(r,h(s)),{sessions:t,nextTabId:a}}),i},setActiveTab:(t,n)=>{let r=p(t);e(e=>{let t=new Map(e.sessions),i=t.get(r);return!i||i.activeTabId===n||g(i,n)<0?e:(t.set(r,{...i,activeTabId:n}),{sessions:t})})},setTabLabel:(t,n,r)=>{let i=p(t),a=r.trim();a&&e(e=>{let t=new Map(e.sessions),r=t.get(i);if(!r)return e;let o=g(r,n);if(o<0||r.tabs[o]?.label===a)return e;let s=[...r.tabs];return s[o]={...s[o],label:a},t.set(i,{...r,tabs:s}),{sessions:t}})},setTabIconKey:(t,n,r)=>{let i=p(t);e(e=>{let t=new Map(e.sessions),a=t.get(i);if(!a)return e;let o=g(a,n);if(o<0)return e;let s=r?.trim()||null;if(a.tabs[o]?.iconKey===s)return e;let c=[...a.tabs];return c[o]={...c[o],iconKey:s},t.set(i,{...a,tabs:c}),{sessions:t}})},closeTab:async(n,r)=>{let i=p(n),a=t().sessions.get(i)?.tabs.find(e=>e.id===r)?.terminalSessionId??null;if(a)try{await s(a)}catch{}e(e=>{let t=new Map(e.sessions),n=t.get(i);if(!n)return e;let a=g(n,r);if(a<0)return e;let o=n.tabs.filter(e=>e.id!==r),s=Object.fromEntries(Object.entries(e.projectActionRuns).filter(([,e])=>e.directory!==i||e.tabId!==r)),c=Object.keys(s).length!==Object.keys(e.projectActionRuns).length;if(o.length===0){let n=m(`tab-${e.nextTabId}`,`Terminal`);return t.set(i,h(n)),{sessions:t,nextTabId:e.nextTabId+1,...c?{projectActionRuns:s}:{}}}let l=n.activeTabId;return n.activeTabId===r&&(l=o[Math.min(a,o.length-1)]?.id??o[0]?.id??null),t.set(i,{...n,tabs:o,activeTabId:l}),{sessions:t,...c?{projectActionRuns:s}:{}}})},setTabSessionId:(t,n,r)=>{let i=p(t);e(e=>{let t=new Map(e.sessions),a=t.get(i);if(!a)return e;let o=g(a,n);if(o<0)return e;let s=a.tabs[o],c=r!==null&&s.terminalSessionId!==r,l=r?`running`:s.terminalSessionId?`exited`:s.lifecycle,u={...s,terminalSessionId:r,lifecycle:l,isConnecting:!1,...c?{bufferChunks:[],bufferLength:0}:{}},d=[...a.tabs];return d[o]=u,t.set(i,{...a,tabs:d}),{sessions:t}})},setTabLifecycle:(t,n,r)=>{let i=p(t);e(e=>{let t=new Map(e.sessions),a=t.get(i);if(!a)return e;let o=g(a,n);if(o<0)return e;let s=[...a.tabs];return s[o]={...s[o],lifecycle:r,isConnecting:!1},t.set(i,{...a,tabs:s}),{sessions:t}})},setConnecting:(t,n,r)=>{let i=p(t);e(e=>{let t=new Map(e.sessions),a=t.get(i);if(!a)return e;let o=g(a,n);if(o<0)return e;let s=[...a.tabs];return s[o]={...s[o],isConnecting:r},t.set(i,{...a,tabs:s}),{sessions:t}})},appendToBuffer:(t,n,r)=>{if(!r)return;let i=p(t);e(e=>{let t=new Map(e.sessions),a=t.get(i);if(!a)return e;let o=g(a,n);if(o<0)return e;let s=a.tabs[o],l=e.nextChunkId,u={id:l,data:r},d=[...s.bufferChunks,u],f=s.bufferLength+r.length;for(;f>c&&d.length>1;){let e=d.shift();if(!e)break;f-=e.data.length}let p=[...a.tabs];return p[o]={...s,bufferChunks:d,bufferLength:f},t.set(i,{...a,tabs:p}),{sessions:t,nextChunkId:l+1}})},setTabPreviewUrl:(t,n,r,i={})=>{let a=p(t);e(e=>{let t=new Map(e.sessions),o=t.get(a);if(!o)return e;let s=g(o,n);if(s<0)return e;let c=o.tabs[s],l=i.autoOpened??c.previewAutoOpened,u=i.locked??c.previewUrlLocked;if(c.previewUrl===r&&c.previewAutoOpened===l&&c.previewUrlLocked===u)return e;let d=[...o.tabs];return d[s]={...c,previewUrl:r,previewAutoOpened:l,previewUrlLocked:u},t.set(a,{...o,tabs:d}),{sessions:t}})},markPreviewAutoOpened:(t,n)=>{let r=p(t);e(e=>{let t=new Map(e.sessions),i=t.get(r);if(!i)return e;let a=g(i,n);if(a<0)return e;let o=i.tabs[a];if(!o.previewUrl||o.previewAutoOpened)return e;let s=[...i.tabs];return s[a]={...o,previewAutoOpened:!0},t.set(r,{...i,tabs:s}),{sessions:t}})},setProjectActionRun:t=>{e(e=>{let n=e.projectActionRuns[t.key];return n&&n.directory===t.directory&&n.actionId===t.actionId&&n.tabId===t.tabId&&n.sessionId===t.sessionId&&n.status===t.status?e:{projectActionRuns:{...e.projectActionRuns,[t.key]:t}}})},updateProjectActionRunStatus:(t,n)=>{e(e=>{let r=e.projectActionRuns[t];return!r||r.status===n?e:{projectActionRuns:{...e.projectActionRuns,[t]:{...r,status:n}}}})},removeProjectActionRun:t=>{e(e=>{if(!e.projectActionRuns[t])return e;let n={...e.projectActionRuns};return delete n[t],{projectActionRuns:n}})},clearBuffer:(t,n)=>{let r=p(t);e(e=>{let t=new Map(e.sessions),i=t.get(r);if(!i)return e;let a=g(i,n);if(a<0)return e;let o=[...i.tabs];return o[a]={...o[a],bufferChunks:[],bufferLength:0},t.set(r,{...i,tabs:o}),{sessions:t}})},removeDirectory:t=>{let n=p(t);e(e=>{let t=new Map(e.sessions);return t.delete(n),{sessions:t,projectActionRuns:Object.fromEntries(Object.entries(e.projectActionRuns).filter(([,e])=>e.directory!==n))}})},clearAll:()=>{e({sessions:new Map,projectActionRuns:{},nextChunkId:1,nextTabId:1})}}),{name:l,storage:n(()=>a()),partialize:e=>({sessions:Array.from(e.sessions.entries()).map(([e,t])=>[e,{activeTabId:t.activeTabId,tabs:t.tabs.map(e=>({id:e.id,label:e.label,iconKey:e.iconKey,terminalSessionId:e.terminalSessionId,lifecycle:e.lifecycle,createdAt:e.createdAt}))}]),nextTabId:e.nextTabId}),merge:(e,t)=>{if(!d(e))return t;let n=Array.isArray(e.sessions)?e.sessions:[],r=new Map,i=0;for(let e of n){if(!Array.isArray(e)||e.length!==2)continue;let[t,n]=e;if(typeof t!=`string`||!d(n))continue;let a=Array.isArray(n.tabs)?n.tabs:[],o=[];for(let e of a){if(!d(e))continue;let t=typeof e.id==`string`?e.id:null;if(!t)continue;let n=f(t);n!==null&&(i=Math.max(i,n));let r=typeof e.terminalSessionId==`string`||e.terminalSessionId===null?e.terminalSessionId:null,a=e.lifecycle,s=a===`idle`||a===`running`||a===`exited`?a:r?`running`:`idle`;o.push({id:t,label:typeof e.label==`string`?e.label:`Terminal`,iconKey:typeof e.iconKey==`string`?e.iconKey:null,terminalSessionId:r,lifecycle:s,createdAt:typeof e.createdAt==`number`?e.createdAt:Date.now(),bufferChunks:[],bufferLength:0,isConnecting:!1,previewUrl:null,previewAutoOpened:!1,previewUrlLocked:!1})}if(o.length===0)continue;let s=typeof n.activeTabId==`string`?n.activeTabId:null,c=s?o.some(e=>e.id===s):!1;r.set(t,{tabs:o,activeTabId:c?s:o[0].id})}let a=typeof e.nextTabId==`number`&&Number.isFinite(e.nextTabId)?e.nextTabId:1,o=Math.max(t.nextTabId,a,i+1);return{...t,sessions:r,nextChunkId:1,nextTabId:o,hasHydrated:!0}}})));if(typeof window<`u`&&!u){u=!0;let e=_.persist,t=()=>{_.getState().hasHydrated||_.setState({hasHydrated:!0})};e?.hasHydrated?.()?t():e?.onFinishHydration?e.onFinishHydration(t):t()}var v=o(),y=()=>{let e=(0,v.c)(3),t=i(b),n=i(x),r;return e[0]!==n||e[1]!==t?(r={uiFont:t,monoFont:n},e[0]=n,e[1]=t,e[2]=r):r=e[2],r};function b(e){return e.uiFont}function x(e){return e.monoFont}export{_ as n,y as t};
|