@juspay/shooter 1.5.0 → 1.6.1
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/README.md +24 -20
- package/bin/shooter.cjs +68 -17
- 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/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/{CiF38mQq.js → Dc_Gg2H6.js} +1 -1
- package/build/client/_app/immutable/chunks/Dc_Gg2H6.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dc_Gg2H6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CRbaG9cv.js → DlnAjkg1.js} +1 -1
- package/build/client/_app/immutable/chunks/DlnAjkg1.js.br +0 -0
- package/build/client/_app/immutable/chunks/{CRbaG9cv.js.gz → DlnAjkg1.js.gz} +0 -0
- package/build/client/_app/immutable/chunks/YKoRJzXZ.js +3 -0
- package/build/client/_app/immutable/chunks/YKoRJzXZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/YKoRJzXZ.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/entry/app.CFPgQOa8.js +2 -0
- package/build/client/_app/immutable/entry/app.CFPgQOa8.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CFPgQOa8.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.BnJOVqhI.js +1 -0
- package/build/client/_app/immutable/entry/start.BnJOVqhI.js.br +2 -0
- package/build/client/_app/immutable/entry/start.BnJOVqhI.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.DR-BBF5r.js +1 -0
- package/build/client/_app/immutable/nodes/0.DR-BBF5r.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.DR-BBF5r.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.CNm6rAwf.js +1 -0
- package/build/client/_app/immutable/nodes/1.CNm6rAwf.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.CNm6rAwf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.B08usYzr.js +13 -0
- package/build/client/_app/immutable/nodes/2.B08usYzr.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.B08usYzr.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.CsY6J5HS.js +9 -0
- package/build/client/_app/immutable/nodes/3.CsY6J5HS.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CsY6J5HS.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.CbQQ3FtZ.js +1 -0
- package/build/client/_app/immutable/nodes/6.CbQQ3FtZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.CbQQ3FtZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.DIkXVP4q.js → 7.CCKgiNNk.js} +3 -3
- package/build/client/_app/immutable/nodes/7.CCKgiNNk.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.CCKgiNNk.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.C7AaheUD.js +2 -0
- package/build/client/_app/immutable/nodes/8.C7AaheUD.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.C7AaheUD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.DfL9kMC4.js +2 -0
- package/build/client/_app/immutable/nodes/9.DfL9kMC4.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.DfL9kMC4.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-DC2VLooL.js +23 -0
- package/build/server/chunks/0-DC2VLooL.js.map +1 -0
- package/build/server/chunks/1-XJaf8Jvf.js +9 -0
- package/build/server/chunks/{1-D0N7vVhH.js.map → 1-XJaf8Jvf.js.map} +1 -1
- package/build/server/chunks/2-D4Cx-1QL.js +21 -0
- package/build/server/chunks/2-D4Cx-1QL.js.map +1 -0
- package/build/server/chunks/3-CVhIEP-u.js +21 -0
- package/build/server/chunks/3-CVhIEP-u.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-QFSbzRMP.js +9 -0
- package/build/server/chunks/6-QFSbzRMP.js.map +1 -0
- package/build/server/chunks/7-CZ_YGjMV.js +9 -0
- package/build/server/chunks/7-CZ_YGjMV.js.map +1 -0
- package/build/server/chunks/8-Xe2Rugb4.js +9 -0
- package/build/server/chunks/8-Xe2Rugb4.js.map +1 -0
- package/build/server/chunks/9-IwHpC4SO.js +9 -0
- package/build/server/chunks/9-IwHpC4SO.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-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-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/{_server.ts-Deok2y88.js → _server.ts-Ds_SUGC3.js} +184 -90
- package/build/server/chunks/_server.ts-Ds_SUGC3.js.map +1 -0
- package/build/server/chunks/{_server.ts-Ch-6iOHp.js → _server.ts-G8OeADGj.js} +141 -89
- package/build/server/chunks/_server.ts-G8OeADGj.js.map +1 -0
- 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 +24 -6
- package/scripts/dev.mjs +361 -0
- package/scripts/install.sh +11 -3
- package/scripts/{fix-generated-types.sh → postgen-types.sh} +2 -2
- package/scripts/setup.cjs +219 -24
- 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 +144 -76
- 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 +190 -87
- 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/BIaXC2t9.js +0 -1
- package/build/client/_app/immutable/chunks/BIaXC2t9.js.br +0 -0
- package/build/client/_app/immutable/chunks/BIaXC2t9.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/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/CRbaG9cv.js.br +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/CiF38mQq.js.br +0 -0
- package/build/client/_app/immutable/chunks/CiF38mQq.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.CU7KVZja.js +0 -2
- package/build/client/_app/immutable/entry/app.CU7KVZja.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CU7KVZja.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.RAMZY19t.js +0 -1
- package/build/client/_app/immutable/entry/start.RAMZY19t.js.br +0 -2
- package/build/client/_app/immutable/entry/start.RAMZY19t.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.Bi3XYMSu.js +0 -1
- package/build/client/_app/immutable/nodes/0.Bi3XYMSu.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.Bi3XYMSu.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.DTmfBFmm.js +0 -1
- package/build/client/_app/immutable/nodes/1.DTmfBFmm.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.DTmfBFmm.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.Cm269yzt.js +0 -1
- package/build/client/_app/immutable/nodes/2.Cm269yzt.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.Cm269yzt.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.C25c5hMg.js +0 -1
- package/build/client/_app/immutable/nodes/4.C25c5hMg.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.C25c5hMg.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.DIkXVP4q.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.DIkXVP4q.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.BPL-HzUX.js +0 -2
- package/build/client/_app/immutable/nodes/6.BPL-HzUX.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.BPL-HzUX.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.IgEqce53.js +0 -2
- package/build/client/_app/immutable/nodes/7.IgEqce53.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.IgEqce53.js.gz +0 -0
- package/build/server/chunks/0-DiORznXb.js +0 -9
- package/build/server/chunks/0-DiORznXb.js.map +0 -1
- package/build/server/chunks/1-D0N7vVhH.js +0 -9
- package/build/server/chunks/2-DfSav7a7.js +0 -9
- package/build/server/chunks/2-DfSav7a7.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-DV5MZUz_.js +0 -9
- package/build/server/chunks/4-DV5MZUz_.js.map +0 -1
- package/build/server/chunks/5-DJhoAjb0.js +0 -9
- package/build/server/chunks/5-DJhoAjb0.js.map +0 -1
- package/build/server/chunks/6-Cp8CzYbr.js +0 -9
- package/build/server/chunks/6-Cp8CzYbr.js.map +0 -1
- package/build/server/chunks/7-BA4xzUj3.js +0 -9
- package/build/server/chunks/7-BA4xzUj3.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
|
@@ -1845,13 +1845,265 @@ export function decodeEventSessionEnded(rawInput: unknown): EventSessionEnded |
|
|
|
1845
1845
|
return null;
|
|
1846
1846
|
}
|
|
1847
1847
|
|
|
1848
|
+
/**
|
|
1849
|
+
* @type { EventToolStarted }
|
|
1850
|
+
* @description A tool execution has started
|
|
1851
|
+
*/
|
|
1852
|
+
export type EventToolStarted = {
|
|
1853
|
+
/**
|
|
1854
|
+
* @type { string }
|
|
1855
|
+
* @memberof EventToolStarted
|
|
1856
|
+
*/
|
|
1857
|
+
type: string;
|
|
1858
|
+
/**
|
|
1859
|
+
* @description Name of the tool being executed
|
|
1860
|
+
* @type { string }
|
|
1861
|
+
* @memberof EventToolStarted
|
|
1862
|
+
*/
|
|
1863
|
+
tool: string;
|
|
1864
|
+
/**
|
|
1865
|
+
* @description Command being executed (for Bash tool)
|
|
1866
|
+
* @type { string }
|
|
1867
|
+
* @memberof EventToolStarted
|
|
1868
|
+
*/
|
|
1869
|
+
command: string | null;
|
|
1870
|
+
/**
|
|
1871
|
+
* @description File path being operated on
|
|
1872
|
+
* @type { string }
|
|
1873
|
+
* @memberof EventToolStarted
|
|
1874
|
+
*/
|
|
1875
|
+
filePath: string | null;
|
|
1876
|
+
/**
|
|
1877
|
+
* @description Associated terminal identifier
|
|
1878
|
+
* @type { string }
|
|
1879
|
+
* @memberof EventToolStarted
|
|
1880
|
+
*/
|
|
1881
|
+
terminalId: string | null;
|
|
1882
|
+
};
|
|
1883
|
+
|
|
1884
|
+
export function decodeEventToolStarted(rawInput: unknown): EventToolStarted | null {
|
|
1885
|
+
if (isJSON(rawInput)) {
|
|
1886
|
+
const decodedType = decodeString(rawInput['type']);
|
|
1887
|
+
const decodedTool = decodeString(rawInput['tool']);
|
|
1888
|
+
const decodedCommand = decodeString(rawInput['command']);
|
|
1889
|
+
const decodedFilePath = decodeString(rawInput['filePath']);
|
|
1890
|
+
const decodedTerminalId = decodeString(rawInput['terminalId']);
|
|
1891
|
+
|
|
1892
|
+
if (decodedType === null || decodedTool === null) {
|
|
1893
|
+
return null;
|
|
1894
|
+
}
|
|
1895
|
+
|
|
1896
|
+
return {
|
|
1897
|
+
type: decodedType,
|
|
1898
|
+
tool: decodedTool,
|
|
1899
|
+
command: decodedCommand,
|
|
1900
|
+
filePath: decodedFilePath,
|
|
1901
|
+
terminalId: decodedTerminalId,
|
|
1902
|
+
};
|
|
1903
|
+
}
|
|
1904
|
+
return null;
|
|
1905
|
+
}
|
|
1906
|
+
|
|
1907
|
+
/**
|
|
1908
|
+
* @type { EventToolCompleted }
|
|
1909
|
+
* @description A tool execution has completed
|
|
1910
|
+
*/
|
|
1911
|
+
export type EventToolCompleted = {
|
|
1912
|
+
/**
|
|
1913
|
+
* @type { string }
|
|
1914
|
+
* @memberof EventToolCompleted
|
|
1915
|
+
*/
|
|
1916
|
+
type: string;
|
|
1917
|
+
/**
|
|
1918
|
+
* @description Name of the tool that completed
|
|
1919
|
+
* @type { string }
|
|
1920
|
+
* @memberof EventToolCompleted
|
|
1921
|
+
*/
|
|
1922
|
+
tool: string;
|
|
1923
|
+
/**
|
|
1924
|
+
* @description Whether the tool execution succeeded
|
|
1925
|
+
* @type { boolean }
|
|
1926
|
+
* @memberof EventToolCompleted
|
|
1927
|
+
*/
|
|
1928
|
+
success: boolean;
|
|
1929
|
+
/**
|
|
1930
|
+
* @description Associated terminal identifier
|
|
1931
|
+
* @type { string }
|
|
1932
|
+
* @memberof EventToolCompleted
|
|
1933
|
+
*/
|
|
1934
|
+
terminalId: string | null;
|
|
1935
|
+
};
|
|
1936
|
+
|
|
1937
|
+
export function decodeEventToolCompleted(rawInput: unknown): EventToolCompleted | null {
|
|
1938
|
+
if (isJSON(rawInput)) {
|
|
1939
|
+
const decodedType = decodeString(rawInput['type']);
|
|
1940
|
+
const decodedTool = decodeString(rawInput['tool']);
|
|
1941
|
+
const decodedSuccess = decodeBoolean(rawInput['success']);
|
|
1942
|
+
const decodedTerminalId = decodeString(rawInput['terminalId']);
|
|
1943
|
+
|
|
1944
|
+
if (decodedType === null || decodedTool === null || decodedSuccess === null) {
|
|
1945
|
+
return null;
|
|
1946
|
+
}
|
|
1947
|
+
|
|
1948
|
+
return {
|
|
1949
|
+
type: decodedType,
|
|
1950
|
+
tool: decodedTool,
|
|
1951
|
+
success: decodedSuccess,
|
|
1952
|
+
terminalId: decodedTerminalId,
|
|
1953
|
+
};
|
|
1954
|
+
}
|
|
1955
|
+
return null;
|
|
1956
|
+
}
|
|
1957
|
+
|
|
1958
|
+
/**
|
|
1959
|
+
* @type { EventToolFailed }
|
|
1960
|
+
* @description A tool execution has failed
|
|
1961
|
+
*/
|
|
1962
|
+
export type EventToolFailed = {
|
|
1963
|
+
/**
|
|
1964
|
+
* @type { string }
|
|
1965
|
+
* @memberof EventToolFailed
|
|
1966
|
+
*/
|
|
1967
|
+
type: string;
|
|
1968
|
+
/**
|
|
1969
|
+
* @description Name of the tool that failed
|
|
1970
|
+
* @type { string }
|
|
1971
|
+
* @memberof EventToolFailed
|
|
1972
|
+
*/
|
|
1973
|
+
tool: string;
|
|
1974
|
+
/**
|
|
1975
|
+
* @description Error message
|
|
1976
|
+
* @type { string }
|
|
1977
|
+
* @memberof EventToolFailed
|
|
1978
|
+
*/
|
|
1979
|
+
error: string;
|
|
1980
|
+
/**
|
|
1981
|
+
* @description Associated terminal identifier
|
|
1982
|
+
* @type { string }
|
|
1983
|
+
* @memberof EventToolFailed
|
|
1984
|
+
*/
|
|
1985
|
+
terminalId: string | null;
|
|
1986
|
+
};
|
|
1987
|
+
|
|
1988
|
+
export function decodeEventToolFailed(rawInput: unknown): EventToolFailed | null {
|
|
1989
|
+
if (isJSON(rawInput)) {
|
|
1990
|
+
const decodedType = decodeString(rawInput['type']);
|
|
1991
|
+
const decodedTool = decodeString(rawInput['tool']);
|
|
1992
|
+
const decodedError = decodeString(rawInput['error']);
|
|
1993
|
+
const decodedTerminalId = decodeString(rawInput['terminalId']);
|
|
1994
|
+
|
|
1995
|
+
if (decodedType === null || decodedTool === null || decodedError === null) {
|
|
1996
|
+
return null;
|
|
1997
|
+
}
|
|
1998
|
+
|
|
1999
|
+
return {
|
|
2000
|
+
type: decodedType,
|
|
2001
|
+
tool: decodedTool,
|
|
2002
|
+
error: decodedError,
|
|
2003
|
+
terminalId: decodedTerminalId,
|
|
2004
|
+
};
|
|
2005
|
+
}
|
|
2006
|
+
return null;
|
|
2007
|
+
}
|
|
2008
|
+
|
|
2009
|
+
/**
|
|
2010
|
+
* @type { EventAgentIdle }
|
|
2011
|
+
* @description The AI agent is idle and waiting
|
|
2012
|
+
*/
|
|
2013
|
+
export type EventAgentIdle = {
|
|
2014
|
+
/**
|
|
2015
|
+
* @type { string }
|
|
2016
|
+
* @memberof EventAgentIdle
|
|
2017
|
+
*/
|
|
2018
|
+
type: string;
|
|
2019
|
+
/**
|
|
2020
|
+
* @description Optional idle message
|
|
2021
|
+
* @type { string }
|
|
2022
|
+
* @memberof EventAgentIdle
|
|
2023
|
+
*/
|
|
2024
|
+
message: string | null;
|
|
2025
|
+
/**
|
|
2026
|
+
* @description Associated terminal identifier
|
|
2027
|
+
* @type { string }
|
|
2028
|
+
* @memberof EventAgentIdle
|
|
2029
|
+
*/
|
|
2030
|
+
terminalId: string | null;
|
|
2031
|
+
};
|
|
2032
|
+
|
|
2033
|
+
export function decodeEventAgentIdle(rawInput: unknown): EventAgentIdle | null {
|
|
2034
|
+
if (isJSON(rawInput)) {
|
|
2035
|
+
const decodedType = decodeString(rawInput['type']);
|
|
2036
|
+
const decodedMessage = decodeString(rawInput['message']);
|
|
2037
|
+
const decodedTerminalId = decodeString(rawInput['terminalId']);
|
|
2038
|
+
|
|
2039
|
+
if (decodedType === null) {
|
|
2040
|
+
return null;
|
|
2041
|
+
}
|
|
2042
|
+
|
|
2043
|
+
return {
|
|
2044
|
+
type: decodedType,
|
|
2045
|
+
message: decodedMessage,
|
|
2046
|
+
terminalId: decodedTerminalId,
|
|
2047
|
+
};
|
|
2048
|
+
}
|
|
2049
|
+
return null;
|
|
2050
|
+
}
|
|
2051
|
+
|
|
2052
|
+
/**
|
|
2053
|
+
* @type { EventAgentQuestion }
|
|
2054
|
+
* @description The AI agent has a question for the user
|
|
2055
|
+
*/
|
|
2056
|
+
export type EventAgentQuestion = {
|
|
2057
|
+
/**
|
|
2058
|
+
* @type { string }
|
|
2059
|
+
* @memberof EventAgentQuestion
|
|
2060
|
+
*/
|
|
2061
|
+
type: string;
|
|
2062
|
+
/**
|
|
2063
|
+
* @description The question being asked
|
|
2064
|
+
* @type { string }
|
|
2065
|
+
* @memberof EventAgentQuestion
|
|
2066
|
+
*/
|
|
2067
|
+
message: string;
|
|
2068
|
+
/**
|
|
2069
|
+
* @description Associated terminal identifier
|
|
2070
|
+
* @type { string }
|
|
2071
|
+
* @memberof EventAgentQuestion
|
|
2072
|
+
*/
|
|
2073
|
+
terminalId: string | null;
|
|
2074
|
+
};
|
|
2075
|
+
|
|
2076
|
+
export function decodeEventAgentQuestion(rawInput: unknown): EventAgentQuestion | null {
|
|
2077
|
+
if (isJSON(rawInput)) {
|
|
2078
|
+
const decodedType = decodeString(rawInput['type']);
|
|
2079
|
+
const decodedMessage = decodeString(rawInput['message']);
|
|
2080
|
+
const decodedTerminalId = decodeString(rawInput['terminalId']);
|
|
2081
|
+
|
|
2082
|
+
if (decodedType === null || decodedMessage === null) {
|
|
2083
|
+
return null;
|
|
2084
|
+
}
|
|
2085
|
+
|
|
2086
|
+
return {
|
|
2087
|
+
type: decodedType,
|
|
2088
|
+
message: decodedMessage,
|
|
2089
|
+
terminalId: decodedTerminalId,
|
|
2090
|
+
};
|
|
2091
|
+
}
|
|
2092
|
+
return null;
|
|
2093
|
+
}
|
|
2094
|
+
|
|
1848
2095
|
export type ShooterEvent =
|
|
1849
2096
|
| CShooterEventEventTerminalCreated
|
|
1850
2097
|
| CShooterEventEventTerminalExited
|
|
1851
2098
|
| CShooterEventEventPermissionRequested
|
|
1852
2099
|
| CShooterEventEventPermissionResolved
|
|
1853
2100
|
| CShooterEventEventSessionStarted
|
|
1854
|
-
| CShooterEventEventSessionEnded
|
|
2101
|
+
| CShooterEventEventSessionEnded
|
|
2102
|
+
| CShooterEventEventToolStarted
|
|
2103
|
+
| CShooterEventEventToolCompleted
|
|
2104
|
+
| CShooterEventEventToolFailed
|
|
2105
|
+
| CShooterEventEventAgentIdle
|
|
2106
|
+
| CShooterEventEventAgentQuestion;
|
|
1855
2107
|
|
|
1856
2108
|
export function decodeShooterEvent(rawInput: unknown): ShooterEvent | null {
|
|
1857
2109
|
const result: ShooterEvent | null =
|
|
@@ -1860,7 +2112,12 @@ export function decodeShooterEvent(rawInput: unknown): ShooterEvent | null {
|
|
|
1860
2112
|
decodeCShooterEventEventPermissionRequested(rawInput) ??
|
|
1861
2113
|
decodeCShooterEventEventPermissionResolved(rawInput) ??
|
|
1862
2114
|
decodeCShooterEventEventSessionStarted(rawInput) ??
|
|
1863
|
-
decodeCShooterEventEventSessionEnded(rawInput)
|
|
2115
|
+
decodeCShooterEventEventSessionEnded(rawInput) ??
|
|
2116
|
+
decodeCShooterEventEventToolStarted(rawInput) ??
|
|
2117
|
+
decodeCShooterEventEventToolCompleted(rawInput) ??
|
|
2118
|
+
decodeCShooterEventEventToolFailed(rawInput) ??
|
|
2119
|
+
decodeCShooterEventEventAgentIdle(rawInput) ??
|
|
2120
|
+
decodeCShooterEventEventAgentQuestion(rawInput);
|
|
1864
2121
|
|
|
1865
2122
|
return result;
|
|
1866
2123
|
}
|
|
@@ -1967,6 +2224,91 @@ export function decodeCShooterEventEventSessionEnded(
|
|
|
1967
2224
|
return new CShooterEventEventSessionEnded(result);
|
|
1968
2225
|
}
|
|
1969
2226
|
|
|
2227
|
+
export class CShooterEventEventToolStarted {
|
|
2228
|
+
data: EventToolStarted;
|
|
2229
|
+
constructor(data: EventToolStarted) {
|
|
2230
|
+
this.data = data;
|
|
2231
|
+
}
|
|
2232
|
+
}
|
|
2233
|
+
|
|
2234
|
+
export function decodeCShooterEventEventToolStarted(
|
|
2235
|
+
rawInput: unknown
|
|
2236
|
+
): CShooterEventEventToolStarted | null {
|
|
2237
|
+
const result = decodeEventToolStarted(rawInput);
|
|
2238
|
+
if (result === null) {
|
|
2239
|
+
return null;
|
|
2240
|
+
}
|
|
2241
|
+
return new CShooterEventEventToolStarted(result);
|
|
2242
|
+
}
|
|
2243
|
+
|
|
2244
|
+
export class CShooterEventEventToolCompleted {
|
|
2245
|
+
data: EventToolCompleted;
|
|
2246
|
+
constructor(data: EventToolCompleted) {
|
|
2247
|
+
this.data = data;
|
|
2248
|
+
}
|
|
2249
|
+
}
|
|
2250
|
+
|
|
2251
|
+
export function decodeCShooterEventEventToolCompleted(
|
|
2252
|
+
rawInput: unknown
|
|
2253
|
+
): CShooterEventEventToolCompleted | null {
|
|
2254
|
+
const result = decodeEventToolCompleted(rawInput);
|
|
2255
|
+
if (result === null) {
|
|
2256
|
+
return null;
|
|
2257
|
+
}
|
|
2258
|
+
return new CShooterEventEventToolCompleted(result);
|
|
2259
|
+
}
|
|
2260
|
+
|
|
2261
|
+
export class CShooterEventEventToolFailed {
|
|
2262
|
+
data: EventToolFailed;
|
|
2263
|
+
constructor(data: EventToolFailed) {
|
|
2264
|
+
this.data = data;
|
|
2265
|
+
}
|
|
2266
|
+
}
|
|
2267
|
+
|
|
2268
|
+
export function decodeCShooterEventEventToolFailed(
|
|
2269
|
+
rawInput: unknown
|
|
2270
|
+
): CShooterEventEventToolFailed | null {
|
|
2271
|
+
const result = decodeEventToolFailed(rawInput);
|
|
2272
|
+
if (result === null) {
|
|
2273
|
+
return null;
|
|
2274
|
+
}
|
|
2275
|
+
return new CShooterEventEventToolFailed(result);
|
|
2276
|
+
}
|
|
2277
|
+
|
|
2278
|
+
export class CShooterEventEventAgentIdle {
|
|
2279
|
+
data: EventAgentIdle;
|
|
2280
|
+
constructor(data: EventAgentIdle) {
|
|
2281
|
+
this.data = data;
|
|
2282
|
+
}
|
|
2283
|
+
}
|
|
2284
|
+
|
|
2285
|
+
export function decodeCShooterEventEventAgentIdle(
|
|
2286
|
+
rawInput: unknown
|
|
2287
|
+
): CShooterEventEventAgentIdle | null {
|
|
2288
|
+
const result = decodeEventAgentIdle(rawInput);
|
|
2289
|
+
if (result === null) {
|
|
2290
|
+
return null;
|
|
2291
|
+
}
|
|
2292
|
+
return new CShooterEventEventAgentIdle(result);
|
|
2293
|
+
}
|
|
2294
|
+
|
|
2295
|
+
export class CShooterEventEventAgentQuestion {
|
|
2296
|
+
data: EventAgentQuestion;
|
|
2297
|
+
constructor(data: EventAgentQuestion) {
|
|
2298
|
+
this.data = data;
|
|
2299
|
+
}
|
|
2300
|
+
}
|
|
2301
|
+
|
|
2302
|
+
export function decodeCShooterEventEventAgentQuestion(
|
|
2303
|
+
rawInput: unknown
|
|
2304
|
+
): CShooterEventEventAgentQuestion | null {
|
|
2305
|
+
const result = decodeEventAgentQuestion(rawInput);
|
|
2306
|
+
if (result === null) {
|
|
2307
|
+
return null;
|
|
2308
|
+
}
|
|
2309
|
+
return new CShooterEventEventAgentQuestion(result);
|
|
2310
|
+
}
|
|
2311
|
+
|
|
1970
2312
|
/**
|
|
1971
2313
|
* @type { Ticket }
|
|
1972
2314
|
* @description Short-lived single-use ticket for authenticating WebSocket upgrade requests
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Type barrel — the ONLY import source for types in this project.
|
|
2
|
+
// All source files must use: import type { Foo } from '$lib/types';
|
|
3
|
+
|
|
4
|
+
export type * from './activity';
|
|
5
|
+
export type * from './apn';
|
|
6
|
+
export type * from './cli';
|
|
7
|
+
export type * from './common';
|
|
8
|
+
export type * from './dashboard';
|
|
9
|
+
export * from './generated';
|
|
10
|
+
export type * from './neurolink';
|
|
11
|
+
export type * from './server';
|
|
12
|
+
|
|
13
|
+
export type * from './sessions';
|
|
14
|
+
// Explicit re-exports to resolve conflicts between generated types and the
|
|
15
|
+
// hand-written sessions.ts versions. The generated Sessions module exports
|
|
16
|
+
// wrapper-class variants (CMessagePartTextPart, etc.) with `type: string`
|
|
17
|
+
// instead of string-literal discriminated unions. The sessions.ts versions
|
|
18
|
+
// are the ones callers actually need.
|
|
19
|
+
export type {
|
|
20
|
+
ConversationMessage,
|
|
21
|
+
MessagePart,
|
|
22
|
+
TextPart,
|
|
23
|
+
ThinkingPart,
|
|
24
|
+
ToolResultPart,
|
|
25
|
+
ToolUsePart,
|
|
26
|
+
} from './sessions';
|
|
27
|
+
export type * from './terminal-client';
|
|
28
|
+
export type * from './ws';
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
// Server module types — extracted from terminal/ module files.
|
|
2
|
+
// All terminal server-side type/interface definitions live here.
|
|
3
|
+
//
|
|
4
|
+
// Names are prefixed to avoid collisions with generated types in the
|
|
5
|
+
// barrel (e.g. generated/Holder.ts exports IncomingMessage, OutgoingMessage,
|
|
6
|
+
// WatchedFile; generated/OpenCode.ts exports WatchState).
|
|
7
|
+
|
|
8
|
+
import type { FSWatcher } from 'chokidar';
|
|
9
|
+
import type WebSocket from 'ws';
|
|
10
|
+
|
|
11
|
+
import type { HolderClient } from '../modules/server/terminal/holder-client';
|
|
12
|
+
import type { ConversationMessage } from './sessions';
|
|
13
|
+
|
|
14
|
+
// ── holder-client types ─────────────────────────────────────────────
|
|
15
|
+
|
|
16
|
+
/** Messages received from the holder process (local ndjson protocol). */
|
|
17
|
+
export type HolderIncomingMessage =
|
|
18
|
+
| { active: boolean; type: 'activity' }
|
|
19
|
+
| { code: null | number; signal: null | string; type: 'exit' }
|
|
20
|
+
| { data: string; type: 'output' }
|
|
21
|
+
| { data: string; type: 'scrollback' }
|
|
22
|
+
| { exitCode: null | number; exited: boolean; pid: number; type: 'info' }
|
|
23
|
+
| { path: string; type: 'cwd' };
|
|
24
|
+
|
|
25
|
+
/** Messages sent to the holder process (local ndjson protocol). */
|
|
26
|
+
export type HolderOutgoingMessage =
|
|
27
|
+
| { cols: number; rows: number; type: 'resize' }
|
|
28
|
+
| { data: string; type: 'input' }
|
|
29
|
+
| { signal?: string; type: 'kill' };
|
|
30
|
+
|
|
31
|
+
// ── pty-manager types ───────────────────────────────────────────────
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Callback invoked when new JSONL entries are parsed from a watched file.
|
|
35
|
+
*/
|
|
36
|
+
export type OnNewEntries = (entries: ConversationMessage[]) => void;
|
|
37
|
+
|
|
38
|
+
export interface OpenCodeWatchState {
|
|
39
|
+
callbacks: Set<(messages: ConversationMessage[]) => void>;
|
|
40
|
+
/** Set of message IDs we have already emitted, to avoid duplicates. */
|
|
41
|
+
emittedMessageIds: Set<string>;
|
|
42
|
+
/** Map of part ID to last-seen time_updated, to detect in-place updates. */
|
|
43
|
+
emittedPartUpdatedAt: Map<string, number>;
|
|
44
|
+
intervalHandle: ReturnType<typeof setInterval>;
|
|
45
|
+
/** Highest time_created we have seen for messages (milliseconds). */
|
|
46
|
+
lastMessageTime: number;
|
|
47
|
+
/** Highest time_updated we have seen for parts (milliseconds). */
|
|
48
|
+
lastPartTime: number;
|
|
49
|
+
sessionId: string;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// ── session-watcher types ───────────────────────────────────────────
|
|
53
|
+
|
|
54
|
+
export interface PtyManagedTerminal {
|
|
55
|
+
args: string[];
|
|
56
|
+
clients: Set<WebSocket>;
|
|
57
|
+
cols: number;
|
|
58
|
+
command: string;
|
|
59
|
+
createdAt: Date;
|
|
60
|
+
currentCwd: null | string;
|
|
61
|
+
cwd: string;
|
|
62
|
+
exitCode: null | number;
|
|
63
|
+
exitedAt: Date | null;
|
|
64
|
+
holderPid: number;
|
|
65
|
+
id: string;
|
|
66
|
+
isActive: boolean;
|
|
67
|
+
openCodeNoopCb: ((messages: ConversationMessage[]) => void) | null;
|
|
68
|
+
openCodeSessionId: null | string;
|
|
69
|
+
outputBuffers: Map<WebSocket, PtyOutputBuffer>;
|
|
70
|
+
pid: number;
|
|
71
|
+
pollTimer: null | ReturnType<typeof setInterval>;
|
|
72
|
+
pty: HolderClient;
|
|
73
|
+
rows: number;
|
|
74
|
+
scrollback: string;
|
|
75
|
+
sessionFile: null | string;
|
|
76
|
+
socketPath: string;
|
|
77
|
+
status: 'exited' | 'running';
|
|
78
|
+
watcherOffset: number;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export interface PtyOutputBuffer {
|
|
82
|
+
data: string[];
|
|
83
|
+
size: number;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// ── opencode-watcher types ──────────────────────────────────────────
|
|
87
|
+
|
|
88
|
+
export interface SessionWatchedFile {
|
|
89
|
+
callbacks: Set<OnNewEntries>;
|
|
90
|
+
filePath: string;
|
|
91
|
+
offset: number;
|
|
92
|
+
watcher: FSWatcher;
|
|
93
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// Session and conversation types for Claude Code and OpenCode JSONL parsing.
|
|
2
|
+
// Local interfaces kept here because the generated MessagePart uses wrapper
|
|
3
|
+
// classes and `type: string` instead of the string-literal discriminated unions
|
|
4
|
+
// required at runtime.
|
|
5
|
+
|
|
6
|
+
import type { MessageRole } from './generated';
|
|
7
|
+
|
|
8
|
+
/** Internal structure from ~/.claude/sessions/<PID>.json */
|
|
9
|
+
export interface ClaudeSessionFile {
|
|
10
|
+
cwd: string;
|
|
11
|
+
entrypoint: string;
|
|
12
|
+
kind: string;
|
|
13
|
+
pid: number;
|
|
14
|
+
sessionId: string;
|
|
15
|
+
startedAt: number;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface ConversationMessage {
|
|
19
|
+
id: string;
|
|
20
|
+
parts: MessagePart[];
|
|
21
|
+
role: MessageRole;
|
|
22
|
+
timestamp: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface DetectedProcess {
|
|
26
|
+
command: 'claude' | 'opencode';
|
|
27
|
+
cwd: string;
|
|
28
|
+
kind: string;
|
|
29
|
+
pid: number;
|
|
30
|
+
projectPath: string;
|
|
31
|
+
sessionId: string;
|
|
32
|
+
startedAt: number;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export type MessagePart = TextPart | ThinkingPart | ToolResultPart | ToolUsePart;
|
|
36
|
+
|
|
37
|
+
export interface TextPart {
|
|
38
|
+
content: string;
|
|
39
|
+
type: 'text';
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export interface ThinkingPart {
|
|
43
|
+
content: string;
|
|
44
|
+
type: 'thinking';
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export interface ToolResultPart {
|
|
48
|
+
isError: boolean;
|
|
49
|
+
output: string;
|
|
50
|
+
toolUseId: string;
|
|
51
|
+
type: 'tool_result';
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export interface ToolUsePart {
|
|
55
|
+
id: string;
|
|
56
|
+
input: Record<string, unknown>;
|
|
57
|
+
toolName: string;
|
|
58
|
+
type: 'tool_use';
|
|
59
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import type { FitAddon } from '@xterm/addon-fit';
|
|
2
|
+
import type { Terminal } from '@xterm/xterm';
|
|
3
|
+
|
|
4
|
+
import type { CreateTerminalResponse } from './generated';
|
|
5
|
+
import type { ConversationMessage, MessagePart, ToolUsePart } from './sessions';
|
|
6
|
+
|
|
7
|
+
// --- ChatView types ---
|
|
8
|
+
|
|
9
|
+
export interface ChatViewProps {
|
|
10
|
+
connectionState?: 'connected' | 'connecting' | 'disconnected' | 'idle' | 'reconnecting';
|
|
11
|
+
messages: ConversationMessage[];
|
|
12
|
+
newestFirst?: boolean;
|
|
13
|
+
onCancel?: () => void;
|
|
14
|
+
onSendInput?: (text: string) => void;
|
|
15
|
+
sendDisabled?: boolean;
|
|
16
|
+
sessionEnded?: boolean;
|
|
17
|
+
showHeader?: boolean;
|
|
18
|
+
showInput?: boolean;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface Command {
|
|
22
|
+
action: () => void;
|
|
23
|
+
label: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface CommandPaletteProps {
|
|
27
|
+
commands: Command[];
|
|
28
|
+
onClose: () => void;
|
|
29
|
+
open?: boolean;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// --- CommandPalette types ---
|
|
33
|
+
|
|
34
|
+
export interface ConfigPageData {
|
|
35
|
+
activeProvider: string;
|
|
36
|
+
aiProviders: Record<string, boolean>;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export interface ConnectionStatusProps {
|
|
40
|
+
onretry?: () => void;
|
|
41
|
+
status: 'connected' | 'disconnected' | 'reconnecting';
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// --- ConnectionStatus types ---
|
|
45
|
+
|
|
46
|
+
export type GroupedPart = MessagePart | ToolGroup;
|
|
47
|
+
|
|
48
|
+
// --- LaunchSheet types ---
|
|
49
|
+
|
|
50
|
+
export interface LaunchSheetProps {
|
|
51
|
+
apiKey: string;
|
|
52
|
+
onClose: () => void;
|
|
53
|
+
onLaunch: (response: CreateTerminalResponse) => void;
|
|
54
|
+
open: boolean;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export interface LayoutData {
|
|
58
|
+
aiProviders: Record<string, boolean>;
|
|
59
|
+
neurolinkProvider: string;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// --- QuickKeys types ---
|
|
63
|
+
|
|
64
|
+
export interface Preset {
|
|
65
|
+
args: string[];
|
|
66
|
+
command: string;
|
|
67
|
+
label: string;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export interface QuickKey {
|
|
71
|
+
escape: string;
|
|
72
|
+
label: string;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// --- ShortcutsHelp types ---
|
|
76
|
+
|
|
77
|
+
export interface QuickKeysProps {
|
|
78
|
+
onKey: (key: string) => void;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// --- keyboard-shortcuts types ---
|
|
82
|
+
|
|
83
|
+
export interface ShortcutManagerOptions {
|
|
84
|
+
onHelp: () => void;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// --- xterm-wrapper types ---
|
|
88
|
+
|
|
89
|
+
export interface ShortcutsHelpProps {
|
|
90
|
+
onClose: () => void;
|
|
91
|
+
open: boolean;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export interface TerminalInstance {
|
|
95
|
+
dispose: () => void;
|
|
96
|
+
fitAddon: FitAddon | null;
|
|
97
|
+
sendInput: (data: string) => void;
|
|
98
|
+
term: Terminal;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// --- Route-level types ---
|
|
102
|
+
|
|
103
|
+
export interface TerminalOptions {
|
|
104
|
+
apiKey?: string;
|
|
105
|
+
container: HTMLElement;
|
|
106
|
+
fontSize?: number;
|
|
107
|
+
getTicket: () => Promise<string>;
|
|
108
|
+
onActivity?: (active: boolean) => void;
|
|
109
|
+
onCwd?: (path: string) => void;
|
|
110
|
+
onDisconnect?: () => void;
|
|
111
|
+
onExit?: (code: number) => void;
|
|
112
|
+
onReconnect?: () => void;
|
|
113
|
+
terminalId?: string;
|
|
114
|
+
wsUrl: string;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export interface ToolGroup {
|
|
118
|
+
groupId: string;
|
|
119
|
+
summary: string;
|
|
120
|
+
tools: ToolUsePart[];
|
|
121
|
+
type: 'tool_group';
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/** Shape of inbound WebSocket messages received by the terminal client. */
|
|
125
|
+
export interface WsTerminalInboundMessage {
|
|
126
|
+
active?: boolean;
|
|
127
|
+
bytes?: number;
|
|
128
|
+
code?: number;
|
|
129
|
+
data?: string;
|
|
130
|
+
path?: string;
|
|
131
|
+
type: string;
|
|
132
|
+
}
|