@pi-chamber/web 0.1.8

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 (1152) hide show
  1. package/README.md +43 -0
  2. package/bin/cli-entry.js +55 -0
  3. package/bin/cli-output.js +140 -0
  4. package/bin/cli-output.test.js +36 -0
  5. package/bin/cli.js +383 -0
  6. package/bin/cli.test.js +1065 -0
  7. package/bin/lib/DOCUMENTATION.md +31 -0
  8. package/bin/lib/cli-api-target.js +74 -0
  9. package/bin/lib/cli-args.js +846 -0
  10. package/bin/lib/cli-errors.js +18 -0
  11. package/bin/lib/cli-http.js +252 -0
  12. package/bin/lib/cli-lifecycle.js +421 -0
  13. package/bin/lib/cli-log-files.js +93 -0
  14. package/bin/lib/cli-network.js +186 -0
  15. package/bin/lib/cli-paths.js +128 -0
  16. package/bin/lib/cli-ports.js +51 -0
  17. package/bin/lib/cli-process.js +342 -0
  18. package/bin/lib/cli-startup.js +371 -0
  19. package/bin/lib/cli-tunnel-capabilities.js +9 -0
  20. package/bin/lib/cli-tunnel-profiles.js +366 -0
  21. package/bin/lib/cli-tunnel-utils.js +300 -0
  22. package/bin/lib/commands-connect-url.js +329 -0
  23. package/bin/lib/commands-lifecycle.js +396 -0
  24. package/bin/lib/commands-logs.js +110 -0
  25. package/bin/lib/commands-serve.js +419 -0
  26. package/bin/lib/commands-startup.js +64 -0
  27. package/bin/lib/commands-status.js +114 -0
  28. package/bin/lib/commands-tunnel.js +1761 -0
  29. package/bin/lib/commands-update.js +184 -0
  30. package/bin/lib/commands-update.test.js +98 -0
  31. package/dist/apple-touch-icon-120x120.png +0 -0
  32. package/dist/apple-touch-icon-152x152.png +0 -0
  33. package/dist/apple-touch-icon-167x167.png +0 -0
  34. package/dist/apple-touch-icon-180x180.png +0 -0
  35. package/dist/apple-touch-icon.png +0 -0
  36. package/dist/apple-touch-icon.svg +13 -0
  37. package/dist/assets/CommitSection-DGGArAb2.js +1 -0
  38. package/dist/assets/DiagramEditor-ig5nYV6t.js +1 -0
  39. package/dist/assets/DiagramView-8Qr6pwwI.js +1 -0
  40. package/dist/assets/DiffView-BHS4m_K7.js +18 -0
  41. package/dist/assets/FilesView-DmZcdwl-.js +14 -0
  42. package/dist/assets/GitView-gfHxmc66.js +6 -0
  43. package/dist/assets/JsonTreeView-DbFqka3P.js +1 -0
  44. package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  45. package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  46. package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  47. package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  48. package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  49. package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  50. package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  51. package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  52. package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  53. package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  54. package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  55. package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  56. package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  57. package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  58. package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  59. package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  60. package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  61. package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  62. package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  63. package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  64. package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  65. package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  66. package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  67. package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  68. package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  69. package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  70. package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  71. package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  72. package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  73. package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  74. package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  75. package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  76. package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  77. package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  78. package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  79. package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  80. package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  81. package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  82. package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  83. package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  84. package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  85. package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  86. package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  87. package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  88. package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  89. package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  90. package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  91. package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  92. package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  93. package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  94. package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  95. package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  96. package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  97. package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  98. package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  99. package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  100. package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  101. package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  102. package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  103. package/dist/assets/MarkdownRendererImpl-B07lHhBl.js +12 -0
  104. package/dist/assets/PatchDiff-DD9pAs47.js +1 -0
  105. package/dist/assets/PierreDiffViewer-Bo0_BCT7.js +136 -0
  106. package/dist/assets/SessionSwitcherDropdown-t7WZX24f.js +1 -0
  107. package/dist/assets/SettingsView-CtsS4oDI.js +3 -0
  108. package/dist/assets/SettingsWindow-DIRGn3eQ.js +1 -0
  109. package/dist/assets/TerminalView-BV3KOtdA.css +1 -0
  110. package/dist/assets/TerminalView-DUwO1CCY.js +46 -0
  111. package/dist/assets/ToolOutputDialog-iZG2ey4T.js +15 -0
  112. package/dist/assets/ToolPartDiffPreview-FTexlZSz.js +8 -0
  113. package/dist/assets/VirtualizedFileDiff-DD5IznIe.js +10 -0
  114. package/dist/assets/Virtualizer-BxW2CJGB.js +1 -0
  115. package/dist/assets/abap-BdImnpbu.js +1 -0
  116. package/dist/assets/abap-Dg923wIy.js +1 -0
  117. package/dist/assets/actionscript-3-8WTK4YD2.js +1 -0
  118. package/dist/assets/actionscript-3-CoDkCxhg.js +1 -0
  119. package/dist/assets/ada-CTi7YQtL.js +1 -0
  120. package/dist/assets/ada-bCR0ucgS.js +1 -0
  121. package/dist/assets/andromeeda-C4gqWexZ.js +1 -0
  122. package/dist/assets/andromeeda-CT0vplkN.js +1 -0
  123. package/dist/assets/angular-html-CU67Zn6k.js +1 -0
  124. package/dist/assets/angular-html-D2R1pe45.js +1 -0
  125. package/dist/assets/angular-ts-BDmYQnhm.js +1 -0
  126. package/dist/assets/angular-ts-BwZT4LLn.js +1 -0
  127. package/dist/assets/apache-PcO-DBxQ.js +1 -0
  128. package/dist/assets/apache-Pmp26Uib.js +1 -0
  129. package/dist/assets/apex-CnCu5_gb.js +1 -0
  130. package/dist/assets/apex-D8_7TLub.js +1 -0
  131. package/dist/assets/apl-B4CMkyY2.js +1 -0
  132. package/dist/assets/apl-DkfyvC6M.js +1 -0
  133. package/dist/assets/apl-dKokRX4l.js +1 -0
  134. package/dist/assets/appThemeRegistry-BK0dHKa6.js +1 -0
  135. package/dist/assets/applescript-Co6uUVPk.js +1 -0
  136. package/dist/assets/applescript-Ds_W2jPS.js +1 -0
  137. package/dist/assets/ara-BRHolxvo.js +1 -0
  138. package/dist/assets/ara-C1--7J61.js +1 -0
  139. package/dist/assets/asciiarmor-Df11BRmG.js +1 -0
  140. package/dist/assets/asciidoc-Ve4PFQV2.js +1 -0
  141. package/dist/assets/asciidoc-nTfEFGxb.js +1 -0
  142. package/dist/assets/asm-CTFRnVOM.js +1 -0
  143. package/dist/assets/asm-D_Q5rh1f.js +1 -0
  144. package/dist/assets/asn1-EdZsLKOL.js +1 -0
  145. package/dist/assets/asterisk-B-8jnY81.js +1 -0
  146. package/dist/assets/astro-CbQHKStN.js +1 -0
  147. package/dist/assets/astro-DtPAdMss.js +1 -0
  148. package/dist/assets/aurora-x-C0VKFdlO.js +1 -0
  149. package/dist/assets/aurora-x-D-2ljcwZ.js +1 -0
  150. package/dist/assets/awk-CrWgQKhV.js +1 -0
  151. package/dist/assets/awk-DMzUqQB5.js +1 -0
  152. package/dist/assets/ayu-dark-DYE7WIF3.js +1 -0
  153. package/dist/assets/ayu-dark-wZ6ORhBL.js +1 -0
  154. package/dist/assets/ayu-light-BA47KaF1.js +1 -0
  155. package/dist/assets/ayu-light-xXLJ_Ch1.js +1 -0
  156. package/dist/assets/ayu-mirage-32ctXXKs.js +1 -0
  157. package/dist/assets/ayu-mirage-CQckA_sP.js +1 -0
  158. package/dist/assets/ballerina-BFfxhgS-.js +1 -0
  159. package/dist/assets/ballerina-a0yOSyc5.js +1 -0
  160. package/dist/assets/bat-B0cHNp6s.js +1 -0
  161. package/dist/assets/bat-BkioyH1T.js +1 -0
  162. package/dist/assets/beancount-dPJi_gci.js +1 -0
  163. package/dist/assets/beancount-k_qm7-4y.js +1 -0
  164. package/dist/assets/berry-CVKoklHx.js +1 -0
  165. package/dist/assets/berry-uYugtg8r.js +1 -0
  166. package/dist/assets/bibtex-CHM0blh-.js +1 -0
  167. package/dist/assets/bibtex-DRcCXNgM.js +1 -0
  168. package/dist/assets/bicep-Bmn6On1c.js +1 -0
  169. package/dist/assets/bicep-jWz-hQ8I.js +1 -0
  170. package/dist/assets/bird2-DPOp833l.js +1 -0
  171. package/dist/assets/bird2-DaGXIRGu.js +1 -0
  172. package/dist/assets/blade-D4QpJJKB.js +1 -0
  173. package/dist/assets/blade-QlWdzBxO.js +1 -0
  174. package/dist/assets/brainfuck-C4LP7Hcl.js +1 -0
  175. package/dist/assets/bsl-BO_Y6i37.js +1 -0
  176. package/dist/assets/bsl-jNujDQK2.js +1 -0
  177. package/dist/assets/c-BG-tZi7o.js +1 -0
  178. package/dist/assets/c-BIGW1oBm.js +1 -0
  179. package/dist/assets/c3-Fcb8_HKm.js +1 -0
  180. package/dist/assets/c3-eo99z4R2.js +1 -0
  181. package/dist/assets/cadence-BuaeHeSu.js +1 -0
  182. package/dist/assets/cadence-Bv_4Rxtq.js +1 -0
  183. package/dist/assets/cairo-BYiDgOF2.js +1 -0
  184. package/dist/assets/cairo-KRGpt6FW.js +1 -0
  185. package/dist/assets/catppuccin-frappe-CfssSZMA.js +1 -0
  186. package/dist/assets/catppuccin-frappe-DFWUc33u.js +1 -0
  187. package/dist/assets/catppuccin-latte-C9dUb6Cb.js +1 -0
  188. package/dist/assets/catppuccin-latte-DoBaWTGn.js +1 -0
  189. package/dist/assets/catppuccin-macchiato-BkAuvdZC.js +1 -0
  190. package/dist/assets/catppuccin-macchiato-DQyhUUbL.js +1 -0
  191. package/dist/assets/catppuccin-mocha-D87Tk5Gz.js +1 -0
  192. package/dist/assets/catppuccin-mocha-D9fcC0iT.js +1 -0
  193. package/dist/assets/clarity-CC_0IFDj.js +1 -0
  194. package/dist/assets/clarity-D53aC0YG.js +1 -0
  195. package/dist/assets/clike-B9uivgTg.js +1 -0
  196. package/dist/assets/clojure-BMjYHr_A.js +1 -0
  197. package/dist/assets/clojure-KnfDkB_V.js +1 -0
  198. package/dist/assets/clojure-P80f7IUj.js +1 -0
  199. package/dist/assets/cmake-BQqOBYOt.js +1 -0
  200. package/dist/assets/cmake-D1j8_8rp.js +1 -0
  201. package/dist/assets/cmake-bh2MLnkv.js +1 -0
  202. package/dist/assets/cobol-CWcv1MsR.js +1 -0
  203. package/dist/assets/cobol-dIXRVV9Y.js +1 -0
  204. package/dist/assets/cobol-nwyudZeR.js +1 -0
  205. package/dist/assets/codeowners-Bp6g37R7.js +1 -0
  206. package/dist/assets/codeowners-CtwIM3TN.js +1 -0
  207. package/dist/assets/codeql-D164juXQ.js +1 -0
  208. package/dist/assets/codeql-DsOJ9woJ.js +1 -0
  209. package/dist/assets/coffee-Bk-z6oI_.js +1 -0
  210. package/dist/assets/coffee-Ch7k5sss.js +1 -0
  211. package/dist/assets/coffeescript-S37ZYGWr.js +1 -0
  212. package/dist/assets/collapsible-ODWWxk4f.js +1 -0
  213. package/dist/assets/common-lisp-Cg-RD9OK.js +1 -0
  214. package/dist/assets/common-lisp-DXc9XcIM.js +1 -0
  215. package/dist/assets/commonlisp-DBKNyK5s.js +1 -0
  216. package/dist/assets/computeVirtualFileMetrics-DdXkLFAD.js +3 -0
  217. package/dist/assets/contextFileOpenGuard-uC4OerzL.js +1 -0
  218. package/dist/assets/coq-BBL5-mG4.js +1 -0
  219. package/dist/assets/coq-DkFqJrB1.js +1 -0
  220. package/dist/assets/cpp-C0lzDePx.js +1 -0
  221. package/dist/assets/cpp-CofmeUqb.js +1 -0
  222. package/dist/assets/crystal-Bhade0k2.js +1 -0
  223. package/dist/assets/crystal-SjHAIU92.js +1 -0
  224. package/dist/assets/crystal-tKQVLTB8.js +1 -0
  225. package/dist/assets/csharp-B7nLXyi8.js +1 -0
  226. package/dist/assets/csharp-COcwbKMJ.js +1 -0
  227. package/dist/assets/css-BnMrqG3P.js +1 -0
  228. package/dist/assets/css-DPfMkruS.js +1 -0
  229. package/dist/assets/css-PZBBrkI0.js +1 -0
  230. package/dist/assets/csv-D5aBhKLr.js +1 -0
  231. package/dist/assets/csv-fuZLfV_i.js +1 -0
  232. package/dist/assets/cue-D82EKSYY.js +1 -0
  233. package/dist/assets/cue-WCin6O4e.js +1 -0
  234. package/dist/assets/cypher-COkxafJQ.js +1 -0
  235. package/dist/assets/cypher-C_CwsFkJ.js +1 -0
  236. package/dist/assets/cypher-DYQk2G82.js +1 -0
  237. package/dist/assets/d-85-TOEBH.js +1 -0
  238. package/dist/assets/d-DVc-yF-l.js +1 -0
  239. package/dist/assets/d-pRatUO7H.js +1 -0
  240. package/dist/assets/dark-plus-C3mMm8J8.js +1 -0
  241. package/dist/assets/dark-plus-DLU5INA3.js +1 -0
  242. package/dist/assets/dart-CF10PKvl.js +1 -0
  243. package/dist/assets/dart-YLd5yyRs.js +1 -0
  244. package/dist/assets/dax-CEL-wOlO.js +1 -0
  245. package/dist/assets/dax-oldcCaJg.js +1 -0
  246. package/dist/assets/desktop-BmXAJ9_W.js +1 -0
  247. package/dist/assets/desktop-DZfyBMgF.js +1 -0
  248. package/dist/assets/diff-D97Zzqfu.js +1 -0
  249. package/dist/assets/diff-DbItnlRl.js +1 -0
  250. package/dist/assets/diff-jW5kmiru.js +1 -0
  251. package/dist/assets/docker-BcOcwvcX.js +1 -0
  252. package/dist/assets/docker-DG9neUKd.js +1 -0
  253. package/dist/assets/dockerfile-BKs6k2Af.js +1 -0
  254. package/dist/assets/document-attachments-BslE4Ns7.js +30 -0
  255. package/dist/assets/dotenv-Bea-FkXq.js +1 -0
  256. package/dist/assets/dotenv-Da5cRb03.js +1 -0
  257. package/dist/assets/dracula-BzJJZx-M.js +1 -0
  258. package/dist/assets/dracula-XcYHBZy6.js +1 -0
  259. package/dist/assets/dracula-soft-BPeX9gxW.js +1 -0
  260. package/dist/assets/dracula-soft-BXkSAIEj.js +1 -0
  261. package/dist/assets/dream-maker-BtqSS_iP.js +1 -0
  262. package/dist/assets/dream-maker-DAHQwpwp.js +1 -0
  263. package/dist/assets/dtd-DF_7sFjM.js +1 -0
  264. package/dist/assets/dylan-DwRh75JA.js +1 -0
  265. package/dist/assets/ebnf-CDyGwa7X.js +1 -0
  266. package/dist/assets/ecl-Cabwm37j.js +1 -0
  267. package/dist/assets/edge-BkV0erSs.js +1 -0
  268. package/dist/assets/edge-zt3dU95k.js +1 -0
  269. package/dist/assets/eiffel-CnydiIhH.js +1 -0
  270. package/dist/assets/elixir-CDX3lj18.js +1 -0
  271. package/dist/assets/elixir-JolcG37e.js +1 -0
  272. package/dist/assets/elm-BjIDgKzz.js +1 -0
  273. package/dist/assets/elm-DbKCFpqz.js +1 -0
  274. package/dist/assets/elm-vLlmbW-K.js +1 -0
  275. package/dist/assets/emacs-lisp-C9XAeP06.js +1 -0
  276. package/dist/assets/emacs-lisp-DMBh55R4.js +1 -0
  277. package/dist/assets/erb-B12qg9BL.js +1 -0
  278. package/dist/assets/erb-rsjdL4fB.js +1 -0
  279. package/dist/assets/erlang-BNw1qcRV.js +1 -0
  280. package/dist/assets/erlang-DNeY46SW.js +1 -0
  281. package/dist/assets/erlang-DsQrWhSR.js +1 -0
  282. package/dist/assets/everforest-dark-BgDCqdQA.js +1 -0
  283. package/dist/assets/everforest-dark-WOub3wle.js +1 -0
  284. package/dist/assets/everforest-light-C8M2exoo.js +1 -0
  285. package/dist/assets/everforest-light-DCUg8VH8.js +1 -0
  286. package/dist/assets/factor-kuTfRLto.js +1 -0
  287. package/dist/assets/fcl-Kvtd6kyn.js +1 -0
  288. package/dist/assets/fennel-BYunw83y.js +1 -0
  289. package/dist/assets/fennel-DBMsxtrh.js +1 -0
  290. package/dist/assets/fish-BvzEVeQv.js +1 -0
  291. package/dist/assets/fish-BxskpYPN.js +1 -0
  292. package/dist/assets/fluent-Bwo2XpEt.js +1 -0
  293. package/dist/assets/fluent-C4IJs8-o.js +1 -0
  294. package/dist/assets/forth-Ffai-XNe.js +1 -0
  295. package/dist/assets/fortran-DYz_wnZ1.js +1 -0
  296. package/dist/assets/fortran-fixed-form-CkoXwp7k.js +1 -0
  297. package/dist/assets/fortran-fixed-form-DFFnVrrY.js +1 -0
  298. package/dist/assets/fortran-free-form-BxgE0vQu.js +1 -0
  299. package/dist/assets/fortran-free-form-DB5N_DgY.js +1 -0
  300. package/dist/assets/fsharp-CXgrBDvD.js +1 -0
  301. package/dist/assets/fsharp-DRAF1jsN.js +1 -0
  302. package/dist/assets/gas-Bneqetm1.js +1 -0
  303. package/dist/assets/gdresource-BD-1uzY7.js +1 -0
  304. package/dist/assets/gdresource-BOOCDP_w.js +1 -0
  305. package/dist/assets/gdscript-C3mT4Uym.js +1 -0
  306. package/dist/assets/gdscript-C5YyOfLZ.js +1 -0
  307. package/dist/assets/gdshader-DkwncUOv.js +1 -0
  308. package/dist/assets/gdshader-G7X6ysY3.js +1 -0
  309. package/dist/assets/genie-D0YGMca9.js +1 -0
  310. package/dist/assets/genie-DSsjfZMX.js +1 -0
  311. package/dist/assets/gherkin-Cl2Fw-_0.js +1 -0
  312. package/dist/assets/gherkin-DyxjwDmM.js +1 -0
  313. package/dist/assets/gherkin-heZmZLOM.js +1 -0
  314. package/dist/assets/git-commit-CJPsQObV.js +1 -0
  315. package/dist/assets/git-commit-F4YmCXRG.js +1 -0
  316. package/dist/assets/git-rebase-DeZqv4fp.js +1 -0
  317. package/dist/assets/git-rebase-r7XF79zn.js +1 -0
  318. package/dist/assets/github-dark-BQV5ugrc.js +1 -0
  319. package/dist/assets/github-dark-DHJKELXO.js +1 -0
  320. package/dist/assets/github-dark-default-Cuk6v7N8.js +1 -0
  321. package/dist/assets/github-dark-default-DLWDM7FH.js +1 -0
  322. package/dist/assets/github-dark-dimmed-D1FmiR_p.js +1 -0
  323. package/dist/assets/github-dark-dimmed-DH5Ifo-i.js +1 -0
  324. package/dist/assets/github-dark-high-contrast-BilLoi0o.js +1 -0
  325. package/dist/assets/github-dark-high-contrast-E3gJ1_iC.js +1 -0
  326. package/dist/assets/github-light-DAi9KRSo.js +1 -0
  327. package/dist/assets/github-light-Rcb2q3L5.js +1 -0
  328. package/dist/assets/github-light-default-CQ75esMw.js +1 -0
  329. package/dist/assets/github-light-default-D7oLnXFd.js +1 -0
  330. package/dist/assets/github-light-high-contrast-BfjtVDDH.js +1 -0
  331. package/dist/assets/github-light-high-contrast-CRF1wyLy.js +1 -0
  332. package/dist/assets/gleam-BeBqoPwE.js +1 -0
  333. package/dist/assets/gleam-BspZqrRM.js +1 -0
  334. package/dist/assets/glimmer-js-BuyKUjfV.js +1 -0
  335. package/dist/assets/glimmer-js-Rg0-pVw9.js +1 -0
  336. package/dist/assets/glimmer-ts-D9iniPFN.js +1 -0
  337. package/dist/assets/glimmer-ts-U6CK756n.js +1 -0
  338. package/dist/assets/glsl-BOG9l2nV.js +1 -0
  339. package/dist/assets/glsl-DplSGwfg.js +1 -0
  340. package/dist/assets/gn-Dxr0sSUf.js +1 -0
  341. package/dist/assets/gn-n2N0HUVH.js +1 -0
  342. package/dist/assets/gnuplot-CtW3R_Hz.js +1 -0
  343. package/dist/assets/gnuplot-DdkO51Og.js +1 -0
  344. package/dist/assets/go-BBr2UQCn.js +1 -0
  345. package/dist/assets/go-CxLEBnE3.js +1 -0
  346. package/dist/assets/graphql-B6XHM4uj.js +1 -0
  347. package/dist/assets/graphql-ChdNCCLP.js +1 -0
  348. package/dist/assets/groovy-D9Dt4D0W.js +1 -0
  349. package/dist/assets/groovy-DFxE31Qs.js +1 -0
  350. package/dist/assets/groovy-gcz8RCvz.js +1 -0
  351. package/dist/assets/gruvbox-dark-hard-C37G1gbc.js +1 -0
  352. package/dist/assets/gruvbox-dark-hard-CFHQjOhq.js +1 -0
  353. package/dist/assets/gruvbox-dark-medium-C3G9m3TV.js +1 -0
  354. package/dist/assets/gruvbox-dark-medium-GsRaNv29.js +1 -0
  355. package/dist/assets/gruvbox-dark-soft-CVdnzihN.js +1 -0
  356. package/dist/assets/gruvbox-dark-soft-eZmcmZ9I.js +1 -0
  357. package/dist/assets/gruvbox-light-hard-BYj-vz_3.js +1 -0
  358. package/dist/assets/gruvbox-light-hard-CH1njM8p.js +1 -0
  359. package/dist/assets/gruvbox-light-medium-BdQlDiiF.js +1 -0
  360. package/dist/assets/gruvbox-light-medium-DRw_LuNl.js +1 -0
  361. package/dist/assets/gruvbox-light-soft-BGNwjiRh.js +1 -0
  362. package/dist/assets/gruvbox-light-soft-hJgmCMqR.js +1 -0
  363. package/dist/assets/hack-CaT9iCJl.js +1 -0
  364. package/dist/assets/hack-Cxa-FaZ4.js +1 -0
  365. package/dist/assets/haml-2e0EI6Is.js +1 -0
  366. package/dist/assets/haml-B8DHNrY2.js +1 -0
  367. package/dist/assets/handlebars-BL8al0AC.js +1 -0
  368. package/dist/assets/handlebars-CojHdNmS.js +1 -0
  369. package/dist/assets/haskell-BfdhR_WN.js +1 -0
  370. package/dist/assets/haskell-Cw1EW3IL.js +1 -0
  371. package/dist/assets/haskell-Df6bDoY_.js +1 -0
  372. package/dist/assets/haxe-CzTSHFRz.js +1 -0
  373. package/dist/assets/haxe-DVIybFAS.js +1 -0
  374. package/dist/assets/haxe-H-WmDvRZ.js +1 -0
  375. package/dist/assets/hcl-B6OePqme.js +1 -0
  376. package/dist/assets/hcl-BWvSN4gD.js +1 -0
  377. package/dist/assets/hjson-D2jn7IRw.js +1 -0
  378. package/dist/assets/hjson-D5-asLiD.js +1 -0
  379. package/dist/assets/hlsl-D3lLCCz7.js +1 -0
  380. package/dist/assets/hlsl-MKeth5V9.js +1 -0
  381. package/dist/assets/horizon-BUw7H-hv.js +1 -0
  382. package/dist/assets/horizon-bright-Cn-bp-IR.js +1 -0
  383. package/dist/assets/horizon-bright-CoQRYDvy.js +1 -0
  384. package/dist/assets/horizon-cslQss18.js +1 -0
  385. package/dist/assets/houston-DnULxvSX.js +1 -0
  386. package/dist/assets/houston-RHIKkNfR.js +1 -0
  387. package/dist/assets/html-DOf0XnR2.js +1 -0
  388. package/dist/assets/html-GMplVEZG.js +1 -0
  389. package/dist/assets/html-derivative-BFtXZ54Q.js +1 -0
  390. package/dist/assets/html-derivative-DfCZ6Hio.js +1 -0
  391. package/dist/assets/http-CG3jvXcS.js +1 -0
  392. package/dist/assets/http-DBlCnlav.js +1 -0
  393. package/dist/assets/http-jrhK8wxY.js +1 -0
  394. package/dist/assets/hurl-CxQrh4RI.js +1 -0
  395. package/dist/assets/hurl-irOxFIW8.js +1 -0
  396. package/dist/assets/hxml-Bvhsp5Yf.js +1 -0
  397. package/dist/assets/hxml-CkS3Eie7.js +1 -0
  398. package/dist/assets/hy-DFXneXwc.js +1 -0
  399. package/dist/assets/hy-DI6mCUnw.js +1 -0
  400. package/dist/assets/idl-BEugSyMb.js +1 -0
  401. package/dist/assets/imba-D-Pk5S0X.js +1 -0
  402. package/dist/assets/imba-DGztddWO.js +1 -0
  403. package/dist/assets/index-CRB7i1S2.js +8 -0
  404. package/dist/assets/index-C_Mo87uS.css +1 -0
  405. package/dist/assets/index-MSKFS67y.js +1 -0
  406. package/dist/assets/ini-BEwlwnbL.js +1 -0
  407. package/dist/assets/ini-Dix3pTmg.js +1 -0
  408. package/dist/assets/isDiffPlainText-CeCQwHA2.js +1 -0
  409. package/dist/assets/isFilePlainText-BcfhE9FH.js +1 -0
  410. package/dist/assets/java-BTDmaRNO.js +1 -0
  411. package/dist/assets/java-CylS5w8V.js +1 -0
  412. package/dist/assets/javascript-BO_2ioGC.js +1 -0
  413. package/dist/assets/javascript-WyGyM1wV.js +1 -0
  414. package/dist/assets/javascript-wDzz0qaB.js +1 -0
  415. package/dist/assets/jinja-4LBKfQ-Z.js +1 -0
  416. package/dist/assets/jinja-D0mZ3q2r.js +1 -0
  417. package/dist/assets/jison-B9XHrcYJ.js +1 -0
  418. package/dist/assets/jison-wvAkD_A8.js +1 -0
  419. package/dist/assets/json-B8JryHcM.js +1 -0
  420. package/dist/assets/json-Cp-IABpG.js +1 -0
  421. package/dist/assets/json5-C9tS-k6U.js +1 -0
  422. package/dist/assets/json5-Cdatmj9n.js +1 -0
  423. package/dist/assets/jsonc-CvUCa1o5.js +1 -0
  424. package/dist/assets/jsonc-Des-eS-w.js +1 -0
  425. package/dist/assets/jsonl-9I_GBd5L.js +1 -0
  426. package/dist/assets/jsonl-DcaNXYhu.js +1 -0
  427. package/dist/assets/jsonnet-DFQXde-d.js +1 -0
  428. package/dist/assets/jsonnet-XoenQ2oc.js +1 -0
  429. package/dist/assets/jssm-C2t-YnRu.js +1 -0
  430. package/dist/assets/jssm-CWE2S0Z5.js +1 -0
  431. package/dist/assets/jsx-8cLv2Six.js +1 -0
  432. package/dist/assets/jsx-g9-lgVsj.js +1 -0
  433. package/dist/assets/julia-C1oINnwa.js +1 -0
  434. package/dist/assets/julia-CxzCAyBv.js +1 -0
  435. package/dist/assets/julia-DuME0IfC.js +1 -0
  436. package/dist/assets/just-Bo3fV9RY.js +1 -0
  437. package/dist/assets/just-Cw27pwNe.js +1 -0
  438. package/dist/assets/kanagawa-dragon-BOvIHJVT.js +1 -0
  439. package/dist/assets/kanagawa-dragon-CkXjmgJE.js +1 -0
  440. package/dist/assets/kanagawa-lotus-Bwcd7Bvx.js +1 -0
  441. package/dist/assets/kanagawa-lotus-CfQXZHmo.js +1 -0
  442. package/dist/assets/kanagawa-wave-0SAlpf0s.js +1 -0
  443. package/dist/assets/kanagawa-wave-DWedfzmr.js +1 -0
  444. package/dist/assets/kdl-CMbyIXjQ.js +1 -0
  445. package/dist/assets/kdl-DV7GczEv.js +1 -0
  446. package/dist/assets/kimi-for-coding-eVEHug_h.svg +3 -0
  447. package/dist/assets/kotlin-BQy537ds.js +1 -0
  448. package/dist/assets/kotlin-BdnUsdx6.js +1 -0
  449. package/dist/assets/kusto-B_y0uMaZ.js +1 -0
  450. package/dist/assets/kusto-DZf3V79B.js +1 -0
  451. package/dist/assets/laserwave-DUszq2jm.js +1 -0
  452. package/dist/assets/laserwave-si7wuSrt.js +1 -0
  453. package/dist/assets/latex-CWtU0Tv5.js +1 -0
  454. package/dist/assets/latex-CZAhoKip.js +1 -0
  455. package/dist/assets/lean-BZvkOJ9d.js +1 -0
  456. package/dist/assets/lean-C4RHkN41.js +1 -0
  457. package/dist/assets/less-B1dDrJ26.js +1 -0
  458. package/dist/assets/less-XNfgnZC7.js +1 -0
  459. package/dist/assets/light-plus-B7mTdjB0.js +1 -0
  460. package/dist/assets/light-plus-g_Fi9vkG.js +1 -0
  461. package/dist/assets/liquid-DFlqVvG0.js +1 -0
  462. package/dist/assets/liquid-DYVedYrR.js +1 -0
  463. package/dist/assets/livescript-BwQOo05w.js +1 -0
  464. package/dist/assets/llmapi-detailed-Pup_107f.svg +28 -0
  465. package/dist/assets/llvm-BJRUtCev.js +1 -0
  466. package/dist/assets/llvm-DjAJT7YJ.js +1 -0
  467. package/dist/assets/log-2UxHyX5q.js +1 -0
  468. package/dist/assets/log-CcaF_xNv.js +1 -0
  469. package/dist/assets/logo-BtOb2qkB.js +1 -0
  470. package/dist/assets/logo-D9WQLoKQ.js +1 -0
  471. package/dist/assets/lua-8Av-h-ns.js +1 -0
  472. package/dist/assets/lua-BaeVxFsk.js +1 -0
  473. package/dist/assets/lua-BgMRiT3U.js +1 -0
  474. package/dist/assets/luau-BTSFCcFb.js +1 -0
  475. package/dist/assets/luau-C-HG3fhB.js +1 -0
  476. package/dist/assets/main-CPygRDd9.js +134 -0
  477. package/dist/assets/main-DZg4qzOe.js +2 -0
  478. package/dist/assets/make-CHLpvVh8.js +1 -0
  479. package/dist/assets/make-DXVx14cr.js +1 -0
  480. package/dist/assets/markdown-Cvjx9yec.js +1 -0
  481. package/dist/assets/markdown-DX-TNHnc.js +1 -0
  482. package/dist/assets/markdown-shiki.worker-DnvH1S1x.js +12 -0
  483. package/dist/assets/markdownCore-BULtt6Xa.js +2 -0
  484. package/dist/assets/marko-CnJfTvn9.js +1 -0
  485. package/dist/assets/marko-DiIoNBFw.js +1 -0
  486. package/dist/assets/material-theme-CIJ3cGaW.js +1 -0
  487. package/dist/assets/material-theme-D5KoaKCx.js +1 -0
  488. package/dist/assets/material-theme-darker-BWg3m1GB.js +1 -0
  489. package/dist/assets/material-theme-darker-BfHTSMKl.js +1 -0
  490. package/dist/assets/material-theme-lighter-B0m2ddpp.js +1 -0
  491. package/dist/assets/material-theme-lighter-DR8HWMN7.js +1 -0
  492. package/dist/assets/material-theme-ocean-CZf9pk28.js +1 -0
  493. package/dist/assets/material-theme-ocean-CyktbL80.js +1 -0
  494. package/dist/assets/material-theme-palenight-BF01YeZy.js +1 -0
  495. package/dist/assets/material-theme-palenight-Csfq5Kiy.js +1 -0
  496. package/dist/assets/mathematica-DTrFuWx2.js +1 -0
  497. package/dist/assets/matlab-D7o27uSR.js +1 -0
  498. package/dist/assets/matlab-DzreyMvm.js +1 -0
  499. package/dist/assets/mbox-CNhZ1qSd.js +1 -0
  500. package/dist/assets/mdc-BMNejdWA.js +1 -0
  501. package/dist/assets/mdc-D_DpLax5.js +1 -0
  502. package/dist/assets/mdx-C2fqO2XY.js +1 -0
  503. package/dist/assets/mdx-Cmh6b_Ma.js +1 -0
  504. package/dist/assets/mermaid-Cwy4Up_p.js +1 -0
  505. package/dist/assets/mermaid-mWjccvbQ.js +1 -0
  506. package/dist/assets/min-dark-CafNBF8u.js +1 -0
  507. package/dist/assets/min-dark-DhfaepVE.js +1 -0
  508. package/dist/assets/min-light-6xx0uMgm.js +1 -0
  509. package/dist/assets/min-light-CTRr51gU.js +1 -0
  510. package/dist/assets/miniChat-BFotDgpO.js +2 -0
  511. package/dist/assets/mipsasm-CKIfxQSi.js +1 -0
  512. package/dist/assets/mipsasm-yE_Aqo9y.js +1 -0
  513. package/dist/assets/mirc-CjQqDB4T.js +1 -0
  514. package/dist/assets/mllike-BO34x3tv.js +1 -0
  515. package/dist/assets/mobile-3LLzhN5Q.js +2 -0
  516. package/dist/assets/modelica-Dc1JOy9r.js +1 -0
  517. package/dist/assets/mojo-M6pJPbMk.js +1 -0
  518. package/dist/assets/mojo-rZm6bMo-.js +1 -0
  519. package/dist/assets/monokai-BodnsaDQ.js +1 -0
  520. package/dist/assets/monokai-D4h5O-jR.js +1 -0
  521. package/dist/assets/moonbit-CR8uFLGd.js +1 -0
  522. package/dist/assets/moonbit-_H4v1dQx.js +1 -0
  523. package/dist/assets/move-CyYMWVy5.js +1 -0
  524. package/dist/assets/move-IF9eRakj.js +1 -0
  525. package/dist/assets/mscgen-BA5vi2Kp.js +1 -0
  526. package/dist/assets/mumps-BT43cFF4.js +1 -0
  527. package/dist/assets/narrat-DRg8JJMk.js +1 -0
  528. package/dist/assets/narrat-DXUZ_ZkW.js +1 -0
  529. package/dist/assets/nextflow-BPolriEg.js +1 -0
  530. package/dist/assets/nextflow-Zz6hmt5N.js +1 -0
  531. package/dist/assets/nextflow-groovy-BeH2EWoN.js +1 -0
  532. package/dist/assets/nextflow-groovy-pQRwk_Jg.js +1 -0
  533. package/dist/assets/nginx-BpAMiNFr.js +1 -0
  534. package/dist/assets/nginx-DSXkacNc.js +1 -0
  535. package/dist/assets/nginx-DdIZxoE0.js +1 -0
  536. package/dist/assets/night-owl-C39BiMTA.js +1 -0
  537. package/dist/assets/night-owl-EdP2Hztp.js +1 -0
  538. package/dist/assets/night-owl-light-Bk-lYVyk.js +1 -0
  539. package/dist/assets/night-owl-light-CMTm3GFP.js +1 -0
  540. package/dist/assets/nim-CVrawwO9.js +1 -0
  541. package/dist/assets/nim-e2z2kCcq.js +1 -0
  542. package/dist/assets/nix-Ckjrpg0r.js +1 -0
  543. package/dist/assets/nix-CwoSXNpI.js +1 -0
  544. package/dist/assets/nord-BAu0wM6c.js +1 -0
  545. package/dist/assets/nord-Ddv68eIx.js +1 -0
  546. package/dist/assets/nsis-LdVXkNf5.js +1 -0
  547. package/dist/assets/ntriples-BfvgReVJ.js +1 -0
  548. package/dist/assets/nushell-Cz2AlsmD.js +1 -0
  549. package/dist/assets/nushell-DtHLcZf1.js +1 -0
  550. package/dist/assets/objective-c-BoaBTdtz.js +1 -0
  551. package/dist/assets/objective-c-DXmwc3jG.js +1 -0
  552. package/dist/assets/objective-cpp-CLxacb5B.js +1 -0
  553. package/dist/assets/objective-cpp-DstR8hNy.js +1 -0
  554. package/dist/assets/ocaml-C0hk2d4L.js +1 -0
  555. package/dist/assets/ocaml-DTbn2Hv7.js +1 -0
  556. package/dist/assets/octave-CWZ4xMHY.js +1 -0
  557. package/dist/assets/odin-BBf5iR-q.js +1 -0
  558. package/dist/assets/odin-Bxc4S6Xn.js +1 -0
  559. package/dist/assets/one-dark-pro-DVMEJ2y_.js +1 -0
  560. package/dist/assets/one-dark-pro-utPxbBbJ.js +1 -0
  561. package/dist/assets/one-light-BuCQ22aO.js +1 -0
  562. package/dist/assets/one-light-C3Wv6jpd.js +1 -0
  563. package/dist/assets/openscad-C4EeE6gA.js +1 -0
  564. package/dist/assets/openscad-CXHpNBsb.js +1 -0
  565. package/dist/assets/oz-BzwKVEFT.js +1 -0
  566. package/dist/assets/pascal--L3eBynH.js +1 -0
  567. package/dist/assets/pascal-D93ZcfNL.js +1 -0
  568. package/dist/assets/pascal-Sr-XLSE6.js +1 -0
  569. package/dist/assets/perl-C0TMdlhV.js +1 -0
  570. package/dist/assets/perl-C95KruZl.js +1 -0
  571. package/dist/assets/perl-CdXCOZ3F.js +1 -0
  572. package/dist/assets/permissionStore-BRcQ9Jgt.js +1 -0
  573. package/dist/assets/php-B4Kqya17.js +1 -0
  574. package/dist/assets/php-Dhbhpdrm.js +1 -0
  575. package/dist/assets/pig-CevX1Tat.js +1 -0
  576. package/dist/assets/pkl-CRusufhw.js +1 -0
  577. package/dist/assets/pkl-u5AG7uiY.js +1 -0
  578. package/dist/assets/plastic-3e1v2bzS.js +1 -0
  579. package/dist/assets/plastic-CXnNNlFZ.js +1 -0
  580. package/dist/assets/plsql-ChMvpjG-.js +1 -0
  581. package/dist/assets/plsql-Dbm3tV2N.js +1 -0
  582. package/dist/assets/po-BTJTHyun.js +1 -0
  583. package/dist/assets/po-LG0lFwH4.js +1 -0
  584. package/dist/assets/poimandres-BrOVMvuE.js +1 -0
  585. package/dist/assets/poimandres-CS3Unz2-.js +1 -0
  586. package/dist/assets/polar-C0HS_06l.js +1 -0
  587. package/dist/assets/polar-DjOs3GWb.js +1 -0
  588. package/dist/assets/postcss-CXtECtnM.js +1 -0
  589. package/dist/assets/postcss-GRRkWn2F.js +1 -0
  590. package/dist/assets/powerquery-CEu0bR-o.js +1 -0
  591. package/dist/assets/powerquery-DHf-dtTS.js +1 -0
  592. package/dist/assets/powershell-CFHJl5sT.js +1 -0
  593. package/dist/assets/powershell-DXrKVo3G.js +1 -0
  594. package/dist/assets/powershell-Dpen1YoG.js +1 -0
  595. package/dist/assets/prisma-Dd19v3D-.js +1 -0
  596. package/dist/assets/prisma-Dgf8IN_C.js +1 -0
  597. package/dist/assets/prolog-9JcfiY6I.js +1 -0
  598. package/dist/assets/prolog-CbFg5uaA.js +1 -0
  599. package/dist/assets/properties-C78fOPTZ.js +1 -0
  600. package/dist/assets/proto-C7zT0LnQ.js +1 -0
  601. package/dist/assets/proto-dqx_Sj2i.js +1 -0
  602. package/dist/assets/protobuf-ChK-085T.js +1 -0
  603. package/dist/assets/pug-CGlum2m_.js +1 -0
  604. package/dist/assets/pug-CIGw5rlb.js +1 -0
  605. package/dist/assets/pug-CoOVtr4u.js +1 -0
  606. package/dist/assets/puppet-BMWR74SV.js +1 -0
  607. package/dist/assets/puppet-DMA9R1ak.js +1 -0
  608. package/dist/assets/puppet-Di57VbSS.js +1 -0
  609. package/dist/assets/purescript-BgpM7rDH.js +1 -0
  610. package/dist/assets/purescript-CklMAg4u.js +1 -0
  611. package/dist/assets/python-B6Ihcp-E.js +1 -0
  612. package/dist/assets/python-B6aJPvgy.js +1 -0
  613. package/dist/assets/python-Cso5vRIg.js +1 -0
  614. package/dist/assets/q-pXgVlZs6.js +1 -0
  615. package/dist/assets/qml-3beO22l8.js +1 -0
  616. package/dist/assets/qml-DmGQGbca.js +1 -0
  617. package/dist/assets/qmldir-C8lEn-DE.js +1 -0
  618. package/dist/assets/qmldir-DXd9s5XC.js +1 -0
  619. package/dist/assets/qss-B7NnhfIi.js +1 -0
  620. package/dist/assets/qss-IeuSbFQv.js +1 -0
  621. package/dist/assets/r-1ts4xG1r.js +1 -0
  622. package/dist/assets/r-B6wPVr8A.js +1 -0
  623. package/dist/assets/r-Dspwwk_N.js +1 -0
  624. package/dist/assets/racket-BqYA7rlc.js +1 -0
  625. package/dist/assets/racket-CeDx7KO2.js +1 -0
  626. package/dist/assets/raku-BMJwmrCS.js +1 -0
  627. package/dist/assets/raku-DXvB9xmW.js +1 -0
  628. package/dist/assets/razor-BaMsy-R7.js +1 -0
  629. package/dist/assets/razor-Uh8Bk_45.js +1 -0
  630. package/dist/assets/red-DR6ZwibK.js +1 -0
  631. package/dist/assets/red-bN70gL4F.js +1 -0
  632. package/dist/assets/reg-C-SQnVFl.js +1 -0
  633. package/dist/assets/reg-Cvyu2Gnx.js +1 -0
  634. package/dist/assets/regexp-CDVJQ6XC.js +1 -0
  635. package/dist/assets/regexp-DK-WlHNu.js +1 -0
  636. package/dist/assets/registerCustomTheme-BBXUCRnG.js +1 -0
  637. package/dist/assets/rel-BlqNHz8k.js +1 -0
  638. package/dist/assets/rel-C3B-1QV4.js +1 -0
  639. package/dist/assets/renderElectronMiniChatApp-DGmmT9Wf.js +1 -0
  640. package/dist/assets/renderMobileApp-Dd8P9hvM.js +23 -0
  641. package/dist/assets/riscv-BM1_JUlF.js +1 -0
  642. package/dist/assets/riscv-C5dpdlr7.js +1 -0
  643. package/dist/assets/ron-D8l8udqQ.js +1 -0
  644. package/dist/assets/ron-j5NfrB3z.js +1 -0
  645. package/dist/assets/rose-pine-CN2F2lJl.js +1 -0
  646. package/dist/assets/rose-pine-dawn-0S8NEhsA.js +1 -0
  647. package/dist/assets/rose-pine-dawn-DHQR4-dF.js +1 -0
  648. package/dist/assets/rose-pine-moon-D4_iv3hh.js +1 -0
  649. package/dist/assets/rose-pine-moon-DzBDT4rc.js +1 -0
  650. package/dist/assets/rose-pine-qdsjHGoJ.js +1 -0
  651. package/dist/assets/rosmsg-BJDFO7_C.js +1 -0
  652. package/dist/assets/rosmsg-ZkSIzPhc.js +1 -0
  653. package/dist/assets/rpm-CTu-6PCP.js +1 -0
  654. package/dist/assets/rst-BrH8l1NY.js +1 -0
  655. package/dist/assets/rst-C371KPjr.js +1 -0
  656. package/dist/assets/ruby-B2Rjki9n.js +1 -0
  657. package/dist/assets/ruby-DusoydGj.js +1 -0
  658. package/dist/assets/ruby-Dw2BHqvy.js +1 -0
  659. package/dist/assets/runtimeSurface-Cnqjhb6Y.js +1 -0
  660. package/dist/assets/rust-B1yitclQ.js +1 -0
  661. package/dist/assets/rust-CxuBE0J8.js +1 -0
  662. package/dist/assets/sas-B4kiWyti.js +1 -0
  663. package/dist/assets/sas-DtSHuIwI.js +1 -0
  664. package/dist/assets/sas-cz2c8ADy.js +1 -0
  665. package/dist/assets/sass-Cj5Yp3dK.js +1 -0
  666. package/dist/assets/sass-bfEVHPJ8.js +1 -0
  667. package/dist/assets/scala-C151Ov-r.js +1 -0
  668. package/dist/assets/scala-Dtw19ca_.js +1 -0
  669. package/dist/assets/scheme-C41bIUwD.js +1 -0
  670. package/dist/assets/scheme-C98Dy4si.js +1 -0
  671. package/dist/assets/scheme-OJppFQF3.js +1 -0
  672. package/dist/assets/scss-DxBkwadj.js +1 -0
  673. package/dist/assets/scss-OYdSNvt2.js +1 -0
  674. package/dist/assets/sdbl-CvZs3G9c.js +1 -0
  675. package/dist/assets/sdbl-DVxCFoDh.js +1 -0
  676. package/dist/assets/shaderlab-CEJedz68.js +1 -0
  677. package/dist/assets/shaderlab-Dg9Lc6iA.js +1 -0
  678. package/dist/assets/shellscript-DgJyDXW6.js +1 -0
  679. package/dist/assets/shellscript-Yzrsuije.js +1 -0
  680. package/dist/assets/shellsession-BADoaaVG.js +1 -0
  681. package/dist/assets/shellsession-DSlzxnCM.js +1 -0
  682. package/dist/assets/sieve-C3Gn_uJK.js +1 -0
  683. package/dist/assets/simple-mode-GW_nhZxv.js +1 -0
  684. package/dist/assets/slack-dark-BthQWCQV.js +1 -0
  685. package/dist/assets/slack-dark-CWRQmTmo.js +1 -0
  686. package/dist/assets/slack-ochin-DO_ok7XK.js +1 -0
  687. package/dist/assets/slack-ochin-DqwNpetd.js +1 -0
  688. package/dist/assets/smalltalk-B9IHbYt7.js +1 -0
  689. package/dist/assets/smalltalk-BERRCDM3.js +1 -0
  690. package/dist/assets/smalltalk-CnHTOXQT.js +1 -0
  691. package/dist/assets/snazzy-light-B5llO_gK.js +1 -0
  692. package/dist/assets/snazzy-light-Bw305WKR.js +1 -0
  693. package/dist/assets/solarized-dark-DXbdFlpD.js +1 -0
  694. package/dist/assets/solarized-dark-G9yBjKj_.js +1 -0
  695. package/dist/assets/solarized-light-DeSzljQz.js +1 -0
  696. package/dist/assets/solarized-light-L9t79GZl.js +1 -0
  697. package/dist/assets/solidity-B3CjIuAd.js +1 -0
  698. package/dist/assets/solidity-rGO070M0.js +1 -0
  699. package/dist/assets/solr-DehyRSwq.js +1 -0
  700. package/dist/assets/soy-BSb8SaP0.js +1 -0
  701. package/dist/assets/soy-Brmx7dQM.js +1 -0
  702. package/dist/assets/sparql-BJh4JEw-.js +1 -0
  703. package/dist/assets/sparql-DkYu6x3z.js +1 -0
  704. package/dist/assets/sparql-rVzFXLq3.js +1 -0
  705. package/dist/assets/splunk-BtCnVYZw.js +1 -0
  706. package/dist/assets/splunk-h-bNAnbk.js +1 -0
  707. package/dist/assets/spreadsheet-BCZA_wO0.js +1 -0
  708. package/dist/assets/sql-BLtJtn59.js +1 -0
  709. package/dist/assets/sql-BbONfI8K.js +1 -0
  710. package/dist/assets/sql-D0XecflT.js +1 -0
  711. package/dist/assets/ssh-config-CywOjoXH.js +1 -0
  712. package/dist/assets/ssh-config-_ykCGR6B.js +1 -0
  713. package/dist/assets/stata-BH5u7GGu.js +1 -0
  714. package/dist/assets/stata-BKjsT8qe.js +1 -0
  715. package/dist/assets/stex-C3f8Ysf7.js +1 -0
  716. package/dist/assets/stylus-B533Al4x.js +1 -0
  717. package/dist/assets/stylus-BEDo0Tqx.js +1 -0
  718. package/dist/assets/stylus-CIg617SB.js +1 -0
  719. package/dist/assets/surrealql-2KNEnAt7.js +1 -0
  720. package/dist/assets/surrealql-Bq5Q-fJD.js +1 -0
  721. package/dist/assets/svelte-C_ipcX3V.js +1 -0
  722. package/dist/assets/svelte-xaxjcSSP.js +1 -0
  723. package/dist/assets/swift-BzpIVaGY.js +1 -0
  724. package/dist/assets/swift-D82vCrfD.js +1 -0
  725. package/dist/assets/swift-tEesUtni.js +1 -0
  726. package/dist/assets/synthwave-84-CbfX1IO0.js +1 -0
  727. package/dist/assets/synthwave-84-DRVv-_m_.js +1 -0
  728. package/dist/assets/system-verilog-CnnmHF94.js +1 -0
  729. package/dist/assets/system-verilog-Qdm_1g2q.js +1 -0
  730. package/dist/assets/systemd-4A_iFExJ.js +1 -0
  731. package/dist/assets/systemd-DKMPPZjB.js +1 -0
  732. package/dist/assets/talonscript-CkByrt1z.js +1 -0
  733. package/dist/assets/talonscript-eRuyeYHl.js +1 -0
  734. package/dist/assets/tasl-B9CVvjfG.js +1 -0
  735. package/dist/assets/tasl-QIJgUcNo.js +1 -0
  736. package/dist/assets/tcl-Bq9dbVAF.js +1 -0
  737. package/dist/assets/tcl-DVfN8rqt.js +1 -0
  738. package/dist/assets/tcl-dwOrl1Do.js +1 -0
  739. package/dist/assets/templ-BVTOctZ7.js +1 -0
  740. package/dist/assets/templ-P3uqSqPl.js +1 -0
  741. package/dist/assets/terraform-BETggiCN.js +1 -0
  742. package/dist/assets/terraform-CAp711iT.js +1 -0
  743. package/dist/assets/tex-BHxF5DMe.js +1 -0
  744. package/dist/assets/tex-idrVyKtj.js +1 -0
  745. package/dist/assets/textile-CnDTJFAw.js +1 -0
  746. package/dist/assets/themeResolver-BmJyTmjJ.js +1 -0
  747. package/dist/assets/tiddlywiki-DO-Gjzrf.js +1 -0
  748. package/dist/assets/tiki-DGYXhP31.js +1 -0
  749. package/dist/assets/tokyo-night-BvwC8l2v.js +1 -0
  750. package/dist/assets/tokyo-night-hegEt444.js +1 -0
  751. package/dist/assets/toml-Bm5Em-hy.js +1 -0
  752. package/dist/assets/toml-Ms459DBw.js +1 -0
  753. package/dist/assets/toml-vGWfd6FD.js +1 -0
  754. package/dist/assets/troff-wAsdV37c.js +1 -0
  755. package/dist/assets/ts-tags-C-gylFal.js +1 -0
  756. package/dist/assets/ts-tags-zn1MmPIZ.js +1 -0
  757. package/dist/assets/tsv-BFtm7NXx.js +1 -0
  758. package/dist/assets/tsv-B_m7g4N7.js +1 -0
  759. package/dist/assets/tsx-COt5Ahok.js +1 -0
  760. package/dist/assets/tsx-D6116Ycy.js +1 -0
  761. package/dist/assets/ttcn-CfJYG6tj.js +1 -0
  762. package/dist/assets/ttcn-cfg-B9xdYoR4.js +1 -0
  763. package/dist/assets/turtle-B1tBg_DP.js +1 -0
  764. package/dist/assets/turtle-BsS91CYL.js +1 -0
  765. package/dist/assets/turtle-DpRhbQZY.js +1 -0
  766. package/dist/assets/twig-DNn4PbVi.js +1 -0
  767. package/dist/assets/twig-DuP5mDZ4.js +1 -0
  768. package/dist/assets/typescript-BPQ3VLAy.js +1 -0
  769. package/dist/assets/typescript-BqvgUolh.js +1 -0
  770. package/dist/assets/typespec-BGHnOYBU.js +1 -0
  771. package/dist/assets/typespec-DhK7u29_.js +1 -0
  772. package/dist/assets/typst-DHCkPAjA.js +1 -0
  773. package/dist/assets/typst-Dfd71gQj.js +1 -0
  774. package/dist/assets/useAppFontEffects-DXASDavv.js +7043 -0
  775. package/dist/assets/useInlineCommentController-KJFe98HG.js +2 -0
  776. package/dist/assets/useOpenInAppsStore-DHAeT9zx.js +1 -0
  777. package/dist/assets/useWindowTitle-BcwmWC0M.js +10 -0
  778. package/dist/assets/v-BH76v7br.js +1 -0
  779. package/dist/assets/v-BcVCzyr7.js +1 -0
  780. package/dist/assets/vala-CsfeWuGM.js +1 -0
  781. package/dist/assets/vala-z59IxkFd.js +1 -0
  782. package/dist/assets/vb-4AxSLKIU.js +1 -0
  783. package/dist/assets/vb-CmGdzxic.js +1 -0
  784. package/dist/assets/vb-D17OF-Vu.js +1 -0
  785. package/dist/assets/vbscript-BuJXcnF6.js +1 -0
  786. package/dist/assets/velocity-D8B20fx6.js +1 -0
  787. package/dist/assets/vendor-aparajita-capacitor-secure-storage-5IShChL0.js +1 -0
  788. package/dist/assets/vendor-aria-hidden-DvXkyWUv.js +1 -0
  789. package/dist/assets/vendor-base-ui-DwfTg5wD.js +1 -0
  790. package/dist/assets/vendor-beautiful-mermaid-r4GK_usS.js +119 -0
  791. package/dist/assets/vendor-capacitor-app-BrDJj9I_.js +1 -0
  792. package/dist/assets/vendor-capacitor-core-B4EWRrHz.js +1 -0
  793. package/dist/assets/vendor-capacitor-keyboard-CYccoJjr.js +1 -0
  794. package/dist/assets/vendor-capacitor-push-notifications-KNe1zSBF.js +1 -0
  795. package/dist/assets/vendor-capacitor-status-bar-B-N0EOVk.js +1 -0
  796. package/dist/assets/vendor-ccount-c2V3InAJ.js +1 -0
  797. package/dist/assets/vendor-character-entities-html4-D7taRCQ7.js +1 -0
  798. package/dist/assets/vendor-character-entities-legacy-BpoLgcEt.js +1 -0
  799. package/dist/assets/vendor-class-variance-authority-5VPnzWs2.js +1 -0
  800. package/dist/assets/vendor-clsx-B-dksMZM.js +1 -0
  801. package/dist/assets/vendor-cmdk-BCEUzcHE.js +1 -0
  802. package/dist/assets/vendor-codemirror-autocomplete-3xMyV7a2.js +1 -0
  803. package/dist/assets/vendor-codemirror-commands-Bzf12ODH.js +1 -0
  804. package/dist/assets/vendor-codemirror-lang-angular-0K6s6cvb.js +1 -0
  805. package/dist/assets/vendor-codemirror-lang-cpp-B0aL03z-.js +1 -0
  806. package/dist/assets/vendor-codemirror-lang-css-C4jEScp7.js +1 -0
  807. package/dist/assets/vendor-codemirror-lang-go-CgrfVBPr.js +7 -0
  808. package/dist/assets/vendor-codemirror-lang-html-C1Svvdey.js +1 -0
  809. package/dist/assets/vendor-codemirror-lang-java-DNPz7_Bx.js +1 -0
  810. package/dist/assets/vendor-codemirror-lang-javascript-CrbeaEAU.js +13 -0
  811. package/dist/assets/vendor-codemirror-lang-jinja-DL8BR_RG.js +1 -0
  812. package/dist/assets/vendor-codemirror-lang-json-BTvAjwkJ.js +1 -0
  813. package/dist/assets/vendor-codemirror-lang-less-CPABt6NZ.js +1 -0
  814. package/dist/assets/vendor-codemirror-lang-liquid-BLOLOBMg.js +1 -0
  815. package/dist/assets/vendor-codemirror-lang-markdown-BloD9GN-.js +1 -0
  816. package/dist/assets/vendor-codemirror-lang-php-FIZMTuWM.js +1 -0
  817. package/dist/assets/vendor-codemirror-lang-python-CR2g6ukK.js +3 -0
  818. package/dist/assets/vendor-codemirror-lang-rust-lsPqn4k4.js +1 -0
  819. package/dist/assets/vendor-codemirror-lang-sass-CtECMwzH.js +1 -0
  820. package/dist/assets/vendor-codemirror-lang-sql-BtmZrrZH.js +2 -0
  821. package/dist/assets/vendor-codemirror-lang-vue-Br6DrntY.js +1 -0
  822. package/dist/assets/vendor-codemirror-lang-wast-DT7IlCnb.js +1 -0
  823. package/dist/assets/vendor-codemirror-lang-xml-wNr-LZOf.js +1 -0
  824. package/dist/assets/vendor-codemirror-lang-yaml-BTKFwfc2.js +1 -0
  825. package/dist/assets/vendor-codemirror-language-BuDklWi8.js +3 -0
  826. package/dist/assets/vendor-codemirror-language-data-CFVH0pe8.js +2 -0
  827. package/dist/assets/vendor-codemirror-search-BzyfPoRb.js +2 -0
  828. package/dist/assets/vendor-codemirror-state-Wdz6Qsow.js +5 -0
  829. package/dist/assets/vendor-codemirror-view-pXtfpqbT.js +4 -0
  830. package/dist/assets/vendor-comma-separated-tokens-D8TqSuIK.js +1 -0
  831. package/dist/assets/vendor-crelt-C8TCjufn.js +1 -0
  832. package/dist/assets/vendor-detect-node-es-l0sNRNKZ.js +1 -0
  833. package/dist/assets/vendor-diff-C3JhlQdm.js +13 -0
  834. package/dist/assets/vendor-dijkstrajs-COg3n3zL.js +1 -0
  835. package/dist/assets/vendor-dnd-kit-accessibility-Cv52zwWT.js +1 -0
  836. package/dist/assets/vendor-dnd-kit-core-GipZW2tY.js +5 -0
  837. package/dist/assets/vendor-dnd-kit-sortable-Ct2QxIHb.js +1 -0
  838. package/dist/assets/vendor-dnd-kit-utilities-CrOcp0Bp.js +1 -0
  839. package/dist/assets/vendor-dompurify-r8glNMJW.js +2 -0
  840. package/dist/assets/vendor-elkjs-CRCLNXjf.js +24 -0
  841. package/dist/assets/vendor-entities-C3BA0AJP.js +1 -0
  842. package/dist/assets/vendor-fflate-C7GOKjkv.js +1 -0
  843. package/dist/assets/vendor-floating-ui-core-CXmKXOXc.js +1 -0
  844. package/dist/assets/vendor-floating-ui-dom-Bkw82kL9.js +1 -0
  845. package/dist/assets/vendor-floating-ui-react-dom-sVFnuruh.js +1 -0
  846. package/dist/assets/vendor-floating-ui-utils-BzXdqYpP.js +1 -0
  847. package/dist/assets/vendor-framer-motion-DJASDzNt.js +1 -0
  848. package/dist/assets/vendor-fuse.js-Dw8P0qyA.js +1 -0
  849. package/dist/assets/vendor-get-nonce-C-Z93AgS.js +1 -0
  850. package/dist/assets/vendor-ghostty-web-CrxinGGH.js +13 -0
  851. package/dist/assets/vendor-hast-util-to-html-BKBhbTDb.js +9 -0
  852. package/dist/assets/vendor-hast-util-whitespace-D4Wp6AEg.js +1 -0
  853. package/dist/assets/vendor-heic2any-L8hyfc24.js +66 -0
  854. package/dist/assets/vendor-html-to-image-BeoRn2gJ.js +2 -0
  855. package/dist/assets/vendor-html-void-elements-CkdplsNl.js +1 -0
  856. package/dist/assets/vendor-katex-CHD9BdDO.js +257 -0
  857. package/dist/assets/vendor-katex-Cp579UoJ.css +1 -0
  858. package/dist/assets/vendor-lezer-common-B3-cUCR_.js +1 -0
  859. package/dist/assets/vendor-lezer-cpp-BleAU9o-.js +1 -0
  860. package/dist/assets/vendor-lezer-css-C5xB6jxd.js +1 -0
  861. package/dist/assets/vendor-lezer-go-CXK1UKk8.js +1 -0
  862. package/dist/assets/vendor-lezer-highlight-CDMHUZ74.js +1 -0
  863. package/dist/assets/vendor-lezer-html-C0I1p52t.js +1 -0
  864. package/dist/assets/vendor-lezer-java-D_zzj-NV.js +1 -0
  865. package/dist/assets/vendor-lezer-javascript-D7Tj24ot.js +1 -0
  866. package/dist/assets/vendor-lezer-json-Iaex0UN-.js +1 -0
  867. package/dist/assets/vendor-lezer-lr-bhwg1HMg.js +1 -0
  868. package/dist/assets/vendor-lezer-markdown-C6g-d6P3.js +6 -0
  869. package/dist/assets/vendor-lezer-php-_DHrbsZG.js +1 -0
  870. package/dist/assets/vendor-lezer-python-CvuFxeZl.js +1 -0
  871. package/dist/assets/vendor-lezer-rust-Lqgd5SAo.js +1 -0
  872. package/dist/assets/vendor-lezer-sass-Dnm2lY4t.js +1 -0
  873. package/dist/assets/vendor-lezer-xml-hUDuAyS5.js +1 -0
  874. package/dist/assets/vendor-lezer-yaml-BNIl6S_O.js +1 -0
  875. package/dist/assets/vendor-lru_map-B-cPXHXW.js +1 -0
  876. package/dist/assets/vendor-marijn-find-cluster-break-DXwl3gUT.js +1 -0
  877. package/dist/assets/vendor-marked-i_gIkIP3.js +59 -0
  878. package/dist/assets/vendor-morphdom-B7dS_VPB.js +1 -0
  879. package/dist/assets/vendor-motion-dom-DJLgZh4Q.js +1 -0
  880. package/dist/assets/vendor-motion-l0sNRNKZ.js +1 -0
  881. package/dist/assets/vendor-motion-utils-BGh8QBgx.js +1 -0
  882. package/dist/assets/vendor-oniguruma-parser-C0D4_9rT.js +33 -0
  883. package/dist/assets/vendor-oniguruma-to-es-DLBnFDCE.js +94 -0
  884. package/dist/assets/vendor-pierre-theme-Bp7SdUL6.js +1 -0
  885. package/dist/assets/vendor-pierre-theming-C6Z4M5_u.js +1 -0
  886. package/dist/assets/vendor-property-information-rJCbAzvX.js +1 -0
  887. package/dist/assets/vendor-qrcode-COsmt6jn.js +8 -0
  888. package/dist/assets/vendor-radix-ui-primitive-Dc_FVRD7.js +1 -0
  889. package/dist/assets/vendor-radix-ui-react-compose-refs-D1GnwnP9.js +1 -0
  890. package/dist/assets/vendor-radix-ui-react-context-CM4yFQ2I.js +1 -0
  891. package/dist/assets/vendor-radix-ui-react-dialog-jX3Dld8c.js +5 -0
  892. package/dist/assets/vendor-radix-ui-react-dismissable-layer-M7LsH3yL.js +1 -0
  893. package/dist/assets/vendor-radix-ui-react-focus-guards-D5MZ0nQs.js +1 -0
  894. package/dist/assets/vendor-radix-ui-react-focus-scope-C2K7lNPv.js +1 -0
  895. package/dist/assets/vendor-radix-ui-react-id-BcxRjnbX.js +1 -0
  896. package/dist/assets/vendor-radix-ui-react-portal-xlJWBfDg.js +1 -0
  897. package/dist/assets/vendor-radix-ui-react-presence-Btn-Dp7L.js +1 -0
  898. package/dist/assets/vendor-radix-ui-react-primitive-CfpW6_IT.js +1 -0
  899. package/dist/assets/vendor-radix-ui-react-slot-BxUc3Pvz.js +1 -0
  900. package/dist/assets/vendor-radix-ui-react-use-callback-ref-UKEWHtoP.js +1 -0
  901. package/dist/assets/vendor-radix-ui-react-use-controllable-state-C_ecoh35.js +1 -0
  902. package/dist/assets/vendor-radix-ui-react-use-effect-event-DkJl_Rn_.js +1 -0
  903. package/dist/assets/vendor-radix-ui-react-use-escape-keydown-Co13lHGj.js +1 -0
  904. package/dist/assets/vendor-radix-ui-react-use-layout-effect-0fyGwS2_.js +1 -0
  905. package/dist/assets/vendor-react-DYyjh7Q0.js +9 -0
  906. package/dist/assets/vendor-react-drawio-Boqanm0j.js +1 -0
  907. package/dist/assets/vendor-react-remove-scroll-CfeMe0DL.js +4 -0
  908. package/dist/assets/vendor-react-remove-scroll-bar-C9YRs2nU.js +38 -0
  909. package/dist/assets/vendor-react-style-singleton-B1H4bWSG.js +1 -0
  910. package/dist/assets/vendor-regex-BBWcyTkg.js +16 -0
  911. package/dist/assets/vendor-regex-recursion-JU4mF-dD.js +1 -0
  912. package/dist/assets/vendor-regex-utilities-2BQyy0xI.js +1 -0
  913. package/dist/assets/vendor-remend-BWYYytN3.js +22 -0
  914. package/dist/assets/vendor-remixicon-react-CzPq62YO.js +1 -0
  915. package/dist/assets/vendor-replit-codemirror-vim-BUqe2Slv.js +39 -0
  916. package/dist/assets/vendor-reselect-l0sNRNKZ.js +1 -0
  917. package/dist/assets/vendor-scheduler-7OC5HNn7.js +1 -0
  918. package/dist/assets/vendor-shiki-Bbf2GEcE.js +2 -0
  919. package/dist/assets/vendor-shikijs-core-CGM_jqPK.js +2 -0
  920. package/dist/assets/vendor-shikijs-engine-javascript-Cme4830A.js +1 -0
  921. package/dist/assets/vendor-shikijs-engine-oniguruma-DPWuIF1G.js +1 -0
  922. package/dist/assets/vendor-shikijs-transformers-CZWsLLKm.js +1 -0
  923. package/dist/assets/vendor-shikijs-types-CPSbSeK6.js +1 -0
  924. package/dist/assets/vendor-shikijs-vscode-textmate-BgLrS_2D.js +3 -0
  925. package/dist/assets/vendor-simplewebauthn-browser-VDA66rT_.js +2 -0
  926. package/dist/assets/vendor-sonner-dWA7qvjr.js +1 -0
  927. package/dist/assets/vendor-space-separated-tokens-DD3iYX1K.js +1 -0
  928. package/dist/assets/vendor-stringify-entities-CsH1VEn9.js +1 -0
  929. package/dist/assets/vendor-style-mod-NZ5MEPvj.js +3 -0
  930. package/dist/assets/vendor-tailwind-merge-CPcsbTWB.js +1 -0
  931. package/dist/assets/vendor-tanstack-react-virtual-IrbCBGJ4.js +1 -0
  932. package/dist/assets/vendor-tanstack-virtual-core-Dubg10g5.js +1 -0
  933. package/dist/assets/vendor-tslib-De9GV7Vy.js +1 -0
  934. package/dist/assets/vendor-use-callback-ref-CJB0R85I.js +1 -0
  935. package/dist/assets/vendor-use-sidecar-C-AuTczP.js +1 -0
  936. package/dist/assets/vendor-use-sync-external-store-B7OScDIw.js +1 -0
  937. package/dist/assets/vendor-vite-runtime-DD1OZmLC.js +1 -0
  938. package/dist/assets/vendor-w3c-keyname-Vcq4gwWv.js +1 -0
  939. package/dist/assets/vendor-workbox-window-BIl4cyR9.js +2 -0
  940. package/dist/assets/vendor-zumer-snapdom-Btyu_Xi2.js +8 -0
  941. package/dist/assets/vendor-zustand-CnsBKjP5.js +6 -0
  942. package/dist/assets/vendor-zwitch-C2o2j-tx.js +1 -0
  943. package/dist/assets/verilog-BQ8w6xss.js +1 -0
  944. package/dist/assets/verilog-C6RDOZhf.js +1 -0
  945. package/dist/assets/verilog-LfQUkHDc.js +1 -0
  946. package/dist/assets/vesper--t9w6MWz.js +1 -0
  947. package/dist/assets/vesper-DU1UobuO.js +1 -0
  948. package/dist/assets/vhdl-CeAyd5Ju.js +1 -0
  949. package/dist/assets/vhdl-DJCsFYgn.js +1 -0
  950. package/dist/assets/vhdl-lSbBsy5d.js +1 -0
  951. package/dist/assets/viml-CJc9bBzg.js +1 -0
  952. package/dist/assets/viml-pbKHW3Ia.js +1 -0
  953. package/dist/assets/vitesse-black-B_BYPdvp.js +1 -0
  954. package/dist/assets/vitesse-black-Bkuqu6BP.js +1 -0
  955. package/dist/assets/vitesse-dark-D0r3Knsf.js +1 -0
  956. package/dist/assets/vitesse-dark-DOSOf2Sz.js +1 -0
  957. package/dist/assets/vitesse-light-CVO1_9PV.js +1 -0
  958. package/dist/assets/vitesse-light-gUX51GpB.js +1 -0
  959. package/dist/assets/vue-D2k0BAl5.js +1 -0
  960. package/dist/assets/vue-DN_0RTcg.js +1 -0
  961. package/dist/assets/vue-html-AaS7Mt5G.js +1 -0
  962. package/dist/assets/vue-html-zEfNEgpj.js +1 -0
  963. package/dist/assets/vue-vine-CQOfvN7w.js +1 -0
  964. package/dist/assets/vue-vine-D9eCaTqi.js +1 -0
  965. package/dist/assets/vyper-CDx5xZoG.js +1 -0
  966. package/dist/assets/vyper-DpazWNpx.js +1 -0
  967. package/dist/assets/wasm-CFi-k9--.js +1 -0
  968. package/dist/assets/wasm-CG6Dc4jp.js +1 -0
  969. package/dist/assets/wasm-MzD3tlZU.js +1 -0
  970. package/dist/assets/web-components-CNPQSzpa.js +1390 -0
  971. package/dist/assets/webidl-ZXfAyPTL.js +1 -0
  972. package/dist/assets/wenyan-BV7otONQ.js +1 -0
  973. package/dist/assets/wenyan-CYFFG9DK.js +1 -0
  974. package/dist/assets/wgsl-CxjTZs-b.js +1 -0
  975. package/dist/assets/wgsl-Dx-B1_4e.js +1 -0
  976. package/dist/assets/wikitext-BhOHFoWU.js +1 -0
  977. package/dist/assets/wikitext-Bx2qct8O.js +1 -0
  978. package/dist/assets/wit-5i3qLPDT.js +1 -0
  979. package/dist/assets/wit-DDW3hD69.js +1 -0
  980. package/dist/assets/wolfram-lXgVvXCa.js +1 -0
  981. package/dist/assets/wolfram-pu21K997.js +1 -0
  982. package/dist/assets/worker-BBk7yuNN.js +153 -0
  983. package/dist/assets/workerFactory-tw7cIdmV.js +1 -0
  984. package/dist/assets/xml-BkAJuBCc.js +1 -0
  985. package/dist/assets/xml-sdJ4AIDG.js +1 -0
  986. package/dist/assets/xquery-DzFWVndE.js +1 -0
  987. package/dist/assets/xsl-C6UUWSil.js +1 -0
  988. package/dist/assets/xsl-CtQFsRM5.js +1 -0
  989. package/dist/assets/yacas-BJ4BC0dw.js +1 -0
  990. package/dist/assets/yaml-Bopit2L3.js +1 -0
  991. package/dist/assets/yaml-Buea-lGh.js +1 -0
  992. package/dist/assets/z80-Hz9HOZM7.js +1 -0
  993. package/dist/assets/zenscript-BIAKq-aR.js +1 -0
  994. package/dist/assets/zenscript-DVFEvuxE.js +1 -0
  995. package/dist/assets/zig-VOosw3JB.js +1 -0
  996. package/dist/assets/zig-bSFrHQ7n.js +1 -0
  997. package/dist/favicon-16.png +0 -0
  998. package/dist/favicon-32.png +0 -0
  999. package/dist/favicon.png +0 -0
  1000. package/dist/favicon.svg +13 -0
  1001. package/dist/index.html +658 -0
  1002. package/dist/logo-dark-192x192.png +0 -0
  1003. package/dist/logo-dark-512x512.svg +13 -0
  1004. package/dist/logo-light-192x192.png +0 -0
  1005. package/dist/logo-light-512x512.svg +13 -0
  1006. package/dist/mini-chat.html +121 -0
  1007. package/dist/mobile.html +79 -0
  1008. package/dist/pwa-192.png +0 -0
  1009. package/dist/pwa-512.png +0 -0
  1010. package/dist/pwa-maskable-192.png +0 -0
  1011. package/dist/pwa-maskable-512.png +0 -0
  1012. package/dist/site.webmanifest +21 -0
  1013. package/dist/sw.js +1 -0
  1014. package/package.json +115 -0
  1015. package/public/apple-touch-icon-120x120.png +0 -0
  1016. package/public/apple-touch-icon-152x152.png +0 -0
  1017. package/public/apple-touch-icon-167x167.png +0 -0
  1018. package/public/apple-touch-icon-180x180.png +0 -0
  1019. package/public/apple-touch-icon.png +0 -0
  1020. package/public/apple-touch-icon.svg +13 -0
  1021. package/public/favicon-16.png +0 -0
  1022. package/public/favicon-32.png +0 -0
  1023. package/public/favicon.png +0 -0
  1024. package/public/favicon.svg +13 -0
  1025. package/public/logo-dark-192x192.png +0 -0
  1026. package/public/logo-dark-512x512.svg +13 -0
  1027. package/public/logo-light-192x192.png +0 -0
  1028. package/public/logo-light-512x512.svg +13 -0
  1029. package/public/pwa-192.png +0 -0
  1030. package/public/pwa-512.png +0 -0
  1031. package/public/pwa-maskable-192.png +0 -0
  1032. package/public/pwa-maskable-512.png +0 -0
  1033. package/public/site.webmanifest +21 -0
  1034. package/server/index.d.ts +35 -0
  1035. package/server/index.js +206 -0
  1036. package/server/lib/client-auth/pairing.js +308 -0
  1037. package/server/lib/client-auth/pairing.test.js +142 -0
  1038. package/server/lib/client-auth/remote-clients.js +280 -0
  1039. package/server/lib/client-auth/remote-clients.test.js +158 -0
  1040. package/server/lib/cloudflare-tunnel.js +606 -0
  1041. package/server/lib/fs/DOCUMENTATION.md +39 -0
  1042. package/server/lib/fs/pick-directory.js +236 -0
  1043. package/server/lib/fs/pick-directory.test.js +134 -0
  1044. package/server/lib/fs/routes.js +1543 -0
  1045. package/server/lib/fs/routes.test.js +920 -0
  1046. package/server/lib/fs/search.js +238 -0
  1047. package/server/lib/git/DOCUMENTATION.md +180 -0
  1048. package/server/lib/git/credentials.js +41 -0
  1049. package/server/lib/git/identity-storage.js +113 -0
  1050. package/server/lib/git/index.js +6 -0
  1051. package/server/lib/git/issue-2746-longpaths.test.js +206 -0
  1052. package/server/lib/git/routes.js +1089 -0
  1053. package/server/lib/git/routes.test.js +210 -0
  1054. package/server/lib/git/service.js +4927 -0
  1055. package/server/lib/git/service.test.js +1216 -0
  1056. package/server/lib/inherited-env.js +74 -0
  1057. package/server/lib/inherited-env.test.js +65 -0
  1058. package/server/lib/ngrok-tunnel.js +343 -0
  1059. package/server/lib/ngrok-tunnel.test.js +50 -0
  1060. package/server/lib/package-manager.js +850 -0
  1061. package/server/lib/package-manager.test.js +370 -0
  1062. package/server/lib/path-realpath-cache.js +85 -0
  1063. package/server/lib/path-realpath-cache.test.js +75 -0
  1064. package/server/lib/pi/archive-store.js +52 -0
  1065. package/server/lib/pi/archive-store.test.js +32 -0
  1066. package/server/lib/pi/attachment-store.js +98 -0
  1067. package/server/lib/pi/attachment-store.test.js +40 -0
  1068. package/server/lib/pi/custom-themes.js +33 -0
  1069. package/server/lib/pi/custom-themes.test.js +21 -0
  1070. package/server/lib/pi/legacy-ui-model-defaults.js +57 -0
  1071. package/server/lib/pi/legacy-ui-model-defaults.test.js +65 -0
  1072. package/server/lib/pi/model-config-store.js +173 -0
  1073. package/server/lib/pi/model-config-store.test.js +42 -0
  1074. package/server/lib/pi/routes.js +956 -0
  1075. package/server/lib/pi/routes.test.js +733 -0
  1076. package/server/lib/pi/session-daemon/DOCUMENTATION.md +41 -0
  1077. package/server/lib/pi/session-daemon/daemon-process.js +113 -0
  1078. package/server/lib/pi/session-daemon/ipc-client.js +144 -0
  1079. package/server/lib/pi/session-daemon/runtime-registry.js +149 -0
  1080. package/server/lib/pi/session-daemon/runtime-registry.test.js +109 -0
  1081. package/server/lib/pi/session-daemon/session-daemon.js +1903 -0
  1082. package/server/lib/pi/session-daemon/session-daemon.test.js +1306 -0
  1083. package/server/lib/pi/session-daemon/session-jsonl.js +94 -0
  1084. package/server/lib/pi/session-daemon/session-jsonl.test.js +73 -0
  1085. package/server/lib/pi/session-daemon/supervisor.js +458 -0
  1086. package/server/lib/pi/session-daemon/supervisor.test.js +212 -0
  1087. package/server/lib/pi/session-folders-store.js +74 -0
  1088. package/server/lib/pi/session-folders-store.test.js +45 -0
  1089. package/server/lib/pi/session-lifecycle.integration.test.js +197 -0
  1090. package/server/lib/pi/settings-store.js +133 -0
  1091. package/server/lib/pi/settings-store.test.js +113 -0
  1092. package/server/lib/pi/thinking-levels.js +39 -0
  1093. package/server/lib/pi/thinking-levels.test.js +34 -0
  1094. package/server/lib/pi/ui-settings-store.js +68 -0
  1095. package/server/lib/pi/ui-settings-store.test.js +40 -0
  1096. package/server/lib/pichamber-data-dir.js +78 -0
  1097. package/server/lib/pichamber-data-dir.test.js +105 -0
  1098. package/server/lib/pichamber-data-root-authority.test.js +81 -0
  1099. package/server/lib/preview/proxy-runtime.js +1604 -0
  1100. package/server/lib/preview/proxy-runtime.test.js +528 -0
  1101. package/server/lib/pwa-keys-contract.test.ts +62 -0
  1102. package/server/lib/relay/DOCUMENTATION.md +106 -0
  1103. package/server/lib/relay/cross-compat.test.js +135 -0
  1104. package/server/lib/relay/e2ee.js +341 -0
  1105. package/server/lib/relay/e2ee.test.js +124 -0
  1106. package/server/lib/relay/host-client.js +389 -0
  1107. package/server/lib/relay/host-client.test.js +292 -0
  1108. package/server/lib/relay/identity.js +93 -0
  1109. package/server/lib/relay/identity.test.js +78 -0
  1110. package/server/lib/relay/service.js +9 -0
  1111. package/server/lib/relay/signing-key.js +73 -0
  1112. package/server/lib/relay/tunnel-codec.js +373 -0
  1113. package/server/lib/relay/tunnel-codec.test.js +58 -0
  1114. package/server/lib/relay/tunnel-host.js +465 -0
  1115. package/server/lib/security/bind-host.js +40 -0
  1116. package/server/lib/security/bind-host.test.js +36 -0
  1117. package/server/lib/security/packaged-client-origins.js +11 -0
  1118. package/server/lib/security/request-security.js +122 -0
  1119. package/server/lib/security/request-security.test.js +57 -0
  1120. package/server/lib/server/cli-entry-runtime.js +44 -0
  1121. package/server/lib/server/cli-options.js +132 -0
  1122. package/server/lib/server/core-routes.js +1041 -0
  1123. package/server/lib/server/cors.js +51 -0
  1124. package/server/lib/server/cors.test.js +37 -0
  1125. package/server/lib/server/lan-addresses.js +41 -0
  1126. package/server/lib/server/lan-addresses.test.js +42 -0
  1127. package/server/lib/server/path-utils.js +27 -0
  1128. package/server/lib/server/tunnel-auth.js +586 -0
  1129. package/server/lib/terminal/DOCUMENTATION.md +48 -0
  1130. package/server/lib/terminal/history.js +83 -0
  1131. package/server/lib/terminal/history.test.js +19 -0
  1132. package/server/lib/terminal/runtime.js +391 -0
  1133. package/server/lib/terminal/runtime.test.js +566 -0
  1134. package/server/lib/terminal/shells.js +100 -0
  1135. package/server/lib/terminal/shells.test.js +73 -0
  1136. package/server/lib/terminal/terminal-ws-protocol.js +68 -0
  1137. package/server/lib/terminal/terminal-ws-protocol.test.js +145 -0
  1138. package/server/lib/terminal/theme-response.js +98 -0
  1139. package/server/lib/terminal/theme-response.test.js +70 -0
  1140. package/server/lib/tunnels/DOCUMENTATION.md +33 -0
  1141. package/server/lib/tunnels/executable-search.js +140 -0
  1142. package/server/lib/tunnels/executable-search.test.js +96 -0
  1143. package/server/lib/tunnels/install-help.js +56 -0
  1144. package/server/lib/tunnels/install-help.test.js +31 -0
  1145. package/server/lib/tunnels/providers/cloudflare.js +54 -0
  1146. package/server/lib/tunnels/providers/ngrok.js +32 -0
  1147. package/server/lib/tunnels/types.js +16 -0
  1148. package/server/lib/ui-auth/DOCUMENTATION.md +44 -0
  1149. package/server/lib/ui-auth/ui-auth.js +972 -0
  1150. package/server/lib/ui-auth/ui-auth.test.js +250 -0
  1151. package/server/lib/ui-auth/ui-passkeys.js +543 -0
  1152. package/server/lib/workspace/host.js +91 -0
@@ -0,0 +1,8 @@
1
+ import{c as Lt,d as Ht,p as Br}from"./vendor-zustand-CnsBKjP5.js";import{R as mo}from"./vendor-react-DYyjh7Q0.js";const kt=1,ys="pichamber-relay-v1",qn=1,Kn=12,vt=1+Kn,Tt=64*1024,Rt=5,Pt=128,Gn=0,Wn=1,ft=4,bs=1+ft,Vo=Tt-Rt-bs,R={HttpRequest:1,HttpBody:2,HttpResponse:3,StreamEnd:4,StreamAbort:5,WsOpen:6,WsOpened:7,WsText:8,WsBinary:9,WsClose:10,Ping:11,Pong:12},As=new Set(Object.values(R)),Es=e=>As.has(e),Xe={DuplicateClient:4002,AuthFailed:4010,LimitExceeded:4029,ChannelFailure:1011},ve=globalThis.crypto.subtle,Vn={name:"ECDH",namedCurve:"P-256"},Jn=16,Mo=32,Bs=16,Jo=4,Yn=8;class Ne extends Error{constructor(t){super(t),this.name="RelayCryptoError"}}const ws=()=>ve.generateKey(Vn,!0,["deriveBits"]),Cs=async e=>{const t=await ve.exportKey("jwk",e);return{kty:t.kty,crv:t.crv,x:t.x,y:t.y}},ks=async e=>{if(e.kty!=="EC"||e.crv!=="P-256"||typeof e.x!="string"||typeof e.y!="string")throw new Ne("invalid ECDH public key JWK");try{return await ve.importKey("jwk",{kty:e.kty,crv:e.crv,x:e.x,y:e.y,ext:!0},Vn,!0,[])}catch{throw new Ne("invalid ECDH public key JWK")}},vs=()=>{const e=new Uint8Array(Jn);return globalThis.crypto.getRandomValues(e),e},Ds=async(e,t,o)=>{if(o.length!==Jn)throw new Ne("invalid handshake nonce length");const r=await ve.deriveBits({name:"ECDH",public:t},e,256),n=await ve.importKey("raw",r,"HKDF",!1,["deriveBits"]),a=new Uint8Array(await ve.deriveBits({name:"HKDF",hash:"SHA-256",salt:o,info:new TextEncoder().encode(ys)},n,Mo*2*8)),s=(i,c)=>ve.importKey("raw",i,{name:"AES-GCM"},!1,c);return{clientToHost:await s(a.slice(0,Mo),["encrypt","decrypt"]),hostToClient:await s(a.slice(Mo),["encrypt","decrypt"])}},Ss=(e,t,o)=>{for(let r=Yn-1;r>=0;r-=1)e[t+r]=Number(o&0xffn),o>>=8n},Ms=(e,t)=>{let o=0n;for(let r=0;r<Yn;r+=1)o=o<<8n|BigInt(e[t+r]);return o},Ts=e=>{const t=new Uint8Array(Jo);globalThis.crypto.getRandomValues(t);let o=0n;return{async encrypt(r){if(r.length>Tt)throw new Ne("plaintext frame exceeds maximum size");o+=1n;const n=new Uint8Array(Kn);n.set(t,0),Ss(n,Jo,o);const a=new Uint8Array(await ve.encrypt({name:"AES-GCM",iv:n},e,r)),s=new Uint8Array(vt+a.length);return s[0]=qn,s.set(n,1),s.set(a,vt),s}}},Rs=e=>{let t=0n;return{async decrypt(o){if(o.length<vt+Bs)throw new Ne("encrypted frame too short");if(o[0]!==qn)throw new Ne("unsupported encrypted frame version");const r=o.slice(1,vt),n=Ms(r,Jo);if(n<=t)throw new Ne("frame counter regression");let a;try{a=await ve.decrypt({name:"AES-GCM",iv:r},e,o.slice(vt))}catch{throw new Ne("frame decryption failed")}return t=n,new Uint8Array(a)}}},Jt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",Ps=e=>{let t="";for(let o=0;o<e.length;o+=3){const r=e[o],n=o+1<e.length?e[o+1]:void 0,a=o+2<e.length?e[o+2]:void 0;t+=Jt[r>>2],t+=Jt[(r&3)<<4|(n??0)>>4],n!==void 0&&(t+=Jt[(n&15)<<2|(a??0)>>6]),a!==void 0&&(t+=Jt[a&63])}return t},en=e=>{let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!="object"||t===null)return null;const o=t;if(o.v!==kt)return null;const r=o.batch===!0;return o.t==="ready"?{t:"ready",v:kt,batch:r}:o.t==="hello"&&typeof o.nonce=="string"&&typeof o.clientPubJwk=="object"&&o.clientPubJwk!==null?{t:"hello",v:kt,clientPubJwk:o.clientPubJwk,nonce:o.nonce,batch:r}:null},Is=e=>({type:"fail",closeCode:Xe.ChannelFailure,reason:e}),xs=async(e,t={})=>{const o=t.batch!==!1,r=await ks(e),n=await ws(),a=vs(),s={t:"hello",v:kt,clientPubJwk:await Cs(n.publicKey),nonce:Ps(a),...o?{batch:!0}:{}};let i=!1;return{helloText:JSON.stringify(s),get established(){return i},async handleText(c){if(i)return en(c)?.t==="ready"?{type:"ignore"}:Is("plaintext frame on established channel");const d=en(c);if(d?.t!=="ready")return{type:"ignore"};const l=await Ds(n.privateKey,r,a);return i=!0,{type:"established",batch:o&&d.batch===!0,channel:{encryptor:Ts(l.clientToHost),decryptor:Rs(l.hostToClient)}}}}},Qn=4294967295;class Z extends Error{constructor(t){super(t),this.name="TunnelCodecError"}}const Be=(e,t,o,r=!1)=>{if(!Number.isInteger(t)||t<0||t>Qn)throw new Z("invalid stream id");if(o.length>Vo)throw new Z("tunnel payload exceeds maximum size");const n=new Uint8Array(Rt+o.length);return n[0]=r?e|Pt:e,n[1]=t>>>24&255,n[2]=t>>>16&255,n[3]=t>>>8&255,n[4]=t&255,n.set(o,Rt),n},_s=e=>{if(e.length<Rt)throw new Z("tunnel frame too short");const t=e[0],o=(t&Pt)!==0,r=t&~Pt;if(!Es(r))throw new Z(`unknown tunnel frame type ${r}`);const n=(e[1]<<24|e[2]<<16|e[3]<<8|e[4])>>>0;return{frameType:r,streamId:n,payload:e.slice(Rt),hasMoreFragments:o}},Os=new TextEncoder,Ns=new TextDecoder,Yt=e=>Os.encode(JSON.stringify(e)),Qt=(e,t)=>{let o;try{o=JSON.parse(Ns.decode(e))}catch{throw new Z("malformed JSON tunnel payload")}if(!t(o))throw new Z("unexpected JSON tunnel payload shape");return o},Xn=(e,t=Vo)=>{if(t<=0||t>Vo)throw new Z("invalid chunk size");if(e.length===0)return[new Uint8Array(0)];const o=[];for(let r=0;r<e.length;r+=t)o.push(e.slice(r,r+t));return o},tn=(e,t,o)=>{const r=Xn(o);return r.map((n,a)=>Be(e,t,n,a<r.length-1))},Us=(e=16*1024*1024)=>{const t=new Map;return{push(o){const r=`${o.streamId}:${o.frameType}`,n=t.get(r);if(!o.hasMoreFragments&&!n)return o.payload;const a=n?.chunks??[],s=(n?.totalBytes??0)+o.payload.length;if(s>e)throw t.delete(r),new Z("fragmented message exceeds maximum size");if(a.push(o.payload),o.hasMoreFragments)return t.set(r,{chunks:a,totalBytes:s}),null;t.delete(r);const i=new Uint8Array(s);let c=0;for(const d of a)i.set(d,c),c+=d.length;return i},dropStream(o){for(const r of t.keys())r.startsWith(`${o}:`)&&t.delete(r)}}},Ls=e=>{if(e.length===0)throw new Z("cannot encode an empty frame batch");if(e.length===1){const n=e[0],a=new Uint8Array(1+n.length);if(a[0]=Gn,a.set(n,1),a.length>Tt)throw new Z("frame batch exceeds maximum plaintext size");return a}let t=1;for(const n of e)t+=ft+n.length;if(t>Tt)throw new Z("frame batch exceeds maximum plaintext size");const o=new Uint8Array(t);o[0]=Wn;let r=1;for(const n of e)o[r]=n.length>>>24&255,o[r+1]=n.length>>>16&255,o[r+2]=n.length>>>8&255,o[r+3]=n.length&255,r+=ft,o.set(n,r),r+=n.length;return o},Hs=e=>{if(e.length<1)throw new Z("empty batch plaintext");const t=e[0];if(t===Gn)return[e.slice(1)];if(t!==Wn)throw new Z(`unknown batch container tag ${t}`);const o=[];let r=1;for(;r<e.length;){if(r+ft>e.length)throw new Z("truncated batch frame length");const n=(e[r]<<24|e[r+1]<<16|e[r+2]<<8|e[r+3])>>>0;if(r+=ft,r+n>e.length)throw new Z("truncated batch frame body");o.push(e.slice(r,r+n)),r+=n}if(o.length===0)throw new Z("empty frame batch");return o},js=new Set([R.HttpBody,R.WsText,R.WsBinary]),Zn=150,$s=24*1024,zs=32,qs=e=>{const t=e.windowMs??Zn,o=e.maxBatchBytes??$s,r=e.maxBatchFrames??zs,n=e.now??(()=>Date.now()),a=e.setTimer??((F,B)=>setTimeout(F,B)),s=e.clearTimer??(F=>clearTimeout(F));let i=[],c=0,d=null,l=0,u=!1;const g=()=>{d!==null&&(s(d),d=null)},m=()=>{if(g(),i.length===0)return;const F=i;i=[],c=0,l=n(),e.sendBatch(Ls(F))};return{enqueue:F=>{if(u)return;const B=F[0]&~Pt;if(!js.has(B)){i.push(F),m();return}const y=n();if(i.length===0&&y-l>=t){i.push(F),m();return}const T=ft+F.length;if(i.length>0&&1+c+T>Tt&&m(),i.push(F),c+=T,c>=o||i.length>=r){m();return}d===null&&(d=a(m,t))},flush:m,dispose(){u=!0,g(),i=[],c=0}}},Ks=()=>{let e=1;return{next(){if(e>Qn)throw new Z("stream id space exhausted");const t=e;return e+=2,t}}},wo=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),Gs=e=>wo(e)&&Object.values(e).every(t=>typeof t=="string"),Ws=e=>wo(e)&&typeof e.status=="number"&&Gs(e.headers),on=e=>wo(e)&&typeof e.reason=="string",Vs=e=>wo(e)&&typeof e.code=="number"&&typeof e.reason=="string",ea=/^[a-z][a-z\d+.-]*:\/\//i,wr="http://tunnel.invalid",Js=e=>{try{const t=ea.test(e)?new URL(e):new URL(e,wr);return`${t.pathname}${t.search}`}catch{return e}},Xt=e=>({async*[Symbol.asyncIterator](){yield e}}),Ys=e=>({async*[Symbol.asyncIterator](){const t=e.getReader();try{for(;;){const{done:o,value:r}=await t.read();if(o)return;r&&(yield r)}}finally{t.releaseLock()}}}),Qs=e=>{const t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),t},Xs=async e=>{if(e==null)return{body:null};if(e instanceof ReadableStream)return{body:Ys(e)};if(typeof e=="string")return{body:Xt(new TextEncoder().encode(e))};if(e instanceof ArrayBuffer)return{body:Xt(new Uint8Array(e.slice(0)))};if(ArrayBuffer.isView(e))return{body:Xt(Qs(e))};const t=new Response(e),o=t.headers.get("content-type")??void 0,r=new Uint8Array(await t.arrayBuffer());return{body:Xt(r),contentType:o}},Zs=async(e,t)=>{let o;const r=new Headers;let n="GET",a=null,s;e instanceof Request?(o=e.url,n=e.method,e.headers.forEach((u,g)=>r.set(g,u)),s=e.signal,a=e.body):o=e.toString(),t&&(t.method&&(n=t.method),t.headers&&new Headers(t.headers).forEach((u,g)=>r.set(g,u)),t.body!==void 0&&(a=t.body),t.signal&&(s=t.signal));const i=ea.test(o)?new URL(o):new URL(o,wr),{body:c,contentType:d}=await Xs(a);d&&!r.has("content-type")&&r.set("content-type",d);const l={};return r.forEach((u,g)=>{l[g]=u}),{method:n.toUpperCase(),path:i.pathname,query:i.search.startsWith("?")?i.search.slice(1):i.search,headers:l,body:c,signal:s}},ei="__pichamberAmbiguousTransport",ti=e=>(Object.defineProperty(e,ei,{value:!0,enumerable:!1,configurable:!0}),e),To=new Uint8Array(0),oi=new TextEncoder,ri=new TextDecoder,ue=e=>e instanceof Error?e:new Error(String(e)),Zt=()=>new DOMException("The operation was aborted.","AbortError"),ni=e=>{e.binaryType="arraybuffer";const t={get readyState(){return e.readyState},send(o){e.send(o)},close(o,r){e.close(o,r)},onopen:null,onmessage:null,onclose:null,onerror:null};return e.onopen=()=>t.onopen?.(),e.onmessage=o=>t.onmessage?.({data:o.data}),e.onclose=o=>t.onclose?.({code:o.code,reason:o.reason}),e.onerror=()=>t.onerror?.(),t},ai=e=>{const t={get readyState(){return e.readyState},get binaryType(){return e.binaryType},set binaryType(o){o&&(e.binaryType=o)},onopen:null,onmessage:null,onerror:null,onclose:null,send(o){e.send(o)},close(o,r){e.close(o,r)}};return e.onopen=()=>t.onopen?.(),e.onmessage=o=>{const r=o.data;(typeof r=="string"||r instanceof ArrayBuffer)&&t.onmessage?.({data:r})},e.onerror=()=>t.onerror?.(),e.onclose=o=>t.onclose?.({code:o.code,reason:o.reason}),t},rn=0,Ro=1,nn=2,an=3,si=new Set([Xe.AuthFailed,Xe.DuplicateClient,Xe.LimitExceeded]),ii={[Xe.AuthFailed]:"relay authentication failed",[Xe.DuplicateClient]:"relay connection replaced by another client",[Xe.LimitExceeded]:"relay connection limit reached"},sn=()=>{const e=typeof navigator<"u"&&navigator.onLine===!1,t=typeof document<"u"&&document.visibilityState==="hidden";return e||t},ta=e=>{const t=e.helloRetryMs??1e3,o=e.helloTimeoutMs??3e4,r=e.pingIntervalMs??3e4,n=e.pingTimeoutMs??15e3,a=e.batchWindowMs??Zn,s=e.batch!==!1,i=e.reconnectBaseDelayMs??1e3,c=e.reconnectMaxDelayMs??3e4,d=e.hiddenOrOfflineMaxDelayMs??6e4,l=e.createWireSocket??(h=>ni(new WebSocket(h)));let u=!1,g={state:"idle"};const m=new Set;let f=null,F=null,B=null,y=0,T=0,v=null,L=[],ee=!1;const W=h=>{if(!(g.state===h.state&&g.lastError===h.lastError)){g=h;for(const P of m)try{P(g)}catch{}}},He=h=>{const P=L;L=[];for(const E of P)E.reject(h)},je=h=>{const P=L;L=[];for(const E of P)E.resolve(h)},D=(h,P)=>{h.dead=!0;const E=Array.from(h.streams.values());h.streams.clear();for(const w of E)try{w.fail(P)}catch{}},ae=()=>{v!==null&&(clearTimeout(v),v=null)},Me=()=>{u||v===null||sn()||(ae(),$e(),So())},yt=()=>{typeof document<"u"&&document.visibilityState==="visible"&&Me()},Wt=()=>{ee||typeof window>"u"||(ee=!0,window.addEventListener("online",Me),typeof document<"u"&&document.addEventListener("visibilitychange",yt))},$e=()=>{!ee||typeof window>"u"||(ee=!1,window.removeEventListener("online",Me),typeof document<"u"&&document.removeEventListener("visibilitychange",yt))},Xr=()=>{if(u||v!==null)return;const h=Math.max(0,T-1),P=i*2**Math.min(h,10),E=sn()?d:c,w=Math.min(E,P);Wt(),v=setTimeout(()=>{v=null,$e(),So()},w)},ms=()=>{const h=new URL(e.relayUrl);return h.searchParams.set("v",String(kt)),h.searchParams.set("role","client"),h.searchParams.set("serverId",e.serverId),e.grant&&h.searchParams.set("grant",e.grant),h.toString()},So=async()=>{if(u)return;ae(),y+=1;const h=y;W({state:T>0?"reconnecting":"connecting",lastError:g.lastError});let P;try{P=await xs(e.hostEncPubJwk,{batch:s})}catch(_){if(h!==y||u)return;de(h,ue(_),!0);return}if(h!==y||u)return;let E;try{E=l(ms())}catch(_){de(h,ue(_));return}F=E;let w=!1,S=null,I=null,se=null,V=null,M=Promise.resolve(),x=null,$=null,be=!1,z=null,J=Date.now();const te=()=>{S!==null&&(clearInterval(S),S=null),I!==null&&(clearTimeout(I),I=null),se!==null&&(clearInterval(se),se=null),V!==null&&(clearTimeout(V),V=null),z!==null&&(z.dispose(),z=null)};B=te;function j(_,H=!1,N=!1){if(!(w||h!==y)){w=!0,te(),x&&(f=null,D(x,new Error(`relay tunnel reset: ${_.message}`))),He(_);try{E.close()}catch{}if(F===E&&(F=null),!u){if(T+=1,N){W({state:"error",lastError:_.message});return}W({state:H?"error":"reconnecting",lastError:_.message}),Xr()}}}const ze=()=>{try{E.send(P.helloText)}catch{}},q=(_,H)=>{$=_,be=H,S!==null&&(clearInterval(S),S=null),I!==null&&(clearTimeout(I),I=null);const N=new Map,K=Ks(),qe=Us();let le=Promise.resolve();const Ae=st=>{le=le.then(async()=>{if(at.dead)return;const Vt=await _.encryptor.encrypt(st);E.send(Vt)}).catch(()=>{})},Ke=H?qs({windowMs:a,sendBatch:Ae}):null;z=Ke;const at={streams:N,assembler:qe,nextStreamId:()=>K.next(),dead:!1,send(st){if(at.dead)return;const Vt=st[0]&~Pt;Vt!==R.Ping&&Vt!==R.Pong&&(J=Date.now()),Ke?Ke.enqueue(st):Ae(st)}};x=at,f=at,T=0,J=Date.now(),W({state:"connected"}),je(at),se=setInterval(()=>{Date.now()-J<r||(at.send(Be(R.Ping,0,To)),V===null&&(V=setTimeout(()=>{V=null,j(new Error("relay keepalive timeout"))},n)))},r)},Te=(_,H)=>{let N;try{N=_s(H)}catch(le){j(ue(le));return}if(V!==null&&(clearTimeout(V),V=null),N.frameType===R.Ping){_.send(Be(R.Pong,N.streamId,To));return}if(N.frameType===R.Pong)return;J=Date.now();let K=N.payload;if(N.frameType===R.WsText||N.frameType===R.WsBinary){let le;try{le=_.assembler.push(N)}catch(Ae){j(ue(Ae));return}if(le===null)return;K=le}else if(N.hasMoreFragments){j(new Error("unexpected fragmented tunnel frame"));return}const qe=_.streams.get(N.streamId);qe&&qe.handleFrame(N.frameType,K)};E.onopen=()=>{w||h!==y||(ze(),S=setInterval(ze,t))},E.onmessage=_=>{if(w||h!==y)return;const H=_.data;if(typeof H=="string"){M=M.then(async()=>{if(w||h!==y)return;const K=await P.handleText(H);if(K.type==="established"){if($)return;q(K.channel,K.batch)}else K.type==="fail"&&j(new Error(`relay handshake failed: ${K.reason}`))}).catch(K=>{j(ue(K))});return}const N=H instanceof ArrayBuffer?new Uint8Array(H):H instanceof Uint8Array?H:null;N&&(M=M.then(async()=>{if(w||h!==y)return;const K=x,qe=$;if(!K||!qe){j(new Error("encrypted frame before handshake completed"));return}let le;try{le=await qe.decryptor.decrypt(N)}catch(Ae){j(ue(Ae));return}if(be){let Ae;try{Ae=Hs(le)}catch(Ke){j(ue(Ke));return}for(const Ke of Ae){if(w||h!==y||K.dead)return;Te(K,Ke)}return}Te(K,le)}).catch(K=>{j(ue(K))}))},E.onclose=_=>{const H=si.has(_.code);j(new Error(ii[_.code]??`relay socket closed (code ${_.code})`),H,H)},E.onerror=()=>{},I=setTimeout(()=>{I=null,j(new Error("relay handshake timeout"),!0)},o);function de(_,H,N=!1){_!==y||u||(He(H),T+=1,W({state:N?"error":"reconnecting",lastError:H.message}),Xr())}},Zr=h=>u?Promise.reject(new Error("relay tunnel closed")):h?.aborted?Promise.reject(Zt()):f&&!f.dead?Promise.resolve(f):new Promise((P,E)=>{let w=null;const S={resolve(I){w&&h&&h.removeEventListener("abort",w),P(I)},reject(I){w&&h&&h.removeEventListener("abort",w),E(I)}};h&&(w=()=>{L=L.filter(I=>I!==S),E(Zt())},h.addEventListener("abort",w,{once:!0})),L.push(S)}),gs=async(h,P)=>{const E=await Zs(h,P),w=E.signal;if(w?.aborted)throw Zt();const S=await Zr(w),I=S.nextStreamId();return await new Promise((se,V)=>{let M=!1,x=!1,$=null,be=null;const z=()=>{S.streams.delete(I),S.assembler.dropStream(I),be&&w&&w.removeEventListener("abort",be)},J=q=>{if(!x){if(x=!0,z(),!M){V(q);return}try{$?.error(q)}catch{}}},te=q=>{S.dead||S.send(Be(R.StreamAbort,I,Yt({reason:q})))},j=q=>ti(new Error(q));be=()=>{te("aborted"),J(Zt())},S.streams.set(I,{handleFrame(q,Te){if(q===R.HttpResponse){if(M||x)return;let de;try{de=Qt(Te,Ws)}catch(N){te("malformed response head"),J(j(ue(N).message));return}const _=de.status===204||de.status===205||de.status===304;let H=null;_||(H=new ReadableStream({start(N){$=N},cancel(){x||(x=!0,z(),te("response body cancelled"))}})),M=!0,se(new Response(H,{status:de.status,headers:de.headers})),_&&(x=!0,z());return}if(q===R.HttpBody){if(!M||x)return;try{$?.enqueue(Te)}catch{}return}if(q===R.StreamEnd){if(x)return;if(!M){J(j("tunnel stream ended before response head"));return}x=!0,z();try{$?.close()}catch{}return}if(q===R.StreamAbort){let de="stream aborted by host";try{de=Qt(Te,on).reason}catch{}J(j(de))}},fail(q){J(j(q.message))}}),w&&w.addEventListener("abort",be,{once:!0});const ze={method:E.method,path:E.path,query:E.query,headers:E.headers};S.send(Be(R.HttpRequest,I,Yt(ze))),(async()=>{try{if(E.body)for await(const q of E.body){if(x||S.dead)return;for(const Te of Xn(q))S.send(Be(R.HttpBody,I,Te))}!x&&!S.dead&&S.send(Be(R.StreamEnd,I,To))}catch(q){te("request body failed"),J(j(ue(q).message))}})()})},ps=h=>{const P=h.indexOf("?");return P===-1?{path:h,query:""}:{path:h.slice(0,P),query:h.slice(P+1)}},Fs=(h,P)=>{let E=rn,w=null,S=0,I=!1;const se={get readyState(){return E},onopen:null,onmessage:null,onerror:null,onclose:null,send(M){if(E!==Ro||!w||w.dead)throw new Error("relay tunnel socket is not open");if(typeof M=="string"){for(const $ of tn(R.WsText,S,oi.encode(M)))w.send($);return}const x=M instanceof ArrayBuffer?new Uint8Array(M.slice(0)):(()=>{const $=new Uint8Array(M.byteLength);return $.set(new Uint8Array(M.buffer,M.byteOffset,M.byteLength)),$})();for(const $ of tn(R.WsBinary,S,x))w.send($)},close(M=1e3,x=""){E===an||E===nn||(E===Ro&&w&&!w.dead&&(E=nn,w.send(Be(R.WsClose,S,Yt({code:M,reason:x})))),V(M,x))}},V=(M,x,$=!1)=>{if(!I){if(I=!0,w&&(w.streams.delete(S),w.assembler.dropStream(S)),E=an,$)try{se.onerror?.()}catch{}try{se.onclose?.({code:M,reason:x})}catch{}}};return(async()=>{let M;try{M=await Zr()}catch(z){V(1006,ue(z).message,!0);return}if(I)return;w=M,S=M.nextStreamId(),M.streams.set(S,{handleFrame(z,J){if(z===R.WsOpened){if(E===rn){E=Ro;try{se.onopen?.()}catch{}}return}if(z===R.WsText){try{se.onmessage?.({data:ri.decode(J)})}catch{}return}if(z===R.WsBinary){const te=new ArrayBuffer(J.byteLength);new Uint8Array(te).set(J);try{se.onmessage?.({data:te})}catch{}return}if(z===R.WsClose){let te=1e3,j="";try{const ze=Qt(J,Vs);te=ze.code,j=ze.reason}catch{}V(te,j);return}if(z===R.StreamAbort){let te="stream aborted";try{te=Qt(J,on).reason}catch{}V(1006,te,!0)}},fail(z){V(1012,z.message,!0)}});const{path:x,query:$}=ps(h),be=P&&P.length>0?{path:x,query:$,protocols:P}:{path:x,query:$};M.send(Be(R.WsOpen,S,Yt(be)))})(),se},hs=()=>{if(u)return;u=!0,y+=1,ae(),$e(),B?.(),B=null;const h=f;f=null;const P=new Error("relay tunnel closed");h&&D(h,P),He(P);try{F?.close()}catch{}F=null,W({state:"idle"})};return So(),{fetch:gs,openWebSocket:Fs,getStatus:()=>g,subscribeStatus(h){return m.add(h),()=>{m.delete(h)}},close:hs}};let ce=null,De=null;const ci=(e,t)=>e.relayUrl===t.relayUrl&&e.serverId===t.serverId&&e.grant===t.grant&&JSON.stringify(e.hostEncPubJwk)===JSON.stringify(t.hostEncPubJwk),Co=()=>ce,gp=()=>!ce||!De?null:{relayUrl:De.relayUrl,serverId:De.serverId,hostEncPubJwk:{...De.hostEncPubJwk}},pp=()=>ce!==null,di=e=>(ce&&De&&ci(De,e)||(ce?.close(),De=e,ce=ta(e)),ce),Fp=(e,t)=>{ce!==t&&(ce?.close(),De=e,ce=t)},li=()=>{ce?.close(),ce=null,De=null};let oa=()=>null,ra="",go={},et="",It=0,Je=null,ut="",xt=0,tt="",Ye=null,xe="",io=0,co=0;const Cr=1e4,ui=e=>e.toLowerCase()==="authorization",na=e=>{const t={};for(const[o,r]of Object.entries(e||{})){const n=o.trim(),a=r.trim();n&&a&&!ui(n)&&(t[n]=a)}return t},fi=(e,t)=>{const o=Object.entries(e);return o.length!==Object.keys(t).length?!1:o.every(([r,n])=>t[r]===n)},ko=e=>typeof e!="string"?"":e.trim(),mi=()=>{if(typeof window>"u")return"";const e=window.__PICHAMBER_CLIENT_TOKEN__;return ko(e)},gi=()=>{if(typeof window>"u")return"";const e=window.__PICHAMBER_API_BASE_URL__;return typeof e=="string"?e.trim():""},aa=(e,t)=>{const o=typeof e=="string"&&e.trim()?e.trim():gi();if(!o)return t;try{return new URL(t,`${o.replace(/\/+$/,"")}/`).toString()}catch{return t}},kr=e=>{try{return new URL(e).origin}catch{return""}},sa=()=>{ut="",xt=0,tt="",Ye=null,xe="",io+=1},jt=()=>{et="",It=0,sa()},ia=()=>{co+=1,Je=null,jt(),Dr()},ca=e=>{const t=ko(e);ra=t,ia(),oa=()=>t?{type:"bearer",token:t}:null},da=e=>{const t=na(e);fi(go,t)||(go=t,ia())},vr=()=>{if(Object.keys(go).length>0)return go;if(typeof window>"u")return{};const e=window.__PICHAMBER_RUNTIME_HEADERS__;return e&&typeof e=="object"?na(e):{}},la=()=>ra||mi(),pi=(e,t)=>{const o=ko(e);if(!o||typeof t!="number"||!Number.isFinite(t)){jt();return}const r=et;et=o,It=t,r&&r!==o&&Ei()},ua=()=>!et||It<=Date.now()+Cr?(jt(),""):et,Fi=e=>{const t=kr(e);return!t||tt!==t?"":!ut||xt<=Date.now()+Cr?(ut="",xt=0,tt="",""):ut},hi=()=>{const e=ua();return!e&&(la()||typeof window<"u")&&$t().catch(()=>{}),e},fa=async()=>{const e=await oa(),t=e?.type==="bearer"?ko(e.token):la();return t?{type:"bearer",token:t}:null},ma=e=>{if(Je)return Je;const t=co,r=(async()=>{const n=await fa(),a=new Headers;for(const[u,g]of Object.entries(vr()))a.set(u,g);n?.type==="bearer"&&a.set("Authorization",`Bearer ${n.token}`);const s=Co(),i=s?await s.fetch("/auth/url-token",{method:"POST",headers:a}):await fetch(aa(e,"/auth/url-token"),{method:"POST",headers:a,credentials:"include"});if(!i.ok)throw t===co&&jt(),new Error(`Failed to mint runtime URL auth token (${i.status})`);const c=await i.json().catch(()=>null),d=typeof c?.token=="string"?c.token.trim():"",l=typeof c?.expiresAt=="number"?c.expiresAt:0;if(t!==co)throw new Error("Runtime URL auth token response is stale");if(pi(d,l),!et)throw new Error("Runtime URL auth token response was invalid");return et})().finally(()=>{Je===r&&(Je=null)});return Je=r,Je},yi=e=>{const t=kr(e);if(!t)return Promise.reject(new Error("Local runtime URL auth origin was invalid"));if(Ye&&xe===t)return Ye;const o=io,n=(async()=>{const a=await fetch(aa(t,"/auth/url-token"),{method:"POST",credentials:"include"});if(!a.ok)throw o===io&&t===xe&&(ut="",xt=0,tt=""),new Error(`Failed to mint local runtime URL auth token (${a.status})`);const s=await a.json().catch(()=>null),i=typeof s?.token=="string"?s.token.trim():"",c=typeof s?.expiresAt=="number"?s.expiresAt:0;if(!i||!Number.isFinite(c))throw new Error("Local runtime URL auth token response was invalid");if(o!==io||t!==xe)throw new Error("Local runtime URL auth token response is stale");return ut=i,xt=c,tt=t,i})().finally(()=>{Ye===n&&(Ye=null,xe="")});return Ye=n,xe=t,Ye},$t=async e=>{const t=ua();return t||ma(e)},bi=async e=>{const t=kr(e);if(!t)throw new Error("Local runtime URL auth origin was invalid");const o=Fi(t);return o||((tt&&tt!==t||xe&&xe!==t)&&sa(),yi(t))};let lt=0,Dt=null,ga=null;const Yo=new Set,Ai=5e3,Ei=()=>{for(const e of Yo)try{e()}catch{}},pa=()=>{Dt!==null&&(clearTimeout(Dt),Dt=null)},Dr=()=>{if(pa(),lt<=0||typeof window>"u")return;const e=It-Cr-Ai,t=It>0?Math.max(0,e-Date.now()):0;Dt=setTimeout(()=>{Dt=null,!(lt<=0)&&ma(ga).catch(()=>{}).finally(()=>{Dr()})},t)},hp=e=>{typeof e=="string"&&e.trim()&&(ga=e.trim()),lt+=1,Dr();let t=!1;return()=>{t||(t=!0,lt=Math.max(0,lt-1),lt===0&&pa())}},yp=e=>(Yo.add(e),()=>{Yo.delete(e)}),Bi=async e=>{const t=new Headers(e);for(const[r,n]of Object.entries(vr()))t.has(r)||t.set(r,n);if(t.has("Authorization"))return t;const o=await fa();return o?.type==="bearer"&&t.set("Authorization",`Bearer ${o.token}`),t},po=/^[a-z][a-z\d+.-]*:\/\//i,wi=e=>{const t=e.trim();return t?t.startsWith("/")?t:`/${t}`:"/"},Qo=e=>typeof e!="string"?"":e.trim().replace(/\/+$/,""),Ci=()=>{if(typeof window>"u")return"";const e=window.__PICHAMBER_API_BASE_URL__;return Qo(e)},ki=e=>{const t=e.currentHref?.();return t||(typeof window<"u"?window.location.href||window.location.origin:"")},Xo=(e,t)=>{if(!t)return;const o=t instanceof URLSearchParams?Array.from(t.entries()):Object.entries(t);for(const[r,n]of o)n!=null&&e.searchParams.set(r,String(n))},vi=(e,t)=>{if(!t)return e;const o=new URLSearchParams;Xo({searchParams:o},t);const r=o.toString();return r?e.includes("?")?`${e}&${r}`:`${e}?${r}`:e},cn=(e,t,o)=>{if(po.test(t)){const a=new URL(t);return Xo(a,o),a.toString()}const r=wi(t);if(!e)return vi(r,o);const n=new URL(r,`${e}/`);return Xo(n,o),n.toString()},Po=e=>{const t=hi();if(!t)return e;const o=po.test(e)?new URL(e):new URL(e,"http://pichamber.local");return o.searchParams.set("oc_url_token",t),po.test(e)?o.toString():`${o.pathname}${o.search}${o.hash}`},Di=(e,t)=>{const o=po.test(e)?new URL(e):new URL(e,ki(t));return o.protocol==="ws:"||o.protocol==="wss:"||(o.protocol=o.protocol==="https:"?"wss:":"ws:"),o.toString()},Sr=(e={})=>{const t=Qo(e.apiBaseUrl),o=Qo(e.realtimeBaseUrl),r=()=>t||Ci(),n=()=>o||r(),a=(i,c)=>cn(r(),i,c),s=(i,c)=>cn(n(),i,c);return{api:a,authenticatedAsset:(i,c)=>Po(a(i,c)),auth:a,health:i=>a("/health",i),rawFile:(i,c)=>a("/api/fs/raw",{path:i,download:c?.download===!0?!0:void 0,allowOutsideWorkspace:c?.allowOutsideWorkspace===!0?!0:void 0,outsideFileGrant:c?.outsideFileGrant}),sse:(i,c)=>Po(s(i,c)),websocket:(i,c)=>Di(Po(s(i,c)),e)}};let Fo=Sr();const Se=()=>Fo,Si=e=>{Fo=e},Fa=e=>(Fo=Sr(e),Fo),ot=e=>e.startsWith("/api/")||e==="/api"||e.startsWith("/auth/")||e==="/auth"||e==="/health",Mi=()=>typeof window>"u"?"":window.location.origin||"",Mr=e=>{if(typeof window>"u")return!1;const t=Mi();if(t&&e.origin===t)return!0;try{const o=new URL(window.location.href||t);return e.protocol===o.protocol&&e.host===o.host}catch{return!1}},Tr=e=>/^[a-z][a-z\d+.-]*:\/\//i.test(e),Rr=(e,t)=>{if(!t)return;const o=t instanceof URLSearchParams?Array.from(t.entries()):Object.entries(t);for(const[r,n]of o)n!=null&&e.searchParams.set(r,String(n))},lo=e=>{try{const t=Se().api("/api");if(!/^[a-z][a-z\d+.-]*:\/\//i.test(t))return!1;const o=new URL(t);return e.origin!==o.origin?!1:ot(e.pathname)}catch{return!1}},Io=e=>{if(ot(e))return!0;if(!/^[a-z][a-z\d+.-]*:\/\//i.test(e))return!1;try{const t=new URL(e);return Mr(t)&&ot(t.pathname)}catch{return!1}},Ti=(e,t)=>{try{const o=new URL(e);if(!Mr(o))return e;const r=Ze(`${o.pathname}${o.search}`,t);return!Tr(r)&&(o.protocol==="http:"||o.protocol==="https:")?(Rr(o,t),o.toString()):o.hash?`${r}${o.hash}`:r}catch{return e}},Ze=(e,t)=>e==="/health"?Se().health(t):e.startsWith("/auth/")||e==="/auth"?Se().auth(e,t):ot(e)?Se().api(e,t):/^[a-z][a-z\d+.-]*:\/\//i.test(e)?Ti(e,t):e,Ri=e=>{const t=e instanceof Request?e.url:e.toString();if(!Tr(t))return ot(t);try{return lo(new URL(t))}catch{return!1}},Pi=e=>{for(let t=0;t<e.length;t+=1)if(e.charCodeAt(t)>255)return!1;return!0},Ii=(e,t)=>!Pi(t),dn=e=>{if(!e)return;const t=e instanceof Headers?Array.from(e.entries()):Array.isArray(e)?e:Object.entries(e);if(t.length===0)return;const o=[];let r=!1;for(const[n,a]of t)Ii(n,a)?(o.push([n,encodeURIComponent(a)]),r=!0):o.push([n,a]);return r?o:void 0},we=async(e,t,o=!0)=>{const r=new Headers(dn(e)??e);return t&&new Headers(dn(t)??t).forEach((n,a)=>r.set(a,n)),o?Bi(r):r},xi=(e,t)=>{if(!t)return e;const o=new URL(e,wr);return Rr(o,t),`${o.pathname}${o.search}`},ha=(e,t)=>{const o=e instanceof Request?e.url:e.toString();if(!Tr(o))return ot(o)?xi(o,t):null;try{const r=new URL(o);return!Mr(r)||!ot(r.pathname)?null:(Rr(r,t),`${r.pathname}${r.search}`)}catch{return null}},_i=async(e,t,o)=>{const r=Co();if(!r)return null;const n=ha(e,o);if(n===null)return null;const a=e instanceof Request?e.headers:void 0,s=await we(a,t.headers,!0);return e instanceof Request?r.fetch(e,{...t,headers:s}):r.fetch(n,{...t,headers:s})},Oi=(e,t)=>{if(typeof e=="string")return Ze(e,t);if(e instanceof URL)return Ze(e.toString(),t);const o=Ze(e.url,t);return o===e.url?e:new Request(o,e)},Ni=/\/api\/pi\/(health|projects|sessions|providers|resources|settings)(\b|\/|\?|$)/,eo=new Map,Ui=(e,t,o)=>o||e!=="GET"||t.includes("/event")||!Ni.test(t)?null:`GET ${t}`,p=async(e,t={})=>{const{query:o,...r}=t,n=Co(),a=n?ha(e,o):null;let s,i,c;if(n&&a!==null){const m=e instanceof Request?e.headers:void 0,f=await we(m,r.headers,!0);s=e instanceof Request?()=>n.fetch(e,{...r,headers:f}):()=>n.fetch(a,{...r,headers:f}),i=a,c=String(r.method??(e instanceof Request?e.method:"GET")).toUpperCase()}else{const m=Oi(e,o),f=m instanceof Request?m.headers:void 0,F=await we(f,r.headers,Ri(m));s=m instanceof Request?()=>fetch(new Request(m,{...r,headers:F})):()=>fetch(m,{...r,headers:F}),i=m instanceof Request?m.url:m instanceof URL?m.toString():String(m),c=String(r.method??(m instanceof Request?m.method:"GET")).toUpperCase()}const d=r.signal!=null||e instanceof Request,l=Ui(c,i,d);if(!l)return s();const u=eo.get(l);if(u)return u.then(m=>m.clone());const g=s();return eo.set(l,g),g.then(()=>eo.delete(l),()=>eo.delete(l)),g.then(m=>m.clone())};let ln=!1;const Li=()=>{if(ln||typeof window>"u")return;ln=!0;const e=window.fetch.bind(window);window.fetch=async(t,o)=>{const r=await _i(t,o??{});if(r)return r;if(typeof t=="string"){if(!Io(t)){try{const a=new URL(t);if(lo(a)){const s=await we(void 0,o?.headers);return e(t,{...o,headers:s})}}catch{}return e(t,o)}const n=await we(void 0,o?.headers);return e(Ze(t),{...o,headers:n})}if(t instanceof URL){const n=t.toString();if(!Io(n)){if(lo(t)){const s=await we(void 0,o?.headers);return e(t,{...o,headers:s})}return e(t,o)}const a=await we(void 0,o?.headers);return e(Ze(n),{...o,headers:a})}if(t instanceof Request){if(!Io(t.url)){try{const i=new URL(t.url);if(lo(i)){const c=await we(t.headers,o?.headers);return e(new Request(t,{...o,headers:c}))}}catch{}return e(t,o)}const n=await we(t.headers,o?.headers),a=Ze(t.url),s=a===t.url?t:new Request(a,t);return e(new Request(s,{...o,headers:n}))}return e(t,o)}},Zo="pichamber:runtime-endpoint-changed",er="pichamber:runtime-endpoint-will-change";let mt="",_t="";const xo=(e,t,o)=>{try{e[t]=o}catch{}},Pr=e=>{try{const t=new URL(e);return t.hash="",t.search="",t.pathname=t.pathname.replace(/\/+$/,"")||"/",`url:${t.toString().replace(/\/+$/,"")}`}catch{return`url:${e.trim().replace(/\/+$/,"")||"default"}`}},ya=()=>{if(typeof window>"u")return"";const e=window.__PICHAMBER_API_BASE_URL__;return typeof e=="string"?e.trim():""},ba=()=>{if(typeof window>"u")return"";const e=window.__PICHAMBER_LOCAL_ORIGIN__;return typeof e=="string"?e.trim():""},Aa=(e,t)=>{if(!e||!t)return!1;try{return new URL(e).origin===new URL(t).origin}catch{return!1}},Ir=()=>mt||ya();let _o="",un=null,fn,mn;const gn=e=>{if(typeof window>"u")return;const t=window[e];return typeof t=="string"?t:void 0},O=()=>{if(_t)return _t;const e=gn("__PICHAMBER_API_BASE_URL__"),t=gn("__PICHAMBER_LOCAL_ORIGIN__");if(un===mt&&fn===e&&mn===t)return _o;const o=Ir();return _o=Aa(o,ba())?"local":Pr(o),un=mt,fn=e,mn=t,_o},Hi=(e={})=>{if(mt||_t)return;const t=e.apiBaseUrl?.trim()||ya();t&&(mt=t,_t=e.runtimeKey?.trim()||(Aa(t,ba())?"local":Pr(t)))},ho=e=>{const t=e.apiBaseUrl.trim(),o=Ir(),r=O(),n=e.runtimeKey?.trim()||Pr(t),a={apiBaseUrl:t,previousApiBaseUrl:o,runtimeKey:n,previousRuntimeKey:r};if(typeof window<"u"&&window.dispatchEvent(new CustomEvent(er,{detail:a})),mt=t,_t=n,typeof window<"u"){const s=window;xo(s,"__PICHAMBER_API_BASE_URL__",t),xo(s,"__PICHAMBER_CLIENT_TOKEN__",e.clientToken||void 0),xo(s,"__PICHAMBER_RUNTIME_HEADERS__",e.requestHeaders||void 0)}Fa({apiBaseUrl:t,realtimeBaseUrl:t}),da(e.requestHeaders||null),ca(e.clientToken||null),e.relay?di(e.relay):li(),$t(t).catch(()=>{}),typeof window<"u"&&window.dispatchEvent(new CustomEvent(Zo,{detail:a}))},ji=e=>{if(typeof window>"u")return()=>{};const t=o=>{e(o.detail)};return window.addEventListener(er,t),()=>window.removeEventListener(er,t)},Ea=e=>{if(typeof window>"u")return()=>{};const t=o=>{e(o.detail)};return window.addEventListener(Zo,t),()=>window.removeEventListener(Zo,t)},$i=["local","remote",null],zi=["ok","not-configured","unreachable","incompatible","wrong-service","missing"];function Ba(e){if(!e||typeof e!="object")return{valid:!1};const t=e,o=t.localAvailable===!1?{localAvailable:!1}:{},r=t.target,n=t.status;if(r!==null&&(typeof r!="string"||!$i.includes(r)))return{valid:!1};if(typeof n!="string"||!zi.includes(n))return{valid:!1};if(r==="remote"||r==="local"){if(n==="ok"&&r==="local")return{valid:!0,outcome:{target:"local",status:"ok",...o}};if(n==="ok"&&r==="remote")return typeof t.hostId!="string"||typeof t.url!="string"?{valid:!1}:{valid:!0,outcome:{target:"remote",status:"ok",hostId:t.hostId,url:t.url,...o}};if(n==="unreachable")return r==="local"?{valid:!0,outcome:{target:"local",status:"unreachable",...o}}:typeof t.hostId!="string"||typeof t.url!="string"?{valid:!1}:{valid:!0,outcome:{target:"remote",status:"unreachable",hostId:t.hostId,url:t.url,...o}};if(n==="incompatible"||n==="wrong-service")return r!=="remote"?{valid:!1}:typeof t.hostId!="string"||typeof t.url!="string"?{valid:!1}:{valid:!0,outcome:{target:"remote",status:n,hostId:t.hostId,url:t.url,...o}};if(n==="missing")return r!=="remote"?{valid:!1}:typeof t.hostId!="string"?{valid:!1}:{valid:!0,outcome:{target:"remote",status:"missing",hostId:t.hostId,...o}}}if(r===null){if(n==="not-configured")return{valid:!0,outcome:{target:null,status:"not-configured",...o}};if(n==="missing")return{valid:!1}}return{valid:!1}}function qi(){if(Ki()!=="valid")return null;const t=window.__PICHAMBER_DESKTOP_BOOT_OUTCOME__,o=Ba(t);return o.valid?o.outcome:null}function Ki(){if(typeof window>"u")return"not-injected";const e=window.__PICHAMBER_DESKTOP_BOOT_OUTCOME__;return e==null?"not-injected":Ba(e).valid?"valid":"malformed"}let tr=null;const bp=e=>{tr=e},wa=()=>tr||(typeof window>"u"?null:window.__PICHAMBER_RUNTIME_APIS__??null),Gi=()=>typeof window>"u"?null:window.__PICHAMBER_ELECTRON__??null,Ft=()=>typeof window>"u"?null:window.__PICHAMBER_DESKTOP__??null,zt=()=>Gi()?.runtime==="electron",Wi=()=>{if(typeof window>"u")return null;const e=window.__PICHAMBER_PLATFORM__;return typeof e=="string"?e:null},Vi="right",Ap=()=>{if(!zt())return!1;const e=Wi();return e==="win32"||e==="linux"},Ep=e=>e==="left"?"left":Vi,Bp=e=>e==="left"?["close","minimize","maximize"]:["minimize","maximize","close"],re=()=>typeof Ft()?.invoke=="function",ht=()=>zt()&&re(),G=async(e,t)=>{const o=Ft();return typeof o?.invoke!="function"?null:o.invoke(e,t??{})},wp=async()=>{if(!ht()||!ne())return null;try{const e=await G("desktop_get_launch_at_login");return!e||typeof e.supported!="boolean"||typeof e.enabled!="boolean"?null:e}catch(e){return console.warn("Failed to get launch at login status",e),null}},Cp=async e=>{if(!ht()||!ne())return null;try{const t=await G("desktop_set_launch_at_login",{enabled:e});return!t||typeof t.supported!="boolean"||typeof t.enabled!="boolean"?null:t}catch(t){return console.warn("Failed to set launch at login status",t),null}},kp=async()=>{if(!ht()||!ne())return null;try{const e=await G("desktop_get_minimize_to_tray");return!e||typeof e.supported!="boolean"||typeof e.enabled!="boolean"?null:e}catch(e){return console.warn("Failed to get minimize to tray status",e),null}},vp=async e=>{if(!ht()||!ne())return null;try{const t=await G("desktop_set_minimize_to_tray",{enabled:e});return!t||typeof t.supported!="boolean"||typeof t.enabled!="boolean"?null:t}catch(t){return console.warn("Failed to set minimize to tray status",t),null}},Dp=async()=>{if(!ht()||!ne())return null;try{const e=await G("desktop_get_keep_awake");return!e||typeof e.supported!="boolean"||typeof e.enabled!="boolean"||typeof e.active!="boolean"?null:e}catch(e){return console.warn("Failed to get keep awake status",e),null}},Sp=async e=>{if(!ht()||!ne())return null;try{const t=await G("desktop_set_keep_awake",{enabled:e});return!t||typeof t.supported!="boolean"||typeof t.enabled!="boolean"||typeof t.active!="boolean"?null:t}catch(t){return console.warn("Failed to set keep awake status",t),null}},pn=e=>{const t=e.trim();if(!t)return null;try{return new URL(t).origin}catch{try{return new URL(t.endsWith("/")?t:`${t}/`).origin}catch{return null}}},Oo=e=>{const t=e.trim();if(!t)return null;try{return new URL(t)}catch{try{return new URL(t.endsWith("/")?t:`${t}/`)}catch{return null}}},Ji=e=>e.replace(/^\[|\]$/g,"").toLowerCase(),bt=e=>{const t=Ji(e);return t==="localhost"||t==="127.0.0.1"||t==="::1"},ne=()=>{if(typeof window>"u"||!vo())return!1;if(O()==="local")return!0;const e=typeof window.__PICHAMBER_LOCAL_ORIGIN__=="string"?window.__PICHAMBER_LOCAL_ORIGIN__:"",t=Oo(e),o=Oo(Ir());if(!o&&t&&qi()?.target==="local")return!0;if(t&&o){if(t.origin===o.origin)return!0;const s=t.port||(t.protocol==="https:"?"443":"80"),i=o.port||(o.protocol==="https:"?"443":"80");return t.protocol===o.protocol&&s===i&&bt(t.hostname)&&bt(o.hostname)}const r=Oo(window.location.origin);if(t&&r){if(t.origin===r.origin)return!0;const s=t.port||(t.protocol==="https:"?"443":"80"),i=r.port||(r.protocol==="https:"?"443":"80");return t.protocol===r.protocol&&s===i&&bt(t.hostname)&&bt(r.hostname)}const n=pn(e),a=pn(window.location.origin)||window.location.origin;return n&&a&&n===a?!0:!!(r&&bt(r.hostname))},vo=()=>typeof window>"u"?!1:zt(),Yi=()=>vo()&&re()&&ne(),Mp=async()=>{if(!vo())return!1;try{return await G("desktop_start_window_drag"),!0}catch{return!1}},Tp=()=>{const t=wa()?.runtime?.platform;return t==="web"?!0:t!=="desktop"},Rp=(e,t=vo())=>e==="web"&&!t,Qi=async()=>{if(typeof window<"u"){const e=window.__PICHAMBER_HOME__;if(e&&e.length>0)return e}return null},Pp=async e=>{if(Yi())try{const t=await Ft()?.openDialog?.({directory:!0,multiple:!1,title:"Select Working Directory",...e?{defaultPath:e}:{}});return!t||typeof t!="string"?{success:!1,error:"Directory selection cancelled"}:{success:!0,path:t}}catch(t){return console.warn("Failed to request directory access",t),{success:!1,error:t instanceof Error?t.message:String(t)}}return{success:!1,error:"Native directory picker not available"}},Ca=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),Ip=async e=>{if(re()&&ne())try{const t=await Ft()?.openDialog?.({directory:!1,multiple:!1,title:"Select File",returnGrant:!0,...e?.filters?{filters:e.filters}:{},...e?.defaultPath?{defaultPath:e.defaultPath}:{}});if(!t)return{success:!1,error:"File selection cancelled"};if(typeof t=="string")return{success:!0,path:t};if(!Ca(t))return{success:!1,error:"File selection cancelled"};const o=typeof t.path=="string"?t.path:"";return o?{success:!0,path:o,outsideFileGrant:typeof t.outsideFileGrant=="string"?t.outsideFileGrant:void 0}:{success:!1,error:"File selection cancelled"}}catch(t){return console.warn("Failed to request file access",t),{success:!1,error:t instanceof Error?t.message:String(t)}}return{success:!1,error:"Native file picker not available"}},xp=async e=>{const t=typeof e=="string"?e.trim():"";if(!t)return{success:!1,error:"Path is required"};if(!re()||!ne())return{success:!1,error:"Native file access not available"};try{const o=await Ft()?.grantFileAccess?.(t);if(!Ca(o))return{success:!1,error:"File access was not granted"};const r=typeof o.path=="string"?o.path:"",n=typeof o.outsideFileGrant=="string"?o.outsideFileGrant:"";return!r||!n?{success:!1,error:"File access was not granted"}:{success:!0,path:r,outsideFileGrant:n}}catch(o){return console.warn("Failed to request existing file access",o),{success:!1,error:o instanceof Error?o.message:String(o)}}},_p=async e=>({success:!0}),Op=async e=>({success:!0}),Np=async()=>re()?await G("desktop_check_for_updates"):null,Up=async e=>{if(!re())return!1;const t=Ft();let o=null,r=0,n;try{return typeof e=="function"&&t?.listen&&(o=await t.listen("pichamber:update-progress",a=>{const s=a?.payload;if(!s||typeof s!="object")return;const i=s,c=typeof i.event=="string"?i.event:null,d=i.data&&typeof i.data=="object"?i.data:null;if(c==="Started"){r=0,n=typeof d?.contentLength=="number"?d.contentLength:void 0,e({downloaded:r,total:n});return}if(c==="Progress"){const l=d?.downloaded,u=d?.total;typeof l=="number"&&(r=l),typeof u=="number"&&(n=u),e({downloaded:r,total:n});return}c==="Finished"&&e({downloaded:r,total:n})})),await G("desktop_download_and_install_update"),!0}catch(a){throw a instanceof Error?a:new Error(String(a))}finally{if(o)try{const a=o();a instanceof Promise&&await a}catch{}}},Lp=async()=>re()?Xi():!1,Xi=async()=>{if(!re())return!1;try{return await G("desktop_restart"),!0}catch(e){return console.warn("Failed to restart desktop app",e),!1}},Hp=async()=>{if(!re()||!ne())return null;try{const e=await G("desktop_get_lan_address");return typeof e=="string"&&e.trim().length>0?e.trim():null}catch(e){return console.warn("Failed to get desktop LAN address",e),null}},Zi=async(e,t)=>{if(!re()||!ne())return!1;const o=e?.trim();if(!o)return!1;try{return await G("desktop_open_path",{path:o,app:typeof t=="string"&&t.trim().length>0?t.trim():void 0}),!0}catch(r){return console.warn("Failed to open path",r),!1}},jp=async e=>{if(!re()||!ne())return!1;const t=e?.trim();if(!t)return!1;try{return await G("desktop_reveal_path",{path:t}),!0}catch{return Zi(t)}},$p=async(e,t)=>{if(!re()||!ne())return null;const o=e?.trim();if(!o)return null;try{const r=await G("desktop_save_markdown_file",{defaultFileName:o,content:t});return typeof r=="string"&&r.trim().length>0?r:null}catch(r){return console.warn("Failed to save markdown file",r),null}},zp=async(e,t,o)=>{if(!re()||!ne())return!1;const r=e?.trim(),n=t?.trim(),a=o?.trim();if(!r||!n||!a)return!1;try{return await G("desktop_open_in_app",{projectPath:r,appId:n,appName:a}),!0}catch(s){return console.warn("Failed to open project in app",s),!1}},qp=async(e,t,o)=>{if(!re()||!ne())return!1;const r=e?.trim(),n=t?.trim(),a=o?.trim();if(!r||!n||!a)return!1;try{return await G("desktop_open_file_in_app",{filePath:r,appId:n,appName:a}),!0}catch(s){return console.warn("Failed to open file in app",s),!1}},Kp=async(e,t)=>{if(!re()||!ne())return{apps:[],success:!1,hasCache:!1,isCacheStale:!1};const o=Array.isArray(e)?e.filter(r=>typeof r=="string"):[];if(o.length===0)return{apps:[],success:!0,hasCache:!1,isCacheStale:!1};try{const r=await G("desktop_get_installed_apps",{apps:o,force:t===!0?!0:void 0});if(!r||typeof r!="object")return{apps:[],success:!1,hasCache:!1,isCacheStale:!1};const n=r;return n.supported===!1?{apps:[],success:!0,hasCache:!1,isCacheStale:!1}:Array.isArray(n.apps)?{apps:n.apps.filter(s=>s&&typeof s=="object").map(s=>{const i=s;return{name:typeof i.name=="string"?i.name:"",iconDataUrl:typeof i.iconDataUrl=="string"?i.iconDataUrl:null}}).filter(s=>s.name.length>0),success:!0,hasCache:n.hasCache===!0,isCacheStale:n.isCacheStale===!0}:{apps:[],success:!1,hasCache:!1,isCacheStale:!1}}catch(r){return console.warn("Failed to fetch installed apps",r),{apps:[],success:!1,hasCache:!1,isCacheStale:!1}}},gt=e=>typeof e=="object"&&e!==null,ec=e=>e.trim().toLowerCase()==="authorization",tc=e=>{if(!gt(e))return;const t={};for(const[o,r]of Object.entries(e)){const n=o.trim(),a=typeof r=="string"?r.trim():"";!n||!a||/[\r\n:]/.test(n)||/[\r\n]/.test(a)||ec(n)||(t[n]=a)}return Object.keys(t).length>0?t:void 0},Gp=e=>`relay://${e}`,oc=e=>{if(!gt(e))return null;const t=oe(e,"relayUrl")||oe(e,"relay_url"),o=oe(e,"serverId")||oe(e,"server_id"),r=e.hostEncPubJwk??e.host_enc_pub_jwk;return!t||!o||!gt(r)?null:{relayUrl:t,serverId:o,hostEncPubJwk:r}},rc=/^(t|.*(?:token|auth|secret|api).*)$/i,Ue=e=>{const t=e.trim();if(!t)return null;try{const o=new URL(t);return o.protocol!=="http:"&&o.protocol!=="https:"?null:t.split("#")[0]||null}catch{return null}},Wp=e=>{const t=Ue(e);if(!t)return null;try{const o=new URL(t);if((o.pathname.replace(/\/+$/,"")||"/")==="/connect"&&o.searchParams.has("t"))return{persistedUrl:o.origin,redeemUrl:o.toString(),kind:"tunnel-connect-link"}}catch{return null}return{persistedUrl:t,redeemUrl:null,kind:"normal-host"}},Vp=e=>{const t=Ue(e);if(!t)return e;try{const o=new URL(t);(o.username||o.password)&&(o.username="",o.password="");const r=Array.from(new Set(Array.from(o.searchParams.keys())));for(const n of r)rc.test(n)&&o.searchParams.set(n,"[REDACTED]");return o.toString()}catch{return t}},Jp=(e,t)=>{const o=Ue(e),r=Ue(t);if(!o||!r)return!1;try{const n=new URL(o),a=new URL(r);if(n.origin!==a.origin||a.search&&n.search!==a.search)return!1;const s=a.pathname.length>1?a.pathname.replace(/\/+$/,""):a.pathname,i=n.pathname.length>1?n.pathname.replace(/\/+$/,""):n.pathname;return s==="/"?!0:i===s||i.startsWith(`${s}/`)}catch{return!1}},oe=(e,t)=>{const o=e[t];return typeof o=="string"?o:null},Fn=(e,t)=>{const o=e[t];return typeof o=="number"&&Number.isFinite(o)?o:null},nc=e=>{if(!gt(e))return null;const t=oe(e,"id"),o=oe(e,"label"),r=oe(e,"url"),n=oe(e,"apiUrl")||oe(e,"api_url"),a=oe(e,"clientToken")||oe(e,"client_token"),s=tc(e.requestHeaders),i=oc(e.relay);return!t||!o||!r?null:{id:t,label:o,url:r,...n?{apiUrl:n}:{},...a?{clientToken:a}:{},...s?{requestHeaders:s}:{},...i?{relay:i}:{}}},ac=e=>Ue(e.apiUrl||e.url)||e.apiUrl||e.url,nt=()=>re()?(e,t)=>G(e,t):null,ka=async()=>{const e=nt();if(!e)return{hosts:[],defaultHostId:"local",initialHostChoiceCompleted:!1};const t=await e("desktop_hosts_get");if(!gt(t))return{hosts:[],defaultHostId:null,initialHostChoiceCompleted:!1};const o=t.hosts,r=Array.isArray(o)?o.map(nc).filter(i=>!!i):[],n=oe(t,"defaultHostId")||oe(t,"default_host_id")||oe(t,"defaultHostID"),a=t.initialHostChoiceCompleted===!0||t.initial_host_choice_completed===!0,s=oe(t,"localOrigin")||oe(t,"local_origin");return{hosts:r,defaultHostId:n,initialHostChoiceCompleted:a,localOrigin:s}},sc=async e=>{const t=nt();if(!t)return;const o={hosts:e.hosts,defaultHostId:e.defaultHostId,initialHostChoiceCompleted:e.initialHostChoiceCompleted};e.localClientToken!==void 0&&(o.localClientToken=e.localClientToken),await t("desktop_hosts_set",{input:o})},Yp=async()=>{const e=nt();if(!e)return"";const t=await e("desktop_local_client_token_get").catch(()=>null);return typeof t=="string"?t.trim():""},Qp=async()=>{const e=nt();if(!e)return"";const t=await e("desktop_install_id_get").catch(()=>null);return typeof t=="string"?t.trim():""},ic=8e3,hn=async(e,t,o)=>{const r=new AbortController,n=window.setTimeout(()=>r.abort(),ic);try{return await e.fetch(t,{...o,signal:r.signal})}finally{window.clearTimeout(n)}},Xp=async(e,t)=>{const o=ta({relayUrl:e.relayUrl,serverId:e.serverId,hostEncPubJwk:e.hostEncPubJwk}),r=Date.now();let n=!1;try{if(!(await hn(o,"/health")).ok)return{status:"unreachable",latencyMs:0};const s=new Headers({Accept:"application/json"});for(const[d,l]of Object.entries(t?.requestHeaders||{}))d.toLowerCase()!=="authorization"&&s.set(d,l);const i=t?.clientToken?.trim();i&&s.set("Authorization",`Bearer ${i}`);const c=await hn(o,"/auth/session",{headers:s});return c.status===401||c.status===403?{status:"auth",latencyMs:Math.max(0,Date.now()-r)}:c.ok?(n=t?.keepTunnel===!0,{status:"ok",latencyMs:Math.max(0,Date.now()-r),...n?{tunnel:o}:{}}):{status:"unreachable",latencyMs:0}}catch{return{status:"unreachable",latencyMs:0}}finally{n||o.close()}},va=async(e,t)=>{const o=nt();if(!o)return{status:"unreachable",latencyMs:0};const r=await o("desktop_host_probe",{url:e,clientToken:t?.clientToken||void 0,requestHeaders:t?.requestHeaders||void 0,expectedServerId:t?.expectedServerId||void 0});if(!gt(r))return{status:"unreachable",latencyMs:0};const n=r.status,a=n==="ok"||n==="auth"||n==="update-recommended"||n==="incompatible"||n==="wrong-service"||n==="unreachable"?n:"unreachable",s=Fn(r,"latencyMs")??Fn(r,"latency_ms")??0;return{status:a,latencyMs:s}},Zp=async(e,t)=>{const o=nt();o&&await o("desktop_new_window_at_url",{url:e,clientToken:t?.clientToken||void 0,requestHeaders:t?.requestHeaders||void 0})},eF=async e=>{const t=nt();t&&await t("desktop_new_window_for_host",{hostId:e})},cc=5e3,dc=1500;let No=!1;const lc=async e=>{if(!zt()||No)return;const t=`host:${e}`;if(O()===t){No=!0;try{const o=await ka().catch(()=>null),r=o?.hosts.find(u=>u.id===e);if(!o||!r?.relay)return;const n=r.apiUrl?Ue(r.apiUrl):null;if(n&&n.startsWith("https://"))return;const a=await p("/api/client-auth/connection/candidates").catch(()=>null);if(!a?.ok)return;const s=await a.json().catch(()=>null);if(!s||s.serverId!==r.relay.serverId)return;const i=Array.isArray(s.candidates)?s.candidates:[],c=[];for(const u of i){if(!u||typeof u!="object")continue;const g=u;if(g.type!=="lan"||typeof g.url!="string")continue;const m=Ue(g.url);m&&!c.includes(m)&&c.push(m)}if(c.length===0)return;const d=n&&c.includes(n)?n:c[0];d!==n&&await sc({hosts:o.hosts.map(u=>u.id===e?{...u,apiUrl:d}:u),defaultHostId:o.defaultHostId,initialHostChoiceCompleted:o.initialHostChoiceCompleted}).catch(()=>{});const l=await va(d,{clientToken:r.clientToken||null,requestHeaders:r.requestHeaders||null,expectedServerId:r.relay.serverId}).catch(()=>({status:"unreachable",latencyMs:0}));if(l.status==="unreachable"||l.status==="wrong-service"||l.status==="incompatible"||O()!==t)return;ho({apiBaseUrl:d,clientToken:r.clientToken||null,requestHeaders:r.requestHeaders||null,runtimeKey:t})}finally{No=!1}}},uc=e=>{typeof window>"u"||window.setTimeout(()=>{lc(e).catch(()=>{})},cc)},fc=async e=>{if(!zt())return;const t=await ka().catch(()=>null);if(!t)return;const o=e||(t.defaultHostId!=="local"?t.defaultHostId:null);if(!o)return;const r=t.hosts.find(u=>u.id===o);if(!r?.relay)return;const n=`host:${r.id}`;if(O()===n)return;const a=u=>{ho({apiBaseUrl:u,clientToken:r.clientToken||null,requestHeaders:r.requestHeaders||null,runtimeKey:n})},s=()=>{ho({apiBaseUrl:typeof window<"u"?window.location.origin:"",clientToken:r.clientToken||null,runtimeKey:n,relay:r.relay??void 0}),uc(r.id)},i=r.apiUrl?Ue(ac(r)):null;if(!i){s();return}const c=u=>u.status!=="unreachable"&&u.status!=="wrong-service"&&u.status!=="incompatible",d=va(i,{clientToken:r.clientToken||null,requestHeaders:r.requestHeaders||null,expectedServerId:r.relay.serverId}).catch(()=>({status:"unreachable",latencyMs:0})),l=await Promise.race([d,new Promise(u=>setTimeout(()=>u(null),dc))]);if(l){if(c(l)){a(i);return}s();return}s(),d.then(u=>{c(u)&&O()===n&&a(i)})},dt=1,mc=["session.snapshot","session.lifecycle","assistant.message.start","assistant.message.delta","assistant.message.end","assistant.thinking.delta","session.tool.start","session.tool.update","session.tool.end","session.queue","session.model","session.thinking","session.compaction","session.error","session.interrupted"],Da=e=>{if(!e||typeof e!="object")return!1;const t=e;return t.protocolVersion===dt&&t.kind==="event"&&typeof t.name=="string"&&Number.isSafeInteger(t.sequence)&&t.sequence>=0&&typeof t.sessionId=="string"&&t.sessionId.length>0&&typeof t.directory=="string"&&t.directory.length>0&&!!(t.payload&&typeof t.payload=="object"&&!Array.isArray(t.payload))&&mc.includes(t.name)},Sa=(e,t)=>{const o=Co();return o?o.openWebSocket(Js(e),t):ai(new WebSocket(e))},gc=3e4,pc=250,Fc=5e3,hc=6e4,yc=8,bc=2e3,Ma=e=>{const t={};return typeof e.fromSequence=="number"&&Number.isFinite(e.fromSequence)&&(t.fromSequence=String(Math.max(0,Math.floor(e.fromSequence)))),typeof e.sessionId=="string"&&e.sessionId.length>0&&(t.sessionId=e.sessionId),t},yn=(e,t)=>{const o=Se(),r=Ma(t);return e==="ws"?o.websocket("/api/pi/events",r):o.sse("/api/pi/events",r)},Ac=()=>"/api/pi/runtime",Ec=async(e,t)=>{let o;try{o=await p(Ac(),e?{signal:e}:{})}catch(a){return{state:"unavailable",protocolVersion:dt,capabilities:[],error:{code:a instanceof DOMException&&a.name==="AbortError"?"DAEMON_TIMEOUT":"DAEMON_UNAVAILABLE"}}}if(t&&t!==O())return{state:"unavailable",protocolVersion:dt,capabilities:[],error:{code:"DAEMON_UNAVAILABLE",message:"Runtime changed during request"}};if(!o.ok)return{state:"unavailable",protocolVersion:dt,capabilities:[],error:{code:o.status===401||o.status===403?"DAEMON_AUTH_FAILED":"DAEMON_UNAVAILABLE"}};const r=await o.json().catch(()=>null);if(!r||typeof r!="object")return{state:"unavailable",protocolVersion:dt,capabilities:[],error:{code:"DAEMON_PROTOCOL_MISMATCH"}};const n=typeof r.error?.code=="string"?r.error.code:void 0;return{state:r.state==="ready"?"ready":"unavailable",protocolVersion:typeof r.protocolVersion=="number"?r.protocolVersion:dt,capabilities:Array.isArray(r.capabilities)?r.capabilities.filter(a=>typeof a=="string"):[],...n?{error:{code:n,...typeof r.error?.message=="string"?{message:r.error.message}:{}}}:{}}},Bc=(e,t,o,r,n,a)=>{const s=new AbortController,i=()=>s.abort();return t.aborted?s.abort():t.addEventListener("abort",i,{once:!0}),p("/api/pi/events",{headers:{Accept:"text/event-stream"},query:e,signal:s.signal}).then(async c=>{if(!c.ok||!c.body){a(`sse-status-${c.status}`);return}o();const d=c.body.getReader(),l=new TextDecoder;let u="",g=[];const m=()=>{if(g.length===0)return;const f=g.join(`
2
+ `).trim();if(g=[],!!f)try{const F=JSON.parse(f);Da(F)&&n(F)}catch{}};for(;;){const{value:f,done:F}=await d.read();if(F){m(),a("sse-eof");return}r(),u+=l.decode(f,{stream:!0});let B=u.indexOf(`
3
+ `);for(;B!==-1;){const y=u.slice(0,B).replace(/\r$/,"");u=u.slice(B+1),y.length===0?m():y.startsWith("data:")&&g.push(y.slice(5).replace(/^ /,"")),B=u.indexOf(`
4
+ `)}}}).catch(c=>{if(s.signal.aborted)return;const d=c instanceof Error?c.message.slice(0,80):"fetch-failed";a(`sse-error:${d}`)}).finally(()=>t.removeEventListener("abort",i)),i},wc=(e,t,o,r,n,a)=>{const s=Sa(e);let i=!1,c=!1,d=null;const l=()=>{if(!i){i=!0,d&&clearTimeout(d),d=null;try{s.close()}catch{}}};d=setTimeout(()=>{c||i||(n("ws-ready-timeout"),l())},a);const u=()=>l();return t.aborted?l():t.addEventListener("abort",u,{once:!0}),s.onopen=()=>{c=!0,d&&clearTimeout(d),d=null,o()},s.onmessage=g=>{const m=typeof g.data=="string"?g.data:void 0;if(m)try{const f=JSON.parse(m);Da(f)&&r(f)}catch{}},s.onerror=()=>{i||n("ws-error")},s.onclose=g=>{t.removeEventListener("abort",u),i||n(`ws-close-${g?.code??0}`)},l},Cc=()=>typeof document>"u"||document.visibilityState==="visible",kc=()=>typeof navigator>"u"||navigator.onLine!==!1,tF=(e,t={})=>{const o=new AbortController,r=t.signal;r&&(r.aborted?o.abort():r.addEventListener("abort",()=>o.abort(),{once:!0}));const n=o.signal,a=t.runtimeKey,s=()=>!a||a===O();let i=!1,c=0,d=typeof t.fromSequence=="number"&&Number.isFinite(t.fromSequence)?Math.max(0,Math.floor(t.fromSequence)):0,l=t.transport==="ws"?"ws":"sse",u=null,g=null,m=null,f=0,F=!1;const B=()=>{u&&clearTimeout(u),g&&clearTimeout(g),u=null,g=null},y=()=>{f+=1,m?.(),m=null,g&&clearTimeout(g),g=null},T=D=>{g&&clearTimeout(g),g=setTimeout(()=>{D===f&&W("heartbeat-timeout",D)},t.heartbeatTimeoutMs??gc)},v=D=>{i||n.aborted||D!==f||(c=0,F=!0,T(D),e.onReconnect?.())},L=()=>{const D=Cc()&&kc()?Fc:hc,ae=Math.min(yc,c),Me=Math.min(D,pc*2**ae);return c===0&&t.reconnectDelayMs!==void 0?Math.max(0,t.reconnectDelayMs):Me+Math.floor(Math.random()*100)},ee=D=>{i||n.aborted||u||(e.onDisconnect?.(D),u=setTimeout(()=>{u=null,c+=1,je()},L()))},W=(D,ae)=>{if(!(i||n.aborted||ae!==f)){if(y(),!F&&l==="ws"&&t.transport!=="ws"&&(l="sse",e.onTransportSwitch?.()),F=!1,D==="runtime-change"){e.onDisconnect?.(D);return}ee(D)}},He=(D,ae)=>{if(!(i||n.aborted||ae!==f)){if(!s()){W("runtime-change",ae);return}D.sequence>d&&(d=D.sequence),T(ae),e.onEvent(D)}},je=async()=>{if(i||n.aborted)return;if(!s()){e.onDisconnect?.("runtime-change");return}const D=f+1;if(f=D,l==="ws")try{await $t()}catch{if(D!==f||i||n.aborted)return;if(t.transport!=="ws"){l="sse",e.onTransportSwitch?.(),y(),je();return}W("ws-auth-token-unavailable",D);return}if(D!==f||i||n.aborted)return;if(!s()){W("runtime-change",D);return}const ae=yn(l,{fromSequence:d,...t.sessionId?{sessionId:t.sessionId}:{}}),Me=()=>v(D),yt=$e=>He($e,D),Wt=$e=>W($e,D);m=l==="ws"?wc(ae,n,Me,yt,Wt,bc):Bc(Ma({fromSequence:d,...t.sessionId?{sessionId:t.sessionId}:{}}),n,Me,()=>T(D),yt,Wt)};return je(),{dispose:()=>{i||(i=!0,B(),y(),o.abort())},reconnect:(D="manual")=>{i||n.aborted||(B(),y(),ee(D))},get eventsUrl(){return yn(l,{fromSequence:d,...t.sessionId?{sessionId:t.sessionId}:{}})}}},vc=3e4,Uo=1,Dc=300,Sc=e=>new Promise(t=>setTimeout(t,e)),k=async(e,t)=>{const o=t.runtimeKey;if(o&&o!==O())throw new he("DAEMON_UNAVAILABLE","Runtime changed during request");const r=t.query?`?${new URLSearchParams(Object.entries(t.query).map(([s,i])=>[s,String(i)])).toString()}`:"",n={Accept:"application/json"};t.body!==void 0&&(n["Content-Type"]="application/json");let a;for(let s=0;s<=Uo;s+=1){if(s>0){if(t.signal?.aborted)break;if(o&&o!==O())throw new he("DAEMON_UNAVAILABLE","Runtime changed during request");if(await Sc(Dc),t.signal?.aborted)break;if(o&&o!==O())throw new he("DAEMON_UNAVAILABLE","Runtime changed during request")}const i=new AbortController,c=setTimeout(()=>i.abort(),vc),d=t.signal,l=()=>i.abort();d&&(d.aborted?i.abort():d.addEventListener("abort",l,{once:!0}));try{const u=await p(e+r,{method:t.method,headers:n,body:t.body===void 0?void 0:JSON.stringify(t.body),signal:i.signal});if(!u.ok){const f=(await u.json().catch(()=>null))?.error??{code:"DAEMON_REQUEST_FAILED"};if(u.status===503&&(f.code==="DAEMON_UNAVAILABLE"||f.code==="DAEMON_TIMEOUT")&&s<Uo&&!d?.aborted){a=new he(f.code,f.message,u.status);continue}throw new he(f.code,f.message,u.status)}if(u.status===204){if(o&&o!==O())throw new he("DAEMON_UNAVAILABLE","Runtime changed during request");return}const g=await u.json();if(o&&o!==O())throw new he("DAEMON_UNAVAILABLE","Runtime changed during request");return g}catch(u){if(a=u,u instanceof he||d?.aborted||u instanceof DOMException&&u.name==="AbortError")throw u;if(s<Uo&&!d?.aborted)continue;throw u}finally{clearTimeout(c),d&&d.removeEventListener("abort",l)}}throw a};class he extends Error{code;status;constructor(t,o,r){super(o??`Pi request failed: ${t}`),this.name="PiRequestError",this.code=t,r!==void 0&&(this.status=r)}}const C=e=>{if(e?.runtimeKey&&e.runtimeKey!==O())throw new he("DAEMON_UNAVAILABLE","Runtime changed during request")};class Mc{currentDirectory;setDirectory(t){this.currentDirectory=t}getDirectory(){return this.currentDirectory}async health(t){C(t);const o=await Ec(void 0,t?.runtimeKey);return o.state==="ready"?{protocolVersion:o.protocolVersion,state:"ready",capabilities:o.capabilities}:{protocolVersion:o.protocolVersion,state:"unavailable",capabilities:o.capabilities,...o.error?{error:o.error}:{}}}async listProjects(t){return C(t),k("/api/pi/projects",{method:"GET",...t?.runtimeKey?{runtimeKey:t.runtimeKey}:{}})}async selectProject(t,o){return C(o),k("/api/pi/projects/select",{method:"POST",body:{directory:t},...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async listSessions(t){C(t);const o=t?.directory??this.currentDirectory;return k("/api/pi/sessions",{method:"GET",...o?{query:{directory:o}}:{},...t?.runtimeKey?{runtimeKey:t.runtimeKey}:{}})}async createSession(t,o){return C(o),k("/api/pi/sessions",{method:"POST",body:t,...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async getSession(t,o){C(o);const r=o?.directory??this.currentDirectory;return k(`/api/pi/sessions/${encodeURIComponent(t)}`,{method:"GET",...r?{query:{directory:r}}:{},...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async renameSession(t,o){C(o),await k(`/api/pi/sessions/${encodeURIComponent(t.sessionId)}`,{method:"PATCH",body:{sessionId:t.sessionId,title:t.title},...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async deleteSession(t,o){C(o);try{return await k(`/api/pi/sessions/${encodeURIComponent(t.sessionId)}`,{method:"DELETE",...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}}),!0}catch(r){if(r instanceof he&&r.status===404)return!0;throw r}}async archiveSession(t,o){C(o),await k(`/api/pi/sessions/${encodeURIComponent(t.sessionId)}/archive`,{method:"POST",body:{sessionId:t.sessionId,archived:t.archived,...o?.directory?{directory:o.directory}:{}},...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async getSessionTree(t,o){return C(o),k(`/api/pi/sessions/${encodeURIComponent(t)}/tree`,{method:"GET",...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async navigateSession(t,o,r){return C(r),k(`/api/pi/sessions/${encodeURIComponent(t)}/navigate`,{method:"POST",body:{messageId:o},...r?.runtimeKey?{runtimeKey:r.runtimeKey}:{}})}async forkSession(t,o){return C(o),k(`/api/pi/sessions/${encodeURIComponent(t.sessionId)}/fork`,{method:"POST",body:{sessionId:t.sessionId,...t.messageId?{messageId:t.messageId}:{}},...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async cloneSession(t,o){return C(o),k(`/api/pi/sessions/${encodeURIComponent(t.sessionId)}/clone`,{method:"POST",body:t,...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async sendPrompt(t,o){return C(o),k(`/api/pi/sessions/${encodeURIComponent(t.sessionId)}/prompt`,{method:"POST",body:t,...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async sendSteer(t,o){return C(o),k(`/api/pi/sessions/${encodeURIComponent(t.sessionId)}/steer`,{method:"POST",body:t,...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async sendFollowUp(t,o){return C(o),k(`/api/pi/sessions/${encodeURIComponent(t.sessionId)}/follow-up`,{method:"POST",body:t,...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async abortSession(t,o){C(o),await k(`/api/pi/sessions/${encodeURIComponent(t.sessionId)}/abort`,{method:"POST",...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async setSessionModel(t,o){C(o),await k(`/api/pi/sessions/${encodeURIComponent(t.sessionId)}/model`,{method:"POST",body:{sessionId:t.sessionId,model:t.model},...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async setSessionThinking(t,o){C(o),await k(`/api/pi/sessions/${encodeURIComponent(t.sessionId)}/thinking`,{method:"POST",body:{sessionId:t.sessionId,thinking:t.thinking},...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async compactSession(t,o){C(o),await k(`/api/pi/sessions/${encodeURIComponent(t.sessionId)}/compact`,{method:"POST",body:t,...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async listProviders(t){return C(t),k("/api/pi/providers",{method:"GET",...t?.runtimeKey?{runtimeKey:t.runtimeKey}:{}})}async getProviderStatus(t,o){return C(o),k(`/api/pi/providers/${encodeURIComponent(t)}/status`,{method:"GET",...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async loginProvider(t,o){return C(o),k(`/api/pi/providers/${encodeURIComponent(t.providerId)}/login`,{method:"POST",body:t,...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async getProviderLogin(t,o,r){return C(r),k(`/api/pi/providers/${encodeURIComponent(t)}/login/${encodeURIComponent(o)}`,{method:"GET",...r?.runtimeKey?{runtimeKey:r.runtimeKey}:{}})}async respondProviderLogin(t,o,r,n){return C(n),k(`/api/pi/providers/${encodeURIComponent(t)}/login/${encodeURIComponent(o)}/respond`,{method:"POST",body:{value:r},...n?.runtimeKey?{runtimeKey:n.runtimeKey}:{}})}async logoutProvider(t,o){C(o),await k(`/api/pi/providers/${encodeURIComponent(t.providerId)}/logout`,{method:"POST",body:t,...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async getProviderConfig(t,o){return C(o),k(`/api/pi/providers/${encodeURIComponent(t)}/config`,{method:"GET",...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async setProviderModels(t,o){return C(o),k(`/api/pi/providers/${encodeURIComponent(t.providerId)}/models`,{method:"PUT",body:t,...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async getSettings(t){return C(t),k("/api/pi/settings",{method:"GET",...t?.runtimeKey?{runtimeKey:t.runtimeKey}:{}})}async setPiSettings(t,o){return C(o),k("/api/pi/settings/pi",{method:"PUT",body:t,...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async setPiChamberDefaults(t,o){return C(o),k("/api/pi/settings/defaults",{method:"PUT",body:t,...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async listResources(t){return C(t),k("/api/pi/resources",{method:"GET",...t?.runtimeKey?{runtimeKey:t.runtimeKey}:{}})}async updateResource(t,o){return C(o),k(`/api/pi/resources/${encodeURIComponent(t.resourceId)}`,{method:"PUT",body:t,...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async createPromptTemplate(t,o){return C(o),k("/api/pi/resources/prompts",{method:"POST",body:t,...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async deletePromptTemplate(t,o){return C(o),k(`/api/pi/resources/prompts/${encodeURIComponent(t)}`,{method:"DELETE",...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})}async createAttachment(t,o){return C(o),(await k("/api/pi/attachments",{method:"POST",body:t,...o?.runtimeKey?{runtimeKey:o.runtimeKey}:{}})).attachment}}const wt=new Mc;async function Tc(){try{const e=await p("/api/fs/home",{method:"GET",headers:{Accept:"application/json"}});if(e.ok){const t=await e.json();if(typeof t.home=="string"&&t.home.trim().length>0)return t.home.trim()}}catch{}return null}async function oF(e,t){if(!e||e.trim().length===0)return[];const o={path:e},r=Se().api("/api/fs/list",o),n=await p(r);if(!n.ok)return[];const a=await n.json();return Array.isArray(a.entries)?a.entries:[]}async function Rc(e,t){const o=t?.directory||"";if(!o)return[];const r={directory:o,query:e};t?.limit&&(r.limit=t.limit),t?.includeHidden&&(r.includeHidden=!0),t?.respectGitignore!==void 0&&(r.respectGitignore=t.respectGitignore),t?.type&&(r.type=t.type);const n=Se().api("/api/fs/find",r),a=await p(n);if(!a.ok)return[];const s=await a.json();return Array.isArray(s.files)?s.files:[]}async function rF(e=""){try{const t=await p("/api/fs/pick-directory",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({path:e||void 0})}),o=await t.json().catch(()=>null);return o?.cancelled===!0?{status:"cancelled"}:t.status===501?{status:"unavailable",error:typeof o?.error=="string"?o.error:"Folder picker is not available."}:t.ok?typeof o?.path=="string"&&o.path.trim()?{status:"picked",path:o.path.trim()}:{status:"failed",error:"Failed to select directory."}:{status:"failed",error:typeof o?.error=="string"?o.error:"Failed to select directory."}}catch(t){return{status:"failed",error:t instanceof Error?t.message:"Failed to select directory."}}}const Pc=e=>{const t=e.replace(/\\/g,"/").replace(/\/+$/g,"").trim();if(!t)return"";const o=new TextEncoder().encode(t);let r="";for(const a of o)r+=String.fromCharCode(a);return`path_${typeof btoa=="function"?btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,""):t.replace(/[^A-Za-z0-9._-]+/g,"_")}`};let Lo=null,Ho=null,jo=null;const bn=new Set;let An=!1;const Ta=e=>{if(bn.add(e),An||typeof window>"u")return;An=!0;const t=()=>{for(const o of bn)o()};try{window.addEventListener("pagehide",t,{capture:!0}),window.addEventListener("beforeunload",t,{capture:!0}),typeof document<"u"&&(document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&t()}),document.addEventListener("freeze",t))}catch{}},Ic=(e,t)=>{let o;try{o=e()}catch{return}const r=new Map,n=new Set;let a;const s=()=>{if(a=void 0,r.size===0&&n.size===0)return;const c=Array.from(r.entries()),d=Array.from(n);r.clear(),n.clear();for(const[l,u]of c)try{o.setItem(l,JSON.stringify(u,t?.replacer))}catch(g){console.error("Failed to persist deferred storage value",g),!r.has(l)&&!n.has(l)&&r.set(l,u)}for(const l of d)try{o.removeItem(l)}catch(u){console.error("Failed to remove deferred storage value",u),r.has(l)||n.add(l)}},i=()=>{a===void 0&&(a=setTimeout(s,0))};return Ta(s),{getItem:c=>{if(r.has(c))return r.get(c)??null;if(n.has(c))return null;const d=u=>{if(u===null)return null;try{return JSON.parse(u,t?.reviver)}catch{try{o.removeItem(c)}catch{}return null}},l=o.getItem(c);return l instanceof Promise?l.then(d):d(l)},setItem:(c,d)=>{r.set(c,d),n.delete(c),i()},removeItem:c=>{r.delete(c),n.add(c),i()}}},xr=e=>Ic(()=>Ia(),e),xc=e=>{const t=new Map,o=new Set;let r;const n=()=>{if(r=void 0,t.size===0&&o.size===0)return;const s=Array.from(t.entries()),i=Array.from(o);t.clear(),o.clear();for(const[c,d]of s)try{e.setItem(c,d)}catch(l){console.error("Failed to persist deferred storage value",l),!t.has(c)&&!o.has(c)&&t.set(c,d)}for(const c of i)try{e.removeItem(c)}catch(d){console.error("Failed to remove deferred storage value",d),t.has(c)||o.add(c)}},a=()=>{r===void 0&&(r=setTimeout(n,0))};return Ta(n),{getItem:s=>t.has(s)?t.get(s)??null:o.has(s)?null:e.getItem(s),setItem:(s,i)=>{t.set(s,i),o.delete(s),a()},removeItem:s=>{t.delete(s),o.add(s),a()},clear:()=>{t.clear(),o.clear(),r!==void 0&&(clearTimeout(r),r=void 0),e.clear()},key:s=>e.key(s),get length(){return e.length}}},Ra=e=>{if(typeof window>"u")return null;try{return window[e]??null}catch{return null}},_r=()=>{const e=new Map;return{getItem:t=>e.get(t)??null,setItem:(t,o)=>{e.set(t,o)},removeItem:t=>{e.delete(t)},clear:()=>{e.clear()},key:t=>Array.from(e.keys())[t]??null,get length(){return e.size}}},Pa=e=>{const t=_r(),o=new Set,r=new Set,n=d=>{if(r.has(d))return null;if(o.has(d))return t.getItem(d);try{return e.getItem(d)}catch{return null}},a=(d,l)=>{try{e.setItem(d,l),t.removeItem(d),o.delete(d),r.delete(d);return}catch{try{e.removeItem(d)}catch{}}t.setItem(d,l),o.add(d),r.delete(d)},s=d=>{try{e.removeItem(d),r.delete(d)}catch{r.add(d)}t.removeItem(d),o.delete(d)},i=()=>{const d=[];try{for(let l=0;l<e.length;l+=1){const u=e.key(l);u&&d.push(u)}}catch{}try{e.clear(),r.clear()}catch{for(const l of d)r.add(l)}t.clear(),o.clear()},c=()=>{const d=new Set;try{for(let l=0;l<e.length;l+=1){const u=e.key(l);u&&!r.has(u)&&!o.has(u)&&d.add(u)}}catch{}for(const l of o)d.add(l);return[...d]};return{getItem:n,setItem:a,removeItem:s,clear:i,key:d=>c()[d]??null,get length(){return c().length}}},_c=()=>{const e=Ra("localStorage");return e?Pa(e):_r()},Ia=()=>(Lo||(Lo=_c()),Lo),qt=()=>(jo||(jo=xc(Ia())),jo),Oc=()=>{const e=Ra("sessionStorage");return e?Pa(e):_r()},nF=()=>(Ho||(Ho=Oc()),Ho),Nc={markdown:"0.9375rem",code:"0.8125rem",uiHeader:"0.9375rem",uiLabel:"0.8750rem",meta:"0.875rem",micro:"0.875rem",settingsPageTitle:"1.125rem"};function En(e){return`--text-${e.replace(/([A-Z])/g,"-$1").toLowerCase()}`}const to={semanticMarkdown:{fontSize:"var(--text-markdown)"},semanticCode:{fontSize:"var(--text-code)"},uiHeader:{fontSize:"var(--text-ui-header)"},uiLabel:{fontSize:"var(--text-ui-label)"},meta:{fontSize:"var(--text-meta)"},micro:{fontSize:"var(--text-micro)"},ui:{button:{fontSize:"var(--text-ui-label)",lineHeight:"var(--ui-button-line-height)",letterSpacing:"var(--ui-button-letter-spacing)",fontWeight:"var(--ui-button-font-weight)"},buttonSmall:{fontSize:"var(--text-meta)",lineHeight:"var(--ui-button-small-line-height)",letterSpacing:"var(--ui-button-small-letter-spacing)",fontWeight:"var(--ui-button-small-font-weight)"},buttonLarge:{fontSize:"var(--text-ui-label)",lineHeight:"var(--ui-button-large-line-height)",letterSpacing:"var(--ui-button-large-letter-spacing)",fontWeight:"var(--ui-button-large-font-weight)"},label:{fontSize:"var(--text-meta)",lineHeight:"var(--ui-label-line-height)",letterSpacing:"var(--ui-label-letter-spacing)",fontWeight:"var(--ui-label-font-weight)"},caption:{fontSize:"var(--text-micro)",lineHeight:"var(--ui-caption-line-height)",letterSpacing:"var(--ui-caption-letter-spacing)",fontWeight:"var(--ui-caption-font-weight)"},badge:{fontSize:"var(--text-micro)",lineHeight:"var(--ui-badge-line-height)",letterSpacing:"var(--ui-badge-letter-spacing)",fontWeight:"var(--ui-badge-font-weight)"},tooltip:{fontSize:"var(--text-micro)",lineHeight:"var(--ui-tooltip-line-height)",letterSpacing:"var(--ui-tooltip-letter-spacing)",fontWeight:"var(--ui-tooltip-font-weight)"},input:{fontSize:"var(--text-ui-label)",lineHeight:"var(--ui-input-line-height)",letterSpacing:"var(--ui-input-letter-spacing)",fontWeight:"var(--ui-input-font-weight)"},helperText:{fontSize:"var(--text-meta)",lineHeight:"var(--ui-helper-text-line-height)",letterSpacing:"var(--ui-helper-text-letter-spacing)",fontWeight:"var(--ui-helper-text-font-weight)"}},code:{inline:{fontSize:"var(--text-code)",lineHeight:"var(--code-inline-line-height)",letterSpacing:"var(--code-inline-letter-spacing)",fontWeight:"var(--code-inline-font-weight)"},block:{fontSize:"var(--text-code)",lineHeight:"var(--code-block-line-height)",letterSpacing:"var(--code-block-letter-spacing)",fontWeight:"var(--code-block-font-weight)"},lineNumbers:{fontSize:"var(--text-micro)",lineHeight:"var(--code-line-numbers-line-height)",letterSpacing:"var(--code-line-numbers-letter-spacing)",fontWeight:"var(--code-line-numbers-font-weight)"}},markdown:{body:{fontSize:"var(--text-markdown)",lineHeight:"var(--markdown-body-line-height)",letterSpacing:"var(--markdown-body-letter-spacing)",fontWeight:"var(--markdown-body-font-weight)"},bodySmall:{fontSize:"var(--text-meta)",lineHeight:"var(--markdown-body-small-line-height)",letterSpacing:"var(--markdown-body-small-letter-spacing)",fontWeight:"var(--markdown-body-small-font-weight)"},bodyLarge:{fontSize:"var(--text-markdown)",lineHeight:"var(--markdown-body-large-line-height)",letterSpacing:"var(--markdown-body-large-letter-spacing)",fontWeight:"var(--markdown-body-large-font-weight)"},blockquote:{fontSize:"var(--text-markdown)",lineHeight:"var(--markdown-blockquote-line-height)",letterSpacing:"var(--markdown-blockquote-letter-spacing)",fontWeight:"var(--markdown-blockquote-font-weight)"},list:{fontSize:"var(--text-markdown)",lineHeight:"var(--markdown-list-line-height)",letterSpacing:"var(--markdown-list-letter-spacing)",fontWeight:"var(--markdown-list-font-weight)"},link:{fontSize:"var(--text-markdown)",lineHeight:"var(--markdown-link-line-height)",letterSpacing:"var(--markdown-link-letter-spacing)",fontWeight:"var(--markdown-link-font-weight)"},code:{fontSize:"var(--text-code)",lineHeight:"var(--markdown-code-line-height)",letterSpacing:"var(--markdown-code-letter-spacing)",fontWeight:"var(--markdown-code-font-weight)"},codeBlock:{fontSize:"var(--text-code)",lineHeight:"var(--markdown-code-block-line-height)",letterSpacing:"var(--markdown-code-block-letter-spacing)",fontWeight:"var(--markdown-code-block-font-weight)"}},tool:{collapsed:{fontSize:"var(--text-code)",lineHeight:"var(--code-block-line-height)",letterSpacing:"var(--code-block-letter-spacing)",fontWeight:"var(--code-block-font-weight)"},popup:{fontSize:"var(--text-code)",lineHeight:"var(--code-block-line-height)",letterSpacing:"var(--code-block-letter-spacing)",fontWeight:"var(--code-block-font-weight)"},inline:{fontSize:"var(--text-code)",lineHeight:"var(--code-inline-line-height)",letterSpacing:"var(--code-inline-letter-spacing)",fontWeight:"var(--code-inline-font-weight)"}}},$o={padding:{collapsed:"0.375rem",popup:"0.75rem",popupContainer:"1rem"},backgroundOpacity:{muted:"30",mutedAlt:"50"},getCollapsedStyles:()=>({...to.tool.collapsed,background:"transparent",backgroundColor:"transparent",margin:0,padding:$o.padding.collapsed,borderRadius:0}),getPopupStyles:()=>({...to.tool.popup,background:"transparent",backgroundColor:"transparent",margin:0,padding:$o.padding.popup,borderRadius:"0.75rem"}),getPopupContainerStyles:()=>({...to.tool.popup,background:"transparent",backgroundColor:"transparent",margin:0,padding:$o.padding.popupContainer,borderRadius:"0.5rem",overflowX:"auto"}),getInlineStyles:()=>({...to.tool.inline})},Uc=[{id:"inter",label:"Inter",description:"Modern UI sans with excellent readability at small sizes.",stack:'"Inter", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',source:{family:"Inter",packageName:"@fontsource/inter",filePrefix:"inter",weights:[400,500,600]}},{id:"geist-sans",label:"Geist Sans",description:"Crisp sans-serif with a technical interface feel.",stack:'"Geist Sans", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',source:{family:"Geist Sans",packageName:"@fontsource/geist-sans",filePrefix:"geist-sans",weights:[400,500,600]}},{id:"atkinson-hyperlegible",label:"Atkinson Hyperlegible",description:"Accessibility-focused sans-serif optimized for character distinction.",stack:'"Atkinson Hyperlegible", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',source:{family:"Atkinson Hyperlegible",packageName:"@fontsource/atkinson-hyperlegible",filePrefix:"atkinson-hyperlegible",weights:[400,700]}},{id:"source-sans-3",label:"Source Sans 3",description:"Adobe sans-serif tuned for clean, readable interfaces.",stack:'"Source Sans 3", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',source:{family:"Source Sans 3",packageName:"@fontsource/source-sans-3",filePrefix:"source-sans-3",weights:[400,500,600]}},{id:"roboto",label:"Roboto",description:"Familiar Material-style sans-serif with broad UI usage.",stack:'"Roboto", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',source:{family:"Roboto",packageName:"@fontsource/roboto",filePrefix:"roboto",weights:[400,500,600]}},{id:"noto-sans",label:"Noto Sans",description:"Readable sans-serif with strong international coverage.",stack:'"Noto Sans", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',source:{family:"Noto Sans",packageName:"@fontsource/noto-sans",filePrefix:"noto-sans",weights:[400,500,600]}},{id:"dm-sans",label:"DM Sans",description:"Modern product UI sans-serif with friendly proportions.",stack:'"DM Sans", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',source:{family:"DM Sans",packageName:"@fontsource/dm-sans",filePrefix:"dm-sans",weights:[400,500,600]}},{id:"manrope",label:"Manrope",description:"Polished geometric sans-serif for modern app interfaces.",stack:'"Manrope", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',source:{family:"Manrope",packageName:"@fontsource/manrope",filePrefix:"manrope",weights:[400,500,600]}},{id:"system",label:"System",description:"Native operating system interface font.",stack:'"SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif'}],Lc=[{id:"jetbrains-mono",label:"JetBrains Mono",description:"Developer-focused monospace with strong punctuation clarity.",stack:'"JetBrains Mono", "SFMono-Regular", "Menlo", monospace',source:{family:"JetBrains Mono",packageName:"@fontsource/jetbrains-mono",filePrefix:"jetbrains-mono",weights:[400,500,600]}},{id:"fira-code",label:"Fira Code",description:"Readable coding font with ligature support.",stack:'"Fira Code", "SFMono-Regular", "Menlo", monospace',source:{family:"Fira Code",packageName:"@fontsource/fira-code",filePrefix:"fira-code",weights:[400,500,600]}},{id:"geist-mono",label:"Geist Mono",description:"Sharp monospace pair for Geist Sans.",stack:'"Geist Mono", "SFMono-Regular", "Menlo", monospace',source:{family:"Geist Mono",packageName:"@fontsource/geist-mono",filePrefix:"geist-mono",weights:[400,500,600]}},{id:"commit-mono",label:"Commit Mono",description:"Code-oriented monospace with polished editor ergonomics.",stack:'"Commit Mono", "SFMono-Regular", "Menlo", monospace',source:{family:"Commit Mono",packageName:"@fontsource/commit-mono",filePrefix:"commit-mono",weights:[400,500,600]}},{id:"source-code-pro",label:"Source Code Pro",description:"Adobe monospace designed for source code readability.",stack:'"Source Code Pro", "SFMono-Regular", "Menlo", monospace',source:{family:"Source Code Pro",packageName:"@fontsource/source-code-pro",filePrefix:"source-code-pro",weights:[400,500,600]}},{id:"cascadia-code",label:"Cascadia Code",description:"Microsoft coding font popular in terminals and editors.",stack:'"Cascadia Code", "SFMono-Regular", "Menlo", monospace',source:{family:"Cascadia Code",packageName:"@fontsource/cascadia-code",filePrefix:"cascadia-code",weights:[400,500,600]}},{id:"roboto-mono",label:"Roboto Mono",description:"Neutral monospace companion to Roboto.",stack:'"Roboto Mono", "SFMono-Regular", "Menlo", monospace',source:{family:"Roboto Mono",packageName:"@fontsource/roboto-mono",filePrefix:"roboto-mono",weights:[400,500,600]}},{id:"iosevka",label:"Iosevka",description:"Compact monospace for dense code and terminal layouts.",stack:'"Iosevka", "SFMono-Regular", "Menlo", monospace',source:{family:"Iosevka",packageName:"@fontsource/iosevka",filePrefix:"iosevka",weights:[400,500,600]}},{id:"system-mono",label:"System Mono",description:"Native operating system monospace font.",stack:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'}],xa=e=>Object.fromEntries(e.map(t=>[t.id,t])),Hc=xa(Uc),jc=xa(Lc),$c="system",zc="system-mono",_a=e=>typeof e=="string"&&e in Hc,Oa=e=>typeof e=="string"&&e in jc,zo="pichamber.pwaName",or="pichamber.mobileKeyboardMode",aF="pichamber.pwaRecentSessions",qc=["native","resize-content"];function Kc(e,t="resize-content"){return typeof e=="string"&&qc.includes(e)?e:t}const Gc=64;function Na(e,t){if(typeof e!="string")return t;const o=e.trim().replace(/\s+/g," ");return o?o.slice(0,Gc):t}const sF=()=>!0;function Or(e,t="resize-content"){return Kc(e,t)??void 0}const Wc=()=>{if(typeof window>"u")return"resize-content";try{return Or(localStorage.getItem(or))}catch{return"resize-content"}},Vc=e=>{const t=Or(e);if(typeof window<"u")try{t==="resize-content"?localStorage.removeItem(or):localStorage.setItem(or,t)}catch{}return t},pe=20,Jc=8,Bn=4096,Yc=2160*60*6e4,U=e=>{if(!e)return"";const t=e.replace(/\\/g,"/"),o=t.startsWith("//");let r=t.replace(/\/+/g,"/");o&&!r.startsWith("//")&&(r=`/${r}`);const n=r==="/",a=/^[A-Za-z]:\/$/.test(r);return!n&&!a&&(r=r.replace(/\/+$/,"")),r},Ie=e=>/^[A-Za-z]:\//.test(e)?e.toLowerCase():e,_e=(e,t)=>{const o=U(t),r=U(e);if(!o||!r)return!1;const n=Ie(o),a=Ie(r);return a===n||a.startsWith(`${n}/`)},At=e=>{if(!e||typeof e!="object")return{};const t=e,o={};for(const[r,n]of Object.entries(t)){const a=U(r);if(!a||!n||typeof n!="object")continue;const s=n,i=Array.isArray(s.openPaths)?Array.from(new Set(s.openPaths.filter(m=>typeof m=="string").map(m=>U(m)).filter(m=>m.length<=Bn&&_e(m,a)))).slice(-50):[],c=Array.isArray(s.expandedPaths)?Array.from(new Set(s.expandedPaths.filter(m=>typeof m=="string").map(m=>U(m)).filter(m=>m.length<=Bn&&_e(m,a)))).slice(-500):[],d=typeof s.selectedPath=="string"?U(s.selectedPath):null,l=d&&_e(d,a)?d:i[0]??null,u=typeof s.touchedAt=="number"&&Number.isFinite(s.touchedAt)?s.touchedAt:Date.now();if(Date.now()-u>Yc)continue;const g=o[a];if(g){const m=Array.from(new Set([...g.openPaths,...i])),f=Array.from(new Set([...g.expandedPaths,...c])),F=g.selectedPath??l??m[0]??null;o[a]={openPaths:m,selectedPath:F,expandedPaths:f,touchedAt:Math.max(g.touchedAt,u)};continue}o[a]={openPaths:i,selectedPath:l,expandedPaths:c,touchedAt:u}}return Fe(o,pe)},Fe=(e,t)=>{const o=Object.entries(e);if(o.length<=t)return e;o.sort((n,a)=>(a[1]?.touchedAt??0)-(n[1]?.touchedAt??0));const r={};for(const[n,a]of o.slice(0,t))r[n]=a;return r},it=e=>e?{...e,touchedAt:Date.now()}:{openPaths:[],selectedPath:null,expandedPaths:[],touchedAt:Date.now()},Qc=Lt()(Ht(Br((e,t)=>({byRoot:{},activeRuntimeKey:O(),runtimeSnapshots:{},resetForRuntimeSwitch:o=>{e(r=>{const n={...r.runtimeSnapshots,[r.activeRuntimeKey]:{byRoot:At(r.byRoot),updatedAt:Date.now()}};return{activeRuntimeKey:o,runtimeSnapshots:n,byRoot:At(n[o]?.byRoot)}})},addOpenPath:(o,r,n)=>{const a=U((o||"").trim()),s=U((r||"").trim());!a||!s||!n?.allowOutsideRoot&&!_e(s,a)||e(i=>{const c=i.byRoot[a],d=it(c),l=d.openPaths.includes(s),u=l?d.openPaths:[...d.openPaths,s],g=d.selectedPath??s;if(c&&l&&c.selectedPath===g)return i;const m={...i.byRoot,[a]:{...d,openPaths:u,selectedPath:g}};return{byRoot:Fe(m,pe)}})},removeOpenPath:(o,r)=>{const n=U((o||"").trim()),a=U((r||"").trim());!n||!a||e(s=>{const i=s.byRoot[n];if(!i)return s;const c=Ie(a),d=f=>Ie(f)===c,l=i.selectedPath?d(i.selectedPath):!1;if(!i.openPaths.some(d)&&!l)return s;const u=i.openPaths.filter(f=>!d(f)),g=l?u[0]??null:i.selectedPath,m={...s.byRoot,[n]:{...i,openPaths:u,selectedPath:g,touchedAt:Date.now()}};return{byRoot:Fe(m,pe)}})},removeOpenPathsByPrefix:(o,r)=>{const n=U((o||"").trim()),a=U((r||"").trim());!n||!a||e(s=>{const i=s.byRoot[n];if(!i)return s;const c=Ie(a),d=c.endsWith("/")?c:`${c}/`,l=f=>{const F=Ie(f);return F===c||F.startsWith(d)},u=i.openPaths.filter(f=>!l(f));if(u.length===i.openPaths.length)return s;const g=i.selectedPath&&l(i.selectedPath)?u[0]??null:i.selectedPath,m={...s.byRoot,[n]:{...i,openPaths:u,selectedPath:g,touchedAt:Date.now()}};return{byRoot:Fe(m,pe)}})},removeExpandedPathsByPrefix:(o,r)=>{const n=U((o||"").trim()),a=U((r||"").trim());!n||!a||e(s=>{const i=s.byRoot[n];if(!i)return s;const c=Ie(a),d=c.endsWith("/")?c:`${c}/`,l=i.expandedPaths.filter(g=>{const m=Ie(g);return m!==c&&!m.startsWith(d)});if(l.length===i.expandedPaths.length)return s;const u={...s.byRoot,[n]:{...i,expandedPaths:l,touchedAt:Date.now()}};return{byRoot:Fe(u,pe)}})},setSelectedPath:(o,r,n)=>{const a=U((o||"").trim()),s=r?U(r.trim()):null;!a||s&&!n?.allowOutsideRoot&&!_e(s,a)||e(i=>{const c=i.byRoot[a],d=it(c),l=s&&!d.openPaths.includes(s)?[...d.openPaths,s]:d.openPaths;if(c&&c.selectedPath===s&&l===c.openPaths)return i;const u={...i.byRoot,[a]:{...d,openPaths:l,selectedPath:s}};return{byRoot:Fe(u,pe)}})},ensureSelectedPath:o=>{const r=U((o||"").trim());if(!r)return;const n=t().byRoot[r];if(!n||n.selectedPath)return;const a=n.openPaths[0]??null;a&&t().setSelectedPath(r,a)},toggleExpandedPath:(o,r)=>{const n=U((o||"").trim()),a=U((r||"").trim());!n||!a||!_e(a,n)||e(s=>{const i=s.byRoot[n],c=it(i),l=c.expandedPaths.includes(a)?c.expandedPaths.filter(g=>g!==a):[...c.expandedPaths,a];if(i&&i.expandedPaths===l&&i.selectedPath===c.selectedPath&&i.openPaths===c.openPaths)return s;const u={...s.byRoot,[n]:{...c,expandedPaths:l}};return{byRoot:Fe(u,pe)}})},collapseAllExpandedPaths:o=>{const r=U((o||"").trim());r&&e(n=>{const a=n.byRoot[r];if(!a||a.expandedPaths.length===0)return n;const s={...n.byRoot,[r]:{...it(a),expandedPaths:[]}};return{byRoot:Fe(s,pe)}})},expandPath:(o,r)=>{const n=U((o||"").trim()),a=U((r||"").trim());!n||!a||!_e(a,n)||e(s=>{const i=s.byRoot[n],c=it(i);if(c.expandedPaths.includes(a)&&i)return s;const l={...s.byRoot,[n]:{...c,expandedPaths:[...c.expandedPaths,a]}};return{byRoot:Fe(l,pe)}})},expandPaths:(o,r)=>{const n=U((o||"").trim());if(!n||!r||r.length===0)return;const a=r.map(s=>U((s||"").trim())).filter(s=>s&&_e(s,n));a.length!==0&&e(s=>{const i=s.byRoot[n],c=it(i),d=new Set(c.expandedPaths),l=a.filter(g=>!d.has(g));if(l.length===0)return s;const u={...s.byRoot,[n]:{...c,expandedPaths:[...c.expandedPaths,...l]}};return{byRoot:Fe(u,pe)}})}}),{name:"files-view-tabs-store",version:3,storage:xr(),migrate:(e,t)=>t<3||!e||typeof e!="object"?{byRoot:{},activeRuntimeKey:O(),runtimeSnapshots:{}}:e,partialize:e=>{const t={...e.runtimeSnapshots,[e.activeRuntimeKey]:{byRoot:At(e.byRoot),updatedAt:Date.now()}},o=Object.fromEntries(Object.entries(t).sort(([,r],[,n])=>n.updatedAt-r.updatedAt).slice(0,Jc).map(([r,n])=>[r,{byRoot:At(n.byRoot),updatedAt:n.updatedAt}]));return{activeRuntimeKey:e.activeRuntimeKey,runtimeSnapshots:o}},merge:(e,t)=>{const o=e&&typeof e=="object"?e:{},r=o.runtimeSnapshots&&typeof o.runtimeSnapshots=="object"?o.runtimeSnapshots:{},n=O();return{...t,activeRuntimeKey:n,runtimeSnapshots:r,byRoot:At(r[n]?.byRoot)}}}),{name:"files-view-tabs-store"}));function wn(e){return e==="vim"?"vim":"default"}const oo={completion:{title:"{agent_name} is ready",message:"{last_message}"},error:{title:"Tool error",message:"{last_message}"},question:{title:"{agent_name} needs input",message:"{last_message}"},subtask:{title:"Subtask complete",message:"{last_message}"}},Re={completion:{title:"",message:""},error:{title:"",message:""},question:{title:"",message:""},subtask:{title:"",message:""}},ro=(e,t)=>e?e.title===t.title&&e.message===t.message:!1,Xc=e=>{if(!e||typeof e!="object")return!1;const t=e;return ro(t.completion,oo.completion)&&ro(t.error,oo.error)&&ro(t.question,oo.question)&&ro(t.subtask,oo.subtask)},Zc=380,ed=380,td=1400,Ua=12,Cn=120,Et=280,qo=new Map,Ko=e=>(e??O()).trim()||"default",iF=e=>Y(e),Y=e=>{if(!e)return"";const t=e.replace(/\\/g,"/"),o=t.startsWith("//");let r=t.replace(/\/+$/g,"");return r=r.replace(/\/+/g,"/"),o&&!r.startsWith("//")&&(r=`/${r}`),r===""?t.startsWith("/")?"/":"":r},uo=e=>Number.isFinite(e)?Math.min(td,Math.max(ed,Math.round(e))):Zc,od=["git","file","diff","context","terminal","browser","notes","chat","preview"],rd=e=>{if(typeof e.width=="number"&&Number.isFinite(e.width))return uo(e.width);if(!e.widthByMode||typeof e.widthByMode!="object")return;const t=e.widthByMode;for(const o of od){const r=t[o];if(typeof r=="number"&&Number.isFinite(r))return uo(r)}for(const o of Object.values(t))if(typeof o=="number"&&Number.isFinite(o))return uo(o)},yo=e=>{if(typeof e!="string")return null;const t=e.trim();return t?t.replace(/\\/g,"/"):null},bo=e=>{if(typeof e!="string")return null;const t=e.trim();return t?t.length>Cn?t.slice(0,Cn):t:null},Nr=e=>e==="all"||e==="working"||e==="staged"||e==="turn"||e==="branch"?e:null,nd=(e,t)=>(e==="file"||e==="preview")&&t||e,La=(e,t,o)=>{if(e==="diff")return e;if(typeof o=="string"){const r=o.trim();if(r)return r}return nd(e,t)},Ha=(e,t)=>t===e?e:`${e}:${t}`,Ur=e=>{const t=yo(e.targetPath),o=La(e.mode,t,e.dedupeKey);return{id:Ha(e.mode,o),mode:e.mode,targetPath:t,dedupeKey:o,label:bo(e.label),sessionTitleFallback:bo(e.sessionTitleFallback),readOnly:e.readOnly===!0,stagedDiff:e.stagedDiff===!0,diffScope:Nr(e.diffScope)??(e.stagedDiff===!0?"staged":"working"),touchedAt:Date.now()}},ja=(e,t,o)=>{if(e.length<=t)return e;const n=[...e].sort((i,c)=>i.touchedAt-c.touchedAt).filter(i=>i.id!==o),a=e.length-t;if(a<=0||n.length===0)return e.slice(-t);const s=new Set(n.slice(0,a).map(i=>i.id));return e.filter(i=>!s.has(i.id))},$a=e=>{if(!Array.isArray(e))return[];const t=[],o=new Set;for(const r of e){if(!r||typeof r!="object")continue;const n=r;if(n.mode!=="diff"&&n.mode!=="file"&&n.mode!=="context"&&n.mode!=="chat"&&n.mode!=="preview"&&n.mode!=="browser"&&n.mode!=="git"&&n.mode!=="notes"&&n.mode!=="terminal")continue;const a=yo(typeof n.targetPath=="string"?n.targetPath:null),s=La(n.mode,a,typeof n.dedupeKey=="string"?n.dedupeKey:null),i=Ha(n.mode,s);!i||o.has(i)||(o.add(i),t.push({id:i,mode:n.mode,targetPath:a,dedupeKey:s,label:bo(typeof n.label=="string"?n.label:null),sessionTitleFallback:bo(typeof n.sessionTitleFallback=="string"?n.sessionTitleFallback:null),readOnly:n.readOnly===!0,stagedDiff:n.stagedDiff===!0,diffScope:Nr(n.diffScope)??(n.stagedDiff===!0?"staged":"working"),touchedAt:typeof n.touchedAt=="number"&&Number.isFinite(n.touchedAt)?n.touchedAt:Date.now()}))}return t},pt=(e,t)=>t&&e.some(o=>o.id===t)?t:e.length===0?null:e[e.length-1].id,Ge=e=>{if(e){const t=$a(e.tabs),o=pt(t,e.activeTabId);return{...e,tabs:t,activeTabId:o,width:e.width,touchedAt:Date.now()}}return{isOpen:!1,expanded:!1,tabs:[],activeTabId:null,touchedAt:Date.now()}},ad=(e,t)=>{const o=Ur(t),r=o.mode==="file"&&o.targetPath?e.tabs.filter(c=>!(c.mode==="file"&&!c.targetPath)):e.tabs,n=r.findIndex(c=>c.id===o.id),a=n===-1?[...r,o]:r.map((c,d)=>d===n?{...c,mode:o.mode,targetPath:o.targetPath||c.targetPath,dedupeKey:o.dedupeKey,label:o.label,sessionTitleFallback:o.sessionTitleFallback||c.sessionTitleFallback,stagedDiff:o.stagedDiff,diffScope:o.diffScope,readOnly:o.readOnly,touchedAt:Date.now()}:c),s=o.id,i=ja(a,Ua,s);return{...e,isOpen:!0,tabs:i,activeTabId:pt(i,s),touchedAt:Date.now()}},sd=(e,t)=>{const o=e.tabs.find(s=>s.id===t)??null,r=e.tabs.filter(s=>s.id!==t);if(e.activeTabId!==t)return{...e,tabs:r,activeTabId:pt(r,e.activeTabId),isOpen:r.length>0?e.isOpen:!1,touchedAt:Date.now()};const n=o?r.filter(s=>s.mode===o.mode):[],a=n.length>0?n.reduce((s,i)=>i.touchedAt>=s.touchedAt?i:s):null;return{...e,tabs:r,activeTabId:a?.id??pt(r,null),isOpen:a?e.isOpen:!1,touchedAt:Date.now()}},id=(e,t,o)=>{if(t===o)return e;const r=e.tabs.findIndex(i=>i.id===t),n=e.tabs.findIndex(i=>i.id===o);if(r===-1||n===-1)return e;const a=[...e.tabs],[s]=a.splice(r,1);return s?(a.splice(n,0,s),{...e,tabs:a,touchedAt:Date.now()}):e},cd=(e,t,o)=>({...e,tabs:e.tabs.map(r=>r.id===t?{...r,targetPath:o}:r)}),dd=e=>{const t=[];let o=!1;for(const r of e){if(r.mode!=="diff"&&r.mode!=="git"){t.push(r);continue}o||(o=!0,t.push(r.mode==="git"?r:Ur({mode:"git"})))}return t},Bt=e=>{if(!e||typeof e!="object")return{};const t=e,o={};for(const[r,n]of Object.entries(t)){const a=Y(r);if(!a||!n||typeof n!="object")continue;const s=n;let i=dd($a(s.tabs)),c=typeof s.activeTabId=="string"?s.activeTabId:null;i.length===0&&(s.mode==="diff"||s.mode==="file"||s.mode==="context"||s.mode==="chat")&&(i=[Ur({mode:s.mode,targetPath:typeof s.targetPath=="string"?s.targetPath:null,dedupeKey:typeof s.dedupeKey=="string"?s.dedupeKey:null,label:typeof s.label=="string"?s.label:null})],c=i[0]?.id??null);const d=pt(i,c),l=ja(i,Ua,d),u=rd(s);o[a]={isOpen:s.isOpen===!0,expanded:s.expanded===!0,tabs:l,activeTabId:pt(l,d),...u!==void 0?{width:u}:{},touchedAt:typeof s.touchedAt=="number"&&Number.isFinite(s.touchedAt)?s.touchedAt:Date.now()}}return o},We=(e,t)=>{const o=Object.entries(e);if(o.length<=t)return e;o.sort((n,a)=>(a[1]?.touchedAt??0)-(n[1]?.touchedAt??0));const r={};for(const[n,a]of o.slice(0,t))r[n]=a;return r},ie=Lt()(Ht(Br((e,t)=>({theme:"system",isSidebarOpen:!0,sidebarWidth:Et,hasManuallyResizedLeftSidebar:!1,contextPanelByDirectory:{},contextRailOrder:[],contextEditorTreeVisible:!0,contextEditorTreeWidth:240,notesPanelHeight:112,todoPanelHeight:259,isSessionSwitcherOpen:!1,isSessionDropdownOpen:!1,activeMainTab:"chat",mainTabGuard:null,sidebarOpenBeforeFullscreenTab:null,pendingDiffFile:null,pendingDiffStaged:!1,pendingDiffScope:null,pendingDiagramFile:null,pendingFileNavigation:null,pendingFileFocusPath:null,isMobile:!1,isCommandPaletteOpen:!1,isHelpDialogOpen:!1,isSessionCreateDialogOpen:!1,isArchivePageOpen:!1,isSettingsDialogOpen:!1,isModelSelectorOpen:!1,sidebarSection:"sessions",settingsPage:"home",settingsHasOpenedOnce:!1,settingsProjectsSelectedId:null,settingsRemoteInstancesSelectedId:null,eventStreamStatus:"idle",eventStreamHint:null,showReasoningTraces:!0,collapsibleThinkingBlocks:!0,collapseThinkingByDefault:!0,showDeletionDialog:!0,autoDeleteEnabled:!1,autoSaveEnabled:!0,autoDeleteAfterDays:30,sessionRetentionAction:"archive",autoDeleteLastRunAt:null,messageLimit:200,fontSize:100,globalDraftStarters:null,terminalFontSize:14,terminalShell:"auto",terminalLoginShells:[],editorFontSize:13,uiFont:$c,monoFont:zc,padding:100,cornerRadius:18,inputBarOffset:0,mobileKeyboardMode:Wc(),favoriteModels:[],hiddenModels:[],providerOrder:[],collapsedModelProviders:[],recentModels:[],recentAgents:[],recentEfforts:{},diffLayoutPreference:"inline",diffFileLayout:{},diffWrapLines:!1,walkthroughTocWidth:224,gitChangesViewMode:"flat",isTimelineDialogOpen:!1,isPromptNavigatorPanelOpen:!1,isImagePreviewOpen:!1,nativeNotificationsEnabled:!1,notificationMode:"hidden-only",notifyOnSubtasks:!0,dockBadgeEnabled:!0,notifyOnCompletion:!0,notifyOnError:!0,notifyOnQuestion:!0,notificationTemplates:{completion:{...Re.completion},error:{...Re.error},question:{...Re.question},subtask:{...Re.subtask}},summarizeLastMessage:!1,summaryThreshold:200,summaryLength:100,maxLastMessageLength:250,showTerminalQuickKeysOnDesktop:!1,persistChatDraft:!0,inputSpellcheckEnabled:!1,wideChatLayoutEnabled:!1,codeBlockLineWrap:!0,showToolFileIcons:!0,showTurnChangedFiles:!1,showExpandedBashTools:!1,showExpandedEditTools:!1,timeFormatPreference:"auto",weekStartPreference:"auto",desktopWindowControlsPosition:"right",desktopWindowControlsStyle:"classic",mermaidRenderingMode:"svg",userMessageRenderingMode:"markdown",collapsibleUserMessages:!0,stickyUserHeader:!1,promptNavigatorEnabled:!0,expandedEditorToolbar:!1,showSplitAssistantMessageActions:!1,allowPromptingSubagentSessions:!1,draftStartersVisible:!0,isExpandedInput:!1,reportUsage:!0,shortcutOverrides:{},fileEditorKeymap:"default",setTheme:o=>{e({theme:o}),t().applyTheme()},toggleSidebar:()=>{e(o=>{const r=!o.isSidebarOpen;return r&&!o.hasManuallyResizedLeftSidebar?{isSidebarOpen:r,sidebarWidth:Et}:{isSidebarOpen:r}})},setSidebarOpen:o=>{e(r=>r.isSidebarOpen===o?o&&!r.hasManuallyResizedLeftSidebar&&r.sidebarWidth!==Et?{isSidebarOpen:o,sidebarWidth:Et}:r:o&&!r.hasManuallyResizedLeftSidebar?{isSidebarOpen:o,sidebarWidth:Et}:{isSidebarOpen:o})},setSidebarWidth:o=>{e({sidebarWidth:o,hasManuallyResizedLeftSidebar:!0})},setContextRailOrder:o=>{const r=Array.isArray(o)?o.filter((n,a)=>typeof n=="string"&&n.trim()!==""&&o.indexOf(n)===a):[];e({contextRailOrder:r})},toggleContextEditorTree:()=>{e(o=>({contextEditorTreeVisible:!o.contextEditorTreeVisible}))},setContextEditorTreeWidth:o=>{Number.isFinite(o)&&e({contextEditorTreeWidth:Math.min(480,Math.max(200,Math.round(o)))})},openContextSurface:(o,r)=>{const n=r==="diff"?"git":r,a=Y((o||"").trim());if(!a)return;const s=t(),i=s.contextPanelByDirectory[a],c=i?.tabs??[],d=c.find(u=>u.id===i?.activeTabId)??null;if(i?.isOpen&&d?.mode===n){s.closeContextPanel(a);return}const l=c.filter(u=>u.mode===n);if(l.length>0){const u=l.reduce((g,m)=>m.touchedAt>=g.touchedAt?m:g);s.setActiveContextPanelTab(a,u.id);return}n==="preview"||n==="chat"||s.openContextPanelTab(a,{mode:n})},openContextPanelTab:(o,r)=>{const n=Y((o||"").trim());n&&e(a=>{const s=a.contextPanelByDirectory[n],i=Ge(s),c={...a.contextPanelByDirectory,[n]:ad(i,r)};return{contextPanelByDirectory:We(c,20)}})},openContextDiff:(o,r,n=!1,a=null)=>{const s=Y((o||"").trim()),i=(r||"").trim();if(!s||!i)return;const c=Nr(a)??(n?"staged":"working");t().setPendingDiffFile(i,n,c),t().openContextPanelTab(s,{mode:"git"})},openContextFile:(o,r)=>{const n=Y((o||"").trim()),a=yo(r);!n||!a||(t().openContextPanelTab(n,{mode:"file",targetPath:a}),t().setPendingFileFocusPath(a),t().setPendingFileNavigation(null))},openContextFileAtLine:(o,r,n,a)=>{const s=Y((o||"").trim()),i=yo(r),c=Number.isFinite(n)?Math.max(1,Math.trunc(n)):1,d=Number.isFinite(a)?Math.max(1,Math.trunc(a)):1;!s||!i||(t().openContextPanelTab(s,{mode:"file",targetPath:i}),t().setPendingFileFocusPath(null),t().setPendingFileNavigation({path:i,line:c,column:d}))},openContextOverview:o=>{const r=Y((o||"").trim());r&&t().openContextPanelTab(r,{mode:"context"})},openContextPreview:(o,r)=>{const n=Y((o||"").trim()),a=(r||"").trim();if(!n||!a)return;let s=null;try{const i=new URL(a);(i.protocol==="http:"||i.protocol==="https:")&&(s=i.host||i.hostname||"Preview")}catch{}t().openContextPanelTab(n,{mode:"preview",targetPath:a,dedupeKey:a,label:s})},openContextBrowser:(o,r="")=>{const n=Y((o||"").trim());if(!n)return;const a=typeof r=="string"&&r.trim().length>0?r.trim():"";t().openContextPanelTab(n,{mode:"browser",targetPath:a,dedupeKey:"desktop-browser",label:"Browser"})},setContextPanelTabTargetPath:(o,r,n)=>{const a=Y((o||"").trim()),s=(r||"").trim();!a||!s||e(i=>{const c=i.contextPanelByDirectory[a];return c?{contextPanelByDirectory:{...i.contextPanelByDirectory,[a]:cd(c,s,n)}}:i})},setActiveContextPanelTab:(o,r)=>{const n=Y((o||"").trim()),a=(r||"").trim();!n||!a||e(s=>{const i=s.contextPanelByDirectory[n],c=Ge(i);if(!c.tabs.some(l=>l.id===a)||c.activeTabId===a&&c.isOpen)return s;const d={...s.contextPanelByDirectory,[n]:{...c,isOpen:!0,activeTabId:a,touchedAt:Date.now(),tabs:c.tabs.map(l=>l.id===a?{...l,touchedAt:Date.now()}:l)}};return{contextPanelByDirectory:We(d,20)}})},reorderContextPanelTabs:(o,r,n)=>{const a=Y((o||"").trim()),s=(r||"").trim(),i=(n||"").trim();!a||!s||!i||e(c=>{const d=c.contextPanelByDirectory[a],l=Ge(d);if(!l.tabs.some(m=>m.id===s)||!l.tabs.some(m=>m.id===i))return c;const u=id(l,s,i);if(u.tabs===l.tabs)return c;const g={...c.contextPanelByDirectory,[a]:u};return{contextPanelByDirectory:We(g,20)}})},closeContextPanelTab:(o,r)=>{const n=Y((o||"").trim()),a=(r||"").trim();if(!n||!a)return;const s=t().contextPanelByDirectory[n]?.tabs.find(i=>i.id===a);e(i=>{const c=i.contextPanelByDirectory[n],d=Ge(c);if(!d.tabs.some(u=>u.id===a))return i;const l={...i.contextPanelByDirectory,[n]:sd(d,a)};return{contextPanelByDirectory:We(l,20)}}),s?.mode==="file"&&s.targetPath&&Qc.getState().removeOpenPath(n,s.targetPath)},closeContextPanel:o=>{const r=Y((o||"").trim());r&&e(n=>{const a=n.contextPanelByDirectory[r];if(!a||!a.isOpen)return n;const s={...n.contextPanelByDirectory,[r]:{...Ge(a),isOpen:!1}};return{contextPanelByDirectory:We(s,20)}})},toggleContextPanelExpanded:o=>{const r=Y((o||"").trim());r&&e(n=>{const a=n.contextPanelByDirectory[r],s=Ge(a),i={...n.contextPanelByDirectory,[r]:{...s,expanded:!s.expanded}};return{contextPanelByDirectory:We(i,20)}})},setContextPanelWidth:(o,r)=>{const n=Y((o||"").trim());n&&e(a=>{const s=a.contextPanelByDirectory[n],i=Ge(s),c={...a.contextPanelByDirectory,[n]:{...i,width:uo(r)}};return{contextPanelByDirectory:We(c,20)}})},setNotesPanelHeight:o=>{e({notesPanelHeight:o})},setTodoPanelHeight:o=>{e({todoPanelHeight:o})},setSessionSwitcherOpen:o=>{t().isSessionSwitcherOpen!==o&&e({isSessionSwitcherOpen:o})},setSessionDropdownOpen:o=>{t().isSessionDropdownOpen!==o&&e({isSessionDropdownOpen:o})},setMainTabGuard:o=>{t().mainTabGuard!==o&&e({mainTabGuard:o})},setActiveMainTab:o=>{const r=t().mainTabGuard;r&&!r(o)||(qo.set(Ko(),o),e({activeMainTab:o}))},prepareForRuntimeSwitch:o=>{qo.set(Ko(o),t().activeMainTab)},restoreForRuntimeSwitch:o=>{const r=qo.get(Ko(o))??"chat";e({activeMainTab:r})},setPendingDiffFile:(o,r=!1,n=null)=>{e({pendingDiffFile:o,pendingDiffStaged:o?r:!1,pendingDiffScope:o?n:null})},setPendingDiagramFile:o=>{e({pendingDiagramFile:o})},setPendingFileNavigation:o=>{e({pendingFileNavigation:o})},setPendingFileFocusPath:o=>{e({pendingFileFocusPath:o})},navigateToDiff:(o,r=!1,n=null)=>{const a=t().mainTabGuard;a&&!a("diff")||e({pendingDiffFile:o,pendingDiffStaged:r,pendingDiffScope:n,activeMainTab:"diff"})},consumePendingDiffFile:()=>{const{pendingDiffFile:o}=t();return o&&e({pendingDiffFile:null,pendingDiffStaged:!1,pendingDiffScope:null}),o},navigateToDiagram:o=>{const r=t().mainTabGuard;r&&!r("diagram")||e({pendingDiagramFile:o,activeMainTab:"diagram"})},consumePendingDiagramFile:()=>{const{pendingDiagramFile:o}=t();return o&&e({pendingDiagramFile:null}),o},setIsMobile:o=>{e({isMobile:o})},toggleCommandPalette:()=>{e(o=>({isCommandPaletteOpen:!o.isCommandPaletteOpen}))},setCommandPaletteOpen:o=>{e({isCommandPaletteOpen:o})},toggleHelpDialog:()=>{e(o=>({isHelpDialogOpen:!o.isHelpDialogOpen}))},setHelpDialogOpen:o=>{e({isHelpDialogOpen:o})},setSessionCreateDialogOpen:o=>{e({isSessionCreateDialogOpen:o})},setArchivePageOpen:o=>{e({isArchivePageOpen:o})},closeMainSurfaces:()=>{t().isArchivePageOpen&&e({isArchivePageOpen:!1})},setSettingsDialogOpen:o=>{e(r=>o?r.settingsHasOpenedOnce?{isSettingsDialogOpen:!0}:{isSettingsDialogOpen:!0,settingsHasOpenedOnce:!0}:{isSettingsDialogOpen:!1})},setModelSelectorOpen:o=>{e({isModelSelectorOpen:o})},setSidebarSection:o=>{e({sidebarSection:o})},setSettingsPage:o=>{e({settingsPage:o})},setSettingsProjectsSelectedId:o=>{e({settingsProjectsSelectedId:o})},setSettingsRemoteInstancesSelectedId:o=>{e({settingsRemoteInstancesSelectedId:o})},setEventStreamStatus:(o,r)=>{e({eventStreamStatus:o,eventStreamHint:r??null})},setShowReasoningTraces:o=>{e({showReasoningTraces:o})},setCollapsibleThinkingBlocks:o=>{e({collapsibleThinkingBlocks:o})},setCollapseThinkingByDefault:o=>{e({collapseThinkingByDefault:o})},setShowDeletionDialog:o=>{e({showDeletionDialog:o})},setAutoDeleteEnabled:o=>{e({autoDeleteEnabled:o})},setAutoSaveEnabled:o=>{e({autoSaveEnabled:o})},setAutoDeleteAfterDays:o=>{const r=Math.max(1,Math.min(365,o));e({autoDeleteAfterDays:r})},setSessionRetentionAction:o=>{e({sessionRetentionAction:o})},setAutoDeleteLastRunAt:o=>{e({autoDeleteLastRunAt:o})},setMessageLimit:o=>{const r=Math.max(10,Math.min(500,Math.round(o)));e({messageLimit:r})},setFontSize:o=>{const r=Math.max(50,Math.min(200,o));e({fontSize:r}),t().applyTypography()},setGlobalDraftStarters:o=>{e({globalDraftStarters:o})},setDraftStartersVisible:o=>{e({draftStartersVisible:o})},setTerminalFontSize:o=>{const r=Math.round(o),n=Math.max(9,Math.min(52,r));e({terminalFontSize:n})},setTerminalShell:o=>{e({terminalShell:o})},setTerminalLoginShells:o=>{e({terminalLoginShells:[...new Set(o)]})},setEditorFontSize:o=>{const r=Math.round(o),n=Math.max(9,Math.min(32,r));e({editorFontSize:n})},setUiFont:o=>{e({uiFont:o})},setMonoFont:o=>{e({monoFont:o})},setPadding:o=>{const r=Math.max(50,Math.min(200,o));e({padding:r}),t().applyPadding()},setCornerRadius:o=>{e({cornerRadius:o})},applyTypography:()=>{const{fontSize:o}=t(),r=document.documentElement,n=o/100,a=Object.entries(Nc);if(n===1){for(const[s]of a)r.style.removeProperty(En(s));return}for(const[s,i]of a){const c=parseFloat(i);Number.isFinite(c)&&r.style.setProperty(En(s),`${c*n}rem`)}},applyPadding:()=>{const{padding:o}=t(),r=document.documentElement,n=o/100;if(n===1){r.style.removeProperty("--padding-scale"),r.style.removeProperty("--line-height-tight"),r.style.removeProperty("--line-height-normal"),r.style.removeProperty("--line-height-relaxed"),r.style.removeProperty("--line-height-loose");return}const a=Math.sqrt(n);r.style.setProperty("--padding-scale",a.toString());const s=1+(n-1)*.15;r.style.setProperty("--line-height-tight",(1.25*s).toFixed(3)),r.style.setProperty("--line-height-normal",(1.5*s).toFixed(3)),r.style.setProperty("--line-height-relaxed",(1.625*s).toFixed(3)),r.style.setProperty("--line-height-loose",(2*s).toFixed(3))},setDiffLayoutPreference:o=>{e({diffLayoutPreference:o})},setDiffFileLayout:(o,r)=>{e(n=>({diffFileLayout:{...n.diffFileLayout,[o]:r}}))},setDiffWrapLines:o=>{e({diffWrapLines:o})},setWalkthroughTocWidth:o=>{e({walkthroughTocWidth:Math.round(o)})},setGitChangesViewMode:o=>{e({gitChangesViewMode:o})},setInputBarOffset:o=>{e({inputBarOffset:o})},setMobileKeyboardMode:o=>{e(r=>r.mobileKeyboardMode===o?r:{mobileKeyboardMode:o})},toggleFavoriteModel:(o,r)=>{e(n=>n.favoriteModels.some(s=>s.providerID===o&&s.modelID===r)?{favoriteModels:n.favoriteModels.filter(s=>!(s.providerID===o&&s.modelID===r))}:{favoriteModels:[{providerID:o,modelID:r},...n.favoriteModels]})},reorderFavoriteModel:(o,r,n,a)=>{e(s=>{const i=s.favoriteModels.findIndex(u=>u.providerID===o&&u.modelID===r),c=s.favoriteModels.findIndex(u=>u.providerID===n&&u.modelID===a);if(i===-1||c===-1||i===c)return s;const d=s.favoriteModels.slice(),[l]=d.splice(i,1);return l?(d.splice(c,0,l),{favoriteModels:d}):s})},setProviderOrder:o=>{e(r=>{const n=o.filter(s=>typeof s=="string"&&s.length>0),a=r.providerOrder;return a.length===n.length&&a.every((s,i)=>s===n[i])?r:{providerOrder:n}})},toggleHiddenModel:(o,r)=>{e(n=>n.hiddenModels.some(s=>s.providerID===o&&s.modelID===r)?{hiddenModels:n.hiddenModels.filter(s=>!(s.providerID===o&&s.modelID===r))}:{hiddenModels:[{providerID:o,modelID:r},...n.hiddenModels]})},isHiddenModel:(o,r)=>{const{hiddenModels:n}=t();return n.some(a=>a.providerID===o&&a.modelID===r)},hideAllModels:(o,r)=>{e(n=>{const a=n.hiddenModels.filter(i=>i.providerID!==o);return{hiddenModels:[...r.filter(i=>typeof i=="string"&&i.length>0).map(i=>({providerID:o,modelID:i})),...a]}})},showAllModels:o=>{e(r=>({hiddenModels:r.hiddenModels.filter(n=>n.providerID!==o)}))},toggleModelProviderCollapsed:o=>{const r=typeof o=="string"?o.trim():"";r&&e(n=>n.collapsedModelProviders.includes(r)?{collapsedModelProviders:n.collapsedModelProviders.filter(s=>s!==r)}:{collapsedModelProviders:[...n.collapsedModelProviders,r]})},setModelProvidersCollapsed:(o,r)=>{const n=Array.from(new Set(o.filter(a=>typeof a=="string").map(a=>a.trim()).filter(Boolean)));n.length!==0&&e(a=>{const s=new Set(n),i=a.collapsedModelProviders.filter(c=>!s.has(c));return{collapsedModelProviders:r?[...i,...n]:i}})},isFavoriteModel:(o,r)=>{const{favoriteModels:n}=t();return n.some(a=>a.providerID===o&&a.modelID===r)},addRecentModel:(o,r)=>{e(n=>{const a=n.recentModels.filter(s=>!(s.providerID===o&&s.modelID===r));return{recentModels:[{providerID:o,modelID:r},...a].slice(0,5)}})},addRecentAgent:o=>{const r=typeof o=="string"?o.trim():"";r&&e(n=>{if(n.recentAgents.includes(r))return n;const a=n.recentAgents;return{recentAgents:[r,...a].slice(0,5)}})},addRecentEffort:(o,r,n)=>{const a=typeof o=="string"?o.trim():"",s=typeof r=="string"?r.trim():"";if(!a||!s)return;const i=`${a}/${s}`,c=typeof n=="string"&&n.trim().length>0?n.trim():"default";e(d=>{const l=d.recentEfforts[i]??[];if(l.includes(c))return d;const u=l;return{recentEfforts:{...d.recentEfforts,[i]:[c,...u].slice(0,5)}}})},applyTheme:()=>{const{theme:o}=t(),r=document.documentElement;if(r.classList.remove("light","dark"),o==="system"){const n=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";r.classList.add(n)}else r.classList.add(o)},setTimelineDialogOpen:o=>{e({isTimelineDialogOpen:o})},setPromptNavigatorPanelOpen:o=>{e({isPromptNavigatorPanelOpen:o})},togglePromptNavigatorPanel:()=>{e(o=>({isPromptNavigatorPanelOpen:!o.isPromptNavigatorPanelOpen}))},setImagePreviewOpen:o=>{e({isImagePreviewOpen:o})},setNativeNotificationsEnabled:o=>{e({nativeNotificationsEnabled:o})},setNotificationMode:o=>{e({notificationMode:o})},setShowTerminalQuickKeysOnDesktop:o=>{e({showTerminalQuickKeysOnDesktop:o})},setNotifyOnSubtasks:o=>{e({notifyOnSubtasks:o})},setDockBadgeEnabled:o=>{e({dockBadgeEnabled:o})},setNotifyOnCompletion:o=>{e({notifyOnCompletion:o})},setNotifyOnError:o=>{e({notifyOnError:o})},setNotifyOnQuestion:o=>{e({notifyOnQuestion:o})},setNotificationTemplates:o=>{e(r=>({notificationTemplates:typeof o=="function"?o(r.notificationTemplates):o}))},setSummarizeLastMessage:o=>{e({summarizeLastMessage:o})},setSummaryThreshold:o=>{e({summaryThreshold:o})},setSummaryLength:o=>{e({summaryLength:o})},setMaxLastMessageLength:o=>{e({maxLastMessageLength:o})},setPersistChatDraft:o=>{e({persistChatDraft:o})},setInputSpellcheckEnabled:o=>{e({inputSpellcheckEnabled:o})},setWideChatLayoutEnabled:o=>{e({wideChatLayoutEnabled:o})},setCodeBlockLineWrap:o=>{e({codeBlockLineWrap:o})},setShowToolFileIcons:o=>{e({showToolFileIcons:o})},setShowTurnChangedFiles:o=>{e({showTurnChangedFiles:o})},setShowExpandedBashTools:o=>{e({showExpandedBashTools:o})},setShowExpandedEditTools:o=>{e({showExpandedEditTools:o})},setTimeFormatPreference:o=>{e({timeFormatPreference:o})},setWeekStartPreference:o=>{e({weekStartPreference:o})},setDesktopWindowControlsPosition:o=>{e({desktopWindowControlsPosition:o==="left"?"left":"right"})},setDesktopWindowControlsStyle:o=>{e({desktopWindowControlsStyle:o==="traffic-lights"?"traffic-lights":"classic"})},setMermaidRenderingMode:o=>{e({mermaidRenderingMode:o})},setUserMessageRenderingMode:o=>{e({userMessageRenderingMode:o})},setCollapsibleUserMessages:o=>{e({collapsibleUserMessages:o})},setStickyUserHeader:o=>{e({stickyUserHeader:o})},setPromptNavigatorEnabled:o=>{e({promptNavigatorEnabled:o})},setExpandedEditorToolbar:o=>{e({expandedEditorToolbar:o})},setShowSplitAssistantMessageActions:o=>{e({showSplitAssistantMessageActions:o})},setAllowPromptingSubagentSessions:o=>{e({allowPromptingSubagentSessions:o})},setReportUsage:o=>{e({reportUsage:o})},viewPagerPage:"center",setViewPagerPage:o=>{e({viewPagerPage:o}),e({isSessionSwitcherOpen:o==="left"})},setShortcutOverride:(o,r)=>{e(n=>({shortcutOverrides:{...n.shortcutOverrides,[o]:r}}))},clearShortcutOverride:o=>{e(r=>{const n={...r.shortcutOverrides};return delete n[o],{shortcutOverrides:n}})},resetAllShortcutOverrides:()=>{e({shortcutOverrides:{}})},setFileEditorKeymap:o=>{e({fileEditorKeymap:wn(o)})},toggleExpandedInput:()=>{e(o=>({isExpandedInput:!o.isExpandedInput}))},setExpandedInput:o=>{e({isExpandedInput:o})}}),{name:"ui-store",storage:xr(),version:15,migrate:(e,t)=>{if(!e||typeof e!="object")return e;const o=e;if(t<15&&(o.contextPanelByDirectory=Bt(o.contextPanelByDirectory),Array.isArray(o.contextRailOrder)&&(o.contextRailOrder=o.contextRailOrder.filter(r=>r!=="pr"))),t<14&&(o.contextPanelByDirectory=Bt(o.contextPanelByDirectory),Array.isArray(o.contextRailOrder)&&(o.contextRailOrder=o.contextRailOrder.filter(r=>r!=="diff"))),t<13&&typeof o.autoSaveEnabled!="boolean"){let r=!0;try{if(typeof localStorage<"u"){const n=localStorage.getItem("pichamber:files:auto-save-enabled");n!==null&&(r=n!=="false",localStorage.removeItem("pichamber:files:auto-save-enabled"))}}catch{r=!0}o.autoSaveEnabled=r}if(t<12&&(o.desktopWindowControlsPosition==="auto"||o.desktopWindowControlsPosition==null)&&(o.desktopWindowControlsPosition="right"),t<11&&o.terminalFontSize===13&&(o.terminalFontSize=14),t<10&&delete o.diffViewMode,t<9&&((typeof o.notesPanelHeight!="number"||!Number.isFinite(o.notesPanelHeight))&&(o.notesPanelHeight=112),(typeof o.todoPanelHeight!="number"||!Number.isFinite(o.todoPanelHeight))&&(o.todoPanelHeight=259)),t<1&&Xc(o.notificationTemplates)&&(o.notificationTemplates={completion:{...Re.completion},error:{...Re.error},question:{...Re.question},subtask:{...Re.subtask}}),t<3){const r=new Set([90,120,180,220]),n=o.memoryLimitHistorical,a=o.memoryLimitActiveSession;typeof n=="number"&&!r.has(n)?o.messageLimit=n:typeof a=="number"&&!r.has(a)&&(o.messageLimit=a),delete o.memoryLimitHistorical,delete o.memoryLimitViewport,delete o.memoryLimitActiveSession}if(delete o.isRightSidebarOpen,delete o.rightSidebarWidth,delete o.rightSidebarTab,delete o.workStatusExpandedSections,delete o.workStatusScrollTop,delete o.workStatusPanelEnabled,delete o.workStatusHiddenSections,o.contextPanelByDirectory=Bt(o.contextPanelByDirectory),t<5)if(!o.shortcutOverrides||typeof o.shortcutOverrides!="object")o.shortcutOverrides={};else{const r=o.shortcutOverrides,n={};for(const[a,s]of Object.entries(r))typeof a=="string"&&typeof s=="string"&&(n[a]=s);o.shortcutOverrides=n}return t<6&&(o.contextPanelByDirectory=Bt(o.contextPanelByDirectory)),t<7&&(o.contextPanelByDirectory=Bt(o.contextPanelByDirectory)),t<8&&o.gitChangesViewMode!=="flat"&&o.gitChangesViewMode!=="tree"&&(o.gitChangesViewMode="flat"),o.fileEditorKeymap=wn(o.fileEditorKeymap),typeof o.autoSaveEnabled!="boolean"&&(o.autoSaveEnabled=!0),o.contextRailOrder=Array.isArray(o.contextRailOrder)?o.contextRailOrder.filter(r=>typeof r=="string"&&r.trim()!==""&&r!=="pr"&&r!=="diff"):[],o},partialize:e=>({theme:e.theme,isSidebarOpen:e.isSidebarOpen,sidebarWidth:e.sidebarWidth,contextPanelByDirectory:e.contextPanelByDirectory,contextRailOrder:e.contextRailOrder,contextEditorTreeVisible:e.contextEditorTreeVisible,contextEditorTreeWidth:e.contextEditorTreeWidth,notesPanelHeight:e.notesPanelHeight,todoPanelHeight:e.todoPanelHeight,isSessionSwitcherOpen:e.isSessionSwitcherOpen,activeMainTab:e.activeMainTab,sidebarSection:e.sidebarSection,settingsPage:e.settingsPage,settingsHasOpenedOnce:e.settingsHasOpenedOnce,settingsProjectsSelectedId:e.settingsProjectsSelectedId,settingsRemoteInstancesSelectedId:e.settingsRemoteInstancesSelectedId,isSessionCreateDialogOpen:e.isSessionCreateDialogOpen,showReasoningTraces:e.showReasoningTraces,collapsibleThinkingBlocks:e.collapsibleThinkingBlocks,collapseThinkingByDefault:e.collapseThinkingByDefault,showDeletionDialog:e.showDeletionDialog,autoDeleteEnabled:e.autoDeleteEnabled,autoSaveEnabled:e.autoSaveEnabled,autoDeleteAfterDays:e.autoDeleteAfterDays,sessionRetentionAction:e.sessionRetentionAction,autoDeleteLastRunAt:e.autoDeleteLastRunAt,messageLimit:e.messageLimit,fontSize:e.fontSize,globalDraftStarters:e.globalDraftStarters,terminalFontSize:e.terminalFontSize,terminalShell:e.terminalShell,terminalLoginShells:e.terminalLoginShells,editorFontSize:e.editorFontSize,uiFont:e.uiFont,monoFont:e.monoFont,padding:e.padding,cornerRadius:e.cornerRadius,favoriteModels:e.favoriteModels,hiddenModels:e.hiddenModels,providerOrder:e.providerOrder,collapsedModelProviders:e.collapsedModelProviders,recentModels:e.recentModels,recentAgents:e.recentAgents,recentEfforts:e.recentEfforts,diffLayoutPreference:e.diffLayoutPreference,diffWrapLines:e.diffWrapLines,walkthroughTocWidth:e.walkthroughTocWidth,gitChangesViewMode:e.gitChangesViewMode,nativeNotificationsEnabled:e.nativeNotificationsEnabled,notificationMode:e.notificationMode,showTerminalQuickKeysOnDesktop:e.showTerminalQuickKeysOnDesktop,notifyOnSubtasks:e.notifyOnSubtasks,dockBadgeEnabled:e.dockBadgeEnabled,notifyOnCompletion:e.notifyOnCompletion,notifyOnError:e.notifyOnError,notifyOnQuestion:e.notifyOnQuestion,notificationTemplates:e.notificationTemplates,summarizeLastMessage:e.summarizeLastMessage,summaryThreshold:e.summaryThreshold,summaryLength:e.summaryLength,maxLastMessageLength:e.maxLastMessageLength,persistChatDraft:e.persistChatDraft,inputSpellcheckEnabled:e.inputSpellcheckEnabled,wideChatLayoutEnabled:e.wideChatLayoutEnabled,codeBlockLineWrap:e.codeBlockLineWrap,showToolFileIcons:e.showToolFileIcons,showTurnChangedFiles:e.showTurnChangedFiles,showExpandedBashTools:e.showExpandedBashTools,showExpandedEditTools:e.showExpandedEditTools,timeFormatPreference:e.timeFormatPreference,weekStartPreference:e.weekStartPreference,desktopWindowControlsPosition:e.desktopWindowControlsPosition,desktopWindowControlsStyle:e.desktopWindowControlsStyle,mermaidRenderingMode:e.mermaidRenderingMode,userMessageRenderingMode:e.userMessageRenderingMode,collapsibleUserMessages:e.collapsibleUserMessages,stickyUserHeader:e.stickyUserHeader,promptNavigatorEnabled:e.promptNavigatorEnabled,expandedEditorToolbar:e.expandedEditorToolbar,showSplitAssistantMessageActions:e.showSplitAssistantMessageActions,allowPromptingSubagentSessions:e.allowPromptingSubagentSessions,draftStartersVisible:e.draftStartersVisible,shortcutOverrides:e.shortcutOverrides,fileEditorKeymap:e.fileEditorKeymap})}),{name:"ui-store"})),ld=e=>{if(typeof e!="string")return null;const t=e.trim();if(!t)return null;const o=t.replace(/\\/g,"/").replace(/^([a-z]):/,(n,a)=>a.toUpperCase()+":");return o==="/"?"/":(o.length>1?o.replace(/\/+$/,""):o)||null},Lr="queue",Hr=e=>e==="steer"||e==="queue",jr=(e,t)=>e==="immediate"?"steer":Hr(e)?e:t===!1?"steer":t===!0?"queue":Lr,kn=50,ud=(e,t,o=O())=>{const r=ld(t);return!o||!r||!e?null:{runtimeKey:o,directory:r,sessionId:e}},Ee=e=>`${e.runtimeKey}
5
+ ${e.directory}
6
+ ${e.sessionId}`,cF=e=>{const[t,o,...r]=e.split(`
7
+ `);return ud(r.join(`
8
+ `),o,t)},fd=(e,t)=>{const o=e??{},r=t<2?o.queuedMessages??{}:{};return{queuedMessages:t<2?{}:o.queuedMessages??{},quarantinedLegacyMessages:{...o.quarantinedLegacyMessages??{},...r},followUpBehavior:jr(o.followUpBehavior,o.queueModeEnabled??null)}},md=Lt()(Ht(Br((e,t)=>({queuedMessages:{},quarantinedLegacyMessages:{},followUpBehavior:Lr,sendingIds:{},addToQueue:(o,r)=>{const n=Ee(o),s={id:`queued-${Date.now()}-${Math.random().toString(36).substring(2,9)}`,content:r.content,attachments:r.attachments,createdAt:Date.now(),sendConfig:r.sendConfig};e(i=>{const c=i.queuedMessages[n]??[],d={...i.queuedMessages,[n]:[...c,s].slice(-20)},l=Object.keys(d);if(l.length>kn){l.sort((u,g)=>(d[u]?.[0]?.createdAt??0)-(d[g]?.[0]?.createdAt??0));for(const u of l.slice(0,l.length-kn))delete d[u]}return{queuedMessages:d}})},removeFromQueue:(o,r)=>{const n=Ee(o);e(a=>{const i=(a.queuedMessages[n]??[]).filter(c=>c.id!==r);if(i.length===0){const{[n]:c,...d}=a.queuedMessages;return{queuedMessages:d}}return{queuedMessages:{...a.queuedMessages,[n]:i}}})},reorderQueue:(o,r,n)=>{if(r===n)return;const a=Ee(o);e(s=>{const i=s.queuedMessages[a];if(!i)return s;const c=i.findIndex(g=>g.id===r),d=i.findIndex(g=>g.id===n);if(c===-1||d===-1)return s;const l=i.slice(),[u]=l.splice(c,1);return l.splice(d,0,u),{queuedMessages:{...s.queuedMessages,[a]:l}}})},popToInput:(o,r)=>{const n=Ee(o),i=(t().queuedMessages[n]??[]).find(c=>c.id===r);return i?(e(c=>{const l=(c.queuedMessages[n]??[]).filter(u=>u.id!==r);if(l.length===0){const{[n]:u,...g}=c.queuedMessages;return{queuedMessages:g}}return{queuedMessages:{...c.queuedMessages,[n]:l}}}),i):null},clearQueue:o=>{const r=Ee(o);e(n=>{const a=n.sendingIds[r]??[],s=(n.queuedMessages[r]??[]).filter(d=>a.includes(d.id));if(s.length>0)return{queuedMessages:{...n.queuedMessages,[r]:s}};const{[r]:i,...c}=n.queuedMessages;return{queuedMessages:c}})},clearAllQueues:()=>{e({queuedMessages:{},sendingIds:{}})},markSending:(o,r)=>{const n=Ee(o);e(a=>{const s=a.sendingIds[n]??[];return s.includes(r)?a:{sendingIds:{...a.sendingIds,[n]:[...s,r]}}})},clearSending:(o,r)=>{const n=Ee(o);e(a=>{const s=a.sendingIds[n];if(!s||!s.includes(r))return a;const i=s.filter(c=>c!==r);if(i.length===0){const{[n]:c,...d}=a.sendingIds;return{sendingIds:d}}return{sendingIds:{...a.sendingIds,[n]:i}}})},getSendableQueue:o=>{const r=Ee(o),n=t(),a=n.queuedMessages[r]??[],s=n.sendingIds[r];return!s||s.length===0?a:a.filter(i=>!s.includes(i.id))},setFollowUpBehavior:o=>{e({followUpBehavior:o}),ye({followUpBehavior:o})},getQueueForTarget:o=>t().queuedMessages[Ee(o)]??[]}),{name:"message-queue-store",version:2,storage:xr(),partialize:e=>({queuedMessages:e.queuedMessages,quarantinedLegacyMessages:e.quarantinedLegacyMessages,followUpBehavior:e.followUpBehavior}),migrate:fd}),{name:"message-queue-store"})),za="directoryTreeShowHidden",rr="directory-show-hidden-change",vn=()=>{if(typeof window>"u")return!0;try{const e=qt().getItem(za);return e===null?!0:e==="true"}catch{return!0}},gd=()=>{typeof window>"u"||window.dispatchEvent(new Event(rr))},pd=(e,t={})=>{if(!(typeof window>"u")){try{qt().setItem(za,e?"true":"false"),gd()}catch{}t.persist!==!1&&ye({directoryShowHidden:e})}},dF=()=>{const[e,t]=mo.useState(vn);return mo.useEffect(()=>{if(typeof window>"u")return;const o=()=>{t(vn())};return window.addEventListener("storage",o),window.addEventListener(rr,o),()=>{window.removeEventListener("storage",o),window.removeEventListener(rr,o)}},[]),e},qa="filesViewShowGitignored",nr="files-view-show-gitignored-change",Dn=()=>{if(typeof window>"u")return!1;try{return qt().getItem(qa)==="true"}catch{return!1}},Fd=()=>{typeof window>"u"||window.dispatchEvent(new Event(nr))},hd=(e,t={})=>{if(!(typeof window>"u")){try{qt().setItem(qa,e?"true":"false"),Fd()}catch{}t.persist!==!1&&ye({filesViewShowGitignored:e})}},lF=()=>{const[e,t]=mo.useState(Dn);return mo.useEffect(()=>{if(typeof window>"u")return;const o=()=>{t(Dn())};return window.addEventListener("storage",o),window.addEventListener(nr,o),()=>{window.removeEventListener("storage",o),window.removeEventListener(nr,o)}},[]),e},yd=e=>{if(!e||typeof e!="object")return null;const t={};return typeof e.showReasoningTraces=="boolean"&&(t.showReasoningTraces=e.showReasoningTraces),typeof e.collapsibleThinkingBlocks=="boolean"&&(t.collapsibleThinkingBlocks=e.collapsibleThinkingBlocks),typeof e.collapseThinkingByDefault=="boolean"&&(t.collapseThinkingByDefault=e.collapseThinkingByDefault),Object.keys(t).length>0?t:null},bd=e=>{if(!e||typeof e!="object")return null;const t=e;return{showReasoningTraces:t.showReasoningTraces,collapsibleThinkingBlocks:t.collapsibleThinkingBlocks,collapseThinkingByDefault:t.collapseThinkingByDefault}},Ad=e=>{const t=ie.getState();typeof e.showReasoningTraces=="boolean"&&t.setShowReasoningTraces(e.showReasoningTraces),typeof e.collapsibleThinkingBlocks=="boolean"&&t.setCollapsibleThinkingBlocks(e.collapsibleThinkingBlocks),typeof e.collapseThinkingByDefault=="boolean"&&t.setCollapseThinkingByDefault(e.collapseThinkingByDefault)},Ed=async()=>{if(typeof window>"u")return null;const e=localStorage.getItem("appearance-preferences");if(!e)return null;try{const t=JSON.parse(e),o=bd(t);return yd(o)}catch(t){return console.warn("Failed to parse stored appearance preferences:",t),null}},Ka=[{name:"explore",icon:"compass-3",label:"Explore the codebase",command:"/explore"},{name:"catch-up",icon:"history",label:"Catch me up",command:"/catch-up"},{name:"weigh",icon:"scales-3",label:"Weigh my options",command:"/weigh"},{name:"plan-feature",icon:"survey",label:"Start feature planning",command:"/plan-feature"},{name:"debug",icon:"bug",label:"Debug an issue",command:"/debug"}],Bd=new Map(Ka.map(e=>[e.name,e])),uF=e=>Bd.get(e),fF=Ka.map(e=>({type:"command",name:e.name})),mF="book-open",gF=e=>`${e.type}:${e.name}`,pF=(e,t)=>e.type===t.type&&e.name===t.name,FF=e=>{const t=e.replace(/^\//,"").replace(/[-_]+/g," ").replace(/\s+/g," ").trim();return t?t.charAt(0).toUpperCase()+t.slice(1):e},Ga=e=>{if(!Array.isArray(e))return[];const t=[],o=new Set;for(const r of e){if(!r||typeof r!="object")continue;const n=r,a=n.type==="command"||n.type==="skill"?n.type:null,s=typeof n.name=="string"?n.name.trim():"";if(!a||!s)continue;const i=`${a}:${s}`;o.has(i)||(o.add(i),t.push({type:a,name:s}))}return t},wd=["bash","zsh","sh","fish","pwsh","powershell","cmd","dash","ksh","nu"],Ao=e=>e==="auto"||typeof e=="string"&&wd.includes(e),Cd="#8957e5",kd="#8250df",vd=e=>{const t=e.colors.syntax?.tokens??{},o=[t.className,t.enum,t.variableGlobal,e.colors.syntax?.base?.keyword].filter(r=>typeof r=="string"&&r.trim().length>0);return o.length>0?o[0]:e.metadata.variant==="dark"?Cd:kd},Kt=e=>e.colors.pr?e:{...e,colors:{...e.colors,pr:{open:e.colors.status.success,draft:e.colors.surface.mutedForeground,blocked:e.colors.status.warning,merged:vd(e),closed:e.colors.status.error}}},Dd={id:"aura-dark",name:"Aura",description:"Aura",version:"1.0.0",variant:"dark",tags:["dark","palette"]},Sd={primary:{base:"#A277FF",hover:"#8D68DD",active:"#B08BFF",foreground:"#15141B",muted:"#A277FF80",emphasis:"#8D68DD"},surface:{background:"#15141B",foreground:"#EDECEE",muted:"#1A1921",mutedForeground:"#8a8282",elevated:"#201e2b",elevatedForeground:"#EDECEE",overlay:"#FFFFFF20",subtle:"#25232f"},interactive:{border:"#2a2935",borderHover:"#47415a",borderFocus:"#4E496C",selection:"#95abe02d",selectionForeground:"#FFFFFF",focus:"#A277FF",focusRing:"#A277FF40",cursor:"#FFFFFF",hover:"#7887ac2d",active:"#95abe02d"},status:{error:"#FF6767",errorForeground:"#15141B",errorBackground:"#FF676720",errorBorder:"#FF676750",warning:"#FFCA85",warningForeground:"#15141B",warningBackground:"#FFCA8520",warningBorder:"#FFCA8550",success:"#61FFCA",successForeground:"#15141B",successBackground:"#61FFCA20",successBorder:"#61FFCA50",info:"#82E2FF",infoForeground:"#15141B",infoBackground:"#82E2FF20",infoBorder:"#82E2FF50"},pr:{open:"#61FFCA",draft:"#6D6D6D",blocked:"#FFCA85",merged:"#A277FF",closed:"#FF6767"},syntax:{base:{background:"#1A1921",foreground:"#EDECEE",comment:"#6D6D6D",keyword:"#A277FF",string:"#61FFCA",number:"#FF6767",function:"#A277FF",variable:"#EDECEE",type:"#FFCA85",operator:"#FF6767"},tokens:{boolean:"#FFCA85",class:"#A277FF",className:"#A277FF",commentDoc:"#606061",constant:"#82E2FF",decorator:"#FFCA85",enum:"#A277FF",exception:"#FF6767",functionCall:"#A277FF",interface:"#FFCA85",jsxTag:"#A277FF",key:"#A277FF",keywordImport:"#FF6767",label:"#FF6767",macro:"#82E2FF",method:"#61FFCA",module:"#FF6767",namespace:"#FFCA85",parameter:"#EDECEE",preprocessor:"#FF6767",punctuation:"#6D6D6D",regex:"#61FFCA",storageModifier:"#82E2FF",stringEscape:"#FFFFFF",struct:"#A277FF",tag:"#A277FF",tagAttribute:"#FFCA85",tagAttributeValue:"#61FFCA",typeParameter:"#FFCA85",url:"#A277FF",variableGlobal:"#A277FF",variableLocal:"#121118",variableOther:"#61FFCA",variableProperty:"#82E2FF"},highlights:{diffAdded:"#61FFCA",diffAddedBackground:"#162620",diffModified:"#82E2FF",diffModifiedBackground:"#1E1D2A",diffRemoved:"#FF6767",diffRemovedBackground:"#26161A",lineNumber:"#3E3A56",lineNumberActive:"#FFFFFF"}},markdown:{heading1:"#e7d7f4",heading2:"#e7e0ee",heading3:"#ece7f0",heading4:"#EDECEE",link:"#A277FF",linkHover:"#F694FF",inlineCode:"#61FFCA",inlineCodeBackground:"#1A1921",blockquote:"#6D6D6D",blockquoteBorder:"#2D2B38",listMarker:"#A277FF99"},chat:{userMessage:"#EDECEE",userMessageBackground:"#393647",assistantMessage:"#EDECEE",assistantMessageBackground:"#15141B",timestamp:"#6D6D6D",divider:"#2D2B38"},tools:{background:"#1A192180",border:"#43415480",headerHover:"#0F0E14",icon:"#6D6D6D",title:"#EDECEE",description:"#6D6D6D",edit:{added:"#61FFCA",addedBackground:"#61FFCA25",removed:"#FF6767",removedBackground:"#FF676725",lineNumber:"#3E3A56"}}},Md={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},Td={metadata:Dd,colors:Sd,config:Md},Rd={id:"aura-light",name:"Aura",description:"Aura",version:"1.0.0",variant:"light",tags:["light","palette"]},Pd={primary:{base:"#A277FF",hover:"#B38FFF",active:"#8D68DD",foreground:"#F5F0FF",muted:"#A277FF80",emphasis:"#B38FFF"},surface:{background:"#F5F0FF",foreground:"#2D2640",muted:"#EFE8FC",mutedForeground:"#807b8b",elevated:"#f1ebfb",elevatedForeground:"#2D2640",overlay:"#15101F20",subtle:"#EFE8FC"},interactive:{border:"#E0D6F2",borderHover:"#D5C9EB",borderFocus:"#A593C8",selection:"#bdb2d74c",selectionForeground:"#15101F",focus:"#A277FF",focusRing:"#A277FF40",cursor:"#15101F",hover:"#bdb2d72d",active:"#bdb2d74c"},status:{error:"#D94F4F",errorForeground:"#F5F0FF",errorBackground:"#D94F4F20",errorBorder:"#D94F4F50",warning:"#D9A24A",warningForeground:"#F5F0FF",warningBackground:"#D9A24A20",warningBorder:"#D9A24A50",success:"#40BF7A",successForeground:"#F5F0FF",successBackground:"#40BF7A20",successBorder:"#40BF7A50",info:"#5BB8D9",infoForeground:"#F5F0FF",infoBackground:"#5BB8D920",infoBorder:"#5BB8D950"},pr:{open:"#40BF7A",draft:"#6D6D6D",blocked:"#D9A24A",merged:"#A277FF",closed:"#D94F4F"},syntax:{base:{background:"#EFE8FC",foreground:"#2D2640",comment:"#5C5270",keyword:"#A277FF",string:"#40BF7A",number:"#D94F4F",function:"#A277FF",variable:"#2D2640",type:"#D9A24A",operator:"#D94F4F"},tokens:{boolean:"#D9A24A",class:"#A277FF",className:"#A277FF",commentDoc:"#A9A1B8",constant:"#5BB8D9",decorator:"#D9A24A",enum:"#A277FF",exception:"#D94F4F",functionCall:"#A277FF",interface:"#D9A24A",jsxTag:"#A277FF",key:"#A277FF",keywordImport:"#D94F4F",label:"#D94F4F",macro:"#5BB8D9",method:"#40BF7A",module:"#D94F4F",namespace:"#D9A24A",parameter:"#2D2640",preprocessor:"#D94F4F",punctuation:"#5C5270",regex:"#40BF7A",storageModifier:"#5BB8D9",stringEscape:"#15101F",struct:"#A277FF",tag:"#A277FF",tagAttribute:"#D9A24A",tagAttributeValue:"#40BF7A",typeParameter:"#D9A24A",url:"#A277FF",variableGlobal:"#A277FF",variableLocal:"#FAF7FF",variableOther:"#40BF7A",variableProperty:"#5BB8D9"},highlights:{diffAdded:"#40BF7A",diffAddedBackground:"#E8F5ED",diffModified:"#5BB8D9",diffModifiedBackground:"#E8E4F5",diffRemoved:"#D94F4F",diffRemovedBackground:"#FAE8E8",lineNumber:"#C0B3DC",lineNumberActive:"#15101F"}},markdown:{heading1:"#A277FF",heading2:"#A277FF",heading3:"#D9A24A",heading4:"#2D2640",link:"#A277FF",linkHover:"#C17AC8",inlineCode:"#40BF7A",inlineCodeBackground:"#EFE8FC",blockquote:"#6D6D6D",blockquoteBorder:"#E0D6F2",listMarker:"#A277FF99"},chat:{userMessage:"#2D2640",userMessageBackground:"#EFE8FC",assistantMessage:"#2D2640",assistantMessageBackground:"#F5F0FF",timestamp:"#5C5270",divider:"#E0D6F2"},tools:{background:"#EFE8FC80",border:"#bdb5cd80",headerHover:"#FDFCFF",icon:"#5C5270",title:"#2D2640",description:"#5C5270",edit:{added:"#40BF7A",addedBackground:"#40BF7A25",removed:"#D94F4F",removedBackground:"#D94F4F25",lineNumber:"#C0B3DC"}}},Id={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},xd={metadata:Rd,colors:Pd,config:Id},_d={id:"ayu-dark",name:"Ayu",description:"Ayu",version:"1.0.0",variant:"dark",tags:["dark","palette"]},Od={primary:{base:"#3FB7E3",hover:"#389FC5",active:"#5BC1E7",foreground:"#0F1419",muted:"#3FB7E380",emphasis:"#389FC5"},surface:{background:"#0F1419",foreground:"#D6DAE0",muted:"#18222C",mutedForeground:"#777e86",elevated:"#17202a",elevatedForeground:"#D6DAE0",overlay:"#FBFBFD20",subtle:"#1e252d"},interactive:{border:"#292c30",borderHover:"#323C49",borderFocus:"#56647C",selection:"#c7c7df1d",selectionForeground:"#FBFBFD",focus:"#3FB7E3",focusRing:"#3FB7E340",cursor:"#FBFBFD",hover:"#b6b6cc1d",active:"#b8b8ce1d"},status:{error:"#F58572",errorForeground:"#0F1419",errorBackground:"#F5857220",errorBorder:"#F5857250",warning:"#E4A75C",warningForeground:"#0F1419",warningBackground:"#E4A75C20",warningBorder:"#E4A75C50",success:"#78D05C",successForeground:"#0F1419",successBackground:"#78D05C20",successBorder:"#78D05C50",info:"#66C6F1",infoForeground:"#0F1419",infoBackground:"#66C6F120",infoBorder:"#66C6F150"},pr:{open:"#78D05C",draft:"#A3ADBA",blocked:"#E4A75C",merged:"#8a44f2",closed:"#F58572"},syntax:{base:{background:"#18222C",foreground:"#D6DAE0",comment:"#A3ADBA",keyword:"#3FB7E3",string:"#B1C74A",number:"#F2856F",function:"#3FB7E3",variable:"#D6DAE0",type:"#E4A75C",operator:"#F2856F"},tokens:{boolean:"#E4A75C",class:"#3FB7E3",className:"#3FB7E3",commentDoc:"#8D96A2",constant:"#66C6F1",decorator:"#E4A75C",enum:"#3FB7E3",exception:"#F2856F",functionCall:"#3FB7E3",interface:"#E4A75C",jsxTag:"#3FB7E3",key:"#3FB7E3",keywordImport:"#F2856F",label:"#F2856F",macro:"#66C6F1",method:"#78D05C",module:"#F2856F",namespace:"#E4A75C",parameter:"#D6DAE0",preprocessor:"#F2856F",punctuation:"#A3ADBA",regex:"#B1C74A",storageModifier:"#66C6F1",stringEscape:"#FBFBFD",struct:"#3FB7E3",tag:"#3FB7E3",tagAttribute:"#E4A75C",tagAttributeValue:"#B1C74A",typeParameter:"#E4A75C",url:"#66C6F1",variableGlobal:"#3FB7E3",variableLocal:"#0B1015",variableOther:"#78D05C",variableProperty:"#66C6F1"},highlights:{diffAdded:"#78D05C",diffAddedBackground:"#132F27",diffModified:"#66C6F1",diffModifiedBackground:"#1B2632",diffRemoved:"#F58572",diffRemovedBackground:"#361D20",lineNumber:"#415063",lineNumberActive:"#FBFBFD"}},markdown:{heading1:"#D6DAE0",heading2:"#D6DAE0",heading3:"#D6DAE0",heading4:"#D6DAE0",link:"#66C6F1",linkHover:"#3FB7E3",inlineCode:"#B1C74A",inlineCodeBackground:"#161d23",blockquote:"#E4A75C",blockquoteBorder:"#2B3440",listMarker:"#3FB7E399"},chat:{userMessage:"#D6DAE0",userMessageBackground:"#1d2935",assistantMessage:"#D6DAE0",assistantMessageBackground:"#0F1419",timestamp:"#A3ADBA",divider:"#2B3440"},tools:{background:"#18222C80",border:"#414e5f80",headerHover:"#080C10",icon:"#A3ADBA",title:"#D6DAE0",description:"#A3ADBA",edit:{added:"#78D05C",addedBackground:"#78D05C25",removed:"#F58572",removedBackground:"#F5857225",lineNumber:"#415063"}}},Nd={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},Ud={metadata:_d,colors:Od,config:Nd},Ld={id:"ayu-light",name:"Ayu",description:"Ayu",version:"1.0.0",variant:"light",tags:["light","palette"]},Hd={primary:{base:"#4AA8C8",hover:"#6EB8D1",active:"#4394B0",foreground:"#FDFAF4",muted:"#4AA8C880",emphasis:"#6EB8D1"},surface:{background:"#FDFAF4",foreground:"#394049",muted:"#f7f3eb",mutedForeground:"#777e87",elevated:"#faf6ed",elevatedForeground:"#4F5964",overlay:"#1B232B20",subtle:"#FFF7E5"},interactive:{border:"#ece5d9",borderHover:"#DCD3C5",borderFocus:"#B09F8F",selection:"#9fb2c43e",selectionForeground:"#171e25",focus:"#4AA8C8",focusRing:"#4AA8C840",cursor:"#1B232B",hover:"#9fb2c42c",active:"#9fb2c43e"},status:{error:"#E6656A",errorForeground:"#FDFAF4",errorBackground:"#E6656A20",errorBorder:"#E6656A50",warning:"#EA9F41",warningForeground:"#FDFAF4",warningBackground:"#EA9F4120",warningBorder:"#EA9F4150",success:"#5FB978",successForeground:"#FDFAF4",successBackground:"#5FB97820",successBorder:"#5FB97850",info:"#2F9BCE",infoForeground:"#FDFAF4",infoBackground:"#2F9BCE20",infoBorder:"#2F9BCE50"},pr:{open:"#5FB978",draft:"#77818D",blocked:"#EA9F41",merged:"#7b3cda",closed:"#E6656A"},syntax:{base:{background:"#FCF9F3",foreground:"#4F5964",comment:"#77818D",keyword:"#4AA8C8",string:"#7FAD00",number:"#EF7D71",function:"#4AA8C8",variable:"#4F5964",type:"#ED982E",operator:"#EF7D71"},tokens:{boolean:"#ED982E",class:"#4AA8C8",className:"#4AA8C8",commentDoc:"#BABEC1",constant:"#2F9BCE",decorator:"#ED982E",enum:"#4AA8C8",exception:"#EF7D71",functionCall:"#4AA8C8",interface:"#ED982E",jsxTag:"#4AA8C8",key:"#4AA8C8",keywordImport:"#EF7D71",label:"#EF7D71",macro:"#2F9BCE",method:"#5FB978",module:"#EF7D71",namespace:"#ED982E",parameter:"#4F5964",preprocessor:"#EF7D71",punctuation:"#77818D",regex:"#7FAD00",storageModifier:"#2F9BCE",stringEscape:"#1B232B",struct:"#4AA8C8",tag:"#4AA8C8",tagAttribute:"#ED982E",tagAttributeValue:"#7FAD00",typeParameter:"#ED982E",url:"#2F9BCE",variableGlobal:"#4AA8C8",variableLocal:"#FBF8F2",variableOther:"#5FB978",variableProperty:"#2F9BCE"},highlights:{diffAdded:"#5FB978",diffAddedBackground:"#EEF5E4",diffModified:"#2F9BCE",diffModifiedBackground:"#E3EDF3",diffRemoved:"#E6656A",diffRemovedBackground:"#FDE5E5",lineNumber:"#C6BFAF",lineNumberActive:"#1B232B"}},markdown:{heading1:"#394049",heading2:"#394049",heading3:"#394049",heading4:"#394049",link:"#2F9BCE",linkHover:"#4AA8C8",inlineCode:"#7FAD00",inlineCodeBackground:"#FCF9F3",blockquote:"#ED982E",blockquoteBorder:"#E6DDCF",listMarker:"#4AA8C899"},chat:{userMessage:"#4F5964",userMessageBackground:"#fff7e5",assistantMessage:"#4F5964",assistantMessageBackground:"#FDFAF4",timestamp:"#77818D",divider:"#E6DDCF"},tools:{background:"#FCF9F380",border:"#cec6b980",headerHover:"#FAF7F1",icon:"#77818D",title:"#4F5964",description:"#77818D",edit:{added:"#5FB978",addedBackground:"#5FB97825",removed:"#E6656A",removedBackground:"#E6656A25",lineNumber:"#C6BFAF"}}},jd={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},$d={metadata:Ld,colors:Hd,config:jd},zd={id:"carbonfox-dark",name:"Carbonfox",description:"Carbonfox",version:"1.0.0",variant:"dark",tags:["dark","palette"]},qd={primary:{base:"#33B1FF",hover:"#2F9ADC",active:"#52BDFF",foreground:"#161616",muted:"#33B1FF80",emphasis:"#2F9ADC"},surface:{background:"#161616",foreground:"#F2F4F8",muted:"#222222",mutedForeground:"#8b8a8a",elevated:"#222222",elevatedForeground:"#F2F4F8",overlay:"#FFFFFF20",subtle:"#292828"},interactive:{border:"#2d2c2c",borderHover:"#4C4C4C",borderFocus:"#4589FF",selection:"#ffffff20",selectionForeground:"#FFFFFF",focus:"#4589FF",focusRing:"#4589FF40",cursor:"#FFFFFF",hover:"#ffffff12",active:"#ffffff12"},status:{error:"#FF8389",errorForeground:"#161616",errorBackground:"#FF838920",errorBorder:"#FF838950",warning:"#F1C21B",warningForeground:"#161616",warningBackground:"#F1C21B20",warningBorder:"#F1C21B50",success:"#42BE65",successForeground:"#161616",successBackground:"#42BE6520",successBorder:"#42BE6550",info:"#78A9FF",infoForeground:"#161616",infoBackground:"#78A9FF20",infoBorder:"#78A9FF50"},pr:{open:"#42BE65",draft:"#8D8D8D",blocked:"#F1C21B",merged:"#BE95FF",closed:"#FF8389"},syntax:{base:{background:"#262626",foreground:"#F2F4F8",comment:"#8D8D8D",keyword:"#78A9FF",string:"#42BE65",number:"#FF8389",function:"#78A9FF",variable:"#F2F4F8",type:"#08BDBA",operator:"#FF8389"},tokens:{boolean:"#08BDBA",class:"#78A9FF",className:"#78A9FF",commentDoc:"#7B7B7B",constant:"#BE95FF",decorator:"#08BDBA",enum:"#78A9FF",exception:"#FF8389",functionCall:"#78A9FF",interface:"#08BDBA",jsxTag:"#78A9FF",key:"#78A9FF",keywordImport:"#FF8389",label:"#FF8389",macro:"#78A9FF",method:"#42BE65",module:"#FF8389",namespace:"#08BDBA",parameter:"#F2F4F8",preprocessor:"#FF8389",punctuation:"#8D8D8D",regex:"#42BE65",storageModifier:"#78A9FF",stringEscape:"#FFFFFF",struct:"#78A9FF",tag:"#78A9FF",tagAttribute:"#08BDBA",tagAttributeValue:"#42BE65",typeParameter:"#08BDBA",url:"#33B1FF",variableGlobal:"#78A9FF",variableLocal:"#0D0D0D",variableOther:"#42BE65",variableProperty:"#BE95FF"},highlights:{diffAdded:"#42BE65",diffAddedBackground:"#0E3A22",diffModified:"#78A9FF",diffModifiedBackground:"#78A9FF20",diffRemoved:"#FF8389",diffRemovedBackground:"#4D1A1F",lineNumber:"#4C4C4C",lineNumberActive:"#FFFFFF"}},markdown:{heading1:"#F2F4F8",heading2:"#F2F4F8",heading3:"#F2F4F8",heading4:"#F2F4F8",link:"#33B1FF",linkHover:"#78A9FF",inlineCode:"#42BE65",inlineCodeBackground:"#1e1e1e",blockquote:"#8D8D8D",blockquoteBorder:"#393939",listMarker:"#33B1FF99"},chat:{userMessage:"#F2F4F8",userMessageBackground:"#262626",assistantMessage:"#F2F4F8",assistantMessageBackground:"#161616",timestamp:"#8D8D8D",divider:"#393939"},tools:{background:"#26262680",border:"#4e4c4c80",headerHover:"#000000",icon:"#8D8D8D",title:"#F2F4F8",description:"#8D8D8D",edit:{added:"#42BE65",addedBackground:"#42BE6525",removed:"#FF8389",removedBackground:"#FF838925",lineNumber:"#4C4C4C"}}},Kd={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},Gd={metadata:zd,colors:qd,config:Kd},Wd={id:"carbonfox-light",name:"Carbonfox",description:"Carbonfox",version:"1.0.0",variant:"light",tags:["light","palette"]},Vd={primary:{base:"#0072C3",hover:"#338ECF",active:"#0061A6",foreground:"#FFFFFF",muted:"#0072C380",emphasis:"#338ECF"},surface:{background:"#FFFFFF",foreground:"#161616",muted:"#F4F4F4",mutedForeground:"#868585",elevated:"#f4f4f7",elevatedForeground:"#161616",overlay:"#00000020",subtle:"#f6f6f8"},interactive:{border:"#e3e2e2",borderHover:"#D0D0D0",borderFocus:"#0F62FE",selection:"#cacfd87f",selectionForeground:"#000000",focus:"#0F62FE",focusRing:"#0F62FE40",cursor:"#000000",hover:"#43424214",active:"#43424212"},status:{error:"#DA1E28",errorForeground:"#FFFFFF",errorBackground:"#DA1E2820",errorBorder:"#DA1E2850",warning:"#F1C21B",warningForeground:"#FFFFFF",warningBackground:"#F1C21B20",warningBorder:"#F1C21B50",success:"#198038",successForeground:"#FFFFFF",successBackground:"#19803820",successBorder:"#19803850",info:"#0043CE",infoForeground:"#FFFFFF",infoBackground:"#0043CE20",infoBorder:"#0043CE50"},pr:{open:"#42BE65",draft:"#8D8D8D",blocked:"#F1C21B",merged:"#BE95FF",closed:"#FF8389"},syntax:{base:{background:"#F4F4F4",foreground:"#161616",comment:"#525252",keyword:"#0043CE",string:"#198038",number:"#DA1E28",function:"#0043CE",variable:"#161616",type:"#007D79",operator:"#DA1E28"},tokens:{boolean:"#007D79",class:"#0043CE",className:"#0043CE",commentDoc:"#A9A9A9",constant:"#6929C4",decorator:"#007D79",enum:"#0043CE",exception:"#DA1E28",functionCall:"#0043CE",interface:"#007D79",jsxTag:"#0043CE",key:"#0043CE",keywordImport:"#DA1E28",label:"#DA1E28",macro:"#0043CE",method:"#198038",module:"#DA1E28",namespace:"#007D79",parameter:"#161616",preprocessor:"#DA1E28",punctuation:"#525252",regex:"#198038",storageModifier:"#0043CE",stringEscape:"#000000",struct:"#0043CE",tag:"#0043CE",tagAttribute:"#007D79",tagAttributeValue:"#198038",typeParameter:"#007D79",url:"#0072C3",variableGlobal:"#0043CE",variableLocal:"#E8E8E8",variableOther:"#198038",variableProperty:"#6929C4"},highlights:{diffAdded:"#198038",diffAddedBackground:"#19803820",diffModified:"#0043CE",diffModifiedBackground:"#0043CE20",diffRemoved:"#DA1E28",diffRemovedBackground:"#DA1E2820",lineNumber:"#D0D0D0",lineNumberActive:"#000000"}},markdown:{heading1:"#161616",heading2:"#161616",heading3:"#161616",heading4:"#161616",link:"#0072C3",linkHover:"#0043CE",inlineCode:"#198038",inlineCodeBackground:"#F4F4F4",blockquote:"#525252",blockquoteBorder:"#DCDCDC",listMarker:"#0072C399"},chat:{userMessage:"#161616",userMessageBackground:"#f4f4f7",assistantMessage:"#161616",assistantMessageBackground:"#FFFFFF",timestamp:"#525252",divider:"#DCDCDC"},tools:{background:"#F4F4F480",border:"#bdbbbb80",headerHover:"#DCDCDC",icon:"#525252",title:"#161616",description:"#525252",edit:{added:"#198038",addedBackground:"#19803825",removed:"#DA1E28",removedBackground:"#DA1E2825",lineNumber:"#D0D0D0"}}},Jd={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},Yd={metadata:Wd,colors:Vd,config:Jd},Qd={id:"catppuccin-dark",name:"Catppuccin",description:"Catppuccin",version:"1.0.0",variant:"dark",tags:["dark","palette"]},Xd={primary:{base:"#7d8fff",hover:"#9EA6DF",active:"#BEC6FE",foreground:"#1E1E2E",muted:"#B4BEFE80",emphasis:"#9EA6DF"},surface:{background:"#1E1E2E",foreground:"#CDD6F4",muted:"#2a273b",mutedForeground:"#969cb1",elevated:"#282841",elevatedForeground:"#CDD6F4",overlay:"#F4F2FF20",subtle:"#26263f"},interactive:{border:"#35324A",borderHover:"#393655",borderFocus:"#575379",selection:"#8883ae5c",selectionForeground:"#F4F2FF",focus:"#B4BEFE",focusRing:"#B4BEFE40",cursor:"#F4F2FF",hover:"#a19ace20",active:"#a19ace20"},status:{error:"#F38BA8",errorForeground:"#1E1E2E",errorBackground:"#F38BA820",errorBorder:"#F38BA850",warning:"#F4B8E4",warningForeground:"#1E1E2E",warningBackground:"#F4B8E420",warningBorder:"#F4B8E450",success:"#A6D189",successForeground:"#1E1E2E",successBackground:"#A6D18920",successBorder:"#A6D18950",info:"#89DCEB",infoForeground:"#1E1E2E",infoBackground:"#89DCEB20",infoBorder:"#89DCEB50"},pr:{open:"#A6D189",draft:"#A6ADC8",blocked:"#F9E2AF",merged:"#d8b4fe",closed:"#F38BA8"},syntax:{base:{background:"#211F31",foreground:"#CDD6F4",comment:"#A6ADC8",keyword:"#B4BEFE",string:"#A6E3A1",number:"#F38BA8",function:"#B4BEFE",variable:"#CDD6F4",type:"#F9E2AF",operator:"#F38BA8"},tokens:{boolean:"#F9E2AF",class:"#B4BEFE",className:"#B4BEFE",commentDoc:"#9298B1",constant:"#89DCEB",decorator:"#F9E2AF",enum:"#B4BEFE",exception:"#F38BA8",functionCall:"#B4BEFE",interface:"#F9E2AF",jsxTag:"#B4BEFE",key:"#B4BEFE",keywordImport:"#F38BA8",label:"#F38BA8",macro:"#89DCEB",method:"#A6D189",module:"#F38BA8",namespace:"#F9E2AF",parameter:"#CDD6F4",preprocessor:"#F38BA8",punctuation:"#A6ADC8",regex:"#A6E3A1",storageModifier:"#89DCEB",stringEscape:"#F4F2FF",struct:"#B4BEFE",tag:"#B4BEFE",tagAttribute:"#F9E2AF",tagAttributeValue:"#A6E3A1",typeParameter:"#F9E2AF",url:"#89DCEB",variableGlobal:"#B4BEFE",variableLocal:"#1C1C29",variableOther:"#A6D189",variableProperty:"#89DCEB"},highlights:{diffAdded:"#A6D189",diffAddedBackground:"#1D2C30",diffModified:"#89DCEB",diffModifiedBackground:"#232538",diffRemoved:"#F38BA8",diffRemovedBackground:"#2C1F2A",lineNumber:"#47436D",lineNumberActive:"#F4F2FF"}},markdown:{heading1:"#CDD6F4",heading2:"#CDD6F4",heading3:"#CDD6F4",heading4:"#CDD6F4",link:"#89DCEB",linkHover:"#B4BEFE",inlineCode:"#A6E3A1",inlineCodeBackground:"#2d2a42",blockquote:"#F9E2AF",blockquoteBorder:"#35324A",listMarker:"#B4BEFE99"},chat:{userMessage:"#CDD6F4",userMessageBackground:"#3a3a5b",assistantMessage:"#CDD6F4",assistantMessageBackground:"#1E1E2E",timestamp:"#A6ADC8",divider:"#35324A"},tools:{background:"#211F3180",border:"#534e7180",headerHover:"#191926",icon:"#A6ADC8",title:"#CDD6F4",description:"#A6ADC8",edit:{added:"#A6D189",addedBackground:"#A6D18925",removed:"#F38BA8",removedBackground:"#F38BA825",lineNumber:"#47436D"}}},Zd={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},el={metadata:Qd,colors:Xd,config:Zd},tl={id:"catppuccin-light",name:"Catppuccin",description:"Catppuccin",version:"1.0.0",variant:"light",tags:["light","palette"]},ol={primary:{base:"#7287FD",hover:"#8C99F6",active:"#6677DD",foreground:"#F5E0DC",muted:"#7287FD80",emphasis:"#8C99F6"},surface:{background:"#fff6f4",foreground:"#2e314a",muted:"#f8edeb",mutedForeground:"#888992",elevated:"#fbefea",elevatedForeground:"#4C4F69",overlay:"#1F1F2A20",subtle:"#fdeeee"},interactive:{border:"#e4d9dc",borderHover:"#D6C4C8",borderFocus:"#AB97A1",selection:"#ffffff",selectionForeground:"#1F1F2A",focus:"#7287FD",focusRing:"#7287FD40",cursor:"#1F1F2A",hover:"#ffffff8f",active:"#ffffff"},status:{error:"#D20F39",errorForeground:"#F5E0DC",errorBackground:"#D20F3920",errorBorder:"#D20F3950",warning:"#DF8E1D",warningForeground:"#F5E0DC",warningBackground:"#DF8E1D20",warningBorder:"#DF8E1D50",success:"#40A02B",successForeground:"#F5E0DC",successBackground:"#40A02B20",successBorder:"#40A02B50",info:"#04A5E5",infoForeground:"#F5E0DC",infoBackground:"#04A5E520",infoBorder:"#04A5E550"},pr:{open:"#40A02B",draft:"#6C6F85",blocked:"#DF8E1D",merged:"#9572fd",closed:"#D20F39"},syntax:{base:{background:"#F2D8D4",foreground:"#4C4F69",comment:"#6C6F85",keyword:"#7287FD",string:"#40A02B",number:"#D20F39",function:"#7287FD",variable:"#4C4F69",type:"#DF8E1D",operator:"#D20F39"},tokens:{boolean:"#DF8E1D",class:"#7287FD",className:"#7287FD",commentDoc:"#B1A8B1",constant:"#04A5E5",decorator:"#DF8E1D",enum:"#7287FD",exception:"#D20F39",functionCall:"#7287FD",interface:"#DF8E1D",jsxTag:"#7287FD",key:"#7287FD",keywordImport:"#D20F39",label:"#D20F39",macro:"#04A5E5",method:"#40A02B",module:"#D20F39",namespace:"#DF8E1D",parameter:"#4C4F69",preprocessor:"#D20F39",punctuation:"#6C6F85",regex:"#40A02B",storageModifier:"#04A5E5",stringEscape:"#1F1F2A",struct:"#7287FD",tag:"#7287FD",tagAttribute:"#DF8E1D",tagAttributeValue:"#40A02B",typeParameter:"#DF8E1D",url:"#04A5E5",variableGlobal:"#7287FD",variableLocal:"#F9E8E4",variableOther:"#40A02B",variableProperty:"#04A5E5"},highlights:{diffAdded:"#40A02B",diffAddedBackground:"#EDF5E6",diffModified:"#04A5E5",diffModifiedBackground:"#E4E2F6",diffRemoved:"#D20F39",diffRemovedBackground:"#FDE1E3",lineNumber:"#C2AEB4",lineNumberActive:"#1F1F2A"}},markdown:{heading1:"#2e314a",heading2:"#2e314a",heading3:"#2e314a",heading4:"#2e314a",link:"#04A5E5",linkHover:"#7287FD",inlineCode:"#40A02B",inlineCodeBackground:"#f6eeec",blockquote:"#DF8E1D",blockquoteBorder:"#E0CFD3",listMarker:"#7287FD99"},chat:{userMessage:"#2e314a",userMessageBackground:"#ffffff",assistantMessage:"#4C4F69",assistantMessageBackground:"#F5E0DC",timestamp:"#6C6F85",divider:"#E0CFD3"},tools:{background:"#F2D8D480",border:"#cbbec180",headerHover:"#FDEEEE",icon:"#6C6F85",title:"#4C4F69",description:"#6C6F85",edit:{added:"#40A02B",addedBackground:"#40A02B25",removed:"#D20F39",removedBackground:"#D20F3925",lineNumber:"#C2AEB4"}}},rl={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},nl={metadata:tl,colors:ol,config:rl},al={id:"dracula-dark",name:"Dracula",description:"Dracula",version:"1.0.0",variant:"dark",tags:["dark","palette"]},sl={primary:{base:"#BD93F9",hover:"#A480D8",active:"#C7A3FA",foreground:"#14151F",muted:"#BD93F980",emphasis:"#A480D8"},surface:{background:"#14151F",foreground:"#F8F8F2",muted:"#181926",mutedForeground:"#7c7e9c",elevated:"#161722",elevatedForeground:"#F8F8F2",overlay:"#FFFFFF20",subtle:"#1f2030"},interactive:{border:"#292a36",borderHover:"#303244",borderFocus:"#4A4D6D",selection:"#30334b",selectionForeground:"#FFFFFF",focus:"#BD93F9",focusRing:"#BD93F940",cursor:"#FFFFFF",hover:"#30334ba3",active:"#30334b"},status:{error:"#FF5555",errorForeground:"#14151F",errorBackground:"#FF555520",errorBorder:"#FF555550",warning:"#FFB86C",warningForeground:"#14151F",warningBackground:"#FFB86C20",warningBorder:"#FFB86C50",success:"#50FA7B",successForeground:"#14151F",successBackground:"#50FA7B20",successBorder:"#50FA7B50",info:"#8BE9FD",infoForeground:"#14151F",infoBackground:"#8BE9FD20",infoBorder:"#8BE9FD50"},pr:{open:"#50FA7B",draft:"#B6B9E4",blocked:"#FFB86C",merged:"#BD93F9",closed:"#FF5555"},syntax:{base:{background:"#181926",foreground:"#F8F8F2",comment:"#B6B9E4",keyword:"#BD93F9",string:"#50FA7B",number:"#FF79C6",function:"#BD93F9",variable:"#F8F8F2",type:"#FFB86C",operator:"#FF79C6"},tokens:{boolean:"#FFB86C",class:"#BD93F9",className:"#BD93F9",commentDoc:"#9EA0C6",constant:"#8BE9FD",decorator:"#FFB86C",enum:"#BD93F9",exception:"#FF79C6",functionCall:"#BD93F9",interface:"#FFB86C",jsxTag:"#BD93F9",key:"#BD93F9",keywordImport:"#FF79C6",label:"#FF79C6",macro:"#8BE9FD",method:"#50FA7B",module:"#FF79C6",namespace:"#FFB86C",parameter:"#F8F8F2",preprocessor:"#FF79C6",punctuation:"#B6B9E4",regex:"#50FA7B",storageModifier:"#8BE9FD",stringEscape:"#FFFFFF",struct:"#BD93F9",tag:"#BD93F9",tagAttribute:"#FFB86C",tagAttributeValue:"#50FA7B",typeParameter:"#FFB86C",url:"#8BE9FD",variableGlobal:"#BD93F9",variableLocal:"#161722",variableOther:"#50FA7B",variableProperty:"#8BE9FD"},highlights:{diffAdded:"#50FA7B",diffAddedBackground:"#1F2A2F",diffModified:"#8BE9FD",diffModifiedBackground:"#24253A",diffRemoved:"#FF5555",diffRemovedBackground:"#2D1F27",lineNumber:"#3B3D55",lineNumberActive:"#FFFFFF"}},markdown:{heading1:"#F8F8F2",heading2:"#F8F8F2",heading3:"#F8F8F2",heading4:"#F8F8F2",link:"#8BE9FD",linkHover:"#BD93F9",inlineCode:"#4aeb72",inlineCodeBackground:"#202132",blockquote:"#FFB86C",blockquoteBorder:"#2D2F3C",listMarker:"#BD93F999"},chat:{userMessage:"#F8F8F2",userMessageBackground:"#222436",assistantMessage:"#F8F8F2",assistantMessageBackground:"#14151F",timestamp:"#B6B9E4",divider:"#2D2F3C"},tools:{background:"#18192680",border:"#494c6180",headerHover:"#191A26",icon:"#B6B9E4",title:"#F8F8F2",description:"#B6B9E4",edit:{added:"#50FA7B",addedBackground:"#50FA7B25",removed:"#FF5555",removedBackground:"#FF555525",lineNumber:"#3B3D55"}}},il={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},cl={metadata:al,colors:sl,config:il},dl={id:"dracula-light",name:"Dracula",description:"Dracula",version:"1.0.0",variant:"light",tags:["light","palette"]},ll={primary:{base:"#7C6BF5",hover:"#9587F4",active:"#6A5CD2",foreground:"#F8F8F2",muted:"#7C6BF580",emphasis:"#9587F4"},surface:{background:"#F8F8F2",foreground:"#1F1F2F",muted:"#eff1eb",mutedForeground:"#6c6c7a",elevated:"#eeeee5",elevatedForeground:"#1F1F2F",overlay:"#05040C20",subtle:"#edeee7"},interactive:{border:"#E2E3DA",borderHover:"#D8D9D0",borderFocus:"#B0B2A7",selection:"#c2bcea63",selectionForeground:"#05040C",focus:"#7C6BF5",focusRing:"#7C6BF540",cursor:"#05040C",hover:"#c2bcea38",active:"#c2bcea63"},status:{error:"#D9536F",errorForeground:"#F8F8F2",errorBackground:"#D9536F20",errorBorder:"#D9536F50",warning:"#F7A14D",warningForeground:"#F8F8F2",warningBackground:"#F7A14D20",warningBorder:"#F7A14D50",success:"#2FBF71",successForeground:"#F8F8F2",successBackground:"#2FBF7120",successBorder:"#2FBF7150",info:"#1D7FC5",infoForeground:"#F8F8F2",infoBackground:"#1D7FC520",infoBorder:"#1D7FC550"},pr:{open:"#2FBF71",draft:"#52526B",blocked:"#F7A14D",merged:"#7C6BF5",closed:"#D9536F"},syntax:{base:{background:"#F1F2ED",foreground:"#1F1F2F",comment:"#52526B",keyword:"#7C6BF5",string:"#2FBF71",number:"#D16090",function:"#7C6BF5",variable:"#1F1F2F",type:"#F7A14D",operator:"#D16090"},tokens:{boolean:"#F7A14D",class:"#7C6BF5",className:"#7C6BF5",commentDoc:"#A5A5AF",constant:"#1D7FC5",decorator:"#F7A14D",enum:"#7C6BF5",exception:"#D16090",functionCall:"#7C6BF5",interface:"#F7A14D",jsxTag:"#7C6BF5",key:"#7C6BF5",keywordImport:"#D16090",label:"#D16090",macro:"#1D7FC5",method:"#2FBF71",module:"#D16090",namespace:"#F7A14D",parameter:"#1F1F2F",preprocessor:"#D16090",punctuation:"#52526B",regex:"#2FBF71",storageModifier:"#1D7FC5",stringEscape:"#05040C",struct:"#7C6BF5",tag:"#7C6BF5",tagAttribute:"#F7A14D",tagAttributeValue:"#2FBF71",typeParameter:"#F7A14D",url:"#1D7FC5",variableGlobal:"#7C6BF5",variableLocal:"#F6F6F1",variableOther:"#2FBF71",variableProperty:"#1D7FC5"},highlights:{diffAdded:"#2FBF71",diffAddedBackground:"#E4F5E6",diffModified:"#1D7FC5",diffModifiedBackground:"#DEDFE9",diffRemoved:"#D9536F",diffRemovedBackground:"#FAE4EB",lineNumber:"#C4C6BC",lineNumberActive:"#05040C"}},markdown:{heading1:"#1F1F2F",heading2:"#1F1F2F",heading3:"#1F1F2F",heading4:"#1F1F2F",link:"#1D7FC5",linkHover:"#7C6BF5",inlineCode:"#2FBF71",inlineCodeBackground:"#F1F2ED",blockquote:"#F7A14D",blockquoteBorder:"#E2E3DA",listMarker:"#7C6BF599"},chat:{userMessage:"#1F1F2F",userMessageBackground:"#F1F2ED",assistantMessage:"#1F1F2F",assistantMessageBackground:"#F8F8F2",timestamp:"#52526B",divider:"#E2E3DA"},tools:{background:"#F1F2ED80",border:"#E2E3DA80",headerHover:"#F2F2EC",icon:"#52526B",title:"#1F1F2F",description:"#52526B",edit:{added:"#2FBF71",addedBackground:"#2FBF7125",removed:"#D9536F",removedBackground:"#D9536F25",lineNumber:"#C4C6BC"}}},ul={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},fl={metadata:dl,colors:ll,config:ul},ml={id:"gruvbox-dark",name:"Gruvbox",description:"Gruvbox",version:"1.0.0",variant:"dark",tags:["dark","palette"]},gl={primary:{base:"#83A598",hover:"#759287",active:"#95B09F",foreground:"#282828",muted:"#83A59880",emphasis:"#759287"},surface:{background:"#282828",foreground:"#EBDBB2",muted:"#32302F",mutedForeground:"#918574",elevated:"#25292b",elevatedForeground:"#EBDBB2",overlay:"#FBF1C720",subtle:"#343230"},interactive:{border:"#453f3b",borderHover:"#5A524B",borderFocus:"#7C6F64",selection:"#5a5647db",selectionForeground:"#FBF1C7",focus:"#83A598",focusRing:"#83A59840",cursor:"#FBF1C7",hover:"#5a5647d9",active:"#5a5647ec"},status:{error:"#FB4934",errorForeground:"#282828",errorBackground:"#FB493420",errorBorder:"#FB493450",warning:"#FABD2F",warningForeground:"#282828",warningBackground:"#FABD2F20",warningBorder:"#FABD2F50",success:"#B8BB26",successForeground:"#282828",successBackground:"#B8BB2620",successBorder:"#B8BB2650",info:"#D3869B",infoForeground:"#282828",infoBackground:"#D3869B20",infoBorder:"#D3869B50"},pr:{open:"#B8BB26",draft:"#A89984",blocked:"#FABD2F",merged:"#8973a8",closed:"#FB4934"},syntax:{base:{background:"#32302F",foreground:"#EBDBB2",comment:"#A89984",keyword:"#83A598",string:"#B8BB26",number:"#FB4934",function:"#83A598",variable:"#EBDBB2",type:"#FABD2F",operator:"#FB4934"},tokens:{boolean:"#FABD2F",class:"#83A598",className:"#83A598",commentDoc:"#958876",constant:"#D3869B",decorator:"#FABD2F",enum:"#83A598",exception:"#FB4934",functionCall:"#83A598",interface:"#FABD2F",jsxTag:"#83A598",key:"#83A598",keywordImport:"#FB4934",label:"#FB4934",macro:"#8EC07C",method:"#B8BB26",module:"#FB4934",namespace:"#FABD2F",parameter:"#EBDBB2",preprocessor:"#FB4934",punctuation:"#A89984",regex:"#B8BB26",storageModifier:"#8EC07C",stringEscape:"#FBF1C7",struct:"#83A598",tag:"#83A598",tagAttribute:"#FABD2F",tagAttributeValue:"#B8BB26",typeParameter:"#FABD2F",url:"#8EC07C",variableGlobal:"#83A598",variableLocal:"#1D2021",variableOther:"#B8BB26",variableProperty:"#D3869B"},highlights:{diffAdded:"#B8BB26",diffAddedBackground:"#2A3325",diffModified:"#D3869B",diffModifiedBackground:"#32302F",diffRemoved:"#FB4934",diffRemovedBackground:"#3C2222",lineNumber:"#70665D",lineNumberActive:"#FBF1C7"}},markdown:{heading1:"#EBDBB2",heading2:"#EBDBB2",heading3:"#EBDBB2",heading4:"#EBDBB2",link:"#8EC07C",linkHover:"#83A598",inlineCode:"#B8BB26",inlineCodeBackground:"#32302F",blockquote:"#928374",blockquoteBorder:"#504945",listMarker:"#83A59899"},chat:{userMessage:"#EBDBB2",userMessageBackground:"#3e3c3a",assistantMessage:"#EBDBB2",assistantMessageBackground:"#282828",timestamp:"#A89984",divider:"#504945"},tools:{background:"#32302F80",border:"#6e645e80",headerHover:"#141617",icon:"#A89984",title:"#EBDBB2",description:"#A89984",edit:{added:"#B8BB26",addedBackground:"#B8BB2625",removed:"#FB4934",removedBackground:"#FB493425",lineNumber:"#70665D"}}},pl={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},Fl={metadata:ml,colors:gl,config:pl},hl={id:"gruvbox-light",name:"Gruvbox",description:"Gruvbox",version:"1.0.0",variant:"light",tags:["light","palette"]},yl={primary:{base:"#076678",hover:"#388288",active:"#0C5D6C",foreground:"#FBF1C7",muted:"#07667880",emphasis:"#388288"},surface:{background:"#f8f1d5",foreground:"#3C3836",muted:"#F2E5BC",mutedForeground:"#7C6F64",elevated:"#efebcd",elevatedForeground:"#3C3836",overlay:"#28282820",subtle:"#f3efde"},interactive:{border:"#e8d7b7",borderHover:"#C9B897",borderFocus:"#A89984",selection:"#f1eaeaec",selectionForeground:"#282828",focus:"#076678",focusRing:"#07667840",cursor:"#282828",hover:"#fffdfdb3",active:"#f1eaeaec"},status:{error:"#9D0006",errorForeground:"#FBF1C7",errorBackground:"#9D000620",errorBorder:"#9D000650",warning:"#B57614",warningForeground:"#FBF1C7",warningBackground:"#B5761420",warningBorder:"#B5761450",success:"#79740E",successForeground:"#FBF1C7",successBackground:"#79740E20",successBorder:"#79740E50",info:"#8F3F71",infoForeground:"#FBF1C7",infoBackground:"#8F3F7120",infoBorder:"#8F3F7150"},pr:{open:"#79740E",draft:"#7C6F64",blocked:"#B57614",merged:"#5e4c76",closed:"#9D0006"},syntax:{base:{background:"#F2E5BC",foreground:"#3C3836",comment:"#7C6F64",keyword:"#076678",string:"#79740E",number:"#9D0006",function:"#076678",variable:"#3C3836",type:"#B57614",operator:"#9D0006"},tokens:{boolean:"#B57614",class:"#076678",className:"#076678",commentDoc:"#BCB096",constant:"#8F3F71",decorator:"#B57614",enum:"#076678",exception:"#9D0006",functionCall:"#076678",interface:"#B57614",jsxTag:"#076678",key:"#076678",keywordImport:"#9D0006",label:"#9D0006",macro:"#427B58",method:"#79740E",module:"#9D0006",namespace:"#B57614",parameter:"#3C3836",preprocessor:"#9D0006",punctuation:"#7C6F64",regex:"#79740E",storageModifier:"#427B58",stringEscape:"#282828",struct:"#076678",tag:"#076678",tagAttribute:"#B57614",tagAttributeValue:"#79740E",typeParameter:"#B57614",url:"#427B58",variableGlobal:"#076678",variableLocal:"#F9F5D7",variableOther:"#79740E",variableProperty:"#8F3F71"},highlights:{diffAdded:"#79740E",diffAddedBackground:"#DDE3B1",diffModified:"#8F3F71",diffModifiedBackground:"#EBDFB5",diffRemoved:"#9D0006",diffRemovedBackground:"#E8C7C3",lineNumber:"#B0A285",lineNumberActive:"#282828"}},markdown:{heading1:"#3C3836",heading2:"#3C3836",heading3:"#3C3836",heading4:"#3C3836",link:"#427B58",linkHover:"#076678",inlineCode:"#79740E",inlineCodeBackground:"#F2E5BC",blockquote:"#928374",blockquoteBorder:"#D5C4A1",listMarker:"#07667899"},chat:{userMessage:"#3C3836",userMessageBackground:"#FDF9E8",assistantMessage:"#3C3836",assistantMessageBackground:"#FBF1C7",timestamp:"#7C6F64",divider:"#D5C4A1"},tools:{background:"#F2E5BC80",border:"#a6997e80",headerHover:"#FDF9E8",icon:"#7C6F64",title:"#3C3836",description:"#7C6F64",edit:{added:"#79740E",addedBackground:"#79740E25",removed:"#9D0006",removedBackground:"#9D000625",lineNumber:"#B0A285"}}},bl={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},Al={metadata:hl,colors:yl,config:bl},El={id:"jetbrains-dark",name:"JetBrains",description:"JetBrains IDE-inspired colors for PiChamber - dark variant",author:"Artem Evsevev, adapted for PiChamber",version:"1.0.0",variant:"dark",tags:["dark","jetbrains","ide","blue"]},Bl={primary:{base:"#6796f5",hover:"#70AEFF",active:"#5594FA",foreground:"#1E1F22",muted:"#6796f580",emphasis:"#70AEFF"},surface:{background:"#1E1F22",foreground:"#DFE1E5",muted:"#26282B",mutedForeground:"#9fa0a2",elevated:"#2B2D30",elevatedForeground:"#DFE1E5",overlay:"#00000080",subtle:"#28292c"},interactive:{border:"#383a3f",borderHover:"#4B5059",borderFocus:"#6796f5",selection:"#43454A",selectionForeground:"#DFE1E5",focus:"#6796f5",focusRing:"#6796f550",cursor:"#CED0D6",hover:"#3C3E41",active:"#494A4D"},status:{error:"#FA6675",errorForeground:"#1E1F22",errorBackground:"#402929",errorBorder:"#FA6675",warning:"#F2C55C",warningForeground:"#1E1F22",warningBackground:"#665014",warningBorder:"#F2C55C",success:"#57965D",successForeground:"#1E1F22",successBackground:"#253627",successBorder:"#57965D",info:"#3592C4",infoForeground:"#1E1F22",infoBackground:"#243846",infoBorder:"#3592C4"},pr:{open:"#5FAD65",draft:"#868A91",blocked:"#F2C55C",merged:"#A571E6",closed:"#DB5C5C"},syntax:{base:{background:"#1E1F22",foreground:"#BCBEC4",comment:"#7A7E85",keyword:"#CF8E6D",string:"#6AAB73",number:"#2AACB8",function:"#6AA2D7",variable:"#BCBEC4",type:"#A6BB77",operator:"#BCBEC4"},tokens:{commentDoc:"#5F826B",stringEscape:"#CF8E6D",keywordImport:"#CF8E6D",storageModifier:"#CF8E6D",functionCall:"#6AA2D7",method:"#6AA2D7",functionBuiltin:"#D5A563",variableProperty:"#C77DBB",variableOther:"#BCBEC4",variableGlobal:"#E59EAE",variableLocal:"#BCBEC4",parameter:"#3CACAC",constant:"#C77DBB",class:"#57AAF7",className:"#57AAF7",interface:"#8D91DC",struct:"#A6BB77",enum:"#A6BB77",typeParameter:"#3CACAC",namespace:"#BCBEC4",module:"#8D91DC",tag:"#D5B778",jsxTag:"#D5B778",tagAttribute:"#B3AE60",tagAttributeValue:"#6AAB73",boolean:"#CF8E6D",decorator:"#B3AE60",label:"#D5A563",punctuation:"#BCBEC4",macro:"#D5A563",preprocessor:"#D5A563",regex:"#6AAB73",url:"#57AAF7",key:"#C77DBB",exception:"#E59EAE"},highlights:{diffAdded:"#549159",diffAddedBackground:"#294436",diffRemoved:"#F75464",diffRemovedBackground:"#45302B",diffModified:"#70AEFF",diffModifiedBackground:"#243C63",lineNumber:"#4B5059",lineNumberActive:"#A1A3AB"}},markdown:{heading1:"#FFFFFF",heading2:"#DFE1E5",heading3:"#CED0D6",heading4:"#BCBEC4",link:"#56A8F5",linkHover:"#6796f5",inlineCode:"#6AAB73",inlineCodeBackground:"#26282B",blockquote:"#7A7E85",blockquoteBorder:"#393B41",listMarker:"#B3AE6099"},chat:{userMessage:"#DFE1E5",userMessageBackground:"#2a3b5d76",assistantMessage:"#DFE1E5",assistantMessageBackground:"#1E1F22",timestamp:"#7A7E85",divider:"#393B41"},tools:{background:"#26282B50",border:"#393B41",headerHover:"#3C3E4150",icon:"#B0B1B3",title:"#DFE1E5",description:"#B0B1B3",edit:{added:"#549159",addedBackground:"#29443640",removed:"#F75464",removedBackground:"#45302B40",lineNumber:"#4B5059"}}},wl={fonts:{sans:'"JetBrains Mono", ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'"JetBrains Mono", ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'"JetBrains Mono", ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},Cl={metadata:El,colors:Bl,config:wl},kl={id:"jetbrains-light",name:"JetBrains",description:"JetBrains IDE-inspired colors for PiChamber - light variant",author:"Artem Evsevev, adapted for PiChamber",version:"1.0.0",variant:"light",tags:["light","jetbrains","ide","blue"]},vl={primary:{base:"#195ce3",hover:"#2D61F0",active:"#0055FF",foreground:"#FFFFFF",muted:"#3573F080",emphasis:"#006DCC"},surface:{background:"#FFF",foreground:"#000000",muted:"#F7F8FA",mutedForeground:"#404040",elevated:"#FFFFFF",elevatedForeground:"#000000",overlay:"#00000025",subtle:"#f5f8fd"},interactive:{border:"#dde0ea",borderHover:"#AEB3C2",borderFocus:"#0055FF",selection:"#DFE1E5",selectionForeground:"#000000",focus:"#0055FF",focusRing:"#0055FF40",cursor:"#000000",hover:"#E6E6E8",active:"#DBDCDE"},status:{error:"#CE0606",errorForeground:"#FFFFFF",errorBackground:"#FFE8E8",errorBorder:"#CF5B56",warning:"#F49810",warningForeground:"#000000",warningBackground:"#FFF8DC",warningBorder:"#F49810",success:"#077D18",successForeground:"#FFFFFF",successBackground:"#E9F5E6",successBorder:"#55A76A",info:"#389FD6",infoForeground:"#000000",infoBackground:"#E7F4FB",infoBorder:"#389FD6"},pr:{open:"#369650",draft:"#808080",blocked:"#F49810",merged:"#834DF0",closed:"#E55765"},syntax:{base:{background:"#FFFFFF",foreground:"#080808",comment:"#8C8C8C",keyword:"#0033B3",string:"#067D17",number:"#1750EB",function:"#00627A",variable:"#000000",type:"#A04908",operator:"#080808"},tokens:{commentDoc:"#8C8C8C",stringEscape:"#0037A6",keywordImport:"#0033B3",storageModifier:"#0033B3",functionCall:"#00627A",method:"#00627A",functionBuiltin:"#C27203",variableProperty:"#871094",variableOther:"#000000",variableGlobal:"#1C5DFE",variableLocal:"#000000",parameter:"#007E8A",constant:"#871094",class:"#00627A",className:"#00627A",interface:"#835DDA",struct:"#A04908",enum:"#A04908",typeParameter:"#007E8A",namespace:"#000000",module:"#835DDA",tag:"#0033B3",jsxTag:"#0033B3",tagAttribute:"#9E880D",tagAttributeValue:"#067D17",boolean:"#0033B3",decorator:"#9E880D",label:"#C27203",punctuation:"#080808",macro:"#C27203",preprocessor:"#C27203",regex:"#067D17",url:"#00627A",key:"#871094",exception:"#1C5DFE"},highlights:{diffAdded:"#077D18",diffAddedBackground:"#BEE6BE",diffRemoved:"#FF0000",diffRemovedBackground:"#FFD5CC",diffModified:"#0133B3",diffModifiedBackground:"#DDE8FF",lineNumber:"#AEB3C2",lineNumberActive:"#767A8A"}},markdown:{heading1:"#000000",heading2:"#161617",heading3:"#404040",heading4:"#404040",link:"#006DCC",linkHover:"#3573F0",inlineCode:"#067D17",inlineCodeBackground:"#F5F7F9",blockquote:"#8C8C8C",blockquoteBorder:"#C9CCD6",listMarker:"#9E880D99"},chat:{userMessage:"#000000",userMessageBackground:"#eff4fd",assistantMessage:"#000000",assistantMessageBackground:"#F7F8FA",timestamp:"#767A8A",divider:"#C9CCD6"},tools:{background:"#F5F7F950",border:"#AEB3C280",headerHover:"#E6E6E8",icon:"#404040",title:"#000000",description:"#404040",edit:{added:"#077D18",addedBackground:"#BEE6BE50",removed:"#FF0000",removedBackground:"#FFD5CC50",lineNumber:"#AEB3C2"}}},Dl={fonts:{sans:'"JetBrains Mono", ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'"JetBrains Mono", ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'"JetBrains Mono", ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},Sl={metadata:kl,colors:vl,config:Dl},Ml={id:"kanagawa-dark",name:"Kanagawa",description:"A color scheme inspired by Japanese art and ink painting - dark variant",version:"1.0.0",variant:"dark",tags:["dark","japanese","ink","elegant"]},Tl={primary:{base:"#7FB4CA",hover:"#9DC5E0",active:"#658594",foreground:"#1F1F28",muted:"#7FB4CA80",emphasis:"#7E9CD8"},surface:{background:"#1F1F28",foreground:"#DCD7BA",muted:"#23232d",mutedForeground:"#8b8b85",elevated:"#2A2A37",elevatedForeground:"#DCD7BA",overlay:"#16161DCC",subtle:"#2a2a36"},interactive:{border:"#333343",borderHover:"#54546D",borderFocus:"#7FB4CA",selection:"#729fb333",selectionForeground:"#DCD7BA",focus:"#7FB4CA",focusRing:"#7FB4CA50",cursor:"#DCD7BA",hover:"#363646",active:"#54546D"},status:{error:"#E82424",errorForeground:"#DCD7BA",errorBackground:"#E8242420",errorBorder:"#E8242450",warning:"#FF9E3B",warningForeground:"#1F1F28",warningBackground:"#FF9E3B20",warningBorder:"#FF9E3B50",success:"#98BB6C",successForeground:"#1F1F28",successBackground:"#98BB6C20",successBorder:"#98BB6C50",info:"#7E9CD8",infoForeground:"#1F1F28",infoBackground:"#7E9CD820",infoBorder:"#7E9CD850"},pr:{open:"#98BB6C",draft:"#54546D",blocked:"#FF9E3B",merged:"#957FB8",closed:"#E82424"},syntax:{base:{background:"#16161D",foreground:"#DCD7BA",comment:"#54546D",keyword:"#7E9CD8",string:"#98BB6C",number:"#FF9E3B",function:"#E6C384",variable:"#DCD7BA",type:"#C8C093",operator:"#C34043"},tokens:{commentDoc:"#727169",stringEscape:"#DCD7BA",keywordImport:"#957FB8",storageModifier:"#7E9CD8",functionCall:"#E6C384",method:"#76946A",variableProperty:"#7E9CD8",variableOther:"#76946A",variableGlobal:"#D27E99",variableLocal:"#2A2A37",parameter:"#DCD7BA",constant:"#DCD7BA",class:"#E6C384",className:"#E6C384",interface:"#C8C093",struct:"#E6C384",enum:"#E6C384",typeParameter:"#E6C384",namespace:"#C8C093",module:"#C34043",tag:"#7E9CD8",jsxTag:"#D27E99",tagAttribute:"#C8C093",tagAttributeValue:"#98BB6C",boolean:"#C8C093",decorator:"#C8C093",label:"#D27E99",punctuation:"#54546D",macro:"#7E9CD8",preprocessor:"#D27E99",regex:"#98BB6C",url:"#7E9CD8",key:"#E6C384",exception:"#D27E99"},highlights:{diffAdded:"#98BB6C",diffAddedBackground:"#76946A20",diffRemoved:"#C34043",diffRemovedBackground:"#E8242420",diffModified:"#7E9CD8",diffModifiedBackground:"#7E9CD820",lineNumber:"#363646",lineNumberActive:"#DCD7BA"}},markdown:{heading1:"#DCD7BA",heading2:"#DCD7BA",heading3:"#DCD7BA",heading4:"#DCD7BA",link:"#7FB4CA",linkHover:"#7E9CD8",inlineCode:"#98BB6C",inlineCodeBackground:"#16161D",blockquote:"#54546D",blockquoteBorder:"#363646",listMarker:"#FF9E3B99"},chat:{userMessage:"#DCD7BA",userMessageBackground:"#2A2A37",assistantMessage:"#DCD7BA",assistantMessageBackground:"#2f2f3d",timestamp:"#54546D",divider:"#363646"},tools:{background:"#16161D50",border:"#4a4a5f80",headerHover:"#36364650",icon:"#afad9c",title:"#DCD7BA",description:"#818182",edit:{added:"#98BB6C",addedBackground:"#98BB6C25",removed:"#C34043",removedBackground:"#C3404325",lineNumber:"#56566d"}}},Rl={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},Pl={metadata:Ml,colors:Tl,config:Rl},Il={id:"kanagawa-light",name:"Kanagawa",description:"A color scheme inspired by Japanese art and ink painting - light variant (Lotus)",version:"1.0.0",variant:"light",tags:["light","japanese","lotus","elegant"]},xl={primary:{base:"#4D699B",hover:"#6693BF",active:"#5D57A3",foreground:"#f6f3d6",muted:"#4D699B80",emphasis:"#6693BF"},surface:{background:"#f6f3d6",foreground:"#545464",muted:"#ece6c8",mutedForeground:"#6c6c67",elevated:"#eae4bf",elevatedForeground:"#545464",overlay:"#54546433",subtle:"#e6f0e3"},interactive:{border:"#d7d1ba",borderHover:"#8A8980",borderFocus:"#4D699B",selection:"#e9f3e5cf",selectionForeground:"#545464",focus:"#4D699B",focusRing:"#4D699B40",cursor:"#545464",hover:"#e9f3e5a9",active:"#e9f3e5cf"},status:{error:"#E82424",errorForeground:"#f6f3d6",errorBackground:"#E8242420",errorBorder:"#E8242450",warning:"#DE9800",warningForeground:"#545464",warningBackground:"#DE980020",warningBorder:"#DE980050",success:"#6F894E",successForeground:"#f6f3d6",successBackground:"#98BB6C20",successBorder:"#6F894E50",info:"#4D699B",infoForeground:"#f6f3d6",infoBackground:"#6693BF20",infoBorder:"#4D699B50"},pr:{open:"#6F894E",draft:"#716E61",blocked:"#DE9800",merged:"#624C83",closed:"#E82424"},syntax:{base:{background:"#DCD5AC",foreground:"#545464",comment:"#716E61",keyword:"#4D699B",string:"#6F894E",number:"#836F4A",function:"#CC6D00",variable:"#545464",type:"#77713F",operator:"#C84053"},tokens:{commentDoc:"#8A8980",stringEscape:"#545464",keywordImport:"#624C83",storageModifier:"#4D699B",functionCall:"#CC6D00",method:"#6E915F",variableProperty:"#4D699B",variableOther:"#6E915F",variableGlobal:"#B35B79",variableLocal:"#D5CEA3",parameter:"#545464",constant:"#545464",class:"#CC6D00",className:"#CC6D00",interface:"#77713F",struct:"#CC6D00",enum:"#CC6D00",typeParameter:"#CC6D00",namespace:"#77713F",module:"#C84053",tag:"#4D699B",jsxTag:"#B35B79",tagAttribute:"#77713F",tagAttributeValue:"#6F894E",boolean:"#77713F",decorator:"#77713F",label:"#B35B79",punctuation:"#716E61",macro:"#4D699B",preprocessor:"#B35B79",regex:"#6F894E",url:"#4D699B",key:"#CC6D00",exception:"#B35B79"},highlights:{diffAdded:"#6F894E",diffAddedBackground:"#6F894E20",diffRemoved:"#C84053",diffRemovedBackground:"#C8405320",diffModified:"#4D699B",diffModifiedBackground:"#4D699B20",lineNumber:"#8A8980",lineNumberActive:"#545464"}},markdown:{heading1:"#545464",heading2:"#545464",heading3:"#545464",heading4:"#545464",link:"#5D57A3",linkHover:"#4D699B",inlineCode:"#6F894E",inlineCodeBackground:"#e7e2c7",blockquote:"#716E61",blockquoteBorder:"#716E61",listMarker:"#836F4A99"},chat:{userMessage:"#545464",userMessageBackground:"#e6f2e1",assistantMessage:"#545464",assistantMessageBackground:"#f6f3d6",timestamp:"#716E61",divider:"#716E61"},tools:{background:"#DCD5AC50",border:"#716E6180",headerHover:"#716E61",icon:"#8A8980",title:"#545464",description:"#8A8980",edit:{added:"#6F894E",addedBackground:"#6F894E25",removed:"#C84053",removedBackground:"#C8405325",lineNumber:"#8A8980"}}},_l={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},Ol={metadata:Il,colors:xl,config:_l},Nl={id:"monokai-dark",name:"Monokai",description:"Monokai",version:"1.0.0",variant:"dark",tags:["dark","palette"]},Ul={primary:{base:"#AE81FF",hover:"#9973DD",active:"#BA94FF",foreground:"#23241E",muted:"#AE81FF80",emphasis:"#9973DD"},surface:{background:"#23241E",foreground:"#F8F8F2",muted:"#282a20",mutedForeground:"#939390",elevated:"#21221a",elevatedForeground:"#F8F8F2",overlay:"#FFFFFF20",subtle:"#303126"},interactive:{border:"#343528",borderHover:"#393A2D",borderFocus:"#555741",selection:"#434d3cfe",selectionForeground:"#FFFFFF",focus:"#AE81FF",focusRing:"#AE81FF40",cursor:"#FFFFFF",hover:"#36372a",active:"#36382e"},status:{error:"#F92672",errorForeground:"#23241E",errorBackground:"#F9267220",errorBorder:"#F9267250",warning:"#FD971F",warningForeground:"#23241E",warningBackground:"#FD971F20",warningBorder:"#FD971F50",success:"#A6E22E",successForeground:"#23241E",successBackground:"#A6E22E20",successBorder:"#A6E22E50",info:"#66D9EF",infoForeground:"#23241E",infoBackground:"#66D9EF20",infoBorder:"#66D9EF50"},pr:{open:"#A6E22E",draft:"#C5C5C0",blocked:"#FD971F",merged:"#AE81FF",closed:"#F92672"},syntax:{base:{background:"#27281F",foreground:"#F8F8F2",comment:"#C5C5C0",keyword:"#AE81FF",string:"#A6E22E",number:"#F92672",function:"#AE81FF",variable:"#F8F8F2",type:"#FD971F",operator:"#F92672"},tokens:{boolean:"#FD971F",class:"#AE81FF",className:"#AE81FF",commentDoc:"#ADADA8",constant:"#66D9EF",decorator:"#FD971F",enum:"#AE81FF",exception:"#F92672",functionCall:"#AE81FF",interface:"#FD971F",jsxTag:"#AE81FF",key:"#AE81FF",keywordImport:"#F92672",label:"#F92672",macro:"#66D9EF",method:"#A6E22E",module:"#F92672",namespace:"#FD971F",parameter:"#F8F8F2",preprocessor:"#F92672",punctuation:"#C5C5C0",regex:"#A6E22E",storageModifier:"#66D9EF",stringEscape:"#FFFFFF",struct:"#AE81FF",tag:"#AE81FF",tagAttribute:"#FD971F",tagAttributeValue:"#A6E22E",typeParameter:"#FD971F",url:"#66D9EF",variableGlobal:"#AE81FF",variableLocal:"#25261F",variableOther:"#A6E22E",variableProperty:"#66D9EF"},highlights:{diffAdded:"#A6E22E",diffAddedBackground:"#1E2A1D",diffModified:"#66D9EF",diffModifiedBackground:"#2F2F24",diffRemoved:"#F92672",diffRemovedBackground:"#301C24",lineNumber:"#454639",lineNumberActive:"#FFFFFF"}},markdown:{heading1:"#F8F8F2",heading2:"#F8F8F2",heading3:"#F8F8F2",heading4:"#F8F8F2",link:"#66D9EF",linkHover:"#AE81FF",inlineCode:"#A6E22E",inlineCodeBackground:"#27281F",blockquote:"#FD971F",blockquoteBorder:"#343528",listMarker:"#AE81FF99"},chat:{userMessage:"#F8F8F2",userMessageBackground:"#36372a",assistantMessage:"#F8F8F2",assistantMessageBackground:"#23241E",timestamp:"#C5C5C0",divider:"#343528"},tools:{background:"#27281F80",border:"#4d4f3c80",headerHover:"#292A23",icon:"#C5C5C0",title:"#F8F8F2",description:"#C5C5C0",edit:{added:"#A6E22E",addedBackground:"#A6E22E25",removed:"#bd215a",removedBackground:"#F9267225",lineNumber:"#505142"}}},Ll={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},Hl={metadata:Nl,colors:Ul,config:Ll},jl={id:"monokai-light",name:"Monokai",description:"Monokai",version:"1.0.0",variant:"light",tags:["light","palette"]},$l={primary:{base:"#BF7BFF",hover:"#CB94FB",active:"#A76CDB",foreground:"#FDF8EC",muted:"#BF7BFF80",emphasis:"#CB94FB"},surface:{background:"#FDF8EC",foreground:"#292318",muted:"#F8F2E6",mutedForeground:"#887c6a",elevated:"#FBF5E8",elevatedForeground:"#292318",overlay:"#1C150C20",subtle:"#F7EFDD"},interactive:{border:"#E9E0CF",borderHover:"#DFD5C3",borderFocus:"#B6A893",selection:"#1C150C22",selectionForeground:"#1C150C",focus:"#BF7BFF",focusRing:"#BF7BFF40",cursor:"#1C150C",hover:"#e6e0d5",active:"#FBF5E8"},status:{error:"#E54B4B",errorForeground:"#FDF8EC",errorBackground:"#E54B4B20",errorBorder:"#E54B4B50",warning:"#F1A948",warningForeground:"#FDF8EC",warningBackground:"#F1A94820",warningBorder:"#F1A94850",success:"#4FB54B",successForeground:"#FDF8EC",successBackground:"#4FB54B20",successBorder:"#4FB54B50",info:"#2D9AD7",infoForeground:"#FDF8EC",infoBackground:"#2D9AD720",infoBorder:"#2D9AD750"},pr:{open:"#4FB54B",draft:"#6D5C40",blocked:"#F1A948",merged:"#BF7BFF",closed:"#E54B4B"},syntax:{base:{background:"#F8F2E6",foreground:"#292318",comment:"#6D5C40",keyword:"#BF7BFF",string:"#4FB54B",number:"#D9487C",function:"#BF7BFF",variable:"#292318",type:"#F1A948",operator:"#D9487C"},tokens:{boolean:"#F1A948",class:"#BF7BFF",className:"#BF7BFF",commentDoc:"#B5AA96",constant:"#2D9AD7",decorator:"#F1A948",enum:"#BF7BFF",exception:"#D9487C",functionCall:"#BF7BFF",interface:"#F1A948",jsxTag:"#BF7BFF",key:"#BF7BFF",keywordImport:"#D9487C",label:"#D9487C",macro:"#2D9AD7",method:"#4FB54B",module:"#D9487C",namespace:"#F1A948",parameter:"#292318",preprocessor:"#D9487C",punctuation:"#6D5C40",regex:"#4FB54B",storageModifier:"#2D9AD7",stringEscape:"#1C150C",struct:"#BF7BFF",tag:"#BF7BFF",tagAttribute:"#F1A948",tagAttributeValue:"#4FB54B",typeParameter:"#F1A948",url:"#2D9AD7",variableGlobal:"#BF7BFF",variableLocal:"#FBF5E8",variableOther:"#4FB54B",variableProperty:"#2D9AD7"},highlights:{diffAdded:"#4FB54B",diffAddedBackground:"#E8F7E1",diffModified:"#2D9AD7",diffModifiedBackground:"#E9E0D0",diffRemoved:"#E54B4B",diffRemovedBackground:"#FDE5E4",lineNumber:"#CABFAD",lineNumberActive:"#1C150C"}},markdown:{heading1:"#292318",heading2:"#292318",heading3:"#292318",heading4:"#292318",link:"#2D9AD7",linkHover:"#BF7BFF",inlineCode:"#4FB54B",inlineCodeBackground:"#F8F2E6",blockquote:"#F1A948",blockquoteBorder:"#E9E0CF",listMarker:"#BF7BFF99"},chat:{userMessage:"#292318",userMessageBackground:"#F8F2E6",assistantMessage:"#292318",assistantMessageBackground:"#FDF8EC",timestamp:"#6D5C40",divider:"#E9E0CF"},tools:{background:"#F8F2E680",border:"#d0c8b880",headerHover:"#F7EFDD",icon:"#6D5C40",title:"#292318",description:"#6D5C40",edit:{added:"#4FB54B",addedBackground:"#4FB54B25",removed:"#E54B4B",removedBackground:"#E54B4B25",lineNumber:"#bfb5a4"}}},zl={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},ql={metadata:jl,colors:$l,config:zl},Kl={id:"nightowl-dark",name:"Night Owl",description:"Night Owl",version:"1.0.0",variant:"dark",tags:["dark","palette"]},Gl={primary:{base:"#82AAFF",hover:"#6F94DF",active:"#95B7FF",foreground:"#011627",muted:"#82AAFF80",emphasis:"#6F94DF"},surface:{background:"#011627",foreground:"#D6DEEB",muted:"#0B253A",mutedForeground:"#7d8892",elevated:"#001122",elevatedForeground:"#D6DEEB",overlay:"#FFFFFF20",subtle:"#162431"},interactive:{border:"#2b3339",borderHover:"#234561",borderFocus:"#82AAFF",selection:"#555d6d94",selectionForeground:"#FFFFFF",focus:"#82AAFF",focusRing:"#82AAFF40",cursor:"#FFFFFF",hover:"#555d6d68",active:"#555d6d94"},status:{error:"#EF5350",errorForeground:"#011627",errorBackground:"#EF535020",errorBorder:"#EF535050",warning:"#ECC48D",warningForeground:"#011627",warningBackground:"#ECC48D20",warningBorder:"#ECC48D50",success:"#C5E478",successForeground:"#011627",successBackground:"#C5E47820",successBorder:"#C5E47850",info:"#82AAFF",infoForeground:"#011627",infoBackground:"#82AAFF20",infoBorder:"#82AAFF50"},pr:{open:"#C5E478",draft:"#5F7E97",blocked:"#ECC48D",merged:"#BC82FF",closed:"#EF5350"},syntax:{base:{background:"#0B253A",foreground:"#D6DEEB",comment:"#5F7E97",keyword:"#82AAFF",string:"#ECC48D",number:"#F78C6C",function:"#82AAFF",variable:"#D6DEEB",type:"#C5E478",operator:"#F78C6C"},tokens:{boolean:"#C5E478",class:"#82AAFF",className:"#82AAFF",commentDoc:"#516E86",constant:"#7FDBCA",decorator:"#C5E478",enum:"#82AAFF",exception:"#F78C6C",functionCall:"#82AAFF",interface:"#C5E478",jsxTag:"#82AAFF",key:"#82AAFF",keywordImport:"#F78C6C",label:"#F78C6C",macro:"#82AAFF",method:"#C5E478",module:"#F78C6C",namespace:"#C5E478",parameter:"#D6DEEB",preprocessor:"#F78C6C",punctuation:"#5F7E97",regex:"#ECC48D",storageModifier:"#82AAFF",stringEscape:"#FFFFFF",struct:"#82AAFF",tag:"#82AAFF",tagAttribute:"#C5E478",tagAttributeValue:"#ECC48D",typeParameter:"#C5E478",url:"#7FDBCA",variableGlobal:"#82AAFF",variableLocal:"#001122",variableOther:"#C5E478",variableProperty:"#7FDBCA"},highlights:{diffAdded:"#C5E478",diffAddedBackground:"#0A2E1A",diffModified:"#82AAFF",diffModifiedBackground:"#0B253A",diffRemoved:"#EF5350",diffRemovedBackground:"#2D1B1B",lineNumber:"#82AAFF",lineNumberActive:"#FFFFFF"}},markdown:{heading1:"#D6DEEB",heading2:"#D6DEEB",heading3:"#D6DEEB",heading4:"#D6DEEB",link:"#7FDBCA",linkHover:"#82AAFF",inlineCode:"#C5E478",inlineCodeBackground:"#0B253A",blockquote:"#5F7E97",blockquoteBorder:"#1D3B53",listMarker:"#82AAFF99"},chat:{userMessage:"#D6DEEB",userMessageBackground:"#0f283f",assistantMessage:"#D6DEEB",assistantMessageBackground:"#011627",timestamp:"#5F7E97",divider:"#1D3B53"},tools:{background:"#0B253A80",border:"#24496780",headerHover:"#000C17",icon:"#5F7E97",title:"#D6DEEB",description:"#5F7E97",edit:{added:"#C5E478",addedBackground:"#C5E47825",removed:"#EF5350",removedBackground:"#EF535025",lineNumber:"#58698f"}}},Wl={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},Vl={metadata:Kl,colors:Gl,config:Wl},Jl={id:"nightowl-light",name:"Night Owl",description:"Night Owl",version:"1.0.0",variant:"light",tags:["light","palette"]},Yl={primary:{base:"#4876D6",hover:"#6C91DD",active:"#4168BA",foreground:"#FBFBFB",muted:"#4876D680",emphasis:"#6C91DD"},surface:{background:"#FBFBFB",foreground:"#403F53",muted:"#F0F0F0",mutedForeground:"#747a7a",elevated:"#FFFFFF",elevatedForeground:"#403F53",overlay:"#1A1A1A20",subtle:"#F0F0F0"},interactive:{border:"#dfdfdf",borderHover:"#CCCCCC",borderFocus:"#4876D6",selection:"#706e6e22",selectionForeground:"#1A1A1A",focus:"#4876D6",focusRing:"#4876D640",cursor:"#1A1A1A",hover:"#706e6e16",active:"#706e6e22"},status:{error:"#DE3D3B",errorForeground:"#FBFBFB",errorBackground:"#DE3D3B20",errorBorder:"#DE3D3B50",warning:"#C96765",warningForeground:"#FBFBFB",warningBackground:"#C9676520",warningBorder:"#C9676550",success:"#2AA298",successForeground:"#FBFBFB",successBackground:"#2AA29820",successBorder:"#2AA29850",info:"#4876D6",infoForeground:"#FBFBFB",infoBackground:"#4876D620",infoBorder:"#4876D650"},pr:{open:"#2AA298",draft:"#7A8181",blocked:"#c98f65",merged:"#994CC3",closed:"#DE3D3B"},syntax:{base:{background:"#F0F0F0",foreground:"#403F53",comment:"#7A8181",keyword:"#4876D6",string:"#C96765",number:"#AA0982",function:"#4876D6",variable:"#403F53",type:"#994CC3",operator:"#AA0982"},tokens:{boolean:"#994CC3",class:"#4876D6",className:"#4876D6",commentDoc:"#BBBEBE",constant:"#2AA298",decorator:"#994CC3",enum:"#4876D6",exception:"#AA0982",functionCall:"#4876D6",interface:"#994CC3",jsxTag:"#4876D6",key:"#4876D6",keywordImport:"#AA0982",label:"#AA0982",macro:"#4876D6",method:"#2AA298",module:"#AA0982",namespace:"#994CC3",parameter:"#403F53",preprocessor:"#AA0982",punctuation:"#7A8181",regex:"#C96765",storageModifier:"#4876D6",stringEscape:"#1A1A1A",struct:"#4876D6",tag:"#4876D6",tagAttribute:"#994CC3",tagAttributeValue:"#C96765",typeParameter:"#994CC3",url:"#2AA298",variableGlobal:"#4876D6",variableLocal:"#FFFFFF",variableOther:"#2AA298",variableProperty:"#2AA298"},highlights:{diffAdded:"#2AA298",diffAddedBackground:"#EAF8F6",diffModified:"#4876D6",diffModifiedBackground:"#E8F0FC",diffRemoved:"#DE3D3B",diffRemovedBackground:"#FBE9E9",lineNumber:"#4876D6",lineNumberActive:"#1A1A1A"}},markdown:{heading1:"#403F53",heading2:"#403F53",heading3:"#403F53",heading4:"#403F53",link:"#2AA298",linkHover:"#4876D6",inlineCode:"#2AA298",inlineCodeBackground:"#F0F0F0",blockquote:"#7A8181",blockquoteBorder:"#D9D9D9",listMarker:"#4876D699"},chat:{userMessage:"#403F53",userMessageBackground:"#F0F0F0",assistantMessage:"#403F53",assistantMessageBackground:"#FBFBFB",timestamp:"#7A8181",divider:"#D9D9D9"},tools:{background:"#F0F0F080",border:"#D9D9D980",headerHover:"#FFFFFF",icon:"#7A8181",title:"#403F53",description:"#7A8181",edit:{added:"#2AA298",addedBackground:"#2AA29825",removed:"#DE3D3B",removedBackground:"#DE3D3B25",lineNumber:"#4876D6"}}},Ql={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},Xl={metadata:Jl,colors:Yl,config:Ql},Zl={id:"nord-dark",name:"Nord",description:"Nord",version:"1.0.0",variant:"dark",tags:["dark","palette"]},eu={primary:{base:"#88C0D0",hover:"#78A9B8",active:"#99C9D7",foreground:"#1F2430",muted:"#88C0D080",emphasis:"#78A9B8"},surface:{background:"#1F2430",foreground:"#E5E9F0",muted:"#222938",mutedForeground:"#7c828e",elevated:"#1C202A",elevatedForeground:"#E5E9F0",overlay:"#F8FAFC20",subtle:"#252c3c"},interactive:{border:"#383d49",borderHover:"#383F50",borderFocus:"#545B78",selection:"#3e4a56fe",selectionForeground:"#F8FAFC",focus:"#88C0D0",focusRing:"#88C0D040",cursor:"#F8FAFC",hover:"#3e4a5692",active:"#3e4a56fe"},status:{error:"#BF616A",errorForeground:"#1F2430",errorBackground:"#BF616A20",errorBorder:"#BF616A50",warning:"#D08770",warningForeground:"#1F2430",warningBackground:"#D0877020",warningBorder:"#D0877050",success:"#A3BE8C",successForeground:"#1F2430",successBackground:"#A3BE8C20",successBorder:"#A3BE8C50",info:"#81A1C1",infoForeground:"#1F2430",infoBackground:"#81A1C120",infoBorder:"#81A1C150"},pr:{open:"#A3BE8C",draft:"#A4ADBF",blocked:"#D08770",merged:"#b788d0",closed:"#BF616A"},syntax:{base:{background:"#222938",foreground:"#E5E9F0",comment:"#A4ADBF",keyword:"#88C0D0",string:"#A3BE8C",number:"#D57780",function:"#88C0D0",variable:"#E5E9F0",type:"#EAC196",operator:"#D57780"},tokens:{boolean:"#EAC196",class:"#88C0D0",className:"#88C0D0",commentDoc:"#9098AA",constant:"#81A1C1",decorator:"#EAC196",enum:"#88C0D0",exception:"#D57780",functionCall:"#88C0D0",interface:"#EAC196",jsxTag:"#88C0D0",key:"#88C0D0",keywordImport:"#D57780",label:"#D57780",macro:"#81A1C1",method:"#A3BE8C",module:"#D57780",namespace:"#EAC196",parameter:"#E5E9F0",preprocessor:"#D57780",punctuation:"#A4ADBF",regex:"#A3BE8C",storageModifier:"#81A1C1",stringEscape:"#F8FAFC",struct:"#88C0D0",tag:"#88C0D0",tagAttribute:"#EAC196",tagAttributeValue:"#A3BE8C",typeParameter:"#EAC196",url:"#81A1C1",variableGlobal:"#88C0D0",variableLocal:"#1C202A",variableOther:"#A3BE8C",variableProperty:"#81A1C1"},highlights:{diffAdded:"#A3BE8C",diffAddedBackground:"#1F2E33",diffModified:"#81A1C1",diffModifiedBackground:"#222B3A",diffRemoved:"#BF616A",diffRemovedBackground:"#2E212A",lineNumber:"#434A62",lineNumberActive:"#F8FAFC"}},markdown:{heading1:"#E5E9F0",heading2:"#E5E9F0",heading3:"#E5E9F0",heading4:"#E5E9F0",link:"#81A1C1",linkHover:"#88C0D0",inlineCode:"#A3BE8C",inlineCodeBackground:"#252c3c",blockquote:"#D08770",blockquoteBorder:"#343A47",listMarker:"#88C0D099"},chat:{userMessage:"#E5E9F0",userMessageBackground:"#272f40",assistantMessage:"#E5E9F0",assistantMessageBackground:"#1F2430",timestamp:"#A4ADBF",divider:"#343A47"},tools:{background:"#22293880",border:"#454e5f80",headerHover:"#181C24",icon:"#A4ADBF",title:"#E5E9F0",description:"#A4ADBF",edit:{added:"#A3BE8C",addedBackground:"#A3BE8C25",removed:"#BF616A",removedBackground:"#BF616A25",lineNumber:"#4a526b"}}},tu={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},ou={metadata:Zl,colors:eu,config:tu},ru={id:"nord-light",name:"Nord",description:"Nord",version:"1.0.0",variant:"light",tags:["light","palette"]},nu={primary:{base:"#5E81AC",hover:"#7A97BA",active:"#557399",foreground:"#ECEFF4",muted:"#5E81AC80",emphasis:"#7A97BA"},surface:{background:"#ECEFF4",foreground:"#2E3440",muted:"#E4E8F0",mutedForeground:"#6e7481",elevated:"#e7ebf5",elevatedForeground:"#2E3440",overlay:"#1F253020",subtle:"#e3e7ee"},interactive:{border:"#cfd5df",borderHover:"#C9D0DE",borderFocus:"#9CA4BA",selection:"#c6ccd881",selectionForeground:"#1F2530",focus:"#5E81AC",focusRing:"#5E81AC40",cursor:"#1F2530",hover:"#c6ccd84a",active:"#c6ccd881"},status:{error:"#BF616A",errorForeground:"#ECEFF4",errorBackground:"#BF616A20",errorBorder:"#BF616A50",warning:"#D08770",warningForeground:"#ECEFF4",warningBackground:"#D0877020",warningBorder:"#D0877050",success:"#8FBCBB",successForeground:"#ECEFF4",successBackground:"#8FBCBB20",successBorder:"#8FBCBB50",info:"#81A1C1",infoForeground:"#ECEFF4",infoBackground:"#81A1C120",infoBorder:"#81A1C150"},pr:{open:"#8FBCBB",draft:"#4C566A",blocked:"#D08770",merged:"#9b5eac",closed:"#BF616A"},syntax:{base:{background:"#E4E8F0",foreground:"#2E3440",comment:"#4C566A",keyword:"#5E81AC",string:"#A3BE8C",number:"#BF616A",function:"#5E81AC",variable:"#2E3440",type:"#D08770",operator:"#BF616A"},tokens:{boolean:"#D08770",class:"#5E81AC",className:"#5E81AC",commentDoc:"#9CA3AF",constant:"#81A1C1",decorator:"#D08770",enum:"#5E81AC",exception:"#BF616A",functionCall:"#5E81AC",interface:"#D08770",jsxTag:"#5E81AC",key:"#5E81AC",keywordImport:"#BF616A",label:"#BF616A",macro:"#81A1C1",method:"#8FBCBB",module:"#BF616A",namespace:"#D08770",parameter:"#2E3440",preprocessor:"#BF616A",punctuation:"#4C566A",regex:"#A3BE8C",storageModifier:"#81A1C1",stringEscape:"#1F2530",struct:"#5E81AC",tag:"#5E81AC",tagAttribute:"#D08770",tagAttributeValue:"#A3BE8C",typeParameter:"#D08770",url:"#81A1C1",variableGlobal:"#5E81AC",variableLocal:"#F1F3F8",variableOther:"#8FBCBB",variableProperty:"#81A1C1"},highlights:{diffAdded:"#8FBCBB",diffAddedBackground:"#E4F0E4",diffModified:"#81A1C1",diffModifiedBackground:"#DFE6F2",diffRemoved:"#BF616A",diffRemovedBackground:"#F4E1E4",lineNumber:"#B2BACC",lineNumberActive:"#1F2530"}},markdown:{heading1:"#2E3440",heading2:"#2E3440",heading3:"#2E3440",heading4:"#2E3440",link:"#81A1C1",linkHover:"#5E81AC",inlineCode:"#4f7034",inlineCodeBackground:"#E4E8F0",blockquote:"#D08770",blockquoteBorder:"#D5DBE7",listMarker:"#5E81AC99"},chat:{userMessage:"#2E3440",userMessageBackground:"#dee4f0",assistantMessage:"#2E3440",assistantMessageBackground:"#ECEFF4",timestamp:"#4C566A",divider:"#D5DBE7"},tools:{background:"#E4E8F080",border:"#b8bfcc80",headerHover:"#F6F8FC",icon:"#4C566A",title:"#2E3440",description:"#4C566A",edit:{added:"#8FBCBB",addedBackground:"#8FBCBB25",removed:"#BF616A",removedBackground:"#BF616A25",lineNumber:"#b7bfd1"}}},au={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},su={metadata:ru,colors:nu,config:au},iu={id:"fields-of-the-shire-dark",name:"Fields of the Shire",description:"Fields of the Shire theme - dark variant",author:"PiChamber",version:"1.0.0",variant:"dark",tags:["dark","warm","earthy","brand"]},cu={primary:{base:"#7a8a5a",hover:"#93a56b",active:"#a4b67d",foreground:"#0c0a08",muted:"#7a8a5a80",emphasis:"#93a56b"},surface:{background:"#1b1815",foreground:"#ebe0d1",muted:"#23201c",mutedForeground:"#83796f",elevated:"#2b2622",elevatedForeground:"#ebe0d1",overlay:"#1b1815cc",subtle:"#282320"},interactive:{border:"#35322f",borderHover:"#f0e6d830",borderFocus:"#373d2c",selection:"#f0e6d81f",selectionForeground:"#ebe0d1",focus:"#7a8a5a",focusRing:"#7a8a5a4d",cursor:"#ebe0d1",hover:"#332d28",active:"#f0e6d824"},status:{error:"#b34d3b",errorForeground:"#0c0a08",errorBackground:"#b85a4a20",errorBorder:"#b85a4a50",warning:"#c47a3a",warningForeground:"#0c0a08",warningBackground:"#c47a3a20",warningBorder:"#c47a3a50",success:"#7f905e",successForeground:"#0c0a08",successBackground:"#7a8a5a20",successBorder:"#7a8a5a50",info:"#667c8a",infoForeground:"#f0e6d8",infoBackground:"#5a6d7a20",infoBorder:"#5a6d7a50"},pr:{open:"#7a8a5a",draft:"#6a5e52",blocked:"#c47a3a",merged:"#5a6d7a",closed:"#b85a4a"},syntax:{base:{background:"#23201c",foreground:"#ebe0d1",comment:"#6a5e52",keyword:"#5a6d7a",string:"#93a56b",number:"#c47a3a",function:"#c47a3a",variable:"#ebe0d1",type:"#7a8a5a",operator:"#a89888"},tokens:{commentDoc:"#4a4238",stringEscape:"#ebe0d1",keywordImport:"#5a6d7a",storageModifier:"#5a6d7a",functionCall:"#c47a3a",method:"#93a56b",variableProperty:"#5a6d7a",variableOther:"#ebe0d1",variableGlobal:"#c47a3a",variableLocal:"#a89888",parameter:"#ebe0d1",constant:"#c47a3a",class:"#7a8a5a",className:"#7a8a5a",interface:"#7a8a5a",struct:"#7a8a5a",enum:"#7a8a5a",typeParameter:"#93a56b",namespace:"#5a6d7a",module:"#5a6d7a",tag:"#c47a3a",jsxTag:"#c47a3a",tagAttribute:"#93a56b",tagAttributeValue:"#93a56b",boolean:"#7a8a5a",decorator:"#5a6d7a",label:"#c47a3a",punctuation:"#a89888",macro:"#5a6d7a",preprocessor:"#5a6d7a",regex:"#93a56b",url:"#5a6d7a",key:"#c47a3a",exception:"#b85a4a"},highlights:{diffAdded:"#7a8a5a",diffAddedBackground:"#7a8a5a20",diffRemoved:"#b85a4a",diffRemovedBackground:"#b85a4a20",diffModified:"#5a6d7a",diffModifiedBackground:"#5a6d7a20",lineNumber:"#6a5e52",lineNumberActive:"#ebe0d1"}},markdown:{heading1:"#c47a3a",heading2:"#93a56b",heading3:"#ebe0d1",heading4:"#ebe0d1",link:"#5a6d7a",linkHover:"#93a56b",inlineCode:"#93a56b",inlineCodeBackground:"#23201c",blockquote:"#a89888",blockquoteBorder:"#f0e6d830",listMarker:"#c47a3a99"},chat:{userMessage:"#ebe0d1",userMessageBackground:"#272a25",assistantMessage:"#ebe0d1",assistantMessageBackground:"#1b1815",timestamp:"#6a5e52",divider:"#f0e6d81c"},tools:{background:"#23201c80",border:"#f0e6d830",headerHover:"#2a252180",icon:"#a89888",title:"#ebe0d1",description:"#a19a96",edit:{added:"#7a8a5a",addedBackground:"#7a8a5a25",removed:"#b85a4a",removedBackground:"#b85a4a25",lineNumber:"#6a5e52"}}},du={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},lu={metadata:iu,colors:cu,config:du},uu={id:"fields-of-the-shire-light",name:"Fields of the Shire",description:"Fields of the Shire theme - light variant",author:"PiChamber",version:"1.0.0",variant:"light",tags:["light","warm","earthy","brand"]},fu={primary:{base:"#4a6030",hover:"#5e773f",active:"#708a50",foreground:"#faf8f5",muted:"#4a603080",emphasis:"#5e773f"},surface:{background:"#f9f5eb",foreground:"#1a1612",muted:"#f4efe3",mutedForeground:"#5a5048",elevated:"#fcf9f0",elevatedForeground:"#1a1612",overlay:"#1a161220",subtle:"#f1ece1"},interactive:{border:"#1a16121c",borderHover:"#1a161230",borderFocus:"#4a6030",selection:"#1a16121a",selectionForeground:"#1a1612",focus:"#4a6030",focusRing:"#4a603040",cursor:"#1a1612",hover:"#efe8da",active:"#1a16121f"},status:{error:"#a24d3f",errorForeground:"#faf8f5",errorBackground:"#a24d3f20",errorBorder:"#a24d3f50",warning:"#8c5520",warningForeground:"#faf8f5",warningBackground:"#8c552020",warningBorder:"#8c552050",success:"#4a6030",successForeground:"#faf8f5",successBackground:"#4a603020",successBorder:"#4a603050",info:"#3d4f5a",infoForeground:"#faf8f5",infoBackground:"#3d4f5a20",infoBorder:"#3d4f5a50"},pr:{open:"#4a6030",draft:"#8a7e72",blocked:"#8c5520",merged:"#3d4f5a",closed:"#a24d3f"},syntax:{base:{background:"#ece5d6",foreground:"#1a1612",comment:"#8a7e72",keyword:"#3d4f5a",string:"#5e773f",number:"#8c5520",function:"#8c5520",variable:"#1a1612",type:"#4a6030",operator:"#5a5048"},tokens:{commentDoc:"#b8b0a4",stringEscape:"#1a1612",keywordImport:"#3d4f5a",storageModifier:"#3d4f5a",functionCall:"#8c5520",method:"#5e773f",variableProperty:"#3d4f5a",variableOther:"#1a1612",variableGlobal:"#8c5520",variableLocal:"#5a5048",parameter:"#1a1612",constant:"#8c5520",class:"#4a6030",className:"#4a6030",interface:"#4a6030",struct:"#4a6030",enum:"#4a6030",typeParameter:"#5e773f",namespace:"#3d4f5a",module:"#3d4f5a",tag:"#8c5520",jsxTag:"#8c5520",tagAttribute:"#4a6030",tagAttributeValue:"#5e773f",boolean:"#4a6030",decorator:"#3d4f5a",label:"#8c5520",punctuation:"#5a5048",macro:"#3d4f5a",preprocessor:"#3d4f5a",regex:"#5e773f",url:"#3d4f5a",key:"#8c5520",exception:"#a24d3f"},highlights:{diffAdded:"#4a6030",diffAddedBackground:"#4a603020",diffRemoved:"#a24d3f",diffRemovedBackground:"#a24d3f20",diffModified:"#3d4f5a",diffModifiedBackground:"#3d4f5a20",lineNumber:"#8a7e72",lineNumberActive:"#1a1612"}},markdown:{heading1:"#8c5520",heading2:"#4a6030",heading3:"#1a1612",heading4:"#1a1612",link:"#3d4f5a",linkHover:"#4a6030",inlineCode:"#4a6030",inlineCodeBackground:"#ece5d6",blockquote:"#5a5048",blockquoteBorder:"#1a161230",listMarker:"#8c552099"},chat:{userMessage:"#1a1612",userMessageBackground:"#efe8da",assistantMessage:"#1a1612",assistantMessageBackground:"#f9f5eb",timestamp:"#8a7e72",divider:"#1a16121c"},tools:{background:"#f4efe380",border:"#1a161230",headerHover:"#efe8da",icon:"#5a5048",title:"#1a1612",description:"#5a5048",edit:{added:"#4a6030",addedBackground:"#4a603025",removed:"#a24d3f",removedBackground:"#a24d3f25",lineNumber:"#8a7e72"}}},mu={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},gu={metadata:uu,colors:fu,config:mu},pu={id:"onedarkpro-dark",name:"One Dark Pro",description:"One Dark Pro",version:"1.0.0",variant:"dark",tags:["dark","palette"]},Fu={primary:{base:"#61AFEF",hover:"#579AD1",active:"#77BAF1",foreground:"#1E222A",muted:"#61AFEF80",emphasis:"#579AD1"},surface:{background:"#1E222A",foreground:"#ABB2BF",muted:"#212631",mutedForeground:"#737a89",elevated:"#232832",elevatedForeground:"#ABB2BF",overlay:"#F6F7FB20",subtle:"#272c37"},interactive:{border:"#313848",borderHover:"#363D52",borderFocus:"#555C79",selection:"#a8aec533",selectionForeground:"#F6F7FB",focus:"#61AFEF",focusRing:"#61AFEF40",cursor:"#F6F7FB",hover:"#a8aec525",active:"#a8aec533"},status:{error:"#E06C75",errorForeground:"#1E222A",errorBackground:"#E06C7520",errorBorder:"#E06C7550",warning:"#E5C07B",warningForeground:"#1E222A",warningBackground:"#E5C07B20",warningBorder:"#E5C07B50",success:"#98C379",successForeground:"#1E222A",successBackground:"#98C37920",successBorder:"#98C37950",info:"#56B6C2",infoForeground:"#1E222A",infoBackground:"#56B6C220",infoBorder:"#56B6C250"},pr:{open:"#98C379",draft:"#818899",blocked:"#E5C07B",merged:"#bb61ef",closed:"#E06C75"},syntax:{base:{background:"#212631",foreground:"#ABB2BF",comment:"#818899",keyword:"#61AFEF",string:"#98C379",number:"#E06C75",function:"#61AFEF",variable:"#ABB2BF",type:"#E5C07B",operator:"#E06C75"},tokens:{boolean:"#E5C07B",class:"#61AFEF",className:"#61AFEF",commentDoc:"#727988",constant:"#56B6C2",decorator:"#E5C07B",enum:"#61AFEF",exception:"#E06C75",functionCall:"#61AFEF",interface:"#E5C07B",jsxTag:"#61AFEF",key:"#61AFEF",keywordImport:"#E06C75",label:"#E06C75",macro:"#56B6C2",method:"#98C379",module:"#E06C75",namespace:"#E5C07B",parameter:"#ABB2BF",preprocessor:"#E06C75",punctuation:"#818899",regex:"#98C379",storageModifier:"#56B6C2",stringEscape:"#F6F7FB",struct:"#61AFEF",tag:"#61AFEF",tagAttribute:"#E5C07B",tagAttributeValue:"#98C379",typeParameter:"#E5C07B",url:"#56B6C2",variableGlobal:"#61AFEF",variableLocal:"#1B1F27",variableOther:"#98C379",variableProperty:"#56B6C2"},highlights:{diffAdded:"#98C379",diffAddedBackground:"#1C2A26",diffModified:"#56B6C2",diffModifiedBackground:"#232836",diffRemoved:"#E06C75",diffRemovedBackground:"#2A1C22",lineNumber:"#424967",lineNumberActive:"#F6F7FB"}},markdown:{heading1:"#ABB2BF",heading2:"#ABB2BF",heading3:"#ABB2BF",heading4:"#ABB2BF",link:"#56B6C2",linkHover:"#61AFEF",inlineCode:"#a0c288",inlineCodeBackground:"#232937",blockquote:"#E5C07B",blockquoteBorder:"#323848",listMarker:"#61AFEF99"},chat:{userMessage:"#ABB2BF",userMessageBackground:"#2e3442",assistantMessage:"#ABB2BF",assistantMessageBackground:"#1E222A",timestamp:"#818899",divider:"#323848"},tools:{background:"#21263180",border:"#41495e80",headerHover:"#171B23",icon:"#818899",title:"#ABB2BF",description:"#818899",edit:{added:"#98C379",addedBackground:"#98C37925",removed:"#E06C75",removedBackground:"#E06C7525",lineNumber:"#545c81"}}},hu={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},yu={metadata:pu,colors:Fu,config:hu},bu={id:"onedarkpro-light",name:"One Dark Pro",description:"One Dark Pro",version:"1.0.0",variant:"light",tags:["light","palette"]},Au={primary:{base:"#528BFF",hover:"#73A0FE",active:"#4879DC",foreground:"#F5F6F8",muted:"#528BFF80",emphasis:"#73A0FE"},surface:{background:"#F5F6F8",foreground:"#2B303B",muted:"#EEF0F4",mutedForeground:"#6e727b",elevated:"#f0f5fa",elevatedForeground:"#2B303B",overlay:"#0E111820",subtle:"#edeff5"},interactive:{border:"#d5d8de",borderHover:"#D4D9E3",borderFocus:"#A6ADBF",selection:"#d8dde6",selectionForeground:"#0E1118",focus:"#528BFF",focusRing:"#528BFF40",cursor:"#0E1118",hover:"#d8dde6c2",active:"#FAFBFC"},status:{error:"#E06C75",errorForeground:"#F5F6F8",errorBackground:"#E06C7520",errorBorder:"#E06C7550",warning:"#D19A66",warningForeground:"#F5F6F8",warningBackground:"#D19A6620",warningBorder:"#D19A6650",success:"#4FA66D",successForeground:"#F5F6F8",successBackground:"#4FA66D20",successBorder:"#4FA66D50",info:"#61AFEF",infoForeground:"#F5F6F8",infoBackground:"#61AFEF20",infoBorder:"#61AFEF50"},pr:{open:"#4FA66D",draft:"#6B717F",blocked:"#D19A66",merged:"#a052ff",closed:"#E06C75"},syntax:{base:{background:"#EEF0F4",foreground:"#2B303B",comment:"#6B717F",keyword:"#528BFF",string:"#4FA66D",number:"#D85462",function:"#528BFF",variable:"#2B303B",type:"#D19A66",operator:"#D85462"},tokens:{boolean:"#D19A66",class:"#528BFF",className:"#528BFF",commentDoc:"#B0B4BC",constant:"#61AFEF",decorator:"#D19A66",enum:"#528BFF",exception:"#D85462",functionCall:"#528BFF",interface:"#D19A66",jsxTag:"#528BFF",key:"#528BFF",keywordImport:"#D85462",label:"#D85462",macro:"#61AFEF",method:"#4FA66D",module:"#D85462",namespace:"#D19A66",parameter:"#2B303B",preprocessor:"#D85462",punctuation:"#6B717F",regex:"#4FA66D",storageModifier:"#61AFEF",stringEscape:"#0E1118",struct:"#528BFF",tag:"#528BFF",tagAttribute:"#D19A66",tagAttributeValue:"#4FA66D",typeParameter:"#D19A66",url:"#61AFEF",variableGlobal:"#528BFF",variableLocal:"#FAFBFC",variableOther:"#4FA66D",variableProperty:"#61AFEF"},highlights:{diffAdded:"#4FA66D",diffAddedBackground:"#E5F4EA",diffModified:"#61AFEF",diffModifiedBackground:"#E4E8F4",diffRemoved:"#E06C75",diffRemovedBackground:"#FDE7EA",lineNumber:"#BEC4D0",lineNumberActive:"#0E1118"}},markdown:{heading1:"#2B303B",heading2:"#2B303B",heading3:"#2B303B",heading4:"#2B303B",link:"#61AFEF",linkHover:"#528BFF",inlineCode:"#327d4c",inlineCodeBackground:"#EEF0F4",blockquote:"#D19A66",blockquoteBorder:"#DEE2EB",listMarker:"#528BFF99"},chat:{userMessage:"#2B303B",userMessageBackground:"#eaedf4",assistantMessage:"#2B303B",assistantMessageBackground:"#F5F6F8",timestamp:"#6B717F",divider:"#DEE2EB"},tools:{background:"#EEF0F480",border:"#c4c8d080",headerHover:"#FFFFFF",icon:"#6B717F",title:"#2B303B",description:"#6B717F",edit:{added:"#4FA66D",addedBackground:"#4FA66D25",removed:"#E06C75",removedBackground:"#E06C7525",lineNumber:"#afb5c1"}}},Eu={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},Bu={metadata:bu,colors:Au,config:Eu},wu={id:"solarized-dark",name:"Solarized",description:"Solarized",version:"1.0.0",variant:"dark",tags:["dark","palette"]},Cu={primary:{base:"#278BD2",hover:"#5C65AC",active:"#8285C9",foreground:"#001F27",muted:"#6C71C480",emphasis:"#5C65AC"},surface:{background:"#001e25",foreground:"#93A1A1",muted:"#02232e",mutedForeground:"#6f7475",elevated:"#052832",elevatedForeground:"#93A1A1",overlay:"#FDF6E320",subtle:"#062930"},interactive:{border:"#223a41",borderHover:"#243E47",borderFocus:"#3A5A6B",selection:"#98afbd33",selectionForeground:"#FDF6E3",focus:"#6C71C4",focusRing:"#6C71C440",cursor:"#FDF6E3",hover:"#98afbd25",active:"#98afbd33"},status:{error:"#DC322F",errorForeground:"#001F27",errorBackground:"#DC322F20",errorBorder:"#DC322F50",warning:"#B58900",warningForeground:"#001F27",warningBackground:"#B5890020",warningBorder:"#B5890050",success:"#859900",successForeground:"#001F27",successBackground:"#85990020",successBorder:"#85990050",info:"#2AA198",infoForeground:"#001F27",infoBackground:"#2AA19820",infoBorder:"#2AA19850"},pr:{open:"#859900",draft:"#6C7F80",blocked:"#B58900",merged:"#7f6cc4",closed:"#DC322F"},syntax:{base:{background:"#022733",foreground:"#93A1A1",comment:"#6C7F80",keyword:"#6C71C4",string:"#859900",number:"#D33682",function:"#6C71C4",variable:"#93A1A1",type:"#B58900",operator:"#D33682"},tokens:{boolean:"#B58900",class:"#6C71C4",className:"#6C71C4",commentDoc:"#5C7173",constant:"#2AA198",decorator:"#B58900",enum:"#6C71C4",exception:"#D33682",functionCall:"#6C71C4",interface:"#B58900",jsxTag:"#6C71C4",key:"#6C71C4",keywordImport:"#D33682",label:"#D33682",macro:"#2AA198",method:"#859900",module:"#D33682",namespace:"#B58900",parameter:"#93A1A1",preprocessor:"#D33682",punctuation:"#6C7F80",regex:"#859900",storageModifier:"#2AA198",stringEscape:"#FDF6E3",struct:"#6C71C4",tag:"#6C71C4",tagAttribute:"#B58900",tagAttributeValue:"#859900",typeParameter:"#B58900",url:"#2AA198",variableGlobal:"#6C71C4",variableLocal:"#01222B",variableOther:"#859900",variableProperty:"#2AA198"},highlights:{diffAdded:"#859900",diffAddedBackground:"#0F2F29",diffModified:"#2AA198",diffModifiedBackground:"#0F3844",diffRemoved:"#DC322F",diffRemovedBackground:"#321C1C",lineNumber:"#2D4958",lineNumberActive:"#FDF6E3"}},markdown:{heading1:"#93A1A1",heading2:"#93A1A1",heading3:"#93A1A1",heading4:"#93A1A1",link:"#2AA198",linkHover:"#6C71C4",inlineCode:"#859900",inlineCodeBackground:"#022733",blockquote:"#B58900",blockquoteBorder:"#20373F",listMarker:"#6C71C499"},chat:{userMessage:"#93A1A1",userMessageBackground:"#042B34",assistantMessage:"#93A1A1",assistantMessageBackground:"#001F27",timestamp:"#6C7F80",divider:"#20373F"},tools:{background:"#02273380",border:"#2b495380",headerHover:"#032830",icon:"#6C7F80",title:"#93A1A1",description:"#6C7F80",edit:{added:"#859900",addedBackground:"#85990025",removed:"#DC322F",removedBackground:"#DC322F25",lineNumber:"#345567"}}},ku={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},vu={metadata:wu,colors:Cu,config:ku},Du={id:"solarized-light",name:"Solarized",description:"Solarized",version:"1.0.0",variant:"light",tags:["light","palette"]},Su={primary:{base:"#268BD2",hover:"#51A0D5",active:"#217EBC",foreground:"#FDF6E3",muted:"#268BD280",emphasis:"#51A0D5"},surface:{background:"#FDF6E3",foreground:"#586E75",muted:"#F6EFDA",mutedForeground:"#7a8587",elevated:"#FAF3DC",elevatedForeground:"#586E75",overlay:"#07364220",subtle:"#F6EFDA"},interactive:{border:"#e0decc",borderHover:"#D9D4C2",borderFocus:"#ACA58F",selection:"#10647a22",selectionForeground:"#073642",focus:"#268BD2",focusRing:"#268BD240",cursor:"#073642",hover:"#10647a14",active:"#10647a22"},status:{error:"#DC322F",errorForeground:"#FDF6E3",errorBackground:"#DC322F20",errorBorder:"#DC322F50",warning:"#B58900",warningForeground:"#FDF6E3",warningBackground:"#B5890020",warningBorder:"#B5890050",success:"#859900",successForeground:"#FDF6E3",successBackground:"#85990020",successBorder:"#85990050",info:"#2AA198",infoForeground:"#FDF6E3",infoBackground:"#2AA19820",infoBorder:"#2AA19850"},pr:{open:"#859900",draft:"#7A8C8E",blocked:"#B58900",merged:"#6e26d2",closed:"#DC322F"},syntax:{base:{background:"#F6EFDA",foreground:"#586E75",comment:"#7A8C8E",keyword:"#268BD2",string:"#859900",number:"#D33682",function:"#268BD2",variable:"#586E75",type:"#B58900",operator:"#D33682"},tokens:{boolean:"#B58900",class:"#268BD2",className:"#268BD2",commentDoc:"#BCC1B9",constant:"#2AA198",decorator:"#B58900",enum:"#268BD2",exception:"#D33682",functionCall:"#268BD2",interface:"#B58900",jsxTag:"#268BD2",key:"#268BD2",keywordImport:"#D33682",label:"#D33682",macro:"#2AA198",method:"#859900",module:"#D33682",namespace:"#B58900",parameter:"#586E75",preprocessor:"#D33682",punctuation:"#7A8C8E",regex:"#859900",storageModifier:"#2AA198",stringEscape:"#073642",struct:"#268BD2",tag:"#268BD2",tagAttribute:"#B58900",tagAttributeValue:"#859900",typeParameter:"#B58900",url:"#2AA198",variableGlobal:"#268BD2",variableLocal:"#FAF3DC",variableOther:"#859900",variableProperty:"#2AA198"},highlights:{diffAdded:"#859900",diffAddedBackground:"#EEF5D6",diffModified:"#2AA198",diffModifiedBackground:"#E3ECF3",diffRemoved:"#DC322F",diffRemovedBackground:"#FDE4DD",lineNumber:"#C5C0AD",lineNumberActive:"#073642"}},markdown:{heading1:"#586E75",heading2:"#586E75",heading3:"#586E75",heading4:"#586E75",link:"#2AA198",linkHover:"#268BD2",inlineCode:"#859900",inlineCodeBackground:"#F6EFDA",blockquote:"#B58900",blockquoteBorder:"#E3E0CD",listMarker:"#268BD299"},chat:{userMessage:"#586E75",userMessageBackground:"#F6EFDA",assistantMessage:"#586E75",assistantMessageBackground:"#FDF6E3",timestamp:"#7A8C8E",divider:"#E3E0CD"},tools:{background:"#F6EFDA80",border:"#d1cebc80",headerHover:"#F6EDD4",icon:"#7A8C8E",title:"#586E75",description:"#7A8C8E",edit:{added:"#859900",addedBackground:"#85990025",removed:"#DC322F",removedBackground:"#DC322F25",lineNumber:"#c3bead"}}},Mu={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},Tu={metadata:Du,colors:Su,config:Mu},Ru={id:"tokyonight-dark",name:"Tokyonight",description:"Tokyonight",version:"1.0.0",variant:"dark",tags:["dark","palette"]},Pu={primary:{base:"#7AA2F7",hover:"#6A8CD6",active:"#8BADF8",foreground:"#0F111A",muted:"#7AA2F780",emphasis:"#6A8CD6"},surface:{background:"#0F111A",foreground:"#C0CAF5",muted:"#111428",mutedForeground:"#8890b3",elevated:"#131629",elevatedForeground:"#C0CAF5",overlay:"#EAEAFF20",subtle:"#15192b"},interactive:{border:"#2d2f43",borderHover:"#292C43",borderFocus:"#45496F",selection:"#b3b3cc33",selectionForeground:"#EAEAFF",focus:"#7AA2F7",focusRing:"#7AA2F740",cursor:"#EAEAFF",hover:"#272E49",active:"#262C46"},status:{error:"#F7768E",errorForeground:"#0F111A",errorBackground:"#F7768E20",errorBorder:"#F7768E50",warning:"#E0AF68",warningForeground:"#0F111A",warningBackground:"#E0AF6820",warningBorder:"#E0AF6850",success:"#9ECE6A",successForeground:"#0F111A",successBackground:"#9ECE6A20",successBorder:"#9ECE6A50",info:"#7DCFFF",infoForeground:"#0F111A",infoBackground:"#7DCFFF20",infoBorder:"#7DCFFF50"},pr:{open:"#9ECE6A",draft:"#7A88CF",blocked:"#E0AF68",merged:"#BB9AF7",closed:"#F7768E"},syntax:{base:{background:"#111428",foreground:"#C0CAF5",comment:"#7A88CF",keyword:"#BB9AF7",string:"#9ECE6A",number:"#FF9E64",function:"#BB9AF7",variable:"#C0CAF5",type:"#E0AF68",operator:"#FF9E64"},tokens:{boolean:"#E0AF68",class:"#BB9AF7",className:"#BB9AF7",commentDoc:"#6A76B4",constant:"#7DCFFF",decorator:"#E0AF68",enum:"#BB9AF7",exception:"#FF9E64",functionCall:"#BB9AF7",interface:"#E0AF68",jsxTag:"#BB9AF7",key:"#BB9AF7",keywordImport:"#FF9E64",label:"#FF9E64",macro:"#7DCFFF",method:"#9ECE6A",module:"#FF9E64",namespace:"#E0AF68",parameter:"#C0CAF5",preprocessor:"#FF9E64",punctuation:"#7A88CF",regex:"#9ECE6A",storageModifier:"#7DCFFF",stringEscape:"#EAEAFF",struct:"#BB9AF7",tag:"#BB9AF7",tagAttribute:"#E0AF68",tagAttributeValue:"#9ECE6A",typeParameter:"#E0AF68",url:"#7DCFFF",variableGlobal:"#BB9AF7",variableLocal:"#101324",variableOther:"#9ECE6A",variableProperty:"#7DCFFF"},highlights:{diffAdded:"#9ECE6A",diffAddedBackground:"#1C2A38",diffModified:"#7DCFFF",diffModifiedBackground:"#24283B",diffRemoved:"#F7768E",diffRemovedBackground:"#2A1F32",lineNumber:"#343755",lineNumberActive:"#EAEAFF"}},markdown:{heading1:"#C0CAF5",heading2:"#C0CAF5",heading3:"#C0CAF5",heading4:"#C0CAF5",link:"#7DCFFF",linkHover:"#7AA2F7",inlineCode:"#9ECE6A",inlineCodeBackground:"#111428",blockquote:"#E0AF68",blockquoteBorder:"#25283B",listMarker:"#7AA2F799"},chat:{userMessage:"#C0CAF5",userMessageBackground:"#171b30",assistantMessage:"#C0CAF5",assistantMessageBackground:"#0F111A",timestamp:"#7A88CF",divider:"#25283B"},tools:{background:"#11142880",border:"#393e5c80",headerHover:"#13172A",icon:"#7A88CF",title:"#C0CAF5",description:"#a4adda",edit:{added:"#9ECE6A",addedBackground:"#9ECE6A25",removed:"#F7768E",removedBackground:"#F7768E25",lineNumber:"#3e4266"}}},Iu={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},xu={metadata:Ru,colors:Pu,config:Iu},_u={id:"tokyonight-light",name:"Tokyonight",description:"Tokyonight",version:"1.0.0",variant:"light",tags:["light","palette"]},Ou={primary:{base:"#2E7DE9",hover:"#5291E9",active:"#2B70D0",foreground:"#E1E2E7",muted:"#2E7DE980",emphasis:"#5291E9"},surface:{background:"#E1E2E7",foreground:"#273153",muted:"#DEE0EA",mutedForeground:"#686e9b",elevated:"#dee0ee",elevatedForeground:"#273153",overlay:"#1C254420",subtle:"#dadce6"},interactive:{border:"#c7c9d3",borderHover:"#C3C6D2",borderFocus:"#9599A8",selection:"#939cbf47",selectionForeground:"#1C2544",focus:"#2E7DE9",focusRing:"#2E7DE940",cursor:"#1C2544",hover:"#7b86ad2a",active:"#7b86ad47"},status:{error:"#C94060",errorForeground:"#E1E2E7",errorBackground:"#C9406020",errorBorder:"#C9406050",warning:"#8C6C3E",warningForeground:"#E1E2E7",warningBackground:"#8C6C3E20",warningBorder:"#8C6C3E50",success:"#587539",successForeground:"#E1E2E7",successBackground:"#58753920",successBorder:"#58753950",info:"#007197",infoForeground:"#E1E2E7",infoBackground:"#00719720",infoBorder:"#00719750"},pr:{open:"#587539",draft:"#5C6390",blocked:"#8C6C3E",merged:"#9854F1",closed:"#C94060"},syntax:{base:{background:"#DEE0EA",foreground:"#273153",comment:"#5C6390",keyword:"#9854F1",string:"#587539",number:"#B15C00",function:"#9854F1",variable:"#273153",type:"#3760BF",operator:"#B15C00"},tokens:{boolean:"#3760BF",class:"#9854F1",className:"#9854F1",commentDoc:"#9FA3BC",constant:"#007197",decorator:"#3760BF",enum:"#9854F1",exception:"#B15C00",functionCall:"#9854F1",interface:"#3760BF",jsxTag:"#9854F1",key:"#9854F1",keywordImport:"#B15C00",label:"#B15C00",macro:"#007197",method:"#587539",module:"#B15C00",namespace:"#3760BF",parameter:"#273153",preprocessor:"#B15C00",punctuation:"#5C6390",regex:"#587539",storageModifier:"#007197",stringEscape:"#1C2544",struct:"#9854F1",tag:"#9854F1",tagAttribute:"#3760BF",tagAttributeValue:"#587539",typeParameter:"#3760BF",url:"#007197",variableGlobal:"#9854F1",variableLocal:"#E5E6EE",variableOther:"#587539",variableProperty:"#007197"},highlights:{diffAdded:"#587539",diffAddedBackground:"#DFE7DA",diffModified:"#007197",diffModifiedBackground:"#CFD1DD",diffRemoved:"#C94060",diffRemovedBackground:"#F4DADD",lineNumber:"#AEB2BF",lineNumberActive:"#1C2544"}},markdown:{heading1:"#9854F1",heading2:"#B15C00",heading3:"#8C6C3E",heading4:"#273153",link:"#007197",linkHover:"#2E7DE9",inlineCode:"#587539",inlineCodeBackground:"#DEE0EA",blockquote:"#8C6C3E",blockquoteBorder:"#CDD0DC",listMarker:"#2E7DE999"},chat:{userMessage:"#273153",userMessageBackground:"#dcdee9",assistantMessage:"#273153",assistantMessageBackground:"#E1E2E7",timestamp:"#5C6390",divider:"#CDD0DC"},tools:{background:"#DEE0EA80",border:"#a5a8b580",headerHover:"#E9EAF1",icon:"#5C6390",title:"#273153",description:"#5C6390",edit:{added:"#587539",addedBackground:"#58753925",removed:"#C94060",removedBackground:"#C9406025",lineNumber:"#9b9ea9"}}},Nu={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},Uu={metadata:_u,colors:Ou,config:Nu},Lu={id:"vesper-dark",name:"Vesper",description:"Vesper",version:"1.0.0",variant:"dark",tags:["dark","palette"]},Hu={primary:{base:"#FFC799",hover:"#DBAC84",active:"#FFCFA8",foreground:"#101010",muted:"#FFC79980",emphasis:"#DBAC84"},surface:{background:"#151515",foreground:"#e8e5e5",muted:"#1c1b1b",mutedForeground:"#848484",elevated:"#242121",elevatedForeground:"#FFFFFF",overlay:"#FFFFFF20",subtle:"#1f1f1f"},interactive:{border:"#373636",borderHover:"#202020",borderFocus:"#383838",selection:"#b1adad33",selectionForeground:"#FFFFFF",focus:"#FFC799",focusRing:"#FFC79940",cursor:"#FFFFFF",hover:"#ffffff1c",active:"#ffffff33"},status:{error:"#FF8080",errorForeground:"#101010",errorBackground:"#FF808020",errorBorder:"#FF808050",warning:"#FFC799",warningForeground:"#101010",warningBackground:"#FFC79920",warningBorder:"#FFC79950",success:"#99FFE4",successForeground:"#101010",successBackground:"#99FFE420",successBorder:"#99FFE450",info:"#FFC799",infoForeground:"#101010",infoBackground:"#FFC79920",infoBorder:"#FFC79950"},pr:{open:"#99FFE4",draft:"#A0A0A0",blocked:"#FFC799",merged:"#ca99ff",closed:"#FF8080"},syntax:{base:{background:"#141414",foreground:"#FFFFFF",comment:"#A0A0A0",keyword:"#FFC799",string:"#99FFE4",number:"#FF8080",function:"#FFC799",variable:"#FFFFFF",type:"#FFC799",operator:"#FF8080"},tokens:{boolean:"#FFC799",class:"#FFC799",className:"#FFC799",commentDoc:"#8A8A8A",constant:"#A0A0A0",decorator:"#FFC799",enum:"#FFC799",exception:"#FF8080",functionCall:"#FFC799",interface:"#FFC799",jsxTag:"#FFC799",key:"#FFC799",keywordImport:"#FF8080",label:"#FF8080",macro:"#8B8B8B",method:"#99FFE4",module:"#FF8080",namespace:"#FFC799",parameter:"#FFFFFF",preprocessor:"#FF8080",punctuation:"#A0A0A0",regex:"#99FFE4",storageModifier:"#8B8B8B",stringEscape:"#FFFFFF",struct:"#FFC799",tag:"#FFC799",tagAttribute:"#FFC799",tagAttributeValue:"#99FFE4",typeParameter:"#FFC799",url:"#A0A0A0",variableGlobal:"#FFC799",variableLocal:"#0C0C0C",variableOther:"#99FFE4",variableProperty:"#A0A0A0"},highlights:{diffAdded:"#99FFE4",diffAddedBackground:"#0D2818",diffModified:"#FFC799",diffModifiedBackground:"#141414",diffRemoved:"#FF8080",diffRemovedBackground:"#281A1A",lineNumber:"#282828",lineNumberActive:"#FFFFFF"}},markdown:{heading1:"#FFFFFF",heading2:"#FFFFFF",heading3:"#FFFFFF",heading4:"#FFFFFF",link:"#A0A0A0",linkHover:"#FFC799",inlineCode:"#bba2a2",inlineCodeBackground:"#292727",blockquote:"#FFFFFF",blockquoteBorder:"#1C1C1C",listMarker:"#FFFFFF99"},chat:{userMessage:"#FFFFFF",userMessageBackground:"#2b2a2a",assistantMessage:"#FFFFFF",assistantMessageBackground:"#101010",timestamp:"#A0A0A0",divider:"#1C1C1C"},tools:{background:"#14141480",border:"#48474780",headerHover:"#080808",icon:"#A0A0A0",title:"#FFFFFF",description:"#A0A0A0",edit:{added:"#99FFE4",addedBackground:"#99FFE425",removed:"#FF8080",removedBackground:"#FF808025",lineNumber:"#615f5f"}}},ju={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},$u={metadata:Lu,colors:Hu,config:ju},zu={id:"vesper-light",name:"Vesper",description:"Vesper",version:"1.0.0",variant:"light",tags:["light","palette"]},qu={primary:{base:"#a06535",hover:"#FFD2AD",active:"#D9A982",foreground:"#FFFFFF",muted:"#cf9c7280",emphasis:"#FFD2AD"},surface:{background:"#FFFFFF",foreground:"#101010",muted:"#F8F8F8",mutedForeground:"#6e6d6d",elevated:"#f6f5f5",elevatedForeground:"#101010",overlay:"#00000020",subtle:"#f6f2f2"},interactive:{border:"#dfdada",borderHover:"#E0E0E0",borderFocus:"#9e9e9e",selection:"#5e5b5b22",selectionForeground:"#000000",focus:"#be875b",focusRing:"#cf9c7240",cursor:"#000000",hover:"#5e5c5c22",active:"#48474722"},status:{error:"#d46868",errorForeground:"#FFFFFF",errorBackground:"#b95f5f20",errorBorder:"#b95f5f50",warning:"#cb7f40",warningForeground:"#FFFFFF",warningBackground:"#cf9c7220",warningBorder:"#cf9c7250",success:"#109b76",successForeground:"#FFFFFF",successBackground:"#99FFE420",successBorder:"#99FFE450",info:"#62bced",infoForeground:"#FFFFFF",infoBackground:"#cf9c7220",infoBorder:"#cf9c7250"},pr:{open:"#0f926f",draft:"#888787",blocked:"#bf6f2e",merged:"#9f5fc1",closed:"#c56161"},syntax:{base:{background:"#F8F8F8",foreground:"#101010",comment:"#868686",keyword:"#cf9c72",string:"#43ae91",number:"#b95f5f",function:"#cf9c72",variable:"#101010",type:"#cf9c72",operator:"#b95f5f"},tokens:{boolean:"#cf9c72",class:"#cf9c72",className:"#cf9c72",commentDoc:"#D0D0D0",constant:"#838282",decorator:"#cf9c72",enum:"#cf9c72",exception:"#b95f5f",functionCall:"#cf9c72",interface:"#cf9c72",jsxTag:"#cf9c72",key:"#cf9c72",keywordImport:"#b95f5f",label:"#b95f5f",macro:"#717070",method:"#74e8c9",module:"#b95f5f",namespace:"#cf9c72",parameter:"#101010",preprocessor:"#b95f5f",punctuation:"#717070",regex:"#67e7c5",storageModifier:"#7b7b7b",stringEscape:"#000000",struct:"#cf9c72",tag:"#cf9c72",tagAttribute:"#cf9c72",tagAttributeValue:"#6adebf",typeParameter:"#cf9c72",url:"#797878",variableGlobal:"#cf9c72",variableLocal:"#F0F0F0",variableOther:"#49dcb5",variableProperty:"#717070"},highlights:{diffAdded:"#56d8b5",diffAddedBackground:"#E8F5E8",diffModified:"#cf9c72",diffModifiedBackground:"#F0F0F0",diffRemoved:"#b95f5f",diffRemovedBackground:"#F5E8E8",lineNumber:"#D0D0D0",lineNumberActive:"#000000"}},markdown:{heading1:"#101010",heading2:"#101010",heading3:"#101010",heading4:"#101010",link:"#717070",linkHover:"#c48959",inlineCode:"#665050",inlineCodeBackground:"#f3f1f1",blockquote:"#101010",blockquoteBorder:"#E8E8E8",listMarker:"#10101099"},chat:{userMessage:"#101010",userMessageBackground:"#f4f1f1",assistantMessage:"#101010",assistantMessageBackground:"#FFFFFF",timestamp:"#717070",divider:"#E8E8E8"},tools:{background:"#F8F8F880",border:"#d0cece80",headerHover:"#E8E8E8",icon:"#717070",title:"#101010",description:"#717070",edit:{added:"#40d7af",addedBackground:"#99FFE425",removed:"#b95f5f",removedBackground:"#b95f5f25",lineNumber:"#b4b2b2"}}},Ku={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},Gu={metadata:zu,colors:qu,config:Ku},Wu={id:"mono-plus-dark",name:"Mono Plus",description:"A pure monochromatic theme - dark variant with slight colors added",version:"1.0.0",variant:"dark",tags:["dark","monochrome","minimal"]},Vu={primary:{base:"#a2bee8",hover:"#E5E5E5",active:"#CCCCCC",foreground:"#000000",muted:"#FFFFFF80",emphasis:"#FFFFFF"},surface:{background:"#000000",foreground:"#E5E5E5",muted:"#0A0A0A",mutedForeground:"#808080",elevated:"#141414",elevatedForeground:"#E5E5E5",overlay:"#00000080",subtle:"#1A1A1A"},interactive:{border:"#2f2f2f",borderHover:"#333333",borderFocus:"#FFFFFF",selection:"#ffffff1f",selectionForeground:"#E5E5E5",focus:"#FFFFFF",focusRing:"#FFFFFF50",cursor:"#E5E5E5",hover:"#ffffff1f",active:"#ffffff1f"},status:{error:"#9e6a6a",errorForeground:"#0a0a0a",errorBackground:"#9e6a6a20",errorBorder:"#9e6a6a50",warning:"#9e8a6a",warningForeground:"#0a0a0a",warningBackground:"#9e8a6a20",warningBorder:"#9e8a6a50",success:"#6a8e6a",successForeground:"#0a0a0a",successBackground:"#6a8e6a20",successBorder:"#6a8e6a50",info:"#6a7e9e",infoForeground:"#0a0a0a",infoBackground:"#6a7e9e20",infoBorder:"#6a7e9e50"},pr:{open:"#6a8e6a",draft:"#8c8c8c",blocked:"#9e8a6a",merged:"#bda2e8",closed:"#9e6a6a"},syntax:{base:{background:"#0a0a0a",foreground:"#d4d4d4",comment:"#8c8c8c",keyword:"#dccdbeff",string:"#b6d8e6ff",number:"#e3bdadff",function:"#a2bee8",variable:"#d4d4d4",type:"#edcbb8ff",operator:"#dccdbeff"},tokens:{commentDoc:"#8c8c8c",stringEscape:"#b6d8e6ff",keywordImport:"#dccdbeff",storageModifier:"#dccdbeff",functionCall:"#a2bee8",method:"#a2bee8",variableProperty:"#c0dcc0ff",variableOther:"#d4d4d4",class:"#edcbb8ff",className:"#edcbb8ff",interface:"#edcbb8ff",tag:"#a2bee8",boolean:"#e3bdadff",url:"#b6d8e6ff",key:"#c0dcc0ff"},highlights:{diffAdded:"#6a8e6a",diffAddedBackground:"#6a8e6a20",diffRemoved:"#9e6a6a",diffRemovedBackground:"#9e6a6a20",lineNumber:"#7c7c7c",lineNumberActive:"#d4d4d4"}},markdown:{heading1:"#FFFFFF",heading2:"#F2F2F2",heading3:"#E5E5E5",heading4:"#D9D9D9",link:"#CCCCCC",linkHover:"#a2bee8",inlineCode:"#a2bee8",inlineCodeBackground:"#1A1A1A",blockquote:"#808080",blockquoteBorder:"#333333",listMarker:"#99999999"},chat:{userMessage:"#E5E5E5",userMessageBackground:"#1A1A1A",assistantMessage:"#E5E5E5",assistantMessageBackground:"#000000",timestamp:"#808080",divider:"#333333"},tools:{background:"#0A0A0A50",border:"#4040409d",headerHover:"#33333350",icon:"#A6A6A6",title:"#E5E5E5",description:"#808080",edit:{added:"#6a8e6a",addedBackground:"#6a8e6a20",removed:"#9e6a6a",removedBackground:"#9e6a6a20",lineNumber:"#2a2a2a"}}},Ju={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},Yu={metadata:Wu,colors:Vu,config:Ju},Qu={id:"mono-plus-light",name:"Mono Plus",description:"A pure monochromatic theme - light variant with slight colors added",version:"1.0.0",variant:"light",tags:["light","monochrome","minimal"]},Xu={primary:{base:"#4a6a9e",hover:"#1A1A1A",active:"#333333",foreground:"#FFFFFF",muted:"#00000080",emphasis:"#000000"},surface:{background:"#FFFFFF",foreground:"#1A1A1A",muted:"#F5F5F5",mutedForeground:"#6f6f6f",elevated:"#FAFAFA",elevatedForeground:"#1A1A1A",overlay:"#00000020",subtle:"#F0F0F0"},interactive:{border:"#e3e3e3",borderHover:"#B3B3B3",borderFocus:"#000000",selection:"#00000015",selectionForeground:"#1A1A1A",focus:"#000000",focusRing:"#00000040",cursor:"#1A1A1A",hover:"#00000010",active:"#00000015"},status:{error:"#8a5a5a",errorForeground:"#fafafa",errorBackground:"#8a5a5a18",errorBorder:"#8a5a5a40",warning:"#8a7a5a",warningForeground:"#fafafa",warningBackground:"#8a7a5a18",warningBorder:"#8a7a5a40",success:"#5a7a5a",successForeground:"#fafafa",successBackground:"#5a7a5a18",successBorder:"#5a7a5a40",info:"#5a6a8a",infoForeground:"#fafafa",infoBackground:"#5a6a8a18",infoBorder:"#5a6a8a40"},pr:{open:"#6a8e6a",draft:"#8c8c8c",blocked:"#8a7a5a",merged:"#8769b6",closed:"#8a5a5a"},syntax:{base:{background:"#f5f5f5",foreground:"#2a2a2a",comment:"#8c8c8c",keyword:"#6a5a4a",string:"#4a6a7a",number:"#7a5a4a",function:"#4a6a9e",variable:"#2a2a2a",type:"#6a5040",operator:"#6a5a4a"},tokens:{commentDoc:"#8c8c8c",stringEscape:"#4a6a7a",keywordImport:"#6a5a4a",storageModifier:"#6a5a4a",functionCall:"#4a6a9e",method:"#4a6a9e",variableProperty:"#4a6a4a",variableOther:"#2a2a2a",class:"#6a5040",className:"#6a5040",interface:"#6a5040",tag:"#4a6a9e",boolean:"#7a5a4a",url:"#4a6a7a",key:"#4a6a4a"},highlights:{diffAdded:"#5a7a5a",diffAddedBackground:"#5a7a5a18",diffRemoved:"#8a5a5a",diffRemovedBackground:"#8a5a5a18",lineNumber:"#b0b0b0",lineNumberActive:"#2a2a2a"}},markdown:{heading1:"#000000",heading2:"#0D0D0D",heading3:"#1A1A1A",heading4:"#262626",link:"#333333",linkHover:"#4a6a9e",inlineCode:"#4a6a9e",inlineCodeBackground:"#f1f1f1",blockquote:"#808080",blockquoteBorder:"#D9D9D9",listMarker:"#66666699"},chat:{userMessage:"#1A1A1A",userMessageBackground:"#E5E5E5",assistantMessage:"#1A1A1A",assistantMessageBackground:"#FFFFFF",timestamp:"#808080",divider:"#D9D9D9"},tools:{background:"#F5F5F550",border:"#B3B3B380",headerHover:"#D9D9D9",icon:"#666666",title:"#1A1A1A",description:"#808080",edit:{added:"#5a7a5a",addedBackground:"#5a7a5a18",removed:"#8a5a5a",removedBackground:"#8a5a5a18",lineNumber:"#d0d0d0"}}},Zu={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},ef={metadata:Qu,colors:Xu,config:Zu},tf={id:"mono-dark",name:"Mono",description:"A pure monochromatic theme - dark variant with shades of grey",version:"1.0.0",variant:"dark",tags:["dark","monochrome","minimal","grayscale"]},of={primary:{base:"#FFFFFF",hover:"#E5E5E5",active:"#CCCCCC",foreground:"#000000",muted:"#FFFFFF80",emphasis:"#FFFFFF"},surface:{background:"#000000",foreground:"#E5E5E5",muted:"#0A0A0A",mutedForeground:"#808080",elevated:"#141414",elevatedForeground:"#E5E5E5",overlay:"#00000080",subtle:"#1A1A1A"},interactive:{border:"#2f2f2f",borderHover:"#333333",borderFocus:"#FFFFFF",selection:"#ffffff1f",selectionForeground:"#E5E5E5",focus:"#FFFFFF",focusRing:"#FFFFFF50",cursor:"#E5E5E5",hover:"#ffffff1f",active:"#ffffff1f"},status:{error:"#666666",errorForeground:"#000000",errorBackground:"#ffffff10",errorBorder:"#ffffff20",warning:"#999999",warningForeground:"#000000",warningBackground:"#ffffff12",warningBorder:"#ffffff25",success:"#E5E5E5",successForeground:"#000000",successBackground:"#ffffff18",successBorder:"#ffffff30",info:"#A6A6A6",infoForeground:"#000000",infoBackground:"#ffffff14",infoBorder:"#ffffff28"},pr:{open:"#E5E5E5",draft:"#B3B3B3",blocked:"#999999",merged:"#CCCCCC",closed:"#666666"},syntax:{base:{background:"#0A0A0A",foreground:"#E5E5E5",comment:"#666666",keyword:"#FFFFFF",string:"#B3B3B3",number:"#999999",function:"#E5E5E5",variable:"#CCCCCC",type:"#D9D9D9",operator:"#808080"},tokens:{commentDoc:"#595959",stringEscape:"#E5E5E5",keywordImport:"#FFFFFF",storageModifier:"#E5E5E5",functionCall:"#D9D9D9",method:"#CCCCCC",variableProperty:"#B3B3B3",variableOther:"#CCCCCC",variableGlobal:"#999999",variableLocal:"#1A1A1A",parameter:"#CCCCCC",constant:"#E5E5E5",class:"#FFFFFF",className:"#FFFFFF",interface:"#D9D9D9",struct:"#E5E5E5",enum:"#E5E5E5",typeParameter:"#D9D9D9",namespace:"#CCCCCC",module:"#B3B3B3",tag:"#E5E5E5",jsxTag:"#FFFFFF",tagAttribute:"#B3B3B3",tagAttributeValue:"#999999",boolean:"#CCCCCC",decorator:"#999999",label:"#808080",punctuation:"#666666",macro:"#D9D9D9",preprocessor:"#B3B3B3",regex:"#A6A6A6",url:"#CCCCCC",key:"#E5E5E5",exception:"#999999"},highlights:{diffAdded:"#E5E5E5",diffAddedBackground:"#ffffff18",diffRemoved:"#666666",diffRemovedBackground:"#ffffff0d",diffModified:"#B3B3B3",diffModifiedBackground:"#ffffff12",lineNumber:"#404040",lineNumberActive:"#E5E5E5"}},markdown:{heading1:"#FFFFFF",heading2:"#F2F2F2",heading3:"#E5E5E5",heading4:"#D9D9D9",link:"#CCCCCC",linkHover:"#FFFFFF",inlineCode:"#B3B3B3",inlineCodeBackground:"#1A1A1A",blockquote:"#808080",blockquoteBorder:"#333333",listMarker:"#99999999"},chat:{userMessage:"#E5E5E5",userMessageBackground:"#1A1A1A",assistantMessage:"#E5E5E5",assistantMessageBackground:"#000000",timestamp:"#808080",divider:"#333333"},tools:{background:"#0A0A0A50",border:"#4040409d",headerHover:"#33333350",icon:"#A6A6A6",title:"#E5E5E5",description:"#808080",edit:{added:"#E5E5E5",addedBackground:"#ffffff20",removed:"#666666",removedBackground:"#ffffff10",lineNumber:"#404040"}}},rf={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},nf={metadata:tf,colors:of,config:rf},af={id:"mono-light",name:"Mono",description:"A pure monochromatic theme - light variant with shades of grey",version:"1.0.0",variant:"light",tags:["light","monochrome","minimal","grayscale"]},sf={primary:{base:"#000000",hover:"#1A1A1A",active:"#333333",foreground:"#FFFFFF",muted:"#00000080",emphasis:"#000000"},surface:{background:"#FFFFFF",foreground:"#1A1A1A",muted:"#F5F5F5",mutedForeground:"#757575",elevated:"#FAFAFA",elevatedForeground:"#1A1A1A",overlay:"#00000020",subtle:"#F0F0F0"},interactive:{border:"#e3e3e3",borderHover:"#B3B3B3",borderFocus:"#000000",selection:"#00000015",selectionForeground:"#1A1A1A",focus:"#000000",focusRing:"#00000040",cursor:"#1A1A1A",hover:"#00000010",active:"#00000015"},status:{error:"#999999",errorForeground:"#FFFFFF",errorBackground:"#00000008",errorBorder:"#00000015",warning:"#666666",warningForeground:"#FFFFFF",warningBackground:"#0000000a",warningBorder:"#00000018",success:"#1A1A1A",successForeground:"#FFFFFF",successBackground:"#00000012",successBorder:"#00000020",info:"#595959",infoForeground:"#FFFFFF",infoBackground:"#0000000c",infoBorder:"#0000001a"},pr:{open:"#1A1A1A",draft:"#4D4D4D",blocked:"#999999",merged:"#333333",closed:"#666666"},syntax:{base:{background:"#F5F5F5",foreground:"#1A1A1A",comment:"#999999",keyword:"#000000",string:"#4D4D4D",number:"#666666",function:"#1A1A1A",variable:"#333333",type:"#262626",operator:"#808080"},tokens:{commentDoc:"#ABABAB",stringEscape:"#1A1A1A",keywordImport:"#000000",storageModifier:"#1A1A1A",functionCall:"#262626",method:"#333333",variableProperty:"#4D4D4D",variableOther:"#333333",variableGlobal:"#666666",variableLocal:"#E5E5E5",parameter:"#333333",constant:"#1A1A1A",class:"#000000",className:"#000000",interface:"#262626",struct:"#1A1A1A",enum:"#1A1A1A",typeParameter:"#262626",namespace:"#333333",module:"#4D4D4D",tag:"#1A1A1A",jsxTag:"#000000",tagAttribute:"#4D4D4D",tagAttributeValue:"#666666",boolean:"#333333",decorator:"#666666",label:"#808080",punctuation:"#999999",macro:"#262626",preprocessor:"#4D4D4D",regex:"#595959",url:"#333333",key:"#1A1A1A",exception:"#666666"},highlights:{diffAdded:"#1A1A1A",diffAddedBackground:"#00000012",diffRemoved:"#999999",diffRemovedBackground:"#00000008",diffModified:"#595959",diffModifiedBackground:"#0000000c",lineNumber:"#CCCCCC",lineNumberActive:"#1A1A1A"}},markdown:{heading1:"#000000",heading2:"#0D0D0D",heading3:"#1A1A1A",heading4:"#262626",link:"#333333",linkHover:"#000000",inlineCode:"#4D4D4D",inlineCodeBackground:"#f1f1f1",blockquote:"#808080",blockquoteBorder:"#D9D9D9",listMarker:"#66666699"},chat:{userMessage:"#1A1A1A",userMessageBackground:"#E5E5E5",assistantMessage:"#1A1A1A",assistantMessageBackground:"#FFFFFF",timestamp:"#808080",divider:"#D9D9D9"},tools:{background:"#F5F5F550",border:"#B3B3B380",headerHover:"#D9D9D9",icon:"#666666",title:"#1A1A1A",description:"#808080",edit:{added:"#1A1A1A",addedBackground:"#00000015",removed:"#999999",removedBackground:"#0000000a",lineNumber:"#CCCCCC"}}},cf={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},df={metadata:af,colors:sf,config:cf},lf={id:"vitesse-dark-dark",name:"Vitesse Dark",description:"Converted from VS Code theme",version:"1.0.0",variant:"dark",tags:["dark","converted","vscode"]},uf={primary:{base:"#4d9375",hover:"#4d9375",active:"#5cb08c",foreground:"#121212",muted:"#4d937580",emphasis:"#64bf98"},surface:{background:"#121212",foreground:"#dbd7caee",muted:"#171717",mutedForeground:"#c0beb99c",elevated:"#1a1a1a",elevatedForeground:"#dbd7caee",overlay:"#12121280",subtle:"#1e1e1e"},interactive:{border:"#313131",borderHover:"#3c3c3c",borderFocus:"#00000000",selection:"#eeeeee18",selectionForeground:"#dbd7caee",focus:"#00000000",focusRing:"#0000000050",cursor:"#CECDC3",hover:"#eeeeee14",active:"#eeeeee18"},status:{error:"#cb7676",errorForeground:"#121212",errorBackground:"#cb767620",errorBorder:"#cb767650",warning:"#d4976c",warningForeground:"#121212",warningBackground:"#d4976c20",warningBorder:"#d4976c50",success:"#4d9375",successForeground:"#121212",successBackground:"#4d937520",successBorder:"#4d937550",info:"#6394bf",infoForeground:"#121212",infoBackground:"#6394bf20",infoBorder:"#6394bf50"},pr:{open:"#4d9375",draft:"#747f74",blocked:"#d4976c",merged:"#6c43be",closed:"#cb7676"},syntax:{base:{background:"#121212",foreground:"#dbd7caee",comment:"#758575dd",keyword:"#4d9375",string:"#c98a7d",number:"#4C9A91",function:"#80a665",variable:"#bd976a",type:"#5d99a9",operator:"#cb7676"},tokens:{commentDoc:"#575653",stringEscape:"#dbd7caee",keywordImport:"#D14D41",storageModifier:"#4385BE",functionCall:"#80a665",method:"#879A39",variableProperty:"#b8a965",variableOther:"#879A39",class:"#6872ab",className:"#6872ab",interface:"#5d99a9",tag:"#4d9375",boolean:"#4d9375",url:"#c98a7d",key:"#b8a965"},highlights:{diffAdded:"#4d9375",diffAddedBackground:"#4d937520",diffRemoved:"#cb7676",diffRemovedBackground:"#cb767620",lineNumber:"#dedcd550",lineNumberActive:"#bfbaaa"}},markdown:{heading1:"#4d9375",heading2:"#4d9375",heading3:"#4d9375",heading4:"#dbd7caee",link:"#4d9375",linkHover:"#4d9375",inlineCode:"#80a665",inlineCodeBackground:"#121212",blockquote:"#dedcd550",blockquoteBorder:"#ffffff15",listMarker:"#4d937599"},chat:{userMessage:"#dbd7caee",userMessageBackground:"#252525",assistantMessage:"#dbd7caee",assistantMessageBackground:"#121212",timestamp:"#dedcd550",divider:"#ffffff15"},tools:{background:"#12121250",border:"#2d2c2c",headerHover:"#ffffff1550",icon:"#dedcd5a4",title:"#dbd7caee",description:"#e9e8e27f",edit:{added:"#4d9375",addedBackground:"#4d937520",removed:"#cb7676",removedBackground:"#cb767620",lineNumber:"#ffffff24"}}},ff={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},mf={metadata:lf,colors:uf,config:ff},gf={id:"vitesse-light-light",name:"Vitesse Light",description:"Converted from VS Code theme",version:"1.0.0",variant:"light",tags:["light","converted","vscode"]},pf={primary:{base:"#1c6b48",hover:"#1c6b48",active:"#228056",foreground:"#ffffff",muted:"#1c6b4880",emphasis:"#248b5e"},surface:{background:"#ffffff",foreground:"#2c2c28",muted:"#f2f0f0",mutedForeground:"#5b5c54cb",elevated:"#f7f7f7",elevatedForeground:"#393a34",overlay:"#ffffff80",subtle:"#f6f3f3"},interactive:{border:"#dbd8d8",borderHover:"#cbc7c7",borderFocus:"#635454b8",selection:"#22222218",selectionForeground:"#393a34",focus:"#00000000",focusRing:"#0000000050",cursor:"#CECDC3",hover:"#22222218",active:"#22222218"},status:{error:"#ab5959",errorForeground:"#ffffff",errorBackground:"#ab595920",errorBorder:"#ab595950",warning:"#a65e2b",warningForeground:"#ffffff",warningBackground:"#a65e2b20",warningBorder:"#a65e2b50",success:"#1e754f",successForeground:"#ffffff",successBackground:"#1e754f20",successBorder:"#1e754f50",info:"#296aa3",infoForeground:"#ffffff",infoBackground:"#296aa320",infoBorder:"#296aa350"},pr:{open:"#1e754f",draft:"#a0ada0",blocked:"#a65e2b",merged:"#5843be",closed:"#ab5959"},syntax:{base:{background:"#ffffff",foreground:"#393a34",comment:"#a0ada0",keyword:"#1e754f",string:"#b56959",number:"#2f798a",function:"#59873a",variable:"#b07d48",type:"#2e808f",operator:"#ab5959"},tokens:{commentDoc:"#575653",stringEscape:"#393a34",keywordImport:"#D14D41",storageModifier:"#4385BE",functionCall:"#59873a",method:"#879A39",variableProperty:"#998418",variableOther:"#879A39",class:"#5a6aa6",className:"#5a6aa6",interface:"#2e808f",tag:"#1e754f",boolean:"#1e754f",url:"#b56959",key:"#998418"},highlights:{diffAdded:"#1e754f",diffAddedBackground:"#1e754f20",diffRemoved:"#ab5959",diffRemovedBackground:"#ab595920",lineNumber:"#393a3450",lineNumberActive:"#4e4f47"}},markdown:{heading1:"#2c2c28",heading2:"#2c2c28",heading3:"#2c2c28",heading4:"#2c2c28",link:"#1e754f",linkHover:"#1c6b48",inlineCode:"#3a631e",inlineCodeBackground:"#f7f3f395",blockquote:"#2c2c2850",blockquoteBorder:"#00000015",listMarker:"#1c6b4899"},chat:{userMessage:"#2c2c28",userMessageBackground:"#f4f1f1",assistantMessage:"#393a34",assistantMessageBackground:"#ffffff",timestamp:"#393a3450",divider:"#00000015"},tools:{background:"#ffffff50",border:"#dbd7d7",headerHover:"#0000001550",icon:"#21221e86",title:"#393a34",description:"#404139b6",edit:{added:"#1e754f",addedBackground:"#1e754f20",removed:"#ab5959",removedBackground:"#ab595920",lineNumber:"#b9b6b6"}}},Ff={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},hf={metadata:gf,colors:pf,config:Ff},yf=[lu,gu,Td,xd,Ud,$d,Gd,Yd,el,nl,cl,fl,Fl,Al,Cl,Sl,Pl,Ol,Hl,ql,Vl,Xl,ou,su,yu,Bu,vu,Tu,xu,Uu,$u,Gu,Yu,ef,nf,df,mf,hf].map(e=>Kt(e)),bf={id:"flexoki-light",name:"Flexoki",description:"An inky color scheme for prose and code - light variant",version:"1.0.0",variant:"light",tags:["light","warm","natural","paper"]},Af={primary:{base:"#BC5215",hover:"#F9AE77",active:"#DA702C",foreground:"#fffdf4",muted:"#BC521580",emphasis:"#F9AE77"},surface:{background:"#fffdf4",foreground:"#100F0F",muted:"#f6f5ee",mutedForeground:"#686663",elevated:"#fbfaf2",elevatedForeground:"#100F0F",overlay:"#100F0F20",subtle:"#f7f4ec"},interactive:{border:"#e6e4db",borderHover:"#CECDC3",borderFocus:"#BC5215",selection:"#76736f30",selectionForeground:"#100F0F",focus:"#BC5215",focusRing:"#BC521540",cursor:"#100F0F",hover:"#76736f20",active:"#76736f20"},status:{error:"#AF3029",errorForeground:"#fffdf4",errorBackground:"#D14D4120",errorBorder:"#D14D4150",warning:"#BC5215",warningForeground:"#fffdf4",warningBackground:"#DA702C20",warningBorder:"#DA702C50",success:"#66800B",successForeground:"#fffdf4",successBackground:"#879A3920",successBorder:"#879A3950",info:"#205EA6",infoForeground:"#fffdf4",infoBackground:"#4385BE20",infoBorder:"#4385BE50"},pr:{open:"#66800B",draft:"#6F6E69",blocked:"#BC5215",merged:"#5E409D",closed:"#AF3029"},syntax:{base:{background:"#f6f5ee",foreground:"#100F0F",comment:"#6F6E69",keyword:"#205EA6",string:"#24837B",number:"#5E409D",function:"#BC5215",variable:"#100F0F",type:"#AD8301",operator:"#AF3029"},tokens:{commentDoc:"#B7B5AC",stringEscape:"#100F0F",keywordImport:"#AF3029",storageModifier:"#205EA6",functionCall:"#BC5215",method:"#66800B",variableProperty:"#205EA6",variableOther:"#66800B",variableGlobal:"#A02F6F",variableLocal:"#E6E4D9",parameter:"#100F0F",constant:"#100F0F",class:"#BC5215",className:"#BC5215",interface:"#AD8301",struct:"#BC5215",enum:"#BC5215",typeParameter:"#BC5215",namespace:"#AD8301",module:"#AF3029",tag:"#205EA6",jsxTag:"#A02F6F",tagAttribute:"#AD8301",tagAttributeValue:"#24837B",boolean:"#AD8301",decorator:"#AD8301",label:"#A02F6F",punctuation:"#6F6E69",macro:"#205EA6",preprocessor:"#A02F6F",regex:"#24837B",url:"#205EA6",key:"#BC5215",exception:"#A02F6F"},highlights:{diffAdded:"#66800B",diffAddedBackground:"#879A3920",diffRemoved:"#AF3029",diffRemovedBackground:"#D14D4120",diffModified:"#205EA6",diffModifiedBackground:"#4385BE20",lineNumber:"#CECDC3",lineNumberActive:"#100F0F"}},markdown:{heading1:"#100F0F",heading2:"#100F0F",heading3:"#100F0F",heading4:"#100F0F",link:"#205EA6",linkHover:"#4385BE",inlineCode:"#24837B",inlineCodeBackground:"#f6f5ee",blockquote:"#6F6E69",blockquoteBorder:"#DAD8CE",listMarker:"#AD830199"},chat:{userMessage:"#100F0F",userMessageBackground:"#f7f4ec",assistantMessage:"#100F0F",assistantMessageBackground:"#fffdf4",timestamp:"#6F6E69",divider:"#DAD8CE"},tools:{background:"#f6f5ee50",border:"#b4b2a980",headerHover:"#DAD8CE",icon:"#6F6E69",title:"#100F0F",description:"#6F6E69",edit:{added:"#66800B",addedBackground:"#66800B25",removed:"#AF3029",removedBackground:"#AF302925",lineNumber:"#CECDC3"}}},Ef={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},Bf={metadata:bf,colors:Af,config:Ef},wf={id:"flexoki-dark",name:"Flexoki",description:"An inky color scheme for prose and code - dark variant",version:"1.0.0",variant:"dark",tags:["dark","warm","natural","ink"]},Cf={primary:{base:"#DA702C",hover:"#DA702C",active:"#F9AE77",foreground:"#171515",muted:"#DA702C80",emphasis:"#F9AE77"},surface:{background:"#171515",foreground:"#CECDC3",muted:"#1C1B1A",mutedForeground:"#807e79",elevated:"#1c1a19",elevatedForeground:"#CECDC3",overlay:"#00000080",subtle:"#1e1d1c"},interactive:{border:"#2b2a28",borderHover:"#403E3C",borderFocus:"#DA702C",selection:"#f4f4f41f",selectionForeground:"#CECDC3",focus:"#DA702C",focusRing:"#DA702C50",cursor:"#CECDC3",hover:"#ffffff18",active:"#ffffff1f"},status:{error:"#D14D41",errorForeground:"#171515",errorBackground:"#AF302920",errorBorder:"#AF302950",warning:"#DA702C",warningForeground:"#171515",warningBackground:"#BC521520",warningBorder:"#BC521550",success:"#A0AF54",successForeground:"#171515",successBackground:"#66800B20",successBorder:"#66800B50",info:"#4385BE",infoForeground:"#171515",infoBackground:"#205EA620",infoBorder:"#205EA650"},pr:{open:"#A0AF54",draft:"#878580",blocked:"#DA702C",merged:"#8B7EC8",closed:"#D14D41"},syntax:{base:{background:"#1C1B1A",foreground:"#CECDC3",comment:"#878580",keyword:"#4385BE",string:"#3AA99F",number:"#8B7EC8",function:"#DA702C",variable:"#CECDC3",type:"#D0A215",operator:"#D14D41"},tokens:{commentDoc:"#575653",stringEscape:"#CECDC3",keywordImport:"#D14D41",storageModifier:"#4385BE",functionCall:"#DA702C",method:"#879A39",variableProperty:"#4385BE",variableOther:"#879A39",variableGlobal:"#CE5D97",variableLocal:"#282726",parameter:"#CECDC3",constant:"#CECDC3",class:"#DA702C",className:"#DA702C",interface:"#D0A215",struct:"#DA702C",enum:"#DA702C",typeParameter:"#DA702C",namespace:"#D0A215",module:"#D14D41",tag:"#4385BE",jsxTag:"#CE5D97",tagAttribute:"#D0A215",tagAttributeValue:"#3AA99F",boolean:"#D0A215",decorator:"#D0A215",label:"#CE5D97",punctuation:"#878580",macro:"#4385BE",preprocessor:"#CE5D97",regex:"#3AA99F",url:"#4385BE",key:"#DA702C",exception:"#CE5D97"},highlights:{diffAdded:"#879A39",diffAddedBackground:"#66800B20",diffRemoved:"#D14D41",diffRemovedBackground:"#AF302920",diffModified:"#4385BE",diffModifiedBackground:"#205EA620",lineNumber:"#403E3C",lineNumberActive:"#CECDC3"}},markdown:{heading1:"#fbf9e6",heading2:"#e6e4d2",heading3:"#CECDC3",heading4:"#CECDC3",link:"#4385BE",linkHover:"#205EA6",inlineCode:"#A0AF53",inlineCodeBackground:"#1C1B1A",blockquote:"#878580",blockquoteBorder:"#343331",listMarker:"#D0A21599"},chat:{userMessage:"#CECDC3",userMessageBackground:"#27180E",assistantMessage:"#CECDC3",assistantMessageBackground:"#171515",timestamp:"#878580",divider:"#343331"},tools:{background:"#1C1B1A50",border:"#42403e9d",headerHover:"#34333150",icon:"#aca7a1",title:"#CECDC3",description:"#878580",edit:{added:"#879A39",addedBackground:"#66800B25",removed:"#D14D41",removedBackground:"#AF302925",lineNumber:"#403E3C"}}},kf={fonts:{sans:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',mono:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',heading:'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace'},transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},vf={metadata:wf,colors:Cf,config:kf},Df={id:"pichamber-light",name:"PiChamber",description:"The PiChamber signature - crisp white surfaces with neutral typography and clean accents, inspired by Comet (light variant)",author:"PiChamber",version:"1.0.0",variant:"light",tags:["light","brand","neutral","comet"]},Sf={primary:{base:"#1e1e24",hover:"#0a0a0d",active:"#2d2d34",foreground:"#fafafc",muted:"#1e1e2480",emphasis:"#0a0a0d"},surface:{background:"#fcfcfd",foreground:"#2d2d34",muted:"#f3f3f6",mutedForeground:"#686875",elevated:"#ffffff",elevatedForeground:"#2d2d34",overlay:"#00000015",subtle:"#eaeaf0"},interactive:{border:"#e2e2e8",borderHover:"#cbcbda",borderFocus:"#4f46e5",selection:"#00000014",selectionForeground:"#2d2d34",focus:"#4f46e5",focusRing:"#4f46e530",cursor:"#2d2d34",hover:"#00000008",active:"#00000010"},status:{error:"#dc2626",errorForeground:"#ffffff",errorBackground:"#dc262614",errorBorder:"#dc262635",warning:"#d97706",warningForeground:"#ffffff",warningBackground:"#d9770614",warningBorder:"#d9770635",success:"#059669",successForeground:"#ffffff",successBackground:"#05966914",successBorder:"#05966935",info:"#4f46e5",infoForeground:"#ffffff",infoBackground:"#4f46e514",infoBorder:"#4f46e535"},pr:{open:"#059669",draft:"#686875",blocked:"#d97706",merged:"#6366f1",closed:"#dc2626"},syntax:{base:{background:"#f3f3f6",foreground:"#2d2d34",comment:"#686875",keyword:"#435278",string:"#0f5b41",number:"#7c451e",function:"#3b49df",variable:"#2d2d34",type:"#7c451e",operator:"#2d2d34"},tokens:{commentDoc:"#686875",stringEscape:"#8d2f58",keywordImport:"#8d2f58",storageModifier:"#435278",functionCall:"#3b49df",method:"#3b49df",variableProperty:"#7c451e",variableOther:"#2d2d34",variableGlobal:"#0f5b41",variableLocal:"#2d2d34",parameter:"#2d2d34",constant:"#0f5b41",class:"#7c451e",className:"#7c451e",interface:"#7c451e",struct:"#7c451e",enum:"#7c451e",typeParameter:"#7c451e",namespace:"#7c451e",module:"#8d2f58",tag:"#8d2f58",jsxTag:"#8d2f58",tagAttribute:"#7c451e",tagAttributeValue:"#0f5b41",boolean:"#7c451e",decorator:"#3b49df",label:"#7c451e",punctuation:"#686875",macro:"#8d2f58",preprocessor:"#8d2f58",regex:"#0f5b41",url:"#3b49df",key:"#7c451e",exception:"#dc2626"},highlights:{diffAdded:"#059669",diffAddedBackground:"#05966918",diffRemoved:"#dc2626",diffRemovedBackground:"#dc262618",diffModified:"#4f46e5",diffModifiedBackground:"#4f46e514",lineNumber:"#9ca3af",lineNumberActive:"#2d2d34"}},markdown:{heading1:"#2d2d34",heading2:"#2d2d34",heading3:"#2d2d34",heading4:"#2d2d34",link:"#4f46e5",linkHover:"#3730a3",inlineCode:"#2d2d34",inlineCodeBackground:"#00000008",blockquote:"#686875",blockquoteBorder:"#e2e2e8",listMarker:"#4f46e590"},chat:{userMessage:"#2d2d34",userMessageBackground:"#ededf2",assistantMessage:"#2d2d34",assistantMessageBackground:"#fcfcfd",timestamp:"#8c8c9a",divider:"#e2e2e8"},tools:{background:"#f3f3f680",border:"#e2e2e8",headerHover:"#0000000d",icon:"#686875",title:"#2d2d34",description:"#686875",edit:{added:"#059669",addedBackground:"#05966920",removed:"#dc2626",removedBackground:"#dc262620",lineNumber:"#9ca3af"}}},Mf={transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},Tf={metadata:Df,colors:Sf,config:Mf},Rf={id:"pichamber-dark",name:"PiChamber",description:"The PiChamber signature - soft obsidian neutral surfaces with balanced contrast, inspired by Comet (dark variant)",author:"PiChamber",version:"1.0.0",variant:"dark",tags:["dark","brand","neutral","comet"]},Pf={primary:{base:"#dcdce0",hover:"#f4f4f6",active:"#c8c8cc",foreground:"#0b0b0e",muted:"#dcdce080",emphasis:"#f4f4f6"},surface:{background:"#0f0f12",foreground:"#dcdce0",muted:"#0b0b0e",mutedForeground:"#8e8e98",elevated:"#18181d",elevatedForeground:"#dcdce0",overlay:"#000000b3",subtle:"#141418"},interactive:{border:"#222228",borderHover:"#34343d",borderFocus:"#818cf8",selection:"#ffffff24",selectionForeground:"#dcdce0",focus:"#818cf8",focusRing:"#818cf840",cursor:"#dcdce0",hover:"#ffffff0d",active:"#ffffff17"},status:{error:"#f87171",errorForeground:"#000000",errorBackground:"#f8717120",errorBorder:"#f8717145",warning:"#fbbf24",warningForeground:"#000000",warningBackground:"#fbbf2420",warningBorder:"#fbbf2445",success:"#34d399",successForeground:"#000000",successBackground:"#34d39920",successBorder:"#34d39945",info:"#818cf8",infoForeground:"#000000",infoBackground:"#818cf820",infoBorder:"#818cf845"},pr:{open:"#34d399",draft:"#8e8e98",blocked:"#fbbf24",merged:"#a5b4fc",closed:"#f87171"},syntax:{base:{background:"#0f0f12",foreground:"#dcdce0",comment:"#71717e",keyword:"#818cf8",string:"#34d399",number:"#fbbf24",function:"#818cf8",variable:"#dcdce0",type:"#fbbf24",operator:"#dcdce0"},tokens:{commentDoc:"#71717e",stringEscape:"#f472b6",keywordImport:"#f472b6",storageModifier:"#818cf8",functionCall:"#818cf8",method:"#818cf8",variableProperty:"#fbbf24",variableOther:"#dcdce0",variableGlobal:"#34d399",variableLocal:"#dcdce0",parameter:"#dcdce0",constant:"#34d399",class:"#fbbf24",className:"#fbbf24",interface:"#fbbf24",struct:"#fbbf24",enum:"#fbbf24",typeParameter:"#fbbf24",namespace:"#fbbf24",module:"#f472b6",tag:"#f472b6",jsxTag:"#f472b6",tagAttribute:"#fbbf24",tagAttributeValue:"#34d399",boolean:"#fbbf24",decorator:"#818cf8",label:"#fbbf24",punctuation:"#8e8e98",macro:"#f472b6",preprocessor:"#f472b6",regex:"#34d399",url:"#818cf8",key:"#fbbf24",exception:"#f87171"},highlights:{diffAdded:"#34d399",diffAddedBackground:"#34d3991c",diffRemoved:"#f87171",diffRemovedBackground:"#f871711c",diffModified:"#818cf8",diffModifiedBackground:"#818cf81c",lineNumber:"#34343d",lineNumberActive:"#dcdce0"}},markdown:{heading1:"#dcdce0",heading2:"#dcdce0",heading3:"#dcdce0",heading4:"#dcdce0",link:"#818cf8",linkHover:"#a5b4fc",inlineCode:"#a5b4fc",inlineCodeBackground:"#818cf81f",blockquote:"#8e8e98",blockquoteBorder:"#222228",listMarker:"#818cf880"},chat:{userMessage:"#dcdce0",userMessageBackground:"#18181d",assistantMessage:"#dcdce0",assistantMessageBackground:"#0f0f12",timestamp:"#666672",divider:"#222228"},tools:{background:"#18181d80",border:"#222228",headerHover:"#ffffff0d",icon:"#8e8e98",title:"#dcdce0",description:"#8e8e98",edit:{added:"#34d399",addedBackground:"#34d39920",removed:"#f87171",removedBackground:"#f8717120",lineNumber:"#34343d"}}},If={transitions:{fast:"150ms ease",normal:"250ms ease",slow:"350ms ease"}},xf={metadata:Rf,colors:Pf,config:If},Wa=Kt(Bf),_f=Kt(vf),Of=Kt(Tf),Nf=Kt(xf),Va="pichamber-light",Ja="pichamber-dark",ar=[Of,Nf,Wa,_f,...yf.filter(e=>e.metadata.id!=="pichamber-light"&&e.metadata.id!=="pichamber-dark"&&e.metadata.id!=="pichamber-light"&&e.metadata.id!=="pichamber-dark")];function Uf(e){const t=e==="app-light"||e==="pichamber-light"?"pichamber-light":e==="app-dark"||e==="pichamber-dark"?"pichamber-dark":e;return ar.find(o=>o.metadata.id===t)}function hF(e){const t=e?"dark":"light",r=Uf(e?Ja:Va);return r&&r.metadata.variant===t?r:ar.find(n=>n.metadata.variant===t)??ar[0]??Wa}const Lf=[{id:"finder",label:"Finder",appName:"Finder"},{id:"terminal",label:"Terminal",appName:"Terminal"},{id:"iterm2",label:"iTerm2",appName:"iTerm"},{id:"ghostty",label:"Ghostty",appName:"Ghostty"},{id:"vscode",label:"VS Code",appName:"Visual Studio Code"},{id:"vscode-insiders",label:"VS Code Insiders",appName:"Visual Studio Code - Insiders"},{id:"intellij",label:"IntelliJ",appName:"IntelliJ IDEA"},{id:"visual-studio",label:"Visual Studio",appName:"Visual Studio"},{id:"cursor",label:"Cursor",appName:"Cursor"},{id:"android-studio",label:"Android Studio",appName:"Android Studio"},{id:"pycharm",label:"PyCharm",appName:"PyCharm"},{id:"xcode",label:"Xcode",appName:"Xcode"},{id:"sublime-text",label:"Sublime",appName:"Sublime Text"},{id:"webstorm",label:"WebStorm",appName:"WebStorm"},{id:"rider",label:"Rider",appName:"Rider"},{id:"zed",label:"Zed",appName:"Zed"},{id:"phpstorm",label:"PhpStorm",appName:"PhpStorm"},{id:"eclipse",label:"Eclipse",appName:"Eclipse"},{id:"windsurf",label:"Windsurf",appName:"Windsurf"},{id:"vscodium",label:"VSCodium",appName:"VSCodium"},{id:"rustrover",label:"RustRover",appName:"RustRover"},{id:"kiro",label:"Kiro",appName:"Kiro"},{id:"antigravity",label:"Antigravity",appName:"Antigravity"},{id:"trae",label:"Trae",appName:"Trae"}],Hf="finder",yF=new Set(["finder","terminal"]),jf=e=>{if(typeof window>"u")return e;const t=window.__PICHAMBER_PLATFORM__;if(e.id==="finder"){if(t==="win32")return{...e,label:"Explorer",appName:"File Explorer"};if(t==="linux")return{...e,label:"File Manager"}}return e},bF=e=>{if(!e)return null;const t=Lf.find(o=>o.id===e)??null;return t?jf(t):null},$f=e=>{if(!(typeof window>"u")&&!(typeof window.__PICHAMBER_HOME__=="string"&&window.__PICHAMBER_HOME__.length>0))try{window.__PICHAMBER_HOME__=e}catch{}},Sn="pichamber.settingsMirror.v2.index",zf="pichamber.settingsMirror.v2:",qf=5,Mn=e=>`${zf}${encodeURIComponent(e)}`,Ve=(e,t)=>{t===null?localStorage.removeItem(e):localStorage.setItem(e,t)},Kf=(e,t)=>{const o={themeId:e.themeId,themeVariant:e.themeVariant,lightThemeId:e.lightThemeId,darkThemeId:e.darkThemeId,useSystemTheme:e.useSystemTheme,lastDirectory:e.lastDirectory,homeDirectory:e.homeDirectory,projects:e.projects,activeProjectId:e.activeProjectId,pinnedDirectories:e.pinnedDirectories,gitmojiEnabled:e.gitmojiEnabled,directoryShowHidden:e.directoryShowHidden,filesViewShowGitignored:e.filesViewShowGitignored,openInAppId:e.openInAppId,pwaAppName:e.pwaAppName,mobileKeyboardMode:e.mobileKeyboardMode,openCodeUpdateToastDismissedVersion:e.openCodeUpdateToastDismissedVersion};localStorage.setItem(Mn(t),JSON.stringify(o));let r=[];try{const a=JSON.parse(localStorage.getItem(Sn)??"[]");Array.isArray(a)&&(r=a.filter(s=>typeof s=="string"))}catch{r=[]}const n=[t,...r.filter(a=>a!==t)].slice(0,qf);for(const a of r)n.includes(a)||localStorage.removeItem(Mn(a));localStorage.setItem(Sn,JSON.stringify(n))},Gf=e=>{if(!(typeof window>"u")){if(Kf(e,O()),Ve("selectedThemeId",e.themeId||null),Ve("selectedThemeVariant",e.themeVariant||null),Ve("lightThemeId",e.lightThemeId||null),Ve("darkThemeId",e.darkThemeId||null),Ve("useSystemTheme",typeof e.useSystemTheme=="boolean"?String(e.useSystemTheme):null),Ve("lastDirectory",e.lastDirectory||null),e.homeDirectory?(localStorage.setItem("homeDirectory",e.homeDirectory),$f(e.homeDirectory)):localStorage.removeItem("homeDirectory"),Array.isArray(e.projects)&&e.projects.length>0?localStorage.setItem("projects",JSON.stringify(e.projects)):localStorage.removeItem("projects"),e.activeProjectId?localStorage.setItem("activeProjectId",e.activeProjectId):localStorage.removeItem("activeProjectId"),Array.isArray(e.pinnedDirectories)&&e.pinnedDirectories.length>0?localStorage.setItem("pinnedDirectories",JSON.stringify(e.pinnedDirectories)):localStorage.removeItem("pinnedDirectories"),Array.isArray(e.projects)&&e.projects.length>0){const t=e.projects.filter(o=>o.sidebarCollapsed===!0).map(o=>o.id).filter(o=>typeof o=="string"&&o.length>0);t.length>0?localStorage.setItem("oc.sessions.projectCollapse",JSON.stringify(t)):localStorage.removeItem("oc.sessions.projectCollapse")}else localStorage.removeItem("oc.sessions.projectCollapse");if(typeof e.gitmojiEnabled=="boolean"?localStorage.setItem("gitmojiEnabled",String(e.gitmojiEnabled)):localStorage.removeItem("gitmojiEnabled"),typeof e.directoryShowHidden=="boolean"?localStorage.setItem("directoryTreeShowHidden",e.directoryShowHidden?"true":"false"):localStorage.removeItem("directoryTreeShowHidden"),typeof e.filesViewShowGitignored=="boolean"?localStorage.setItem("filesViewShowGitignored",e.filesViewShowGitignored?"true":"false"):localStorage.removeItem("filesViewShowGitignored"),Ve("openInAppId",typeof e.openInAppId=="string"&&e.openInAppId.length>0?e.openInAppId:null),typeof e.pwaAppName=="string"){const t=Na(e.pwaAppName,"");t.length>0?localStorage.setItem(zo,t):localStorage.removeItem(zo)}else localStorage.removeItem(zo);if(Vc(e.mobileKeyboardMode),typeof e.openCodeUpdateToastDismissedVersion=="string"){const t=e.openCodeUpdateToastDismissedVersion.trim();t?localStorage.setItem("opencode-update-toast-dismissed-version",t):localStorage.removeItem("opencode-update-toast-dismissed-version")}else localStorage.removeItem("opencode-update-toast-dismissed-version")}},sr=e=>{typeof window>"u"||window.dispatchEvent(new CustomEvent("pichamber:settings-synced",{detail:e}))};let Tn="idle",no=null;const Wf=new Set,AF=e=>{Ce(e)},Ce=e=>{no&&(clearTimeout(no),no=null);const t=e==="saved"?"idle":e;t!==Tn&&(Tn=t,Wf.forEach(o=>o())),t==="error"&&(no=setTimeout(()=>Ce("saved"),6e3)),!(typeof window>"u")&&window.dispatchEvent(new CustomEvent("pichamber:settings-save-state",{detail:e}))},Vf=e=>{if(!Array.isArray(e))return;const t=[],o=new Set;for(const r of e){if(!r||typeof r!="object")continue;const n=r,a=typeof n.id=="string"?n.id.trim():"",s=typeof n.label=="string"?n.label.trim():"",i=typeof n.source=="string"?n.source.trim():"",c=typeof n.subpath=="string"?n.subpath.trim():"",d=typeof n.gitIdentityId=="string"?n.gitIdentityId.trim():"";!a||!s||!i||o.has(a)||(o.add(a),t.push({id:a,label:s,source:i,...c?{subpath:c}:{},...d?{gitIdentityId:d}:{}}))}return t},Jf=e=>{if(!e||typeof e!="object"||Array.isArray(e))return;const t={};for(const[o,r]of Object.entries(e)){const n=typeof o=="string"?o.trim():"",a=typeof r=="string"?r.trim():"";!n||!a||(t[n]=a)}return t},Yf=(e,t)=>{const o=Object.entries(e),r=Object.entries(t);return o.length!==r.length?!1:o.every(([n,a])=>t[n]===a)},Go=(e,t)=>e.length===t.length&&e.every((o,r)=>o.providerID===t[r]?.providerID&&o.modelID===t[r]?.modelID),ir=(e,t)=>e.length===t.length&&e.every((o,r)=>o===t[r]),cr=e=>{if(Array.isArray(e))return Array.from(new Set(e.filter(t=>typeof t=="string"&&t.length>0)))},Qf=e=>{if(!e||typeof e!="object"||Array.isArray(e))return;const t={};for(const[o,r]of Object.entries(e)){if(!o||!Array.isArray(r))continue;const n=cr(r);n&&n.length>0&&(t[o]=n.slice(0,5))}return Object.keys(t).length>0?t:void 0},Xf=(e,t)=>{const o=Object.keys(e);return o.length!==Object.keys(t).length?!1:o.every(r=>Array.isArray(t[r])&&ir(e[r],t[r]))},Zf=/^#(?:[\da-fA-F]{3}|[\da-fA-F]{6})$/,em=e=>{if(typeof e!="string")return null;const t=e.trim();return t&&Zf.test(t)?t.toLowerCase():null},tm=e=>{if(!Array.isArray(e))return;const t=[],o=new Set,r=new Set;for(const n of e){if(!n||typeof n!="object")continue;const a=n,s=typeof a.path=="string"?a.path.trim():"";if(!s)continue;const i=s==="/"?s:s.replace(/\\/g,"/").replace(/\/+$/,"");if(!i)continue;const c=Pc(i);if(!c||o.has(c)||r.has(i))continue;o.add(c),r.add(i);const d={id:c,path:i};if(typeof a.label=="string"&&a.label.trim().length>0&&(d.label=a.label.trim()),typeof a.icon=="string"&&a.icon.trim().length>0&&(d.icon=a.icon.trim()),a.iconImage===null)d.iconImage=null;else if(a.iconImage&&typeof a.iconImage=="object"){const l=a.iconImage,u=typeof l.mime=="string"?l.mime.trim():"",g=typeof l.updatedAt=="number"&&Number.isFinite(l.updatedAt)?Math.max(0,Math.round(l.updatedAt)):0,m=l.source==="custom"||l.source==="auto"?l.source:null;u&&g>0&&m&&(d.iconImage={mime:u,updatedAt:g,source:m})}if(typeof a.color=="string"&&a.color.trim().length>0&&(d.color=a.color.trim()),a.iconBackground===null)d.iconBackground=null;else{const l=em(a.iconBackground);l&&(d.iconBackground=l)}typeof a.addedAt=="number"&&Number.isFinite(a.addedAt)&&a.addedAt>=0&&(d.addedAt=a.addedAt),typeof a.lastOpenedAt=="number"&&Number.isFinite(a.lastOpenedAt)&&a.lastOpenedAt>=0&&(d.lastOpenedAt=a.lastOpenedAt),typeof a.sidebarCollapsed=="boolean"&&(d.sidebarCollapsed=a.sidebarCollapsed),t.push(d)}return t.length>0?t:void 0},om=e=>{if(!Array.isArray(e))return;const t=[],o=new Set,r=new Set;for(const n of e){if(!n||typeof n!="object")continue;const a=n,s=typeof a.id=="string"?a.id.trim():"",i=typeof a.name=="string"?a.name.trim():"",c=typeof a.hostname=="string"?a.hostname.trim().toLowerCase():"";!s||!i||!c||o.has(s)||r.has(c)||(o.add(s),r.add(c),t.push({id:s,name:i,hostname:c}))}return t},rm=e=>{if(!e||typeof e!="object"||Array.isArray(e))return;const t=e,o={};for(const[r,n]of Object.entries(t)){const a=r.trim(),s=typeof n=="string"?n.trim():"";!a||!s||(o[a]=s)}return Object.keys(o).length>0?o:void 0},Wo=(e,t)=>{if(!Array.isArray(e))return;const o=[],r=new Set;for(const n of e){if(!n||typeof n!="object")continue;const a=n,s=typeof a.providerID=="string"?a.providerID.trim():"",i=typeof a.modelID=="string"?a.modelID.trim():"";if(!s||!i)continue;const c=`${s}/${i}`;if(!r.has(c)&&(r.add(c),o.push({providerID:s,modelID:i}),o.length>=t))break}return o},Ya=()=>{const e=ie.persist;if(e&&typeof e=="object")return e},Qa=()=>wa()?.settings??null,nm=e=>{const t=ie.getInitialState();return{useSystemTheme:!0,lightThemeId:Va,darkThemeId:Ja,openInAppId:Hf,showReasoningTraces:t.showReasoningTraces,collapsibleThinkingBlocks:t.collapsibleThinkingBlocks,collapseThinkingByDefault:t.collapseThinkingByDefault,autoDeleteEnabled:t.autoDeleteEnabled,autoSaveEnabled:t.autoSaveEnabled,autoDeleteAfterDays:t.autoDeleteAfterDays,sessionRetentionAction:t.sessionRetentionAction,followUpBehavior:Lr,showDeletionDialog:t.showDeletionDialog,nativeNotificationsEnabled:t.nativeNotificationsEnabled,notificationMode:t.notificationMode,notifyOnSubtasks:t.notifyOnSubtasks,notifyOnCompletion:t.notifyOnCompletion,notifyOnError:t.notifyOnError,notifyOnQuestion:t.notifyOnQuestion,notificationTemplates:t.notificationTemplates,summarizeLastMessage:t.summarizeLastMessage,summaryThreshold:t.summaryThreshold,summaryLength:t.summaryLength,maxLastMessageLength:t.maxLastMessageLength,inputSpellcheckEnabled:t.inputSpellcheckEnabled,showOpenCodeUpdateNotifications:t.showOpenCodeUpdateNotifications,showToolFileIcons:t.showToolFileIcons,codeBlockLineWrap:t.codeBlockLineWrap,showTurnChangedFiles:t.showTurnChangedFiles,showExpandedBashTools:t.showExpandedBashTools,showExpandedEditTools:t.showExpandedEditTools,timeFormatPreference:t.timeFormatPreference,weekStartPreference:t.weekStartPreference,desktopWindowControlsPosition:t.desktopWindowControlsPosition,desktopWindowControlsStyle:t.desktopWindowControlsStyle,mermaidRenderingMode:t.mermaidRenderingMode,userMessageRenderingMode:t.userMessageRenderingMode,collapsibleUserMessages:t.collapsibleUserMessages,messageStreamTransport:"auto",stickyUserHeader:t.stickyUserHeader,promptNavigatorEnabled:t.promptNavigatorEnabled,expandedEditorToolbar:t.expandedEditorToolbar,wideChatLayoutEnabled:t.wideChatLayoutEnabled,showSplitAssistantMessageActions:t.showSplitAssistantMessageActions,draftStartersVisible:t.draftStartersVisible,reportUsage:t.reportUsage,fontSize:t.fontSize,terminalFontSize:t.terminalFontSize,terminalShell:t.terminalShell,terminalLoginShells:t.terminalLoginShells,editorFontSize:t.editorFontSize,uiFont:t.uiFont,monoFont:t.monoFont,padding:t.padding,cornerRadius:t.cornerRadius,inputBarOffset:t.inputBarOffset,shortcutOverrides:t.shortcutOverrides,mobileKeyboardMode:"resize-content",favoriteModels:t.favoriteModels,hiddenModels:t.hiddenModels,collapsedModelProviders:t.collapsedModelProviders,recentModels:t.recentModels,recentAgents:t.recentAgents,recentEfforts:t.recentEfforts,diffLayoutPreference:t.diffLayoutPreference,gitChangesViewMode:t.gitChangesViewMode,directoryShowHidden:!0,filesViewShowGitignored:!1,...e}},dr=e=>{const t=ie.getState(),o=typeof window<"u"?window.__zustand_config_store__?.getState?.()??null:null,r=md.getState();if(typeof e.showReasoningTraces=="boolean"&&e.showReasoningTraces!==t.showReasoningTraces&&t.setShowReasoningTraces(e.showReasoningTraces),typeof e.collapsibleThinkingBlocks=="boolean"&&e.collapsibleThinkingBlocks!==t.collapsibleThinkingBlocks&&t.setCollapsibleThinkingBlocks(e.collapsibleThinkingBlocks),typeof e.collapseThinkingByDefault=="boolean"&&e.collapseThinkingByDefault!==t.collapseThinkingByDefault&&t.setCollapseThinkingByDefault(e.collapseThinkingByDefault),typeof e.autoDeleteEnabled=="boolean"&&e.autoDeleteEnabled!==t.autoDeleteEnabled&&t.setAutoDeleteEnabled(e.autoDeleteEnabled),typeof e.autoSaveEnabled=="boolean"&&e.autoSaveEnabled!==t.autoSaveEnabled&&t.setAutoSaveEnabled(e.autoSaveEnabled),typeof e.autoDeleteAfterDays=="number"&&Number.isFinite(e.autoDeleteAfterDays)){const a=Math.max(1,Math.min(365,e.autoDeleteAfterDays));a!==t.autoDeleteAfterDays&&t.setAutoDeleteAfterDays(a)}(e.sessionRetentionAction==="archive"||e.sessionRetentionAction==="delete")&&e.sessionRetentionAction!==t.sessionRetentionAction&&t.setSessionRetentionAction(e.sessionRetentionAction);let n=null;if(Hr(e.followUpBehavior)?n=e.followUpBehavior:typeof e.queueModeEnabled=="boolean"&&(n=jr(void 0,e.queueModeEnabled)),n&&n!==r.followUpBehavior&&r.setFollowUpBehavior(n),typeof e.showDeletionDialog=="boolean"&&e.showDeletionDialog!==t.showDeletionDialog&&t.setShowDeletionDialog(e.showDeletionDialog),typeof e.nativeNotificationsEnabled=="boolean"&&e.nativeNotificationsEnabled!==t.nativeNotificationsEnabled&&t.setNativeNotificationsEnabled(e.nativeNotificationsEnabled),typeof e.notificationMode=="string"&&(e.notificationMode==="always"||e.notificationMode==="hidden-only")&&e.notificationMode!==t.notificationMode&&t.setNotificationMode(e.notificationMode),typeof e.notifyOnSubtasks=="boolean"&&e.notifyOnSubtasks!==t.notifyOnSubtasks&&t.setNotifyOnSubtasks(e.notifyOnSubtasks),typeof e.notifyOnCompletion=="boolean"&&e.notifyOnCompletion!==t.notifyOnCompletion&&t.setNotifyOnCompletion(e.notifyOnCompletion),typeof e.notifyOnError=="boolean"&&e.notifyOnError!==t.notifyOnError&&t.setNotifyOnError(e.notifyOnError),typeof e.notifyOnQuestion=="boolean"&&e.notifyOnQuestion!==t.notifyOnQuestion&&t.setNotifyOnQuestion(e.notifyOnQuestion),e.notificationTemplates&&typeof e.notificationTemplates=="object"&&t.setNotificationTemplates(e.notificationTemplates),typeof e.summarizeLastMessage=="boolean"&&e.summarizeLastMessage!==t.summarizeLastMessage&&t.setSummarizeLastMessage(e.summarizeLastMessage),typeof e.summaryThreshold=="number"&&Number.isFinite(e.summaryThreshold)&&t.setSummaryThreshold(e.summaryThreshold),typeof e.summaryLength=="number"&&Number.isFinite(e.summaryLength)&&t.setSummaryLength(e.summaryLength),typeof e.maxLastMessageLength=="number"&&Number.isFinite(e.maxLastMessageLength)&&t.setMaxLastMessageLength(e.maxLastMessageLength),typeof e.inputSpellcheckEnabled=="boolean"&&e.inputSpellcheckEnabled!==t.inputSpellcheckEnabled&&t.setInputSpellcheckEnabled(e.inputSpellcheckEnabled),typeof e.showOpenCodeUpdateNotifications=="boolean"&&e.showOpenCodeUpdateNotifications!==t.showOpenCodeUpdateNotifications&&t.setShowOpenCodeUpdateNotifications(e.showOpenCodeUpdateNotifications),typeof e.showToolFileIcons=="boolean"&&e.showToolFileIcons!==t.showToolFileIcons&&t.setShowToolFileIcons(e.showToolFileIcons),typeof e.codeBlockLineWrap=="boolean"&&e.codeBlockLineWrap!==t.codeBlockLineWrap&&t.setCodeBlockLineWrap(e.codeBlockLineWrap),typeof e.showTurnChangedFiles=="boolean"&&e.showTurnChangedFiles!==t.showTurnChangedFiles&&t.setShowTurnChangedFiles(e.showTurnChangedFiles),typeof e.showExpandedBashTools=="boolean"&&e.showExpandedBashTools!==t.showExpandedBashTools&&t.setShowExpandedBashTools(e.showExpandedBashTools),typeof e.showExpandedEditTools=="boolean"&&e.showExpandedEditTools!==t.showExpandedEditTools&&t.setShowExpandedEditTools(e.showExpandedEditTools),typeof e.timeFormatPreference=="string"&&(e.timeFormatPreference==="auto"||e.timeFormatPreference==="12h"||e.timeFormatPreference==="24h")&&e.timeFormatPreference!==t.timeFormatPreference&&t.setTimeFormatPreference(e.timeFormatPreference),typeof e.weekStartPreference=="string"&&(e.weekStartPreference==="auto"||e.weekStartPreference==="sunday"||e.weekStartPreference==="monday")&&e.weekStartPreference!==t.weekStartPreference&&t.setWeekStartPreference(e.weekStartPreference),typeof e.desktopWindowControlsPosition=="string"){const a=e.desktopWindowControlsPosition==="left"?"left":e.desktopWindowControlsPosition==="right"||e.desktopWindowControlsPosition==="auto"?"right":null;a&&a!==t.desktopWindowControlsPosition&&t.setDesktopWindowControlsPosition(a)}if(typeof e.desktopWindowControlsStyle=="string"){const a=e.desktopWindowControlsStyle==="traffic-lights"?"traffic-lights":e.desktopWindowControlsStyle==="classic"?"classic":null;a&&a!==t.desktopWindowControlsStyle&&t.setDesktopWindowControlsStyle(a)}if(typeof e.mermaidRenderingMode=="string"&&(e.mermaidRenderingMode==="svg"||e.mermaidRenderingMode==="ascii")&&e.mermaidRenderingMode!==t.mermaidRenderingMode&&t.setMermaidRenderingMode(e.mermaidRenderingMode),typeof e.userMessageRenderingMode=="string"&&(e.userMessageRenderingMode==="markdown"||e.userMessageRenderingMode==="plain")&&e.userMessageRenderingMode!==t.userMessageRenderingMode&&t.setUserMessageRenderingMode(e.userMessageRenderingMode),typeof e.collapsibleUserMessages=="boolean"&&e.collapsibleUserMessages!==t.collapsibleUserMessages&&t.setCollapsibleUserMessages(e.collapsibleUserMessages),typeof e.messageStreamTransport=="string"&&(e.messageStreamTransport==="auto"||e.messageStreamTransport==="ws"||e.messageStreamTransport==="sse")&&o&&e.messageStreamTransport!==o.settingsMessageStreamTransport&&o.setSettingsMessageStreamTransport(e.messageStreamTransport),typeof e.stickyUserHeader=="boolean"&&e.stickyUserHeader!==t.stickyUserHeader&&t.setStickyUserHeader(e.stickyUserHeader),typeof e.promptNavigatorEnabled=="boolean"&&e.promptNavigatorEnabled!==t.promptNavigatorEnabled&&t.setPromptNavigatorEnabled(e.promptNavigatorEnabled),typeof e.expandedEditorToolbar=="boolean"&&e.expandedEditorToolbar!==t.expandedEditorToolbar&&t.setExpandedEditorToolbar(e.expandedEditorToolbar),typeof e.wideChatLayoutEnabled=="boolean"&&e.wideChatLayoutEnabled!==t.wideChatLayoutEnabled&&t.setWideChatLayoutEnabled(e.wideChatLayoutEnabled),typeof e.showSplitAssistantMessageActions=="boolean"&&e.showSplitAssistantMessageActions!==t.showSplitAssistantMessageActions&&t.setShowSplitAssistantMessageActions(e.showSplitAssistantMessageActions),typeof e.reportUsage=="boolean"&&e.reportUsage!==t.reportUsage&&t.setReportUsage(e.reportUsage),typeof e.fontSize=="number"&&Number.isFinite(e.fontSize)&&e.fontSize!==t.fontSize&&t.setFontSize(e.fontSize),Array.isArray(e.draftStarters)){const a=Ga(e.draftStarters).filter(s=>s.type!=="command"||s.name!=="craft-goal"&&s.name!=="schedule-task");JSON.stringify(t.globalDraftStarters)!==JSON.stringify(a)&&t.setGlobalDraftStarters(a),e.draftStarters=a}if(delete e.draftStartersScheduleTaskAdded,typeof e.draftStartersVisible=="boolean"&&e.draftStartersVisible!==t.draftStartersVisible&&t.setDraftStartersVisible(e.draftStartersVisible),typeof e.terminalFontSize=="number"&&Number.isFinite(e.terminalFontSize)&&e.terminalFontSize!==t.terminalFontSize&&t.setTerminalFontSize(e.terminalFontSize),Ao(e.terminalShell)&&e.terminalShell!==t.terminalShell&&t.setTerminalShell(e.terminalShell),Array.isArray(e.terminalLoginShells)&&(e.terminalLoginShells.length!==t.terminalLoginShells.length||e.terminalLoginShells.some((a,s)=>a!==t.terminalLoginShells[s]))&&t.setTerminalLoginShells(e.terminalLoginShells),typeof e.editorFontSize=="number"&&Number.isFinite(e.editorFontSize)&&e.editorFontSize!==t.editorFontSize&&t.setEditorFontSize(e.editorFontSize),_a(e.uiFont)&&e.uiFont!==t.uiFont&&t.setUiFont(e.uiFont),Oa(e.monoFont)&&e.monoFont!==t.monoFont&&t.setMonoFont(e.monoFont),typeof e.padding=="number"&&Number.isFinite(e.padding)&&e.padding!==t.padding&&t.setPadding(e.padding),typeof e.cornerRadius=="number"&&Number.isFinite(e.cornerRadius)&&e.cornerRadius!==t.cornerRadius&&t.setCornerRadius(e.cornerRadius),typeof e.inputBarOffset=="number"&&Number.isFinite(e.inputBarOffset)&&e.inputBarOffset!==t.inputBarOffset&&t.setInputBarOffset(e.inputBarOffset),e.shortcutOverrides&&!Yf(e.shortcutOverrides,t.shortcutOverrides)&&ie.setState({shortcutOverrides:e.shortcutOverrides}),typeof e.mobileKeyboardMode=="string"){const a=Or(e.mobileKeyboardMode,t.mobileKeyboardMode);a!==t.mobileKeyboardMode&&t.setMobileKeyboardMode(a)}if(Array.isArray(e.favoriteModels)){const a=t.favoriteModels,s=e.favoriteModels;Go(a,s)||ie.setState({favoriteModels:s})}if(Array.isArray(e.hiddenModels)){const a=t.hiddenModels,s=e.hiddenModels;Go(a,s)||ie.setState({hiddenModels:s})}if(Array.isArray(e.collapsedModelProviders)){const a=t.collapsedModelProviders,s=e.collapsedModelProviders;ir(a,s)||ie.setState({collapsedModelProviders:s})}if(Array.isArray(e.recentModels)){const a=t.recentModels,s=e.recentModels;Go(a,s)||ie.setState({recentModels:s})}if(Array.isArray(e.recentAgents)){const a=t.recentAgents,s=e.recentAgents;ir(a,s)||ie.setState({recentAgents:s})}if(e.recentEfforts&&typeof e.recentEfforts=="object"){const a=t.recentEfforts,s=e.recentEfforts;Xf(a,s)||ie.setState({recentEfforts:s})}typeof e.diffLayoutPreference=="string"&&(e.diffLayoutPreference==="dynamic"||e.diffLayoutPreference==="inline"||e.diffLayoutPreference==="side-by-side")&&e.diffLayoutPreference!==t.diffLayoutPreference&&t.setDiffLayoutPreference(e.diffLayoutPreference),typeof e.gitChangesViewMode=="string"&&(e.gitChangesViewMode==="flat"||e.gitChangesViewMode==="tree")&&e.gitChangesViewMode!==t.gitChangesViewMode&&t.setGitChangesViewMode(e.gitChangesViewMode),typeof e.directoryShowHidden=="boolean"&&pd(e.directoryShowHidden,{persist:!1}),typeof e.filesViewShowGitignored=="boolean"&&hd(e.filesViewShowGitignored,{persist:!1})},Rn=e=>{if(!e||typeof e!="object")return null;const t=e,o={};if(typeof t.themeId=="string"&&t.themeId.length>0&&(o.themeId=t.themeId),(t.useSystemTheme===!0||t.useSystemTheme===!1)&&(o.useSystemTheme=t.useSystemTheme),typeof t.themeVariant=="string"&&(t.themeVariant==="light"||t.themeVariant==="dark")&&(o.themeVariant=t.themeVariant),typeof t.lightThemeId=="string"&&t.lightThemeId.length>0&&(o.lightThemeId=t.lightThemeId),typeof t.darkThemeId=="string"&&t.darkThemeId.length>0&&(o.darkThemeId=t.darkThemeId),typeof t.lastDirectory=="string"&&t.lastDirectory.length>0&&(o.lastDirectory=t.lastDirectory),typeof t.homeDirectory=="string"&&t.homeDirectory.length>0&&(o.homeDirectory=t.homeDirectory),typeof t.opencodeBinary=="string"){const f=t.opencodeBinary.trim();o.opencodeBinary=f.length>0?f:void 0}typeof t.desktopLanAccessEnabled=="boolean"&&(o.desktopLanAccessEnabled=t.desktopLanAccessEnabled),typeof t.desktopKeepAwakeEnabled=="boolean"&&(o.desktopKeepAwakeEnabled=t.desktopKeepAwakeEnabled),typeof t.desktopMinimizeToTrayEnabled=="boolean"&&(o.desktopMinimizeToTrayEnabled=t.desktopMinimizeToTrayEnabled),typeof t.desktopMacMenuBarEnabled=="boolean"&&(o.desktopMacMenuBarEnabled=t.desktopMacMenuBarEnabled);const r=tm(t.projects);if(r&&(o.projects=r),typeof t.activeProjectId=="string"&&t.activeProjectId.length>0&&(o.activeProjectId=t.activeProjectId),Array.isArray(t.securityScopedBookmarks)&&(o.securityScopedBookmarks=t.securityScopedBookmarks.filter(f=>typeof f=="string"&&f.length>0)),Array.isArray(t.pinnedDirectories)&&(o.pinnedDirectories=Array.from(new Set(t.pinnedDirectories.filter(f=>typeof f=="string"&&f.length>0)))),Array.isArray(t.draftStarters)&&(o.draftStarters=Ga(t.draftStarters)),typeof t.draftStartersVisible=="boolean"&&(o.draftStartersVisible=t.draftStartersVisible),typeof t.draftStartersScheduleTaskAdded=="boolean"&&(o.draftStartersScheduleTaskAdded=t.draftStartersScheduleTaskAdded),typeof t.showReasoningTraces=="boolean"&&(o.showReasoningTraces=t.showReasoningTraces),typeof t.collapsibleThinkingBlocks=="boolean"&&(o.collapsibleThinkingBlocks=t.collapsibleThinkingBlocks),typeof t.collapseThinkingByDefault=="boolean"&&(o.collapseThinkingByDefault=t.collapseThinkingByDefault),typeof t.autoDeleteEnabled=="boolean"&&(o.autoDeleteEnabled=t.autoDeleteEnabled),typeof t.autoSaveEnabled=="boolean"&&(o.autoSaveEnabled=t.autoSaveEnabled),typeof t.autoDeleteAfterDays=="number"&&Number.isFinite(t.autoDeleteAfterDays)&&(o.autoDeleteAfterDays=t.autoDeleteAfterDays),(t.sessionRetentionAction==="archive"||t.sessionRetentionAction==="delete")&&(o.sessionRetentionAction=t.sessionRetentionAction),typeof t.tunnelProvider=="string"){const f=t.tunnelProvider.trim().toLowerCase();f.length>0&&(o.tunnelProvider=f)}if(typeof t.tunnelMode=="string"){const f=t.tunnelMode.trim().toLowerCase();(f==="quick"||f==="managed-remote"||f==="managed-local")&&(o.tunnelMode=f)}if(t.tunnelBootstrapTtlMs===null?o.tunnelBootstrapTtlMs=null:typeof t.tunnelBootstrapTtlMs=="number"&&Number.isFinite(t.tunnelBootstrapTtlMs)&&(o.tunnelBootstrapTtlMs=t.tunnelBootstrapTtlMs),typeof t.tunnelSessionTtlMs=="number"&&Number.isFinite(t.tunnelSessionTtlMs)&&(o.tunnelSessionTtlMs=t.tunnelSessionTtlMs),t.managedLocalTunnelConfigPath===null)o.managedLocalTunnelConfigPath=null;else if(typeof t.managedLocalTunnelConfigPath=="string"){const f=t.managedLocalTunnelConfigPath.trim();o.managedLocalTunnelConfigPath=f.length>0?f:null}typeof t.managedRemoteTunnelHostname=="string"&&(o.managedRemoteTunnelHostname=t.managedRemoteTunnelHostname.trim()),t.managedRemoteTunnelToken===null?o.managedRemoteTunnelToken=null:typeof t.managedRemoteTunnelToken=="string"&&(o.managedRemoteTunnelToken=t.managedRemoteTunnelToken.trim());const n=om(t.managedRemoteTunnelPresets);if(n&&(o.managedRemoteTunnelPresets=n),typeof t.managedRemoteTunnelSelectedPresetId=="string"){const f=t.managedRemoteTunnelSelectedPresetId.trim();o.managedRemoteTunnelSelectedPresetId=f.length>0?f:void 0}const a=rm(t.managedRemoteTunnelPresetTokens);if(a&&(o.managedRemoteTunnelPresetTokens=a),typeof t.defaultModel=="string"&&t.defaultModel.length>0&&(o.defaultModel=t.defaultModel),typeof t.defaultVariant=="string"&&t.defaultVariant.length>0&&(o.defaultVariant=t.defaultVariant),typeof t.smallModelUseDefault=="boolean"&&(o.smallModelUseDefault=t.smallModelUseDefault),typeof t.smallModelOverride=="string"&&t.smallModelOverride.length>0&&(o.smallModelOverride=t.smallModelOverride),typeof t.walkthroughModelOverride=="string"&&t.walkthroughModelOverride.length>0&&(o.walkthroughModelOverride=t.walkthroughModelOverride),typeof t.autoCreateWorktree=="boolean"&&(o.autoCreateWorktree=t.autoCreateWorktree),typeof t.gitmojiEnabled=="boolean"&&(o.gitmojiEnabled=t.gitmojiEnabled),Hr(t.followUpBehavior)?o.followUpBehavior=t.followUpBehavior:typeof t.queueModeEnabled=="boolean"&&(o.followUpBehavior=jr(void 0,t.queueModeEnabled)),typeof t.showDeletionDialog=="boolean"&&(o.showDeletionDialog=t.showDeletionDialog),typeof t.nativeNotificationsEnabled=="boolean"&&(o.nativeNotificationsEnabled=t.nativeNotificationsEnabled),typeof t.notificationMode=="string"&&(t.notificationMode==="always"||t.notificationMode==="hidden-only")&&(o.notificationMode=t.notificationMode),typeof t.notifyOnSubtasks=="boolean"&&(o.notifyOnSubtasks=t.notifyOnSubtasks),typeof t.notifyOnCompletion=="boolean"&&(o.notifyOnCompletion=t.notifyOnCompletion),typeof t.notifyOnError=="boolean"&&(o.notifyOnError=t.notifyOnError),typeof t.notifyOnQuestion=="boolean"&&(o.notifyOnQuestion=t.notifyOnQuestion),t.notificationTemplates&&typeof t.notificationTemplates=="object"){const f=t.notificationTemplates,F=L=>{const ee=f[L];if(!ee||typeof ee!="object")return;const W=ee,He=typeof W.title=="string"?W.title:"",je=typeof W.message=="string"?W.message:"";return{title:He,message:je}},B=F("completion"),y=F("error"),T=F("question"),v=F("subtask");(B||y||T||v)&&(o.notificationTemplates={completion:B??{title:"Task Complete",message:"Your task has finished."},error:y??{title:"Error Occurred",message:"An error occurred while processing your task."},question:T??{title:"Input Needed",message:"Please provide input to continue."},subtask:v??{title:"Subtask Complete",message:"A subtask has finished."}})}if(typeof t.summarizeLastMessage=="boolean"&&(o.summarizeLastMessage=t.summarizeLastMessage),typeof t.summaryThreshold=="number"&&Number.isFinite(t.summaryThreshold)&&(o.summaryThreshold=Math.max(0,Math.round(t.summaryThreshold))),typeof t.summaryLength=="number"&&Number.isFinite(t.summaryLength)&&(o.summaryLength=Math.max(10,Math.round(t.summaryLength))),typeof t.maxLastMessageLength=="number"&&Number.isFinite(t.maxLastMessageLength)&&(o.maxLastMessageLength=Math.max(10,Math.round(t.maxLastMessageLength))),typeof t.usageAutoRefresh=="boolean"&&(o.usageAutoRefresh=t.usageAutoRefresh),typeof t.usageRefreshIntervalMs=="number"&&Number.isFinite(t.usageRefreshIntervalMs)&&(o.usageRefreshIntervalMs=t.usageRefreshIntervalMs),(t.usageDisplayMode==="usage"||t.usageDisplayMode==="remaining")&&(o.usageDisplayMode=t.usageDisplayMode),typeof t.usageShowPredValues=="boolean"&&(o.usageShowPredValues=t.usageShowPredValues),Array.isArray(t.usageDropdownProviders)&&(o.usageDropdownProviders=t.usageDropdownProviders.filter(f=>typeof f=="string"&&f.length>0)),t.usageSelectedModels&&typeof t.usageSelectedModels=="object"){const f={};for(const[F,B]of Object.entries(t.usageSelectedModels))Array.isArray(B)&&(f[F]=B.filter(y=>typeof y=="string"));Object.keys(f).length>0&&(o.usageSelectedModels=f)}if(t.usageCollapsedFamilies&&typeof t.usageCollapsedFamilies=="object"){const f={};for(const[F,B]of Object.entries(t.usageCollapsedFamilies))Array.isArray(B)&&(f[F]=B.filter(y=>typeof y=="string"));Object.keys(f).length>0&&(o.usageCollapsedFamilies=f)}if(t.usageExpandedFamilies&&typeof t.usageExpandedFamilies=="object"){const f={};for(const[F,B]of Object.entries(t.usageExpandedFamilies))Array.isArray(B)&&(f[F]=B.filter(y=>typeof y=="string"));Object.keys(f).length>0&&(o.usageExpandedFamilies=f)}if(t.usageModelGroups&&typeof t.usageModelGroups=="object"){const f={};for(const[F,B]of Object.entries(t.usageModelGroups))if(B&&typeof B=="object"){const y=B,T={};Array.isArray(y.customGroups)&&(T.customGroups=y.customGroups.filter(v=>v&&typeof v=="object").map(v=>({id:String(v.id??""),label:String(v.label??""),models:Array.isArray(v.models)?v.models.filter(L=>typeof L=="string"):[],order:typeof v.order=="number"?v.order:0}))),y.modelAssignments&&typeof y.modelAssignments=="object"&&(T.modelAssignments=Object.fromEntries(Object.entries(y.modelAssignments).filter(([,v])=>typeof v=="string").map(([v,L])=>[v,String(L)]))),y.renamedGroups&&typeof y.renamedGroups=="object"&&(T.renamedGroups=Object.fromEntries(Object.entries(y.renamedGroups).filter(([,v])=>typeof v=="string").map(([v,L])=>[v,String(L)]))),Object.keys(T).length>0&&(f[F]=T)}Object.keys(f).length>0&&(o.usageModelGroups=f)}typeof t.inputSpellcheckEnabled=="boolean"&&(o.inputSpellcheckEnabled=t.inputSpellcheckEnabled),typeof t.showOpenCodeUpdateNotifications=="boolean"&&(o.showOpenCodeUpdateNotifications=t.showOpenCodeUpdateNotifications),typeof t.openCodeUpdateToastDismissedVersion=="string"&&(o.openCodeUpdateToastDismissedVersion=t.openCodeUpdateToastDismissedVersion.trim().slice(0,128)),typeof t.showToolFileIcons=="boolean"&&(o.showToolFileIcons=t.showToolFileIcons),typeof t.codeBlockLineWrap=="boolean"&&(o.codeBlockLineWrap=t.codeBlockLineWrap),typeof t.showTurnChangedFiles=="boolean"&&(o.showTurnChangedFiles=t.showTurnChangedFiles),typeof t.showExpandedBashTools=="boolean"&&(o.showExpandedBashTools=t.showExpandedBashTools),typeof t.showExpandedEditTools=="boolean"&&(o.showExpandedEditTools=t.showExpandedEditTools),typeof t.timeFormatPreference=="string"&&(t.timeFormatPreference==="auto"||t.timeFormatPreference==="12h"||t.timeFormatPreference==="24h")&&(o.timeFormatPreference=t.timeFormatPreference),typeof t.weekStartPreference=="string"&&(t.weekStartPreference==="auto"||t.weekStartPreference==="sunday"||t.weekStartPreference==="monday")&&(o.weekStartPreference=t.weekStartPreference),typeof t.desktopWindowControlsPosition=="string"&&(t.desktopWindowControlsPosition==="left"?o.desktopWindowControlsPosition="left":(t.desktopWindowControlsPosition==="right"||t.desktopWindowControlsPosition==="auto")&&(o.desktopWindowControlsPosition="right")),typeof t.desktopWindowControlsStyle=="string"&&(t.desktopWindowControlsStyle==="classic"||t.desktopWindowControlsStyle==="traffic-lights")&&(o.desktopWindowControlsStyle=t.desktopWindowControlsStyle),typeof t.messageStreamTransport=="string"&&(t.messageStreamTransport==="auto"||t.messageStreamTransport==="ws"||t.messageStreamTransport==="sse")&&(o.messageStreamTransport=t.messageStreamTransport),typeof t.mermaidRenderingMode=="string"&&(t.mermaidRenderingMode==="svg"||t.mermaidRenderingMode==="ascii")&&(o.mermaidRenderingMode=t.mermaidRenderingMode),typeof t.userMessageRenderingMode=="string"&&(t.userMessageRenderingMode==="markdown"||t.userMessageRenderingMode==="plain")&&(o.userMessageRenderingMode=t.userMessageRenderingMode),typeof t.collapsibleUserMessages=="boolean"&&(o.collapsibleUserMessages=t.collapsibleUserMessages),typeof t.stickyUserHeader=="boolean"&&(o.stickyUserHeader=t.stickyUserHeader),typeof t.promptNavigatorEnabled=="boolean"&&(o.promptNavigatorEnabled=t.promptNavigatorEnabled),typeof t.expandedEditorToolbar=="boolean"&&(o.expandedEditorToolbar=t.expandedEditorToolbar),typeof t.wideChatLayoutEnabled=="boolean"&&(o.wideChatLayoutEnabled=t.wideChatLayoutEnabled),typeof t.showSplitAssistantMessageActions=="boolean"&&(o.showSplitAssistantMessageActions=t.showSplitAssistantMessageActions),typeof t.fontSize=="number"&&Number.isFinite(t.fontSize)&&(o.fontSize=t.fontSize),typeof t.terminalFontSize=="number"&&Number.isFinite(t.terminalFontSize)&&(o.terminalFontSize=t.terminalFontSize),Ao(t.terminalShell)&&(o.terminalShell=t.terminalShell),Array.isArray(t.terminalLoginShells)&&(o.terminalLoginShells=[...new Set(t.terminalLoginShells.filter(Ao))]),typeof t.editorFontSize=="number"&&Number.isFinite(t.editorFontSize)&&(o.editorFontSize=t.editorFontSize),_a(t.uiFont)&&(o.uiFont=t.uiFont),Oa(t.monoFont)&&(o.monoFont=t.monoFont),typeof t.padding=="number"&&Number.isFinite(t.padding)&&(o.padding=t.padding),typeof t.cornerRadius=="number"&&Number.isFinite(t.cornerRadius)&&(o.cornerRadius=t.cornerRadius),typeof t.inputBarOffset=="number"&&Number.isFinite(t.inputBarOffset)&&(o.inputBarOffset=t.inputBarOffset);const s=Jf(t.shortcutOverrides);s&&(o.shortcutOverrides=s),typeof t.mobileKeyboardMode=="string"&&(t.mobileKeyboardMode==="native"||t.mobileKeyboardMode==="resize-content")&&(o.mobileKeyboardMode=t.mobileKeyboardMode);const i=Wo(t.favoriteModels,64);i&&(o.favoriteModels=i);const c=Wo(t.hiddenModels,1024);c&&(o.hiddenModels=c);const d=cr(t.collapsedModelProviders);d&&(o.collapsedModelProviders=d);const l=Wo(t.recentModels,16);l&&(o.recentModels=l);const u=cr(t.recentAgents);u&&(o.recentAgents=u);const g=Qf(t.recentEfforts);if(g&&(o.recentEfforts=g),typeof t.diffLayoutPreference=="string"&&(t.diffLayoutPreference==="dynamic"||t.diffLayoutPreference==="inline"||t.diffLayoutPreference==="side-by-side")&&(o.diffLayoutPreference=t.diffLayoutPreference),typeof t.gitChangesViewMode=="string"&&(t.gitChangesViewMode==="flat"||t.gitChangesViewMode==="tree")&&(o.gitChangesViewMode=t.gitChangesViewMode),typeof t.directoryShowHidden=="boolean"&&(o.directoryShowHidden=t.directoryShowHidden),typeof t.filesViewShowGitignored=="boolean"&&(o.filesViewShowGitignored=t.filesViewShowGitignored),typeof t.openInAppId=="string"&&t.openInAppId.length>0&&(o.openInAppId=t.openInAppId),typeof t.pwaAppName=="string"){const f=Na(t.pwaAppName,"");o.pwaAppName=f.length>0?f:""}const m=Vf(t.skillCatalogs);return m&&(o.skillCatalogs=m),typeof t.reportUsage=="boolean"&&(o.reportUsage=t.reportUsage),typeof t.globalBehaviorPrompt=="string"&&(o.globalBehaviorPrompt=t.globalBehaviorPrompt),typeof t.responseStyleEnabled=="boolean"&&(o.responseStyleEnabled=t.responseStyleEnabled),typeof t.responseStylePreset=="string"&&(t.responseStylePreset==="concise"||t.responseStylePreset==="detailed"||t.responseStylePreset==="mentor"||t.responseStylePreset==="pushback"||t.responseStylePreset==="noFiller"||t.responseStylePreset==="matchEnergy"||t.responseStylePreset==="warmPeer"||t.responseStylePreset==="custom")&&(o.responseStylePreset=t.responseStylePreset),typeof t.responseStyleCustomInstructions=="string"&&(o.responseStyleCustomInstructions=t.responseStyleCustomInstructions),o};let $r=0,ke=null,Qe=null,Ot=null,St=null,Oe=null,lr=[],Pn=!1;const am=2e3,sm=200,zr=()=>({runtimeKey:O(),generation:$r}),ur=(e,t)=>e.runtimeKey===t.runtimeKey&&e.generation===t.generation,X=e=>e.generation===$r&&e.runtimeKey===O(),qr=()=>{Pn||typeof window>"u"||(Pn=!0,ji(e=>{e.runtimeKey!==e.previousRuntimeKey&&(Oe&&clearTimeout(Oe),Ot&&fr())}),Ea(e=>{e.runtimeKey!==e.previousRuntimeKey&&($r+=1,ke=null,Qe=null)}))},im=async(e=zr())=>{if(qr(),ke&&ur(ke.context,e)&&Date.now()-ke.at<am)return ke.value;if(Qe&&ur(Qe.context,e))return Qe.promise;const t={context:e,promise:(async()=>{const o=Qa();if(o)try{const r=await o.load();if(!X(e))return null;const n=Rn(r.settings);return ke={value:n,at:Date.now(),context:e},n}catch(r){if(!X(e))return null;console.warn("Failed to load shared settings from runtime settings API:",r)}if(!X(e))return null;try{const r=await p("/api/pi/ui-settings",{method:"GET",headers:{Accept:"application/json"}});if(!X(e)||!r.ok)return null;const n=await r.json().catch(()=>null);if(!X(e))return null;const a=Rn(n);return ke={value:a,at:Date.now(),context:e},a}catch(r){return X(e)&&console.warn("Failed to load shared settings from server:",r),null}})()};return Qe=t,t.promise.finally(()=>{Qe===t&&(Qe=null)}),t.promise},EF=async()=>{if(typeof window>"u")return;qr();const e=zr(),t=Ya(),o=()=>!t?.hasHydrated||t.hasHydrated()||!t.onFinishHydration?Promise.resolve():new Promise(n=>{let a=!1;const s=()=>{a||(a=!0,n())},i=t.onFinishHydration(()=>{i?.(),s()});t.hasHydrated?.()&&s()}),r=async n=>{if(!X(e))return;const a=n.draftStartersScheduleTaskAdded!==!0,s=Array.isArray(n.draftStarters)&&n.draftStarters.some(l=>l?.type==="command"&&l.name==="craft-goal"),i=typeof n.autoSaveEnabled!="boolean",c=nm(n);try{Gf(n)}catch(l){console.warn("persistToLocalStorage failed:",l)}if(await o(),!X(e))return;i&&(c.autoSaveEnabled=ie.getState().autoSaveEnabled),n.draftStarters===void 0&&ie.setState({globalDraftStarters:null});try{dr(c)}catch(l){console.warn("applyDesktopUiPreferences failed:",l)}const d={};(a||s)&&(c.draftStarters&&(d.draftStarters=c.draftStarters),d.draftStartersScheduleTaskAdded=!0),i&&(d.autoSaveEnabled=c.autoSaveEnabled),!(Object.keys(d).length>0&&(await ye(d),!X(e)))&&sr(c)};try{const n=await im(e);n&&X(e)&&await r(n)}catch(n){console.warn("Failed to synchronise settings:",n)}};async function fr(){const e=Ot,t=St,o=lr;Ot=null,St=null,Oe=null,lr=[];try{if(!e||!t||Object.keys(e).length===0||!X(t)){Ce("saved");return}const r=Qa();if(r)try{const n=await r.save(e);if(!X(t))return;n&&(dr(n),sr(n),ke=null),Ce(n?"saved":"error");return}catch(n){if(!X(t))return;console.warn("Failed to update settings via runtime settings API:",n)}if(!X(t))return;try{const n=await p("/api/pi/ui-settings",{method:"PUT",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(e)});if(!X(t))return;if(!n.ok){console.warn("Failed to update shared settings via API:",n.status,n.statusText),Ce("error");return}const a=await n.json().catch(()=>null);if(!X(t))return;a?(dr(a),sr(a),Ce("saved"),ke=null):Ce("error")}catch(n){X(t)&&(console.warn("Failed to update shared settings via API:",n),Ce("error"))}}finally{o.forEach(r=>r())}}const ye=async e=>{if(typeof window>"u")return;qr();const t=zr();St&&!ur(St,t)&&(Oe&&clearTimeout(Oe),fr()),Ot={...Ot??{},...e},St=t,Ce("saving"),Oe&&clearTimeout(Oe);const o=new Promise(r=>{lr.push(r)});return Oe=setTimeout(()=>{fr()},sm),o},BF=async()=>{if(typeof window>"u")return;const e=Ya();try{const t=await Ed();if(!t)return;const o=()=>Ad(t);if(e?.hasHydrated?.()){o();return}if(o(),e?.onFinishHydration){const r=e.onFinishHydration(()=>{r?.(),o()})}}catch(t){console.warn("Failed to load appearance preferences:",t)}},cm=3e4,dm=40,lm=60,um=(e,t,o,r,n,a,s)=>{const i=t.trim(),c=o.trim().toLowerCase();return JSON.stringify([e,i,c,r,n,a,s])},In=(e,t)=>{try{const o=JSON.parse(e);return Array.isArray(o)&&o[1]===t}catch{return!1}},fm=Lt()(Ht((e,t)=>({cache:{},cacheKeys:[],inFlight:{},async searchFiles(o,r,n=lm,a){if(!o||o.trim().length===0)return[];const s=o.trim(),i=O(),c=typeof r=="string"?r.trim():"",d=!!a?.includeHidden,l=a?.respectGitignore??!0,u=a?.type==="directory"?"directory":"file",g=um(i,s,c,n,d,l,u),m=Date.now(),f=t().cache[g];if(f&&m-f.timestamp<cm)return f.files;const F=t().inFlight[g];if(F)return F;const B=Rc(c,{directory:s,limit:n,includeHidden:d,respectGitignore:l,type:u}).then(y=>(e(T=>{if(T.inFlight[g]!==B)return T;const v={...T.cache,[g]:{files:y,timestamp:Date.now()}},L=T.cacheKeys.filter(ee=>ee!==g);for(L.push(g);L.length>dm;){const ee=L.shift();ee&&delete v[ee]}return{cache:v,cacheKeys:L}}),y)).finally(()=>{e(y=>{if(y.inFlight[g]!==B)return y;const T={...y.inFlight};return delete T[g],{inFlight:T}})});return e(y=>({inFlight:{...y.inFlight,[g]:B}})),B},invalidateDirectory(o){if(!o||o.trim().length===0){e({cache:{},cacheKeys:[],inFlight:{}});return}const r=o.trim();e(n=>{const a={...n.cache},s=n.cacheKeys.filter(d=>In(d,r)?(delete a[d],!1):!0),i=Object.entries(n.inFlight).filter(([d])=>!In(d,r)),c=Object.fromEntries(i);return{cache:a,cacheKeys:s,inFlight:c}})},resetForRuntimeSwitch(){e({cache:{},cacheKeys:[],inFlight:{}})}}),{name:"file-search-store"})),mr="pichamber_perf_hud",gr=new Set,mm=()=>{if(typeof window>"u")return!1;try{return window.localStorage.getItem(mr)==="1"}catch{return!1}};let pr=mm(),xn=!1;const gm=()=>{for(const e of gr)e()},Xa=()=>pr,wF=e=>(gr.add(e),()=>{gr.delete(e)}),_n=e=>{const t=pr!==e;if(pr=e,typeof window<"u")try{e?window.localStorage.setItem(mr,"1"):window.localStorage.removeItem(mr)}catch{}t&&gm()},pm=e=>{if(typeof window>"u"&&e===void 0)return!1;const o=new URLSearchParams(window.location.search).get("perf");return o==="1"?(_n(!0),!0):o==="0"?(_n(!1),!0):!1},CF=e=>xn?!1:(xn=!0,pm(e)),Fm=()=>{if(typeof window>"u")return!1;try{return window.localStorage.getItem("pichamber_stream_debug")==="1"}catch{return!1}},Fr="pichamber_stream_perf",hm=()=>{if(typeof window>"u")return!1;try{return window.localStorage.getItem(Fr)==="1"}catch{return!1}};let Za=hm();const Do=()=>Za||Xa(),On=()=>typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now(),es=()=>{if(!Do()||typeof window>"u")return null;if(!window.__pichamberStreamPerfState){const e=Date.now();window.__pichamberStreamPerfState={counters:new Map,startedAt:e,lastUpdatedAt:e}}return window.__pichamberStreamPerfState},ym=e=>Array.from(e.entries()).map(([t,o])=>({metric:t,count:o.count,avg:o.count>0?Number((o.total/o.count).toFixed(3)):0,max:Number(o.max.toFixed(3)),total:Number(o.total.toFixed(3)),last:Number(o.last.toFixed(3))})).sort((t,o)=>o.total-t.total||o.count-t.count),Kr=(e,t)=>{const o=es();if(!o)return;const r=o.counters.get(e)??{count:0,total:0,max:0,last:0};r.count+=1,r.total+=t,r.max=Math.max(r.max,t),r.last=t,o.counters.set(e,r),o.lastUpdatedAt=Date.now()},bm=e=>{if(Za=e,!(typeof window>"u"))try{if(e){window.localStorage.setItem(Fr,"1"),window.__pichamberStreamPerfState={counters:new Map,startedAt:Date.now(),lastUpdatedAt:Date.now()};return}window.localStorage.removeItem(Fr),Xa()||delete window.__pichamberStreamPerfState}catch{}},Am=()=>{typeof window>"u"||Do()&&(window.__pichamberStreamPerfState={counters:new Map,startedAt:Date.now(),lastUpdatedAt:Date.now()})},Em=()=>{if(typeof window>"u")return{enabled:!1,startedAt:null,lastUpdatedAt:null,durationMs:0,entries:[]};const e=es();return e?{enabled:!0,startedAt:e.startedAt,lastUpdatedAt:e.lastUpdatedAt,durationMs:Math.max(0,Date.now()-e.startedAt),entries:ym(e.counters)}:{enabled:!1,startedAt:null,lastUpdatedAt:null,durationMs:0,entries:[]}},kF=(e,t=1)=>{Kr(e,t)},vF=(e,t)=>{Kr(e,t)},DF=e=>{!Do()||typeof performance>"u"||typeof performance.mark!="function"||performance.mark(`pichamber.${e}`)},SF=(e,t)=>{if(!Do())return t();const o=On();try{return t()}finally{Kr(e,On()-o)}};typeof window<"u"&&(window.__pichamberStreamPerformance={setEnabled:bm,reset:Am,getSnapshot:Em});var Bm={};let me=null,Nn=0;const fe=qt(),Un=fe.getItem("lastDirectory"),wm=typeof Un=="string"&&Un.length>0,ao=e=>{try{fm.getState().invalidateDirectory(e)}catch(t){console.warn("Failed to invalidate file search cache:",t)}},Nt=e=>{const t=e.trim();if(!t)return t;const o=t.replace(/\\/g,"/").replace(/^([a-z]):/,(r,n)=>n.toUpperCase()+":");return o.length>1?o.replace(/\/+$/,""):o},Cm=(e,t)=>{const o=e.trim();return o.startsWith("~")?o==="~"?t||o:(o.startsWith("~/")||o.startsWith("~\\"))&&t?`${t}${o.slice(1)}`:o:o},fo=(e,t)=>{const o=Cm(e,t);return Nt(o)},km=()=>{const e=fe.getItem("homeDirectory");if(typeof e!="string"||e.trim().length===0)return null;const t=Nt(e);return t.length>0?t:null},vm=()=>{const e=fe.getItem("lastDirectory");if(typeof e!="string"||e.trim().length===0)return null;const t=Nt(e);return t.length>0?t:null},Dm=()=>{if(typeof process>"u")return null;const e=Bm,t=e?.HOME||e?.USERPROFILE||(e?.HOMEDRIVE&&e?.HOMEPATH?`${e.HOMEDRIVE}${e.HOMEPATH}`:void 0);if(typeof t=="string"&&t.trim().length>0){const r=Nt(t);return r.length>0?r:null}const o=process?.cwd?.();if(typeof o=="string"&&o.trim().length>0){const r=Nt(o);return r.length>0?r:null}return null},Eo=()=>{if(typeof window<"u"){if(me)return me;const t=typeof window.__PICHAMBER_HOME__=="string"&&window.__PICHAMBER_HOME__.length>0?window.__PICHAMBER_HOME__:null;if(t&&t.length>0)return me=t,fe.setItem("homeDirectory",t),t;const o=km();if(o)return me=o,o}const e=Dm();return e||"/"},Sm=e=>{if(typeof e!="string")return null;const t=e.trim();if(!t)return null;const o=t.replace(/\\/g,"/");if(o.length>1){const r=o.replace(/\/+$/,"");if(r&&r.length>0)return r==="/"?null:r}return o==="/"||o.length===0?null:o},Mm=e=>(me=e,typeof window<"u"&&fe.setItem("homeDirectory",e),ye({homeDirectory:e}),e),hr=async()=>{const e=r=>{const n=Sm(r);return n?Mm(n):null};try{const r=await Tc(),n=e(r);if(n)return n}catch(r){console.warn("Failed to obtain filesystem home directory:",r)}try{const r=await Qi(),n=e(r);if(n)return n}catch(r){console.warn("Failed to obtain desktop-integrated home directory:",r)}const t=Eo(),o=e(t);return o||t},Ut=Eo(),Bo=(()=>{const e=vm();return e?fo(e,Ut):Ut})();Bo&&wt.setDirectory(Bo);const Tm=!!(Ut&&Ut!=="/"),yr=Lt()(Ht((e,t)=>({currentDirectory:Bo,directoryHistory:[Bo],historyIndex:0,homeDirectory:Ut,hasPersistedDirectory:wm,isHomeReady:Tm,isSwitchingDirectory:!1,setDirectory:(o,r)=>{const n=me||t().homeDirectory||fe.getItem("homeDirectory"),a=fo(o,n);Fm()&&console.log("[DirectoryStore] setDirectory called with path:",a),wt.setDirectory(a),ao(),e(s=>{const i=[...s.directoryHistory.slice(0,s.historyIndex+1),a];return fe.setItem("lastDirectory",a),ye({lastDirectory:a}),{currentDirectory:a,directoryHistory:i,historyIndex:i.length-1,hasPersistedDirectory:!0,isHomeReady:!0,isSwitchingDirectory:!1}})},goBack:()=>{const o=t();if(o.historyIndex>0){const r=o.historyIndex-1,n=o.directoryHistory[r];wt.setDirectory(n),ao(),fe.setItem("lastDirectory",n),ye({lastDirectory:n}),e({currentDirectory:n,historyIndex:r,hasPersistedDirectory:!0,isHomeReady:!0,isSwitchingDirectory:!1})}},goForward:()=>{const o=t();if(o.historyIndex<o.directoryHistory.length-1){const r=o.historyIndex+1,n=o.directoryHistory[r];wt.setDirectory(n),ao(),fe.setItem("lastDirectory",n),ye({lastDirectory:n}),e({currentDirectory:n,historyIndex:r,hasPersistedDirectory:!0,isHomeReady:!0,isSwitchingDirectory:!1})}},goToParent:()=>{const{currentDirectory:o,setDirectory:r}=t(),n=me||t().homeDirectory||Eo();if(o===n||o==="/")return;const a=o.endsWith("/")?o.slice(0,-1):o,s=a.lastIndexOf("/");if(s===-1){const i=me||Eo();r(i)}else r(s===0?"/":a.substring(0,s))},goHome:async()=>{const o=me||t().homeDirectory||await hr();t().setDirectory(o)},synchronizeHomeDirectory:o=>{const r=t(),n=o;me=n;const a=r.homeDirectory!==n,s=fe.getItem("lastDirectory"),i=typeof s=="string"&&s.length>0,c=!i&&(r.currentDirectory==="/"||r.currentDirectory===r.homeDirectory||!r.currentDirectory);if(!a&&!c){r.isHomeReady||e({isHomeReady:!0});return}const d=typeof n=="string"&&n!==""&&n!=="/",l=r.currentDirectory?fo(r.currentDirectory,n):r.currentDirectory,u=r.directoryHistory.map(F=>fo(F,n)),g=u.some((F,B)=>F!==r.directoryHistory[B]),m=!!(l&&l!==r.currentDirectory),f={homeDirectory:n,hasPersistedDirectory:i,isHomeReady:d};if(c?(f.currentDirectory=n,f.directoryHistory=[n],f.historyIndex=0,f.isSwitchingDirectory=!1):(m||g)&&(f.currentDirectory=l,f.directoryHistory=u,f.historyIndex=Math.min(r.historyIndex,u.length-1),f.isSwitchingDirectory=!1),e(()=>f),(c||m)&&d){const F=c?n:l;wt.setDirectory(F),ao(),fe.setItem("lastDirectory",F),ye({lastDirectory:F})}ye({homeDirectory:n})}}),{name:"directory-store"}));typeof window<"u"&&(hr().then(e=>{yr.getState().synchronizeHomeDirectory(e)}),Ea(()=>{me=null;const e=++Nn;hr().then(t=>{e===Nn&&yr.getState().synchronizeHomeDirectory(t)})}));const ts=1,Ln=512*1024,Rm=0,ct=1,Pm=15e3,Gr=new TextEncoder,os=new TextDecoder,Im=e=>{const t=Gr.encode(JSON.stringify(e)),o=new Uint8Array(t.length+1);return o[0]=ts,o.set(t,1),o},xm=async e=>{let t;if(e instanceof ArrayBuffer)t=new Uint8Array(e);else if(e instanceof Uint8Array)t=e;else if(typeof Blob<"u"&&e instanceof Blob)t=new Uint8Array(await e.arrayBuffer());else if(typeof e=="string")t=Gr.encode(e);else return null;t[0]===ts&&(t=t.subarray(1));try{return JSON.parse(os.decode(t))}catch{return null}},Wr=async(e,t)=>{const o=await e.json().catch(()=>null);return new Error(typeof o?.error=="string"?o.error:t)},_m=e=>{const t=Gr.encode(e);if(t.byteLength<=Ln)return e;let o=t.byteLength-Ln;for(;o<t.byteLength&&(t[o]&192)===128;)o+=1;return os.decode(t.subarray(o))};class rs{constructor(t={refreshAuth:$t,openSocket:()=>Sa(Se().websocket("/api/terminal/ws")),clearUrlAuthToken:jt}){this.dependencies=t}socket=null;opening=null;subscribers=new Map;projections=new Map;reconnectTimer=null;keepaliveTimer=null;idleCloseTimer=null;failures=0;wakeCleanup=null;generation=0;disposed=!1;subscribe(t,o){this.cancelIdleClose();const r={handlers:o,lastSequence:-1},n=this.subscribers.get(t)??new Set,a=n.size===0;n.add(r),this.subscribers.set(t,n);const s=this.projections.get(t);s&&(r.lastSequence=s.sequence,o.onEvent({type:"snapshot",sequence:s.sequence,data:s.history,status:s.status,exitCode:s.exitCode,signal:s.signal,runtime:s.runtime,ptyBackend:s.ptyBackend}));const i=this.socket?.readyState===ct;return this.ensureConnected().then(()=>{const c=this.subscribers.get(t);a&&i&&c===n&&c.size>0&&this.send({t:"attach",v:3,s:t})}).catch(c=>{n.has(r)&&(o.onError?.(c,!1),this.scheduleReconnect())}),()=>{const c=this.subscribers.get(t);if(c?.delete(r),c?.size===0&&(this.subscribers.delete(t),this.projections.delete(t),this.send({t:"detach",v:3,s:t})),this.subscribers.size===0){if(this.cancelReconnect(),this.failures=0,this.socket?.readyState===ct){this.scheduleIdleClose();return}this.generation+=1,this.opening=null,this.closeSocket()}}}async write(t,o){if(o&&(await this.ensureConnected(),!this.send({t:"write",v:3,s:t,d:o})&&(this.closeSocket(),await this.ensureConnected(),!this.send({t:"write",v:3,s:t,d:o}))))throw new Error("Terminal connection is unavailable")}dispose(){this.disposed=!0,this.generation+=1,this.opening=null,this.subscribers.clear(),this.projections.clear(),this.reconnectTimer&&clearTimeout(this.reconnectTimer),this.reconnectTimer=null,this.cancelIdleClose(),this.wakeCleanup?.(),this.wakeCleanup=null,this.closeSocket()}forget(t){this.projections.delete(t)}async ensureConnected(){if(this.disposed)throw new Error("Terminal runtime changed");if(this.socket?.readyState===ct)return;if(this.opening)return await this.opening,this.socket?.readyState===ct?void 0:this.ensureConnected();const t=this.generation,o=(async()=>{if(await this.dependencies.refreshAuth(),t!==this.generation||this.disposed)throw new Error("Terminal runtime changed");await new Promise((r,n)=>{let a=!1,s=!1,i=!1,c=null;const d=()=>t===this.generation&&!this.disposed&&c!==null&&this.socket===c,l=()=>{i||s||!d()||(i=!0,this.dependencies.clearUrlAuthToken?.())},u=m=>{a||(a=!0,clearTimeout(g),m?n(m):r())},g=setTimeout(()=>{l(),c?.close(),u(new Error("Terminal connection timed out"))},1e4);try{const m=this.dependencies.openSocket();c=m,m.binaryType="arraybuffer",this.socket=m,m.onopen=()=>{if(!d()){m.close(),u(new Error("Terminal runtime changed"));return}s=!0,this.failures=0,this.send({t:"hello",v:3});for(const f of this.subscribers.keys())this.send({t:"attach",v:3,s:f});this.startKeepalive(),u()},m.onmessage=f=>{this.handleMessage(f.data)},m.onerror=()=>{const f=d();f&&l(),u(new Error("Terminal WebSocket failed")),f&&this.subscribers.size>0&&this.scheduleReconnect()},m.onclose=()=>{const f=d();f&&(this.stopKeepalive(),l()),this.socket===m&&(this.socket=null),u(new Error("Terminal WebSocket closed")),f&&this.subscribers.size>0&&this.scheduleReconnect()}}catch(m){u(m instanceof Error?m:new Error("Terminal WebSocket failed")),!this.disposed&&this.subscribers.size>0&&this.scheduleReconnect()}})})();this.opening=o;try{await o}finally{this.opening===o&&(this.opening=null)}}async handleMessage(t){const o=await xm(t);if(!o||o.t==="hello"||o.t==="pong")return;if(o.t==="error"){const a=new Error(typeof o.message=="string"?o.message:"Terminal error");typeof o.code=="string"&&(a.code=o.code);const s=o.s?[o.s]:[...this.subscribers.keys()];for(const i of s)for(const c of this.subscribers.get(i)??[])c.handlers.onError?.(a,o.fatal===!0);return}if(!o.s)return;const r=this.subscribers.get(o.s);if(!r)return;if(o.t==="snapshot"){const a={sequence:typeof o.q=="number"?o.q:0,history:typeof o.history=="string"?o.history:"",status:o.status,exitCode:typeof o.exitCode=="number"?o.exitCode:void 0,signal:typeof o.signal=="number"?o.signal:null,runtime:o.runtime,ptyBackend:typeof o.ptyBackend=="string"?o.ptyBackend:void 0};this.projections.set(o.s,a);for(const s of r)s.lastSequence=a.sequence,s.handlers.onEvent({type:"snapshot",sequence:a.sequence,data:a.history,status:a.status,exitCode:a.exitCode,signal:a.signal,runtime:a.runtime,ptyBackend:a.ptyBackend});return}if(typeof o.q!="number")return;const n=this.projections.get(o.s);n&&o.q>n.sequence&&(o.t==="output"?this.projections.set(o.s,{...n,sequence:o.q,history:_m(n.history+(typeof o.r=="string"?o.r:typeof o.d=="string"?o.d:""))}):o.t==="exit"?this.projections.set(o.s,{...n,sequence:o.q,status:"exited",exitCode:typeof o.exitCode=="number"?o.exitCode:void 0,signal:typeof o.signal=="number"?o.signal:null}):o.t==="restarted"&&this.projections.set(o.s,{...n,sequence:o.q,history:typeof o.history=="string"?o.history:"",status:"running",exitCode:void 0,signal:null}));for(const a of r)o.q<=a.lastSequence||(a.lastSequence=o.q,o.t==="output"?a.handlers.onEvent({type:"data",sequence:o.q,data:typeof o.d=="string"?o.d:"",replayData:typeof o.r=="string"?o.r:void 0}):o.t==="exit"?a.handlers.onEvent({type:"exit",sequence:o.q,exitCode:typeof o.exitCode=="number"?o.exitCode:void 0,signal:typeof o.signal=="number"?o.signal:null}):o.t==="restarted"&&a.handlers.onEvent({type:"snapshot",sequence:o.q,data:typeof o.history=="string"?o.history:"",status:"running"}))}send(t){if(!this.socket||this.socket.readyState!==ct)return!1;try{return this.socket.send(Im(t)),!0}catch{return!1}}scheduleReconnect(){if(this.reconnectTimer||this.disposed||this.subscribers.size===0)return;this.failures+=1;const o=typeof document<"u"&&document.visibilityState==="hidden"||typeof navigator<"u"&&!navigator.onLine?6e4:Math.min(500*2**Math.min(this.failures-1,10),8e3);for(const n of this.subscribers.values())for(const a of n)a.handlers.onEvent({type:"reconnecting",attempt:this.failures,maxAttempts:Number.POSITIVE_INFINITY});const r=()=>{typeof document<"u"&&document.visibilityState==="hidden"||typeof navigator<"u"&&!navigator.onLine||(this.reconnectTimer&&clearTimeout(this.reconnectTimer),this.reconnectTimer=null,this.wakeCleanup?.(),this.wakeCleanup=null,this.ensureConnected().catch(()=>this.scheduleReconnect()))};typeof window<"u"&&window.addEventListener("online",r),typeof document<"u"&&document.addEventListener("visibilitychange",r),this.wakeCleanup=()=>{typeof window<"u"&&window.removeEventListener("online",r),typeof document<"u"&&document.removeEventListener("visibilitychange",r)},this.reconnectTimer=setTimeout(r,o)}scheduleIdleClose(){this.idleCloseTimer||this.disposed||(this.idleCloseTimer=setTimeout(()=>{this.idleCloseTimer=null,!(this.disposed||this.subscribers.size>0)&&(this.generation+=1,this.opening=null,this.closeSocket())},Pm))}cancelIdleClose(){this.idleCloseTimer&&(clearTimeout(this.idleCloseTimer),this.idleCloseTimer=null)}startKeepalive(){this.stopKeepalive(),this.keepaliveTimer=setInterval(()=>this.send({t:"ping",v:3}),45e3)}stopKeepalive(){this.keepaliveTimer&&clearInterval(this.keepaliveTimer),this.keepaliveTimer=null}cancelReconnect(){this.reconnectTimer&&clearTimeout(this.reconnectTimer),this.reconnectTimer=null,this.wakeCleanup?.(),this.wakeCleanup=null}closeSocket(){this.stopKeepalive();const t=this.socket;this.socket=null,t&&(t.readyState===Rm||t.readyState===ct)&&t.close()}}let rt=new rs;async function Om(e){const t=await p("/api/terminal/create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw await Wr(t,"Failed to create terminal session");return t.json()}async function Nm(){const e=await p("/api/terminal/shells");if(!e.ok)throw await Wr(e,"Failed to list terminal shells");const t=await e.json().catch(()=>[]);return Array.isArray(t)?t.filter(o=>o&&typeof o=="object"&&Ao(o.id)&&typeof o.name=="string"&&typeof o.supportsLogin=="boolean"):[]}function Um(e,t,o){return rt.subscribe(e,{onEvent:t,onError:o})}async function Lm(e,t){await rt.write(e,t)}async function Gt(e,t,o){const r={method:t};o!==void 0&&(r.headers={"Content-Type":"application/json"},r.body=JSON.stringify(o));const n=await p(e,r);if(!n.ok)throw await Wr(n,"Terminal command failed");return n}async function Hm(e,t,o){await Gt(`/api/terminal/${e}/resize`,"POST",{cols:t,rows:o})}async function jm(e,t){await Gt(`/api/terminal/${e}/appearance`,"POST",t)}async function $m(e){await Gt(`/api/terminal/${e}`,"DELETE"),rt.forget(e)}async function zm(e,t){return(await Gt(`/api/terminal/${e}/restart`,"POST",t)).json()}async function qm(e){const o=await(await Gt("/api/terminal/force-kill","POST",e)).json().catch(()=>null);if(Array.isArray(o?.killedSessionIds))for(const r of o.killedSessionIds)typeof r=="string"&&rt.forget(r);else e.sessionId&&rt.forget(e.sessionId)}function MF(){rt.dispose(),rt=new rs}const Km=()=>({async listShells(){return Nm()},async createSession(e){return Om(e)},connect(e,t){const o=Um(e,t.onEvent,t.onError);return{close:()=>o()}},async sendInput(e,t){await Lm(e,t)},async resize(e){await Hm(e.sessionId,e.cols,e.rows)},async updateAppearance(e,t){await jm(e,t)},async close(e){await $m(e)},async restartSession(e,t){return zm(e,{cwd:t.cwd??"",cols:t.cols,rows:t.rows,themeMode:t.themeMode,terminalBackground:t.terminalBackground,terminalForeground:t.terminalForeground,shell:t.shell,loginShell:t.loginShell})},async forceKill(e){await qm(e)}}),b="/api/git",Gm=1200,Wm=5e3,br=new Map,Ct=new Map,ns=new Map,Hn=new Map,so=new Map,as=e=>e.trim(),Vr=(e,t)=>JSON.stringify([e,as(t)]),ss=(e,t,o)=>JSON.stringify([e,as(t),o??"full"]),Ar=(e,t)=>ns.get(Vr(e,t))??0,Le=e=>{const t=O(),o=Vr(t,e);ns.set(o,Ar(t,e)+1);for(const r of[void 0,"light"]){const n=ss(t,e,r);br.delete(n),Ct.delete(n)}};function A(e,t,o){const r={...o};return t&&(r.directory=t),Se().api(e,r)}async function Vm(e){const t=Vr(O(),e),o=Date.now(),r=Hn.get(t);if(r&&r.expiresAt>o)return r.value;const n=so.get(t);if(n)return n;const a=(async()=>{const s=await p(A(`${b}/check`,e));if(!s.ok)throw new Error(`Failed to check git repository: ${s.statusText}`);const c=!!(await s.json()).isGitRepository;return Hn.set(t,{value:c,expiresAt:Date.now()+Wm}),c})();so.set(t,a);try{return await a}finally{so.get(t)===a&&so.delete(t)}}async function Jm(e,t){const o=t?.mode,r=O(),n=ss(r,e,o),a=Date.now(),s=br.get(n);if(s&&s.expiresAt>a)return s.value;const i=Ct.get(n);if(i)return i;const c=(async()=>{const d=Ar(r,e),l=await p(A(`${b}/status`,e,o?{mode:o}:void 0));if(!l.ok)throw new Error(`Failed to get git status: ${l.statusText}`);const u=await l.json();return Ar(r,e)===d&&br.set(n,{value:u,expiresAt:Date.now()+Gm}),u})();Ct.set(n,c);try{return await c}finally{Ct.get(n)===c&&Ct.delete(n)}}async function Ym(e,t){const{path:o,staged:r,contextLines:n}=t;if(!o)throw new Error("path is required to fetch git diff");const a=await p(A(`${b}/diff`,e,{path:o,staged:r?"true":void 0,context:n}));if(!a.ok)throw new Error(`Failed to get git diff: ${a.statusText}`);return a.json()}async function Qm(e,t){const{base:o,head:r,path:n,contextLines:a}=t;if(!o||!r)throw new Error("base and head are required to fetch git range diff");const s=await p(A(`${b}/range-diff`,e,{base:o,head:r,path:n||void 0,context:a}));if(!s.ok)throw new Error(`Failed to get git range diff: ${s.statusText}`);return s.json()}async function Xm(e,t){const{path:o,staged:r}=t;if(!o)throw new Error("path is required to fetch git file diff");const n=await p(A(`${b}/file-diff`,e,{path:o,staged:r?"true":void 0}));if(!n.ok)throw new Error(`Failed to get git file diff: ${n.statusText}`);return n.json()}async function Zm(e,t,o){if(!t)throw new Error("path is required to revert git changes");const r=await p(A(`${b}/revert`,e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t,scope:o?.scope})});if(!r.ok){const n=await r.json().catch(()=>({error:r.statusText}));throw new Error(n.error||"Failed to revert git changes")}Le(e)}async function eg(e,t){await is(e,[t])}async function is(e,t){const o=t.map(n=>n.trim()).filter(Boolean);if(o.length===0)throw new Error("path is required to stage git changes");const r=await p(A(`${b}/stage`,e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({paths:o})});if(!r.ok){const n=await r.json().catch(()=>({error:r.statusText}));throw new Error(n.error||"Failed to stage git changes")}Le(e)}async function tg(e,t){await cs(e,[t])}async function cs(e,t){const o=t.map(n=>n.trim()).filter(Boolean);if(o.length===0)throw new Error("path is required to unstage git changes");const r=await p(A(`${b}/unstage`,e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({paths:o})});if(!r.ok){const n=await r.json().catch(()=>({error:r.statusText}));throw new Error(n.error||"Failed to unstage git changes")}Le(e)}async function og(e,t,o){await Jr(e,t,o,"stage")}async function rg(e,t,o){await Jr(e,t,o,"unstage")}async function ng(e,t,o){await Jr(e,t,o,"discard")}async function Jr(e,t,o,r){if(!t)throw new Error("path is required to apply a git hunk");if(typeof o!="string"||!o.trim())throw new Error("patch is required to apply a git hunk");const n=await p(A(`${b}/apply-hunk`,e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t,patch:o,action:r})});if(!n.ok){const a=await n.json().catch(()=>({error:n.statusText}));throw new Error(a.error||"Failed to apply git hunk")}Le(e)}async function ag(e){const t=await p(A(`${b}/branches`,e));if(!t.ok)throw new Error(`Failed to get branches: ${t.statusText}`);return t.json()}async function sg(e,t){if(!t?.branch)throw new Error("branch is required to delete a branch");const o=await p(A(`${b}/branches`,e),{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){const r=await o.json().catch(()=>({error:o.statusText}));throw new Error(r.error||"Failed to delete branch")}return o.json()}async function ig(e,t){if(!t?.branch)throw new Error("branch is required to delete remote branch");const o=await p(A(`${b}/remote-branches`,e),{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){const r=await o.json().catch(()=>({error:o.statusText}));throw new Error(r.error||"Failed to delete remote branch")}return o.json()}async function cg(e,t){const o=t?.remote?.trim();if(!o)throw new Error("remote is required to remove a remote");const r=await p(A(`${b}/remotes`,e),{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({remote:o})});if(!r.ok){const n=await r.json().catch(()=>({error:r.statusText}));throw new Error(n.error||"Failed to remove remote")}return r.json()}async function dg(e,t,o){if(!Array.isArray(t)||t.length===0)throw new Error("No files provided to generate commit message");const r={files:t};o?.zenModel&&(r.zenModel=o.zenModel),o?.providerId&&(r.providerId=o.providerId),o?.modelId&&(r.modelId=o.modelId);const n=await p(A(`${b}/commit-message`,e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){const c=await n.json().catch(()=>({error:n.statusText}));console.error("[git-generation][browser] http error",{status:n.status,statusText:n.statusText,error:c});const d=typeof c?.traceId=="string"&&c.traceId?` (traceId: ${c.traceId})`:"";throw new Error(`${c.error||"Failed to generate commit message"}${d}`)}const a=await n.json();if(!a?.message||typeof a.message!="object")throw new Error("Malformed commit generation response");const s=typeof a.message.subject=="string"&&a.message.subject.trim().length>0?a.message.subject.trim():"",i=Array.isArray(a.message.highlights)?a.message.highlights.filter(c=>typeof c=="string"&&c.trim().length>0).map(c=>c.trim()):[];return{message:{subject:s,highlights:i}}}async function lg(e,t){const{base:o,head:r,context:n,zenModel:a,providerId:s,modelId:i}=t;if(!o||!r)throw new Error("base and head are required");const c={base:o,head:r};n?.trim()&&(c.context=n.trim()),a&&(c.zenModel=a),s&&(c.providerId=s),i&&(c.modelId=i);const d=await p(A(`${b}/pr-description`,e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)});if(!d.ok){const m=await d.json().catch(()=>({error:d.statusText}));throw new Error(m.error||"Failed to generate PR description")}const l=await d.json().catch(()=>null),u=typeof l?.title=="string"?l.title:"",g=typeof l?.body=="string"?l.body:"";if(!u&&!g)throw new Error("Malformed PR description response");return{title:u,body:g}}async function ug(e,t,o={}){const r=await p(A(`${b}/commit`,e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:t,addAll:o.addAll??!1,files:o.files,stageFiles:o.stageFiles})});if(!r.ok){const a=await r.json().catch(()=>({error:r.statusText}));throw new Error(a.error||"Failed to create commit")}const n=await r.json();return Le(e),n}async function fg(e,t={}){const o=await p(A(`${b}/push`,e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){const n=await o.json().catch(()=>({error:o.statusText}));throw new Error(n.error||"Failed to push")}const r=await o.json();return Le(e),r}async function mg(e,t={}){const o=await p(A(`${b}/pull`,e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){const n=await o.json().catch(()=>({error:o.statusText}));throw new Error(n.error||"Failed to pull")}const r=await o.json();return Le(e),r}async function gg(e,t={}){const o=await p(A(`${b}/fetch`,e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){const n=await o.json().catch(()=>({error:o.statusText}));throw new Error(n.error||"Failed to fetch")}const r=await o.json();return Le(e),r}async function pg(e){const t=await p(A(`${b}/stashes`,e));if(!t.ok){const o=await t.json().catch(()=>({error:t.statusText}));throw new Error(o.error||"Failed to list stashes")}return t.json()}async function Fg(e,t){const o=await p(A(`${b}/stashes/file-counts`,e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refs:t})});if(!o.ok){const r=await o.json().catch(()=>({error:o.statusText}));throw new Error(r.error||"Failed to count stash files")}return o.json()}async function ds(e,t={}){const o=await p(A(`${b}/stash`,e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){const r=await o.json().catch(()=>({error:o.statusText}));throw new Error(r.error||"Failed to stash changes")}return o.json()}const Yr=async(e,t,o)=>{const r=await p(A(`${b}/${t}`,e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(!r.ok){const n=await r.json().catch(()=>({error:r.statusText}));throw new Error(n.error||`Failed to ${t}`)}return r.json()},hg=(e,t)=>Yr(e,"stash/apply",t),ls=(e,t)=>Yr(e,"stash/pop",t),yg=(e,t)=>Yr(e,"stash/drop",t);async function bg(e,t){const o=await p(A(`${b}/checkout`,e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({branch:t})});if(!o.ok){const r=await o.json().catch(()=>({error:o.statusText}));throw new Error(r.error||"Failed to checkout branch")}return o.json()}async function Ag(e,t,o){const r=await p(A(`${b}/branches`,e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,startPoint:o})});if(!r.ok){const n=await r.json().catch(()=>({error:r.statusText}));throw new Error(n.error||"Failed to create branch")}return r.json()}async function Eg(e,t,o){const r=await p(A(`${b}/branches/rename`,e),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({oldName:t,newName:o})});if(!r.ok){const n=await r.json().catch(()=>({error:r.statusText}));throw new Error(n.error||"Failed to rename branch")}return r.json()}async function Bg(e,t={}){const o=await p(A(`${b}/log`,e,{maxCount:t.maxCount,from:t.from,to:t.to,file:t.file,all:t.all?"true":void 0}));if(!o.ok){const r=await o.json().catch(()=>({error:o.statusText}));throw new Error(`Failed to get git log: ${r.error||o.statusText}`)}return o.json()}async function wg(e,t){const o=await p(A(`${b}/commit-files`,e,{hash:t}));if(!o.ok)throw new Error(`Failed to get commit files: ${o.statusText}`);return o.json()}async function TF(e,t,o,r){const n=await p(A(`${b}/commit-file-diff`,e,{hash:t,path:o,binary:void 0}));if(!n.ok)throw new Error(`Failed to get commit file diff: ${n.statusText}`);return n.json()}async function Cg(){const e=await p(A(`${b}/identities`,void 0));if(!e.ok)throw new Error(`Failed to get git identities: ${e.statusText}`);return e.json()}async function kg(e){const t=await p(A(`${b}/identities`,void 0),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){const o=await t.json().catch(()=>({error:t.statusText}));throw new Error(o.error||"Failed to create git identity")}return t.json()}async function vg(e,t){const o=await p(A(`${b}/identities/${e}`,void 0),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){const r=await o.json().catch(()=>({error:o.statusText}));throw new Error(r.error||"Failed to update git identity")}return o.json()}async function Dg(e){const t=await p(A(`${b}/identities/${e}`,void 0),{method:"DELETE"});if(!t.ok){const o=await t.json().catch(()=>({error:t.statusText}));throw new Error(o.error||"Failed to delete git identity")}}async function Sg(e){if(!e)return null;const t=await p(A(`${b}/current-identity`,e));if(!t.ok)throw new Error(`Failed to get current git identity: ${t.statusText}`);const o=await t.json();return o?{userName:o.userName??null,userEmail:o.userEmail??null,sshCommand:o.sshCommand??null}:null}async function Mg(e){if(!e)return!1;const t=await p(A(`${b}/has-local-identity`,e));if(!t.ok)throw new Error(`Failed to check local identity: ${t.statusText}`);return(await t.json().catch(()=>null))?.hasLocalIdentity===!0}async function RF(){const e=await p(A(`${b}/global-identity`,void 0));if(!e.ok)throw new Error(`Failed to get global git identity: ${e.statusText}`);const t=await e.json();return!t||!t.userName&&!t.userEmail?null:{userName:t.userName??null,userEmail:t.userEmail??null,sshCommand:t.sshCommand??null}}async function Tg(e,t){const o=await p(A(`${b}/set-identity`,e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({profileId:t})});if(!o.ok){const r=await o.json().catch(()=>({error:o.statusText}));throw new Error(r.error||"Failed to set git identity")}return o.json()}async function PF(){const e=await p(A(`${b}/discover-credentials`,void 0));if(!e.ok)throw new Error(`Failed to discover git credentials: ${e.statusText}`);return e.json()}async function Rg(e){const t=await p(A(`${b}/remotes`,e));if(!t.ok)throw new Error(`Failed to get remotes: ${t.statusText}`);return t.json()}async function Pg(e,t){const o=await p(A(`${b}/rebase`,e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){const r=await o.json().catch(()=>({error:o.statusText}));throw new Error(r.error||"Failed to rebase")}return o.json()}async function Ig(e){const t=await p(A(`${b}/rebase/abort`,e),{method:"POST"});if(!t.ok){const o=await t.json().catch(()=>({error:t.statusText}));throw new Error(o.error||"Failed to abort rebase")}return t.json()}async function xg(e,t){const o=await p(A(`${b}/merge`,e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){const r=await o.json().catch(()=>({error:o.statusText}));throw new Error(r.error||"Failed to merge")}return o.json()}async function _g(e,t){const o=await p(A(`${b}/checkout-commit`,e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({hash:t})});if(!o.ok){const r=await o.json().catch(()=>({error:o.statusText}));throw new Error(r.error||"Failed to checkout commit")}return o.json()}async function Og(e,t){const o=await p(A(`${b}/cherry-pick`,e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({hash:t})});if(!o.ok){const r=await o.json().catch(()=>({error:o.statusText}));throw new Error(r.error||"Failed to cherry-pick")}return o.json()}async function Ng(e,t){const o=await p(A(`${b}/revert-commit`,e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({hash:t})});if(!o.ok){const r=await o.json().catch(()=>({error:o.statusText}));throw new Error(r.error||"Failed to revert commit")}return o.json()}async function Ug(e,t,o,r){const n=await p(A(`${b}/reset-to-commit`,e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({hash:t,mode:o,force:r})});if(!n.ok){const a=await n.json().catch(()=>({error:n.statusText}));throw new Error(a.error||"Failed to reset")}return n.json()}async function Lg(e){const t=await p(A(`${b}/merge/abort`,e),{method:"POST"});if(!t.ok){const o=await t.json().catch(()=>({error:t.statusText}));throw new Error(o.error||"Failed to abort merge")}return t.json()}async function Hg(e){const t=await p(A(`${b}/rebase/continue`,e),{method:"POST"});if(!t.ok){const o=await t.json().catch(()=>({error:t.statusText}));throw new Error(o.error||"Failed to continue rebase")}return t.json()}async function jg(e){const t=await p(A(`${b}/merge/continue`,e),{method:"POST"});if(!t.ok){const o=await t.json().catch(()=>({error:t.statusText}));throw new Error(o.error||"Failed to continue merge")}return t.json()}async function $g(e,t){return await ds(e,{message:t?.message}),{success:!0}}async function zg(e){return await ls(e,{ref:"stash@{0}"}),{success:!0}}async function qg(e){const t=await p(A(`${b}/conflict-details`,e));if(!t.ok)throw new Error(`Failed to get conflict details: ${t.statusText}`);return t.json()}const Kg=()=>({checkIsGitRepository:Vm,getGitStatus:Jm,getGitDiff:Ym,getGitFileDiff:Xm,getGitRangeDiff:Qm,revertGitFile:Zm,stageGitFile:eg,stageGitFiles:is,unstageGitFile:tg,unstageGitFiles:cs,stageGitHunk:og,unstageGitHunk:rg,revertGitHunk:ng,getGitBranches:ag,deleteGitBranch:sg,deleteRemoteBranch:ig,removeRemote:cg,generateCommitMessage:dg,generatePullRequestDescription:lg,createGitCommit(e,t,o){return ug(e,t,o)},gitPush:fg,gitPull:mg,gitFetch:gg,listGitStashes:pg,countGitStashFiles:Fg,stashGitChanges:ds,applyGitStash:hg,popGitStash:ls,dropGitStash:yg,checkoutBranch:bg,createBranch:Ag,renameBranch:Eg,getGitLog(e,t){return Bg(e,t)},getCommitFiles:wg,getCurrentGitIdentity:Sg,hasLocalIdentity:Mg,setGitIdentity:Tg,getGitIdentities:Cg,createGitIdentity:kg,updateGitIdentity:vg,deleteGitIdentity:Dg,getRemotes:Rg,rebase:Pg,abortRebase:Ig,continueRebase:Hg,merge:xg,abortMerge:Lg,continueMerge:jg,checkoutCommit:_g,cherryPick:Og,revertCommit:Ng,resetToCommit:Ug,stash:$g,stashPop:zg,getConflictDetails:qg});class Qr extends Error{reason;status;constructor(t,o={}){super(t),this.name="FilesystemError",this.reason=o.reason??"unknown",this.status=o.status}}const IF=e=>e instanceof Qr||!!(e&&typeof e=="object"&&"reason"in e&&typeof e.reason=="string"),Gg=e=>{switch(e){case"os-permission":case"not-found":case"not-directory":case"invalid-response":return e;default:return"unknown"}},Q=e=>e.replace(/\\/g,"/"),Wg=(e,t)=>{if(!t||!Array.isArray(t.entries))throw new Qr("Directory listing returned an invalid response",{reason:"invalid-response"});return{directory:Q(t?.directory||t?.path||e),entries:t.entries.filter(r=>!!(r&&typeof r.name=="string"&&typeof r.path=="string")).map(r=>({name:r.name,path:Q(r.path),isDirectory:!!r.isDirectory}))}},ge=(e,t)=>{const o=t||e?.();return o?{"x-opencode-directory":o}:void 0},Vg=({getDirectory:e})=>({async listDirectory(t,o){const r=Q(t),n=new URLSearchParams;r&&n.set("path",r),o?.respectGitignore&&n.set("respectGitignore","true");const a=await p("/api/fs/list",{query:n,headers:ge(e)});if(!a.ok){const i=await a.json().catch(()=>({error:a.statusText}));throw new Qr(i.error||"Failed to list directory",{reason:Gg(i.reason),status:a.status})}const s=await a.json();return Wg(r,s)},async search(t){const o=new URLSearchParams,r=Q(t.directory);r&&o.set("directory",r),o.set("query",t.query),o.set("dirs","false"),o.set("type","file"),typeof t.maxResults=="number"&&Number.isFinite(t.maxResults)&&o.set("limit",String(t.maxResults));const n=await p("/api/find/file",{query:o,headers:ge(e)});if(!n.ok){const i=await n.json().catch(()=>({error:n.statusText}));throw new Error(i.error||"Failed to search files")}const a=await n.json();return(Array.isArray(a)?a:[]).map(i=>({path:Q(`${r}/${i}`),preview:[Q(i)]}))},async createDirectory(t){const o=Q(t),r=await p("/api/fs/mkdir",{method:"POST",headers:{"Content-Type":"application/json",...ge(e)},body:JSON.stringify({path:o})});if(!r.ok){const a=await r.json().catch(()=>({error:r.statusText}));throw new Error(a.error||"Failed to create directory")}const n=await r.json();return{success:!!n?.success,path:typeof n?.path=="string"?Q(n.path):o}},async statFile(t,o){const r=Q(t),n=new URLSearchParams({path:r});o?.allowOutsideWorkspace&&n.set("allowOutsideWorkspace","true"),o?.outsideFileGrant&&n.set("outsideFileGrant",o.outsideFileGrant);const a=await p("/api/fs/stat",{query:n,headers:ge(e,o?.directory)});if(!a.ok){const i=await a.json().catch(()=>({error:a.statusText}));throw new Error(i.error||"Failed to stat file")}const s=await a.json().catch(()=>({}));return{path:typeof s.path=="string"?Q(s.path):r,isFile:!!s.isFile,size:typeof s.size=="number"?s.size:0,mtimeMs:typeof s.mtimeMs=="number"?s.mtimeMs:void 0}},async readFile(t,o){const r=Q(t),n=new URLSearchParams({path:r});o?.allowOutsideWorkspace&&n.set("allowOutsideWorkspace","true"),o?.outsideFileGrant&&n.set("outsideFileGrant",o.outsideFileGrant),o?.optional&&n.set("optional","true");const a=await p("/api/fs/read",{query:n,cache:o?.optional?"no-store":"default",headers:ge(e,o?.directory)});if(!a.ok){const i=await a.json().catch(()=>({error:a.statusText}));throw new Error(i.error||"Failed to read file")}return{content:await a.text(),path:r}},async writeFile(t,o){const r=Q(t),n=await p("/api/fs/write",{method:"POST",headers:{"Content-Type":"application/json",...ge(e)},body:JSON.stringify({path:r,content:o})});if(!n.ok){const s=await n.json().catch(()=>({error:n.statusText}));throw new Error(s.error||"Failed to write file")}const a=await n.json().catch(()=>({}));return{success:!!a.success,path:typeof a.path=="string"?Q(a.path):r}},async delete(t){const o=Q(t),r=await p("/api/fs/delete",{method:"POST",headers:{"Content-Type":"application/json",...ge(e)},body:JSON.stringify({path:o})});if(!r.ok){const a=await r.json().catch(()=>({error:r.statusText}));throw new Error(a.error||"Failed to delete file")}return{success:!!(await r.json().catch(()=>({}))).success}},async rename(t,o){const r=await p("/api/fs/rename",{method:"POST",headers:{"Content-Type":"application/json",...ge(e)},body:JSON.stringify({oldPath:t,newPath:o})});if(!r.ok){const a=await r.json().catch(()=>({error:r.statusText}));throw new Error(a.error||"Failed to rename file")}const n=await r.json().catch(()=>({}));return{success:!!n.success,path:typeof n.path=="string"?Q(n.path):o}},async revealPath(t){const o=await p("/api/fs/reveal",{method:"POST",headers:{"Content-Type":"application/json",...ge(e)},body:JSON.stringify({path:Q(t)})});if(!o.ok){const n=await o.json().catch(()=>({error:o.statusText}));throw new Error(n.error||"Failed to reveal path")}return{success:!!(await o.json().catch(()=>({}))).success}},async downloadFile(t){const o=Q(t),r=await p("/api/fs/raw",{query:{path:o,download:!0},headers:ge(e)});if(!r.ok)throw new Error(`Download failed (${r.status})`);const n=await r.blob(),a=URL.createObjectURL(n),s=document.createElement("a");s.href=a,s.download=o.split("/").pop()||"file",document.body.appendChild(s),s.click(),document.body.removeChild(s),setTimeout(()=>URL.revokeObjectURL(a),100)}}),jn="/api/pi/ui-settings",$n=e=>{if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Invalid settings response");return e},Jg=()=>({async load(){const e=await p(jn,{method:"GET",headers:{Accept:"application/json"}});if(!e.ok)throw new Error(`Failed to load settings: ${e.statusText}`);return{settings:$n(await e.json()),source:"web"}},async save(e){const t=await p(jn,{method:"PUT",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(e)});if(!t.ok){const r=await t.json().catch(()=>({error:t.statusText}));throw new Error(r.error||"Failed to save settings")}return $n(await t.json())},async restartOpenCode(){return{restarted:!1}}}),Yg=()=>({async requestDirectoryAccess(e){return{success:!0,path:e.path}},async startAccessingDirectory(e){return{success:!0}},async stopAccessingDirectory(e){return{success:!0}}}),Qg=1500,Er=5e3,Xg="pichamber-notification-claim:",Mt=new Map,Zg=()=>typeof document>"u"?!0:document.visibilityState==="visible"&&document.hasFocus(),ep=e=>{const t=typeof e?.tag=="string"?e.tag.trim():"";return t||[e?.sessionId,e?.kind,e?.title,e?.body].filter(o=>typeof o=="string"&&o.trim().length>0).map(o=>o.trim()).join("|")},tp=e=>{for(const[t,o]of Mt)e-o>Er&&Mt.delete(t)},op=e=>{const t=ep(e);if(!t)return!0;const o=Date.now();tp(o);const r=Mt.get(t)??0;if(o-r<Er)return!1;try{if(typeof window<"u"&&window.localStorage){const n=`${Xg}${t}`,a=Number(window.localStorage.getItem(n)??"0");if(Number.isFinite(a)&&o-a<Er)return Mt.set(t,a),!1;Number.isFinite(a)&&a>0&&window.localStorage.removeItem(n),window.localStorage.setItem(n,String(o))}}catch{}return Mt.set(t,o),!0},us=async()=>{if(typeof navigator>"u"||!("serviceWorker"in navigator))return null;let e=null;try{e=await navigator.serviceWorker.getRegistration()??null}catch{e=null}if(e?.active)return e;if(!e)return null;try{return await Promise.race([navigator.serviceWorker.ready,new Promise(o=>{setTimeout(()=>o(null),Qg)})])??e}catch{return e}},rp=async e=>{const t=await us();if(!t||typeof t.showNotification!="function")return!1;try{return await t.showNotification(e?.title??"PiChamber",{body:e?.body,tag:e?.tag}),!0}catch(o){return console.warn("Failed to send notification via service worker",o),!1}},np=async()=>{const e=await us();if(!e||!("pushManager"in e)||!e.pushManager)return!1;try{return!!await e.pushManager.getSubscription()}catch{return!1}},ap=async e=>{if(e?.requireHidden&&typeof document<"u"&&document.hasFocus())return!0;if(typeof Notification>"u")return console.info("Notifications not supported in this environment",e),!1;if(Notification.permission==="default"&&await Notification.requestPermission()!=="granted"||Notification.permission!=="granted")return console.warn("Notification permission not granted"),!1;if(!Zg()&&await np()||!op(e))return!0;try{return await rp(e)||new Notification(e?.title??"PiChamber",{body:e?.body,tag:e?.tag}),!0}catch(t){return console.warn("Failed to send notification",t),!1}},sp=async e=>{if(typeof window>"u")return!1;const t=window.__PICHAMBER_DESKTOP__;if(!t?.invoke)return!1;try{return await t.invoke("desktop_notify",{payload:{title:e?.title,body:e?.body,tag:e?.tag,kind:e?.kind,sessionId:e?.sessionId,directory:e?.directory,requireHidden:e?.requireHidden}}),!0}catch(o){return console.warn("Failed to send native notification (desktop)",o),!1}},ip=()=>({async notifyAgentCompletion(e){return await sp(e)||await ap(e)},canNotify:()=>typeof window<"u"&&window.__PICHAMBER_DESKTOP__?.invoke?!0:typeof Notification<"u"?Notification.permission==="granted":!1}),cp=()=>({async getAvailableTools(){const e=await p("/api/experimental/tool/ids");if(!e.ok)throw new Error(`Tools API returned ${e.status} ${e.statusText}`);const t=await e.json();if(!Array.isArray(t))throw new Error("Tools API returned invalid data format");return t.filter(o=>typeof o=="string"&&o!=="invalid").sort()}}),Pe=async e=>await e.json().catch(()=>null),dp=()=>({async listClients(){const e=await p("/api/client-auth/clients",{method:"GET",headers:{Accept:"application/json"}}),t=await Pe(e);if(!e.ok||!t)throw new Error(t?.error||e.statusText||"Failed to load remote clients");return Array.isArray(t.clients)?t.clients:[]},async createClient(e={}){const t=await p("/api/client-auth/clients",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({label:e.label??""})}),o=await Pe(t);if(!t.ok||!o?.client||typeof o.token!="string")throw new Error(o?.error||t.statusText||"Failed to create remote client token");return o},async createPairingSession(e={}){const t=await p("/api/client-auth/pairing/sessions",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({label:e.label??"",...e.allowedClientKinds?{allowedClientKinds:e.allowedClientKinds}:{},...e.serverUrl?{serverUrl:e.serverUrl}:{},...typeof e.includeRelay=="boolean"?{includeRelay:e.includeRelay}:{},...typeof e.includeDirect=="boolean"?{includeDirect:e.includeDirect}:{}})}),o=await Pe(t);if(!t.ok||typeof o?.pairing?.secret!="string"||!o?.server)throw new Error(o?.error||t.statusText||"Failed to create pairing session");return o},async listPendingPairings(){const e=await p("/api/client-auth/pairing/sessions",{method:"GET",headers:{Accept:"application/json"}}),t=await Pe(e);if(!e.ok||!t)throw new Error(t?.error||e.statusText||"Failed to load pending pairings");return Array.isArray(t.pending)?t.pending:[]},async getPairingTransports(){const e=await p("/api/client-auth/pairing/transports",{method:"GET",headers:{Accept:"application/json"}}),t=await Pe(e);if(!e.ok||!t)throw new Error(t?.error||e.statusText||"Failed to load pairing transports");return{local:t.local??null,lan:t.lan??null,relayAvailable:t.relayAvailable!==!1}},async cancelPairing(e){const t=await p(`/api/client-auth/pairing/sessions/${encodeURIComponent(e)}`,{method:"DELETE",headers:{Accept:"application/json"}}),o=await Pe(t);if(!t.ok||!o)throw new Error(o?.error||t.statusText||"Failed to cancel pairing");return{cancelled:o.cancelled===!0}},async revokeClient(e){const t=await p(`/api/client-auth/clients/${encodeURIComponent(e)}`,{method:"DELETE",headers:{Accept:"application/json"}}),o=await Pe(t);if(!t.ok||!o)throw new Error(o?.error||t.statusText||"Failed to revoke remote client");return o},async purgeRevokedClients(){const e=await p("/api/client-auth/clients",{method:"DELETE",headers:{Accept:"application/json"}}),t=await Pe(e);if(!e.ok||!t)throw new Error(t?.error||e.statusText||"Failed to clear revoked clients");return t}}),lp=(e={})=>{const t=e.urls??Sr();return Si(t),{runtime:{platform:"web",isDesktop:!1,label:"web"},terminal:Km(),git:Kg(),files:Vg({getDirectory:()=>yr.getState().currentDirectory}),settings:Jg(),permissions:Yg(),notifications:ip(),clientAuth:dp(),tools:cp()}},zn=(e,t)=>{if(!e||!t)return!1;try{return new URL(e).origin===new URL(t).origin}catch{return!1}},up=()=>{const e=t=>typeof t=="string"?t.trim():"";return{apiBaseUrl:e(window.__PICHAMBER_API_BASE_URL__),clientToken:e(window.__PICHAMBER_CLIENT_TOKEN__),localOrigin:e(window.__PICHAMBER_LOCAL_ORIGIN__),runtimeHeaders:window.__PICHAMBER_RUNTIME_HEADERS__,relayHostId:e(window.__PICHAMBER_RELAY_HOST_ID__)}};let fs=Promise.resolve();const xF=()=>fs,_F=e=>{const{apiBaseUrl:t,clientToken:o,localOrigin:r,runtimeHeaders:n,relayHostId:a,relay:s}=up(),i=Fa({apiBaseUrl:t||void 0,realtimeBaseUrl:t||void 0});return Hi({apiBaseUrl:t,runtimeKey:zn(t,r)?"local":null}),ca(o||null),da(n||null),s&&ho({apiBaseUrl:t,clientToken:o||null,requestHeaders:n||null,runtimeKey:a?`host:${a}`:null,relay:s}),$t(t||void 0).catch(()=>{}),r&&!zn(t,r)&&Object.keys(vr()).length>0&&bi(r).catch(()=>{}),Li(),fs=s?Promise.resolve():Promise.race([fc(a||void 0).catch(()=>{}),new Promise(c=>{window.setTimeout(c,1e4)})]),lp({urls:i})};export{Pp as $,ka as A,Vp as B,G as C,Hf as D,la as E,Mp as F,Rp as G,dF as H,lF as I,oF as J,gp as K,vr as L,$t as M,Se as N,Lf as O,iF as P,Tp as Q,hF as R,Lp as S,Np as T,Up as U,zt as V,xr as W,AF as X,ye as Y,ld as Z,Yi as _,O as a,sc as a$,_p as a0,Op as a1,IF as a2,rF as a3,Tc as a4,DF as a5,ud as a6,md as a7,$p as a8,jp as a9,PF as aA,RF as aB,Cg as aC,Ym as aD,Vm as aE,pg as aF,Fg as aG,qg as aH,ds as aI,hg as aJ,ls as aK,yg as aL,TF as aM,Ag as aN,Ug as aO,Pg as aP,xg as aQ,Ng as aR,Og as aS,_g as aT,re as aU,ar as aV,Uf as aW,Ja as aX,Va as aY,Kt as aZ,Ue as a_,Ip as aa,nF as ab,jc as ac,zc as ad,Fm as ae,ji as af,Nc as ag,Jp as ah,ac as ai,Ap as aj,Ep as ak,Bp as al,tF as am,Ec as an,wt as ao,he as ap,Ia as aq,Pc as ar,Xa as as,is as at,eg as au,cs as av,tg as aw,Dg as ax,vg as ay,kg as az,qt as b,Xp as b0,va as b1,Wp as b2,eF as b3,Zp as b4,Yp as b5,uc as b6,Ee as b7,Ga as b8,Qi as b9,yF as bA,jf as bB,Qp as bC,Gp as bD,Hp as bE,hd as bF,sF as bG,Uc as bH,Lc as bI,Ao as bJ,pd as bK,Or as bL,wp as bM,kp as bN,Dp as bO,Cp as bP,vp as bQ,Sp as bR,Xi as bS,uF as ba,mF as bb,FF as bc,fF as bd,gF as be,Ka as bf,pF as bg,to as bh,$o as bi,vF as bj,xp as bk,SF as bl,Am as bm,Em as bn,CF as bo,_n as bp,wF as bq,aF as br,cF as bs,Hc as bt,$c as bu,qp as bv,hp as bw,yp as bx,bF as by,Kp as bz,_F as c,Ir as d,Fp as e,ta as f,xF as g,yr as h,pp as i,Qc as j,MF as k,fm as l,EF as m,wa as n,bp as o,Ea as p,BF as q,p as r,ho as s,vo as t,ie as u,ne as v,zp as w,Zi as x,kF as y,ht as z};