@juspay/shooter 1.4.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/hooks/notifier.cjs +15 -1
- package/README.md +132 -36
- package/bin/shooter.cjs +98 -29
- package/build/client/_app/immutable/assets/2.Dk9NfqnS.css +1 -0
- package/build/client/_app/immutable/assets/2.Dk9NfqnS.css.br +0 -0
- package/build/client/_app/immutable/assets/2.Dk9NfqnS.css.gz +0 -0
- package/build/client/_app/immutable/assets/3.DHxQoulp.css +1 -0
- package/build/client/_app/immutable/assets/3.DHxQoulp.css.br +0 -0
- package/build/client/_app/immutable/assets/3.DHxQoulp.css.gz +0 -0
- package/build/client/_app/immutable/assets/{3.DGDHCVnW.css → 4.D5l1JxgO.css} +1 -1
- package/build/client/_app/immutable/assets/4.D5l1JxgO.css.br +0 -0
- package/build/client/_app/immutable/assets/4.D5l1JxgO.css.gz +0 -0
- package/build/client/_app/immutable/assets/5.C5qz-NeI.css +1 -0
- package/build/client/_app/immutable/assets/5.C5qz-NeI.css.br +0 -0
- package/build/client/_app/immutable/assets/5.C5qz-NeI.css.gz +0 -0
- package/build/client/_app/immutable/chunks/1mEchsPO.js +1 -0
- package/build/client/_app/immutable/chunks/1mEchsPO.js.br +0 -0
- package/build/client/_app/immutable/chunks/1mEchsPO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B7X-vhXI.js +1 -0
- package/build/client/_app/immutable/chunks/B7X-vhXI.js.br +0 -0
- package/build/client/_app/immutable/chunks/B7X-vhXI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BRkqKgVG.js +1 -0
- package/build/client/_app/immutable/chunks/BRkqKgVG.js.br +0 -0
- package/build/client/_app/immutable/chunks/BRkqKgVG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BfJ-f-Tu.js +1 -0
- package/build/client/_app/immutable/chunks/BfJ-f-Tu.js.br +2 -0
- package/build/client/_app/immutable/chunks/BfJ-f-Tu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CGMJxf7r.js +1 -0
- package/build/client/_app/immutable/chunks/CGMJxf7r.js.br +0 -0
- package/build/client/_app/immutable/chunks/CGMJxf7r.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CZHsSL_X.js → CJFjKwJ7.js} +1 -1
- package/build/client/_app/immutable/chunks/CJFjKwJ7.js.br +0 -0
- package/build/client/_app/immutable/chunks/CJFjKwJ7.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CNH2HlKj.js +20 -0
- package/build/client/_app/immutable/chunks/CNH2HlKj.js.br +0 -0
- package/build/client/_app/immutable/chunks/CNH2HlKj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CR6bkGJW.js +6 -0
- package/build/client/_app/immutable/chunks/CR6bkGJW.js.br +0 -0
- package/build/client/_app/immutable/chunks/CR6bkGJW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CVtJ6yRM.js +1 -0
- package/build/client/_app/immutable/chunks/CVtJ6yRM.js.br +0 -0
- package/build/client/_app/immutable/chunks/CVtJ6yRM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CSoRdFvv.js → CaiJSUi3.js} +1 -1
- package/build/client/_app/immutable/chunks/CaiJSUi3.js.br +0 -0
- package/build/client/_app/immutable/chunks/CaiJSUi3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DjsDGxCa.js → CmczWE_d.js} +4 -4
- package/build/client/_app/immutable/chunks/CmczWE_d.js.br +0 -0
- package/build/client/_app/immutable/chunks/CmczWE_d.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CDVSripB.js → CqfYvnci.js} +1 -1
- package/build/client/_app/immutable/chunks/CqfYvnci.js.br +0 -0
- package/build/client/_app/immutable/chunks/CqfYvnci.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CsgHjHGZ.js +1 -0
- package/build/client/_app/immutable/chunks/CsgHjHGZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/CsgHjHGZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{UJOiqIYE.js → CtrCjGZT.js} +1 -1
- package/build/client/_app/immutable/chunks/CtrCjGZT.js.br +0 -0
- package/build/client/_app/immutable/chunks/CtrCjGZT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DDiOVAd8.js +61 -0
- package/build/client/_app/immutable/chunks/DDiOVAd8.js.br +0 -0
- package/build/client/_app/immutable/chunks/DDiOVAd8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DVl0sebP.js +2 -0
- package/build/client/_app/immutable/chunks/DVl0sebP.js.br +0 -0
- package/build/client/_app/immutable/chunks/DVl0sebP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/EhLZwqfu.js +3 -0
- package/build/client/_app/immutable/chunks/EhLZwqfu.js.br +0 -0
- package/build/client/_app/immutable/chunks/EhLZwqfu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/gQJcRhou.js +1 -0
- package/build/client/_app/immutable/chunks/gQJcRhou.js.br +0 -0
- package/build/client/_app/immutable/chunks/gQJcRhou.js.gz +0 -0
- package/build/client/_app/immutable/chunks/pRcLbE0d.js +1 -0
- package/build/client/_app/immutable/chunks/pRcLbE0d.js.br +0 -0
- package/build/client/_app/immutable/chunks/pRcLbE0d.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CF4lQ45j.js → y_g-KC7l.js} +1 -1
- package/build/client/_app/immutable/chunks/y_g-KC7l.js.br +0 -0
- package/build/client/_app/immutable/chunks/y_g-KC7l.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.zJvbFXsj.js +2 -0
- package/build/client/_app/immutable/entry/app.zJvbFXsj.js.br +0 -0
- package/build/client/_app/immutable/entry/app.zJvbFXsj.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.B2Jf5iFd.js +1 -0
- package/build/client/_app/immutable/entry/start.B2Jf5iFd.js.br +2 -0
- package/build/client/_app/immutable/entry/start.B2Jf5iFd.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.B_E4j3MX.js +1 -0
- package/build/client/_app/immutable/nodes/0.B_E4j3MX.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.B_E4j3MX.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.B0oFqb8X.js +1 -0
- package/build/client/_app/immutable/nodes/1.B0oFqb8X.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.B0oFqb8X.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.Bqul0XyM.js +13 -0
- package/build/client/_app/immutable/nodes/2.Bqul0XyM.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.Bqul0XyM.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.CTqUQKSN.js +9 -0
- package/build/client/_app/immutable/nodes/3.CTqUQKSN.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CTqUQKSN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.B_pbOZoD.js +4 -0
- package/build/client/_app/immutable/nodes/4.B_pbOZoD.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.B_pbOZoD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.CdLPNo5-.js +1 -0
- package/build/client/_app/immutable/nodes/5.CdLPNo5-.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.CdLPNo5-.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.BvjUfHnH.js +1 -0
- package/build/client/_app/immutable/nodes/6.BvjUfHnH.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.BvjUfHnH.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.g3R-QfIW.js → 7.5K7Od8ba.js} +3 -3
- package/build/client/_app/immutable/nodes/7.5K7Od8ba.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.5K7Od8ba.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.Bs1DrW0_.js +2 -0
- package/build/client/_app/immutable/nodes/8.Bs1DrW0_.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.Bs1DrW0_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.1fMlGdqv.js +2 -0
- package/build/client/_app/immutable/nodes/9.1fMlGdqv.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.1fMlGdqv.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/0-e1fgD9Mi.js +23 -0
- package/build/server/chunks/0-e1fgD9Mi.js.map +1 -0
- package/build/server/chunks/1-D2_XVthm.js +9 -0
- package/build/server/chunks/{1-BV7u1xGo.js.map → 1-D2_XVthm.js.map} +1 -1
- package/build/server/chunks/2-DADX86JZ.js +21 -0
- package/build/server/chunks/2-DADX86JZ.js.map +1 -0
- package/build/server/chunks/3-CHacdiCg.js +21 -0
- package/build/server/chunks/3-CHacdiCg.js.map +1 -0
- package/build/server/chunks/4-0UE_6Ep-.js +23 -0
- package/build/server/chunks/4-0UE_6Ep-.js.map +1 -0
- package/build/server/chunks/5-BBIP1PzX.js +24 -0
- package/build/server/chunks/5-BBIP1PzX.js.map +1 -0
- package/build/server/chunks/6-CWLNQu6F.js +9 -0
- package/build/server/chunks/6-CWLNQu6F.js.map +1 -0
- package/build/server/chunks/7-DmQ3B8uy.js +9 -0
- package/build/server/chunks/7-DmQ3B8uy.js.map +1 -0
- package/build/server/chunks/8-CnFVjQtZ.js +9 -0
- package/build/server/chunks/8-CnFVjQtZ.js.map +1 -0
- package/build/server/chunks/9-Dw7-P6aF.js +9 -0
- package/build/server/chunks/9-Dw7-P6aF.js.map +1 -0
- package/build/server/chunks/{Button-Cs1aE6ka.js → Button-WKgiLWZI.js} +4 -9
- package/build/server/chunks/Button-WKgiLWZI.js.map +1 -0
- package/build/server/chunks/{EmptyState-DDFH1K8g.js → EmptyState-BUBqASsp.js} +3 -3
- package/build/server/chunks/{EmptyState-DDFH1K8g.js.map → EmptyState-BUBqASsp.js.map} +1 -1
- package/build/server/chunks/{Icon-CEUrotA6.js → Icon-BNBAg85a.js} +3 -3
- package/build/server/chunks/Icon-BNBAg85a.js.map +1 -0
- package/build/server/chunks/{Shimmer-DB8W1zt6.js → Shimmer-C4uBVwxz.js} +2 -2
- package/build/server/chunks/{Shimmer-DB8W1zt6.js.map → Shimmer-C4uBVwxz.js.map} +1 -1
- package/build/server/chunks/{_error.svelte-uCOJNxvr.js → _error.svelte-DkIwmECt.js} +5 -5
- package/build/server/chunks/{_error.svelte-uCOJNxvr.js.map → _error.svelte-DkIwmECt.js.map} +1 -1
- package/build/server/chunks/{_layout.svelte-CtWmEJwe.js → _layout.svelte-DllETxmJ.js} +13 -7
- package/build/server/chunks/_layout.svelte-DllETxmJ.js.map +1 -0
- package/build/server/chunks/_page.svelte-BZSdLKE_.js +118 -0
- package/build/server/chunks/_page.svelte-BZSdLKE_.js.map +1 -0
- package/build/server/chunks/{_page.svelte-CxWcQ0Am.js → _page.svelte-Cmuco1mC.js} +84 -199
- package/build/server/chunks/_page.svelte-Cmuco1mC.js.map +1 -0
- package/build/server/chunks/{_page.svelte-BgevQjq1.js → _page.svelte-Co5sF7W-.js} +12 -11
- package/build/server/chunks/{_page.svelte-BgevQjq1.js.map → _page.svelte-Co5sF7W-.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DO4oa_LY.js → _page.svelte-CpL3R-VI.js} +8 -8
- package/build/server/chunks/{_page.svelte-DO4oa_LY.js.map → _page.svelte-CpL3R-VI.js.map} +1 -1
- package/build/server/chunks/_page.svelte-DDSzYLUs.js +137 -0
- package/build/server/chunks/_page.svelte-DDSzYLUs.js.map +1 -0
- package/build/server/chunks/_page.svelte-JIkgFUFf.js +26 -0
- package/build/server/chunks/_page.svelte-JIkgFUFf.js.map +1 -0
- package/build/server/chunks/{_page.svelte-CVq6tRb3.js → _page.svelte-Y9-O5a5w.js} +10 -9
- package/build/server/chunks/_page.svelte-Y9-O5a5w.js.map +1 -0
- package/build/server/chunks/{_page.svelte-BcZaKdX9.js → _page.svelte-fcX09N4d.js} +9 -9
- package/build/server/chunks/{_page.svelte-BcZaKdX9.js.map → _page.svelte-fcX09N4d.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DYpJImqd.js → _server.ts-0Xr2fWaq.js} +9 -5
- package/build/server/chunks/_server.ts-0Xr2fWaq.js.map +1 -0
- package/build/server/chunks/{_server.ts-CTpcLUH8.js → _server.ts-2ixC-X3K.js} +20 -5
- package/build/server/chunks/_server.ts-2ixC-X3K.js.map +1 -0
- package/build/server/chunks/{_server.ts-CAxsWKvS.js → _server.ts-40c_epk8.js} +20 -4
- package/build/server/chunks/_server.ts-40c_epk8.js.map +1 -0
- package/build/server/chunks/{_server.ts-WhTJBEJy.js → _server.ts-A9_tRR-K.js} +5 -4
- package/build/server/chunks/{_server.ts-WhTJBEJy.js.map → _server.ts-A9_tRR-K.js.map} +1 -1
- package/build/server/chunks/_server.ts-BRAzC6W1.js +98 -0
- package/build/server/chunks/_server.ts-BRAzC6W1.js.map +1 -0
- package/build/server/chunks/{_server.ts-DB_Kg97c.js → _server.ts-BScvgttw.js} +24 -4
- package/build/server/chunks/_server.ts-BScvgttw.js.map +1 -0
- package/build/server/chunks/{_server.ts-Ch-6iOHp.js → _server.ts-B__YN2kX.js} +121 -87
- package/build/server/chunks/_server.ts-B__YN2kX.js.map +1 -0
- package/build/server/chunks/{_server.ts-tSpgyl1D.js → _server.ts-Bjbr7glm.js} +4 -3
- package/build/server/chunks/_server.ts-Bjbr7glm.js.map +1 -0
- package/build/server/chunks/{_server.ts-COu0vNpd.js → _server.ts-BrqaMMAa.js} +7 -6
- package/build/server/chunks/_server.ts-BrqaMMAa.js.map +1 -0
- package/build/server/chunks/{_server.ts-vekTmWAx.js → _server.ts-BuYyCrnF.js} +6 -4
- package/build/server/chunks/_server.ts-BuYyCrnF.js.map +1 -0
- package/build/server/chunks/{_server.ts-Deok2y88.js → _server.ts-ByIrRtCx.js} +132 -76
- package/build/server/chunks/_server.ts-ByIrRtCx.js.map +1 -0
- package/build/server/chunks/{_server.ts-DYvb9ijZ.js → _server.ts-ByPExYfO.js} +4 -3
- package/build/server/chunks/{_server.ts-DYvb9ijZ.js.map → _server.ts-ByPExYfO.js.map} +1 -1
- package/build/server/chunks/_server.ts-CjpQ10xh.js +123 -0
- package/build/server/chunks/_server.ts-CjpQ10xh.js.map +1 -0
- package/build/server/chunks/_server.ts-CyjDrcZN.js +21 -0
- package/build/server/chunks/_server.ts-CyjDrcZN.js.map +1 -0
- package/build/server/chunks/{_server.ts-DV8zTCF9.js → _server.ts-DOGUMzPx.js} +4 -3
- package/build/server/chunks/{_server.ts-DV8zTCF9.js.map → _server.ts-DOGUMzPx.js.map} +1 -1
- package/build/server/chunks/_server.ts-DZvfyuNj.js +15 -0
- package/build/server/chunks/_server.ts-DZvfyuNj.js.map +1 -0
- package/build/server/chunks/{_server.ts-XzT2UHM1.js → _server.ts-DkPPTUPo.js} +4 -3
- package/build/server/chunks/{_server.ts-XzT2UHM1.js.map → _server.ts-DkPPTUPo.js.map} +1 -1
- package/build/server/chunks/{auth-DeCdZ83n.js → auth-DuunT7Cg.js} +2 -2
- package/build/server/chunks/{auth-DeCdZ83n.js.map → auth-DuunT7Cg.js.map} +1 -1
- package/build/server/chunks/{client-BdGHe_hY.js → client-DRtPDkMh.js} +4 -4
- package/build/server/chunks/{client-BdGHe_hY.js.map → client-DRtPDkMh.js.map} +1 -1
- package/build/server/chunks/client2-bqqmu0b7.js +7 -0
- package/build/server/chunks/{client2-CCBGA-2V.js.map → client2-bqqmu0b7.js.map} +1 -1
- package/build/server/chunks/close-BGlLztTb.js +192 -0
- package/build/server/chunks/close-BGlLztTb.js.map +1 -0
- package/build/server/chunks/events-handler-Dm1mNPQP.js +20 -0
- package/build/server/chunks/events-handler-Dm1mNPQP.js.map +1 -0
- package/build/server/chunks/html-FW6Ia4bL.js +8 -0
- package/build/server/chunks/html-FW6Ia4bL.js.map +1 -0
- package/build/server/chunks/{shared-server-sSGG17Df.js → index-CoD1IJuy.js} +2 -11
- package/build/server/chunks/index-CoD1IJuy.js.map +1 -0
- package/build/server/chunks/{index-DwaY1cAm.js → index-DP9bWJrR.js} +2 -2
- package/build/server/chunks/{index-DwaY1cAm.js.map → index-DP9bWJrR.js.map} +1 -1
- package/build/server/chunks/{index-server-CrDaL06Y.js → index-server-BUmV4MIG.js} +2 -2
- package/build/server/chunks/index-server-BUmV4MIG.js.map +1 -0
- package/build/server/chunks/index-server2-BJrT0wnA.js +5 -0
- package/build/server/chunks/index-server2-BJrT0wnA.js.map +1 -0
- package/build/server/chunks/{index2-CgclKpUj.js → index2-D5Y19GKR.js} +2 -2
- package/build/server/chunks/index2-D5Y19GKR.js.map +1 -0
- package/build/server/chunks/{library-apns-BqJbvSKh.js → library-apns-Cf-E-DhM.js} +5 -2
- package/build/server/chunks/library-apns-Cf-E-DhM.js.map +1 -0
- package/build/server/chunks/providers-DtstoHQ0.js +17 -0
- package/build/server/chunks/providers-DtstoHQ0.js.map +1 -0
- package/build/server/chunks/{pty-manager-BQVB7IVj.js → pty-manager-TyMUpDA9.js} +41 -9
- package/build/server/chunks/pty-manager-TyMUpDA9.js.map +1 -0
- package/build/server/chunks/{root-DDSnEAZv.js → root-CATOR_0t.js} +2 -2
- package/build/server/chunks/root-CATOR_0t.js.map +1 -0
- package/build/server/chunks/shared-server-DaWdgxVh.js +11 -0
- package/build/server/chunks/shared-server-DaWdgxVh.js.map +1 -0
- package/build/server/chunks/{state.svelte-hBbXlUak.js → state.svelte-CftllyvC.js} +3 -3
- package/build/server/chunks/state.svelte-CftllyvC.js.map +1 -0
- package/build/server/chunks/{stores-DHNzYNpX.js → stores-BjL57aOK.js} +4 -4
- package/build/server/chunks/{stores-DHNzYNpX.js.map → stores-BjL57aOK.js.map} +1 -1
- package/build/server/index.js +173 -6
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +53 -30
- package/build/server/manifest.js.map +1 -1
- package/package.json +28 -7
- package/scripts/dev.mjs +361 -0
- package/scripts/install.sh +133 -73
- package/scripts/{fix-generated-types.sh → postgen-types.sh} +2 -2
- package/scripts/setup.cjs +440 -244
- package/scripts/vercel-env-commands.sh +3 -3
- package/server.ts +3 -3
- package/src/app.html +163 -0
- package/src/lib/modules/client/activity/ActivityFeed.svelte +279 -0
- package/src/lib/modules/client/activity/index.ts +8 -0
- package/src/lib/modules/client/activity/store.svelte.ts +478 -0
- package/src/lib/modules/client/activity/summarizer.ts +224 -0
- package/src/lib/modules/client/common/Card.svelte +2 -9
- package/src/lib/modules/client/common/EmptyState.svelte +2 -20
- package/src/lib/modules/client/common/Icon.svelte +3 -7
- package/src/lib/modules/client/common/StatusBadge.svelte +2 -4
- package/src/lib/modules/client/common/config-guard.ts +22 -2
- package/src/lib/modules/client/common/index.ts +1 -1
- package/src/lib/modules/client/common/time.ts +27 -9
- package/src/lib/modules/client/dashboard/DashboardCard.svelte +374 -0
- package/src/lib/modules/client/dashboard/DashboardView.svelte +66 -0
- package/src/lib/modules/client/dashboard/index.ts +12 -0
- package/src/lib/modules/client/dashboard/store.svelte.ts +663 -0
- package/src/lib/modules/client/dashboard/summarizer.ts +205 -0
- package/src/lib/modules/client/neurolink/fetch-proxy.ts +70 -0
- package/src/lib/modules/client/neurolink/provider-config.ts +111 -0
- package/src/lib/modules/client/terminal/ChatView.svelte +46 -43
- package/src/lib/modules/client/terminal/CommandPalette.svelte +3 -12
- package/src/lib/modules/client/terminal/ConnectionStatus.svelte +3 -6
- package/src/lib/modules/client/terminal/LaunchSheet.svelte +10 -21
- package/src/lib/modules/client/terminal/QuickKeys.svelte +4 -11
- package/src/lib/modules/client/terminal/ShortcutsHelp.svelte +3 -6
- package/src/lib/modules/client/terminal/keyboard-shortcuts.ts +5 -7
- package/src/lib/modules/client/terminal/xterm-wrapper.ts +27 -47
- package/src/lib/modules/server/apn/library-apns.ts +6 -3
- package/src/lib/modules/server/apn/notification-history.ts +2 -2
- package/src/lib/modules/server/apn/notification-sessions.ts +1 -3
- package/src/lib/modules/server/apn/pending-requests.ts +1 -1
- package/src/lib/modules/server/apn/types.ts +2 -52
- package/src/lib/modules/server/cli/index.ts +1 -30
- package/src/lib/modules/server/cli/runner.ts +7 -15
- package/src/lib/modules/server/fcm/fcm-service.ts +2 -2
- package/src/lib/modules/server/sessions/jsonl-parser.ts +97 -42
- package/src/lib/modules/server/sessions/jsonl-reader.ts +69 -60
- package/src/lib/modules/server/sessions/opencode-reader.ts +1 -1
- package/src/lib/modules/server/sessions/process-detector.ts +72 -31
- package/src/lib/modules/server/sessions/types.ts +2 -42
- package/src/lib/modules/server/terminal/holder-client.ts +11 -35
- package/src/lib/modules/server/terminal/opencode-watcher.ts +16 -24
- package/src/lib/modules/server/terminal/pty-manager.ts +40 -45
- package/src/lib/modules/server/terminal/session-watcher.ts +15 -17
- package/src/lib/modules/server/terminal/terminal-store.ts +1 -1
- package/src/lib/modules/server/ws/events-handler.ts +1 -16
- package/src/lib/modules/server/ws/keepalive.ts +1 -5
- package/src/lib/modules/server/ws/server.ts +1 -1
- package/src/lib/modules/server/ws/session-handler.ts +20 -86
- package/src/lib/modules/server/ws/terminal-handler.ts +28 -51
- package/src/lib/modules/server/ws/ticket-store.ts +1 -1
- package/src/lib/modules/shared/providers.ts +21 -0
- package/src/lib/types/activity.ts +18 -0
- package/src/lib/types/apn.ts +43 -0
- package/src/lib/types/cli.ts +39 -0
- package/src/lib/types/common.ts +39 -0
- package/src/lib/types/dashboard.ts +4 -0
- package/src/lib/types/generated/Client.ts +1656 -0
- package/src/{generated/types → lib/types/generated}/WsProtocol.ts +344 -2
- package/src/lib/types/index.ts +28 -0
- package/src/lib/types/neurolink.ts +4 -0
- package/src/lib/types/server.ts +93 -0
- package/src/lib/types/sessions.ts +59 -0
- package/src/lib/types/terminal-client.ts +132 -0
- package/src/lib/types/ws.ts +161 -0
- package/src/routes/+error.svelte +7 -2
- package/src/routes/+layout.server.ts +9 -0
- package/src/routes/+layout.svelte +36 -7
- package/src/routes/+page.server.ts +7 -0
- package/src/routes/+page.svelte +85 -35
- package/src/routes/activity/+page.server.ts +7 -0
- package/src/routes/activity/+page.svelte +58 -0
- package/src/routes/api/health/+server.ts +32 -19
- package/src/routes/api/neurolink-proxy/+server.ts +136 -0
- package/src/routes/api/notify/+server.ts +159 -84
- package/src/routes/api/sessions/+server.ts +1 -1
- package/src/routes/api/sessions/connect/+server.ts +10 -6
- package/src/routes/api/terminals/+server.ts +20 -1
- package/src/routes/api/terminals/[id]/+server.ts +16 -2
- package/src/routes/api/webhook/+server.ts +5 -33
- package/src/routes/api/ws-ticket/+server.ts +4 -4
- package/src/routes/config/+page.server.ts +9 -0
- package/src/routes/config/+page.svelte +118 -25
- package/src/routes/neurolink/+page.server.ts +10 -0
- package/src/routes/neurolink/+page.svelte +331 -0
- package/src/routes/project/+page.svelte +17 -12
- package/src/routes/session/[id]/+page.svelte +146 -62
- package/src/routes/terminals/+page.svelte +2 -2
- package/src/routes/terminals/[id]/+page.svelte +99 -88
- package/svelte.config.js +1 -3
- package/tsconfig.json +1 -0
- package/build/client/_app/immutable/assets/2.CAShZ7lQ.css +0 -1
- package/build/client/_app/immutable/assets/2.CAShZ7lQ.css.br +0 -1
- package/build/client/_app/immutable/assets/2.CAShZ7lQ.css.gz +0 -0
- package/build/client/_app/immutable/assets/3.DGDHCVnW.css.br +0 -0
- package/build/client/_app/immutable/assets/3.DGDHCVnW.css.gz +0 -0
- package/build/client/_app/immutable/chunks/B5NAKyil.js +0 -20
- package/build/client/_app/immutable/chunks/B5NAKyil.js.br +0 -0
- package/build/client/_app/immutable/chunks/B5NAKyil.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B8XegpSE.js +0 -1
- package/build/client/_app/immutable/chunks/B8XegpSE.js.br +0 -0
- package/build/client/_app/immutable/chunks/B8XegpSE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B8zoBsv3.js +0 -6
- package/build/client/_app/immutable/chunks/B8zoBsv3.js.br +0 -0
- package/build/client/_app/immutable/chunks/B8zoBsv3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BN1NjBrw.js +0 -1
- package/build/client/_app/immutable/chunks/BN1NjBrw.js.br +0 -0
- package/build/client/_app/immutable/chunks/BN1NjBrw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BOYo8yTr.js +0 -1
- package/build/client/_app/immutable/chunks/BOYo8yTr.js.br +0 -0
- package/build/client/_app/immutable/chunks/BOYo8yTr.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bu1aqm5j.js +0 -1
- package/build/client/_app/immutable/chunks/Bu1aqm5j.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bu1aqm5j.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CDVSripB.js.br +0 -0
- package/build/client/_app/immutable/chunks/CDVSripB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CF4lQ45j.js.br +0 -0
- package/build/client/_app/immutable/chunks/CF4lQ45j.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CQjSATpv.js +0 -61
- package/build/client/_app/immutable/chunks/CQjSATpv.js.br +0 -0
- package/build/client/_app/immutable/chunks/CQjSATpv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CSoRdFvv.js.br +0 -0
- package/build/client/_app/immutable/chunks/CSoRdFvv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CZHsSL_X.js.br +0 -0
- package/build/client/_app/immutable/chunks/CZHsSL_X.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DSU1n5N_.js +0 -1
- package/build/client/_app/immutable/chunks/DSU1n5N_.js.br +0 -0
- package/build/client/_app/immutable/chunks/DSU1n5N_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DVkn4r72.js +0 -1
- package/build/client/_app/immutable/chunks/DVkn4r72.js.br +0 -0
- package/build/client/_app/immutable/chunks/DVkn4r72.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DjsDGxCa.js.br +0 -0
- package/build/client/_app/immutable/chunks/DjsDGxCa.js.gz +0 -0
- package/build/client/_app/immutable/chunks/UJOiqIYE.js.br +0 -0
- package/build/client/_app/immutable/chunks/UJOiqIYE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/r0JawsZc.js +0 -2
- package/build/client/_app/immutable/chunks/r0JawsZc.js.br +0 -0
- package/build/client/_app/immutable/chunks/r0JawsZc.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.DwWiuoEC.js +0 -2
- package/build/client/_app/immutable/entry/app.DwWiuoEC.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DwWiuoEC.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.DG8BMhrh.js +0 -1
- package/build/client/_app/immutable/entry/start.DG8BMhrh.js.br +0 -0
- package/build/client/_app/immutable/entry/start.DG8BMhrh.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.ejabgzDQ.js +0 -1
- package/build/client/_app/immutable/nodes/0.ejabgzDQ.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.ejabgzDQ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.BFK7Ubrr.js +0 -1
- package/build/client/_app/immutable/nodes/1.BFK7Ubrr.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.BFK7Ubrr.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DV3saFiY.js +0 -1
- package/build/client/_app/immutable/nodes/2.DV3saFiY.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DV3saFiY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.3yohCM25.js +0 -3
- package/build/client/_app/immutable/nodes/3.3yohCM25.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.3yohCM25.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.D6NIf10D.js +0 -1
- package/build/client/_app/immutable/nodes/4.D6NIf10D.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.D6NIf10D.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.g3R-QfIW.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.g3R-QfIW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.DSpd_nYK.js +0 -2
- package/build/client/_app/immutable/nodes/6.DSpd_nYK.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.DSpd_nYK.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.F9WBFTz2.js +0 -2
- package/build/client/_app/immutable/nodes/7.F9WBFTz2.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.F9WBFTz2.js.gz +0 -0
- package/build/server/chunks/0-ePgrkfG9.js +0 -9
- package/build/server/chunks/0-ePgrkfG9.js.map +0 -1
- package/build/server/chunks/1-BV7u1xGo.js +0 -9
- package/build/server/chunks/2-3p1kyvjQ.js +0 -9
- package/build/server/chunks/2-3p1kyvjQ.js.map +0 -1
- package/build/server/chunks/3-Ck7ewhOX.js +0 -9
- package/build/server/chunks/3-Ck7ewhOX.js.map +0 -1
- package/build/server/chunks/4-ChFYfo_S.js +0 -9
- package/build/server/chunks/4-ChFYfo_S.js.map +0 -1
- package/build/server/chunks/5-q-tQLBBu.js +0 -9
- package/build/server/chunks/5-q-tQLBBu.js.map +0 -1
- package/build/server/chunks/6-BIaAbm8b.js +0 -9
- package/build/server/chunks/6-BIaAbm8b.js.map +0 -1
- package/build/server/chunks/7--TmbCgrH.js +0 -9
- package/build/server/chunks/7--TmbCgrH.js.map +0 -1
- package/build/server/chunks/Button-Cs1aE6ka.js.map +0 -1
- package/build/server/chunks/Icon-CEUrotA6.js.map +0 -1
- package/build/server/chunks/_layout.svelte-CtWmEJwe.js.map +0 -1
- package/build/server/chunks/_page.svelte-BdYynOck.js +0 -85
- package/build/server/chunks/_page.svelte-BdYynOck.js.map +0 -1
- package/build/server/chunks/_page.svelte-CVq6tRb3.js.map +0 -1
- package/build/server/chunks/_page.svelte-CxWcQ0Am.js.map +0 -1
- package/build/server/chunks/_server.ts-BStnNIcq.js +0 -34
- package/build/server/chunks/_server.ts-BStnNIcq.js.map +0 -1
- package/build/server/chunks/_server.ts-CAxsWKvS.js.map +0 -1
- package/build/server/chunks/_server.ts-COu0vNpd.js.map +0 -1
- package/build/server/chunks/_server.ts-CTpcLUH8.js.map +0 -1
- package/build/server/chunks/_server.ts-Cf84YIaW.js +0 -25
- package/build/server/chunks/_server.ts-Cf84YIaW.js.map +0 -1
- package/build/server/chunks/_server.ts-Ch-6iOHp.js.map +0 -1
- package/build/server/chunks/_server.ts-CtH0dhUp.js +0 -71
- package/build/server/chunks/_server.ts-CtH0dhUp.js.map +0 -1
- package/build/server/chunks/_server.ts-DB_Kg97c.js.map +0 -1
- package/build/server/chunks/_server.ts-DYpJImqd.js.map +0 -1
- package/build/server/chunks/_server.ts-Deok2y88.js.map +0 -1
- package/build/server/chunks/_server.ts-tSpgyl1D.js.map +0 -1
- package/build/server/chunks/_server.ts-vekTmWAx.js.map +0 -1
- package/build/server/chunks/client2-CCBGA-2V.js +0 -7
- package/build/server/chunks/index-server-CrDaL06Y.js.map +0 -1
- package/build/server/chunks/index2-CgclKpUj.js.map +0 -1
- package/build/server/chunks/library-apns-BqJbvSKh.js.map +0 -1
- package/build/server/chunks/pty-manager-BQVB7IVj.js.map +0 -1
- package/build/server/chunks/root-DDSnEAZv.js.map +0 -1
- package/build/server/chunks/shared-server-sSGG17Df.js.map +0 -1
- package/build/server/chunks/state.svelte-hBbXlUak.js.map +0 -1
- package/src/generated/types/Client.ts +0 -589
- package/src/lib/types/config.ts +0 -1
- /package/build/client/_app/immutable/assets/{4.BFUut--w.css → 6.BFUut--w.css} +0 -0
- /package/build/client/_app/immutable/assets/{4.BFUut--w.css.br → 6.BFUut--w.css.br} +0 -0
- /package/build/client/_app/immutable/assets/{4.BFUut--w.css.gz → 6.BFUut--w.css.gz} +0 -0
- /package/build/client/_app/immutable/assets/{5.BTOx7yt7.css → 7.BTOx7yt7.css} +0 -0
- /package/build/client/_app/immutable/assets/{5.BTOx7yt7.css.br → 7.BTOx7yt7.css.br} +0 -0
- /package/build/client/_app/immutable/assets/{5.BTOx7yt7.css.gz → 7.BTOx7yt7.css.gz} +0 -0
- /package/build/client/_app/immutable/assets/{6.eZGZN-BF.css → 8.eZGZN-BF.css} +0 -0
- /package/build/client/_app/immutable/assets/{6.eZGZN-BF.css.br → 8.eZGZN-BF.css.br} +0 -0
- /package/build/client/_app/immutable/assets/{6.eZGZN-BF.css.gz → 8.eZGZN-BF.css.gz} +0 -0
- /package/build/client/_app/immutable/assets/{7.DwS5ZHBh.css → 9.DwS5ZHBh.css} +0 -0
- /package/build/client/_app/immutable/assets/{7.DwS5ZHBh.css.br → 9.DwS5ZHBh.css.br} +0 -0
- /package/build/client/_app/immutable/assets/{7.DwS5ZHBh.css.gz → 9.DwS5ZHBh.css.gz} +0 -0
- /package/src/{generated/types → lib/types/generated}/API.ts +0 -0
- /package/src/{generated/types → lib/types/generated}/APN.ts +0 -0
- /package/src/{generated/types → lib/types/generated}/CLI.ts +0 -0
- /package/src/{generated/types → lib/types/generated}/Config.ts +0 -0
- /package/src/{generated/types → lib/types/generated}/Holder.ts +0 -0
- /package/src/{generated/types → lib/types/generated}/JWT.ts +0 -0
- /package/src/{generated/types → lib/types/generated}/Notification.ts +0 -0
- /package/src/{generated/types → lib/types/generated}/OpenCode.ts +0 -0
- /package/src/{generated/types → lib/types/generated}/Sessions.ts +0 -0
- /package/src/{generated/types → lib/types/generated}/Terminal.ts +0 -0
- /package/src/{generated/types → lib/types/generated}/index.ts +0 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import{s as h,a as g,t as Be,f as A}from"../chunks/DVl0sebP.js";import{s as O,A as ke,b as _,g as n,W as Ee,X as Pe,_ as Ge,c as u,d as p,r as d,t as E,a1 as He,Y as Ne,Z as N,q as We,a0 as Ve}from"../chunks/CJFjKwJ7.js";import{i as P}from"../chunks/BfJ-f-Tu.js";import{h as Je}from"../chunks/CsgHjHGZ.js";import{g as ce}from"../chunks/EhLZwqfu.js";import{b as ue,e as le,B as Xe,a as qe}from"../chunks/CNH2HlKj.js";import{a as Ae}from"../chunks/DDiOVAd8.js";import{g as je,i as Ze}from"../chunks/gQJcRhou.js";import{f as we}from"../chunks/BLszSzTT.js";import{S as Qe}from"../chunks/CGMJxf7r.js";import{i as et}from"../chunks/BRkqKgVG.js";import{d as tt}from"../chunks/pRcLbE0d.js";const ot="https://unpkg.com/@juspay/neurolink/dist/browser/neurolink.min.js",rt=6e4,Se=3;let Q=null,Y=null,L=0,$e=0;async function st(e,t){if(e.length===0)return{error:null,text:""};let i;try{i=await it()}catch{const o=e.map(x=>w(x.data.tool)||x.type),l=Array.from(new Set(o));return{error:"AI SDK failed to load",text:`${e.length} events: ${l.join(", ")}`}}if(!i){const o=e.map(x=>w(x.data.tool)||x.type),l=Array.from(new Set(o));return{error:"No AI provider configured",text:`${e.length} events: ${l.join(", ")}`}}const s=at(e),a=`You are a coding activity summarizer. Given these events from active Claude Code sessions, write a 1-2 sentence summary (max 150 chars) of what's happening. Be specific — mention tool names, file names, and what's being accomplished.
|
|
2
|
+
|
|
3
|
+
${t?`Project: ${t}
|
|
4
|
+
`:""}Events:
|
|
5
|
+
${s}
|
|
6
|
+
|
|
7
|
+
Summary:`;try{const o=await i.generate({input:{text:a},maxTokens:300,...me?{model:me}:{},...de?{provider:de}:{}});return{error:null,text:w(o.content??o.text).trim()||`${e.length} events processed`}}catch(o){return{error:o instanceof Error?o.message:String(o),text:`${e.length} events (summary unavailable)`}}}function nt(e){const t=e.data,i=e.projectName?`[${e.projectName}] `:"",s=w(t.tool)||w(t.name)||"",r=w(t.filePath),a=w(t.command),o=w(t.pattern);switch(e.type){case"agent-idle":case"agent-question":return`${i}${e.type}: ${w(t.message).slice(0,80)}`;case"error":return`${i}Error: ${w(t.error||t.message).slice(0,100)}`;case"session_end":return`${i}Session ended`;case"tool-completed":return`${i}[${s}] completed`;case"tool-failed":return`${i}[${s}] FAILED: ${w(t.error).slice(0,80)}`;case"tool-started":return`${i}[${s}] started${r?`: ${r}`:""}`;case"tool_result":{const l=t.is_error?"FAILED":"done";return`${i}${s?`[${s}] → `:""}${l}`}case"tool_use":{const l=r||a||o||"";return s?`${i}[${s}] ${l}`.trim():`${i}[tool] ${l}`.trim()}case"user_message":return`${i}User: ${w(t.text).slice(0,80)}`;default:return`${i}${e.type}`}}function at(e){return e.map(nt).join(`
|
|
8
|
+
`)}let me="",de="";async function it(){if(Q)return Q;if(Y)return Y;if(L>=Se){if(Date.now()<$e)return null;L=0}return L++,Y=(async()=>{try{et();const e=await import(ot),t=window.__aiProviders,i=window.process?.env?.NEUROLINK_PROVIDER,s=tt(t,i);if(!s)return console.warn("[ActivityFeed] No AI provider configured"),null;const r=window.process;return r?.env&&t&&(t["google-ai"]&&!r.env.GOOGLE_AI_API_KEY&&(r.env.GOOGLE_AI_API_KEY="proxy-via-server"),t.anthropic&&!r.env.ANTHROPIC_API_KEY&&(r.env.ANTHROPIC_API_KEY="proxy-via-server"),t.openai&&!r.env.OPENAI_API_KEY&&(r.env.OPENAI_API_KEY="proxy-via-server"),t.mistral&&!r.env.MISTRAL_API_KEY&&(r.env.MISTRAL_API_KEY="proxy-via-server")),Q=new e.NeuroLink({provider:s.provider}),me=s.model,de=s.provider,L=0,console.log(`[ActivityFeed] NeuroLink SDK loaded: ${s.provider}/${s.model}`),Q}catch(e){return console.warn("[ActivityFeed] NeuroLink SDK load failed (attempt",L,"):",e instanceof Error?e.message:String(e)),L>=Se&&($e=Date.now()+rt),null}finally{Y=null}})(),Y}function w(e){return e==null?"":typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):JSON.stringify(e)}const ct=50,be=5,lt=15e3,mt=15e3,dt=5;let S=O(ke([])),te=O(ke([])),ve=O(!0),M=O(!1),B=O(!1),G=null,ee=null,fe=0;const I=new ue;let H="",oe=null;async function ut(e){if(!G){if(H=je(),!H){console.warn("[ActivityStore] No API key available");return}oe=e,await Ie(),G=setInterval(()=>{Ie()},mt),ee=setInterval(()=>{T()},lt)}}function vt(){G&&(clearInterval(G),G=null),ee&&(clearInterval(ee),ee=null);for(const[e,t]of I)t.onclose=null,t.close(),console.log(`[ActivityStore] Closed session socket for ${e}`);I.clear(),_(S,[],!0),_(te,[],!0),fe=0,_(ve,!0),_(B,!1),_(M,!1),H="",oe=null}function ft(){return n(S)}function pt(){return n(te)}function _t(){return n(ve)}function gt(){return n(M)}function yt(){return n(B)}function R(e,t,i,s){const r={data:i,id:`evt-${++fe}`,projectName:e.projectName,sessionId:e.id,summarized:!1,timestamp:s||new Date().toISOString(),type:t};_(S,[...n(S),r].slice(-200),!0),n(S).filter(o=>!o.summarized).length>=be&&T()}async function ht(e){if(oe)try{const t=await oe(),s=`${window.location.origin.replace(/^http/,"ws")}/ws/session/${e.id}?ticket=${t}`;console.log(`[ActivityStore] Connecting to session ${e.id}`);const r=new WebSocket(s);I.set(e.id,r),r.onopen=()=>{console.log(`[ActivityStore] Session socket opened: ${e.id}`),_(M,!0)},r.onmessage=a=>{try{const o=JSON.parse(a.data);if(!o||typeof o!="object")return;const l=o;At(e,l),l.type==="history"&&T()}catch{}},r.onclose=()=>{console.log(`[ActivityStore] Session socket closed: ${e.id}`),I.delete(e.id),_(M,I.size>0)},r.onerror=a=>{console.warn(`[ActivityStore] Session socket error for ${e.id}:`,a),I.delete(e.id),_(M,I.size>0)}}catch(t){console.warn(`[ActivityStore] Failed to connect session ${e.id}:`,t)}}async function Ie(){if(H)try{const e=await fetch("/api/sessions?limit=50",{headers:{Authorization:`Bearer ${H}`}});if(!e.ok){console.warn("[ActivityStore] Failed to fetch sessions:",e.status);return}const i=(await e.json()).projects??[],s=Date.now()-dt*60*1e3,r=[];for(const o of i)for(const l of o.sessions)Date.parse(l.modified)>s&&r.push({createdAt:l.created,id:l.id,modifiedAt:l.modified,projectName:o.name,projectPath:o.fullPath});const a=new Set(r.map(o=>o.id));for(const[o,l]of I)a.has(o)||(l.onclose=null,l.close(),I.delete(o),console.log(`[ActivityStore] Session ${o} went stale, closed socket`));for(const o of r)I.has(o.id)||ht(o);_(M,I.size>0)}catch(e){console.warn("[ActivityStore] Error discovering sessions:",e)}}function At(e,t){const i=t.type;if(i==="history"&&Array.isArray(t.messages)){const r=t.messages.slice(-20);for(const a of r)xe(e,a)}else if(i==="message")xe(e,{content:t.content||"",role:t.role||"assistant",timestamp:t.timestamp});else if(i==="tool-use"){const s=t.name||"unknown",r=typeof t.input=="object"&&t.input!==null?t.input:{},a=r.file_path||r.path||"",o=r.command||"",l=r.pattern||"";R(e,"tool_use",{command:o.slice(0,120),filePath:a.slice(0,200),name:s,pattern:l.slice(0,100),tool:s})}else if(i==="tool-result"){const s=t.isError===!0,r=(t.output||"").slice(0,200);let a=t.name||"";if(!a){for(let o=n(S).length-1;o>=0;o--)if(n(S)[o].type==="tool_use"&&n(S)[o].data.name){a=n(S)[o].data.name;break}}R(e,"tool_result",{is_error:s,output:r,status:s?"error":"done",tool:a}),s&&T()}else i==="thinking"||(i==="error"?(R(e,"error",{message:t.message||"Unknown error"}),T()):i==="session-end"&&(R(e,"session_end",{}),T()))}function xe(e,t){const i=t.timestamp||new Date().toISOString();let s="";if(typeof t.content=="string"?s=t.content:Array.isArray(t.content)&&(s=t.content.filter(a=>a.type==="text").map(a=>a.text||a.content||"").join("")),t.role==="user")R(e,"user_message",{text:s.slice(0,150)},i);else if(t.role==="assistant"&&Array.isArray(t.content)){const r=t.content.filter(a=>a.type==="tool_use");for(const a of r){const o=a,l=typeof o.input=="object"&&o.input!==null?o.input:{};R(e,"tool_use",{command:(l.command||"").slice(0,120),filePath:(l.file_path||l.path||"").slice(0,200),name:a.name||"unknown",tool:a.name||"unknown"},i)}}}async function T(){if(n(B))return;const e=n(S).filter(s=>!s.summarized);if(e.length===0)return;const t=new ue;for(const s of e){const r=s.projectName||"Unknown";t.has(r)||t.set(r,[]);const a=t.get(r);a&&a.push(s)}const i=Array.from(t.entries()).filter(([,s])=>s.length>=be);if(i.length!==0){_(B,!0);try{const s=await Promise.allSettled(i.slice(0,3).map(async([r,a])=>{const o=await st(a,r);return{projectEvents:a,projectName:r,result:o}}));for(const r of s){if(r.status!=="fulfilled"||!r.value.result.text)continue;const{projectEvents:a,projectName:o,result:l}=r.value;l.error?.includes("No AI provider")&&_(ve,!1);const x={eventIds:a.map(k=>k.id),id:`sum-${++fe}`,projectName:o,text:l.text,timestamp:new Date().toISOString()};_(te,[...n(te),x].slice(-ct),!0);const W=new Set(a.map(k=>k.id));_(S,n(S).map(k=>W.has(k.id)?{...k,summarized:!0}:k),!0)}}catch(s){console.warn("[ActivityStore] Summarization failed:",s)}finally{_(B,!1)}}}var wt=A('<span class="summarizing svelte-tc58m">Summarizing...</span>'),St=A(`<p class="empty svelte-tc58m">No recent activity. Summaries will appear here when Claude Code sessions are active on this
|
|
9
|
+
machine.</p>`),$t=A('<div class="summary-card svelte-tc58m"><time class="svelte-tc58m"> </time> <p class="svelte-tc58m"> </p> <span class="event-count svelte-tc58m"> </span></div>'),It=A('<div class="project-group svelte-tc58m"><h3 class="project-name svelte-tc58m"> </h3> <!></div>'),xt=A('<div class="pending svelte-tc58m"><span> </span></div>'),kt=A('<span class="tool svelte-tc58m"> </span>'),Et=A('<code class="file-path svelte-tc58m"> </code>'),Pt=A('<code class="svelte-tc58m"> </code>'),Nt=A('<div><time class="svelte-tc58m"> </time> <span class="project svelte-tc58m"> </span> <span class="type svelte-tc58m"> </span> <!> <!> <!></div>'),jt=A('<div class="raw-events svelte-tc58m"></div>'),bt=A('<div class="feed svelte-tc58m"><header class="svelte-tc58m"><h2 class="svelte-tc58m">Activity</h2> <span> </span> <!></header> <!> <div class="entries svelte-tc58m"><!> <!> <!></div> <!> <!></div>');function Ot(e,t){Ee(t,!0);let i=O(!1);async function s(){const c=je();if(!c)throw new Error("No API key configured");const m=await fetch("/api/ws-ticket",{headers:{Authorization:`Bearer ${c}`},method:"POST"});if(!m.ok)throw new Error("Failed to get WS ticket");return(await m.json()).ticket}Pe(()=>{ut(s)}),Ge(()=>{vt()});const r=N(pt),a=N(ft),o=N(gt),l=N(_t),x=N(yt),W=N(()=>n(a).filter(c=>!c.summarized).length),k=N(()=>{const c=new Qe;for(const m of n(a))m.sessionId&&c.add(m.sessionId);return c.size}),Oe=N(()=>{const c=new ue;for(const m of[...n(r)].reverse()){const v=m.projectName||"Unknown";c.has(v)||c.set(v,{name:v,summaries:[]});const f=c.get(v);f&&f.summaries.push(m)}return Array.from(c.values())});var re=bt(),se=u(re),V=p(u(se),2);let pe;var ze=u(V,!0);d(V);var Le=p(V,2);{var Re=c=>{var m=wt();g(c,m)};P(Le,c=>{n(x)&&c(Re)})}d(se);var _e=p(se,2);{var Me=c=>{qe(c,{text:"AI summaries unavailable — configure a provider to enable",classes:"banner-warning"})};P(_e,c=>{n(l)||c(Me)})}var ne=p(_e,2),ge=u(ne);{var Te=c=>{var m=St();g(c,m)};P(ge,c=>{n(r).length===0&&n(a).length===0&&c(Te)})}var ye=p(ge,2);le(ye,17,()=>n(Oe),c=>c.name,(c,m)=>{var v=It(),f=u(v),z=u(f,!0);d(f);var J=p(f,2);le(J,17,()=>n(m).summaries,j=>j.id,(j,D)=>{var b=$t(),C=u(b),K=u(C,!0);d(C);var F=p(C,2),X=u(F,!0);d(F);var q=p(F,2),Z=u(q);d(q),d(b),E(ae=>{h(K,ae),h(X,n(D).text),h(Z,`${n(D).eventIds.length??""} events`)},[()=>we(n(D).timestamp)]),g(j,b)}),d(v),E(()=>h(z,n(m).name)),g(c,v)});var De=p(ye,2);{var Ce=c=>{var m=xt(),v=u(m),f=u(v);d(v),d(m),E(()=>h(f,`${n(W)??""} events pending summary...`)),g(c,m)};P(De,c=>{n(W)>0&&c(Ce)})}d(ne);var he=p(ne,2);Xe(he,{classes:"btn-ghost raw-toggle",onclick:()=>{_(i,!n(i))},children:(c,m)=>{He();var v=Be();E(()=>h(v,`${n(i)?"▾":"▸"} Raw events (${n(a).length??""})`)),g(c,v)},$$slots:{default:!0}});var Ke=p(he,2);{var Fe=c=>{var m=jt();le(m,21,()=>[...n(a)].reverse().slice(0,50),v=>v.id,(v,f)=>{var z=Nt();let J;var j=u(z),D=u(j,!0);d(j);var b=p(j,2),C=u(b,!0);d(b);var K=p(b,2),F=u(K,!0);d(K);var X=p(K,2);{var q=y=>{var $=kt(),U=u($,!0);d($),E(()=>h(U,n(f).data.tool)),g(y,$)};P(X,y=>{n(f).data.tool&&y(q)})}var Z=p(X,2);{var ae=y=>{var $=Et(),U=u($,!0);d($),E(ie=>h(U,ie),[()=>n(f).data.filePath.slice(0,80)]),g(y,$)};P(Z,y=>{n(f).data.filePath&&y(ae)})}var Ue=p(Z,2);{var Ye=y=>{var $=Pt(),U=u($,!0);d($),E(ie=>h(U,ie),[()=>n(f).data.command.slice(0,60)]),g(y,$)};P(Ue,y=>{n(f).data.command&&y(Ye)})}d(z),E(y=>{J=Ae(z,1,"raw-event svelte-tc58m",null,J,{summarized:n(f).summarized}),h(D,y),h(C,n(f).projectName||"Unknown"),h(F,n(f).type)},[()=>we(n(f).timestamp)]),g(v,z)}),d(m),g(c,m)};P(Ke,c=>{n(i)&&c(Fe)})}d(re),E(()=>{pe=Ae(V,1,"status svelte-tc58m",null,pe,{live:n(o)}),h(ze,n(o)?`● Watching ${n(k)} sessions`:"○ No active sessions")}),g(e,re),Ne()}var zt=A('<meta name="description" content="Real-time activity feed"/>'),Lt=A('<main class="main"><h1 class="page-title svelte-13r34ge">Activity Feed</h1> <!></main>');function Wt(e,t){Ee(t,!0);let i=O(!1);Pe(()=>{try{const o=localStorage.getItem("shooter_config");if(!o){ce("/config");return}const l=JSON.parse(o);if(!Ze(l)){localStorage.removeItem("shooter_config"),ce("/config");return}_(i,!0)}catch{localStorage.removeItem("shooter_config"),ce("/config")}});var s=Lt();Je("13r34ge",o=>{var l=zt();We(()=>{Ve.title="Activity Feed - Shooter"}),g(o,l)});var r=p(u(s),2);{var a=o=>{Ot(o,{})};P(r,o=>{n(i)&&o(a)})}d(s),g(e,s),Ne()}export{Wt as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{a as l,f as v,s as D}from"../chunks/DVl0sebP.js";import{t as R,c as d,d as f,r as i,g as e,W as Be,X as Ne,Y as Qe,q as Ke,f as E,b as t,Z as x,s as k,a0 as Oe,a1 as Se}from"../chunks/CJFjKwJ7.js";import{i as Q}from"../chunks/BfJ-f-Tu.js";import{e as we,c as $e,i as De,B as G,I as se,a as Le,s as Je}from"../chunks/CNH2HlKj.js";import{h as je}from"../chunks/CsgHjHGZ.js";import{s as ze,a as Z}from"../chunks/DDiOVAd8.js";import{p as Ee}from"../chunks/B7X-vhXI.js";import{i as Me}from"../chunks/gQJcRhou.js";import{I as ie}from"../chunks/CmczWE_d.js";import{P as Fe}from"../chunks/pRcLbE0d.js";var Ge=v('<p class="card-description"> </p>'),We=v('<div class="card-header"><h2 class="card-title"> </h2> <!></div>'),Ye=v('<div><!> <div class="card-content"><!></div></div>');function W(g,s){const _=Ee(s,"class",3,"");var o=Ye(),y=d(o);{var u=U=>{var T=We(),q=d(T),L=d(q,!0);i(q);var B=f(q,2);{var K=M=>{var J=Ge(),j=d(J,!0);i(J),R(()=>D(j,s.description)),l(M,J)};Q(B,M=>{s.description&&M(K)})}i(T),R(()=>D(L,s.title)),l(U,T)};Q(y,U=>{s.title&&U(u)})}var S=f(y,2),c=d(S);ze(c,()=>s.children),i(S),i(o),R(()=>Z(o,1,`card ${_()??""}`)),l(g,o)}function Y(g){return g instanceof Error?g.message:typeof g=="string"?g:String(g)}function Ze(){return be()!==null}async function He(){const g=be();if(!g)throw new Error("Scanner not available");return g()}function be(){if(typeof window>"u")return null;const g=window.ShooterBridge?.scanner;if(g&&typeof g.scan=="function")return()=>g.scan();const s=window.ShooterNativeBridge?.scanner;return s&&typeof s.scan=="function"?()=>s.scan():null}var Ve=v("<div><!></div>"),Xe=v("<div></div>");function et(g,s){var _=Xe();we(_,21,()=>s.steps,De,(o,y,u)=>{var S=Ve();let c;var U=d(S);$e(U,{get onclick(){return s.onhandleStepClick},get label(){return e(y).label},get icon(){return e(y).icon},stepIndex:u+1}),i(S),R(()=>c=Z(S,1,"step-container svelte-xw39st",null,c,{"active-step":s.currentStepIndex===u,"completed-step":s.currentStepIndex>u})),l(o,S)}),i(_),R(()=>Z(_,1,`container ${s.classes??""??""}`,"svelte-xw39st")),l(g,_)}var tt=v('<meta name="description" content="Configure notification system settings"/>'),rt=v(`<!> <!> <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
|
|
2
|
+
one.</p> <!> <p class="input-help svelte-1gp6n77">Optional — only needed for iOS/Android push notifications.</p>`,1),at=v("<!> Test Connection",1),nt=v(`<p class="qr-description svelte-1gp6n77">Scan the QR code shown on your server's settings page to auto-configure the
|
|
3
|
+
connection.</p> <!>`,1),ot=v('<p class="qr-server-url svelte-1gp6n77">Server: <code class="svelte-1gp6n77"> </code></p>'),st=v('<div class="qr-container svelte-1gp6n77"><img alt="QR code for mobile app pairing" class="qr-image svelte-1gp6n77"/></div> <p class="qr-hint svelte-1gp6n77">Scan this QR code with the Shooter iOS or Android app to connect.</p> <!>',1),it=v('<div class="qr-placeholder svelte-1gp6n77"><p class="qr-loading-text svelte-1gp6n77">Generating QR code...</p></div>'),ct=v('<p class="qr-error svelte-1gp6n77"> </p>'),lt=v(`<p class="qr-description svelte-1gp6n77">Generate a QR code containing your server URL and API key. Your mobile app can
|
|
4
|
+
scan it to auto-configure the connection.</p>`),dt=v("<!> <!>",1),vt=v('<div class="qr-section svelte-1gp6n77"><!></div>'),ut=v('<div class="provider-row svelte-1gp6n77"><!> <span class="provider-label svelte-1gp6n77"> </span> <span> </span></div>'),ft=v('<div class="active-provider svelte-1gp6n77">Active: <strong> </strong></div>'),pt=v('<div class="active-provider svelte-1gp6n77">Auto-detected from configured keys</div>'),gt=v('<p class="ai-help svelte-1gp6n77">Run <code class="svelte-1gp6n77">shooter setup</code> to configure AI providers for summaries.</p>'),mt=v('<div class="ai-providers svelte-1gp6n77"><!> <!></div>'),ht=v('<p class="danger-description svelte-1gp6n77">Clear all saved configuration data from this device.</p> <!>',1),_t=v('<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 svelte-1gp6n77"><h1 class="page-title svelte-1gp6n77">Settings</h1> <p class="page-description svelte-1gp6n77">Configure your API credentials and notification preferences</p></div> <div class="settings-grid svelte-1gp6n77"><section class="settings-section svelte-1gp6n77"><!> <!> <div class="button-group svelte-1gp6n77"><!> <!></div></section> <aside class="settings-sidebar svelte-1gp6n77"><!> <!> <!> <!></aside></div></div></main>');function Ut(g,s){Be(s,!0);let _=k(""),o=k(""),y=k(""),u=k(""),S=k(!1),c=k(""),U=k(!1),T=k(""),q=k(""),L=k(!1),B=k(""),K=k(!1),M=k(!1),J=!1,j=k(!1);async function ke(){if(!e(o).trim()){t(B,"Save an API key first to generate a QR code");return}t(L,!0),t(B,""),t(T,""),t(q,"");try{const r=await fetch("/api/qr-config",{headers:{Authorization:`Bearer ${e(o).trim()}`}});if(!r.ok){const n=await r.json();t(B,n.error||"Failed to generate QR code",!0);return}const a=await r.json();t(T,a.dataUrl,!0),t(q,a.serverUrl,!0)}catch(r){t(B,`Network error: ${Y(r)}`)}finally{t(L,!1)}}async function Ce(){t(j,!0),t(u,""),t(c,"");try{const r=await He();try{const a=JSON.parse(r);typeof a.serverUrl=="string"&&a.serverUrl&&t(_,a.serverUrl,!0),typeof a.apiKey=="string"&&a.apiKey&&t(o,a.apiKey,!0),await X();const n=e(c);n!=="error"&&n!=="warning"&&(t(u,"Configuration updated from QR code"),t(c,"success"))}catch{t(u,"Invalid QR code data"),t(c,"error")}}catch(r){const a=Y(r);a!=="cancelled"&&(t(u,`Scanner error: ${a}`),t(c,"error"))}finally{t(j,!1)}}function H(){return typeof window>"u"?null:window.ShooterBridge?window.ShooterBridge:window.ShooterNativeBridge?window.ShooterNativeBridge:null}function V(){return window.location.origin}function ce(){const r=H();if(r&&!J){t(U,!0);try{const a=JSON.parse(r.getConfig?.()??"{}");a.serverUrl&&t(_,a.serverUrl,!0),a.apiKey&&t(o,a.apiKey,!0);const n=r.getFcmToken?.();n&&t(y,n,!0),J=!0}catch{}}t(K,Ze(),!0)}Ne(()=>{{const r=window.location.hash.slice(1);if(r){const a=new URLSearchParams(r),n=a.get("key"),p=a.get("url");n&&(t(o,n,!0),p&&t(_,p,!0),X(),window.history.replaceState({},"",window.location.pathname))}if(!e(o))try{const a=localStorage.getItem("shooter_config");if(a){const n=JSON.parse(a);Me(n)?(n.apiKey&&t(o,n.apiKey,!0),n.deviceToken&&t(y,n.deviceToken,!0),n.serverUrl&&t(_,n.serverUrl,!0)):localStorage.removeItem("shooter_config")}}catch{}if(ce(),e(_)||t(_,V(),!0),t(M,!0),!e(K)){const a=setInterval(()=>{ce(),e(K)&&clearInterval(a)},200);setTimeout(()=>{clearInterval(a)},3e3)}}});async function X(){t(S,!0),t(u,""),t(c,"");try{const r=e(_).trim().replace(/\/+$/,"");localStorage.setItem("shooter_config",JSON.stringify({apiKey:e(o).trim(),deviceToken:e(y).trim(),lastUpdated:Date.now(),serverUrl:r||V()}));const a=H();a&&a.saveConfig?.(JSON.stringify({apiKey:e(o).trim(),serverUrl:r||V()})),(await fetch("/api/health")).ok?(t(u,"Configuration saved successfully"),t(c,"success")):(t(u,"Configuration saved but system health check failed"),t(c,"warning"))}catch(r){t(u,`Configuration failed: ${Y(r)}`),t(c,"error")}t(S,!1)}async function xe(){if(!e(o).trim()){t(u,"API key is required for testing"),t(c,"error");return}t(S,!0),t(u,""),t(c,"");try{const r={data:{source:"config-test",timestamp:Date.now()},message:`Configuration test at ${new Date().toLocaleTimeString()}`,title:"Configuration Test"};e(y).trim()&&(r.deviceToken=e(y).trim());const a=await fetch("/api/notify",{body:JSON.stringify(r),headers:{Authorization:`Bearer ${e(o)}`,"Content-Type":"application/json"},method:"POST"}),n=await a.json();a.ok?(t(u,"Test notification sent successfully"),t(c,"success")):(t(u,`Test failed: ${typeof n.error=="string"?n.error:"Unknown error"}`),t(c,"error"))}catch(r){t(u,`Network error: ${Y(r)}`),t(c,"error")}t(S,!1)}function Ie(){{localStorage.removeItem("shooter_config"),t(_,typeof window<"u"?window.location.origin:"",!0),t(o,""),t(y,""),t(u,"Configuration cleared"),t(c,"success");const r=H();r&&r.saveConfig?.(JSON.stringify({apiKey:"",serverUrl:""}))}}var ee=_t();je("1gp6n77",r=>{var a=tt();Ke(()=>{Oe.title="Settings - Shooter"}),l(r,a)});var le=d(ee),de=f(d(le),4),te=d(de),ve=d(te);W(ve,{title:"Server Configuration",description:"Configure server connection and credentials",children:(r,a)=>{var n=rt(),p=E(n);se(p,{name:"serverUrl",label:"Server URL",dataType:"text",placeholder:"https://shooter.breezehq.dev",infoMessage:"Base URL of your Shooter server. Apps will reload with this URL on next launch.",get value(){return e(_)},set value(C){t(_,C,!0)}});var I=f(p,2);se(I,{name:"apiKey",label:"API Key",dataType:"password",placeholder:"Enter your API key",infoMessage:"Required for sending notifications",get value(){return e(o)},set value(C){t(o,C,!0)}});var O=f(I,4);{let C=x(()=>e(U)?"Waiting for token...":"64-character hex string"),P=x(()=>e(U)&&e(y)?"Auto-detected from app":"Device token from app registration");se(O,{name:"deviceToken",label:"Device Token",dataType:"text",get placeholder(){return e(C)},get infoMessage(){return e(P)},classes:"input-mono",get value(){return e(y)},set value(A){t(y,A,!0)}})}Se(2),l(r,n)},$$slots:{default:!0}});var ue=f(ve,2);{var Pe=r=>{const a=x(()=>e(c)==="success"?"check-circle":e(c)==="error"?"x-circle":"alert-triangle");{const n=I=>{ie(I,{get name(){return e(a)},size:16})};let p=x(()=>e(c)||"info");Le(r,{get text(){return e(u)},get classes(){return`banner-${e(p)??""}`},icon:n,$$slots:{icon:!0}})}};Q(ue,r=>{e(u)&&r(Pe)})}var fe=f(ue,2),pe=d(fe);{let r=x(()=>e(S)||!e(o).trim());G(pe,{classes:"btn-secondary",onclick:xe,get disabled(){return e(r)},children:(a,n)=>{var p=at(),I=E(p);{var O=C=>{ie(C,{name:"play",size:14})};Q(I,C=>{e(S)||C(O)})}Se(),l(a,p)},$$slots:{default:!0}})}var Re=f(pe,2);{let r=x(()=>e(S)||!e(o).trim());G(Re,{classes:"btn-primary",onclick:X,get disabled(){return e(r)},get showLoader(){return e(S)},text:"Save Changes"})}i(fe),i(te);var ge=f(te,2),me=d(ge);W(me,{title:"Setup Guide",children:(r,a)=>{{let n=x(()=>e(o).trim()&&e(y).trim()?2:e(o).trim()?1:0);et(r,{steps:[{label:"Get API Key"},{label:"Find Device Token"},{label:"Test Connection"}],get currentStepIndex(){return e(n)},classes:"setup-stepper"})}},$$slots:{default:!0}});var he=f(me,2);{let r=x(()=>e(K)?"Scan a QR code to connect":"Scan to connect your mobile app");W(he,{title:"Mobile App Setup",get description(){return e(r)},children:(a,n)=>{var p=vt(),I=d(p);{var O=P=>{var A=nt(),m=f(E(A),2);{let w=x(()=>e(j)?"Scanning...":"Scan QR Code");G(m,{classes:"btn-secondary btn-sm",onclick:Ce,get disabled(){return e(j)},get text(){return e(w)}})}l(P,A)},C=P=>{var A=dt(),m=E(A);{var w=h=>{var b=st(),$=E(b),ae=d($);i($);var Te=f($,4);{var Ae=ne=>{var oe=ot(),ye=f(d(oe)),qe=d(ye,!0);i(ye),i(oe),R(()=>D(qe,e(q))),l(ne,oe)};Q(Te,ne=>{e(q)&&ne(Ae)})}R(()=>Je(ae,"src",e(T))),l(h,b)},N=h=>{var b=it();l(h,b)},z=h=>{var b=ct(),$=d(b,!0);i(b),R(()=>D($,e(B))),l(h,b)},F=h=>{var b=lt();l(h,b)};Q(m,h=>{e(T)?h(w):e(L)?h(N,1):e(B)?h(z,2):h(F,-1)})}var re=f(m,2);{let h=x(()=>e(L)||!e(o).trim()),b=x(()=>e(T)?"Regenerate QR Code":"Generate QR Code");G(re,{classes:"btn-secondary btn-sm",onclick:ke,get disabled(){return e(h)},get text(){return e(b)}})}l(P,A)};Q(I,P=>{e(K)?P(O):P(C,-1)})}i(p),l(a,p)},$$slots:{default:!0}})}var _e=f(he,2);W(_e,{title:"AI Providers",description:"NeuroLink-powered summaries and AI features",children:(r,a)=>{var n=mt(),p=d(n);we(p,17,()=>Fe,m=>m.id,(m,w)=>{var N=ut(),z=d(N);{let ae=x(()=>s.data.aiProviders[e(w).id]?"check-circle":"x-circle");ie(z,{get name(){return e(ae)},size:14})}var F=f(z,2),re=d(F,!0);i(F);var h=f(F,2);let b;var $=d(h,!0);i(h),i(N),R(()=>{D(re,e(w).label),b=Z(h,1,"provider-status svelte-1gp6n77",null,b,{configured:s.data.aiProviders[e(w).id]}),D($,s.data.aiProviders[e(w).id]?"configured":"not configured")}),l(m,N)});var I=f(p,2);{var O=m=>{var w=ft(),N=f(d(w)),z=d(N,!0);i(N),i(w),R(()=>D(z,s.data.activeProvider)),l(m,w)},C=m=>{var w=pt();l(m,w)},P=x(()=>Object.values(s.data.aiProviders).some(Boolean)),A=m=>{var w=gt();l(m,w)};Q(I,m=>{s.data.activeProvider?m(O):e(P)?m(C,1):m(A,-1)})}i(n),l(r,n)},$$slots:{default:!0}});var Ue=f(_e,2);W(Ue,{title:"Danger Zone",children:(r,a)=>{var n=ht(),p=f(E(n),2);G(p,{classes:"btn-danger btn-sm",onclick:Ie,text:"Clear Configuration"}),l(r,n)},$$slots:{default:!0}}),i(ge),i(de),i(le),i(ee),l(g,ee),Qe()}export{Ut as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as H,e as V,a as E,f as P,s as W}from"../chunks/DVl0sebP.js";import{W as X,s as n,A as Z,X as q,Y as z,g as t,b as s,Z as _,d as m,c as h,r as c,t as J}from"../chunks/CJFjKwJ7.js";import{i as K}from"../chunks/BfJ-f-Tu.js";import{e as S,I as Q,B as ee,i as te,P as I}from"../chunks/CNH2HlKj.js";import{a as ae}from"../chunks/DDiOVAd8.js";import{i as re}from"../chunks/BRkqKgVG.js";import{P as O}from"../chunks/pRcLbE0d.js";var se=P('<div class="provider-bar svelte-sjabew"></div>'),ie=P("<div> </div>"),oe=P('<div class="page svelte-sjabew"><header class="svelte-sjabew"><h1 class="svelte-sjabew">NeuroLink</h1> <span class="version svelte-sjabew">new NeuroLink()</span> <!></header> <!> <div class="log svelte-sjabew" id="log"></div> <div class="input-bar svelte-sjabew"><!> <!></div></div>');function fe(M,p){X(p,!0);const N="https://unpkg.com/@juspay/neurolink/dist/browser/neurolink.min.js";let u=n(null),g=n(null),b=n(Z([])),d=n(""),v=n(!1),f=n(!1),o=n("litellm");function i(e,a="info"){s(b,[...t(b),{text:e,type:a}],!0)}function R(){const e=globalThis.process;if(!e?.env)return;const a=e.env;p.data.litellmBaseUrl&&(a.LITELLM_BASE_URL=p.data.litellmBaseUrl),p.data.litellmModel&&(a.LITELLM_MODEL=p.data.litellmModel);const r=window.__aiProviders;r?.["google-ai"]&&(a.GOOGLE_AI_API_KEY="proxy-via-server"),r?.anthropic&&(a.ANTHROPIC_API_KEY="proxy-via-server"),r?.openai&&(a.OPENAI_API_KEY="proxy-via-server"),r?.mistral&&(a.MISTRAL_API_KEY="proxy-via-server")}q(async()=>{$(),re(),R(),i("Loading NeuroLink from CDN..."),i(N,"dim");try{s(u,await import(N),!0),i(`Loaded! ${Object.keys(t(u)??{}).length} exports`,"pass"),s(g,new(t(u)).NeuroLink({provider:t(o)}),!0),i(`NeuroLink ready · provider: ${t(o)}`,"pass"),s(f,!0)}catch(e){i(`Failed to load: ${e instanceof Error?e.message:String(e)}`,"fail")}});function D(e){!t(u)||e===t(o)||(s(o,e,!0),s(g,new(t(u)).NeuroLink({provider:e}),!0),i(`Switched to provider: ${e}`,"dim"))}function $(){typeof globalThis.process>"u"&&(globalThis.process={cwd:()=>"/",env:{},platform:"browser",version:"v24.0.0"}),typeof globalThis.global>"u"&&(globalThis.global=globalThis)}async function j(){if(!t(d).trim()||!t(g)||t(v))return;const e=t(d).trim();s(d,""),s(v,!0),i(`> ${e}`,"user");const a=O.find(r=>r.id===t(o));if(!a){s(v,!1);return}try{const r=await t(g).generate({input:{text:e},model:a.model,provider:a.id}),l=typeof r.content=="string"?r.content:"(empty response)",x=r.usage;i(l,"ai"),i(`${a.id}/${a.model} | ${x?.total??"?"} tokens`,"dim")}catch(r){i(`Error: ${r instanceof Error?r.message:String(r)}`,"fail")}s(v,!1)}function B(e){e.key==="Enter"&&!e.shiftKey&&(e.preventDefault(),j())}var y=oe(),w=h(y),U=m(h(w),4);{var Y=e=>{I(e,{text:"Connected",classes:"pill-connected"})},C=e=>{I(e,{text:"Loading...",classes:"pill-loading"})};K(U,e=>{t(f)?e(Y):e(C,-1)})}c(w);var A=m(w,2);{var F=e=>{var a=se();S(a,21,()=>O,r=>r.id,(r,l)=>{{let x=_(()=>t(o)===t(l).id?"prov-pill--active":"");I(r,{get text(){return t(l).label},get classes(){return`prov-pill ${t(x)??""}`},onclick:()=>{D(t(l).id)}})}}),c(a),E(e,a)};K(A,e=>{t(f)&&e(F)})}var L=m(A,2);S(L,21,()=>t(b),te,(e,a)=>{var r=ie(),l=h(r,!0);c(r),J(()=>{ae(r,1,`log-entry ${t(a).type??""}`,"svelte-sjabew"),W(l,t(a).text)}),E(e,r)}),c(L);var k=m(L,2),T=h(k);{let e=_(()=>t(f)?`Ask anything... [${t(o)}]`:"Loading SDK...");Q(T,{name:"prompt",get placeholder(){return t(e)},classes:"input-prompt",get value(){return t(d)},set value(a){s(d,a,!0)}})}var G=m(T,2);{let e=_(()=>!t(f)||t(v)||!t(d).trim()),a=_(()=>t(v)?"...":"Send");ee(G,{classes:"btn-primary",onclick:j,get disabled(){return t(e)},get text(){return t(a)}})}c(k),c(y),V("keydown",k,B),E(M,y),z()}H(["keydown"]);export{fe as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as u,f as p,s as b}from"../chunks/DVl0sebP.js";import{W as We,s as w,A as Xe,X as Ye,_ as Qe,Y as et,$ as tt,g as e,b as c,a0 as at,c as i,d as l,r as o,Z as f,f as L,a1 as W,t as X}from"../chunks/CJFjKwJ7.js";import{i as j}from"../chunks/BfJ-f-Tu.js";import{a as st,e as de,i as rt,B as N,P as R,s as ot}from"../chunks/CNH2HlKj.js";import{h as it}from"../chunks/CsgHjHGZ.js";import{g as nt}from"../chunks/EhLZwqfu.js";import{p as ct}from"../chunks/y_g-KC7l.js";import{g as lt,s as dt,S as ve,c as vt}from"../chunks/CtrCjGZT.js";import{i as ut}from"../chunks/gQJcRhou.js";import{E as ue}from"../chunks/CaiJSUi3.js";import{I as ft}from"../chunks/CmczWE_d.js";import"../chunks/DDiOVAd8.js";import{f as pt}from"../chunks/BLszSzTT.js";var mt=p('<meta name="description" content="Project sessions sorted by latest update"/>'),ht=p('<div class="loading-container"><!> <!></div>'),_t=p('<div class="project-back-row svelte-urn6fi"><a href="/" class="back-link"><span class="back-arrow">←</span> Back to Projects</a></div> <!>',1),gt=p("<!> Refresh",1),yt=p('<div class="session-card-subtitle"> </div>'),bt=p('<span class="connect-dot svelte-urn6fi"></span> Connect',1),jt=p('<a class="session-card"><div class="session-card-header"><div><h3 class="session-card-title"> </h3> <!></div> <div class="session-card-actions svelte-urn6fi"><!> <!></div></div> <div class="session-stats"><span><strong> </strong> messages</span> <!> <!></div> <div class="session-meta-row svelte-urn6fi"><span class="session-modified svelte-urn6fi"> </span> <span class="session-duration svelte-urn6fi"> </span></div></a>'),$t=p('<div style="text-align: center; padding: 1rem;"><!></div>'),Pt=p('<div class="sessions-container svelte-urn6fi"></div> <!>',1),xt=p('<div class="chat-session-header"><div class="chat-session-header-top svelte-urn6fi"><a href="/" class="back-link">← Back to Projects</a> <!></div> <h1 class="chat-session-title"> </h1> <div class="chat-session-meta"><span class="session-card-subtitle"> </span> <span> </span></div></div> <!>',1),St=p('<main class="main"><!> <!></main>');function Ot(fe,pe){We(pe,!0);const me=15e3,D=20;let n=w(null),g=w(!0),m=w(null),E=w(null),K=null,k=w(D),Y=w(Xe([])),$=w(null);const P=f(()=>ct.url.searchParams.get("id")||""),he=f(()=>e(n)?e(n).sessions.slice(0,e(k)):[]),_e=f(()=>e(n)?e(k)<e(n).sessions.length:!1),ge=f(()=>new Set(e(Y).map(t=>t.sessionId).filter(t=>typeof t=="string")));Ye(()=>{ye();const t=lt(`shooter_project_${e(P)}`);t&&(c(n,t,!0),c(g,!1)),setTimeout(()=>{M(),O()},50),K=setInterval(()=>{e(m)?.apiKey&&e(P)&&(M(),O())},me)}),Qe(()=>{K&&(clearInterval(K),K=null)});function ye(){try{const t=localStorage.getItem("shooter_config");if(t){const a=JSON.parse(t);ut(a)?c(m,a,!0):(localStorage.removeItem("shooter_config"),c(m,null))}}catch{}}async function M(t=!1){if(!e(m)?.apiKey||!e(P)){c(g,!1);return}e(n)||c(g,!0);try{const d=await fetch(t?"/api/sessions?refresh=true":"/api/sessions",{headers:{Authorization:`Bearer ${e(m).apiKey}`}});if(!d.ok){c(E,`Failed to load project (HTTP ${d.status})`),c(g,!1);return}c(E,null);const h=(await d.json()).projects.find(C=>C.id===e(P))||null;c(n,h,!0),h&&dt(`shooter_project_${e(P)}`,h)}catch(a){console.error("Failed to fetch project:",a)}finally{c(g,!1)}}async function O(){if(e(m)?.apiKey)try{const t=await fetch("/api/sessions/detect",{headers:{Authorization:`Bearer ${e(m).apiKey}`}});if(t.ok){const a=await t.json();c(Y,a.processes,!0)}}catch{}}async function Q(t,a,d){if(t.preventDefault(),t.stopPropagation(),!(!e(m)?.apiKey||!e(n)||e($))){c($,a,!0);try{const v=await fetch("/api/sessions/connect",{body:JSON.stringify({command:d,cwd:e(n).fullPath,sessionId:a}),headers:{Authorization:`Bearer ${e(m).apiKey}`,"Content-Type":"application/json"},method:"POST"});if(v.ok){const h=await v.json();nt(`/terminals/${h.terminalId}`)}}catch(v){console.error("Failed to connect to session:",v)}finally{c($,null)}}}async function be(){c(g,!0),c(n,null),c(k,D),vt(`shooter_project_${e(P)}`),await M(!0),await O()}function je(){c(k,e(k)+D)}function ee(t){if(!t)return"";const a=new Date(t);return isNaN(a.getTime())?"":a.toLocaleDateString("en-US",{day:"numeric",hour:"2-digit",minute:"2-digit",month:"short"})}function $e(t,a){return t.length<=a?t:`${t.slice(0,a).trimEnd()}...`}var z=St();it("urn6fi",t=>{var a=mt();tt(()=>{at.title=`${(e(n)?.name||"Project")??""} - Shooter`}),u(t,a)});var te=i(z);{var Pe=t=>{st(t,{get text(){return e(E)},classes:"banner-error"})};j(te,t=>{e(E)&&t(Pe)})}var xe=l(te,2);{var Se=t=>{var a=ht(),d=i(a);ve(d,{classes:"shimmer-header"});var v=l(d,2);de(v,16,()=>Array(4),rt,(h,C)=>{ve(h,{classes:"shimmer-card"})}),o(a),u(t,a)},we=t=>{var a=_t(),d=l(L(a),2);ue(d,{icon:"alert-triangle",title:"Project Not Found",description:"The requested project could not be found."}),u(t,a)},ke=t=>{var a=xt(),d=L(a),v=i(d),h=l(i(v),2);N(h,{classes:"btn-secondary",onclick:be,get disabled(){return e(g)},children:(y,J)=>{var I=gt(),Z=L(I);ft(Z,{name:"refresh",size:14}),W(),u(y,I)},$$slots:{default:!0}}),o(v);var C=l(v,2),Ce=i(C,!0);o(C);var ae=l(C,2),F=i(ae),Ie=i(F,!0);o(F);var se=l(F,2),Te=i(se);o(se),o(ae),o(d);var Be=l(d,2);{var Ae=y=>{ue(y,{icon:"bell",title:"No sessions yet",description:"Sessions for this project will appear here"})},Ee=y=>{var J=Pt(),I=L(J);de(I,21,()=>e(he),x=>x.id,(x,r)=>{var T=jt(),B=i(T),q=i(B),G=i(q),Le=i(G,!0);o(G);var Ne=l(G,2);{var Re=s=>{var _=yt(),A=i(_,!0);o(_),X(S=>b(A,S),[()=>$e(e(r).summary,80)]),u(s,_)};j(Ne,s=>{e(r).summary&&s(Re)})}o(q);var re=l(q,2),oe=i(re);{let s=f(()=>pt(e(r).modified));R(oe,{get text(){return e(s)},classes:"pill-session-time"})}var De=l(oe,2);{var Me=s=>{{let _=f(()=>e($)===e(r).id),A=f(()=>e($)===e(r).id);N(s,{classes:"btn-connect btn-xs",onclick:S=>{Q(S,e(r).id,e(r).source==="opencode"?"opencode":"claude")},get disabled(){return e(_)},get showLoader(){return e(A)},children:(S,wt)=>{var Ve=bt();W(),u(S,Ve)},$$slots:{default:!0}})}},Oe=f(()=>e(ge).has(e(r).id)),ze=s=>{{let _=f(()=>e($)===e(r).id),A=f(()=>e($)===e(r).id);N(s,{classes:"btn-resume btn-xs",onclick:S=>{Q(S,e(r).id,e(r).source==="opencode"?"opencode":"claude")},get disabled(){return e(_)},get showLoader(){return e(A)},text:"Resume"})}};j(De,s=>{e(Oe)?s(Me):s(ze,-1)})}o(re),o(B);var H=l(B,2),U=i(H),ie=i(U),Fe=i(ie,!0);o(ie),W(),o(U);var ne=l(U,2);{var Je=s=>{R(s,{get text(){return`🌿 ${e(r).gitBranch??""}`},classes:"pill-git-branch"})};j(ne,s=>{e(r).gitBranch&&s(Je)})}var Ze=l(ne,2);{var qe=s=>{R(s,{text:"OpenCode",classes:"pill-source-opencode"})},Ge=s=>{R(s,{text:"Claude Code",classes:"pill-source-claude"})};j(Ze,s=>{e(r).source==="opencode"?s(qe):s(Ge,-1)})}o(H);var ce=l(H,2),V=i(ce),He=i(V);o(V);var le=l(V,2),Ue=i(le);o(le),o(ce),o(T),X((s,_)=>{ot(T,"href",`/session/${e(r).id??""}?project=${e(P)??""}`),b(Le,e(r).title),b(Fe,e(r).messageCount),b(He,`Last updated ${s??""}`),b(Ue,`Created ${_??""}`)},[()=>ee(e(r).modified),()=>ee(e(r).created)]),u(x,T)}),o(I);var Z=l(I,2);{var Ke=x=>{var r=$t(),T=i(r);{let B=f(()=>`Load More (${e(n).sessions.length-e(k)} remaining)`);N(T,{classes:"btn-secondary",onclick:je,get text(){return e(B)}})}o(r),u(x,r)};j(Z,x=>{e(_e)&&x(Ke)})}u(y,J)};j(Be,y=>{e(n).sessions.length===0?y(Ae):y(Ee,-1)})}X(()=>{b(Ce,e(n).name),b(Ie,e(n).fullPath),b(Te,`${e(n).sessionCount??""} sessions`)}),u(t,a)};j(xe,t=>{e(g)&&!e(n)?t(Se):e(n)?t(ke,-1):t(we,1)})}o(z),u(fe,z),et()}export{Ot as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{d as ge,a as w,f as y,s as L,
|
|
1
|
+
import{d as ge,a as w,f as y,s as L,e as we}from"../chunks/DVl0sebP.js";import{W as be,s as b,A as ye,X as _e,Y as Se,$ as $e,b as a,g as e,a0 as ke,c as h,r as v,Z as J,d as _,f as H,t as q}from"../chunks/CJFjKwJ7.js";import{i as F}from"../chunks/BfJ-f-Tu.js";import{h as Ie}from"../chunks/CsgHjHGZ.js";import{s as Q}from"../chunks/CNH2HlKj.js";import{p as G}from"../chunks/y_g-KC7l.js";import{g as je,s as ee,S as W}from"../chunks/CtrCjGZT.js";import"../chunks/DDiOVAd8.js";import{C as Ce}from"../chunks/CVtJ6yRM.js";var Oe=y('<meta name="description" content="Session conversation view" class="svelte-1a2wdfb"/>'),Me=y('<div class="loading-container svelte-1a2wdfb"><!> <div class="chat-container svelte-1a2wdfb"><!> <!> <!> <!></div></div>'),Ne=y('<div class="session-back-row svelte-1a2wdfb"><a class="back-link svelte-1a2wdfb">← Back</a></div> <p class="error-text svelte-1a2wdfb"> </p>',1),Ae=y('<span class="resume-status svelte-1a2wdfb">Connecting...</span>'),Pe=y('<span class="resume-status svelte-1a2wdfb">Resuming session...</span>'),Te=y('<span class="connection-dot connected svelte-1a2wdfb"></span>'),We=y('<span class="connection-dot reconnecting svelte-1a2wdfb"></span>'),Re=y('<div class="load-earlier-row svelte-1a2wdfb"><button class="load-earlier-btn svelte-1a2wdfb"> </button></div>'),De=y('<div class="session-header svelte-1a2wdfb"><div class="session-header-row svelte-1a2wdfb"><a class="back-link svelte-1a2wdfb">← Back</a> <!></div> <h1 class="session-title svelte-1a2wdfb"> </h1></div> <div class="session-chat-container svelte-1a2wdfb"><!> <!></div>',1),Be=y('<main class="main session-page-main svelte-1a2wdfb"><!></main>');function Ge(te,se){be(se,!0);let p=b(null),o=b(ye([])),I=b(!0),N=b(null),R=b(!1),A=b(!1),P=b(200),j=b(null),k=b("idle"),c=b("idle"),S=null,$=null,C=null,O=null,u=!1;const D=J(()=>G.params.id),M=J(()=>G.url.searchParams.get("project")||""),ne=J(()=>e(c)==="connecting"||e(c)==="resuming");function T(){try{const t=localStorage.getItem("shooter_config");return t?JSON.parse(t):null}catch{return null}}async function V(){const t=T();if(!t)return null;try{const s=await fetch("/api/ws-ticket",{headers:{Authorization:`Bearer ${t.apiKey}`},method:"POST"});return s.ok?(await s.json()).ticket:null}catch{return null}}async function z(t,s){if(u||C&&(C.readyState===WebSocket.OPEN||C.readyState===WebSocket.CONNECTING))return;const n=await V();if(!n||u)return;a(k,"connecting");const i=window.location.protocol==="https:"?"wss:":"ws:",r=new WebSocket(`${i}//${window.location.host}${t}?ticket=${n}`);r.onopen=()=>{if(u){r.close();return}a(k,"connected"),r.send(JSON.stringify({sessionId:s,type:"subscribe"}))},r.onmessage=d=>{if(!u)try{const f=JSON.parse(d.data);ae(f)}catch{}},r.onclose=()=>{u||(a(k,"disconnected"),C=null,e(j)&&(O&&clearTimeout(O),O=setTimeout(()=>{O=null,!u&&e(j)&&z(`/ws/session/${e(j)}`,e(j))},2e3)))},r.onerror=()=>{u||a(k,"disconnected")},C=r}async function X(t){if(u)return;const s=await V();if(!s||u)return;const n=window.location.protocol==="https:"?"wss:":"ws:",i=new WebSocket(`${n}//${window.location.host}${t}?ticket=${s}`);i.onopen=()=>{if(u){i.close();return}$=i,e(c)==="ready"&&S&&(i.send(JSON.stringify({data:`${S}
|
|
2
2
|
`,type:"input"})),S=null)},i.onclose=()=>{$===i&&($=null)}}function ae(t){if(t.type==="history"){const s=t.messages||[];a(o,s.map(n=>({id:n.id,parts:n.content,role:n.role,timestamp:n.timestamp})),!0),a(R,!1),e(c)==="resuming"&&(a(c,"ready"),S&&$?.readyState===WebSocket.OPEN&&($.send(JSON.stringify({data:`${S}
|
|
3
|
-
`,type:"input"})),S=null))}else if(t.type==="message")a(o,[...e(o),{id:`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:t.content||[],role:t.role||"assistant",timestamp:t.timestamp||new Date().toISOString()}],!0);else if(t.type==="tool-use"){const s={id:t.id||`tool-${Date.now()}`,input:t.input||{},toolName:t.name,type:"tool_use"},n=e(o).length>0?e(o)[e(o).length-1]:null;n?.role==="assistant"?a(o,[...e(o).slice(0,-1),{...n,parts:[...n.parts,s]}],!0):a(o,[...e(o),{id:`tool-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[s],role:"assistant",timestamp:new Date().toISOString()}],!0)}else if(t.type==="tool-result"){const s={isError:t.isError||!1,output:t.output||"",toolUseId:t.id,type:"tool_result"},n=e(o).length>0?e(o)[e(o).length-1]:null;n?.role==="system"?a(o,[...e(o).slice(0,-1),{...n,parts:[...n.parts,s]}],!0):a(o,[...e(o),{id:`result-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[s],role:"system",timestamp:new Date().toISOString()}],!0)}else if(t.type==="thinking"){const s={content:t.text||"",type:"thinking"},n=e(o).length>0?e(o)[e(o).length-1]:null;n?.role==="assistant"?a(o,[...e(o).slice(0,-1),{...n,parts:[...n.parts,s]}],!0):a(o,[...e(o),{id:`think-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[s],role:"assistant",timestamp:new Date().toISOString()}],!0)}else t.type==="session-end"&&a(c,"idle")}async function oe(){if(!e(p)||u){a(c,"idle");return}const t=T();if(!t){a(c,"idle");return}a(c,"connecting");try{const s=e(p).source==="opencode"?"opencode":"claude",n=await fetch("/api/sessions/connect",{body:JSON.stringify({command:s,cwd:e(p).projectPath,sessionId:e(
|
|
4
|
-
`,type:"input"}));return}if(e(c)==="connecting"||e(c)==="resuming"){S=t;return}S=t,oe()}}async function re(){e(o).length===0&&a(I,!0);try{const t=T();if(!t){a(N,"No configuration found. Please configure settings first."),a(I,!1);return}const s=e(
|
|
3
|
+
`,type:"input"})),S=null))}else if(t.type==="message")a(o,[...e(o),{id:`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:t.content||[],role:t.role||"assistant",timestamp:t.timestamp||new Date().toISOString()}],!0);else if(t.type==="tool-use"){const s={id:t.id||`tool-${Date.now()}`,input:t.input||{},toolName:t.name,type:"tool_use"},n=e(o).length>0?e(o)[e(o).length-1]:null;n?.role==="assistant"?a(o,[...e(o).slice(0,-1),{...n,parts:[...n.parts,s]}],!0):a(o,[...e(o),{id:`tool-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[s],role:"assistant",timestamp:new Date().toISOString()}],!0)}else if(t.type==="tool-result"){const s={isError:t.isError||!1,output:t.output||"",toolUseId:t.id,type:"tool_result"},n=e(o).length>0?e(o)[e(o).length-1]:null;n?.role==="system"?a(o,[...e(o).slice(0,-1),{...n,parts:[...n.parts,s]}],!0):a(o,[...e(o),{id:`result-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[s],role:"system",timestamp:new Date().toISOString()}],!0)}else if(t.type==="thinking"){const s={content:t.text||"",type:"thinking"},n=e(o).length>0?e(o)[e(o).length-1]:null;n?.role==="assistant"?a(o,[...e(o).slice(0,-1),{...n,parts:[...n.parts,s]}],!0):a(o,[...e(o),{id:`think-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[s],role:"assistant",timestamp:new Date().toISOString()}],!0)}else t.type==="session-end"&&a(c,"idle")}async function oe(){if(!e(p)||u){a(c,"idle");return}const t=T();if(!t){a(c,"idle");return}a(c,"connecting");try{const s=e(p).source==="opencode"?"opencode":"claude",n=await fetch("/api/sessions/connect",{body:JSON.stringify({command:s,cwd:e(p).projectPath,sessionId:e(D)}),headers:{Authorization:`Bearer ${t.apiKey}`,"Content-Type":"application/json"},method:"POST"});if(!n.ok||u){a(c,"idle");return}const i=await n.json();a(j,i.terminalId,!0),a(c,"resuming"),z(i.sessionWs,i.terminalId),X(i.ws)}catch{a(c,"idle")}}function ie(t){if(t.trim()){if(e(c)==="ready"&&$?.readyState===WebSocket.OPEN){$.send(JSON.stringify({data:`${t}
|
|
4
|
+
`,type:"input"}));return}if(e(c)==="connecting"||e(c)==="resuming"){S=t;return}S=t,oe()}}async function re(){e(o).length===0&&a(I,!0);try{const t=T();if(!t){a(N,"No configuration found. Please configure settings first."),a(I,!1);return}const s=e(D)||"",n=e(M)||"",i=n?`id=${encodeURIComponent(s)}&project=${encodeURIComponent(n)}&limit=${e(P)}`:`id=${encodeURIComponent(s)}&limit=${e(P)}`;let r=await fetch(`/api/sessions?${i}`,{headers:{Authorization:`Bearer ${t.apiKey}`}});if(r.status===404&&!n){const g=await fetch("/api/sessions",{headers:{Authorization:`Bearer ${t.apiKey}`}});if(g.ok){const x=await g.json();for(const B of x.projects||[])if((B.sessions||[]).find(U=>U.id===s)){r=await fetch(`/api/sessions?id=${encodeURIComponent(s)}&project=${encodeURIComponent(B.id)}`,{headers:{Authorization:`Bearer ${t.apiKey}`}});break}}}if(!r.ok){a(N,"Session not found"),a(I,!1);return}const d=await r.json();a(p,d.session,!0);const f=Array.isArray(d.messages)?d.messages:[];a(o,f,!0),a(R,f.length>=e(P)),ee(`shooter_session_${s}`,{messages:f,session:d.session})}catch{a(N,"Failed to load session")}a(I,!1)}async function ce(){if(e(A))return;const t=T();if(t){a(A,!0);try{const s=e(P)+200,n=e(D)||"",i=e(M)||"",r=[`id=${encodeURIComponent(n)}`,`limit=${s}`];i&&r.push(`project=${encodeURIComponent(i)}`);const d=await fetch(`/api/sessions?${r.join("&")}`,{headers:{Authorization:`Bearer ${t.apiKey}`}});if(!d.ok)return;const f=await d.json(),g=Array.isArray(f.messages)?f.messages:[];a(o,g,!0),a(P,s),a(R,g.length>=s),ee(`shooter_session_${n}`,{messages:g,session:f.session})}catch{}finally{a(A,!1)}}}_e(()=>{const t=je(`shooter_session_${G.params.id}`);return t&&(a(p,t.session,!0),a(o,Array.isArray(t.messages)?t.messages:[],!0),a(I,!1)),re().then(async()=>{if(!e(p)||u)return;const s=T();if(s)try{const n=e(p).source==="opencode"?"opencode":"claude",i=await fetch("/api/sessions/connect",{body:JSON.stringify({command:n,cwd:e(p).projectPath,noCreate:!0,sessionId:e(D)}),headers:{Authorization:`Bearer ${s.apiKey}`,"Content-Type":"application/json"},method:"POST"});if(i.ok&&!u){const r=await i.json();a(j,r.terminalId,!0),a(c,"resuming"),z(r.sessionWs,r.terminalId),X(r.ws)}}catch{}}),()=>{u=!0,O&&clearTimeout(O),C?.close(),$?.close()}});var K=Be();Ie("1a2wdfb",t=>{var s=Oe();$e(()=>{ke.title=`${(e(p)?.title||"Session")??""} - Shooter`}),w(t,s)});var le=h(K);{var de=t=>{var s=Me(),n=h(s);W(n,{classes:"shimmer-header"});var i=_(n,2),r=h(i);W(r,{classes:"shimmer-bubble shimmer-bubble-user"});var d=_(r,2);W(d,{classes:"shimmer-bubble shimmer-bubble-assistant"});var f=_(d,2);W(f,{classes:"shimmer-bubble shimmer-bubble-user-short"});var g=_(f,2);W(g,{classes:"shimmer-bubble shimmer-bubble-assistant-wide"}),v(i),v(s),w(t,s)},ue=t=>{var s=Ne(),n=H(s),i=h(n);v(n);var r=_(n,2),d=h(r,!0);v(r),q(()=>{Q(i,"href",e(M)?`/project?id=${e(M)}`:"/"),L(d,e(N))}),w(t,s)},fe=t=>{var s=De(),n=H(s),i=h(n),r=h(i),d=_(r,2);{var f=l=>{var m=Ae();w(l,m)},g=l=>{var m=Pe();w(l,m)},x=l=>{var m=Te();w(l,m)},B=l=>{var m=We();w(l,m)};F(d,l=>{e(c)==="connecting"?l(f):e(c)==="resuming"?l(g,1):e(k)==="connected"?l(x,2):e(k)==="reconnecting"&&l(B,3)})}v(i);var U=_(i,2),pe=h(U,!0);v(U),v(n);var Y=_(n,2),Z=h(Y);{var me=l=>{var m=Re(),E=h(m),ve=h(E,!0);v(E),v(m),q(()=>{E.disabled=e(A),L(ve,e(A)?"Loading...":"Load earlier messages")}),we("click",E,ce),w(l,m)};F(Z,l=>{e(R)&&l(me)})}var he=_(Z,2);{let l=J(()=>[...e(o)].reverse());Ce(he,{get messages(){return e(l)},newestFirst:!0,get connectionState(){return e(k)},showInput:!0,get sendDisabled(){return e(ne)},onSendInput:ie,sessionEnded:!1})}v(Y),q(()=>{Q(r,"href",e(M)?`/project?id=${e(M)}`:"/"),L(pe,e(p).title)}),w(t,s)};F(le,t=>{e(I)&&e(o).length===0?t(de):e(N)?t(ue,1):e(p)&&t(fe,2)})}v(K),w(te,K),Se()}ge(["click"]);export{Ge as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{d as Ye,c as Qe,i as Ve,a as u,t as Xe,s as A,e as Ge,f as g}from"../chunks/DVl0sebP.js";import{W as je,s as y,A as ze,X as Be,b as i,g as e,a8 as Ue,f as ke,Y as De,c as r,d as l,a1 as pe,t as F,Z as S,r as s,_ as et,q as tt,a0 as at}from"../chunks/CJFjKwJ7.js";import{i as K}from"../chunks/BfJ-f-Tu.js";import{e as ue,C as st,S as rt,I as nt,B as W,a as Me,i as lt,P as Se,T as Ee,s as Ne}from"../chunks/CNH2HlKj.js";import{h as it}from"../chunks/CsgHjHGZ.js";import{a as ot,c as ct}from"../chunks/DDiOVAd8.js";import{g as Oe}from"../chunks/EhLZwqfu.js";import{c as dt,s as Ie,g as vt,S as pt}from"../chunks/CtrCjGZT.js";import{i as ut}from"../chunks/gQJcRhou.js";import{E as Ke}from"../chunks/CaiJSUi3.js";import{I as mt}from"../chunks/CmczWE_d.js";import{f as Pe}from"../chunks/BLszSzTT.js";var ft=g('<div class="overlay svelte-plslui" role="presentation"><div class="sheet svelte-plslui" role="dialog" aria-modal="true" aria-label="New Terminal"><div class="handle-bar svelte-plslui"><div class="handle svelte-plslui"></div></div> <h2 class="sheet-title svelte-plslui">New Terminal</h2> <div class="section svelte-plslui"><span class="section-label svelte-plslui">Quick Launch</span> <div class="preset-grid svelte-plslui"></div></div> <div class="section svelte-plslui"><span class="section-label svelte-plslui">Working Directory</span> <!> <div class="custom-cwd-group svelte-plslui"><!></div></div> <!> <!></div></div>');function ht(me,C){je(C,!0);const Y=[{args:[],command:"claude",label:"Claude Code"},{args:[],command:"opencode",label:"OpenCode"},{args:[],command:"zsh",label:"Shell / zsh"},{args:[],command:"bash",label:"Bash"}];let P=y(0),k=y(ze([])),L=y(""),m=y(""),_=y(!1),E=y("");Be(()=>{j()});async function j(){try{const c=await fetch("/api/sessions?limit=50&offset=0",{headers:{Authorization:`Bearer ${C.apiKey}`}});if(!c.ok)return;const I=(await c.json()).projects.map(h=>h.fullPath).filter(h=>typeof h=="string"&&h.length>0);i(k,[...new Set(I)],!0),e(k).length>0&&!e(L)&&i(L,e(k)[0],!0)}catch{}}function w(c){i(P,c,!0)}function R(){return Y[e(P)].command}function fe(){return Y[e(P)].args}function he(){const c=e(m).trim();return c||(e(L)?e(L):"/tmp")}async function ge(){const c=R();if(c){i(_,!0),i(E,"");try{const b=await fetch("/api/terminals",{body:JSON.stringify({args:fe(),command:c,cwd:he()||void 0}),headers:{Authorization:`Bearer ${C.apiKey}`,"Content-Type":"application/json"},method:"POST"});if(!b.ok){const h=await b.json().catch(()=>({}));i(E,(typeof h.error=="string"?h.error:"")||`Failed to launch (${b.status})`,!0);return}const I=await b.json();C.onLaunch(I)}catch{i(E,"Network error — is the server running?")}finally{i(_,!1)}}}function Q(c){c.target===c.currentTarget&&C.onClose()}function _e(c){C.open&&c.key==="Escape"&&C.onClose()}var ie=Qe();Ve("keydown",Ue,_e);var H=ke(ie);{var oe=c=>{var b=ft(),I=r(b),h=l(r(I),4),V=l(r(h),2);ue(V,23,()=>Y,v=>v.label,(v,Z,$)=>{{let be=S(()=>e(P)===e($));st(v,{mode:"radio",get selected(){return e(be)},onclick:()=>{w(e($))},classes:"preset-choice",children:(ce,Le)=>{pe();var de=Xe();F(()=>A(de,e(Z).label)),u(ce,de)},$$slots:{default:!0}})}}),s(V),s(h);var X=l(h,2),G=l(r(X),2);{let v=S(()=>e(k).length>0?e(k).map($=>({id:$,label:$})):[{id:"",label:"No recent projects"}]),Z=S(()=>e(L)?[e(L)]:e(k).length>0?[e(k)[0]]:[""]);rt(G,{get items(){return e(v)},get value(){return e(Z)},placeholder:"Select a project",onchange:$=>{i(L,$[0]||"",!0)},classes:"launch-select"})}var U=l(G,2),we=r(U);nt(we,{label:"Or enter a custom path",dataType:"text",placeholder:"/path/to/project",classes:"input-mono launch-input",get value(){return e(m)},set value(v){i(m,v,!0)}}),s(U),s(X);var ee=l(X,2);{let v=S(()=>e(_)?"Launching...":"Launch Terminal");W(ee,{classes:"btn-launch",get disabled(){return e(_)},onclick:ge,get showLoader(){return e(_)},get text(){return e(v)}})}var te=l(ee,2);{var ae=v=>{Me(v,{get text(){return e(E)},classes:"banner-error launch-error-banner"})};K(te,v=>{e(E)&&v(ae)})}s(I),s(b),Ge("click",b,Q),u(c,b)};K(H,c=>{C.open&&c(oe)})}u(me,ie),De()}Ye(["click"]);var gt=g('<meta name="description" content="Active terminal sessions on this machine" class="svelte-1ewpmn2"/>'),_t=g("<!> Refresh",1),wt=g('<span class="plus-icon svelte-1ewpmn2">+</span> New Terminal',1),bt=g('<div class="loading-container svelte-1ewpmn2"></div>'),xt=g('<span class="plus-icon svelte-1ewpmn2">+</span> New Terminal',1),yt=g('<span class="terminal-cwd svelte-1ewpmn2"> </span>'),Ct=g('<div class="terminal-preview svelte-1ewpmn2"><span class="terminal-preview-text svelte-1ewpmn2"> </span></div>'),$t=g('<a class="terminal-card svelte-1ewpmn2"><div class="terminal-card-header svelte-1ewpmn2"><div class="terminal-card-left svelte-1ewpmn2"><span class="status-indicator status-running svelte-1ewpmn2"><span></span></span> <span class="terminal-command svelte-1ewpmn2"> </span> <!></div> <span class="terminal-time svelte-1ewpmn2"> </span></div> <div class="terminal-card-meta svelte-1ewpmn2"><!> <span class="terminal-pid svelte-1ewpmn2"> </span></div> <!></a>'),Tt=g('<span class="terminal-cwd svelte-1ewpmn2"> </span>'),At=g('<div class="terminal-preview svelte-1ewpmn2"><span class="terminal-preview-text svelte-1ewpmn2"> </span></div>'),St=g('<a class="terminal-card terminal-card-exited svelte-1ewpmn2"><div class="terminal-card-header svelte-1ewpmn2"><div class="terminal-card-left svelte-1ewpmn2"><span class="status-indicator status-exited svelte-1ewpmn2"><span class="status-dot-static svelte-1ewpmn2"></span></span> <span class="terminal-command svelte-1ewpmn2"> </span> <!> <!></div> <div class="terminal-card-right svelte-1ewpmn2"><span class="terminal-time svelte-1ewpmn2"> </span> <!></div></div> <div class="terminal-card-meta svelte-1ewpmn2"><!></div> <!></a>'),Pt=g('<div class="terminals-container svelte-1ewpmn2"><!> <!></div>'),kt=g('<main class="main svelte-1ewpmn2"><div class="page-header svelte-1ewpmn2"><div class="page-header-content svelte-1ewpmn2"><div class="svelte-1ewpmn2"><h1 class="page-title svelte-1ewpmn2">Terminals</h1> <p class="page-description svelte-1ewpmn2">Active terminal sessions on this machine</p></div> <div class="page-actions svelte-1ewpmn2"><!> <!></div></div></div> <!> <!></main> <!>',1);function Rt(me,C){je(C,!0);const Y=1e4,P="shooter_terminals",k=["claude","opencode"],L=["zsh","bash","sh","fish"];let m=y(ze([])),_=y(!1),E=!1,j=y(null),w=y(null),R=null;const fe=S(()=>e(m).filter(t=>t.status==="running")),he=S(()=>e(m).filter(t=>t.status==="exited"));Be(()=>{ge();const t=vt(P,1e4);t&&(i(m,t,!0),i(_,!1)),Q(),R=setInterval(()=>{e(w)?.apiKey&&Q()},Y)}),et(()=>{R&&(clearInterval(R),R=null)});function ge(){try{const t=localStorage.getItem("shooter_config");if(t){const a=JSON.parse(t);ut(a)?i(w,a,!0):(localStorage.removeItem("shooter_config"),i(w,null))}}catch{}}async function Q(){if(!(!e(w)?.apiKey||E)){E=!0,e(m).length===0&&i(_,!0);try{const a=await fetch("/api/terminals",{headers:{Authorization:`Bearer ${e(w).apiKey}`}});if(!a.ok){i(j,`Failed to load terminals (HTTP ${a.status})`);return}i(j,null);const o=await a.json();i(m,o.terminals.map(f=>({...f,lastOutput:f.lastOutput??null})),!0),Ie(P,e(m))}catch(t){i(j,"Failed to load terminals"),console.error("Failed to fetch terminals:",t)}finally{i(_,!1),E=!1}}}async function _e(){i(_,!0),dt(P),await Q()}function ie(){Oe("/config")}let H=y(!1);function oe(){i(H,!0)}function c(){i(H,!1)}function b(t){i(H,!1),Oe(`/terminals/${t.id}`)}function I(t){const a=t.split("/").pop()||t;return k.includes(a)?"ai":(L.includes(a),"shell")}function h(t){return t.status==="exited"?{class:"pill-badge-ended",label:"ENDED"}:I(t.command)==="ai"?{class:"pill-badge-ai",label:"AI"}:{class:"pill-badge-shell",label:"SHELL"}}function V(t,a=40){if(t.length<=a)return t;const o=t.split("/");return o.length<=3?t:`${o[0]}/.../${o.slice(-2).join("/")}`}function X(t){return t.replace(/\x1b\[[0-9;]*[a-zA-Z]|\x1b\][^\x07]*\x07|\x1b\[[\?]?[0-9;]*[a-zA-Z]|\x1b/g,"").replace(/[\x00-\x1f]/g,"").trim()}function G(t,a=80){if(!t)return"";const o=t.split(`
|
|
2
|
+
`).map(x=>X(x)).filter(x=>x.trim()),f=o[o.length-1]||"";return f.length<=a?f:`${f.slice(0,a)}...`}function U(t){return t.split("/").pop()||t}async function we(t,a){if(t.preventDefault(),t.stopPropagation(),!!e(w)?.apiKey)try{(await fetch(`/api/terminals/${a}`,{headers:{Authorization:`Bearer ${e(w).apiKey}`},method:"DELETE"})).ok&&(i(m,e(m).filter(f=>f.id!==a),!0),Ie(P,e(m)))}catch(o){console.error("Failed to remove terminal:",o)}}var ee=kt();it("1ewpmn2",t=>{var a=gt();tt(()=>{at.title="Terminals - Shooter"}),u(t,a)});var te=ke(ee),ae=r(te),v=r(ae),Z=l(r(v),2),$=r(Z);W($,{classes:"btn-secondary",onclick:_e,get disabled(){return e(_)},children:(t,a)=>{var o=_t(),f=ke(o);mt(f,{name:"refresh",size:14}),pe(),u(t,o)},$$slots:{default:!0}});var be=l($,2);W(be,{classes:"btn-primary",onclick:oe,children:(t,a)=>{var o=wt();pe(),u(t,o)},$$slots:{default:!0}}),s(Z),s(v),s(ae);var ce=l(ae,2);{var Le=t=>{Me(t,{get text(){return e(j)},classes:"banner-error"})};K(ce,t=>{e(j)&&t(Le)})}var de=l(ce,2);{var Fe=t=>{var a=bt();ue(a,20,()=>Array(4),lt,(o,f)=>{pt(o,{classes:"shimmer-card"})}),s(a),u(t,a)},Re=t=>{Ke(t,{icon:"settings",title:"Configuration Required",description:"Set up your API credentials to view terminal sessions",children:(a,o)=>{W(a,{classes:"btn-primary",onclick:ie,text:"Configure Settings"})}})},He=t=>{Ke(t,{icon:"terminal",title:"No terminals",description:"Launch a new terminal session to get started. Terminal sessions will appear here once created.",children:(a,o)=>{W(a,{classes:"btn-primary",onclick:oe,children:(f,x)=>{var n=xt();pe(),u(f,n)},$$slots:{default:!0}})}})},Ze=t=>{var a=Pt(),o=r(a);ue(o,17,()=>e(fe),x=>x.id,(x,n)=>{const se=S(()=>h(e(n)));var N=$t(),z=r(N),B=r(z),D=r(B),xe=r(D);s(D);var q=l(D,2),ye=r(q,!0);s(q);var Ce=l(q,2);Se(Ce,{get text(){return e(se).label},get classes(){return e(se).class}}),s(B);var re=l(B,2),ne=r(re,!0);s(re),s(z);var le=l(z,2),ve=r(le);{let d=S(()=>e(n).currentCwd||e(n).cwd);Ee(ve,{get text(){return e(d)},position:"bottom",children:(p,T)=>{var O=yt(),M=r(O,!0);s(O),F(We=>A(M,We),[()=>V(e(n).currentCwd||e(n).cwd)]),u(p,O)},$$slots:{default:!0}})}var J=l(ve,2),$e=r(J);s(J),s(le);var Te=l(le,2);{var Ae=d=>{var p=Ct(),T=r(p),O=r(T,!0);s(T),s(p),F(M=>A(O,M),[()=>G(e(n).lastOutput)]),u(d,p)};K(Te,d=>{e(n).lastOutput&&d(Ae)})}s(N),F((d,p)=>{Ne(N,"href",`/terminals/${e(n).id??""}`),ot(xe,1,ct(e(n).isActive?"status-dot-active":"status-dot-idle"),"svelte-1ewpmn2"),A(ye,d),A(ne,p),A($e,`PID ${e(n).pid??""}`)},[()=>U(e(n).command),()=>Pe(e(n).createdAt)]),u(x,N)});var f=l(o,2);ue(f,17,()=>e(he),x=>x.id,(x,n)=>{const se=S(()=>h(e(n)));var N=St(),z=r(N),B=r(z),D=l(r(B),2),xe=r(D,!0);s(D);var q=l(D,2);Se(q,{get text(){return e(se).label},get classes(){return e(se).class}});var ye=l(q,2);{var Ce=d=>{{let p=S(()=>e(n).exitCode!==0?"pill-exit-error":"pill-exit-ok");Se(d,{get text(){return`exit ${e(n).exitCode??""}`},get classes(){return e(p)}})}};K(ye,d=>{e(n).exitCode!==null&&d(Ce)})}s(B);var re=l(B,2),ne=r(re),le=r(ne,!0);s(ne);var ve=l(ne,2);W(ve,{classes:"btn-ghost btn-sm btn-remove",onclick:d=>{we(d,e(n).id)},text:"×"}),s(re),s(z);var J=l(z,2),$e=r(J);Ee($e,{get text(){return e(n).cwd},position:"bottom",children:(d,p)=>{var T=Tt(),O=r(T,!0);s(T),F(M=>A(O,M),[()=>V(e(n).cwd)]),u(d,T)},$$slots:{default:!0}}),s(J);var Te=l(J,2);{var Ae=d=>{var p=At(),T=r(p),O=r(T,!0);s(T),s(p),F(M=>A(O,M),[()=>G(e(n).lastOutput)]),u(d,p)};K(Te,d=>{e(n).lastOutput&&d(Ae)})}s(N),F((d,p)=>{Ne(N,"href",`/terminals/${e(n).id??""}`),A(xe,d),A(le,p)},[()=>U(e(n).command),()=>e(n).exitedAt?Pe(e(n).exitedAt):Pe(e(n).createdAt)]),u(x,N)}),s(a),u(t,a)};K(de,t=>{e(_)&&e(m).length===0?t(Fe):e(w)?.apiKey?e(m).length===0?t(He,2):t(Ze,-1):t(Re,1)})}s(te);var qe=l(te,2);{var Je=t=>{ht(t,{get open(){return e(H)},get apiKey(){return e(w).apiKey},onClose:c,onLaunch:b})};K(qe,t=>{e(w)?.apiKey&&t(Je)})}u(me,ee),De()}export{Rt as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../chunks/CR6bkGJW.js","../chunks/PPVm8Dsz.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{_ as ke}from"../chunks/PPVm8Dsz.js";import{s as rt,a as S,f as C,c as Se,d as xe,g as Ce,h as Ie,e as Te}from"../chunks/DVl0sebP.js";import{W as ot,Y as it,g as t,Z as p,c as k,d as c,r as h,t as H,f as zt,s as m,A as je,X as qe,_ as Ee,$ as Ke,b as n,a0 as Me}from"../chunks/CJFjKwJ7.js";import{i as M}from"../chunks/BfJ-f-Tu.js";import{h as $e}from"../chunks/CsgHjHGZ.js";import{d as De,s as vt,B as tt,e as Bt,M as Pe,K as Ae,P as Rt,T as Wt,f as Ne,I as Oe}from"../chunks/CNH2HlKj.js";import{a as mt,b as Lt}from"../chunks/DDiOVAd8.js";import{b as Ft}from"../chunks/1mEchsPO.js";import{g as Y}from"../chunks/EhLZwqfu.js";import{p as Re}from"../chunks/CqfYvnci.js";import{E as We}from"../chunks/CaiJSUi3.js";import{C as Le}from"../chunks/CVtJ6yRM.js";import{p as Fe}from"../chunks/B7X-vhXI.js";function ze(g,o){ot(o,!0);let b=Fe(o,"open",15,!1);const u=p(()=>o.commands.map((y,a)=>({label:y.label,value:String(a)})));function T(y){const a=parseInt(y.value,10);o.commands[a]&&o.commands[a].action()}De(g,{get items(){return t(u)},placeholder:"Type a command...",emptyText:"No matching commands",onselect:T,get onclose(){return o.onClose},classes:"command-palette",get open(){return b()},set open(y){b(y)}}),it()}var Be=C('<div><span></span> <span class="status-label svelte-1cg9pai"> </span> <!></div>');function He(g,o){const b=p(()=>o.status==="connected"?"Connected":o.status==="reconnecting"?"Reconnecting...":"Disconnected");var u=Be();let T;var y=k(u),a=c(y,2),O=k(a,!0);h(a);var $=c(a,2);{var j=x=>{tt(x,{classes:"btn-ghost btn-sm btn-retry",get onclick(){return o.onretry},text:"Retry"})};M($,x=>{o.status==="disconnected"&&o.onretry&&x(j)})}h(u),H(()=>{T=mt(u,1,"connection-status svelte-1cg9pai",null,T,{reconnecting:o.status==="reconnecting",disconnected:o.status==="disconnected",connected:o.status==="connected"}),vt(u,"aria-label",`Connection: ${o.status??""}`),mt(y,1,`status-dot ${o.status??""}`,"svelte-1cg9pai"),rt(O,t(b))}),S(g,u)}const Ht=typeof navigator<"u"&&/Mac|iPhone|iPad/.test(navigator.userAgent),pt=Ht?"⌘":"Ctrl";function Ue(g){function o(b){if((Ht?b.metaKey:b.ctrlKey)&&!Ge()&&b.key==="/"){b.preventDefault(),b.stopPropagation(),g.onHelp();return}}return window.addEventListener("keydown",o,!0),{destroy(){window.removeEventListener("keydown",o,!0)}}}function Je(){return[{description:"Command palette",keys:`${pt}+K`},{description:"Keyboard shortcuts",keys:`${pt}+/`}]}function Ge(){const g=document.activeElement;if(!g)return!1;const o=g.tagName;return!!(o==="INPUT"||o==="TEXTAREA"||g.isContentEditable||g.closest(".xterm"))}var Ve=C('<div class="quick-keys svelte-64qat5" role="toolbar" aria-label="Quick terminal keys"></div>');function Qe(g,o){ot(o,!0);const b=[{escape:"",label:"Ctrl+C"},{escape:" ",label:"Tab"},{escape:"\x1B[A",label:"↑"},{escape:"\x1B[B",label:"↓"},{escape:"\x1B",label:"Esc"},{escape:"",label:"Ctrl+D"},{escape:"",label:"Ctrl+Z"}];var u=Ve();Bt(u,21,()=>b,T=>T.label,(T,y)=>{tt(T,{classes:"btn-quick-key",onclick:()=>{o.onKey(t(y).escape)},get text(){return t(y).label}})}),h(u),S(g,u),it()}var Xe=C('<div class="shortcut-row svelte-1u7lstk"><span class="shortcut-desc svelte-1u7lstk"> </span> <!></div>'),Ze=C('<div class="shortcuts-list svelte-1u7lstk"></div>');function Ye(g,o){ot(o,!0);const b=Je();var u=Se(),T=zt(u);{var y=a=>{Pe(a,{header:{text:"Keyboard Shortcuts"},get onoverlayClick(){return o.onClose},classes:"shortcuts-modal",content:$=>{var j=Ze();Bt(j,21,()=>b,x=>x.keys,(x,F)=>{var R=Xe(),d=k(R),q=k(d,!0);h(d);var P=c(d,2);Ae(P,{get keys(){return t(F).keys},classes:"shortcut-kbd"}),h(R),H(()=>rt(q,t(F).description)),S(x,R)}),h(j),S($,j)},$$slots:{content:!0}})};M(T,a=>{o.open&&a(y)})}S(g,u),it()}var tn=C('<meta name="description" content="Interactive terminal session" class="svelte-1tubujq"/>'),en=C('<div class="term-page svelte-1tubujq"><div class="term-topbar svelte-1tubujq"><div class="skeleton svelte-1tubujq" style="width: 120px; height: 20px;"></div></div> <div class="term-body-loading svelte-1tubujq"><div class="skeleton svelte-1tubujq" style="width: 100%; height: 100%;"></div></div></div>'),nn=C('<main class="main svelte-1tubujq"><div class="session-back-row svelte-1tubujq"><a href="/terminals" class="back-link svelte-1tubujq"><span class="back-arrow svelte-1tubujq">←</span> Terminals</a></div> <!></main>'),sn=C("<span></span>"),an=C('<span class="term-cwd svelte-1tubujq"> </span>'),rn=C('<a class="term-session-link svelte-1tubujq" title="View session history">Session</a>'),on=C('<div class="term-input-area svelte-1tubujq"><!> <div class="term-input-bar svelte-1tubujq"><!> <!></div></div>'),ln=C('<div class="term-exited-bar svelte-1tubujq"><span class="svelte-1tubujq">Process exited</span> <!></div>'),cn=C('<div class="term-page svelte-1tubujq"><div class="term-topbar svelte-1tubujq"><div class="term-topbar-left svelte-1tubujq"><a href="/terminals" class="term-back svelte-1tubujq" aria-label="Back to terminals">←</a> <span class="term-command-name svelte-1tubujq"> </span> <!> <!> <!> <!> <!></div> <div class="term-topbar-right svelte-1tubujq"><!> <button class="term-shortcuts-btn svelte-1tubujq" type="button" aria-label="Keyboard shortcuts">?</button> <!></div></div> <div class="term-body svelte-1tubujq"></div> <!> <div class="term-chat-body svelte-1tubujq"><!></div> <!></div>'),un=C("<!> <!> <!>",1);function xn(g,o){ot(o,!0);const b=()=>Ie(Re,"$page",u),[u,T]=Ce(),y=["claude","opencode"];let a=m(null),O=m(!0),$=m(null),j=m(!1),x=m(!1),F=m(!1),R=m(null),d=m("raw"),q=m("disconnected"),P=m("disconnected"),z=m(""),D=m(je([])),ht=m(!1),U=m(null),lt=m(null),A=null,gt=null,W=m(!1),ct=m(!1),f=null,L=null,v=!1;const J=p(()=>b().params.id),G=p(()=>t(a)?y.includes((t(a).command.split("/").pop()||"").toLowerCase()):!1),B=p(()=>t(a)?.status==="running"),bt=p(()=>t(a)?.command.split("/").pop()||"terminal"),Ut=p(()=>t(G)?"AI":"SHELL"),Jt=p(()=>t(G)?"pill-badge-ai":"pill-badge-shell"),Gt=["Raw","Chat"],yt=p(()=>t(d)==="raw"?t(q):t(P)),Vt=p(()=>t(d)==="raw"?0:1),wt=p(()=>Xt(t(R)||t(a)?.cwd||"")),Qt=p(()=>{const e=[{action:()=>{Y("/")},label:"Go to Home"},{action:()=>{Y("/terminals")},label:"Go to Terminals"},{action:()=>{Y("/config")},label:"Go to Settings"},{action:()=>{n(W,!0)},label:"Show keyboard shortcuts"}];return t(B)&&e.push({action:()=>{kt()},label:"Kill terminal"}),e});function Xt(e){if(!e)return"";const s="";let r=e;if(typeof navigator<"u"){const l=e.split("/");l.length>=3&&l[1]==="Users"?r=`~/${l.slice(3).join("/")}`:l.length>=3&&l[1]==="home"&&(r=`~/${l.slice(3).join("/")}`)}if(r.length>30){const l=r.split("/");if(l.length>2)return`.../${l.slice(-2).join("/")}`}return r||s}function V(){try{const e=localStorage.getItem("shooter_config");if(!e)return null;const s=JSON.parse(e);return typeof s?.apiKey=="string"&&s.apiKey?s:null}catch{return null}}async function Zt(){const e=V();if(!e){n($,"No configuration found. Please configure settings first."),n(O,!1);return}try{const s=await fetch(`/api/terminals/${t(J)}`,{headers:{Authorization:`Bearer ${e.apiKey}`}});if(!s.ok){n($,s.status===404?"Terminal not found":"Failed to load terminal",!0),n(O,!1);return}n(a,await s.json(),!0)}catch{n($,"Failed to connect to server")}n(O,!1)}async function _t(){const e=V();if(!e)return null;try{const s=await fetch("/api/ws-ticket",{headers:{Authorization:`Bearer ${e.apiKey}`},method:"POST"});return s.ok?(await s.json()).ticket:null}catch{return null}}async function kt(){if(!t(a)||t(j))return;const e=V();if(e){n(j,!0);try{(await fetch(`/api/terminals/${t(J)}`,{headers:{Authorization:`Bearer ${e.apiKey}`},method:"DELETE"})).ok?Y("/terminals"):n(j,!1)}catch{n(j,!1)}}}async function Yt(){if(!t(a)||t(x))return;const e=V();if(e){n(x,!0);try{(await fetch(`/api/terminals/${t(J)}`,{headers:{Authorization:`Bearer ${e.apiKey}`},method:"DELETE"})).ok?Y("/terminals"):n(x,!1)}catch{n(x,!1)}}}async function ut(){if(!t(U)||!t(a)||v)return;const s=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}${t(a).ws}`,r=async()=>{const l=await _t();if(!l)throw new Error("Failed to obtain WebSocket ticket");return l};try{const{createTerminal:l}=await ke(async()=>{const{createTerminal:E}=await import("../chunks/CR6bkGJW.js");return{createTerminal:E}},__vite__mapDeps([0,1]),import.meta.url);if(v||!t(U))return;const w=await l({apiKey:V()?.apiKey,container:t(U),fontSize:window.innerWidth<768?12:14,getTicket:r,onActivity:E=>{v||n(F,E,!0)},onCwd:E=>{v||n(R,E,!0)},onDisconnect:()=>{v||n(q,"reconnecting")},onExit:E=>{!v&&t(a)&&(n(a,{...t(a),exitCode:E,exitedAt:new Date().toISOString(),status:"exited"},!0),n(q,"disconnected"))},onReconnect:()=>{v||n(q,"connected")},terminalId:t(J),wsUrl:s});if(v){w.dispose();return}A=w,n(q,"connected")}catch(l){console.error("Failed to initialize terminal:",l),n(q,"disconnected")}}function St(){A&&(A.dispose(),A=null)}async function et(){if(!t(a)||v||f&&(f.readyState===WebSocket.OPEN||f.readyState===WebSocket.CONNECTING))return;const e=await _t();if(!e||v||!t(a)){n(P,"disconnected");return}const r=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}${t(a).sessionWs}?ticket=${e}`;f=new WebSocket(r),f.onopen=()=>{v||(n(P,"connected"),f?.send(JSON.stringify({sessionId:t(J),type:"subscribe"})))},f.onmessage=l=>{if(!v)try{const w=JSON.parse(l.data);te(w)}catch{}},f.onclose=()=>{!v&&t(a)?.status==="running"&&(n(P,"reconnecting"),L&&clearTimeout(L),L=setTimeout(()=>{L=null,!v&&t(a)?.status==="running"&&et()},2e3))},f.onerror=()=>{v||n(P,"disconnected")}}function Q(){return t(D)}function te(e){if(e.type==="history"){const s=e.messages||[];n(D,s.map(r=>({id:r.id,parts:r.content,role:r.role,timestamp:r.timestamp})),!0)}else if(e.type==="message"){const s=typeof e.role=="string"?e.role:"assistant",r=s==="user"?"user":s==="system"?"system":"assistant",l={id:`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:e.content||[],role:r,timestamp:(typeof e.timestamp=="string"?e.timestamp:"")||new Date().toISOString()};n(D,Q().concat(l),!0)}else if(e.type==="tool-use"){const s={id:e.id||`tool-${Date.now()}`,input:e.input||{},toolName:e.name,type:"tool_use"},r={id:`tool-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[s],role:"assistant",timestamp:new Date().toISOString()};n(D,Q().concat(r),!0)}else if(e.type==="tool-result"){const s={isError:e.isError||!1,output:e.output||"",toolUseId:e.id,type:"tool_result"},r={id:`result-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[s],role:"system",timestamp:new Date().toISOString()};n(D,Q().concat(r),!0)}else if(e.type==="thinking"){const s={content:e.text||"",type:"thinking"},r=Q(),l=r.length-1;if(l>=0&&r[l].role==="assistant"){const w=r[l],E={id:w.id,parts:w.parts.concat(s),role:w.role,timestamp:w.timestamp};n(D,[...r.slice(0,l),E],!0)}else{const w={id:`think-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[s],role:"assistant",timestamp:new Date().toISOString()};n(D,r.concat(w),!0)}}else if(e.type==="error"){const s={content:e.message||"Unknown error",type:"text"},r={id:`err-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[s],role:"system",timestamp:new Date().toISOString()};n(D,Q().concat(r),!0)}else e.type==="session-end"&&(n(ht,!0),t(a)&&n(a,{...t(a),status:"exited"},!0))}function xt(){L&&(clearTimeout(L),L=null),f&&(f.onclose=null,f.close(),f=null)}function Ct(){t(z).trim()&&(A&&t(q)==="connected"&&A.sendInput(`${t(z)}\r`),n(z,""),t(lt)?.focus())}function ee(e){!e.trim()||f?.readyState!==WebSocket.OPEN||f.send(JSON.stringify({text:e,type:"send-input"}))}function It(){f?.readyState===WebSocket.OPEN&&f.send(JSON.stringify({type:"cancel"}))}function ne(e){t(d)==="raw"?A&&t(q)==="connected"&&A.sendInput(e):t(d)==="chat"&&e===""&&It()}function se(e){e.key==="Enter"&&!e.shiftKey&&(e.preventDefault(),Ct())}let nt=!1,st=!1;function ae(e){e!==t(d)&&(n(d,e,!0),e==="raw"&&!nt?(requestAnimationFrame(()=>{ut()}),nt=!0):e==="chat"&&!st&&(et(),st=!0))}function re(){t(d)==="raw"?(St(),n(q,"reconnecting"),ut(),nt=!0):(xt(),n(P,"reconnecting"),et(),st=!0)}qe(async()=>{await Zt(),!v&&(gt=Ue({onHelp:()=>{n(W,!t(W))}}),!(!t(a)||t($))&&(t(G)&&window.innerWidth<768?n(d,"chat"):n(d,"raw"),t(d)==="raw"?(requestAnimationFrame(()=>{ut()}),nt=!0):(et(),st=!0)))}),Ee(()=>{v=!0,St(),xt(),gt?.destroy()});var Tt=un();$e("1tubujq",e=>{var s=tn();Ke(()=>{Me.title=`${t(bt)??""} - Terminal - Shooter`}),S(e,s)});var jt=zt(Tt);{var oe=e=>{var s=en();S(e,s)},ie=e=>{var s=nn(),r=c(k(s),2);We(r,{icon:"alert-triangle",title:"Error",get description(){return t($)}}),h(s),S(e,s)},le=e=>{var s=cn(),r=k(s),l=k(r),w=c(k(l),2),E=k(w,!0);h(w);var Et=c(w,2);Rt(Et,{get text(){return t(Ut)},get classes(){return t(Jt)}});var Kt=c(Et,2);{var ue=i=>{{let _=p(()=>t(F)?"Active":"Idle");Wt(i,{get text(){return t(_)},position:"bottom",children:(K,N)=>{var I=sn();H(()=>mt(I,1,`activity-dot ${t(F)?"activity-active":"activity-idle"}`,"svelte-1tubujq")),S(K,I)},$$slots:{default:!0}})}};M(Kt,i=>{t(B)&&i(ue)})}var Mt=c(Kt,2);{var de=i=>{{let _=p(()=>t(R)||t(a)?.cwd||"");Wt(i,{get text(){return t(_)},position:"bottom",children:(K,N)=>{var I=an(),X=k(I,!0);h(I),H(()=>rt(X,t(wt))),S(K,I)},$$slots:{default:!0}})}};M(Mt,i=>{t(wt)&&i(de)})}var $t=c(Mt,2);He($t,{get status(){return t(yt)},onretry:re});var fe=c($t,2);{var ve=i=>{const _=p(()=>t(a).sessionFile??"");var K=rn();H(N=>vt(K,"href",`/session/${N??""}`),[()=>t(_).split(/[\\/]/).pop()?.replace(".jsonl","")||""]),S(i,K)};M(fe,i=>{t(G)&&t(a)?.sessionFile&&i(ve)})}h(l);var Dt=c(l,2),Pt=k(Dt);{var me=i=>{Ne(i,{get items(){return Gt},get activeIndex(){return t(Vt)},onchange:_=>{ae(_===0?"raw":"chat")},classes:"term-tabs"})};M(Pt,i=>{t(G)&&i(me)})}var dt=c(Pt,2),pe=c(dt,2);{var he=i=>{tt(i,{classes:"btn-danger btn-sm",onclick:kt,get disabled(){return t(j)},get showLoader(){return t(j)},text:"Kill"})},ge=i=>{tt(i,{classes:"btn-secondary btn-sm",onclick:Yt,get disabled(){return t(x)},get showLoader(){return t(x)},text:"Remove"})};M(pe,i=>{t(B)?i(he):i(ge,-1)})}h(Dt),h(r);var ft=c(r,2);let At;Ft(ft,i=>n(U,i),()=>t(U));var Nt=c(ft,2);{var be=i=>{var _=on(),K=k(_);Qe(K,{onKey:ne});var N=c(K,2),I=k(N);Ft(Oe(I,{dataType:"text",useTextArea:!0,placeholder:"Type command... (Shift+Enter for new line)",classes:"input-mono term-input-field",onKeyDown:se,get value(){return t(z)},set value(Z){n(z,Z,!0)}}),Z=>n(lt,Z,!0),()=>t(lt));var X=c(I,2);{let Z=p(()=>!t(z).trim());tt(X,{classes:"btn-primary btn-send",onclick:Ct,get disabled(){return t(Z)},text:"↵"})}h(N),h(_),S(i,_)};M(Nt,i=>{t(B)&&t(d)==="raw"&&i(be)})}var at=c(Nt,2);let Ot;var ye=k(at);Le(ye,{get messages(){return t(D)},get connectionState(){return t(yt)},get sessionEnded(){return t(ht)},get showInput(){return t(B)},onSendInput:ee,onCancel:It}),h(at);var we=c(at,2);{var _e=i=>{var _=ln(),K=c(k(_),2);{var N=I=>{{let X=p(()=>t(a).exitCode!==0?"pill-exit-error":"pill-exit-ok");Rt(I,{get text(){return`code ${t(a).exitCode??""}`},get classes(){return t(X)}})}};M(K,I=>{t(a).exitCode!==null&&I(N)})}h(_),S(i,_)};M(we,i=>{t(B)||i(_e)})}h(s),H(()=>{rt(E,t(bt)),vt(dt,"title",`${pt??""}+/ for shortcuts`),At=Lt(ft,"",At,{display:t(d)==="raw"?"flex":"none"}),Ot=Lt(at,"",Ot,{display:t(d)==="chat"?"flex":"none"})}),Te("click",dt,()=>{n(W,!t(W))}),S(e,s)};M(jt,e=>{t(O)?e(oe):t($)?e(ie,1):t(a)&&e(le,2)})}var qt=c(jt,2);Ye(qt,{get open(){return t(W)},onClose:()=>{n(W,!1)}});var ce=c(qt,2);ze(ce,{get commands(){return t(Qt)},onClose:()=>{n(ct,!1)},get open(){return t(ct)},set open(e){n(ct,e,!0)}}),S(g,Tt),it(),T()}xe(["click"]);export{xn as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"
|
|
1
|
+
{"version":"1776286979388"}
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { b as private_env } from './shared-server-DaWdgxVh.js';
|
|
2
|
+
import { g as getProviderAvailability } from './providers-DtstoHQ0.js';
|
|
3
|
+
|
|
4
|
+
const load = () => ({
|
|
5
|
+
aiProviders: getProviderAvailability(private_env),
|
|
6
|
+
neurolinkProvider: private_env.NEUROLINK_PROVIDER ?? ""
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
var _layout_server_ts = /*#__PURE__*/Object.freeze({
|
|
10
|
+
__proto__: null,
|
|
11
|
+
load: load
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
const index = 0;
|
|
15
|
+
let component_cache;
|
|
16
|
+
const component = async () => component_cache ??= (await import('./_layout.svelte-DllETxmJ.js')).default;
|
|
17
|
+
const server_id = "src/routes/+layout.server.ts";
|
|
18
|
+
const imports = ["_app/immutable/nodes/0.B_E4j3MX.js","_app/immutable/chunks/DVl0sebP.js","_app/immutable/chunks/CJFjKwJ7.js","_app/immutable/chunks/DDiOVAd8.js","_app/immutable/chunks/EhLZwqfu.js","_app/immutable/chunks/CqfYvnci.js","_app/immutable/chunks/CmczWE_d.js","_app/immutable/chunks/B7X-vhXI.js"];
|
|
19
|
+
const stylesheets = ["_app/immutable/assets/markdown.Dc-OSJWY.css","_app/immutable/assets/0.BhZOCxO4.css"];
|
|
20
|
+
const fonts = [];
|
|
21
|
+
|
|
22
|
+
export { component, fonts, imports, index, _layout_server_ts as server, server_id, stylesheets };
|
|
23
|
+
//# sourceMappingURL=0-e1fgD9Mi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"0-e1fgD9Mi.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_layout.server.ts.js","../../../.svelte-kit/adapter-node/nodes/0.js"],"sourcesContent":["import { b as private_env } from \"../../chunks/shared-server.js\";\nimport { g as getProviderAvailability } from \"../../chunks/providers.js\";\nconst load = () => ({\n aiProviders: getProviderAvailability(private_env),\n neurolinkProvider: private_env.NEUROLINK_PROVIDER ?? \"\"\n});\nexport {\n load\n};\n","import * as server from '../entries/pages/_layout.server.ts.js';\n\nexport const index = 0;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/+layout.server.ts\";\nexport const imports = [\"_app/immutable/nodes/0.B_E4j3MX.js\",\"_app/immutable/chunks/DVl0sebP.js\",\"_app/immutable/chunks/CJFjKwJ7.js\",\"_app/immutable/chunks/DDiOVAd8.js\",\"_app/immutable/chunks/EhLZwqfu.js\",\"_app/immutable/chunks/CqfYvnci.js\",\"_app/immutable/chunks/CmczWE_d.js\",\"_app/immutable/chunks/B7X-vhXI.js\"];\nexport const stylesheets = [\"_app/immutable/assets/markdown.Dc-OSJWY.css\",\"_app/immutable/assets/0.BhZOCxO4.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;;AAEA,MAAM,IAAI,GAAG,OAAO;AACpB,EAAE,WAAW,EAAE,uBAAuB,CAAC,WAAW,CAAC;AACnD,EAAE,iBAAiB,EAAE,WAAW,CAAC,kBAAkB,IAAI;AACvD,CAAC,CAAC;;;;;;;ACHU,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,8BAAoC,CAAC,EAAE;AAElG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5S,MAAC,WAAW,GAAG,CAAC,6CAA6C,CAAC,sCAAsC;AACpG,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const index = 1;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('./_error.svelte-DkIwmECt.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/1.B0oFqb8X.js","_app/immutable/chunks/DVl0sebP.js","_app/immutable/chunks/CJFjKwJ7.js","_app/immutable/chunks/BfJ-f-Tu.js","_app/immutable/chunks/CsgHjHGZ.js","_app/immutable/chunks/EhLZwqfu.js","_app/immutable/chunks/CqfYvnci.js"];
|
|
5
|
+
const stylesheets = ["_app/immutable/assets/1.BYutk3aU.css"];
|
|
6
|
+
const fonts = [];
|
|
7
|
+
|
|
8
|
+
export { component, fonts, imports, index, stylesheets };
|
|
9
|
+
//# sourceMappingURL=1-D2_XVthm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"1-
|
|
1
|
+
{"version":3,"file":"1-D2_XVthm.js","sources":["../../../.svelte-kit/adapter-node/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.B0oFqb8X.js\",\"_app/immutable/chunks/DVl0sebP.js\",\"_app/immutable/chunks/CJFjKwJ7.js\",\"_app/immutable/chunks/BfJ-f-Tu.js\",\"_app/immutable/chunks/CsgHjHGZ.js\",\"_app/immutable/chunks/EhLZwqfu.js\",\"_app/immutable/chunks/CqfYvnci.js\"];\nexport const stylesheets = [\"_app/immutable/assets/1.BYutk3aU.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,6BAAmC,CAAC,EAAE;AACjG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACxQ,MAAC,WAAW,GAAG,CAAC,sCAAsC;AACtD,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { b as private_env } from './shared-server-DaWdgxVh.js';
|
|
2
|
+
|
|
3
|
+
const load = () => ({
|
|
4
|
+
googleAiConfigured: Boolean(private_env.GOOGLE_AI_API_KEY?.trim())
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var _page_server_ts = /*#__PURE__*/Object.freeze({
|
|
8
|
+
__proto__: null,
|
|
9
|
+
load: load
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
const index = 2;
|
|
13
|
+
let component_cache;
|
|
14
|
+
const component = async () => component_cache ??= (await import('./_page.svelte-DDSzYLUs.js')).default;
|
|
15
|
+
const server_id = "src/routes/+page.server.ts";
|
|
16
|
+
const imports = ["_app/immutable/nodes/2.Bqul0XyM.js","_app/immutable/chunks/DVl0sebP.js","_app/immutable/chunks/CJFjKwJ7.js","_app/immutable/chunks/BfJ-f-Tu.js","_app/immutable/chunks/CNH2HlKj.js","_app/immutable/chunks/DDiOVAd8.js","_app/immutable/chunks/1mEchsPO.js","_app/immutable/chunks/B7X-vhXI.js","_app/immutable/chunks/CsgHjHGZ.js","_app/immutable/chunks/EhLZwqfu.js","_app/immutable/chunks/CtrCjGZT.js","_app/immutable/chunks/gQJcRhou.js","_app/immutable/chunks/CaiJSUi3.js","_app/immutable/chunks/CmczWE_d.js","_app/immutable/chunks/BLszSzTT.js","_app/immutable/chunks/CGMJxf7r.js","_app/immutable/chunks/BRkqKgVG.js","_app/immutable/chunks/pRcLbE0d.js"];
|
|
17
|
+
const stylesheets = ["_app/immutable/assets/markdown.Dc-OSJWY.css","_app/immutable/assets/Phone.FQEfwCX2.css","_app/immutable/assets/2.Dk9NfqnS.css"];
|
|
18
|
+
const fonts = [];
|
|
19
|
+
|
|
20
|
+
export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
|
|
21
|
+
//# sourceMappingURL=2-DADX86JZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"2-DADX86JZ.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/2.js"],"sourcesContent":["import { b as private_env } from \"../../chunks/shared-server.js\";\nconst load = () => ({\n googleAiConfigured: Boolean(private_env.GOOGLE_AI_API_KEY?.trim())\n});\nexport {\n load\n};\n","import * as server from '../entries/pages/_page.server.ts.js';\n\nexport const index = 2;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/2.Bqul0XyM.js\",\"_app/immutable/chunks/DVl0sebP.js\",\"_app/immutable/chunks/CJFjKwJ7.js\",\"_app/immutable/chunks/BfJ-f-Tu.js\",\"_app/immutable/chunks/CNH2HlKj.js\",\"_app/immutable/chunks/DDiOVAd8.js\",\"_app/immutable/chunks/1mEchsPO.js\",\"_app/immutable/chunks/B7X-vhXI.js\",\"_app/immutable/chunks/CsgHjHGZ.js\",\"_app/immutable/chunks/EhLZwqfu.js\",\"_app/immutable/chunks/CtrCjGZT.js\",\"_app/immutable/chunks/gQJcRhou.js\",\"_app/immutable/chunks/CaiJSUi3.js\",\"_app/immutable/chunks/CmczWE_d.js\",\"_app/immutable/chunks/BLszSzTT.js\",\"_app/immutable/chunks/CGMJxf7r.js\",\"_app/immutable/chunks/BRkqKgVG.js\",\"_app/immutable/chunks/pRcLbE0d.js\"];\nexport const stylesheets = [\"_app/immutable/assets/markdown.Dc-OSJWY.css\",\"_app/immutable/assets/Phone.FQEfwCX2.css\",\"_app/immutable/assets/2.Dk9NfqnS.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;AACA,MAAM,IAAI,GAAG,OAAO;AACpB,EAAE,kBAAkB,EAAE,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,IAAI,EAAE;AACnE,CAAC,CAAC;;;;;;;ACDU,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAkC,CAAC,EAAE;AAEhG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACppB,MAAC,WAAW,GAAG,CAAC,6CAA6C,CAAC,0CAA0C,CAAC,sCAAsC;AAC/I,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { b as private_env } from './shared-server-DaWdgxVh.js';
|
|
2
|
+
|
|
3
|
+
const load = () => ({
|
|
4
|
+
googleAiConfigured: Boolean(private_env.GOOGLE_AI_API_KEY?.trim())
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var _page_server_ts = /*#__PURE__*/Object.freeze({
|
|
8
|
+
__proto__: null,
|
|
9
|
+
load: load
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
const index = 3;
|
|
13
|
+
let component_cache;
|
|
14
|
+
const component = async () => component_cache ??= (await import('./_page.svelte-JIkgFUFf.js')).default;
|
|
15
|
+
const server_id = "src/routes/activity/+page.server.ts";
|
|
16
|
+
const imports = ["_app/immutable/nodes/3.CTqUQKSN.js","_app/immutable/chunks/DVl0sebP.js","_app/immutable/chunks/CJFjKwJ7.js","_app/immutable/chunks/BfJ-f-Tu.js","_app/immutable/chunks/CsgHjHGZ.js","_app/immutable/chunks/EhLZwqfu.js","_app/immutable/chunks/CNH2HlKj.js","_app/immutable/chunks/DDiOVAd8.js","_app/immutable/chunks/1mEchsPO.js","_app/immutable/chunks/B7X-vhXI.js","_app/immutable/chunks/gQJcRhou.js","_app/immutable/chunks/BLszSzTT.js","_app/immutable/chunks/CGMJxf7r.js","_app/immutable/chunks/BRkqKgVG.js","_app/immutable/chunks/pRcLbE0d.js"];
|
|
17
|
+
const stylesheets = ["_app/immutable/assets/markdown.Dc-OSJWY.css","_app/immutable/assets/Phone.FQEfwCX2.css","_app/immutable/assets/3.DHxQoulp.css"];
|
|
18
|
+
const fonts = [];
|
|
19
|
+
|
|
20
|
+
export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
|
|
21
|
+
//# sourceMappingURL=3-CHacdiCg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"3-CHacdiCg.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/activity/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/3.js"],"sourcesContent":["import { b as private_env } from \"../../../chunks/shared-server.js\";\nconst load = () => ({\n googleAiConfigured: Boolean(private_env.GOOGLE_AI_API_KEY?.trim())\n});\nexport {\n load\n};\n","import * as server from '../entries/pages/activity/_page.server.ts.js';\n\nexport const index = 3;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/activity/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/activity/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/3.CTqUQKSN.js\",\"_app/immutable/chunks/DVl0sebP.js\",\"_app/immutable/chunks/CJFjKwJ7.js\",\"_app/immutable/chunks/BfJ-f-Tu.js\",\"_app/immutable/chunks/CsgHjHGZ.js\",\"_app/immutable/chunks/EhLZwqfu.js\",\"_app/immutable/chunks/CNH2HlKj.js\",\"_app/immutable/chunks/DDiOVAd8.js\",\"_app/immutable/chunks/1mEchsPO.js\",\"_app/immutable/chunks/B7X-vhXI.js\",\"_app/immutable/chunks/gQJcRhou.js\",\"_app/immutable/chunks/BLszSzTT.js\",\"_app/immutable/chunks/CGMJxf7r.js\",\"_app/immutable/chunks/BRkqKgVG.js\",\"_app/immutable/chunks/pRcLbE0d.js\"];\nexport const stylesheets = [\"_app/immutable/assets/markdown.Dc-OSJWY.css\",\"_app/immutable/assets/Phone.FQEfwCX2.css\",\"_app/immutable/assets/3.DHxQoulp.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;AACA,MAAM,IAAI,GAAG,OAAO;AACpB,EAAE,kBAAkB,EAAE,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,IAAI,EAAE;AACnE,CAAC,CAAC;;;;;;;ACDU,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA2C,CAAC,EAAE;AAEzG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACxiB,MAAC,WAAW,GAAG,CAAC,6CAA6C,CAAC,0CAA0C,CAAC,sCAAsC;AAC/I,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { b as private_env } from './shared-server-DaWdgxVh.js';
|
|
2
|
+
import { g as getProviderAvailability } from './providers-DtstoHQ0.js';
|
|
3
|
+
|
|
4
|
+
const load = () => ({
|
|
5
|
+
activeProvider: private_env.NEUROLINK_PROVIDER ?? "",
|
|
6
|
+
aiProviders: getProviderAvailability(private_env)
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
var _page_server_ts = /*#__PURE__*/Object.freeze({
|
|
10
|
+
__proto__: null,
|
|
11
|
+
load: load
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
const index = 4;
|
|
15
|
+
let component_cache;
|
|
16
|
+
const component = async () => component_cache ??= (await import('./_page.svelte-Cmuco1mC.js')).default;
|
|
17
|
+
const server_id = "src/routes/config/+page.server.ts";
|
|
18
|
+
const imports = ["_app/immutable/nodes/4.B_pbOZoD.js","_app/immutable/chunks/DVl0sebP.js","_app/immutable/chunks/CJFjKwJ7.js","_app/immutable/chunks/BfJ-f-Tu.js","_app/immutable/chunks/CNH2HlKj.js","_app/immutable/chunks/DDiOVAd8.js","_app/immutable/chunks/1mEchsPO.js","_app/immutable/chunks/B7X-vhXI.js","_app/immutable/chunks/CsgHjHGZ.js","_app/immutable/chunks/gQJcRhou.js","_app/immutable/chunks/CmczWE_d.js","_app/immutable/chunks/pRcLbE0d.js"];
|
|
19
|
+
const stylesheets = ["_app/immutable/assets/markdown.Dc-OSJWY.css","_app/immutable/assets/Phone.FQEfwCX2.css","_app/immutable/assets/4.D5l1JxgO.css"];
|
|
20
|
+
const fonts = [];
|
|
21
|
+
|
|
22
|
+
export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
|
|
23
|
+
//# sourceMappingURL=4-0UE_6Ep-.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"4-0UE_6Ep-.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/config/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/4.js"],"sourcesContent":["import { b as private_env } from \"../../../chunks/shared-server.js\";\nimport { g as getProviderAvailability } from \"../../../chunks/providers.js\";\nconst load = () => ({\n activeProvider: private_env.NEUROLINK_PROVIDER ?? \"\",\n aiProviders: getProviderAvailability(private_env)\n});\nexport {\n load\n};\n","import * as server from '../entries/pages/config/_page.server.ts.js';\n\nexport const index = 4;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/config/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/config/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/4.B_pbOZoD.js\",\"_app/immutable/chunks/DVl0sebP.js\",\"_app/immutable/chunks/CJFjKwJ7.js\",\"_app/immutable/chunks/BfJ-f-Tu.js\",\"_app/immutable/chunks/CNH2HlKj.js\",\"_app/immutable/chunks/DDiOVAd8.js\",\"_app/immutable/chunks/1mEchsPO.js\",\"_app/immutable/chunks/B7X-vhXI.js\",\"_app/immutable/chunks/CsgHjHGZ.js\",\"_app/immutable/chunks/gQJcRhou.js\",\"_app/immutable/chunks/CmczWE_d.js\",\"_app/immutable/chunks/pRcLbE0d.js\"];\nexport const stylesheets = [\"_app/immutable/assets/markdown.Dc-OSJWY.css\",\"_app/immutable/assets/Phone.FQEfwCX2.css\",\"_app/immutable/assets/4.D5l1JxgO.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;;AAEA,MAAM,IAAI,GAAG,OAAO;AACpB,EAAE,cAAc,EAAE,WAAW,CAAC,kBAAkB,IAAI,EAAE;AACtD,EAAE,WAAW,EAAE,uBAAuB,CAAC,WAAW;AAClD,CAAC,CAAC;;;;;;;ACHU,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAyC,CAAC,EAAE;AAEvG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5b,MAAC,WAAW,GAAG,CAAC,6CAA6C,CAAC,0CAA0C,CAAC,sCAAsC;AAC/I,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { b as private_env } from './shared-server-DaWdgxVh.js';
|
|
2
|
+
|
|
3
|
+
const load = () => ({
|
|
4
|
+
// LiteLLM base URL and model name are safe to pass (not secrets)
|
|
5
|
+
litellmBaseUrl: private_env.LITELLM_BASE_URL ?? "",
|
|
6
|
+
litellmModel: private_env.LITELLM_MODEL ?? "open-large"
|
|
7
|
+
// All API keys stay server-side — injected by /api/neurolink-proxy
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
var _page_server_ts = /*#__PURE__*/Object.freeze({
|
|
11
|
+
__proto__: null,
|
|
12
|
+
load: load
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
const index = 5;
|
|
16
|
+
let component_cache;
|
|
17
|
+
const component = async () => component_cache ??= (await import('./_page.svelte-BZSdLKE_.js')).default;
|
|
18
|
+
const server_id = "src/routes/neurolink/+page.server.ts";
|
|
19
|
+
const imports = ["_app/immutable/nodes/5.CdLPNo5-.js","_app/immutable/chunks/DVl0sebP.js","_app/immutable/chunks/CJFjKwJ7.js","_app/immutable/chunks/BfJ-f-Tu.js","_app/immutable/chunks/CNH2HlKj.js","_app/immutable/chunks/DDiOVAd8.js","_app/immutable/chunks/1mEchsPO.js","_app/immutable/chunks/B7X-vhXI.js","_app/immutable/chunks/BRkqKgVG.js","_app/immutable/chunks/gQJcRhou.js","_app/immutable/chunks/pRcLbE0d.js"];
|
|
20
|
+
const stylesheets = ["_app/immutable/assets/markdown.Dc-OSJWY.css","_app/immutable/assets/Phone.FQEfwCX2.css","_app/immutable/assets/5.C5qz-NeI.css"];
|
|
21
|
+
const fonts = [];
|
|
22
|
+
|
|
23
|
+
export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
|
|
24
|
+
//# sourceMappingURL=5-BBIP1PzX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"5-BBIP1PzX.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/neurolink/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/5.js"],"sourcesContent":["import { b as private_env } from \"../../../chunks/shared-server.js\";\nconst load = () => ({\n // LiteLLM base URL and model name are safe to pass (not secrets)\n litellmBaseUrl: private_env.LITELLM_BASE_URL ?? \"\",\n litellmModel: private_env.LITELLM_MODEL ?? \"open-large\"\n // All API keys stay server-side — injected by /api/neurolink-proxy\n});\nexport {\n load\n};\n","import * as server from '../entries/pages/neurolink/_page.server.ts.js';\n\nexport const index = 5;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/neurolink/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/neurolink/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/5.CdLPNo5-.js\",\"_app/immutable/chunks/DVl0sebP.js\",\"_app/immutable/chunks/CJFjKwJ7.js\",\"_app/immutable/chunks/BfJ-f-Tu.js\",\"_app/immutable/chunks/CNH2HlKj.js\",\"_app/immutable/chunks/DDiOVAd8.js\",\"_app/immutable/chunks/1mEchsPO.js\",\"_app/immutable/chunks/B7X-vhXI.js\",\"_app/immutable/chunks/BRkqKgVG.js\",\"_app/immutable/chunks/gQJcRhou.js\",\"_app/immutable/chunks/pRcLbE0d.js\"];\nexport const stylesheets = [\"_app/immutable/assets/markdown.Dc-OSJWY.css\",\"_app/immutable/assets/Phone.FQEfwCX2.css\",\"_app/immutable/assets/5.C5qz-NeI.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;AACA,MAAM,IAAI,GAAG,OAAO;AACpB;AACA,EAAE,cAAc,EAAE,WAAW,CAAC,gBAAgB,IAAI,EAAE;AACpD,EAAE,YAAY,EAAE,WAAW,CAAC,aAAa,IAAI;AAC7C;AACA,CAAC,CAAC;;;;;;;ACJU,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA4C,CAAC,EAAE;AAE1G,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACxZ,MAAC,WAAW,GAAG,CAAC,6CAA6C,CAAC,0CAA0C,CAAC,sCAAsC;AAC/I,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const index = 6;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('./_page.svelte-fcX09N4d.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/6.BvjUfHnH.js","_app/immutable/chunks/DVl0sebP.js","_app/immutable/chunks/CJFjKwJ7.js","_app/immutable/chunks/BfJ-f-Tu.js","_app/immutable/chunks/CNH2HlKj.js","_app/immutable/chunks/DDiOVAd8.js","_app/immutable/chunks/1mEchsPO.js","_app/immutable/chunks/B7X-vhXI.js","_app/immutable/chunks/CsgHjHGZ.js","_app/immutable/chunks/EhLZwqfu.js","_app/immutable/chunks/y_g-KC7l.js","_app/immutable/chunks/CtrCjGZT.js","_app/immutable/chunks/gQJcRhou.js","_app/immutable/chunks/CaiJSUi3.js","_app/immutable/chunks/CmczWE_d.js","_app/immutable/chunks/BLszSzTT.js"];
|
|
5
|
+
const stylesheets = ["_app/immutable/assets/markdown.Dc-OSJWY.css","_app/immutable/assets/Phone.FQEfwCX2.css","_app/immutable/assets/6.BFUut--w.css"];
|
|
6
|
+
const fonts = [];
|
|
7
|
+
|
|
8
|
+
export { component, fonts, imports, index, stylesheets };
|
|
9
|
+
//# sourceMappingURL=6-CWLNQu6F.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"6-CWLNQu6F.js","sources":["../../../.svelte-kit/adapter-node/nodes/6.js"],"sourcesContent":["\n\nexport const index = 6;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/project/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/6.BvjUfHnH.js\",\"_app/immutable/chunks/DVl0sebP.js\",\"_app/immutable/chunks/CJFjKwJ7.js\",\"_app/immutable/chunks/BfJ-f-Tu.js\",\"_app/immutable/chunks/CNH2HlKj.js\",\"_app/immutable/chunks/DDiOVAd8.js\",\"_app/immutable/chunks/1mEchsPO.js\",\"_app/immutable/chunks/B7X-vhXI.js\",\"_app/immutable/chunks/CsgHjHGZ.js\",\"_app/immutable/chunks/EhLZwqfu.js\",\"_app/immutable/chunks/y_g-KC7l.js\",\"_app/immutable/chunks/CtrCjGZT.js\",\"_app/immutable/chunks/gQJcRhou.js\",\"_app/immutable/chunks/CaiJSUi3.js\",\"_app/immutable/chunks/CmczWE_d.js\",\"_app/immutable/chunks/BLszSzTT.js\"];\nexport const stylesheets = [\"_app/immutable/assets/markdown.Dc-OSJWY.css\",\"_app/immutable/assets/Phone.FQEfwCX2.css\",\"_app/immutable/assets/6.BFUut--w.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA0C,CAAC,EAAE;AACxG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5kB,MAAC,WAAW,GAAG,CAAC,6CAA6C,CAAC,0CAA0C,CAAC,sCAAsC;AAC/I,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const index = 7;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('./_page.svelte-CpL3R-VI.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/7.5K7Od8ba.js","_app/immutable/chunks/DVl0sebP.js","_app/immutable/chunks/CJFjKwJ7.js","_app/immutable/chunks/BfJ-f-Tu.js","_app/immutable/chunks/CsgHjHGZ.js","_app/immutable/chunks/CNH2HlKj.js","_app/immutable/chunks/DDiOVAd8.js","_app/immutable/chunks/1mEchsPO.js","_app/immutable/chunks/B7X-vhXI.js","_app/immutable/chunks/y_g-KC7l.js","_app/immutable/chunks/EhLZwqfu.js","_app/immutable/chunks/CtrCjGZT.js","_app/immutable/chunks/CVtJ6yRM.js","_app/immutable/chunks/CGMJxf7r.js"];
|
|
5
|
+
const stylesheets = ["_app/immutable/assets/markdown.Dc-OSJWY.css","_app/immutable/assets/Phone.FQEfwCX2.css","_app/immutable/assets/ChatView.CwWbzIL-.css","_app/immutable/assets/7.BTOx7yt7.css"];
|
|
6
|
+
const fonts = [];
|
|
7
|
+
|
|
8
|
+
export { component, fonts, imports, index, stylesheets };
|
|
9
|
+
//# sourceMappingURL=7-DmQ3B8uy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"7-DmQ3B8uy.js","sources":["../../../.svelte-kit/adapter-node/nodes/7.js"],"sourcesContent":["\n\nexport const index = 7;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/session/_id_/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/7.5K7Od8ba.js\",\"_app/immutable/chunks/DVl0sebP.js\",\"_app/immutable/chunks/CJFjKwJ7.js\",\"_app/immutable/chunks/BfJ-f-Tu.js\",\"_app/immutable/chunks/CsgHjHGZ.js\",\"_app/immutable/chunks/CNH2HlKj.js\",\"_app/immutable/chunks/DDiOVAd8.js\",\"_app/immutable/chunks/1mEchsPO.js\",\"_app/immutable/chunks/B7X-vhXI.js\",\"_app/immutable/chunks/y_g-KC7l.js\",\"_app/immutable/chunks/EhLZwqfu.js\",\"_app/immutable/chunks/CtrCjGZT.js\",\"_app/immutable/chunks/CVtJ6yRM.js\",\"_app/immutable/chunks/CGMJxf7r.js\"];\nexport const stylesheets = [\"_app/immutable/assets/markdown.Dc-OSJWY.css\",\"_app/immutable/assets/Phone.FQEfwCX2.css\",\"_app/immutable/assets/ChatView.CwWbzIL-.css\",\"_app/immutable/assets/7.BTOx7yt7.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA+C,CAAC,EAAE;AAC7G,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpgB,MAAC,WAAW,GAAG,CAAC,6CAA6C,CAAC,0CAA0C,CAAC,6CAA6C,CAAC,sCAAsC;AAC7L,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const index = 8;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('./_page.svelte-Co5sF7W-.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/8.Bs1DrW0_.js","_app/immutable/chunks/DVl0sebP.js","_app/immutable/chunks/CJFjKwJ7.js","_app/immutable/chunks/BfJ-f-Tu.js","_app/immutable/chunks/CNH2HlKj.js","_app/immutable/chunks/DDiOVAd8.js","_app/immutable/chunks/1mEchsPO.js","_app/immutable/chunks/B7X-vhXI.js","_app/immutable/chunks/CsgHjHGZ.js","_app/immutable/chunks/EhLZwqfu.js","_app/immutable/chunks/CtrCjGZT.js","_app/immutable/chunks/gQJcRhou.js","_app/immutable/chunks/CaiJSUi3.js","_app/immutable/chunks/CmczWE_d.js","_app/immutable/chunks/BLszSzTT.js"];
|
|
5
|
+
const stylesheets = ["_app/immutable/assets/markdown.Dc-OSJWY.css","_app/immutable/assets/Phone.FQEfwCX2.css","_app/immutable/assets/8.eZGZN-BF.css"];
|
|
6
|
+
const fonts = [];
|
|
7
|
+
|
|
8
|
+
export { component, fonts, imports, index, stylesheets };
|
|
9
|
+
//# sourceMappingURL=8-CnFVjQtZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"8-CnFVjQtZ.js","sources":["../../../.svelte-kit/adapter-node/nodes/8.js"],"sourcesContent":["\n\nexport const index = 8;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/terminals/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/8.Bs1DrW0_.js\",\"_app/immutable/chunks/DVl0sebP.js\",\"_app/immutable/chunks/CJFjKwJ7.js\",\"_app/immutable/chunks/BfJ-f-Tu.js\",\"_app/immutable/chunks/CNH2HlKj.js\",\"_app/immutable/chunks/DDiOVAd8.js\",\"_app/immutable/chunks/1mEchsPO.js\",\"_app/immutable/chunks/B7X-vhXI.js\",\"_app/immutable/chunks/CsgHjHGZ.js\",\"_app/immutable/chunks/EhLZwqfu.js\",\"_app/immutable/chunks/CtrCjGZT.js\",\"_app/immutable/chunks/gQJcRhou.js\",\"_app/immutable/chunks/CaiJSUi3.js\",\"_app/immutable/chunks/CmczWE_d.js\",\"_app/immutable/chunks/BLszSzTT.js\"];\nexport const stylesheets = [\"_app/immutable/assets/markdown.Dc-OSJWY.css\",\"_app/immutable/assets/Phone.FQEfwCX2.css\",\"_app/immutable/assets/8.eZGZN-BF.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA4C,CAAC,EAAE;AAC1G,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACxiB,MAAC,WAAW,GAAG,CAAC,6CAA6C,CAAC,0CAA0C,CAAC,sCAAsC;AAC/I,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const index = 9;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('./_page.svelte-Y9-O5a5w.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/9.1fMlGdqv.js","_app/immutable/chunks/PPVm8Dsz.js","_app/immutable/chunks/DVl0sebP.js","_app/immutable/chunks/CJFjKwJ7.js","_app/immutable/chunks/BfJ-f-Tu.js","_app/immutable/chunks/CsgHjHGZ.js","_app/immutable/chunks/CNH2HlKj.js","_app/immutable/chunks/DDiOVAd8.js","_app/immutable/chunks/1mEchsPO.js","_app/immutable/chunks/B7X-vhXI.js","_app/immutable/chunks/EhLZwqfu.js","_app/immutable/chunks/CqfYvnci.js","_app/immutable/chunks/CaiJSUi3.js","_app/immutable/chunks/CmczWE_d.js","_app/immutable/chunks/CVtJ6yRM.js","_app/immutable/chunks/CGMJxf7r.js"];
|
|
5
|
+
const stylesheets = ["_app/immutable/assets/markdown.Dc-OSJWY.css","_app/immutable/assets/Phone.FQEfwCX2.css","_app/immutable/assets/ChatView.CwWbzIL-.css","_app/immutable/assets/9.DwS5ZHBh.css"];
|
|
6
|
+
const fonts = [];
|
|
7
|
+
|
|
8
|
+
export { component, fonts, imports, index, stylesheets };
|
|
9
|
+
//# sourceMappingURL=9-Dw7-P6aF.js.map
|