@juspay/shooter 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (488) hide show
  1. package/.claude/hooks/notifier.cjs +117 -33
  2. package/.claude/settings.json +14 -14
  3. package/README.md +116 -84
  4. package/bin/shooter.cjs +471 -102
  5. package/build/client/_app/immutable/assets/{0.CM9Hl6d-.css → 0.BhZOCxO4.css} +1 -1
  6. package/build/client/_app/immutable/assets/0.BhZOCxO4.css.br +0 -0
  7. package/build/client/_app/immutable/assets/0.BhZOCxO4.css.gz +0 -0
  8. package/build/client/_app/immutable/assets/1.BYutk3aU.css +1 -0
  9. package/build/client/_app/immutable/assets/1.BYutk3aU.css.br +0 -0
  10. package/build/client/_app/immutable/assets/1.BYutk3aU.css.gz +0 -0
  11. package/build/client/_app/immutable/assets/2.CAShZ7lQ.css.gz +0 -0
  12. package/build/client/_app/immutable/assets/3.DGDHCVnW.css +1 -0
  13. package/build/client/_app/immutable/assets/3.DGDHCVnW.css.br +0 -0
  14. package/build/client/_app/immutable/assets/3.DGDHCVnW.css.gz +0 -0
  15. package/build/client/_app/immutable/assets/4.BFUut--w.css +1 -0
  16. package/build/client/_app/immutable/assets/4.BFUut--w.css.br +0 -0
  17. package/build/client/_app/immutable/assets/4.BFUut--w.css.gz +0 -0
  18. package/build/client/_app/immutable/assets/5.BTOx7yt7.css +1 -0
  19. package/build/client/_app/immutable/assets/5.BTOx7yt7.css.br +0 -0
  20. package/build/client/_app/immutable/assets/5.BTOx7yt7.css.gz +0 -0
  21. package/build/client/_app/immutable/assets/6.eZGZN-BF.css +1 -0
  22. package/build/client/_app/immutable/assets/6.eZGZN-BF.css.br +0 -0
  23. package/build/client/_app/immutable/assets/6.eZGZN-BF.css.gz +0 -0
  24. package/build/client/_app/immutable/assets/7.DwS5ZHBh.css +1 -0
  25. package/build/client/_app/immutable/assets/7.DwS5ZHBh.css.br +0 -0
  26. package/build/client/_app/immutable/assets/7.DwS5ZHBh.css.gz +0 -0
  27. package/build/client/_app/immutable/assets/ChatView.CwWbzIL-.css +1 -0
  28. package/build/client/_app/immutable/assets/ChatView.CwWbzIL-.css.br +0 -0
  29. package/build/client/_app/immutable/assets/ChatView.CwWbzIL-.css.gz +0 -0
  30. package/build/client/_app/immutable/assets/Phone.FQEfwCX2.css +1 -0
  31. package/build/client/_app/immutable/assets/Phone.FQEfwCX2.css.br +0 -0
  32. package/build/client/_app/immutable/assets/Phone.FQEfwCX2.css.gz +0 -0
  33. package/build/client/_app/immutable/assets/markdown.Dc-OSJWY.css +1 -0
  34. package/build/client/_app/immutable/assets/markdown.Dc-OSJWY.css.br +0 -0
  35. package/build/client/_app/immutable/assets/markdown.Dc-OSJWY.css.gz +0 -0
  36. package/build/client/_app/immutable/assets/xterm.DFuMZ0ql.css.gz +0 -0
  37. package/build/client/_app/immutable/chunks/B-K5Sh65.js +1 -0
  38. package/build/client/_app/immutable/chunks/B-K5Sh65.js.br +0 -0
  39. package/build/client/_app/immutable/chunks/B-K5Sh65.js.gz +0 -0
  40. package/build/client/_app/immutable/chunks/B5NAKyil.js +20 -0
  41. package/build/client/_app/immutable/chunks/B5NAKyil.js.br +0 -0
  42. package/build/client/_app/immutable/chunks/B5NAKyil.js.gz +0 -0
  43. package/build/client/_app/immutable/chunks/B8XegpSE.js +1 -0
  44. package/build/client/_app/immutable/chunks/B8XegpSE.js.br +0 -0
  45. package/build/client/_app/immutable/chunks/B8XegpSE.js.gz +0 -0
  46. package/build/client/_app/immutable/chunks/B8zoBsv3.js +6 -0
  47. package/build/client/_app/immutable/chunks/B8zoBsv3.js.br +0 -0
  48. package/build/client/_app/immutable/chunks/B8zoBsv3.js.gz +0 -0
  49. package/build/client/_app/immutable/chunks/BLszSzTT.js +1 -0
  50. package/build/client/_app/immutable/chunks/BLszSzTT.js.br +0 -0
  51. package/build/client/_app/immutable/chunks/BLszSzTT.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/BOYo8yTr.js +1 -0
  53. package/build/client/_app/immutable/chunks/BOYo8yTr.js.br +0 -0
  54. package/build/client/_app/immutable/chunks/BOYo8yTr.js.gz +0 -0
  55. package/build/client/_app/immutable/chunks/BTGVxaYV.js.gz +0 -0
  56. package/build/client/_app/immutable/chunks/BYqGCrTe.js +1 -0
  57. package/build/client/_app/immutable/chunks/BYqGCrTe.js.br +0 -0
  58. package/build/client/_app/immutable/chunks/BYqGCrTe.js.gz +0 -0
  59. package/build/client/_app/immutable/chunks/BlxrFPDK.js.gz +0 -0
  60. package/build/client/_app/immutable/chunks/Bu1aqm5j.js +1 -0
  61. package/build/client/_app/immutable/chunks/Bu1aqm5j.js.br +0 -0
  62. package/build/client/_app/immutable/chunks/Bu1aqm5j.js.gz +0 -0
  63. package/build/client/_app/immutable/chunks/C4mLaWWx.js +1 -0
  64. package/build/client/_app/immutable/chunks/C4mLaWWx.js.br +0 -0
  65. package/build/client/_app/immutable/chunks/C4mLaWWx.js.gz +0 -0
  66. package/build/client/_app/immutable/chunks/CQjSATpv.js +61 -0
  67. package/build/client/_app/immutable/chunks/CQjSATpv.js.br +0 -0
  68. package/build/client/_app/immutable/chunks/CQjSATpv.js.gz +0 -0
  69. package/build/client/_app/immutable/chunks/CSoRdFvv.js +1 -0
  70. package/build/client/_app/immutable/chunks/CSoRdFvv.js.br +0 -0
  71. package/build/client/_app/immutable/chunks/CSoRdFvv.js.gz +0 -0
  72. package/build/client/_app/immutable/chunks/CZHsSL_X.js +1 -0
  73. package/build/client/_app/immutable/chunks/CZHsSL_X.js.br +0 -0
  74. package/build/client/_app/immutable/chunks/CZHsSL_X.js.gz +0 -0
  75. package/build/client/_app/immutable/chunks/DLu6yJIZ.js.gz +0 -0
  76. package/build/client/_app/immutable/chunks/DSU1n5N_.js +1 -0
  77. package/build/client/_app/immutable/chunks/DSU1n5N_.js.br +0 -0
  78. package/build/client/_app/immutable/chunks/DSU1n5N_.js.gz +0 -0
  79. package/build/client/_app/immutable/chunks/DVkn4r72.js +1 -0
  80. package/build/client/_app/immutable/chunks/DVkn4r72.js.br +0 -0
  81. package/build/client/_app/immutable/chunks/DVkn4r72.js.gz +0 -0
  82. package/build/client/_app/immutable/chunks/DjsDGxCa.js +41 -0
  83. package/build/client/_app/immutable/chunks/DjsDGxCa.js.br +0 -0
  84. package/build/client/_app/immutable/chunks/DjsDGxCa.js.gz +0 -0
  85. package/build/client/_app/immutable/chunks/PPVm8Dsz.js.gz +0 -0
  86. package/build/client/_app/immutable/chunks/UJOiqIYE.js +1 -0
  87. package/build/client/_app/immutable/chunks/UJOiqIYE.js.br +0 -0
  88. package/build/client/_app/immutable/chunks/UJOiqIYE.js.gz +0 -0
  89. package/build/client/_app/immutable/chunks/r0JawsZc.js +2 -0
  90. package/build/client/_app/immutable/chunks/r0JawsZc.js.br +0 -0
  91. package/build/client/_app/immutable/chunks/r0JawsZc.js.gz +0 -0
  92. package/build/client/_app/immutable/entry/app.Z3zMnuSx.js +2 -0
  93. package/build/client/_app/immutable/entry/app.Z3zMnuSx.js.br +0 -0
  94. package/build/client/_app/immutable/entry/app.Z3zMnuSx.js.gz +0 -0
  95. package/build/client/_app/immutable/entry/start.Dd-gIP4y.js +1 -0
  96. package/build/client/_app/immutable/entry/start.Dd-gIP4y.js.br +2 -0
  97. package/build/client/_app/immutable/entry/start.Dd-gIP4y.js.gz +0 -0
  98. package/build/client/_app/immutable/nodes/0.D2YR8tTD.js +1 -0
  99. package/build/client/_app/immutable/nodes/0.D2YR8tTD.js.br +0 -0
  100. package/build/client/_app/immutable/nodes/0.D2YR8tTD.js.gz +0 -0
  101. package/build/client/_app/immutable/nodes/1.B3m6rO4C.js +1 -0
  102. package/build/client/_app/immutable/nodes/1.B3m6rO4C.js.br +0 -0
  103. package/build/client/_app/immutable/nodes/1.B3m6rO4C.js.gz +0 -0
  104. package/build/client/_app/immutable/nodes/2.CyRB2euU.js +1 -0
  105. package/build/client/_app/immutable/nodes/2.CyRB2euU.js.br +0 -0
  106. package/build/client/_app/immutable/nodes/2.CyRB2euU.js.gz +0 -0
  107. package/build/client/_app/immutable/nodes/3.3yohCM25.js +3 -0
  108. package/build/client/_app/immutable/nodes/3.3yohCM25.js.br +0 -0
  109. package/build/client/_app/immutable/nodes/3.3yohCM25.js.gz +0 -0
  110. package/build/client/_app/immutable/nodes/4.DEAcwl7l.js +1 -0
  111. package/build/client/_app/immutable/nodes/4.DEAcwl7l.js.br +0 -0
  112. package/build/client/_app/immutable/nodes/4.DEAcwl7l.js.gz +0 -0
  113. package/build/client/_app/immutable/nodes/5.C6bLGWQR.js +4 -0
  114. package/build/client/_app/immutable/nodes/5.C6bLGWQR.js.br +0 -0
  115. package/build/client/_app/immutable/nodes/5.C6bLGWQR.js.gz +0 -0
  116. package/build/client/_app/immutable/nodes/6.ByTzlA2D.js +2 -0
  117. package/build/client/_app/immutable/nodes/6.ByTzlA2D.js.br +0 -0
  118. package/build/client/_app/immutable/nodes/6.ByTzlA2D.js.gz +0 -0
  119. package/build/client/_app/immutable/nodes/7.BPMfwzd2.js +2 -0
  120. package/build/client/_app/immutable/nodes/7.BPMfwzd2.js.br +0 -0
  121. package/build/client/_app/immutable/nodes/7.BPMfwzd2.js.gz +0 -0
  122. package/build/client/_app/version.json +1 -1
  123. package/build/client/_app/version.json.br +0 -0
  124. package/build/client/_app/version.json.gz +0 -0
  125. package/build/client/favicon.svg.gz +0 -0
  126. package/build/client/manifest.json +13 -0
  127. package/build/client/manifest.json.br +0 -0
  128. package/build/client/manifest.json.gz +0 -0
  129. package/build/pty-holder.cjs +37 -8
  130. package/build/server/chunks/0-Vk38tI2J.js +9 -0
  131. package/build/server/chunks/0-Vk38tI2J.js.map +1 -0
  132. package/build/server/chunks/1-BvYQX5MR.js +9 -0
  133. package/build/server/chunks/1-BvYQX5MR.js.map +1 -0
  134. package/build/server/chunks/2-Cl7R4Qk2.js +9 -0
  135. package/build/server/chunks/2-Cl7R4Qk2.js.map +1 -0
  136. package/build/server/chunks/3-Ck7ewhOX.js +9 -0
  137. package/build/server/chunks/3-Ck7ewhOX.js.map +1 -0
  138. package/build/server/chunks/4-CnDeRm2Z.js +9 -0
  139. package/build/server/chunks/4-CnDeRm2Z.js.map +1 -0
  140. package/build/server/chunks/5-IxitzEvN.js +9 -0
  141. package/build/server/chunks/5-IxitzEvN.js.map +1 -0
  142. package/build/server/chunks/6-CyZ3r1iS.js +9 -0
  143. package/build/server/chunks/6-CyZ3r1iS.js.map +1 -0
  144. package/build/server/chunks/7-BmI7du46.js +9 -0
  145. package/build/server/chunks/7-BmI7du46.js.map +1 -0
  146. package/build/server/chunks/Button-Cs1aE6ka.js +80 -0
  147. package/build/server/chunks/Button-Cs1aE6ka.js.map +1 -0
  148. package/build/server/chunks/EmptyState-DDFH1K8g.js +26 -0
  149. package/build/server/chunks/EmptyState-DDFH1K8g.js.map +1 -0
  150. package/build/server/chunks/Icon-CEUrotA6.js +36 -0
  151. package/build/server/chunks/Icon-CEUrotA6.js.map +1 -0
  152. package/build/server/chunks/Shimmer-DB8W1zt6.js +10 -0
  153. package/build/server/chunks/Shimmer-DB8W1zt6.js.map +1 -0
  154. package/build/server/chunks/_error.svelte-uCOJNxvr.js +39 -0
  155. package/build/server/chunks/_error.svelte-uCOJNxvr.js.map +1 -0
  156. package/build/server/chunks/_layout.svelte-CtWmEJwe.js +56 -0
  157. package/build/server/chunks/_layout.svelte-CtWmEJwe.js.map +1 -0
  158. package/build/server/chunks/_page.svelte-BcZaKdX9.js +45 -0
  159. package/build/server/chunks/_page.svelte-BcZaKdX9.js.map +1 -0
  160. package/build/server/chunks/_page.svelte-BdYynOck.js +85 -0
  161. package/build/server/chunks/_page.svelte-BdYynOck.js.map +1 -0
  162. package/build/server/chunks/_page.svelte-BgevQjq1.js +101 -0
  163. package/build/server/chunks/_page.svelte-BgevQjq1.js.map +1 -0
  164. package/build/server/chunks/_page.svelte-CVq6tRb3.js +550 -0
  165. package/build/server/chunks/_page.svelte-CVq6tRb3.js.map +1 -0
  166. package/build/server/chunks/_page.svelte-CxWcQ0Am.js +651 -0
  167. package/build/server/chunks/_page.svelte-CxWcQ0Am.js.map +1 -0
  168. package/build/server/chunks/_page.svelte-DO4oa_LY.js +44 -0
  169. package/build/server/chunks/_page.svelte-DO4oa_LY.js.map +1 -0
  170. package/build/server/chunks/{_server.ts-CbDRDIoP.js → _server.ts-BStnNIcq.js} +9 -11
  171. package/build/server/chunks/_server.ts-BStnNIcq.js.map +1 -0
  172. package/build/server/chunks/{_server.ts-DRVbgm6k.js → _server.ts-CAxsWKvS.js} +22 -25
  173. package/build/server/chunks/_server.ts-CAxsWKvS.js.map +1 -0
  174. package/build/server/chunks/{_server.ts-CPa6DgIt.js → _server.ts-COu0vNpd.js} +6 -6
  175. package/build/server/chunks/_server.ts-COu0vNpd.js.map +1 -0
  176. package/build/server/chunks/{_server.ts-C29xzfaw.js → _server.ts-CTpcLUH8.js} +10 -10
  177. package/build/server/chunks/_server.ts-CTpcLUH8.js.map +1 -0
  178. package/build/server/chunks/{_server.ts-D4MNi4cD.js → _server.ts-Cf84YIaW.js} +3 -3
  179. package/build/server/chunks/{_server.ts-D4MNi4cD.js.map → _server.ts-Cf84YIaW.js.map} +1 -1
  180. package/build/server/chunks/{_server.ts-BL2FGb5Z.js → _server.ts-Ch-6iOHp.js} +99 -53
  181. package/build/server/chunks/_server.ts-Ch-6iOHp.js.map +1 -0
  182. package/build/server/chunks/_server.ts-CtH0dhUp.js +71 -0
  183. package/build/server/chunks/_server.ts-CtH0dhUp.js.map +1 -0
  184. package/build/server/chunks/_server.ts-DB_Kg97c.js +73 -0
  185. package/build/server/chunks/_server.ts-DB_Kg97c.js.map +1 -0
  186. package/build/server/chunks/{_server.ts-DfajWaqh.js → _server.ts-DV8zTCF9.js} +7 -9
  187. package/build/server/chunks/_server.ts-DV8zTCF9.js.map +1 -0
  188. package/build/server/chunks/_server.ts-DYpJImqd.js +99 -0
  189. package/build/server/chunks/_server.ts-DYpJImqd.js.map +1 -0
  190. package/build/server/chunks/{_server.ts-ColfDHW8.js → _server.ts-DYvb9ijZ.js} +21 -10
  191. package/build/server/chunks/_server.ts-DYvb9ijZ.js.map +1 -0
  192. package/build/server/chunks/{_server.ts-Cv_OrRuL.js → _server.ts-Deok2y88.js} +209 -34
  193. package/build/server/chunks/_server.ts-Deok2y88.js.map +1 -0
  194. package/build/server/chunks/{_server.ts-y9-WYDMa.js → _server.ts-WhTJBEJy.js} +5 -4
  195. package/build/server/chunks/{_server.ts-y9-WYDMa.js.map → _server.ts-WhTJBEJy.js.map} +1 -1
  196. package/build/server/chunks/{_server.ts-BjOJsoy4.js → _server.ts-XzT2UHM1.js} +6 -5
  197. package/build/server/chunks/_server.ts-XzT2UHM1.js.map +1 -0
  198. package/build/server/chunks/{_server.ts-BgdjBZco.js → _server.ts-tSpgyl1D.js} +7 -5
  199. package/build/server/chunks/_server.ts-tSpgyl1D.js.map +1 -0
  200. package/build/server/chunks/{_server.ts-BihKSdj_.js → _server.ts-vekTmWAx.js} +8 -8
  201. package/build/server/chunks/_server.ts-vekTmWAx.js.map +1 -0
  202. package/build/server/chunks/{auth-CEgFis71.js → auth-DeCdZ83n.js} +2 -2
  203. package/build/server/chunks/{auth-CEgFis71.js.map → auth-DeCdZ83n.js.map} +1 -1
  204. package/build/server/chunks/client-BdGHe_hY.js +25 -0
  205. package/build/server/chunks/client-BdGHe_hY.js.map +1 -0
  206. package/build/server/chunks/client2-CCBGA-2V.js +7 -0
  207. package/build/server/chunks/client2-CCBGA-2V.js.map +1 -0
  208. package/build/server/chunks/error-DDXB3duW.js +12 -0
  209. package/build/server/chunks/error-DDXB3duW.js.map +1 -0
  210. package/build/server/chunks/{exports-CJ0Q5XmL.js → index-DwaY1cAm.js} +1111 -1634
  211. package/build/server/chunks/index-DwaY1cAm.js.map +1 -0
  212. package/build/server/chunks/index-server-CrDaL06Y.js +9 -0
  213. package/build/server/chunks/index-server-CrDaL06Y.js.map +1 -0
  214. package/build/server/chunks/index2-CgclKpUj.js +58 -0
  215. package/build/server/chunks/index2-CgclKpUj.js.map +1 -0
  216. package/build/server/chunks/{library-apns-BHxLmuIx.js → library-apns-BqJbvSKh.js} +4 -4
  217. package/build/server/chunks/library-apns-BqJbvSKh.js.map +1 -0
  218. package/build/server/chunks/markdown-W_mTBct0.js +8 -0
  219. package/build/server/chunks/markdown-W_mTBct0.js.map +1 -0
  220. package/build/server/chunks/opencode-db-path-DcfhJtJy.js +15 -0
  221. package/build/server/chunks/opencode-db-path-DcfhJtJy.js.map +1 -0
  222. package/build/server/chunks/{pty-manager-C0FhBiVq.js → pty-manager-BQVB7IVj.js} +155 -326
  223. package/build/server/chunks/pty-manager-BQVB7IVj.js.map +1 -0
  224. package/build/server/chunks/root-DDSnEAZv.js +1171 -0
  225. package/build/server/chunks/root-DDSnEAZv.js.map +1 -0
  226. package/build/server/chunks/{shared-server-BDY8jh20.js → shared-server-sSGG17Df.js} +2 -3
  227. package/build/server/chunks/{shared-server-BDY8jh20.js.map → shared-server-sSGG17Df.js.map} +1 -1
  228. package/build/server/chunks/state.svelte-hBbXlUak.js +11 -0
  229. package/build/server/chunks/state.svelte-hBbXlUak.js.map +1 -0
  230. package/build/server/chunks/stores-DHNzYNpX.js +28 -0
  231. package/build/server/chunks/stores-DHNzYNpX.js.map +1 -0
  232. package/build/server/index.js +1085 -2242
  233. package/build/server/index.js.map +1 -1
  234. package/build/server/manifest.js +39 -25
  235. package/build/server/manifest.js.map +1 -1
  236. package/package.json +32 -9
  237. package/scripts/fix-generated-types.sh +37 -0
  238. package/scripts/homebrew/shooter.rb +51 -0
  239. package/scripts/install.sh +348 -186
  240. package/scripts/setup.cjs +215 -45
  241. package/server.ts +114 -71
  242. package/src/app.css +12 -3
  243. package/src/app.d.ts +13 -20
  244. package/src/app.html +3 -2
  245. package/src/generated/types/API.ts +280 -0
  246. package/src/generated/types/APN.ts +186 -203
  247. package/src/generated/types/CLI.ts +18 -25
  248. package/src/generated/types/Client.ts +589 -0
  249. package/src/generated/types/Config.ts +53 -0
  250. package/src/generated/types/Holder.ts +638 -0
  251. package/src/generated/types/JWT.ts +39 -50
  252. package/src/generated/types/Notification.ts +426 -0
  253. package/src/generated/types/OpenCode.ts +356 -0
  254. package/src/generated/types/Sessions.ts +570 -0
  255. package/src/generated/types/Terminal.ts +2184 -2071
  256. package/src/generated/types/WsProtocol.ts +2004 -0
  257. package/src/generated/types/index.ts +9 -3
  258. package/src/lib/env.ts +29 -0
  259. package/src/lib/modules/client/common/cache.ts +10 -2
  260. package/src/lib/modules/client/common/config-guard.ts +37 -5
  261. package/src/lib/modules/client/common/error.ts +10 -0
  262. package/src/lib/modules/client/common/index.ts +6 -5
  263. package/src/lib/modules/client/common/markdown.ts +22 -1
  264. package/src/lib/modules/client/common/native-bridge.ts +28 -20
  265. package/src/lib/modules/client/common/time.ts +13 -11
  266. package/src/lib/modules/client/terminal/ChatView.svelte +354 -74
  267. package/src/lib/modules/client/terminal/CommandPalette.svelte +3 -2
  268. package/src/lib/modules/client/terminal/ConnectionStatus.svelte +7 -1
  269. package/src/lib/modules/client/terminal/LaunchSheet.svelte +147 -84
  270. package/src/lib/modules/client/terminal/QuickKeys.svelte +3 -1
  271. package/src/lib/modules/client/terminal/ShortcutsHelp.svelte +2 -5
  272. package/src/lib/modules/client/terminal/keyboard-shortcuts.ts +27 -24
  273. package/src/lib/modules/client/terminal/xterm-wrapper.ts +74 -45
  274. package/src/lib/modules/server/apn/library-apns.ts +3 -2
  275. package/src/lib/modules/server/apn/notification-history.ts +2 -13
  276. package/src/lib/modules/server/apn/notification-sessions.ts +3 -13
  277. package/src/lib/modules/server/apn/pending-requests.ts +3 -8
  278. package/src/lib/modules/server/apn/types.ts +5 -4
  279. package/src/lib/modules/server/cli/index.ts +3 -2
  280. package/src/lib/modules/server/fcm/fcm-service.ts +8 -6
  281. package/src/lib/modules/server/sessions/jsonl-parser.ts +3 -3
  282. package/src/lib/modules/server/sessions/jsonl-reader.ts +86 -26
  283. package/src/lib/modules/server/sessions/opencode-db-path.ts +26 -0
  284. package/src/lib/modules/server/sessions/opencode-reader.ts +13 -15
  285. package/src/lib/modules/server/sessions/process-detector.ts +103 -0
  286. package/src/lib/modules/server/sessions/types.ts +11 -22
  287. package/src/lib/modules/server/terminal/holder-client.ts +272 -248
  288. package/src/lib/modules/server/terminal/opencode-watcher.ts +547 -556
  289. package/src/lib/modules/server/terminal/pty-holder.cjs +37 -8
  290. package/src/lib/modules/server/terminal/pty-manager.ts +157 -115
  291. package/src/lib/modules/server/terminal/session-watcher.ts +6 -4
  292. package/src/lib/modules/server/terminal/terminal-store.ts +131 -128
  293. package/src/lib/modules/server/utils/error.ts +9 -0
  294. package/src/lib/modules/server/ws/events-handler.ts +12 -6
  295. package/src/lib/modules/server/ws/keepalive.ts +86 -69
  296. package/src/lib/modules/server/ws/server.ts +43 -37
  297. package/src/lib/modules/server/ws/session-handler.ts +332 -147
  298. package/src/lib/modules/server/ws/terminal-handler.ts +29 -17
  299. package/src/lib/modules/server/ws/ticket-store.ts +29 -26
  300. package/src/lib/theme.css +30 -0
  301. package/src/lib/types/config.ts +1 -6
  302. package/src/routes/+error.svelte +94 -0
  303. package/src/routes/+layout.svelte +66 -31
  304. package/src/routes/+page.svelte +25 -22
  305. package/src/routes/api/debug/+server.ts +3 -1
  306. package/src/routes/api/device-token/+server.ts +60 -60
  307. package/src/routes/api/health/+server.ts +81 -73
  308. package/src/routes/api/notify/+server.ts +115 -68
  309. package/src/routes/api/qr-config/+server.ts +30 -32
  310. package/src/routes/api/response/+server.ts +9 -4
  311. package/src/routes/api/sessions/+server.ts +15 -5
  312. package/src/routes/api/sessions/connect/+server.ts +125 -0
  313. package/src/routes/api/sessions/detect/+server.ts +27 -0
  314. package/src/routes/api/terminals/+server.ts +26 -24
  315. package/src/routes/api/terminals/[id]/+server.ts +13 -7
  316. package/src/routes/api/terminals/[id]/paste-image/+server.ts +54 -52
  317. package/src/routes/api/terminals/[id]/resize/+server.ts +6 -3
  318. package/src/routes/api/webhook/+server.ts +8 -10
  319. package/src/routes/api/ws-status/+server.ts +7 -5
  320. package/src/routes/api/ws-ticket/+server.ts +42 -41
  321. package/src/routes/config/+page.svelte +149 -75
  322. package/src/routes/project/+page.svelte +165 -35
  323. package/src/routes/session/[id]/+page.svelte +479 -283
  324. package/src/routes/terminals/+page.svelte +58 -45
  325. package/src/routes/terminals/[id]/+page.svelte +223 -91
  326. package/build/client/_app/immutable/assets/0.CM9Hl6d-.css.br +0 -0
  327. package/build/client/_app/immutable/assets/0.CM9Hl6d-.css.gz +0 -0
  328. package/build/client/_app/immutable/assets/3.C0uFg0IS.css +0 -1
  329. package/build/client/_app/immutable/assets/3.C0uFg0IS.css.br +0 -0
  330. package/build/client/_app/immutable/assets/3.C0uFg0IS.css.gz +0 -0
  331. package/build/client/_app/immutable/assets/4.cJuCkJKZ.css +0 -1
  332. package/build/client/_app/immutable/assets/4.cJuCkJKZ.css.br +0 -0
  333. package/build/client/_app/immutable/assets/4.cJuCkJKZ.css.gz +0 -0
  334. package/build/client/_app/immutable/assets/5.DRjApZQW.css +0 -1
  335. package/build/client/_app/immutable/assets/5.DRjApZQW.css.br +0 -0
  336. package/build/client/_app/immutable/assets/5.DRjApZQW.css.gz +0 -0
  337. package/build/client/_app/immutable/assets/6.AraZrY8I.css +0 -1
  338. package/build/client/_app/immutable/assets/6.AraZrY8I.css.br +0 -0
  339. package/build/client/_app/immutable/assets/6.AraZrY8I.css.gz +0 -0
  340. package/build/client/_app/immutable/assets/7.BCJ1IuMx.css +0 -1
  341. package/build/client/_app/immutable/assets/7.BCJ1IuMx.css.br +0 -0
  342. package/build/client/_app/immutable/assets/7.BCJ1IuMx.css.gz +0 -0
  343. package/build/client/_app/immutable/assets/ChatView.CsdBAOKx.css +0 -1
  344. package/build/client/_app/immutable/assets/ChatView.CsdBAOKx.css.br +0 -0
  345. package/build/client/_app/immutable/assets/ChatView.CsdBAOKx.css.gz +0 -0
  346. package/build/client/_app/immutable/assets/markdown.B0b5w2tq.css +0 -1
  347. package/build/client/_app/immutable/assets/markdown.B0b5w2tq.css.br +0 -0
  348. package/build/client/_app/immutable/assets/markdown.B0b5w2tq.css.gz +0 -0
  349. package/build/client/_app/immutable/chunks/BNJphC1q.js +0 -56
  350. package/build/client/_app/immutable/chunks/BNJphC1q.js.br +0 -0
  351. package/build/client/_app/immutable/chunks/BNJphC1q.js.gz +0 -0
  352. package/build/client/_app/immutable/chunks/Bvk7mfPM.js +0 -1
  353. package/build/client/_app/immutable/chunks/Bvk7mfPM.js.br +0 -0
  354. package/build/client/_app/immutable/chunks/Bvk7mfPM.js.gz +0 -0
  355. package/build/client/_app/immutable/chunks/CAokzuPQ.js +0 -1
  356. package/build/client/_app/immutable/chunks/CAokzuPQ.js.br +0 -0
  357. package/build/client/_app/immutable/chunks/CAokzuPQ.js.gz +0 -0
  358. package/build/client/_app/immutable/chunks/CGLrx-H5.js +0 -1
  359. package/build/client/_app/immutable/chunks/CGLrx-H5.js.br +0 -0
  360. package/build/client/_app/immutable/chunks/CGLrx-H5.js.gz +0 -0
  361. package/build/client/_app/immutable/chunks/CgCpWzEA.js +0 -1
  362. package/build/client/_app/immutable/chunks/CgCpWzEA.js.br +0 -0
  363. package/build/client/_app/immutable/chunks/CgCpWzEA.js.gz +0 -0
  364. package/build/client/_app/immutable/chunks/Cjwk_cGO.js +0 -6
  365. package/build/client/_app/immutable/chunks/Cjwk_cGO.js.br +0 -0
  366. package/build/client/_app/immutable/chunks/Cjwk_cGO.js.gz +0 -0
  367. package/build/client/_app/immutable/chunks/CtQ8EED1.js +0 -11
  368. package/build/client/_app/immutable/chunks/CtQ8EED1.js.br +0 -0
  369. package/build/client/_app/immutable/chunks/CtQ8EED1.js.gz +0 -0
  370. package/build/client/_app/immutable/chunks/DERQCisl.js +0 -1
  371. package/build/client/_app/immutable/chunks/DERQCisl.js.br +0 -0
  372. package/build/client/_app/immutable/chunks/DERQCisl.js.gz +0 -0
  373. package/build/client/_app/immutable/chunks/DKrg8TQs.js +0 -1
  374. package/build/client/_app/immutable/chunks/DKrg8TQs.js.br +0 -0
  375. package/build/client/_app/immutable/chunks/DKrg8TQs.js.gz +0 -0
  376. package/build/client/_app/immutable/chunks/Dkkpz_4D.js +0 -126
  377. package/build/client/_app/immutable/chunks/Dkkpz_4D.js.br +0 -0
  378. package/build/client/_app/immutable/chunks/Dkkpz_4D.js.gz +0 -0
  379. package/build/client/_app/immutable/chunks/DoczjQhA.js +0 -1
  380. package/build/client/_app/immutable/chunks/DoczjQhA.js.br +0 -0
  381. package/build/client/_app/immutable/chunks/DoczjQhA.js.gz +0 -0
  382. package/build/client/_app/immutable/chunks/RpcNruLP.js +0 -2
  383. package/build/client/_app/immutable/chunks/RpcNruLP.js.br +0 -0
  384. package/build/client/_app/immutable/chunks/RpcNruLP.js.gz +0 -0
  385. package/build/client/_app/immutable/chunks/a-St0Zwo.js +0 -1
  386. package/build/client/_app/immutable/chunks/a-St0Zwo.js.br +0 -0
  387. package/build/client/_app/immutable/chunks/a-St0Zwo.js.gz +0 -0
  388. package/build/client/_app/immutable/chunks/bo70OQUZ.js +0 -1
  389. package/build/client/_app/immutable/chunks/bo70OQUZ.js.br +0 -0
  390. package/build/client/_app/immutable/chunks/bo70OQUZ.js.gz +0 -0
  391. package/build/client/_app/immutable/entry/app.QvGgdvTI.js +0 -2
  392. package/build/client/_app/immutable/entry/app.QvGgdvTI.js.br +0 -0
  393. package/build/client/_app/immutable/entry/app.QvGgdvTI.js.gz +0 -0
  394. package/build/client/_app/immutable/entry/start.BntDNRMC.js +0 -1
  395. package/build/client/_app/immutable/entry/start.BntDNRMC.js.br +0 -0
  396. package/build/client/_app/immutable/entry/start.BntDNRMC.js.gz +0 -0
  397. package/build/client/_app/immutable/nodes/0.CzkdvJ7j.js +0 -1
  398. package/build/client/_app/immutable/nodes/0.CzkdvJ7j.js.br +0 -0
  399. package/build/client/_app/immutable/nodes/0.CzkdvJ7j.js.gz +0 -0
  400. package/build/client/_app/immutable/nodes/1.MG1QhfrI.js +0 -1
  401. package/build/client/_app/immutable/nodes/1.MG1QhfrI.js.br +0 -0
  402. package/build/client/_app/immutable/nodes/1.MG1QhfrI.js.gz +0 -0
  403. package/build/client/_app/immutable/nodes/2.B4MlOSh6.js +0 -1
  404. package/build/client/_app/immutable/nodes/2.B4MlOSh6.js.br +0 -0
  405. package/build/client/_app/immutable/nodes/2.B4MlOSh6.js.gz +0 -0
  406. package/build/client/_app/immutable/nodes/3.DIwYkjDn.js +0 -3
  407. package/build/client/_app/immutable/nodes/3.DIwYkjDn.js.br +0 -0
  408. package/build/client/_app/immutable/nodes/3.DIwYkjDn.js.gz +0 -0
  409. package/build/client/_app/immutable/nodes/4.D-cIe70D.js +0 -1
  410. package/build/client/_app/immutable/nodes/4.D-cIe70D.js.br +0 -0
  411. package/build/client/_app/immutable/nodes/4.D-cIe70D.js.gz +0 -0
  412. package/build/client/_app/immutable/nodes/5.D7zPRe3L.js +0 -1
  413. package/build/client/_app/immutable/nodes/5.D7zPRe3L.js.br +0 -0
  414. package/build/client/_app/immutable/nodes/5.D7zPRe3L.js.gz +0 -0
  415. package/build/client/_app/immutable/nodes/6.BB7QE48r.js +0 -2
  416. package/build/client/_app/immutable/nodes/6.BB7QE48r.js.br +0 -0
  417. package/build/client/_app/immutable/nodes/6.BB7QE48r.js.gz +0 -0
  418. package/build/client/_app/immutable/nodes/7.D8mqsrZG.js +0 -2
  419. package/build/client/_app/immutable/nodes/7.D8mqsrZG.js.br +0 -0
  420. package/build/client/_app/immutable/nodes/7.D8mqsrZG.js.gz +0 -0
  421. package/build/client/manifest.webmanifest +0 -1
  422. package/build/client/registerSW.js +0 -1
  423. package/build/client/registerSW.js.br +0 -0
  424. package/build/client/registerSW.js.gz +0 -0
  425. package/build/client/sw.js +0 -222
  426. package/build/client/sw.js.br +0 -0
  427. package/build/client/sw.js.gz +0 -0
  428. package/build/client/workbox-5119daf5.js +0 -3395
  429. package/build/client/workbox-5119daf5.js.br +0 -0
  430. package/build/client/workbox-5119daf5.js.gz +0 -0
  431. package/build/server/chunks/0-q2IUp76Y.js +0 -9
  432. package/build/server/chunks/0-q2IUp76Y.js.map +0 -1
  433. package/build/server/chunks/1-CU50G5wZ.js +0 -9
  434. package/build/server/chunks/1-CU50G5wZ.js.map +0 -1
  435. package/build/server/chunks/2-D01t9s8T.js +0 -9
  436. package/build/server/chunks/2-D01t9s8T.js.map +0 -1
  437. package/build/server/chunks/3-5PUQ04wC.js +0 -9
  438. package/build/server/chunks/3-5PUQ04wC.js.map +0 -1
  439. package/build/server/chunks/4-e7gywnSG.js +0 -9
  440. package/build/server/chunks/4-e7gywnSG.js.map +0 -1
  441. package/build/server/chunks/5-CA1SA6KZ.js +0 -9
  442. package/build/server/chunks/5-CA1SA6KZ.js.map +0 -1
  443. package/build/server/chunks/6-71H221sV.js +0 -9
  444. package/build/server/chunks/6-71H221sV.js.map +0 -1
  445. package/build/server/chunks/7-Bo-vmdyz.js +0 -9
  446. package/build/server/chunks/7-Bo-vmdyz.js.map +0 -1
  447. package/build/server/chunks/_layout.svelte-SFHOxs74.js +0 -132
  448. package/build/server/chunks/_layout.svelte-SFHOxs74.js.map +0 -1
  449. package/build/server/chunks/_page.svelte-B4w-2wD-.js +0 -120
  450. package/build/server/chunks/_page.svelte-B4w-2wD-.js.map +0 -1
  451. package/build/server/chunks/_page.svelte-B_qAXjkh.js +0 -213
  452. package/build/server/chunks/_page.svelte-B_qAXjkh.js.map +0 -1
  453. package/build/server/chunks/_page.svelte-CsF1_TRG.js +0 -50
  454. package/build/server/chunks/_page.svelte-CsF1_TRG.js.map +0 -1
  455. package/build/server/chunks/_page.svelte-DJC6U-P0.js +0 -68
  456. package/build/server/chunks/_page.svelte-DJC6U-P0.js.map +0 -1
  457. package/build/server/chunks/_page.svelte-DQ6HBtsz.js +0 -407
  458. package/build/server/chunks/_page.svelte-DQ6HBtsz.js.map +0 -1
  459. package/build/server/chunks/_page.svelte-LbhhjP21.js +0 -148
  460. package/build/server/chunks/_page.svelte-LbhhjP21.js.map +0 -1
  461. package/build/server/chunks/_server.ts-BL2FGb5Z.js.map +0 -1
  462. package/build/server/chunks/_server.ts-BgdjBZco.js.map +0 -1
  463. package/build/server/chunks/_server.ts-BihKSdj_.js.map +0 -1
  464. package/build/server/chunks/_server.ts-BjOJsoy4.js.map +0 -1
  465. package/build/server/chunks/_server.ts-C29xzfaw.js.map +0 -1
  466. package/build/server/chunks/_server.ts-CPa6DgIt.js.map +0 -1
  467. package/build/server/chunks/_server.ts-CbDRDIoP.js.map +0 -1
  468. package/build/server/chunks/_server.ts-Cl1OEWL4.js +0 -54
  469. package/build/server/chunks/_server.ts-Cl1OEWL4.js.map +0 -1
  470. package/build/server/chunks/_server.ts-ColfDHW8.js.map +0 -1
  471. package/build/server/chunks/_server.ts-Cv_OrRuL.js.map +0 -1
  472. package/build/server/chunks/_server.ts-DRVbgm6k.js.map +0 -1
  473. package/build/server/chunks/_server.ts-DfajWaqh.js.map +0 -1
  474. package/build/server/chunks/client-CxCatAKr.js +0 -255
  475. package/build/server/chunks/client-CxCatAKr.js.map +0 -1
  476. package/build/server/chunks/error.svelte-BqdwMWdK.js +0 -26
  477. package/build/server/chunks/error.svelte-BqdwMWdK.js.map +0 -1
  478. package/build/server/chunks/exports-CJ0Q5XmL.js.map +0 -1
  479. package/build/server/chunks/index2-DAxIoAO-.js +0 -36
  480. package/build/server/chunks/index2-DAxIoAO-.js.map +0 -1
  481. package/build/server/chunks/jsonl-parser-dmZU_Hyu.js +0 -137
  482. package/build/server/chunks/jsonl-parser-dmZU_Hyu.js.map +0 -1
  483. package/build/server/chunks/library-apns-BHxLmuIx.js.map +0 -1
  484. package/build/server/chunks/markdown-Bxrl3cCF.js +0 -1241
  485. package/build/server/chunks/markdown-Bxrl3cCF.js.map +0 -1
  486. package/build/server/chunks/pty-manager-C0FhBiVq.js.map +0 -1
  487. package/build/server/chunks/stores-D0HorpgL.js +0 -36
  488. package/build/server/chunks/stores-D0HorpgL.js.map +0 -1
