@juspay/shooter 1.24.0 → 1.24.2

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 (341) hide show
  1. package/bin/lib/service-manager.cjs +148 -0
  2. package/bin/shooter.cjs +151 -62
  3. package/build/client/_app/immutable/chunks/{Dd1KNHg-.js → BBuzUXZ9.js} +1 -1
  4. package/build/client/_app/immutable/chunks/BBuzUXZ9.js.br +0 -0
  5. package/build/client/_app/immutable/chunks/BBuzUXZ9.js.gz +0 -0
  6. package/build/client/_app/immutable/chunks/BPIV28L3.js +3 -0
  7. package/build/client/_app/immutable/chunks/BPIV28L3.js.br +0 -0
  8. package/build/client/_app/immutable/chunks/BPIV28L3.js.gz +0 -0
  9. package/build/client/_app/immutable/chunks/{D868VwmX.js → BPIlDnhM.js} +1 -1
  10. package/build/client/_app/immutable/chunks/BPIlDnhM.js.br +0 -0
  11. package/build/client/_app/immutable/chunks/BPIlDnhM.js.gz +0 -0
  12. package/build/client/_app/immutable/chunks/{2rBV5OkJ.js → BQJR1fvD.js} +1 -1
  13. package/build/client/_app/immutable/chunks/BQJR1fvD.js.br +0 -0
  14. package/build/client/_app/immutable/chunks/BQJR1fvD.js.gz +0 -0
  15. package/build/client/_app/immutable/chunks/{DLu6yJIZ.js → BjXFD2Pv.js} +1 -1
  16. package/build/client/_app/immutable/chunks/BjXFD2Pv.js.br +0 -0
  17. package/build/client/_app/immutable/chunks/BjXFD2Pv.js.gz +0 -0
  18. package/build/client/_app/immutable/chunks/{C4Hns_Wl.js → CnsJhNGt.js} +1 -1
  19. package/build/client/_app/immutable/chunks/CnsJhNGt.js.br +0 -0
  20. package/build/client/_app/immutable/chunks/CnsJhNGt.js.gz +0 -0
  21. package/build/client/_app/immutable/chunks/{DomZZqvG.js → DFa6kKPT.js} +1 -1
  22. package/build/client/_app/immutable/chunks/DFa6kKPT.js.br +0 -0
  23. package/build/client/_app/immutable/chunks/DFa6kKPT.js.gz +0 -0
  24. package/build/client/_app/immutable/chunks/{BcpydfqI.js → DcXdn821.js} +1 -1
  25. package/build/client/_app/immutable/chunks/DcXdn821.js.br +0 -0
  26. package/build/client/_app/immutable/chunks/DcXdn821.js.gz +0 -0
  27. package/build/client/_app/immutable/chunks/Dk1NUsIU.js +61 -0
  28. package/build/client/_app/immutable/chunks/Dk1NUsIU.js.br +0 -0
  29. package/build/client/_app/immutable/chunks/Dk1NUsIU.js.gz +0 -0
  30. package/build/client/_app/immutable/chunks/DoGIJDSZ.js +2 -0
  31. package/build/client/_app/immutable/chunks/DoGIJDSZ.js.br +0 -0
  32. package/build/client/_app/immutable/chunks/DoGIJDSZ.js.gz +0 -0
  33. package/build/client/_app/immutable/chunks/{V8pbM9cl.js → Dqmsaccg.js} +1 -1
  34. package/build/client/_app/immutable/chunks/Dqmsaccg.js.br +0 -0
  35. package/build/client/_app/immutable/chunks/Dqmsaccg.js.gz +0 -0
  36. package/build/client/_app/immutable/chunks/{B1bOvemT.js → aiM7Bbhi.js} +8 -8
  37. package/build/client/_app/immutable/chunks/aiM7Bbhi.js.br +0 -0
  38. package/build/client/_app/immutable/chunks/aiM7Bbhi.js.gz +0 -0
  39. package/build/client/_app/immutable/chunks/{CJulw9ux.js → etLjvmY8.js} +1 -1
  40. package/build/client/_app/immutable/chunks/{CJulw9ux.js.br → etLjvmY8.js.br} +0 -0
  41. package/build/client/_app/immutable/chunks/etLjvmY8.js.gz +0 -0
  42. package/build/client/_app/immutable/chunks/kzeZOqU5.js +1 -0
  43. package/build/client/_app/immutable/chunks/kzeZOqU5.js.br +0 -0
  44. package/build/client/_app/immutable/chunks/kzeZOqU5.js.gz +0 -0
  45. package/build/client/_app/immutable/chunks/{i5iZvmIH.js → oIHVoAuz.js} +1 -1
  46. package/build/client/_app/immutable/chunks/oIHVoAuz.js.br +0 -0
  47. package/build/client/_app/immutable/chunks/oIHVoAuz.js.gz +0 -0
  48. package/build/client/_app/immutable/entry/app.Bu4nq_bk.js +2 -0
  49. package/build/client/_app/immutable/entry/app.Bu4nq_bk.js.br +0 -0
  50. package/build/client/_app/immutable/entry/app.Bu4nq_bk.js.gz +0 -0
  51. package/build/client/_app/immutable/entry/start.CbpzR6Gp.js +1 -0
  52. package/build/client/_app/immutable/entry/start.CbpzR6Gp.js.br +2 -0
  53. package/build/client/_app/immutable/entry/start.CbpzR6Gp.js.gz +0 -0
  54. package/build/client/_app/immutable/nodes/{0.BRFdS_ay.js → 0.CnSSjKHX.js} +1 -1
  55. package/build/client/_app/immutable/nodes/0.CnSSjKHX.js.br +0 -0
  56. package/build/client/_app/immutable/nodes/0.CnSSjKHX.js.gz +0 -0
  57. package/build/client/_app/immutable/nodes/{1.B1pgwYu3.js → 1.D_5wZINa.js} +1 -1
  58. package/build/client/_app/immutable/nodes/1.D_5wZINa.js.br +0 -0
  59. package/build/client/_app/immutable/nodes/1.D_5wZINa.js.gz +0 -0
  60. package/build/client/_app/immutable/nodes/{10.558mUFIl.js → 10.C_B2eMms.js} +1 -1
  61. package/build/client/_app/immutable/nodes/10.C_B2eMms.js.br +0 -0
  62. package/build/client/_app/immutable/nodes/10.C_B2eMms.js.gz +0 -0
  63. package/build/client/_app/immutable/nodes/{11.CdmPyt4k.js → 11.DUKnn5ja.js} +2 -2
  64. package/build/client/_app/immutable/nodes/11.DUKnn5ja.js.br +0 -0
  65. package/build/client/_app/immutable/nodes/11.DUKnn5ja.js.gz +0 -0
  66. package/build/client/_app/immutable/nodes/{2.1tiK5o4L.js → 2.C37CZKYv.js} +1 -1
  67. package/build/client/_app/immutable/nodes/2.C37CZKYv.js.br +0 -0
  68. package/build/client/_app/immutable/nodes/2.C37CZKYv.js.gz +0 -0
  69. package/build/client/_app/immutable/nodes/{3.DyQTorXE.js → 3.C48G514u.js} +1 -1
  70. package/build/client/_app/immutable/nodes/3.C48G514u.js.br +0 -0
  71. package/build/client/_app/immutable/nodes/3.C48G514u.js.gz +0 -0
  72. package/build/client/_app/immutable/nodes/{4.BFYS2g9C.js → 4.C9fv_m2R.js} +1 -1
  73. package/build/client/_app/immutable/nodes/4.C9fv_m2R.js.br +0 -0
  74. package/build/client/_app/immutable/nodes/4.C9fv_m2R.js.gz +0 -0
  75. package/build/client/_app/immutable/nodes/{5.DziEu9rx.js → 5.vMR5XEA6.js} +1 -1
  76. package/build/client/_app/immutable/nodes/5.vMR5XEA6.js.br +0 -0
  77. package/build/client/_app/immutable/nodes/5.vMR5XEA6.js.gz +0 -0
  78. package/build/client/_app/immutable/nodes/{6.Chn2ZM2V.js → 6.DGlutNk6.js} +1 -1
  79. package/build/client/_app/immutable/nodes/6.DGlutNk6.js.br +0 -0
  80. package/build/client/_app/immutable/nodes/6.DGlutNk6.js.gz +0 -0
  81. package/build/client/_app/immutable/nodes/{7.DhJ2K3GQ.js → 7.BXAYsEHF.js} +1 -1
  82. package/build/client/_app/immutable/nodes/7.BXAYsEHF.js.br +0 -0
  83. package/build/client/_app/immutable/nodes/7.BXAYsEHF.js.gz +0 -0
  84. package/build/client/_app/immutable/nodes/{8.B4pLxBkI.js → 8.D-SxCq24.js} +1 -1
  85. package/build/client/_app/immutable/nodes/8.D-SxCq24.js.br +0 -0
  86. package/build/client/_app/immutable/nodes/8.D-SxCq24.js.gz +0 -0
  87. package/build/client/_app/immutable/nodes/{9.CVsskPw5.js → 9.Bek2YR4U.js} +1 -1
  88. package/build/client/_app/immutable/nodes/9.Bek2YR4U.js.br +0 -0
  89. package/build/client/_app/immutable/nodes/9.Bek2YR4U.js.gz +0 -0
  90. package/build/client/_app/version.json +1 -1
  91. package/build/client/_app/version.json.br +0 -0
  92. package/build/client/_app/version.json.gz +0 -0
  93. package/build/server/chunks/{0-DZO0pCuJ.js → 0-ByOnI9Md.js} +3 -3
  94. package/build/server/chunks/{0-DZO0pCuJ.js.map → 0-ByOnI9Md.js.map} +1 -1
  95. package/build/server/chunks/1-DcJwehLu.js +9 -0
  96. package/build/server/chunks/{1-D2SDQFeq.js.map → 1-DcJwehLu.js.map} +1 -1
  97. package/build/server/chunks/10-B5bdfDfK.js +9 -0
  98. package/build/server/chunks/{10-CEJDEhpQ.js.map → 10-B5bdfDfK.js.map} +1 -1
  99. package/build/server/chunks/11-DOJ9j7KC.js +9 -0
  100. package/build/server/chunks/{11-CMC_i3co.js.map → 11-DOJ9j7KC.js.map} +1 -1
  101. package/build/server/chunks/{2-C1XSBNj7.js → 2-BY0LGSMl.js} +3 -3
  102. package/build/server/chunks/{2-C1XSBNj7.js.map → 2-BY0LGSMl.js.map} +1 -1
  103. package/build/server/chunks/{3-DRjTDzaV.js → 3-DEa6RtDT.js} +3 -3
  104. package/build/server/chunks/{3-DRjTDzaV.js.map → 3-DEa6RtDT.js.map} +1 -1
  105. package/build/server/chunks/{4-D92KnTmb.js → 4-w2W_T8ax.js} +3 -3
  106. package/build/server/chunks/{4-D92KnTmb.js.map → 4-w2W_T8ax.js.map} +1 -1
  107. package/build/server/chunks/{5-D-Uv1voC.js → 5-BKDmLKb4.js} +3 -3
  108. package/build/server/chunks/{5-D-Uv1voC.js.map → 5-BKDmLKb4.js.map} +1 -1
  109. package/build/server/chunks/6-DoTu6ygH.js +9 -0
  110. package/build/server/chunks/{6-BcgshtK4.js.map → 6-DoTu6ygH.js.map} +1 -1
  111. package/build/server/chunks/7-CYQ9V6d4.js +9 -0
  112. package/build/server/chunks/{7-BBsuxiGz.js.map → 7-CYQ9V6d4.js.map} +1 -1
  113. package/build/server/chunks/8-DMwmCD5X.js +9 -0
  114. package/build/server/chunks/{8-B0qM-Zzs.js.map → 8-DMwmCD5X.js.map} +1 -1
  115. package/build/server/chunks/9-CNmPa2Jo.js +9 -0
  116. package/build/server/chunks/{9-XIfsp2D_.js.map → 9-CNmPa2Jo.js.map} +1 -1
  117. package/build/server/chunks/{Banner-BgaAs1rs.js → Banner-8zU7JxF6.js} +3 -3
  118. package/build/server/chunks/Banner-8zU7JxF6.js.map +1 -0
  119. package/build/server/chunks/{Button-D0hZ7JYt.js → Button-DmE4ENkb.js} +2 -2
  120. package/build/server/chunks/Button-DmE4ENkb.js.map +1 -0
  121. package/build/server/chunks/{Icon-D0GBnDcs.js → Icon-By4fwUeB.js} +3 -3
  122. package/build/server/chunks/Icon-By4fwUeB.js.map +1 -0
  123. package/build/server/chunks/{Input-OmIiydSx.js → Input-DP3ahKZB.js} +2 -2
  124. package/build/server/chunks/Input-DP3ahKZB.js.map +1 -0
  125. package/build/server/chunks/{Pill-4xJ-VhAA.js → Pill-DwAR6cas.js} +3 -3
  126. package/build/server/chunks/Pill-DwAR6cas.js.map +1 -0
  127. package/build/server/chunks/{Shimmer-Dw2uvTC1.js → Shimmer-Bo1CUNAU.js} +2 -2
  128. package/build/server/chunks/Shimmer-Bo1CUNAU.js.map +1 -0
  129. package/build/server/chunks/{_error.svelte-CZnkxeLr.js → _error.svelte-r3eJvFdN.js} +8 -8
  130. package/build/server/chunks/_error.svelte-r3eJvFdN.js.map +1 -0
  131. package/build/server/chunks/{_layout.svelte-DfgNGGiM.js → _layout.svelte-BlI9weU7.js} +10 -10
  132. package/build/server/chunks/_layout.svelte-BlI9weU7.js.map +1 -0
  133. package/build/server/chunks/{_page.svelte-dabsQl9c.js → _page.svelte-B7_oMI0l.js} +10 -10
  134. package/build/server/chunks/_page.svelte-B7_oMI0l.js.map +1 -0
  135. package/build/server/chunks/{_page.svelte-CWsjjd4l.js → _page.svelte-BB3pLObN.js} +9 -9
  136. package/build/server/chunks/_page.svelte-BB3pLObN.js.map +1 -0
  137. package/build/server/chunks/{_page.svelte-CE7COWnF.js → _page.svelte-BDoNXDBU.js} +7 -7
  138. package/build/server/chunks/_page.svelte-BDoNXDBU.js.map +1 -0
  139. package/build/server/chunks/{_page.svelte-8OFzwdNA.js → _page.svelte-CMryWeEG.js} +11 -11
  140. package/build/server/chunks/_page.svelte-CMryWeEG.js.map +1 -0
  141. package/build/server/chunks/{_page.svelte-D_Ey8QRG.js → _page.svelte-CS4GU4ex.js} +11 -11
  142. package/build/server/chunks/_page.svelte-CS4GU4ex.js.map +1 -0
  143. package/build/server/chunks/{_page.svelte-D5S2hkBk.js → _page.svelte-CUfOc8Hm.js} +9 -9
  144. package/build/server/chunks/{_page.svelte-D5S2hkBk.js.map → _page.svelte-CUfOc8Hm.js.map} +1 -1
  145. package/build/server/chunks/{_page.svelte-BTlfUsBp.js → _page.svelte-Cj5OW0HR.js} +6 -6
  146. package/build/server/chunks/_page.svelte-Cj5OW0HR.js.map +1 -0
  147. package/build/server/chunks/{_page.svelte-Gv9p8nlS.js → _page.svelte-DDE2nChH.js} +6 -6
  148. package/build/server/chunks/_page.svelte-DDE2nChH.js.map +1 -0
  149. package/build/server/chunks/{_page.svelte-BX2FMgSg.js → _page.svelte-svT4jMLg.js} +4 -4
  150. package/build/server/chunks/{_page.svelte-BX2FMgSg.js.map → _page.svelte-svT4jMLg.js.map} +1 -1
  151. package/build/server/chunks/{_page.svelte-C7B0qdrC.js → _page.svelte-vtaZs27Q.js} +5 -5
  152. package/build/server/chunks/_page.svelte-vtaZs27Q.js.map +1 -0
  153. package/build/server/chunks/{_server.ts-DtT-ZXki.js → _server.ts--7PnGah8.js} +2 -2
  154. package/build/server/chunks/{_server.ts-DtT-ZXki.js.map → _server.ts--7PnGah8.js.map} +1 -1
  155. package/build/server/chunks/{_server.ts-Mttr0-Sl.js → _server.ts-57dINphj.js} +2 -2
  156. package/build/server/chunks/{_server.ts-Mttr0-Sl.js.map → _server.ts-57dINphj.js.map} +1 -1
  157. package/build/server/chunks/{_server.ts-BCljU9Sg.js → _server.ts-5ZMeZtad.js} +2 -2
  158. package/build/server/chunks/{_server.ts-BCljU9Sg.js.map → _server.ts-5ZMeZtad.js.map} +1 -1
  159. package/build/server/chunks/{_server.ts-CGqCOCdK.js → _server.ts-ArA8CrYi.js} +2 -2
  160. package/build/server/chunks/{_server.ts-CGqCOCdK.js.map → _server.ts-ArA8CrYi.js.map} +1 -1
  161. package/build/server/chunks/{_server.ts-DPHRUFYS.js → _server.ts-BKqxnNf1.js} +2 -2
  162. package/build/server/chunks/{_server.ts-DPHRUFYS.js.map → _server.ts-BKqxnNf1.js.map} +1 -1
  163. package/build/server/chunks/{_server.ts-BXhmLZwN.js → _server.ts-BTNIhKVv.js} +2 -2
  164. package/build/server/chunks/{_server.ts-BXhmLZwN.js.map → _server.ts-BTNIhKVv.js.map} +1 -1
  165. package/build/server/chunks/{_server.ts-BhP3b8A5.js → _server.ts-Bcagaih0.js} +2 -2
  166. package/build/server/chunks/{_server.ts-BhP3b8A5.js.map → _server.ts-Bcagaih0.js.map} +1 -1
  167. package/build/server/chunks/{_server.ts-B-evHL2q.js → _server.ts-Bmp-ldee.js} +2 -2
  168. package/build/server/chunks/{_server.ts-B-evHL2q.js.map → _server.ts-Bmp-ldee.js.map} +1 -1
  169. package/build/server/chunks/{_server.ts-QN-Bo5ql.js → _server.ts-BrDK1fJ9.js} +2 -2
  170. package/build/server/chunks/{_server.ts-QN-Bo5ql.js.map → _server.ts-BrDK1fJ9.js.map} +1 -1
  171. package/build/server/chunks/{_server.ts-D9ir7u24.js → _server.ts-C-XPLtdp.js} +2 -2
  172. package/build/server/chunks/{_server.ts-D9ir7u24.js.map → _server.ts-C-XPLtdp.js.map} +1 -1
  173. package/build/server/chunks/{_server.ts-B-Gekwsu.js → _server.ts-C3rA9AOZ.js} +2 -2
  174. package/build/server/chunks/{_server.ts-B-Gekwsu.js.map → _server.ts-C3rA9AOZ.js.map} +1 -1
  175. package/build/server/chunks/{_server.ts-DZvfyuNj.js → _server.ts-CDeJYhn1.js} +2 -2
  176. package/build/server/chunks/{_server.ts-DZvfyuNj.js.map → _server.ts-CDeJYhn1.js.map} +1 -1
  177. package/build/server/chunks/{_server.ts-Cx0S__hk.js → _server.ts-CLxpocw5.js} +2 -2
  178. package/build/server/chunks/{_server.ts-Cx0S__hk.js.map → _server.ts-CLxpocw5.js.map} +1 -1
  179. package/build/server/chunks/{_server.ts-D_WRex0k.js → _server.ts-COpXw9HU.js} +2 -2
  180. package/build/server/chunks/{_server.ts-D_WRex0k.js.map → _server.ts-COpXw9HU.js.map} +1 -1
  181. package/build/server/chunks/{_server.ts-DkZX_O9a.js → _server.ts-CYfsIgGS.js} +2 -2
  182. package/build/server/chunks/{_server.ts-DkZX_O9a.js.map → _server.ts-CYfsIgGS.js.map} +1 -1
  183. package/build/server/chunks/{_server.ts-MbnroWEF.js → _server.ts-CZFcAWEP.js} +2 -2
  184. package/build/server/chunks/{_server.ts-MbnroWEF.js.map → _server.ts-CZFcAWEP.js.map} +1 -1
  185. package/build/server/chunks/{_server.ts-DpRr0Tfh.js → _server.ts-Cm0noZR0.js} +2 -2
  186. package/build/server/chunks/{_server.ts-DpRr0Tfh.js.map → _server.ts-Cm0noZR0.js.map} +1 -1
  187. package/build/server/chunks/{_server.ts-BaaY7Z9D.js → _server.ts-Cu_4i2k1.js} +2 -2
  188. package/build/server/chunks/{_server.ts-BaaY7Z9D.js.map → _server.ts-Cu_4i2k1.js.map} +1 -1
  189. package/build/server/chunks/{_server.ts-BLNDdFWC.js → _server.ts-D2RS8TFd.js} +2 -2
  190. package/build/server/chunks/{_server.ts-BLNDdFWC.js.map → _server.ts-D2RS8TFd.js.map} +1 -1
  191. package/build/server/chunks/{_server.ts-BScvgttw.js → _server.ts-D9_hkPQ6.js} +2 -2
  192. package/build/server/chunks/{_server.ts-BScvgttw.js.map → _server.ts-D9_hkPQ6.js.map} +1 -1
  193. package/build/server/chunks/{_server.ts-BbRSpB74.js → _server.ts-DFI6mMYL.js} +2 -2
  194. package/build/server/chunks/{_server.ts-BbRSpB74.js.map → _server.ts-DFI6mMYL.js.map} +1 -1
  195. package/build/server/chunks/{_server.ts-C6NRpe7e.js → _server.ts-DGPBCKvQ.js} +2 -2
  196. package/build/server/chunks/{_server.ts-C6NRpe7e.js.map → _server.ts-DGPBCKvQ.js.map} +1 -1
  197. package/build/server/chunks/{_server.ts-BB46Fbqn.js → _server.ts-DRRGeb__.js} +2 -2
  198. package/build/server/chunks/{_server.ts-BB46Fbqn.js.map → _server.ts-DRRGeb__.js.map} +1 -1
  199. package/build/server/chunks/{_server.ts-CTdFxJdD.js → _server.ts-DaA9ZSqv.js} +2 -2
  200. package/build/server/chunks/{_server.ts-CTdFxJdD.js.map → _server.ts-DaA9ZSqv.js.map} +1 -1
  201. package/build/server/chunks/{_server.ts-05JJOdcX.js → _server.ts-DfscXcFe.js} +38 -23
  202. package/build/server/chunks/_server.ts-DfscXcFe.js.map +1 -0
  203. package/build/server/chunks/{_server.ts-CVPZOpiv.js → _server.ts-DlGrc8cE.js} +2 -2
  204. package/build/server/chunks/{_server.ts-CVPZOpiv.js.map → _server.ts-DlGrc8cE.js.map} +1 -1
  205. package/build/server/chunks/{_server.ts-C0317RBD.js → _server.ts-DuAA6Ks-.js} +2 -2
  206. package/build/server/chunks/{_server.ts-C0317RBD.js.map → _server.ts-DuAA6Ks-.js.map} +1 -1
  207. package/build/server/chunks/{_server.ts-BTmknWpO.js → _server.ts-EJVmhLtg.js} +2 -2
  208. package/build/server/chunks/{_server.ts-BTmknWpO.js.map → _server.ts-EJVmhLtg.js.map} +1 -1
  209. package/build/server/chunks/{_server.ts-jtqWDWcf.js → _server.ts-NVx03KEN.js} +2 -2
  210. package/build/server/chunks/{_server.ts-jtqWDWcf.js.map → _server.ts-NVx03KEN.js.map} +1 -1
  211. package/build/server/chunks/{_server.ts-W6i3EnGX.js → _server.ts-o_sRQMMS.js} +2 -2
  212. package/build/server/chunks/{_server.ts-W6i3EnGX.js.map → _server.ts-o_sRQMMS.js.map} +1 -1
  213. package/build/server/chunks/{_server.ts-DOGUMzPx.js → _server.ts-v7TaT83B.js} +2 -2
  214. package/build/server/chunks/{_server.ts-DOGUMzPx.js.map → _server.ts-v7TaT83B.js.map} +1 -1
  215. package/build/server/chunks/{cache-BlMaDsHi.js → cache-De-MXr04.js} +2 -2
  216. package/build/server/chunks/cache-De-MXr04.js.map +1 -0
  217. package/build/server/chunks/{client-Ds1brw-8.js → client-dJTdv51U.js} +4 -4
  218. package/build/server/chunks/client-dJTdv51U.js.map +1 -0
  219. package/build/server/chunks/client2-CZlO7zn4.js +7 -0
  220. package/build/server/chunks/{client2-DngLdcUc.js.map → client2-CZlO7zn4.js.map} +1 -1
  221. package/build/server/chunks/{index2-dSGQ9Eaa.js → index-L-OMOXY-.js} +2 -2
  222. package/build/server/chunks/index-L-OMOXY-.js.map +1 -0
  223. package/build/server/chunks/{index-CoD1IJuy.js → index-lhTMmBNn.js} +20 -3
  224. package/build/server/chunks/index-lhTMmBNn.js.map +1 -0
  225. package/build/server/chunks/{index-server-Bq3cnK69.js → index-server-CdDI4vgN.js} +2 -2
  226. package/build/server/chunks/index-server-CdDI4vgN.js.map +1 -0
  227. package/build/server/chunks/{index-CoYB03g7.js → index2-BLq4EEng.js} +1627 -1627
  228. package/build/server/chunks/index2-BLq4EEng.js.map +1 -0
  229. package/build/server/chunks/pty-manager-BsHXoNks.js.map +1 -1
  230. package/build/server/chunks/qwen-reader-DGfUbKaJ.js.map +1 -1
  231. package/build/server/chunks/registry-D4J_CuzW.js.map +1 -1
  232. package/build/server/chunks/{root-D4IoFC8F.js → root-Ce8FGAoU.js} +42 -43
  233. package/build/server/chunks/root-Ce8FGAoU.js.map +1 -0
  234. package/build/server/chunks/{state.svelte-CmHqngc_.js → state.svelte-DCKkPJr6.js} +3 -3
  235. package/build/server/chunks/state.svelte-DCKkPJr6.js.map +1 -0
  236. package/build/server/chunks/{stores-CRYxfF0o.js → stores-CVemzLCH.js} +4 -4
  237. package/build/server/chunks/stores-CVemzLCH.js.map +1 -0
  238. package/build/server/index.js +365 -169
  239. package/build/server/index.js.map +1 -1
  240. package/build/server/manifest.js +44 -44
  241. package/build/server/manifest.js.map +1 -1
  242. package/package.json +2 -2
  243. package/src/lib/modules/server/apn/device-token.ts +57 -0
  244. package/src/routes/api/notify/+server.ts +20 -35
  245. package/build/client/_app/immutable/chunks/2rBV5OkJ.js.br +0 -0
  246. package/build/client/_app/immutable/chunks/2rBV5OkJ.js.gz +0 -0
  247. package/build/client/_app/immutable/chunks/B1bOvemT.js.br +0 -0
  248. package/build/client/_app/immutable/chunks/B1bOvemT.js.gz +0 -0
  249. package/build/client/_app/immutable/chunks/BDcFu3l7.js +0 -61
  250. package/build/client/_app/immutable/chunks/BDcFu3l7.js.br +0 -0
  251. package/build/client/_app/immutable/chunks/BDcFu3l7.js.gz +0 -0
  252. package/build/client/_app/immutable/chunks/BPDiEZo0.js +0 -2
  253. package/build/client/_app/immutable/chunks/BPDiEZo0.js.br +0 -0
  254. package/build/client/_app/immutable/chunks/BPDiEZo0.js.gz +0 -0
  255. package/build/client/_app/immutable/chunks/BcpydfqI.js.br +0 -0
  256. package/build/client/_app/immutable/chunks/BcpydfqI.js.gz +0 -0
  257. package/build/client/_app/immutable/chunks/C4Hns_Wl.js.br +0 -0
  258. package/build/client/_app/immutable/chunks/C4Hns_Wl.js.gz +0 -0
  259. package/build/client/_app/immutable/chunks/CJulw9ux.js.gz +0 -0
  260. package/build/client/_app/immutable/chunks/CbINytmr.js +0 -3
  261. package/build/client/_app/immutable/chunks/CbINytmr.js.br +0 -0
  262. package/build/client/_app/immutable/chunks/CbINytmr.js.gz +0 -0
  263. package/build/client/_app/immutable/chunks/D868VwmX.js.br +0 -0
  264. package/build/client/_app/immutable/chunks/D868VwmX.js.gz +0 -0
  265. package/build/client/_app/immutable/chunks/DLu6yJIZ.js.br +0 -0
  266. package/build/client/_app/immutable/chunks/DLu6yJIZ.js.gz +0 -0
  267. package/build/client/_app/immutable/chunks/DWmC0QM7.js +0 -1
  268. package/build/client/_app/immutable/chunks/DWmC0QM7.js.br +0 -0
  269. package/build/client/_app/immutable/chunks/DWmC0QM7.js.gz +0 -0
  270. package/build/client/_app/immutable/chunks/Dd1KNHg-.js.br +0 -0
  271. package/build/client/_app/immutable/chunks/Dd1KNHg-.js.gz +0 -0
  272. package/build/client/_app/immutable/chunks/DomZZqvG.js.br +0 -0
  273. package/build/client/_app/immutable/chunks/DomZZqvG.js.gz +0 -0
  274. package/build/client/_app/immutable/chunks/V8pbM9cl.js.br +0 -0
  275. package/build/client/_app/immutable/chunks/V8pbM9cl.js.gz +0 -0
  276. package/build/client/_app/immutable/chunks/i5iZvmIH.js.br +0 -0
  277. package/build/client/_app/immutable/chunks/i5iZvmIH.js.gz +0 -0
  278. package/build/client/_app/immutable/entry/app.CiQHPW0j.js +0 -2
  279. package/build/client/_app/immutable/entry/app.CiQHPW0j.js.br +0 -0
  280. package/build/client/_app/immutable/entry/app.CiQHPW0j.js.gz +0 -0
  281. package/build/client/_app/immutable/entry/start.DUCXuMLl.js +0 -1
  282. package/build/client/_app/immutable/entry/start.DUCXuMLl.js.br +0 -2
  283. package/build/client/_app/immutable/entry/start.DUCXuMLl.js.gz +0 -0
  284. package/build/client/_app/immutable/nodes/0.BRFdS_ay.js.br +0 -0
  285. package/build/client/_app/immutable/nodes/0.BRFdS_ay.js.gz +0 -0
  286. package/build/client/_app/immutable/nodes/1.B1pgwYu3.js.br +0 -0
  287. package/build/client/_app/immutable/nodes/1.B1pgwYu3.js.gz +0 -0
  288. package/build/client/_app/immutable/nodes/10.558mUFIl.js.br +0 -0
  289. package/build/client/_app/immutable/nodes/10.558mUFIl.js.gz +0 -0
  290. package/build/client/_app/immutable/nodes/11.CdmPyt4k.js.br +0 -0
  291. package/build/client/_app/immutable/nodes/11.CdmPyt4k.js.gz +0 -0
  292. package/build/client/_app/immutable/nodes/2.1tiK5o4L.js.br +0 -0
  293. package/build/client/_app/immutable/nodes/2.1tiK5o4L.js.gz +0 -0
  294. package/build/client/_app/immutable/nodes/3.DyQTorXE.js.br +0 -0
  295. package/build/client/_app/immutable/nodes/3.DyQTorXE.js.gz +0 -0
  296. package/build/client/_app/immutable/nodes/4.BFYS2g9C.js.br +0 -0
  297. package/build/client/_app/immutable/nodes/4.BFYS2g9C.js.gz +0 -0
  298. package/build/client/_app/immutable/nodes/5.DziEu9rx.js.br +0 -0
  299. package/build/client/_app/immutable/nodes/5.DziEu9rx.js.gz +0 -0
  300. package/build/client/_app/immutable/nodes/6.Chn2ZM2V.js.br +0 -0
  301. package/build/client/_app/immutable/nodes/6.Chn2ZM2V.js.gz +0 -0
  302. package/build/client/_app/immutable/nodes/7.DhJ2K3GQ.js.br +0 -0
  303. package/build/client/_app/immutable/nodes/7.DhJ2K3GQ.js.gz +0 -0
  304. package/build/client/_app/immutable/nodes/8.B4pLxBkI.js.br +0 -0
  305. package/build/client/_app/immutable/nodes/8.B4pLxBkI.js.gz +0 -0
  306. package/build/client/_app/immutable/nodes/9.CVsskPw5.js.br +0 -0
  307. package/build/client/_app/immutable/nodes/9.CVsskPw5.js.gz +0 -0
  308. package/build/server/chunks/1-D2SDQFeq.js +0 -9
  309. package/build/server/chunks/10-CEJDEhpQ.js +0 -9
  310. package/build/server/chunks/11-CMC_i3co.js +0 -9
  311. package/build/server/chunks/6-BcgshtK4.js +0 -9
  312. package/build/server/chunks/7-BBsuxiGz.js +0 -9
  313. package/build/server/chunks/8-B0qM-Zzs.js +0 -9
  314. package/build/server/chunks/9-XIfsp2D_.js +0 -9
  315. package/build/server/chunks/Banner-BgaAs1rs.js.map +0 -1
  316. package/build/server/chunks/Button-D0hZ7JYt.js.map +0 -1
  317. package/build/server/chunks/Icon-D0GBnDcs.js.map +0 -1
  318. package/build/server/chunks/Input-OmIiydSx.js.map +0 -1
  319. package/build/server/chunks/Pill-4xJ-VhAA.js.map +0 -1
  320. package/build/server/chunks/Shimmer-Dw2uvTC1.js.map +0 -1
  321. package/build/server/chunks/_error.svelte-CZnkxeLr.js.map +0 -1
  322. package/build/server/chunks/_layout.svelte-DfgNGGiM.js.map +0 -1
  323. package/build/server/chunks/_page.svelte-8OFzwdNA.js.map +0 -1
  324. package/build/server/chunks/_page.svelte-BTlfUsBp.js.map +0 -1
  325. package/build/server/chunks/_page.svelte-C7B0qdrC.js.map +0 -1
  326. package/build/server/chunks/_page.svelte-CE7COWnF.js.map +0 -1
  327. package/build/server/chunks/_page.svelte-CWsjjd4l.js.map +0 -1
  328. package/build/server/chunks/_page.svelte-D_Ey8QRG.js.map +0 -1
  329. package/build/server/chunks/_page.svelte-Gv9p8nlS.js.map +0 -1
  330. package/build/server/chunks/_page.svelte-dabsQl9c.js.map +0 -1
  331. package/build/server/chunks/_server.ts-05JJOdcX.js.map +0 -1
  332. package/build/server/chunks/cache-BlMaDsHi.js.map +0 -1
  333. package/build/server/chunks/client-Ds1brw-8.js.map +0 -1
  334. package/build/server/chunks/client2-DngLdcUc.js +0 -7
  335. package/build/server/chunks/index-CoD1IJuy.js.map +0 -1
  336. package/build/server/chunks/index-CoYB03g7.js.map +0 -1
  337. package/build/server/chunks/index-server-Bq3cnK69.js.map +0 -1
  338. package/build/server/chunks/index2-dSGQ9Eaa.js.map +0 -1
  339. package/build/server/chunks/root-D4IoFC8F.js.map +0 -1
  340. package/build/server/chunks/state.svelte-CmHqngc_.js.map +0 -1
  341. package/build/server/chunks/stores-CRYxfF0o.js.map +0 -1
