@openchambery/web 2.0.0-beta.14 → 2.0.0-beta.16
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-1O_PzNgl.js → AgentAvatar-Cxm7uMtK.js} +1 -1
- package/dist/assets/{AssistantView-B1NCj_Fb.js → AssistantView-DSiX31eO.js} +3 -3
- package/dist/assets/{DiagramView-zeCf7Ybv.js → DiagramView-Cn3O5_Y8.js} +1 -1
- package/dist/assets/{FadeInOnReveal-Blpsssr8.js → FadeInOnReveal-FAZTMV12.js} +1 -1
- package/dist/assets/{Icon-Btt6-uNx.js → Icon-DKd015RD.js} +1 -1
- package/dist/assets/{MarkdownRenderer-Ba3oviH_.js → MarkdownRenderer-BldzYti9.js} +2 -2
- package/dist/assets/{MarkdownRendererImpl-fjFOYtqs.js → MarkdownRendererImpl-fwcKAJYw.js} +1 -1
- package/dist/assets/{MarkstreamRendererImpl-D73Bp9NC.js → MarkstreamRendererImpl-7KUzIn3H.js} +1 -1
- package/dist/assets/{MobileDetailNavigation-THG3yUY_.js → MobileDetailNavigation-C-b5DSQl.js} +1 -1
- package/dist/assets/{MobileShareBridge-Cb69oG6O.js → MobileShareBridge-DMezirfj.js} +2 -2
- package/dist/assets/{MobileSurface-CBMNDHWH.js → MobileSurface-Bt79wJBe.js} +1 -1
- package/dist/assets/{MultiRunWindow-Ygoxcm5y.js → MultiRunWindow-CnhaA2qb.js} +1 -1
- package/dist/assets/{OnboardingScreen-Cb_6lzZd.js → OnboardingScreen-BGHwdpXe.js} +1 -1
- package/dist/assets/{OverlayScrollbar-BXfF2JdG.js → OverlayScrollbar-SUdC3Pqe.js} +1 -1
- package/dist/assets/{SettingsView-BUF-obwp.js → SettingsView-BOY_6tAP.js} +1 -1
- package/dist/assets/{SettingsWindow-B54EoP27.js → SettingsWindow-iCU14SSY.js} +1 -1
- package/dist/assets/{TerminalView-BnacgrUr.js → TerminalView-GA-BbM9g.js} +1 -1
- package/dist/assets/{ToolOutputDialog-D5EDu_pb.js → ToolOutputDialog-CUl0cRZG.js} +1 -1
- package/dist/assets/{appThemeRegistry-CkFI48mo.js → appThemeRegistry-Dvw18-KP.js} +1 -1
- package/dist/assets/{assistant-attachment-cache-DphJleHr.js → assistant-attachment-cache-sG8YQsVs.js} +1 -1
- package/dist/assets/{button-DrOV2On_.js → button-EzCcYrQl.js} +1 -1
- package/dist/assets/{collapsible-CD-rqvsr.js → collapsible-BwvSZkMC.js} +1 -1
- package/dist/assets/{context-menu-dcIf0VbK.js → context-menu-DSrUbCPh.js} +1 -1
- package/dist/assets/{desktopHosts-DLW0GEzn.js → desktopHosts-C8vf9vRY.js} +1 -1
- package/dist/assets/desktopRelayRestore-DDJtljeu.js +1 -0
- package/dist/assets/{diagram-CpfuMO5b.js → diagram-Brtt6ms7.js} +1 -1
- package/dist/assets/{dialog-DOMLas8m.js → dialog-Cpu-rKij.js} +1 -1
- package/dist/assets/{fileMentionTouchSelection-05j9xM7K.js → fileMentionTouchSelection-CX2GBeT2.js} +1 -1
- package/dist/assets/{fileQueries-BfUCMigB.js → fileQueries-CBu-ytXS.js} +1 -1
- package/dist/assets/{gitApi--jK71Mhy.js → gitApi-BuHteWeZ.js} +1 -1
- package/dist/assets/{imageSource-BMztRu0c.js → imageSource-BpUsiwFd.js} +1 -1
- package/dist/assets/{input-DLdTC9t_.js → input-DksVnckl.js} +1 -1
- package/dist/assets/{insertionBoundaries-BHEBgMEu.js → insertionBoundaries-B5Wzbzd3.js} +1 -1
- package/dist/assets/{main-B4md6XgF.js → main-CEhjJ7ze.js} +2 -2
- package/dist/assets/{main-BAiP4T25.js → main-DINcXEAA.js} +4 -4
- package/dist/assets/{markdownHeightCache-2UQSdxne.js → markdownHeightCache-emzgqB2K.js} +1 -1
- package/dist/assets/{mcpQueries-BdkZuMYg.js → mcpQueries-BhVPqtnN.js} +1 -1
- package/dist/assets/miniChat-Bo0rWV9V.js +2 -0
- package/dist/assets/{mobile-BVX_SYNM.js → mobile-sA03x4Fl.js} +2 -2
- package/dist/assets/{multirun-BCRP1vnk.js → multirun-CEuu10Xi.js} +1 -1
- package/dist/assets/{persistence-BjB2zg-A.js → persistence-CMWO3jFo.js} +1 -1
- package/dist/assets/{platform-BtWIOx71.js → platform-BxU3ZvQ0.js} +1 -1
- package/dist/assets/{projectMeta-B916-Nri.js → projectMeta-n0t4_672.js} +1 -1
- package/dist/assets/{relay-image-stream-DrdVj99c.js → relay-image-stream-D2XooXKZ.js} +1 -1
- package/dist/assets/{renderElectronMiniChatApp-Df7dq4oG.js → renderElectronMiniChatApp-DGE4xEtr.js} +2 -2
- package/dist/assets/{renderMobileApp-BqRL8mi8.js → renderMobileApp-CRI1W3-J.js} +4 -4
- package/dist/assets/{runtime-fetch-Fs9ZV2V8.js → runtime-fetch-CiqQd__Y.js} +1 -1
- package/dist/assets/runtime-switch-BJM2k_uH.js +1 -0
- package/dist/assets/{runtimeConfig-B2-RJhnH.js → runtimeConfig-B5vzmiw4.js} +1 -1
- package/dist/assets/{runtimeEndpointReset-DOiWLvtd.js → runtimeEndpointReset-BiynvIUH.js} +1 -1
- package/dist/assets/{sessionChangeSummary-fWdW0Xo3.js → sessionChangeSummary-BpEaUpIi.js} +1 -1
- package/dist/assets/{sessionLookup-D6efIvsE.js → sessionLookup-CVS-ZMib.js} +1 -1
- package/dist/assets/{sortable-tabs-strip-Dw4fkTT5.js → sortable-tabs-strip-Bc0lATi8.js} +1 -1
- package/dist/assets/{terminalApi-tdoZSHxO.js → terminalApi-C6zlKnK1.js} +1 -1
- package/dist/assets/{textarea-C1Ro6kDl.js → textarea-B9pCxe-7.js} +1 -1
- package/dist/assets/{tooltip-Dbt9HzPi.js → tooltip-DwUy2erJ.js} +1 -1
- package/dist/assets/{url-BFVmRFrh.js → url-DF1NFwt_.js} +1 -1
- package/dist/assets/{useAppFontEffects-DYxg0CaC.js → useAppFontEffects-D-4aDydP.js} +7 -7
- package/dist/assets/{useAssistantUIStore-Bz4tRflF.js → useAssistantUIStore-B75cQm_z.js} +1 -1
- package/dist/assets/{useDesktopWindowControlsLayout-D66170SP.js → useDesktopWindowControlsLayout-CuSkyPqt.js} +1 -1
- package/dist/assets/{useEffectiveDirectory-HRJsy3JA.js → useEffectiveDirectory-BFl2jc4W.js} +1 -1
- package/dist/assets/{useFontPreferences-Dpty4dZD.js → useFontPreferences-DFsjAsxC.js} +1 -1
- package/dist/assets/{useMobileNavigationStore-rymykUWX.js → useMobileNavigationStore-C3zrYwWb.js} +5 -5
- package/dist/assets/{useSessionAutoCleanup-DK_o3WSg.js → useSessionAutoCleanup-BZAMbGcw.js} +2 -2
- package/dist/assets/{useUIStore-syVmbuDA.js → useUIStore-Brsa2mKs.js} +1 -1
- package/dist/assets/{useWorkerHighlightedLines-D7ReoWK5.js → useWorkerHighlightedLines-3sqUvjEF.js} +1 -1
- package/dist/index.html +10 -10
- package/dist/mini-chat.html +10 -10
- package/dist/mobile.html +10 -10
- package/package.json +1 -1
- package/server/lib/relay/DOCUMENTATION.md +2 -1
- package/dist/assets/desktopRelayRestore-BqkwgbJI.js +0 -1
- package/dist/assets/miniChat-D_CfOJNS.js +0 -2
- package/dist/assets/runtime-switch-LvWDU-SL.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as e,r as t}from"./runtime-switch-LvWDU-SL.js";import{a as n,i as r,r as i}from"./vendor-zustand-B4dlGEM2.js";var a=null,o=null,s=null,c=new Set,l=!1,u=e=>{if(c.add(e),l||typeof window>`u`)return;l=!0;let t=()=>{for(let e of c)e()};try{window.addEventListener(`pagehide`,t,{capture:!0}),window.addEventListener(`beforeunload`,t,{capture:!0}),window.addEventListener(`visibilitychange`,()=>{typeof document<`u`&&document.visibilityState===`hidden`&&t()}),window.addEventListener(`freeze`,t)}catch{}},d=(e,t)=>{let n;try{n=e()}catch{return}let r=new Map,i=new Set,a,o=()=>{if(a=void 0,r.size===0&&i.size===0)return!0;let e=Array.from(r.entries()),o=Array.from(i);r.clear(),i.clear();let c=!0;for(let[i,a]of e)try{n.setItem(i,JSON.stringify(a,t?.replacer))}catch(e){console.error(`Failed to persist deferred storage value`,e),r.set(i,a),c=!1}for(let e of o)try{n.removeItem(e)}catch(t){console.error(`Failed to remove deferred storage value`,t),i.add(e),c=!1}return c||s(),c},s=()=>{a===void 0&&(a=setTimeout(o,0))};return u(o),{getItem:e=>{if(r.has(e))return r.get(e)??null;if(i.has(e))return null;let a=e=>e===null?null:JSON.parse(e,t?.reviver),o=n.getItem(e);return o instanceof Promise?o.then(a):a(o)},setItem:(e,t)=>{r.set(e,t),i.delete(e),s()},removeItem:e=>{r.delete(e),i.add(e),s()},flush:o}},f=e=>d(()=>h(),e),ee=e=>{let t=new Map,n=new Set,r,i=()=>{if(r=void 0,t.size===0&&n.size===0)return;let i=Array.from(t.entries()),a=Array.from(n);t.clear(),n.clear();for(let[t,n]of i)try{e.setItem(t,n)}catch(e){console.error(`Failed to persist deferred storage value`,e)}for(let t of a)try{e.removeItem(t)}catch(e){console.error(`Failed to remove deferred storage value`,e)}},a=()=>{r===void 0&&(r=setTimeout(i,0))};return u(i),{getItem:r=>t.has(r)?t.get(r)??null:n.has(r)?null:e.getItem(r),setItem:(e,r)=>{t.set(e,r),n.delete(e),a()},removeItem:e=>{t.delete(e),n.add(e),a()},clear:()=>{t.clear(),n.clear(),r!==void 0&&(clearTimeout(r),r=void 0),e.clear()},key:t=>e.key(t),get length(){return e.length}}},p=e=>{if(typeof window>`u`)return null;try{return window[e]??null}catch{return null}},m=()=>{let e=new Map;return{getItem:t=>e.get(t)??null,setItem:(t,n)=>{e.set(t,n)},removeItem:t=>{e.delete(t)},clear:()=>{e.clear()},key:t=>Array.from(e.keys())[t]??null,get length(){return e.size}}},te=()=>{let e=p(`localStorage`);if(!e)return m();let t=m(),n=!0,r=()=>{n=!1};return{getItem:i=>{if(n)try{let t=e.getItem(i);if(t!==null)return t}catch{r()}return t.getItem(i)},setItem:(i,a)=>{if(n)try{e.setItem(i,a),t.removeItem(i);return}catch{r();try{e.removeItem(i)}catch{}}t.setItem(i,a)},removeItem:n=>{try{e.removeItem(n)}catch{r()}t.removeItem(n)},clear:()=>{try{e.clear()}catch{r()}t.clear()},key:i=>{if(n)try{return e.key(i)}catch{r()}return t.key(i)},get length(){if(n)try{return e.length+t.length}catch{r()}return t.length}}},h=()=>(a||=te(),a),ne=()=>(s||=ee(h()),s),re=()=>{let e=p(`sessionStorage`);if(!e)return m();let t=m(),n=!0,r=()=>{n=!1};return{getItem:i=>{if(n)try{let t=e.getItem(i);if(t!==null)return t}catch{r()}return t.getItem(i)},setItem:(i,a)=>{if(n)try{e.setItem(i,a),t.removeItem(i);return}catch{r();try{e.removeItem(i)}catch{}}t.setItem(i,a)},removeItem:n=>{try{e.removeItem(n)}catch{r()}t.removeItem(n)},clear:()=>{try{e.clear()}catch{r()}t.clear()},key:i=>{if(n)try{return e.key(i)}catch{r()}return t.key(i)},get length(){if(n)try{return e.length+t.length}catch{r()}return t.length}}},ie=()=>(o||=re(),o);function ae(e,t){return t>=12?e:(e.chatRenderMode===`live`&&(e.chatRenderMode=`sorted`),e.activityRenderMode===`summary`&&(e.activityRenderMode=`collapsed`),e.showTurnChangedFiles===!1&&(e.showTurnChangedFiles=!0),e)}var g={markdown:`0.875rem`,code:`0.75rem`,uiHeader:`0.9375rem`,uiLabel:`0.8750rem`,meta:`0.875rem`,micro:`0.875rem`},oe={markdown:`0.9375rem`,code:`0.8125rem`,uiHeader:`0.875rem`,uiLabel:`0.8125rem`,meta:`0.8125rem`,micro:`0.75rem`},se={markdown:`0.9063rem`,code:`0.8750rem`,uiHeader:`0.9063rem`,uiLabel:`0.8438rem`,meta:`0.8438rem`,micro:`0.7813rem`};function _(e){return`--text-${e.replace(/([A-Z])/g,`-$1`).toLowerCase()}`}function v(e=document.documentElement){return e.classList.contains(`mobile-pointer`)&&!e.classList.contains(`desktop-runtime`)}function ce(e,t){return t?.mobile?oe[e]:g[e]}var y={semanticMarkdown:{fontSize:`var(--text-markdown)`},semanticCode:{fontSize:`var(--text-code)`},uiHeader:{fontSize:`var(--text-ui-header)`},uiLabel:{fontSize:`var(--text-ui-label)`},meta:{fontSize:`var(--text-meta)`},micro:{fontSize:`var(--text-micro)`},ui:{button:{fontSize:`var(--text-ui-label)`,lineHeight:`var(--ui-button-line-height)`,letterSpacing:`var(--ui-button-letter-spacing)`,fontWeight:`var(--ui-button-font-weight)`},buttonSmall:{fontSize:`var(--text-meta)`,lineHeight:`var(--ui-button-small-line-height)`,letterSpacing:`var(--ui-button-small-letter-spacing)`,fontWeight:`var(--ui-button-small-font-weight)`},buttonLarge:{fontSize:`var(--text-ui-label)`,lineHeight:`var(--ui-button-large-line-height)`,letterSpacing:`var(--ui-button-large-letter-spacing)`,fontWeight:`var(--ui-button-large-font-weight)`},label:{fontSize:`var(--text-meta)`,lineHeight:`var(--ui-label-line-height)`,letterSpacing:`var(--ui-label-letter-spacing)`,fontWeight:`var(--ui-label-font-weight)`},caption:{fontSize:`var(--text-micro)`,lineHeight:`var(--ui-caption-line-height)`,letterSpacing:`var(--ui-caption-letter-spacing)`,fontWeight:`var(--ui-caption-font-weight)`},badge:{fontSize:`var(--text-micro)`,lineHeight:`var(--ui-badge-line-height)`,letterSpacing:`var(--ui-badge-letter-spacing)`,fontWeight:`var(--ui-badge-font-weight)`},tooltip:{fontSize:`var(--text-micro)`,lineHeight:`var(--ui-tooltip-line-height)`,letterSpacing:`var(--ui-tooltip-letter-spacing)`,fontWeight:`var(--ui-tooltip-font-weight)`},input:{fontSize:`var(--text-ui-label)`,lineHeight:`var(--ui-input-line-height)`,letterSpacing:`var(--ui-input-letter-spacing)`,fontWeight:`var(--ui-input-font-weight)`},helperText:{fontSize:`var(--text-meta)`,lineHeight:`var(--ui-helper-text-line-height)`,letterSpacing:`var(--ui-helper-text-letter-spacing)`,fontWeight:`var(--ui-helper-text-font-weight)`}},code:{inline:{fontSize:`var(--text-code)`,lineHeight:`var(--code-inline-line-height)`,letterSpacing:`var(--code-inline-letter-spacing)`,fontWeight:`var(--code-inline-font-weight)`},block:{fontSize:`var(--text-code)`,lineHeight:`var(--code-block-line-height)`,letterSpacing:`var(--code-block-letter-spacing)`,fontWeight:`var(--code-block-font-weight)`},lineNumbers:{fontSize:`var(--text-micro)`,lineHeight:`var(--code-line-numbers-line-height)`,letterSpacing:`var(--code-line-numbers-letter-spacing)`,fontWeight:`var(--code-line-numbers-font-weight)`}},markdown:{body:{fontSize:`var(--text-markdown)`,lineHeight:`var(--markdown-body-line-height)`,letterSpacing:`var(--markdown-body-letter-spacing)`,fontWeight:`var(--markdown-body-font-weight)`},bodySmall:{fontSize:`var(--text-meta)`,lineHeight:`var(--markdown-body-small-line-height)`,letterSpacing:`var(--markdown-body-small-letter-spacing)`,fontWeight:`var(--markdown-body-small-font-weight)`},bodyLarge:{fontSize:`var(--text-markdown)`,lineHeight:`var(--markdown-body-large-line-height)`,letterSpacing:`var(--markdown-body-large-letter-spacing)`,fontWeight:`var(--markdown-body-large-font-weight)`},blockquote:{fontSize:`var(--text-markdown)`,lineHeight:`var(--markdown-blockquote-line-height)`,letterSpacing:`var(--markdown-blockquote-letter-spacing)`,fontWeight:`var(--markdown-blockquote-font-weight)`},list:{fontSize:`var(--text-markdown)`,lineHeight:`var(--markdown-list-line-height)`,letterSpacing:`var(--markdown-list-letter-spacing)`,fontWeight:`var(--markdown-list-font-weight)`},link:{fontSize:`var(--text-markdown)`,lineHeight:`var(--markdown-link-line-height)`,letterSpacing:`var(--markdown-link-letter-spacing)`,fontWeight:`var(--markdown-link-font-weight)`},code:{fontSize:`var(--text-code)`,lineHeight:`var(--markdown-code-line-height)`,letterSpacing:`var(--markdown-code-letter-spacing)`,fontWeight:`var(--markdown-code-font-weight)`},codeBlock:{fontSize:`var(--text-code)`,lineHeight:`var(--markdown-code-block-line-height)`,letterSpacing:`var(--markdown-code-block-letter-spacing)`,fontWeight:`var(--markdown-code-block-font-weight)`}},tool:{collapsed:{fontSize:`var(--text-code)`,lineHeight:`var(--code-block-line-height)`,letterSpacing:`var(--code-block-letter-spacing)`,fontWeight:`var(--code-block-font-weight)`},popup:{fontSize:`var(--text-code)`,lineHeight:`var(--code-block-line-height)`,letterSpacing:`var(--code-block-letter-spacing)`,fontWeight:`var(--code-block-font-weight)`},inline:{fontSize:`var(--text-code)`,lineHeight:`var(--code-inline-line-height)`,letterSpacing:`var(--code-inline-letter-spacing)`,fontWeight:`var(--code-inline-font-weight)`}}},b={padding:{collapsed:`0.375rem`,popup:`0.75rem`,popupContainer:`1rem`},backgroundOpacity:{muted:`30`,mutedAlt:`50`},getCollapsedStyles:()=>({...y.tool.collapsed,background:`transparent`,backgroundColor:`transparent`,margin:0,padding:b.padding.collapsed,borderRadius:0}),getPopupStyles:()=>({...y.tool.popup,background:`transparent`,backgroundColor:`transparent`,margin:0,padding:b.padding.popup,borderRadius:`0.75rem`}),getPopupContainerStyles:()=>({...y.tool.popup,background:`transparent`,backgroundColor:`transparent`,margin:0,padding:b.padding.popupContainer,borderRadius:`0.5rem`,overflowX:`auto`}),getInlineStyles:()=>({...y.tool.inline})},x=[{id:`inter`,label:`Inter`,description:`Modern UI sans with excellent readability at small sizes.`,stack:`"Inter", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,source:{family:`Inter`,packageName:`@fontsource/inter`,filePrefix:`inter`,weights:[400,500,600]}},{id:`geist-sans`,label:`Geist Sans`,description:`Crisp sans-serif with a technical interface feel.`,stack:`"Geist Sans", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,source:{family:`Geist Sans`,packageName:`@fontsource/geist-sans`,filePrefix:`geist-sans`,weights:[400,500,600]}},{id:`atkinson-hyperlegible`,label:`Atkinson Hyperlegible`,description:`Accessibility-focused sans-serif optimized for character distinction.`,stack:`"Atkinson Hyperlegible", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,source:{family:`Atkinson Hyperlegible`,packageName:`@fontsource/atkinson-hyperlegible`,filePrefix:`atkinson-hyperlegible`,weights:[400,700]}},{id:`source-sans-3`,label:`Source Sans 3`,description:`Adobe sans-serif tuned for clean, readable interfaces.`,stack:`"Source Sans 3", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,source:{family:`Source Sans 3`,packageName:`@fontsource/source-sans-3`,filePrefix:`source-sans-3`,weights:[400,500,600]}},{id:`roboto`,label:`Roboto`,description:`Familiar Material-style sans-serif with broad UI usage.`,stack:`"Roboto", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,source:{family:`Roboto`,packageName:`@fontsource/roboto`,filePrefix:`roboto`,weights:[400,500,600]}},{id:`noto-sans`,label:`Noto Sans`,description:`Readable sans-serif with strong international coverage.`,stack:`"Noto Sans", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,source:{family:`Noto Sans`,packageName:`@fontsource/noto-sans`,filePrefix:`noto-sans`,weights:[400,500,600]}},{id:`dm-sans`,label:`DM Sans`,description:`Modern product UI sans-serif with friendly proportions.`,stack:`"DM Sans", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,source:{family:`DM Sans`,packageName:`@fontsource/dm-sans`,filePrefix:`dm-sans`,weights:[400,500,600]}},{id:`manrope`,label:`Manrope`,description:`Polished geometric sans-serif for modern app interfaces.`,stack:`"Manrope", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,source:{family:`Manrope`,packageName:`@fontsource/manrope`,filePrefix:`manrope`,weights:[400,500,600]}},{id:`system`,label:`System`,description:`Native operating system interface font.`,stack:`-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif`}],S=[{id:`jetbrains-mono`,label:`JetBrains Mono`,description:`Developer-focused monospace with strong punctuation clarity.`,stack:`"JetBrains Mono", "SFMono-Regular", "Menlo", monospace`,source:{family:`JetBrains Mono`,packageName:`@fontsource/jetbrains-mono`,filePrefix:`jetbrains-mono`,weights:[400,500,600]}},{id:`fira-code`,label:`Fira Code`,description:`Readable coding font with ligature support.`,stack:`"Fira Code", "SFMono-Regular", "Menlo", monospace`,source:{family:`Fira Code`,packageName:`@fontsource/fira-code`,filePrefix:`fira-code`,weights:[400,500,600]}},{id:`geist-mono`,label:`Geist Mono`,description:`Sharp monospace pair for Geist Sans.`,stack:`"Geist Mono", "SFMono-Regular", "Menlo", monospace`,source:{family:`Geist Mono`,packageName:`@fontsource/geist-mono`,filePrefix:`geist-mono`,weights:[400,500,600]}},{id:`commit-mono`,label:`Commit Mono`,description:`Code-oriented monospace with polished editor ergonomics.`,stack:`"Commit Mono", "SFMono-Regular", "Menlo", monospace`,source:{family:`Commit Mono`,packageName:`@fontsource/commit-mono`,filePrefix:`commit-mono`,weights:[400,500,600]}},{id:`source-code-pro`,label:`Source Code Pro`,description:`Adobe monospace designed for source code readability.`,stack:`"Source Code Pro", "SFMono-Regular", "Menlo", monospace`,source:{family:`Source Code Pro`,packageName:`@fontsource/source-code-pro`,filePrefix:`source-code-pro`,weights:[400,500,600]}},{id:`cascadia-code`,label:`Cascadia Code`,description:`Microsoft coding font popular in terminals and editors.`,stack:`"Cascadia Code", "SFMono-Regular", "Menlo", monospace`,source:{family:`Cascadia Code`,packageName:`@fontsource/cascadia-code`,filePrefix:`cascadia-code`,weights:[400,500,600]}},{id:`roboto-mono`,label:`Roboto Mono`,description:`Neutral monospace companion to Roboto.`,stack:`"Roboto Mono", "SFMono-Regular", "Menlo", monospace`,source:{family:`Roboto Mono`,packageName:`@fontsource/roboto-mono`,filePrefix:`roboto-mono`,weights:[400,500,600]}},{id:`iosevka`,label:`Iosevka`,description:`Compact monospace for dense code and terminal layouts.`,stack:`"Iosevka", "SFMono-Regular", "Menlo", monospace`,source:{family:`Iosevka`,packageName:`@fontsource/iosevka`,filePrefix:`iosevka`,weights:[400,500,600]}},{id:`system-mono`,label:`System Mono`,description:`Native operating system monospace font.`,stack:`ui-monospace, "SFMono-Regular", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace`}],le=e=>Object.fromEntries(e.map(e=>[e.id,e])),ue=le(x),de=le(S),fe=`system`,pe=`system-mono`,me=e=>typeof e==`string`&&e in ue,he=e=>typeof e==`string`&&e in de,C=`openchamber.mobileKeyboardMode`,ge=`meta[name="viewport"]`,w=`width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover`,_e=()=>!0;function T(e,t=`resize-content`){return e===`native`||e===`resize-content`?e:t}var ve=e=>T(e)===`resize-content`?`${w}, interactive-widget=resizes-content`:w,ye=()=>{if(typeof window>`u`)return`resize-content`;try{return T(localStorage.getItem(C))}catch{return`resize-content`}},E=e=>{let t=T(e);if(typeof window<`u`)try{t===`resize-content`?localStorage.removeItem(C):localStorage.setItem(C,t)}catch{}return t},be=e=>{let t=E(e);if(typeof document>`u`)return t;document.documentElement.setAttribute(`data-oc-mobile-keyboard-mode`,t);let n=document.querySelector(ge);if(n instanceof HTMLMetaElement){let e=ve(t);n.getAttribute(`content`)!==e&&n.setAttribute(`content`,e)}return t};function D(e){return e===`vim`?`vim`:`default`}var xe={completion:{title:`{agent_name} is ready`,message:`{last_message}`},error:{title:`Tool error`,message:`{last_message}`},question:{title:`{agent_name} needs input`,message:`{last_message}`},subtask:{title:`Subtask complete`,message:`{last_message}`}},Se={completion:{title:`Task completed`,message:`{session_name}`},error:{title:`Something went wrong`,message:`{session_name}`},question:{title:`Needs your answer`,message:`{session_name}`},subtask:{title:`Task completed`,message:`{session_name}`}},Ce={completion:{title:`{agent_name} is ready`,message:`{model_name} completed the task`},error:{title:`Tool error`,message:`{last_message}`},question:{title:`Input needed`,message:`{last_message}`},subtask:{title:`{agent_name} is ready`,message:`{model_name} completed the task`}},O={completion:{title:``,message:``},error:{title:``,message:``},question:{title:``,message:``},subtask:{title:``,message:``}},k=(e,t)=>e?e.title===t.title&&e.message===t.message:!1,we=e=>{if(!e||typeof e!=`object`)return!1;let t=e,n=e=>k(t.completion,e.completion)&&k(t.error,e.error)&&k(t.question,e.question)&&k(t.subtask,e.subtask);return n(xe)||n(Se)||n(Ce)},A=380,Te=380,Ee=1400,j=12,De=40,M=120,N=260,P=new Map,F=e=>(e??t()).trim()||`default`,I=e=>{if(!e)return``;let t=e.replace(/\\/g,`/`),n=t.startsWith(`//`),r=t.replace(/\/+$/g,``);return r=r.replace(/\/+/g,`/`),n&&!r.startsWith(`//`)&&(r=`/${r}`),r===``?t.startsWith(`/`)?`/`:``:r},L=e=>Number.isFinite(e)?Math.min(Ee,Math.max(Te,Math.round(e))):A,R=e=>{if(typeof e!=`string`)return null;let t=e.trim();return t?t.replace(/\\/g,`/`):null},z=e=>{if(typeof e!=`string`)return null;let t=e.trim();return t?t.length>M?t.slice(0,M):t:null},B=e=>e===`working`||e===`staged`||e===`turn`?e:null,V=e=>typeof e==`string`&&e.trim()||null,H=e=>typeof e==`string`&&e.trim()||null,Oe=(e,t)=>(e===`file`||e===`preview`)&&t||e,U=(e,t,n)=>{if(e===`diff`||e===`file-diff`)return e;if(typeof n==`string`){let e=n.trim();if(e)return e}return Oe(e,t)},W=(e,t)=>t===e?e:`${e}:${t}`,G=e=>e===`turn-diff-outside-workspace`?e:null,ke=e=>{let t=R(e.targetPath),n=U(e.mode,t,e.dedupeKey);return{id:W(e.mode,n),mode:e.mode,targetPath:t,dedupeKey:n,label:z(e.label),sessionTitleFallback:z(e.sessionTitleFallback),readOnly:e.readOnly===!0,stagedDiff:e.stagedDiff===!0,diffScope:B(e.diffScope)??(e.stagedDiff===!0?`staged`:`working`),diffTargetLine:typeof e.diffTargetLine==`number`&&Number.isFinite(e.diffTargetLine)?Math.max(1,Math.trunc(e.diffTargetLine)):null,diffTurnMessageId:V(e.diffTurnMessageId),diffSessionId:H(e.diffSessionId),fileNotice:e.mode===`file`?G(e.fileNotice):null,touchedAt:Date.now()}},Ae=(e,t,n)=>{if(e.length<=t)return e;let r=[...e].sort((e,t)=>e.touchedAt-t.touchedAt).filter(e=>e.id!==n),i=e.length-t;if(i<=0||r.length===0)return e.slice(-t);let a=new Set(r.slice(0,i).map(e=>e.id));return e.filter(e=>!a.has(e.id))},K=e=>{if(!Array.isArray(e))return[];let t=[],n=new Set;for(let r of e){if(!r||typeof r!=`object`)continue;let e=r;if(e.mode!==`diff`&&e.mode!==`file-diff`&&e.mode!==`file`&&e.mode!==`context`&&e.mode!==`chat`&&e.mode!==`preview`&&e.mode!==`browser`&&e.mode!==`btw`)continue;let i=R(typeof e.targetPath==`string`?e.targetPath:null),a=U(e.mode,i,typeof e.dedupeKey==`string`?e.dedupeKey:null),o=W(e.mode,a);!o||n.has(o)||(n.add(o),t.push({id:o,mode:e.mode,targetPath:i,dedupeKey:a,label:z(typeof e.label==`string`?e.label:null),sessionTitleFallback:z(typeof e.sessionTitleFallback==`string`?e.sessionTitleFallback:null),readOnly:e.readOnly===!0,stagedDiff:e.stagedDiff===!0,diffScope:B(e.diffScope)??(e.stagedDiff===!0?`staged`:`working`),diffTargetLine:typeof e.diffTargetLine==`number`&&Number.isFinite(e.diffTargetLine)?Math.max(1,Math.trunc(e.diffTargetLine)):null,diffTurnMessageId:V(e.diffTurnMessageId),diffSessionId:H(e.diffSessionId),fileNotice:e.mode===`file`?G(e.fileNotice):null,touchedAt:typeof e.touchedAt==`number`&&Number.isFinite(e.touchedAt)?e.touchedAt:Date.now()}))}return t},q=(e,t)=>t&&e.some(e=>e.id===t)?t:e.length===0?null:e[e.length-1].id,J=e=>{if(e){let t=K(e.tabs),n=q(t,e.activeTabId);return{...e,tabs:t,activeTabId:n,touchedAt:Date.now()}}return{isOpen:!1,expanded:!1,tabs:[],activeTabId:null,width:A,touchedAt:Date.now()}},je=(e,t)=>{let n=ke(t),r=e.tabs.findIndex(e=>e.id===n.id),i=r===-1?[...e.tabs,n]:e.tabs.map((e,t)=>t===r?{...e,diffTargetLine:n.diffTargetLine,diffTurnMessageId:n.diffTurnMessageId,diffSessionId:n.diffSessionId,mode:n.mode,targetPath:n.targetPath||e.targetPath,dedupeKey:n.dedupeKey,label:n.label,sessionTitleFallback:n.sessionTitleFallback||e.sessionTitleFallback,stagedDiff:n.stagedDiff,diffScope:n.diffScope,readOnly:n.readOnly,fileNotice:n.mode===`file`?n.fileNotice:null,touchedAt:Date.now()}:e),a=n.id,o=Ae(i,j,a);return{...e,isOpen:!0,tabs:o,activeTabId:q(o,a),touchedAt:Date.now()}},Me=(e,t)=>{let n=e.tabs.filter(e=>e.id!==t),r=e.activeTabId===t?n[n.length-1]?.id??null:q(n,e.activeTabId);return{...e,tabs:n,activeTabId:r,isOpen:n.length>0&&e.isOpen,touchedAt:Date.now()}},Ne=(e,t,n)=>{if(t===n)return e;let r=e.tabs.findIndex(e=>e.id===t),i=e.tabs.findIndex(e=>e.id===n);if(r===-1||i===-1)return e;let a=[...e.tabs],[o]=a.splice(r,1);return o?(a.splice(i,0,o),{...e,tabs:a,touchedAt:Date.now()}):e},Pe=(e,t,n)=>({...e,tabs:e.tabs.map(e=>e.id===t?{...e,targetPath:n}:e)}),Y=e=>{if(!e||typeof e!=`object`)return{};let t=e,n={};for(let[e,r]of Object.entries(t)){let t=I(e);if(!t||!r||typeof r!=`object`)continue;let i=r,a=K(i.tabs).filter(e=>e.mode!==`btw`),o=typeof i.activeTabId==`string`?i.activeTabId:null;a.length===0&&(i.mode===`diff`||i.mode===`file-diff`||i.mode===`file`||i.mode===`context`||i.mode===`chat`)&&(a=[ke({mode:i.mode,targetPath:typeof i.targetPath==`string`?i.targetPath:null,dedupeKey:typeof i.dedupeKey==`string`?i.dedupeKey:null,label:typeof i.label==`string`?i.label:null})],o=a[0]?.id??null);let s=q(a,o),c=Ae(a,j,s);n[t]={isOpen:i.isOpen===!0&&c.length>0,expanded:i.expanded===!0,tabs:c,activeTabId:q(c,s),width:L(typeof i.width==`number`?i.width:A),touchedAt:typeof i.touchedAt==`number`&&Number.isFinite(i.touchedAt)?i.touchedAt:Date.now()}}return n},X=(e,t)=>{let n=Object.entries(e);if(n.length<=t)return e;n.sort((e,t)=>(t[1]?.touchedAt??0)-(e[1]?.touchedAt??0));let r={};for(let[e,i]of n.slice(0,t))r[e]=i;return r},Fe=(e,t)=>{let n=Object.entries(e);if(n.length<=t)return e;n.sort((e,t)=>(t[1]?.touchedAt??0)-(e[1]?.touchedAt??0));let r={};for(let[e,i]of n.slice(0,t))r[e]=i;return r},Ie=(e,t)=>{let n=I((t||``).trim())||null,r=n?e.contextPanelByDirectory[n]:void 0;return{isRightSidebarOpen:e.isRightSidebarOpen,rightSidebarTab:e.rightSidebarTab,contextPanelDirectory:n,contextPanelIsOpen:!!(r?.isOpen&&r.tabs.length>0),contextPanelActiveTabId:r?.activeTabId??null,contextPanelExpanded:!!r?.expanded,touchedAt:Date.now()}},Le=(e,t,n)=>{let r=I((t||``).trim());if(!r)return e;let i=e[r];if(!i)return e;let a=!!(n?.contextPanelIsOpen&&n.contextPanelDirectory===r&&i.tabs.length>0),o=a?q(i.tabs,n?.contextPanelActiveTabId??i.activeTabId):i.activeTabId,s=a?!!n?.contextPanelExpanded:i.expanded;return i.isOpen===a&&i.activeTabId===o&&i.expanded===s?e:{...e,[r]:{...i,isOpen:a,activeTabId:o,expanded:s,touchedAt:Date.now()}}},Z=(e,t,n,r)=>{let i=e.contextPanelByDirectory[t],a=i?.tabs.find(e=>e.id===i.activeTabId);return a?.mode===`file`&&a.targetPath===n?!0:e.mainTabGuard?.(`files`,r)??!0},Q=n()(i(r((t,n)=>({theme:`system`,isMultiRunLauncherOpen:!1,isSidebarOpen:!0,sidebarWidth:N,hasManuallyResizedLeftSidebar:!1,isRightSidebarOpen:!1,rightSidebarWidth:360,hasManuallyResizedRightSidebar:!1,rightSidebarTab:`git`,contextPanelByDirectory:{},contextToolDiffByDirectory:{},sessionWorkspacePanelById:{},contextPanelsOpenBeforeRightSidebarCollapse:[],isBottomTerminalOpen:!1,isBottomTerminalExpanded:!1,bottomTerminalHeight:300,hasManuallyResizedBottomTerminal:!1,isSessionSwitcherOpen:!1,isSessionDropdownOpen:!1,activeMainTab:`chat`,mainTabGuard:null,sidebarOpenBeforeFullscreenTab:null,pendingDiffFile:null,pendingDiffStaged:!1,pendingDiffScope:null,pendingDiffLine:null,pendingDiagramFile:null,pendingFileNavigation:null,pendingFileFocusPath:null,pendingFileViewerMode:null,isMobile:!1,isCommandPaletteOpen:!1,isHelpDialogOpen:!1,isAboutDialogOpen:!1,isOpenCodeStatusDialogOpen:!1,openCodeStatusText:``,isSessionCreateDialogOpen:!1,isScheduledTasksDialogOpen:!1,isArchivedSessionsDialogOpen:!1,isSettingsDialogOpen:!1,isNewWorktreeDialogOpen:!1,isModelSelectorOpen:!1,isAgentSelectorOpen:!1,isModelSelectorInstant:!1,isAgentSelectorInstant:!1,sidebarSection:`sessions`,settingsPage:`home`,settingsHasOpenedOnce:!1,settingsProjectsSelectedId:null,settingsRemoteInstancesSelectedId:null,eventStreamStatus:`idle`,eventStreamHint:null,showReasoningTraces:!0,sessionTitleRefreshEnabled:!0,sessionGoalEnabled:!0,sessionGoalDefaultBudgetEnabled:!1,sessionGoalDefaultBudget:2e5,collapsibleThinkingBlocks:!0,chatRenderMode:`sorted`,activityRenderMode:`collapsed`,showDeletionDialog:!0,autoDeleteEnabled:!1,autoDeleteAfterDays:30,sessionRetentionAction:`archive`,autoDeleteLastRunAt:null,messageLimit:200,fontSize:100,codeFontSize:100,globalDraftStarters:null,terminalFontSize:13,editorFontSize:13,uiFont:fe,monoFont:pe,padding:100,cornerRadius:18,inputBarOffset:0,mobileKeyboardMode:ye(),favoriteModels:[],hiddenModels:[],providerOrder:[],collapsedModelProviders:[],recentModels:[],recentAgents:[],recentEfforts:{},diffLayoutPreference:`inline`,diffFileLayout:{},diffWrapLines:!1,gitChangesViewMode:`tree`,isTimelineDialogOpen:!1,isPromptNavigatorPanelOpen:!1,isImagePreviewOpen:!1,nativeNotificationsEnabled:!1,notificationMode:`hidden-only`,notifyOnSubtasks:!1,dockBadgeEnabled:!0,notifyOnCompletion:!0,notifyOnError:!0,notifyOnQuestion:!0,notifyOnPermission:!0,notifyOnScheduledTasks:!0,notifyOnAssistants:!0,notifyOnGoals:!0,notificationTemplates:{completion:{...O.completion},error:{...O.error},question:{...O.question},subtask:{...O.subtask}},summarizeLastMessage:!1,summaryThreshold:200,summaryLength:100,maxLastMessageLength:250,showTerminalQuickKeysOnDesktop:!1,persistChatDraft:!0,showOpenCodeUpdateNotifications:!0,inputSpellcheckEnabled:!1,wideChatLayoutEnabled:!1,codeBlockLineWrap:!0,showToolFileIcons:!0,showTurnChangedFiles:!0,showExpandedBashTools:!1,showSubagentTaskDetails:!1,timeFormatPreference:`auto`,weekStartPreference:`auto`,desktopWindowControlsPosition:`auto`,mermaidRenderingMode:`svg`,userMessageRenderingMode:`markdown`,collapsibleUserMessages:!0,stickyUserHeader:!1,promptNavigatorEnabled:!1,expandedEditorToolbar:!1,showSplitAssistantMessageActions:!1,showAssistantTps:!0,allowPromptingSubagentSessions:!1,isMobileSessionStatusBarCollapsed:!1,mobileSessionPanelOpen:!1,mobileSessionFilterProjectId:null,otaChannelOverride:null,isExpandedInput:!1,workStatusPanelEnabled:!0,workStatusHiddenSections:[],workStatusSectionOrder:[],workStatusExpandedSections:{},workStatusScrollTop:0,workStatusPanelVisible:!1,workStatusPanelFits:!1,workStatusOverlayOpen:!1,reportUsage:!1,shortcutOverrides:{},fileEditorKeymap:`default`,setTheme:e=>{t({theme:e}),n().applyTheme()},toggleSidebar:()=>{t(e=>{let t=!e.isSidebarOpen;return t&&!e.hasManuallyResizedLeftSidebar?{isSidebarOpen:t,sidebarWidth:N}:{isSidebarOpen:t}})},setSidebarOpen:e=>{t(t=>t.isSidebarOpen===e?e&&!t.hasManuallyResizedLeftSidebar&&t.sidebarWidth!==N?{isSidebarOpen:e,sidebarWidth:N}:t:e&&!t.hasManuallyResizedLeftSidebar?{isSidebarOpen:e,sidebarWidth:N}:{isSidebarOpen:e})},setSidebarWidth:e=>{t({sidebarWidth:e,hasManuallyResizedLeftSidebar:!0})},toggleRightSidebar:()=>{t(e=>{if(e.isRightSidebarOpen){let t=Object.entries(e.contextPanelByDirectory).filter(([,e])=>e.isOpen&&e.tabs.length>0).map(([e])=>e);return{isRightSidebarOpen:!1,contextPanelByDirectory:t.length===0?e.contextPanelByDirectory:Object.fromEntries(Object.entries(e.contextPanelByDirectory).map(([e,n])=>[e,t.includes(e)?{...n,isOpen:!1}:n])),contextPanelsOpenBeforeRightSidebarCollapse:t}}let t=e.contextPanelsOpenBeforeRightSidebarCollapse.length===0?e.contextPanelByDirectory:Object.fromEntries(Object.entries(e.contextPanelByDirectory).map(([t,n])=>[t,e.contextPanelsOpenBeforeRightSidebarCollapse.includes(t)&&n.tabs.length>0?{...n,isOpen:!0}:n]));return e.hasManuallyResizedRightSidebar?{isRightSidebarOpen:!0,contextPanelByDirectory:t,contextPanelsOpenBeforeRightSidebarCollapse:[]}:{isRightSidebarOpen:!0,rightSidebarWidth:360,contextPanelByDirectory:t,contextPanelsOpenBeforeRightSidebarCollapse:[]}})},setRightSidebarOpen:e=>{t(t=>t.isRightSidebarOpen===e?t:{isRightSidebarOpen:e,rightSidebarWidth:e&&!t.hasManuallyResizedRightSidebar&&t.rightSidebarWidth!==360?360:t.rightSidebarWidth})},setRightSidebarWidth:e=>{t({rightSidebarWidth:Math.min(860,Math.max(360,e)),hasManuallyResizedRightSidebar:!0})},setRightSidebarTab:e=>{t({rightSidebarTab:e})},syncWorkspacePanelsForSessionSwitch:({previousSessionId:e,previousDirectory:n,nextSessionId:r,nextDirectory:i})=>{let a=typeof e==`string`?e.trim():``,o=typeof r==`string`?r.trim():``;a!==o&&t(e=>{let t=e.sessionWorkspacePanelById;a&&(t={...t,[a]:Ie(e,n)});let r=o?t[o]:void 0,s=Le(e.contextPanelByDirectory,i,r),c=I((n||``).trim()),l=I((i||``).trim()),u=s;if(c&&c!==l){let e=u[c];e?.isOpen&&(u={...u,[c]:{...e,isOpen:!1,touchedAt:Date.now()}})}let d=r?r.isRightSidebarOpen:!1,f=r?.rightSidebarTab??e.rightSidebarTab;return{sessionWorkspacePanelById:Fe(t,De),contextPanelByDirectory:u,isRightSidebarOpen:d,rightSidebarTab:f,contextPanelsOpenBeforeRightSidebarCollapse:[]}})},openContextPanelTab:(e,n)=>{let r=I((e||``).trim());r&&t(e=>{let t=e.contextPanelByDirectory[r],i=J(t),a={...e.contextPanelByDirectory,[r]:je(i,n)};if(n.mode===`diff`||n.mode===`file-diff`){let t={...e.contextToolDiffByDirectory};return delete t[r],{contextPanelByDirectory:X(a,20),contextToolDiffByDirectory:t}}return{contextPanelByDirectory:X(a,20)}})},openContextDiff:(e,t,r=!1,i=null,a,o,s)=>{let c=I((e||``).trim()),l=(t||``).trim();if(!c||!l)return;let u=B(i)??(r?`staged`:`working`);n().openContextPanelTab(c,{mode:`diff`,targetPath:l,stagedDiff:u===`staged`,diffScope:u,diffTargetLine:a,diffTurnMessageId:o,diffSessionId:s})},openContextToolDiff:(e,n,r,i,a,o)=>{let s=I((e||``).trim()),c=(n||``).trim(),l=r.flatMap(e=>{let t=R(e.path),n=typeof e.patch==`string`?e.patch:``;return t&&n.trim()?[{path:t,patch:n}]:[]});if(!s||!c||l.length===0)return;let u={mode:`diff`,targetPath:c,stagedDiff:!1,diffScope:`turn`,diffTargetLine:i,diffTurnMessageId:a,diffSessionId:o};t(e=>{let t=e.contextPanelByDirectory[s],n=J(t),r=X({...e.contextPanelByDirectory,[s]:je(n,u)},20),i=new Set(Object.keys(r)),o=Object.fromEntries(Object.entries(e.contextToolDiffByDirectory).filter(([e])=>i.has(e)));return o[s]={targetPath:c,patches:l,turnMessageId:V(a)},{contextPanelByDirectory:r,contextToolDiffByDirectory:o}})},openContextFileDiff:(e,t,r=!1,i=null)=>{let a=I((e||``).trim()),o=(t||``).trim();if(!a||!o)return;let s=B(i)??(r?`staged`:`working`);n().openContextPanelTab(a,{mode:`file-diff`,targetPath:o,stagedDiff:s===`staged`,diffScope:s})},openContextFile:(e,t,r)=>{let i=I((e||``).trim()),a=R(t);!i||!a||Z(n(),i,a,()=>n().openContextFile(e,t,r))&&(n().openContextPanelTab(i,{mode:`file`,targetPath:a,fileNotice:G(r?.fileNotice)}),n().setPendingFileFocusPath(a),n().setPendingFileNavigation(null),n().setPendingFileViewerMode(r?.viewerMode??null))},openContextFileAtLine:(e,t,r,i)=>{let a=I((e||``).trim()),o=R(t),s=Number.isFinite(r)?Math.max(1,Math.trunc(r)):1,c=Number.isFinite(i)?Math.max(1,Math.trunc(i)):1;!a||!o||Z(n(),a,o,()=>n().openContextFileAtLine(e,t,r,i))&&(n().openContextPanelTab(a,{mode:`file`,targetPath:o}),n().setPendingFileFocusPath(null),n().setPendingFileNavigation({path:o,line:s,column:c}))},openContextOverview:e=>{let t=I((e||``).trim());t&&n().openContextPanelTab(t,{mode:`context`})},openContextPreview:(e,t)=>{let r=I((e||``).trim()),i=(t||``).trim();if(!r||!i)return;let a=null;try{let e=new URL(i);(e.protocol===`http:`||e.protocol===`https:`)&&(a=e.host||e.hostname||`Preview`)}catch{}n().openContextPanelTab(r,{mode:`preview`,targetPath:i,dedupeKey:i,label:a})},openContextBrowser:(e,t=``)=>{let r=I((e||``).trim());if(!r)return;let i=typeof t==`string`&&t.trim().length>0?t.trim():``;n().openContextPanelTab(r,{mode:`browser`,targetPath:i,dedupeKey:`desktop-browser`,label:`Browser`})},setContextPanelTabTargetPath:(e,n,r)=>{let i=I((e||``).trim()),a=(n||``).trim();!i||!a||t(e=>{let t=e.contextPanelByDirectory[i];return t?{contextPanelByDirectory:{...e.contextPanelByDirectory,[i]:Pe(t,a,r)}}:e})},setActiveContextPanelTab:(e,r)=>{let i=I((e||``).trim()),a=(r||``).trim();if(!i||!a)return;let o=n().contextPanelByDirectory[i]?.tabs.find(e=>e.id===a);o?.mode===`file`&&!Z(n(),i,o.targetPath,()=>n().setActiveContextPanelTab(e,r))||t(e=>{let t=e.contextPanelByDirectory[i],n=J(t);return!n.tabs.some(e=>e.id===a)||n.activeTabId===a&&n.isOpen?e:{contextPanelByDirectory:X({...e.contextPanelByDirectory,[i]:{...n,isOpen:!0,activeTabId:a,touchedAt:Date.now(),tabs:n.tabs.map(e=>e.id===a?{...e,touchedAt:Date.now()}:e)}},20)}})},reorderContextPanelTabs:(e,n,r)=>{let i=I((e||``).trim()),a=(n||``).trim(),o=(r||``).trim();!i||!a||!o||t(e=>{let t=e.contextPanelByDirectory[i],n=J(t);if(!n.tabs.some(e=>e.id===a)||!n.tabs.some(e=>e.id===o))return e;let r=Ne(n,a,o);return r.tabs===n.tabs?e:{contextPanelByDirectory:X({...e.contextPanelByDirectory,[i]:r},20)}})},closeContextPanelTab:(e,n)=>{let r=I((e||``).trim()),i=(n||``).trim();!r||!i||t(e=>{let t=e.contextPanelByDirectory[r],n=J(t);if(!n.tabs.some(e=>e.id===i))return e;let a={...e.contextPanelByDirectory,[r]:Me(n,i)};if(i===`diff`){let t={...e.contextToolDiffByDirectory};return delete t[r],{contextPanelByDirectory:X(a,20),contextToolDiffByDirectory:t}}return{contextPanelByDirectory:X(a,20)}})},closeActiveContextPanelTab:e=>{let t=I((e||``).trim());if(!t)return!1;let r=n().contextPanelByDirectory[t];if(!r?.isOpen||r.tabs.length===0)return!1;let i=q(r.tabs,r.activeTabId);return i?(n().closeContextPanelTab(t,i),!0):!1},closeContextPanel:e=>{let n=I((e||``).trim());n&&t(e=>{let t=e.contextPanelByDirectory[n];return!t||!t.isOpen?e:{contextPanelByDirectory:X({...e.contextPanelByDirectory,[n]:{...J(t),isOpen:!1}},20)}})},toggleContextPanelExpanded:e=>{let n=I((e||``).trim());n&&t(e=>{let t=e.contextPanelByDirectory[n],r=J(t);return{contextPanelByDirectory:X({...e.contextPanelByDirectory,[n]:{...r,expanded:!r.expanded}},20)}})},setContextPanelWidth:(e,n)=>{let r=I((e||``).trim());r&&t(e=>{let t=e.contextPanelByDirectory[r],i=J(t);return{contextPanelByDirectory:X({...e.contextPanelByDirectory,[r]:{...i,width:L(n)}},20)}})},toggleBottomTerminal:()=>{t(e=>{let t=!e.isBottomTerminalOpen;return t&&typeof window<`u`?{isBottomTerminalOpen:t,bottomTerminalHeight:Math.floor(window.innerHeight*.32),hasManuallyResizedBottomTerminal:!1}:{isBottomTerminalOpen:t}})},setBottomTerminalOpen:e=>{t(t=>{if(t.isBottomTerminalOpen===e){if(!e)return t;if(!t.hasManuallyResizedBottomTerminal&&typeof window<`u`){let n=Math.floor(window.innerHeight*.32);return t.bottomTerminalHeight===n&&t.hasManuallyResizedBottomTerminal===!1?t:{isBottomTerminalOpen:e,bottomTerminalHeight:n,hasManuallyResizedBottomTerminal:!1}}return t}return e&&typeof window<`u`?{isBottomTerminalOpen:e,bottomTerminalHeight:Math.floor(window.innerHeight*.32),hasManuallyResizedBottomTerminal:!1}:{isBottomTerminalOpen:e}})},setBottomTerminalExpanded:e=>{t({isBottomTerminalExpanded:e})},setBottomTerminalHeight:e=>{t({bottomTerminalHeight:e,hasManuallyResizedBottomTerminal:!0})},setSessionSwitcherOpen:e=>{n().isSessionSwitcherOpen!==e&&t({isSessionSwitcherOpen:e})},setSessionDropdownOpen:e=>{n().isSessionDropdownOpen!==e&&t({isSessionDropdownOpen:e})},setMainTabGuard:e=>{n().mainTabGuard!==e&&t({mainTabGuard:e})},setActiveMainTab:e=>{let r=n().mainTabGuard;return r&&!r(e)?!1:(P.set(F(),e),t({activeMainTab:e}),!0)},prepareForRuntimeSwitch:e=>{P.set(F(e),n().activeMainTab),t({contextToolDiffByDirectory:{}})},restoreForRuntimeSwitch:e=>{t({activeMainTab:P.get(F(e))??`chat`})},setPendingDiffFile:(e,n=!1,r=null,i)=>{t({pendingDiffFile:e,pendingDiffStaged:e?n:!1,pendingDiffScope:e?r:null,pendingDiffLine:e&&typeof i==`number`&&Number.isFinite(i)?Math.max(1,Math.trunc(i)):null})},setPendingDiagramFile:e=>{t({pendingDiagramFile:e})},setPendingFileNavigation:e=>{t({pendingFileNavigation:e})},setPendingFileFocusPath:e=>{t({pendingFileFocusPath:e})},setPendingFileViewerMode:e=>{t({pendingFileViewerMode:e})},navigateToDiff:(e,r=!1,i=null,a)=>{let o=n().mainTabGuard;o&&!o(`diff`)||t({pendingDiffFile:e,pendingDiffStaged:r,pendingDiffScope:i,pendingDiffLine:typeof a==`number`&&Number.isFinite(a)?Math.max(1,Math.trunc(a)):null,activeMainTab:`diff`})},consumePendingDiffFile:()=>{let{pendingDiffFile:e}=n();return e&&t({pendingDiffFile:null,pendingDiffStaged:!1,pendingDiffScope:null,pendingDiffLine:null}),e},navigateToDiagram:e=>{let r=n().mainTabGuard;r&&!r(`diagram`)||t({pendingDiagramFile:e,activeMainTab:`diagram`})},consumePendingDiagramFile:()=>{let{pendingDiagramFile:e}=n();return e&&t({pendingDiagramFile:null}),e},setIsMobile:e=>{t({isMobile:e})},toggleCommandPalette:()=>{t(e=>({isCommandPaletteOpen:!e.isCommandPaletteOpen}))},setCommandPaletteOpen:e=>{t({isCommandPaletteOpen:e})},toggleHelpDialog:()=>{t(e=>({isHelpDialogOpen:!e.isHelpDialogOpen}))},setHelpDialogOpen:e=>{t({isHelpDialogOpen:e})},setAboutDialogOpen:e=>{t({isAboutDialogOpen:e})},setOpenCodeStatusDialogOpen:e=>{t({isOpenCodeStatusDialogOpen:e})},setOpenCodeStatusText:e=>{t({openCodeStatusText:e})},setSessionCreateDialogOpen:e=>{t({isSessionCreateDialogOpen:e})},setScheduledTasksDialogOpen:e=>{t({isScheduledTasksDialogOpen:e})},setArchivedSessionsDialogOpen:e=>{t({isArchivedSessionsDialogOpen:e})},setSettingsDialogOpen:e=>{t(t=>e?t.settingsHasOpenedOnce?{isSettingsDialogOpen:!0}:{isSettingsDialogOpen:!0,settingsHasOpenedOnce:!0}:{isSettingsDialogOpen:!1})},setNewWorktreeDialogOpen:e=>{t({isNewWorktreeDialogOpen:e})},setModelSelectorOpen:(e,n)=>{t(t=>e?{isModelSelectorOpen:!0,isAgentSelectorOpen:!1,isModelSelectorInstant:n?.instant===!0}:{isModelSelectorOpen:!1,isModelSelectorInstant:n?.instant===!0||n?.instant!==!1&&t.isModelSelectorInstant})},setAgentSelectorOpen:(e,n)=>{t(t=>e?{isAgentSelectorOpen:!0,isModelSelectorOpen:!1,isAgentSelectorInstant:n?.instant===!0}:{isAgentSelectorOpen:!1,isAgentSelectorInstant:n?.instant!==!1&&t.isAgentSelectorInstant})},setSidebarSection:e=>{t({sidebarSection:e})},setSettingsPage:e=>{t({settingsPage:e})},setSettingsProjectsSelectedId:e=>{t({settingsProjectsSelectedId:e})},setSettingsRemoteInstancesSelectedId:e=>{t({settingsRemoteInstancesSelectedId:e})},setEventStreamStatus:(e,n)=>{t({eventStreamStatus:e,eventStreamHint:n??null})},setShowReasoningTraces:n=>{t({showReasoningTraces:n}),e(n)},setSessionTitleRefreshEnabled:e=>{t({sessionTitleRefreshEnabled:e})},setSessionGoalEnabled:e=>{t({sessionGoalEnabled:e})},setSessionGoalDefaultBudgetEnabled:e=>{t({sessionGoalDefaultBudgetEnabled:e})},setSessionGoalDefaultBudget:e=>{t({sessionGoalDefaultBudget:e})},setCollapsibleThinkingBlocks:e=>{t({collapsibleThinkingBlocks:e})},setChatRenderMode:e=>{t({chatRenderMode:e})},setActivityRenderMode:e=>{t({activityRenderMode:e})},setShowDeletionDialog:e=>{t({showDeletionDialog:e})},setAutoDeleteEnabled:e=>{t({autoDeleteEnabled:e})},setAutoDeleteAfterDays:e=>{t({autoDeleteAfterDays:Math.max(1,Math.min(365,e))})},setSessionRetentionAction:e=>{t({sessionRetentionAction:e})},setAutoDeleteLastRunAt:e=>{t({autoDeleteLastRunAt:e})},setMessageLimit:e=>{t({messageLimit:Math.max(10,Math.min(500,Math.round(e)))})},setFontSize:e=>{t({fontSize:Math.max(50,Math.min(200,e))}),n().applyTypography()},setCodeFontSize:e=>{t({codeFontSize:Math.max(50,Math.min(200,e))}),n().applyTypography()},setGlobalDraftStarters:e=>{t({globalDraftStarters:e})},setTerminalFontSize:e=>{t({terminalFontSize:Math.max(9,Math.min(52,Math.round(e)))})},setEditorFontSize:e=>{t({editorFontSize:Math.max(9,Math.min(32,Math.round(e)))})},setUiFont:e=>{t({uiFont:e})},setMonoFont:e=>{t({monoFont:e})},setPadding:e=>{t({padding:Math.max(50,Math.min(200,e))}),n().applyPadding()},setCornerRadius:e=>{t({cornerRadius:e})},applyTypography:()=>{let{fontSize:e,codeFontSize:t}=n(),r=document.documentElement,i=e/100,a=t/100,o=typeof document<`u`&&v(r),s=Object.keys(g);if(i===1&&a===1){for(let e of s)r.style.removeProperty(_(e));return}for(let e of s){let t=ce(e,{mobile:o}),n=parseFloat(t);if(!Number.isFinite(n))continue;let s=e===`code`?a:i;if(s===1){r.style.removeProperty(_(e));continue}if(o){let t=n*16*s;r.style.setProperty(_(e),`calc(${Math.round(t*1e3)/1e3} * var(--dpt))`)}else r.style.setProperty(_(e),`${n*s}rem`)}},applyPadding:()=>{let{padding:e}=n(),t=document.documentElement,r=e/100;if(r===1){t.style.removeProperty(`--user-padding-scale`),t.style.removeProperty(`--line-height-tight`),t.style.removeProperty(`--line-height-normal`),t.style.removeProperty(`--line-height-relaxed`),t.style.removeProperty(`--line-height-loose`);return}let i=Math.sqrt(r);t.style.setProperty(`--user-padding-scale`,i.toString());let a=1+(r-1)*.15;t.style.setProperty(`--line-height-tight`,(1.25*a).toFixed(3)),t.style.setProperty(`--line-height-normal`,(1.5*a).toFixed(3)),t.style.setProperty(`--line-height-relaxed`,(1.625*a).toFixed(3)),t.style.setProperty(`--line-height-loose`,(2*a).toFixed(3))},setDiffLayoutPreference:e=>{t({diffLayoutPreference:e})},setDiffFileLayout:(e,n)=>{t(t=>({diffFileLayout:{...t.diffFileLayout,[e]:n}}))},setDiffWrapLines:e=>{t({diffWrapLines:e})},setGitChangesViewMode:e=>{t({gitChangesViewMode:e})},setInputBarOffset:e=>{t({inputBarOffset:e})},setMobileKeyboardMode:e=>{t(t=>t.mobileKeyboardMode===e?t:{mobileKeyboardMode:e})},toggleFavoriteModel:(e,n,r)=>{t(t=>t.favoriteModels.some(t=>t.providerID===e&&t.modelID===n)?{favoriteModels:t.favoriteModels.filter(t=>t.providerID!==e||t.modelID!==n)}:{favoriteModels:[r===void 0?{providerID:e,modelID:n}:{providerID:e,modelID:n,variant:r},...t.favoriteModels]})},reorderFavoriteModel:(e,n,r,i)=>{t(t=>{let a=t.favoriteModels.findIndex(t=>t.providerID===e&&t.modelID===n),o=t.favoriteModels.findIndex(e=>e.providerID===r&&e.modelID===i);if(a===-1||o===-1||a===o)return t;let s=t.favoriteModels.slice(),[c]=s.splice(a,1);return c?(s.splice(o,0,c),{favoriteModels:s}):t})},setProviderOrder:e=>{t(t=>{let n=e.filter(e=>typeof e==`string`&&e.length>0),r=t.providerOrder;return r.length===n.length&&r.every((e,t)=>e===n[t])?t:{providerOrder:n}})},toggleHiddenModel:(e,n)=>{t(t=>t.hiddenModels.some(t=>t.providerID===e&&t.modelID===n)?{hiddenModels:t.hiddenModels.filter(t=>t.providerID!==e||t.modelID!==n)}:{hiddenModels:[{providerID:e,modelID:n},...t.hiddenModels]})},isHiddenModel:(e,t)=>{let{hiddenModels:r}=n();return r.some(n=>n.providerID===e&&n.modelID===t)},hideAllModels:(e,n)=>{t(t=>{let r=t.hiddenModels.filter(t=>t.providerID!==e);return{hiddenModels:[...n.filter(e=>typeof e==`string`&&e.length>0).map(t=>({providerID:e,modelID:t})),...r]}})},showAllModels:e=>{t(t=>({hiddenModels:t.hiddenModels.filter(t=>t.providerID!==e)}))},toggleModelProviderCollapsed:e=>{let n=typeof e==`string`?e.trim():``;n&&t(e=>e.collapsedModelProviders.includes(n)?{collapsedModelProviders:e.collapsedModelProviders.filter(e=>e!==n)}:{collapsedModelProviders:[...e.collapsedModelProviders,n]})},setModelProvidersCollapsed:(e,n)=>{let r=Array.from(new Set(e.filter(e=>typeof e==`string`).map(e=>e.trim()).filter(Boolean)));r.length!==0&&t(e=>{let t=new Set(r),i=e.collapsedModelProviders.filter(e=>!t.has(e));return{collapsedModelProviders:n?[...i,...r]:i}})},isFavoriteModel:(e,t)=>{let{favoriteModels:r}=n();return r.some(n=>n.providerID===e&&n.modelID===t)},addRecentModel:(e,n,r)=>{t(t=>{let i=[r===void 0?{providerID:e,modelID:n}:{providerID:e,modelID:n,variant:r},...t.recentModels.filter(t=>t.providerID!==e||t.modelID!==n)].slice(0,5),a=t.favoriteModels.findIndex(t=>t.providerID===e&&t.modelID===n);if(a===-1)return{recentModels:i};let o=t.favoriteModels[a];if(o.variant===r)return{recentModels:i};let s=r===void 0?{providerID:o.providerID,modelID:o.modelID}:{providerID:o.providerID,modelID:o.modelID,variant:r},c=t.favoriteModels.slice();return c[a]=s,{recentModels:i,favoriteModels:c}})},addRecentAgent:e=>{let n=typeof e==`string`?e.trim():``;n&&t(e=>{if(e.recentAgents.includes(n))return e;let t=e.recentAgents;return{recentAgents:[n,...t].slice(0,5)}})},addRecentEffort:(e,n,r)=>{let i=typeof e==`string`?e.trim():``,a=typeof n==`string`?n.trim():``;if(!i||!a)return;let o=`${i}/${a}`,s=typeof r==`string`&&r.trim().length>0?r.trim():`default`;t(e=>{let t=e.recentEfforts[o]??[];if(t.includes(s))return e;let n=t;return{recentEfforts:{...e.recentEfforts,[o]:[s,...n].slice(0,5)}}})},updateProportionalSidebarWidths:()=>{typeof window>`u`||t(e=>{let t={};if(e.isBottomTerminalOpen&&!e.hasManuallyResizedBottomTerminal){let n=Math.floor(window.innerHeight*.32);e.bottomTerminalHeight!==n&&(t.bottomTerminalHeight=n)}return Object.keys(t).length>0?t:e})},applyTheme:()=>{let{theme:e}=n(),t=document.documentElement;if(t.classList.remove(`light`,`dark`),e===`system`){let e=window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`;t.classList.add(e)}else t.classList.add(e)},setMultiRunLauncherOpen:e=>{t({isMultiRunLauncherOpen:e})},openMultiRunLauncher:()=>{t({isMultiRunLauncherOpen:!0,isSessionSwitcherOpen:!1})},setTimelineDialogOpen:e=>{t({isTimelineDialogOpen:e})},setPromptNavigatorPanelOpen:e=>{t({isPromptNavigatorPanelOpen:e})},togglePromptNavigatorPanel:()=>{t(e=>({isPromptNavigatorPanelOpen:!e.isPromptNavigatorPanelOpen}))},setImagePreviewOpen:e=>{t({isImagePreviewOpen:e})},setNativeNotificationsEnabled:e=>{t({nativeNotificationsEnabled:e})},setNotificationMode:e=>{t({notificationMode:e})},setShowTerminalQuickKeysOnDesktop:e=>{t({showTerminalQuickKeysOnDesktop:e})},setNotifyOnSubtasks:e=>{t({notifyOnSubtasks:e})},setDockBadgeEnabled:e=>{t({dockBadgeEnabled:e})},setNotifyOnCompletion:e=>{t({notifyOnCompletion:e})},setNotifyOnError:e=>{t({notifyOnError:e})},setNotifyOnQuestion:e=>{t({notifyOnQuestion:e})},setNotifyOnPermission:e=>{t({notifyOnPermission:e})},setNotifyOnScheduledTasks:e=>{t({notifyOnScheduledTasks:e})},setNotifyOnAssistants:e=>{t({notifyOnAssistants:e})},setNotifyOnGoals:e=>{t({notifyOnGoals:e})},setNotificationTemplates:e=>{t({notificationTemplates:e})},setSummarizeLastMessage:e=>{t({summarizeLastMessage:e})},setSummaryThreshold:e=>{t({summaryThreshold:e})},setSummaryLength:e=>{t({summaryLength:e})},setMaxLastMessageLength:e=>{t({maxLastMessageLength:e})},setPersistChatDraft:e=>{t({persistChatDraft:e})},setShowOpenCodeUpdateNotifications:e=>{t({showOpenCodeUpdateNotifications:e})},setInputSpellcheckEnabled:e=>{t({inputSpellcheckEnabled:e})},setWideChatLayoutEnabled:e=>{t({wideChatLayoutEnabled:e})},setCodeBlockLineWrap:e=>{t({codeBlockLineWrap:e})},setShowToolFileIcons:e=>{t({showToolFileIcons:e})},setShowTurnChangedFiles:e=>{t({showTurnChangedFiles:e})},setShowExpandedBashTools:e=>{t({showExpandedBashTools:e})},setShowSubagentTaskDetails:e=>{t({showSubagentTaskDetails:e})},setTimeFormatPreference:e=>{t({timeFormatPreference:e})},setWeekStartPreference:e=>{t({weekStartPreference:e})},setDesktopWindowControlsPosition:e=>{t({desktopWindowControlsPosition:e})},setMermaidRenderingMode:e=>{t({mermaidRenderingMode:e})},setUserMessageRenderingMode:e=>{t({userMessageRenderingMode:e})},setCollapsibleUserMessages:e=>{t({collapsibleUserMessages:e})},setStickyUserHeader:e=>{t({stickyUserHeader:e})},setPromptNavigatorEnabled:e=>{t({promptNavigatorEnabled:e})},setExpandedEditorToolbar:e=>{t({expandedEditorToolbar:e})},setShowSplitAssistantMessageActions:e=>{t({showSplitAssistantMessageActions:e})},setShowAssistantTps:e=>{t({showAssistantTps:e})},setAllowPromptingSubagentSessions:e=>{t({allowPromptingSubagentSessions:e})},setIsMobileSessionStatusBarCollapsed:e=>{t({isMobileSessionStatusBarCollapsed:e})},setMobileSessionPanelOpen:e=>{t({mobileSessionPanelOpen:e})},setMobileSessionFilterProjectId:e=>{t({mobileSessionFilterProjectId:e})},setOtaChannelOverride:e=>{t({otaChannelOverride:e})},setReportUsage:e=>{t({reportUsage:e})},viewPagerPage:`center`,setViewPagerPage:e=>{t({viewPagerPage:e}),t(e===`left`?{isSessionSwitcherOpen:!0,isRightSidebarOpen:!1}:e===`right`?{isRightSidebarOpen:!0,isSessionSwitcherOpen:!1}:{isSessionSwitcherOpen:!1,isRightSidebarOpen:!1})},setShortcutOverride:(e,n)=>{t(t=>({shortcutOverrides:{...t.shortcutOverrides,[e]:n}}))},clearShortcutOverride:e=>{t(t=>{let n={...t.shortcutOverrides};return delete n[e],{shortcutOverrides:n}})},resetAllShortcutOverrides:()=>{t({shortcutOverrides:{}})},setFileEditorKeymap:e=>{t({fileEditorKeymap:D(e)})},toggleExpandedInput:()=>{t(e=>({isExpandedInput:!e.isExpandedInput}))},setExpandedInput:e=>{t({isExpandedInput:e})},setWorkStatusPanelEnabled:e=>{t({workStatusPanelEnabled:e,workStatusOverlayOpen:!1})},setWorkStatusPanelVisible:e=>{t(t=>t.workStatusPanelVisible===e?t:{workStatusPanelVisible:e})},setWorkStatusPanelFits:e=>{t(t=>t.workStatusPanelFits===e?t:{workStatusPanelFits:e})},setWorkStatusOverlayOpen:e=>{t({workStatusOverlayOpen:e})},setWorkStatusSectionVisible:(e,n)=>{t(t=>{let r=t.workStatusHiddenSections.filter(t=>t!==e);return n||r.push(e),{workStatusHiddenSections:r}})},setWorkStatusHiddenSections:e=>{t({workStatusHiddenSections:e})},setWorkStatusSectionOrder:e=>{t({workStatusSectionOrder:e})},setWorkStatusSectionExpanded:(e,n)=>{t(t=>({workStatusExpandedSections:{...t.workStatusExpandedSections,[e]:n}}))},setWorkStatusScrollTop:e=>{t({workStatusScrollTop:e})}}),{name:`ui-store`,storage:f(),version:13,migrate:(e,t)=>{if(!e||typeof e!=`object`)return e;let n=e;if(ae(n,t),t<11&&n.sidebarWidth===280&&(n.sidebarWidth=N),t<10&&delete n.diffViewMode,t<13&&(delete n.notesPanelHeight,delete n.todoPanelHeight,(n.activeMainTab===`plan`||n.activeMainTab===`context`)&&(n.activeMainTab=`chat`),n.rightSidebarTab===`context`&&(n.rightSidebarTab=`files`)),t<1&&we(n.notificationTemplates)&&(n.notificationTemplates={completion:{...O.completion},error:{...O.error},question:{...O.question},subtask:{...O.subtask}}),t<3){let e=new Set([90,120,180,220]),t=n.memoryLimitHistorical,r=n.memoryLimitActiveSession;typeof t==`number`&&!e.has(t)?n.messageLimit=t:typeof r==`number`&&!e.has(r)&&(n.messageLimit=r),delete n.memoryLimitHistorical,delete n.memoryLimitViewport,delete n.memoryLimitActiveSession}if((typeof n.rightSidebarTab!=`string`||n.rightSidebarTab!==`git`&&n.rightSidebarTab!==`files`&&n.rightSidebarTab!==`browser`)&&(n.rightSidebarTab=`files`),n.contextPanelByDirectory=Y(n.contextPanelByDirectory),t<5)if(!n.shortcutOverrides||typeof n.shortcutOverrides!=`object`)n.shortcutOverrides={};else{let e=n.shortcutOverrides,t={};for(let[n,r]of Object.entries(e))typeof n==`string`&&typeof r==`string`&&(t[n]=r);n.shortcutOverrides=t}return t<6&&(n.contextPanelByDirectory=Y(n.contextPanelByDirectory)),t<7&&(n.contextPanelByDirectory=Y(n.contextPanelByDirectory)),t<8&&n.gitChangesViewMode!==`flat`&&n.gitChangesViewMode!==`tree`&&(n.gitChangesViewMode=`tree`),n.fileEditorKeymap=D(n.fileEditorKeymap),n},partialize:e=>({theme:e.theme,isSidebarOpen:e.isSidebarOpen,sidebarWidth:e.sidebarWidth,isRightSidebarOpen:e.isRightSidebarOpen,rightSidebarWidth:e.rightSidebarWidth,rightSidebarTab:e.rightSidebarTab,contextPanelByDirectory:Object.fromEntries(Object.entries(e.contextPanelByDirectory).map(([e,t])=>{let n=t.tabs.filter(e=>e.mode!==`btw`);return[e,{...t,tabs:n,activeTabId:q(n,t.activeTabId),isOpen:t.isOpen&&n.length>0}]})),isBottomTerminalOpen:e.isBottomTerminalOpen,isBottomTerminalExpanded:e.isBottomTerminalExpanded,bottomTerminalHeight:e.bottomTerminalHeight,isSessionSwitcherOpen:e.isSessionSwitcherOpen,activeMainTab:e.activeMainTab,sidebarSection:e.sidebarSection,settingsPage:e.settingsPage,settingsHasOpenedOnce:e.settingsHasOpenedOnce,settingsProjectsSelectedId:e.settingsProjectsSelectedId,settingsRemoteInstancesSelectedId:e.settingsRemoteInstancesSelectedId,isSessionCreateDialogOpen:e.isSessionCreateDialogOpen,showReasoningTraces:e.showReasoningTraces,sessionTitleRefreshEnabled:e.sessionTitleRefreshEnabled,sessionGoalEnabled:e.sessionGoalEnabled,sessionGoalDefaultBudgetEnabled:e.sessionGoalDefaultBudgetEnabled,sessionGoalDefaultBudget:e.sessionGoalDefaultBudget,collapsibleThinkingBlocks:e.collapsibleThinkingBlocks,chatRenderMode:e.chatRenderMode,activityRenderMode:e.activityRenderMode,showDeletionDialog:e.showDeletionDialog,autoDeleteEnabled:e.autoDeleteEnabled,autoDeleteAfterDays:e.autoDeleteAfterDays,sessionRetentionAction:e.sessionRetentionAction,autoDeleteLastRunAt:e.autoDeleteLastRunAt,messageLimit:e.messageLimit,fontSize:e.fontSize,codeFontSize:e.codeFontSize,globalDraftStarters:e.globalDraftStarters,terminalFontSize:e.terminalFontSize,editorFontSize:e.editorFontSize,uiFont:e.uiFont,monoFont:e.monoFont,padding:e.padding,cornerRadius:e.cornerRadius,favoriteModels:e.favoriteModels,hiddenModels:e.hiddenModels,providerOrder:e.providerOrder,collapsedModelProviders:e.collapsedModelProviders,recentModels:e.recentModels,recentAgents:e.recentAgents,recentEfforts:e.recentEfforts,diffLayoutPreference:e.diffLayoutPreference,diffWrapLines:e.diffWrapLines,gitChangesViewMode:e.gitChangesViewMode,nativeNotificationsEnabled:e.nativeNotificationsEnabled,notificationMode:e.notificationMode,showTerminalQuickKeysOnDesktop:e.showTerminalQuickKeysOnDesktop,notifyOnSubtasks:e.notifyOnSubtasks,dockBadgeEnabled:e.dockBadgeEnabled,notifyOnCompletion:e.notifyOnCompletion,notifyOnError:e.notifyOnError,notifyOnQuestion:e.notifyOnQuestion,notifyOnPermission:e.notifyOnPermission,notifyOnScheduledTasks:e.notifyOnScheduledTasks,notifyOnAssistants:e.notifyOnAssistants,notifyOnGoals:e.notifyOnGoals,notificationTemplates:e.notificationTemplates,summarizeLastMessage:e.summarizeLastMessage,summaryThreshold:e.summaryThreshold,summaryLength:e.summaryLength,maxLastMessageLength:e.maxLastMessageLength,persistChatDraft:e.persistChatDraft,showOpenCodeUpdateNotifications:e.showOpenCodeUpdateNotifications,inputSpellcheckEnabled:e.inputSpellcheckEnabled,wideChatLayoutEnabled:e.wideChatLayoutEnabled,workStatusPanelEnabled:e.workStatusPanelEnabled,workStatusHiddenSections:e.workStatusHiddenSections,workStatusSectionOrder:e.workStatusSectionOrder,workStatusExpandedSections:e.workStatusExpandedSections,workStatusScrollTop:e.workStatusScrollTop,codeBlockLineWrap:e.codeBlockLineWrap,showToolFileIcons:e.showToolFileIcons,showTurnChangedFiles:e.showTurnChangedFiles,showExpandedBashTools:e.showExpandedBashTools,showSubagentTaskDetails:e.showSubagentTaskDetails,timeFormatPreference:e.timeFormatPreference,weekStartPreference:e.weekStartPreference,desktopWindowControlsPosition:e.desktopWindowControlsPosition,mermaidRenderingMode:e.mermaidRenderingMode,userMessageRenderingMode:e.userMessageRenderingMode,collapsibleUserMessages:e.collapsibleUserMessages,stickyUserHeader:e.stickyUserHeader,promptNavigatorEnabled:e.promptNavigatorEnabled,expandedEditorToolbar:e.expandedEditorToolbar,showSplitAssistantMessageActions:e.showSplitAssistantMessageActions,showAssistantTps:e.showAssistantTps,allowPromptingSubagentSessions:e.allowPromptingSubagentSessions,isMobileSessionStatusBarCollapsed:e.isMobileSessionStatusBarCollapsed,mobileSessionFilterProjectId:e.mobileSessionFilterProjectId,otaChannelOverride:e.otaChannelOverride,shortcutOverrides:e.shortcutOverrides,fileEditorKeymap:e.fileEditorKeymap})}),{name:`ui-store`}));e(Q.getState().showReasoningTraces);var $=Q.persist;$?.hasHydrated?.()&&e(Q.getState().showReasoningTraces),typeof $?.onFinishHydration==`function`&&$.onFinishHydration(()=>{e(Q.getState().showReasoningTraces)});export{h as C,ie as S,b as _,E as a,f as b,de as c,x as d,ue as f,se as g,g as h,T as i,pe as l,me as m,Q as n,_e as o,he as p,be as r,S as s,I as t,fe as u,y as v,ne as x,v as y};
|
|
1
|
+
import{g as e,r as t}from"./runtime-switch-BJM2k_uH.js";import{a as n,i as r,r as i}from"./vendor-zustand-B4dlGEM2.js";var a=null,o=null,s=null,c=new Set,l=!1,u=e=>{if(c.add(e),l||typeof window>`u`)return;l=!0;let t=()=>{for(let e of c)e()};try{window.addEventListener(`pagehide`,t,{capture:!0}),window.addEventListener(`beforeunload`,t,{capture:!0}),window.addEventListener(`visibilitychange`,()=>{typeof document<`u`&&document.visibilityState===`hidden`&&t()}),window.addEventListener(`freeze`,t)}catch{}},d=(e,t)=>{let n;try{n=e()}catch{return}let r=new Map,i=new Set,a,o=()=>{if(a=void 0,r.size===0&&i.size===0)return!0;let e=Array.from(r.entries()),o=Array.from(i);r.clear(),i.clear();let c=!0;for(let[i,a]of e)try{n.setItem(i,JSON.stringify(a,t?.replacer))}catch(e){console.error(`Failed to persist deferred storage value`,e),r.set(i,a),c=!1}for(let e of o)try{n.removeItem(e)}catch(t){console.error(`Failed to remove deferred storage value`,t),i.add(e),c=!1}return c||s(),c},s=()=>{a===void 0&&(a=setTimeout(o,0))};return u(o),{getItem:e=>{if(r.has(e))return r.get(e)??null;if(i.has(e))return null;let a=e=>e===null?null:JSON.parse(e,t?.reviver),o=n.getItem(e);return o instanceof Promise?o.then(a):a(o)},setItem:(e,t)=>{r.set(e,t),i.delete(e),s()},removeItem:e=>{r.delete(e),i.add(e),s()},flush:o}},f=e=>d(()=>h(),e),ee=e=>{let t=new Map,n=new Set,r,i=()=>{if(r=void 0,t.size===0&&n.size===0)return;let i=Array.from(t.entries()),a=Array.from(n);t.clear(),n.clear();for(let[t,n]of i)try{e.setItem(t,n)}catch(e){console.error(`Failed to persist deferred storage value`,e)}for(let t of a)try{e.removeItem(t)}catch(e){console.error(`Failed to remove deferred storage value`,e)}},a=()=>{r===void 0&&(r=setTimeout(i,0))};return u(i),{getItem:r=>t.has(r)?t.get(r)??null:n.has(r)?null:e.getItem(r),setItem:(e,r)=>{t.set(e,r),n.delete(e),a()},removeItem:e=>{t.delete(e),n.add(e),a()},clear:()=>{t.clear(),n.clear(),r!==void 0&&(clearTimeout(r),r=void 0),e.clear()},key:t=>e.key(t),get length(){return e.length}}},p=e=>{if(typeof window>`u`)return null;try{return window[e]??null}catch{return null}},m=()=>{let e=new Map;return{getItem:t=>e.get(t)??null,setItem:(t,n)=>{e.set(t,n)},removeItem:t=>{e.delete(t)},clear:()=>{e.clear()},key:t=>Array.from(e.keys())[t]??null,get length(){return e.size}}},te=()=>{let e=p(`localStorage`);if(!e)return m();let t=m(),n=!0,r=()=>{n=!1};return{getItem:i=>{if(n)try{let t=e.getItem(i);if(t!==null)return t}catch{r()}return t.getItem(i)},setItem:(i,a)=>{if(n)try{e.setItem(i,a),t.removeItem(i);return}catch{r();try{e.removeItem(i)}catch{}}t.setItem(i,a)},removeItem:n=>{try{e.removeItem(n)}catch{r()}t.removeItem(n)},clear:()=>{try{e.clear()}catch{r()}t.clear()},key:i=>{if(n)try{return e.key(i)}catch{r()}return t.key(i)},get length(){if(n)try{return e.length+t.length}catch{r()}return t.length}}},h=()=>(a||=te(),a),ne=()=>(s||=ee(h()),s),re=()=>{let e=p(`sessionStorage`);if(!e)return m();let t=m(),n=!0,r=()=>{n=!1};return{getItem:i=>{if(n)try{let t=e.getItem(i);if(t!==null)return t}catch{r()}return t.getItem(i)},setItem:(i,a)=>{if(n)try{e.setItem(i,a),t.removeItem(i);return}catch{r();try{e.removeItem(i)}catch{}}t.setItem(i,a)},removeItem:n=>{try{e.removeItem(n)}catch{r()}t.removeItem(n)},clear:()=>{try{e.clear()}catch{r()}t.clear()},key:i=>{if(n)try{return e.key(i)}catch{r()}return t.key(i)},get length(){if(n)try{return e.length+t.length}catch{r()}return t.length}}},ie=()=>(o||=re(),o);function ae(e,t){return t>=12?e:(e.chatRenderMode===`live`&&(e.chatRenderMode=`sorted`),e.activityRenderMode===`summary`&&(e.activityRenderMode=`collapsed`),e.showTurnChangedFiles===!1&&(e.showTurnChangedFiles=!0),e)}var g={markdown:`0.875rem`,code:`0.75rem`,uiHeader:`0.9375rem`,uiLabel:`0.8750rem`,meta:`0.875rem`,micro:`0.875rem`},oe={markdown:`0.9375rem`,code:`0.8125rem`,uiHeader:`0.875rem`,uiLabel:`0.8125rem`,meta:`0.8125rem`,micro:`0.75rem`},se={markdown:`0.9063rem`,code:`0.8750rem`,uiHeader:`0.9063rem`,uiLabel:`0.8438rem`,meta:`0.8438rem`,micro:`0.7813rem`};function _(e){return`--text-${e.replace(/([A-Z])/g,`-$1`).toLowerCase()}`}function v(e=document.documentElement){return e.classList.contains(`mobile-pointer`)&&!e.classList.contains(`desktop-runtime`)}function ce(e,t){return t?.mobile?oe[e]:g[e]}var y={semanticMarkdown:{fontSize:`var(--text-markdown)`},semanticCode:{fontSize:`var(--text-code)`},uiHeader:{fontSize:`var(--text-ui-header)`},uiLabel:{fontSize:`var(--text-ui-label)`},meta:{fontSize:`var(--text-meta)`},micro:{fontSize:`var(--text-micro)`},ui:{button:{fontSize:`var(--text-ui-label)`,lineHeight:`var(--ui-button-line-height)`,letterSpacing:`var(--ui-button-letter-spacing)`,fontWeight:`var(--ui-button-font-weight)`},buttonSmall:{fontSize:`var(--text-meta)`,lineHeight:`var(--ui-button-small-line-height)`,letterSpacing:`var(--ui-button-small-letter-spacing)`,fontWeight:`var(--ui-button-small-font-weight)`},buttonLarge:{fontSize:`var(--text-ui-label)`,lineHeight:`var(--ui-button-large-line-height)`,letterSpacing:`var(--ui-button-large-letter-spacing)`,fontWeight:`var(--ui-button-large-font-weight)`},label:{fontSize:`var(--text-meta)`,lineHeight:`var(--ui-label-line-height)`,letterSpacing:`var(--ui-label-letter-spacing)`,fontWeight:`var(--ui-label-font-weight)`},caption:{fontSize:`var(--text-micro)`,lineHeight:`var(--ui-caption-line-height)`,letterSpacing:`var(--ui-caption-letter-spacing)`,fontWeight:`var(--ui-caption-font-weight)`},badge:{fontSize:`var(--text-micro)`,lineHeight:`var(--ui-badge-line-height)`,letterSpacing:`var(--ui-badge-letter-spacing)`,fontWeight:`var(--ui-badge-font-weight)`},tooltip:{fontSize:`var(--text-micro)`,lineHeight:`var(--ui-tooltip-line-height)`,letterSpacing:`var(--ui-tooltip-letter-spacing)`,fontWeight:`var(--ui-tooltip-font-weight)`},input:{fontSize:`var(--text-ui-label)`,lineHeight:`var(--ui-input-line-height)`,letterSpacing:`var(--ui-input-letter-spacing)`,fontWeight:`var(--ui-input-font-weight)`},helperText:{fontSize:`var(--text-meta)`,lineHeight:`var(--ui-helper-text-line-height)`,letterSpacing:`var(--ui-helper-text-letter-spacing)`,fontWeight:`var(--ui-helper-text-font-weight)`}},code:{inline:{fontSize:`var(--text-code)`,lineHeight:`var(--code-inline-line-height)`,letterSpacing:`var(--code-inline-letter-spacing)`,fontWeight:`var(--code-inline-font-weight)`},block:{fontSize:`var(--text-code)`,lineHeight:`var(--code-block-line-height)`,letterSpacing:`var(--code-block-letter-spacing)`,fontWeight:`var(--code-block-font-weight)`},lineNumbers:{fontSize:`var(--text-micro)`,lineHeight:`var(--code-line-numbers-line-height)`,letterSpacing:`var(--code-line-numbers-letter-spacing)`,fontWeight:`var(--code-line-numbers-font-weight)`}},markdown:{body:{fontSize:`var(--text-markdown)`,lineHeight:`var(--markdown-body-line-height)`,letterSpacing:`var(--markdown-body-letter-spacing)`,fontWeight:`var(--markdown-body-font-weight)`},bodySmall:{fontSize:`var(--text-meta)`,lineHeight:`var(--markdown-body-small-line-height)`,letterSpacing:`var(--markdown-body-small-letter-spacing)`,fontWeight:`var(--markdown-body-small-font-weight)`},bodyLarge:{fontSize:`var(--text-markdown)`,lineHeight:`var(--markdown-body-large-line-height)`,letterSpacing:`var(--markdown-body-large-letter-spacing)`,fontWeight:`var(--markdown-body-large-font-weight)`},blockquote:{fontSize:`var(--text-markdown)`,lineHeight:`var(--markdown-blockquote-line-height)`,letterSpacing:`var(--markdown-blockquote-letter-spacing)`,fontWeight:`var(--markdown-blockquote-font-weight)`},list:{fontSize:`var(--text-markdown)`,lineHeight:`var(--markdown-list-line-height)`,letterSpacing:`var(--markdown-list-letter-spacing)`,fontWeight:`var(--markdown-list-font-weight)`},link:{fontSize:`var(--text-markdown)`,lineHeight:`var(--markdown-link-line-height)`,letterSpacing:`var(--markdown-link-letter-spacing)`,fontWeight:`var(--markdown-link-font-weight)`},code:{fontSize:`var(--text-code)`,lineHeight:`var(--markdown-code-line-height)`,letterSpacing:`var(--markdown-code-letter-spacing)`,fontWeight:`var(--markdown-code-font-weight)`},codeBlock:{fontSize:`var(--text-code)`,lineHeight:`var(--markdown-code-block-line-height)`,letterSpacing:`var(--markdown-code-block-letter-spacing)`,fontWeight:`var(--markdown-code-block-font-weight)`}},tool:{collapsed:{fontSize:`var(--text-code)`,lineHeight:`var(--code-block-line-height)`,letterSpacing:`var(--code-block-letter-spacing)`,fontWeight:`var(--code-block-font-weight)`},popup:{fontSize:`var(--text-code)`,lineHeight:`var(--code-block-line-height)`,letterSpacing:`var(--code-block-letter-spacing)`,fontWeight:`var(--code-block-font-weight)`},inline:{fontSize:`var(--text-code)`,lineHeight:`var(--code-inline-line-height)`,letterSpacing:`var(--code-inline-letter-spacing)`,fontWeight:`var(--code-inline-font-weight)`}}},b={padding:{collapsed:`0.375rem`,popup:`0.75rem`,popupContainer:`1rem`},backgroundOpacity:{muted:`30`,mutedAlt:`50`},getCollapsedStyles:()=>({...y.tool.collapsed,background:`transparent`,backgroundColor:`transparent`,margin:0,padding:b.padding.collapsed,borderRadius:0}),getPopupStyles:()=>({...y.tool.popup,background:`transparent`,backgroundColor:`transparent`,margin:0,padding:b.padding.popup,borderRadius:`0.75rem`}),getPopupContainerStyles:()=>({...y.tool.popup,background:`transparent`,backgroundColor:`transparent`,margin:0,padding:b.padding.popupContainer,borderRadius:`0.5rem`,overflowX:`auto`}),getInlineStyles:()=>({...y.tool.inline})},x=[{id:`inter`,label:`Inter`,description:`Modern UI sans with excellent readability at small sizes.`,stack:`"Inter", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,source:{family:`Inter`,packageName:`@fontsource/inter`,filePrefix:`inter`,weights:[400,500,600]}},{id:`geist-sans`,label:`Geist Sans`,description:`Crisp sans-serif with a technical interface feel.`,stack:`"Geist Sans", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,source:{family:`Geist Sans`,packageName:`@fontsource/geist-sans`,filePrefix:`geist-sans`,weights:[400,500,600]}},{id:`atkinson-hyperlegible`,label:`Atkinson Hyperlegible`,description:`Accessibility-focused sans-serif optimized for character distinction.`,stack:`"Atkinson Hyperlegible", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,source:{family:`Atkinson Hyperlegible`,packageName:`@fontsource/atkinson-hyperlegible`,filePrefix:`atkinson-hyperlegible`,weights:[400,700]}},{id:`source-sans-3`,label:`Source Sans 3`,description:`Adobe sans-serif tuned for clean, readable interfaces.`,stack:`"Source Sans 3", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,source:{family:`Source Sans 3`,packageName:`@fontsource/source-sans-3`,filePrefix:`source-sans-3`,weights:[400,500,600]}},{id:`roboto`,label:`Roboto`,description:`Familiar Material-style sans-serif with broad UI usage.`,stack:`"Roboto", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,source:{family:`Roboto`,packageName:`@fontsource/roboto`,filePrefix:`roboto`,weights:[400,500,600]}},{id:`noto-sans`,label:`Noto Sans`,description:`Readable sans-serif with strong international coverage.`,stack:`"Noto Sans", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,source:{family:`Noto Sans`,packageName:`@fontsource/noto-sans`,filePrefix:`noto-sans`,weights:[400,500,600]}},{id:`dm-sans`,label:`DM Sans`,description:`Modern product UI sans-serif with friendly proportions.`,stack:`"DM Sans", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,source:{family:`DM Sans`,packageName:`@fontsource/dm-sans`,filePrefix:`dm-sans`,weights:[400,500,600]}},{id:`manrope`,label:`Manrope`,description:`Polished geometric sans-serif for modern app interfaces.`,stack:`"Manrope", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,source:{family:`Manrope`,packageName:`@fontsource/manrope`,filePrefix:`manrope`,weights:[400,500,600]}},{id:`system`,label:`System`,description:`Native operating system interface font.`,stack:`-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif`}],S=[{id:`jetbrains-mono`,label:`JetBrains Mono`,description:`Developer-focused monospace with strong punctuation clarity.`,stack:`"JetBrains Mono", "SFMono-Regular", "Menlo", monospace`,source:{family:`JetBrains Mono`,packageName:`@fontsource/jetbrains-mono`,filePrefix:`jetbrains-mono`,weights:[400,500,600]}},{id:`fira-code`,label:`Fira Code`,description:`Readable coding font with ligature support.`,stack:`"Fira Code", "SFMono-Regular", "Menlo", monospace`,source:{family:`Fira Code`,packageName:`@fontsource/fira-code`,filePrefix:`fira-code`,weights:[400,500,600]}},{id:`geist-mono`,label:`Geist Mono`,description:`Sharp monospace pair for Geist Sans.`,stack:`"Geist Mono", "SFMono-Regular", "Menlo", monospace`,source:{family:`Geist Mono`,packageName:`@fontsource/geist-mono`,filePrefix:`geist-mono`,weights:[400,500,600]}},{id:`commit-mono`,label:`Commit Mono`,description:`Code-oriented monospace with polished editor ergonomics.`,stack:`"Commit Mono", "SFMono-Regular", "Menlo", monospace`,source:{family:`Commit Mono`,packageName:`@fontsource/commit-mono`,filePrefix:`commit-mono`,weights:[400,500,600]}},{id:`source-code-pro`,label:`Source Code Pro`,description:`Adobe monospace designed for source code readability.`,stack:`"Source Code Pro", "SFMono-Regular", "Menlo", monospace`,source:{family:`Source Code Pro`,packageName:`@fontsource/source-code-pro`,filePrefix:`source-code-pro`,weights:[400,500,600]}},{id:`cascadia-code`,label:`Cascadia Code`,description:`Microsoft coding font popular in terminals and editors.`,stack:`"Cascadia Code", "SFMono-Regular", "Menlo", monospace`,source:{family:`Cascadia Code`,packageName:`@fontsource/cascadia-code`,filePrefix:`cascadia-code`,weights:[400,500,600]}},{id:`roboto-mono`,label:`Roboto Mono`,description:`Neutral monospace companion to Roboto.`,stack:`"Roboto Mono", "SFMono-Regular", "Menlo", monospace`,source:{family:`Roboto Mono`,packageName:`@fontsource/roboto-mono`,filePrefix:`roboto-mono`,weights:[400,500,600]}},{id:`iosevka`,label:`Iosevka`,description:`Compact monospace for dense code and terminal layouts.`,stack:`"Iosevka", "SFMono-Regular", "Menlo", monospace`,source:{family:`Iosevka`,packageName:`@fontsource/iosevka`,filePrefix:`iosevka`,weights:[400,500,600]}},{id:`system-mono`,label:`System Mono`,description:`Native operating system monospace font.`,stack:`ui-monospace, "SFMono-Regular", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace`}],le=e=>Object.fromEntries(e.map(e=>[e.id,e])),ue=le(x),de=le(S),fe=`system`,pe=`system-mono`,me=e=>typeof e==`string`&&e in ue,he=e=>typeof e==`string`&&e in de,C=`openchamber.mobileKeyboardMode`,ge=`meta[name="viewport"]`,w=`width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover`,_e=()=>!0;function T(e,t=`resize-content`){return e===`native`||e===`resize-content`?e:t}var ve=e=>T(e)===`resize-content`?`${w}, interactive-widget=resizes-content`:w,ye=()=>{if(typeof window>`u`)return`resize-content`;try{return T(localStorage.getItem(C))}catch{return`resize-content`}},E=e=>{let t=T(e);if(typeof window<`u`)try{t===`resize-content`?localStorage.removeItem(C):localStorage.setItem(C,t)}catch{}return t},be=e=>{let t=E(e);if(typeof document>`u`)return t;document.documentElement.setAttribute(`data-oc-mobile-keyboard-mode`,t);let n=document.querySelector(ge);if(n instanceof HTMLMetaElement){let e=ve(t);n.getAttribute(`content`)!==e&&n.setAttribute(`content`,e)}return t};function D(e){return e===`vim`?`vim`:`default`}var xe={completion:{title:`{agent_name} is ready`,message:`{last_message}`},error:{title:`Tool error`,message:`{last_message}`},question:{title:`{agent_name} needs input`,message:`{last_message}`},subtask:{title:`Subtask complete`,message:`{last_message}`}},Se={completion:{title:`Task completed`,message:`{session_name}`},error:{title:`Something went wrong`,message:`{session_name}`},question:{title:`Needs your answer`,message:`{session_name}`},subtask:{title:`Task completed`,message:`{session_name}`}},Ce={completion:{title:`{agent_name} is ready`,message:`{model_name} completed the task`},error:{title:`Tool error`,message:`{last_message}`},question:{title:`Input needed`,message:`{last_message}`},subtask:{title:`{agent_name} is ready`,message:`{model_name} completed the task`}},O={completion:{title:``,message:``},error:{title:``,message:``},question:{title:``,message:``},subtask:{title:``,message:``}},k=(e,t)=>e?e.title===t.title&&e.message===t.message:!1,we=e=>{if(!e||typeof e!=`object`)return!1;let t=e,n=e=>k(t.completion,e.completion)&&k(t.error,e.error)&&k(t.question,e.question)&&k(t.subtask,e.subtask);return n(xe)||n(Se)||n(Ce)},A=380,Te=380,Ee=1400,j=12,De=40,M=120,N=260,P=new Map,F=e=>(e??t()).trim()||`default`,I=e=>{if(!e)return``;let t=e.replace(/\\/g,`/`),n=t.startsWith(`//`),r=t.replace(/\/+$/g,``);return r=r.replace(/\/+/g,`/`),n&&!r.startsWith(`//`)&&(r=`/${r}`),r===``?t.startsWith(`/`)?`/`:``:r},L=e=>Number.isFinite(e)?Math.min(Ee,Math.max(Te,Math.round(e))):A,R=e=>{if(typeof e!=`string`)return null;let t=e.trim();return t?t.replace(/\\/g,`/`):null},z=e=>{if(typeof e!=`string`)return null;let t=e.trim();return t?t.length>M?t.slice(0,M):t:null},B=e=>e===`working`||e===`staged`||e===`turn`?e:null,V=e=>typeof e==`string`&&e.trim()||null,H=e=>typeof e==`string`&&e.trim()||null,Oe=(e,t)=>(e===`file`||e===`preview`)&&t||e,U=(e,t,n)=>{if(e===`diff`||e===`file-diff`)return e;if(typeof n==`string`){let e=n.trim();if(e)return e}return Oe(e,t)},W=(e,t)=>t===e?e:`${e}:${t}`,G=e=>e===`turn-diff-outside-workspace`?e:null,ke=e=>{let t=R(e.targetPath),n=U(e.mode,t,e.dedupeKey);return{id:W(e.mode,n),mode:e.mode,targetPath:t,dedupeKey:n,label:z(e.label),sessionTitleFallback:z(e.sessionTitleFallback),readOnly:e.readOnly===!0,stagedDiff:e.stagedDiff===!0,diffScope:B(e.diffScope)??(e.stagedDiff===!0?`staged`:`working`),diffTargetLine:typeof e.diffTargetLine==`number`&&Number.isFinite(e.diffTargetLine)?Math.max(1,Math.trunc(e.diffTargetLine)):null,diffTurnMessageId:V(e.diffTurnMessageId),diffSessionId:H(e.diffSessionId),fileNotice:e.mode===`file`?G(e.fileNotice):null,touchedAt:Date.now()}},Ae=(e,t,n)=>{if(e.length<=t)return e;let r=[...e].sort((e,t)=>e.touchedAt-t.touchedAt).filter(e=>e.id!==n),i=e.length-t;if(i<=0||r.length===0)return e.slice(-t);let a=new Set(r.slice(0,i).map(e=>e.id));return e.filter(e=>!a.has(e.id))},K=e=>{if(!Array.isArray(e))return[];let t=[],n=new Set;for(let r of e){if(!r||typeof r!=`object`)continue;let e=r;if(e.mode!==`diff`&&e.mode!==`file-diff`&&e.mode!==`file`&&e.mode!==`context`&&e.mode!==`chat`&&e.mode!==`preview`&&e.mode!==`browser`&&e.mode!==`btw`)continue;let i=R(typeof e.targetPath==`string`?e.targetPath:null),a=U(e.mode,i,typeof e.dedupeKey==`string`?e.dedupeKey:null),o=W(e.mode,a);!o||n.has(o)||(n.add(o),t.push({id:o,mode:e.mode,targetPath:i,dedupeKey:a,label:z(typeof e.label==`string`?e.label:null),sessionTitleFallback:z(typeof e.sessionTitleFallback==`string`?e.sessionTitleFallback:null),readOnly:e.readOnly===!0,stagedDiff:e.stagedDiff===!0,diffScope:B(e.diffScope)??(e.stagedDiff===!0?`staged`:`working`),diffTargetLine:typeof e.diffTargetLine==`number`&&Number.isFinite(e.diffTargetLine)?Math.max(1,Math.trunc(e.diffTargetLine)):null,diffTurnMessageId:V(e.diffTurnMessageId),diffSessionId:H(e.diffSessionId),fileNotice:e.mode===`file`?G(e.fileNotice):null,touchedAt:typeof e.touchedAt==`number`&&Number.isFinite(e.touchedAt)?e.touchedAt:Date.now()}))}return t},q=(e,t)=>t&&e.some(e=>e.id===t)?t:e.length===0?null:e[e.length-1].id,J=e=>{if(e){let t=K(e.tabs),n=q(t,e.activeTabId);return{...e,tabs:t,activeTabId:n,touchedAt:Date.now()}}return{isOpen:!1,expanded:!1,tabs:[],activeTabId:null,width:A,touchedAt:Date.now()}},je=(e,t)=>{let n=ke(t),r=e.tabs.findIndex(e=>e.id===n.id),i=r===-1?[...e.tabs,n]:e.tabs.map((e,t)=>t===r?{...e,diffTargetLine:n.diffTargetLine,diffTurnMessageId:n.diffTurnMessageId,diffSessionId:n.diffSessionId,mode:n.mode,targetPath:n.targetPath||e.targetPath,dedupeKey:n.dedupeKey,label:n.label,sessionTitleFallback:n.sessionTitleFallback||e.sessionTitleFallback,stagedDiff:n.stagedDiff,diffScope:n.diffScope,readOnly:n.readOnly,fileNotice:n.mode===`file`?n.fileNotice:null,touchedAt:Date.now()}:e),a=n.id,o=Ae(i,j,a);return{...e,isOpen:!0,tabs:o,activeTabId:q(o,a),touchedAt:Date.now()}},Me=(e,t)=>{let n=e.tabs.filter(e=>e.id!==t),r=e.activeTabId===t?n[n.length-1]?.id??null:q(n,e.activeTabId);return{...e,tabs:n,activeTabId:r,isOpen:n.length>0&&e.isOpen,touchedAt:Date.now()}},Ne=(e,t,n)=>{if(t===n)return e;let r=e.tabs.findIndex(e=>e.id===t),i=e.tabs.findIndex(e=>e.id===n);if(r===-1||i===-1)return e;let a=[...e.tabs],[o]=a.splice(r,1);return o?(a.splice(i,0,o),{...e,tabs:a,touchedAt:Date.now()}):e},Pe=(e,t,n)=>({...e,tabs:e.tabs.map(e=>e.id===t?{...e,targetPath:n}:e)}),Y=e=>{if(!e||typeof e!=`object`)return{};let t=e,n={};for(let[e,r]of Object.entries(t)){let t=I(e);if(!t||!r||typeof r!=`object`)continue;let i=r,a=K(i.tabs).filter(e=>e.mode!==`btw`),o=typeof i.activeTabId==`string`?i.activeTabId:null;a.length===0&&(i.mode===`diff`||i.mode===`file-diff`||i.mode===`file`||i.mode===`context`||i.mode===`chat`)&&(a=[ke({mode:i.mode,targetPath:typeof i.targetPath==`string`?i.targetPath:null,dedupeKey:typeof i.dedupeKey==`string`?i.dedupeKey:null,label:typeof i.label==`string`?i.label:null})],o=a[0]?.id??null);let s=q(a,o),c=Ae(a,j,s);n[t]={isOpen:i.isOpen===!0&&c.length>0,expanded:i.expanded===!0,tabs:c,activeTabId:q(c,s),width:L(typeof i.width==`number`?i.width:A),touchedAt:typeof i.touchedAt==`number`&&Number.isFinite(i.touchedAt)?i.touchedAt:Date.now()}}return n},X=(e,t)=>{let n=Object.entries(e);if(n.length<=t)return e;n.sort((e,t)=>(t[1]?.touchedAt??0)-(e[1]?.touchedAt??0));let r={};for(let[e,i]of n.slice(0,t))r[e]=i;return r},Fe=(e,t)=>{let n=Object.entries(e);if(n.length<=t)return e;n.sort((e,t)=>(t[1]?.touchedAt??0)-(e[1]?.touchedAt??0));let r={};for(let[e,i]of n.slice(0,t))r[e]=i;return r},Ie=(e,t)=>{let n=I((t||``).trim())||null,r=n?e.contextPanelByDirectory[n]:void 0;return{isRightSidebarOpen:e.isRightSidebarOpen,rightSidebarTab:e.rightSidebarTab,contextPanelDirectory:n,contextPanelIsOpen:!!(r?.isOpen&&r.tabs.length>0),contextPanelActiveTabId:r?.activeTabId??null,contextPanelExpanded:!!r?.expanded,touchedAt:Date.now()}},Le=(e,t,n)=>{let r=I((t||``).trim());if(!r)return e;let i=e[r];if(!i)return e;let a=!!(n?.contextPanelIsOpen&&n.contextPanelDirectory===r&&i.tabs.length>0),o=a?q(i.tabs,n?.contextPanelActiveTabId??i.activeTabId):i.activeTabId,s=a?!!n?.contextPanelExpanded:i.expanded;return i.isOpen===a&&i.activeTabId===o&&i.expanded===s?e:{...e,[r]:{...i,isOpen:a,activeTabId:o,expanded:s,touchedAt:Date.now()}}},Z=(e,t,n,r)=>{let i=e.contextPanelByDirectory[t],a=i?.tabs.find(e=>e.id===i.activeTabId);return a?.mode===`file`&&a.targetPath===n?!0:e.mainTabGuard?.(`files`,r)??!0},Q=n()(i(r((t,n)=>({theme:`system`,isMultiRunLauncherOpen:!1,isSidebarOpen:!0,sidebarWidth:N,hasManuallyResizedLeftSidebar:!1,isRightSidebarOpen:!1,rightSidebarWidth:360,hasManuallyResizedRightSidebar:!1,rightSidebarTab:`git`,contextPanelByDirectory:{},contextToolDiffByDirectory:{},sessionWorkspacePanelById:{},contextPanelsOpenBeforeRightSidebarCollapse:[],isBottomTerminalOpen:!1,isBottomTerminalExpanded:!1,bottomTerminalHeight:300,hasManuallyResizedBottomTerminal:!1,isSessionSwitcherOpen:!1,isSessionDropdownOpen:!1,activeMainTab:`chat`,mainTabGuard:null,sidebarOpenBeforeFullscreenTab:null,pendingDiffFile:null,pendingDiffStaged:!1,pendingDiffScope:null,pendingDiffLine:null,pendingDiagramFile:null,pendingFileNavigation:null,pendingFileFocusPath:null,pendingFileViewerMode:null,isMobile:!1,isCommandPaletteOpen:!1,isHelpDialogOpen:!1,isAboutDialogOpen:!1,isOpenCodeStatusDialogOpen:!1,openCodeStatusText:``,isSessionCreateDialogOpen:!1,isScheduledTasksDialogOpen:!1,isArchivedSessionsDialogOpen:!1,isSettingsDialogOpen:!1,isNewWorktreeDialogOpen:!1,isModelSelectorOpen:!1,isAgentSelectorOpen:!1,isModelSelectorInstant:!1,isAgentSelectorInstant:!1,sidebarSection:`sessions`,settingsPage:`home`,settingsHasOpenedOnce:!1,settingsProjectsSelectedId:null,settingsRemoteInstancesSelectedId:null,eventStreamStatus:`idle`,eventStreamHint:null,showReasoningTraces:!0,sessionTitleRefreshEnabled:!0,sessionGoalEnabled:!0,sessionGoalDefaultBudgetEnabled:!1,sessionGoalDefaultBudget:2e5,collapsibleThinkingBlocks:!0,chatRenderMode:`sorted`,activityRenderMode:`collapsed`,showDeletionDialog:!0,autoDeleteEnabled:!1,autoDeleteAfterDays:30,sessionRetentionAction:`archive`,autoDeleteLastRunAt:null,messageLimit:200,fontSize:100,codeFontSize:100,globalDraftStarters:null,terminalFontSize:13,editorFontSize:13,uiFont:fe,monoFont:pe,padding:100,cornerRadius:18,inputBarOffset:0,mobileKeyboardMode:ye(),favoriteModels:[],hiddenModels:[],providerOrder:[],collapsedModelProviders:[],recentModels:[],recentAgents:[],recentEfforts:{},diffLayoutPreference:`inline`,diffFileLayout:{},diffWrapLines:!1,gitChangesViewMode:`tree`,isTimelineDialogOpen:!1,isPromptNavigatorPanelOpen:!1,isImagePreviewOpen:!1,nativeNotificationsEnabled:!1,notificationMode:`hidden-only`,notifyOnSubtasks:!1,dockBadgeEnabled:!0,notifyOnCompletion:!0,notifyOnError:!0,notifyOnQuestion:!0,notifyOnPermission:!0,notifyOnScheduledTasks:!0,notifyOnAssistants:!0,notifyOnGoals:!0,notificationTemplates:{completion:{...O.completion},error:{...O.error},question:{...O.question},subtask:{...O.subtask}},summarizeLastMessage:!1,summaryThreshold:200,summaryLength:100,maxLastMessageLength:250,showTerminalQuickKeysOnDesktop:!1,persistChatDraft:!0,showOpenCodeUpdateNotifications:!0,inputSpellcheckEnabled:!1,wideChatLayoutEnabled:!1,codeBlockLineWrap:!0,showToolFileIcons:!0,showTurnChangedFiles:!0,showExpandedBashTools:!1,showSubagentTaskDetails:!1,timeFormatPreference:`auto`,weekStartPreference:`auto`,desktopWindowControlsPosition:`auto`,mermaidRenderingMode:`svg`,userMessageRenderingMode:`markdown`,collapsibleUserMessages:!0,stickyUserHeader:!1,promptNavigatorEnabled:!1,expandedEditorToolbar:!1,showSplitAssistantMessageActions:!1,showAssistantTps:!0,allowPromptingSubagentSessions:!1,isMobileSessionStatusBarCollapsed:!1,mobileSessionPanelOpen:!1,mobileSessionFilterProjectId:null,otaChannelOverride:null,isExpandedInput:!1,workStatusPanelEnabled:!0,workStatusHiddenSections:[],workStatusSectionOrder:[],workStatusExpandedSections:{},workStatusScrollTop:0,workStatusPanelVisible:!1,workStatusPanelFits:!1,workStatusOverlayOpen:!1,reportUsage:!1,shortcutOverrides:{},fileEditorKeymap:`default`,setTheme:e=>{t({theme:e}),n().applyTheme()},toggleSidebar:()=>{t(e=>{let t=!e.isSidebarOpen;return t&&!e.hasManuallyResizedLeftSidebar?{isSidebarOpen:t,sidebarWidth:N}:{isSidebarOpen:t}})},setSidebarOpen:e=>{t(t=>t.isSidebarOpen===e?e&&!t.hasManuallyResizedLeftSidebar&&t.sidebarWidth!==N?{isSidebarOpen:e,sidebarWidth:N}:t:e&&!t.hasManuallyResizedLeftSidebar?{isSidebarOpen:e,sidebarWidth:N}:{isSidebarOpen:e})},setSidebarWidth:e=>{t({sidebarWidth:e,hasManuallyResizedLeftSidebar:!0})},toggleRightSidebar:()=>{t(e=>{if(e.isRightSidebarOpen){let t=Object.entries(e.contextPanelByDirectory).filter(([,e])=>e.isOpen&&e.tabs.length>0).map(([e])=>e);return{isRightSidebarOpen:!1,contextPanelByDirectory:t.length===0?e.contextPanelByDirectory:Object.fromEntries(Object.entries(e.contextPanelByDirectory).map(([e,n])=>[e,t.includes(e)?{...n,isOpen:!1}:n])),contextPanelsOpenBeforeRightSidebarCollapse:t}}let t=e.contextPanelsOpenBeforeRightSidebarCollapse.length===0?e.contextPanelByDirectory:Object.fromEntries(Object.entries(e.contextPanelByDirectory).map(([t,n])=>[t,e.contextPanelsOpenBeforeRightSidebarCollapse.includes(t)&&n.tabs.length>0?{...n,isOpen:!0}:n]));return e.hasManuallyResizedRightSidebar?{isRightSidebarOpen:!0,contextPanelByDirectory:t,contextPanelsOpenBeforeRightSidebarCollapse:[]}:{isRightSidebarOpen:!0,rightSidebarWidth:360,contextPanelByDirectory:t,contextPanelsOpenBeforeRightSidebarCollapse:[]}})},setRightSidebarOpen:e=>{t(t=>t.isRightSidebarOpen===e?t:{isRightSidebarOpen:e,rightSidebarWidth:e&&!t.hasManuallyResizedRightSidebar&&t.rightSidebarWidth!==360?360:t.rightSidebarWidth})},setRightSidebarWidth:e=>{t({rightSidebarWidth:Math.min(860,Math.max(360,e)),hasManuallyResizedRightSidebar:!0})},setRightSidebarTab:e=>{t({rightSidebarTab:e})},syncWorkspacePanelsForSessionSwitch:({previousSessionId:e,previousDirectory:n,nextSessionId:r,nextDirectory:i})=>{let a=typeof e==`string`?e.trim():``,o=typeof r==`string`?r.trim():``;a!==o&&t(e=>{let t=e.sessionWorkspacePanelById;a&&(t={...t,[a]:Ie(e,n)});let r=o?t[o]:void 0,s=Le(e.contextPanelByDirectory,i,r),c=I((n||``).trim()),l=I((i||``).trim()),u=s;if(c&&c!==l){let e=u[c];e?.isOpen&&(u={...u,[c]:{...e,isOpen:!1,touchedAt:Date.now()}})}let d=r?r.isRightSidebarOpen:!1,f=r?.rightSidebarTab??e.rightSidebarTab;return{sessionWorkspacePanelById:Fe(t,De),contextPanelByDirectory:u,isRightSidebarOpen:d,rightSidebarTab:f,contextPanelsOpenBeforeRightSidebarCollapse:[]}})},openContextPanelTab:(e,n)=>{let r=I((e||``).trim());r&&t(e=>{let t=e.contextPanelByDirectory[r],i=J(t),a={...e.contextPanelByDirectory,[r]:je(i,n)};if(n.mode===`diff`||n.mode===`file-diff`){let t={...e.contextToolDiffByDirectory};return delete t[r],{contextPanelByDirectory:X(a,20),contextToolDiffByDirectory:t}}return{contextPanelByDirectory:X(a,20)}})},openContextDiff:(e,t,r=!1,i=null,a,o,s)=>{let c=I((e||``).trim()),l=(t||``).trim();if(!c||!l)return;let u=B(i)??(r?`staged`:`working`);n().openContextPanelTab(c,{mode:`diff`,targetPath:l,stagedDiff:u===`staged`,diffScope:u,diffTargetLine:a,diffTurnMessageId:o,diffSessionId:s})},openContextToolDiff:(e,n,r,i,a,o)=>{let s=I((e||``).trim()),c=(n||``).trim(),l=r.flatMap(e=>{let t=R(e.path),n=typeof e.patch==`string`?e.patch:``;return t&&n.trim()?[{path:t,patch:n}]:[]});if(!s||!c||l.length===0)return;let u={mode:`diff`,targetPath:c,stagedDiff:!1,diffScope:`turn`,diffTargetLine:i,diffTurnMessageId:a,diffSessionId:o};t(e=>{let t=e.contextPanelByDirectory[s],n=J(t),r=X({...e.contextPanelByDirectory,[s]:je(n,u)},20),i=new Set(Object.keys(r)),o=Object.fromEntries(Object.entries(e.contextToolDiffByDirectory).filter(([e])=>i.has(e)));return o[s]={targetPath:c,patches:l,turnMessageId:V(a)},{contextPanelByDirectory:r,contextToolDiffByDirectory:o}})},openContextFileDiff:(e,t,r=!1,i=null)=>{let a=I((e||``).trim()),o=(t||``).trim();if(!a||!o)return;let s=B(i)??(r?`staged`:`working`);n().openContextPanelTab(a,{mode:`file-diff`,targetPath:o,stagedDiff:s===`staged`,diffScope:s})},openContextFile:(e,t,r)=>{let i=I((e||``).trim()),a=R(t);!i||!a||Z(n(),i,a,()=>n().openContextFile(e,t,r))&&(n().openContextPanelTab(i,{mode:`file`,targetPath:a,fileNotice:G(r?.fileNotice)}),n().setPendingFileFocusPath(a),n().setPendingFileNavigation(null),n().setPendingFileViewerMode(r?.viewerMode??null))},openContextFileAtLine:(e,t,r,i)=>{let a=I((e||``).trim()),o=R(t),s=Number.isFinite(r)?Math.max(1,Math.trunc(r)):1,c=Number.isFinite(i)?Math.max(1,Math.trunc(i)):1;!a||!o||Z(n(),a,o,()=>n().openContextFileAtLine(e,t,r,i))&&(n().openContextPanelTab(a,{mode:`file`,targetPath:o}),n().setPendingFileFocusPath(null),n().setPendingFileNavigation({path:o,line:s,column:c}))},openContextOverview:e=>{let t=I((e||``).trim());t&&n().openContextPanelTab(t,{mode:`context`})},openContextPreview:(e,t)=>{let r=I((e||``).trim()),i=(t||``).trim();if(!r||!i)return;let a=null;try{let e=new URL(i);(e.protocol===`http:`||e.protocol===`https:`)&&(a=e.host||e.hostname||`Preview`)}catch{}n().openContextPanelTab(r,{mode:`preview`,targetPath:i,dedupeKey:i,label:a})},openContextBrowser:(e,t=``)=>{let r=I((e||``).trim());if(!r)return;let i=typeof t==`string`&&t.trim().length>0?t.trim():``;n().openContextPanelTab(r,{mode:`browser`,targetPath:i,dedupeKey:`desktop-browser`,label:`Browser`})},setContextPanelTabTargetPath:(e,n,r)=>{let i=I((e||``).trim()),a=(n||``).trim();!i||!a||t(e=>{let t=e.contextPanelByDirectory[i];return t?{contextPanelByDirectory:{...e.contextPanelByDirectory,[i]:Pe(t,a,r)}}:e})},setActiveContextPanelTab:(e,r)=>{let i=I((e||``).trim()),a=(r||``).trim();if(!i||!a)return;let o=n().contextPanelByDirectory[i]?.tabs.find(e=>e.id===a);o?.mode===`file`&&!Z(n(),i,o.targetPath,()=>n().setActiveContextPanelTab(e,r))||t(e=>{let t=e.contextPanelByDirectory[i],n=J(t);return!n.tabs.some(e=>e.id===a)||n.activeTabId===a&&n.isOpen?e:{contextPanelByDirectory:X({...e.contextPanelByDirectory,[i]:{...n,isOpen:!0,activeTabId:a,touchedAt:Date.now(),tabs:n.tabs.map(e=>e.id===a?{...e,touchedAt:Date.now()}:e)}},20)}})},reorderContextPanelTabs:(e,n,r)=>{let i=I((e||``).trim()),a=(n||``).trim(),o=(r||``).trim();!i||!a||!o||t(e=>{let t=e.contextPanelByDirectory[i],n=J(t);if(!n.tabs.some(e=>e.id===a)||!n.tabs.some(e=>e.id===o))return e;let r=Ne(n,a,o);return r.tabs===n.tabs?e:{contextPanelByDirectory:X({...e.contextPanelByDirectory,[i]:r},20)}})},closeContextPanelTab:(e,n)=>{let r=I((e||``).trim()),i=(n||``).trim();!r||!i||t(e=>{let t=e.contextPanelByDirectory[r],n=J(t);if(!n.tabs.some(e=>e.id===i))return e;let a={...e.contextPanelByDirectory,[r]:Me(n,i)};if(i===`diff`){let t={...e.contextToolDiffByDirectory};return delete t[r],{contextPanelByDirectory:X(a,20),contextToolDiffByDirectory:t}}return{contextPanelByDirectory:X(a,20)}})},closeActiveContextPanelTab:e=>{let t=I((e||``).trim());if(!t)return!1;let r=n().contextPanelByDirectory[t];if(!r?.isOpen||r.tabs.length===0)return!1;let i=q(r.tabs,r.activeTabId);return i?(n().closeContextPanelTab(t,i),!0):!1},closeContextPanel:e=>{let n=I((e||``).trim());n&&t(e=>{let t=e.contextPanelByDirectory[n];return!t||!t.isOpen?e:{contextPanelByDirectory:X({...e.contextPanelByDirectory,[n]:{...J(t),isOpen:!1}},20)}})},toggleContextPanelExpanded:e=>{let n=I((e||``).trim());n&&t(e=>{let t=e.contextPanelByDirectory[n],r=J(t);return{contextPanelByDirectory:X({...e.contextPanelByDirectory,[n]:{...r,expanded:!r.expanded}},20)}})},setContextPanelWidth:(e,n)=>{let r=I((e||``).trim());r&&t(e=>{let t=e.contextPanelByDirectory[r],i=J(t);return{contextPanelByDirectory:X({...e.contextPanelByDirectory,[r]:{...i,width:L(n)}},20)}})},toggleBottomTerminal:()=>{t(e=>{let t=!e.isBottomTerminalOpen;return t&&typeof window<`u`?{isBottomTerminalOpen:t,bottomTerminalHeight:Math.floor(window.innerHeight*.32),hasManuallyResizedBottomTerminal:!1}:{isBottomTerminalOpen:t}})},setBottomTerminalOpen:e=>{t(t=>{if(t.isBottomTerminalOpen===e){if(!e)return t;if(!t.hasManuallyResizedBottomTerminal&&typeof window<`u`){let n=Math.floor(window.innerHeight*.32);return t.bottomTerminalHeight===n&&t.hasManuallyResizedBottomTerminal===!1?t:{isBottomTerminalOpen:e,bottomTerminalHeight:n,hasManuallyResizedBottomTerminal:!1}}return t}return e&&typeof window<`u`?{isBottomTerminalOpen:e,bottomTerminalHeight:Math.floor(window.innerHeight*.32),hasManuallyResizedBottomTerminal:!1}:{isBottomTerminalOpen:e}})},setBottomTerminalExpanded:e=>{t({isBottomTerminalExpanded:e})},setBottomTerminalHeight:e=>{t({bottomTerminalHeight:e,hasManuallyResizedBottomTerminal:!0})},setSessionSwitcherOpen:e=>{n().isSessionSwitcherOpen!==e&&t({isSessionSwitcherOpen:e})},setSessionDropdownOpen:e=>{n().isSessionDropdownOpen!==e&&t({isSessionDropdownOpen:e})},setMainTabGuard:e=>{n().mainTabGuard!==e&&t({mainTabGuard:e})},setActiveMainTab:e=>{let r=n().mainTabGuard;return r&&!r(e)?!1:(P.set(F(),e),t({activeMainTab:e}),!0)},prepareForRuntimeSwitch:e=>{P.set(F(e),n().activeMainTab),t({contextToolDiffByDirectory:{}})},restoreForRuntimeSwitch:e=>{t({activeMainTab:P.get(F(e))??`chat`})},setPendingDiffFile:(e,n=!1,r=null,i)=>{t({pendingDiffFile:e,pendingDiffStaged:e?n:!1,pendingDiffScope:e?r:null,pendingDiffLine:e&&typeof i==`number`&&Number.isFinite(i)?Math.max(1,Math.trunc(i)):null})},setPendingDiagramFile:e=>{t({pendingDiagramFile:e})},setPendingFileNavigation:e=>{t({pendingFileNavigation:e})},setPendingFileFocusPath:e=>{t({pendingFileFocusPath:e})},setPendingFileViewerMode:e=>{t({pendingFileViewerMode:e})},navigateToDiff:(e,r=!1,i=null,a)=>{let o=n().mainTabGuard;o&&!o(`diff`)||t({pendingDiffFile:e,pendingDiffStaged:r,pendingDiffScope:i,pendingDiffLine:typeof a==`number`&&Number.isFinite(a)?Math.max(1,Math.trunc(a)):null,activeMainTab:`diff`})},consumePendingDiffFile:()=>{let{pendingDiffFile:e}=n();return e&&t({pendingDiffFile:null,pendingDiffStaged:!1,pendingDiffScope:null,pendingDiffLine:null}),e},navigateToDiagram:e=>{let r=n().mainTabGuard;r&&!r(`diagram`)||t({pendingDiagramFile:e,activeMainTab:`diagram`})},consumePendingDiagramFile:()=>{let{pendingDiagramFile:e}=n();return e&&t({pendingDiagramFile:null}),e},setIsMobile:e=>{t({isMobile:e})},toggleCommandPalette:()=>{t(e=>({isCommandPaletteOpen:!e.isCommandPaletteOpen}))},setCommandPaletteOpen:e=>{t({isCommandPaletteOpen:e})},toggleHelpDialog:()=>{t(e=>({isHelpDialogOpen:!e.isHelpDialogOpen}))},setHelpDialogOpen:e=>{t({isHelpDialogOpen:e})},setAboutDialogOpen:e=>{t({isAboutDialogOpen:e})},setOpenCodeStatusDialogOpen:e=>{t({isOpenCodeStatusDialogOpen:e})},setOpenCodeStatusText:e=>{t({openCodeStatusText:e})},setSessionCreateDialogOpen:e=>{t({isSessionCreateDialogOpen:e})},setScheduledTasksDialogOpen:e=>{t({isScheduledTasksDialogOpen:e})},setArchivedSessionsDialogOpen:e=>{t({isArchivedSessionsDialogOpen:e})},setSettingsDialogOpen:e=>{t(t=>e?t.settingsHasOpenedOnce?{isSettingsDialogOpen:!0}:{isSettingsDialogOpen:!0,settingsHasOpenedOnce:!0}:{isSettingsDialogOpen:!1})},setNewWorktreeDialogOpen:e=>{t({isNewWorktreeDialogOpen:e})},setModelSelectorOpen:(e,n)=>{t(t=>e?{isModelSelectorOpen:!0,isAgentSelectorOpen:!1,isModelSelectorInstant:n?.instant===!0}:{isModelSelectorOpen:!1,isModelSelectorInstant:n?.instant===!0||n?.instant!==!1&&t.isModelSelectorInstant})},setAgentSelectorOpen:(e,n)=>{t(t=>e?{isAgentSelectorOpen:!0,isModelSelectorOpen:!1,isAgentSelectorInstant:n?.instant===!0}:{isAgentSelectorOpen:!1,isAgentSelectorInstant:n?.instant!==!1&&t.isAgentSelectorInstant})},setSidebarSection:e=>{t({sidebarSection:e})},setSettingsPage:e=>{t({settingsPage:e})},setSettingsProjectsSelectedId:e=>{t({settingsProjectsSelectedId:e})},setSettingsRemoteInstancesSelectedId:e=>{t({settingsRemoteInstancesSelectedId:e})},setEventStreamStatus:(e,n)=>{t({eventStreamStatus:e,eventStreamHint:n??null})},setShowReasoningTraces:n=>{t({showReasoningTraces:n}),e(n)},setSessionTitleRefreshEnabled:e=>{t({sessionTitleRefreshEnabled:e})},setSessionGoalEnabled:e=>{t({sessionGoalEnabled:e})},setSessionGoalDefaultBudgetEnabled:e=>{t({sessionGoalDefaultBudgetEnabled:e})},setSessionGoalDefaultBudget:e=>{t({sessionGoalDefaultBudget:e})},setCollapsibleThinkingBlocks:e=>{t({collapsibleThinkingBlocks:e})},setChatRenderMode:e=>{t({chatRenderMode:e})},setActivityRenderMode:e=>{t({activityRenderMode:e})},setShowDeletionDialog:e=>{t({showDeletionDialog:e})},setAutoDeleteEnabled:e=>{t({autoDeleteEnabled:e})},setAutoDeleteAfterDays:e=>{t({autoDeleteAfterDays:Math.max(1,Math.min(365,e))})},setSessionRetentionAction:e=>{t({sessionRetentionAction:e})},setAutoDeleteLastRunAt:e=>{t({autoDeleteLastRunAt:e})},setMessageLimit:e=>{t({messageLimit:Math.max(10,Math.min(500,Math.round(e)))})},setFontSize:e=>{t({fontSize:Math.max(50,Math.min(200,e))}),n().applyTypography()},setCodeFontSize:e=>{t({codeFontSize:Math.max(50,Math.min(200,e))}),n().applyTypography()},setGlobalDraftStarters:e=>{t({globalDraftStarters:e})},setTerminalFontSize:e=>{t({terminalFontSize:Math.max(9,Math.min(52,Math.round(e)))})},setEditorFontSize:e=>{t({editorFontSize:Math.max(9,Math.min(32,Math.round(e)))})},setUiFont:e=>{t({uiFont:e})},setMonoFont:e=>{t({monoFont:e})},setPadding:e=>{t({padding:Math.max(50,Math.min(200,e))}),n().applyPadding()},setCornerRadius:e=>{t({cornerRadius:e})},applyTypography:()=>{let{fontSize:e,codeFontSize:t}=n(),r=document.documentElement,i=e/100,a=t/100,o=typeof document<`u`&&v(r),s=Object.keys(g);if(i===1&&a===1){for(let e of s)r.style.removeProperty(_(e));return}for(let e of s){let t=ce(e,{mobile:o}),n=parseFloat(t);if(!Number.isFinite(n))continue;let s=e===`code`?a:i;if(s===1){r.style.removeProperty(_(e));continue}if(o){let t=n*16*s;r.style.setProperty(_(e),`calc(${Math.round(t*1e3)/1e3} * var(--dpt))`)}else r.style.setProperty(_(e),`${n*s}rem`)}},applyPadding:()=>{let{padding:e}=n(),t=document.documentElement,r=e/100;if(r===1){t.style.removeProperty(`--user-padding-scale`),t.style.removeProperty(`--line-height-tight`),t.style.removeProperty(`--line-height-normal`),t.style.removeProperty(`--line-height-relaxed`),t.style.removeProperty(`--line-height-loose`);return}let i=Math.sqrt(r);t.style.setProperty(`--user-padding-scale`,i.toString());let a=1+(r-1)*.15;t.style.setProperty(`--line-height-tight`,(1.25*a).toFixed(3)),t.style.setProperty(`--line-height-normal`,(1.5*a).toFixed(3)),t.style.setProperty(`--line-height-relaxed`,(1.625*a).toFixed(3)),t.style.setProperty(`--line-height-loose`,(2*a).toFixed(3))},setDiffLayoutPreference:e=>{t({diffLayoutPreference:e})},setDiffFileLayout:(e,n)=>{t(t=>({diffFileLayout:{...t.diffFileLayout,[e]:n}}))},setDiffWrapLines:e=>{t({diffWrapLines:e})},setGitChangesViewMode:e=>{t({gitChangesViewMode:e})},setInputBarOffset:e=>{t({inputBarOffset:e})},setMobileKeyboardMode:e=>{t(t=>t.mobileKeyboardMode===e?t:{mobileKeyboardMode:e})},toggleFavoriteModel:(e,n,r)=>{t(t=>t.favoriteModels.some(t=>t.providerID===e&&t.modelID===n)?{favoriteModels:t.favoriteModels.filter(t=>t.providerID!==e||t.modelID!==n)}:{favoriteModels:[r===void 0?{providerID:e,modelID:n}:{providerID:e,modelID:n,variant:r},...t.favoriteModels]})},reorderFavoriteModel:(e,n,r,i)=>{t(t=>{let a=t.favoriteModels.findIndex(t=>t.providerID===e&&t.modelID===n),o=t.favoriteModels.findIndex(e=>e.providerID===r&&e.modelID===i);if(a===-1||o===-1||a===o)return t;let s=t.favoriteModels.slice(),[c]=s.splice(a,1);return c?(s.splice(o,0,c),{favoriteModels:s}):t})},setProviderOrder:e=>{t(t=>{let n=e.filter(e=>typeof e==`string`&&e.length>0),r=t.providerOrder;return r.length===n.length&&r.every((e,t)=>e===n[t])?t:{providerOrder:n}})},toggleHiddenModel:(e,n)=>{t(t=>t.hiddenModels.some(t=>t.providerID===e&&t.modelID===n)?{hiddenModels:t.hiddenModels.filter(t=>t.providerID!==e||t.modelID!==n)}:{hiddenModels:[{providerID:e,modelID:n},...t.hiddenModels]})},isHiddenModel:(e,t)=>{let{hiddenModels:r}=n();return r.some(n=>n.providerID===e&&n.modelID===t)},hideAllModels:(e,n)=>{t(t=>{let r=t.hiddenModels.filter(t=>t.providerID!==e);return{hiddenModels:[...n.filter(e=>typeof e==`string`&&e.length>0).map(t=>({providerID:e,modelID:t})),...r]}})},showAllModels:e=>{t(t=>({hiddenModels:t.hiddenModels.filter(t=>t.providerID!==e)}))},toggleModelProviderCollapsed:e=>{let n=typeof e==`string`?e.trim():``;n&&t(e=>e.collapsedModelProviders.includes(n)?{collapsedModelProviders:e.collapsedModelProviders.filter(e=>e!==n)}:{collapsedModelProviders:[...e.collapsedModelProviders,n]})},setModelProvidersCollapsed:(e,n)=>{let r=Array.from(new Set(e.filter(e=>typeof e==`string`).map(e=>e.trim()).filter(Boolean)));r.length!==0&&t(e=>{let t=new Set(r),i=e.collapsedModelProviders.filter(e=>!t.has(e));return{collapsedModelProviders:n?[...i,...r]:i}})},isFavoriteModel:(e,t)=>{let{favoriteModels:r}=n();return r.some(n=>n.providerID===e&&n.modelID===t)},addRecentModel:(e,n,r)=>{t(t=>{let i=[r===void 0?{providerID:e,modelID:n}:{providerID:e,modelID:n,variant:r},...t.recentModels.filter(t=>t.providerID!==e||t.modelID!==n)].slice(0,5),a=t.favoriteModels.findIndex(t=>t.providerID===e&&t.modelID===n);if(a===-1)return{recentModels:i};let o=t.favoriteModels[a];if(o.variant===r)return{recentModels:i};let s=r===void 0?{providerID:o.providerID,modelID:o.modelID}:{providerID:o.providerID,modelID:o.modelID,variant:r},c=t.favoriteModels.slice();return c[a]=s,{recentModels:i,favoriteModels:c}})},addRecentAgent:e=>{let n=typeof e==`string`?e.trim():``;n&&t(e=>{if(e.recentAgents.includes(n))return e;let t=e.recentAgents;return{recentAgents:[n,...t].slice(0,5)}})},addRecentEffort:(e,n,r)=>{let i=typeof e==`string`?e.trim():``,a=typeof n==`string`?n.trim():``;if(!i||!a)return;let o=`${i}/${a}`,s=typeof r==`string`&&r.trim().length>0?r.trim():`default`;t(e=>{let t=e.recentEfforts[o]??[];if(t.includes(s))return e;let n=t;return{recentEfforts:{...e.recentEfforts,[o]:[s,...n].slice(0,5)}}})},updateProportionalSidebarWidths:()=>{typeof window>`u`||t(e=>{let t={};if(e.isBottomTerminalOpen&&!e.hasManuallyResizedBottomTerminal){let n=Math.floor(window.innerHeight*.32);e.bottomTerminalHeight!==n&&(t.bottomTerminalHeight=n)}return Object.keys(t).length>0?t:e})},applyTheme:()=>{let{theme:e}=n(),t=document.documentElement;if(t.classList.remove(`light`,`dark`),e===`system`){let e=window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`;t.classList.add(e)}else t.classList.add(e)},setMultiRunLauncherOpen:e=>{t({isMultiRunLauncherOpen:e})},openMultiRunLauncher:()=>{t({isMultiRunLauncherOpen:!0,isSessionSwitcherOpen:!1})},setTimelineDialogOpen:e=>{t({isTimelineDialogOpen:e})},setPromptNavigatorPanelOpen:e=>{t({isPromptNavigatorPanelOpen:e})},togglePromptNavigatorPanel:()=>{t(e=>({isPromptNavigatorPanelOpen:!e.isPromptNavigatorPanelOpen}))},setImagePreviewOpen:e=>{t({isImagePreviewOpen:e})},setNativeNotificationsEnabled:e=>{t({nativeNotificationsEnabled:e})},setNotificationMode:e=>{t({notificationMode:e})},setShowTerminalQuickKeysOnDesktop:e=>{t({showTerminalQuickKeysOnDesktop:e})},setNotifyOnSubtasks:e=>{t({notifyOnSubtasks:e})},setDockBadgeEnabled:e=>{t({dockBadgeEnabled:e})},setNotifyOnCompletion:e=>{t({notifyOnCompletion:e})},setNotifyOnError:e=>{t({notifyOnError:e})},setNotifyOnQuestion:e=>{t({notifyOnQuestion:e})},setNotifyOnPermission:e=>{t({notifyOnPermission:e})},setNotifyOnScheduledTasks:e=>{t({notifyOnScheduledTasks:e})},setNotifyOnAssistants:e=>{t({notifyOnAssistants:e})},setNotifyOnGoals:e=>{t({notifyOnGoals:e})},setNotificationTemplates:e=>{t({notificationTemplates:e})},setSummarizeLastMessage:e=>{t({summarizeLastMessage:e})},setSummaryThreshold:e=>{t({summaryThreshold:e})},setSummaryLength:e=>{t({summaryLength:e})},setMaxLastMessageLength:e=>{t({maxLastMessageLength:e})},setPersistChatDraft:e=>{t({persistChatDraft:e})},setShowOpenCodeUpdateNotifications:e=>{t({showOpenCodeUpdateNotifications:e})},setInputSpellcheckEnabled:e=>{t({inputSpellcheckEnabled:e})},setWideChatLayoutEnabled:e=>{t({wideChatLayoutEnabled:e})},setCodeBlockLineWrap:e=>{t({codeBlockLineWrap:e})},setShowToolFileIcons:e=>{t({showToolFileIcons:e})},setShowTurnChangedFiles:e=>{t({showTurnChangedFiles:e})},setShowExpandedBashTools:e=>{t({showExpandedBashTools:e})},setShowSubagentTaskDetails:e=>{t({showSubagentTaskDetails:e})},setTimeFormatPreference:e=>{t({timeFormatPreference:e})},setWeekStartPreference:e=>{t({weekStartPreference:e})},setDesktopWindowControlsPosition:e=>{t({desktopWindowControlsPosition:e})},setMermaidRenderingMode:e=>{t({mermaidRenderingMode:e})},setUserMessageRenderingMode:e=>{t({userMessageRenderingMode:e})},setCollapsibleUserMessages:e=>{t({collapsibleUserMessages:e})},setStickyUserHeader:e=>{t({stickyUserHeader:e})},setPromptNavigatorEnabled:e=>{t({promptNavigatorEnabled:e})},setExpandedEditorToolbar:e=>{t({expandedEditorToolbar:e})},setShowSplitAssistantMessageActions:e=>{t({showSplitAssistantMessageActions:e})},setShowAssistantTps:e=>{t({showAssistantTps:e})},setAllowPromptingSubagentSessions:e=>{t({allowPromptingSubagentSessions:e})},setIsMobileSessionStatusBarCollapsed:e=>{t({isMobileSessionStatusBarCollapsed:e})},setMobileSessionPanelOpen:e=>{t({mobileSessionPanelOpen:e})},setMobileSessionFilterProjectId:e=>{t({mobileSessionFilterProjectId:e})},setOtaChannelOverride:e=>{t({otaChannelOverride:e})},setReportUsage:e=>{t({reportUsage:e})},viewPagerPage:`center`,setViewPagerPage:e=>{t({viewPagerPage:e}),t(e===`left`?{isSessionSwitcherOpen:!0,isRightSidebarOpen:!1}:e===`right`?{isRightSidebarOpen:!0,isSessionSwitcherOpen:!1}:{isSessionSwitcherOpen:!1,isRightSidebarOpen:!1})},setShortcutOverride:(e,n)=>{t(t=>({shortcutOverrides:{...t.shortcutOverrides,[e]:n}}))},clearShortcutOverride:e=>{t(t=>{let n={...t.shortcutOverrides};return delete n[e],{shortcutOverrides:n}})},resetAllShortcutOverrides:()=>{t({shortcutOverrides:{}})},setFileEditorKeymap:e=>{t({fileEditorKeymap:D(e)})},toggleExpandedInput:()=>{t(e=>({isExpandedInput:!e.isExpandedInput}))},setExpandedInput:e=>{t({isExpandedInput:e})},setWorkStatusPanelEnabled:e=>{t({workStatusPanelEnabled:e,workStatusOverlayOpen:!1})},setWorkStatusPanelVisible:e=>{t(t=>t.workStatusPanelVisible===e?t:{workStatusPanelVisible:e})},setWorkStatusPanelFits:e=>{t(t=>t.workStatusPanelFits===e?t:{workStatusPanelFits:e})},setWorkStatusOverlayOpen:e=>{t({workStatusOverlayOpen:e})},setWorkStatusSectionVisible:(e,n)=>{t(t=>{let r=t.workStatusHiddenSections.filter(t=>t!==e);return n||r.push(e),{workStatusHiddenSections:r}})},setWorkStatusHiddenSections:e=>{t({workStatusHiddenSections:e})},setWorkStatusSectionOrder:e=>{t({workStatusSectionOrder:e})},setWorkStatusSectionExpanded:(e,n)=>{t(t=>({workStatusExpandedSections:{...t.workStatusExpandedSections,[e]:n}}))},setWorkStatusScrollTop:e=>{t({workStatusScrollTop:e})}}),{name:`ui-store`,storage:f(),version:13,migrate:(e,t)=>{if(!e||typeof e!=`object`)return e;let n=e;if(ae(n,t),t<11&&n.sidebarWidth===280&&(n.sidebarWidth=N),t<10&&delete n.diffViewMode,t<13&&(delete n.notesPanelHeight,delete n.todoPanelHeight,(n.activeMainTab===`plan`||n.activeMainTab===`context`)&&(n.activeMainTab=`chat`),n.rightSidebarTab===`context`&&(n.rightSidebarTab=`files`)),t<1&&we(n.notificationTemplates)&&(n.notificationTemplates={completion:{...O.completion},error:{...O.error},question:{...O.question},subtask:{...O.subtask}}),t<3){let e=new Set([90,120,180,220]),t=n.memoryLimitHistorical,r=n.memoryLimitActiveSession;typeof t==`number`&&!e.has(t)?n.messageLimit=t:typeof r==`number`&&!e.has(r)&&(n.messageLimit=r),delete n.memoryLimitHistorical,delete n.memoryLimitViewport,delete n.memoryLimitActiveSession}if((typeof n.rightSidebarTab!=`string`||n.rightSidebarTab!==`git`&&n.rightSidebarTab!==`files`&&n.rightSidebarTab!==`browser`)&&(n.rightSidebarTab=`files`),n.contextPanelByDirectory=Y(n.contextPanelByDirectory),t<5)if(!n.shortcutOverrides||typeof n.shortcutOverrides!=`object`)n.shortcutOverrides={};else{let e=n.shortcutOverrides,t={};for(let[n,r]of Object.entries(e))typeof n==`string`&&typeof r==`string`&&(t[n]=r);n.shortcutOverrides=t}return t<6&&(n.contextPanelByDirectory=Y(n.contextPanelByDirectory)),t<7&&(n.contextPanelByDirectory=Y(n.contextPanelByDirectory)),t<8&&n.gitChangesViewMode!==`flat`&&n.gitChangesViewMode!==`tree`&&(n.gitChangesViewMode=`tree`),n.fileEditorKeymap=D(n.fileEditorKeymap),n},partialize:e=>({theme:e.theme,isSidebarOpen:e.isSidebarOpen,sidebarWidth:e.sidebarWidth,isRightSidebarOpen:e.isRightSidebarOpen,rightSidebarWidth:e.rightSidebarWidth,rightSidebarTab:e.rightSidebarTab,contextPanelByDirectory:Object.fromEntries(Object.entries(e.contextPanelByDirectory).map(([e,t])=>{let n=t.tabs.filter(e=>e.mode!==`btw`);return[e,{...t,tabs:n,activeTabId:q(n,t.activeTabId),isOpen:t.isOpen&&n.length>0}]})),isBottomTerminalOpen:e.isBottomTerminalOpen,isBottomTerminalExpanded:e.isBottomTerminalExpanded,bottomTerminalHeight:e.bottomTerminalHeight,isSessionSwitcherOpen:e.isSessionSwitcherOpen,activeMainTab:e.activeMainTab,sidebarSection:e.sidebarSection,settingsPage:e.settingsPage,settingsHasOpenedOnce:e.settingsHasOpenedOnce,settingsProjectsSelectedId:e.settingsProjectsSelectedId,settingsRemoteInstancesSelectedId:e.settingsRemoteInstancesSelectedId,isSessionCreateDialogOpen:e.isSessionCreateDialogOpen,showReasoningTraces:e.showReasoningTraces,sessionTitleRefreshEnabled:e.sessionTitleRefreshEnabled,sessionGoalEnabled:e.sessionGoalEnabled,sessionGoalDefaultBudgetEnabled:e.sessionGoalDefaultBudgetEnabled,sessionGoalDefaultBudget:e.sessionGoalDefaultBudget,collapsibleThinkingBlocks:e.collapsibleThinkingBlocks,chatRenderMode:e.chatRenderMode,activityRenderMode:e.activityRenderMode,showDeletionDialog:e.showDeletionDialog,autoDeleteEnabled:e.autoDeleteEnabled,autoDeleteAfterDays:e.autoDeleteAfterDays,sessionRetentionAction:e.sessionRetentionAction,autoDeleteLastRunAt:e.autoDeleteLastRunAt,messageLimit:e.messageLimit,fontSize:e.fontSize,codeFontSize:e.codeFontSize,globalDraftStarters:e.globalDraftStarters,terminalFontSize:e.terminalFontSize,editorFontSize:e.editorFontSize,uiFont:e.uiFont,monoFont:e.monoFont,padding:e.padding,cornerRadius:e.cornerRadius,favoriteModels:e.favoriteModels,hiddenModels:e.hiddenModels,providerOrder:e.providerOrder,collapsedModelProviders:e.collapsedModelProviders,recentModels:e.recentModels,recentAgents:e.recentAgents,recentEfforts:e.recentEfforts,diffLayoutPreference:e.diffLayoutPreference,diffWrapLines:e.diffWrapLines,gitChangesViewMode:e.gitChangesViewMode,nativeNotificationsEnabled:e.nativeNotificationsEnabled,notificationMode:e.notificationMode,showTerminalQuickKeysOnDesktop:e.showTerminalQuickKeysOnDesktop,notifyOnSubtasks:e.notifyOnSubtasks,dockBadgeEnabled:e.dockBadgeEnabled,notifyOnCompletion:e.notifyOnCompletion,notifyOnError:e.notifyOnError,notifyOnQuestion:e.notifyOnQuestion,notifyOnPermission:e.notifyOnPermission,notifyOnScheduledTasks:e.notifyOnScheduledTasks,notifyOnAssistants:e.notifyOnAssistants,notifyOnGoals:e.notifyOnGoals,notificationTemplates:e.notificationTemplates,summarizeLastMessage:e.summarizeLastMessage,summaryThreshold:e.summaryThreshold,summaryLength:e.summaryLength,maxLastMessageLength:e.maxLastMessageLength,persistChatDraft:e.persistChatDraft,showOpenCodeUpdateNotifications:e.showOpenCodeUpdateNotifications,inputSpellcheckEnabled:e.inputSpellcheckEnabled,wideChatLayoutEnabled:e.wideChatLayoutEnabled,workStatusPanelEnabled:e.workStatusPanelEnabled,workStatusHiddenSections:e.workStatusHiddenSections,workStatusSectionOrder:e.workStatusSectionOrder,workStatusExpandedSections:e.workStatusExpandedSections,workStatusScrollTop:e.workStatusScrollTop,codeBlockLineWrap:e.codeBlockLineWrap,showToolFileIcons:e.showToolFileIcons,showTurnChangedFiles:e.showTurnChangedFiles,showExpandedBashTools:e.showExpandedBashTools,showSubagentTaskDetails:e.showSubagentTaskDetails,timeFormatPreference:e.timeFormatPreference,weekStartPreference:e.weekStartPreference,desktopWindowControlsPosition:e.desktopWindowControlsPosition,mermaidRenderingMode:e.mermaidRenderingMode,userMessageRenderingMode:e.userMessageRenderingMode,collapsibleUserMessages:e.collapsibleUserMessages,stickyUserHeader:e.stickyUserHeader,promptNavigatorEnabled:e.promptNavigatorEnabled,expandedEditorToolbar:e.expandedEditorToolbar,showSplitAssistantMessageActions:e.showSplitAssistantMessageActions,showAssistantTps:e.showAssistantTps,allowPromptingSubagentSessions:e.allowPromptingSubagentSessions,isMobileSessionStatusBarCollapsed:e.isMobileSessionStatusBarCollapsed,mobileSessionFilterProjectId:e.mobileSessionFilterProjectId,otaChannelOverride:e.otaChannelOverride,shortcutOverrides:e.shortcutOverrides,fileEditorKeymap:e.fileEditorKeymap})}),{name:`ui-store`}));e(Q.getState().showReasoningTraces);var $=Q.persist;$?.hasHydrated?.()&&e(Q.getState().showReasoningTraces),typeof $?.onFinishHydration==`function`&&$.onFinishHydration(()=>{e(Q.getState().showReasoningTraces)});export{h as C,ie as S,b as _,E as a,f as b,de as c,x as d,ue as f,se as g,g as h,T as i,pe as l,me as m,Q as n,_e as o,he as p,be as r,S as s,I as t,fe as u,y as v,ne as x,v as y};
|
package/dist/assets/{useWorkerHighlightedLines-D7ReoWK5.js → useWorkerHighlightedLines-3sqUvjEF.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./runtime-fetch-Fs9ZV2V8.js";import{En as n,in as r}from"./persistence-BjB2zg-A.js";import{nt as i,rt as a}from"./vendor-base-ui-CnHfUmDN.js";import{n as o}from"./platform-BtWIOx71.js";import{v as s}from"./useUIStore-syVmbuDA.js";import{n as c}from"./vendor-react-DLPElpoQ.js";import{a as l,n as u}from"./vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js";import{f as d,r as f,t as p}from"./button-DrOV2On_.js";import{n as m}from"./Icon-Btt6-uNx.js";import{i as h,n as g,t as _}from"./tooltip-Dbt9HzPi.js";import{n as v}from"./useThemeSystem-DMzWVJaW.js";import{n as y}from"./markdownTheme-DM5h1i18.js";import{n as b}from"./MarkdownRenderer-Ba3oviH_.js";import{n as x,o as S,s as C,t as w}from"./markdown-worker-bS5OgGO3.js";import{a as T,i as E,o as D,t as ee}from"./imageSource-BMztRu0c.js";import{t as te}from"./vendor-tanstack-react-virtual-tlDgH6PG.js";var O=e(a(),1),k=c(),A=i(),ne=`w-[min(30rem,calc(100cqw-1rem))] min-w-[280px] max-w-full overflow-hidden rounded-xl shadow-[inset_0_1px_0_0_rgba(255,255,255,0.8),inset_0_0_0_1px_rgba(0,0,0,0.04),0_0_0_1px_rgba(0,0,0,0.10),0_1px_2px_-0.5px_rgba(0,0,0,0.08),0_4px_8px_-2px_rgba(0,0,0,0.08),0_12px_20px_-4px_rgba(0,0,0,0.08)] dark:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.12),inset_0_0_0_1px_rgba(255,255,255,0.08),0_0_0_1px_rgba(0,0,0,0.36),0_1px_1px_-0.5px_rgba(0,0,0,0.22),0_3px_3px_-1.5px_rgba(0,0,0,0.20),0_6px_6px_-3px_rgba(0,0,0,0.16)]`,j={maxWidth:`min(28rem, calc(100cqw - 4ch))`,backgroundColor:`var(--surface-elevated)`,color:`var(--surface-elevated-foreground)`},M=`flex items-center justify-between gap-3 border-b border-[var(--surface-subtle)] px-3 py-2.5`,N=`text-xs font-medium leading-4 text-foreground md:text-[0.8125rem] md:leading-5`,re=`text-xs tabular-nums leading-4 text-muted-foreground md:text-[0.8125rem] md:leading-5`,P=`m-0 list-none divide-y divide-[var(--surface-subtle)] p-0`,F=`${P} max-h-[min(22rem,50vh)] overflow-y-auto`,ie=`${P} w-full`,ae={className:`p-0 rounded-none`,maxHeightClass:`max-h-[46vh]`,disableHorizontal:!0},I=`px-2.5 py-1.5 text-xs leading-4 md:py-2 md:text-[0.8125rem] md:leading-5`,oe=`flex min-w-0 items-center gap-1 text-xs leading-4 text-muted-foreground md:gap-1.5 md:text-[0.8125rem] md:leading-5`,se=`min-w-0 truncate text-xs leading-4 text-foreground md:text-[0.8125rem] md:leading-5`,ce=`inline-flex shrink-0 items-center gap-1 text-xs leading-4 tabular-nums text-muted-foreground md:text-[0.8125rem] md:leading-5`,le=`h-3 w-3 shrink-0 md:h-3.5 md:w-3.5`,ue={in_progress:`text-foreground`,pending:`text-foreground`,completed:`text-muted-foreground line-through`,cancelled:`text-muted-foreground line-through`},L={in_progress:`chat.statusRow.todo.status.inProgress`,pending:`chat.statusRow.todo.status.pending`,completed:`chat.statusRow.todo.status.completed`,cancelled:`chat.statusRow.todo.status.cancelled`},R=e=>{let t=(0,k.c)(26),{todo:n,isActive:r,activeRef:i}=e,{t:a}=d(),o=z.has(n.status)?n.status:`pending`,s=L[o],c;t[0]!==a||t[1]!==s?(c=a(s),t[0]=a,t[1]=s,t[2]=c):c=t[2];let l=c,u;t[3]===o?u=t[4]:(u=o===`in_progress`?(0,A.jsx)(m,{name:`record-circle`,className:`h-3.5 w-3.5 text-[var(--status-info)]`,"aria-hidden":`true`}):o===`completed`?(0,A.jsx)(m,{name:`checkbox-circle`,className:`h-3.5 w-3.5 text-[var(--status-success)]`,"aria-hidden":`true`}):(0,A.jsx)(m,{name:`time`,className:`h-3.5 w-3.5 text-muted-foreground`,"aria-hidden":`true`}),t[3]=o,t[4]=u);let p=u,v=r?`step`:void 0,y=r&&`bg-[var(--surface-muted)] before:absolute before:inset-y-2 before:left-0 before:w-0.5 before:rounded-full before:bg-[var(--status-info)]`,b;t[5]===y?b=t[6]:(b=f(`group relative grid min-w-0 grid-cols-[1rem_minmax(0,1fr)] items-start gap-2.5`,I,y),t[5]=y,t[6]=b);let x;t[7]!==p||t[8]!==l?(x=(0,A.jsx)(h,{asChild:!0,children:(0,A.jsx)(`span`,{className:`flex size-4 items-center justify-center`,"aria-label":l,children:p})}),t[7]=p,t[8]=l,t[9]=x):x=t[9];let S;t[10]===l?S=t[11]:(S=(0,A.jsx)(g,{side:`left`,sideOffset:6,children:l}),t[10]=l,t[11]=S);let C;t[12]!==x||t[13]!==S?(C=(0,A.jsxs)(_,{children:[x,S]}),t[12]=x,t[13]=S,t[14]=C):C=t[14];let w=ue[o],T;t[15]===w?T=t[16]:(T=f(`block whitespace-normal break-words`,w),t[15]=w,t[16]=T);let E;t[17]!==T||t[18]!==n.content?(E=(0,A.jsx)(`span`,{className:`min-w-0 flex-1`,children:(0,A.jsx)(`span`,{className:T,children:n.content})}),t[17]=T,t[18]=n.content,t[19]=E):E=t[19];let D;return t[20]!==i||t[21]!==E||t[22]!==v||t[23]!==b||t[24]!==C?(D=(0,A.jsxs)(`li`,{ref:i,"aria-current":v,className:b,children:[C,E]}),t[20]=i,t[21]=E,t[22]=v,t[23]=b,t[24]=C,t[25]=D):D=t[25],D},z=new Set([`in_progress`,`pending`,`completed`,`cancelled`]),B=`image/png`,V=l(`OpenChamberMedia`),H=e=>{let t=e.toLowerCase().split(`;`)[0]?.trim()||B;if(t===`image/jpeg`||t===`image/jpg`)return`jpg`;if(t===`image/webp`)return`webp`;if(t===`image/gif`)return`gif`;if(t===`image/svg+xml`)return`svg`;if(t===`image/png`)return`png`;let n=t.split(`/`)[1];return n&&/^[a-z0-9.+-]+$/i.test(n)?n:`png`},U=(e,t)=>{let n=`image.${H(t)}`,r=(((e||``).trim()||n).split(/[\\/]/).pop()||n).replace(/[^\w.\- ()[\]]+/g,`_`).replace(/^\.+/,``);return r?/\.[a-z0-9]{1,8}$/i.test(r)?r:`${r}.${H(t)}`:n},W=e=>new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{if(typeof r.result==`string`){t(r.result);return}n(Error(`Failed to encode image`))},r.onerror=()=>n(r.error??Error(`Failed to encode image`)),r.readAsDataURL(e)}),de=async e=>{let t=await W(e),n=t.indexOf(`,`);return n>=0?t.slice(n+1):t},fe=(e,t)=>{let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),window.setTimeout(()=>URL.revokeObjectURL(n),1e3)},G=async(e,t)=>{let n=await fetch(e,{signal:t,cache:`no-store`});if(!n.ok)throw Error(`Image fetch failed (${n.status})`);return n.blob()},pe=async(e,t=B)=>{if(!e.naturalWidth||!e.naturalHeight)return null;let n=e.currentSrc||e.src;if(n&&(/^(?:blob:|data:|openchamber-asset:)/i.test(n)||/^https?:/i.test(n)||/^\/api(?=\/|[?#]|$)/.test(n)))try{let e=await G(n);if(e.size>0)return e}catch{}try{let n=document.createElement(`canvas`);n.width=e.naturalWidth,n.height=e.naturalHeight;let r=n.getContext(`2d`);if(!r)return null;r.drawImage(e,0,0);let i=t.startsWith(`image/`)?t:B,a=await new Promise(e=>{n.toBlob(t=>e(t),i===`image/jpg`?`image/jpeg`:i)});return a&&a.size>0?a:null}catch{return null}},me=async(e,t)=>{let n=``;try{return n=await ee(e,t??new AbortController().signal),await G(n,t)}finally{n&&T(n)}},he=async(e,n)=>{let r=e.effectiveDirectory??``,i=null;e.prefetchedBlob&&e.prefetchedBlob.size>0&&(i=e.prefetchedBlob);let a=e.displayUrl?.trim();if(!i&&a)try{i=await G(a,n)}catch{i=null}if(!i){let a=e.sourceUrl.trim();if(!a)throw Error(`Image source is empty`);if(/^(?:data|blob):/i.test(a)||/^https?:/i.test(a)||/^\/api(?=\/|[?#]|$)/.test(a))i=await G(a,n);else{let e=D(a,r);if(E(e))try{i=await me(e.path,n)}catch{let r=await t(`/api/fs/raw`,{method:`GET`,cache:`no-store`,query:{path:e.path},signal:n});if(!r.ok)throw Error(`Image source request failed with status ${r.status}`);i=await r.blob()}else i=await G(e.source,n)}}if(!i||i.size<=0)throw Error(`Image is empty`);let o=(e.mimeType||(i.type&&i.type.startsWith(`image/`)?i.type:``)||B).split(`;`)[0].trim()||B;return{blob:i,filename:U(e.filename,o),mimeType:o}},ge=()=>!o()||u===void 0?!1:u.isPluginAvailable(`OpenChamberMedia`),_e=async(e,t)=>{let{blob:i,filename:a,mimeType:o}=await he(e,t);if(ge()){let e=await de(i);return await V.saveImage({dataBase64:e,mimeType:o,filename:a}),`saved`}if(r()){let e=n()?.vscode;if(e?.saveImage){let t=await W(i);return await e.saveImage({fileName:a,dataUrl:t}),`saved`}}return fe(i,a),`downloaded`},ve=e=>e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`),ye=e=>e?Object.entries(e).map(([e,t])=>t==null?``:`${e.startsWith(`--`)?e:e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}:${typeof t==`number`?`${t}px`:t};`).join(``):``,K=(e,t,n)=>{let r=e.querySelector(`pre`);r&&(r.style.margin=`0`,r.style.background=`transparent`,r.style.whiteSpace=t?`pre-wrap`:`pre`,t&&(r.style.wordBreak=`break-word`,r.style.overflowWrap=`break-word`));let i=e.querySelector(`code`);if(i){let e=ye(n);e&&i.setAttribute(`style`,`${i.getAttribute(`style`)??``}${e}`)}},be=e=>`<pre><code>${ve(e)}</code></pre>`,xe=e=>{let t=(0,k.c)(21),{code:n,language:r,className:i,style:a,codeStyle:o,wrap:s}=e,c=s!==void 0&&s,{currentTheme:l}=v(),u=O.useRef(null),d;t[0]===l?d=t[1]:(d=y(l),t[0]=l,t[1]=d);let p=d,m,h;t[2]!==n||t[3]!==o||t[4]!==c?(m=()=>{let e=u.current;e&&(e.innerHTML=be(n),K(e,c,o))},h=[n,c,o],t[2]=n,t[3]=o,t[4]=c,t[5]=m,t[6]=h):(m=t[5],h=t[6]),O.useLayoutEffect(m,h);let g,_;t[7]!==n||t[8]!==o||t[9]!==r||t[10]!==c?(g=()=>{let e=u.current;if(!e)return;let t=!0,i=new AbortController;return w(n,(r||`text`).toLowerCase(),{signal:i.signal,priority:`visible`}).then(n=>{!t||!e||!n||(e.innerHTML=n,K(e,c,o))}),()=>{t=!1,i.abort()}},_=[n,r,c,o],t[7]=n,t[8]=o,t[9]=r,t[10]=c,t[11]=g,t[12]=_):(g=t[11],_=t[12]),O.useEffect(g,_);let b;t[13]===i?b=t[14]:(b=f(`typography-code`,i),t[13]=i,t[14]=b);let x=p,S;t[15]!==a||t[16]!==x?(S={...x,...a},t[15]=a,t[16]=x,t[17]=S):S=t[17];let C;return t[18]!==b||t[19]!==S?(C=(0,A.jsx)(`div`,{ref:u,className:b,style:S}),t[18]=b,t[19]=S,t[20]=C):C=t[20],C},Se=e=>{let t=e.replace(/^<file>\s*\n?/,``).replace(/\n?<\/file>\s*$/,``);return t=t.replace(/^\s*\d{5}\|\s?/gm,``),t.trim()},Ce=(e,t=``)=>{if(typeof e==`string`)return e;if(e==null)return t;if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`)return String(e);try{return JSON.stringify(e)}catch{return t}},we=e=>e?e.includes(`<diagnostics`)||e.includes(`<file_diagnostics>`)||e.includes(`LSP errors detected`)||e.includes(`This file has errors`):!1,Te=e=>e?e.replace(/\n{0,2}LSP errors detected[\s\S]*?<diagnostics[^>]*>[\s\S]*?<\/diagnostics>/g,``).replace(/\n{0,2}This file has errors[\s\S]*?<\/file_diagnostics>/g,``).replace(/<diagnostics[^>]*>[\s\S]*?<\/diagnostics>/g,``).replace(/<file_diagnostics>[\s\S]*?<\/file_diagnostics>/g,``).trim():``,Ee=(e,t)=>!e||typeof e!=`object`?String(e):C(e,t||``),q=e=>{if(typeof e==`string`){let t=e.trim();return t.length>0?t:void 0}if(e&&typeof e==`object`){let t=e.patch;if(typeof t==`string`){let e=t.trim();return e.length>0?e:void 0}}},De=e=>{if(!e||typeof e!=`object`)return;let t=q(e.patch)??q(e.diff);if(t)return t;let n=Array.isArray(e.files)?e.files:[];for(let e of n){if(!e||typeof e!=`object`)continue;let t=q(e.patch)??q(e.diff);if(t)return t}},Oe=e=>{if(!e||typeof e!=`string`)return{data:null,isJson:!1};let t=e.trim();if(!t.startsWith(`{`)&&!t.startsWith(`[`)||!t.endsWith(`}`)&&!t.endsWith(`]`)||t.length<2)return{data:null,isJson:!1};try{let e=JSON.parse(t);return typeof e==`object`&&e?{data:e,isJson:!0}:{data:null,isJson:!1}}catch{return{data:null,isJson:!1}}},ke=(e,t,n)=>{let r=Se(e);if((t===`edit`||t===`multiedit`||t===`write`||t===`apply_patch`)&&we(r)&&(r=Te(r)),(t===`edit`||t===`multiedit`||t===`apply_patch`)&&r.trim().length===0){let e=De(n);if(e)return e}return r},Ae=e=>{let t=e.match(/<type>(file|directory)<\/type>/i)?.[1]?.toLowerCase()??`unknown`,n=(e.match(/<content>([\s\S]*?)<\/content>/i)?.[1]??e).replace(/\r\n/g,`
|
|
1
|
+
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./runtime-fetch-CiqQd__Y.js";import{En as n,in as r}from"./persistence-CMWO3jFo.js";import{nt as i,rt as a}from"./vendor-base-ui-CnHfUmDN.js";import{n as o}from"./platform-BxU3ZvQ0.js";import{v as s}from"./useUIStore-Brsa2mKs.js";import{n as c}from"./vendor-react-DLPElpoQ.js";import{a as l,n as u}from"./vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js";import{f as d,r as f,t as p}from"./button-EzCcYrQl.js";import{n as m}from"./Icon-DKd015RD.js";import{i as h,n as g,t as _}from"./tooltip-DwUy2erJ.js";import{n as v}from"./useThemeSystem-DMzWVJaW.js";import{n as y}from"./markdownTheme-DM5h1i18.js";import{n as b}from"./MarkdownRenderer-BldzYti9.js";import{n as x,o as S,s as C,t as w}from"./markdown-worker-bS5OgGO3.js";import{a as T,i as E,o as D,t as ee}from"./imageSource-BpUsiwFd.js";import{t as te}from"./vendor-tanstack-react-virtual-tlDgH6PG.js";var O=e(a(),1),k=c(),A=i(),ne=`w-[min(30rem,calc(100cqw-1rem))] min-w-[280px] max-w-full overflow-hidden rounded-xl shadow-[inset_0_1px_0_0_rgba(255,255,255,0.8),inset_0_0_0_1px_rgba(0,0,0,0.04),0_0_0_1px_rgba(0,0,0,0.10),0_1px_2px_-0.5px_rgba(0,0,0,0.08),0_4px_8px_-2px_rgba(0,0,0,0.08),0_12px_20px_-4px_rgba(0,0,0,0.08)] dark:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.12),inset_0_0_0_1px_rgba(255,255,255,0.08),0_0_0_1px_rgba(0,0,0,0.36),0_1px_1px_-0.5px_rgba(0,0,0,0.22),0_3px_3px_-1.5px_rgba(0,0,0,0.20),0_6px_6px_-3px_rgba(0,0,0,0.16)]`,j={maxWidth:`min(28rem, calc(100cqw - 4ch))`,backgroundColor:`var(--surface-elevated)`,color:`var(--surface-elevated-foreground)`},M=`flex items-center justify-between gap-3 border-b border-[var(--surface-subtle)] px-3 py-2.5`,N=`text-xs font-medium leading-4 text-foreground md:text-[0.8125rem] md:leading-5`,re=`text-xs tabular-nums leading-4 text-muted-foreground md:text-[0.8125rem] md:leading-5`,P=`m-0 list-none divide-y divide-[var(--surface-subtle)] p-0`,F=`${P} max-h-[min(22rem,50vh)] overflow-y-auto`,ie=`${P} w-full`,ae={className:`p-0 rounded-none`,maxHeightClass:`max-h-[46vh]`,disableHorizontal:!0},I=`px-2.5 py-1.5 text-xs leading-4 md:py-2 md:text-[0.8125rem] md:leading-5`,oe=`flex min-w-0 items-center gap-1 text-xs leading-4 text-muted-foreground md:gap-1.5 md:text-[0.8125rem] md:leading-5`,se=`min-w-0 truncate text-xs leading-4 text-foreground md:text-[0.8125rem] md:leading-5`,ce=`inline-flex shrink-0 items-center gap-1 text-xs leading-4 tabular-nums text-muted-foreground md:text-[0.8125rem] md:leading-5`,le=`h-3 w-3 shrink-0 md:h-3.5 md:w-3.5`,ue={in_progress:`text-foreground`,pending:`text-foreground`,completed:`text-muted-foreground line-through`,cancelled:`text-muted-foreground line-through`},L={in_progress:`chat.statusRow.todo.status.inProgress`,pending:`chat.statusRow.todo.status.pending`,completed:`chat.statusRow.todo.status.completed`,cancelled:`chat.statusRow.todo.status.cancelled`},R=e=>{let t=(0,k.c)(26),{todo:n,isActive:r,activeRef:i}=e,{t:a}=d(),o=z.has(n.status)?n.status:`pending`,s=L[o],c;t[0]!==a||t[1]!==s?(c=a(s),t[0]=a,t[1]=s,t[2]=c):c=t[2];let l=c,u;t[3]===o?u=t[4]:(u=o===`in_progress`?(0,A.jsx)(m,{name:`record-circle`,className:`h-3.5 w-3.5 text-[var(--status-info)]`,"aria-hidden":`true`}):o===`completed`?(0,A.jsx)(m,{name:`checkbox-circle`,className:`h-3.5 w-3.5 text-[var(--status-success)]`,"aria-hidden":`true`}):(0,A.jsx)(m,{name:`time`,className:`h-3.5 w-3.5 text-muted-foreground`,"aria-hidden":`true`}),t[3]=o,t[4]=u);let p=u,v=r?`step`:void 0,y=r&&`bg-[var(--surface-muted)] before:absolute before:inset-y-2 before:left-0 before:w-0.5 before:rounded-full before:bg-[var(--status-info)]`,b;t[5]===y?b=t[6]:(b=f(`group relative grid min-w-0 grid-cols-[1rem_minmax(0,1fr)] items-start gap-2.5`,I,y),t[5]=y,t[6]=b);let x;t[7]!==p||t[8]!==l?(x=(0,A.jsx)(h,{asChild:!0,children:(0,A.jsx)(`span`,{className:`flex size-4 items-center justify-center`,"aria-label":l,children:p})}),t[7]=p,t[8]=l,t[9]=x):x=t[9];let S;t[10]===l?S=t[11]:(S=(0,A.jsx)(g,{side:`left`,sideOffset:6,children:l}),t[10]=l,t[11]=S);let C;t[12]!==x||t[13]!==S?(C=(0,A.jsxs)(_,{children:[x,S]}),t[12]=x,t[13]=S,t[14]=C):C=t[14];let w=ue[o],T;t[15]===w?T=t[16]:(T=f(`block whitespace-normal break-words`,w),t[15]=w,t[16]=T);let E;t[17]!==T||t[18]!==n.content?(E=(0,A.jsx)(`span`,{className:`min-w-0 flex-1`,children:(0,A.jsx)(`span`,{className:T,children:n.content})}),t[17]=T,t[18]=n.content,t[19]=E):E=t[19];let D;return t[20]!==i||t[21]!==E||t[22]!==v||t[23]!==b||t[24]!==C?(D=(0,A.jsxs)(`li`,{ref:i,"aria-current":v,className:b,children:[C,E]}),t[20]=i,t[21]=E,t[22]=v,t[23]=b,t[24]=C,t[25]=D):D=t[25],D},z=new Set([`in_progress`,`pending`,`completed`,`cancelled`]),B=`image/png`,V=l(`OpenChamberMedia`),H=e=>{let t=e.toLowerCase().split(`;`)[0]?.trim()||B;if(t===`image/jpeg`||t===`image/jpg`)return`jpg`;if(t===`image/webp`)return`webp`;if(t===`image/gif`)return`gif`;if(t===`image/svg+xml`)return`svg`;if(t===`image/png`)return`png`;let n=t.split(`/`)[1];return n&&/^[a-z0-9.+-]+$/i.test(n)?n:`png`},U=(e,t)=>{let n=`image.${H(t)}`,r=(((e||``).trim()||n).split(/[\\/]/).pop()||n).replace(/[^\w.\- ()[\]]+/g,`_`).replace(/^\.+/,``);return r?/\.[a-z0-9]{1,8}$/i.test(r)?r:`${r}.${H(t)}`:n},W=e=>new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{if(typeof r.result==`string`){t(r.result);return}n(Error(`Failed to encode image`))},r.onerror=()=>n(r.error??Error(`Failed to encode image`)),r.readAsDataURL(e)}),de=async e=>{let t=await W(e),n=t.indexOf(`,`);return n>=0?t.slice(n+1):t},fe=(e,t)=>{let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),window.setTimeout(()=>URL.revokeObjectURL(n),1e3)},G=async(e,t)=>{let n=await fetch(e,{signal:t,cache:`no-store`});if(!n.ok)throw Error(`Image fetch failed (${n.status})`);return n.blob()},pe=async(e,t=B)=>{if(!e.naturalWidth||!e.naturalHeight)return null;let n=e.currentSrc||e.src;if(n&&(/^(?:blob:|data:|openchamber-asset:)/i.test(n)||/^https?:/i.test(n)||/^\/api(?=\/|[?#]|$)/.test(n)))try{let e=await G(n);if(e.size>0)return e}catch{}try{let n=document.createElement(`canvas`);n.width=e.naturalWidth,n.height=e.naturalHeight;let r=n.getContext(`2d`);if(!r)return null;r.drawImage(e,0,0);let i=t.startsWith(`image/`)?t:B,a=await new Promise(e=>{n.toBlob(t=>e(t),i===`image/jpg`?`image/jpeg`:i)});return a&&a.size>0?a:null}catch{return null}},me=async(e,t)=>{let n=``;try{return n=await ee(e,t??new AbortController().signal),await G(n,t)}finally{n&&T(n)}},he=async(e,n)=>{let r=e.effectiveDirectory??``,i=null;e.prefetchedBlob&&e.prefetchedBlob.size>0&&(i=e.prefetchedBlob);let a=e.displayUrl?.trim();if(!i&&a)try{i=await G(a,n)}catch{i=null}if(!i){let a=e.sourceUrl.trim();if(!a)throw Error(`Image source is empty`);if(/^(?:data|blob):/i.test(a)||/^https?:/i.test(a)||/^\/api(?=\/|[?#]|$)/.test(a))i=await G(a,n);else{let e=D(a,r);if(E(e))try{i=await me(e.path,n)}catch{let r=await t(`/api/fs/raw`,{method:`GET`,cache:`no-store`,query:{path:e.path},signal:n});if(!r.ok)throw Error(`Image source request failed with status ${r.status}`);i=await r.blob()}else i=await G(e.source,n)}}if(!i||i.size<=0)throw Error(`Image is empty`);let o=(e.mimeType||(i.type&&i.type.startsWith(`image/`)?i.type:``)||B).split(`;`)[0].trim()||B;return{blob:i,filename:U(e.filename,o),mimeType:o}},ge=()=>!o()||u===void 0?!1:u.isPluginAvailable(`OpenChamberMedia`),_e=async(e,t)=>{let{blob:i,filename:a,mimeType:o}=await he(e,t);if(ge()){let e=await de(i);return await V.saveImage({dataBase64:e,mimeType:o,filename:a}),`saved`}if(r()){let e=n()?.vscode;if(e?.saveImage){let t=await W(i);return await e.saveImage({fileName:a,dataUrl:t}),`saved`}}return fe(i,a),`downloaded`},ve=e=>e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`),ye=e=>e?Object.entries(e).map(([e,t])=>t==null?``:`${e.startsWith(`--`)?e:e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}:${typeof t==`number`?`${t}px`:t};`).join(``):``,K=(e,t,n)=>{let r=e.querySelector(`pre`);r&&(r.style.margin=`0`,r.style.background=`transparent`,r.style.whiteSpace=t?`pre-wrap`:`pre`,t&&(r.style.wordBreak=`break-word`,r.style.overflowWrap=`break-word`));let i=e.querySelector(`code`);if(i){let e=ye(n);e&&i.setAttribute(`style`,`${i.getAttribute(`style`)??``}${e}`)}},be=e=>`<pre><code>${ve(e)}</code></pre>`,xe=e=>{let t=(0,k.c)(21),{code:n,language:r,className:i,style:a,codeStyle:o,wrap:s}=e,c=s!==void 0&&s,{currentTheme:l}=v(),u=O.useRef(null),d;t[0]===l?d=t[1]:(d=y(l),t[0]=l,t[1]=d);let p=d,m,h;t[2]!==n||t[3]!==o||t[4]!==c?(m=()=>{let e=u.current;e&&(e.innerHTML=be(n),K(e,c,o))},h=[n,c,o],t[2]=n,t[3]=o,t[4]=c,t[5]=m,t[6]=h):(m=t[5],h=t[6]),O.useLayoutEffect(m,h);let g,_;t[7]!==n||t[8]!==o||t[9]!==r||t[10]!==c?(g=()=>{let e=u.current;if(!e)return;let t=!0,i=new AbortController;return w(n,(r||`text`).toLowerCase(),{signal:i.signal,priority:`visible`}).then(n=>{!t||!e||!n||(e.innerHTML=n,K(e,c,o))}),()=>{t=!1,i.abort()}},_=[n,r,c,o],t[7]=n,t[8]=o,t[9]=r,t[10]=c,t[11]=g,t[12]=_):(g=t[11],_=t[12]),O.useEffect(g,_);let b;t[13]===i?b=t[14]:(b=f(`typography-code`,i),t[13]=i,t[14]=b);let x=p,S;t[15]!==a||t[16]!==x?(S={...x,...a},t[15]=a,t[16]=x,t[17]=S):S=t[17];let C;return t[18]!==b||t[19]!==S?(C=(0,A.jsx)(`div`,{ref:u,className:b,style:S}),t[18]=b,t[19]=S,t[20]=C):C=t[20],C},Se=e=>{let t=e.replace(/^<file>\s*\n?/,``).replace(/\n?<\/file>\s*$/,``);return t=t.replace(/^\s*\d{5}\|\s?/gm,``),t.trim()},Ce=(e,t=``)=>{if(typeof e==`string`)return e;if(e==null)return t;if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`)return String(e);try{return JSON.stringify(e)}catch{return t}},we=e=>e?e.includes(`<diagnostics`)||e.includes(`<file_diagnostics>`)||e.includes(`LSP errors detected`)||e.includes(`This file has errors`):!1,Te=e=>e?e.replace(/\n{0,2}LSP errors detected[\s\S]*?<diagnostics[^>]*>[\s\S]*?<\/diagnostics>/g,``).replace(/\n{0,2}This file has errors[\s\S]*?<\/file_diagnostics>/g,``).replace(/<diagnostics[^>]*>[\s\S]*?<\/diagnostics>/g,``).replace(/<file_diagnostics>[\s\S]*?<\/file_diagnostics>/g,``).trim():``,Ee=(e,t)=>!e||typeof e!=`object`?String(e):C(e,t||``),q=e=>{if(typeof e==`string`){let t=e.trim();return t.length>0?t:void 0}if(e&&typeof e==`object`){let t=e.patch;if(typeof t==`string`){let e=t.trim();return e.length>0?e:void 0}}},De=e=>{if(!e||typeof e!=`object`)return;let t=q(e.patch)??q(e.diff);if(t)return t;let n=Array.isArray(e.files)?e.files:[];for(let e of n){if(!e||typeof e!=`object`)continue;let t=q(e.patch)??q(e.diff);if(t)return t}},Oe=e=>{if(!e||typeof e!=`string`)return{data:null,isJson:!1};let t=e.trim();if(!t.startsWith(`{`)&&!t.startsWith(`[`)||!t.endsWith(`}`)&&!t.endsWith(`]`)||t.length<2)return{data:null,isJson:!1};try{let e=JSON.parse(t);return typeof e==`object`&&e?{data:e,isJson:!0}:{data:null,isJson:!1}}catch{return{data:null,isJson:!1}}},ke=(e,t,n)=>{let r=Se(e);if((t===`edit`||t===`multiedit`||t===`write`||t===`apply_patch`)&&we(r)&&(r=Te(r)),(t===`edit`||t===`multiedit`||t===`apply_patch`)&&r.trim().length===0){let e=De(n);if(e)return e}return r},Ae=e=>{let t=e.match(/<type>(file|directory)<\/type>/i)?.[1]?.toLowerCase()??`unknown`,n=(e.match(/<content>([\s\S]*?)<\/content>/i)?.[1]??e).replace(/\r\n/g,`
|
|
2
2
|
`).split(`
|
|
3
3
|
`),r=e=>/\(\s*File has more lines\..*offset.*\)/i.test(e.trim());return{type:t,lines:n.map(e=>{let n=e.trim(),i=n.startsWith(`(`)&&n.endsWith(`)`)||r(n);if(t!==`directory`){let t=e.match(/^(\d+):\s?(.*)$/);if(t){let e=t[2],n=e.trim(),i=n.startsWith(`(`)&&n.endsWith(`)`)||r(n);return{lineNumber:i?null:Number(t[1]),text:e,isInfo:i}}}return{lineNumber:null,text:e,isInfo:i}}).filter((e,t,n)=>{if(e.text.trim().length>0)return!0;let r=n[t-1],i=n[t+1],a=!!(r?.isInfo||i?.isInfo),o=e.lineNumber!==null;return!(a&&o)})}},je=(e,t)=>{try{let n=e.trim().split(`
|
|
4
4
|
`).filter(Boolean);if(n.length===0)return null;let r=[];return n.forEach(e=>{let t=e.match(/^(\s*)(.+)$/);if(t){let[,e,n]=t,i=Math.floor(e.length/2),a=!n.endsWith(`/`);r.push({name:n.replace(/\/$/,``),depth:i,isFile:a})}}),(0,A.jsx)(`div`,{className:f(`w-full min-w-0 font-mono space-y-0.5`,t?.unstyled?null:`p-3 bg-muted/20 rounded-xl border border-border/30`),style:s.tool.popup,children:r.map((e,t)=>(0,A.jsx)(`div`,{className:`min-w-0`,style:{paddingLeft:`${e.depth*20}px`},children:e.isFile?(0,A.jsx)(`span`,{className:`text-foreground/90 block truncate`,children:e.name}):(0,A.jsxs)(`span`,{className:`font-semibold text-foreground block truncate`,children:[e.name,`/`]})},t))})}catch{return null}},Me={backgroundColor:`var(--status-info)`,opacity:.6},Ne=(e,t,n)=>{try{let r=e.trim().split(`
|
package/dist/index.html
CHANGED
|
@@ -552,27 +552,27 @@
|
|
|
552
552
|
opacity: 0.72;
|
|
553
553
|
}
|
|
554
554
|
</style>
|
|
555
|
-
<script type="module" crossorigin src="/assets/main-
|
|
555
|
+
<script type="module" crossorigin src="/assets/main-CEhjJ7ze.js"></script>
|
|
556
556
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-C0FnF6B9.js">
|
|
557
557
|
<link rel="modulepreload" crossorigin href="/assets/runtime-auth-D66yq6ie.js">
|
|
558
|
-
<link rel="modulepreload" crossorigin href="/assets/runtime-switch-
|
|
559
|
-
<link rel="modulepreload" crossorigin href="/assets/runtime-fetch-
|
|
558
|
+
<link rel="modulepreload" crossorigin href="/assets/runtime-switch-BJM2k_uH.js">
|
|
559
|
+
<link rel="modulepreload" crossorigin href="/assets/runtime-fetch-CiqQd__Y.js">
|
|
560
560
|
<link rel="modulepreload" crossorigin href="/assets/vendor-base-ui-CnHfUmDN.js">
|
|
561
561
|
<link rel="modulepreload" crossorigin href="/assets/vendor-zustand-B4dlGEM2.js">
|
|
562
|
-
<link rel="modulepreload" crossorigin href="/assets/useUIStore-
|
|
562
|
+
<link rel="modulepreload" crossorigin href="/assets/useUIStore-Brsa2mKs.js">
|
|
563
563
|
<link rel="modulepreload" crossorigin href="/assets/vendor-react-DLPElpoQ.js">
|
|
564
564
|
<link rel="modulepreload" crossorigin href="/assets/vendor-pathe-vBmvQE8f.js">
|
|
565
565
|
<link rel="modulepreload" crossorigin href="/assets/vendor-tanstack-query-core-BWz0ose6.js">
|
|
566
|
-
<link rel="modulepreload" crossorigin href="/assets/persistence-
|
|
567
|
-
<link rel="modulepreload" crossorigin href="/assets/desktopHosts-
|
|
568
|
-
<link rel="modulepreload" crossorigin href="/assets/desktopRelayRestore-
|
|
566
|
+
<link rel="modulepreload" crossorigin href="/assets/persistence-CMWO3jFo.js">
|
|
567
|
+
<link rel="modulepreload" crossorigin href="/assets/desktopHosts-C8vf9vRY.js">
|
|
568
|
+
<link rel="modulepreload" crossorigin href="/assets/desktopRelayRestore-DDJtljeu.js">
|
|
569
569
|
<link rel="modulepreload" crossorigin href="/assets/vendor-opencode-client-C12gfjag.js">
|
|
570
570
|
<link rel="modulepreload" crossorigin href="/assets/vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js">
|
|
571
|
-
<link rel="modulepreload" crossorigin href="/assets/platform-
|
|
572
|
-
<link rel="modulepreload" crossorigin href="/assets/terminalApi-
|
|
571
|
+
<link rel="modulepreload" crossorigin href="/assets/platform-BxU3ZvQ0.js">
|
|
572
|
+
<link rel="modulepreload" crossorigin href="/assets/terminalApi-C6zlKnK1.js">
|
|
573
573
|
<link rel="modulepreload" crossorigin href="/assets/types-BuiqMmh_.js">
|
|
574
574
|
<link rel="modulepreload" crossorigin href="/assets/capgoAdapter-DCowZ2ab.js">
|
|
575
|
-
<link rel="modulepreload" crossorigin href="/assets/runtimeConfig-
|
|
575
|
+
<link rel="modulepreload" crossorigin href="/assets/runtimeConfig-B5vzmiw4.js">
|
|
576
576
|
<link rel="stylesheet" crossorigin href="/assets/src-iyTfdRD7.css">
|
|
577
577
|
</head>
|
|
578
578
|
<body class="h-full bg-background text-foreground">
|
package/dist/mini-chat.html
CHANGED
|
@@ -74,27 +74,27 @@
|
|
|
74
74
|
}
|
|
75
75
|
</style>
|
|
76
76
|
|
|
77
|
-
<script type="module" crossorigin src="/assets/miniChat-
|
|
77
|
+
<script type="module" crossorigin src="/assets/miniChat-Bo0rWV9V.js"></script>
|
|
78
78
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-C0FnF6B9.js">
|
|
79
79
|
<link rel="modulepreload" crossorigin href="/assets/runtime-auth-D66yq6ie.js">
|
|
80
|
-
<link rel="modulepreload" crossorigin href="/assets/runtime-switch-
|
|
81
|
-
<link rel="modulepreload" crossorigin href="/assets/runtime-fetch-
|
|
80
|
+
<link rel="modulepreload" crossorigin href="/assets/runtime-switch-BJM2k_uH.js">
|
|
81
|
+
<link rel="modulepreload" crossorigin href="/assets/runtime-fetch-CiqQd__Y.js">
|
|
82
82
|
<link rel="modulepreload" crossorigin href="/assets/vendor-base-ui-CnHfUmDN.js">
|
|
83
83
|
<link rel="modulepreload" crossorigin href="/assets/vendor-zustand-B4dlGEM2.js">
|
|
84
|
-
<link rel="modulepreload" crossorigin href="/assets/useUIStore-
|
|
84
|
+
<link rel="modulepreload" crossorigin href="/assets/useUIStore-Brsa2mKs.js">
|
|
85
85
|
<link rel="modulepreload" crossorigin href="/assets/vendor-react-DLPElpoQ.js">
|
|
86
86
|
<link rel="modulepreload" crossorigin href="/assets/vendor-pathe-vBmvQE8f.js">
|
|
87
87
|
<link rel="modulepreload" crossorigin href="/assets/vendor-tanstack-query-core-BWz0ose6.js">
|
|
88
|
-
<link rel="modulepreload" crossorigin href="/assets/persistence-
|
|
89
|
-
<link rel="modulepreload" crossorigin href="/assets/desktopHosts-
|
|
90
|
-
<link rel="modulepreload" crossorigin href="/assets/desktopRelayRestore-
|
|
88
|
+
<link rel="modulepreload" crossorigin href="/assets/persistence-CMWO3jFo.js">
|
|
89
|
+
<link rel="modulepreload" crossorigin href="/assets/desktopHosts-C8vf9vRY.js">
|
|
90
|
+
<link rel="modulepreload" crossorigin href="/assets/desktopRelayRestore-DDJtljeu.js">
|
|
91
91
|
<link rel="modulepreload" crossorigin href="/assets/vendor-opencode-client-C12gfjag.js">
|
|
92
92
|
<link rel="modulepreload" crossorigin href="/assets/vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js">
|
|
93
|
-
<link rel="modulepreload" crossorigin href="/assets/platform-
|
|
94
|
-
<link rel="modulepreload" crossorigin href="/assets/terminalApi-
|
|
93
|
+
<link rel="modulepreload" crossorigin href="/assets/platform-BxU3ZvQ0.js">
|
|
94
|
+
<link rel="modulepreload" crossorigin href="/assets/terminalApi-C6zlKnK1.js">
|
|
95
95
|
<link rel="modulepreload" crossorigin href="/assets/types-BuiqMmh_.js">
|
|
96
96
|
<link rel="modulepreload" crossorigin href="/assets/capgoAdapter-DCowZ2ab.js">
|
|
97
|
-
<link rel="modulepreload" crossorigin href="/assets/runtimeConfig-
|
|
97
|
+
<link rel="modulepreload" crossorigin href="/assets/runtimeConfig-B5vzmiw4.js">
|
|
98
98
|
<link rel="stylesheet" crossorigin href="/assets/src-iyTfdRD7.css">
|
|
99
99
|
</head>
|
|
100
100
|
<body class="h-full bg-background text-foreground">
|
package/dist/mobile.html
CHANGED
|
@@ -63,27 +63,27 @@
|
|
|
63
63
|
})();
|
|
64
64
|
</script>
|
|
65
65
|
|
|
66
|
-
<script type="module" crossorigin src="/assets/mobile-
|
|
66
|
+
<script type="module" crossorigin src="/assets/mobile-sA03x4Fl.js"></script>
|
|
67
67
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-C0FnF6B9.js">
|
|
68
68
|
<link rel="modulepreload" crossorigin href="/assets/runtime-auth-D66yq6ie.js">
|
|
69
|
-
<link rel="modulepreload" crossorigin href="/assets/runtime-switch-
|
|
70
|
-
<link rel="modulepreload" crossorigin href="/assets/runtime-fetch-
|
|
69
|
+
<link rel="modulepreload" crossorigin href="/assets/runtime-switch-BJM2k_uH.js">
|
|
70
|
+
<link rel="modulepreload" crossorigin href="/assets/runtime-fetch-CiqQd__Y.js">
|
|
71
71
|
<link rel="modulepreload" crossorigin href="/assets/vendor-base-ui-CnHfUmDN.js">
|
|
72
72
|
<link rel="modulepreload" crossorigin href="/assets/vendor-zustand-B4dlGEM2.js">
|
|
73
|
-
<link rel="modulepreload" crossorigin href="/assets/useUIStore-
|
|
73
|
+
<link rel="modulepreload" crossorigin href="/assets/useUIStore-Brsa2mKs.js">
|
|
74
74
|
<link rel="modulepreload" crossorigin href="/assets/vendor-react-DLPElpoQ.js">
|
|
75
75
|
<link rel="modulepreload" crossorigin href="/assets/vendor-pathe-vBmvQE8f.js">
|
|
76
76
|
<link rel="modulepreload" crossorigin href="/assets/vendor-tanstack-query-core-BWz0ose6.js">
|
|
77
|
-
<link rel="modulepreload" crossorigin href="/assets/persistence-
|
|
78
|
-
<link rel="modulepreload" crossorigin href="/assets/desktopHosts-
|
|
79
|
-
<link rel="modulepreload" crossorigin href="/assets/desktopRelayRestore-
|
|
77
|
+
<link rel="modulepreload" crossorigin href="/assets/persistence-CMWO3jFo.js">
|
|
78
|
+
<link rel="modulepreload" crossorigin href="/assets/desktopHosts-C8vf9vRY.js">
|
|
79
|
+
<link rel="modulepreload" crossorigin href="/assets/desktopRelayRestore-DDJtljeu.js">
|
|
80
80
|
<link rel="modulepreload" crossorigin href="/assets/vendor-opencode-client-C12gfjag.js">
|
|
81
81
|
<link rel="modulepreload" crossorigin href="/assets/vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js">
|
|
82
|
-
<link rel="modulepreload" crossorigin href="/assets/platform-
|
|
83
|
-
<link rel="modulepreload" crossorigin href="/assets/terminalApi-
|
|
82
|
+
<link rel="modulepreload" crossorigin href="/assets/platform-BxU3ZvQ0.js">
|
|
83
|
+
<link rel="modulepreload" crossorigin href="/assets/terminalApi-C6zlKnK1.js">
|
|
84
84
|
<link rel="modulepreload" crossorigin href="/assets/types-BuiqMmh_.js">
|
|
85
85
|
<link rel="modulepreload" crossorigin href="/assets/capgoAdapter-DCowZ2ab.js">
|
|
86
|
-
<link rel="modulepreload" crossorigin href="/assets/runtimeConfig-
|
|
86
|
+
<link rel="modulepreload" crossorigin href="/assets/runtimeConfig-B5vzmiw4.js">
|
|
87
87
|
<link rel="stylesheet" crossorigin href="/assets/src-iyTfdRD7.css">
|
|
88
88
|
</head>
|
|
89
89
|
<body class="h-full bg-background text-foreground">
|
package/package.json
CHANGED
|
@@ -39,7 +39,8 @@ Relay is not a separate link format: it is one transport candidate inside the un
|
|
|
39
39
|
## What travels the tunnel
|
|
40
40
|
|
|
41
41
|
Everything a client normally sends to the single OpenChamber origin:
|
|
42
|
-
- **HTTP** — REST endpoints and proxied OpenCode SDK calls under `/api/*`, plus `/auth/*` and `/health`.
|
|
42
|
+
- **HTTP** — REST endpoints and proxied OpenCode SDK calls under `/api/*`, plus `/auth/*` and `/health`. On a packaged desktop client the UI origin is `openchamber-ui://` (`location.origin` is `"null"`) while the SDK still addresses the injected loopback. Relay mode tunnels those shell-local absolute `/api` `/auth` `/health` URLs; they must not fall through to the local OpenCode process.
|
|
43
|
+
- **Events** — relay `auto` uses SSE (bearer), the same path mobile uses. Desktop WebSocket upgrades over the tunnel close and drop assistant deltas; an explicit `ws` setting is unchanged.
|
|
43
44
|
- **SSE** — streamed responses opened through `runtimeFetch`, including `/api/openchamber/events` and SDK global SSE. Relay carries these HTTP response body frames through the tunnel.
|
|
44
45
|
- **WebSocket** — the endpoints that use a real socket (the global event stream on platforms that support WS, terminal I/O, dictation, and Preview/Browser HMR under `/api/preview/proxy/<id>/...`).
|
|
45
46
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as e}from"./runtime-auth-D66yq6ie.js";import{l as t,r as n}from"./runtime-switch-LvWDU-SL.js";import{n as r}from"./runtime-fetch-Fs9ZV2V8.js";import{nn as i}from"./persistence-BjB2zg-A.js";import{i as a,l as o,m as s,n as c,p as l,r as u}from"./desktopHosts-DLW0GEzn.js";var d=e=>e!==`ok`&&e!==`update-recommended`,f=e=>e.id===`local`?`local`:`host:${e.id}`,p=e=>n()===f(e),m=async(n,r)=>{if(!i())return{ok:!1,status:{status:`unreachable`,latencyMs:0},reason:`unsupported`};let a=l(o(n))||``;if(!a&&!n.relay)return{ok:!1,status:{status:`unreachable`,latencyMs:0},reason:`unreachable`};let u=(r,i)=>{i&&e({relayUrl:r.relayUrl,serverId:r.serverId,hostEncPubJwk:r.hostEncPubJwk},i),t({apiBaseUrl:typeof window<`u`?window.location.origin:``,clientToken:n.clientToken||null,runtimeKey:f(n),relay:r}),b(n.id)},p=e=>{t({apiBaseUrl:e,clientToken:n.clientToken||null,requestHeaders:n.requestHeaders||null,runtimeKey:f(n)})},m={status:`unreachable`,latencyMs:0},h=null,g;if(a){let e=await c(a,{clientToken:n.clientToken||null,requestHeaders:n.requestHeaders||null,expectedServerId:n.relay?.serverId||null}).catch(()=>({status:`unreachable`,latencyMs:0}));m={status:e.status,latencyMs:e.latencyMs},d(e.status)||(h=`direct`)}if(!h&&n.relay){let e=await s(n.relay,{keepTunnel:!0,clientToken:n.clientToken||null}).catch(()=>({status:`unreachable`,latencyMs:0}));e.status===`ok`?(m={status:e.status,latencyMs:e.latencyMs,via:`relay`},h=`relay`,g=`tunnel`in e?e.tunnel:void 0):(!a||e.status===`auth`)&&(m={status:e.status,latencyMs:e.latencyMs})}return h?h===`relay`&&n.relay?(u(n.relay,g),{ok:!0,via:`relay`,status:m}):(p(a),{ok:!0,via:`direct`,status:m}):{ok:!1,status:m,reason:`unreachable`}},h=5e3,g=1500,_=e=>e===`ok`||e===`update-recommended`,v=!1,y=async e=>{if(!i()||v)return;let o=`host:${e}`;if(n()===o){v=!0;try{let i=await u().catch(()=>null),s=i?.hosts.find(t=>t.id===e);if(!i||!s?.relay)return;let d=s.apiUrl?l(s.apiUrl):null;if(d&&d.startsWith(`https://`))return;let f=await r(`/api/client-auth/connection/candidates`).catch(()=>null);if(!f?.ok)return;let p=await f.json().catch(()=>null);if(!p||p.serverId!==s.relay.serverId)return;let m=Array.isArray(p.candidates)?p.candidates:[],h=[];for(let e of m){if(!e||typeof e!=`object`)continue;let t=e;if(t.type!==`lan`||typeof t.url!=`string`)continue;let n=l(t.url);n&&!h.includes(n)&&h.push(n)}if(h.length===0)return;let g=d&&h.includes(d)?d:h[0];if(g!==d&&await a({hosts:i.hosts.map(t=>t.id===e?{...t,apiUrl:g}:t),defaultHostId:i.defaultHostId,initialHostChoiceCompleted:i.initialHostChoiceCompleted}).catch(()=>void 0),!_((await c(g,{clientToken:s.clientToken||null,requestHeaders:s.requestHeaders||null,expectedServerId:s.relay.serverId}).catch(()=>({status:`unreachable`,latencyMs:0}))).status)||n()!==o)return;t({apiBaseUrl:g,clientToken:s.clientToken||null,requestHeaders:s.requestHeaders||null,runtimeKey:o})}finally{v=!1}}},b=e=>{typeof window>`u`||window.setTimeout(()=>{y(e).catch(()=>void 0)},h)},x=async e=>{if(!i())return;let r=await u().catch(()=>null);if(!r)return;let a=e||(r.defaultHostId===`local`?null:r.defaultHostId);if(!a)return;let s=r.hosts.find(e=>e.id===a);if(!s?.relay)return;let d=f(s);if(n()===d)return;let p=e=>{t({apiBaseUrl:e,clientToken:s.clientToken||null,requestHeaders:s.requestHeaders||null,runtimeKey:d})},m=()=>{t({apiBaseUrl:typeof window<`u`?window.location.origin:``,clientToken:s.clientToken||null,runtimeKey:d,relay:s.relay??void 0}),b(s.id)},h=s.apiUrl?l(o(s)):null;if(!h){m();return}let v=e=>_(e.status),y=c(h,{clientToken:s.clientToken||null,requestHeaders:s.requestHeaders||null,expectedServerId:s.relay.serverId}).catch(()=>({status:`unreachable`,latencyMs:0})),x=await Promise.race([y,new Promise(e=>setTimeout(()=>e(null),g))]);if(x){if(v(x)){p(h);return}m();return}m(),y.then(e=>{v(e)&&n()===d&&p(h)})};export{m as i,p as n,f as r,x as t};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/renderElectronMiniChatApp-Df7dq4oG.js","assets/rolldown-runtime-C0FnF6B9.js","assets/persistence-BjB2zg-A.js","assets/runtime-switch-LvWDU-SL.js","assets/runtime-auth-D66yq6ie.js","assets/runtime-fetch-Fs9ZV2V8.js","assets/vendor-zustand-B4dlGEM2.js","assets/vendor-base-ui-CnHfUmDN.js","assets/useUIStore-syVmbuDA.js","assets/vendor-react-DLPElpoQ.js","assets/vendor-pathe-vBmvQE8f.js","assets/vendor-tanstack-query-core-BWz0ose6.js","assets/platform-BtWIOx71.js","assets/vendor-opencode-client-C12gfjag.js","assets/vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js","assets/vendor-reactuses-core-Dq5ocTF8.js","assets/vendor-lodash-es-DfLbG5Af.js","assets/vendor-js-cookie-hSOiFTtX.js","assets/button-DrOV2On_.js","assets/store-jaP79mqI.js","assets/vendor-class-variance-authority-BLUaYARZ.js","assets/vendor-tailwind-merge-BicNWLTg.js","assets/useMobileNavigationStore-rymykUWX.js","assets/vendor-tanstack-react-query-D7pys_c9.js","assets/vendor-sonner-DVzioF3d.js","assets/useAssistantUIStore-Bz4tRflF.js","assets/vendor-zod-Dzk5kdUU.js","assets/vendor-fuse.js-DB5wDJbI.js","assets/Icon-Btt6-uNx.js","assets/useAppFontEffects-DYxg0CaC.js","assets/desktopHosts-DLW0GEzn.js","assets/desktopRelayRestore-BqkwgbJI.js","assets/vendor-codemirror-autocomplete-DHomsvW7.js","assets/vendor-pierre-diffs-DX7XTPG3.js","assets/vendor-hast-util-to-html-B0p1k5Xa.js","assets/vendor-character-entities-legacy-Wut6vMuj.js","assets/vendor-character-entities-html4-DlN_yAFd.js","assets/vendor-ccount-CyGsA0u7.js","assets/vendor-comma-separated-tokens-B9ouxNNS.js","assets/vendor-oniguruma-to-es-CrHzjjSU.js","assets/vendor-oniguruma-parser-D2DIvhSP.js","assets/vendor-diff-Dq7CZNim.js","assets/vendor-lru_map-DpDied8H.js","assets/dialog-DOMLas8m.js","assets/AgentAvatar-1O_PzNgl.js","assets/gitApi--jK71Mhy.js","assets/vendor-simplewebauthn-browser-Dwhcdg_5.js","assets/projectMeta-B916-Nri.js","assets/input-DLdTC9t_.js","assets/tooltip-Dbt9HzPi.js","assets/OverlayScrollbar-BXfF2JdG.js","assets/textarea-C1Ro6kDl.js","assets/vendor-dnd-kit-core-CvWxUPdb.js","assets/vendor-dnd-kit-accessibility-BY5LhhUB.js","assets/vendor-dnd-kit-sortable-hHdP9lLb.js","assets/useSessionAutoCleanup-DK_o3WSg.js","assets/vendor-codemirror-lang-angular-DShkBD6m.js","assets/vendor-codemirror-lang-json-CYJRHck9.js","assets/vendor-codemirror-lang-markdown-WORgx6ZD.js","assets/vendor-codemirror-lang-python-Du6XQ8Zw.js","assets/vendor-codemirror-legacy-modes-DuRAjNvB.js","assets/useThemeSystem-DMzWVJaW.js","assets/dropdown-menu.styles-Bzo6L3FH.js","assets/vendor-codemirror-language-data-BfYFhIH1.js","assets/markdownTheme-DM5h1i18.js","assets/useRuntimeAPIs-DSLXJybW.js","assets/sessionChangeSummary-fWdW0Xo3.js","assets/insertionBoundaries-BHEBgMEu.js","assets/fileMentionTouchSelection-05j9xM7K.js","assets/appThemeRegistry-CkFI48mo.js","assets/MarkdownRenderer-Ba3oviH_.js","assets/markdownHeightCache-2UQSdxne.js","assets/dualLimitLru-D8Sphgua.js","assets/url-BFVmRFrh.js","assets/markdown-worker-bS5OgGO3.js","assets/useEffectiveDirectory-HRJsy3JA.js","assets/FadeInOnReveal-Blpsssr8.js","assets/imageSource-BMztRu0c.js","assets/relay-image-stream-DrdVj99c.js","assets/useWorkerHighlightedLines-D7ReoWK5.js","assets/vendor-tanstack-react-virtual-tlDgH6PG.js","assets/vendor-cmdk-CeAGfrLo.js","assets/vendor-aria-hidden-BbL3cEyI.js","assets/sortable-tabs-strip-Dw4fkTT5.js","assets/vendor-framer-motion-DFy_BSVd.js","assets/vendor-legendapp-list-WE32lwNk.js","assets/useFontPreferences-Dpty4dZD.js","assets/terminalApi-tdoZSHxO.js","assets/useDesktopWindowControlsLayout-D66170SP.js","assets/src-iyTfdRD7.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{t as e}from"./runtimeConfig-B2-RJhnH.js";import{o as t}from"./vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js";/* empty css */window.__OPENCHAMBER_RUNTIME_APIS__=e(),t(async()=>{let{renderElectronMiniChatApp:e}=await import(`./renderElectronMiniChatApp-Df7dq4oG.js`);return{renderElectronMiniChatApp:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89])).then(({renderElectronMiniChatApp:t})=>{t(window.__OPENCHAMBER_RUNTIME_APIS__??e())});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e,S as t,a as n,g as r,h as i,l as a,n as o,o as s,p as ee,u as c,x as l,y as u}from"./runtime-auth-D66yq6ie.js";var d=!0,f=0,p=new Set;function m(){return d}function h(){return f}function g(e){if(d!==e){d=e,f+=1;for(let e of p)try{e()}catch{}}}function _(e){return p.add(e),()=>{p.delete(e)}}var v=/^[a-z][a-z\d+.-]*:\/\//i,y=e=>{let t=e.trim();return t?t.startsWith(`/`)?t:`/${t}`:`/`},b=e=>typeof e==`string`?e.trim().replace(/\/+$/,``):``,x=()=>{if(typeof window>`u`)return``;let e=window.__OPENCHAMBER_API_BASE_URL__;return b(e)},S=()=>{if(typeof window>`u`)return``;let e=window.__OPENCHAMBER_LOCAL_ORIGIN__;return b(e)},C=()=>Object.keys(a()).length>0,w=e=>e.currentHref?.()||(typeof window<`u`?window.location.href||window.location.origin:``),T=(e,t)=>{if(!t)return;let n=t instanceof URLSearchParams?Array.from(t.entries()):Object.entries(t);for(let[t,r]of n)r!=null&&e.searchParams.set(t,String(r))},E=(e,t)=>{if(!t)return e;let n=new URLSearchParams;T({searchParams:n},t);let r=n.toString();return r?e.includes(`?`)?`${e}&${r}`:`${e}?${r}`:e},D=(e,t,n)=>{if(v.test(t)){let e=new URL(t);return T(e,n),e.toString()}let r=y(t);if(!e)return E(r,n);let i=new URL(r,`${e}/`);return T(i,n),i.toString()},O=e=>{let t=c();if(!t)return e;let n=v.test(e)?new URL(e):new URL(e,`http://openchamber.local`);return n.searchParams.set(`oc_url_token`,t),v.test(e)?n.toString():`${n.pathname}${n.search}${n.hash}`},k=(e,t)=>{let n=v.test(e)?new URL(e):new URL(e,w(t));return n.protocol===`ws:`||n.protocol===`wss:`||(n.protocol=n.protocol===`https:`?`wss:`:`ws:`),n.toString()},A=(e,t,n)=>{if(!C())return null;let r=S();if(!r)return null;try{let i=new URL(`/api/openchamber/realtime-proxy/${e===`sse`?`sse`:`ws`}`,`${r}/`);i.searchParams.set(`url`,t);let a=s(r);return a&&i.searchParams.set(`oc_url_token`,a),e===`ws`?(i.protocol=i.protocol===`https:`?`wss:`:`ws:`,k(i.toString(),n)):i.toString()}catch{return null}},j=(e={})=>{let t=b(e.apiBaseUrl),n=b(e.realtimeBaseUrl),r=()=>t||x(),i=()=>n||r(),a=(e,t)=>D(r(),e,t),o=(e,t)=>D(i(),e,t);return{api:a,authenticatedAsset:(e,t)=>O(a(e,t)),auth:a,health:e=>a(`/health`,e),rawFile:(e,t)=>a(`/api/fs/raw`,{path:e,download:t?.download===!0||void 0,allowOutsideWorkspace:t?.allowOutsideWorkspace===!0||void 0,outsideFileGrant:t?.outsideFileGrant}),sse:(t,n)=>{let r=O(o(t,n));return A(`sse`,r,e)||r},websocket:(t,n)=>{let r=k(O(o(t,n)),e);return A(`ws`,r,e)||r}}},M=j(),N=()=>M,P=e=>{M=e},F=e=>(M=j(e),M),I=`openchamber:runtime-endpoint-changed`,L=``,R=``,z=``,B=``,V=0,H=e=>Array.isArray(e)?`[${e.map(H).join(`,`)}]`:e&&typeof e==`object`?`{${Object.entries(e).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>`${JSON.stringify(e)}:${H(t)}`).join(`,`)}}`:JSON.stringify(e)??`undefined`,U=e=>e?Object.entries(e).map(([e,t])=>[e.trim().toLowerCase(),t]).filter(([e])=>e.length>0).sort(([e],[t])=>e.localeCompare(t)):[],W=e=>H({apiBaseUrl:e.apiBaseUrl.replace(/\/+$/,``),clientToken:e.clientToken||null,runtimeKey:e.runtimeKey,requestHeaders:U(e.requestHeaders),relay:e.relay??null}),G=(e,t,n)=>{try{e[t]=n}catch{}},K=e=>{try{let t=new URL(e);return t.hash=``,t.search=``,t.pathname=t.pathname.replace(/\/+$/,``)||`/`,`url:${t.toString().replace(/\/+$/,``)}`}catch{return`url:${e.trim().replace(/\/+$/,``)||`default`}`}},q=(e,t)=>t?`relay:${H({relayUrl:t.relayUrl,serverId:t.serverId,hostEncPubJwk:t.hostEncPubJwk})}`:`direct:${K(e)}`,te=e=>e.transportIdentityChanged??K(e.apiBaseUrl)!==K(e.previousApiBaseUrl),ne=e=>e.runtimeKey!==e.previousRuntimeKey,J=()=>{if(typeof window>`u`)return``;let e=window.__OPENCHAMBER_API_BASE_URL__;return typeof e==`string`?e.trim():``},Y=()=>{if(typeof window>`u`)return``;let e=window.__OPENCHAMBER_LOCAL_ORIGIN__;return typeof e==`string`?e.trim():``},X=(e,t)=>{if(!e||!t)return!1;try{return new URL(e).origin===new URL(t).origin}catch{return!1}},Z=()=>L||J(),Q=()=>B||q(Z()),re=()=>V,$=()=>{if(R)return R;let e=Z();return X(e,Y())?`local`:K(e)},ie=(e={})=>{if(L||R)return;let t=e.apiBaseUrl?.trim()||J();t&&(L=t,R=e.runtimeKey?.trim()||(X(t,Y())?`local`:K(t)),B=q(t,null))},ae=a=>{let s=a.apiBaseUrl.trim(),c=Z(),d=$(),f=K(s)===K(c),p=a.runtimeKey?.trim()||(f?d:K(s)),m=W({...a,apiBaseUrl:s,runtimeKey:p});if(m===z)return;let h=Q(),g=q(s,a.relay),_=g!==h;if(z=m,B=g,_&&(V+=1),L=s,R=p,typeof window<`u`){let e=window;G(e,`__OPENCHAMBER_API_BASE_URL__`,s),G(e,`__OPENCHAMBER_CLIENT_TOKEN__`,a.clientToken||void 0),G(e,`__OPENCHAMBER_RUNTIME_HEADERS__`,a.requestHeaders||void 0)}F({apiBaseUrl:s,realtimeBaseUrl:s}),o();try{r(a.requestHeaders||null),i(a.clientToken||null)}finally{n()}a.relay?u(a.relay):e()&&(console.warn(`[runtime-switch] dropping active relay transport`,{runtimeKey:p,previousRuntimeKey:d,apiBaseUrl:s,relayServerId:t()?.serverId??null},Error(`relay dropped here`).stack),l()),ee(s).catch(()=>{}),typeof window<`u`&&window.dispatchEvent(new CustomEvent(I,{detail:{apiBaseUrl:s,previousApiBaseUrl:c,runtimeKey:p,previousRuntimeKey:d,transportIdentityChanged:_}}))},oe=e=>{if(typeof window>`u`)return()=>{};let t=t=>{e(t.detail)};return window.addEventListener(I,t),()=>window.removeEventListener(I,t)};export{_,ie as a,oe as c,j as d,N as f,g,h,Q as i,ae as l,m,re as n,te as o,P as p,$ as r,ne as s,Z as t,F as u};
|