@vantran-se/openchamber-web 1.22.1 → 1.22.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/README.md +2 -3
  2. package/bin/cli.js +4 -1
  3. package/bin/cli.test.js +92 -0
  4. package/bin/lib/cli-startup.js +49 -0
  5. package/bin/lib/commands-startup.js +41 -6
  6. package/dist/assets/{CodeMirrorCommentWidgets-C53Q7pbX.js → CodeMirrorCommentWidgets-CV1HNV5l.js} +1 -1
  7. package/dist/assets/{DiffView-Dh1ey2x9.js → DiffView-DkkSa30n.js} +3 -3
  8. package/dist/assets/DirtyBranchSwitchDialog-DW4WaXPc.js +1 -0
  9. package/dist/assets/FilesView-DDu8zDy5.js +17 -0
  10. package/dist/assets/GitView-1Ixo8z-M.js +6 -0
  11. package/dist/assets/{JsonTreeView-Bl0lp9Rs.js → JsonTreeView-DvCLL7dT.js} +1 -1
  12. package/dist/assets/LinearIssuesView-Bs1rZrF2.js +1 -0
  13. package/dist/assets/{MarkdownImageGallery-bA0PS-tn.js → MarkdownImageGallery-DyJUc6h9.js} +1 -1
  14. package/dist/assets/MarkdownRendererImpl-Bdm8vMkS.js +12 -0
  15. package/dist/assets/{OnboardingScreen-D3kYJIb6.js → OnboardingScreen-Dg66B6oB.js} +1 -1
  16. package/dist/assets/{PatchDiff-D6NXAfJk.js → PatchDiff-CAduNjfZ.js} +1 -1
  17. package/dist/assets/{PierreDiffViewer-Ct2A13NO.js → PierreDiffViewer-CTIb1GYD.js} +2 -2
  18. package/dist/assets/PlanView-trDaszfq.js +5 -0
  19. package/dist/assets/SettingsView-DStMfBmy.js +28 -0
  20. package/dist/assets/{SettingsWindow-BiWDBRvb.js → SettingsWindow-DQQFnrSZ.js} +1 -1
  21. package/dist/assets/{ToolOutputDialog-BQexMQIm.js → ToolOutputDialog-SjY2XZlA.js} +6 -6
  22. package/dist/assets/ToolPartDiffPreview-DJdzUQPE.js +8 -0
  23. package/dist/assets/{VirtualizedFileDiff-Dpz2ra8h.js → VirtualizedFileDiff-Iehm4iMH.js} +1 -1
  24. package/dist/assets/{WalkthroughView-AX-u2pFg.js → WalkthroughView-BALp2d9O.js} +2 -2
  25. package/dist/assets/{computeVirtualFileMetrics-DtyozJdt.js → computeVirtualFileMetrics-BKZA43vN.js} +2 -2
  26. package/dist/assets/{contextPanelEmbeddedChat-C9EcRSDF.js → contextPanelEmbeddedChat-D2PM_pEv.js} +1 -1
  27. package/dist/assets/{de-DqVn5vme.js → de-DlSNLAcy.js} +6 -5
  28. package/dist/assets/{es-hj43Z53i.js → es-D1GbowZ3.js} +6 -5
  29. package/dist/assets/{fr-BmkZt2mF.js → fr-BPOLXIAY.js} +6 -5
  30. package/dist/assets/{index-DmhujXbT.js → index-Ce0LR32V.js} +1 -1
  31. package/dist/assets/index-D42fPvt4.css +1 -0
  32. package/dist/assets/index-DlFbCkEy.js +39 -0
  33. package/dist/assets/{isDiffPlainText-XyulMHxx.js → isDiffPlainText-DaB2u_Kv.js} +1 -1
  34. package/dist/assets/{isFilePlainText-B19Ddps1.js → isFilePlainText-yJZa2IAC.js} +1 -1
  35. package/dist/assets/{ja-DioMIEGF.js → ja-Dm2-m9io.js} +7 -6
  36. package/dist/assets/{ko-BqPgaQJb.js → ko-CIXlzQ5-.js} +7 -6
  37. package/dist/assets/main-B7qTsd_w.js +930 -0
  38. package/dist/assets/{main-B2a_JfKZ.js → main-CyQrD9dG.js} +2 -2
  39. package/dist/assets/{markdownCore-CWRCqSH2.js → markdownCore-CeEwGgEK.js} +2 -2
  40. package/dist/assets/{miniChat-B3CSU_Ps.js → miniChat-7cPEx4sV.js} +2 -2
  41. package/dist/assets/{mobile-QNcFIVCW.js → mobile-QtzkPTM8.js} +2 -2
  42. package/dist/assets/{patchFileDiff-BpMQZnYu.js → patchFileDiff-No55fDiD.js} +1 -1
  43. package/dist/assets/pl-B2zmkOpw.js +16 -0
  44. package/dist/assets/{pt-BR-BqH8fuCH.js → pt-BR-C-JE5H6y.js} +6 -5
  45. package/dist/assets/{renderElectronMiniChatApp-D77bmLqo.js → renderElectronMiniChatApp-ePTkBJNS.js} +2 -2
  46. package/dist/assets/renderMobileApp-D9RjB9DX.js +25 -0
  47. package/dist/assets/runtimeEndpointReset-DfJIWwwo.js +17 -0
  48. package/dist/assets/{scheduledTasksApi-BSRCtP6T.js → scheduledTasksApi-DuhdyYEa.js} +1 -1
  49. package/dist/assets/{shikiHighlight-DE-OwqGw.js → shikiHighlight-EHEg58-n.js} +1 -1
  50. package/dist/assets/tr-MJmRIzEY.js +7 -0
  51. package/dist/assets/{uk-BkkfxbOs.js → uk-BmD7eM8k.js} +6 -5
  52. package/dist/assets/{useAppFontEffects-COAeIX-D.js → useAppFontEffects-CuJPKtI1.js} +151 -180
  53. package/dist/assets/useInlineCommentController-DD7_7OP_.js +2 -0
  54. package/dist/assets/{useRootScrollLock-C0N9mCwz.js → useRootScrollLock-DRGAe8PN.js} +1 -1
  55. package/dist/assets/{vendor-codemirror-language-data-BG3v1Ghq.js → vendor-codemirror-language-data-9ZzoH0o0.js} +2 -2
  56. package/dist/assets/vendor-zod-CK21ihK-.js +39 -0
  57. package/dist/assets/{web-components-BNMwa0qm.js → web-components-PttKBrhi.js} +1 -1
  58. package/dist/assets/{zh-CN-C6FMdVgv.js → zh-CN-JJHl4ehT.js} +6 -5
  59. package/dist/assets/{zh-TW-CdcMjDxv.js → zh-TW-DPc4DEEW.js} +6 -5
  60. package/dist/index.html +5 -5
  61. package/dist/mini-chat.html +4 -4
  62. package/dist/mobile.html +4 -4
  63. package/package.json +8 -4
  64. package/server/index.js +38 -5
  65. package/server/lib/agent-tool/runtime.js +2 -19
  66. package/server/lib/changelog/update-notes.js +82 -0
  67. package/server/lib/changelog/update-notes.test.js +59 -0
  68. package/server/lib/dev-tunnel/DOCUMENTATION.md +13 -4
  69. package/server/lib/dev-tunnel/runtime.js +4 -4
  70. package/server/lib/dev-tunnel/tunnel.test.js +20 -0
  71. package/server/lib/fs/DOCUMENTATION.md +2 -0
  72. package/server/lib/fs/routes.js +32 -21
  73. package/server/lib/fs/routes.test.js +77 -0
  74. package/server/lib/git/DOCUMENTATION.md +3 -1
  75. package/server/lib/git/routes.js +16 -0
  76. package/server/lib/git/service.js +107 -17
  77. package/server/lib/git/service.test.js +171 -0
  78. package/server/lib/mcp-reconnect/DOCUMENTATION.md +55 -0
  79. package/server/lib/mcp-reconnect/runtime.js +122 -0
  80. package/server/lib/mcp-reconnect/runtime.test.js +140 -0
  81. package/server/lib/message-queue/DOCUMENTATION.md +158 -0
  82. package/server/lib/message-queue/runtime.js +870 -0
  83. package/server/lib/message-queue/runtime.test.js +482 -0
  84. package/server/lib/openchamber-sessions/routes.js +102 -0
  85. package/server/lib/openchamber-sessions/routes.test.js +88 -0
  86. package/server/lib/opencode/DOCUMENTATION.md +13 -5
  87. package/server/lib/opencode/config-paths.test.js +116 -0
  88. package/server/lib/opencode/core-routes.js +1 -0
  89. package/server/lib/opencode/feature-routes-runtime.js +5 -0
  90. package/server/lib/opencode/input-history-scope.js +14 -0
  91. package/server/lib/opencode/managed-plugin-config.js +35 -0
  92. package/server/lib/opencode/openchamber-routes.test.js +2 -2
  93. package/server/lib/opencode/plugins.js +2 -2
  94. package/server/lib/opencode/providers.js +44 -2
  95. package/server/lib/opencode/providers.test.js +131 -4
  96. package/server/lib/opencode/routes.js +4 -4
  97. package/server/lib/opencode/server-startup-runtime.js +1 -1
  98. package/server/lib/opencode/settings-helpers.js +28 -0
  99. package/server/lib/opencode/settings-helpers.test.js +177 -0
  100. package/server/lib/opencode/settings-runtime.js +2 -2
  101. package/server/lib/opencode/settings-runtime.test.js +29 -0
  102. package/server/lib/opencode/shared.js +4 -1
  103. package/server/lib/opencode/shutdown-runtime.js +2 -0
  104. package/server/lib/opencode/skill-routes.js +2 -1
  105. package/server/lib/opencode/snippets.js +1 -2
  106. package/server/lib/package-manager.js +4 -29
  107. package/server/lib/package-manager.test.js +2 -2
  108. package/server/lib/quota/DOCUMENTATION.md +2 -1
  109. package/server/lib/quota/credentials/providers.js +4 -0
  110. package/server/lib/quota/credentials/store.js +1 -1
  111. package/server/lib/quota/credentials/store.test.js +4 -4
  112. package/server/lib/quota/providers/exe-dev.js +75 -0
  113. package/server/lib/quota/providers/exe-dev.test.js +47 -0
  114. package/server/lib/quota/providers/index.js +7 -0
  115. package/server/lib/quota/providers/opencode-go.js +1 -0
  116. package/server/lib/quota/providers/opencode-go.test.js +5 -1
  117. package/server/lib/quota/routes.js +2 -0
  118. package/server/lib/quota/utils/auth.js +1 -1
  119. package/server/lib/relay/DOCUMENTATION.md +1 -1
  120. package/server/lib/relay/host-client.test.js +9 -1
  121. package/server/lib/relay/tunnel-host.js +3 -1
  122. package/server/lib/relay/tunnel-host.test.js +9 -1
  123. package/server/lib/security/request-security.js +21 -6
  124. package/server/lib/security/request-security.test.js +42 -8
  125. package/server/lib/session-assist/runtime.js +1 -0
  126. package/server/lib/session-goal/DOCUMENTATION.md +20 -7
  127. package/server/lib/session-goal/create.js +3 -1
  128. package/server/lib/session-goal/runtime.js +77 -11
  129. package/server/lib/session-goal/runtime.test.js +426 -0
  130. package/server/lib/skills-catalog/DOCUMENTATION.md +1 -1
  131. package/server/lib/skills-catalog/install.js +3 -2
  132. package/server/lib/small-model/DOCUMENTATION.md +4 -0
  133. package/server/lib/small-model/call.js +8 -2
  134. package/server/lib/small-model/call.test.js +23 -0
  135. package/server/lib/small-model/index.js +2 -1
  136. package/server/lib/small-model/routes.js +2 -1
  137. package/server/lib/system-prompt/runtime.js +2 -21
  138. package/server/lib/terminal/DOCUMENTATION.md +11 -7
  139. package/server/lib/terminal/runtime.js +180 -26
  140. package/server/lib/terminal/runtime.test.js +553 -26
  141. package/server/lib/terminal/shells.js +17 -0
  142. package/server/lib/terminal/shells.test.js +32 -1
  143. package/server/lib/ui-auth/ui-auth.js +4 -1
  144. package/server/lib/ui-auth/ui-auth.test.js +16 -0
  145. package/server/lib/walkthrough/index.js +1 -0
  146. package/server/lib/walkthrough/routes.test.js +26 -5
  147. package/dist/assets/CommitSection-X-f2RgYr.js +0 -1
  148. package/dist/assets/FilesView-3ZYP72ki.js +0 -17
  149. package/dist/assets/GitView-CMuN7z2Z.js +0 -6
  150. package/dist/assets/LinearIssuesView-CQiUDU8b.js +0 -1
  151. package/dist/assets/MarkdownRendererImpl-BGQi2PLq.js +0 -12
  152. package/dist/assets/PlanView-6AUjzNQn.js +0 -5
  153. package/dist/assets/SettingsView-CHI8fFaK.js +0 -28
  154. package/dist/assets/ToolPartDiffPreview-DPAATNn6.js +0 -8
  155. package/dist/assets/index-L_ncV-6H.css +0 -1
  156. package/dist/assets/index-qES19dlJ.js +0 -7
  157. package/dist/assets/main-CYgSu6dx.js +0 -928
  158. package/dist/assets/pl-slULBF4R.js +0 -15
  159. package/dist/assets/renderMobileApp-BQ3Kdm-d.js +0 -25
  160. package/dist/assets/runtimeEndpointReset-CRGn1gVj.js +0 -16
  161. package/dist/assets/tr-CjEbw1Aw.js +0 -6
  162. package/dist/assets/useInlineCommentController-JsBboQwt.js +0 -2
  163. package/dist/assets/vendor-zod-BLfBSgBh.js +0 -39
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/useAppFontEffects-COAeIX-D.js","assets/vendor-react-BUCujlKS.js","assets/vendor-scheduler-7OC5HNn7.js","assets/index-qES19dlJ.js","assets/vendor-vite-runtime-DD1OZmLC.js","assets/vendor-zustand-BAGL70zf.js","assets/vendor-zod-BLfBSgBh.js","assets/vendor-opencode-sdk-BJ73u-bH.js","assets/index-L_ncV-6H.css","assets/vendor-simplewebauthn-browser-VDA66rT_.js","assets/vendor-base-ui-BeMD8X_w.js","assets/vendor-floating-ui-utils-D6FqdtJt.js","assets/vendor-floating-ui-react-dom-DxYCWdHj.js","assets/vendor-floating-ui-dom-BTvzWks8.js","assets/vendor-floating-ui-core-PuGzNPnN.js","assets/vendor-use-sync-external-store-D6wYuSt-.js","assets/contextPanelEmbeddedChat-C9EcRSDF.js","assets/vendor-class-variance-authority-5VPnzWs2.js","assets/vendor-clsx-B-dksMZM.js","assets/vendor-dnd-kit-core-BZknOX2w.js","assets/vendor-dnd-kit-utilities-B_MdXhJC.js","assets/vendor-dnd-kit-accessibility-BHxJPORy.js","assets/vendor-dnd-kit-sortable-CsEagZ81.js","assets/vendor-framer-motion-livSKyyV.js","assets/vendor-motion-dom-D_o3BTI3.js","assets/vendor-motion-utils-BGh8QBgx.js","assets/vendor-tanstack-react-virtual-g05Cx3z9.js","assets/vendor-tanstack-virtual-core-Dubg10g5.js","assets/vendor-sonner-DFyL3AvE.js","assets/vendor-cmdk-DgLInKvT.js","assets/vendor-radix-ui-react-dialog-B94Bt2qq.js","assets/vendor-radix-ui-primitive-Dc_FVRD7.js","assets/vendor-radix-ui-react-compose-refs-DcAh5WdT.js","assets/vendor-radix-ui-react-context-Czxm7Z62.js","assets/vendor-radix-ui-react-id-f5BLKEVw.js","assets/vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js","assets/vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js","assets/vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js","assets/vendor-radix-ui-react-primitive-DhVoX9SD.js","assets/vendor-radix-ui-react-slot-BQgQOasS.js","assets/vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js","assets/vendor-radix-ui-react-use-escape-keydown-oph88g-F.js","assets/vendor-radix-ui-react-focus-scope-CiaxW4dD.js","assets/vendor-radix-ui-react-portal-BMJYHWck.js","assets/vendor-radix-ui-react-presence-CNxf-uq4.js","assets/vendor-radix-ui-react-focus-guards-B6qJXYua.js","assets/vendor-react-remove-scroll-DO7dCTnK.js","assets/vendor-tslib-De9GV7Vy.js","assets/vendor-react-remove-scroll-bar-BcFYyj3E.js","assets/vendor-react-style-singleton-q6EMHnwf.js","assets/vendor-get-nonce-C-Z93AgS.js","assets/vendor-use-sidecar-zDC0RhA3.js","assets/vendor-use-callback-ref-D3RC8gqK.js","assets/vendor-aria-hidden-DvXkyWUv.js","assets/vendor-codemirror-language-BgPj_McA.js","assets/vendor-lezer-common-B3-cUCR_.js","assets/vendor-codemirror-state-C9awkmn-.js","assets/vendor-marijn-find-cluster-break-DXwl3gUT.js","assets/vendor-codemirror-view-CiLROUVV.js","assets/vendor-style-mod-NZ5MEPvj.js","assets/vendor-w3c-keyname-Vcq4gwWv.js","assets/vendor-crelt-C8TCjufn.js","assets/vendor-lezer-highlight-CDMHUZ74.js","assets/vendor-codemirror-lang-javascript-Cc2ZYbgX.js","assets/vendor-lezer-javascript-D7Tj24ot.js","assets/vendor-lezer-lr-bhwg1HMg.js","assets/vendor-codemirror-autocomplete-DzPz9Wgq.js","assets/vendor-codemirror-lang-json-CMBS2tG9.js","assets/vendor-lezer-json-Iaex0UN-.js","assets/vendor-codemirror-lang-css-O0cZX78y.js","assets/vendor-lezer-css-C5xB6jxd.js","assets/vendor-codemirror-lang-html-CfgK872x.js","assets/vendor-lezer-html-C0I1p52t.js","assets/vendor-codemirror-lang-markdown-BPGOH9ye.js","assets/vendor-lezer-markdown-C6g-d6P3.js","assets/vendor-codemirror-language-data-BG3v1Ghq.js","assets/vendor-codemirror-lang-python-HahnQaAS.js","assets/vendor-lezer-python-CvuFxeZl.js","assets/vendor-codemirror-commands-B7H_j0iU.js","assets/vendor-legendapp-list-gg7YLRW7.js","assets/vendor-tailwind-merge-CPcsbTWB.js","assets/vendor-fuse.js-Dw8P0qyA.js"])))=>i.map(i=>d[i]);
2
- import{f as pe,j as l,R as h,h as kt,r as Ct}from"./vendor-react-BUCujlKS.js";import{m as ge,ap as Pt,N as we,u as ut,J as Et,w as ht,t as bt,x as Mt,y as Rt}from"./index-qES19dlJ.js";import{f as xt,fg as At,eh as Lt,y,b as mt,l as k,ca as pt,k as Bt,V as Nt,ag as St,bw as Tt,_ as Ot,by as Wt,fh as yt,h as zt,I as Ge,B as wt,fi as $t,cD as Ut,bE as Ft,bF as Gt,m as Ht,fj as gt,fk as Kt,aB as Vt,aC as Jt,aD as Yt,aH as qt,aJ as Xt,aK as Zt,aG as Qt,ao as er,aF as tr,fl as rr,bB as nr,Y as or,a2 as sr,a3 as ir,aL as ar,aT as cr,aU as lr,aV as dr,aW as ur,aX as mr,aY as pr,aZ as fr,a_ as hr,a$ as yr}from"./useAppFontEffects-COAeIX-D.js";import{_ as wr}from"./vendor-vite-runtime-DD1OZmLC.js";import{u as gr,C as vr,W as vt,S as br,a as xr}from"./useRootScrollLock-C0N9mCwz.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-zod-BLfBSgBh.js";import"./vendor-opencode-sdk-BJ73u-bH.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-base-ui-BeMD8X_w.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./contextPanelEmbeddedChat-C9EcRSDF.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-framer-motion-livSKyyV.js";import"./vendor-motion-dom-D_o3BTI3.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-tanstack-react-virtual-g05Cx3z9.js";import"./vendor-tanstack-virtual-core-Dubg10g5.js";import"./vendor-sonner-DFyL3AvE.js";import"./vendor-cmdk-DgLInKvT.js";import"./vendor-radix-ui-react-dialog-B94Bt2qq.js";import"./vendor-radix-ui-primitive-Dc_FVRD7.js";import"./vendor-radix-ui-react-compose-refs-DcAh5WdT.js";import"./vendor-radix-ui-react-context-Czxm7Z62.js";import"./vendor-radix-ui-react-id-f5BLKEVw.js";import"./vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js";import"./vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js";import"./vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js";import"./vendor-radix-ui-react-primitive-DhVoX9SD.js";import"./vendor-radix-ui-react-slot-BQgQOasS.js";import"./vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js";import"./vendor-radix-ui-react-use-escape-keydown-oph88g-F.js";import"./vendor-radix-ui-react-focus-scope-CiaxW4dD.js";import"./vendor-radix-ui-react-portal-BMJYHWck.js";import"./vendor-radix-ui-react-presence-CNxf-uq4.js";import"./vendor-radix-ui-react-focus-guards-B6qJXYua.js";import"./vendor-react-remove-scroll-DO7dCTnK.js";import"./vendor-tslib-De9GV7Vy.js";import"./vendor-react-remove-scroll-bar-BcFYyj3E.js";import"./vendor-react-style-singleton-q6EMHnwf.js";import"./vendor-get-nonce-C-Z93AgS.js";import"./vendor-use-sidecar-zDC0RhA3.js";import"./vendor-use-callback-ref-D3RC8gqK.js";import"./vendor-aria-hidden-DvXkyWUv.js";import"./vendor-codemirror-language-BgPj_McA.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-codemirror-state-C9awkmn-.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-CiLROUVV.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-lang-javascript-Cc2ZYbgX.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-DzPz9Wgq.js";import"./vendor-codemirror-lang-json-CMBS2tG9.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-O0cZX78y.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-CfgK872x.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-BPGOH9ye.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-BG3v1Ghq.js";import"./vendor-codemirror-lang-python-HahnQaAS.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-codemirror-commands-B7H_j0iU.js";import"./vendor-legendapp-list-gg7YLRW7.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";const Sr=t=>{const e=typeof t=="string"?t.trim():"";if(!e)return"";const n=typeof window<"u"?window.__OPENCHAMBER_HOME__:"";if(n&&e===n)return"~";if(n&&e.startsWith(`${n}/`))return`~/${e.slice(n.length+1)}`;const s=e.split("/").filter(Boolean);return s.length<=3?e:`.../${s.slice(-3).join("/")}`},U=t=>{const e=typeof t=="string"?t.trim():"";if(!e)return"";const n=e.replace(/\\/g,"/");return n==="/"?"/":n.replace(/\/+$/,"")},Ir=t=>{const e=pe.c(144),{mode:n}=t,{t:s}=xt(),r=y(jr),a=y(Dr),u=y(kr),c=y(Cr),d=ge(Pr),m=mt(Er),b=mt(Mr),_=k(Rr),C=k(Ar),D=pt(),j=Bt(r??""),E=Nt(),F=St(Lr);let N;e[0]!==r?(N=o=>r?o.worktreeMetadata.get(r)?.path??"":"",e[0]=r,e[1]=N):N=e[1];const G=y(N);let A;e[2]!==r?(A=o=>r?o.worktreeMetadata.get(r)?.branch?.trim()??null:null,e[2]=r,e[3]=A):A=e[3];const H=y(A);let i;e[4]!==r?(i=o=>r?o.getAttachment(r):void 0,e[4]=r,e[5]=i):i=e[5];const w=Tt(i),g=y(Br),[f,Y]=h.useState(!1),T=typeof window<"u"?window.__OPENCHAMBER_MACOS_MAJOR__??0:0,L=Number.isFinite(T)&&T>0,{usesFramelessChrome:K,side:q}=gr(),ve=L?T>=26?"h-12":T<=15?"h-14":"":"";let W;e[6]!==r||e[7]!==D?(W=r?D.find(o=>o.id===r)??null:null,e[6]=r,e[7]=D,e[8]=W):W=e[8];const B=W,z=B?.worktreeMetadata??null;let be,xe;e[9]===Symbol.for("react.memo_cache_sentinel")?(be=()=>{Pt()&&we("desktop_get_window_pinned").then(o=>{typeof o?.pinned=="boolean"&&Y(o.pinned)})},xe=[],e[9]=be,e[10]=xe):(be=e[9],xe=e[10]),h.useEffect(be,xe);let Se;e[11]!==a||e[12]!==n||e[13]!==B?.title||e[14]!==s?(Se=B?.title?.trim()||s(a||n==="draft"?"miniChat.header.newSession":"miniChat.header.session"),e[11]=a,e[12]=n,e[13]=B?.title,e[14]=s,e[15]=Se):Se=e[15];const He=Se;let I,$,Ie,V;if(e[16]!==d||e[17]!==g||e[18]!==a||e[19]!==u||e[20]!==B||e[21]!==z?.path||e[22]!==w?.cwd||e[23]!==w?.worktreeRoot||e[24]!==G){$=U(B?.directory??null);const o=G||z?.path||w?.cwd||w?.worktreeRoot||"";let p;e[29]!==o?(p=U(o),e[29]=o,e[30]=p):p=e[30],V=p;let x;e[31]!==d?(x=U(d),e[31]=d,e[32]=x):x=e[32],I=V||$||g||x,Ie=a?u==="chat":Ot($),e[16]=d,e[17]=g,e[18]=a,e[19]=u,e[20]=B,e[21]=z?.path,e[22]=w?.cwd,e[23]=w?.worktreeRoot,e[24]=G,e[25]=I,e[26]=$,e[27]=Ie,e[28]=V}else I=e[25],$=e[26],Ie=e[27],V=e[28];const M=Ie;let _e;e[33]!==I?(_e=Sr(I),e[33]=I,e[34]=_e):_e=e[34];const It=_e;let je;e[35]!==$||e[36]!==V?(je=o=>{const p=U(V||$||"");if(!p)return null;for(const x of o.availableWorktreesByProject.values()){const S=x.find(O=>U(O.path)===p)?.branch?.trim();if(S)return S}return null},e[35]=$,e[36]=V,e[37]=je):je=e[37];const Ke=y(je);let De,ke;e[38]!==F||e[39]!==M||e[40]!==I||e[41]!==E.git?(De=()=>{!I||M||F(I,E.git).catch(Nr)},ke=[F,M,I,E.git],e[38]=F,e[39]=M,e[40]=I,e[41]=E.git,e[42]=De,e[43]=ke):(De=e[42],ke=e[43]),h.useEffect(De,ke),z?.projectDirectory,w?.worktreeRoot;let Ve;e:{const o=z?.projectDirectory??w?.worktreeRoot??null;let p;e[44]!==o?(p=U(o),e[44]=o,e[45]=p):p=e[45];const v=p||I;if(!v){Ve=null;break e}let S;e[46]!==v||e[47]!==m?(S=m.map(Tr).filter(O=>O.normalizedPath&&(O.normalizedPath===v||v.startsWith(`${O.normalizedPath}/`))).sort(Or)[0]??null,e[46]=v,e[47]=m,e[48]=S):S=e[48],Ve=S}const _t=Ve;let fe;e:{if(M){fe=null;break e}const o=_t??b;if(!o){fe=It||"OpenChamber";break e}let p;e[49]!==o.label?(p=o.label?.trim(),e[49]=o.label,e[50]=p):p=e[50];const x=p;if(x){fe=x;break e}let v;e[51]!==o.path?(v=o.path.split(/[\\/]/).filter(Boolean).at(-1)??o.path,e[51]=o.path,e[52]=v):v=e[52],fe=v}const Je=fe,Ye=Wt(I||null);let Ce;e[53]!==Ke||e[54]!==Ye||e[55]!==z?.branch||e[56]!==w?.branch||e[57]!==H?(Ce=Ye||H||z?.branch?.trim()||w?.branch?.trim()||Ke,e[53]=Ke,e[54]=Ye,e[55]=z?.branch,e[56]=w?.branch,e[57]=H,e[58]=Ce):Ce=e[58];const qe=Ce,Pe=qe&&qe!=="HEAD"?qe:null;let Ee;e[59]!==_?(Ee=_(),e[59]=_,e[60]=Ee):Ee=e[60];const ft=Ee;let Xe;e:{for(let o=j.length-1;o>=0;o=o-1,o){const p=j[o];if(p.role!=="assistant"||typeof p.providerID!="string"||typeof p.modelID!="string")continue;const v=C.find(S=>S.id===p.providerID)?.models.find(S=>S.id===p.modelID);if(v){Xe=v;break e}}Xe=void 0}const jt=Xe,Me=ft?.limit?ft:jt,X=Me&&typeof Me.limit=="object"&&Me.limit!==null?Me.limit:null,J=X&&typeof X.context=="number"?X.context:0,he=X&&typeof X.output=="number"?X.output:0;let Re;e:{if(!r||j.length===0){Re=null;break e}let o,p;for(let ye=j.length-1;ye>=0;ye=ye-1,ye){const lt=j[ye];if(lt.role!=="assistant")continue;const dt=lt.tokens;if(!dt)continue;if(yt(dt)>0){o=dt,p=lt.id;break}}if(!o){Re=null;break e}const x=yt(o),v=J>0?J:2e5;let S;e[61]!==J||e[62]!==x?(S=J>0?Math.round(x/J*100):0,e[61]=J,e[62]=x,e[63]=S):S=e[63];const O=S;let Ue;e[64]!==o||e[65]!==he?(Ue=he>0?Math.round(o.output/he*100):void 0,e[64]=o,e[65]=he,e[66]=Ue):Ue=e[66];const it=Ue,at=J||0,ct=he||void 0;let Fe;e[67]!==p||e[68]!==it||e[69]!==O||e[70]!==at||e[71]!==ct||e[72]!==v||e[73]!==x?(Fe={totalTokens:x,percentage:O,contextLimit:at,outputLimit:ct,normalizedOutput:it,thresholdLimit:v,lastMessageId:p},e[67]=p,e[68]=it,e[69]=O,e[70]=at,e[71]=ct,e[72]=v,e[73]=x,e[74]=Fe):Fe=e[74],Re=Fe}const P=Re,[R,Ze]=h.useState(null);let Ae;e[75]===Symbol.for("react.memo_cache_sentinel")?(Ae={WebkitAppRegion:"drag"},e[75]=Ae):Ae=e[75];const Dt=Ae;let Le;e[76]===Symbol.for("react.memo_cache_sentinel")?(Le={WebkitAppRegion:"no-drag"},e[76]=Le):Le=e[76];const Qe=Le;let Be,Ne;e[77]!==P||e[78]!==r?(Be=()=>{if(!r){Ze(Wr);return}if(P&&P.totalTokens>0){Ze(o=>o&&o.totalTokens===P.totalTokens&&o.percentage===P.percentage&&o.contextLimit===P.contextLimit&&(o.outputLimit??0)===(P.outputLimit??0)&&(o.normalizedOutput??0)===(P.normalizedOutput??0)&&o.thresholdLimit===P.thresholdLimit&&o.lastMessageId===P.lastMessageId?o:P);return}Ze(zr)},Ne=[P,r],e[77]=P,e[78]=r,e[79]=Be,e[80]=Ne):(Be=e[79],Ne=e[80]),h.useEffect(Be,Ne);const et=R&&R.contextLimit>0?Math.min(999,R.totalTokens/R.contextLimit*100):0;let Te;e[81]!==f?(Te=()=>{const o=!f;Y(o),we("desktop_set_window_pinned",{pinned:o}).catch(()=>{Y(!o)})},e[81]=f,e[82]=Te):Te=e[82];const tt=Te;let Oe;e[83]!==d||e[84]!==r||e[85]!==c||e[86]!==M||e[87]!==I||e[88]!==B?(Oe=()=>{const o=r?{sessionId:r,directory:B?.directory??d??""}:{mode:"draft",directory:M?"":I||d||"",projectId:M?null:c};we("desktop_focus_main_window",o).then($r)},e[83]=d,e[84]=r,e[85]=c,e[86]=M,e[87]=I,e[88]=B,e[89]=Oe):Oe=e[89];const rt=Oe,nt=K&&q==="right"?"pr-0":"pr-3",ot=K?"h-12":ve||"min-h-14";let Z;e[90]!==nt||e[91]!==ot?(Z=zt("flex items-center gap-3 bg-background",nt,L?"pl-[5.5rem]":"pl-3",ot),e[90]=nt,e[91]=ot,e[92]=Z):Z=e[92];let Q;e[93]!==K||e[94]!==q?(Q=K&&q==="left"?l.jsx(vt,{visible:!0,position:"left"}):null,e[93]=K,e[94]=q,e[95]=Q):Q=e[95];let ee;e[96]!==s?(ee=s("sessions.switcher.openAria"),e[96]=s,e[97]=ee):ee=e[97];let te;e[98]!==He?(te=l.jsx("span",{className:"truncate typography-ui-label text-[14px] font-normal leading-tight text-foreground max-w-full",children:He}),e[98]=He,e[99]=te):te=e[99];let re;e[100]!==Pe||e[101]!==M||e[102]!==Je?(re=M?null:l.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:[l.jsx("span",{className:"truncate",children:Je}),Pe?l.jsxs("span",{className:"inline-flex min-w-0 items-center gap-0.5",children:[l.jsx(Ge,{name:"git-branch",className:"h-3 w-3 flex-shrink-0 text-muted-foreground/70"}),l.jsx("span",{className:"truncate",children:Pe})]}):null]}),e[100]=Pe,e[101]=M,e[102]=Je,e[103]=re):re=e[103];let ne;e[104]!==ee||e[105]!==te||e[106]!==re?(ne=l.jsx(br,{children:l.jsxs("button",{type:"button","aria-label":ee,style:Qe,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:[te,re]})}),e[104]=ee,e[105]=te,e[106]=re,e[107]=ne):ne=e[107];let We;e[108]===Symbol.for("react.memo_cache_sentinel")?(We=l.jsx("div",{className:"min-w-0 flex-1"}),e[108]=We):We=e[108];let oe;e[109]!==et||e[110]!==R?(oe=R&&R.totalTokens>0?l.jsx(vr,{totalTokens:R.totalTokens,percentage:et,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,e[109]=et,e[110]=R,e[111]=oe):oe=e[111];let se;e[112]!==f||e[113]!==s?(se=s(f?"miniChat.actions.unpinAria":"miniChat.actions.pinAria"),e[112]=f,e[113]=s,e[114]=se):se=e[114];let ie;e[115]!==f||e[116]!==s?(ie=s(f?"miniChat.actions.unpin":"miniChat.actions.pin"),e[115]=f,e[116]=s,e[117]=ie):ie=e[117];let ae;e[118]!==f?(ae=f?l.jsx(Ge,{name:"pushpin-2-fill",className:"h-4 w-4"}):l.jsx(Ge,{name:"pushpin-2",className:"h-4 w-4"}),e[118]=f,e[119]=ae):ae=e[119];let ce;e[120]!==tt||e[121]!==se||e[122]!==ie||e[123]!==ae?(ce=l.jsx(wt,{type:"button",variant:"ghost",size:"icon",onClick:tt,"aria-label":se,title:ie,style:Qe,children:ae}),e[120]=tt,e[121]=se,e[122]=ie,e[123]=ae,e[124]=ce):ce=e[124];let le;e[125]!==s?(le=s("miniChat.actions.openMainAria"),e[125]=s,e[126]=le):le=e[126];let de;e[127]!==s?(de=s("miniChat.actions.openMain"),e[127]=s,e[128]=de):de=e[128];let ze;e[129]===Symbol.for("react.memo_cache_sentinel")?(ze=l.jsx(Ge,{name:"external-link",className:"h-4 w-4"}),e[129]=ze):ze=e[129];let ue;e[130]!==rt||e[131]!==le||e[132]!==de?(ue=l.jsx(wt,{type:"button",variant:"ghost",size:"icon",onClick:rt,"aria-label":le,title:de,style:Qe,children:ze}),e[130]=rt,e[131]=le,e[132]=de,e[133]=ue):ue=e[133];const st=K&&q==="right";let me;e[134]!==st?(me=l.jsx(vt,{visible:st,position:"right"}),e[134]=st,e[135]=me):me=e[135];let $e;return e[136]!==Z||e[137]!==Q||e[138]!==ne||e[139]!==oe||e[140]!==ce||e[141]!==ue||e[142]!==me?($e=l.jsxs("header",{className:Z,style:Dt,children:[Q,ne,We,oe,ce,ue,me]}),e[136]=Z,e[137]=Q,e[138]=ne,e[139]=oe,e[140]=ce,e[141]=ue,e[142]=me,e[143]=$e):$e=e[143],$e},_r=t=>{const e=pe.c(9),{mode:n,autoOpenDraft:s,unavailable:r}=t,a=s===void 0?!1:s,u=r===void 0?!1:r,{t:c}=xt();let d;e[0]!==n?(d=l.jsx(Ir,{mode:n}),e[0]=n,e[1]=d):d=e[1];let m;e[2]!==a||e[3]!==c||e[4]!==u?(m=l.jsx("main",{className:"min-h-0 flex-1",children:u?l.jsx("div",{className:"flex h-full items-center justify-center px-6 text-center typography-ui-label text-muted-foreground",children:l.jsxs("div",{className:"max-w-sm rounded-lg border border-[var(--interactive-border)] bg-[var(--surface-elevated)] px-4 py-3",children:[l.jsx("div",{className:"font-medium text-foreground",children:c("miniChat.unavailable.title")}),l.jsx("div",{className:"mt-1 typography-small text-muted-foreground",children:c("miniChat.unavailable.description")})]})}):l.jsx(At,{mode:"mini-chat",children:l.jsx(Lt,{autoOpenDraft:a})})}),e[2]=a,e[3]=c,e[4]=u,e[5]=m):m=e[5];let b;return e[6]!==d||e[7]!==m?(b=l.jsxs("div",{className:"flex h-full min-h-0 flex-col bg-background text-foreground",children:[d,m]}),e[6]=d,e[7]=m,e[8]=b):b=e[8],b};function jr(t){return t.currentSessionId}function Dr(t){return!!t.newSessionDraft?.open}function kr(t){return t.newSessionDraft.target}function Cr(t){return t.newSessionDraft?.selectedProjectId??null}function Pr(t){return t.currentDirectory}function Er(t){return t.projects}function Mr(t){return t.getActiveProject()}function Rr(t){return t.getCurrentModel}function Ar(t){return t.providers}function Lr(t){return t.ensureStatus}function Br(t){return t.newSessionDraft?.open?U(t.newSessionDraft.bootstrapPendingDirectory??t.newSessionDraft.directoryOverride??""):""}function Nr(){}function Tr(t){return{...t,normalizedPath:U(t.path)}}function Or(t,e){return e.path.length-t.path.length}function Wr(t){return t===null?t:null}function zr(t){return t===null?t:null}function $r(t){return t?.focused===!0?we("desktop_close_current_window"):null}const Ur=()=>{const t=y(r=>r.openNewSessionDraft),e=h.useRef(null);e.current||(e.current=new $t({registry:Ut,getBinding:r=>Ft(r,ut.getState().shortcutOverrides)}));const n=e.current,s=r=>{const{favoriteModels:a,addRecentModel:u}=ut.getState();if(a.length===0)return!1;const{currentProviderId:c,currentModelId:d,setProvider:m,setModel:b}=k.getState(),_=a.findIndex(D=>D.providerID===c&&D.modelID===d),C=a[(_+r+a.length)%a.length];m(C.providerID),b(C.modelID),u(C.providerID,C.modelID)};Gt({focus_input:()=>{gt()},new_mini_chat:()=>{if(!Et())return!1;we("desktop_open_draft_mini_chat_window",{directory:"",projectId:null})?.catch(r=>{console.warn("[mini-chat-shortcuts] failed to open draft mini chat window",r)})},new_chat:()=>{const r=y.getState();t(r.currentSessionId&&r.currentSessionDirectory?{directoryOverride:r.currentSessionDirectory}:void 0),gt()},open_model_selector:()=>{const{isModelSelectorOpen:r,setModelSelectorOpen:a}=ut.getState();a(!r)},cycle_thinking_variant:()=>{const r=k.getState();if(r.getCurrentModelVariants().length===0)return!1;const a=r.cycleCurrentVariant(),u=y.getState().currentSessionId,{currentAgentName:c,currentProviderId:d,currentModelId:m}=k.getState();u&&c&&d&&m&&Ht.getState().saveAgentModelVariantForSession(u,c,d,m,a)},cycle_favorite_model_forward:()=>s(1),cycle_favorite_model_backward:()=>s(-1)}),h.useEffect(()=>{const r=c=>{if(n.hasActivePrefix()){if(!c.ctrlKey&&!c.metaKey&&!c.altKey&&Kt(c.target)&&n.getActivePrefixTarget()!==c.target){n.clear();return}n.dispatchActivePrefix(c)&&(c.preventDefault(),c.stopPropagation())}},a=c=>{n.consumeCapturedPrefixEvent(c)||n.dispatch(c)&&c.preventDefault()},u=()=>n.handleBlur();return window.addEventListener("keydown",r,!0),window.addEventListener("keydown",a),window.addEventListener("blur",u),()=>{window.removeEventListener("keydown",r,!0),window.removeEventListener("keydown",a),window.removeEventListener("blur",u)}},[n])},Fr="openchamber:mini-chat-presence",Gr=()=>{const t=typeof window<"u"?new URLSearchParams(window.location.search):new URLSearchParams,e=t.get("mode")==="session"?"session":"draft",n=t.get("sessionId")?.trim()||null,s=t.get("directory")?.trim()||null,r=t.get("projectId")?.trim()||null;return{mode:e,sessionId:n,directory:s,projectId:r}},Hr=({config:t})=>{const e=pt(),n=ge(i=>i.currentDirectory),s=ge(i=>i.setDirectory),r=mt(i=>i.projects),a=y(i=>i.currentSessionId),u=y(i=>!!i.newSessionDraft?.open),c=y(i=>i.newSessionDraft?.open?i.newSessionDraft.bootstrapPendingDirectory??i.newSessionDraft.directoryOverride??"":""),d=y(i=>i.setCurrentSession),m=y(i=>i.openNewSessionDraft),b=k(i=>i.initializeApp),_=k(i=>i.isInitialized),C=k(i=>i.isConnected),D=k(i=>i.loadProviders),j=k(i=>i.loadAgents),E=k(i=>i.providers.length),F=k(i=>i.agents.length),N=nr();h.useEffect(()=>{b()},[b]),h.useEffect(()=>{if(_)return;let i=!0,w=0;const g=window.setInterval(()=>{if(i){if(w+=1,w>10){window.clearInterval(g);return}k.getState().isInitialized||k.getState().initializeApp()}},1e3);return()=>{i=!1,window.clearInterval(g)}},[_]);const G=h.useRef(!1);h.useEffect(()=>{if(!G.current&&t.mode==="session"&&t.directory){if(n===t.directory){G.current=!0;return}s(t.directory,{showOverlay:!1}),G.current=!0}},[t.directory,t.mode,n,s]),h.useEffect(()=>{t.mode!=="draft"||!u||a||!c||n===c||s(c,{showOverlay:!1})},[t.mode,n,a,c,u,s]),h.useEffect(()=>{C&&(E===0&&D({source:"electronMiniChat:recovery"}),F===0&&j({source:"electronMiniChat:recovery"}))},[F,C,j,D,E]);const A=h.useRef(!1);h.useEffect(()=>{if(A.current||t.mode!=="session"||!t.sessionId)return;if(a===t.sessionId){A.current=!0;return}if(a){A.current=!0;return}const i=e.find(g=>g.id===t.sessionId);if(!i){N.ensureSessionRenderable(t.sessionId);return}const w=i.directory??t.directory;d(t.sessionId,w),A.current=!0},[t,a,e,d,N]),h.useEffect(()=>{const i=w=>{const g=w.detail,f=typeof g?.sessionId=="string"?g.sessionId.trim():"";if(!f||y.getState().currentSessionId===f)return;const T=e.find(L=>L.id===f)?.directory?.trim()||(typeof g?.directory=="string"&&g.directory.trim().length>0?g.directory.trim():null);N.ensureSessionRenderable(f),d(f,T),A.current=!0};return window.addEventListener("openchamber:open-session",i),()=>window.removeEventListener("openchamber:open-session",i)},[e,d,N]),h.useEffect(()=>{if(t.mode!=="draft"||u||a)return;const i=!!(t.projectId||t.directory);m({target:i?"project":"chat",selectedProjectId:i?t.projectId:or,directoryOverride:i?t.directory:null,preserveDirectoryOverride:!!t.directory})},[t,a,u,m]),h.useEffect(()=>{if(r.length===0)return;let i=!1;return(async()=>{const g=new Map;if(await Promise.all(r.map(async T=>{const L=T.path.replace(/\\/g,"/").replace(/\/+$/,"");if(L)try{if(!(St.getState().directories.get(L)?.isGitRepo??await wr(()=>import("./useAppFontEffects-COAeIX-D.js").then(W=>W.ih),__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])).then(W=>W.checkIsGitRepository(L))))return;const ve=await sr({id:T.id,path:L});if(i||ve.length===0)return;g.set(L,ve)}catch{}})),i)return;const f=ir(r,g),Y=y.getState().availableWorktreesByProject;ar(f,Y)||y.setState({availableWorktrees:[...f.values()].flat(),availableWorktreesByProject:f})})(),()=>{i=!0}},[r]);const H=h.useRef(!1);return h.useEffect(()=>{if(H.current||!_)return;const i=()=>{if(H.current)return;H.current=!0;const f=typeof document<"u"?document.getElementById("initial-loading"):null;f&&(f.classList.add("fade-out"),window.setTimeout(()=>f.remove(),300))},w=t.mode==="session"?a===t.sessionId:u,g=window.setTimeout(i,w?100:1500);return()=>window.clearTimeout(g)},[_,t.mode,t.sessionId,a,u]),null},Kr=()=>{const t=pe.c(4),e=y(Zr),n=ge(Qr);let s,r;return t[0]!==n||t[1]!==e?(s=()=>{if(!e||!n||typeof BroadcastChannel>"u")return;const a=new BroadcastChannel(Fr),u=m=>{a.postMessage({type:"mini-chat-session-presence",sessionId:e,directory:n,viewed:m})};u(!0);const c=window.setInterval(()=>u(!0),5e3),d=()=>u(!1);return window.addEventListener("beforeunload",d),()=>{window.clearInterval(c),window.removeEventListener("beforeunload",d),u(!1),a.close()}},r=[n,e],t[0]=n,t[1]=e,t[2]=s,t[3]=r):(s=t[2],r=t[3]),h.useEffect(s,r),null},Vr=t=>{const e=pe.c(7),n=pt(),s=y(en),r=y(tn),[a,u]=h.useState(!1);let c,d;return e[0]!==t.mode||e[1]!==t.sessionId||e[2]!==s||e[3]!==r||e[4]!==n?(c=()=>{if(r||t.mode!=="session"||!t.sessionId||s){u(!1);return}if(n.some(b=>b.id===t.sessionId)){u(!1);return}const m=window.setTimeout(()=>u(!0),5e3);return()=>window.clearTimeout(m)},d=[t.mode,t.sessionId,s,r,n],e[0]=t.mode,e[1]=t.sessionId,e[2]=s,e[3]=r,e[4]=n,e[5]=c,e[6]=d):(c=e[5],d=e[6]),h.useEffect(c,d),a};function Jr(t){const e=pe.c(15),{apis:n}=t;let s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s=Gr(),e[0]=s):s=e[0];const r=s,a=ge(qr);let u,c;e[1]!==a?(u=()=>{ht.setDirectory(a||r.directory||void 0)},c=[r.directory,a],e[1]=a,e[2]=u,e[3]=c):(u=e[2],c=e[3]),h.useEffect(u,c);let d,m;e[4]!==n?(d=()=>(bt(n),Yr),m=[n],e[4]=n,e[5]=d,e[6]=m):(d=e[5],m=e[6]),h.useEffect(d,m),Vt(),Ur();let b;e[7]===Symbol.for("react.memo_cache_sentinel")?(b={enabled:!0},e[7]=b):b=e[7],Jt(b),Yt(),xr();let _;e[8]===Symbol.for("react.memo_cache_sentinel")?(_=ht.getSdkClient(),e[8]=_):_=e[8];const C=a||r.directory||"";let D;e[9]===Symbol.for("react.memo_cache_sentinel")?(D=l.jsx(qt,{delayDuration:300,skipDelayDuration:150,children:l.jsxs("div",{className:"h-full text-foreground bg-background",children:[l.jsx(Xr,{config:r}),l.jsx(Xt,{}),l.jsx(Zt,{})]})}),e[9]=D):D=e[9];let j;e[10]!==n?(j=l.jsx(Qt,{apis:n,children:D}),e[10]=n,e[11]=j):j=e[11];let E;return e[12]!==j||e[13]!==C?(E=l.jsx(er,{children:l.jsx(tr,{sdk:_,directory:C,children:j})}),e[12]=j,e[13]=C,e[14]=E):E=e[14],E}function Yr(){return bt(null)}function qr(t){return t.currentDirectory}const Xr=t=>{const e=pe.c(11),{config:n}=t,s=Vr(n);let r;e[0]!==n?(r=l.jsx(Hr,{config:n}),e[0]=n,e[1]=r):r=e[1];let a,u;e[2]===Symbol.for("react.memo_cache_sentinel")?(a=l.jsx(Kr,{}),u=l.jsx(rr,{embeddedBackgroundWorkEnabled:!0}),e[2]=a,e[3]=u):(a=e[2],u=e[3]);const c=n.mode==="draft";let d;e[4]!==n.mode||e[5]!==s||e[6]!==c?(d=l.jsx(_r,{mode:n.mode,autoOpenDraft:c,unavailable:s}),e[4]=n.mode,e[5]=s,e[6]=c,e[7]=d):d=e[7];let m;return e[8]!==r||e[9]!==d?(m=l.jsxs(l.Fragment,{children:[r,a,u,d]}),e[8]=r,e[9]=d,e[10]=m):m=e[10],m};function Zr(t){return t.currentSessionId}function Qr(t){return t.currentDirectory}function en(t){return t.currentSessionId}function tn(t){return t.newSessionDraft.open}const rn=()=>{mr(),Mt().then(()=>{Promise.all([Rt(),pr()]).catch(t=>{console.error("[mini-chat-main] settings init failed:",t)}),fr(),hr(),yr()}).catch(t=>{console.error("[mini-chat-main] appearance init failed:",t)})};function Lo(t){rn();const e=document.getElementById("root");if(!e)throw new Error("Root element not found");kt.createRoot(e).render(l.jsx(Ct.StrictMode,{children:l.jsx(cr,{children:l.jsx(lr,{children:l.jsx(dr,{children:l.jsx(ur,{children:l.jsx(Jr,{apis:t})})})})})}))}export{Lo as renderElectronMiniChatApp};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/useAppFontEffects-CuJPKtI1.js","assets/vendor-react-BUCujlKS.js","assets/vendor-scheduler-7OC5HNn7.js","assets/index-DlFbCkEy.js","assets/vendor-vite-runtime-DD1OZmLC.js","assets/vendor-zustand-BAGL70zf.js","assets/vendor-zod-CK21ihK-.js","assets/vendor-opencode-sdk-BJ73u-bH.js","assets/index-D42fPvt4.css","assets/vendor-simplewebauthn-browser-VDA66rT_.js","assets/vendor-base-ui-BeMD8X_w.js","assets/vendor-floating-ui-utils-D6FqdtJt.js","assets/vendor-floating-ui-react-dom-DxYCWdHj.js","assets/vendor-floating-ui-dom-BTvzWks8.js","assets/vendor-floating-ui-core-PuGzNPnN.js","assets/vendor-use-sync-external-store-D6wYuSt-.js","assets/contextPanelEmbeddedChat-D2PM_pEv.js","assets/vendor-class-variance-authority-5VPnzWs2.js","assets/vendor-clsx-B-dksMZM.js","assets/vendor-dnd-kit-core-BZknOX2w.js","assets/vendor-dnd-kit-utilities-B_MdXhJC.js","assets/vendor-dnd-kit-accessibility-BHxJPORy.js","assets/vendor-dnd-kit-sortable-CsEagZ81.js","assets/vendor-framer-motion-livSKyyV.js","assets/vendor-motion-dom-D_o3BTI3.js","assets/vendor-motion-utils-BGh8QBgx.js","assets/vendor-tanstack-react-virtual-g05Cx3z9.js","assets/vendor-tanstack-virtual-core-Dubg10g5.js","assets/vendor-sonner-DFyL3AvE.js","assets/vendor-cmdk-DgLInKvT.js","assets/vendor-radix-ui-react-dialog-B94Bt2qq.js","assets/vendor-radix-ui-primitive-Dc_FVRD7.js","assets/vendor-radix-ui-react-compose-refs-DcAh5WdT.js","assets/vendor-radix-ui-react-context-Czxm7Z62.js","assets/vendor-radix-ui-react-id-f5BLKEVw.js","assets/vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js","assets/vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js","assets/vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js","assets/vendor-radix-ui-react-primitive-DhVoX9SD.js","assets/vendor-radix-ui-react-slot-BQgQOasS.js","assets/vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js","assets/vendor-radix-ui-react-use-escape-keydown-oph88g-F.js","assets/vendor-radix-ui-react-focus-scope-CiaxW4dD.js","assets/vendor-radix-ui-react-portal-BMJYHWck.js","assets/vendor-radix-ui-react-presence-CNxf-uq4.js","assets/vendor-radix-ui-react-focus-guards-B6qJXYua.js","assets/vendor-react-remove-scroll-DO7dCTnK.js","assets/vendor-tslib-De9GV7Vy.js","assets/vendor-react-remove-scroll-bar-BcFYyj3E.js","assets/vendor-react-style-singleton-q6EMHnwf.js","assets/vendor-get-nonce-C-Z93AgS.js","assets/vendor-use-sidecar-zDC0RhA3.js","assets/vendor-use-callback-ref-D3RC8gqK.js","assets/vendor-aria-hidden-DvXkyWUv.js","assets/vendor-codemirror-language-BgPj_McA.js","assets/vendor-lezer-common-B3-cUCR_.js","assets/vendor-codemirror-state-C9awkmn-.js","assets/vendor-marijn-find-cluster-break-DXwl3gUT.js","assets/vendor-codemirror-view-CiLROUVV.js","assets/vendor-style-mod-NZ5MEPvj.js","assets/vendor-w3c-keyname-Vcq4gwWv.js","assets/vendor-crelt-C8TCjufn.js","assets/vendor-lezer-highlight-CDMHUZ74.js","assets/vendor-codemirror-lang-javascript-Cc2ZYbgX.js","assets/vendor-lezer-javascript-D7Tj24ot.js","assets/vendor-lezer-lr-bhwg1HMg.js","assets/vendor-codemirror-autocomplete-DzPz9Wgq.js","assets/vendor-codemirror-lang-json-CMBS2tG9.js","assets/vendor-lezer-json-Iaex0UN-.js","assets/vendor-codemirror-lang-css-O0cZX78y.js","assets/vendor-lezer-css-C5xB6jxd.js","assets/vendor-codemirror-lang-html-CfgK872x.js","assets/vendor-lezer-html-C0I1p52t.js","assets/vendor-codemirror-lang-markdown-BPGOH9ye.js","assets/vendor-lezer-markdown-C6g-d6P3.js","assets/vendor-codemirror-language-data-9ZzoH0o0.js","assets/vendor-codemirror-lang-python-HahnQaAS.js","assets/vendor-lezer-python-CvuFxeZl.js","assets/vendor-codemirror-commands-B7H_j0iU.js","assets/vendor-legendapp-list-gg7YLRW7.js","assets/vendor-tailwind-merge-CPcsbTWB.js","assets/vendor-fuse.js-Dw8P0qyA.js"])))=>i.map(i=>d[i]);
2
+ import{f as pe,j as l,R as h,h as kt,r as Pt}from"./vendor-react-BUCujlKS.js";import{m as ge,ay as Ct,T as we,u as ut,K as Et,w as ht,t as bt,x as Mt,y as Rt}from"./index-DlFbCkEy.js";import{f as xt,fj as At,ei as Lt,y,b as mt,l as k,c8 as pt,k as Bt,W as Nt,ai as St,bv as Tt,$ as Ot,bx as Wt,fk as yt,h as zt,I as Ge,B as wt,fl as $t,cE as Ut,bD as Ft,bE as Gt,m as Ht,fm as gt,fn as Kt,aD as Vt,aE as Jt,aF as qt,aJ as Zt,aL as Xt,aM as Yt,aI as Qt,aq as er,aH as tr,fo as rr,bA as nr,Z as or,a3 as sr,a4 as ir,aN as ar,aV as cr,aW as lr,aX as dr,aY as ur,aZ as mr,a_ as pr,a$ as fr,b0 as hr,b1 as yr}from"./useAppFontEffects-CuJPKtI1.js";import{_ as wr}from"./vendor-vite-runtime-DD1OZmLC.js";import{u as gr,C as vr,W as vt,S as br,a as xr}from"./useRootScrollLock-DRGAe8PN.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-zod-CK21ihK-.js";import"./vendor-opencode-sdk-BJ73u-bH.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-base-ui-BeMD8X_w.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./contextPanelEmbeddedChat-D2PM_pEv.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-framer-motion-livSKyyV.js";import"./vendor-motion-dom-D_o3BTI3.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-tanstack-react-virtual-g05Cx3z9.js";import"./vendor-tanstack-virtual-core-Dubg10g5.js";import"./vendor-sonner-DFyL3AvE.js";import"./vendor-cmdk-DgLInKvT.js";import"./vendor-radix-ui-react-dialog-B94Bt2qq.js";import"./vendor-radix-ui-primitive-Dc_FVRD7.js";import"./vendor-radix-ui-react-compose-refs-DcAh5WdT.js";import"./vendor-radix-ui-react-context-Czxm7Z62.js";import"./vendor-radix-ui-react-id-f5BLKEVw.js";import"./vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js";import"./vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js";import"./vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js";import"./vendor-radix-ui-react-primitive-DhVoX9SD.js";import"./vendor-radix-ui-react-slot-BQgQOasS.js";import"./vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js";import"./vendor-radix-ui-react-use-escape-keydown-oph88g-F.js";import"./vendor-radix-ui-react-focus-scope-CiaxW4dD.js";import"./vendor-radix-ui-react-portal-BMJYHWck.js";import"./vendor-radix-ui-react-presence-CNxf-uq4.js";import"./vendor-radix-ui-react-focus-guards-B6qJXYua.js";import"./vendor-react-remove-scroll-DO7dCTnK.js";import"./vendor-tslib-De9GV7Vy.js";import"./vendor-react-remove-scroll-bar-BcFYyj3E.js";import"./vendor-react-style-singleton-q6EMHnwf.js";import"./vendor-get-nonce-C-Z93AgS.js";import"./vendor-use-sidecar-zDC0RhA3.js";import"./vendor-use-callback-ref-D3RC8gqK.js";import"./vendor-aria-hidden-DvXkyWUv.js";import"./vendor-codemirror-language-BgPj_McA.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-codemirror-state-C9awkmn-.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-CiLROUVV.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-lang-javascript-Cc2ZYbgX.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-DzPz9Wgq.js";import"./vendor-codemirror-lang-json-CMBS2tG9.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-O0cZX78y.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-CfgK872x.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-BPGOH9ye.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-9ZzoH0o0.js";import"./vendor-codemirror-lang-python-HahnQaAS.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-codemirror-commands-B7H_j0iU.js";import"./vendor-legendapp-list-gg7YLRW7.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";const Sr=t=>{const e=typeof t=="string"?t.trim():"";if(!e)return"";const n=typeof window<"u"?window.__OPENCHAMBER_HOME__:"";if(n&&e===n)return"~";if(n&&e.startsWith(`${n}/`))return`~/${e.slice(n.length+1)}`;const s=e.split("/").filter(Boolean);return s.length<=3?e:`.../${s.slice(-3).join("/")}`},U=t=>{const e=typeof t=="string"?t.trim():"";if(!e)return"";const n=e.replace(/\\/g,"/");return n==="/"?"/":n.replace(/\/+$/,"")},Ir=t=>{const e=pe.c(144),{mode:n}=t,{t:s}=xt(),r=y(jr),a=y(Dr),u=y(kr),c=y(Pr),d=ge(Cr),m=mt(Er),b=mt(Mr),_=k(Rr),P=k(Ar),D=pt(),j=Bt(r??""),E=Nt(),F=St(Lr);let N;e[0]!==r?(N=o=>r?o.worktreeMetadata.get(r)?.path??"":"",e[0]=r,e[1]=N):N=e[1];const G=y(N);let A;e[2]!==r?(A=o=>r?o.worktreeMetadata.get(r)?.branch?.trim()??null:null,e[2]=r,e[3]=A):A=e[3];const H=y(A);let i;e[4]!==r?(i=o=>r?o.getAttachment(r):void 0,e[4]=r,e[5]=i):i=e[5];const w=Tt(i),g=y(Br),[f,q]=h.useState(!1),T=typeof window<"u"?window.__OPENCHAMBER_MACOS_MAJOR__??0:0,L=Number.isFinite(T)&&T>0,{usesFramelessChrome:K,side:Z}=gr(),ve=L?T>=26?"h-12":T<=15?"h-14":"":"";let W;e[6]!==r||e[7]!==D?(W=r?D.find(o=>o.id===r)??null:null,e[6]=r,e[7]=D,e[8]=W):W=e[8];const B=W,z=B?.worktreeMetadata??null;let be,xe;e[9]===Symbol.for("react.memo_cache_sentinel")?(be=()=>{Ct()&&we("desktop_get_window_pinned").then(o=>{typeof o?.pinned=="boolean"&&q(o.pinned)})},xe=[],e[9]=be,e[10]=xe):(be=e[9],xe=e[10]),h.useEffect(be,xe);let Se;e[11]!==a||e[12]!==n||e[13]!==B?.title||e[14]!==s?(Se=B?.title?.trim()||s(a||n==="draft"?"miniChat.header.newSession":"miniChat.header.session"),e[11]=a,e[12]=n,e[13]=B?.title,e[14]=s,e[15]=Se):Se=e[15];const He=Se;let I,$,Ie,V;if(e[16]!==d||e[17]!==g||e[18]!==a||e[19]!==u||e[20]!==B||e[21]!==z?.path||e[22]!==w?.cwd||e[23]!==w?.worktreeRoot||e[24]!==G){$=U(B?.directory??null);const o=G||z?.path||w?.cwd||w?.worktreeRoot||"";let p;e[29]!==o?(p=U(o),e[29]=o,e[30]=p):p=e[30],V=p;let x;e[31]!==d?(x=U(d),e[31]=d,e[32]=x):x=e[32],I=V||$||g||x,Ie=a?u==="chat":Ot($),e[16]=d,e[17]=g,e[18]=a,e[19]=u,e[20]=B,e[21]=z?.path,e[22]=w?.cwd,e[23]=w?.worktreeRoot,e[24]=G,e[25]=I,e[26]=$,e[27]=Ie,e[28]=V}else I=e[25],$=e[26],Ie=e[27],V=e[28];const M=Ie;let _e;e[33]!==I?(_e=Sr(I),e[33]=I,e[34]=_e):_e=e[34];const It=_e;let je;e[35]!==$||e[36]!==V?(je=o=>{const p=U(V||$||"");if(!p)return null;for(const x of o.availableWorktreesByProject.values()){const S=x.find(O=>U(O.path)===p)?.branch?.trim();if(S)return S}return null},e[35]=$,e[36]=V,e[37]=je):je=e[37];const Ke=y(je);let De,ke;e[38]!==F||e[39]!==M||e[40]!==I||e[41]!==E.git?(De=()=>{!I||M||F(I,E.git).catch(Nr)},ke=[F,M,I,E.git],e[38]=F,e[39]=M,e[40]=I,e[41]=E.git,e[42]=De,e[43]=ke):(De=e[42],ke=e[43]),h.useEffect(De,ke),z?.projectDirectory,w?.worktreeRoot;let Ve;e:{const o=z?.projectDirectory??w?.worktreeRoot??null;let p;e[44]!==o?(p=U(o),e[44]=o,e[45]=p):p=e[45];const v=p||I;if(!v){Ve=null;break e}let S;e[46]!==v||e[47]!==m?(S=m.map(Tr).filter(O=>O.normalizedPath&&(O.normalizedPath===v||v.startsWith(`${O.normalizedPath}/`))).sort(Or)[0]??null,e[46]=v,e[47]=m,e[48]=S):S=e[48],Ve=S}const _t=Ve;let fe;e:{if(M){fe=null;break e}const o=_t??b;if(!o){fe=It||"OpenChamber";break e}let p;e[49]!==o.label?(p=o.label?.trim(),e[49]=o.label,e[50]=p):p=e[50];const x=p;if(x){fe=x;break e}let v;e[51]!==o.path?(v=o.path.split(/[\\/]/).filter(Boolean).at(-1)??o.path,e[51]=o.path,e[52]=v):v=e[52],fe=v}const Je=fe,qe=Wt(I||null);let Pe;e[53]!==Ke||e[54]!==qe||e[55]!==z?.branch||e[56]!==w?.branch||e[57]!==H?(Pe=qe||H||z?.branch?.trim()||w?.branch?.trim()||Ke,e[53]=Ke,e[54]=qe,e[55]=z?.branch,e[56]=w?.branch,e[57]=H,e[58]=Pe):Pe=e[58];const Ze=Pe,Ce=Ze&&Ze!=="HEAD"?Ze:null;let Ee;e[59]!==_?(Ee=_(),e[59]=_,e[60]=Ee):Ee=e[60];const ft=Ee;let Xe;e:{for(let o=j.length-1;o>=0;o=o-1,o){const p=j[o];if(p.role!=="assistant"||typeof p.providerID!="string"||typeof p.modelID!="string")continue;const v=P.find(S=>S.id===p.providerID)?.models.find(S=>S.id===p.modelID);if(v){Xe=v;break e}}Xe=void 0}const jt=Xe,Me=ft?.limit?ft:jt,X=Me&&typeof Me.limit=="object"&&Me.limit!==null?Me.limit:null,J=X&&typeof X.context=="number"?X.context:0,he=X&&typeof X.output=="number"?X.output:0;let Re;e:{if(!r||j.length===0){Re=null;break e}let o,p;for(let ye=j.length-1;ye>=0;ye=ye-1,ye){const lt=j[ye];if(lt.role!=="assistant")continue;const dt=lt.tokens;if(!dt)continue;if(yt(dt)>0){o=dt,p=lt.id;break}}if(!o){Re=null;break e}const x=yt(o),v=J>0?J:2e5;let S;e[61]!==J||e[62]!==x?(S=J>0?Math.round(x/J*100):0,e[61]=J,e[62]=x,e[63]=S):S=e[63];const O=S;let Ue;e[64]!==o||e[65]!==he?(Ue=he>0?Math.round(o.output/he*100):void 0,e[64]=o,e[65]=he,e[66]=Ue):Ue=e[66];const it=Ue,at=J||0,ct=he||void 0;let Fe;e[67]!==p||e[68]!==it||e[69]!==O||e[70]!==at||e[71]!==ct||e[72]!==v||e[73]!==x?(Fe={totalTokens:x,percentage:O,contextLimit:at,outputLimit:ct,normalizedOutput:it,thresholdLimit:v,lastMessageId:p},e[67]=p,e[68]=it,e[69]=O,e[70]=at,e[71]=ct,e[72]=v,e[73]=x,e[74]=Fe):Fe=e[74],Re=Fe}const C=Re,[R,Ye]=h.useState(null);let Ae;e[75]===Symbol.for("react.memo_cache_sentinel")?(Ae={WebkitAppRegion:"drag"},e[75]=Ae):Ae=e[75];const Dt=Ae;let Le;e[76]===Symbol.for("react.memo_cache_sentinel")?(Le={WebkitAppRegion:"no-drag"},e[76]=Le):Le=e[76];const Qe=Le;let Be,Ne;e[77]!==C||e[78]!==r?(Be=()=>{if(!r){Ye(Wr);return}if(C&&C.totalTokens>0){Ye(o=>o&&o.totalTokens===C.totalTokens&&o.percentage===C.percentage&&o.contextLimit===C.contextLimit&&(o.outputLimit??0)===(C.outputLimit??0)&&(o.normalizedOutput??0)===(C.normalizedOutput??0)&&o.thresholdLimit===C.thresholdLimit&&o.lastMessageId===C.lastMessageId?o:C);return}Ye(zr)},Ne=[C,r],e[77]=C,e[78]=r,e[79]=Be,e[80]=Ne):(Be=e[79],Ne=e[80]),h.useEffect(Be,Ne);const et=R&&R.contextLimit>0?Math.min(999,R.totalTokens/R.contextLimit*100):0;let Te;e[81]!==f?(Te=()=>{const o=!f;q(o),we("desktop_set_window_pinned",{pinned:o}).catch(()=>{q(!o)})},e[81]=f,e[82]=Te):Te=e[82];const tt=Te;let Oe;e[83]!==d||e[84]!==r||e[85]!==c||e[86]!==M||e[87]!==I||e[88]!==B?(Oe=()=>{const o=r?{sessionId:r,directory:B?.directory??d??""}:{mode:"draft",directory:M?"":I||d||"",projectId:M?null:c};we("desktop_focus_main_window",o).then($r)},e[83]=d,e[84]=r,e[85]=c,e[86]=M,e[87]=I,e[88]=B,e[89]=Oe):Oe=e[89];const rt=Oe,nt=K&&Z==="right"?"pr-0":"pr-3",ot=K?"h-12":ve||"min-h-14";let Y;e[90]!==nt||e[91]!==ot?(Y=zt("flex items-center gap-3 bg-background",nt,L?"pl-[5.5rem]":"pl-3",ot),e[90]=nt,e[91]=ot,e[92]=Y):Y=e[92];let Q;e[93]!==K||e[94]!==Z?(Q=K&&Z==="left"?l.jsx(vt,{visible:!0,position:"left"}):null,e[93]=K,e[94]=Z,e[95]=Q):Q=e[95];let ee;e[96]!==s?(ee=s("sessions.switcher.openAria"),e[96]=s,e[97]=ee):ee=e[97];let te;e[98]!==He?(te=l.jsx("span",{className:"truncate typography-ui-label text-[14px] font-normal leading-tight text-foreground max-w-full",children:He}),e[98]=He,e[99]=te):te=e[99];let re;e[100]!==Ce||e[101]!==M||e[102]!==Je?(re=M?null:l.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:[l.jsx("span",{className:"truncate",children:Je}),Ce?l.jsxs("span",{className:"inline-flex min-w-0 items-center gap-0.5",children:[l.jsx(Ge,{name:"git-branch",className:"h-3 w-3 flex-shrink-0 text-muted-foreground/70"}),l.jsx("span",{className:"truncate",children:Ce})]}):null]}),e[100]=Ce,e[101]=M,e[102]=Je,e[103]=re):re=e[103];let ne;e[104]!==ee||e[105]!==te||e[106]!==re?(ne=l.jsx(br,{children:l.jsxs("button",{type:"button","aria-label":ee,style:Qe,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:[te,re]})}),e[104]=ee,e[105]=te,e[106]=re,e[107]=ne):ne=e[107];let We;e[108]===Symbol.for("react.memo_cache_sentinel")?(We=l.jsx("div",{className:"min-w-0 flex-1"}),e[108]=We):We=e[108];let oe;e[109]!==et||e[110]!==R?(oe=R&&R.totalTokens>0?l.jsx(vr,{totalTokens:R.totalTokens,percentage:et,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,e[109]=et,e[110]=R,e[111]=oe):oe=e[111];let se;e[112]!==f||e[113]!==s?(se=s(f?"miniChat.actions.unpinAria":"miniChat.actions.pinAria"),e[112]=f,e[113]=s,e[114]=se):se=e[114];let ie;e[115]!==f||e[116]!==s?(ie=s(f?"miniChat.actions.unpin":"miniChat.actions.pin"),e[115]=f,e[116]=s,e[117]=ie):ie=e[117];let ae;e[118]!==f?(ae=f?l.jsx(Ge,{name:"pushpin-2-fill",className:"h-4 w-4"}):l.jsx(Ge,{name:"pushpin-2",className:"h-4 w-4"}),e[118]=f,e[119]=ae):ae=e[119];let ce;e[120]!==tt||e[121]!==se||e[122]!==ie||e[123]!==ae?(ce=l.jsx(wt,{type:"button",variant:"ghost",size:"icon",onClick:tt,"aria-label":se,title:ie,style:Qe,children:ae}),e[120]=tt,e[121]=se,e[122]=ie,e[123]=ae,e[124]=ce):ce=e[124];let le;e[125]!==s?(le=s("miniChat.actions.openMainAria"),e[125]=s,e[126]=le):le=e[126];let de;e[127]!==s?(de=s("miniChat.actions.openMain"),e[127]=s,e[128]=de):de=e[128];let ze;e[129]===Symbol.for("react.memo_cache_sentinel")?(ze=l.jsx(Ge,{name:"external-link",className:"h-4 w-4"}),e[129]=ze):ze=e[129];let ue;e[130]!==rt||e[131]!==le||e[132]!==de?(ue=l.jsx(wt,{type:"button",variant:"ghost",size:"icon",onClick:rt,"aria-label":le,title:de,style:Qe,children:ze}),e[130]=rt,e[131]=le,e[132]=de,e[133]=ue):ue=e[133];const st=K&&Z==="right";let me;e[134]!==st?(me=l.jsx(vt,{visible:st,position:"right"}),e[134]=st,e[135]=me):me=e[135];let $e;return e[136]!==Y||e[137]!==Q||e[138]!==ne||e[139]!==oe||e[140]!==ce||e[141]!==ue||e[142]!==me?($e=l.jsxs("header",{className:Y,style:Dt,children:[Q,ne,We,oe,ce,ue,me]}),e[136]=Y,e[137]=Q,e[138]=ne,e[139]=oe,e[140]=ce,e[141]=ue,e[142]=me,e[143]=$e):$e=e[143],$e},_r=t=>{const e=pe.c(9),{mode:n,autoOpenDraft:s,unavailable:r}=t,a=s===void 0?!1:s,u=r===void 0?!1:r,{t:c}=xt();let d;e[0]!==n?(d=l.jsx(Ir,{mode:n}),e[0]=n,e[1]=d):d=e[1];let m;e[2]!==a||e[3]!==c||e[4]!==u?(m=l.jsx("main",{className:"min-h-0 flex-1",children:u?l.jsx("div",{className:"flex h-full items-center justify-center px-6 text-center typography-ui-label text-muted-foreground",children:l.jsxs("div",{className:"max-w-sm rounded-lg border border-[var(--interactive-border)] bg-[var(--surface-elevated)] px-4 py-3",children:[l.jsx("div",{className:"font-medium text-foreground",children:c("miniChat.unavailable.title")}),l.jsx("div",{className:"mt-1 typography-small text-muted-foreground",children:c("miniChat.unavailable.description")})]})}):l.jsx(At,{mode:"mini-chat",children:l.jsx(Lt,{autoOpenDraft:a})})}),e[2]=a,e[3]=c,e[4]=u,e[5]=m):m=e[5];let b;return e[6]!==d||e[7]!==m?(b=l.jsxs("div",{className:"flex h-full min-h-0 flex-col bg-background text-foreground",children:[d,m]}),e[6]=d,e[7]=m,e[8]=b):b=e[8],b};function jr(t){return t.currentSessionId}function Dr(t){return!!t.newSessionDraft?.open}function kr(t){return t.newSessionDraft.target}function Pr(t){return t.newSessionDraft?.selectedProjectId??null}function Cr(t){return t.currentDirectory}function Er(t){return t.projects}function Mr(t){return t.getActiveProject()}function Rr(t){return t.getCurrentModel}function Ar(t){return t.providers}function Lr(t){return t.ensureStatus}function Br(t){return t.newSessionDraft?.open?U(t.newSessionDraft.bootstrapPendingDirectory??t.newSessionDraft.directoryOverride??""):""}function Nr(){}function Tr(t){return{...t,normalizedPath:U(t.path)}}function Or(t,e){return e.path.length-t.path.length}function Wr(t){return t===null?t:null}function zr(t){return t===null?t:null}function $r(t){return t?.focused===!0?we("desktop_close_current_window"):null}const Ur=()=>{const t=y(r=>r.openNewSessionDraft),e=h.useRef(null);e.current||(e.current=new $t({registry:Ut,getBinding:r=>Ft(r,ut.getState().shortcutOverrides)}));const n=e.current,s=r=>{const{favoriteModels:a,addRecentModel:u}=ut.getState();if(a.length===0)return!1;const{currentProviderId:c,currentModelId:d,setProvider:m,setModel:b}=k.getState(),_=a.findIndex(D=>D.providerID===c&&D.modelID===d),P=a[(_+r+a.length)%a.length];m(P.providerID),b(P.modelID),u(P.providerID,P.modelID)};Gt({focus_input:()=>{gt()},new_mini_chat:()=>{if(!Et())return!1;we("desktop_open_draft_mini_chat_window",{directory:"",projectId:null})?.catch(r=>{console.warn("[mini-chat-shortcuts] failed to open draft mini chat window",r)})},new_chat:()=>{const r=y.getState();t(r.currentSessionId&&r.currentSessionDirectory?{directoryOverride:r.currentSessionDirectory}:void 0),gt()},open_model_selector:()=>{const{isModelSelectorOpen:r,setModelSelectorOpen:a}=ut.getState();a(!r)},cycle_thinking_variant:()=>{const r=k.getState();if(r.getCurrentModelVariants().length===0)return!1;const a=r.cycleCurrentVariant(),u=y.getState().currentSessionId,{currentAgentName:c,currentProviderId:d,currentModelId:m}=k.getState();u&&c&&d&&m&&Ht.getState().saveAgentModelVariantForSession(u,c,d,m,a)},cycle_favorite_model_forward:()=>s(1),cycle_favorite_model_backward:()=>s(-1)}),h.useEffect(()=>{const r=c=>{if(n.hasActivePrefix()){if(!c.ctrlKey&&!c.metaKey&&!c.altKey&&Kt(c.target)&&n.getActivePrefixTarget()!==c.target){n.clear();return}n.dispatchActivePrefix(c)&&(c.preventDefault(),c.stopPropagation())}},a=c=>{n.consumeCapturedPrefixEvent(c)||n.dispatch(c)&&c.preventDefault()},u=()=>n.handleBlur();return window.addEventListener("keydown",r,!0),window.addEventListener("keydown",a),window.addEventListener("blur",u),()=>{window.removeEventListener("keydown",r,!0),window.removeEventListener("keydown",a),window.removeEventListener("blur",u)}},[n])},Fr="openchamber:mini-chat-presence",Gr=()=>{const t=typeof window<"u"?new URLSearchParams(window.location.search):new URLSearchParams,e=t.get("mode")==="session"?"session":"draft",n=t.get("sessionId")?.trim()||null,s=t.get("directory")?.trim()||null,r=t.get("projectId")?.trim()||null;return{mode:e,sessionId:n,directory:s,projectId:r}},Hr=({config:t})=>{const e=pt(),n=ge(i=>i.currentDirectory),s=ge(i=>i.setDirectory),r=mt(i=>i.projects),a=y(i=>i.currentSessionId),u=y(i=>!!i.newSessionDraft?.open),c=y(i=>i.newSessionDraft?.open?i.newSessionDraft.bootstrapPendingDirectory??i.newSessionDraft.directoryOverride??"":""),d=y(i=>i.setCurrentSession),m=y(i=>i.openNewSessionDraft),b=k(i=>i.initializeApp),_=k(i=>i.isInitialized),P=k(i=>i.isConnected),D=k(i=>i.loadProviders),j=k(i=>i.loadAgents),E=k(i=>i.providers.length),F=k(i=>i.agents.length),N=nr();h.useEffect(()=>{b()},[b]),h.useEffect(()=>{if(_)return;let i=!0,w=0;const g=window.setInterval(()=>{if(i){if(w+=1,w>10){window.clearInterval(g);return}k.getState().isInitialized||k.getState().initializeApp()}},1e3);return()=>{i=!1,window.clearInterval(g)}},[_]);const G=h.useRef(!1);h.useEffect(()=>{if(!G.current&&t.mode==="session"&&t.directory){if(n===t.directory){G.current=!0;return}s(t.directory,{showOverlay:!1}),G.current=!0}},[t.directory,t.mode,n,s]),h.useEffect(()=>{t.mode!=="draft"||!u||a||!c||n===c||s(c,{showOverlay:!1})},[t.mode,n,a,c,u,s]),h.useEffect(()=>{P&&(E===0&&D({source:"electronMiniChat:recovery"}),F===0&&j({source:"electronMiniChat:recovery"}))},[F,P,j,D,E]);const A=h.useRef(!1);h.useEffect(()=>{if(A.current||t.mode!=="session"||!t.sessionId)return;if(a===t.sessionId){A.current=!0;return}if(a){A.current=!0;return}const i=e.find(g=>g.id===t.sessionId);if(!i){N.ensureSessionRenderable(t.sessionId);return}const w=i.directory??t.directory;d(t.sessionId,w),A.current=!0},[t,a,e,d,N]),h.useEffect(()=>{const i=w=>{const g=w.detail,f=typeof g?.sessionId=="string"?g.sessionId.trim():"";if(!f||y.getState().currentSessionId===f)return;const T=e.find(L=>L.id===f)?.directory?.trim()||(typeof g?.directory=="string"&&g.directory.trim().length>0?g.directory.trim():null);N.ensureSessionRenderable(f),d(f,T),A.current=!0};return window.addEventListener("openchamber:open-session",i),()=>window.removeEventListener("openchamber:open-session",i)},[e,d,N]),h.useEffect(()=>{if(t.mode!=="draft"||u||a)return;const i=!!(t.projectId||t.directory);m({target:i?"project":"chat",selectedProjectId:i?t.projectId:or,directoryOverride:i?t.directory:null,preserveDirectoryOverride:!!t.directory})},[t,a,u,m]),h.useEffect(()=>{if(r.length===0)return;let i=!1;return(async()=>{const g=new Map;if(await Promise.all(r.map(async T=>{const L=T.path.replace(/\\/g,"/").replace(/\/+$/,"");if(L)try{if(!(St.getState().directories.get(L)?.isGitRepo??await wr(()=>import("./useAppFontEffects-CuJPKtI1.js").then(W=>W.ii),__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])).then(W=>W.checkIsGitRepository(L))))return;const ve=await sr({id:T.id,path:L});if(i||ve.length===0)return;g.set(L,ve)}catch{}})),i)return;const f=ir(r,g),q=y.getState().availableWorktreesByProject;ar(f,q)||y.setState({availableWorktrees:[...f.values()].flat(),availableWorktreesByProject:f})})(),()=>{i=!0}},[r]);const H=h.useRef(!1);return h.useEffect(()=>{if(H.current||!_)return;const i=()=>{if(H.current)return;H.current=!0;const f=typeof document<"u"?document.getElementById("initial-loading"):null;f&&(f.classList.add("fade-out"),window.setTimeout(()=>f.remove(),300))},w=t.mode==="session"?a===t.sessionId:u,g=window.setTimeout(i,w?100:1500);return()=>window.clearTimeout(g)},[_,t.mode,t.sessionId,a,u]),null},Kr=()=>{const t=pe.c(4),e=y(Yr),n=ge(Qr);let s,r;return t[0]!==n||t[1]!==e?(s=()=>{if(!e||!n||typeof BroadcastChannel>"u")return;const a=new BroadcastChannel(Fr),u=m=>{a.postMessage({type:"mini-chat-session-presence",sessionId:e,directory:n,viewed:m})};u(!0);const c=window.setInterval(()=>u(!0),5e3),d=()=>u(!1);return window.addEventListener("beforeunload",d),()=>{window.clearInterval(c),window.removeEventListener("beforeunload",d),u(!1),a.close()}},r=[n,e],t[0]=n,t[1]=e,t[2]=s,t[3]=r):(s=t[2],r=t[3]),h.useEffect(s,r),null},Vr=t=>{const e=pe.c(7),n=pt(),s=y(en),r=y(tn),[a,u]=h.useState(!1);let c,d;return e[0]!==t.mode||e[1]!==t.sessionId||e[2]!==s||e[3]!==r||e[4]!==n?(c=()=>{if(r||t.mode!=="session"||!t.sessionId||s){u(!1);return}if(n.some(b=>b.id===t.sessionId)){u(!1);return}const m=window.setTimeout(()=>u(!0),5e3);return()=>window.clearTimeout(m)},d=[t.mode,t.sessionId,s,r,n],e[0]=t.mode,e[1]=t.sessionId,e[2]=s,e[3]=r,e[4]=n,e[5]=c,e[6]=d):(c=e[5],d=e[6]),h.useEffect(c,d),a};function Jr(t){const e=pe.c(15),{apis:n}=t;let s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s=Gr(),e[0]=s):s=e[0];const r=s,a=ge(Zr);let u,c;e[1]!==a?(u=()=>{ht.setDirectory(a||r.directory||void 0)},c=[r.directory,a],e[1]=a,e[2]=u,e[3]=c):(u=e[2],c=e[3]),h.useEffect(u,c);let d,m;e[4]!==n?(d=()=>(bt(n),qr),m=[n],e[4]=n,e[5]=d,e[6]=m):(d=e[5],m=e[6]),h.useEffect(d,m),Vt(),Ur();let b;e[7]===Symbol.for("react.memo_cache_sentinel")?(b={enabled:!0},e[7]=b):b=e[7],Jt(b),qt(),xr();let _;e[8]===Symbol.for("react.memo_cache_sentinel")?(_=ht.getSdkClient(),e[8]=_):_=e[8];const P=a||r.directory||"";let D;e[9]===Symbol.for("react.memo_cache_sentinel")?(D=l.jsx(Zt,{delayDuration:300,skipDelayDuration:150,children:l.jsxs("div",{className:"h-full text-foreground bg-background",children:[l.jsx(Xr,{config:r}),l.jsx(Xt,{}),l.jsx(Yt,{})]})}),e[9]=D):D=e[9];let j;e[10]!==n?(j=l.jsx(Qt,{apis:n,children:D}),e[10]=n,e[11]=j):j=e[11];let E;return e[12]!==j||e[13]!==P?(E=l.jsx(er,{children:l.jsx(tr,{sdk:_,directory:P,children:j})}),e[12]=j,e[13]=P,e[14]=E):E=e[14],E}function qr(){return bt(null)}function Zr(t){return t.currentDirectory}const Xr=t=>{const e=pe.c(11),{config:n}=t,s=Vr(n);let r;e[0]!==n?(r=l.jsx(Hr,{config:n}),e[0]=n,e[1]=r):r=e[1];let a,u;e[2]===Symbol.for("react.memo_cache_sentinel")?(a=l.jsx(Kr,{}),u=l.jsx(rr,{embeddedBackgroundWorkEnabled:!0}),e[2]=a,e[3]=u):(a=e[2],u=e[3]);const c=n.mode==="draft";let d;e[4]!==n.mode||e[5]!==s||e[6]!==c?(d=l.jsx(_r,{mode:n.mode,autoOpenDraft:c,unavailable:s}),e[4]=n.mode,e[5]=s,e[6]=c,e[7]=d):d=e[7];let m;return e[8]!==r||e[9]!==d?(m=l.jsxs(l.Fragment,{children:[r,a,u,d]}),e[8]=r,e[9]=d,e[10]=m):m=e[10],m};function Yr(t){return t.currentSessionId}function Qr(t){return t.currentDirectory}function en(t){return t.currentSessionId}function tn(t){return t.newSessionDraft.open}const rn=()=>{mr(),Mt().then(()=>{Promise.all([Rt(),pr()]).catch(t=>{console.error("[mini-chat-main] settings init failed:",t)}),fr(),hr(),yr()}).catch(t=>{console.error("[mini-chat-main] appearance init failed:",t)})};function Lo(t){rn();const e=document.getElementById("root");if(!e)throw new Error("Root element not found");kt.createRoot(e).render(l.jsx(Pt.StrictMode,{children:l.jsx(cr,{children:l.jsx(lr,{children:l.jsx(dr,{children:l.jsx(ur,{children:l.jsx(Jr,{apis:t})})})})})}))}export{Lo as renderElectronMiniChatApp};