@vantran-se/openchamber-web 2.1.1 → 2.2.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 (442) hide show
  1. package/README.md +32 -24
  2. package/bin/cli.js +1 -3
  3. package/bin/cli.test.js +40 -16
  4. package/bin/lib/DOCUMENTATION.md +6 -5
  5. package/bin/lib/cli-args.js +6 -1
  6. package/bin/lib/cli-args.test.js +34 -0
  7. package/bin/lib/cli-lifecycle.js +0 -1
  8. package/bin/lib/cli-network.js +8 -2
  9. package/bin/lib/cli-process.js +1 -1
  10. package/bin/lib/cli-settings-accessors.test.js +21 -13
  11. package/bin/lib/cli-startup.js +17 -11
  12. package/bin/lib/cli-startup.test.js +92 -2
  13. package/bin/lib/commands-connect-url.js +8 -1
  14. package/bin/lib/commands-schedule.js +8 -2
  15. package/bin/lib/commands-serve.js +15 -21
  16. package/bin/lib/commands-update.js +12 -24
  17. package/bin/lib/commands-update.test.js +14 -46
  18. package/dist/assets/DiffView-Cv9MSXl1.js +4 -0
  19. package/dist/assets/FilePreviewCommentMenu-D4kLseHj.js +4 -0
  20. package/dist/assets/FilesView-BVoD8I2x.js +14 -0
  21. package/dist/assets/{GitView-DzuzhIPx.js → GitView-Bzb8p-ew.js} +4 -4
  22. package/dist/assets/GuestSurfacePane-Crdbvsxo.js +1 -0
  23. package/dist/assets/InProgressOperationBanner-CwMjNQgk.js +2 -0
  24. package/dist/assets/{JsonTreeView-B_EPRjzy.js → JsonTreeView-DRKHZfsn.js} +1 -1
  25. package/dist/assets/MarkdownImageGallery-DZtqT1Zn.js +1 -0
  26. package/dist/assets/MarkdownRendererImpl-CqG7HCNd.js +10 -0
  27. package/dist/assets/OnboardingScreen-DMIxwYK5.js +1 -0
  28. package/dist/assets/{PatchDiff-6yh1csza.js → PatchDiff-CUcCg1jk.js} +1 -1
  29. package/dist/assets/PierreDiffViewer-CnnR-dnD.js +228 -0
  30. package/dist/assets/PlanView-RCBadcY7.js +5 -0
  31. package/dist/assets/SettingsView-CjBjZFRO.js +30 -0
  32. package/dist/assets/SettingsWindow-DyM7QuhI.js +1 -0
  33. package/dist/assets/SubmoduleDiffSummary-BWIfgMED.js +1 -0
  34. package/dist/assets/ToolOutputDialog-Q0P3FuAi.js +15 -0
  35. package/dist/assets/ToolPartDiffPreview-p7qR9FpU.js +8 -0
  36. package/dist/assets/{VirtualizedFileDiff-BTJVRkyo.js → VirtualizedFileDiff-CFpjL8Ns.js} +3 -3
  37. package/dist/assets/{Virtualizer-xCEYz34p.js → Virtualizer-C0IsclZn.js} +1 -1
  38. package/dist/assets/WalkthroughView-DI31zD02.js +4 -0
  39. package/dist/assets/appThemeRegistry-B9gkFq9i.js +1 -0
  40. package/dist/assets/{computeVirtualFileMetrics-CmPe29DM.js → computeVirtualFileMetrics-C2WM6JC2.js} +2 -2
  41. package/dist/assets/de-YKfk5MmC.js +14 -0
  42. package/dist/assets/es-_gwT0kr-.js +20 -0
  43. package/dist/assets/fileTreeStatus-D438yi8M.js +1 -0
  44. package/dist/assets/fr-DqzvXmIm.js +18 -0
  45. package/dist/assets/index-BLaHKdtx.js +1 -0
  46. package/dist/assets/index-BkMXRrVQ.css +1 -0
  47. package/dist/assets/index-DxNa7xYB.js +65 -0
  48. package/dist/assets/initializeSharedPreferences-Bck5EAWP.js +1 -0
  49. package/dist/assets/{isDiffPlainText-CQmDCnEv.js → isDiffPlainText-Dgbw8VKk.js} +1 -1
  50. package/dist/assets/{isFilePlainText-CYBUzW4I.js → isFilePlainText-_ZS5UYRj.js} +1 -1
  51. package/dist/assets/ja-B-GFYhQE.js +20 -0
  52. package/dist/assets/ko-mzksfqDC.js +20 -0
  53. package/dist/assets/main-C5Xx8dn_.js +2 -0
  54. package/dist/assets/main-CfBSQM1H.js +990 -0
  55. package/dist/assets/markdownCore-BmWwW1ll.js +7 -0
  56. package/dist/assets/miniChat-mnKwy4vQ.js +2 -0
  57. package/dist/assets/mobile-DeEQd0wZ.js +2 -0
  58. package/dist/assets/nl-CWQr6NSq.js +20 -0
  59. package/dist/assets/{parseDiffFromFile-Cy0PNxun.js → parseDiffFromFile-BUgn-T9p.js} +2 -2
  60. package/dist/assets/patchFileDiff-Dt8LhgBh.js +13 -0
  61. package/dist/assets/pl-UmRcDUX2.js +20 -0
  62. package/dist/assets/pt-BR-BSLybvVF.js +20 -0
  63. package/dist/assets/relocateRestoredSession-B5E9xb3T.js +1 -0
  64. package/dist/assets/renderElectronMiniChatApp-C0a9A5_J.js +2 -0
  65. package/dist/assets/renderMobileApp-BNncg3Pk.js +25 -0
  66. package/dist/assets/runtimeEndpointReset-CZ5aafpl.js +62 -0
  67. package/dist/assets/{selectionMarkdown-TkYk5h9l.js → selectionMarkdown-CUN3wUld.js} +9 -9
  68. package/dist/assets/{sessionOwnership-Bs1xbRfB.js → sessionOwnership-BSuxCEhb.js} +1 -1
  69. package/dist/assets/shikiHighlight-DHDx-6eM.js +1 -0
  70. package/dist/assets/space-apply-DM_2pRW7.js +1 -0
  71. package/dist/assets/space-close-Bpomt8z0.js +1 -0
  72. package/dist/assets/{surface-B6n7wJtt.js → surface-C-jQaGnL.js} +1 -1
  73. package/dist/assets/{textMateThemeFromAppTheme-CDlKffWz.js → textMateThemeFromAppTheme-DlsTphbY.js} +1 -1
  74. package/dist/assets/tr-gaTrX_HK.js +11 -0
  75. package/dist/assets/uk-CnJF6ykl.js +20 -0
  76. package/dist/assets/{useAppFontEffects-DCqCVGlT.js → useAppFontEffects-DGlvOqP_.js} +194 -233
  77. package/dist/assets/useInlineCommentController-kMN4Wg_D.js +2 -0
  78. package/dist/assets/{useRootScrollLock-BowwS8kq.js → useRootScrollLock-DMPpvpNP.js} +2 -2
  79. package/dist/assets/{vendor-base-ui-DX96QhTP.js → vendor-base-ui-Det7U81h.js} +1 -1
  80. package/dist/assets/{vendor-codemirror-autocomplete-DW1FQz9_.js → vendor-codemirror-autocomplete-BSHQHbKu.js} +1 -1
  81. package/dist/assets/{vendor-codemirror-commands-DpmhalwN.js → vendor-codemirror-commands-C4G_dPWe.js} +1 -1
  82. package/dist/assets/{vendor-codemirror-lang-angular-BqExbN1M.js → vendor-codemirror-lang-angular-B6LbBGHB.js} +1 -1
  83. package/dist/assets/{vendor-codemirror-lang-cpp-DZA36HfS.js → vendor-codemirror-lang-cpp-BWWXBx7W.js} +1 -1
  84. package/dist/assets/{vendor-codemirror-lang-css-B07blnnZ.js → vendor-codemirror-lang-css-Cayfb29q.js} +1 -1
  85. package/dist/assets/{vendor-codemirror-lang-go-BM8K9D1-.js → vendor-codemirror-lang-go-BoKlCNKw.js} +1 -1
  86. package/dist/assets/{vendor-codemirror-lang-html-DaH9adfE.js → vendor-codemirror-lang-html-BQWerHsJ.js} +1 -1
  87. package/dist/assets/{vendor-codemirror-lang-java-CsdC0viz.js → vendor-codemirror-lang-java-DWX7Fq_K.js} +1 -1
  88. package/dist/assets/{vendor-codemirror-lang-javascript-CpGYXGuo.js → vendor-codemirror-lang-javascript-DbpEcZM0.js} +2 -2
  89. package/dist/assets/{vendor-codemirror-lang-jinja-BBeGzXw5.js → vendor-codemirror-lang-jinja-D1JIJRA7.js} +1 -1
  90. package/dist/assets/{vendor-codemirror-lang-json-58T70Hqs.js → vendor-codemirror-lang-json-BzgckzmB.js} +1 -1
  91. package/dist/assets/{vendor-codemirror-lang-less-BI-xCA59.js → vendor-codemirror-lang-less-B9EpDXFi.js} +1 -1
  92. package/dist/assets/{vendor-codemirror-lang-liquid-zEcMa-zy.js → vendor-codemirror-lang-liquid-9U7kRbSf.js} +1 -1
  93. package/dist/assets/{vendor-codemirror-lang-markdown-BLKnlLP4.js → vendor-codemirror-lang-markdown-D2TEBIvZ.js} +1 -1
  94. package/dist/assets/{vendor-codemirror-lang-php-9f35M83-.js → vendor-codemirror-lang-php-BT6sDVzE.js} +1 -1
  95. package/dist/assets/vendor-codemirror-lang-python-jAMtYiA9.js +3 -0
  96. package/dist/assets/{vendor-codemirror-lang-rust-MNDL_jZQ.js → vendor-codemirror-lang-rust-CVO56EiL.js} +1 -1
  97. package/dist/assets/{vendor-codemirror-lang-sass-p9epsSNm.js → vendor-codemirror-lang-sass-DZlOoUWu.js} +1 -1
  98. package/dist/assets/{vendor-codemirror-lang-sql-Bqzh0EXX.js → vendor-codemirror-lang-sql-fZ6t1DPw.js} +1 -1
  99. package/dist/assets/{vendor-codemirror-lang-vue-BnNUWV-p.js → vendor-codemirror-lang-vue-DxbqrLiE.js} +1 -1
  100. package/dist/assets/{vendor-codemirror-lang-wast-C2a-oLmk.js → vendor-codemirror-lang-wast-DyU1Gt-I.js} +1 -1
  101. package/dist/assets/vendor-codemirror-lang-xml-C9a_K5_p.js +1 -0
  102. package/dist/assets/{vendor-codemirror-lang-yaml-C0sjswB0.js → vendor-codemirror-lang-yaml-Cptq8l0e.js} +1 -1
  103. package/dist/assets/{vendor-codemirror-language-ByBn5zIW.js → vendor-codemirror-language-DufXoQvE.js} +2 -2
  104. package/dist/assets/vendor-codemirror-language-data-CtwSWKtX.js +2 -0
  105. package/dist/assets/{vendor-codemirror-search-ib-sHD5W.js → vendor-codemirror-search-CvXM_pZg.js} +1 -1
  106. package/dist/assets/{vendor-codemirror-state-G3UuR-be.js → vendor-codemirror-state-Dek9sMtw.js} +1 -1
  107. package/dist/assets/{vendor-codemirror-view-Bniqp7p5.js → vendor-codemirror-view-1e0FQ6Wn.js} +1 -1
  108. package/dist/assets/vendor-framer-motion-DxDVhOLc.js +9 -0
  109. package/dist/assets/vendor-katex-CuQvj9-L.js +257 -0
  110. package/dist/assets/vendor-katex-DdZNUVNG.css +1 -0
  111. package/dist/assets/{vendor-motion-dom-DcCgeG69.js → vendor-motion-dom-HXPOMxb7.js} +1 -1
  112. package/dist/assets/{vendor-opencode-client-DHzhmLwV.js → vendor-opencode-client-BmFcUkbQ.js} +1 -1
  113. package/dist/assets/{vendor-replit-codemirror-vim-DkzqxN2H.js → vendor-replit-codemirror-vim-BlJRn-cW.js} +2 -2
  114. package/dist/assets/{vendor-tanstack-react-virtual-H_JmXOFV.js → vendor-tanstack-react-virtual-CvuLsk7D.js} +1 -1
  115. package/dist/assets/{vendor-tanstack-virtual-core-Dxc8hSTB.js → vendor-tanstack-virtual-core-DPaNcJcT.js} +1 -1
  116. package/dist/assets/zh-CN-t2vigSB1.js +20 -0
  117. package/dist/assets/zh-TW-jAgqBokB.js +20 -0
  118. package/dist/index.html +6 -6
  119. package/dist/mini-chat.html +6 -6
  120. package/dist/mobile.html +6 -6
  121. package/package.json +8 -5
  122. package/server/index.js +80 -36
  123. package/server/lib/agent-memory/actions.js +1 -6
  124. package/server/lib/agent-memory/routes.js +1 -2
  125. package/server/lib/agent-memory/runtime.js +1 -8
  126. package/server/lib/agent-tool/DOCUMENTATION.md +7 -3
  127. package/server/lib/agent-tool/runtime.js +3 -6
  128. package/server/lib/agent-tool/runtime.test.js +0 -2
  129. package/server/lib/browser-control/DOCUMENTATION.md +6 -0
  130. package/server/lib/changelog/update-notes.js +1 -1
  131. package/server/lib/context-obligatory/runtime.js +1 -2
  132. package/server/lib/dev-tunnel/DOCUMENTATION.md +8 -0
  133. package/server/lib/dev-tunnel/client.js +21 -10
  134. package/server/lib/dev-tunnel/tunnel.test.js +34 -0
  135. package/server/lib/dispatch-results/runtime.js +1 -1
  136. package/server/lib/enterprise-mode.d.ts +1 -0
  137. package/server/lib/enterprise-mode.js +13 -2
  138. package/server/lib/enterprise-mode.test.js +21 -0
  139. package/server/lib/event-stream/DOCUMENTATION.md +2 -2
  140. package/server/lib/event-stream/index.js +1 -3
  141. package/server/lib/event-stream/translate-v2.js +1 -9
  142. package/server/lib/event-stream/translate-v2.test.js +0 -11
  143. package/server/lib/fs/DOCUMENTATION.md +5 -2
  144. package/server/lib/fs/routes.js +62 -15
  145. package/server/lib/fs/routes.test.js +278 -48
  146. package/server/lib/fs/workspace-file-names.js +104 -0
  147. package/server/lib/fs/workspace-file-names.test.js +62 -0
  148. package/server/lib/git/DOCUMENTATION.md +17 -5
  149. package/server/lib/git/contributor-provenance-storage.js +9 -6
  150. package/server/lib/git/contributor-provenance-storage.test.js +29 -0
  151. package/server/lib/git/credential-broker.js +1 -1
  152. package/server/lib/git/credential-resolver.js +1 -4
  153. package/server/lib/git/credentials.js +1 -0
  154. package/server/lib/git/discovery-endpoint.js +1 -1
  155. package/server/lib/git/identity-provisioning.js +2 -1
  156. package/server/lib/git/identity-storage.js +3 -4
  157. package/server/lib/git/lfs-discovery.js +14 -14
  158. package/server/lib/git/lfs-discovery.test.js +16 -6
  159. package/server/lib/git/network-operation-plan.js +50 -62
  160. package/server/lib/git/network-operation-plan.test.js +103 -1
  161. package/server/lib/git/network-operation-registry.js +4 -6
  162. package/server/lib/git/network-operation-storage.js +4 -6
  163. package/server/lib/git/network-operations.js +12 -4
  164. package/server/lib/git/network-operations.test.js +19 -6
  165. package/server/lib/git/redaction.js +2 -1
  166. package/server/lib/git/repository-credential-runtime.js +5 -3
  167. package/server/lib/git/repository-credential-runtime.test.js +22 -0
  168. package/server/lib/git/routes.js +31 -137
  169. package/server/lib/git/routes.test.js +2 -2
  170. package/server/lib/git/service.js +143 -27
  171. package/server/lib/git/service.test.js +215 -1
  172. package/server/lib/git/ssh-credential-storage.js +1 -4
  173. package/server/lib/git/submodule-discovery.js +1 -1
  174. package/server/lib/git/worktree-bootstrap-storage.js +3 -4
  175. package/server/lib/git/worktree-bootstrap-storage.test.js +15 -0
  176. package/server/lib/git/worktree-creation.js +194 -0
  177. package/server/lib/git/worktree-creation.test.js +155 -0
  178. package/server/lib/github/DOCUMENTATION.md +11 -6
  179. package/server/lib/github/auth.js +2 -4
  180. package/server/lib/github/device-flow.js +2 -2
  181. package/server/lib/github/gh-cli-credential.js +1 -0
  182. package/server/lib/github/octokit.js +31 -0
  183. package/server/lib/github/pr-status.js +35 -18
  184. package/server/lib/github/pr-status.test.js +271 -3
  185. package/server/lib/github/reference-search.js +102 -13
  186. package/server/lib/github/reference-search.test.js +48 -7
  187. package/server/lib/github/routes.auth.test.js +18 -0
  188. package/server/lib/github/routes.js +360 -6
  189. package/server/lib/github/routes.mutations.test.js +239 -0
  190. package/server/lib/github/routes.test.js +134 -2
  191. package/server/lib/gitlab/DOCUMENTATION.md +5 -1
  192. package/server/lib/gitlab/auth-storage.test.js +1 -0
  193. package/server/lib/gitlab/mappers.js +30 -1
  194. package/server/lib/gitlab/resources.js +230 -6
  195. package/server/lib/gitlab/resources.test.js +179 -0
  196. package/server/lib/gitlab/routes.js +200 -6
  197. package/server/lib/gitlab/routes.test.js +186 -2
  198. package/server/lib/gitlab/validation.js +1 -5
  199. package/server/lib/guests/DOCUMENTATION.md +1 -1
  200. package/server/lib/guests/oauth.js +2 -2
  201. package/server/lib/guests/service.js +1 -1
  202. package/server/lib/guests/sockets.js +1 -1
  203. package/server/lib/injected-env.d.ts +8 -0
  204. package/server/lib/injected-env.js +50 -0
  205. package/server/lib/injected-env.test.js +56 -0
  206. package/server/lib/linear/DOCUMENTATION.md +5 -6
  207. package/server/lib/linear/issues.js +62 -4
  208. package/server/lib/linear/issues.test.js +68 -0
  209. package/server/lib/linear/oauth.js +5 -5
  210. package/server/lib/linear/parse.js +2 -9
  211. package/server/lib/message-queue/DOCUMENTATION.md +23 -1
  212. package/server/lib/message-queue/runtime.js +85 -12
  213. package/server/lib/message-queue/runtime.test.js +172 -2
  214. package/server/lib/notifications/apns-runtime.js +5 -6
  215. package/server/lib/notifications/apns-runtime.test.js +20 -4
  216. package/server/lib/openchamber-control/DOCUMENTATION.md +19 -1
  217. package/server/lib/openchamber-control/actions.js +2 -1
  218. package/server/lib/openchamber-control/service.js +119 -20
  219. package/server/lib/openchamber-control/service.test.js +166 -0
  220. package/server/lib/openchamber-sessions/archive-store.js +1 -6
  221. package/server/lib/openchamber-sessions/routes.js +47 -12
  222. package/server/lib/openchamber-sessions/routes.test.js +65 -2
  223. package/server/lib/openchamber-sessions/session-metadata-store.js +1 -6
  224. package/server/lib/opencode/DOCUMENTATION.md +22 -8
  225. package/server/lib/opencode/agents.js +62 -0
  226. package/server/lib/opencode/auth-state-runtime.js +3 -1
  227. package/server/lib/opencode/auth.d.ts +1 -1
  228. package/server/lib/opencode/auth.js +8 -0
  229. package/server/lib/opencode/auth.test.js +31 -0
  230. package/server/lib/opencode/config-entity-routes.js +16 -0
  231. package/server/lib/opencode/config-entity-v2.test.js +16 -1
  232. package/server/lib/opencode/config-paths.test.js +2 -2
  233. package/server/lib/opencode/config-v2.js +2 -4
  234. package/server/lib/opencode/feature-routes-runtime.js +89 -49
  235. package/server/lib/opencode/lifecycle.js +41 -21
  236. package/server/lib/opencode/lifecycle.test.js +50 -2
  237. package/server/lib/opencode/model-discovery.js +1 -1
  238. package/server/lib/opencode/model-discovery.test.js +17 -0
  239. package/server/lib/opencode/models-metadata.js +0 -2
  240. package/server/lib/opencode/openchamber-routes.test.js +3 -3
  241. package/server/lib/opencode/plugins.js +6 -9
  242. package/server/lib/opencode/provider-source-route.test.js +101 -3
  243. package/server/lib/opencode/providers-disabled.test.js +59 -0
  244. package/server/lib/opencode/providers.js +34 -0
  245. package/server/lib/opencode/proxy.js +11 -3
  246. package/server/lib/opencode/routes.js +40 -2
  247. package/server/lib/opencode/settings-helpers.js +27 -1
  248. package/server/lib/opencode/settings-helpers.test.js +19 -7
  249. package/server/lib/opencode/settings-registry.json +27 -16
  250. package/server/lib/opencode/settings-runtime.test.js +18 -0
  251. package/server/lib/opencode/shared-service-runtime.js +23 -104
  252. package/server/lib/opencode/shared.js +77 -46
  253. package/server/lib/opencode/shared.test.js +12 -12
  254. package/server/lib/opencode/shutdown-runtime.test.js +2 -3
  255. package/server/lib/opencode/skill-routes.js +123 -38
  256. package/server/lib/opencode/skill-routes.test.js +201 -0
  257. package/server/lib/opencode/skills.js +81 -34
  258. package/server/lib/opencode/skills.test.js +176 -21
  259. package/server/lib/opencode/startup-pipeline-runtime.js +6 -3
  260. package/server/lib/opencode/startup-pipeline-runtime.test.js +2 -1
  261. package/server/lib/opencode/watcher.test.js +0 -54
  262. package/server/lib/outbound-proxy.js +52 -0
  263. package/server/lib/outbound-proxy.test.js +55 -0
  264. package/server/lib/package-manager.js +23 -17
  265. package/server/lib/package-manager.test.js +5 -18
  266. package/server/lib/permission-auto-accept/DOCUMENTATION.md +1 -1
  267. package/server/lib/permission-auto-accept/runtime.js +19 -47
  268. package/server/lib/permission-auto-accept/runtime.test.js +2 -2
  269. package/server/lib/project-context/DOCUMENTATION.md +7 -1
  270. package/server/lib/project-context/routes.js +1 -2
  271. package/server/lib/project-context/runtime.js +12 -14
  272. package/server/lib/project-context/runtime.test.js +78 -2
  273. package/server/lib/projects/project-config.js +30 -15
  274. package/server/lib/projects/project-config.test.js +30 -0
  275. package/server/lib/projects/project-setup.js +1 -2
  276. package/server/lib/projects/routes.js +1 -2
  277. package/server/lib/quota/DOCUMENTATION.md +35 -7
  278. package/server/lib/quota/index.js +1 -0
  279. package/server/lib/quota/providers/claude/index.js +1 -1
  280. package/server/lib/quota/providers/cline-pass.js +1 -1
  281. package/server/lib/quota/providers/exe-dev.js +1 -1
  282. package/server/lib/quota/providers/google/index.js +1 -1
  283. package/server/lib/quota/providers/hyper.js +1 -1
  284. package/server/lib/quota/providers/kimi.js +116 -36
  285. package/server/lib/quota/providers/kimi.test.js +128 -3
  286. package/server/lib/quota/providers/opencode-go.js +144 -21
  287. package/server/lib/quota/providers/opencode-go.test.js +229 -6
  288. package/server/lib/quota/providers/openrouter.js +1 -1
  289. package/server/lib/quota/providers/zenmux.js +1 -1
  290. package/server/lib/quota/utils/auth.js +1 -0
  291. package/server/lib/quota/utils/transformers.js +2 -6
  292. package/server/lib/relay/DOCUMENTATION.md +18 -3
  293. package/server/lib/relay/e2ee.js +7 -7
  294. package/server/lib/relay/host-client.js +84 -13
  295. package/server/lib/relay/host-client.test.js +201 -1
  296. package/server/lib/relay/identity.js +6 -29
  297. package/server/lib/relay/identity.test.js +18 -28
  298. package/server/lib/relay/key-store.js +141 -0
  299. package/server/lib/relay/key-store.test.js +138 -0
  300. package/server/lib/relay/service.js +8 -8
  301. package/server/lib/relay/service.test.js +10 -5
  302. package/server/lib/relay/signing-key.js +13 -36
  303. package/server/lib/relay/tunnel-codec.js +10 -10
  304. package/server/lib/route-module-exports.test.js +22 -0
  305. package/server/lib/routing/DOCUMENTATION.md +23 -3
  306. package/server/lib/routing/cache.js +87 -0
  307. package/server/lib/routing/defaults.js +11 -0
  308. package/server/lib/routing/history.js +12 -4
  309. package/server/lib/routing/runtime.js +39 -3
  310. package/server/lib/routing/runtime.test.js +81 -2
  311. package/server/lib/routing/store.js +12 -1
  312. package/server/lib/routing/store.test.js +13 -0
  313. package/server/lib/scheduled-tasks/DOCUMENTATION.md +59 -1
  314. package/server/lib/scheduled-tasks/existing-session.js +119 -0
  315. package/server/lib/scheduled-tasks/existing-session.test.js +350 -0
  316. package/server/lib/scheduled-tasks/loops.js +1 -8
  317. package/server/lib/scheduled-tasks/routes.js +8 -8
  318. package/server/lib/scheduled-tasks/runtime.js +103 -13
  319. package/server/lib/scheduled-tasks/runtime.test.js +48 -0
  320. package/server/lib/scheduled-tasks/service.js +33 -11
  321. package/server/lib/scheduled-tasks/service.test.js +128 -2
  322. package/server/lib/scheduled-tasks/session-defaults.js +27 -0
  323. package/server/lib/scheduled-tasks/session-defaults.test.js +19 -0
  324. package/server/lib/session-assist/context.js +1 -0
  325. package/server/lib/session-folders/routes.js +2 -2
  326. package/server/lib/session-goal/objectives.js +1 -1
  327. package/server/lib/session-knowledge/routes.js +2 -2
  328. package/server/lib/session-knowledge/runtime.js +1 -2
  329. package/server/lib/session-work/DOCUMENTATION.md +39 -14
  330. package/server/lib/session-work/questions.js +31 -2
  331. package/server/lib/session-work/runtime.js +22 -13
  332. package/server/lib/session-work/runtime.test.js +43 -26
  333. package/server/lib/session-work/state.js +10 -4
  334. package/server/lib/session-work/state.test.js +8 -1
  335. package/server/lib/shared/DOCUMENTATION.md +89 -0
  336. package/server/lib/shared/guards.js +53 -0
  337. package/server/lib/shared/guards.test.js +112 -0
  338. package/server/lib/skills-catalog/DOCUMENTATION.md +10 -8
  339. package/server/lib/skills-catalog/cache.js +3 -2
  340. package/server/lib/skills-catalog/curated-sources.js +5 -1
  341. package/server/lib/skills-catalog/git.js +107 -20
  342. package/server/lib/skills-catalog/git.test.js +78 -0
  343. package/server/lib/skills-catalog/install.js +21 -12
  344. package/server/lib/skills-catalog/scan.js +25 -15
  345. package/server/lib/skills-catalog/source.js +26 -1
  346. package/server/lib/skills-catalog/source.test.js +27 -0
  347. package/server/lib/source-control/DOCUMENTATION.md +2 -1
  348. package/server/lib/source-control/audit-storage.js +7 -6
  349. package/server/lib/source-control/audit-storage.test.js +11 -0
  350. package/server/lib/source-control/binding-service.js +2 -5
  351. package/server/lib/source-control/change-request-worktree.js +90 -0
  352. package/server/lib/source-control/change-request-worktree.test.js +121 -0
  353. package/server/lib/source-control/mutation-executor.js +1 -1
  354. package/server/lib/source-control/mutation-storage.js +11 -5
  355. package/server/lib/source-control/provider-instance.js +1 -2
  356. package/server/lib/source-control/repository-identity.js +1 -1
  357. package/server/lib/source-control/routes.js +14 -2
  358. package/server/lib/spaces/DOCUMENTATION.md +42 -17
  359. package/server/lib/spaces/command-stream.test.js +15 -0
  360. package/server/lib/spaces/dispatcher.js +7 -0
  361. package/server/lib/spaces/dispatcher.test.js +17 -0
  362. package/server/lib/spaces/hardening.js +2 -2
  363. package/server/lib/spaces/hardening.test.js +1 -1
  364. package/server/lib/spaces/host.js +2 -0
  365. package/server/lib/spaces/journey.js +66 -5
  366. package/server/lib/spaces/journey.test.js +95 -4
  367. package/server/lib/spaces/layout.js +1 -1
  368. package/server/lib/spaces/places/docker-disk.js +38 -14
  369. package/server/lib/spaces/places/docker-disk.test.js +80 -1
  370. package/server/lib/spaces/places/docker.js +35 -11
  371. package/server/lib/spaces/places/fake-docker.js +22 -3
  372. package/server/lib/spaces/places/memory-place.js +3 -0
  373. package/server/lib/spaces/places/packed.docker.live.test.js +1 -1
  374. package/server/lib/spaces/routes.js +5 -0
  375. package/server/lib/spaces/routes.test.js +4 -2
  376. package/server/lib/spaces/run-command.js +9 -2
  377. package/server/lib/spaces/tools.js +4 -5
  378. package/server/lib/spaces/tools.test.js +2 -2
  379. package/server/lib/terminal/runtime.js +18 -6
  380. package/server/lib/terminal/runtime.test.js +66 -0
  381. package/server/lib/tts/index.js +3 -0
  382. package/server/lib/tts/service.js +4 -2
  383. package/server/lib/walkthrough/DOCUMENTATION.md +3 -1
  384. package/server/lib/walkthrough/index.js +2 -3
  385. package/server/lib/walkthrough/pr-source.test.js +22 -0
  386. package/server/lib/walkthrough/sources.js +6 -1
  387. package/server/opencode-proxy.test.js +127 -0
  388. package/bin/lib/commands-startup.test.js +0 -15
  389. package/dist/assets/CodeMirrorCommentWidgets-CVDSjcrP.js +0 -1
  390. package/dist/assets/DiffView-Ct7vL3fD.js +0 -4
  391. package/dist/assets/FilesView-DT0uEYgT.js +0 -17
  392. package/dist/assets/GuestSurfacePane-DVvk1VPu.js +0 -1
  393. package/dist/assets/LinearIssuesView-C10MwA9h.js +0 -1
  394. package/dist/assets/MarkdownImageGallery-BbN_K_3d.js +0 -1
  395. package/dist/assets/MarkdownRendererImpl-BLt2Tkk9.js +0 -10
  396. package/dist/assets/OnboardingScreen-Bgp5A3WB.js +0 -1
  397. package/dist/assets/PierreDiffViewer-CWJLj-S-.js +0 -210
  398. package/dist/assets/PlanView-DsRWnsOI.js +0 -5
  399. package/dist/assets/PublishDialog-CCeKloRu.js +0 -2
  400. package/dist/assets/SettingsView-BuPPsNPp.js +0 -30
  401. package/dist/assets/SettingsWindow-CM5fL8Ot.js +0 -1
  402. package/dist/assets/SubmoduleDiffSummary-CfsMcfiQ.js +0 -1
  403. package/dist/assets/ToolOutputDialog-mZrfSofz.js +0 -15
  404. package/dist/assets/ToolPartDiffPreview-BUGCRYEL.js +0 -8
  405. package/dist/assets/WalkthroughView-ClBo7PPd.js +0 -4
  406. package/dist/assets/appThemeRegistry-CxzMxR-H.js +0 -1
  407. package/dist/assets/de-CBla4hjd.js +0 -14
  408. package/dist/assets/es-BmnZtxTD.js +0 -20
  409. package/dist/assets/fileTreeStatus-BSHFIGEg.js +0 -1
  410. package/dist/assets/fr-OVKIBUZO.js +0 -18
  411. package/dist/assets/index-CKCFKmjF.js +0 -1
  412. package/dist/assets/index-Dbx4V4GN.css +0 -1
  413. package/dist/assets/index-vQ1Pg1cr.js +0 -61
  414. package/dist/assets/ja-6v-yr-gE.js +0 -20
  415. package/dist/assets/ko-I_ZLvgQ9.js +0 -20
  416. package/dist/assets/main-CmO4dRtR.js +0 -2
  417. package/dist/assets/main-b9vqhlYM.js +0 -999
  418. package/dist/assets/markdownCore-BPEZRQfP.js +0 -7
  419. package/dist/assets/miniChat-B5Oi7B-6.js +0 -2
  420. package/dist/assets/mobile-CVtShif9.js +0 -2
  421. package/dist/assets/nl-DcvIJf46.js +0 -20
  422. package/dist/assets/patchFileDiff-CW3wCH1O.js +0 -13
  423. package/dist/assets/pl-JxCUl0sd.js +0 -20
  424. package/dist/assets/pt-BR-L89mjja2.js +0 -20
  425. package/dist/assets/relocateRestoredSession-DYh_9oBa.js +0 -1
  426. package/dist/assets/renderElectronMiniChatApp-BD-1JHSg.js +0 -2
  427. package/dist/assets/renderMobileApp-7s5InXt1.js +0 -25
  428. package/dist/assets/runtimeEndpointReset-DqLJC6L1.js +0 -53
  429. package/dist/assets/shikiHighlight-CXgZnvHh.js +0 -1
  430. package/dist/assets/space-apply-1trGVIl8.js +0 -1
  431. package/dist/assets/space-close-y7j-NuBv.js +0 -1
  432. package/dist/assets/tr-ka5J1flt.js +0 -11
  433. package/dist/assets/uk-PyGe6Q_u.js +0 -20
  434. package/dist/assets/useInlineCommentController-CrjSGCpi.js +0 -2
  435. package/dist/assets/vendor-codemirror-lang-python-B7ClrMIT.js +0 -3
  436. package/dist/assets/vendor-codemirror-lang-xml-C8tGnS64.js +0 -1
  437. package/dist/assets/vendor-codemirror-language-data-q2bKO1EM.js +0 -2
  438. package/dist/assets/vendor-framer-motion-Bq3iTZ6r.js +0 -1
  439. package/dist/assets/vendor-katex-CHD9BdDO.js +0 -257
  440. package/dist/assets/vendor-katex-Cp579UoJ.css +0 -1
  441. package/dist/assets/zh-CN-B0P2tybJ.js +0 -20
  442. package/dist/assets/zh-TW-Bs9C5cN8.js +0 -20
