@openchambery/web 1.19.13-beta.1 → 1.19.13-beta.2
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-CiQIIM0d.js → AgentAvatar-mbvX7YlW.js} +1 -1
- package/dist/assets/AssistantView-D5c557Oe.js +2 -0
- package/dist/assets/DiagramView-CjNUrHsU.js +1 -0
- package/dist/assets/FadeInOnReveal-moBbL8Ll.js +1 -0
- package/dist/assets/{Icon-CeKHYyKZ.js → Icon-CkzzhaLr.js} +1 -1
- package/dist/assets/MarkdownRenderer-BHfbAwVO.js +2 -0
- package/dist/assets/MarkdownRendererImpl-CkBoUibc.js +7 -0
- package/dist/assets/{MarkstreamRendererImpl-B-odd2Gz.js → MarkstreamRendererImpl-BrXUOI9g.js} +1 -1
- package/dist/assets/MobileDetailNavigation-aY9-HwBN.js +1 -0
- package/dist/assets/MobileShareBridge-CRt_8DmM.js +4 -0
- package/dist/assets/MobileSurface-CIhtF-CU.js +2 -0
- package/dist/assets/{MultiRunWindow-BT5Dwgzu.js → MultiRunWindow-DDq6C8t7.js} +1 -1
- package/dist/assets/OnboardingScreen-j0iCyH7f.js +1 -0
- package/dist/assets/{OverlayScrollbar-DUghqFGg.js → OverlayScrollbar-CDC5B3RH.js} +1 -1
- package/dist/assets/SettingsView-DFWWMvAj.js +25 -0
- package/dist/assets/{SettingsWindow-DfEGfyr8.js → SettingsWindow-CnYfBplB.js} +1 -1
- package/dist/assets/TerminalView-D5CQFVVm.js +8 -0
- package/dist/assets/ToolOutputDialog-VMI7TQFT.js +10 -0
- package/dist/assets/{appThemeRegistry-CIZ-shMD.js → appThemeRegistry-UIrP0-5h.js} +1 -1
- package/dist/assets/assistant-attachment-cache-C0aRnFkj.js +1 -0
- package/dist/assets/{button-DFPOdZ0g.js → button-xx1UOBA5.js} +1 -1
- package/dist/assets/{clipboard-C05anBwU.js → clipboard-CUasgPiF.js} +1 -1
- package/dist/assets/{collapsible-oGbEvbe1.js → collapsible-CACHBRYZ.js} +1 -1
- package/dist/assets/{context-menu-DGz4_2hs.js → context-menu-CYbm4wBZ.js} +1 -1
- package/dist/assets/desktopHosts-DILvrAok.js +1 -0
- package/dist/assets/desktopRelayRestore-t8asCr3m.js +1 -0
- package/dist/assets/{diagram-Csk5GpDC.js → diagram-u0BC9uuY.js} +1 -1
- package/dist/assets/{dialog-rrqB-H6q.js → dialog-BwQ3rY_x.js} +1 -1
- package/dist/assets/dualLimitLru-D8Sphgua.js +1 -0
- package/dist/assets/{es-FE0sJ9EC.js → es-CRjOwvYM.js} +1 -1
- package/dist/assets/fileQueries-Bgly-E8f.js +1 -0
- package/dist/assets/{fr-DNDCSfGt.js → fr-D9taEN9L.js} +1 -1
- package/dist/assets/{gitApi-_P0FsoXe.js → gitApi-Bu4W3bgD.js} +1 -1
- package/dist/assets/imageSource-BlAJJUEI.js +1 -0
- package/dist/assets/{input-BO3r20op.js → input-CI730njs.js} +1 -1
- package/dist/assets/insertionBoundaries-B1AqxsBD.js +4 -0
- package/dist/assets/{ja-BDwrk0cM.js → ja-CYQ5aoWp.js} +1 -1
- package/dist/assets/{ko-BeeU2o4I.js → ko-BwASV0Q0.js} +1 -1
- package/dist/assets/main-CqcB6tKc.js +169 -0
- package/dist/assets/main-DG-k0j8A.js +2 -0
- package/dist/assets/markdown-worker-CptoICmq.js +2 -0
- package/dist/assets/markdownHeightCache-DEjGKLv8.js +3 -0
- package/dist/assets/markdownTheme-DOfGg-A7.js +1 -0
- package/dist/assets/miniChat-BQtYQrsh.js +2 -0
- package/dist/assets/mobile-8iyqtXkr.js +2 -0
- package/dist/assets/{multirun-CxhTsmRq.js → multirun-CG_FCb_Z.js} +1 -1
- package/dist/assets/persistence-YbQKzHUQ.js +3 -0
- package/dist/assets/{pl-BYuzpcI5.js → pl-DUI1vPil.js} +1 -1
- package/dist/assets/platform-DzsGqlGW.js +2 -0
- package/dist/assets/projectMeta-DMpMDWE1.js +3 -0
- package/dist/assets/{pt-BR-Bn7cwEzv.js → pt-BR-CZQFJllP.js} +1 -1
- package/dist/assets/relay-image-stream-DM7atqJs.js +2 -0
- package/dist/assets/renderElectronMiniChatApp-DBzRdJl8.js +2 -0
- package/dist/assets/renderMobileApp-CIseqCyn.js +28 -0
- package/dist/assets/runtime-auth-D66yq6ie.js +1 -0
- package/dist/assets/runtime-fetch-zIalUnbb.js +1 -0
- package/dist/assets/runtime-switch-LvWDU-SL.js +1 -0
- package/dist/assets/runtimeConfig-D8nJYB-e.js +2 -0
- package/dist/assets/{runtimeEndpointReset-BBLFgl85.js → runtimeEndpointReset-CSub_ecV.js} +6 -6
- package/dist/assets/{sessionChangeSummary-DDVT7O5J.js → sessionChangeSummary-DQDZ5HW-.js} +1 -1
- package/dist/assets/{sessionLookup-C8VZn0gJ.js → sessionLookup-BiBD-4wC.js} +1 -1
- package/dist/assets/sortable-tabs-strip-Dom6Sthu.js +1 -0
- package/dist/assets/src-AA-5nXsF.css +2 -0
- package/dist/assets/{store-n94dSb3M.js → store-CSnH_QXM.js} +2 -2
- package/dist/assets/terminalApi-noa4Cdbh.js +1 -0
- package/dist/assets/{textarea-BjX-KhMN.js → textarea-BfNtUdJE.js} +1 -1
- package/dist/assets/{tooltip-CQGqGAG_.js → tooltip-DPxumadF.js} +1 -1
- package/dist/assets/{uk-CwpbHEa3.js → uk-C1FYZlmA.js} +1 -1
- package/dist/assets/{url-BMjqccCo.js → url-CVhsI9kR.js} +1 -1
- package/dist/assets/{useAppFontEffects-BIFw36SA.js → useAppFontEffects-qHt5uaFN.js} +32 -32
- package/dist/assets/useAssistantUIStore-CLPCNoj_.js +1 -0
- package/dist/assets/useDesktopWindowControlsLayout-BipyIXiK.js +1 -0
- package/dist/assets/{useEffectiveDirectory-DJSYYkVp.js → useEffectiveDirectory-DSNCCbCt.js} +1 -1
- package/dist/assets/useFontPreferences-CB-cGo3I.js +1 -0
- package/dist/assets/useMobileNavigationStore-C1NJGAik.js +413 -0
- package/dist/assets/useSessionAutoCleanup-Dcn6Unvd.js +2 -0
- package/dist/assets/useUIStore-CxOoCv7B.js +1 -0
- package/dist/assets/useWorkerHighlightedLines-CzpT4M7V.js +7 -0
- package/dist/assets/{utils-81nUI_xp.js → utils-BHTVlVov.js} +1 -1
- package/dist/assets/{zh-CN-BpzFZ-LU.js → zh-CN-C96qP1ip.js} +1 -1
- package/dist/assets/{zh-TW-Bopgc5Eo.js → zh-TW-BsRk1Rbb.js} +1 -1
- package/dist/index.html +12 -9
- package/dist/mini-chat.html +12 -9
- package/dist/mobile.html +12 -9
- package/package.json +1 -1
- package/server/lib/assistant-delivery-parts.js +19 -1
- package/server/lib/assistants/DOCUMENTATION.md +39 -7
- package/server/lib/assistants/cards.js +16 -2
- package/server/lib/assistants/cards.test.js +16 -1
- package/server/lib/assistants/contact-attachments.http.test.js +436 -0
- package/server/lib/assistants/contact-attachments.js +814 -0
- package/server/lib/assistants/contact-attachments.p1.test.js +307 -0
- package/server/lib/assistants/contact-attachments.test.js +249 -0
- package/server/lib/assistants/contact-store.js +494 -25
- package/server/lib/assistants/contact-store.test.js +403 -1
- package/server/lib/assistants/contact-tools.js +6 -5
- package/server/lib/assistants/contact-tools.test.js +24 -6
- package/server/lib/assistants/contracts.js +41 -1
- package/server/lib/assistants/harness.test.js +124 -0
- package/server/lib/assistants/routes.js +46 -1
- package/server/lib/assistants/service.js +258 -66
- package/server/lib/assistants/service.test.js +400 -30
- package/server/lib/fs/prompt-attachment-store.js +663 -0
- package/server/lib/fs/prompt-attachment-store.test.js +263 -0
- package/server/lib/fs/routes.js +28 -72
- package/server/lib/fs/routes.test.js +15 -30
- package/server/lib/opencode/core-routes.js +2 -1
- package/dist/assets/AssistantView-YmeyxehG.js +0 -2
- package/dist/assets/DiagramView-BpZb-G9P.js +0 -1
- package/dist/assets/FadeInOnReveal-nf6-ZCrs.js +0 -1
- package/dist/assets/MarkdownRenderer-wpeGdciL.js +0 -2
- package/dist/assets/MarkdownRendererImpl-Peu0GVSQ.js +0 -7
- package/dist/assets/MobileDetailNavigation-CtYke_1C.js +0 -1
- package/dist/assets/MobileShareBridge-DIfOl8EZ.js +0 -4
- package/dist/assets/MobileSurface-_KoX75Ff.js +0 -2
- package/dist/assets/OnboardingScreen-BPusUgFG.js +0 -1
- package/dist/assets/SettingsView-BwQpbIZl.js +0 -25
- package/dist/assets/TerminalView-8402vpcO.js +0 -8
- package/dist/assets/ToolOutputDialog-B5RdkhsG.js +0 -10
- package/dist/assets/desktopHosts-BVJXQq1S.js +0 -1
- package/dist/assets/desktopRelayRestore-RDfuj1M7.js +0 -1
- package/dist/assets/fileQueries-BcdWOPlD.js +0 -1
- package/dist/assets/insertionBoundaries-CWoioTdE.js +0 -4
- package/dist/assets/main-CLj_WS1o.js +0 -2
- package/dist/assets/main-CnSZ89pD.js +0 -169
- package/dist/assets/markdown-worker-CZWE1F1M.js +0 -2
- package/dist/assets/markdownHeightCache-Cdd3hkMl.js +0 -3
- package/dist/assets/markdownTheme-DIB8WVmz.js +0 -2
- package/dist/assets/miniChat-B9c3y2pD.js +0 -2
- package/dist/assets/mobile-DvbXUfNS.js +0 -2
- package/dist/assets/persistence-CVTWFaqe.js +0 -3
- package/dist/assets/platform-BY_Gtsqr.js +0 -2
- package/dist/assets/projectMeta-Dl5iPCB6.js +0 -3
- package/dist/assets/renderElectronMiniChatApp-CkJ51qCh.js +0 -2
- package/dist/assets/renderMobileApp-DcjQPhWw.js +0 -28
- package/dist/assets/runtimeConfig-Bsk2kWsW.js +0 -2
- package/dist/assets/sortable-tabs-strip-s7UUxsa6.js +0 -1
- package/dist/assets/src-BpHDMgud.css +0 -2
- package/dist/assets/terminalApi-C54_rKEK.js +0 -1
- package/dist/assets/useAssistantUIStore-Cg9bsT4b.js +0 -1
- package/dist/assets/useDesktopWindowControlsLayout-DoygEcN4.js +0 -1
- package/dist/assets/useFontPreferences-B5_apbBC.js +0 -1
- package/dist/assets/useMobileNavigationStore-DuTu0Mzh.js +0 -413
- package/dist/assets/useSessionAutoCleanup-C-L9teva.js +0 -1
- package/dist/assets/useUIStore-DwpQTjLO.js +0 -1
- package/dist/assets/useWorkerHighlightedLines-DxTfgdEi.js +0 -7
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{K as e,P as t}from"./useUIStore-DwpQTjLO.js";import{kn as n}from"./persistence-CVTWFaqe.js";import{St as r}from"./platform-BY_Gtsqr.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=e=>t().websocket(e),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 e()}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=(e,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(t().sse(`/api/terminal/${e}/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=t=>{try{let r=JSON.parse(t.data);r.type===`exit`&&(x().manager?.unbindSession(e),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{r as e}from"./rolldown-runtime-C0FnF6B9.js";import{E as t,t as n,y as r}from"./useUIStore-DwpQTjLO.js";import{a as i,i as a}from"./vendor-zustand-B4dlGEM2.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=i()(a(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:r(),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),n.getState().setActiveMainTab(`assistant`)},m=(e,t)=>{if(d.getState().requestOpenSettings(e),t?.openMobileSettings){t.openMobileSettings(`assistants`);return}let r=n.getState();r.setSettingsPage(`assistants`),r.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{t}from"./useUIStore-DwpQTjLO.js";import{Gt as n,bn as r,ln as i,qt as a}from"./persistence-CVTWFaqe.js";import{I as o,nt as s,rt as c}from"./vendor-base-ui-CnHfUmDN.js";import{n as l}from"./vendor-react-DLPElpoQ.js";import{n as u}from"./vendor-reactuses-core-DDoDDyM9.js";import{n as d}from"./clipboard-C05anBwU.js";import{c as f,cr as p,dr as m,fr as h,ho as g,jn as _,qt as v}from"./useMobileNavigationStore-DuTu0Mzh.js";import{t as y}from"./utils-81nUI_xp.js";import{n as b}from"./Icon-CeKHYyKZ.js";import{D as x,P as S,ht as C,k as w}from"./useAppFontEffects-BIFw36SA.js";import{i as T,n as E,t as D}from"./tooltip-CQGqGAG_.js";import{F as O,P as k,V as A,f as ee,o as te}from"./useSessionAutoCleanup-C-L9teva.js";import{b as j}from"./insertionBoundaries-CWoioTdE.js";import{r as ne,t as M}from"./sessionChangeSummary-DDVT7O5J.js";var re=l(),ie=e(c(),1),N=s(),P=e=>{let t=(0,re.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,w=u!==void 0&&u,O=f===void 0?`default`:f,k=_!==void 0&&_,{t:A}=d(),[j,ne]=ie.useState(!1),M=typeof i==`number`?i:r,P,F,I,L,R,z,B,V,H,U,W,G,K,q,J,Y,X,Z,Q;if(t[0]!==O||t[1]!==M||t[2]!==a||t[3]!==x||t[4]!==g||t[5]!==o||t[6]!==h||t[7]!==r||t[8]!==A||t[9]!==n){let e=te(r)??0;U=O===`subtle`;let i=ee(M);W=U?`var(--surface-muted-foreground)`:i===`critical`?`var(--status-error)`:i===`warn`?`var(--status-warning)`:`var(--status-success)`,B=ae,V=oe,L=U?18:20,R=U?2:3,I=(L-R)/2,P=2*Math.PI*I,F=P*(1-e/100),G=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),Z=`${c}%`;let l,u;t[31]!==a||t[32]!==A||t[33]!==n||t[34]!==Z?(Q=B(n),z=B(a),t[39]!==A||t[40]!==Z?(l=A(`contextUsage.tooltip.usage`,{percent:Z}),t[39]=A,t[40]=Z,t[41]=l):l=t[41],u=A(`contextUsage.tooltip.usedOfLimit`,{used:Q,limit:z}),t[31]=a,t[32]=A,t[33]=n,t[34]=Z,t[35]=z,t[36]=l,t[37]=u,t[38]=Q):(z=t[35],l=t[36],u=t[37],Q=t[38]);let d;t[42]!==G||t[43]!==A?(d=A(`contextUsage.tooltip.outputLimit`,{tokens:B(G)}),t[42]=G,t[43]=A,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],X=f,H=!x&&typeof g==`function`,q=`0 0 ${L} ${L}`;let p=U?`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?(J=y(p,h),t[49]=h,t[50]=p,t[51]=J):J=t[51],Y=`progressbar`,K=Math.round(e),t[0]=O,t[1]=M,t[2]=a,t[3]=x,t[4]=g,t[5]=o,t[6]=h,t[7]=r,t[8]=A,t[9]=n,t[10]=P,t[11]=F,t[12]=I,t[13]=L,t[14]=R,t[15]=z,t[16]=B,t[17]=V,t[18]=H,t[19]=U,t[20]=W,t[21]=G,t[22]=K,t[23]=q,t[24]=J,t[25]=Y,t[26]=X,t[27]=Z,t[28]=Q}else P=t[10],F=t[11],I=t[12],L=t[13],R=t[14],z=t[15],B=t[16],V=t[17],H=t[18],U=t[19],W=t[20],G=t[21],K=t[22],q=t[23],J=t[24],Y=t[25],X=t[26],Z=t[27],Q=t[28];let ce=L/2,le=L/2,$;t[52]!==I||t[53]!==R||t[54]!==ce||t[55]!==le?($=(0,N.jsx)(`circle`,{cx:ce,cy:le,r:I,fill:`none`,stroke:`var(--interactive-border)`,strokeWidth:R}),t[52]=I,t[53]=R,t[54]=ce,t[55]=le,t[56]=$):$=t[56];let ue=L/2,de=L/2,fe;t[57]!==P||t[58]!==F||t[59]!==I||t[60]!==R||t[61]!==W||t[62]!==ue||t[63]!==de?(fe=(0,N.jsx)(`circle`,{cx:ue,cy:de,r:I,fill:`none`,stroke:W,strokeWidth:R,strokeLinecap:`round`,strokeDasharray:P,strokeDashoffset:F,className:`transition-[stroke-dashoffset,stroke] duration-300`}),t[57]=P,t[58]=F,t[59]=I,t[60]=R,t[61]=W,t[62]=ue,t[63]=de,t[64]=fe):fe=t[64];let pe;t[65]!==K||t[66]!==$||t[67]!==fe||t[68]!==q||t[69]!==J||t[70]!==Y?(pe=(0,N.jsxs)(`svg`,{viewBox:q,className:J,role:Y,"aria-valuenow":K,"aria-valuemin":0,"aria-valuemax":100,children:[$,fe]}),t[65]=K,t[66]=$,t[67]=fe,t[68]=q,t[69]=J,t[70]=Y,t[71]=pe):pe=t[71];let me=pe,he=k?`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]===Z?_e=t[75]:(_e=(0,N.jsx)(`span`,{children:Z}),t[74]=Z,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]!==z||t[78]!==Q?(ye=(0,N.jsxs)(`span`,{className:`text-muted-foreground`,children:[Q,ve,z]}),t[77]=z,t[78]=Q,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]!==M||t[85]!==V||t[86]!==S||t[87]!==x||t[88]!==U||t[89]!==r||t[90]!==me||t[91]!==w||t[92]!==xe||t[93]!==Z||t[94]!==m?(Se=U?(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:w?(0,N.jsxs)(N.Fragment,{children:[me,(0,N.jsx)(`span`,{className:`text-foreground`,children:Z})]}):(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`span`,{className:V(M),children:Math.min(r,999).toFixed(1)}),`%`]})})]}),t[84]=M,t[85]=V,t[86]=S,t[87]=x,t[88]=U,t[89]=r,t[90]=me,t[91]=w,t[92]=xe,t[93]=Z,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]!==H||t[98]!==U||t[99]!==k||t[100]!==we?(Te=y(`app-region-no-drag flex items-center gap-1.5 select-none`,we,H?y(`group rounded-md text-foreground transition-colors`,U?y(`p-1.5 text-muted-foreground hover:text-foreground hover:bg-interactive-hover/50`,k&&`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]=H,t[98]=U,t[99]=k,t[100]=we,t[101]=Te):Te=t[101];let Ee=Te,De;t[102]!==Ce||t[103]!==H||t[104]!==x||t[105]!==g||t[106]!==k||t[107]!==Ee||t[108]!==A?(De=H?(0,N.jsx)(`button`,{type:`button`,className:Ee,"aria-label":A(`contextUsage.aria.label`),"aria-pressed":k,onClick:g,children:Ce}):(0,N.jsx)(`div`,{className:Ee,"aria-label":A(`contextUsage.aria.label`),onClick:x?()=>ne(!0):void 0,children:Ce}),t[102]=Ce,t[103]=H,t[104]=x,t[105]=g,t[106]=k,t[107]=Ee,t[108]=A,t[109]=De):De=t[109];let Oe=De;if(x){let e;t[110]===Symbol.for(`react.memo_cache_sentinel`)?(e=()=>ne(!1),t[110]=e):e=t[110];let n;t[111]===A?n=t[112]:(n=A(`contextUsage.mobile.title`),t[111]=A,t[112]=n);let i;t[113]===A?i=t[114]:(i=A(`contextUsage.mobile.usedTokens`),t[113]=A,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]===Q?o=t[118]:(o=(0,N.jsx)(`span`,{className:`typography-meta text-foreground font-medium`,children:Q}),t[117]=Q,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]===A?c=t[123]:(c=A(`contextUsage.mobile.contextLimit`),t[122]=A,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]===z?u=t[127]:(u=(0,N.jsx)(`span`,{className:`typography-meta text-foreground font-medium`,children:z}),t[126]=z,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]===A?f=t[132]:(f=A(`contextUsage.mobile.outputLimit`),t[131]=A,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]!==B||t[136]!==G?(m=B(G),t[135]=B,t[136]=G,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]===A?_=t[144]:(_=A(`contextUsage.mobile.usage`),t[143]=A,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]!==M||t[148]!==V?(b=y(`typography-meta font-semibold`,V(M)),t[147]=M,t[148]=V,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 w;t[152]!==b||t[153]!==S?(w=(0,N.jsxs)(`span`,{className:b,children:[S,`%`]}),t[152]=b,t[153]=S,t[154]=w):w=t[154];let T;t[155]!==v||t[156]!==w?(T=(0,N.jsxs)(`div`,{className:`flex justify-between items-center pt-1 border-t border-border/40`,children:[v,w]}),t[155]=v,t[156]=w,t[157]=T):T=t[157];let E;t[158]!==s||t[159]!==d||t[160]!==g||t[161]!==T?(E=(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,T]})}),t[158]=s,t[159]=d,t[160]=g,t[161]=T,t[162]=E):E=t[162];let D;t[163]!==j||t[164]!==n||t[165]!==E?(D=(0,N.jsx)(C,{open:j,onClose:e,title:n,children:E}),t[163]=j,t[164]=n,t[165]=E,t[166]=D):D=t[166];let O;return t[167]!==Oe||t[168]!==D?(O=(0,N.jsxs)(N.Fragment,{children:[Oe,D]}),t[167]=Oe,t[168]=D,t[169]=O):O=t[169],O}if(U)return Oe;let ke;t[170]===Oe?ke=t[171]:(ke=(0,N.jsx)(T,{asChild:!0,children:Oe}),t[170]=Oe,t[171]=ke);let Ae;t[172]===X?Ae=t[173]:(Ae=(0,N.jsx)(E,{children:(0,N.jsx)(`div`,{className:`space-y-0.5`,children:X.map(se)})}),t[172]=X,t[173]=Ae);let je;return t[174]!==ke||t[175]!==Ae?(je=(0,N.jsxs)(D,{children:[ke,Ae]}),t[174]=ke,t[175]=Ae,t[176]=je):je=t[176],je};function ae(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:e.toFixed(1).replace(/\.0$/,``)}function oe(e){return e>=90?`text-status-error`:e>=75?`text-status-warning`:`text-status-success`}function se(e){return(0,N.jsx)(`p`,{className:`typography-micro leading-tight`,children:e},e)}var F=ie.memo(function(e){let t=(0,re.c)(45),{visible:r,position:i}=e,o=i===void 0?`right`:i,{t:s}=d(),[c,l]=ie.useState(!1),u,f;if(t[0]===r?(u=t[1],f=t[2]):(u=()=>{if(!r)return;let e=!1;a(`desktop_get_current_window_state`).then(t=>{e||l(!!t?.maximized)}).catch(I);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,ie.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:L,title:C,"aria-label":w,children:T}),t[14]=w,t[15]=C,t[16]=E):E=t[16];let D;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(D=()=>{a(`desktop_toggle_current_window_maximized`).then(e=>l(!!e?.maximized)).catch(R)},t[17]=D):D=t[17];let O;t[18]!==c||t[19]!==s?(O=s(c?`header.windowControls.restore`:`header.windowControls.maximize`),t[18]=c,t[19]=s,t[20]=O):O=t[20];let k;t[21]!==c||t[22]!==s?(k=s(c?`header.windowControls.restore`:`header.windowControls.maximize`),t[21]=c,t[22]=s,t[23]=k):k=t[23];let A=c?`fullscreen-exit`:`checkbox-blank`,ee;t[24]===A?ee=t[25]:(ee=(0,N.jsx)(b,{name:A,className:`h-3.5 w-3.5`}),t[24]=A,t[25]=ee);let te;t[26]!==O||t[27]!==k||t[28]!==ee?(te=(0,N.jsx)(`button`,{type:`button`,className:g,onClick:D,title:O,"aria-label":k,children:ee}),t[26]=O,t[27]=k,t[28]=ee,t[29]=te):te=t[29];let j;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(j=y(g,`hover:bg-status-error hover:text-status-error-foreground`),t[30]=j):j=t[30];let ne;t[31]===s?ne=t[32]:(ne=s(`header.windowControls.close`),t[31]=s,t[32]=ne);let M;t[33]===s?M=t[34]:(M=s(`header.windowControls.close`),t[33]=s,t[34]=M);let P;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,N.jsx)(b,{name:`close`,className:`h-4 w-4`}),t[35]=P):P=t[35];let ae;t[36]!==ne||t[37]!==M?(ae=(0,N.jsx)(`button`,{type:`button`,className:j,onClick:z,title:ne,"aria-label":M,children:P}),t[36]=ne,t[37]=M,t[38]=ae):ae=t[38];let oe;return t[39]!==x||t[40]!==E||t[41]!==te||t[42]!==ae||t[43]!==S?(oe=(0,N.jsxs)(`div`,{className:x,"aria-label":S,children:[E,te,ae]}),t[39]=x,t[40]=E,t[41]=te,t[42]=ae,t[43]=S,t[44]=oe):oe=t[44],oe});function I(){}function L(){a(`desktop_minimize_current_window`)}function R(){}function z(){a(`desktop_close_current_window`)}var B=7,V=e=>{if(!e)return null;let t=e.replace(/\\/g,`/`);return t===`/`?`/`:t.length>1?t.replace(/\/+$/,``):t},H=e=>{if(!e)return null;let t=e.path.split(/[\\/]/).filter(Boolean);return t[t.length-1]??null},U=(e,t)=>{let n=(0,re.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=m(W),s=g(G),c=h(),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,_;bb0:{if(!e){let e;n[6]===Symbol.for(`react.memo_cache_sentinel`)?(e=[],n[6]=e):e=n[6],_=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(p(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(Q))),n[7]=o,n[8]=f,n[9]=c,n[10]=a,n[11]=t}else t=n[11];_=t}let v=_,y;n[17]===Symbol.for(`react.memo_cache_sentinel`)?(y=new Map,n[17]=y):y=n[17];let b=ie.useRef(y),C;n[18]===v?C=n[19]:(C=e=>{let t=b.current,n=t.size===v.length;if(n){for(let r of v)if(t.get(r)!==(e.directories.get(r)?.status?.current??null)){n=!1;break}}if(n)return t;let r=new Map;return v.forEach(t=>r.set(t,e.directories.get(t)?.status?.current??null)),b.current=r,r},n[18]=v,n[19]=C);let w=j(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=p(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(ce).filter(le).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=p(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 p(e)}function Q(e){return!!e}function ce(e){return!e.time?.archived}function le(e){return!e.parentID}function $(e){let n=(0,re.c)(18),{children:r,variant:i,scopeProjectId:a,align:o}=e,s=i===void 0?`default`:i,c=a===void 0?null:a,l=o===void 0?`start`:o,u=t(de),d=t(ue),f;n[0]===r?f=n[1]:(f=(0,N.jsx)(A,{asChild:!0,children:r}),n[0]=r,n[1]=f);let p=s===`compact`?`w-[280px]`:`w-[360px]`,m;n[2]===p?m=n[3]:(m=y(`overflow-hidden p-1 max-w-[calc(100vw-32px)]`,p),n[2]=p,n[3]=m);let h;n[4]!==u||n[5]!==c||n[6]!==d||n[7]!==s?(h=u?(0,N.jsx)(fe,{onSelect:()=>d(!1),variant:s,scopeProjectId:c}):null,n[4]=u,n[5]=c,n[6]=d,n[7]=s,n[8]=h):h=n[8];let g;n[9]!==l||n[10]!==m||n[11]!==h?(g=(0,N.jsx)(O,{align:l,sideOffset:6,className:m,children:h}),n[9]=l,n[10]=m,n[11]=h,n[12]=g):g=n[12];let _;return n[13]!==u||n[14]!==d||n[15]!==f||n[16]!==g?(_=(0,N.jsxs)(k,{open:u,onOpenChange:d,modal:!1,children:[f,g]}),n[13]=u,n[14]=d,n[15]=f,n[16]=g,n[17]=_):_=n[17],_}function ue(e){return e.setSessionDropdownOpen}function de(e){return e.isSessionDropdownOpen}function fe(e){let n=(0,re.c)(27),{onSelect:r,variant:i,scopeProjectId:a}=e,s;n[0]===a?s=n[1]:(s={scopeProjectId:a},n[0]=a,n[1]=s);let c=U(!0,s),l=f(me),p=t(pe),{t:m}=d(),h;n[2]!==r||n[3]!==l||n[4]!==p?(h=()=>{p(`chat`),r(),l()},n[2]=r,n[3]=l,n[4]=p,n[5]=h):h=n[5];let g=u(h),_;n[6]===Symbol.for(`react.memo_cache_sentinel`)?(_=new Set,n[6]=_):_=n[6];let[v,x]=ie.useState(_),S;n[7]===Symbol.for(`react.memo_cache_sentinel`)?(S=e=>{x(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},n[7]=S):S=n[7];let C=u(S),w,T;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(w=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`}),n[8]=w,n[9]=T):(w=n[8],T=n[9]);let E;n[10]===m?E=n[11]:(E=m(`sessions.sidebar.header.actions.newSession`),n[10]=m,n[11]=E);let D;n[12]===E?D=n[13]:(D=(0,N.jsx)(`span`,{className:`truncate text-[14px] font-normal leading-tight text-foreground`,children:E}),n[12]=E,n[13]=D);let O;n[14]!==g||n[15]!==D?(O=(0,N.jsxs)(o,{onClick:g,className:w,children:[T,D]}),n[14]=g,n[15]=D,n[16]=O):O=n[16];let k;n[17]!==v||n[18]!==c||n[19]!==r||n[20]!==m||n[21]!==C||n[22]!==i?(k=c.length===0?(0,N.jsx)(`div`,{className:`px-3 py-4 text-center typography-meta text-muted-foreground`,children:m(`sessions.switcher.empty`)}):c.map(e=>(0,N.jsx)(he,{item:e,depth:0,variant:i,expandedParents:v,toggleParent:C,closeDropdown:r},e.node.session.id)),n[17]=v,n[18]=c,n[19]=r,n[20]=m,n[21]=C,n[22]=i,n[23]=k):k=n[23];let A;return n[24]!==k||n[25]!==O?(A=(0,N.jsx)(`div`,{className:`max-h-[60vh] overflow-y-auto`,children:(0,N.jsxs)(`div`,{className:`space-y-0.5`,children:[O,k]})}),n[24]=k,n[25]=O,n[26]=A):A=n[26],A}function pe(e){return e.setActiveMainTab}function me(e){return e.openNewSessionDraft}function he(e){let t=(0,re.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)(ge,{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)(he,{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 ge(e){let t=(0,re.c)(62),{session:n,depth:r,variant:i,secondaryMeta:a,hasChildren:s,isExpanded:c,onToggleExpand:l,closeDropdown:m}=e,{t:h}=d(),g=f(ve),x=f(_e),S=v(n.id),C=_(n.id),T=g===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;t[3]===n?O=t[4]:(O=M(ne(n)),t[3]=n,t[4]=O);let k=O,A=!!n.parentID,ee=C>0&&!A,te=S?.type??`idle`,j=te===`busy`||te===`retry`,ie=!j&&ee&&!T,P;t[5]!==n.time?.created||t[6]!==n.time?.updated?(P=n.time?.updated||n.time?.created||Date.now(),t[5]=n.time?.created,t[6]=n.time?.updated,t[7]=P):P=t[7];let ae=P,oe;t[8]===ae?oe=t[9]:(oe=w(ae),t[8]=ae,t[9]=oe);let se=oe,F;t[10]===a?.projectLabel?F=t[11]:(F=a?.projectLabel?.trim()||null,t[10]=a?.projectLabel,t[11]=F);let I=F,L;t[12]===a?.branchLabel?L=t[13]:(L=a?.branchLabel?.trim()||null,t[12]=a?.branchLabel,t[13]=L);let R=L,z=R&&R!==`HEAD`?R:null,B;t[14]!==m||t[15]!==T||t[16]!==n||t[17]!==x?(B=()=>{if(T){m();return}let e=p(n);x(n.id,e??null),m()},t[14]=m,t[15]=T,t[16]=n,t[17]=x,t[18]=B):B=t[18];let V=u(B),H;t[19]===V?H=t[20]:(H=e=>{if(e.target?.closest(`[data-switcher-expand]`)){e.preventDefault();return}V()},t[19]=V,t[20]=H);let U;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(U=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[21]=U):U=t[21];let W=8+r*12,G;t[22]===W?G=t[23]:(G={paddingLeft:W},t[22]=W,t[23]=G);let K;t[24]!==s||t[25]!==c||t[26]!==l||t[27]!==h||t[28]!==i?(K=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[24]=s,t[25]=c,t[26]=l,t[27]=h,t[28]=i,t[29]=K):K=t[29];let q=T?`text-primary`:`text-foreground`,J;t[30]===q?J=t[31]:(J=y(`min-w-0 truncate text-[14px] font-normal leading-tight`,q),t[30]=q,t[31]=J);let Y;t[32]!==D||t[33]!==J?(Y=(0,N.jsx)(`span`,{className:J,children:D}),t[32]=D,t[33]=J,t[34]=Y):Y=t[34];let X;t[35]===k?X=t[36]:(X=k?(0,N.jsx)(`span`,{className:`shrink-0 text-[12px] tabular-nums text-muted-foreground`,children:k}):null,t[35]=k,t[36]=X);let Z;t[37]!==K||t[38]!==Y||t[39]!==X?(Z=(0,N.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[K,Y,X]}),t[37]=K,t[38]=Y,t[39]=X,t[40]=Z):Z=t[40];let Q;t[41]!==z||t[42]!==s||t[43]!==c||t[44]!==l||t[45]!==I||t[46]!==h||t[47]!==se||t[48]!==i?(Q=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:se}),I?(0,N.jsx)(`span`,{className:`truncate`,children:I}):null,z?(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:z})]}):null]}):null,t[41]=z,t[42]=s,t[43]=c,t[44]=l,t[45]=I,t[46]=h,t[47]=se,t[48]=i,t[49]=Q):Q=t[49];let ce;t[50]!==Z||t[51]!==Q?(ce=(0,N.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[Z,Q]}),t[50]=Z,t[51]=Q,t[52]=ce):ce=t[52];let le;t[53]!==j||t[54]!==ie||t[55]!==h?(le=j||ie?(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[53]=j,t[54]=ie,t[55]=h,t[56]=le):le=t[56];let $;return t[57]!==G||t[58]!==ce||t[59]!==le||t[60]!==H?($=(0,N.jsxs)(o,{onClick:H,"data-slot":`session-switcher-item`,className:U,style:G,children:[ce,le]}),t[57]=G,t[58]=ce,t[59]=le,t[60]=H,t[61]=$):$=t[61],$}function _e(e){return e.setCurrentSession}function ve(e){return e.currentSessionId}function ye(){let e=(0,re.c)(5),n=t(be),a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=r(),e[0]=a):a=e[0];let o=a,s;e[1]===n?s=e[2]:(s=i(n),e[1]=n,e[2]=s);let c=s,l;return e[3]===c?l=e[4]:(l={usesFramelessChrome:o,side:c},e[3]=c,e[4]=l),l}function be(e){return e.desktopWindowControlsPosition}export{P as i,$ as n,F as r,ye as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e,x as t}from"./useUIStore-DwpQTjLO.js";import{a as n,i as r,n as i,r as a}from"./vendor-zustand-B4dlGEM2.js";import{n as o}from"./vendor-react-DLPElpoQ.js";import{t as s}from"./terminalApi-C54_rKEK.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),_=n()(a(r((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:i(()=>t()),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 t=(0,v.c)(3),n=e(b),r=e(x),i;return t[0]!==r||t[1]!==n?(i={uiFont:n,monoFont:r},t[0]=r,t[1]=n,t[2]=i):i=t[2],i};function b(e){return e.uiFont}function x(e){return e.monoFont}export{_ as n,y as t};
|