@openchambery/web 1.18.2-beta.4 → 1.18.2-beta.40

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.
Files changed (148) hide show
  1. package/dist/assets/{AgentAvatar-B2kZjgaf.js → AgentAvatar-OmE7AspO.js} +1 -1
  2. package/dist/assets/AssistantView-1qhaLhHt.js +1 -0
  3. package/dist/assets/{ChatContainer-BmLxb00F.js → ChatContainer-CEXwPvOE.js} +40 -40
  4. package/dist/assets/{DiagramView-GH3vG8Z5.js → DiagramView-zedL3sNZ.js} +1 -1
  5. package/dist/assets/{FadeInOnReveal-aeWlaqVB.js → FadeInOnReveal-EygBOzfu.js} +1 -1
  6. package/dist/assets/{Icon-AXqa-fYB.js → Icon-C0dydAmx.js} +1 -1
  7. package/dist/assets/{MarkdownRendererImpl-tgkSfBku.js → MarkdownRendererImpl-CbBKHgg_.js} +2 -2
  8. package/dist/assets/{MobileDetailNavigation-CyDXHPw9.js → MobileDetailNavigation-BuGHMy3o.js} +1 -1
  9. package/dist/assets/MobileShareBridge-DwJRFCl2.js +4 -0
  10. package/dist/assets/MobileSurface-BBWgxzyI.js +2 -0
  11. package/dist/assets/{MultiRunWindow-CJQ8RU1e.js → MultiRunWindow-DJu-y4fb.js} +1 -1
  12. package/dist/assets/{OnboardingScreen-DiPnIwza.js → OnboardingScreen-Ck8vLrCb.js} +1 -1
  13. package/dist/assets/OverlayScrollbar-DMQhwzR3.js +2 -0
  14. package/dist/assets/SettingsView-BzZTiaDd.js +25 -0
  15. package/dist/assets/{SettingsWindow-zVXnRr6V.js → SettingsWindow-Biji-Bb4.js} +1 -1
  16. package/dist/assets/{TerminalView-CE3CCTsi.js → TerminalView-BKCM76aM.js} +1 -1
  17. package/dist/assets/{ToolOutputDialog-C3_vf7HM.js → ToolOutputDialog-6lL_lCmU.js} +1 -1
  18. package/dist/assets/appThemeRegistry-DUeCYxWD.js +2 -0
  19. package/dist/assets/assistant-guide-hero-wide-DiFIThB0.jpg +0 -0
  20. package/dist/assets/{button-CDvMVaiO.js → button-Iv9uULki.js} +1 -1
  21. package/dist/assets/capgoAdapter-BSPH5_gX.js +1 -0
  22. package/dist/assets/{clipboard-CbqhDr1g.js → clipboard-DH0BvKYH.js} +1 -1
  23. package/dist/assets/{collapsible-C2aamDvD.js → collapsible-C46kU7ea.js} +1 -1
  24. package/dist/assets/{context-menu-wdR3gf8a.js → context-menu-BWKM1gKq.js} +1 -1
  25. package/dist/assets/{desktopHosts-CBoBpJ1Z.js → desktopHosts-DV_01iQq.js} +1 -1
  26. package/dist/assets/{desktopRelayRestore-l2R9muux.js → desktopRelayRestore-DhQzRu4d.js} +1 -1
  27. package/dist/assets/{diagram-CEon0BQs.js → diagram-CqOdzPLy.js} +1 -1
  28. package/dist/assets/{dialog--cf4dygO.js → dialog-BPXCMWcj.js} +1 -1
  29. package/dist/assets/{es-DCoGZljP.js → es-DyE3MYjW.js} +4 -4
  30. package/dist/assets/{fileQueries-CE_DaZWQ.js → fileQueries-EAHC6GsF.js} +1 -1
  31. package/dist/assets/{fr-dkEoZpPz.js → fr-T-bfFDvO.js} +4 -4
  32. package/dist/assets/gitApi-4LIdr-v1.js +7 -0
  33. package/dist/assets/{input-k9DGGyZ6.js → input-7arjRNdx.js} +1 -1
  34. package/dist/assets/insertionBoundaries-Dbq-aDBu.js +1 -0
  35. package/dist/assets/{ja-bQwSsvRr.js → ja-CZPkddOJ.js} +4 -4
  36. package/dist/assets/{ko-Kq5C3hsv.js → ko-MUUqS5Un.js} +4 -4
  37. package/dist/assets/main-C-5guI2W.js +2 -0
  38. package/dist/assets/main-CyVIqNNp.js +172 -0
  39. package/dist/assets/{markdown-worker-DkeWiER6.js → markdown-worker-sIoCa792.js} +1 -1
  40. package/dist/assets/{markdownTheme-DNT93i5L.js → markdownTheme-QtXMKzKz.js} +1 -1
  41. package/dist/assets/miniChat-DjAmMQNF.js +2 -0
  42. package/dist/assets/mobile-B72TTAxF.js +2 -0
  43. package/dist/assets/multirun-hsF95duc.js +4 -0
  44. package/dist/assets/{persistence-DPNMIbF5.js → persistence-Cm9DnxXq.js} +2 -2
  45. package/dist/assets/pl-g4y8Kn6w.js +15 -0
  46. package/dist/assets/platform-BrOZ1tqx.js +2 -0
  47. package/dist/assets/projectMeta-r5NAkHfX.js +3 -0
  48. package/dist/assets/{pt-BR-MSPTLfTm.js → pt-BR-Boqh_bme.js} +4 -4
  49. package/dist/assets/radio-G_YvD3ft.js +1 -0
  50. package/dist/assets/renderElectronMiniChatApp-YPzmrpPR.js +2 -0
  51. package/dist/assets/renderMobileApp-CIKcbD89.js +23 -0
  52. package/dist/assets/runtimeConfig-EBmDM9YF.js +2 -0
  53. package/dist/assets/runtimeEndpointReset-m802uRQ1.js +145 -0
  54. package/dist/assets/{sortable-tabs-strip-8qgYIxgY.js → sortable-tabs-strip-OO0ijdmq.js} +1 -1
  55. package/dist/assets/src-BBD2IyWD.css +2 -0
  56. package/dist/assets/{store-OURVnLSN.js → store-BLmIK6EO.js} +4 -4
  57. package/dist/assets/terminalApi-BunCJZ0A.js +1 -0
  58. package/dist/assets/{tooltip-DMNR5rN0.js → tooltip-CO8qCWXw.js} +1 -1
  59. package/dist/assets/types-BuiqMmh_.js +1 -0
  60. package/dist/assets/{uk-cSkRAYFY.js → uk-B4CEXe9W.js} +4 -4
  61. package/dist/assets/{url-7MqoLs9X.js → url-CM2fyKko.js} +1 -1
  62. package/dist/assets/useAppFontEffects-BApC_Nk8.js +7 -0
  63. package/dist/assets/{useAssistantUIStore-Bq3cPj2x.js → useAssistantUIStore-B9YvQgXU.js} +1 -1
  64. package/dist/assets/useDesktopWindowControlsLayout-CPOQ6w0N.js +1 -0
  65. package/dist/assets/useEffectiveDirectory-Bc-cEAh0.js +1 -0
  66. package/dist/assets/{useFontPreferences-CIurCeNv.js → useFontPreferences-DKIVD8RE.js} +1 -1
  67. package/dist/assets/useMobileNavigationStore-f5hodHkc.js +476 -0
  68. package/dist/assets/useSessionAutoCleanup-EKU0ZYhf.js +1 -0
  69. package/dist/assets/{useUIStore-5agS8bsW.js → useUIStore-CL06MzOk.js} +1 -1
  70. package/dist/assets/{useWorkerHighlightedLines-DEhp2GTh.js → useWorkerHighlightedLines-DBz6RbGf.js} +1 -1
  71. package/dist/assets/{utils-Co19EJEL.js → utils-DlvuQ5yV.js} +1 -1
  72. package/dist/assets/{zh-CN-BKqeT_uz.js → zh-CN-C4wauCqC.js} +4 -4
  73. package/dist/assets/{zh-TW-BaNjJ8Y4.js → zh-TW-DtT3aVC7.js} +4 -4
  74. package/dist/index.html +13 -11
  75. package/dist/mini-chat.html +11 -9
  76. package/dist/mobile.html +11 -9
  77. package/package.json +1 -1
  78. package/server/index.js +7 -0
  79. package/server/lib/assistants/DOCUMENTATION.md +2 -2
  80. package/server/lib/assistants/history-state.js +23 -0
  81. package/server/lib/assistants/history-state.test.js +57 -0
  82. package/server/lib/assistants/service.js +44 -15
  83. package/server/lib/assistants/service.test.js +120 -5
  84. package/server/lib/event-stream/DOCUMENTATION.md +2 -2
  85. package/server/lib/event-stream/diff-summary.js +39 -11
  86. package/server/lib/event-stream/diff-summary.test.js +73 -6
  87. package/server/lib/event-stream/protocol.test.js +70 -7
  88. package/server/lib/message-queue/DOCUMENTATION.md +1 -1
  89. package/server/lib/notifications/DOCUMENTATION.md +2 -2
  90. package/server/lib/notifications/runtime.js +68 -27
  91. package/server/lib/notifications/runtime.test.js +176 -0
  92. package/server/lib/opencode/DOCUMENTATION.md +1 -1
  93. package/server/lib/opencode/feature-routes-runtime.test.js +10 -1
  94. package/server/lib/session-index/DOCUMENTATION.md +12 -6
  95. package/server/lib/session-index/routes.js +34 -0
  96. package/server/lib/session-index/routes.test.js +76 -0
  97. package/server/lib/session-index/service.js +53 -4
  98. package/server/lib/session-index/service.test.js +72 -2
  99. package/server/lib/session-title/DOCUMENTATION.md +19 -14
  100. package/server/lib/session-title/runtime.js +8 -8
  101. package/server/lib/session-title/runtime.test.js +231 -0
  102. package/server/lib/session-turn-pages/DOCUMENTATION.md +26 -6
  103. package/server/lib/session-turn-pages/changes.service.js +156 -0
  104. package/server/lib/session-turn-pages/changes.service.test.js +188 -0
  105. package/server/lib/session-turn-pages/reconcile.routes.test.js +52 -0
  106. package/server/lib/session-turn-pages/reconcile.service.js +3 -1
  107. package/server/lib/session-turn-pages/reconcile.service.test.js +44 -0
  108. package/server/lib/session-turn-pages/routes.js +273 -12
  109. package/server/lib/session-turn-pages/routes.test.js +387 -0
  110. package/server/lib/session-turn-pages/service.js +31 -7
  111. package/server/lib/session-turn-pages/service.test.js +40 -0
  112. package/server/lib/small-model/DOCUMENTATION.md +93 -38
  113. package/server/lib/small-model/catalog.js +10 -2
  114. package/server/lib/small-model/catalog.test.js +3 -1
  115. package/server/lib/small-model/index.js +52 -28
  116. package/server/lib/small-model/opencode-session.js +339 -0
  117. package/server/lib/small-model/opencode-session.test.js +177 -0
  118. package/server/lib/small-model/resolve.js +116 -5
  119. package/server/lib/small-model/resolve.test.js +76 -10
  120. package/server/lib/small-model/summary-settings.test.js +60 -3
  121. package/dist/assets/AssistantView-zQDlmCA-.js +0 -1
  122. package/dist/assets/MobileShareBridge-DT2ySSn1.js +0 -4
  123. package/dist/assets/MobileSurface-Bhur0fxY.js +0 -2
  124. package/dist/assets/OverlayScrollbar-DC12_DLb.js +0 -1
  125. package/dist/assets/SettingsView-BywZ5HTE.js +0 -25
  126. package/dist/assets/appThemeRegistry-Y2U1kIMh.js +0 -2
  127. package/dist/assets/gitApi-BL_etF0B.js +0 -7
  128. package/dist/assets/gitApiHttp-D8j1qRH4.js +0 -2
  129. package/dist/assets/insertionBoundaries-CjCybFIP.js +0 -1
  130. package/dist/assets/main-Bpwq1Xh1.js +0 -2
  131. package/dist/assets/main-DIVJIea3.js +0 -172
  132. package/dist/assets/miniChat-BrYw8M4I.js +0 -2
  133. package/dist/assets/mobile-i4Pu_Tak.js +0 -2
  134. package/dist/assets/multirun-OJ8angjt.js +0 -4
  135. package/dist/assets/pl-CYpMAgVn.js +0 -15
  136. package/dist/assets/projectMeta-Dt0loPh9.js +0 -3
  137. package/dist/assets/radio-SXFBBh2O.js +0 -1
  138. package/dist/assets/renderElectronMiniChatApp-BBb29zbe.js +0 -2
  139. package/dist/assets/renderMobileApp-Ctj7sqAE.js +0 -23
  140. package/dist/assets/runtimeConfig-BtWi74Pm.js +0 -1
  141. package/dist/assets/runtimeEndpointReset-By8IWO59.js +0 -145
  142. package/dist/assets/src-DOs1ZW0T.css +0 -2
  143. package/dist/assets/terminalApi-tB3qLcfa.js +0 -1
  144. package/dist/assets/useAppFontEffects-D81CYdad.js +0 -7
  145. package/dist/assets/useDesktopWindowControlsLayout-BWOeSiA5.js +0 -1
  146. package/dist/assets/useEffectiveDirectory-BNDb_82A.js +0 -1
  147. package/dist/assets/useMobileNavigationStore-DBYUoTQ0.js +0 -475
  148. package/dist/assets/useSessionAutoCleanup-Cc_AwEoh.js +0 -1
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/gitApi-BL_etF0B.js","assets/rolldown-runtime-C0FnF6B9.js","assets/persistence-DPNMIbF5.js","assets/useUIStore-5agS8bsW.js","assets/vendor-zustand-B4dlGEM2.js","assets/vendor-base-ui-CnHfUmDN.js","assets/vendor-pathe-vBmvQE8f.js","assets/vendor-react-DLPElpoQ.js","assets/vendor-tanstack-query-core-BWz0ose6.js","assets/gitApiHttp-D8j1qRH4.js","assets/vendor-opencode-sdk-C07HQypa.js","assets/vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js","assets/useMobileNavigationStore-DBYUoTQ0.js","assets/vendor-tanstack-react-query-D7pys_c9.js","assets/vendor-sonner-DVzioF3d.js","assets/clipboard-CbqhDr1g.js","assets/store-OURVnLSN.js","assets/useAssistantUIStore-Bq3cPj2x.js","assets/vendor-fuse.js-DB5wDJbI.js"])))=>i.map(i=>d[i]);
2
- import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./useUIStore-5agS8bsW.js";import{Ft as n,Sn as r,Zt as i,n as a,qt as o,t as s}from"./persistence-DPNMIbF5.js";import{nt as c,rt as l}from"./vendor-base-ui-CnHfUmDN.js";import{kt as u,yt as d}from"./gitApiHttp-D8j1qRH4.js";import{o as f}from"./vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js";import{n as p,t as m}from"./vendor-react-DLPElpoQ.js";/* empty css */import{n as h,s as g}from"./vendor-reactuses-core-DDoDDyM9.js";import{i as _,n as v}from"./clipboard-CbqhDr1g.js";import{n as y}from"./store-OURVnLSN.js";import{$i as b,Ji as x,Na as ee,On as te,b as ne,en as re,kn as ie,kt as ae,l as S,mo as oe,un as se}from"./useMobileNavigationStore-DBYUoTQ0.js";import{t as ce}from"./utils-Co19EJEL.js";import{n as le}from"./Icon-AXqa-fYB.js";import{t as ue}from"./button-CDvMVaiO.js";import{$ as de,B as fe,C,G as pe,H as w,J as me,K as he,S as ge,U as T,V as _e,W as ve,a as ye,q as E,t as D,z as be}from"./useAppFontEffects-D81CYdad.js";import{c as xe}from"./projectMeta-Dt0loPh9.js";import{r as Se}from"./tooltip-DMNR5rN0.js";import{p as Ce}from"./useSessionAutoCleanup-Cc_AwEoh.js";import{U as we,z as O}from"./radio-SXFBBh2O.js";import{A as Te,q as Ee,t as De}from"./ChatContainer-BmLxb00F.js";import{n as Oe}from"./useRuntimeAPIs-DSLXJybW.js";import{b as ke,f as Ae}from"./insertionBoundaries-CjCybFIP.js";import{i as je,n as Me,r as Ne,t as Pe}from"./useDesktopWindowControlsLayout-BWOeSiA5.js";var Fe=m(),k=p(),A=e(l(),1),j=c(),Ie=e=>{let t=(0,k.c)(3),{mode:n,children:r}=e,i;return t[0]!==r||t[1]!==n?(i=(0,j.jsx)(Te.Provider,{value:n,children:r}),t[0]=r,t[1]=n,t[2]=i):i=t[2],i},Le=e=>{let t=typeof e==`string`?e.trim():``;if(!t)return``;let n=typeof window<`u`?window.__OPENCHAMBER_HOME__:``;if(n&&t===n)return`~`;if(n&&t.startsWith(`${n}/`))return`~/${t.slice(n.length+1)}`;let r=t.split(`/`).filter(Boolean);return r.length<=3?t:`.../${r.slice(-3).join(`/`)}`},M=e=>{let t=typeof e==`string`?e.trim():``;if(!t)return``;let n=t.replace(/\\/g,`/`);return n===`/`?`/`:n.replace(/\/+$/,``)},N=e=>{let t=(0,k.c)(133),{mode:n}=e,{t:r}=v(),a=S(ze),s=S(Be),c=S(Ve),l=d(He),u=oe(Ue),f=oe(We),p=x(Ge),m=x(Ke),h=se(),g=re(a??``),_=Oe(),y=ke(qe),b;t[0]===a?b=t[1]:(b=e=>a?e.worktreeMetadata.get(a)?.path??``:``,t[0]=a,t[1]=b);let ee=S(b),ae;t[2]===a?ae=t[3]:(ae=e=>a?e.worktreeMetadata.get(a)?.branch?.trim()??null:null,t[2]=a,t[3]=ae);let de=S(ae),fe;t[4]===a?fe=t[5]:(fe=e=>a?e.getAttachment(a):void 0,t[4]=a,t[5]=fe);let C=ne(fe),pe=S(Je),[w,me]=A.useState(!1),he=typeof window<`u`?window.__OPENCHAMBER_MACOS_MAJOR__??0:0,ge=Number.isFinite(he)&&he>0,{usesFramelessChrome:T,side:_e}=Pe(),ve=ge?he>=26?`h-12`:he<=15?`h-14`:``:``,ye;t[6]!==a||t[7]!==h?(ye=a?h.find(e=>e.id===a)??null:null,t[6]=a,t[7]=h,t[8]=ye):ye=t[8];let E=ye,D=E?.worktreeMetadata??null,be,xe;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(be=()=>{i()&&o(`desktop_get_window_pinned`).then(e=>{typeof e?.pinned==`boolean`&&me(e.pinned)})},xe=[],t[9]=be,t[10]=xe):(be=t[9],xe=t[10]),A.useEffect(be,xe);let Se;t[11]!==s||t[12]!==n||t[13]!==E?.title||t[14]!==r?(Se=E?.title?.trim()||r(s||n===`draft`?`miniChat.header.newSession`:`miniChat.header.session`),t[11]=s,t[12]=n,t[13]=E?.title,t[14]=r,t[15]=Se):Se=t[15];let Ce=Se,we=E?.directory??null,O;t[16]===we?O=t[17]:(O=M(we),t[16]=we,t[17]=O);let Te=O,Ee=ee||D?.path||C?.cwd||C?.worktreeRoot||``,De;t[18]===Ee?De=t[19]:(De=M(Ee),t[18]=Ee,t[19]=De);let Fe=De,Ie;t[20]===l?Ie=t[21]:(Ie=M(l),t[20]=l,t[21]=Ie);let N=Fe||Te||pe||Ie,Re;t[22]===N?Re=t[23]:(Re=Le(N),t[22]=N,t[23]=Re);let nt=Re,rt;t[24]!==Te||t[25]!==Fe?(rt=e=>{let t=M(Fe||Te||``);if(!t)return null;for(let n of e.availableWorktreesByProject.values()){let e=n.find(e=>M(e.path)===t)?.branch?.trim();if(e)return e}return null},t[24]=Te,t[25]=Fe,t[26]=rt):rt=t[26];let it=S(rt),at,ot;t[27]!==y||t[28]!==N||t[29]!==_.git?(at=()=>{N&&y(N,_.git).catch(Ye)},ot=[y,N,_.git],t[27]=y,t[28]=N,t[29]=_.git,t[30]=at,t[31]=ot):(at=t[30],ot=t[31]),A.useEffect(at,ot),D?.projectDirectory,C?.worktreeRoot;let st;bb0:{let e=D?.projectDirectory??C?.worktreeRoot??null,n;t[32]===e?n=t[33]:(n=M(e),t[32]=e,t[33]=n);let r=n||N;if(!r){st=null;break bb0}let i;t[34]!==r||t[35]!==u?(i=u.map(Xe).filter(e=>e.normalizedPath&&(e.normalizedPath===r||r.startsWith(`${e.normalizedPath}/`))).sort(Ze)[0]??null,t[34]=r,t[35]=u,t[36]=i):i=t[36],st=i}let ct=st,lt;bb1:{let e=ct??f;if(!e){lt=nt||`OpenChamber`;break bb1}let n;t[37]===e.path?n=t[38]:(n=e.path.split(/[\\/]/).filter(Boolean).at(-1)??e.path,t[37]=e.path,t[38]=n),lt=n}let ut=lt,dt=Ae(N||null),ft;t[39]!==it||t[40]!==dt||t[41]!==D?.branch||t[42]!==C?.branch||t[43]!==de?(ft=dt||de||D?.branch?.trim()||C?.branch?.trim()||it,t[39]=it,t[40]=dt,t[41]=D?.branch,t[42]=C?.branch,t[43]=de,t[44]=ft):ft=t[44];let pt=ft,mt=pt&&pt!==`HEAD`?pt:null,ht;t[45]===p?ht=t[46]:(ht=p(),t[45]=p,t[46]=ht);let gt=ht,_t;bb2:{for(let e=g.length-1;e>=0;--e){let t=g[e];if(t.role!==`assistant`||typeof t.providerID!=`string`||typeof t.modelID!=`string`)continue;let n=m.find(e=>e.id===t.providerID)?.models.find(e=>e.id===t.modelID);if(n){_t=n;break bb2}}_t=void 0}let vt=_t,yt=gt?.limit?gt:vt,P=yt&&typeof yt.limit==`object`&&yt.limit!==null?yt.limit:null,F=P&&typeof P.context==`number`?P.context:0,bt=P&&typeof P.output==`number`?P.output:0,I;if(t[47]!==F||t[48]!==a||t[49]!==g||t[50]!==bt){bb3:{if(!a||g.length===0){I=null;break bb3}let e=ie(g,Qe);if(!e||`compacted`in e){I=null;break bb3}let n=e.tokens,r=e.totalTokens,i=F>0?F:2e5,o;t[52]!==F||t[53]!==r?(o=F>0?Math.round(r/F*100):0,t[52]=F,t[53]=r,t[54]=o):o=t[54];let s=o,c=bt>0?Math.round(te(n.output)/bt*100):void 0,l=F||0,u=bt||void 0,d;t[55]!==e||t[56]!==c||t[57]!==s||t[58]!==l||t[59]!==u||t[60]!==i||t[61]!==r?(d={totalTokens:r,percentage:s,contextLimit:l,outputLimit:u,normalizedOutput:c,thresholdLimit:i,lastMessageId:e.messageId},t[55]=e,t[56]=c,t[57]=s,t[58]=l,t[59]=u,t[60]=i,t[61]=r,t[62]=d):d=t[62],I=d}t[47]=F,t[48]=a,t[49]=g,t[50]=bt,t[51]=I}else I=t[51];let L=I,[R,xt]=A.useState(null),St;t[63]===Symbol.for(`react.memo_cache_sentinel`)?(St={WebkitAppRegion:`drag`},t[63]=St):St=t[63];let Ct=St,wt;t[64]===Symbol.for(`react.memo_cache_sentinel`)?(wt={WebkitAppRegion:`no-drag`},t[64]=wt):wt=t[64];let Tt=wt,Et,Dt;t[65]!==L||t[66]!==a?(Et=()=>{if(!a){xt($e);return}if(L&&L.totalTokens>0){xt(e=>e&&e.totalTokens===L.totalTokens&&e.percentage===L.percentage&&e.contextLimit===L.contextLimit&&(e.outputLimit??0)===(L.outputLimit??0)&&(e.normalizedOutput??0)===(L.normalizedOutput??0)&&e.thresholdLimit===L.thresholdLimit&&e.lastMessageId===L.lastMessageId?e:L);return}xt(et)},Dt=[L,a],t[65]=L,t[66]=a,t[67]=Et,t[68]=Dt):(Et=t[67],Dt=t[68]),A.useEffect(Et,Dt);let Ot=R&&R.contextLimit>0?Math.min(999,R.totalTokens/R.contextLimit*100):0,kt;t[69]===w?kt=t[70]:(kt=()=>{let e=!w;me(e),o(`desktop_set_window_pinned`,{pinned:e}).catch(()=>{me(!e)})},t[69]=w,t[70]=kt);let At=kt,jt;t[71]!==l||t[72]!==a||t[73]!==c||t[74]!==N||t[75]!==E?(jt=()=>{let e=a?{sessionId:a,directory:E?.directory??l??``}:{mode:`draft`,directory:N||l||``,projectId:c};o(`desktop_focus_main_window`,e).then(tt)},t[71]=l,t[72]=a,t[73]=c,t[74]=N,t[75]=E,t[76]=jt):jt=t[76];let Mt=jt,Nt=T?`h-12`:ve||`min-h-14`,z;t[77]===Nt?z=t[78]:(z=ce(`flex items-center gap-3 bg-background pr-3`,ge?`pl-[5.5rem]`:`pl-3`,Nt),t[77]=Nt,t[78]=z);let B;t[79]!==T||t[80]!==_e?(B=T&&_e===`left`?(0,j.jsx)(Ne,{visible:!0,position:`left`}):null,t[79]=T,t[80]=_e,t[81]=B):B=t[81];let V;t[82]===r?V=t[83]:(V=r(`sessions.switcher.openAria`),t[82]=r,t[83]=V);let H;t[84]===Ce?H=t[85]:(H=(0,j.jsx)(`span`,{className:`truncate typography-ui-label text-[14px] font-normal leading-tight text-foreground max-w-full`,children:Ce}),t[84]=Ce,t[85]=H);let U;t[86]===ut?U=t[87]:(U=(0,j.jsx)(`span`,{className:`truncate`,children:ut}),t[86]=ut,t[87]=U);let W;t[88]===mt?W=t[89]:(W=mt?(0,j.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-0.5`,children:[(0,j.jsx)(le,{name:`git-branch`,className:`h-3 w-3 flex-shrink-0 text-muted-foreground/70`}),(0,j.jsx)(`span`,{className:`truncate`,children:mt})]}):null,t[88]=mt,t[89]=W);let G;t[90]!==U||t[91]!==W?(G=(0,j.jsxs)(`span`,{className:`flex min-w-0 max-w-full items-center gap-1.5 truncate typography-micro text-[10.5px] font-normal leading-tight text-muted-foreground/75`,children:[U,W]}),t[90]=U,t[91]=W,t[92]=G):G=t[92];let K;t[93]!==V||t[94]!==H||t[95]!==G?(K=(0,j.jsx)(Me,{children:(0,j.jsxs)(`button`,{type:`button`,"aria-label":V,style:Tt,className:`flex min-w-0 max-w-full flex-col items-start rounded-md px-1 py-0.5 text-left transition-colors hover:bg-interactive-hover/60 focus-visible:outline-none focus-visible:bg-interactive-hover/60`,children:[H,G]})}),t[93]=V,t[94]=H,t[95]=G,t[96]=K):K=t[96];let Pt;t[97]===Symbol.for(`react.memo_cache_sentinel`)?(Pt=(0,j.jsx)(`div`,{className:`min-w-0 flex-1`}),t[97]=Pt):Pt=t[97];let q;t[98]!==Ot||t[99]!==R?(q=R&&R.totalTokens>0?(0,j.jsx)(je,{totalTokens:R.totalTokens,percentage:Ot,colorPercentage:R.percentage,contextLimit:R.contextLimit,outputLimit:R.outputLimit??0,className:`h-9 shrink-0 pl-1 pr-1 typography-ui-label`,valueClassName:`font-semibold leading-none`,hideIcon:!0,showPercentIcon:!0,percentIconClassName:`h-4.5 w-4.5`}):null,t[98]=Ot,t[99]=R,t[100]=q):q=t[100];let J;t[101]!==w||t[102]!==r?(J=r(w?`miniChat.actions.unpinAria`:`miniChat.actions.pinAria`),t[101]=w,t[102]=r,t[103]=J):J=t[103];let Y;t[104]!==w||t[105]!==r?(Y=r(w?`miniChat.actions.unpin`:`miniChat.actions.pin`),t[104]=w,t[105]=r,t[106]=Y):Y=t[106];let X;t[107]===w?X=t[108]:(X=w?(0,j.jsx)(le,{name:`pushpin-2-fill`,className:`h-4 w-4`}):(0,j.jsx)(le,{name:`pushpin-2`,className:`h-4 w-4`}),t[107]=w,t[108]=X);let Z;t[109]!==At||t[110]!==J||t[111]!==Y||t[112]!==X?(Z=(0,j.jsx)(ue,{type:`button`,variant:`ghost`,size:`icon`,onClick:At,"aria-label":J,title:Y,style:Tt,children:X}),t[109]=At,t[110]=J,t[111]=Y,t[112]=X,t[113]=Z):Z=t[113];let Q;t[114]===r?Q=t[115]:(Q=r(`miniChat.actions.openMainAria`),t[114]=r,t[115]=Q);let Ft;t[116]===r?Ft=t[117]:(Ft=r(`miniChat.actions.openMain`),t[116]=r,t[117]=Ft);let It;t[118]===Symbol.for(`react.memo_cache_sentinel`)?(It=(0,j.jsx)(le,{name:`external-link`,className:`h-4 w-4`}),t[118]=It):It=t[118];let Lt;t[119]!==Mt||t[120]!==Q||t[121]!==Ft?(Lt=(0,j.jsx)(ue,{type:`button`,variant:`ghost`,size:`icon`,onClick:Mt,"aria-label":Q,title:Ft,style:Tt,children:It}),t[119]=Mt,t[120]=Q,t[121]=Ft,t[122]=Lt):Lt=t[122];let Rt=T&&_e===`right`,$;t[123]===Rt?$=t[124]:($=(0,j.jsx)(Ne,{visible:Rt,position:`right`}),t[123]=Rt,t[124]=$);let zt;return t[125]!==z||t[126]!==B||t[127]!==K||t[128]!==q||t[129]!==Z||t[130]!==Lt||t[131]!==$?(zt=(0,j.jsxs)(`header`,{className:z,style:Ct,children:[B,K,Pt,q,Z,Lt,$]}),t[125]=z,t[126]=B,t[127]=K,t[128]=q,t[129]=Z,t[130]=Lt,t[131]=$,t[132]=zt):zt=t[132],zt},Re=e=>{let t=(0,k.c)(9),{mode:n,autoOpenDraft:r,unavailable:i}=e,a=r!==void 0&&r,o=i!==void 0&&i,{t:s}=v(),c;t[0]===n?c=t[1]:(c=(0,j.jsx)(N,{mode:n}),t[0]=n,t[1]=c);let l;t[2]!==a||t[3]!==s||t[4]!==o?(l=(0,j.jsx)(`main`,{className:`min-h-0 flex-1`,children:o?(0,j.jsx)(`div`,{className:`flex h-full items-center justify-center px-6 text-center typography-ui-label text-muted-foreground`,children:(0,j.jsxs)(`div`,{className:`max-w-sm rounded-lg border border-[var(--interactive-border)] bg-[var(--surface-elevated)] px-4 py-3`,children:[(0,j.jsx)(`div`,{className:`font-medium text-foreground`,children:s(`miniChat.unavailable.title`)}),(0,j.jsx)(`div`,{className:`mt-1 typography-small text-muted-foreground`,children:s(`miniChat.unavailable.description`)})]})}):(0,j.jsx)(Ie,{mode:`mini-chat`,children:(0,j.jsx)(De,{autoOpenDraft:a})})}),t[2]=a,t[3]=s,t[4]=o,t[5]=l):l=t[5];let u;return t[6]!==c||t[7]!==l?(u=(0,j.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col bg-background text-foreground`,children:[c,l]}),t[6]=c,t[7]=l,t[8]=u):u=t[8],u};function ze(e){return e.currentSessionId}function Be(e){return!!e.newSessionDraft?.open}function Ve(e){return e.newSessionDraft?.selectedProjectId??null}function He(e){return e.currentDirectory}function Ue(e){return e.projects}function We(e){return e.getActiveProject()}function Ge(e){return e.getCurrentModel}function Ke(e){return e.providers}function qe(e){return e.ensureStatus}function Je(e){return e.newSessionDraft?.open?M(e.newSessionDraft.bootstrapPendingDirectory??e.newSessionDraft.directoryOverride??``):``}function Ye(){}function Xe(e){return{...e,normalizedPath:M(e.path)}}function Ze(e,t){return t.path.length-e.path.length}function Qe(e){return b(e)}function $e(e){return e===null?e:null}function et(e){return e===null?e:null}function tt(e){return e?.focused===!0?o(`desktop_close_current_window`):null}var nt=()=>{document.querySelector(`textarea[data-chat-input="true"]`)?.focus()},rt=()=>{let e=t(e=>e.shortcutOverrides),r=d(e=>e.currentDirectory),i=oe(e=>e.getActiveProject()),a=S(e=>e.openNewSessionDraft);A.useEffect(()=>{let s=t=>we(t,e),c=e=>{if(O(e,s(`focus_input`))){e.preventDefault(),nt();return}if(n()&&O(e,s(`close_context_panel_tab`))){e.preventDefault(),o(`desktop_close_current_window`).catch(e=>{console.warn(`[mini-chat-shortcuts] failed to close current window`,e)});return}if(n()&&O(e,s(`new_mini_chat`))){e.preventDefault(),o(`desktop_open_draft_mini_chat_window`,{directory:r||i?.path||``,projectId:i?.id??null})?.catch(e=>{console.warn(`[mini-chat-shortcuts] failed to open draft mini chat window`,e)});return}if(O(e,s(`new_chat`))){e.preventDefault(),a({selectedProjectId:i?.id??null,directoryOverride:r||i?.path||null,preserveDirectoryOverride:!!(r||i?.path)}),nt();return}if(O(e,s(`open_model_selector`))){e.preventDefault();let{isModelSelectorOpen:n,setModelSelectorOpen:r}=t.getState();r(!n,{instant:!0});return}if(O(e,s(`cycle_thinking_variant`))){let t=x.getState();if(t.getCurrentModelVariants().length===0)return;e.preventDefault(),t.cycleCurrentVariant();let n=x.getState().currentVariant,r=S.getState().currentSessionId,i=x.getState().currentAgentName,a=x.getState().currentProviderId,o=x.getState().currentModelId;r&&i&&a&&o&&ee.getState().saveAgentModelVariantForSession(r,i,a,o,n),i&&a&&o&&x.getState().saveAgentModelSelection(i,a,o,n);return}let c=O(e,s(`cycle_favorite_model_forward`)),l=O(e,s(`cycle_favorite_model_backward`));if(c||l){let{favoriteModels:n,addRecentModel:r}=t.getState();if(n.length===0)return;e.preventDefault();let{currentProviderId:i,currentModelId:a,setProvider:o,setModel:s}=x.getState(),l=n[(n.findIndex(e=>e.providerID===i&&e.modelID===a)+(c?1:-1)+n.length)%n.length];o(l.providerID),s(l.modelID),r(l.providerID,l.modelID)}};return window.addEventListener(`keydown`,c),()=>window.removeEventListener(`keydown`,c)},[i?.id,i?.path,r,a,e])},it=`openchamber:mini-chat-presence`,at=()=>{let e=typeof window<`u`?new URLSearchParams(window.location.search):new URLSearchParams;return{mode:e.get(`mode`)===`session`?`session`:`draft`,sessionId:e.get(`sessionId`)?.trim()||null,directory:e.get(`directory`)?.trim()||null,projectId:e.get(`projectId`)?.trim()||null}},ot=({config:e})=>{let t=se(),n=d(e=>e.currentDirectory),r=d(e=>e.setDirectory),i=oe(e=>e.projects),a=S(e=>e.currentSessionId),o=S(e=>!!e.newSessionDraft?.open),s=S(e=>e.newSessionDraft?.open?e.newSessionDraft.bootstrapPendingDirectory??e.newSessionDraft.directoryOverride??``:``),c=S(e=>e.setCurrentSession),l=S(e=>e.openNewSessionDraft),u=x(e=>e.initializeApp),p=x(e=>e.isInitialized),m=Ee();A.useEffect(()=>{u()},[u]),A.useEffect(()=>{if(p)return;let e=!0,t=0,n=window.setInterval(()=>{if(e){if(t+=1,t>10){window.clearInterval(n);return}x.getState().isInitialized||x.getState().initializeApp()}},1e3);return()=>{e=!1,window.clearInterval(n)}},[p]);let _=A.useRef(!1);A.useEffect(()=>{if(!_.current&&e.mode===`session`&&e.directory){if(n===e.directory){_.current=!0;return}r(e.directory,{showOverlay:!1}),_.current=!0}},[e.directory,e.mode,n,r]),A.useEffect(()=>{e.mode!==`draft`||!o||a||!s||n===s||r(s,{showOverlay:!1})},[e.mode,n,a,s,o,r]),_e({enabled:!0,source:`electronMiniChat:recovery`});let v=A.useRef(!1);A.useEffect(()=>{if(v.current||e.mode!==`session`||!e.sessionId)return;if(a===e.sessionId){v.current=!0;return}if(a){v.current=!0;return}let n=t.find(t=>t.id===e.sessionId);if(!n){m.ensureSessionRenderable(e.sessionId);return}let r=n.directory??e.directory;c(e.sessionId,r),v.current=!0},[e,a,t,c,m]);let y=g(t),b=h(e=>{let t=e.detail,n=typeof t?.sessionId==`string`?t.sessionId.trim():``;if(!n||S.getState().currentSessionId===n)return;let r=typeof t?.directory==`string`&&t.directory.trim().length>0?t.directory.trim():y.current.find(e=>e.id===n)?.directory??null;m.ensureSessionRenderable(n),c(n,r),v.current=!0});A.useEffect(()=>(window.addEventListener(`openchamber:open-session`,b),()=>window.removeEventListener(`openchamber:open-session`,b)),[b]),A.useEffect(()=>{e.mode!==`draft`||o||a||l({selectedProjectId:e.projectId,directoryOverride:e.directory,preserveDirectoryOverride:!!e.directory})},[e,a,o,l]),A.useEffect(()=>{if(i.length===0)return;let e=!1;return(async()=>{await Promise.all(i.map(async t=>{let n=t.path.replace(/\\/g,`/`).replace(/\/+$/,``);if(n)try{if(!(ke.getState().directories.get(n)?.isGitRepo??await f(()=>import(`./gitApi-BL_etF0B.js`).then(e=>e.S).then(e=>e.checkIsGitRepository(n)),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])))||e)return;await xe({id:t.id,path:n},{isCurrent:()=>!e})}catch{}}))})(),()=>{e=!0}},[i]);let ee=A.useRef(!1);return A.useEffect(()=>{if(ee.current||!p)return;let t=()=>{if(ee.current)return;ee.current=!0;let e=typeof document<`u`?document.getElementById(`initial-loading`):null;e&&(e.classList.add(`fade-out`),window.setTimeout(()=>e.remove(),300))},n=e.mode===`session`?a===e.sessionId:o,r=window.setTimeout(t,n?100:1500);return()=>window.clearTimeout(r)},[p,e.mode,e.sessionId,a,o]),null},st=()=>{let e=(0,k.c)(4),t=S(ht),n=d(gt),r,i;return e[0]!==n||e[1]!==t?(r=()=>{if(!t||!n||typeof BroadcastChannel>`u`)return;let e=new BroadcastChannel(it),r=r=>{e.postMessage({type:`mini-chat-session-presence`,sessionId:t,directory:n,viewed:r})};r(!0);let i=window.setInterval(()=>r(!0),5e3),a=()=>r(!1);return window.addEventListener(`beforeunload`,a),()=>{window.clearInterval(i),window.removeEventListener(`beforeunload`,a),r(!1),e.close()}},i=[n,t],e[0]=n,e[1]=t,e[2]=r,e[3]=i):(r=e[2],i=e[3]),A.useEffect(r,i),null},ct=e=>{let t=(0,k.c)(6),n=se(),r=S(_t),[i,a]=A.useState(!1),o,s;return t[0]!==e.mode||t[1]!==e.sessionId||t[2]!==r||t[3]!==n?(o=()=>{if(e.mode!==`session`||!e.sessionId||r===e.sessionId){a(!1);return}if(n.some(t=>t.id===e.sessionId)){a(!1);return}let t=window.setTimeout(()=>a(!0),5e3);return()=>window.clearTimeout(t)},s=[e.mode,e.sessionId,r,n],t[0]=e.mode,t[1]=e.sessionId,t[2]=r,t[3]=n,t[4]=o,t[5]=s):(o=t[4],s=t[5]),A.useEffect(o,s),i};function lt(e){let t=(0,k.c)(16),{apis:n}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=at(),t[0]=i):i=t[0];let a=i,o=d(pt),s=S(ft),c=S(dt),l,f;t[1]===o?(l=t[2],f=t[3]):(l=()=>{u.setDirectory(o||a.directory||void 0)},f=[a.directory,o],t[1]=o,t[2]=l,t[3]=f),A.useEffect(l,f);let p,m;t[4]===n?(p=t[5],m=t[6]):(p=()=>(r(n),ut),m=[n],t[4]=n,t[5]=p,t[6]=m),A.useEffect(p,m),D(),rt();let h;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(h={enabled:!0},t[7]=h):h=t[7],C(h),ge();let g;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(g=u.getSdkClient(),t[8]=g):g=t[8];let _=o||a.directory||``,v=!(c&&s===null),y;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,j.jsx)(Se,{delayDuration:300,skipDelayDuration:150,children:(0,j.jsxs)(`div`,{className:`h-full text-foreground bg-background`,children:[(0,j.jsx)(mt,{config:a}),(0,j.jsx)(be,{})]})}),t[9]=y):y=t[9];let b;t[10]===n?b=t[11]:(b=(0,j.jsx)(fe,{apis:n,children:y}),t[10]=n,t[11]=b);let x;return t[12]!==b||t[13]!==_||t[14]!==v?(x=(0,j.jsx)(Ce,{children:(0,j.jsx)(ae,{sdk:g,directory:_,bootstrapDirectory:v,children:b})}),t[12]=b,t[13]=_,t[14]=v,t[15]=x):x=t[15],x}function ut(){return r(null)}function dt(e){return!!e.newSessionDraft?.open}function ft(e){return e.currentSessionId}function pt(e){return e.currentDirectory}var mt=e=>{let t=(0,k.c)(11),{config:n}=e,r=ct(n),i;t[0]===n?i=t[1]:(i=(0,j.jsx)(ot,{config:n}),t[0]=n,t[1]=i);let a,o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,j.jsx)(st,{}),o=(0,j.jsx)(ye,{embeddedBackgroundWorkEnabled:!0}),t[2]=a,t[3]=o):(a=t[2],o=t[3]);let s=n.mode===`draft`,c;t[4]!==n.mode||t[5]!==r||t[6]!==s?(c=(0,j.jsx)(Re,{mode:n.mode,autoOpenDraft:s,unavailable:r}),t[4]=n.mode,t[5]=r,t[6]=s,t[7]=c):c=t[7];let l;return t[8]!==i||t[9]!==c?(l=(0,j.jsxs)(j.Fragment,{children:[i,a,o,c]}),t[8]=i,t[9]=c,t[10]=l):l=t[10],l};function ht(e){return e.currentSessionId}function gt(e){return e.currentDirectory}function _t(e){return e.currentSessionId}var vt=()=>{y(),s().then(()=>{Promise.all([a(),de()]).catch(e=>{console.error(`[mini-chat-main] settings init failed:`,e)}),pe(),ve(),T()}).catch(e=>{console.error(`[mini-chat-main] appearance init failed:`,e)})};function yt(e){vt();let t=document.getElementById(`root`);if(!t)throw Error(`Root element not found`);(0,Fe.createRoot)(t).render((0,j.jsx)(A.StrictMode,{children:(0,j.jsx)(w,{children:(0,j.jsx)(_,{children:(0,j.jsx)(he,{children:(0,j.jsx)(E,{children:(0,j.jsx)(me,{children:(0,j.jsx)(lt,{apis:e})})})})})})}))}export{yt as renderElectronMiniChatApp};