opencami 1.0.1 → 1.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 (346) hide show
  1. package/README.md +20 -3
  2. package/dist/client/analytics-dashboard.html +509 -0
  3. package/dist/client/analytics.json +598 -0
  4. package/dist/client/assets/_sessionKey-xUqdePGW.js +97 -0
  5. package/dist/client/assets/agents-BiadNAEz.js +2 -0
  6. package/dist/client/assets/agents-screen-C5TPJbry.js +1 -0
  7. package/dist/client/assets/button-seqh98ae.js +1 -0
  8. package/dist/client/assets/{connect-BRasuRbB.js → connect-DlVsi-ya.js} +2 -2
  9. package/dist/client/assets/file-explorer-screen-B0hwrjdF.js +1 -0
  10. package/dist/client/assets/files-dkr2U72N.js +2 -0
  11. package/dist/client/assets/index-CwoJpeG1.js +153 -0
  12. package/dist/client/assets/{index-DHGnKfAU.js → index-D1Et4XlM.js} +1 -1
  13. package/dist/client/assets/keyboard-shortcuts-dialog-zdnAmDiH.js +1 -0
  14. package/dist/client/assets/{main-BAHT5yqU.js → main-DOBfHXDF.js} +12 -12
  15. package/dist/client/assets/opencami-logo-Bxp_4d3X.js +1 -0
  16. package/dist/client/assets/react-DD8SkMJn.js +1 -0
  17. package/dist/client/assets/search-dialog-Ck1AQreu.js +1 -0
  18. package/dist/client/assets/session-export-dialog-Bh3zH4nZ.js +1 -0
  19. package/dist/client/assets/settings-dialog-CvUsgnnZ.js +1 -0
  20. package/dist/client/assets/styles-DogPvrGY.css +1 -0
  21. package/dist/client/assets/switch-BoGcWcnr.js +1 -0
  22. package/dist/client/assets/use-file-explorer-state-B5JLNsSa.js +12 -0
  23. package/dist/client/assets/useButton-csSB2uQJ.js +9 -0
  24. package/dist/client/manifest.json +8 -2
  25. package/dist/server/assets/{_sessionKey-qlAPF_Ft.js → _sessionKey-DQwkBUS7.js} +981 -229
  26. package/dist/server/assets/_tanstack-start-manifest_v-cW8K1Mnv.js +4 -0
  27. package/dist/server/assets/agents-Dz_i76VW.js +11 -0
  28. package/dist/server/assets/agents-screen-CqQPJndp.js +587 -0
  29. package/dist/server/assets/{connect-BWI_6rCm.js → connect-CIDOw12K.js} +34 -2
  30. package/dist/server/assets/{file-explorer-screen-DJXPEG_J.js → file-explorer-screen-BzvgvV8m.js} +7 -58
  31. package/dist/server/assets/{files-CONoVTGD.js → files-BxvRDIWU.js} +1 -1
  32. package/dist/server/assets/{index-Bp8QskbI.js → index-BwD7ufHE.js} +4 -3
  33. package/dist/server/assets/{index-COu2idHm.js → index-CmbNTqa2.js} +105 -14
  34. package/dist/server/assets/{keyboard-shortcuts-dialog-D5hqVX2v.js → keyboard-shortcuts-dialog-7OEtXUlW.js} +2 -2
  35. package/dist/server/assets/opencami-logo-C-43FL3R.js +24 -0
  36. package/dist/server/assets/{router-DbxyvprK.js → router-5qObg5aX.js} +368 -74
  37. package/dist/server/assets/{search-dialog-JY8C3mqa.js → search-dialog-BE2ZBkj0.js} +44 -12
  38. package/dist/server/assets/{session-export-dialog-D87uafPD.js → session-export-dialog-DRVbC8Q-.js} +2 -2
  39. package/dist/server/assets/{settings-dialog-CBj7njLM.js → settings-dialog-BBQcU55J.js} +204 -41
  40. package/dist/server/assets/switch-DnX0MjGS.js +28 -0
  41. package/dist/server/assets/tooltip-gbV6rEVv.js +60 -0
  42. package/dist/server/assets/{menu-D6n4DB0U.js → use-file-explorer-state-DMHdtb7D.js} +56 -57
  43. package/dist/server/server.js +2 -2
  44. package/package.json +1 -1
  45. package/dist/client/assets/_sessionKey-B-MBYHgD.js +0 -95
  46. package/dist/client/assets/abap-BdImnpbu.js +0 -1
  47. package/dist/client/assets/actionscript-3-CfeIJUat.js +0 -1
  48. package/dist/client/assets/ada-bCR0ucgS.js +0 -1
  49. package/dist/client/assets/andromeeda-C-Jbm3Hp.js +0 -1
  50. package/dist/client/assets/angular-html-CU67Zn6k.js +0 -1
  51. package/dist/client/assets/angular-ts-BwZT4LLn.js +0 -1
  52. package/dist/client/assets/apache-Pmp26Uib.js +0 -1
  53. package/dist/client/assets/apex-D8_7TLub.js +0 -1
  54. package/dist/client/assets/apl-dKokRX4l.js +0 -1
  55. package/dist/client/assets/applescript-Co6uUVPk.js +0 -1
  56. package/dist/client/assets/ara-BRHolxvo.js +0 -1
  57. package/dist/client/assets/asciidoc-Dv7Oe6Be.js +0 -1
  58. package/dist/client/assets/asm-D_Q5rh1f.js +0 -1
  59. package/dist/client/assets/astro-CbQHKStN.js +0 -1
  60. package/dist/client/assets/aurora-x-D-2ljcwZ.js +0 -1
  61. package/dist/client/assets/awk-DMzUqQB5.js +0 -1
  62. package/dist/client/assets/ayu-dark-CmMr59Fi.js +0 -1
  63. package/dist/client/assets/ballerina-BFfxhgS-.js +0 -1
  64. package/dist/client/assets/bat-BkioyH1T.js +0 -1
  65. package/dist/client/assets/beancount-k_qm7-4y.js +0 -1
  66. package/dist/client/assets/berry-uYugtg8r.js +0 -1
  67. package/dist/client/assets/bibtex-CHM0blh-.js +0 -1
  68. package/dist/client/assets/bicep-Bmn6On1c.js +0 -1
  69. package/dist/client/assets/blade-D4QpJJKB.js +0 -1
  70. package/dist/client/assets/bsl-BO_Y6i37.js +0 -1
  71. package/dist/client/assets/button-D_9OBT_f.js +0 -1
  72. package/dist/client/assets/c-BIGW1oBm.js +0 -1
  73. package/dist/client/assets/c3-VCDPK7BO.js +0 -1
  74. package/dist/client/assets/cadence-Bv_4Rxtq.js +0 -1
  75. package/dist/client/assets/cairo-KRGpt6FW.js +0 -1
  76. package/dist/client/assets/catppuccin-frappe-DFWUc33u.js +0 -1
  77. package/dist/client/assets/catppuccin-latte-C9dUb6Cb.js +0 -1
  78. package/dist/client/assets/catppuccin-macchiato-DQyhUUbL.js +0 -1
  79. package/dist/client/assets/catppuccin-mocha-D87Tk5Gz.js +0 -1
  80. package/dist/client/assets/clarity-D53aC0YG.js +0 -1
  81. package/dist/client/assets/clojure-P80f7IUj.js +0 -1
  82. package/dist/client/assets/cmake-D1j8_8rp.js +0 -1
  83. package/dist/client/assets/cobol-nwyudZeR.js +0 -1
  84. package/dist/client/assets/codeowners-Bp6g37R7.js +0 -1
  85. package/dist/client/assets/codeql-DsOJ9woJ.js +0 -1
  86. package/dist/client/assets/coffee-Ch7k5sss.js +0 -1
  87. package/dist/client/assets/common-lisp-Cg-RD9OK.js +0 -1
  88. package/dist/client/assets/coq-DkFqJrB1.js +0 -1
  89. package/dist/client/assets/cpp-CofmeUqb.js +0 -1
  90. package/dist/client/assets/crystal-tKQVLTB8.js +0 -1
  91. package/dist/client/assets/csharp-K5feNrxe.js +0 -1
  92. package/dist/client/assets/css-DPfMkruS.js +0 -1
  93. package/dist/client/assets/csv-fuZLfV_i.js +0 -1
  94. package/dist/client/assets/cue-D82EKSYY.js +0 -1
  95. package/dist/client/assets/cypher-COkxafJQ.js +0 -1
  96. package/dist/client/assets/d-85-TOEBH.js +0 -1
  97. package/dist/client/assets/dark-plus-C3mMm8J8.js +0 -1
  98. package/dist/client/assets/dart-CF10PKvl.js +0 -1
  99. package/dist/client/assets/dax-CEL-wOlO.js +0 -1
  100. package/dist/client/assets/desktop-BmXAJ9_W.js +0 -1
  101. package/dist/client/assets/diff-D97Zzqfu.js +0 -1
  102. package/dist/client/assets/docker-BcOcwvcX.js +0 -1
  103. package/dist/client/assets/dotenv-Da5cRb03.js +0 -1
  104. package/dist/client/assets/dracula-BzJJZx-M.js +0 -1
  105. package/dist/client/assets/dracula-soft-BXkSAIEj.js +0 -1
  106. package/dist/client/assets/dream-maker-BtqSS_iP.js +0 -1
  107. package/dist/client/assets/edge-BkV0erSs.js +0 -1
  108. package/dist/client/assets/elixir-CDX3lj18.js +0 -1
  109. package/dist/client/assets/elm-DbKCFpqz.js +0 -1
  110. package/dist/client/assets/emacs-lisp-C9XAeP06.js +0 -1
  111. package/dist/client/assets/erb-BOJIQeun.js +0 -1
  112. package/dist/client/assets/erlang-DsQrWhSR.js +0 -1
  113. package/dist/client/assets/everforest-dark-BgDCqdQA.js +0 -1
  114. package/dist/client/assets/everforest-light-C8M2exoo.js +0 -1
  115. package/dist/client/assets/fennel-BYunw83y.js +0 -1
  116. package/dist/client/assets/file-explorer-screen-Daf4rIq9.js +0 -1
  117. package/dist/client/assets/files-ByeIMLfw.js +0 -2
  118. package/dist/client/assets/fish-BvzEVeQv.js +0 -1
  119. package/dist/client/assets/fluent-C4IJs8-o.js +0 -1
  120. package/dist/client/assets/fortran-fixed-form-CkoXwp7k.js +0 -1
  121. package/dist/client/assets/fortran-free-form-BxgE0vQu.js +0 -1
  122. package/dist/client/assets/fsharp-CXgrBDvD.js +0 -1
  123. package/dist/client/assets/gdresource-B7Tvp0Sc.js +0 -1
  124. package/dist/client/assets/gdscript-DTMYz4Jt.js +0 -1
  125. package/dist/client/assets/gdshader-DkwncUOv.js +0 -1
  126. package/dist/client/assets/genie-D0YGMca9.js +0 -1
  127. package/dist/client/assets/gherkin-DyxjwDmM.js +0 -1
  128. package/dist/client/assets/git-commit-F4YmCXRG.js +0 -1
  129. package/dist/client/assets/git-rebase-r7XF79zn.js +0 -1
  130. package/dist/client/assets/github-dark-DHJKELXO.js +0 -1
  131. package/dist/client/assets/github-dark-default-Cuk6v7N8.js +0 -1
  132. package/dist/client/assets/github-dark-dimmed-DH5Ifo-i.js +0 -1
  133. package/dist/client/assets/github-dark-high-contrast-E3gJ1_iC.js +0 -1
  134. package/dist/client/assets/github-light-DAi9KRSo.js +0 -1
  135. package/dist/client/assets/github-light-default-D7oLnXFd.js +0 -1
  136. package/dist/client/assets/github-light-high-contrast-BfjtVDDH.js +0 -1
  137. package/dist/client/assets/gleam-BspZqrRM.js +0 -1
  138. package/dist/client/assets/glimmer-js-Rg0-pVw9.js +0 -1
  139. package/dist/client/assets/glimmer-ts-U6CK756n.js +0 -1
  140. package/dist/client/assets/glsl-DplSGwfg.js +0 -1
  141. package/dist/client/assets/gn-n2N0HUVH.js +0 -1
  142. package/dist/client/assets/gnuplot-DdkO51Og.js +0 -1
  143. package/dist/client/assets/go-Dn2_MT6a.js +0 -1
  144. package/dist/client/assets/graphql-ChdNCCLP.js +0 -1
  145. package/dist/client/assets/groovy-gcz8RCvz.js +0 -1
  146. package/dist/client/assets/gruvbox-dark-hard-CFHQjOhq.js +0 -1
  147. package/dist/client/assets/gruvbox-dark-medium-GsRaNv29.js +0 -1
  148. package/dist/client/assets/gruvbox-dark-soft-CVdnzihN.js +0 -1
  149. package/dist/client/assets/gruvbox-light-hard-CH1njM8p.js +0 -1
  150. package/dist/client/assets/gruvbox-light-medium-DRw_LuNl.js +0 -1
  151. package/dist/client/assets/gruvbox-light-soft-hJgmCMqR.js +0 -1
  152. package/dist/client/assets/hack-CaT9iCJl.js +0 -1
  153. package/dist/client/assets/haml-B8DHNrY2.js +0 -1
  154. package/dist/client/assets/handlebars-BL8al0AC.js +0 -1
  155. package/dist/client/assets/haskell-Df6bDoY_.js +0 -1
  156. package/dist/client/assets/haxe-CzTSHFRz.js +0 -1
  157. package/dist/client/assets/hcl-BWvSN4gD.js +0 -1
  158. package/dist/client/assets/hjson-D5-asLiD.js +0 -1
  159. package/dist/client/assets/hlsl-D3lLCCz7.js +0 -1
  160. package/dist/client/assets/houston-DnULxvSX.js +0 -1
  161. package/dist/client/assets/html-GMplVEZG.js +0 -1
  162. package/dist/client/assets/html-derivative-BFtXZ54Q.js +0 -1
  163. package/dist/client/assets/http-jrhK8wxY.js +0 -1
  164. package/dist/client/assets/hurl-irOxFIW8.js +0 -1
  165. package/dist/client/assets/hxml-Bvhsp5Yf.js +0 -1
  166. package/dist/client/assets/hy-DFXneXwc.js +0 -1
  167. package/dist/client/assets/imba-DGztddWO.js +0 -1
  168. package/dist/client/assets/index-ByUDBI-n.js +0 -14
  169. package/dist/client/assets/ini-BEwlwnbL.js +0 -1
  170. package/dist/client/assets/java-CylS5w8V.js +0 -1
  171. package/dist/client/assets/javascript-wDzz0qaB.js +0 -1
  172. package/dist/client/assets/jinja-4LBKfQ-Z.js +0 -1
  173. package/dist/client/assets/jison-wvAkD_A8.js +0 -1
  174. package/dist/client/assets/json-Cp-IABpG.js +0 -1
  175. package/dist/client/assets/json5-C9tS-k6U.js +0 -1
  176. package/dist/client/assets/jsonc-Des-eS-w.js +0 -1
  177. package/dist/client/assets/jsonl-DcaNXYhu.js +0 -1
  178. package/dist/client/assets/jsonnet-DFQXde-d.js +0 -1
  179. package/dist/client/assets/jssm-C2t-YnRu.js +0 -1
  180. package/dist/client/assets/jsx-g9-lgVsj.js +0 -1
  181. package/dist/client/assets/julia-CxzCAyBv.js +0 -1
  182. package/dist/client/assets/kanagawa-dragon-CkXjmgJE.js +0 -1
  183. package/dist/client/assets/kanagawa-lotus-CfQXZHmo.js +0 -1
  184. package/dist/client/assets/kanagawa-wave-DWedfzmr.js +0 -1
  185. package/dist/client/assets/kdl-DV7GczEv.js +0 -1
  186. package/dist/client/assets/keyboard-shortcuts-dialog-agsWJ36q.js +0 -1
  187. package/dist/client/assets/kotlin-BdnUsdx6.js +0 -1
  188. package/dist/client/assets/kusto-DZf3V79B.js +0 -1
  189. package/dist/client/assets/laserwave-DUszq2jm.js +0 -1
  190. package/dist/client/assets/latex-B4uzh10-.js +0 -1
  191. package/dist/client/assets/lean-BZvkOJ9d.js +0 -1
  192. package/dist/client/assets/less-B1dDrJ26.js +0 -1
  193. package/dist/client/assets/light-plus-B7mTdjB0.js +0 -1
  194. package/dist/client/assets/liquid-DYVedYrR.js +0 -1
  195. package/dist/client/assets/llvm-BtvRca6l.js +0 -1
  196. package/dist/client/assets/log-2UxHyX5q.js +0 -1
  197. package/dist/client/assets/logo-BtOb2qkB.js +0 -1
  198. package/dist/client/assets/lua-BbnMAYS6.js +0 -1
  199. package/dist/client/assets/luau-C-HG3fhB.js +0 -1
  200. package/dist/client/assets/make-CHLpvVh8.js +0 -1
  201. package/dist/client/assets/markdown-Cvjx9yec.js +0 -1
  202. package/dist/client/assets/marko-DZsq8hO1.js +0 -1
  203. package/dist/client/assets/material-theme-D5KoaKCx.js +0 -1
  204. package/dist/client/assets/material-theme-darker-BfHTSMKl.js +0 -1
  205. package/dist/client/assets/material-theme-lighter-B0m2ddpp.js +0 -1
  206. package/dist/client/assets/material-theme-ocean-CyktbL80.js +0 -1
  207. package/dist/client/assets/material-theme-palenight-Csfq5Kiy.js +0 -1
  208. package/dist/client/assets/matlab-D7o27uSR.js +0 -1
  209. package/dist/client/assets/mdc-DUICxH0z.js +0 -1
  210. package/dist/client/assets/mdx-Cmh6b_Ma.js +0 -1
  211. package/dist/client/assets/menu-BhVaz8Ly.js +0 -20
  212. package/dist/client/assets/mermaid-mWjccvbQ.js +0 -1
  213. package/dist/client/assets/min-dark-CafNBF8u.js +0 -1
  214. package/dist/client/assets/min-light-CTRr51gU.js +0 -1
  215. package/dist/client/assets/mipsasm-CKIfxQSi.js +0 -1
  216. package/dist/client/assets/mojo-B93PlW-d.js +0 -1
  217. package/dist/client/assets/monokai-D4h5O-jR.js +0 -1
  218. package/dist/client/assets/moonbit-Ba13S78F.js +0 -1
  219. package/dist/client/assets/move-Bu9oaDYs.js +0 -1
  220. package/dist/client/assets/narrat-DRg8JJMk.js +0 -1
  221. package/dist/client/assets/nextflow-BrzmwbiE.js +0 -1
  222. package/dist/client/assets/nginx-DknmC5AR.js +0 -1
  223. package/dist/client/assets/night-owl-C39BiMTA.js +0 -1
  224. package/dist/client/assets/nim-CVrawwO9.js +0 -1
  225. package/dist/client/assets/nix-CwoSXNpI.js +0 -1
  226. package/dist/client/assets/nord-Ddv68eIx.js +0 -1
  227. package/dist/client/assets/nushell-C-sUppwS.js +0 -1
  228. package/dist/client/assets/objective-c-DXmwc3jG.js +0 -1
  229. package/dist/client/assets/objective-cpp-CLxacb5B.js +0 -1
  230. package/dist/client/assets/ocaml-C0hk2d4L.js +0 -1
  231. package/dist/client/assets/one-dark-pro-DVMEJ2y_.js +0 -1
  232. package/dist/client/assets/one-light-PoHY5YXO.js +0 -1
  233. package/dist/client/assets/openscad-C4EeE6gA.js +0 -1
  234. package/dist/client/assets/pascal-D93ZcfNL.js +0 -1
  235. package/dist/client/assets/perl-C0TMdlhV.js +0 -1
  236. package/dist/client/assets/php-CDn_0X-4.js +0 -1
  237. package/dist/client/assets/pkl-u5AG7uiY.js +0 -1
  238. package/dist/client/assets/plastic-3e1v2bzS.js +0 -1
  239. package/dist/client/assets/plsql-ChMvpjG-.js +0 -1
  240. package/dist/client/assets/po-BTJTHyun.js +0 -1
  241. package/dist/client/assets/poimandres-CS3Unz2-.js +0 -1
  242. package/dist/client/assets/polar-C0HS_06l.js +0 -1
  243. package/dist/client/assets/postcss-CXtECtnM.js +0 -1
  244. package/dist/client/assets/powerquery-CEu0bR-o.js +0 -1
  245. package/dist/client/assets/powershell-Dpen1YoG.js +0 -1
  246. package/dist/client/assets/prisma-Dd19v3D-.js +0 -1
  247. package/dist/client/assets/prolog-CbFg5uaA.js +0 -1
  248. package/dist/client/assets/proto-C7zT0LnQ.js +0 -1
  249. package/dist/client/assets/pug-CGlum2m_.js +0 -1
  250. package/dist/client/assets/puppet-BMWR74SV.js +0 -1
  251. package/dist/client/assets/purescript-CklMAg4u.js +0 -1
  252. package/dist/client/assets/python-B6aJPvgy.js +0 -1
  253. package/dist/client/assets/qml-3beO22l8.js +0 -1
  254. package/dist/client/assets/qmldir-C8lEn-DE.js +0 -1
  255. package/dist/client/assets/qss-IeuSbFQv.js +0 -1
  256. package/dist/client/assets/r-Dspwwk_N.js +0 -1
  257. package/dist/client/assets/racket-BqYA7rlc.js +0 -1
  258. package/dist/client/assets/raku-DXvB9xmW.js +0 -1
  259. package/dist/client/assets/razor-C1TweQQi.js +0 -1
  260. package/dist/client/assets/red-bN70gL4F.js +0 -1
  261. package/dist/client/assets/reg-C-SQnVFl.js +0 -1
  262. package/dist/client/assets/regexp-CDVJQ6XC.js +0 -1
  263. package/dist/client/assets/rel-C3B-1QV4.js +0 -1
  264. package/dist/client/assets/riscv-BM1_JUlF.js +0 -1
  265. package/dist/client/assets/rose-pine-dawn-DHQR4-dF.js +0 -1
  266. package/dist/client/assets/rose-pine-moon-D4_iv3hh.js +0 -1
  267. package/dist/client/assets/rose-pine-qdsjHGoJ.js +0 -1
  268. package/dist/client/assets/rosmsg-BJDFO7_C.js +0 -1
  269. package/dist/client/assets/rst-B0xPkSld.js +0 -1
  270. package/dist/client/assets/ruby-BvKwtOVI.js +0 -1
  271. package/dist/client/assets/rust-B1yitclQ.js +0 -1
  272. package/dist/client/assets/sas-cz2c8ADy.js +0 -1
  273. package/dist/client/assets/sass-Cj5Yp3dK.js +0 -1
  274. package/dist/client/assets/scala-C151Ov-r.js +0 -1
  275. package/dist/client/assets/scheme-C98Dy4si.js +0 -1
  276. package/dist/client/assets/scss-OYdSNvt2.js +0 -1
  277. package/dist/client/assets/sdbl-DVxCFoDh.js +0 -1
  278. package/dist/client/assets/search-dialog-CHwnOyPS.js +0 -1
  279. package/dist/client/assets/session-export-dialog-uOlDUzgX.js +0 -1
  280. package/dist/client/assets/settings-dialog-D0aYDkAM.js +0 -1
  281. package/dist/client/assets/shaderlab-Dg9Lc6iA.js +0 -1
  282. package/dist/client/assets/shellscript-Yzrsuije.js +0 -1
  283. package/dist/client/assets/shellsession-BADoaaVG.js +0 -1
  284. package/dist/client/assets/slack-dark-BthQWCQV.js +0 -1
  285. package/dist/client/assets/slack-ochin-DqwNpetd.js +0 -1
  286. package/dist/client/assets/smalltalk-BERRCDM3.js +0 -1
  287. package/dist/client/assets/snazzy-light-Bw305WKR.js +0 -1
  288. package/dist/client/assets/solarized-dark-DXbdFlpD.js +0 -1
  289. package/dist/client/assets/solarized-light-L9t79GZl.js +0 -1
  290. package/dist/client/assets/solidity-rGO070M0.js +0 -1
  291. package/dist/client/assets/soy-Brmx7dQM.js +0 -1
  292. package/dist/client/assets/sparql-rVzFXLq3.js +0 -1
  293. package/dist/client/assets/splunk-BtCnVYZw.js +0 -1
  294. package/dist/client/assets/sql-BLtJtn59.js +0 -1
  295. package/dist/client/assets/ssh-config-_ykCGR6B.js +0 -1
  296. package/dist/client/assets/stata-BH5u7GGu.js +0 -1
  297. package/dist/client/assets/styles-7aVSlb6l.css +0 -1
  298. package/dist/client/assets/stylus-BEDo0Tqx.js +0 -1
  299. package/dist/client/assets/svelte-zxCyuUbr.js +0 -1
  300. package/dist/client/assets/swift-Dg5xB15N.js +0 -1
  301. package/dist/client/assets/synthwave-84-CbfX1IO0.js +0 -1
  302. package/dist/client/assets/system-verilog-CnnmHF94.js +0 -1
  303. package/dist/client/assets/systemd-4A_iFExJ.js +0 -1
  304. package/dist/client/assets/talonscript-CkByrt1z.js +0 -1
  305. package/dist/client/assets/tasl-QIJgUcNo.js +0 -1
  306. package/dist/client/assets/tcl-dwOrl1Do.js +0 -1
  307. package/dist/client/assets/templ-W15q3VgB.js +0 -1
  308. package/dist/client/assets/terraform-BETggiCN.js +0 -1
  309. package/dist/client/assets/tex-CvyZ59Mk.js +0 -1
  310. package/dist/client/assets/tokyo-night-hegEt444.js +0 -1
  311. package/dist/client/assets/toml-vGWfd6FD.js +0 -1
  312. package/dist/client/assets/ts-tags-zn1MmPIZ.js +0 -1
  313. package/dist/client/assets/tsv-B_m7g4N7.js +0 -1
  314. package/dist/client/assets/tsx-COt5Ahok.js +0 -1
  315. package/dist/client/assets/turtle-BsS91CYL.js +0 -1
  316. package/dist/client/assets/twig-CO9l9SDP.js +0 -1
  317. package/dist/client/assets/typescript-BPQ3VLAy.js +0 -1
  318. package/dist/client/assets/typespec-BGHnOYBU.js +0 -1
  319. package/dist/client/assets/typst-DHCkPAjA.js +0 -1
  320. package/dist/client/assets/v-BcVCzyr7.js +0 -1
  321. package/dist/client/assets/vala-CsfeWuGM.js +0 -1
  322. package/dist/client/assets/vb-D17OF-Vu.js +0 -1
  323. package/dist/client/assets/verilog-BQ8w6xss.js +0 -1
  324. package/dist/client/assets/vesper-DU1UobuO.js +0 -1
  325. package/dist/client/assets/vhdl-CeAyd5Ju.js +0 -1
  326. package/dist/client/assets/viml-CJc9bBzg.js +0 -1
  327. package/dist/client/assets/vitesse-black-Bkuqu6BP.js +0 -1
  328. package/dist/client/assets/vitesse-dark-D0r3Knsf.js +0 -1
  329. package/dist/client/assets/vitesse-light-CVO1_9PV.js +0 -1
  330. package/dist/client/assets/vue-DN_0RTcg.js +0 -1
  331. package/dist/client/assets/vue-html-AaS7Mt5G.js +0 -1
  332. package/dist/client/assets/vue-vine-CQOfvN7w.js +0 -1
  333. package/dist/client/assets/vyper-CDx5xZoG.js +0 -1
  334. package/dist/client/assets/wasm-CG6Dc4jp.js +0 -1
  335. package/dist/client/assets/wasm-MzD3tlZU.js +0 -1
  336. package/dist/client/assets/wenyan-BV7otONQ.js +0 -1
  337. package/dist/client/assets/wgsl-Dx-B1_4e.js +0 -1
  338. package/dist/client/assets/wikitext-BhOHFoWU.js +0 -1
  339. package/dist/client/assets/wit-5i3qLPDT.js +0 -1
  340. package/dist/client/assets/wolfram-lXgVvXCa.js +0 -1
  341. package/dist/client/assets/xml-sdJ4AIDG.js +0 -1
  342. package/dist/client/assets/xsl-CtQFsRM5.js +0 -1
  343. package/dist/client/assets/yaml-Buea-lGh.js +0 -1
  344. package/dist/client/assets/zenscript-DVFEvuxE.js +0 -1
  345. package/dist/client/assets/zig-VOosw3JB.js +0 -1
  346. package/dist/server/assets/_tanstack-start-manifest_v-El8F-kd-.js +0 -4
