claude-mux 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (636) hide show
  1. package/.beads/README.md +81 -0
  2. package/.beads/config.yaml +62 -0
  3. package/.beads/interactions.jsonl +0 -0
  4. package/.beads/issues.jsonl +5 -0
  5. package/.beads/metadata.json +4 -0
  6. package/.eslintrc.json +25 -0
  7. package/.gitattributes +3 -0
  8. package/.prettierrc +7 -0
  9. package/CLAUDE.md +123 -0
  10. package/LICENSE +21 -0
  11. package/PLAN-beads-integration.md +250 -0
  12. package/README.md +366 -0
  13. package/dist/app.d.ts +2 -0
  14. package/dist/app.d.ts.map +1 -0
  15. package/dist/app.js +147 -0
  16. package/dist/app.js.map +1 -0
  17. package/dist/cli.d.ts +3 -0
  18. package/dist/cli.d.ts.map +1 -0
  19. package/dist/cli.js +65 -0
  20. package/dist/cli.js.map +1 -0
  21. package/dist/commands/index.d.ts +5 -0
  22. package/dist/commands/index.d.ts.map +1 -0
  23. package/dist/commands/index.js +5 -0
  24. package/dist/commands/index.js.map +1 -0
  25. package/dist/commands/serve.d.ts +8 -0
  26. package/dist/commands/serve.d.ts.map +1 -0
  27. package/dist/commands/serve.js +59 -0
  28. package/dist/commands/serve.js.map +1 -0
  29. package/dist/commands/setup.d.ts +4 -0
  30. package/dist/commands/setup.d.ts.map +1 -0
  31. package/dist/commands/setup.js +12 -0
  32. package/dist/commands/setup.js.map +1 -0
  33. package/dist/commands/tui.d.ts +9 -0
  34. package/dist/commands/tui.d.ts.map +1 -0
  35. package/dist/commands/tui.js +234 -0
  36. package/dist/commands/tui.js.map +1 -0
  37. package/dist/commands/uninstall.d.ts +4 -0
  38. package/dist/commands/uninstall.d.ts.map +1 -0
  39. package/dist/commands/uninstall.js +12 -0
  40. package/dist/commands/uninstall.js.map +1 -0
  41. package/dist/components/Header.d.ts +7 -0
  42. package/dist/components/Header.d.ts.map +1 -0
  43. package/dist/components/Header.js +14 -0
  44. package/dist/components/Header.js.map +1 -0
  45. package/dist/components/HelpDialog.d.ts +6 -0
  46. package/dist/components/HelpDialog.d.ts.map +1 -0
  47. package/dist/components/HelpDialog.js +14 -0
  48. package/dist/components/HelpDialog.js.map +1 -0
  49. package/dist/components/SessionEntry.d.ts +17 -0
  50. package/dist/components/SessionEntry.d.ts.map +1 -0
  51. package/dist/components/SessionEntry.js +102 -0
  52. package/dist/components/SessionEntry.js.map +1 -0
  53. package/dist/components/SessionList.d.ts +14 -0
  54. package/dist/components/SessionList.d.ts.map +1 -0
  55. package/dist/components/SessionList.js +57 -0
  56. package/dist/components/SessionList.js.map +1 -0
  57. package/dist/components/StatusBar.d.ts +6 -0
  58. package/dist/components/StatusBar.d.ts.map +1 -0
  59. package/dist/components/StatusBar.js +7 -0
  60. package/dist/components/StatusBar.js.map +1 -0
  61. package/dist/components/index.d.ts +6 -0
  62. package/dist/components/index.d.ts.map +1 -0
  63. package/dist/components/index.js +6 -0
  64. package/dist/components/index.js.map +1 -0
  65. package/dist/db/index.d.ts +2 -0
  66. package/dist/db/index.d.ts.map +1 -0
  67. package/dist/db/index.js +3 -0
  68. package/dist/db/index.js.map +1 -0
  69. package/dist/db/schema.d.ts +4 -0
  70. package/dist/db/schema.d.ts.map +1 -0
  71. package/dist/db/schema.js +23 -0
  72. package/dist/db/schema.js.map +1 -0
  73. package/dist/db/sessions-json.d.ts +85 -0
  74. package/dist/db/sessions-json.d.ts.map +1 -0
  75. package/dist/db/sessions-json.js +242 -0
  76. package/dist/db/sessions-json.js.map +1 -0
  77. package/dist/db/sessions.d.ts +38 -0
  78. package/dist/db/sessions.d.ts.map +1 -0
  79. package/dist/db/sessions.js +87 -0
  80. package/dist/db/sessions.js.map +1 -0
  81. package/dist/hooks/claude-mux-hook.d.ts +15 -0
  82. package/dist/hooks/claude-mux-hook.d.ts.map +1 -0
  83. package/dist/hooks/claude-mux-hook.js +396 -0
  84. package/dist/hooks/claude-mux-hook.js.map +1 -0
  85. package/dist/hooks/claude-watch-hook.d.ts +15 -0
  86. package/dist/hooks/claude-watch-hook.d.ts.map +1 -0
  87. package/dist/hooks/claude-watch-hook.js +396 -0
  88. package/dist/hooks/claude-watch-hook.js.map +1 -0
  89. package/dist/server/custom-server.d.ts +13 -0
  90. package/dist/server/custom-server.d.ts.map +1 -0
  91. package/dist/server/custom-server.js +63 -0
  92. package/dist/server/custom-server.js.map +1 -0
  93. package/dist/server/index.d.ts +9 -0
  94. package/dist/server/index.d.ts.map +1 -0
  95. package/dist/server/index.js +1143 -0
  96. package/dist/server/index.js.map +1 -0
  97. package/dist/server/middleware/cors.d.ts +2 -0
  98. package/dist/server/middleware/cors.d.ts.map +1 -0
  99. package/dist/server/middleware/cors.js +11 -0
  100. package/dist/server/middleware/cors.js.map +1 -0
  101. package/dist/server/routes/sessions.d.ts +3 -0
  102. package/dist/server/routes/sessions.d.ts.map +1 -0
  103. package/dist/server/routes/sessions.js +78 -0
  104. package/dist/server/routes/sessions.js.map +1 -0
  105. package/dist/server/routes/stream.d.ts +3 -0
  106. package/dist/server/routes/stream.d.ts.map +1 -0
  107. package/dist/server/routes/stream.js +45 -0
  108. package/dist/server/routes/stream.js.map +1 -0
  109. package/dist/server/types.d.ts +28 -0
  110. package/dist/server/types.d.ts.map +1 -0
  111. package/dist/server/types.js +2 -0
  112. package/dist/server/types.js.map +1 -0
  113. package/dist/server/watcher.d.ts +22 -0
  114. package/dist/server/watcher.d.ts.map +1 -0
  115. package/dist/server/watcher.js +119 -0
  116. package/dist/server/watcher.js.map +1 -0
  117. package/dist/server/websocket.d.ts +51 -0
  118. package/dist/server/websocket.d.ts.map +1 -0
  119. package/dist/server/websocket.js +156 -0
  120. package/dist/server/websocket.js.map +1 -0
  121. package/dist/server/ws-handlers.d.ts +174 -0
  122. package/dist/server/ws-handlers.d.ts.map +1 -0
  123. package/dist/server/ws-handlers.js +695 -0
  124. package/dist/server/ws-handlers.js.map +1 -0
  125. package/dist/setup/hooks.d.ts +44 -0
  126. package/dist/setup/hooks.d.ts.map +1 -0
  127. package/dist/setup/hooks.js +267 -0
  128. package/dist/setup/hooks.js.map +1 -0
  129. package/dist/setup/index.d.ts +3 -0
  130. package/dist/setup/index.d.ts.map +1 -0
  131. package/dist/setup/index.js +3 -0
  132. package/dist/setup/index.js.map +1 -0
  133. package/dist/setup/wizard.d.ts +4 -0
  134. package/dist/setup/wizard.d.ts.map +1 -0
  135. package/dist/setup/wizard.js +72 -0
  136. package/dist/setup/wizard.js.map +1 -0
  137. package/dist/tmux/detect.d.ts +25 -0
  138. package/dist/tmux/detect.d.ts.map +1 -0
  139. package/dist/tmux/detect.js +71 -0
  140. package/dist/tmux/detect.js.map +1 -0
  141. package/dist/tmux/navigate.d.ts +13 -0
  142. package/dist/tmux/navigate.d.ts.map +1 -0
  143. package/dist/tmux/navigate.js +41 -0
  144. package/dist/tmux/navigate.js.map +1 -0
  145. package/dist/tmux/pane.d.ts +57 -0
  146. package/dist/tmux/pane.d.ts.map +1 -0
  147. package/dist/tmux/pane.js +156 -0
  148. package/dist/tmux/pane.js.map +1 -0
  149. package/dist/tmux/resize.d.ts +10 -0
  150. package/dist/tmux/resize.d.ts.map +1 -0
  151. package/dist/tmux/resize.js +25 -0
  152. package/dist/tmux/resize.js.map +1 -0
  153. package/dist/utils/paths.d.ts +7 -0
  154. package/dist/utils/paths.d.ts.map +1 -0
  155. package/dist/utils/paths.js +9 -0
  156. package/dist/utils/paths.js.map +1 -0
  157. package/dist/utils/pid.d.ts +5 -0
  158. package/dist/utils/pid.d.ts.map +1 -0
  159. package/dist/utils/pid.js +14 -0
  160. package/dist/utils/pid.js.map +1 -0
  161. package/dist/utils/version.d.ts +6 -0
  162. package/dist/utils/version.d.ts.map +1 -0
  163. package/dist/utils/version.js +6 -0
  164. package/dist/utils/version.js.map +1 -0
  165. package/dist/web/client/_app/immutable/assets/0.WptSHSUl.css +1 -0
  166. package/dist/web/client/_app/immutable/assets/2.s6Kx4oz1.css +1 -0
  167. package/dist/web/client/_app/immutable/assets/4.DoNWy7tW.css +1 -0
  168. package/dist/web/client/_app/immutable/assets/AllSessionsPanel.CGHY3HLy.css +1 -0
  169. package/dist/web/client/_app/immutable/chunks/-3mUPuLP.js +1 -0
  170. package/dist/web/client/_app/immutable/chunks/B5U4_V3d.js +1 -0
  171. package/dist/web/client/_app/immutable/chunks/BHwiZXRv.js +1 -0
  172. package/dist/web/client/_app/immutable/chunks/C9P-coqM.js +1 -0
  173. package/dist/web/client/_app/immutable/chunks/Cegv0r8x.js +1 -0
  174. package/dist/web/client/_app/immutable/chunks/DU91Ml7U.js +3 -0
  175. package/dist/web/client/_app/immutable/chunks/DmdO6ygw.js +1 -0
  176. package/dist/web/client/_app/immutable/chunks/HKNo9LID.js +5 -0
  177. package/dist/web/client/_app/immutable/chunks/U4ip-C0d.js +2 -0
  178. package/dist/web/client/_app/immutable/chunks/cgUjKIhX.js +2 -0
  179. package/dist/web/client/_app/immutable/entry/app.CGIBnoln.js +2 -0
  180. package/dist/web/client/_app/immutable/entry/start.CJk8zB1j.js +1 -0
  181. package/dist/web/client/_app/immutable/nodes/0.CqlJ9a31.js +1 -0
  182. package/dist/web/client/_app/immutable/nodes/1.BQUZh2-w.js +1 -0
  183. package/dist/web/client/_app/immutable/nodes/2.CCV1YdgF.js +1 -0
  184. package/dist/web/client/_app/immutable/nodes/3.D9tDCdq8.js +1 -0
  185. package/dist/web/client/_app/immutable/nodes/4.BqPyNkFA.js +6 -0
  186. package/dist/web/client/_app/version.json +1 -0
  187. package/dist/web/client/robots.txt +3 -0
  188. package/dist/web/env.js +32 -0
  189. package/dist/web/handler.js +744 -0
  190. package/dist/web/index.js +49 -0
  191. package/dist/web/server/chunks/0-BHWsmCJv.js +23 -0
  192. package/dist/web/server/chunks/0-BHWsmCJv.js.map +1 -0
  193. package/dist/web/server/chunks/1-YRx6A8Tm.js +17 -0
  194. package/dist/web/server/chunks/1-YRx6A8Tm.js.map +1 -0
  195. package/dist/web/server/chunks/2-eC6JuGAo.js +22 -0
  196. package/dist/web/server/chunks/2-eC6JuGAo.js.map +1 -0
  197. package/dist/web/server/chunks/3-Bk-wV20p.js +32 -0
  198. package/dist/web/server/chunks/3-Bk-wV20p.js.map +1 -0
  199. package/dist/web/server/chunks/4-nteBgDrW.js +21 -0
  200. package/dist/web/server/chunks/4-nteBgDrW.js.map +1 -0
  201. package/dist/web/server/chunks/AllSessionsPanel.svelte_svelte_type_style_lang-Bt4B0-oi.js +35 -0
  202. package/dist/web/server/chunks/AllSessionsPanel.svelte_svelte_type_style_lang-Bt4B0-oi.js.map +1 -0
  203. package/dist/web/server/chunks/_layout.svelte-BIF9eZCY.js +453 -0
  204. package/dist/web/server/chunks/_layout.svelte-BIF9eZCY.js.map +1 -0
  205. package/dist/web/server/chunks/_page.svelte-Be6iabRn.js +34 -0
  206. package/dist/web/server/chunks/_page.svelte-Be6iabRn.js.map +1 -0
  207. package/dist/web/server/chunks/_page.svelte-C_fGJVSE.js +576 -0
  208. package/dist/web/server/chunks/_page.svelte-C_fGJVSE.js.map +1 -0
  209. package/dist/web/server/chunks/_page.svelte-CnfJk6cu.js +2722 -0
  210. package/dist/web/server/chunks/_page.svelte-CnfJk6cu.js.map +1 -0
  211. package/dist/web/server/chunks/_server.ts-3WAmKvn2.js +34 -0
  212. package/dist/web/server/chunks/_server.ts-3WAmKvn2.js.map +1 -0
  213. package/dist/web/server/chunks/_server.ts-BAWJCSFb.js +29 -0
  214. package/dist/web/server/chunks/_server.ts-BAWJCSFb.js.map +1 -0
  215. package/dist/web/server/chunks/_server.ts-BPpMOZCm.js +24 -0
  216. package/dist/web/server/chunks/_server.ts-BPpMOZCm.js.map +1 -0
  217. package/dist/web/server/chunks/_server.ts-BUKgRb6U.js +13 -0
  218. package/dist/web/server/chunks/_server.ts-BUKgRb6U.js.map +1 -0
  219. package/dist/web/server/chunks/_server.ts-BVHUS8fm.js +41 -0
  220. package/dist/web/server/chunks/_server.ts-BVHUS8fm.js.map +1 -0
  221. package/dist/web/server/chunks/_server.ts-BrF3od0O.js +45 -0
  222. package/dist/web/server/chunks/_server.ts-BrF3od0O.js.map +1 -0
  223. package/dist/web/server/chunks/_server.ts-C4oPmOJR.js +38 -0
  224. package/dist/web/server/chunks/_server.ts-C4oPmOJR.js.map +1 -0
  225. package/dist/web/server/chunks/_server.ts-CDAUUmG_.js +21 -0
  226. package/dist/web/server/chunks/_server.ts-CDAUUmG_.js.map +1 -0
  227. package/dist/web/server/chunks/_server.ts-CR0uWvpz.js +24 -0
  228. package/dist/web/server/chunks/_server.ts-CR0uWvpz.js.map +1 -0
  229. package/dist/web/server/chunks/_server.ts-CSqdCNGi.js +21 -0
  230. package/dist/web/server/chunks/_server.ts-CSqdCNGi.js.map +1 -0
  231. package/dist/web/server/chunks/_server.ts-DI9fzUo9.js +52 -0
  232. package/dist/web/server/chunks/_server.ts-DI9fzUo9.js.map +1 -0
  233. package/dist/web/server/chunks/_server.ts-DNjJTClI.js +46 -0
  234. package/dist/web/server/chunks/_server.ts-DNjJTClI.js.map +1 -0
  235. package/dist/web/server/chunks/_server.ts-DdbOAkOj.js +22 -0
  236. package/dist/web/server/chunks/_server.ts-DdbOAkOj.js.map +1 -0
  237. package/dist/web/server/chunks/_server.ts-Df2isGQc.js +41 -0
  238. package/dist/web/server/chunks/_server.ts-Df2isGQc.js.map +1 -0
  239. package/dist/web/server/chunks/_server.ts-Vpw25_-3.js +12 -0
  240. package/dist/web/server/chunks/_server.ts-Vpw25_-3.js.map +1 -0
  241. package/dist/web/server/chunks/_server.ts-WldRpSRi.js +26 -0
  242. package/dist/web/server/chunks/_server.ts-WldRpSRi.js.map +1 -0
  243. package/dist/web/server/chunks/alert-dialog-description-DDA6u-nS.js +2890 -0
  244. package/dist/web/server/chunks/alert-dialog-description-DDA6u-nS.js.map +1 -0
  245. package/dist/web/server/chunks/auth-DrUf-v4J.js +51 -0
  246. package/dist/web/server/chunks/auth-DrUf-v4J.js.map +1 -0
  247. package/dist/web/server/chunks/button-D6xS9rHt.js +2335 -0
  248. package/dist/web/server/chunks/button-D6xS9rHt.js.map +1 -0
  249. package/dist/web/server/chunks/chunk-EKzHsMy_.js +42 -0
  250. package/dist/web/server/chunks/chunks-DmdqVYC7.js +58 -0
  251. package/dist/web/server/chunks/chunks-DmdqVYC7.js.map +1 -0
  252. package/dist/web/server/chunks/client-CUrSQijh.js +18 -0
  253. package/dist/web/server/chunks/client-CUrSQijh.js.map +1 -0
  254. package/dist/web/server/chunks/clsx-FzI4_gi0.js +332 -0
  255. package/dist/web/server/chunks/clsx-FzI4_gi0.js.map +1 -0
  256. package/dist/web/server/chunks/error.svelte-D-c-9pTE.js +27 -0
  257. package/dist/web/server/chunks/error.svelte-D-c-9pTE.js.map +1 -0
  258. package/dist/web/server/chunks/events-BDBlYddw.js +89 -0
  259. package/dist/web/server/chunks/events-BDBlYddw.js.map +1 -0
  260. package/dist/web/server/chunks/exports-CCurQ-Tl.js +131 -0
  261. package/dist/web/server/chunks/exports-CCurQ-Tl.js.map +1 -0
  262. package/dist/web/server/chunks/hooks.server-BK1bopsh.js +86 -0
  263. package/dist/web/server/chunks/hooks.server-BK1bopsh.js.map +1 -0
  264. package/dist/web/server/chunks/index2-BQnysSj-.js +2588 -0
  265. package/dist/web/server/chunks/index2-BQnysSj-.js.map +1 -0
  266. package/dist/web/server/chunks/internal-DLENj6YI.js +61 -0
  267. package/dist/web/server/chunks/internal-DLENj6YI.js.map +1 -0
  268. package/dist/web/server/chunks/pane-Dg3pKvsm.js +94 -0
  269. package/dist/web/server/chunks/pane-Dg3pKvsm.js.map +1 -0
  270. package/dist/web/server/chunks/sessions-json-DgfkCLO7.js +107 -0
  271. package/dist/web/server/chunks/sessions-json-DgfkCLO7.js.map +1 -0
  272. package/dist/web/server/chunks/sessions.svelte-Ds82MvkB.js +178 -0
  273. package/dist/web/server/chunks/sessions.svelte-Ds82MvkB.js.map +1 -0
  274. package/dist/web/server/chunks/state.svelte-xeAZvWZ6.js +7 -0
  275. package/dist/web/server/chunks/state.svelte-xeAZvWZ6.js.map +1 -0
  276. package/dist/web/server/chunks/ws-handlers-B4r5eSP2.js +733 -0
  277. package/dist/web/server/chunks/ws-handlers-B4r5eSP2.js.map +1 -0
  278. package/dist/web/server/index.js +4907 -0
  279. package/dist/web/server/index.js.map +1 -0
  280. package/dist/web/server/manifest.js +233 -0
  281. package/dist/web/server/manifest.js.map +1 -0
  282. package/docs/images/desktop-dashboard.png +0 -0
  283. package/docs/images/desktop-session.png +0 -0
  284. package/docs/images/mobile-dashboard.png +0 -0
  285. package/docs/images/mobile-session.png +0 -0
  286. package/docs/release-checklist.md +228 -0
  287. package/docs/removing-hooks.md +135 -0
  288. package/docs/state-transitions.md +109 -0
  289. package/package.json +71 -0
  290. package/src/app.tsx +188 -0
  291. package/src/cli.ts +83 -0
  292. package/src/commands/index.ts +4 -0
  293. package/src/commands/serve.ts +75 -0
  294. package/src/commands/setup.ts +13 -0
  295. package/src/commands/tui.ts +255 -0
  296. package/src/commands/uninstall.ts +13 -0
  297. package/src/components/Header.tsx +32 -0
  298. package/src/components/HelpDialog.tsx +45 -0
  299. package/src/components/SessionEntry.tsx +202 -0
  300. package/src/components/SessionList.tsx +98 -0
  301. package/src/components/StatusBar.tsx +26 -0
  302. package/src/components/index.ts +5 -0
  303. package/src/db/index.ts +20 -0
  304. package/src/db/sessions-json.ts +314 -0
  305. package/src/hooks/claude-mux-hook.ts +498 -0
  306. package/src/server/watcher.ts +128 -0
  307. package/src/server/ws-handlers.ts +922 -0
  308. package/src/setup/hooks.ts +333 -0
  309. package/src/setup/index.ts +2 -0
  310. package/src/setup/wizard.ts +81 -0
  311. package/src/tmux/detect.ts +87 -0
  312. package/src/tmux/navigate.ts +42 -0
  313. package/src/tmux/pane.ts +167 -0
  314. package/src/tmux/resize.ts +28 -0
  315. package/src/utils/paths.ts +11 -0
  316. package/src/utils/pid.ts +12 -0
  317. package/src/utils/version.ts +5 -0
  318. package/tests/components/Header.test.tsx +42 -0
  319. package/tests/components/SessionEntry-extended.test.tsx +165 -0
  320. package/tests/components/SessionEntry.test.tsx +138 -0
  321. package/tests/components/SessionList.test.tsx +110 -0
  322. package/tests/components/StatusBar.test.tsx +31 -0
  323. package/tests/db/index.test.ts +78 -0
  324. package/tests/db/sessions.test.ts +230 -0
  325. package/tests/server/integration.test.ts +319 -0
  326. package/tests/server/sessions.test.ts +114 -0
  327. package/tests/setup/hooks-integration.test.ts +148 -0
  328. package/tests/setup/hooks.test.ts +123 -0
  329. package/tests/tmux/detect.test.ts +54 -0
  330. package/tests/tmux/navigate.test.ts +30 -0
  331. package/tests/utils/pid.test.ts +17 -0
  332. package/tsconfig.cli.json +9 -0
  333. package/tsconfig.json +22 -0
  334. package/vitest.config.ts +29 -0
  335. package/web/.svelte-kit/adapter-bun/.vite/manifest.json +408 -0
  336. package/web/.svelte-kit/adapter-bun/_app/immutable/assets/AllSessionsPanel.BKhqOrbV.css +1 -0
  337. package/web/.svelte-kit/adapter-bun/_app/immutable/assets/_layout.WptSHSUl.css +1 -0
  338. package/web/.svelte-kit/adapter-bun/_app/immutable/assets/_page.DldLgTc-.css +1 -0
  339. package/web/.svelte-kit/adapter-bun/_app/immutable/assets/_page.DoNWy7tW.css +1 -0
  340. package/web/.svelte-kit/adapter-bun/chunks/AllSessionsPanel.svelte_svelte_type_style_lang.js +49 -0
  341. package/web/.svelte-kit/adapter-bun/chunks/alert-dialog-description.js +2670 -0
  342. package/web/.svelte-kit/adapter-bun/chunks/auth.js +59 -0
  343. package/web/.svelte-kit/adapter-bun/chunks/button.js +82 -0
  344. package/web/.svelte-kit/adapter-bun/chunks/client.js +29 -0
  345. package/web/.svelte-kit/adapter-bun/chunks/context.js +133 -0
  346. package/web/.svelte-kit/adapter-bun/chunks/environment.js +34 -0
  347. package/web/.svelte-kit/adapter-bun/chunks/events.js +121 -0
  348. package/web/.svelte-kit/adapter-bun/chunks/exports.js +174 -0
  349. package/web/.svelte-kit/adapter-bun/chunks/false.js +4 -0
  350. package/web/.svelte-kit/adapter-bun/chunks/index.js +59 -0
  351. package/web/.svelte-kit/adapter-bun/chunks/index2.js +2828 -0
  352. package/web/.svelte-kit/adapter-bun/chunks/internal.js +920 -0
  353. package/web/.svelte-kit/adapter-bun/chunks/pane.js +82 -0
  354. package/web/.svelte-kit/adapter-bun/chunks/sessions-json.js +124 -0
  355. package/web/.svelte-kit/adapter-bun/chunks/sessions.svelte.js +229 -0
  356. package/web/.svelte-kit/adapter-bun/chunks/shared.js +542 -0
  357. package/web/.svelte-kit/adapter-bun/chunks/state.svelte.js +16 -0
  358. package/web/.svelte-kit/adapter-bun/chunks/utils.js +43 -0
  359. package/web/.svelte-kit/adapter-bun/chunks/ws-handlers.js +782 -0
  360. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/auth/login/_server.ts.js +22 -0
  361. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/auth/logout/_server.ts.js +9 -0
  362. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/beads/_server.ts.js +22 -0
  363. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/browse/_server.ts.js +50 -0
  364. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/chrome/_server.ts.js +30 -0
  365. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/files/image/_server.ts.js +53 -0
  366. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/health/_server.ts.js +7 -0
  367. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/projects/new-session/_server.ts.js +44 -0
  368. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/sessions/_id_/_server.ts.js +20 -0
  369. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/sessions/_id_/kill/_server.ts.js +36 -0
  370. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/sessions/_id_/restart/_server.ts.js +40 -0
  371. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/sessions/_id_/screenshots/_server.ts.js +28 -0
  372. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/sessions/_id_/send/_server.ts.js +29 -0
  373. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/sessions/_server.ts.js +49 -0
  374. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/sessions/_target_/output/_server.ts.js +14 -0
  375. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/tmux/panes/_server.ts.js +21 -0
  376. package/web/.svelte-kit/adapter-bun/entries/fallbacks/error.svelte.js +27 -0
  377. package/web/.svelte-kit/adapter-bun/entries/hooks.server.js +105 -0
  378. package/web/.svelte-kit/adapter-bun/entries/pages/_layout.svelte.js +499 -0
  379. package/web/.svelte-kit/adapter-bun/entries/pages/_page.svelte.js +3057 -0
  380. package/web/.svelte-kit/adapter-bun/entries/pages/login/_page.server.ts.js +15 -0
  381. package/web/.svelte-kit/adapter-bun/entries/pages/login/_page.svelte.js +37 -0
  382. package/web/.svelte-kit/adapter-bun/entries/pages/session/_target_/_page.svelte.js +653 -0
  383. package/web/.svelte-kit/adapter-bun/index.js +3864 -0
  384. package/web/.svelte-kit/adapter-bun/internal.js +13 -0
  385. package/web/.svelte-kit/adapter-bun/manifest-full.js +167 -0
  386. package/web/.svelte-kit/adapter-bun/manifest.js +171 -0
  387. package/web/.svelte-kit/adapter-bun/nodes/0.js +8 -0
  388. package/web/.svelte-kit/adapter-bun/nodes/1.js +8 -0
  389. package/web/.svelte-kit/adapter-bun/nodes/2.js +8 -0
  390. package/web/.svelte-kit/adapter-bun/nodes/3.js +10 -0
  391. package/web/.svelte-kit/adapter-bun/nodes/4.js +8 -0
  392. package/web/.svelte-kit/adapter-bun/remote-entry.js +541 -0
  393. package/web/.svelte-kit/adapter-node/.vite/manifest.json +223 -0
  394. package/web/.svelte-kit/adapter-node/_app/immutable/assets/_layout.4NiX29PU.css +1 -0
  395. package/web/.svelte-kit/adapter-node/_app/immutable/assets/_page.BEMzYUGV.css +1 -0
  396. package/web/.svelte-kit/adapter-node/_app/immutable/assets/_page.DOJn7TG7.css +1 -0
  397. package/web/.svelte-kit/adapter-node/chunks/context.js +121 -0
  398. package/web/.svelte-kit/adapter-node/chunks/environment.js +34 -0
  399. package/web/.svelte-kit/adapter-node/chunks/exports.js +174 -0
  400. package/web/.svelte-kit/adapter-node/chunks/false.js +4 -0
  401. package/web/.svelte-kit/adapter-node/chunks/index.js +59 -0
  402. package/web/.svelte-kit/adapter-node/chunks/index2.js +2710 -0
  403. package/web/.svelte-kit/adapter-node/chunks/internal.js +1005 -0
  404. package/web/.svelte-kit/adapter-node/chunks/sessions-json.js +109 -0
  405. package/web/.svelte-kit/adapter-node/chunks/sessions.svelte.js +67 -0
  406. package/web/.svelte-kit/adapter-node/chunks/shared.js +542 -0
  407. package/web/.svelte-kit/adapter-node/chunks/state.svelte.js +16 -0
  408. package/web/.svelte-kit/adapter-node/chunks/utils.js +43 -0
  409. package/web/.svelte-kit/adapter-node/entries/endpoints/api/browse/_server.ts.js +50 -0
  410. package/web/.svelte-kit/adapter-node/entries/endpoints/api/health/_server.ts.js +7 -0
  411. package/web/.svelte-kit/adapter-node/entries/endpoints/api/projects/new-session/_server.ts.js +44 -0
  412. package/web/.svelte-kit/adapter-node/entries/endpoints/api/sessions/_id_/_server.ts.js +20 -0
  413. package/web/.svelte-kit/adapter-node/entries/endpoints/api/sessions/_id_/kill/_server.ts.js +30 -0
  414. package/web/.svelte-kit/adapter-node/entries/endpoints/api/sessions/_id_/send/_server.ts.js +22 -0
  415. package/web/.svelte-kit/adapter-node/entries/endpoints/api/sessions/_server.ts.js +126 -0
  416. package/web/.svelte-kit/adapter-node/entries/endpoints/api/sessions/_target_/output/_server.ts.js +14 -0
  417. package/web/.svelte-kit/adapter-node/entries/fallbacks/error.svelte.js +44 -0
  418. package/web/.svelte-kit/adapter-node/entries/pages/_layout.svelte.js +12 -0
  419. package/web/.svelte-kit/adapter-node/entries/pages/_page.svelte.js +87 -0
  420. package/web/.svelte-kit/adapter-node/entries/pages/session/_target_/_page.svelte.js +76 -0
  421. package/web/.svelte-kit/adapter-node/index.js +3864 -0
  422. package/web/.svelte-kit/adapter-node/internal.js +13 -0
  423. package/web/.svelte-kit/adapter-node/manifest-full.js +103 -0
  424. package/web/.svelte-kit/adapter-node/manifest.js +107 -0
  425. package/web/.svelte-kit/adapter-node/nodes/0.js +8 -0
  426. package/web/.svelte-kit/adapter-node/nodes/1.js +8 -0
  427. package/web/.svelte-kit/adapter-node/nodes/2.js +8 -0
  428. package/web/.svelte-kit/adapter-node/nodes/3.js +8 -0
  429. package/web/.svelte-kit/adapter-node/remote-entry.js +541 -0
  430. package/web/.svelte-kit/ambient.d.ts +187 -0
  431. package/web/.svelte-kit/generated/client/app.js +33 -0
  432. package/web/.svelte-kit/generated/client/matchers.js +1 -0
  433. package/web/.svelte-kit/generated/client/nodes/0.js +1 -0
  434. package/web/.svelte-kit/generated/client/nodes/1.js +1 -0
  435. package/web/.svelte-kit/generated/client/nodes/2.js +1 -0
  436. package/web/.svelte-kit/generated/client/nodes/3.js +1 -0
  437. package/web/.svelte-kit/generated/client/nodes/4.js +1 -0
  438. package/web/.svelte-kit/generated/client-optimized/app.js +33 -0
  439. package/web/.svelte-kit/generated/client-optimized/matchers.js +1 -0
  440. package/web/.svelte-kit/generated/client-optimized/nodes/0.js +1 -0
  441. package/web/.svelte-kit/generated/client-optimized/nodes/1.js +1 -0
  442. package/web/.svelte-kit/generated/client-optimized/nodes/2.js +1 -0
  443. package/web/.svelte-kit/generated/client-optimized/nodes/3.js +1 -0
  444. package/web/.svelte-kit/generated/client-optimized/nodes/4.js +1 -0
  445. package/web/.svelte-kit/generated/root.js +3 -0
  446. package/web/.svelte-kit/generated/root.svelte +68 -0
  447. package/web/.svelte-kit/generated/server/internal.js +53 -0
  448. package/web/.svelte-kit/non-ambient.d.ts +73 -0
  449. package/web/.svelte-kit/output/client/.vite/manifest.json +203 -0
  450. package/web/.svelte-kit/output/client/_app/immutable/assets/0.WptSHSUl.css +1 -0
  451. package/web/.svelte-kit/output/client/_app/immutable/assets/2.s6Kx4oz1.css +1 -0
  452. package/web/.svelte-kit/output/client/_app/immutable/assets/4.DoNWy7tW.css +1 -0
  453. package/web/.svelte-kit/output/client/_app/immutable/assets/AllSessionsPanel.CGHY3HLy.css +1 -0
  454. package/web/.svelte-kit/output/client/_app/immutable/chunks/-3mUPuLP.js +1 -0
  455. package/web/.svelte-kit/output/client/_app/immutable/chunks/B5U4_V3d.js +1 -0
  456. package/web/.svelte-kit/output/client/_app/immutable/chunks/BHwiZXRv.js +1 -0
  457. package/web/.svelte-kit/output/client/_app/immutable/chunks/C9P-coqM.js +1 -0
  458. package/web/.svelte-kit/output/client/_app/immutable/chunks/Cegv0r8x.js +1 -0
  459. package/web/.svelte-kit/output/client/_app/immutable/chunks/DU91Ml7U.js +3 -0
  460. package/web/.svelte-kit/output/client/_app/immutable/chunks/DmdO6ygw.js +1 -0
  461. package/web/.svelte-kit/output/client/_app/immutable/chunks/HKNo9LID.js +5 -0
  462. package/web/.svelte-kit/output/client/_app/immutable/chunks/U4ip-C0d.js +2 -0
  463. package/web/.svelte-kit/output/client/_app/immutable/chunks/cgUjKIhX.js +2 -0
  464. package/web/.svelte-kit/output/client/_app/immutable/entry/app.CGIBnoln.js +2 -0
  465. package/web/.svelte-kit/output/client/_app/immutable/entry/start.CJk8zB1j.js +1 -0
  466. package/web/.svelte-kit/output/client/_app/immutable/nodes/0.CqlJ9a31.js +1 -0
  467. package/web/.svelte-kit/output/client/_app/immutable/nodes/1.BQUZh2-w.js +1 -0
  468. package/web/.svelte-kit/output/client/_app/immutable/nodes/2.CCV1YdgF.js +1 -0
  469. package/web/.svelte-kit/output/client/_app/immutable/nodes/3.D9tDCdq8.js +1 -0
  470. package/web/.svelte-kit/output/client/_app/immutable/nodes/4.BqPyNkFA.js +6 -0
  471. package/web/.svelte-kit/output/client/_app/version.json +1 -0
  472. package/web/.svelte-kit/output/client/robots.txt +3 -0
  473. package/web/.svelte-kit/output/server/.vite/manifest.json +408 -0
  474. package/web/.svelte-kit/output/server/_app/immutable/assets/AllSessionsPanel.BKhqOrbV.css +1 -0
  475. package/web/.svelte-kit/output/server/_app/immutable/assets/_layout.WptSHSUl.css +1 -0
  476. package/web/.svelte-kit/output/server/_app/immutable/assets/_page.DldLgTc-.css +1 -0
  477. package/web/.svelte-kit/output/server/_app/immutable/assets/_page.DoNWy7tW.css +1 -0
  478. package/web/.svelte-kit/output/server/chunks/AllSessionsPanel.svelte_svelte_type_style_lang.js +49 -0
  479. package/web/.svelte-kit/output/server/chunks/alert-dialog-description.js +2670 -0
  480. package/web/.svelte-kit/output/server/chunks/auth.js +59 -0
  481. package/web/.svelte-kit/output/server/chunks/button.js +82 -0
  482. package/web/.svelte-kit/output/server/chunks/client.js +29 -0
  483. package/web/.svelte-kit/output/server/chunks/context.js +133 -0
  484. package/web/.svelte-kit/output/server/chunks/environment.js +34 -0
  485. package/web/.svelte-kit/output/server/chunks/events.js +121 -0
  486. package/web/.svelte-kit/output/server/chunks/exports.js +174 -0
  487. package/web/.svelte-kit/output/server/chunks/false.js +4 -0
  488. package/web/.svelte-kit/output/server/chunks/index.js +59 -0
  489. package/web/.svelte-kit/output/server/chunks/index2.js +2828 -0
  490. package/web/.svelte-kit/output/server/chunks/internal.js +920 -0
  491. package/web/.svelte-kit/output/server/chunks/pane.js +82 -0
  492. package/web/.svelte-kit/output/server/chunks/sessions-json.js +124 -0
  493. package/web/.svelte-kit/output/server/chunks/sessions.svelte.js +229 -0
  494. package/web/.svelte-kit/output/server/chunks/shared.js +542 -0
  495. package/web/.svelte-kit/output/server/chunks/state.svelte.js +16 -0
  496. package/web/.svelte-kit/output/server/chunks/utils.js +43 -0
  497. package/web/.svelte-kit/output/server/chunks/ws-handlers.js +782 -0
  498. package/web/.svelte-kit/output/server/entries/endpoints/api/auth/login/_server.ts.js +22 -0
  499. package/web/.svelte-kit/output/server/entries/endpoints/api/auth/logout/_server.ts.js +9 -0
  500. package/web/.svelte-kit/output/server/entries/endpoints/api/beads/_server.ts.js +22 -0
  501. package/web/.svelte-kit/output/server/entries/endpoints/api/browse/_server.ts.js +50 -0
  502. package/web/.svelte-kit/output/server/entries/endpoints/api/chrome/_server.ts.js +30 -0
  503. package/web/.svelte-kit/output/server/entries/endpoints/api/files/image/_server.ts.js +53 -0
  504. package/web/.svelte-kit/output/server/entries/endpoints/api/health/_server.ts.js +7 -0
  505. package/web/.svelte-kit/output/server/entries/endpoints/api/projects/new-session/_server.ts.js +44 -0
  506. package/web/.svelte-kit/output/server/entries/endpoints/api/sessions/_id_/_server.ts.js +20 -0
  507. package/web/.svelte-kit/output/server/entries/endpoints/api/sessions/_id_/kill/_server.ts.js +36 -0
  508. package/web/.svelte-kit/output/server/entries/endpoints/api/sessions/_id_/restart/_server.ts.js +40 -0
  509. package/web/.svelte-kit/output/server/entries/endpoints/api/sessions/_id_/screenshots/_server.ts.js +28 -0
  510. package/web/.svelte-kit/output/server/entries/endpoints/api/sessions/_id_/send/_server.ts.js +29 -0
  511. package/web/.svelte-kit/output/server/entries/endpoints/api/sessions/_server.ts.js +49 -0
  512. package/web/.svelte-kit/output/server/entries/endpoints/api/sessions/_target_/output/_server.ts.js +14 -0
  513. package/web/.svelte-kit/output/server/entries/endpoints/api/tmux/panes/_server.ts.js +21 -0
  514. package/web/.svelte-kit/output/server/entries/fallbacks/error.svelte.js +27 -0
  515. package/web/.svelte-kit/output/server/entries/hooks.server.js +105 -0
  516. package/web/.svelte-kit/output/server/entries/pages/_layout.svelte.js +499 -0
  517. package/web/.svelte-kit/output/server/entries/pages/_page.svelte.js +3057 -0
  518. package/web/.svelte-kit/output/server/entries/pages/login/_page.server.ts.js +15 -0
  519. package/web/.svelte-kit/output/server/entries/pages/login/_page.svelte.js +37 -0
  520. package/web/.svelte-kit/output/server/entries/pages/session/_target_/_page.svelte.js +653 -0
  521. package/web/.svelte-kit/output/server/index.js +3864 -0
  522. package/web/.svelte-kit/output/server/internal.js +13 -0
  523. package/web/.svelte-kit/output/server/manifest-full.js +167 -0
  524. package/web/.svelte-kit/output/server/manifest.js +167 -0
  525. package/web/.svelte-kit/output/server/nodes/0.js +8 -0
  526. package/web/.svelte-kit/output/server/nodes/1.js +8 -0
  527. package/web/.svelte-kit/output/server/nodes/2.js +8 -0
  528. package/web/.svelte-kit/output/server/nodes/3.js +10 -0
  529. package/web/.svelte-kit/output/server/nodes/4.js +8 -0
  530. package/web/.svelte-kit/output/server/remote-entry.js +541 -0
  531. package/web/.svelte-kit/tsconfig.json +58 -0
  532. package/web/.svelte-kit/types/route_meta_data.json +55 -0
  533. package/web/.svelte-kit/types/src/routes/$types.d.ts +24 -0
  534. package/web/.svelte-kit/types/src/routes/api/auth/login/$types.d.ts +10 -0
  535. package/web/.svelte-kit/types/src/routes/api/auth/logout/$types.d.ts +10 -0
  536. package/web/.svelte-kit/types/src/routes/api/beads/$types.d.ts +10 -0
  537. package/web/.svelte-kit/types/src/routes/api/browse/$types.d.ts +10 -0
  538. package/web/.svelte-kit/types/src/routes/api/chrome/$types.d.ts +10 -0
  539. package/web/.svelte-kit/types/src/routes/api/files/image/$types.d.ts +10 -0
  540. package/web/.svelte-kit/types/src/routes/api/health/$types.d.ts +10 -0
  541. package/web/.svelte-kit/types/src/routes/api/projects/new-session/$types.d.ts +10 -0
  542. package/web/.svelte-kit/types/src/routes/api/sessions/$types.d.ts +10 -0
  543. package/web/.svelte-kit/types/src/routes/api/sessions/[id]/$types.d.ts +11 -0
  544. package/web/.svelte-kit/types/src/routes/api/sessions/[id]/kill/$types.d.ts +11 -0
  545. package/web/.svelte-kit/types/src/routes/api/sessions/[id]/restart/$types.d.ts +11 -0
  546. package/web/.svelte-kit/types/src/routes/api/sessions/[id]/screenshots/$types.d.ts +11 -0
  547. package/web/.svelte-kit/types/src/routes/api/sessions/[id]/send/$types.d.ts +11 -0
  548. package/web/.svelte-kit/types/src/routes/api/sessions/[target]/output/$types.d.ts +11 -0
  549. package/web/.svelte-kit/types/src/routes/api/tmux/panes/$types.d.ts +10 -0
  550. package/web/.svelte-kit/types/src/routes/login/$types.d.ts +25 -0
  551. package/web/.svelte-kit/types/src/routes/login/proxy+page.server.ts +19 -0
  552. package/web/.svelte-kit/types/src/routes/session/[target]/$types.d.ts +19 -0
  553. package/web/README.md +42 -0
  554. package/web/components.json +16 -0
  555. package/web/package.json +35 -0
  556. package/web/src/app.css +128 -0
  557. package/web/src/app.d.ts +13 -0
  558. package/web/src/app.html +11 -0
  559. package/web/src/hooks.server.ts +156 -0
  560. package/web/src/lib/assets/favicon.svg +1 -0
  561. package/web/src/lib/components/AllSessionsPanel.svelte +789 -0
  562. package/web/src/lib/components/BeadsPanel.svelte +146 -0
  563. package/web/src/lib/components/IssueItem.svelte +287 -0
  564. package/web/src/lib/components/ScreenshotsPanel.svelte +336 -0
  565. package/web/src/lib/components/SessionsSidebar.svelte +312 -0
  566. package/web/src/lib/components/TerminalRenderer.svelte +189 -0
  567. package/web/src/lib/components/ui/alert-dialog/alert-dialog-action.svelte +18 -0
  568. package/web/src/lib/components/ui/alert-dialog/alert-dialog-cancel.svelte +18 -0
  569. package/web/src/lib/components/ui/alert-dialog/alert-dialog-content.svelte +29 -0
  570. package/web/src/lib/components/ui/alert-dialog/alert-dialog-description.svelte +17 -0
  571. package/web/src/lib/components/ui/alert-dialog/alert-dialog-footer.svelte +20 -0
  572. package/web/src/lib/components/ui/alert-dialog/alert-dialog-header.svelte +20 -0
  573. package/web/src/lib/components/ui/alert-dialog/alert-dialog-overlay.svelte +20 -0
  574. package/web/src/lib/components/ui/alert-dialog/alert-dialog-portal.svelte +7 -0
  575. package/web/src/lib/components/ui/alert-dialog/alert-dialog-title.svelte +17 -0
  576. package/web/src/lib/components/ui/alert-dialog/alert-dialog-trigger.svelte +7 -0
  577. package/web/src/lib/components/ui/alert-dialog/alert-dialog.svelte +7 -0
  578. package/web/src/lib/components/ui/alert-dialog/index.ts +37 -0
  579. package/web/src/lib/components/ui/badge/badge.svelte +50 -0
  580. package/web/src/lib/components/ui/badge/index.ts +2 -0
  581. package/web/src/lib/components/ui/button/button.svelte +86 -0
  582. package/web/src/lib/components/ui/button/index.ts +17 -0
  583. package/web/src/lib/components/ui/checkbox/checkbox.svelte +36 -0
  584. package/web/src/lib/components/ui/checkbox/index.ts +6 -0
  585. package/web/src/lib/components/ui/dialog/dialog-close.svelte +7 -0
  586. package/web/src/lib/components/ui/dialog/dialog-content.svelte +45 -0
  587. package/web/src/lib/components/ui/dialog/dialog-description.svelte +17 -0
  588. package/web/src/lib/components/ui/dialog/dialog-footer.svelte +20 -0
  589. package/web/src/lib/components/ui/dialog/dialog-header.svelte +20 -0
  590. package/web/src/lib/components/ui/dialog/dialog-overlay.svelte +20 -0
  591. package/web/src/lib/components/ui/dialog/dialog-portal.svelte +7 -0
  592. package/web/src/lib/components/ui/dialog/dialog-title.svelte +17 -0
  593. package/web/src/lib/components/ui/dialog/dialog-trigger.svelte +7 -0
  594. package/web/src/lib/components/ui/dialog/dialog.svelte +7 -0
  595. package/web/src/lib/components/ui/dialog/index.ts +34 -0
  596. package/web/src/lib/components/ui/scroll-area/index.ts +10 -0
  597. package/web/src/lib/components/ui/scroll-area/scroll-area-scrollbar.svelte +31 -0
  598. package/web/src/lib/components/ui/scroll-area/scroll-area.svelte +43 -0
  599. package/web/src/lib/components/ui/textarea/index.ts +7 -0
  600. package/web/src/lib/components/ui/textarea/textarea.svelte +23 -0
  601. package/web/src/lib/index.ts +1 -0
  602. package/web/src/lib/server/auth.ts +90 -0
  603. package/web/src/lib/stores/beads.svelte.ts +163 -0
  604. package/web/src/lib/stores/input-injection.svelte.ts +39 -0
  605. package/web/src/lib/stores/preferences.svelte.ts +55 -0
  606. package/web/src/lib/stores/sessions.svelte.ts +108 -0
  607. package/web/src/lib/stores/terminal.svelte.ts +96 -0
  608. package/web/src/lib/stores/websocket-base.svelte.ts +209 -0
  609. package/web/src/lib/types/terminal.ts +31 -0
  610. package/web/src/lib/utils/terminal-parser.ts +239 -0
  611. package/web/src/lib/utils.ts +13 -0
  612. package/web/src/routes/+layout.svelte +450 -0
  613. package/web/src/routes/+page.svelte +19 -0
  614. package/web/src/routes/api/auth/login/+server.ts +34 -0
  615. package/web/src/routes/api/auth/logout/+server.ts +10 -0
  616. package/web/src/routes/api/beads/+server.ts +28 -0
  617. package/web/src/routes/api/browse/+server.ts +59 -0
  618. package/web/src/routes/api/chrome/+server.ts +35 -0
  619. package/web/src/routes/api/files/image/+server.ts +64 -0
  620. package/web/src/routes/api/health/+server.ts +6 -0
  621. package/web/src/routes/api/projects/new-session/+server.ts +50 -0
  622. package/web/src/routes/api/sessions/+server.ts +62 -0
  623. package/web/src/routes/api/sessions/[id]/+server.ts +19 -0
  624. package/web/src/routes/api/sessions/[id]/kill/+server.ts +46 -0
  625. package/web/src/routes/api/sessions/[id]/restart/+server.ts +59 -0
  626. package/web/src/routes/api/sessions/[id]/screenshots/+server.ts +32 -0
  627. package/web/src/routes/api/sessions/[id]/send/+server.ts +31 -0
  628. package/web/src/routes/api/sessions/[target]/output/+server.ts +13 -0
  629. package/web/src/routes/api/tmux/panes/+server.ts +32 -0
  630. package/web/src/routes/login/+page.server.ts +18 -0
  631. package/web/src/routes/login/+page.svelte +69 -0
  632. package/web/src/routes/session/[target]/+page.svelte +450 -0
  633. package/web/static/robots.txt +3 -0
  634. package/web/svelte.config.js +20 -0
  635. package/web/tsconfig.json +20 -0
  636. package/web/vite.config.ts +154 -0
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Get the title of a tmux pane.
3
+ * @param target - The tmux target in format "session:window.pane"
4
+ * @returns The pane title, or null if failed
5
+ */
6
+ export declare function getPaneTitle(target: string): string | null;
7
+ /**
8
+ * Capture the contents of a tmux pane.
9
+ * @param target - The tmux target in format "session:window.pane"
10
+ * @returns The pane contents as a string, or null if capture failed
11
+ */
12
+ export declare function capturePaneContent(target: string): string | null;
13
+ /**
14
+ * Check if the pane content shows Claude is actively working.
15
+ * Looks for interrupt hints which appear when Claude is processing.
16
+ */
17
+ export declare function isPaneShowingWorking(content: string): boolean;
18
+ /**
19
+ * Check if the pane content shows Claude is at the prompt (idle).
20
+ * Claude is idle if "Esc to interrupt" is NOT present.
21
+ */
22
+ export declare function isPaneShowingPrompt(content: string): boolean;
23
+ /**
24
+ * Detect if the pane shows user interruption or cancellation.
25
+ * Only detects FRESH signals from the most recent interaction.
26
+ *
27
+ * Structure of Claude Code pane:
28
+ * ❯ user command ← interaction start (● or ❯)
29
+ * ⎿ Interrupted... ← signal we're looking for
30
+ * ───────────────────── ← TOP separator
31
+ * ❯ [user input] ← prompt area (may have text)
32
+ * ───────────────────── ← BOTTOM separator
33
+ * status line
34
+ *
35
+ * Algorithm:
36
+ * 1. Find the two separators around the prompt area
37
+ * 2. Scan backwards from TOP separator to find ● or ❯ (interaction start)
38
+ * 3. Check the slice between interaction start and TOP separator for signals
39
+ *
40
+ * @returns 'interrupted' if user pressed Esc during work,
41
+ * 'declined' if user cancelled a prompt,
42
+ * null if no interruption detected
43
+ */
44
+ export declare function detectRecentInterruption(content: string): 'interrupted' | 'declined' | null;
45
+ /**
46
+ * Check if a tmux pane shows a recent interruption/cancellation.
47
+ * Returns the session update to apply, or null if no update needed.
48
+ *
49
+ * @param tmuxTarget - The tmux target in format "session:window.pane"
50
+ * @returns Session fields to update if interruption detected, null otherwise
51
+ */
52
+ export declare function checkForInterruption(tmuxTarget: string): {
53
+ state: 'idle';
54
+ current_action: null;
55
+ prompt_text: null;
56
+ } | null;
57
+ //# sourceMappingURL=pane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pane.d.ts","sourceRoot":"","sources":["../../src/tmux/pane.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAW1D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAehE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAS7D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAS5D;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,UAAU,GAAG,IAAI,CAsD3F;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,IAAI,CAAA;CAAE,GAAG,IAAI,CAS1H"}
@@ -0,0 +1,156 @@
1
+ import { execFileSync } from "child_process";
2
+ import { isInTmux } from "./detect.js";
3
+ /**
4
+ * Get the title of a tmux pane.
5
+ * @param target - The tmux target in format "session:window.pane"
6
+ * @returns The pane title, or null if failed
7
+ */
8
+ export function getPaneTitle(target) {
9
+ try {
10
+ const result = execFileSync("tmux", ["display-message", "-p", "-t", target, "#{pane_title}"], {
11
+ encoding: "utf-8",
12
+ stdio: ["pipe", "pipe", "pipe"],
13
+ timeout: 1000,
14
+ });
15
+ return result.trim() || null;
16
+ }
17
+ catch {
18
+ return null;
19
+ }
20
+ }
21
+ /**
22
+ * Capture the contents of a tmux pane.
23
+ * @param target - The tmux target in format "session:window.pane"
24
+ * @returns The pane contents as a string, or null if capture failed
25
+ */
26
+ export function capturePaneContent(target) {
27
+ if (!isInTmux()) {
28
+ return null;
29
+ }
30
+ try {
31
+ const result = execFileSync("tmux", ["capture-pane", "-p", "-t", target], {
32
+ encoding: "utf-8",
33
+ stdio: ["pipe", "pipe", "pipe"],
34
+ timeout: 1000,
35
+ });
36
+ return result;
37
+ }
38
+ catch {
39
+ return null;
40
+ }
41
+ }
42
+ /**
43
+ * Check if the pane content shows Claude is actively working.
44
+ * Looks for interrupt hints which appear when Claude is processing.
45
+ */
46
+ export function isPaneShowingWorking(content) {
47
+ if (!content)
48
+ return false;
49
+ // These patterns appear when Claude is actively working
50
+ return (content.includes("Esc to interrupt") ||
51
+ content.includes("esc to interrupt") ||
52
+ content.includes("ctrl+c to interrupt"));
53
+ }
54
+ /**
55
+ * Check if the pane content shows Claude is at the prompt (idle).
56
+ * Claude is idle if "Esc to interrupt" is NOT present.
57
+ */
58
+ export function isPaneShowingPrompt(content) {
59
+ if (!content)
60
+ return false;
61
+ // If "Esc to interrupt" is present, Claude is still working
62
+ if (isPaneShowingWorking(content)) {
63
+ return false;
64
+ }
65
+ return true;
66
+ }
67
+ /**
68
+ * Detect if the pane shows user interruption or cancellation.
69
+ * Only detects FRESH signals from the most recent interaction.
70
+ *
71
+ * Structure of Claude Code pane:
72
+ * ❯ user command ← interaction start (● or ❯)
73
+ * ⎿ Interrupted... ← signal we're looking for
74
+ * ───────────────────── ← TOP separator
75
+ * ❯ [user input] ← prompt area (may have text)
76
+ * ───────────────────── ← BOTTOM separator
77
+ * status line
78
+ *
79
+ * Algorithm:
80
+ * 1. Find the two separators around the prompt area
81
+ * 2. Scan backwards from TOP separator to find ● or ❯ (interaction start)
82
+ * 3. Check the slice between interaction start and TOP separator for signals
83
+ *
84
+ * @returns 'interrupted' if user pressed Esc during work,
85
+ * 'declined' if user cancelled a prompt,
86
+ * null if no interruption detected
87
+ */
88
+ export function detectRecentInterruption(content) {
89
+ if (!content)
90
+ return null;
91
+ const lines = content.split('\n');
92
+ // If there's active UI (menu or working), don't detect old interruptions
93
+ const bottomLines = lines.slice(-5).join('\n');
94
+ if (bottomLines.includes('Esc to cancel') ||
95
+ bottomLines.includes('Esc to interrupt') ||
96
+ bottomLines.includes('ctrl+c to interrupt')) {
97
+ return null;
98
+ }
99
+ // Find the BOTTOM separator (last separator in the pane)
100
+ let bottomSepIdx = -1;
101
+ for (let i = lines.length - 1; i >= 0; i--) {
102
+ if (lines[i].startsWith('─────')) {
103
+ bottomSepIdx = i;
104
+ break;
105
+ }
106
+ }
107
+ if (bottomSepIdx === -1)
108
+ return null;
109
+ // Find the TOP separator (second-to-last separator, above the prompt)
110
+ let topSepIdx = -1;
111
+ for (let i = bottomSepIdx - 1; i >= 0; i--) {
112
+ if (lines[i].startsWith('─────')) {
113
+ topSepIdx = i;
114
+ break;
115
+ }
116
+ }
117
+ if (topSepIdx === -1)
118
+ return null;
119
+ // Scan backwards from TOP separator to find the interaction start (● or ❯)
120
+ let interactionStartIdx = -1;
121
+ const maxScan = Math.max(0, topSepIdx - 15);
122
+ for (let i = topSepIdx - 1; i >= maxScan; i--) {
123
+ const line = lines[i];
124
+ if (line.startsWith('●') || line.startsWith('❯')) {
125
+ interactionStartIdx = i;
126
+ break;
127
+ }
128
+ }
129
+ if (interactionStartIdx === -1)
130
+ return null;
131
+ // Check the slice from interaction start to TOP separator for signals
132
+ const slice = lines.slice(interactionStartIdx, topSepIdx).join('\n');
133
+ if (slice.includes('Interrupted'))
134
+ return 'interrupted';
135
+ if (slice.includes('User declined to answer'))
136
+ return 'declined';
137
+ return null;
138
+ }
139
+ /**
140
+ * Check if a tmux pane shows a recent interruption/cancellation.
141
+ * Returns the session update to apply, or null if no update needed.
142
+ *
143
+ * @param tmuxTarget - The tmux target in format "session:window.pane"
144
+ * @returns Session fields to update if interruption detected, null otherwise
145
+ */
146
+ export function checkForInterruption(tmuxTarget) {
147
+ const content = capturePaneContent(tmuxTarget);
148
+ if (!content)
149
+ return null;
150
+ const interruption = detectRecentInterruption(content);
151
+ if (interruption) {
152
+ return { state: 'idle', current_action: null, prompt_text: null };
153
+ }
154
+ return null;
155
+ }
156
+ //# sourceMappingURL=pane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pane.js","sourceRoot":"","sources":["../../src/tmux/pane.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE;YAC5F,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE;YACxE,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAE3B,wDAAwD;IACxD,OAAO,CACL,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACpC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACpC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CACxC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAE3B,4DAA4D;IAC5D,IAAI,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,yEAAyE;IACzE,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,IACE,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC;QACrC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACxC,WAAW,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAC3C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yDAAyD;IACzD,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;IACtB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,YAAY,GAAG,CAAC,CAAC;YACjB,MAAM;QACR,CAAC;IACH,CAAC;IACD,IAAI,YAAY,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAErC,sEAAsE;IACtE,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,SAAS,GAAG,CAAC,CAAC;YACd,MAAM;QACR,CAAC;IACH,CAAC;IACD,IAAI,SAAS,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAElC,2EAA2E;IAC3E,IAAI,mBAAmB,GAAG,CAAC,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC,CAAC;IAC5C,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,mBAAmB,GAAG,CAAC,CAAC;YACxB,MAAM;QACR,CAAC;IACH,CAAC;IACD,IAAI,mBAAmB,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5C,sEAAsE;IACtE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAErE,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,OAAO,aAAa,CAAC;IACxD,IAAI,KAAK,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAAE,OAAO,UAAU,CAAC;IAEjE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACrD,MAAM,OAAO,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,YAAY,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACpE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Resize a tmux window to the specified dimensions.
3
+ * Uses resize-window instead of resize-pane for detached sessions.
4
+ *
5
+ * @param target - The tmux target in format "session:window.pane"
6
+ * @param cols - Number of columns (clamped to 20-500)
7
+ * @param rows - Number of rows (clamped to 5-200)
8
+ */
9
+ export declare function resizeTmuxWindow(target: string, cols: number, rows: number): void;
10
+ //# sourceMappingURL=resize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resize.d.ts","sourceRoot":"","sources":["../../src/tmux/resize.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAiBjF"}
@@ -0,0 +1,25 @@
1
+ import { execFileSync } from "child_process";
2
+ /**
3
+ * Resize a tmux window to the specified dimensions.
4
+ * Uses resize-window instead of resize-pane for detached sessions.
5
+ *
6
+ * @param target - The tmux target in format "session:window.pane"
7
+ * @param cols - Number of columns (clamped to 20-500)
8
+ * @param rows - Number of rows (clamped to 5-200)
9
+ */
10
+ export function resizeTmuxWindow(target, cols, rows) {
11
+ try {
12
+ const safeCols = Math.max(20, Math.min(500, Math.floor(cols)));
13
+ const safeRows = Math.max(5, Math.min(200, Math.floor(rows)));
14
+ // Extract window target (session:window) from full target (session:window.pane)
15
+ const windowTarget = target.replace(/\.\d+$/, "");
16
+ execFileSync("tmux", ["resize-window", "-t", windowTarget, "-x", String(safeCols), "-y", String(safeRows)], {
17
+ stdio: ["pipe", "pipe", "pipe"],
18
+ timeout: 2000,
19
+ });
20
+ }
21
+ catch {
22
+ // Pane may not exist or tmux error - ignore
23
+ }
24
+ }
25
+ //# sourceMappingURL=resize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resize.js","sourceRoot":"","sources":["../../src/tmux/resize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,IAAY,EAAE,IAAY;IACzE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9D,gFAAgF;QAChF,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClD,YAAY,CACV,MAAM,EACN,CAAC,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,EACrF;YACE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,OAAO,EAAE,IAAI;SACd,CACF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,4CAA4C;IAC9C,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const CLAUDE_WATCH_DIR: string;
2
+ export declare const SESSIONS_DIR: string;
3
+ export declare const CONFIG_PATH: string;
4
+ export declare const CLAUDE_DIR: string;
5
+ export declare const CLAUDE_SETTINGS_PATH: string;
6
+ export declare const DEFAULT_SERVER_PORT = 3456;
7
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gBAAgB,QAAmC,CAAC;AACjE,eAAO,MAAM,YAAY,QAAqC,CAAC;AAC/D,eAAO,MAAM,WAAW,QAAwC,CAAC;AAEjE,eAAO,MAAM,UAAU,QAA6B,CAAC;AACrD,eAAO,MAAM,oBAAoB,QAAoC,CAAC;AAEtE,eAAO,MAAM,mBAAmB,OAAO,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { homedir } from "os";
2
+ import { join } from "path";
3
+ export const CLAUDE_WATCH_DIR = join(homedir(), ".claude-watch");
4
+ export const SESSIONS_DIR = join(CLAUDE_WATCH_DIR, "sessions");
5
+ export const CONFIG_PATH = join(CLAUDE_WATCH_DIR, "config.json");
6
+ export const CLAUDE_DIR = join(homedir(), ".claude");
7
+ export const CLAUDE_SETTINGS_PATH = join(CLAUDE_DIR, "settings.json");
8
+ export const DEFAULT_SERVER_PORT = 3456;
9
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;AAEtE,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Check if a process with the given PID is still alive.
3
+ */
4
+ export declare function isPidAlive(pid: number): boolean;
5
+ //# sourceMappingURL=pid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pid.d.ts","sourceRoot":"","sources":["../../src/utils/pid.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQ/C"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Check if a process with the given PID is still alive.
3
+ */
4
+ export function isPidAlive(pid) {
5
+ try {
6
+ // Sending signal 0 doesn't kill the process but checks if it exists
7
+ process.kill(pid, 0);
8
+ return true;
9
+ }
10
+ catch {
11
+ return false;
12
+ }
13
+ }
14
+ //# sourceMappingURL=pid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pid.js","sourceRoot":"","sources":["../../src/utils/pid.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,IAAI,CAAC;QACH,oEAAoE;QACpE,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Central version constant for claude-watch.
3
+ * Keep in sync with package.json version.
4
+ */
5
+ export declare const VERSION = "0.7.0";
6
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,OAAO,UAAU,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Central version constant for claude-watch.
3
+ * Keep in sync with package.json version.
4
+ */
5
+ export const VERSION = "0.7.0";
6
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
@@ -0,0 +1 @@
1
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-orange-400:oklch(75% .183 55.934);--color-orange-700:oklch(55.3% .195 38.402);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-green-300:oklch(87.1% .15 154.449);--color-green-800:oklch(44.8% .119 151.328);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-700:oklch(49.6% .265 301.924);--color-stone-100:oklch(97% .001 106.424);--color-stone-400:oklch(70.9% .01 56.259);--color-stone-500:oklch(55.3% .013 58.071);--color-stone-700:oklch(37.4% .01 67.558);--color-stone-900:oklch(21.6% .006 56.043);--color-stone-950:oklch(14.7% .004 49.25);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--radius-xs:.125rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}html{height:100%}body{overscroll-behavior:none;background-color:var(--background);min-height:100%;color:var(--foreground)}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing)*0)}.end-4{inset-inline-end:calc(var(--spacing)*4)}.top-4{top:calc(var(--spacing)*4)}.top-\[50\%\]{top:50%}.left-\[50\%\]{left:50%}.z-50{z-index:50}.mt-2{margin-top:calc(var(--spacing)*2)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.field-sizing-content{field-sizing:content}.size-3\.5{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-full{width:100%;height:100%}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-64{height:calc(var(--spacing)*64)}.h-auto{height:auto}.h-full{height:100%}.min-h-16{min-height:calc(var(--spacing)*16)}.min-h-\[48px\]{min-height:48px}.min-h-screen{min-height:100vh}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.min-w-11{min-width:calc(var(--spacing)*11)}.min-w-\[52px\]{min-width:52px}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-center{align-items:center}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.rounded-\[4px\]{border-radius:4px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-input{border-color:var(--input)}.border-orange-700{border-color:var(--color-orange-700)}.border-purple-700{border-color:var(--color-purple-700)}.border-stone-700{border-color:var(--color-stone-700)}.border-transparent{border-color:#0000}.border-s-transparent{border-inline-start-color:#0000}.border-t-transparent{border-top-color:#0000}.bg-\[\#222\]{background-color:#222}.bg-amber-700{background-color:var(--color-amber-700)}.bg-background{background-color:var(--background)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-border{background-color:var(--border)}.bg-destructive{background-color:var(--destructive)}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-green-800{background-color:var(--color-green-800)}.bg-primary{background-color:var(--primary)}.bg-red-900{background-color:var(--color-red-900)}.bg-secondary{background-color:var(--secondary)}.bg-stone-900{background-color:var(--color-stone-900)}.bg-stone-950{background-color:var(--color-stone-950)}.bg-transparent{background-color:#0000}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-px{padding:1px}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.text-center{text-align:center}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.whitespace-nowrap{white-space:nowrap}.text-amber-100{color:var(--color-amber-100)}.text-current{color:currentColor}.text-destructive{color:var(--destructive)}.text-foreground{color:var(--foreground)}.text-green-300{color:var(--color-green-300)}.text-muted-foreground{color:var(--muted-foreground)}.text-orange-400{color:var(--color-orange-400)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-purple-400{color:var(--color-purple-400)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-stone-100{color:var(--color-stone-100)}.text-stone-400{color:var(--color-stone-400)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.underline-offset-4{text-underline-offset:4px}.placeholder-stone-500::placeholder{color:var(--color-stone-500)}.opacity-70{opacity:.7}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-ring\/10{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.ring-ring\/10{--tw-ring-color:color-mix(in oklab,var(--ring)10%,transparent)}}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.outline-ring\/50{outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.outline-ring\/50{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-200{--tw-duration:.2s;transition-duration:.2s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.paused{animation-play-state:paused}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}@media(hover:hover){.hover\:bg-\[\#222\]:hover{background-color:#222}.hover\:bg-\[\#333\]:hover{background-color:#333}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-amber-600:hover{background-color:var(--color-amber-600)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\:bg-emerald-500:hover{background-color:var(--color-emerald-500)}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\:bg-red-800:hover{background-color:var(--color-red-800)}.hover\:bg-red-900\/50:hover{background-color:#82181a80}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-900\/50:hover{background-color:color-mix(in oklab,var(--color-red-900)50%,transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-red-300:hover{color:var(--color-red-300)}.hover\:text-stone-100:hover{color:var(--color-stone-100)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:border-stone-500:focus{border-color:var(--color-stone-500)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-stone-500:focus{--tw-ring-color:var(--color-stone-500)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-4:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.active\:bg-emerald-700:active{background-color:var(--color-emerald-700)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing)*2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--primary)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}@media(min-width:40rem){.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:text-start{text-align:start}}@media(min-width:48rem){.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.dark\:bg-destructive\/70:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/70:is(.dark *){background-color:color-mix(in oklab,var(--destructive)70%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:ring-ring\/20:is(.dark *){--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.dark\:ring-ring\/20:is(.dark *){--tw-ring-color:color-mix(in oklab,var(--ring)20%,transparent)}}.dark\:outline-ring\/40:is(.dark *){outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.dark\:outline-ring\/40:is(.dark *){outline-color:color-mix(in oklab,var(--ring)40%,transparent)}}@media(hover:hover){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:data-\[state\=checked\]\:bg-primary:is(.dark *)[data-state=checked]{background-color:var(--primary)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-\[18px\] svg{width:18px;height:18px}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}@media(hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab,var(--secondary)90%,transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.625rem;--background:oklch(100% 0 0);--foreground:oklch(14.7% .004 49.25);--card:oklch(100% 0 0);--card-foreground:oklch(14.7% .004 49.25);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.7% .004 49.25);--primary:oklch(21.6% .006 56.043);--primary-foreground:oklch(98.5% .001 106.423);--secondary:oklch(97% .001 106.424);--secondary-foreground:oklch(21.6% .006 56.043);--muted:oklch(97% .001 106.424);--muted-foreground:oklch(55.3% .013 58.071);--accent:oklch(97% .001 106.424);--accent-foreground:oklch(21.6% .006 56.043);--destructive:oklch(57.7% .245 27.325);--border:oklch(92.3% .003 48.717);--input:oklch(92.3% .003 48.717);--ring:oklch(70.9% .01 56.259);--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08);--sidebar:oklch(98.5% .001 106.423);--sidebar-foreground:oklch(14.7% .004 49.25);--sidebar-primary:oklch(21.6% .006 56.043);--sidebar-primary-foreground:oklch(98.5% .001 106.423);--sidebar-accent:oklch(97% .001 106.424);--sidebar-accent-foreground:oklch(21.6% .006 56.043);--sidebar-border:oklch(92.3% .003 48.717);--sidebar-ring:oklch(70.9% .01 56.259)}.dark{--background:oklch(14.7% .004 49.25);--foreground:oklch(98.5% .001 106.423);--card:oklch(21.6% .006 56.043);--card-foreground:oklch(98.5% .001 106.423);--popover:oklch(21.6% .006 56.043);--popover-foreground:oklch(98.5% .001 106.423);--primary:oklch(92.3% .003 48.717);--primary-foreground:oklch(21.6% .006 56.043);--secondary:oklch(26.8% .007 34.298);--secondary-foreground:oklch(98.5% .001 106.423);--muted:oklch(26.8% .007 34.298);--muted-foreground:oklch(70.9% .01 56.259);--accent:oklch(26.8% .007 34.298);--accent-foreground:oklch(98.5% .001 106.423);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.3% .013 58.071);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439);--sidebar:oklch(21.6% .006 56.043);--sidebar-foreground:oklch(98.5% .001 106.423);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% .001 106.423);--sidebar-accent:oklch(26.8% .007 34.298);--sidebar-accent-foreground:oklch(98.5% .001 106.423);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.3% .013 58.071)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}.issue-wrapper.svelte-1yk20pg{border-radius:8px;margin-bottom:4px}.issue-wrapper.expanded.svelte-1yk20pg{background:hsl(var(--accent) / .5)}.issue-item.svelte-1yk20pg{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:8px;border:none;background:transparent;text-align:left;cursor:pointer;width:100%;min-height:44px;color:inherit;font-family:inherit}.issue-item.svelte-1yk20pg:hover{background:hsl(var(--accent))}.issue-item.svelte-1yk20pg:active{background:hsl(var(--accent) / .8)}.status-dot.svelte-1yk20pg{width:10px;height:10px;border-radius:50%;flex-shrink:0}.priority-badge.svelte-1yk20pg{font-size:10px;font-weight:700;color:#fff;padding:2px 6px;border-radius:4px;flex-shrink:0}.issue-title.svelte-1yk20pg{font-size:13px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chevron.svelte-1yk20pg{font-size:16px;color:hsl(var(--muted-foreground));flex-shrink:0}.issue-details.svelte-1yk20pg{padding:0 12px 12px}.full-title.svelte-1yk20pg{font-size:14px;font-weight:600;margin-bottom:8px;line-height:1.4}.description.svelte-1yk20pg{font-size:13px;color:hsl(var(--muted-foreground));margin-bottom:12px;line-height:1.5;white-space:pre-wrap}.detail-row.svelte-1yk20pg{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:12px}.detail-label.svelte-1yk20pg{color:hsl(var(--muted-foreground))}.detail-value.svelte-1yk20pg{font-weight:500;text-align:right}.status-value.svelte-1yk20pg{text-transform:capitalize}.id-value.svelte-1yk20pg{font-family:monospace;font-size:11px}.issue-details.svelte-1yk20pg .use-id-btn{width:100%;margin-top:8px}.details-desktop.svelte-1yk20pg{display:none}.details-mobile.svelte-1yk20pg{display:block}@media(min-width:768px){.details-desktop.svelte-1yk20pg{display:block}.details-mobile.svelte-1yk20pg{display:none}}.beads-panel.svelte-ye9143{border-top:1px solid hsl(var(--border))}.panel-header.svelte-ye9143{display:flex;align-items:center;gap:8px;width:100%;padding:12px;border:none;background:transparent;color:inherit;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;text-align:left}.panel-header.svelte-ye9143:hover{background:hsl(var(--accent) / .5)}.panel-header.svelte-ye9143 .issue-count{font-size:11px;padding:2px 6px}.chevron.svelte-ye9143{font-size:18px;color:hsl(var(--muted-foreground))}.panel-content.svelte-ye9143{padding:0 12px 12px}.filter-buttons.svelte-ye9143{display:flex;gap:4px;margin-bottom:8px}.filter-buttons.svelte-ye9143 .filter-btn{flex:1;height:32px;font-size:12px}.loading.svelte-ye9143,.error.svelte-ye9143,.empty.svelte-ye9143{color:hsl(var(--muted-foreground));text-align:center;padding:20px;font-size:13px}.error.svelte-ye9143{color:hsl(var(--destructive))}.screenshots-panel.svelte-i8iwb7{border-top:1px solid hsl(var(--border))}.panel-header.svelte-i8iwb7{display:flex;align-items:center;gap:8px;width:100%;padding:12px;border:none;background:transparent;color:inherit;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;text-align:left}.panel-header.svelte-i8iwb7:hover{background:hsl(var(--accent) / .5)}.panel-header.svelte-i8iwb7 .screenshot-count{font-size:11px;padding:2px 6px}.chevron.svelte-i8iwb7{font-size:18px;color:hsl(var(--muted-foreground))}.panel-content.svelte-i8iwb7{padding:0 12px 12px}.screenshots-grid.svelte-i8iwb7{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.screenshot-item.svelte-i8iwb7{position:relative;aspect-ratio:16 / 10;border-radius:6px;overflow:hidden;background:hsl(var(--muted))}.thumbnail.svelte-i8iwb7{display:block;width:100%;height:100%;padding:0;border:none;background:transparent;cursor:pointer}.thumbnail.svelte-i8iwb7 img:where(.svelte-i8iwb7){width:100%;height:100%;object-fit:cover}.thumbnail.svelte-i8iwb7:hover{opacity:.9}.screenshot-item.svelte-i8iwb7 .dismiss-btn{position:absolute;top:4px;right:4px;width:24px;height:24px;background:hsl(var(--background) / .8);border-radius:4px;opacity:0;transition:opacity .15s}.screenshot-item.svelte-i8iwb7:hover .dismiss-btn{opacity:1}.screenshot-item.svelte-i8iwb7 .dismiss-btn:hover{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.empty.svelte-i8iwb7{color:hsl(var(--muted-foreground));text-align:center;padding:20px;font-size:13px}.modal-overlay.svelte-i8iwb7{position:fixed;inset:0;z-index:1000;background:#000000e6;display:flex;align-items:center;justify-content:center;padding:16px}.modal-content.svelte-i8iwb7{position:relative;max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:16px;transition:transform .1s ease-out}.modal-image.svelte-i8iwb7{max-width:100%;max-height:calc(100vh - 120px);object-fit:contain;border-radius:8px;box-shadow:0 4px 24px #00000080}.modal-actions.svelte-i8iwb7{display:flex;gap:12px}.modal-actions.svelte-i8iwb7 .modal-btn{display:flex;align-items:center;gap:6px}.swipe-hint.svelte-i8iwb7{display:none;align-items:center;gap:6px;color:hsl(var(--muted-foreground));font-size:12px}@media(max-width:768px){.swipe-hint.svelte-i8iwb7{display:flex}}.sidebar-sessions.svelte-1wiqrar{display:flex;flex-direction:column;height:100%;overflow:hidden;background:hsl(var(--card))}.sidebar-header.svelte-1wiqrar{display:flex;align-items:center;gap:8px;padding:12px;border-bottom:1px solid hsl(var(--border))}.home-link.svelte-1wiqrar{display:flex;align-items:center;gap:8px;flex:1;min-width:0;color:hsl(var(--foreground));text-decoration:none;font-weight:600;font-size:14px;padding:8px 12px;border-radius:8px;background:hsl(var(--secondary))}.home-link.svelte-1wiqrar:hover{background:hsl(var(--accent))}.scroll-content.svelte-1wiqrar{flex:1;overflow-y:auto;min-height:0}.panel-header.svelte-1wiqrar{display:flex;align-items:center;gap:8px;width:100%;padding:12px;border:none;background:transparent;color:inherit;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;text-align:left}.panel-header.svelte-1wiqrar:hover{background:hsl(var(--accent) / .5)}.panel-header.svelte-1wiqrar .session-count{font-size:11px;padding:2px 6px}.chevron.svelte-1wiqrar{font-size:18px;color:hsl(var(--muted-foreground))}.sessions-list.svelte-1wiqrar{padding:0 12px 12px}.session-item.svelte-1wiqrar{display:flex;align-items:flex-start;gap:8px;padding:8px 12px;border-radius:8px;text-decoration:none;color:inherit;margin-bottom:4px;position:relative}.session-item.svelte-1wiqrar:hover{background:hsl(var(--accent))}.session-item.active.svelte-1wiqrar{background:color-mix(in oklch,var(--primary),transparent 75%);box-shadow:inset 0 0 0 1px color-mix(in oklch,var(--primary),transparent 70%)}.session-item.active.svelte-1wiqrar:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:4px;background:var(--primary);border-radius:0 2px 2px 0}.session-item.active.svelte-1wiqrar .session-name:where(.svelte-1wiqrar){color:var(--primary)}.icon-slot.svelte-1wiqrar{width:18px;display:flex;align-items:center;justify-content:center;flex-shrink:0;align-self:center}.state-dot.svelte-1wiqrar{width:10px;height:10px;border-radius:50%}.session-info.svelte-1wiqrar{flex:1;min-width:0}.session-name.svelte-1wiqrar{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-action.svelte-1wiqrar{font-size:11px;color:hsl(var(--muted-foreground));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}.empty.svelte-1wiqrar{color:hsl(var(--muted-foreground));text-align:center;padding:20px;font-size:13px}body{margin:0;min-height:100vh}iconify-icon{font-size:18px}iconify-icon.spin{animation:svelte-12qhfyh-spin 1s linear infinite}@keyframes svelte-12qhfyh-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app-shell.svelte-12qhfyh{display:flex;height:100vh;overflow:hidden}.app-shell.resizing-any.svelte-12qhfyh{cursor:col-resize;user-select:none}.split-panel.svelte-12qhfyh{width:var(--split-panel-width, 350px);flex-shrink:0;background:hsl(var(--background));border-right:1px solid hsl(var(--border));overflow:hidden;position:relative}.split-panel.resizing.svelte-12qhfyh{user-select:none}.split-panel.svelte-12qhfyh .resize-handle:where(.svelte-12qhfyh){position:absolute;top:0;right:0;width:4px;height:100%;cursor:col-resize;background:transparent;transition:background .15s}.split-panel.svelte-12qhfyh .resize-handle:where(.svelte-12qhfyh):hover,.split-panel.resizing.svelte-12qhfyh .resize-handle:where(.svelte-12qhfyh){background:color-mix(in oklch,var(--primary),transparent 50%)}.sidebar.svelte-12qhfyh{width:var(--sidebar-width, 250px);flex-shrink:0;background:hsl(var(--background));border-right:1px solid hsl(var(--border));overflow:hidden;position:relative;order:1}.split-view.svelte-12qhfyh .sidebar:where(.svelte-12qhfyh){order:3;border-right:none;border-left:1px solid hsl(var(--border))}.sidebar.resizing.svelte-12qhfyh{user-select:none}.resize-handle.svelte-12qhfyh{position:absolute;top:0;right:0;width:4px;height:100%;cursor:col-resize;background:transparent;transition:background .15s}.resize-handle-left.svelte-12qhfyh{right:auto;left:0;display:none}.resize-handle-right.svelte-12qhfyh{right:0;left:auto;display:block}.split-view.svelte-12qhfyh .sidebar:where(.svelte-12qhfyh) .resize-handle-left:where(.svelte-12qhfyh){display:block}.split-view.svelte-12qhfyh .sidebar:where(.svelte-12qhfyh) .resize-handle-right:where(.svelte-12qhfyh){display:none}.resize-handle.svelte-12qhfyh:hover,.sidebar.resizing.svelte-12qhfyh .resize-handle:where(.svelte-12qhfyh){background:color-mix(in oklch,var(--primary),transparent 50%)}.content.svelte-12qhfyh{flex:1;overflow:hidden;position:relative;order:2}.hamburger.svelte-12qhfyh,.backdrop.svelte-12qhfyh{display:none}@media(max-width:1199px){.split-panel.svelte-12qhfyh{display:none}}@media(max-width:768px){.sidebar.svelte-12qhfyh{position:fixed;left:0;top:0;bottom:0;width:100%!important;z-index:60;transform:translate(-100%);transition:transform .2s ease;background:hsl(var(--background) / .85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.sidebar.open.svelte-12qhfyh{transform:translate(0)}.resize-handle.svelte-12qhfyh{display:none}.hamburger.svelte-12qhfyh{display:flex;align-items:center;justify-content:center;position:fixed;top:12px;left:12px;z-index:50;width:44px;height:44px;background:hsl(var(--secondary));border:none;border-radius:8px;color:hsl(var(--foreground));cursor:pointer;font-size:22px}.hamburger.svelte-12qhfyh:hover{background:hsl(var(--accent))}.backdrop.svelte-12qhfyh{display:block;position:fixed;inset:0;background:#0006;z-index:55;border:none;cursor:pointer}}
@@ -0,0 +1 @@
1
+ .root-page.svelte-1uha8ag{height:100vh;max-width:800px;margin:0 auto}
@@ -0,0 +1 @@
1
+ .terminal-renderer.svelte-k7hba9{--tool-read: #60a5fa;--tool-write: #c084fc;--tool-edit: #fbbf24;--tool-search: #f472b6;--tool-bash: #22d3ee;--tool-task: #a78bfa;--tool-web: #fb923c;--tool-todo: #a3e635;--tool-browser: #f97316;--tool-default: #4ade80;margin:0;font-family:SF Mono,Monaco,Cascadia Code,monospace;font-size:13px;line-height:1.4;white-space:pre-wrap;word-break:break-word;background:#000;color:#fff}.terminal-user-prompt.svelte-k7hba9{color:var(--tool-read);font-weight:500}.terminal-claude-response.svelte-k7hba9{color:#fff}.terminal-tool-call.svelte-k7hba9{color:var(--tool-default)}.tool-badge.svelte-k7hba9{font-size:11px;font-weight:600;color:#000;padding:0 4px;border-radius:3px;margin-right:4px;background:var(--tool-default)}.tool-badge.tool-read.svelte-k7hba9{background:var(--tool-read)}.tool-badge.tool-write.svelte-k7hba9{background:var(--tool-write)}.tool-badge.tool-edit.svelte-k7hba9{background:var(--tool-edit)}.tool-badge.tool-search.svelte-k7hba9{background:var(--tool-search)}.tool-badge.tool-bash.svelte-k7hba9{background:var(--tool-bash)}.tool-badge.tool-task.svelte-k7hba9{background:var(--tool-task)}.tool-badge.tool-web.svelte-k7hba9{background:var(--tool-web)}.tool-badge.tool-todo.svelte-k7hba9{background:var(--tool-todo)}.tool-badge.tool-browser.svelte-k7hba9{background:var(--tool-browser)}.tool-badge.tool-default.svelte-k7hba9{background:var(--tool-default)}.terminal-tool-call.tool-read.svelte-k7hba9{color:var(--tool-read)}.terminal-tool-call.tool-write.svelte-k7hba9{color:var(--tool-write)}.terminal-tool-call.tool-edit.svelte-k7hba9{color:var(--tool-edit)}.terminal-tool-call.tool-search.svelte-k7hba9{color:var(--tool-search)}.terminal-tool-call.tool-bash.svelte-k7hba9{color:var(--tool-bash)}.terminal-tool-call.tool-task.svelte-k7hba9{color:var(--tool-task)}.terminal-tool-call.tool-web.svelte-k7hba9{color:var(--tool-web)}.terminal-tool-call.tool-todo.svelte-k7hba9{color:var(--tool-todo)}.terminal-tool-call.tool-browser.svelte-k7hba9{color:var(--tool-browser)}.terminal-tool-call.tool-default.svelte-k7hba9{color:var(--tool-default)}.diff-add.svelte-k7hba9{color:#4ade80}.diff-remove.svelte-k7hba9{color:#f87171}.terminal-tool-result.svelte-k7hba9{color:#d1d5db}.terminal-separator.svelte-k7hba9{color:#4b5563}.terminal-status.svelte-k7hba9{color:#6b7280}.terminal-spinner.svelte-k7hba9{color:#22d3ee}.terminal-plain.svelte-k7hba9{color:#e5e7eb}.session-container.svelte-15bjeev{height:100%;display:flex;flex-direction:column;background:#000;overflow:hidden;overscroll-behavior:none;touch-action:pan-y}.header.svelte-15bjeev{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#111;border-bottom:1px solid #222}@media(max-width:768px){.header.svelte-15bjeev{padding-left:64px}}.title-row.svelte-15bjeev{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.state.svelte-15bjeev{width:12px;height:12px;border-radius:50%;flex-shrink:0}.title-info.svelte-15bjeev{display:flex;flex-direction:column;min-width:0}.target.svelte-15bjeev{font-weight:600;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status.svelte-15bjeev{font-size:13px;color:#888;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-actions.svelte-15bjeev{display:flex;gap:6px}.output.svelte-15bjeev{flex:1;overflow-y:auto;overscroll-behavior:none;touch-action:pan-y;padding:16px;margin:0;font-family:SF Mono,Monaco,Cascadia Code,monospace;font-size:13px;line-height:1.4;white-space:pre-wrap;word-break:break-word;background:#000;color:#fff}.raw-output.svelte-15bjeev{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;white-space:pre-wrap;word-break:break-word;background:transparent;color:inherit}.toolbar.svelte-15bjeev{display:flex;gap:6px;padding:8px 12px;background:#111;border-top:1px solid #222}.input-row.svelte-15bjeev{display:flex;align-items:flex-end;gap:8px;padding:12px 16px;background:#111;border-top:1px solid #222}.input-row.svelte-15bjeev textarea:where(.svelte-15bjeev){flex:1;min-width:0;height:48px;background:#222;color:#fff;border:1px solid #333;padding:12px 16px;border-radius:8px;font-size:14px;font-family:JetBrains Mono,Fira Code,SF Mono,Monaco,Cascadia Code,monospace;line-height:1.5;resize:none;overflow-y:auto;overflow-x:hidden;max-height:150px;word-wrap:break-word;box-sizing:border-box;scrollbar-width:none}.input-row.svelte-15bjeev textarea:where(.svelte-15bjeev)::-webkit-scrollbar{display:none}.input-row.svelte-15bjeev textarea:where(.svelte-15bjeev):focus{outline:none;border-color:#27ae60}.input-row.svelte-15bjeev textarea:where(.svelte-15bjeev)::placeholder{color:#666}
@@ -0,0 +1 @@
1
+ [data-scroll-area-viewport]{scrollbar-width:none!important;-ms-overflow-style:none!important;-webkit-overflow-scrolling:touch!important}[data-scroll-area-viewport]::-webkit-scrollbar{display:none!important}:where([data-scroll-area-viewport]){display:flex;flex-direction:column;align-items:stretch}:where([data-scroll-area-content]){flex-grow:1}.all-sessions-panel.svelte-183q6rw{display:flex;flex-direction:column;height:100%;overflow:hidden}.header.svelte-183q6rw{display:flex;justify-content:space-between;align-items:center;padding:16px 16px 12px;border-bottom:1px solid hsl(var(--border));flex-shrink:0}.title-link.svelte-183q6rw{text-decoration:none;color:inherit}.title-link.svelte-183q6rw:hover h1:where(.svelte-183q6rw){color:hsl(var(--primary))}.header.svelte-183q6rw h1:where(.svelte-183q6rw){font-size:18px;margin:0;transition:color .15s}.header-actions.svelte-183q6rw{display:flex;gap:8px}.count.svelte-183q6rw{color:hsl(var(--muted-foreground));font-size:13px;margin:0;padding:8px 16px;flex-shrink:0}.scroll-content.svelte-183q6rw{flex:1;overflow-y:auto;padding:0 12px 12px}.empty.svelte-183q6rw{color:hsl(var(--muted-foreground));text-align:center;padding:40px 16px;font-size:14px}.project-group.svelte-183q6rw{margin-bottom:16px;border-left:3px solid;border-radius:6px;overflow:hidden}.project-group.nested.svelte-183q6rw{margin-bottom:10px;margin-top:-6px}.project-header.svelte-183q6rw{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:#292524}.project-info.svelte-183q6rw{display:flex;align-items:center;gap:6px;min-width:0}.nest-indicator.svelte-183q6rw{font-family:monospace;color:hsl(var(--muted-foreground));margin-right:-2px;font-size:12px}.project-header.svelte-183q6rw .name:where(.svelte-183q6rw){font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-header.svelte-183q6rw .meta:where(.svelte-183q6rw){display:flex;align-items:center;gap:4px;flex-shrink:0}.project-actions.svelte-183q6rw{display:flex;gap:2px;opacity:.5;transition:opacity .15s}.project-header.svelte-183q6rw:hover .project-actions:where(.svelte-183q6rw){opacity:1}.project-sessions.svelte-183q6rw .session:where(.svelte-183q6rw){display:flex;align-items:center;gap:10px;padding:12px 12px 12px 10px;background:#111;border-top:1px solid #222;text-decoration:none;color:inherit;transition:background .15s}.project-sessions.svelte-183q6rw .session:where(.svelte-183q6rw):hover{background:#1a1a1a}.project-sessions.svelte-183q6rw .session.active:where(.svelte-183q6rw){background:color-mix(in oklch,var(--primary),transparent 75%);border-left:4px solid var(--primary);padding-left:6px;box-shadow:inset 0 0 0 1px color-mix(in oklch,var(--primary),transparent 70%)}.project-sessions.svelte-183q6rw .session.active:where(.svelte-183q6rw) .target:where(.svelte-183q6rw){color:var(--primary)}.session.svelte-183q6rw .state:where(.svelte-183q6rw){width:12px;height:12px;border-radius:50%;flex-shrink:0}.session-info.svelte-183q6rw{flex:1;min-width:0}.session.svelte-183q6rw .target:where(.svelte-183q6rw){font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session.svelte-183q6rw .action:where(.svelte-183q6rw){color:hsl(var(--muted-foreground));font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session.no-tmux.svelte-183q6rw{cursor:default;opacity:.7}.no-tmux-label.svelte-183q6rw{color:hsl(var(--muted-foreground));font-size:11px;font-style:italic}.empty-project.svelte-183q6rw{padding:12px;background:#111;color:hsl(var(--muted-foreground));text-align:center;font-size:13px;border-radius:0 0 6px 6px}.actions.svelte-183q6rw{display:flex;gap:4px;flex-shrink:0}.fb-path.svelte-183q6rw{padding:12px;background:hsl(var(--muted));font-family:monospace;font-size:14px;color:hsl(var(--muted-foreground));word-break:break-all;border-radius:6px;margin-bottom:8px}.fb-item.svelte-183q6rw{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;background:transparent;border:none;color:hsl(var(--foreground));font-size:14px;text-align:left;cursor:pointer;border-radius:6px}.fb-item.svelte-183q6rw:hover{background:hsl(var(--accent))}.other-tmux.svelte-183q6rw{margin-top:24px;padding-top:16px;border-top:1px solid #333}.other-tmux-header.svelte-183q6rw{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.other-tmux-header.svelte-183q6rw h2:where(.svelte-183q6rw){font-size:14px;font-weight:600;color:hsl(var(--muted-foreground));margin:0}.other-tmux-list.svelte-183q6rw{display:flex;flex-direction:column;gap:4px}.tmux-pane.svelte-183q6rw{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#1a1a1a;border-radius:6px;text-decoration:none;color:inherit;transition:background .15s}.tmux-pane.svelte-183q6rw:hover{background:#252525}.pane-icon.svelte-183q6rw{color:hsl(var(--muted-foreground));font-size:16px;flex-shrink:0}.pane-info.svelte-183q6rw{display:flex;align-items:center;gap:10px;min-width:0}.pane-target.svelte-183q6rw{font-family:monospace;font-size:12px;color:hsl(var(--foreground))}.pane-command.svelte-183q6rw{font-size:12px;color:hsl(var(--muted-foreground))}.compact.svelte-183q6rw .header:where(.svelte-183q6rw){padding:12px 12px 8px}.compact.svelte-183q6rw .header:where(.svelte-183q6rw) h1:where(.svelte-183q6rw){font-size:16px}.compact.svelte-183q6rw .count:where(.svelte-183q6rw){padding:6px 12px;font-size:12px}.compact.svelte-183q6rw .scroll-content:where(.svelte-183q6rw){padding:0 8px 8px}.compact.svelte-183q6rw .project-header:where(.svelte-183q6rw){padding:8px 10px}.compact.svelte-183q6rw .project-header:where(.svelte-183q6rw) .name:where(.svelte-183q6rw){font-size:13px}.compact.svelte-183q6rw .project-sessions:where(.svelte-183q6rw) .session:where(.svelte-183q6rw){padding:10px 8px;gap:8px}.compact.svelte-183q6rw .session:where(.svelte-183q6rw) .state:where(.svelte-183q6rw){width:10px;height:10px}.compact.svelte-183q6rw .session:where(.svelte-183q6rw) .target:where(.svelte-183q6rw){font-size:13px}.compact.svelte-183q6rw .session:where(.svelte-183q6rw) .action:where(.svelte-183q6rw){font-size:11px}
@@ -0,0 +1 @@
1
+ import{j as g,u as d,k as c,l as m,m as i,o as b,g as p,q as v,v as k,w as h}from"./BHwiZXRv.js";function x(n=!1){const s=g,e=s.l.u;if(!e)return;let f=()=>v(s.s);if(n){let o=0,t={};const _=k(()=>{let l=!1;const r=s.s;for(const a in r)r[a]!==t[a]&&(t[a]=r[a],l=!0);return l&&o++,o});f=()=>p(_)}e.b.length&&d(()=>{u(s,f),i(e.b)}),c(()=>{const o=m(()=>e.m.map(b));return()=>{for(const t of o)typeof t=="function"&&t()}}),e.a.length&&c(()=>{u(s,f),i(e.a)})}function u(n,s){if(n.l.s)for(const e of n.l.s)p(e);s()}h();export{x as i};
@@ -0,0 +1 @@
1
+ import{y as R,z as C,A as y,B as K,C as T,D as I,h as P,F as j,G as $,H as k,f as q,i as z,E as G,I as H,J as Z,K as J,L as Q,M as D,e as V,N as W,l as N,O as X,S as E,P as ee,Q as se,R as x,T as re,U as te,V as ne,g,d as L,W as w,X as ie,Y as ae,Z as fe,_ as ue,a0 as ce,a1 as oe,a2 as le,a3 as de,a4 as he,a5 as _e,v as pe,a6 as ve,a7 as be,a8 as B,a9 as p}from"./BHwiZXRv.js";class ge{anchor;#s=new Map;#r=new Map;#e=new Map;#t=new Set;#n=!0;constructor(e,t=!0){this.anchor=e,this.#n=t}#i=()=>{var e=R;if(this.#s.has(e)){var t=this.#s.get(e),r=this.#r.get(t);if(r)C(r),this.#t.delete(t);else{var n=this.#e.get(t);n&&(this.#r.set(t,n.effect),this.#e.delete(t),n.fragment.lastChild.remove(),this.anchor.before(n.fragment),r=n.effect)}for(const[i,f]of this.#s){if(this.#s.delete(i),i===e)break;const a=this.#e.get(f);a&&(y(a.effect),this.#e.delete(f))}for(const[i,f]of this.#r){if(i===t||this.#t.has(i))continue;const a=()=>{if(Array.from(this.#s.values()).includes(i)){var o=document.createDocumentFragment();$(f,o),o.append(T()),this.#e.set(i,{effect:f,fragment:o})}else y(f);this.#t.delete(i),this.#r.delete(i)};this.#n||!r?(this.#t.add(i),K(f,a,!1)):a()}}};#a=e=>{this.#s.delete(e);const t=Array.from(this.#s.values());for(const[r,n]of this.#e)t.includes(r)||(y(n.effect),this.#e.delete(r))};ensure(e,t){var r=R,n=k();if(t&&!this.#r.has(e)&&!this.#e.has(e))if(n){var i=document.createDocumentFragment(),f=T();i.append(f),this.#e.set(e,{effect:I(()=>t(f)),fragment:i})}else this.#r.set(e,I(()=>t(this.anchor)));if(this.#s.set(r,e),n){for(const[a,u]of this.#r)a===e?r.skipped_effects.delete(u):r.skipped_effects.add(u);for(const[a,u]of this.#e)a===e?r.skipped_effects.delete(u.effect):r.skipped_effects.add(u.effect);r.oncommit(this.#i),r.ondiscard(this.#a)}else P&&(this.anchor=j),this.#i()}}function me(s,e,t=!1){P&&z();var r=new ge(s),n=t?G:0;function i(f,a){if(P){const o=H(s)===Z;if(f===o){var u=J();Q(u),r.anchor=u,D(!1),r.ensure(f,a),D(!0);return}}r.ensure(f,a)}q(()=>{var f=!1;e((a,u=!0)=>{f=!0,i(u,a)}),f||i(!1,null)},n)}function M(s,e){return s===e||s?.[E]===e}function Ee(s={},e,t,r){return V(()=>{var n,i;return W(()=>{n=i,i=[],N(()=>{s!==t(...i)&&(e(s,...i),n&&M(t(...n),s)&&e(null,...n))})}),()=>{X(()=>{i&&M(t(...i),s)&&e(null,...i)})}}),s}let b=!1,m=Symbol();function Oe(s,e,t){const r=t[e]??={store:null,source:re(void 0),unsubscribe:x};if(r.store!==s&&!(m in t))if(r.unsubscribe(),r.store=s??null,s==null)r.source.v=void 0,r.unsubscribe=x;else{var n=!0;r.unsubscribe=te(s,i=>{n?r.source.v=i:L(r.source,i)}),n=!1}return s&&m in t?ne(s):g(r.source)}function Ae(){const s={};function e(){ee(()=>{for(var t in s)s[t].unsubscribe();se(s,m,{enumerable:!1,value:!0})})}return[s,e]}function Se(s){var e=b;try{return b=!1,[s(),b]}finally{b=e}}const ye={get(s,e){if(!s.exclude.includes(e))return s.props[e]},set(s,e){return!1},getOwnPropertyDescriptor(s,e){if(!s.exclude.includes(e)&&e in s.props)return{enumerable:!0,configurable:!0,value:s.props[e]}},has(s,e){return s.exclude.includes(e)?!1:e in s.props},ownKeys(s){return Reflect.ownKeys(s.props).filter(e=>!s.exclude.includes(e))}};function Re(s,e,t){return new Proxy({props:s,exclude:e},ye)}const Pe={get(s,e){let t=s.props.length;for(;t--;){let r=s.props[t];if(p(r)&&(r=r()),typeof r=="object"&&r!==null&&e in r)return r[e]}},set(s,e,t){let r=s.props.length;for(;r--;){let n=s.props[r];p(n)&&(n=n());const i=w(n,e);if(i&&i.set)return i.set(t),!0}return!1},getOwnPropertyDescriptor(s,e){let t=s.props.length;for(;t--;){let r=s.props[t];if(p(r)&&(r=r()),typeof r=="object"&&r!==null&&e in r){const n=w(r,e);return n&&!n.configurable&&(n.configurable=!0),n}}},has(s,e){if(e===E||e===B)return!1;for(let t of s.props)if(p(t)&&(t=t()),t!=null&&e in t)return!0;return!1},ownKeys(s){const e=[];for(let t of s.props)if(p(t)&&(t=t()),!!t){for(const r in t)e.includes(r)||e.push(r);for(const r of Object.getOwnPropertySymbols(t))e.includes(r)||e.push(r)}return e}};function Te(...s){return new Proxy({props:s},Pe)}function Ie(s,e,t,r){var n=!de||(t&he)!==0,i=(t&le)!==0,f=(t&be)!==0,a=r,u=!0,o=()=>(u&&(u=!1,a=f?N(r):r),a),d;if(i){var U=E in s||B in s;d=w(s,e)?.set??(U&&e in s?c=>s[e]=c:void 0)}var h,O=!1;i?[h,O]=Se(()=>s[e]):h=s[e],h===void 0&&r!==void 0&&(h=o(),d&&(n&&ie(),d(h)));var l;if(n?l=()=>{var c=s[e];return c===void 0?o():(u=!0,c)}:l=()=>{var c=s[e];return c!==void 0&&(a=void 0),c===void 0?a:c},n&&(t&ae)===0)return l;if(d){var Y=s.$$legacy;return(function(c,v){return arguments.length>0?((!n||!v||Y||O)&&d(v?l():c),c):l()})}var S=!1,_=((t&_e)!==0?pe:ve)(()=>(S=!1,l()));i&&g(_);var F=ce;return(function(c,v){if(arguments.length>0){const A=v?g(_):n&&i?fe(c):c;return L(_,A),S=!0,a!==void 0&&(a=A),c}return ue&&S||(F.f&oe)!==0?_.v:g(_)})}export{ge as B,Oe as a,Ee as b,Te as c,me as i,Ie as p,Re as r,Ae as s};
@@ -0,0 +1 @@
1
+ var Kt=Array.isArray,zt=Array.prototype.indexOf,fe=Array.prototype.includes,Ln=Array.from,qn=Object.defineProperty,ce=Object.getOwnPropertyDescriptor,$t=Object.getOwnPropertyDescriptors,Xt=Object.prototype,Zt=Array.prototype,ot=Object.getPrototypeOf,tt=Object.isExtensible;function Yn(e){return typeof e=="function"}const ge=()=>{};function Hn(e){return e()}function Wt(e){for(var t=0;t<e.length;t++)e[t]()}function ct(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function Un(e,t){if(Array.isArray(e))return e;if(!(Symbol.iterator in e))return Array.from(e);const n=[];for(const r of e)if(n.push(r),n.length===t)break;return n}const E=2,ve=4,pe=8,He=1<<24,F=16,j=32,G=64,_t=128,D=512,m=1024,R=2048,K=4096,I=8192,q=16384,Ue=32768,Ae=65536,nt=1<<17,vt=1<<18,ue=1<<19,dt=1<<20,Bn=1<<25,Q=32768,Ie=1<<21,Be=1<<22,Y=1<<23,W=Symbol("$state"),Vn=Symbol("legacy props"),Gn=Symbol(""),se=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},zn=1,Ve=3,pt=8,$n=11;function Ge(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Jt(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Qt(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function en(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function tn(e){throw new Error("https://svelte.dev/e/effect_orphan")}function nn(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Xn(){throw new Error("https://svelte.dev/e/hydration_failed")}function Zn(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function rn(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function sn(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function fn(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Wn(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const Jn=1,Qn=2,er=4,tr=8,nr=16,rr=1,sr=2,ir=4,fr=8,ar=16,lr=1,ur=2,an="[",ln="[!",un="]",Ke={},b=Symbol(),or="http://www.w3.org/1999/xhtml",cr="http://www.w3.org/2000/svg",_r="@attach";function ze(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function vr(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function dr(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let U=!1;function pr(e){U=e}let S;function ae(e){if(e===null)throw ze(),Ke;return S=e}function hr(){return ae(z(S))}function yr(e){if(U){if(z(S)!==null)throw ze(),Ke;S=e}}function wr(e=1){if(U){for(var t=e,n=S;t--;)n=z(n);S=n}}function br(e=!0){for(var t=0,n=S;;){if(n.nodeType===pt){var r=n.data;if(r===un){if(t===0)return n;t-=1}else(r===an||r===ln)&&(t+=1)}var s=z(n);e&&n.remove(),n=s}}function Er(e){if(!e||e.nodeType!==pt)throw ze(),Ke;return e.data}function ht(e){return e===this.v}function yt(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function wt(e){return!yt(e,this.v)}let he=!1;function mr(){he=!0}let h=null;function xe(e){h=e}function gr(e){return De().get(e)}function Tr(e,t){return De().set(e,t),t}function Ar(e){return De().has(e)}function xr(){return De()}function Sr(e,t=!1,n){h={p:h,i:!1,c:null,e:null,s:e,x:null,l:he&&!t?{s:null,u:null,$:[]}:null}}function Rr(e){var t=h,n=t.e;if(n!==null){t.e=null;for(var r of n)Pt(r)}return t.i=!0,h=t.p,{}}function ye(){return!he||h!==null&&h.l===null}function De(e){return h===null&&Ge(),h.c??=new Map(on(h)||void 0)}function on(e){let t=e.p;for(;t!==null;){const n=t.c;if(n!==null)return n;t=t.p}return null}let X=[];function bt(){var e=X;X=[],Wt(e)}function Me(e){if(X.length===0&&!_e){var t=X;queueMicrotask(()=>{t===X&&bt()})}X.push(e)}function cn(){for(;X.length>0;)bt()}function _n(e){var t=p;if(t===null)return v.f|=Y,e;if((t.f&Ue)===0){if((t.f&_t)===0)throw e;t.b.error(e)}else Se(e,t)}function Se(e,t){for(;t!==null;){if((t.f&_t)!==0)try{t.b.error(e);return}catch(n){e=n}t=t.parent}throw e}const vn=-7169;function g(e,t){e.f=e.f&vn|t}function $e(e){(e.f&D)!==0||e.deps===null?g(e,m):g(e,K)}function Et(e){if(e!==null)for(const t of e)(t.f&E)===0||(t.f&Q)===0||(t.f^=Q,Et(t.deps))}function dn(e,t,n){(e.f&R)!==0?t.add(e):(e.f&K)!==0&&n.add(e),Et(e.deps),g(e,m)}const me=new Set;let y=null,rt=null,k=null,x=[],Ce=null,Fe=!1,_e=!1;class ne{committed=!1;current=new Map;previous=new Map;#n=new Set;#r=new Set;#e=0;#s=0;#f=null;#a=new Set;#t=new Set;skipped_effects=new Set;is_fork=!1;#i=!1;is_deferred(){return this.is_fork||this.#s>0}process(t){x=[],this.apply();var n=[],r=[];for(const s of t)this.#l(s,n,r);if(this.is_deferred())this.#u(r),this.#u(n);else{for(const s of this.#n)s();this.#n.clear(),this.#e===0&&this.#o(),rt=this,y=null,st(r),st(n),rt=null,this.#f?.resolve()}k=null}#l(t,n,r){t.f^=m;for(var s=t.first,i=null;s!==null;){var u=s.f,f=(u&(j|G))!==0,l=f&&(u&m)!==0,a=l||(u&I)!==0||this.skipped_effects.has(s);if(!a&&s.fn!==null){f?s.f^=m:i!==null&&(u&(ve|pe|He))!==0?i.b.defer_effect(s):(u&ve)!==0?n.push(s):we(s)&&((u&F)!==0&&this.#t.add(s),de(s));var o=s.first;if(o!==null){s=o;continue}}var _=s.parent;for(s=s.next;s===null&&_!==null;)_===i&&(i=null),s=_.next,_=_.parent}}#u(t){for(var n=0;n<t.length;n+=1)dn(t[n],this.#a,this.#t)}capture(t,n){n!==b&&!this.previous.has(t)&&this.previous.set(t,n),(t.f&Y)===0&&(this.current.set(t,t.v),k?.set(t,t.v))}activate(){y=this,this.apply()}deactivate(){y===this&&(y=null,k=null)}flush(){if(this.activate(),x.length>0){if(mt(),y!==null&&y!==this)return}else this.#e===0&&this.process([]);this.deactivate()}discard(){for(const t of this.#r)t(this);this.#r.clear()}#o(){if(me.size>1){this.previous.clear();var t=k,n=!0;for(const s of me){if(s===this){n=!1;continue}const i=[];for(const[f,l]of this.current){if(s.current.has(f))if(n&&l!==s.current.get(f))s.current.set(f,l);else continue;i.push(f)}if(i.length===0)continue;const u=[...s.current.keys()].filter(f=>!this.current.has(f));if(u.length>0){var r=x;x=[];const f=new Set,l=new Map;for(const a of i)gt(a,u,f,l);if(x.length>0){y=s,s.apply();for(const a of x)s.#l(a,[],[]);s.deactivate()}x=r}}y=null,k=t}this.committed=!0,me.delete(this)}increment(t){this.#e+=1,t&&(this.#s+=1)}decrement(t){this.#e-=1,t&&(this.#s-=1),!this.#i&&(this.#i=!0,Me(()=>{this.#i=!1,this.is_deferred()?x.length>0&&this.flush():this.revive()}))}revive(){for(const t of this.#a)this.#t.delete(t),g(t,R),ee(t);for(const t of this.#t)g(t,K),ee(t);this.flush()}oncommit(t){this.#n.add(t)}ondiscard(t){this.#r.add(t)}settled(){return(this.#f??=ct()).promise}static ensure(){if(y===null){const t=y=new ne;me.add(y),_e||Me(()=>{y===t&&t.flush()})}return y}apply(){}}function pn(e){var t=_e;_e=!0;try{for(var n;;){if(cn(),x.length===0&&(y?.flush(),x.length===0))return Ce=null,n;mt()}}finally{_e=t}}function mt(){Fe=!0;var e=null;try{for(var t=0;x.length>0;){var n=ne.ensure();if(t++>1e3){var r,s;hn()}n.process(x),H.clear()}}finally{Fe=!1,Ce=null}}function hn(){try{nn()}catch(e){Se(e,Ce)}}let M=null;function st(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if((r.f&(q|I))===0&&we(r)&&(M=new Set,de(r),r.deps===null&&r.first===null&&r.nodes===null&&(r.teardown===null&&r.ac===null?Ft(r):r.fn=null),M?.size>0)){H.clear();for(const s of M){if((s.f&(q|I))!==0)continue;const i=[s];let u=s.parent;for(;u!==null;)M.has(u)&&(M.delete(u),i.push(u)),u=u.parent;for(let f=i.length-1;f>=0;f--){const l=i[f];(l.f&(q|I))===0&&de(l)}}M.clear()}}M=null}}function gt(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const s of e.reactions){const i=s.f;(i&E)!==0?gt(s,t,n,r):(i&(Be|F))!==0&&(i&R)===0&&Tt(s,t,r)&&(g(s,R),ee(s))}}function Tt(e,t,n){const r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const s of e.deps){if(fe.call(t,s))return!0;if((s.f&E)!==0&&Tt(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function ee(e){for(var t=Ce=e;t.parent!==null;){t=t.parent;var n=t.f;if(Fe&&t===p&&(n&F)!==0&&(n&vt)===0)return;if((n&(G|j))!==0){if((n&m)===0)return;t.f^=m}}x.push(t)}function At(e,t,n,r){const s=ye()?Xe:bn;var i=e.filter(c=>!c.settled);if(n.length===0&&i.length===0){r(t.map(s));return}var u=y,f=p,l=yn(),a=i.length===1?i[0].promise:i.length>1?Promise.all(i.map(c=>c.promise)):null;function o(c){l();try{r(c)}catch(d){(f.f&q)===0&&Se(d,f)}u?.deactivate(),je()}if(n.length===0){a.then(()=>o(t.map(s)));return}function _(){l(),Promise.all(n.map(c=>wn(c))).then(c=>o([...t.map(s),...c])).catch(c=>Se(c,f))}a?a.then(_):_()}function yn(){var e=p,t=v,n=h,r=y;return function(i=!0){le(e),V(t),xe(n),i&&r?.activate()}}function je(){le(null),V(null),xe(null)}function Xe(e){var t=E|R,n=v!==null&&(v.f&E)!==0?v:null;return p!==null&&(p.f|=ue),{ctx:h,deps:null,effects:null,equals:ht,f:t,fn:e,reactions:null,rv:0,v:b,wv:0,parent:n??p,ac:null}}function wn(e,t,n){let r=p;r===null&&Jt();var s=r.b,i=void 0,u=We(b),f=!v,l=new Map;return Nn(()=>{var a=ct();i=a.promise;try{Promise.resolve(e()).then(a.resolve,a.reject).then(()=>{o===y&&o.committed&&o.deactivate(),je()})}catch(d){a.reject(d),je()}var o=y;if(f){var _=s.is_rendered();s.update_pending_count(1),o.increment(_),l.get(o)?.reject(se),l.delete(o),l.set(o,a)}const c=(d,w=void 0)=>{if(o.activate(),w)w!==se&&(u.f|=Y,qe(u,w));else{(u.f&Y)!==0&&(u.f^=Y),qe(u,d);for(const[be,Ee]of l){if(l.delete(be),be===o)break;Ee.reject(se)}}f&&(s.update_pending_count(-1),o.decrement(_))};a.promise.then(c,d=>c(null,d||"unknown"))}),Rn(()=>{for(const a of l.values())a.reject(se)}),new Promise(a=>{function o(_){function c(){_===i?a(u):o(i)}_.then(c,c)}o(i)})}function Or(e){const t=Xe(e);return qt(t),t}function bn(e){const t=Xe(e);return t.equals=wt,t}function xt(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)B(t[n])}}function En(e){for(var t=e.parent;t!==null;){if((t.f&E)===0)return(t.f&q)===0?t:null;t=t.parent}return null}function Ze(e){var t,n=p;le(En(e));try{e.f&=~Q,xt(e),t=Bt(e)}finally{le(n)}return t}function St(e){var t=Ze(e);if(!e.equals(t)&&(e.wv=Ht(),(!y?.is_fork||e.deps===null)&&(e.v=t,e.deps===null))){g(e,m);return}te||(k!==null?(kt()||y?.is_fork)&&k.set(e,t):$e(e))}let Le=new Set;const H=new Map;let Rt=!1;function We(e,t){var n={f:0,v:e,reactions:null,equals:ht,rv:0,wv:0};return n}function L(e,t){const n=We(e);return qt(n),n}function Nr(e,t=!1,n=!0){const r=We(e);return t||(r.equals=wt),he&&n&&h!==null&&h.l!==null&&(h.l.s??=[]).push(r),r}function $(e,t,n=!1){v!==null&&(!P||(v.f&nt)!==0)&&ye()&&(v.f&(E|F|Be|nt))!==0&&(C===null||!fe.call(C,e))&&fn();let r=n?oe(t):t;return qe(e,r)}function qe(e,t){if(!e.equals(t)){var n=e.v;te?H.set(e,t):H.set(e,n),e.v=t;var r=ne.ensure();if(r.capture(e,n),(e.f&E)!==0){const s=e;(e.f&R)!==0&&Ze(s),$e(s)}e.wv=Ht(),Ot(e,R),ye()&&p!==null&&(p.f&m)!==0&&(p.f&(j|G))===0&&(N===null?Pn([e]):N.push(e)),!r.is_fork&&Le.size>0&&!Rt&&mn()}return t}function mn(){Rt=!1;for(const e of Le)(e.f&m)!==0&&g(e,K),we(e)&&de(e);Le.clear()}function Pe(e){$(e,e.v+1)}function Ot(e,t){var n=e.reactions;if(n!==null)for(var r=ye(),s=n.length,i=0;i<s;i++){var u=n[i],f=u.f;if(!(!r&&u===p)){var l=(f&R)===0;if(l&&g(u,t),(f&E)!==0){var a=u;k?.delete(a),(f&Q)===0&&(f&D&&(u.f|=Q),Ot(a,K))}else l&&((f&F)!==0&&M!==null&&M.add(u),ee(u))}}}function oe(e){if(typeof e!="object"||e===null||W in e)return e;const t=ot(e);if(t!==Xt&&t!==Zt)return e;var n=new Map,r=Kt(e),s=L(0),i=J,u=f=>{if(J===i)return f();var l=v,a=J;V(null),ut(i);var o=f();return V(l),ut(a),o};return r&&n.set("length",L(e.length)),new Proxy(e,{defineProperty(f,l,a){(!("value"in a)||a.configurable===!1||a.enumerable===!1||a.writable===!1)&&rn();var o=n.get(l);return o===void 0?o=u(()=>{var _=L(a.value);return n.set(l,_),_}):$(o,a.value,!0),!0},deleteProperty(f,l){var a=n.get(l);if(a===void 0){if(l in f){const o=u(()=>L(b));n.set(l,o),Pe(s)}}else $(a,b),Pe(s);return!0},get(f,l,a){if(l===W)return e;var o=n.get(l),_=l in f;if(o===void 0&&(!_||ce(f,l)?.writable)&&(o=u(()=>{var d=oe(_?f[l]:b),w=L(d);return w}),n.set(l,o)),o!==void 0){var c=ie(o);return c===b?void 0:c}return Reflect.get(f,l,a)},getOwnPropertyDescriptor(f,l){var a=Reflect.getOwnPropertyDescriptor(f,l);if(a&&"value"in a){var o=n.get(l);o&&(a.value=ie(o))}else if(a===void 0){var _=n.get(l),c=_?.v;if(_!==void 0&&c!==b)return{enumerable:!0,configurable:!0,value:c,writable:!0}}return a},has(f,l){if(l===W)return!0;var a=n.get(l),o=a!==void 0&&a.v!==b||Reflect.has(f,l);if(a!==void 0||p!==null&&(!o||ce(f,l)?.writable)){a===void 0&&(a=u(()=>{var c=o?oe(f[l]):b,d=L(c);return d}),n.set(l,a));var _=ie(a);if(_===b)return!1}return o},set(f,l,a,o){var _=n.get(l),c=l in f;if(r&&l==="length")for(var d=a;d<_.v;d+=1){var w=n.get(d+"");w!==void 0?$(w,b):d in f&&(w=u(()=>L(b)),n.set(d+"",w))}if(_===void 0)(!c||ce(f,l)?.writable)&&(_=u(()=>L(void 0)),$(_,oe(a)),n.set(l,_));else{c=_.v!==b;var be=u(()=>oe(a));$(_,be)}var Ee=Reflect.getOwnPropertyDescriptor(f,l);if(Ee?.set&&Ee.set.call(o,a),!c){if(r&&typeof l=="string"){var et=n.get("length"),ke=Number(l);Number.isInteger(ke)&&ke>=et.v&&$(et,ke+1)}Pe(s)}return!0},ownKeys(f){ie(s);var l=Reflect.ownKeys(f).filter(_=>{var c=n.get(_);return c===void 0||c.v!==b});for(var[a,o]of n)o.v!==b&&!(a in f)&&l.push(a);return l},setPrototypeOf(){sn()}})}function it(e){try{if(e!==null&&typeof e=="object"&&W in e)return e[W]}catch{}return e}function Dr(e,t){return Object.is(it(e),it(t))}var ft,gn,Tn,Nt,Dt;function Cr(){if(ft===void 0){ft=window,gn=document,Tn=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Nt=ce(t,"firstChild").get,Dt=ce(t,"nextSibling").get,tt(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),tt(n)&&(n.__t=void 0)}}function Re(e=""){return document.createTextNode(e)}function Oe(e){return Nt.call(e)}function z(e){return Dt.call(e)}function kr(e,t){if(!U)return Oe(e);var n=Oe(S);if(n===null)n=S.appendChild(Re());else if(t&&n.nodeType!==Ve){var r=Re();return n?.before(r),ae(r),r}return ae(n),n}function Pr(e,t=!1){if(!U){var n=Oe(e);return n instanceof Comment&&n.data===""?z(n):n}if(t&&S?.nodeType!==Ve){var r=Re();return S?.before(r),ae(r),r}return S}function Ir(e,t=1,n=!1){let r=U?S:e;for(var s;t--;)s=r,r=z(r);if(!U)return r;if(n&&r?.nodeType!==Ve){var i=Re();return r===null?s?.after(i):r.before(i),ae(i),i}return ae(r),r}function An(e){e.textContent=""}function Mr(){return!1}function Fr(e,t){if(t){const n=document.body;e.autofocus=!0,Me(()=>{document.activeElement===n&&e.focus()})}}function jr(e){U&&Oe(e)!==null&&An(e)}let at=!1;function xn(){at||(at=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function Je(e){var t=v,n=p;V(null),le(null);try{return e()}finally{V(t),le(n)}}function Lr(e,t,n,r=n){e.addEventListener(t,()=>Je(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),xn()}function Ct(e){p===null&&(v===null&&tn(),en()),te&&Qt()}function Sn(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function O(e,t,n){var r=p;r!==null&&(r.f&I)!==0&&(e|=I);var s={ctx:h,deps:null,nodes:null,f:e|R|D,first:null,fn:t,last:null,next:null,parent:r,b:r&&r.b,prev:null,teardown:null,wv:0,ac:null};if(n)try{de(s),s.f|=Ue}catch(f){throw B(s),f}else t!==null&&ee(s);var i=s;if(n&&i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&(i.f&ue)===0&&(i=i.first,(e&F)!==0&&(e&Ae)!==0&&i!==null&&(i.f|=Ae)),i!==null&&(i.parent=r,r!==null&&Sn(i,r),v!==null&&(v.f&E)!==0&&(e&G)===0)){var u=v;(u.effects??=[]).push(i)}return s}function kt(){return v!==null&&!P}function Rn(e){const t=O(pe,null,!1);return g(t,m),t.teardown=e,t}function On(e){Ct();var t=p.f,n=!v&&(t&j)!==0&&(t&Ue)===0;if(n){var r=h;(r.e??=[]).push(e)}else return Pt(e)}function Pt(e){return O(ve|dt,e,!1)}function qr(e){return Ct(),O(pe|dt,e,!0)}function Yr(e){ne.ensure();const t=O(G|ue,e,!0);return()=>{B(t)}}function Hr(e){ne.ensure();const t=O(G|ue,e,!0);return(n={})=>new Promise(r=>{n.outro?kn(t,()=>{B(t),r(void 0)}):(B(t),r(void 0))})}function Ur(e){return O(ve,e,!1)}function Nn(e){return O(Be|ue,e,!0)}function Br(e,t=0){return O(pe|t,e,!0)}function Vr(e,t=[],n=[],r=[]){At(r,t,n,s=>{O(pe,()=>e(...s.map(ie)),!0)})}function Gr(e,t=[],n=[],r=[]){var s=y,i=n.length>0||r.length>0;i&&s.increment(!0),At(r,t,n,u=>{O(ve,()=>e(...u.map(ie)),!1),i&&s.decrement(!0)})}function Kr(e,t=0){var n=O(F|t,e,!0);return n}function zr(e,t=0){var n=O(He|t,e,!0);return n}function $r(e){return O(j|ue,e,!0)}function It(e){var t=e.teardown;if(t!==null){const n=te,r=v;lt(!0),V(null);try{t.call(null)}finally{lt(n),V(r)}}}function Mt(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&Je(()=>{s.abort(se)});var r=n.next;(n.f&G)!==0?n.parent=null:B(n,t),n=r}}function Dn(e){for(var t=e.first;t!==null;){var n=t.next;(t.f&j)===0&&B(t),t=n}}function B(e,t=!0){var n=!1;(t||(e.f&vt)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(Cn(e.nodes.start,e.nodes.end),n=!0),Mt(e,t&&!n),Ne(e,0),g(e,q);var r=e.nodes&&e.nodes.t;if(r!==null)for(const i of r)i.stop();It(e);var s=e.parent;s!==null&&s.first!==null&&Ft(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=null}function Cn(e,t){for(;e!==null;){var n=e===t?null:z(e);e.remove(),e=n}}function Ft(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function kn(e,t,n=!0){var r=[];jt(e,r,!0);var s=()=>{n&&B(e),t&&t()},i=r.length;if(i>0){var u=()=>--i||s();for(var f of r)f.out(u)}else s()}function jt(e,t,n){if((e.f&I)===0){e.f^=I;var r=e.nodes&&e.nodes.t;if(r!==null)for(const f of r)(f.is_global||n)&&t.push(f);for(var s=e.first;s!==null;){var i=s.next,u=(s.f&Ae)!==0||(s.f&j)!==0&&(e.f&F)!==0;jt(s,t,u?n:!1),s=i}}}function Xr(e){Lt(e,!0)}function Lt(e,t){if((e.f&I)!==0){e.f^=I,(e.f&m)===0&&(g(e,R),ee(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&Ae)!==0||(n.f&j)!==0;Lt(n,s?t:!1),n=r}var i=e.nodes&&e.nodes.t;if(i!==null)for(const u of i)(u.is_global||t)&&u.in()}}function Zr(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:z(n);t.append(n),n=s}}let Te=!1,te=!1;function lt(e){te=e}let v=null,P=!1;function V(e){v=e}let p=null;function le(e){p=e}let C=null;function qt(e){v!==null&&(C===null?C=[e]:C.push(e))}let T=null,A=0,N=null;function Pn(e){N=e}let Yt=1,Z=0,J=Z;function ut(e){J=e}function Ht(){return++Yt}function we(e){var t=e.f;if((t&R)!==0)return!0;if(t&E&&(e.f&=~Q),(t&K)!==0){for(var n=e.deps,r=n.length,s=0;s<r;s++){var i=n[s];if(we(i)&&St(i),i.wv>e.wv)return!0}(t&D)!==0&&k===null&&g(e,m)}return!1}function Ut(e,t,n=!0){var r=e.reactions;if(r!==null&&!(C!==null&&fe.call(C,e)))for(var s=0;s<r.length;s++){var i=r[s];(i.f&E)!==0?Ut(i,t,!1):t===i&&(n?g(i,R):(i.f&m)!==0&&g(i,K),ee(i))}}function Bt(e){var t=T,n=A,r=N,s=v,i=C,u=h,f=P,l=J,a=e.f;T=null,A=0,N=null,v=(a&(j|G))===0?e:null,C=null,xe(e.ctx),P=!1,J=++Z,e.ac!==null&&(Je(()=>{e.ac.abort(se)}),e.ac=null);try{e.f|=Ie;var o=e.fn,_=o(),c=e.deps;if(T!==null){var d;if(Ne(e,A),c!==null&&A>0)for(c.length=A+T.length,d=0;d<T.length;d++)c[A+d]=T[d];else e.deps=c=T;if(kt()&&(e.f&D)!==0)for(d=A;d<c.length;d++)(c[d].reactions??=[]).push(e)}else c!==null&&A<c.length&&(Ne(e,A),c.length=A);if(ye()&&N!==null&&!P&&c!==null&&(e.f&(E|K|R))===0)for(d=0;d<N.length;d++)Ut(N[d],e);if(s!==null&&s!==e){if(Z++,s.deps!==null)for(let w=0;w<n;w+=1)s.deps[w].rv=Z;if(t!==null)for(const w of t)w.rv=Z;N!==null&&(r===null?r=N:r.push(...N))}return(e.f&Y)!==0&&(e.f^=Y),_}catch(w){return _n(w)}finally{e.f^=Ie,T=t,A=n,N=r,v=s,C=i,xe(u),P=f,J=l}}function In(e,t){let n=t.reactions;if(n!==null){var r=zt.call(n,e);if(r!==-1){var s=n.length-1;s===0?n=t.reactions=null:(n[r]=n[s],n.pop())}}if(n===null&&(t.f&E)!==0&&(T===null||!fe.call(T,t))){var i=t;(i.f&D)!==0&&(i.f^=D,i.f&=~Q),$e(i),xt(i),Ne(i,0)}}function Ne(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)In(e,n[r])}function de(e){var t=e.f;if((t&q)===0){g(e,m);var n=p,r=Te;p=e,Te=!0;try{(t&(F|He))!==0?Dn(e):Mt(e),It(e);var s=Bt(e);e.teardown=typeof s=="function"?s:null,e.wv=Yt;var i}finally{Te=r,p=n}}}async function Wr(){await Promise.resolve(),pn()}function Jr(){return ne.ensure().settled()}function ie(e){var t=e.f,n=(t&E)!==0;if(v!==null&&!P){var r=p!==null&&(p.f&q)!==0;if(!r&&(C===null||!fe.call(C,e))){var s=v.deps;if((v.f&Ie)!==0)e.rv<Z&&(e.rv=Z,T===null&&s!==null&&s[A]===e?A++:T===null?T=[e]:T.push(e));else{(v.deps??=[]).push(e);var i=e.reactions;i===null?e.reactions=[v]:fe.call(i,v)||i.push(v)}}}if(te&&H.has(e))return H.get(e);if(n){var u=e;if(te){var f=u.v;return((u.f&m)===0&&u.reactions!==null||Gt(u))&&(f=Ze(u)),H.set(u,f),f}var l=(u.f&D)===0&&!P&&v!==null&&(Te||(v.f&D)!==0),a=u.deps===null;we(u)&&(l&&(u.f|=D),St(u)),l&&!a&&Vt(u)}if(k?.has(e))return k.get(e);if((e.f&Y)!==0)throw e.v;return e.v}function Vt(e){if(e.deps!==null){e.f|=D;for(const t of e.deps)(t.reactions??=[]).push(e),(t.f&E)!==0&&(t.f&D)===0&&Vt(t)}}function Gt(e){if(e.v===b)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(H.has(t)||(t.f&E)!==0&&Gt(t))return!0;return!1}function Qe(e){var t=P;try{return P=!0,e()}finally{P=t}}function Qr(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(W in e)Ye(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&W in n&&Ye(n)}}}function Ye(e,t=new Set){if(typeof e=="object"&&e!==null&&!(e instanceof EventTarget)&&!t.has(e)){t.add(e),e instanceof Date&&e.getTime();for(let r in e)try{Ye(e[r],t)}catch{}const n=ot(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=$t(n);for(let s in r){const i=r[s].get;if(i)try{i.call(e)}catch{}}}}}function Mn(e,t,n){if(e==null)return t(void 0),ge;const r=Qe(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}const re=[];function es(e,t=ge){let n=null;const r=new Set;function s(f){if(yt(e,f)&&(e=f,n)){const l=!re.length;for(const a of r)a[1](),re.push(a,e);if(l){for(let a=0;a<re.length;a+=2)re[a][0](re[a+1]);re.length=0}}}function i(f){s(f(e))}function u(f,l=ge){const a=[f,l];return r.add(a),r.size===1&&(n=t(s,i)||ge),f(e),()=>{r.delete(a),r.size===0&&n&&(n(),n=null)}}return{set:s,update:i,subscribe:u}}function ts(e){let t;return Mn(e,n=>t=n)(),t}function Fn(e){h===null&&Ge(),he&&h.l!==null?jn(h).m.push(e):On(()=>{const t=Qe(e);if(typeof t=="function")return t})}function ns(e){h===null&&Ge(),Fn(()=>()=>Qe(e))}function jn(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}export{gn as $,B as A,kn as B,Re as C,$r as D,Ae as E,S as F,Zr as G,Mr as H,Er as I,ln as J,br as K,ae as L,pr as M,Br as N,Me as O,Rn as P,qn as Q,ge as R,W as S,Nr as T,Mn as U,ts as V,ce as W,Zn as X,ir as Y,oe as Z,te as _,Rr as a,ot as a$,p as a0,q as a1,fr as a2,he as a3,sr as a4,rr as a5,bn as a6,ar as a7,Vn as a8,Yn as a9,K as aA,qe as aB,Se as aC,Wn as aD,ue as aE,_t as aF,dr as aG,Je as aH,Tn as aI,lr as aJ,ur as aK,Ve as aL,Ue as aM,$n as aN,Cr as aO,an as aP,Xn as aQ,An as aR,Ln as aS,Hr as aT,un as aU,vt as aV,zr as aW,Kt as aX,vr as aY,Dr as aZ,or as a_,pn as aa,Fn as ab,Wr as ac,Or as ad,Cn as ae,pt as af,z as ag,ze as ah,Ke as ai,Oe as aj,ns as ak,Gr as al,jr as am,kt as an,Pe as ao,We as ap,ne as aq,dn as ar,le as as,V as at,xe as au,_n as av,v as aw,g as ax,R as ay,ee as az,Ir as b,Gn as b0,$t as b1,At as b2,_r as b3,Fr as b4,b as b5,xn as b6,Lr as b7,rt as b8,Xt as b9,zn as ba,cr as bb,Un as bc,ye as bd,Qn as be,Jn as bf,nr as bg,Bn as bh,I as bi,j as bj,er as bk,tr as bl,J as bm,Ar as bn,gr as bo,Tr as bp,xr as bq,Yr as br,es as bs,Jr as bt,kr as c,$ as d,Ur as e,Kr as f,ie as g,U as h,hr as i,h as j,On as k,Qe as l,Wt as m,wr as n,Hn as o,Sr as p,Qr as q,yr as r,L as s,Vr as t,qr as u,Xe as v,mr as w,Pr as x,y,Xr as z};
@@ -0,0 +1 @@
1
+ import{f as s,h as c,i,E as m}from"./BHwiZXRv.js";import{B as f}from"./B5U4_V3d.js";function E(n,r,o){c&&i();var e=new f(n);s(()=>{var a=r()??null;e.ensure(a,a&&(t=>o(t,a)))},m)}export{E as c};
@@ -0,0 +1 @@
1
+ import{s as e,g as n,d as t}from"./BHwiZXRv.js";class i{#s=e(null);get pendingIssueId(){return n(this.#s)}set pendingIssueId(s){t(this.#s,s,!0)}inject(s){this.pendingIssueId=s}clear(){this.pendingIssueId=null}consume(){const s=this.pendingIssueId;return this.pendingIssueId=null,s}}const u=new i;export{u as i};