@@ -0,0 +1 @@
1
+ import{c3 as d,u as c,b as u,ad as f,z as S,t as l}from"./useAppFontEffects-DGlvOqP_.js";import{c as g}from"./sessionOwnership-BSuxCEhb.js";import"./vendor-react-BUCujlKS.js";import{t as n,M as y,a7 as v,a6 as a}from"./index-DxNa7xYB.js";import"./vendor-zod-CxRSdNoV.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-base-ui-Det7U81h.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-use-sync-external-store-D6wYuSt-.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-tanstack-react-virtual-CvuLsk7D.js";import"./vendor-tanstack-virtual-core-DPaNcJcT.js";import"./vendor-framer-motion-DxDVhOLc.js";import"./vendor-motion-dom-HXPOMxb7.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-codemirror-commands-C4G_dPWe.js";import"./vendor-codemirror-state-Dek9sMtw.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-1e0FQ6Wn.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-codemirror-language-DufXoQvE.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-lang-javascript-DbpEcZM0.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-BSHQHbKu.js";import"./vendor-codemirror-lang-json-BzgckzmB.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-Cayfb29q.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-BQWerHsJ.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-D2TEBIvZ.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-CtwSWKtX.js";import"./vendor-codemirror-lang-python-jAMtYiA9.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-sonner-DFyL3AvE.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-capacitor-core-B4EWRrHz.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-legendapp-list-DViGR95I.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./vendor-opencode-client-BmFcUkbQ.js";const b=t=>{const o=u.getState().projects.flatMap(e=>{const i=n(e.path);return i?[{id:e.id,normalizedPath:i}]:[]});return g([t],o,S.getState().availableWorktreesByProject,!1,[],f.getState().projects).bySessionId.get(t.id)?.projectRoot??null},D={getSession:t=>c.getState().entityById.get(t),getActiveSessions:()=>c.getState().activeSessions,getDirectoryAvailability:t=>y.getDirectoryAvailability(t),resolveProjectRoot:b,moveSession:d},h=(t,o,r)=>{const e=new Map;for(const p of o){if(!p.parentID)continue;const m=e.get(p.parentID)??[];m.push(p),e.set(p.parentID,m)}const i=[],s=p=>{for(const m of e.get(p)??[])s(m.id),n(m.directory)===r&&i.push(m)};return s(t.id),i};async function j(t,o=D){const r=o.getSession(t),e=n(r?.directory??null);if(!r||!e)return{outcome:"kept"};if(await o.getDirectoryAvailability(e)!=="missing")return{outcome:"kept"};const i=n(o.resolveProjectRoot(r));if(!i||i===e)return{outcome:"kept"};if(await o.getDirectoryAvailability(i)!=="available")return{outcome:"kept"};try{const s=[...h(r,o.getActiveSessions(),e),r];for(const p of s)await o.moveSession(p,e,i);return{outcome:"moved",projectRoot:i}}catch(s){return{outcome:"failed",error:s instanceof Error?s:new Error(String(s))}}}const I=t=>u.getState().projects.find(r=>n(r.path)===t)?.label?.trim()||t.split("/").filter(Boolean).pop()||t;async function _t(t){const o=await j(t),r=v.getState().dictionary;if(o.outcome==="moved"){l.info(a(r,"sessions.sidebar.session.restore.relocatedTitle"),{description:a(r,"sessions.sidebar.session.restore.relocatedDescription",{project:I(o.projectRoot)})});return}o.outcome==="failed"&&l.error(a(r,"sessions.sidebar.session.restore.relocateFailed"),{description:o.error.message})}export{j as relocateRestoredSessionIfDirectoryMissing,_t as relocateRestoredSessionWithNotice};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/useAppFontEffects-DGlvOqP_.js","assets/vendor-react-BUCujlKS.js","assets/vendor-scheduler-7OC5HNn7.js","assets/index-DxNa7xYB.js","assets/vendor-zod-CxRSdNoV.js","assets/vendor-vite-runtime-DD1OZmLC.js","assets/vendor-zustand-BAGL70zf.js","assets/vendor-opencode-client-BmFcUkbQ.js","assets/index-BkMXRrVQ.css","assets/vendor-simplewebauthn-browser-VDA66rT_.js","assets/vendor-class-variance-authority-5VPnzWs2.js","assets/vendor-clsx-B-dksMZM.js","assets/vendor-base-ui-Det7U81h.js","assets/vendor-floating-ui-utils-D6FqdtJt.js","assets/vendor-floating-ui-dom-BTvzWks8.js","assets/vendor-floating-ui-core-PuGzNPnN.js","assets/vendor-floating-ui-react-dom-DxYCWdHj.js","assets/vendor-use-sync-external-store-D6wYuSt-.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-tanstack-react-virtual-CvuLsk7D.js","assets/vendor-tanstack-virtual-core-DPaNcJcT.js","assets/vendor-framer-motion-DxDVhOLc.js","assets/vendor-motion-dom-HXPOMxb7.js","assets/vendor-motion-utils-BGh8QBgx.js","assets/vendor-codemirror-commands-C4G_dPWe.js","assets/vendor-codemirror-state-Dek9sMtw.js","assets/vendor-marijn-find-cluster-break-DXwl3gUT.js","assets/vendor-codemirror-view-1e0FQ6Wn.js","assets/vendor-style-mod-NZ5MEPvj.js","assets/vendor-w3c-keyname-Vcq4gwWv.js","assets/vendor-crelt-C8TCjufn.js","assets/vendor-codemirror-language-DufXoQvE.js","assets/vendor-lezer-common-B3-cUCR_.js","assets/vendor-lezer-highlight-CDMHUZ74.js","assets/vendor-codemirror-lang-javascript-DbpEcZM0.js","assets/vendor-lezer-javascript-D7Tj24ot.js","assets/vendor-lezer-lr-bhwg1HMg.js","assets/vendor-codemirror-autocomplete-BSHQHbKu.js","assets/vendor-codemirror-lang-json-BzgckzmB.js","assets/vendor-lezer-json-Iaex0UN-.js","assets/vendor-codemirror-lang-css-Cayfb29q.js","assets/vendor-lezer-css-C5xB6jxd.js","assets/vendor-codemirror-lang-html-BQWerHsJ.js","assets/vendor-lezer-html-C0I1p52t.js","assets/vendor-codemirror-lang-markdown-D2TEBIvZ.js","assets/vendor-lezer-markdown-C6g-d6P3.js","assets/vendor-codemirror-language-data-CtwSWKtX.js","assets/vendor-codemirror-lang-python-jAMtYiA9.js","assets/vendor-lezer-python-CvuFxeZl.js","assets/vendor-sonner-DFyL3AvE.js","assets/vendor-capacitor-core-B4EWRrHz.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-legendapp-list-DViGR95I.js","assets/vendor-tailwind-merge-CPcsbTWB.js","assets/vendor-fuse.js-Dw8P0qyA.js"])))=>i.map(i=>d[i]);
2
+ import{f as ue,j as a,R as p,h as bt,r as gt}from"./vendor-react-BUCujlKS.js";import"./vendor-katex-CuQvj9-L.js";import{q as he,t as W,z as vt,b6 as St,a3 as pe,u as nt,X as xt,M as at,L as ut,C as _t}from"./index-DxNa7xYB.js";import{f as mt,iT as It,fN as jt,z as b,b as ot,l as j,dj as st,k as Dt,N as Ct,L as ft,ck as kt,cm as Et,iU as Pt,h as Mt,cj as Rt,I as We,B as ct,iV as At,dU as Nt,cx as Bt,cy as Lt,iW as ze,m as Ot,ds as lt,iX as Tt,bh as Wt,bi as zt,bj as Ut,bk as $t,bo as Gt,bq as Ft,br as Ht,bs as Kt,bn as Vt,b2 as qt,bm as Jt,iY as Xt,iZ as Yt,bg as Zt,bu as Qt,an as er,ao as tr,bt as rr,bD as nr,bE as or,bF as sr,bG as ir}from"./useAppFontEffects-DGlvOqP_.js";import{_ as ar}from"./vendor-vite-runtime-DD1OZmLC.js";import{G as cr,u as lr,C as dr,t as ur,W as dt,S as mr,a as fr}from"./useRootScrollLock-DMPpvpNP.js";import{i as pr}from"./initializeSharedPreferences-Bck5EAWP.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-zod-CxRSdNoV.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-opencode-client-BmFcUkbQ.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-base-ui-Det7U81h.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-use-sync-external-store-D6wYuSt-.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-tanstack-react-virtual-CvuLsk7D.js";import"./vendor-tanstack-virtual-core-DPaNcJcT.js";import"./vendor-framer-motion-DxDVhOLc.js";import"./vendor-motion-dom-HXPOMxb7.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-codemirror-commands-C4G_dPWe.js";import"./vendor-codemirror-state-Dek9sMtw.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-1e0FQ6Wn.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-codemirror-language-DufXoQvE.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-lang-javascript-DbpEcZM0.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-BSHQHbKu.js";import"./vendor-codemirror-lang-json-BzgckzmB.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-Cayfb29q.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-BQWerHsJ.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-D2TEBIvZ.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-CtwSWKtX.js";import"./vendor-codemirror-lang-python-jAMtYiA9.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-sonner-DFyL3AvE.js";import"./vendor-capacitor-core-B4EWRrHz.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-legendapp-list-DViGR95I.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";const hr=t=>{const e=typeof t=="string"?t.trim():"";if(!e)return"";const o=typeof window<"u"?window.__OPENCHAMBER_HOME__:"";if(o&&e===o)return"~";if(o&&e.startsWith(`${o}/`))return`~/${e.slice(o.length+1)}`;const s=e.split("/").filter(Boolean);return s.length<=3?e:`.../${s.slice(-3).join("/")}`},yr=t=>{const e=ue.c(134),{mode:o}=t,{t:s}=mt(),r=b(br),i=b(gr),u=b(vr),c=b(Sr),l=he(xr),m=ot(_r),v=ot(Ir),g=j(jr),P=j(Dr),S=st(),x=Dt(r??""),D=Ct(),z=ft(Cr);let N;e[0]!==r?(N=d=>r?d.worktreeMetadata.get(r)?.path??"":"",e[0]=r,e[1]=N):N=e[1];const U=b(N);let M;e[2]!==r?(M=d=>r?d.worktreeMetadata.get(r)?.branch?.trim()??null:null,e[2]=r,e[3]=M):M=e[3];const $=b(M);let n;e[4]!==r?(n=d=>r?d.getAttachment(r):void 0,e[4]=r,e[5]=n):n=e[5];const h=kt(n),w=b(kr),[f,H]=p.useState(!1),B=typeof window<"u"?window.__OPENCHAMBER_MACOS_MAJOR__??0:0,R=Number.isFinite(B)&&B>0,{usesFramelessChrome:G,side:K}=lr(),ye=R?B>=26?"h-12":B<=15?"h-14":"":"";let L;e[6]!==r||e[7]!==S?(L=r?S.find(d=>d.id===r)??null:null,e[6]=r,e[7]=S,e[8]=L):L=e[8];const A=L,O=A?.worktreeMetadata??null;let we,be;e[9]===Symbol.for("react.memo_cache_sentinel")?(we=()=>{St()&&pe("desktop_get_window_pinned").then(d=>{typeof d?.pinned=="boolean"&&H(d.pinned)})},be=[],e[9]=we,e[10]=be):(we=e[9],be=e[10]),p.useEffect(we,be);let ge;e[11]!==i||e[12]!==o||e[13]!==A?.title||e[14]!==s?(ge=A?.title?.trim()||s(i||o==="draft"?"miniChat.header.newSession":"miniChat.header.session"),e[11]=i,e[12]=o,e[13]=A?.title,e[14]=s,e[15]=ge):ge=e[15];const Ue=ge;let _,T,ve,F;if(e[16]!==l||e[17]!==w||e[18]!==i||e[19]!==u||e[20]!==A||e[21]!==O?.path||e[22]!==h?.cwd||e[23]!==h?.worktreeRoot||e[24]!==U){T=W(A?.directory??null);const d=U||O?.path||h?.cwd||h?.worktreeRoot||"";let y;e[29]!==d?(y=W(d),e[29]=d,e[30]=y):y=e[30],F=y;let E;e[31]!==l?(E=W(l),e[31]=l,e[32]=E):E=e[32],_=F||T||w||E,ve=i?u==="chat":vt(T),e[16]=l,e[17]=w,e[18]=i,e[19]=u,e[20]=A,e[21]=O?.path,e[22]=h?.cwd,e[23]=h?.worktreeRoot,e[24]=U,e[25]=_,e[26]=T,e[27]=ve,e[28]=F}else _=e[25],T=e[26],ve=e[27],F=e[28];const C=ve;let Se;e[33]!==_?(Se=hr(_),e[33]=_,e[34]=Se):Se=e[34];const pt=Se;let xe;e[35]!==T||e[36]!==F?(xe=d=>{const y=W(F||T||"");if(!y)return null;for(const E of d.availableWorktreesByProject.values()){const k=E.find(fe=>W(fe.path)===y)?.branch?.trim();if(k)return k}return null},e[35]=T,e[36]=F,e[37]=xe):xe=e[37];const $e=b(xe);let _e,Ie;e[38]!==z||e[39]!==C||e[40]!==_||e[41]!==D.git?(_e=()=>{!_||C||z(_,D.git).catch(Er)},Ie=[z,C,_,D.git],e[38]=z,e[39]=C,e[40]=_,e[41]=D.git,e[42]=_e,e[43]=Ie):(_e=e[42],Ie=e[43]),p.useEffect(_e,Ie),O?.projectDirectory,h?.worktreeRoot;let Ge;e:{const d=O?.projectDirectory??h?.worktreeRoot??null;let y;e[44]!==d?(y=W(d),e[44]=d,e[45]=y):y=e[45];const I=y||_;if(!I){Ge=null;break e}let k;e[46]!==I||e[47]!==m?(k=m.map(Pr).filter(fe=>fe.normalizedPath&&(fe.normalizedPath===I||I.startsWith(`${fe.normalizedPath}/`))).sort(Mr)[0]??null,e[46]=I,e[47]=m,e[48]=k):k=e[48],Ge=k}const ht=Ge;let me;e:{if(C){me=null;break e}const d=ht??v;if(!d){me=pt||"OpenChamber";break e}let y;e[49]!==d.label?(y=d.label?.trim(),e[49]=d.label,e[50]=y):y=e[50];const E=y;if(E){me=E;break e}let I;e[51]!==d.path?(I=d.path.split(/[\\/]/).filter(Boolean).at(-1)??d.path,e[51]=d.path,e[52]=I):I=e[52],me=I}const Fe=me,He=Et(_||null);let je;e[53]!==$e||e[54]!==He||e[55]!==O?.branch||e[56]!==h?.branch||e[57]!==$?(je=He||$||O?.branch?.trim()||h?.branch?.trim()||$e,e[53]=$e,e[54]=He,e[55]=O?.branch,e[56]=h?.branch,e[57]=$,e[58]=je):je=e[58];const Ke=je,De=Ke&&Ke!=="HEAD"?Ke:null;let Ce;e[59]!==g?(Ce=g(),e[59]=g,e[60]=Ce):Ce=e[60];const it=Ce;let Ve;e:{for(let d=x.length-1;d>=0;d=d-1,d){const y=x[d];if(y.role!=="assistant"||typeof y.providerID!="string"||typeof y.modelID!="string")continue;const I=P.find(k=>k.id===y.providerID)?.models.find(k=>k.id===y.modelID);if(I){Ve=I;break e}}Ve=void 0}const yt=Ve,ke=it?.limit?it:yt,V=ke&&typeof ke.limit=="object"&&ke.limit!==null?ke.limit:null,qe=V&&typeof V.context=="number"?V.context:0,Je=V&&typeof V.output=="number"?V.output:0;let Ee;e[61]!==qe||e[62]!==r||e[63]!==x||e[64]!==Je?(Ee=r?Pt(x,qe,Je):null,e[61]=qe,e[62]=r,e[63]=x,e[64]=Je,e[65]=Ee):Ee=e[65];const q=Ee,[J,Xe]=p.useState(null);let Pe;e[66]===Symbol.for("react.memo_cache_sentinel")?(Pe={WebkitAppRegion:"drag"},e[66]=Pe):Pe=e[66];const wt=Pe;let Me;e[67]===Symbol.for("react.memo_cache_sentinel")?(Me={WebkitAppRegion:"no-drag"},e[67]=Me):Me=e[67];const Ye=Me;let Re,Ae;e[68]!==q||e[69]!==r?(Re=()=>{if(!r){Xe(Rr);return}if(q){Xe(d=>Rt(d,q)?d:q);return}Xe(Ar)},Ae=[q,r],e[68]=q,e[69]=r,e[70]=Re,e[71]=Ae):(Re=e[70],Ae=e[71]),p.useEffect(Re,Ae);let Ne;e[72]!==f?(Ne=()=>{const d=!f;H(d),pe("desktop_set_window_pinned",{pinned:d}).catch(()=>{H(!d)})},e[72]=f,e[73]=Ne):Ne=e[73];const Ze=Ne;let Be;e[74]!==l||e[75]!==r||e[76]!==c||e[77]!==C||e[78]!==_||e[79]!==A?(Be=()=>{const d=r?{sessionId:r,directory:A?.directory??l??""}:{mode:"draft",directory:C?"":_||l||"",projectId:C?null:c};pe("desktop_focus_main_window",d).then(Nr)},e[74]=l,e[75]=r,e[76]=c,e[77]=C,e[78]=_,e[79]=A,e[80]=Be):Be=e[80];const Qe=Be,et=G&&K==="right"?"pr-0":"pr-3",tt=G?"h-12":ye||"min-h-14";let X;e[81]!==et||e[82]!==tt?(X=Mt("flex items-center gap-3 bg-background",et,R?"pl-[88px]":"pl-3",tt),e[81]=et,e[82]=tt,e[83]=X):X=e[83];let Y;e[84]!==G||e[85]!==K?(Y=G&&K==="left"?a.jsx(dt,{visible:!0,position:"left"}):null,e[84]=G,e[85]=K,e[86]=Y):Y=e[86];let Z;e[87]!==s?(Z=s("sessions.switcher.openAria"),e[87]=s,e[88]=Z):Z=e[88];let Q;e[89]!==Ue?(Q=a.jsx("span",{dir:"auto",className:"truncate typography-ui-label text-[14px] font-normal leading-tight text-foreground max-w-full",children:Ue}),e[89]=Ue,e[90]=Q):Q=e[90];let ee;e[91]!==De||e[92]!==C||e[93]!==Fe?(ee=C?null:a.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:[a.jsx("span",{className:"truncate",children:Fe}),De?a.jsxs("span",{className:"inline-flex min-w-0 items-center gap-0.5",children:[a.jsx(We,{name:"git-branch",className:"h-3 w-3 flex-shrink-0 text-muted-foreground/70"}),a.jsx("span",{className:"truncate",children:De})]}):null]}),e[91]=De,e[92]=C,e[93]=Fe,e[94]=ee):ee=e[94];let te;e[95]!==Z||e[96]!==Q||e[97]!==ee?(te=a.jsx(mr,{children:a.jsxs("button",{type:"button","aria-label":Z,style:Ye,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:[Q,ee]})}),e[95]=Z,e[96]=Q,e[97]=ee,e[98]=te):te=e[98];let Le;e[99]===Symbol.for("react.memo_cache_sentinel")?(Le=a.jsx("div",{className:"min-w-0 flex-1"}),e[99]=Le):Le=e[99];let re;e[100]!==J?(re=J?a.jsx(dr,{reading:ur(J),contextLimit:J.contextLimit,outputLimit:J.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[100]=J,e[101]=re):re=e[101];let ne;e[102]!==f||e[103]!==s?(ne=s(f?"miniChat.actions.unpinAria":"miniChat.actions.pinAria"),e[102]=f,e[103]=s,e[104]=ne):ne=e[104];let oe;e[105]!==f||e[106]!==s?(oe=s(f?"miniChat.actions.unpin":"miniChat.actions.pin"),e[105]=f,e[106]=s,e[107]=oe):oe=e[107];let se;e[108]!==f?(se=f?a.jsx(We,{name:"pushpin-2-fill",className:"h-4 w-4"}):a.jsx(We,{name:"pushpin-2",className:"h-4 w-4"}),e[108]=f,e[109]=se):se=e[109];let ie;e[110]!==Ze||e[111]!==ne||e[112]!==oe||e[113]!==se?(ie=a.jsx(ct,{type:"button",variant:"ghost",size:"icon",onClick:Ze,"aria-label":ne,title:oe,style:Ye,children:se}),e[110]=Ze,e[111]=ne,e[112]=oe,e[113]=se,e[114]=ie):ie=e[114];let ae;e[115]!==s?(ae=s("miniChat.actions.openMainAria"),e[115]=s,e[116]=ae):ae=e[116];let ce;e[117]!==s?(ce=s("miniChat.actions.openMain"),e[117]=s,e[118]=ce):ce=e[118];let Oe;e[119]===Symbol.for("react.memo_cache_sentinel")?(Oe=a.jsx(We,{name:"external-link",className:"h-4 w-4"}),e[119]=Oe):Oe=e[119];let le;e[120]!==Qe||e[121]!==ae||e[122]!==ce?(le=a.jsx(ct,{type:"button",variant:"ghost",size:"icon",onClick:Qe,"aria-label":ae,title:ce,style:Ye,children:Oe}),e[120]=Qe,e[121]=ae,e[122]=ce,e[123]=le):le=e[123];const rt=G&&K==="right";let de;e[124]!==rt?(de=a.jsx(dt,{visible:rt,position:"right"}),e[124]=rt,e[125]=de):de=e[125];let Te;return e[126]!==X||e[127]!==Y||e[128]!==te||e[129]!==re||e[130]!==ie||e[131]!==le||e[132]!==de?(Te=a.jsxs("header",{className:X,style:wt,children:[Y,te,Le,re,ie,le,de]}),e[126]=X,e[127]=Y,e[128]=te,e[129]=re,e[130]=ie,e[131]=le,e[132]=de,e[133]=Te):Te=e[133],Te},wr=t=>{const e=ue.c(10),{mode:o,autoOpenDraft:s,unavailable:r}=t,i=s===void 0?!1:s,u=r===void 0?!1:r,{t:c}=mt();let l;e[0]!==o?(l=a.jsx(yr,{mode:o}),e[0]=o,e[1]=l):l=e[1];let m;e[2]!==i||e[3]!==c||e[4]!==u?(m=a.jsx("main",{className:"min-h-0 flex-1",children:u?a.jsx("div",{className:"flex h-full items-center justify-center px-6 text-center typography-ui-label text-muted-foreground",children:a.jsxs("div",{className:"max-w-sm rounded-lg border border-[var(--interactive-border)] bg-[var(--surface-elevated)] px-4 py-3",children:[a.jsx("div",{className:"font-medium text-foreground",children:c("miniChat.unavailable.title")}),a.jsx("div",{className:"mt-1 typography-small text-muted-foreground",children:c("miniChat.unavailable.description")})]})}):a.jsx(It,{mode:"mini-chat",children:a.jsx(jt,{autoOpenDraft:i})})}),e[2]=i,e[3]=c,e[4]=u,e[5]=m):m=e[5];let v;e[6]===Symbol.for("react.memo_cache_sentinel")?(v=a.jsx(cr,{}),e[6]=v):v=e[6];let g;return e[7]!==l||e[8]!==m?(g=a.jsxs("div",{className:"flex h-full min-h-0 flex-col bg-background text-foreground",children:[l,m,v]}),e[7]=l,e[8]=m,e[9]=g):g=e[9],g};function br(t){return t.currentSessionId}function gr(t){return!!t.newSessionDraft?.open}function vr(t){return t.newSessionDraft.target}function Sr(t){return t.newSessionDraft?.selectedProjectId??null}function xr(t){return t.currentDirectory}function _r(t){return t.projects}function Ir(t){return t.getActiveProject()}function jr(t){return t.getCurrentModel}function Dr(t){return t.providers}function Cr(t){return t.ensureStatus}function kr(t){return t.newSessionDraft?.open?W(t.newSessionDraft.bootstrapPendingDirectory??t.newSessionDraft.directoryOverride??""):""}function Er(){}function Pr(t){return{...t,normalizedPath:W(t.path)}}function Mr(t,e){return e.path.length-t.path.length}function Rr(t){return t===null?t:null}function Ar(t){return t===null?t:null}function Nr(t){return t?.focused===!0?pe("desktop_close_current_window"):null}const Br=()=>{const t=b(r=>r.openNewSessionDraft),e=p.useRef(null);e.current||(e.current=new At({registry:Nt,getBinding:r=>Bt(r,nt.getState().shortcutOverrides)}));const o=e.current,s=r=>{if(ze())return!1;const{favoriteModels:i,addRecentModel:u,setLastSelectedModel:c}=nt.getState();if(i.length===0)return!1;const{currentProviderId:l,currentModelId:m,setProvider:v,setModel:g}=j.getState(),P=i.findIndex(x=>x.providerID===l&&x.modelID===m),S=i[(P+r+i.length)%i.length];v(S.providerID),g(S.modelID),u(S.providerID,S.modelID),c(S.providerID,S.modelID)};Lt({focus_input:()=>{lt()},new_mini_chat:()=>{if(!xt())return!1;pe("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=b.getState();t(r.currentSessionId&&r.currentSessionDirectory?{directoryOverride:r.currentSessionDirectory}:void 0),lt()},open_model_selector:()=>{if(ze())return!1;const{isModelSelectorOpen:r,setModelSelectorOpen:i}=nt.getState();i(!r)},cycle_thinking_variant:()=>{if(ze())return!1;const r=j.getState();if(r.getCurrentModelVariants().length===0)return!1;const i=r.cycleCurrentVariant(),u=b.getState().currentSessionId,{currentAgentName:c,currentProviderId:l,currentModelId:m}=j.getState();u&&c&&l&&m&&Ot.getState().saveAgentModelVariantForSession(u,c,l,m,i)},cycle_favorite_model_forward:()=>s(1),cycle_favorite_model_backward:()=>s(-1),toggle_dictation:()=>{if(ze())return!1;window.dispatchEvent(new CustomEvent("openchamber:dictation-toggle"))}}),p.useEffect(()=>{const r=c=>{if(o.hasActivePrefix()){if(!c.ctrlKey&&!c.metaKey&&!c.altKey&&Tt(c.target)&&o.getActivePrefixTarget()!==c.target){o.clear();return}o.dispatchActivePrefix(c)&&(c.preventDefault(),c.stopPropagation())}},i=c=>{o.consumeCapturedPrefixEvent(c)||o.dispatch(c)&&c.preventDefault()},u=()=>o.handleBlur();return window.addEventListener("keydown",r,!0),window.addEventListener("keydown",i),window.addEventListener("blur",u),()=>{window.removeEventListener("keydown",r,!0),window.removeEventListener("keydown",i),window.removeEventListener("blur",u)}},[o])},Lr="openchamber:mini-chat-presence",Or=()=>{const t=typeof window<"u"?new URLSearchParams(window.location.search):new URLSearchParams,e=t.get("mode")==="session"?"session":"draft",o=t.get("sessionId")?.trim()||null,s=t.get("directory")?.trim()||null,r=t.get("projectId")?.trim()||null;return{mode:e,sessionId:o,directory:s,projectId:r}},Tr=({config:t})=>{const e=st(),o=he(n=>n.currentDirectory),s=he(n=>n.setDirectory),r=ot(n=>n.projects),i=b(n=>n.currentSessionId),u=b(n=>!!n.newSessionDraft?.open),c=b(n=>n.newSessionDraft?.open?n.newSessionDraft.bootstrapPendingDirectory??n.newSessionDraft.directoryOverride??"":""),l=b(n=>n.setCurrentSession),m=b(n=>n.openNewSessionDraft),v=j(n=>n.initializeApp),g=j(n=>n.isInitialized),P=j(n=>n.isConnected),S=j(n=>n.loadProviders),x=j(n=>n.loadAgents),D=j(n=>n.providers.length),z=j(n=>n.agents.length),N=Yt();p.useEffect(()=>{v()},[v]),p.useEffect(()=>{if(g)return;let n=!0,h=0;const w=window.setInterval(()=>{if(n){if(h+=1,h>10){window.clearInterval(w);return}j.getState().isInitialized||j.getState().initializeApp()}},1e3);return()=>{n=!1,window.clearInterval(w)}},[g]);const U=p.useRef(!1);p.useEffect(()=>{if(!U.current&&t.mode==="session"&&t.directory){if(o===t.directory){U.current=!0;return}s(t.directory,{showOverlay:!1}),U.current=!0}},[t.directory,t.mode,o,s]),p.useEffect(()=>{t.mode!=="draft"||!u||i||!c||o===c||s(c,{showOverlay:!1})},[t.mode,o,i,c,u,s]),p.useEffect(()=>{P&&(D===0&&S({source:"electronMiniChat:recovery"}),z===0&&x({source:"electronMiniChat:recovery"}))},[z,P,x,S,D]);const M=p.useRef(!1);p.useEffect(()=>{if(M.current||t.mode!=="session"||!t.sessionId)return;if(i===t.sessionId){M.current=!0;return}if(i){M.current=!0;return}const n=e.find(w=>w.id===t.sessionId);if(!n){N.ensureSessionRenderable(t.sessionId);return}const h=n.directory??t.directory;l(t.sessionId,h),M.current=!0},[t,i,e,l,N]),p.useEffect(()=>{const n=h=>{const w=h.detail,f=typeof w?.sessionId=="string"?w.sessionId.trim():"";if(!f||b.getState().currentSessionId===f)return;const B=e.find(R=>R.id===f)?.directory?.trim()||(typeof w?.directory=="string"&&w.directory.trim().length>0?w.directory.trim():null);N.ensureSessionRenderable(f),l(f,B),M.current=!0};return window.addEventListener("openchamber:open-session",n),()=>window.removeEventListener("openchamber:open-session",n)},[e,l,N]),p.useEffect(()=>{if(t.mode!=="draft"||u||i)return;const n=!!(t.projectId||t.directory);m({target:n?"project":"chat",selectedProjectId:n?t.projectId:_t,directoryOverride:n?t.directory:null,preserveDirectoryOverride:!!t.directory})},[t,i,u,m]),p.useEffect(()=>{if(r.length===0)return;let n=!1;return(async()=>{const w=new Map;if(await Promise.all(r.map(async B=>{const R=B.path.replace(/\\/g,"/").replace(/\/+$/,"");if(R)try{if(!(ft.getState().directories.get(R)?.isGitRepo??await ar(()=>import("./useAppFontEffects-DGlvOqP_.js").then(L=>L.mR),__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(L=>L.checkIsGitRepository(R))))return;const ye=await er({id:B.id,path:R});if(n||ye.length===0)return;w.set(R,ye)}catch{}})),n)return;const f=tr(r,w),H=b.getState().availableWorktreesByProject;rr(f,H)||b.setState({availableWorktrees:[...f.values()].flat(),availableWorktreesByProject:f})})(),()=>{n=!0}},[r]),p.useEffect(()=>{if(r.length===0)return;let n=!1;const h=Zt(w=>{w.type==="worktree-changed"&&Qt(r,w.directories,()=>n)});return()=>{n=!0,h()}},[r]);const $=p.useRef(!1);return p.useEffect(()=>{if($.current||!g)return;const n=()=>{if($.current)return;$.current=!0;const f=typeof document<"u"?document.getElementById("initial-loading"):null;f&&(f.classList.add("fade-out"),window.setTimeout(()=>f.remove(),300))},h=t.mode==="session"?i===t.sessionId:u,w=window.setTimeout(n,h?100:1500);return()=>window.clearTimeout(w)},[g,t.mode,t.sessionId,i,u]),null},Wr=()=>{const t=ue.c(4),e=b(Hr),o=he(Kr);let s,r;return t[0]!==o||t[1]!==e?(s=()=>{if(!e||!o||typeof BroadcastChannel>"u")return;const i=new BroadcastChannel(Lr),u=m=>{i.postMessage({type:"mini-chat-session-presence",sessionId:e,directory:o,viewed:m})};u(!0);const c=window.setInterval(()=>u(!0),5e3),l=()=>u(!1);return window.addEventListener("beforeunload",l),()=>{window.clearInterval(c),window.removeEventListener("beforeunload",l),u(!1),i.close()}},r=[o,e],t[0]=o,t[1]=e,t[2]=s,t[3]=r):(s=t[2],r=t[3]),p.useEffect(s,r),null},zr=t=>{const e=ue.c(7),o=st(),s=b(Vr),r=b(qr),[i,u]=p.useState(!1);let c,l;return e[0]!==t.mode||e[1]!==t.sessionId||e[2]!==s||e[3]!==r||e[4]!==o?(c=()=>{if(r||t.mode!=="session"||!t.sessionId||s){u(!1);return}if(o.some(v=>v.id===t.sessionId)){u(!1);return}const m=window.setTimeout(()=>u(!0),5e3);return()=>window.clearTimeout(m)},l=[t.mode,t.sessionId,s,r,o],e[0]=t.mode,e[1]=t.sessionId,e[2]=s,e[3]=r,e[4]=o,e[5]=c,e[6]=l):(c=e[5],l=e[6]),p.useEffect(c,l),i};function Ur(t){const e=ue.c(15),{apis:o}=t;let s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s=Or(),e[0]=s):s=e[0];const r=s,i=he(Gr);let u,c;e[1]!==i?(u=()=>{at.setDirectory(i||r.directory||void 0)},c=[r.directory,i],e[1]=i,e[2]=u,e[3]=c):(u=e[2],c=e[3]),p.useEffect(u,c);let l,m;e[4]!==o?(l=()=>(ut(o),$r),m=[o],e[4]=o,e[5]=l,e[6]=m):(l=e[5],m=e[6]),p.useEffect(l,m),Wt(),Br();let v;e[7]===Symbol.for("react.memo_cache_sentinel")?(v={enabled:!0},e[7]=v):v=e[7],zt(v),Ut(),$t(),fr();let g;e[8]===Symbol.for("react.memo_cache_sentinel")?(g=at.getSdkClient(),e[8]=g):g=e[8];const P=i||r.directory||"";let S;e[9]===Symbol.for("react.memo_cache_sentinel")?(S=a.jsx(Gt,{delayDuration:300,skipDelayDuration:150,children:a.jsxs("div",{className:"h-full text-foreground bg-background",children:[a.jsx(Fr,{config:r}),a.jsx(Ft,{}),a.jsx(Ht,{}),a.jsx(Kt,{})]})}),e[9]=S):S=e[9];let x;e[10]!==o?(x=a.jsx(Vt,{apis:o,children:S}),e[10]=o,e[11]=x):x=e[11];let D;return e[12]!==x||e[13]!==P?(D=a.jsx(qt,{children:a.jsx(Jt,{sdk:g,directory:P,children:x})}),e[12]=x,e[13]=P,e[14]=D):D=e[14],D}function $r(){return ut(null)}function Gr(t){return t.currentDirectory}const Fr=t=>{const e=ue.c(11),{config:o}=t,s=zr(o);let r;e[0]!==o?(r=a.jsx(Tr,{config:o}),e[0]=o,e[1]=r):r=e[1];let i,u;e[2]===Symbol.for("react.memo_cache_sentinel")?(i=a.jsx(Wr,{}),u=a.jsx(Xt,{backgroundWorkEnabled:!0}),e[2]=i,e[3]=u):(i=e[2],u=e[3]);const c=o.mode==="draft";let l;e[4]!==o.mode||e[5]!==s||e[6]!==c?(l=a.jsx(wr,{mode:o.mode,autoOpenDraft:c,unavailable:s}),e[4]=o.mode,e[5]=s,e[6]=c,e[7]=l):l=e[7];let m;return e[8]!==r||e[9]!==l?(m=a.jsxs(a.Fragment,{children:[r,i,u,l]}),e[8]=r,e[9]=l,e[10]=m):m=e[10],m};function Hr(t){return t.currentSessionId}function Kr(t){return t.currentDirectory}function Vr(t){return t.currentSessionId}function qr(t){return t.newSessionDraft.open}function Co(t){pr({logLabel:"[mini-chat-main]"});const e=document.getElementById("root");if(!e)throw new Error("Root element not found");bt.createRoot(e).render(a.jsx(gt.StrictMode,{children:a.jsx(nr,{children:a.jsx(or,{children:a.jsx(sr,{children:a.jsx(ir,{children:a.jsx(Ur,{apis:t})})})})})}))}export{Co as renderElectronMiniChatApp};