@@ -3,33 +3,68 @@ import { useState, useCallback, useRef, useMemo, useEffect } from "react";
3
3
  import { useNavigate } from "@tanstack/react-router";
4
4
  import { HugeiconsIcon } from "@hugeicons/react";
5
5
  import { Search01Icon, Cancel01Icon, Loading03Icon } from "@hugeicons/core-free-icons";
6
- import { D as DialogRoot, a as DialogContent } from "./menu-D6n4DB0U.js";
6
+ import { D as DialogRoot, a as DialogContent } from "./use-file-explorer-state-DMHdtb7D.js";
7
7
  import { useQueryClient } from "@tanstack/react-query";
8
- import { c as chatQueryKeys } from "./_sessionKey-qlAPF_Ft.js";
8
+ import { c as chatQueryKeys } from "./_sessionKey-DQwkBUS7.js";
9
9
  import { c as cn } from "./button-DtQ3rV1m.js";
10
- import "@base-ui/react/tooltip";
11
10
  import "@base-ui/react/dialog";
12
11
  import "@base-ui/react/menu";
12
+ import "zustand";
13
+ import "./tooltip-gbV6rEVv.js";
14
+ import "@base-ui/react/tooltip";
13
15
  import "motion/react";
14
16
  import "@base-ui/react/alert-dialog";