@@ -1,8 +1,8 @@
1
- import { ao as store_get, aq as unsubscribe_stores, aw as head, au as escape_html } from './index-CoYB03g7.js';
2
- import { p as page } from './stores-CRYxfF0o.js';
3
- import { o as onDestroy } from './index-server-Bq3cnK69.js';
4
- import './root-D4IoFC8F.js';
5
- import './state.svelte-CmHqngc_.js';
1
+ import { ao as store_get, aq as unsubscribe_stores, aw as head, au as escape_html } from './index2-BLq4EEng.js';
2
+ import { p as page } from './stores-CVemzLCH.js';
3
+ import { o as onDestroy } from './index-server-CdDI4vgN.js';
4
+ import './root-Ce8FGAoU.js';
5
+ import './state.svelte-DCKkPJr6.js';
6
6
 
7
7
  /* empty css */
8
8
  function _page($$renderer, $$props) {
@@ -40,4 +40,4 @@ function _page($$renderer, $$props) {
40
40
  }
41
41
 
42
42
  export { _page as default };
43
- //# sourceMappingURL=_page.svelte-BTlfUsBp.js.map
43
+ //# sourceMappingURL=_page.svelte-Cj5OW0HR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_page.svelte-Cj5OW0HR.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/sos/_id_/_page.svelte.js"],"sourcesContent":["import { s as store_get, u as unsubscribe_stores, h as head, e as escape_html } from \"../../../../chunks/index2.js\";\nimport { p as page } from \"../../../../chunks/stores.js\";\nimport { o as onDestroy } from \"../../../../chunks/index-server.js\";\n/* empty css */\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n var $$store_subs;\n store_get($$store_subs ??= {}, \"$page\", page).params.id ?? \"\";\n onDestroy(() => {\n });\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n head(\"4802gc\", $$renderer3, ($$renderer4) => {\n $$renderer4.title(($$renderer5) => {\n $$renderer5.push(`<title>${escape_html(\"Super-session\")} - Shooter</title>`);\n });\n });\n $$renderer3.push(`<main class=\"main sos-view svelte-4802gc\"><a class=\"back svelte-4802gc\" href=\"/sos\">← All super-sessions</a> `);\n {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> `);\n {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--></main>`);\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 if ($$store_subs) unsubscribe_stores($$store_subs);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":";;;;;;AAGA;AACA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,IAAI,IAAI,YAAY;AACpB,IAAI,SAAS,CAAC,YAAY,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE;AACjE,IAAI,SAAS,CAAC,MAAM;AACpB,IAAI,CAAC,CAAC;AACN,IAAI,IAAI,SAAS,GAAG,IAAI;AACxB,IAAI,IAAI,gBAAgB;AACxB,IAAI,SAAS,cAAc,CAAC,WAAW,EAAE;AACzC,MAAM,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,WAAW,KAAK;AACnD,QAAQ,WAAW,CAAC,KAAK,CAAC,CAAC,WAAW,KAAK;AAC3C,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC,kBAAkB,CAAC,CAAC;AACtF,QAAQ,CAAC,CAAC;AACV,MAAM,CAAC,CAAC;AACR,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,6GAA6G,CAAC,CAAC;AACvI,MAAM;AACN,QAAQ,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,MAAM;AACN,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AACnC,MAAM;AACN,QAAQ,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,MAAM;AACN,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC;AACzC,IAAI;AACJ,IAAI,GAAG;AACP,MAAM,SAAS,GAAG,IAAI;AACtB,MAAM,gBAAgB,GAAG,WAAW,CAAC,IAAI,EAAE;AAC3C,MAAM,cAAc,CAAC,gBAAgB,CAAC;AACtC,IAAI,CAAC,QAAQ,CAAC,SAAS;AACvB,IAAI,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC;AACzC,IAAI,IAAI,YAAY,EAAE,kBAAkB,CAAC,YAAY,CAAC;AACtD,EAAE,CAAC,CAAC;AACJ;;;;"}
@@ -1,9 +1,9 @@
1
- import { aw as head, ap as attr_class, an as stringify, au as escape_html, ax as ensure_array_like, as as attr } from './index-CoYB03g7.js';
1
+ import { aw as head, ap as attr_class, an as stringify, au as escape_html, ax as ensure_array_like, as as attr } from './index2-BLq4EEng.js';
2
2
  import './markdown-W_mTBct0.js';
3
- import { B as Button } from './Button-D0hZ7JYt.js';
4
- import { I as Input } from './Input-OmIiydSx.js';
5
- import { I as Icon } from './Icon-D0GBnDcs.js';
6
- import { B as Banner } from './Banner-BgaAs1rs.js';
3
+ import { B as Button } from './Button-DmE4ENkb.js';
4
+ import { I as Input } from './Input-DP3ahKZB.js';
5
+ import { I as Icon } from './Icon-By4fwUeB.js';
6
+ import { B as Banner } from './Banner-8zU7JxF6.js';
7
7
  import 'dompurify';
8
8
  import 'marked';
9
9
  import './close-DR469d4F.js';
@@ -457,4 +457,4 @@ function _page($$renderer, $$props) {
457
457
  }
458
458
 
459
459
  export { _page as default };
460
- //# sourceMappingURL=_page.svelte-Gv9p8nlS.js.map
460
+ //# sourceMappingURL=_page.svelte-DDE2nChH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_page.svelte-DDE2nChH.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/config/_page.svelte.js"],"sourcesContent":["import { b as attr_class, a as stringify, ab as attr, e as escape_html, c as ensure_array_like, h as head } from \"../../../chunks/index2.js\";\nimport \"../../../chunks/markdown.js\";\nimport { B as Button } from \"../../../chunks/Button.js\";\n/* empty css */\nimport { I as Input } from \"../../../chunks/Input.js\";\nimport { I as Icon } from \"../../../chunks/Icon.js\";\nimport { B as Banner } from \"../../../chunks/Banner.js\";\nfunction Step($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { stepIndex, label, icon, classes } = $$props;\n $$renderer2.push(`<div${attr_class(`step ${stringify(classes ?? \"\")}`, \"svelte-1i4mzd9\")} role=\"button\" tabindex=\"0\">`);\n if (typeof icon === \"string\" && icon.length > 0) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"step-icon-container\"><img class=\"step-icon\"${attr(\"src\", icon)} alt=\"\"/></div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n $$renderer2.push(`<div class=\"step-index-container svelte-1i4mzd9\"><div class=\"step-index-text svelte-1i4mzd9\">${escape_html(stepIndex)}</div></div>`);\n }\n $$renderer2.push(`<!--]--> <div class=\"step-text svelte-1i4mzd9\">${escape_html(label)}</div> <div class=\"separator svelte-1i4mzd9\"></div></div>`);\n });\n}\nfunction Stepper($$renderer, $$props) {\n let { steps, currentStepIndex, classes } = $$props;\n $$renderer.push(`<div${attr_class(`container ${stringify(classes ?? \"\")}`, \"svelte-dvxh34\")}><!--[-->`);\n const each_array = ensure_array_like(steps);\n for (let stepIndex = 0, $$length = each_array.length; stepIndex < $$length; stepIndex++) {\n let currentStep = each_array[stepIndex];\n $$renderer.push(`<div${attr_class(\"step-container svelte-dvxh34\", void 0, {\n \"active-step\": currentStepIndex === stepIndex,\n \"completed-step\": currentStepIndex > stepIndex\n })}>`);\n Step($$renderer, {\n label: currentStep.label,\n icon: currentStep.icon,\n stepIndex: stepIndex + 1\n });\n $$renderer.push(`<!----></div>`);\n }\n $$renderer.push(`<!--]--></div>`);\n}\nfunction Card($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { children, title, description, classes } = $$props;\n $$renderer2.push(`<div${attr_class(`card ${stringify(classes ?? \"\")}`, \"svelte-15b0v7e\")}>`);\n if (typeof title === \"string\" && title.length > 0) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"card-header svelte-15b0v7e\"><div class=\"card-title svelte-15b0v7e\">${escape_html(title)}</div> `);\n if (typeof description === \"string\" && description.length > 0) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"card-description svelte-15b0v7e\">${escape_html(description)}</div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> <div class=\"card-content svelte-15b0v7e\">`);\n children($$renderer2);\n $$renderer2.push(`<!----></div></div>`);\n });\n}\nfunction toErrorMessage(err) {\n if (err instanceof Error) {\n return err.message;\n }\n if (typeof err === \"string\") {\n return err;\n }\n return String(err);\n}\nconst PROVIDERS = [\n {\n cors: \"proxy\",\n envKeys: [\"GOOGLE_AI_API_KEY\"],\n id: \"google-ai\",\n label: \"Google AI\",\n model: \"gemini-3.1-flash-lite-preview\"\n },\n {\n cors: \"proxy\",\n envKeys: [\"ANTHROPIC_API_KEY\"],\n id: \"anthropic\",\n label: \"Anthropic\",\n model: \"claude-haiku-4-5-20251001\"\n },\n {\n cors: \"proxy\",\n envKeys: [\"OPENAI_API_KEY\"],\n id: \"openai\",\n label: \"OpenAI\",\n model: \"gpt-4o-mini\"\n },\n {\n cors: \"proxy\",\n envKeys: [\"MISTRAL_API_KEY\"],\n id: \"mistral\",\n label: \"Mistral\",\n model: \"mistral-small-2506\"\n },\n {\n cors: \"proxy\",\n envKeys: [\"LITELLM_BASE_URL\"],\n id: \"litellm\",\n label: \"LiteLLM\",\n model: \"open-large\"\n }\n];\nconst AlertTriangleSvg = '<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\\n <path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"/>\\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\"/>\\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"/>\\n</svg>\\n';\nconst CheckCircleSvg = '<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\\n <path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"/>\\n <polyline points=\"22 4 12 14.01 9 11.01\"/>\\n</svg>\\n';\nconst PlaySvg = '<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\\n <polygon points=\"5 3 19 12 5 21 5 3\"/>\\n</svg>\\n';\nconst XCircleSvg = '<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"/>\\n <line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\"/>\\n <line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\"/>\\n</svg>\\n';\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const { data } = $$props;\n let serverUrl = \"\";\n let apiKey = \"\";\n let deviceToken = \"\";\n let result = \"\";\n let loading = false;\n let statusType = \"\";\n let qrDataUrl = \"\";\n let qrServerUrl = \"\";\n let qrLoading = false;\n let qrError = \"\";\n async function fetchQrCode() {\n if (!apiKey.trim()) {\n qrError = \"Save an API key first to generate a QR code\";\n return;\n }\n qrLoading = true;\n qrError = \"\";\n qrDataUrl = \"\";\n qrServerUrl = \"\";\n try {\n const response = await fetch(\"/api/qr-config\", { headers: { Authorization: `Bearer ${apiKey.trim()}` } });\n if (!response.ok) {\n const data3 = await response.json();\n qrError = data3.error || \"Failed to generate QR code\";\n return;\n }\n const data2 = await response.json();\n qrDataUrl = data2.dataUrl;\n qrServerUrl = data2.serverUrl;\n } catch (error) {\n qrError = `Network error: ${toErrorMessage(error)}`;\n } finally {\n qrLoading = false;\n }\n }\n function getNativeBridge() {\n if (typeof window === \"undefined\") {\n return null;\n }\n if (window.ShooterBridge) {\n return window.ShooterBridge;\n }\n if (window.ShooterNativeBridge) {\n return window.ShooterNativeBridge;\n }\n return null;\n }\n function getDefaultServerUrl() {\n return window.location.origin;\n }\n async function saveConfiguration() {\n loading = true;\n result = \"\";\n statusType = \"\";\n try {\n const trimmedUrl = serverUrl.trim().replace(/\\/+$/, \"\");\n localStorage.setItem(\"shooter_config\", JSON.stringify({\n apiKey: apiKey.trim(),\n deviceToken: deviceToken.trim(),\n lastUpdated: Date.now(),\n serverUrl: trimmedUrl || getDefaultServerUrl()\n }));\n const bridge = getNativeBridge();\n if (bridge) {\n bridge.saveConfig?.(JSON.stringify({\n apiKey: apiKey.trim(),\n serverUrl: trimmedUrl || getDefaultServerUrl()\n }));\n }\n const response = await fetch(\"/api/health\");\n if (response.ok) {\n result = \"Configuration saved successfully\";\n statusType = \"success\";\n } else {\n result = \"Configuration saved but system health check failed\";\n statusType = \"warning\";\n }\n } catch (error) {\n result = `Configuration failed: ${toErrorMessage(error)}`;\n statusType = \"error\";\n }\n loading = false;\n }\n async function testConfiguration() {\n if (!apiKey.trim()) {\n result = \"API key is required for testing\";\n statusType = \"error\";\n return;\n }\n loading = true;\n result = \"\";\n statusType = \"\";\n try {\n const testPayload = {\n data: { source: \"config-test\", timestamp: Date.now() },\n message: `Configuration test at ${(/* @__PURE__ */ new Date()).toLocaleTimeString()}`,\n title: \"Configuration Test\"\n };\n if (deviceToken.trim()) {\n testPayload.deviceToken = deviceToken.trim();\n }\n const response = await fetch(\"/api/notify\", {\n body: JSON.stringify(testPayload),\n headers: {\n Authorization: `Bearer ${apiKey}`,\n \"Content-Type\": \"application/json\"\n },\n method: \"POST\"\n });\n const data2 = await response.json();\n if (response.ok) {\n result = \"Test notification sent successfully\";\n statusType = \"success\";\n } else {\n result = `Test failed: ${typeof data2.error === \"string\" ? data2.error : \"Unknown error\"}`;\n statusType = \"error\";\n }\n } catch (error) {\n result = `Network error: ${toErrorMessage(error)}`;\n statusType = \"error\";\n }\n loading = false;\n }\n function clearConfiguration() {\n }\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n head(\"1gp6n77\", $$renderer3, ($$renderer4) => {\n $$renderer4.title(($$renderer5) => {\n $$renderer5.push(`<title>Settings - Shooter</title>`);\n });\n $$renderer4.push(`<meta name=\"description\" content=\"Configure notification system settings\"/>`);\n });\n $$renderer3.push(`<main class=\"main\"><div class=\"settings-container svelte-1gp6n77\"><div style=\"margin-bottom: var(--space-4);\"><a href=\"/\" class=\"back-link\">← Back to Projects</a></div> <div class=\"page-header\"><h1 class=\"page-title\">Settings</h1> <p class=\"page-description\">Configure your API credentials and notification preferences</p></div> <div class=\"settings-grid svelte-1gp6n77\"><section class=\"settings-section svelte-1gp6n77\">`);\n Card($$renderer3, {\n title: \"Server Configuration\",\n description: \"Configure server connection and credentials\",\n children: ($$renderer4) => {\n Input($$renderer4, {\n name: \"serverUrl\",\n label: \"Server URL\",\n dataType: \"text\",\n placeholder: \"https://shooter.breezehq.dev\",\n infoMessage: \"Base URL of your Shooter server. Apps will reload with this URL on next launch.\",\n get value() {\n return serverUrl;\n },\n set value($$value) {\n serverUrl = $$value;\n $$settled = false;\n }\n });\n $$renderer4.push(`<!----> `);\n Input($$renderer4, {\n name: \"apiKey\",\n label: \"API Key\",\n dataType: \"password\",\n placeholder: \"Enter your API key\",\n infoMessage: \"Required for sending notifications\",\n get value() {\n return apiKey;\n },\n set value($$value) {\n apiKey = $$value;\n $$settled = false;\n }\n });\n $$renderer4.push(`<!----> <p class=\"input-help svelte-1gp6n77\">Find this in your <code class=\"svelte-1gp6n77\">~/.shooter/.env</code> file. Run <code class=\"svelte-1gp6n77\">shooter setup</code> to generate\n one.</p> `);\n Input($$renderer4, {\n name: \"deviceToken\",\n label: \"Device Token\",\n dataType: \"text\",\n placeholder: \"64-character hex string\",\n infoMessage: \"Device token from app registration\",\n classes: \"input-mono\",\n get value() {\n return deviceToken;\n },\n set value($$value) {\n deviceToken = $$value;\n $$settled = false;\n }\n });\n $$renderer4.push(`<!----> <p class=\"input-help svelte-1gp6n77\">Optional — only needed for iOS/Android push notifications.</p>`);\n }\n });\n $$renderer3.push(`<!----> `);\n if (result) {\n $$renderer3.push(\"<!--[0-->\");\n const bannerSvg = statusType === \"success\" ? CheckCircleSvg : statusType === \"error\" ? XCircleSvg : AlertTriangleSvg;\n {\n let icon = function($$renderer4) {\n Icon($$renderer4, { svg: bannerSvg, classes: \"icon-16\" });\n };\n Banner($$renderer3, {\n text: result,\n classes: `banner-${stringify(statusType || \"info\")}`,\n icon,\n $$slots: { icon: true }\n });\n }\n } else {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> <div class=\"button-group svelte-1gp6n77\">`);\n Button($$renderer3, {\n classes: \"btn-secondary\",\n onclick: testConfiguration,\n disabled: loading || !apiKey.trim(),\n children: ($$renderer4) => {\n if (!loading) {\n $$renderer4.push(\"<!--[0-->\");\n Icon($$renderer4, { svg: PlaySvg, classes: \"icon-14\" });\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--> Test Connection`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!----> `);\n Button($$renderer3, {\n classes: \"btn-primary\",\n onclick: saveConfiguration,\n disabled: loading || !apiKey.trim(),\n showLoader: loading,\n text: \"Save Changes\"\n });\n $$renderer3.push(`<!----></div></section> <aside class=\"settings-sidebar svelte-1gp6n77\">`);\n Card($$renderer3, {\n title: \"Setup Guide\",\n children: ($$renderer4) => {\n Stepper($$renderer4, {\n steps: [\n { label: \"Get API Key\" },\n { label: \"Find Device Token\" },\n { label: \"Test Connection\" }\n ],\n currentStepIndex: apiKey.trim() && deviceToken.trim() ? 2 : apiKey.trim() ? 1 : 0,\n classes: \"setup-stepper\"\n });\n }\n });\n $$renderer3.push(`<!----> `);\n Card($$renderer3, {\n title: \"Mobile App Setup\",\n description: \"Scan to connect your mobile app\",\n children: ($$renderer4) => {\n $$renderer4.push(`<div class=\"qr-section svelte-1gp6n77\">`);\n {\n $$renderer4.push(\"<!--[-1-->\");\n if (qrDataUrl) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<div class=\"qr-container svelte-1gp6n77\"><img${attr(\"src\", qrDataUrl)} 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> `);\n if (qrServerUrl) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<p class=\"qr-server-url svelte-1gp6n77\">Server: <code class=\"svelte-1gp6n77\">${escape_html(qrServerUrl)}</code></p>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]-->`);\n } else if (qrLoading) {\n $$renderer4.push(\"<!--[1-->\");\n $$renderer4.push(`<div class=\"qr-placeholder svelte-1gp6n77\"><p class=\"qr-loading-text svelte-1gp6n77\">Generating QR code...</p></div>`);\n } else if (qrError) {\n $$renderer4.push(\"<!--[2-->\");\n $$renderer4.push(`<p class=\"qr-error svelte-1gp6n77\">${escape_html(qrError)}</p>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n $$renderer4.push(`<p class=\"qr-description svelte-1gp6n77\">Generate a QR code containing your server URL and API key. Your mobile app can\n scan it to auto-configure the connection.</p>`);\n }\n $$renderer4.push(`<!--]--> `);\n Button($$renderer4, {\n classes: \"btn-secondary btn-sm\",\n onclick: fetchQrCode,\n disabled: qrLoading || !apiKey.trim(),\n text: qrDataUrl ? \"Regenerate QR Code\" : \"Generate QR Code\"\n });\n $$renderer4.push(`<!---->`);\n }\n $$renderer4.push(`<!--]--></div>`);\n }\n });\n $$renderer3.push(`<!----> `);\n Card($$renderer3, {\n title: \"AI Providers\",\n description: \"NeuroLink-powered summaries and AI features\",\n children: ($$renderer4) => {\n $$renderer4.push(`<div class=\"ai-providers svelte-1gp6n77\"><!--[-->`);\n const each_array = ensure_array_like(PROVIDERS);\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let provider = each_array[$$index];\n $$renderer4.push(`<div class=\"provider-row svelte-1gp6n77\">`);\n Icon($$renderer4, {\n svg: data.aiProviders[provider.id] ? CheckCircleSvg : XCircleSvg,\n classes: \"icon-14\"\n });\n $$renderer4.push(`<!----> <span class=\"provider-label svelte-1gp6n77\">${escape_html(provider.label)}</span> <span${attr_class(\"provider-status svelte-1gp6n77\", void 0, { \"configured\": data.aiProviders[provider.id] })}>${escape_html(data.aiProviders[provider.id] ? \"configured\" : \"not configured\")}</span></div>`);\n }\n $$renderer4.push(`<!--]--> `);\n if (data.activeProvider) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<div class=\"active-provider svelte-1gp6n77\">Active: <strong>${escape_html(data.activeProvider)}</strong></div>`);\n } else if (Object.values(data.aiProviders).some(Boolean)) {\n $$renderer4.push(\"<!--[1-->\");\n $$renderer4.push(`<div class=\"active-provider svelte-1gp6n77\">Auto-detected from configured keys</div>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n $$renderer4.push(`<p class=\"ai-help svelte-1gp6n77\">Run <code class=\"svelte-1gp6n77\">shooter setup</code> to configure AI providers for summaries.</p>`);\n }\n $$renderer4.push(`<!--]--></div>`);\n }\n });\n $$renderer3.push(`<!----> `);\n Card($$renderer3, {\n title: \"Danger Zone\",\n children: ($$renderer4) => {\n $$renderer4.push(`<p class=\"danger-description svelte-1gp6n77\">Clear all saved configuration data from this device.</p> `);\n Button($$renderer4, {\n classes: \"btn-danger btn-sm\",\n onclick: clearConfiguration,\n text: \"Clear Configuration\"\n });\n $$renderer4.push(`<!---->`);\n }\n });\n $$renderer3.push(`<!----></aside></div></div></main>`);\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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"}
@@ -1,6 +1,6 @@
1
- import { aw as head } from './index-CoYB03g7.js';
2
- import './root-D4IoFC8F.js';
3
- import './state.svelte-CmHqngc_.js';
1
+ import { aw as head } from './index2-BLq4EEng.js';
2
+ import './root-Ce8FGAoU.js';
3
+ import './state.svelte-DCKkPJr6.js';
4
4
  import './markdown-W_mTBct0.js';
5
5
  import 'dompurify';
6
6
  import 'marked';
@@ -23,4 +23,4 @@ function _page($$renderer, $$props) {
23
23
  }
24
24
 
25
25
  export { _page as default };
26
- //# sourceMappingURL=_page.svelte-BX2FMgSg.js.map
26
+ //# sourceMappingURL=_page.svelte-svT4jMLg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_page.svelte-BX2FMgSg.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/activity/_page.svelte.js"],"sourcesContent":["import { ad as head } 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\";\n/* empty css */\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n head(\"13r34ge\", $$renderer2, ($$renderer3) => {\n $$renderer3.title(($$renderer4) => {\n $$renderer4.push(`<title>Activity Feed - Shooter</title>`);\n });\n $$renderer3.push(`<meta name=\"description\" content=\"Real-time activity feed\"/>`);\n });\n $$renderer2.push(`<main class=\"main\"><h1 class=\"page-title svelte-13r34ge\">Activity Feed</h1> `);\n {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></main>`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":";;;;;;;AAQA;AACA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,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,sCAAsC,CAAC,CAAC;AAClE,MAAM,CAAC,CAAC;AACR,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,4DAA4D,CAAC,CAAC;AACtF,IAAI,CAAC,CAAC;AACN,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,4EAA4E,CAAC,CAAC;AACpG,IAAI;AACJ,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
+ {"version":3,"file":"_page.svelte-svT4jMLg.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/activity/_page.svelte.js"],"sourcesContent":["import { h as head } from \"../../../chunks/index2.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\";\n/* empty css */\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n head(\"13r34ge\", $$renderer2, ($$renderer3) => {\n $$renderer3.title(($$renderer4) => {\n $$renderer4.push(`<title>Activity Feed - Shooter</title>`);\n });\n $$renderer3.push(`<meta name=\"description\" content=\"Real-time activity feed\"/>`);\n });\n $$renderer2.push(`<main class=\"main\"><h1 class=\"page-title svelte-13r34ge\">Activity Feed</h1> `);\n {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></main>`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":";;;;;;;AAQA;AACA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,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,sCAAsC,CAAC,CAAC;AAClE,MAAM,CAAC,CAAC;AACR,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,4DAA4D,CAAC,CAAC;AACtF,IAAI,CAAC,CAAC;AACN,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,4EAA4E,CAAC,CAAC;AACpG,IAAI;AACJ,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,8 +1,8 @@
1
- import { ax as ensure_array_like, ap as attr_class, an as stringify, au as escape_html } from './index-CoYB03g7.js';
1
+ import { ax as ensure_array_like, ap as attr_class, an as stringify, au as escape_html } from './index2-BLq4EEng.js';
2
2
  import './markdown-W_mTBct0.js';
3
- import { B as Button } from './Button-D0hZ7JYt.js';
4
- import { I as Input } from './Input-OmIiydSx.js';
5
- import { P as Pill } from './Pill-4xJ-VhAA.js';
3
+ import { B as Button } from './Button-DmE4ENkb.js';
4
+ import { I as Input } from './Input-DP3ahKZB.js';
5
+ import { P as Pill } from './Pill-DwAR6cas.js';
6
6
  import 'dompurify';
7
7
  import 'marked';
8
8
  import './close-DR469d4F.js';
@@ -67,4 +67,4 @@ function _page($$renderer, $$props) {
67
67
  }
68
68
 
69
69
  export { _page as default };
70
- //# sourceMappingURL=_page.svelte-C7B0qdrC.js.map
70
+ //# sourceMappingURL=_page.svelte-vtaZs27Q.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_page.svelte-vtaZs27Q.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/neurolink/_page.svelte.js"],"sourcesContent":["import { c as ensure_array_like, b as attr_class, a as stringify, e as escape_html } from \"../../../chunks/index2.js\";\nimport \"../../../chunks/markdown.js\";\nimport { B as Button } from \"../../../chunks/Button.js\";\n/* empty css */\nimport { I as Input } from \"../../../chunks/Input.js\";\nimport { P as Pill } from \"../../../chunks/Pill.js\";\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const { data } = $$props;\n let logs = [];\n let prompt = \"\";\n async function send() {\n if (!prompt.trim() || true) {\n return;\n }\n }\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n $$renderer3.push(`<div class=\"page svelte-sjabew\"><header class=\"svelte-sjabew\"><h1 class=\"svelte-sjabew\">NeuroLink</h1> <span class=\"version svelte-sjabew\">new NeuroLink()</span> `);\n {\n $$renderer3.push(\"<!--[-1-->\");\n Pill($$renderer3, { text: \"Loading...\", classes: \"pill-loading\" });\n }\n $$renderer3.push(`<!--]--></header> `);\n {\n $$renderer3.push(\"<!--[-1-->\");\n }\n $$renderer3.push(`<!--]--> <div class=\"log svelte-sjabew\" id=\"log\"><!--[-->`);\n const each_array_1 = ensure_array_like(logs);\n for (let i = 0, $$length = each_array_1.length; i < $$length; i++) {\n let entry = each_array_1[i];\n $$renderer3.push(`<div${attr_class(`log-entry ${stringify(entry.type)}`, \"svelte-sjabew\")}>${escape_html(entry.text)}</div>`);\n }\n $$renderer3.push(`<!--]--></div> <div class=\"input-bar svelte-sjabew\">`);\n Input($$renderer3, {\n name: \"prompt\",\n placeholder: \"Loading SDK...\",\n classes: \"input-prompt\",\n get value() {\n return prompt;\n },\n set value($$value) {\n prompt = $$value;\n $$settled = false;\n }\n });\n $$renderer3.push(`<!----> `);\n Button($$renderer3, {\n classes: \"btn-primary\",\n onclick: send,\n disabled: true,\n text: \"Send\"\n });\n $$renderer3.push(`<!----></div></div>`);\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":";;;;;;;;;AAMA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,IAAI,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO;AAC5B,IAAI,IAAI,IAAI,GAAG,EAAE;AACjB,IAAI,IAAI,MAAM,GAAG,EAAE;AACnB,IAAI,eAAe,IAAI,GAAG;AAC1B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE;AAClC,QAAQ;AACR,MAAM;AACN,IAAI;AACJ,IAAI,IAAI,SAAS,GAAG,IAAI;AACxB,IAAI,IAAI,gBAAgB;AACxB,IAAI,SAAS,cAAc,CAAC,WAAW,EAAE;AACzC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,kKAAkK,CAAC,CAAC;AAC5L,MAAM;AACN,QAAQ,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,QAAQ,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1E,MAAM;AACN,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAC5C,MAAM;AACN,QAAQ,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,MAAM;AACN,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,yDAAyD,CAAC,CAAC;AACnF,MAAM,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC;AAClD,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;AACzE,QAAQ,IAAI,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC;AACnC,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;AACrI,MAAM;AACN,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,oDAAoD,CAAC,CAAC;AAC9E,MAAM,KAAK,CAAC,WAAW,EAAE;AACzB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,WAAW,EAAE,gBAAgB;AACrC,QAAQ,OAAO,EAAE,cAAc;AAC/B,QAAQ,IAAI,KAAK,GAAG;AACpB,UAAU,OAAO,MAAM;AACvB,QAAQ,CAAC;AACT,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE;AAC3B,UAAU,MAAM,GAAG,OAAO;AAC1B,UAAU,SAAS,GAAG,KAAK;AAC3B,QAAQ;AACR,OAAO,CAAC;AACR,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAClC,MAAM,MAAM,CAAC,WAAW,EAAE;AAC1B,QAAQ,OAAO,EAAE,aAAa;AAC9B,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,QAAQ,EAAE,IAAI;AACtB,QAAQ,IAAI,EAAE;AACd,OAAO,CAAC;AACR,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC;AAC7C,IAAI;AACJ,IAAI,GAAG;AACP,MAAM,SAAS,GAAG,IAAI;AACtB,MAAM,gBAAgB,GAAG,WAAW,CAAC,IAAI,EAAE;AAC3C,MAAM,cAAc,CAAC,gBAAgB,CAAC;AACtC,IAAI,CAAC,QAAQ,CAAC,SAAS;AACvB,IAAI,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC;AACzC,EAAE,CAAC,CAAC;AACJ;;;;"}
@@ -2,7 +2,7 @@ import { v as validateAuth } from './auth-DuunT7Cg.js';
2
2
  import { p as ptyManager } from './pty-manager-BsHXoNks.js';
3
3
  import { s as shareStore, h as hashPassword } from './share-store-B9jMpVg0.js';
4
4
  import { c as closeGuests } from './guest-registry-Dxvd7p-g.js';
5
- import { j as json } from './index-CoD1IJuy.js';
5
+ import { j as json } from './index-lhTMmBNn.js';
6
6
  import './shared-server-DaWdgxVh.js';
7
7
  import 'crypto';
8
8
  import 'child_process';
@@ -94,4 +94,4 @@ const DELETE = ({ params, request }) => {
94
94
  };
95
95
 
96
96
  export { DELETE, GET, PUT };
97
- //# sourceMappingURL=_server.ts-DtT-ZXki.js.map
97
+ //# sourceMappingURL=_server.ts--7PnGah8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DtT-ZXki.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/terminals/_id_/share/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../../../chunks/auth.js\";\nimport { p as ptyManager } from \"../../../../../../chunks/pty-manager.js\";\nimport { s as shareStore, h as hashPassword } from \"../../../../../../chunks/share-store.js\";\nimport { c as closeGuests } from \"../../../../../../chunks/guest-registry.js\";\nimport { json } from \"@sveltejs/kit\";\nconst MIN_PASSWORD_LENGTH = 6;\nconst MODES = [\"view\", \"control\"];\nfunction toInfo(terminalId) {\n const share = shareStore.getShare(terminalId);\n if (!share) {\n return { active: false, createdAt: null, mode: null, updatedAt: null };\n }\n return { active: true, createdAt: share.createdAt, mode: share.mode, updatedAt: share.updatedAt };\n}\nconst GET = ({ params, request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n return json(toInfo(params.id));\n};\nconst PUT = async ({ params, request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n if (!ptyManager.get(params.id)) {\n return json({ error: \"Terminal not found\" }, { status: 404 });\n }\n let body;\n try {\n body = await request.json();\n } catch {\n return json({ error: \"Invalid JSON\" }, { status: 400 });\n }\n if (!MODES.includes(body.mode)) {\n return json({ error: \"mode must be 'view' or 'control'\" }, { status: 400 });\n }\n const existing = shareStore.getShare(params.id);\n const password = typeof body.password === \"string\" ? body.password : \"\";\n if (!existing && password.length < MIN_PASSWORD_LENGTH) {\n return json(\n { error: `password is required (min ${String(MIN_PASSWORD_LENGTH)} chars)` },\n { status: 400 }\n );\n }\n if (password && password.length < MIN_PASSWORD_LENGTH) {\n return json(\n { error: `password must be at least ${String(MIN_PASSWORD_LENGTH)} chars` },\n { status: 400 }\n );\n }\n const now = Date.now();\n shareStore.setShare({\n createdAt: existing?.createdAt ?? now,\n mode: body.mode,\n // `existing` is guaranteed non-null when password is empty (validated above).\n passwordHash: password ? hashPassword(password) : existing?.passwordHash ?? \"\",\n terminalId: params.id,\n updatedAt: now\n });\n if (password) {\n shareStore.deleteSessions(params.id);\n }\n if (password || existing?.mode !== body.mode) {\n closeGuests(params.id);\n }\n return json(toInfo(params.id));\n};\nconst DELETE = ({ params, request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n shareStore.deleteShare(params.id);\n const closed = closeGuests(params.id);\n return json({ closedConnections: closed, success: true });\n};\nexport {\n DELETE,\n GET,\n PUT\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAKA,MAAM,mBAAmB,GAAG,CAAC;AAC7B,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;AACjC,SAAS,MAAM,CAAC,UAAU,EAAE;AAC5B,EAAE,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;AAC/C,EAAE,IAAI,CAAC,KAAK,EAAE;AACd,IAAI,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;AAC1E,EAAE;AACF,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;AACnG;AACK,MAAC,GAAG,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AACrC,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;AACzC,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAChC;AACK,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AAC3C,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;AACzC,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;AAClC,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACjE,EAAE;AACF,EAAE,IAAI,IAAI;AACV,EAAE,IAAI;AACN,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AAC/B,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC3D,EAAE;AACF,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAClC,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,kCAAkC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC/E,EAAE;AACF,EAAE,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;AACjD,EAAE,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE;AACzE,EAAE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,mBAAmB,EAAE;AAC1D,IAAI,OAAO,IAAI;AACf,MAAM,EAAE,KAAK,EAAE,CAAC,0BAA0B,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,EAAE;AAClF,MAAM,EAAE,MAAM,EAAE,GAAG;AACnB,KAAK;AACL,EAAE;AACF,EAAE,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,mBAAmB,EAAE;AACzD,IAAI,OAAO,IAAI;AACf,MAAM,EAAE,KAAK,EAAE,CAAC,0BAA0B,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,EAAE;AACjF,MAAM,EAAE,MAAM,EAAE,GAAG;AACnB,KAAK;AACL,EAAE;AACF,EAAE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AACxB,EAAE,UAAU,CAAC,QAAQ,CAAC;AACtB,IAAI,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,GAAG;AACzC,IAAI,IAAI,EAAE,IAAI,CAAC,IAAI;AACnB;AACA,IAAI,YAAY,EAAE,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAAE,YAAY,IAAI,EAAE;AAClF,IAAI,UAAU,EAAE,MAAM,CAAC,EAAE;AACzB,IAAI,SAAS,EAAE;AACf,GAAG,CAAC;AACJ,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;AACxC,EAAE;AACF,EAAE,IAAI,QAAQ,IAAI,QAAQ,EAAE,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;AAChD,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;AAC1B,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAChC;AACK,MAAC,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AACxC,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;AACzC,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;AACnC,EAAE,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;AACvC,EAAE,OAAO,IAAI,CAAC,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3D;;;;"}
1
+ {"version":3,"file":"_server.ts--7PnGah8.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/terminals/_id_/share/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../../../chunks/auth.js\";\nimport { p as ptyManager } from \"../../../../../../chunks/pty-manager.js\";\nimport { s as shareStore, h as hashPassword } from \"../../../../../../chunks/share-store.js\";\nimport { c as closeGuests } from \"../../../../../../chunks/guest-registry.js\";\nimport { json } from \"@sveltejs/kit\";\nconst MIN_PASSWORD_LENGTH = 6;\nconst MODES = [\"view\", \"control\"];\nfunction toInfo(terminalId) {\n const share = shareStore.getShare(terminalId);\n if (!share) {\n return { active: false, createdAt: null, mode: null, updatedAt: null };\n }\n return { active: true, createdAt: share.createdAt, mode: share.mode, updatedAt: share.updatedAt };\n}\nconst GET = ({ params, request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n return json(toInfo(params.id));\n};\nconst PUT = async ({ params, request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n if (!ptyManager.get(params.id)) {\n return json({ error: \"Terminal not found\" }, { status: 404 });\n }\n let body;\n try {\n body = await request.json();\n } catch {\n return json({ error: \"Invalid JSON\" }, { status: 400 });\n }\n if (!MODES.includes(body.mode)) {\n return json({ error: \"mode must be 'view' or 'control'\" }, { status: 400 });\n }\n const existing = shareStore.getShare(params.id);\n const password = typeof body.password === \"string\" ? body.password : \"\";\n if (!existing && password.length < MIN_PASSWORD_LENGTH) {\n return json(\n { error: `password is required (min ${String(MIN_PASSWORD_LENGTH)} chars)` },\n { status: 400 }\n );\n }\n if (password && password.length < MIN_PASSWORD_LENGTH) {\n return json(\n { error: `password must be at least ${String(MIN_PASSWORD_LENGTH)} chars` },\n { status: 400 }\n );\n }\n const now = Date.now();\n shareStore.setShare({\n createdAt: existing?.createdAt ?? now,\n mode: body.mode,\n // `existing` is guaranteed non-null when password is empty (validated above).\n passwordHash: password ? hashPassword(password) : existing?.passwordHash ?? \"\",\n terminalId: params.id,\n updatedAt: now\n });\n if (password) {\n shareStore.deleteSessions(params.id);\n }\n if (password || existing?.mode !== body.mode) {\n closeGuests(params.id);\n }\n return json(toInfo(params.id));\n};\nconst DELETE = ({ params, request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n shareStore.deleteShare(params.id);\n const closed = closeGuests(params.id);\n return json({ closedConnections: closed, success: true });\n};\nexport {\n DELETE,\n GET,\n PUT\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAKA,MAAM,mBAAmB,GAAG,CAAC;AAC7B,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;AACjC,SAAS,MAAM,CAAC,UAAU,EAAE;AAC5B,EAAE,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;AAC/C,EAAE,IAAI,CAAC,KAAK,EAAE;AACd,IAAI,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;AAC1E,EAAE;AACF,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;AACnG;AACK,MAAC,GAAG,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AACrC,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;AACzC,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAChC;AACK,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AAC3C,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;AACzC,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;AAClC,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACjE,EAAE;AACF,EAAE,IAAI,IAAI;AACV,EAAE,IAAI;AACN,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AAC/B,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC3D,EAAE;AACF,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAClC,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,kCAAkC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC/E,EAAE;AACF,EAAE,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;AACjD,EAAE,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE;AACzE,EAAE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,mBAAmB,EAAE;AAC1D,IAAI,OAAO,IAAI;AACf,MAAM,EAAE,KAAK,EAAE,CAAC,0BAA0B,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,EAAE;AAClF,MAAM,EAAE,MAAM,EAAE,GAAG;AACnB,KAAK;AACL,EAAE;AACF,EAAE,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,mBAAmB,EAAE;AACzD,IAAI,OAAO,IAAI;AACf,MAAM,EAAE,KAAK,EAAE,CAAC,0BAA0B,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,EAAE;AACjF,MAAM,EAAE,MAAM,EAAE,GAAG;AACnB,KAAK;AACL,EAAE;AACF,EAAE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AACxB,EAAE,UAAU,CAAC,QAAQ,CAAC;AACtB,IAAI,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,GAAG;AACzC,IAAI,IAAI,EAAE,IAAI,CAAC,IAAI;AACnB;AACA,IAAI,YAAY,EAAE,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAAE,YAAY,IAAI,EAAE;AAClF,IAAI,UAAU,EAAE,MAAM,CAAC,EAAE;AACzB,IAAI,SAAS,EAAE;AACf,GAAG,CAAC;AACJ,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;AACxC,EAAE;AACF,EAAE,IAAI,QAAQ,IAAI,QAAQ,EAAE,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;AAChD,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;AAC1B,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAChC;AACK,MAAC,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AACxC,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;AACzC,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;AACnC,EAAE,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;AACvC,EAAE,OAAO,IAAI,CAAC,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3D;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { v as validateAuth } from './auth-DuunT7Cg.js';
2
2
  import { s as sosCoordinator } from './coordinator-DMU_ADXf.js';
3
3
  import { i as isValidSessionKey, a as isValidProvider } from './super-session-handler-DPyxFgmz.js';
4
- import { j as json } from './index-CoD1IJuy.js';
4
+ import { j as json } from './index-lhTMmBNn.js';
5
5
  import './shared-server-DaWdgxVh.js';
6
6
  import 'crypto';
7
7
  import 'better-sqlite3';
@@ -45,4 +45,4 @@ const POST = async ({ params, request }) => {
45
45
  };
46
46
 
47
47
  export { POST };
48
- //# sourceMappingURL=_server.ts-Mttr0-Sl.js.map
48
+ //# sourceMappingURL=_server.ts-57dINphj.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-Mttr0-Sl.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/sos/_id_/members/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../../../chunks/auth.js\";\nimport { s as sosCoordinator } from \"../../../../../../chunks/coordinator.js\";\nimport { i as isValidSessionKey, a as isValidProvider } from \"../../../../../../chunks/super-session-handler.js\";\nimport { json } from \"@sveltejs/kit\";\nconst POST = async ({ params, request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n let body;\n try {\n body = await request.json();\n } catch {\n return json({ error: \"Invalid JSON in request body\" }, { status: 400 });\n }\n if (typeof body !== \"object\" || body === null) {\n return json({ error: \"Invalid JSON in request body\" }, { status: 400 });\n }\n const payload = body;\n if (typeof payload.sessionKey !== \"string\" || !isValidSessionKey(payload.sessionKey)) {\n return json({ error: \"sessionKey must be a session id or a path under home\" }, { status: 400 });\n }\n if (typeof payload.provider !== \"string\" || !isValidProvider(payload.provider)) {\n return json({ error: \"provider must be a known session source\" }, { status: 400 });\n }\n const member = sosCoordinator.addMember(params.id ?? \"\", {\n capability: typeof payload.capability === \"string\" ? payload.capability : void 0,\n provider: payload.provider,\n sessionKey: payload.sessionKey,\n terminalId: typeof payload.terminalId === \"string\" ? payload.terminalId : null\n });\n if (!member) {\n return json({ error: \"Super-session not found\" }, { status: 404 });\n }\n return json(member, { status: 201 });\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;AAIK,MAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AAC5C,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;AACzC,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,IAAI,IAAI;AACV,EAAE,IAAI;AACN,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AAC/B,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC3E,EAAE;AACF,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;AACjD,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC3E,EAAE;AACF,EAAE,MAAM,OAAO,GAAG,IAAI;AACtB,EAAE,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AACxF,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,sDAAsD,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACnG,EAAE;AACF,EAAE,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAClF,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,yCAAyC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACtF,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE;AAC3D,IAAI,UAAU,EAAE,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,GAAG,OAAO,CAAC,UAAU,GAAG,MAAM;AACpF,IAAI,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC9B,IAAI,UAAU,EAAE,OAAO,CAAC,UAAU;AAClC,IAAI,UAAU,EAAE,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,GAAG,OAAO,CAAC,UAAU,GAAG;AAC9E,GAAG,CAAC;AACJ,EAAE,IAAI,CAAC,MAAM,EAAE;AACf,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACtE,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACtC;;;;"}
1
+ {"version":3,"file":"_server.ts-57dINphj.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/sos/_id_/members/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../../../chunks/auth.js\";\nimport { s as sosCoordinator } from \"../../../../../../chunks/coordinator.js\";\nimport { i as isValidSessionKey, a as isValidProvider } from \"../../../../../../chunks/super-session-handler.js\";\nimport { json } from \"@sveltejs/kit\";\nconst POST = async ({ params, request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n let body;\n try {\n body = await request.json();\n } catch {\n return json({ error: \"Invalid JSON in request body\" }, { status: 400 });\n }\n if (typeof body !== \"object\" || body === null) {\n return json({ error: \"Invalid JSON in request body\" }, { status: 400 });\n }\n const payload = body;\n if (typeof payload.sessionKey !== \"string\" || !isValidSessionKey(payload.sessionKey)) {\n return json({ error: \"sessionKey must be a session id or a path under home\" }, { status: 400 });\n }\n if (typeof payload.provider !== \"string\" || !isValidProvider(payload.provider)) {\n return json({ error: \"provider must be a known session source\" }, { status: 400 });\n }\n const member = sosCoordinator.addMember(params.id ?? \"\", {\n capability: typeof payload.capability === \"string\" ? payload.capability : void 0,\n provider: payload.provider,\n sessionKey: payload.sessionKey,\n terminalId: typeof payload.terminalId === \"string\" ? payload.terminalId : null\n });\n if (!member) {\n return json({ error: \"Super-session not found\" }, { status: 404 });\n }\n return json(member, { status: 201 });\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;AAIK,MAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AAC5C,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;AACzC,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,IAAI,IAAI;AACV,EAAE,IAAI;AACN,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AAC/B,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC3E,EAAE;AACF,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;AACjD,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC3E,EAAE;AACF,EAAE,MAAM,OAAO,GAAG,IAAI;AACtB,EAAE,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AACxF,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,sDAAsD,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACnG,EAAE;AACF,EAAE,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAClF,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,yCAAyC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACtF,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE;AAC3D,IAAI,UAAU,EAAE,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,GAAG,OAAO,CAAC,UAAU,GAAG,MAAM;AACpF,IAAI,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC9B,IAAI,UAAU,EAAE,OAAO,CAAC,UAAU;AAClC,IAAI,UAAU,EAAE,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,GAAG,OAAO,CAAC,UAAU,GAAG;AAC9E,GAAG,CAAC;AACJ,EAAE,IAAI,CAAC,MAAM,EAAE;AACf,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACtE,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACtC;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { b as private_env } from './shared-server-DaWdgxVh.js';
2
2
  import { v as validateAuth } from './auth-DuunT7Cg.js';
3
- import { j as json } from './index-CoD1IJuy.js';
3
+ import { j as json } from './index-lhTMmBNn.js';
4
4
  import 'crypto';
5
5
 
6
6
  const ALLOWED_CLIENT_HEADERS = {
@@ -120,4 +120,4 @@ const POST = async ({ request }) => {
120
120
  };
121
121
 
122
122
  export { POST };
123
- //# sourceMappingURL=_server.ts-BCljU9Sg.js.map
123
+ //# sourceMappingURL=_server.ts-5ZMeZtad.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BCljU9Sg.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/neurolink-proxy/_server.ts.js"],"sourcesContent":["import { b as private_env } from \"../../../../chunks/shared-server.js\";\nimport { v as validateAuth } from \"../../../../chunks/auth.js\";\nimport { json } from \"@sveltejs/kit\";\nconst ALLOWED_CLIENT_HEADERS = {\n anthropic: /* @__PURE__ */ new Set([\"anthropic-beta\", \"anthropic-version\"]),\n \"google-ai\": /* @__PURE__ */ new Set([]),\n litellm: /* @__PURE__ */ new Set([]),\n mistral: /* @__PURE__ */ new Set([]),\n openai: /* @__PURE__ */ new Set([\"openai-organization\", \"openai-project\"])\n};\nconst POST = async ({ request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n let payload;\n try {\n payload = await request.json();\n } catch {\n return json({ error: \"Invalid JSON body\" }, { status: 400 });\n }\n if (!payload || typeof payload !== \"object\" || typeof payload.provider !== \"string\" || typeof payload.url !== \"string\" || !payload.headers || typeof payload.headers !== \"object\") {\n return json({ error: \"Invalid proxy payload\" }, { status: 400 });\n }\n const {\n body,\n headers: reqHeaders,\n provider,\n url\n } = payload;\n const ALLOWED_PREFIXES = {\n anthropic: \"https://api.anthropic.com/\",\n \"google-ai\": \"https://generativelanguage.googleapis.com/\",\n mistral: \"https://api.mistral.ai/\",\n openai: \"https://api.openai.com/\"\n };\n if (provider === \"litellm\") {\n const rawBase = private_env.LITELLM_BASE_URL?.trim();\n if (!rawBase) {\n return json({ error: \"LiteLLM is not configured on this server\" }, { status: 403 });\n }\n const litellmPrefix = `${rawBase.replace(/\\/+$/, \"\")}/`;\n if (!url.startsWith(litellmPrefix)) {\n return json({ error: `Provider \"${provider}\" or URL not allowed` }, { status: 403 });\n }\n } else {\n const allowedPrefix = ALLOWED_PREFIXES[provider];\n if (!allowedPrefix || !url.startsWith(allowedPrefix)) {\n return json({ error: `Provider \"${provider}\" or URL not allowed` }, { status: 403 });\n }\n }\n const apiKeyEnv = {\n anthropic: private_env.ANTHROPIC_API_KEY ?? \"\",\n \"google-ai\": private_env.GOOGLE_AI_API_KEY ?? \"\",\n litellm: private_env.LITELLM_API_KEY ?? \"\",\n mistral: private_env.MISTRAL_API_KEY ?? \"\",\n openai: private_env.OPENAI_API_KEY ?? \"\"\n };\n const allowedForProvider = ALLOWED_CLIENT_HEADERS[provider] ?? /* @__PURE__ */ new Set();\n const normalizedReqHeaders = {};\n for (const [k, v] of Object.entries(reqHeaders)) {\n const key = k.toLowerCase();\n if (allowedForProvider.has(key)) {\n normalizedReqHeaders[key] = v;\n }\n }\n const forwardHeaders = {\n \"Content-Type\": \"application/json\",\n ...normalizedReqHeaders\n };\n if (provider === \"anthropic\") {\n if (apiKeyEnv.anthropic) {\n forwardHeaders[\"x-api-key\"] = apiKeyEnv.anthropic;\n }\n forwardHeaders[\"anthropic-version\"] = forwardHeaders[\"anthropic-version\"] ?? \"2023-06-01\";\n } else if (provider === \"google-ai\") {\n if (apiKeyEnv[\"google-ai\"]) {\n forwardHeaders[\"x-goog-api-key\"] = apiKeyEnv[\"google-ai\"];\n }\n } else if (provider === \"openai\") {\n if (apiKeyEnv.openai) {\n forwardHeaders.Authorization = `Bearer ${apiKeyEnv.openai}`;\n }\n } else if (provider === \"mistral\") {\n if (apiKeyEnv.mistral) {\n forwardHeaders.Authorization = `Bearer ${apiKeyEnv.mistral}`;\n }\n } else if (provider === \"litellm\") {\n if (apiKeyEnv.litellm) {\n forwardHeaders.Authorization = `Bearer ${apiKeyEnv.litellm}`;\n }\n }\n const controller = new AbortController();\n const timeout = setTimeout(() => {\n controller.abort();\n }, 3e4);\n let resp;\n try {\n resp = await fetch(url, {\n body: JSON.stringify(body),\n headers: forwardHeaders,\n method: \"POST\",\n signal: controller.signal\n });\n } catch (err) {\n clearTimeout(timeout);\n const message = err instanceof Error ? err.message : \"Upstream request failed\";\n return json({ error: message }, { status: 502 });\n }\n clearTimeout(timeout);\n let data;\n try {\n data = await resp.json();\n } catch {\n return json({ error: \"Upstream returned non-JSON response\" }, { status: 502 });\n }\n return json(data, { status: resp.status });\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;AAGA,MAAM,sBAAsB,GAAG;AAC/B,EAAE,SAAS,kBAAkB,IAAI,GAAG,CAAC,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;AAC7E,EAAE,WAAW,kBAAkB,IAAI,GAAG,CAAC,EAAE,CAAC;AAC1C,EAAE,OAAO,kBAAkB,IAAI,GAAG,CAAC,EAAE,CAAC;AACtC,EAAE,OAAO,kBAAkB,IAAI,GAAG,CAAC,EAAE,CAAC;AACtC,EAAE,MAAM,kBAAkB,IAAI,GAAG,CAAC,CAAC,qBAAqB,EAAE,gBAAgB,CAAC;AAC3E,CAAC;AACI,MAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK;AACpC,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;AACzC,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,IAAI,OAAO;AACb,EAAE,IAAI;AACN,IAAI,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AAClC,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAChE,EAAE;AACF,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE;AACrL,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACpE,EAAE;AACF,EAAE,MAAM;AACR,IAAI,IAAI;AACR,IAAI,OAAO,EAAE,UAAU;AACvB,IAAI,QAAQ;AACZ,IAAI;AACJ,GAAG,GAAG,OAAO;AACb,EAAE,MAAM,gBAAgB,GAAG;AAC3B,IAAI,SAAS,EAAE,4BAA4B;AAC3C,IAAI,WAAW,EAAE,4CAA4C;AAC7D,IAAI,OAAO,EAAE,yBAAyB;AACtC,IAAI,MAAM,EAAE;AACZ,GAAG;AACH,EAAE,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC9B,IAAI,MAAM,OAAO,GAAG,WAAW,CAAC,gBAAgB,EAAE,IAAI,EAAE;AACxD,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,MAAM,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,0CAA0C,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACzF,IAAI;AACJ,IAAI,MAAM,aAAa,GAAG,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3D,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;AACxC,MAAM,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC1F,IAAI;AACJ,EAAE,CAAC,MAAM;AACT,IAAI,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC;AACpD,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;AAC1D,MAAM,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC1F,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,SAAS,GAAG;AACpB,IAAI,SAAS,EAAE,WAAW,CAAC,iBAAiB,IAAI,EAAE;AAClD,IAAI,WAAW,EAAE,WAAW,CAAC,iBAAiB,IAAI,EAAE;AACpD,IAAI,OAAO,EAAE,WAAW,CAAC,eAAe,IAAI,EAAE;AAC9C,IAAI,OAAO,EAAE,WAAW,CAAC,eAAe,IAAI,EAAE;AAC9C,IAAI,MAAM,EAAE,WAAW,CAAC,cAAc,IAAI;AAC1C,GAAG;AACH,EAAE,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,QAAQ,CAAC,oBAAoB,IAAI,GAAG,EAAE;AAC1F,EAAE,MAAM,oBAAoB,GAAG,EAAE;AACjC,EAAE,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AACnD,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE;AAC/B,IAAI,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACrC,MAAM,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC;AACnC,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,cAAc,GAAG;AACzB,IAAI,cAAc,EAAE,kBAAkB;AACtC,IAAI,GAAG;AACP,GAAG;AACH,EAAE,IAAI,QAAQ,KAAK,WAAW,EAAE;AAChC,IAAI,IAAI,SAAS,CAAC,SAAS,EAAE;AAC7B,MAAM,cAAc,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,SAAS;AACvD,IAAI;AACJ,IAAI,cAAc,CAAC,mBAAmB,CAAC,GAAG,cAAc,CAAC,mBAAmB,CAAC,IAAI,YAAY;AAC7F,EAAE,CAAC,MAAM,IAAI,QAAQ,KAAK,WAAW,EAAE;AACvC,IAAI,IAAI,SAAS,CAAC,WAAW,CAAC,EAAE;AAChC,MAAM,cAAc,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC;AAC/D,IAAI;AACJ,EAAE,CAAC,MAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE;AACpC,IAAI,IAAI,SAAS,CAAC,MAAM,EAAE;AAC1B,MAAM,cAAc,CAAC,aAAa,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;AACjE,IAAI;AACJ,EAAE,CAAC,MAAM,IAAI,QAAQ,KAAK,SAAS,EAAE;AACrC,IAAI,IAAI,SAAS,CAAC,OAAO,EAAE;AAC3B,MAAM,cAAc,CAAC,aAAa,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;AAClE,IAAI;AACJ,EAAE,CAAC,MAAM,IAAI,QAAQ,KAAK,SAAS,EAAE;AACrC,IAAI,IAAI,SAAS,CAAC,OAAO,EAAE;AAC3B,MAAM,cAAc,CAAC,aAAa,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;AAClE,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE;AAC1C,EAAE,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM;AACnC,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,EAAE,CAAC,EAAE,GAAG,CAAC;AACT,EAAE,IAAI,IAAI;AACV,EAAE,IAAI;AACN,IAAI,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;AAC5B,MAAM,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAChC,MAAM,OAAO,EAAE,cAAc;AAC7B,MAAM,MAAM,EAAE,MAAM;AACpB,MAAM,MAAM,EAAE,UAAU,CAAC;AACzB,KAAK,CAAC;AACN,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,YAAY,CAAC,OAAO,CAAC;AACzB,IAAI,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,yBAAyB;AAClF,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACpD,EAAE;AACF,EAAE,YAAY,CAAC,OAAO,CAAC;AACvB,EAAE,IAAI,IAAI;AACV,EAAE,IAAI;AACN,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE;AAC5B,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,qCAAqC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAClF,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AAC5C;;;;"}
1
+ {"version":3,"file":"_server.ts-5ZMeZtad.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/neurolink-proxy/_server.ts.js"],"sourcesContent":["import { b as private_env } from \"../../../../chunks/shared-server.js\";\nimport { v as validateAuth } from \"../../../../chunks/auth.js\";\nimport { json } from \"@sveltejs/kit\";\nconst ALLOWED_CLIENT_HEADERS = {\n anthropic: /* @__PURE__ */ new Set([\"anthropic-beta\", \"anthropic-version\"]),\n \"google-ai\": /* @__PURE__ */ new Set([]),\n litellm: /* @__PURE__ */ new Set([]),\n mistral: /* @__PURE__ */ new Set([]),\n openai: /* @__PURE__ */ new Set([\"openai-organization\", \"openai-project\"])\n};\nconst POST = async ({ request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n let payload;\n try {\n payload = await request.json();\n } catch {\n return json({ error: \"Invalid JSON body\" }, { status: 400 });\n }\n if (!payload || typeof payload !== \"object\" || typeof payload.provider !== \"string\" || typeof payload.url !== \"string\" || !payload.headers || typeof payload.headers !== \"object\") {\n return json({ error: \"Invalid proxy payload\" }, { status: 400 });\n }\n const {\n body,\n headers: reqHeaders,\n provider,\n url\n } = payload;\n const ALLOWED_PREFIXES = {\n anthropic: \"https://api.anthropic.com/\",\n \"google-ai\": \"https://generativelanguage.googleapis.com/\",\n mistral: \"https://api.mistral.ai/\",\n openai: \"https://api.openai.com/\"\n };\n if (provider === \"litellm\") {\n const rawBase = private_env.LITELLM_BASE_URL?.trim();\n if (!rawBase) {\n return json({ error: \"LiteLLM is not configured on this server\" }, { status: 403 });\n }\n const litellmPrefix = `${rawBase.replace(/\\/+$/, \"\")}/`;\n if (!url.startsWith(litellmPrefix)) {\n return json({ error: `Provider \"${provider}\" or URL not allowed` }, { status: 403 });\n }\n } else {\n const allowedPrefix = ALLOWED_PREFIXES[provider];\n if (!allowedPrefix || !url.startsWith(allowedPrefix)) {\n return json({ error: `Provider \"${provider}\" or URL not allowed` }, { status: 403 });\n }\n }\n const apiKeyEnv = {\n anthropic: private_env.ANTHROPIC_API_KEY ?? \"\",\n \"google-ai\": private_env.GOOGLE_AI_API_KEY ?? \"\",\n litellm: private_env.LITELLM_API_KEY ?? \"\",\n mistral: private_env.MISTRAL_API_KEY ?? \"\",\n openai: private_env.OPENAI_API_KEY ?? \"\"\n };\n const allowedForProvider = ALLOWED_CLIENT_HEADERS[provider] ?? /* @__PURE__ */ new Set();\n const normalizedReqHeaders = {};\n for (const [k, v] of Object.entries(reqHeaders)) {\n const key = k.toLowerCase();\n if (allowedForProvider.has(key)) {\n normalizedReqHeaders[key] = v;\n }\n }\n const forwardHeaders = {\n \"Content-Type\": \"application/json\",\n ...normalizedReqHeaders\n };\n if (provider === \"anthropic\") {\n if (apiKeyEnv.anthropic) {\n forwardHeaders[\"x-api-key\"] = apiKeyEnv.anthropic;\n }\n forwardHeaders[\"anthropic-version\"] = forwardHeaders[\"anthropic-version\"] ?? \"2023-06-01\";\n } else if (provider === \"google-ai\") {\n if (apiKeyEnv[\"google-ai\"]) {\n forwardHeaders[\"x-goog-api-key\"] = apiKeyEnv[\"google-ai\"];\n }\n } else if (provider === \"openai\") {\n if (apiKeyEnv.openai) {\n forwardHeaders.Authorization = `Bearer ${apiKeyEnv.openai}`;\n }\n } else if (provider === \"mistral\") {\n if (apiKeyEnv.mistral) {\n forwardHeaders.Authorization = `Bearer ${apiKeyEnv.mistral}`;\n }\n } else if (provider === \"litellm\") {\n if (apiKeyEnv.litellm) {\n forwardHeaders.Authorization = `Bearer ${apiKeyEnv.litellm}`;\n }\n }\n const controller = new AbortController();\n const timeout = setTimeout(() => {\n controller.abort();\n }, 3e4);\n let resp;\n try {\n resp = await fetch(url, {\n body: JSON.stringify(body),\n headers: forwardHeaders,\n method: \"POST\",\n signal: controller.signal\n });\n } catch (err) {\n clearTimeout(timeout);\n const message = err instanceof Error ? err.message : \"Upstream request failed\";\n return json({ error: message }, { status: 502 });\n }\n clearTimeout(timeout);\n let data;\n try {\n data = await resp.json();\n } catch {\n return json({ error: \"Upstream returned non-JSON response\" }, { status: 502 });\n }\n return json(data, { status: resp.status });\n};\nexport {\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { v as validateAuth } from './auth-DuunT7Cg.js';
2
- import { j as json } from './index-CoD1IJuy.js';
2
+ import { j as json } from './index-lhTMmBNn.js';
3
3
  import './shared-server-DaWdgxVh.js';
4
4
  import 'crypto';
5
5
 
@@ -50,4 +50,4 @@ const POST = async ({ request }) => {
50
50
  };
51
51
 
52
52
  export { GET, POST };
53
- //# sourceMappingURL=_server.ts-CGqCOCdK.js.map
53
+ //# sourceMappingURL=_server.ts-ArA8CrYi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CGqCOCdK.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/autopilot/goal/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../../chunks/auth.js\";\nimport { json } from \"@sveltejs/kit\";\nfunction control() {\n return globalThis.__shooter_autopilot;\n}\nconst GET = ({ request, url }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n const terminalId = url.searchParams.get(\"terminalId\") ?? \"\";\n if (!terminalId) {\n return json({ error: \"terminalId query param is required\" }, { status: 400 });\n }\n const ctrl = control();\n if (!ctrl?.getGoal) {\n return json({ error: \"autopilot engine not running\", running: false }, { status: 503 });\n }\n return json({ goal: ctrl.getGoal(terminalId) ?? null, running: true });\n};\nconst POST = async ({ request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n let body;\n try {\n body = await request.json();\n } catch {\n return json({ error: \"Invalid JSON body\" }, { status: 400 });\n }\n if (typeof body.terminalId !== \"string\" || body.terminalId.length === 0) {\n return json({ error: \"terminalId must be a non-empty string\" }, { status: 400 });\n }\n if (typeof body.goal !== \"string\") {\n return json({ error: \"goal must be a string\" }, { status: 400 });\n }\n if (body.goal.length > 500) {\n return json({ error: \"goal must be 500 characters or fewer\" }, { status: 400 });\n }\n const ctrl = control();\n if (!ctrl?.setGoal) {\n return json({ error: \"autopilot engine not running\", running: false }, { status: 503 });\n }\n ctrl.setGoal(body.terminalId, body.goal);\n return json({ goal: body.goal.trim() || null, running: true, terminalId: body.terminalId });\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":";;;;;AAEA,SAAS,OAAO,GAAG;AACnB,EAAE,OAAO,UAAU,CAAC,mBAAmB;AACvC;AACK,MAAC,GAAG,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK;AAClC,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;AACzC,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE;AAC7D,EAAE,IAAI,CAAC,UAAU,EAAE;AACnB,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,oCAAoC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACjF,EAAE;AACF,EAAE,MAAM,IAAI,GAAG,OAAO,EAAE;AACxB,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;AACtB,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC3F,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACxE;AACK,MAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK;AACpC,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;AACzC,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,IAAI,IAAI;AACV,EAAE,IAAI;AACN,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AAC/B,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAChE,EAAE;AACF,EAAE,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3E,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,uCAAuC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACpF,EAAE;AACF,EAAE,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AACrC,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACpE,EAAE;AACF,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE;AAC9B,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,sCAAsC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACnF,EAAE;AACF,EAAE,MAAM,IAAI,GAAG,OAAO,EAAE;AACxB,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;AACtB,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC3F,EAAE;AACF,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC;AAC1C,EAAE,OAAO,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AAC7F;;;;"}
1
+ {"version":3,"file":"_server.ts-ArA8CrYi.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/autopilot/goal/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../../chunks/auth.js\";\nimport { json } from \"@sveltejs/kit\";\nfunction control() {\n return globalThis.__shooter_autopilot;\n}\nconst GET = ({ request, url }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n const terminalId = url.searchParams.get(\"terminalId\") ?? \"\";\n if (!terminalId) {\n return json({ error: \"terminalId query param is required\" }, { status: 400 });\n }\n const ctrl = control();\n if (!ctrl?.getGoal) {\n return json({ error: \"autopilot engine not running\", running: false }, { status: 503 });\n }\n return json({ goal: ctrl.getGoal(terminalId) ?? null, running: true });\n};\nconst POST = async ({ request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n let body;\n try {\n body = await request.json();\n } catch {\n return json({ error: \"Invalid JSON body\" }, { status: 400 });\n }\n if (typeof body.terminalId !== \"string\" || body.terminalId.length === 0) {\n return json({ error: \"terminalId must be a non-empty string\" }, { status: 400 });\n }\n if (typeof body.goal !== \"string\") {\n return json({ error: \"goal must be a string\" }, { status: 400 });\n }\n if (body.goal.length > 500) {\n return json({ error: \"goal must be 500 characters or fewer\" }, { status: 400 });\n }\n const ctrl = control();\n if (!ctrl?.setGoal) {\n return json({ error: \"autopilot engine not running\", running: false }, { status: 503 });\n }\n ctrl.setGoal(body.terminalId, body.goal);\n return json({ goal: body.goal.trim() || null, running: true, terminalId: body.terminalId });\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":";;;;;AAEA,SAAS,OAAO,GAAG;AACnB,EAAE,OAAO,UAAU,CAAC,mBAAmB;AACvC;AACK,MAAC,GAAG,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK;AAClC,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;AACzC,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE;AAC7D,EAAE,IAAI,CAAC,UAAU,EAAE;AACnB,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,oCAAoC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACjF,EAAE;AACF,EAAE,MAAM,IAAI,GAAG,OAAO,EAAE;AACxB,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;AACtB,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC3F,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACxE;AACK,MAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK;AACpC,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;AACzC,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,IAAI,IAAI;AACV,EAAE,IAAI;AACN,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AAC/B,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAChE,EAAE;AACF,EAAE,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3E,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,uCAAuC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACpF,EAAE;AACF,EAAE,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AACrC,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACpE,EAAE;AACF,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE;AAC9B,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,sCAAsC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACnF,EAAE;AACF,EAAE,MAAM,IAAI,GAAG,OAAO,EAAE;AACxB,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;AACtB,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC3F,EAAE;AACF,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC;AAC1C,EAAE,OAAO,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AAC7F;;;;"}
@@ -3,7 +3,7 @@ import Database from 'better-sqlite3';
3
3
  import * as fs from 'fs';
4
4
  import * as path from 'path';
5
5
  import { s as shooterDataDir } from './shooter-home-4f_HkdGI.js';
6
- import { j as json } from './index-CoD1IJuy.js';
6
+ import { j as json } from './index-lhTMmBNn.js';
7
7
  import './shared-server-DaWdgxVh.js';
8
8
  import 'crypto';
9
9
  import 'os';
@@ -156,4 +156,4 @@ const GET = ({ request, url }) => {
156
156
  };
157
157
 
158
158
  export { GET, POST };
159
- //# sourceMappingURL=_server.ts-DPHRUFYS.js.map
159
+ //# sourceMappingURL=_server.ts-BKqxnNf1.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DPHRUFYS.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/summaries/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../chunks/auth.js\";\nimport Database from \"better-sqlite3\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { s as shooterDataDir } from \"../../../../chunks/shooter-home.js\";\nimport { json } from \"@sveltejs/kit\";\nconst DB_DIR = shooterDataDir();\nconst DB_PATH = path.join(DB_DIR, \"shooter.db\");\nconst COLUMNS = [\n \"id\",\n \"terminal_id\",\n \"session_id\",\n \"project_name\",\n \"summary\",\n \"next_steps\",\n \"trigger\",\n \"created_at\"\n];\nclass SummaryStore {\n db;\n constructor() {\n fs.mkdirSync(DB_DIR, { recursive: true });\n this.db = new Database(DB_PATH);\n this.db.pragma(\"journal_mode = WAL\");\n this.db.exec(`\n CREATE TABLE IF NOT EXISTS session_summaries (\n id TEXT PRIMARY KEY,\n terminal_id TEXT,\n session_id TEXT,\n project_name TEXT,\n summary TEXT NOT NULL,\n next_steps TEXT NOT NULL DEFAULT '[]',\n trigger TEXT NOT NULL,\n created_at TEXT NOT NULL\n )\n `);\n }\n insert(record) {\n const placeholders = COLUMNS.map(() => \"?\").join(\", \");\n this.db.prepare(`INSERT INTO session_summaries (${COLUMNS.join(\", \")}) VALUES (${placeholders})`).run(\n record.id,\n record.terminalId,\n record.sessionId,\n record.projectName,\n record.summary,\n record.nextSteps,\n record.trigger,\n record.createdAt\n );\n }\n listRecent(limit, sessionId) {\n if (sessionId) {\n const rows2 = this.db.prepare(\n \"SELECT * FROM session_summaries WHERE session_id = ? ORDER BY created_at DESC LIMIT ?\"\n ).all(sessionId, limit);\n return rows2.map(rowToRecord);\n }\n const rows = this.db.prepare(\"SELECT * FROM session_summaries ORDER BY created_at DESC LIMIT ?\").all(limit);\n return rows.map(rowToRecord);\n }\n}\nfunction rowToRecord(row) {\n return {\n createdAt: row.created_at,\n id: row.id,\n nextSteps: row.next_steps,\n projectName: row.project_name ?? null,\n sessionId: row.session_id ?? null,\n summary: row.summary,\n terminalId: row.terminal_id ?? null,\n trigger: row.trigger\n };\n}\nconst SS_GLOBAL_KEY = \"__shooter_summary_store\";\nconst summaryStore = globalThis[SS_GLOBAL_KEY] || new SummaryStore();\nglobalThis[SS_GLOBAL_KEY] = summaryStore;\nconst DEFAULT_LIMIT = 50;\nconst MAX_LIMIT = 200;\nconst POST = async ({ request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n const rawBody = await request.json();\n if (!rawBody || typeof rawBody !== \"object\" || Array.isArray(rawBody)) {\n return json({ error: \"Request body must be a JSON object\" }, { status: 400 });\n }\n const body = rawBody;\n if (typeof body.id !== \"string\" || !body.id) {\n return json({ error: \"id is required and must be a non-empty string\" }, { status: 400 });\n }\n if (body.id.length > 128) {\n return json({ error: \"id must be 128 characters or fewer\" }, { status: 400 });\n }\n if (typeof body.summary !== \"string\" || !body.summary) {\n return json({ error: \"summary is required and must be a non-empty string\" }, { status: 400 });\n }\n if (body.summary.length > 1e3) {\n return json({ error: \"summary must be 1000 characters or fewer\" }, { status: 400 });\n }\n if (typeof body.trigger !== \"string\" || !body.trigger) {\n return json({ error: \"trigger is required and must be a non-empty string\" }, { status: 400 });\n }\n if (body.trigger.length > 64) {\n return json({ error: \"trigger must be 64 characters or fewer\" }, { status: 400 });\n }\n if (typeof body.createdAt !== \"string\" || !body.createdAt) {\n return json({ error: \"createdAt is required and must be a non-empty string\" }, { status: 400 });\n }\n if (body.createdAt.length > 64 || isNaN(Date.parse(body.createdAt))) {\n return json({ error: \"createdAt must be a valid ISO 8601 date string\" }, { status: 400 });\n }\n if (typeof body.nextSteps === \"string\" && body.nextSteps.length > 8192) {\n return json({ error: \"nextSteps must be 8192 characters or fewer\" }, { status: 400 });\n }\n const record = {\n createdAt: body.createdAt,\n id: body.id,\n nextSteps: typeof body.nextSteps === \"string\" ? body.nextSteps : \"[]\",\n projectName: typeof body.projectName === \"string\" ? body.projectName : null,\n sessionId: typeof body.sessionId === \"string\" ? body.sessionId : null,\n summary: body.summary,\n terminalId: typeof body.terminalId === \"string\" ? body.terminalId : null,\n trigger: body.trigger\n };\n try {\n summaryStore.insert(record);\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n const isDuplicate = typeof message === \"string\" && message.includes(\"UNIQUE constraint failed\");\n if (isDuplicate) {\n return json({ error: \"Record with this id already exists\" }, { status: 409 });\n }\n return json({ error: \"Failed to persist summary\" }, { status: 500 });\n }\n return json({ id: record.id, success: true }, { status: 201 });\n};\nconst GET = ({ request, url }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n const sessionId = url.searchParams.get(\"sessionId\") ?? void 0;\n const rawLimit = parseInt(url.searchParams.get(\"limit\") || String(DEFAULT_LIMIT));\n const limit = Number.isFinite(rawLimit) && rawLimit >= 1 ? Math.min(rawLimit, MAX_LIMIT) : DEFAULT_LIMIT;\n const summaries = summaryStore.listRecent(limit, sessionId);\n return json({\n count: summaries.length,\n summaries,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n });\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-BKqxnNf1.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/summaries/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../chunks/auth.js\";\nimport Database from \"better-sqlite3\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { s as shooterDataDir } from \"../../../../chunks/shooter-home.js\";\nimport { json } from \"@sveltejs/kit\";\nconst DB_DIR = shooterDataDir();\nconst DB_PATH = path.join(DB_DIR, \"shooter.db\");\nconst COLUMNS = [\n \"id\",\n \"terminal_id\",\n \"session_id\",\n \"project_name\",\n \"summary\",\n \"next_steps\",\n \"trigger\",\n \"created_at\"\n];\nclass SummaryStore {\n db;\n constructor() {\n fs.mkdirSync(DB_DIR, { recursive: true });\n this.db = new Database(DB_PATH);\n this.db.pragma(\"journal_mode = WAL\");\n this.db.exec(`\n CREATE TABLE IF NOT EXISTS session_summaries (\n id TEXT PRIMARY KEY,\n terminal_id TEXT,\n session_id TEXT,\n project_name TEXT,\n summary TEXT NOT NULL,\n next_steps TEXT NOT NULL DEFAULT '[]',\n trigger TEXT NOT NULL,\n created_at TEXT NOT NULL\n )\n `);\n }\n insert(record) {\n const placeholders = COLUMNS.map(() => \"?\").join(\", \");\n this.db.prepare(`INSERT INTO session_summaries (${COLUMNS.join(\", \")}) VALUES (${placeholders})`).run(\n record.id,\n record.terminalId,\n record.sessionId,\n record.projectName,\n record.summary,\n record.nextSteps,\n record.trigger,\n record.createdAt\n );\n }\n listRecent(limit, sessionId) {\n if (sessionId) {\n const rows2 = this.db.prepare(\n \"SELECT * FROM session_summaries WHERE session_id = ? ORDER BY created_at DESC LIMIT ?\"\n ).all(sessionId, limit);\n return rows2.map(rowToRecord);\n }\n const rows = this.db.prepare(\"SELECT * FROM session_summaries ORDER BY created_at DESC LIMIT ?\").all(limit);\n return rows.map(rowToRecord);\n }\n}\nfunction rowToRecord(row) {\n return {\n createdAt: row.created_at,\n id: row.id,\n nextSteps: row.next_steps,\n projectName: row.project_name ?? null,\n sessionId: row.session_id ?? null,\n summary: row.summary,\n terminalId: row.terminal_id ?? null,\n trigger: row.trigger\n };\n}\nconst SS_GLOBAL_KEY = \"__shooter_summary_store\";\nconst summaryStore = globalThis[SS_GLOBAL_KEY] || new SummaryStore();\nglobalThis[SS_GLOBAL_KEY] = summaryStore;\nconst DEFAULT_LIMIT = 50;\nconst MAX_LIMIT = 200;\nconst POST = async ({ request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n const rawBody = await request.json();\n if (!rawBody || typeof rawBody !== \"object\" || Array.isArray(rawBody)) {\n return json({ error: \"Request body must be a JSON object\" }, { status: 400 });\n }\n const body = rawBody;\n if (typeof body.id !== \"string\" || !body.id) {\n return json({ error: \"id is required and must be a non-empty string\" }, { status: 400 });\n }\n if (body.id.length > 128) {\n return json({ error: \"id must be 128 characters or fewer\" }, { status: 400 });\n }\n if (typeof body.summary !== \"string\" || !body.summary) {\n return json({ error: \"summary is required and must be a non-empty string\" }, { status: 400 });\n }\n if (body.summary.length > 1e3) {\n return json({ error: \"summary must be 1000 characters or fewer\" }, { status: 400 });\n }\n if (typeof body.trigger !== \"string\" || !body.trigger) {\n return json({ error: \"trigger is required and must be a non-empty string\" }, { status: 400 });\n }\n if (body.trigger.length > 64) {\n return json({ error: \"trigger must be 64 characters or fewer\" }, { status: 400 });\n }\n if (typeof body.createdAt !== \"string\" || !body.createdAt) {\n return json({ error: \"createdAt is required and must be a non-empty string\" }, { status: 400 });\n }\n if (body.createdAt.length > 64 || isNaN(Date.parse(body.createdAt))) {\n return json({ error: \"createdAt must be a valid ISO 8601 date string\" }, { status: 400 });\n }\n if (typeof body.nextSteps === \"string\" && body.nextSteps.length > 8192) {\n return json({ error: \"nextSteps must be 8192 characters or fewer\" }, { status: 400 });\n }\n const record = {\n createdAt: body.createdAt,\n id: body.id,\n nextSteps: typeof body.nextSteps === \"string\" ? body.nextSteps : \"[]\",\n projectName: typeof body.projectName === \"string\" ? body.projectName : null,\n sessionId: typeof body.sessionId === \"string\" ? body.sessionId : null,\n summary: body.summary,\n terminalId: typeof body.terminalId === \"string\" ? body.terminalId : null,\n trigger: body.trigger\n };\n try {\n summaryStore.insert(record);\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n const isDuplicate = typeof message === \"string\" && message.includes(\"UNIQUE constraint failed\");\n if (isDuplicate) {\n return json({ error: \"Record with this id already exists\" }, { status: 409 });\n }\n return json({ error: \"Failed to persist summary\" }, { status: 500 });\n }\n return json({ id: record.id, success: true }, { status: 201 });\n};\nconst GET = ({ request, url }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n const sessionId = url.searchParams.get(\"sessionId\") ?? void 0;\n const rawLimit = parseInt(url.searchParams.get(\"limit\") || String(DEFAULT_LIMIT));\n const limit = Number.isFinite(rawLimit) && rawLimit >= 1 ? Math.min(rawLimit, MAX_LIMIT) : DEFAULT_LIMIT;\n const summaries = summaryStore.listRecent(limit, sessionId);\n return json({\n count: summaries.length,\n summaries,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n });\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { a as cleanup, b as getDecision, s as setDecision, g as getRichRequest }
2
2
  import { v as validateAuth } from './auth-DuunT7Cg.js';
3
3
  import { t as toErrorMessage } from './error-DDXB3duW.js';
4
4
  import 'type-decoder';
5
- import { j as json } from './index-CoD1IJuy.js';
5
+ import { j as json } from './index-lhTMmBNn.js';
6
6
  import 'better-sqlite3';
7
7
  import 'fs';
8
8
  import 'path';
@@ -102,4 +102,4 @@ const GET = ({ request, url }) => {
102
102
  };
103
103
 
104
104
  export { GET, POST };
105
- //# sourceMappingURL=_server.ts-BXhmLZwN.js.map
105
+ //# sourceMappingURL=_server.ts-BTNIhKVv.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BXhmLZwN.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/response/_server.ts.js"],"sourcesContent":["import { a as cleanup, b as getDecision, s as setDecision, g as getRichRequest } from \"../../../../chunks/pending-requests.js\";\nimport { v as validateAuth } from \"../../../../chunks/auth.js\";\nimport { t as toErrorMessage } from \"../../../../chunks/error.js\";\nimport \"type-decoder\";\nimport { json } from \"@sveltejs/kit\";\nconst DECISION_KINDS = [\n \"allow\",\n \"deny\",\n \"option_1\",\n \"option_2\",\n \"option_3\",\n \"option_4\",\n \"plan_accept\",\n \"plan_auto\",\n \"plan_keep\",\n \"plan_review\"\n];\nfunction isDecisionKind(value) {\n return typeof value === \"string\" && DECISION_KINDS.includes(value);\n}\nconst POST = async ({ request }) => {\n cleanup();\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n let body;\n try {\n body = await request.json();\n } catch {\n return json({ error: \"Invalid JSON in request body\" }, { status: 400 });\n }\n try {\n const { decision, requestId } = body;\n if (typeof requestId !== \"string\" || requestId.length === 0) {\n return json({ error: \"requestId must be a non-empty string\" }, { status: 400 });\n }\n if (!isDecisionKind(decision)) {\n return json(\n {\n error: \"decision must be one of allow, deny, option_1..4, plan_auto, plan_accept, plan_review, plan_keep\"\n },\n { status: 400 }\n );\n }\n const decisionTyped = decision;\n const found = setDecision(requestId, decisionTyped);\n if (!found) {\n return json({ error: \"Request not found or expired\" }, { status: 404 });\n }\n const entry = getRichRequest(requestId);\n const responseKind = entry?.responseKind ?? \"hook\";\n console.log(\n `[response] Decision received: ${decisionTyped} for request ${requestId} (responseKind=${responseKind})`\n );\n if (responseKind === \"pty\") {\n return json({\n message: \"Decision recorded; PTY routing not yet implemented\",\n responseKind,\n success: true,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n });\n }\n return json({\n message: \"Decision recorded\",\n responseKind,\n success: true,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n });\n } catch (error) {\n console.error(\"[response] Failed to process response:\", toErrorMessage(error));\n return json({ error: \"Failed to process response\" }, { status: 500 });\n }\n};\nconst GET = ({ request, url }) => {\n cleanup();\n const authErr = validateAuth(request);\n if (authErr) {\n return authErr;\n }\n const requestId = url.searchParams.get(\"requestId\");\n if (!requestId) {\n return json({ error: \"requestId query parameter is required\" }, { status: 400 });\n }\n const result = getDecision(requestId);\n if (result.status === \"not_found\") {\n return json({ error: \"Request not found or expired\" }, { status: 404 });\n }\n return json({\n decision: result.decision ?? null,\n status: result.status,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n });\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-BTNIhKVv.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/response/_server.ts.js"],"sourcesContent":["import { a as cleanup, b as getDecision, s as setDecision, g as getRichRequest } from \"../../../../chunks/pending-requests.js\";\nimport { v as validateAuth } from \"../../../../chunks/auth.js\";\nimport { t as toErrorMessage } from \"../../../../chunks/error.js\";\nimport \"type-decoder\";\nimport { json } from \"@sveltejs/kit\";\nconst DECISION_KINDS = [\n \"allow\",\n \"deny\",\n \"option_1\",\n \"option_2\",\n \"option_3\",\n \"option_4\",\n \"plan_accept\",\n \"plan_auto\",\n \"plan_keep\",\n \"plan_review\"\n];\nfunction isDecisionKind(value) {\n return typeof value === \"string\" && DECISION_KINDS.includes(value);\n}\nconst POST = async ({ request }) => {\n cleanup();\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n let body;\n try {\n body = await request.json();\n } catch {\n return json({ error: \"Invalid JSON in request body\" }, { status: 400 });\n }\n try {\n const { decision, requestId } = body;\n if (typeof requestId !== \"string\" || requestId.length === 0) {\n return json({ error: \"requestId must be a non-empty string\" }, { status: 400 });\n }\n if (!isDecisionKind(decision)) {\n return json(\n {\n error: \"decision must be one of allow, deny, option_1..4, plan_auto, plan_accept, plan_review, plan_keep\"\n },\n { status: 400 }\n );\n }\n const decisionTyped = decision;\n const found = setDecision(requestId, decisionTyped);\n if (!found) {\n return json({ error: \"Request not found or expired\" }, { status: 404 });\n }\n const entry = getRichRequest(requestId);\n const responseKind = entry?.responseKind ?? \"hook\";\n console.log(\n `[response] Decision received: ${decisionTyped} for request ${requestId} (responseKind=${responseKind})`\n );\n if (responseKind === \"pty\") {\n return json({\n message: \"Decision recorded; PTY routing not yet implemented\",\n responseKind,\n success: true,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n });\n }\n return json({\n message: \"Decision recorded\",\n responseKind,\n success: true,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n });\n } catch (error) {\n console.error(\"[response] Failed to process response:\", toErrorMessage(error));\n return json({ error: \"Failed to process response\" }, { status: 500 });\n }\n};\nconst GET = ({ request, url }) => {\n cleanup();\n const authErr = validateAuth(request);\n if (authErr) {\n return authErr;\n }\n const requestId = url.searchParams.get(\"requestId\");\n if (!requestId) {\n return json({ error: \"requestId query parameter is required\" }, { status: 400 });\n }\n const result = getDecision(requestId);\n if (result.status === \"not_found\") {\n return json({ error: \"Request not found or expired\" }, { status: 404 });\n }\n return json({\n decision: result.decision ?? null,\n status: result.status,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n });\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { v as validateAuth } from './auth-DuunT7Cg.js';
2
2
  import { P as PROVIDER_COMMANDS, r as resumeArgsForCommand } from './registry-D4J_CuzW.js';
3
3
  import { p as ptyManager } from './pty-manager-BsHXoNks.js';
4
4
  import { t as toErrorMessage } from './error-DDXB3duW.js';
5
- import { j as json } from './index-CoD1IJuy.js';
5
+ import { j as json } from './index-lhTMmBNn.js';
6
6
  import { realpathSync, statSync } from 'fs';
7
7
  import { relative, isAbsolute } from 'path';
8
8
  import './shared-server-DaWdgxVh.js';
@@ -114,4 +114,4 @@ const POST = async ({ request }) => {
114
114
  };
115
115
 
116
116
  export { POST };
117
- //# sourceMappingURL=_server.ts-BhP3b8A5.js.map
117
+ //# sourceMappingURL=_server.ts-Bcagaih0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BhP3b8A5.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/sessions/connect/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../../chunks/auth.js\";\nimport { P as PROVIDER_COMMANDS, r as resumeArgsForCommand } from \"../../../../../chunks/registry.js\";\nimport { p as ptyManager } from \"../../../../../chunks/pty-manager.js\";\nimport { t as toErrorMessage } from \"../../../../../chunks/error.js\";\nimport { json } from \"@sveltejs/kit\";\nimport { realpathSync, statSync } from \"fs\";\nimport { relative, isAbsolute } from \"path\";\nconst POST = async ({ request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n let body;\n try {\n body = await request.json();\n } catch {\n return json({ error: \"Invalid JSON in request body\" }, { status: 400 });\n }\n const { command, cwd, noCreate, sessionId } = body;\n if (!sessionId || typeof sessionId !== \"string\") {\n return json({ error: \"sessionId is required (string)\" }, { status: 400 });\n }\n if (!/^[A-Za-z0-9_.-]+$/.test(sessionId)) {\n return json({ error: \"Invalid sessionId format\" }, { status: 400 });\n }\n if (!cwd || typeof cwd !== \"string\") {\n return json({ error: \"cwd is required (string)\" }, { status: 400 });\n }\n if (!command || !PROVIDER_COMMANDS.includes(command)) {\n return json(\n { error: `command must be one of: ${PROVIDER_COMMANDS.join(\", \")}` },\n { status: 400 }\n );\n }\n let realCwd;\n try {\n realCwd = realpathSync(cwd);\n if (!statSync(realCwd).isDirectory()) {\n return json({ error: \"Invalid working directory\" }, { status: 400 });\n }\n } catch {\n return json({ error: \"Invalid working directory\" }, { status: 400 });\n }\n const home = process.env.HOME || \"\";\n if (home) {\n const rel = relative(home, realCwd);\n if (rel.startsWith(\"..\") || isAbsolute(rel)) {\n return json({ error: \"Working directory must be under home directory\" }, { status: 400 });\n }\n }\n const existing = ptyManager.list().find(\n (t) => t.status === \"running\" && // Claude / Cursor / Qwen: <id>.jsonl ; Codex rollout: rollout-<ts>-<id>.jsonl ;\n // Copilot: <id>.jsonl OR <id>/events.jsonl ; Amp: T-<id>.json ; OpenCode: session id\n (t.sessionFile?.endsWith(`/${sessionId}.jsonl`) || t.sessionFile?.endsWith(`-${sessionId}.jsonl`) || t.sessionFile?.endsWith(`/${sessionId}/events.jsonl`) || t.sessionFile?.endsWith(`/T-${sessionId}.json`) || t.openCodeSessionId === sessionId)\n );\n if (existing) {\n console.log(\n `[sessions/connect] Reusing terminal ${existing.id} for ${command} session ${sessionId}`\n );\n return json({\n command: existing.command,\n createdAt: existing.createdAt.toISOString(),\n cwd: existing.cwd,\n id: existing.id,\n pid: existing.pid,\n reused: true,\n sessionId,\n sessionWs: `/ws/session/${existing.id}`,\n terminalId: existing.id,\n ws: `/ws/terminal/${existing.id}`\n });\n }\n if (noCreate) {\n return json({ error: \"No existing terminal for this session\" }, { status: 404 });\n }\n const args = resumeArgsForCommand(command, sessionId);\n try {\n const terminal = await ptyManager.create(command, args, realCwd, 120, 40);\n console.log(\n `[sessions/connect] Created terminal ${terminal.id} for ${command} session ${sessionId} (pid=${terminal.pid})`\n );\n return json(\n {\n command: terminal.command,\n createdAt: terminal.createdAt instanceof Date ? terminal.createdAt.toISOString() : terminal.createdAt,\n cwd: terminal.cwd,\n id: terminal.id,\n pid: terminal.pid,\n sessionId,\n sessionWs: `/ws/session/${terminal.id}`,\n terminalId: terminal.id,\n ws: `/ws/terminal/${terminal.id}`\n },\n { status: 201 }\n );\n } catch (error) {\n console.error(\"[sessions/connect] Failed to create terminal:\", toErrorMessage(error));\n return json({ error: \"Failed to create terminal for session\" }, { status: 500 });\n }\n};\nexport {\n POST\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-Bcagaih0.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/sessions/connect/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../../chunks/auth.js\";\nimport { P as PROVIDER_COMMANDS, r as resumeArgsForCommand } from \"../../../../../chunks/registry.js\";\nimport { p as ptyManager } from \"../../../../../chunks/pty-manager.js\";\nimport { t as toErrorMessage } from \"../../../../../chunks/error.js\";\nimport { json } from \"@sveltejs/kit\";\nimport { realpathSync, statSync } from \"fs\";\nimport { relative, isAbsolute } from \"path\";\nconst POST = async ({ request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n let body;\n try {\n body = await request.json();\n } catch {\n return json({ error: \"Invalid JSON in request body\" }, { status: 400 });\n }\n const { command, cwd, noCreate, sessionId } = body;\n if (!sessionId || typeof sessionId !== \"string\") {\n return json({ error: \"sessionId is required (string)\" }, { status: 400 });\n }\n if (!/^[A-Za-z0-9_.-]+$/.test(sessionId)) {\n return json({ error: \"Invalid sessionId format\" }, { status: 400 });\n }\n if (!cwd || typeof cwd !== \"string\") {\n return json({ error: \"cwd is required (string)\" }, { status: 400 });\n }\n if (!command || !PROVIDER_COMMANDS.includes(command)) {\n return json(\n { error: `command must be one of: ${PROVIDER_COMMANDS.join(\", \")}` },\n { status: 400 }\n );\n }\n let realCwd;\n try {\n realCwd = realpathSync(cwd);\n if (!statSync(realCwd).isDirectory()) {\n return json({ error: \"Invalid working directory\" }, { status: 400 });\n }\n } catch {\n return json({ error: \"Invalid working directory\" }, { status: 400 });\n }\n const home = process.env.HOME || \"\";\n if (home) {\n const rel = relative(home, realCwd);\n if (rel.startsWith(\"..\") || isAbsolute(rel)) {\n return json({ error: \"Working directory must be under home directory\" }, { status: 400 });\n }\n }\n const existing = ptyManager.list().find(\n (t) => t.status === \"running\" && // Claude / Cursor / Qwen: <id>.jsonl ; Codex rollout: rollout-<ts>-<id>.jsonl ;\n // Copilot: <id>.jsonl OR <id>/events.jsonl ; Amp: T-<id>.json ; OpenCode: session id\n (t.sessionFile?.endsWith(`/${sessionId}.jsonl`) || t.sessionFile?.endsWith(`-${sessionId}.jsonl`) || t.sessionFile?.endsWith(`/${sessionId}/events.jsonl`) || t.sessionFile?.endsWith(`/T-${sessionId}.json`) || t.openCodeSessionId === sessionId)\n );\n if (existing) {\n console.log(\n `[sessions/connect] Reusing terminal ${existing.id} for ${command} session ${sessionId}`\n );\n return json({\n command: existing.command,\n createdAt: existing.createdAt.toISOString(),\n cwd: existing.cwd,\n id: existing.id,\n pid: existing.pid,\n reused: true,\n sessionId,\n sessionWs: `/ws/session/${existing.id}`,\n terminalId: existing.id,\n ws: `/ws/terminal/${existing.id}`\n });\n }\n if (noCreate) {\n return json({ error: \"No existing terminal for this session\" }, { status: 404 });\n }\n const args = resumeArgsForCommand(command, sessionId);\n try {\n const terminal = await ptyManager.create(command, args, realCwd, 120, 40);\n console.log(\n `[sessions/connect] Created terminal ${terminal.id} for ${command} session ${sessionId} (pid=${terminal.pid})`\n );\n return json(\n {\n command: terminal.command,\n createdAt: terminal.createdAt instanceof Date ? terminal.createdAt.toISOString() : terminal.createdAt,\n cwd: terminal.cwd,\n id: terminal.id,\n pid: terminal.pid,\n sessionId,\n sessionWs: `/ws/session/${terminal.id}`,\n terminalId: terminal.id,\n ws: `/ws/terminal/${terminal.id}`\n },\n { status: 201 }\n );\n } catch (error) {\n console.error(\"[sessions/connect] Failed to create terminal:\", toErrorMessage(error));\n return json({ error: \"Failed to create terminal for session\" }, { status: 500 });\n }\n};\nexport {\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { s as shareStore } from './share-store-B9jMpVg0.js';
2
- import { j as json } from './index-CoD1IJuy.js';
2
+ import { j as json } from './index-lhTMmBNn.js';
3
3
  import 'better-sqlite3';
4
4
  import 'crypto';
5
5
  import 'fs';
@@ -10,4 +10,4 @@ const GET = ({ params }) => {
10
10
  };
11
11
 
12
12
  export { GET };
13
- //# sourceMappingURL=_server.ts-B-evHL2q.js.map
13
+ //# sourceMappingURL=_server.ts-Bmp-ldee.js.map