@openpalm/ui 0.11.5-rc.5 → 0.11.5-rc.8
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/0.Cg_kDPOD.css +1 -0
- package/build/client/_app/immutable/assets/0.Cg_kDPOD.css.br +0 -0
- package/build/client/_app/immutable/assets/0.Cg_kDPOD.css.gz +0 -0
- package/build/client/_app/immutable/assets/4.DuxrEHWs.css +1 -0
- package/build/client/_app/immutable/assets/4.DuxrEHWs.css.br +0 -0
- package/build/client/_app/immutable/assets/4.DuxrEHWs.css.gz +0 -0
- package/build/client/_app/immutable/assets/7.BzioASK3.css +1 -0
- package/build/client/_app/immutable/assets/7.BzioASK3.css.br +0 -0
- package/build/client/_app/immutable/assets/7.BzioASK3.css.gz +0 -0
- package/build/client/_app/immutable/assets/{9.CK_nuPTW.css → 9.BqmkXh6u.css} +1 -1
- package/build/client/_app/immutable/assets/9.BqmkXh6u.css.br +0 -0
- package/build/client/_app/immutable/assets/9.BqmkXh6u.css.gz +0 -0
- package/build/client/_app/immutable/assets/ChatMessage.DDPla6Cg.css +1 -0
- package/build/client/_app/immutable/assets/ChatMessage.DDPla6Cg.css.br +0 -0
- package/build/client/_app/immutable/assets/ChatMessage.DDPla6Cg.css.gz +0 -0
- package/build/client/_app/immutable/chunks/2ZMOX13V.js +16 -0
- package/build/client/_app/immutable/chunks/2ZMOX13V.js.br +0 -0
- package/build/client/_app/immutable/chunks/2ZMOX13V.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BBLSV5-4.js +1 -0
- package/build/client/_app/immutable/chunks/BBLSV5-4.js.br +1 -0
- package/build/client/_app/immutable/chunks/BBLSV5-4.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BE96pGoc.js +3 -0
- package/build/client/_app/immutable/chunks/BE96pGoc.js.br +0 -0
- package/build/client/_app/immutable/chunks/BE96pGoc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CghSfF6U.js → BWN4X0zs.js} +1 -1
- package/build/client/_app/immutable/chunks/BWN4X0zs.js.br +0 -0
- package/build/client/_app/immutable/chunks/BWN4X0zs.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BXh0hlRI.js +1 -0
- package/build/client/_app/immutable/chunks/BXh0hlRI.js.br +0 -0
- package/build/client/_app/immutable/chunks/BXh0hlRI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BplpI4py.js +5 -0
- package/build/client/_app/immutable/chunks/BplpI4py.js.br +0 -0
- package/build/client/_app/immutable/chunks/BplpI4py.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C2xA1Bq0.js +3 -0
- package/build/client/_app/immutable/chunks/C2xA1Bq0.js.br +0 -0
- package/build/client/_app/immutable/chunks/C2xA1Bq0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CVdeYz6v.js +1 -0
- package/build/client/_app/immutable/chunks/CVdeYz6v.js.br +0 -0
- package/build/client/_app/immutable/chunks/CVdeYz6v.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DJjiuSdP.js +1 -0
- package/build/client/_app/immutable/chunks/DJjiuSdP.js.br +1 -0
- package/build/client/_app/immutable/chunks/DJjiuSdP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/p0W0xTr8.js +1 -0
- package/build/client/_app/immutable/chunks/p0W0xTr8.js.br +2 -0
- package/build/client/_app/immutable/chunks/p0W0xTr8.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.CvJhqOWB.js +2 -0
- package/build/client/_app/immutable/entry/app.CvJhqOWB.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CvJhqOWB.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.Buubqkoa.js +1 -0
- package/build/client/_app/immutable/entry/start.Buubqkoa.js.br +1 -0
- package/build/client/_app/immutable/entry/start.Buubqkoa.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.BeACmjY0.js +1 -0
- package/build/client/_app/immutable/nodes/0.BeACmjY0.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.BeACmjY0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.CkZ-UG6X.js +1 -0
- package/build/client/_app/immutable/nodes/1.CkZ-UG6X.js.br +4 -0
- package/build/client/_app/immutable/nodes/1.CkZ-UG6X.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.BP82lSEI.js +1 -0
- package/build/client/_app/immutable/nodes/2.BP82lSEI.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.BP82lSEI.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.BtPTs7lf.js +1 -0
- package/build/client/_app/immutable/nodes/3.BtPTs7lf.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.BtPTs7lf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.DZOzJf5N.js +120 -0
- package/build/client/_app/immutable/nodes/4.DZOzJf5N.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.DZOzJf5N.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.CQID4Lcc.js +4 -0
- package/build/client/_app/immutable/nodes/5.CQID4Lcc.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.CQID4Lcc.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.BkC_Qb-V.js +1 -0
- package/build/client/_app/immutable/nodes/6.BkC_Qb-V.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.BkC_Qb-V.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.C_moEri9.js +1 -0
- package/build/client/_app/immutable/nodes/7.C_moEri9.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.C_moEri9.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.CPQQ7-ZY.js +1 -0
- package/build/client/_app/immutable/nodes/8.CPQQ7-ZY.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.CPQQ7-ZY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.BhpjEFrE.js +5 -0
- package/build/client/_app/immutable/nodes/9.BhpjEFrE.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.BhpjEFrE.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/client/setup/wizard.css +159 -27
- package/build/client/setup/wizard.css.br +0 -0
- package/build/client/setup/wizard.css.gz +0 -0
- package/build/server/chunks/0-WMKdOxQY.js +9 -0
- package/build/server/chunks/{0-C0Wm0uh4.js.map → 0-WMKdOxQY.js.map} +1 -1
- package/build/server/chunks/1-DUa0GF3v.js +9 -0
- package/build/server/chunks/{1-BO1FboQo.js.map → 1-DUa0GF3v.js.map} +1 -1
- package/build/server/chunks/{2-wNOz2qR7.js → 2-DcJQxQCJ.js} +2 -2
- package/build/server/chunks/{2-wNOz2qR7.js.map → 2-DcJQxQCJ.js.map} +1 -1
- package/build/server/chunks/{3-CMcVVZ5t.js → 3-D50EGd7q.js} +2 -2
- package/build/server/chunks/{3-CMcVVZ5t.js.map → 3-D50EGd7q.js.map} +1 -1
- package/build/server/chunks/4-CRAGzUQh.js +9 -0
- package/build/server/chunks/{4-Cy42KZEq.js.map → 4-CRAGzUQh.js.map} +1 -1
- package/build/server/chunks/5-C1m-Jk_l.js +9 -0
- package/build/server/chunks/{5-wTAacz_u.js.map → 5-C1m-Jk_l.js.map} +1 -1
- package/build/server/chunks/6-BxTOxlzm.js +9 -0
- package/build/server/chunks/{6-CwuJSZNK.js.map → 6-BxTOxlzm.js.map} +1 -1
- package/build/server/chunks/7-CiVEK5n0.js +9 -0
- package/build/server/chunks/{7-BhucvAxb.js.map → 7-CiVEK5n0.js.map} +1 -1
- package/build/server/chunks/{8-BbmPm5QQ.js → 8-Bpnku7ab.js} +3 -3
- package/build/server/chunks/{8-BbmPm5QQ.js.map → 8-Bpnku7ab.js.map} +1 -1
- package/build/server/chunks/9-BjxPEGaS.js +9 -0
- package/build/server/chunks/{9-BCmr-315.js.map → 9-BjxPEGaS.js.map} +1 -1
- package/build/server/chunks/{ChatMessage-DV_A9qbU.js → ChatMessage-BHIBUzrd.js} +80 -5
- package/build/server/chunks/ChatMessage-BHIBUzrd.js.map +1 -0
- package/build/server/chunks/{Navbar-Djg-dawo.js → Navbar-CHNgBXIf.js} +214 -124
- package/build/server/chunks/Navbar-CHNgBXIf.js.map +1 -0
- package/build/server/chunks/{VoiceProfileSelector-CbOV_v5A.js → VoiceProfileSelector-Dm9LnnyW.js} +4 -4
- package/build/server/chunks/VoiceProfileSelector-Dm9LnnyW.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-DzBCdyUD.js → _layout.svelte-DKvvz-xQ.js} +2 -2
- package/build/server/chunks/{_layout.svelte-DzBCdyUD.js.map → _layout.svelte-DKvvz-xQ.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-CF0NIwNQ.js → _page.svelte-BEfqZueO.js} +9 -7
- package/build/server/chunks/_page.svelte-BEfqZueO.js.map +1 -0
- package/build/server/chunks/{_page.svelte-B0M8mXzs.js → _page.svelte-Bo_k7Yp9.js} +2 -2
- package/build/server/chunks/_page.svelte-Bo_k7Yp9.js.map +1 -0
- package/build/server/chunks/{_page.svelte-GBRvAIuJ.js → _page.svelte-CLA0ELRQ.js} +342 -55
- package/build/server/chunks/_page.svelte-CLA0ELRQ.js.map +1 -0
- package/build/server/chunks/{_page.svelte-0Fseybo3.js → _page.svelte-D1_skK9H.js} +3 -3
- package/build/server/chunks/{_page.svelte-0Fseybo3.js.map → _page.svelte-D1_skK9H.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DHges4Pl.js → _page.svelte-DAOv8x_O.js} +25 -99
- package/build/server/chunks/_page.svelte-DAOv8x_O.js.map +1 -0
- package/build/server/chunks/{_page.svelte-C41AgWxR.js → _page.svelte-DqPyVIwk.js} +6 -6
- package/build/server/chunks/{_page.svelte-C41AgWxR.js.map → _page.svelte-DqPyVIwk.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BCLgKgV5.js → _server.ts-2L3QS1hC.js} +5 -4
- package/build/server/chunks/{_server.ts-BCLgKgV5.js.map → _server.ts-2L3QS1hC.js.map} +1 -1
- package/build/server/chunks/{_server.ts-XArez5bY.js → _server.ts-6x0IrmfD.js} +3 -2
- package/build/server/chunks/{_server.ts-XArez5bY.js.map → _server.ts-6x0IrmfD.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CSzLOBbB.js → _server.ts-7sbbhwIJ.js} +6 -5
- package/build/server/chunks/{_server.ts-CSzLOBbB.js.map → _server.ts-7sbbhwIJ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BUexy9Bs.js → _server.ts-9X9GboOx.js} +5 -4
- package/build/server/chunks/{_server.ts-BUexy9Bs.js.map → _server.ts-9X9GboOx.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BTD23brV.js → _server.ts-Adn-DdpI.js} +5 -4
- package/build/server/chunks/{_server.ts-BTD23brV.js.map → _server.ts-Adn-DdpI.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BPu3WMA2.js → _server.ts-Az776yqU.js} +5 -4
- package/build/server/chunks/{_server.ts-BPu3WMA2.js.map → _server.ts-Az776yqU.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BiiFhOLE.js → _server.ts-B0Mco4CF.js} +6 -5
- package/build/server/chunks/{_server.ts-BiiFhOLE.js.map → _server.ts-B0Mco4CF.js.map} +1 -1
- package/build/server/chunks/{_server.ts-lZxRvx5G.js → _server.ts-B4XJRWmg.js} +5 -4
- package/build/server/chunks/{_server.ts-lZxRvx5G.js.map → _server.ts-B4XJRWmg.js.map} +1 -1
- package/build/server/chunks/{_server.ts-H1fnqBYP.js → _server.ts-B8D9bzxZ.js} +5 -4
- package/build/server/chunks/{_server.ts-H1fnqBYP.js.map → _server.ts-B8D9bzxZ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-AOvZbE_q.js → _server.ts-BE_vE72K.js} +6 -5
- package/build/server/chunks/{_server.ts-AOvZbE_q.js.map → _server.ts-BE_vE72K.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CyTEh-kp.js → _server.ts-BKTLNDmT.js} +7 -6
- package/build/server/chunks/{_server.ts-CyTEh-kp.js.map → _server.ts-BKTLNDmT.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D6bq6_Fp.js → _server.ts-BMVMgjjP.js} +7 -6
- package/build/server/chunks/{_server.ts-D6bq6_Fp.js.map → _server.ts-BMVMgjjP.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CWWHoyPz.js → _server.ts-BRMeIbO9.js} +11 -5
- package/build/server/chunks/_server.ts-BRMeIbO9.js.map +1 -0
- package/build/server/chunks/{_server.ts-CakB2g2B.js → _server.ts-BRx0eMUC.js} +4 -3
- package/build/server/chunks/{_server.ts-CakB2g2B.js.map → _server.ts-BRx0eMUC.js.map} +1 -1
- package/build/server/chunks/{_server.ts-GnnvjDGL.js → _server.ts-BW8WG_zO.js} +5 -4
- package/build/server/chunks/{_server.ts-GnnvjDGL.js.map → _server.ts-BW8WG_zO.js.map} +1 -1
- package/build/server/chunks/{_server.ts-8gRao4pC.js → _server.ts-Bj-aBJk7.js} +5 -4
- package/build/server/chunks/{_server.ts-8gRao4pC.js.map → _server.ts-Bj-aBJk7.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BPRY2j_2.js → _server.ts-BjHba4db.js} +5 -4
- package/build/server/chunks/{_server.ts-BPRY2j_2.js.map → _server.ts-BjHba4db.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DZY0Qpnk.js → _server.ts-BljWPM83.js} +5 -4
- package/build/server/chunks/{_server.ts-DZY0Qpnk.js.map → _server.ts-BljWPM83.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Drxntihb.js → _server.ts-Brd-UhLJ.js} +6 -5
- package/build/server/chunks/{_server.ts-Drxntihb.js.map → _server.ts-Brd-UhLJ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-ZfDsuW2E.js → _server.ts-C25ID2Ds.js} +6 -5
- package/build/server/chunks/{_server.ts-ZfDsuW2E.js.map → _server.ts-C25ID2Ds.js.map} +1 -1
- package/build/server/chunks/{_server.ts-z9JFYptL.js → _server.ts-C6hPARrn.js} +5 -4
- package/build/server/chunks/{_server.ts-z9JFYptL.js.map → _server.ts-C6hPARrn.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CbB7X8WD.js → _server.ts-C8z34WB4.js} +7 -6
- package/build/server/chunks/{_server.ts-CbB7X8WD.js.map → _server.ts-C8z34WB4.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DzVt4tZV.js → _server.ts-CHeQUV5e.js} +5 -4
- package/build/server/chunks/{_server.ts-DzVt4tZV.js.map → _server.ts-CHeQUV5e.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DLkvAnm7.js → _server.ts-CIf-kHdw.js} +5 -4
- package/build/server/chunks/{_server.ts-DLkvAnm7.js.map → _server.ts-CIf-kHdw.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BWuDPAZI.js → _server.ts-CLnVD1ol.js} +3 -2
- package/build/server/chunks/{_server.ts-BWuDPAZI.js.map → _server.ts-CLnVD1ol.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D5KmG8Iz.js → _server.ts-CMpjAvc7.js} +3 -2
- package/build/server/chunks/_server.ts-CMpjAvc7.js.map +1 -0
- package/build/server/chunks/{_server.ts-B_A1pH6i.js → _server.ts-CNgRWhGz.js} +5 -4
- package/build/server/chunks/{_server.ts-B_A1pH6i.js.map → _server.ts-CNgRWhGz.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DrccDqL8.js → _server.ts-CTTmVvXF.js} +5 -4
- package/build/server/chunks/{_server.ts-DrccDqL8.js.map → _server.ts-CTTmVvXF.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dmtbp8AT.js → _server.ts-Cf18QJ0U.js} +6 -5
- package/build/server/chunks/{_server.ts-Dmtbp8AT.js.map → _server.ts-Cf18QJ0U.js.map} +1 -1
- package/build/server/chunks/{_server.ts-OVberUvp.js → _server.ts-CfeJ2lFS.js} +7 -6
- package/build/server/chunks/{_server.ts-OVberUvp.js.map → _server.ts-CfeJ2lFS.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BvCT6Mjh.js → _server.ts-ChMZ5tdq.js} +5 -4
- package/build/server/chunks/_server.ts-ChMZ5tdq.js.map +1 -0
- package/build/server/chunks/{_server.ts-CmcgtPlf.js → _server.ts-ClPu8Rkm.js} +6 -5
- package/build/server/chunks/{_server.ts-CmcgtPlf.js.map → _server.ts-ClPu8Rkm.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C58ziWGi.js → _server.ts-CosA5eNc.js} +5 -4
- package/build/server/chunks/{_server.ts-C58ziWGi.js.map → _server.ts-CosA5eNc.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Df17RBWC.js → _server.ts-CqgWbZJS.js} +6 -5
- package/build/server/chunks/{_server.ts-Df17RBWC.js.map → _server.ts-CqgWbZJS.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CzcX98RF.js → _server.ts-CrqxuI7F.js} +6 -5
- package/build/server/chunks/{_server.ts-CzcX98RF.js.map → _server.ts-CrqxuI7F.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DxE9zbbG.js → _server.ts-CrxFegEr.js} +5 -4
- package/build/server/chunks/{_server.ts-DxE9zbbG.js.map → _server.ts-CrxFegEr.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dnq1yxVI.js → _server.ts-CxEzeqf_.js} +7 -6
- package/build/server/chunks/{_server.ts-Dnq1yxVI.js.map → _server.ts-CxEzeqf_.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dh9SJATt.js → _server.ts-CydJkxqH.js} +5 -4
- package/build/server/chunks/{_server.ts-Dh9SJATt.js.map → _server.ts-CydJkxqH.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CHvr_s0m.js → _server.ts-Czpq8s6u.js} +5 -4
- package/build/server/chunks/{_server.ts-CHvr_s0m.js.map → _server.ts-Czpq8s6u.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B35VhBNb.js → _server.ts-CzsTFGFb.js} +5 -4
- package/build/server/chunks/{_server.ts-B35VhBNb.js.map → _server.ts-CzsTFGFb.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BbpEaFjU.js → _server.ts-D3sEN-0K.js} +5 -4
- package/build/server/chunks/{_server.ts-BbpEaFjU.js.map → _server.ts-D3sEN-0K.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BCtRrhpo.js → _server.ts-DCDfTBwU.js} +5 -4
- package/build/server/chunks/{_server.ts-BCtRrhpo.js.map → _server.ts-DCDfTBwU.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D4hS029K.js → _server.ts-DCSE5HH9.js} +7 -6
- package/build/server/chunks/{_server.ts-D4hS029K.js.map → _server.ts-DCSE5HH9.js.map} +1 -1
- package/build/server/chunks/{_server.ts-x3-1Iy5T.js → _server.ts-DFlWDerb.js} +5 -4
- package/build/server/chunks/{_server.ts-x3-1Iy5T.js.map → _server.ts-DFlWDerb.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B3OHtJvn.js → _server.ts-DKCYV7cA.js} +6 -5
- package/build/server/chunks/{_server.ts-B3OHtJvn.js.map → _server.ts-DKCYV7cA.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Cu3yIoGR.js → _server.ts-DKG4AeRF.js} +32 -5
- package/build/server/chunks/_server.ts-DKG4AeRF.js.map +1 -0
- package/build/server/chunks/{_server.ts-BNfKymFO.js → _server.ts-DNehZ4Dq.js} +5 -4
- package/build/server/chunks/{_server.ts-BNfKymFO.js.map → _server.ts-DNehZ4Dq.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CuEcjgfs.js → _server.ts-DRP9GnjO.js} +5 -4
- package/build/server/chunks/{_server.ts-CuEcjgfs.js.map → _server.ts-DRP9GnjO.js.map} +1 -1
- package/build/server/chunks/{_server.ts-chaYrNFx.js → _server.ts-DRtfz2MH.js} +6 -5
- package/build/server/chunks/{_server.ts-chaYrNFx.js.map → _server.ts-DRtfz2MH.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Ch5VrU5z.js → _server.ts-DVSzfbvS.js} +5 -4
- package/build/server/chunks/{_server.ts-Ch5VrU5z.js.map → _server.ts-DVSzfbvS.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BGhuGAqU.js → _server.ts-DYzS6l9L.js} +5 -4
- package/build/server/chunks/{_server.ts-BGhuGAqU.js.map → _server.ts-DYzS6l9L.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CyxjwCIW.js → _server.ts-D_CnUPkK.js} +5 -4
- package/build/server/chunks/{_server.ts-CyxjwCIW.js.map → _server.ts-D_CnUPkK.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DZ7Ko_32.js → _server.ts-D_YIlUj0.js} +5 -4
- package/build/server/chunks/{_server.ts-DZ7Ko_32.js.map → _server.ts-D_YIlUj0.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DolRZ_5Z.js → _server.ts-D__yhafj.js} +5 -4
- package/build/server/chunks/{_server.ts-DolRZ_5Z.js.map → _server.ts-D__yhafj.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C8NNR7lm.js → _server.ts-DaEP8BBJ.js} +5 -4
- package/build/server/chunks/{_server.ts-C8NNR7lm.js.map → _server.ts-DaEP8BBJ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DTVKXoI5.js → _server.ts-Db3C73DS.js} +5 -4
- package/build/server/chunks/{_server.ts-DTVKXoI5.js.map → _server.ts-Db3C73DS.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bw7wH5nP.js → _server.ts-DdmosErD.js} +5 -4
- package/build/server/chunks/{_server.ts-Bw7wH5nP.js.map → _server.ts-DdmosErD.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DcW9CTcB.js → _server.ts-DkPNdshV.js} +5 -4
- package/build/server/chunks/{_server.ts-DcW9CTcB.js.map → _server.ts-DkPNdshV.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CPKa2U2F.js → _server.ts-DlF8VdRG.js} +5 -4
- package/build/server/chunks/{_server.ts-CPKa2U2F.js.map → _server.ts-DlF8VdRG.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Du4lTXoC.js → _server.ts-Dnl_--6H.js} +6 -5
- package/build/server/chunks/{_server.ts-Du4lTXoC.js.map → _server.ts-Dnl_--6H.js.map} +1 -1
- package/build/server/chunks/{_server.ts-TkRG9AFn.js → _server.ts-DnveUL19.js} +5 -4
- package/build/server/chunks/{_server.ts-TkRG9AFn.js.map → _server.ts-DnveUL19.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CzHLF3XJ.js → _server.ts-DuMubVfl.js} +3 -2
- package/build/server/chunks/{_server.ts-CzHLF3XJ.js.map → _server.ts-DuMubVfl.js.map} +1 -1
- package/build/server/chunks/{_server.ts-v7meNBSR.js → _server.ts-DxHIA_Rr.js} +5 -4
- package/build/server/chunks/{_server.ts-v7meNBSR.js.map → _server.ts-DxHIA_Rr.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DEL6C5fs.js → _server.ts-GR8XZaCp.js} +5 -4
- package/build/server/chunks/{_server.ts-DEL6C5fs.js.map → _server.ts-GR8XZaCp.js.map} +1 -1
- package/build/server/chunks/{_server.ts-UwHoFWx1.js → _server.ts-Lvr38bTh.js} +3 -2
- package/build/server/chunks/{_server.ts-UwHoFWx1.js.map → _server.ts-Lvr38bTh.js.map} +1 -1
- package/build/server/chunks/{_server.ts-1QDB0bka.js → _server.ts-NxCB35yu.js} +5 -4
- package/build/server/chunks/{_server.ts-1QDB0bka.js.map → _server.ts-NxCB35yu.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BEir1hXE.js → _server.ts-Pe6f27yp.js} +5 -4
- package/build/server/chunks/{_server.ts-BEir1hXE.js.map → _server.ts-Pe6f27yp.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Oh6upxFv.js → _server.ts-Ro0pdSG-.js} +5 -4
- package/build/server/chunks/{_server.ts-Oh6upxFv.js.map → _server.ts-Ro0pdSG-.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bq99b7U6.js → _server.ts-U5GFn5_3.js} +5 -4
- package/build/server/chunks/{_server.ts-Bq99b7U6.js.map → _server.ts-U5GFn5_3.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C3Y82EbX.js → _server.ts-X5JJ8ArH.js} +5 -4
- package/build/server/chunks/{_server.ts-C3Y82EbX.js.map → _server.ts-X5JJ8ArH.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DlDgeWtr.js → _server.ts-YXu1Ll0m.js} +5 -4
- package/build/server/chunks/{_server.ts-DlDgeWtr.js.map → _server.ts-YXu1Ll0m.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BMpV32HH.js → _server.ts-Yr37THbf.js} +5 -4
- package/build/server/chunks/{_server.ts-BMpV32HH.js.map → _server.ts-Yr37THbf.js.map} +1 -1
- package/build/server/chunks/{_server.ts-9P7a99w7.js → _server.ts-atTSaGh1.js} +5 -4
- package/build/server/chunks/{_server.ts-9P7a99w7.js.map → _server.ts-atTSaGh1.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dvo786k1.js → _server.ts-jJDzcwxi.js} +6 -5
- package/build/server/chunks/{_server.ts-Dvo786k1.js.map → _server.ts-jJDzcwxi.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CQmJIAUn.js → _server.ts-kT0aEfNc.js} +5 -4
- package/build/server/chunks/{_server.ts-CQmJIAUn.js.map → _server.ts-kT0aEfNc.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DLMyOePt.js → _server.ts-oR5F0ndN.js} +5 -4
- package/build/server/chunks/{_server.ts-DLMyOePt.js.map → _server.ts-oR5F0ndN.js.map} +1 -1
- package/build/server/chunks/{_server.ts-vSoEzokn.js → _server.ts-ve3vu4qb.js} +5 -4
- package/build/server/chunks/{_server.ts-vSoEzokn.js.map → _server.ts-ve3vu4qb.js.map} +1 -1
- package/build/server/chunks/{addon-helpers-o7ish5mE.js → addon-helpers-BvyuEly-.js} +3 -3
- package/build/server/chunks/{addon-helpers-o7ish5mE.js.map → addon-helpers-BvyuEly-.js.map} +1 -1
- package/build/server/chunks/{akm-W9nWVWkP.js → akm-DoHUKzR0.js} +2 -2
- package/build/server/chunks/{akm-W9nWVWkP.js.map → akm-DoHUKzR0.js.map} +1 -1
- package/build/server/chunks/{client-BxrkCo8A.js → client-Cjb8uvpz.js} +2 -2
- package/build/server/chunks/{client-BxrkCo8A.js.map → client-Cjb8uvpz.js.map} +1 -1
- package/build/server/chunks/{config-DHWE6_Oh.js → config-Bonsx0Rw.js} +2 -2
- package/build/server/chunks/{config-DHWE6_Oh.js.map → config-Bonsx0Rw.js.map} +1 -1
- package/build/server/chunks/dist-DOFcG0Zp.js +6617 -0
- package/build/server/chunks/dist-DOFcG0Zp.js.map +1 -0
- package/build/server/chunks/{docker-DTmz3vyS.js → docker-DUcl5Nd3.js} +2 -2
- package/build/server/chunks/{docker-DTmz3vyS.js.map → docker-DUcl5Nd3.js.map} +1 -1
- package/build/server/chunks/{endpoints-DeqIjeS-.js → endpoints-Crjg6AFu.js} +2 -2
- package/build/server/chunks/{endpoints-DeqIjeS-.js.map → endpoints-Crjg6AFu.js.map} +1 -1
- package/build/server/chunks/{environment-eUM4Nrm3.js → environment-OK7MYhly.js} +2 -2
- package/build/server/chunks/{environment-eUM4Nrm3.js.map → environment-OK7MYhly.js.map} +1 -1
- package/build/server/chunks/{error.svelte-C1YZdXu0.js → error.svelte-CZS56Lew.js} +4 -4
- package/build/server/chunks/{error.svelte-C1YZdXu0.js.map → error.svelte-CZS56Lew.js.map} +1 -1
- package/build/server/chunks/{helpers-BxClonOR.js → helpers-BQ_IzT4l.js} +3 -3
- package/build/server/chunks/{helpers-BxClonOR.js.map → helpers-BQ_IzT4l.js.map} +1 -1
- package/build/server/chunks/{hooks.server-BbqU1Xkl.js → hooks.server-DauSX3Qa.js} +6 -5
- package/build/server/chunks/{hooks.server-BbqU1Xkl.js.map → hooks.server-DauSX3Qa.js.map} +1 -1
- package/build/server/chunks/{http-B4lcqCl2.js → http-CW8qaRto.js} +2 -2
- package/build/server/chunks/{http-B4lcqCl2.js.map → http-CW8qaRto.js.map} +1 -1
- package/build/server/chunks/{internal-BqydNqHi.js → internal-CU62uCyK.js} +3 -3
- package/build/server/chunks/{internal-BqydNqHi.js.map → internal-CU62uCyK.js.map} +1 -1
- package/build/server/chunks/{session-cookie-BhONF37G.js → session-cookie-C4Vsx_M2.js} +2 -2
- package/build/server/chunks/{session-cookie-BhONF37G.js.map → session-cookie-C4Vsx_M2.js.map} +1 -1
- package/build/server/chunks/{setup-deploy-XJpbNV-N.js → setup-deploy-DvvlcGX4.js} +2 -2
- package/build/server/chunks/{setup-deploy-XJpbNV-N.js.map → setup-deploy-DvvlcGX4.js.map} +1 -1
- package/build/server/chunks/{src-DGGmhx-_.js → src-D4RUgmPp.js} +90 -6663
- package/build/server/chunks/src-D4RUgmPp.js.map +1 -0
- package/build/server/chunks/{state-Dd9gBPIF.js → state-Di9Aippp.js} +2 -2
- package/build/server/chunks/{state-Dd9gBPIF.js.map → state-Di9Aippp.js.map} +1 -1
- package/build/server/chunks/{theme-state.svelte-_CMr5Hu9.js → theme-state.svelte-CUVpUHOv.js} +75 -34
- package/build/server/chunks/theme-state.svelte-CUVpUHOv.js.map +1 -0
- package/build/server/index.js +2 -2
- package/build/server/manifest.js +88 -88
- package/build/server/manifest.js.map +1 -1
- package/package.json +2 -2
- package/build/client/_app/immutable/assets/0.CFC7xzus.css +0 -1
- package/build/client/_app/immutable/assets/0.CFC7xzus.css.br +0 -0
- package/build/client/_app/immutable/assets/0.CFC7xzus.css.gz +0 -0
- package/build/client/_app/immutable/assets/4.Cg0DWfRJ.css +0 -1
- package/build/client/_app/immutable/assets/4.Cg0DWfRJ.css.br +0 -0
- package/build/client/_app/immutable/assets/4.Cg0DWfRJ.css.gz +0 -0
- package/build/client/_app/immutable/assets/7.CtszQVIX.css +0 -1
- package/build/client/_app/immutable/assets/7.CtszQVIX.css.br +0 -0
- package/build/client/_app/immutable/assets/7.CtszQVIX.css.gz +0 -0
- package/build/client/_app/immutable/assets/9.CK_nuPTW.css.br +0 -0
- package/build/client/_app/immutable/assets/9.CK_nuPTW.css.gz +0 -0
- package/build/client/_app/immutable/assets/ChatMessage.09JQ9G_F.css +0 -1
- package/build/client/_app/immutable/assets/ChatMessage.09JQ9G_F.css.br +0 -0
- package/build/client/_app/immutable/assets/ChatMessage.09JQ9G_F.css.gz +0 -0
- package/build/client/_app/immutable/chunks/B0yFRekZ.js +0 -3
- package/build/client/_app/immutable/chunks/B0yFRekZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/B0yFRekZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B6TDOH9N.js +0 -5
- package/build/client/_app/immutable/chunks/B6TDOH9N.js.br +0 -0
- package/build/client/_app/immutable/chunks/B6TDOH9N.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BAaXfhM-.js +0 -1
- package/build/client/_app/immutable/chunks/BAaXfhM-.js.br +0 -0
- package/build/client/_app/immutable/chunks/BAaXfhM-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BKYOLYrG.js +0 -15
- package/build/client/_app/immutable/chunks/BKYOLYrG.js.br +0 -0
- package/build/client/_app/immutable/chunks/BKYOLYrG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B_FOicoS.js +0 -1
- package/build/client/_app/immutable/chunks/B_FOicoS.js.br +0 -0
- package/build/client/_app/immutable/chunks/B_FOicoS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bc91qquS.js +0 -1
- package/build/client/_app/immutable/chunks/Bc91qquS.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bc91qquS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C0etjiv9.js +0 -3
- package/build/client/_app/immutable/chunks/C0etjiv9.js.br +0 -0
- package/build/client/_app/immutable/chunks/C0etjiv9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CDYZd3Dt.js +0 -1
- package/build/client/_app/immutable/chunks/CDYZd3Dt.js.br +0 -1
- package/build/client/_app/immutable/chunks/CDYZd3Dt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CghSfF6U.js.br +0 -0
- package/build/client/_app/immutable/chunks/CghSfF6U.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DTZmSm97.js +0 -1
- package/build/client/_app/immutable/chunks/DTZmSm97.js.br +0 -2
- package/build/client/_app/immutable/chunks/DTZmSm97.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.CIC2xFmj.js +0 -2
- package/build/client/_app/immutable/entry/app.CIC2xFmj.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CIC2xFmj.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.PCdanKMO.js +0 -1
- package/build/client/_app/immutable/entry/start.PCdanKMO.js.br +0 -0
- package/build/client/_app/immutable/entry/start.PCdanKMO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.CmaZoW6Y.js +0 -1
- package/build/client/_app/immutable/nodes/0.CmaZoW6Y.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.CmaZoW6Y.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.BhQMYP2N.js +0 -1
- package/build/client/_app/immutable/nodes/1.BhQMYP2N.js.br +0 -3
- package/build/client/_app/immutable/nodes/1.BhQMYP2N.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.C-MzgTuq.js +0 -1
- package/build/client/_app/immutable/nodes/2.C-MzgTuq.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.C-MzgTuq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.DXmMKZyn.js +0 -1
- package/build/client/_app/immutable/nodes/3.DXmMKZyn.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.DXmMKZyn.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.B9yFE6HR.js +0 -19
- package/build/client/_app/immutable/nodes/4.B9yFE6HR.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.B9yFE6HR.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.BeNqQzJI.js +0 -4
- package/build/client/_app/immutable/nodes/5.BeNqQzJI.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.BeNqQzJI.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.t6Qb5QFT.js +0 -1
- package/build/client/_app/immutable/nodes/6.t6Qb5QFT.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.t6Qb5QFT.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.D4yXtdUW.js +0 -1
- package/build/client/_app/immutable/nodes/7.D4yXtdUW.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.D4yXtdUW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.CaUTWkJ5.js +0 -1
- package/build/client/_app/immutable/nodes/8.CaUTWkJ5.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.CaUTWkJ5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.B1IAKpfH.js +0 -5
- package/build/client/_app/immutable/nodes/9.B1IAKpfH.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.B1IAKpfH.js.gz +0 -0
- package/build/server/chunks/0-C0Wm0uh4.js +0 -9
- package/build/server/chunks/1-BO1FboQo.js +0 -9
- package/build/server/chunks/4-Cy42KZEq.js +0 -9
- package/build/server/chunks/5-wTAacz_u.js +0 -9
- package/build/server/chunks/6-CwuJSZNK.js +0 -9
- package/build/server/chunks/7-BhucvAxb.js +0 -9
- package/build/server/chunks/9-BCmr-315.js +0 -9
- package/build/server/chunks/ChatMessage-DV_A9qbU.js.map +0 -1
- package/build/server/chunks/Navbar-Djg-dawo.js.map +0 -1
- package/build/server/chunks/VoiceProfileSelector-CbOV_v5A.js.map +0 -1
- package/build/server/chunks/_page.svelte-B0M8mXzs.js.map +0 -1
- package/build/server/chunks/_page.svelte-CF0NIwNQ.js.map +0 -1
- package/build/server/chunks/_page.svelte-DHges4Pl.js.map +0 -1
- package/build/server/chunks/_page.svelte-GBRvAIuJ.js.map +0 -1
- package/build/server/chunks/_server.ts-BvCT6Mjh.js.map +0 -1
- package/build/server/chunks/_server.ts-CWWHoyPz.js.map +0 -1
- package/build/server/chunks/_server.ts-Cu3yIoGR.js.map +0 -1
- package/build/server/chunks/_server.ts-D5KmG8Iz.js.map +0 -1
- package/build/server/chunks/src-DGGmhx-_.js.map +0 -1
- package/build/server/chunks/theme-state.svelte-_CMr5Hu9.js.map +0 -1
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import{$ as e,A as t,C as n,D as r,E as i,F as a,G as o,I as s,J as c,L as l,M as u,N as d,O as f,P as p,Q as m,R as h,T as g,U as _,W as v,X as y,Y as b,Z as x,_ as S,a as C,c as w,d as T,dt as E,et as D,f as O,g as k,h as A,j,k as M,l as N,m as P,n as F,o as I,ot as L,p as R,pt as z,q as B,r as ee,rt as V,s as H,st as U,tt as W,u as G,ut as K,x as te,y as q,z as J}from"../chunks/C2xA1Bq0.js";import{l as ne,n as Y}from"../chunks/BE96pGoc.js";import"../chunks/xihTtKlq.js";import{$ as re,A as ie,B as ae,C as X,D as oe,E as se,F as ce,H as le,I as ue,K as de,L as fe,N as pe,O as me,P as he,Q as ge,R as _e,S as ve,T as ye,U as be,V as xe,W as Se,Z as Ce,a as we,at as Te,b as Ee,ct as De,d as Z,et as Oe,f as ke,j as Ae,k as je,m as Me,nt as Ne,o as Pe,p as Fe,q as Ie,st as Le,tt as Re,u as ze,ut as Be,v as Ve,w as He,x as Ue,y as We,z as Ge}from"../chunks/BXh0hlRI.js";import"../chunks/p0W0xTr8.js";import{a as Ke,d as qe,f as Je,h as Ye,i as Xe,l as Ze,m as Qe,p as $e,t as et,u as tt,v as nt}from"../chunks/BplpI4py.js";import{t as Q}from"../chunks/DJjiuSdP.js";import{f as rt,n as it,t as at}from"../chunks/CVdeYz6v.js";import{n as ot,t as st}from"../chunks/2ZMOX13V.js";var ct=u(`<button role="tab"> </button>`),lt=u(`<button role="tab"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></svg> </button>`),ut=u(`<div class="subtab-row svelte-7673iv"><div class="tabs svelte-7673iv" role="tablist"></div></div>`),dt=u(`<nav class="nav-shell svelte-7673iv" aria-label="Admin sections"><div class="section-strip svelte-7673iv" role="tablist" aria-label="Sections"></div> <!></nav>`);function ft(e,n){U(n,!0);let r={overview:`<rect x="3" y="3" width="7" height="7" /><rect x="14" y="3" width="7" height="7" /><rect x="14" y="14" width="7" height="7" /><rect x="3" y="14" width="7" height="7" />`,containers:`<rect x="2" y="2" width="20" height="8" rx="2" ry="2" /><rect x="2" y="14" width="20" height="8" rx="2" ry="2" /><line x1="6" y1="6" x2="6.01" y2="6" /><line x1="6" y1="18" x2="6.01" y2="18" />`,logs:`<polyline points="4 17 10 11 4 5" /><line x1="12" y1="19" x2="20" y2="19" />`,connections:`<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" />`,akm:`<path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z" /><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z" />`,assistant:`<path d="M12 2a4 4 0 0 1 4 4v2h1a3 3 0 0 1 3 3v6a5 5 0 0 1-5 5H9a5 5 0 0 1-5-5v-6a3 3 0 0 1 3-3h1V6a4 4 0 0 1 4-4z" /><path d="M9 8h6" /><circle cx="9" cy="14" r="1" /><circle cx="15" cy="14" r="1" /><path d="M9 18c1 .8 2 .8 3 .8s2 0 3-.8" />`,"host-sharing":`<circle cx="18" cy="5" r="3" /><circle cx="6" cy="12" r="3" /><circle cx="18" cy="19" r="3" /><line x1="8.59" y1="13.51" x2="15.42" y2="17.49" /><line x1="15.41" y1="6.51" x2="8.59" y2="10.49" />`,activity:`<path d="M3 12h4l2-5 4 10 2-5h6" />`,voice:`<path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z" /><path d="M19 10v2a7 7 0 0 1-14 0v-2" /><line x1="12" y1="19" x2="12" y2="23" /><line x1="8" y1="23" x2="16" y2="23" />`,addons:`<path d="M12 2L2 7l10 5 10-5-10-5z" /><path d="M2 17l10 5 10-5" /><path d="M2 12l10 5 10-5" />`,automations:`<circle cx="12" cy="12" r="10" /><polyline points="12 6 12 12 16 14" />`,secrets:`<rect x="3" y="11" width="18" height="11" rx="2" ry="2" /><path d="M7 11V7a5 5 0 0 1 10 0v4" />`,updates:`<polyline points="8 17 12 21 16 17" /><line x1="12" y1="12" x2="12" y2="21" /><path d="M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29" />`},a=[{id:`health`,label:`Health`,tabs:[{id:`overview`,label:`Overview`,icon:r.overview},{id:`activity`,label:`Activity`,icon:r.activity},{id:`containers`,label:`Systems`,icon:r.containers},{id:`logs`,label:`Journal`,icon:r.logs},{id:`updates`,label:`Check-up`,icon:r.updates}]},{id:`mind`,label:`Mind`,tabs:[{id:`connections`,label:`AI Providers`,icon:r.connections}]},{id:`voice`,label:`Voice`,tabs:[{id:`voice`,label:`Voice`,icon:r.voice}]},{id:`routines`,label:`Routines`,tabs:[{id:`automations`,label:`Automations`,icon:r.automations}]},{id:`capabilities`,label:`Capabilities`,tabs:[{id:`addons`,label:`Add-ons`,icon:r.addons}]},{id:`knowledge`,label:`Knowledge`,tabs:[{id:`akm`,label:`Memory`,icon:r.akm},{id:`assistant`,label:`Assistant`,icon:r.assistant},{id:`secrets`,label:`Secrets`,icon:r.secrets},{id:`host-sharing`,label:`Sharing`,icon:r[`host-sharing`]}]}],o=V(()=>a.find(e=>e.tabs.some(e=>e.id===n.active))??a[0]);function c(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 l(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 u(e){n.onSelect(e.tabs[0].id)}var d=dt(),p=y(d);i(p,21,()=>a,e=>e.id,(e,n)=>{var r=ct();let i;var a=y(r,!0);E(r),v(()=>{i=q(r,1,`section-tab svelte-7673iv`,null,i,{"section-tab-active":J(o).id===J(n).id}),O(r,`aria-selected`,J(o).id===J(n).id),M(a,J(n).label)}),s(`click`,r,()=>u(J(n))),s(`keydown`,r,c),t(e,r)}),E(p);var h=m(p,2),_=e=>{var r=ut(),a=y(r);i(a,21,()=>J(o).tabs,e=>e.id,(e,r)=>{var i=lt();let a;var o=y(i);g(o,()=>J(r).icon,!0),E(o);var c=m(o);E(i),v(()=>{a=q(i,1,`tab svelte-7673iv`,null,a,{"tab-active":n.active===J(r).id}),O(i,`aria-selected`,n.active===J(r).id),M(c,` ${J(r).label??``}`)}),s(`click`,i,()=>n.onSelect(J(r).id)),s(`keydown`,i,l),t(e,i)}),E(a),E(r),v(()=>O(a,`aria-label`,`${J(o).label??``} tabs`)),t(e,r)};f(h,e=>{J(o).tabs.length>1&&e(_)}),E(d),t(e,d),L()}a([`click`,`keydown`]);var pt=d(`<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>`),mt=d(`<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>`),ht=d(`<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>`),gt=u(`<button class="btn btn-secondary">View containers</button>`),_t=u(`<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"> </button></div></section>`);function vt(e,n){U(n,!0);var r=_t(),i=y(r),a=y(i),o=e=>{t(e,pt())},c=e=>{t(e,mt())},l=e=>{t(e,ht())};f(a,e=>{n.status===`warning`?e(o):n.status===`ok`?e(c,1):e(l,-1)}),E(i);var u=m(i,2),d=y(u),p=y(d,!0);E(d);var h=m(d,2),g=y(h,!0);E(h),E(u);var _=m(u,2),b=y(_),x=y(b,!0);E(b);var S=m(b,2),C=e=>{var r=gt();s(`click`,r,()=>n.onNavigate(`containers`)),t(e,r)};f(S,e=>{n.status===`warning`&&e(C)});var w=m(S,2),T=y(w,!0);E(w),E(_),E(r),v(()=>{q(r,1,`hero hero--${n.status??``}`,`svelte-10n23hu`),M(p,n.title),M(g,n.detail),b.disabled=n.healthLoading,M(x,n.healthLoading?`Checking…`:`Re-check`),w.disabled=n.anyDangerousLoading||!n.tokenStored,M(T,n.applyLoading?`Applying…`:`Apply config & restart`)}),s(`click`,b,function(...e){n.onCheckHealth?.apply(this,e)}),s(`click`,w,function(...e){n.onApplyChanges?.apply(this,e)}),t(e,r),L()}a([`click`]);var yt=u(`<section><div class="output-header svelte-10sij3c"><h3 class="svelte-10sij3c">Operation output</h3> <button class="btn-ghost" aria-label="Dismiss"><svg aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div> <pre class="output-code svelte-10sij3c"> </pre></section>`);function bt(e,n){var r=j(),i=x(r),a=e=>{var r=yt(),i=y(r),a=m(y(i),2);E(i);var o=m(i,2),c=y(o,!0);E(o),E(r),v(()=>{q(r,1,`output-section output-section--${n.operationResultType??``}`,`svelte-10sij3c`),M(c,n.operationResult)}),s(`click`,a,function(...e){n.onDismissResult?.apply(this,e)}),t(e,r)};f(i,e=>{n.operationResult&&e(a)}),t(e,r)}a([`click`]);var xt=u(`<span class="tile-metric tile-metric--icon svelte-19hpfg" aria-hidden="true"><!></span>`),St=u(`<span class="tile-metric-sub svelte-19hpfg"> </span>`),Ct=u(` <!>`,1),wt=u(`<span class="tile-metric svelte-19hpfg"><!></span>`),Tt=u(`<button class="tile svelte-19hpfg"><!> <span class="tile-label svelte-19hpfg"> </span></button>`);function Et(e,r){let i=C(r,`value`,3,null),a=C(r,`sub`,3,null),o=C(r,`loaded`,3,!0);var c=Tt(),l=y(c),u=e=>{var i=xt();n(y(i),()=>r.icon),E(i),t(e,i)},d=e=>{var n=wt(),r=y(n),s=e=>{var n=Ct(),r=x(n,!0),o=m(r),s=e=>{var n=St(),r=y(n,!0);E(n),v(()=>M(r,a())),t(e,n)};f(o,e=>{a()&&e(s)}),v(()=>M(r,i())),t(e,n)},c=e=>{t(e,p(`—`))};f(r,e=>{o()?e(s):e(c,-1)}),E(n),t(e,n)};f(l,e=>{r.icon?e(u):e(d,-1)});var h=m(l,2),g=y(h,!0);E(h),E(c),v(()=>M(g,r.label)),s(`click`,c,function(...e){r.onClick?.apply(this,e)}),t(e,c)}a([`click`]);var Dt=u(`<div class="akm-metric svelte-dcgqe1"><span class="akm-num svelte-dcgqe1"> </span> <span class="akm-cap svelte-dcgqe1">Task failure rate</span></div>`),Ot=u(`<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>`),kt=u(`<p class="akm-unavailable svelte-dcgqe1">Metrics unavailable — the akm CLI isn't reachable from the admin host.</p>`),At=u(`<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 jt(e,n){U(n,!0);var r=At(),i=y(r),a=m(y(i),2),o=y(a,!0);E(a),E(i);var c=m(i,2),l=e=>{var r=Ot(),i=y(r),a=y(i),o=y(a,!0);E(a),K(2),E(i);var s=m(i,2),c=y(s),l=y(c,!0),u=m(l),d=y(u);E(u),E(c),K(2),E(s);var p=m(s,2),h=y(p),g=y(h,!0);E(h),K(2),E(p);var _=m(p,2),b=e=>{var r=Dt(),i=y(r),a=y(i);E(i),K(2),E(r),v(e=>M(a,`${e??``}%`),[()=>Math.round(n.akm.metrics.taskFailRate*100)]),t(e,r)};f(_,e=>{n.akm.metrics&&typeof n.akm.metrics.taskFailRate==`number`&&e(b)}),E(r),v(e=>{M(o,e),M(l,n.akm.checks.pass),M(d,`/${n.checkTotal??``}`),M(g,n.akm.index?.hasEmbeddings?`On`:`Off`)},[()=>n.akm.index?.entryCount?.toLocaleString()??`—`]),t(e,r)},u=e=>{t(e,kt())};f(c,e=>{n.akm&&n.akm.available?e(l):e(u,-1)}),E(r),v(()=>{q(a,1,`badge ${n.badge.cls??``}`,`svelte-dcgqe1`),M(o,n.badge.label)}),s(`click`,r,()=>n.onNavigate(`akm`)),t(e,r),L()}a([`click`]);var Mt=u(`<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">Channels & 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 & channel 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 Nt(e,n){U(n,!0);var r=Mt(),i=y(r),a=m(i,2),o=m(a,2),c=m(o,2),l=m(c,2);K(2),E(r),s(`click`,i,()=>n.onNavigate(`connections`)),s(`click`,a,()=>n.onNavigate(`akm`)),s(`click`,o,()=>n.onNavigate(`voice`)),s(`click`,c,()=>n.onNavigate(`addons`)),s(`click`,l,()=>n.onNavigate(`secrets`)),t(e,r),L()}a([`click`]);var Pt=d(`<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 17 10 11 4 5"></polyline><line x1="12" y1="19" x2="20" y2="19"></line></svg>`),Ft=d(`<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="8 17 12 21 16 17"></polyline><line x1="12" y1="12" x2="12" y2="21"></line><path d="M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29"></path></svg>`),It=u(`<!> <!> <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 Lt(e,n){U(n,!0);let r=W(null);ee(()=>{Xe.load(),oe().then(e=>{D(r,e,!0)}).catch(()=>{D(r,{available:!1},!0)})});let i=V(()=>{if(!J(r)||!J(r).available)return{label:`Unavailable`,cls:`badge-neutral`};let e=J(r).status;return e!==`ok`&&e!==`warn`&&e!==`fail`&&(e=J(r).checks.fail>0?`fail`:J(r).checks.warn>0?`warn`:`ok`),e===`ok`?{label:`Healthy`,cls:`badge-success`}:e===`warn`?{label:`Warnings`,cls:`badge-warning`}:{label:`Issues`,cls:`badge-danger`}}),a=V(()=>J(r)&&J(r).available?J(r).checks.pass+J(r).checks.warn+J(r).checks.fail:0);V(()=>n.automationsData?.automations.length??0),V(()=>n.automationsData?.automations.filter(e=>e.enabled).length??0);let o=V(()=>n.managedServices.length>0?n.managedServices:[...n.mergedServices.keys()]),s=V(()=>{if(J(o).length===0)return null;let e=J(o).filter(e=>n.mergedServices.get(e)===`running`).length;return{total:J(o).length,running:e}}),c=V(()=>J(o).filter(e=>n.mergedServices.get(e)!==`running`)),l=V(()=>{if(!J(s))return{status:`unknown`,title:`Checking services…`,detail:`Fetching the latest status from Docker.`};if(J(s).running===J(s).total&&J(s).total>0)return{status:`ok`,title:`All systems operational`,detail:`${J(s).total} of ${J(s).total} services are running normally.`};let e=J(s).total-J(s).running,t=J(c).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(`, `);return{status:`warning`,title:`${e} of ${J(s).total} services not running`,detail:t?`Not running: ${t}.`:`One or more services need attention.`}});var u=It(),d=x(u),p=e=>{vt(e,{get status(){return J(l).status},get title(){return J(l).title},get detail(){return J(l).detail},get healthLoading(){return n.healthLoading},get applyLoading(){return n.applyLoading},get anyDangerousLoading(){return n.anyDangerousLoading},get tokenStored(){return n.tokenStored},get onCheckHealth(){return n.onCheckHealth},get onApplyChanges(){return n.onApplyChanges},get onNavigate(){return n.onNavigate}})};f(d,e=>{J(l).status!==`ok`&&e(p)});var h=m(d,2);bt(h,{get operationResult(){return n.operationResult},get operationResultType(){return n.operationResultType},get onDismissResult(){return n.onDismissResult}});var g=m(h,2),_=y(g);{let e=V(()=>J(s)?.running),t=V(()=>J(s)?`/${J(s).total}`:null),r=V(()=>!!J(s));Et(_,{label:`Services running`,onClick:()=>n.onNavigate(`containers`),get value(){return J(e)},get sub(){return J(t)},get loaded(){return J(r)}})}var v=m(_,2);Et(v,{label:`View logs`,onClick:()=>n.onNavigate(`logs`),icon:e=>{t(e,Pt())},$$slots:{icon:!0}}),Et(m(v,2),{label:`Check for updates`,onClick:()=>n.onNavigate(`updates`),icon:e=>{t(e,Ft())},$$slots:{icon:!0}}),E(g);var b=m(g,4);jt(b,{get akm(){return J(r)},get badge(){return J(i)},get checkTotal(){return J(a)},get onNavigate(){return n.onNavigate}}),Nt(m(b,4),{get onNavigate(){return n.onNavigate}}),t(e,u),L()}function Rt(e){return e?/^v?\d+\.\d+\.\d+(?:[-+].*)?$/.test(e.trim()):!1}function zt(e){return e.replace(/^v/,``).split(`+`)[0].includes(`-`)}function Bt(e,t){let n=e=>{let t=e.trim().replace(/^v/,``).split(`+`)[0],n=t.indexOf(`-`),r=n===-1?t:t.slice(0,n),i=n===-1?null:t.slice(n+1),a=r.split(`.`).map(Number);return[a[0]??0,a[1]??0,a[2]??0,i]},r=(e,t)=>{let n=e.split(`.`),r=t.split(`.`);for(let e=0;e<Math.max(n.length,r.length);e++){if(e>=n.length)return-1;if(e>=r.length)return 1;let t=Number(n[e]),i=Number(r[e]),a=!isNaN(t),o=!isNaN(i);if(a&&o){if(t!==i)return t>i?1:-1}else if(a!==o)return a?-1:1;else if(n[e]!==r[e])return n[e]>r[e]?1:-1}return 0},[i,a,o,s]=n(e),[c,l,u,d]=n(t);return i===c?a===l?o===u?s===null&&d!==null?1:s!==null&&d===null?-1:s!==null&&d!==null?r(s,d):0:o>u?1:-1:a>l?1:-1:i>c?1:-1}function Vt(e,t){return!Rt(e)||!Rt(t)?`unknown`:Bt(t,e)>0?`update`:`current`}function Ht(e,t){let n=Rt(e)?zt(e):!0,r=t.filter(e=>Rt(e.version)&&(n||!e.prerelease));return r.length===0?null:r.reduce((e,t)=>Bt(t.version,e.version)>0?t:e).version}var Ut=u(`<!> Checking…`,1),Wt=d(`<svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7mkeya"><path d="M23 4v6h-6" class="svelte-7mkeya"></path><path d="M1 20v-6h6" class="svelte-7mkeya"></path><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15" class="svelte-7mkeya"></path></svg> Check for updates`,1),Gt=u(`<!> Updating…`,1),Kt=u(`<span class="status-emoji svelte-7mkeya" role="img"> </span>`),qt=u(`<!> Updating…`,1),Jt=u(`<button class="btn btn-sm btn-secondary version-action svelte-7mkeya"><!></button>`),Yt=u(`<span class="status-emoji svelte-7mkeya" role="img"> </span>`),Xt=u(`<a class="btn btn-sm btn-secondary version-action svelte-7mkeya" target="_blank" rel="noopener noreferrer"> </a>`),Zt=u(`<span class="status-emoji svelte-7mkeya" role="img"> </span>`),Qt=u(`<button class="btn btn-sm btn-primary svelte-7mkeya">Restart app</button>`),$t=u(`<span class="version-action-note svelte-7mkeya">Downloaded. <!></span>`),en=u(`<!> Downloading…`,1),tn=u(`<button class="btn btn-sm btn-secondary version-action svelte-7mkeya"><!></button>`),nn=u(`<div class="version-select-skeleton svelte-7mkeya"></div>`),rn=u(`<option class="svelte-7mkeya"> </option>`),an=u(`<select id="stack-version-select" class="version-select svelte-7mkeya" aria-label="OpenPalm version to install"><option class="svelte-7mkeya">latest</option><!></select>`),on=u(`<input id="stack-version-select" class="version-input svelte-7mkeya" type="text" aria-label="OpenPalm version to install" placeholder="e.g. 0.11.0 or latest"/>`),sn=u(`<!> Installing…`,1),cn=u(`<div class="version-select-skeleton svelte-7mkeya"></div>`),ln=u(`<option class="svelte-7mkeya"> </option>`),un=u(`<select id="ui-version-select" class="version-select svelte-7mkeya" aria-label="Admin interface version to download"></select>`),dn=u(`<input id="ui-version-select" class="version-input svelte-7mkeya" type="text" aria-label="Admin interface version to download" placeholder="e.g. 0.11.0-beta.7"/>`),fn=u(`<!> Downloading…`,1),pn=u(`<div class="version-restart-prompt svelte-7mkeya">Admin interface updated. <button class="btn btn-sm btn-primary svelte-7mkeya">Restart app</button></div>`),mn=u(`<p class="version-hint svelte-7mkeya">Downloads and replaces the admin interface. Takes effect after restart.</p>`),hn=u(`<label class="desktop-toggle svelte-7mkeya"><input type="checkbox" class="svelte-7mkeya"/> <span class="svelte-7mkeya">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" class="svelte-7mkeya"/> <span class="svelte-7mkeya">Include reply preview in the notification body.</span></label> <p class="version-hint svelte-7mkeya">Reply previews stay off by default because desktop notifications can persist outside the app.</p>`,1),gn=u(`<label class="desktop-toggle svelte-7mkeya"><input type="checkbox" disabled="" class="svelte-7mkeya"/> <span class="svelte-7mkeya">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="" class="svelte-7mkeya"/> <span class="svelte-7mkeya">Include reply preview in the notification body.</span></label> <p class="version-hint svelte-7mkeya">Desktop notifications are available in the OpenPalm desktop app.</p>`,1),_n=u(`<div class="version-divider svelte-7mkeya"></div> <div class="version-section svelte-7mkeya"><label class="version-label svelte-7mkeya" for="ui-version-select">Admin interface version</label> <div class="version-input-row svelte-7mkeya"><!> <button class="btn btn-sm btn-secondary svelte-7mkeya"><!></button></div> <!></div> <div class="version-divider svelte-7mkeya"></div> <div class="version-section svelte-7mkeya"><div class="version-label svelte-7mkeya">Launch on login</div> <label class="desktop-toggle svelte-7mkeya"><input type="checkbox" class="svelte-7mkeya"/> <span class="svelte-7mkeya">Start OpenPalm automatically when you sign in on this device.</span></label> <p class="version-hint svelte-7mkeya"><!></p></div> <div class="version-divider svelte-7mkeya"></div> <div class="version-section svelte-7mkeya"><div class="version-label svelte-7mkeya">Desktop notifications</div> <!></div>`,1),vn=u(`<div class="panel svelte-7mkeya" role="tabpanel"><div class="panel-header svelte-7mkeya"><div class="svelte-7mkeya"><h2 class="svelte-7mkeya">Check-up</h2> <p class="panel-subtitle svelte-7mkeya">Keep OpenPalm up to date. An update backs up your settings first, then briefly restarts your assistant.</p></div> <button class="btn btn-sm btn-secondary refresh-releases svelte-7mkeya" title="Check GitHub for newer versions"><!></button></div> <p class="status-live svelte-7mkeya" role="status" aria-live="polite"> </p> <div class="panel-body svelte-7mkeya"><section class="update-card svelte-7mkeya" aria-labelledby="update-primary-title"><div class="update-card-text svelte-7mkeya"><h3 id="update-primary-title" class="update-title svelte-7mkeya">Update to the latest version</h3> <p class="update-desc svelte-7mkeya">Downloads and installs the newest OpenPalm release. Your settings are backed up first,
|
|
2
|
+
then your assistant restarts — it will be offline for about a minute. Your data is kept.</p></div> <button class="btn btn-primary update-go svelte-7mkeya"><!></button></section> <dl class="versions svelte-7mkeya"><div class="versions-row svelte-7mkeya"><dt class="svelte-7mkeya">OpenPalm Assistant</dt> <dd class="svelte-7mkeya"><span class="version-cell svelte-7mkeya"><code> </code> <!></span> <!></dd></div> <div class="versions-row svelte-7mkeya"><dt class="svelte-7mkeya">OpenPalm App</dt> <dd class="svelte-7mkeya"><span class="version-cell svelte-7mkeya"><code> </code> <!></span> <!></dd></div> <div class="versions-row svelte-7mkeya"><dt class="svelte-7mkeya">OpenPalm UI</dt> <dd class="svelte-7mkeya"><span class="version-cell svelte-7mkeya"><code> </code> <!></span> <!></dd></div></dl> <details class="advanced svelte-7mkeya"><summary class="svelte-7mkeya">Advanced options</summary> <div class="advanced-body svelte-7mkeya"><div class="version-section svelte-7mkeya"><label class="version-label svelte-7mkeya" for="stack-version-select">Install a specific version</label> <div class="version-input-row svelte-7mkeya"><!> <button class="btn btn-sm btn-secondary svelte-7mkeya"><!></button></div> <p class="version-hint svelte-7mkeya">For rollback or troubleshooting. Installs the chosen version and restarts services (about a minute offline).</p></div> <!></div></details></div></div>`);function yn(e,n){U(n,!0);function r(e){let t=[];return e.distTag?t.push(e.distTag):e.prerelease&&t.push(`pre-release`),t.length?`${e.version} (${t.join(`, `)})`:e.version}let a=`https://github.com/itlackey/openpalm/releases`,o=V(()=>n.releases.map(e=>({version:e.tag,prerelease:e.prerelease}))),c=V(()=>n.uiVersions.map(e=>({version:e.version,prerelease:e.prerelease}))),l=V(()=>Ht(n.currentImageTag,J(o))),u=V(()=>Vt(n.currentImageTag,J(l))),d=V(()=>n.electronLatestVersion??Ht(n.electronVersion,J(o))),h=V(()=>n.inElectron?Vt(n.electronVersion,J(d)):`unknown`),g=V(()=>n.electronLatestUrl??(J(d)?`${a}/tag/v${J(d)}`:a)),_=V(()=>Ht(n.uiVersion,J(c))),b=V(()=>Vt(n.uiVersion,J(_))),C=W(!1),w=W(!1),A=W(!1),N=W(!1),F=W(!1);ee(()=>{D(C,Ze(),!0),D(w,tt(),!0),I()});async function I(){let e=await window.openpalm?.launchOnLoginStatus?.();e&&(D(A,e.supported,!0),D(N,e.enabled,!0))}async function z(e){let t=e.currentTarget.checked;if(!window.openpalm?.setLaunchOnLogin){D(N,!1);return}D(F,!0);try{let e=await window.openpalm.setLaunchOnLogin(t);D(A,e.supported,!0),D(N,e.enabled,!0)}finally{D(F,!1)}}function B(e){return e===`current`?`✅`:e===`update`?`⬆️`:``}function H(e){return e===`current`?`Up to date`:e===`update`?`Update available`:`Update status unknown`}let G=V(()=>n.upgradeLoading?`Updating OpenPalm to the latest version…`:n.tagChangeLoading?`Installing the selected version and restarting…`:n.uiDownloadLoading?`Downloading the admin interface…`:n.releasesLoading||n.uiVersionsLoading?`Checking for updates…`:``);var te=vn(),ne=y(te),Y=m(y(ne),2),re=y(Y),ie=e=>{var n=Ut();Q(x(n),{}),K(),t(e,n)},ae=e=>{var n=Wt();K(),t(e,n)};f(re,e=>{n.releasesLoading||n.uiVersionsLoading?e(ie):e(ae,-1)}),E(Y),E(ne);var X=m(ne,2),oe=y(X,!0);E(X);var se=m(X,2),ce=y(se),le=m(y(ce),2),ue=y(le),de=e=>{var n=Gt();Q(x(n),{}),K(),t(e,n)},fe=e=>{t(e,p(`Update now`))};f(ue,e=>{n.upgradeLoading?e(de):e(fe,-1)}),E(le),E(ce);var pe=m(ce,2),me=y(pe),he=m(y(me),2),ge=y(he),_e=y(ge),ve=y(_e,!0);E(_e);var ye=m(_e,2),be=e=>{var n=Kt(),r=y(n,!0);E(n),v((e,t,i)=>{O(n,`aria-label`,e),O(n,`title`,t),M(r,i)},[()=>H(J(u)),()=>H(J(u)),()=>B(J(u))]),t(e,n)},xe=V(()=>B(J(u)));f(ye,e=>{J(xe)&&e(be)}),E(ge);var Se=m(ge,2),Ce=e=>{var r=Jt(),i=y(r),a=e=>{var n=qt();Q(x(n),{}),K(),t(e,n)},o=e=>{var n=p();v(()=>M(n,`Update to ${J(l)??``}`)),t(e,n)};f(i,e=>{n.upgradeLoading?e(a):e(o,-1)}),E(r),v(()=>{r.disabled=n.anyDangerousLoading||!n.tokenStored,O(r,`aria-busy`,n.upgradeLoading)}),s(`click`,r,function(...e){n.onUpgradeStack?.apply(this,e)}),t(e,r)};f(Se,e=>{J(u)===`update`&&e(Ce)}),E(he),E(me);var we=m(me,2),Te=m(y(we),2),Ee=y(Te),De=y(Ee),Z=y(De,!0);E(De);var Oe=m(De,2),ke=e=>{var n=Yt(),r=y(n,!0);E(n),v((e,t,i)=>{O(n,`aria-label`,e),O(n,`title`,t),M(r,i)},[()=>H(J(h)),()=>H(J(h)),()=>B(J(h))]),t(e,n)},Ae=V(()=>B(J(h)));f(Oe,e=>{J(Ae)&&e(ke)}),E(Ee);var je=m(Ee,2),Me=e=>{var n=Xt(),r=y(n);E(n),v(()=>{O(n,`href`,J(g)),M(r,`Download ${J(d)??``}`)}),t(e,n)};f(je,e=>{J(h)===`update`&&e(Me)}),E(Te),E(we);var Ne=m(we,2),Pe=m(y(Ne),2),Fe=y(Pe),Ie=y(Fe),Le=y(Ie,!0);E(Ie);var Re=m(Ie,2),ze=e=>{var n=Zt(),r=y(n,!0);E(n),v((e,t,i)=>{O(n,`aria-label`,e),O(n,`title`,t),M(r,i)},[()=>H(J(b)),()=>H(J(b)),()=>B(J(b))]),t(e,n)},Be=V(()=>B(J(b)));f(Re,e=>{J(Be)&&e(ze)}),E(Fe);var Ve=m(Fe,2),He=e=>{var r=j(),i=x(r),a=e=>{var r=$t(),i=m(y(r)),a=e=>{var r=Qt();s(`click`,r,function(...e){n.onRestartApp?.apply(this,e)}),t(e,r)},o=e=>{t(e,p(`Restart OpenPalm to apply.`))};f(i,e=>{n.inElectron?e(a):e(o,-1)}),E(r),t(e,r)},o=e=>{var r=tn(),i=y(r),a=e=>{var n=en();Q(x(n),{}),K(),t(e,n)},o=e=>{var n=p();v(()=>M(n,`Download ${J(_)??``}`)),t(e,n)};f(i,e=>{n.uiDownloadLoading?e(a):e(o,-1)}),E(r),v(()=>{r.disabled=n.uiDownloadLoading||!J(_),O(r,`aria-busy`,n.uiDownloadLoading)}),s(`click`,r,()=>{J(_)&&n.onDownloadUiVersion(J(_))}),t(e,r)};f(i,e=>{n.uiDownloadReady?e(a):e(o,-1)}),t(e,r)};f(Ve,e=>{J(b)===`update`&&e(He)}),E(Pe),E(Ne),E(pe);var Ue=m(pe,2),We=m(y(Ue),2),Ge=y(We),Ke=m(y(Ge),2),Ye=y(Ke),Xe=e=>{t(e,nn())},Qe=e=>{var r=an(),a=y(r);a.value=a.__value=`latest`,i(m(a),17,()=>n.releases,e=>e.tag,(e,n)=>{var r=rn(),i=y(r);E(r);var a={};v(()=>{M(i,`${J(n).tag??``}${J(n).prerelease?` (pre-release)`:``}`),a!==(a=J(n).tag)&&(r.value=(r.__value=J(n).tag)??``)}),t(e,r)}),E(r);var o;k(r),v(()=>{r.disabled=n.tagChangeLoading||n.anyDangerousLoading,o!==(o=n.selectedImageTag)&&(r.value=(r.__value=n.selectedImageTag)??``,S(r,n.selectedImageTag))}),s(`change`,r,e=>n.onSelectedImageTagChange(e.currentTarget.value)),t(e,r)},$e=e=>{var r=on();T(r),v(()=>{P(r,n.selectedImageTag),r.disabled=n.tagChangeLoading||n.anyDangerousLoading}),s(`input`,r,e=>n.onSelectedImageTagChange(e.currentTarget.value)),t(e,r)};f(Ye,e=>{n.releasesLoading?e(Xe):n.releases.length>0?e(Qe,1):e($e,-1)});var et=m(Ye,2),nt=y(et),rt=e=>{var n=sn();Q(x(n),{}),K(),t(e,n)},it=e=>{t(e,p(`Install & restart`))};f(nt,e=>{n.tagChangeLoading?e(rt):e(it,-1)}),E(et),E(Ke),K(2),E(Ge);var at=m(Ge,2),ot=e=>{var a=_n(),o=m(x(a),2),c=m(y(o),2),l=y(c),u=e=>{t(e,cn())},d=e=>{var a=un();i(a,21,()=>n.uiVersions,e=>e.version,(e,n)=>{var i=ln(),a=y(i,!0);E(i);var o={};v(e=>{M(a,e),o!==(o=J(n).version)&&(i.value=(i.__value=J(n).version)??``)},[()=>r(J(n))]),t(e,i)}),E(a);var o;k(a),v(()=>{a.disabled=n.uiDownloadLoading,o!==(o=n.selectedUiTag)&&(a.value=(a.__value=n.selectedUiTag)??``,S(a,n.selectedUiTag))}),s(`change`,a,e=>n.onSelectedUiTagChange(e.currentTarget.value)),t(e,a)},h=e=>{var r=dn();T(r),v(()=>{P(r,n.selectedUiTag),r.disabled=n.uiDownloadLoading}),s(`input`,r,e=>n.onSelectedUiTagChange(e.currentTarget.value)),t(e,r)};f(l,e=>{n.uiVersionsLoading?e(u):n.uiVersions.length>0?e(d,1):e(h,-1)});var g=m(l,2),_=y(g),b=e=>{var n=fn();Q(x(n),{}),K(),t(e,n)},j=e=>{t(e,p(`Download`))};f(_,e=>{n.uiDownloadLoading?e(b):e(j,-1)}),E(g),E(c);var I=m(c,2),L=e=>{var r=pn(),i=m(y(r));E(r),s(`click`,i,function(...e){n.onRestartApp?.apply(this,e)}),t(e,r)},B=e=>{t(e,mn())};f(I,e=>{n.uiDownloadReady?e(L):e(B,-1)}),E(o);var ee=m(o,4),V=m(y(ee),2),H=y(V);T(H),K(2),E(V);var U=m(V,2),W=y(U),G=e=>{t(e,p(`Uses the native desktop login-item integration for this platform.`))},te=e=>{t(e,p(`Not wired on this platform yet. The current desktop build only exposes this safely on macOS and Windows.`))};f(W,e=>{J(A)?e(G):e(te,-1)}),E(U),E(ee);var q=m(ee,4),ne=m(y(q),2),Y=e=>{var n=hn(),r=x(n),i=y(r);T(i),K(2),E(r);var a=m(r,2),o=y(a);T(o),K(2),E(a),K(2),v(()=>{R(i,J(C)),R(o,J(w)),o.disabled=!J(C)}),s(`change`,i,e=>{D(C,e.currentTarget.checked,!0),qe(J(C)),J(C)||(D(w,!1),Je(!1))}),s(`change`,o,e=>{D(w,e.currentTarget.checked,!0),Je(J(w))}),t(e,n)},re=e=>{var n=gn();K(4),t(e,n)};f(ne,e=>{typeof window<`u`&&typeof window.openpalm?.notify==`function`?e(Y):e(re,-1)}),E(q),v(e=>{g.disabled=e,O(g,`aria-busy`,n.uiDownloadLoading),R(H,J(N)),H.disabled=!J(A)||J(F)},[()=>!n.selectedUiTag.trim()||n.uiDownloadLoading]),s(`click`,g,()=>{n.selectedUiTag.trim()&&n.onDownloadUiVersion(n.selectedUiTag.trim())}),s(`change`,H,z),t(e,a)};f(at,e=>{n.inElectron&&e(ot)}),E(We),E(Ue),E(se),E(te),v(e=>{Y.disabled=n.releasesLoading||n.uiVersionsLoading,O(Y,`aria-busy`,n.releasesLoading||n.uiVersionsLoading),M(oe,J(G)),le.disabled=n.anyDangerousLoading||!n.tokenStored,O(le,`aria-busy`,n.upgradeLoading),q(_e,1,`version-value status-${J(u)??``}`,`svelte-7mkeya`),M(ve,n.currentImageTag||`—`),q(De,1,`version-value status-${J(h)??``}`,`svelte-7mkeya`),M(Z,n.electronVersion||`—`),q(Ie,1,`version-value status-${J(b)??``}`,`svelte-7mkeya`),M(Le,n.uiVersion||`—`),et.disabled=e,O(et,`aria-busy`,n.tagChangeLoading)},[()=>!n.selectedImageTag.trim()||n.tagChangeLoading||n.anyDangerousLoading]),s(`click`,Y,function(...e){n.onRefreshReleases?.apply(this,e)}),s(`click`,le,function(...e){n.onUpgradeStack?.apply(this,e)}),s(`click`,et,()=>{n.selectedImageTag.trim()&&n.onSetImageTag(n.selectedImageTag.trim())}),t(e,te),L()}a([`click`,`change`,`input`]);var bn=u(`<div class="empty-state svelte-1dv4ads"><!> <!> <!></div>`);function xn(e,r){var i=bn(),a=y(i),o=e=>{var i=j();n(x(i),()=>r.icon),t(e,i)};f(a,e=>{r.icon&&e(o)});var s=m(a,2);n(s,()=>r.children);var c=m(s,2),l=e=>{var i=j();n(x(i),()=>r.action),t(e,i)};f(c,e=>{r.action&&e(l)}),E(i),t(e,i)}var Sn=u(`<option> </option>`),Cn=u(`<p class="ss-error svelte-180dg8u" role="alert"> </p>`),wn=u(`<div class="ss-add-form svelte-180dg8u" role="group" aria-label="Add a new secret"><label class="ss-field svelte-180dg8u"><span class="ss-field-label svelte-180dg8u">Secret name</span> <input class="form-input" placeholder="e.g. discord_bot_token" autocomplete="off" spellcheck="false"/></label> <label class="ss-field svelte-180dg8u"><span class="ss-field-label svelte-180dg8u">Value</span> <input class="form-input" type="password" placeholder="Paste the secret value" autocomplete="new-password"/></label> <!> <div class="ss-actions svelte-180dg8u"><button type="button" class="btn btn-primary btn-sm"> </button> <button type="button" class="btn btn-secondary btn-sm">Cancel</button></div></div>`),Tn=u(`<div class="secret-select svelte-180dg8u"><div class="ss-row svelte-180dg8u"><select class="form-input ss-select svelte-180dg8u"><option> </option><!></select> <button type="button" class="btn btn-secondary ss-add-btn svelte-180dg8u"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-180dg8u"><path d="M12 5v14"></path><path d="M5 12h14"></path></svg> <span class="ss-add-label svelte-180dg8u">New</span></button></div> <!></div>`);function En(n,r){U(r,!0);let a=C(r,`value`,15,``),o=C(r,`id`,3,`secret-select`),c=W(e([])),l=W(!0),u=W(!1),d=W(``),p=W(``),h=W(!1),g=W(``),_=W(void 0);async function b(){D(l,!0);try{let{files:e}=await fe();D(c,e.map(e=>e.name).sort((e,t)=>e.localeCompare(t)),!0)}catch{D(c,[],!0)}finally{D(l,!1)}}ee(b);function x(e){a(e.currentTarget.value),r.onChange?.(a())}function w(){D(u,!0),D(g,``),D(d,``),D(p,``),queueMicrotask(()=>J(_)?.focus())}function A(){D(u,!1),D(g,``)}async function j(){let e=J(d).trim();if(!e){D(g,`Name is required.`);return}if(!J(p)){D(g,`Value is required.`);return}if(!J(h)){D(h,!0),D(g,``);try{await Oe(e,J(p)),await b(),a(e),r.onChange?.(e),D(u,!1)}catch(e){D(g,e instanceof Error?e.message:`Could not save secret.`,!0)}finally{D(h,!1)}}}function N(e){e.key===`Escape`&&(e.preventDefault(),A())}var P=Tn(),F=y(P),I=y(F),R=y(I),z=y(R,!0);E(R),R.value=R.__value=``,i(m(R),16,()=>J(c),e=>e,(e,n)=>{var r=Sn(),i=y(r,!0);E(r);var a={};v(()=>{M(i,n),a!==(a=n)&&(r.value=(r.__value=n)??``)}),t(e,r)}),E(I);var B;k(I);var V=m(I,2);E(F);var K=m(F,2),te=e=>{var n=wn(),r=y(n),i=m(y(r),2);T(i),H(i,e=>D(_,e),()=>J(_)),E(r);var a=m(r,2),o=m(y(a),2);T(o),E(a);var c=m(a,2),l=e=>{var n=Cn(),r=y(n,!0);E(n),v(()=>M(r,J(g))),t(e,n)};f(c,e=>{J(g)&&e(l)});var u=m(c,2),b=y(u),x=y(b,!0);E(b);var S=m(b,2);E(u),E(n),v(()=>{b.disabled=J(h),M(x,J(h)?`Saving…`:`Save & select`),S.disabled=J(h)}),s(`keydown`,i,N),G(i,()=>J(d),e=>D(d,e)),s(`keydown`,o,N),G(o,()=>J(p),e=>D(p,e)),s(`click`,b,j),s(`click`,S,A),t(e,n)};f(K,e=>{J(u)&&e(te)}),E(P),v(()=>{O(I,`id`,o()),I.disabled=J(l)||J(u),M(z,J(l)?`Loading secrets…`:`Select a secret…`),B!==(B=a())&&(I.value=(I.__value=a())??``,S(I,a())),V.disabled=J(u)}),s(`change`,I,x),s(`click`,V,w),t(n,P),L()}a([`change`,`click`,`keydown`]);var Dn=u(`<div class="loading-state"><!> <span>Loading addons...</span></div>`),On=u(`<div class="error-state svelte-87zh26"><span> </span> <button class="btn btn-secondary btn-sm">Retry</button></div>`),kn=d(`<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="M12 2L2 7l10 5 10-5-10-5z"></path><path d="M2 17l10 5 10-5"></path><path d="M2 12l10 5 10-5"></path></svg>`),An=u(`<p>No addons found in registry/addons/.</p>`),jn=u(`<button class="btn btn-sm btn-secondary" aria-label="Configure Voice addon settings">Configure</button>`),Mn=u(`<button class="btn btn-sm btn-secondary">Credentials</button>`),Nn=u(`<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>`),Pn=u(`<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>`),Fn=u(`<button class="btn btn-secondary btn-sm">Cancel</button> <button class="btn btn-primary btn-sm"><!> Save</button>`,1),In=u(`<div class="creds-loading svelte-87zh26"><!> Loading credentials…</div>`),Ln=u(`<p class="creds-empty svelte-87zh26">This addon has no configurable env vars (compose overlay only).</p>`),Rn=u(`<span class="creds-tag svelte-87zh26">sensitive</span>`),zn=u(`<span class="creds-tag creds-tag--set svelte-87zh26">set</span>`),Bn=u(`<p class="creds-desc svelte-87zh26"> </p>`),Vn=u(`<p class="creds-desc svelte-87zh26">A value is already set — choose a secret to replace it.</p>`),Hn=u(`<!> <!>`,1),Un=u(`<input type="text" class="form-input svelte-87zh26" autocomplete="off"/>`),Wn=u(`<div class="creds-row svelte-87zh26"><label class="creds-label svelte-87zh26"><code class="svelte-87zh26"> </code> <!> <!></label> <!> <!></div>`),Gn=u(`<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),Kn=u(`<div class="panel" role="tabpanel"><div class="panel-header"><div><h2>Addons</h2> <p class="panel-subtitle">Optional features you can enable or disable. Credentials are written to the stack config and applied when the addon container restarts.</p></div> <button class="btn btn-secondary btn-sm"><!> Refresh</button></div> <div class="panel-body panel-body--flush"><!></div> <!></div>`);function qn(n,r){U(r,!0);let a={api:`API`,ssh:`SSH`,ui:`UI`};function o(e){return e.split(/[-_]/).filter(Boolean).map(e=>a[e.toLowerCase()]??e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}let c=W(e([])),l=W(!1),u=W(``),d=W(null),h=W(null),g=e({}),_=e({}),b=e({}),S=W(null),C=W(null);async function w(e,t,n){if(!n){_[e][t]=``;return}try{let{value:r}=await ue(n);_[e][t]=r}catch(e){let t=e instanceof Error?e.message:String(e);Z.push(`error`,`Could not read secret: ${t}`)}}async function k(){D(l,!0),D(u,``);try{D(c,await ye(),!0)}catch(e){let t=e instanceof Error?e.message:String(e);if(t.includes(`401`)||t.includes(`403`)){r.onAuthError();return}D(u,t,!0)}finally{D(l,!1)}}async function A(e,t){D(d,e,!0);try{await De(e,t),await k()}catch(e){let t=e instanceof Error?e.message:String(e);if(t.includes(`401`)||t.includes(`403`)){r.onAuthError();return}D(u,t,!0)}finally{D(d,null)}}function N(){D(h,null)}async function P(e){if(D(h,e,!0),!g[e]){D(S,e,!0);try{let t=await He(e);g[e]=t;let n={},r={};for(let e of t)n[e.key]=e.sensitive?``:e.value,e.sensitive&&(r[e.key]=``);_[e]=n,b[e]=r}catch(e){let t=e instanceof Error?e.message:String(e);if(t.includes(`401`)||t.includes(`403`)){r.onAuthError();return}Z.push(`error`,`Could not load credentials: ${t}`)}finally{D(S,null)}}}async function F(e){D(C,e,!0);try{let t=g[e]??[],n=new Set(t.filter(e=>e.sensitive).map(e=>e.key)),r={},i=_[e]??{};for(let[e,t]of Object.entries(i))n.has(e)&&t===``||(r[e]=t);if(Object.keys(r).length===0){Z.push(`error`,`Nothing to save.`);return}let{updated:a}=await Ce(e,r);Z.push(`success`,`Saved ${a.length} field(s). Recreate the addon container to apply.`);let o=await He(e);g[e]=o;let s={...i};for(let e of o)e.sensitive&&(s[e.key]=``);_[e]=s}catch(e){let t=e instanceof Error?e.message:String(e);if(t.includes(`401`)||t.includes(`403`)){r.onAuthError();return}Z.push(`error`,`Save failed: ${t}`)}finally{D(C,null)}}ee(()=>{k()});var I=Kn(),R=y(I),z=m(y(R),2),B=y(z),H=e=>{Q(e,{})};f(B,e=>{J(l)&&e(H)}),K(),E(z),E(R);var te=m(R,2),ne=y(te),Y=e=>{var n=Dn();Q(y(n),{}),K(2),E(n),t(e,n)},re=e=>{var n=On(),r=y(n),i=y(r,!0);E(r);var a=m(r,2);E(n),v(()=>M(i,J(u))),s(`click`,a,()=>k()),t(e,n)},ie=e=>{xn(e,{icon:e=>{t(e,kn())},children:(e,n)=>{t(e,An())},$$slots:{icon:!0,default:!0}})},ae=e=>{var n=Pn();i(m(y(n),2),17,()=>J(c),e=>e.name,(e,n)=>{var i=Nn(),a=y(i),c=y(a,!0);E(a);var l=m(a,2),u=y(l);let h;var g=y(u,!0);E(u),E(l);var _=m(l,2),b=y(_),x=e=>{var n=jn();s(`click`,n,()=>r.onNavigate?.(`voice`)),t(e,n)},S=e=>{var r=Mn();v(()=>r.disabled=!J(n).available),s(`click`,r,()=>void P(J(n).name)),t(e,r)};f(b,e=>{J(n).name===`voice`&&J(n).enabled?e(x):e(S,-1)});var C=m(b,2);let w;var T=y(C),D=e=>{Q(e,{})},k=e=>{var r=p();v(()=>M(r,J(n).enabled?`Disable`:`Enable`)),t(e,r)};f(T,e=>{J(d)===J(n).name?e(D):e(k,-1)}),E(C),E(_),E(i),v(e=>{O(a,`title`,J(n).name),M(c,e),h=q(u,1,`badge`,null,h,{"badge-enabled":J(n).enabled,"badge-disabled":!J(n).enabled}),M(g,J(n).enabled?`Enabled`:`Disabled`),w=q(C,1,`btn btn-sm`,null,w,{"btn-danger":J(n).enabled,"btn-outline":!J(n).enabled}),C.disabled=J(d)===J(n).name||!J(n).available},[()=>o(J(n).name)]),s(`click`,C,()=>A(J(n).name,!J(n).enabled)),t(e,i)}),E(n),t(e,n)};f(ne,e=>{J(l)&&J(c).length===0?e(Y):J(u)?e(re,1):J(c).length===0?e(ie,2):e(ae,-1)}),E(te);var X=m(te,2),oe=e=>{let n=V(()=>J(h));{let r=e=>{var n=Fn(),r=x(n),i=m(r,2),a=y(i),o=e=>{Q(e,{})};f(a,e=>{J(C)===J(h)&&e(o)}),K(),E(i),v(()=>i.disabled=!J(h)||J(C)===J(h)||(g[J(h)]?.length??0)===0),s(`click`,r,N),s(`click`,i,()=>J(h)&&void F(J(h))),t(e,n)},a=V(()=>o(J(n)));Ke(e,{open:!0,get title(){return`${J(a)??``} credentials`},onClose:N,footer:r,children:(e,r)=>{var a=j(),o=x(a),s=e=>{var n=In();Q(y(n),{}),K(),E(n),t(e,n)},c=e=>{t(e,Ln())},l=e=>{var r=Gn();i(m(x(r),2),17,()=>g[J(n)]??[],e=>e.key,(e,r)=>{var i=Wn(),a=y(i),o=y(a),s=y(o,!0);E(o);var c=m(o,2),l=e=>{t(e,Rn())};f(c,e=>{J(r).sensitive&&e(l)});var u=m(c,2),d=e=>{t(e,zn())};f(u,e=>{J(r).sensitive&&J(r).set&&e(d)}),E(a);var p=m(a,2),h=e=>{var n=Bn(),i=y(n,!0);E(n),v(()=>M(i,J(r).description)),t(e,n)};f(p,e=>{J(r).description&&e(h)});var g=m(p,2),S=e=>{var i=Hn(),a=x(i);En(a,{get id(){return`cred-${J(n)??``}-${J(r).key??``}`},onChange:e=>void w(J(n),J(r).key,e),get value(){return b[J(n)][J(r).key]},set value(e){b[J(n)][J(r).key]=e}});var o=m(a,2),s=e=>{t(e,Vn())};f(o,e=>{J(r).set&&e(s)}),t(e,i)},C=e=>{var i=Un();T(i),v(()=>{O(i,`id`,`cred-${J(n)??``}-${J(r).key??``}`),O(i,`placeholder`,J(r).default)}),G(i,()=>_[J(n)][J(r).key],e=>_[J(n)][J(r).key]=e),t(e,i)};f(g,e=>{J(r).sensitive?e(S):e(C,-1)}),E(i),v(()=>{O(a,`for`,`cred-${J(n)??``}-${J(r).key??``}`),M(s,J(r).key)}),t(e,i)}),t(e,r)};f(o,e=>{J(S)===J(n)?e(s):(g[J(n)]?.length??0)===0?e(c,1):e(l,-1)}),t(e,a)},$$slots:{footer:!0,default:!0}})}};f(X,e=>{J(h)&&e(oe)}),E(I),v(()=>z.disabled=J(l)),s(`click`,z,()=>k()),t(n,I),L()}a([`click`]);var Jn=u(`<div class="panel-header-actions"><!></div>`),Yn=u(`<div class="panel"><div class="panel-header"><h2> </h2> <!></div> <!></div>`);function Xn(e,r){var i=Yn(),a=y(i),o=y(a),s=y(o,!0);E(o);var c=m(o,2),l=e=>{var i=Jn();n(y(i),()=>r.actions),E(i),t(e,i)};f(c,e=>{r.actions&&e(l)}),E(a),n(m(a,2),()=>r.children),E(i),v(()=>{O(i,`role`,r.role),M(s,r.title)}),t(e,i)}function Zn(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 Qn(e){return e===`running`?`success`:e===`exited`||e===`dead`||e===`stopped`?`danger`:e===`restarting`||e===`paused`?`warning`:`idle`}function $n(e){return e?e.charAt(0).toUpperCase()+e.slice(1):e??``}var er=u(`<span class="ct-not-created svelte-1clpuus">--</span>`),tr=u(`<span class="tag-badge"> </span>`),nr=u(`<span class="ct-not-created svelte-1clpuus">--</span>`),rr=u(`<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"><svg aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></span></button>`);function ir(e,n){U(n,!0);let r=V(()=>n.entry.docker?Zn(n.entry.docker.Image):null);var i=rr(),a=y(i),o=y(a),c=m(o,2),l=y(c,!0);E(c),E(a);var u=m(a,2),d=y(u),h=e=>{var n=p();v(()=>M(n,J(r).name)),t(e,n)},g=e=>{t(e,er())};f(d,e=>{J(r)?e(h):e(g,-1)}),E(u);var _=m(u,2),b=y(_),x=e=>{var n=tr(),i=y(n,!0);E(n),v(()=>M(i,J(r).tag)),t(e,n)},S=e=>{t(e,nr())};f(b,e=>{J(r)?e(x):e(S,-1)}),E(_);var C=m(_,2),w=y(C),T=y(w,!0);E(w),E(C);var D=m(C,2),k=y(D);let A;E(D),E(i),v((e,t,r)=>{O(i,`aria-expanded`,n.selected),q(o,1,`ct-indicator ct-indicator--${e??``}`,`svelte-1clpuus`),M(l,n.entry.service),q(w,1,`badge badge-${t??``}`,`svelte-1clpuus`),M(T,r),A=q(k,0,`svelte-1clpuus`,null,A,{"ct-chevron-open":n.selected})},[()=>Qn(n.entry.state),()=>Qn(n.entry.state),()=>$n(n.entry.state)]),s(`click`,i,function(...e){n.onToggle?.apply(this,e)}),t(e,i),L()}a([`click`]);var ar=u(`<span class="detail-mono detail-digest svelte-17lh9yz"> </span>`),or=u(`<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),sr=u(`<div class="detail-item svelte-17lh9yz"><span class="detail-label svelte-17lh9yz">Health</span> <span class="detail-value svelte-17lh9yz"><span> </span></span></div>`),cr=u(`<div class="detail-item svelte-17lh9yz"><span class="detail-label svelte-17lh9yz">Ports</span> <span class="detail-value detail-mono svelte-17lh9yz"> </span></div>`),lr=u(`<div class="detail-item svelte-17lh9yz"><span class="detail-label svelte-17lh9yz">Uptime</span> <span class="detail-value svelte-17lh9yz"> </span></div>`),ur=u(`<div class="detail-item svelte-17lh9yz"><span class="detail-label svelte-17lh9yz">Created</span> <span class="detail-value svelte-17lh9yz"> </span></div>`),dr=u(`<div class="detail-item svelte-17lh9yz"><span class="detail-label svelte-17lh9yz">Project</span> <span class="detail-value detail-mono svelte-17lh9yz"> </span></div>`),fr=u(`<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>`),pr=u(`<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>`),mr=u(`<div role="status"> </div>`),hr=u(`<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>`),gr=u(`<button class="btn btn-primary btn-sm"><!> Start</button>`),_r=u(`<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),vr=u(`<div class="detail-actions svelte-17lh9yz"><!></div>`),yr=u(`<div class="container-detail svelte-17lh9yz"><!> <!> <!></div>`);function br(e,n){U(n,!0);let r=V(()=>n.entry.docker?Zn(n.entry.docker.Image):null),i=V(()=>n.actionInFlight!==null),a=V(()=>!n.entry.docker);var o=yr(),c=y(o),l=e=>{let i=V(()=>n.entry.docker);var a=fr(),o=y(a),s=m(y(o),2),c=y(s,!0);E(s),E(o);var l=m(o,2),u=m(y(l),2),d=y(u,!0);E(u),E(l);var p=m(l,2),h=m(y(p),2),g=y(h,!0);E(h),E(p);var _=m(p,2),b=e=>{var n=or(),a=x(n),o=m(y(a),2),s=y(o,!0);E(o),E(a);var c=m(a,2),l=m(y(c),2),u=y(l),d=y(u,!0);E(u);var p=m(u,2),h=e=>{var n=ar(),r=y(n);E(n),v(e=>M(r,`${e??``}...`),[()=>J(i).Image.split(`@`)[1]?.slice(0,19)]),t(e,n)},g=V(()=>J(i).Image.includes(`@`));f(p,e=>{J(g)&&e(h)}),E(l),E(c),v(()=>{M(s,J(r).name),M(d,J(r).tag)}),t(e,n)};f(_,e=>{J(r)&&e(b)});var S=m(_,2),C=m(y(S),2),w=y(C),T=y(w,!0);E(w),E(C),E(S);var D=m(S,2),O=m(y(D),2),k=y(O,!0);E(O),E(D);var A=m(D,2),j=e=>{var n=sr(),r=m(y(n),2),a=y(r);let o;var s=y(a,!0);E(a),E(r),E(n),v(e=>{o=q(a,1,`badge`,null,o,e),M(s,J(i).Health)},[()=>({"badge-success":J(i).Health===`healthy`,"badge-warning":J(i).Health===`starting`,"badge-danger":J(i).Health===`unhealthy`,"badge-idle":![`healthy`,`starting`,`unhealthy`].includes(J(i).Health)})]),t(e,n)};f(A,e=>{J(i).Health&&e(j)});var N=m(A,2),P=e=>{var n=cr(),r=m(y(n),2),a=y(r,!0);E(r),E(n),v(()=>M(a,J(i).Ports)),t(e,n)};f(N,e=>{J(i).Ports&&e(P)});var F=m(N,2),I=e=>{var n=lr(),r=m(y(n),2),a=y(r,!0);E(r),E(n),v(()=>M(a,J(i).RunningFor)),t(e,n)};f(F,e=>{J(i).RunningFor&&e(I)});var L=m(F,2),R=e=>{var n=ur(),r=m(y(n),2),a=y(r,!0);E(r),E(n),v(()=>M(a,J(i).CreatedAt)),t(e,n)};f(L,e=>{J(i).CreatedAt&&e(R)});var z=m(L,2),B=e=>{var n=dr(),r=m(y(n),2),a=y(r,!0);E(r),E(n),v(()=>M(a,J(i).Project)),t(e,n)};f(z,e=>{J(i).Project&&e(B)}),E(a),v((e,t)=>{M(c,J(i).ID),M(d,J(i).Name||J(i).Names),M(g,J(i).Image),q(w,1,`badge badge-${e??``}`,`svelte-17lh9yz`),M(T,t),M(k,J(i).Status)},[()=>Qn(J(i).State),()=>$n(J(i).State)]),t(e,a)},u=e=>{t(e,pr())};f(c,e=>{n.entry.docker?e(l):e(u,-1)});var d=m(c,2),p=e=>{var r=mr(),i=y(r,!0);E(r),v(()=>{q(r,1,`action-feedback action-feedback--${n.feedback.type??``}`,`svelte-17lh9yz`),M(i,n.feedback.message)}),t(e,r)};f(d,e=>{n.feedback&&e(p)});var h=m(d,2),g=e=>{var r=hr(),i=y(r),a=y(i),o=m(a),c=y(o,!0);E(o),K(),E(i);var l=m(i,2),u=y(l),d=m(u,2);E(l),E(r),v(e=>{M(a,`${e??``} `),M(c,n.entry.service)},[()=>n.confirmAction.charAt(0).toUpperCase()+n.confirmAction.slice(1)]),s(`click`,u,e=>n.onExecuteAction(n.confirmAction,e)),s(`click`,d,e=>n.onCancelConfirm(e)),t(e,r)},_=e=>{var r=vr(),o=y(r),c=e=>{var r=gr(),a=y(r),o=e=>{Q(e,{size:12})};f(a,e=>{n.actionInFlight===`start`&&e(o)}),K(),E(r),v(()=>r.disabled=J(i)),s(`click`,r,e=>n.onRequestAction(`start`,e)),t(e,r)},l=e=>{var r=_r(),a=x(r),o=y(a),c=e=>{Q(e,{size:12})};f(o,e=>{n.actionInFlight===`start`&&e(c)}),K(),E(a);var l=m(a,2),u=y(l),d=e=>{Q(e,{size:12})};f(u,e=>{n.actionInFlight===`stop`&&e(d)}),K(),E(l);var p=m(l,2),h=y(p),g=e=>{Q(e,{size:12})};f(h,e=>{n.actionInFlight===`restart`&&e(g)}),K(),E(p),v(()=>{a.disabled=J(i),l.disabled=J(i),p.disabled=J(i)}),s(`click`,a,e=>n.onRequestAction(`start`,e)),s(`click`,l,e=>n.onRequestAction(`stop`,e)),s(`click`,p,e=>n.onRequestAction(`restart`,e)),t(e,r)};f(o,e=>{J(a)?e(c):e(l,-1)}),E(r),t(e,r)};f(h,e=>{n.confirmAction?e(g):e(_,-1)}),E(o),t(e,o),L()}a([`click`]);var xr=u(`<p>Loading container status...</p>`),Sr=u(`<p class="text-danger svelte-llpoy7"> </p> <button class="btn btn-secondary btn-sm svelte-llpoy7">Try Again</button>`,1),Cr=u(`<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),wr=u(`<p>No containers found. Services may not be installed yet.</p>`),Tr=u(`<div class="empty-state svelte-llpoy7"><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"><rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect><rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect><line x1="6" y1="6" x2="6.01" y2="6"></line><line x1="6" y1="18" x2="6.01" y2="18"></line></svg> <!></div>`);function Er(e,n){U(n,!0);var r=Tr(),i=m(y(r),2),a=e=>{t(e,xr())},o=e=>{var r=Sr(),i=x(r),a=y(i,!0);E(i);var o=m(i,2);v(()=>{M(a,n.error),o.disabled=!n.tokenStored}),s(`click`,o,function(...e){n.onRefresh?.apply(this,e)}),t(e,r)},c=e=>{var n=Cr();K(2),t(e,n)},l=e=>{t(e,wr())};f(i,e=>{n.loading?e(a):n.error?e(o,1):n.containerData&&!n.containerData.dockerAvailable?e(c,2):e(l,-1)}),E(r),t(e,r),L()}a([`click`]);var Dr=u(`<span class="last-updated svelte-fnc5b8"> </span>`),Or=u(`<!> <button class="btn btn-secondary btn-sm"><!> Pull Images</button> <button class="btn btn-secondary btn-sm"><!> Refresh</button>`,1),kr=u(`<!> <!>`,1),Ar=u(`<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>`),jr=u(`<div class="panel-body panel-body--flush"><!></div>`);function Mr(n,r){U(r,!0);let a=V(()=>r.serviceEntries.length>0),o=e({});function c(e){return o[e]||(o[e]={inFlight:null,confirm:null,feedback:null}),o[e]}function l(e,t,n){n.stopPropagation(),c(e).confirm=t}function u(e,t){t.stopPropagation(),c(e).confirm=null}async function d(e,t,n,i){i.stopPropagation();let a=c(e);a.confirm=null,a.inFlight=n,a.feedback=null;try{n===`start`?r.onStart(t):n===`stop`?r.onStop(t):r.onRestart(t),a.feedback={type:`success`,message:`${n.charAt(0).toUpperCase()+n.slice(1)} initiated`}}catch(e){a.feedback={type:`error`,message:`${n} failed: ${e instanceof Error?e.message:e}`}}a.inFlight=null,setTimeout(()=>{a.feedback=null},3e3)}Xn(n,{title:`Container Status`,role:`tabpanel`,actions:e=>{var n=Or(),i=x(n),a=e=>{var n=Dr(),i=y(n);E(n),v(()=>M(i,`Updated ${r.lastUpdated??``}`)),t(e,n)};f(i,e=>{r.lastUpdated&&e(a)});var o=m(i,2),c=y(o),l=e=>{Q(e,{})};f(c,e=>{r.pullLoading&&e(l)}),K(),E(o);var u=m(o,2),d=y(u),p=e=>{Q(e,{})};f(d,e=>{r.loading&&e(p)}),K(),E(u),v(()=>{o.disabled=r.pullLoading||!r.tokenStored,u.disabled=r.loading||!r.tokenStored}),s(`click`,o,function(...e){r.onPullImages?.apply(this,e)}),s(`click`,u,function(...e){r.onRefresh?.apply(this,e)}),t(e,n)},children:(e,n)=>{var s=jr(),c=y(s),p=e=>{var n=Ar();i(m(y(n),2),17,()=>r.serviceEntries,e=>e.id,(e,n)=>{let i=V(()=>r.selectedContainerId===J(n).id);var a=kr(),s=x(a);ir(s,{get entry(){return J(n)},get selected(){return J(i)},onToggle:()=>r.onToggleContainer(J(n).id)});var c=m(s,2),p=e=>{{let t=V(()=>o[J(n).id]?.inFlight??null),r=V(()=>o[J(n).id]?.confirm??null),i=V(()=>o[J(n).id]?.feedback??null);br(e,{get entry(){return J(n)},get actionInFlight(){return J(t)},get confirmAction(){return J(r)},get feedback(){return J(i)},onRequestAction:(e,t)=>l(J(n).id,e,t),onCancelConfirm:e=>u(J(n).id,e),onExecuteAction:(e,t)=>d(J(n).id,J(n).service,e,t)})}};f(c,e=>{J(i)&&e(p)}),t(e,a)}),E(n),t(e,n)},h=e=>{Er(e,{get loading(){return r.loading},get error(){return r.error},get containerData(){return r.containerData},get tokenStored(){return r.tokenStored},get onRefresh(){return r.onRefresh}})};f(c,e=>{J(a)?e(p):e(h,-1)}),E(s),t(e,s)},$$slots:{actions:!0,default:!0}}),L()}a([`click`]);var Nr=Symbol.for(`yaml.alias`),Pr=Symbol.for(`yaml.document`),Fr=Symbol.for(`yaml.map`),Ir=Symbol.for(`yaml.pair`),Lr=Symbol.for(`yaml.scalar`),Rr=Symbol.for(`yaml.seq`),zr=Symbol.for(`yaml.node.type`),Br=e=>!!e&&typeof e==`object`&&e[zr]===Nr,Vr=e=>!!e&&typeof e==`object`&&e[zr]===Pr,Hr=e=>!!e&&typeof e==`object`&&e[zr]===Fr,Ur=e=>!!e&&typeof e==`object`&&e[zr]===Ir,Wr=e=>!!e&&typeof e==`object`&&e[zr]===Lr,Gr=e=>!!e&&typeof e==`object`&&e[zr]===Rr;function Kr(e){if(e&&typeof e==`object`)switch(e[zr]){case Fr:case Rr:return!0}return!1}function qr(e){if(e&&typeof e==`object`)switch(e[zr]){case Nr:case Fr:case Lr:case Rr:return!0}return!1}var Jr=e=>(Wr(e)||Kr(e))&&!!e.anchor,Yr=Symbol(`break visit`),Xr=Symbol(`skip children`),Zr=Symbol(`remove node`);function Qr(e,t){let n=ni(t);Vr(e)?$r(null,e.contents,n,Object.freeze([e]))===Zr&&(e.contents=null):$r(null,e,n,Object.freeze([]))}Qr.BREAK=Yr,Qr.SKIP=Xr,Qr.REMOVE=Zr;function $r(e,t,n,r){let i=ri(e,t,n,r);if(qr(i)||Ur(i))return ii(e,r,i),$r(e,i,n,r);if(typeof i!=`symbol`){if(Kr(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=$r(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===Yr)return Yr;else i===Zr&&(t.items.splice(e,1),--e)}}else if(Ur(t)){r=Object.freeze(r.concat(t));let e=$r(`key`,t.key,n,r);if(e===Yr)return Yr;e===Zr&&(t.key=null);let i=$r(`value`,t.value,n,r);if(i===Yr)return Yr;i===Zr&&(t.value=null)}}return i}async function ei(e,t){let n=ni(t);Vr(e)?await ti(null,e.contents,n,Object.freeze([e]))===Zr&&(e.contents=null):await ti(null,e,n,Object.freeze([]))}ei.BREAK=Yr,ei.SKIP=Xr,ei.REMOVE=Zr;async function ti(e,t,n,r){let i=await ri(e,t,n,r);if(qr(i)||Ur(i))return ii(e,r,i),ti(e,i,n,r);if(typeof i!=`symbol`){if(Kr(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=await ti(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===Yr)return Yr;else i===Zr&&(t.items.splice(e,1),--e)}}else if(Ur(t)){r=Object.freeze(r.concat(t));let e=await ti(`key`,t.key,n,r);if(e===Yr)return Yr;e===Zr&&(t.key=null);let i=await ti(`value`,t.value,n,r);if(i===Yr)return Yr;i===Zr&&(t.value=null)}}return i}function ni(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 ri(e,t,n,r){if(typeof n==`function`)return n(e,t,r);if(Hr(t))return n.Map?.(e,t,r);if(Gr(t))return n.Seq?.(e,t,r);if(Ur(t))return n.Pair?.(e,t,r);if(Wr(t))return n.Scalar?.(e,t,r);if(Br(t))return n.Alias?.(e,t,r)}function ii(e,t,n){let r=t[t.length-1];if(Kr(r))r.items[e]=n;else if(Ur(r))e===`key`?r.key=n:r.value=n;else if(Vr(r))r.contents=n;else{let e=Br(r)?`alias`:`scalar`;throw Error(`Cannot replace node with ${e} parent`)}}var ai={"!":`%21`,",":`%2C`,"[":`%5B`,"]":`%5D`,"{":`%7B`,"}":`%7D`},oi=e=>e.replace(/[!,[\]{}]/g,e=>ai[e]),si=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+oi(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&&qr(e.contents)){let t={};Qr(e.contents,(e,n)=>{qr(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(`
|
|
3
|
+
`)}};si.defaultYaml={explicit:!1,version:`1.2`},si.defaultTags={"!!":`tag:yaml.org,2002:`};function ci(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 li(e){let t=new Set;return Qr(e,{Value(e,n){n.anchor&&t.add(n.anchor)}}),t}function ui(e,t){for(let n=1;;++n){let r=`${e}${n}`;if(!t.has(r))return r}}function di(e,t){let n=[],r=new Map,i=null;return{onAnchor:r=>{n.push(r),i??=li(e);let a=ui(t,i);return i.add(a),a},setAnchors:()=>{for(let e of n){let t=r.get(e);if(typeof t==`object`&&t.anchor&&(Wr(t.node)||Kr(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 fi(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=fi(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=fi(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=fi(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=fi(e,r,t,n);i===void 0?delete r[t]:i!==n&&(r[t]=i)}return e.call(t,n,r)}function pi(e,t,n){if(Array.isArray(e))return e.map((e,t)=>pi(e,String(t),n));if(e&&typeof e.toJSON==`function`){if(!n||!Jr(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 mi=class{constructor(e){Object.defineProperty(this,zr,{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(!Vr(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=pi(this,``,a);if(typeof r==`function`)for(let{count:e,res:t}of a.anchors.values())r(t,e);return typeof i==`function`?fi(i,{"":o},``,o):o}},hi=class extends mi{constructor(e){super(Nr),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=[],Qr(e,{Node:(e,t)=>{(Br(t)||Jr(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||=(pi(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=gi(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(ci(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 gi(e,t,n){if(Br(t)){let r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}else if(Kr(t)){let r=0;for(let i of t.items){let t=gi(e,i,n);t>r&&(r=t)}return r}else if(Ur(t)){let r=gi(e,t.key,n),i=gi(e,t.value,n);return Math.max(r,i)}return 1}var _i=e=>!e||typeof e!=`function`&&typeof e!=`object`,$=class extends mi{constructor(e){super(Lr),this.value=e}toJSON(e,t){return t?.keep?this.value:pi(this.value,e,t)}toString(){return String(this.value)}};$.BLOCK_FOLDED=`BLOCK_FOLDED`,$.BLOCK_LITERAL=`BLOCK_LITERAL`,$.PLAIN=`PLAIN`,$.QUOTE_DOUBLE=`QUOTE_DOUBLE`,$.QUOTE_SINGLE=`QUOTE_SINGLE`;var vi=`tag:yaml.org,2002:`;function yi(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 bi(e,t,n){if(Vr(e)&&(e=e.contents),qr(e))return e;if(Ur(e)){let t=n.schema[Fr].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 hi(c.anchor);c={anchor:null,node:null},s.set(e,c)}t?.startsWith(`!!`)&&(t=vi+t.slice(2));let l=yi(e,t,o.tags);if(!l){if(e&&typeof e.toJSON==`function`&&(e=e.toJSON()),!e||typeof e!=`object`){let t=new $(e);return c&&(c.node=t),t}l=e instanceof Map?o[Fr]:Symbol.iterator in Object(e)?o[Rr]:o[Fr]}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 $(e);return t?u.tag=t:l.default||(u.tag=l.tag),c&&(c.node=u),u}function xi(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 bi(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error(`This should not happen, please report a bug.`)},schema:e,sourceObjects:new Map})}var Si=e=>e==null||typeof e==`object`&&!!e[Symbol.iterator]().next().done,Ci=class extends mi{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=>qr(t)||Ur(t)?t.clone(e):t),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(Si(e))this.add(t);else{let[n,...r]=e,i=this.get(n,!0);if(Kr(i))i.addIn(r,t);else if(i===void 0&&this.schema)this.set(n,xi(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(Kr(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&&Wr(i)?i.value:i:Kr(i)?i.getIn(r,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!Ur(t))return!1;let n=t.value;return n==null||e&&Wr(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 Kr(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(Kr(e))e.setIn(r,t);else if(e===void 0&&this.schema)this.set(n,xi(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}},wi=e=>e.replace(/^(?!$)(?: $)?/gm,`#`);function Ti(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}var Ei=(e,t,n)=>e.endsWith(`
|
|
4
|
+
`)?Ti(n,t):n.includes(`
|
|
5
|
+
`)?`
|
|
6
|
+
`+Ti(n,t):(e.endsWith(` `)?``:` `)+n,Di=`flow`,Oi=`block`,ki=`quoted`;function Ai(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=ji(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===`
|
|
7
|
+
`)n===`block`&&(h=ji(e,h,t.length)),d=h+t.length+c,f=void 0;else{if(r===` `&&p&&p!==` `&&p!==`
|
|
8
|
+
`&&p!==` `){let t=e[h+1];t&&t!==` `&&t!==`
|
|
9
|
+
`&&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 ji(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!==`
|
|
10
|
+
`);r=t,i=t+1,a=e[i]}return r}var Mi=(e,t)=>({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),Ni=e=>/^(%|---|\.\.\.)/m.test(e);function Pi(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]===`
|
|
11
|
+
`){if(t-n>r)return!0;if(n=t+1,i-n<=r)return!1}return!0}function Fi(e,t){let n=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return n;let{implicitKey:r}=t,i=t.options.doubleQuotedMinMultiLineLength,a=t.indent||(Ni(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)+`
|
|
12
|
+
|
|
13
|
+
`;n[e+2]===`\\`&&n[e+3]===`n`&&n[e+4]!==`"`;)o+=`
|
|
14
|
+
`,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:Ai(o,a,ki,Mi(t,!1))}function Ii(e,t){if(t.options.singleQuote===!1||t.implicitKey&&e.includes(`
|
|
15
|
+
`)||/[ \t]\n|\n[ \t]/.test(e))return Fi(e,t);let n=t.indent||(Ni(e)?` `:``),r=`'`+e.replace(/'/g,`''`).replace(/\n+/g,`$&\n${n}`)+`'`;return t.implicitKey?r:Ai(r,n,Di,Mi(t,!1))}function Li(e,t){let{singleQuote:n}=t.options,r;if(n===!1)r=Fi;else{let t=e.includes(`"`),i=e.includes(`'`);r=t&&!i?Ii:i&&!t?Fi:n?Ii:Fi}return r(e,t)}var Ri;try{Ri=RegExp(`(^|(?<!
|
|
16
|
+
))
|
|
17
|
+
+(?!
|
|
18
|
+
|$)`,`g`)}catch{Ri=/\n+(?!\n|$)/g}function zi({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 Li(n,r);let l=r.indent||(r.forceBlockIndent||Ni(n)?` `:``),u=o===`literal`?!0:o===`folded`||t===$.BLOCK_FOLDED?!1:t===$.BLOCK_LITERAL?!0:!Pi(n,c,l.length);if(!n)return u?`|
|
|
19
|
+
`:`>
|
|
20
|
+
`;let d,f;for(f=n.length;f>0;--f){let e=n[f-1];if(e!==`
|
|
21
|
+
`&&e!==` `&&e!==` `)break}let p=n.substring(f),m=p.indexOf(`
|
|
22
|
+
`);m===-1?d=`-`:n===p||m!==p.length-1?(d=`+`,a&&a()):d=``,p&&=(n=n.slice(0,-p.length),p[p.length-1]===`
|
|
23
|
+
`&&(p=p.slice(0,-1)),p.replace(Ri,`$&${l}`));let h=!1,g,_=-1;for(g=0;g<n.length;++g){let e=n[g];if(e===` `)h=!0;else if(e===`
|
|
24
|
+
`)_=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,`
|
|
25
|
+
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\n+/g,`$&${l}`),i=!1,a=Mi(r,!0);o!==`folded`&&t!==$.BLOCK_FOLDED&&(a.onOverflow=()=>{i=!0});let s=Ai(`${v}${e}${p}`,l,Oi,a);if(!i)return`>${y}\n${l}${s}`}return n=n.replace(/\n+/g,`$&${l}`),`|${y}\n${l}${v}${n}${p}`}function Bi(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(`
|
|
26
|
+
`)||u&&/[[\]{},]/.test(a))return Li(a,t);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(a))return s||u||!a.includes(`
|
|
27
|
+
`)?Li(a,t):zi(e,t,n,r);if(!s&&!u&&i!==$.PLAIN&&a.includes(`
|
|
28
|
+
`))return zi(e,t,n,r);if(Ni(a)){if(c===``)return t.forceBlockIndent=!0,zi(e,t,n,r);if(s&&c===l)return Li(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 Li(a,t)}return s?d:Ai(d,c,Di,Mi(t,!1))}function Vi(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!==$.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(s=$.QUOTE_DOUBLE);let c=e=>{switch(e){case $.BLOCK_FOLDED:case $.BLOCK_LITERAL:return i||a?Li(o.value,t):zi(o,t,n,r);case $.QUOTE_DOUBLE:return Fi(o.value,t);case $.QUOTE_SINGLE:return Ii(o.value,t);case $.PLAIN:return Bi(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 Hi(e,t){let n=Object.assign({blockQuote:!0,commentString:wi,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 Ui(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(Wr(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 Wi(e,t,{anchors:n,doc:r}){if(!r.directives)return``;let i=[],a=(Wr(e)||Kr(e))&&e.anchor;a&&ci(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 Gi(e,t,n,r){if(Ur(e))return e.toString(t,n,r);if(Br(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=qr(e)?e:t.doc.createNode(e,{onTagObj:e=>i=e});i??=Ui(t.doc.schema.tags,a);let o=Wi(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):Wr(a)?Vi(a,t,n,r):a.toString(t,n,r);return o?Wr(a)||s[0]===`{`||s[0]===`[`?`${o} ${s}`:`${o}\n${t.indent}${s}`:s}function Ki({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=qr(e)&&e.comment||null;if(d){if(f)throw Error(`With simple keys, key nodes cannot have comments`);if(Kr(e)||!qr(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||Kr(e)||(Wr(e)?e.type===$.BLOCK_FOLDED||e.type===$.BLOCK_LITERAL:typeof e==`object`));n=Object.assign({},n,{allNullValues:!1,implicitKey:!p&&(d||!a),indent:s+c});let m=!1,h=!1,g=Gi(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+=Ei(g,n.indent,l(f)):h&&i&&i(),g;m&&(f=null),p?(f&&(g+=Ei(g,n.indent,l(f))),g=`? ${g}\n${s}:`):(g=`${g}:`,f&&(g+=Ei(g,n.indent,l(f))));let _,v,y;qr(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&&Wr(t)&&(n.indentAtStart=g.length+1),h=!1,!u&&c.length>=2&&!n.inFlow&&!p&&Gr(t)&&!t.flow&&!t.tag&&!t.anchor&&(n.indent=n.indent.substring(2));let b=!1,x=Gi(t,n,()=>b=!0,()=>h=!0),S=` `;if(f||_||v){if(S=_?`
|
|
29
|
+
`:``,v){let e=l(v);S+=`\n${Ti(e,n.indent)}`}x===``&&!n.inFlow?S===`
|
|
30
|
+
`&&y&&(S=`
|
|
31
|
+
|
|
32
|
+
`):S+=`\n${n.indent}`}else if(!p&&Kr(t)){let e=x[0],r=x.indexOf(`
|
|
33
|
+
`),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]===`
|
|
34
|
+
`)&&(S=``);return g+=S+x,n.inFlow?b&&r&&r():y&&!b?g+=Ei(g,n.indent,l(y)):h&&i&&i(),g}function qi(e,t){(e===`debug`||e===`warn`)&&console.warn(t)}var Ji=`<<`,Yi={identify:e=>e===Ji||typeof e==`symbol`&&e.description===Ji,default:`key`,tag:`tag:yaml.org,2002:merge`,test:/^<<$/,resolve:()=>Object.assign(new $(Symbol(Ji)),{addToJSMap:Zi}),stringify:()=>Ji},Xi=(e,t)=>(Yi.identify(t)||Wr(t)&&(!t.type||t.type===$.PLAIN)&&Yi.identify(t.value))&&e?.doc.schema.tags.some(e=>e.tag===Yi.tag&&e.default);function Zi(e,t,n){let r=$i(e,n);if(Gr(r))for(let n of r.items)Qi(e,t,n);else if(Array.isArray(r))for(let n of r)Qi(e,t,n);else Qi(e,t,r)}function Qi(e,t,n){let r=$i(e,n);if(!Hr(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 $i(e,t){return e&&Br(t)?t.resolve(e.doc,e):t}function ea(e,t,{key:n,value:r}){if(qr(n)&&n.addToJSMap)n.addToJSMap(e,t,r);else if(Xi(e,n))Zi(e,t,r);else{let i=pi(n,``,e);if(t instanceof Map)t.set(i,pi(r,i,e));else if(t instanceof Set)t.add(i);else{let a=ta(n,i,e),o=pi(r,a,e);a in t?Object.defineProperty(t,a,{value:o,writable:!0,enumerable:!0,configurable:!0}):t[a]=o}}return t}function ta(e,t,n){if(t===null)return``;if(typeof t!=`object`)return String(t);if(qr(e)&&n?.doc){let t=Hi(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)+`..."`),qi(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 na(e,t,n){return new ra(bi(e,void 0,n),bi(t,void 0,n))}var ra=class e{constructor(e,t=null){Object.defineProperty(this,zr,{value:Ir}),this.key=e,this.value=t}clone(t){let{key:n,value:r}=this;return qr(n)&&(n=n.clone(t)),qr(r)&&(r=r.clone(t)),new e(n,r)}toJSON(e,t){return ea(t,t?.mapAsMap?new Map:{},this)}toString(e,t,n){return e?.doc?Ki(this,e,t,n):JSON.stringify(this)}};function ia(e,t,n){return(t.inFlow??e.flow?oa:aa)(e,t,n)}function aa({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(qr(i))!d&&i.spaceBefore&&f.push(``),sa(n,f,i.commentBefore,d),i.comment&&(o=i.comment);else if(Ur(i)){let e=qr(i.key)?i.key:null;e&&(!d&&e.spaceBefore&&f.push(``),sa(n,f,e.commentBefore,d))}d=!1;let s=Gi(i,u,()=>o=null,()=>d=!0);o&&(s+=Ei(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}`:`
|
|
35
|
+
`}}return e?(p+=`
|
|
36
|
+
`+Ti(l(e),c),s&&s()):d&&o&&o(),p}function oa({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(qr(i))i.spaceBefore&&d.push(``),sa(t,d,i.commentBefore,!1),i.comment&&(a=i.comment);else if(Ur(i)){let e=qr(i.key)?i.key:null;e&&(e.spaceBefore&&d.push(``),sa(t,d,e.commentBefore,!1),e.comment&&(l=!0));let n=qr(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=Gi(i,c,()=>a=null);l||=d.length>u||o.includes(`
|
|
37
|
+
`),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+=Ei(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}`:`
|
|
38
|
+
`;return`${e}\n${i}${p}`}else return`${f}${o}${d.join(` `)}${o}${p}`}function sa({indent:e,options:{commentString:t}},n,r,i){if(r&&i&&(r=r.replace(/^\n+/,``)),r){let i=Ti(t(r),e);n.push(i.trimStart())}}function ca(e,t){let n=Wr(t)?t.value:t;for(let r of e)if(Ur(r)&&(r.key===t||r.key===n||Wr(r.key)&&r.key.value===n))return r}var la=class extends Ci{static get tagName(){return`tag:yaml.org,2002:map`}constructor(e){super(Fr,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(na(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=Ur(e)?e:!e||typeof e!=`object`||!(`key`in e)?new ra(e,e?.value):new ra(e.key,e.value);let r=ca(this.items,n.key),i=this.schema?.sortMapEntries;if(r){if(!t)throw Error(`Key ${n.key} already set`);Wr(r.value)&&_i(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=ca(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let n=ca(this.items,e)?.value;return(!t&&Wr(n)?n.value:n)??void 0}has(e){return!!ca(this.items,e)}set(e,t){this.add(new ra(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)ea(t,r,e);return r}toString(e,t,n){if(!e)return JSON.stringify(this);for(let e of this.items)if(!Ur(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})),ia(this,e,{blockItemPrefix:``,flowChars:{start:`{`,end:`}`},itemIndent:e.indent||``,onChompKeep:n,onComment:t})}},ua={collection:`map`,default:!0,nodeClass:la,tag:`tag:yaml.org,2002:map`,resolve(e,t){return Hr(e)||t(`Expected a mapping for this tag`),e},createNode:(e,t,n)=>la.from(e,t,n)},da=class extends Ci{static get tagName(){return`tag:yaml.org,2002:seq`}constructor(e){super(Rr,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=fa(e);return typeof t==`number`?this.items.splice(t,1).length>0:!1}get(e,t){let n=fa(e);if(typeof n!=`number`)return;let r=this.items[n];return!t&&Wr(r)?r.value:r}has(e){let t=fa(e);return typeof t==`number`&&t<this.items.length}set(e,t){let n=fa(e);if(typeof n!=`number`)throw Error(`Expected a valid index, not ${e}.`);let r=this.items[n];Wr(r)&&_i(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(pi(e,String(r++),t));return n}toString(e,t,n){return e?ia(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(bi(a,void 0,n))}}return i}};function fa(e){let t=Wr(e)?e.value:e;return t&&typeof t==`string`&&(t=Number(t)),typeof t==`number`&&Number.isInteger(t)&&t>=0?t:null}var pa={collection:`seq`,default:!0,nodeClass:da,tag:`tag:yaml.org,2002:seq`,resolve(e,t){return Gr(e)||t(`Expected a sequence for this tag`),e},createNode:(e,t,n)=>da.from(e,t,n)},ma={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),Vi(e,t,n,r)}},ha={identify:e=>e==null,createNode:()=>new $(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new $(null),stringify:({source:e},t)=>typeof e==`string`&&ha.test.test(e)?e:t.options.nullStr},ga={identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new $(e[0]===`t`||e[0]===`T`),stringify({source:e,value:t},n){return e&&ga.test.test(e)&&t===(e[0]===`t`||e[0]===`T`)?e:t?n.options.trueStr:n.options.falseStr}};function _a({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 va={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:_a},ya={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():_a(e)}},ba={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 $(parseFloat(e)),n=e.indexOf(`.`);return n!==-1&&e[e.length-1]===`0`&&(t.minFractionDigits=e.length-n-1),t},stringify:_a},xa=e=>typeof e==`bigint`||Number.isInteger(e),Sa=(e,t,n,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(t),n);function Ca(e,t,n){let{value:r}=e;return xa(r)&&r>=0?n+r.toString(t):_a(e)}var wa={identify:e=>xa(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^0o[0-7]+$/,resolve:(e,t,n)=>Sa(e,2,8,n),stringify:e=>Ca(e,8,`0o`)},Ta={identify:xa,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9]+$/,resolve:(e,t,n)=>Sa(e,0,10,n),stringify:_a},Ea={identify:e=>xa(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,n)=>Sa(e,2,16,n),stringify:e=>Ca(e,16,`0x`)},Da=[ua,pa,ma,ha,ga,wa,Ta,Ea,va,ya,ba];function Oa(e){return typeof e==`bigint`||Number.isInteger(e)}var ka=({value:e})=>JSON.stringify(e),Aa=[{identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify:ka},{identify:e=>e==null,createNode:()=>new $(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^null$/,resolve:()=>null,stringify:ka},{identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^true$|^false$/,resolve:e=>e===`true`,stringify:ka},{identify:Oa,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})=>Oa(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:ka}],ja=[ua,pa].concat(Aa,{default:!0,tag:``,test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}}),Ma={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??=$.BLOCK_LITERAL,t!==$.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===$.BLOCK_LITERAL?`
|
|
39
|
+
`:` `)}return Vi({comment:e,type:t,value:s},r,i,a)}};function Na(e,t){if(Gr(e))for(let n=0;n<e.items.length;++n){let r=e.items[n];if(!Ur(r)){if(Hr(r)){r.items.length>1&&t(`Each pair must have its own sequence indicator`);let e=r.items[0]||new ra(new $(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]=Ur(r)?r:new ra(r)}}else t(`Expected a sequence for this tag`);return e}function Pa(e,t,n){let{replacer:r}=n,i=new da(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(na(o,s,n))}return i}var Fa={collection:`seq`,default:!1,tag:`tag:yaml.org,2002:pairs`,resolve:Na,createNode:Pa},Ia=class e extends da{constructor(){super(),this.add=la.prototype.add.bind(this),this.delete=la.prototype.delete.bind(this),this.get=la.prototype.get.bind(this),this.has=la.prototype.has.bind(this),this.set=la.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(Ur(e)?(r=pi(e.key,``,t),i=pi(e.value,r,t)):r=pi(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=Pa(e,t,n),i=new this;return i.items=r.items,i}};Ia.tag=`tag:yaml.org,2002:omap`;var La={collection:`seq`,identify:e=>e instanceof Map,nodeClass:Ia,default:!1,tag:`tag:yaml.org,2002:omap`,resolve(e,t){let n=Na(e,t),r=[];for(let{key:e}of n.items)Wr(e)&&(r.includes(e.value)?t(`Ordered maps must not include duplicate keys: ${e.value}`):r.push(e.value));return Object.assign(new Ia,n)},createNode:(e,t,n)=>Ia.from(e,t,n)};function Ra({value:e,source:t},n){return t&&(e?za:Ba).test.test(t)?t:e?n.options.trueStr:n.options.falseStr}var za={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 $(!0),stringify:Ra},Ba={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 $(!1),stringify:Ra},Va={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:_a},Ha={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():_a(e)}},Ua={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 $(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:_a},Wa=e=>typeof e==`bigint`||Number.isInteger(e);function Ga(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 Ka(e,t,n){let{value:r}=e;if(Wa(r)){let e=r.toString(t);return r<0?`-`+n+e.substr(1):n+e}return _a(e)}var qa={identify:Wa,default:!0,tag:`tag:yaml.org,2002:int`,format:`BIN`,test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,n)=>Ga(e,2,2,n),stringify:e=>Ka(e,2,`0b`)},Ja={identify:Wa,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^[-+]?0[0-7_]+$/,resolve:(e,t,n)=>Ga(e,1,8,n),stringify:e=>Ka(e,8,`0`)},Ya={identify:Wa,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,n)=>Ga(e,0,10,n),stringify:_a},Xa={identify:Wa,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,n)=>Ga(e,2,16,n),stringify:e=>Ka(e,16,`0x`)},Za=class e extends la{constructor(t){super(t),this.tag=e.tag}add(e){let t;t=Ur(e)?e:e&&typeof e==`object`&&`key`in e&&`value`in e&&e.value===null?new ra(e.key,null):new ra(e,null),ca(this.items,t.key)||this.items.push(t)}get(e,t){let n=ca(this.items,e);return!t&&Ur(n)?Wr(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=ca(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new ra(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(na(e,null,n));return i}};Za.tag=`tag:yaml.org,2002:set`;var Qa={collection:`map`,identify:e=>e instanceof Set,nodeClass:Za,default:!1,tag:`tag:yaml.org,2002:set`,createNode:(e,t,n)=>Za.from(e,t,n),resolve(e,t){if(Hr(e)){if(e.hasAllNullValues(!0))return Object.assign(new Za,e);t(`Set items must all have null values`)}else t(`Expected a mapping for this tag`);return e}};function $a(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 eo(e){let{value:t}=e,n=e=>e;if(typeof t==`bigint`)n=e=>BigInt(e);else if(isNaN(t)||!isFinite(t))return _a(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 to={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})=>$a(e,n),stringify:eo},no={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=>$a(e,!1),stringify:eo},ro={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(ro.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=$a(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$/,``)??``},io=[ua,pa,ma,ha,za,Ba,qa,Ja,Ya,Xa,Va,Ha,Ua,Ma,Yi,La,Fa,Qa,to,no,ro],ao=new Map([[`core`,Da],[`failsafe`,[ua,pa,ma]],[`json`,ja],[`yaml11`,io],[`yaml-1.1`,io]]),oo={binary:Ma,bool:ga,float:ba,floatExp:ya,floatNaN:va,floatTime:no,int:Ta,intHex:Ea,intOct:wa,intTime:to,map:ua,merge:Yi,null:ha,omap:La,pairs:Fa,seq:pa,set:Qa,timestamp:ro},so={"tag:yaml.org,2002:binary":Ma,"tag:yaml.org,2002:merge":Yi,"tag:yaml.org,2002:omap":La,"tag:yaml.org,2002:pairs":Fa,"tag:yaml.org,2002:set":Qa,"tag:yaml.org,2002:timestamp":ro};function co(e,t,n){let r=ao.get(t);if(r&&!e)return n&&!r.includes(Yi)?r.concat(Yi):r.slice();let i=r;if(!i)if(Array.isArray(e))i=[];else{let e=Array.from(ao.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(Yi)),i.reduce((e,t)=>{let n=typeof t==`string`?oo[t]:t;if(!n){let e=JSON.stringify(t),n=Object.keys(oo).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 lo=(e,t)=>e.key<t.key?-1:+(e.key>t.key),uo=class e{constructor({compat:e,customTags:t,merge:n,resolveKnownTags:r,schema:i,sortMapEntries:a,toStringDefaults:o}){this.compat=Array.isArray(e)?co(e,`compat`):e?co(null,e):null,this.name=typeof i==`string`&&i||`core`,this.knownTags=r?so:{},this.tags=co(t,this.name,n),this.toStringOptions=o??null,Object.defineProperty(this,Fr,{value:ua}),Object.defineProperty(this,Lr,{value:ma}),Object.defineProperty(this,Rr,{value:pa}),this.sortMapEntries=typeof a==`function`?a:a===!0?lo:null}clone(){let t=Object.create(e.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}};function fo(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=Hi(e,t),{commentString:a}=i.options;if(e.commentBefore){n.length!==1&&n.unshift(``);let t=a(e.commentBefore);n.unshift(Ti(t,``))}let o=!1,s=null;if(e.contents){if(qr(e.contents)){if(e.contents.spaceBefore&&r&&n.push(``),e.contents.commentBefore){let t=a(e.contents.commentBefore);n.push(Ti(t,``))}i.forceBlockIndent=!!e.comment,s=e.contents.comment}let t=s?void 0:()=>o=!0,c=Gi(e.contents,i,()=>s=null,t);s&&(c+=Ei(c,``,a(s))),(c[0]===`|`||c[0]===`>`)&&n[n.length-1]===`---`?n[n.length-1]=`--- ${c}`:n.push(c)}else n.push(Gi(e.contents,i));if(e.directives?.docEnd)if(e.comment){let t=a(e.comment);t.includes(`
|
|
40
|
+
`)?(n.push(`...`),n.push(Ti(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(Ti(a(t),``)))}return n.join(`
|
|
41
|
+
`)+`
|
|
42
|
+
`}var po=class e{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,zr,{value:Pr});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 si({version:a}),this.setSchema(a,n),this.contents=e===void 0?null:this.createNode(e,r,n)}clone(){let t=Object.create(e.prototype,{[zr]:{value:Pr}});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=qr(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(e){mo(this.contents)&&this.contents.add(e)}addIn(e,t){mo(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let n=li(this);e.anchor=!t||n.has(t)?ui(t||`a`,n):t}return new hi(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}=di(this,a||`a`),p={aliasDuplicateObjects:i??!0,keepUndefined:s??!1,onAnchor:u,onTagObj:c,replacer:r,schema:this.schema,sourceObjects:f},m=bi(e,l,p);return o&&Kr(m)&&(m.flow=!0),d(),m}createPair(e,t,n={}){return new ra(this.createNode(e,null,n),this.createNode(t,null,n))}delete(e){return mo(this.contents)?this.contents.delete(e):!1}deleteIn(e){return Si(e)?this.contents==null?!1:(this.contents=null,!0):mo(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return Kr(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return Si(e)?!t&&Wr(this.contents)?this.contents.value:this.contents:Kr(this.contents)?this.contents.getIn(e,t):void 0}has(e){return Kr(this.contents)?this.contents.has(e):!1}hasIn(e){return Si(e)?this.contents!==void 0:Kr(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=xi(this.schema,[e],t):mo(this.contents)&&this.contents.set(e,t)}setIn(e,t){Si(e)?this.contents=t:this.contents==null?this.contents=xi(this.schema,Array.from(e),t):mo(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 si({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 si({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 uo(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=pi(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`?fi(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 fo(this,e)}};function mo(e){if(Kr(e))return!0;throw Error(`Expected a YAML collection as document contents`)}var ho=class extends Error{constructor(e,t,n,r){super(),this.name=e,this.code=n,this.message=r,this.pos=t}},go=class extends ho{constructor(e,t,n){super(`YAMLParseError`,e,t,n)}},_o=class extends ho{constructor(e,t,n){super(`YAMLWarning`,e,t,n)}},vo=(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)+`…
|
|
43
|
+
`),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 yo(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 bo(e){if(!e)return null;switch(e.type){case`alias`:case`scalar`:case`double-quoted-scalar`:case`single-quoted-scalar`:if(e.source.includes(`
|
|
44
|
+
`))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(bo(t.key)||bo(t.value))return!0}return!1;default:return!0}}function xo(e,t,n){if(t?.type===`flow-collection`){let r=t.end[0];r.indent===e&&(r.source===`]`||r.source===`}`)&&bo(t)&&n(r,`BAD_INDENT`,`Flow end indicator should be more indented than parent`,!0)}}function So(e,t,n){let{uniqueKeys:r}=e.options;if(r===!1)return!1;let i=typeof r==`function`?r:(e,t)=>e===t||Wr(e)&&Wr(t)&&e.value===t.value;return t.some(e=>i(e.key,n))}var Co=`All mapping items must start at the same column`;function wo({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=new(a?.nodeClass??la)(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=yo(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`,Co)),!p.anchor&&!p.tag&&!d){c=p.end,p.comment&&(o.comment?o.comment+=`
|
|
45
|
+
`+p.comment:o.comment=p.comment);continue}(p.newlineAfterProp||bo(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`,Co);n.atKey=!0;let h=p.end,g=u?e(n,u,p,i):t(n,h,l,null,p,i);n.schema.compat&&xo(r.indent,u,i),n.atKey=!1,So(n,o.items,g)&&i(h,`DUPLICATE_KEY`,`Map keys must be unique`);let _=yo(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&&xo(r.indent,f,i),s=c.range[2];let l=new ra(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+=`
|
|
46
|
+
`+_.comment:g.comment=_.comment);let e=new ra(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 To({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=new(a?.nodeClass??da)(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=yo(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&&xo(r.indent,l,i),s=d.range[2],o.items.push(d)}return o.range=[r.offset,s,c??s],o}function Eo(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 Do=`Block collections are not allowed within flow collections`,Oo=e=>e&&(e.type===`block-map`||e.type===`block-seq`);function ko({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=r.start.source===`{`,s=o?`flow map`:`flow sequence`,c=new(a?.nodeClass??(o?la:da))(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=yo(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+=`
|
|
47
|
+
`+h.comment:c.comment=h.comment),u=h.end;continue}!o&&n.options.strict&&bo(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];Ur(t)&&(t=t.value??t.key),t.comment?t.comment+=`
|
|
48
|
+
`+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],Oo(m)&&i(r.range,`BLOCK_IN_FLOW`,Do)}else{n.atKey=!0;let a=h.end,g=f?e(n,f,h,i):t(n,a,d,null,h,i);Oo(f)&&i(g.range,`BLOCK_IN_FLOW`,Do),n.atKey=!1;let _=yo(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?Oo(m)&&i(v.range,`BLOCK_IN_FLOW`,Do):_.comment&&(g.comment?g.comment+=`
|
|
49
|
+
`+_.comment:g.comment=_.comment);let y=new ra(g,v);if(n.options.keepSourceTokens&&(y.srcToken=l),o){let e=c;So(n,e.items,g)&&i(a,`DUPLICATE_KEY`,`Map keys must be unique`),e.items.push(y)}else{let e=new la(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=Eo(p,m,n.options.strict,i);e.comment&&(c.comment?c.comment+=`
|
|
50
|
+
`+e.comment:c.comment=e.comment),c.range=[r.offset,m,e.offset]}else c.range=[r.offset,m,m];return c}function Ao(e,t,n,r,i,a){let o=n.type===`block-map`?wo(e,t,n,r,a):n.type===`block-seq`?To(e,t,n,r,a):ko(e,t,n,r,a),s=o.constructor;return i===`!`||i===s.tagName?(o.tag=s.tagName,o):(i&&(o.tag=i),o)}function jo(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===la.tagName&&s===`map`||o===da.tagName&&s===`seq`)return Ao(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),Ao(e,t,n,i,o)}let l=Ao(e,t,n,i,o,c),u=c.resolve?.(l,e=>i(a,`TAG_RESOLVE_FAILED`,e),t.options)??l,d=qr(u)?u:new $(u);return d.range=l.range,d.tag=o,c?.format&&(d.format=c.format),d}function Mo(e,t,n){let r=t.offset,i=No(t,e.options.strict,n);if(!i)return{value:``,type:null,comment:``,range:[r,r,r]};let a=i.mode===`>`?$.BLOCK_FOLDED:$.BLOCK_LITERAL,o=t.source?Po(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?`
|
|
51
|
+
`.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)+`
|
|
52
|
+
`;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===$.BLOCK_LITERAL?(d+=f+t.slice(c)+r,f=`
|
|
53
|
+
`):t.length>c||r[0]===` `?(f===` `?f=`
|
|
54
|
+
`:!p&&f===`
|
|
55
|
+
`&&(f=`
|
|
56
|
+
|
|
57
|
+
`),d+=f+t.slice(c)+r,f=`
|
|
58
|
+
`,p=!0):r===``?f===`
|
|
59
|
+
`?d+=`
|
|
60
|
+
`:f=`
|
|
61
|
+
`:(d+=f+r,f=` `,p=!1)}switch(i.chomp){case`-`:break;case`+`:for(let e=s;e<o.length;++e)d+=`
|
|
62
|
+
`+o[e][0].slice(c);d[d.length-1]!==`
|
|
63
|
+
`&&(d+=`
|
|
64
|
+
`);break;default:d+=`
|
|
65
|
+
`}let m=r+i.length+t.source.length;return{value:d,type:a,comment:i.comment,range:[r,m,m]}}function No({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 Po(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 Fo(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=$.PLAIN,c=Io(a,l);break;case`single-quoted-scalar`:s=$.QUOTE_SINGLE,c=Lo(a,l);break;case`double-quoted-scalar`:s=$.QUOTE_DOUBLE,c=zo(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=Eo(o,u,t,n);return{value:c,type:s,comment:d.comment,range:[r,u,d.offset]}}function Io(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}`),Ro(e)}function Lo(e,t){return(e[e.length-1]!==`'`||e.length===1)&&t(e.length,`MISSING_CHAR`,`Missing closing 'quote`),Ro(e.slice(1,-1)).replace(/''/g,`'`)}function Ro(e){let t,n;try{t=RegExp(`(.*?)(?<![ ])[ ]*\r?
|
|
66
|
+
`,`sy`),n=RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
|
|
67
|
+
`,`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===`
|
|
68
|
+
`?i+=a:a=`
|
|
69
|
+
`:(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 zo(e,t){let n=``;for(let r=1;r<e.length-1;++r){let i=e[r];if(!(i===`\r`&&e[r+1]===`
|
|
70
|
+
`))if(i===`
|
|
71
|
+
`){let{fold:t,offset:i}=Bo(e,r);n+=t,r=i}else if(i===`\\`){let i=e[++r],a=Vo[i];if(a)n+=a;else if(i===`
|
|
72
|
+
`)for(i=e[r+1];i===` `||i===` `;)i=e[++r+1];else if(i===`\r`&&e[r+1]===`
|
|
73
|
+
`)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+=Ho(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!==`
|
|
74
|
+
`&&!(a===`\r`&&e[r+2]===`
|
|
75
|
+
`)&&(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 Bo(e,t){let n=``,r=e[t+1];for(;(r===` `||r===` `||r===`
|
|
76
|
+
`||r===`\r`)&&!(r===`\r`&&e[t+2]!==`
|
|
77
|
+
`);)r===`
|
|
78
|
+
`&&(n+=`
|
|
79
|
+
`),t+=1,r=e[t+1];return n||=` `,{fold:n,offset:t}}var Vo={0:`\0`,a:`\x07`,b:`\b`,e:`\x1B`,f:`\f`,n:`
|
|
80
|
+
`,r:`\r`,t:` `,v:`\v`,N:`
`,_:`\xA0`,L:`\u2028`,P:`\u2029`," ":` `,'"':`"`,"/":`/`,"\\":`\\`," ":` `};function Ho(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 Uo(e,t,n,r){let{value:i,type:a,comment:o,range:s}=t.type===`block-scalar`?Mo(e,t,r):Fo(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[Lr]:c?Wo(e.schema,i,c,n,r):t.type===`scalar`?Go(e,i,t,r):e.schema[Lr];let u;try{let a=l.resolve(i,e=>r(n??t,`TAG_RESOLVE_FAILED`,e),e.options);u=Wr(a)?a:new $(a)}catch(e){let a=e instanceof Error?e.message:String(e);r(n??t,`TAG_RESOLVE_FAILED`,a),u=new $(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 Wo(e,t,n,r,i){if(n===`!`)return e[Lr];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[Lr])}function Go({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[Lr];if(n.compat){let e=n.compat.find(e=>e.default&&e.test?.test(r))??n[Lr];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 Ko(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 qo={composeNode:Jo,composeEmptyNode:Yo};function Jo(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=Xo(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=Uo(e,t,c,r),s&&(l.anchor=s.source.substring(1));break;case`block-map`:case`block-seq`:case`flow-collection`:try{l=jo(qo,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??=Yo(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&&(!Wr(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 Yo(e,t,n,r,{spaceBefore:i,comment:a,anchor:o,tag:s,end:c},l){let u=Uo(e,{type:`scalar`,offset:Ko(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 Xo({options:e},{offset:t,source:n,end:r},i){let a=new hi(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=Eo(r,o,e.strict,i);return a.range=[t,o,s.offset],s.comment&&(a.comment=s.comment),a}function Zo(e,t,{offset:n,start:r,value:i,end:a},o){let s=new po(void 0,Object.assign({_directives:t},e)),c={atKey:!1,atRoot:!0,directives:s.directives,options:s.options,schema:s.schema},l=yo(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?Jo(c,i,l,o):Yo(c,l.end,r,null,l,o);let u=s.contents.range[2],d=Eo(a,u,!1,o);return d.comment&&(s.comment=d.comment),s.range=[n,u,d.offset],s}function Qo(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 $o(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?`
|
|
81
|
+
|
|
82
|
+
`:`
|
|
83
|
+
`)+(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 es=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(e,t,n,r)=>{let i=Qo(e);r?this.warnings.push(new _o(i,t,n)):this.errors.push(new go(i,t,n))},this.directives=new si({version:e.version||`1.2`}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:r}=$o(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(Kr(i)&&!i.flow&&i.items.length>0){let e=i.items[0];Ur(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:$o(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=Qo(e);i[0]+=t,this.onError(i,`BAD_DIRECTIVE`,n,r)}),this.prelude.push(e.source),this.atDirectives=!0;break;case`document`:{let t=Zo(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 go(Qo(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 go(Qo(e),`UNEXPECTED_TOKEN`,`Unexpected doc-end without preceding document`));break}this.doc.directives.docEnd=!0;let t=Eo(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 go(Qo(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 po(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}}},ts=Symbol(`break visit`),ns=Symbol(`skip children`),rs=Symbol(`remove item`);function is(e,t){`type`in e&&e.type===`document`&&(e={start:e.start,value:e.value}),as(Object.freeze([]),e,t)}is.BREAK=ts,is.SKIP=ns,is.REMOVE=rs,is.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},is.parentCollection=(e,t)=>{let n=is.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 as(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=as(Object.freeze(e.concat([[i,t]])),a.items[t],n);if(typeof r==`number`)t=r-1;else if(r===ts)return ts;else r===rs&&(a.items.splice(t,1),--t)}typeof r==`function`&&i===`key`&&(r=r(t,e))}}return typeof r==`function`?r(t,e):r}function os(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`
|
|
84
|
+
`:case`\r
|
|
85
|
+
`: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 ss(e){switch(e){case void 0:case` `:case`
|
|
86
|
+
`:case`\r`:case` `:return!0;default:return!1}}var cs=new Set(`0123456789ABCDEFabcdef`),ls=new Set(`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()`),us=new Set(`,[]{}`),ds=new Set(` ,[]{}
|
|
87
|
+
\r `),fs=e=>!e||ds.has(e),ps=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===`
|
|
88
|
+
`?!0:t===`\r`?this.buffer[e+1]===`
|
|
89
|
+
`:!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===`
|
|
90
|
+
`||!t&&!this.atEnd)return e+n+1}return t===`
|
|
91
|
+
`||n>=this.indentNext||!t&&!this.atEnd?e+n:-1}if(t===`-`||t===`.`){let t=this.buffer.substr(e,3);if((t===`---`||t===`...`)&&ss(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(`
|
|
92
|
+
`,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===`...`)&&ss(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&&!ss(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===`:`)&&ss(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(fs),`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(`...`))&&ss(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(fs),`flow`;case`"`:case`'`:return this.flowKey=!0,yield*this.parseQuotedScalar();case`:`:{let e=this.charAt(1);if(this.flowKey||ss(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(`
|
|
93
|
+
`,this.pos);if(r!==-1){for(;r!==-1;){let e=this.continueScalar(r+1);if(e===-1)break;r=n.indexOf(`
|
|
94
|
+
`,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=>ss(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`
|
|
95
|
+
`:e=r,t=0;break;case`\r`:{let e=this.buffer[r+1];if(!e&&!this.atEnd)return this.setNext(`block-scalar`);if(e===`
|
|
96
|
+
`)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(`
|
|
97
|
+
`,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===`
|
|
98
|
+
`;)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===`
|
|
99
|
+
`&&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(ss(r)||e&&us.has(r))break;t=n}else if(ss(r)){let i=this.buffer[n+1];if(r===`\r`&&(i===`
|
|
100
|
+
`?(n+=1,r=`
|
|
101
|
+
`,i=this.buffer[n+1]):t=n),i===`#`||e&&us.has(i))break;if(r===`
|
|
102
|
+
`){let e=this.continueScalar(n+1);if(e===-1)break;n=Math.max(n,e-2)}}else{if(e&&us.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(fs),e+=yield*this.pushSpaces(!0);continue loop;case`-`:case`?`:case`:`:{let t=this.flowLevel>0,n=this.charAt(1);if(ss(n)||t&&us.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(;!ss(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(ls.has(t))t=this.buffer[++e];else if(t===`%`&&cs.has(this.buffer[e+1])&&cs.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===`
|
|
103
|
+
`?yield*this.pushCount(1):e===`\r`&&this.charAt(1)===`
|
|
104
|
+
`?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)}},ms=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 hs(e,t){for(let n=0;n<e.length;++n)if(e[n].type===t)return!0;return!1}function gs(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 _s(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 vs(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 ys(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 bs(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 xs(e){if(e.start.type===`flow-seq-start`)for(let t of e.items)t.sep&&!t.value&&!hs(t.start,`explicit-key-ind`)&&!hs(t.sep,`map-value-ind`)&&(t.key&&(t.value=t.key),delete t.key,_s(t.value)?t.value.end?bs(t.value.end,t.sep):t.value.end=t.sep:bs(t.start,t.sep),delete t.sep)}var Ss=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 ps,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=os(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`&&xs(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&&gs(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`:gs(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=ys(vs(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(`
|
|
105
|
+
`)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
|
|
106
|
+
`,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)){bs(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(hs(t.start,`newline`))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let e=ys(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(hs(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(_s(t.key)&&!hs(t.sep,`newline`)){let e=ys(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]}):hs(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&&!hs(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)){bs(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||hs(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=ys(vs(t));xs(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(`
|
|
107
|
+
`)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
|
|
108
|
+
`,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=ys(vs(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=ys(vs(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 Cs(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new ms||null,prettyErrors:t}}function ws(e,t={}){let{lineCounter:n,prettyErrors:r}=Cs(t),i=new Ss(n?.addNewLine),a=new es(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 go(t.range.slice(0,2),`MULTIPLE_DOCS`,`Source contains multiple documents; please use YAML.parseAllDocuments()`));break}return r&&n&&(o.errors.forEach(vo(e,n)),o.warnings.forEach(vo(e,n))),o}function Ts(e,t,n){let r;typeof t==`function`?r=t:n===void 0&&t&&typeof t==`object`&&(n=t);let i=ws(e,n);if(!i)return null;if(i.warnings.forEach(e=>qi(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 Es(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 Vr(e)&&!r?e.toString(n):new po(e,r,n).toString(n)}var Ds=[{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 Os(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 ks(e){let t=e.trim().match(/^0 (\d{1,2})/),n=t?parseInt(t[1]??`0`,10):0;return isNaN(n)?0:Math.min(23,Math.max(0,n))}function As(e){let t=e.trim().match(/^0 \d{1,2} \* \* (\d)$/),n=t?parseInt(t[1]??`0`,10):0;return isNaN(n)?0:Math.min(6,Math.max(0,n))}function js(e){let t=e.trim().match(/^0 \d{1,2} (\d{1,2}) \* \*$/),n=t?parseInt(t[1]??`1`,10):1;return isNaN(n)?1:Math.min(31,Math.max(1,n))}function Ms(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 Ns=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`];function Ps(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 ${Ns[n]??`Sunday`} at ${a}`;case`monthly`:return`Runs on day ${r} of every month at ${a}`;case`advanced`:return i.trim()?Fs(i)||`Runs on schedule: ${i.trim()}`:`Enter a valid cron expression`;default:return``}}function Fs(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=0;e<5;e++){let r=t[e];if(r===`*`||/^\*\/\d+$/.test(r))continue;let i=parseInt(r,10);if(isNaN(i))return`Field ${e+1} is not a valid number or wildcard`;let[a,o]=n[e];if(i<a||i>o)return`Field ${e+1} must be ${a}–${o}`}return null}function Is(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 Ls(e,t){let n={};try{let e=Ts(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 Rs(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 Es(t,{lineWidth:0})}function zs(){return{fileName:``,name:``,description:``,enabled:!1,schedule:`0 9 * * *`,actionKind:`command`,commandShell:`echo hello`,promptBody:``,workflowRef:``,rawYaml:``,unknownKeys:{}}}var Bs=u(`<button class="btn btn-secondary">Cancel</button> <button class="btn btn-primary"><!> </button>`,1),Vs=u(`<span class="field-error svelte-m3wayn" role="alert"> </span>`),Hs=u(`<span class="field-hint svelte-m3wayn">Lowercase letters, digits, hyphens. Must end in .yml, .yaml, or .md</span>`),Us=u(`<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>`),Ws=u(`<option> </option>`),Gs=u(`<option> </option>`),Ks=u(`<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),qs=u(`<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),Js=u(`<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>`),Ys=u(`<span class="field-error svelte-m3wayn" role="alert"> </span>`),Xs=u(`<span class="field-hint svelte-m3wayn">5 fields: minute hour day-of-month month day-of-week</span>`),Zs=u(`<div class="field-group svelte-m3wayn" style="margin-top: var(--space-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>`),Qs=u(`<div class="field-group svelte-m3wayn" style="margin-top: var(--space-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>`),$s=u(`<div class="field-group svelte-m3wayn" style="margin-top: var(--space-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>`),ec=u(`<p class="unknown-keys-notice svelte-m3wayn">This task file contains additional fields
|
|
109
|
+
(<code class="svelte-m3wayn"> </code>)
|
|
110
|
+
that are not editable here but will be preserved when saved.</p>`),tc=u(`<p class="save-error svelte-m3wayn" role="alert"> </p>`),nc=u(`<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 rc(e,n){U(n,!0);let a=[],u=V(()=>n.draft!==null&&n.draft.fileName===``),d=W(``),p=W(``),h=W(!1),g=W(`command`),_=W(`echo hello`),b=W(``),C=W(``),O=W(`daily`),P=W(9),F=W(1),R=W(1),z=W(`0 9 * * *`),B=W(!1),ee=V(()=>J(u)?Is(J(d)):null),H=V(()=>J(O)===`advanced`?Fs(J(z)):null),te=V(()=>Ms(J(O),J(P),J(F),J(R),J(z))),ne=V(()=>Ps(J(O),J(P),J(F),J(R),J(z))),Y=V(()=>!n.saving&&(J(u)?J(ee)===null&&J(d).trim()!==``:!0)&&J(H)===null),re=W(null);o(()=>{if(n.draft===J(re)||(D(re,n.draft,!0),!n.draft))return;D(d,``),D(p,n.draft.description,!0),D(h,n.draft.enabled,!0),D(g,n.draft.actionKind,!0),D(_,n.draft.commandShell,!0),D(b,n.draft.promptBody,!0),D(C,n.draft.workflowRef,!0);let e=Os(n.draft.schedule);D(O,e,!0),D(P,ks(n.draft.schedule),!0),D(F,As(n.draft.schedule),!0),D(R,js(n.draft.schedule),!0),D(z,n.draft.schedule,!0),D(B,e===`advanced`)});function ie(){if(!J(Y)||!n.draft)return;let e=J(u)?J(d).trim():n.draft.fileName,t={...n.draft,fileName:e,description:J(p),enabled:J(h),actionKind:J(g),commandShell:J(_),promptBody:J(b),workflowRef:J(C),schedule:J(te)};n.onSave(e,Rs(t))}function ae(e){let t=e.currentTarget.value;D(O,t,!0),D(B,t===`advanced`)}{let o=e=>{var r=Bs(),i=x(r),a=m(i,2),o=y(a),c=e=>{Q(e,{})};f(o,e=>{n.saving&&e(c)});var l=m(o);E(a),v(()=>{i.disabled=n.saving,a.disabled=!J(Y),M(l,` ${J(u)?`Create`:`Save`}`)}),s(`click`,i,function(...e){n.onClose?.apply(this,e)}),s(`click`,a,ie),t(e,r)},L=V(()=>J(u)?`New automation`:`Edit — ${n.draft?.fileName??``}`);Ke(e,{get open(){return n.open},get title(){return J(L)},get onClose(){return n.onClose},width:`36rem`,footer:o,children:(e,o)=>{var L=j(),U=x(L),W=e=>{var o=nc(),j=y(o),L=e=>{var r=Us();let i;var a=m(y(r),2);T(a);var o=m(a,2),s=e=>{var n=Vs(),r=y(n,!0);E(n),v(()=>M(r,J(ee))),t(e,n)},c=e=>{t(e,Hs())};f(o,e=>{J(ee)&&J(d).length>0?e(s):e(c,-1)}),E(r),v(()=>{i=q(r,1,`field-group svelte-m3wayn`,null,i,{"field-group--error":J(ee)!==null&&J(d).length>0}),a.disabled=n.saving}),G(a,()=>J(d),e=>D(d,e)),t(e,r)};f(j,e=>{J(u)&&e(L)});var U=m(j,2),W=m(y(U),2);T(W),E(U);var te=m(U,2),Y=y(te);T(Y),K(4),E(te);var re=m(te,2),X=m(y(re),2),oe=y(X);i(oe,21,()=>Ds,e=>e.id,(e,n)=>{var r=Ws(),i=y(r,!0);E(r);var a={};v(()=>{M(i,J(n).label),a!==(a=J(n).id)&&(r.value=(r.__value=J(n).id)??``)}),t(e,r)}),E(oe);var se;k(oe);var ce=m(oe,2),le=e=>{var n=Js(),a=y(n),o=e=>{var n=Ks(),a=m(x(n),2);i(a,21,()=>Ns,r,(e,n,r)=>{var i=Gs(),a=y(i,!0);E(i),i.value=i.__value=r,v(()=>M(a,J(n))),t(e,i)}),E(a),A(a,()=>J(F),e=>D(F,e)),t(e,n)};f(a,e=>{J(O)===`weekly`&&e(o)});var s=m(a,2),c=e=>{var n=qs(),r=m(x(n),2);T(r),G(r,()=>J(R),e=>D(R,e)),t(e,n)};f(s,e=>{J(O)===`monthly`&&e(c)});var l=m(s,4);T(l),E(n),G(l,()=>J(P),e=>D(P,e)),t(e,n)};f(ce,e=>{(J(O)===`daily`||J(O)===`weekly`||J(O)===`monthly`)&&e(le)}),E(X);var ue=m(X,2);let de;var fe=y(ue,!0);E(ue);var pe=m(ue,2),me=m(y(pe),2),he=m(y(me),2);T(he);let ge;var _e=m(he,2),ve=e=>{var n=Ys(),r=y(n,!0);E(n),v(()=>M(r,J(H))),t(e,n)},ye=e=>{t(e,Xs())};f(_e,e=>{J(H)?e(ve):e(ye,-1)}),E(me),E(pe),E(re);var be=m(re,2),xe=m(y(be),2),Se=y(xe),Ce=y(Se);T(Ce),Ce.value=Ce.__value=`command`,K(),E(Se);var we=m(Se,2),Te=y(we);T(Te),Te.value=Te.__value=`prompt`,K(),E(we);var Ee=m(we,2),De=y(Ee);T(De),De.value=De.__value=`workflow`,K(),E(Ee),E(xe);var Z=m(xe,2),Oe=e=>{var n=Zs(),r=m(y(n),2);T(r),K(2),E(n),G(r,()=>J(_),e=>D(_,e)),t(e,n)},ke=e=>{var n=Qs(),r=m(y(n),2);c(r),E(n),G(r,()=>J(b),e=>D(b,e)),t(e,n)},Ae=e=>{var n=$s(),r=m(y(n),2);T(r),E(n),G(r,()=>J(C),e=>D(C,e)),t(e,n)};f(Z,e=>{J(g)===`command`?e(Oe):J(g)===`prompt`?e(ke,1):e(Ae,-1)}),E(be);var je=m(be,2),Me=e=>{var r=ec(),i=m(y(r)),a=y(i,!0);E(i),K(),E(r),v(e=>M(a,e),[()=>Object.keys(n.draft.unknownKeys).join(`, `)]),t(e,r)},Ne=V(()=>Object.keys(n.draft.unknownKeys).length>0);f(je,e=>{J(Ne)&&e(Me)});var Pe=m(je,2),Fe=e=>{var r=tc(),i=y(r,!0);E(r),v(()=>M(i,n.saveError)),t(e,r)};f(Pe,e=>{n.saveError&&e(Fe)}),E(o),v(()=>{W.disabled=n.saving,Y.disabled=n.saving,re.disabled=n.saving,se!==(se=J(O))&&(oe.value=(oe.__value=J(O))??``,S(oe,J(O))),de=q(ue,1,`schedule-summary svelte-m3wayn`,null,de,{"schedule-summary--error":J(H)!==null}),M(fe,J(ne)),ge=q(he,1,`field-input field-mono svelte-m3wayn`,null,ge,{"field-input--error":J(H)!==null}),he.disabled=n.saving,be.disabled=n.saving}),l(`submit`,o,e=>{e.preventDefault(),ie()}),G(W,()=>J(p),e=>D(p,e)),w(Y,()=>J(h),e=>D(h,e)),s(`change`,oe,ae),s(`input`,he,()=>{D(O,`advanced`),D(B,!0)}),G(he,()=>J(z),e=>D(z,e)),I(`open`,`toggle`,pe,e=>D(B,e),()=>J(B)),N(a,[],Ce,()=>J(g),e=>D(g,e)),N(a,[],Te,()=>J(g),e=>D(g,e)),N(a,[],De,()=>J(g),e=>D(g,e)),t(e,o)};f(U,e=>{n.draft!==null&&e(W)}),t(e,L)},$$slots:{footer:!0,default:!0}})}L()}a([`click`,`change`,`input`]);var ic=u(`<div class="automation-desc svelte-1xltcby"> </div>`),ac=u(`<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></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-ghost btn-sm">Edit</button> <button class="btn btn-ghost btn-sm">Delete</button></div></div></div>`),oc=u(`<div class="automation-list svelte-1xltcby"></div>`),sc=d(`<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>`),cc=u(`<p>Loading automations...</p>`),lc=u(`<p class="text-danger svelte-1xltcby"> </p> <button class="btn btn-secondary btn-sm empty-state-btn svelte-1xltcby">Try Again</button>`,1),uc=u(`<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),dc=u(`<div class="panel" role="tabpanel"><div class="panel-header"><div><h2>Automations</h2> <p class="panel-subtitle">Scheduled tasks from <code>~/.openpalm/knowledge/tasks/</code>.</p></div> <div class="panel-header-actions"><button class="btn btn-secondary btn-sm">New task</button> <button class="btn btn-secondary btn-sm"><!> Refresh</button></div></div> <div class="panel-body"><!></div></div> <!>`,1);function fc(e,n){U(n,!0);let a=V(()=>n.data!==null&&Array.isArray(n.data.automations)&&n.data.automations.length>0),o=W(!1),c=W(null),l=W(!1),u=W(``);function d(){D(c,zs(),!0),D(u,``),D(o,!0)}async function p(e){if(!J(l)){D(l,!0),D(u,``);try{let{content:t}=await Ge(e);D(c,Ls(e,t),!0),D(o,!0)}catch(e){Z.push(`error`,e instanceof Error?e.message:`Failed to read task file.`)}finally{D(l,!1)}}}function h(){D(o,!1),D(c,null),D(u,``)}async function g(e,t){D(l,!0),D(u,``);try{await Re(e,t),Z.push(`success`,`Saved ${e}. Refreshing…`),h(),n.onRefresh()}catch(e){D(u,e instanceof Error?e.message:`Failed to save task file.`,!0)}finally{D(l,!1)}}async function _(e){if(!(J(l)||!confirm(`Delete task file "${e}"?`))){D(l,!0);try{await We(e),Z.push(`success`,`Deleted ${e}.`),n.onRefresh()}catch(e){Z.push(`error`,e instanceof Error?e.message:`Failed to delete task file.`)}finally{D(l,!1)}}}function b(e){switch(Os(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}}var S=dc(),C=x(S),w=y(C),T=m(y(w),2),k=y(T),A=m(k,2),N=y(A),P=e=>{Q(e,{})};f(N,e=>{n.loading&&e(P)}),K(),E(A),E(T),E(w);var F=m(w,2),I=y(F),R=e=>{var a=oc();i(a,21,()=>n.data.automations,r,(e,r)=>{var i=ac(),a=y(i),o=y(a),c=y(o),u=y(c),d=m(u);let h;var g=y(d,!0);E(d);var x=m(d,2),S=y(x,!0);E(x),E(c);var C=m(c,2),w=e=>{var n=ic(),i=y(n,!0);E(n),v(()=>M(i,J(r).description)),t(e,n)};f(C,e=>{J(r).description&&e(w)}),E(o);var T=m(o,2),D=y(T),k=y(D,!0);E(D),E(T),E(a);var A=m(a,2),j=y(A),N=y(j,!0);E(j);var P=m(j,2),F=y(P),I=m(F,2);E(P),E(A),E(i),v(e=>{M(u,`${J(r).name??``} `),h=q(d,1,`badge`,null,h,{"badge-enabled":J(r).enabled,"badge-disabled":!J(r).enabled}),M(g,J(r).enabled?`Enabled`:`Disabled`),M(S,J(r).action.type),M(k,e),M(N,J(r).fileName),F.disabled=J(l)||!n.tokenStored,I.disabled=J(l)||!n.tokenStored,O(I,`aria-label`,`Delete ${J(r).fileName??``}`)},[()=>b(J(r).schedule)]),s(`click`,F,()=>void p(J(r).fileName)),s(`click`,I,()=>void _(J(r).fileName)),t(e,i)}),E(a),t(e,a)},z=e=>{xn(e,{icon:e=>{t(e,sc())},children:(e,r)=>{var i=j(),a=x(i),o=e=>{t(e,cc())},c=e=>{var r=lc(),i=x(r),a=y(i,!0);E(i);var o=m(i,2);v(()=>M(a,n.error)),s(`click`,o,function(...e){n.onRefresh?.apply(this,e)}),t(e,r)},l=e=>{var r=uc(),i=m(x(r),2);K(2),v(()=>i.disabled=!n.tokenStored),s(`click`,i,d),t(e,r)};f(a,e=>{n.loading?e(o):n.error?e(c,1):e(l,-1)}),t(e,i)},$$slots:{icon:!0,default:!0}})};f(I,e=>{J(a)&&n.data?e(R):e(z,-1)}),E(F),E(C),rc(m(C,2),{get open(){return J(o)},get draft(){return J(c)},get saving(){return J(l)},get saveError(){return J(u)},onClose:h,onSave:(e,t)=>void g(e,t)}),v(()=>{k.disabled=J(l)||!n.tokenStored,A.disabled=n.loading||!n.tokenStored}),s(`click`,k,d),s(`click`,A,function(...e){n.onRefresh?.apply(this,e)}),t(e,S),L()}a([`click`]);var pc=u(`<div class="empty svelte-1ykz2x6"> </div>`),mc=u(`<span class="provider-meta svelte-1ykz2x6"> </span>`),hc=u(`<button type="button" class="provider-pick svelte-1ykz2x6"><span class="provider-name svelte-1ykz2x6"> </span> <!></button>`),gc=u(`<!> <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),_c=u(`<input type="search" class="form-input add-search svelte-1ykz2x6" placeholder="Search providers…" autocomplete="off"/> <div class="pick-list svelte-1ykz2x6"><!></div>`,1);function vc(e,n){U(n,!0);let r=W(``),a=V(()=>{let e=J(r).trim().toLowerCase();return e?n.providers.filter(t=>t.name.toLowerCase().includes(e)||t.id.toLowerCase().includes(e)):n.providers});Ke(e,{open:!0,title:`Add provider`,get onClose(){return n.onclose},children:(e,o)=>{var c=_c(),l=x(c);T(l),B(l,!0);var u=m(l,2),d=y(u),p=e=>{var n=pc(),i=y(n);E(n),v(()=>M(i,`No providers match "${J(r)??``}".`)),t(e,n)},h=e=>{var r=gc(),o=x(r);i(o,17,()=>J(a),e=>e.id,(e,r)=>{var i=hc(),a=y(i),o=y(a,!0);E(a);var c=m(a,2),l=e=>{var n=mc(),i=y(n);E(n),v(()=>M(i,`${J(r).modelCount??``} models`)),t(e,n)};f(c,e=>{J(r).modelCount>0&&e(l)}),E(i),v(()=>M(o,J(r).name)),s(`click`,i,()=>n.onselect(J(r))),t(e,i)}),s(`click`,m(o,2),function(...e){n.oncustom?.apply(this,e)}),t(e,r)};f(d,e=>{J(a).length===0&&J(r)?e(p):e(h,-1)}),E(u),G(l,()=>J(r),e=>D(r,e)),t(e,c)},$$slots:{default:!0}}),L()}a([`click`]);var yc=u(`<button type="button" class="connect-back svelte-1bnolke" aria-label="Back">←</button>`),bc=u(`<button type="button" class="btn btn-primary"><!> Continue</button>`),xc=u(`<div class="feedback feedback--error"><span> </span></div>`),Sc=u(`<button type="button" class="auth-method-card svelte-1bnolke"><span class="method-label svelte-1bnolke"> </span> <span class="method-type svelte-1bnolke"> </span></button>`),Cc=u(`<p class="field-hint"> </p> <div class="auth-method-group svelte-1bnolke"></div>`,1),wc=u(`<input id="connect-apikey" type="password" class="form-input" placeholder="API key" autocomplete="off"/>`),Tc=u(`<p class="field-hint"> </p> <!>`,1),Ec=u(`<input id="connect-code" type="text" class="form-input" placeholder="Authorization code" autocomplete="off"/>`),Dc=u(`<p class="field-hint">Visit <a target="_blank" rel="noopener" class="text-link">this link</a> </p> <!>`,1),Oc=u(`<p class="field-hint"> </p>`),kc=u(`<p class="field-hint">Open <a target="_blank" rel="noopener" class="text-link"> </a> to continue.</p>`),Ac=u(`<!> <!> <p class="field-hint"><!> Waiting for sign-in to complete…</p>`,1),jc=u(`<!> <!>`,1);function Mc(n,r){U(r,!0);let a=V(()=>r.provider.authMethods.filter(e=>!e.label.toLowerCase().includes(`headless`))),o=W(e(c(r.provider)));function c(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 l=W(null),u=W(``),d=W(``),p=W(null),h=W(null),g=W(!1),_=W(null),b;function S(){b?.abort(),b=void 0}F(S);let C=V(()=>J(o)===`method-picker`?`Connect ${r.provider.name}`:J(l)?`Login with ${J(l).label}`:`Connect ${r.provider.name}`),w=V(()=>J(o)!==`method-picker`&&J(a).length>1);function k(e){D(l,e,!0),D(u,``),D(d,``),D(p,null),D(h,null),D(_,null),e.type===`oauth`?N(e):D(o,`api-form`)}function A(){S(),D(l,null),D(u,``),D(d,``),D(p,null),D(h,null),D(_,null),D(g,!1),D(o,`method-picker`)}async function N(e){D(g,!0),D(_,null);try{let t=await(await fetch(`/admin/providers/oauth/start`,{method:`POST`,headers:{...Fe(),"content-type":`application/json`},body:JSON.stringify({providerId:r.provider.id,methodIndex:String(e.index)})})).json();if(!t.ok||!t.oauth){D(_,t.message??`OAuth start failed.`,!0),D(o,`method-picker`);return}if(D(p,t.oauth.url,!0),D(h,t.oauth.instructions??null,!0),window.open(t.oauth.url,`_blank`,`noopener`),t.oauth.mode===`auto`){D(o,`oauth-auto`),b=new AbortController;let e=t.oauth.providerId,n=t.oauth.methodIndex;fetch(`/admin/providers/oauth/${encodeURIComponent(e)}/callback`,{method:`POST`,headers:{...Fe(),"content-type":`application/json`},body:JSON.stringify({method:n}),signal:b.signal}).then(e=>{J(o)===`oauth-auto`&&(e.ok?R(`Signed in successfully.`):(D(_,`Sign-in failed (${e.status}). Try again.`),D(o,`method-picker`)))}).catch(e=>{J(o)===`oauth-auto`&&(e instanceof DOMException&&e.name===`AbortError`||(D(_,e instanceof Error?e.message:`Authorization failed.`,!0),D(o,`method-picker`)))})}else D(o,`oauth-code`)}catch(e){D(_,e instanceof Error?e.message:`OAuth start failed.`,!0),D(o,`method-picker`)}finally{D(g,!1)}}async function P(){if(!J(u).trim()){D(_,`Enter an API key.`);return}D(g,!0),D(_,null);try{let e=await fetch(`/admin/opencode/providers/${encodeURIComponent(r.provider.id)}/auth`,{method:`POST`,headers:{...Fe(),"content-type":`application/json`},body:JSON.stringify({mode:`api_key`,apiKey:J(u).trim()})});if(!e.ok){D(_,(await e.json().catch(()=>({}))).message??`Save failed (${e.status})`,!0);return}R(`API key saved.`)}catch(e){D(_,e instanceof Error?e.message:`Request failed.`,!0)}finally{D(g,!1)}}async function I(){if(!J(l)||!J(d).trim()){D(_,`Paste the authorization code.`);return}D(g,!0),D(_,null);try{let e=await fetch(`/admin/providers/oauth/finish`,{method:`POST`,headers:{...Fe(),"content-type":`application/json`},body:JSON.stringify({providerId:r.provider.id,methodIndex:J(l).index,code:J(d).trim()})});if(!e.ok){D(_,(await e.json().catch(()=>({}))).message??`Submission failed (${e.status})`,!0);return}R(`Signed in successfully.`)}catch(e){D(_,e instanceof Error?e.message:`Request failed.`,!0)}finally{D(g,!1)}}function R(e){r.onaction?.({ok:!0,message:e,selectedProviderId:r.provider.id})}function z(e){e.key===`Enter`&&(J(o)===`api-form`?P():J(o)===`oauth-code`&&I())}Ke(n,{open:!0,get title(){return J(C)},onClose:()=>r.onclose?.(),headerStart:e=>{var n=j(),r=x(n),i=e=>{var n=yc();s(`click`,n,A),t(e,n)};f(r,e=>{J(w)&&e(i)}),t(e,n)},footer:e=>{var n=j(),r=x(n),i=e=>{var n=bc(),r=y(n),i=e=>{Q(e,{})};f(r,e=>{J(g)&&e(i)}),K(),E(n),v(()=>n.disabled=J(g)),s(`click`,n,()=>J(o)===`api-form`?void P():void I()),t(e,n)};f(r,e=>{(J(o)===`api-form`||J(o)===`oauth-code`)&&e(i)}),t(e,n)},children:(e,n)=>{var c=jc(),b=x(c),S=e=>{var n=xc(),r=y(n),i=y(r,!0);E(r),E(n),v(()=>M(i,J(_))),t(e,n)};f(b,e=>{J(_)&&e(S)});var C=m(b,2),w=e=>{var n=Cc(),o=x(n),c=y(o);E(o);var l=m(o,2);i(l,21,()=>J(a),e=>e.index,(e,n)=>{var r=Sc(),i=y(r),a=y(i,!0);E(i);var o=m(i,2),c=y(o,!0);E(o),E(r),v(()=>{M(a,J(n).label),M(c,J(n).type===`oauth`?`Browser sign-in`:`API key`)}),s(`click`,r,()=>k(J(n))),t(e,r)}),E(l),v(()=>M(c,`Select login method for ${r.provider.name??``}.`)),t(e,n)},A=e=>{var n=Tc(),i=x(n),a=y(i);E(i),rt(m(i,2),{get label(){return`${r.provider.name??``} API key`},for:`connect-apikey`,children:(e,n)=>{var r=wc();T(r),v(()=>r.disabled=J(g)),s(`keydown`,r,z),G(r,()=>J(u),e=>D(u,e)),t(e,r)},$$slots:{default:!0}}),v(()=>M(a,`Enter your ${r.provider.name??``} API key to connect your account and use ${r.provider.name??``} models in OpenCode.`)),t(e,n)},j=e=>{var n=Dc(),i=x(n),a=m(y(i)),o=m(a);E(i);var c=m(i,2);{let e=V(()=>J(l)?.label??`OAuth`);rt(c,{get label(){return`${J(e)??``} authorization code`},for:`connect-code`,children:(e,n)=>{var r=Ec();T(r),v(()=>r.disabled=J(g)),s(`keydown`,r,z),G(r,()=>J(d),e=>D(d,e)),t(e,r)},$$slots:{default:!0}})}v(()=>{O(a,`href`,J(p)??`#`),M(o,` to collect your authorization code to connect your account and use ${r.provider.name??``} models in OpenCode.`)}),t(e,n)},N=e=>{var n=Ac(),r=x(n),i=e=>{var n=Oc(),r=y(n,!0);E(n),v(()=>M(r,J(h))),t(e,n)};f(r,e=>{J(h)&&e(i)});var a=m(r,2),o=e=>{var n=kc(),r=m(y(n)),i=y(r,!0);E(r),K(),E(n),v(()=>{O(r,`href`,J(p)),M(i,J(p))}),t(e,n)};f(a,e=>{J(p)&&e(o)});var s=m(a,2);Q(y(s),{}),K(),E(s),t(e,n)};f(C,e=>{J(o)===`method-picker`?e(w):J(o)===`api-form`?e(A,1):J(o)===`oauth-code`?e(j,2):J(o)===`oauth-auto`&&e(N,3)}),t(e,c)},$$slots:{headerStart:!0,footer:!0,default:!0}}),L()}a([`click`,`keydown`]);var Nc=u(`<button type="button" class="btn btn-primary"><!> Continue</button>`),Pc=u(`<div class="feedback feedback--error"><span> </span></div>`),Fc=u(`<input id="custom-id" type="text" class="form-input" placeholder="my-provider" autocomplete="off"/>`),Ic=u(`<input id="custom-name" type="text" class="form-input" placeholder="My Provider" autocomplete="off"/>`),Lc=u(`<input id="custom-url" type="url" class="form-input" placeholder="https://example.com/v1" autocomplete="off"/>`),Rc=u(`<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 zc(e,n){U(n,!0);let r=W(``),i=W(``),a=W(``),o=W(``),c=W(!1),l=W(null);async function u(){let e=J(r).trim(),t=J(i).trim(),s=J(a).trim();if(!e||!t||!s){D(l,`ID, display name, and base URL are required.`);return}D(c,!0),D(l,null);try{let r=await fetch(`/admin/providers/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{...Fe(),"content-type":`application/json`},body:JSON.stringify({kind:`register-custom`,displayName:t,baseURL:s,apiKey:J(o).trim()||void 0,modelsJson:`[]`,headersJson:`[]`,confirmOverwrite:`false`})}),i=await r.json();if(!r.ok||i.ok===!1){D(l,i.message??`Registration failed.`,!0);return}n.onaction?.(i)}catch(e){D(l,e instanceof Error?e.message:`Request failed.`,!0)}finally{D(c,!1)}}function d(e){e.key===`Enter`&&!J(c)&&u()}Ke(e,{open:!0,title:`Add custom provider`,onClose:()=>n.onclose?.(),footer:e=>{var n=Nc(),r=y(n),i=e=>{Q(e,{})};f(r,e=>{J(c)&&e(i)}),K(),E(n),v(()=>n.disabled=J(c)),s(`click`,n,()=>void u()),t(e,n)},children:(e,n)=>{var u=Rc(),p=m(x(u),2),h=e=>{var n=Pc(),r=y(n),i=y(r,!0);E(r),E(n),v(()=>M(i,J(l))),t(e,n)};f(p,e=>{J(l)&&e(h)});var g=m(p,2),_=y(g);rt(_,{label:`Provider ID`,for:`custom-id`,children:(e,n)=>{var i=Fc();T(i),v(()=>i.disabled=J(c)),s(`keydown`,i,d),G(i,()=>J(r),e=>D(r,e)),t(e,i)},$$slots:{default:!0}});var b=m(_,2);rt(b,{label:`Display name`,for:`custom-name`,children:(e,n)=>{var r=Ic();T(r),v(()=>r.disabled=J(c)),s(`keydown`,r,d),G(r,()=>J(i),e=>D(i,e)),t(e,r)},$$slots:{default:!0}});var S=m(b,2);rt(S,{label:`Base URL`,for:`custom-url`,children:(e,n)=>{var r=Lc();T(r),v(()=>r.disabled=J(c)),s(`keydown`,r,d),G(r,()=>J(a),e=>D(a,e)),t(e,r)},$$slots:{default:!0}});var C=m(S,2),w=m(y(C),2);T(w),E(C),E(g),v(()=>w.disabled=J(c)),s(`keydown`,w,d),G(w,()=>J(o),e=>D(o,e)),t(e,u)},$$slots:{footer:!0,default:!0}}),L()}a([`click`,`keydown`]);var Bc=u(`<button type="button" class="btn btn-primary">Done</button>`),Vc=u(`<button type="button" class="btn btn-primary"><!> Import</button>`),Hc=u(`<li class="svelte-15y8pah">Activated in OpenCode: <strong> </strong></li>`),Uc=u(`<li class="svelte-15y8pah">Skipped (already configured): <strong> </strong></li>`),Wc=u(`<li class="svelte-15y8pah"><span class="muted svelte-15y8pah"> </span></li>`),Gc=u(`<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),Kc=u(`<li class="svelte-15y8pah"><code class="svelte-15y8pah"> </code> <span class="muted svelte-15y8pah"> </span></li>`),qc=u(`<li class="svelte-15y8pah"><code class="svelte-15y8pah"> </code> <span class="muted svelte-15y8pah"> </span></li>`),Jc=u(`<div class="feedback feedback--error"><span> </span></div>`),Yc=u(`<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
|
|
111
|
+
activate them in the running assistant. Existing OP_HOME credentials are
|
|
112
|
+
preserved on conflict.</p> <!>`,1);function Xc(e,n){U(n,!0);let r=W(!1),i=W(null),a=W(null);async function o(){D(r,!0),D(i,null);try{let e=await fetch(`/admin/providers/import-host`,{method:`POST`,headers:Fe()}),t=await e.json();if(!e.ok){D(i,t.message??`Import failed (${e.status})`,!0);return}D(a,t,!0)}catch(e){D(i,e instanceof Error?e.message:`Import failed.`,!0)}finally{D(r,!1)}}Ke(e,{open:!0,title:`Import from host OpenCode`,onClose:()=>J(a)?n.onimported?.():n.oncancel?.(),footer:e=>{var i=j(),c=x(i),l=e=>{var r=Bc();s(`click`,r,function(...e){n.onimported?.apply(this,e)}),t(e,r)},u=e=>{var n=Vc(),i=y(n),a=e=>{Q(e,{})};f(i,e=>{J(r)&&e(a)}),K(),E(n),v(()=>n.disabled=J(r)),s(`click`,n,()=>void o()),t(e,n)};f(c,e=>{J(a)?e(l):e(u,-1)}),t(e,i)},children:(e,r)=>{var o=j(),s=x(o),c=e=>{var n=Gc(),r=m(x(n),2),i=y(r),o=m(y(i)),s=y(o,!0);E(o),E(i);var c=m(i,2),l=m(y(c)),u=y(l,!0);E(l),E(c);var d=m(c,2),p=e=>{var n=Hc(),r=m(y(n)),i=y(r,!0);E(r),E(n),v(()=>M(i,J(a).livePushed)),t(e,n)};f(d,e=>{J(a).livePushed!==void 0&&e(p)});var h=m(d,2),g=e=>{var n=Uc(),r=m(y(n)),i=y(r,!0);E(r),E(n),v(e=>M(i,e),[()=>J(a).conflicts.join(`, `)]),t(e,n)};f(h,e=>{J(a).conflicts.length>0&&e(g)});var _=m(h,2),b=e=>{var n=Wc(),r=y(n),i=y(r);E(r),E(n),v(e=>M(i,`Live update failed for: ${e??``}.
|
|
113
|
+
These will activate on next OpenCode restart.`),[()=>J(a).livePushFailed.join(`, `)]),t(e,n)};f(_,e=>{J(a).livePushFailed&&J(a).livePushFailed.length>0&&e(b)}),E(r),v(()=>{M(s,J(a).imported.providers),M(u,J(a).imported.credentials)}),t(e,n)},l=e=>{var r=Yc(),a=m(x(r),2),o=y(a),s=e=>{var r=Kc(),i=y(r),a=y(i,!0);E(i);var o=m(i,2),s=y(o);E(o),E(r),v(()=>{M(a,n.configPath),M(s,`(${n.providerCount??``} provider${n.providerCount===1?``:`s`})`)}),t(e,r)};f(o,e=>{n.configPath&&e(s)});var c=m(o,2),l=e=>{var r=qc(),i=y(r),a=y(i,!0);E(i);var o=m(i,2),s=y(o);E(o),E(r),v(()=>{M(a,n.authPath),M(s,`(${n.credentialCount??``} credential${n.credentialCount===1?``:`s`})`)}),t(e,r)};f(c,e=>{n.authPath&&e(l)}),E(a);var u=m(a,4),d=e=>{var n=Jc(),r=y(n),a=y(r,!0);E(r),E(n),v(()=>M(a,J(i))),t(e,n)};f(u,e=>{J(i)&&e(d)}),t(e,r)};f(s,e=>{J(a)?e(c):e(l,-1)}),t(e,o)},$$slots:{footer:!0,default:!0}}),L()}a([`click`]);var Zc=u(`<div class="feedback feedback--error inline svelte-19zt4ct"><span> </span> <button class="btn-dismiss" type="button" aria-label="Dismiss">×</button></div>`),Qc=d(`<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"><rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect><rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect><line x1="6" y1="6" x2="6.01" y2="6"></line><line x1="6" y1="18" x2="6.01" y2="18"></line><line x1="1" y1="1" x2="23" y2="23"></line></svg>`),$c=u(`<p>The assistant (OpenCode server) is not reachable. Start the assistant container and refresh.</p>`),el=u(`<div class="loading-state"><!> <span>Loading providers…</span></div>`),tl=d(`<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="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>`),nl=u(`<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),rl=u(`<option> </option>`),il=u(`<optgroup></optgroup>`),al=u(`<option> </option>`),ol=u(`<optgroup></optgroup>`),sl=u(`<p class="model-error svelte-19zt4ct"> </p>`),cl=u(`<div class="provider-row svelte-19zt4ct"><div class="provider-id svelte-19zt4ct"><span class="provider-name svelte-19zt4ct"> </span> <span class="badge badge-connected"> </span></div> <button class="btn btn-outline btn-sm"><!> Disconnect</button></div>`),ll=u(`<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> <!>`,1),ul=u(`<div class="panel" role="tabpanel"><div class="panel-header"><div><h2>Connections</h2> <p class="panel-subtitle">Sign in to AI providers. Credentials are stored in OpenCode's auth.json.</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"><!></div></div> <!> <!> <!> <!>`,1);function dl(n,r){U(r,!0);let a=W(e({available:!1,providers:[],defaultModels:{},allowlistActive:!1,providerCountLabel:``,stats:{total:0,connected:0,configured:0,disabled:0}})),o=W(!0),c=W(null);async function l(){D(o,!0);try{let e=await fetch(`/admin/providers`,{headers:Fe()});e.ok&&(D(a,await e.json(),!0),D(p,J(a).currentModel??``,!0),D(h,J(a).currentSmallModel??``,!0))}catch{}finally{D(o,!1)}}ee(()=>{l()});let u=V(()=>J(a).providers.filter(e=>e.connected)),d=V(()=>J(a).providers.filter(e=>!e.connected)),p=W(``),h=W(``),g=W(null);async function _(e,t){D(g,null);try{let n=await fetch(`/admin/opencode/model`,{method:`POST`,headers:{...Fe(),"content-type":`application/json`},body:JSON.stringify({[e]:t||null})});n.ok||D(g,(await n.json().catch(()=>({}))).message??`Save failed (${n.status})`,!0)}catch(e){D(g,e instanceof Error?e.message:`Request failed.`,!0)}}let b=W(!1),S=W(null),C=W(!1),w=W(null),T={env:`env`,api:`api key`,oauth:`oauth`,config:`config`,custom:`custom`};function k(e){return e.credentialType?T[e.credentialType]:``}function N(e){D(b,!1),D(S,e,!0)}function P(){D(b,!1),D(C,!0)}function F(){D(S,null),D(C,!1),l()}async function I(e){if(confirm(`Disconnect ${e.name}? Stored credentials will be removed.`)){D(w,e.id,!0),D(c,null);try{let t=await fetch(`/admin/opencode/providers/${encodeURIComponent(e.id)}/auth`,{method:`DELETE`,headers:Fe()});t.ok?l():D(c,(await t.json().catch(()=>({}))).message??`Disconnect failed (${t.status})`,!0)}catch(e){D(c,e instanceof Error?e.message:`Request failed.`,!0)}finally{D(w,null)}}}let R=W(null),z=W(!1);async function B(){try{let e=await fetch(`/admin/providers/host-status`,{headers:Fe()});e.ok&&D(R,await e.json(),!0)}catch{}}ee(()=>{B()});function H(){D(z,!1),l(),B()}var G=ul(),te=x(G),q=y(te),ne=m(y(q),2),Y=y(ne),re=m(Y,2),ie=m(re,2),ae=y(ie),X=e=>{Q(e,{})};f(ae,e=>{J(o)&&e(X)}),K(),E(ie),E(ne),E(q);var oe=m(q,2),se=e=>{var n=Zc(),r=y(n),i=y(r,!0);E(r);var a=m(r,2);E(n),v(()=>M(i,J(c))),s(`click`,a,()=>D(c,null)),t(e,n)};f(oe,e=>{J(c)&&e(se)});var ce=m(oe,2),le=y(ce),ue=e=>{xn(e,{icon:e=>{t(e,Qc())},children:(e,n)=>{t(e,$c())},$$slots:{icon:!0,default:!0}})},de=e=>{var n=el();Q(y(n),{}),K(2),E(n),t(e,n)},fe=e=>{xn(e,{icon:e=>{t(e,tl())},children:(e,n)=>{var r=nl();K(2),t(e,r)},$$slots:{icon:!0,default:!0}})},pe=e=>{var n=ll(),r=x(n),a=y(r),o=m(y(a),2),c=y(o);c.value=c.__value=``,i(m(c),17,()=>J(u),e=>e.id,(e,n)=>{var r=j(),a=x(r),o=e=>{var r=il();i(r,21,()=>J(n).models,e=>e.id,(e,r)=>{var i=rl(),a=y(i,!0);E(i);var o={};v(()=>{M(a,J(r).name||J(r).id),o!==(o=`${J(n).id??``}/${J(r).id??``}`)&&(i.value=i.__value=`${J(n).id??``}/${J(r).id??``}`)}),t(e,i)}),E(r),v(()=>O(r,`label`,J(n).name)),t(e,r)};f(a,e=>{J(n).models.length>0&&e(o)}),t(e,r)}),E(o),E(a);var l=m(a,2),d=m(y(l),2),b=y(d);b.value=b.__value=``,i(m(b),17,()=>J(u),e=>e.id,(e,n)=>{var r=j(),a=x(r),o=e=>{var r=ol();i(r,21,()=>J(n).models,e=>e.id,(e,r)=>{var i=al(),a=y(i,!0);E(i);var o={};v(()=>{M(a,J(r).name||J(r).id),o!==(o=`${J(n).id??``}/${J(r).id??``}`)&&(i.value=i.__value=`${J(n).id??``}/${J(r).id??``}`)}),t(e,i)}),E(r),v(()=>O(r,`label`,J(n).name)),t(e,r)};f(a,e=>{J(n).models.length>0&&e(o)}),t(e,r)}),E(d),E(l);var S=m(l,2),C=e=>{var n=sl(),r=y(n,!0);E(n),v(()=>M(r,J(g))),t(e,n)};f(S,e=>{J(g)&&e(C)}),E(r),i(m(r,2),17,()=>J(u),e=>e.id,(e,n)=>{var r=cl(),i=y(r),a=y(i),o=y(a,!0);E(a);var c=m(a,2),l=y(c,!0);E(c),E(i);var u=m(i,2),d=y(u),p=e=>{Q(e,{})};f(d,e=>{J(w)===J(n).id&&e(p)}),K(),E(u),E(r),v(e=>{M(o,J(n).name),M(l,e),u.disabled=J(w)===J(n).id},[()=>k(J(n))]),s(`click`,u,()=>void I(J(n))),t(e,r)}),s(`change`,o,e=>void _(`model`,e.currentTarget.value)),A(o,()=>J(p),e=>D(p,e)),s(`change`,d,e=>void _(`small_model`,e.currentTarget.value)),A(d,()=>J(h),e=>D(h,e)),t(e,n)};f(le,e=>{!J(a).available&&!J(o)?e(ue):J(o)&&J(a).providers.length===0?e(de,1):J(u).length===0?e(fe,2):e(pe,-1)}),E(ce),E(te);var me=m(te,2),he=e=>{vc(e,{get providers(){return J(d)},onselect:N,oncustom:P,onclose:()=>{D(b,!1)}})};f(me,e=>{J(b)&&e(he)});var ge=m(me,2),_e=e=>{Mc(e,{get provider(){return J(S)},onaction:F,onclose:()=>{D(S,null)}})};f(ge,e=>{J(S)&&e(_e)});var ve=m(ge,2),ye=e=>{zc(e,{onaction:F,onclose:()=>{D(C,!1)}})};f(ve,e=>{J(C)&&e(ye)});var be=m(ve,2),xe=e=>{Xc(e,{get providerCount(){return J(R).providerCount},get credentialCount(){return J(R).credentialCount},get configPath(){return J(R).configPath},get authPath(){return J(R).authPath},onimported:H,oncancel:()=>{D(z,!1)}})};f(be,e=>{J(z)&&J(R)&&e(xe)}),v(()=>{Y.disabled=!J(R)?.detected,O(Y,`title`,J(R)?.detected?`Import ${J(R).providerCount} providers from host OpenCode`:`No host OpenCode installation detected`),ie.disabled=J(o)}),s(`click`,Y,()=>{D(z,!0)}),s(`click`,re,()=>{D(b,!0)}),s(`click`,ie,()=>void l()),t(n,G),L()}a([`click`,`change`]);var fl=u(`<button class="btn btn-secondary btn-sm"> </button> <button class="btn btn-secondary btn-sm"><!> Refresh</button>`,1),pl=u(`<option> </option>`),ml=u(`<div class="error-banner svelte-coqj2u"><span> </span></div>`),hl=u(`<pre class="log-output svelte-coqj2u"> </pre>`),gl=d(`<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>`),_l=u(`<p>No log output — the container may not be running or has no recent output.</p>`),vl=u(`<p>Select a service and click "Load Logs" to view container output.</p>`),yl=u(`<div class="controls svelte-coqj2u"><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> <div class="control-group svelte-coqj2u"><label for="log-tail" class="control-label svelte-coqj2u">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> <div class="control-group control-group--toggle svelte-coqj2u"><label class="toggle-label svelte-coqj2u"><input type="checkbox" class="svelte-coqj2u"/> <span>Auto-scroll</span></label></div> <button class="btn btn-primary btn-sm"><!> Load Logs</button></div> <div class="panel-body panel-body--flush"><!> <!></div>`,1);function bl(e,n){U(n,!0);let a=W(``),o=W(!1),c=W(!1),l=W(``),u=W(``),d=W(100),p=W(!0),h=W(!1),g=W(void 0);async function _(){D(c,!0),D(l,``);try{let e=await _e({service:J(u)||void 0,tail:J(d)});e.ok?(D(a,e.logs,!0),D(o,!0),J(p)&&J(g)&&requestAnimationFrame(()=>{J(g)&&(J(g).scrollTop=J(g).scrollHeight)})):D(l,e.error??`Failed to fetch logs.`,!0)}catch(e){D(l,e instanceof Error?e.message:`Failed to fetch logs.`,!0)}finally{D(c,!1)}}async function b(){J(a)&&(await navigator.clipboard.writeText(J(a)),D(h,!0),setTimeout(()=>{D(h,!1)},2e3))}ee(()=>{n.tokenStored&&_()}),Xn(e,{title:`Service Logs`,role:`tabpanel`,actions:e=>{var r=fl(),i=x(r),o=y(i,!0);E(i);var l=m(i,2),u=y(l),d=e=>{Q(e,{})};f(u,e=>{J(c)&&e(d)}),K(),E(l),v(()=>{i.disabled=!J(a),M(o,J(h)?`Copied!`:`Copy`),l.disabled=J(c)||!n.tokenStored}),s(`click`,i,()=>void b()),s(`click`,l,()=>void _()),t(e,r)},children:(e,h)=>{var b=yl(),S=x(b),C=y(S),O=m(y(C),2),k=y(O);k.value=k.__value=``,i(m(k),17,()=>n.services,r,(e,n)=>{var r=pl(),i=y(r,!0);E(r);var a={};v(()=>{M(i,J(n)),a!==(a=J(n))&&(r.value=(r.__value=J(n))??``)}),t(e,r)}),E(O),E(C);var N=m(C,2),P=m(y(N),2),F=y(P);F.value=F.__value=50;var I=m(F);I.value=I.__value=100;var L=m(I);L.value=L.__value=250;var R=m(L);R.value=R.__value=500;var z=m(R);z.value=z.__value=1e3,E(P),E(N);var B=m(N,2),ee=y(B),V=y(ee);T(V),K(2),E(ee),E(B);var U=m(B,2),W=y(U),G=e=>{Q(e,{})};f(W,e=>{J(c)&&e(G)}),K(),E(U),E(S);var te=m(S,2),q=y(te),ne=e=>{var n=ml(),r=y(n),i=y(r,!0);E(r),E(n),v(()=>M(i,J(l))),t(e,n)};f(q,e=>{J(l)&&e(ne)});var Y=m(q,2),re=e=>{var n=hl(),r=y(n,!0);E(n),H(n,e=>D(g,e),()=>J(g)),v(()=>M(r,J(a))),t(e,n)},ie=e=>{xn(e,{icon:e=>{t(e,gl())},children:(e,n)=>{var r=j(),i=x(r),a=e=>{t(e,_l())},s=e=>{t(e,vl())};f(i,e=>{J(o)?e(a):e(s,-1)}),t(e,r)},$$slots:{icon:!0,default:!0}})};f(Y,e=>{J(a)?e(re):J(c)||e(ie,1)}),E(te),v(()=>U.disabled=J(c)||!n.tokenStored),s(`change`,O,()=>void _()),A(O,()=>J(u),e=>D(u,e)),s(`change`,P,()=>void _()),A(P,()=>J(d),e=>D(d,e)),w(V,()=>J(p),e=>D(p,e)),s(`click`,U,()=>void _()),t(e,b)},$$slots:{actions:!0,default:!0}}),L()}a([`click`,`change`]);var xl=u(`<div class="error-banner svelte-epscb2"><span> </span></div>`),Sl=u(`<p class="empty-note svelte-epscb2">No secret files found.</p>`),Cl=u(`<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>`),wl=u(`<div class="editor-head svelte-epscb2"><span class="mono svelte-epscb2"> </span> <label class="reveal-toggle svelte-epscb2"><input type="checkbox"/> 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),Tl=u(`<div class="editor-empty svelte-epscb2"><svg aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-epscb2"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg> <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>`),El=u(`<div class="panel" role="tabpanel"><div class="panel-header svelte-epscb2"><h2>Secrets</h2> <div class="panel-header-actions"><button class="btn btn-secondary btn-sm"><!> Refresh</button></div></div> <p class="section-note svelte-epscb2">Files in the assistant's secrets directory (<code>/stash/secrets</code> → <code>knowledge/secrets</code>). These are mounted into the assistant and granted to
|
|
114
|
+
services via Docker secrets. Files are stored 0600. Editing here changes the live
|
|
115
|
+
file — restart affected services to pick up changes.</p> <!> <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 Dl(n,r){U(r,!0);let a=W(!1),o=W(!1),l=W(``),u=W(e([])),d=W(null),p=W(``),h=W(!1),g=W(``),_=W(void 0);function b(e){return e<1024?`${e} B`:`${(e/1024).toFixed(1)} KB`}async function S(){D(a,!0),D(l,``);try{D(u,(await fe()).files,!0)}catch(e){D(l,e instanceof Error?e.message:`Failed to list secret files.`,!0)}finally{D(a,!1)}}async function C(e){if(!J(o)){D(o,!0),D(l,``);try{let t=await ue(e);D(d,t.name,!0),D(p,t.value,!0),D(h,!1)}catch(e){Z.push(`error`,e instanceof Error?e.message:`Failed to read file.`)}finally{D(o,!1)}}}function k(){D(d,null),D(p,``),D(h,!1)}async function A(){if(!(!J(d)||J(o))){D(o,!0);try{await Oe(J(d),J(p)),Z.push(`success`,`Saved ${J(d)}.`),await S()}catch(e){Z.push(`error`,e instanceof Error?e.message:`Failed to save file.`)}finally{D(o,!1)}}}async function j(e){if(!J(o)&&confirm(`Delete secret file "${e}"? This cannot be undone.`)){D(o,!0);try{await Ve(e),Z.push(`success`,`Deleted ${e}.`),J(d)===e&&k(),await S()}catch(e){Z.push(`error`,e instanceof Error?e.message:`Failed to delete file.`)}finally{D(o,!1)}}}async function N(){let e=J(g).trim();if(!(!e||J(o))){D(o,!0);try{await Oe(e,``),Z.push(`success`,`Created ${e}.`),D(g,``),await S(),await C(e)}catch(e){Z.push(`error`,e instanceof Error?e.message:`Failed to create file.`)}finally{D(o,!1)}}}ee(()=>{r.tokenStored&&S()});var P=El(),F=y(P),I=m(y(F),2),R=y(I),z=y(R),B=e=>{Q(e,{})};f(z,e=>{J(a)&&e(B)}),K(),E(R),E(I),E(F);var V=m(F,4),te=e=>{var n=xl(),r=y(n),i=y(r,!0);E(r),E(n),v(()=>M(i,J(l))),t(e,n)};f(V,e=>{J(l)&&e(te)});var ne=m(V,2),Y=y(ne),re=y(Y),ie=e=>{t(e,Sl())};f(re,e=>{J(u).length===0&&!J(a)&&e(ie)});var ae=m(re,2);i(ae,17,()=>J(u),e=>e.name,(e,n)=>{var r=Cl(),i=y(r),a=y(i),c=y(a,!0);E(a);var l=m(a,2),u=y(l,!0);E(l),E(i);var f=m(i,2);E(r),v(e=>{q(r,1,`secret-row ${J(d)===J(n).name?`active`:``}`,`svelte-epscb2`),i.disabled=J(o),O(i,`aria-label`,`Edit ${J(n).name??``}`),M(c,J(n).name),M(u,e),f.disabled=J(o),O(f,`aria-label`,`Delete ${J(n).name??``}`)},[()=>b(J(n).size)]),s(`click`,i,()=>void C(J(n).name)),s(`click`,f,()=>void j(J(n).name)),t(e,r)});var X=m(ae,2),oe=m(y(X),2),se=y(oe);T(se),H(se,e=>D(_,e),()=>J(_));var ce=m(se,2);E(oe),E(X),E(Y);var le=m(Y,2),de=y(le),pe=e=>{var n=wl(),r=x(n),i=y(r),a=y(i,!0);E(i);var l=m(i,2),u=y(l);T(u),K(),E(l),E(r);var g=m(r,2);c(g);var _=m(g,2),b=y(_),S=m(b,2),C=y(S),O=e=>{Q(e,{})};f(C,e=>{J(o)&&e(O)}),K(),E(S),E(_),v(()=>{M(a,J(d)),q(g,1,`control-input editor-area ${J(h)?``:`masked`}`,`svelte-epscb2`),g.disabled=J(o),b.disabled=J(o),S.disabled=J(o)}),w(u,()=>J(h),e=>D(h,e)),G(g,()=>J(p),e=>D(p,e)),s(`click`,b,k),s(`click`,S,()=>void A()),t(e,n)},me=e=>{var n=Tl(),r=m(y(n),4);E(n),s(`click`,r,()=>J(_)?.focus()),t(e,n)};f(de,e=>{J(d)?e(pe):e(me,-1)}),E(le),E(ne),E(P),v(e=>{R.disabled=J(a)||J(o)||!r.tokenStored,se.disabled=J(o),ce.disabled=e},[()=>J(o)||!J(g).trim()]),s(`click`,R,()=>void S()),G(se,()=>J(g),e=>D(g,e)),s(`click`,ce,()=>void N()),t(n,P),L()}a([`click`]);var Ol=u(`<span class="unsaved-hint svelte-obkjlq" aria-live="polite">Unsaved changes</span>`),kl=u(`<div class="error-banner svelte-obkjlq"><span> </span></div>`),Al=u(`<div class="panel" role="tabpanel"><div class="panel-header svelte-obkjlq"><div><h2>Assistant</h2> <p class="panel-subtitle svelte-obkjlq">Configure the Docker Compose project name in <code> </code> and edit the assistant persona file mounted from <code> </code>.</p></div> <div class="panel-header-actions svelte-obkjlq"><button class="btn btn-secondary btn-sm"><!> Refresh</button> <!> <button class="btn btn-primary btn-sm"><!> Save</button></div></div> <!> <div class="settings-grid svelte-obkjlq"><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"/> <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> <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></div></div>`);function jl(e,n){U(n,!0);let r=W(!1),i=W(!1),a=W(``),o=W(`openpalm`),l=W(!1),u=W(`config/assistant/openpalm.md`),d=W(`knowledge/env/stack.env`),p=W(``),h=W(``);async function g(){D(r,!0),D(a,``);try{let e=await je();D(o,e.projectName,!0),D(l,e.lanExposureEnabled,!0),D(u,e.personaPath,!0),D(d,e.stackEnvPath,!0),D(p,e.personaContent,!0),D(h,e.personaContent,!0)}catch(e){D(a,e instanceof Error?e.message:`Failed to load assistant settings.`,!0)}finally{D(r,!1)}}async function _(){D(i,!0),D(a,``);try{let e=await re({projectName:J(o),lanExposureEnabled:J(l),personaContent:J(p)});D(o,e.projectName,!0),D(l,e.lanExposureEnabled,!0),D(p,e.personaContent,!0),D(h,e.personaContent,!0),Z.push(`success`,`Assistant settings saved. Restart the assistant container to apply them.`)}catch(e){let t=e instanceof Error?e.message:`Failed to save assistant settings.`;D(a,t,!0),Z.push(`error`,t)}finally{D(i,!1)}}let b=V(()=>J(p)!==J(h));ee(()=>{n.tokenStored&&g()});var x=Al(),S=y(x),C=y(S),O=m(y(C),2),k=m(y(O)),A=y(k,!0);E(k);var j=m(k,2),N=y(j,!0);E(j),K(),E(O),E(C);var P=m(C,2),F=y(P),I=y(F),R=e=>{Q(e,{})};f(I,e=>{J(r)&&e(R)}),K(),E(F);var z=m(F,2),B=e=>{t(e,Ol())};f(z,e=>{J(b)&&e(B)});var H=m(z,2),te=y(H),q=e=>{Q(e,{})};f(te,e=>{J(i)&&e(q)}),K(),E(H),E(P),E(S);var ne=m(S,2),Y=e=>{var n=kl(),r=y(n),i=y(r,!0);E(r),E(n),v(()=>M(i,J(a))),t(e,n)};f(ne,e=>{J(a)&&e(Y)});var ie=m(ne,2),ae=y(ie),X=m(y(ae),2),oe=m(y(X),3),se=y(oe,!0);E(oe),K(3),E(X);var ce=m(X,2),le=m(y(ce),2);T(le),E(ce),K(2),E(ae);var ue=m(ae,2),de=m(y(ue),2),fe=m(y(de),3),pe=y(fe,!0);E(fe),K(),E(de);var me=m(de,2),he=y(me);T(he),K(2),E(me),K(2),E(ue);var ge=m(ue,2),_e=m(y(ge),4),ve=y(_e,!0);E(_e);var ye=m(_e,2);c(ye),E(ge),E(ie),E(x),v(()=>{M(A,J(d)),M(N,J(u)),F.disabled=J(r)||J(i)||!n.tokenStored,H.disabled=J(r)||J(i)||!n.tokenStored||!J(b),M(se,J(d)),le.disabled=J(r)||J(i),M(pe,J(d)),he.disabled=J(r)||J(i),M(ve,J(u)),ye.disabled=J(r)||J(i)}),s(`click`,F,()=>void g()),s(`click`,H,()=>void _()),G(le,()=>J(o),e=>D(o,e)),w(he,()=>J(l),e=>D(l,e)),G(ye,()=>J(p),e=>D(p,e)),t(e,x),L()}a([`click`]);var Ml=u(`<div class="error-banner svelte-z6w8je"><span> </span></div>`),Nl=u(`<div class="error-banner svelte-z6w8je"><span> </span></div>`),Pl=u(`<div class="empty-card svelte-z6w8je">Nothing urgent has happened yet.</div>`),Fl=u(`<button class="attention-session mono svelte-z6w8je" type="button"> </button>`),Il=u(`<article><div class="attention-top svelte-z6w8je"><strong class="svelte-z6w8je"> </strong> <span class="svelte-z6w8je"> </span></div> <p class="svelte-z6w8je"> </p> <!></article>`),Ll=u(`<div class="empty-card svelte-z6w8je">Waiting for OpenCode events...</div>`),Rl=u(`<p class="svelte-z6w8je"> </p>`),zl=u(`<button class="attention-session mono svelte-z6w8je" type="button"> </button>`),Bl=u(`<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>`),Vl=u(`<div class="empty-card svelte-z6w8je">No sessions found on the active assistant endpoint.</div>`),Hl=u(`<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>`),Ul=u(`<tr><td colspan="2" class="empty-cell svelte-z6w8je">No events observed yet.</td></tr>`),Wl=u(`<tr><td class="mono svelte-z6w8je"> </td><td class="svelte-z6w8je"> </td></tr>`),Gl=u(`<div class="empty-card svelte-z6w8je">No session activity captured yet.</div>`),Kl=u(`<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>`),ql=u(`<span class="svelte-z6w8je"> </span>`),Jl=u(`<div class="empty-card svelte-z6w8je">No chat or tool activity available for this session yet.</div>`),Yl=u(`<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),Xl=u(`<div class="empty-card svelte-z6w8je">Select a session to inspect its recent chat and tool activity.</div>`),Zl=u(`<div class="panel" role="tabpanel"><div class="panel-header svelte-z6w8je"><div><h2>Activity</h2> <p class="panel-subtitle svelte-z6w8je">Readable operator telemetry for the active assistant endpoint: what is blocked, what is failing, which sessions are busiest, and the recent history for a selected conversation.</p></div> <div class="panel-header-actions svelte-z6w8je"><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 Ql(n,a){U(a,!0);let o=W(!1),c=W(!1),l=W(``),u=W(``),d=W(`connecting`),p=W(e([])),h=W(null),g=W(e([])),_=W(e([])),b=W(e([])),S=W(e({})),C=W(e({})),w=W(e([])),T=W(null),k=W(e(Date.now())),A=null,j=null,N=null;function P(e){let t=e.properties;if(typeof t?.sessionID==`string`)return t.sessionID;let n=t?.info;return typeof n?.id==`string`?n.id:``}function I(e,t=140){return e.length>t?`${e.slice(0,t-1)}...`:e}function R(e){return{type:e.type,properties:e.properties??{}}}function B(e){let t=P(e);if(!t)return null;let n=R(e),r=Ye(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=Qe(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 H(e){let t=e.properties,n=P(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:I(i||`Assistant tool execution failed.`),sessionId:n};if(r.endsWith(`.called`))return{kind:`info`,severity:`medium`,title:`Tool running: ${e}`,detail:I(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`?I(e.state.error):`Assistant tool execution failed.`,sessionId:n}}return null}function G(e){let t=e.properties?.info;if(typeof t?.title==`string`&&t.title.trim())return t.title;let n=H(e);if(n?.title)return n.title;let r=P(e);return r?`Session ${r.slice(0,8)}`:`Assistant event`}function te(e){let t=e.properties,n=H(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 I(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.`:``}function ne(e){let t=H(e);if(!t)return;let n=Date.now();D(_,[{id:`${n}-${Math.random().toString(36).slice(2,8)}`,timestamp:n,...t},...J(_)].slice(0,30),!0)}function Y(e){let t=Date.now(),n=e.type||`unknown`,r=P(e),i=B(e)??void 0;D(b,[{id:`${t}-${Math.random().toString(36).slice(2,8)}`,type:n,sessionId:r,title:G(e),detail:te(e),toolState:i,timestamp:t},...J(b)].slice(0,80),!0),D(S,{...J(S),[n]:(J(S)[n]??0)+1},!0),r&&D(C,{...J(C),[r]:(J(C)[r]??0)+1},!0),D(w,[t,...J(w).filter(e=>t-e<=5*6e4)],!0),D(T,t,!0)}function re(e){let t=J(p).find(t=>t.id===e.id);if(t){D(p,[{...t,...e},...J(p).filter(t=>t.id!==e.id)].sort((e,t)=>t.updatedAt-e.updatedAt),!0);return}D(p,[e,...J(p)].sort((e,t)=>t.updatedAt-e.updatedAt),!0)}function ie(e){let t=e.properties?.info,n=P(e);if(e.type===`session.deleted`&&n){D(p,J(p).filter(e=>e.id!==n),!0),J(h)===n&&D(h,J(p)[0]?.id??null,!0);return}if(!n)return;let r=J(p).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();re({id:n,title:typeof t?.title==`string`?t.title:r?.title??``,createdAt:i,updatedAt:a})}async function ae(){D(o,!0),D(l,``);try{D(p,await Se(),!0),(!J(h)||!J(p).some(e=>e.id===J(h)))&&D(h,J(p)[0]?.id??null,!0)}catch(e){D(l,e instanceof Error?e.message:`Failed to load sessions.`,!0)}finally{D(o,!1)}}async function X(e){if(!e){D(g,[],!0);return}D(c,!0);try{D(g,await be(e),!0)}catch{D(g,[],!0)}finally{D(c,!1)}}async function oe(e){D(h,e,!0),await X(e)}function se(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 ce(e){return new Date(e).toLocaleString([],{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}let le=V(()=>J(p).find(e=>e.id===J(h))??null),ue=V(()=>J(_).filter(e=>e.kind===`permission`||e.kind===`question`).length),de=V(()=>J(_).filter(e=>e.severity===`high`).length),fe=V(()=>J(p).filter(e=>J(k)-e.updatedAt<=5*6e4).length),pe=V(()=>J(_).slice(0,10)),me=V(()=>J(w).filter(e=>J(k)-e<=6e4).length),he=V(()=>J(w).filter(e=>J(k)-e<=5*6e4).length),ge=V(()=>Object.entries(J(S)).sort((e,t)=>t[1]-e[1]).slice(0,8)),_e=V(()=>J(p).map(e=>({...e,events:J(C)[e.id]??0})).sort((e,t)=>t.events-e.events||t.updatedAt-e.updatedAt).slice(0,8));ee(()=>{Xe.load(),ae().then(()=>X(J(h))),D(d,`connecting`),A=$e({onConnect:()=>{D(d,`connected`),D(u,``)},onDisconnect:e=>{D(d,`disconnected`),D(u,e.message,!0)},onCreated:()=>{},onUpdated:()=>{},onDeleted:()=>{},onEvent:e=>{D(d,`connected`),ne(e),Y(e),ie(e)}}),j=setInterval(()=>{ae()},3e4),N=setInterval(()=>{D(k,Date.now(),!0)},5e3)}),F(()=>{A?.(),j&&clearInterval(j),N&&clearInterval(N)});var ve=Zl(),ye=y(ve),xe=m(y(ye),2),Ce=y(xe),we=y(Ce),Te=e=>{Q(e,{})};f(we,e=>{J(o)&&e(Te)}),K(),E(Ce),E(xe),E(ye);var Ee=m(ye,2),De=e=>{var n=Ml(),r=y(n),i=y(r,!0);E(r),E(n),v(()=>M(i,J(l))),t(e,n)};f(Ee,e=>{J(l)&&e(De)});var Z=m(Ee,2),Oe=e=>{var n=Nl(),r=y(n),i=y(r,!0);E(r),E(n),v(()=>M(i,J(u))),t(e,n)};f(Z,e=>{J(u)&&J(d)===`disconnected`&&e(Oe)});var ke=m(Z,2),Ae=y(ke),je=m(y(Ae),2),Me=y(je,!0);E(je);var Ne=m(je,2),Pe=y(Ne,!0);E(Ne),E(Ae);var Fe=m(Ae,2),Ie=y(Fe,!0);E(Fe),E(ke);var Le=m(ke,2),Re=y(Le),ze=m(y(Re),2),Be=y(ze,!0);E(ze);var Ve=m(ze,2),He=y(Ve);E(Ve),E(Re);var Ue=m(Re,2),We=m(y(Ue),2),Ge=y(We,!0);E(We);var Ke=m(We,2),qe=y(Ke);E(Ke),E(Ue);var Je=m(Ue,2),Ze=m(y(Je),2),et=y(Ze,!0);E(Ze),K(2),E(Je);var tt=m(Je,2);let nt;var rt=m(y(tt),2),it=y(rt,!0);E(rt);var at=m(rt,2),ct=y(at,!0);E(at),E(tt);var lt=m(tt,2),ut=m(y(lt),2),dt=y(ut,!0);E(ut);var ft=m(ut,2),pt=y(ft);E(ft),E(lt);var mt=m(lt,2);let ht;var gt=m(y(mt),2),_t=y(gt,!0);E(gt);var vt=m(gt,2),yt=y(vt,!0);E(vt),E(mt),E(Le);var bt=m(Le,2),xt=y(bt),St=y(xt),Ct=m(y(St),2),wt=y(Ct,!0);E(Ct),E(St);var Tt=m(St,2),Et=y(Tt),Dt=e=>{t(e,Pl())};f(Et,e=>{J(pe).length===0&&e(Dt)}),i(m(Et,2),17,()=>J(pe),e=>e.id,(e,n)=>{var r=Il(),i=y(r),a=y(i),o=y(a,!0);E(a);var c=m(a,2),l=y(c,!0);E(c),E(i);var u=m(i,2),d=y(u,!0);E(u);var h=m(u,2),g=e=>{let r=V(()=>J(p).find(e=>e.id===J(n).sessionId)?.title);var i=Fl(),a=y(i,!0);E(i),v(e=>{O(i,`aria-label`,J(n).sessionId),M(a,e)},[()=>J(r)||`Session ${J(n).sessionId.slice(0,8)}…`]),s(`click`,i,()=>void oe(J(n).sessionId)),t(e,i)};f(h,e=>{J(n).sessionId&&e(g)}),E(r),v(e=>{q(r,1,`attention-item attention-item--${J(n).severity??``}`,`svelte-z6w8je`),M(o,J(n).title),M(l,e),M(d,J(n).detail)},[()=>se(J(n).timestamp)]),t(e,r)}),E(Tt);var Ot=m(Tt,2),kt=m(y(Ot),2),At=y(kt,!0);E(kt),E(Ot);var jt=m(Ot,2),Mt=y(jt),Nt=e=>{t(e,Ll())};f(Mt,e=>{J(b).length===0&&e(Nt)}),i(m(Mt,2),17,()=>J(b).slice(0,12),e=>e.id,(e,n)=>{var r=Bl(),i=y(r),a=y(i),o=y(a,!0);E(a);var c=m(a,2),l=y(c,!0);E(c),E(i);var u=m(i,2),d=y(u,!0);E(u);var h=m(u,2),g=e=>{{let t=V(()=>[J(n).toolState]);ot(e,{get items(){return J(t)},ariaLabel:`Activity tool event`})}},_=e=>{var r=Rl(),i=y(r,!0);E(r),v(()=>M(i,J(n).detail)),t(e,r)};f(h,e=>{J(n).toolState?e(g):J(n).detail&&e(_,1)});var b=m(h,2),x=e=>{let r=V(()=>J(p).find(e=>e.id===J(n).sessionId)?.title);var i=zl(),a=y(i,!0);E(i),v(e=>{O(i,`aria-label`,J(n).sessionId),M(a,e)},[()=>J(r)||`Session ${J(n).sessionId.slice(0,8)}…`]),s(`click`,i,()=>void oe(J(n).sessionId)),t(e,i)};f(b,e=>{J(n).sessionId&&e(x)}),E(r),v(e=>{M(o,J(n).type),M(l,e),M(d,J(n).title)},[()=>se(J(n).timestamp)]),t(e,r)}),E(jt),E(xt);var Pt=m(xt,2),Ft=y(Pt),It=m(y(Ft),2),Lt=y(It,!0);E(It),E(Ft);var Rt=m(Ft,2),zt=y(Rt),Bt=e=>{t(e,Vl())};f(zt,e=>{J(p).length===0&&!J(o)&&e(Bt)}),i(m(zt,2),17,()=>J(p).slice(0,12),e=>e.id,(e,n)=>{var r=Hl();let i;var a=y(r),o=y(a),c=y(o,!0);E(o);var l=m(o,2),u=y(l);E(l),E(a);var d=m(a,2),f=y(d),p=y(f);E(f);var g=m(f,2),_=y(g);E(g),E(d),E(r),v((e,t)=>{i=q(r,1,`session-row svelte-z6w8je`,null,i,{selected:J(h)===J(n).id}),M(c,J(n).title||`Untitled session`),M(u,`Updated ${e??``}`),M(p,`${J(C)[J(n).id]??0??``} evt`),M(_,`${t??``}...`)},[()=>ce(J(n).updatedAt),()=>J(n).id.slice(0,12)]),s(`click`,r,()=>void oe(J(n).id)),t(e,r)}),E(Rt);var Vt=m(Rt,2),Ht=m(y(Vt),2),Ut=y(Ht,!0);E(Ht),E(Vt);var Wt=m(Vt,2),Gt=y(Wt),Kt=m(y(Gt)),qt=y(Kt),Jt=e=>{t(e,Ul())};f(qt,e=>{J(ge).length===0&&e(Jt)}),i(m(qt),17,()=>J(ge),r,(e,n)=>{var r=V(()=>z(J(n),2));let i=()=>J(r)[0],a=()=>J(r)[1];var o=Wl(),s=y(o),c=y(s,!0);E(s);var l=m(s),u=y(l,!0);E(l),E(o),v(()=>{M(c,i()),M(u,a())}),t(e,o)}),E(Kt),E(Gt),E(Wt);var Yt=m(Wt,2),Xt=m(y(Yt),2),Zt=y(Xt,!0);E(Xt),E(Yt);var Qt=m(Yt,2),$t=y(Qt),en=e=>{t(e,Gl())};f($t,e=>{J(_e).length===0&&e(en)}),i(m($t,2),17,()=>J(_e),e=>e.id,(e,n)=>{var r=Kl(),i=y(r),a=y(i),o=y(a,!0);E(a);var s=m(a,2),c=y(s,!0);E(s),E(i);var l=m(i,2),u=y(l,!0);E(l),E(r),v(()=>{M(o,J(n).title||`Untitled session`),M(c,J(n).id),M(u,J(n).events)}),t(e,r)}),E(Qt),E(Pt),E(bt);var tn=m(bt,2),nn=y(tn),rn=m(y(nn),2),an=e=>{var n=ql(),r=y(n,!0);E(n),v(()=>M(r,J(le).title||J(le).id)),t(e,n)};f(rn,e=>{J(le)&&e(an)}),E(nn);var on=m(nn,2),sn=e=>{var n=Yl(),r=x(n),a=y(r),o=m(y(a)),l=y(o,!0);E(o),E(a);var u=m(a,2),d=m(y(u)),p=y(d,!0);E(d),E(u);var h=m(u,2),_=m(y(h)),b=y(_,!0);E(_),E(h);var S=m(h,2),w=m(y(S)),T=y(w,!0);E(w),E(S),E(r);var D=m(r,2),O=m(y(D),2),k=y(O),A=e=>{Q(e,{})};f(k,e=>{J(c)&&e(A)}),K(),E(O),E(D);var j=m(D,2),N=e=>{t(e,Jl())};f(j,e=>{J(g).length===0&&!J(c)&&e(N)});var P=m(j,2);i(P,21,()=>J(g).slice(-12),e=>e.id,(e,t)=>{st(e,{get entry(){return J(t)}})}),E(P),v((e,t)=>{M(l,e),M(p,t),M(b,J(le).id),M(T,J(C)[J(le).id]??0),O.disabled=J(c)},[()=>ce(J(le).createdAt),()=>ce(J(le).updatedAt)]),s(`click`,O,()=>void X(J(le).id)),t(e,n)},cn=e=>{t(e,Xl())};f(on,e=>{J(le)?e(sn):e(cn,-1)}),E(tn),E(ve),v((e,t)=>{Ce.disabled=J(o),M(Me,Xe.active?.label??`Active assistant endpoint`),M(Pe,Xe.active?.url??`Loading endpoint URL...`),q(Fe,1,`stream-badge stream-badge--${J(d)??``}`,`svelte-z6w8je`),M(Ie,J(d)),M(Be,J(me)),M(He,`${J(he)??``} events seen in the last 5 minutes`),M(Ge,J(p).length),M(qe,`${J(fe)??``} active in the last 5 minutes`),M(et,J(ue)),nt=q(tt,1,`summary-card svelte-z6w8je`,null,nt,{"summary-card--danger":J(de)>0}),M(it,e),M(ct,J(de)>0?`${J(de)} failure${J(de)===1?``:`s`} need review.`:J(d)===`connected`?`Stream healthy.`:`Reconnect needed.`),M(dt,t),M(pt,`${J(b).length??``} recent events buffered`),ht=q(mt,1,`summary-card svelte-z6w8je`,null,ht,{"summary-card--danger":J(de)>0}),M(_t,J(de)),M(yt,J(de)>0?`Tool or session failures need review.`:`No current failures seen.`),M(wt,J(pe).length),M(At,J(b).length),M(Lt,J(p).length),M(Ut,J(ge).length),M(Zt,J(_e).length)},[()=>se(J(T)),()=>Object.keys(J(S)).length]),s(`click`,Ce,()=>void ae()),t(n,ve),L()}a([`click`]);var $l=u(`<div class="feedback feedback--error" role="alert"> </div>`),eu=u(`<div class="stats-loading svelte-1jrmvb5"><!> <span>Loading knowledge stats…</span></div>`),tu=u(`<div class="stats-unavailable svelte-1jrmvb5"><p> </p></div>`),nu=u(`<li> </li>`),ru=u(`<ul class="stats-advisories svelte-1jrmvb5"></ul>`),iu=u(`<div class="stats-row stats-row--wide svelte-1jrmvb5"><span> </span> <strong class="svelte-1jrmvb5"> </strong></div>`),au=u(`<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),ou=u(`<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 su(e,n){U(n,!0);let r=W(!1),a=W(``),o=W(null);async function c(){D(r,!0),D(a,``);try{D(o,await me(),!0)}catch(e){D(a,e instanceof Error?e.message:`Failed to load knowledge stats.`,!0)}finally{D(r,!1)}}function l(e){if(!e)return`—`;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function u(e,t=`Yes`,n=`No`){return e===!0?t:e===!1?n:`—`}function d(e){return e==null?`—`:e.toLocaleString()}function p(e){return e===`pass`?`Healthy`:e===`warn`?`Warnings`:`Unknown`}ee(()=>{c()});var h=ou(),g=y(h),_=m(y(g),2),b=y(_),S=e=>{Q(e,{})};f(b,e=>{J(r)&&e(S)}),K(),E(_),E(g);var C=m(g,2),w=e=>{var n=$l(),r=y(n,!0);E(n),v(()=>M(r,J(a))),t(e,n)},T=e=>{var n=eu();Q(y(n),{}),K(2),E(n),t(e,n)},O=e=>{var n=tu(),r=y(n),i=y(r,!0);E(r),E(n),v(()=>M(i,J(o).reason??`The akm CLI is not reachable from the admin host.`)),t(e,n)},k=e=>{var n=au(),r=x(n),a=y(r),s=y(a,!0);E(a);var c=m(a,2),h=e=>{var n=ru();i(n,20,()=>J(o).health.advisories,e=>e,(e,n)=>{var r=nu(),i=y(r,!0);E(r),v(()=>M(i,n)),t(e,r)}),E(n),t(e,n)};f(c,e=>{J(o).health.advisories.length>0&&e(h)}),E(r);var g=m(r,2),_=y(g),b=y(_),S=y(b,!0);E(b),K(2),E(_);var C=m(_,2),w=y(C),T=y(w,!0);E(w),K(2),E(C);var D=m(C,2),O=y(D),k=y(O,!0);E(O),K(2),E(D);var A=m(D,2),N=y(A),P=y(N,!0);E(N),K(2),E(A),E(g);var F=m(g,2),I=y(F),L=m(y(I)),R=y(L,!0);E(L),E(I);var z=m(I,2),B=m(y(z)),ee=y(B,!0);E(B),E(z);var V=m(z,2),H=m(y(V)),U=y(H,!0);E(H),E(V);var W=m(V,2),G=m(y(W)),te=y(G,!0);E(G),E(W);var ne=m(W,2),Y=m(y(ne)),re=y(Y,!0);E(Y),E(ne);var ie=m(ne,2),ae=m(y(ie)),X=y(ae,!0);E(ae),E(ie);var oe=m(ie,2),se=m(y(oe)),ce=y(se,!0);E(se),E(oe);var le=m(oe,2),ue=m(y(le)),de=y(ue,!0);E(ue),E(le);var fe=m(le,2),pe=m(y(fe)),me=y(pe,!0);E(pe),E(fe);var he=m(fe,2),ge=m(y(he)),_e=y(ge,!0);E(ge),E(he);var ve=m(he,2),ye=m(y(ve)),be=y(ye,!0);E(ye),E(ve);var xe=m(ve,2),Se=m(y(xe)),Ce=y(Se,!0);E(Se),E(xe);var we=m(xe,2),Te=m(y(we)),Ee=y(Te,!0);E(Te),E(we),E(F);var De=m(F,2),Z=y(De),Oe=m(y(Z)),ke=y(Oe,!0);E(Oe),E(Z);var Ae=m(Z,2),je=e=>{var n=j();i(x(n),19,()=>J(o).proposals.items,(e,t)=>e.ref??`${e.generator??`proposal`}-${t}`,(e,n)=>{var r=iu(),i=y(r),a=y(i,!0);E(i);var o=m(i,2),s=y(o);E(o),E(r),v(e=>{M(a,J(n).ref??`Unknown ref`),M(s,`${J(n).generator??`unknown generator`??``} · ${J(n).status??`pending`??``} · ${e??``}`)},[()=>l(J(n).createdAt)]),t(e,r)}),t(e,n)};f(Ae,e=>{J(o).proposals.items.length>0&&e(je)}),E(De),v((e,t,n,r,i,c,l,u,d,f,p,m,h,g,_,v,y)=>{q(a,1,`stats-badge ${J(o).health.status===`warn`?`stats-badge-warn`:J(o).health.status===`unknown`?`stats-badge-unknown`:``}`,`svelte-1jrmvb5`),M(s,e),M(S,t),M(T,n),M(k,r),M(P,i),M(R,J(o).version??`—`),M(ee,c),M(U,l),M(te,u),M(re,d),M(X,f),M(ce,p),M(de,m),M(me,h),M(_e,g),M(be,_),M(Ce,v),M(Ee,y),M(ke,J(o).proposals.pending===0?`None pending.`:`${J(o).proposals.pending} pending`)},[()=>p(J(o).health.status),()=>d(J(o).index.entryCount),()=>d(J(o).proposals.pending),()=>d(J(o).improve.completed),()=>d(J(o).improve.reflectCooldown),()=>l(J(o).index.lastBuiltAt),()=>u(J(o).index.hasEmbeddings),()=>u(J(o).index.vecAvailable),()=>d(J(o).assetCounts.memory),()=>d(J(o).assetCounts.skill),()=>d(J(o).assetCounts.lesson),()=>d(J(o).improve.invoked),()=>d(J(o).improve.skipped),()=>d(J(o).improve.reflectOk),()=>d(J(o).improve.consolidation.promoted),()=>d(J(o).improve.consolidation.merged),()=>d(J(o).improve.consolidation.deleted)]),t(e,n)};f(C,e=>{J(a)?e(w):!J(o)||J(r)?e(T,1):J(o).available?e(k,-1):e(O,2)}),E(h),v(()=>_.disabled=n.disabled),s(`click`,_,()=>void c()),t(e,h),L()}a([`click`]);var cu=u(`<div class="input-with-toggle svelte-176sy43"><input class="control-input svelte-176sy43" spellcheck="false" autocomplete="new-password"/> <button type="button" class="btn-icon svelte-176sy43"> </button></div>`);function lu(e,n){U(n,!0);let r=C(n,`value`,15,``),i=C(n,`disabled`,3,!1),a=W(!1);var o=cu(),c=y(o);T(c);var l=m(c,2),u=y(l,!0);E(l),E(o),v(()=>{O(c,`id`,n.id),O(c,`type`,J(a)?`text`:`password`),O(c,`placeholder`,n.placeholder),c.disabled=i(),O(l,`aria-label`,J(a)?`Hide value`:`Show value`),l.disabled=i(),M(u,J(a)?`Hide`:`Show`)}),G(c,r),s(`click`,l,()=>{D(a,!J(a))}),t(e,o),L()}a([`click`]);var uu=u(`<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 du(e,n){U(n,!0);let r=C(n,`endpoint`,15,``),i=C(n,`model`,15,``),a=C(n,`provider`,15,``),o=C(n,`apiKey`,15,``),c=C(n,`dimension`,15,1536),l=C(n,`localModel`,15,``),u=C(n,`batchSize`,15,``),d=C(n,`chunkSize`,15,``),p=C(n,`contextLength`,15,``),h=C(n,`ollamaNumCtx`,15,``),g=C(n,`disabled`,3,!1),_=C(n,`detecting`,3,!1),b=C(n,`testing`,3,!1);var x=uu(),S=y(x),w=m(y(S),2),D=y(w),O=y(D),k=e=>{Q(e,{})};f(O,e=>{_()&&e(k)}),K(),E(D);var A=m(D,2),j=y(A),M=e=>{Q(e,{})};f(j,e=>{b()&&e(M)}),K(),E(A),E(w),E(S);var N=m(S,4),P=y(N),F=m(y(P),2);T(F),E(P);var I=m(P,2),R=m(y(I),2);T(R),E(I);var z=m(I,2),B=m(y(z),2);T(B),E(z);var ee=m(z,2);lu(m(y(ee),2),{id:`embApiKey`,placeholder:"${AKM_EMBED_API_KEY}",get disabled(){return g()},get value(){return o()},set value(e){o(e)}}),E(ee);var V=m(ee,2),H=m(y(V),2);T(H),E(V);var W=m(V,2),te=m(y(W),2);T(te),E(W);var q=m(W,2),J=m(y(q),2);T(J),E(q);var ne=m(q,2),Y=m(y(ne),2);T(Y),E(ne);var re=m(ne,2),ie=m(y(re),2);T(ie),E(re);var ae=m(re,2),X=m(y(ae),2);T(X),E(ae),E(N),E(x),v(()=>{D.disabled=g()||_()||b(),A.disabled=g()||_()||b(),F.disabled=g(),R.disabled=g(),B.disabled=g(),H.disabled=g(),te.disabled=g(),J.disabled=g(),Y.disabled=g(),ie.disabled=g(),X.disabled=g()}),s(`click`,D,function(...e){n.ondetect?.apply(this,e)}),s(`click`,A,function(...e){n.ontest?.apply(this,e)}),G(F,r),G(R,i),G(B,a),G(H,c),G(te,l),G(J,u),G(Y,d),G(ie,p),G(X,h),t(e,x),L()}a([`click`]);var fu=u(`<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 pu(e,n){U(n,!0);let r=C(n,`semanticSearchMode`,15,`auto`),i=C(n,`outputFormat`,15,`json`),a=C(n,`outputDetail`,15,`brief`),o=C(n,`imHalfLife`,15,``),s=C(n,`imFeedbackBoost`,15,``),l=C(n,`imEventRetention`,15,``),u=C(n,`searchMinScore`,15,``),d=C(n,`searchCurateRerank`,15,``),f=C(n,`fbRequireReason`,15,``),p=C(n,`fbFailureModes`,15,``),h=C(n,`indexJson`,15,``),g=C(n,`disabled`,3,!1);var _=fu(),b=x(_),S=m(y(b),2),w=y(S),D=m(y(w),2),k=y(D);k.value=k.__value=`auto`;var j=m(k);j.value=j.__value=`off`,E(D),E(w);var M=m(w,2),N=m(y(M),2),P=y(N);P.value=P.__value=`json`;var F=m(P);F.value=F.__value=`yaml`;var I=m(F);I.value=I.__value=`text`,E(N),E(M);var R=m(M,2),z=m(y(R),2),B=y(z);B.value=B.__value=`brief`;var ee=m(B);ee.value=ee.__value=`normal`;var V=m(ee);V.value=V.__value=`full`,E(z),E(R),E(S),E(b);var H=m(b,2),W=m(y(H),2),te=m(y(W),2),q=y(te),J=m(y(q),2);T(J),E(q);var ne=m(q,2),Y=m(y(ne),2);T(Y),E(ne);var re=m(ne,2),ie=m(y(re),2);T(ie),E(re);var ae=m(re,2),X=m(y(ae),2);T(X),E(ae);var oe=m(ae,2),se=m(y(oe),2),ce=y(se);ce.value=ce.__value=``;var le=m(ce);le.value=le.__value=`on`;var ue=m(le);ue.value=ue.__value=`off`,E(se),E(oe);var de=m(oe,2),fe=m(y(de),2),pe=y(fe);pe.value=pe.__value=``;var me=m(pe);me.value=me.__value=`on`;var he=m(me);he.value=he.__value=`off`,E(fe),E(de);var ge=m(de,2),_e=m(y(ge),2);T(_e),E(ge);var ve=m(ge,2),ye=m(y(ve),2);c(ye),O(ye,`placeholder`,`{ "enrichment": { "llm": false } }`),K(2),E(ve),E(te),E(W),E(H),v(()=>{D.disabled=g(),N.disabled=g(),z.disabled=g(),J.disabled=g(),Y.disabled=g(),ie.disabled=g(),X.disabled=g(),se.disabled=g(),fe.disabled=g(),_e.disabled=g(),ye.disabled=g()}),A(D,r),A(N,i),A(z,a),G(J,o),G(Y,s),G(ie,l),G(X,u),A(se,d),A(fe,f),G(_e,p),G(ye,h),t(e,_),L()}var mu=u(`<option> </option>`),hu=u(`<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>`),gu=u(`<div class="report-loading svelte-l50p56">Generating report…</div>`),_u=u(`<iframe title="AKM Health Report" class="report-frame svelte-l50p56"></iframe>`),vu=u(`<!> <!>`,1),yu=u(`<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 current stack'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 bu(e,n){U(n,!0);let a=[{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`}],c=W(`72h`),u=W(0),d=W(!0),p=W(!1),g=W(null),_=W(``),b=V(()=>`/admin/akm/health-report?since=${encodeURIComponent(J(c))}&refresh=${J(u)}`);async function S(){D(d,!0),D(p,!1),D(g,null),D(_,``);try{let e=await fetch(J(b),{method:`HEAD`});if(!e.ok){D(_,`Failed to generate report (${e.status} ${e.statusText}).`),D(d,!1);return}}catch{D(_,`Could not reach the report endpoint. Check that the stack is running.`),D(d,!1);return}D(g,J(b),!0)}function C(){D(u,J(u)+1)}function w(){D(u,J(u)+1)}o(()=>{S()});var T=yu(),k=y(T),j=m(y(k),2),N=y(j),P=m(y(N),2);i(P,21,()=>a,r,(e,n)=>{var r=mu(),i=y(r,!0);E(r);var a={};v(()=>{M(i,J(n).label),a!==(a=J(n).value)&&(r.value=(r.__value=J(n).value)??``)}),t(e,r)}),E(P),E(N);var F=m(N,2);E(j),E(k);var I=m(k,2),R=y(I),z=e=>{var n=hu(),r=y(n),i=y(r,!0);E(r);var a=m(r,2);E(n),v(()=>M(i,J(_))),s(`click`,a,C),t(e,n)},B=e=>{var n=vu(),r=x(n),i=e=>{t(e,gu())};f(r,e=>{(J(d)||!J(p))&&e(i)});var a=m(r,2),o=e=>{var n=_u();v(()=>O(n,`src`,J(g))),l(`load`,n,()=>{D(d,!1),D(p,!0)}),h(n),t(e,n)};f(a,e=>{J(g)&&e(o)}),t(e,n)};f(R,e=>{J(_)?e(z):e(B,-1)}),E(I),E(T),v(()=>{P.disabled=n.disabled,F.disabled=n.disabled}),s(`change`,P,w),A(P,()=>J(c),e=>D(c,e)),s(`click`,F,C),t(e,T),L()}a([`change`,`click`]);var xu=u(`<span class="badge badge--default svelte-zzh9mp">Default</span>`),Su=u(`<button class="btn btn-sm">Set Default</button>`),Cu=u(`<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 wu(e,r){let i=C(r,`disabled`,3,!1);var a=Cu(),o=y(a),c=y(o,!0);E(o);var l=m(o,2),u=e=>{var i=j();n(x(i),()=>r.extra),t(e,i)};f(l,e=>{r.extra&&e(u)});var d=m(l,2),p=e=>{t(e,xu())};f(d,e=>{r.isDefault&&r.name&&e(p)});var h=m(d,2),g=y(h),_=e=>{var n=Su();v(()=>n.disabled=i()),s(`click`,n,function(...e){r.onsetdefault?.apply(this,e)}),t(e,n)};f(g,e=>{r.name&&!r.isDefault&&e(_)});var b=m(g,2),S=m(b,2);E(h),E(a),v(()=>{M(c,r.name||`(unnamed)`),b.disabled=i(),S.disabled=i()}),s(`click`,b,function(...e){r.onedit?.apply(this,e)}),s(`click`,S,function(...e){r.onremove?.apply(this,e)}),t(e,a)}a([`click`]);var Tu=u(`<div class="profile-empty svelte-zwwvog"><svg aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-zwwvog"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5v14c0 1.66 4.03 3 9 3s9-1.34 9-3V5"></path><path d="M3 12c0 1.66 4.03 3 9 3s9-1.34 9-3"></path></svg> <p class="empty-note svelte-zwwvog">No LLM profiles configured — add one below.</p></div>`),Eu=u(`<div class="profile-list svelte-zwwvog"></div>`),Du=u(`<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 Ou(n,r){U(r,!0);let a=C(r,`profiles`,27,()=>e([])),o=C(r,`defaultName`,15,``),c=C(r,`disabled`,3,!1);var l=Du(),u=m(y(l),4),d=e=>{t(e,Tu())},p=e=>{var n=Eu();i(n,21,a,e=>e.id,(e,t)=>{{let n=V(()=>o()===J(t).name);wu(e,{get name(){return J(t).name},get isDefault(){return J(n)},get disabled(){return c()},onsetdefault:()=>{o(J(t).name)},onedit:()=>r.onedit(J(t)),onremove:()=>r.onremove(J(t).id)})}}),E(n),t(e,n)};f(u,e=>{a().length===0?e(d):e(p,-1)});var h=m(u,2);E(l),v(()=>h.disabled=c()),s(`click`,h,function(...e){r.onadd?.apply(this,e)}),t(n,l),L()}a([`click`]);var ku=u(`<div class="profile-empty svelte-anyxpa"><svg aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-anyxpa"><rect x="2" y="3" width="20" height="14" rx="2"></rect><path d="M8 21h8m-4-4v4"></path><circle cx="12" cy="10" r="2"></circle><path d="M9 10H7m10 0h-2"></path></svg> <p class="empty-note svelte-anyxpa">No agent profiles defined.</p></div>`),Au=u(`<span class="badge svelte-anyxpa"> </span>`),ju=u(`<div class="profile-list svelte-anyxpa"></div>`),Mu=u(`<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 Nu(n,r){U(r,!0);let a=C(r,`profiles`,27,()=>e([])),o=C(r,`defaultName`,15,``),c=C(r,`disabled`,3,!1);var l=Mu(),u=m(y(l),4),d=e=>{t(e,ku())},p=e=>{var n=ju();i(n,21,a,e=>e.id,(e,n)=>{{let i=e=>{var r=Au(),i=y(r,!0);E(r),v(()=>M(i,J(n).platform)),t(e,r)},a=V(()=>o()===J(n).name);wu(e,{get name(){return J(n).name},get isDefault(){return J(a)},get disabled(){return c()},onsetdefault:()=>{o(J(n).name)},onedit:()=>r.onedit(J(n)),onremove:()=>r.onremove(J(n).id),extra:i,$$slots:{extra:!0}})}}),E(n),t(e,n)};f(u,e=>{a().length===0?e(d):e(p,-1)});var h=m(u,2);E(l),v(()=>h.disabled=c()),s(`click`,h,function(...e){r.onadd?.apply(this,e)}),t(n,l),L()}a([`click`]);var Pu=u(`<div class="profile-empty svelte-1ngozvb"><svg aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1ngozvb"><path d="M12 3c-1 2-2 3-3 4 1 3 3 5 3 8a6 6 0 0 1-6-6c0-3 2-5 3-6"></path><path d="M17.5 3.5c.5 1.5.5 3-.5 4.5 1 1 2 2.5 2 4a4 4 0 0 1-4-4c0-2 1-3.5 2.5-4.5z"></path></svg> <p class="empty-note svelte-1ngozvb">No improve profiles defined — add one below.</p></div>`),Fu=u(`<span class="profile-row-desc svelte-1ngozvb"> </span>`),Iu=u(`<div class="profile-list svelte-1ngozvb"></div>`),Lu=u(`<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 Ru(n,r){U(r,!0);let a=C(r,`profiles`,27,()=>e([])),o=C(r,`defaultName`,15,``),c=C(r,`disabled`,3,!1);var l=Lu(),u=m(y(l),4),d=e=>{t(e,Pu())},p=e=>{var n=Iu();i(n,21,a,e=>e.id,(e,n)=>{{let i=e=>{var r=j(),i=x(r),a=e=>{var r=Fu(),i=y(r,!0);E(r),v(()=>M(i,J(n).description)),t(e,r)};f(i,e=>{J(n).description&&e(a)}),t(e,r)},a=V(()=>o()===J(n).name);wu(e,{get name(){return J(n).name},get isDefault(){return J(a)},get disabled(){return c()},onsetdefault:()=>{o(J(n).name)},onedit:()=>r.onedit(J(n)),onremove:()=>r.onremove(J(n).id),extra:i,$$slots:{extra:!0}})}}),E(n),t(e,n)};f(u,e=>{a().length===0?e(d):e(p,-1)});var h=m(u,2);E(l),v(()=>h.disabled=c()),s(`click`,h,function(...e){r.onadd?.apply(this,e)}),t(n,l),L()}a([`click`]);var zu=u(`<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(--space-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(--space-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 Bu(e,n){U(n,!0);let r=C(n,`draft`,15);var i=zu(),a=x(i),o=m(a,2),l=y(o),u=m(y(l),2);E(l);var d=m(l,2),f=y(d),p=y(f),h=m(y(p),2);T(h),E(p);var g=m(p,2),_=m(y(g),2);T(_),E(g);var v=m(g,2),b=m(y(v),2);T(b),E(v);var S=m(v,2),D=m(y(S),2);T(D),E(S);var k=m(S,2);lu(m(y(k),2),{id:`d-llm-apikey`,placeholder:"${AKM_LLM_API_KEY}",get value(){return r().apiKey},set value(e){r(r().apiKey=e,!0)}}),E(k);var A=m(k,2),j=m(y(A),2);T(j),E(A);var M=m(A,2),N=m(y(M),2);T(N),E(M);var P=m(M,2),F=m(y(P),2);T(F),E(P);var I=m(P,2),R=m(y(I),2);T(R),E(I);var z=m(I,2),B=m(y(z),2);T(B),E(z);var ee=m(z,2),V=m(y(ee),2);T(V),E(ee),E(f);var H=m(f,2),W=y(H);T(W),K(4),E(H);var te=m(H,2),q=y(te);T(q),K(4),E(te);var J=m(te,2),ne=y(J);T(ne),K(4),E(J);var Y=m(J,2),re=m(y(Y),2);c(re),O(re,`placeholder`,`{ "top_p": 0.9 }`),K(2),E(Y),E(d);var ie=m(d,2),ae=y(ie),X=m(ae,2);E(ie),E(o),s(`click`,a,function(...e){n.oncancel?.apply(this,e)}),s(`click`,u,function(...e){n.oncancel?.apply(this,e)}),G(h,()=>r().name,e=>r(r().name=e,!0)),G(_,()=>r().endpoint,e=>r(r().endpoint=e,!0)),G(b,()=>r().model,e=>r(r().model=e,!0)),G(D,()=>r().provider,e=>r(r().provider=e,!0)),G(j,()=>r().temperature,e=>r(r().temperature=e,!0)),G(N,()=>r().maxTokens,e=>r(r().maxTokens=e,!0)),G(F,()=>r().timeoutMs,e=>r(r().timeoutMs=e,!0)),G(R,()=>r().concurrency,e=>r(r().concurrency=e,!0)),G(B,()=>r().contextLength,e=>r(r().contextLength=e,!0)),G(V,()=>r().judgeModel,e=>r(r().judgeModel=e,!0)),w(W,()=>r().supportsJsonSchema,e=>r(r().supportsJsonSchema=e,!0)),w(q,()=>r().structuredOutput,e=>r(r().structuredOutput=e,!0)),w(ne,()=>r().enableThinking,e=>r(r().enableThinking=e,!0)),G(re,()=>r().extraParams,e=>r(r().extraParams=e,!0)),s(`click`,ae,function(...e){n.oncancel?.apply(this,e)}),s(`click`,X,function(...e){n.onapply?.apply(this,e)}),t(e,i),L()}a([`click`]);var Vu=u(`<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),Hu=u(`<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),Uu=u(`<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 Wu(e,n){U(n,!0);let r=C(n,`draft`,15);var i=Uu(),a=x(i),o=m(a,2),c=y(o),l=m(y(c),2);E(c);var u=m(c,2),d=y(u),p=y(d),h=m(y(p),2);T(h),E(p);var g=m(p,2),_=m(y(g),2),v=y(_);v.value=v.__value=`opencode`;var b=m(v);b.value=b.__value=`claude`;var S=m(b);S.value=S.__value=`opencode-sdk`,E(_),E(g);var w=m(g,2),D=e=>{var n=Vu(),i=x(n),a=m(y(i),2);T(a),E(i);var o=m(i,2),s=m(y(o),2);T(s),E(o),G(a,()=>r().bin,e=>r(r().bin=e,!0)),G(s,()=>r().args,e=>r(r().args=e,!0)),t(e,n)},k=e=>{var n=Hu(),i=x(n),a=m(y(i),2);T(a),E(i);var o=m(i,2),s=m(y(o),2);T(s),O(s,`placeholder`,"${PWD}"),E(o),G(a,()=>r().model,e=>r(r().model=e,!0)),G(s,()=>r().workspace,e=>r(r().workspace=e,!0)),t(e,n)};f(w,e=>{r().platform===`opencode-sdk`?e(k,-1):e(D)}),E(d),E(u);var j=m(u,2),M=y(j),N=m(M,2);E(j),E(o),s(`click`,a,function(...e){n.oncancel?.apply(this,e)}),s(`click`,l,function(...e){n.oncancel?.apply(this,e)}),G(h,()=>r().name,e=>r(r().name=e,!0)),A(_,()=>r().platform,e=>r(r().platform=e,!0)),s(`click`,M,function(...e){n.oncancel?.apply(this,e)}),s(`click`,N,function(...e){n.onapply?.apply(this,e)}),t(e,i),L()}a([`click`]);var Gu=[`reflect`,`distill`,`consolidate`,`validation`,`memoryInference`,`graphExtraction`,`extract`,`triage`],Ku={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`},qu={reflect:!0,distill:!0,consolidate:!1,validation:!1,memoryInference:!0,graphExtraction:!0,extract:!0,triage:!1};function Ju(e){if(typeof e==`number`)return isNaN(e)?void 0:e;let t=parseFloat(e);return e.trim()===``||isNaN(t)?void 0:t}function Yu(e){if(typeof e==`number`)return isNaN(e)?void 0:Math.trunc(e);let t=parseInt(e,10);return e.trim()===``||isNaN(t)?void 0:t}function Xu(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 Zu=e=>typeof e==`object`&&e&&`enabled`in e?e.enabled?`on`:`off`:``,Qu=new Set([`enabled`,`mode`,`profile`,`timeoutMs`,`allowedTypes`,`qualityGate`,`contradictionDetection`,`defaultSince`,`maxTotalChars`,`maxChunkSize`,`applyMode`,`policy`,`maxAcceptsPerRun`,`maxDiffLines`,`rejectEmpty`,`judgment`]);function $u(e,t){let n=Xu(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=Zu(r.qualityGate),n.contradictionDetection=Zu(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))Qu.has(e)||(n.rest[e]=t);return n}function ed(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=Yu(e.maxTotalChars);r!==void 0&&(t.maxTotalChars=r);let i=Yu(e.maxChunkSize);i!==void 0&&(t.maxChunkSize=i),e.applyMode&&(t.applyMode=e.applyMode),e.policy&&(t.policy=e.policy);let a=Yu(e.maxAcceptsPerRun);a!==void 0&&(t.maxAcceptsPerRun=a);let o=Yu(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 td=u(`<option></option>`),nd=u(`<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>`),rd=u(`<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>`),id=u(`<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),ad=u(`<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"/> <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),od=u(`<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>`),sd=u(`<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 cd(e,n){U(n,!0);let a=C(n,`draft`,15);var o=sd(),c=x(o);i(c,21,()=>n.llmProfileNames,r,(e,n)=>{var r=td(),i={};v(()=>{i!==(i=J(n))&&(r.value=(r.__value=J(n))??``)}),t(e,r)}),E(c);var l=m(c,2),u=m(l,2),d=y(u),p=m(y(d),2);E(d);var h=m(d,2),g=y(h),_=y(g),b=m(y(_),2);T(b),E(_);var S=m(_,2),D=m(y(S),2);T(D),E(S);var k=m(S,2),j=m(y(k),2);T(j),E(k);var N=m(k,2),P=m(y(N),2);T(P),E(N),E(g);var F=m(g,2);i(F,20,()=>Gu,e=>e,(e,n)=>{let r=V(()=>a().processes[n]);var i=od(),o=y(i),s=y(o);T(s);var c=m(s,2),l=y(c),u=y(l,!0);E(l);var d=m(l),p=y(d,!0);E(d),E(c);var h=m(c,2),g=y(h);g.value=g.__value=``;var _=m(g);_.value=_.__value=`llm`;var b=m(_);b.value=b.__value=`agent`;var S=m(b);S.value=S.__value=`sdk`,E(h);var C=m(h,2);T(C);var D=m(C,2);T(D),E(o);var k=m(o,2),j=m(y(k),2),N=y(j),P=m(y(N),2);T(P),E(N);var F=m(N,2),I=e=>{var n=nd(),i=m(y(n),2),a=y(i);a.value=a.__value=``;var o=m(a);o.value=o.__value=`on`;var s=m(o);s.value=s.__value=`off`,E(i),E(n),A(i,()=>J(r).qualityGate,e=>J(r).qualityGate=e),t(e,n)};f(F,e=>{(n===`reflect`||n===`distill`)&&e(I)});var L=m(F,2),R=e=>{var n=rd(),i=m(y(n),2),a=y(i);a.value=a.__value=``;var o=m(a);o.value=o.__value=`on`;var s=m(o);s.value=s.__value=`off`,E(i),E(n),A(i,()=>J(r).contradictionDetection,e=>J(r).contradictionDetection=e),t(e,n)};f(L,e=>{n===`consolidate`&&e(R)});var z=m(L,2),B=e=>{var n=id(),i=x(n),a=m(y(i),2);T(a),E(i);var o=m(i,2),s=m(y(o),2);T(s),E(o);var c=m(o,2),l=m(y(c),2);T(l),E(c),G(a,()=>J(r).defaultSince,e=>J(r).defaultSince=e),G(s,()=>J(r).maxTotalChars,e=>J(r).maxTotalChars=e),G(l,()=>J(r).maxChunkSize,e=>J(r).maxChunkSize=e),t(e,n)};f(z,e=>{n===`extract`&&e(B)});var ee=m(z,2),H=e=>{var n=ad(),i=x(n),a=m(y(i),2),o=y(a);o.value=o.__value=``;var s=m(o);s.value=s.__value=`queue`;var c=m(s);c.value=c.__value=`promote`,E(a),E(i);var l=m(i,2),u=m(y(l),2);T(u),E(l);var d=m(l,2),f=m(y(d),2);T(f),E(d);var p=m(d,2),h=m(y(p),2);T(h),E(p);var g=m(p,2),_=y(g);T(_),K(2),E(g);var v=m(g,2),b=m(y(v),2),S=y(b),C=m(y(S),2),D=y(C);D.value=D.__value=``;var O=m(D);O.value=O.__value=`llm`;var k=m(O);k.value=k.__value=`agent`;var j=m(k);j.value=j.__value=`sdk`,E(C),E(S);var M=m(S,2),N=m(y(M),2);T(N),E(M);var P=m(M,2),F=m(y(P),2);T(F),E(P),E(b),E(v),A(a,()=>J(r).applyMode,e=>J(r).applyMode=e),G(u,()=>J(r).policy,e=>J(r).policy=e),G(f,()=>J(r).maxAcceptsPerRun,e=>J(r).maxAcceptsPerRun=e),G(h,()=>J(r).maxDiffLines,e=>J(r).maxDiffLines=e),w(_,()=>J(r).rejectEmpty,e=>J(r).rejectEmpty=e),A(C,()=>J(r).judgment.mode,e=>J(r).judgment.mode=e),G(N,()=>J(r).judgment.profile,e=>J(r).judgment.profile=e),G(F,()=>J(r).judgment.timeoutMs,e=>J(r).judgment.timeoutMs=e),t(e,n)};f(ee,e=>{n===`triage`&&e(H)}),E(j),E(k),E(i),v(()=>{O(s,`aria-label`,`${n??``} enabled`),M(u,n),M(p,Ku[n]),O(h,`aria-label`,`${n??``} mode`),O(C,`aria-label`,`${n??``} profile`),O(D,`aria-label`,`${n??``} timeout`)}),w(s,()=>J(r).enabled,e=>J(r).enabled=e),A(h,()=>J(r).mode,e=>J(r).mode=e),G(C,()=>J(r).profile,e=>J(r).profile=e),G(D,()=>J(r).timeoutMs,e=>J(r).timeoutMs=e),G(P,()=>J(r).allowedTypes,e=>J(r).allowedTypes=e),t(e,i)}),E(F);var I=m(F,2),R=y(I),z=m(y(R),2),B=y(z);B.value=B.__value=``;var ee=m(B);ee.value=ee.__value=`on`;var H=m(ee);H.value=H.__value=`off`,E(z),E(R);var W=m(R,2),te=m(y(W),2),q=y(te);q.value=q.__value=``;var ne=m(q);ne.value=ne.__value=`on`;var Y=m(ne);Y.value=Y.__value=`off`,E(te),E(W);var re=m(W,2),ie=m(y(re),2);T(ie),E(re),E(I),E(h);var ae=m(h,2),X=y(ae),oe=m(X,2);E(ae),E(u),s(`click`,l,function(...e){n.oncancel?.apply(this,e)}),s(`click`,p,function(...e){n.oncancel?.apply(this,e)}),G(b,()=>a().name,e=>a(a().name=e,!0)),G(D,()=>a().description,e=>a(a().description=e,!0)),G(j,()=>a().limit,e=>a(a().limit=e,!0)),G(P,()=>a().autoAccept,e=>a(a().autoAccept=e,!0)),A(z,()=>a().syncEnabled,e=>a(a().syncEnabled=e,!0)),A(te,()=>a().syncPush,e=>a(a().syncPush=e,!0)),G(ie,()=>a().syncMessage,e=>a(a().syncMessage=e,!0)),s(`click`,X,function(...e){n.oncancel?.apply(this,e)}),s(`click`,oe,function(...e){n.onapply?.apply(this,e)}),t(e,o),L()}a([`click`]);var ld=u(`<div class="error-banner svelte-19wb2va"><span> </span></div>`),ud=u(`<!> <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),dd=u(`<div class="panel" role="tabpanel"><div class="panel-header svelte-19wb2va"><h2 class="svelte-19wb2va">Knowledge</h2> <div class="panel-header-actions svelte-19wb2va"><button class="btn btn-secondary btn-sm"><!> Refresh</button> <button class="btn btn-secondary btn-sm"><!> Re-index</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> <button role="tab">Health Report</button></div> <!> <!> <!></div> <!></div>`);function fd(n,r){U(r,!0);let i=W(!1),a=W(!1),o=W(!1),c=W(!1),l=W(!1),u=W(``),d=W(e([])),p=W(``),h=W(e([])),g=W(``),_=W(e([])),b=W(``),S=W(``),C=W(``),w=W(``),T=W(``),k=W(1536),A=W(``),j=W(``),N=W(``),P=W(``),F=W(``),I=W(`auto`),R=W(`json`),z=W(`brief`),B=W(``),H=W(``),G=W(``),te=W(``),ne=W(``),Y=W(``),re=W(``),ie=W(``),ae=W(`ai-services`),X=W(null),oe=W(null),ce=W(null),le=W(null),ue=V(()=>J(d).map(e=>e.name).filter(e=>e));function de(){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 fe(){return{id:crypto.randomUUID(),name:``,platform:`opencode`,bin:``,args:``,workspace:``,model:``}}function pe(){let e={};for(let t of Gu)e[t]=Xu(qu[t]);return{id:crypto.randomUUID(),name:``,description:``,limit:25,autoAccept:0,processes:e,syncEnabled:``,syncPush:``,syncMessage:``}}function me(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:e.capabilities?.structuredOutput??!1,extraParams:e.extraParams&&typeof e.extraParams==`object`?JSON.stringify(e.extraParams,null,2):``}}function he(e){let t={endpoint:e.endpoint,model:e.model};e.provider&&(t.provider=e.provider),e.apiKey&&(t.apiKey=e.apiKey);let n=Ju(e.temperature);n!==void 0&&(t.temperature=n);let r=Yu(e.maxTokens);r!==void 0&&(t.maxTokens=r);let i=Yu(e.timeoutMs);i!==void 0&&(t.timeoutMs=i);let a=Yu(e.concurrency);a!==void 0&&(t.concurrency=a);let o=Yu(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 _e(e,t){let n=t.processes??{},r={};for(let e of Gu)r[e]=$u(n[e],qu[e]);let i=t.sync;return{id:crypto.randomUUID(),name:e,description:t.description??``,limit:typeof t.limit==`number`?t.limit:25,autoAccept:typeof t.autoAccept==`number`?t.autoAccept:0,processes:r,syncEnabled:Zu(i?{enabled:i.enabled}:void 0),syncPush:Zu(i?{enabled:i.push}:void 0),syncMessage:i?.message??``}}function ve(e){D(oe,{...e},!0),D(X,`llm`)}function ye(e){D(ce,{...e},!0),D(X,`agent`)}function be(e){let t={};for(let n of Gu){let r=e.processes[n];t[n]={...r,judgment:{...r.judgment},rest:{...r.rest}}}D(le,{...e,processes:t},!0),D(X,`improve`)}function xe(){if(J(X)===`llm`&&J(oe)){let e={...J(oe)},t=J(d).findIndex(t=>t.id===e.id),n=t>=0?J(d)[t].name:``;D(d,t>=0?J(d).map((n,r)=>r===t?e:n):[...J(d),e],!0),J(p)===n&&D(p,e.name,!0)}else if(J(X)===`agent`&&J(ce)){let e={...J(ce)},t=J(h).findIndex(t=>t.id===e.id),n=t>=0?J(h)[t].name:``;D(h,t>=0?J(h).map((n,r)=>r===t?e:n):[...J(h),e],!0),J(g)===n&&D(g,e.name,!0)}else if(J(X)===`improve`&&J(le)){let e={...J(le),processes:{...J(le).processes}},t=J(_).findIndex(t=>t.id===e.id),n=t>=0?J(_)[t].name:``;D(_,t>=0?J(_).map((n,r)=>r===t?e:n):[...J(_),e],!0),J(b)===n&&D(b,e.name,!0)}Se()}function Se(){D(X,null),D(oe,null),D(ce,null),D(le,null)}function Ce(e,t){if(e===`llm`){let e=J(d).find(e=>e.id===t)?.name??``;J(p)===e&&D(p,``),D(d,J(d).filter(e=>e.id!==t),!0)}else if(e===`agent`){let e=J(h).find(e=>e.id===t)?.name??``;J(g)===e&&D(g,``),D(h,J(h).filter(e=>e.id!==t),!0)}else{let e=J(_).find(e=>e.id===t)?.name??``;J(b)===e&&D(b,``),D(_,J(_).filter(e=>e.id!==t),!0)}J(X)===e&&Se()}async function we(){D(i,!0),D(u,``);try{let{config:e}=await se(),t=e.profiles,n=t?.llm;D(d,n?Object.entries(n).map(([e,t])=>({id:crypto.randomUUID(),name:e,...me(t)})):[],!0);let r=t?.agent;D(h,r?Object.entries(r).map(([e,t])=>{let n=t;return{id:crypto.randomUUID(),name:e,platform:n.platform??`opencode`,bin:n.bin??``,args:Array.isArray(n.args)?n.args.join(` `):``,workspace:n.workspace??``,model:n.model??``}}):[],!0);let i=t?.improve;D(_,i?Object.entries(i).map(([e,t])=>_e(e,t)):[],!0);let a=e.defaults;D(p,a?.llm??``,!0),D(g,a?.agent??``,!0),D(b,a?.improve??``,!0);let o=e.embedding;D(S,o?.endpoint??``,!0),D(C,o?.model??``,!0),D(w,o?.provider??``,!0),D(T,o?.apiKey??``,!0),D(k,typeof o?.dimension==`number`?o.dimension:1536,!0),D(A,o?.localModel??``,!0),D(j,o?.batchSize==null?``:String(o.batchSize),!0),D(N,o?.chunkSize==null?``:String(o.chunkSize),!0),D(P,o?.contextLength==null?``:String(o.contextLength),!0);let s=o?.ollamaOptions;D(F,s?.num_ctx==null?``:String(s.num_ctx),!0),D(I,e.semanticSearchMode??`auto`,!0);let c=e.output;D(R,c?.format??`json`,!0),D(z,c?.detail??`brief`,!0);let l=e=>typeof e==`number`?String(e):``,u=e=>e&&typeof e==`object`&&`enabled`in e?e.enabled?`on`:`off`:``,f=e.improve,m=f?.utilityDecay;D(B,l(m?.halfLifeDays),!0),D(H,l(m?.feedbackStabilityBoost),!0),D(G,l(f?.eventRetentionDays),!0);let v=e.search;D(te,l(v?.minScore),!0),D(ne,u(v?.curateRerank),!0);let y=e.feedback;D(Y,typeof y?.requireReason==`boolean`?y.requireReason?`on`:`off`:``,!0),D(re,Array.isArray(y?.allowedFailureModes)?y.allowedFailureModes.join(`, `):``,!0),D(ie,e.index&&typeof e.index==`object`?JSON.stringify(e.index,null,2):``,!0)}catch(e){D(u,e instanceof Error?e.message:`Failed to load AKM config.`,!0)}finally{D(i,!1)}}async function Te(){D(a,!0),D(u,``);try{let e={};for(let t of J(d))t.name.trim()&&(e[t.name.trim()]=he(t));let t={};for(let e of J(h)){if(!e.name.trim())continue;let n={platform:e.platform};e.bin&&(n.bin=e.bin),e.args&&(n.args=e.args.split(/\s+/).filter(Boolean)),e.workspace&&(n.workspace=e.workspace),e.model&&(n.model=e.model),t[e.name.trim()]=n}let n={};for(let e of J(_)){if(!e.name.trim())continue;let t={};for(let n of Gu)t[n]=ed(e.processes[n]);let r={limit:e.limit,processes:t};e.description&&(r.description=e.description),e.autoAccept>0&&(r.autoAccept=e.autoAccept);let i={};e.syncEnabled&&(i.enabled=e.syncEnabled===`on`),e.syncPush&&(i.push=e.syncPush===`on`),e.syncMessage.trim()&&(i.message=e.syncMessage.trim()),Object.keys(i).length&&(r.sync=i),n[e.name.trim()]=r}let r={endpoint:J(S),model:J(C),dimension:J(k)};J(w)&&(r.provider=J(w)),J(T)&&(r.apiKey=J(T)),J(A)&&(r.localModel=J(A));let i=Yu(J(j));i!==void 0&&(r.batchSize=i);let a=Yu(J(N));a!==void 0&&(r.chunkSize=a);let o=Yu(J(P));o!==void 0&&(r.contextLength=o);let s=Yu(J(F));s!==void 0&&(r.ollamaOptions={num_ctx:s});let c={};J(p)&&(c.llm=J(p)),J(g)&&(c.agent=J(g)),J(b)&&(c.improve=J(b));let l={},u={},f=Ju(J(B));f!==void 0&&(u.halfLifeDays=f);let m=Ju(J(H));m!==void 0&&(u.feedbackStabilityBoost=m),Object.keys(u).length&&(l.utilityDecay=u);let v=Ju(J(G));v!==void 0&&(l.eventRetentionDays=v);let y={},x=Ju(J(te));x!==void 0&&(y.minScore=x),J(ne)&&(y.curateRerank={enabled:J(ne)===`on`});let E={};J(Y)&&(E.requireReason=J(Y)===`on`);let D=J(re).split(`,`).map(e=>e.trim()).filter(Boolean);D.length&&(E.allowedFailureModes=D);let O;if(J(ie).trim()){let e;try{e=JSON.parse(J(ie))}catch{throw Error(`Index config must be valid JSON`)}if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Index config must be a JSON object keyed by pass name`);O=e}await ge({profiles:{llm:e,agent:t,improve:n},defaults:c,embedding:r,semanticSearchMode:J(I),output:{format:J(R),detail:J(z)},...Object.keys(l).length?{improve:l}:{},...Object.keys(y).length?{search:y}:{},...Object.keys(E).length?{feedback:E}:{},...O===void 0?{}:{index:O}}),Z.push(`success`,`AKM config saved.`)}catch(e){let t=e instanceof Error?e.message:`Failed to save AKM config.`;Z.push(`error`,t)}finally{D(a,!1)}}async function De(){D(o,!0),D(u,``);try{let e=await Ee();D(S,e.endpoint,!0),D(C,e.model,!0),D(w,e.provider,!0),D(k,e.dimension,!0),Z.push(`success`,e.message)}catch(e){let t=e instanceof Error?e.message:`Failed to detect embedding settings.`;Z.push(`error`,t)}finally{D(o,!1)}}async function Oe(){D(c,!0),D(u,``);try{let e=J(S).trim(),t=J(C).trim(),n=J(w).trim();if(!e||!t){let r=await Ee();e=r.endpoint,t=r.model,n=r.provider,D(S,r.endpoint,!0),D(C,r.model,!0),D(w,r.provider,!0),D(k,r.dimension,!0)}let r=await Le({endpoint:e,model:t,provider:n,apiKey:J(T),dimension:J(k)});D(k,r.dimension,!0),Z.push(`success`,r.message)}catch(e){let t=e instanceof Error?e.message:`Failed to test embedding settings.`;Z.push(`error`,t)}finally{D(c,!1)}}async function ke(){D(l,!0);try{let e=await Ie();Z.push(`success`,e.message)}catch(e){let t=e instanceof Error?e.message:`Failed to rebuild the AKM index.`;Z.push(`error`,t)}finally{D(l,!1)}}ee(()=>{r.tokenStored&&we()});var Ae=dd(),je=y(Ae),Me=m(y(je),2),Ne=y(Me),Pe=y(Ne),Fe=e=>{Q(e,{})};f(Pe,e=>{J(i)&&e(Fe)}),K(),E(Ne);var Re=m(Ne,2),ze=y(Re),Be=e=>{Q(e,{})};f(ze,e=>{J(l)&&e(Be)}),K(),E(Re);var Ve=m(Re,2),He=y(Ve),Ue=e=>{Q(e,{})};f(He,e=>{J(a)&&e(Ue)}),K(),E(Ve),E(Me),E(je);var We=m(je,2),Ge=e=>{var n=ld(),r=y(n),i=y(r,!0);E(r),E(n),v(()=>M(i,J(u))),t(e,n)};f(We,e=>{J(u)&&e(Ge)});var Ke=m(We,2),qe=y(Ke),Je=y(qe);let Ye;var Xe=m(Je,2);let Ze;var Qe=m(Xe,2);let $e;E(qe);var et=m(qe,2),tt=e=>{var n=ud(),s=x(n);{let e=V(()=>J(i)||J(a)||J(o)||J(c)||J(l)||!r.tokenStored);su(s,{get disabled(){return J(e)}})}var u=m(s,4);{let e=V(()=>J(i)||J(a));Ou(u,{get disabled(){return J(e)},onedit:e=>ve(e),onadd:()=>{D(oe,de(),!0),D(X,`llm`)},onremove:e=>Ce(`llm`,e),get profiles(){return J(d)},set profiles(e){D(d,e,!0)},get defaultName(){return J(p)},set defaultName(e){D(p,e,!0)}})}var f=m(u,2);{let e=V(()=>J(i)||J(a));Nu(f,{get disabled(){return J(e)},onedit:e=>ye(e),onadd:()=>{D(ce,fe(),!0),D(X,`agent`)},onremove:e=>Ce(`agent`,e),get profiles(){return J(h)},set profiles(e){D(h,e,!0)},get defaultName(){return J(g)},set defaultName(e){D(g,e,!0)}})}var v=m(f,2);{let e=V(()=>J(i)||J(a));Ru(v,{get disabled(){return J(e)},onedit:e=>be(e),onadd:()=>{D(le,pe(),!0),D(X,`improve`)},onremove:e=>Ce(`improve`,e),get profiles(){return J(_)},set profiles(e){D(_,e,!0)},get defaultName(){return J(b)},set defaultName(e){D(b,e,!0)}})}var y=m(v,2);{let e=V(()=>J(i)||J(a)||J(o)||J(c)||J(l));du(y,{get detecting(){return J(o)},get testing(){return J(c)},ondetect:()=>void De(),ontest:()=>void Oe(),get disabled(){return J(e)},get endpoint(){return J(S)},set endpoint(e){D(S,e,!0)},get model(){return J(C)},set model(e){D(C,e,!0)},get provider(){return J(w)},set provider(e){D(w,e,!0)},get apiKey(){return J(T)},set apiKey(e){D(T,e,!0)},get dimension(){return J(k)},set dimension(e){D(k,e,!0)},get localModel(){return J(A)},set localModel(e){D(A,e,!0)},get batchSize(){return J(j)},set batchSize(e){D(j,e,!0)},get chunkSize(){return J(N)},set chunkSize(e){D(N,e,!0)},get contextLength(){return J(P)},set contextLength(e){D(P,e,!0)},get ollamaNumCtx(){return J(F)},set ollamaNumCtx(e){D(F,e,!0)}})}t(e,n)};f(et,e=>{J(ae)===`ai-services`&&e(tt)});var nt=m(et,2),rt=e=>{{let t=V(()=>J(i)||J(a));pu(e,{get disabled(){return J(t)},get semanticSearchMode(){return J(I)},set semanticSearchMode(e){D(I,e,!0)},get outputFormat(){return J(R)},set outputFormat(e){D(R,e,!0)},get outputDetail(){return J(z)},set outputDetail(e){D(z,e,!0)},get imHalfLife(){return J(B)},set imHalfLife(e){D(B,e,!0)},get imFeedbackBoost(){return J(H)},set imFeedbackBoost(e){D(H,e,!0)},get imEventRetention(){return J(G)},set imEventRetention(e){D(G,e,!0)},get searchMinScore(){return J(te)},set searchMinScore(e){D(te,e,!0)},get searchCurateRerank(){return J(ne)},set searchCurateRerank(e){D(ne,e,!0)},get fbRequireReason(){return J(Y)},set fbRequireReason(e){D(Y,e,!0)},get fbFailureModes(){return J(re)},set fbFailureModes(e){D(re,e,!0)},get indexJson(){return J(ie)},set indexJson(e){D(ie,e,!0)}})}};f(nt,e=>{J(ae)===`behavior`&&e(rt)});var it=m(nt,2),at=e=>{{let t=V(()=>J(i)||J(a)||J(o)||J(c)||J(l)||!r.tokenStored);bu(e,{get disabled(){return J(t)}})}};f(it,e=>{J(ae)===`health-report`&&e(at)}),E(Ke);var ot=m(Ke,2),st=e=>{Bu(e,{oncancel:Se,onapply:xe,get draft(){return J(oe)},set draft(e){D(oe,e,!0)}})},ct=e=>{Wu(e,{oncancel:Se,onapply:xe,get draft(){return J(ce)},set draft(e){D(ce,e,!0)}})},lt=e=>{cd(e,{get llmProfileNames(){return J(ue)},oncancel:Se,onapply:xe,get draft(){return J(le)},set draft(e){D(le,e,!0)}})};f(ot,e=>{J(X)===`llm`&&J(oe)?e(st):J(X)===`agent`&&J(ce)?e(ct,1):J(X)===`improve`&&J(le)&&e(lt,2)}),E(Ae),v(()=>{Ne.disabled=J(i)||J(a)||J(o)||J(c)||J(l)||!r.tokenStored,Re.disabled=J(i)||J(a)||J(o)||J(c)||J(l)||!r.tokenStored,Ve.disabled=J(i)||J(a)||J(o)||J(c)||J(l)||!r.tokenStored,Ye=q(Je,1,`k-tab svelte-19wb2va`,null,Ye,{"k-tab--active":J(ae)===`ai-services`}),O(Je,`aria-selected`,J(ae)===`ai-services`),Ze=q(Xe,1,`k-tab svelte-19wb2va`,null,Ze,{"k-tab--active":J(ae)===`behavior`}),O(Xe,`aria-selected`,J(ae)===`behavior`),$e=q(Qe,1,`k-tab svelte-19wb2va`,null,$e,{"k-tab--active":J(ae)===`health-report`}),O(Qe,`aria-selected`,J(ae)===`health-report`)}),s(`click`,Ne,()=>void we()),s(`click`,Re,()=>void ke()),s(`click`,Ve,()=>void Te()),s(`click`,Je,()=>{D(ae,`ai-services`)}),s(`click`,Xe,()=>{D(ae,`behavior`)}),s(`click`,Qe,()=>{D(ae,`health-report`)}),t(n,Ae),L()}a([`click`]);var pd=u(`<div class="hs-loading svelte-fv9i73"><!> Checking host stash…</div>`),md=u(`<p class="section-note svelte-fv9i73">Host AKM sharing isn't available on this deployment.</p>`),hd=u(`<p class="section-note svelte-fv9i73"><span class="badge badge-neutral">Not detected</span> No personal AKM was found on this host (<code>~/.config/akm/config.json</code>).
|
|
116
|
+
Run <code>akm init</code> on this machine to enable sharing.</p>`),gd=u(`<code class="host-akm-path svelte-fv9i73"> </code>`),_d=u(`<div class="control-group control-group--wide svelte-fv9i73"><label class="control-label control-label--checkbox svelte-fv9i73"><input type="checkbox"/> Also import host LLM/agent profiles (read-only snapshot)</label></div>`),vd=u(`<button class="btn btn-secondary btn-sm">Re-import host profiles</button>`),yd=u(`<div class="controls controls--grid svelte-fv9i73"><div class="control-group control-group--wide svelte-fv9i73"><span class="control-label svelte-fv9i73">Status</span> <div class="host-akm-status svelte-fv9i73"><span> </span> <!></div></div> <!> <div class="control-group control-group--wide host-akm-actions svelte-fv9i73"><button class="btn btn-secondary btn-sm"><!> </button> <!></div></div>`),bd=u(`<section class="config-section svelte-fv9i73"><p class="section-note svelte-fv9i73">Let the assistant read (and, on explicit request, contribute back to) your
|
|
117
|
+
personal AKM stash on this machine (<code>~/akm</code>). Each side keeps its own
|
|
118
|
+
primary stash, database, and cache — only the knowledge files are shared, as a
|
|
119
|
+
writable secondary source. Your files' ownership and primary stash are never changed.</p> <p class="hs-restart svelte-fv9i73">⚠ Changes take effect after the next stack restart.</p> <!></section>`),xd=u(`<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 Sd(e,n){U(n,!0);let r=W(null),i=W(!0),a=W(!1),o=W(!0);async function c(){D(i,!0);try{D(r,await he(),!0)}catch{D(r,null)}finally{D(i,!1)}}async function l(){if(!J(a)){D(a,!0);try{if(J(r)?.sharing.enabled)D(r,await Ue(),!0),Z.push(`success`,`Host AKM sharing disabled. Restart the stack to apply.`);else{let e=await X({writable:!0,importProfiles:J(o)});D(r,e,!0);let t=e.profilesImported?.length?` Imported: ${e.profilesImported.join(`, `)}.`:``;Z.push(`success`,`Host AKM sharing enabled.${t} Takes effect on the assistant's next AKM run / stack restart.`)}}catch(e){Z.push(`error`,e instanceof Error?e.message:`Failed to update host AKM sharing.`)}finally{D(a,!1)}}}async function u(){if(!J(a)){D(a,!0);try{let e=await X({writable:!0,importProfiles:!0});D(r,e,!0);let t=e.profilesImported?.length?e.profilesImported.join(`, `):`none`;Z.push(`success`,`Re-imported host profiles: ${t}.`)}catch(e){Z.push(`error`,e instanceof Error?e.message:`Failed to re-import host profiles.`)}finally{D(a,!1)}}}ee(()=>{n.tokenStored&&c()});var d=xd(),p=m(y(d),2),h=y(p),g=e=>{var n=pd();Q(y(n),{}),K(),E(n),t(e,n)},_=e=>{t(e,md())},b=e=>{var i=bd(),c=m(y(i),4),d=e=>{t(e,hd())},p=e=>{var i=yd(),c=y(i),d=m(y(c),2),p=y(d),h=y(p,!0);E(p);var g=m(p,2),_=e=>{var n=gd(),i=y(n,!0);E(n),v(()=>M(i,J(r).sharing.hostStashPath)),t(e,n)};f(g,e=>{J(r).sharing.hostStashPath&&e(_)}),E(d),E(c);var b=m(c,2),x=e=>{var n=_d(),r=y(n),i=y(r);T(i),K(),E(r),E(n),v(()=>i.disabled=J(a)),w(i,()=>J(o),e=>D(o,e)),t(e,n)};f(b,e=>{J(r).sharing.enabled||e(x)});var S=m(b,2),C=y(S),O=y(C),k=e=>{Q(e,{})};f(O,e=>{J(a)&&e(k)});var A=m(O);E(C);var j=m(C,2),N=e=>{var r=vd();v(()=>r.disabled=J(a)||!n.tokenStored),s(`click`,r,()=>void u()),t(e,r)};f(j,e=>{J(r).sharing.enabled&&e(N)}),E(S),E(i),v(()=>{q(p,1,`badge ${J(r).sharing.enabled?`badge-enabled`:`badge-disabled`}`),M(h,J(r).sharing.enabled?`Enabled`:`Disabled`),C.disabled=J(a)||!n.tokenStored,M(A,` ${J(r).sharing.enabled?`Disable host sharing`:`Enable host sharing`}`)}),s(`click`,C,()=>void l()),t(e,i)};f(c,e=>{J(r).sharing.available?e(p,-1):e(d)}),E(i),t(e,i)};f(h,e=>{J(i)?e(g):J(r)===null?e(_,1):e(b,-1)}),E(p),E(d),t(e,d),L()}a([`click`]);var Cd=u(`<span class="test-result test-result--ok svelte-1b9l1t7" aria-live="polite"><svg aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg> Working</span>`),wd=u(`<span class="test-result test-result--err svelte-1b9l1t7" aria-live="polite"><svg aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg> </span>`),Td=u(`<div class="tts-extras svelte-1b9l1t7"><div class="test-voice-row svelte-1b9l1t7"><button type="button" class="btn btn-secondary btn-sm"><!> Test voice</button> <!></div> <label class="auto-speak-toggle svelte-1b9l1t7"><input type="checkbox" class="svelte-1b9l1t7"/> <span>Speak assistant replies aloud automatically</span></label></div>`),Ed=u(`<section class="engine-section svelte-1b9l1t7"><h3 class="engine-heading svelte-1b9l1t7">Text-to-Speech</h3> <p class="engine-subheading svelte-1b9l1t7">How your assistant speaks</p> <!> <!></section>`);function Dd(e,n){U(n,!0);var r=Ed(),i=m(y(r),4);it(i,{kind:`tts`,get value(){return n.value},get onchange(){return n.onchange},get engineOptions(){return n.engineOptions},get engineConfigs(){return n.engineConfigs},get reachable(){return n.reachable},reachabilityEngineId:`remote`,get hiddenEngines(){return n.hiddenEngines}});var a=m(i,2),o=e=>{var r=Td(),i=y(r),a=y(i),o=y(a),c=e=>{Q(e,{size:12})};f(o,e=>{n.testingVoice&&e(c)}),K(),E(a);var l=m(a,2),u=e=>{t(e,Cd())},d=e=>{var r=wd(),i=m(y(r));E(r),v(()=>M(i,` ${(n.testError||`Failed`)??``}`)),t(e,r)};f(l,e=>{n.testResult===`success`?e(u):n.testResult===`error`&&e(d,1)}),E(i);var p=m(i,2),h=y(p);T(h),K(2),E(p),E(r),v(()=>{a.disabled=n.testingVoice||n.busy,R(h,n.ttsAutoEnabled)}),s(`click`,a,()=>n.onTest()),s(`change`,h,e=>n.onAutoEnabledChange(e.currentTarget.checked)),t(e,r)};f(a,e=>{n.engineSelected&&e(o)}),E(r),t(e,r),L()}a([`click`,`change`]);var Od=u(`<section class="engine-section svelte-1qwlk8j"><h3 class="engine-heading svelte-1qwlk8j">Speech-to-Text</h3> <p class="engine-subheading svelte-1qwlk8j">How your assistant listens</p> <!></section>`);function kd(e,n){var r=Od();it(m(y(r),4),{kind:`stt`,get value(){return n.value},get onchange(){return n.onchange},get engineOptions(){return n.engineOptions},get engineConfigs(){return n.engineConfigs},get reachable(){return n.reachable},reachabilityEngineId:`remote`,get disabledEngines(){return n.disabledEngines},get hiddenEngines(){return n.hiddenEngines}}),E(r),t(e,r)}var Ad=u(`<section class="engine-section svelte-1r7l91t"><h3 class="engine-heading svelte-1r7l91t">Hardware profile</h3> <!></section>`);function jd(e,n){var r=Ad();at(m(y(r),2),{get profiles(){return n.profiles},get selectedProfile(){return n.selectedProfile},get onchange(){return n.onchange}}),E(r),t(e,r)}var Md=u(`<div class="error-banner svelte-nokcxu"><span> </span></div>`),Nd=u(`<div class="panel" role="tabpanel"><div class="panel-header svelte-nokcxu"><h2 class="svelte-nokcxu">Voice</h2> <div class="panel-header-actions svelte-nokcxu"><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"><p class="section-desc svelte-nokcxu">Configure how the assistant listens and speaks. Choose an engine for each;
|
|
120
|
+
the in-app mic uses STT and the optional auto-speak toggle uses TTS.</p> <!> <!> <!></div></div>`);function Pd(n,r){U(r,!0);let 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/speech endpoint (OpenAI, Kokoro, Piper, …).`},{id:`browser`,name:`Browser`,type:`builtin`,desc:`Web Speech API on this device. No setup, voice quality varies.`}],a=[{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:[]}},c={"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`}]}},l=()=>({engine:``,baseURL:``,model:``,voice:``,language:``}),u=W(!1),d=W(!1),p=W(``),h=W(e(l())),g=W(e(l())),_=W(e({stt:{remoteConfigured:!1,remoteReachable:!1},tts:{remoteConfigured:!1,remoteReachable:!1}})),b=W(e([])),x=W(``),S=V(()=>J(h).engine===`openpalm-voice`||J(g).engine===`openpalm-voice`),C=W(!1),w=W(!1),T=W(!1),O=W(null),k=W(``);function A(e){return{engine:e.engine,...e.baseURL?{baseURL:e.baseURL}:{},...e.model?{model:e.model}:{},...e.voice?{voice:e.voice}:{},...e.language?{language:e.language}:{}}}function j(e){J(h).engine=e.engine||``,J(h).baseURL=e.baseURL??``,J(h).model=e.model??``,J(h).voice=e.voice??``}function N(e){J(g).engine=e.engine||``,J(g).baseURL=e.baseURL??``,J(g).model=e.model??``,J(g).language=e.language??``}let P=V(()=>{let e={};return J(C)&&ze.browserSttUnsupportedReason&&(e.browser={disabled:!0,reason:ze.browserSttUnsupportedReason}),e}),F=V(()=>J(w)?void 0:new Set([`browser`])),I=V(()=>J(C)?void 0:new Set([`browser`]));function R(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 z(e,t){let n=l();return!e||typeof e!=`object`?n:(n.engine=R(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)}async function B(){D(u,!0),D(p,``);try{let e=await le();D(h,z(e.tts,`tts`),!0),D(g,z(e.stt,`stt`),!0);let t=e.availability;if(t&&D(_,t,!0),e.addon){D(b,e.addon.profiles??[],!0);let t=e=>!!e&&e.available!==!1,n=e.addon.selectedProfile??``,r=J(b).find(e=>e.id===n);if(t(r))D(x,n,!0);else{let e=J(b).find(e=>e.id===`addon.voice.cpu`&&t(e))??J(b).find(e=>e.default&&t(e))??J(b).find(e=>t(e));D(x,e?.id??``,!0),r&&e&&n!==e.id&&Z.push(`info`,`"${r.label??n}" profile isn't available on this host${r.reason?` (${r.reason})`:``}. Using "${e.label??e.id}" instead.`)}}}catch(e){D(p,e instanceof Error?e.message:`Failed to load voice settings.`,!0)}finally{D(u,!1)}}function H(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}async function G(){D(d,!0),D(p,``);let e=J(h).engine===`openpalm-voice`||J(g).engine===`openpalm-voice`,t=null,n=null;e&&(t=Z.push(`info`,`Enabling voice addon…`,{sticky:!0}),n=setTimeout(()=>{t&&Z.push(`info`,`Starting voice addon — this may take a moment…`,{sticky:!0,replaceId:t})},1500));try{let r=await Ne({tts:H(J(h),`tts`),stt:H(J(g),`stt`),...J(S)&&J(x)?{profile:J(x)}:{}});if(n&&=(clearTimeout(n),null),e&&t){let e=r.voiceAddon;r.status===202&&e?(Z.push(`info`,e.message??`Voice image is downloading — this can take several minutes.`,{sticky:!0,replaceId:t}),te(t),t=null):r.ok&&e?Z.push(`success`,e.wasAlreadyEnabled?`Voice addon ready — let's chat!`:`Voice addon started, let's chat!`,{replaceId:t}):e?Z.push(`error`,e.error??`Voice addon failed to start.`,{replaceId:t}):Z.push(`success`,`Voice settings saved.`,{replaceId:t})}e||Z.push(`success`,`Voice settings saved.`),await B()}catch(r){n&&=(clearTimeout(n),null);let i=r instanceof Error?r.message:`Failed to save voice settings.`;D(p,i,!0),t?Z.push(`error`,i,{replaceId:t}):e&&Z.push(`error`,i)}finally{D(d,!1)}}async function te(e){let t=Date.now()+30*6e4,n=`pulling`;for(;Date.now()<t;){await new Promise(e=>setTimeout(e,3e3));try{let t=(await le()).addon?.activeJob;if(!t){Z.push(`success`,`Voice addon ready — let's chat!`,{replaceId:e}),await B();return}if(t.state===`healthy`){Z.push(`success`,`Voice addon ready — let's chat!`,{replaceId:e}),await B();return}if(t.state===`error`){Z.push(`error`,t.error??`Voice addon failed to start.`,{replaceId:e}),await B();return}if(t.state!==n){n=t.state;let r=t.state===`starting`?`Voice container started — warming up models…`:`Voice image still downloading…`;Z.push(`info`,r,{sticky:!0,replaceId:e})}}catch{}}Z.push(`error`,`Voice addon is taking longer than 30 minutes. Check Docker logs for openpalm-voice.`,{replaceId:e}),await B()}async function q(){if(!J(T)){D(T,!0),D(O,null),D(k,``);try{ze.errorMessage=``,await Pe(`Hello! Your voice is working.`),ze.errorMessage?(D(O,`error`),D(k,ze.errorMessage,!0)):D(O,`success`)}catch(e){D(O,`error`),D(k,e instanceof Error?e.message:`Voice test failed.`,!0)}finally{D(T,!1),setTimeout(()=>{D(O,null),D(k,``)},5e3)}}}ee(()=>{D(C,`SpeechRecognition`in window||`webkitSpeechRecognition`in window,!0),D(w,`speechSynthesis`in window),r.tokenStored&&B()});var ne=Nd(),Y=y(ne),re=m(y(Y),2),ie=y(re),ae=y(ie),X=e=>{Q(e,{size:12})};f(ae,e=>{J(u)&&e(X)}),K(),E(ie);var oe=m(ie,2),se=y(oe),ce=e=>{Q(e,{size:12})};f(se,e=>{J(d)&&e(ce)}),K(),E(oe),E(re),E(Y);var ue=m(Y,2),de=e=>{var n=Md(),r=y(n),i=y(r,!0);E(r),E(n),v(()=>M(i,J(p))),t(e,n)};f(ue,e=>{J(p)&&e(de)});var fe=m(ue,2),pe=m(y(fe),2);{let e=V(()=>A(J(h))),t=V(()=>!!J(h).engine),n=V(()=>J(d)||J(u));Dd(pe,{get value(){return J(e)},onchange:j,get engineOptions(){return i},get engineConfigs(){return o},get reachable(){return J(_).tts},get hiddenEngines(){return J(F)},get engineSelected(){return J(t)},get ttsAutoEnabled(){return ze.ttsAutoEnabled},onAutoEnabledChange:e=>we(e),get testingVoice(){return J(T)},get testResult(){return J(O)},get testError(){return J(k)},onTest:()=>void q(),get busy(){return J(n)}})}var me=m(pe,2);{let e=V(()=>A(J(g)));kd(me,{get value(){return J(e)},onchange:N,get engineOptions(){return a},get engineConfigs(){return c},get reachable(){return J(_).stt},get disabledEngines(){return J(P)},get hiddenEngines(){return J(I)}})}var he=m(me,2),ge=e=>{jd(e,{get profiles(){return J(b)},get selectedProfile(){return J(x)},onchange:e=>D(x,e,!0)})};f(he,e=>{J(S)&&J(b).length>0&&e(ge)}),E(fe),E(ne),v(()=>{ie.disabled=J(u)||J(d)||!r.tokenStored,oe.disabled=J(u)||J(d)||!r.tokenStored}),s(`click`,ie,()=>void B()),s(`click`,oe,()=>void G()),t(n,ne),L()}a([`click`]);var Fd=u(`<!> <!> <main class="svelte-1jef3w8"><!> <!></main>`,1);function Id(n,r){U(r,!0);let i=W(null),a=W(null),o=W(!1),s=W(!1),c=W(!1),l=W(!1),u=W(!1),d=W(``),p=W(`info`),h=W(null),g=W(``),v=W(null),S=W(null),C=W(``),w=W(null),T=W(`overview`),O=W(!1),k=W(``),A=W(!1),j=W(null),M=W(null),N=W(null),P=W(!1),I=W(!1),R=W(!1),z=W(`latest`),B=W(``),H=W(e([])),G=W(!1),K=W(e([])),q=W(!1),re=null;function X(){oe(),re=setInterval(()=>{J(h)&&he()},1e4)}function oe(){re!==null&&(clearInterval(re),re=null)}F(()=>{oe()});let se=V(()=>J(s)||J(c)),le=V(()=>{if(!J(h))return new Map;let e=new Map;if(J(h).containers)for(let[t,n]of Object.entries(J(h).containers))e.set(t,n);if(J(h).dockerContainers)for(let t of J(h).dockerContainers)e.set(t.Service,t.State);return e}),ue=V(()=>{if(!J(h))return[];let e=new Map;if(J(h).containers)for(let[t,n]of Object.entries(J(h).containers))e.set(t,{id:t,service:t,state:n,docker:null});if(J(h).dockerContainers)for(let t of J(h).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 fe(){Y(`/login?redirectTo=%2Fadmin`)}async function me(){D(o,!0);try{let e=await pe();D(i,e.admin,!0),D(a,e.guardian,!0)}catch(e){console.warn(`[page] Health check failed:`,e),D(i,{status:`error`,service:`admin`},!0),D(a,{status:`error`,service:`guardian`},!0)}D(o,!1)}async function he(){D(l,!0),D(g,``);try{D(h,await Ae(),!0)}catch(e){D(h,null);let t=e;t.status===401?(D(g,`Invalid password.`),fe()):D(g,`Failed to load containers: ${t.message??e}`)}D(l,!1),J(h)&&D(v,nt(Date.now()),!0)}async function ge(){D(u,!0),D(C,``);try{D(S,await ie(),!0)}catch(e){D(S,null);let t=e;t.status===401?(D(C,`Invalid password.`),fe()):D(C,`Failed to load automations: ${t.message??e}`)}D(u,!1)}async function _e(){try{let e=await xe();D(k,e.imageTag,!0),D(A,e.inElectron,!0),D(j,e.electronVersion,!0),D(M,e.electronLatestVersion,!0),D(N,e.electronLatestUrl,!0)}catch{}}async function ye(){D(G,!0),D(q,!0);try{let[e,t]=await Promise.all([ce(),ae()]);if(D(H,e.releases,!0),D(K,t.versions,!0),!J(B)){let e=t.versions.find(e=>e.distTag===`next`||e.distTag===`latest`)??t.versions[0];e&&D(B,e.version,!0)}}catch{}D(G,!1),D(q,!1)}async function be(){if(!J(se)){D(s,!0);try{let e=await ke();if(e.overallSuccess)D(d,e.restarted.length>0?`Changes applied successfully. Restarted: ${e.restarted.join(`, `)}.`:`Changes applied successfully.`,!0),D(p,`success`);else if(e.failed.length>0){let t=e.failed.map(e=>`${e.service}: ${e.reason}`).join(`; `),n=e.restarted.length>0?` (other services restarted: ${e.restarted.join(`, `)})`:``;D(d,`Apply failed for ${e.failed.length} service(s): ${t}${n}`),D(p,`error`)}else e.dockerAvailable?(D(d,`Apply failed: ${e.error??`unknown error`}`),D(p,`error`)):(D(d,`Config written, but Docker is unavailable — services were not restarted.`),D(p,`error`))}catch(e){let t=e;t.status===401?fe():(D(d,`Error applying changes: ${t.message??e}`),D(p,`error`))}D(s,!1)}}async function Se(){if(!J(se)){D(c,!0);try{let e=await Be();D(d,`Upgrade complete (image: ${e.imageTag}). ${e.assetsUpdated.length} asset(s) updated, ${e.restarted.length} service(s) restarted.`),D(p,`success`)}catch(e){let t=e;t.status===401?fe():(D(d,`Error upgrading stack: ${t.message??e}`),D(p,`error`))}D(c,!1)}}async function Ce(e){if(!J(P)){D(P,!0);try{let t=await Te(e);D(k,t.imageTag,!0),D(z,t.imageTag,!0),D(d,`Image tag set to ${t.imageTag}. Restarted: ${t.restarted.join(`, `)||`none`}.`),D(p,`success`)}catch(e){D(d,`Failed to apply image tag: ${e.message??e}`),D(p,`error`)}D(P,!1)}}async function we(e){if(!J(I)){D(I,!0),D(R,!1);try{await ve(e),D(B,e,!0),D(R,!0)}catch(e){D(d,`Failed to download UI version: ${e.message??e}`),D(p,`error`)}D(I,!1)}}function Ee(){window.openpalm?.restart?.()}async function De(e,t){try{await Me(e,t),await he()}catch(e){let t=e;t.status===401?fe():D(g,`Action failed: ${t.message??e}`)}}function Z(e){D(w,J(w)===e?null:e,!0)}let Oe=V(()=>{if(!J(h))return[];let e=new Set;if(J(h).containers)for(let t of Object.keys(J(h).containers))e.add(t);if(J(h).dockerContainers)for(let t of J(h).dockerContainers)t.Service&&e.add(t.Service);return[...e].sort()});async function je(){D(O,!0);try{await de(),await he()}catch(e){let t=e;t.status===401?fe():D(g,`Pull failed: ${t.message??e}`)}finally{D(O,!1)}}function Ne(e){D(T,e,!0),e===`containers`&&!J(h)&&he(),e===`automations`&&!J(S)&&ge()}function Pe(){fe()}ee(()=>{X(),me(),he(),ge(),_e(),ye()});var Fe=Fd();te(`1jef3w8`,e=>{_(()=>{b.title=`OpenPalm Console`})});var Ie=x(Fe);et(Ie,{});var Le=m(Ie,2);ft(Le,{get active(){return J(T)},onSelect:Ne});var Re=m(Le,2),ze=y(Re),Ve=e=>{{let t=V(()=>J(h)?.managedServices??[]);Lt(e,{get adminHealth(){return J(i)},get operationResult(){return J(d)},get operationResultType(){return J(p)},tokenStored:!0,get healthLoading(){return J(o)},get applyLoading(){return J(s)},get anyDangerousLoading(){return J(se)},get automationsData(){return J(S)},get mergedServices(){return J(le)},get managedServices(){return J(t)},onCheckHealth:me,onApplyChanges:be,onDismissResult:()=>{D(d,``),D(p,`info`)},onNavigate:Ne})}},He=e=>{yn(e,{get currentImageTag(){return J(k)},get selectedImageTag(){return J(z)},get tagChangeLoading(){return J(P)},get anyDangerousLoading(){return J(se)},tokenStored:!0,get upgradeLoading(){return J(c)},get inElectron(){return J(A)},get electronVersion(){return J(j)},get electronLatestVersion(){return J(M)},get electronLatestUrl(){return J(N)},get uiVersion(){return ne},get uiVersions(){return J(K)},get uiVersionsLoading(){return J(q)},get selectedUiTag(){return J(B)},get uiDownloadLoading(){return J(I)},get uiDownloadReady(){return J(R)},get releases(){return J(H)},get releasesLoading(){return J(G)},onSetImageTag:Ce,onSelectedImageTagChange:e=>{D(z,e,!0)},onUpgradeStack:Se,onSelectedUiTagChange:e=>{D(B,e,!0)},onDownloadUiVersion:we,onRestartApp:Ee,onRefreshReleases:ye})},Ue=e=>{qn(e,{onAuthError:Pe,onNavigate:Ne})},We=e=>{Mr(e,{get containerData(){return J(h)},get serviceEntries(){return J(ue)},get loading(){return J(l)},get error(){return J(g)},tokenStored:!0,get selectedContainerId(){return J(w)},onToggleContainer:Z,onStart:e=>De(`start`,e),onStop:e=>De(`stop`,e),onRestart:e=>De(`restart`,e),onRefresh:he,onPullImages:je,get lastUpdated(){return J(v)},get pullLoading(){return J(O)}})},Ge=e=>{fc(e,{get data(){return J(S)},get loading(){return J(u)},get error(){return J(C)},tokenStored:!0,onRefresh:ge})},Ke=e=>{Ql(e,{})},qe=e=>{dl(e,{})},Je=e=>{jl(e,{tokenStored:!0})},Ye=e=>{Dl(e,{tokenStored:!0})};f(ze,e=>{J(T)===`overview`?e(Ve):J(T)===`updates`?e(He,1):J(T)===`addons`?e(Ue,2):J(T)===`containers`?e(We,3):J(T)===`automations`?e(Ge,4):J(T)===`activity`?e(Ke,5):J(T)===`connections`?e(qe,6):J(T)===`assistant`?e(Je,7):J(T)===`secrets`&&e(Ye,8)});var Xe=m(ze,2),Ze=e=>{Pd(e,{tokenStored:!0})},Qe=e=>{fd(e,{tokenStored:!0})},$e=e=>{Sd(e,{tokenStored:!0})},tt=e=>{bl(e,{tokenStored:!0,get services(){return J(Oe)}})};f(Xe,e=>{J(T)===`voice`?e(Ze):J(T)===`akm`?e(Qe,1):J(T)===`host-sharing`?e($e,2):J(T)===`logs`&&e(tt,3)}),E(Re),t(n,Fe),L()}export{Id as component};
|