15
17
  import "@base-ui/react/collapsible";
16
18
  import "@base-ui/react/scroll-area";
19
+ import "./opencami-logo-C-43FL3R.js";
17
20
  import "marked";
18
21
  import "react-markdown";
19
22
  import "remark-breaks";
20
23
  import "remark-gfm";
21
- import "./index-COu2idHm.js";
22
- import "shiki";
23
- import "zustand";
24
+ import "./index-CmbNTqa2.js";
25
+ import "shiki/core";
26
+ import "shiki/engine/javascript";
27
+ import "@shikijs/themes/vitesse-dark";
28
+ import "@shikijs/themes/vitesse-light";
29
+ import "@shikijs/langs/bash";
30
+ import "@shikijs/langs/c";
31
+ import "@shikijs/langs/cpp";
32
+ import "@shikijs/langs/csharp";
33
+ import "@shikijs/langs/css";
34
+ import "@shikijs/langs/diff";
35
+ import "@shikijs/langs/dockerfile";
36
+ import "@shikijs/langs/go";
37
+ import "@shikijs/langs/graphql";
38
+ import "@shikijs/langs/html";
39
+ import "@shikijs/langs/java";
40
+ import "@shikijs/langs/javascript";
41
+ import "@shikijs/langs/json";
42
+ import "@shikijs/langs/jsx";
43
+ import "@shikijs/langs/kotlin";
44
+ import "@shikijs/langs/markdown";
45
+ import "@shikijs/langs/php";
46
+ import "@shikijs/langs/python";
47
+ import "@shikijs/langs/regexp";
48
+ import "@shikijs/langs/ruby";
49
+ import "@shikijs/langs/rust";
50
+ import "@shikijs/langs/shell";
51
+ import "@shikijs/langs/sql";
52
+ import "@shikijs/langs/swift";
53
+ import "@shikijs/langs/toml";
54
+ import "@shikijs/langs/typescript";
55
+ import "@shikijs/langs/tsx";
56
+ import "@shikijs/langs/xml";
57
+ import "@shikijs/langs/yaml";
24
58
  import "zustand/middleware";
