@juspay/shooter 1.1.0 → 1.3.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 (332) hide show
  1. package/bin/shooter.cjs +182 -31
  2. package/build/client/_app/immutable/assets/{0.DC5pAwP3.css → 0.BhZOCxO4.css} +1 -1
  3. package/build/client/_app/immutable/assets/0.BhZOCxO4.css.br +0 -0
  4. package/build/client/_app/immutable/assets/0.BhZOCxO4.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/1.BYutk3aU.css +1 -0
  6. package/build/client/_app/immutable/assets/1.BYutk3aU.css.br +0 -0
  7. package/build/client/_app/immutable/assets/1.BYutk3aU.css.gz +0 -0
  8. package/build/client/_app/immutable/assets/{3.BoXp0JoS.css → 3.DGDHCVnW.css} +1 -1
  9. package/build/client/_app/immutable/assets/3.DGDHCVnW.css.br +0 -0
  10. package/build/client/_app/immutable/assets/3.DGDHCVnW.css.gz +0 -0
  11. package/build/client/_app/immutable/assets/4.BFUut--w.css +1 -0
  12. package/build/client/_app/immutable/assets/4.BFUut--w.css.br +0 -0
  13. package/build/client/_app/immutable/assets/4.BFUut--w.css.gz +0 -0
  14. package/build/client/_app/immutable/assets/5.BTOx7yt7.css +1 -0
  15. package/build/client/_app/immutable/assets/5.BTOx7yt7.css.br +0 -0
  16. package/build/client/_app/immutable/assets/5.BTOx7yt7.css.gz +0 -0
  17. package/build/client/_app/immutable/assets/{7.PyEFVv_s.css → 7.DwS5ZHBh.css} +1 -1
  18. package/build/client/_app/immutable/assets/7.DwS5ZHBh.css.br +0 -0
  19. package/build/client/_app/immutable/assets/7.DwS5ZHBh.css.gz +0 -0
  20. package/build/client/_app/immutable/assets/ChatView.CwWbzIL-.css +1 -0
  21. package/build/client/_app/immutable/assets/ChatView.CwWbzIL-.css.br +0 -0
  22. package/build/client/_app/immutable/assets/ChatView.CwWbzIL-.css.gz +0 -0
  23. package/build/client/_app/immutable/chunks/B5NAKyil.js +20 -0
  24. package/build/client/_app/immutable/chunks/B5NAKyil.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/B5NAKyil.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/B8XegpSE.js +1 -0
  27. package/build/client/_app/immutable/chunks/B8XegpSE.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/B8XegpSE.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/{50RPd5u3.js → B8zoBsv3.js} +1 -1
  30. package/build/client/_app/immutable/chunks/B8zoBsv3.js.br +0 -0
  31. package/build/client/_app/immutable/chunks/B8zoBsv3.js.gz +0 -0
  32. package/build/client/_app/immutable/chunks/BLszSzTT.js +1 -0
  33. package/build/client/_app/immutable/chunks/BLszSzTT.js.br +0 -0
  34. package/build/client/_app/immutable/chunks/BLszSzTT.js.gz +0 -0
  35. package/build/client/_app/immutable/chunks/BOYo8yTr.js +1 -0
  36. package/build/client/_app/immutable/chunks/BOYo8yTr.js.br +0 -0
  37. package/build/client/_app/immutable/chunks/BOYo8yTr.js.gz +0 -0
  38. package/build/client/_app/immutable/chunks/Bu1aqm5j.js +1 -0
  39. package/build/client/_app/immutable/chunks/Bu1aqm5j.js.br +0 -0
  40. package/build/client/_app/immutable/chunks/Bu1aqm5j.js.gz +0 -0
  41. package/build/client/_app/immutable/chunks/{CdL99jkG.js → CNmDAqoQ.js} +1 -1
  42. package/build/client/_app/immutable/chunks/CNmDAqoQ.js.br +0 -0
  43. package/build/client/_app/immutable/chunks/CNmDAqoQ.js.gz +0 -0
  44. package/build/client/_app/immutable/chunks/{ClK4wZbC.js → CQjSATpv.js} +16 -16
  45. package/build/client/_app/immutable/chunks/CQjSATpv.js.br +0 -0
  46. package/build/client/_app/immutable/chunks/CQjSATpv.js.gz +0 -0
  47. package/build/client/_app/immutable/chunks/{CojFyTPp.js → CSoRdFvv.js} +1 -1
  48. package/build/client/_app/immutable/chunks/CSoRdFvv.js.br +0 -0
  49. package/build/client/_app/immutable/chunks/CSoRdFvv.js.gz +0 -0
  50. package/build/client/_app/immutable/chunks/{tjbnEgXP.js → CZHsSL_X.js} +1 -1
  51. package/build/client/_app/immutable/chunks/CZHsSL_X.js.br +0 -0
  52. package/build/client/_app/immutable/chunks/CZHsSL_X.js.gz +0 -0
  53. package/build/client/_app/immutable/chunks/CrVuYlkB.js +1 -0
  54. package/build/client/_app/immutable/chunks/CrVuYlkB.js.br +0 -0
  55. package/build/client/_app/immutable/chunks/CrVuYlkB.js.gz +0 -0
  56. package/build/client/_app/immutable/chunks/D3Vl-Qqr.js +1 -0
  57. package/build/client/_app/immutable/chunks/D3Vl-Qqr.js.br +0 -0
  58. package/build/client/_app/immutable/chunks/D3Vl-Qqr.js.gz +0 -0
  59. package/build/client/_app/immutable/chunks/DVkn4r72.js +1 -0
  60. package/build/client/_app/immutable/chunks/DVkn4r72.js.br +0 -0
  61. package/build/client/_app/immutable/chunks/DVkn4r72.js.gz +0 -0
  62. package/build/client/_app/immutable/chunks/DjsDGxCa.js +41 -0
  63. package/build/client/_app/immutable/chunks/DjsDGxCa.js.br +0 -0
  64. package/build/client/_app/immutable/chunks/DjsDGxCa.js.gz +0 -0
  65. package/build/client/_app/immutable/chunks/UJOiqIYE.js +1 -0
  66. package/build/client/_app/immutable/chunks/UJOiqIYE.js.br +0 -0
  67. package/build/client/_app/immutable/chunks/UJOiqIYE.js.gz +0 -0
  68. package/build/client/_app/immutable/chunks/r0JawsZc.js +2 -0
  69. package/build/client/_app/immutable/chunks/r0JawsZc.js.br +0 -0
  70. package/build/client/_app/immutable/chunks/r0JawsZc.js.gz +0 -0
  71. package/build/client/_app/immutable/entry/app.CWzZbNpA.js +2 -0
  72. package/build/client/_app/immutable/entry/app.CWzZbNpA.js.br +0 -0
  73. package/build/client/_app/immutable/entry/app.CWzZbNpA.js.gz +0 -0
  74. package/build/client/_app/immutable/entry/start.t0E4BXrO.js +1 -0
  75. package/build/client/_app/immutable/entry/start.t0E4BXrO.js.br +2 -0
  76. package/build/client/_app/immutable/entry/start.t0E4BXrO.js.gz +0 -0
  77. package/build/client/_app/immutable/nodes/0.5I21KR7K.js +1 -0
  78. package/build/client/_app/immutable/nodes/0.5I21KR7K.js.br +0 -0
  79. package/build/client/_app/immutable/nodes/0.5I21KR7K.js.gz +0 -0
  80. package/build/client/_app/immutable/nodes/1.BDCm0X_6.js +1 -0
  81. package/build/client/_app/immutable/nodes/1.BDCm0X_6.js.br +0 -0
  82. package/build/client/_app/immutable/nodes/1.BDCm0X_6.js.gz +0 -0
  83. package/build/client/_app/immutable/nodes/2.CKjSEOom.js +1 -0
  84. package/build/client/_app/immutable/nodes/2.CKjSEOom.js.br +0 -0
  85. package/build/client/_app/immutable/nodes/2.CKjSEOom.js.gz +0 -0
  86. package/build/client/_app/immutable/nodes/3.3yohCM25.js +3 -0
  87. package/build/client/_app/immutable/nodes/3.3yohCM25.js.br +0 -0
  88. package/build/client/_app/immutable/nodes/3.3yohCM25.js.gz +0 -0
  89. package/build/client/_app/immutable/nodes/4.pRflZhvu.js +1 -0
  90. package/build/client/_app/immutable/nodes/4.pRflZhvu.js.br +0 -0
  91. package/build/client/_app/immutable/nodes/4.pRflZhvu.js.gz +0 -0
  92. package/build/client/_app/immutable/nodes/5.Co1ngwGh.js +4 -0
  93. package/build/client/_app/immutable/nodes/5.Co1ngwGh.js.br +0 -0
  94. package/build/client/_app/immutable/nodes/5.Co1ngwGh.js.gz +0 -0
  95. package/build/client/_app/immutable/nodes/6.CUnGGKik.js +2 -0
  96. package/build/client/_app/immutable/nodes/6.CUnGGKik.js.br +0 -0
  97. package/build/client/_app/immutable/nodes/6.CUnGGKik.js.gz +0 -0
  98. package/build/client/_app/immutable/nodes/7.CgvPBG9m.js +2 -0
  99. package/build/client/_app/immutable/nodes/7.CgvPBG9m.js.br +0 -0
  100. package/build/client/_app/immutable/nodes/7.CgvPBG9m.js.gz +0 -0
  101. package/build/client/_app/version.json +1 -1
  102. package/build/client/_app/version.json.br +0 -0
  103. package/build/client/_app/version.json.gz +0 -0
  104. package/build/client/manifest.json +13 -0
  105. package/build/client/manifest.json.br +0 -0
  106. package/build/client/manifest.json.gz +0 -0
  107. package/build/server/chunks/0-CYsoSMA0.js +9 -0
  108. package/build/server/chunks/0-CYsoSMA0.js.map +1 -0
  109. package/build/server/chunks/1-BSsLbzC1.js +9 -0
  110. package/build/server/chunks/1-BSsLbzC1.js.map +1 -0
  111. package/build/server/chunks/2-De1V922H.js +9 -0
  112. package/build/server/chunks/2-De1V922H.js.map +1 -0
  113. package/build/server/chunks/3-Ck7ewhOX.js +9 -0
  114. package/build/server/chunks/3-Ck7ewhOX.js.map +1 -0
  115. package/build/server/chunks/4-Dl1IrE-x.js +9 -0
  116. package/build/server/chunks/4-Dl1IrE-x.js.map +1 -0
  117. package/build/server/chunks/5-CkT7yrsJ.js +9 -0
  118. package/build/server/chunks/{5-D0wB7nfE.js.map → 5-CkT7yrsJ.js.map} +1 -1
  119. package/build/server/chunks/6-DMkV5QEZ.js +9 -0
  120. package/build/server/chunks/6-DMkV5QEZ.js.map +1 -0
  121. package/build/server/chunks/7-b4mtbSZL.js +9 -0
  122. package/build/server/chunks/7-b4mtbSZL.js.map +1 -0
  123. package/build/server/chunks/{Button-C7D5W6wV.js → Button-Cs1aE6ka.js} +2 -2
  124. package/build/server/chunks/{Button-C7D5W6wV.js.map → Button-Cs1aE6ka.js.map} +1 -1
  125. package/build/server/chunks/{EmptyState-Ci4pSpmY.js → EmptyState-DDFH1K8g.js} +10 -4
  126. package/build/server/chunks/EmptyState-DDFH1K8g.js.map +1 -0
  127. package/build/server/chunks/{Icon-DyrkHVnV.js → Icon-CEUrotA6.js} +3 -3
  128. package/build/server/chunks/{Icon-DyrkHVnV.js.map → Icon-CEUrotA6.js.map} +1 -1
  129. package/build/server/chunks/{Shimmer-BITK6wrm.js → Shimmer-DB8W1zt6.js} +2 -2
  130. package/build/server/chunks/{Shimmer-BITK6wrm.js.map → Shimmer-DB8W1zt6.js.map} +1 -1
  131. package/build/server/chunks/_error.svelte-uCOJNxvr.js +39 -0
  132. package/build/server/chunks/_error.svelte-uCOJNxvr.js.map +1 -0
  133. package/build/server/chunks/{_layout.svelte-CO4f8UD7.js → _layout.svelte-CtWmEJwe.js} +5 -25
  134. package/build/server/chunks/_layout.svelte-CtWmEJwe.js.map +1 -0
  135. package/build/server/chunks/{_page.svelte-C6bns9aQ.js → _page.svelte-BcZaKdX9.js} +13 -9
  136. package/build/server/chunks/_page.svelte-BcZaKdX9.js.map +1 -0
  137. package/build/server/chunks/{_page.svelte-3Cc3NMAP.js → _page.svelte-BdYynOck.js} +18 -14
  138. package/build/server/chunks/_page.svelte-BdYynOck.js.map +1 -0
  139. package/build/server/chunks/{_page.svelte-CFCONiDK.js → _page.svelte-BgevQjq1.js} +16 -12
  140. package/build/server/chunks/_page.svelte-BgevQjq1.js.map +1 -0
  141. package/build/server/chunks/{_page.svelte-DskND_G9.js → _page.svelte-CVq6tRb3.js} +8 -8
  142. package/build/server/chunks/_page.svelte-CVq6tRb3.js.map +1 -0
  143. package/build/server/chunks/{_page.svelte-rTrWmhOp.js → _page.svelte-CxWcQ0Am.js} +8 -8
  144. package/build/server/chunks/_page.svelte-CxWcQ0Am.js.map +1 -0
  145. package/build/server/chunks/{_page.svelte-C0p3HsIW.js → _page.svelte-DO4oa_LY.js} +11 -13
  146. package/build/server/chunks/_page.svelte-DO4oa_LY.js.map +1 -0
  147. package/build/server/chunks/{_server.ts-CS5H5klP.js → _server.ts-CAxsWKvS.js} +14 -10
  148. package/build/server/chunks/_server.ts-CAxsWKvS.js.map +1 -0
  149. package/build/server/chunks/{_server.ts-C8slOHB0.js → _server.ts-CTpcLUH8.js} +3 -2
  150. package/build/server/chunks/_server.ts-CTpcLUH8.js.map +1 -0
  151. package/build/server/chunks/_server.ts-CtH0dhUp.js +71 -0
  152. package/build/server/chunks/_server.ts-CtH0dhUp.js.map +1 -0
  153. package/build/server/chunks/{_server.ts-DhTrdlWH.js → _server.ts-DB_Kg97c.js} +14 -3
  154. package/build/server/chunks/_server.ts-DB_Kg97c.js.map +1 -0
  155. package/build/server/chunks/_server.ts-DYpJImqd.js +99 -0
  156. package/build/server/chunks/_server.ts-DYpJImqd.js.map +1 -0
  157. package/build/server/chunks/{_server.ts-DpEVfp8W.js → _server.ts-Deok2y88.js} +58 -40
  158. package/build/server/chunks/_server.ts-Deok2y88.js.map +1 -0
  159. package/build/server/chunks/{_server.ts-uHUi-4cd.js → _server.ts-vekTmWAx.js} +3 -2
  160. package/build/server/chunks/_server.ts-vekTmWAx.js.map +1 -0
  161. package/build/server/chunks/{client2-BjxIYuno.js → client-BdGHe_hY.js} +4 -4
  162. package/build/server/chunks/client-BdGHe_hY.js.map +1 -0
  163. package/build/server/chunks/client2-CCBGA-2V.js +7 -0
  164. package/build/server/chunks/client2-CCBGA-2V.js.map +1 -0
  165. package/build/server/chunks/{index-Cnl871UW.js → index-DwaY1cAm.js} +2 -2
  166. package/build/server/chunks/{index-Cnl871UW.js.map → index-DwaY1cAm.js.map} +1 -1
  167. package/build/server/chunks/{index-server-CUC9Jt7r.js → index-server-CrDaL06Y.js} +2 -2
  168. package/build/server/chunks/{index-server-CUC9Jt7r.js.map → index-server-CrDaL06Y.js.map} +1 -1
  169. package/build/server/chunks/{index2-HA3VTH7y.js → index2-CgclKpUj.js} +2 -2
  170. package/build/server/chunks/{index2-HA3VTH7y.js.map → index2-CgclKpUj.js.map} +1 -1
  171. package/build/server/chunks/opencode-db-path-DcfhJtJy.js +15 -0
  172. package/build/server/chunks/opencode-db-path-DcfhJtJy.js.map +1 -0
  173. package/build/server/chunks/{pty-manager-DR0Wt2Ac.js → pty-manager-BQVB7IVj.js} +17 -15
  174. package/build/server/chunks/pty-manager-BQVB7IVj.js.map +1 -0
  175. package/build/server/chunks/{root-DhswcH6o.js → root-DDSnEAZv.js} +2 -2
  176. package/build/server/chunks/{root-DhswcH6o.js.map → root-DDSnEAZv.js.map} +1 -1
  177. package/build/server/chunks/{state.svelte-2Lellg7t.js → state.svelte-hBbXlUak.js} +3 -3
  178. package/build/server/chunks/{state.svelte-2Lellg7t.js.map → state.svelte-hBbXlUak.js.map} +1 -1
  179. package/build/server/chunks/stores-DHNzYNpX.js +28 -0
  180. package/build/server/chunks/stores-DHNzYNpX.js.map +1 -0
  181. package/build/server/index.js +5 -5
  182. package/build/server/index.js.map +1 -1
  183. package/build/server/manifest.js +30 -16
  184. package/build/server/manifest.js.map +1 -1
  185. package/package.json +1 -1
  186. package/scripts/setup.cjs +87 -13
  187. package/server.ts +3 -0
  188. package/src/app.html +3 -0
  189. package/src/lib/modules/client/common/cache.ts +10 -2
  190. package/src/lib/modules/client/common/index.ts +1 -1
  191. package/src/lib/modules/client/common/markdown.ts +22 -1
  192. package/src/lib/modules/client/common/time.ts +13 -11
  193. package/src/lib/modules/client/terminal/ChatView.svelte +324 -67
  194. package/src/lib/modules/client/terminal/ConnectionStatus.svelte +1 -0
  195. package/src/lib/modules/client/terminal/xterm-wrapper.ts +4 -1
  196. package/src/lib/modules/server/sessions/jsonl-reader.ts +43 -28
  197. package/src/lib/modules/server/sessions/opencode-db-path.ts +26 -0
  198. package/src/lib/modules/server/sessions/opencode-reader.ts +13 -15
  199. package/src/lib/modules/server/sessions/process-detector.ts +103 -0
  200. package/src/lib/modules/server/terminal/opencode-watcher.ts +3 -14
  201. package/src/lib/modules/server/terminal/pty-manager.ts +20 -8
  202. package/src/lib/modules/server/ws/session-handler.ts +282 -104
  203. package/src/lib/theme.css +30 -0
  204. package/src/routes/+error.svelte +94 -0
  205. package/src/routes/+page.svelte +18 -8
  206. package/src/routes/api/health/+server.ts +14 -2
  207. package/src/routes/api/sessions/+server.ts +12 -4
  208. package/src/routes/api/sessions/connect/+server.ts +125 -0
  209. package/src/routes/api/sessions/detect/+server.ts +27 -0
  210. package/src/routes/api/terminals/+server.ts +12 -9
  211. package/src/routes/config/+page.svelte +22 -1
  212. package/src/routes/project/+page.svelte +159 -8
  213. package/src/routes/session/[id]/+page.svelte +477 -299
  214. package/src/routes/terminals/+page.svelte +14 -3
  215. package/src/routes/terminals/[id]/+page.svelte +25 -0
  216. package/svelte.config.js +1 -1
  217. package/build/client/_app/immutable/assets/0.DC5pAwP3.css.br +0 -0
  218. package/build/client/_app/immutable/assets/0.DC5pAwP3.css.gz +0 -0
  219. package/build/client/_app/immutable/assets/3.BoXp0JoS.css.br +0 -0
  220. package/build/client/_app/immutable/assets/3.BoXp0JoS.css.gz +0 -0
  221. package/build/client/_app/immutable/assets/4.cJuCkJKZ.css +0 -1
  222. package/build/client/_app/immutable/assets/4.cJuCkJKZ.css.br +0 -0
  223. package/build/client/_app/immutable/assets/4.cJuCkJKZ.css.gz +0 -0
  224. package/build/client/_app/immutable/assets/5.DRjApZQW.css +0 -1
  225. package/build/client/_app/immutable/assets/5.DRjApZQW.css.br +0 -0
  226. package/build/client/_app/immutable/assets/5.DRjApZQW.css.gz +0 -0
  227. package/build/client/_app/immutable/assets/7.PyEFVv_s.css.br +0 -0
  228. package/build/client/_app/immutable/assets/7.PyEFVv_s.css.gz +0 -0
  229. package/build/client/_app/immutable/assets/ChatView.CsdBAOKx.css +0 -1
  230. package/build/client/_app/immutable/assets/ChatView.CsdBAOKx.css.br +0 -0
  231. package/build/client/_app/immutable/assets/ChatView.CsdBAOKx.css.gz +0 -0
  232. package/build/client/_app/immutable/chunks/50RPd5u3.js.br +0 -0
  233. package/build/client/_app/immutable/chunks/50RPd5u3.js.gz +0 -0
  234. package/build/client/_app/immutable/chunks/BDC7XD4o.js +0 -1
  235. package/build/client/_app/immutable/chunks/BDC7XD4o.js.br +0 -0
  236. package/build/client/_app/immutable/chunks/BDC7XD4o.js.gz +0 -0
  237. package/build/client/_app/immutable/chunks/BeONA6_G.js +0 -2
  238. package/build/client/_app/immutable/chunks/BeONA6_G.js.br +0 -0
  239. package/build/client/_app/immutable/chunks/BeONA6_G.js.gz +0 -0
  240. package/build/client/_app/immutable/chunks/BygiiMA0.js +0 -1
  241. package/build/client/_app/immutable/chunks/BygiiMA0.js.br +0 -0
  242. package/build/client/_app/immutable/chunks/BygiiMA0.js.gz +0 -0
  243. package/build/client/_app/immutable/chunks/CGLrx-H5.js +0 -1
  244. package/build/client/_app/immutable/chunks/CGLrx-H5.js.br +0 -0
  245. package/build/client/_app/immutable/chunks/CGLrx-H5.js.gz +0 -0
  246. package/build/client/_app/immutable/chunks/CHvUpVYv.js +0 -1
  247. package/build/client/_app/immutable/chunks/CHvUpVYv.js.br +0 -0
  248. package/build/client/_app/immutable/chunks/CHvUpVYv.js.gz +0 -0
  249. package/build/client/_app/immutable/chunks/CbqC9BW7.js +0 -1
  250. package/build/client/_app/immutable/chunks/CbqC9BW7.js.br +0 -2
  251. package/build/client/_app/immutable/chunks/CbqC9BW7.js.gz +0 -0
  252. package/build/client/_app/immutable/chunks/CdL99jkG.js.br +0 -0
  253. package/build/client/_app/immutable/chunks/CdL99jkG.js.gz +0 -0
  254. package/build/client/_app/immutable/chunks/ClK4wZbC.js.br +0 -0
  255. package/build/client/_app/immutable/chunks/ClK4wZbC.js.gz +0 -0
  256. package/build/client/_app/immutable/chunks/CojFyTPp.js.br +0 -0
  257. package/build/client/_app/immutable/chunks/CojFyTPp.js.gz +0 -0
  258. package/build/client/_app/immutable/chunks/DREFAyhX.js +0 -60
  259. package/build/client/_app/immutable/chunks/DREFAyhX.js.br +0 -0
  260. package/build/client/_app/immutable/chunks/DREFAyhX.js.gz +0 -0
  261. package/build/client/_app/immutable/chunks/K_aHH2KN.js +0 -1
  262. package/build/client/_app/immutable/chunks/K_aHH2KN.js.br +0 -0
  263. package/build/client/_app/immutable/chunks/K_aHH2KN.js.gz +0 -0
  264. package/build/client/_app/immutable/chunks/Ona8oofC.js +0 -1
  265. package/build/client/_app/immutable/chunks/Ona8oofC.js.br +0 -0
  266. package/build/client/_app/immutable/chunks/Ona8oofC.js.gz +0 -0
  267. package/build/client/_app/immutable/chunks/tjbnEgXP.js.br +0 -0
  268. package/build/client/_app/immutable/chunks/tjbnEgXP.js.gz +0 -0
  269. package/build/client/_app/immutable/entry/app.anqwe7ZL.js +0 -2
  270. package/build/client/_app/immutable/entry/app.anqwe7ZL.js.br +0 -0
  271. package/build/client/_app/immutable/entry/app.anqwe7ZL.js.gz +0 -0
  272. package/build/client/_app/immutable/entry/start.BV2VRv6h.js +0 -1
  273. package/build/client/_app/immutable/entry/start.BV2VRv6h.js.br +0 -2
  274. package/build/client/_app/immutable/entry/start.BV2VRv6h.js.gz +0 -0
  275. package/build/client/_app/immutable/nodes/0.D0i5MqcI.js +0 -1
  276. package/build/client/_app/immutable/nodes/0.D0i5MqcI.js.br +0 -0
  277. package/build/client/_app/immutable/nodes/0.D0i5MqcI.js.gz +0 -0
  278. package/build/client/_app/immutable/nodes/1.DN5n5c6F.js +0 -1
  279. package/build/client/_app/immutable/nodes/1.DN5n5c6F.js.br +0 -0
  280. package/build/client/_app/immutable/nodes/1.DN5n5c6F.js.gz +0 -0
  281. package/build/client/_app/immutable/nodes/2.BTjkNKZJ.js +0 -1
  282. package/build/client/_app/immutable/nodes/2.BTjkNKZJ.js.br +0 -0
  283. package/build/client/_app/immutable/nodes/2.BTjkNKZJ.js.gz +0 -0
  284. package/build/client/_app/immutable/nodes/3.CEkigHDv.js +0 -3
  285. package/build/client/_app/immutable/nodes/3.CEkigHDv.js.br +0 -0
  286. package/build/client/_app/immutable/nodes/3.CEkigHDv.js.gz +0 -0
  287. package/build/client/_app/immutable/nodes/4.B-8Zsc9k.js +0 -1
  288. package/build/client/_app/immutable/nodes/4.B-8Zsc9k.js.br +0 -0
  289. package/build/client/_app/immutable/nodes/4.B-8Zsc9k.js.gz +0 -0
  290. package/build/client/_app/immutable/nodes/5.shitbtHc.js +0 -1
  291. package/build/client/_app/immutable/nodes/5.shitbtHc.js.br +0 -0
  292. package/build/client/_app/immutable/nodes/5.shitbtHc.js.gz +0 -0
  293. package/build/client/_app/immutable/nodes/6.CB8Q6eH8.js +0 -2
  294. package/build/client/_app/immutable/nodes/6.CB8Q6eH8.js.br +0 -0
  295. package/build/client/_app/immutable/nodes/6.CB8Q6eH8.js.gz +0 -0
  296. package/build/client/_app/immutable/nodes/7.D0CrR6pl.js +0 -2
  297. package/build/client/_app/immutable/nodes/7.D0CrR6pl.js.br +0 -0
  298. package/build/client/_app/immutable/nodes/7.D0CrR6pl.js.gz +0 -0
  299. package/build/server/chunks/0-Cs1dzfRz.js +0 -9
  300. package/build/server/chunks/0-Cs1dzfRz.js.map +0 -1
  301. package/build/server/chunks/1-BCSX7oED.js +0 -9
  302. package/build/server/chunks/1-BCSX7oED.js.map +0 -1
  303. package/build/server/chunks/2-6gkeO8b4.js +0 -9
  304. package/build/server/chunks/2-6gkeO8b4.js.map +0 -1
  305. package/build/server/chunks/3-DH9J9Vsc.js +0 -9
  306. package/build/server/chunks/3-DH9J9Vsc.js.map +0 -1
  307. package/build/server/chunks/4-Rzy5TYjl.js +0 -9
  308. package/build/server/chunks/4-Rzy5TYjl.js.map +0 -1
  309. package/build/server/chunks/5-D0wB7nfE.js +0 -9
  310. package/build/server/chunks/6-DR2ABDPq.js +0 -9
  311. package/build/server/chunks/6-DR2ABDPq.js.map +0 -1
  312. package/build/server/chunks/7-D-oQJsia.js +0 -9
  313. package/build/server/chunks/7-D-oQJsia.js.map +0 -1
  314. package/build/server/chunks/EmptyState-Ci4pSpmY.js.map +0 -1
  315. package/build/server/chunks/_layout.svelte-CO4f8UD7.js.map +0 -1
  316. package/build/server/chunks/_page.svelte-3Cc3NMAP.js.map +0 -1
  317. package/build/server/chunks/_page.svelte-C0p3HsIW.js.map +0 -1
  318. package/build/server/chunks/_page.svelte-C6bns9aQ.js.map +0 -1
  319. package/build/server/chunks/_page.svelte-CFCONiDK.js.map +0 -1
  320. package/build/server/chunks/_page.svelte-DskND_G9.js.map +0 -1
  321. package/build/server/chunks/_page.svelte-rTrWmhOp.js.map +0 -1
  322. package/build/server/chunks/_server.ts-C8slOHB0.js.map +0 -1
  323. package/build/server/chunks/_server.ts-CS5H5klP.js.map +0 -1
  324. package/build/server/chunks/_server.ts-DhTrdlWH.js.map +0 -1
  325. package/build/server/chunks/_server.ts-DpEVfp8W.js.map +0 -1
  326. package/build/server/chunks/_server.ts-uHUi-4cd.js.map +0 -1
  327. package/build/server/chunks/client-BYT9c0ig.js +0 -7
  328. package/build/server/chunks/client-BYT9c0ig.js.map +0 -1
  329. package/build/server/chunks/client2-BjxIYuno.js.map +0 -1
  330. package/build/server/chunks/error.svelte-BG_yE-Wt.js +0 -27
  331. package/build/server/chunks/error.svelte-BG_yE-Wt.js.map +0 -1
  332. package/build/server/chunks/pty-manager-DR0Wt2Ac.js.map +0 -1
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.D0i5MqcI.js","../chunks/BeONA6_G.js","../chunks/tjbnEgXP.js","../chunks/K_aHH2KN.js","../chunks/ClK4wZbC.js","../assets/markdown.Dc-OSJWY.css","../chunks/CHvUpVYv.js","../chunks/CdL99jkG.js","../assets/0.DC5pAwP3.css","../nodes/1.DN5n5c6F.js","../chunks/BDC7XD4o.js","../nodes/2.BTjkNKZJ.js","../chunks/Ona8oofC.js","../chunks/DREFAyhX.js","../assets/Phone.FQEfwCX2.css","../chunks/CbqC9BW7.js","../chunks/DSU1n5N_.js","../chunks/CojFyTPp.js","../chunks/CGLrx-H5.js","../assets/2.CAShZ7lQ.css","../nodes/3.CEkigHDv.js","../assets/3.BoXp0JoS.css","../nodes/4.B-8Zsc9k.js","../assets/4.cJuCkJKZ.css","../nodes/5.shitbtHc.js","../chunks/BygiiMA0.js","../assets/ChatView.CsdBAOKx.css","../assets/5.DRjApZQW.css","../nodes/6.CB8Q6eH8.js","../assets/6.eZGZN-BF.css","../nodes/7.D0CrR6pl.js","../chunks/PPVm8Dsz.js","../assets/7.PyEFVv_s.css"])))=>i.map(i=>d[i]);
2
- import{_}from"../chunks/PPVm8Dsz.js";import{D as V,R as G,Q as H,S as J,T as Q,U,V as W,W as j,ai as z,E as K,g as R,ab as X,h as u,aj as Z,l as $,q as tt,p as et,I as rt,J as at,o as st,ah as ot,f as b,s as nt,e as it,a as O,c as ct,r as ut,t as _t,u as p}from"../chunks/tjbnEgXP.js";import{h as mt,m as dt,u as lt,a as v,c as T,f as k,t as ft,s as ht}from"../chunks/BeONA6_G.js";import{p as A,i as x,b as D}from"../chunks/Ona8oofC.js";import{B as vt}from"../chunks/K_aHH2KN.js";function I(s,t,a){var n;V&&(n=K,G());var o=new vt(s);H(()=>{var e=t()??null;if(V){var r=Q(n),c=r===z,P=e!==null;if(c!==P){var g=U();W(g),o.anchor=g,j(!1),o.ensure(e,e&&(f=>a(f,e))),j(!0);return}}o.ensure(e,e&&(f=>a(f,e)))},J)}function gt(s){return class extends Et{constructor(t){super({component:s,...t})}}}class Et{#e;#t;constructor(t){var a=new Map,n=(e,r)=>{var c=tt(r,!1,!1);return a.set(e,c),c};const o=new Proxy({...t.props||{},$$events:{}},{get(e,r){return u(a.get(r)??n(r,Reflect.get(e,r)))},has(e,r){return r===X?!0:(u(a.get(r)??n(r,Reflect.get(e,r))),Reflect.has(e,r))},set(e,r,c){return R(a.get(r)??n(r,c),c),Reflect.set(e,r,c)}});this.#t=(t.hydrate?mt:dt)(t.component,{target:t.target,anchor:t.anchor,props:o,context:t.context,intro:t.intro??!1,recover:t.recover,transformError:t.transformError}),(!t?.props?.$$host||t.sync===!1)&&Z(),this.#e=o.$$events;for(const e of Object.keys(this.#t))e==="$set"||e==="$destroy"||e==="$on"||$(this,e,{get(){return this.#t[e]},set(r){this.#t[e]=r},enumerable:!0});this.#t.$set=e=>{Object.assign(o,e)},this.#t.$destroy=()=>{lt(this.#t)}}$set(t){this.#t.$set(t)}$on(t,a){this.#e[t]=this.#e[t]||[];const n=(...o)=>a.call(this,...o);return this.#e[t].push(n),()=>{this.#e[t]=this.#e[t].filter(o=>o!==n)}}$destroy(){this.#t.$destroy()}}const It={};var yt=k('<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>'),bt=k("<!> <!>",1);function Rt(s,t){et(t,!0);let a=A(t,"components",23,()=>[]),n=A(t,"data_0",3,null),o=A(t,"data_1",3,null);rt(()=>t.stores.page.set(t.page)),at(()=>{t.stores,t.page,t.constructors,a(),t.form,n(),o(),t.stores.page.notify()});let e=O(!1),r=O(!1),c=O(null);st(()=>{const i=t.stores.page.subscribe(()=>{u(e)&&(R(r,!0),ot().then(()=>{R(c,document.title||"untitled page",!0)}))});return R(e,!0),i});const P=p(()=>t.constructors[1]);var g=bt(),f=b(g);{var S=i=>{const m=p(()=>t.constructors[0]);var d=T(),E=b(d);I(E,()=>u(m),(l,h)=>{D(h(l,{get data(){return n()},get form(){return t.form},get params(){return t.page.params},children:(y,Ot)=>{var L=T(),B=b(L);I(B,()=>u(P),(F,Y)=>{D(Y(F,{get data(){return o()},get form(){return t.form},get params(){return t.page.params}}),q=>a()[1]=q,()=>a()?.[1])}),v(y,L)},$$slots:{default:!0}}),y=>a()[0]=y,()=>a()?.[0])}),v(i,d)},C=i=>{const m=p(()=>t.constructors[0]);var d=T(),E=b(d);I(E,()=>u(m),(l,h)=>{D(h(l,{get data(){return n()},get form(){return t.form},get params(){return t.page.params}}),y=>a()[0]=y,()=>a()?.[0])}),v(i,d)};x(f,i=>{t.constructors[1]?i(S):i(C,-1)})}var M=nt(f,2);{var N=i=>{var m=yt(),d=ct(m);{var E=l=>{var h=ft();_t(()=>ht(h,u(c))),v(l,h)};x(d,l=>{u(r)&&l(E)})}ut(m),v(i,m)};x(M,i=>{u(e)&&i(N)})}v(s,g),it()}const Lt=gt(Rt),Vt=[()=>_(()=>import("../nodes/0.D0i5MqcI.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url),()=>_(()=>import("../nodes/1.DN5n5c6F.js"),__vite__mapDeps([9,1,2,10,6]),import.meta.url),()=>_(()=>import("../nodes/2.BTjkNKZJ.js"),__vite__mapDeps([11,1,2,12,3,13,4,5,14,6,15,16,17,18,19]),import.meta.url),()=>_(()=>import("../nodes/3.CEkigHDv.js"),__vite__mapDeps([20,1,2,12,3,13,4,5,14,16,21]),import.meta.url),()=>_(()=>import("../nodes/4.B-8Zsc9k.js"),__vite__mapDeps([22,1,2,12,3,13,4,5,14,10,6,15,16,17,18,23]),import.meta.url),()=>_(()=>import("../nodes/5.shitbtHc.js"),__vite__mapDeps([24,1,2,12,3,13,4,5,14,10,6,15,17,25,26,27]),import.meta.url),()=>_(()=>import("../nodes/6.CB8Q6eH8.js"),__vite__mapDeps([28,1,2,12,3,13,4,5,14,6,15,16,17,18,29]),import.meta.url),()=>_(()=>import("../nodes/7.D0CrR6pl.js"),__vite__mapDeps([30,31,1,2,3,12,13,4,5,14,6,7,17,25,26,32]),import.meta.url)],jt=[],kt={"/":[2],"/config":[3],"/project":[4],"/session/[id]":[5],"/terminals":[6],"/terminals/[id]":[7]},w={handleError:(({error:s})=>{console.error(s)}),reroute:(()=>{}),transport:{}},Pt=Object.fromEntries(Object.entries(w.transport).map(([s,t])=>[s,t.decode])),wt=Object.fromEntries(Object.entries(w.transport).map(([s,t])=>[s,t.encode])),St=!1,Ct=(s,t)=>Pt[s](t);export{Ct as decode,Pt as decoders,kt as dictionary,wt as encoders,St as hash,w as hooks,It as matchers,Vt as nodes,Lt as root,jt as server_loads};
@@ -1 +0,0 @@
1
- import{l as o,a as r}from"../chunks/CHvUpVYv.js";export{o as load_css,r as start};
@@ -1,2 +0,0 @@
1
- )�import{l as o,a as r}from"../chunks/CHvUpVYv.js";export{o as load_css,r as start};
2
- 
@@ -1 +0,0 @@
1
- import{a as j,f as A,s as H,d as M,b as V}from"../chunks/BeONA6_G.js";import{t as C,s as i,c as t,r as e,p as W,o as z,e as I,g as f,h as O,a as D}from"../chunks/tjbnEgXP.js";import{s as L,a as P}from"../chunks/K_aHH2KN.js";import{a as v,s as T}from"../chunks/ClK4wZbC.js";import{g as E}from"../chunks/CHvUpVYv.js";import{p as F}from"../chunks/CdL99jkG.js";var G=A('<div><span class="status-dot"></span> <span> </span></div>');function J(u,c){function s(a){switch(a){case"degraded":return"Degraded";case"error":return"Offline";case"healthy":return"Online";default:return"Checking"}}function p(a){switch(a){case"degraded":return"degraded";case"error":return"offline";case"healthy":return"online";default:return""}}var n=G(),r=i(t(n),2),d=t(r,!0);e(r),e(n),C((a,h)=>{v(n,1,`status-badge ${a??""}`),H(d,h)},[()=>p(c.status),()=>s(c.status)]),j(u,n)}var K=A('<div class="app"><header class="header"><div class="header-content"><a href="/" class="logo"><img src="/app-icon.png" alt="Shooter" class="logo-icon" width="24" height="24"/> <span class="logo-text">Shooter</span></a> <div class="nav-right svelte-12qhfyh"><!> <button aria-label="Settings"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg></button></div></div></header> <div class="content-area svelte-12qhfyh"><!></div> <nav class="bottom-tabs svelte-12qhfyh"><div class="bottom-tabs-inner svelte-12qhfyh"><a href="/"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"></path></svg> <span>Projects</span></a> <a href="/terminals"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 17 10 11 4 5"></polyline><line x1="12" y1="19" x2="20" y2="19"></line></svg> <span>Terminals</span></a></div></nav></div>');function Z(u,c){W(c,!0);const s=()=>P(F,"$page",p),[p,n]=L();let r=D("unknown");z(()=>{d();const o=setInterval(()=>{d()},3e4);return()=>{clearInterval(o)}});async function d(){try{const o=await fetch("/api/health");if(!o.ok){f(r,"error");return}const l=await o.json();f(r,l.status==="healthy"||l.status==="degraded"||l.status==="error"?l.status:"unknown",!0)}catch{f(r,"error")}}var a=K(),h=t(a),m=t(h),y=i(t(m),2),k=t(y);J(k,{get status(){return O(r)}});var b=i(k,2);e(y),e(m),e(h);var g=i(h,2),$=t(g);T($,()=>c.children),e(g);var w=i(g,2),_=t(w),x=t(_);let S;var B=i(x,2);let q;e(_),e(w),e(a),C((o,l)=>{v(b,1,`btn-gear ${s().url.pathname==="/config"?"btn-gear-active":""}`,"svelte-12qhfyh"),S=v(x,1,"tab-item svelte-12qhfyh",null,S,o),q=v(B,1,"tab-item svelte-12qhfyh",null,q,l)},[()=>({active:s().url.pathname==="/"||s().url.pathname.startsWith("/project")||s().url.pathname.startsWith("/session")}),()=>({active:s().url.pathname.startsWith("/terminals")})]),V("click",b,()=>E("/config")),j(u,a),I(),n()}M(["click"]);export{Z as component};
@@ -1 +0,0 @@
1
- import{a as v,f as b,s as c}from"../chunks/BeONA6_G.js";import{H as x,I as k,J as i,K as y,L as u,M as E,h as d,N as H,O as I,P as J,p as K,f as L,t as M,e as N,c as m,r as _,s as O}from"../chunks/tjbnEgXP.js";import{p as g}from"../chunks/BDC7XD4o.js";function P(r=!1){const s=x,e=s.l.u;if(!e)return;let a=()=>H(s.s);if(r){let o=0,t={};const f=I(()=>{let p=!1;const l=s.s;for(const n in l)l[n]!==t[n]&&(t[n]=l[n],p=!0);return p&&o++,o});a=()=>d(f)}e.b.length&&k(()=>{h(s,a),u(e.b)}),i(()=>{const o=y(()=>e.m.map(E));return()=>{for(const t of o)typeof t=="function"&&t()}}),e.a.length&&i(()=>{h(s,a),u(e.a)})}function h(r,s){if(r.l.s)for(const e of r.l.s)d(e);s()}J();var j=b("<h1> </h1> <p> </p>",1);function A(r,s){K(s,!1),P();var e=j(),a=L(e),o=m(a,!0);_(a);var t=O(a,2),f=m(t,!0);_(t),M(()=>{c(o,g.status),c(f,g.error?.message)}),v(r,e),N()}export{A as component};
@@ -1 +0,0 @@
1
- import{a as v,f as u,s as C}from"../chunks/BeONA6_G.js";import{p as de,a as m,b as ve,o as fe,d as ue,e as he,g as n,h as s,i as pe,$ as ge,c as r,s as f,f as N,n as me,r as a,u as O,t as _e}from"../chunks/tjbnEgXP.js";import{i as T}from"../chunks/Ona8oofC.js";import{h as ye,B as k,I as Ce,e as B,i as Se,P as xe,s as be}from"../chunks/DREFAyhX.js";import{g as Ie}from"../chunks/CHvUpVYv.js";import{g as Pe,s as je,S as $e}from"../chunks/CbqC9BW7.js";import{i as ke}from"../chunks/DSU1n5N_.js";import{E as z}from"../chunks/CojFyTPp.js";import"../chunks/ClK4wZbC.js";import{f as Me}from"../chunks/CGLrx-H5.js";var we=u('<meta name="description" content="Claude Code sessions across all projects"/>'),Ae=u("<!> Refresh",1),Ee=u('<div class="loading-container"></div>'),Le=u('<a class="session-card"><div class="session-card-header"><div><h3 class="session-card-title"> </h3> <div class="session-card-subtitle"> </div></div> <!></div> <div class="session-stats"><span><strong> </strong> </span></div></a>'),Re=u('<div style="text-align: center; padding: 1rem;"><!></div>'),Ke=u('<div class="projects-container svelte-1uha8ag"></div> <!>',1),Ne=u('<main class="main"><div class="page-header svelte-1uha8ag"><div class="page-header-content svelte-1uha8ag"><div><h1 class="page-title svelte-1uha8ag">Projects</h1> <p class="page-description svelte-1uha8ag">Claude Code sessions across all projects</p></div> <div class="page-actions svelte-1uha8ag"><!></div></div></div> <!></main>');function Ze(J,q){de(q,!0);const D=3e4,F=20;let i=m(ve([])),h=m(!1),S=!1,p=m(null),_=null,M=m(!1),w=m(0);fe(()=>{G();const e=Pe("shooter_projects");e&&(n(i,e,!0),n(h,!1)),y(),_=setInterval(()=>{s(p)?.apiKey&&y()},D)}),ue(()=>{_&&(clearInterval(_),_=null)});function G(){try{const e=localStorage.getItem("shooter_config");if(e){const t=JSON.parse(e);ke(t)?n(p,t,!0):(localStorage.removeItem("shooter_config"),n(p,null))}}catch{}}async function y(e=!1){if(!s(p)?.apiKey||S)return;S=!0,s(i).length===0&&n(h,!0);const t=e?s(w):0;try{const o=await fetch(`/api/sessions?limit=${F}&offset=${t}`,{headers:{Authorization:`Bearer ${s(p).apiKey}`}});if(!o.ok)return;const c=await o.json();e?n(i,[...s(i),...c.projects],!0):n(i,c.projects,!0),n(w,s(i).length,!0),n(M,c.total!==void 0?s(i).length<c.total:!1,!0),je("shooter_projects",s(i))}catch(o){console.error("Failed to fetch sessions:",o)}finally{n(h,!1),S=!1}}async function V(){await y(!0)}async function Z(){n(h,!0),sessionStorage.removeItem("shooter_projects"),await y()}function H(){Ie("/config")}function Q(){return s(i).reduce((e,t)=>e+t.sessionCount,0)}var x=Ne();ye("1uha8ag",e=>{var t=we();pe(()=>{ge.title="Projects - Shooter"}),v(e,t)});var b=r(x),A=r(b),E=f(r(A),2),U=r(E);k(U,{classes:"btn-secondary",onclick:Z,get disabled(){return s(h)},children:(e,t)=>{var o=Ae(),c=N(o);Ce(c,{name:"refresh",size:14}),me(),v(e,o)},$$slots:{default:!0}}),a(E),a(A),a(b);var W=f(b,2);{var X=e=>{var t=Ee();B(t,20,()=>Array(5),Se,(o,c)=>{$e(o,{classes:"shimmer-card"})}),a(t),v(e,t)},Y=e=>{z(e,{icon:"settings",title:"Configuration Required",description:"Set up your API credentials to start tracking sessions",children:(t,o)=>{k(t,{classes:"btn-primary",onclick:H,text:"Configure Settings"})}})},ee=e=>{z(e,{icon:"bell",title:"No sessions yet",description:"Claude Code sessions will appear here once JSONL files are found"})},se=O(()=>Q()===0),te=e=>{var t=Ke(),o=N(t);B(o,21,()=>s(i),d=>d.id,(d,l)=>{var g=Le(),I=r(g),P=r(I),j=r(P),oe=r(j,!0);a(j);var L=f(j,2),re=r(L,!0);a(L),a(P);var ie=f(P,2);{let ce=O(()=>Me(s(l).lastModified));xe(ie,{get text(){return s(ce)},classes:"pill-session-time"})}a(I);var R=f(I,2),K=r(R),$=r(K),ne=r($,!0);a($);var le=f($);a(K),a(R),a(g),_e(()=>{be(g,"href",`/project?id=${s(l).id??""}`),C(oe,s(l).name),C(re,s(l).fullPath),C(ne,s(l).sessionCount),C(le,` ${s(l).sessionCount===1?"session":"sessions"}`)}),v(d,g)}),a(o);var c=f(o,2);{var ae=d=>{var l=Re(),g=r(l);k(g,{classes:"btn-secondary",onclick:V,text:"Load More"}),a(l),v(d,l)};T(c,d=>{s(M)&&d(ae)})}v(e,t)};T(W,e=>{s(h)&&s(i).length===0?e(X):s(p)?.apiKey?s(se)?e(ee,2):e(te,-1):e(Y,1)})}a(x),v(J,x),he()}export{Ze as component};
@@ -1,3 +0,0 @@
1
- import{a as d,f as u,s as G}from"../chunks/BeONA6_G.js";import{t as R,c as f,s as m,r as v,h as t,p as Re,o as qe,e as Qe,i as Ne,f as P,g as e,a as _,$ as Ae,u as k,n as Be}from"../chunks/tjbnEgXP.js";import{p as Ke,i as N}from"../chunks/Ona8oofC.js";import{e as Pe,d as De,i as Oe,h as Le,B as J,b as X,I as fe,a as Je,s as Me}from"../chunks/DREFAyhX.js";import{s as ze,a as ee}from"../chunks/ClK4wZbC.js";import{i as Ee}from"../chunks/DSU1n5N_.js";var Ge=u('<p class="card-description"> </p>'),je=u('<div class="card-header"><h2 class="card-title"> </h2> <!></div>'),Fe=u('<div><!> <div class="card-content"><!></div></div>');function z(c,l){const g=Ke(l,"class",3,"");var n=Fe(),p=f(n);{var i=C=>{var $=je(),U=f($),A=f(U,!0);v(U);var x=m(U,2);{var q=D=>{var B=Ge(),K=f(B,!0);v(B),R(()=>G(K,l.description)),d(D,B)};N(x,D=>{l.description&&D(q)})}v($),R(()=>G(A,l.title)),d(C,$)};N(p,C=>{l.title&&C(i)})}var h=m(p,2),o=f(h);ze(o,()=>l.children),v(h),v(n),R(()=>ee(n,1,`card ${g()??""}`)),d(c,n)}function E(c){return c instanceof Error?c.message:typeof c=="string"?c:String(c)}function He(){return ge()!==null}async function We(){const c=ge();if(!c)throw new Error("Scanner not available");return c()}function ge(){if(typeof window>"u")return null;const c=window.ShooterBridge?.scanner;if(c&&typeof c.scan=="function")return()=>c.scan();const l=window.ShooterNativeBridge?.scanner;return l&&typeof l.scan=="function"?()=>l.scan():null}var Ye=u("<div><!></div>"),Ze=u("<div></div>");function Ve(c,l){var g=Ze();Pe(g,21,()=>l.steps,Oe,(n,p,i)=>{var h=Ye();let o;var C=f(h);De(C,{get onclick(){return l.onhandleStepClick},get label(){return t(p).label},get icon(){return t(p).icon},stepIndex:i+1}),v(h),R(()=>o=ee(h,1,"step-container svelte-xw39st",null,o,{"active-step":l.currentStepIndex===i,"completed-step":l.currentStepIndex>i})),d(n,h)}),v(g),R(()=>ee(g,1,`container ${l.classes??""??""}`,"svelte-xw39st")),d(c,g)}var Xe=u('<meta name="description" content="Configure notification system settings"/>'),et=u("<!> <!> <!>",1),tt=u("<!> Test Connection",1),rt=u(`<p class="qr-description svelte-1gp6n77">Scan the QR code shown on your server's settings page to auto-configure the
2
- connection.</p> <!>`,1),at=u('<p class="qr-server-url svelte-1gp6n77">Server: <code class="svelte-1gp6n77"> </code></p>'),nt=u('<div class="qr-container svelte-1gp6n77"><img alt="QR code for mobile app pairing" class="qr-image svelte-1gp6n77"/></div> <p class="qr-hint svelte-1gp6n77">Scan this QR code with the Shooter iOS or Android app to connect.</p> <!>',1),ot=u('<div class="qr-placeholder svelte-1gp6n77"><p class="qr-loading-text svelte-1gp6n77">Generating QR code...</p></div>'),it=u('<p class="qr-error svelte-1gp6n77"> </p>'),st=u(`<p class="qr-description svelte-1gp6n77">Generate a QR code containing your server URL and API key. Your mobile app can
3
- scan it to auto-configure the connection.</p>`),ct=u("<!> <!>",1),lt=u('<div class="qr-section svelte-1gp6n77"><!></div>'),dt=u('<p class="danger-description svelte-1gp6n77">Clear all saved configuration data from this device.</p> <!>',1),vt=u('<main class="main"><div class="settings-container svelte-1gp6n77"><div class="page-header svelte-1gp6n77"><h1 class="page-title svelte-1gp6n77">Settings</h1> <p class="page-description svelte-1gp6n77">Configure your API credentials and notification preferences</p></div> <div class="settings-grid svelte-1gp6n77"><section class="settings-section svelte-1gp6n77"><!> <!> <div class="button-group svelte-1gp6n77"><!> <!></div></section> <aside class="settings-sidebar svelte-1gp6n77"><!> <!> <!></aside></div></div></main>');function yt(c,l){Re(l,!0);let g=_(""),n=_(""),p=_(""),i=_(""),h=_(!1),o=_(""),C=_(!1),$=_(""),U=_(""),A=_(!1),x=_(""),q=_(!1),D=_(!1),B=!1,K=_(!1);async function pe(){if(!t(n).trim()){e(x,"Save an API key first to generate a QR code");return}e(A,!0),e(x,""),e($,""),e(U,"");try{const r=await fetch("/api/qr-config",{headers:{Authorization:`Bearer ${t(n).trim()}`}});if(!r.ok){const s=await r.json();e(x,s.error||"Failed to generate QR code",!0);return}const a=await r.json();e($,a.dataUrl,!0),e(U,a.serverUrl,!0)}catch(r){e(x,`Network error: ${E(r)}`)}finally{e(A,!1)}}async function he(){e(K,!0),e(i,""),e(o,"");try{const r=await We();try{const a=JSON.parse(r);typeof a.serverUrl=="string"&&a.serverUrl&&e(g,a.serverUrl,!0),typeof a.apiKey=="string"&&a.apiKey&&e(n,a.apiKey,!0),await re();const s=t(o);s!=="error"&&s!=="warning"&&(e(i,"Configuration updated from QR code"),e(o,"success"))}catch{e(i,"Invalid QR code data"),e(o,"error")}}catch(r){const a=E(r);a!=="cancelled"&&(e(i,`Scanner error: ${a}`),e(o,"error"))}finally{e(K,!1)}}function j(){return typeof window>"u"?null:window.ShooterBridge?window.ShooterBridge:window.ShooterNativeBridge?window.ShooterNativeBridge:null}function F(){return window.location.origin}function te(){const r=j();if(r&&!B){e(C,!0);try{const a=JSON.parse(r.getConfig?.()??"{}");a.serverUrl&&e(g,a.serverUrl,!0),a.apiKey&&e(n,a.apiKey,!0);const s=r.getFcmToken?.();s&&e(p,s,!0),B=!0}catch{}}e(q,He(),!0)}qe(()=>{{try{const r=localStorage.getItem("shooter_config");if(r){const a=JSON.parse(r);Ee(a)?(a.apiKey&&e(n,a.apiKey,!0),a.deviceToken&&e(p,a.deviceToken,!0),a.serverUrl&&e(g,a.serverUrl,!0)):localStorage.removeItem("shooter_config")}}catch{}if(te(),t(g)||e(g,F(),!0),e(D,!0),!t(q)){const r=setInterval(()=>{te(),t(q)&&clearInterval(r)},200);setTimeout(()=>{clearInterval(r)},3e3)}}});async function re(){e(h,!0),e(i,""),e(o,"");try{const r=t(g).trim().replace(/\/+$/,"");localStorage.setItem("shooter_config",JSON.stringify({apiKey:t(n).trim(),deviceToken:t(p).trim(),lastUpdated:new Date().toISOString(),serverUrl:r||F()}));const a=j();a&&a.saveConfig?.(JSON.stringify({apiKey:t(n).trim(),serverUrl:r||F()})),(await fetch("/api/health")).ok?(e(i,"Configuration saved successfully"),e(o,"success")):(e(i,"Configuration saved but system health check failed"),e(o,"warning"))}catch(r){e(i,`Configuration failed: ${E(r)}`),e(o,"error")}e(h,!1)}async function me(){if(!t(n).trim()){e(i,"API key is required for testing"),e(o,"error");return}e(h,!0),e(i,""),e(o,"");try{const r={data:{source:"config-test",timestamp:Date.now()},message:`Configuration test at ${new Date().toLocaleTimeString()}`,title:"Configuration Test"};t(p).trim()&&(r.deviceToken=t(p).trim());const a=await fetch("/api/notify",{body:JSON.stringify(r),headers:{Authorization:`Bearer ${t(n)}`,"Content-Type":"application/json"},method:"POST"}),s=await a.json();a.ok?(e(i,"Test notification sent successfully"),e(o,"success")):(e(i,`Test failed: ${s.error||"Unknown error"}`),e(o,"error"))}catch(r){e(i,`Network error: ${E(r)}`),e(o,"error")}e(h,!1)}function ye(){{localStorage.removeItem("shooter_config"),e(g,typeof window<"u"?window.location.origin:"",!0),e(n,""),e(p,""),e(i,"Configuration cleared"),e(o,"success");const r=j();r&&r.saveConfig?.(JSON.stringify({apiKey:"",serverUrl:""}))}}var H=vt();Le("1gp6n77",r=>{var a=Xe();Ne(()=>{Ae.title="Settings - Shooter"}),d(r,a)});var ae=f(H),ne=m(f(ae),2),W=f(ne),oe=f(W);z(oe,{title:"Server Configuration",description:"Configure server connection and credentials",children:(r,a)=>{var s=et(),S=P(s);X(S,{name:"serverUrl",label:"Server URL",dataType:"text",placeholder:"https://shooter.breezehq.dev",infoMessage:"Base URL of your Shooter server. Apps will reload with this URL on next launch.",get value(){return t(g)},set value(b){e(g,b,!0)}});var I=m(S,2);X(I,{name:"apiKey",label:"API Key",dataType:"password",placeholder:"Enter your API key",infoMessage:"Required for sending notifications",get value(){return t(n)},set value(b){e(n,b,!0)}});var O=m(I,2);{let b=k(()=>t(C)?"Waiting for token...":"64-character hex string"),T=k(()=>t(C)&&t(p)?"Auto-detected from app":"Device token from app registration");X(O,{name:"deviceToken",label:"Device Token",dataType:"text",get placeholder(){return t(b)},get infoMessage(){return t(T)},classes:"input-mono",get value(){return t(p)},set value(Q){e(p,Q,!0)}})}d(r,s)},$$slots:{default:!0}});var ie=m(oe,2);{var _e=r=>{const a=k(()=>t(o)==="success"?"check-circle":t(o)==="error"?"x-circle":"alert-triangle");{const s=I=>{fe(I,{get name(){return t(a)},size:16})};let S=k(()=>t(o)||"info");Je(r,{get text(){return t(i)},get classes(){return`banner-${t(S)??""}`},icon:s,$$slots:{icon:!0}})}};N(ie,r=>{t(i)&&r(_e)})}var se=m(ie,2),ce=f(se);{let r=k(()=>t(h)||!t(n).trim());J(ce,{classes:"btn-secondary",onclick:me,get disabled(){return t(r)},children:(a,s)=>{var S=tt(),I=P(S);{var O=b=>{fe(b,{name:"play",size:14})};N(I,b=>{t(h)||b(O)})}Be(),d(a,S)},$$slots:{default:!0}})}var Se=m(ce,2);{let r=k(()=>t(h)||!t(n).trim());J(Se,{classes:"btn-primary",onclick:re,get disabled(){return t(r)},get showLoader(){return t(h)},text:"Save Changes"})}v(se),v(W);var le=m(W,2),de=f(le);z(de,{title:"Setup Guide",children:(r,a)=>{{let s=k(()=>t(n).trim()&&t(p).trim()?2:t(n).trim()?1:0);Ve(r,{steps:[{label:"Get API Key"},{label:"Find Device Token"},{label:"Test Connection"}],get currentStepIndex(){return t(s)},classes:"setup-stepper"})}},$$slots:{default:!0}});var ve=m(de,2);{let r=k(()=>t(q)?"Scan a QR code to connect":"Scan to connect your mobile app");z(ve,{title:"Mobile App Setup",get description(){return t(r)},children:(a,s)=>{var S=lt(),I=f(S);{var O=T=>{var Q=rt(),M=m(P(Q),2);{let Y=k(()=>t(K)?"Scanning...":"Scan QR Code");J(M,{classes:"btn-secondary btn-sm",onclick:he,get disabled(){return t(K)},get text(){return t(Y)}})}d(T,Q)},b=T=>{var Q=ct(),M=P(Q);{var Y=y=>{var w=nt(),L=P(w),Ue=f(L);v(L);var xe=m(L,4);{var Ie=Z=>{var V=at(),ue=m(f(V)),Te=f(ue,!0);v(ue),v(V),R(()=>G(Te,t(U))),d(Z,V)};N(xe,Z=>{t(U)&&Z(Ie)})}R(()=>Me(Ue,"src",t($))),d(y,w)},be=y=>{var w=ot();d(y,w)},ke=y=>{var w=it(),L=f(w,!0);v(w),R(()=>G(L,t(x))),d(y,w)},Ce=y=>{var w=st();d(y,w)};N(M,y=>{t($)?y(Y):t(A)?y(be,1):t(x)?y(ke,2):y(Ce,-1)})}var $e=m(M,2);{let y=k(()=>t(A)||!t(n).trim()),w=k(()=>t($)?"Regenerate QR Code":"Generate QR Code");J($e,{classes:"btn-secondary btn-sm",onclick:pe,get disabled(){return t(y)},get text(){return t(w)}})}d(T,Q)};N(I,T=>{t(q)?T(O):T(b,-1)})}v(S),d(a,S)},$$slots:{default:!0}})}var we=m(ve,2);z(we,{title:"Danger Zone",children:(r,a)=>{var s=dt(),S=m(P(s),2);J(S,{classes:"btn-danger btn-sm",onclick:ye,text:"Clear Configuration"}),d(r,s)},$$slots:{default:!0}}),v(le),v(ne),v(ae),v(H),d(c,H),Qe()}export{yt as component};
@@ -1 +0,0 @@
1
- import{a as v,f,s as g}from"../chunks/BeONA6_G.js";import{p as Te,o as Ae,d as De,e as Le,j as Ne,h as e,g as d,$ as Re,c as o,r as s,u as k,a as I,s as c,f as w,n as H,t as q}from"../chunks/tjbnEgXP.js";import{i as S}from"../chunks/Ona8oofC.js";import{h as Ke,e as Q,i as Oe,B as W,I as ze,P as B,s as Fe}from"../chunks/DREFAyhX.js";import{p as qe}from"../chunks/BDC7XD4o.js";import{g as Ge,s as Je,S as X}from"../chunks/CbqC9BW7.js";import{i as Ue}from"../chunks/DSU1n5N_.js";import{E as Y}from"../chunks/CojFyTPp.js";import"../chunks/ClK4wZbC.js";import{f as Ve}from"../chunks/CGLrx-H5.js";var Ze=f('<meta name="description" content="Project sessions sorted by latest update"/>'),He=f('<div class="loading-container"><!> <!></div>'),Qe=f('<div class="project-back-row svelte-urn6fi"><a href="/" class="back-link"><span class="back-arrow">&larr;</span> Back to Projects</a></div> <!>',1),We=f("<!> Refresh",1),Xe=f('<div class="session-card-subtitle"> </div>'),Ye=f('<a class="session-card"><div class="session-card-header"><div><h3 class="session-card-title"> </h3> <!></div> <!></div> <div class="session-stats"><span><strong> </strong> messages</span> <!> <!></div> <div class="session-duration"> </div></a>'),ea=f('<div style="text-align: center; padding: 1rem;"><!></div>'),aa=f('<div class="sessions-container svelte-urn6fi"></div> <!>',1),sa=f('<div class="chat-session-header"><div class="chat-session-header-top svelte-urn6fi"><a href="/" class="back-link">&#8592; Back to Projects</a> <!></div> <h1 class="chat-session-title"> </h1> <div class="chat-session-meta"><span class="session-card-subtitle"> </span> <span> </span></div></div> <!>',1),ta=f('<main class="main"><!></main>');function ma(ee,ae){Te(ae,!0);const se=15e3,E=20;let i=I(null),u=I(!0),x=I(null),$=null,j=I(E);const p=k(()=>qe.url.searchParams.get("id")||""),te=k(()=>e(i)?e(i).sessions.slice(0,e(j)):[]),re=k(()=>e(i)?e(j)<e(i).sessions.length:!1);Ae(()=>{oe();const a=Ge(`shooter_project_${e(p)}`);a&&(d(i,a,!0),d(u,!1)),setTimeout(()=>{M()},50),$=setInterval(()=>{e(x)?.apiKey&&e(p)&&M()},se)}),De(()=>{$&&(clearInterval($),$=null)});function oe(){try{const a=localStorage.getItem("shooter_config");if(a){const t=JSON.parse(a);Ue(t)?d(x,t,!0):(localStorage.removeItem("shooter_config"),d(x,null))}}catch{}}async function M(){if(!e(x)?.apiKey||!e(p)){d(u,!1);return}e(i)||d(u,!0);try{const a=await fetch("/api/sessions",{headers:{Authorization:`Bearer ${e(x).apiKey}`}});if(!a.ok){d(u,!1);return}const l=(await a.json()).projects.find(_=>_.id===e(p))||null;d(i,l,!0),l&&Je(`shooter_project_${e(p)}`,l)}catch(a){console.error("Failed to fetch project:",a)}finally{d(u,!1)}}async function ie(){d(u,!0),sessionStorage.removeItem(`shooter_project_${e(p)}`),d(j,E),await M()}function ne(){d(j,e(j)+E)}function ce(a){return new Date(a).toLocaleDateString("en-US",{day:"numeric",hour:"2-digit",minute:"2-digit",month:"short"})}function le(a,t){return a.length<=t?a:`${a.slice(0,t).trimEnd()}...`}var T=ta();Ke("urn6fi",a=>{var t=Ze();Ne(()=>{Re.title=`${(e(i)?.name||"Project")??""} - Shooter`}),v(a,t)});var de=o(T);{var ve=a=>{var t=He(),l=o(t);X(l,{classes:"shimmer-header"});var _=c(l,2);Q(_,16,()=>Array(4),Oe,(A,C)=>{X(A,{classes:"shimmer-card"})}),s(t),v(a,t)},fe=a=>{var t=Qe(),l=c(w(t),2);Y(l,{icon:"alert-triangle",title:"Project Not Found",description:"The requested project could not be found."}),v(a,t)},ue=a=>{var t=sa(),l=w(t),_=o(l),A=c(o(_),2);W(A,{classes:"btn-secondary",onclick:ie,get disabled(){return e(u)},children:(m,L)=>{var y=We(),N=w(y);ze(N,{name:"refresh",size:14}),H(),v(m,y)},$$slots:{default:!0}}),s(_);var C=c(_,2),me=o(C,!0);s(C);var G=c(C,2),D=o(G),pe=o(D,!0);s(D);var J=c(D,2),_e=o(J);s(J),s(G),s(l);var he=c(l,2);{var ge=m=>{Y(m,{icon:"bell",title:"No sessions yet",description:"Sessions for this project will appear here"})},je=m=>{var L=aa(),y=w(L);Q(y,21,()=>e(te),h=>h.id,(h,n)=>{var b=Ye(),P=o(b),R=o(P),K=o(R),be=o(K,!0);s(K);var Se=c(K,2);{var xe=r=>{var F=Xe(),Ee=o(F,!0);s(F),q(Me=>g(Ee,Me),[()=>le(e(n).summary,80)]),v(r,F)};S(Se,r=>{e(n).summary&&r(xe)})}s(R);var Pe=c(R,2);{let r=k(()=>Ve(e(n).modified));B(Pe,{get text(){return e(r)},classes:"pill-session-time"})}s(P);var O=c(P,2),z=o(O),U=o(z),ke=o(U,!0);s(U),H(),s(z);var V=c(z,2);{var $e=r=>{B(r,{get text(){return`🌿 ${e(n).gitBranch??""}`},classes:"pill-git-branch"})};S(V,r=>{e(n).gitBranch&&r($e)})}var Ce=c(V,2);{var Ie=r=>{B(r,{text:"OpenCode",classes:"pill-source-opencode"})},we=r=>{B(r,{text:"Claude Code",classes:"pill-source-claude"})};S(Ce,r=>{e(n).source==="opencode"?r(Ie):r(we,-1)})}s(O);var Z=c(O,2),Be=o(Z);s(Z),s(b),q(r=>{Fe(b,"href",`/session/${e(n).id??""}?project=${e(p)??""}`),g(be,e(n).title),g(ke,e(n).messageCount),g(Be,`Created ${r??""}`)},[()=>ce(e(n).created)]),v(h,b)}),s(y);var N=c(y,2);{var ye=h=>{var n=ea(),b=o(n);{let P=k(()=>`Load More (${e(i).sessions.length-e(j)} remaining)`);W(b,{classes:"btn-secondary",onclick:ne,get text(){return e(P)}})}s(n),v(h,n)};S(N,h=>{e(re)&&h(ye)})}v(m,L)};S(he,m=>{e(i).sessions.length===0?m(ge):m(je,-1)})}q(()=>{g(me,e(i).name),g(pe,e(i).fullPath),g(_e,`${e(i).sessionCount??""} sessions`)}),v(a,t)};S(de,a=>{e(u)&&!e(i)?a(ve):e(i)?a(ue,-1):a(fe,1)})}s(T),v(ee,T),Le()}export{ma as component};
@@ -1 +0,0 @@
1
- import{a as w,f as b,s as O}from"../chunks/BeONA6_G.js";import{p as ye,a as I,b as Se,o as ke,e as Ie,j as Pe,g as t,h as s,$ as $e,c as d,r as m,u as W,s as l,f as H,t as xe}from"../chunks/tjbnEgXP.js";import{i as T}from"../chunks/Ona8oofC.js";import{h as Me,s as Ae,P as je,a as De}from"../chunks/DREFAyhX.js";import{p as q}from"../chunks/BDC7XD4o.js";import{g as Ce,s as Oe,S as $}from"../chunks/CbqC9BW7.js";import{E as Te}from"../chunks/CojFyTPp.js";import"../chunks/ClK4wZbC.js";import{C as Ee}from"../chunks/BygiiMA0.js";var Ue=b('<meta name="description" content="Session conversation view"/>'),Be=b('<div class="loading-container"><!> <div class="chat-container"><!> <!> <!> <!> <!></div></div>'),Re=b('<div class="session-back-row svelte-1a2wdfb"><a href="/" class="back-link"><span class="back-arrow">&larr;</span> Back</a></div> <!>',1),Ne=b('<span class="connection-status connected"><span class="connection-status-dot"></span></span>'),Le=b('<span class="connection-status reconnecting"><span class="connection-status-dot"></span></span>'),We=b('<span class="connection-status disconnected"><span class="connection-status-dot"></span></span>'),qe=b('<div class="live-connection-row svelte-1a2wdfb"><!></div>'),Je=b('<div class="chat-session-header"><div class="chat-session-header-top svelte-1a2wdfb"><a class="back-link">&#8592; Back to Project</a> <!></div> <div class="chat-session-title-row svelte-1a2wdfb"><h1 class="chat-session-title"> </h1> <!></div> <div class="chat-session-meta"><span class="chat-session-meta-item"> </span> <span class="chat-session-meta-item"> </span> <span class="chat-session-meta-item"> </span> <span class="chat-session-meta-item"> </span></div> <!></div> <div class="session-chat-container svelte-1a2wdfb"><!></div>',1),ze=b('<main class="main session-page-main svelte-1a2wdfb"><!></main>');function es(Q,X){ye(X,!0);let v=I(null),o=I(Se([])),S=I(!0),P=I(null),u=I(!1),i=I("idle"),f=I(null),x=0,M=null,k=!1;const J=W(()=>q.params.id),z=W(()=>q.url.searchParams.get("project")||"");function Y(a){const e=new Date(a.modified).getTime(),n=Date.now()-300*1e3;return e>n}let K=0;function A(){return K++,`ws-msg-${Date.now()}-${K}`}function Z(a){let e;try{e=JSON.parse(a.data)}catch{return}if(e.type==="message"){const n={id:A(),parts:e.content||[],role:e.role||"assistant",timestamp:e.timestamp||new Date().toISOString()};t(o,[...s(o),n],!0)}else if(e.type==="tool-use"){const n={id:e.id||A(),input:e.input||{},toolName:e.name||"Unknown",type:"tool_use"};V(n)}else if(e.type==="tool-result"){const n={id:A(),parts:[{isError:e.isError||!1,output:e.output||"",toolUseId:e.id||"",type:"tool_result"}],role:"system",timestamp:new Date().toISOString()};t(o,[...s(o),n],!0)}else if(e.type==="thinking"){const n={content:e.text||"",type:"thinking"};V(n)}else if(e.type==="error"){const n={id:A(),parts:[{content:e.text||e.message||"Unknown error",type:"text"}],role:"system",timestamp:new Date().toISOString()};t(o,[...s(o),n],!0)}else e.type==="permission-requested"?console.log("[session] Permission requested:",e):e.type==="session-end"&&(t(u,!1),t(i,"disconnected"),s(f)&&(s(f).close(),t(f,null)))}function V(a){const e=s(o).length>0?s(o)[s(o).length-1]:null;if(e?.role==="assistant"){const n=[...e.parts,a],p={...e,parts:n};t(o,[...s(o).slice(0,-1),p],!0)}else{const n={id:A(),parts:[a],role:"assistant",timestamp:new Date().toISOString()};t(o,[...s(o),n],!0)}}async function E(){if(!s(u)||k)return;const a=localStorage.getItem("shooter_config");if(!a)return;let e;try{e=JSON.parse(a)}catch{return}t(i,"connecting");try{const n=await fetch("/api/ws-ticket",{headers:{Authorization:`Bearer ${e.apiKey}`},method:"POST"});if(!n.ok||k){t(i,"disconnected"),s(u)&&!k&&x<5&&(x++,M=window.setTimeout(()=>{E()},2e3));return}const{ticket:p}=await n.json();if(k){t(i,"disconnected");return}const h=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/ws/session/${s(J)}?ticket=${p}`,r=new WebSocket(h);r.onopen=()=>{if(k){r.close();return}t(i,"connected"),t(f,r,!0),x=0},r.onmessage=Z,r.onclose=()=>{t(i,"disconnected"),t(f,null),s(u)&&!k&&x<5&&(x++,M=window.setTimeout(()=>{E()},2e3))},r.onerror=()=>{t(i,"disconnected"),t(f,null)}}catch{t(i,"disconnected")}}function ee(a){return new Date(a).toLocaleDateString([],{day:"numeric",month:"short",year:"numeric"})}function se(a){return a.split("/").slice(-2).join("/")}async function te(){s(o).length===0&&t(S,!0);try{const a=localStorage.getItem("shooter_config");if(!a){t(P,"No configuration found. Please configure settings first."),t(S,!1);return}let e;try{e=JSON.parse(a)}catch{t(P,"Invalid saved configuration. Please reconfigure in settings."),t(S,!1);return}const n=s(J)||"",p=s(z)||"",y=p?`id=${encodeURIComponent(n)}&project=${encodeURIComponent(p)}`:`id=${encodeURIComponent(n)}`,h=await fetch(`/api/sessions?${y}`,{headers:{Authorization:`Bearer ${e.apiKey}`}});if(!h.ok){t(P,"Session not found"),t(S,!1);return}const r=await h.json();t(v,r.session,!0);const g=Array.isArray(r.messages)?r.messages:[];t(o,[...g].reverse(),!0),Oe(`shooter_session_${n}`,{messages:g,session:r.session}),r.session&&(t(u,Y(r.session),!0),s(u)&&E())}catch{t(P,"Failed to load session")}t(S,!1)}ke(()=>{const a=Ce(`shooter_session_${q.params.id}`);return a&&(t(v,a.session,!0),t(o,Array.isArray(a.messages)?[...a.messages].reverse():[],!0),t(S,!1)),te(),()=>{k=!0,M&&(clearTimeout(M),M=null),s(f)&&(s(f).close(),t(f,null))}});var U=ze();Me("1a2wdfb",a=>{var e=Ue();Pe(()=>{$e.title=`${(s(v)?.title||"Session")??""} - Shooter`}),w(a,e)});var ae=d(U);{var ne=a=>{var e=Be(),n=d(e);$(n,{classes:"shimmer-header"});var p=l(n,2),y=d(p);$(y,{classes:"shimmer-bubble shimmer-bubble-user"});var h=l(y,2);$(h,{classes:"shimmer-bubble shimmer-bubble-assistant"});var r=l(h,2);$(r,{classes:"shimmer-bubble shimmer-bubble-user-short"});var g=l(r,2);$(g,{classes:"shimmer-bubble shimmer-bubble-assistant-wide"});var j=l(g,2);$(j,{classes:"shimmer-bubble shimmer-bubble-assistant-short"}),m(p),m(e),w(a,e)},oe=a=>{var e=Re(),n=l(H(e),2);Te(n,{icon:"alert-triangle",title:"Error",get description(){return s(P)}}),w(a,e)},re=a=>{var e=Je(),n=H(e),p=d(n),y=d(p),h=l(y,2);{var r=c=>{var D=qe(),ge=d(D);{var _e=_=>{var C=Ne();w(_,C)},we=_=>{var C=Le();w(_,C)},be=_=>{var C=We();w(_,C)};T(ge,_=>{s(i)==="connected"?_(_e):s(i)==="connecting"?_(we,1):s(i)==="disconnected"&&_(be,2)})}m(D),w(c,D)};T(h,c=>{(s(u)||s(i)==="connected"||s(i)==="connecting")&&c(r)})}m(p);var g=l(p,2),j=d(g),ie=d(j,!0);m(j);var ce=l(j,2);{var le=c=>{je(c,{text:"LIVE",classes:"pill-live"})};T(ce,c=>{s(u)&&c(le)})}m(g);var B=l(g,2),R=d(B),de=d(R);m(R);var N=l(R,2),me=d(N);m(N);var L=l(N,2),pe=d(L);m(L);var F=l(L,2),ue=d(F);m(F),m(B);var ve=l(B,2);{var fe=c=>{De(c,{text:"Live updates paused",classes:"banner-warning"})};T(ve,c=>{s(i)==="disconnected"&&s(u)&&c(fe)})}m(n);var G=l(n,2),he=d(G);{let c=W(()=>!s(u));Ee(he,{get messages(){return s(o)},get connectionState(){return s(i)},showInput:!1,get sessionEnded(){return s(c)}})}m(G),xe((c,D)=>{Ae(y,"href",`/project?id=${s(z)??""}`),O(ie,s(v).title),O(de,`📁 ${c??""}`),O(me,`🌿 ${s(v).gitBranch??""}`),O(pe,`💬 ${s(v).messageCount??""} messages`),O(ue,`📅 ${D??""}`)},[()=>se(s(v).projectPath),()=>ee(s(v).created)]),w(a,e)};T(ae,a=>{s(S)&&s(o).length===0?a(ne):s(P)?a(oe,1):s(v)&&a(re,2)})}m(U),w(Q,U),Ie()}export{es as component};
@@ -1,2 +0,0 @@
1
- import{d as Je,c as Ze,e as qe,a as u,t as Qe,s as $,b as Ve,f}from"../chunks/BeONA6_G.js";import{p as je,a as T,b as ze,o as Be,g as o,h as e,ad as We,f as Pe,e as De,c as r,s as l,n as de,t as M,u as S,r as a,d as Ye,i as Ge,$ as Ue}from"../chunks/tjbnEgXP.js";import{i as R}from"../chunks/Ona8oofC.js";import{e as ve,C as Xe,S as et,b as tt,B as V,a as at,h as st,I as rt,i as nt,P as Ae,T as Ee,s as Ne}from"../chunks/DREFAyhX.js";import{a as lt,c as it}from"../chunks/ClK4wZbC.js";import{g as Oe}from"../chunks/CHvUpVYv.js";import{s as Ie,g as ot,S as ct}from"../chunks/CbqC9BW7.js";import{i as dt}from"../chunks/DSU1n5N_.js";import{E as Ke}from"../chunks/CojFyTPp.js";import{f as ke}from"../chunks/CGLrx-H5.js";var vt=f('<div class="overlay svelte-plslui" role="presentation"><div class="sheet svelte-plslui" role="dialog" aria-modal="true" aria-label="New Terminal"><div class="handle-bar svelte-plslui"><div class="handle svelte-plslui"></div></div> <h2 class="sheet-title svelte-plslui">New Terminal</h2> <div class="section svelte-plslui"><span class="section-label svelte-plslui">Quick Launch</span> <div class="preset-grid svelte-plslui"></div></div> <div class="section svelte-plslui"><span class="section-label svelte-plslui">Working Directory</span> <!> <div class="custom-cwd-group svelte-plslui"><!></div></div> <!> <!></div></div>');function pt(pe,y){je(y,!0);const W=[{args:[],command:"claude",label:"Claude Code"},{args:[],command:"opencode",label:"OpenCode"},{args:[],command:"zsh",label:"Shell / zsh"},{args:[],command:"bash",label:"Bash"}];let A=T(0),k=T(ze([])),P=T(""),m=T(""),g=T(!1),L=T("");Be(()=>{_()});async function _(){try{const c=await fetch("/api/sessions?limit=50&offset=0",{headers:{Authorization:`Bearer ${y.apiKey}`}});if(!c.ok)return;const E=(await c.json()).projects.map(h=>h.fullPath).filter(h=>typeof h=="string"&&h.length>0);o(k,[...new Set(E)],!0),e(k).length>0&&!e(P)&&o(P,e(k)[0],!0)}catch{}}function F(c){o(A,c,!0)}function ue(){return W[e(A)].command}function me(){return W[e(A)].args}function fe(){const c=e(m).trim();return c||(e(P)?e(P):"/tmp")}async function Y(){const c=ue();if(c){o(g,!0),o(L,"");try{const w=await fetch("/api/terminals",{body:JSON.stringify({args:me(),command:c,cwd:fe()||void 0}),headers:{Authorization:`Bearer ${y.apiKey}`,"Content-Type":"application/json"},method:"POST"});if(!w.ok){const h=await w.json().catch(()=>({}));o(L,h.error||`Failed to launch (${w.status})`,!0);return}const E=await w.json();y.onLaunch(E)}catch{o(L,"Network error — is the server running?")}finally{o(g,!1)}}}function he(c){c.target===c.currentTarget&&y.onClose()}function ge(c){y.open&&c.key==="Escape"&&y.onClose()}var K=Ze();qe("keydown",We,ge);var se=Pe(K);{var _e=c=>{var w=vt(),E=r(w),h=l(r(E),4),re=l(r(h),2);ve(re,23,()=>W,v=>v.label,(v,Z,N)=>{{let we=S(()=>e(A)===e(N));Xe(v,{mode:"radio",get selected(){return e(we)},onclick:()=>{F(e(N))},classes:"preset-choice",children:(be,Le)=>{de();var oe=Qe();M(()=>$(oe,e(Z).label)),u(be,oe)},$$slots:{default:!0}})}}),a(re),a(h);var H=l(h,2),G=l(r(H),2);{let v=S(()=>e(k).length>0?e(k).map(N=>({id:N,label:N})):[{id:"",label:"No recent projects"}]),Z=S(()=>e(P)?[e(P)]:e(k).length>0?[e(k)[0]]:[""]);et(G,{get items(){return e(v)},get value(){return e(Z)},placeholder:"Select a project",onchange:N=>{o(P,N[0]||"",!0)},classes:"launch-select"})}var ne=l(G,2),le=r(ne);tt(le,{label:"Or enter a custom path",dataType:"text",placeholder:"/path/to/project",classes:"input-mono launch-input",get value(){return e(m)},set value(v){o(m,v,!0)}}),a(ne),a(H);var J=l(H,2);{let v=S(()=>e(g)?"Launching...":"Launch Terminal");V(J,{classes:"btn-launch",get disabled(){return e(g)},onclick:Y,get showLoader(){return e(g)},get text(){return e(v)}})}var U=l(J,2);{var ie=v=>{at(v,{get text(){return e(L)},classes:"banner-error launch-error-banner"})};R(U,v=>{e(L)&&v(ie)})}a(E),a(w),Ve("click",w,he),u(c,w)};R(se,c=>{y.open&&c(_e)})}u(pe,K),De()}Je(["click"]);var ut=f('<meta name="description" content="Active terminal sessions on this machine" class="svelte-1ewpmn2"/>'),mt=f("<!> Refresh",1),ft=f('<span class="plus-icon svelte-1ewpmn2">+</span> New Terminal',1),ht=f('<div class="loading-container svelte-1ewpmn2"></div>'),gt=f('<span class="plus-icon svelte-1ewpmn2">+</span> New Terminal',1),_t=f('<span class="terminal-cwd svelte-1ewpmn2"> </span>'),wt=f('<div class="terminal-preview svelte-1ewpmn2"><span class="terminal-preview-text svelte-1ewpmn2"> </span></div>'),bt=f('<a class="terminal-card svelte-1ewpmn2"><div class="terminal-card-header svelte-1ewpmn2"><div class="terminal-card-left svelte-1ewpmn2"><span class="status-indicator status-running svelte-1ewpmn2"><span></span></span> <span class="terminal-command svelte-1ewpmn2"> </span> <!></div> <span class="terminal-time svelte-1ewpmn2"> </span></div> <div class="terminal-card-meta svelte-1ewpmn2"><!> <span class="terminal-pid svelte-1ewpmn2"> </span></div> <!></a>'),xt=f('<span class="terminal-cwd svelte-1ewpmn2"> </span>'),yt=f('<div class="terminal-preview svelte-1ewpmn2"><span class="terminal-preview-text svelte-1ewpmn2"> </span></div>'),Ct=f('<a class="terminal-card terminal-card-exited svelte-1ewpmn2"><div class="terminal-card-header svelte-1ewpmn2"><div class="terminal-card-left svelte-1ewpmn2"><span class="status-indicator status-exited svelte-1ewpmn2"><span class="status-dot-static svelte-1ewpmn2"></span></span> <span class="terminal-command svelte-1ewpmn2"> </span> <!> <!></div> <div class="terminal-card-right svelte-1ewpmn2"><span class="terminal-time svelte-1ewpmn2"> </span> <!></div></div> <div class="terminal-card-meta svelte-1ewpmn2"><!></div> <!></a>'),$t=f('<div class="terminals-container svelte-1ewpmn2"><!> <!></div>'),Tt=f('<main class="main svelte-1ewpmn2"><div class="page-header svelte-1ewpmn2"><div class="page-header-content svelte-1ewpmn2"><div class="svelte-1ewpmn2"><h1 class="page-title svelte-1ewpmn2">Terminals</h1> <p class="page-description svelte-1ewpmn2">Active terminal sessions on this machine</p></div> <div class="page-actions svelte-1ewpmn2"><!> <!></div></div></div> <!></main> <!>',1);function jt(pe,y){je(y,!0);const W=1e4,A="shooter_terminals",k=["claude","opencode"],P=["zsh","bash","sh","fish"];let m=T(ze([])),g=T(!1),L=!1,_=T(null),F=null;const ue=S(()=>e(m).filter(t=>t.status==="running")),me=S(()=>e(m).filter(t=>t.status==="exited"));Be(()=>{fe();const t=ot(A,1e4);t&&(o(m,t,!0),o(g,!1)),Y(),F=setInterval(()=>{e(_)?.apiKey&&Y()},W)}),Ye(()=>{F&&(clearInterval(F),F=null)});function fe(){try{const t=localStorage.getItem("shooter_config");if(t){const s=JSON.parse(t);dt(s)?o(_,s,!0):(localStorage.removeItem("shooter_config"),o(_,null))}}catch{}}async function Y(){if(!(!e(_)?.apiKey||L)){L=!0,e(m).length===0&&o(g,!0);try{const t=await fetch("/api/terminals",{headers:{Authorization:`Bearer ${e(_).apiKey}`}});if(!t.ok)return;const s=await t.json();o(m,s.terminals.map(i=>({...i,lastOutput:i.lastOutput??null})),!0),Ie(A,e(m))}catch(t){console.error("Failed to fetch terminals:",t)}finally{o(g,!1),L=!1}}}async function he(){o(g,!0),sessionStorage.removeItem(A),await Y()}function ge(){Oe("/config")}let K=T(!1);function se(){o(K,!0)}function _e(){o(K,!1)}function c(t){o(K,!1),Oe(`/terminals/${t.id}`)}function w(t){const s=t.split("/").pop()||t;return k.includes(s)?"ai":(P.includes(s),"shell")}function E(t){return t.status==="exited"?{class:"pill-badge-ended",label:"ENDED"}:w(t.command)==="ai"?{class:"pill-badge-ai",label:"AI"}:{class:"pill-badge-shell",label:"SHELL"}}function h(t,s=40){if(t.length<=s)return t;const i=t.split("/");return i.length<=3?t:`${i[0]}/.../${i.slice(-2).join("/")}`}function re(t){return t.replace(/\x1b\[[0-9;]*[a-zA-Z]|\x1b\][^\x07]*\x07|\x1b\[[\?]?[0-9;]*[a-zA-Z]|\x1b/g,"").replace(/[\x00-\x1f]/g,"").trim()}function H(t,s=80){if(!t)return"";const i=t.split(`
2
- `).map(x=>re(x)).filter(x=>x.trim()),b=i[i.length-1]||"";return b.length<=s?b:`${b.slice(0,s)}...`}function G(t){return t.split("/").pop()||t}async function ne(t,s){if(t.preventDefault(),t.stopPropagation(),!!e(_)?.apiKey)try{(await fetch(`/api/terminals/${s}`,{headers:{Authorization:`Bearer ${e(_).apiKey}`},method:"DELETE"})).ok&&(o(m,e(m).filter(b=>b.id!==s),!0),Ie(A,e(m)))}catch(i){console.error("Failed to remove terminal:",i)}}var le=Tt();st("1ewpmn2",t=>{var s=ut();Ge(()=>{Ue.title="Terminals - Shooter"}),u(t,s)});var J=Pe(le),U=r(J),ie=r(U),v=l(r(ie),2),Z=r(v);V(Z,{classes:"btn-secondary",onclick:he,get disabled(){return e(g)},children:(t,s)=>{var i=mt(),b=Pe(i);rt(b,{name:"refresh",size:14}),de(),u(t,i)},$$slots:{default:!0}});var N=l(Z,2);V(N,{classes:"btn-primary",onclick:se,children:(t,s)=>{var i=ft();de(),u(t,i)},$$slots:{default:!0}}),a(v),a(ie),a(U);var we=l(U,2);{var be=t=>{var s=ht();ve(s,20,()=>Array(4),nt,(i,b)=>{ct(i,{classes:"shimmer-card"})}),a(s),u(t,s)},Le=t=>{Ke(t,{icon:"settings",title:"Configuration Required",description:"Set up your API credentials to view terminal sessions",children:(s,i)=>{V(s,{classes:"btn-primary",onclick:ge,text:"Configure Settings"})}})},oe=t=>{Ke(t,{icon:"terminal",title:"No terminals",description:"Launch a new terminal session to get started. Terminal sessions will appear here once created.",children:(s,i)=>{V(s,{classes:"btn-primary",onclick:se,children:(b,x)=>{var n=gt();de(),u(b,n)},$$slots:{default:!0}})}})},Me=t=>{var s=$t(),i=r(s);ve(i,17,()=>e(ue),x=>x.id,(x,n)=>{const X=S(()=>E(e(n)));var O=bt(),j=r(O),z=r(j),B=r(z),xe=r(B);a(B);var q=l(B,2),ye=r(q,!0);a(q);var Ce=l(q,2);Ae(Ce,{get text(){return e(X).label},get classes(){return e(X).class}}),a(z);var ee=l(z,2),te=r(ee,!0);a(ee),a(j);var ae=l(j,2),ce=r(ae);{let d=S(()=>e(n).currentCwd||e(n).cwd);Ee(ce,{get text(){return e(d)},position:"bottom",children:(p,C)=>{var I=_t(),D=r(I,!0);a(I),M(He=>$(D,He),[()=>h(e(n).currentCwd||e(n).cwd)]),u(p,I)},$$slots:{default:!0}})}var Q=l(ce,2),$e=r(Q);a(Q),a(ae);var Te=l(ae,2);{var Se=d=>{var p=wt(),C=r(p),I=r(C,!0);a(C),a(p),M(D=>$(I,D),[()=>H(e(n).lastOutput)]),u(d,p)};R(Te,d=>{e(n).lastOutput&&d(Se)})}a(O),M((d,p)=>{Ne(O,"href",`/terminals/${e(n).id??""}`),lt(xe,1,it(e(n).isActive?"status-dot-active":"status-dot-idle"),"svelte-1ewpmn2"),$(ye,d),$(te,p),$($e,`PID ${e(n).pid??""}`)},[()=>G(e(n).command),()=>ke(e(n).createdAt)]),u(x,O)});var b=l(i,2);ve(b,17,()=>e(me),x=>x.id,(x,n)=>{const X=S(()=>E(e(n)));var O=Ct(),j=r(O),z=r(j),B=l(r(z),2),xe=r(B,!0);a(B);var q=l(B,2);Ae(q,{get text(){return e(X).label},get classes(){return e(X).class}});var ye=l(q,2);{var Ce=d=>{{let p=S(()=>e(n).exitCode!==0?"pill-exit-error":"pill-exit-ok");Ae(d,{get text(){return`exit ${e(n).exitCode??""}`},get classes(){return e(p)}})}};R(ye,d=>{e(n).exitCode!==null&&d(Ce)})}a(z);var ee=l(z,2),te=r(ee),ae=r(te,!0);a(te);var ce=l(te,2);V(ce,{classes:"btn-ghost btn-sm btn-remove",onclick:d=>ne(d,e(n).id),text:"×"}),a(ee),a(j);var Q=l(j,2),$e=r(Q);Ee($e,{get text(){return e(n).cwd},position:"bottom",children:(d,p)=>{var C=xt(),I=r(C,!0);a(C),M(D=>$(I,D),[()=>h(e(n).cwd)]),u(d,C)},$$slots:{default:!0}}),a(Q);var Te=l(Q,2);{var Se=d=>{var p=yt(),C=r(p),I=r(C,!0);a(C),a(p),M(D=>$(I,D),[()=>H(e(n).lastOutput)]),u(d,p)};R(Te,d=>{e(n).lastOutput&&d(Se)})}a(O),M((d,p)=>{Ne(O,"href",`/terminals/${e(n).id??""}`),$(xe,d),$(ae,p)},[()=>G(e(n).command),()=>e(n).exitedAt?ke(e(n).exitedAt):ke(e(n).createdAt)]),u(x,O)}),a(s),u(t,s)};R(we,t=>{e(g)&&e(m).length===0?t(be):e(_)?.apiKey?e(m).length===0?t(oe,2):t(Me,-1):t(Le,1)})}a(J);var Re=l(J,2);{var Fe=t=>{pt(t,{get open(){return e(K)},get apiKey(){return e(_).apiKey},onClose:_e,onLaunch:c})};R(Re,t=>{e(_)?.apiKey&&t(Fe)})}u(pe,le),De()}export{jt as component};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../chunks/50RPd5u3.js","../chunks/PPVm8Dsz.js"])))=>i.map(i=>d[i]);
2
- import{_ as be}from"../chunks/PPVm8Dsz.js";import{s as st,a as S,f as I,c as ye,d as we,b as _e}from"../chunks/BeONA6_G.js";import{p as rt,e as ot,h as t,u as y,c as _,s as c,r as m,t as X,f as Lt,a as p,b as ke,o as Se,d as xe,j as Ce,g as n,$ as Ie}from"../chunks/tjbnEgXP.js";import{s as Te,a as je}from"../chunks/K_aHH2KN.js";import{p as qe,i as K,b as Pt}from"../chunks/Ona8oofC.js";import{f as Ee,B as Z,e as Wt,M as Ke,K as $e,h as De,P as Nt,s as Ae,g as Ot,T as Rt,j as Me,b as Pe}from"../chunks/DREFAyhX.js";import{a as ft}from"../chunks/ClK4wZbC.js";import{g as V}from"../chunks/CHvUpVYv.js";import{p as Ne}from"../chunks/CdL99jkG.js";import{E as Oe}from"../chunks/CojFyTPp.js";import{C as Re}from"../chunks/BygiiMA0.js";function Le(h,r){rt(r,!0);let g=qe(r,"open",15,!1);const b=y(()=>r.commands.map((w,a)=>({label:w.label,value:String(a)})));function T(w){const a=parseInt(w.value,10);r.commands[a]&&r.commands[a].action()}Ee(h,{get items(){return t(b)},placeholder:"Type a command...",emptyText:"No matching commands",onselect:T,get onclose(){return r.onClose},classes:"command-palette",get open(){return g()},set open(w){g(w)}}),ot()}var We=I('<div><span></span> <span class="status-label svelte-1cg9pai"> </span> <!></div>');function ze(h,r){const g=y(()=>r.status==="connected"?"Connected":r.status==="reconnecting"?"Reconnecting...":"Disconnected");var b=We();let T;var w=_(b),a=c(w,2),N=_(a,!0);m(a);var E=c(a,2);{var j=k=>{Z(k,{classes:"btn-ghost btn-sm btn-retry",get onclick(){return r.onretry},text:"Retry"})};K(E,k=>{r.status==="disconnected"&&r.onretry&&k(j)})}m(b),X(()=>{T=ft(b,1,"connection-status svelte-1cg9pai",null,T,{reconnecting:r.status==="reconnecting",disconnected:r.status==="disconnected",connected:r.status==="connected"}),ft(w,1,`status-dot ${r.status??""}`,"svelte-1cg9pai"),st(N,t(g))}),S(h,b)}const zt=typeof navigator<"u"&&/Mac|iPhone|iPad/.test(navigator.userAgent),vt=zt?"⌘":"Ctrl";function Be(h){function r(g){if((zt?g.metaKey:g.ctrlKey)&&!He()&&g.key==="/"){g.preventDefault(),g.stopPropagation(),h.onHelp();return}}return window.addEventListener("keydown",r,!0),{destroy(){window.removeEventListener("keydown",r,!0)}}}function Fe(){return[{description:"Command palette",keys:`${vt}+K`},{description:"Keyboard shortcuts",keys:`${vt}+/`}]}function He(){const h=document.activeElement;if(!h)return!1;const r=h.tagName;return!!(r==="INPUT"||r==="TEXTAREA"||h.isContentEditable||h.closest(".xterm"))}var Ue=I('<div class="quick-keys svelte-64qat5" role="toolbar" aria-label="Quick terminal keys"></div>');function Je(h,r){rt(r,!0);const g=[{escape:"",label:"Ctrl+C"},{escape:" ",label:"Tab"},{escape:"\x1B[A",label:"↑"},{escape:"\x1B[B",label:"↓"},{escape:"\x1B",label:"Esc"},{escape:"",label:"Ctrl+D"},{escape:"",label:"Ctrl+Z"}];var b=Ue();Wt(b,21,()=>g,T=>T.label,(T,w)=>{Z(T,{classes:"btn-quick-key",onclick:()=>{r.onKey(t(w).escape)},get text(){return t(w).label}})}),m(b),S(h,b),ot()}var Ge=I('<div class="shortcut-row svelte-1u7lstk"><span class="shortcut-desc svelte-1u7lstk"> </span> <!></div>'),Qe=I('<div class="shortcuts-list svelte-1u7lstk"></div>');function Ve(h,r){rt(r,!0);const g=Fe();var b=ye(),T=Lt(b);{var w=a=>{Ke(a,{header:{text:"Keyboard Shortcuts"},get onoverlayClick(){return r.onClose},classes:"shortcuts-modal",content:E=>{var j=Qe();Wt(j,21,()=>g,k=>k.keys,(k,W)=>{var O=Ge(),u=_(O),q=_(u,!0);m(u);var D=c(u,2);$e(D,{get keys(){return t(W).keys},classes:"shortcut-kbd"}),m(O),X(()=>st(q,t(W).description)),S(k,O)}),m(j),S(E,j)},$$slots:{content:!0}})};K(T,a=>{r.open&&a(w)})}S(h,b),ot()}var Xe=I('<meta name="description" content="Interactive terminal session" class="svelte-1tubujq"/>'),Ze=I('<div class="term-page svelte-1tubujq"><div class="term-topbar svelte-1tubujq"><div class="skeleton svelte-1tubujq" style="width: 120px; height: 20px;"></div></div> <div class="term-body-loading svelte-1tubujq"><div class="skeleton svelte-1tubujq" style="width: 100%; height: 100%;"></div></div></div>'),Ye=I('<main class="main svelte-1tubujq"><div class="session-back-row svelte-1tubujq"><a href="/terminals" class="back-link svelte-1tubujq"><span class="back-arrow svelte-1tubujq">&larr;</span> Terminals</a></div> <!></main>'),tn=I("<span></span>"),en=I('<span class="term-cwd svelte-1tubujq"> </span>'),nn=I('<div class="term-input-area svelte-1tubujq"><!> <div class="term-input-bar svelte-1tubujq"><!> <!></div></div>'),an=I('<div class="term-exited-bar svelte-1tubujq"><span class="svelte-1tubujq">Process exited</span> <!></div>'),sn=I('<div class="term-page svelte-1tubujq"><div class="term-topbar svelte-1tubujq"><div class="term-topbar-left svelte-1tubujq"><a href="/terminals" class="term-back svelte-1tubujq" aria-label="Back to terminals">&larr;</a> <span class="term-command-name svelte-1tubujq"> </span> <!> <!> <!> <!></div> <div class="term-topbar-right svelte-1tubujq"><!> <button class="term-shortcuts-btn svelte-1tubujq" type="button" aria-label="Keyboard shortcuts">?</button> <!></div></div> <div class="term-body svelte-1tubujq"></div> <!> <div class="term-chat-body svelte-1tubujq"><!></div> <!></div>'),rn=I("<!> <!> <!>",1);function bn(h,r){rt(r,!0);const g=()=>je(Ne,"$page",b),[b,T]=Te(),w=["claude","opencode"];let a=p(null),N=p(!0),E=p(null),j=p(!1),k=p(!1),W=p(!1),O=p(null),u=p("raw"),q=p("disconnected"),D=p("disconnected"),z=p(""),d=p(ke([])),pt=p(!1),H=p(null),it=p(null),A=null,mt=null,R=p(!1),lt=p(!1),f=null,L=null,v=!1;const U=y(()=>g().params.id),Y=y(()=>t(a)?w.includes((t(a).command.split("/").pop()||"").toLowerCase()):!1),B=y(()=>t(a)?.status==="running"),ht=y(()=>t(a)?.command.split("/").pop()||"terminal"),Bt=y(()=>t(Y)?"AI":"SHELL"),Ft=y(()=>t(Y)?"pill-badge-ai":"pill-badge-shell"),Ht=["Raw","Chat"],gt=y(()=>t(u)==="raw"?t(q):t(D)),Ut=y(()=>t(u)==="raw"?0:1),bt=y(()=>Gt(t(O)||t(a)?.cwd||"")),Jt=y(()=>{const e=[{action:()=>{V("/")},label:"Go to Home"},{action:()=>{V("/terminals")},label:"Go to Terminals"},{action:()=>{V("/config")},label:"Go to Settings"},{action:()=>{n(R,!0)},label:"Show keyboard shortcuts"}];return t(B)&&e.push({action:()=>{wt()},label:"Kill terminal"}),e});function Gt(e){if(!e)return"";const s="";let i=e;if(typeof navigator<"u"){const l=e.split("/");l.length>=3&&l[1]==="Users"?i=`~/${l.slice(3).join("/")}`:l.length>=3&&l[1]==="home"&&(i=`~/${l.slice(3).join("/")}`)}if(i.length>30){const l=i.split("/");if(l.length>2)return`.../${l.slice(-2).join("/")}`}return i||s}function J(){try{const e=localStorage.getItem("shooter_config");if(!e)return null;const s=JSON.parse(e);return typeof s?.apiKey=="string"&&s.apiKey?s:null}catch{return null}}async function Qt(){const e=J();if(!e){n(E,"No configuration found. Please configure settings first."),n(N,!1);return}try{const s=await fetch(`/api/terminals/${t(U)}`,{headers:{Authorization:`Bearer ${e.apiKey}`}});if(!s.ok){n(E,s.status===404?"Terminal not found":"Failed to load terminal",!0),n(N,!1);return}n(a,await s.json(),!0)}catch{n(E,"Failed to connect to server")}n(N,!1)}async function yt(){const e=J();if(!e)return null;try{const s=await fetch("/api/ws-ticket",{headers:{Authorization:`Bearer ${e.apiKey}`},method:"POST"});return s.ok?(await s.json()).ticket:null}catch{return null}}async function wt(){if(!t(a)||t(j))return;const e=J();if(e){n(j,!0);try{(await fetch(`/api/terminals/${t(U)}`,{headers:{Authorization:`Bearer ${e.apiKey}`},method:"DELETE"})).ok?V("/terminals"):n(j,!1)}catch{n(j,!1)}}}async function Vt(){if(!t(a)||t(k))return;const e=J();if(e){n(k,!0);try{(await fetch(`/api/terminals/${t(U)}`,{headers:{Authorization:`Bearer ${e.apiKey}`},method:"DELETE"})).ok?V("/terminals"):n(k,!1)}catch{n(k,!1)}}}async function ct(){if(!t(H)||!t(a)||v)return;const s=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}${t(a).ws}`,i=async()=>{const l=await yt();if(!l)throw new Error("Failed to obtain WebSocket ticket");return l};try{const{createTerminal:l}=await be(async()=>{const{createTerminal:$}=await import("../chunks/50RPd5u3.js");return{createTerminal:$}},__vite__mapDeps([0,1]),import.meta.url);if(v||!t(H))return;const M=await l({apiKey:J()?.apiKey,container:t(H),fontSize:window.innerWidth<768?12:14,getTicket:i,onActivity:$=>{v||n(W,$,!0)},onCwd:$=>{v||n(O,$,!0)},onDisconnect:()=>{v||n(q,"reconnecting")},onExit:$=>{!v&&t(a)&&(n(a,{...t(a),exitCode:$,exitedAt:new Date().toISOString(),status:"exited"},!0),n(q,"disconnected"))},onReconnect:()=>{v||n(q,"connected")},terminalId:t(U),wsUrl:s});if(v){M.dispose();return}A=M,n(q,"connected")}catch(l){console.error("Failed to initialize terminal:",l),n(q,"disconnected")}}function _t(){A&&(A.dispose(),A=null)}async function tt(){if(!t(a)||v||f&&(f.readyState===WebSocket.OPEN||f.readyState===WebSocket.CONNECTING))return;const e=await yt();if(!e||v||!t(a)){n(D,"disconnected");return}const i=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}${t(a).sessionWs}?ticket=${e}`;f=new WebSocket(i),f.onopen=()=>{v||(n(D,"connected"),f?.send(JSON.stringify({sessionId:t(U),type:"subscribe"})))},f.onmessage=l=>{if(!v)try{const M=JSON.parse(l.data);Xt(M)}catch{}},f.onclose=()=>{!v&&t(a)?.status==="running"&&(n(D,"reconnecting"),L&&clearTimeout(L),L=setTimeout(()=>{L=null,!v&&t(a)?.status==="running"&&tt()},2e3))},f.onerror=()=>{v||n(D,"disconnected")}}function Xt(e){if(e.type==="history"){const s=e.messages||[];n(d,s.map(i=>({id:i.id,parts:i.content,role:i.role,timestamp:i.timestamp})),!0)}else if(e.type==="message")n(d,[...t(d),{id:`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:e.content||[],role:e.role||"assistant",timestamp:e.timestamp||new Date().toISOString()}],!0);else if(e.type==="tool-use")n(d,[...t(d),{id:`tool-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[{id:e.id||`tool-${Date.now()}`,input:e.input||{},toolName:e.name,type:"tool_use"}],role:"assistant",timestamp:new Date().toISOString()}],!0);else if(e.type==="tool-result")n(d,[...t(d),{id:`result-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[{isError:e.isError||!1,output:e.output||"",toolUseId:e.id,type:"tool_result"}],role:"system",timestamp:new Date().toISOString()}],!0);else if(e.type==="thinking"){const s={content:e.text||"",type:"thinking"},i=t(d).length>0?t(d)[t(d).length-1]:null;i?.role==="assistant"?n(d,[...t(d).slice(0,-1),{...i,parts:[...i.parts,s]}],!0):n(d,[...t(d),{id:`think-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[s],role:"assistant",timestamp:new Date().toISOString()}],!0)}else e.type==="error"?n(d,[...t(d),{id:`err-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[{content:e.message||"Unknown error",type:"text"}],role:"system",timestamp:new Date().toISOString()}],!0):e.type==="session-end"&&(n(pt,!0),t(a)&&n(a,{...t(a),status:"exited"},!0))}function kt(){L&&(clearTimeout(L),L=null),f&&(f.onclose=null,f.close(),f=null)}function St(){t(z).trim()&&(A&&t(q)==="connected"&&A.sendInput(`${t(z)}\r`),n(z,""),t(it)?.focus())}function Zt(e){!e.trim()||f?.readyState!==WebSocket.OPEN||f.send(JSON.stringify({text:e,type:"send-input"}))}function xt(){f?.readyState===WebSocket.OPEN&&f.send(JSON.stringify({type:"cancel"}))}function Yt(e){t(u)==="raw"?A&&t(q)==="connected"&&A.sendInput(e):t(u)==="chat"&&e===""&&xt()}function te(e){e.key==="Enter"&&!e.shiftKey&&(e.preventDefault(),St())}let et=!1,nt=!1;function ee(e){e!==t(u)&&(n(u,e,!0),e==="raw"&&!et?(requestAnimationFrame(()=>{ct()}),et=!0):e==="chat"&&!nt&&(tt(),nt=!0))}function ne(){t(u)==="raw"?(_t(),n(q,"reconnecting"),ct(),et=!0):(kt(),n(D,"reconnecting"),tt(),nt=!0)}Se(async()=>{await Qt(),!v&&(mt=Be({onHelp:()=>{n(R,!t(R))}}),!(!t(a)||t(E))&&(t(Y)&&window.innerWidth<768?n(u,"chat"):n(u,"raw"),t(u)==="raw"?(requestAnimationFrame(()=>{ct()}),et=!0):(tt(),nt=!0)))}),xe(()=>{v=!0,_t(),kt(),mt?.destroy()});var Ct=rn();De("1tubujq",e=>{var s=Xe();Ce(()=>{Ie.title=`${t(ht)??""} - Terminal - Shooter`}),S(e,s)});var It=Lt(Ct);{var ae=e=>{var s=Ze();S(e,s)},se=e=>{var s=Ye(),i=c(_(s),2);Oe(i,{icon:"alert-triangle",title:"Error",get description(){return t(E)}}),m(s),S(e,s)},re=e=>{var s=sn(),i=_(s),l=_(i),M=c(_(l),2),$=_(M,!0);m(M);var jt=c(M,2);Nt(jt,{get text(){return t(Bt)},get classes(){return t(Ft)}});var qt=c(jt,2);{var ie=o=>{{let x=y(()=>t(W)?"Active":"Idle");Rt(o,{get text(){return t(x)},position:"bottom",children:(P,F)=>{var C=tn();X(()=>ft(C,1,`activity-dot ${t(W)?"activity-active":"activity-idle"}`,"svelte-1tubujq")),S(P,C)},$$slots:{default:!0}})}};K(qt,o=>{t(B)&&o(ie)})}var Et=c(qt,2);{var le=o=>{{let x=y(()=>t(O)||t(a)?.cwd||"");Rt(o,{get text(){return t(x)},position:"bottom",children:(P,F)=>{var C=en(),G=_(C,!0);m(C),X(()=>st(G,t(bt))),S(P,C)},$$slots:{default:!0}})}};K(Et,o=>{t(bt)&&o(le)})}var ce=c(Et,2);ze(ce,{get status(){return t(gt)},onretry:ne}),m(l);var Kt=c(l,2),$t=_(Kt);{var ue=o=>{Me(o,{get items(){return Ht},get activeIndex(){return t(Ut)},onchange:x=>{ee(x===0?"raw":"chat")},classes:"term-tabs"})};K($t,o=>{t(Y)&&o(ue)})}var ut=c($t,2),de=c(ut,2);{var fe=o=>{Z(o,{classes:"btn-danger btn-sm",onclick:wt,get disabled(){return t(j)},get showLoader(){return t(j)},text:"Kill"})},ve=o=>{Z(o,{classes:"btn-secondary btn-sm",onclick:Vt,get disabled(){return t(k)},get showLoader(){return t(k)},text:"Remove"})};K(de,o=>{t(B)?o(fe):o(ve,-1)})}m(Kt),m(i);var dt=c(i,2);let Dt;Pt(dt,o=>n(H,o),()=>t(H));var At=c(dt,2);{var pe=o=>{var x=nn(),P=_(x);Je(P,{onKey:Yt});var F=c(P,2),C=_(F);Pt(Pe(C,{dataType:"text",useTextArea:!0,placeholder:"Type command... (Shift+Enter for new line)",classes:"input-mono term-input-field",onKeyDown:te,get value(){return t(z)},set value(Q){n(z,Q,!0)}}),Q=>n(it,Q,!0),()=>t(it));var G=c(C,2);{let Q=y(()=>!t(z).trim());Z(G,{classes:"btn-primary btn-send",onclick:St,get disabled(){return t(Q)},text:"↵"})}m(F),m(x),S(o,x)};K(At,o=>{t(B)&&t(u)==="raw"&&o(pe)})}var at=c(At,2);let Mt;var me=_(at);Re(me,{get messages(){return t(d)},get connectionState(){return t(gt)},get sessionEnded(){return t(pt)},get showInput(){return t(B)},onSendInput:Zt,onCancel:xt}),m(at);var he=c(at,2);{var ge=o=>{var x=an(),P=c(_(x),2);{var F=C=>{{let G=y(()=>t(a).exitCode!==0?"pill-exit-error":"pill-exit-ok");Nt(C,{get text(){return`code ${t(a).exitCode??""}`},get classes(){return t(G)}})}};K(P,C=>{t(a).exitCode!==null&&C(F)})}m(x),S(o,x)};K(he,o=>{t(B)||o(ge)})}m(s),X(()=>{st($,t(ht)),Ae(ut,"title",`${vt??""}+/ for shortcuts`),Dt=Ot(dt,"",Dt,{display:t(u)==="raw"?"flex":"none"}),Mt=Ot(at,"",Mt,{display:t(u)==="chat"?"flex":"none"})}),_e("click",ut,()=>{n(R,!t(R))}),S(e,s)};K(It,e=>{t(N)?e(ae):t(E)?e(se,1):t(a)&&e(re,2)})}var Tt=c(It,2);Ve(Tt,{get open(){return t(R)},onClose:()=>{n(R,!1)}});var oe=c(Tt,2);Le(oe,{get commands(){return t(Jt)},onClose:()=>{n(lt,!1)},get open(){return t(lt)},set open(e){n(lt,e,!0)}}),S(h,Ct),ot(),T()}we(["click"]);export{bn as component};
@@ -1,9 +0,0 @@
1
- const index = 0;
2
- let component_cache;
3
- const component = async () => component_cache ??= (await import('./_layout.svelte-CO4f8UD7.js')).default;
4
- const imports = ["_app/immutable/nodes/0.D0i5MqcI.js","_app/immutable/chunks/BeONA6_G.js","_app/immutable/chunks/tjbnEgXP.js","_app/immutable/chunks/K_aHH2KN.js","_app/immutable/chunks/ClK4wZbC.js","_app/immutable/chunks/CHvUpVYv.js","_app/immutable/chunks/CdL99jkG.js"];
5
- const stylesheets = ["_app/immutable/assets/markdown.Dc-OSJWY.css","_app/immutable/assets/0.DC5pAwP3.css"];
6
- const fonts = [];
7
-
8
- export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=0-Cs1dzfRz.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"0-Cs1dzfRz.js","sources":["../../../.svelte-kit/adapter-node/nodes/0.js"],"sourcesContent":["\n\nexport const index = 0;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/0.D0i5MqcI.js\",\"_app/immutable/chunks/BeONA6_G.js\",\"_app/immutable/chunks/tjbnEgXP.js\",\"_app/immutable/chunks/K_aHH2KN.js\",\"_app/immutable/chunks/ClK4wZbC.js\",\"_app/immutable/chunks/CHvUpVYv.js\",\"_app/immutable/chunks/CdL99jkG.js\"];\nexport const stylesheets = [\"_app/immutable/assets/markdown.Dc-OSJWY.css\",\"_app/immutable/assets/0.DC5pAwP3.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,8BAAoC,CAAC,EAAE;AAClG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACxQ,MAAC,WAAW,GAAG,CAAC,6CAA6C,CAAC,sCAAsC;AACpG,MAAC,KAAK,GAAG;;;;"}
@@ -1,9 +0,0 @@
1
- const index = 1;
2
- let component_cache;
3
- const component = async () => component_cache ??= (await import('./error.svelte-BG_yE-Wt.js')).default;
4
- const imports = ["_app/immutable/nodes/1.DN5n5c6F.js","_app/immutable/chunks/BeONA6_G.js","_app/immutable/chunks/tjbnEgXP.js","_app/immutable/chunks/BDC7XD4o.js","_app/immutable/chunks/CHvUpVYv.js"];
5
- const stylesheets = [];
6
- const fonts = [];
7
-
8
- export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=1-BCSX7oED.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"1-BCSX7oED.js","sources":["../../../.svelte-kit/adapter-node/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.DN5n5c6F.js\",\"_app/immutable/chunks/BeONA6_G.js\",\"_app/immutable/chunks/tjbnEgXP.js\",\"_app/immutable/chunks/BDC7XD4o.js\",\"_app/immutable/chunks/CHvUpVYv.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAsC,CAAC,EAAE;AACpG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAChM,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
@@ -1,9 +0,0 @@
1
- const index = 2;
2
- let component_cache;
3
- const component = async () => component_cache ??= (await import('./_page.svelte-3Cc3NMAP.js')).default;
4
- const imports = ["_app/immutable/nodes/2.BTjkNKZJ.js","_app/immutable/chunks/BeONA6_G.js","_app/immutable/chunks/tjbnEgXP.js","_app/immutable/chunks/Ona8oofC.js","_app/immutable/chunks/K_aHH2KN.js","_app/immutable/chunks/DREFAyhX.js","_app/immutable/chunks/ClK4wZbC.js","_app/immutable/chunks/CHvUpVYv.js","_app/immutable/chunks/CbqC9BW7.js","_app/immutable/chunks/DSU1n5N_.js","_app/immutable/chunks/CojFyTPp.js","_app/immutable/chunks/CGLrx-H5.js"];
5
- const stylesheets = ["_app/immutable/assets/markdown.Dc-OSJWY.css","_app/immutable/assets/Phone.FQEfwCX2.css","_app/immutable/assets/2.CAShZ7lQ.css"];
6
- const fonts = [];
7
-
8
- export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=2-6gkeO8b4.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"2-6gkeO8b4.js","sources":["../../../.svelte-kit/adapter-node/nodes/2.js"],"sourcesContent":["\n\nexport const index = 2;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/2.BTjkNKZJ.js\",\"_app/immutable/chunks/BeONA6_G.js\",\"_app/immutable/chunks/tjbnEgXP.js\",\"_app/immutable/chunks/Ona8oofC.js\",\"_app/immutable/chunks/K_aHH2KN.js\",\"_app/immutable/chunks/DREFAyhX.js\",\"_app/immutable/chunks/ClK4wZbC.js\",\"_app/immutable/chunks/CHvUpVYv.js\",\"_app/immutable/chunks/CbqC9BW7.js\",\"_app/immutable/chunks/DSU1n5N_.js\",\"_app/immutable/chunks/CojFyTPp.js\",\"_app/immutable/chunks/CGLrx-H5.js\"];\nexport const stylesheets = [\"_app/immutable/assets/markdown.Dc-OSJWY.css\",\"_app/immutable/assets/Phone.FQEfwCX2.css\",\"_app/immutable/assets/2.CAShZ7lQ.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAkC,CAAC,EAAE;AAChG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5b,MAAC,WAAW,GAAG,CAAC,6CAA6C,CAAC,0CAA0C,CAAC,sCAAsC;AAC/I,MAAC,KAAK,GAAG;;;;"}
@@ -1,9 +0,0 @@
1
- const index = 3;
2
- let component_cache;
3
- const component = async () => component_cache ??= (await import('./_page.svelte-rTrWmhOp.js')).default;
4
- const imports = ["_app/immutable/nodes/3.CEkigHDv.js","_app/immutable/chunks/BeONA6_G.js","_app/immutable/chunks/tjbnEgXP.js","_app/immutable/chunks/Ona8oofC.js","_app/immutable/chunks/K_aHH2KN.js","_app/immutable/chunks/DREFAyhX.js","_app/immutable/chunks/ClK4wZbC.js","_app/immutable/chunks/DSU1n5N_.js"];
5
- const stylesheets = ["_app/immutable/assets/markdown.Dc-OSJWY.css","_app/immutable/assets/Phone.FQEfwCX2.css","_app/immutable/assets/3.BoXp0JoS.css"];
6
- const fonts = [];
7
-
8
- export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=3-DH9J9Vsc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"3-DH9J9Vsc.js","sources":["../../../.svelte-kit/adapter-node/nodes/3.js"],"sourcesContent":["\n\nexport const index = 3;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/config/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/3.CEkigHDv.js\",\"_app/immutable/chunks/BeONA6_G.js\",\"_app/immutable/chunks/tjbnEgXP.js\",\"_app/immutable/chunks/Ona8oofC.js\",\"_app/immutable/chunks/K_aHH2KN.js\",\"_app/immutable/chunks/DREFAyhX.js\",\"_app/immutable/chunks/ClK4wZbC.js\",\"_app/immutable/chunks/DSU1n5N_.js\"];\nexport const stylesheets = [\"_app/immutable/assets/markdown.Dc-OSJWY.css\",\"_app/immutable/assets/Phone.FQEfwCX2.css\",\"_app/immutable/assets/3.BoXp0JoS.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAyC,CAAC,EAAE;AACvG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5S,MAAC,WAAW,GAAG,CAAC,6CAA6C,CAAC,0CAA0C,CAAC,sCAAsC;AAC/I,MAAC,KAAK,GAAG;;;;"}
@@ -1,9 +0,0 @@
1
- const index = 4;
2
- let component_cache;
3
- const component = async () => component_cache ??= (await import('./_page.svelte-C6bns9aQ.js')).default;
4
- const imports = ["_app/immutable/nodes/4.B-8Zsc9k.js","_app/immutable/chunks/BeONA6_G.js","_app/immutable/chunks/tjbnEgXP.js","_app/immutable/chunks/Ona8oofC.js","_app/immutable/chunks/K_aHH2KN.js","_app/immutable/chunks/DREFAyhX.js","_app/immutable/chunks/ClK4wZbC.js","_app/immutable/chunks/BDC7XD4o.js","_app/immutable/chunks/CHvUpVYv.js","_app/immutable/chunks/CbqC9BW7.js","_app/immutable/chunks/DSU1n5N_.js","_app/immutable/chunks/CojFyTPp.js","_app/immutable/chunks/CGLrx-H5.js"];
5
- const stylesheets = ["_app/immutable/assets/markdown.Dc-OSJWY.css","_app/immutable/assets/Phone.FQEfwCX2.css","_app/immutable/assets/4.cJuCkJKZ.css"];
6
- const fonts = [];
7
-
8
- export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=4-Rzy5TYjl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"4-Rzy5TYjl.js","sources":["../../../.svelte-kit/adapter-node/nodes/4.js"],"sourcesContent":["\n\nexport const index = 4;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/project/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/4.B-8Zsc9k.js\",\"_app/immutable/chunks/BeONA6_G.js\",\"_app/immutable/chunks/tjbnEgXP.js\",\"_app/immutable/chunks/Ona8oofC.js\",\"_app/immutable/chunks/K_aHH2KN.js\",\"_app/immutable/chunks/DREFAyhX.js\",\"_app/immutable/chunks/ClK4wZbC.js\",\"_app/immutable/chunks/BDC7XD4o.js\",\"_app/immutable/chunks/CHvUpVYv.js\",\"_app/immutable/chunks/CbqC9BW7.js\",\"_app/immutable/chunks/DSU1n5N_.js\",\"_app/immutable/chunks/CojFyTPp.js\",\"_app/immutable/chunks/CGLrx-H5.js\"];\nexport const stylesheets = [\"_app/immutable/assets/markdown.Dc-OSJWY.css\",\"_app/immutable/assets/Phone.FQEfwCX2.css\",\"_app/immutable/assets/4.cJuCkJKZ.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA0C,CAAC,EAAE;AACxG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAChe,MAAC,WAAW,GAAG,CAAC,6CAA6C,CAAC,0CAA0C,CAAC,sCAAsC;AAC/I,MAAC,KAAK,GAAG;;;;"}
@@ -1,9 +0,0 @@
1
- const index = 5;
2
- let component_cache;
3
- const component = async () => component_cache ??= (await import('./_page.svelte-C0p3HsIW.js')).default;
4
- const imports = ["_app/immutable/nodes/5.shitbtHc.js","_app/immutable/chunks/BeONA6_G.js","_app/immutable/chunks/tjbnEgXP.js","_app/immutable/chunks/Ona8oofC.js","_app/immutable/chunks/K_aHH2KN.js","_app/immutable/chunks/DREFAyhX.js","_app/immutable/chunks/ClK4wZbC.js","_app/immutable/chunks/BDC7XD4o.js","_app/immutable/chunks/CHvUpVYv.js","_app/immutable/chunks/CbqC9BW7.js","_app/immutable/chunks/CojFyTPp.js","_app/immutable/chunks/BygiiMA0.js"];
5
- const stylesheets = ["_app/immutable/assets/markdown.Dc-OSJWY.css","_app/immutable/assets/Phone.FQEfwCX2.css","_app/immutable/assets/ChatView.CsdBAOKx.css","_app/immutable/assets/5.DRjApZQW.css"];
6
- const fonts = [];
7
-
8
- export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=5-D0wB7nfE.js.map
@@ -1,9 +0,0 @@
1
- const index = 6;
2
- let component_cache;
3
- const component = async () => component_cache ??= (await import('./_page.svelte-CFCONiDK.js')).default;
4
- const imports = ["_app/immutable/nodes/6.CB8Q6eH8.js","_app/immutable/chunks/BeONA6_G.js","_app/immutable/chunks/tjbnEgXP.js","_app/immutable/chunks/Ona8oofC.js","_app/immutable/chunks/K_aHH2KN.js","_app/immutable/chunks/DREFAyhX.js","_app/immutable/chunks/ClK4wZbC.js","_app/immutable/chunks/CHvUpVYv.js","_app/immutable/chunks/CbqC9BW7.js","_app/immutable/chunks/DSU1n5N_.js","_app/immutable/chunks/CojFyTPp.js","_app/immutable/chunks/CGLrx-H5.js"];
5
- const stylesheets = ["_app/immutable/assets/markdown.Dc-OSJWY.css","_app/immutable/assets/Phone.FQEfwCX2.css","_app/immutable/assets/6.eZGZN-BF.css"];
6
- const fonts = [];
7
-
8
- export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=6-DR2ABDPq.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"6-DR2ABDPq.js","sources":["../../../.svelte-kit/adapter-node/nodes/6.js"],"sourcesContent":["\n\nexport const index = 6;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/terminals/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/6.CB8Q6eH8.js\",\"_app/immutable/chunks/BeONA6_G.js\",\"_app/immutable/chunks/tjbnEgXP.js\",\"_app/immutable/chunks/Ona8oofC.js\",\"_app/immutable/chunks/K_aHH2KN.js\",\"_app/immutable/chunks/DREFAyhX.js\",\"_app/immutable/chunks/ClK4wZbC.js\",\"_app/immutable/chunks/CHvUpVYv.js\",\"_app/immutable/chunks/CbqC9BW7.js\",\"_app/immutable/chunks/DSU1n5N_.js\",\"_app/immutable/chunks/CojFyTPp.js\",\"_app/immutable/chunks/CGLrx-H5.js\"];\nexport const stylesheets = [\"_app/immutable/assets/markdown.Dc-OSJWY.css\",\"_app/immutable/assets/Phone.FQEfwCX2.css\",\"_app/immutable/assets/6.eZGZN-BF.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA4C,CAAC,EAAE;AAC1G,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5b,MAAC,WAAW,GAAG,CAAC,6CAA6C,CAAC,0CAA0C,CAAC,sCAAsC;AAC/I,MAAC,KAAK,GAAG;;;;"}
@@ -1,9 +0,0 @@
1
- const index = 7;
2
- let component_cache;
3
- const component = async () => component_cache ??= (await import('./_page.svelte-DskND_G9.js')).default;
4
- const imports = ["_app/immutable/nodes/7.D0CrR6pl.js","_app/immutable/chunks/PPVm8Dsz.js","_app/immutable/chunks/BeONA6_G.js","_app/immutable/chunks/tjbnEgXP.js","_app/immutable/chunks/K_aHH2KN.js","_app/immutable/chunks/Ona8oofC.js","_app/immutable/chunks/DREFAyhX.js","_app/immutable/chunks/ClK4wZbC.js","_app/immutable/chunks/CHvUpVYv.js","_app/immutable/chunks/CdL99jkG.js","_app/immutable/chunks/CojFyTPp.js","_app/immutable/chunks/BygiiMA0.js"];
5
- const stylesheets = ["_app/immutable/assets/markdown.Dc-OSJWY.css","_app/immutable/assets/Phone.FQEfwCX2.css","_app/immutable/assets/ChatView.CsdBAOKx.css","_app/immutable/assets/7.PyEFVv_s.css"];
6
- const fonts = [];
7
-
8
- export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=7-D-oQJsia.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"7-D-oQJsia.js","sources":["../../../.svelte-kit/adapter-node/nodes/7.js"],"sourcesContent":["\n\nexport const index = 7;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/terminals/_id_/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/7.D0CrR6pl.js\",\"_app/immutable/chunks/PPVm8Dsz.js\",\"_app/immutable/chunks/BeONA6_G.js\",\"_app/immutable/chunks/tjbnEgXP.js\",\"_app/immutable/chunks/K_aHH2KN.js\",\"_app/immutable/chunks/Ona8oofC.js\",\"_app/immutable/chunks/DREFAyhX.js\",\"_app/immutable/chunks/ClK4wZbC.js\",\"_app/immutable/chunks/CHvUpVYv.js\",\"_app/immutable/chunks/CdL99jkG.js\",\"_app/immutable/chunks/CojFyTPp.js\",\"_app/immutable/chunks/BygiiMA0.js\"];\nexport const stylesheets = [\"_app/immutable/assets/markdown.Dc-OSJWY.css\",\"_app/immutable/assets/Phone.FQEfwCX2.css\",\"_app/immutable/assets/ChatView.CsdBAOKx.css\",\"_app/immutable/assets/7.PyEFVv_s.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAiD,CAAC,EAAE;AAC/G,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5b,MAAC,WAAW,GAAG,CAAC,6CAA6C,CAAC,0CAA0C,CAAC,6CAA6C,CAAC,sCAAsC;AAC7L,MAAC,KAAK,GAAG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EmptyState-Ci4pSpmY.js","sources":["../../../.svelte-kit/adapter-node/chunks/EmptyState.js"],"sourcesContent":["import { e as escape_html } from \"./index.js\";\nimport { I as Icon } from \"./Icon.js\";\nfunction EmptyState($$renderer, $$props) {\n const { children, description, icon, title } = $$props;\n $$renderer.push(`<div class=\"empty-state\"><div class=\"empty-state-icon\">`);\n Icon($$renderer, { name: icon, size: 24 });\n $$renderer.push(`<!----></div> <h3 class=\"empty-state-title\">${escape_html(title)}</h3> <p class=\"empty-state-description\">${escape_html(description)}</p> `);\n if (children) {\n $$renderer.push(\"<!--[0-->\");\n children($$renderer);\n $$renderer.push(`<!---->`);\n } else {\n $$renderer.push(\"<!--[-1-->\");\n }\n $$renderer.push(`<!--]--></div>`);\n}\nexport {\n EmptyState as E\n};\n"],"names":[],"mappings":";;;AAEA,SAAS,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE;AACzC,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO;AACxD,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,uDAAuD,CAAC,CAAC;AAC5E,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AAC5C,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,4CAA4C,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,yCAAyC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC;AAC/J,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AAChC,IAAI,QAAQ,CAAC,UAAU,CAAC;AACxB,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;AAC9B,EAAE,CAAC,MAAM;AACT,IAAI,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACjC,EAAE;AACF,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;AACnC;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_layout.svelte-CO4f8UD7.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_layout.svelte.js"],"sourcesContent":["import { g as getContext, a as attr_class, e as escape_html, s as stringify, b as store_get, c as unsubscribe_stores } from \"../../chunks/index.js\";\nimport \"@sveltejs/kit/internal\";\nimport \"../../chunks/exports.js\";\nimport \"../../chunks/utils2.js\";\nimport \"@sveltejs/kit/internal/server\";\nimport \"../../chunks/root.js\";\nimport \"../../chunks/state.svelte.js\";\nimport \"../../chunks/markdown.js\";\nconst getStores = () => {\n const stores$1 = getContext(\"__svelte__\");\n return {\n /** @type {typeof page} */\n page: {\n subscribe: stores$1.page.subscribe\n },\n /** @type {typeof navigating} */\n navigating: {\n subscribe: stores$1.navigating.subscribe\n },\n /** @type {typeof updated} */\n updated: stores$1.updated\n };\n};\nconst page = {\n subscribe(fn) {\n const store = getStores().page;\n return store.subscribe(fn);\n }\n};\nfunction StatusBadge($$renderer, $$props) {\n const { status } = $$props;\n function getStatusLabel(s) {\n switch (s) {\n case \"degraded\":\n return \"Degraded\";\n case \"error\":\n return \"Offline\";\n case \"healthy\":\n return \"Online\";\n default:\n return \"Checking\";\n }\n }\n function getStatusClass(s) {\n switch (s) {\n case \"degraded\":\n return \"degraded\";\n case \"error\":\n return \"offline\";\n case \"healthy\":\n return \"online\";\n default:\n return \"\";\n }\n }\n $$renderer.push(`<div${attr_class(`status-badge ${stringify(getStatusClass(status))}`)}><span class=\"status-dot\"></span> <span>${escape_html(getStatusLabel(status))}</span></div>`);\n}\nfunction _layout($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n var $$store_subs;\n const { children } = $$props;\n let systemStatus = \"unknown\";\n $$renderer2.push(`<div class=\"app\"><header class=\"header\"><div class=\"header-content\"><a href=\"/\" class=\"logo\"><img src=\"/app-icon.png\" alt=\"Shooter\" class=\"logo-icon\" width=\"24\" height=\"24\"/> <span class=\"logo-text\">Shooter</span></a> <div class=\"nav-right svelte-12qhfyh\">`);\n StatusBadge($$renderer2, { status: systemStatus });\n $$renderer2.push(`<!----> <button${attr_class(`btn-gear ${stringify(store_get($$store_subs ??= {}, \"$page\", page).url.pathname === \"/config\" ? \"btn-gear-active\" : \"\")}`, \"svelte-12qhfyh\")} aria-label=\"Settings\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"3\"></circle><path d=\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z\"></path></svg></button></div></div></header> <div class=\"content-area svelte-12qhfyh\">`);\n children($$renderer2);\n $$renderer2.push(`<!----></div> <nav class=\"bottom-tabs svelte-12qhfyh\"><div class=\"bottom-tabs-inner svelte-12qhfyh\"><a href=\"/\"${attr_class(\"tab-item svelte-12qhfyh\", void 0, {\n \"active\": store_get($$store_subs ??= {}, \"$page\", page).url.pathname === \"/\" || store_get($$store_subs ??= {}, \"$page\", page).url.pathname.startsWith(\"/project\") || store_get($$store_subs ??= {}, \"$page\", page).url.pathname.startsWith(\"/session\")\n })}><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"></path></svg> <span>Projects</span></a> <a href=\"/terminals\"${attr_class(\"tab-item svelte-12qhfyh\", void 0, {\n \"active\": store_get($$store_subs ??= {}, \"$page\", page).url.pathname.startsWith(\"/terminals\")\n })}><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"4 17 10 11 4 5\"></polyline><line x1=\"12\" y1=\"19\" x2=\"20\" y2=\"19\"></line></svg> <span>Terminals</span></a></div></nav></div>`);\n if ($$store_subs) unsubscribe_stores($$store_subs);\n });\n}\nexport {\n _layout as default\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_page.svelte-3Cc3NMAP.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_page.svelte.js"],"sourcesContent":["import { h as head, d as ensure_array_like } from \"../../chunks/index.js\";\nimport { g as goto } from \"../../chunks/client2.js\";\nimport { E as EmptyState } from \"../../chunks/EmptyState.js\";\nimport { I as Icon } from \"../../chunks/Icon.js\";\nimport \"../../chunks/markdown.js\";\nimport { o as onDestroy } from \"../../chunks/index-server.js\";\nimport { B as Button } from \"../../chunks/Button.js\";\n/* empty css */\nimport { S as Shimmer } from \"../../chunks/Shimmer.js\";\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let projects = [];\n let loading = false;\n onDestroy(() => {\n });\n async function fetchSessions(append = false) {\n {\n return;\n }\n }\n async function forceRefresh() {\n loading = true;\n sessionStorage.removeItem(\"shooter_projects\");\n await fetchSessions();\n }\n function navigateToConfig() {\n void goto();\n }\n head(\"1uha8ag\", $$renderer2, ($$renderer3) => {\n $$renderer3.title(($$renderer4) => {\n $$renderer4.push(`<title>Projects - Shooter</title>`);\n });\n $$renderer3.push(`<meta name=\"description\" content=\"Claude Code sessions across all projects\"/>`);\n });\n $$renderer2.push(`<main class=\"main\"><div class=\"page-header svelte-1uha8ag\"><div class=\"page-header-content svelte-1uha8ag\"><div><h1 class=\"page-title svelte-1uha8ag\">Projects</h1> <p class=\"page-description svelte-1uha8ag\">Claude Code sessions across all projects</p></div> <div class=\"page-actions svelte-1uha8ag\">`);\n Button($$renderer2, {\n classes: \"btn-secondary\",\n onclick: forceRefresh,\n disabled: loading,\n children: ($$renderer3) => {\n Icon($$renderer3, { name: \"refresh\", size: 14 });\n $$renderer3.push(`<!----> Refresh`);\n },\n $$slots: { default: true }\n });\n $$renderer2.push(`<!----></div></div></div> `);\n if (loading && projects.length === 0) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"loading-container\"><!--[-->`);\n const each_array = ensure_array_like(Array(5));\n for (let i = 0, $$length = each_array.length; i < $$length; i++) {\n each_array[i];\n Shimmer($$renderer2, { classes: \"shimmer-card\" });\n }\n $$renderer2.push(`<!--]--></div>`);\n } else {\n $$renderer2.push(\"<!--[1-->\");\n EmptyState($$renderer2, {\n icon: \"settings\",\n title: \"Configuration Required\",\n description: \"Set up your API credentials to start tracking sessions\",\n children: ($$renderer3) => {\n Button($$renderer3, {\n classes: \"btn-primary\",\n onclick: navigateToConfig,\n text: \"Configure Settings\"\n });\n }\n });\n }\n $$renderer2.push(`<!--]--></main>`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_page.svelte-C0p3HsIW.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/session/_id_/_page.svelte.js"],"sourcesContent":["import { h as head, e as escape_html } from \"../../../../chunks/index.js\";\nimport \"../../../../chunks/client.js\";\nimport \"../../../../chunks/markdown.js\";\n/* empty css */\nimport { S as Shimmer } from \"../../../../chunks/Shimmer.js\";\n/* empty css */\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let messages = [];\n head(\"1a2wdfb\", $$renderer2, ($$renderer3) => {\n $$renderer3.title(($$renderer4) => {\n $$renderer4.push(`<title>${escape_html(\"Session\")} - Shooter</title>`);\n });\n $$renderer3.push(`<meta name=\"description\" content=\"Session conversation view\"/>`);\n });\n $$renderer2.push(`<main class=\"main session-page-main svelte-1a2wdfb\">`);\n if (messages.length === 0) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"loading-container\">`);\n Shimmer($$renderer2, { classes: \"shimmer-header\" });\n $$renderer2.push(`<!----> <div class=\"chat-container\">`);\n Shimmer($$renderer2, { classes: \"shimmer-bubble shimmer-bubble-user\" });\n $$renderer2.push(`<!----> `);\n Shimmer($$renderer2, { classes: \"shimmer-bubble shimmer-bubble-assistant\" });\n $$renderer2.push(`<!----> `);\n Shimmer($$renderer2, { classes: \"shimmer-bubble shimmer-bubble-user-short\" });\n $$renderer2.push(`<!----> `);\n Shimmer($$renderer2, { classes: \"shimmer-bubble shimmer-bubble-assistant-wide\" });\n $$renderer2.push(`<!----> `);\n Shimmer($$renderer2, { classes: \"shimmer-bubble shimmer-bubble-assistant-short\" });\n $$renderer2.push(`<!----></div></div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></main>`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAKA;AACA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,IAAI,IAAI,QAAQ,GAAG,EAAE;AACrB,IAAI,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,WAAW,KAAK;AAClD,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC,WAAW,KAAK;AACzC,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAC9E,MAAM,CAAC,CAAC;AACR,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,8DAA8D,CAAC,CAAC;AACxF,IAAI,CAAC,CAAC;AACN,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,oDAAoD,CAAC,CAAC;AAC5E,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/B,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,+BAA+B,CAAC,CAAC;AACzD,MAAM,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;AACzD,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,oCAAoC,CAAC,CAAC;AAC9D,MAAM,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC;AAC7E,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAClC,MAAM,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;AAClF,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAClC,MAAM,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,0CAA0C,EAAE,CAAC;AACnF,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAClC,MAAM,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC;AACvF,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAClC,MAAM,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,+CAA+C,EAAE,CAAC;AACxF,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC;AAC7C,IAAI,CAAC,MAAM;AACX,MAAM,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AACpC,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC;AACvC,EAAE,CAAC,CAAC;AACJ;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_page.svelte-C6bns9aQ.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/project/_page.svelte.js"],"sourcesContent":["import { h as head, d as ensure_array_like, e as escape_html } from \"../../../chunks/index.js\";\nimport \"../../../chunks/client.js\";\nimport { o as onDestroy } from \"../../../chunks/index-server.js\";\nimport \"../../../chunks/markdown.js\";\n/* empty css */\nimport { S as Shimmer } from \"../../../chunks/Shimmer.js\";\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n onDestroy(() => {\n });\n head(\"urn6fi\", $$renderer2, ($$renderer3) => {\n $$renderer3.title(($$renderer4) => {\n $$renderer4.push(`<title>${escape_html(\"Project\")} - Shooter</title>`);\n });\n $$renderer3.push(`<meta name=\"description\" content=\"Project sessions sorted by latest update\"/>`);\n });\n $$renderer2.push(`<main class=\"main\">`);\n {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"loading-container\">`);\n Shimmer($$renderer2, { classes: \"shimmer-header\" });\n $$renderer2.push(`<!----> <!--[-->`);\n const each_array = ensure_array_like(Array(4));\n for (let i = 0, $$length = each_array.length; i < $$length; i++) {\n each_array[i];\n Shimmer($$renderer2, { classes: \"shimmer-card\" });\n }\n $$renderer2.push(`<!--]--></div>`);\n }\n $$renderer2.push(`<!--]--></main>`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":";;;;;;;;;;;;AAMA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,IAAI,SAAS,CAAC,MAAM;AACpB,IAAI,CAAC,CAAC;AACN,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,WAAW,KAAK;AACjD,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC,WAAW,KAAK;AACzC,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAC9E,MAAM,CAAC,CAAC;AACR,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,6EAA6E,CAAC,CAAC;AACvG,IAAI,CAAC,CAAC;AACN,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC;AAC3C,IAAI;AACJ,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,+BAA+B,CAAC,CAAC;AACzD,MAAM,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;AACzD,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC;AAC1C,MAAM,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpD,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;AACvE,QAAQ,UAAU,CAAC,CAAC,CAAC;AACrB,QAAQ,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;AACzD,MAAM;AACN,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;AACxC,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC;AACvC,EAAE,CAAC,CAAC;AACJ;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_page.svelte-CFCONiDK.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/terminals/_page.svelte.js"],"sourcesContent":["import { h as head, d as ensure_array_like } from \"../../../chunks/index.js\";\nimport { g as goto } from \"../../../chunks/client2.js\";\nimport { E as EmptyState } from \"../../../chunks/EmptyState.js\";\nimport { I as Icon } from \"../../../chunks/Icon.js\";\nimport \"../../../chunks/markdown.js\";\nimport { o as onDestroy } from \"../../../chunks/index-server.js\";\nimport { B as Button } from \"../../../chunks/Button.js\";\n/* empty css */\nimport { S as Shimmer } from \"../../../chunks/Shimmer.js\";\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const CACHE_KEY = \"shooter_terminals\";\n let terminals = [];\n let loading = false;\n onDestroy(() => {\n });\n async function fetchTerminals() {\n {\n return;\n }\n }\n async function forceRefresh() {\n loading = true;\n sessionStorage.removeItem(CACHE_KEY);\n await fetchTerminals();\n }\n function navigateToConfig() {\n void goto();\n }\n function handleNewTerminal() {\n }\n head(\"1ewpmn2\", $$renderer2, ($$renderer3) => {\n $$renderer3.title(($$renderer4) => {\n $$renderer4.push(`<title>Terminals - Shooter</title>`);\n });\n $$renderer3.push(`<meta name=\"description\" content=\"Active terminal sessions on this machine\" class=\"svelte-1ewpmn2\"/>`);\n });\n $$renderer2.push(`<main class=\"main svelte-1ewpmn2\"><div class=\"page-header svelte-1ewpmn2\"><div class=\"page-header-content svelte-1ewpmn2\"><div class=\"svelte-1ewpmn2\"><h1 class=\"page-title svelte-1ewpmn2\">Terminals</h1> <p class=\"page-description svelte-1ewpmn2\">Active terminal sessions on this machine</p></div> <div class=\"page-actions svelte-1ewpmn2\">`);\n Button($$renderer2, {\n classes: \"btn-secondary\",\n onclick: forceRefresh,\n disabled: loading,\n children: ($$renderer3) => {\n Icon($$renderer3, { name: \"refresh\", size: 14 });\n $$renderer3.push(`<!----> Refresh`);\n },\n $$slots: { default: true }\n });\n $$renderer2.push(`<!----> `);\n Button($$renderer2, {\n classes: \"btn-primary\",\n onclick: handleNewTerminal,\n children: ($$renderer3) => {\n $$renderer3.push(`<span class=\"plus-icon svelte-1ewpmn2\">+</span> New Terminal`);\n },\n $$slots: { default: true }\n });\n $$renderer2.push(`<!----></div></div></div> `);\n if (loading && terminals.length === 0) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"loading-container svelte-1ewpmn2\"><!--[-->`);\n const each_array = ensure_array_like(Array(4));\n for (let i = 0, $$length = each_array.length; i < $$length; i++) {\n each_array[i];\n Shimmer($$renderer2, { classes: \"shimmer-card\" });\n }\n $$renderer2.push(`<!--]--></div>`);\n } else {\n $$renderer2.push(\"<!--[1-->\");\n EmptyState($$renderer2, {\n icon: \"settings\",\n title: \"Configuration Required\",\n description: \"Set up your API credentials to view terminal sessions\",\n children: ($$renderer3) => {\n Button($$renderer3, {\n classes: \"btn-primary\",\n onclick: navigateToConfig,\n text: \"Configure Settings\"\n });\n }\n });\n }\n $$renderer2.push(`<!--]--></main> `);\n {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]-->`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"}