@@ -0,0 +1,550 @@
1
+ import { l as head, k as escape_html, t as derived, q as bind_props, d as attr_class, f as stringify, o as attr, n as ensure_array_like, ao as clsx, r as spread_props } from './index-DwaY1cAm.js';
2
+ import { g as goto } from './client-BdGHe_hY.js';
3
+ import { o as onDestroy } from './index-server-CrDaL06Y.js';
4
+ import './markdown-W_mTBct0.js';
5
+ import { h as html, B as Button } from './Button-Cs1aE6ka.js';
6
+ import './root-DDSnEAZv.js';
7
+ import './index2-CgclKpUj.js';
8
+ import './state.svelte-hBbXlUak.js';
9
+ import 'dompurify';
10
+ import 'marked';
11
+
12
+ function ModalAnimation($$renderer, $$props) {
13
+ let {
14
+ enable = true,
15
+ align = "bottom",
16
+ transitionType = "ALL",
17
+ children
18
+ } = $$props;
19
+ let useFlyAnimation = derived(() => align === "top" || align === "bottom");
20
+ let useOutTransition = derived(() => transitionType === "ALL");
21
+ if (enable) {
22
+ $$renderer.push("<!--[0-->");
23
+ if (useFlyAnimation() && useOutTransition()) {
24
+ $$renderer.push("<!--[0-->");
25
+ $$renderer.push(`<div>`);
26
+ children?.($$renderer);
27
+ $$renderer.push(`<!----></div>`);
28
+ } else if (useFlyAnimation()) {
29
+ $$renderer.push("<!--[1-->");
30
+ $$renderer.push(`<div>`);
31
+ children?.($$renderer);
32
+ $$renderer.push(`<!----></div>`);
33
+ } else if (useOutTransition()) {
34
+ $$renderer.push("<!--[2-->");
35
+ $$renderer.push(`<div>`);
36
+ children?.($$renderer);
37
+ $$renderer.push(`<!----></div>`);
38
+ } else {
39
+ $$renderer.push("<!--[-1-->");
40
+ $$renderer.push(`<div>`);
41
+ children?.($$renderer);
42
+ $$renderer.push(`<!----></div>`);
43
+ }
44
+ $$renderer.push(`<!--]-->`);
45
+ } else {
46
+ $$renderer.push("<!--[-1-->");
47
+ children?.($$renderer);
48
+ $$renderer.push(`<!---->`);
49
+ }
50
+ $$renderer.push(`<!--]-->`);
51
+ }
52
+ function OverlayAnimation($$renderer, $$props) {
53
+ let { children } = $$props;
54
+ $$renderer.push(`<div>`);
55
+ children?.($$renderer);
56
+ $$renderer.push(`<!----></div>`);
57
+ }
58
+ function Modal($$renderer, $$props) {
59
+ $$renderer.component(($$renderer2) => {
60
+ let backPressed = false;
61
+ let {
62
+ size = "fit-content",
63
+ align = "center",
64
+ showOverlay = true,
65
+ supportHardwareBackPress = false,
66
+ enableTransition = true,
67
+ transitionType = "ALL",
68
+ header = {},
69
+ footer,
70
+ debounceTime = 700,
71
+ leftImageTestId,
72
+ testId,
73
+ content,
74
+ footerSnippet,
75
+ onclose,
76
+ onheaderRightImageClick,
77
+ onheaderLeftImageClick,
78
+ onprimaryButtonClick,
79
+ onsecondaryButtonClick,
80
+ onoverlayClick,
81
+ onkeydown,
82
+ classes
83
+ } = $$props;
84
+ function handlePopstate() {
85
+ backPressed = true;
86
+ onclose?.();
87
+ }
88
+ function handlePrimaryButtonClick(event) {
89
+ onprimaryButtonClick?.(event);
90
+ }
91
+ function handleSecondaryButtonClick(event) {
92
+ onsecondaryButtonClick?.(event);
93
+ }
94
+ onDestroy(() => {
95
+ if (typeof window !== "undefined") {
96
+ document.body.style.overflow = "";
97
+ if (supportHardwareBackPress) {
98
+ if (!backPressed) {
99
+ history.back();
100
+ }
101
+ window.removeEventListener("popstate", handlePopstate);
102
+ }
103
+ }
104
+ });
105
+ if (typeof content === "function") {
106
+ $$renderer2.push("<!--[0-->");
107
+ OverlayAnimation($$renderer2, {
108
+ children: ($$renderer3) => {
109
+ $$renderer3.push(`<div${attr_class(`modal ${stringify(align)} ${stringify(showOverlay ? "overlay-active" : "overlay-inactive")} ${stringify(classes ?? "")}`, "svelte-14ltpll")} role="button" tabindex="0"${attr("data-pw", testId)}>`);
110
+ ModalAnimation($$renderer3, {
111
+ enable: enableTransition,
112
+ align,
113
+ transitionType,
114
+ children: ($$renderer4) => {
115
+ $$renderer4.push(`<div${attr_class(`modal-content ${stringify(size)}`, "svelte-14ltpll")}>`);
116
+ if (typeof header?.leftImage === "string" && header.leftImage.length > 0 || typeof header?.text === "string" && header.text.length > 0 || typeof header?.rightImage === "string" && header.rightImage.length > 0) {
117
+ $$renderer4.push("<!--[0-->");
118
+ $$renderer4.push(`<div class="header svelte-14ltpll">`);
119
+ if (header.leftImage) {
120
+ $$renderer4.push("<!--[0-->");
121
+ $$renderer4.push(`<div role="button" tabindex="0"${attr("data-pw", leftImageTestId)}><img class="header-left-img svelte-14ltpll"${attr("src", header.leftImage)} alt=""/></div>`);
122
+ } else {
123
+ $$renderer4.push("<!--[-1-->");
124
+ }
125
+ $$renderer4.push(`<!--]--> `);
126
+ if (header.text) {
127
+ $$renderer4.push("<!--[0-->");
128
+ $$renderer4.push(`<div class="header-text svelte-14ltpll"${attr("data-pw", header.testId)}>${escape_html(header.text)}</div>`);
129
+ } else {
130
+ $$renderer4.push("<!--[-1-->");
131
+ }
132
+ $$renderer4.push(`<!--]--> `);
133
+ if (header.rightImage) {
134
+ $$renderer4.push("<!--[0-->");
135
+ $$renderer4.push(`<div role="button" tabindex="0"${attr("data-pw", header.buttonTestId)}><img class="header-right-img svelte-14ltpll"${attr("src", header.rightImage)} alt=""/></div>`);
136
+ } else {
137
+ $$renderer4.push("<!--[-1-->");
138
+ }
139
+ $$renderer4.push(`<!--]--></div>`);
140
+ } else {
141
+ $$renderer4.push("<!--[-1-->");
142
+ }
143
+ $$renderer4.push(`<!--]--> <div class="slot-content svelte-14ltpll">`);
144
+ content?.($$renderer4);
145
+ $$renderer4.push(`<!----></div> `);
146
+ if (typeof footerSnippet === "function") {
147
+ $$renderer4.push("<!--[0-->");
148
+ $$renderer4.push(`<div class="footer-content svelte-14ltpll">`);
149
+ footerSnippet?.($$renderer4);
150
+ $$renderer4.push(`<!----></div>`);
151
+ } else if (typeof footer?.primaryButton === "object" || typeof footer?.secondaryButton === "object") {
152
+ $$renderer4.push("<!--[1-->");
153
+ $$renderer4.push(`<div class="footer-content svelte-14ltpll"><div class="footer-action-buttons svelte-14ltpll">`);
154
+ if (footer.secondaryButton) {
155
+ $$renderer4.push("<!--[0-->");
156
+ $$renderer4.push(`<div class="footer-secondary-button svelte-14ltpll">`);
157
+ Button($$renderer4, spread_props([
158
+ footer.secondaryButton,
159
+ { onclick: handleSecondaryButtonClick }
160
+ ]));
161
+ $$renderer4.push(`<!----></div>`);
162
+ } else {
163
+ $$renderer4.push("<!--[-1-->");
164
+ }
165
+ $$renderer4.push(`<!--]--> `);
166
+ if (footer.primaryButton) {
167
+ $$renderer4.push("<!--[0-->");
168
+ $$renderer4.push(`<div class="footer-primary-button svelte-14ltpll">`);
169
+ Button($$renderer4, spread_props([footer.primaryButton, { onclick: handlePrimaryButtonClick }]));
170
+ $$renderer4.push(`<!----></div>`);
171
+ } else {
172
+ $$renderer4.push("<!--[-1-->");
173
+ }
174
+ $$renderer4.push(`<!--]--></div></div>`);
175
+ } else {
176
+ $$renderer4.push("<!--[-1-->");
177
+ }
178
+ $$renderer4.push(`<!--]--></div>`);
179
+ }
180
+ });
181
+ $$renderer3.push(`<!----></div>`);
182
+ }
183
+ });
184
+ } else {
185
+ $$renderer2.push("<!--[-1-->");
186
+ }
187
+ $$renderer2.push(`<!--]-->`);
188
+ });
189
+ }
190
+ function Img($$renderer, $$props) {
191
+ $$renderer.component(($$renderer2) => {
192
+ let { src, alt, classes } = $$props;
193
+ let currentSrc = derived(() => src);
194
+ $$renderer2.push(`<img${attr_class(clsx(classes ?? ""), "svelte-1i92k5h")}${attr("src", currentSrc())}${attr("alt", alt)} onerror="this.__e=event"/>`);
195
+ });
196
+ }
197
+ const SvelteMap = globalThis.Map;
198
+ function KeyboardInput($$renderer, $$props) {
199
+ $$renderer.component(($$renderer2) => {
200
+ let { keys, separator = "+", testId, onclick, classes } = $$props;
201
+ const KEY_SYMBOLS = {
202
+ cmd: "⌘",
203
+ command: "⌘",
204
+ ctrl: "⌃",
205
+ control: "⌃",
206
+ alt: "⌥",
207
+ option: "⌥",
208
+ shift: "⇧",
209
+ enter: "↵",
210
+ backspace: "⌫",
211
+ delete: "⌦",
212
+ tab: "⇥",
213
+ escape: "Esc",
214
+ esc: "Esc",
215
+ up: "↑",
216
+ down: "↓",
217
+ left: "←",
218
+ right: "→",
219
+ space: "␣"
220
+ };
221
+ let keyList = derived(() => Array.isArray(keys) ? keys : keys.split(separator).map((k) => k.trim()));
222
+ let interactive = derived(() => typeof onclick === "function");
223
+ function getSymbol(key) {
224
+ return KEY_SYMBOLS[key.toLowerCase()] ?? key;
225
+ }
226
+ $$renderer2.push(`<span${attr_class(`keyboard-input ${stringify(classes ?? "")}`, "svelte-xb2c7p")}${attr("data-pw", typeof testId === "string" ? testId : null)}${attr("role", interactive() ? "button" : null)}${attr("tabindex", interactive() ? 0 : null)}><!--[-->`);
227
+ const each_array = ensure_array_like(keyList());
228
+ for (let i = 0, $$length = each_array.length; i < $$length; i++) {
229
+ let key = each_array[i];
230
+ if (i > 0) {
231
+ $$renderer2.push("<!--[0-->");
232
+ $$renderer2.push(`<span class="separator svelte-xb2c7p">${escape_html(separator)}</span>`);
233
+ } else {
234
+ $$renderer2.push("<!--[-1-->");
235
+ }
236
+ $$renderer2.push(`<!--]--> <kbd class="key svelte-xb2c7p">${escape_html(getSymbol(key))}</kbd>`);
237
+ }
238
+ $$renderer2.push(`<!--]--></span>`);
239
+ });
240
+ }
241
+ const searchSvg = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg">\n <circle cx="11" cy="11" r="8"></circle>\n <line x1="21" y1="21" x2="16.65" y2="16.65"></line>\n</svg>\n';
242
+ function CommandMenu($$renderer, $$props) {
243
+ $$renderer.component(($$renderer2) => {
244
+ let {
245
+ items,
246
+ open = false,
247
+ placeholder = "Search commands...",
248
+ emptyText = "No results found.",
249
+ testId,
250
+ itemIcon,
251
+ searchIcon,
252
+ onselect,
253
+ onclose,
254
+ classes
255
+ } = $$props;
256
+ let query = "";
257
+ let activeIndex = 0;
258
+ let filteredItems = derived(() => {
259
+ if (query.trim() === "") {
260
+ return items;
261
+ }
262
+ const lower = query.toLowerCase();
263
+ return items.filter((item) => item.label.toLowerCase().includes(lower));
264
+ });
265
+ let groupedItems = derived(() => {
266
+ const groups = new SvelteMap();
267
+ for (const item of filteredItems()) {
268
+ const group = item.group ?? "";
269
+ if (!groups.has(group)) {
270
+ groups.set(group, []);
271
+ }
272
+ const groupList = groups.get(group);
273
+ if (Array.isArray(groupList)) {
274
+ groupList.push(item);
275
+ }
276
+ }
277
+ return groups;
278
+ });
279
+ let flatItems = derived(() => {
280
+ const result = [];
281
+ for (const [, groupItems] of groupedItems()) {
282
+ for (const item of groupItems) {
283
+ result.push(item);
284
+ }
285
+ }
286
+ return result;
287
+ });
288
+ let flatIndexLookup = derived(() => {
289
+ const map = new SvelteMap();
290
+ for (let i = 0; i < flatItems().length; i++) {
291
+ const item = flatItems().at(i);
292
+ if (typeof item === "object") {
293
+ map.set(item.value, i);
294
+ }
295
+ }
296
+ return map;
297
+ });
298
+ function close() {
299
+ open = false;
300
+ query = "";
301
+ activeIndex = 0;
302
+ onclose?.();
303
+ }
304
+ function handleGlobalKeyDown(event) {
305
+ if ((event.metaKey || event.ctrlKey) && event.key === "k") {
306
+ event.preventDefault();
307
+ if (open) {
308
+ close();
309
+ } else {
310
+ open = true;
311
+ }
312
+ }
313
+ }
314
+ onDestroy(() => {
315
+ if (typeof window !== "undefined") {
316
+ document.body.style.overflow = "";
317
+ window.removeEventListener("keydown", handleGlobalKeyDown);
318
+ }
319
+ });
320
+ if (open) {
321
+ $$renderer2.push("<!--[0-->");
322
+ $$renderer2.push(`<div${attr_class(`command-menu-overlay ${stringify(classes ?? "")}`, "svelte-19oedql")} role="dialog" aria-modal="true" aria-label="Command menu" tabindex="-1"${attr("data-pw", typeof testId === "string" ? testId : null)}><div class="command-menu-dialog svelte-19oedql"><div class="command-menu-input-wrapper svelte-19oedql">`);
323
+ if (typeof searchIcon === "function") {
324
+ $$renderer2.push("<!--[0-->");
325
+ searchIcon($$renderer2);
326
+ $$renderer2.push(`<!---->`);
327
+ } else {
328
+ $$renderer2.push("<!--[-1-->");
329
+ $$renderer2.push(`<span class="command-menu-search-icon svelte-19oedql">${html(searchSvg)}</span>`);
330
+ }
331
+ $$renderer2.push(`<!--]--> <input${attr("value", query)} type="text" class="command-menu-input svelte-19oedql"${attr("placeholder", placeholder)} autocomplete="off" spellcheck="false"${attr("data-pw", typeof testId === "string" ? `${testId}-input` : null)}/></div> <div class="command-menu-separator svelte-19oedql"></div> <div class="command-menu-list svelte-19oedql" role="listbox">`);
332
+ if (flatItems().length === 0) {
333
+ $$renderer2.push("<!--[0-->");
334
+ $$renderer2.push(`<div class="command-menu-empty svelte-19oedql">${escape_html(emptyText)}</div>`);
335
+ } else {
336
+ $$renderer2.push("<!--[-1-->");
337
+ $$renderer2.push(`<!--[-->`);
338
+ const each_array = ensure_array_like(groupedItems());
339
+ for (let $$index_2 = 0, $$length = each_array.length; $$index_2 < $$length; $$index_2++) {
340
+ let [group, groupItems] = each_array[$$index_2];
341
+ if (group !== "") {
342
+ $$renderer2.push("<!--[0-->");
343
+ $$renderer2.push(`<div class="command-menu-group-heading svelte-19oedql">${escape_html(group)}</div>`);
344
+ } else {
345
+ $$renderer2.push("<!--[-1-->");
346
+ }
347
+ $$renderer2.push(`<!--]--> <!--[-->`);
348
+ const each_array_1 = ensure_array_like(groupItems);
349
+ for (let $$index_1 = 0, $$length2 = each_array_1.length; $$index_1 < $$length2; $$index_1++) {
350
+ let item = each_array_1[$$index_1];
351
+ const index = flatIndexLookup().get(item.value) ?? -1;
352
+ $$renderer2.push(`<button type="button"${attr_class("command-menu-item svelte-19oedql", void 0, { "active": index === activeIndex, "disabled": item.disabled })}${attr("data-active", index === activeIndex)} role="option"${attr("aria-selected", index === activeIndex)}${attr("aria-disabled", item.disabled)} tabindex="-1"${attr("data-pw", typeof testId === "string" ? `${testId}-item-${item.value}` : null)}>`);
353
+ if (typeof itemIcon === "function") {
354
+ $$renderer2.push("<!--[0-->");
355
+ $$renderer2.push(`<span class="command-menu-item-icon svelte-19oedql">`);
356
+ itemIcon($$renderer2, item);
357
+ $$renderer2.push(`<!----></span>`);
358
+ } else if (typeof item.icon === "string" && item.icon.length > 0) {
359
+ $$renderer2.push("<!--[1-->");
360
+ $$renderer2.push(`<div class="command-menu-item-icon-img-wrapper svelte-19oedql">`);
361
+ Img($$renderer2, { src: item.icon, alt: "" });
362
+ $$renderer2.push(`<!----></div>`);
363
+ } else {
364
+ $$renderer2.push("<!--[-1-->");
365
+ }
366
+ $$renderer2.push(`<!--]--> <span class="command-menu-item-label svelte-19oedql">${escape_html(item.label)}</span> `);
367
+ if (typeof item.shortcut === "string" && item.shortcut.length > 0) {
368
+ $$renderer2.push("<!--[0-->");
369
+ $$renderer2.push(`<span class="command-menu-item-shortcut svelte-19oedql"><!--[-->`);
370
+ const each_array_2 = ensure_array_like(item.shortcut.split("+"));
371
+ for (let i = 0, $$length3 = each_array_2.length; i < $$length3; i++) {
372
+ let key = each_array_2[i];
373
+ $$renderer2.push(`<kbd class="command-menu-kbd svelte-19oedql">${escape_html(key.trim())}</kbd>`);
374
+ }
375
+ $$renderer2.push(`<!--]--></span>`);
376
+ } else {
377
+ $$renderer2.push("<!--[-1-->");
378
+ }
379
+ $$renderer2.push(`<!--]--></button>`);
380
+ }
381
+ $$renderer2.push(`<!--]-->`);
382
+ }
383
+ $$renderer2.push(`<!--]-->`);
384
+ }
385
+ $$renderer2.push(`<!--]--></div></div></div>`);
386
+ } else {
387
+ $$renderer2.push("<!--[-1-->");
388
+ }
389
+ $$renderer2.push(`<!--]-->`);
390
+ bind_props($$props, { open });
391
+ });
392
+ }
393
+ function CommandPalette($$renderer, $$props) {
394
+ $$renderer.component(($$renderer2) => {
395
+ let { commands, onClose, open = false } = $$props;
396
+ const items = derived(() => commands.map((cmd, i) => ({ label: cmd.label, value: String(i) })));
397
+ function handleSelect(item) {
398
+ const index = parseInt(item.value, 10);
399
+ if (commands[index]) {
400
+ commands[index].action();
401
+ }
402
+ }
403
+ let $$settled = true;
404
+ let $$inner_renderer;
405
+ function $$render_inner($$renderer3) {
406
+ CommandMenu($$renderer3, {
407
+ items: items(),
408
+ placeholder: "Type a command...",
409
+ emptyText: "No matching commands",
410
+ onselect: handleSelect,
411
+ onclose: onClose,
412
+ classes: "command-palette",
413
+ get open() {
414
+ return open;
415
+ },
416
+ set open($$value) {
417
+ open = $$value;
418
+ $$settled = false;
419
+ }
420
+ });
421
+ }
422
+ do {
423
+ $$settled = true;
424
+ $$inner_renderer = $$renderer2.copy();
425
+ $$render_inner($$inner_renderer);
426
+ } while (!$$settled);
427
+ $$renderer2.subsume($$inner_renderer);
428
+ bind_props($$props, { open });
429
+ });
430
+ }
431
+ const isMac = typeof navigator !== "undefined" && /Mac|iPhone|iPad/.test(navigator.userAgent);
432
+ const modLabel = isMac ? "⌘" : "Ctrl";
433
+ function getShortcutList() {
434
+ return [
435
+ { description: "Command palette", keys: `${modLabel}+K` },
436
+ { description: "Keyboard shortcuts", keys: `${modLabel}+/` }
437
+ ];
438
+ }
439
+ function ShortcutsHelp($$renderer, $$props) {
440
+ $$renderer.component(($$renderer2) => {
441
+ const { onClose, open } = $$props;
442
+ const shortcuts = getShortcutList();
443
+ if (open) {
444
+ $$renderer2.push("<!--[0-->");
445
+ {
446
+ let content = function($$renderer3) {
447
+ $$renderer3.push(`<div class="shortcuts-list svelte-1u7lstk"><!--[-->`);
448
+ const each_array = ensure_array_like(shortcuts);
449
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
450
+ let shortcut = each_array[$$index];
451
+ $$renderer3.push(`<div class="shortcut-row svelte-1u7lstk"><span class="shortcut-desc svelte-1u7lstk">${escape_html(shortcut.description)}</span> `);
452
+ KeyboardInput($$renderer3, { keys: shortcut.keys, classes: "shortcut-kbd" });
453
+ $$renderer3.push(`<!----></div>`);
454
+ }
455
+ $$renderer3.push(`<!--]--></div>`);
456
+ };
457
+ Modal($$renderer2, {
458
+ header: { text: "Keyboard Shortcuts" },
459
+ onoverlayClick: onClose,
460
+ classes: "shortcuts-modal",
461
+ content
462
+ });
463
+ }
464
+ } else {
465
+ $$renderer2.push("<!--[-1-->");
466
+ }
467
+ $$renderer2.push(`<!--]-->`);
468
+ });
469
+ }
470
+ function _page($$renderer, $$props) {
471
+ $$renderer.component(($$renderer2) => {
472
+ let terminal = null;
473
+ let showShortcutsHelp = false;
474
+ let showCommandPalette = false;
475
+ const isRunning = derived(() => terminal?.status === "running");
476
+ const commandName = derived(() => "terminal");
477
+ const paletteCommands = derived(() => {
478
+ const cmds = [
479
+ { action: () => void goto(), label: "Go to Home" },
480
+ {
481
+ action: () => void goto(),
482
+ label: "Go to Terminals"
483
+ },
484
+ { action: () => void goto(), label: "Go to Settings" },
485
+ {
486
+ action: () => {
487
+ showShortcutsHelp = true;
488
+ },
489
+ label: "Show keyboard shortcuts"
490
+ }
491
+ ];
492
+ if (isRunning()) {
493
+ cmds.push({ action: () => void killTerminal(), label: "Kill terminal" });
494
+ }
495
+ return cmds;
496
+ });
497
+ async function killTerminal() {
498
+ {
499
+ return;
500
+ }
501
+ }
502
+ onDestroy(() => {
503
+ });
504
+ let $$settled = true;
505
+ let $$inner_renderer;
506
+ function $$render_inner($$renderer3) {
507
+ head("1tubujq", $$renderer3, ($$renderer4) => {
508
+ $$renderer4.title(($$renderer5) => {
509
+ $$renderer5.push(`<title>${escape_html(commandName())} - Terminal - Shooter</title>`);
510
+ });
511
+ $$renderer4.push(`<meta name="description" content="Interactive terminal session" class="svelte-1tubujq"/>`);
512
+ });
513
+ {
514
+ $$renderer3.push("<!--[0-->");
515
+ $$renderer3.push(`<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>`);
516
+ }
517
+ $$renderer3.push(`<!--]--> `);
518
+ ShortcutsHelp($$renderer3, {
519
+ open: showShortcutsHelp,
520
+ onClose: () => {
521
+ showShortcutsHelp = false;
522
+ }
523
+ });
524
+ $$renderer3.push(`<!----> `);
525
+ CommandPalette($$renderer3, {
526
+ commands: paletteCommands(),
527
+ onClose: () => {
528
+ showCommandPalette = false;
529
+ },
530
+ get open() {
531
+ return showCommandPalette;
532
+ },
533
+ set open($$value) {
534
+ showCommandPalette = $$value;
535
+ $$settled = false;
536
+ }
537
+ });
538
+ $$renderer3.push(`<!---->`);
539
+ }
540
+ do {
541
+ $$settled = true;
542
+ $$inner_renderer = $$renderer2.copy();
543
+ $$render_inner($$inner_renderer);
544
+ } while (!$$settled);
545
+ $$renderer2.subsume($$inner_renderer);
546
+ });
547
+ }
548
+
549
+ export { _page as default };
550
+ //# sourceMappingURL=_page.svelte-CVq6tRb3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_page.svelte-CVq6tRb3.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/terminals/_id_/_page.svelte.js"],"sourcesContent":["import { k as derived, a as attr_class, s as stringify, f as attr, e as escape_html, l as spread_props, m as clsx, d as ensure_array_like, j as bind_props, h as head } from \"../../../../chunks/index.js\";\nimport { g as goto } from \"../../../../chunks/client.js\";\nimport { o as onDestroy } from \"../../../../chunks/index-server.js\";\nimport \"../../../../chunks/markdown.js\";\n/* empty css */\n/* empty css */\nimport { B as Button, h as html } from \"../../../../chunks/Button.js\";\nfunction ModalAnimation($$renderer, $$props) {\n let {\n enable = true,\n align = \"bottom\",\n transitionType = \"ALL\",\n children\n } = $$props;\n let useFlyAnimation = derived(() => align === \"top\" || align === \"bottom\");\n let useOutTransition = derived(() => transitionType === \"ALL\");\n if (enable) {\n $$renderer.push(\"<!--[0-->\");\n if (useFlyAnimation() && useOutTransition()) {\n $$renderer.push(\"<!--[0-->\");\n $$renderer.push(`<div>`);\n children?.($$renderer);\n $$renderer.push(`<!----></div>`);\n } else if (useFlyAnimation()) {\n $$renderer.push(\"<!--[1-->\");\n $$renderer.push(`<div>`);\n children?.($$renderer);\n $$renderer.push(`<!----></div>`);\n } else if (useOutTransition()) {\n $$renderer.push(\"<!--[2-->\");\n $$renderer.push(`<div>`);\n children?.($$renderer);\n $$renderer.push(`<!----></div>`);\n } else {\n $$renderer.push(\"<!--[-1-->\");\n $$renderer.push(`<div>`);\n children?.($$renderer);\n $$renderer.push(`<!----></div>`);\n }\n $$renderer.push(`<!--]-->`);\n } else {\n $$renderer.push(\"<!--[-1-->\");\n children?.($$renderer);\n $$renderer.push(`<!---->`);\n }\n $$renderer.push(`<!--]-->`);\n}\nfunction OverlayAnimation($$renderer, $$props) {\n let { children } = $$props;\n $$renderer.push(`<div>`);\n children?.($$renderer);\n $$renderer.push(`<!----></div>`);\n}\nfunction Modal($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let backPressed = false;\n let {\n size = \"fit-content\",\n align = \"center\",\n showOverlay = true,\n supportHardwareBackPress = false,\n enableTransition = true,\n transitionType = \"ALL\",\n header = {},\n footer,\n debounceTime = 700,\n leftImageTestId,\n testId,\n content,\n footerSnippet,\n onclose,\n onheaderRightImageClick,\n onheaderLeftImageClick,\n onprimaryButtonClick,\n onsecondaryButtonClick,\n onoverlayClick,\n onkeydown,\n classes\n } = $$props;\n function handlePopstate() {\n backPressed = true;\n onclose?.();\n }\n function handlePrimaryButtonClick(event) {\n onprimaryButtonClick?.(event);\n }\n function handleSecondaryButtonClick(event) {\n onsecondaryButtonClick?.(event);\n }\n onDestroy(() => {\n if (typeof window !== \"undefined\") {\n document.body.style.overflow = \"\";\n if (supportHardwareBackPress) {\n if (!backPressed) {\n history.back();\n }\n window.removeEventListener(\"popstate\", handlePopstate);\n }\n }\n });\n if (typeof content === \"function\") {\n $$renderer2.push(\"<!--[0-->\");\n OverlayAnimation($$renderer2, {\n children: ($$renderer3) => {\n $$renderer3.push(`<div${attr_class(`modal ${stringify(align)} ${stringify(showOverlay ? \"overlay-active\" : \"overlay-inactive\")} ${stringify(classes ?? \"\")}`, \"svelte-14ltpll\")} role=\"button\" tabindex=\"0\"${attr(\"data-pw\", testId)}>`);\n ModalAnimation($$renderer3, {\n enable: enableTransition,\n align,\n transitionType,\n children: ($$renderer4) => {\n $$renderer4.push(`<div${attr_class(`modal-content ${stringify(size)}`, \"svelte-14ltpll\")}>`);\n if (typeof header?.leftImage === \"string\" && header.leftImage.length > 0 || typeof header?.text === \"string\" && header.text.length > 0 || typeof header?.rightImage === \"string\" && header.rightImage.length > 0) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<div class=\"header svelte-14ltpll\">`);\n if (header.leftImage) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<div role=\"button\" tabindex=\"0\"${attr(\"data-pw\", leftImageTestId)}><img class=\"header-left-img svelte-14ltpll\"${attr(\"src\", header.leftImage)} alt=\"\"/></div>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--> `);\n if (header.text) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<div class=\"header-text svelte-14ltpll\"${attr(\"data-pw\", header.testId)}>${escape_html(header.text)}</div>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--> `);\n if (header.rightImage) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<div role=\"button\" tabindex=\"0\"${attr(\"data-pw\", header.buttonTestId)}><img class=\"header-right-img svelte-14ltpll\"${attr(\"src\", header.rightImage)} alt=\"\"/></div>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--></div>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--> <div class=\"slot-content svelte-14ltpll\">`);\n content?.($$renderer4);\n $$renderer4.push(`<!----></div> `);\n if (typeof footerSnippet === \"function\") {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<div class=\"footer-content svelte-14ltpll\">`);\n footerSnippet?.($$renderer4);\n $$renderer4.push(`<!----></div>`);\n } else if (typeof footer?.primaryButton === \"object\" || typeof footer?.secondaryButton === \"object\") {\n $$renderer4.push(\"<!--[1-->\");\n $$renderer4.push(`<div class=\"footer-content svelte-14ltpll\"><div class=\"footer-action-buttons svelte-14ltpll\">`);\n if (footer.secondaryButton) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<div class=\"footer-secondary-button svelte-14ltpll\">`);\n Button($$renderer4, spread_props([\n footer.secondaryButton,\n { onclick: handleSecondaryButtonClick }\n ]));\n $$renderer4.push(`<!----></div>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--> `);\n if (footer.primaryButton) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<div class=\"footer-primary-button svelte-14ltpll\">`);\n Button($$renderer4, spread_props([footer.primaryButton, { onclick: handlePrimaryButtonClick }]));\n $$renderer4.push(`<!----></div>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--></div></div>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--></div>`);\n }\n });\n $$renderer3.push(`<!----></div>`);\n }\n });\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]-->`);\n });\n}\nfunction Img($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { src, alt, classes } = $$props;\n let currentSrc = derived(() => src);\n $$renderer2.push(`<img${attr_class(clsx(classes ?? \"\"), \"svelte-1i92k5h\")}${attr(\"src\", currentSrc())}${attr(\"alt\", alt)} onerror=\"this.__e=event\"/>`);\n });\n}\nconst SvelteMap = globalThis.Map;\nfunction KeyboardInput($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { keys, separator = \"+\", testId, onclick, classes } = $$props;\n const KEY_SYMBOLS = {\n cmd: \"⌘\",\n command: \"⌘\",\n ctrl: \"⌃\",\n control: \"⌃\",\n alt: \"⌥\",\n option: \"⌥\",\n shift: \"⇧\",\n enter: \"↵\",\n backspace: \"⌫\",\n delete: \"⌦\",\n tab: \"⇥\",\n escape: \"Esc\",\n esc: \"Esc\",\n up: \"↑\",\n down: \"↓\",\n left: \"←\",\n right: \"→\",\n space: \"␣\"\n };\n let keyList = derived(() => Array.isArray(keys) ? keys : keys.split(separator).map((k) => k.trim()));\n let interactive = derived(() => typeof onclick === \"function\");\n function getSymbol(key) {\n return KEY_SYMBOLS[key.toLowerCase()] ?? key;\n }\n $$renderer2.push(`<span${attr_class(`keyboard-input ${stringify(classes ?? \"\")}`, \"svelte-xb2c7p\")}${attr(\"data-pw\", typeof testId === \"string\" ? testId : null)}${attr(\"role\", interactive() ? \"button\" : null)}${attr(\"tabindex\", interactive() ? 0 : null)}><!--[-->`);\n const each_array = ensure_array_like(keyList());\n for (let i = 0, $$length = each_array.length; i < $$length; i++) {\n let key = each_array[i];\n if (i > 0) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<span class=\"separator svelte-xb2c7p\">${escape_html(separator)}</span>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> <kbd class=\"key svelte-xb2c7p\">${escape_html(getSymbol(key))}</kbd>`);\n }\n $$renderer2.push(`<!--]--></span>`);\n });\n}\nconst searchSvg = '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http://www.w3.org/2000/svg\">\\n <circle cx=\"11\" cy=\"11\" r=\"8\"></circle>\\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"></line>\\n</svg>\\n';\nfunction CommandMenu($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n items,\n open = false,\n placeholder = \"Search commands...\",\n emptyText = \"No results found.\",\n testId,\n itemIcon,\n searchIcon,\n onselect,\n onclose,\n classes\n } = $$props;\n let query = \"\";\n let activeIndex = 0;\n let filteredItems = derived(() => {\n if (query.trim() === \"\") {\n return items;\n }\n const lower = query.toLowerCase();\n return items.filter((item) => item.label.toLowerCase().includes(lower));\n });\n let groupedItems = derived(() => {\n const groups = new SvelteMap();\n for (const item of filteredItems()) {\n const group = item.group ?? \"\";\n if (!groups.has(group)) {\n groups.set(group, []);\n }\n const groupList = groups.get(group);\n if (Array.isArray(groupList)) {\n groupList.push(item);\n }\n }\n return groups;\n });\n let flatItems = derived(() => {\n const result = [];\n for (const [, groupItems] of groupedItems()) {\n for (const item of groupItems) {\n result.push(item);\n }\n }\n return result;\n });\n let flatIndexLookup = derived(() => {\n const map = new SvelteMap();\n for (let i = 0; i < flatItems().length; i++) {\n const item = flatItems().at(i);\n if (typeof item === \"object\") {\n map.set(item.value, i);\n }\n }\n return map;\n });\n function close() {\n open = false;\n query = \"\";\n activeIndex = 0;\n onclose?.();\n }\n function handleGlobalKeyDown(event) {\n if ((event.metaKey || event.ctrlKey) && event.key === \"k\") {\n event.preventDefault();\n if (open) {\n close();\n } else {\n open = true;\n }\n }\n }\n onDestroy(() => {\n if (typeof window !== \"undefined\") {\n document.body.style.overflow = \"\";\n window.removeEventListener(\"keydown\", handleGlobalKeyDown);\n }\n });\n if (open) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div${attr_class(`command-menu-overlay ${stringify(classes ?? \"\")}`, \"svelte-19oedql\")} role=\"dialog\" aria-modal=\"true\" aria-label=\"Command menu\" tabindex=\"-1\"${attr(\"data-pw\", typeof testId === \"string\" ? testId : null)}><div class=\"command-menu-dialog svelte-19oedql\"><div class=\"command-menu-input-wrapper svelte-19oedql\">`);\n if (typeof searchIcon === \"function\") {\n $$renderer2.push(\"<!--[0-->\");\n searchIcon($$renderer2);\n $$renderer2.push(`<!---->`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n $$renderer2.push(`<span class=\"command-menu-search-icon svelte-19oedql\">${html(searchSvg)}</span>`);\n }\n $$renderer2.push(`<!--]--> <input${attr(\"value\", query)} type=\"text\" class=\"command-menu-input svelte-19oedql\"${attr(\"placeholder\", placeholder)} autocomplete=\"off\" spellcheck=\"false\"${attr(\"data-pw\", typeof testId === \"string\" ? `${testId}-input` : null)}/></div> <div class=\"command-menu-separator svelte-19oedql\"></div> <div class=\"command-menu-list svelte-19oedql\" role=\"listbox\">`);\n if (flatItems().length === 0) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"command-menu-empty svelte-19oedql\">${escape_html(emptyText)}</div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n $$renderer2.push(`<!--[-->`);\n const each_array = ensure_array_like(groupedItems());\n for (let $$index_2 = 0, $$length = each_array.length; $$index_2 < $$length; $$index_2++) {\n let [group, groupItems] = each_array[$$index_2];\n if (group !== \"\") {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"command-menu-group-heading svelte-19oedql\">${escape_html(group)}</div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> <!--[-->`);\n const each_array_1 = ensure_array_like(groupItems);\n for (let $$index_1 = 0, $$length2 = each_array_1.length; $$index_1 < $$length2; $$index_1++) {\n let item = each_array_1[$$index_1];\n const index = flatIndexLookup().get(item.value) ?? -1;\n $$renderer2.push(`<button type=\"button\"${attr_class(\"command-menu-item svelte-19oedql\", void 0, { \"active\": index === activeIndex, \"disabled\": item.disabled })}${attr(\"data-active\", index === activeIndex)} role=\"option\"${attr(\"aria-selected\", index === activeIndex)}${attr(\"aria-disabled\", item.disabled)} tabindex=\"-1\"${attr(\"data-pw\", typeof testId === \"string\" ? `${testId}-item-${item.value}` : null)}>`);\n if (typeof itemIcon === \"function\") {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<span class=\"command-menu-item-icon svelte-19oedql\">`);\n itemIcon($$renderer2, item);\n $$renderer2.push(`<!----></span>`);\n } else if (typeof item.icon === \"string\" && item.icon.length > 0) {\n $$renderer2.push(\"<!--[1-->\");\n $$renderer2.push(`<div class=\"command-menu-item-icon-img-wrapper svelte-19oedql\">`);\n Img($$renderer2, { src: item.icon, alt: \"\" });\n $$renderer2.push(`<!----></div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> <span class=\"command-menu-item-label svelte-19oedql\">${escape_html(item.label)}</span> `);\n if (typeof item.shortcut === \"string\" && item.shortcut.length > 0) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<span class=\"command-menu-item-shortcut svelte-19oedql\"><!--[-->`);\n const each_array_2 = ensure_array_like(item.shortcut.split(\"+\"));\n for (let i = 0, $$length3 = each_array_2.length; i < $$length3; i++) {\n let key = each_array_2[i];\n $$renderer2.push(`<kbd class=\"command-menu-kbd svelte-19oedql\">${escape_html(key.trim())}</kbd>`);\n }\n $$renderer2.push(`<!--]--></span>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></button>`);\n }\n $$renderer2.push(`<!--]-->`);\n }\n $$renderer2.push(`<!--]-->`);\n }\n $$renderer2.push(`<!--]--></div></div></div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]-->`);\n bind_props($$props, { open });\n });\n}\nfunction CommandPalette($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { commands, onClose, open = false } = $$props;\n const items = derived(() => commands.map((cmd, i) => ({ label: cmd.label, value: String(i) })));\n function handleSelect(item) {\n const index = parseInt(item.value, 10);\n if (commands[index]) {\n commands[index].action();\n }\n }\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n CommandMenu($$renderer3, {\n items: items(),\n placeholder: \"Type a command...\",\n emptyText: \"No matching commands\",\n onselect: handleSelect,\n onclose: onClose,\n classes: \"command-palette\",\n get open() {\n return open;\n },\n set open($$value) {\n open = $$value;\n $$settled = false;\n }\n });\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n bind_props($$props, { open });\n });\n}\nconst isMac = typeof navigator !== \"undefined\" && /Mac|iPhone|iPad/.test(navigator.userAgent);\nconst modLabel = isMac ? \"⌘\" : \"Ctrl\";\nfunction getShortcutList() {\n return [\n { description: \"Command palette\", keys: `${modLabel}+K` },\n { description: \"Keyboard shortcuts\", keys: `${modLabel}+/` }\n ];\n}\nfunction ShortcutsHelp($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const { onClose, open } = $$props;\n const shortcuts = getShortcutList();\n if (open) {\n $$renderer2.push(\"<!--[0-->\");\n {\n let content = function($$renderer3) {\n $$renderer3.push(`<div class=\"shortcuts-list svelte-1u7lstk\"><!--[-->`);\n const each_array = ensure_array_like(shortcuts);\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let shortcut = each_array[$$index];\n $$renderer3.push(`<div class=\"shortcut-row svelte-1u7lstk\"><span class=\"shortcut-desc svelte-1u7lstk\">${escape_html(shortcut.description)}</span> `);\n KeyboardInput($$renderer3, { keys: shortcut.keys, classes: \"shortcut-kbd\" });\n $$renderer3.push(`<!----></div>`);\n }\n $$renderer3.push(`<!--]--></div>`);\n };\n Modal($$renderer2, {\n header: { text: \"Keyboard Shortcuts\" },\n onoverlayClick: onClose,\n classes: \"shortcuts-modal\",\n content\n });\n }\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]-->`);\n });\n}\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let terminal = null;\n let showShortcutsHelp = false;\n let showCommandPalette = false;\n const isRunning = derived(() => terminal?.status === \"running\");\n const commandName = derived(() => \"terminal\");\n const paletteCommands = derived(() => {\n const cmds = [\n { action: () => void goto(), label: \"Go to Home\" },\n {\n action: () => void goto(),\n label: \"Go to Terminals\"\n },\n { action: () => void goto(), label: \"Go to Settings\" },\n {\n action: () => {\n showShortcutsHelp = true;\n },\n label: \"Show keyboard shortcuts\"\n }\n ];\n if (isRunning()) {\n cmds.push({ action: () => void killTerminal(), label: \"Kill terminal\" });\n }\n return cmds;\n });\n async function killTerminal() {\n {\n return;\n }\n }\n onDestroy(() => {\n });\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n head(\"1tubujq\", $$renderer3, ($$renderer4) => {\n $$renderer4.title(($$renderer5) => {\n $$renderer5.push(`<title>${escape_html(commandName())} - Terminal - Shooter</title>`);\n });\n $$renderer4.push(`<meta name=\"description\" content=\"Interactive terminal session\" class=\"svelte-1tubujq\"/>`);\n });\n {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<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>`);\n }\n $$renderer3.push(`<!--]--> `);\n ShortcutsHelp($$renderer3, {\n open: showShortcutsHelp,\n onClose: () => {\n showShortcutsHelp = false;\n }\n });\n $$renderer3.push(`<!----> `);\n CommandPalette($$renderer3, {\n commands: paletteCommands(),\n onClose: () => {\n showCommandPalette = false;\n },\n get open() {\n return showCommandPalette;\n },\n set open($$value) {\n showCommandPalette = $$value;\n $$settled = false;\n }\n });\n $$renderer3.push(`<!---->`);\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"}