25
59
  import "react-dom";
26
- import "./router-DbxyvprK.js";
60
+ import "./router-5qObg5aX.js";
27
61
  import "node:crypto";
28
62
  import "ws";
63
+ import "node:fs";
64
+ import "node:path";
65
+ import "node:os";
29
66
  import "@tanstack/router-core/ssr/client";
30
67
  import "node:fs/promises";
31
- import "node:os";
32
- import "node:path";
33
68
  import "path";
34
69
  import "@base-ui/react/merge-props";
35
70
  import "@base-ui/react/use-render";
@@ -42,9 +77,6 @@ function extractTextFromContent(content) {
42
77
  if (item?.type === "text" && typeof item.text === "string") {
43
78
  return item.text;
44
79
  }
45
- if (item?.type === "thinking" && typeof item.thinking === "string") {
46
- return item.thinking;
47
- }
48
80
  return "";
49
81
  }).filter(Boolean).join(" ");
50
82
  }
@@ -1,10 +1,10 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useState } from "react";
3
- import { D as DialogRoot, a as DialogContent, b as DialogTitle, c as DialogDescription, d as DialogClose } from "./menu-D6n4DB0U.js";
3
+ import { D as DialogRoot, a as DialogContent, b as DialogTitle, c as DialogDescription, d as DialogClose } from "./use-file-explorer-state-DMHdtb7D.js";
4
4
  import { B as Button } from "./button-DtQ3rV1m.js";
