@vantran-se/openchamber-web 1.22.1 → 1.23.0

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 (238) hide show
  1. package/README.md +2 -3
  2. package/bin/cli.js +11 -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-DFg2wnpo.js} +1 -1
  7. package/dist/assets/DiffView-3Dn4QHbu.js +4 -0
  8. package/dist/assets/DirtyBranchSwitchDialog-CwOerqVi.js +1 -0
  9. package/dist/assets/FilesView-BdTOpew9.js +17 -0
  10. package/dist/assets/GitView-Dqf9vHJh.js +6 -0
  11. package/dist/assets/{JsonTreeView-Bl0lp9Rs.js → JsonTreeView-BKdsjg5B.js} +1 -1
  12. package/dist/assets/LinearIssuesView-CmbeL7I6.js +1 -0
  13. package/dist/assets/MarkdownImageGallery-_5gEVr0X.js +1 -0
  14. package/dist/assets/MarkdownRendererImpl-wVZlx4dd.js +12 -0
  15. package/dist/assets/OnboardingScreen-DdP4_nuc.js +1 -0
  16. package/dist/assets/{PatchDiff-D6NXAfJk.js → PatchDiff-am3SAss2.js} +1 -1
  17. package/dist/assets/PierreDiffViewer-DCsydlKs.js +161 -0
  18. package/dist/assets/PlanView-BoJxdRZe.js +5 -0
  19. package/dist/assets/SettingsView-CcM8pF5O.js +28 -0
  20. package/dist/assets/{SettingsWindow-BiWDBRvb.js → SettingsWindow-DVTdDSol.js} +1 -1
  21. package/dist/assets/SymbolsNerdFontMono-Regular-aK5vsLov.woff2 +0 -0
  22. package/dist/assets/{ToolOutputDialog-BQexMQIm.js → ToolOutputDialog-BgfTbDZ4.js} +6 -6
  23. package/dist/assets/ToolPartDiffPreview-C7WLk5i9.js +8 -0
  24. package/dist/assets/{VirtualizedFileDiff-Dpz2ra8h.js → VirtualizedFileDiff-DcdgkH-x.js} +1 -1
  25. package/dist/assets/WalkthroughView-BEVUDxuw.js +4 -0
  26. package/dist/assets/{computeVirtualFileMetrics-DtyozJdt.js → computeVirtualFileMetrics-C8byMnRh.js} +2 -2
  27. package/dist/assets/contextPanelEmbeddedChat-CirXEPJq.js +1 -0
  28. package/dist/assets/de-C8jV7J9y.js +10 -0
  29. package/dist/assets/es-BI6J1M5R.js +16 -0
  30. package/dist/assets/fr-D6oDFt7E.js +14 -0
  31. package/dist/assets/ghostty-vt-DdA0Zryv.wasm +0 -0
  32. package/dist/assets/{index-DmhujXbT.js → index-BB7ryz8y.js} +1 -1
  33. package/dist/assets/index-BqhiCmYS.js +39 -0
  34. package/dist/assets/index-FqSOBz0J.css +1 -0
  35. package/dist/assets/{isDiffPlainText-XyulMHxx.js → isDiffPlainText-45ujMPGb.js} +1 -1
  36. package/dist/assets/{isFilePlainText-B19Ddps1.js → isFilePlainText-Cc4KFSYi.js} +1 -1
  37. package/dist/assets/ja-C_4i5EQu.js +16 -0
  38. package/dist/assets/ko-BFbOTpbq.js +16 -0
  39. package/dist/assets/{main-B2a_JfKZ.js → main-C9ETLKFc.js} +2 -2
  40. package/dist/assets/main-CJmb2dF8.js +930 -0
  41. package/dist/assets/markdownCore-DVuZpnli.js +5 -0
  42. package/dist/assets/{miniChat-B3CSU_Ps.js → miniChat-B4Ytoq2n.js} +2 -2
  43. package/dist/assets/{mobile-QNcFIVCW.js → mobile-BUT6-lo1.js} +2 -2
  44. package/dist/assets/patchFileDiff-8j1apICU.js +13 -0
  45. package/dist/assets/pl-COFvT56l.js +16 -0
  46. package/dist/assets/pt-BR-DtVOO2Lj.js +16 -0
  47. package/dist/assets/renderElectronMiniChatApp-B6vUG-vF.js +2 -0
  48. package/dist/assets/renderMobileApp-BNgHraq6.js +25 -0
  49. package/dist/assets/runtimeEndpointReset-B8LYpWvr.js +17 -0
  50. package/dist/assets/scheduledTasksApi-GC4epIYA.js +1 -0
  51. package/dist/assets/{shikiHighlight-DE-OwqGw.js → shikiHighlight-BJISeZsQ.js} +1 -1
  52. package/dist/assets/surface-BvRzS58U.js +1 -0
  53. package/dist/assets/tr-B8Q0Go2l.js +7 -0
  54. package/dist/assets/uk-Dk4a-Fn-.js +16 -0
  55. package/dist/assets/{useAppFontEffects-COAeIX-D.js → useAppFontEffects-DpFNefUA.js} +153 -179
  56. package/dist/assets/useGitComparison-Dfxaqd0s.js +1 -0
  57. package/dist/assets/useInlineCommentController-CscsE4t-.js +2 -0
  58. package/dist/assets/useRootScrollLock-BaCvuRlT.js +1 -0
  59. package/dist/assets/{vendor-base-ui-BeMD8X_w.js → vendor-base-ui-DdV8vhHn.js} +1 -1
  60. package/dist/assets/{vendor-codemirror-language-data-BG3v1Ghq.js → vendor-codemirror-language-data-DzlSIu_W.js} +2 -2
  61. package/dist/assets/vendor-legendapp-list-BuBPBC3R.js +1 -0
  62. package/dist/assets/vendor-zod-BPAANqvH.js +39 -0
  63. package/dist/assets/{web-components-BNMwa0qm.js → web-components-CdGfR2XJ.js} +1 -1
  64. package/dist/assets/zh-CN-B_BXxG1Q.js +16 -0
  65. package/dist/assets/zh-TW-DLrl1SPZ.js +16 -0
  66. package/dist/index.html +5 -43
  67. package/dist/mini-chat.html +4 -4
  68. package/dist/mobile.html +4 -4
  69. package/package.json +8 -5
  70. package/server/index.d.ts +15 -0
  71. package/server/index.js +82 -13
  72. package/server/lib/agent-tool/runtime.js +2 -19
  73. package/server/lib/changelog/update-notes.js +82 -0
  74. package/server/lib/changelog/update-notes.test.js +59 -0
  75. package/server/lib/data-dir-migration.js +40 -0
  76. package/server/lib/data-dir-migration.test.js +59 -0
  77. package/server/lib/dev-tunnel/DOCUMENTATION.md +13 -4
  78. package/server/lib/dev-tunnel/runtime.js +4 -4
  79. package/server/lib/dev-tunnel/tunnel.test.js +20 -0
  80. package/server/lib/event-stream/runtime.test.js +12 -12
  81. package/server/lib/fs/DOCUMENTATION.md +5 -0
  82. package/server/lib/fs/routes.js +63 -21
  83. package/server/lib/fs/routes.test.js +187 -1
  84. package/server/lib/git/DOCUMENTATION.md +32 -6
  85. package/server/lib/git/routes.js +40 -4
  86. package/server/lib/git/service.js +291 -215
  87. package/server/lib/git/service.test.js +593 -25
  88. package/server/lib/inherited-env.js +16 -9
  89. package/server/lib/inherited-env.test.js +8 -9
  90. package/server/lib/mcp-reconnect/DOCUMENTATION.md +55 -0
  91. package/server/lib/mcp-reconnect/runtime.js +122 -0
  92. package/server/lib/mcp-reconnect/runtime.test.js +140 -0
  93. package/server/lib/message-queue/DOCUMENTATION.md +161 -0
  94. package/server/lib/message-queue/runtime.js +870 -0
  95. package/server/lib/message-queue/runtime.test.js +482 -0
  96. package/server/lib/network-defaults.js +23 -0
  97. package/server/lib/network-defaults.test.js +52 -0
  98. package/server/lib/openchamber-sessions/routes.js +102 -0
  99. package/server/lib/openchamber-sessions/routes.test.js +88 -0
  100. package/server/lib/opencode/DOCUMENTATION.md +30 -6
  101. package/server/lib/opencode/bootstrap-runtime.js +2 -0
  102. package/server/lib/opencode/config-paths.test.js +116 -0
  103. package/server/lib/opencode/core-routes.js +1 -0
  104. package/server/lib/opencode/feature-routes-runtime.js +7 -0
  105. package/server/lib/opencode/input-history-scope.js +14 -0
  106. package/server/lib/opencode/managed-plugin-config.js +35 -0
  107. package/server/lib/opencode/openchamber-routes.js +64 -4
  108. package/server/lib/opencode/openchamber-routes.test.js +130 -3
  109. package/server/lib/opencode/plugins.js +2 -2
  110. package/server/lib/opencode/providers.js +44 -2
  111. package/server/lib/opencode/providers.test.js +131 -4
  112. package/server/lib/opencode/routes.js +9 -7
  113. package/server/lib/opencode/server-startup-runtime.js +1 -1
  114. package/server/lib/opencode/settings-files.js +214 -0
  115. package/server/lib/opencode/settings-helpers.js +113 -41
  116. package/server/lib/opencode/settings-helpers.test.js +342 -0
  117. package/server/lib/opencode/settings-registry.json +747 -0
  118. package/server/lib/opencode/settings-runtime.js +141 -20
  119. package/server/lib/opencode/settings-runtime.test.js +191 -4
  120. package/server/lib/opencode/shared.js +4 -1
  121. package/server/lib/opencode/shutdown-runtime.js +2 -0
  122. package/server/lib/opencode/skill-routes.js +2 -1
  123. package/server/lib/opencode/snippets.js +1 -2
  124. package/server/lib/package-manager.js +4 -29
  125. package/server/lib/package-manager.test.js +2 -2
  126. package/server/lib/project-context/DOCUMENTATION.md +25 -1
  127. package/server/lib/project-context/routes.http.test.js +18 -0
  128. package/server/lib/project-context/routes.js +15 -0
  129. package/server/lib/project-context/runtime.js +248 -23
  130. package/server/lib/project-context/runtime.test.js +106 -3
  131. package/server/lib/projects/DOCUMENTATION.md +76 -0
  132. package/server/lib/projects/project-config.js +142 -9
  133. package/server/lib/projects/project-id.js +17 -0
  134. package/server/lib/projects/project-setup.js +409 -0
  135. package/server/lib/projects/project-setup.test.js +557 -0
  136. package/server/lib/projects/routes.js +59 -0
  137. package/server/lib/quota/DOCUMENTATION.md +40 -2
  138. package/server/lib/quota/credentials/providers.js +4 -0
  139. package/server/lib/quota/credentials/store.js +1 -1
  140. package/server/lib/quota/credentials/store.test.js +4 -4
  141. package/server/lib/quota/index.js +1 -0
  142. package/server/lib/quota/providers/cline-pass.js +125 -0
  143. package/server/lib/quota/providers/cline-pass.test.js +103 -0
  144. package/server/lib/quota/providers/exe-dev.js +75 -0
  145. package/server/lib/quota/providers/exe-dev.test.js +47 -0
  146. package/server/lib/quota/providers/hyper.js +118 -0
  147. package/server/lib/quota/providers/hyper.test.js +126 -0
  148. package/server/lib/quota/providers/index.js +22 -0
  149. package/server/lib/quota/providers/neuralwatt.js +3 -6
  150. package/server/lib/quota/providers/neuralwatt.test.js +7 -7
  151. package/server/lib/quota/providers/ollama-cloud.js +31 -0
  152. package/server/lib/quota/providers/ollama-cloud.test.js +33 -1
  153. package/server/lib/quota/providers/opencode-go.js +2 -1
  154. package/server/lib/quota/providers/opencode-go.test.js +31 -2
  155. package/server/lib/quota/providers/openrouter.js +119 -24
  156. package/server/lib/quota/providers/openrouter.test.js +330 -0
  157. package/server/lib/quota/routes.js +2 -0
  158. package/server/lib/quota/utils/auth.js +1 -1
  159. package/server/lib/relay/DOCUMENTATION.md +56 -1
  160. package/server/lib/relay/cross-compat.test.js +26 -0
  161. package/server/lib/relay/downstream-scheduler.js +154 -0
  162. package/server/lib/relay/downstream-scheduler.test.js +162 -0
  163. package/server/lib/relay/e2ee.js +10 -8
  164. package/server/lib/relay/flow-control.test.js +177 -0
  165. package/server/lib/relay/host-client.js +37 -8
  166. package/server/lib/relay/host-client.test.js +9 -1
  167. package/server/lib/relay/tunnel-codec.js +9 -0
  168. package/server/lib/relay/tunnel-host.js +69 -18
  169. package/server/lib/relay/tunnel-host.test.js +9 -1
  170. package/server/lib/security/request-security.js +21 -6
  171. package/server/lib/security/request-security.test.js +42 -8
  172. package/server/lib/session-assist/runtime.js +7 -10
  173. package/server/lib/session-goal/DOCUMENTATION.md +20 -7
  174. package/server/lib/session-goal/create.js +3 -1
  175. package/server/lib/session-goal/runtime.js +81 -20
  176. package/server/lib/session-goal/runtime.test.js +426 -0
  177. package/server/lib/skills-catalog/DOCUMENTATION.md +1 -1
  178. package/server/lib/skills-catalog/install.js +3 -2
  179. package/server/lib/small-model/DOCUMENTATION.md +7 -2
  180. package/server/lib/small-model/call.js +17 -6
  181. package/server/lib/small-model/call.test.js +52 -0
  182. package/server/lib/small-model/index.js +7 -11
  183. package/server/lib/small-model/routes.js +2 -1
  184. package/server/lib/small-model/runtime-providers.js +15 -7
  185. package/server/lib/small-model/runtime-providers.test.js +7 -1
  186. package/server/lib/system-prompt/runtime.js +2 -21
  187. package/server/lib/terminal/DOCUMENTATION.md +14 -10
  188. package/server/lib/terminal/runtime.js +190 -31
  189. package/server/lib/terminal/runtime.test.js +571 -37
  190. package/server/lib/terminal/shells.js +17 -0
  191. package/server/lib/terminal/shells.test.js +32 -1
  192. package/server/lib/ui-auth/ui-auth.js +4 -1
  193. package/server/lib/ui-auth/ui-auth.test.js +16 -0
  194. package/server/lib/walkthrough/DOCUMENTATION.md +33 -14
  195. package/server/lib/walkthrough/index.js +1 -0
  196. package/server/lib/walkthrough/model-settings.js +8 -12
  197. package/server/lib/walkthrough/prompt.js +3 -1
  198. package/server/lib/walkthrough/routes.test.js +26 -5
  199. package/server/lib/walkthrough/sources.js +23 -2
  200. package/dist/assets/CommitSection-X-f2RgYr.js +0 -1
  201. package/dist/assets/DiffView-Dh1ey2x9.js +0 -4
  202. package/dist/assets/FilesView-3ZYP72ki.js +0 -17
  203. package/dist/assets/GitView-CMuN7z2Z.js +0 -6
  204. package/dist/assets/LinearIssuesView-CQiUDU8b.js +0 -1
  205. package/dist/assets/MarkdownImageGallery-bA0PS-tn.js +0 -1
  206. package/dist/assets/MarkdownRendererImpl-BGQi2PLq.js +0 -12
  207. package/dist/assets/OnboardingScreen-D3kYJIb6.js +0 -1
  208. package/dist/assets/PierreDiffViewer-Ct2A13NO.js +0 -157
  209. package/dist/assets/PlanView-6AUjzNQn.js +0 -5
  210. package/dist/assets/SettingsView-CHI8fFaK.js +0 -28
  211. package/dist/assets/ToolPartDiffPreview-DPAATNn6.js +0 -8
  212. package/dist/assets/WalkthroughView-AX-u2pFg.js +0 -4
  213. package/dist/assets/contextPanelEmbeddedChat-C9EcRSDF.js +0 -1
  214. package/dist/assets/de-DqVn5vme.js +0 -9
  215. package/dist/assets/es-hj43Z53i.js +0 -15
  216. package/dist/assets/fr-BmkZt2mF.js +0 -13
  217. package/dist/assets/index-L_ncV-6H.css +0 -1
  218. package/dist/assets/index-qES19dlJ.js +0 -7
  219. package/dist/assets/ja-DioMIEGF.js +0 -15
  220. package/dist/assets/ko-BqPgaQJb.js +0 -15
  221. package/dist/assets/main-CYgSu6dx.js +0 -928
  222. package/dist/assets/markdownCore-CWRCqSH2.js +0 -3
  223. package/dist/assets/patchFileDiff-BpMQZnYu.js +0 -10
  224. package/dist/assets/pl-slULBF4R.js +0 -15
  225. package/dist/assets/pt-BR-BqH8fuCH.js +0 -15
  226. package/dist/assets/renderElectronMiniChatApp-D77bmLqo.js +0 -2
  227. package/dist/assets/renderMobileApp-BQ3Kdm-d.js +0 -25
  228. package/dist/assets/runtimeEndpointReset-CRGn1gVj.js +0 -16
  229. package/dist/assets/scheduledTasksApi-BSRCtP6T.js +0 -1
  230. package/dist/assets/tr-CjEbw1Aw.js +0 -6
  231. package/dist/assets/uk-BkkfxbOs.js +0 -15
  232. package/dist/assets/useInlineCommentController-JsBboQwt.js +0 -2
  233. package/dist/assets/useRootScrollLock-C0N9mCwz.js +0 -1
  234. package/dist/assets/vendor-ghostty-web-CrxinGGH.js +0 -13
  235. package/dist/assets/vendor-legendapp-list-gg7YLRW7.js +0 -1
  236. package/dist/assets/vendor-zod-BLfBSgBh.js +0 -39
  237. package/dist/assets/zh-CN-C6FMdVgv.js +0 -15
  238. package/dist/assets/zh-TW-CdcMjDxv.js +0 -15
@@ -1,2 +0,0 @@
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};