@openpalm/ui 0.13.0-beta.1 → 0.13.0-beta.3
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/build/.openpalm-ui-version +1 -1
- package/build/client/_app/immutable/assets/9.vqGkbIg9.css +1 -0
- package/build/client/_app/immutable/assets/9.vqGkbIg9.css.br +0 -0
- package/build/client/_app/immutable/assets/9.vqGkbIg9.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BApqEZP1.js +3 -0
- package/build/client/_app/immutable/chunks/BApqEZP1.js.br +0 -0
- package/build/client/_app/immutable/chunks/BApqEZP1.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{D1nSxXur.js → B_jhBV5Z.js} +1 -1
- package/build/client/_app/immutable/chunks/B_jhBV5Z.js.br +0 -0
- package/build/client/_app/immutable/chunks/B_jhBV5Z.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C3ad4Ajc.js +1 -0
- package/build/client/_app/immutable/chunks/C3ad4Ajc.js.br +2 -0
- package/build/client/_app/immutable/chunks/C3ad4Ajc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CItB5oU8.js +3 -0
- package/build/client/_app/immutable/chunks/CItB5oU8.js.br +0 -0
- package/build/client/_app/immutable/chunks/CItB5oU8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CvItGqWG.js → DBHgGGCD.js} +1 -1
- package/build/client/_app/immutable/chunks/DBHgGGCD.js.br +0 -0
- package/build/client/_app/immutable/chunks/DBHgGGCD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BMyudKzg.js → DuFsBiCS.js} +1 -1
- package/build/client/_app/immutable/chunks/DuFsBiCS.js.br +0 -0
- package/build/client/_app/immutable/chunks/DuFsBiCS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Db8xkqW6.js → Gis7OmMK.js} +1 -1
- package/build/client/_app/immutable/chunks/Gis7OmMK.js.br +0 -0
- package/build/client/_app/immutable/chunks/Gis7OmMK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/S17SDfo_.js +1 -0
- package/build/client/_app/immutable/chunks/S17SDfo_.js.br +0 -0
- package/build/client/_app/immutable/chunks/S17SDfo_.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.ByeYK7_P.js → app.C4X372ym.js} +2 -2
- package/build/client/_app/immutable/entry/app.C4X372ym.js.br +0 -0
- package/build/client/_app/immutable/entry/app.C4X372ym.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.ggMsTuLf.js +1 -0
- package/build/client/_app/immutable/entry/start.ggMsTuLf.js.br +0 -0
- package/build/client/_app/immutable/entry/start.ggMsTuLf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.mcDF2Cfv.js +1 -0
- package/build/client/_app/immutable/nodes/0.mcDF2Cfv.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.mcDF2Cfv.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.DOwkg43h.js → 1.CAn1ptt2.js} +1 -1
- package/build/client/_app/immutable/nodes/1.CAn1ptt2.js.br +1 -0
- package/build/client/_app/immutable/nodes/1.CAn1ptt2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{10.Cs6atPP0.js → 10.3GZpnfRU.js} +1 -1
- package/build/client/_app/immutable/nodes/10.3GZpnfRU.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.3GZpnfRU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{11.D1ux0xRH.js → 11.D1-UoUiI.js} +2 -2
- package/build/client/_app/immutable/nodes/11.D1-UoUiI.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.D1-UoUiI.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{4.vRThg0Ke.js → 4.6EwsExLl.js} +1 -1
- package/build/client/_app/immutable/nodes/4.6EwsExLl.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.6EwsExLl.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.y3u2P8a-.js → 5.DLFettGd.js} +1 -1
- package/build/client/_app/immutable/nodes/5.DLFettGd.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.DLFettGd.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.inuW_1g7.js +2 -0
- package/build/client/_app/immutable/nodes/6.inuW_1g7.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.inuW_1g7.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{7.DQ9bZrdN.js → 7.Dc4BVu5u.js} +2 -2
- package/build/client/_app/immutable/nodes/7.Dc4BVu5u.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.Dc4BVu5u.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.CJ5rBqR8.js +126 -0
- package/build/client/_app/immutable/nodes/9.CJ5rBqR8.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.CJ5rBqR8.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +1 -1
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/{0-D6JYWBmc.js → 0-C44Ua1bY.js} +5 -5
- package/build/server/chunks/{0-D6JYWBmc.js.map → 0-C44Ua1bY.js.map} +1 -1
- package/build/server/chunks/1-DPdXHBBi.js +9 -0
- package/build/server/chunks/{1-QFaO6yhK.js.map → 1-DPdXHBBi.js.map} +1 -1
- package/build/server/chunks/{10-BHQuL7xa.js → 10-B6ZAGGzR.js} +3 -3
- package/build/server/chunks/{10-BHQuL7xa.js.map → 10-B6ZAGGzR.js.map} +1 -1
- package/build/server/chunks/{11-nYH7HWHs.js → 11-Bi4ih8mU.js} +3 -3
- package/build/server/chunks/{11-nYH7HWHs.js.map → 11-Bi4ih8mU.js.map} +1 -1
- package/build/server/chunks/{3-DflhJGSw.js → 3-DqhvOSLm.js} +7 -7
- package/build/server/chunks/{3-DflhJGSw.js.map → 3-DqhvOSLm.js.map} +1 -1
- package/build/server/chunks/4-bICPXf8d.js +9 -0
- package/build/server/chunks/4-bICPXf8d.js.map +1 -0
- package/build/server/chunks/{5-_ostMB1h.js → 5-pYxB3IGQ.js} +3 -3
- package/build/server/chunks/{5-_ostMB1h.js.map → 5-pYxB3IGQ.js.map} +1 -1
- package/build/server/chunks/6-2tNBfccH.js +9 -0
- package/build/server/chunks/6-2tNBfccH.js.map +1 -0
- package/build/server/chunks/7-IbStFnJM.js +9 -0
- package/build/server/chunks/7-IbStFnJM.js.map +1 -0
- package/build/server/chunks/{9-DPtmsJHR.js → 9-PfezrnbG.js} +5 -5
- package/build/server/chunks/{9-DPtmsJHR.js.map → 9-PfezrnbG.js.map} +1 -1
- package/build/server/chunks/{ChatNavbar-ZxJwQIGL.js → ChatNavbar-f5OrMEL5.js} +8 -8
- package/build/server/chunks/{ChatNavbar-ZxJwQIGL.js.map → ChatNavbar-f5OrMEL5.js.map} +1 -1
- package/build/server/chunks/{IconServer-ByAeszv0.js → IconServer-C0heXLme.js} +5 -5
- package/build/server/chunks/IconServer-C0heXLme.js.map +1 -0
- package/build/server/chunks/{IconStop-DFbhUtaJ.js → IconSoundOn-DHtvjphK.js} +4 -10
- package/build/server/chunks/IconSoundOn-DHtvjphK.js.map +1 -0
- package/build/server/chunks/{format-date-gcou_Av8.js → IconStop-C89_dmt4.js} +9 -3
- package/build/server/chunks/IconStop-C89_dmt4.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-DFMW9sdO.js → _layout.svelte-BLxvGwKC.js} +5 -3
- package/build/server/chunks/_layout.svelte-BLxvGwKC.js.map +1 -0
- package/build/server/chunks/{_page.svelte-CborsVrn.js → _page.svelte-BXLl2Q4a.js} +5 -5
- package/build/server/chunks/_page.svelte-BXLl2Q4a.js.map +1 -0
- package/build/server/chunks/{_page.svelte-DDFJprLE.js → _page.svelte-BgKDQB1v.js} +3 -3
- package/build/server/chunks/{_page.svelte-DDFJprLE.js.map → _page.svelte-BgKDQB1v.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-Cz3JYioD.js → _page.svelte-Cqsoa84V.js} +11 -11
- package/build/server/chunks/_page.svelte-Cqsoa84V.js.map +1 -0
- package/build/server/chunks/{_page.svelte-CknIT-b6.js → _page.svelte-DV50Zgo7.js} +3 -3
- package/build/server/chunks/{_page.svelte-CknIT-b6.js.map → _page.svelte-DV50Zgo7.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DojSR6TL.js → _page.svelte-DpFvF_2S.js} +30 -14
- package/build/server/chunks/_page.svelte-DpFvF_2S.js.map +1 -0
- package/build/server/chunks/{_page.svelte-CKJNzmVG.js → _page.svelte-MAzX_A0b.js} +7 -7
- package/build/server/chunks/{_page.svelte-CKJNzmVG.js.map → _page.svelte-MAzX_A0b.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-BLGF_oAz.js → _page.svelte-fk6X6VPw.js} +11 -11
- package/build/server/chunks/{_page.svelte-BLGF_oAz.js.map → _page.svelte-fk6X6VPw.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BG89__4Y.js → _server.ts-2o4Kzn8i.js} +7 -7
- package/build/server/chunks/{_server.ts-BG89__4Y.js.map → _server.ts-2o4Kzn8i.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DVXK2VD6.js → _server.ts-6-piDAMf.js} +7 -7
- package/build/server/chunks/{_server.ts-DVXK2VD6.js.map → _server.ts-6-piDAMf.js.map} +1 -1
- package/build/server/chunks/{_server.ts-1Vco45Qu.js → _server.ts-6BViNoJ6.js} +6 -6
- package/build/server/chunks/{_server.ts-1Vco45Qu.js.map → _server.ts-6BViNoJ6.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bj17GHeW.js → _server.ts-B-6OFzv-.js} +6 -6
- package/build/server/chunks/{_server.ts-Bj17GHeW.js.map → _server.ts-B-6OFzv-.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bbtu4jaC.js → _server.ts-B2iTN8SC.js} +8 -8
- package/build/server/chunks/{_server.ts-Bbtu4jaC.js.map → _server.ts-B2iTN8SC.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B0jGXHG1.js → _server.ts-BB6y3ZlT.js} +6 -6
- package/build/server/chunks/{_server.ts-B0jGXHG1.js.map → _server.ts-BB6y3ZlT.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DrHEkbDq.js → _server.ts-BBxdJ3b2.js} +7 -7
- package/build/server/chunks/{_server.ts-DrHEkbDq.js.map → _server.ts-BBxdJ3b2.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CKcFu8B-.js → _server.ts-BJ27moeF.js} +7 -7
- package/build/server/chunks/_server.ts-BJ27moeF.js.map +1 -0
- package/build/server/chunks/{_server.ts-D1mP7Ux6.js → _server.ts-BM6hefLc.js} +6 -6
- package/build/server/chunks/{_server.ts-D1mP7Ux6.js.map → _server.ts-BM6hefLc.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BV6i7XBr.js → _server.ts-BNQHTPJK.js} +6 -6
- package/build/server/chunks/{_server.ts-BV6i7XBr.js.map → _server.ts-BNQHTPJK.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CFz_IeN4.js → _server.ts-BNnRODmS.js} +7 -7
- package/build/server/chunks/{_server.ts-CFz_IeN4.js.map → _server.ts-BNnRODmS.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CtiJiKFW.js → _server.ts-BQyuBKbf.js} +6 -6
- package/build/server/chunks/{_server.ts-CtiJiKFW.js.map → _server.ts-BQyuBKbf.js.map} +1 -1
- package/build/server/chunks/{_server.ts-y3HSMNEG.js → _server.ts-BQzhAVgc.js} +2 -2
- package/build/server/chunks/{_server.ts-y3HSMNEG.js.map → _server.ts-BQzhAVgc.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bfkzx4ao.js → _server.ts-BTey3b5e.js} +6 -6
- package/build/server/chunks/{_server.ts-Bfkzx4ao.js.map → _server.ts-BTey3b5e.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B9GH6f46.js → _server.ts-BWeAmxEz.js} +6 -6
- package/build/server/chunks/{_server.ts-B9GH6f46.js.map → _server.ts-BWeAmxEz.js.map} +1 -1
- package/build/server/chunks/{_server.ts-S90K5IJI.js → _server.ts-BageNPqU.js} +7 -7
- package/build/server/chunks/{_server.ts-S90K5IJI.js.map → _server.ts-BageNPqU.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DJxUVpVr.js → _server.ts-BcsSKsVE.js} +6 -6
- package/build/server/chunks/{_server.ts-DJxUVpVr.js.map → _server.ts-BcsSKsVE.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CbkJG3Yk.js → _server.ts-Bd15KCCI.js} +6 -6
- package/build/server/chunks/{_server.ts-CbkJG3Yk.js.map → _server.ts-Bd15KCCI.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BRiu2AFG.js → _server.ts-BiGuckTs.js} +8 -8
- package/build/server/chunks/{_server.ts-BRiu2AFG.js.map → _server.ts-BiGuckTs.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BjEVNsPT.js → _server.ts-BlCDDGQe.js} +6 -6
- package/build/server/chunks/{_server.ts-BjEVNsPT.js.map → _server.ts-BlCDDGQe.js.map} +1 -1
- package/build/server/chunks/{_server.ts-nasuSdo-.js → _server.ts-Bsxn3ZEt.js} +6 -6
- package/build/server/chunks/{_server.ts-nasuSdo-.js.map → _server.ts-Bsxn3ZEt.js.map} +1 -1
- package/build/server/chunks/{_server.ts-9TnX_Hfn.js → _server.ts-BtlVh8sp.js} +3 -3
- package/build/server/chunks/{_server.ts-9TnX_Hfn.js.map → _server.ts-BtlVh8sp.js.map} +1 -1
- package/build/server/chunks/_server.ts-BunhH3W1.js +58 -0
- package/build/server/chunks/_server.ts-BunhH3W1.js.map +1 -0
- package/build/server/chunks/{_server.ts-FhE6fUSD.js → _server.ts-BwMkzx-i.js} +7 -7
- package/build/server/chunks/{_server.ts-FhE6fUSD.js.map → _server.ts-BwMkzx-i.js.map} +1 -1
- package/build/server/chunks/{_server.ts-HlB5nMY9.js → _server.ts-Bx0tx6Hd.js} +6 -6
- package/build/server/chunks/{_server.ts-HlB5nMY9.js.map → _server.ts-Bx0tx6Hd.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CyzJdUdD.js → _server.ts-ByVaX_Hp.js} +6 -6
- package/build/server/chunks/{_server.ts-CyzJdUdD.js.map → _server.ts-ByVaX_Hp.js.map} +1 -1
- package/build/server/chunks/{_server.ts-ClO4pSRG.js → _server.ts-C-VVdGFH.js} +6 -6
- package/build/server/chunks/{_server.ts-ClO4pSRG.js.map → _server.ts-C-VVdGFH.js.map} +1 -1
- package/build/server/chunks/{_server.ts-4SFWMa3H.js → _server.ts-C17zuPHB.js} +6 -6
- package/build/server/chunks/{_server.ts-4SFWMa3H.js.map → _server.ts-C17zuPHB.js.map} +1 -1
- package/build/server/chunks/{_server.ts-uqxkiRQ1.js → _server.ts-C24KcaLY.js} +6 -6
- package/build/server/chunks/{_server.ts-uqxkiRQ1.js.map → _server.ts-C24KcaLY.js.map} +1 -1
- package/build/server/chunks/{_server.ts-tchYVZRL.js → _server.ts-C8Tvzew7.js} +2 -2
- package/build/server/chunks/{_server.ts-tchYVZRL.js.map → _server.ts-C8Tvzew7.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Chf0EFLa.js → _server.ts-CA37rdjz.js} +6 -6
- package/build/server/chunks/{_server.ts-Chf0EFLa.js.map → _server.ts-CA37rdjz.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DjFDthjg.js → _server.ts-CBv61dGN.js} +7 -7
- package/build/server/chunks/{_server.ts-DjFDthjg.js.map → _server.ts-CBv61dGN.js.map} +1 -1
- package/build/server/chunks/{_server.ts-HN1FxysS.js → _server.ts-CEgqNbg2.js} +7 -7
- package/build/server/chunks/{_server.ts-HN1FxysS.js.map → _server.ts-CEgqNbg2.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Cp6d9DIG.js → _server.ts-CF6j3bbg.js} +6 -6
- package/build/server/chunks/{_server.ts-Cp6d9DIG.js.map → _server.ts-CF6j3bbg.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BYUzlpfe.js → _server.ts-CFlF9O0n.js} +6 -6
- package/build/server/chunks/{_server.ts-BYUzlpfe.js.map → _server.ts-CFlF9O0n.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D2dBUHv-.js → _server.ts-CM8lR2Jk.js} +6 -6
- package/build/server/chunks/{_server.ts-D2dBUHv-.js.map → _server.ts-CM8lR2Jk.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BI2IrCte.js → _server.ts-CMi1odxU.js} +6 -6
- package/build/server/chunks/{_server.ts-BI2IrCte.js.map → _server.ts-CMi1odxU.js.map} +1 -1
- package/build/server/chunks/{_server.ts-1VKTjr08.js → _server.ts-CPolXmaB.js} +7 -7
- package/build/server/chunks/{_server.ts-1VKTjr08.js.map → _server.ts-CPolXmaB.js.map} +1 -1
- package/build/server/chunks/{_server.ts-4eT-crTl.js → _server.ts-CZ-P41xW.js} +6 -6
- package/build/server/chunks/{_server.ts-4eT-crTl.js.map → _server.ts-CZ-P41xW.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Ci1n4eQ3.js → _server.ts-Cc6blM9a.js} +6 -6
- package/build/server/chunks/{_server.ts-Ci1n4eQ3.js.map → _server.ts-Cc6blM9a.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B8p1cZWN.js → _server.ts-CcFK2dxk.js} +6 -6
- package/build/server/chunks/{_server.ts-B8p1cZWN.js.map → _server.ts-CcFK2dxk.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Db2X5ulY.js → _server.ts-CfB1cDLU.js} +7 -7
- package/build/server/chunks/{_server.ts-Db2X5ulY.js.map → _server.ts-CfB1cDLU.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CXt9azl0.js → _server.ts-ChK8wuma.js} +6 -6
- package/build/server/chunks/{_server.ts-CXt9azl0.js.map → _server.ts-ChK8wuma.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Cg_4-N8w.js → _server.ts-ClJrWUgt.js} +2 -2
- package/build/server/chunks/{_server.ts-Cg_4-N8w.js.map → _server.ts-ClJrWUgt.js.map} +1 -1
- package/build/server/chunks/{_server.ts-at5EQV31.js → _server.ts-CpMO1w5D.js} +8 -8
- package/build/server/chunks/{_server.ts-at5EQV31.js.map → _server.ts-CpMO1w5D.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BeCTOV2T.js → _server.ts-CpwGXL04.js} +6 -6
- package/build/server/chunks/{_server.ts-BeCTOV2T.js.map → _server.ts-CpwGXL04.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Y4JoeA12.js → _server.ts-CrUHXfa7.js} +6 -6
- package/build/server/chunks/{_server.ts-Y4JoeA12.js.map → _server.ts-CrUHXfa7.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DJFB76Z4.js → _server.ts-CtNaQ39q.js} +6 -6
- package/build/server/chunks/{_server.ts-DJFB76Z4.js.map → _server.ts-CtNaQ39q.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CYY3W2qh.js → _server.ts-Cu39Y3ON.js} +10 -10
- package/build/server/chunks/_server.ts-Cu39Y3ON.js.map +1 -0
- package/build/server/chunks/{_server.ts-Rv6Qmjnm.js → _server.ts-CyHlj4Xc.js} +6 -6
- package/build/server/chunks/{_server.ts-Rv6Qmjnm.js.map → _server.ts-CyHlj4Xc.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BvwD-tU2.js → _server.ts-CyMs8VXZ.js} +4 -4
- package/build/server/chunks/{_server.ts-BvwD-tU2.js.map → _server.ts-CyMs8VXZ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Q1zB1kiD.js → _server.ts-CydVYzX1.js} +6 -6
- package/build/server/chunks/{_server.ts-Q1zB1kiD.js.map → _server.ts-CydVYzX1.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B7jtS1rc.js → _server.ts-CyiErd_B.js} +9 -9
- package/build/server/chunks/{_server.ts-B7jtS1rc.js.map → _server.ts-CyiErd_B.js.map} +1 -1
- package/build/server/chunks/{_server.ts-GuptvcVQ.js → _server.ts-Czl57SUr.js} +6 -6
- package/build/server/chunks/{_server.ts-GuptvcVQ.js.map → _server.ts-Czl57SUr.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C1k-QptM.js → _server.ts-D7I9KZ4H.js} +6 -6
- package/build/server/chunks/{_server.ts-C1k-QptM.js.map → _server.ts-D7I9KZ4H.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B46NQmKl.js → _server.ts-DDweV2eg.js} +6 -6
- package/build/server/chunks/{_server.ts-B46NQmKl.js.map → _server.ts-DDweV2eg.js.map} +1 -1
- package/build/server/chunks/{_server.ts-c64R3qMS.js → _server.ts-DFq2AVjG.js} +6 -6
- package/build/server/chunks/{_server.ts-c64R3qMS.js.map → _server.ts-DFq2AVjG.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BG50sNod.js → _server.ts-DPJJQkZp.js} +6 -6
- package/build/server/chunks/{_server.ts-BG50sNod.js.map → _server.ts-DPJJQkZp.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C7wn5VUY.js → _server.ts-DQFO2xa9.js} +6 -6
- package/build/server/chunks/{_server.ts-C7wn5VUY.js.map → _server.ts-DQFO2xa9.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D81J9NzU.js → _server.ts-DYS4PknE.js} +6 -6
- package/build/server/chunks/{_server.ts-D81J9NzU.js.map → _server.ts-DYS4PknE.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C7uAOfo3.js → _server.ts-DcBrsY-a.js} +8 -8
- package/build/server/chunks/{_server.ts-C7uAOfo3.js.map → _server.ts-DcBrsY-a.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C_qRsJI2.js → _server.ts-DcZIXa7_.js} +6 -6
- package/build/server/chunks/{_server.ts-C_qRsJI2.js.map → _server.ts-DcZIXa7_.js.map} +1 -1
- package/build/server/chunks/{_server.ts-y7XlQItn.js → _server.ts-DdWIcyaa.js} +2 -2
- package/build/server/chunks/{_server.ts-y7XlQItn.js.map → _server.ts-DdWIcyaa.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BLxV2y7p.js → _server.ts-DhZ0i-VZ.js} +7 -7
- package/build/server/chunks/{_server.ts-BLxV2y7p.js.map → _server.ts-DhZ0i-VZ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DvKpBV-Y.js → _server.ts-DiY7qGzB.js} +2 -2
- package/build/server/chunks/{_server.ts-DvKpBV-Y.js.map → _server.ts-DiY7qGzB.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DhfQc2ah.js → _server.ts-DkWPvbVT.js} +6 -6
- package/build/server/chunks/{_server.ts-DhfQc2ah.js.map → _server.ts-DkWPvbVT.js.map} +1 -1
- package/build/server/chunks/{_server.ts-MvwnQkPT.js → _server.ts-DmuQV3XR.js} +4 -4
- package/build/server/chunks/{_server.ts-MvwnQkPT.js.map → _server.ts-DmuQV3XR.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BFOoXmaJ.js → _server.ts-DprY8V8n.js} +6 -6
- package/build/server/chunks/{_server.ts-BFOoXmaJ.js.map → _server.ts-DprY8V8n.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CQIXn8xb.js → _server.ts-Dr7DPWfx.js} +7 -7
- package/build/server/chunks/{_server.ts-CQIXn8xb.js.map → _server.ts-Dr7DPWfx.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C5NMGLvR.js → _server.ts-DsRKY-Kc.js} +6 -6
- package/build/server/chunks/{_server.ts-C5NMGLvR.js.map → _server.ts-DsRKY-Kc.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bu-Ie_Mc.js → _server.ts-DtY45qj6.js} +6 -6
- package/build/server/chunks/{_server.ts-Bu-Ie_Mc.js.map → _server.ts-DtY45qj6.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dk7RL-D7.js → _server.ts-DxbCMYot.js} +6 -6
- package/build/server/chunks/{_server.ts-Dk7RL-D7.js.map → _server.ts-DxbCMYot.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BUE0dmBz.js → _server.ts-DzO2o8u_.js} +6 -6
- package/build/server/chunks/{_server.ts-BUE0dmBz.js.map → _server.ts-DzO2o8u_.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DPw-9Fvz.js → _server.ts-G80g1-Vi.js} +6 -6
- package/build/server/chunks/{_server.ts-DPw-9Fvz.js.map → _server.ts-G80g1-Vi.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CTKwaXm1.js → _server.ts-RjE7mkg4.js} +6 -6
- package/build/server/chunks/{_server.ts-CTKwaXm1.js.map → _server.ts-RjE7mkg4.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C0Zlu5Xy.js → _server.ts-SqpxZ5hM.js} +6 -6
- package/build/server/chunks/{_server.ts-C0Zlu5Xy.js.map → _server.ts-SqpxZ5hM.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DTOMs2Oo.js → _server.ts-TecIejZG.js} +7 -7
- package/build/server/chunks/{_server.ts-DTOMs2Oo.js.map → _server.ts-TecIejZG.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CUPbFKq2.js → _server.ts-UMlNzGum.js} +6 -6
- package/build/server/chunks/{_server.ts-CUPbFKq2.js.map → _server.ts-UMlNzGum.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DK409rto.js → _server.ts-WTL-RZDk.js} +6 -6
- package/build/server/chunks/{_server.ts-DK409rto.js.map → _server.ts-WTL-RZDk.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DW3mRh_v.js → _server.ts-YQAFFkYo.js} +7 -7
- package/build/server/chunks/{_server.ts-DW3mRh_v.js.map → _server.ts-YQAFFkYo.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CP02aPdv.js → _server.ts-ZkptKFXP.js} +6 -6
- package/build/server/chunks/{_server.ts-CP02aPdv.js.map → _server.ts-ZkptKFXP.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CHuyT9rF.js → _server.ts-opJkoWRS.js} +6 -6
- package/build/server/chunks/{_server.ts-CHuyT9rF.js.map → _server.ts-opJkoWRS.js.map} +1 -1
- package/build/server/chunks/{_server.ts-rPbq-4rb.js → _server.ts-s_DZwJLK.js} +6 -6
- package/build/server/chunks/{_server.ts-rPbq-4rb.js.map → _server.ts-s_DZwJLK.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C43E5b3d.js → _server.ts-ukIYk-_Z.js} +6 -6
- package/build/server/chunks/{_server.ts-C43E5b3d.js.map → _server.ts-ukIYk-_Z.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CMwOXeFC.js → _server.ts-vXf4p_i0.js} +7 -7
- package/build/server/chunks/{_server.ts-CMwOXeFC.js.map → _server.ts-vXf4p_i0.js.map} +1 -1
- package/build/server/chunks/{addon-helpers-Cpj40OF3.js → addon-helpers-CEjIrSBN.js} +3 -3
- package/build/server/chunks/{addon-helpers-Cpj40OF3.js.map → addon-helpers-CEjIrSBN.js.map} +1 -1
- package/build/server/chunks/{akm-D8uSJNzt.js → akm-rRfSaKvH.js} +2 -2
- package/build/server/chunks/{akm-D8uSJNzt.js.map → akm-rRfSaKvH.js.map} +1 -1
- package/build/server/chunks/{catalog-C9ClLZ62.js → catalog-DMG_Bwji.js} +5 -5
- package/build/server/chunks/{catalog-C9ClLZ62.js.map → catalog-DMG_Bwji.js.map} +1 -1
- package/build/server/chunks/{client-utk4T8Jl.js → client-BvFq2PRx.js} +2 -2
- package/build/server/chunks/{client-utk4T8Jl.js.map → client-BvFq2PRx.js.map} +1 -1
- package/build/server/chunks/{compose-args2-cix5m26E.js → compose-args2-C39WGM9r.js} +2 -2
- package/build/server/chunks/compose-args2-C39WGM9r.js.map +1 -0
- package/build/server/chunks/{config-BV78mCrh.js → config-BndRz7Yl.js} +2 -2
- package/build/server/chunks/{config-BV78mCrh.js.map → config-BndRz7Yl.js.map} +1 -1
- package/build/server/chunks/{connections-api-CpQ5k7QC.js → connections-api-BvJpsZBj.js} +2 -2
- package/build/server/chunks/{connections-api-CpQ5k7QC.js.map → connections-api-BvJpsZBj.js.map} +1 -1
- package/build/server/chunks/{docker2-DqIy9JYf.js → docker2-Ba2Whd9Y.js} +2 -2
- package/build/server/chunks/docker2-Ba2Whd9Y.js.map +1 -0
- package/build/server/chunks/{docker3-DvrSgFLt.js → docker3-DhaO_Pxj.js} +2 -2
- package/build/server/chunks/{docker3-DvrSgFLt.js.map → docker3-DhaO_Pxj.js.map} +1 -1
- package/build/server/chunks/{endpoints-CU3ehglV.js → endpoints-CuL8lAcu.js} +3 -3
- package/build/server/chunks/{endpoints-CU3ehglV.js.map → endpoints-CuL8lAcu.js.map} +1 -1
- package/build/server/chunks/environment-BYp8JQYM.js.map +1 -1
- package/build/server/chunks/{error.svelte-B9DQG_Wh.js → error.svelte-C8Qx6FF6.js} +4 -4
- package/build/server/chunks/{error.svelte-B9DQG_Wh.js.map → error.svelte-C8Qx6FF6.js.map} +1 -1
- package/build/server/chunks/{features-DLGlNjZX.js → features-WsEodW5F.js} +3 -3
- package/build/server/chunks/{features-DLGlNjZX.js.map → features-WsEodW5F.js.map} +1 -1
- package/build/server/chunks/{helpers-7BvhniSt.js → helpers-XmKveZFr.js} +4 -4
- package/build/server/chunks/{helpers-7BvhniSt.js.map → helpers-XmKveZFr.js.map} +1 -1
- package/build/server/chunks/{hooks.server-CwIkB_d8.js → hooks.server-o4bkPFRD.js} +21 -15
- package/build/server/chunks/hooks.server-o4bkPFRD.js.map +1 -0
- package/build/server/chunks/{http-D0qKwTqb.js → http-CL5QncYd.js} +2 -2
- package/build/server/chunks/{http-D0qKwTqb.js.map → http-CL5QncYd.js.map} +1 -1
- package/build/server/chunks/{internal-CVxYC2gp.js → internal-D66tKQSe.js} +3 -3
- package/build/server/chunks/{internal-CVxYC2gp.js.map → internal-D66tKQSe.js.map} +1 -1
- package/build/server/chunks/{landing-BAWznbys.js → landing-DvVXSE_x.js} +46 -9
- package/build/server/chunks/landing-DvVXSE_x.js.map +1 -0
- package/build/server/chunks/{paths-lkOb-n87.js → paths-BpdOajoE.js} +2 -2
- package/build/server/chunks/{paths-lkOb-n87.js.map → paths-BpdOajoE.js.map} +1 -1
- package/build/server/chunks/runtime-context.svelte-C5zNEC6u.js +72 -0
- package/build/server/chunks/runtime-context.svelte-C5zNEC6u.js.map +1 -0
- package/build/server/chunks/{session-cookie-WuIYBiMY.js → session-cookie-B0Fc-L8S.js} +2 -2
- package/build/server/chunks/{session-cookie-WuIYBiMY.js.map → session-cookie-B0Fc-L8S.js.map} +1 -1
- package/build/server/chunks/{setup-deploy-DaMn6d6g.js → setup-deploy-BjJIt1Gf.js} +2 -2
- package/build/server/chunks/{setup-deploy-DaMn6d6g.js.map → setup-deploy-BjJIt1Gf.js.map} +1 -1
- package/build/server/chunks/{src-CS2sSYOR.js → src-i2v6xhSC.js} +4 -4
- package/build/server/chunks/{src-CS2sSYOR.js.map → src-i2v6xhSC.js.map} +1 -1
- package/build/server/chunks/{state-BRh7vs9j.js → state-fVG29xFj.js} +2 -2
- package/build/server/chunks/{state-BRh7vs9j.js.map → state-fVG29xFj.js.map} +1 -1
- package/build/server/chunks/{state2-COVNCCTq.js → state2-Dl7-d1h_.js} +2 -2
- package/build/server/chunks/{state2-COVNCCTq.js.map → state2-Dl7-d1h_.js.map} +1 -1
- package/build/server/chunks/{voice-state.svelte-bOoc1Vo0.js → voice-state.svelte-BAiqUOIX.js} +2 -2
- package/build/server/chunks/voice-state.svelte-BAiqUOIX.js.map +1 -0
- package/build/server/index.js +1 -1
- package/build/server/manifest.js +102 -95
- package/build/server/manifest.js.map +1 -1
- package/package.json +3 -3
- package/build/client/_app/immutable/assets/9.B0-fGtW-.css +0 -1
- package/build/client/_app/immutable/assets/9.B0-fGtW-.css.br +0 -0
- package/build/client/_app/immutable/assets/9.B0-fGtW-.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BLc6D58Y.js +0 -3
- package/build/client/_app/immutable/chunks/BLc6D58Y.js.br +0 -0
- package/build/client/_app/immutable/chunks/BLc6D58Y.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BMyudKzg.js.br +0 -0
- package/build/client/_app/immutable/chunks/BMyudKzg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BNkLu9ey.js +0 -3
- package/build/client/_app/immutable/chunks/BNkLu9ey.js.br +0 -0
- package/build/client/_app/immutable/chunks/BNkLu9ey.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BkqRukKX.js +0 -1
- package/build/client/_app/immutable/chunks/BkqRukKX.js.br +0 -2
- package/build/client/_app/immutable/chunks/BkqRukKX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CvItGqWG.js.br +0 -0
- package/build/client/_app/immutable/chunks/CvItGqWG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D1nSxXur.js.br +0 -0
- package/build/client/_app/immutable/chunks/D1nSxXur.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DIM-KrDw.js +0 -1
- package/build/client/_app/immutable/chunks/DIM-KrDw.js.br +0 -0
- package/build/client/_app/immutable/chunks/DIM-KrDw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Db8xkqW6.js.br +0 -0
- package/build/client/_app/immutable/chunks/Db8xkqW6.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.ByeYK7_P.js.br +0 -0
- package/build/client/_app/immutable/entry/app.ByeYK7_P.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.kykyp6T0.js +0 -1
- package/build/client/_app/immutable/entry/start.kykyp6T0.js.br +0 -1
- package/build/client/_app/immutable/entry/start.kykyp6T0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.CLEDwEKf.js +0 -1
- package/build/client/_app/immutable/nodes/0.CLEDwEKf.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.CLEDwEKf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.DOwkg43h.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.DOwkg43h.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.Cs6atPP0.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.Cs6atPP0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.D1ux0xRH.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.D1ux0xRH.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.vRThg0Ke.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.vRThg0Ke.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.y3u2P8a-.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.y3u2P8a-.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.Vtev5Cm4.js +0 -2
- package/build/client/_app/immutable/nodes/6.Vtev5Cm4.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.Vtev5Cm4.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.DQ9bZrdN.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.DQ9bZrdN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.2IPaJ-1P.js +0 -126
- package/build/client/_app/immutable/nodes/9.2IPaJ-1P.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.2IPaJ-1P.js.gz +0 -0
- package/build/server/chunks/1-QFaO6yhK.js +0 -9
- package/build/server/chunks/4-dgm3mFwb.js +0 -9
- package/build/server/chunks/4-dgm3mFwb.js.map +0 -1
- package/build/server/chunks/6-Bz787Ixu.js +0 -9
- package/build/server/chunks/6-Bz787Ixu.js.map +0 -1
- package/build/server/chunks/7-Cs4tQiJY.js +0 -9
- package/build/server/chunks/7-Cs4tQiJY.js.map +0 -1
- package/build/server/chunks/IconServer-ByAeszv0.js.map +0 -1
- package/build/server/chunks/IconStop-DFbhUtaJ.js.map +0 -1
- package/build/server/chunks/_layout.svelte-DFMW9sdO.js.map +0 -1
- package/build/server/chunks/_page.svelte-CborsVrn.js.map +0 -1
- package/build/server/chunks/_page.svelte-Cz3JYioD.js.map +0 -1
- package/build/server/chunks/_page.svelte-DojSR6TL.js.map +0 -1
- package/build/server/chunks/_server.ts-CKcFu8B-.js.map +0 -1
- package/build/server/chunks/_server.ts-CYY3W2qh.js.map +0 -1
- package/build/server/chunks/compose-args2-cix5m26E.js.map +0 -1
- package/build/server/chunks/docker2-DqIy9JYf.js.map +0 -1
- package/build/server/chunks/format-date-gcou_Av8.js.map +0 -1
- package/build/server/chunks/hooks.server-CwIkB_d8.js.map +0 -1
- package/build/server/chunks/landing-BAWznbys.js.map +0 -1
- package/build/server/chunks/runtime-context.svelte-FZapSP7A.js +0 -24
- package/build/server/chunks/runtime-context.svelte-FZapSP7A.js.map +0 -1
- package/build/server/chunks/voice-state.svelte-bOoc1Vo0.js.map +0 -1
- /package/build/client/_app/immutable/assets/{IconStop.BsTA83Hx.css → IconSoundOn.BsTA83Hx.css} +0 -0
- /package/build/client/_app/immutable/assets/{IconStop.BsTA83Hx.css.br → IconSoundOn.BsTA83Hx.css.br} +0 -0
- /package/build/client/_app/immutable/assets/{IconStop.BsTA83Hx.css.gz → IconSoundOn.BsTA83Hx.css.gz} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-CKcFu8B-.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/import-host/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { Nt as createLogger, dt as authJsonPath, t as buildComposeOptions } from \"../../../../../chunks/compose-args.js\";\nimport { i as checkDocker } from \"../../../../../chunks/docker.js\";\nimport { o as detectHostOpenCode, s as importHostOpenCode } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { t as opencodeFetch } from \"../../../../../chunks/http.js\";\nimport { t as composeRestart } from \"../../../../../chunks/docker3.js\";\nimport { existsSync, readFileSync } from \"node:fs\";\n//#region src/routes/api/setup/import-host/+server.ts\n/**\n* POST /api/setup/import-host\n*\n* Setup-phase equivalent of POST /admin/providers/import-host.\n* No admin auth required — the admin token hasn't been written yet during setup.\n*\n* Copies host OpenCode config + auth into OP_HOME and live-pushes credentials\n* to the running OpenCode subprocess so providers appear connected immediately.\n*/\nvar logger = createLogger(\"setup:import-host\");\nasync function pushAuthToOpenCode(authPath) {\n\tlet raw;\n\ttry {\n\t\traw = JSON.parse(readFileSync(authPath, \"utf-8\"));\n\t} catch (err) {\n\t\treturn {\n\t\t\tpushed: [],\n\t\t\terrors: [{\n\t\t\t\tprovider: \"*\",\n\t\t\t\terror: `Could not read auth.json: ${err instanceof Error ? err.message : String(err)}`\n\t\t\t}]\n\t\t};\n\t}\n\tif (!raw || typeof raw !== \"object\" || Array.isArray(raw)) return {\n\t\tpushed: [],\n\t\terrors: [{\n\t\t\tprovider: \"*\",\n\t\t\terror: \"auth.json is not a JSON object\"\n\t\t}]\n\t};\n\tconst pushed = [];\n\tconst errors = [];\n\tfor (const [providerId, value] of Object.entries(raw)) {\n\t\tif (providerId === \"anthropic\") continue;\n\t\ttry {\n\t\t\tawait opencodeFetch(`/auth/${encodeURIComponent(providerId)}`, {\n\t\t\t\tmethod: \"PUT\",\n\t\t\t\tbody: JSON.stringify(value)\n\t\t\t});\n\t\t\tpushed.push(providerId);\n\t\t} catch (err) {\n\t\t\terrors.push({\n\t\t\t\tprovider: providerId,\n\t\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t\t});\n\t\t}\n\t}\n\treturn {\n\t\tpushed,\n\t\terrors\n\t};\n}\n/** Restart provider-consuming services so they re-read imported startup config. */\nasync function restartProviderConsumers(state) {\n\tconst services = [\"assistant\"];\n\tif (!(await checkDocker()).ok) return {\n\t\trestarted: [],\n\t\tfailed: services.map((s) => ({\n\t\t\tservice: s,\n\t\t\terror: \"docker unavailable\"\n\t\t}))\n\t};\n\tconst opts = buildComposeOptions(state);\n\tconst restarted = [];\n\tconst failed = [];\n\tfor (const service of services) try {\n\t\tconst r = await composeRestart([service], opts);\n\t\tif (r.ok) restarted.push(service);\n\t\telse failed.push({\n\t\t\tservice,\n\t\t\terror: r.stderr || `exit ${r.code}`\n\t\t});\n\t} catch (err) {\n\t\tfailed.push({\n\t\t\tservice,\n\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n\treturn {\n\t\trestarted,\n\t\tfailed\n\t};\n}\n/** Read the provider ids present in an auth.json, ignoring read/parse errors. */\nfunction providerIdsFromAuth(authPath) {\n\ttry {\n\t\tconst raw = JSON.parse(readFileSync(authPath, \"utf-8\"));\n\t\tif (raw && typeof raw === \"object\" && !Array.isArray(raw)) return Object.keys(raw);\n\t} catch {}\n\treturn [];\n}\nvar POST = async () => {\n\tconst state = getState();\n\tlet result;\n\ttry {\n\t\tresult = importHostOpenCode(state, { overwriteConflicts: false });\n\t} catch (err) {\n\t\treturn json({\n\t\t\tok: false,\n\t\t\terror: `Could not copy host OpenCode config: ${err instanceof Error ? err.message : String(err)}`\n\t\t}, { status: 500 });\n\t}\n\tconst importedAuthPath = authJsonPath(state);\n\tlet importedProviderIds = [];\n\tif (result.imported.credentials > 0 || existsSync(importedAuthPath)) {\n\t\tconst fromDestination = providerIdsFromAuth(importedAuthPath);\n\t\tif (fromDestination.length > 0) importedProviderIds = fromDestination;\n\t\telse if (result.imported.credentials > 0) {\n\t\t\tconst hostStatus = detectHostOpenCode();\n\t\t\tconst hostFallback = hostStatus.authPath ? providerIdsFromAuth(hostStatus.authPath) : [];\n\t\t\tlogger.warn(\"post-copy auth.json read returned no providers despite credentials being reported; falling back to host auth.json\", {\n\t\t\t\timportedAuthPath,\n\t\t\t\timportedCredentials: result.imported.credentials,\n\t\t\t\tfallbackCount: hostFallback.length\n\t\t\t});\n\t\t\timportedProviderIds = hostFallback;\n\t\t}\n\t}\n\tconst conflictProviders = result.conflicts;\n\tconst authPathToUse = existsSync(importedAuthPath) ? importedAuthPath : null;\n\tlet pushResult = {\n\t\tpushed: [],\n\t\terrors: []\n\t};\n\tif (authPathToUse) pushResult = await pushAuthToOpenCode(authPathToUse);\n\tconst restart = await restartProviderConsumers(state);\n\treturn json({\n\t\tok: true,\n\t\timported: result.imported,\n\t\timportedProviders: importedProviderIds,\n\t\tconflicts: result.conflicts.length,\n\t\tconflictProviders,\n\t\tlivePushed: pushResult.pushed.length,\n\t\tpushedProviders: pushResult.pushed,\n\t\terrors: pushResult.errors,\n\t\trestarted: restart.restarted,\n\t\trestartFailed: restart.failed\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-CYY3W2qh.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/host/voice/_server.ts.js"],"sourcesContent":["import { A as getAddonProfileAvailability, D as setAddonEnabled, Dt as stackDirFor, E as listEnabledAddonIds, O as setAddonProfileSelection, X as readStackEnv, b as getAddonProfileSelection, j as addonProfileId, k as execFileNoThrow, t as buildComposeOptions, x as getAddonProfiles, y as annotateAddonProfileAvailability } from \"../../../../../chunks/compose-args.js\";\nimport { t as applyStack, v as composeStop } from \"../../../../../chunks/docker.js\";\nimport { J as dockerHasNvidiaRuntime, l as writeVoiceVars, q as detectRootlessDocker } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { a as getRequestId, c as jsonResponse, d as requireCapability, r as errorResponse, u as requireAdmin } from \"../../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../../chunks/serial-queue.js\";\nimport { existsSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { connect } from \"node:net\";\n//#region src/lib/server/voice-errors.ts\n/**\n* Translate raw docker / compose stderr into operator-actionable copy.\n*\n* Lives in $lib/server so the route can import it without violating\n* SvelteKit's +server.ts export rules (handlers + `_`-prefixed only).\n*\n* Pattern matches are intentionally case-insensitive and tolerant of\n* compose-CLI prefix decoration. Order matters: more specific patterns\n* first.\n*/\nfunction translateDockerError(stderr) {\n\tconst raw = (stderr ?? \"\").trim();\n\tif (!raw) return \"Docker reported an unknown error (no stderr).\";\n\tif (/spawn .*docker.*ENOENT|no such file or directory.*docker|docker:\\s*command not found/i.test(raw)) return \"Docker isn't installed on this host. Install Docker Engine or Docker Desktop, then retry.\";\n\tif (/pull access denied|manifest unknown|repository does not exist|not found: manifest unknown/i.test(raw)) return \"The voice image for this profile isn't published yet. Try the CPU profile.\";\n\tif (/failed to resolve reference|dial tcp.*lookup .+docker\\.io|i\\/o timeout.*registry|connection refused.*registry/i.test(raw)) return \"Can't reach Docker Hub. Check your internet connection, corporate firewall, or configure a registry mirror.\";\n\tif (/no space left on device|insufficient.*disk space|ENOSPC|write.*disk full/i.test(raw)) return \"Out of disk space. Free space and try again, or run `docker image prune -a` to reclaim unused images.\";\n\tif (/port is already allocated|bind.*address already in use|address already in use|failed to bind host port/i.test(raw)) return \"Port 8880 is already in use on this host. Free it or change the host port (set OP_VOICE_PORT_HOST).\";\n\tif (/unknown[^\\n]*runtime[^\\n]*nvidia|runtime\\s+\"nvidia\"\\s+not\\s+found|nvidia.*runtime.*not[^a-z]+(found|registered)/i.test(raw)) return \"The NVIDIA Docker runtime isn't registered on this machine. Try the CPU profile, or install nvidia-container-toolkit.\";\n\tif (/invoking the NVIDIA Container Runtime Hook/i.test(raw)) return \"Docker is in CDI mode but no CDI spec is registered. Try the CPU profile.\";\n\treturn raw.length > 300 ? `${raw.slice(0, 297)}…` : raw;\n}\n//#endregion\n//#region src/lib/server/voice/bring-up.ts\n/**\n* Voice addon bring-up engine — the Docker/compose infrastructure behind\n* PUT /admin/voice. Extracted from the route so the HTTP handler stays a\n* thin request-validation + delegation layer (mirrors the\n* lib/server/endpoints.ts ↔ admin/endpoints/+server.ts split).\n*\n* Responsibilities:\n* - Docker image inspection + resolution (dockerImagePresent / resolveServiceImage)\n* - UI-local host probes (TCP port, container health) — the rootless /\n* nvidia-runtime host-fact probes live in lib (control-plane/voice-host-probes.ts)\n* beside hardware-detect.ts, since they inspect the host, not addon/UI state.\n* - Fallback-overlay SELECTION only: voice.compose.cdi.yml and\n* voice.compose.rootless.yml ship as static files in the skeleton's\n* managed system/stack/ tree (packages/skeleton/system/stack/) — nothing\n* here generates compose YAML.\n* - The in-memory background-job registry (activeJobs)\n* - The engageVoiceAddon orchestration that the route delegates to; the\n* actual compose-up + health-wait lifecycle (runBringUp) is a thin\n* shim over `@openpalm/lib`'s single `applyStack` driver (plan 2.2) —\n* this file keeps only job registry + progress-step rendering, plus the\n* \"warming\" re-probe and voice-specific error-copy translation that\n* applyStack's generic result doesn't carry.\n*\n* Everything here is server-only (uses node:child_process / node:net /\n* node:fs) and returns plain data — the route maps the results to HTTP\n* responses.\n*/\nvar VOICE_ADDON = \"voice\";\nvar VOICE_PROBE_TIMEOUT_MS = 18e4;\nvar PORT_PROBE_TIMEOUT_MS = 750;\nvar JOB_RETAIN_MS = 5 * 6e4;\nvar activeJobs = /* @__PURE__ */ new Map();\nfunction setJob(addon, patch) {\n\tconst existing = activeJobs.get(addon);\n\tconst next = existing ? {\n\t\t...existing,\n\t\t...patch\n\t} : {\n\t\tstate: \"pulling\",\n\t\tsteps: [],\n\t\tstartedAt: Date.now(),\n\t\t...patch\n\t};\n\tactiveJobs.set(addon, next);\n\treturn next;\n}\nfunction getActiveJob(addon) {\n\tconst job = activeJobs.get(addon);\n\tif (!job) return void 0;\n\tif (Date.now() - (job.finishedAt ?? job.startedAt) > JOB_RETAIN_MS) {\n\t\tactiveJobs.delete(addon);\n\t\treturn;\n\t}\n\treturn job;\n}\n/**\n* Pick the best profile for this host. Prefers the first available GPU\n* profile (anything that isn't the canonical CPU profile) so operators with NVIDIA/AMD hardware\n* get the accelerated variant auto-selected. Falls back to the labelled\n* default, then first available, then first profile.\n*/\nfunction resolveDefaultProfile(profiles) {\n\tif (profiles.length === 0) return null;\n\tconst availableGpu = profiles.find((p) => p.id !== addonProfileId(\"voice\", \"cpu\") && p.available !== false);\n\tif (availableGpu) return availableGpu.id;\n\tconst labelledDefault = profiles.find((p) => p.default);\n\tif (labelledDefault && labelledDefault.available !== false) return labelledDefault.id;\n\tconst firstAvailable = profiles.find((p) => p.available !== false);\n\tif (firstAvailable) return firstAvailable.id;\n\treturn profiles[0].id;\n}\nfunction voiceHostPort() {\n\tconst raw = process.env.OP_VOICE_PORT_HOST?.trim();\n\tconst n = raw ? Number(raw) : NaN;\n\treturn Number.isFinite(n) && n > 0 ? n : 8880;\n}\nfunction openpalmVoiceBaseURL() {\n\treturn `http://127.0.0.1:${voiceHostPort()}`;\n}\n/**\n* True when the local docker daemon already has the named image cached.\n* `docker image inspect` exits 0 only when the image is present locally.\n*/\nasync function dockerImagePresent(imageRef) {\n\tif (!imageRef) return true;\n\treturn (await execFileNoThrow(\"docker\", [\n\t\t\"image\",\n\t\t\"inspect\",\n\t\timageRef\n\t], 5e3)).ok;\n}\n/**\n* Heuristic: image tags that include `-cu121` / `-rocm6` / `-cpu` are the\n* multi-GB voice images. Show the \"this may take a few minutes\" toast for\n* first pulls so the operator knows the upcoming compose-up isn't stuck.\n*/\nfunction isLargeImageTag(imageRef) {\n\treturn /(-cu\\d+|-rocm\\d+|-cpu)(\\s|$|@|\\b)/i.test(imageRef);\n}\nfunction resolveProjectName() {\n\treturn process.env.OP_PROJECT_NAME?.trim() || process.env.COMPOSE_PROJECT_NAME?.trim() || \"openpalm\";\n}\n/**\n* Read the resolved image for a service from the merged compose config.\n* Best-effort — returns \"\" on any failure so callers can skip the pre-pull\n* check rather than blocking save.\n*/\nasync function resolveServiceImage(composeFiles, service) {\n\tconst args = [\"compose\"];\n\tfor (const f of composeFiles) args.push(\"-f\", f);\n\targs.push(\"--project-name\", resolveProjectName(), \"config\", \"--format\", \"json\");\n\tconst res = await execFileNoThrow(\"docker\", args, 15e3);\n\tif (!res.ok) return \"\";\n\ttry {\n\t\treturn JSON.parse(res.stdout).services?.[service]?.image ?? \"\";\n\t} catch {\n\t\treturn \"\";\n\t}\n}\n/**\n* Probe a TCP port on 127.0.0.1. Resolves true when the connect succeeds\n* within PORT_PROBE_TIMEOUT_MS — meaning something is already listening.\n*/\nfunction isPortListening(port) {\n\treturn new Promise((resolve) => {\n\t\tconst socket = connect({\n\t\t\thost: \"127.0.0.1\",\n\t\t\tport\n\t\t});\n\t\tlet done = false;\n\t\tconst finish = (listening) => {\n\t\t\tif (done) return;\n\t\t\tdone = true;\n\t\t\ttry {\n\t\t\t\tsocket.destroy();\n\t\t\t} catch {}\n\t\t\tresolve(listening);\n\t\t};\n\t\tsocket.setTimeout(PORT_PROBE_TIMEOUT_MS, () => finish(false));\n\t\tsocket.once(\"connect\", () => finish(true));\n\t\tsocket.once(\"error\", () => finish(false));\n\t});\n}\n/**\n* True when a docker container whose name matches openpalm-voice* is\n* already running and presumably owns the host port. Used by the port\n* pre-flight to avoid false positives when our own voice container is\n* the listener.\n*/\nasync function ourVoiceContainerRunning() {\n\tconst res = await execFileNoThrow(\"docker\", [\n\t\t\"ps\",\n\t\t\"--filter\",\n\t\t\"name=openpalm-voice\",\n\t\t\"--format\",\n\t\t\"{{.Names}}\"\n\t], 5e3);\n\tif (!res.ok) return false;\n\treturn res.stdout.trim().length > 0;\n}\n/**\n* Read the Docker healthcheck state of a container.\n* Returns \"starting\" while compose's start_period grace window is in\n* effect; \"healthy\" / \"unhealthy\" / \"none\" / \"\" otherwise.\n*/\nasync function readContainerHealthStatus(containerNamePrefix) {\n\tconst name = (await execFileNoThrow(\"docker\", [\n\t\t\"ps\",\n\t\t\"--filter\",\n\t\t`name=${containerNamePrefix}`,\n\t\t\"--format\",\n\t\t\"{{.Names}}\"\n\t], 5e3)).stdout.split(\"\\n\").map((s) => s.trim()).find(Boolean);\n\tif (!name) return \"\";\n\treturn (await execFileNoThrow(\"docker\", [\n\t\t\"inspect\",\n\t\tname,\n\t\t\"--format\",\n\t\t\"{{if .State.Health}}{{.State.Health.Status}}{{else}}none{{end}}\"\n\t], 5e3)).stdout.trim();\n}\n/** Path of the static CDI overlay, or null when the managed tree isn't seeded yet. */\nfunction voiceCdiOverlayPath(homeDir) {\n\tconst overlayPath = join(stackDirFor(homeDir), \"voice.compose.cdi.yml\");\n\treturn existsSync(overlayPath) ? overlayPath : null;\n}\n/** Path of the static rootless overlay, or null when the managed tree isn't seeded yet. */\nfunction voiceRootlessOverlayPath(homeDir) {\n\tconst overlayPath = join(stackDirFor(homeDir), \"voice.compose.rootless.yml\");\n\treturn existsSync(overlayPath) ? overlayPath : null;\n}\n/**\n* Stops services from OTHER profiles, then routes the actual compose-up +\n* health-wait through `@openpalm/lib`'s single {@link applyStack} driver\n* (plan 2.2) — this function no longer runs its own composeUp or /health\n* poll. `applyStack`'s health-wait reads the SAME docker HEALTHCHECK every\n* voice compose service already declares (`curl .../health` inside the\n* container, `start_period: 180s`), so it observes exactly what the removed\n* manual HTTP poll observed, just via `docker inspect` instead of a\n* host-side fetch loop.\n*\n* Returns the terminal state. Pushed `steps` get mutated in place so the\n* caller (sync or background) can read progress as it happens.\n*/\nasync function runBringUp(input) {\n\tconst { state, services, activeProfile, extraFiles, availableProfiles, steps } = input;\n\tlet composeOk;\n\tlet composeErr;\n\tlet healthy = false;\n\ttry {\n\t\tconst otherProfileServices = availableProfiles.filter((p) => p.id !== activeProfile).flatMap((p) => p.services).filter((svc) => !services.includes(svc));\n\t\tif (otherProfileServices.length > 0) try {\n\t\t\tawait composeStop(otherProfileServices, buildComposeOptions(state));\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"[voice] composeStop other profiles failed:\", e);\n\t\t}\n\t\tconst baseOpts = buildComposeOptions(state);\n\t\tconst result = await applyStack({\n\t\t\tkind: \"services\",\n\t\t\tservices\n\t\t}, {\n\t\t\tfiles: [...baseOpts.files, ...extraFiles],\n\t\t\tenvFiles: baseOpts.envFiles,\n\t\t\tprofiles: activeProfile ? [activeProfile] : baseOpts.profiles\n\t\t}, void 0, { healthTimeoutMs: VOICE_PROBE_TIMEOUT_MS });\n\t\tif (result.upFailed) {\n\t\t\tcomposeOk = false;\n\t\t\tcomposeErr = translateDockerError(result.rawStderr || result.error || \"compose up failed\");\n\t\t} else {\n\t\t\tcomposeOk = true;\n\t\t\thealthy = result.ok;\n\t\t}\n\t} catch (e) {\n\t\tcomposeOk = false;\n\t\tcomposeErr = translateDockerError(e instanceof Error ? e.message : String(e));\n\t}\n\tsteps.push({\n\t\tstep: \"compose-up\",\n\t\tok: composeOk,\n\t\t...composeErr ? { detail: composeErr.slice(0, 500) } : {}\n\t});\n\tif (!composeOk) return {\n\t\tcomposeOk,\n\t\tcomposeErr,\n\t\thealthy: false,\n\t\twarming: false,\n\t\tsteps\n\t};\n\tlet warming = false;\n\tif (!healthy) try {\n\t\tif (await readContainerHealthStatus(\"openpalm-voice\") === \"starting\") warming = true;\n\t} catch {}\n\tsteps.push({\n\t\tstep: \"healthy\",\n\t\tok: healthy || warming,\n\t\t...healthy ? {} : warming ? { detail: \"still warming up — refresh in a moment\" } : { detail: `did not become healthy within ${VOICE_PROBE_TIMEOUT_MS / 1e3}s` }\n\t});\n\treturn {\n\t\tcomposeOk,\n\t\thealthy,\n\t\twarming,\n\t\tsteps\n\t};\n}\n/**\n* Background variant: runs runBringUp and persists state transitions\n* into the activeJobs map. Returns nothing — the UI polls GET\n* /admin/voice to observe completion.\n*/\nasync function runBringUpJob(input) {\n\tconst steps = [...input.baseSteps];\n\ttry {\n\t\tsetJob(VOICE_ADDON, {\n\t\t\tstate: \"starting\",\n\t\t\tsteps\n\t\t});\n\t\tconst outcome = await runBringUp({\n\t\t\t...input,\n\t\t\tsteps\n\t\t});\n\t\tif (!outcome.composeOk) {\n\t\t\tsetJob(VOICE_ADDON, {\n\t\t\t\tstate: \"error\",\n\t\t\t\tsteps: outcome.steps,\n\t\t\t\terror: `Voice addon failed to start: ${outcome.composeErr ?? \"unknown error\"}`,\n\t\t\t\tfinishedAt: Date.now()\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tsetJob(VOICE_ADDON, {\n\t\t\tstate: outcome.healthy ? \"healthy\" : outcome.warming ? \"starting\" : \"error\",\n\t\t\tsteps: outcome.steps,\n\t\t\t...outcome.healthy || outcome.warming ? { error: void 0 } : { error: \"Voice addon is starting but did not become healthy in time.\" },\n\t\t\tfinishedAt: Date.now()\n\t\t});\n\t} catch (e) {\n\t\tsetJob(VOICE_ADDON, {\n\t\t\tstate: \"error\",\n\t\t\tsteps,\n\t\t\terror: e instanceof Error ? e.message : String(e),\n\t\t\tfinishedAt: Date.now()\n\t\t});\n\t}\n}\n/**\n* The full PUT /admin/voice bring-up lifecycle after request validation:\n* auto-stop when disengaging, else resolve profile → enable addon →\n* port pre-flight → image inspect → host fallback overlays → background\n* short-circuit or synchronous compose-up + /health poll.\n*/\nasync function engageVoiceAddon(input) {\n\tconst { state, wantsVoiceAddon, requestedProfile } = input;\n\tif (!wantsVoiceAddon) {\n\t\tif (listEnabledAddonIds(state.homeDir).includes(\"voice\")) try {\n\t\t\tconst voiceServiceNames = getAddonProfiles(state.homeDir, VOICE_ADDON).flatMap((p) => p.services);\n\t\t\tconst unique = Array.from(new Set(voiceServiceNames));\n\t\t\tif (unique.length > 0) await composeStop(unique, buildComposeOptions(state));\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"[voice] composeStop on disengage failed:\", e);\n\t\t}\n\t\treturn { status: \"disengaged\" };\n\t}\n\tconst availableProfiles = await annotateAddonProfileAvailability(getAddonProfiles(state.homeDir, VOICE_ADDON));\n\tlet activeProfile = null;\n\tif (requestedProfile) {\n\t\tif (!availableProfiles.some((p) => p.id === requestedProfile)) return {\n\t\t\tstatus: \"invalid_profile\",\n\t\t\tmessage: `Unknown voice profile \"${requestedProfile}\". Available: ${availableProfiles.map((p) => p.id).join(\", \") || \"(none)\"}`\n\t\t};\n\t\tactiveProfile = requestedProfile;\n\t\tsetAddonProfileSelection(state.homeDir, VOICE_ADDON, activeProfile);\n\t} else activeProfile = getAddonProfileSelection(state.homeDir, \"voice\") ?? resolveDefaultProfile(availableProfiles);\n\tconst wasAlreadyEnabled = listEnabledAddonIds(state.homeDir).includes(VOICE_ADDON);\n\tconst steps = [];\n\tif (!wasAlreadyEnabled) try {\n\t\tsetAddonEnabled(state.homeDir, VOICE_ADDON, true, state);\n\t\tsteps.push({\n\t\t\tstep: \"enable\",\n\t\t\tok: true\n\t\t});\n\t} catch (e) {\n\t\tconst detail = e instanceof Error ? e.message : String(e);\n\t\tsteps.push({\n\t\t\tstep: \"enable\",\n\t\t\tok: false,\n\t\t\tdetail\n\t\t});\n\t\treturn {\n\t\t\tstatus: \"error\",\n\t\t\twasAlreadyEnabled,\n\t\t\tsteps,\n\t\t\terror: `Could not enable voice addon: ${detail}`\n\t\t};\n\t}\n\telse steps.push({\n\t\tstep: \"enable\",\n\t\tok: true,\n\t\tdetail: \"already enabled\"\n\t});\n\tconst hostPort = voiceHostPort();\n\tconst inVitest = !!process.env.VITEST;\n\tif (inVitest ? false : await isPortListening(hostPort)) {\n\t\tif (!await ourVoiceContainerRunning()) {\n\t\t\tconst msg = translateDockerError(`Bind for 127.0.0.1:${hostPort} failed: port is already allocated`);\n\t\t\tsteps.push({\n\t\t\t\tstep: \"port-check\",\n\t\t\t\tok: false,\n\t\t\t\tdetail: msg\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tstatus: \"error\",\n\t\t\t\twasAlreadyEnabled,\n\t\t\t\tsteps,\n\t\t\t\terror: msg\n\t\t\t};\n\t\t}\n\t\tsteps.push({\n\t\t\tstep: \"port-check\",\n\t\t\tok: true,\n\t\t\tdetail: \"our container is the listener\"\n\t\t});\n\t} else steps.push({\n\t\tstep: \"port-check\",\n\t\tok: true\n\t});\n\tconst profileServices = activeProfile ? availableProfiles.find((p) => p.id === activeProfile)?.services ?? [] : [];\n\tconst services = profileServices.length > 0 ? profileServices : [VOICE_ADDON];\n\tconst composeFilesBase = buildComposeOptions(state).files;\n\tconst primaryService = services[0];\n\tlet backgroundPull = false;\n\tif (primaryService && !inVitest) {\n\t\tconst imageRef = await resolveServiceImage(composeFilesBase, primaryService);\n\t\tif (imageRef && isLargeImageTag(imageRef)) {\n\t\t\tif (!await dockerImagePresent(imageRef)) {\n\t\t\t\tbackgroundPull = true;\n\t\t\t\tsteps.push({\n\t\t\t\t\tstep: \"pulling\",\n\t\t\t\t\tok: true,\n\t\t\t\t\tdetail: \"first-time download — several minutes for several GB\"\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\tconst extraFiles = [];\n\tconst cdiFallbackSupported = process.platform !== \"win32\";\n\tif (activeProfile === addonProfileId(\"voice\", \"cuda\") && !inVitest && cdiFallbackSupported) {\n\t\tconst runtimeMissing = (await getAddonProfileAvailability({ id: addonProfileId(\"voice\", \"cuda\") })).available === false || !await dockerHasNvidiaRuntime();\n\t\tconst cdiSpecPresent = existsSync(\"/etc/cdi/nvidia.yaml\");\n\t\tif (runtimeMissing && cdiSpecPresent) {\n\t\t\tconst overlay = voiceCdiOverlayPath(state.homeDir);\n\t\t\tif (overlay) {\n\t\t\t\textraFiles.push(overlay);\n\t\t\t\tsteps.push({\n\t\t\t\t\tstep: \"cdi-fallback\",\n\t\t\t\t\tok: true,\n\t\t\t\t\tdetail: \"using CDI device reservation\"\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\tif (!inVitest) try {\n\t\tif (await detectRootlessDocker()) {\n\t\t\tconst overlay = voiceRootlessOverlayPath(state.homeDir);\n\t\t\tif (overlay) {\n\t\t\t\textraFiles.push(overlay);\n\t\t\t\tsteps.push({\n\t\t\t\t\tstep: \"rootless-fallback\",\n\t\t\t\t\tok: true,\n\t\t\t\t\tdetail: \"dropping user: directive for rootless Docker\"\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn(\"[voice] rootless detection failed:\", e);\n\t}\n\tif (backgroundPull) {\n\t\tsetJob(VOICE_ADDON, {\n\t\t\tstate: \"pulling\",\n\t\t\tsteps: [...steps],\n\t\t\tstartedAt: Date.now(),\n\t\t\tprofile: activeProfile ?? void 0,\n\t\t\tfinishedAt: void 0,\n\t\t\terror: void 0\n\t\t});\n\t\trunBringUpJob({\n\t\t\tstate,\n\t\t\tservices,\n\t\t\tactiveProfile,\n\t\t\textraFiles,\n\t\t\tavailableProfiles,\n\t\t\tbaseSteps: [...steps]\n\t\t});\n\t\treturn {\n\t\t\tstatus: \"background\",\n\t\t\twasAlreadyEnabled,\n\t\t\tsteps,\n\t\t\tmessage: \"Voice image is downloading in the background (~2–8 GB). Poll GET /admin/voice for progress; UI auto-refreshes.\"\n\t\t};\n\t}\n\tconst outcome = await runBringUp({\n\t\tstate,\n\t\tservices,\n\t\tactiveProfile,\n\t\textraFiles,\n\t\tavailableProfiles,\n\t\tsteps\n\t});\n\tif (!outcome.composeOk) return {\n\t\tstatus: \"error\",\n\t\twasAlreadyEnabled,\n\t\tsteps: outcome.steps,\n\t\terror: `Voice addon failed to start: ${outcome.composeErr ?? \"unknown error\"}`\n\t};\n\treturn {\n\t\tstatus: \"final\",\n\t\twasAlreadyEnabled,\n\t\tsteps: outcome.steps,\n\t\thealthy: outcome.healthy,\n\t\twarming: outcome.warming\n\t};\n}\n//#endregion\n//#region src/routes/api/host/voice/+server.ts\nvar REACHABILITY_TIMEOUT_MS = 1500;\nasync function probeReachable(baseURL) {\n\tif (!baseURL) return false;\n\tconst url = `${baseURL.replace(/\\/+$/, \"\")}/v1/models`;\n\ttry {\n\t\treturn (await fetch(url, {\n\t\t\tmethod: \"GET\",\n\t\t\tsignal: AbortSignal.timeout(REACHABILITY_TIMEOUT_MS)\n\t\t})).status < 500;\n\t} catch {\n\t\treturn false;\n\t}\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst capabilityError = requireCapability(event, \"host:stack:read\", requestId);\n\tif (capabilityError) return capabilityError;\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tconst env = readStackEnv(state.homeDir);\n\tconst ttsBaseURL = env.OP_TTS_BASE_URL ?? \"\";\n\tconst sttBaseURL = env.OP_STT_BASE_URL ?? \"\";\n\tconst profiles = await annotateAddonProfileAvailability(getAddonProfiles(state.homeDir, VOICE_ADDON));\n\tconst selectedProfile = getAddonProfileSelection(state.homeDir, \"voice\") ?? resolveDefaultProfile(profiles);\n\tconst [sttReachable, ttsReachable] = await Promise.all([probeReachable(sttBaseURL), probeReachable(ttsBaseURL)]);\n\treturn jsonResponse(200, {\n\t\ttts: {\n\t\t\tenabled: true,\n\t\t\tengine: env.OP_TTS_ENGINE ?? \"\",\n\t\t\tprovider: env.OP_TTS_PROVIDER ?? \"\",\n\t\t\tbaseURL: ttsBaseURL,\n\t\t\tmodel: env.OP_TTS_MODEL ?? \"\",\n\t\t\tvoice: env.OP_TTS_VOICE ?? \"\"\n\t\t},\n\t\tstt: {\n\t\t\tenabled: true,\n\t\t\tengine: env.OP_STT_ENGINE ?? \"\",\n\t\t\tprovider: env.OP_STT_PROVIDER ?? \"\",\n\t\t\tbaseURL: sttBaseURL,\n\t\t\tmodel: env.OP_STT_MODEL ?? \"\",\n\t\t\tlanguage: env.OP_STT_LANGUAGE ?? \"\"\n\t\t},\n\t\tavailability: {\n\t\t\tstt: {\n\t\t\t\tremoteConfigured: Boolean(sttBaseURL),\n\t\t\t\tremoteReachable: sttReachable\n\t\t\t},\n\t\t\ttts: {\n\t\t\t\tremoteConfigured: Boolean(ttsBaseURL),\n\t\t\t\tremoteReachable: ttsReachable\n\t\t\t}\n\t\t},\n\t\taddon: {\n\t\t\tprofiles,\n\t\t\tselectedProfile,\n\t\t\t...getActiveJob(\"voice\") ? { activeJob: getActiveJob(VOICE_ADDON) } : {}\n\t\t}\n\t}, requestId);\n};\nfunction readSection(raw, kind) {\n\tif (!raw || typeof raw !== \"object\") return null;\n\tconst section = {\n\t\tenabled: raw.enabled !== false,\n\t\tengine: typeof raw.engine === \"string\" ? raw.engine : void 0,\n\t\tprovider: typeof raw.provider === \"string\" ? raw.provider : void 0,\n\t\tbaseURL: typeof raw.baseURL === \"string\" ? raw.baseURL : void 0,\n\t\tmodel: typeof raw.model === \"string\" ? raw.model : void 0\n\t};\n\tif (kind === \"tts\" && typeof raw.voice === \"string\") section.voice = raw.voice;\n\tif (kind === \"stt\" && typeof raw.language === \"string\") section.language = raw.language;\n\treturn section;\n}\nvar OPENPALM_VOICE_TTS_MODEL = \"kokoro\";\nvar OPENPALM_VOICE_STT_MODEL = \"whisper-1\";\nvar OPENPALM_VOICE_DEFAULT_VOICE = \"bf_isabella\";\n/**\n* For `engine === 'openpalm-voice'`, fill in baseURL/model with the addon's\n* preset values when the user didn't provide them. This is the auto-config\n* that makes \"select OpenPalm Voice → Save\" Just Work as long as the addon\n* is enabled. The user can still override (e.g. point at a different\n* voice host on the LAN).\n*/\nfunction applyOpenPalmVoicePreset(section, kind) {\n\tif (section.engine !== \"openpalm-voice\") return;\n\tif (!section.baseURL?.trim()) section.baseURL = openpalmVoiceBaseURL();\n\tif (!section.model?.trim()) section.model = kind === \"tts\" ? OPENPALM_VOICE_TTS_MODEL : OPENPALM_VOICE_STT_MODEL;\n\tif (kind === \"tts\" && !section.voice?.trim()) section.voice = OPENPALM_VOICE_DEFAULT_VOICE;\n}\nfunction validateSection(section, kind) {\n\tif (!section?.engine) return null;\n\tif (section.engine === \"browser\" || section.engine === \"browser-stt\" || section.engine === \"browser-tts\") return null;\n\tif (section.engine.startsWith(\"skip-\")) return null;\n\tif (!section.baseURL?.trim()) return `Remote ${kind.toUpperCase()} requires an endpoint URL.`;\n\treturn null;\n}\nvar PUT = (event) => {\n\treturn withSerialQueue(\"admin:voice:put\", () => handlePut(event));\n};\nasync function handlePut(event) {\n\tconst requestId = getRequestId(event);\n\tconst capabilityError = requireCapability(event, \"host:stack:write\", requestId);\n\tif (capabilityError) return capabilityError;\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\treturn errorResponse(400, \"Bad Request\", \"Invalid JSON body\", {}, requestId);\n\t}\n\tif (!body || typeof body !== \"object\") return errorResponse(400, \"Bad Request\", \"Body must be an object\", {}, requestId);\n\tconst b = body;\n\tconst ttsSection = readSection(b.tts, \"tts\");\n\tconst sttSection = readSection(b.stt, \"stt\");\n\tif (ttsSection) applyOpenPalmVoicePreset(ttsSection, \"tts\");\n\tif (sttSection) applyOpenPalmVoicePreset(sttSection, \"stt\");\n\tconst ttsErr = validateSection(ttsSection, \"tts\");\n\tif (ttsErr) return errorResponse(400, \"invalid_tts\", ttsErr, {}, requestId);\n\tconst sttErr = validateSection(sttSection, \"stt\");\n\tif (sttErr) return errorResponse(400, \"invalid_stt\", sttErr, {}, requestId);\n\tconst config = {};\n\tif (ttsSection) config.tts = {\n\t\tenabled: ttsSection.enabled,\n\t\tengine: ttsSection.engine,\n\t\tprovider: ttsSection.provider,\n\t\tbaseURL: ttsSection.baseURL,\n\t\tmodel: ttsSection.model,\n\t\tvoice: ttsSection.voice\n\t};\n\tif (sttSection) config.stt = {\n\t\tenabled: sttSection.enabled,\n\t\tengine: sttSection.engine,\n\t\tprovider: sttSection.provider,\n\t\tbaseURL: sttSection.baseURL,\n\t\tmodel: sttSection.model,\n\t\tlanguage: sttSection.language\n\t};\n\twriteVoiceVars(config, state.homeDir);\n\tconst result = await engageVoiceAddon({\n\t\tstate,\n\t\twantsVoiceAddon: ttsSection?.engine === \"openpalm-voice\" || sttSection?.engine === \"openpalm-voice\",\n\t\trequestedProfile: typeof b.profile === \"string\" ? b.profile.trim() : \"\"\n\t});\n\tswitch (result.status) {\n\t\tcase \"disengaged\": return jsonResponse(200, { ok: true }, requestId);\n\t\tcase \"invalid_profile\": return errorResponse(400, \"invalid_profile\", result.message, {}, requestId);\n\t\tcase \"error\": return jsonResponse(502, {\n\t\t\tok: false,\n\t\t\tvoiceAddon: {\n\t\t\t\twasAlreadyEnabled: result.wasAlreadyEnabled,\n\t\t\t\tsteps: result.steps,\n\t\t\t\terror: result.error\n\t\t\t}\n\t\t}, requestId);\n\t\tcase \"background\": return jsonResponse(202, {\n\t\t\tok: true,\n\t\t\tvoiceAddon: {\n\t\t\t\twasAlreadyEnabled: result.wasAlreadyEnabled,\n\t\t\t\tstatus: \"pulling\",\n\t\t\t\tsteps: result.steps,\n\t\t\t\tmessage: result.message\n\t\t\t}\n\t\t}, requestId);\n\t\tcase \"final\": return jsonResponse(result.healthy || result.warming ? 200 : 502, {\n\t\t\tok: result.healthy || result.warming,\n\t\t\tvoiceAddon: {\n\t\t\t\twasAlreadyEnabled: result.wasAlreadyEnabled,\n\t\t\t\tsteps: result.steps,\n\t\t\t\t...result.warming ? { warming: true } : {},\n\t\t\t\t...result.healthy || result.warming ? {} : { error: \"Voice addon is starting but did not become healthy in time.\" }\n\t\t\t}\n\t\t}, requestId);\n\t}\n}\n//#endregion\nexport { GET, PUT };\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compose-args2-cix5m26E.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"docker2-DqIy9JYf.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"format-date-gcou_Av8.js","sources":["../../../.svelte-kit/adapter-node/chunks/format-date.js"],"sourcesContent":["import { V as attr, a as derived, n as attr_class, u as stringify } from \"./dev.js\";\nimport { d as buildHeaders, f as readErrorMessage, m as requireOk, p as request } from \"./voice-state.svelte.js\";\n//#region src/lib/api/endpoints.ts\nasync function fetchConnections() {\n\treturn await (await requireOk(await request(\"GET\", \"/api/connections\"))).json();\n}\nasync function setActiveConnection(id) {\n\treturn await (await requireOk(await request(\"POST\", \"/api/connections/active\", { id }))).json();\n}\n//#endregion\n//#region src/lib/chat/tool-strip.ts\nfunction valueToText$1(value) {\n\tif (typeof value === \"string\") return value;\n\tif (value == null) return \"\";\n\tif (typeof value === \"number\" || typeof value === \"boolean\") return String(value);\n\ttry {\n\t\treturn JSON.stringify(value);\n\t} catch {\n\t\treturn \"\";\n\t}\n}\nfunction firstText$1(...values) {\n\tfor (const value of values) {\n\t\tconst text = valueToText$1(value);\n\t\tif (text) return text;\n\t}\n\treturn \"\";\n}\nfunction toolStripEntryFromSessionPart(part, fallbackId) {\n\tif (part.type !== \"tool\" && !part.state) return null;\n\tconst status = part.state?.status ?? \"running\";\n\treturn {\n\t\tid: part.callID ?? part.id ?? fallbackId,\n\t\tkind: \"tool\",\n\t\ttool: part.tool ?? \"tool\",\n\t\tstatus,\n\t\ttitle: part.state?.title ?? part.tool ?? \"tool\",\n\t\tdetail: firstText$1(part.state?.input, part.state?.metadata, part.state?.progress, part.state?.output),\n\t\toutput: valueToText$1(part.state?.output),\n\t\terror: part.state?.error ?? \"\",\n\t\tupdatedAt: Date.now()\n\t};\n}\nfunction parseStructured(value) {\n\tconst trimmed = value.trim();\n\tif (!trimmed) return null;\n\tif (!(trimmed.startsWith(\"{\") && trimmed.endsWith(\"}\") || trimmed.startsWith(\"[\") && trimmed.endsWith(\"]\"))) return null;\n\ttry {\n\t\treturn JSON.parse(trimmed);\n\t} catch {\n\t\treturn null;\n\t}\n}\nfunction formatDetail(value) {\n\tconst structured = parseStructured(value);\n\treturn structured === null ? value : JSON.stringify(structured, null, 2);\n}\nfunction prettyLabel(label) {\n\tif (!label) return \"\";\n\treturn label.replace(/([a-z0-9])([A-Z])/g, \"$1 $2\").replace(/[_-]+/g, \" \").replace(/\\s+/g, \" \").trim().replace(/^./, (char) => char.toUpperCase());\n}\nfunction toolIconType(tool, status) {\n\tconst name = tool.toLowerCase();\n\tif (status === \"error\" || status === \"failed\") return \"alert\";\n\tif (name === \"step\") return status === \"completed\" ? \"done-circle\" : \"refresh\";\n\tif (name.includes(\"remember\") || name.includes(\"memory\")) return \"edit\";\n\tif (name.includes(\"help\") || name.includes(\"todo\")) return status === \"completed\" ? \"done\" : \"agent\";\n\tif (name.includes(\"bash\") || name.includes(\"shell\") || name.includes(\"command\")) return \"terminal\";\n\tif (name.includes(\"grep\") || name.includes(\"search\")) return \"search\";\n\tif (name.includes(\"read\") || name.includes(\"file\")) return \"file\";\n\tif (name.includes(\"edit\") || name.includes(\"write\") || name.includes(\"patch\")) return \"edit\";\n\tif (name.includes(\"web\") || name.includes(\"http\") || name.includes(\"fetch\")) return \"link\";\n\tif (name.includes(\"task\") || name.includes(\"agent\")) return \"agent\";\n\treturn status === \"completed\" ? \"done\" : \"clock\";\n}\nfunction timelineTitle(entry) {\n\treturn entry.kind === \"step\" ? entry.title : entry.title || entry.tool;\n}\nfunction toolKindLabel(entry) {\n\treturn entry.kind === \"step\" ? \"Step\" : \"Tool\";\n}\nfunction toolStatusLabel(status) {\n\tswitch (status) {\n\t\tcase \"completed\": return \"completed\";\n\t\tcase \"error\":\n\t\tcase \"failed\": return \"failed\";\n\t\tcase \"pending\": return \"queued\";\n\t\tdefault: return \"running\";\n\t}\n}\nfunction toolAriaLabel(entry) {\n\treturn `${toolKindLabel(entry)}: ${timelineTitle(entry)} (${toolStatusLabel(entry.status)})`;\n}\nfunction toolDetailRows(entry) {\n\tconst rows = [\n\t\t{\n\t\t\tlabel: \"Type\",\n\t\t\tvalue: toolKindLabel(entry)\n\t\t},\n\t\t{\n\t\t\tlabel: \"Name\",\n\t\t\tvalue: timelineTitle(entry)\n\t\t},\n\t\t{\n\t\t\tlabel: \"Status\",\n\t\t\tvalue: prettyLabel(toolStatusLabel(entry.status))\n\t\t}\n\t];\n\tif (entry.kind !== \"step\") rows.push({\n\t\tlabel: \"Tool ID\",\n\t\tvalue: entry.tool\n\t});\n\tif (entry.detail) rows.push({\n\t\tlabel: entry.kind === \"step\" ? \"Details\" : \"Input / Details\",\n\t\tvalue: formatDetail(entry.detail)\n\t});\n\tif (entry.output) rows.push({\n\t\tlabel: \"Output\",\n\t\tvalue: formatDetail(entry.output)\n\t});\n\tif (entry.error) rows.push({\n\t\tlabel: \"Error\",\n\t\tvalue: formatDetail(entry.error),\n\t\ttone: \"error\"\n\t});\n\treturn rows;\n}\n/** Patterns that indicate a command is carrying or referencing a secret. */\nvar SECRET_SIGNAL = /(token|secret|password|key\\s*=|key=)/i;\n/** Cleaned-first-segment prefix → friendly verb phrase. Order matters: more\n* specific prefixes must be checked before their broader siblings. */\nvar COMMAND_PHRASES = [\n\t{\n\t\tprefix: \"gh auth login\",\n\t\tphrase: \"Signed in to GitHub\"\n\t},\n\t{\n\t\tprefix: \"gh auth status\",\n\t\tphrase: \"Checked GitHub sign-in\"\n\t},\n\t{\n\t\tprefix: \"gh auth\",\n\t\tphrase: \"Set up GitHub access\"\n\t},\n\t{\n\t\tprefix: \"gh repo\",\n\t\tphrase: \"Looked up a GitHub repo\"\n\t},\n\t{\n\t\tprefix: \"gh \",\n\t\tphrase: \"Ran a GitHub command\"\n\t},\n\t{\n\t\tprefix: \"git config\",\n\t\tphrase: \"Configured git\"\n\t},\n\t{\n\t\tprefix: \"git \",\n\t\tphrase: \"Ran a git command\"\n\t},\n\t{\n\t\tprefix: \"akm add\",\n\t\tphrase: \"Added a knowledge source\"\n\t},\n\t{\n\t\tprefix: \"akm remove\",\n\t\tphrase: \"Removed a knowledge source\"\n\t},\n\t{\n\t\tprefix: \"akm \",\n\t\tphrase: \"Updated knowledge\"\n\t},\n\t{\n\t\tprefix: \"cat \",\n\t\tphrase: \"Read a file\"\n\t},\n\t{\n\t\tprefix: \"ls \",\n\t\tphrase: \"Listed files\"\n\t},\n\t{\n\t\tprefix: \"grep\",\n\t\tphrase: \"Searched files\"\n\t},\n\t{\n\t\tprefix: \"rg \",\n\t\tphrase: \"Searched files\"\n\t}\n];\n/** Strip leading `VAR=value ` env-var/token assignments repeatedly. */\nfunction stripLeadingAssignments(input) {\n\tlet out = input;\n\twhile (/^[A-Z_][A-Z0-9_]*=\\S+\\s+/.test(out)) out = out.replace(/^[A-Z_][A-Z0-9_]*=\\S+\\s+/, \"\");\n\treturn out;\n}\n/** Keep only the first command segment (before chaining/pipe operators). */\nfunction firstCommandSegment(input) {\n\tlet out = input;\n\tfor (const sep of [\n\t\t\" && \",\n\t\t\" || \",\n\t\t\" | \",\n\t\t\" ; \"\n\t]) {\n\t\tconst idx = out.indexOf(sep);\n\t\tif (idx >= 0) out = out.slice(0, idx);\n\t}\n\treturn out.trim();\n}\n/** Match a cleaned command against the friendly phrase table. */\nfunction phraseForCommand(cleaned) {\n\tconst lower = cleaned.toLowerCase();\n\tfor (const { prefix, phrase } of COMMAND_PHRASES) if (lower.startsWith(prefix)) return phrase;\n\treturn null;\n}\n/**\n* Human-readable, de-credentialed summary for a row title. Audience is\n* non-technical home users. Never throws and never returns an empty string.\n* Strips leading env-var/token assignments and refuses to surface raw commands\n* that contain secret material.\n*/\nfunction displayTitle(entry) {\n\ttry {\n\t\tif (entry.kind === \"step\") return entry.title;\n\t\tconst raw = (entry.title || entry.tool || \"\").trim();\n\t\tconst name = (entry.tool || \"\").toLowerCase();\n\t\tif (raw) {\n\t\t\tconst segment = firstCommandSegment(stripLeadingAssignments(raw));\n\t\t\tif (segment) {\n\t\t\t\tconst matched = phraseForCommand(segment);\n\t\t\t\tif (matched) return matched;\n\t\t\t\tif (SECRET_SIGNAL.test(segment)) {\n\t\t\t\t\tconst verb = segment.split(/\\s+/)[0] || \"\";\n\t\t\t\t\treturn verb ? `Ran a ${verb} command` : \"Ran a command\";\n\t\t\t\t}\n\t\t\t\tif (name.includes(\"read\") || name.includes(\"file\")) return \"Read a file\";\n\t\t\t\tif (name.includes(\"edit\") || name.includes(\"write\") || name.includes(\"patch\")) return \"Edited a file\";\n\t\t\t\tif (name.includes(\"grep\") || name.includes(\"search\")) return \"Searched\";\n\t\t\t\tif (name.includes(\"task\") || name.includes(\"agent\")) return entry.title;\n\t\t\t\treturn segment.replace(/^./, (char) => char.toUpperCase());\n\t\t\t}\n\t\t}\n\t\tif (name.includes(\"read\") || name.includes(\"file\")) return \"Read a file\";\n\t\tif (name.includes(\"edit\") || name.includes(\"write\") || name.includes(\"patch\")) return \"Edited a file\";\n\t\tif (name.includes(\"grep\") || name.includes(\"search\")) return \"Searched\";\n\t\tif (name.includes(\"task\") || name.includes(\"agent\")) return entry.title || entry.tool || \"Worked\";\n\t\treturn raw || entry.tool || \"Worked\";\n\t} catch {\n\t\treturn entry.title || entry.tool || \"Worked\";\n\t}\n}\n/**\n* Relative time label: \"just now\" (<45s), \"Nm ago\" (<60m), \"Nh ago\" (<24h),\n* \"Nd ago\" otherwise. Returns \"\" for falsy/zero timestamps and \"just now\" for\n* future timestamps.\n*/\nfunction relativeTimeLabel(updatedAt, now = Date.now()) {\n\tif (!updatedAt) return \"\";\n\tconst diff = now - updatedAt;\n\tif (diff < 0) return \"just now\";\n\tconst seconds = Math.floor(diff / 1e3);\n\tif (seconds < 45) return \"just now\";\n\tconst minutes = Math.floor(seconds / 60);\n\tif (minutes < 60) return `${minutes}m ago`;\n\tconst hours = Math.floor(minutes / 60);\n\tif (hours < 24) return `${hours}h ago`;\n\treturn `${Math.floor(hours / 24)}d ago`;\n}\n/**\n* Whether a tool entry should appear in the user-facing activity log. Filters\n* out internal todo-writer bookkeeping but never hides a failure.\n*/\nfunction isUserFacingTool(entry) {\n\tconst status = entry.status;\n\tif (status === \"error\" || status === \"failed\") return true;\n\tconst name = (entry.tool || \"\").toLowerCase();\n\tif (name === \"todowrite\" || name === \"todoread\") return false;\n\tconst label = entry.title || entry.tool || \"\";\n\tif (/^\\d+\\s+todos?$/i.test(label)) return false;\n\treturn true;\n}\n//#endregion\n//#region src/lib/chat/session-messages.ts\n/**\n* Flatten raw OpenCode session-message rows into UI `ChatEntry`s.\n*\n* Tool parts are grouped into the assistant turn that follows them (attached\n* as `toolStates` on the `ChatMessage`). If tool parts appear with no\n* following assistant text in the same OpenCode message they are emitted as a\n* single `ChatToolGroup` entry — never as N separate entries.\n*\n* Skips non-text, non-tool parts (files, reasoning, etc.). Empty-text\n* messages with no tool activity are dropped.\n*\n* Pure domain transformation (no transport) — kept next to `tool-strip.ts` so\n* the chat api client can call it and it can be unit-tested in isolation.\n*/\nfunction flattenSessionMessages(rows) {\n\tconst messages = [];\n\tfor (const row of rows) {\n\t\tconst timestamp = row.info.time?.created ?? Date.now();\n\t\tlet textBuffer = \"\";\n\t\tlet textIndex = 0;\n\t\tconst pendingToolStates = [];\n\t\tconst flushText = () => {\n\t\t\tconst text = textBuffer.trim();\n\t\t\ttextBuffer = \"\";\n\t\t\tif (!text && pendingToolStates.length === 0) return;\n\t\t\tif (text) {\n\t\t\t\tconst entry = {\n\t\t\t\t\tid: textIndex === 0 ? row.info.id : `${row.info.id}:text:${textIndex}`,\n\t\t\t\t\trole: row.info.role,\n\t\t\t\t\ttext,\n\t\t\t\t\ttimestamp\n\t\t\t\t};\n\t\t\t\tif (pendingToolStates.length > 0) {\n\t\t\t\t\tentry.toolStates = [...pendingToolStates];\n\t\t\t\t\tpendingToolStates.length = 0;\n\t\t\t\t}\n\t\t\t\tmessages.push(entry);\n\t\t\t\ttextIndex += 1;\n\t\t\t} else if (pendingToolStates.length > 0) {\n\t\t\t\tconst group = {\n\t\t\t\t\tid: `${row.info.id}:tools:${textIndex}`,\n\t\t\t\t\ttype: \"tool-group\",\n\t\t\t\t\ttoolStates: [...pendingToolStates],\n\t\t\t\t\ttimestamp\n\t\t\t\t};\n\t\t\t\tpendingToolStates.length = 0;\n\t\t\t\tmessages.push(group);\n\t\t\t\ttextIndex += 1;\n\t\t\t}\n\t\t};\n\t\trow.parts.forEach((part, index) => {\n\t\t\tif (part.type === \"text\" && part.text) {\n\t\t\t\ttextBuffer += part.text;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (part.type === \"tool\" || part.state) {\n\t\t\t\tconst toolState = toolStripEntryFromSessionPart(part, `${row.info.id}:${index}`);\n\t\t\t\tif (!toolState) return;\n\t\t\t\tpendingToolStates.push(toolState);\n\t\t\t}\n\t\t});\n\t\tflushText();\n\t}\n\treturn messages;\n}\n//#endregion\n//#region src/lib/api/chat.ts\n/**\n* Create a new OpenCode session via the SvelteKit broker.\n*\n* Only `/proxy/assistant/*` is reachable from the browser. The active\n* OpenCode instance is selected server-side via the connection switcher.\n*/\nasync function createSession() {\n\treturn await (await requireOk(await request(\"POST\", `/proxy/assistant/session`, {}))).json();\n}\n/**\n* List sessions on the active OpenCode endpoint.\n*\n* OpenCode returns `Array<Session>` with no ordering guarantee; we sort\n* desc by `time.updated` here so consumers can rely on it. See\n* docs/technical/multi-endpoint-session-ux.md §2.\n*/\nasync function listSessions() {\n\tconst summaries = (await (await requireOk(await request(\"GET\", \"/proxy/assistant/session\"))).json()).map((s) => ({\n\t\tid: s.id,\n\t\ttitle: s.title ?? \"\",\n\t\tcreatedAt: s.time?.created ?? 0,\n\t\tupdatedAt: s.time?.updated ?? s.time?.created ?? 0\n\t}));\n\tsummaries.sort((a, b) => b.updatedAt - a.updatedAt);\n\treturn summaries;\n}\n/**\n* Fetch the messages for a session and map them to UI `ChatEntry`s.\n*\n* The part-flattening/grouping logic lives in `flattenSessionMessages`\n* (`$lib/chat/session-messages.ts`) — this client only handles transport.\n*/\nasync function getSessionMessages(sessionId) {\n\treturn flattenSessionMessages(await (await requireOk(await request(\"GET\", `/proxy/assistant/session/${encodeURIComponent(sessionId)}/message`))).json());\n}\n/**\n* Send a message to an existing OpenCode session via the SvelteKit broker.\n* Uses direct fetch with a 150s AbortSignal timeout — OpenCode responses\n* can take 30–120s.\n*/\nasync function sendChatMessage(sessionId, text) {\n\tconst res = await fetch(`/proxy/assistant/session/${encodeURIComponent(sessionId)}/message`, {\n\t\tmethod: \"POST\",\n\t\theaders: {\n\t\t\t\"content-type\": \"application/json\",\n\t\t\t...buildHeaders()\n\t\t},\n\t\tcredentials: \"include\",\n\t\tbody: JSON.stringify({ parts: [{\n\t\t\ttype: \"text\",\n\t\t\ttext\n\t\t}] }),\n\t\tsignal: AbortSignal.timeout(15e4)\n\t});\n\tif (res.status === 401) throw Object.assign(/* @__PURE__ */ new Error(\"Sign-in required.\"), { status: 401 });\n\tif (!res.ok) {\n\t\tconst msg = await readErrorMessage(res);\n\t\tthrow Object.assign(new Error(msg), { status: res.status });\n\t}\n\treturn await res.json();\n}\nasync function startChatMessageTurn(sessionId, text) {\n\tconst res = await fetch(`/proxy/assistant/session/${encodeURIComponent(sessionId)}/message`, {\n\t\tmethod: \"POST\",\n\t\theaders: {\n\t\t\t\"content-type\": \"application/json\",\n\t\t\t...buildHeaders()\n\t\t},\n\t\tcredentials: \"include\",\n\t\tbody: JSON.stringify({ parts: [{\n\t\t\ttype: \"text\",\n\t\t\ttext\n\t\t}] }),\n\t\tsignal: AbortSignal.timeout(15e4)\n\t});\n\tif (res.status === 401) throw Object.assign(/* @__PURE__ */ new Error(\"Sign-in required.\"), { status: 401 });\n\tif (!res.ok) {\n\t\tconst msg = await readErrorMessage(res);\n\t\tthrow Object.assign(new Error(msg), { status: res.status });\n\t}\n}\n/**\n* Abort the in-flight turn on an existing session via the SvelteKit broker.\n* Best-effort from the caller's perspective — OpenCode exposes this as\n* `POST /session/{id}/abort` (see `@opencode-ai/sdk` `session.abort`).\n*/\nasync function abortChatTurn(sessionId) {\n\tawait (await requireOk(await request(\"POST\", `/proxy/assistant/session/${encodeURIComponent(sessionId)}/abort`, {}))).text().catch(() => \"\");\n}\nasync function replyChatPermission(requestId, reply) {\n\tawait (await requireOk(await request(\"POST\", `/proxy/assistant/permission/${encodeURIComponent(requestId)}/reply`, { reply }))).text().catch(() => \"\");\n}\nasync function replyChatQuestion(requestId, answers) {\n\tawait (await requireOk(await request(\"POST\", `/proxy/assistant/question/${encodeURIComponent(requestId)}/reply`, { answers }))).text().catch(() => \"\");\n}\nasync function rejectChatQuestion(requestId) {\n\tawait (await requireOk(await request(\"POST\", `/proxy/assistant/question/${encodeURIComponent(requestId)}/reject`, {}))).text().catch(() => \"\");\n}\n/**\n* Probe whether the assistant broker is reachable.\n* Returns true if the probe succeeds within 3s.\n*/\nasync function probeChatBackend() {\n\ttry {\n\t\treturn (await fetch(`/proxy/assistant/provider`, {\n\t\t\tmethod: \"GET\",\n\t\t\theaders: buildHeaders(),\n\t\t\tcredentials: \"include\",\n\t\t\tsignal: AbortSignal.timeout(3e3)\n\t\t})).ok;\n\t} catch {\n\t\treturn false;\n\t}\n}\n//#endregion\n//#region ../ui-kit/src/lib/components/icons/IconThemeSystem.svelte\nfunction IconThemeSystem($$renderer, $$props) {\n\tlet { size = 20, class: className = \"\" } = $$props;\n\t$$renderer.push(`<svg xmlns=\"http://www.w3.org/2000/svg\"${attr(\"width\", size)}${attr(\"height\", size)} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"${attr_class(`lucide lucide-sun-moon-icon lucide-sun-moon s-icon ${stringify(className)}`)}><path d=\"M12 2v2\"></path><path d=\"M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715\"></path><path d=\"M16 12a4 4 0 0 0-4-4\"></path><path d=\"m19 5-1.256 1.256\"></path><path d=\"M20 12h2\"></path></svg>`);\n}\n//#endregion\n//#region ../ui-kit/src/lib/components/icons/IconThemeLight.svelte\nfunction IconThemeLight($$renderer, $$props) {\n\tlet { size = 20, class: className = \"\" } = $$props;\n\t$$renderer.push(`<svg aria-hidden=\"true\"${attr(\"width\", size)}${attr(\"height\", size)} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"${attr_class(`s-icon ${stringify(className)}`)}><circle cx=\"12\" cy=\"12\" r=\"4\"></circle><path d=\"M12 2.5v2.2M12 19.3v2.2M4.6 4.6l1.6 1.6M17.8 17.8l1.6 1.6M2.5 12h2.2M19.3 12h2.2M19.4 4.6l-1.6 1.6M6.2 17.8l-1.6 1.6\"></path></svg>`);\n}\n//#endregion\n//#region ../ui-kit/src/lib/components/icons/IconThemeDark.svelte\nfunction IconThemeDark($$renderer, $$props) {\n\tlet { size = 20, class: className = \"\" } = $$props;\n\t$$renderer.push(`<svg aria-hidden=\"true\"${attr(\"width\", size)}${attr(\"height\", size)} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"${attr_class(`s-icon ${stringify(className)}`)}><path d=\"M21 12.8A9 9 0 1 1 11.2 3 7 7 0 0 0 21 12.8z\"></path></svg>`);\n}\n//#endregion\n//#region src/lib/chat/oc-events.ts\nfunction propStr(props, key) {\n\tconst value = props?.[key];\n\treturn typeof value === \"string\" ? value : void 0;\n}\nfunction partSnapshotType(event) {\n\tif (event.type !== \"message.part.updated\") return null;\n\tconst part = event.properties?.part;\n\tif (typeof part?.id === \"string\" && typeof part.type === \"string\") return {\n\t\tpartID: part.id,\n\t\ttype: part.type\n\t};\n\treturn null;\n}\nfunction extractTextDelta(event, sessionId, reasoningPartIds) {\n\tconst props = event.properties ?? {};\n\tif (propStr(props, \"sessionID\") !== sessionId) return null;\n\tif (event.type === \"session.next.text.delta\") return propStr(props, \"delta\") ?? propStr(props, \"text\") ?? null;\n\tif (event.type === \"message.part.delta\") {\n\t\tconst field = propStr(props, \"field\");\n\t\tif (field && field !== \"text\") return null;\n\t\tconst partID = propStr(props, \"partID\");\n\t\tif (partID && reasoningPartIds?.has(partID)) return null;\n\t\treturn propStr(props, \"delta\") ?? null;\n\t}\n\treturn null;\n}\nfunction statusName(status) {\n\tif (typeof status === \"string\") return status;\n\tif (status && typeof status === \"object\" && typeof status.type === \"string\") return status.type;\n}\nfunction isTurnEnd(event, sessionId) {\n\tconst props = event.properties ?? {};\n\tif (propStr(props, \"sessionID\") !== sessionId) return false;\n\tif (event.type === \"session.idle\") return true;\n\tif (event.type === \"session.status\") {\n\t\tconst name = statusName(props.status);\n\t\treturn name === \"idle\" || name === \"completed\" || name === \"done\";\n\t}\n\treturn false;\n}\nfunction valueToText(value) {\n\tif (typeof value === \"string\") return value;\n\tif (value == null) return void 0;\n\tif (typeof value === \"number\" || typeof value === \"boolean\") return String(value);\n\ttry {\n\t\treturn JSON.stringify(value);\n\t} catch {\n\t\treturn;\n\t}\n}\nfunction firstText(...values) {\n\tfor (const value of values) {\n\t\tconst text = valueToText(value);\n\t\tif (text) return text;\n\t}\n}\nfunction extractToolUpdate(event, sessionId) {\n\tconst props = event.properties ?? {};\n\tif (propStr(props, \"sessionID\") !== sessionId) return null;\n\tconst part = props.part ?? props.tool;\n\tif (event.type === \"message.part.updated\" && part && (part.type === \"tool\" || part.state)) {\n\t\tconst state = part.state ?? {};\n\t\treturn {\n\t\t\tcallID: String(part.callID ?? part.id ?? \"\"),\n\t\t\ttool: String(part.tool ?? \"tool\"),\n\t\t\tstatus: String(state.status ?? \"running\"),\n\t\t\ttitle: typeof state.title === \"string\" ? state.title : void 0,\n\t\t\tdetail: firstText(state.input, state.metadata, state.progress, state.output),\n\t\t\toutput: valueToText(state.output),\n\t\t\terror: typeof state.error === \"string\" ? state.error : void 0\n\t\t};\n\t}\n\tif (event.type.startsWith(\"session.next.tool.\")) {\n\t\tconst type = event.type.replace(\"session.next.tool.\", \"\");\n\t\treturn {\n\t\t\tcallID: propStr(props, \"callID\") ?? \"\",\n\t\t\ttool: propStr(props, \"tool\") ?? \"tool\",\n\t\t\tstatus: type === \"completed\" ? \"completed\" : type === \"failed\" ? \"error\" : type === \"called\" ? \"running\" : propStr(props, \"status\") ?? \"running\",\n\t\t\ttitle: propStr(props, \"title\") ?? propStr(props, \"tool\"),\n\t\t\tdetail: firstText(props.message, props.delta, props.progress, props.input, props.metadata),\n\t\t\toutput: firstText(props.output, props.result),\n\t\t\terror: firstText(props.error)\n\t\t};\n\t}\n\treturn null;\n}\nfunction isSessionError(event, sessionId) {\n\treturn event.type === \"session.error\" && propStr(event.properties, \"sessionID\") === sessionId;\n}\nfunction extractPermissionAsk(event, sessionId) {\n\tif (event.type !== \"permission.asked\") return null;\n\tif (propStr(event.properties, \"sessionID\") !== sessionId) return null;\n\tconst id = propStr(event.properties, \"id\");\n\tif (!id) return null;\n\tconst patterns = Array.isArray(event.properties?.patterns) ? event.properties.patterns.filter((item) => typeof item === \"string\") : [];\n\tconst always = Array.isArray(event.properties?.always) ? event.properties.always.filter((item) => typeof item === \"string\") : [];\n\tconst toolRecord = event.properties?.tool;\n\treturn {\n\t\trequestID: id,\n\t\tpermission: propStr(event.properties, \"permission\") ?? \"tool\",\n\t\tpatterns,\n\t\talways,\n\t\ttool: propStr(toolRecord, \"callID\") ?? propStr(event.properties, \"permission\") ?? \"tool\",\n\t\tdetail: firstText(event.properties?.metadata, event.properties?.message) ?? \"\"\n\t};\n}\nfunction extractQuestionAsk(event, sessionId) {\n\tif (event.type !== \"question.asked\") return null;\n\tif (propStr(event.properties, \"sessionID\") !== sessionId) return null;\n\tconst id = propStr(event.properties, \"id\");\n\tif (!id) return null;\n\tconst rawQuestions = Array.isArray(event.properties?.questions) ? event.properties.questions : [];\n\tconst questions = [];\n\tfor (const raw of rawQuestions) {\n\t\tconst item = raw;\n\t\tconst options = Array.isArray(item.options) ? item.options.map((option) => option).filter((option) => typeof option.label === \"string\").map((option) => ({\n\t\t\tlabel: option.label,\n\t\t\tdescription: typeof option.description === \"string\" ? option.description : \"\"\n\t\t})) : [];\n\t\tquestions.push({\n\t\t\tquestion: typeof item.question === \"string\" ? item.question : \"\",\n\t\t\theader: typeof item.header === \"string\" ? item.header : \"\",\n\t\t\toptions\n\t\t});\n\t}\n\tif (questions.length === 0) return null;\n\treturn {\n\t\trequestID: id,\n\t\tquestions\n\t};\n}\nfunction extractStepUpdate(event, sessionId) {\n\tconst props = event.properties ?? {};\n\tif (propStr(props, \"sessionID\") !== sessionId) return null;\n\tif (event.type !== \"session.next.step.started\" && event.type !== \"session.next.step.ended\") return null;\n\treturn {\n\t\tid: propStr(props, \"stepID\") ?? propStr(props, \"id\") ?? event.type,\n\t\ttitle: propStr(props, \"title\") ?? propStr(props, \"step\") ?? (event.type === \"session.next.step.started\" ? \"Working\" : \"Step complete\"),\n\t\tstatus: event.type === \"session.next.step.ended\" ? \"completed\" : \"running\",\n\t\tdetail: firstText(props.detail, props.message)\n\t};\n}\nglobalThis.Date;\nvar SvelteSet = globalThis.Set;\nvar SvelteMap = globalThis.Map;\nglobalThis.URL;\nglobalThis.URLSearchParams;\n//#endregion\n//#region src/lib/chat/session-events.ts\nvar INITIAL_BACKOFF_MS = 1e3;\nvar MAX_BACKOFF_MS = 3e4;\nvar STREAM_URL = \"/proxy/assistant/event\";\n/**\n* Parse one `\\n\\n`-delimited SSE frame. Multi-line `data:` fields are\n* concatenated with `\\n` per the SSE spec.\n*/\nfunction parseFrame(chunk) {\n\tconst frame = {};\n\tconst dataLines = [];\n\tfor (const rawLine of chunk.split(\"\\n\")) {\n\t\tif (!rawLine || rawLine.startsWith(\":\")) continue;\n\t\tif (rawLine.startsWith(\"data:\")) dataLines.push(rawLine.replace(/^data:\\s?/, \"\"));\n\t\telse if (rawLine.startsWith(\"event:\")) frame.event = rawLine.replace(/^event:\\s?/, \"\");\n\t\telse if (rawLine.startsWith(\"id:\")) frame.id = rawLine.replace(/^id:\\s?/, \"\");\n\t}\n\tif (dataLines.length > 0) frame.data = dataLines.join(\"\\n\");\n\treturn frame;\n}\nfunction dispatch(handlers, payload) {\n\tconst info = payload.properties?.info;\n\tconst id = info?.id ?? payload.sessionID;\n\tif (!id) return;\n\tswitch (payload.type) {\n\t\tcase \"session.created\":\n\t\t\thandlers.onCreated(id);\n\t\t\treturn;\n\t\tcase \"session.updated\":\n\t\t\thandlers.onUpdated(id, {\n\t\t\t\ttitle: info?.title,\n\t\t\t\tupdatedAt: info?.time?.updated\n\t\t\t});\n\t\t\treturn;\n\t\tcase \"session.deleted\":\n\t\t\thandlers.onDeleted(id);\n\t\t\treturn;\n\t\tdefault: return;\n\t}\n}\n/**\n* Open an SSE connection to `/proxy/assistant/event` and dispatch\n* session-scoped events. Returns an unsubscribe function that aborts the\n* stream and prevents reconnection.\n*/\nfunction subscribeSessionEvents(handlers) {\n\tlet stopped = false;\n\tlet controller = new AbortController();\n\tlet lastEventId;\n\tconst sleep = (ms) => new Promise((resolve) => {\n\t\tconst timer = setTimeout(resolve, ms);\n\t\tcontroller.signal.addEventListener(\"abort\", () => {\n\t\t\tclearTimeout(timer);\n\t\t\tresolve();\n\t\t}, { once: true });\n\t});\n\tasync function readStream() {\n\t\tconst headers = { accept: \"text/event-stream\" };\n\t\tif (lastEventId !== void 0) headers[\"Last-Event-ID\"] = lastEventId;\n\t\tconst response = await fetch(STREAM_URL, {\n\t\t\tmethod: \"GET\",\n\t\t\theaders,\n\t\t\tcredentials: \"include\",\n\t\t\tsignal: controller.signal\n\t\t});\n\t\tif (!response.ok || !response.body) throw new Error(`SSE stream failed: ${response.status} ${response.statusText}`);\n\t\thandlers.onConnect?.();\n\t\tconst reader = response.body.pipeThrough(new TextDecoderStream()).getReader();\n\t\tlet buffer = \"\";\n\t\ttry {\n\t\t\twhile (true) {\n\t\t\t\tconst { done, value } = await reader.read();\n\t\t\t\tif (done) break;\n\t\t\t\tbuffer += value;\n\t\t\t\tconst chunks = buffer.split(\"\\n\\n\");\n\t\t\t\tbuffer = chunks.pop() ?? \"\";\n\t\t\t\tfor (const chunk of chunks) {\n\t\t\t\t\tif (!chunk) continue;\n\t\t\t\t\tconst frame = parseFrame(chunk);\n\t\t\t\t\tif (frame.id !== void 0) lastEventId = frame.id;\n\t\t\t\t\tif (!frame.data) continue;\n\t\t\t\t\tlet payload;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tpayload = JSON.parse(frame.data);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tconsole.warn(\"[session-events] Bad JSON in SSE frame\", err);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\thandlers.onEvent?.(payload);\n\t\t\t\t\tdispatch(handlers, payload);\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\treader.releaseLock();\n\t\t\t} catch {}\n\t\t}\n\t}\n\t(async () => {\n\t\tlet attempt = 0;\n\t\twhile (!stopped) try {\n\t\t\tattempt++;\n\t\t\tawait readStream();\n\t\t\tattempt = 0;\n\t\t\tif (!stopped) await sleep(500);\n\t\t} catch (err) {\n\t\t\tif (stopped) return;\n\t\t\tconst error = err instanceof Error ? err : new Error(String(err));\n\t\t\tif (error.name !== \"AbortError\") {\n\t\t\t\tconsole.warn(\"[session-events] SSE error, reconnecting\", error);\n\t\t\t\thandlers.onDisconnect?.(error);\n\t\t\t}\n\t\t\tawait sleep(Math.min(INITIAL_BACKOFF_MS * 2 ** Math.max(0, attempt - 1), MAX_BACKOFF_MS));\n\t\t\tif (controller.signal.aborted && !stopped) controller = new AbortController();\n\t\t}\n\t})();\n\treturn () => {\n\t\tstopped = true;\n\t\ttry {\n\t\t\tcontroller.abort();\n\t\t} catch {}\n\t};\n}\n//#endregion\n//#region src/lib/desktop-notifications.ts\nvar DESKTOP_NOTIFY_ENABLED_KEY = \"openpalm.desktop.notify\";\nvar DESKTOP_NOTIFY_PREVIEW_KEY = \"openpalm.desktop.notify.preview\";\nfunction readFlag(key) {\n\tif (typeof window === \"undefined\") return false;\n\ttry {\n\t\treturn window.localStorage.getItem(key) === \"1\";\n\t} catch {\n\t\treturn false;\n\t}\n}\nfunction desktopNotifyEnabled() {\n\treturn readFlag(DESKTOP_NOTIFY_ENABLED_KEY);\n}\nfunction desktopReplyPreviewEnabled() {\n\treturn readFlag(DESKTOP_NOTIFY_PREVIEW_KEY);\n}\nfunction shouldNotifyDesktop() {\n\tif (typeof document === \"undefined\") return false;\n\tif (document.hasFocus()) return false;\n\tif (!desktopNotifyEnabled()) return false;\n\treturn typeof window !== \"undefined\" && typeof window.openpalm?.notify === \"function\";\n}\nfunction notifyAssistantReply(replyText) {\n\tif (!shouldNotifyDesktop()) return;\n\tconst body = desktopReplyPreviewEnabled() && replyText.trim() ? replyText.trim() : \"Assistant replied\";\n\twindow.openpalm?.notify?.(\"OpenPalm\", body);\n}\nfunction notifyAssistantError() {\n\tif (!shouldNotifyDesktop()) return;\n\twindow.openpalm?.notify?.(\"OpenPalm\", \"Assistant error\");\n}\n//#endregion\n//#region src/lib/connection-events.ts\nvar listeners = /* @__PURE__ */ new Set();\nvar guards = /* @__PURE__ */ new Set();\n/** Subscribe to connection activation. Returns an unsubscribe function. */\nfunction onConnectionActivated(listener) {\n\tlisteners.add(listener);\n\treturn () => {\n\t\tlisteners.delete(listener);\n\t};\n}\n/**\n* Register a pre-switch veto. Return a user-facing reason string to block\n* the switch, or null to allow it. Returns an unregister function.\n*/\nfunction registerActivationGuard(guard) {\n\tguards.add(guard);\n\treturn () => {\n\t\tguards.delete(guard);\n\t};\n}\n/** First non-null guard reason blocks the switch; null means proceed. */\nfunction activationBlockReason() {\n\tfor (const guard of guards) {\n\t\tconst reason = guard();\n\t\tif (reason) return reason;\n\t}\n\treturn null;\n}\n/**\n* Notify subscribers that `connectionId` is now active. Awaited by the\n* emitter: activation is not complete until every subscriber's handoff\n* (e.g. the chat store loading the connection's sessions) has settled.\n*/\nasync function emitConnectionActivated(connectionId) {\n\tfor (const listener of listeners) await listener(connectionId);\n}\n//#endregion\n//#region src/lib/endpoints-state.svelte.ts\nvar ConnectionsService = class {\n\tendpoints = [];\n\tactiveId = \"default\";\n\tloading = false;\n\tloaded = false;\n\terror = \"\";\n\t#active = derived(() => this.endpoints.find((e) => e.id === this.activeId) ?? this.endpoints[0] ?? null);\n\tget active() {\n\t\treturn this.#active();\n\t}\n\tset active($$value) {\n\t\treturn this.#active($$value);\n\t}\n\tasync load(force = false) {\n\t\tif (this.loading) return;\n\t\tif (this.loaded && !force) return;\n\t\tthis.loading = true;\n\t\tthis.error = \"\";\n\t\ttry {\n\t\t\tconst { connections, activeId } = await fetchConnections();\n\t\t\tthis.endpoints = connections;\n\t\t\tthis.activeId = activeId;\n\t\t\tthis.loaded = true;\n\t\t} catch (e) {\n\t\t\tconst err = e;\n\t\t\tif (err.status !== 401) this.error = err.message ?? \"Failed to load connections\";\n\t\t} finally {\n\t\t\tthis.loading = false;\n\t\t}\n\t}\n\tasync activate(id) {\n\t\tif (id === this.activeId) return;\n\t\tconst blocked = activationBlockReason();\n\t\tif (blocked) {\n\t\t\tthis.error = blocked;\n\t\t\tthrow new Error(blocked);\n\t\t}\n\t\tconst previous = this.activeId;\n\t\tthis.activeId = id;\n\t\ttry {\n\t\t\tawait setActiveConnection(id);\n\t\t\tawait emitConnectionActivated(id);\n\t\t} catch (e) {\n\t\t\tthis.activeId = previous;\n\t\t\tconst err = e;\n\t\t\tthis.error = err.message ?? \"Failed to switch connection\";\n\t\t\tthrow e;\n\t\t}\n\t}\n};\nvar endpointsService = new ConnectionsService();\n//#endregion\n//#region ../ui-kit/src/lib/components/icons/IconClose.svelte\nfunction IconClose($$renderer, $$props) {\n\tlet { size = 20, class: className = \"\" } = $$props;\n\t$$renderer.push(`<svg aria-hidden=\"true\"${attr(\"width\", size)}${attr(\"height\", size)} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"${attr_class(`s-icon ${stringify(className)}`)}><path d=\"M18 6 6 18\"></path><path d=\"m6 6 12 12\"></path></svg>`);\n}\n//#endregion\n//#region src/lib/actions/focus-trap.ts\n/**\n* Shared modal focus-trap primitives (WCAG 2.4.3 / APG dialog pattern).\n*\n* Consolidates three byte-for-byte copies that previously lived in the chat\n* page (`+page.svelte`), the common `Drawer.svelte`, and the `ToolStrip.svelte`\n* tool-detail modal. Use `createFocusTrap` as a Svelte attachment on the dialog\n* panel and `handleTrapKeydown` as its `onkeydown` handler.\n*/\n/** Selector matching every natively focusable / tabbable element. */\nvar FOCUSABLE = \"a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\\\"-1\\\"])\";\n/** Collect the visible, tabbable descendants of `root`, in document order. */\nfunction focusables(root) {\n\treturn Array.from(root.querySelectorAll(FOCUSABLE)).filter((el) => !el.hasAttribute(\"hidden\") && el.getAttribute(\"aria-hidden\") !== \"true\");\n}\n/**\n* Build a Svelte attachment that, when it runs, remembers the currently focused\n* element and moves focus inside `node`; when it is cleaned up, it restores\n* focus to the remembered element so keyboard / SR users are never dropped to\n* `<body>`.\n*/\nfunction createFocusTrap(options = {}) {\n\treturn (node) => {\n\t\tif (options.active === false) return;\n\t\tconst previouslyFocused = document.activeElement;\n\t\tconst container = options.initialFocus ? node.querySelector(options.initialFocus) : null;\n\t\t((container && focusables(container)[0]) ?? focusables(node)[0] ?? node).focus();\n\t\treturn () => {\n\t\t\tif (options.deferRestore) requestAnimationFrame(() => previouslyFocused?.focus?.());\n\t\t\telse previouslyFocused?.focus?.();\n\t\t};\n\t};\n}\n//#endregion\n//#region src/lib/format-date.ts\nvar TIME_FMT = new Intl.DateTimeFormat(void 0, {\n\thour: \"numeric\",\n\tminute: \"2-digit\"\n});\nvar DATE_TIME_FMT = new Intl.DateTimeFormat(void 0, {\n\tyear: \"numeric\",\n\tmonth: \"short\",\n\tday: \"numeric\",\n\thour: \"numeric\",\n\tminute: \"2-digit\"\n});\n/** Time of day, e.g. \"3:42 PM\" (locale-aware). Empty string for a falsy input. */\nfunction formatTime(ts) {\n\tif (!ts) return \"\";\n\treturn TIME_FMT.format(ts);\n}\n/**\n* Absolute date + time, e.g. \"Jun 7, 2026, 3:42 PM\". Use for tooltips / full\n* context where a relative label alone is ambiguous. Empty for a falsy input.\n*/\nfunction formatDateTime(ts) {\n\tif (!ts) return \"\";\n\treturn DATE_TIME_FMT.format(ts);\n}\n/**\n* Absolute date + time from a date string (ISO-8601 or anything `Date` accepts),\n* rendered with the runtime locale via `toLocaleString()`. Unlike the epoch-ms\n* helpers above, this takes the string shape returned by admin/AKM endpoints.\n* Returns `fallback` (default em dash) for null/empty or unparseable input.\n*/\nfunction formatDate(value, fallback = \"—\") {\n\tif (!value) return fallback;\n\tconst d = new Date(value);\n\treturn Number.isNaN(d.getTime()) ? fallback : d.toLocaleString();\n}\n/**\n* Human-readable byte size, e.g. \"512 B\", \"1.5 KB\", \"2.0 MB\". Scales through\n* B/KB/MB/GB/TB (binary, 1024-based) with adaptive precision: whole numbers for\n* bytes and for values ≥ 10, one decimal otherwise. Em dash for non-finite input.\n*/\nfunction formatBytes(bytes) {\n\tif (!Number.isFinite(bytes)) return \"—\";\n\tconst units = [\n\t\t\"B\",\n\t\t\"KB\",\n\t\t\"MB\",\n\t\t\"GB\",\n\t\t\"TB\"\n\t];\n\tlet value = bytes;\n\tlet i = 0;\n\twhile (value >= 1024 && i < units.length - 1) {\n\t\tvalue /= 1024;\n\t\ti += 1;\n\t}\n\treturn `${value.toFixed(value >= 10 || i === 0 ? 0 : 1)} ${units[i]}`;\n}\n/**\n* Compact relative time, e.g. \"just now\", \"5m ago\", \"yesterday\", \"3w ago\".\n* Empty string for a falsy input. No date-fns dependency — that would be ~30 KB\n* for these few cases.\n*/\nfunction formatRelativeTime(ts) {\n\tif (!ts) return \"\";\n\tconst diffSec = Math.max(0, (Date.now() - ts) / 1e3);\n\tif (diffSec < 60) return \"just now\";\n\tconst min = Math.floor(diffSec / 60);\n\tif (min < 60) return `${min}m ago`;\n\tconst hr = Math.floor(min / 60);\n\tif (hr < 24) return `${hr}h ago`;\n\tconst day = Math.floor(hr / 24);\n\tif (day === 1) return \"yesterday\";\n\tif (day < 7) return `${day}d ago`;\n\tconst wk = Math.floor(day / 7);\n\tif (wk < 5) return `${wk}w ago`;\n\tconst mo = Math.floor(day / 30);\n\tif (mo < 12) return `${mo}mo ago`;\n\treturn `${Math.floor(day / 365)}y ago`;\n}\n//#endregion\nexport { createSession as A, isUserFacingTool as B, isSessionError as C, IconThemeLight as D, IconThemeDark as E, replyChatPermission as F, toolIconType as G, timelineTitle as H, replyChatQuestion as I, toolKindLabel as K, sendChatMessage as L, listSessions as M, probeChatBackend as N, IconThemeSystem as O, rejectChatQuestion as P, startChatMessageTurn as R, extractToolUpdate as S, partSnapshotType as T, toolAriaLabel as U, relativeTimeLabel as V, toolDetailRows as W, SvelteSet as _, formatTime as a, extractStepUpdate as b, endpointsService as c, desktopNotifyEnabled as d, desktopReplyPreviewEnabled as f, SvelteMap as g, subscribeSessionEvents as h, formatRelativeTime as i, getSessionMessages as j, abortChatTurn as k, onConnectionActivated as l, notifyAssistantReply as m, formatDate as n, createFocusTrap as o, notifyAssistantError as p, toolStatusLabel as q, formatDateTime as r, IconClose as s, formatBytes as t, registerActivationGuard as u, extractPermissionAsk as v, isTurnEnd as w, extractTextDelta as x, extractQuestionAsk as y, displayTitle as z };\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.server-CwIkB_d8.js","sources":["../../../.svelte-kit/adapter-node/entries/hooks.server.js"],"sourcesContent":["import { i as redirect } from \"../chunks/exports.js\";\nimport { Dt as stackDirFor, Nt as createLogger, Tt as resolveOpenPalmHome, Z as readStackRuntimeEnv, at as readSecret } from \"../chunks/compose-args.js\";\nimport { F as classifyLocalInstall, n as collectBindAddressWarnings, r as isRemoteSetupAllowed, z as isSetupComplete } from \"../chunks/src.js\";\nimport { t as getState } from \"../chunks/state.js\";\nimport { n as checkOriginHeader, o as identifyCallerByToken, t as checkHostHeader, v as touchSession } from \"../chunks/helpers.js\";\nimport { t as computeServerRuntimeContext } from \"../chunks/features.js\";\nimport { r as sessionCookieHeader, t as SESSION_COOKIE_NAME } from \"../chunks/session-cookie.js\";\nimport { n as resolveRequestLanding, t as _resetLaunchCache } from \"../chunks/landing.js\";\n//#region src/hooks.server.ts\nvar logger = createLogger(\"admin\");\nvar startupApplyDone = false;\nfunction loadProcessEnv() {\n\tif (startupApplyDone) return;\n\tstartupApplyDone = true;\n\tfor (const line of collectBindAddressWarnings(process.env)) logger.warn(line);\n\ttry {\n\t\tconst state = getState();\n\t\tif (!process.env.OP_UI_LOGIN_PASSWORD) {\n\t\t\tconst pw = readSecret(state.homeDir, \"op_ui_login_password\");\n\t\t\tif (pw) process.env.OP_UI_LOGIN_PASSWORD = pw.trimEnd();\n\t\t}\n\t\tconst stackVars = readStackRuntimeEnv(state.homeDir);\n\t\tfor (const [k, v] of Object.entries(stackVars)) if (v && !process.env[k]) process.env[k] = v;\n\t} catch (err) {\n\t\tlogger.error(\"process env load failed\", { error: String(err) });\n\t}\n}\nloadProcessEnv();\nvar SETUP_PATHS = [\n\t\"/setup\",\n\t\"/api/setup\",\n\t\"/health\",\n\t\"/guardian/health\"\n];\nfunction isLocalhostAddress(ip) {\n\treturn ip === \"127.0.0.1\" || ip === \"::1\" || ip === \"::ffff:127.0.0.1\";\n}\nvar handle = async ({ event, resolve }) => {\n\tconst runtimeContext = computeServerRuntimeContext(event);\n\tconst hostError = checkHostHeader(event.request);\n\tif (hostError) return hostError;\n\tconst originError = checkOriginHeader(event.request, runtimeContext.security.csrfMode);\n\tif (originError) return originError;\n\tconst path = event.url.pathname;\n\tconst isAuthPath = path === \"/login\" || path.startsWith(\"/login/\");\n\tconst wantsHtml = event.request.method === \"GET\" && (event.request.headers.get(\"accept\") ?? \"\").includes(\"text/html\");\n\tif ((path === \"/host\" || path.startsWith(\"/host/\")) && !runtimeContext.serverCapabilities.includes(\"host:stack:read\")) redirect(302, \"/chat\");\n\tconst isSetupPath = SETUP_PATHS.some((p) => path === p || path.startsWith(`${p}/`));\n\tconst homeDir = resolveOpenPalmHome();\n\tconst setupComplete = isSetupComplete(homeDir);\n\tconst localInstallState = classifyLocalInstall(stackDirFor(homeDir), homeDir);\n\tif (wantsHtml && !setupComplete && localInstallState !== \"not_installed\" && !isSetupPath && !isAuthPath && !path.startsWith(\"/admin\")) redirect(302, \"/setup\");\n\tif (isSetupPath && !setupComplete && !isRemoteSetupAllowed()) {\n\t\tif (!isLocalhostAddress(event.getClientAddress())) return new Response(JSON.stringify({\n\t\t\terror: \"setup_localhost_only\",\n\t\t\tmessage: \"Setup is only accessible from the host machine until installation is complete.\"\n\t\t}), {\n\t\t\tstatus: 403,\n\t\t\theaders: { \"content-type\": \"application/json\" }\n\t\t});\n\t}\n\tif (!isSetupPath) {\n\t\tconst landing = await resolveRequestLanding(event);\n\t\tconst [landingPath] = landing.split(\"?\");\n\t\tconst usageRoute = path.startsWith(\"/chat\") || path.startsWith(\"/advanced\") || path.startsWith(\"/connections\");\n\t\tconst exempt = path.startsWith(\"/api/\") || path.startsWith(\"/proxy/\") || path.startsWith(\"/login\") || path.startsWith(\"/health\") || path.startsWith(\"/guardian/health\") || path.startsWith(\"/host\") || path.startsWith(\"/admin\") || usageRoute;\n\t\tif (path === \"/\" || path !== landingPath && !exempt) redirect(302, landing);\n\t}\n\tevent.locals.role = identifyCallerByToken(event);\n\tlet renewedCookie = null;\n\tif (event.locals.role === \"admin\") {\n\t\tconst match = (event.request.headers.get(\"cookie\") ?? \"\").match(new RegExp(`(?:^|;\\\\s*)${SESSION_COOKIE_NAME}=([^;]+)`));\n\t\tconst renewed = match ? touchSession(match[1]) : false;\n\t\tif (renewed) renewedCookie = sessionCookieHeader(renewed, event.request);\n\t}\n\tif (wantsHtml && !event.locals.role && !isSetupPath && !isAuthPath) {\n\t\tconst redirectTo = path + event.url.search;\n\t\tredirect(302, `/login?redirectTo=${encodeURIComponent(redirectTo)}`);\n\t}\n\tconst response = await resolve(event);\n\tif (renewedCookie) {\n\t\tif (!(response.headers.get(\"set-cookie\") ?? \"\").includes(`op_session=`)) response.headers.append(\"set-cookie\", renewedCookie);\n\t}\n\tresponse.headers.set(\"X-Frame-Options\", path === \"/api/host/akm/health-report\" ? \"SAMEORIGIN\" : \"DENY\");\n\tresponse.headers.set(\"X-Content-Type-Options\", \"nosniff\");\n\tresponse.headers.set(\"Referrer-Policy\", \"no-referrer\");\n\treturn response;\n};\n//#endregion\nexport { _resetLaunchCache, handle };\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"landing-BAWznbys.js","sources":["../../../.svelte-kit/adapter-node/chunks/landing.js"],"sourcesContent":["import { t as buildComposeOptions } from \"./compose-args.js\";\nimport { m as composePs } from \"./docker.js\";\nimport { F as classifyLocalInstall, I as deriveLaunchStatus, L as deriveLocalStackState, R as detectRuntime } from \"./src.js\";\nimport { t as getState } from \"./state.js\";\nimport { a as listRemoteStatuses } from \"./endpoints.js\";\nimport { t as computeServerRuntimeContext } from \"./features.js\";\nimport { r as resolveCapabilities } from \"./runtime-context.svelte.js\";\n//#region src/lib/resolve-landing.ts\n/**\n* Where the host admin surface lives. Phase 4 moved it from /admin to /host\n* (/admin/* is a dead namespace — router 404, no alias).\n*/\nvar HOST_ADMIN_LANDING = \"/host\";\n/** Resolve the landing path for a session (plan §6.5). Pure — no I/O, no\n* global state; the gate is CAPABILITY-driven, not hostMode-driven. */\nfunction resolveLanding(ctx, state) {\n\tif (ctx.effectiveCapabilities.includes(\"host:setup\")) {\n\t\tif (state.migration.status === \"pending\") return \"/attention\";\n\t\tif (state.local.state === \"not_installed\") return state.connections.length === 0 ? \"/setup\" : \"/chat\";\n\t\tif (state.local.state === \"setup_incomplete\") return \"/setup\";\n\t\tif (state.local.state === \"installed_offline\") return HOST_ADMIN_LANDING;\n\t\tif (state.local.state === \"installed_broken\") return `${HOST_ADMIN_LANDING}?tab=diagnostics`;\n\t\treturn \"/chat\";\n\t}\n\tif (ctx.hostMode === \"assistant-container\") return \"/chat\";\n\tif (ctx.hostMode === \"pwa-static\") return state.connections.length === 0 ? \"/connections/new\" : \"/chat\";\n\treturn \"/chat\";\n}\n//#endregion\n//#region src/lib/server/landing.ts\nvar launchRoutingCache = null;\n/** Test-only: clear the 5s launch-routing cache so each test resolves fresh. */\nfunction _resetLaunchCache() {\n\tlaunchRoutingCache = null;\n}\nfunction parseComposePsServices(stdout) {\n\tconst services = [];\n\tfor (const line of stdout.split(\"\\n\")) {\n\t\tconst trimmed = line.trim();\n\t\tif (!trimmed) continue;\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(trimmed);\n\t\t\tservices.push({\n\t\t\t\tservice: String(parsed.Service ?? parsed.Name ?? \"\"),\n\t\t\t\tstate: String(parsed.State ?? \"\"),\n\t\t\t\thealth: String(parsed.Health ?? \"\")\n\t\t\t});\n\t\t} catch {}\n\t}\n\treturn services;\n}\nasync function resolveLaunchRouting() {\n\tif (launchRoutingCache && launchRoutingCache.expiresAt > Date.now()) return launchRoutingCache.value;\n\tconst state = getState();\n\tconst installState = classifyLocalInstall(state.stackDir, state.homeDir);\n\tconst composeResult = await composePs(buildComposeOptions(state));\n\tconst value = {\n\t\tinstallState,\n\t\tlaunch: deriveLaunchStatus({\n\t\t\tlocal: {\n\t\t\t\tstate: deriveLocalStackState(installState, composeResult.ok ? parseComposePsServices(composeResult.stdout) : []),\n\t\t\t\truntime: installState === \"not_installed\" ? await detectRuntime() : void 0,\n\t\t\t\tdetail: { installState }\n\t\t\t},\n\t\t\tremotes: await listRemoteStatuses()\n\t\t})\n\t};\n\tlaunchRoutingCache = {\n\t\tvalue,\n\t\texpiresAt: Date.now() + 5e3\n\t};\n\treturn value;\n}\n/**\n* Resolve the landing path for a request via resolveLanding() (plan §6.5).\n* May return a path with a query string (e.g. '/host?tab=diagnostics').\n*/\nasync function resolveRequestLanding(event) {\n\tconst serverCtx = computeServerRuntimeContext(event);\n\tconst clientContext = { displayMode: \"browser\" };\n\tconst ctx = {\n\t\t...serverCtx,\n\t\tclientContext,\n\t\teffectiveCapabilities: resolveCapabilities(serverCtx.serverCapabilities, clientContext)\n\t};\n\tconst { installState, launch } = await resolveLaunchRouting();\n\tconst localState = installState === \"setup_incomplete\" && launch.local.state === \"running\" ? \"setup_incomplete\" : launch.local.state;\n\tconst connections = [...launch.hasHealthyLocal ? [{ id: \"default\" }] : [], ...launch.remotes.filter((r) => r.state === \"accessible\")];\n\treturn resolveLanding(ctx, {\n\t\tmigration: { status: \"none\" },\n\t\tlocal: { state: localState },\n\t\tconnections\n\t});\n}\n//#endregion\nexport { resolveRequestLanding as n, _resetLaunchCache as t };\n"],"names":[],"mappings":";;;;;;AAOA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAkB,GAAG,OAAO;AAChC;AACA;AACA,SAAS,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE;AACpC,CAAC,IAAI,GAAG,CAAC,qBAAqB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;AACvD,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE,OAAO,YAAY;AAC/D,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,eAAe,EAAE,OAAO,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,GAAG,QAAQ,GAAG,OAAO;AACvG,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,kBAAkB,EAAE,OAAO,QAAQ;AAC/D,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,mBAAmB,EAAE,OAAO,kBAAkB;AAC1E,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,kBAAkB,EAAE,OAAO,CAAC,EAAE,kBAAkB,CAAC,gBAAgB,CAAC;AAC9F,EAAE,OAAO,OAAO;AAChB,CAAC;AACD,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,qBAAqB,EAAE,OAAO,OAAO;AAC3D,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,OAAO,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,GAAG,kBAAkB,GAAG,OAAO;AACxG,CAAC,OAAO,OAAO;AACf;AACA;AACA;AACA,IAAI,kBAAkB,GAAG,IAAI;AAC7B;AACA,SAAS,iBAAiB,GAAG;AAC7B,CAAC,kBAAkB,GAAG,IAAI;AAC1B;AACA,SAAS,sBAAsB,CAAC,MAAM,EAAE;AACxC,CAAC,MAAM,QAAQ,GAAG,EAAE;AACpB,CAAC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACxC,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE;AAC7B,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,EAAE,IAAI;AACN,GAAG,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACrC,GAAG,QAAQ,CAAC,IAAI,CAAC;AACjB,IAAI,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;AACxD,IAAI,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;AACrC,IAAI,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE;AACtC,IAAI,CAAC;AACL,EAAE,CAAC,CAAC,MAAM,CAAC;AACX,CAAC;AACD,CAAC,OAAO,QAAQ;AAChB;AACA,eAAe,oBAAoB,GAAG;AACtC,CAAC,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,kBAAkB,CAAC,KAAK;AACrG,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,MAAM,YAAY,GAAG,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;AACzE,CAAC,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC,MAAM,KAAK,GAAG;AACf,EAAE,YAAY;AACd,EAAE,MAAM,EAAE,kBAAkB,CAAC;AAC7B,GAAG,KAAK,EAAE;AACV,IAAI,KAAK,EAAE,qBAAqB,CAAC,YAAY,EAAE,aAAa,CAAC,EAAE,GAAG,sBAAsB,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AACpH,IAAI,OAAO,EAAE,YAAY,KAAK,eAAe,GAAG,MAAM,aAAa,EAAE,GAAG,MAAM;AAC9E,IAAI,MAAM,EAAE,EAAE,YAAY;AAC1B,IAAI;AACJ,GAAG,OAAO,EAAE,MAAM,kBAAkB;AACpC,GAAG;AACH,EAAE;AACF,CAAC,kBAAkB,GAAG;AACtB,EAAE,KAAK;AACP,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG;AAC1B,EAAE;AACF,CAAC,OAAO,KAAK;AACb;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAqB,CAAC,KAAK,EAAE;AAC5C,CAAC,MAAM,SAAS,GAAG,2BAA2B,CAAC,KAAK,CAAC;AACrD,CAAC,MAAM,aAAa,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE;AACjD,CAAC,MAAM,GAAG,GAAG;AACb,EAAE,GAAG,SAAS;AACd,EACE,qBAAqB,EAAE,mBAAmB,CAAC,SAAS,CAAC,kBAAkB,EAAE,aAAa;AACxF,EAAE;AACF,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,oBAAoB,EAAE;AAC9D,CAAC,MAAM,UAAU,GAAG,YAAY,KAAK,kBAAkB,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,GAAG,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK;AACrI,CAAC,MAAM,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,YAAY,CAAC,CAAC;AACtI,CAAC,OAAO,cAAc,CAAC,GAAG,EAAE;AAC5B,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;AAC/B,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;AAC9B,EAAE;AACF,EAAE,CAAC;AACH;;;;"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
//#region src/lib/runtime-context.svelte.ts
|
|
2
|
-
function resolveCapabilities(serverCaps, clientCtx) {
|
|
3
|
-
const { displayMode, activeConnection } = clientCtx;
|
|
4
|
-
if (serverCaps.includes("host:stack:read") && displayMode === "browser") return serverCaps.filter((c) => true);
|
|
5
|
-
if (serverCaps.includes("connections:single")) return serverCaps.filter((c) => c === "chat" || c.startsWith("assistant-settings"));
|
|
6
|
-
let caps = serverCaps.filter((c) => c.startsWith("connections") || c === "chat" || c === "pwa:install");
|
|
7
|
-
if (activeConnection?.grantedCapabilities) caps = [...new Set([...caps, ...activeConnection.grantedCapabilities])];
|
|
8
|
-
return caps;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Reactive runtime context. Starts at the unprivileged pwa-static baseline
|
|
12
|
-
* with zero capabilities until +layout.svelte initializes it — capabilities
|
|
13
|
-
* are opted INTO from server data, never defaulted on.
|
|
14
|
-
*/
|
|
15
|
-
var runtimeContext = {
|
|
16
|
-
routes: {},
|
|
17
|
-
effectiveCapabilities: []
|
|
18
|
-
};
|
|
19
|
-
function hasCapability(cap) {
|
|
20
|
-
return runtimeContext.effectiveCapabilities.includes(cap);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export { runtimeContext as a, hasCapability as h, resolveCapabilities as r };
|
|
24
|
-
//# sourceMappingURL=runtime-context.svelte-FZapSP7A.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-context.svelte-FZapSP7A.js","sources":["../../../.svelte-kit/adapter-node/chunks/runtime-context.svelte.js"],"sourcesContent":["import \"./dev.js\";\n//#region src/lib/runtime-context.svelte.ts\nfunction resolveCapabilities(serverCaps, clientCtx) {\n\tconst { displayMode, activeConnection } = clientCtx;\n\tif (displayMode === \"electron\") return serverCaps;\n\tif (serverCaps.includes(\"host:stack:read\") && displayMode === \"browser\") return serverCaps.filter((c) => !isElectronOnlyCap(c));\n\tif (serverCaps.includes(\"connections:single\")) return serverCaps.filter((c) => c === \"chat\" || c.startsWith(\"assistant-settings\"));\n\tlet caps = serverCaps.filter((c) => c.startsWith(\"connections\") || c === \"chat\" || c === \"pwa:install\");\n\tif (activeConnection?.grantedCapabilities) caps = [...new Set([...caps, ...activeConnection.grantedCapabilities])];\n\treturn caps;\n}\nfunction isElectronOnlyCap(_c) {\n\treturn false;\n}\n/**\n* Reactive runtime context. Starts at the unprivileged pwa-static baseline\n* with zero capabilities until +layout.svelte initializes it — capabilities\n* are opted INTO from server data, never defaulted on.\n*/\nvar runtimeContext = {\n\tversion: 2,\n\thostMode: \"pwa-static\",\n\tserverCapabilities: [],\n\tpublicBaseUrl: \"\",\n\tuiVersion: \"\",\n\tskeletonVersion: \"\",\n\tactiveConnectionMode: \"multi\",\n\troutes: {},\n\tsecurity: {\n\t\thostAdminLoopbackOnly: true,\n\t\trequiresHttpsForRemoteConnections: true,\n\t\tcsrfMode: \"loopback-origin\"\n\t},\n\tclientContext: { displayMode: \"browser\" },\n\teffectiveCapabilities: []\n};\nfunction hasCapability(cap) {\n\treturn runtimeContext.effectiveCapabilities.includes(cap);\n}\n/**\n* Populate the store from layout data + browser-detected client context and\n* re-derive `effectiveCapabilities`. Called from +layout.svelte (client-only).\n*/\nfunction initializeRuntimeContext(serverCtx, clientCtx) {\n\tObject.assign(runtimeContext, serverCtx);\n\truntimeContext.clientContext = clientCtx;\n\truntimeContext.effectiveCapabilities = resolveCapabilities(serverCtx.serverCapabilities, clientCtx);\n}\n//#endregion\nexport { runtimeContext as i, initializeRuntimeContext as n, resolveCapabilities as r, hasCapability as t };\n"],"names":[],"mappings":"AACA;AACA,SAAS,mBAAmB,CAAC,UAAU,EAAE,SAAS,EAAE;AACpD,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,SAAS;AAEpD,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,WAAW,KAAK,SAAS,EAAE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAqB,CAAC;AAChI,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;AACnI,CAAC,IAAI,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,aAAa,CAAC;AACxG,CAAC,IAAI,gBAAgB,EAAE,mBAAmB,EAAE,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,CAAC;AACnH,CAAC,OAAO,IAAI;AACZ;AAIA;AACA;AACA;AACA;AACA;AACG,IAAC,cAAc,GAAG;AACrB,CAOC,MAAM,EAAE,EAAE;AACX,CAMC,qBAAqB,EAAE;AACxB;AACA,SAAS,aAAa,CAAC,GAAG,EAAE;AAC5B,CAAC,OAAO,cAAc,CAAC,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC1D;;;;"}
|