5
- import "@base-ui/react/tooltip";
6
5
  import "@base-ui/react/dialog";
7
6
  import "@base-ui/react/menu";
7
+ import "zustand";
8
8
  import "@base-ui/react/merge-props";
9
9
  import "@base-ui/react/use-render";
10
10
  import "class-variance-authority";
@@ -2,64 +2,78 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useState, useEffect } from "react";
3
3
  import { HugeiconsIcon } from "@hugeicons/react";
4
4
  import { Cancel01Icon, ComputerIcon, Sun01Icon, Moon01Icon, Leaf01Icon, Loading02Icon, Tick01Icon, Cancel02Icon } from "@hugeicons/core-free-icons";
5
- import { D as DialogRoot, a as DialogContent, b as DialogTitle, c as DialogDescription, d as DialogClose } from "./menu-D6n4DB0U.js";
6
- import { Switch as Switch$1 } from "@base-ui/react/switch";
7
- import { c as cn, B as Button } from "./button-DtQ3rV1m.js";
5
+ import { D as DialogRoot, a as DialogContent, b as DialogTitle, c as DialogDescription, d as DialogClose } from "./use-file-explorer-state-DMHdtb7D.js";
6
+ import { S as Switch } from "./switch-DnX0MjGS.js";
8
7
  import { Tabs as Tabs$1 } from "@base-ui/react/tabs";
9
- import { u as useChatSettings } from "./index-COu2idHm.js";
10
- import { u as useLlmSettings } from "./_sessionKey-qlAPF_Ft.js";
11
- import "@base-ui/react/tooltip";
8
+ import { c as cn, B as Button } from "./button-DtQ3rV1m.js";
9
+ import { a as useChatSettings } from "./index-CmbNTqa2.js";
10
+ import { u as useLlmSettings } from "./_sessionKey-DQwkBUS7.js";
12
11
  import "@base-ui/react/dialog";
13
12
  import "@base-ui/react/menu";
13
+ import "zustand";
14
+ import "@base-ui/react/switch";
14
15
  import "@base-ui/react/merge-props";
15
16
  import "@base-ui/react/use-render";
16
17
  import "class-variance-authority";
17
18
  import "clsx";
18
19
  import "tailwind-merge";
19
- import "shiki";
20
- import "zustand";
20
+ import "shiki/core";
21
+ import "shiki/engine/javascript";
22
+ import "@shikijs/themes/vitesse-dark";
23
+ import "@shikijs/themes/vitesse-light";
24
+ import "@shikijs/langs/bash";
25
+ import "@shikijs/langs/c";
26
+ import "@shikijs/langs/cpp";
27
+ import "@shikijs/langs/csharp";
28
+ import "@shikijs/langs/css";
29
+ import "@shikijs/langs/diff";
30
+ import "@shikijs/langs/dockerfile";
31
+ import "@shikijs/langs/go";
32
+ import "@shikijs/langs/graphql";
33
+ import "@shikijs/langs/html";
34
+ import "@shikijs/langs/java";
35
+ import "@shikijs/langs/javascript";
36
+ import "@shikijs/langs/json";
37
+ import "@shikijs/langs/jsx";
38
+ import "@shikijs/langs/kotlin";
39
+ import "@shikijs/langs/markdown";
40
+ import "@shikijs/langs/php";
41
+ import "@shikijs/langs/python";
42
+ import "@shikijs/langs/regexp";
43
+ import "@shikijs/langs/ruby";
44
+ import "@shikijs/langs/rust";
45
+ import "@shikijs/langs/shell";
46
+ import "@shikijs/langs/sql";
47
+ import "@shikijs/langs/swift";
48
+ import "@shikijs/langs/toml";
49
+ import "@shikijs/langs/typescript";
50
+ import "@shikijs/langs/tsx";
51
+ import "@shikijs/langs/xml";
52
+ import "@shikijs/langs/yaml";
21
53
  import "zustand/middleware";
