@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
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import{$ as e,A as t,B as n,Ct as r,E as i,F as a,H as o,I as s,L as c,M as l,N as u,P as d,R as f,S as p,T as m,U as h,V as g,X as _,Y as v,_ as y,a as b,at as x,b as S,bt as C,c as w,d as T,dt as E,et as D,f as O,g as k,h as A,ht as j,it as M,j as N,k as P,l as F,lt as I,m as L,mt as R,n as z,nt as B,p as V,r as ee,rt as H,s as U,st as W,tt as G,u as te,v as ne,w as K,xt as q,z as J}from"../chunks/BzIvC31O.js";import{n as re}from"../chunks/CItB5oU8.js";import"../chunks/xihTtKlq.js";import{_ as ie,a as ae,b as Y,d as X,f as oe,g as Z,i as se,p as ce,u as le,v as Q}from"../chunks/c0lkYAgh.js";import{t as ue}from"../chunks/DmFbAjwW.js";import{t as de}from"../chunks/mG6HnNbi.js";import{t as fe}from"../chunks/DBHgGGCD.js";import{E as pe,F as me,I as he,J as ge,K as _e,X as ve,Y as ye,_ as be,b as xe,c as Se,l as Ce,m as we,n as Te,o as Ee,p as De,q as Oe,r as ke,s as Ae,t as je,u as Me,v as Ne,w as Pe,x as Fe,y as Ie}from"../chunks/B_jhBV5Z.js";import{t as Le}from"../chunks/DuFsBiCS.js";import"../chunks/C3ad4Ajc.js";import{n as Re,t as ze}from"../chunks/S17SDfo_.js";import{t as Be}from"../chunks/NR-JVJz-.js";import{t as $}from"../chunks/SXdvPq3_.js";import{t as Ve}from"../chunks/D5FtEngX.js";import{a as He,c as Ue,i as We,l as Ge,n as Ke,o as qe,r as Je,s as Ye,t as Xe,u as Ze}from"../chunks/R6GPcDBF.js";import{n as Qe,t as $e}from"../chunks/CUa5ff3d.js";import{t as et}from"../chunks/hSjQday7.js";async function tt(){let[e,t]=await Promise.all([Z(`GET`,`/health`),Z(`GET`,`/guardian/health`).catch(e=>(console.warn(`[api] Guardian health check failed:`,e),null))]),n=await e.json(),r=null;if(t)try{r=await t.json()}catch(e){console.warn(`[api] Failed to parse guardian health response:`,e),r={status:`unavailable`,service:`guardian`}}return{admin:n,guardian:r}}async function nt(){return await(await Q(await Z(`GET`,`/api/host/containers/list`))).json()}async function rt(e,t){await Q(await Z(`POST`,{start:`/api/host/containers/up`,stop:`/api/host/containers/down`,restart:`/api/host/containers/restart`}[e],{service:t}))}async function it(){await Q(await Z(`POST`,`/api/host/containers/pull`,{}))}async function at(e={}){let t=await Z(`POST`,`/api/host/update`,{versions:e});return ie(t,`Apply failed (HTTP ${t.status})`)}async function ot(e,t={}){let n=await Z(`POST`,`/api/host/update`,{service:e,versions:t});return ie(n,`Update failed (HTTP ${n.status})`)}async function st(){return await(await Q(await Z(`GET`,`/api/host/versions`))).json()}async function ct(e){return await(await Q(await Z(`PATCH`,`/api/host/versions`,{versions:e}))).json()}async function lt(e){return await(await Q(await Z(`POST`,`/api/host/ui-version`,{tag:e}))).json()}async function ut(){return await(await Q(await Z(`GET`,`/api/host/backups`))).json()}async function dt(e){return await(await Q(await Z(`POST`,`/api/host/backups`,{keep:e}))).json()}async function ft(){return await(await Q(await Z(`GET`,`/api/host/secret-notice`))).json()}async function pt(){return await(await Q(await Z(`DELETE`,`/api/host/secret-notice`))).json()}async function mt(){return await(await Q(await Z(`GET`,`/api/host/unlock`))).json()}async function ht(){return await(await Q(await Z(`POST`,`/api/host/unlock`))).json()}async function gt(){return await(await Q(await Z(`GET`,`/api/host/automations`))).json()}async function _t(e){return await(await Q(await Z(`POST`,`/api/host/automations/${encodeURIComponent(e)}/run`))).json()}async function vt(e,t=200){let n=new URLSearchParams({limit:String(t)});return await(await Q(await Z(`GET`,`/api/host/automations/${encodeURIComponent(e)}/log?${n.toString()}`))).json()}async function yt(e){let t=new URLSearchParams;e?.service&&t.set(`service`,e.service),e?.tail&&t.set(`tail`,String(e.tail)),e?.since&&t.set(`since`,e.since);let n=t.toString();return await(await Q(await Z(`GET`,`/api/host/logs${n?`?${n}`:``}`))).json()}async function bt(e){return await(await Q(await Z(`GET`,`/api/host/automations/${encodeURIComponent(e)}/file`))).json()}async function xt(e,t){return await(await Q(await Z(`PUT`,`/api/host/automations/${encodeURIComponent(e)}/file`,{content:t}))).json()}async function St(e){return await(await Q(await Z(`DELETE`,`/api/host/automations/${encodeURIComponent(e)}/file`))).json()}async function Ct(){return(await(await Q(await Z(`GET`,`/api/host/addons`))).json()).addons}async function wt(e,t,n){let r={enabled:t};return n&&(r.env=n),await(await Q(await Z(`POST`,`/api/host/addons/${encodeURIComponent(e)}`,r))).json()}async function Tt(e){return(await(await Q(await Z(`GET`,`/api/host/addons/${encodeURIComponent(e)}/credentials`))).json()).fields}async function Et(e,t){return await(await Q(await Z(`POST`,`/api/host/addons/${encodeURIComponent(e)}/credentials`,{values:t}))).json()}async function Dt(){return await(await Q(await Z(`GET`,`/api/host/secrets`))).json()}async function Ot(e){return await(await Q(await Z(`GET`,`/api/host/secrets/${encodeURIComponent(e)}`))).json()}async function kt(e,t){return await(await Q(await Z(`PUT`,`/api/host/secrets/${encodeURIComponent(e)}`,{value:t}))).json()}async function At(e){return await(await Q(await Z(`DELETE`,`/api/host/secrets/${encodeURIComponent(e)}`))).json()}async function jt(){return await(await Q(await Z(`GET`,`/api/assistant/akm`))).json()}async function Mt(e){return await(await Q(await Z(`PATCH`,`/api/assistant/akm`,e))).json()}async function Nt(){return await(await Q(await Z(`POST`,`/api/host/akm/embedding/detect`,{}))).json()}async function Pt(e){return await(await Q(await Z(`POST`,`/api/host/akm/embedding/test`,e))).json()}async function Ft(){return await(await Q(await Z(`POST`,`/api/host/akm/reindex`,{}))).json()}async function It(){return await(await Q(await Z(`GET`,`/api/host/stack`))).json()}async function Lt(e){return await(await Q(await Z(`PUT`,`/api/host/stack`,e))).json()}async function Rt(){return await(await Q(await Z(`GET`,`/api/assistant/persona`))).json()}async function zt(e){return await(await Q(await Z(`PUT`,`/api/assistant/persona`,e))).json()}async function Bt(){return await(await Q(await Z(`GET`,`/api/host/akm/health`))).json()}async function Vt(){return await(await Q(await Z(`GET`,`/api/host/akm/stats`))).json()}async function Ht(){return await(await Q(await Z(`GET`,`/api/host/akm/host-sharing`))).json()}async function Ut(){return await(await Q(await Z(`PUT`,`/api/host/akm/host-sharing`,{}))).json()}async function Wt(){return await(await Q(await Z(`DELETE`,`/api/host/akm/host-sharing`))).json()}async function Gt(){return await(await Q(await Z(`GET`,`/api/host/providers`))).json()}async function Kt(){return(await(await Q(await Z(`GET`,`/api/host/providers/assistant-clis`))).json()).tools??[]}async function qt(e,t){await Q(await Z(`POST`,`/api/assistant/model`,{[e]:t||null}))}async function Jt(e){await Q(await Z(`DELETE`,`/api/host/opencode/providers/${encodeURIComponent(e)}/auth`))}async function Yt(){return await(await Q(await Z(`GET`,`/api/host/providers/host-status`))).json()}async function Xt(e,t){await Q(await Z(`POST`,`/api/host/providers/assistant-clis/${encodeURIComponent(e)}/use-provider`,{providerId:t}))}async function Zt(e,t){return ie(await Z(`POST`,`/api/host/providers/oauth/start`,{providerId:e,methodIndex:String(t)}),`OAuth start failed.`)}async function Qt(e,t,n){return Z(`POST`,`/api/host/providers/oauth/${encodeURIComponent(e)}/callback`,{method:t},{signal:n})}async function $t(e,t){await Q(await Z(`POST`,`/api/host/opencode/providers/${encodeURIComponent(e)}/auth`,{mode:`api_key`,apiKey:t}))}async function en(e,t,n){await Q(await Z(`POST`,`/api/host/providers/oauth/finish`,{providerId:e,methodIndex:t,code:n}))}async function tn(e,t){let n=await Z(`PATCH`,`/api/host/providers/${encodeURIComponent(e)}`,{kind:`register-custom`,displayName:t.displayName,baseURL:t.baseURL,apiKey:t.apiKey,modelsJson:`[]`,headersJson:`[]`,confirmOverwrite:`false`}),r=await ie(n,`Registration failed.`);if(!n.ok||r.ok===!1)throw Object.assign(Error(r.message??`Registration failed.`),{status:n.status});return r}async function nn(){let e=await Z(`POST`,`/api/host/providers/import-host`),t=await ie(e,`Import failed.`);if(!e.ok)throw Object.assign(Error(t.message??`Import failed.`),{status:e.status});return t}function rn(e){let t=e?.status;return t===401||t===403}function an(e,t){return e instanceof Error?e.message:t}var on=s(`<button type="button" class="voice-stop-btn svelte-1fzuh38" aria-label="Stop assistant speech" title="Assistant is speaking — click to stop"><!> <span class="sr-only svelte-1fzuh38">Stop speaking</span></button>`);function sn(e,t){j(t,!0);let r=E(()=>X.status===`speaking`);var i=a(),o=H(i),s=e=>{var t=on();je(B(t),{size:16}),C(2),q(t),n(`click`,t,()=>le()),d(e,t)};l(o,e=>{h(r)&&e(s)}),d(e,i),R()}J([`click`]);var cn=c(`<svg aria-hidden="true" viewBox="0 0 24 24"><rect fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" x="4" y="4" width="7" height="7" rx="1.4"></rect><rect fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" x="13" y="4" width="7" height="7" rx="1.4"></rect><rect fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" x="4" y="13" width="7" height="7" rx="1.4"></rect><rect fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" x="13" y="13" width="7" height="7" rx="1.4"></rect></svg>`);function ln(e,t){let n=b(t,`size`,3,20),r=b(t,`class`,3,``);var i=cn();_(()=>{V(i,`width`,n()),V(i,`height`,n()),S(i,0,`s-icon ${r()??``}`)}),d(e,i)}var un=c(`<svg aria-hidden="true" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M6 4.5h10.5a1.8 1.8 0 0 1 1.8 1.8v13.2H7.5a1.5 1.5 0 0 1-1.5-1.5z"></path><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M6 17.5h12.3"></path><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M9.5 8.5h6"></path><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M9.5 12h4"></path></svg>`);function dn(e,t){let n=b(t,`size`,3,20),r=b(t,`class`,3,``);var i=un();_(()=>{V(i,`width`,n()),V(i,`height`,n()),S(i,0,`s-icon ${r()??``}`)}),d(e,i)}var fn=c(`<svg aria-hidden="true" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M12 7.5a5.5 5.5 0 0 0-9.5 0v10.5a5.5 5.5 0 0 1 9.5 0"></path><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M12 7.5a5.5 5.5 0 0 1 9.5 0v10.5a5.5 5.5 0 0 0-9.5 0"></path></svg>`);function pn(e,t){let n=b(t,`size`,3,20),r=b(t,`class`,3,``);var i=fn();_(()=>{V(i,`width`,n()),V(i,`height`,n()),S(i,0,`s-icon ${r()??``}`)}),d(e,i)}var mn=c(`<svg aria-hidden="true" viewBox="0 0 24 24"><rect fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" x="3" y="9" width="7" height="6" rx="1.5"></rect><rect fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" x="14" y="9" width="7" height="6" rx="1.5"></rect><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M10 12h4"></path><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M12 10l2 2-2 2"></path></svg>`);function hn(e,t){let n=b(t,`size`,3,20),r=b(t,`class`,3,``);var i=mn();_(()=>{V(i,`width`,n()),V(i,`height`,n()),S(i,0,`s-icon ${r()??``}`)}),d(e,i)}var gn=c(`<svg aria-hidden="true" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M12 5L3 9.5l9 4.5 9-4.5z"></path><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M3 14.5l9 4.5 9-4.5"></path><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M3 18.5l9 4.5 9-4.5"></path></svg>`);function _n(e,t){let n=b(t,`size`,3,20),r=b(t,`class`,3,``);var i=gn();_(()=>{V(i,`width`,n()),V(i,`height`,n()),S(i,0,`s-icon ${r()??``}`)}),d(e,i)}var vn=c(`<svg aria-hidden="true" viewBox="0 0 24 24"><circle fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" cx="12" cy="12" r="8.5"></circle><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M13.5 6.5l-4.5 6h4.5l-4.5 7"></path></svg>`);function yn(e,t){let n=b(t,`size`,3,20),r=b(t,`class`,3,``);var i=vn();_(()=>{V(i,`width`,n()),V(i,`height`,n()),S(i,0,`s-icon ${r()??``}`)}),d(e,i)}var bn=c(`<svg aria-hidden="true" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M6.5 18.5a4.5 4.5 0 0 1 .5-9H8a6 6 0 0 1 11.5 2.5 3.5 3.5 0 0 1-.5 6.5"></path><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M12 11v7"></path><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M9.5 15.5l2.5 2.5 2.5-2.5"></path></svg>`);function xn(e,t){let n=b(t,`size`,3,20),r=b(t,`class`,3,``);var i=bn();_(()=>{V(i,`width`,n()),V(i,`height`,n()),S(i,0,`s-icon ${r()??``}`)}),d(e,i)}var Sn=c(`<svg aria-hidden="true" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M4 11L12 4l8 7"></path><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M6 10v9.5h12V10"></path><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M10 19.5v-5.5h4v5.5"></path></svg>`);function Cn(e,t){let n=b(t,`size`,3,20),r=b(t,`class`,3,``);var i=Sn();_(()=>{V(i,`width`,n()),V(i,`height`,n()),S(i,0,`s-icon ${r()??``}`)}),d(e,i)}var wn=s(`<button role="tab"> </button>`),Tn=s(`<button role="tab"><!> </button>`),En=s(`<div class="subtab-row svelte-7673iv"><div class="tabs svelte-7673iv" role="tablist"></div></div>`),Dn=s(`<nav class="nav-shell svelte-7673iv" aria-label="Admin sections"><div class="section-strip svelte-7673iv" role="tablist" aria-label="Sections"></div> <!></nav>`);function On(e,t){j(t,!0);let r=[{id:`health`,label:`Health`,tabs:[{id:`overview`,label:`Overview`,icon:ln},{id:`activity`,label:`Activity`,icon:Xe},{id:`containers`,label:`Systems`,icon:Be},{id:`logs`,label:`Journal`,icon:dn},{id:`updates`,label:`Check-up`,icon:xn},{id:`recovery`,label:`Recovery`,icon:Cn}]},{id:`mind`,label:`Mind`,tabs:[{id:`connections`,label:`AI Providers`,icon:Je}]},{id:`voice`,label:`Voice`,tabs:[{id:`voice`,label:`Voice`,icon:Ve}]},{id:`routines`,label:`Routines`,tabs:[{id:`automations`,label:`Automations`,icon:yn}]},{id:`capabilities`,label:`Capabilities`,tabs:[{id:`addons`,label:`Add-ons`,icon:_n}]},{id:`knowledge`,label:`Knowledge`,tabs:[{id:`akm`,label:`Memory`,icon:pn},{id:`assistant`,label:`Assistant`,icon:$e},{id:`secrets`,label:`Secrets`,icon:et},{id:`host-sharing`,label:`Sharing`,icon:hn}]}],i=E(()=>r.find(e=>e.tabs.some(e=>e.id===t.active))??r[0]);function a(e){if(e.key!==`ArrowLeft`&&e.key!==`ArrowRight`)return;e.preventDefault();let t=e.currentTarget,n=Array.from(t.parentElement?.querySelectorAll(`[role="tab"]`)??[]),r=n.indexOf(t);r!==-1&&n[e.key===`ArrowRight`?(r+1)%n.length:(r-1+n.length)%n.length]?.focus()}function o(e){if(e.key!==`ArrowLeft`&&e.key!==`ArrowRight`)return;e.preventDefault();let t=e.currentTarget,n=Array.from(t.parentElement?.querySelectorAll(`[role="tab"]`)??[]),r=n.indexOf(t);r!==-1&&n[e.key===`ArrowRight`?(r+1)%n.length:(r-1+n.length)%n.length]?.focus()}function s(e){t.onSelect(e.tabs[0].id)}var c=Dn(),f=B(c);P(f,21,()=>r,e=>e.id,(e,t)=>{var r=wn();let o;var c=B(r,!0);q(r),_(()=>{o=S(r,1,`section-tab svelte-7673iv`,null,o,{"section-tab-active":h(i).id===h(t).id}),V(r,`aria-selected`,h(i).id===h(t).id),u(c,h(t).label)}),n(`click`,r,()=>s(h(t))),n(`keydown`,r,a),d(e,r)}),q(f);var p=M(f,2),g=e=>{var r=En(),a=B(r);P(a,21,()=>h(i).tabs,e=>e.id,(e,r)=>{var i=Tn();let a;var s=B(i);m(s,()=>h(r).icon,(e,t)=>{t(e,{size:13})});var c=M(s);q(i),_(()=>{a=S(i,1,`tab svelte-7673iv`,null,a,{"tab-active":t.active===h(r).id}),V(i,`aria-selected`,t.active===h(r).id),u(c,` ${h(r).label??``}`)}),n(`click`,i,()=>t.onSelect(h(r).id)),n(`keydown`,i,o),d(e,i)}),q(a),q(r),_(()=>V(a,`aria-label`,`${h(i).label??``} tabs`)),d(e,r)};l(p,e=>{h(i).tabs.length>1&&e(g)}),q(c),d(e,c),R()}J([`click`,`keydown`]);var kn=s(`<button class="btn btn-secondary">View containers</button>`),An=s(`<section role="status" aria-live="polite"><span class="hero-icon svelte-10n23hu" aria-hidden="true"><!></span> <div class="hero-text svelte-10n23hu"><h2 class="hero-title svelte-10n23hu"> </h2> <p class="hero-detail svelte-10n23hu"> </p></div> <div class="hero-actions svelte-10n23hu"><button class="btn btn-secondary"> </button> <!> <button class="btn btn-secondary">Check for updates</button></div></section>`);function jn(e,t){j(t,!0);var r=An(),i=B(r),a=B(i),o=e=>{Qe(e,{size:22})},s=e=>{Ue(e,{size:22})},c=e=>{de(e,{size:22})};l(a,e=>{t.status===`warning`?e(o):t.status===`ok`?e(s,1):e(c,-1)}),q(i);var f=M(i,2),p=B(f),m=B(p,!0);q(p);var h=M(p,2),g=B(h,!0);q(h),q(f);var v=M(f,2),y=B(v),b=B(y,!0);q(y);var x=M(y,2),C=e=>{var r=kn();n(`click`,r,()=>t.onNavigate(`containers`)),d(e,r)};l(x,e=>{t.status===`warning`&&e(C)});var w=M(x,2);q(v),q(r),_(()=>{S(r,1,`hero hero--${t.status??``}`,`svelte-10n23hu`),u(m,t.title),u(g,t.detail),y.disabled=t.healthLoading,u(b,t.healthLoading?`Checking…`:`Re-check`)}),n(`click`,y,function(...e){t.onCheckHealth?.apply(this,e)}),n(`click`,w,()=>t.onNavigate(`updates`)),d(e,r),R()}J([`click`]);var Mn=s(`<span class="tile-metric tile-metric--icon svelte-19hpfg" aria-hidden="true"><!></span>`),Nn=s(`<span class="tile-metric-sub svelte-19hpfg"> </span>`),Pn=s(` <!>`,1),Fn=s(`<span><!></span>`),In=s(`<span> </span>`),Ln=s(`<button class="tile svelte-19hpfg"><!> <span class="tile-label svelte-19hpfg"> </span> <!></button>`);function Rn(e,t){let r=b(t,`value`,3,null),a=b(t,`sub`,3,null),o=b(t,`loaded`,3,!0);var s=Ln(),c=B(s),p=e=>{var n=Mn();i(B(n),()=>t.icon),q(n),d(e,n)},m=e=>{var n=Fn();let i;var s=B(n),c=e=>{var t=Pn(),n=H(t,!0),i=M(n),o=e=>{var t=Nn(),n=B(t,!0);q(t),_(()=>u(n,a())),d(e,t)};l(i,e=>{a()&&e(o)}),_(()=>u(n,r())),d(e,t)},p=e=>{d(e,f(`—`))};l(s,e=>{o()?e(c):e(p,-1)}),q(n),_(()=>i=S(n,1,`tile-metric svelte-19hpfg`,null,i,{"tile-metric--ok":t.status===`ok`,"tile-metric--warn":t.status===`warn`})),d(e,n)};l(c,e=>{t.icon?e(p):e(m,-1)});var h=M(c,2),g=B(h,!0);q(h);var v=M(h,2),y=e=>{var n=In();let r;var i=B(n,!0);q(n),_(()=>{r=S(n,1,`s-tile-badge svelte-19hpfg`,null,r,{"s-tile-badge--ok":t.status===`ok`,"s-tile-badge--warn":t.status===`warn`}),u(i,t.badge)}),d(e,n)};l(v,e=>{t.badge&&e(y)}),q(s),_(()=>u(g,t.label)),n(`click`,s,function(...e){t.onClick?.apply(this,e)}),d(e,s)}J([`click`]);var zn=s(`<div class="akm-metric svelte-dcgqe1"><span class="akm-num svelte-dcgqe1"> </span> <span class="akm-cap svelte-dcgqe1">Task failure rate</span></div>`),Bn=s(`<div class="akm-metrics svelte-dcgqe1"><div class="akm-metric svelte-dcgqe1"><span class="akm-num svelte-dcgqe1"> </span> <span class="akm-cap svelte-dcgqe1">Indexed assets</span></div> <div class="akm-metric svelte-dcgqe1"><span class="akm-num svelte-dcgqe1"> <span class="akm-num-sub svelte-dcgqe1"> </span></span> <span class="akm-cap svelte-dcgqe1">Health checks passing</span></div> <div class="akm-metric svelte-dcgqe1"><span class="akm-num svelte-dcgqe1"> </span> <span class="akm-cap svelte-dcgqe1">Semantic search</span></div> <!></div>`),Vn=s(`<p class="akm-unavailable svelte-dcgqe1">Metrics unavailable — the akm CLI isn't reachable from the admin host.</p>`),Hn=s(`<button class="akm-card svelte-dcgqe1" aria-label="AKM health — open Knowledge settings"><div class="akm-head svelte-dcgqe1"><span class="akm-title svelte-dcgqe1">AKM runtime health</span> <span> </span></div> <!></button>`);function Un(e,t){j(t,!0);var r=Hn(),i=B(r),a=M(B(i),2),o=B(a,!0);q(a),q(i);var s=M(i,2),c=e=>{var n=Bn(),r=B(n),i=B(r),a=B(i,!0);q(i),C(2),q(r);var o=M(r,2),s=B(o),c=B(s,!0),f=M(c),p=B(f);q(f),q(s),C(2),q(o);var m=M(o,2),h=B(m),g=B(h,!0);q(h),C(2),q(m);var v=M(m,2),y=e=>{var n=zn(),r=B(n),i=B(r);q(r),C(2),q(n),_(e=>u(i,`${e??``}%`),[()=>Math.round(t.akm.metrics.taskFailRate*100)]),d(e,n)};l(v,e=>{t.akm.metrics&&typeof t.akm.metrics.taskFailRate==`number`&&e(y)}),q(n),_(e=>{u(a,e),u(c,t.akm.checks.pass),u(p,`/${t.checkTotal??``}`),u(g,t.akm.index?.hasEmbeddings?`On`:`Off`)},[()=>t.akm.index?.entryCount?.toLocaleString()??`—`]),d(e,n)},f=e=>{d(e,Vn())};l(s,e=>{t.akm&&t.akm.available?e(c):e(f,-1)}),q(r),_(()=>{S(a,1,`badge ${t.badge.cls??``}`,`svelte-dcgqe1`),u(o,t.badge.label)}),n(`click`,r,()=>t.onNavigate(`akm`)),d(e,r),R()}J([`click`]);var Wn=s(`<div class="shortcut-grid svelte-8y2vdf"><button class="shortcut svelte-8y2vdf"><span class="shortcut-name svelte-8y2vdf">AI Providers</span> <span class="shortcut-desc svelte-8y2vdf">Models & provider credentials</span></button> <button class="shortcut svelte-8y2vdf"><span class="shortcut-name svelte-8y2vdf">Knowledge</span> <span class="shortcut-desc svelte-8y2vdf">Assistant memory & behavior</span></button> <button class="shortcut svelte-8y2vdf"><span class="shortcut-name svelte-8y2vdf">Voice</span> <span class="shortcut-desc svelte-8y2vdf">Speech-to-text & text-to-speech</span></button> <button class="shortcut svelte-8y2vdf"><span class="shortcut-name svelte-8y2vdf">Portals & add-ons</span> <span class="shortcut-desc svelte-8y2vdf">Discord, Slack, API & more</span></button> <button class="shortcut svelte-8y2vdf"><span class="shortcut-name svelte-8y2vdf">Secrets</span> <span class="shortcut-desc svelte-8y2vdf">Stack & portal credentials</span></button> <a class="shortcut svelte-8y2vdf" href="/setup?rerun=1"><span class="shortcut-name svelte-8y2vdf">Re-run setup</span> <span class="shortcut-desc svelte-8y2vdf">Walk through the setup wizard again</span></a></div>`);function Gn(e,t){j(t,!0);var r=Wn(),i=B(r),a=M(i,2),o=M(a,2),s=M(o,2),c=M(s,2);C(2),q(r),n(`click`,i,()=>t.onNavigate(`connections`)),n(`click`,a,()=>t.onNavigate(`akm`)),n(`click`,o,()=>t.onNavigate(`voice`)),n(`click`,s,()=>t.onNavigate(`addons`)),n(`click`,c,()=>t.onNavigate(`secrets`)),d(e,r),R()}J([`click`]);var Kn=s(`<!> <div class="tile-grid svelte-xz862u"><!> <!> <!></div> <h3 class="section-heading svelte-xz862u">Knowledge base (AKM)</h3> <!> <h3 class="section-heading svelte-xz862u">Configure</h3> <!>`,1);function qn(e,t){j(t,!0);let n=I(null);ee(()=>{Me.load(),Bt().then(e=>{W(n,e,!0)}).catch(()=>{W(n,{available:!1},!0)})});let r=E(()=>{if(!h(n)||!h(n).available)return{label:`Unavailable`,cls:`badge-neutral`};let e=h(n).status;return e!==`ok`&&e!==`warn`&&e!==`fail`&&(e=h(n).checks.fail>0?`fail`:h(n).checks.warn>0?`warn`:`ok`),e===`ok`?{label:`Healthy`,cls:`badge-success`}:e===`warn`?{label:`Warnings`,cls:`badge-warning`}:{label:`Issues`,cls:`badge-danger`}}),i=E(()=>h(n)&&h(n).available?h(n).checks.pass+h(n).checks.warn+h(n).checks.fail:0),a=E(()=>t.managedServices.length>0?t.managedServices:[...t.mergedServices.keys()]),o=E(()=>{if(h(a).length===0)return null;let e=h(a).filter(e=>t.mergedServices.get(e)===`running`).length;return{total:h(a).length,running:e}}),s=E(()=>h(a).filter(e=>t.mergedServices.get(e)!==`running`)),c=E(()=>{if(!h(o))return{status:`unknown`,title:`Checking services…`,detail:`Fetching the latest status from Docker.`};if(h(o).running===h(o).total&&h(o).total>0)return{status:`ok`,title:`All systems operational`,detail:`${h(o).total} of ${h(o).total} services are running normally.`};let e=h(o).total-h(o).running,t=h(s).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(`, `);return{status:`warning`,title:`${e} of ${h(o).total} services not running`,detail:t?`Not running: ${t}.`:`One or more services need attention.`}});var l=Kn(),u=H(l);jn(u,{get status(){return h(c).status},get title(){return h(c).title},get detail(){return h(c).detail},get healthLoading(){return t.healthLoading},get onCheckHealth(){return t.onCheckHealth},get onNavigate(){return t.onNavigate}});var f=M(u,2),p=B(f);{let e=E(()=>h(o)?.running),n=E(()=>h(o)?`/${h(o).total}`:null),r=E(()=>!!h(o)),i=E(()=>h(o)?.running===h(o)?.total?`ok`:`warn`),a=E(()=>h(o)?.running===h(o)?.total?`operational`:`${(h(o)?.total??0)-(h(o)?.running??0)} down`);Rn(p,{label:`Services running`,onClick:()=>t.onNavigate(`containers`),get value(){return h(e)},get sub(){return h(n)},get loaded(){return h(r)},get status(){return h(i)},get badge(){return h(a)}})}var m=M(p,2);Rn(m,{label:`View logs`,onClick:()=>t.onNavigate(`logs`),icon:e=>{Ye(e,{size:22})},$$slots:{icon:!0}}),Rn(M(m,2),{label:`Check for updates`,onClick:()=>t.onNavigate(`updates`),icon:e=>{xn(e,{size:22})},$$slots:{icon:!0}}),q(f);var g=M(f,4);Un(g,{get akm(){return h(n)},get badge(){return h(r)},get checkTotal(){return h(i)},get onNavigate(){return t.onNavigate}}),Gn(M(g,4),{get onNavigate(){return t.onNavigate}}),d(e,l),R()}var Jn=s(`<!> Updating everything…`,1),Yn=s(`<!> Updating UI…`,1),Xn=s(`<p class="msg msg-error svelte-7mkeya" role="alert"> </p>`),Zn=s(`<p class="msg msg-success svelte-7mkeya" role="status"> </p>`),Qn=s(`<p class="msg msg-error svelte-7mkeya" role="alert"> </p>`),$n=s(`<p class="msg msg-success svelte-7mkeya" role="status"> </p>`),er=s(`<p class="msg msg-error svelte-7mkeya" role="alert"> </p>`),tr=s(`<p class="loading-line svelte-7mkeya"><!> Loading versions…</p>`),nr=s(`<span></span>`),rr=s(`<div class="pin-edit-row svelte-7mkeya"><input class="pin-input svelte-7mkeya" type="text" autocomplete="off" spellcheck="false" placeholder="tag or leave empty for latest"/> <button class="btn-inline btn-save svelte-7mkeya">Save</button> <button class="btn-inline btn-cancel svelte-7mkeya">Cancel</button></div>`),ir=s(`<button class="pin-chip svelte-7mkeya"><span class="pin-chip-text svelte-7mkeya"> </span> <span class="pin-edit-icon svelte-7mkeya" aria-hidden="true">✏</span></button>`),ar=s(`<span class="inline-success svelte-7mkeya"> </span>`),or=s(`<span class="inline-error svelte-7mkeya" role="alert"> </span>`),sr=s(`<code class="ver ver-new svelte-7mkeya"> </code>`),cr=s(`<code class="ver svelte-7mkeya"> </code>`),lr=s(`<span class="inline-success svelte-7mkeya"> </span>`),ur=s(`<span class="inline-error svelte-7mkeya" role="alert"> </span>`),dr=s(`<tr><td class="col-name svelte-7mkeya"><span class="comp-label svelte-7mkeya"> </span></td><td class="col-running svelte-7mkeya"><code class="ver svelte-7mkeya"> </code> <!></td><td class="col-pin svelte-7mkeya"><!> <!> <!></td><td class="col-avail svelte-7mkeya"><!></td><td class="col-action svelte-7mkeya"><button><!></button> <!> <!></td></tr>`),fr=s(`<p class="inline-error svelte-7mkeya" role="alert"> </p>`),pr=s(`<section aria-label="Container images"><table class="comp-table svelte-7mkeya" aria-label="Component versions"><thead><tr><th scope="col" class="col-name svelte-7mkeya">Component</th><th scope="col" class="col-running svelte-7mkeya">Running</th><th scope="col" class="col-pin svelte-7mkeya">Pin</th><th scope="col" class="col-avail svelte-7mkeya">Available</th><th scope="col" class="col-action svelte-7mkeya"><span class="sr-only svelte-7mkeya">Actions</span></th></tr></thead><tbody></tbody></table></section> <section class="channel-section svelte-7mkeya" aria-labelledby="channel-heading"><h3 id="channel-heading" class="section-heading svelte-7mkeya">Update channel</h3> <p class="section-desc svelte-7mkeya">Controls which releases are considered when tracking latest.</p> <div class="channel-toggle svelte-7mkeya" role="group" aria-label="Update channel"><button>Stable</button> <button>Prerelease</button></div> <!></section>`,1),mr=s(`<label class="desktop-toggle svelte-7mkeya"><input type="checkbox"/> <span>Notify when the assistant replies or errors while the app is in the background.</span></label> <label class="desktop-toggle desktop-toggle--nested svelte-7mkeya"><input type="checkbox"/> <span>Include reply preview in the notification body.</span></label> <p class="setting-hint svelte-7mkeya">Reply previews stay off by default because desktop notifications can persist outside the app.</p>`,1),hr=s(`<label class="desktop-toggle svelte-7mkeya"><input type="checkbox" disabled=""/> <span>Notify when the assistant replies or errors while the app is in the background.</span></label> <label class="desktop-toggle desktop-toggle--nested svelte-7mkeya"><input type="checkbox" disabled=""/> <span>Include reply preview in the notification body.</span></label> <p class="setting-hint svelte-7mkeya">Desktop notifications are available in the OpenPalm desktop app.</p>`,1),gr=s(`<section class="desktop-settings svelte-7mkeya" aria-labelledby="desktop-settings-title"><h3 id="desktop-settings-title" class="section-heading svelte-7mkeya">Desktop settings</h3> <div class="desktop-setting-row svelte-7mkeya"><div class="setting-label svelte-7mkeya">Launch on login</div> <label class="desktop-toggle svelte-7mkeya"><input type="checkbox"/> <span>Start OpenPalm automatically when you sign in on this device.</span></label> <p class="setting-hint svelte-7mkeya"><!></p></div> <div class="desktop-setting-row svelte-7mkeya"><div class="setting-label svelte-7mkeya">Desktop notifications</div> <!></div></section>`),_r=s(`<div class="panel" role="tabpanel"><div class="panel-header svelte-7mkeya"><div><h2>Updates</h2> <p class="panel-subtitle">Update individual components or everything at once.</p> <p class="control-plane-line svelte-7mkeya">Control plane: <strong class="svelte-7mkeya"> </strong></p></div> <div class="header-actions svelte-7mkeya"><button class="btn btn-primary"><!></button> <button class="btn btn-outline"><!></button></div></div> <!> <!> <!> <!> <div class="panel-body"><!> <!> <!></div></div>`);function vr(e,t){j(t,!0);let r=[{key:`OP_ASSISTANT_VERSION`,label:`Assistant`,service:`assistant`},{key:`OP_GUARDIAN_VERSION`,label:`Guardian`,service:`guardian`},{key:`OP_PORTAL_VERSION`,label:`Portal`,service:`portal`},{key:`OP_VOICE_VERSION`,label:`Voice`,service:`voice`}],i=I(``),a=I(`latest`),o=I(x({})),s=I(!0),c=I(``),p=I(x({})),m=x({}),g=x({}),v=x({}),y=x({}),b=x({}),w=I(``),D=I(!1),k=I(``),A=I(``),N=I(!1),F=I(``),z=I(``),U=I(!1),G=I(!1),te=I(!1),ne=I(!1),K=I(!1),J=I(!1);ee(()=>{W(U,window.openpalm!==void 0),W(G,De(),!0),W(te,we(),!0),re(),ie()});async function re(){W(s,!0),W(c,``);try{let e=await st();W(i,e.platformVersion,!0),W(a,e.channel??`latest`,!0),W(o,e.components??{},!0)}catch(e){W(c,`Failed to load versions: ${e.message??String(e)}`)}W(s,!1)}async function ie(){let e=await window.openpalm?.launchOnLoginStatus?.();e&&(W(ne,e.supported,!0),W(K,e.enabled,!0))}function ae(e){if(!e?.running)return`not installed`;let t=e.running.plainVersion||e.running.tag.split(`:`).pop()||`—`;return e.running.containerState===`running`?t:`${t} (stopped)`}function Y(e){return e?e.pinned??`latest (tracking)`:`—`}function X(e){return e?.available?e.available:`—`}function oe(e){if(!e?.available||!e.running)return!1;let t=e.running.plainVersion||e.running.tag.split(`:`).pop()||``;return Z(e.available)!==Z(t)}function Z(e){return e.replace(/^v/,``)}function se(e){let t={};for(let n of e){let e=h(o)[n];if(!e)continue;let r=e.pinned??e.available;if(!r)continue;let i=e.running?.plainVersion??null,a=i===`latest`||i===`next`||i===null;!e.pinned&&a||i&&Z(r)===Z(i)||(t[n]=r)}return t}function ce(e){let t=h(o)[e];h(p)[e]=t?.pinned??``}function le(e){delete h(p)[e],W(p,{...h(p)},!0)}async function Q(e){let t=h(p)[e];if(t===void 0)return;let n=t.trim()||null;y[e]=``,b[e]=``;try{await ct({[e]:n??`latest`}),W(o,{...h(o),[e]:{...h(o)[e],pinned:n}},!0),b[e]=n?`Pinned to ${n}`:`Tracking latest`,le(e)}catch(t){y[e]=`Pin failed: ${t.message??String(t)}`}}async function ue(e,t){if(!(m[e]||h(D))){m[e]=!0,g[e]=``,v[e]=``;try{let n=await ot(t,se([e]));n.overallSuccess?(v[e]=`Updated (${n.restarted.join(`, `)||t})`,fe()):g[e]=n.failed.length>0?n.failed.map(e=>`${e.service}: ${e.reason}`).join(`; `):n.dockerAvailable?n.error??`Update failed`:`Docker is unavailable`}catch(t){g[e]=t.message??String(t)}m[e]=!1}}async function de(){if(!(h(D)||Object.values(m).some(Boolean))){W(D,!0),W(k,``),W(A,``);try{let e=await at(se(Object.keys(h(o))));e.overallSuccess?(W(A,e.restarted.length>0?`Updated: ${e.restarted.join(`, `)}`:`Stack is up to date`,!0),fe()):W(k,e.failed.length>0?`Failed: ${e.failed.map(e=>`${e.service}: ${e.reason}`).join(`; `)}`:e.dockerAvailable?e.error??`Update failed`:`Docker is unavailable — stack not restarted`,!0)}catch(e){W(k,e.message??String(e),!0)}W(D,!1)}}async function fe(){try{let e=await st();W(i,e.platformVersion,!0),W(a,e.channel??`latest`,!0),W(o,e.components??{},!0)}catch{}}async function pe(){if(!h(N)){W(N,!0),W(F,``),W(z,``);try{let e=await lt(`latest`);e.pendingRestart?(window.openpalm?.restartUiServer?.(),W(z,`Updating UI — restarting…`)):e.restarting?(setTimeout(()=>{location.href=`/`},4e3),W(z,`UI updated — reloading in a moment…`)):W(z,`UI downloaded. Restart the admin UI to apply it.`)}catch(e){W(F,e.message??String(e),!0)}W(N,!1)}}async function me(e){let t=e.currentTarget.checked;if(!window.openpalm?.setLaunchOnLogin){W(K,!1);return}W(J,!0);try{let e=await window.openpalm.setLaunchOnLogin(t);W(ne,e.supported,!0),W(K,e.enabled,!0)}finally{W(J,!1)}}let he=E(()=>h(D)||h(N)||Object.values(m).some(Boolean));var ge=_r(),_e=B(ge),ve=B(_e),ye=M(B(ve),4),xe=M(B(ye)),Se=B(xe,!0);q(xe),q(ye),q(ve);var Ce=M(ve,2),Te=B(Ce),Ee=B(Te),Oe=e=>{var t=Jn();$(H(t),{}),C(),d(e,t)},ke=e=>{d(e,f(`Update everything`))};l(Ee,e=>{h(D)?e(Oe):e(ke,-1)}),q(Te);var Ae=M(Te,2),je=B(Ae),Me=e=>{var t=Yn();$(H(t),{}),C(),d(e,t)},Pe=e=>{d(e,f(`Update UI`))};l(je,e=>{h(N)?e(Me):e(Pe,-1)}),q(Ae),q(Ce),q(_e);var Fe=M(_e,2),Ie=e=>{var t=Xn(),n=B(t,!0);q(t),_(()=>u(n,h(k))),d(e,t)};l(Fe,e=>{h(k)&&e(Ie)});var Le=M(Fe,2),Re=e=>{var t=Zn(),n=B(t,!0);q(t),_(()=>u(n,h(A))),d(e,t)};l(Le,e=>{h(A)&&e(Re)});var ze=M(Le,2),Be=e=>{var t=Qn(),n=B(t);q(t),_(()=>u(n,`UI update failed: ${h(F)??``}`)),d(e,t)};l(ze,e=>{h(F)&&e(Be)});var Ve=M(ze,2),He=e=>{var t=$n(),n=B(t,!0);q(t),_(()=>u(n,h(z))),d(e,t)};l(Ve,e=>{h(z)&&e(He)});var Ue=M(Ve,2),We=B(Ue),Ge=e=>{var t=er(),n=B(t,!0);q(t),_(()=>u(n,h(c))),d(e,t)};l(We,e=>{h(c)&&e(Ge)});var Ke=M(We,2),qe=e=>{var t=tr();$(B(t),{}),C(),q(t),d(e,t)},Je=e=>{var t=pr(),i=H(t),s=B(i),c=M(B(s));P(c,21,()=>r,e=>e.key,(e,t)=>{let r=E(()=>h(o)[h(t).key]),i=E(()=>m[h(t).key]??!1),a=E(()=>oe(h(r)));var s=dr();let c;var x=B(s),w=B(x),D=B(w,!0);q(w),q(x);var k=M(x),A=B(k),j=B(A,!0);q(A);var N=M(A,2),P=e=>{var t=nr();_(()=>{S(t,1,`health-dot health-${h(r).running.healthStatus??``}`,`svelte-7mkeya`),V(t,`aria-label`,`Health: ${h(r).running.healthStatus??``}`)}),d(e,t)};l(N,e=>{h(r)?.running?.healthStatus&&h(r).running.healthStatus!==`none`&&h(r).running.healthStatus!==``&&e(P)}),q(k);var F=M(k),I=B(F),L=e=>{var r=rr(),i=B(r);O(i);var a=M(i,2),o=M(a,2);q(r),_(()=>V(i,`aria-label`,`Pin version for ${h(t).label??``}`)),n(`keydown`,i,e=>{e.key===`Enter`&&Q(h(t).key),e.key===`Escape`&&le(h(t).key)}),T(i,()=>h(p)[h(t).key],e=>h(p)[h(t).key]=e),n(`click`,a,()=>Q(h(t).key)),n(`click`,o,()=>le(h(t).key)),d(e,r)},R=e=>{var i=ir(),a=B(i),o=B(a,!0);q(a),C(2),q(i),_(e=>{V(i,`title`,`Edit pin for ${h(t).label??``}`),u(o,e)},[()=>Y(h(r))]),n(`click`,i,()=>ce(h(t).key)),d(e,i)};l(I,e=>{h(p)[h(t).key]===void 0?e(R,-1):e(L)});var z=M(I,2),ee=e=>{var n=ar(),r=B(n,!0);q(n),_(()=>u(r,b[h(t).key])),d(e,n)};l(z,e=>{b[h(t).key]&&e(ee)});var H=M(z,2),U=e=>{var n=or(),r=B(n,!0);q(n),_(()=>u(r,y[h(t).key])),d(e,n)};l(H,e=>{y[h(t).key]&&e(U)}),q(F);var W=M(F),G=B(W),te=e=>{var t=sr(),n=B(t,!0);q(t),_(e=>u(n,e),[()=>X(h(r))]),d(e,t)},ne=e=>{var t=cr(),n=B(t,!0);q(t),_(e=>u(n,e),[()=>X(h(r))]),d(e,t)};l(G,e=>{h(a)?e(te):e(ne,-1)}),q(W);var K=M(W),J=B(K);let re;var ie=B(J),Z=e=>{$(e,{})},se=e=>{d(e,f(`Update`))},de=e=>{d(e,f(`Recheck`))};l(ie,e=>{h(i)?e(Z):h(a)?e(se,1):e(de,-1)}),q(J);var fe=M(J,2),pe=e=>{var n=lr(),r=B(n,!0);q(n),_(()=>u(r,v[h(t).key])),d(e,n)};l(fe,e=>{v[h(t).key]&&e(pe)});var me=M(fe,2),ge=e=>{var n=ur(),r=B(n,!0);q(n),_(()=>u(r,g[h(t).key])),d(e,n)};l(me,e=>{g[h(t).key]&&e(ge)}),q(K),q(s),_(e=>{c=S(s,1,`svelte-7mkeya`,null,c,{"row-has-update":h(a)}),u(D,h(t).label),u(j,e),re=S(J,1,`btn btn-sm svelte-7mkeya`,null,re,{"btn-primary":h(a),"btn-ghost":!h(a)}),J.disabled=h(i)||h(he),V(J,`aria-busy`,h(i)),V(J,`aria-label`,`Update ${h(t).label??``}`)},[()=>ae(h(r))]),n(`click`,J,()=>ue(h(t).key,h(t).service)),d(e,s)}),q(c),q(s),q(i);var x=M(i,2),D=M(B(x),4),k=B(D);let A;var j=M(k,2);let N;q(D);var F=M(D,2),I=e=>{var t=fr(),n=B(t,!0);q(t),_(()=>u(n,h(w))),d(e,t)};l(F,e=>{h(w)&&e(I)}),q(x),_(()=>{A=S(k,1,`channel-btn svelte-7mkeya`,null,A,{"channel-btn--active":h(a)===`latest`}),V(k,`aria-pressed`,h(a)===`latest`),N=S(j,1,`channel-btn svelte-7mkeya`,null,N,{"channel-btn--active":h(a)===`next`}),V(j,`aria-pressed`,h(a)===`next`)}),n(`click`,k,async()=>{let e=h(a);W(a,`latest`),W(w,``);try{await ct({OP_CHANNEL:`latest`})}catch(t){W(a,e,!0),W(w,t instanceof Error?t.message:`Failed to save channel preference`,!0)}}),n(`click`,j,async()=>{let e=h(a);W(a,`next`),W(w,``);try{await ct({OP_CHANNEL:`next`})}catch(t){W(a,e,!0),W(w,t instanceof Error?t.message:`Failed to save channel preference`,!0)}}),d(e,t)};l(Ke,e=>{h(s)?e(qe):e(Je,-1)});var Ye=M(Ke,2),Xe=e=>{var t=gr(),r=M(B(t),2),i=M(B(r),2),a=B(i);O(a),C(2),q(i);var o=M(i,2),s=B(o),c=e=>{d(e,f(`Uses the native desktop login-item integration for this platform.`))},u=e=>{d(e,f(`Not wired on this platform yet. The current desktop build only exposes this safely on macOS and Windows.`))};l(s,e=>{h(ne)?e(c):e(u,-1)}),q(o),q(r);var p=M(r,2),m=M(B(p),2),g=e=>{var t=mr(),r=H(t),i=B(r);O(i),C(2),q(r);var a=M(r,2),o=B(a);O(o),C(2),q(a),C(2),_(()=>{L(i,h(G)),L(o,h(te)),o.disabled=!h(G)}),n(`change`,i,e=>{W(G,e.currentTarget.checked,!0),be(h(G)),h(G)||(W(te,!1),Ne(!1))}),n(`change`,o,e=>{W(te,e.currentTarget.checked,!0),Ne(h(te))}),d(e,t)},v=e=>{var t=hr();C(4),d(e,t)};l(m,e=>{h(U)&&typeof window.openpalm?.notify==`function`?e(g):e(v,-1)}),q(p),q(t),_(()=>{L(a,h(K)),a.disabled=!h(ne)||h(J)}),n(`change`,a,me),d(e,t)};l(Ye,e=>{h(U)&&e(Xe)}),q(Ue),q(ge),_(()=>{u(Se,h(i)||`—`),Te.disabled=h(he),V(Te,`aria-busy`,h(D)),Ae.disabled=h(he),V(Ae,`aria-busy`,h(N))}),n(`click`,Te,de),n(`click`,Ae,pe),d(e,ge),R()}J([`click`,`keydown`,`change`]);var yr=class{#e=I(!0);get loading(){return h(this.#e)}set loading(e){W(this.#e,e,!0)}#t=I(``);get error(){return h(this.#t)}set error(e){W(this.#t,e,!0)}result;constructor(e,t){this.result=(async()=>{try{let n=await e();return t.success&&Y.push(`success`,t.success),n}catch(e){let n=an(e,t.fallback??`Something went wrong.`);this.error=n,(t.notify??!0)&&Y.push(`error`,n);return}finally{this.loading=!1}})()}};function br(e,t={}){return new yr(e,t)}var xr=class{#e=I(null);get data(){return h(this.#e)}set data(e){W(this.#e,e,!0)}#t=I(!1);get loading(){return h(this.#t)}set loading(e){W(this.#t,e,!0)}#n=I(``);get error(){return h(this.#n)}set error(e){W(this.#n,e,!0)}#r;#i;constructor(e,t={}){this.#r=e,this.#i=t}async reload(){this.loading=!0,this.error=``;try{this.data=await this.#r()}catch(e){let t=an(e,this.#i.fallback??`Failed to load.`);this.error=t,this.#i.notify&&Y.push(`error`,t)}finally{this.loading=!1}}};function Sr(e,t={}){return new xr(e,t)}var Cr=s(`<div class="secret-notice svelte-54nov7" role="status"><div class="secret-notice-text svelte-54nov7"><p class="secret-notice-title svelte-54nov7">Secret-looking values were moved out of stack.env</p> <p class="svelte-54nov7"> <strong>knowledge/secrets/</strong> <strong>Connections</strong> </p></div> <button class="btn btn-sm btn-secondary">Dismiss</button></div>`),wr=s(`<!> Clearing…`,1),Tr=s(`<div class="stuck-notice svelte-54nov7" role="status"><div class="stuck-notice-text svelte-54nov7"><p class="stuck-notice-title svelte-54nov7">An operation seems stuck</p> <p class="svelte-54nov7">A previous install or update didn't finish cleanly and left a lock behind. It would
|
|
2
|
+
clear itself automatically after 30 minutes — or you can clear it now to run another
|
|
3
|
+
update. Nothing else is changed.</p></div> <button class="btn btn-sm btn-primary"><!></button></div>`),Er=s(`<div class="stuck-notice stuck-notice-ok svelte-54nov7" role="status"><div class="stuck-notice-text svelte-54nov7"><p class="stuck-notice-title svelte-54nov7">Cleared</p> <p class="svelte-54nov7">The stuck operation was cleared. You can run an update again.</p></div></div>`),Dr=s(`<p class="backups-summary svelte-54nov7"> </p>`),Or=s(`<button class="btn btn-sm btn-secondary">Prune…</button>`),kr=s(`<p class="backups-empty svelte-54nov7"><!> Loading backups…</p>`),Ar=s(`<p class="backups-error svelte-54nov7" role="alert"> </p>`),jr=s(`<p class="backups-empty svelte-54nov7">No backups yet — one is created the first time you update.</p>`),Mr=s(`<tr class="svelte-54nov7"><td class="backups-cell-name svelte-54nov7"> </td><td class="backups-cell-meta svelte-54nov7"> </td><td class="backups-cell-meta svelte-54nov7"> </td><td class="backups-cell-restore svelte-54nov7"><span class="backups-restore-note svelte-54nov7" title="Run: openpalm rollback"><code>openpalm rollback</code></span></td></tr>`),Nr=s(`<table class="backups-table svelte-54nov7"><thead><tr><th class="svelte-54nov7">Name</th><th class="svelte-54nov7">Created</th><th class="svelte-54nov7">Size</th><th class="svelte-54nov7">Restore</th></tr></thead><tbody></tbody></table>`),Pr=s(`<!> Deleting…`,1),Fr=s(`<div class="prune-prompt svelte-54nov7" role="alertdialog" aria-label="Confirm prune backups"><p class="prune-prompt-title svelte-54nov7">Delete older backups?</p> <p class="svelte-54nov7">Keep the newest <input class="prune-keep-input svelte-54nov7" type="number" min="0" aria-label="Number of newest backups to keep"/> and permanently delete the rest. This cannot be undone.</p> <div class="prune-actions svelte-54nov7"><button class="btn btn-sm btn-danger"><!></button> <button class="btn btn-sm btn-secondary">Cancel</button></div></div>`),Ir=s(`<div class="panel" role="tabpanel"><div class="panel-header"><div><h2>Recovery</h2> <p class="panel-subtitle">Backups · recovery · migration</p></div></div> <div class="panel-body"><!> <!> <section class="backups-section svelte-54nov7" aria-labelledby="backups-title"><div class="backups-header svelte-54nov7"><div><h3 id="backups-title" class="backups-title svelte-54nov7">Backups</h3> <!></div> <!></div> <p class="backups-desc svelte-54nov7">Each update copies your settings here first. To restore, run <code>openpalm rollback</code> for the last update, or point OpenPalm at a snapshot directory manually.
|
|
4
|
+
Nothing is ever deleted automatically.</p> <!> <!></section></div></div>`);function Lr(e,t){j(t,!0);let r=Sr(ut,{fallback:`Failed to load backups.`}),i=E(()=>r.data),a=I(null),o=I(null),s=Sr(async()=>(await ft()).notice),c=E(()=>s.data),p=Sr(mt),m=E(()=>p.data),g=I(null),v=I(!1);ee(()=>{r.reload(),s.reload(),p.reload()});async function y(){let e=br(()=>ht(),{fallback:`Failed to clear the lock.`});W(g,e,!0);let t=await e.result;t&&W(v,t.removed,!0),await p.reload()}async function b(){s.data=null;try{await pt()}catch{}}function x(){W(a,h(i)&&h(i).count>1?h(i).count-1:0,!0)}function S(){W(a,null)}async function w(){if(h(a)===null)return;let e=br(()=>dt(h(a)),{fallback:`Failed to prune backups.`});W(o,e,!0),await e.result!==void 0&&(W(a,null),await r.reload())}var D=Ir(),k=M(B(D),2),A=B(k),N=e=>{var t=Cr(),r=B(t),i=M(B(r),2),a=B(i),o=M(a,2),s=M(o,2);q(i),q(r);var l=M(r,2);q(t),_(e=>{u(a,`${e??``} ${h(c).keys.length===1?`was`:`were`} moved
|
|
5
|
+
to `),u(o,` because secrets don't belong in stack.env — the
|
|
6
|
+
value${h(c).keys.length===1?``:`s`} were not deleted. Re-add
|
|
7
|
+
${h(c).keys.length===1?`it`:`them`} via the `),u(s,` tab
|
|
8
|
+
if you'd rather manage ${h(c).keys.length===1?`it`:`them`} there.`)},[()=>h(c).keys.join(`, `)]),n(`click`,l,b),d(e,t)};l(A,e=>{h(c)&&e(N)});var F=M(A,2),L=e=>{var t=Tr(),r=M(B(t),2),i=B(r),a=e=>{var t=wr();$(H(t),{}),C(),d(e,t)},o=e=>{d(e,f(`Clear it`))};l(i,e=>{h(g)?.loading?e(a):e(o,-1)}),q(r),q(t),_(()=>{r.disabled=h(g)?.loading??!1,V(r,`aria-busy`,h(g)?.loading??!1)}),n(`click`,r,y),d(e,t)},z=e=>{d(e,Er())};l(F,e=>{h(m)?.present&&h(m).stale?e(L):h(v)&&e(z,1)});var U=M(F,2),G=B(U),te=B(G),ne=M(B(te),2),K=e=>{var t=Dr(),n=B(t);q(t),_((e,t)=>u(n,`${h(i).count??``} ${h(i).count===1?`backup`:`backups`} ·
|
|
9
|
+
${e??``} total · last ${t??``}`),[()=>Te(h(i).totalBytes),()=>ke(h(i).lastBackupAt)]),d(e,t)};l(ne,e=>{h(i)&&h(i).count>0&&e(K)}),q(te);var J=M(te,2),re=e=>{var t=Or();_(()=>t.disabled=(h(o)?.loading??!1)||r.loading),n(`click`,t,x),d(e,t)};l(J,e=>{h(i)&&h(i).count>0&&e(re)}),q(G);var ie=M(G,4),ae=e=>{var t=kr();$(B(t),{}),C(),q(t),d(e,t)},Y=e=>{var t=Ar(),n=B(t);q(t),_(()=>u(n,`Couldn't load backups: ${r.error??``}`)),d(e,t)},X=e=>{d(e,jr())},oe=e=>{var t=Nr(),n=M(B(t));P(n,21,()=>h(i).backups,e=>e.path,(e,t)=>{var n=Mr(),r=B(n),i=B(r,!0);q(r);var a=M(r),o=B(a,!0);q(a);var s=M(a),c=B(s,!0);q(s),C(),q(n),_((e,n)=>{V(r,`title`,h(t).path),u(i,h(t).name),u(o,e),u(c,n)},[()=>ke(h(t).createdAt),()=>Te(h(t).sizeBytes)]),d(e,n)}),q(n),q(t),d(e,t)};l(ie,e=>{r.loading?e(ae):r.error?e(Y,1):!h(i)||h(i).count===0?e(X,2):e(oe,-1)});var Z=M(ie,2),se=e=>{var t=Fr(),r=M(B(t),2),s=M(B(r));O(s),C(),q(r);var c=M(r,2),u=B(c),p=B(u),m=e=>{var t=Pr();$(H(t),{}),C(),d(e,t)},g=e=>{d(e,f(`Delete older backups`))};l(p,e=>{h(o)?.loading?e(m):e(g,-1)}),q(u);var v=M(u,2);q(c),q(t),_(()=>{V(s,`max`,h(i)?.count??0),u.disabled=h(o)?.loading??!1,v.disabled=h(o)?.loading??!1}),T(s,()=>h(a),e=>W(a,e)),n(`click`,u,w),n(`click`,v,S),d(e,t)};l(Z,e=>{h(a)!==null&&e(se)}),q(U),q(k),q(D),d(e,D),R()}J([`click`]);var Rr=s(`<div class="empty-state svelte-1cb80bq"><!> <!> <!></div>`);function zr(e,t){var n=Rr(),r=B(n),o=e=>{var n=a();i(H(n),()=>t.icon),d(e,n)};l(r,e=>{t.icon&&e(o)});var s=M(r,2);i(s,()=>t.children);var c=M(s,2),u=e=>{var n=a();i(H(n),()=>t.action),d(e,n)};l(c,e=>{t.action&&e(u)}),q(n),d(e,n)}var Br=c(`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 5v14"></path><path d="M5 12h14"></path></svg>`);function Vr(e,t){let n=b(t,`size`,3,20),r=b(t,`class`,3,``);var i=Br();_(()=>{V(i,`width`,n()),V(i,`height`,n()),S(i,0,`s-icon ${r()??``}`)}),d(e,i)}var Hr=s(`<option> </option>`),Ur=s(`<p class="ss-error svelte-15lncnc" role="alert"> </p>`),Wr=s(`<div class="ss-add-form svelte-15lncnc" role="group" aria-label="Add a new secret"><label class="ss-field svelte-15lncnc"><span class="ss-field-label svelte-15lncnc">Secret name</span> <input class="form-input" placeholder="e.g. discord_bot_token" autocomplete="off" spellcheck="false"/></label> <label class="ss-field svelte-15lncnc"><span class="ss-field-label svelte-15lncnc">Value</span> <input class="form-input" type="password" placeholder="Paste the secret value" autocomplete="new-password"/></label> <!> <div class="ss-actions svelte-15lncnc"><button type="button" class="btn btn-primary btn-sm"> </button> <button type="button" class="btn btn-secondary btn-sm">Cancel</button></div></div>`),Gr=s(`<div class="secret-select svelte-15lncnc"><div class="ss-row svelte-15lncnc"><select class="form-input ss-select svelte-15lncnc"><option> </option><!></select> <button type="button" class="btn btn-secondary ss-add-btn svelte-15lncnc"><!> <span class="ss-add-label svelte-15lncnc">New</span></button></div> <!></div>`);function Kr(e,t){j(t,!0);let r=b(t,`value`,15,``),i=b(t,`id`,3,`secret-select`),a=I(x([])),o=I(!0),s=I(!1),c=I(``),f=I(``),p=I(!1),m=I(``),g=I(void 0);async function v(){W(o,!0);try{let{files:e}=await t.fetchSecretFiles();W(a,e.map(e=>e.name).sort((e,t)=>e.localeCompare(t)),!0)}catch{W(a,[],!0)}finally{W(o,!1)}}ee(v);function S(e){r(e.currentTarget.value),t.onChange?.(r())}function E(){W(s,!0),W(m,``),W(c,``),W(f,``),queueMicrotask(()=>h(g)?.focus())}function D(){W(s,!1),W(m,``)}async function k(){let e=h(c).trim();if(!e){W(m,`Name is required.`);return}if(!h(f)){W(m,`Value is required.`);return}if(!h(p)){W(p,!0),W(m,``);try{await t.saveSecretFile(e,h(f)),await v(),r(e),t.onChange?.(e),W(s,!1)}catch(e){W(m,e instanceof Error?e.message:`Could not save secret.`,!0)}finally{W(p,!1)}}}function A(e){e.key===`Escape`&&(e.preventDefault(),D())}var N=Gr(),F=B(N),L=B(F),z=B(L),H=B(z,!0);q(z),z.value=z.__value=``,P(M(z),16,()=>h(a),e=>e,(e,t)=>{var n=Hr(),r=B(n,!0);q(n);var i={};_(()=>{u(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),d(e,n)}),q(L);var U;y(L);var G=M(L,2);Vr(B(G),{size:15}),C(2),q(G),q(F);var te=M(F,2),K=e=>{var t=Wr(),r=B(t),i=M(B(r),2);O(i),w(i,e=>W(g,e),()=>h(g)),q(r);var a=M(r,2),o=M(B(a),2);O(o),q(a);var s=M(a,2),v=e=>{var t=Ur(),n=B(t,!0);q(t),_(()=>u(n,h(m))),d(e,t)};l(s,e=>{h(m)&&e(v)});var y=M(s,2),b=B(y),x=B(b,!0);q(b);var S=M(b,2);q(y),q(t),_(()=>{b.disabled=h(p),u(x,h(p)?`Saving…`:`Save & select`),S.disabled=h(p)}),n(`keydown`,i,A),T(i,()=>h(c),e=>W(c,e)),n(`keydown`,o,A),T(o,()=>h(f),e=>W(f,e)),n(`click`,b,k),n(`click`,S,D),d(e,t)};l(te,e=>{h(s)&&e(K)}),q(N),_(()=>{V(L,`id`,i()),L.disabled=h(o)||h(s),u(H,h(o)?`Loading secrets…`:`Select a secret…`),U!==(U=r())&&(L.value=(L.__value=r())??``,ne(L,r())),G.disabled=h(s)}),n(`change`,L,S),n(`click`,G,E),d(e,N),R()}J([`change`,`click`,`keydown`]);var qr=s(`<div class="loading-state"><!> <span>Loading addons...</span></div>`),Jr=s(`<div class="error-state svelte-87zh26"><span> </span> <button class="btn btn-secondary btn-sm">Retry</button></div>`),Yr=s(`<p>No addons found in registry/addons/.</p>`),Xr=s(`<button class="btn btn-sm btn-secondary" aria-label="Configure Voice addon settings">Configure</button>`),Zr=s(`<button class="btn btn-sm btn-secondary">Credentials</button>`),Qr=s(`<div class="addon-row svelte-87zh26"><span class="addon-col addon-col--name addon-name svelte-87zh26"> </span> <span class="addon-col addon-col--status svelte-87zh26"><span> </span></span> <span class="addon-col addon-col--actions svelte-87zh26"><!> <button><!></button></span></div>`),$r=s(`<div class="addon-table svelte-87zh26"><div class="addon-table-header svelte-87zh26"><span class="addon-col addon-col--name svelte-87zh26">Addon</span> <span class="addon-col addon-col--status svelte-87zh26">Status</span> <span class="addon-col addon-col--actions svelte-87zh26"></span></div> <!></div>`),ei=s(`<button class="btn btn-secondary btn-sm">Cancel</button> <button class="btn btn-primary btn-sm"><!> Save</button>`,1),ti=s(`<div class="creds-loading svelte-87zh26"><!> Loading credentials…</div>`),ni=s(`<p class="creds-empty svelte-87zh26">This addon has no configurable env vars (compose overlay only).</p>`),ri=s(`<span class="creds-tag svelte-87zh26">sensitive</span>`),ii=s(`<span class="creds-tag creds-tag--set svelte-87zh26">set</span>`),ai=s(`<p class="creds-desc svelte-87zh26"> </p>`),oi=s(`<p class="creds-desc svelte-87zh26">A value is already set — choose a secret to replace it.</p>`),si=s(`<!> <!>`,1),ci=s(`<input type="text" class="form-input svelte-87zh26" autocomplete="off"/>`),li=s(`<div class="creds-row svelte-87zh26"><label class="creds-label svelte-87zh26"><code class="svelte-87zh26"> </code> <!> <!></label> <!> <!></div>`),ui=s(`<p class="creds-hint svelte-87zh26">Values are written to <code>knowledge/env/stack.env</code> and read by the addon container on next recreate.</p> <!>`,1),di=s(`<div class="panel" role="tabpanel"><div class="panel-header"><div><h2>Addons</h2> <p class="panel-subtitle">Optional features · capabilities</p></div> <button class="btn btn-secondary btn-sm"><!> Refresh</button></div> <div class="panel-body panel-body--flush"><!></div> <!></div>`);function fi(e,t){j(t,!0);let r={api:`API`,ssh:`SSH`,ui:`UI`};function i(e){return e.split(/[-_]/).filter(Boolean).map(e=>r[e.toLowerCase()]??e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}let o=I(x([])),s=I(!1),c=I(``),p=I(null),m=I(null),g=x({}),v=x({}),y=x({}),b=I(null),w=I(null);async function D(e,t,n){if(!n){v[e][t]=``;return}try{let{value:r}=await Ot(n);v[e][t]=r}catch(e){let t=e instanceof Error?e.message:String(e);Y.push(`error`,`Could not read secret: ${t}`)}}async function k(){W(s,!0),W(c,``);try{W(o,await Ct(),!0)}catch(e){if(rn(e)){t.onAuthError();return}W(c,an(e,String(e)),!0)}finally{W(s,!1)}}async function A(e,n){W(p,e,!0);try{await wt(e,n),await k()}catch(e){if(rn(e)){t.onAuthError();return}W(c,an(e,String(e)),!0)}finally{W(p,null)}}function N(){W(m,null)}async function F(e){if(W(m,e,!0),!g[e]){W(b,e,!0);try{let t=await Tt(e);g[e]=t;let n={},r={};for(let e of t)n[e.key]=e.sensitive?``:e.value,e.sensitive&&(r[e.key]=``);v[e]=n,y[e]=r}catch(e){if(rn(e)){t.onAuthError();return}Y.push(`error`,`Could not load credentials: ${an(e,String(e))}`)}finally{W(b,null)}}}async function L(e){W(w,e,!0);try{let t=g[e]??[],n=new Set(t.filter(e=>e.sensitive).map(e=>e.key)),r={},i=v[e]??{};for(let[e,t]of Object.entries(i))n.has(e)&&t===``||(r[e]=t);if(Object.keys(r).length===0){Y.push(`error`,`Nothing to save.`);return}let{updated:a}=await Et(e,r);Y.push(`success`,`Saved ${a.length} field(s). Recreate the addon container to apply.`);let o=await Tt(e);g[e]=o;let s={...i};for(let e of o)e.sensitive&&(s[e.key]=``);v[e]=s}catch(e){if(rn(e)){t.onAuthError();return}Y.push(`error`,`Save failed: ${an(e,String(e))}`)}finally{W(w,null)}}ee(()=>{k()});var z=di(),U=B(z),G=M(B(U),2),te=B(G),ne=e=>{$(e,{})};l(te,e=>{h(s)&&e(ne)}),C(),q(G),q(U);var K=M(U,2),J=B(K),re=e=>{var t=qr();$(B(t),{}),C(2),q(t),d(e,t)},ie=e=>{var t=Jr(),r=B(t),i=B(r,!0);q(r);var a=M(r,2);q(t),_(()=>u(i,h(c))),n(`click`,a,()=>k()),d(e,t)},ae=e=>{zr(e,{icon:e=>{_n(e,{size:40})},children:(e,t)=>{d(e,Yr())},$$slots:{icon:!0,default:!0}})},X=e=>{var r=$r();P(M(B(r),2),17,()=>h(o),e=>e.name,(e,r)=>{var a=Qr(),o=B(a),s=B(o,!0);q(o);var c=M(o,2),m=B(c);let g;var v=B(m,!0);q(m),q(c);var y=M(c,2),b=B(y),x=e=>{var r=Xr();n(`click`,r,()=>t.onNavigate?.(`voice`)),d(e,r)},C=e=>{var t=Zr();_(()=>t.disabled=!h(r).available),n(`click`,t,()=>void F(h(r).name)),d(e,t)};l(b,e=>{h(r).name===`voice`&&h(r).enabled?e(x):e(C,-1)});var w=M(b,2);let T;var E=B(w),D=e=>{$(e,{})},O=e=>{var t=f();_(()=>u(t,h(r).enabled?`Disable`:`Enable`)),d(e,t)};l(E,e=>{h(p)===h(r).name?e(D):e(O,-1)}),q(w),q(y),q(a),_(e=>{V(o,`title`,h(r).name),u(s,e),g=S(m,1,`badge`,null,g,{"badge-enabled":h(r).enabled,"badge-disabled":!h(r).enabled}),u(v,h(r).enabled?`Enabled`:`Disabled`),T=S(w,1,`btn btn-sm`,null,T,{"btn-danger":h(r).enabled,"btn-outline":!h(r).enabled}),w.disabled=h(p)===h(r).name||!h(r).available},[()=>i(h(r).name)]),n(`click`,w,()=>A(h(r).name,!h(r).enabled)),d(e,a)}),q(r),d(e,r)};l(J,e=>{h(s)&&h(o).length===0?e(re):h(c)?e(ie,1):h(o).length===0?e(ae,2):e(X,-1)}),q(K);var oe=M(K,2),Z=e=>{let t=E(()=>h(m));{let r=e=>{var t=ei(),r=H(t),i=M(r,2),a=B(i),o=e=>{$(e,{})};l(a,e=>{h(w)===h(m)&&e(o)}),C(),q(i),_(()=>i.disabled=!h(m)||h(w)===h(m)||(g[h(m)]?.length??0)===0),n(`click`,r,N),n(`click`,i,()=>h(m)&&void L(h(m))),d(e,t)},o=E(()=>i(h(t)));ze(e,{open:!0,get title(){return`${h(o)??``} credentials`},onClose:N,footer:r,children:(e,n)=>{var r=a(),i=H(r),o=e=>{var t=ti();$(B(t),{}),C(),q(t),d(e,t)},s=e=>{d(e,ni())},c=e=>{var n=ui();P(M(H(n),2),17,()=>g[h(t)]??[],e=>e.key,(e,n)=>{var r=li(),i=B(r),a=B(i),o=B(a,!0);q(a);var s=M(a,2),c=e=>{d(e,ri())};l(s,e=>{h(n).sensitive&&e(c)});var f=M(s,2),p=e=>{d(e,ii())};l(f,e=>{h(n).sensitive&&h(n).set&&e(p)}),q(i);var m=M(i,2),g=e=>{var t=ai(),r=B(t,!0);q(t),_(()=>u(r,h(n).description)),d(e,t)};l(m,e=>{h(n).description&&e(g)});var b=M(m,2),x=e=>{var r=si(),i=H(r);Kr(i,{get id(){return`cred-${h(t)??``}-${h(n).key??``}`},onChange:e=>void D(h(t),h(n).key,e),get fetchSecretFiles(){return Dt},get saveSecretFile(){return kt},get value(){return y[h(t)][h(n).key]},set value(e){y[h(t)][h(n).key]=e}});var a=M(i,2),o=e=>{d(e,oi())};l(a,e=>{h(n).set&&e(o)}),d(e,r)},S=e=>{var r=ci();O(r),_(()=>{V(r,`id`,`cred-${h(t)??``}-${h(n).key??``}`),V(r,`placeholder`,h(n).default)}),T(r,()=>v[h(t)][h(n).key],e=>v[h(t)][h(n).key]=e),d(e,r)};l(b,e=>{h(n).sensitive?e(x):e(S,-1)}),q(r),_(()=>{V(i,`for`,`cred-${h(t)??``}-${h(n).key??``}`),u(o,h(n).key)}),d(e,r)}),d(e,n)};l(i,e=>{h(b)===h(t)?e(o):(g[h(t)]?.length??0)===0?e(s,1):e(c,-1)}),d(e,r)},$$slots:{footer:!0,default:!0}})}};l(oe,e=>{h(m)&&e(Z)}),q(z),_(()=>G.disabled=h(s)),n(`click`,G,()=>k()),d(e,z),R()}J([`click`]);var pi=s(`<div class="panel-header-actions"><!></div>`),mi=s(`<div class="panel"><div class="panel-header"><h2> </h2> <!></div> <!></div>`);function hi(e,t){var n=mi(),r=B(n),a=B(r),o=B(a,!0);q(a);var s=M(a,2),c=e=>{var n=pi();i(B(n),()=>t.actions),q(n),d(e,n)};l(s,e=>{t.actions&&e(c)}),q(r),i(M(r,2),()=>t.children),q(n),_(()=>{V(n,`role`,t.role),u(o,t.title)}),d(e,n)}function gi(e){let t=e.indexOf(`@`),n=t>-1?e.slice(0,t):e,r=n.lastIndexOf(`:`);return r>-1?{name:n.slice(0,r),tag:n.slice(r+1)}:{name:n,tag:`latest`}}function _i(e){return e===`running`?`success`:e===`exited`||e===`dead`||e===`stopped`?`danger`:e===`restarting`||e===`paused`?`warning`:`idle`}function vi(e){return e?e.charAt(0).toUpperCase()+e.slice(1):e??``}var yi=c(`<svg aria-hidden="true" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M5 9l7 7 7-7"></path></svg>`);function bi(e,t){let n=b(t,`size`,3,20),r=b(t,`class`,3,``);var i=yi();_(()=>{V(i,`width`,n()),V(i,`height`,n()),S(i,0,`s-icon ${r()??``}`)}),d(e,i)}var xi=s(`<span class="ct-not-created svelte-1clpuus">--</span>`),Si=s(`<span class="tag-badge"> </span>`),Ci=s(`<span class="ct-not-created svelte-1clpuus">--</span>`),wi=s(`<button class="container-table-row container-table-row--clickable svelte-1clpuus"><span class="ct-col ct-col--name"><span></span> <span class="ct-service-name svelte-1clpuus"> </span></span> <span class="ct-col ct-col--image ct-mono svelte-1clpuus"><!></span> <span class="ct-col ct-col--tag"><!></span> <span class="ct-col ct-col--status"><span> </span></span> <span class="ct-col ct-col--actions"><!></span></button>`);function Ti(e,t){j(t,!0);let r=E(()=>t.entry.docker?gi(t.entry.docker.Image):null);var i=wi(),a=B(i),o=B(a),s=M(o,2),c=B(s,!0);q(s),q(a);var p=M(a,2),m=B(p),g=e=>{var t=f();_(()=>u(t,h(r).name)),d(e,t)},v=e=>{d(e,xi())};l(m,e=>{h(r)?e(g):e(v,-1)}),q(p);var y=M(p,2),b=B(y),x=e=>{var t=Si(),n=B(t,!0);q(t),_(()=>u(n,h(r).tag)),d(e,t)},C=e=>{d(e,Ci())};l(b,e=>{h(r)?e(x):e(C,-1)}),q(y);var w=M(y,2),T=B(w),D=B(T,!0);q(T),q(w);var O=M(w,2),k=B(O);{let e=E(()=>t.selected?`ct-chevron-open`:``);bi(k,{size:14,get class(){return h(e)}})}q(O),q(i),_((e,n,r)=>{V(i,`aria-expanded`,t.selected),S(o,1,`ct-indicator ct-indicator--${e??``}`,`svelte-1clpuus`),u(c,t.entry.service),S(T,1,`badge badge-${n??``}`,`svelte-1clpuus`),u(D,r)},[()=>_i(t.entry.state),()=>_i(t.entry.state),()=>vi(t.entry.state)]),n(`click`,i,function(...e){t.onToggle?.apply(this,e)}),d(e,i),R()}J([`click`]);var Ei=s(`<span class="detail-mono detail-digest svelte-17lh9yz"> </span>`),Di=s(`<div class="detail-item svelte-17lh9yz"><span class="detail-label svelte-17lh9yz">Image Name</span> <span class="detail-value detail-mono svelte-17lh9yz"> </span></div> <div class="detail-item svelte-17lh9yz"><span class="detail-label svelte-17lh9yz">Tag / Digest</span> <span class="detail-value svelte-17lh9yz"><span class="tag-badge tag-badge--lg"> </span> <!></span></div>`,1),Oi=s(`<div class="detail-item svelte-17lh9yz"><span class="detail-label svelte-17lh9yz">Health</span> <span class="detail-value svelte-17lh9yz"><span> </span></span></div>`),ki=s(`<div class="detail-item svelte-17lh9yz"><span class="detail-label svelte-17lh9yz">Ports</span> <span class="detail-value detail-mono svelte-17lh9yz"> </span></div>`),Ai=s(`<div class="detail-item svelte-17lh9yz"><span class="detail-label svelte-17lh9yz">Uptime</span> <span class="detail-value svelte-17lh9yz"> </span></div>`),ji=s(`<div class="detail-item svelte-17lh9yz"><span class="detail-label svelte-17lh9yz">Created</span> <span class="detail-value svelte-17lh9yz"> </span></div>`),Mi=s(`<div class="detail-item svelte-17lh9yz"><span class="detail-label svelte-17lh9yz">Project</span> <span class="detail-value detail-mono svelte-17lh9yz"> </span></div>`),Ni=s(`<div class="detail-grid svelte-17lh9yz"><div class="detail-item svelte-17lh9yz"><span class="detail-label svelte-17lh9yz">Container ID</span> <span class="detail-value detail-mono svelte-17lh9yz"> </span></div> <div class="detail-item svelte-17lh9yz"><span class="detail-label svelte-17lh9yz">Name</span> <span class="detail-value detail-mono svelte-17lh9yz"> </span></div> <div class="detail-item svelte-17lh9yz"><span class="detail-label svelte-17lh9yz">Image</span> <span class="detail-value detail-mono svelte-17lh9yz"> </span></div> <!> <div class="detail-item svelte-17lh9yz"><span class="detail-label svelte-17lh9yz">State</span> <span class="detail-value svelte-17lh9yz"><span> </span></span></div> <div class="detail-item svelte-17lh9yz"><span class="detail-label svelte-17lh9yz">Status</span> <span class="detail-value svelte-17lh9yz"> </span></div> <!> <!> <!> <!> <!></div>`),Pi=s(`<div class="detail-not-created svelte-17lh9yz"><p class="svelte-17lh9yz">Container has not been created yet. Use <strong>Start</strong> to create and start it.</p></div>`),Fi=s(`<div role="status"> </div>`),Ii=s(`<div class="confirm-bar svelte-17lh9yz" role="alert"><span class="confirm-text svelte-17lh9yz"> <strong> </strong>?</span> <div class="confirm-actions svelte-17lh9yz"><button class="btn btn-danger btn-sm">Confirm</button> <button class="btn btn-secondary btn-sm">Cancel</button></div></div>`),Li=s(`<button class="btn btn-primary btn-sm"><!> Start</button>`),Ri=s(`<button class="btn btn-secondary btn-sm"><!> Start</button> <button class="btn btn-danger btn-sm"><!> Stop</button> <button class="btn btn-secondary btn-sm"><!> Restart</button>`,1),zi=s(`<div class="detail-actions svelte-17lh9yz"><!></div>`),Bi=s(`<div class="container-detail svelte-17lh9yz"><!> <!> <!></div>`);function Vi(e,t){j(t,!0);let r=E(()=>t.entry.docker?gi(t.entry.docker.Image):null),i=E(()=>t.actionInFlight!==null),a=E(()=>!t.entry.docker);var o=Bi(),s=B(o),c=e=>{let n=E(()=>t.entry.docker);var i=Ni(),a=B(i),o=M(B(a),2),s=B(o,!0);q(o),q(a);var c=M(a,2),f=M(B(c),2),p=B(f,!0);q(f),q(c);var m=M(c,2),g=M(B(m),2),v=B(g,!0);q(g),q(m);var y=M(m,2),b=e=>{var t=Di(),i=H(t),a=M(B(i),2),o=B(a,!0);q(a),q(i);var s=M(i,2),c=M(B(s),2),f=B(c),p=B(f,!0);q(f);var m=M(f,2),g=e=>{var t=Ei(),r=B(t);q(t),_(e=>u(r,`${e??``}...`),[()=>h(n).Image.split(`@`)[1]?.slice(0,19)]),d(e,t)},v=E(()=>h(n).Image.includes(`@`));l(m,e=>{h(v)&&e(g)}),q(c),q(s),_(()=>{u(o,h(r).name),u(p,h(r).tag)}),d(e,t)};l(y,e=>{h(r)&&e(b)});var x=M(y,2),C=M(B(x),2),w=B(C),T=B(w,!0);q(w),q(C),q(x);var D=M(x,2),O=M(B(D),2),k=B(O,!0);q(O),q(D);var A=M(D,2),j=e=>{var t=Oi(),r=M(B(t),2),i=B(r);let a;var o=B(i,!0);q(i),q(r),q(t),_(e=>{a=S(i,1,`badge`,null,a,e),u(o,h(n).Health)},[()=>({"badge-success":h(n).Health===`healthy`,"badge-warning":h(n).Health===`starting`,"badge-danger":h(n).Health===`unhealthy`,"badge-idle":![`healthy`,`starting`,`unhealthy`].includes(h(n).Health)})]),d(e,t)};l(A,e=>{h(n).Health&&e(j)});var N=M(A,2),P=e=>{var t=ki(),r=M(B(t),2),i=B(r,!0);q(r),q(t),_(()=>u(i,h(n).Ports)),d(e,t)};l(N,e=>{h(n).Ports&&e(P)});var F=M(N,2),I=e=>{var t=Ai(),r=M(B(t),2),i=B(r,!0);q(r),q(t),_(()=>u(i,h(n).RunningFor)),d(e,t)};l(F,e=>{h(n).RunningFor&&e(I)});var L=M(F,2),R=e=>{var t=ji(),r=M(B(t),2),i=B(r,!0);q(r),q(t),_(()=>u(i,h(n).CreatedAt)),d(e,t)};l(L,e=>{h(n).CreatedAt&&e(R)});var z=M(L,2),V=e=>{var t=Mi(),r=M(B(t),2),i=B(r,!0);q(r),q(t),_(()=>u(i,h(n).Project)),d(e,t)};l(z,e=>{h(n).Project&&e(V)}),q(i),_((e,t)=>{u(s,h(n).ID),u(p,h(n).Name||h(n).Names),u(v,h(n).Image),S(w,1,`badge badge-${e??``}`,`svelte-17lh9yz`),u(T,t),u(k,h(n).Status)},[()=>_i(h(n).State),()=>vi(h(n).State)]),d(e,i)},f=e=>{d(e,Pi())};l(s,e=>{t.entry.docker?e(c):e(f,-1)});var p=M(s,2),m=e=>{var n=Fi(),r=B(n,!0);q(n),_(()=>{S(n,1,`action-feedback action-feedback--${t.feedback.type??``}`,`svelte-17lh9yz`),u(r,t.feedback.message)}),d(e,n)};l(p,e=>{t.feedback&&e(m)});var g=M(p,2),v=e=>{var r=Ii(),i=B(r),a=B(i),o=M(a),s=B(o,!0);q(o),C(),q(i);var c=M(i,2),l=B(c),f=M(l,2);q(c),q(r),_(e=>{u(a,`${e??``} `),u(s,t.entry.service)},[()=>t.confirmAction.charAt(0).toUpperCase()+t.confirmAction.slice(1)]),n(`click`,l,e=>t.onExecuteAction(t.confirmAction,e)),n(`click`,f,e=>t.onCancelConfirm(e)),d(e,r)},y=e=>{var r=zi(),o=B(r),s=e=>{var r=Li(),a=B(r),o=e=>{$(e,{size:12})};l(a,e=>{t.actionInFlight===`start`&&e(o)}),C(),q(r),_(()=>r.disabled=h(i)),n(`click`,r,e=>t.onRequestAction(`start`,e)),d(e,r)},c=e=>{var r=Ri(),a=H(r),o=B(a),s=e=>{$(e,{size:12})};l(o,e=>{t.actionInFlight===`start`&&e(s)}),C(),q(a);var c=M(a,2),u=B(c),f=e=>{$(e,{size:12})};l(u,e=>{t.actionInFlight===`stop`&&e(f)}),C(),q(c);var p=M(c,2),m=B(p),g=e=>{$(e,{size:12})};l(m,e=>{t.actionInFlight===`restart`&&e(g)}),C(),q(p),_(()=>{a.disabled=h(i),c.disabled=h(i),p.disabled=h(i)}),n(`click`,a,e=>t.onRequestAction(`start`,e)),n(`click`,c,e=>t.onRequestAction(`stop`,e)),n(`click`,p,e=>t.onRequestAction(`restart`,e)),d(e,r)};l(o,e=>{h(a)?e(s):e(c,-1)}),q(r),d(e,r)};l(g,e=>{t.confirmAction?e(v):e(y,-1)}),q(o),d(e,o),R()}J([`click`]);var Hi=s(`<p>Loading container status...</p>`),Ui=s(`<p class="text-danger svelte-llpoy7"> </p> <button class="btn btn-secondary btn-sm svelte-llpoy7">Try Again</button>`,1),Wi=s(`<p>Docker is not available on this host.</p> <p class="hint svelte-llpoy7">Ensure Docker is running and the admin service has access to the Docker socket.</p>`,1),Gi=s(`<p>No containers found. Services may not be installed yet.</p>`),Ki=s(`<div class="empty-state svelte-llpoy7"><!> <!></div>`);function qi(e,t){j(t,!0);var r=Ki(),i=B(r);Be(i,{size:40});var a=M(i,2),o=e=>{d(e,Hi())},s=e=>{var r=Ui(),i=H(r),a=B(i,!0);q(i);var o=M(i,2);_(()=>u(a,t.error)),n(`click`,o,function(...e){t.onRefresh?.apply(this,e)}),d(e,r)},c=e=>{var t=Wi();C(2),d(e,t)},f=e=>{d(e,Gi())};l(a,e=>{t.loading?e(o):t.error?e(s,1):t.containerData&&!t.containerData.dockerAvailable?e(c,2):e(f,-1)}),q(r),d(e,r),R()}J([`click`]);var Ji=s(`<span class="last-updated svelte-fnc5b8"> </span>`),Yi=s(`<!> <button class="btn btn-secondary btn-sm"><!> Pull Images</button> <button class="btn btn-secondary btn-sm"><!> Refresh</button>`,1),Xi=s(`<!> <!>`,1),Zi=s(`<div class="container-table svelte-fnc5b8"><div class="container-table-header svelte-fnc5b8"><span class="ct-col ct-col--name">Container</span> <span class="ct-col ct-col--image">Image</span> <span class="ct-col ct-col--tag">Tag</span> <span class="ct-col ct-col--status">Status</span> <span class="ct-col ct-col--actions"></span></div> <!></div>`),Qi=s(`<div class="panel-body panel-body--flush"><!></div>`);function $i(e,t){j(t,!0);let r=E(()=>t.serviceEntries.length>0),i=x({});function a(e){return i[e]||(i[e]={inFlight:null,confirm:null,feedback:null}),i[e]}function o(e,t,n){n.stopPropagation(),a(e).confirm=t}function s(e,t){t.stopPropagation(),a(e).confirm=null}async function c(e,n,r,i){i.stopPropagation();let o=a(e);o.confirm=null,o.inFlight=r,o.feedback=null;try{r===`start`?t.onStart(n):r===`stop`?t.onStop(n):t.onRestart(n),o.feedback={type:`success`,message:`${r.charAt(0).toUpperCase()+r.slice(1)} initiated`}}catch(e){o.feedback={type:`error`,message:`${r} failed: ${e instanceof Error?e.message:e}`}}o.inFlight=null,setTimeout(()=>{o.feedback=null},3e3)}hi(e,{title:`Container Status`,role:`tabpanel`,actions:e=>{var r=Yi(),i=H(r),a=e=>{var n=Ji(),r=B(n);q(n),_(()=>u(r,`Updated ${t.lastUpdated??``}`)),d(e,n)};l(i,e=>{t.lastUpdated&&e(a)});var o=M(i,2),s=B(o),c=e=>{$(e,{})};l(s,e=>{t.pullLoading&&e(c)}),C(),q(o);var f=M(o,2),p=B(f),m=e=>{$(e,{})};l(p,e=>{t.loading&&e(m)}),C(),q(f),_(()=>{o.disabled=t.pullLoading,f.disabled=t.loading}),n(`click`,o,function(...e){t.onPullImages?.apply(this,e)}),n(`click`,f,function(...e){t.onRefresh?.apply(this,e)}),d(e,r)},children:(e,n)=>{var a=Qi(),u=B(a),f=e=>{var n=Zi();P(M(B(n),2),17,()=>t.serviceEntries,e=>e.id,(e,n)=>{let r=E(()=>t.selectedContainerId===h(n).id);var a=Xi(),u=H(a);Ti(u,{get entry(){return h(n)},get selected(){return h(r)},onToggle:()=>t.onToggleContainer(h(n).id)});var f=M(u,2),p=e=>{{let t=E(()=>i[h(n).id]?.inFlight??null),r=E(()=>i[h(n).id]?.confirm??null),a=E(()=>i[h(n).id]?.feedback??null);Vi(e,{get entry(){return h(n)},get actionInFlight(){return h(t)},get confirmAction(){return h(r)},get feedback(){return h(a)},onRequestAction:(e,t)=>o(h(n).id,e,t),onCancelConfirm:e=>s(h(n).id,e),onExecuteAction:(e,t)=>c(h(n).id,h(n).service,e,t)})}};l(f,e=>{h(r)&&e(p)}),d(e,a)}),q(n),d(e,n)},p=e=>{qi(e,{get loading(){return t.loading},get error(){return t.error},get containerData(){return t.containerData},get onRefresh(){return t.onRefresh}})};l(u,e=>{h(r)?e(f):e(p,-1)}),q(a),d(e,a)},$$slots:{actions:!0,default:!0}}),R()}J([`click`]);var ea=Symbol.for(`yaml.alias`),ta=Symbol.for(`yaml.document`),na=Symbol.for(`yaml.map`),ra=Symbol.for(`yaml.pair`),ia=Symbol.for(`yaml.scalar`),aa=Symbol.for(`yaml.seq`),oa=Symbol.for(`yaml.node.type`),sa=e=>!!e&&typeof e==`object`&&e[oa]===ea,ca=e=>!!e&&typeof e==`object`&&e[oa]===ta,la=e=>!!e&&typeof e==`object`&&e[oa]===na,ua=e=>!!e&&typeof e==`object`&&e[oa]===ra,da=e=>!!e&&typeof e==`object`&&e[oa]===ia,fa=e=>!!e&&typeof e==`object`&&e[oa]===aa;function pa(e){if(e&&typeof e==`object`)switch(e[oa]){case na:case aa:return!0}return!1}function ma(e){if(e&&typeof e==`object`)switch(e[oa]){case ea:case na:case ia:case aa:return!0}return!1}var ha=e=>(da(e)||pa(e))&&!!e.anchor,ga=Symbol(`break visit`),_a=Symbol(`skip children`),va=Symbol(`remove node`);function ya(e,t){let n=Ca(t);ca(e)?ba(null,e.contents,n,Object.freeze([e]))===va&&(e.contents=null):ba(null,e,n,Object.freeze([]))}ya.BREAK=ga,ya.SKIP=_a,ya.REMOVE=va;function ba(e,t,n,r){let i=wa(e,t,n,r);if(ma(i)||ua(i))return Ta(e,r,i),ba(e,i,n,r);if(typeof i!=`symbol`){if(pa(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=ba(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===ga)return ga;else i===va&&(t.items.splice(e,1),--e)}}else if(ua(t)){r=Object.freeze(r.concat(t));let e=ba(`key`,t.key,n,r);if(e===ga)return ga;e===va&&(t.key=null);let i=ba(`value`,t.value,n,r);if(i===ga)return ga;i===va&&(t.value=null)}}return i}async function xa(e,t){let n=Ca(t);ca(e)?await Sa(null,e.contents,n,Object.freeze([e]))===va&&(e.contents=null):await Sa(null,e,n,Object.freeze([]))}xa.BREAK=ga,xa.SKIP=_a,xa.REMOVE=va;async function Sa(e,t,n,r){let i=await wa(e,t,n,r);if(ma(i)||ua(i))return Ta(e,r,i),Sa(e,i,n,r);if(typeof i!=`symbol`){if(pa(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=await Sa(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===ga)return ga;else i===va&&(t.items.splice(e,1),--e)}}else if(ua(t)){r=Object.freeze(r.concat(t));let e=await Sa(`key`,t.key,n,r);if(e===ga)return ga;e===va&&(t.key=null);let i=await Sa(`value`,t.value,n,r);if(i===ga)return ga;i===va&&(t.value=null)}}return i}function Ca(e){return typeof e==`object`&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function wa(e,t,n,r){if(typeof n==`function`)return n(e,t,r);if(la(t))return n.Map?.(e,t,r);if(fa(t))return n.Seq?.(e,t,r);if(ua(t))return n.Pair?.(e,t,r);if(da(t))return n.Scalar?.(e,t,r);if(sa(t))return n.Alias?.(e,t,r)}function Ta(e,t,n){let r=t[t.length-1];if(pa(r))r.items[e]=n;else if(ua(r))e===`key`?r.key=n:r.value=n;else if(ca(r))r.contents=n;else{let e=sa(r)?`alias`:`scalar`;throw Error(`Cannot replace node with ${e} parent`)}}var Ea={"!":`%21`,",":`%2C`,"[":`%5B`,"]":`%5D`,"{":`%7B`,"}":`%7D`},Da=e=>e.replace(/[!,[\]{}]/g,e=>Ea[e]),Oa=class e{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,n)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case`1.1`:this.atNextDocument=!0;break;case`1.2`:this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:`1.2`},this.tags=Object.assign({},e.defaultTags);break}return t}add(t,n){this.atNextDocument&&=(this.yaml={explicit:e.defaultYaml.explicit,version:`1.1`},this.tags=Object.assign({},e.defaultTags),!1);let r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case`%TAG`:{if(r.length!==2&&(n(0,`%TAG directive should contain exactly two parts`),r.length<2))return!1;let[e,t]=r;return this.tags[e]=t,!0}case`%YAML`:{if(this.yaml.explicit=!0,r.length!==1)return n(0,`%YAML directive should contain exactly one part`),!1;let[e]=r;if(e===`1.1`||e===`1.2`)return this.yaml.version=e,!0;{let t=/^\d+\.\d+$/.test(e);return n(6,`Unsupported YAML version ${e}`,t),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e===`!`)return`!`;if(e[0]!==`!`)return t(`Not a valid tag: ${e}`),null;if(e[1]===`<`){let n=e.slice(2,-1);return n===`!`||n===`!!`?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==`>`&&t(`Verbatim tags must end with a >`),n)}let[,n,r]=e.match(/^(.*!)([^!]*)$/s);r||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(r)}catch(e){return t(String(e)),null}return n===`!`?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+Da(e.substring(n.length));return e[0]===`!`?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||`1.2`}`]:[],n=Object.entries(this.tags),r;if(e&&n.length>0&&ma(e.contents)){let t={};ya(e.contents,(e,n)=>{ma(n)&&n.tag&&(t[n.tag]=!0)}),r=Object.keys(t)}else r=[];for(let[i,a]of n)i===`!!`&&a===`tag:yaml.org,2002:`||(!e||r.some(e=>e.startsWith(a)))&&t.push(`%TAG ${i} ${a}`);return t.join(`
|
|
10
|
+
`)}};Oa.defaultYaml={explicit:!1,version:`1.2`},Oa.defaultTags={"!!":`tag:yaml.org,2002:`};function ka(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw Error(t)}return!0}function Aa(e){let t=new Set;return ya(e,{Value(e,n){n.anchor&&t.add(n.anchor)}}),t}function ja(e,t){for(let n=1;;++n){let r=`${e}${n}`;if(!t.has(r))return r}}function Ma(e,t){let n=[],r=new Map,i=null;return{onAnchor:r=>{n.push(r),i??=Aa(e);let a=ja(t,i);return i.add(a),a},setAnchors:()=>{for(let e of n){let t=r.get(e);if(typeof t==`object`&&t.anchor&&(da(t.node)||pa(t.node)))t.node.anchor=t.anchor;else{let t=Error(`Failed to resolve repeated object (this should not happen)`);throw t.source=e,t}}},sourceObjects:r}}function Na(e,t,n,r){if(r&&typeof r==`object`)if(Array.isArray(r))for(let t=0,n=r.length;t<n;++t){let n=r[t],i=Na(e,r,String(t),n);i===void 0?delete r[t]:i!==n&&(r[t]=i)}else if(r instanceof Map)for(let t of Array.from(r.keys())){let n=r.get(t),i=Na(e,r,t,n);i===void 0?r.delete(t):i!==n&&r.set(t,i)}else if(r instanceof Set)for(let t of Array.from(r)){let n=Na(e,r,t,t);n===void 0?r.delete(t):n!==t&&(r.delete(t),r.add(n))}else for(let[t,n]of Object.entries(r)){let i=Na(e,r,t,n);i===void 0?delete r[t]:i!==n&&(r[t]=i)}return e.call(t,n,r)}function Pa(e,t,n){if(Array.isArray(e))return e.map((e,t)=>Pa(e,String(t),n));if(e&&typeof e.toJSON==`function`){if(!n||!ha(e))return e.toJSON(t,n);let r={aliasCount:0,count:1,res:void 0};n.anchors.set(e,r),n.onCreate=e=>{r.res=e,delete n.onCreate};let i=e.toJSON(t,n);return n.onCreate&&n.onCreate(i),i}return typeof e==`bigint`&&!n?.keep?Number(e):e}var Fa=class{constructor(e){Object.defineProperty(this,oa,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:n,onAnchor:r,reviver:i}={}){if(!ca(e))throw TypeError(`A document argument is required`);let a={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof n==`number`?n:100},o=Pa(this,``,a);if(typeof r==`function`)for(let{count:e,res:t}of a.anchors.values())r(t,e);return typeof i==`function`?Na(i,{"":o},``,o):o}},Ia=class extends Fa{constructor(e){super(ea),this.source=e,Object.defineProperty(this,"tag",{set(){throw Error(`Alias nodes cannot have tags`)}})}resolve(e,t){if(t?.maxAliasCount===0)throw ReferenceError(`Alias resolution is disabled`);let n;t?.aliasResolveCache?n=t.aliasResolveCache:(n=[],ya(e,{Node:(e,t)=>{(sa(t)||ha(t))&&n.push(t)}}),t&&(t.aliasResolveCache=n));let r;for(let e of n){if(e===this)break;e.anchor===this.source&&(r=e)}return r}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:r,maxAliasCount:i}=t,a=this.resolve(r,t);if(!a){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(e)}let o=n.get(a);if(o||=(Pa(a,null,t),n.get(a)),o?.res===void 0)throw ReferenceError(`This should not happen: Alias anchor was not resolved?`);if(i>=0&&(o.count+=1,o.aliasCount===0&&(o.aliasCount=La(r,a,n)),o.count*o.aliasCount>i))throw ReferenceError(`Excessive alias count indicates a resource exhaustion attack`);return o.res}toString(e,t,n){let r=`*${this.source}`;if(e){if(ka(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(e)}if(e.implicitKey)return`${r} `}return r}};function La(e,t,n){if(sa(t)){let r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}else if(pa(t)){let r=0;for(let i of t.items){let t=La(e,i,n);t>r&&(r=t)}return r}else if(ua(t)){let r=La(e,t.key,n),i=La(e,t.value,n);return Math.max(r,i)}return 1}var Ra=e=>!e||typeof e!=`function`&&typeof e!=`object`,za=class extends Fa{constructor(e){super(ia),this.value=e}toJSON(e,t){return t?.keep?this.value:Pa(this.value,e,t)}toString(){return String(this.value)}};za.BLOCK_FOLDED=`BLOCK_FOLDED`,za.BLOCK_LITERAL=`BLOCK_LITERAL`,za.PLAIN=`PLAIN`,za.QUOTE_DOUBLE=`QUOTE_DOUBLE`,za.QUOTE_SINGLE=`QUOTE_SINGLE`;var Ba=`tag:yaml.org,2002:`;function Va(e,t,n){if(t){let e=n.filter(e=>e.tag===t),r=e.find(e=>!e.format)??e[0];if(!r)throw Error(`Tag ${t} not found`);return r}return n.find(t=>t.identify?.(e)&&!t.format)}function Ha(e,t,n){if(ca(e)&&(e=e.contents),ma(e))return e;if(ua(e)){let t=n.schema[na].createNode?.(n.schema,null,n);return t.items.push(e),t}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<`u`&&e instanceof BigInt)&&(e=e.valueOf());let{aliasDuplicateObjects:r,onAnchor:i,onTagObj:a,schema:o,sourceObjects:s}=n,c;if(r&&e&&typeof e==`object`){if(c=s.get(e),c)return c.anchor??=i(e),new Ia(c.anchor);c={anchor:null,node:null},s.set(e,c)}t?.startsWith(`!!`)&&(t=Ba+t.slice(2));let l=Va(e,t,o.tags);if(!l){if(e&&typeof e.toJSON==`function`&&(e=e.toJSON()),!e||typeof e!=`object`){let t=new za(e);return c&&(c.node=t),t}l=e instanceof Map?o[na]:Symbol.iterator in Object(e)?o[aa]:o[na]}a&&(a(l),delete n.onTagObj);let u=l?.createNode?l.createNode(n.schema,e,n):typeof l?.nodeClass?.from==`function`?l.nodeClass.from(n.schema,e,n):new za(e);return t?u.tag=t:l.default||(u.tag=l.tag),c&&(c.node=u),u}function Ua(e,t,n){let r=n;for(let e=t.length-1;e>=0;--e){let n=t[e];if(typeof n==`number`&&Number.isInteger(n)&&n>=0){let e=[];e[n]=r,r=e}else r=new Map([[n,r]])}return Ha(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error(`This should not happen, please report a bug.`)},schema:e,sourceObjects:new Map})}var Wa=e=>e==null||typeof e==`object`&&!!e[Symbol.iterator]().next().done,Ga=class extends Fa{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(t=>ma(t)||ua(t)?t.clone(e):t),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(Wa(e))this.add(t);else{let[n,...r]=e,i=this.get(n,!0);if(pa(i))i.addIn(r,t);else if(i===void 0&&this.schema)this.set(n,Ua(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}deleteIn(e){let[t,...n]=e;if(n.length===0)return this.delete(t);let r=this.get(t,!0);if(pa(r))return r.deleteIn(n);throw Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){let[n,...r]=e,i=this.get(n,!0);return r.length===0?!t&&da(i)?i.value:i:pa(i)?i.getIn(r,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!ua(t))return!1;let n=t.value;return n==null||e&&da(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[t,...n]=e;if(n.length===0)return this.has(t);let r=this.get(t,!0);return pa(r)?r.hasIn(n):!1}setIn(e,t){let[n,...r]=e;if(r.length===0)this.set(n,t);else{let e=this.get(n,!0);if(pa(e))e.setIn(r,t);else if(e===void 0&&this.schema)this.set(n,Ua(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}},Ka=e=>e.replace(/^(?!$)(?: $)?/gm,`#`);function qa(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}var Ja=(e,t,n)=>e.endsWith(`
|
|
11
|
+
`)?qa(n,t):n.includes(`
|
|
12
|
+
`)?`
|
|
13
|
+
`+qa(n,t):(e.endsWith(` `)?``:` `)+n,Ya=`flow`,Xa=`block`,Za=`quoted`;function Qa(e,t,n=`flow`,{indentAtStart:r,lineWidth:i=80,minContentWidth:a=20,onFold:o,onOverflow:s}={}){if(!i||i<0)return e;i<a&&(a=0);let c=Math.max(1+a,1+i-t.length);if(e.length<=c)return e;let l=[],u={},d=i-t.length;typeof r==`number`&&(r>i-Math.max(2,a)?l.push(0):d=i-r);let f,p,m=!1,h=-1,g=-1,_=-1;n===`block`&&(h=$a(e,h,t.length),h!==-1&&(d=h+c));for(let r;r=e[h+=1];){if(n===`quoted`&&r===`\\`){switch(g=h,e[h+1]){case`x`:h+=3;break;case`u`:h+=5;break;case`U`:h+=9;break;default:h+=1}_=h}if(r===`
|
|
14
|
+
`)n===`block`&&(h=$a(e,h,t.length)),d=h+t.length+c,f=void 0;else{if(r===` `&&p&&p!==` `&&p!==`
|
|
15
|
+
`&&p!==` `){let t=e[h+1];t&&t!==` `&&t!==`
|
|
16
|
+
`&&t!==` `&&(f=h)}if(h>=d)if(f)l.push(f),d=f+c,f=void 0;else if(n===`quoted`){for(;p===` `||p===` `;)p=r,r=e[h+=1],m=!0;let t=h>_+1?h-2:g-1;if(u[t])return e;l.push(t),u[t]=!0,d=t+c,f=void 0}else m=!0}p=r}if(m&&s&&s(),l.length===0)return e;o&&o();let v=e.slice(0,l[0]);for(let r=0;r<l.length;++r){let i=l[r],a=l[r+1]||e.length;i===0?v=`\n${t}${e.slice(0,a)}`:(n===`quoted`&&u[i]&&(v+=`${e[i]}\\`),v+=`\n${t}${e.slice(i+1,a)}`)}return v}function $a(e,t,n){let r=t,i=t+1,a=e[i];for(;a===` `||a===` `;)if(t<i+n)a=e[++t];else{do a=e[++t];while(a&&a!==`
|
|
17
|
+
`);r=t,i=t+1,a=e[i]}return r}var eo=(e,t)=>({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),to=e=>/^(%|---|\.\.\.)/m.test(e);function no(e,t,n){if(!t||t<0)return!1;let r=t-n,i=e.length;if(i<=r)return!1;for(let t=0,n=0;t<i;++t)if(e[t]===`
|
|
18
|
+
`){if(t-n>r)return!0;if(n=t+1,i-n<=r)return!1}return!0}function ro(e,t){let n=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return n;let{implicitKey:r}=t,i=t.options.doubleQuotedMinMultiLineLength,a=t.indent||(to(e)?` `:``),o=``,s=0;for(let e=0,t=n[e];t;t=n[++e])if(t===` `&&n[e+1]===`\\`&&n[e+2]===`n`&&(o+=n.slice(s,e)+`\\ `,e+=1,s=e,t=`\\`),t===`\\`)switch(n[e+1]){case`u`:{o+=n.slice(s,e);let t=n.substr(e+2,4);switch(t){case`0000`:o+=`\\0`;break;case`0007`:o+=`\\a`;break;case`000b`:o+=`\\v`;break;case`001b`:o+=`\\e`;break;case`0085`:o+=`\\N`;break;case`00a0`:o+=`\\_`;break;case`2028`:o+=`\\L`;break;case`2029`:o+=`\\P`;break;default:t.substr(0,2)===`00`?o+=`\\x`+t.substr(2):o+=n.substr(e,6)}e+=5,s=e+1}break;case`n`:if(r||n[e+2]===`"`||n.length<i)e+=1;else{for(o+=n.slice(s,e)+`
|
|
19
|
+
|
|
20
|
+
`;n[e+2]===`\\`&&n[e+3]===`n`&&n[e+4]!==`"`;)o+=`
|
|
21
|
+
`,e+=2;o+=a,n[e+2]===` `&&(o+=`\\`),e+=1,s=e+1}break;default:e+=1}return o=s?o+n.slice(s):n,r?o:Qa(o,a,Za,eo(t,!1))}function io(e,t){if(t.options.singleQuote===!1||t.implicitKey&&e.includes(`
|
|
22
|
+
`)||/[ \t]\n|\n[ \t]/.test(e))return ro(e,t);let n=t.indent||(to(e)?` `:``),r=`'`+e.replace(/'/g,`''`).replace(/\n+/g,`$&\n${n}`)+`'`;return t.implicitKey?r:Qa(r,n,Ya,eo(t,!1))}function ao(e,t){let{singleQuote:n}=t.options,r;if(n===!1)r=ro;else{let t=e.includes(`"`),i=e.includes(`'`);r=t&&!i?io:i&&!t?ro:n?io:ro}return r(e,t)}var oo;try{oo=RegExp(`(^|(?<!
|
|
23
|
+
))
|
|
24
|
+
+(?!
|
|
25
|
+
|$)`,`g`)}catch{oo=/\n+(?!\n|$)/g}function so({comment:e,type:t,value:n},r,i,a){let{blockQuote:o,commentString:s,lineWidth:c}=r.options;if(!o||/\n[\t ]+$/.test(n))return ao(n,r);let l=r.indent||(r.forceBlockIndent||to(n)?` `:``),u=o===`literal`?!0:o===`folded`||t===za.BLOCK_FOLDED?!1:t===za.BLOCK_LITERAL?!0:!no(n,c,l.length);if(!n)return u?`|
|
|
26
|
+
`:`>
|
|
27
|
+
`;let d,f;for(f=n.length;f>0;--f){let e=n[f-1];if(e!==`
|
|
28
|
+
`&&e!==` `&&e!==` `)break}let p=n.substring(f),m=p.indexOf(`
|
|
29
|
+
`);m===-1?d=`-`:n===p||m!==p.length-1?(d=`+`,a&&a()):d=``,p&&=(n=n.slice(0,-p.length),p[p.length-1]===`
|
|
30
|
+
`&&(p=p.slice(0,-1)),p.replace(oo,`$&${l}`));let h=!1,g,_=-1;for(g=0;g<n.length;++g){let e=n[g];if(e===` `)h=!0;else if(e===`
|
|
31
|
+
`)_=g;else break}let v=n.substring(0,_<g?_+1:g);v&&=(n=n.substring(v.length),v.replace(/\n+/g,`$&${l}`));let y=(h?l?`2`:`1`:``)+d;if(e&&(y+=` `+s(e.replace(/ ?[\r\n]+/g,` `)),i&&i()),!u){let e=n.replace(/\n+/g,`
|
|
32
|
+
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\n+/g,`$&${l}`),i=!1,a=eo(r,!0);o!==`folded`&&t!==za.BLOCK_FOLDED&&(a.onOverflow=()=>{i=!0});let s=Qa(`${v}${e}${p}`,l,Xa,a);if(!i)return`>${y}\n${l}${s}`}return n=n.replace(/\n+/g,`$&${l}`),`|${y}\n${l}${v}${n}${p}`}function co(e,t,n,r){let{type:i,value:a}=e,{actualString:o,implicitKey:s,indent:c,indentStep:l,inFlow:u}=t;if(s&&a.includes(`
|
|
33
|
+
`)||u&&/[[\]{},]/.test(a))return ao(a,t);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(a))return s||u||!a.includes(`
|
|
34
|
+
`)?ao(a,t):so(e,t,n,r);if(!s&&!u&&i!==za.PLAIN&&a.includes(`
|
|
35
|
+
`))return so(e,t,n,r);if(to(a)){if(c===``)return t.forceBlockIndent=!0,so(e,t,n,r);if(s&&c===l)return ao(a,t)}let d=a.replace(/\n+/g,`$&\n${c}`);if(o){let e=e=>e.default&&e.tag!==`tag:yaml.org,2002:str`&&e.test?.test(d),{compat:n,tags:r}=t.doc.schema;if(r.some(e)||n?.some(e))return ao(a,t)}return s?d:Qa(d,c,Ya,eo(t,!1))}function lo(e,t,n,r){let{implicitKey:i,inFlow:a}=t,o=typeof e.value==`string`?e:Object.assign({},e,{value:String(e.value)}),{type:s}=e;s!==za.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(s=za.QUOTE_DOUBLE);let c=e=>{switch(e){case za.BLOCK_FOLDED:case za.BLOCK_LITERAL:return i||a?ao(o.value,t):so(o,t,n,r);case za.QUOTE_DOUBLE:return ro(o.value,t);case za.QUOTE_SINGLE:return io(o.value,t);case za.PLAIN:return co(o,t,n,r);default:return null}},l=c(s);if(l===null){let{defaultKeyType:e,defaultStringType:n}=t.options,r=i&&e||n;if(l=c(r),l===null)throw Error(`Unsupported default string type ${r}`)}return l}function uo(e,t){let n=Object.assign({blockQuote:!0,commentString:Ka,defaultKeyType:null,defaultStringType:`PLAIN`,directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:`false`,flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:`null`,simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:`true`,verifyAliasOrder:!0},e.schema.toStringOptions,t),r;switch(n.collectionStyle){case`block`:r=!1;break;case`flow`:r=!0;break;default:r=null}return{anchors:new Set,doc:e,flowCollectionPadding:n.flowCollectionPadding?` `:``,indent:``,indentStep:typeof n.indent==`number`?` `.repeat(n.indent):` `,inFlow:r,options:n}}function fo(e,t){if(t.tag){let n=e.filter(e=>e.tag===t.tag);if(n.length>0)return n.find(e=>e.format===t.format)??n[0]}let n,r;if(da(t)){r=t.value;let i=e.filter(e=>e.identify?.(r));if(i.length>1){let e=i.filter(e=>e.test);e.length>0&&(i=e)}n=i.find(e=>e.format===t.format)??i.find(e=>!e.format)}else r=t,n=e.find(e=>e.nodeClass&&r instanceof e.nodeClass);if(!n){let e=r?.constructor?.name??(r===null?`null`:typeof r);throw Error(`Tag not resolved for ${e} value`)}return n}function po(e,t,{anchors:n,doc:r}){if(!r.directives)return``;let i=[],a=(da(e)||pa(e))&&e.anchor;a&&ka(a)&&(n.add(a),i.push(`&${a}`));let o=e.tag??(t.default?null:t.tag);return o&&i.push(r.directives.tagString(o)),i.join(` `)}function mo(e,t,n,r){if(ua(e))return e.toString(t,n,r);if(sa(e)){if(t.doc.directives)return e.toString(t);if(t.resolvedAliases?.has(e))throw TypeError(`Cannot stringify circular structure without alias nodes`);t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=new Set([e]),e=e.resolve(t.doc)}let i,a=ma(e)?e:t.doc.createNode(e,{onTagObj:e=>i=e});i??=fo(t.doc.schema.tags,a);let o=po(a,i,t);o.length>0&&(t.indentAtStart=(t.indentAtStart??0)+o.length+1);let s=typeof i.stringify==`function`?i.stringify(a,t,n,r):da(a)?lo(a,t,n,r):a.toString(t,n,r);return o?da(a)||s[0]===`{`||s[0]===`[`?`${o} ${s}`:`${o}\n${t.indent}${s}`:s}function ho({key:e,value:t},n,r,i){let{allNullValues:a,doc:o,indent:s,indentStep:c,options:{commentString:l,indentSeq:u,simpleKeys:d}}=n,f=ma(e)&&e.comment||null;if(d){if(f)throw Error(`With simple keys, key nodes cannot have comments`);if(pa(e)||!ma(e)&&typeof e==`object`)throw Error(`With simple keys, collection cannot be used as a key value`)}let p=!d&&(!e||f&&t==null&&!n.inFlow||pa(e)||(da(e)?e.type===za.BLOCK_FOLDED||e.type===za.BLOCK_LITERAL:typeof e==`object`));n=Object.assign({},n,{allNullValues:!1,implicitKey:!p&&(d||!a),indent:s+c});let m=!1,h=!1,g=mo(e,n,()=>m=!0,()=>h=!0);if(!p&&!n.inFlow&&g.length>1024){if(d)throw Error(`With simple keys, single line scalar must not span more than 1024 characters`);p=!0}if(n.inFlow){if(a||t==null)return m&&r&&r(),g===``?`?`:p?`? ${g}`:g}else if(a&&!d||t==null&&p)return g=`? ${g}`,f&&!m?g+=Ja(g,n.indent,l(f)):h&&i&&i(),g;m&&(f=null),p?(f&&(g+=Ja(g,n.indent,l(f))),g=`? ${g}\n${s}:`):(g=`${g}:`,f&&(g+=Ja(g,n.indent,l(f))));let _,v,y;ma(t)?(_=!!t.spaceBefore,v=t.commentBefore,y=t.comment):(_=!1,v=null,y=null,t&&typeof t==`object`&&(t=o.createNode(t))),n.implicitKey=!1,!p&&!f&&da(t)&&(n.indentAtStart=g.length+1),h=!1,!u&&c.length>=2&&!n.inFlow&&!p&&fa(t)&&!t.flow&&!t.tag&&!t.anchor&&(n.indent=n.indent.substring(2));let b=!1,x=mo(t,n,()=>b=!0,()=>h=!0),S=` `;if(f||_||v){if(S=_?`
|
|
36
|
+
`:``,v){let e=l(v);S+=`\n${qa(e,n.indent)}`}x===``&&!n.inFlow?S===`
|
|
37
|
+
`&&y&&(S=`
|
|
38
|
+
|
|
39
|
+
`):S+=`\n${n.indent}`}else if(!p&&pa(t)){let e=x[0],r=x.indexOf(`
|
|
40
|
+
`),i=r!==-1,a=n.inFlow??t.flow??t.items.length===0;if(i||!a){let t=!1;if(i&&(e===`&`||e===`!`)){let n=x.indexOf(` `);e===`&`&&n!==-1&&n<r&&x[n+1]===`!`&&(n=x.indexOf(` `,n+1)),(n===-1||r<n)&&(t=!0)}t||(S=`\n${n.indent}`)}}else (x===``||x[0]===`
|
|
41
|
+
`)&&(S=``);return g+=S+x,n.inFlow?b&&r&&r():y&&!b?g+=Ja(g,n.indent,l(y)):h&&i&&i(),g}function go(e,t){(e===`debug`||e===`warn`)&&console.warn(t)}var _o=`<<`,vo={identify:e=>e===_o||typeof e==`symbol`&&e.description===_o,default:`key`,tag:`tag:yaml.org,2002:merge`,test:/^<<$/,resolve:()=>Object.assign(new za(Symbol(_o)),{addToJSMap:bo}),stringify:()=>_o},yo=(e,t)=>(vo.identify(t)||da(t)&&(!t.type||t.type===za.PLAIN)&&vo.identify(t.value))&&e?.doc.schema.tags.some(e=>e.tag===vo.tag&&e.default);function bo(e,t,n){let r=So(e,n);if(fa(r))for(let n of r.items)xo(e,t,n);else if(Array.isArray(r))for(let n of r)xo(e,t,n);else xo(e,t,r)}function xo(e,t,n){let r=So(e,n);if(!la(r))throw Error(`Merge sources must be maps or map aliases`);let i=r.toJSON(null,e,Map);for(let[e,n]of i)t instanceof Map?t.has(e)||t.set(e,n):t instanceof Set?t.add(e):Object.prototype.hasOwnProperty.call(t,e)||Object.defineProperty(t,e,{value:n,writable:!0,enumerable:!0,configurable:!0});return t}function So(e,t){return e&&sa(t)?t.resolve(e.doc,e):t}function Co(e,t,{key:n,value:r}){if(ma(n)&&n.addToJSMap)n.addToJSMap(e,t,r);else if(yo(e,n))bo(e,t,r);else{let i=Pa(n,``,e);if(t instanceof Map)t.set(i,Pa(r,i,e));else if(t instanceof Set)t.add(i);else{let a=wo(n,i,e),o=Pa(r,a,e);a in t?Object.defineProperty(t,a,{value:o,writable:!0,enumerable:!0,configurable:!0}):t[a]=o}}return t}function wo(e,t,n){if(t===null)return``;if(typeof t!=`object`)return String(t);if(ma(e)&&n?.doc){let t=uo(n.doc,{});t.anchors=new Set;for(let e of n.anchors.keys())t.anchors.add(e.anchor);t.inFlow=!0,t.inStringifyKey=!0;let r=e.toString(t);if(!n.mapKeyWarned){let e=JSON.stringify(r);e.length>40&&(e=e.substring(0,36)+`..."`),go(n.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${e}. Set mapAsMap: true to use object keys.`),n.mapKeyWarned=!0}return r}return JSON.stringify(t)}function To(e,t,n){return new Eo(Ha(e,void 0,n),Ha(t,void 0,n))}var Eo=class e{constructor(e,t=null){Object.defineProperty(this,oa,{value:ra}),this.key=e,this.value=t}clone(t){let{key:n,value:r}=this;return ma(n)&&(n=n.clone(t)),ma(r)&&(r=r.clone(t)),new e(n,r)}toJSON(e,t){return Co(t,t?.mapAsMap?new Map:{},this)}toString(e,t,n){return e?.doc?ho(this,e,t,n):JSON.stringify(this)}};function Do(e,t,n){return(t.inFlow??e.flow?ko:Oo)(e,t,n)}function Oo({comment:e,items:t},n,{blockItemPrefix:r,flowChars:i,itemIndent:a,onChompKeep:o,onComment:s}){let{indent:c,options:{commentString:l}}=n,u=Object.assign({},n,{indent:a,type:null}),d=!1,f=[];for(let e=0;e<t.length;++e){let i=t[e],o=null;if(ma(i))!d&&i.spaceBefore&&f.push(``),Ao(n,f,i.commentBefore,d),i.comment&&(o=i.comment);else if(ua(i)){let e=ma(i.key)?i.key:null;e&&(!d&&e.spaceBefore&&f.push(``),Ao(n,f,e.commentBefore,d))}d=!1;let s=mo(i,u,()=>o=null,()=>d=!0);o&&(s+=Ja(s,a,l(o))),d&&o&&(d=!1),f.push(r+s)}let p;if(f.length===0)p=i.start+i.end;else{p=f[0];for(let e=1;e<f.length;++e){let t=f[e];p+=t?`\n${c}${t}`:`
|
|
42
|
+
`}}return e?(p+=`
|
|
43
|
+
`+qa(l(e),c),s&&s()):d&&o&&o(),p}function ko({items:e},t,{flowChars:n,itemIndent:r}){let{indent:i,indentStep:a,flowCollectionPadding:o,options:{commentString:s}}=t;r+=a;let c=Object.assign({},t,{indent:r,inFlow:!0,type:null}),l=!1,u=0,d=[];for(let n=0;n<e.length;++n){let i=e[n],a=null;if(ma(i))i.spaceBefore&&d.push(``),Ao(t,d,i.commentBefore,!1),i.comment&&(a=i.comment);else if(ua(i)){let e=ma(i.key)?i.key:null;e&&(e.spaceBefore&&d.push(``),Ao(t,d,e.commentBefore,!1),e.comment&&(l=!0));let n=ma(i.value)?i.value:null;n?(n.comment&&(a=n.comment),n.commentBefore&&(l=!0)):i.value==null&&e?.comment&&(a=e.comment)}a&&(l=!0);let o=mo(i,c,()=>a=null);l||=d.length>u||o.includes(`
|
|
44
|
+
`),n<e.length-1?o+=`,`:t.options.trailingComma&&(t.options.lineWidth>0&&(l||=d.reduce((e,t)=>e+t.length+2,2)+(o.length+2)>t.options.lineWidth),l&&(o+=`,`)),a&&(o+=Ja(o,r,s(a))),d.push(o),u=d.length}let{start:f,end:p}=n;if(d.length===0)return f+p;if(!l){let e=d.reduce((e,t)=>e+t.length+2,2);l=t.options.lineWidth>0&&e>t.options.lineWidth}if(l){let e=f;for(let t of d)e+=t?`\n${a}${i}${t}`:`
|
|
45
|
+
`;return`${e}\n${i}${p}`}else return`${f}${o}${d.join(` `)}${o}${p}`}function Ao({indent:e,options:{commentString:t}},n,r,i){if(r&&i&&(r=r.replace(/^\n+/,``)),r){let i=qa(t(r),e);n.push(i.trimStart())}}function jo(e,t){let n=da(t)?t.value:t;for(let r of e)if(ua(r)&&(r.key===t||r.key===n||da(r.key)&&r.key.value===n))return r}var Mo=class extends Ga{static get tagName(){return`tag:yaml.org,2002:map`}constructor(e){super(na,e),this.items=[]}static from(e,t,n){let{keepUndefined:r,replacer:i}=n,a=new this(e),o=(e,o)=>{if(typeof i==`function`)o=i.call(t,e,o);else if(Array.isArray(i)&&!i.includes(e))return;(o!==void 0||r)&&a.items.push(To(e,o,n))};if(t instanceof Map)for(let[e,n]of t)o(e,n);else if(t&&typeof t==`object`)for(let e of Object.keys(t))o(e,t[e]);return typeof e.sortMapEntries==`function`&&a.items.sort(e.sortMapEntries),a}add(e,t){let n;n=ua(e)?e:!e||typeof e!=`object`||!(`key`in e)?new Eo(e,e?.value):new Eo(e.key,e.value);let r=jo(this.items,n.key),i=this.schema?.sortMapEntries;if(r){if(!t)throw Error(`Key ${n.key} already set`);da(r.value)&&Ra(n.value)?r.value.value=n.value:r.value=n.value}else if(i){let e=this.items.findIndex(e=>i(n,e)<0);e===-1?this.items.push(n):this.items.splice(e,0,n)}else this.items.push(n)}delete(e){let t=jo(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let n=jo(this.items,e)?.value;return(!t&&da(n)?n.value:n)??void 0}has(e){return!!jo(this.items,e)}set(e,t){this.add(new Eo(e,t),!0)}toJSON(e,t,n){let r=n?new n:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(r);for(let e of this.items)Co(t,r,e);return r}toString(e,t,n){if(!e)return JSON.stringify(this);for(let e of this.items)if(!ua(e))throw Error(`Map items must all be pairs; found ${JSON.stringify(e)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),Do(this,e,{blockItemPrefix:``,flowChars:{start:`{`,end:`}`},itemIndent:e.indent||``,onChompKeep:n,onComment:t})}},No={collection:`map`,default:!0,nodeClass:Mo,tag:`tag:yaml.org,2002:map`,resolve(e,t){return la(e)||t(`Expected a mapping for this tag`),e},createNode:(e,t,n)=>Mo.from(e,t,n)},Po=class extends Ga{static get tagName(){return`tag:yaml.org,2002:seq`}constructor(e){super(aa,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=Fo(e);return typeof t==`number`?this.items.splice(t,1).length>0:!1}get(e,t){let n=Fo(e);if(typeof n!=`number`)return;let r=this.items[n];return!t&&da(r)?r.value:r}has(e){let t=Fo(e);return typeof t==`number`&&t<this.items.length}set(e,t){let n=Fo(e);if(typeof n!=`number`)throw Error(`Expected a valid index, not ${e}.`);let r=this.items[n];da(r)&&Ra(t)?r.value=t:this.items[n]=t}toJSON(e,t){let n=[];t?.onCreate&&t.onCreate(n);let r=0;for(let e of this.items)n.push(Pa(e,String(r++),t));return n}toString(e,t,n){return e?Do(this,e,{blockItemPrefix:`- `,flowChars:{start:`[`,end:`]`},itemIndent:(e.indent||``)+` `,onChompKeep:n,onComment:t}):JSON.stringify(this)}static from(e,t,n){let{replacer:r}=n,i=new this(e);if(t&&Symbol.iterator in Object(t)){let e=0;for(let a of t){if(typeof r==`function`){let n=t instanceof Set?a:String(e++);a=r.call(t,n,a)}i.items.push(Ha(a,void 0,n))}}return i}};function Fo(e){let t=da(e)?e.value:e;return t&&typeof t==`string`&&(t=Number(t)),typeof t==`number`&&Number.isInteger(t)&&t>=0?t:null}var Io={collection:`seq`,default:!0,nodeClass:Po,tag:`tag:yaml.org,2002:seq`,resolve(e,t){return fa(e)||t(`Expected a sequence for this tag`),e},createNode:(e,t,n)=>Po.from(e,t,n)},Lo={identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify(e,t,n,r){return t=Object.assign({actualString:!0},t),lo(e,t,n,r)}},Ro={identify:e=>e==null,createNode:()=>new za(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new za(null),stringify:({source:e},t)=>typeof e==`string`&&Ro.test.test(e)?e:t.options.nullStr},zo={identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new za(e[0]===`t`||e[0]===`T`),stringify({source:e,value:t},n){return e&&zo.test.test(e)&&t===(e[0]===`t`||e[0]===`T`)?e:t?n.options.trueStr:n.options.falseStr}};function Bo({format:e,minFractionDigits:t,tag:n,value:r}){if(typeof r==`bigint`)return String(r);let i=typeof r==`number`?r:Number(r);if(!isFinite(i))return isNaN(i)?`.nan`:i<0?`-.inf`:`.inf`;let a=Object.is(r,-0)?`-0`:JSON.stringify(r);if(!e&&t&&(!n||n===`tag:yaml.org,2002:float`)&&/^-?\d/.test(a)&&!a.includes(`e`)){let e=a.indexOf(`.`);e<0&&(e=a.length,a+=`.`);let n=t-(a.length-e-1);for(;n-- >0;)a+=`0`}return a}var Vo={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:Bo},Ho={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():Bo(e)}},Uo={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){let t=new za(parseFloat(e)),n=e.indexOf(`.`);return n!==-1&&e[e.length-1]===`0`&&(t.minFractionDigits=e.length-n-1),t},stringify:Bo},Wo=e=>typeof e==`bigint`||Number.isInteger(e),Go=(e,t,n,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(t),n);function Ko(e,t,n){let{value:r}=e;return Wo(r)&&r>=0?n+r.toString(t):Bo(e)}var qo={identify:e=>Wo(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^0o[0-7]+$/,resolve:(e,t,n)=>Go(e,2,8,n),stringify:e=>Ko(e,8,`0o`)},Jo={identify:Wo,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9]+$/,resolve:(e,t,n)=>Go(e,0,10,n),stringify:Bo},Yo={identify:e=>Wo(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,n)=>Go(e,2,16,n),stringify:e=>Ko(e,16,`0x`)},Xo=[No,Io,Lo,Ro,zo,qo,Jo,Yo,Vo,Ho,Uo];function Zo(e){return typeof e==`bigint`||Number.isInteger(e)}var Qo=({value:e})=>JSON.stringify(e),$o=[{identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify:Qo},{identify:e=>e==null,createNode:()=>new za(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^null$/,resolve:()=>null,stringify:Qo},{identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^true$|^false$/,resolve:e=>e===`true`,stringify:Qo},{identify:Zo,default:!0,tag:`tag:yaml.org,2002:int`,test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:n})=>n?BigInt(e):parseInt(e,10),stringify:({value:e})=>Zo(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:Qo}],es=[No,Io].concat($o,{default:!0,tag:``,test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}}),ts={identify:e=>e instanceof Uint8Array,default:!1,tag:`tag:yaml.org,2002:binary`,resolve(e,t){if(typeof atob==`function`){let t=atob(e.replace(/[\n\r]/g,``)),n=new Uint8Array(t.length);for(let e=0;e<t.length;++e)n[e]=t.charCodeAt(e);return n}else return t(`This environment does not support reading binary tags; either Buffer or atob is required`),e},stringify({comment:e,type:t,value:n},r,i,a){if(!n)return``;let o=n,s;if(typeof btoa==`function`){let e=``;for(let t=0;t<o.length;++t)e+=String.fromCharCode(o[t]);s=btoa(e)}else throw Error(`This environment does not support writing binary tags; either Buffer or btoa is required`);if(t??=za.BLOCK_LITERAL,t!==za.QUOTE_DOUBLE){let e=Math.max(r.options.lineWidth-r.indent.length,r.options.minContentWidth),n=Math.ceil(s.length/e),i=Array(n);for(let t=0,r=0;t<n;++t,r+=e)i[t]=s.substr(r,e);s=i.join(t===za.BLOCK_LITERAL?`
|
|
46
|
+
`:` `)}return lo({comment:e,type:t,value:s},r,i,a)}};function ns(e,t){if(fa(e))for(let n=0;n<e.items.length;++n){let r=e.items[n];if(!ua(r)){if(la(r)){r.items.length>1&&t(`Each pair must have its own sequence indicator`);let e=r.items[0]||new Eo(new za(null));if(r.commentBefore&&(e.key.commentBefore=e.key.commentBefore?`${r.commentBefore}\n${e.key.commentBefore}`:r.commentBefore),r.comment){let t=e.value??e.key;t.comment=t.comment?`${r.comment}\n${t.comment}`:r.comment}r=e}e.items[n]=ua(r)?r:new Eo(r)}}else t(`Expected a sequence for this tag`);return e}function rs(e,t,n){let{replacer:r}=n,i=new Po(e);i.tag=`tag:yaml.org,2002:pairs`;let a=0;if(t&&Symbol.iterator in Object(t))for(let e of t){typeof r==`function`&&(e=r.call(t,String(a++),e));let o,s;if(Array.isArray(e))if(e.length===2)o=e[0],s=e[1];else throw TypeError(`Expected [key, value] tuple: ${e}`);else if(e&&e instanceof Object){let t=Object.keys(e);if(t.length===1)o=t[0],s=e[o];else throw TypeError(`Expected tuple with one key, not ${t.length} keys`)}else o=e;i.items.push(To(o,s,n))}return i}var is={collection:`seq`,default:!1,tag:`tag:yaml.org,2002:pairs`,resolve:ns,createNode:rs},as=class e extends Po{constructor(){super(),this.add=Mo.prototype.add.bind(this),this.delete=Mo.prototype.delete.bind(this),this.get=Mo.prototype.get.bind(this),this.has=Mo.prototype.has.bind(this),this.set=Mo.prototype.set.bind(this),this.tag=e.tag}toJSON(e,t){if(!t)return super.toJSON(e);let n=new Map;t?.onCreate&&t.onCreate(n);for(let e of this.items){let r,i;if(ua(e)?(r=Pa(e.key,``,t),i=Pa(e.value,r,t)):r=Pa(e,``,t),n.has(r))throw Error(`Ordered maps must not include duplicate keys`);n.set(r,i)}return n}static from(e,t,n){let r=rs(e,t,n),i=new this;return i.items=r.items,i}};as.tag=`tag:yaml.org,2002:omap`;var os={collection:`seq`,identify:e=>e instanceof Map,nodeClass:as,default:!1,tag:`tag:yaml.org,2002:omap`,resolve(e,t){let n=ns(e,t),r=[];for(let{key:e}of n.items)da(e)&&(r.includes(e.value)?t(`Ordered maps must not include duplicate keys: ${e.value}`):r.push(e.value));return Object.assign(new as,n)},createNode:(e,t,n)=>as.from(e,t,n)};function ss({value:e,source:t},n){return t&&(e?cs:ls).test.test(t)?t:e?n.options.trueStr:n.options.falseStr}var cs={identify:e=>e===!0,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new za(!0),stringify:ss},ls={identify:e=>e===!1,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new za(!1),stringify:ss},us={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:Bo},ds={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,``)),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():Bo(e)}},fs={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){let t=new za(parseFloat(e.replace(/_/g,``))),n=e.indexOf(`.`);if(n!==-1){let r=e.substring(n+1).replace(/_/g,``);r[r.length-1]===`0`&&(t.minFractionDigits=r.length)}return t},stringify:Bo},ps=e=>typeof e==`bigint`||Number.isInteger(e);function ms(e,t,n,{intAsBigInt:r}){let i=e[0];if((i===`-`||i===`+`)&&(t+=1),e=e.substring(t).replace(/_/g,``),r){switch(n){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}let t=BigInt(e);return i===`-`?BigInt(-1)*t:t}let a=parseInt(e,n);return i===`-`?-1*a:a}function hs(e,t,n){let{value:r}=e;if(ps(r)){let e=r.toString(t);return r<0?`-`+n+e.substr(1):n+e}return Bo(e)}var gs={identify:ps,default:!0,tag:`tag:yaml.org,2002:int`,format:`BIN`,test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,n)=>ms(e,2,2,n),stringify:e=>hs(e,2,`0b`)},_s={identify:ps,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^[-+]?0[0-7_]+$/,resolve:(e,t,n)=>ms(e,1,8,n),stringify:e=>hs(e,8,`0`)},vs={identify:ps,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,n)=>ms(e,0,10,n),stringify:Bo},ys={identify:ps,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,n)=>ms(e,2,16,n),stringify:e=>hs(e,16,`0x`)},bs=class e extends Mo{constructor(t){super(t),this.tag=e.tag}add(e){let t;t=ua(e)?e:e&&typeof e==`object`&&`key`in e&&`value`in e&&e.value===null?new Eo(e.key,null):new Eo(e,null),jo(this.items,t.key)||this.items.push(t)}get(e,t){let n=jo(this.items,e);return!t&&ua(n)?da(n.key)?n.key.value:n.key:n}set(e,t){if(typeof t!=`boolean`)throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let n=jo(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new Eo(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw Error(`Set items must all have null values`)}static from(e,t,n){let{replacer:r}=n,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let e of t)typeof r==`function`&&(e=r.call(t,e,e)),i.items.push(To(e,null,n));return i}};bs.tag=`tag:yaml.org,2002:set`;var xs={collection:`map`,identify:e=>e instanceof Set,nodeClass:bs,default:!1,tag:`tag:yaml.org,2002:set`,createNode:(e,t,n)=>bs.from(e,t,n),resolve(e,t){if(la(e)){if(e.hasAllNullValues(!0))return Object.assign(new bs,e);t(`Set items must all have null values`)}else t(`Expected a mapping for this tag`);return e}};function Ss(e,t){let n=e[0],r=n===`-`||n===`+`?e.substring(1):e,i=e=>t?BigInt(e):Number(e),a=r.replace(/_/g,``).split(`:`).reduce((e,t)=>e*i(60)+i(t),i(0));return n===`-`?i(-1)*a:a}function Cs(e){let{value:t}=e,n=e=>e;if(typeof t==`bigint`)n=e=>BigInt(e);else if(isNaN(t)||!isFinite(t))return Bo(e);let r=``;t<0&&(r=`-`,t*=n(-1));let i=n(60),a=[t%i];return t<60?a.unshift(0):(t=(t-a[0])/i,a.unshift(t%i),t>=60&&(t=(t-a[0])/i,a.unshift(t))),r+a.map(e=>String(e).padStart(2,`0`)).join(`:`).replace(/000000\d*$/,``)}var ws={identify:e=>typeof e==`bigint`||Number.isInteger(e),default:!0,tag:`tag:yaml.org,2002:int`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:n})=>Ss(e,n),stringify:Cs},Ts={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>Ss(e,!1),stringify:Cs},Es={identify:e=>e instanceof Date,default:!0,tag:`tag:yaml.org,2002:timestamp`,test:RegExp(`^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$`),resolve(e){let t=e.match(Es.test);if(!t)throw Error(`!!timestamp expects a date, starting with yyyy-mm-dd`);let[,n,r,i,a,o,s]=t.map(Number),c=t[7]?Number((t[7]+`00`).substr(1,3)):0,l=Date.UTC(n,r-1,i,a||0,o||0,s||0,c),u=t[8];if(u&&u!==`Z`){let e=Ss(u,!1);Math.abs(e)<30&&(e*=60),l-=6e4*e}return new Date(l)},stringify:({value:e})=>e?.toISOString().replace(/(T00:00:00)?\.000Z$/,``)??``},Ds=[No,Io,Lo,Ro,cs,ls,gs,_s,vs,ys,us,ds,fs,ts,vo,os,is,xs,ws,Ts,Es],Os=new Map([[`core`,Xo],[`failsafe`,[No,Io,Lo]],[`json`,es],[`yaml11`,Ds],[`yaml-1.1`,Ds]]),ks={binary:ts,bool:zo,float:Uo,floatExp:Ho,floatNaN:Vo,floatTime:Ts,int:Jo,intHex:Yo,intOct:qo,intTime:ws,map:No,merge:vo,null:Ro,omap:os,pairs:is,seq:Io,set:xs,timestamp:Es},As={"tag:yaml.org,2002:binary":ts,"tag:yaml.org,2002:merge":vo,"tag:yaml.org,2002:omap":os,"tag:yaml.org,2002:pairs":is,"tag:yaml.org,2002:set":xs,"tag:yaml.org,2002:timestamp":Es};function js(e,t,n){let r=Os.get(t);if(r&&!e)return n&&!r.includes(vo)?r.concat(vo):r.slice();let i=r;if(!i)if(Array.isArray(e))i=[];else{let e=Array.from(Os.keys()).filter(e=>e!==`yaml11`).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown schema "${t}"; use one of ${e} or define customTags array`)}if(Array.isArray(e))for(let t of e)i=i.concat(t);else typeof e==`function`&&(i=e(i.slice()));return n&&(i=i.concat(vo)),i.reduce((e,t)=>{let n=typeof t==`string`?ks[t]:t;if(!n){let e=JSON.stringify(t),n=Object.keys(ks).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown custom tag ${e}; use one of ${n}`)}return e.includes(n)||e.push(n),e},[])}var Ms=(e,t)=>e.key<t.key?-1:+(e.key>t.key),Ns=class e{constructor({compat:e,customTags:t,merge:n,resolveKnownTags:r,schema:i,sortMapEntries:a,toStringDefaults:o}){this.compat=Array.isArray(e)?js(e,`compat`):e?js(null,e):null,this.name=typeof i==`string`&&i||`core`,this.knownTags=r?As:{},this.tags=js(t,this.name,n),this.toStringOptions=o??null,Object.defineProperty(this,na,{value:No}),Object.defineProperty(this,ia,{value:Lo}),Object.defineProperty(this,aa,{value:Io}),this.sortMapEntries=typeof a==`function`?a:a===!0?Ms:null}clone(){let t=Object.create(e.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}};function Ps(e,t){let n=[],r=t.directives===!0;if(t.directives!==!1&&e.directives){let t=e.directives.toString(e);t?(n.push(t),r=!0):e.directives.docStart&&(r=!0)}r&&n.push(`---`);let i=uo(e,t),{commentString:a}=i.options;if(e.commentBefore){n.length!==1&&n.unshift(``);let t=a(e.commentBefore);n.unshift(qa(t,``))}let o=!1,s=null;if(e.contents){if(ma(e.contents)){if(e.contents.spaceBefore&&r&&n.push(``),e.contents.commentBefore){let t=a(e.contents.commentBefore);n.push(qa(t,``))}i.forceBlockIndent=!!e.comment,s=e.contents.comment}let t=s?void 0:()=>o=!0,c=mo(e.contents,i,()=>s=null,t);s&&(c+=Ja(c,``,a(s))),(c[0]===`|`||c[0]===`>`)&&n[n.length-1]===`---`?n[n.length-1]=`--- ${c}`:n.push(c)}else n.push(mo(e.contents,i));if(e.directives?.docEnd)if(e.comment){let t=a(e.comment);t.includes(`
|
|
47
|
+
`)?(n.push(`...`),n.push(qa(t,``))):n.push(`... ${t}`)}else n.push(`...`);else{let t=e.comment;t&&o&&(t=t.replace(/^\n+/,``)),t&&((!o||s)&&n[n.length-1]!==``&&n.push(``),n.push(qa(a(t),``)))}return n.join(`
|
|
48
|
+
`)+`
|
|
49
|
+
`}var Fs=class e{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,oa,{value:ta});let r=null;typeof t==`function`||Array.isArray(t)?r=t:n===void 0&&t&&(n=t,t=void 0);let i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:`warn`,prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:`1.2`},n);this.options=i;let{version:a}=i;n?._directives?(this.directives=n._directives.atDocument(),this.directives.yaml.explicit&&(a=this.directives.yaml.version)):this.directives=new Oa({version:a}),this.setSchema(a,n),this.contents=e===void 0?null:this.createNode(e,r,n)}clone(){let t=Object.create(e.prototype,{[oa]:{value:ta}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=ma(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(e){Is(this.contents)&&this.contents.add(e)}addIn(e,t){Is(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let n=Aa(this);e.anchor=!t||n.has(t)?ja(t||`a`,n):t}return new Ia(e.anchor)}createNode(e,t,n){let r;if(typeof t==`function`)e=t.call({"":e},``,e),r=t;else if(Array.isArray(t)){let e=t.filter(e=>typeof e==`number`||e instanceof String||e instanceof Number).map(String);e.length>0&&(t=t.concat(e)),r=t}else n===void 0&&t&&(n=t,t=void 0);let{aliasDuplicateObjects:i,anchorPrefix:a,flow:o,keepUndefined:s,onTagObj:c,tag:l}=n??{},{onAnchor:u,setAnchors:d,sourceObjects:f}=Ma(this,a||`a`),p={aliasDuplicateObjects:i??!0,keepUndefined:s??!1,onAnchor:u,onTagObj:c,replacer:r,schema:this.schema,sourceObjects:f},m=Ha(e,l,p);return o&&pa(m)&&(m.flow=!0),d(),m}createPair(e,t,n={}){return new Eo(this.createNode(e,null,n),this.createNode(t,null,n))}delete(e){return Is(this.contents)?this.contents.delete(e):!1}deleteIn(e){return Wa(e)?this.contents==null?!1:(this.contents=null,!0):Is(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return pa(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return Wa(e)?!t&&da(this.contents)?this.contents.value:this.contents:pa(this.contents)?this.contents.getIn(e,t):void 0}has(e){return pa(this.contents)?this.contents.has(e):!1}hasIn(e){return Wa(e)?this.contents!==void 0:pa(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=Ua(this.schema,[e],t):Is(this.contents)&&this.contents.set(e,t)}setIn(e,t){Wa(e)?this.contents=t:this.contents==null?this.contents=Ua(this.schema,Array.from(e),t):Is(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e==`number`&&(e=String(e));let n;switch(e){case`1.1`:this.directives?this.directives.yaml.version=`1.1`:this.directives=new Oa({version:`1.1`}),n={resolveKnownTags:!1,schema:`yaml-1.1`};break;case`1.2`:case`next`:this.directives?this.directives.yaml.version=e:this.directives=new Oa({version:e}),n={resolveKnownTags:!0,schema:`core`};break;case null:this.directives&&delete this.directives,n=null;break;default:{let t=JSON.stringify(e);throw Error(`Expected '1.1', '1.2' or null as first argument, but found: ${t}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(n)this.schema=new Ns(Object.assign(n,t));else throw Error(`With a null YAML version, the { schema: Schema } option is required`)}toJS({json:e,jsonArg:t,mapAsMap:n,maxAliasCount:r,onAnchor:i,reviver:a}={}){let o={anchors:new Map,doc:this,keep:!e,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof r==`number`?r:100},s=Pa(this.contents,t??``,o);if(typeof i==`function`)for(let{count:e,res:t}of o.anchors.values())i(t,e);return typeof a==`function`?Na(a,{"":s},``,s):s}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw Error(`Document with errors cannot be stringified`);if(`indent`in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw Error(`"indent" option must be a positive integer, not ${t}`)}return Ps(this,e)}};function Is(e){if(pa(e))return!0;throw Error(`Expected a YAML collection as document contents`)}var Ls=class extends Error{constructor(e,t,n,r){super(),this.name=e,this.code=n,this.message=r,this.pos=t}},Rs=class extends Ls{constructor(e,t,n){super(`YAMLParseError`,e,t,n)}},zs=class extends Ls{constructor(e,t,n){super(`YAMLWarning`,e,t,n)}},Bs=(e,t)=>n=>{if(n.pos[0]===-1)return;n.linePos=n.pos.map(e=>t.linePos(e));let{line:r,col:i}=n.linePos[0];n.message+=` at line ${r}, column ${i}`;let a=i-1,o=e.substring(t.lineStarts[r-1],t.lineStarts[r]).replace(/[\n\r]+$/,``);if(a>=60&&o.length>80){let e=Math.min(a-39,o.length-79);o=`…`+o.substring(e),a-=e-1}if(o.length>80&&(o=o.substring(0,79)+`…`),r>1&&/^ *$/.test(o.substring(0,a))){let n=e.substring(t.lineStarts[r-2],t.lineStarts[r-1]);n.length>80&&(n=n.substring(0,79)+`…
|
|
50
|
+
`),o=n+o}if(/[^ ]/.test(o)){let e=1,t=n.linePos[1];t?.line===r&&t.col>i&&(e=Math.max(1,Math.min(t.col-i,80-a)));let s=` `.repeat(a)+`^`.repeat(e);n.message+=`:\n\n${o}\n${s}\n`}};function Vs(e,{flow:t,indicator:n,next:r,offset:i,onError:a,parentIndent:o,startOnNewline:s}){let c=!1,l=s,u=s,d=``,f=``,p=!1,m=!1,h=null,g=null,_=null,v=null,y=null,b=null,x=null;for(let i of e)switch(m&&=(i.type!==`space`&&i.type!==`newline`&&i.type!==`comma`&&a(i.offset,`MISSING_CHAR`,`Tags and anchors must be separated from the next token by white space`),!1),h&&=(l&&i.type!==`comment`&&i.type!==`newline`&&a(h,`TAB_AS_INDENT`,`Tabs are not allowed as indentation`),null),i.type){case`space`:!t&&(n!==`doc-start`||r?.type!==`flow-collection`)&&i.source.includes(` `)&&(h=i),u=!0;break;case`comment`:{u||a(i,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`);let e=i.source.substring(1)||` `;d?d+=f+e:d=e,f=``,l=!1;break}case`newline`:l?d?d+=i.source:(!b||n!==`seq-item-ind`)&&(c=!0):f+=i.source,l=!0,p=!0,(g||_)&&(v=i),u=!0;break;case`anchor`:g&&a(i,`MULTIPLE_ANCHORS`,`A node can have at most one anchor`),i.source.endsWith(`:`)&&a(i.offset+i.source.length-1,`BAD_ALIAS`,`Anchor ending in : is ambiguous`,!0),g=i,x??=i.offset,l=!1,u=!1,m=!0;break;case`tag`:_&&a(i,`MULTIPLE_TAGS`,`A node can have at most one tag`),_=i,x??=i.offset,l=!1,u=!1,m=!0;break;case n:(g||_)&&a(i,`BAD_PROP_ORDER`,`Anchors and tags must be after the ${i.source} indicator`),b&&a(i,`UNEXPECTED_TOKEN`,`Unexpected ${i.source} in ${t??`collection`}`),b=i,l=n===`seq-item-ind`||n===`explicit-key-ind`,u=!1;break;case`comma`:if(t){y&&a(i,`UNEXPECTED_TOKEN`,`Unexpected , in ${t}`),y=i,l=!1,u=!1;break}default:a(i,`UNEXPECTED_TOKEN`,`Unexpected ${i.type} token`),l=!1,u=!1}let S=e[e.length-1],C=S?S.offset+S.source.length:i;return m&&r&&r.type!==`space`&&r.type!==`newline`&&r.type!==`comma`&&(r.type!==`scalar`||r.source!==``)&&a(r.offset,`MISSING_CHAR`,`Tags and anchors must be separated from the next token by white space`),h&&(l&&h.indent<=o||r?.type===`block-map`||r?.type===`block-seq`)&&a(h,`TAB_AS_INDENT`,`Tabs are not allowed as indentation`),{comma:y,found:b,spaceBefore:c,comment:d,hasNewline:p,anchor:g,tag:_,newlineAfterProp:v,end:C,start:x??C}}function Hs(e){if(!e)return null;switch(e.type){case`alias`:case`scalar`:case`double-quoted-scalar`:case`single-quoted-scalar`:if(e.source.includes(`
|
|
51
|
+
`))return!0;if(e.end){for(let t of e.end)if(t.type===`newline`)return!0}return!1;case`flow-collection`:for(let t of e.items){for(let e of t.start)if(e.type===`newline`)return!0;if(t.sep){for(let e of t.sep)if(e.type===`newline`)return!0}if(Hs(t.key)||Hs(t.value))return!0}return!1;default:return!0}}function Us(e,t,n){if(t?.type===`flow-collection`){let r=t.end[0];r.indent===e&&(r.source===`]`||r.source===`}`)&&Hs(t)&&n(r,`BAD_INDENT`,`Flow end indicator should be more indented than parent`,!0)}}function Ws(e,t,n){let{uniqueKeys:r}=e.options;if(r===!1)return!1;let i=typeof r==`function`?r:(e,t)=>e===t||da(e)&&da(t)&&e.value===t.value;return t.some(e=>i(e.key,n))}var Gs=`All mapping items must start at the same column`;function Ks({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=new(a?.nodeClass??Mo)(n.schema);n.atRoot&&=!1;let s=r.offset,c=null;for(let a of r.items){let{start:l,key:u,sep:d,value:f}=a,p=Vs(l,{indicator:`explicit-key-ind`,next:u??d?.[0],offset:s,onError:i,parentIndent:r.indent,startOnNewline:!0}),m=!p.found;if(m){if(u&&(u.type===`block-seq`?i(s,`BLOCK_AS_IMPLICIT_KEY`,`A block sequence may not be used as an implicit map key`):`indent`in u&&u.indent!==r.indent&&i(s,`BAD_INDENT`,Gs)),!p.anchor&&!p.tag&&!d){c=p.end,p.comment&&(o.comment?o.comment+=`
|
|
52
|
+
`+p.comment:o.comment=p.comment);continue}(p.newlineAfterProp||Hs(u))&&i(u??l[l.length-1],`MULTILINE_IMPLICIT_KEY`,`Implicit keys need to be on a single line`)}else p.found?.indent!==r.indent&&i(s,`BAD_INDENT`,Gs);n.atKey=!0;let h=p.end,g=u?e(n,u,p,i):t(n,h,l,null,p,i);n.schema.compat&&Us(r.indent,u,i),n.atKey=!1,Ws(n,o.items,g)&&i(h,`DUPLICATE_KEY`,`Map keys must be unique`);let _=Vs(d??[],{indicator:`map-value-ind`,next:f,offset:g.range[2],onError:i,parentIndent:r.indent,startOnNewline:!u||u.type===`block-scalar`});if(s=_.end,_.found){m&&(f?.type===`block-map`&&!_.hasNewline&&i(s,`BLOCK_AS_IMPLICIT_KEY`,`Nested mappings are not allowed in compact mappings`),n.options.strict&&p.start<_.found.offset-1024&&i(g.range,`KEY_OVER_1024_CHARS`,`The : indicator must be at most 1024 chars after the start of an implicit block mapping key`));let c=f?e(n,f,_,i):t(n,s,d,null,_,i);n.schema.compat&&Us(r.indent,f,i),s=c.range[2];let l=new Eo(g,c);n.options.keepSourceTokens&&(l.srcToken=a),o.items.push(l)}else{m&&i(g.range,`MISSING_CHAR`,`Implicit map keys need to be followed by map values`),_.comment&&(g.comment?g.comment+=`
|
|
53
|
+
`+_.comment:g.comment=_.comment);let e=new Eo(g);n.options.keepSourceTokens&&(e.srcToken=a),o.items.push(e)}}return c&&c<s&&i(c,`IMPOSSIBLE`,`Map comment with trailing content`),o.range=[r.offset,s,c??s],o}function qs({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=new(a?.nodeClass??Po)(n.schema);n.atRoot&&=!1,n.atKey&&=!1;let s=r.offset,c=null;for(let{start:a,value:l}of r.items){let u=Vs(a,{indicator:`seq-item-ind`,next:l,offset:s,onError:i,parentIndent:r.indent,startOnNewline:!0});if(!u.found)if(u.anchor||u.tag||l)l?.type===`block-seq`?i(u.end,`BAD_INDENT`,`All sequence items must start at the same column`):i(s,`MISSING_CHAR`,`Sequence item without - indicator`);else{c=u.end,u.comment&&(o.comment=u.comment);continue}let d=l?e(n,l,u,i):t(n,u.end,a,null,u,i);n.schema.compat&&Us(r.indent,l,i),s=d.range[2],o.items.push(d)}return o.range=[r.offset,s,c??s],o}function Js(e,t,n,r){let i=``;if(e){let a=!1,o=``;for(let s of e){let{source:e,type:c}=s;switch(c){case`space`:a=!0;break;case`comment`:{n&&!a&&r(s,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`);let t=e.substring(1)||` `;i?i+=o+t:i=t,o=``;break}case`newline`:i&&(o+=e),a=!0;break;default:r(s,`UNEXPECTED_TOKEN`,`Unexpected ${c} at node end`)}t+=e.length}}return{comment:i,offset:t}}var Ys=`Block collections are not allowed within flow collections`,Xs=e=>e&&(e.type===`block-map`||e.type===`block-seq`);function Zs({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=r.start.source===`{`,s=o?`flow map`:`flow sequence`,c=new(a?.nodeClass??(o?Mo:Po))(n.schema);c.flow=!0;let l=n.atRoot;l&&(n.atRoot=!1),n.atKey&&=!1;let u=r.offset+r.start.source.length;for(let a=0;a<r.items.length;++a){let l=r.items[a],{start:d,key:f,sep:p,value:m}=l,h=Vs(d,{flow:s,indicator:`explicit-key-ind`,next:f??p?.[0],offset:u,onError:i,parentIndent:r.indent,startOnNewline:!1});if(!h.found){if(!h.anchor&&!h.tag&&!p&&!m){a===0&&h.comma?i(h.comma,`UNEXPECTED_TOKEN`,`Unexpected , in ${s}`):a<r.items.length-1&&i(h.start,`UNEXPECTED_TOKEN`,`Unexpected empty item in ${s}`),h.comment&&(c.comment?c.comment+=`
|
|
54
|
+
`+h.comment:c.comment=h.comment),u=h.end;continue}!o&&n.options.strict&&Hs(f)&&i(f,`MULTILINE_IMPLICIT_KEY`,`Implicit keys of flow sequence pairs need to be on a single line`)}if(a===0)h.comma&&i(h.comma,`UNEXPECTED_TOKEN`,`Unexpected , in ${s}`);else if(h.comma||i(h.start,`MISSING_CHAR`,`Missing , between ${s} items`),h.comment){let e=``;loop:for(let t of d)switch(t.type){case`comma`:case`space`:break;case`comment`:e=t.source.substring(1);break loop;default:break loop}if(e){let t=c.items[c.items.length-1];ua(t)&&(t=t.value??t.key),t.comment?t.comment+=`
|
|
55
|
+
`+e:t.comment=e,h.comment=h.comment.substring(e.length+1)}}if(!o&&!p&&!h.found){let r=m?e(n,m,h,i):t(n,h.end,p,null,h,i);c.items.push(r),u=r.range[2],Xs(m)&&i(r.range,`BLOCK_IN_FLOW`,Ys)}else{n.atKey=!0;let a=h.end,g=f?e(n,f,h,i):t(n,a,d,null,h,i);Xs(f)&&i(g.range,`BLOCK_IN_FLOW`,Ys),n.atKey=!1;let _=Vs(p??[],{flow:s,indicator:`map-value-ind`,next:m,offset:g.range[2],onError:i,parentIndent:r.indent,startOnNewline:!1});if(_.found){if(!o&&!h.found&&n.options.strict){if(p)for(let e of p){if(e===_.found)break;if(e.type===`newline`){i(e,`MULTILINE_IMPLICIT_KEY`,`Implicit keys of flow sequence pairs need to be on a single line`);break}}h.start<_.found.offset-1024&&i(_.found,`KEY_OVER_1024_CHARS`,`The : indicator must be at most 1024 chars after the start of an implicit flow sequence key`)}}else m&&(`source`in m&&m.source?.[0]===`:`?i(m,`MISSING_CHAR`,`Missing space after : in ${s}`):i(_.start,`MISSING_CHAR`,`Missing , or : between ${s} items`));let v=m?e(n,m,_,i):_.found?t(n,_.end,p,null,_,i):null;v?Xs(m)&&i(v.range,`BLOCK_IN_FLOW`,Ys):_.comment&&(g.comment?g.comment+=`
|
|
56
|
+
`+_.comment:g.comment=_.comment);let y=new Eo(g,v);if(n.options.keepSourceTokens&&(y.srcToken=l),o){let e=c;Ws(n,e.items,g)&&i(a,`DUPLICATE_KEY`,`Map keys must be unique`),e.items.push(y)}else{let e=new Mo(n.schema);e.flow=!0,e.items.push(y);let t=(v??g).range;e.range=[g.range[0],t[1],t[2]],c.items.push(e)}u=v?v.range[2]:_.end}}let d=o?`}`:`]`,[f,...p]=r.end,m=u;if(f?.source===d)m=f.offset+f.source.length;else{let e=s[0].toUpperCase()+s.substring(1),t=l?`${e} must end with a ${d}`:`${e} in block collection must be sufficiently indented and end with a ${d}`;i(u,l?`MISSING_CHAR`:`BAD_INDENT`,t),f&&f.source.length!==1&&p.unshift(f)}if(p.length>0){let e=Js(p,m,n.options.strict,i);e.comment&&(c.comment?c.comment+=`
|
|
57
|
+
`+e.comment:c.comment=e.comment),c.range=[r.offset,m,e.offset]}else c.range=[r.offset,m,m];return c}function Qs(e,t,n,r,i,a){let o=n.type===`block-map`?Ks(e,t,n,r,a):n.type===`block-seq`?qs(e,t,n,r,a):Zs(e,t,n,r,a),s=o.constructor;return i===`!`||i===s.tagName?(o.tag=s.tagName,o):(i&&(o.tag=i),o)}function $s(e,t,n,r,i){let a=r.tag,o=a?t.directives.tagName(a.source,e=>i(a,`TAG_RESOLVE_FAILED`,e)):null;if(n.type===`block-seq`){let{anchor:e,newlineAfterProp:t}=r,n=e&&a?e.offset>a.offset?e:a:e??a;n&&(!t||t.offset<n.offset)&&i(n,`MISSING_CHAR`,`Missing newline after block sequence props`)}let s=n.type===`block-map`?`map`:n.type===`block-seq`?`seq`:n.start.source===`{`?`map`:`seq`;if(!a||!o||o===`!`||o===Mo.tagName&&s===`map`||o===Po.tagName&&s===`seq`)return Qs(e,t,n,i,o);let c=t.schema.tags.find(e=>e.tag===o&&e.collection===s);if(!c){let r=t.schema.knownTags[o];if(r?.collection===s)t.schema.tags.push(Object.assign({},r,{default:!1})),c=r;else return r?i(a,`BAD_COLLECTION_TYPE`,`${r.tag} used for ${s} collection, but expects ${r.collection??`scalar`}`,!0):i(a,`TAG_RESOLVE_FAILED`,`Unresolved tag: ${o}`,!0),Qs(e,t,n,i,o)}let l=Qs(e,t,n,i,o,c),u=c.resolve?.(l,e=>i(a,`TAG_RESOLVE_FAILED`,e),t.options)??l,d=ma(u)?u:new za(u);return d.range=l.range,d.tag=o,c?.format&&(d.format=c.format),d}function ec(e,t,n){let r=t.offset,i=tc(t,e.options.strict,n);if(!i)return{value:``,type:null,comment:``,range:[r,r,r]};let a=i.mode===`>`?za.BLOCK_FOLDED:za.BLOCK_LITERAL,o=t.source?nc(t.source):[],s=o.length;for(let e=o.length-1;e>=0;--e){let t=o[e][1];if(t===``||t===`\r`)s=e;else break}if(s===0){let e=i.chomp===`+`&&o.length>0?`
|
|
58
|
+
`.repeat(Math.max(1,o.length-1)):``,n=r+i.length;return t.source&&(n+=t.source.length),{value:e,type:a,comment:i.comment,range:[r,n,n]}}let c=t.indent+i.indent,l=t.offset+i.length,u=0;for(let t=0;t<s;++t){let[r,a]=o[t];if(a===``||a===`\r`)i.indent===0&&r.length>c&&(c=r.length);else{r.length<c&&n(l+r.length,`MISSING_CHAR`,`Block scalars with more-indented leading empty lines must use an explicit indentation indicator`),i.indent===0&&(c=r.length),u=t,c===0&&!e.atRoot&&n(l,`BAD_INDENT`,`Block scalar values in collections must be indented`);break}l+=r.length+a.length+1}for(let e=o.length-1;e>=s;--e)o[e][0].length>c&&(s=e+1);let d=``,f=``,p=!1;for(let e=0;e<u;++e)d+=o[e][0].slice(c)+`
|
|
59
|
+
`;for(let e=u;e<s;++e){let[t,r]=o[e];l+=t.length+r.length+1;let s=r[r.length-1]===`\r`;if(s&&(r=r.slice(0,-1)),r&&t.length<c){let e=`Block scalar lines must not be less indented than their ${i.indent?`explicit indentation indicator`:`first line`}`;n(l-r.length-(s?2:1),`BAD_INDENT`,e),t=``}a===za.BLOCK_LITERAL?(d+=f+t.slice(c)+r,f=`
|
|
60
|
+
`):t.length>c||r[0]===` `?(f===` `?f=`
|
|
61
|
+
`:!p&&f===`
|
|
62
|
+
`&&(f=`
|
|
63
|
+
|
|
64
|
+
`),d+=f+t.slice(c)+r,f=`
|
|
65
|
+
`,p=!0):r===``?f===`
|
|
66
|
+
`?d+=`
|
|
67
|
+
`:f=`
|
|
68
|
+
`:(d+=f+r,f=` `,p=!1)}switch(i.chomp){case`-`:break;case`+`:for(let e=s;e<o.length;++e)d+=`
|
|
69
|
+
`+o[e][0].slice(c);d[d.length-1]!==`
|
|
70
|
+
`&&(d+=`
|
|
71
|
+
`);break;default:d+=`
|
|
72
|
+
`}let m=r+i.length+t.source.length;return{value:d,type:a,comment:i.comment,range:[r,m,m]}}function tc({offset:e,props:t},n,r){if(t[0].type!==`block-scalar-header`)return r(t[0],`IMPOSSIBLE`,`Block scalar header not found`),null;let{source:i}=t[0],a=i[0],o=0,s=``,c=-1;for(let t=1;t<i.length;++t){let n=i[t];if(!s&&(n===`-`||n===`+`))s=n;else{let r=Number(n);!o&&r?o=r:c===-1&&(c=e+t)}}c!==-1&&r(c,`UNEXPECTED_TOKEN`,`Block scalar header includes extra characters: ${i}`);let l=!1,u=``,d=i.length;for(let e=1;e<t.length;++e){let i=t[e];switch(i.type){case`space`:l=!0;case`newline`:d+=i.source.length;break;case`comment`:n&&!l&&r(i,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`),d+=i.source.length,u=i.source.substring(1);break;case`error`:r(i,`UNEXPECTED_TOKEN`,i.message),d+=i.source.length;break;default:{r(i,`UNEXPECTED_TOKEN`,`Unexpected token in block scalar header: ${i.type}`);let e=i.source;e&&typeof e==`string`&&(d+=e.length)}}}return{mode:a,indent:o,chomp:s,comment:u,length:d}}function nc(e){let t=e.split(/\n( *)/),n=t[0],r=n.match(/^( *)/),i=[r?.[1]?[r[1],n.slice(r[1].length)]:[``,n]];for(let e=1;e<t.length;e+=2)i.push([t[e],t[e+1]]);return i}function rc(e,t,n){let{offset:r,type:i,source:a,end:o}=e,s,c,l=(e,t,i)=>n(r+e,t,i);switch(i){case`scalar`:s=za.PLAIN,c=ic(a,l);break;case`single-quoted-scalar`:s=za.QUOTE_SINGLE,c=ac(a,l);break;case`double-quoted-scalar`:s=za.QUOTE_DOUBLE,c=sc(a,l);break;default:return n(e,`UNEXPECTED_TOKEN`,`Expected a flow scalar value, but found: ${i}`),{value:``,type:null,comment:``,range:[r,r+a.length,r+a.length]}}let u=r+a.length,d=Js(o,u,t,n);return{value:c,type:s,comment:d.comment,range:[r,u,d.offset]}}function ic(e,t){let n=``;switch(e[0]){case` `:n=`a tab character`;break;case`,`:n=`flow indicator character ,`;break;case`%`:n=`directive indicator character %`;break;case`|`:case`>`:n=`block scalar indicator ${e[0]}`;break;case`@`:case"`":n=`reserved character ${e[0]}`;break}return n&&t(0,`BAD_SCALAR_START`,`Plain value cannot start with ${n}`),oc(e)}function ac(e,t){return(e[e.length-1]!==`'`||e.length===1)&&t(e.length,`MISSING_CHAR`,`Missing closing 'quote`),oc(e.slice(1,-1)).replace(/''/g,`'`)}function oc(e){let t,n;try{t=RegExp(`(.*?)(?<![ ])[ ]*\r?
|
|
73
|
+
`,`sy`),n=RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
|
|
74
|
+
`,`sy`)}catch{t=/(.*?)[ \t]*\r?\n/sy,n=/[ \t]*(.*?)[ \t]*\r?\n/sy}let r=t.exec(e);if(!r)return e;let i=r[1],a=` `,o=t.lastIndex;for(n.lastIndex=o;r=n.exec(e);)r[1]===``?a===`
|
|
75
|
+
`?i+=a:a=`
|
|
76
|
+
`:(i+=a+r[1],a=` `),o=n.lastIndex;let s=/[ \t]*(.*)/sy;return s.lastIndex=o,r=s.exec(e),i+a+(r?.[1]??``)}function sc(e,t){let n=``;for(let r=1;r<e.length-1;++r){let i=e[r];if(!(i===`\r`&&e[r+1]===`
|
|
77
|
+
`))if(i===`
|
|
78
|
+
`){let{fold:t,offset:i}=cc(e,r);n+=t,r=i}else if(i===`\\`){let i=e[++r],a=lc[i];if(a)n+=a;else if(i===`
|
|
79
|
+
`)for(i=e[r+1];i===` `||i===` `;)i=e[++r+1];else if(i===`\r`&&e[r+1]===`
|
|
80
|
+
`)for(i=e[++r+1];i===` `||i===` `;)i=e[++r+1];else if(i===`x`||i===`u`||i===`U`){let a=i===`x`?2:i===`u`?4:8;n+=uc(e,r+1,a,t),r+=a}else{let i=e.substr(r-1,2);t(r-1,`BAD_DQ_ESCAPE`,`Invalid escape sequence ${i}`),n+=i}}else if(i===` `||i===` `){let t=r,a=e[r+1];for(;a===` `||a===` `;)a=e[++r+1];a!==`
|
|
81
|
+
`&&!(a===`\r`&&e[r+2]===`
|
|
82
|
+
`)&&(n+=r>t?e.slice(t,r+1):i)}else n+=i}return(e[e.length-1]!==`"`||e.length===1)&&t(e.length,`MISSING_CHAR`,`Missing closing "quote`),n}function cc(e,t){let n=``,r=e[t+1];for(;(r===` `||r===` `||r===`
|
|
83
|
+
`||r===`\r`)&&!(r===`\r`&&e[t+2]!==`
|
|
84
|
+
`);)r===`
|
|
85
|
+
`&&(n+=`
|
|
86
|
+
`),t+=1,r=e[t+1];return n||=` `,{fold:n,offset:t}}var lc={0:`\0`,a:`\x07`,b:`\b`,e:`\x1B`,f:`\f`,n:`
|
|
87
|
+
`,r:`\r`,t:` `,v:`\v`,N:`
`,_:`\xA0`,L:`\u2028`,P:`\u2029`," ":` `,'"':`"`,"/":`/`,"\\":`\\`," ":` `};function uc(e,t,n,r){let i=e.substr(t,n),a=i.length===n&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;try{return String.fromCodePoint(a)}catch{let i=e.substr(t-2,n+2);return r(t-2,`BAD_DQ_ESCAPE`,`Invalid escape sequence ${i}`),i}}function dc(e,t,n,r){let{value:i,type:a,comment:o,range:s}=t.type===`block-scalar`?ec(e,t,r):rc(t,e.options.strict,r),c=n?e.directives.tagName(n.source,e=>r(n,`TAG_RESOLVE_FAILED`,e)):null,l;l=e.options.stringKeys&&e.atKey?e.schema[ia]:c?fc(e.schema,i,c,n,r):t.type===`scalar`?pc(e,i,t,r):e.schema[ia];let u;try{let a=l.resolve(i,e=>r(n??t,`TAG_RESOLVE_FAILED`,e),e.options);u=da(a)?a:new za(a)}catch(e){let a=e instanceof Error?e.message:String(e);r(n??t,`TAG_RESOLVE_FAILED`,a),u=new za(i)}return u.range=s,u.source=i,a&&(u.type=a),c&&(u.tag=c),l.format&&(u.format=l.format),o&&(u.comment=o),u}function fc(e,t,n,r,i){if(n===`!`)return e[ia];let a=[];for(let t of e.tags)if(!t.collection&&t.tag===n)if(t.default&&t.test)a.push(t);else return t;for(let e of a)if(e.test?.test(t))return e;let o=e.knownTags[n];return o&&!o.collection?(e.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(i(r,`TAG_RESOLVE_FAILED`,`Unresolved tag: ${n}`,n!==`tag:yaml.org,2002:str`),e[ia])}function pc({atKey:e,directives:t,schema:n},r,i,a){let o=n.tags.find(t=>(t.default===!0||e&&t.default===`key`)&&t.test?.test(r))||n[ia];if(n.compat){let e=n.compat.find(e=>e.default&&e.test?.test(r))??n[ia];o.tag!==e.tag&&a(i,`TAG_RESOLVE_FAILED`,`Value may be parsed as either ${t.tagString(o.tag)} or ${t.tagString(e.tag)}`,!0)}return o}function mc(e,t,n){if(t){n??=t.length;for(let r=n-1;r>=0;--r){let n=t[r];switch(n.type){case`space`:case`comment`:case`newline`:e-=n.source.length;continue}for(n=t[++r];n?.type===`space`;)e+=n.source.length,n=t[++r];break}}return e}var hc={composeNode:gc,composeEmptyNode:_c};function gc(e,t,n,r){let i=e.atKey,{spaceBefore:a,comment:o,anchor:s,tag:c}=n,l,u=!0;switch(t.type){case`alias`:l=vc(e,t,r),(s||c)&&r(t,`ALIAS_PROPS`,`An alias node must not specify any properties`);break;case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:case`block-scalar`:l=dc(e,t,c,r),s&&(l.anchor=s.source.substring(1));break;case`block-map`:case`block-seq`:case`flow-collection`:try{l=$s(hc,e,t,n,r),s&&(l.anchor=s.source.substring(1))}catch(e){r(t,`RESOURCE_EXHAUSTION`,e instanceof Error?e.message:String(e))}break;default:r(t,`UNEXPECTED_TOKEN`,t.type===`error`?t.message:`Unsupported token (type: ${t.type})`),u=!1}return l??=_c(e,t.offset,void 0,null,n,r),s&&l.anchor===``&&r(s,`BAD_ALIAS`,`Anchor cannot be an empty string`),i&&e.options.stringKeys&&(!da(l)||typeof l.value!=`string`||l.tag&&l.tag!==`tag:yaml.org,2002:str`)&&r(c??t,`NON_STRING_KEY`,`With stringKeys, all keys must be strings`),a&&(l.spaceBefore=!0),o&&(t.type===`scalar`&&t.source===``?l.comment=o:l.commentBefore=o),e.options.keepSourceTokens&&u&&(l.srcToken=t),l}function _c(e,t,n,r,{spaceBefore:i,comment:a,anchor:o,tag:s,end:c},l){let u=dc(e,{type:`scalar`,offset:mc(t,n,r),indent:-1,source:``},s,l);return o&&(u.anchor=o.source.substring(1),u.anchor===``&&l(o,`BAD_ALIAS`,`Anchor cannot be an empty string`)),i&&(u.spaceBefore=!0),a&&(u.comment=a,u.range[2]=c),u}function vc({options:e},{offset:t,source:n,end:r},i){let a=new Ia(n.substring(1));a.source===``&&i(t,`BAD_ALIAS`,`Alias cannot be an empty string`),a.source.endsWith(`:`)&&i(t+n.length-1,`BAD_ALIAS`,`Alias ending in : is ambiguous`,!0);let o=t+n.length,s=Js(r,o,e.strict,i);return a.range=[t,o,s.offset],s.comment&&(a.comment=s.comment),a}function yc(e,t,{offset:n,start:r,value:i,end:a},o){let s=new Fs(void 0,Object.assign({_directives:t},e)),c={atKey:!1,atRoot:!0,directives:s.directives,options:s.options,schema:s.schema},l=Vs(r,{indicator:`doc-start`,next:i??a?.[0],offset:n,onError:o,parentIndent:0,startOnNewline:!0});l.found&&(s.directives.docStart=!0,i&&(i.type===`block-map`||i.type===`block-seq`)&&!l.hasNewline&&o(l.end,`MISSING_CHAR`,`Block collection cannot start on same line with directives-end marker`)),s.contents=i?gc(c,i,l,o):_c(c,l.end,r,null,l,o);let u=s.contents.range[2],d=Js(a,u,!1,o);return d.comment&&(s.comment=d.comment),s.range=[n,u,d.offset],s}function bc(e){if(typeof e==`number`)return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];let{offset:t,source:n}=e;return[t,t+(typeof n==`string`?n.length:1)]}function xc(e){let t=``,n=!1,r=!1;for(let i=0;i<e.length;++i){let a=e[i];switch(a[0]){case`#`:t+=(t===``?``:r?`
|
|
88
|
+
|
|
89
|
+
`:`
|
|
90
|
+
`)+(a.substring(1)||` `),n=!0,r=!1;break;case`%`:e[i+1]?.[0]!==`#`&&(i+=1),n=!1;break;default:n||(r=!0),n=!1}}return{comment:t,afterEmptyLine:r}}var Sc=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(e,t,n,r)=>{let i=bc(e);r?this.warnings.push(new zs(i,t,n)):this.errors.push(new Rs(i,t,n))},this.directives=new Oa({version:e.version||`1.2`}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:r}=xc(this.prelude);if(n){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}\n${n}`:n;else if(r||e.directives.docStart||!i)e.commentBefore=n;else if(pa(i)&&!i.flow&&i.items.length>0){let e=i.items[0];ua(e)&&(e=e.key);let t=e.commentBefore;e.commentBefore=t?`${n}\n${t}`:n}else{let e=i.commentBefore;i.commentBefore=e?`${n}\n${e}`:n}}if(t){for(let t=0;t<this.errors.length;++t)e.errors.push(this.errors[t]);for(let t=0;t<this.warnings.length;++t)e.warnings.push(this.warnings[t])}else e.errors=this.errors,e.warnings=this.warnings;this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:xc(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,n=-1){for(let t of e)yield*this.next(t);yield*this.end(t,n)}*next(e){switch(e.type){case`directive`:this.directives.add(e.source,(t,n,r)=>{let i=bc(e);i[0]+=t,this.onError(i,`BAD_DIRECTIVE`,n,r)}),this.prelude.push(e.source),this.atDirectives=!0;break;case`document`:{let t=yc(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,`MISSING_CHAR`,`Missing directives-end/doc-start indicator line`),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case`byte-order-mark`:case`space`:break;case`comment`:case`newline`:this.prelude.push(e.source);break;case`error`:{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,n=new Rs(bc(e),`UNEXPECTED_TOKEN`,t);this.atDirectives||!this.doc?this.errors.push(n):this.doc.errors.push(n);break}case`doc-end`:{if(!this.doc){this.errors.push(new Rs(bc(e),`UNEXPECTED_TOKEN`,`Unexpected doc-end without preceding document`));break}this.doc.directives.docEnd=!0;let t=Js(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let e=this.doc.comment;this.doc.comment=e?`${e}\n${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new Rs(bc(e),`UNEXPECTED_TOKEN`,`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let e=new Fs(void 0,Object.assign({_directives:this.directives},this.options));this.atDirectives&&this.onError(t,`MISSING_CHAR`,`Missing directives-end indicator line`),e.range=[0,t,t],this.decorate(e,!1),yield e}}},Cc=Symbol(`break visit`),wc=Symbol(`skip children`),Tc=Symbol(`remove item`);function Ec(e,t){`type`in e&&e.type===`document`&&(e={start:e.start,value:e.value}),Dc(Object.freeze([]),e,t)}Ec.BREAK=Cc,Ec.SKIP=wc,Ec.REMOVE=Tc,Ec.itemAtPath=(e,t)=>{let n=e;for(let[e,r]of t){let t=n?.[e];if(t&&`items`in t)n=t.items[r];else return}return n},Ec.parentCollection=(e,t)=>{let n=Ec.itemAtPath(e,t.slice(0,-1)),r=t[t.length-1][0],i=n?.[r];if(i&&`items`in i)return i;throw Error(`Parent collection not found`)};function Dc(e,t,n){let r=n(t,e);if(typeof r==`symbol`)return r;for(let i of[`key`,`value`]){let a=t[i];if(a&&`items`in a){for(let t=0;t<a.items.length;++t){let r=Dc(Object.freeze(e.concat([[i,t]])),a.items[t],n);if(typeof r==`number`)t=r-1;else if(r===Cc)return Cc;else r===Tc&&(a.items.splice(t,1),--t)}typeof r==`function`&&i===`key`&&(r=r(t,e))}}return typeof r==`function`?r(t,e):r}function Oc(e){switch(e){case``:return`byte-order-mark`;case``:return`doc-mode`;case``:return`flow-error-end`;case``:return`scalar`;case`---`:return`doc-start`;case`...`:return`doc-end`;case``:case`
|
|
91
|
+
`:case`\r
|
|
92
|
+
`:return`newline`;case`-`:return`seq-item-ind`;case`?`:return`explicit-key-ind`;case`:`:return`map-value-ind`;case`{`:return`flow-map-start`;case`}`:return`flow-map-end`;case`[`:return`flow-seq-start`;case`]`:return`flow-seq-end`;case`,`:return`comma`}switch(e[0]){case` `:case` `:return`space`;case`#`:return`comment`;case`%`:return`directive-line`;case`*`:return`alias`;case`&`:return`anchor`;case`!`:return`tag`;case`'`:return`single-quoted-scalar`;case`"`:return`double-quoted-scalar`;case`|`:case`>`:return`block-scalar-header`}return null}function kc(e){switch(e){case void 0:case` `:case`
|
|
93
|
+
`:case`\r`:case` `:return!0;default:return!1}}var Ac=new Set(`0123456789ABCDEFabcdef`),jc=new Set(`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()`),Mc=new Set(`,[]{}`),Nc=new Set(` ,[]{}
|
|
94
|
+
\r `),Pc=e=>!e||Nc.has(e),Fc=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer=``,this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){if(e){if(typeof e!=`string`)throw TypeError(`source is not a string`);this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let n=this.next??`stream`;for(;n&&(t||this.hasChars(1));)n=yield*this.parseNext(n)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===` `||t===` `;)t=this.buffer[++e];return!t||t===`#`||t===`
|
|
95
|
+
`?!0:t===`\r`?this.buffer[e+1]===`
|
|
96
|
+
`:!1}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let n=0;for(;t===` `;)t=this.buffer[++n+e];if(t===`\r`){let t=this.buffer[n+e+1];if(t===`
|
|
97
|
+
`||!t&&!this.atEnd)return e+n+1}return t===`
|
|
98
|
+
`||n>=this.indentNext||!t&&!this.atEnd?e+n:-1}if(t===`-`||t===`.`){let t=this.buffer.substr(e,3);if((t===`---`||t===`...`)&&kc(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!=`number`||e!==-1&&e<this.pos)&&(e=this.buffer.indexOf(`
|
|
99
|
+
`,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]===`\r`&&--e,this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case`stream`:return yield*this.parseStream();case`line-start`:return yield*this.parseLineStart();case`block-start`:return yield*this.parseBlockStart();case`doc`:return yield*this.parseDocument();case`flow`:return yield*this.parseFlowCollection();case`quoted-scalar`:return yield*this.parseQuotedScalar();case`block-scalar`:return yield*this.parseBlockScalar();case`plain-scalar`:return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext(`stream`);if(e[0]===``&&(yield*this.pushCount(1),e=e.substring(1)),e[0]===`%`){let t=e.length,n=e.indexOf(`#`);for(;n!==-1;){let r=e[n-1];if(r===` `||r===` `){t=n-1;break}else n=e.indexOf(`#`,n+1)}for(;;){let n=e[t-1];if(n===` `||n===` `)--t;else break}let r=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-r),this.pushNewline(),`stream`}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),`stream`}return yield``,yield*this.parseLineStart()}*parseLineStart(){let e=this.charAt(0);if(!e&&!this.atEnd)return this.setNext(`line-start`);if(e===`-`||e===`.`){if(!this.atEnd&&!this.hasChars(4))return this.setNext(`line-start`);let e=this.peek(3);if((e===`---`||e===`...`)&&kc(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,e===`---`?`doc`:`stream`}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!kc(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext(`block-start`);if((e===`-`||e===`?`||e===`:`)&&kc(t)){let e=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=e,`block-start`}return`doc`}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext(`doc`);let t=yield*this.pushIndicators();switch(e[t]){case`#`:yield*this.pushCount(e.length-t);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case`{`:case`[`:return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,`flow`;case`}`:case`]`:return yield*this.pushCount(1),`doc`;case`*`:return yield*this.pushUntil(Pc),`doc`;case`"`:case`'`:return yield*this.parseQuotedScalar();case`|`:case`>`:return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,n=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=n=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let r=this.getLine();if(r===null)return this.setNext(`flow`);if((n!==-1&&n<this.indentNext&&r[0]!==`#`||n===0&&(r.startsWith(`---`)||r.startsWith(`...`))&&kc(r[3]))&&!(n===this.indentNext-1&&this.flowLevel===1&&(r[0]===`]`||r[0]===`}`)))return this.flowLevel=0,yield``,yield*this.parseLineStart();let i=0;for(;r[i]===`,`;)i+=yield*this.pushCount(1),i+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(i+=yield*this.pushIndicators(),r[i]){case void 0:return`flow`;case`#`:return yield*this.pushCount(r.length-i),`flow`;case`{`:case`[`:return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,`flow`;case`}`:case`]`:return yield*this.pushCount(1),this.flowKey=!0,--this.flowLevel,this.flowLevel?`flow`:`doc`;case`*`:return yield*this.pushUntil(Pc),`flow`;case`"`:case`'`:return this.flowKey=!0,yield*this.parseQuotedScalar();case`:`:{let e=this.charAt(1);if(this.flowKey||kc(e)||e===`,`)return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),`flow`}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let e=this.charAt(0),t=this.buffer.indexOf(e,this.pos+1);if(e===`'`)for(;t!==-1&&this.buffer[t+1]===`'`;)t=this.buffer.indexOf(`'`,t+2);else for(;t!==-1;){let e=0;for(;this.buffer[t-1-e]===`\\`;)e+=1;if(e%2==0)break;t=this.buffer.indexOf(`"`,t+1)}let n=this.buffer.substring(0,t),r=n.indexOf(`
|
|
100
|
+
`,this.pos);if(r!==-1){for(;r!==-1;){let e=this.continueScalar(r+1);if(e===-1)break;r=n.indexOf(`
|
|
101
|
+
`,e)}r!==-1&&(t=r-(n[r-1]===`\r`?2:1))}if(t===-1){if(!this.atEnd)return this.setNext(`quoted-scalar`);t=this.buffer.length}return yield*this.pushToIndex(t+1,!1),this.flowLevel?`flow`:`doc`}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){let t=this.buffer[++e];if(t===`+`)this.blockScalarKeep=!0;else if(t>`0`&&t<=`9`)this.blockScalarIndent=Number(t)-1;else if(t!==`-`)break}return yield*this.pushUntil(e=>kc(e)||e===`#`)}*parseBlockScalar(){let e=this.pos-1,t=0,n;loop:for(let r=this.pos;n=this.buffer[r];++r)switch(n){case` `:t+=1;break;case`
|
|
102
|
+
`:e=r,t=0;break;case`\r`:{let e=this.buffer[r+1];if(!e&&!this.atEnd)return this.setNext(`block-scalar`);if(e===`
|
|
103
|
+
`)break}default:break loop}if(!n&&!this.atEnd)return this.setNext(`block-scalar`);if(t>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=t:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let t=this.continueScalar(e+1);if(t===-1)break;e=this.buffer.indexOf(`
|
|
104
|
+
`,t)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext(`block-scalar`);e=this.buffer.length}}let r=e+1;for(n=this.buffer[r];n===` `;)n=this.buffer[++r];if(n===` `){for(;n===` `||n===` `||n===`\r`||n===`
|
|
105
|
+
`;)n=this.buffer[++r];e=r-1}else if(!this.blockScalarKeep)do{let n=e-1,r=this.buffer[n];r===`\r`&&(r=this.buffer[--n]);let i=n;for(;r===` `;)r=this.buffer[--n];if(r===`
|
|
106
|
+
`&&n>=this.pos&&n+1+t>i)e=n;else break}while(!0);return yield``,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,n=this.pos-1,r;for(;r=this.buffer[++n];)if(r===`:`){let r=this.buffer[n+1];if(kc(r)||e&&Mc.has(r))break;t=n}else if(kc(r)){let i=this.buffer[n+1];if(r===`\r`&&(i===`
|
|
107
|
+
`?(n+=1,r=`
|
|
108
|
+
`,i=this.buffer[n+1]):t=n),i===`#`||e&&Mc.has(i))break;if(r===`
|
|
109
|
+
`){let e=this.continueScalar(n+1);if(e===-1)break;n=Math.max(n,e-2)}}else{if(e&&Mc.has(r))break;t=n}return!r&&!this.atEnd?this.setNext(`plain-scalar`):(yield``,yield*this.pushToIndex(t+1,!0),e?`flow`:`doc`)}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let n=this.buffer.slice(this.pos,e);return n?(yield n,this.pos+=n.length,n.length):(t&&(yield``),0)}*pushIndicators(){let e=0;loop:for(;;){switch(this.charAt(0)){case`!`:e+=yield*this.pushTag(),e+=yield*this.pushSpaces(!0);continue loop;case`&`:e+=yield*this.pushUntil(Pc),e+=yield*this.pushSpaces(!0);continue loop;case`-`:case`?`:case`:`:{let t=this.flowLevel>0,n=this.charAt(1);if(kc(n)||t&&Mc.has(n)){t?this.flowKey&&=!1:this.indentNext=this.indentValue+1,e+=yield*this.pushCount(1),e+=yield*this.pushSpaces(!0);continue loop}}}break loop}return e}*pushTag(){if(this.charAt(1)===`<`){let e=this.pos+2,t=this.buffer[e];for(;!kc(t)&&t!==`>`;)t=this.buffer[++e];return yield*this.pushToIndex(t===`>`?e+1:e,!1)}else{let e=this.pos+1,t=this.buffer[e];for(;t;)if(jc.has(t))t=this.buffer[++e];else if(t===`%`&&Ac.has(this.buffer[e+1])&&Ac.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
|
|
110
|
+
`?yield*this.pushCount(1):e===`\r`&&this.charAt(1)===`
|
|
111
|
+
`?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,n;do n=this.buffer[++t];while(n===` `||e&&n===` `);let r=t-this.pos;return r>0&&(yield this.buffer.substr(this.pos,r),this.pos=t),r}*pushUntil(e){let t=this.pos,n=this.buffer[t];for(;!e(n);)n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}},Ic=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,n=this.lineStarts.length;for(;t<n;){let r=t+n>>1;this.lineStarts[r]<e?t=r+1:n=r}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let r=this.lineStarts[t-1];return{line:t,col:e-r+1}}}};function Lc(e,t){for(let n=0;n<e.length;++n)if(e[n].type===t)return!0;return!1}function Rc(e){for(let t=0;t<e.length;++t)switch(e[t].type){case`space`:case`comment`:case`newline`:break;default:return t}return-1}function zc(e){switch(e?.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:case`flow-collection`:return!0;default:return!1}}function Bc(e){switch(e.type){case`document`:return e.start;case`block-map`:{let t=e.items[e.items.length-1];return t.sep??t.start}case`block-seq`:return e.items[e.items.length-1].start;default:return[]}}function Vc(e){if(e.length===0)return[];let t=e.length;loop:for(;--t>=0;)switch(e[t].type){case`doc-start`:case`explicit-key-ind`:case`map-value-ind`:case`seq-item-ind`:case`newline`:break loop}for(;e[++t]?.type===`space`;);return e.splice(t,e.length)}function Hc(e,t){if(t.length<1e5)Array.prototype.push.apply(e,t);else for(let n=0;n<t.length;++n)e.push(t[n])}function Uc(e){if(e.start.type===`flow-seq-start`)for(let t of e.items)t.sep&&!t.value&&!Lc(t.start,`explicit-key-ind`)&&!Lc(t.sep,`map-value-ind`)&&(t.key&&(t.value=t.key),delete t.key,zc(t.value)?t.value.end?Hc(t.value.end,t.sep):t.value.end=t.sep:Hc(t.start,t.sep),delete t.sep)}var Wc=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source=``,this.type=``,this.lexer=new Fc,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let n of this.lexer.lex(e,t))yield*this.next(n);t||(yield*this.end())}*next(e){if(this.source=e,this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=Oc(e);if(!t){let t=`Not a YAML token: ${e}`;yield*this.pop({type:`error`,offset:this.offset,message:t,source:e}),this.offset+=e.length}else if(t===`scalar`)this.atNewLine=!1,this.atScalar=!0,this.type=`scalar`;else{switch(this.type=t,yield*this.step(),t){case`newline`:this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case`space`:this.atNewLine&&e[0]===` `&&(this.indent+=e.length);break;case`explicit-key-ind`:case`map-value-ind`:case`seq-item-ind`:this.atNewLine&&(this.indent+=e.length);break;case`doc-mode`:case`flow-error-end`:return;default:this.atNewLine=!1}this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type===`doc-end`&&e?.type!==`doc-end`){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:`doc-end`,offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case`document`:return yield*this.document(e);case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return yield*this.scalar(e);case`block-scalar`:return yield*this.blockScalar(e);case`block-map`:return yield*this.blockMap(e);case`block-seq`:return yield*this.blockSequence(e);case`flow-collection`:return yield*this.flowCollection(e);case`doc-end`:return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(!t)yield{type:`error`,offset:this.offset,source:``,message:`Tried to pop an empty stack`};else if(this.stack.length===0)yield t;else{let e=this.peek(1);switch(t.type===`block-scalar`?t.indent=`indent`in e?e.indent:0:t.type===`flow-collection`&&e.type===`document`&&(t.indent=0),t.type===`flow-collection`&&Uc(t),e.type){case`document`:e.value=t;break;case`block-scalar`:e.props.push(t);break;case`block-map`:{let n=e.items[e.items.length-1];if(n.value){e.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(n.sep)n.value=t;else{Object.assign(n,{key:t,sep:[]}),this.onKeyLine=!n.explicitKey;return}break}case`block-seq`:{let n=e.items[e.items.length-1];n.value?e.items.push({start:[],value:t}):n.value=t;break}case`flow-collection`:{let n=e.items[e.items.length-1];!n||n.value?e.items.push({start:[],key:t,sep:[]}):n.sep?n.value=t:Object.assign(n,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((e.type===`document`||e.type===`block-map`||e.type===`block-seq`)&&(t.type===`block-map`||t.type===`block-seq`)){let n=t.items[t.items.length-1];n&&!n.sep&&!n.value&&n.start.length>0&&Rc(n.start)===-1&&(t.indent===0||n.start.every(e=>e.type!==`comment`||e.indent<t.indent))&&(e.type===`document`?e.end=n.start:e.items.push({start:n.start}),t.items.splice(-1,1))}}}*stream(){switch(this.type){case`directive-line`:yield{type:`directive`,offset:this.offset,source:this.source};return;case`byte-order-mark`:case`space`:case`comment`:case`newline`:yield this.sourceToken;return;case`doc-mode`:case`doc-start`:{let e={type:`document`,offset:this.offset,start:[]};this.type===`doc-start`&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:`error`,offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case`doc-start`:Rc(e.start)===-1?e.start.push(this.sourceToken):(yield*this.pop(),yield*this.step());return;case`anchor`:case`tag`:case`space`:case`comment`:case`newline`:e.start.push(this.sourceToken);return}let t=this.startBlockValue(e);t?this.stack.push(t):yield{type:`error`,offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type===`map-value-ind`){let t=Vc(Bc(this.peek(2))),n;e.end?(n=e.end,n.push(this.sourceToken),delete e.end):n=[this.sourceToken];let r={type:`block-map`,offset:e.offset,indent:e.indent,items:[{start:t,key:e,sep:n}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=r}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case`space`:case`comment`:case`newline`:e.props.push(this.sourceToken);return;case`scalar`:if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let e=this.source.indexOf(`
|
|
112
|
+
`)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
|
|
113
|
+
`,e)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case`newline`:if(this.onKeyLine=!1,t.value){let n=`end`in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type===`comment`?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`space`:case`comment`:if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){Hc(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let n=!this.onKeyLine&&this.indent===e.indent,r=n&&(t.sep||t.explicitKey)&&this.type!==`seq-item-ind`,i=[];if(r&&t.sep&&!t.value){let n=[];for(let r=0;r<t.sep.length;++r){let i=t.sep[r];switch(i.type){case`newline`:n.push(r);break;case`space`:break;case`comment`:i.indent>e.indent&&(n.length=0);break;default:n.length=0}}n.length>=2&&(i=t.sep.splice(n[1]))}switch(this.type){case`anchor`:case`tag`:r||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`explicit-key-ind`:!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):r||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case`map-value-ind`:if(t.explicitKey)if(!t.sep)if(Lc(t.start,`newline`))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let e=Vc(t.start);this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:e,key:null,sep:[this.sourceToken]}]})}else if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Lc(t.sep,`map-value-ind`))this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if(zc(t.key)&&!Lc(t.sep,`newline`)){let e=Vc(t.start),n=t.key,r=t.sep;r.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:e,key:n,sep:r}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken);else t.sep?t.value||r?e.items.push({start:i,key:null,sep:[this.sourceToken]}):Lc(t.sep,`map-value-ind`)?this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:{let n=this.flowScalar(this.type);r||t.value?(e.items.push({start:i,key:n,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(n):(Object.assign(t,{key:n,sep:[]}),this.onKeyLine=!0);return}default:{let r=this.startBlockValue(e);if(r){if(r.type===`block-seq`){if(!t.explicitKey&&t.sep&&!Lc(t.sep,`newline`)){yield*this.pop({type:`error`,offset:this.offset,message:`Unexpected block-seq-ind on same line with key`,source:this.source});return}}else n&&e.items.push({start:i});this.stack.push(r);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case`newline`:if(t.value){let n=`end`in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type===`comment`?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case`space`:case`comment`:if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){Hc(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case`anchor`:case`tag`:if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case`seq-item-ind`:if(this.indent!==e.indent)break;t.value||Lc(t.start,`seq-item-ind`)?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let t=this.startBlockValue(e);if(t){this.stack.push(t);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type===`flow-error-end`){let e;do yield*this.pop(),e=this.peek(1);while(e?.type===`flow-collection`)}else if(e.end.length===0){switch(this.type){case`comma`:case`explicit-key-ind`:!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case`map-value-ind`:!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case`space`:case`comment`:case`newline`:case`anchor`:case`tag`:!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:{let n=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:n,sep:[]}):t.sep?this.stack.push(n):Object.assign(t,{key:n,sep:[]});return}case`flow-map-end`:case`flow-seq-end`:e.end.push(this.sourceToken);return}let n=this.startBlockValue(e);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let t=this.peek(2);if(t.type===`block-map`&&(this.type===`map-value-ind`&&t.indent===e.indent||this.type===`newline`&&!t.items[t.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type===`map-value-ind`&&t.type!==`flow-collection`){let n=Vc(Bc(t));Uc(e);let r=e.end.splice(1,e.end.length);r.push(this.sourceToken);let i={type:`block-map`,offset:e.offset,indent:e.indent,items:[{start:n,key:e,sep:r}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let e=this.source.indexOf(`
|
|
114
|
+
`)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
|
|
115
|
+
`,e)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return this.flowScalar(this.type);case`block-scalar-header`:return{type:`block-scalar`,offset:this.offset,indent:this.indent,props:[this.sourceToken],source:``};case`flow-map-start`:case`flow-seq-start`:return{type:`flow-collection`,offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case`seq-item-ind`:return{type:`block-seq`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case`explicit-key-ind`:{this.onKeyLine=!0;let t=Vc(Bc(e));return t.push(this.sourceToken),{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,explicitKey:!0}]}}case`map-value-ind`:{this.onKeyLine=!0;let t=Vc(Bc(e));return{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!==`comment`||this.indent<=t?!1:e.every(e=>e.type===`newline`||e.type===`space`)}*documentEnd(e){this.type!==`doc-mode`&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case`comma`:case`doc-start`:case`doc-end`:case`flow-seq-end`:case`flow-map-end`:case`map-value-ind`:yield*this.pop(),yield*this.step();break;case`newline`:this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop())}}};function Gc(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new Ic||null,prettyErrors:t}}function Kc(e,t={}){let{lineCounter:n,prettyErrors:r}=Gc(t),i=new Wc(n?.addNewLine),a=new Sc(t),o=null;for(let t of a.compose(i.parse(e),!0,e.length))if(!o)o=t;else if(o.options.logLevel!==`silent`){o.errors.push(new Rs(t.range.slice(0,2),`MULTIPLE_DOCS`,`Source contains multiple documents; please use YAML.parseAllDocuments()`));break}return r&&n&&(o.errors.forEach(Bs(e,n)),o.warnings.forEach(Bs(e,n))),o}function qc(e,t,n){let r;typeof t==`function`?r=t:n===void 0&&t&&typeof t==`object`&&(n=t);let i=Kc(e,n);if(!i)return null;if(i.warnings.forEach(e=>go(i.options.logLevel,e)),i.errors.length>0){if(i.options.logLevel!==`silent`)throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:r},n))}function Jc(e,t,n){let r=null;if(typeof t==`function`||Array.isArray(t)?r=t:n===void 0&&t&&(n=t),typeof n==`string`&&(n=n.length),typeof n==`number`){let e=Math.round(n);n=e<1?void 0:e>8?{indent:8}:{indent:e}}if(e===void 0){let{keepUndefined:e}=n??t??{};if(!e)return}return ca(e)&&!r?e.toString(n):new Fs(e,r,n).toString(n)}var Yc=[{id:`every-15-minutes`,label:`Every 15 minutes`,cron:`*/15 * * * *`},{id:`every-hour`,label:`Every hour`,cron:`0 * * * *`},{id:`daily`,label:`Daily at…`,cron:null},{id:`weekly`,label:`Weekly on…`,cron:null},{id:`monthly`,label:`Monthly on day…`,cron:null},{id:`advanced`,label:`Advanced (cron)`,cron:null}];function Xc(e){let t=e.trim();return t===`*/15 * * * *`?`every-15-minutes`:t===`0 * * * *`?`every-hour`:/^0 \d{1,2} \* \* \*$/.test(t)?`daily`:/^0 \d{1,2} \* \* [0-6]$/.test(t)?`weekly`:/^0 \d{1,2} ([1-9]|[12]\d|3[01]) \* \*$/.test(t)?`monthly`:`advanced`}function Zc(e){let t=e.trim().match(/^0 (\d{1,2})/),n=t?parseInt(t[1]??`0`,10):0;return Number.isNaN(n)?0:Math.min(23,Math.max(0,n))}function Qc(e){let t=e.trim().match(/^0 \d{1,2} \* \* (\d)$/),n=t?parseInt(t[1]??`0`,10):0;return Number.isNaN(n)?0:Math.min(6,Math.max(0,n))}function $c(e){let t=e.trim().match(/^0 \d{1,2} (\d{1,2}) \* \*$/),n=t?parseInt(t[1]??`1`,10):1;return Number.isNaN(n)?1:Math.min(31,Math.max(1,n))}function el(e,t,n,r,i){switch(e){case`every-15-minutes`:return`*/15 * * * *`;case`every-hour`:return`0 * * * *`;case`daily`:return`0 ${t} * * *`;case`weekly`:return`0 ${t} * * ${n}`;case`monthly`:return`0 ${t} ${r} * *`;default:return i}}var tl=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`];function nl(e,t,n,r,i){let a=`${(e=>String(e).padStart(2,`0`))(t)}:00`;switch(e){case`every-15-minutes`:return`Runs every 15 minutes`;case`every-hour`:return`Runs at the start of every hour`;case`daily`:return`Runs daily at ${a}`;case`weekly`:return`Runs every ${tl[n]??`Sunday`} at ${a}`;case`monthly`:return`Runs on day ${r} of every month at ${a}`;case`advanced`:return i.trim()?rl(i)||`Runs on schedule: ${i.trim()}`:`Enter a valid cron expression`;default:return``}}function rl(e){let t=e.trim().split(/\s+/);if(t.length!==5)return`Must have exactly 5 fields: minute hour day month weekday`;let n=[[0,59],[0,23],[1,31],[1,12],[0,7]];for(let[e,r]of t.entries()){if(r===`*`||/^\*\/\d+$/.test(r))continue;let t=parseInt(r,10);if(Number.isNaN(t))return`Field ${e+1} is not a valid number or wildcard`;let[i,a]=n[e];if(t<i||t>a)return`Field ${e+1} must be ${i}–${a}`}return null}function il(e){return e.trim()?/^[a-z0-9][a-z0-9_-]*\.(yml|yaml|md)$/.test(e.trim())?null:`Use lowercase letters, digits, hyphens, and underscores. Must end in .yml, .yaml, or .md`:`File name is required`}function al(e,t){let n={};try{let e=qc(t);e&&typeof e==`object`&&!Array.isArray(e)&&(n=e)}catch{}let r=new Set([`schedule`,`enabled`,`description`,`tags`,`timeoutMs`,`command`,`prompt`,`profile`,`workflow`,`params`,`on_failure`,`timezone`]),i={};for(let[e,t]of Object.entries(n))r.has(e)||(i[e]=t);let a=typeof n.schedule==`string`?n.schedule.trim():`0 9 * * *`,o=`command`,s=`echo hello`,c=``,l=``;return n.command===void 0?n.prompt===void 0?n.workflow!==void 0&&(o=`workflow`,l=typeof n.workflow==`string`?n.workflow:``):(o=`prompt`,c=typeof n.prompt==`string`?n.prompt:``):(o=`command`,s=(Array.isArray(n.command)?n.command.map(String):typeof n.command==`string`?[n.command]:[`echo`,`hello`]).join(` `)),{fileName:e,name:e.replace(/\.(yml|yaml|md)$/,``),description:typeof n.description==`string`?n.description:``,enabled:n.enabled!==!1,schedule:a,actionKind:o,commandShell:s,promptBody:c,workflowRef:l,rawYaml:t,unknownKeys:i}}function ol(e){let t={schedule:e.schedule,enabled:e.enabled};if(e.description.trim()&&(t.description=e.description.trim()),e.actionKind===`command`){let n=e.commandShell.trim();t.command=n?[`sh`,`-c`,n]:[`sh`,`-c`,`echo hello`]}else e.actionKind===`prompt`?t.prompt=e.promptBody.trim()||`inline`:t.workflow=e.workflowRef.trim();for(let[n,r]of Object.entries(e.unknownKeys))t[n]=r;return Jc(t,{lineWidth:0})}function sl(){return{fileName:``,name:``,description:``,enabled:!1,schedule:`0 9 * * *`,actionKind:`command`,commandShell:`echo hello`,promptBody:``,workflowRef:``,rawYaml:``,unknownKeys:{}}}var cl=s(`<button class="btn btn-secondary">Cancel</button> <button class="btn btn-primary"><!> </button>`,1),ll=s(`<span class="field-error svelte-m3wayn" role="alert"> </span>`),ul=s(`<span class="field-hint svelte-m3wayn">Lowercase letters, digits, hyphens. Must end in .yml, .yaml, or .md</span>`),dl=s(`<div><label class="field-label svelte-m3wayn" for="tf-filename">File name</label> <input id="tf-filename" class="field-input svelte-m3wayn" type="text" placeholder="my-task.yml" autocomplete="off" spellcheck="false"/> <!></div>`),fl=s(`<option> </option>`),pl=s(`<option> </option>`),ml=s(`<label class="param-label svelte-m3wayn" for="tf-dow">Day</label> <select id="tf-dow" class="field-select field-select--narrow svelte-m3wayn"></select>`,1),hl=s(`<label class="param-label svelte-m3wayn" for="tf-dom">Day of month</label> <input id="tf-dom" class="field-input field-input--narrow svelte-m3wayn" type="number" min="1" max="31"/>`,1),gl=s(`<div class="schedule-params svelte-m3wayn"><!> <!> <label class="param-label svelte-m3wayn" for="tf-hour">Hour (0–23)</label> <input id="tf-hour" class="field-input field-input--narrow svelte-m3wayn" type="number" min="0" max="23"/></div>`),_l=s(`<span class="field-error svelte-m3wayn" role="alert"> </span>`),vl=s(`<span class="field-hint svelte-m3wayn">5 fields: minute hour day-of-month month day-of-week</span>`),yl=s(`<div class="field-group svelte-m3wayn" style="margin-top: var(--s-sp-3)"><label class="field-label svelte-m3wayn" for="tf-cmd">Shell command</label> <input id="tf-cmd" class="field-input field-mono svelte-m3wayn" type="text" placeholder="echo hello" spellcheck="false"/> <span class="field-hint svelte-m3wayn">Runs as: <code class="svelte-m3wayn">sh -c "<command>"</code></span></div>`),bl=s(`<div class="field-group svelte-m3wayn" style="margin-top: var(--s-sp-3)"><label class="field-label svelte-m3wayn" for="tf-prompt">Prompt text</label> <textarea id="tf-prompt" class="field-input field-textarea svelte-m3wayn" rows="4" placeholder="Summarise the latest logs and notify me if there are errors."></textarea></div>`),xl=s(`<div class="field-group svelte-m3wayn" style="margin-top: var(--s-sp-3)"><label class="field-label svelte-m3wayn" for="tf-workflow">Workflow ref</label> <input id="tf-workflow" class="field-input field-mono svelte-m3wayn" type="text" placeholder="workflow:my-workflow" spellcheck="false"/></div>`),Sl=s(`<p class="unknown-keys-notice svelte-m3wayn">This task file contains additional fields
|
|
116
|
+
(<code class="svelte-m3wayn"> </code>)
|
|
117
|
+
that are not editable here but will be preserved when saved.</p>`),Cl=s(`<p class="save-error svelte-m3wayn" role="alert"> </p>`),wl=s(`<form class="task-form svelte-m3wayn"><!> <div class="field-group svelte-m3wayn"><label class="field-label svelte-m3wayn" for="tf-desc">Description</label> <input id="tf-desc" class="field-input svelte-m3wayn" type="text" placeholder="What does this task do?"/></div> <label class="toggle-row svelte-m3wayn"><input type="checkbox" class="svelte-m3wayn"/> <span class="toggle-label svelte-m3wayn">Enabled</span> <span class="toggle-hint svelte-m3wayn">Disabled tasks are saved but not registered with cron</span></label> <fieldset class="schedule-fieldset svelte-m3wayn"><legend class="field-label svelte-m3wayn">Schedule</legend> <div class="schedule-row svelte-m3wayn"><select class="field-select svelte-m3wayn"></select> <!></div> <p> </p> <details class="advanced-details svelte-m3wayn"><summary class="advanced-summary svelte-m3wayn">Advanced (raw cron)</summary> <div class="advanced-body svelte-m3wayn"><label class="field-label svelte-m3wayn" for="tf-rawcron">Cron expression</label> <input id="tf-rawcron" type="text" placeholder="* * * * *" spellcheck="false"/> <!></div></details></fieldset> <fieldset class="field-group svelte-m3wayn"><legend class="field-label svelte-m3wayn">Action type</legend> <div class="radio-row svelte-m3wayn"><label class="radio-label svelte-m3wayn"><input type="radio" name="tf-kind"/> Shell command</label> <label class="radio-label svelte-m3wayn"><input type="radio" name="tf-kind"/> Assistant prompt</label> <label class="radio-label svelte-m3wayn"><input type="radio" name="tf-kind"/> Workflow</label></div> <!></fieldset> <!> <!></form>`);function Tl(e,r){j(r,!0);let i=[],o=E(()=>r.draft!==null&&r.draft.fileName===``),s=I(``),c=I(``),f=I(!1),p=I(`command`),m=I(`echo hello`),v=I(``),b=I(``),x=I(`daily`),w=I(9),A=I(1),N=I(1),L=I(`0 9 * * *`),z=I(!1);ee(()=>{if(!r.draft)return;W(c,r.draft.description,!0),W(f,r.draft.enabled,!0),W(p,r.draft.actionKind,!0),W(m,r.draft.commandShell,!0),W(v,r.draft.promptBody,!0),W(b,r.draft.workflowRef,!0);let e=Xc(r.draft.schedule);W(x,e,!0),W(w,Zc(r.draft.schedule),!0),W(A,Qc(r.draft.schedule),!0),W(N,$c(r.draft.schedule),!0),W(L,r.draft.schedule,!0),W(z,e===`advanced`)});let V=E(()=>h(o)?il(h(s)):null),G=E(()=>h(x)===`advanced`?rl(h(L)):null),K=E(()=>el(h(x),h(w),h(A),h(N),h(L))),J=E(()=>nl(h(x),h(w),h(A),h(N),h(L))),re=E(()=>!r.saving&&(h(o)?h(V)===null&&h(s).trim()!==``:!0)&&h(G)===null);function ie(){if(!h(re)||!r.draft)return;let e=h(o)?h(s).trim():r.draft.fileName,t={...r.draft,fileName:e,description:h(c),enabled:h(f),actionKind:h(p),commandShell:h(m),promptBody:h(v),workflowRef:h(b),schedule:h(K)};r.onSave(e,ol(t))}function ae(e){let t=e.currentTarget.value;W(x,t,!0),W(z,t===`advanced`)}{let j=e=>{var t=cl(),i=H(t),a=M(i,2),s=B(a),c=e=>{$(e,{})};l(s,e=>{r.saving&&e(c)});var f=M(s);q(a),_(()=>{i.disabled=r.saving,a.disabled=!h(re),u(f,` ${h(o)?`Create`:`Save`}`)}),n(`click`,i,function(...e){r.onClose?.apply(this,e)}),n(`click`,a,ie),d(e,t)},I=E(()=>h(o)?`New automation`:`Edit — ${r.draft?.fileName??``}`);ze(e,{get open(){return r.open},get title(){return h(I)},get onClose(){return r.onClose},width:`36rem`,footer:j,children:(e,j)=>{var I=a(),R=H(I),ee=e=>{var a=wl(),j=B(a),I=e=>{var t=dl();let n;var i=M(B(t),2);O(i);var a=M(i,2),o=e=>{var t=ll(),n=B(t,!0);q(t),_(()=>u(n,h(V))),d(e,t)},c=e=>{d(e,ul())};l(a,e=>{h(V)&&h(s).length>0?e(o):e(c,-1)}),q(t),_(()=>{n=S(t,1,`field-group svelte-m3wayn`,null,n,{"field-group--error":h(V)!==null&&h(s).length>0}),i.disabled=r.saving}),T(i,()=>h(s),e=>W(s,e)),d(e,t)};l(j,e=>{h(o)&&e(I)});var R=M(j,2),ee=M(B(R),2);O(ee),q(R);var K=M(R,2),re=B(K);O(re),C(4),q(K);var Y=M(K,2),X=M(B(Y),2),oe=B(X);P(oe,21,()=>Yc,e=>e.id,(e,t)=>{var n=fl(),r=B(n,!0);q(n);var i={};_(()=>{u(r,h(t).label),i!==(i=h(t).id)&&(n.value=(n.__value=h(t).id)??``)}),d(e,n)}),q(oe);var Z;y(oe);var se=M(oe,2),ce=e=>{var n=gl(),r=B(n),i=e=>{var n=ml(),r=M(H(n),2);P(r,21,()=>tl,t,(e,t,n)=>{var r=pl(),i=B(r,!0);q(r),r.value=r.__value=n,_(()=>u(i,h(t))),d(e,r)}),q(r),k(r,()=>h(A),e=>W(A,e)),d(e,n)};l(r,e=>{h(x)===`weekly`&&e(i)});var a=M(r,2),o=e=>{var t=hl(),n=M(H(t),2);O(n),T(n,()=>h(N),e=>W(N,e)),d(e,t)};l(a,e=>{h(x)===`monthly`&&e(o)});var s=M(a,4);O(s),q(n),T(s,()=>h(w),e=>W(w,e)),d(e,n)};l(se,e=>{(h(x)===`daily`||h(x)===`weekly`||h(x)===`monthly`)&&e(ce)}),q(X);var le=M(X,2);let Q;var ue=B(le,!0);q(le);var de=M(le,2),fe=M(B(de),2),pe=M(B(fe),2);O(pe);let me;var he=M(pe,2),ge=e=>{var t=_l(),n=B(t,!0);q(t),_(()=>u(n,h(G))),d(e,t)},_e=e=>{d(e,vl())};l(he,e=>{h(G)?e(ge):e(_e,-1)}),q(fe),q(de),q(Y);var ve=M(Y,2),ye=M(B(ve),2),be=B(ye),xe=B(be);O(xe),xe.value=xe.__value=`command`,C(),q(be);var Se=M(be,2),Ce=B(Se);O(Ce),Ce.value=Ce.__value=`prompt`,C(),q(Se);var we=M(Se,2),Te=B(we);O(Te),Te.value=Te.__value=`workflow`,C(),q(we),q(ye);var Ee=M(ye,2),De=e=>{var t=yl(),n=M(B(t),2);O(n),C(2),q(t),T(n,()=>h(m),e=>W(m,e)),d(e,t)},Oe=e=>{var t=bl(),n=M(B(t),2);D(n),q(t),T(n,()=>h(v),e=>W(v,e)),d(e,t)},ke=e=>{var t=xl(),n=M(B(t),2);O(n),q(t),T(n,()=>h(b),e=>W(b,e)),d(e,t)};l(Ee,e=>{h(p)===`command`?e(De):h(p)===`prompt`?e(Oe,1):e(ke,-1)}),q(ve);var Ae=M(ve,2),je=e=>{var t=Sl(),n=M(B(t)),i=B(n,!0);q(n),C(),q(t),_(e=>u(i,e),[()=>Object.keys(r.draft.unknownKeys).join(`, `)]),d(e,t)},Me=E(()=>Object.keys(r.draft.unknownKeys).length>0);l(Ae,e=>{h(Me)&&e(je)});var Ne=M(Ae,2),Pe=e=>{var t=Cl(),n=B(t,!0);q(t),_(()=>u(n,r.saveError)),d(e,t)};l(Ne,e=>{r.saveError&&e(Pe)}),q(a),_(()=>{ee.disabled=r.saving,re.disabled=r.saving,Y.disabled=r.saving,Z!==(Z=h(x))&&(oe.value=(oe.__value=h(x))??``,ne(oe,h(x))),Q=S(le,1,`schedule-summary svelte-m3wayn`,null,Q,{"schedule-summary--error":h(G)!==null}),u(ue,h(J)),me=S(pe,1,`field-input field-mono svelte-m3wayn`,null,me,{"field-input--error":h(G)!==null}),pe.disabled=r.saving,ve.disabled=r.saving}),g(`submit`,a,e=>{e.preventDefault(),ie()}),T(ee,()=>h(c),e=>W(c,e)),F(re,()=>h(f),e=>W(f,e)),n(`change`,oe,ae),n(`input`,pe,()=>{W(x,`advanced`),W(z,!0)}),T(pe,()=>h(L),e=>W(L,e)),U(`open`,`toggle`,de,e=>W(z,e),()=>h(z)),te(i,[],xe,()=>h(p),e=>W(p,e)),te(i,[],Ce,()=>h(p),e=>W(p,e)),te(i,[],Te,()=>h(p),e=>W(p,e)),d(e,a)};l(R,e=>{r.draft!==null&&e(ee)}),d(e,I)},$$slots:{footer:!0,default:!0}})}R()}J([`click`,`change`,`input`]);var El=s(`<!> Deleting…`,1),Dl=s(`<div class="confirm-prompt svelte-1xltcby" role="alertdialog" aria-label="Confirm delete task"><p class="confirm-prompt-title svelte-1xltcby">Delete task file?</p> <p class="svelte-1xltcby"> </p> <div class="confirm-actions svelte-1xltcby"><button class="btn btn-sm btn-danger"><!></button> <button class="btn btn-sm btn-secondary">Cancel</button></div></div>`),Ol=s(`<div class="automation-desc svelte-1xltcby"> </div>`),kl=s(`<!> Running...`,1),Al=s(`<div class="automation-card svelte-1xltcby"><div class="automation-row svelte-1xltcby"><div class="automation-main svelte-1xltcby"><div class="automation-name svelte-1xltcby"> <span> </span> <span class="badge badge-type svelte-1xltcby"> </span></div> <!></div> <div class="automation-meta svelte-1xltcby"><span class="meta-item svelte-1xltcby"> </span> <span class="meta-item meta-item-action svelte-1xltcby"> </span></div></div> <div class="automation-footer svelte-1xltcby"><span class="automation-file svelte-1xltcby"> </span> <div class="automation-actions svelte-1xltcby"><button class="btn btn-secondary btn-sm"><!></button> <button class="btn btn-ghost btn-sm">View latest log</button> <button class="btn btn-ghost btn-sm">Edit</button> <button class="btn btn-ghost btn-sm">Delete</button></div></div></div>`),jl=s(`<div class="automation-list svelte-1xltcby"></div>`),Ml=c(`<svg aria-hidden="true" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>`),Nl=s(`<p>Loading automations...</p>`),Pl=s(`<p class="text-danger svelte-1xltcby"> </p> <button class="btn btn-secondary btn-sm empty-state-btn svelte-1xltcby">Try Again</button>`,1),Fl=s(`<p>No automations configured.</p> <button class="btn btn-secondary btn-sm empty-state-btn svelte-1xltcby">Create your first task</button> <p class="empty-state-hint svelte-1xltcby">Or drop <code class="svelte-1xltcby">.md</code>/<code class="svelte-1xltcby">.yml</code> files into <code class="svelte-1xltcby">~/.openpalm/knowledge/tasks/</code>.</p>`,1),Il=s(`<div class="feedback feedback--error" role="alert"><span> </span></div>`),Ll=s(`<div class="loading-state"><!> <span>Loading the latest output…</span></div>`),Rl=s(`<pre class="log-output svelte-1xltcby"> </pre>`),zl=c(`<svg aria-hidden="true" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line></svg>`),Bl=s(`<p>No recent output yet.</p> <p class="empty-state-hint svelte-1xltcby">Run the routine first, then open this drawer to see the output.</p>`,1),Vl=s(`<div class="log-drawer-body svelte-1xltcby"><p class="log-drawer-copy svelte-1xltcby">Showing the most recent routine output available for <strong> </strong>.</p> <div class="log-drawer-actions svelte-1xltcby"><button class="btn btn-secondary btn-sm"><!> Refresh log</button> <span class="log-drawer-hint svelte-1xltcby"></span></div> <!> <!></div>`),Hl=s(`<div class="panel" role="tabpanel"><div class="ph svelte-1xltcby"><div><h2 class="ph-title svelte-1xltcby">Routines</h2> <p class="ph-sub svelte-1xltcby">Scheduled tasks from knowledge/tasks/</p></div> <div class="ph-actions svelte-1xltcby"><button class="btn btn-primary btn-outline btn-sm">New task</button> <button class="btn btn-primary btn-outline btn-sm"><!> Refresh</button></div></div> <div class="panel-body"><!> <!></div></div> <!> <!>`,1);function Ul(e,t){j(t,!0);let r=E(()=>t.data!==null&&Array.isArray(t.data.automations)&&t.data.automations.length>0),i=I(!1),o=I(null),s=I(!1),c=I(``),p=I(``),m=I(null),g=I(!1),v=I(``),y=I(x([])),b=I(!1),w=I(``);function T(){W(o,sl(),!0),W(c,``),W(i,!0)}async function D(e){if(!h(s)){W(s,!0),W(c,``);try{let{content:t}=await bt(e);W(o,al(e,t),!0),W(i,!0)}catch(e){Y.push(`error`,e instanceof Error?e.message:`Failed to read task file.`)}finally{W(s,!1)}}}function O(){W(i,!1),W(o,null),W(c,``)}async function k(e,n){W(s,!0),W(c,``);try{await xt(e,n),Y.push(`success`,`Saved ${e}. Refreshing…`),O(),t.onRefresh()}catch(e){W(c,e instanceof Error?e.message:`Failed to save task file.`,!0)}finally{W(s,!1)}}function A(e){h(s)||W(m,e,!0)}function F(){W(m,null)}async function L(){let e=h(m);if(!(e===null||h(s))){W(s,!0);try{await St(e),Y.push(`success`,`Deleted ${e}.`),W(m,null),t.onRefresh()}catch(e){Y.push(`error`,e instanceof Error?e.message:`Failed to delete task file.`)}finally{W(s,!1)}}}async function z(e){if(!(h(p)||h(s))){W(p,e,!0);try{let t=await _t(e);if(t.ok)Y.push(`success`,`"${e}" completed. Open the log to view output.`);else{let n=t.error?`: ${t.error}`:``;Y.push(`error`,`"${e}" failed${n}`)}}catch(e){Y.push(`error`,e instanceof Error?e.message:`Failed to start the routine.`)}finally{W(p,``)}}}async function ee(e){W(b,!0),W(w,``),W(v,e,!0);try{W(y,(await vt(e,200)).lines,!0)}catch(e){W(y,[],!0),W(w,e instanceof Error?e.message:`Failed to load the latest routine log.`,!0)}finally{W(b,!1)}}async function U(e){W(g,!0),await ee(e)}function G(){W(g,!1),W(v,``),W(y,[],!0),W(b,!1),W(w,``)}function te(e){switch(Xc(e)){case`every-15-minutes`:return`Every 15 minutes`;case`every-hour`:return`Every hour`;case`daily`:{let t=parseInt(e.split(` `)[1]??`0`,10);return`Daily at ${String(t).padStart(2,`0`)}:00`}case`weekly`:{let t=e.split(` `),n=parseInt(t[1]??`0`,10);return`Weekly (${[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`][parseInt(t[4]??`0`,10)]??`Sun`}) at ${String(n).padStart(2,`0`)}:00`}case`monthly`:{let t=e.split(` `),n=parseInt(t[1]??`0`,10);return`Monthly (day ${parseInt(t[2]??`1`,10)}) at ${String(n).padStart(2,`0`)}:00`}default:return e}}function ne(e){switch(e.action.type){case`assistant`:return e.action.content?.trim()?`Assistant prompt`:`Assistant task`;case`shell`:return e.action.content?.trim()?e.action.content.trim():`Shell command`;case`api`:return e.action.path?`${e.action.method??`Call`} ${e.action.path}`:`API request`;case`http`:return e.action.url?`${e.action.method??`Request`} ${e.action.url}`:`HTTP request`;case`workflow`:return`Workflow`;default:return e.action.type}}var K=Hl(),J=H(K),re=B(J),ie=M(B(re),2),ae=B(ie),X=M(ae,2),oe=B(X),Z=e=>{$(e,{})};l(oe,e=>{t.loading&&e(Z)}),C(),q(X),q(ie),q(re);var se=M(re,2),ce=B(se),le=e=>{var t=Dl(),r=M(B(t),2),i=B(r);q(r);var a=M(r,2),o=B(a),c=B(o),p=e=>{var t=El();$(H(t),{}),C(),d(e,t)},g=e=>{d(e,f(`Delete task`))};l(c,e=>{h(s)?e(p):e(g,-1)}),q(o);var v=M(o,2);q(a),q(t),_(()=>{u(i,`Delete task file "${h(m)??``}"? This cannot be undone.`),o.disabled=h(s),v.disabled=h(s)}),n(`click`,o,()=>void L()),n(`click`,v,F),d(e,t)};l(ce,e=>{h(m)!==null&&e(le)});var Q=M(ce,2),ue=e=>{var r=jl();P(r,21,()=>t.data.automations,e=>e.name,(e,t)=>{var r=Al(),i=B(r),a=B(i),o=B(a),c=B(o),m=M(c);let g;var v=B(m,!0);q(m);var y=M(m,2),x=B(y,!0);q(y),q(o);var w=M(o,2),T=e=>{var n=Ol(),r=B(n,!0);q(n),_(()=>u(r,h(t).description)),d(e,n)};l(w,e=>{h(t).description&&e(T)}),q(a);var E=M(a,2),O=B(E),k=B(O,!0);q(O);var j=M(O,2),N=B(j,!0);q(j),q(E),q(i);var P=M(i,2),F=B(P),I=B(F,!0);q(F);var L=M(F,2),R=B(L),ee=B(R),W=e=>{var t=kl();$(H(t),{}),C(),d(e,t)},G=e=>{d(e,f(`Run now`))};l(ee,e=>{h(p)===h(t).name?e(W):e(G,-1)}),q(R);var K=M(R,2),J=M(K,2),re=M(J,2);q(L),q(P),q(r),_((e,n)=>{u(c,`${h(t).name??``} `),g=S(m,1,`badge svelte-1xltcby`,null,g,{"badge-enabled":h(t).enabled,"badge-disabled":!h(t).enabled}),u(v,h(t).enabled?`Enabled`:`Disabled`),u(x,h(t).action.type),u(k,e),u(N,n),u(I,h(t).fileName),R.disabled=!!h(p)||h(s),K.disabled=h(b),J.disabled=h(s),re.disabled=h(s),V(re,`aria-label`,`Delete ${h(t).fileName??``}`)},[()=>te(h(t).schedule),()=>ne(h(t))]),n(`click`,R,()=>void z(h(t).name)),n(`click`,K,()=>void U(h(t).name)),n(`click`,J,()=>void D(h(t).fileName)),n(`click`,re,()=>A(h(t).fileName)),d(e,r)}),q(r),d(e,r)},de=e=>{zr(e,{icon:e=>{d(e,Ml())},children:(e,r)=>{var i=a(),o=H(i),s=e=>{d(e,Nl())},c=e=>{var r=Pl(),i=H(r),a=B(i,!0);q(i);var o=M(i,2);_(()=>u(a,t.error)),n(`click`,o,function(...e){t.onRefresh?.apply(this,e)}),d(e,r)},f=e=>{var t=Fl(),r=M(H(t),2);C(2),n(`click`,r,T),d(e,t)};l(o,e=>{t.loading?e(s):t.error?e(c,1):e(f,-1)}),d(e,i)},$$slots:{icon:!0,default:!0}})};l(Q,e=>{h(r)&&t.data?e(ue):e(de,-1)}),q(se),q(J);var fe=M(J,2);N(fe,()=>h(o)?.fileName,e=>{Tl(e,{get open(){return h(i)},get draft(){return h(o)},get saving(){return h(s)},get saveError(){return h(c)},onClose:O,onSave:(e,t)=>void k(e,t)})});var pe=M(fe,2);{let e=E(()=>h(v)?`Latest log — ${h(v)}`:`Latest log`);ze(pe,{get open(){return h(g)},get title(){return h(e)},onClose:G,width:`42rem`,children:(e,t)=>{var r=Vl(),i=B(r),a=M(B(i)),o=B(a,!0);q(a),C(),q(i);var s=M(i,2),c=B(s),f=B(c),p=e=>{$(e,{})};l(f,e=>{h(b)&&e(p)}),C(),q(c);var m=M(c,2);m.textContent=`Up to 200 recent lines`,q(s);var g=M(s,2),x=e=>{var t=Il(),n=B(t),r=B(n,!0);q(n),q(t),_(()=>u(r,h(w))),d(e,t)};l(g,e=>{h(w)&&e(x)});var S=M(g,2),T=e=>{var t=Ll();$(B(t),{}),C(2),q(t),d(e,t)},E=e=>{var t=Rl(),n=B(t,!0);q(t),_(e=>u(n,e),[()=>h(y).join(`
|
|
118
|
+
`)]),d(e,t)},D=e=>{zr(e,{icon:e=>{d(e,zl())},children:(e,t)=>{var n=Bl();C(2),d(e,n)},$$slots:{icon:!0,default:!0}})};l(S,e=>{h(b)&&h(y).length===0?e(T):h(y).length>0?e(E,1):h(w)||e(D,2)}),q(r),_(()=>{u(o,h(v)||`this task`),c.disabled=h(b)||!h(v)}),n(`click`,c,()=>void ee(h(v))),d(e,r)},$$slots:{default:!0}})}_(()=>{ae.disabled=h(s),X.disabled=t.loading}),n(`click`,ae,T),n(`click`,X,function(...e){t.onRefresh?.apply(this,e)}),d(e,K),R()}J([`click`]);var Wl=s(`<div class="empty svelte-1ykz2x6"> </div>`),Gl=s(`<span class="provider-meta svelte-1ykz2x6"> </span>`),Kl=s(`<button type="button" class="provider-pick svelte-1ykz2x6"><span class="provider-name svelte-1ykz2x6"> </span> <!></button>`),ql=s(`<!> <button type="button" class="provider-pick provider-pick--custom svelte-1ykz2x6"><span class="provider-name svelte-1ykz2x6">Custom provider</span> <span class="provider-meta svelte-1ykz2x6">OpenAI-compatible</span></button>`,1),Jl=s(`<input type="search" class="form-input add-search svelte-1ykz2x6" placeholder="Search providers…" autocomplete="off"/> <div class="pick-list svelte-1ykz2x6"><!></div>`,1);function Yl(t,r){j(r,!0);let i=I(``),a=E(()=>{let e=h(i).trim().toLowerCase();return e?r.providers.filter(t=>t.name.toLowerCase().includes(e)||t.id.toLowerCase().includes(e)):r.providers});ze(t,{open:!0,title:`Add provider`,get onClose(){return r.onclose},children:(t,o)=>{var s=Jl(),c=H(s);O(c),e(c,!0);var f=M(c,2),p=B(f),m=e=>{var t=Wl(),n=B(t);q(t),_(()=>u(n,`No providers match "${h(i)??``}".`)),d(e,t)},g=e=>{var t=ql(),i=H(t);P(i,17,()=>h(a),e=>e.id,(e,t)=>{var i=Kl(),a=B(i),o=B(a,!0);q(a);var s=M(a,2),c=e=>{var n=Gl(),r=B(n);q(n),_(()=>u(r,`${h(t).modelCount??``} models`)),d(e,n)};l(s,e=>{h(t).modelCount>0&&e(c)}),q(i),_(()=>u(o,h(t).name)),n(`click`,i,()=>r.onselect(h(t))),d(e,i)}),n(`click`,M(i,2),function(...e){r.oncustom?.apply(this,e)}),d(e,t)};l(p,e=>{h(a).length===0&&h(i)?e(m):e(g,-1)}),q(f),T(c,()=>h(i),e=>W(i,e)),d(t,s)},$$slots:{default:!0}}),R()}J([`click`]);var Xl=s(`<p class="field-error svelte-k6j09e"> </p>`),Zl=s(`<p class="field-hint"> </p>`),Ql=s(`<div class="form-field"><label class="form-label"> </label> <!> <!></div>`);function $l(e,t){var n=Ql(),r=B(n),a=B(r,!0);q(r);var o=M(r,2);i(o,()=>t.children);var s=M(o,2),c=e=>{var n=Xl(),r=B(n,!0);q(n),_(()=>u(r,t.error)),d(e,n)},f=e=>{var n=Zl(),r=B(n,!0);q(n),_(()=>u(r,t.hint)),d(e,n)};l(s,e=>{t.error?e(c):t.hint&&e(f,1)}),q(n),_(()=>{V(r,`for`,t.for),u(a,t.label)}),d(e,n)}var eu=s(`<button type="button" class="connect-back svelte-1bnolke" aria-label="Back">←</button>`),tu=s(`<button type="button" class="btn btn-primary"><!> Continue</button>`),nu=s(`<div class="feedback feedback--error"><span> </span></div>`),ru=s(`<button type="button" class="auth-method-card svelte-1bnolke"><span class="method-label svelte-1bnolke"> </span> <span class="method-type svelte-1bnolke"> </span></button>`),iu=s(`<p class="field-hint"> </p> <div class="auth-method-group svelte-1bnolke"></div>`,1),au=s(`<input id="connect-apikey" type="password" class="form-input" placeholder="API key" autocomplete="off"/>`),ou=s(`<p class="field-hint"> </p> <!>`,1),su=s(`<input id="connect-code" type="text" class="form-input" placeholder="Authorization code" autocomplete="off"/>`),cu=s(`<p class="field-hint">Visit <a target="_blank" rel="noopener" class="text-link">this link</a> </p> <!>`,1),lu=s(`<p class="field-hint"> </p>`),uu=s(`<p class="field-hint">Open <a target="_blank" rel="noopener" class="text-link"> </a> to continue.</p>`),du=s(`<!> <!> <p class="field-hint"><!> Waiting for sign-in to complete…</p>`,1),fu=s(`<!> <!>`,1);function pu(e,t){j(t,!0);let r=E(()=>t.provider.authMethods.filter(e=>!e.label.toLowerCase().includes(`headless`))),i=I(x(o(t.provider)));function o(e){let t=e.authMethods.filter(e=>!e.label.toLowerCase().includes(`headless`));return t.length===0?`api-form`:t.length===1?t[0].type===`oauth`?`oauth-code`:`api-form`:`method-picker`}let s=I(null),c=I(``),f=I(``),p=I(null),m=I(null),g=I(!1),v=I(null),y;function b(){y?.abort(),y=void 0}z(b);let S=E(()=>h(i)===`method-picker`?`Connect ${t.provider.name}`:h(s)?`Login with ${h(s).label}`:`Connect ${t.provider.name}`),w=E(()=>h(i)!==`method-picker`&&h(r).length>1);function D(e){W(s,e,!0),W(c,``),W(f,``),W(p,null),W(m,null),W(v,null),e.type===`oauth`?A(e):W(i,`api-form`)}function k(){b(),W(s,null),W(c,``),W(f,``),W(p,null),W(m,null),W(v,null),W(g,!1),W(i,`method-picker`)}async function A(e){W(g,!0),W(v,null);try{let n=await Zt(t.provider.id,e.index);if(!n.ok||!n.oauth){W(v,n.message??`OAuth start failed.`,!0),W(i,`method-picker`);return}if(W(p,n.oauth.url,!0),W(m,n.oauth.instructions??null,!0),window.open(n.oauth.url,`_blank`,`noopener`),n.oauth.mode===`auto`){W(i,`oauth-auto`),y=new AbortController;let e=n.oauth.providerId,t=n.oauth.methodIndex;Qt(e,t,y.signal).then(e=>{h(i)===`oauth-auto`&&(e.ok?L(`Signed in successfully.`):(W(v,`Sign-in failed (${e.status}). Try again.`),W(i,`method-picker`)))}).catch(e=>{h(i)===`oauth-auto`&&(e instanceof DOMException&&e.name===`AbortError`||(W(v,an(e,`Authorization failed.`),!0),W(i,`method-picker`)))})}else W(i,`oauth-code`)}catch(e){W(v,an(e,`OAuth start failed.`),!0),W(i,`method-picker`)}finally{W(g,!1)}}async function N(){if(!h(c).trim()){W(v,`Enter an API key.`);return}W(g,!0),W(v,null);try{await $t(t.provider.id,h(c).trim()),L(`API key saved.`)}catch(e){W(v,an(e,`Request failed.`),!0)}finally{W(g,!1)}}async function F(){if(!h(s)||!h(f).trim()){W(v,`Paste the authorization code.`);return}W(g,!0),W(v,null);try{await en(t.provider.id,h(s).index,h(f).trim()),L(`Signed in successfully.`)}catch(e){W(v,an(e,`Request failed.`),!0)}finally{W(g,!1)}}function L(e){t.onaction?.({ok:!0,message:e,selectedProviderId:t.provider.id})}function ee(e){e.key===`Enter`&&(h(i)===`api-form`?N():h(i)===`oauth-code`&&F())}ze(e,{open:!0,get title(){return h(S)},onClose:()=>t.onclose?.(),headerStart:e=>{var t=a(),r=H(t),i=e=>{var t=eu();n(`click`,t,k),d(e,t)};l(r,e=>{h(w)&&e(i)}),d(e,t)},footer:e=>{var t=a(),r=H(t),o=e=>{var t=tu(),r=B(t),a=e=>{$(e,{})};l(r,e=>{h(g)&&e(a)}),C(),q(t),_(()=>t.disabled=h(g)),n(`click`,t,()=>h(i)===`api-form`?void N():void F()),d(e,t)};l(r,e=>{(h(i)===`api-form`||h(i)===`oauth-code`)&&e(o)}),d(e,t)},children:(e,a)=>{var o=fu(),y=H(o),b=e=>{var t=nu(),n=B(t),r=B(n,!0);q(n),q(t),_(()=>u(r,h(v))),d(e,t)};l(y,e=>{h(v)&&e(b)});var x=M(y,2),S=e=>{var i=iu(),a=H(i),o=B(a);q(a);var s=M(a,2);P(s,21,()=>h(r),e=>e.index,(e,t)=>{var r=ru(),i=B(r),a=B(i,!0);q(i);var o=M(i,2),s=B(o,!0);q(o),q(r),_(()=>{u(a,h(t).label),u(s,h(t).type===`oauth`?`Browser sign-in`:`API key`)}),n(`click`,r,()=>D(h(t))),d(e,r)}),q(s),_(()=>u(o,`Select login method for ${t.provider.name??``}.`)),d(e,i)},w=e=>{var r=ou(),i=H(r),a=B(i);q(i),$l(M(i,2),{get label(){return`${t.provider.name??``} API key`},for:`connect-apikey`,children:(e,t)=>{var r=au();O(r),_(()=>r.disabled=h(g)),n(`keydown`,r,ee),T(r,()=>h(c),e=>W(c,e)),d(e,r)},$$slots:{default:!0}}),_(()=>u(a,`Enter your ${t.provider.name??``} API key to connect your account and use ${t.provider.name??``} models in OpenCode.`)),d(e,r)},k=e=>{var r=cu(),i=H(r),a=M(B(i)),o=M(a);q(i);var c=M(i,2);{let e=E(()=>h(s)?.label??`OAuth`);$l(c,{get label(){return`${h(e)??``} authorization code`},for:`connect-code`,children:(e,t)=>{var r=su();O(r),_(()=>r.disabled=h(g)),n(`keydown`,r,ee),T(r,()=>h(f),e=>W(f,e)),d(e,r)},$$slots:{default:!0}})}_(()=>{V(a,`href`,h(p)??`#`),u(o,` to collect your authorization code to connect your account and use ${t.provider.name??``} models in OpenCode.`)}),d(e,r)},A=e=>{var t=du(),n=H(t),r=e=>{var t=lu(),n=B(t,!0);q(t),_(()=>u(n,h(m))),d(e,t)};l(n,e=>{h(m)&&e(r)});var i=M(n,2),a=e=>{var t=uu(),n=M(B(t)),r=B(n,!0);q(n),C(),q(t),_(()=>{V(n,`href`,h(p)),u(r,h(p))}),d(e,t)};l(i,e=>{h(p)&&e(a)});var o=M(i,2);$(B(o),{}),C(),q(o),d(e,t)};l(x,e=>{h(i)===`method-picker`?e(S):h(i)===`api-form`?e(w,1):h(i)===`oauth-code`?e(k,2):h(i)===`oauth-auto`&&e(A,3)}),d(e,o)},$$slots:{headerStart:!0,footer:!0,default:!0}}),R()}J([`click`,`keydown`]);var mu=s(`<button type="button" class="btn btn-primary"><!> Continue</button>`),hu=s(`<div class="feedback feedback--error"><span> </span></div>`),gu=s(`<input id="custom-id" type="text" class="form-input" placeholder="my-provider" autocomplete="off"/>`),_u=s(`<input id="custom-name" type="text" class="form-input" placeholder="My Provider" autocomplete="off"/>`),vu=s(`<input id="custom-url" type="url" class="form-input" placeholder="https://example.com/v1" autocomplete="off"/>`),yu=s(`<p class="field-hint">Register an OpenAI-compatible provider by base URL. Models are auto-discovered on first connection.</p> <!> <div class="form-stack svelte-1btkq49"><!> <!> <!> <div class="form-field"><label class="form-label" for="custom-key">API key <span class="optional svelte-1btkq49">(optional)</span></label> <input id="custom-key" type="password" class="form-input" placeholder="API key" autocomplete="off"/></div></div>`,1);function bu(e,t){j(t,!0);let r=I(``),i=I(``),a=I(``),o=I(``),s=I(!1),c=I(null);async function f(){let e=h(r).trim(),n=h(i).trim(),l=h(a).trim();if(!e||!n||!l){W(c,`ID, display name, and base URL are required.`);return}W(s,!0),W(c,null);try{let r=await tn(e,{displayName:n,baseURL:l,apiKey:h(o).trim()||void 0});t.onaction?.(r)}catch(e){W(c,an(e,`Request failed.`),!0)}finally{W(s,!1)}}function p(e){e.key===`Enter`&&!h(s)&&f()}ze(e,{open:!0,title:`Add custom provider`,onClose:()=>t.onclose?.(),footer:e=>{var t=mu(),r=B(t),i=e=>{$(e,{})};l(r,e=>{h(s)&&e(i)}),C(),q(t),_(()=>t.disabled=h(s)),n(`click`,t,()=>void f()),d(e,t)},children:(e,t)=>{var f=yu(),m=M(H(f),2),g=e=>{var t=hu(),n=B(t),r=B(n,!0);q(n),q(t),_(()=>u(r,h(c))),d(e,t)};l(m,e=>{h(c)&&e(g)});var v=M(m,2),y=B(v);$l(y,{label:`Provider ID`,for:`custom-id`,children:(e,t)=>{var i=gu();O(i),_(()=>i.disabled=h(s)),n(`keydown`,i,p),T(i,()=>h(r),e=>W(r,e)),d(e,i)},$$slots:{default:!0}});var b=M(y,2);$l(b,{label:`Display name`,for:`custom-name`,children:(e,t)=>{var r=_u();O(r),_(()=>r.disabled=h(s)),n(`keydown`,r,p),T(r,()=>h(i),e=>W(i,e)),d(e,r)},$$slots:{default:!0}});var x=M(b,2);$l(x,{label:`Base URL`,for:`custom-url`,children:(e,t)=>{var r=vu();O(r),_(()=>r.disabled=h(s)),n(`keydown`,r,p),T(r,()=>h(a),e=>W(a,e)),d(e,r)},$$slots:{default:!0}});var S=M(x,2),C=M(B(S),2);O(C),q(S),q(v),_(()=>C.disabled=h(s)),n(`keydown`,C,p),T(C,()=>h(o),e=>W(o,e)),d(e,f)},$$slots:{footer:!0,default:!0}}),R()}J([`click`,`keydown`]);var xu=s(`<button type="button" class="btn btn-primary">Done</button>`),Su=s(`<button type="button" class="btn btn-primary"><!> Import</button>`),Cu=s(`<li class="svelte-15y8pah">Activated in OpenCode: <strong> </strong></li>`),wu=s(`<li class="svelte-15y8pah">Skipped (already configured): <strong> </strong></li>`),Tu=s(`<li class="svelte-15y8pah"><span class="muted svelte-15y8pah"> </span></li>`),Eu=s(`<div class="feedback feedback--success"><span>Import complete.</span></div> <ul class="result-list svelte-15y8pah"><li class="svelte-15y8pah">Providers imported: <strong> </strong></li> <li class="svelte-15y8pah">Credentials imported: <strong> </strong></li> <!> <!> <!></ul>`,1),Du=s(`<li class="svelte-15y8pah"><code class="svelte-15y8pah"> </code> <span class="muted svelte-15y8pah"> </span></li>`),Ou=s(`<li class="svelte-15y8pah"><code class="svelte-15y8pah"> </code> <span class="muted svelte-15y8pah"> </span></li>`),ku=s(`<div class="feedback feedback--error"><span> </span></div>`),Au=s(`<p class="field-hint">We found an OpenCode installation on this host:</p> <ul class="result-list svelte-15y8pah"><!> <!></ul> <p class="field-hint">Importing will copy provider settings and stored credentials into OP_HOME and
|
|
119
|
+
activate them in the running assistant. Existing OP_HOME credentials are
|
|
120
|
+
preserved on conflict.</p> <!>`,1);function ju(e,t){j(t,!0);let r=I(!1),i=I(null),o=I(null);async function s(){W(r,!0),W(i,null);try{W(o,await nn(),!0)}catch(e){W(i,an(e,`Import failed.`),!0)}finally{W(r,!1)}}ze(e,{open:!0,title:`Import from host OpenCode`,onClose:()=>h(o)?t.onimported?.():t.oncancel?.(),footer:e=>{var i=a(),c=H(i),u=e=>{var r=xu();n(`click`,r,function(...e){t.onimported?.apply(this,e)}),d(e,r)},f=e=>{var t=Su(),i=B(t),a=e=>{$(e,{})};l(i,e=>{h(r)&&e(a)}),C(),q(t),_(()=>t.disabled=h(r)),n(`click`,t,()=>void s()),d(e,t)};l(c,e=>{h(o)?e(u):e(f,-1)}),d(e,i)},children:(e,n)=>{var r=a(),s=H(r),c=e=>{var t=Eu(),n=M(H(t),2),r=B(n),i=M(B(r)),a=B(i,!0);q(i),q(r);var s=M(r,2),c=M(B(s)),f=B(c,!0);q(c),q(s);var p=M(s,2),m=e=>{var t=Cu(),n=M(B(t)),r=B(n,!0);q(n),q(t),_(()=>u(r,h(o).livePushed)),d(e,t)};l(p,e=>{h(o).livePushed!==void 0&&e(m)});var g=M(p,2),v=e=>{var t=wu(),n=M(B(t)),r=B(n,!0);q(n),q(t),_(e=>u(r,e),[()=>h(o).conflicts.join(`, `)]),d(e,t)};l(g,e=>{h(o).conflicts.length>0&&e(v)});var y=M(g,2),b=e=>{var t=Tu(),n=B(t),r=B(n);q(n),q(t),_(e=>u(r,`Live update failed for: ${e??``}.
|
|
121
|
+
These will activate on next OpenCode restart.`),[()=>h(o).livePushFailed.join(`, `)]),d(e,t)};l(y,e=>{h(o).livePushFailed&&h(o).livePushFailed.length>0&&e(b)}),q(n),_(()=>{u(a,h(o).imported.providers),u(f,h(o).imported.credentials)}),d(e,t)},f=e=>{var n=Au(),r=M(H(n),2),a=B(r),o=e=>{var n=Du(),r=B(n),i=B(r,!0);q(r);var a=M(r,2),o=B(a);q(a),q(n),_(()=>{u(i,t.configPath),u(o,`(${t.providerCount??``} provider${t.providerCount===1?``:`s`})`)}),d(e,n)};l(a,e=>{t.configPath&&e(o)});var s=M(a,2),c=e=>{var n=Ou(),r=B(n),i=B(r,!0);q(r);var a=M(r,2),o=B(a);q(a),q(n),_(()=>{u(i,t.authPath),u(o,`(${t.credentialCount??``} credential${t.credentialCount===1?``:`s`})`)}),d(e,n)};l(s,e=>{t.authPath&&e(c)}),q(r);var f=M(r,4),p=e=>{var t=ku(),n=B(t),r=B(n,!0);q(n),q(t),_(()=>u(r,h(i))),d(e,t)};l(f,e=>{h(i)&&e(p)}),d(e,n)};l(s,e=>{h(o)?e(c):e(f,-1)}),d(e,r)},$$slots:{footer:!0,default:!0}}),R()}J([`click`]);var Mu=s(`<div class="feedback feedback--error inline svelte-19zt4ct"><span> </span> <button class="btn-dismiss" type="button" aria-label="Dismiss">×</button></div>`),Nu=s(`<button type="button" class="btn btn-secondary btn-sm"><!> Reveal API key</button>`),Pu=s(`<div class="api-edge-key svelte-19zt4ct"><input type="text" readonly="" class="form-input svelte-19zt4ct" aria-label="OpenAI-compatible API key"/> <button type="button" class="btn btn-secondary btn-sm"> </button> <button type="button" class="btn btn-outline btn-sm">Hide</button></div>`),Fu=s(`<p class="api-edge-error svelte-19zt4ct"> </p>`),Iu=s(`<button type="button"> </button>`),Lu=s(`<p>The assistant (OpenCode server) is not reachable. Start the assistant container and refresh.</p>`),Ru=s(`<div class="loading-state"><!> <span>Loading providers…</span></div>`),zu=s(`<p>No providers connected yet.</p> <p class="empty-hint svelte-19zt4ct">Click <strong>Add provider</strong> above to sign in to one.</p>`,1),Bu=s(`<option> </option>`),Vu=s(`<optgroup></optgroup>`),Hu=s(`<option> </option>`),Uu=s(`<optgroup></optgroup>`),Wu=s(`<p class="model-error svelte-19zt4ct"> </p>`),Gu=s(`<div class="provider-row svelte-19zt4ct"><div class="provider-id svelte-19zt4ct"><div class="svelte-19zt4ct"><span class="provider-name svelte-19zt4ct"> </span> <span class="provider-desc svelte-19zt4ct"> </span></div></div> <button class="btn btn-outline btn-sm"><!> Disconnect</button></div>`),Ku=s(`<div class="model-defaults svelte-19zt4ct"><div class="model-field svelte-19zt4ct"><label class="form-label" for="default-model">Default model</label> <select id="default-model" class="form-input"><option>— OpenCode default —</option><!></select></div> <div class="model-field svelte-19zt4ct"><label class="form-label" for="small-model">Small model</label> <select id="small-model" class="form-input"><option>— OpenCode default —</option><!></select></div> <!></div> <div class="providers-container svelte-19zt4ct"></div>`,1),qu=s(`<div class="loading-state cli-loading-state svelte-19zt4ct"><!> <span>Loading assistant CLI status…</span></div>`),Ju=s(`<code class="svelte-19zt4ct"> </code>`),Yu=s(`<button type="button" class="btn btn-secondary btn-sm"> </button>`),Xu=s(`<p class="assistant-cli-copy svelte-19zt4ct">Use an existing OpenCode provider key to seed this CLI's local credential file.</p> <div class="assistant-cli-actions svelte-19zt4ct"></div>`,1),Zu=s(`<p class="assistant-cli-copy assistant-cli-copy-muted svelte-19zt4ct">No direct OpenCode-provider file mapping is available for this tool yet.</p>`),Qu=s(`<div class="assistant-cli-panel svelte-19zt4ct"><div class="assistant-cli-header svelte-19zt4ct"><div><h3 class="svelte-19zt4ct"> </h3> <p class="svelte-19zt4ct"> </p></div> <span> </span></div> <div class="assistant-cli-paths svelte-19zt4ct"></div> <!></div>`),$u=s(`<!> Disconnecting…`,1),ed=s(`<div class="confirm-prompt svelte-19zt4ct" role="alertdialog" aria-label="Confirm disconnect provider"><p class="confirm-prompt-title svelte-19zt4ct">Disconnect provider?</p> <p class="svelte-19zt4ct"> </p> <div class="confirm-actions svelte-19zt4ct"><button class="btn btn-sm btn-danger"><!></button> <button class="btn btn-sm btn-secondary">Cancel</button></div></div>`),td=s(`<div class="panel" role="tabpanel"><div class="panel-header"><div><h2>Connections</h2> <p class="panel-subtitle">AI providers · model defaults</p></div> <div class="panel-header-actions"><button type="button" class="btn btn-secondary btn-sm">Import from host</button> <button type="button" class="btn btn-primary btn-sm">Add provider</button> <button class="btn btn-secondary btn-sm"><!> Refresh</button></div></div> <!> <div class="panel-body panel-body--flush"><section class="api-edge svelte-19zt4ct" aria-labelledby="api-edge-title"><div class="api-edge-head svelte-19zt4ct"><div><h3 id="api-edge-title" class="svelte-19zt4ct">OpenAI-compatible API</h3> <p class="svelte-19zt4ct">Point any OpenAI- or Anthropic-compatible client at this host and paste the key below as its API key.</p></div></div> <p class="api-edge-endpoint svelte-19zt4ct">Base URL <code class="svelte-19zt4ct">http://<your-host>:3821/v1</code></p> <!> <!></section> <div class="connections-subtabs svelte-19zt4ct"><button type="button">OpenCode</button> <!></div> <!></div></div> <!> <!> <!> <!> <!>`,1);function nd(e,t){j(t,!0);let r=I(x({available:!1,providers:[],defaultModels:{},allowlistActive:!1,providerCountLabel:``,stats:{total:0,connected:0,configured:0,disabled:0}})),i=I(!0),o=I(null),s=I(`opencode`),c=I(x([])),p=I(!0),m=I(null);async function g(){W(i,!0);try{W(r,await Gt(),!0),W(w,h(r).currentModel??``,!0),W(T,h(r).currentSmallModel??``,!0)}catch{}finally{W(i,!1)}}ee(()=>{g()});async function v(){W(p,!0);try{W(c,await Kt(),!0)}catch{W(c,[],!0)}finally{W(p,!1)}}let y=E(()=>h(r).providers.filter(e=>e.connected)),b=E(()=>h(r).providers.filter(e=>!e.connected)),w=I(``),T=I(``),D=I(null);async function N(e,t){W(D,null);try{await qt(e,t)}catch(e){W(D,an(e,`Request failed.`),!0)}}let F=I(!1),L=I(null),z=I(!1),U=I(null),G=I(null),te={env:`env`,api:`api key`,oauth:`oauth`,config:`config`,custom:`custom`};function ne(e){return e.credentialType?te[e.credentialType]:``}function K(e){W(F,!1),W(L,e,!0)}function J(){W(F,!1),W(z,!0)}function re(){W(L,null),W(z,!1),g(),v()}function ie(e){h(U)||W(G,e,!0)}function ae(){W(G,null)}async function Y(){let e=h(G);if(!(!e||h(U))){W(U,e.id,!0),W(o,null);try{await Jt(e.id),W(G,null),g(),v()}catch(e){W(o,an(e,`Request failed.`),!0)}finally{W(U,null)}}}let X=I(null),oe=I(!1);async function Z(){try{W(X,await Yt(),!0)}catch{}}ee(()=>{Z()}),ee(()=>{v()});function se(){W(oe,!1),g(),Z(),v()}let ce=[{id:`codex`,label:`Codex`},{id:`claude`,label:`Claude Code`},{id:`copilot`,label:`Copilot`},{id:`pi`,label:`Pi`}],le=E(()=>h(c).find(e=>e.id===h(s))),Q=I(null),ue=I(!1),de=I(``),fe=I(!1);async function pe(){W(ue,!0),W(de,``);try{let{value:e}=await Ot(`op_api_key`);W(Q,e.trim(),!0)}catch(e){W(de,an(e,`Could not read the API key.`),!0)}finally{W(ue,!1)}}function me(){W(Q,null),W(fe,!1)}async function he(){if(h(Q))try{await navigator.clipboard.writeText(h(Q)),W(fe,!0)}catch{W(de,`Copy failed — select the value and copy manually.`)}}async function ge(e,t){if(!h(m)){W(m,`${e}:${t}`),W(o,null);try{await Xt(e,t),await v()}catch(e){W(o,an(e,`Request failed.`),!0)}finally{W(m,null)}}}var _e=td(),ve=H(_e),ye=B(ve),be=M(B(ye),2),xe=B(be),Se=M(xe,2),Ce=M(Se,2),we=B(Ce),Te=e=>{$(e,{})};l(we,e=>{h(i)&&e(Te)}),C(),q(Ce),q(be),q(ye);var Ee=M(ye,2),De=e=>{var t=Mu(),r=B(t),i=B(r,!0);q(r);var a=M(r,2);q(t),_(()=>u(i,h(o))),n(`click`,a,()=>W(o,null)),d(e,t)};l(Ee,e=>{h(o)&&e(De)});var Oe=M(Ee,2),ke=B(Oe),Ae=M(B(ke),4),je=e=>{var t=Nu(),r=B(t),i=e=>{$(e,{})};l(r,e=>{h(ue)&&e(i)}),C(),q(t),_(()=>t.disabled=h(ue)),n(`click`,t,()=>void pe()),d(e,t)},Me=e=>{var t=Pu(),r=B(t);O(r);var i=M(r,2),a=B(i,!0);q(i);var o=M(i,2);q(t),_(()=>{A(r,h(Q)),u(a,h(fe)?`Copied`:`Copy`)}),n(`click`,i,()=>void he()),n(`click`,o,me),d(e,t)};l(Ae,e=>{h(Q)===null?e(je):e(Me,-1)});var Ne=M(Ae,2),Pe=e=>{var t=Fu(),n=B(t,!0);q(t),_(()=>u(n,h(de))),d(e,t)};l(Ne,e=>{h(de)&&e(Pe)}),q(ke);var Fe=M(ke,2),Ie=B(Fe);let Le;P(M(Ie,2),17,()=>ce,e=>e.id,(e,t)=>{var r=Iu();let i;var a=B(r,!0);q(r),_(()=>{i=S(r,1,`svelte-19zt4ct`,null,i,{active:h(s)===h(t).id}),u(a,h(t).label)}),n(`click`,r,()=>{W(s,h(t).id,!0)}),d(e,r)}),q(Fe);var Re=M(Fe,2),ze=e=>{var t=a(),o=H(t),s=e=>{zr(e,{icon:e=>{Be(e,{size:40})},children:(e,t)=>{d(e,Lu())},$$slots:{icon:!0,default:!0}})},c=e=>{var t=Ru();$(B(t),{}),C(2),q(t),d(e,t)},f=e=>{zr(e,{icon:e=>{et(e,{size:40})},children:(e,t)=>{var n=zu();C(2),d(e,n)},$$slots:{icon:!0,default:!0}})},p=e=>{var t=Ku(),r=H(t),i=B(r),o=M(B(i),2),s=B(o);s.value=s.__value=``,P(M(s),17,()=>h(y),e=>e.id,(e,t)=>{var n=a(),r=H(n),i=e=>{var n=Vu();P(n,21,()=>h(t).models,e=>e.id,(e,n)=>{var r=Bu(),i=B(r,!0);q(r);var a={};_(()=>{u(i,h(n).name||h(n).id),a!==(a=`${h(t).id??``}/${h(n).id??``}`)&&(r.value=r.__value=`${h(t).id??``}/${h(n).id??``}`)}),d(e,r)}),q(n),_(()=>V(n,`label`,h(t).name)),d(e,n)};l(r,e=>{h(t).models.length>0&&e(i)}),d(e,n)}),q(o),q(i);var c=M(i,2),f=M(B(c),2),p=B(f);p.value=p.__value=``,P(M(p),17,()=>h(y),e=>e.id,(e,t)=>{var n=a(),r=H(n),i=e=>{var n=Uu();P(n,21,()=>h(t).models,e=>e.id,(e,n)=>{var r=Hu(),i=B(r,!0);q(r);var a={};_(()=>{u(i,h(n).name||h(n).id),a!==(a=`${h(t).id??``}/${h(n).id??``}`)&&(r.value=r.__value=`${h(t).id??``}/${h(n).id??``}`)}),d(e,r)}),q(n),_(()=>V(n,`label`,h(t).name)),d(e,n)};l(r,e=>{h(t).models.length>0&&e(i)}),d(e,n)}),q(f),q(c);var m=M(c,2),g=e=>{var t=Wu(),n=B(t,!0);q(t),_(()=>u(n,h(D))),d(e,t)};l(m,e=>{h(D)&&e(g)}),q(r);var v=M(r,2);P(v,21,()=>h(y),e=>e.id,(e,t)=>{var r=Gu(),i=B(r),a=B(i),o=B(a),s=B(o,!0);q(o);var c=M(o,2),f=B(c,!0);q(c),q(a),q(i);var p=M(i,2),m=B(p),g=e=>{$(e,{})};l(m,e=>{h(U)===h(t).id&&e(g)}),C(),q(p),q(r),_(e=>{u(s,h(t).name),u(f,e),p.disabled=h(U)===h(t).id},[()=>ne(h(t))]),n(`click`,p,()=>ie(h(t))),d(e,r)}),q(v),n(`change`,o,e=>void N(`model`,e.currentTarget.value)),k(o,()=>h(w),e=>W(w,e)),n(`change`,f,e=>void N(`small_model`,e.currentTarget.value)),k(f,()=>h(T),e=>W(T,e)),d(e,t)};l(o,e=>{!h(r).available&&!h(i)?e(s):h(i)&&h(r).providers.length===0?e(c,1):h(y).length===0?e(f,2):e(p,-1)}),d(e,t)},Ve=e=>{var t=qu();$(B(t),{}),C(2),q(t),d(e,t)},He=e=>{var t=Qu(),r=B(t),i=B(r),a=B(i),o=B(a,!0);q(a);var s=M(a,2),c=B(s,!0);q(s),q(i);var f=M(i,2);let p;var g=B(f,!0);q(f),q(r);var v=M(r,2);P(v,20,()=>h(le).configPaths,e=>e,(e,t)=>{var n=Ju(),r=B(n,!0);q(n),_(()=>u(r,t)),d(e,n)}),q(v);var y=M(v,2),b=e=>{var t=Xu(),r=M(H(t),2);P(r,21,()=>h(le).availableProviderMappings,e=>e.providerId,(e,t)=>{var r=Yu(),i=B(r,!0);q(r),_(()=>{r.disabled=h(m)!==null,u(i,h(m)===`${h(le).id}:${h(t).providerId}`?`Writing…`:`Use existing ${h(t).label}`)}),n(`click`,r,()=>void ge(h(le).id,h(t).providerId)),d(e,r)}),q(r),d(e,t)},x=e=>{d(e,Zu())};l(y,e=>{h(le).availableProviderMappings.length>0?e(b):e(x,-1)}),q(t),_(()=>{u(o,h(le).name),u(c,h(le).configured?`Detected existing config under the assistant home bind mount.`:`No config file detected under the assistant home bind mount yet.`),p=S(f,1,`assistant-cli-status svelte-19zt4ct`,null,p,{configured:h(le).configured}),u(g,h(le).configured?`Configured`:`Not configured`)}),d(e,t)};l(Re,e=>{h(s)===`opencode`?e(ze):h(p)?e(Ve,1):h(le)&&e(He,2)}),q(Oe),q(ve);var Ue=M(ve,2),We=e=>{Yl(e,{get providers(){return h(b)},onselect:K,oncustom:J,onclose:()=>{W(F,!1)}})};l(Ue,e=>{h(F)&&e(We)});var Ge=M(Ue,2),Ke=e=>{pu(e,{get provider(){return h(L)},onaction:re,onclose:()=>{W(L,null)}})};l(Ge,e=>{h(L)&&e(Ke)});var qe=M(Ge,2),Je=e=>{bu(e,{onaction:re,onclose:()=>{W(z,!1)}})};l(qe,e=>{h(z)&&e(Je)});var Ye=M(qe,2),Xe=e=>{var t=ed(),r=M(B(t),2),i=B(r);q(r);var a=M(r,2),o=B(a),s=B(o),c=e=>{var t=$u();$(H(t),{}),C(),d(e,t)},p=e=>{d(e,f(`Disconnect`))};l(s,e=>{h(U)===null?e(p,-1):e(c)}),q(o);var m=M(o,2);q(a),q(t),_(()=>{u(i,`Disconnect ${h(G).name??``}? Stored credentials will be removed.`),o.disabled=h(U)!==null,m.disabled=h(U)!==null}),n(`click`,o,()=>void Y()),n(`click`,m,ae),d(e,t)};l(Ye,e=>{h(G)&&e(Xe)});var Ze=M(Ye,2),Qe=e=>{ju(e,{get providerCount(){return h(X).providerCount},get credentialCount(){return h(X).credentialCount},get configPath(){return h(X).configPath},get authPath(){return h(X).authPath},onimported:se,oncancel:()=>{W(oe,!1)}})};l(Ze,e=>{h(oe)&&h(X)&&e(Qe)}),_(()=>{xe.disabled=!h(X)?.detected,V(xe,`title`,h(X)?.detected?`Import ${h(X).providerCount} providers from host OpenCode`:`No host OpenCode installation detected`),Ce.disabled=h(i)||h(p),Le=S(Ie,1,`svelte-19zt4ct`,null,Le,{active:h(s)===`opencode`})}),n(`click`,xe,()=>{W(oe,!0)}),n(`click`,Se,()=>{W(F,!0)}),n(`click`,Ce,()=>{g(),v()}),n(`click`,Ie,()=>{W(s,`opencode`)}),d(e,_e),R()}J([`click`,`change`]);var rd=s(`<button class="btn btn-secondary btn-sm"> </button> <button class="btn btn-secondary btn-sm"><!> Refresh</button>`,1),id=s(`<option> </option>`),ad=s(`<div class="control-group svelte-coqj2u"><label for="log-service" class="control-label svelte-coqj2u">Service</label> <select id="log-service" class="control-input svelte-coqj2u"><option>All services</option><!></select></div>`),od=s(`<option>No routines yet</option>`),sd=s(`<option> </option>`),cd=s(`<div class="control-group svelte-coqj2u"><label for="log-automation" class="control-label svelte-coqj2u">Routine</label> <select id="log-automation" class="control-input svelte-coqj2u"><!></select></div>`),ld=s(`<div class="control-group control-group--toggle svelte-coqj2u"><label class="toggle-label svelte-coqj2u"><input type="checkbox"/> <span>Auto-scroll</span></label></div>`),ud=s(`<div class="error-banner svelte-coqj2u"><span> </span></div>`),dd=s(`<pre class="log-output svelte-coqj2u"> </pre>`),fd=c(`<svg aria-hidden="true" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line></svg>`),pd=s(`<p>No log output — the container may not be running or has no recent output.</p>`),md=s(`<p>No routine output yet.</p>`),hd=s(`<p>Select a service and click "Load service logs" to view container output.</p>`),gd=s(`<p>Select a routine and click "Load routine log" to view its latest output.</p>`),_d=s(`<div class="controls svelte-coqj2u"><div class="control-group control-group--source svelte-coqj2u"><span class="control-label svelte-coqj2u">Source</span> <div class="source-switch svelte-coqj2u" role="tablist" aria-label="Journal source"><button type="button" role="tab">Service logs</button> <button type="button" role="tab">Routine logs</button></div></div> <!> <div class="control-group svelte-coqj2u"><label for="log-tail" class="control-label svelte-coqj2u">Recent lines</label> <select id="log-tail" class="control-input svelte-coqj2u"><option>50</option><option>100</option><option>250</option><option>500</option><option>1000</option></select></div> <!> <button class="btn btn-primary btn-sm"><!> </button></div> <div class="panel-body panel-body--flush"><!> <!></div>`,1);function vd(e,t){j(t,!0);let r=I(``),i=I(!1),o=I(!1),s=I(``),c=I(`services`),f=I(``),p=I(``),m=I(100),g=I(!0),v=I(!1),y=I(void 0);async function b(){W(o,!0),W(s,``);try{if(h(c)===`services`){let e=await yt({service:h(f)||void 0,tail:h(m)});e.ok?(W(r,e.logs,!0),W(i,!0),h(g)&&h(y)&&requestAnimationFrame(()=>{h(y)&&(h(y).scrollTop=h(y).scrollHeight)})):W(s,e.error??`Failed to fetch logs.`,!0)}else{if(!h(p)&&t.automations.length>0&&W(p,t.automations[0]??``,!0),!h(p)){W(r,``),W(i,!0);return}W(r,(await vt(h(p),h(m))).lines.join(`
|
|
122
|
+
`),!0),W(i,!0)}}catch(e){W(s,e instanceof Error?e.message:`Failed to fetch logs.`,!0)}finally{W(o,!1)}}async function x(){h(r)&&(await navigator.clipboard.writeText(h(r)),W(v,!0),setTimeout(()=>{W(v,!1)},2e3))}ee(()=>{b()});function T(e){W(c,e,!0),W(s,``),W(r,``),W(i,!1),e===`routines`&&!h(p)&&W(p,t.automations[0]??``,!0),b()}hi(e,{title:`Journal`,role:`tabpanel`,actions:e=>{var t=rd(),i=H(t),a=B(i,!0);q(i);var s=M(i,2),c=B(s),f=e=>{$(e,{})};l(c,e=>{h(o)&&e(f)}),C(),q(s),_(()=>{i.disabled=!h(r),u(a,h(v)?`Copied!`:`Copy`),s.disabled=h(o)}),n(`click`,i,()=>void x()),n(`click`,s,()=>void b()),d(e,t)},children:(e,v)=>{var x=_d(),E=H(x),D=B(E),A=M(B(D),2),j=B(A);let N;var I=M(j,2);let L;q(A),q(D);var R=M(D,2),z=e=>{var r=ad(),i=M(B(r),2),a=B(i);a.value=a.__value=``,P(M(a),16,()=>t.services,e=>e,(e,t)=>{var n=id(),r=B(n,!0);q(n);var i={};_(()=>{u(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),d(e,n)}),q(i),q(r),n(`change`,i,()=>void b()),k(i,()=>h(f),e=>W(f,e)),d(e,r)},ee=e=>{var r=cd(),i=M(B(r),2),o=B(i),s=e=>{var t=od();t.value=t.__value=``,d(e,t)},c=e=>{var n=a();P(H(n),16,()=>t.automations,e=>e,(e,t)=>{var n=sd(),r=B(n,!0);q(n);var i={};_(()=>{u(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),d(e,n)}),d(e,n)};l(o,e=>{t.automations.length===0?e(s):e(c,-1)}),q(i),q(r),n(`change`,i,()=>void b()),k(i,()=>h(p),e=>W(p,e)),d(e,r)};l(R,e=>{h(c)===`services`?e(z):e(ee,-1)});var U=M(R,2),G=M(B(U),2),te=B(G);te.value=te.__value=50;var ne=M(te);ne.value=ne.__value=100;var K=M(ne);K.value=K.__value=250;var J=M(K);J.value=J.__value=500;var re=M(J);re.value=re.__value=1e3,q(G),q(U);var ie=M(U,2),ae=e=>{var t=ld(),n=B(t),r=B(n);O(r),C(2),q(n),q(t),F(r,()=>h(g),e=>W(g,e)),d(e,t)};l(ie,e=>{h(c)===`services`&&e(ae)});var Y=M(ie,2),X=B(Y),oe=e=>{$(e,{})};l(X,e=>{h(o)&&e(oe)});var Z=M(X);q(Y),q(E);var se=M(E,2),ce=B(se),le=e=>{var t=ud(),n=B(t),r=B(n,!0);q(n),q(t),_(()=>u(r,h(s))),d(e,t)};l(ce,e=>{h(s)&&e(le)});var Q=M(ce,2),ue=e=>{var t=dd(),n=B(t,!0);q(t),w(t,e=>W(y,e),()=>h(y)),_(()=>u(n,h(r))),d(e,t)},de=e=>{zr(e,{icon:e=>{d(e,fd())},children:(e,t)=>{var n=a(),r=H(n),o=e=>{var t=a(),n=H(t),r=e=>{d(e,pd())},i=e=>{d(e,md())};l(n,e=>{h(c)===`services`?e(r):e(i,-1)}),d(e,t)},s=e=>{var t=a(),n=H(t),r=e=>{d(e,hd())},i=e=>{d(e,gd())};l(n,e=>{h(c)===`services`?e(r):e(i,-1)}),d(e,t)};l(r,e=>{h(i)?e(o):e(s,-1)}),d(e,n)},$$slots:{icon:!0,default:!0}})};l(Q,e=>{h(r)?e(ue):h(o)||e(de,1)}),q(se),_(()=>{N=S(j,1,`source-pill svelte-coqj2u`,null,N,{"source-pill--active":h(c)===`services`}),V(j,`aria-selected`,h(c)===`services`),L=S(I,1,`source-pill svelte-coqj2u`,null,L,{"source-pill--active":h(c)===`routines`}),V(I,`aria-selected`,h(c)===`routines`),Y.disabled=h(o),u(Z,` ${h(c)===`services`?`Load service logs`:`Load routine log`}`)}),n(`click`,j,()=>T(`services`)),n(`click`,I,()=>T(`routines`)),n(`change`,G,()=>void b()),k(G,()=>h(m),e=>W(m,e)),n(`click`,Y,()=>void b()),d(e,x)},$$slots:{actions:!0,default:!0}}),R()}J([`click`,`change`]);var yd=s(`<div class="error-banner svelte-epscb2"><span> </span></div>`),bd=s(`<p class="empty-note svelte-epscb2">No secret files found.</p>`),xd=s(`<div><button class="secret-name svelte-epscb2"><span class="mono svelte-epscb2"> </span> <span class="secret-size svelte-epscb2"> </span></button> <button class="btn btn-ghost btn-sm">✕</button></div>`),Sd=s(`<div class="editor-head svelte-epscb2"><span class="mono svelte-epscb2"> </span> <label class="reveal-toggle svelte-epscb2"><input type="checkbox" class="svelte-epscb2"/> Reveal</label></div> <textarea spellcheck="false" rows="16"></textarea> <div class="editor-actions svelte-epscb2"><button class="btn btn-secondary btn-sm">Close</button> <button class="btn btn-primary btn-sm"><!> Save</button></div>`,1),Cd=s(`<div class="editor-empty svelte-epscb2"><!> <p class="svelte-epscb2">Select a file to view or edit its contents.</p> <button class="btn btn-secondary btn-sm">New secret</button></div>`),wd=s(`<div class="panel" role="tabpanel"><div class="panel-header"><div><h2>Secrets</h2> <p class="panel-subtitle">Encrypted key files under knowledge/secrets/</p></div> <div class="panel-header-actions"><button class="btn btn-secondary btn-sm"><!> Refresh</button></div></div> <!> <div class="secrets-layout svelte-epscb2"><div class="secrets-list svelte-epscb2"><!> <!> <div class="new-secret svelte-epscb2"><label class="new-secret-label svelte-epscb2" for="new-secret-name">New secret file</label> <div class="new-secret-row svelte-epscb2"><input id="new-secret-name" class="control-input" type="text" spellcheck="false" placeholder="new-file-name"/> <button class="btn btn-secondary btn-sm">Add</button></div></div></div> <div class="secrets-editor svelte-epscb2"><!></div></div></div>`);function Td(e,t){j(t,!0);let r=Sr(async()=>(await Dt()).files,{fallback:`Failed to list secret files.`}),i=E(()=>r.data??[]),a=I(!1),o=I(null),s=I(``),c=I(!1),f=I(``),p=I(void 0);async function m(){await r.reload()}async function g(e){if(!h(a)){W(a,!0),r.error=``;try{let t=await Ot(e);W(o,t.name,!0),W(s,t.value,!0),W(c,!1)}catch(e){Y.push(`error`,e instanceof Error?e.message:`Failed to read file.`)}finally{W(a,!1)}}}function v(){W(o,null),W(s,``),W(c,!1)}async function y(){if(!(!h(o)||h(a))){W(a,!0);try{await kt(h(o),h(s)),Y.push(`success`,`Saved ${h(o)}.`),await m()}catch(e){Y.push(`error`,e instanceof Error?e.message:`Failed to save file.`)}finally{W(a,!1)}}}async function b(e){if(!h(a)&&confirm(`Delete secret file "${e}"? This cannot be undone.`)){W(a,!0);try{await At(e),Y.push(`success`,`Deleted ${e}.`),h(o)===e&&v(),await m()}catch(e){Y.push(`error`,e instanceof Error?e.message:`Failed to delete file.`)}finally{W(a,!1)}}}async function x(){let e=h(f).trim();if(!(!e||h(a))){W(a,!0);try{await kt(e,``),Y.push(`success`,`Created ${e}.`),W(f,``),await m(),await g(e)}catch(e){Y.push(`error`,e instanceof Error?e.message:`Failed to create file.`)}finally{W(a,!1)}}}ee(()=>{m()});var k=wd(),A=B(k),N=M(B(A),2),L=B(N),z=B(L),U=e=>{$(e,{})};l(z,e=>{r.loading&&e(U)}),C(),q(L),q(N),q(A);var G=M(A,2),te=e=>{var t=yd(),n=B(t),i=B(n,!0);q(n),q(t),_(()=>u(i,r.error)),d(e,t)};l(G,e=>{r.error&&e(te)});var ne=M(G,2),K=B(ne),J=B(K),re=e=>{d(e,bd())};l(J,e=>{h(i).length===0&&!r.loading&&e(re)});var ie=M(J,2);P(ie,17,()=>h(i),e=>e.name,(e,t)=>{var r=xd(),i=B(r),s=B(i),c=B(s,!0);q(s);var l=M(s,2),f=B(l,!0);q(l),q(i);var p=M(i,2);q(r),_(e=>{S(r,1,`secret-row ${h(o)===h(t).name?`active`:``}`,`svelte-epscb2`),i.disabled=h(a),V(i,`aria-label`,`Edit ${h(t).name??``}`),u(c,h(t).name),u(f,e),p.disabled=h(a),V(p,`aria-label`,`Delete ${h(t).name??``}`)},[()=>Te(h(t).size)]),n(`click`,i,()=>void g(h(t).name)),n(`click`,p,()=>void b(h(t).name)),d(e,r)});var ae=M(ie,2),X=M(B(ae),2),oe=B(X);O(oe),w(oe,e=>W(p,e),()=>h(p));var Z=M(oe,2);q(X),q(ae),q(K);var se=M(K,2),ce=B(se),le=e=>{var t=Sd(),r=H(t),i=B(r),f=B(i,!0);q(i);var p=M(i,2),m=B(p);O(m),C(),q(p),q(r);var g=M(r,2);D(g);var b=M(g,2),x=B(b),w=M(x,2),E=B(w),k=e=>{$(e,{})};l(E,e=>{h(a)&&e(k)}),C(),q(w),q(b),_(()=>{u(f,h(o)),S(g,1,`control-input editor-area ${h(c)?``:`masked`}`,`svelte-epscb2`),g.disabled=h(a),x.disabled=h(a),w.disabled=h(a)}),F(m,()=>h(c),e=>W(c,e)),T(g,()=>h(s),e=>W(s,e)),n(`click`,x,v),n(`click`,w,()=>void y()),d(e,t)},Q=e=>{var t=Cd(),r=B(t);et(r,{size:24});var i=M(r,4);q(t),n(`click`,i,()=>h(p)?.focus()),d(e,t)};l(ce,e=>{h(o)?e(le):e(Q,-1)}),q(se),q(ne),q(k),_(e=>{L.disabled=r.loading||h(a),oe.disabled=h(a),Z.disabled=e},[()=>h(a)||!h(f).trim()]),n(`click`,L,()=>void m()),T(oe,()=>h(f),e=>W(f,e)),n(`click`,Z,()=>void x()),d(e,k),R()}J([`click`]);var Ed=s(`<div class="error-banner svelte-obkjlq"><span> </span></div>`),Dd=s(`<div class="card-actions svelte-obkjlq"><button class="btn btn-primary btn-sm"><!> Save stack settings</button></div>`),Od=s(`<section class="settings-card svelte-obkjlq"><h3 class="svelte-obkjlq">Compose Project Name</h3> <p class="section-note svelte-obkjlq">This writes <code>OP_PROJECT_NAME</code> in <code> </code>. If unset, OpenPalm defaults to <code>openpalm</code>.</p> <label class="field svelte-obkjlq" for="project-name"><span>Project name</span> <input id="project-name" class="control-input mono svelte-obkjlq" type="text" spellcheck="false" placeholder="openpalm"/></label> <p class="field-hint svelte-obkjlq">Lowercase letters, numbers, dashes, and underscores only. This affects Docker Compose naming and collision detection.</p></section> <section class="settings-card svelte-obkjlq"><h3 class="svelte-obkjlq">LAN Exposure</h3> <p class="section-note svelte-obkjlq">This writes <code>OP_ASSISTANT_BIND_ADDRESS</code> in <code> </code>.</p> <label class="field-inline svelte-obkjlq" for="assistant-lan-exposure"><input id="assistant-lan-exposure" type="checkbox" class="svelte-obkjlq"/> <span>Expose the assistant OpenCode server on the host LAN</span></label> <p class="field-hint svelte-obkjlq">Off keeps the host bind on <code>127.0.0.1</code>. On switches it to <code>0.0.0.0</code> so other devices on your LAN can reach the host port.</p> <!></section>`,1),kd=s(`<span class="unsaved-hint svelte-obkjlq" aria-live="polite">Unsaved changes</span>`),Ad=s(`<div class="card-actions svelte-obkjlq"><!> <button class="btn btn-primary btn-sm"><!> Save persona</button></div>`),jd=s(`<section class="settings-card svelte-obkjlq"><h3 class="svelte-obkjlq">Persona</h3> <p class="section-note svelte-obkjlq">Edit the assistant persona markdown mounted into the assistant OpenCode instance.</p> <div class="path-chip svelte-obkjlq"> </div> <textarea class="control-input persona-editor mono svelte-obkjlq" rows="20" spellcheck="false"></textarea> <!></section>`),Md=s(`<div class="panel" role="tabpanel"><div class="panel-header"><div><h2>Assistant</h2> <p class="panel-subtitle">Persona · stack config</p></div> <div class="panel-header-actions"><button class="btn btn-secondary btn-sm"><!> Refresh</button></div></div> <!> <div class="settings-grid svelte-obkjlq"><!> <!></div></div>`);function Nd(e,t){j(t,!0);let r=I(!1),i=I(``),a=I(!1),o=I(`openpalm`),s=I(!1),c=I(`knowledge/env/stack.env`),f=I(!1),p=I(`config/assistant/persona.md`),m=I(``),g=I(``),v=fe(`host:stack:read`),y=fe(`host:stack:write`),b=fe(`assistant-settings:read`),x=fe(`assistant-settings:write`);async function S(){W(r,!0),W(i,``);try{if(v){let e=await It();W(o,e.projectName,!0),W(s,e.lanExposureEnabled,!0),W(c,e.stackEnvPath,!0)}if(b){let e=await Rt();W(p,e.personaPath,!0),W(m,e.personaContent,!0),W(g,e.personaContent,!0)}}catch(e){W(i,e instanceof Error?e.message:`Failed to load assistant settings.`,!0)}finally{W(r,!1)}}async function w(){W(a,!0),W(i,``);try{let e=await Lt({projectName:h(o),lanExposureEnabled:h(s)});W(o,e.projectName,!0),W(s,e.lanExposureEnabled,!0),Y.push(`success`,e.projectRenamed?"Stack settings saved. Project name changed — run `openpalm restart` (or `openpalm update`) to move the whole stack to the new project name.":`Stack settings saved. Restart the assistant container to apply them.`)}catch(e){let t=e instanceof Error?e.message:`Failed to save stack settings.`;W(i,t,!0),Y.push(`error`,t)}finally{W(a,!1)}}async function k(){W(f,!0),W(i,``);try{let e=await zt({personaContent:h(m)});W(m,e.personaContent,!0),W(g,e.personaContent,!0),Y.push(`success`,`Persona saved. Restart the assistant container to apply it.`)}catch(e){let t=e instanceof Error?e.message:`Failed to save persona.`;W(i,t,!0),Y.push(`error`,t)}finally{W(f,!1)}}let A=E(()=>h(a)||h(f)),N=E(()=>h(m)!==h(g));ee(()=>{S()});var P=Md(),L=B(P),z=M(B(L),2),V=B(z),U=B(V),G=e=>{$(e,{})};l(U,e=>{h(r)&&e(G)}),C(),q(V),q(z),q(L);var te=M(L,2),ne=e=>{var t=Ed(),n=B(t),r=B(n,!0);q(n),q(t),_(()=>u(r,h(i))),d(e,t)};l(te,e=>{h(i)&&e(ne)});var K=M(te,2),J=B(K),re=e=>{var t=Od(),i=H(t),f=M(B(i),2),p=M(B(f),3),m=B(p,!0);q(p),C(3),q(f);var g=M(f,2),v=M(B(g),2);O(v),q(g),C(2),q(i);var b=M(i,2),x=M(B(b),2),S=M(B(x),3),E=B(S,!0);q(S),C(),q(x);var D=M(x,2),k=B(D);O(k),C(2),q(D);var j=M(D,4),N=e=>{var t=Dd(),i=B(t),o=B(i),s=e=>{$(e,{})};l(o,e=>{h(a)&&e(s)}),C(),q(i),q(t),_(()=>i.disabled=h(r)||h(A)),n(`click`,i,()=>void w()),d(e,t)};l(j,e=>{y&&e(N)}),q(b),_(()=>{u(m,h(c)),v.disabled=h(r)||h(A)||!y,u(E,h(c)),k.disabled=h(r)||h(A)||!y}),T(v,()=>h(o),e=>W(o,e)),F(k,()=>h(s),e=>W(s,e)),d(e,t)};l(J,e=>{v&&e(re)});var ie=M(J,2),ae=e=>{var t=jd(),i=M(B(t),4),a=B(i,!0);q(i);var o=M(i,2);D(o);var s=M(o,2),c=e=>{var t=Ad(),i=B(t),a=e=>{d(e,kd())};l(i,e=>{h(N)&&e(a)});var o=M(i,2),s=B(o),c=e=>{$(e,{})};l(s,e=>{h(f)&&e(c)}),C(),q(o),q(t),_(()=>o.disabled=h(r)||h(A)||!h(N)),n(`click`,o,()=>void k()),d(e,t)};l(s,e=>{x&&e(c)}),q(t),_(()=>{u(a,h(p)),o.disabled=h(r)||h(A)||!x}),T(o,()=>h(m),e=>W(m,e)),d(e,t)};l(ie,e=>{b&&e(ae)}),q(K),q(P),_(()=>V.disabled=h(r)||h(A)),n(`click`,V,()=>void S()),d(e,P),R()}J([`click`]);var Pd=s(`<span class="tool-icon svelte-icksz3" aria-hidden="true"><!></span>`),Fd=s(`<span class="tool-icon svelte-icksz3" aria-hidden="true"><!></span>`),Id=s(`<span class="tool-icon svelte-icksz3" aria-hidden="true"><!></span>`),Ld=s(`<span class="tool-icon svelte-icksz3" aria-hidden="true"><!></span>`),Rd=s(`<span class="tool-icon svelte-icksz3" aria-hidden="true"><!></span>`),zd=s(`<span class="tool-icon svelte-icksz3" aria-hidden="true"><!></span>`),Bd=s(`<span class="tool-icon svelte-icksz3" aria-hidden="true"><!></span>`),Vd=s(`<span class="tool-icon svelte-icksz3" aria-hidden="true"><!></span>`),Hd=s(`<span class="tool-icon svelte-icksz3" aria-hidden="true"><!></span>`),Ud=s(`<span class="tool-icon svelte-icksz3" aria-hidden="true"><!></span>`),Wd=s(`<span class="tool-icon svelte-icksz3" aria-hidden="true"><!></span>`),Gd=s(`<button type="button"><!></button>`),Kd=s(`<div></div>`),qd=s(`<pre> </pre>`),Jd=s(`<div> </div>`),Yd=s(`<div class="tool-modal-row svelte-icksz3"><div class="tool-modal-label svelte-icksz3"> </div> <div class="tool-modal-value svelte-icksz3"><!></div></div>`),Xd=s(`<div class="tool-modal-scrim svelte-icksz3"></div> <div class="tool-modal-shell svelte-icksz3"><div class="tool-modal svelte-icksz3" role="dialog" aria-modal="true" tabindex="-1"><div class="tool-modal-header svelte-icksz3"><div class="tool-modal-header-copy svelte-icksz3"><div class="tool-modal-kicker svelte-icksz3"> </div> <h3 class="tool-modal-title svelte-icksz3"> </h3></div> <button class="tool-modal-close svelte-icksz3" type="button" aria-label="Close tool details"><!></button></div> <div class="tool-modal-grid svelte-icksz3"></div></div></div>`,1),Zd=s(`<!> <!>`,1);function Qd(e,t){j(t,!0);let r=b(t,`muted`,3,!1),i=b(t,`bordered`,3,!1),a=b(t,`ariaLabel`,3,`Assistant tool activity`),o=I(null),s=Ae();function c(e){W(o,e,!0)}function f(){W(o,null)}function m(){return h(o)?t.items.find(e=>e.id===h(o))??null:null}var g=Zd(),v=H(g),y=e=>{var s=Kd();let u;P(s,21,()=>t.items,e=>e.id,(e,t)=>{let r=E(()=>ye(h(t).tool,h(t).status));var i=Gd();let a;var s=B(i),u=e=>{var t=Pd();Qe(B(t),{size:13}),q(t),d(e,t)},f=e=>{var t=Fd();Ue(B(t),{size:13}),q(t),d(e,t)},p=e=>{var t=Id();Ge(B(t),{size:13}),q(t),d(e,t)},m=e=>{var t=Ld();Ye(B(t),{size:13}),q(t),d(e,t)},g=e=>{var t=Rd();qe(B(t),{size:13}),q(t),d(e,t)},v=e=>{var t=zd();He(B(t),{size:13}),q(t),d(e,t)},y=e=>{var t=Bd();We(B(t),{size:13}),q(t),d(e,t)},b=e=>{var t=Vd();Je(B(t),{size:13}),q(t),d(e,t)},x=e=>{var t=Hd();$e(B(t),{size:13}),q(t),d(e,t)},C=e=>{var t=Ud();ue(B(t),{size:13}),q(t),d(e,t)},w=e=>{var t=Wd();Ke(B(t),{size:13}),q(t),d(e,t)};l(s,e=>{h(r)===`alert`?e(u):h(r)===`done-circle`?e(f,1):h(r)===`refresh`?e(p,2):h(r)===`terminal`?e(m,3):h(r)===`search`?e(g,4):h(r)===`file`?e(v,5):h(r)===`edit`?e(y,6):h(r)===`link`?e(b,7):h(r)===`agent`?e(x,8):h(r)===`done`?e(C,9):e(w,-1)}),q(i),_((e,n)=>{a=S(i,1,`tool-icon-btn svelte-icksz3`,null,a,{selected:h(o)===h(t).id}),V(i,`aria-label`,e),V(i,`title`,n)},[()=>Oe(h(t)),()=>Oe(h(t))]),n(`click`,i,()=>c(h(t).id)),d(e,i)}),q(s),_(()=>{u=S(s,1,`tool-strip svelte-icksz3`,null,u,{"tool-strip-muted":r(),"tool-strip-bordered":i()}),V(s,`aria-label`,a())}),d(e,s)};l(v,e=>{t.items.length>0&&e(y)});var x=M(v,2),C=e=>{let t=E(m);var r=Xd(),i=H(r),a=M(i,2),o=B(a),c=B(o),g=B(c),v=B(g),y=B(v,!0);q(v);var b=M(v,2),x=B(b,!0);q(b),q(g);var C=M(g,2);Ce(B(C),{size:18}),q(C),q(c);var w=M(c,2);P(w,21,()=>ge(h(t)),e=>`${h(t).id}:${e.label}`,(e,t)=>{var n=Yd(),r=B(n),i=B(r,!0);q(r);var a=M(r,2),o=B(a),s=e=>{var n=qd();let r;var i=B(n,!0);q(n),_(()=>{r=S(n,1,`svelte-icksz3`,null,r,{"tool-pre-error":h(t).tone===`error`}),u(i,h(t).value)}),d(e,n)},c=E(()=>h(t).value.includes(`
|
|
123
|
+
`)||h(t).value.length>120),f=e=>{var n=Jd();let r;var i=B(n,!0);q(n),_(()=>{r=S(n,1,`svelte-icksz3`,null,r,{"tool-inline-error":h(t).tone===`error`}),u(i,h(t).value)}),d(e,n)};l(o,e=>{h(c)?e(s):e(f,-1)}),q(a),q(n),_(()=>u(i,h(t).label)),d(e,n)}),q(w),q(o),p(o,()=>s),q(a),_((e,t,n)=>{V(o,`aria-label`,e),u(y,t),u(x,n)},[()=>Oe(h(t)),()=>ve(h(t)),()=>_e(h(t))]),n(`click`,i,f),n(`keydown`,o,e=>Se(e,f)),n(`click`,C,f),d(e,r)},w=E(()=>m());l(x,e=>{h(w)&&e(C)}),d(e,g),R()}J([`click`,`keydown`]);function $d(e){return e.properties}function ef(e){let t=$d(e);if(typeof t?.sessionID==`string`)return t.sessionID;let n=t?.info;return typeof n?.id==`string`?n.id:``}function tf(e,t=140){return e.length>t?`${e.slice(0,t-1)}...`:e}function nf(e){return{type:e.type,properties:e.properties??{}}}function rf(e){let t=ef(e);if(!t)return null;let n=nf(e),r=pe(n,t);if(r)return{id:r.callID||`${r.tool}:${Date.now()}`,kind:`tool`,tool:r.tool,status:r.status,title:r.title??r.tool,detail:r.detail??``,output:r.output??``,error:r.error??``,updatedAt:Date.now()};let i=Pe(n,t);return i?{id:i.id,kind:`step`,tool:`step`,status:i.status,title:i.title,detail:i.detail??``,output:``,error:``,updatedAt:Date.now()}:null}function af(e){let t=$d(e),n=ef(e),r=e.type;if(r===`permission.asked`)return{kind:`permission`,severity:`high`,title:`Approval needed`,detail:typeof t?.permission==`string`?t.permission:`Assistant is waiting for a permission decision.`,sessionId:n};if(r===`question.asked`)return{kind:`question`,severity:`high`,title:`Answer requested`,detail:Array.isArray(t?.questions)?`${t.questions.length} question${t.questions.length===1?``:`s`} waiting for an answer.`:`Assistant asked a question.`,sessionId:n};if(r===`session.error`)return{kind:`error`,severity:`high`,title:`Session error`,detail:typeof t?.error==`string`?t.error:`Assistant session reported an error.`,sessionId:n};if(r===`session.deleted`)return{kind:`info`,severity:`medium`,title:`Session removed`,detail:`An active session was deleted.`,sessionId:n};if(r===`session.created`)return{kind:`info`,severity:`low`,title:`New session started`,detail:`A new conversation became active.`,sessionId:n};if(r.startsWith(`session.next.tool.`)){let e=typeof t?.tool==`string`?t.tool:`tool`,i=typeof t?.progress==`string`?t.progress:typeof t?.message==`string`?t.message:``;if(r.endsWith(`.failed`))return{kind:`error`,severity:`high`,title:`Tool failed: ${e}`,detail:tf(i||`Assistant tool execution failed.`),sessionId:n};if(r.endsWith(`.called`))return{kind:`info`,severity:`medium`,title:`Tool running: ${e}`,detail:tf(i||`Assistant started a tool.`),sessionId:n};if(r.endsWith(`.completed`))return{kind:`info`,severity:`low`,title:`Tool finished: ${e}`,detail:`Assistant completed a tool call.`,sessionId:n}}if(r===`message.part.updated`){let e=t?.part;if(typeof e?.tool==`string`&&e.state?.status===`error`)return{kind:`error`,severity:`high`,title:`Tool failed: ${e.tool}`,detail:typeof e.state.error==`string`?tf(e.state.error):`Assistant tool execution failed.`,sessionId:n}}return null}function of(e){let t=$d(e)?.info;if(typeof t?.title==`string`&&t.title.trim())return t.title;let n=af(e);if(n?.title)return n.title;let r=ef(e);return r?`Session ${r.slice(0,8)}`:`Assistant event`}function sf(e){let t=$d(e),n=af(e);if(n?.detail)return n.detail;if(!t)return``;if(e.type.startsWith(`session.next.tool.`)){let e=typeof t.tool==`string`?t.tool:`tool`,n=typeof t.progress==`string`?t.progress:typeof t.message==`string`?t.message:``;return tf(n?`${e}: ${n}`:e)}if(e.type===`message.part.updated`){let e=t.part;if(typeof e?.tool==`string`){let t=typeof e.state?.status==`string`?e.state.status:`updated`;return`${e.tool} ${t}`}if(typeof e?.type==`string`)return e.type}return e.type===`session.updated`?`Session metadata changed.`:``}var cf=s(`<div class="error-banner svelte-z6w8je"><span> </span></div>`),lf=s(`<div class="error-banner svelte-z6w8je"><span> </span></div>`),uf=s(`<div class="empty-card svelte-z6w8je">Nothing urgent has happened yet.</div>`),df=s(`<button class="attention-session mono svelte-z6w8je" type="button"> </button>`),ff=s(`<article><div class="attention-top svelte-z6w8je"><strong class="svelte-z6w8je"> </strong> <span class="svelte-z6w8je"> </span></div> <p class="svelte-z6w8je"> </p> <!></article>`),pf=s(`<div class="empty-card svelte-z6w8je">Waiting for OpenCode events...</div>`),mf=s(`<p class="svelte-z6w8je"> </p>`),hf=s(`<button class="attention-session mono svelte-z6w8je" type="button"> </button>`),gf=s(`<article class="feed-row svelte-z6w8je"><div class="feed-top svelte-z6w8je"><span class="feed-type mono svelte-z6w8je"> </span> <span class="svelte-z6w8je"> </span></div> <strong class="svelte-z6w8je"> </strong> <!> <!></article>`),_f=s(`<div class="empty-card svelte-z6w8je">No sessions found on the active assistant endpoint.</div>`),vf=s(`<button><div><div class="session-title svelte-z6w8je"> </div> <div class="session-meta svelte-z6w8je"> </div></div> <div class="session-stats svelte-z6w8je"><strong> </strong> <span class="session-id mono svelte-z6w8je"> </span></div></button>`),yf=s(`<tr class="svelte-z6w8je"><td colspan="2" class="empty-cell svelte-z6w8je">No events observed yet.</td></tr>`),bf=s(`<tr class="svelte-z6w8je"><td class="mono svelte-z6w8je"> </td><td class="svelte-z6w8je"> </td></tr>`),xf=s(`<div class="empty-card svelte-z6w8je">No session activity captured yet.</div>`),Sf=s(`<div class="hot-session-row svelte-z6w8je"><div><div class="session-title svelte-z6w8je"> </div> <div class="session-meta mono svelte-z6w8je"> </div></div> <strong> </strong></div>`),Cf=s(`<span class="svelte-z6w8je"> </span>`),wf=s(`<div class="empty-card svelte-z6w8je">No chat or tool activity available for this session yet.</div>`),Tf=s(`<div class="selected-meta svelte-z6w8je"><div class="svelte-z6w8je"><span class="svelte-z6w8je">Created</span><strong class="svelte-z6w8je"> </strong></div> <div class="svelte-z6w8je"><span class="svelte-z6w8je">Updated</span><strong class="svelte-z6w8je"> </strong></div> <div class="svelte-z6w8je"><span class="svelte-z6w8je">Session ID</span><strong class="mono svelte-z6w8je"> </strong></div> <div class="svelte-z6w8je"><span class="svelte-z6w8je">Events seen</span><strong class="svelte-z6w8je"> </strong></div></div> <div class="message-panel-head svelte-z6w8je"><span>Recent activity</span> <button class="btn btn-ghost btn-sm"><!> Refresh</button></div> <!> <div class="selected-message-list svelte-z6w8je"></div>`,1),Ef=s(`<div class="empty-card svelte-z6w8je">Select a session to inspect its recent chat and tool activity.</div>`),Df=s(`<div class="panel" role="tabpanel"><div class="panel-header"><div><h2>Activity</h2> <p class="panel-subtitle">Operator telemetry · live</p></div> <div class="panel-header-actions"><button class="btn btn-secondary btn-sm"><!> Refresh</button></div></div> <!> <!> <div class="endpoint-banner svelte-z6w8je"><div><div class="endpoint-label svelte-z6w8je">Endpoint</div> <div class="endpoint-value svelte-z6w8je"> </div> <div class="endpoint-url mono svelte-z6w8je"> </div></div> <div> </div></div> <div class="summary-grid svelte-z6w8je"><div class="summary-card svelte-z6w8je"><span class="summary-label svelte-z6w8je">Events / minute</span> <strong class="summary-value svelte-z6w8je"> </strong> <small class="svelte-z6w8je"> </small></div> <div class="summary-card svelte-z6w8je"><span class="summary-label svelte-z6w8je">Sessions</span> <strong class="summary-value svelte-z6w8je"> </strong> <small class="svelte-z6w8je"> </small></div> <div class="summary-card summary-card--warning svelte-z6w8je"><span class="summary-label svelte-z6w8je">Waiting on people</span> <strong class="summary-value svelte-z6w8je"> </strong> <small class="svelte-z6w8je">Permissions and answers that block the assistant.</small></div> <div><span class="summary-label svelte-z6w8je">Last event</span> <strong class="summary-value summary-value--small svelte-z6w8je"> </strong> <small class="svelte-z6w8je"> </small></div> <div class="summary-card svelte-z6w8je"><span class="summary-label svelte-z6w8je">Observed types</span> <strong class="summary-value svelte-z6w8je"> </strong> <small class="svelte-z6w8je"> </small></div> <div><span class="summary-label svelte-z6w8je">Failures seen</span> <strong class="summary-value svelte-z6w8je"> </strong> <small class="svelte-z6w8je"> </small></div></div> <div class="activity-layout svelte-z6w8je"><section class="card-section svelte-z6w8je"><div class="card-head svelte-z6w8je"><h3 class="svelte-z6w8je">Needs attention</h3> <span class="svelte-z6w8je"> </span></div> <div class="attention-list svelte-z6w8je"><!> <!></div> <div class="subsection-head svelte-z6w8je"><h4 class="svelte-z6w8je">Live event feed</h4> <span class="svelte-z6w8je"> </span></div> <div class="feed-list svelte-z6w8je"><!> <!></div></section> <section class="card-section svelte-z6w8je"><div class="card-head svelte-z6w8je"><h3 class="svelte-z6w8je">Recent sessions</h3> <span class="svelte-z6w8je"> </span></div> <div class="session-list svelte-z6w8je"><!> <!></div> <div class="subsection-head svelte-z6w8je"><h4 class="svelte-z6w8je">Event breakdown</h4> <span class="svelte-z6w8je"> </span></div> <div class="table-scroll svelte-z6w8je"><table class="data-table svelte-z6w8je"><thead><tr><th class="svelte-z6w8je">Type</th><th class="svelte-z6w8je">Total</th></tr></thead><tbody><!><!></tbody></table></div> <div class="subsection-head svelte-z6w8je"><h4 class="svelte-z6w8je">Most active sessions</h4> <span class="svelte-z6w8je"> </span></div> <div class="hot-session-list svelte-z6w8je"><!> <!></div></section></div> <section class="card-section session-details svelte-z6w8je"><div class="card-head svelte-z6w8je"><h3 class="svelte-z6w8je">Selected session</h3> <!></div> <!></section></div>`);function Of(e,t){j(t,!0);let i=I(!1),a=I(!1),o=I(``),s=I(``),c=I(`connecting`),f=I(x([])),p=I(null),m=I(x([])),g=I(x([])),v=I(x([])),y=I(x({})),b=I(x({})),w=I(x([])),T=I(null),D=I(x(Date.now())),O=null,k=null,A=null;function N(e){let t=af(e);if(!t)return;let n=Date.now();W(g,[{id:`${n}-${Math.random().toString(36).slice(2,8)}`,timestamp:n,...t},...h(g)].slice(0,30),!0)}function F(e){let t=Date.now(),n=e.type||`unknown`,r=ef(e),i=rf(e)??void 0;W(v,[{id:`${t}-${Math.random().toString(36).slice(2,8)}`,type:n,sessionId:r,title:of(e),detail:sf(e),toolState:i,timestamp:t},...h(v)].slice(0,80),!0),W(y,{...h(y),[n]:(h(y)[n]??0)+1},!0),r&&W(b,{...h(b),[r]:(h(b)[r]??0)+1},!0),W(w,[t,...h(w).filter(e=>t-e<=5*6e4)],!0),W(T,t,!0)}function L(e){let t=h(f).find(t=>t.id===e.id);if(t){W(f,[{...t,...e},...h(f).filter(t=>t.id!==e.id)].sort((e,t)=>t.updatedAt-e.updatedAt),!0);return}W(f,[e,...h(f)].sort((e,t)=>t.updatedAt-e.updatedAt),!0)}function U(e){let t=e.properties?.info,n=ef(e);if(e.type===`session.deleted`&&n){W(f,h(f).filter(e=>e.id!==n),!0),h(p)===n&&W(p,h(f)[0]?.id??null,!0);return}if(!n)return;let r=h(f).find(e=>e.id===n),i=typeof t?.time?.created==`number`?t.time.created:r?.createdAt??Date.now(),a=typeof t?.time?.updated==`number`?t.time.updated:Date.now();L({id:n,title:typeof t?.title==`string`?t.title:r?.title??``,createdAt:i,updatedAt:a})}async function G(){W(i,!0),W(o,``);try{W(f,await he(),!0),(!h(p)||!h(f).some(e=>e.id===h(p)))&&W(p,h(f)[0]?.id??null,!0)}catch(e){W(o,e instanceof Error?e.message:`Failed to load sessions.`,!0)}finally{W(i,!1)}}async function te(e){if(!e){W(m,[],!0);return}W(a,!0);try{W(m,await me(e),!0)}catch{W(m,[],!0)}finally{W(a,!1)}}async function ne(e){W(p,e,!0),await te(e)}function K(e){if(!e)return`n/a`;let t=new Date(e),n=new Date;return t.getFullYear()===n.getFullYear()&&t.getMonth()===n.getMonth()&&t.getDate()===n.getDate()?t.toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`,second:`2-digit`}):t.toLocaleString([],{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function J(e){return new Date(e).toLocaleString([],{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}let re=E(()=>h(f).find(e=>e.id===h(p))??null),ie=E(()=>h(g).filter(e=>e.kind===`permission`||e.kind===`question`).length),ae=E(()=>h(g).filter(e=>e.severity===`high`).length),Y=E(()=>h(f).filter(e=>h(D)-e.updatedAt<=5*6e4).length),X=E(()=>h(g).slice(0,10)),oe=E(()=>h(w).filter(e=>h(D)-e<=6e4).length),Z=E(()=>h(w).filter(e=>h(D)-e<=5*6e4).length),se=E(()=>Object.entries(h(y)).sort((e,t)=>t[1]-e[1]).slice(0,8)),ce=E(()=>h(f).map(e=>({...e,events:h(b)[e.id]??0})).sort((e,t)=>t.events-e.events||t.updatedAt-e.updatedAt).slice(0,8));ee(()=>{Me.load(),G().then(()=>te(h(p))),W(c,`connecting`),O=Ie({onConnect:()=>{W(c,`connected`),W(s,``)},onDisconnect:e=>{W(c,`disconnected`),W(s,e.message,!0)},onCreated:()=>{},onUpdated:()=>{},onDeleted:()=>{},onEvent:e=>{W(c,`connected`),N(e),F(e),U(e)}}),k=setInterval(()=>{G()},3e4),A=setInterval(()=>{W(D,Date.now(),!0)},5e3)}),z(()=>{O?.(),k&&clearInterval(k),A&&clearInterval(A)});var le=Df(),Q=B(le),ue=M(B(Q),2),de=B(ue),fe=B(de),pe=e=>{$(e,{})};l(fe,e=>{h(i)&&e(pe)}),C(),q(de),q(ue),q(Q);var ge=M(Q,2),_e=e=>{var t=cf(),n=B(t),r=B(n,!0);q(n),q(t),_(()=>u(r,h(o))),d(e,t)};l(ge,e=>{h(o)&&e(_e)});var ve=M(ge,2),ye=e=>{var t=lf(),n=B(t),r=B(n,!0);q(n),q(t),_(()=>u(r,h(s))),d(e,t)};l(ve,e=>{h(s)&&h(c)===`disconnected`&&e(ye)});var be=M(ve,2),xe=B(be),Se=M(B(xe),2),Ce=B(Se,!0);q(Se);var we=M(Se,2),Te=B(we,!0);q(we),q(xe);var Ee=M(xe,2),De=B(Ee,!0);q(Ee),q(be);var Oe=M(be,2),ke=B(Oe),Ae=M(B(ke),2),je=B(Ae,!0);q(Ae);var Ne=M(Ae,2),Pe=B(Ne);q(Ne),q(ke);var Fe=M(ke,2),Le=M(B(Fe),2),Re=B(Le,!0);q(Le);var ze=M(Le,2),Be=B(ze);q(ze),q(Fe);var Ve=M(Fe,2),He=M(B(Ve),2),Ue=B(He,!0);q(He),C(2),q(Ve);var We=M(Ve,2);let Ge;var Ke=M(B(We),2),qe=B(Ke,!0);q(Ke);var Je=M(Ke,2),Ye=B(Je,!0);q(Je),q(We);var Xe=M(We,2),Qe=M(B(Xe),2),$e=B(Qe,!0);q(Qe);var et=M(Qe,2),tt=B(et);q(et),q(Xe);var nt=M(Xe,2);let rt;var it=M(B(nt),2),at=B(it,!0);q(it);var ot=M(it,2),st=B(ot,!0);q(ot),q(nt),q(Oe);var ct=M(Oe,2),lt=B(ct),ut=B(lt),dt=M(B(ut),2),ft=B(dt,!0);q(dt),q(ut);var pt=M(ut,2),mt=B(pt),ht=e=>{d(e,uf())};l(mt,e=>{h(X).length===0&&e(ht)}),P(M(mt,2),17,()=>h(X),e=>e.id,(e,t)=>{var r=ff(),i=B(r),a=B(i),o=B(a,!0);q(a);var s=M(a,2),c=B(s,!0);q(s),q(i);var p=M(i,2),m=B(p,!0);q(p);var g=M(p,2),v=e=>{let r=E(()=>h(f).find(e=>e.id===h(t).sessionId)?.title);var i=df(),a=B(i,!0);q(i),_(e=>{V(i,`aria-label`,h(t).sessionId),u(a,e)},[()=>h(r)||`Session ${h(t).sessionId.slice(0,8)}…`]),n(`click`,i,()=>void ne(h(t).sessionId)),d(e,i)};l(g,e=>{h(t).sessionId&&e(v)}),q(r),_(e=>{S(r,1,`attention-item attention-item--${h(t).severity??``}`,`svelte-z6w8je`),u(o,h(t).title),u(c,e),u(m,h(t).detail)},[()=>K(h(t).timestamp)]),d(e,r)}),q(pt);var gt=M(pt,2),_t=M(B(gt),2),vt=B(_t,!0);q(_t),q(gt);var yt=M(gt,2),bt=B(yt),xt=e=>{d(e,pf())};l(bt,e=>{h(v).length===0&&e(xt)}),P(M(bt,2),17,()=>h(v).slice(0,12),e=>e.id,(e,t)=>{var r=gf(),i=B(r),a=B(i),o=B(a,!0);q(a);var s=M(a,2),c=B(s,!0);q(s),q(i);var p=M(i,2),m=B(p,!0);q(p);var g=M(p,2),v=e=>{{let n=E(()=>[h(t).toolState]);Qd(e,{get items(){return h(n)},ariaLabel:`Activity tool event`})}},y=e=>{var n=mf(),r=B(n,!0);q(n),_(()=>u(r,h(t).detail)),d(e,n)};l(g,e=>{h(t).toolState?e(v):h(t).detail&&e(y,1)});var b=M(g,2),x=e=>{let r=E(()=>h(f).find(e=>e.id===h(t).sessionId)?.title);var i=hf(),a=B(i,!0);q(i),_(e=>{V(i,`aria-label`,h(t).sessionId),u(a,e)},[()=>h(r)||`Session ${h(t).sessionId.slice(0,8)}…`]),n(`click`,i,()=>void ne(h(t).sessionId)),d(e,i)};l(b,e=>{h(t).sessionId&&e(x)}),q(r),_(e=>{u(o,h(t).type),u(c,e),u(m,h(t).title)},[()=>K(h(t).timestamp)]),d(e,r)}),q(yt),q(lt);var St=M(lt,2),Ct=B(St),wt=M(B(Ct),2),Tt=B(wt,!0);q(wt),q(Ct);var Et=M(Ct,2),Dt=B(Et),Ot=e=>{d(e,_f())};l(Dt,e=>{h(f).length===0&&!h(i)&&e(Ot)}),P(M(Dt,2),17,()=>h(f).slice(0,12),e=>e.id,(e,t)=>{var r=vf();let i;var a=B(r),o=B(a),s=B(o,!0);q(o);var c=M(o,2),l=B(c);q(c),q(a);var f=M(a,2),m=B(f),g=B(m);q(m);var v=M(m,2),y=B(v);q(v),q(f),q(r),_((e,n)=>{i=S(r,1,`session-row svelte-z6w8je`,null,i,{selected:h(p)===h(t).id}),u(s,h(t).title||`Untitled session`),u(l,`Updated ${e??``}`),u(g,`${h(b)[h(t).id]??0??``} evt`),u(y,`${n??``}...`)},[()=>J(h(t).updatedAt),()=>h(t).id.slice(0,12)]),n(`click`,r,()=>void ne(h(t).id)),d(e,r)}),q(Et);var kt=M(Et,2),At=M(B(kt),2),jt=B(At,!0);q(At),q(kt);var Mt=M(kt,2),Nt=B(Mt),Pt=M(B(Nt)),Ft=B(Pt),It=e=>{d(e,yf())};l(Ft,e=>{h(se).length===0&&e(It)}),P(M(Ft),17,()=>h(se),([e,t])=>e,(e,t)=>{var n=E(()=>r(h(t),2));let i=()=>h(n)[0],a=()=>h(n)[1];var o=bf(),s=B(o),c=B(s,!0);q(s);var l=M(s),f=B(l,!0);q(l),q(o),_(()=>{u(c,i()),u(f,a())}),d(e,o)}),q(Pt),q(Nt),q(Mt);var Lt=M(Mt,2),Rt=M(B(Lt),2),zt=B(Rt,!0);q(Rt),q(Lt);var Bt=M(Lt,2),Vt=B(Bt),Ht=e=>{d(e,xf())};l(Vt,e=>{h(ce).length===0&&e(Ht)}),P(M(Vt,2),17,()=>h(ce),e=>e.id,(e,t)=>{var n=Sf(),r=B(n),i=B(r),a=B(i,!0);q(i);var o=M(i,2),s=B(o,!0);q(o),q(r);var c=M(r,2),l=B(c,!0);q(c),q(n),_(()=>{u(a,h(t).title||`Untitled session`),u(s,h(t).id),u(l,h(t).events)}),d(e,n)}),q(Bt),q(St),q(ct);var Ut=M(ct,2),Wt=B(Ut),Gt=M(B(Wt),2),Kt=e=>{var t=Cf(),n=B(t,!0);q(t),_(()=>u(n,h(re).title||h(re).id)),d(e,t)};l(Gt,e=>{h(re)&&e(Kt)}),q(Wt);var qt=M(Wt,2),Jt=e=>{var t=Tf(),r=H(t),i=B(r),o=M(B(i)),s=B(o,!0);q(o),q(i);var c=M(i,2),f=M(B(c)),p=B(f,!0);q(f),q(c);var g=M(c,2),v=M(B(g)),y=B(v,!0);q(v),q(g);var x=M(g,2),S=M(B(x)),w=B(S,!0);q(S),q(x),q(r);var T=M(r,2),E=M(B(T),2),D=B(E),O=e=>{$(e,{})};l(D,e=>{h(a)&&e(O)}),C(),q(E),q(T);var k=M(T,2),A=e=>{d(e,wf())};l(k,e=>{h(m).length===0&&!h(a)&&e(A)});var j=M(k,2);P(j,21,()=>h(m).slice(-12),e=>e.id,(e,t)=>{Ze(e,{get entry(){return h(t)}})}),q(j),_((e,t)=>{u(s,e),u(p,t),u(y,h(re).id),u(w,h(b)[h(re).id]??0),E.disabled=h(a)},[()=>J(h(re).createdAt),()=>J(h(re).updatedAt)]),n(`click`,E,()=>void te(h(re).id)),d(e,t)},Yt=e=>{d(e,Ef())};l(qt,e=>{h(re)?e(Jt):e(Yt,-1)}),q(Ut),q(le),_((e,t)=>{de.disabled=h(i),u(Ce,Me.active?.label??`Active assistant endpoint`),u(Te,Me.active?.url??`Loading endpoint URL...`),S(Ee,1,`stream-badge stream-badge--${h(c)??``}`,`svelte-z6w8je`),u(De,h(c)),u(je,h(oe)),u(Pe,`${h(Z)??``} events seen in the last 5 minutes`),u(Re,h(f).length),u(Be,`${h(Y)??``} active in the last 5 minutes`),u(Ue,h(ie)),Ge=S(We,1,`summary-card svelte-z6w8je`,null,Ge,{"summary-card--danger":h(ae)>0}),u(qe,e),u(Ye,h(ae)>0?`${h(ae)} failure${h(ae)===1?``:`s`} need review.`:h(c)===`connected`?`Stream healthy.`:`Reconnect needed.`),u($e,t),u(tt,`${h(v).length??``} recent events buffered`),rt=S(nt,1,`summary-card svelte-z6w8je`,null,rt,{"summary-card--danger":h(ae)>0}),u(at,h(ae)),u(st,h(ae)>0?`Tool or session failures need review.`:`No current failures seen.`),u(ft,h(X).length),u(vt,h(v).length),u(Tt,h(f).length),u(jt,h(se).length),u(zt,h(ce).length)},[()=>K(h(T)),()=>Object.keys(h(y)).length]),n(`click`,de,()=>void G()),d(e,le),R()}J([`click`]);var kf=s(`<div class="feedback feedback--error" role="alert"> </div>`),Af=s(`<div class="stats-loading svelte-1jrmvb5"><!> <span>Loading knowledge stats…</span></div>`),jf=s(`<div class="stats-unavailable svelte-1jrmvb5"><p> </p></div>`),Mf=s(`<li> </li>`),Nf=s(`<ul class="stats-advisories svelte-1jrmvb5"></ul>`),Pf=s(`<div class="stats-row stats-row--wide svelte-1jrmvb5"><span> </span> <strong class="svelte-1jrmvb5"> </strong></div>`),Ff=s(`<div class="stats-status svelte-1jrmvb5"><span> </span> <!></div> <div class="stats-cards svelte-1jrmvb5"><div class="stats-card svelte-1jrmvb5"><span class="stats-value svelte-1jrmvb5"> </span> <span class="stats-label svelte-1jrmvb5">Indexed assets</span></div> <div class="stats-card svelte-1jrmvb5"><span class="stats-value svelte-1jrmvb5"> </span> <span class="stats-label svelte-1jrmvb5">Pending proposals</span></div> <div class="stats-card svelte-1jrmvb5"><span class="stats-value svelte-1jrmvb5"> </span> <span class="stats-label svelte-1jrmvb5">Improve runs completed</span></div> <div class="stats-card svelte-1jrmvb5"><span class="stats-value svelte-1jrmvb5"> </span> <span class="stats-label svelte-1jrmvb5">Reflect cooldown skips</span></div></div> <div class="stats-grid svelte-1jrmvb5"><div class="stats-row svelte-1jrmvb5"><span>AKM version</span><strong class="svelte-1jrmvb5"> </strong></div> <div class="stats-row svelte-1jrmvb5"><span>Last indexed</span><strong class="svelte-1jrmvb5"> </strong></div> <div class="stats-row svelte-1jrmvb5"><span>Embeddings indexed</span><strong class="svelte-1jrmvb5"> </strong></div> <div class="stats-row svelte-1jrmvb5"><span>Vector search available</span><strong class="svelte-1jrmvb5"> </strong></div> <div class="stats-row svelte-1jrmvb5"><span>Memories indexed</span><strong class="svelte-1jrmvb5"> </strong></div> <div class="stats-row svelte-1jrmvb5"><span>Skills indexed</span><strong class="svelte-1jrmvb5"> </strong></div> <div class="stats-row svelte-1jrmvb5"><span>Lessons indexed</span><strong class="svelte-1jrmvb5"> </strong></div> <div class="stats-row svelte-1jrmvb5"><span>Improve invoked</span><strong class="svelte-1jrmvb5"> </strong></div> <div class="stats-row svelte-1jrmvb5"><span>Improve skipped</span><strong class="svelte-1jrmvb5"> </strong></div> <div class="stats-row svelte-1jrmvb5"><span>Reflect OK</span><strong class="svelte-1jrmvb5"> </strong></div> <div class="stats-row svelte-1jrmvb5"><span>Consolidation promoted</span><strong class="svelte-1jrmvb5"> </strong></div> <div class="stats-row svelte-1jrmvb5"><span>Consolidation merged</span><strong class="svelte-1jrmvb5"> </strong></div> <div class="stats-row svelte-1jrmvb5"><span>Consolidation deleted</span><strong class="svelte-1jrmvb5"> </strong></div></div> <div class="stats-grid svelte-1jrmvb5"><div class="stats-row stats-row--wide svelte-1jrmvb5"><span>Pending proposals</span><strong class="svelte-1jrmvb5"> </strong></div> <!></div>`,1),If=s(`<section class="stats-section svelte-1jrmvb5"><div class="stats-header svelte-1jrmvb5"><div><h3 class="svelte-1jrmvb5">Knowledge & Learning</h3> <p class="section-note">Read-only AKM health, memory counts, improve activity, and pending proposals from live CLI JSON output.</p></div> <button class="btn btn-secondary btn-sm" type="button"><!> Refresh stats</button></div> <!></section>`);function Lf(e,t){j(t,!0);let r=I(!1),i=I(``),o=I(null);async function s(){W(r,!0),W(i,``);try{W(o,await Vt(),!0)}catch(e){W(i,e instanceof Error?e.message:`Failed to load knowledge stats.`,!0)}finally{W(r,!1)}}function c(e,t=`Yes`,n=`No`){return e===!0?t:e===!1?n:`—`}function f(e){return e==null?`—`:e.toLocaleString()}function p(e){return e===`pass`?`Healthy`:e===`warn`?`Warnings`:`Unknown`}ee(()=>{s()});var m=If(),g=B(m),v=M(B(g),2),y=B(v),b=e=>{$(e,{})};l(y,e=>{h(r)&&e(b)}),C(),q(v),q(g);var x=M(g,2),w=e=>{var t=kf(),n=B(t,!0);q(t),_(()=>u(n,h(i))),d(e,t)},T=e=>{var t=Af();$(B(t),{}),C(2),q(t),d(e,t)},E=e=>{var t=jf(),n=B(t),r=B(n,!0);q(n),q(t),_(()=>u(r,h(o).reason??`The akm CLI is not reachable from the admin host.`)),d(e,t)},D=e=>{var t=Ff(),n=H(t),r=B(n),i=B(r,!0);q(r);var s=M(r,2),m=e=>{var t=Nf();P(t,20,()=>h(o).health.advisories,e=>e,(e,t)=>{var n=Mf(),r=B(n,!0);q(n),_(()=>u(r,t)),d(e,n)}),q(t),d(e,t)};l(s,e=>{h(o).health.advisories.length>0&&e(m)}),q(n);var g=M(n,2),v=B(g),y=B(v),b=B(y,!0);q(y),C(2),q(v);var x=M(v,2),w=B(x),T=B(w,!0);q(w),C(2),q(x);var E=M(x,2),D=B(E),O=B(D,!0);q(D),C(2),q(E);var k=M(E,2),A=B(k),j=B(A,!0);q(A),C(2),q(k),q(g);var N=M(g,2),F=B(N),I=M(B(F)),L=B(I,!0);q(I),q(F);var R=M(F,2),z=M(B(R)),V=B(z,!0);q(z),q(R);var ee=M(R,2),U=M(B(ee)),W=B(U,!0);q(U),q(ee);var G=M(ee,2),te=M(B(G)),ne=B(te,!0);q(te),q(G);var K=M(G,2),J=M(B(K)),re=B(J,!0);q(J),q(K);var ie=M(K,2),ae=M(B(ie)),Y=B(ae,!0);q(ae),q(ie);var X=M(ie,2),oe=M(B(X)),Z=B(oe,!0);q(oe),q(X);var se=M(X,2),ce=M(B(se)),le=B(ce,!0);q(ce),q(se);var Q=M(se,2),ue=M(B(Q)),de=B(ue,!0);q(ue),q(Q);var fe=M(Q,2),pe=M(B(fe)),me=B(pe,!0);q(pe),q(fe);var he=M(fe,2),ge=M(B(he)),_e=B(ge,!0);q(ge),q(he);var ve=M(he,2),ye=M(B(ve)),be=B(ye,!0);q(ye),q(ve);var xe=M(ve,2),Se=M(B(xe)),Ce=B(Se,!0);q(Se),q(xe),q(N);var we=M(N,2),Te=B(we),Ee=M(B(Te)),De=B(Ee,!0);q(Ee),q(Te);var Oe=M(Te,2),Ae=e=>{var t=a();P(H(t),19,()=>h(o).proposals.items,(e,t)=>e.ref??`${e.generator??`proposal`}-${t}`,(e,t)=>{var n=Pf(),r=B(n),i=B(r,!0);q(r);var a=M(r,2),o=B(a);q(a),q(n),_(e=>{u(i,h(t).ref??`Unknown ref`),u(o,`${h(t).generator??`unknown generator`??``} · ${h(t).status??`pending`??``} · ${e??``}`)},[()=>ke(h(t).createdAt)]),d(e,n)}),d(e,t)};l(Oe,e=>{h(o).proposals.items.length>0&&e(Ae)}),q(we),_((e,t,n,a,s,c,l,d,f,p,m,g,_,v,y,x,C)=>{S(r,1,`stats-badge ${h(o).health.status===`warn`?`stats-badge-warn`:h(o).health.status===`unknown`?`stats-badge-unknown`:``}`,`svelte-1jrmvb5`),u(i,e),u(b,t),u(T,n),u(O,a),u(j,s),u(L,h(o).version??`—`),u(V,c),u(W,l),u(ne,d),u(re,f),u(Y,p),u(Z,m),u(le,g),u(de,_),u(me,v),u(_e,y),u(be,x),u(Ce,C),u(De,h(o).proposals.pending===0?`None pending.`:`${h(o).proposals.pending} pending`)},[()=>p(h(o).health.status),()=>f(h(o).index.entryCount),()=>f(h(o).proposals.pending),()=>f(h(o).improve.completed),()=>f(h(o).improve.reflectCooldown),()=>ke(h(o).index.lastBuiltAt),()=>c(h(o).index.hasEmbeddings),()=>c(h(o).index.vecAvailable),()=>f(h(o).assetCounts.memory),()=>f(h(o).assetCounts.skill),()=>f(h(o).assetCounts.lesson),()=>f(h(o).improve.invoked),()=>f(h(o).improve.skipped),()=>f(h(o).improve.reflectOk),()=>f(h(o).improve.consolidation.promoted),()=>f(h(o).improve.consolidation.merged),()=>f(h(o).improve.consolidation.deleted)]),d(e,t)};l(x,e=>{h(i)?e(w):!h(o)||h(r)?e(T,1):h(o).available?e(D,-1):e(E,2)}),q(m),_(()=>v.disabled=t.disabled),n(`click`,v,()=>void s()),d(e,m),R()}J([`click`]);var Rf=s(`<div class="input-with-toggle svelte-df4dyz"><input class="control-input svelte-df4dyz" spellcheck="false" autocomplete="new-password"/> <button type="button" class="btn-icon svelte-df4dyz"> </button></div>`);function zf(e,t){j(t,!0);let r=b(t,`value`,15,``),i=b(t,`disabled`,3,!1),a=I(!1);var o=Rf(),s=B(o);O(s);var c=M(s,2),l=B(c,!0);q(c),q(o),_(()=>{V(s,`id`,t.id),V(s,`type`,h(a)?`text`:`password`),V(s,`placeholder`,t.placeholder),s.disabled=i(),V(c,`aria-label`,h(a)?`Hide value`:`Show value`),c.disabled=i(),u(l,h(a)?`Hide`:`Show`)}),T(s,r),n(`click`,c,()=>{W(a,!h(a))}),d(e,o),R()}J([`click`]);var Bf=s(`<section class="config-section svelte-y5k1u8"><div class="section-header svelte-y5k1u8"><h3 class="section-title svelte-y5k1u8">Semantic search (embeddings)</h3> <div class="section-actions svelte-y5k1u8"><button class="btn btn-secondary btn-sm" type="button"><!> Detect</button> <button class="btn btn-secondary btn-sm" type="button"><!> Test</button></div></div> <p class="section-note svelte-y5k1u8">Vector embedding provider for semantic search. Leave Endpoint and Model blank to use built-in local embeddings.</p> <div class="controls--grid svelte-y5k1u8"><div class="control-group control-group--wide svelte-y5k1u8"><label class="control-label svelte-y5k1u8" for="embEndpoint">Endpoint</label> <input id="embEndpoint" class="control-input svelte-y5k1u8" type="url" spellcheck="false" placeholder="https://api.openai.com/v1/embeddings"/></div> <div class="control-group svelte-y5k1u8"><label class="control-label svelte-y5k1u8" for="embModel">Model</label> <input id="embModel" class="control-input svelte-y5k1u8" type="text" spellcheck="false" placeholder="text-embedding-3-small"/></div> <div class="control-group svelte-y5k1u8"><label class="control-label svelte-y5k1u8" for="embProvider">Provider (label)</label> <input id="embProvider" class="control-input svelte-y5k1u8" type="text" spellcheck="false" placeholder="openai"/></div> <div class="control-group svelte-y5k1u8"><label class="control-label svelte-y5k1u8" for="embApiKey">API Key</label> <!></div> <div class="control-group svelte-y5k1u8"><label class="control-label svelte-y5k1u8" for="embDimension">Dimensions</label> <input id="embDimension" class="control-input control-input--narrow svelte-y5k1u8" type="number" min="1"/></div> <div class="control-group svelte-y5k1u8"><label class="control-label svelte-y5k1u8" for="embLocalModel">Local model</label> <input id="embLocalModel" class="control-input svelte-y5k1u8" type="text" spellcheck="false" placeholder="Xenova/bge-small-en-v1.5"/></div> <div class="control-group svelte-y5k1u8"><label class="control-label svelte-y5k1u8" for="embBatchSize">Batch size</label> <input id="embBatchSize" class="control-input control-input--narrow svelte-y5k1u8" type="number" min="1"/></div> <div class="control-group svelte-y5k1u8"><label class="control-label svelte-y5k1u8" for="embChunkSize">Chunk size (chars)</label> <input id="embChunkSize" class="control-input control-input--narrow svelte-y5k1u8" type="number" min="1"/></div> <div class="control-group svelte-y5k1u8"><label class="control-label svelte-y5k1u8" for="embContextLength">Context length</label> <input id="embContextLength" class="control-input control-input--narrow svelte-y5k1u8" type="number" min="1"/></div> <div class="control-group svelte-y5k1u8"><label class="control-label svelte-y5k1u8" for="embOllamaNumCtx">Ollama num_ctx</label> <input id="embOllamaNumCtx" class="control-input control-input--narrow svelte-y5k1u8" type="number" min="1"/></div></div></section>`);function Vf(e,t){j(t,!0);let r=b(t,`endpoint`,15,``),i=b(t,`model`,15,``),a=b(t,`provider`,15,``),o=b(t,`apiKey`,15,``),s=b(t,`dimension`,15,1536),c=b(t,`localModel`,15,``),u=b(t,`batchSize`,15,``),f=b(t,`chunkSize`,15,``),p=b(t,`contextLength`,15,``),m=b(t,`ollamaNumCtx`,15,``),h=b(t,`disabled`,3,!1),g=b(t,`detecting`,3,!1),v=b(t,`testing`,3,!1);var y=Bf(),x=B(y),S=M(B(x),2),w=B(S),E=B(w),D=e=>{$(e,{})};l(E,e=>{g()&&e(D)}),C(),q(w);var k=M(w,2),A=B(k),N=e=>{$(e,{})};l(A,e=>{v()&&e(N)}),C(),q(k),q(S),q(x);var P=M(x,4),F=B(P),I=M(B(F),2);O(I),q(F);var L=M(F,2),z=M(B(L),2);O(z),q(L);var V=M(L,2),ee=M(B(V),2);O(ee),q(V);var H=M(V,2);zf(M(B(H),2),{id:`embApiKey`,placeholder:"${AKM_EMBED_API_KEY}",get disabled(){return h()},get value(){return o()},set value(e){o(e)}}),q(H);var U=M(H,2),W=M(B(U),2);O(W),q(U);var G=M(U,2),te=M(B(G),2);O(te),q(G);var ne=M(G,2),K=M(B(ne),2);O(K),q(ne);var J=M(ne,2),re=M(B(J),2);O(re),q(J);var ie=M(J,2),ae=M(B(ie),2);O(ae),q(ie);var Y=M(ie,2),X=M(B(Y),2);O(X),q(Y),q(P),q(y),_(()=>{w.disabled=h()||g()||v(),k.disabled=h()||g()||v(),I.disabled=h(),z.disabled=h(),ee.disabled=h(),W.disabled=h(),te.disabled=h(),K.disabled=h(),re.disabled=h(),ae.disabled=h(),X.disabled=h()}),n(`click`,w,function(...e){t.ondetect?.apply(this,e)}),n(`click`,k,function(...e){t.ontest?.apply(this,e)}),T(I,r),T(z,i),T(ee,a),T(W,s),T(te,c),T(K,u),T(re,f),T(ae,p),T(X,m),d(e,y),R()}J([`click`]);var Hf=s(`<section class="config-section svelte-gfn07p"><h3 class="section-title svelte-gfn07p">Behavior</h3> <div class="controls--grid svelte-gfn07p"><div class="control-group svelte-gfn07p"><label class="control-label svelte-gfn07p" for="semanticSearch">Semantic search</label> <select id="semanticSearch" class="control-input svelte-gfn07p"><option>Auto (vector index when available)</option><option>Off (keyword only)</option></select></div> <div class="control-group svelte-gfn07p"><label class="control-label svelte-gfn07p" for="outputFormat">Output format</label> <select id="outputFormat" class="control-input svelte-gfn07p"><option>JSON</option><option>YAML</option><option>Text</option></select></div> <div class="control-group svelte-gfn07p"><label class="control-label svelte-gfn07p" for="outputDetail">Output detail</label> <select id="outputDetail" class="control-input svelte-gfn07p"><option>Brief</option><option>Normal</option><option>Full</option></select></div></div></section> <details class="adv-details svelte-gfn07p"><summary class="adv-summary svelte-gfn07p">Advanced tuning — affects memory scoring & indexing (leave at defaults unless you know the impact)</summary> <section class="config-section adv-body svelte-gfn07p"><p class="section-note svelte-gfn07p">Global tuning beyond per-profile settings. Leave blank to use akm defaults.</p> <div class="controls--grid svelte-gfn07p"><div class="control-group svelte-gfn07p"><label class="control-label svelte-gfn07p" for="adv-halflife">Utility decay half-life (days)</label> <input id="adv-halflife" class="control-input control-input--narrow svelte-gfn07p" type="number" min="0.1" step="0.1" placeholder="default"/></div> <div class="control-group svelte-gfn07p"><label class="control-label svelte-gfn07p" for="adv-fbboost">Feedback stability boost (≥1)</label> <input id="adv-fbboost" class="control-input control-input--narrow svelte-gfn07p" type="number" min="1" step="0.1" placeholder="default"/></div> <div class="control-group svelte-gfn07p"><label class="control-label svelte-gfn07p" for="adv-eventret">Event retention (days)</label> <input id="adv-eventret" class="control-input control-input--narrow svelte-gfn07p" type="number" min="0" placeholder="default"/></div> <div class="control-group svelte-gfn07p"><label class="control-label svelte-gfn07p" for="adv-minscore">Search min score</label> <input id="adv-minscore" class="control-input control-input--narrow svelte-gfn07p" type="number" min="0" step="0.01" placeholder="default"/></div> <div class="control-group svelte-gfn07p"><label class="control-label svelte-gfn07p" for="adv-rerank">Curate rerank</label> <select id="adv-rerank" class="control-input svelte-gfn07p"><option>Default</option><option>Enabled</option><option>Disabled</option></select></div> <div class="control-group svelte-gfn07p"><label class="control-label svelte-gfn07p" for="adv-reqreason">Feedback requires reason</label> <select id="adv-reqreason" class="control-input svelte-gfn07p"><option>Default</option><option>Required</option><option>Optional</option></select></div> <div class="control-group control-group--wide svelte-gfn07p"><label class="control-label svelte-gfn07p" for="adv-failmodes">Allowed feedback failure modes (comma-separated)</label> <input id="adv-failmodes" class="control-input svelte-gfn07p" type="text" spellcheck="false" placeholder="e.g. outdated, incorrect, irrelevant"/></div> <div class="control-group control-group--wide svelte-gfn07p"><label class="control-label svelte-gfn07p" for="adv-index">Index config (JSON, per-pass)</label> <textarea id="adv-index" class="control-input svelte-gfn07p" rows="4" spellcheck="false"></textarea> <span class="section-note svelte-gfn07p">Advanced per-pass indexing options (enrichment, graphExtraction, metadataEnhance, stalenessDetection). Must be a JSON object.</span></div></div></section></details>`,1);function Uf(e,t){j(t,!0);let n=b(t,`semanticSearchMode`,15,`auto`),r=b(t,`outputFormat`,15,`json`),i=b(t,`outputDetail`,15,`brief`),a=b(t,`imHalfLife`,15,``),o=b(t,`imFeedbackBoost`,15,``),s=b(t,`imEventRetention`,15,``),c=b(t,`searchMinScore`,15,``),l=b(t,`searchCurateRerank`,15,``),u=b(t,`fbRequireReason`,15,``),f=b(t,`fbFailureModes`,15,``),p=b(t,`indexJson`,15,``),m=b(t,`disabled`,3,!1);var h=Hf(),g=H(h),v=M(B(g),2),y=B(v),x=M(B(y),2),S=B(x);S.value=S.__value=`auto`;var w=M(S);w.value=w.__value=`off`,q(x),q(y);var E=M(y,2),A=M(B(E),2),N=B(A);N.value=N.__value=`json`;var P=M(N);P.value=P.__value=`yaml`;var F=M(P);F.value=F.__value=`text`,q(A),q(E);var I=M(E,2),L=M(B(I),2),z=B(L);z.value=z.__value=`brief`;var ee=M(z);ee.value=ee.__value=`normal`;var U=M(ee);U.value=U.__value=`full`,q(L),q(I),q(v),q(g);var W=M(g,2),G=M(B(W),2),te=M(B(G),2),ne=B(te),K=M(B(ne),2);O(K),q(ne);var J=M(ne,2),re=M(B(J),2);O(re),q(J);var ie=M(J,2),ae=M(B(ie),2);O(ae),q(ie);var Y=M(ie,2),X=M(B(Y),2);O(X),q(Y);var oe=M(Y,2),Z=M(B(oe),2),se=B(Z);se.value=se.__value=``;var ce=M(se);ce.value=ce.__value=`on`;var le=M(ce);le.value=le.__value=`off`,q(Z),q(oe);var Q=M(oe,2),ue=M(B(Q),2),de=B(ue);de.value=de.__value=``;var fe=M(de);fe.value=fe.__value=`on`;var pe=M(fe);pe.value=pe.__value=`off`,q(ue),q(Q);var me=M(Q,2),he=M(B(me),2);O(he),q(me);var ge=M(me,2),_e=M(B(ge),2);D(_e),V(_e,`placeholder`,`{ "enrichment": { "llm": false } }`),C(2),q(ge),q(te),q(G),q(W),_(()=>{x.disabled=m(),A.disabled=m(),L.disabled=m(),K.disabled=m(),re.disabled=m(),ae.disabled=m(),X.disabled=m(),Z.disabled=m(),ue.disabled=m(),he.disabled=m(),_e.disabled=m()}),k(x,n),k(A,r),k(L,i),T(K,a),T(re,o),T(ae,s),T(X,c),k(Z,l),k(ue,u),T(he,f),T(_e,p),d(e,h),R()}var Wf=s(`<option> </option>`),Gf=s(`<div class="report-error svelte-l50p56" role="alert"><p class="svelte-l50p56"> </p> <button class="btn btn-secondary btn-sm" type="button">Retry</button></div>`),Kf=s(`<div class="report-loading svelte-l50p56">Generating report…</div>`),qf=s(`<iframe title="AKM Health Report" class="report-frame svelte-l50p56"></iframe>`),Jf=s(`<!> <!>`,1),Yf=s(`<section class="report-section svelte-l50p56"><div class="report-header svelte-l50p56"><div><h3 class="svelte-l50p56">AKM Health Report</h3> <p class="section-note">Build and view a live HTML report from the running assistant's <code>akm health</code> output. The default window is 72 hours.</p></div> <div class="report-controls svelte-l50p56"><label class="control-field svelte-l50p56" for="akm-report-window"><span>Time frame</span> <select id="akm-report-window" class="control-input svelte-l50p56"></select></label> <button class="btn btn-secondary btn-sm" type="button">Refresh report</button></div></div> <div class="report-frame-wrap svelte-l50p56"><!></div></section>`);function Xf(e,t){j(t,!0);let r=[{value:`24h`,label:`24 hours`},{value:`72h`,label:`72 hours`},{value:`7d`,label:`7 days`},{value:`14d`,label:`14 days`},{value:`30d`,label:`30 days`}],i=I(`72h`),a=I(0),s=I(!0),c=I(!1),f=I(null),p=I(``),m=E(()=>`/api/host/akm/health-report?since=${encodeURIComponent(h(i))}&refresh=${h(a)}`);async function v(){W(s,!0),W(c,!1),W(f,null),W(p,``);try{let e=await fetch(h(m),{method:`HEAD`});if(!e.ok){W(p,`Failed to generate report (${e.status} ${e.statusText}).`),W(s,!1);return}}catch{W(p,`Could not reach the report endpoint. Check that the stack is running.`),W(s,!1);return}W(f,h(m),!0)}function y(){W(a,h(a)+1),v()}function b(){W(a,h(a)+1),v()}ee(()=>{v()});var x=Yf(),S=B(x),C=M(B(S),2),w=B(C),T=M(B(w),2);P(T,21,()=>r,e=>e.value,(e,t)=>{var n=Wf(),r=B(n,!0);q(n);var i={};_(()=>{u(r,h(t).label),i!==(i=h(t).value)&&(n.value=(n.__value=h(t).value)??``)}),d(e,n)}),q(T),q(w);var D=M(w,2);q(C),q(S);var O=M(S,2),A=B(O),N=e=>{var t=Gf(),r=B(t),i=B(r,!0);q(r);var a=M(r,2);q(t),_(()=>u(i,h(p))),n(`click`,a,y),d(e,t)},F=e=>{var t=Jf(),n=H(t),r=e=>{d(e,Kf())};l(n,e=>{(h(s)||!h(c))&&e(r)});var i=M(n,2),a=e=>{var t=qf();_(()=>V(t,`src`,h(f))),g(`load`,t,()=>{W(s,!1),W(c,!0)}),o(t),d(e,t)};l(i,e=>{h(f)&&e(a)}),d(e,t)};l(A,e=>{h(p)?e(N):e(F,-1)}),q(O),q(x),_(()=>{T.disabled=t.disabled,D.disabled=t.disabled}),n(`change`,T,b),k(T,()=>h(i),e=>W(i,e)),n(`click`,D,y),d(e,x),R()}J([`change`,`click`]);var Zf=s(`<span class="badge badge--default svelte-zzh9mp">Default</span>`),Qf=s(`<button class="btn btn-sm">Set Default</button>`),$f=s(`<div class="profile-row svelte-zzh9mp"><span class="profile-row-name svelte-zzh9mp"> </span> <!> <!> <div class="profile-row-actions svelte-zzh9mp"><!> <button class="btn btn-sm">Edit</button> <button class="btn btn-sm btn-danger">Remove</button></div></div>`);function ep(e,t){let r=b(t,`disabled`,3,!1);var o=$f(),s=B(o),c=B(s,!0);q(s);var f=M(s,2),p=e=>{var n=a();i(H(n),()=>t.extra),d(e,n)};l(f,e=>{t.extra&&e(p)});var m=M(f,2),h=e=>{d(e,Zf())};l(m,e=>{t.isDefault&&t.name&&e(h)});var g=M(m,2),v=B(g),y=e=>{var i=Qf();_(()=>i.disabled=r()),n(`click`,i,function(...e){t.onsetdefault?.apply(this,e)}),d(e,i)};l(v,e=>{t.name&&!t.isDefault&&e(y)});var x=M(v,2),S=M(x,2);q(g),q(o),_(()=>{u(c,t.name||`(unnamed)`),x.disabled=r(),S.disabled=r()}),n(`click`,x,function(...e){t.onedit?.apply(this,e)}),n(`click`,S,function(...e){t.onremove?.apply(this,e)}),d(e,o)}J([`click`]);var tp=c(`<svg aria-hidden="true" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M5 6.5c0-1.4 3.1-2.5 7-2.5s7 1.1 7 2.5-3.1 2.5-7 2.5-7-1.1-7-2.5z"></path><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M5 6.5v11c0 1.4 3.1 2.5 7 2.5s7-1.1 7-2.5v-11"></path><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M5 12c0 1.4 3.1 2.5 7 2.5s7-1.1 7-2.5"></path></svg>`);function np(e,t){let n=b(t,`size`,3,20),r=b(t,`class`,3,``);var i=tp();_(()=>{V(i,`width`,n()),V(i,`height`,n()),S(i,0,`s-icon ${r()??``}`)}),d(e,i)}var rp=s(`<div class="profile-empty svelte-zwwvog"><!> <p class="empty-note svelte-zwwvog">No LLM profiles configured — add one below.</p></div>`),ip=s(`<div class="profile-list svelte-zwwvog"></div>`),ap=s(`<section class="config-section svelte-zwwvog"><h3 class="section-title svelte-zwwvog">Language models <span class="section-title-aka svelte-zwwvog">akm LLM profiles</span></h3> <p class="section-note svelte-zwwvog">The language models your assistant uses to organize and improve its memory. Add one per LLM service.</p> <!> <button class="btn btn-secondary btn-sm">+ Add LLM Profile</button></section>`);function op(e,t){j(t,!0);let r=b(t,`profiles`,27,()=>x([])),i=b(t,`defaultName`,15,``),a=b(t,`disabled`,3,!1);var o=ap(),s=M(B(o),4),c=e=>{var t=rp();np(B(t),{size:24}),C(2),q(t),d(e,t)},u=e=>{var n=ip();P(n,21,r,e=>e.id,(e,n)=>{{let r=E(()=>i()===h(n).name);ep(e,{get name(){return h(n).name},get isDefault(){return h(r)},get disabled(){return a()},onsetdefault:()=>{i(h(n).name)},onedit:()=>t.onedit(h(n)),onremove:()=>t.onremove(h(n).id)})}}),q(n),d(e,n)};l(s,e=>{r().length===0?e(c):e(u,-1)});var f=M(s,2);q(o),_(()=>f.disabled=a()),n(`click`,f,function(...e){t.onadd?.apply(this,e)}),d(e,o),R()}J([`click`]);var sp=s(`<div class="profile-empty svelte-anyxpa"><!> <p class="empty-note svelte-anyxpa">No agent profiles defined.</p></div>`),cp=s(`<span class="badge svelte-anyxpa"> </span>`),lp=s(`<div class="profile-list svelte-anyxpa"></div>`),up=s(`<section class="config-section svelte-anyxpa"><h3 class="section-title svelte-anyxpa">Agent runners <span class="section-title-aka svelte-anyxpa">akm agent profiles</span></h3> <p class="section-note svelte-anyxpa">Runner configs for maintenance steps that spawn a subprocess (opencode or claude CLI).</p> <!> <button class="btn btn-secondary btn-sm">+ Add Agent Profile</button></section>`);function dp(e,t){j(t,!0);let r=b(t,`profiles`,27,()=>x([])),i=b(t,`defaultName`,15,``),a=b(t,`disabled`,3,!1);var o=up(),s=M(B(o),4),c=e=>{var t=sp();$e(B(t),{size:24}),C(2),q(t),d(e,t)},f=e=>{var n=lp();P(n,21,r,e=>e.id,(e,n)=>{{let r=e=>{var t=cp(),r=B(t,!0);q(t),_(()=>u(r,h(n).platform)),d(e,t)},o=E(()=>i()===h(n).name);ep(e,{get name(){return h(n).name},get isDefault(){return h(o)},get disabled(){return a()},onsetdefault:()=>{i(h(n).name)},onedit:()=>t.onedit(h(n)),onremove:()=>t.onremove(h(n).id),extra:r,$$slots:{extra:!0}})}}),q(n),d(e,n)};l(s,e=>{r().length===0?e(c):e(f,-1)});var p=M(s,2);q(o),_(()=>p.disabled=a()),n(`click`,p,function(...e){t.onadd?.apply(this,e)}),d(e,o),R()}J([`click`]);var fp=c(`<svg aria-hidden="true" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M12 22c-3.3 0-5.5-2-5.5-4.5 0-3 2.5-5 3.5-7 .5 1.5 1.5 2 2 3 .5-2.5 1-5.5 1.5-8 1.5 2.5 2 5.5 1.5 8.5.5-1.5 1-3 .5-4.5 1 2 1.5 4 0 5.5 0 2.5-1.5 7-3.5 7z"></path></svg>`);function pp(e,t){let n=b(t,`size`,3,20),r=b(t,`class`,3,``);var i=fp();_(()=>{V(i,`width`,n()),V(i,`height`,n()),S(i,0,`s-icon ${r()??``}`)}),d(e,i)}var mp=s(`<div class="profile-empty svelte-1ngozvb"><!> <p class="empty-note svelte-1ngozvb">No improve profiles defined — add one below.</p></div>`),hp=s(`<span class="profile-row-desc svelte-1ngozvb"> </span>`),gp=s(`<div class="profile-list svelte-1ngozvb"></div>`),_p=s(`<section class="config-section svelte-1ngozvb"><h3 class="section-title svelte-1ngozvb">Memory maintenance <span class="section-title-aka svelte-1ngozvb">akm improve</span></h3> <p class="section-note svelte-1ngozvb">Scheduled runs that distill, deduplicate, and improve stored memories. Each configuration picks which steps run and which language model they use — add a language model above first.</p> <!> <button class="btn btn-secondary btn-sm">+ Add Improve Profile</button></section>`);function vp(e,t){j(t,!0);let r=b(t,`profiles`,27,()=>x([])),i=b(t,`defaultName`,15,``),o=b(t,`disabled`,3,!1);var s=_p(),c=M(B(s),4),f=e=>{var t=mp();pp(B(t),{size:24}),C(2),q(t),d(e,t)},p=e=>{var n=gp();P(n,21,r,e=>e.id,(e,n)=>{{let r=e=>{var t=a(),r=H(t),i=e=>{var t=hp(),r=B(t,!0);q(t),_(()=>u(r,h(n).description)),d(e,t)};l(r,e=>{h(n).description&&e(i)}),d(e,t)},s=E(()=>i()===h(n).name);ep(e,{get name(){return h(n).name},get isDefault(){return h(s)},get disabled(){return o()},onsetdefault:()=>{i(h(n).name)},onedit:()=>t.onedit(h(n)),onremove:()=>t.onremove(h(n).id),extra:r,$$slots:{extra:!0}})}}),q(n),d(e,n)};l(c,e=>{r().length===0?e(f):e(p,-1)});var m=M(c,2);q(s),_(()=>m.disabled=o()),n(`click`,m,function(...e){t.onadd?.apply(this,e)}),d(e,s),R()}J([`click`]);var yp=s(`<div class="drawer-scrim svelte-1gmn25z" role="presentation"></div> <div class="drawer svelte-1gmn25z" role="dialog" aria-modal="true" aria-label="Edit profile"><div class="drawer-header svelte-1gmn25z"><h3 class="drawer-title svelte-1gmn25z">LLM Profile</h3> <button class="drawer-close svelte-1gmn25z" aria-label="Close">✕</button></div> <div class="drawer-body svelte-1gmn25z"><div class="controls controls--grid svelte-1gmn25z"><div class="control-group svelte-1gmn25z"><label class="control-label svelte-1gmn25z" for="d-llm-name">Profile Name</label> <input id="d-llm-name" class="control-input svelte-1gmn25z" type="text" spellcheck="false" placeholder="e.g. default"/></div> <div class="control-group control-group--wide svelte-1gmn25z"><label class="control-label svelte-1gmn25z" for="d-llm-endpoint">Endpoint</label> <input id="d-llm-endpoint" class="control-input svelte-1gmn25z" type="url" spellcheck="false" placeholder="https://api.openai.com/v1/chat/completions"/></div> <div class="control-group svelte-1gmn25z"><label class="control-label svelte-1gmn25z" for="d-llm-model">Model</label> <input id="d-llm-model" class="control-input svelte-1gmn25z" type="text" spellcheck="false" placeholder="gpt-4o-mini"/></div> <div class="control-group svelte-1gmn25z"><label class="control-label svelte-1gmn25z" for="d-llm-provider">Provider (label)</label> <input id="d-llm-provider" class="control-input svelte-1gmn25z" type="text" spellcheck="false" placeholder="openai"/></div> <div class="control-group svelte-1gmn25z"><label class="control-label svelte-1gmn25z" for="d-llm-apikey">API Key</label> <!></div> <div class="control-group svelte-1gmn25z"><label class="control-label svelte-1gmn25z" for="d-llm-temperature">Temperature (0–2)</label> <input id="d-llm-temperature" class="control-input control-input--narrow svelte-1gmn25z" type="number" min="0" max="2" step="0.1"/></div> <div class="control-group svelte-1gmn25z"><label class="control-label svelte-1gmn25z" for="d-llm-maxtokens">Max tokens</label> <input id="d-llm-maxtokens" class="control-input control-input--narrow svelte-1gmn25z" type="number" min="1"/></div> <div class="control-group svelte-1gmn25z"><label class="control-label svelte-1gmn25z" for="d-llm-timeout">Timeout (ms)</label> <input id="d-llm-timeout" class="control-input control-input--narrow svelte-1gmn25z" type="number" min="1"/></div> <div class="control-group svelte-1gmn25z"><label class="control-label svelte-1gmn25z" for="d-llm-concurrency">Concurrency</label> <input id="d-llm-concurrency" class="control-input control-input--narrow svelte-1gmn25z" type="number" min="1"/></div> <div class="control-group svelte-1gmn25z"><label class="control-label svelte-1gmn25z" for="d-llm-contextlength">Context length</label> <input id="d-llm-contextlength" class="control-input control-input--narrow svelte-1gmn25z" type="number" min="1"/></div> <div class="control-group svelte-1gmn25z"><label class="control-label svelte-1gmn25z" for="d-llm-judgemodel">Judge model</label> <input id="d-llm-judgemodel" class="control-input svelte-1gmn25z" type="text" spellcheck="false" placeholder="gpt-4o"/></div></div> <label class="toggle-row svelte-1gmn25z" style="margin-top: var(--s-sp-4)"><input type="checkbox" class="svelte-1gmn25z"/> <span class="toggle-label svelte-1gmn25z">Supports JSON schema</span> <span class="toggle-hint svelte-1gmn25z">Use response_format: json_schema for structured output</span></label> <label class="toggle-row svelte-1gmn25z"><input type="checkbox" class="svelte-1gmn25z"/> <span class="toggle-label svelte-1gmn25z">Structured output capability</span> <span class="toggle-hint svelte-1gmn25z">capabilities.structuredOutput — model reliably returns valid structured JSON</span></label> <label class="toggle-row svelte-1gmn25z"><input type="checkbox" class="svelte-1gmn25z"/> <span class="toggle-label svelte-1gmn25z">Enable thinking</span> <span class="toggle-hint svelte-1gmn25z">Allow extended/thinking tokens for reasoning models</span></label> <div class="control-group control-group--wide svelte-1gmn25z" style="margin-top: var(--s-sp-4)"><label class="control-label svelte-1gmn25z" for="d-llm-extra">Extra params (JSON)</label> <textarea id="d-llm-extra" class="control-input svelte-1gmn25z" rows="3" spellcheck="false"></textarea> <span class="feat-hint svelte-1gmn25z">Merged into the provider request body. Must be a JSON object.</span></div></div> <div class="drawer-footer svelte-1gmn25z"><button class="btn btn-secondary">Cancel</button> <button class="btn btn-primary">Apply</button></div></div>`,1);function bp(e,t){j(t,!0);let r=b(t,`draft`,15);var i=yp(),a=H(i),o=M(a,2),s=B(o),c=M(B(s),2);q(s);var l=M(s,2),u=B(l),f=B(u),p=M(B(f),2);O(p),q(f);var m=M(f,2),h=M(B(m),2);O(h),q(m);var g=M(m,2),_=M(B(g),2);O(_),q(g);var v=M(g,2),y=M(B(v),2);O(y),q(v);var x=M(v,2);zf(M(B(x),2),{id:`d-llm-apikey`,placeholder:"${AKM_LLM_API_KEY}",get value(){return r().apiKey},set value(e){r(r().apiKey=e,!0)}}),q(x);var S=M(x,2),w=M(B(S),2);O(w),q(S);var E=M(S,2),k=M(B(E),2);O(k),q(E);var A=M(E,2),N=M(B(A),2);O(N),q(A);var P=M(A,2),I=M(B(P),2);O(I),q(P);var L=M(P,2),z=M(B(L),2);O(z),q(L);var ee=M(L,2),U=M(B(ee),2);O(U),q(ee),q(u);var W=M(u,2),G=B(W);O(G),C(4),q(W);var te=M(W,2),ne=B(te);O(ne),C(4),q(te);var K=M(te,2),J=B(K);O(J),C(4),q(K);var re=M(K,2),ie=M(B(re),2);D(ie),V(ie,`placeholder`,`{ "top_p": 0.9 }`),C(2),q(re),q(l);var ae=M(l,2),Y=B(ae),X=M(Y,2);q(ae),q(o),n(`click`,a,function(...e){t.oncancel?.apply(this,e)}),n(`click`,c,function(...e){t.oncancel?.apply(this,e)}),T(p,()=>r().name,e=>r(r().name=e,!0)),T(h,()=>r().endpoint,e=>r(r().endpoint=e,!0)),T(_,()=>r().model,e=>r(r().model=e,!0)),T(y,()=>r().provider,e=>r(r().provider=e,!0)),T(w,()=>r().temperature,e=>r(r().temperature=e,!0)),T(k,()=>r().maxTokens,e=>r(r().maxTokens=e,!0)),T(N,()=>r().timeoutMs,e=>r(r().timeoutMs=e,!0)),T(I,()=>r().concurrency,e=>r(r().concurrency=e,!0)),T(z,()=>r().contextLength,e=>r(r().contextLength=e,!0)),T(U,()=>r().judgeModel,e=>r(r().judgeModel=e,!0)),F(G,()=>r().supportsJsonSchema,e=>r(r().supportsJsonSchema=e,!0)),F(ne,()=>r().structuredOutput,e=>r(r().structuredOutput=e,!0)),F(J,()=>r().enableThinking,e=>r(r().enableThinking=e,!0)),T(ie,()=>r().extraParams,e=>r(r().extraParams=e,!0)),n(`click`,Y,function(...e){t.oncancel?.apply(this,e)}),n(`click`,X,function(...e){t.onapply?.apply(this,e)}),d(e,i),R()}J([`click`]);var xp=s(`<div class="control-group svelte-1evj0pt"><label class="control-label svelte-1evj0pt" for="d-agent-bin">Binary</label> <input id="d-agent-bin" class="control-input svelte-1evj0pt" type="text" spellcheck="false" placeholder="opencode"/></div> <div class="control-group control-group--wide svelte-1evj0pt"><label class="control-label svelte-1evj0pt" for="d-agent-args">Extra args (space-separated)</label> <input id="d-agent-args" class="control-input svelte-1evj0pt" type="text" spellcheck="false" placeholder="run --model gpt-4o"/></div>`,1),Sp=s(`<div class="control-group svelte-1evj0pt"><label class="control-label svelte-1evj0pt" for="d-agent-model">Model</label> <input id="d-agent-model" class="control-input svelte-1evj0pt" type="text" spellcheck="false" placeholder="anthropic/claude-sonnet-4-5"/></div> <div class="control-group svelte-1evj0pt"><label class="control-label svelte-1evj0pt" for="d-agent-workspace">Workspace</label> <input id="d-agent-workspace" class="control-input svelte-1evj0pt" type="text" spellcheck="false"/></div>`,1),Cp=s(`<div class="drawer-scrim svelte-1evj0pt" role="presentation"></div> <div class="drawer svelte-1evj0pt" role="dialog" aria-modal="true" aria-label="Edit profile"><div class="drawer-header svelte-1evj0pt"><h3 class="drawer-title svelte-1evj0pt">Agent Profile</h3> <button class="drawer-close svelte-1evj0pt" aria-label="Close">✕</button></div> <div class="drawer-body svelte-1evj0pt"><div class="controls controls--grid svelte-1evj0pt"><div class="control-group svelte-1evj0pt"><label class="control-label svelte-1evj0pt" for="d-agent-name">Profile Name</label> <input id="d-agent-name" class="control-input svelte-1evj0pt" type="text" spellcheck="false" placeholder="e.g. opencode"/></div> <div class="control-group svelte-1evj0pt"><label class="control-label svelte-1evj0pt" for="d-agent-platform">Platform</label> <select id="d-agent-platform" class="control-input svelte-1evj0pt"><option>opencode</option><option>claude</option><option>opencode-sdk</option></select></div> <!></div></div> <div class="drawer-footer svelte-1evj0pt"><button class="btn btn-secondary">Cancel</button> <button class="btn btn-primary">Apply</button></div></div>`,1);function wp(e,t){j(t,!0);let r=b(t,`draft`,15);var i=Cp(),a=H(i),o=M(a,2),s=B(o),c=M(B(s),2);q(s);var u=M(s,2),f=B(u),p=B(f),m=M(B(p),2);O(m),q(p);var h=M(p,2),g=M(B(h),2),_=B(g);_.value=_.__value=`opencode`;var v=M(_);v.value=v.__value=`claude`;var y=M(v);y.value=y.__value=`opencode-sdk`,q(g),q(h);var x=M(h,2),S=e=>{var t=xp(),n=H(t),i=M(B(n),2);O(i),q(n);var a=M(n,2),o=M(B(a),2);O(o),q(a),T(i,()=>r().bin,e=>r(r().bin=e,!0)),T(o,()=>r().args,e=>r(r().args=e,!0)),d(e,t)},C=e=>{var t=Sp(),n=H(t),i=M(B(n),2);O(i),q(n);var a=M(n,2),o=M(B(a),2);O(o),V(o,`placeholder`,"${PWD}"),q(a),T(i,()=>r().model,e=>r(r().model=e,!0)),T(o,()=>r().workspace,e=>r(r().workspace=e,!0)),d(e,t)};l(x,e=>{r().platform===`opencode-sdk`?e(C,-1):e(S)}),q(f),q(u);var w=M(u,2),E=B(w),D=M(E,2);q(w),q(o),n(`click`,a,function(...e){t.oncancel?.apply(this,e)}),n(`click`,c,function(...e){t.oncancel?.apply(this,e)}),T(m,()=>r().name,e=>r(r().name=e,!0)),k(g,()=>r().platform,e=>r(r().platform=e,!0)),n(`click`,E,function(...e){t.oncancel?.apply(this,e)}),n(`click`,D,function(...e){t.onapply?.apply(this,e)}),d(e,i),R()}J([`click`]);var Tp=[`reflect`,`distill`,`consolidate`,`validation`,`memoryInference`,`graphExtraction`,`extract`,`triage`],Ep={reflect:`Propose stash updates via self-reflection`,distill:`Quality-judge and distill feedback`,consolidate:`Deduplicate and merge overlapping memories`,validation:`Third-model confidence and staleness scoring`,memoryInference:`Derive structured memories from pending files`,graphExtraction:`Extract entities and relations for graph search`,extract:`Read session logs and queue insight proposals`,triage:`Auto-review and accept/promote queued proposals`},Dp={reflect:!0,distill:!0,consolidate:!1,validation:!1,memoryInference:!0,graphExtraction:!0,extract:!0,triage:!1};function Op(e){if(typeof e==`number`)return Number.isNaN(e)?void 0:e;let t=parseFloat(e);return e.trim()===``||Number.isNaN(t)?void 0:t}function kp(e){if(typeof e==`number`)return Number.isNaN(e)?void 0:Math.trunc(e);let t=parseInt(e,10);return e.trim()===``||Number.isNaN(t)?void 0:t}function Ap(e){return{enabled:e,mode:``,profile:``,timeoutMs:``,allowedTypes:``,qualityGate:``,contradictionDetection:``,defaultSince:``,maxTotalChars:``,maxChunkSize:``,applyMode:``,policy:``,maxAcceptsPerRun:``,maxDiffLines:``,rejectEmpty:!1,judgment:{mode:``,profile:``,timeoutMs:``},rest:{}}}var jp=e=>typeof e==`object`&&e&&`enabled`in e?e.enabled?`on`:`off`:``,Mp=new Set([`enabled`,`mode`,`profile`,`timeoutMs`,`allowedTypes`,`qualityGate`,`contradictionDetection`,`defaultSince`,`maxTotalChars`,`maxChunkSize`,`applyMode`,`policy`,`maxAcceptsPerRun`,`maxDiffLines`,`rejectEmpty`,`judgment`]);function Np(e,t){let n=Ap(t);if(typeof e==`boolean`)return n.enabled=e,n;if(typeof e!=`object`||!e||Array.isArray(e))return n;let r=e;if(typeof r.enabled==`boolean`&&(n.enabled=r.enabled),n.mode=r.mode??``,n.profile=r.profile??``,n.timeoutMs=r.timeoutMs==null?``:String(r.timeoutMs),n.allowedTypes=Array.isArray(r.allowedTypes)?r.allowedTypes.join(`, `):``,n.qualityGate=jp(r.qualityGate),n.contradictionDetection=jp(r.contradictionDetection),n.defaultSince=r.defaultSince??``,n.maxTotalChars=r.maxTotalChars==null?``:String(r.maxTotalChars),n.maxChunkSize=r.maxChunkSize==null?``:String(r.maxChunkSize),n.applyMode=r.applyMode??``,n.policy=r.policy??``,n.maxAcceptsPerRun=r.maxAcceptsPerRun==null?``:String(r.maxAcceptsPerRun),n.maxDiffLines=r.maxDiffLines==null?``:String(r.maxDiffLines),n.rejectEmpty=r.rejectEmpty===!0,typeof r.judgment==`object`&&r.judgment!==null){let e=r.judgment;n.judgment={mode:e.mode??``,profile:e.profile??``,timeoutMs:e.timeoutMs==null?``:String(e.timeoutMs)}}for(let[e,t]of Object.entries(r))Mp.has(e)||(n.rest[e]=t);return n}function Pp(e){let t={...e.rest,enabled:e.enabled};e.mode&&(t.mode=e.mode),e.profile&&(t.profile=e.profile),e.timeoutMs!==``&&(t.timeoutMs=parseInt(e.timeoutMs,10));let n=e.allowedTypes.split(`,`).map(e=>e.trim()).filter(Boolean);n.length&&(t.allowedTypes=n),e.qualityGate&&(t.qualityGate={enabled:e.qualityGate===`on`}),e.contradictionDetection&&(t.contradictionDetection={enabled:e.contradictionDetection===`on`}),e.defaultSince&&(t.defaultSince=e.defaultSince);let r=kp(e.maxTotalChars);r!==void 0&&(t.maxTotalChars=r);let i=kp(e.maxChunkSize);i!==void 0&&(t.maxChunkSize=i),e.applyMode&&(t.applyMode=e.applyMode),e.policy&&(t.policy=e.policy);let a=kp(e.maxAcceptsPerRun);a!==void 0&&(t.maxAcceptsPerRun=a);let o=kp(e.maxDiffLines);o!==void 0&&(t.maxDiffLines=o),e.rejectEmpty&&(t.rejectEmpty=!0);let s={};return e.judgment.mode&&(s.mode=e.judgment.mode),e.judgment.profile&&(s.profile=e.judgment.profile),e.judgment.timeoutMs!==``&&(s.timeoutMs=parseInt(e.judgment.timeoutMs,10)),Object.keys(s).length&&(t.judgment=s),t}var Fp=s(`<option></option>`),Ip=s(`<label class="adv-field svelte-1ndbe78"><span class="svelte-1ndbe78">Quality gate</span> <select class="control-input svelte-1ndbe78"><option>Default</option><option>Enabled</option><option>Disabled</option></select></label>`),Lp=s(`<label class="adv-field svelte-1ndbe78"><span class="svelte-1ndbe78">Contradiction detection</span> <select class="control-input svelte-1ndbe78"><option>Default</option><option>Enabled</option><option>Disabled</option></select></label>`),Rp=s(`<label class="adv-field svelte-1ndbe78"><span class="svelte-1ndbe78">Default since</span> <input class="control-input svelte-1ndbe78" type="text" spellcheck="false" placeholder="e.g. 7d, 2026-01-01"/></label> <label class="adv-field svelte-1ndbe78"><span class="svelte-1ndbe78">Max total chars</span> <input class="control-input control-input--narrow svelte-1ndbe78" type="number" min="1"/></label> <label class="adv-field svelte-1ndbe78"><span class="svelte-1ndbe78">Max chunk size (1–50)</span> <input class="control-input control-input--narrow svelte-1ndbe78" type="number" min="1" max="50"/></label>`,1),zp=s(`<label class="adv-field svelte-1ndbe78"><span class="svelte-1ndbe78">Apply mode</span> <select class="control-input svelte-1ndbe78"><option>Default</option><option>Queue</option><option>Promote</option></select></label> <label class="adv-field svelte-1ndbe78"><span class="svelte-1ndbe78">Policy</span> <input class="control-input svelte-1ndbe78" type="text" spellcheck="false" placeholder="policy name/ref"/></label> <label class="adv-field svelte-1ndbe78"><span class="svelte-1ndbe78">Max accepts per run</span> <input class="control-input control-input--narrow svelte-1ndbe78" type="number" min="1"/></label> <label class="adv-field svelte-1ndbe78"><span class="svelte-1ndbe78">Max diff lines</span> <input class="control-input control-input--narrow svelte-1ndbe78" type="number" min="1"/></label> <label class="adv-field adv-field--check svelte-1ndbe78"><input type="checkbox" class="svelte-1ndbe78"/> <span class="svelte-1ndbe78">Reject empty diffs</span></label> <div class="adv-field adv-field--wide svelte-1ndbe78"><span class="adv-sublabel svelte-1ndbe78">Judgment (overrides for the accept/reject decision)</span> <div class="proc-adv-grid svelte-1ndbe78"><label class="adv-field svelte-1ndbe78"><span class="svelte-1ndbe78">Mode</span> <select class="control-input svelte-1ndbe78"><option>Default</option><option>LLM</option><option>Agent</option><option>SDK</option></select></label> <label class="adv-field svelte-1ndbe78"><span class="svelte-1ndbe78">Profile</span> <input class="control-input svelte-1ndbe78" type="text" spellcheck="false" list="llm-profiles-list"/></label> <label class="adv-field svelte-1ndbe78"><span class="svelte-1ndbe78">Timeout (ms)</span> <input class="control-input control-input--narrow svelte-1ndbe78" type="number" min="1"/></label></div></div>`,1),Bp=s(`<div class="proc-card svelte-1ndbe78"><div class="proc-head svelte-1ndbe78"><input type="checkbox" class="svelte-1ndbe78"/> <div class="proc-name svelte-1ndbe78"><span class="feat-name svelte-1ndbe78"> </span><span class="feat-hint svelte-1ndbe78"> </span></div> <select class="control-input svelte-1ndbe78"><option>Default mode</option><option>LLM (direct call)</option><option>Agent (subprocess)</option><option>SDK (programmatic)</option></select> <input class="control-input svelte-1ndbe78" type="text" spellcheck="false" list="llm-profiles-list" placeholder="— default profile —"/> <input class="control-input control-input--narrow svelte-1ndbe78" type="number" min="1" placeholder="timeout ms"/></div> <details class="proc-adv svelte-1ndbe78"><summary class="svelte-1ndbe78">Advanced</summary> <div class="proc-adv-grid svelte-1ndbe78"><label class="adv-field svelte-1ndbe78"><span class="svelte-1ndbe78">Allowed types (comma-separated)</span> <input class="control-input svelte-1ndbe78" type="text" spellcheck="false" placeholder="skill, knowledge, …"/></label> <!> <!> <!> <!></div></details></div>`),Vp=s(`<datalist id="llm-profiles-list"></datalist> <div class="drawer-scrim svelte-1ndbe78" role="presentation"></div> <div class="drawer svelte-1ndbe78" role="dialog" aria-modal="true" aria-label="Edit profile"><div class="drawer-header svelte-1ndbe78"><h3 class="drawer-title svelte-1ndbe78">Improve Profile</h3> <button class="drawer-close svelte-1ndbe78" aria-label="Close">✕</button></div> <div class="drawer-body svelte-1ndbe78"><div class="controls controls--grid svelte-1ndbe78"><div class="control-group svelte-1ndbe78"><label class="control-label svelte-1ndbe78" for="d-imp-name">Profile Name</label> <input id="d-imp-name" class="control-input svelte-1ndbe78" type="text" spellcheck="false" placeholder="e.g. default"/></div> <div class="control-group control-group--wide svelte-1ndbe78"><label class="control-label svelte-1ndbe78" for="d-imp-desc">Description</label> <input id="d-imp-desc" class="control-input svelte-1ndbe78" type="text" spellcheck="false" placeholder="Optional description"/></div> <div class="control-group svelte-1ndbe78"><label class="control-label svelte-1ndbe78" for="d-imp-limit">Max proposals per run</label> <input id="d-imp-limit" class="control-input control-input--narrow svelte-1ndbe78" type="number" min="1" max="100"/></div> <div class="control-group svelte-1ndbe78"><label class="control-label svelte-1ndbe78" for="d-imp-autoacc">Auto-accept threshold (0 = manual)</label> <input id="d-imp-autoacc" class="control-input control-input--narrow svelte-1ndbe78" type="number" min="0" max="1" step="0.05"/></div></div> <div class="proc-list svelte-1ndbe78"></div> <div class="controls controls--grid svelte-1ndbe78"><div class="control-group svelte-1ndbe78"><label class="control-label svelte-1ndbe78" for="d-imp-sync">Git sync after run</label> <select id="d-imp-sync" class="control-input svelte-1ndbe78"><option>Default</option><option>Enabled</option><option>Disabled</option></select></div> <div class="control-group svelte-1ndbe78"><label class="control-label svelte-1ndbe78" for="d-imp-syncpush">Push to remote</label> <select id="d-imp-syncpush" class="control-input svelte-1ndbe78"><option>Default</option><option>Enabled</option><option>Disabled</option></select></div> <div class="control-group control-group--wide svelte-1ndbe78"><label class="control-label svelte-1ndbe78" for="d-imp-syncmsg">Commit message</label> <input id="d-imp-syncmsg" class="control-input svelte-1ndbe78" type="text" spellcheck="false" placeholder="Optional commit message"/></div></div></div> <div class="drawer-footer svelte-1ndbe78"><button class="btn btn-secondary">Cancel</button> <button class="btn btn-primary">Apply</button></div></div>`,1);function Hp(e,t){j(t,!0);let r=b(t,`draft`,15);var i=Vp(),a=H(i);P(a,20,()=>t.llmProfileNames,e=>e,(e,t)=>{var n=Fp(),r={};_(()=>{r!==(r=t)&&(n.value=(n.__value=t)??``)}),d(e,n)}),q(a);var o=M(a,2),s=M(o,2),c=B(s),f=M(B(c),2);q(c);var p=M(c,2),m=B(p),g=B(m),v=M(B(g),2);O(v),q(g);var y=M(g,2),x=M(B(y),2);O(x),q(y);var S=M(y,2),w=M(B(S),2);O(w),q(S);var D=M(S,2),A=M(B(D),2);O(A),q(D),q(m);var N=M(m,2);P(N,20,()=>Tp,e=>e,(e,t)=>{let n=E(()=>r().processes[t]);var i=Bp(),a=B(i),o=B(a);O(o);var s=M(o,2),c=B(s),f=B(c,!0);q(c);var p=M(c),m=B(p,!0);q(p),q(s);var g=M(s,2),v=B(g);v.value=v.__value=``;var y=M(v);y.value=y.__value=`llm`;var b=M(y);b.value=b.__value=`agent`;var x=M(b);x.value=x.__value=`sdk`,q(g);var S=M(g,2);O(S);var w=M(S,2);O(w),q(a);var D=M(a,2),A=M(B(D),2),j=B(A),N=M(B(j),2);O(N),q(j);var P=M(j,2),I=e=>{var t=Ip(),r=M(B(t),2),i=B(r);i.value=i.__value=``;var a=M(i);a.value=a.__value=`on`;var o=M(a);o.value=o.__value=`off`,q(r),q(t),k(r,()=>h(n).qualityGate,e=>h(n).qualityGate=e),d(e,t)};l(P,e=>{(t===`reflect`||t===`distill`)&&e(I)});var L=M(P,2),R=e=>{var t=Lp(),r=M(B(t),2),i=B(r);i.value=i.__value=``;var a=M(i);a.value=a.__value=`on`;var o=M(a);o.value=o.__value=`off`,q(r),q(t),k(r,()=>h(n).contradictionDetection,e=>h(n).contradictionDetection=e),d(e,t)};l(L,e=>{t===`consolidate`&&e(R)});var z=M(L,2),ee=e=>{var t=Rp(),r=H(t),i=M(B(r),2);O(i),q(r);var a=M(r,2),o=M(B(a),2);O(o),q(a);var s=M(a,2),c=M(B(s),2);O(c),q(s),T(i,()=>h(n).defaultSince,e=>h(n).defaultSince=e),T(o,()=>h(n).maxTotalChars,e=>h(n).maxTotalChars=e),T(c,()=>h(n).maxChunkSize,e=>h(n).maxChunkSize=e),d(e,t)};l(z,e=>{t===`extract`&&e(ee)});var U=M(z,2),W=e=>{var t=zp(),r=H(t),i=M(B(r),2),a=B(i);a.value=a.__value=``;var o=M(a);o.value=o.__value=`queue`;var s=M(o);s.value=s.__value=`promote`,q(i),q(r);var c=M(r,2),l=M(B(c),2);O(l),q(c);var u=M(c,2),f=M(B(u),2);O(f),q(u);var p=M(u,2),m=M(B(p),2);O(m),q(p);var g=M(p,2),_=B(g);O(_),C(2),q(g);var v=M(g,2),y=M(B(v),2),b=B(y),x=M(B(b),2),S=B(x);S.value=S.__value=``;var w=M(S);w.value=w.__value=`llm`;var E=M(w);E.value=E.__value=`agent`;var D=M(E);D.value=D.__value=`sdk`,q(x),q(b);var A=M(b,2),j=M(B(A),2);O(j),q(A);var N=M(A,2),P=M(B(N),2);O(P),q(N),q(y),q(v),k(i,()=>h(n).applyMode,e=>h(n).applyMode=e),T(l,()=>h(n).policy,e=>h(n).policy=e),T(f,()=>h(n).maxAcceptsPerRun,e=>h(n).maxAcceptsPerRun=e),T(m,()=>h(n).maxDiffLines,e=>h(n).maxDiffLines=e),F(_,()=>h(n).rejectEmpty,e=>h(n).rejectEmpty=e),k(x,()=>h(n).judgment.mode,e=>h(n).judgment.mode=e),T(j,()=>h(n).judgment.profile,e=>h(n).judgment.profile=e),T(P,()=>h(n).judgment.timeoutMs,e=>h(n).judgment.timeoutMs=e),d(e,t)};l(U,e=>{t===`triage`&&e(W)}),q(A),q(D),q(i),_(()=>{V(o,`aria-label`,`${t??``} enabled`),u(f,t),u(m,Ep[t]),V(g,`aria-label`,`${t??``} mode`),V(S,`aria-label`,`${t??``} profile`),V(w,`aria-label`,`${t??``} timeout`)}),F(o,()=>h(n).enabled,e=>h(n).enabled=e),k(g,()=>h(n).mode,e=>h(n).mode=e),T(S,()=>h(n).profile,e=>h(n).profile=e),T(w,()=>h(n).timeoutMs,e=>h(n).timeoutMs=e),T(N,()=>h(n).allowedTypes,e=>h(n).allowedTypes=e),d(e,i)}),q(N);var I=M(N,2),L=B(I),z=M(B(L),2),ee=B(z);ee.value=ee.__value=``;var U=M(ee);U.value=U.__value=`on`;var W=M(U);W.value=W.__value=`off`,q(z),q(L);var G=M(L,2),te=M(B(G),2),ne=B(te);ne.value=ne.__value=``;var K=M(ne);K.value=K.__value=`on`;var J=M(K);J.value=J.__value=`off`,q(te),q(G);var re=M(G,2),ie=M(B(re),2);O(ie),q(re),q(I),q(p);var ae=M(p,2),Y=B(ae),X=M(Y,2);q(ae),q(s),n(`click`,o,function(...e){t.oncancel?.apply(this,e)}),n(`click`,f,function(...e){t.oncancel?.apply(this,e)}),T(v,()=>r().name,e=>r(r().name=e,!0)),T(x,()=>r().description,e=>r(r().description=e,!0)),T(w,()=>r().limit,e=>r(r().limit=e,!0)),T(A,()=>r().autoAccept,e=>r(r().autoAccept=e,!0)),k(z,()=>r().syncEnabled,e=>r(r().syncEnabled=e,!0)),k(te,()=>r().syncPush,e=>r(r().syncPush=e,!0)),T(ie,()=>r().syncMessage,e=>r(r().syncMessage=e,!0)),n(`click`,Y,function(...e){t.oncancel?.apply(this,e)}),n(`click`,X,function(...e){t.onapply?.apply(this,e)}),d(e,i),R()}J([`click`]);var Up=()=>crypto.randomUUID(),Wp=e=>e&&typeof e==`object`&&!Array.isArray(e)?e:void 0,Gp=e=>typeof e==`number`?String(e):``;function Kp(e){return{endpoint:e.endpoint??``,model:e.model??``,provider:e.provider??``,apiKey:e.apiKey??``,showApiKey:!1,temperature:e.temperature==null?``:String(e.temperature),maxTokens:e.maxTokens==null?``:String(e.maxTokens),timeoutMs:e.timeoutMs==null?``:String(e.timeoutMs),concurrency:e.concurrency==null?``:String(e.concurrency),contextLength:e.contextLength==null?``:String(e.contextLength),judgeModel:e.judgeModel??``,supportsJsonSchema:e.supportsJsonSchema??!1,enableThinking:e.enableThinking??!1,structuredOutput:Wp(e.capabilities)?.structuredOutput??!1,extraParams:e.extraParams&&typeof e.extraParams==`object`?JSON.stringify(e.extraParams,null,2):``}}function qp(e,t,n){let r=Wp(t.processes)??{},i={};for(let e of Tp)i[e]=Np(r[e],Dp[e]);let a=Wp(t.sync);return{id:n(),name:e,description:t.description??``,limit:typeof t.limit==`number`?t.limit:25,autoAccept:typeof t.autoAccept==`number`?t.autoAccept:0,processes:i,syncEnabled:jp(a?{enabled:a.enabled}:void 0),syncPush:jp(a?{enabled:a.push}:void 0),syncMessage:a?.message??``}}function Jp(e,t=Up){let n=Wp(e.profiles),r=Wp(n?.llm),i=r?Object.entries(r).map(([e,n])=>({id:t(),name:e,...Kp(Wp(n)??{})})):[],a=Wp(n?.agent),o=a?Object.entries(a).map(([e,n])=>{let r=Wp(n)??{};return{id:t(),name:e,platform:r.platform??`opencode`,bin:r.bin??``,args:Array.isArray(r.args)?r.args.join(` `):``,workspace:r.workspace??``,model:r.model??``}}):[],s=Wp(n?.improve),c=s?Object.entries(s).map(([e,n])=>qp(e,Wp(n)??{},t)):[],l=Wp(e.defaults),u=Wp(e.embedding),d=Wp(u?.ollamaOptions),f={endpoint:u?.endpoint??``,model:u?.model??``,provider:u?.provider??``,apiKey:u?.apiKey??``,dimension:typeof u?.dimension==`number`?u.dimension:1536,localModel:u?.localModel??``,batchSize:u?.batchSize==null?``:String(u.batchSize),chunkSize:u?.chunkSize==null?``:String(u.chunkSize),contextLength:u?.contextLength==null?``:String(u.contextLength),ollamaNumCtx:d?.num_ctx==null?``:String(d.num_ctx)},p=Wp(e.output),m=Wp(e.improve),h=Wp(m?.utilityDecay),g=Wp(e.search),_=Wp(e.feedback);return{llmProfiles:i,defaultLlmProfile:l?.llm??``,agentProfiles:o,defaultAgentProfile:l?.agent??``,improveProfiles:c,defaultImproveProfile:l?.improve??``,embedding:f,semanticSearchMode:e.semanticSearchMode??`auto`,outputFormat:p?.format??`json`,outputDetail:p?.detail??`brief`,imHalfLife:Gp(h?.halfLifeDays),imFeedbackBoost:Gp(h?.feedbackStabilityBoost),imEventRetention:Gp(m?.eventRetentionDays),searchMinScore:Gp(g?.minScore),searchCurateRerank:jp(g?.curateRerank),fbRequireReason:typeof _?.requireReason==`boolean`?_.requireReason?`on`:`off`:``,fbFailureModes:Array.isArray(_?.allowedFailureModes)?(_?.allowedFailureModes).join(`, `):``,indexJson:e.index&&typeof e.index==`object`?JSON.stringify(e.index,null,2):``}}function Yp(e){let t={endpoint:e.endpoint,model:e.model};e.provider&&(t.provider=e.provider),e.apiKey&&(t.apiKey=e.apiKey);let n=Op(e.temperature);n!==void 0&&(t.temperature=n);let r=kp(e.maxTokens);r!==void 0&&(t.maxTokens=r);let i=kp(e.timeoutMs);i!==void 0&&(t.timeoutMs=i);let a=kp(e.concurrency);a!==void 0&&(t.concurrency=a);let o=kp(e.contextLength);if(o!==void 0&&(t.contextLength=o),e.judgeModel&&(t.judgeModel=e.judgeModel),e.supportsJsonSchema&&(t.supportsJsonSchema=!0),e.enableThinking&&(t.enableThinking=!0),e.structuredOutput&&(t.capabilities={structuredOutput:!0}),e.extraParams.trim()){let n;try{n=JSON.parse(e.extraParams)}catch{throw Error(`LLM profile "${e.name}": extraParams must be valid JSON`)}if(typeof n!=`object`||!n||Array.isArray(n))throw Error(`LLM profile "${e.name}": extraParams must be a JSON object`);t.extraParams=n}return t}function Xp(e){let t={};for(let n of e.llmProfiles)n.name.trim()&&(t[n.name.trim()]=Yp(n));let n={};for(let t of e.agentProfiles){if(!t.name.trim())continue;let e={platform:t.platform};t.bin&&(e.bin=t.bin),t.args&&(e.args=t.args.split(/\s+/).filter(Boolean)),t.workspace&&(e.workspace=t.workspace),t.model&&(e.model=t.model),n[t.name.trim()]=e}let r={};for(let t of e.improveProfiles){if(!t.name.trim())continue;let e={};for(let n of Tp)e[n]=Pp(t.processes[n]);let n={limit:t.limit,processes:e};t.description&&(n.description=t.description),t.autoAccept>0&&(n.autoAccept=t.autoAccept);let i={};t.syncEnabled&&(i.enabled=t.syncEnabled===`on`),t.syncPush&&(i.push=t.syncPush===`on`),t.syncMessage.trim()&&(i.message=t.syncMessage.trim()),Object.keys(i).length&&(n.sync=i),r[t.name.trim()]=n}let i=e.embedding,a={endpoint:i.endpoint,model:i.model,dimension:i.dimension};i.provider&&(a.provider=i.provider),i.apiKey&&(a.apiKey=i.apiKey),i.localModel&&(a.localModel=i.localModel);let o=kp(i.batchSize);o!==void 0&&(a.batchSize=o);let s=kp(i.chunkSize);s!==void 0&&(a.chunkSize=s);let c=kp(i.contextLength);c!==void 0&&(a.contextLength=c);let l=kp(i.ollamaNumCtx);l!==void 0&&(a.ollamaOptions={num_ctx:l});let u={};e.defaultLlmProfile&&(u.llm=e.defaultLlmProfile),e.defaultAgentProfile&&(u.agent=e.defaultAgentProfile),e.defaultImproveProfile&&(u.improve=e.defaultImproveProfile);let d={},f={},p=Op(e.imHalfLife);p!==void 0&&(f.halfLifeDays=p);let m=Op(e.imFeedbackBoost);m!==void 0&&(f.feedbackStabilityBoost=m),Object.keys(f).length&&(d.utilityDecay=f);let h=Op(e.imEventRetention);h!==void 0&&(d.eventRetentionDays=h);let g={},_=Op(e.searchMinScore);_!==void 0&&(g.minScore=_),e.searchCurateRerank&&(g.curateRerank={enabled:e.searchCurateRerank===`on`});let v={};e.fbRequireReason&&(v.requireReason=e.fbRequireReason===`on`);let y=e.fbFailureModes.split(`,`).map(e=>e.trim()).filter(Boolean);y.length&&(v.allowedFailureModes=y);let b;if(e.indexJson.trim()){let t;try{t=JSON.parse(e.indexJson)}catch{throw Error(`Index config must be valid JSON`)}if(typeof t!=`object`||!t||Array.isArray(t))throw Error(`Index config must be a JSON object keyed by pass name`);b=t}return{profiles:{llm:t,agent:n,improve:r},defaults:u,embedding:a,semanticSearchMode:e.semanticSearchMode,output:{format:e.outputFormat,detail:e.outputDetail},...Object.keys(d).length?{improve:d}:{},...Object.keys(g).length?{search:g}:{},...Object.keys(v).length?{feedback:v}:{},...b===void 0?{}:{index:b}}}var Zp=s(`<button class="btn btn-secondary btn-sm"><!> Re-index</button>`),Qp=s(`<div class="error-banner svelte-19wb2va"><span> </span></div>`),$p=s(`<button role="tab">Health Report</button>`),em=s(`<!> <p class="section-note section-note--lead svelte-19wb2va">The AI services your assistant uses to build and search its memory — the language models that organize memories, the embedding provider for semantic search, and the maintenance pipeline.</p> <!> <!> <!> <!>`,1),tm=s(`<div class="panel" role="tabpanel"><div class="panel-header"><div><h2 class="svelte-19wb2va">Knowledge</h2> <p class="panel-header-sub svelte-19wb2va">Memory · LLM · embedding config</p></div> <div class="panel-header-actions svelte-19wb2va"><button class="btn btn-secondary btn-sm"><!> Refresh</button> <!> <button class="btn btn-primary btn-sm"><!> Save</button></div></div> <!> <div class="panel-body svelte-19wb2va"><div class="k-tabs svelte-19wb2va" role="tablist" aria-label="Knowledge sections"><button role="tab">AI Services</button> <button role="tab">Behavior</button> <!></div> <!> <!> <!></div> <!></div>`);function nm(e,t){j(t,!0);let r=I(!1),i=I(!1),a=I(!1),o=I(!1),s=I(!1),c=I(``),f=E(()=>fe(`host:containers`)),p=I(x([])),m=I(``),g=I(x([])),v=I(``),y=I(x([])),b=I(``),w=I(``),T=I(``),D=I(``),O=I(``),k=I(1536),A=I(``),N=I(``),P=I(``),F=I(``),L=I(``),z=I(`auto`),U=I(`json`),G=I(`brief`),te=I(``),ne=I(``),K=I(``),J=I(``),re=I(``),ie=I(``),ae=I(``),X=I(``),oe=I(`ai-services`),Z=I(null),se=I(null),ce=I(null),le=I(null),Q=E(()=>h(p).map(e=>e.name).filter(e=>e));function ue(){return{id:crypto.randomUUID(),name:``,endpoint:``,model:``,provider:``,apiKey:``,showApiKey:!1,temperature:``,maxTokens:``,timeoutMs:``,concurrency:``,contextLength:``,judgeModel:``,supportsJsonSchema:!1,enableThinking:!1,structuredOutput:!1,extraParams:``}}function de(){return{id:crypto.randomUUID(),name:``,platform:`opencode`,bin:``,args:``,workspace:``,model:``}}function pe(){let e={};for(let t of Tp)e[t]=Ap(Dp[t]);return{id:crypto.randomUUID(),name:``,description:``,limit:25,autoAccept:0,processes:e,syncEnabled:``,syncPush:``,syncMessage:``}}function me(e){W(se,{...e},!0),W(Z,`llm`)}function he(e){W(ce,{...e},!0),W(Z,`agent`)}function ge(e){let t={};for(let n of Tp){let r=e.processes[n];t[n]={...r,judgment:{...r.judgment},rest:{...r.rest}}}W(le,{...e,processes:t},!0),W(Z,`improve`)}function _e(){if(h(Z)===`llm`&&h(se)){let e={...h(se)},t=h(p).findIndex(t=>t.id===e.id),n=t>=0?h(p)[t].name:``;W(p,t>=0?h(p).map((n,r)=>r===t?e:n):[...h(p),e],!0),h(m)===n&&W(m,e.name,!0)}else if(h(Z)===`agent`&&h(ce)){let e={...h(ce)},t=h(g).findIndex(t=>t.id===e.id),n=t>=0?h(g)[t].name:``;W(g,t>=0?h(g).map((n,r)=>r===t?e:n):[...h(g),e],!0),h(v)===n&&W(v,e.name,!0)}else if(h(Z)===`improve`&&h(le)){let e={...h(le),processes:{...h(le).processes}},t=h(y).findIndex(t=>t.id===e.id),n=t>=0?h(y)[t].name:``;W(y,t>=0?h(y).map((n,r)=>r===t?e:n):[...h(y),e],!0),h(b)===n&&W(b,e.name,!0)}ve()}function ve(){W(Z,null),W(se,null),W(ce,null),W(le,null)}function ye(e,t){if(e===`llm`){let e=h(p).find(e=>e.id===t)?.name??``;h(m)===e&&W(m,``),W(p,h(p).filter(e=>e.id!==t),!0)}else if(e===`agent`){let e=h(g).find(e=>e.id===t)?.name??``;h(v)===e&&W(v,``),W(g,h(g).filter(e=>e.id!==t),!0)}else{let e=h(y).find(e=>e.id===t)?.name??``;h(b)===e&&W(b,``),W(y,h(y).filter(e=>e.id!==t),!0)}h(Z)===e&&ve()}async function be(){W(r,!0),W(c,``);try{let{config:e}=await jt(),t=Jp(e);W(p,t.llmProfiles,!0),W(g,t.agentProfiles,!0),W(y,t.improveProfiles,!0),W(m,t.defaultLlmProfile,!0),W(v,t.defaultAgentProfile,!0),W(b,t.defaultImproveProfile,!0),W(w,t.embedding.endpoint,!0),W(T,t.embedding.model,!0),W(D,t.embedding.provider,!0),W(O,t.embedding.apiKey,!0),W(k,t.embedding.dimension,!0),W(A,t.embedding.localModel,!0),W(N,t.embedding.batchSize,!0),W(P,t.embedding.chunkSize,!0),W(F,t.embedding.contextLength,!0),W(L,t.embedding.ollamaNumCtx,!0),W(z,t.semanticSearchMode,!0),W(U,t.outputFormat,!0),W(G,t.outputDetail,!0),W(te,t.imHalfLife,!0),W(ne,t.imFeedbackBoost,!0),W(K,t.imEventRetention,!0),W(J,t.searchMinScore,!0),W(re,t.searchCurateRerank,!0),W(ie,t.fbRequireReason,!0),W(ae,t.fbFailureModes,!0),W(X,t.indexJson,!0)}catch(e){W(c,e instanceof Error?e.message:`Failed to load AKM config.`,!0)}finally{W(r,!1)}}async function xe(){W(i,!0),W(c,``);try{await Mt(Xp({llmProfiles:h(p),defaultLlmProfile:h(m),agentProfiles:h(g),defaultAgentProfile:h(v),improveProfiles:h(y),defaultImproveProfile:h(b),embedding:{endpoint:h(w),model:h(T),provider:h(D),apiKey:h(O),dimension:h(k),localModel:h(A),batchSize:h(N),chunkSize:h(P),contextLength:h(F),ollamaNumCtx:h(L)},semanticSearchMode:h(z),outputFormat:h(U),outputDetail:h(G),imHalfLife:h(te),imFeedbackBoost:h(ne),imEventRetention:h(K),searchMinScore:h(J),searchCurateRerank:h(re),fbRequireReason:h(ie),fbFailureModes:h(ae),indexJson:h(X)})),Y.push(`success`,`AKM config saved.`)}catch(e){let t=e instanceof Error?e.message:`Failed to save AKM config.`;Y.push(`error`,t)}finally{W(i,!1)}}async function Se(){W(a,!0),W(c,``);try{let e=await Nt();W(w,e.endpoint,!0),W(T,e.model,!0),W(D,e.provider,!0),W(k,e.dimension,!0),Y.push(`success`,e.message)}catch(e){let t=e instanceof Error?e.message:`Failed to detect embedding settings.`;Y.push(`error`,t)}finally{W(a,!1)}}async function Ce(){W(o,!0),W(c,``);try{let e=h(w).trim(),t=h(T).trim(),n=h(D).trim();if(!e||!t){let r=await Nt();e=r.endpoint,t=r.model,n=r.provider,W(w,r.endpoint,!0),W(T,r.model,!0),W(D,r.provider,!0),W(k,r.dimension,!0)}let r=await Pt({endpoint:e,model:t,provider:n,apiKey:h(O),dimension:h(k)});W(k,r.dimension,!0),Y.push(`success`,r.message)}catch(e){let t=e instanceof Error?e.message:`Failed to test embedding settings.`;Y.push(`error`,t)}finally{W(o,!1)}}async function we(){W(s,!0);try{let e=await Ft();Y.push(`success`,e.message)}catch(e){let t=e instanceof Error?e.message:`Failed to rebuild the AKM index.`;Y.push(`error`,t)}finally{W(s,!1)}}ee(()=>{be()});var Te=tm(),Ee=B(Te),De=M(B(Ee),2),Oe=B(De),ke=B(Oe),Ae=e=>{$(e,{})};l(ke,e=>{h(r)&&e(Ae)}),C(),q(Oe);var je=M(Oe,2),Me=e=>{var t=Zp(),c=B(t),u=e=>{$(e,{})};l(c,e=>{h(s)&&e(u)}),C(),q(t),_(()=>t.disabled=h(r)||h(i)||h(a)||h(o)||h(s)),n(`click`,t,()=>void we()),d(e,t)};l(je,e=>{h(f)&&e(Me)});var Ne=M(je,2),Pe=B(Ne),Fe=e=>{$(e,{})};l(Pe,e=>{h(i)&&e(Fe)}),C(),q(Ne),q(De),q(Ee);var Ie=M(Ee,2),Le=e=>{var t=Qp(),n=B(t),r=B(n,!0);q(n),q(t),_(()=>u(r,h(c))),d(e,t)};l(Ie,e=>{h(c)&&e(Le)});var Re=M(Ie,2),ze=B(Re),Be=B(ze);let Ve;var He=M(Be,2);let Ue;var We=M(He,2),Ge=e=>{var t=$p();let r;_(()=>{r=S(t,1,`k-tab svelte-19wb2va`,null,r,{"k-tab--active":h(oe)===`health-report`}),V(t,`aria-selected`,h(oe)===`health-report`)}),n(`click`,t,()=>{W(oe,`health-report`)}),d(e,t)};l(We,e=>{h(f)&&e(Ge)}),q(ze);var Ke=M(ze,2),qe=e=>{var t=em(),n=H(t),c=e=>{{let t=E(()=>h(r)||h(i)||h(a)||h(o)||h(s));Lf(e,{get disabled(){return h(t)}})}};l(n,e=>{h(f)&&e(c)});var u=M(n,4);{let e=E(()=>h(r)||h(i));op(u,{get disabled(){return h(e)},onedit:e=>me(e),onadd:()=>{W(se,ue(),!0),W(Z,`llm`)},onremove:e=>ye(`llm`,e),get profiles(){return h(p)},set profiles(e){W(p,e,!0)},get defaultName(){return h(m)},set defaultName(e){W(m,e,!0)}})}var _=M(u,2);{let e=E(()=>h(r)||h(i));dp(_,{get disabled(){return h(e)},onedit:e=>he(e),onadd:()=>{W(ce,de(),!0),W(Z,`agent`)},onremove:e=>ye(`agent`,e),get profiles(){return h(g)},set profiles(e){W(g,e,!0)},get defaultName(){return h(v)},set defaultName(e){W(v,e,!0)}})}var x=M(_,2);{let e=E(()=>h(r)||h(i));vp(x,{get disabled(){return h(e)},onedit:e=>ge(e),onadd:()=>{W(le,pe(),!0),W(Z,`improve`)},onremove:e=>ye(`improve`,e),get profiles(){return h(y)},set profiles(e){W(y,e,!0)},get defaultName(){return h(b)},set defaultName(e){W(b,e,!0)}})}var S=M(x,2);{let e=E(()=>h(r)||h(i)||h(a)||h(o)||h(s));Vf(S,{get detecting(){return h(a)},get testing(){return h(o)},ondetect:()=>void Se(),ontest:()=>void Ce(),get disabled(){return h(e)},get endpoint(){return h(w)},set endpoint(e){W(w,e,!0)},get model(){return h(T)},set model(e){W(T,e,!0)},get provider(){return h(D)},set provider(e){W(D,e,!0)},get apiKey(){return h(O)},set apiKey(e){W(O,e,!0)},get dimension(){return h(k)},set dimension(e){W(k,e,!0)},get localModel(){return h(A)},set localModel(e){W(A,e,!0)},get batchSize(){return h(N)},set batchSize(e){W(N,e,!0)},get chunkSize(){return h(P)},set chunkSize(e){W(P,e,!0)},get contextLength(){return h(F)},set contextLength(e){W(F,e,!0)},get ollamaNumCtx(){return h(L)},set ollamaNumCtx(e){W(L,e,!0)}})}d(e,t)};l(Ke,e=>{h(oe)===`ai-services`&&e(qe)});var Je=M(Ke,2),Ye=e=>{{let t=E(()=>h(r)||h(i));Uf(e,{get disabled(){return h(t)},get semanticSearchMode(){return h(z)},set semanticSearchMode(e){W(z,e,!0)},get outputFormat(){return h(U)},set outputFormat(e){W(U,e,!0)},get outputDetail(){return h(G)},set outputDetail(e){W(G,e,!0)},get imHalfLife(){return h(te)},set imHalfLife(e){W(te,e,!0)},get imFeedbackBoost(){return h(ne)},set imFeedbackBoost(e){W(ne,e,!0)},get imEventRetention(){return h(K)},set imEventRetention(e){W(K,e,!0)},get searchMinScore(){return h(J)},set searchMinScore(e){W(J,e,!0)},get searchCurateRerank(){return h(re)},set searchCurateRerank(e){W(re,e,!0)},get fbRequireReason(){return h(ie)},set fbRequireReason(e){W(ie,e,!0)},get fbFailureModes(){return h(ae)},set fbFailureModes(e){W(ae,e,!0)},get indexJson(){return h(X)},set indexJson(e){W(X,e,!0)}})}};l(Je,e=>{h(oe)===`behavior`&&e(Ye)});var Xe=M(Je,2),Ze=e=>{{let t=E(()=>h(r)||h(i)||h(a)||h(o)||h(s));Xf(e,{get disabled(){return h(t)}})}};l(Xe,e=>{h(oe)===`health-report`&&h(f)&&e(Ze)}),q(Re);var Qe=M(Re,2),$e=e=>{bp(e,{oncancel:ve,onapply:_e,get draft(){return h(se)},set draft(e){W(se,e,!0)}})},et=e=>{wp(e,{oncancel:ve,onapply:_e,get draft(){return h(ce)},set draft(e){W(ce,e,!0)}})},tt=e=>{Hp(e,{get llmProfileNames(){return h(Q)},oncancel:ve,onapply:_e,get draft(){return h(le)},set draft(e){W(le,e,!0)}})};l(Qe,e=>{h(Z)===`llm`&&h(se)?e($e):h(Z)===`agent`&&h(ce)?e(et,1):h(Z)===`improve`&&h(le)&&e(tt,2)}),q(Te),_(()=>{Oe.disabled=h(r)||h(i)||h(a)||h(o)||h(s),Ne.disabled=h(r)||h(i)||h(a)||h(o)||h(s),Ve=S(Be,1,`k-tab svelte-19wb2va`,null,Ve,{"k-tab--active":h(oe)===`ai-services`}),V(Be,`aria-selected`,h(oe)===`ai-services`),Ue=S(He,1,`k-tab svelte-19wb2va`,null,Ue,{"k-tab--active":h(oe)===`behavior`}),V(He,`aria-selected`,h(oe)===`behavior`)}),n(`click`,Oe,()=>void be()),n(`click`,Ne,()=>void xe()),n(`click`,Be,()=>{W(oe,`ai-services`)}),n(`click`,He,()=>{W(oe,`behavior`)}),d(e,Te),R()}J([`click`]);var rm=s(`<div class="hs-loading svelte-fv9i73"><!> Checking host stash…</div>`),im=s(`<p class="section-note svelte-fv9i73">Host stash sharing isn't available on this deployment.</p>`),am=s(`<section class="config-section svelte-fv9i73"><p class="section-note svelte-fv9i73">Mount your personal AKM stash (<code> </code>) into the
|
|
124
|
+
assistant as a readable secondary source. Enabling also imports your host LLM and
|
|
125
|
+
agent connection profiles so the assistant can use the same providers you have
|
|
126
|
+
configured locally.</p> <div class="controls svelte-fv9i73"><div class="status-row svelte-fv9i73"><span> </span> <code class="host-path svelte-fv9i73"> </code></div> <button class="btn btn-secondary btn-sm"><!> </button> <p class="hint svelte-fv9i73">Takes effect after the next stack restart.</p></div></section>`),om=s(`<div class="panel" role="tabpanel"><div class="panel-header svelte-fv9i73"><h2 class="svelte-fv9i73">Host knowledge sharing</h2></div> <div class="panel-body"><!></div></div>`);function sm(e,t){j(t,!0);let r=I(null),i=I(!0),a=I(!1);async function o(){W(i,!0);try{W(r,await Ht(),!0)}catch{W(r,null)}finally{W(i,!1)}}async function s(){if(!h(a)){W(a,!0);try{if(h(r)?.enabled)W(r,await Wt(),!0),Y.push(`success`,`Host stash sharing disabled. Restart the stack to apply.`);else{let e=await Ut();W(r,e,!0);let t=e.profilesImported?.length?` Imported host profiles: ${e.profilesImported.join(`, `)}.`:``;Y.push(`success`,`Host stash sharing enabled.${t} Restart the stack to apply.`)}}catch(e){Y.push(`error`,e instanceof Error?e.message:`Failed to update host stash sharing.`)}finally{W(a,!1)}}}ee(()=>{o()});var c=om(),f=M(B(c),2),p=B(f),m=e=>{var t=rm();$(B(t),{}),C(),q(t),d(e,t)},g=e=>{d(e,im())},v=e=>{var t=am(),i=B(t),o=M(B(i)),c=B(o,!0);q(o),C(),q(i);var f=M(i,2),p=B(f),m=B(p),g=B(m,!0);q(m);var v=M(m,2),y=B(v,!0);q(v),q(p);var b=M(p,2),x=B(b),w=e=>{$(e,{})};l(x,e=>{h(a)&&e(w)});var T=M(x);q(b),C(2),q(f),q(t),_(()=>{u(c,h(r).hostStashPath),S(m,1,`badge ${h(r).enabled?`badge-enabled`:`badge-disabled`}`),u(g,h(r).enabled?`Enabled`:`Disabled`),u(y,h(r).hostStashPath),b.disabled=h(a),u(T,` ${h(r).enabled?`Disable host sharing`:`Enable host sharing`}`)}),n(`click`,b,()=>void s()),d(e,t)};l(p,e=>{h(i)?e(m):h(r)===null?e(g,1):e(v,-1)}),q(f),q(c),d(e,c),R()}J([`click`]);var cm=s(`<p class="profile-single svelte-11ub9pr"> </p>`),lm=s(`<p class="profile-desc svelte-11ub9pr">Select the profile that matches your hardware. GPU profiles are auto-selected when available.</p>`),um=s(`<option> </option>`),dm=s(`<span class="field-hint svelte-11ub9pr"> </span>`),fm=s(`<span class="field-hint field-hint--warning svelte-11ub9pr"> </span>`),pm=s(`<!> <div class="form-field"><label class="form-label" for="voice-profile">Profile</label> <select id="voice-profile" class="form-input"></select> <!> <!></div>`,1);function mm(e,t){j(t,!0);let r=b(t,`showDescription`,7),i=E(()=>t.profiles.find(e=>e.id===t.selectedProfile)??t.profiles[0]);r(r()??!0);var o=a(),s=H(o),c=e=>{},f=e=>{var t=cm(),n=B(t);q(t),_(()=>u(n,`Using ${h(i)?.label??h(i)?.id??`selected`??``}.`)),d(e,t)},p=e=>{var a=pm(),o=H(a),s=e=>{d(e,lm())};l(o,e=>{r()&&e(s)});var c=M(o,2),f=M(B(c),2);P(f,21,()=>t.profiles,e=>e.id,(e,t)=>{var n=um(),r=B(n);q(n);var i={};_(()=>{n.disabled=h(t).available===!1,V(n,`title`,h(t).available===!1?h(t).reason??`Not available on this host`:void 0),u(r,`${h(t).label??h(t).id??``}${h(t).available===!1?` — unavailable`:``}`),i!==(i=h(t).id)&&(n.value=(n.__value=h(t).id)??``)}),d(e,n)}),q(f);var p;y(f);var m=M(f,2),g=e=>{var t=dm(),n=B(t);q(t),_(()=>u(n,`Requires: ${h(i).requires??``}`)),d(e,t)};l(m,e=>{h(i)?.requires&&e(g)});var v=M(m,2),b=e=>{var t=fm(),n=B(t,!0);q(t),_(()=>u(n,h(i).reason??`This profile is not available on the current host.`)),d(e,t)};l(v,e=>{h(i)?.available===!1&&e(b)}),q(c),_(()=>{p!==(p=t.selectedProfile)&&(f.value=(f.__value=t.selectedProfile)??``,ne(f,t.selectedProfile))}),n(`change`,f,e=>t.onchange(e.currentTarget.value)),d(e,a)};l(s,e=>{t.profiles.length===0?e(c):t.profiles.length===1?e(f,1):e(p,-1)}),d(e,o),R()}J([`change`]);var hm=s(`<section class="engine-section svelte-1r7l91t"><h3 class="engine-heading svelte-1r7l91t">Hardware profile</h3> <!></section>`);function gm(e,t){var n=hm();mm(M(B(n),2),{get profiles(){return t.profiles},get selectedProfile(){return t.selectedProfile},get onchange(){return t.onchange}}),q(n),d(e,n)}var _m=e=>new Promise(t=>setTimeout(t,e));async function vm(e,t,n){let{intervalMs:r,deadlineMs:i}=n,a=n.now??Date.now,o=n.sleep??_m,s=a()+i;for(;a()<s;){await o(r);let n=await e();if(t(n))return{timedOut:!1,value:n}}return{timedOut:!0,value:void 0}}var ym=()=>({engine:``,baseURL:``,model:``,voice:``,language:``});function bm(e,t){return typeof e==`string`?e===`openpalm-voice`?`openpalm-voice`:e===`browser`||e===(t===`tts`?`browser-tts`:`browser-stt`)?`browser`:!e||e.startsWith(`skip-`)?``:`remote`:``}function xm(e,t){let n=ym();return!e||typeof e!=`object`?n:(n.engine=bm(e.engine,t),typeof e.baseURL==`string`&&(n.baseURL=e.baseURL),typeof e.model==`string`&&(n.model=e.model),t===`tts`&&typeof e.voice==`string`&&(n.voice=e.voice),t===`stt`&&typeof e.language==`string`&&(n.language=e.language),n)}function Sm(e,t){if(!e.engine)return;let n={enabled:!0,engine:e.engine};return e.engine===`remote`?(e.baseURL&&(n.baseURL=e.baseURL),e.model&&(n.model=e.model),t===`tts`&&e.voice&&(n.voice=e.voice),t===`stt`&&e.language&&(n.language=e.language)):e.engine===`browser`&&t===`stt`&&e.language&&(n.language=e.language),n}var Cm=s(`<div class="error-banner svelte-nokcxu"><span> </span></div>`),wm=s(`<option> </option>`),Tm=s(`<span> </span>`),Em=s(`<p class="field-hint svelte-nokcxu"> </p>`),Dm=s(`<div class="field svelte-nokcxu"><label class="field-label svelte-nokcxu"> </label> <input class="field-input svelte-nokcxu" autocomplete="off"/> <!></div>`),Om=s(`<p class="field-hint field-hint--warn svelte-nokcxu"> </p>`),km=s(`<!> <!>`,1),Am=s(`<option> </option>`),jm=s(`<span> </span>`),Mm=s(`<p class="field-hint svelte-nokcxu"> </p>`),Nm=s(`<div class="field svelte-nokcxu"><label class="field-label svelte-nokcxu"> </label> <input class="field-input svelte-nokcxu" autocomplete="off"/> <!></div>`),Pm=s(`<span class="test-ok svelte-nokcxu">✓ Working</span>`),Fm=s(`<span class="test-err svelte-nokcxu"> </span>`),Im=s(`<div class="panel" role="tabpanel"><div class="panel-header"><div><h2>Voice</h2> <p class="panel-subtitle">Speech-to-text · text-to-speech</p></div> <div class="panel-header-actions"><button class="btn btn-secondary btn-sm"><!> Refresh</button> <button class="btn btn-primary btn-sm"><!> Save</button></div></div> <!> <div class="panel-body svelte-nokcxu"><div class="voice-grid svelte-nokcxu"><div class="section-card svelte-nokcxu"><div class="sc-title svelte-nokcxu">Speech-to-text (STT)</div> <div class="field svelte-nokcxu"><label class="field-label svelte-nokcxu" for="stt-engine">Engine</label> <select id="stt-engine" class="field-select svelte-nokcxu"><option>— select engine —</option><!></select> <!></div> <!></div> <div class="section-card svelte-nokcxu"><div class="sc-title svelte-nokcxu">Text-to-speech (TTS)</div> <div class="field svelte-nokcxu"><label class="field-label svelte-nokcxu" for="tts-engine">Engine</label> <select id="tts-engine" class="field-select svelte-nokcxu"><option>— select engine —</option><!></select> <!></div> <!> <div class="sc-foot svelte-nokcxu"><div class="test-row svelte-nokcxu"><button type="button" class="btn btn-secondary btn-sm"><!> Test speaker</button> <!></div> <label class="auto-speak-toggle svelte-nokcxu"><input type="checkbox" class="svelte-nokcxu"/> <span>Speak replies automatically</span></label></div></div></div> <!></div></div>`);function Lm(e,t){j(t,!0);let r=[{id:`openpalm-voice`,name:`OpenPalm Voice`,type:`local`,recommended:!0,desc:`Local Kokoro TTS + Whisper STT bundled together.`},{id:`remote`,name:`Remote (OpenAI-compatible)`,type:`cloud`,desc:`Point at any /v1/audio/speech endpoint (OpenAI, Kokoro, Piper, …).`},{id:`browser`,name:`Browser`,type:`builtin`,desc:`Web Speech API on this device. No setup, voice quality varies.`}],i=[{id:`openpalm-voice`,name:`OpenPalm Voice`,type:`local`,recommended:!0,desc:`Local Kokoro TTS + Whisper STT bundled together.`},{id:`remote`,name:`Remote (OpenAI-compatible)`,type:`cloud`,desc:`Point at any /v1/audio/transcriptions endpoint (Whisper, …).`},{id:`browser`,name:`Browser`,type:`builtin`,desc:`Web Speech API on this device. Chrome/Edge only on desktop.`}],o={"openpalm-voice":{id:`openpalm-voice`,fields:[]},remote:{id:`remote`,fields:[{key:`baseURL`,label:`Endpoint URL`,placeholder:`http://host.docker.internal:8880/v1`,hint:`OpenAI-compatible /v1/audio/speech endpoint.`},{key:`model`,label:`Model`,placeholder:`tts-1`},{key:`voice`,label:`Voice`,placeholder:`alloy`}]},browser:{id:`browser`,fields:[]}},s={"openpalm-voice":{id:`openpalm-voice`,fields:[]},remote:{id:`remote`,fields:[{key:`baseURL`,label:`Endpoint URL`,placeholder:`http://host.docker.internal:9000/v1`,hint:`OpenAI-compatible /v1/audio/transcriptions endpoint.`},{key:`model`,label:`Model`,placeholder:`whisper-1`},{key:`language`,label:`Language`,placeholder:`en`,hint:"A code like `en` or `fr`, or leave blank to detect."}]},browser:{id:`browser`,fields:[{key:`language`,label:`Language`,placeholder:`en-US`}]}},c=I(!1),f=I(!1),p=I(``),m=I(x(ym())),g=I(x(ym())),v=I(x({stt:{remoteConfigured:!1,remoteReachable:!1},tts:{remoteConfigured:!1,remoteReachable:!1}})),b=I(x([])),w=I(``),T=E(()=>h(m).engine===`openpalm-voice`||h(g).engine===`openpalm-voice`),D=I(!1),k=I(!1),N=I(!1),F=I(null),z=I(``),U=E(()=>h(D)&&!!X.browserSttUnsupportedReason),G=E(()=>X.browserSttUnsupportedReason??``);function te(e,t){e===`baseURL`?h(g).baseURL=t:e===`model`?h(g).model=t:e===`language`&&(h(g).language=t)}function K(e,t){e===`baseURL`?h(m).baseURL=t:e===`model`?h(m).model=t:e===`voice`&&(h(m).voice=t)}async function J(){W(c,!0),W(p,``);try{let e=await oe();W(m,xm(e.tts,`tts`),!0),W(g,xm(e.stt,`stt`),!0);let t=e.availability;if(t&&W(v,t,!0),e.addon){W(b,e.addon.profiles??[],!0);let t=e=>!!e&&e.available!==!1,n=e.addon.selectedProfile??``,r=h(b).find(e=>e.id===n);if(t(r))W(w,n,!0);else{let e=h(b).find(e=>e.id===`addon.voice.cpu`&&t(e))??h(b).find(e=>e.default&&t(e))??h(b).find(e=>t(e));W(w,e?.id??``,!0),r&&e&&n!==e.id&&Y.push(`info`,`"${r.label??n}" profile isn't available on this host${r.reason?` (${r.reason})`:``}. Using "${e.label??e.id}" instead.`)}}}catch(e){W(p,e instanceof Error?e.message:`Failed to load voice settings.`,!0)}finally{W(c,!1)}}async function re(){W(f,!0),W(p,``);let e=h(m).engine===`openpalm-voice`||h(g).engine===`openpalm-voice`,t=null,n=null;e&&(t=Y.push(`info`,`Enabling voice addon…`,{sticky:!0}),n=setTimeout(()=>{t&&Y.push(`info`,`Starting voice addon — this may take a moment…`,{sticky:!0,replaceId:t})},1500));try{let r=await ce({tts:Sm(h(m),`tts`),stt:Sm(h(g),`stt`),...h(T)&&h(w)?{profile:h(w)}:{}});if(n&&=(clearTimeout(n),null),e&&t){let e=r.voiceAddon;r.status===202&&e?(Y.push(`info`,e.message??`Voice image is downloading — this can take several minutes.`,{sticky:!0,replaceId:t}),ie(t),t=null):r.ok&&e?Y.push(`success`,e.wasAlreadyEnabled?`Voice addon ready — let's chat!`:`Voice addon started, let's chat!`,{replaceId:t}):e?Y.push(`error`,e.error??`Voice addon failed to start.`,{replaceId:t}):Y.push(`success`,`Voice settings saved.`,{replaceId:t})}e||Y.push(`success`,`Voice settings saved.`),await J()}catch(r){n&&clearTimeout(n);let i=r instanceof Error?r.message:`Failed to save voice settings.`;W(p,i,!0),t?Y.push(`error`,i,{replaceId:t}):e&&Y.push(`error`,i)}finally{W(f,!1)}}async function ie(e){let t=`pulling`,n=await vm(async()=>{try{return(await oe()).addon?.activeJob??null}catch{return}},n=>{if(n===void 0)return!1;if(n===null||n.state===`healthy`||n.state===`error`)return!0;if(n.state!==t){t=n.state;let r=n.state===`starting`?`Voice container started — warming up models…`:`Voice image still downloading…`;Y.push(`info`,r,{sticky:!0,replaceId:e})}return!1},{intervalMs:3e3,deadlineMs:18e5});n.timedOut?Y.push(`error`,`Voice addon is taking longer than 30 minutes. Check Docker logs for openpalm-voice.`,{replaceId:e}):!n.value||n.value.state===`healthy`?Y.push(`success`,`Voice addon ready — let's chat!`,{replaceId:e}):Y.push(`error`,n.value.error??`Voice addon failed to start.`,{replaceId:e}),await J()}async function Z(){if(!h(N)){W(N,!0),W(F,null),W(z,``);try{X.errorMessage=``,await ae(`Hello! Your voice is working.`),X.errorMessage?(W(F,`error`),W(z,X.errorMessage,!0)):W(F,`success`)}catch(e){W(F,`error`),W(z,e instanceof Error?e.message:`Voice test failed.`,!0)}finally{W(N,!1),setTimeout(()=>{W(F,null),W(z,``)},5e3)}}}ee(()=>{W(D,`SpeechRecognition`in window||`webkitSpeechRecognition`in window,!0),W(k,`speechSynthesis`in window),J()});var le=Im(),Q=B(le),ue=M(B(Q),2),de=B(ue),fe=B(de),pe=e=>{$(e,{size:12})};l(fe,e=>{h(c)&&e(pe)}),C(),q(de);var me=M(de,2),he=B(me),ge=e=>{$(e,{size:12})};l(he,e=>{h(f)&&e(ge)}),C(),q(me),q(ue),q(Q);var _e=M(Q,2),ve=e=>{var t=Cm(),n=B(t),r=B(n,!0);q(n),q(t),_(()=>u(r,h(p))),d(e,t)};l(_e,e=>{h(p)&&e(ve)});var ye=M(_e,2),be=B(ye),xe=B(be),Se=M(B(xe),2),Ce=M(B(Se),2),we=B(Ce);we.value=we.__value=``,P(M(we),17,()=>i,e=>e.id,(e,t)=>{var n=a(),r=H(n),i=e=>{var n=wm(),r=B(n,!0);q(n);var i={};_(()=>{n.disabled=h(t).id===`browser`&&h(U),u(r,h(t).name),i!==(i=h(t).id)&&(n.value=(n.__value=h(t).id)??``)}),d(e,n)};l(r,e=>{(h(D)||h(t).id!==`browser`)&&e(i)}),d(e,n)}),q(Ce);var Te;y(Ce);var Ee=M(Ce,2),De=e=>{var t=Tm();let n;var r=B(t,!0);q(t),_(()=>{n=S(t,1,`reachability svelte-nokcxu`,null,n,{"reachability--ok":h(v).stt.remoteReachable}),u(r,h(v).stt.remoteReachable?`● Endpoint reachable`:`○ Endpoint not reachable`)}),d(e,t)};l(Ee,e=>{h(g).engine===`remote`&&h(v).stt.remoteConfigured&&e(De)}),q(Se);var Oe=M(Se,2),ke=e=>{var t=km(),r=H(t);P(r,17,()=>s[h(g).engine]?.fields??[],e=>e.key,(e,t)=>{var r=Dm(),i=B(r),a=B(i,!0);q(i);var o=M(i,2);O(o);var s=M(o,2),p=e=>{var n=Em(),r=B(n,!0);q(n),_(()=>u(r,h(t).hint)),d(e,n)};l(s,e=>{h(t).hint&&e(p)}),q(r),_(()=>{V(i,`for`,`stt-${h(t).key??``}`),u(a,h(t).label),V(o,`id`,`stt-${h(t).key??``}`),V(o,`type`,h(t).key===`baseURL`?`url`:`text`),V(o,`placeholder`,h(t).placeholder??``),A(o,h(t).key===`baseURL`?h(g).baseURL:h(t).key===`model`?h(g).model:h(g).language),o.disabled=h(c)||h(f)}),n(`input`,o,e=>te(h(t).key,e.currentTarget.value)),d(e,r)});var i=M(r,2),a=e=>{var t=Om(),n=B(t,!0);q(t),_(()=>u(n,h(G))),d(e,t)};l(i,e=>{h(g).engine===`browser`&&h(U)&&e(a)}),d(e,t)};l(Oe,e=>{h(g).engine&&e(ke)}),q(xe);var Ae=M(xe,2),je=M(B(Ae),2),Me=M(B(je),2),Ne=B(Me);Ne.value=Ne.__value=``,P(M(Ne),17,()=>r,e=>e.id,(e,t)=>{var n=a(),r=H(n),i=e=>{var n=Am(),r=B(n,!0);q(n);var i={};_(()=>{u(r,h(t).name),i!==(i=h(t).id)&&(n.value=(n.__value=h(t).id)??``)}),d(e,n)};l(r,e=>{(h(k)||h(t).id!==`browser`)&&e(i)}),d(e,n)}),q(Me);var Pe;y(Me);var Fe=M(Me,2),Ie=e=>{var t=jm();let n;var r=B(t,!0);q(t),_(()=>{n=S(t,1,`reachability svelte-nokcxu`,null,n,{"reachability--ok":h(v).tts.remoteReachable}),u(r,h(v).tts.remoteReachable?`● Endpoint reachable`:`○ Endpoint not reachable`)}),d(e,t)};l(Fe,e=>{h(m).engine===`remote`&&h(v).tts.remoteConfigured&&e(Ie)}),q(je);var Le=M(je,2),Re=e=>{var t=a();P(H(t),17,()=>o[h(m).engine]?.fields??[],e=>e.key,(e,t)=>{var r=Nm(),i=B(r),a=B(i,!0);q(i);var o=M(i,2);O(o);var s=M(o,2),p=e=>{var n=Mm(),r=B(n,!0);q(n),_(()=>u(r,h(t).hint)),d(e,n)};l(s,e=>{h(t).hint&&e(p)}),q(r),_(()=>{V(i,`for`,`tts-${h(t).key??``}`),u(a,h(t).label),V(o,`id`,`tts-${h(t).key??``}`),V(o,`type`,h(t).key===`baseURL`?`url`:`text`),V(o,`placeholder`,h(t).placeholder??``),A(o,h(t).key===`baseURL`?h(m).baseURL:h(t).key===`model`?h(m).model:h(m).voice),o.disabled=h(c)||h(f)}),n(`input`,o,e=>K(h(t).key,e.currentTarget.value)),d(e,r)}),d(e,t)};l(Le,e=>{h(m).engine&&e(Re)});var ze=M(Le,2),Be=B(ze),Ve=B(Be),He=B(Ve),Ue=e=>{$(e,{size:12})};l(He,e=>{h(N)&&e(Ue)}),C(),q(Ve);var We=M(Ve,2),Ge=e=>{d(e,Pm())},Ke=e=>{var t=Fm(),n=B(t,!0);q(t),_(()=>u(n,h(z)||`Failed`)),d(e,t)};l(We,e=>{h(F)===`success`?e(Ge):h(F)===`error`&&e(Ke,1)}),q(Be);var qe=M(Be,2),Je=B(qe);O(Je),C(2),q(qe),q(ze),q(Ae),q(be);var Ye=M(be,2),Xe=e=>{gm(e,{get profiles(){return h(b)},get selectedProfile(){return h(w)},onchange:e=>W(w,e,!0)})};l(Ye,e=>{h(T)&&h(b).length>0&&e(Xe)}),q(ye),q(le),_(()=>{de.disabled=h(c)||h(f),me.disabled=h(c)||h(f),Ce.disabled=h(c)||h(f),Te!==(Te=h(g).engine)&&(Ce.value=(Ce.__value=h(g).engine)??``,ne(Ce,h(g).engine)),Me.disabled=h(c)||h(f),Pe!==(Pe=h(m).engine)&&(Me.value=(Me.__value=h(m).engine)??``,ne(Me,h(m).engine)),Ve.disabled=h(N)||h(f)||h(c)||!h(m).engine,L(Je,X.ttsAutoEnabled)}),n(`click`,de,()=>void J()),n(`click`,me,()=>void re()),n(`change`,Ce,e=>{h(g).engine=e.currentTarget.value}),n(`change`,Me,e=>{h(m).engine=e.currentTarget.value}),n(`click`,Ve,()=>void Z()),n(`change`,Je,e=>se(e.currentTarget.checked)),d(e,le),R()}J([`click`,`change`,`input`]);function Rm(e,t,n){return typeof t?.openLocalApp==`function`?(t.openLocalApp(),`bridge`):(n(e,`_blank`,`noopener`),`window`)}var zm=s(`<!> <!> <main class="svelte-10vygff"><section class="app-install-banner svelte-10vygff" aria-label="Open localhost app"><div><h2 class="svelte-10vygff">Open the localhost app</h2> <p class="svelte-10vygff">Install or open the loopback-only OpenPalm app from its stable localhost origin.</p></div> <button type="button" class="btn btn-primary">Install OpenPalm app</button></section> <!> <!></main>`,1);function Bm(e,t){j(t,!0);let r=I(!1),i=I(!1),a=I(!1),o=I(null),s=I(``),c=I(null),u=I(null),f=I(``),p=I(null),m=I(`overview`),g=I(!1),_=null;function y(){b(),_=setInterval(()=>{h(o)&&T()},1e4)}function b(){_!==null&&(clearInterval(_),_=null)}z(()=>{b()});let x=E(()=>{if(!h(o))return new xe;let e=new xe;if(h(o).containers)for(let[t,n]of Object.entries(h(o).containers))e.set(t,n);if(h(o).dockerContainers)for(let t of h(o).dockerContainers)e.set(t.Service,t.State);return e}),S=E(()=>{if(!h(o))return[];let e=new xe;if(h(o).containers)for(let[t,n]of Object.entries(h(o).containers))e.set(t,{id:t,service:t,state:n,docker:null});if(h(o).dockerContainers)for(let t of h(o).dockerContainers){let n=e.get(t.Service);n?(n.state=t.State,n.docker=t,n.id=t.ID):e.set(t.Service,{id:t.ID,service:t.Service||t.Name,state:t.State,docker:t})}return[...e.values()].sort((e,t)=>e.state===`running`&&t.state!==`running`?-1:e.state!==`running`&&t.state===`running`?1:e.service.localeCompare(t.service))});function C(){re(`/login?redirectTo=%2Fhost`)}async function w(){W(r,!0);try{await tt()}catch(e){console.warn(`[page] Health check failed:`,e)}W(r,!1)}async function T(){W(i,!0),W(s,``);try{W(o,await nt(),!0)}catch(e){W(o,null);let t=e;t.status===401?(W(s,`Invalid password.`),C()):W(s,`Failed to load containers: ${t.message??e}`)}W(i,!1),h(o)&&W(c,Ee(Date.now()),!0)}async function D(){W(a,!0),W(f,``);try{W(u,await gt(),!0)}catch(e){W(u,null);let t=e;t.status===401?(W(f,`Invalid password.`),C()):W(f,`Failed to load automations: ${t.message??e}`)}W(a,!1)}async function O(e,t){try{await rt(e,t),await T()}catch(e){let t=e;t.status===401?C():W(s,`Action failed: ${t.message??e}`)}}function k(e){W(p,h(p)===e?null:e,!0)}let A=E(()=>{if(!h(o))return[];let e=new Fe;if(h(o).containers)for(let t of Object.keys(h(o).containers))e.add(t);if(h(o).dockerContainers)for(let t of h(o).dockerContainers)t.Service&&e.add(t.Service);return[...e].sort()});async function N(){W(g,!0);try{await it(),await T()}catch(e){let t=e;t.status===401?C():W(s,`Pull failed: ${t.message??e}`)}finally{W(g,!1)}}function P(e){W(m,e,!0),e===`containers`&&!h(o)&&T(),e===`automations`&&!h(u)&&D()}function F(){C()}function L(){Rm(t.data.localClientAppUrl,window.openpalm,window.open)}ee(()=>{Le.url.searchParams.get(`tab`)===`diagnostics`&&P(`containers`),y(),w(),T(),D()});var V=zm();K(`10vygff`,e=>{v(()=>{G.title=`OpenPalm Console`})});var U=H(V);Re(U,{children:(e,t)=>{sn(e,{})},$$slots:{default:!0}});var te=M(U,2);On(te,{get active(){return h(m)},onSelect:P});var ne=M(te,2),J=B(ne),ie=M(B(J),2);q(J);var ae=M(J,2),Y=e=>{{let t=E(()=>h(o)?.managedServices??[]);qn(e,{get healthLoading(){return h(r)},get mergedServices(){return h(x)},get managedServices(){return h(t)},onCheckHealth:w,onNavigate:P})}},X=e=>{vr(e,{})},oe=e=>{Lr(e,{})},Z=e=>{fi(e,{onAuthError:F,onNavigate:P})},se=e=>{$i(e,{get containerData(){return h(o)},get serviceEntries(){return h(S)},get loading(){return h(i)},get error(){return h(s)},get selectedContainerId(){return h(p)},onToggleContainer:k,onStart:e=>O(`start`,e),onStop:e=>O(`stop`,e),onRestart:e=>O(`restart`,e),onRefresh:T,onPullImages:N,get lastUpdated(){return h(c)},get pullLoading(){return h(g)}})},ce=e=>{Ul(e,{get data(){return h(u)},get loading(){return h(a)},get error(){return h(f)},onRefresh:D})},le=e=>{Of(e,{})},Q=e=>{nd(e,{})},ue=e=>{Nd(e,{})},de=e=>{Td(e,{})};l(ae,e=>{h(m)===`overview`?e(Y):h(m)===`updates`?e(X,1):h(m)===`recovery`?e(oe,2):h(m)===`addons`?e(Z,3):h(m)===`containers`?e(se,4):h(m)===`automations`?e(ce,5):h(m)===`activity`?e(le,6):h(m)===`connections`?e(Q,7):h(m)===`assistant`?e(ue,8):h(m)===`secrets`&&e(de,9)});var fe=M(ae,2),pe=e=>{Lm(e,{})},me=e=>{nm(e,{})},he=e=>{sm(e,{})},ge=e=>{{let t=E(()=>h(u)?.automations.map(e=>e.name)??[]);vd(e,{get services(){return h(A)},get automations(){return h(t)}})}};l(fe,e=>{h(m)===`voice`?e(pe):h(m)===`akm`?e(me,1):h(m)===`host-sharing`?e(he,2):h(m)===`logs`&&e(ge,3)}),q(ne),n(`click`,ie,L),d(e,V),R()}J([`click`]);export{Bm as component};
|