22
54
  import "@tanstack/react-router";
23
55
  import "@tanstack/react-query";
56
+ import "./tooltip-gbV6rEVv.js";
57
+ import "@base-ui/react/tooltip";
24
58
  import "motion/react";
25
59
  import "@base-ui/react/alert-dialog";
26
60
  import "@base-ui/react/collapsible";
27
61
  import "@base-ui/react/scroll-area";
62
+ import "./opencami-logo-C-43FL3R.js";
28
63
  import "marked";
29
64
  import "react-markdown";
30
65
  import "remark-breaks";
31
66
  import "remark-gfm";
32
67
  import "react-dom";
33
- import "./router-DbxyvprK.js";
68
+ import "./router-5qObg5aX.js";
34
69
  import "node:crypto";
35
70
  import "ws";
71
+ import "node:fs";
72
+ import "node:path";
73
+ import "node:os";
36
74
  import "@tanstack/router-core/ssr/client";
37
75
  import "node:fs/promises";
38
- import "node:os";
39
- import "node:path";
40
76
  import "path";
41
- function Switch({ className, ...props }) {
42
- return /* @__PURE__ */ jsx(
43
- Switch$1.Root,
44
- {
45
- className: cn(
46
- "inline-flex h-[calc(var(--thumb-size)+2px)] w-[calc(var(--thumb-size)*2-2px)] shrink-0 items-center rounded-full p-px outline-none transition-[background-color,box-shadow] duration-200 [--thumb-size:--spacing(5)] focus-visible:ring-2 focus-visible:ring-primary-950 focus-visible:ring-offset-1 focus-visible:ring-offset-background data-checked:bg-primary-900 data-unchecked:bg-primary-200 data-disabled:opacity-64 sm:[--thumb-size:--spacing(4)]",
47
- className
48
- ),
49
- "data-slot": "switch",
50
- ...props,
51
- children: /* @__PURE__ */ jsx(
52
- Switch$1.Thumb,
53
- {
54
- className: cn(
55
- "pointer-events-none block aspect-square h-full origin-left in-[[role=switch]:active,[data-slot=label]:active]:not-data-disabled:scale-x-110 in-[[role=switch]:active,[data-slot=label]:active]:rounded-[var(--thumb-size)/calc(var(--thumb-size)*1.1)] rounded-(--thumb-size) bg-primary-50 shadow-sm/5 will-change-transform [transition:translate_.15s,border-radius_.15s,scale_.1s_.1s,transform-origin_.15s] data-checked:origin-[var(--thumb-size)_50%] data-checked:translate-x-[calc(var(--thumb-size)-4px)]"
56
- ),
57
- "data-slot": "switch-thumb"
58
- }
59
- )
60
- }
61
- );
62
- }
63
77
  function Tabs({ className, ...props }) {
64
78
  return /* @__PURE__ */ jsx(
65
79
  Tabs$1.Root,
@@ -176,6 +190,51 @@ function SettingsDialog({
176
190
  return true;
177
191
  }
178
192
  });
193
+ const [ttsProvider, setTtsProvider] = useState(() => {
194
+ if (typeof window === "undefined") return "auto";
195
+ try {
196
+ return localStorage.getItem("opencami-tts-provider") || "auto";
197
+ } catch {
198
+ return "auto";
199
+ }
200
+ });
201
+ const [ttsVoice, setTtsVoice] = useState(() => {
202
+ if (typeof window === "undefined") return "nova";
203
+ try {
204
+ return localStorage.getItem("opencami-tts-voice") || "nova";
205
+ } catch {
206
+ return "nova";
207
+ }
208
+ });
209
+ const [sttProvider, setSttProvider] = useState(() => {
210
+ if (typeof window === "undefined") return "auto";
211
+ try {
212
+ return localStorage.getItem("opencami-stt-provider") || "auto";
213
+ } catch {
214
+ return "auto";
215
+ }
216
+ });
217
+ const handleTtsProviderChange = (value) => {
218
+ setTtsProvider(value);
219
+ try {
220
+ localStorage.setItem("opencami-tts-provider", value);
221
+ } catch {
222
+ }
223
+ };
224
+ const handleTtsVoiceChange = (value) => {
225
+ setTtsVoice(value);
226
+ try {
227
+ localStorage.setItem("opencami-tts-voice", value);
228
+ } catch {
229
+ }
230
+ };
231
+ const handleSttProviderChange = (value) => {
232
+ setSttProvider(value);
233
+ try {
234
+ localStorage.setItem("opencami-stt-provider", value);
235
+ } catch {
236
+ }
237
+ };
179
238
  function applyTextSize(value) {
180
239
  if (typeof document === "undefined") return;
181
240
  document.documentElement.style.setProperty("--opencami-text-size", value);
@@ -371,7 +430,51 @@ function SettingsDialog({
371
430
  checked: settings.showReasoningBlocks,
372
431
  onCheckedChange: (checked) => updateSettings({ showReasoningBlocks: checked })
373
432
  }
374
- ) })
433
+ ) }),
434
+ /* @__PURE__ */ jsx(SettingsRow, { label: "Show search sources", children: /* @__PURE__ */ jsx(
435
+ Switch,
436
+ {
437
+ checked: settings.showSearchSources,
438
+ onCheckedChange: (checked) => updateSettings({ showSearchSources: checked })
439
+ }
440
+ ) }),
441
+ /* @__PURE__ */ jsx(
442
+ SettingsRow,
443
+ {
444
+ label: "Agent Manager (Beta)",
445
+ description: "Show Agent Manager in sidebar for creating and managing agents",
446
+ children: /* @__PURE__ */ jsx(
447
+ Switch,
448
+ {
449
+ checked: (() => {
450
+ try {
451
+ return localStorage.getItem("opencami-agent-manager") === "true";
452
+ } catch {
453
+ return false;
454
+ }
455
+ })(),
456
+ onCheckedChange: (checked) => {
457
+ localStorage.setItem("opencami-agent-manager", String(checked));
458
+ window.location.reload();
459
+ }
460
+ }
461
+ )
462
+ }
463
+ ),
464
+ /* @__PURE__ */ jsx(
465
+ SettingsRow,
466
+ {
467
+ label: "Inline File Preview",
468
+ description: "Make file paths in messages clickable to preview file contents",
469
+ children: /* @__PURE__ */ jsx(
470
+ Switch,
471
+ {
472
+ checked: settings.inlineFilePreview,
473
+ onCheckedChange: (checked) => updateSettings({ inlineFilePreview: checked })
474
+ }
475
+ )
476
+ }
477
+ )
375
478
  ] }),
376
479
  /* @__PURE__ */ jsxs(SettingsSection, { title: "Personas", children: [
377
480
  personasAvailable ? /* @__PURE__ */ jsx(
@@ -406,16 +509,76 @@ function SettingsDialog({
406
509
  }
407
510
  ) })
408
511
  ] }),
409
- /* @__PURE__ */ jsx(SettingsSection, { title: "Text-to-Speech", children: /* @__PURE__ */ jsx(
512
+ /* @__PURE__ */ jsxs(SettingsSection, { title: "Text-to-Speech", children: [
513
+ /* @__PURE__ */ jsx(
514
+ SettingsRow,
515
+ {
516
+ label: "Voice Playback",
517
+ description: "Add a 🔊 button to AI messages for text-to-speech",
518
+ children: /* @__PURE__ */ jsx(
519
+ Switch,
520
+ {
521
+ checked: ttsEnabled,
522
+ onCheckedChange: handleTtsToggle
523
+ }
524
+ )
525
+ }
526
+ ),
527
+ /* @__PURE__ */ jsx(
528
+ SettingsRow,
529
+ {
530
+ label: "TTS Provider",
531
+ description: "Choose which service generates speech",
532
+ children: /* @__PURE__ */ jsxs(
533
+ "select",
534
+ {
535
+ value: ttsProvider,
536
+ onChange: (e) => handleTtsProviderChange(e.target.value),
537
+ className: "rounded-md border border-primary-200 bg-surface px-2 py-1 text-sm focus:outline-none focus:ring-2 focus:ring-primary-500",
538
+ children: [
539
+ /* @__PURE__ */ jsx("option", { value: "auto", children: "Auto" }),
540
+ /* @__PURE__ */ jsx("option", { value: "elevenlabs", children: "ElevenLabs" }),
541
+ /* @__PURE__ */ jsx("option", { value: "openai", children: "OpenAI" }),
542
+ /* @__PURE__ */ jsx("option", { value: "edge", children: "Edge TTS (free)" })
543
+ ]
544
+ }
545
+ )
546
+ }
547
+ ),
548
+ ttsProvider === "openai" && /* @__PURE__ */ jsx(
549
+ SettingsRow,
550
+ {
551
+ label: "Voice",
552
+ description: "OpenAI voice selection",
553
+ children: /* @__PURE__ */ jsx(
554
+ "select",
555
+ {
556
+ value: ttsVoice,
557
+ onChange: (e) => handleTtsVoiceChange(e.target.value),
558
+ className: "rounded-md border border-primary-200 bg-surface px-2 py-1 text-sm focus:outline-none focus:ring-2 focus:ring-primary-500",
559
+ children: ["alloy", "echo", "fable", "onyx", "nova", "shimmer"].map((v) => /* @__PURE__ */ jsx("option", { value: v, children: v.charAt(0).toUpperCase() + v.slice(1) }, v))
560
+ }
561
+ )
562
+ }
563
+ )
564
+ ] }),
565
+ /* @__PURE__ */ jsx(SettingsSection, { title: "Speech-to-Text", children: /* @__PURE__ */ jsx(
410
566
  SettingsRow,
411
567
  {
412
- label: "Voice Playback",
413
- description: "Add a 🔊 button to AI messages for text-to-speech",
414
- children: /* @__PURE__ */ jsx(
415
- Switch,
568
+ label: "STT Provider",
569
+ description: "Choose which service transcribes your voice",
570
+ children: /* @__PURE__ */ jsxs(
571
+ "select",
416
572
  {
417
- checked: ttsEnabled,
418
- onCheckedChange: handleTtsToggle
573
+ value: sttProvider,
574
+ onChange: (e) => handleSttProviderChange(e.target.value),
575
+ className: "rounded-md border border-primary-200 bg-surface px-2 py-1 text-sm focus:outline-none focus:ring-2 focus:ring-primary-500",
576
+ children: [
577
+ /* @__PURE__ */ jsx("option", { value: "auto", children: "Auto" }),
578
+ /* @__PURE__ */ jsx("option", { value: "elevenlabs", children: "ElevenLabs" }),
579
+ /* @__PURE__ */ jsx("option", { value: "openai", children: "OpenAI" }),
580
+ /* @__PURE__ */ jsx("option", { value: "browser", children: "Browser (free)" })
581
+ ]
419
582
  }
420
583
  )
421
584
  }
@@ -0,0 +1,28 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { Switch as Switch$1 } from "@base-ui/react/switch";
3
+ import { c as cn } from "./button-DtQ3rV1m.js";
4
+ function Switch({ className, ...props }) {
5
+ return /* @__PURE__ */ jsx(
6
+ Switch$1.Root,
7
+ {
8
+ className: cn(
9
+ "inline-flex h-[calc(var(--thumb-size)+2px)] w-[calc(var(--thumb-size)*2-2px)] shrink-0 items-center rounded-full p-px outline-none transition-[background-color,box-shadow] duration-200 [--thumb-size:--spacing(5)] focus-visible:ring-2 focus-visible:ring-primary-950 focus-visible:ring-offset-1 focus-visible:ring-offset-background data-checked:bg-primary-900 data-unchecked:bg-primary-200 data-disabled:opacity-64 sm:[--thumb-size:--spacing(4)]",
10
+ className
11
+ ),
12
+ "data-slot": "switch",
13
+ ...props,
14
+ children: /* @__PURE__ */ jsx(
15
+ Switch$1.Thumb,
16
+ {
17
+ className: cn(
18
+ "pointer-events-none block aspect-square h-full origin-left in-[[role=switch]:active,[data-slot=label]:active]:not-data-disabled:scale-x-110 in-[[role=switch]:active,[data-slot=label]:active]:rounded-[var(--thumb-size)/calc(var(--thumb-size)*1.1)] rounded-(--thumb-size) bg-primary-50 shadow-sm/5 will-change-transform [transition:translate_.15s,border-radius_.15s,scale_.1s_.1s,transform-origin_.15s] data-checked:origin-[var(--thumb-size)_50%] data-checked:translate-x-[calc(var(--thumb-size)-4px)]"
19
+ ),
20
+ "data-slot": "switch-thumb"
21
+ }
22
+ )
23
+ }
24
+ );
25
+ }
26
+ export {
27
+ Switch as S
28
+ };
@@ -0,0 +1,60 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { Tooltip } from "@base-ui/react/tooltip";
3
+ import { c as cn } from "./button-DtQ3rV1m.js";
4
+ const defaultChatUiState = {
5
+ isSidebarCollapsed: false
6
+ };
7
+ const chatUiQueryKey = ["chat", "ui"];
8
+ function getChatUiState(queryClient) {
9
+ const cached = queryClient.getQueryData(chatUiQueryKey);
10
+ if (cached && typeof cached === "object") {
11
+ return {
12
+ ...defaultChatUiState,
13
+ ...cached
14
+ };
15
+ }
16
+ return defaultChatUiState;
17
+ }
18
+ function setChatUiState(queryClient, updater) {
19
+ queryClient.setQueryData(chatUiQueryKey, function update(state) {
20
+ const current = state && typeof state === "object" ? {
21
+ ...defaultChatUiState,
22
+ ...state
23
+ } : defaultChatUiState;
24
+ return updater(current);
25
+ });
26
+ }
27
+ function TooltipProvider({ children }) {
28
+ return /* @__PURE__ */ jsx(Tooltip.Provider, { delay: 0, closeDelay: 0, timeout: 0, children });
29
+ }
30
+ function TooltipRoot({ children, ...props }) {
31
+ return /* @__PURE__ */ jsx(Tooltip.Root, { ...props, children });
32
+ }
33
+ function TooltipTrigger({ className, ...props }) {
34
+ return /* @__PURE__ */ jsx(Tooltip.Trigger, { className: cn(className), ...props });
35
+ }
36
+ function TooltipContent({
37
+ className,
38
+ side = "top",
39
+ children
40
+ }) {
41
+ return /* @__PURE__ */ jsx(Tooltip.Portal, { children: /* @__PURE__ */ jsx(Tooltip.Positioner, { side, children: /* @__PURE__ */ jsx(
42
+ Tooltip.Popup,
43
+ {
44
+ className: cn(
45
+ "rounded-md border border-primary-900 bg-primary-950 px-2 py-1 text-xs text-primary-50 shadow-sm",
46
+ className
47
+ ),
48
+ children
49
+ }
50
+ ) }) });
51
+ }
52
+ export {
53
+ TooltipProvider as T,
54
+ TooltipRoot as a,
55
+ TooltipTrigger as b,
56
+ TooltipContent as c,
57
+ chatUiQueryKey as d,
58
+ getChatUiState as g,
59
+ setChatUiState as s
60
+ };
@@ -1,56 +1,8 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
- import { Tooltip } from "@base-ui/react/tooltip";
3
- import { c as cn, B as Button } from "./button-DtQ3rV1m.js";
4
2
  import { Dialog } from "@base-ui/react/dialog";
3
+ import { c as cn, B as Button } from "./button-DtQ3rV1m.js";
5
4
  import { Menu } from "@base-ui/react/menu";
6
- const defaultChatUiState = {
7
- isSidebarCollapsed: false
8
- };
9
- const chatUiQueryKey = ["chat", "ui"];
10
- function getChatUiState(queryClient) {
11
- const cached = queryClient.getQueryData(chatUiQueryKey);
12
- if (cached && typeof cached === "object") {
13
- return {
14
- ...defaultChatUiState,
15
- ...cached
16
- };
17
- }
18
- return defaultChatUiState;
19
- }
20
- function setChatUiState(queryClient, updater) {
21
- queryClient.setQueryData(chatUiQueryKey, function update(state) {
22
- const current = state && typeof state === "object" ? {
23
- ...defaultChatUiState,
24
- ...state
25
- } : defaultChatUiState;
26
- return updater(current);
27
- });
28
- }
29
- function TooltipProvider({ children }) {
30
- return /* @__PURE__ */ jsx(Tooltip.Provider, { delay: 0, closeDelay: 0, timeout: 0, children });
31
- }
32
- function TooltipRoot({ children, ...props }) {
33
- return /* @__PURE__ */ jsx(Tooltip.Root, { ...props, children });
34
- }
35
- function TooltipTrigger({ className, ...props }) {
36
- return /* @__PURE__ */ jsx(Tooltip.Trigger, { className: cn(className), ...props });
37
- }
38
- function TooltipContent({
39
- className,
40
- side = "top",
41
- children
42
- }) {
43
- return /* @__PURE__ */ jsx(Tooltip.Portal, { children: /* @__PURE__ */ jsx(Tooltip.Positioner, { side, children: /* @__PURE__ */ jsx(
44
- Tooltip.Popup,
45
- {
46
- className: cn(
47
- "rounded-md border border-primary-900 bg-primary-950 px-2 py-1 text-xs text-primary-50 shadow-sm",
48
- className
49
- ),
50
- children
51
- }
52
- ) }) });
53
- }
5
+ import { create } from "zustand";
54
6
  function DialogRoot({ children, ...props }) {
55
7
  return /* @__PURE__ */ jsx(Dialog.Root, { ...props, children });
56
8
  }
@@ -136,10 +88,62 @@ function MenuItem({ className, ...props }) {
136
88
  }
137
89
  );
138
90
  }
91
+ const useFileExplorerState = create((set, get) => ({
92
+ currentPath: "/",
93
+ viewMode: "list",
94
+ sortBy: "name",
95
+ sortAsc: true,
96
+ selectedFiles: /* @__PURE__ */ new Set(),
97
+ navigateTo: (path) => {
98
+ set({
99
+ currentPath: path,
100
+ selectedFiles: /* @__PURE__ */ new Set()
101
+ // Clear selection when navigating
102
+ });
103
+ },
104
+ setViewMode: (mode) => {
105
+ set({ viewMode: mode });
106
+ },
107
+ setSortBy: (sortBy) => {
108
+ const currentSortBy = get().sortBy;
109
+ set({
110
+ sortBy,
111
+ // If switching to the same sort, toggle direction
112
+ sortAsc: currentSortBy === sortBy ? !get().sortAsc : true
113
+ });
114
+ },
115
+ toggleSort: () => {
116
+ set((state) => ({ sortAsc: !state.sortAsc }));
117
+ },
118
+ selectFile: (path) => {
119
+ set((state) => {
120
+ const newSelection = new Set(state.selectedFiles);
121
+ newSelection.add(path);
122
+ return { selectedFiles: newSelection };
123
+ });
124
+ },
125
+ deselectFile: (path) => {
126
+ set((state) => {
127
+ const newSelection = new Set(state.selectedFiles);
128
+ newSelection.delete(path);
129
+ return { selectedFiles: newSelection };
130
+ });
131
+ },
132
+ clearSelection: () => {
133
+ set({ selectedFiles: /* @__PURE__ */ new Set() });
134
+ },
135
+ toggleFileSelection: (path) => {
136
+ const { selectedFiles, selectFile, deselectFile } = get();
137
+ if (selectedFiles.has(path)) {
138
+ deselectFile(path);
139
+ } else {
140
+ selectFile(path);
141
+ }
142
+ }
143
+ }));
139
144
  export {
140
145
  DialogRoot as D,
141
146
  MenuRoot as M,
142
- TooltipProvider as T,
143
147
  DialogContent as a,
144
148
  DialogTitle as b,
145
149
  DialogDescription as c,
@@ -147,10 +151,5 @@ export {
147
151
  MenuTrigger as e,
148
152
  MenuContent as f,
149
153
  MenuItem as g,
150
- TooltipRoot as h,
151
- TooltipTrigger as i,
152
- TooltipContent as j,
153
- chatUiQueryKey as k,
154
- getChatUiState as l,
155
- setChatUiState as s
154
+ useFileExplorerState as u
156
155
  };
@@ -184,7 +184,7 @@ function getResponse() {
184
184
  return event.res;
185
185
  }
186
186
  async function getStartManifest(matchedRoutes) {
187
- const { tsrStartManifest } = await import("./assets/_tanstack-start-manifest_v-El8F-kd-.js");
187
+ const { tsrStartManifest } = await import("./assets/_tanstack-start-manifest_v-cW8K1Mnv.js");
188
188
  const startManifest = tsrStartManifest();
189
189
  const rootRoute = startManifest.routes[rootRouteId] = startManifest.routes[rootRouteId] || {};
190
190
  rootRoute.assets = rootRoute.assets || [];
@@ -656,7 +656,7 @@ function getStartResponseHeaders(opts) {
656
656
  let entriesPromise;
657
657
  let manifestPromise;
658
658
  async function loadEntries() {
659
- const routerEntry = await import("./assets/router-DbxyvprK.js").then((n) => n.r);
659
+ const routerEntry = await import("./assets/router-5qObg5aX.js").then((n) => n.r);
660
660
  const startEntry = await import("./assets/start-HYkvq4Ni.js");
661
661
  return { startEntry, routerEntry };
662
662
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencami",
3
- "version": "1.0.1",
3
+ "version": "1.2.0",
4
4
  "type": "module",
5
5
  "description": "OpenCami - A beautiful web client for OpenClaw",
6
6
  "bin": {