@openpalm/ui 0.11.3 → 0.11.4
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/{4.DPfzakrS.css → 4.BFLRjZM9.css} +1 -1
- package/build/client/_app/immutable/assets/4.BFLRjZM9.css.br +0 -0
- package/build/client/_app/immutable/assets/4.BFLRjZM9.css.gz +0 -0
- package/build/client/_app/immutable/chunks/C-9oV3QK.js +1 -0
- package/build/client/_app/immutable/chunks/C-9oV3QK.js.br +0 -0
- package/build/client/_app/immutable/chunks/C-9oV3QK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C1cDpTIW.js +1 -0
- package/build/client/_app/immutable/chunks/C1cDpTIW.js.br +2 -0
- package/build/client/_app/immutable/chunks/C1cDpTIW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CkEumHeM.js → C8_Ecceb.js} +2 -2
- package/build/client/_app/immutable/chunks/C8_Ecceb.js.br +0 -0
- package/build/client/_app/immutable/chunks/C8_Ecceb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CGfIEMHl.js → D4px_ogp.js} +1 -1
- package/build/client/_app/immutable/chunks/D4px_ogp.js.br +0 -0
- package/build/client/_app/immutable/chunks/D4px_ogp.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Brimfe5O.js → DGd1H7f6.js} +2 -2
- package/build/client/_app/immutable/chunks/DGd1H7f6.js.br +0 -0
- package/build/client/_app/immutable/chunks/DGd1H7f6.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.DwREblKQ.js → app.CQ9gBfwB.js} +2 -2
- package/build/client/_app/immutable/entry/app.CQ9gBfwB.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CQ9gBfwB.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.DPkYTFB4.js +1 -0
- package/build/client/_app/immutable/entry/start.DPkYTFB4.js.br +1 -0
- package/build/client/_app/immutable/entry/start.DPkYTFB4.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{0.7SpSN_Ip.js → 0.C7eQ_ow9.js} +1 -1
- package/build/client/_app/immutable/nodes/0.C7eQ_ow9.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.C7eQ_ow9.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.SA58z0My.js → 1.DL1L6mjC.js} +1 -1
- package/build/client/_app/immutable/nodes/1.DL1L6mjC.js.br +1 -0
- package/build/client/_app/immutable/nodes/1.DL1L6mjC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.D7fUTUOY.js +19 -0
- package/build/client/_app/immutable/nodes/4.D7fUTUOY.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.D7fUTUOY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.ujLDiIKn.js → 5.X9_kKaDU.js} +2 -2
- package/build/client/_app/immutable/nodes/5.X9_kKaDU.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.X9_kKaDU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.DRmY8bvl.js → 6.D_uq77l6.js} +1 -1
- package/build/client/_app/immutable/nodes/6.D_uq77l6.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.D_uq77l6.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{7.BV_ceeZR.js → 7.CoVE7LQv.js} +1 -1
- package/build/client/_app/immutable/nodes/7.CoVE7LQv.js.br +0 -0
- package/build/client/_app/immutable/nodes/{7.BV_ceeZR.js.gz → 7.CoVE7LQv.js.gz} +0 -0
- package/build/client/_app/immutable/nodes/{8.9p2W5EZn.js → 8.cwDhKdYI.js} +1 -1
- package/build/client/_app/immutable/nodes/8.cwDhKdYI.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.cwDhKdYI.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +1 -1
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/{0-D0XrV9ke.js → 0-BGsPZcaQ.js} +3 -3
- package/build/server/chunks/{0-D0XrV9ke.js.map → 0-BGsPZcaQ.js.map} +1 -1
- package/build/server/chunks/1-DD15wvsg.js +9 -0
- package/build/server/chunks/{1-CgqXNtgA.js.map → 1-DD15wvsg.js.map} +1 -1
- package/build/server/chunks/4-CMm_D91E.js +9 -0
- package/build/server/chunks/{4-DsiddHou.js.map → 4-CMm_D91E.js.map} +1 -1
- package/build/server/chunks/5-C1zJagm7.js +9 -0
- package/build/server/chunks/{5-JKB70T0W.js.map → 5-C1zJagm7.js.map} +1 -1
- package/build/server/chunks/6-DgrQ593d.js +9 -0
- package/build/server/chunks/{6-rJ3qUhTA.js.map → 6-DgrQ593d.js.map} +1 -1
- package/build/server/chunks/7-3SQOqtpC.js +9 -0
- package/build/server/chunks/{7-BiRKgpMX.js.map → 7-3SQOqtpC.js.map} +1 -1
- package/build/server/chunks/{8-CMAHerzT.js → 8-Cs2Pvzlw.js} +3 -3
- package/build/server/chunks/{8-CMAHerzT.js.map → 8-Cs2Pvzlw.js.map} +1 -1
- package/build/server/chunks/{Navbar-BAeaqjaN.js → Navbar-DDD0LQ9P.js} +4 -4
- package/build/server/chunks/{Navbar-BAeaqjaN.js.map → Navbar-DDD0LQ9P.js.map} +1 -1
- package/build/server/chunks/{_layout.svelte-COQuY-BN.js → _layout.svelte-DCfzq18z.js} +2 -2
- package/build/server/chunks/{_layout.svelte-COQuY-BN.js.map → _layout.svelte-DCfzq18z.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-CYJQOnk0.js → _page.svelte-CtcFDP60.js} +6 -6
- package/build/server/chunks/{_page.svelte-CYJQOnk0.js.map → _page.svelte-CtcFDP60.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-D9zRzRCV.js → _page.svelte-DVfK0-WT.js} +6 -6
- package/build/server/chunks/{_page.svelte-D9zRzRCV.js.map → _page.svelte-DVfK0-WT.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-zSkk6PMh.js → _page.svelte-DsdJc3Sa.js} +6 -6
- package/build/server/chunks/{_page.svelte-zSkk6PMh.js.map → _page.svelte-DsdJc3Sa.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-B61fCYqv.js → _page.svelte-mld1jqX5.js} +73 -13
- package/build/server/chunks/_page.svelte-mld1jqX5.js.map +1 -0
- package/build/server/chunks/{_page.svelte-BAL_V5np.js → _page.svelte-xSUqX0a7.js} +3 -3
- package/build/server/chunks/{_page.svelte-BAL_V5np.js.map → _page.svelte-xSUqX0a7.js.map} +1 -1
- package/build/server/chunks/_server.ts-1mdOjWEN.js +40 -0
- package/build/server/chunks/_server.ts-1mdOjWEN.js.map +1 -0
- package/build/server/chunks/{_server.ts-7D-Rc6vR.js → _server.ts-3JO3CKsE.js} +4 -4
- package/build/server/chunks/{_server.ts-7D-Rc6vR.js.map → _server.ts-3JO3CKsE.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C73JZxNS.js → _server.ts-4HorMS2R.js} +4 -4
- package/build/server/chunks/{_server.ts-C73JZxNS.js.map → _server.ts-4HorMS2R.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dfoak6lb.js → _server.ts-B1Jl9Grz.js} +4 -4
- package/build/server/chunks/{_server.ts-Dfoak6lb.js.map → _server.ts-B1Jl9Grz.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DrySD7h9.js → _server.ts-B31I037d.js} +6 -6
- package/build/server/chunks/{_server.ts-DrySD7h9.js.map → _server.ts-B31I037d.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BYeJhgFH.js → _server.ts-B3ntDGZM.js} +5 -5
- package/build/server/chunks/{_server.ts-BYeJhgFH.js.map → _server.ts-B3ntDGZM.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CtPbD9jt.js → _server.ts-B79PxL9c.js} +4 -4
- package/build/server/chunks/{_server.ts-CtPbD9jt.js.map → _server.ts-B79PxL9c.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BkYAvAn4.js → _server.ts-B8EZxkK3.js} +5 -5
- package/build/server/chunks/{_server.ts-BkYAvAn4.js.map → _server.ts-B8EZxkK3.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B262_mM_.js → _server.ts-B8YF9aVx.js} +4 -4
- package/build/server/chunks/{_server.ts-B262_mM_.js.map → _server.ts-B8YF9aVx.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C8y5k5IZ.js → _server.ts-BEjyvkVV.js} +4 -4
- package/build/server/chunks/{_server.ts-C8y5k5IZ.js.map → _server.ts-BEjyvkVV.js.map} +1 -1
- package/build/server/chunks/{_server.ts-COKTksXS.js → _server.ts-BGqa6Laa.js} +4 -4
- package/build/server/chunks/_server.ts-BGqa6Laa.js.map +1 -0
- package/build/server/chunks/{_server.ts-B6xTnPJR.js → _server.ts-BHmCir74.js} +4 -4
- package/build/server/chunks/{_server.ts-B6xTnPJR.js.map → _server.ts-BHmCir74.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bdc1yveI.js → _server.ts-BLUm8wAq.js} +4 -4
- package/build/server/chunks/{_server.ts-Bdc1yveI.js.map → _server.ts-BLUm8wAq.js.map} +1 -1
- package/build/server/chunks/{_server.ts-zyxUGoYW.js → _server.ts-BNJn20vV.js} +4 -4
- package/build/server/chunks/{_server.ts-zyxUGoYW.js.map → _server.ts-BNJn20vV.js.map} +1 -1
- package/build/server/chunks/{_server.ts-0XsihZif.js → _server.ts-BTvZB-WH.js} +4 -4
- package/build/server/chunks/{_server.ts-0XsihZif.js.map → _server.ts-BTvZB-WH.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CbHU1vkN.js → _server.ts-BUIWPYRF.js} +4 -4
- package/build/server/chunks/{_server.ts-CbHU1vkN.js.map → _server.ts-BUIWPYRF.js.map} +1 -1
- package/build/server/chunks/{_server.ts-XvDJ5OtB.js → _server.ts-BWtTOsFi.js} +4 -4
- package/build/server/chunks/{_server.ts-XvDJ5OtB.js.map → _server.ts-BWtTOsFi.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CAdmGw2l.js → _server.ts-BY7nR9Ev.js} +4 -4
- package/build/server/chunks/{_server.ts-CAdmGw2l.js.map → _server.ts-BY7nR9Ev.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BjKendRn.js → _server.ts-BdLKHRnY.js} +6 -6
- package/build/server/chunks/{_server.ts-BjKendRn.js.map → _server.ts-BdLKHRnY.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DRFb9TfV.js → _server.ts-BhRtn8Xn.js} +4 -4
- package/build/server/chunks/{_server.ts-DRFb9TfV.js.map → _server.ts-BhRtn8Xn.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DFpwWuLU.js → _server.ts-Bq4Oko-2.js} +4 -4
- package/build/server/chunks/{_server.ts-DFpwWuLU.js.map → _server.ts-Bq4Oko-2.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CVEG3K9b.js → _server.ts-Bu_7eQaL.js} +5 -5
- package/build/server/chunks/{_server.ts-CVEG3K9b.js.map → _server.ts-Bu_7eQaL.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B8yF8yr3.js → _server.ts-BvbnbZsl.js} +4 -4
- package/build/server/chunks/{_server.ts-B8yF8yr3.js.map → _server.ts-BvbnbZsl.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DK_yszHc.js → _server.ts-C4pf3VKi.js} +4 -4
- package/build/server/chunks/{_server.ts-DK_yszHc.js.map → _server.ts-C4pf3VKi.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DzFwsF9j.js → _server.ts-C7K7bv8w.js} +5 -5
- package/build/server/chunks/{_server.ts-DzFwsF9j.js.map → _server.ts-C7K7bv8w.js.map} +1 -1
- package/build/server/chunks/_server.ts-C8BrkC8T.js +36 -0
- package/build/server/chunks/_server.ts-C8BrkC8T.js.map +1 -0
- package/build/server/chunks/{_server.ts-BjzBsC6w.js → _server.ts-C8zFV8J3.js} +4 -4
- package/build/server/chunks/{_server.ts-BjzBsC6w.js.map → _server.ts-C8zFV8J3.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C1KzS6xc.js → _server.ts-CD-Cddqe.js} +5 -5
- package/build/server/chunks/{_server.ts-C1KzS6xc.js.map → _server.ts-CD-Cddqe.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BnjrP3ks.js → _server.ts-CExwMomX.js} +4 -4
- package/build/server/chunks/{_server.ts-BnjrP3ks.js.map → _server.ts-CExwMomX.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DkLhIF73.js → _server.ts-CH8uRkxq.js} +4 -4
- package/build/server/chunks/{_server.ts-DkLhIF73.js.map → _server.ts-CH8uRkxq.js.map} +1 -1
- package/build/server/chunks/_server.ts-CHQmAGEC.js +51 -0
- package/build/server/chunks/_server.ts-CHQmAGEC.js.map +1 -0
- package/build/server/chunks/{_server.ts-CmzKw1o3.js → _server.ts-CIEz-ybk.js} +4 -4
- package/build/server/chunks/{_server.ts-CmzKw1o3.js.map → _server.ts-CIEz-ybk.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BesHLxS2.js → _server.ts-CNLz6iJ7.js} +4 -4
- package/build/server/chunks/{_server.ts-BesHLxS2.js.map → _server.ts-CNLz6iJ7.js.map} +1 -1
- package/build/server/chunks/{_server.ts-ek6MwdUK.js → _server.ts-CVxiERfc.js} +4 -4
- package/build/server/chunks/{_server.ts-ek6MwdUK.js.map → _server.ts-CVxiERfc.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DvrTAImV.js → _server.ts-CX2sHcZR.js} +4 -4
- package/build/server/chunks/{_server.ts-DvrTAImV.js.map → _server.ts-CX2sHcZR.js.map} +1 -1
- package/build/server/chunks/{_server.ts-ClrUP4an.js → _server.ts-CXI7k8hl.js} +4 -4
- package/build/server/chunks/{_server.ts-ClrUP4an.js.map → _server.ts-CXI7k8hl.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bi0VeyRr.js → _server.ts-CXmwf1pu.js} +2 -2
- package/build/server/chunks/{_server.ts-Bi0VeyRr.js.map → _server.ts-CXmwf1pu.js.map} +1 -1
- package/build/server/chunks/{_server.ts-COzEgPgm.js → _server.ts-C_EnHMEu.js} +4 -4
- package/build/server/chunks/{_server.ts-COzEgPgm.js.map → _server.ts-C_EnHMEu.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D_RT5a88.js → _server.ts-CbOKfJ3v.js} +6 -6
- package/build/server/chunks/{_server.ts-D_RT5a88.js.map → _server.ts-CbOKfJ3v.js.map} +1 -1
- package/build/server/chunks/{_server.ts-xZeGGokt.js → _server.ts-CciSVwzg.js} +5 -5
- package/build/server/chunks/{_server.ts-xZeGGokt.js.map → _server.ts-CciSVwzg.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DjFhNlGz.js → _server.ts-CdB1K2M6.js} +2 -2
- package/build/server/chunks/{_server.ts-DjFhNlGz.js.map → _server.ts-CdB1K2M6.js.map} +1 -1
- package/build/server/chunks/{_server.ts-pmjwexpo.js → _server.ts-CeeR1W32.js} +4 -4
- package/build/server/chunks/{_server.ts-pmjwexpo.js.map → _server.ts-CeeR1W32.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DpL6zI13.js → _server.ts-CpJ08_Lw.js} +4 -4
- package/build/server/chunks/{_server.ts-DpL6zI13.js.map → _server.ts-CpJ08_Lw.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CY2txcrO.js → _server.ts-CqH3nv-S.js} +5 -5
- package/build/server/chunks/{_server.ts-CY2txcrO.js.map → _server.ts-CqH3nv-S.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B19b36Eo.js → _server.ts-CreuvDch.js} +4 -4
- package/build/server/chunks/{_server.ts-B19b36Eo.js.map → _server.ts-CreuvDch.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DZ3Z2xUm.js → _server.ts-CtltE_T-.js} +2 -2
- package/build/server/chunks/{_server.ts-DZ3Z2xUm.js.map → _server.ts-CtltE_T-.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DhHNXH2Y.js → _server.ts-CzoE8edN.js} +11 -46
- package/build/server/chunks/_server.ts-CzoE8edN.js.map +1 -0
- package/build/server/chunks/{_server.ts-B4xZ8oA3.js → _server.ts-D-Vwef5C.js} +4 -4
- package/build/server/chunks/{_server.ts-B4xZ8oA3.js.map → _server.ts-D-Vwef5C.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BPI-RcmG.js → _server.ts-D3QPUpDc.js} +4 -4
- package/build/server/chunks/{_server.ts-BPI-RcmG.js.map → _server.ts-D3QPUpDc.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BstRFodf.js → _server.ts-D8cp-Em3.js} +4 -4
- package/build/server/chunks/{_server.ts-BstRFodf.js.map → _server.ts-D8cp-Em3.js.map} +1 -1
- package/build/server/chunks/{_server.ts-4-UC6SEV.js → _server.ts-DAW24-9-.js} +4 -4
- package/build/server/chunks/{_server.ts-4-UC6SEV.js.map → _server.ts-DAW24-9-.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D3JrqMf5.js → _server.ts-DHBX6Ary.js} +5 -5
- package/build/server/chunks/{_server.ts-D3JrqMf5.js.map → _server.ts-DHBX6Ary.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DcTyFyDW.js → _server.ts-DL9hlvL8.js} +4 -4
- package/build/server/chunks/{_server.ts-DcTyFyDW.js.map → _server.ts-DL9hlvL8.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BzSa91Mu.js → _server.ts-DLVGDzlE.js} +4 -4
- package/build/server/chunks/{_server.ts-BzSa91Mu.js.map → _server.ts-DLVGDzlE.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CsN4U0jo.js → _server.ts-DPC8qYUD.js} +4 -4
- package/build/server/chunks/{_server.ts-CsN4U0jo.js.map → _server.ts-DPC8qYUD.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D41uKHXF.js → _server.ts-DVRyf5BI.js} +4 -4
- package/build/server/chunks/{_server.ts-D41uKHXF.js.map → _server.ts-DVRyf5BI.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bb6_g6bb.js → _server.ts-DY3ZDXdA.js} +4 -4
- package/build/server/chunks/{_server.ts-Bb6_g6bb.js.map → _server.ts-DY3ZDXdA.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DVtd0Eah.js → _server.ts-Dc9XEMmF.js} +4 -4
- package/build/server/chunks/{_server.ts-DVtd0Eah.js.map → _server.ts-Dc9XEMmF.js.map} +1 -1
- package/build/server/chunks/{_server.ts-LPclMhOg.js → _server.ts-Dd4Mh0JV.js} +4 -4
- package/build/server/chunks/{_server.ts-LPclMhOg.js.map → _server.ts-Dd4Mh0JV.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CB9981qx.js → _server.ts-DlwXpopR.js} +3 -3
- package/build/server/chunks/{_server.ts-CB9981qx.js.map → _server.ts-DlwXpopR.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BvhZYj4O.js → _server.ts-Do5L_4tt.js} +4 -4
- package/build/server/chunks/{_server.ts-BvhZYj4O.js.map → _server.ts-Do5L_4tt.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bs9prWkw.js → _server.ts-DsTUwnu1.js} +4 -4
- package/build/server/chunks/{_server.ts-Bs9prWkw.js.map → _server.ts-DsTUwnu1.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Wb18-UPz.js → _server.ts-DzIilMO5.js} +2 -2
- package/build/server/chunks/{_server.ts-Wb18-UPz.js.map → _server.ts-DzIilMO5.js.map} +1 -1
- package/build/server/chunks/{_server.ts-KrHLZ41l.js → _server.ts-E5YqcwqQ.js} +4 -4
- package/build/server/chunks/{_server.ts-KrHLZ41l.js.map → _server.ts-E5YqcwqQ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CEM2Bhrp.js → _server.ts-Gbkg-oto.js} +4 -4
- package/build/server/chunks/{_server.ts-CEM2Bhrp.js.map → _server.ts-Gbkg-oto.js.map} +1 -1
- package/build/server/chunks/{_server.ts-JrZ2T0x3.js → _server.ts-IzD0bafW.js} +5 -5
- package/build/server/chunks/{_server.ts-JrZ2T0x3.js.map → _server.ts-IzD0bafW.js.map} +1 -1
- package/build/server/chunks/{_server.ts-2VQoZ57d.js → _server.ts-Lzz9ashZ.js} +4 -4
- package/build/server/chunks/{_server.ts-2VQoZ57d.js.map → _server.ts-Lzz9ashZ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C-iybQg_.js → _server.ts-MGn-MXr5.js} +4 -4
- package/build/server/chunks/{_server.ts-C-iybQg_.js.map → _server.ts-MGn-MXr5.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CJyYri21.js → _server.ts-QvBpEIYu.js} +4 -4
- package/build/server/chunks/{_server.ts-CJyYri21.js.map → _server.ts-QvBpEIYu.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CeUZgHnR.js → _server.ts-SLlbT28g.js} +2 -2
- package/build/server/chunks/{_server.ts-CeUZgHnR.js.map → _server.ts-SLlbT28g.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D6GjjoAA.js → _server.ts-j5xF-dJX.js} +4 -4
- package/build/server/chunks/{_server.ts-D6GjjoAA.js.map → _server.ts-j5xF-dJX.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DN6e9aZX.js → _server.ts-pQ9okj_b.js} +6 -6
- package/build/server/chunks/{_server.ts-DN6e9aZX.js.map → _server.ts-pQ9okj_b.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B-e9YBGN.js → _server.ts-yWBMi6sn.js} +6 -6
- package/build/server/chunks/{_server.ts-B-e9YBGN.js.map → _server.ts-yWBMi6sn.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CgIBSa2W.js → _server.ts-ykNeG8km.js} +4 -4
- package/build/server/chunks/{_server.ts-CgIBSa2W.js.map → _server.ts-ykNeG8km.js.map} +1 -1
- package/build/server/chunks/{addon-helpers-KNw7tctP.js → addon-helpers-DBJL8kvq.js} +3 -3
- package/build/server/chunks/{addon-helpers-KNw7tctP.js.map → addon-helpers-DBJL8kvq.js.map} +1 -1
- package/build/server/chunks/akm-hO0p79ZE.js +174 -0
- package/build/server/chunks/akm-hO0p79ZE.js.map +1 -0
- package/build/server/chunks/{client-CA8h4-ry.js → client-BhIdOLuN.js} +2 -2
- package/build/server/chunks/{client-CA8h4-ry.js.map → client-BhIdOLuN.js.map} +1 -1
- package/build/server/chunks/{config-D5SE6Awc.js → config-5vfdWPGq.js} +2 -2
- package/build/server/chunks/{config-D5SE6Awc.js.map → config-5vfdWPGq.js.map} +1 -1
- package/build/server/chunks/{docker-BVtcOSzA.js → docker-DYeytgDI.js} +2 -2
- package/build/server/chunks/{docker-BVtcOSzA.js.map → docker-DYeytgDI.js.map} +1 -1
- package/build/server/chunks/{endpoints-zfo5Ad6e.js → endpoints-pIoXJCW6.js} +2 -2
- package/build/server/chunks/{endpoints-zfo5Ad6e.js.map → endpoints-pIoXJCW6.js.map} +1 -1
- package/build/server/chunks/{environment-GWvw20UY.js → environment-BSan9M-f.js} +2 -2
- package/build/server/chunks/{environment-GWvw20UY.js.map → environment-BSan9M-f.js.map} +1 -1
- package/build/server/chunks/{error.svelte-mW__f31O.js → error.svelte-w3vTPWqR.js} +4 -4
- package/build/server/chunks/{error.svelte-mW__f31O.js.map → error.svelte-w3vTPWqR.js.map} +1 -1
- package/build/server/chunks/{helpers-DHbBmb0V.js → helpers-CVirrNSz.js} +3 -3
- package/build/server/chunks/{helpers-DHbBmb0V.js.map → helpers-CVirrNSz.js.map} +1 -1
- package/build/server/chunks/{hooks.server-BcB7DyJ7.js → hooks.server-pc-TSpQy.js} +5 -5
- package/build/server/chunks/{hooks.server-BcB7DyJ7.js.map → hooks.server-pc-TSpQy.js.map} +1 -1
- package/build/server/chunks/{http-B6HcMA7S.js → http-DGsfa0DV.js} +2 -2
- package/build/server/chunks/{http-B6HcMA7S.js.map → http-DGsfa0DV.js.map} +1 -1
- package/build/server/chunks/{internal-C60J8YGh.js → internal-Df9GLXoC.js} +3 -3
- package/build/server/chunks/{internal-C60J8YGh.js.map → internal-Df9GLXoC.js.map} +1 -1
- package/build/server/chunks/{session-cookie-Do-csnSL.js → session-cookie-DEuOwtHY.js} +2 -2
- package/build/server/chunks/{session-cookie-Do-csnSL.js.map → session-cookie-DEuOwtHY.js.map} +1 -1
- package/build/server/chunks/{setup-deploy-BgLVwmhY.js → setup-deploy-D4bnmfpV.js} +2 -2
- package/build/server/chunks/{setup-deploy-BgLVwmhY.js.map → setup-deploy-D4bnmfpV.js.map} +1 -1
- package/build/server/chunks/{src-56XoMiXa.js → src-CyeWH4Df.js} +70 -14
- package/build/server/chunks/src-CyeWH4Df.js.map +1 -0
- package/build/server/chunks/{state-DlLwDz60.js → state-oTjIGK6_.js} +2 -2
- package/build/server/chunks/{state-DlLwDz60.js.map → state-oTjIGK6_.js.map} +1 -1
- package/build/server/chunks/{theme-state.svelte-CE13yM0n.js → theme-state.svelte-CeABRes-.js} +8 -2
- package/build/server/chunks/theme-state.svelte-CeABRes-.js.map +1 -0
- package/build/server/index.js +2 -2
- package/build/server/manifest.js +100 -79
- package/build/server/manifest.js.map +1 -1
- package/package.json +2 -2
- package/build/client/_app/immutable/assets/4.DPfzakrS.css.br +0 -0
- package/build/client/_app/immutable/assets/4.DPfzakrS.css.gz +0 -0
- package/build/client/_app/immutable/chunks/Brimfe5O.js.br +0 -0
- package/build/client/_app/immutable/chunks/Brimfe5O.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CGfIEMHl.js.br +0 -0
- package/build/client/_app/immutable/chunks/CGfIEMHl.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CkEumHeM.js.br +0 -0
- package/build/client/_app/immutable/chunks/CkEumHeM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CntupqMG.js +0 -1
- package/build/client/_app/immutable/chunks/CntupqMG.js.br +0 -2
- package/build/client/_app/immutable/chunks/CntupqMG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/JXKXFmZF.js +0 -1
- package/build/client/_app/immutable/chunks/JXKXFmZF.js.br +0 -0
- package/build/client/_app/immutable/chunks/JXKXFmZF.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.DwREblKQ.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DwREblKQ.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.4SCazkhD.js +0 -1
- package/build/client/_app/immutable/entry/start.4SCazkhD.js.br +0 -1
- package/build/client/_app/immutable/entry/start.4SCazkhD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.7SpSN_Ip.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.7SpSN_Ip.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.SA58z0My.js.br +0 -1
- package/build/client/_app/immutable/nodes/1.SA58z0My.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.Ddu6ozpR.js +0 -19
- package/build/client/_app/immutable/nodes/4.Ddu6ozpR.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.Ddu6ozpR.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.ujLDiIKn.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.ujLDiIKn.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.DRmY8bvl.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.DRmY8bvl.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.BV_ceeZR.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.9p2W5EZn.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.9p2W5EZn.js.gz +0 -0
- package/build/server/chunks/1-CgqXNtgA.js +0 -9
- package/build/server/chunks/4-DsiddHou.js +0 -9
- package/build/server/chunks/5-JKB70T0W.js +0 -9
- package/build/server/chunks/6-rJ3qUhTA.js +0 -9
- package/build/server/chunks/7-BiRKgpMX.js +0 -9
- package/build/server/chunks/_page.svelte-B61fCYqv.js.map +0 -1
- package/build/server/chunks/_server.ts-COKTksXS.js.map +0 -1
- package/build/server/chunks/_server.ts-DhHNXH2Y.js.map +0 -1
- package/build/server/chunks/src-56XoMiXa.js.map +0 -1
- package/build/server/chunks/theme-state.svelte-CE13yM0n.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
0.11.
|
|
1
|
+
0.11.4
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.nav-shell.svelte-7673iv{top:var(--nav-height);z-index:40;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);position:sticky}.section-strip.svelte-7673iv{padding-inline:var(--space-6);-webkit-overflow-scrolling:touch;scrollbar-width:none;border-bottom:1px solid var(--color-border);background:var(--color-bg);gap:0;display:flex;overflow-x:auto}.section-strip.svelte-7673iv::-webkit-scrollbar{display:none}.section-tab.svelte-7673iv{min-height:36px;padding:var(--space-1) var(--space-4);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-muted,var(--color-text-secondary));cursor:pointer;white-space:nowrap;transition:color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:none;border-bottom:3px solid #0000;flex-shrink:0;align-items:center;margin-bottom:-1px;display:inline-flex}.section-tab.svelte-7673iv:hover{color:var(--color-text);background:var(--color-bg-secondary)}.section-tab.svelte-7673iv:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;border-radius:var(--radius-sm)}.section-tab-active.svelte-7673iv{color:var(--color-text);font-weight:var(--font-semibold);background:var(--color-bg-secondary);border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.subtab-row.svelte-7673iv{position:relative}.subtab-row.svelte-7673iv:after{content:"";background:linear-gradient(to right, transparent, var(--color-bg-secondary));pointer-events:none;width:48px;position:absolute;top:0;bottom:0;right:0}.subtab-row.svelte-7673iv:before{content:"";background:linear-gradient(to left, transparent, var(--color-bg-secondary));pointer-events:none;z-index:1;width:40px;position:absolute;top:0;bottom:0;left:0}.tabs.svelte-7673iv{gap:var(--space-1);padding-inline:var(--space-6);-webkit-overflow-scrolling:touch;scrollbar-width:none;display:flex;overflow-x:auto}.tabs.svelte-7673iv::-webkit-scrollbar{display:none}.tab.svelte-7673iv{align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-2) var(--space-3);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;transition:color var(--transition-fast), border-color var(--transition-fast), font-weight var(--transition-fast);background:0 0;border:none;border-bottom:3px solid #0000;flex-shrink:0;margin-bottom:-1px;display:inline-flex}.tab.svelte-7673iv:hover{color:var(--color-text)}.tab.svelte-7673iv:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;border-radius:var(--radius-sm)}.tab-active.svelte-7673iv{color:var(--color-text);font-weight:var(--font-semibold);border-bottom-color:var(--color-text)}@media (width<=768px){.tab.svelte-7673iv{padding:var(--space-2)}.section-tab.svelte-7673iv{padding:var(--space-1) var(--space-3)}.section-strip.svelte-7673iv,.tabs.svelte-7673iv{padding-inline:var(--space-4)}}@media (width<=320px){.tab.svelte-7673iv,.section-tab.svelte-7673iv{padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}}.hero.svelte-10n23hu{align-items:center;gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);margin-bottom:var(--space-6);border:1px solid #0000;flex-wrap:wrap;display:flex}.hero--ok.svelte-10n23hu{background:var(--color-success-bg);border-color:var(--color-success-border)}.hero--warning.svelte-10n23hu{background:var(--color-warning-bg);border-color:var(--color-warning)}.hero--unknown.svelte-10n23hu{background:var(--color-bg-secondary);border-color:var(--color-border)}.hero-icon.svelte-10n23hu{flex-shrink:0;display:inline-flex}.hero--ok.svelte-10n23hu .hero-icon:where(.svelte-10n23hu){color:var(--color-badge-success-fg)}.hero--warning.svelte-10n23hu .hero-icon:where(.svelte-10n23hu){color:var(--color-badge-warning-fg)}.hero--unknown.svelte-10n23hu .hero-icon:where(.svelte-10n23hu){color:var(--color-text-secondary)}.hero-text.svelte-10n23hu{flex:240px;min-width:0}.hero-title.svelte-10n23hu{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text)}.hero-detail.svelte-10n23hu{font-size:var(--text-sm);color:var(--color-badge-neutral-fg);max-width:68ch;margin-top:2px}.hero-actions.svelte-10n23hu{align-items:center;gap:var(--space-2);flex-wrap:wrap;max-width:100%;display:flex}.hero-actions.svelte-10n23hu .btn{flex-shrink:0}@media (width<=560px){.hero-actions.svelte-10n23hu{width:100%}.hero-actions.svelte-10n23hu .btn{flex:auto}}.output-section.svelte-10sij3c{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-6);overflow:hidden}.output-section--success.svelte-10sij3c{border-color:var(--color-success-border)}.output-section--error.svelte-10sij3c{border-color:var(--color-danger)}.output-header.svelte-10sij3c{padding:var(--space-3) var(--space-5);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.output-header.svelte-10sij3c h3:where(.svelte-10sij3c){font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text)}.output-code.svelte-10sij3c{padding:var(--space-4) var(--space-5);max-height:320px;font-family:var(--font-mono);font-size:var(--text-xs);color:#e4e8f0;white-space:pre-wrap;word-break:break-word;background:#1e2330;margin:0;line-height:1.6;overflow:auto}.tile.svelte-19hpfg{gap:var(--space-1);padding:var(--space-4) var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;text-align:left;font-family:var(--font-sans);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;display:flex}.tile.svelte-19hpfg:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-sm)}.tile.svelte-19hpfg:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.tile-metric.svelte-19hpfg{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-text);line-height:1.1}.tile-metric-sub.svelte-19hpfg{font-size:var(--text-lg);font-weight:var(--font-medium);color:var(--color-text-secondary)}.tile-metric--icon.svelte-19hpfg{color:var(--color-text-secondary)}.tile-label.svelte-19hpfg{font-size:var(--text-sm);color:var(--color-text-secondary)}.akm-card.svelte-dcgqe1{text-align:left;width:100%;font-family:var(--font-sans);padding:var(--space-5);margin-bottom:var(--space-8);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);display:block}.akm-card.svelte-dcgqe1:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-sm)}.akm-card.svelte-dcgqe1:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.akm-head.svelte-dcgqe1{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.akm-title.svelte-dcgqe1{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text)}.akm-metrics.svelte-dcgqe1{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.akm-metric.svelte-dcgqe1{flex-direction:column;gap:2px;display:flex}.akm-num.svelte-dcgqe1{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--color-text);line-height:1.1}.akm-num-sub.svelte-dcgqe1{font-size:var(--text-base);font-weight:var(--font-medium);color:var(--color-text-secondary)}.akm-cap.svelte-dcgqe1{font-size:var(--text-xs);color:var(--color-text-secondary)}.akm-unavailable.svelte-dcgqe1{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:68ch}.shortcut-grid.svelte-8y2vdf{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.shortcut.svelte-8y2vdf{padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:left;font-family:var(--font-sans);transition:border-color var(--transition-fast), background var(--transition-fast);flex-direction:column;gap:2px;text-decoration:none;display:flex}.shortcut.svelte-8y2vdf:hover{border-color:var(--color-border-hover);background:var(--color-surface-hover)}.shortcut.svelte-8y2vdf:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.shortcut-name.svelte-8y2vdf{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text)}.shortcut-desc.svelte-8y2vdf{font-size:var(--text-xs);color:var(--color-text-secondary)}.tile-grid.svelte-xz862u{gap:var(--space-4);margin-bottom:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.section-heading.svelte-xz862u{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-secondary);margin-bottom:var(--space-3)}.panel-subtitle.svelte-7mkeya{font-size:var(--text-sm);color:var(--color-text-secondary);margin:var(--space-1) 0 0;max-width:60ch}.refresh-releases.svelte-7mkeya{align-items:center;gap:var(--space-2);flex-shrink:0;display:inline-flex}.refresh-releases.svelte-7mkeya svg:where(.svelte-7mkeya){flex-shrink:0}@media (width<=600px){.refresh-releases.svelte-7mkeya{margin-top:var(--space-2)}}.status-live.svelte-7mkeya{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.update-card.svelte-7mkeya{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-secondary);flex-wrap:wrap;display:flex}.update-card-text.svelte-7mkeya{flex:1;min-width:14rem}.update-title.svelte-7mkeya{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.update-desc.svelte-7mkeya{font-size:var(--text-sm);color:var(--color-text-secondary);margin:var(--space-1) 0 0;max-width:60ch;line-height:1.5}.update-go.svelte-7mkeya{align-items:center;gap:var(--space-2);flex-shrink:0;display:inline-flex}.versions.svelte-7mkeya{gap:var(--space-2);margin:var(--space-5) 0 0;flex-direction:column;display:flex}.versions-row.svelte-7mkeya{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.versions-row.svelte-7mkeya dt:where(.svelte-7mkeya){font-size:var(--text-sm);color:var(--color-text)}.versions-row.svelte-7mkeya dd:where(.svelte-7mkeya){align-items:center;gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end;margin:0;display:flex}.version-cell.svelte-7mkeya{align-items:center;gap:var(--space-2);display:inline-flex}.version-value.svelte-7mkeya{font-size:var(--text-xs);font-family:var(--font-mono);background:var(--color-bg-secondary);border-radius:var(--radius-sm);border:2px solid var(--color-border);color:var(--color-text);padding:2px 8px}.version-value.status-current.svelte-7mkeya{border-color:var(--color-success,#16a34a)}.version-value.status-update.svelte-7mkeya{border-color:var(--color-warning,#d97706)}.version-value.status-unknown.svelte-7mkeya{border-color:var(--color-border)}.status-emoji.svelte-7mkeya{font-size:var(--text-sm);line-height:1}.version-action.svelte-7mkeya{flex-shrink:0}.version-action-note.svelte-7mkeya{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-secondary);display:inline-flex}.advanced.svelte-7mkeya{margin-top:var(--space-5);border-top:1px solid var(--color-border);padding-top:var(--space-4)}.advanced.svelte-7mkeya>summary:where(.svelte-7mkeya){cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);list-style:revert}.advanced.svelte-7mkeya>summary:where(.svelte-7mkeya):hover{color:var(--color-text)}.advanced.svelte-7mkeya>summary:where(.svelte-7mkeya):focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.advanced-body.svelte-7mkeya{gap:var(--space-2);margin-top:var(--space-4);flex-direction:column;display:flex}.version-section.svelte-7mkeya{gap:var(--space-2);flex-direction:column;display:flex}.version-label.svelte-7mkeya{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text)}.version-input-row.svelte-7mkeya{gap:var(--space-2);flex-wrap:wrap;display:flex}.version-input.svelte-7mkeya{min-width:0;padding:var(--space-1-5) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:var(--text-sm);font-family:var(--font-mono);flex:1}.version-input.svelte-7mkeya:disabled{opacity:.5;cursor:not-allowed}.version-hint.svelte-7mkeya{font-size:var(--text-xs);color:var(--color-text-secondary);margin:0;line-height:1.5}.version-divider.svelte-7mkeya{background:var(--color-border);height:1px;margin:var(--space-3) 0}.version-restart-prompt.svelte-7mkeya{align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-success);padding:var(--space-2) var(--space-3);background:var(--color-success-bg);border-radius:var(--radius-md);display:flex}.version-select.svelte-7mkeya{min-width:0;padding:var(--space-1-5) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:var(--text-sm);font-family:var(--font-mono);flex:1}.version-select.svelte-7mkeya:disabled{opacity:.5;cursor:not-allowed}.version-select-skeleton.svelte-7mkeya{border-radius:var(--radius-md);background:linear-gradient(90deg, var(--color-bg-secondary) 25%, var(--color-bg-tertiary) 50%, var(--color-bg-secondary) 75%);background-size:200% 100%;flex:1;height:34px;animation:1.4s ease-in-out infinite svelte-7mkeya-skeleton-shimmer}@keyframes svelte-7mkeya-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.version-select-skeleton.svelte-7mkeya{animation:none}}.empty-state.svelte-1dv4ads{align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-6);text-align:center;color:var(--color-text-tertiary);flex-direction:column;display:flex}.empty-state.svelte-1dv4ads p{font-size:var(--text-sm)}.secret-select.svelte-180dg8u{gap:var(--space-2);flex-direction:column;display:flex}.ss-row.svelte-180dg8u{align-items:center;gap:var(--space-2);display:flex}.ss-select.svelte-180dg8u{flex:auto;min-width:0;height:38px}.ss-add-btn.svelte-180dg8u{align-items:center;gap:var(--space-1);flex-shrink:0;height:38px;display:inline-flex}.ss-add-btn.svelte-180dg8u svg:where(.svelte-180dg8u){flex-shrink:0}.ss-add-form.svelte-180dg8u{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);flex-direction:column;display:flex}.ss-field.svelte-180dg8u{flex-direction:column;gap:4px;display:flex}.ss-field-label.svelte-180dg8u{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.ss-error.svelte-180dg8u{font-size:var(--text-xs);color:var(--color-danger)}.ss-actions.svelte-180dg8u{gap:var(--space-2);display:flex}@media (width<=480px){.ss-add-label.svelte-180dg8u{display:none}.ss-add-btn.svelte-180dg8u{justify-content:center;width:38px}}.addon-table.svelte-87zh26{flex-direction:column;width:100%;display:flex}.addon-table-header.svelte-87zh26{padding:var(--space-2) var(--space-5);background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-badge-neutral-fg);text-transform:none;align-items:center;display:flex}.addon-row.svelte-87zh26{padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-bg-tertiary);transition:background var(--transition-fast);align-items:center;display:flex}.addon-row.svelte-87zh26:last-child{border-bottom:none}.addon-row.svelte-87zh26:hover{background:var(--color-surface-hover)}.addon-col.svelte-87zh26{align-items:center;gap:var(--space-2);display:flex}.addon-col--name.svelte-87zh26{flex:3;min-width:0}.addon-col--status.svelte-87zh26{flex:1;min-width:0}.addon-col--actions.svelte-87zh26{flex:none;justify-content:flex-end}.addon-name.svelte-87zh26{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}@media (width<=480px){.addon-row.svelte-87zh26{flex-wrap:wrap}.addon-col--name.svelte-87zh26{flex:1 0 100%}.addon-col--actions.svelte-87zh26{justify-content:flex-start}}.error-state.svelte-87zh26{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);font-size:var(--text-sm);color:var(--color-danger);display:flex}@media (width<=768px){.addon-table-header.svelte-87zh26{display:none}.addon-row.svelte-87zh26{gap:var(--space-2);flex-wrap:wrap}.addon-col--status.svelte-87zh26{flex:none}}.creds-loading.svelte-87zh26{align-items:center;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--text-sm);display:flex}.creds-empty.svelte-87zh26,.creds-hint.svelte-87zh26{font-size:var(--text-xs);color:var(--color-text-tertiary);margin:0}.creds-row.svelte-87zh26{gap:var(--space-1);flex-direction:column;display:flex}.creds-label.svelte-87zh26{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text);display:flex}.creds-label.svelte-87zh26 code:where(.svelte-87zh26){font-family:var(--font-mono);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:1px 6px}.creds-tag.svelte-87zh26{font-size:var(--text-xs);border-radius:var(--radius-full);background:var(--color-bg-tertiary);color:var(--color-text-tertiary);white-space:nowrap;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px}.creds-tag--set.svelte-87zh26{background:var(--color-success-bg);color:var(--color-success)}.creds-desc.svelte-87zh26{font-size:var(--text-xs);color:var(--color-text-tertiary);margin:0}.form-input.svelte-87zh26{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;height:32px;padding:0 var(--space-3);background:var(--color-bg);color:var(--color-text);font-size:var(--text-sm);font-family:inherit}.form-input.svelte-87zh26:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle);outline:none}.ct-service-name.svelte-1clpuus{font-weight:var(--font-medium);font-family:var(--font-mono);font-size:var(--text-xs)}.ct-mono.svelte-1clpuus{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary)}.ct-indicator.svelte-1clpuus{border-radius:50%;flex-shrink:0;width:8px;height:8px}.ct-indicator--success.svelte-1clpuus{background:var(--color-success)}.ct-indicator--danger.svelte-1clpuus{background:var(--color-danger)}.ct-indicator--warning.svelte-1clpuus{background:var(--color-warning)}.ct-indicator--idle.svelte-1clpuus{background:var(--color-border)}.ct-chevron-open.svelte-1clpuus{transform:rotate(180deg)}.ct-not-created.svelte-1clpuus{color:var(--color-text-tertiary);font-style:italic}.container-table-row.svelte-1clpuus{padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-bg-tertiary);font-size:var(--text-sm);width:100%;font-family:var(--font-sans);text-align:left;background:0 0;border-top:none;border-left:none;border-right:none;align-items:center;display:flex}.container-table-row.svelte-1clpuus:last-child{border-bottom:none}.container-table-row--clickable.svelte-1clpuus{cursor:pointer;transition:background var(--transition-fast)}.container-table-row--clickable.svelte-1clpuus:hover{background:var(--color-surface-hover)}.container-table-row--clickable.svelte-1clpuus:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}@media (width<=768px){.container-table-row.svelte-1clpuus{gap:var(--space-1);padding:var(--space-3) var(--space-4);flex-wrap:wrap}}.container-detail.svelte-17lh9yz{padding:var(--space-4) var(--space-5) var(--space-4) calc(var(--space-5) + 28px);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)}.detail-grid.svelte-17lh9yz{gap:var(--space-3) var(--space-6);grid-template-columns:1fr 1fr;display:grid}.detail-item.svelte-17lh9yz{flex-direction:column;gap:2px;display:flex}.detail-label.svelte-17lh9yz{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em}.detail-value.svelte-17lh9yz{font-size:var(--text-sm);color:var(--color-text);align-items:center;gap:var(--space-2);display:flex}.detail-mono.svelte-17lh9yz{font-family:var(--font-mono);font-size:var(--text-xs);word-break:break-all}.detail-digest.svelte-17lh9yz{font-size:var(--text-xs);color:var(--color-text-tertiary)}.detail-actions.svelte-17lh9yz{gap:var(--space-2);margin-top:var(--space-4);display:flex}.detail-not-created.svelte-17lh9yz{padding:var(--space-2) 0}.detail-not-created.svelte-17lh9yz p:where(.svelte-17lh9yz){font-size:var(--text-sm);color:var(--color-text-secondary)}.action-feedback.svelte-17lh9yz{margin-top:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-medium)}.action-feedback--success.svelte-17lh9yz{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}.action-feedback--error.svelte-17lh9yz{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger)}.confirm-bar.svelte-17lh9yz{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-warning-bg);border:1px solid var(--color-warning);border-radius:var(--radius-md);display:flex}.confirm-text.svelte-17lh9yz{font-size:var(--text-sm);color:var(--color-text)}.confirm-actions.svelte-17lh9yz{gap:var(--space-2);flex-shrink:0;display:flex}@media (width<=768px){.detail-grid.svelte-17lh9yz{grid-template-columns:1fr}.container-detail.svelte-17lh9yz{padding-left:var(--space-4)}.confirm-bar.svelte-17lh9yz{flex-direction:column;align-items:stretch}.confirm-actions.svelte-17lh9yz{justify-content:flex-end}}.text-danger.svelte-llpoy7{color:var(--color-danger)}.empty-state.svelte-llpoy7 .btn:where(.svelte-llpoy7){margin-top:var(--space-2)}.empty-state.svelte-llpoy7 .hint:where(.svelte-llpoy7){font-size:var(--text-xs);color:var(--color-text-tertiary);max-width:32ch}.container-table.svelte-fnc5b8{flex-direction:column;width:100%;display:flex}.container-table-header.svelte-fnc5b8{padding:var(--space-2) var(--space-5);background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-secondary);text-transform:none;align-items:center;display:flex}.last-updated.svelte-fnc5b8{font-size:var(--text-xs);color:var(--color-text-tertiary);white-space:nowrap}@media (width<=768px){.container-table-header.svelte-fnc5b8{display:none}}.automation-list.svelte-1xltcby{gap:var(--space-3);flex-direction:column;display:flex}.automation-card.svelte-1xltcby{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.automation-row.svelte-1xltcby{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:var(--space-4);display:flex}.automation-main.svelte-1xltcby{flex:1;min-width:0}.automation-name.svelte-1xltcby{align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);flex-wrap:wrap;display:flex}.automation-desc.svelte-1xltcby{font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:var(--space-1)}.automation-meta.svelte-1xltcby{align-items:flex-end;gap:var(--space-1);flex-direction:column;flex-shrink:0;display:flex}.meta-item.svelte-1xltcby{font-size:var(--text-xs);color:var(--color-text-secondary)}.meta-item.svelte-1xltcby code:where(.svelte-1xltcby){font-family:var(--font-mono);font-size:var(--text-xs);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:1px 6px}.schedule-friendly.svelte-1xltcby{font-weight:var(--font-medium);color:var(--color-text)}.meta-tz.svelte-1xltcby{color:var(--color-text-tertiary)}.badge-type.svelte-1xltcby{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.automation-footer.svelte-1xltcby{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-top:1px solid var(--color-border);background:var(--color-bg-tertiary);display:flex}.automation-actions.svelte-1xltcby{gap:var(--space-1);display:flex}.task-editor.svelte-1xltcby{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);padding:var(--space-4);margin-bottom:var(--space-4);gap:var(--space-2);flex-direction:column;display:flex}.task-editor-head.svelte-1xltcby{flex-direction:column;gap:2px;display:flex}.task-editor-name.svelte-1xltcby{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--font-semibold)}.task-editor-hint.svelte-1xltcby{font-size:var(--text-xs);color:var(--color-text-secondary)}.task-editor-area.svelte-1xltcby{width:100%;font-family:var(--font-mono);font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);padding:var(--space-3);resize:vertical;line-height:1.5}.task-editor-actions.svelte-1xltcby{justify-content:flex-end;gap:var(--space-2);display:flex}.automation-file.svelte-1xltcby{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--color-text-tertiary)}.empty-state-hint.svelte-1xltcby{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:calc(-1 * var(--space-2))}.empty-state-btn.svelte-1xltcby{margin-top:var(--space-2)}.empty-state-hint.svelte-1xltcby code:where(.svelte-1xltcby){font-family:var(--font-mono);font-size:var(--text-xs);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:1px 6px}.text-danger.svelte-1xltcby{color:var(--color-danger)}@media (width<=768px){.automation-row.svelte-1xltcby{flex-direction:column}.automation-meta.svelte-1xltcby{align-items:flex-start;gap:var(--space-3);flex-direction:row}}.add-search.svelte-1ykz2x6{width:100%;margin-bottom:var(--space-3)}.pick-list.svelte-1ykz2x6{margin:0 calc(var(--space-5) * -1) calc(var(--space-5) * -1)}.provider-pick.svelte-1ykz2x6{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-5);border:none;border-bottom:1px solid var(--color-bg-tertiary);cursor:pointer;text-align:left;background:0 0;font-family:inherit;display:flex}.provider-pick.svelte-1ykz2x6:hover{background:var(--color-surface-hover)}.provider-pick--custom.svelte-1ykz2x6{border-top:1px solid var(--color-border);color:var(--color-primary)}.provider-name.svelte-1ykz2x6{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);flex:1}.provider-pick--custom.svelte-1ykz2x6 .provider-name:where(.svelte-1ykz2x6){color:var(--color-primary)}.provider-meta.svelte-1ykz2x6{font-size:var(--text-xs);color:var(--color-text-tertiary)}.empty.svelte-1ykz2x6{padding:var(--space-6) var(--space-5);text-align:center;color:var(--color-text-tertiary);font-size:var(--text-sm)}.connect-back.svelte-1bnolke{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-text-secondary);font-size:var(--text-lg);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.connect-back.svelte-1bnolke:hover{background:var(--color-surface-hover);color:var(--color-text)}.connect-back.svelte-1bnolke:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.auth-method-group.svelte-1bnolke{gap:var(--space-2);flex-direction:column;display:flex}.auth-method-card.svelte-1bnolke{gap:var(--space-1);padding:var(--space-3) var(--space-4);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:border-color var(--transition-fast), background var(--transition-fast);flex-direction:column;font-family:inherit;display:flex}.auth-method-card.svelte-1bnolke:hover{border-color:var(--color-border-hover);background:var(--color-surface-hover)}.method-label.svelte-1bnolke{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.method-type.svelte-1bnolke{font-size:var(--text-xs);color:var(--color-text-tertiary)}.form-stack.svelte-1btkq49{gap:var(--space-4);flex-direction:column;display:flex}.optional.svelte-1btkq49{font-weight:var(--font-medium);color:var(--color-text-tertiary);font-size:var(--text-xs)}.result-list.svelte-15y8pah{padding-left:var(--space-5);gap:var(--space-1);margin:0 0 var(--space-3);flex-direction:column;list-style:outside;display:flex}.result-list.svelte-15y8pah li:where(.svelte-15y8pah){font-size:var(--text-sm);color:var(--color-text)}.result-list.svelte-15y8pah code:where(.svelte-15y8pah){font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:1px 6px}.muted.svelte-15y8pah{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-left:var(--space-2)}.feedback.inline.svelte-19zt4ct{margin:var(--space-3) var(--space-5);justify-content:space-between}.provider-row.svelte-19zt4ct{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-bg-tertiary);display:flex}.model-defaults.svelte-19zt4ct{gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);grid-template-columns:1fr 1fr;display:grid}.model-field.svelte-19zt4ct{gap:var(--space-1);flex-direction:column;display:flex}.model-error.svelte-19zt4ct{font-size:var(--text-xs);color:var(--color-danger);grid-column:1/-1;margin:0}.provider-id.svelte-19zt4ct{align-items:center;gap:var(--space-2);flex:1;min-width:0;display:flex}.provider-name.svelte-19zt4ct{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.empty-hint.svelte-19zt4ct{color:var(--color-text-tertiary)}.controls.svelte-coqj2u{align-items:flex-end;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);flex-wrap:wrap;display:flex}.control-group.svelte-coqj2u{gap:var(--space-1);flex-direction:column;display:flex}.control-group--toggle.svelte-coqj2u{justify-content:flex-end}.control-label.svelte-coqj2u{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary);text-transform:none}.control-input.svelte-coqj2u{height:32px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:var(--text-sm);min-width:140px;font-family:inherit}.control-input.svelte-coqj2u:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle);outline:none}.toggle-label.svelte-coqj2u{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;height:32px;display:flex}.toggle-label.svelte-coqj2u input:where(.svelte-coqj2u){accent-color:var(--color-primary)}.log-output.svelte-coqj2u{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text);background:var(--color-bg);padding:var(--space-4) var(--space-5);white-space:pre-wrap;word-break:break-all;tab-size:4;max-height:600px;margin:0;line-height:1.6;overflow-y:auto}.error-banner.svelte-coqj2u{padding:var(--space-3) var(--space-5);background:var(--color-danger-bg);border-bottom:1px solid var(--color-danger-border,#ff6b6b40);color:var(--color-danger);font-size:var(--text-sm)}@media (width<=768px){.controls.svelte-coqj2u{flex-direction:column;align-items:stretch}.control-input.svelte-coqj2u{min-width:unset;width:100%}.log-output.svelte-coqj2u{max-height:400px;font-size:var(--text-xs)}}.panel-header.svelte-epscb2{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.section-note.svelte-epscb2{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0 0 var(--space-4)}.error-banner.svelte-epscb2{background:var(--color-danger-subtle,#ef44441a);color:var(--color-danger,#ef4444);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);margin-bottom:var(--space-4)}.empty-note.svelte-epscb2{font-size:var(--text-sm);color:var(--color-text-secondary)}.mono.svelte-epscb2{font-family:var(--font-mono);font-size:var(--text-sm)}.secrets-layout.svelte-epscb2{gap:var(--space-4);grid-template-columns:minmax(16rem,22rem) 1fr;align-items:start;display:grid}@media (width<=720px){.secrets-layout.svelte-epscb2{grid-template-columns:1fr}}.secrets-list.svelte-epscb2{gap:var(--space-1);flex-direction:column;display:flex}.secret-row.svelte-epscb2{align-items:center;gap:var(--space-1);display:flex}.secret-row.active.svelte-epscb2 .secret-name:where(.svelte-epscb2){border-color:var(--color-primary,#6366f1)}.secret-name.svelte-epscb2{justify-content:space-between;align-items:center;gap:var(--space-2);text-align:left;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);color:var(--color-text);cursor:pointer;flex:1;display:flex}.secret-name.svelte-epscb2:hover{background:var(--color-bg-tertiary,var(--color-bg-secondary))}.secret-size.svelte-epscb2{font-size:var(--text-xs);color:var(--color-text-secondary);flex-shrink:0}.new-secret.svelte-epscb2{gap:var(--space-1);margin-top:var(--space-3);flex-direction:column;display:flex}.new-secret-label.svelte-epscb2{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.new-secret-row.svelte-epscb2{gap:var(--space-2);flex-wrap:wrap;display:flex}.secrets-editor.svelte-epscb2{min-width:0}.editor-head.svelte-epscb2{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.reveal-toggle.svelte-epscb2{align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-secondary);display:flex}.editor-area.svelte-epscb2{width:100%;font-family:var(--font-mono);font-size:var(--text-sm);resize:vertical}.editor-area.masked.svelte-epscb2{-webkit-text-security:disc}.editor-actions.svelte-epscb2{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2);display:flex}.editor-empty.svelte-epscb2{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);color:var(--color-text-secondary);text-align:center;border:1px dashed var(--color-border);border-radius:var(--radius-md);flex-direction:column;min-height:12rem;display:flex}.editor-empty.svelte-epscb2 svg:where(.svelte-epscb2){opacity:.4}.editor-empty.svelte-epscb2 p:where(.svelte-epscb2){font-size:var(--text-sm);max-width:24rem;margin:0}.input-with-toggle.svelte-176sy43{align-items:stretch;gap:var(--space-2);display:flex}.control-input.svelte-176sy43{font-size:var(--text-sm);color:var(--color-text);background:var(--color-input-bg,var(--color-bg));border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);flex:auto;min-width:0}.control-input.svelte-176sy43:focus{outline:2px solid var(--color-primary);outline-offset:1px}.btn-icon.svelte-176sy43{padding:0 var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-height:38px;color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);flex-shrink:0}.btn-icon.svelte-176sy43:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.btn-icon.svelte-176sy43:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn-icon.svelte-176sy43:disabled{opacity:.6;cursor:not-allowed}.config-section.svelte-y5k1u8{gap:var(--space-3);flex-direction:column;display:flex}.section-title.svelte-y5k1u8{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);margin:0}.section-note.svelte-y5k1u8{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:72ch;margin:0}.controls--grid.svelte-y5k1u8{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.control-group.svelte-y5k1u8{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.control-group--wide.svelte-y5k1u8{grid-column:1/-1}.control-label.svelte-y5k1u8{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.control-input.svelte-y5k1u8{font-size:var(--text-sm);color:var(--color-text);background:var(--color-input-bg,var(--color-bg));border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);width:100%}.control-input--narrow.svelte-y5k1u8{max-width:8rem}.control-input.svelte-y5k1u8:focus{outline:2px solid var(--color-primary);outline-offset:1px}.config-section.svelte-gfn07p{gap:var(--space-3);flex-direction:column;display:flex}.section-title.svelte-gfn07p{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);margin:0}.section-note.svelte-gfn07p{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:72ch;margin:0}.controls--grid.svelte-gfn07p{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.control-group.svelte-gfn07p{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.control-group--wide.svelte-gfn07p{grid-column:1/-1}.control-label.svelte-gfn07p{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.control-input.svelte-gfn07p{font-size:var(--text-sm);color:var(--color-text);background:var(--color-input-bg,var(--color-bg));border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);width:100%}.control-input--narrow.svelte-gfn07p{max-width:8rem}.control-input.svelte-gfn07p:focus{outline:2px solid var(--color-primary);outline-offset:1px}.adv-details.svelte-gfn07p{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-top:var(--space-4)}.adv-summary.svelte-gfn07p{cursor:pointer;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.adv-summary.svelte-gfn07p:hover{background:var(--color-surface-hover)}.adv-details[open].svelte-gfn07p .adv-summary:where(.svelte-gfn07p){border-bottom:1px solid var(--color-border)}.adv-body.svelte-gfn07p{padding:var(--space-4)}.profile-row.svelte-zzh9mp{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);display:flex}.profile-row-name.svelte-zzh9mp{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.profile-row-actions.svelte-zzh9mp{gap:var(--space-2);flex-shrink:0;display:flex}.badge.svelte-zzh9mp{font-size:var(--text-xs);padding:2px var(--space-2);border-radius:var(--radius-sm);background:var(--color-bg-tertiary,var(--color-bg-secondary));color:var(--color-text-secondary);border:1px solid var(--color-border);white-space:nowrap;flex-shrink:0}.badge--default.svelte-zzh9mp{background:var(--color-primary-subtle,#6366f11a);color:var(--color-primary,#6366f1);border-color:var(--color-primary-border,#6366f14d)}.config-section.svelte-zwwvog{gap:var(--space-4);flex-direction:column;display:flex}.section-title.svelte-zwwvog{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);margin:0}.section-title-aka.svelte-zwwvog{font-size:var(--text-xs);font-weight:var(--font-normal);color:var(--color-text-secondary);font-family:var(--font-mono);margin-left:var(--space-2)}.section-note.svelte-zwwvog{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.empty-note.svelte-zwwvog{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;font-style:italic}.profile-empty.svelte-zwwvog{align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-2);color:var(--color-text-secondary);flex-direction:column;display:flex}.profile-empty.svelte-zwwvog svg:where(.svelte-zwwvog){opacity:.45}.profile-list.svelte-zwwvog{gap:var(--space-1);flex-direction:column;display:flex}.config-section.svelte-anyxpa{gap:var(--space-4);flex-direction:column;display:flex}.section-title.svelte-anyxpa{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);margin:0}.section-title-aka.svelte-anyxpa{font-size:var(--text-xs);font-weight:var(--font-normal);color:var(--color-text-secondary);font-family:var(--font-mono);margin-left:var(--space-2)}.section-note.svelte-anyxpa{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.empty-note.svelte-anyxpa{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;font-style:italic}.profile-empty.svelte-anyxpa{align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-2);color:var(--color-text-secondary);flex-direction:column;display:flex}.profile-empty.svelte-anyxpa svg:where(.svelte-anyxpa){opacity:.45}.profile-list.svelte-anyxpa{gap:var(--space-1);flex-direction:column;display:flex}.badge.svelte-anyxpa{font-size:var(--text-xs);padding:2px var(--space-2);border-radius:var(--radius-sm);background:var(--color-bg-tertiary,var(--color-bg-secondary));color:var(--color-text-secondary);border:1px solid var(--color-border);white-space:nowrap;flex-shrink:0}.config-section.svelte-1ngozvb{gap:var(--space-4);flex-direction:column;display:flex}.section-title.svelte-1ngozvb{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);margin:0}.section-title-aka.svelte-1ngozvb{font-size:var(--text-xs);font-weight:var(--font-normal);color:var(--color-text-secondary);font-family:var(--font-mono);margin-left:var(--space-2)}.section-note.svelte-1ngozvb{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.empty-note.svelte-1ngozvb{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;font-style:italic}.profile-empty.svelte-1ngozvb{align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-2);color:var(--color-text-secondary);flex-direction:column;display:flex}.profile-empty.svelte-1ngozvb svg:where(.svelte-1ngozvb){opacity:.45}.profile-list.svelte-1ngozvb{gap:var(--space-1);flex-direction:column;display:flex}.profile-row-desc.svelte-1ngozvb{font-size:var(--text-xs);color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:20rem;overflow:hidden}.controls.svelte-1gmn25z{gap:var(--space-4);flex-direction:column;display:flex}.controls--grid.svelte-1gmn25z{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));display:grid}.control-group.svelte-1gmn25z{gap:var(--space-1);flex-direction:column;display:flex}.control-group--wide.svelte-1gmn25z{grid-column:1/-1}.control-label.svelte-1gmn25z{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.control-input.svelte-1gmn25z{font-size:var(--text-sm);color:var(--color-text);background:var(--color-input-bg,var(--color-bg));border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);width:100%}.control-input--narrow.svelte-1gmn25z{max-width:8rem}.control-input.svelte-1gmn25z:focus{outline:2px solid var(--color-primary);outline-offset:1px}.control-input.svelte-1gmn25z:disabled{opacity:.5;cursor:not-allowed}.toggle-row.svelte-1gmn25z{align-items:center;gap:var(--space-3);cursor:pointer;font-size:var(--text-sm);display:flex}.toggle-row.svelte-1gmn25z input[type=checkbox]:where(.svelte-1gmn25z){flex-shrink:0;width:1rem;height:1rem}.toggle-label.svelte-1gmn25z{font-weight:var(--font-medium);color:var(--color-text)}.toggle-hint.svelte-1gmn25z{color:var(--color-text-secondary);font-size:var(--text-xs)}.feat-hint.svelte-1gmn25z{font-size:var(--text-xs);color:var(--color-text-secondary)}.drawer-scrim.svelte-1gmn25z{z-index:200;background:#00000059;position:fixed;inset:0}.drawer.svelte-1gmn25z{background:var(--color-bg);border-left:1px solid var(--color-border);z-index:201;flex-direction:column;width:min(640px,92vw);animation:.2s cubic-bezier(.16,1,.3,1) svelte-1gmn25z-drawer-in;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 32px #0003}@keyframes svelte-1gmn25z-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header.svelte-1gmn25z{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.drawer-title.svelte-1gmn25z{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.drawer-close.svelte-1gmn25z{border-radius:var(--radius-sm);border:1px solid var(--color-border);width:2rem;height:2rem;color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-sm);background:0 0;justify-content:center;align-items:center;display:flex}.drawer-close.svelte-1gmn25z:hover{background:var(--color-surface-hover);color:var(--color-text)}.drawer-body.svelte-1gmn25z{padding:var(--space-6);gap:var(--space-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.drawer-footer.svelte-1gmn25z{justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);flex-shrink:0;display:flex}.controls.svelte-1evj0pt{gap:var(--space-4);flex-direction:column;display:flex}.controls--grid.svelte-1evj0pt{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));display:grid}.control-group.svelte-1evj0pt{gap:var(--space-1);flex-direction:column;display:flex}.control-group--wide.svelte-1evj0pt{grid-column:1/-1}.control-label.svelte-1evj0pt{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.control-input.svelte-1evj0pt{font-size:var(--text-sm);color:var(--color-text);background:var(--color-input-bg,var(--color-bg));border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);width:100%}.control-input.svelte-1evj0pt:focus{outline:2px solid var(--color-primary);outline-offset:1px}.control-input.svelte-1evj0pt:disabled{opacity:.5;cursor:not-allowed}.drawer-scrim.svelte-1evj0pt{z-index:200;background:#00000059;position:fixed;inset:0}.drawer.svelte-1evj0pt{background:var(--color-bg);border-left:1px solid var(--color-border);z-index:201;flex-direction:column;width:min(640px,92vw);animation:.2s cubic-bezier(.16,1,.3,1) svelte-1evj0pt-drawer-in;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 32px #0003}@keyframes svelte-1evj0pt-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header.svelte-1evj0pt{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.drawer-title.svelte-1evj0pt{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.drawer-close.svelte-1evj0pt{border-radius:var(--radius-sm);border:1px solid var(--color-border);width:2rem;height:2rem;color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-sm);background:0 0;justify-content:center;align-items:center;display:flex}.drawer-close.svelte-1evj0pt:hover{background:var(--color-surface-hover);color:var(--color-text)}.drawer-body.svelte-1evj0pt{padding:var(--space-6);gap:var(--space-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.drawer-footer.svelte-1evj0pt{justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);flex-shrink:0;display:flex}.controls.svelte-1ndbe78{gap:var(--space-4);flex-direction:column;display:flex}.controls--grid.svelte-1ndbe78{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));display:grid}.control-group.svelte-1ndbe78{gap:var(--space-1);flex-direction:column;display:flex}.control-group--wide.svelte-1ndbe78{grid-column:1/-1}.control-label.svelte-1ndbe78{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.control-input.svelte-1ndbe78{font-size:var(--text-sm);color:var(--color-text);background:var(--color-input-bg,var(--color-bg));border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);width:100%}.control-input--narrow.svelte-1ndbe78{max-width:8rem}.control-input.svelte-1ndbe78:focus{outline:2px solid var(--color-primary);outline-offset:1px}.control-input.svelte-1ndbe78:disabled{opacity:.5;cursor:not-allowed}.feat-name.svelte-1ndbe78{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);font-family:var(--font-mono);display:block}.feat-hint.svelte-1ndbe78{font-size:var(--text-xs);color:var(--color-text-secondary)}.proc-list.svelte-1ndbe78{gap:var(--space-2);flex-direction:column;display:flex}.proc-card.svelte-1ndbe78{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);padding:var(--space-2)}.proc-head.svelte-1ndbe78{align-items:center;gap:var(--space-2);grid-template-columns:1.5rem 1fr 9rem 11rem 7rem;display:grid}@media (width<=600px){.proc-head.svelte-1ndbe78{grid-template-columns:1.5rem 1fr}.proc-head.svelte-1ndbe78>:where(.svelte-1ndbe78):nth-child(n+3){grid-column:1/-1}}.proc-head.svelte-1ndbe78 input[type=checkbox]:where(.svelte-1ndbe78){width:1rem;height:1rem}.proc-name.svelte-1ndbe78{min-width:0}.proc-adv.svelte-1ndbe78{margin-top:var(--space-2)}.proc-adv.svelte-1ndbe78>summary:where(.svelte-1ndbe78){cursor:pointer;font-size:var(--text-xs);color:var(--color-text-secondary);-webkit-user-select:none;user-select:none}.proc-adv-grid.svelte-1ndbe78{gap:var(--space-2);margin-top:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));display:grid}.adv-field.svelte-1ndbe78{flex-direction:column;gap:2px;display:flex}.adv-field.svelte-1ndbe78>span:where(.svelte-1ndbe78){font-size:var(--text-xs);color:var(--color-text-secondary)}.adv-field--check.svelte-1ndbe78{align-items:center;gap:var(--space-2);flex-direction:row}.adv-field--wide.svelte-1ndbe78{grid-column:1/-1}.adv-sublabel.svelte-1ndbe78{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary);margin-bottom:2px;display:block}.drawer-scrim.svelte-1ndbe78{z-index:200;background:#00000059;position:fixed;inset:0}.drawer.svelte-1ndbe78{background:var(--color-bg);border-left:1px solid var(--color-border);z-index:201;flex-direction:column;width:min(640px,92vw);animation:.2s cubic-bezier(.16,1,.3,1) svelte-1ndbe78-drawer-in;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 32px #0003}@keyframes svelte-1ndbe78-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header.svelte-1ndbe78{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.drawer-title.svelte-1ndbe78{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.drawer-close.svelte-1ndbe78{border-radius:var(--radius-sm);border:1px solid var(--color-border);width:2rem;height:2rem;color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-sm);background:0 0;justify-content:center;align-items:center;display:flex}.drawer-close.svelte-1ndbe78:hover{background:var(--color-surface-hover);color:var(--color-text)}.drawer-body.svelte-1ndbe78{padding:var(--space-6);gap:var(--space-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.drawer-footer.svelte-1ndbe78{justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);flex-shrink:0;display:flex}.k-tabs.svelte-19wb2va{scrollbar-width:none;gap:var(--space-1);padding:var(--space-1);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-2);flex-wrap:nowrap;display:flex;overflow-x:auto}.k-tabs.svelte-19wb2va::-webkit-scrollbar{display:none}.k-tab.svelte-19wb2va{min-height:2.75rem;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:var(--font-normal,400);color:var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;flex:1 0 auto;transition:background .15s,color .15s}.k-tab.svelte-19wb2va:hover{background:var(--color-surface-hover,#0000000d);color:var(--color-text)}.k-tab.svelte-19wb2va:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.k-tab--active.svelte-19wb2va{background:var(--color-bg);border-color:var(--color-border);color:var(--color-text);font-weight:var(--font-semibold);box-shadow:0 1px 3px #00000014}@media (width<=400px){.k-tab.svelte-19wb2va{font-size:var(--text-xs);padding:var(--space-2)}}.panel-header.svelte-19wb2va{margin-bottom:var(--space-6);z-index:10;background:var(--color-bg);padding-top:var(--space-2);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.panel-header.svelte-19wb2va h2:where(.svelte-19wb2va){font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.panel-header-actions.svelte-19wb2va{gap:var(--space-2);display:flex}.panel-body.svelte-19wb2va{gap:var(--space-8);flex-direction:column;display:flex}.section-note--lead.svelte-19wb2va{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:72ch;margin:0 0 var(--space-4)}.section-note.svelte-19wb2va{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.error-banner.svelte-19wb2va{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-error-bg,#dc262614);border:1px solid var(--color-error-border,#dc262640);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-error,#dc2626);margin-bottom:var(--space-4);display:flex}.panel-header.svelte-fv9i73{margin-bottom:var(--space-5)}.panel-header.svelte-fv9i73 h2:where(.svelte-fv9i73){font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text)}.config-section.svelte-fv9i73{gap:var(--space-3);flex-direction:column;display:flex}.section-note.svelte-fv9i73{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:68ch;margin:0}.hs-restart.svelte-fv9i73{font-size:var(--text-sm);color:var(--color-badge-warning-fg);font-weight:var(--font-medium);margin:0}.hs-loading.svelte-fv9i73{align-items:center;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--text-sm);display:flex}.controls--grid.svelte-fv9i73{gap:var(--space-4);grid-template-columns:1fr;display:grid}.control-group.svelte-fv9i73{gap:var(--space-2);flex-direction:column;display:flex}.control-label.svelte-fv9i73{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.control-label--checkbox.svelte-fv9i73{align-items:center;gap:var(--space-2);font-weight:var(--font-normal);flex-direction:row}.host-akm-status.svelte-fv9i73{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.host-akm-path.svelte-fv9i73{font-size:var(--text-xs);color:var(--color-text-secondary)}.host-akm-actions.svelte-fv9i73{gap:var(--space-2);flex-flow:wrap}.engine-section.svelte-1b9l1t7{gap:var(--space-3);flex-direction:column;display:flex}.engine-heading.svelte-1b9l1t7{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.engine-subheading.svelte-1b9l1t7{font-size:var(--text-xs);color:var(--color-text-secondary);margin:0}.tts-extras.svelte-1b9l1t7{gap:var(--space-3);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border);flex-direction:column;display:flex}.test-voice-row.svelte-1b9l1t7{align-items:center;gap:var(--space-3);display:flex}.test-result.svelte-1b9l1t7{font-size:var(--text-xs)}.test-result--ok.svelte-1b9l1t7{color:var(--color-success,#16a34a)}.test-result--err.svelte-1b9l1t7{color:var(--color-error,#dc2626)}.auto-speak-toggle.svelte-1b9l1t7{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text);cursor:pointer;display:flex}.auto-speak-toggle.svelte-1b9l1t7 input[type=checkbox]:where(.svelte-1b9l1t7){cursor:pointer;width:16px;height:16px}.engine-section.svelte-1qwlk8j{gap:var(--space-3);flex-direction:column;display:flex}.engine-heading.svelte-1qwlk8j{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.engine-subheading.svelte-1qwlk8j{font-size:var(--text-xs);color:var(--color-text-secondary);margin:0}.engine-section.svelte-1r7l91t{gap:var(--space-3);flex-direction:column;display:flex}.engine-heading.svelte-1r7l91t{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.panel-header.svelte-nokcxu{z-index:10;background:var(--color-surface);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-bottom:0;display:flex;position:sticky;top:0}.panel-header.svelte-nokcxu h2:where(.svelte-nokcxu){font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.panel-header-actions.svelte-nokcxu{gap:var(--space-2);display:flex}.panel-body.svelte-nokcxu{gap:var(--space-6);flex-direction:column;display:flex}.section-desc.svelte-nokcxu{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.error-banner.svelte-nokcxu{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-error-bg,#dc262614);border:1px solid var(--color-error-border,#dc262640);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-error,#dc2626);margin-bottom:var(--space-4);display:flex}main.svelte-1jef3w8{padding:var(--space-6) var(--space-6) var(--space-12)}@media (width<=768px){main.svelte-1jef3w8{padding:var(--space-4) var(--space-4) var(--space-8)}}
|
|
1
|
+
.nav-shell.svelte-7673iv{top:var(--nav-height);z-index:40;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);position:sticky}.section-strip.svelte-7673iv{padding-inline:var(--space-6);-webkit-overflow-scrolling:touch;scrollbar-width:none;border-bottom:1px solid var(--color-border);background:var(--color-bg);gap:0;display:flex;overflow-x:auto}.section-strip.svelte-7673iv::-webkit-scrollbar{display:none}.section-tab.svelte-7673iv{min-height:36px;padding:var(--space-1) var(--space-4);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-muted,var(--color-text-secondary));cursor:pointer;white-space:nowrap;transition:color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:none;border-bottom:3px solid #0000;flex-shrink:0;align-items:center;margin-bottom:-1px;display:inline-flex}.section-tab.svelte-7673iv:hover{color:var(--color-text);background:var(--color-bg-secondary)}.section-tab.svelte-7673iv:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;border-radius:var(--radius-sm)}.section-tab-active.svelte-7673iv{color:var(--color-text);font-weight:var(--font-semibold);background:var(--color-bg-secondary);border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.subtab-row.svelte-7673iv{position:relative}.subtab-row.svelte-7673iv:after{content:"";background:linear-gradient(to right, transparent, var(--color-bg-secondary));pointer-events:none;width:48px;position:absolute;top:0;bottom:0;right:0}.subtab-row.svelte-7673iv:before{content:"";background:linear-gradient(to left, transparent, var(--color-bg-secondary));pointer-events:none;z-index:1;width:40px;position:absolute;top:0;bottom:0;left:0}.tabs.svelte-7673iv{gap:var(--space-1);padding-inline:var(--space-6);-webkit-overflow-scrolling:touch;scrollbar-width:none;display:flex;overflow-x:auto}.tabs.svelte-7673iv::-webkit-scrollbar{display:none}.tab.svelte-7673iv{align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-2) var(--space-3);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;transition:color var(--transition-fast), border-color var(--transition-fast), font-weight var(--transition-fast);background:0 0;border:none;border-bottom:3px solid #0000;flex-shrink:0;margin-bottom:-1px;display:inline-flex}.tab.svelte-7673iv:hover{color:var(--color-text)}.tab.svelte-7673iv:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;border-radius:var(--radius-sm)}.tab-active.svelte-7673iv{color:var(--color-text);font-weight:var(--font-semibold);border-bottom-color:var(--color-text)}@media (width<=768px){.tab.svelte-7673iv{padding:var(--space-2)}.section-tab.svelte-7673iv{padding:var(--space-1) var(--space-3)}.section-strip.svelte-7673iv,.tabs.svelte-7673iv{padding-inline:var(--space-4)}}@media (width<=320px){.tab.svelte-7673iv,.section-tab.svelte-7673iv{padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}}.hero.svelte-10n23hu{align-items:center;gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);margin-bottom:var(--space-6);border:1px solid #0000;flex-wrap:wrap;display:flex}.hero--ok.svelte-10n23hu{background:var(--color-success-bg);border-color:var(--color-success-border)}.hero--warning.svelte-10n23hu{background:var(--color-warning-bg);border-color:var(--color-warning)}.hero--unknown.svelte-10n23hu{background:var(--color-bg-secondary);border-color:var(--color-border)}.hero-icon.svelte-10n23hu{flex-shrink:0;display:inline-flex}.hero--ok.svelte-10n23hu .hero-icon:where(.svelte-10n23hu){color:var(--color-badge-success-fg)}.hero--warning.svelte-10n23hu .hero-icon:where(.svelte-10n23hu){color:var(--color-badge-warning-fg)}.hero--unknown.svelte-10n23hu .hero-icon:where(.svelte-10n23hu){color:var(--color-text-secondary)}.hero-text.svelte-10n23hu{flex:240px;min-width:0}.hero-title.svelte-10n23hu{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text)}.hero-detail.svelte-10n23hu{font-size:var(--text-sm);color:var(--color-badge-neutral-fg);max-width:68ch;margin-top:2px}.hero-actions.svelte-10n23hu{align-items:center;gap:var(--space-2);flex-wrap:wrap;max-width:100%;display:flex}.hero-actions.svelte-10n23hu .btn{flex-shrink:0}@media (width<=560px){.hero-actions.svelte-10n23hu{width:100%}.hero-actions.svelte-10n23hu .btn{flex:auto}}.output-section.svelte-10sij3c{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-6);overflow:hidden}.output-section--success.svelte-10sij3c{border-color:var(--color-success-border)}.output-section--error.svelte-10sij3c{border-color:var(--color-danger)}.output-header.svelte-10sij3c{padding:var(--space-3) var(--space-5);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.output-header.svelte-10sij3c h3:where(.svelte-10sij3c){font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text)}.output-code.svelte-10sij3c{padding:var(--space-4) var(--space-5);max-height:320px;font-family:var(--font-mono);font-size:var(--text-xs);color:#e4e8f0;white-space:pre-wrap;word-break:break-word;background:#1e2330;margin:0;line-height:1.6;overflow:auto}.tile.svelte-19hpfg{gap:var(--space-1);padding:var(--space-4) var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;text-align:left;font-family:var(--font-sans);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;display:flex}.tile.svelte-19hpfg:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-sm)}.tile.svelte-19hpfg:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.tile-metric.svelte-19hpfg{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-text);line-height:1.1}.tile-metric-sub.svelte-19hpfg{font-size:var(--text-lg);font-weight:var(--font-medium);color:var(--color-text-secondary)}.tile-metric--icon.svelte-19hpfg{color:var(--color-text-secondary)}.tile-label.svelte-19hpfg{font-size:var(--text-sm);color:var(--color-text-secondary)}.akm-card.svelte-dcgqe1{text-align:left;width:100%;font-family:var(--font-sans);padding:var(--space-5);margin-bottom:var(--space-8);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);display:block}.akm-card.svelte-dcgqe1:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-sm)}.akm-card.svelte-dcgqe1:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.akm-head.svelte-dcgqe1{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.akm-title.svelte-dcgqe1{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text)}.akm-metrics.svelte-dcgqe1{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.akm-metric.svelte-dcgqe1{flex-direction:column;gap:2px;display:flex}.akm-num.svelte-dcgqe1{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--color-text);line-height:1.1}.akm-num-sub.svelte-dcgqe1{font-size:var(--text-base);font-weight:var(--font-medium);color:var(--color-text-secondary)}.akm-cap.svelte-dcgqe1{font-size:var(--text-xs);color:var(--color-text-secondary)}.akm-unavailable.svelte-dcgqe1{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:68ch}.shortcut-grid.svelte-8y2vdf{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.shortcut.svelte-8y2vdf{padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:left;font-family:var(--font-sans);transition:border-color var(--transition-fast), background var(--transition-fast);flex-direction:column;gap:2px;text-decoration:none;display:flex}.shortcut.svelte-8y2vdf:hover{border-color:var(--color-border-hover);background:var(--color-surface-hover)}.shortcut.svelte-8y2vdf:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.shortcut-name.svelte-8y2vdf{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text)}.shortcut-desc.svelte-8y2vdf{font-size:var(--text-xs);color:var(--color-text-secondary)}.tile-grid.svelte-xz862u{gap:var(--space-4);margin-bottom:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.section-heading.svelte-xz862u{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-secondary);margin-bottom:var(--space-3)}.panel-subtitle.svelte-7mkeya{font-size:var(--text-sm);color:var(--color-text-secondary);margin:var(--space-1) 0 0;max-width:60ch}.refresh-releases.svelte-7mkeya{align-items:center;gap:var(--space-2);flex-shrink:0;display:inline-flex}.refresh-releases.svelte-7mkeya svg:where(.svelte-7mkeya){flex-shrink:0}@media (width<=600px){.refresh-releases.svelte-7mkeya{margin-top:var(--space-2)}}.status-live.svelte-7mkeya{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.update-card.svelte-7mkeya{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-secondary);flex-wrap:wrap;display:flex}.update-card-text.svelte-7mkeya{flex:1;min-width:14rem}.update-title.svelte-7mkeya{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.update-desc.svelte-7mkeya{font-size:var(--text-sm);color:var(--color-text-secondary);margin:var(--space-1) 0 0;max-width:60ch;line-height:1.5}.update-go.svelte-7mkeya{align-items:center;gap:var(--space-2);flex-shrink:0;display:inline-flex}.versions.svelte-7mkeya{gap:var(--space-2);margin:var(--space-5) 0 0;flex-direction:column;display:flex}.versions-row.svelte-7mkeya{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.versions-row.svelte-7mkeya dt:where(.svelte-7mkeya){font-size:var(--text-sm);color:var(--color-text)}.versions-row.svelte-7mkeya dd:where(.svelte-7mkeya){align-items:center;gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end;margin:0;display:flex}.version-cell.svelte-7mkeya{align-items:center;gap:var(--space-2);display:inline-flex}.version-value.svelte-7mkeya{font-size:var(--text-xs);font-family:var(--font-mono);background:var(--color-bg-secondary);border-radius:var(--radius-sm);border:2px solid var(--color-border);color:var(--color-text);padding:2px 8px}.version-value.status-current.svelte-7mkeya{border-color:var(--color-success,#16a34a)}.version-value.status-update.svelte-7mkeya{border-color:var(--color-warning,#d97706)}.version-value.status-unknown.svelte-7mkeya{border-color:var(--color-border)}.status-emoji.svelte-7mkeya{font-size:var(--text-sm);line-height:1}.version-action.svelte-7mkeya{flex-shrink:0}.version-action-note.svelte-7mkeya{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-secondary);display:inline-flex}.advanced.svelte-7mkeya{margin-top:var(--space-5);border-top:1px solid var(--color-border);padding-top:var(--space-4)}.advanced.svelte-7mkeya>summary:where(.svelte-7mkeya){cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);list-style:revert}.advanced.svelte-7mkeya>summary:where(.svelte-7mkeya):hover{color:var(--color-text)}.advanced.svelte-7mkeya>summary:where(.svelte-7mkeya):focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.advanced-body.svelte-7mkeya{gap:var(--space-2);margin-top:var(--space-4);flex-direction:column;display:flex}.version-section.svelte-7mkeya{gap:var(--space-2);flex-direction:column;display:flex}.version-label.svelte-7mkeya{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text)}.version-input-row.svelte-7mkeya{gap:var(--space-2);flex-wrap:wrap;display:flex}.version-input.svelte-7mkeya{min-width:0;padding:var(--space-1-5) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:var(--text-sm);font-family:var(--font-mono);flex:1}.version-input.svelte-7mkeya:disabled{opacity:.5;cursor:not-allowed}.version-hint.svelte-7mkeya{font-size:var(--text-xs);color:var(--color-text-secondary);margin:0;line-height:1.5}.version-divider.svelte-7mkeya{background:var(--color-border);height:1px;margin:var(--space-3) 0}.version-restart-prompt.svelte-7mkeya{align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-success);padding:var(--space-2) var(--space-3);background:var(--color-success-bg);border-radius:var(--radius-md);display:flex}.version-select.svelte-7mkeya{min-width:0;padding:var(--space-1-5) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:var(--text-sm);font-family:var(--font-mono);flex:1}.version-select.svelte-7mkeya:disabled{opacity:.5;cursor:not-allowed}.version-select-skeleton.svelte-7mkeya{border-radius:var(--radius-md);background:linear-gradient(90deg, var(--color-bg-secondary) 25%, var(--color-bg-tertiary) 50%, var(--color-bg-secondary) 75%);background-size:200% 100%;flex:1;height:34px;animation:1.4s ease-in-out infinite svelte-7mkeya-skeleton-shimmer}@keyframes svelte-7mkeya-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.version-select-skeleton.svelte-7mkeya{animation:none}}.empty-state.svelte-1dv4ads{align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-6);text-align:center;color:var(--color-text-tertiary);flex-direction:column;display:flex}.empty-state.svelte-1dv4ads p{font-size:var(--text-sm)}.secret-select.svelte-180dg8u{gap:var(--space-2);flex-direction:column;display:flex}.ss-row.svelte-180dg8u{align-items:center;gap:var(--space-2);display:flex}.ss-select.svelte-180dg8u{flex:auto;min-width:0;height:38px}.ss-add-btn.svelte-180dg8u{align-items:center;gap:var(--space-1);flex-shrink:0;height:38px;display:inline-flex}.ss-add-btn.svelte-180dg8u svg:where(.svelte-180dg8u){flex-shrink:0}.ss-add-form.svelte-180dg8u{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);flex-direction:column;display:flex}.ss-field.svelte-180dg8u{flex-direction:column;gap:4px;display:flex}.ss-field-label.svelte-180dg8u{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.ss-error.svelte-180dg8u{font-size:var(--text-xs);color:var(--color-danger)}.ss-actions.svelte-180dg8u{gap:var(--space-2);display:flex}@media (width<=480px){.ss-add-label.svelte-180dg8u{display:none}.ss-add-btn.svelte-180dg8u{justify-content:center;width:38px}}.addon-table.svelte-87zh26{flex-direction:column;width:100%;display:flex}.addon-table-header.svelte-87zh26{padding:var(--space-2) var(--space-5);background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-badge-neutral-fg);text-transform:none;align-items:center;display:flex}.addon-row.svelte-87zh26{padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-bg-tertiary);transition:background var(--transition-fast);align-items:center;display:flex}.addon-row.svelte-87zh26:last-child{border-bottom:none}.addon-row.svelte-87zh26:hover{background:var(--color-surface-hover)}.addon-col.svelte-87zh26{align-items:center;gap:var(--space-2);display:flex}.addon-col--name.svelte-87zh26{flex:3;min-width:0}.addon-col--status.svelte-87zh26{flex:1;min-width:0}.addon-col--actions.svelte-87zh26{flex:none;justify-content:flex-end}.addon-name.svelte-87zh26{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}@media (width<=480px){.addon-row.svelte-87zh26{flex-wrap:wrap}.addon-col--name.svelte-87zh26{flex:1 0 100%}.addon-col--actions.svelte-87zh26{justify-content:flex-start}}.error-state.svelte-87zh26{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);font-size:var(--text-sm);color:var(--color-danger);display:flex}@media (width<=768px){.addon-table-header.svelte-87zh26{display:none}.addon-row.svelte-87zh26{gap:var(--space-2);flex-wrap:wrap}.addon-col--status.svelte-87zh26{flex:none}}.creds-loading.svelte-87zh26{align-items:center;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--text-sm);display:flex}.creds-empty.svelte-87zh26,.creds-hint.svelte-87zh26{font-size:var(--text-xs);color:var(--color-text-tertiary);margin:0}.creds-row.svelte-87zh26{gap:var(--space-1);flex-direction:column;display:flex}.creds-label.svelte-87zh26{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text);display:flex}.creds-label.svelte-87zh26 code:where(.svelte-87zh26){font-family:var(--font-mono);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:1px 6px}.creds-tag.svelte-87zh26{font-size:var(--text-xs);border-radius:var(--radius-full);background:var(--color-bg-tertiary);color:var(--color-text-tertiary);white-space:nowrap;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px}.creds-tag--set.svelte-87zh26{background:var(--color-success-bg);color:var(--color-success)}.creds-desc.svelte-87zh26{font-size:var(--text-xs);color:var(--color-text-tertiary);margin:0}.form-input.svelte-87zh26{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;height:32px;padding:0 var(--space-3);background:var(--color-bg);color:var(--color-text);font-size:var(--text-sm);font-family:inherit}.form-input.svelte-87zh26:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle);outline:none}.ct-service-name.svelte-1clpuus{font-weight:var(--font-medium);font-family:var(--font-mono);font-size:var(--text-xs)}.ct-mono.svelte-1clpuus{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary)}.ct-indicator.svelte-1clpuus{border-radius:50%;flex-shrink:0;width:8px;height:8px}.ct-indicator--success.svelte-1clpuus{background:var(--color-success)}.ct-indicator--danger.svelte-1clpuus{background:var(--color-danger)}.ct-indicator--warning.svelte-1clpuus{background:var(--color-warning)}.ct-indicator--idle.svelte-1clpuus{background:var(--color-border)}.ct-chevron-open.svelte-1clpuus{transform:rotate(180deg)}.ct-not-created.svelte-1clpuus{color:var(--color-text-tertiary);font-style:italic}.container-table-row.svelte-1clpuus{padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-bg-tertiary);font-size:var(--text-sm);width:100%;font-family:var(--font-sans);text-align:left;background:0 0;border-top:none;border-left:none;border-right:none;align-items:center;display:flex}.container-table-row.svelte-1clpuus:last-child{border-bottom:none}.container-table-row--clickable.svelte-1clpuus{cursor:pointer;transition:background var(--transition-fast)}.container-table-row--clickable.svelte-1clpuus:hover{background:var(--color-surface-hover)}.container-table-row--clickable.svelte-1clpuus:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}@media (width<=768px){.container-table-row.svelte-1clpuus{gap:var(--space-1);padding:var(--space-3) var(--space-4);flex-wrap:wrap}}.container-detail.svelte-17lh9yz{padding:var(--space-4) var(--space-5) var(--space-4) calc(var(--space-5) + 28px);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)}.detail-grid.svelte-17lh9yz{gap:var(--space-3) var(--space-6);grid-template-columns:1fr 1fr;display:grid}.detail-item.svelte-17lh9yz{flex-direction:column;gap:2px;display:flex}.detail-label.svelte-17lh9yz{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em}.detail-value.svelte-17lh9yz{font-size:var(--text-sm);color:var(--color-text);align-items:center;gap:var(--space-2);display:flex}.detail-mono.svelte-17lh9yz{font-family:var(--font-mono);font-size:var(--text-xs);word-break:break-all}.detail-digest.svelte-17lh9yz{font-size:var(--text-xs);color:var(--color-text-tertiary)}.detail-actions.svelte-17lh9yz{gap:var(--space-2);margin-top:var(--space-4);display:flex}.detail-not-created.svelte-17lh9yz{padding:var(--space-2) 0}.detail-not-created.svelte-17lh9yz p:where(.svelte-17lh9yz){font-size:var(--text-sm);color:var(--color-text-secondary)}.action-feedback.svelte-17lh9yz{margin-top:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-medium)}.action-feedback--success.svelte-17lh9yz{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}.action-feedback--error.svelte-17lh9yz{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger)}.confirm-bar.svelte-17lh9yz{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-warning-bg);border:1px solid var(--color-warning);border-radius:var(--radius-md);display:flex}.confirm-text.svelte-17lh9yz{font-size:var(--text-sm);color:var(--color-text)}.confirm-actions.svelte-17lh9yz{gap:var(--space-2);flex-shrink:0;display:flex}@media (width<=768px){.detail-grid.svelte-17lh9yz{grid-template-columns:1fr}.container-detail.svelte-17lh9yz{padding-left:var(--space-4)}.confirm-bar.svelte-17lh9yz{flex-direction:column;align-items:stretch}.confirm-actions.svelte-17lh9yz{justify-content:flex-end}}.text-danger.svelte-llpoy7{color:var(--color-danger)}.empty-state.svelte-llpoy7 .btn:where(.svelte-llpoy7){margin-top:var(--space-2)}.empty-state.svelte-llpoy7 .hint:where(.svelte-llpoy7){font-size:var(--text-xs);color:var(--color-text-tertiary);max-width:32ch}.container-table.svelte-fnc5b8{flex-direction:column;width:100%;display:flex}.container-table-header.svelte-fnc5b8{padding:var(--space-2) var(--space-5);background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-secondary);text-transform:none;align-items:center;display:flex}.last-updated.svelte-fnc5b8{font-size:var(--text-xs);color:var(--color-text-tertiary);white-space:nowrap}@media (width<=768px){.container-table-header.svelte-fnc5b8{display:none}}.automation-list.svelte-1xltcby{gap:var(--space-3);flex-direction:column;display:flex}.automation-card.svelte-1xltcby{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.automation-row.svelte-1xltcby{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:var(--space-4);display:flex}.automation-main.svelte-1xltcby{flex:1;min-width:0}.automation-name.svelte-1xltcby{align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);flex-wrap:wrap;display:flex}.automation-desc.svelte-1xltcby{font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:var(--space-1)}.automation-meta.svelte-1xltcby{align-items:flex-end;gap:var(--space-1);flex-direction:column;flex-shrink:0;display:flex}.meta-item.svelte-1xltcby{font-size:var(--text-xs);color:var(--color-text-secondary)}.meta-item.svelte-1xltcby code:where(.svelte-1xltcby){font-family:var(--font-mono);font-size:var(--text-xs);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:1px 6px}.schedule-friendly.svelte-1xltcby{font-weight:var(--font-medium);color:var(--color-text)}.meta-tz.svelte-1xltcby{color:var(--color-text-tertiary)}.badge-type.svelte-1xltcby{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.automation-footer.svelte-1xltcby{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-top:1px solid var(--color-border);background:var(--color-bg-tertiary);display:flex}.automation-actions.svelte-1xltcby{gap:var(--space-1);display:flex}.task-editor.svelte-1xltcby{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);padding:var(--space-4);margin-bottom:var(--space-4);gap:var(--space-2);flex-direction:column;display:flex}.task-editor-head.svelte-1xltcby{flex-direction:column;gap:2px;display:flex}.task-editor-name.svelte-1xltcby{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--font-semibold)}.task-editor-hint.svelte-1xltcby{font-size:var(--text-xs);color:var(--color-text-secondary)}.task-editor-area.svelte-1xltcby{width:100%;font-family:var(--font-mono);font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);padding:var(--space-3);resize:vertical;line-height:1.5}.task-editor-actions.svelte-1xltcby{justify-content:flex-end;gap:var(--space-2);display:flex}.automation-file.svelte-1xltcby{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--color-text-tertiary)}.empty-state-hint.svelte-1xltcby{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:calc(-1 * var(--space-2))}.empty-state-btn.svelte-1xltcby{margin-top:var(--space-2)}.empty-state-hint.svelte-1xltcby code:where(.svelte-1xltcby){font-family:var(--font-mono);font-size:var(--text-xs);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:1px 6px}.text-danger.svelte-1xltcby{color:var(--color-danger)}@media (width<=768px){.automation-row.svelte-1xltcby{flex-direction:column}.automation-meta.svelte-1xltcby{align-items:flex-start;gap:var(--space-3);flex-direction:row}}.add-search.svelte-1ykz2x6{width:100%;margin-bottom:var(--space-3)}.pick-list.svelte-1ykz2x6{margin:0 calc(var(--space-5) * -1) calc(var(--space-5) * -1)}.provider-pick.svelte-1ykz2x6{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-5);border:none;border-bottom:1px solid var(--color-bg-tertiary);cursor:pointer;text-align:left;background:0 0;font-family:inherit;display:flex}.provider-pick.svelte-1ykz2x6:hover{background:var(--color-surface-hover)}.provider-pick--custom.svelte-1ykz2x6{border-top:1px solid var(--color-border);color:var(--color-primary)}.provider-name.svelte-1ykz2x6{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);flex:1}.provider-pick--custom.svelte-1ykz2x6 .provider-name:where(.svelte-1ykz2x6){color:var(--color-primary)}.provider-meta.svelte-1ykz2x6{font-size:var(--text-xs);color:var(--color-text-tertiary)}.empty.svelte-1ykz2x6{padding:var(--space-6) var(--space-5);text-align:center;color:var(--color-text-tertiary);font-size:var(--text-sm)}.connect-back.svelte-1bnolke{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-text-secondary);font-size:var(--text-lg);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.connect-back.svelte-1bnolke:hover{background:var(--color-surface-hover);color:var(--color-text)}.connect-back.svelte-1bnolke:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.auth-method-group.svelte-1bnolke{gap:var(--space-2);flex-direction:column;display:flex}.auth-method-card.svelte-1bnolke{gap:var(--space-1);padding:var(--space-3) var(--space-4);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:border-color var(--transition-fast), background var(--transition-fast);flex-direction:column;font-family:inherit;display:flex}.auth-method-card.svelte-1bnolke:hover{border-color:var(--color-border-hover);background:var(--color-surface-hover)}.method-label.svelte-1bnolke{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.method-type.svelte-1bnolke{font-size:var(--text-xs);color:var(--color-text-tertiary)}.form-stack.svelte-1btkq49{gap:var(--space-4);flex-direction:column;display:flex}.optional.svelte-1btkq49{font-weight:var(--font-medium);color:var(--color-text-tertiary);font-size:var(--text-xs)}.result-list.svelte-15y8pah{padding-left:var(--space-5);gap:var(--space-1);margin:0 0 var(--space-3);flex-direction:column;list-style:outside;display:flex}.result-list.svelte-15y8pah li:where(.svelte-15y8pah){font-size:var(--text-sm);color:var(--color-text)}.result-list.svelte-15y8pah code:where(.svelte-15y8pah){font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:1px 6px}.muted.svelte-15y8pah{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-left:var(--space-2)}.feedback.inline.svelte-19zt4ct{margin:var(--space-3) var(--space-5);justify-content:space-between}.provider-row.svelte-19zt4ct{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-bg-tertiary);display:flex}.model-defaults.svelte-19zt4ct{gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);grid-template-columns:1fr 1fr;display:grid}.model-field.svelte-19zt4ct{gap:var(--space-1);flex-direction:column;display:flex}.model-error.svelte-19zt4ct{font-size:var(--text-xs);color:var(--color-danger);grid-column:1/-1;margin:0}.provider-id.svelte-19zt4ct{align-items:center;gap:var(--space-2);flex:1;min-width:0;display:flex}.provider-name.svelte-19zt4ct{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.empty-hint.svelte-19zt4ct{color:var(--color-text-tertiary)}.controls.svelte-coqj2u{align-items:flex-end;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);flex-wrap:wrap;display:flex}.control-group.svelte-coqj2u{gap:var(--space-1);flex-direction:column;display:flex}.control-group--toggle.svelte-coqj2u{justify-content:flex-end}.control-label.svelte-coqj2u{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary);text-transform:none}.control-input.svelte-coqj2u{height:32px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:var(--text-sm);min-width:140px;font-family:inherit}.control-input.svelte-coqj2u:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle);outline:none}.toggle-label.svelte-coqj2u{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;height:32px;display:flex}.toggle-label.svelte-coqj2u input:where(.svelte-coqj2u){accent-color:var(--color-primary)}.log-output.svelte-coqj2u{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text);background:var(--color-bg);padding:var(--space-4) var(--space-5);white-space:pre-wrap;word-break:break-all;tab-size:4;max-height:600px;margin:0;line-height:1.6;overflow-y:auto}.error-banner.svelte-coqj2u{padding:var(--space-3) var(--space-5);background:var(--color-danger-bg);border-bottom:1px solid var(--color-danger-border,#ff6b6b40);color:var(--color-danger);font-size:var(--text-sm)}@media (width<=768px){.controls.svelte-coqj2u{flex-direction:column;align-items:stretch}.control-input.svelte-coqj2u{min-width:unset;width:100%}.log-output.svelte-coqj2u{max-height:400px;font-size:var(--text-xs)}}.panel-header.svelte-epscb2{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.section-note.svelte-epscb2{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0 0 var(--space-4)}.error-banner.svelte-epscb2{background:var(--color-danger-subtle,#ef44441a);color:var(--color-danger,#ef4444);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);margin-bottom:var(--space-4)}.empty-note.svelte-epscb2{font-size:var(--text-sm);color:var(--color-text-secondary)}.mono.svelte-epscb2{font-family:var(--font-mono);font-size:var(--text-sm)}.secrets-layout.svelte-epscb2{gap:var(--space-4);grid-template-columns:minmax(16rem,22rem) 1fr;align-items:start;display:grid}@media (width<=720px){.secrets-layout.svelte-epscb2{grid-template-columns:1fr}}.secrets-list.svelte-epscb2{gap:var(--space-1);flex-direction:column;display:flex}.secret-row.svelte-epscb2{align-items:center;gap:var(--space-1);display:flex}.secret-row.active.svelte-epscb2 .secret-name:where(.svelte-epscb2){border-color:var(--color-primary,#6366f1)}.secret-name.svelte-epscb2{justify-content:space-between;align-items:center;gap:var(--space-2);text-align:left;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);color:var(--color-text);cursor:pointer;flex:1;display:flex}.secret-name.svelte-epscb2:hover{background:var(--color-bg-tertiary,var(--color-bg-secondary))}.secret-size.svelte-epscb2{font-size:var(--text-xs);color:var(--color-text-secondary);flex-shrink:0}.new-secret.svelte-epscb2{gap:var(--space-1);margin-top:var(--space-3);flex-direction:column;display:flex}.new-secret-label.svelte-epscb2{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.new-secret-row.svelte-epscb2{gap:var(--space-2);flex-wrap:wrap;display:flex}.secrets-editor.svelte-epscb2{min-width:0}.editor-head.svelte-epscb2{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.reveal-toggle.svelte-epscb2{align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-secondary);display:flex}.editor-area.svelte-epscb2{width:100%;font-family:var(--font-mono);font-size:var(--text-sm);resize:vertical}.editor-area.masked.svelte-epscb2{-webkit-text-security:disc}.editor-actions.svelte-epscb2{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2);display:flex}.editor-empty.svelte-epscb2{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);color:var(--color-text-secondary);text-align:center;border:1px dashed var(--color-border);border-radius:var(--radius-md);flex-direction:column;min-height:12rem;display:flex}.editor-empty.svelte-epscb2 svg:where(.svelte-epscb2){opacity:.4}.editor-empty.svelte-epscb2 p:where(.svelte-epscb2){font-size:var(--text-sm);max-width:24rem;margin:0}.input-with-toggle.svelte-176sy43{align-items:stretch;gap:var(--space-2);display:flex}.control-input.svelte-176sy43{font-size:var(--text-sm);color:var(--color-text);background:var(--color-input-bg,var(--color-bg));border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);flex:auto;min-width:0}.control-input.svelte-176sy43:focus{outline:2px solid var(--color-primary);outline-offset:1px}.btn-icon.svelte-176sy43{padding:0 var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-height:38px;color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);flex-shrink:0}.btn-icon.svelte-176sy43:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.btn-icon.svelte-176sy43:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn-icon.svelte-176sy43:disabled{opacity:.6;cursor:not-allowed}.config-section.svelte-y5k1u8{gap:var(--space-3);flex-direction:column;display:flex}.section-header.svelte-y5k1u8{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.section-actions.svelte-y5k1u8{gap:var(--space-2);flex-wrap:wrap;display:flex}.section-title.svelte-y5k1u8{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);margin:0}.section-note.svelte-y5k1u8{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:72ch;margin:0}.controls--grid.svelte-y5k1u8{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.control-group.svelte-y5k1u8{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.control-group--wide.svelte-y5k1u8{grid-column:1/-1}.control-label.svelte-y5k1u8{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.control-input.svelte-y5k1u8{font-size:var(--text-sm);color:var(--color-text);background:var(--color-input-bg,var(--color-bg));border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);width:100%}.control-input--narrow.svelte-y5k1u8{max-width:8rem}.control-input.svelte-y5k1u8:focus{outline:2px solid var(--color-primary);outline-offset:1px}.config-section.svelte-gfn07p{gap:var(--space-3);flex-direction:column;display:flex}.section-title.svelte-gfn07p{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);margin:0}.section-note.svelte-gfn07p{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:72ch;margin:0}.controls--grid.svelte-gfn07p{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.control-group.svelte-gfn07p{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.control-group--wide.svelte-gfn07p{grid-column:1/-1}.control-label.svelte-gfn07p{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.control-input.svelte-gfn07p{font-size:var(--text-sm);color:var(--color-text);background:var(--color-input-bg,var(--color-bg));border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);width:100%}.control-input--narrow.svelte-gfn07p{max-width:8rem}.control-input.svelte-gfn07p:focus{outline:2px solid var(--color-primary);outline-offset:1px}.adv-details.svelte-gfn07p{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-top:var(--space-4)}.adv-summary.svelte-gfn07p{cursor:pointer;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.adv-summary.svelte-gfn07p:hover{background:var(--color-surface-hover)}.adv-details[open].svelte-gfn07p .adv-summary:where(.svelte-gfn07p){border-bottom:1px solid var(--color-border)}.adv-body.svelte-gfn07p{padding:var(--space-4)}.profile-row.svelte-zzh9mp{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);display:flex}.profile-row-name.svelte-zzh9mp{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.profile-row-actions.svelte-zzh9mp{gap:var(--space-2);flex-shrink:0;display:flex}.badge.svelte-zzh9mp{font-size:var(--text-xs);padding:2px var(--space-2);border-radius:var(--radius-sm);background:var(--color-bg-tertiary,var(--color-bg-secondary));color:var(--color-text-secondary);border:1px solid var(--color-border);white-space:nowrap;flex-shrink:0}.badge--default.svelte-zzh9mp{background:var(--color-primary-subtle,#6366f11a);color:var(--color-primary,#6366f1);border-color:var(--color-primary-border,#6366f14d)}.config-section.svelte-zwwvog{gap:var(--space-4);flex-direction:column;display:flex}.section-title.svelte-zwwvog{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);margin:0}.section-title-aka.svelte-zwwvog{font-size:var(--text-xs);font-weight:var(--font-normal);color:var(--color-text-secondary);font-family:var(--font-mono);margin-left:var(--space-2)}.section-note.svelte-zwwvog{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.empty-note.svelte-zwwvog{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;font-style:italic}.profile-empty.svelte-zwwvog{align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-2);color:var(--color-text-secondary);flex-direction:column;display:flex}.profile-empty.svelte-zwwvog svg:where(.svelte-zwwvog){opacity:.45}.profile-list.svelte-zwwvog{gap:var(--space-1);flex-direction:column;display:flex}.config-section.svelte-anyxpa{gap:var(--space-4);flex-direction:column;display:flex}.section-title.svelte-anyxpa{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);margin:0}.section-title-aka.svelte-anyxpa{font-size:var(--text-xs);font-weight:var(--font-normal);color:var(--color-text-secondary);font-family:var(--font-mono);margin-left:var(--space-2)}.section-note.svelte-anyxpa{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.empty-note.svelte-anyxpa{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;font-style:italic}.profile-empty.svelte-anyxpa{align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-2);color:var(--color-text-secondary);flex-direction:column;display:flex}.profile-empty.svelte-anyxpa svg:where(.svelte-anyxpa){opacity:.45}.profile-list.svelte-anyxpa{gap:var(--space-1);flex-direction:column;display:flex}.badge.svelte-anyxpa{font-size:var(--text-xs);padding:2px var(--space-2);border-radius:var(--radius-sm);background:var(--color-bg-tertiary,var(--color-bg-secondary));color:var(--color-text-secondary);border:1px solid var(--color-border);white-space:nowrap;flex-shrink:0}.config-section.svelte-1ngozvb{gap:var(--space-4);flex-direction:column;display:flex}.section-title.svelte-1ngozvb{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);margin:0}.section-title-aka.svelte-1ngozvb{font-size:var(--text-xs);font-weight:var(--font-normal);color:var(--color-text-secondary);font-family:var(--font-mono);margin-left:var(--space-2)}.section-note.svelte-1ngozvb{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.empty-note.svelte-1ngozvb{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;font-style:italic}.profile-empty.svelte-1ngozvb{align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-2);color:var(--color-text-secondary);flex-direction:column;display:flex}.profile-empty.svelte-1ngozvb svg:where(.svelte-1ngozvb){opacity:.45}.profile-list.svelte-1ngozvb{gap:var(--space-1);flex-direction:column;display:flex}.profile-row-desc.svelte-1ngozvb{font-size:var(--text-xs);color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:20rem;overflow:hidden}.controls.svelte-1gmn25z{gap:var(--space-4);flex-direction:column;display:flex}.controls--grid.svelte-1gmn25z{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));display:grid}.control-group.svelte-1gmn25z{gap:var(--space-1);flex-direction:column;display:flex}.control-group--wide.svelte-1gmn25z{grid-column:1/-1}.control-label.svelte-1gmn25z{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.control-input.svelte-1gmn25z{font-size:var(--text-sm);color:var(--color-text);background:var(--color-input-bg,var(--color-bg));border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);width:100%}.control-input--narrow.svelte-1gmn25z{max-width:8rem}.control-input.svelte-1gmn25z:focus{outline:2px solid var(--color-primary);outline-offset:1px}.control-input.svelte-1gmn25z:disabled{opacity:.5;cursor:not-allowed}.toggle-row.svelte-1gmn25z{align-items:center;gap:var(--space-3);cursor:pointer;font-size:var(--text-sm);display:flex}.toggle-row.svelte-1gmn25z input[type=checkbox]:where(.svelte-1gmn25z){flex-shrink:0;width:1rem;height:1rem}.toggle-label.svelte-1gmn25z{font-weight:var(--font-medium);color:var(--color-text)}.toggle-hint.svelte-1gmn25z{color:var(--color-text-secondary);font-size:var(--text-xs)}.feat-hint.svelte-1gmn25z{font-size:var(--text-xs);color:var(--color-text-secondary)}.drawer-scrim.svelte-1gmn25z{z-index:200;background:#00000059;position:fixed;inset:0}.drawer.svelte-1gmn25z{background:var(--color-bg);border-left:1px solid var(--color-border);z-index:201;flex-direction:column;width:min(640px,92vw);animation:.2s cubic-bezier(.16,1,.3,1) svelte-1gmn25z-drawer-in;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 32px #0003}@keyframes svelte-1gmn25z-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header.svelte-1gmn25z{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.drawer-title.svelte-1gmn25z{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.drawer-close.svelte-1gmn25z{border-radius:var(--radius-sm);border:1px solid var(--color-border);width:2rem;height:2rem;color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-sm);background:0 0;justify-content:center;align-items:center;display:flex}.drawer-close.svelte-1gmn25z:hover{background:var(--color-surface-hover);color:var(--color-text)}.drawer-body.svelte-1gmn25z{padding:var(--space-6);gap:var(--space-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.drawer-footer.svelte-1gmn25z{justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);flex-shrink:0;display:flex}.controls.svelte-1evj0pt{gap:var(--space-4);flex-direction:column;display:flex}.controls--grid.svelte-1evj0pt{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));display:grid}.control-group.svelte-1evj0pt{gap:var(--space-1);flex-direction:column;display:flex}.control-group--wide.svelte-1evj0pt{grid-column:1/-1}.control-label.svelte-1evj0pt{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.control-input.svelte-1evj0pt{font-size:var(--text-sm);color:var(--color-text);background:var(--color-input-bg,var(--color-bg));border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);width:100%}.control-input.svelte-1evj0pt:focus{outline:2px solid var(--color-primary);outline-offset:1px}.control-input.svelte-1evj0pt:disabled{opacity:.5;cursor:not-allowed}.drawer-scrim.svelte-1evj0pt{z-index:200;background:#00000059;position:fixed;inset:0}.drawer.svelte-1evj0pt{background:var(--color-bg);border-left:1px solid var(--color-border);z-index:201;flex-direction:column;width:min(640px,92vw);animation:.2s cubic-bezier(.16,1,.3,1) svelte-1evj0pt-drawer-in;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 32px #0003}@keyframes svelte-1evj0pt-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header.svelte-1evj0pt{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.drawer-title.svelte-1evj0pt{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.drawer-close.svelte-1evj0pt{border-radius:var(--radius-sm);border:1px solid var(--color-border);width:2rem;height:2rem;color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-sm);background:0 0;justify-content:center;align-items:center;display:flex}.drawer-close.svelte-1evj0pt:hover{background:var(--color-surface-hover);color:var(--color-text)}.drawer-body.svelte-1evj0pt{padding:var(--space-6);gap:var(--space-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.drawer-footer.svelte-1evj0pt{justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);flex-shrink:0;display:flex}.controls.svelte-1ndbe78{gap:var(--space-4);flex-direction:column;display:flex}.controls--grid.svelte-1ndbe78{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));display:grid}.control-group.svelte-1ndbe78{gap:var(--space-1);flex-direction:column;display:flex}.control-group--wide.svelte-1ndbe78{grid-column:1/-1}.control-label.svelte-1ndbe78{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.control-input.svelte-1ndbe78{font-size:var(--text-sm);color:var(--color-text);background:var(--color-input-bg,var(--color-bg));border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);width:100%}.control-input--narrow.svelte-1ndbe78{max-width:8rem}.control-input.svelte-1ndbe78:focus{outline:2px solid var(--color-primary);outline-offset:1px}.control-input.svelte-1ndbe78:disabled{opacity:.5;cursor:not-allowed}.feat-name.svelte-1ndbe78{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);font-family:var(--font-mono);display:block}.feat-hint.svelte-1ndbe78{font-size:var(--text-xs);color:var(--color-text-secondary)}.proc-list.svelte-1ndbe78{gap:var(--space-2);flex-direction:column;display:flex}.proc-card.svelte-1ndbe78{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);padding:var(--space-2)}.proc-head.svelte-1ndbe78{align-items:center;gap:var(--space-2);grid-template-columns:1.5rem 1fr 9rem 11rem 7rem;display:grid}@media (width<=600px){.proc-head.svelte-1ndbe78{grid-template-columns:1.5rem 1fr}.proc-head.svelte-1ndbe78>:where(.svelte-1ndbe78):nth-child(n+3){grid-column:1/-1}}.proc-head.svelte-1ndbe78 input[type=checkbox]:where(.svelte-1ndbe78){width:1rem;height:1rem}.proc-name.svelte-1ndbe78{min-width:0}.proc-adv.svelte-1ndbe78{margin-top:var(--space-2)}.proc-adv.svelte-1ndbe78>summary:where(.svelte-1ndbe78){cursor:pointer;font-size:var(--text-xs);color:var(--color-text-secondary);-webkit-user-select:none;user-select:none}.proc-adv-grid.svelte-1ndbe78{gap:var(--space-2);margin-top:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));display:grid}.adv-field.svelte-1ndbe78{flex-direction:column;gap:2px;display:flex}.adv-field.svelte-1ndbe78>span:where(.svelte-1ndbe78){font-size:var(--text-xs);color:var(--color-text-secondary)}.adv-field--check.svelte-1ndbe78{align-items:center;gap:var(--space-2);flex-direction:row}.adv-field--wide.svelte-1ndbe78{grid-column:1/-1}.adv-sublabel.svelte-1ndbe78{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary);margin-bottom:2px;display:block}.drawer-scrim.svelte-1ndbe78{z-index:200;background:#00000059;position:fixed;inset:0}.drawer.svelte-1ndbe78{background:var(--color-bg);border-left:1px solid var(--color-border);z-index:201;flex-direction:column;width:min(640px,92vw);animation:.2s cubic-bezier(.16,1,.3,1) svelte-1ndbe78-drawer-in;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 32px #0003}@keyframes svelte-1ndbe78-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header.svelte-1ndbe78{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.drawer-title.svelte-1ndbe78{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.drawer-close.svelte-1ndbe78{border-radius:var(--radius-sm);border:1px solid var(--color-border);width:2rem;height:2rem;color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-sm);background:0 0;justify-content:center;align-items:center;display:flex}.drawer-close.svelte-1ndbe78:hover{background:var(--color-surface-hover);color:var(--color-text)}.drawer-body.svelte-1ndbe78{padding:var(--space-6);gap:var(--space-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.drawer-footer.svelte-1ndbe78{justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);flex-shrink:0;display:flex}.k-tabs.svelte-19wb2va{scrollbar-width:none;gap:var(--space-1);padding:var(--space-1);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-2);flex-wrap:nowrap;display:flex;overflow-x:auto}.k-tabs.svelte-19wb2va::-webkit-scrollbar{display:none}.k-tab.svelte-19wb2va{min-height:2.75rem;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:var(--font-normal,400);color:var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;flex:1 0 auto;transition:background .15s,color .15s}.k-tab.svelte-19wb2va:hover{background:var(--color-surface-hover,#0000000d);color:var(--color-text)}.k-tab.svelte-19wb2va:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.k-tab--active.svelte-19wb2va{background:var(--color-bg);border-color:var(--color-border);color:var(--color-text);font-weight:var(--font-semibold);box-shadow:0 1px 3px #00000014}@media (width<=400px){.k-tab.svelte-19wb2va{font-size:var(--text-xs);padding:var(--space-2)}}.panel-header.svelte-19wb2va{margin-bottom:var(--space-6);z-index:10;background:var(--color-bg);padding-top:var(--space-2);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.panel-header.svelte-19wb2va h2:where(.svelte-19wb2va){font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.panel-header-actions.svelte-19wb2va{gap:var(--space-2);display:flex}.panel-body.svelte-19wb2va{gap:var(--space-8);flex-direction:column;display:flex}.section-note--lead.svelte-19wb2va{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:72ch;margin:0 0 var(--space-4)}.section-note.svelte-19wb2va{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.error-banner.svelte-19wb2va{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-error-bg,#dc262614);border:1px solid var(--color-error-border,#dc262640);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-error,#dc2626);margin-bottom:var(--space-4);display:flex}.panel-header.svelte-fv9i73{margin-bottom:var(--space-5)}.panel-header.svelte-fv9i73 h2:where(.svelte-fv9i73){font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text)}.config-section.svelte-fv9i73{gap:var(--space-3);flex-direction:column;display:flex}.section-note.svelte-fv9i73{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:68ch;margin:0}.hs-restart.svelte-fv9i73{font-size:var(--text-sm);color:var(--color-badge-warning-fg);font-weight:var(--font-medium);margin:0}.hs-loading.svelte-fv9i73{align-items:center;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--text-sm);display:flex}.controls--grid.svelte-fv9i73{gap:var(--space-4);grid-template-columns:1fr;display:grid}.control-group.svelte-fv9i73{gap:var(--space-2);flex-direction:column;display:flex}.control-label.svelte-fv9i73{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.control-label--checkbox.svelte-fv9i73{align-items:center;gap:var(--space-2);font-weight:var(--font-normal);flex-direction:row}.host-akm-status.svelte-fv9i73{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.host-akm-path.svelte-fv9i73{font-size:var(--text-xs);color:var(--color-text-secondary)}.host-akm-actions.svelte-fv9i73{gap:var(--space-2);flex-flow:wrap}.engine-section.svelte-1b9l1t7{gap:var(--space-3);flex-direction:column;display:flex}.engine-heading.svelte-1b9l1t7{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.engine-subheading.svelte-1b9l1t7{font-size:var(--text-xs);color:var(--color-text-secondary);margin:0}.tts-extras.svelte-1b9l1t7{gap:var(--space-3);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border);flex-direction:column;display:flex}.test-voice-row.svelte-1b9l1t7{align-items:center;gap:var(--space-3);display:flex}.test-result.svelte-1b9l1t7{font-size:var(--text-xs)}.test-result--ok.svelte-1b9l1t7{color:var(--color-success,#16a34a)}.test-result--err.svelte-1b9l1t7{color:var(--color-error,#dc2626)}.auto-speak-toggle.svelte-1b9l1t7{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text);cursor:pointer;display:flex}.auto-speak-toggle.svelte-1b9l1t7 input[type=checkbox]:where(.svelte-1b9l1t7){cursor:pointer;width:16px;height:16px}.engine-section.svelte-1qwlk8j{gap:var(--space-3);flex-direction:column;display:flex}.engine-heading.svelte-1qwlk8j{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.engine-subheading.svelte-1qwlk8j{font-size:var(--text-xs);color:var(--color-text-secondary);margin:0}.engine-section.svelte-1r7l91t{gap:var(--space-3);flex-direction:column;display:flex}.engine-heading.svelte-1r7l91t{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.panel-header.svelte-nokcxu{z-index:10;background:var(--color-surface);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-bottom:0;display:flex;position:sticky;top:0}.panel-header.svelte-nokcxu h2:where(.svelte-nokcxu){font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.panel-header-actions.svelte-nokcxu{gap:var(--space-2);display:flex}.panel-body.svelte-nokcxu{gap:var(--space-6);flex-direction:column;display:flex}.section-desc.svelte-nokcxu{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.error-banner.svelte-nokcxu{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-error-bg,#dc262614);border:1px solid var(--color-error-border,#dc262640);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-error,#dc2626);margin-bottom:var(--space-4);display:flex}main.svelte-1jef3w8{padding:var(--space-6) var(--space-6) var(--space-12)}@media (width<=768px){main.svelte-1jef3w8{padding:var(--space-4) var(--space-4) var(--space-8)}}
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,L as t,Q as n,Z as r}from"./0swOyi-5.js";var i=[`audio/webm;codecs=opus`,`audio/webm`];function a(){let e=globalThis.MediaRecorder;if(!(!e||typeof e.isTypeSupported!=`function`)){for(let t of i)if(e.isTypeSupported(t))return t}}async function o(){if(typeof window>`u`)throw Error(`Recording is only available in the browser.`);if(typeof MediaRecorder>`u`||!navigator?.mediaDevices?.getUserMedia)throw Error(`Recording is not supported in this browser.`);let e;try{e=await navigator.mediaDevices.getUserMedia({audio:!0})}catch(e){let t=e?.name??``;throw Error(t===`NotAllowedError`||t===`SecurityError`?`Microphone access denied. Open System Settings → Privacy & Security → Microphone and enable OpenPalm, then restart the app.`:t===`NotFoundError`||t===`OverconstrainedError`?`No microphone was found. Plug in a microphone and try again.`:`Microphone error: ${e?.message??String(e)}`)}let t=a(),n=t?new MediaRecorder(e,{mimeType:t}):new MediaRecorder(e),r=[];n.addEventListener(`dataavailable`,e=>{let t=e.data;t&&t.size>0&&r.push(t)});let i=!1,o=!1,s=null,c=null;function l(){for(let t of e.getTracks())try{t.stop()}catch{}}return n.addEventListener(`stop`,()=>{if(l(),o)return;let e=new Blob(r,{type:n.mimeType||t||`audio/webm`});s?.(e)}),n.addEventListener(`error`,e=>{l();let t=e?.error??Error(`Recorder error`);c?.(t)}),n.start(),{stop(){return i?Promise.reject(Error(`Recorder already stopped`)):(i=!0,new Promise((e,t)=>{s=e,c=t;try{n.state!==`inactive`&&n.stop()}catch(e){l(),t(e)}}))},cancel(){if(!i){i=!0,o=!0;try{n.state!==`inactive`&&n.stop()}catch{}l()}}}}var s=``;function c(){return{"x-request-id":crypto.randomUUID(),"x-requested-by":`ui`}}async function l(e,t,n){let r={...n===void 0?{}:{"content-type":`application/json`},...c()};return fetch(`${s}${t}`,{method:e,headers:r,credentials:`include`,...n===void 0?{}:{body:JSON.stringify(n)}})}async function u(e,t=`Request failed (HTTP ${e.status})`){if((e.headers.get(`content-type`)??``).includes(`application/json`)){let t=await e.clone().json().catch(e=>(console.warn(`[api] Failed to parse JSON error response:`,e),null));if(t&&typeof t.message==`string`&&t.message.length>0)return t.message;if(t&&typeof t.error==`string`&&t.error.length>0)return t.error}return await e.text().catch(e=>(console.warn(`[api] Failed to read error response text:`,e),``))||t}async function d(e,t){if(e.status===401)throw Object.assign(Error(`Sign-in required.`),{status:401});if(!e.ok)throw Error(await u(e,t));return e}async function ee(){let[e,t]=await Promise.all([l(`GET`,`/health`),l(`GET`,`/guardian/health`).catch(e=>(console.warn(`[api] Guardian health check failed:`,e),null))]),n=await e.json(),r=null;if(t)try{r=await t.json()}catch(e){console.warn(`[api] Failed to parse guardian health response:`,e),r={status:`unavailable`,service:`guardian`}}return{admin:n,guardian:r}}async function te(){return await(await d(await l(`GET`,`/admin/containers/list`))).json()}async function ne(e,t){await d(await l(`POST`,{start:`/admin/containers/up`,stop:`/admin/containers/down`,restart:`/admin/containers/restart`}[e],{service:t}))}async function re(){let e=await l(`POST`,`/admin/update`,{});if(e.status===401)throw Object.assign(Error(`Sign-in required.`),{status:401});if(!(e.headers.get(`content-type`)??``).includes(`application/json`))throw Error(await u(e,`Apply failed (HTTP ${e.status})`));return await e.json()}async function ie(){return await(await d(await l(`POST`,`/admin/upgrade`,{}))).json()}async function ae(){return await(await d(await l(`GET`,`/admin/versions`))).json()}async function oe(){try{let e=await l(`GET`,`/admin/versions/releases`);return e.ok?await e.json():{releases:[]}}catch{return{releases:[]}}}async function se(){try{let e=await l(`GET`,`/admin/versions/ui`);return e.ok?await e.json():{versions:[]}}catch{return{versions:[]}}}async function ce(e){return await(await d(await l(`PATCH`,`/admin/stack-version`,{tag:e}))).json()}async function le(e){return await(await d(await l(`POST`,`/admin/ui-version`,{tag:e}))).json()}async function ue(){return await(await d(await l(`GET`,`/admin/automations`))).json()}async function de(e){let t=new URLSearchParams;e?.service&&t.set(`service`,e.service),e?.tail&&t.set(`tail`,String(e.tail)),e?.since&&t.set(`since`,e.since);let n=t.toString();return await(await d(await l(`GET`,`/admin/logs${n?`?${n}`:``}`))).json()}async function fe(){return(await(await d(await l(`GET`,`/admin/addons`))).json()).addons}async function pe(e,t,n){let r={enabled:t};return n&&(r.env=n),await(await d(await l(`POST`,`/admin/addons/${encodeURIComponent(e)}`,r))).json()}async function me(e){return(await(await d(await l(`GET`,`/admin/addons/${encodeURIComponent(e)}/credentials`))).json()).fields}async function he(e,t){return await(await d(await l(`POST`,`/admin/addons/${encodeURIComponent(e)}/credentials`,{values:t}))).json()}async function ge(){return await(await d(await l(`GET`,`/admin/secrets`))).json()}async function _e(e){return await(await d(await l(`GET`,`/admin/secrets/${encodeURIComponent(e)}`))).json()}async function ve(e,t){return await(await d(await l(`PUT`,`/admin/secrets/${encodeURIComponent(e)}`,{value:t}))).json()}async function ye(e){return await(await d(await l(`DELETE`,`/admin/secrets/${encodeURIComponent(e)}`))).json()}async function be(e){return await(await d(await l(`GET`,`/admin/automations/${encodeURIComponent(e)}/file`))).json()}async function xe(e,t){return await(await d(await l(`PUT`,`/admin/automations/${encodeURIComponent(e)}/file`,{content:t}))).json()}async function Se(e){return await(await d(await l(`DELETE`,`/admin/automations/${encodeURIComponent(e)}/file`))).json()}async function f(){return await(await d(await l(`GET`,`/admin/voice`))).json()}async function p(e){let t=await l(`PUT`,`/admin/voice`,e);if(t.status===401)throw Object.assign(Error(`Invalid password.`),{status:401});if(t.status===200||t.status===202||t.status===502)return{...await t.json(),status:t.status};throw Error(await u(t))}async function m(e,t){let n=new FormData;n.append(`audio`,e,`recording.webm`),t?.language&&n.append(`language`,t.language),t?.prompt&&n.append(`prompt`,t.prompt);let r=await(await d(await fetch(`/api/transcribe`,{method:`POST`,headers:c(),credentials:`include`,body:n}))).json();return typeof r.text==`string`?r.text:``}async function h(){return await(await d(await l(`GET`,`/admin/akm`))).json()}async function g(e){return await(await d(await l(`PATCH`,`/admin/akm`,e))).json()}async function _(){return await(await d(await l(`POST`,`/admin/akm/embedding/detect`,{}))).json()}async function v(e){return await(await d(await l(`POST`,`/admin/akm/embedding/test`,e))).json()}async function y(){return await(await d(await l(`POST`,`/admin/akm/reindex`,{}))).json()}async function b(){return await(await d(await l(`GET`,`/admin/akm/health`))).json()}async function x(){return await(await d(await l(`GET`,`/admin/akm/host-sharing`))).json()}async function S(e={}){return await(await d(await l(`PUT`,`/admin/akm/host-sharing`,e))).json()}async function C(){return await(await d(await l(`DELETE`,`/admin/akm/host-sharing`))).json()}async function w(){await d(await l(`POST`,`/admin/containers/pull`,{}))}async function T(){return await(await d(await l(`GET`,`/admin/endpoints`))).json()}async function E(e){return await(await d(await l(`POST`,`/admin/endpoints`,e))).json()}async function D(e,t){return await(await d(await l(`PATCH`,`/admin/endpoints/${encodeURIComponent(e)}`,t))).json()}async function O(e){await d(await l(`DELETE`,`/admin/endpoints/${encodeURIComponent(e)}`))}async function k(e){return await(await d(await l(`POST`,`/admin/endpoints/active`,{id:e}))).json()}async function A(){return await(await d(await l(`POST`,`/proxy/assistant/session`,{}))).json()}async function j(){let e=(await(await d(await l(`GET`,`/proxy/assistant/session`))).json()).map(e=>({id:e.id,title:e.title??``,createdAt:e.time?.created??0,updatedAt:e.time?.updated??e.time?.created??0}));return e.sort((e,t)=>t.updatedAt-e.updatedAt),e}async function Ce(e){let t=await(await d(await l(`GET`,`/proxy/assistant/session/${encodeURIComponent(e)}/message`))).json(),n=[];for(let e of t){let t=e.parts.filter(e=>e.type===`text`&&e.text).map(e=>e.text??``).join(``);t&&n.push({id:e.info.id,role:e.info.role,text:t,timestamp:e.info.time?.created??Date.now()})}return n}async function we(e,t){let n=await fetch(`/proxy/assistant/session/${encodeURIComponent(e)}/message`,{method:`POST`,headers:{"content-type":`application/json`,...c()},credentials:`include`,body:JSON.stringify({parts:[{type:`text`,text:t}]}),signal:AbortSignal.timeout(15e4)});if(n.status===401)throw Object.assign(Error(`Sign-in required.`),{status:401});if(!n.ok){let e=await u(n);throw Object.assign(Error(e),{status:n.status})}return await n.json()}async function Te(){try{return(await fetch(`/proxy/assistant/provider`,{method:`GET`,headers:c(),credentials:`include`,signal:AbortSignal.timeout(3e3)})).ok}catch{return!1}}var Ee={info:4e3,success:5e3,error:8e3},M=new class{#e=e(r([]));get toasts(){return t(this.#e)}set toasts(e){n(this.#e,e,!0)}timers=new Map;push(e,t,n={}){let r=n.replaceId??(typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`t-${Date.now()}-${Math.random().toString(36).slice(2)}`),i=n.sticky?null:n.ttlMs??Ee[e],a={id:r,kind:e,message:t,ttlMs:i},o=this.timers.get(r);o&&(clearTimeout(o),this.timers.delete(r));let s=this.toasts.findIndex(e=>e.id===r);if(s>=0){let e=[...this.toasts];e[s]=a,this.toasts=e}else this.toasts=[...this.toasts,a];if(i!==null){let e=setTimeout(()=>this.dismiss(r),i);this.timers.set(r,e)}return r}dismiss(e){let t=this.timers.get(e);t&&(clearTimeout(t),this.timers.delete(e)),this.toasts=this.toasts.filter(t=>t.id!==e)}clear(){for(let e of this.timers.values())clearTimeout(e);this.timers.clear(),this.toasts=[]}},De=6e4,N=new class{#e=e(`idle`);get status(){return t(this.#e)}set status(e){n(this.#e,e,!0)}#t=e(!1);get sttSupported(){return t(this.#t)}set sttSupported(e){n(this.#t,e,!0)}#n=e(!1);get ttsSupported(){return t(this.#n)}set ttsSupported(e){n(this.#n,e,!0)}#r=e(``);get errorMessage(){return t(this.#r)}set errorMessage(e){n(this.#r,e,!0)}#i=e(``);get interimTranscript(){return t(this.#i)}set interimTranscript(e){n(this.#i,e,!0)}#a=e(`disabled`);get sttEngine(){return t(this.#a)}set sttEngine(e){n(this.#a,e,!0)}#o=e(`disabled`);get ttsEngine(){return t(this.#o)}set ttsEngine(e){n(this.#o,e,!0)}#s=e(``);get sttLanguage(){return t(this.#s)}set sttLanguage(e){n(this.#s,e,!0)}#c=e(!1);get ttsAutoEnabled(){return t(this.#c)}set ttsAutoEnabled(e){n(this.#c,e,!0)}#l=e(!1);get autoplayBlocked(){return t(this.#l)}set autoplayBlocked(e){n(this.#l,e,!0)}#u=e(``);get browserSttUnsupportedReason(){return t(this.#u)}set browserSttUnsupportedReason(e){n(this.#u,e,!0)}},P=`openpalm.tts.auto`,F=null,I=null,L=null,R=null;function Oe(e){let t=N.ttsAutoEnabled;if(N.ttsAutoEnabled=e,typeof window<`u`)try{window.localStorage.setItem(P,e?`1`:`0`)}catch{}if(!e){Z();return}t||ke()}function ke(){if(typeof window>`u`)return;let e=window.AudioContext??window.webkitAudioContext;if(e)try{let t=new e,n=t.createBuffer(1,1,22050),r=t.createBufferSource();r.buffer=n,r.connect(t.destination),r.start(0),setTimeout(()=>{t.close().catch(()=>{})},100)}catch{}}function z(){if(!(typeof window>`u`))return window.SpeechRecognition??window.webkitSpeechRecognition??void 0}function Ae(){if(typeof navigator>`u`)return!1;let e=navigator.userAgent??``,t=/iPad|iPhone|iPod/.test(e),n=window.MSStream;return t&&!n}function je(){return!(typeof window>`u`||typeof MediaRecorder>`u`||!navigator?.mediaDevices?.getUserMedia)}function Me(e){switch(e){case`browser`:return N.browserSttUnsupportedReason?!1:!!z();case`remote`:case`openpalm-voice`:return je();default:return!1}}function B(e){return e===`browser`||e===`browser-stt`?`browser`:e===`openpalm-voice`?`openpalm-voice`:e&&!e.startsWith(`skip-`)?`remote`:`disabled`}async function Ne(){let e=typeof window<`u`&&`speechSynthesis`in window;if(typeof window<`u`)try{N.ttsAutoEnabled=window.localStorage.getItem(P)===`1`}catch{}try{let e=await f(),t=e.stt??{},n=e.tts??{},r=typeof t.engine==`string`?t.engine:``,i=typeof n.engine==`string`?n.engine:``;N.sttLanguage=typeof t.language==`string`?t.language:``,N.sttEngine=B(r),N.ttsEngine=B(i)}catch{N.sttEngine=`disabled`,N.ttsEngine=`disabled`}N.ttsSupported=N.ttsEngine===`openpalm-voice`||N.ttsEngine===`remote`||N.ttsEngine===`browser`&&e,Ae()&&z()?(N.browserSttUnsupportedReason=`iOS Safari does not support Web Speech recognition`,N.sttEngine===`browser`&&(N.sttEngine=`disabled`)):N.browserSttUnsupportedReason=``,N.sttEngine===`disabled`&&z()&&!N.browserSttUnsupportedReason&&(N.sttEngine=`browser`),N.sttSupported=Me(N.sttEngine)}function Pe(e){if(!(N.status===`recording`||N.status===`transcribing`)){if(!N.sttSupported||N.sttEngine===`disabled`){N.errorMessage=`Speech recognition is not available.`;return}if(N.errorMessage=``,R=e,N.sttEngine===`browser`){Fe(e);return}Ie()}}function Fe(e){let t=z();if(!t){N.errorMessage=`Speech recognition is not supported in this browser.`;return}let n=new t;I=n,n.lang=N.sttLanguage||navigator?.language||`en-US`,n.interimResults=!0,n.maxAlternatives=1,n.continuous=!1;let r=``;n.onresult=e=>{let t=``;for(let n=e.resultIndex;n<e.results.length;n++){let i=e.results[n];i.isFinal?r+=i[0]?.transcript??``:t+=i[0]?.transcript??``}N.interimTranscript=r+t},n.onerror=e=>{if(I!==n)return;let t=e.error??``;t===`no-speech`||t===`aborted`||(t===`not-allowed`?N.errorMessage=`Microphone access denied.`:N.errorMessage=`Speech error: ${t}`),N.interimTranscript=``,N.status=`idle`,I=null,R=null},n.onend=()=>{I===n&&(r.trim()&&e&&e(r.trim()),N.interimTranscript=``,N.status=`idle`,I=null,R=null)};try{n.start(),N.status=`recording`}catch{N.errorMessage=`Failed to start speech recognition.`,N.status=`idle`,I=null,R=null}}async function Ie(){let e;try{e=await o()}catch(e){N.errorMessage=e instanceof Error?e.message:`Failed to start recording.`,N.status=`idle`,R=null;return}F=e,N.status=`recording`,L=setTimeout(()=>{V()},De)}async function V(){let e=F,t=R;if(!e)return;F=null,R=null,L&&=(clearTimeout(L),null),N.status=`transcribing`;let n;try{n=await e.stop()}catch(e){N.errorMessage=e instanceof Error?e.message:`Recording failed.`,N.status=`idle`;return}if(n.size===0){N.status=`idle`;return}try{let e=(await m(n,{language:N.sttLanguage||void 0})).trim();e&&t&&t(e)}catch(e){N.errorMessage=e instanceof Error?e.message:`Transcription failed.`}finally{N.status=`idle`}}function Le(){if(I){try{I.stop()}catch{}return}F&&V()}var H=null,U=null,Re=3,W=[],G=!1,K=null,q=null;function J(){if(H){H.onerror=null,H.onended=null;try{H.pause()}catch{}H.src=``,H=null}U&&=(URL.revokeObjectURL(U),null)}function Y(){if(K){K.onerror=null,K.onended=null;try{K.pause()}catch{}K.src=``,K=null}q&&=(URL.revokeObjectURL(q),null),N.autoplayBlocked=!1}function ze(){let e=K;if(!e){N.autoplayBlocked=!1;return}N.autoplayBlocked=!1,N.errorMessage=``,N.status=`speaking`,H=e,U=q,K=null,q=null,e.play().catch(()=>{N.status=`idle`,N.errorMessage=`Audio playback failed.`,J()})}async function Be(e){if(!(typeof window>`u`||!e.trim())){if(N.status===`speaking`){W.push(e);let t=0;for(;W.length>Re;)W.shift(),t+=1;t>0&&!G&&(G=!0,M.push(`info`,`Skipped ${t} spoken ${t===1?`reply`:`replies`} — too much overlap. Lower the auto-speak chat rate.`));return}await X(e)}}async function X(e){if(typeof window>`u`||!e.trim())return;Y(),J(),`speechSynthesis`in window&&window.speechSynthesis.cancel(),N.errorMessage=``;let t=N.ttsEngine,n=t===`openpalm-voice`||t===`remote`;if(n){let t;try{t=await fetch(`/api/speak`,{method:`POST`,headers:{"content-type":`application/json`},credentials:`include`,body:JSON.stringify({text:e})})}catch{}if(t&&t.ok&&t.headers.get(`content-type`)?.startsWith(`audio/`)){let e=await t.blob(),n=URL.createObjectURL(e),r=new Audio(n);H=r,U=n,r.onended=()=>{N.status=`idle`,J();let e=W.shift();e?X(e):G=!1},r.onerror=()=>{N.status=`idle`,N.errorMessage=`Audio playback failed.`,J();let e=W.shift();e?X(e):G=!1},N.status=`speaking`;try{await r.play()}catch{N.status=`idle`,K=r,q=n,H=null,U=null,N.autoplayBlocked=!0}return}t&&!t.ok&&(N.errorMessage=await Ve(t))}if(!(`speechSynthesis`in window))return;n&&(N.errorMessage=``);let r=new SpeechSynthesisUtterance(e);r.onstart=()=>{N.status=`speaking`},r.onend=()=>{N.status=`idle`;let e=W.shift();e?X(e):G=!1},r.onerror=()=>{N.status=`idle`;let e=W.shift();e?X(e):G=!1},window.speechSynthesis.speak(r)}async function Ve(e){let t;try{let n=await e.clone().json();typeof n.error==`string`&&(t=n.error)}catch{}return t===`tts_not_configured`?`TTS is not configured.`:t===`upstream_error`||e.status===502||e.status===503?`Voice engine is warming up — try again in a moment.`:`TTS failed (HTTP ${e.status}).`}function Z(){W.length=0,G=!1,Y(),J(),typeof window<`u`&&`speechSynthesis`in window&&window.speechSynthesis.cancel(),N.status=`idle`}function Q(){if(L&&=(clearTimeout(L),null),F){try{F.cancel()}catch{}F=null}if(I){try{I.stop()}catch{}I=null}R=null,N.interimTranscript=``,N.status=`idle`}var $=`openpalm.theme`,He=`data-theme`,Ue=`#161c22`,We=`#f9fafb`;function Ge(e){return e===`light`||e===`dark`||e===`system`}var Ke=new class{#e=e(`system`);get preference(){return t(this.#e)}set preference(e){n(this.#e,e,!0)}#t=e(`light`);get resolved(){return t(this.#t)}set resolved(e){n(this.#t,e,!0)}#n=e(!1);get initialized(){return t(this.#n)}set initialized(e){n(this.#n,e,!0)}#r=null;#i=()=>{this.preference===`system`&&(this.resolved=this.#s(`system`),this.#l())};init(){typeof window>`u`||this.initialized||(this.preference=this.#a(),this.resolved=this.#s(this.preference),this.#c(),this.#l(),this.initialized=!0)}setPreference(e){this.preference=e,this.resolved=this.#s(e),this.#o(e),this.#l()}toggle(){this.setPreference(this.resolved===`dark`?`light`:`dark`)}dispose(){this.#r&&(typeof this.#r.removeEventListener==`function`?this.#r.removeEventListener(`change`,this.#i):this.#r.removeListener(this.#i)),this.#r=null,this.initialized=!1}#a(){if(typeof window>`u`)return`system`;try{let e=window.localStorage.getItem($);return Ge(e)?e:`system`}catch{return`system`}}#o(e){if(!(typeof window>`u`))try{window.localStorage.setItem($,e)}catch{}}#s(e){return e===`light`||e===`dark`?e:typeof window>`u`||typeof window.matchMedia!=`function`?`light`:window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}#c(){if(typeof window>`u`||typeof window.matchMedia!=`function`)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`);this.#r!==e&&(this.#r&&(typeof this.#r.removeEventListener==`function`?this.#r.removeEventListener(`change`,this.#i):this.#r.removeListener(this.#i)),this.#r=e,typeof e.addEventListener==`function`?e.addEventListener(`change`,this.#i):e.addListener(this.#i))}#l(){if(typeof document>`u`)return;let e=document.documentElement;e.setAttribute(He,this.resolved),e.style.colorScheme=this.resolved;let t=document.querySelector(`meta[name="theme-color"]`);t&&(t.content=this.resolved===`dark`?Ue:We);let n=document.querySelector(`meta[name="color-scheme"]`);n&&(n.content=this.resolved)}};export{ce as $,T as A,f as B,S as C,b as D,h as E,ge as F,y as G,j as H,de as I,ve as J,he as K,be as L,x as M,oe as N,ue as O,_e as P,k as Q,se as R,le as S,fe as T,Te as U,Ce as V,w as W,p as X,xe as Y,we as Z,O as _,Oe as a,_ as b,Le as c,M as d,v as et,re as f,A as g,E as h,ze as i,ee as j,te as k,Z as l,ne as m,Q as n,D as nt,Be as o,c as p,g as q,Ne as r,ie as rt,Pe as s,Ke as t,pe as tt,N as u,ye as v,me as w,C as x,Se as y,ae as z};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./DGd1H7f6.js";
|
|
Binary file
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{$ as e,A as t,D as n,F as r,H as i,J as a,L as o,M as s,N as c,O as l,P as u,Q as d,S as f,T as p,U as m,X as h,Y as g,Z as _,_ as v,a as y,at as b,ct as x,d as S,g as C,h as w,it as T,j as E,k as D,lt as O,n as k,r as A,tt as j,v as M,y as N}from"./0swOyi-5.js";import{n as P,t as F}from"./
|
|
1
|
+
import{$ as e,A as t,D as n,F as r,H as i,J as a,L as o,M as s,N as c,O as l,P as u,Q as d,S as f,T as p,U as m,X as h,Y as g,Z as _,_ as v,a as y,at as b,ct as x,d as S,g as C,h as w,it as T,j as E,k as D,lt as O,n as k,r as A,tt as j,v as M,y as N}from"./0swOyi-5.js";import{n as P,t as F}from"./DGd1H7f6.js";import"./xihTtKlq.js";import{A as I,H as L,Q as R,V as z,Z as B,a as V,c as H,g as U,i as ee,l as W,n as te,o as ne,r as re,s as ie,t as G,u as K}from"./C-9oV3QK.js";import{t as q}from"./D4px_ogp.js";import"./C1cDpTIW.js";import{t as ae}from"./BQ0vnNWj.js";var oe=new Intl.DateTimeFormat(void 0,{hour:`numeric`,minute:`2-digit`}),J=new Intl.DateTimeFormat(void 0,{year:`numeric`,month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`});function se(e){return e?oe.format(e):``}function ce(e){return e?J.format(e):``}function le(e){if(!e)return``;let t=Math.max(0,(Date.now()-e)/1e3);if(t<60)return`just now`;let n=Math.floor(t/60);if(n<60)return`${n}m ago`;let r=Math.floor(n/60);if(r<24)return`${r}h ago`;let i=Math.floor(r/24);if(i===1)return`yesterday`;if(i<7)return`${i}d ago`;let a=Math.floor(i/7);if(a<5)return`${a}w ago`;let o=Math.floor(i/30);return o<12?`${o}mo ago`:`${Math.floor(i/365)}y ago`}var ue=E(`<span class="icon-btn-label svelte-vx1yib"> </span>`),de=E(`<a><!> <!></a>`),fe=E(`<span class="icon-btn-label svelte-vx1yib"> </span>`),pe=E(`<button><!> <!></button>`);function Y(e,o){let s=y(o,`disabled`,3,!1),c=y(o,`type`,3,`button`),u=y(o,`selected`,3,!1),d=y(o,`tone`,3,`primary`);var p=t(),m=g(p),_=e=>{var t=de();let c;var p=a(t);f(p,()=>o.icon);var m=h(p,2),g=e=>{var t=ue(),n=a(t,!0);O(t),i(()=>l(n,o.label)),D(e,t)};n(m,e=>{o.label&&e(g)}),O(t),i(()=>{c=M(t,1,`icon-btn svelte-vx1yib`,null,c,{"has-label":o.label,selected:u(),"tone-danger":d()===`danger`}),S(t,`href`,o.href),S(t,`title`,o.title??o.ariaLabel??o.label),S(t,`aria-label`,o.ariaLabel??o.label),S(t,`aria-disabled`,s()||void 0)}),r(`click`,t,function(...e){o.onclick?.apply(this,e)}),D(e,t)},v=e=>{var t=pe();let p;var m=a(t);f(m,()=>o.icon);var g=h(m,2),_=e=>{var t=fe(),n=a(t,!0);O(t),i(()=>l(n,o.label)),D(e,t)};n(g,e=>{o.label&&e(_)}),O(t),i(()=>{p=M(t,1,`icon-btn svelte-vx1yib`,null,p,{"has-label":o.label,selected:u(),"tone-danger":d()===`danger`}),S(t,`type`,c()),t.disabled=s(),S(t,`title`,o.title??o.ariaLabel??o.label),S(t,`aria-label`,o.ariaLabel??o.label),S(t,`aria-pressed`,o.ariaPressed)}),r(`click`,t,function(...e){o.onclick?.apply(this,e)}),D(e,t)};n(m,e=>{o.href?e(_):e(v,-1)}),D(e,p)}u([`click`]);function me(e,t){let n=y(t,`disabled`,3,!1),r=y(t,`tone`,3,`primary`);{let i=j(()=>t.pressed&&t.selectedIcon?t.selectedIcon:t.icon);Y(e,{get icon(){return o(i)},get label(){return t.label},get title(){return t.title},get ariaLabel(){return t.ariaLabel},get disabled(){return n()},get tone(){return r()},get selected(){return t.pressed},get ariaPressed(){return t.pressed},get onclick(){return t.onToggle}})}}var he=e=>{D(e,ge())},ge=s(`<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"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><path d="m7 9 3 3-3 3"></path><line x1="13" y1="15" x2="17" y2="15"></line></svg>`);function _e(e,t){b(t,!0);let n=j(()=>q.url?.pathname??``),r=j(()=>o(n)===`/advanced`||o(n).startsWith(`/advanced/`));function i(){P(o(r)?`/chat`:`/advanced`)}me(e,{get pressed(){return o(r)},onToggle:i,ariaLabel:`Advanced mode`,title:`Advanced mode (embedded OpenCode)`,get icon(){return he}}),T()}var ve=E(`<footer class="drawer-footer svelte-1u2o1qj"><!></footer>`),ye=E(`<div class="drawer-scrim svelte-1u2o1qj"></div> <div class="drawer svelte-1u2o1qj" role="dialog" aria-modal="true" tabindex="-1"><header class="drawer-header svelte-1u2o1qj"><!> <h3 class="drawer-title svelte-1u2o1qj"> </h3> <button class="drawer-close svelte-1u2o1qj" aria-label="Close"><svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button></header> <div class="drawer-body svelte-1u2o1qj"><!></div> <!></div>`,1);function X(e,o){b(o,!0);let s=y(o,`width`,3,`32rem`);function c(e){return Array.from(e.querySelectorAll(`a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])`)).filter(e=>!e.hasAttribute(`hidden`)&&e.getAttribute(`aria-hidden`)!==`true`)}function u(e){let t=document.activeElement,n=e.querySelector(`.drawer-body`);return((n&&c(n)[0])??c(e)[0]??e).focus(),()=>t?.focus?.()}function d(e){if(e.key===`Escape`){o.onClose();return}if(e.key!==`Tab`)return;let t=e.currentTarget,n=c(t);if(n.length===0){e.preventDefault(),t.focus();return}let r=n[0],i=n[n.length-1],a=document.activeElement;e.shiftKey&&(a===r||a===t)?(e.preventDefault(),i.focus()):!e.shiftKey&&a===i&&(e.preventDefault(),r.focus())}var p=t(),m=g(p),_=e=>{var c=ye(),p=g(c),m=h(p,2),_=a(m),y=a(_),b=e=>{var n=t();f(g(n),()=>o.headerStart),D(e,n)};n(y,e=>{o.headerStart&&e(b)});var x=h(y,2),C=a(x,!0);O(x);var w=h(x,2);O(_);var T=h(_,2);f(a(T),()=>o.children),O(T);var E=h(T,2),k=e=>{var t=ve();f(a(t),()=>o.footer),O(t),D(e,t)};n(E,e=>{o.footer&&e(k)}),O(m),N(m,()=>u),i(()=>{v(m,`--drawer-width: ${s()??``}`),S(m,`aria-label`,o.title),l(C,o.title)}),r(`click`,p,function(...e){o.onClose?.apply(this,e)}),r(`keydown`,m,d),r(`click`,w,function(...e){o.onClose?.apply(this,e)}),D(e,c)};n(m,e=>{o.open&&e(_)}),D(e,p),T()}u([`click`,`keydown`]);var be=e=>{D(e,xe())},xe=s(`<svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg>`),Se=E(`<a class="settings-link svelte-4kbm5j" href="/admin">Manage this assistant...</a>`),Ce=E(`<div class="settings-drawer svelte-4kbm5j"><label class="field svelte-4kbm5j" for="theme-preference"><span class="field-label svelte-4kbm5j">Theme</span> <select id="theme-preference" class="field-select svelte-4kbm5j"><option>System</option><option>Light</option><option>Dark</option></select></label> <nav class="settings-links svelte-4kbm5j" aria-label="Settings links"><!> <a class="settings-link svelte-4kbm5j" href="/admin/endpoints">Manage assistant connections...</a></nav></div>`),we=E(`<!> <!>`,1);function Te(t,s){b(s,!0);let c=y(s,`showManageAssistant`,3,!0),l=e(!1);F(()=>{d(l,!1)});function u(e){let t=e.currentTarget.value;(t===`light`||t===`dark`||t===`system`)&&G.setPreference(t)}var f=we(),p=g(f);Y(p,{get icon(){return be},ariaLabel:`Settings`,title:`Settings`,get selected(){return o(l)},get ariaPressed(){return o(l)},onclick:()=>d(l,!0)}),X(h(p,2),{get open(){return o(l)},title:`Settings`,onClose:()=>d(l,!1),width:`24rem`,children:(e,t)=>{var o=Ce(),s=a(o),f=h(a(s),2),p=a(f);p.value=p.__value=`system`;var m=h(p);m.value=m.__value=`light`;var g=h(m);g.value=g.__value=`dark`,O(f);var _;w(f),O(s);var v=h(s,2),y=a(v),b=e=>{var t=Se();r(`click`,t,()=>d(l,!1)),D(e,t)};n(y,e=>{c()&&e(b)});var x=h(y,2);O(v),O(o),i(()=>{_!==(_=G.preference)&&(f.value=(f.__value=G.preference)??``,C(f,G.preference))}),r(`change`,f,u),r(`click`,x,()=>d(l,!1)),D(e,o)},$$slots:{default:!0}}),D(t,f),T()}u([`change`,`click`]);var Ee=1e3,De=3e4,Oe=`/proxy/assistant/event`;function ke(e){let t={},n=[];for(let r of e.split(`
|
|
2
2
|
`))!r||r.startsWith(`:`)||(r.startsWith(`data:`)?n.push(r.replace(/^data:\s?/,``)):r.startsWith(`event:`)?t.event=r.replace(/^event:\s?/,``):r.startsWith(`id:`)&&(t.id=r.replace(/^id:\s?/,``)));return n.length>0&&(t.data=n.join(`
|
|
3
3
|
`)),t}function Ae(e,t){let n=t.properties?.info,r=n?.id;if(r)switch(t.type){case`session.created`:e.onCreated(r);return;case`session.updated`:e.onUpdated(r,{title:n?.title,updatedAt:n?.time?.updated});return;case`session.deleted`:e.onDeleted(r);return;default:return}}function je(e){let t=!1,n=new AbortController,r,i=e=>new Promise(t=>{let r=setTimeout(t,e);n.signal.addEventListener(`abort`,()=>{clearTimeout(r),t()},{once:!0})});async function a(){let t={accept:`text/event-stream`};r!==void 0&&(t[`Last-Event-ID`]=r);let i=await fetch(Oe,{method:`GET`,headers:t,credentials:`include`,signal:n.signal});if(!i.ok||!i.body)throw Error(`SSE stream failed: ${i.status} ${i.statusText}`);e.onConnect?.();let a=i.body.pipeThrough(new TextDecoderStream).getReader(),o=``;try{for(;;){let{done:t,value:n}=await a.read();if(t)break;o+=n;let i=o.split(`
|
|
4
4
|
|
|
5
|
-
`);o=i.pop()??``;for(let t of i){if(!t)continue;let n=ke(t);if(n.id!==void 0&&(r=n.id),!n.data)continue;let i;try{i=JSON.parse(n.data)}catch(e){console.warn(`[session-events] Bad JSON in SSE frame`,e);continue}Ae(e,i)}}}finally{try{a.releaseLock()}catch{}}}return(async()=>{let r=0;for(;!t;)try{r++,await a(),r=0,t||await i(500)}catch(a){if(t)return;let o=a instanceof Error?a:Error(String(a));o.name!==`AbortError`&&(console.warn(`[session-events] SSE error, reconnecting`,o),e.onDisconnect?.(o)),await i(Math.min(Ee*2**Math.max(0,r-1),De)),n.signal.aborted&&!t&&(n=new AbortController)}})(),()=>{t=!0;try{n.abort()}catch{}}}function Z(){return{sessions:[],sessionsLoaded:!1,sessionsLoading:!1,sessionsError:``,activeSessionId:null}}var Q=new class{#e=e(_(new Map));get byEndpoint(){return o(this.#e)}set byEndpoint(e){d(this.#e,e,!0)}#t=e(`default`);get activeEndpointId(){return o(this.#t)}set activeEndpointId(e){d(this.#t,e,!0)}#n=e(_([]));get entries(){return o(this.#n)}set entries(e){d(this.#n,e,!0)}#r=e(!1);get entriesLoading(){return o(this.#r)}set entriesLoading(e){d(this.#r,e,!0)}#i=e(!1);get sending(){return o(this.#i)}set sending(e){d(this.#i,e,!0)}#a=e(``);get error(){return o(this.#a)}set error(e){d(this.#a,e,!0)}#o=e(!1);get liveConnected(){return o(this.#o)}set liveConnected(e){d(this.#o,e,!0)}_unsubscribeEvents=null;#s=j(()=>this.byEndpoint.get(this.activeEndpointId)?.activeSessionId??null);get activeSessionId(){return o(this.#s)}set activeSessionId(e){d(this.#s,e)}setEndpointState(e,t){let n={...this.byEndpoint.get(e)??Z(),...t};return this.byEndpoint=new Map(this.byEndpoint).set(e,n),n}async onEndpointChanged(e){if(this.sending){this.error=`Wait for the current reply to finish before switching.`;return}this.activeEndpointId=e,this.entries=[],this.error=``,this.byEndpoint.get(e)?.sessionsLoaded||await this.loadSessions();let t=this.byEndpoint.get(e)??Z(),n=t.sessions,r=t.activeSessionId,i=null;r&&n.some(e=>e.id===r)?i=r:n.length>0&&(i=n[0].id),i!==t.activeSessionId&&this.setEndpointState(e,{activeSessionId:i}),i&&await this.openSession(i),this._resubscribeEvents()}_resubscribeEvents(){if(this._unsubscribeEvents){try{this._unsubscribeEvents()}catch(e){console.warn(`[chat] failed to unsubscribe from previous event stream`,e)}this._unsubscribeEvents=null}this.liveConnected=!1,this._unsubscribeEvents=je({onCreated:e=>{this._onSessionCreated(e)},onUpdated:(e,t)=>{this._onSessionUpdated(e,t)},onDeleted:e=>{this._onSessionDeleted(e)},onConnect:()=>{this.liveConnected=!0},onDisconnect:()=>{this.liveConnected=!1}})}_onSessionCreated(e){let t=this.activeEndpointId,n=this.byEndpoint.get(t)??Z();if(n.sessions.some(t=>t.id===e))return;let r=Date.now(),i={id:e,title:``,createdAt:r,updatedAt:r};this.setEndpointState(t,{sessions:[i,...n.sessions],sessionsLoaded:!0})}_onSessionUpdated(e,t){let n=this.activeEndpointId,r=this.byEndpoint.get(n);if(!r)return;let i=r.sessions.findIndex(t=>t.id===e);if(i===-1)return;let a=r.sessions[i],o=[{...a,title:t?.title??a.title,updatedAt:t?.updatedAt??Date.now()},...r.sessions.filter(t=>t.id!==e)];o.sort((e,t)=>t.updatedAt-e.updatedAt),this.setEndpointState(n,{sessions:o})}async _onSessionDeleted(e){let t=this.activeEndpointId,n=this.byEndpoint.get(t);if(!n||!n.sessions.some(t=>t.id===e))return;let r=n.sessions.filter(t=>t.id!==e),i=n.activeSessionId===e,a=i?r[0]?.id??null:n.activeSessionId;this.setEndpointState(t,{sessions:r,activeSessionId:a}),i&&(this.entries=[],a&&await this.openSession(a))}async loadSessions(){let e=this.activeEndpointId;this.setEndpointState(e,{sessionsLoading:!0,sessionsError:``});try{let t=await L();this.setEndpointState(e,{sessions:t,sessionsLoaded:!0,sessionsLoading:!1,sessionsError:``})}catch(t){let n=t,r=n.status===503||n.status===502?`Assistant is not reachable.`:n.message??`Failed to load sessions.`;this.setEndpointState(e,{sessionsLoading:!1,sessionsError:r})}}async openSession(e){if(this.sending){this.error=`Wait for the current reply to finish before switching.`;return}let t=this.activeEndpointId;this.setEndpointState(t,{activeSessionId:e}),this.entries=[],this.entriesLoading=!0,this.error=``;try{let n=await I(e);this.activeEndpointId===t&&this.byEndpoint.get(t)?.activeSessionId===e&&(this.entries=n)}catch(e){let t=e;t.status===503||t.status===502?this.error=`Assistant is not reachable. Try reconnecting.`:t.status===401?this.error=`Sign-in required.`:this.error=t.message??`Failed to load messages.`}finally{this.entriesLoading=!1}}async startNewSession(){if(this.sending)return this.error=`Wait for the current reply to finish before switching.`,null;let e=this.activeEndpointId;this.error=``;try{let{id:t}=await H(),n=Date.now(),r={id:t,title:``,createdAt:n,updatedAt:n},i=this.byEndpoint.get(e)??Z();return this.setEndpointState(e,{sessions:[r,...i.sessions.filter(e=>e.id!==t)],sessionsLoaded:!0,activeSessionId:t}),this.entries=[],t}catch(e){let t=e;return this.error=`Failed to start session: ${t.message??`unknown error`}`,null}}async send(e){if(this.sending)return;let t=e.trim();if(!t)return;let n=this.activeSessionId;if(!n&&(n=await this.startNewSession(),!n))return;let r={id:crypto.randomUUID(),role:`user`,text:t,timestamp:Date.now()};this.entries=[...this.entries,r],this.error=``,this.sending=!0;try{let e=(await z(n,t)).parts.filter(e=>e.type===`text`&&e.text).map(e=>e.text??``).join(``),r={id:crypto.randomUUID(),role:`assistant`,text:e||`(no response)`,timestamp:Date.now()};this.entries=[...this.entries,r];let i=this.activeEndpointId,a=this.byEndpoint.get(i);if(a){let e=Date.now(),t=a.sessions.find(e=>e.id===n),r=t?{...t,updatedAt:e}:{id:n,title:``,createdAt:e,updatedAt:e},o=a.sessions.filter(e=>e.id!==n);this.setEndpointState(i,{sessions:[r,...o]})}K.ttsSupported&&K.ttsAutoEnabled&&e&&ne(e)}catch(e){let t=e;t.status===503||t.status===502?(this.error=`Assistant is not reachable. Try reconnecting.`,this.setEndpointState(this.activeEndpointId,{activeSessionId:null})):t.status===401?this.error=`Sign-in required.`:this.error=t.message??`Message failed.`}finally{this.sending=!1}}reset(){if(W(),this.entries=[],this.error=``,this.byEndpoint=new Map,this._unsubscribeEvents){try{this._unsubscribeEvents()}catch(e){console.warn(`[chat] failed to unsubscribe from event stream during reset`,e)}this._unsubscribeEvents=null}this.liveConnected=!1}},$=new class{#e=e(_([]));get endpoints(){return o(this.#e)}set endpoints(e){d(this.#e,e,!0)}#t=e(`default`);get activeId(){return o(this.#t)}set activeId(e){d(this.#t,e,!0)}#n=e(!1);get loading(){return o(this.#n)}set loading(e){d(this.#n,e,!0)}#r=e(!1);get loaded(){return o(this.#r)}set loaded(e){d(this.#r,e,!0)}#i=e(``);get error(){return o(this.#i)}set error(e){d(this.#i,e,!0)}#a=j(()=>this.endpoints.find(e=>e.id===this.activeId)??this.endpoints[0]??null);get active(){return o(this.#a)}set active(e){d(this.#a,e)}async load(e=!1){if(!this.loading&&!(this.loaded&&!e)){this.loading=!0,this.error=``;try{let{endpoints:e,activeId:t}=await U();this.endpoints=e,this.activeId=t,this.loaded=!0}catch(e){let t=e;t.status!==401&&(this.error=t.message??`Failed to load endpoints`)}finally{this.loading=!1}}}async activate(e){if(e===this.activeId)return;if(Q.sending)throw this.error=`Wait for the current reply to finish before switching.`,Error(this.error);let t=this.activeId;this.activeId=e;try{await R(e),await Q.onEndpointChanged(e)}catch(e){this.activeId=t;let n=e;throw this.error=n.message??`Failed to switch endpoint`,e}}};function Me(e){if(!e)return!0;try{let t=new URL(e).hostname;return t===`localhost`||t===`127.0.0.1`||t===`::1`||t===`host.docker.internal`}catch{return!0}}var Ne=E(`<p class="list-error svelte-dlw00e" role="alert"> </p>`),Pe=E(`<span class="sr-only svelte-dlw00e">(current)</span>`),Fe=E(`<button type="button"><span class="item-text svelte-dlw00e"><span class="item-label svelte-dlw00e"> <!></span> <span class="item-url svelte-dlw00e"> </span></span></button>`),Ie=E(`<a class="list-item link svelte-dlw00e" href="/admin">Manage this assistant…</a>`),Le=E(`<div class="endpoint-list svelte-dlw00e"><!> <div class="group" role="group" aria-label="Assistant endpoints"></div> <div class="divider svelte-dlw00e"></div> <!> <a class="list-item link svelte-dlw00e" href="/admin/endpoints">Manage assistant connections…</a></div>`);function Re(t,s){b(s,!0);let c=j(()=>$.active),u=j(()=>$.endpoints),f=j(()=>Me(o(c)?.url)),m=e(!1);async function g(e){if(!o(m)){if(e===o(c)?.id){s.onChosen?.();return}d(m,!0);try{await $.activate(e),s.onChosen?.()}catch{}finally{d(m,!1)}}}var _=Le(),v=a(_),y=e=>{var t=Ne(),n=a(t,!0);O(t),i(()=>l(n,$.error)),D(e,t)};n(v,e=>{$.error&&e(y)});var x=h(v,2);p(x,21,()=>o(u),e=>e.id,(e,t)=>{var s=Fe();let u;var d=a(s),f=a(d),p=a(f,!0),_=h(p),v=e=>{D(e,Pe())};n(_,e=>{o(t).id===o(c)?.id&&e(v)}),O(f);var y=h(f,2),b=a(y,!0);O(y),O(d),O(s),i(()=>{u=M(s,1,`list-item svelte-dlw00e`,null,u,{active:o(t).id===o(c)?.id}),S(s,`aria-current`,o(t).id===o(c)?.id?`true`:void 0),s.disabled=o(m),l(p,o(t).label),l(b,o(t).url)}),r(`click`,s,()=>g(o(t).id)),D(e,s)}),O(x);var C=h(x,4),w=e=>{var t=Ie();r(`click`,t,()=>s.onChosen?.()),D(e,t)};n(C,e=>{o(f)&&e(w)});var E=h(C,2);O(_),r(`click`,E,()=>s.onChosen?.()),D(t,_),T()}u([`click`]);var ze=E(`<button type="button" class="trigger svelte-48xr05" aria-haspopup="dialog"><svg class="trigger-icon svelte-48xr05" 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"><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> <span class="dot svelte-48xr05" aria-hidden="true"></span> <span class="label svelte-48xr05"> </span> <span class="caret svelte-48xr05" aria-hidden="true">▾</span></button> <!>`,1);function Be(t,n){b(n,!0);let s=e(!1),c=j(()=>$.active);A(()=>{$.load()});var u=ze(),f=g(u),p=h(a(f),4),m=a(p,!0);O(p),x(2),O(f),X(h(f,2),{get open(){return o(s)},title:`Assistant endpoint`,onClose:()=>d(s,!1),width:`26rem`,children:(e,t)=>{Re(e,{onChosen:()=>d(s,!1)})},$$slots:{default:!0}}),i(()=>{S(f,`aria-expanded`,o(s)),S(f,`aria-label`,o(c)?`Assistant endpoint: ${o(c).label}`:`Assistant endpoints`),S(f,`title`,o(c)?`Connected to: ${o(c).label} (${o(c).url})`:`Assistant endpoints`),f.disabled=$.loading,l(m,o(c)?.label??`Endpoint…`)}),r(`click`,f,()=>d(s,!0)),D(t,u),T()}u([`click`]);var Ve=/^New session - (\d{4}-\d{2}-\d{2}T[0-9:.]+Z?)$/;function He(e){let t=(e??``).trim();if(!t)return`Untitled session`;let n=Ve.exec(t);if(n){let e=Date.parse(n[1]);if(!Number.isNaN(e))return ce(e)}return t}function Ue(e,t){b(t,!0);let n=j(()=>He(t.title));x();var r=c();i(()=>l(r,o(n))),D(e,r),T()}var We=E(`<div class="notice svelte-1o6rxhb">Wait for the current reply to finish before switching.</div>`),Ge=E(`<div class="empty svelte-1o6rxhb"><!><span>Loading sessions…</span></div>`),Ke=E(`<div class="list-error svelte-1o6rxhb"><span class="svelte-1o6rxhb"> </span> <button type="button" class="retry-btn svelte-1o6rxhb">Retry</button></div>`),qe=E(`<div class="empty svelte-1o6rxhb">No sessions yet. Start the first one.</div>`),Je=E(`<span class="sr-only svelte-1o6rxhb">(current)</span>`),Ye=E(`<button type="button"><span class="item-text svelte-1o6rxhb"><span class="item-label svelte-1o6rxhb"><!><!></span> <span class="item-meta svelte-1o6rxhb"> </span></span></button>`),Xe=E(`<button type="button" class="show-all svelte-1o6rxhb"> </button>`),Ze=E(`<div class="session-list svelte-1o6rxhb" role="group" aria-label="Sessions"></div> <!>`,1),Qe=E(`<div class="session-body svelte-1o6rxhb"><!> <!> <div class="divider svelte-1o6rxhb"></div> <button type="button" class="list-item new-btn svelte-1o6rxhb"><span class="check svelte-1o6rxhb" aria-hidden="true">+</span> <span class="item-text svelte-1o6rxhb"><span class="item-label svelte-1o6rxhb">New session</span></span></button></div>`);function $e(t,s){b(s,!0);let c=e(!1),u=j(()=>$.active),f=j(()=>o(u)?Q.byEndpoint.get(o(u).id)??null:null),m=j(()=>o(f)?.sessions??[]),_=j(()=>o(f)?.sessionsLoading??!1),v=j(()=>o(f)?.sessionsError??``),y=j(()=>Q.activeSessionId),C=j(()=>o(c)?o(m):o(m).slice(0,50)),w=j(()=>Math.max(0,o(m).length-50));A(()=>{o(u)&&!o(f)?.sessionsLoaded&&!o(_)&&Q.loadSessions()});async function E(e){Q.sending||(await Q.openSession(e),s.onChosen?.())}async function k(){Q.sending||(await Q.startNewSession(),s.onChosen?.())}async function N(){await Q.loadSessions()}var P=Qe(),F=a(P),I=e=>{D(e,We())};n(F,e=>{Q.sending&&e(I)});var L=h(F,2),R=e=>{var t=Ge();ae(a(t),{size:12}),x(),O(t),D(e,t)},z=e=>{var t=Ke(),n=a(t),s=a(n,!0);O(n);var c=h(n,2);O(t),i(()=>l(s,o(v))),r(`click`,c,N),D(e,t)},B=e=>{D(e,qe())},V=e=>{var t=Ze(),s=g(t);p(s,21,()=>o(C),e=>e.id,(e,t)=>{var s=Ye();let c;var u=a(s),d=a(u),f=a(d);Ue(f,{get title(){return o(t).title}});var p=h(f),m=e=>{D(e,Je())};n(p,e=>{o(t).id===o(y)&&e(m)}),O(d);var g=h(d,2),_=a(g,!0);O(g),O(u),O(s),i((e,n)=>{c=M(s,1,`list-item session-item svelte-1o6rxhb`,null,c,{active:o(t).id===o(y)}),S(s,`aria-current`,o(t).id===o(y)?`true`:void 0),s.disabled=Q.sending,S(s,`title`,e),l(_,n)},[()=>ce(o(t).updatedAt),()=>le(o(t).updatedAt)]),r(`click`,s,()=>E(o(t).id)),D(e,s)}),O(s);var u=h(s,2),f=e=>{var t=Xe(),n=a(t);O(t),i(()=>l(n,`Show all (${o(w)??``} more)`)),r(`click`,t,()=>d(c,!0)),D(e,t)};n(u,e=>{!o(c)&&o(w)>0&&e(f)}),D(e,t)};n(L,e=>{o(_)?e(R):o(v)?e(z,1):o(m).length===0?e(B,2):e(V,-1)});var H=h(L,4);O(P),i(()=>H.disabled=Q.sending),r(`click`,H,k),D(t,P),T()}u([`click`]);var et=E(`<button type="button" class="trigger svelte-cihcnl" aria-haspopup="dialog" aria-label="Sessions"><svg class="trigger-icon svelte-cihcnl" 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"><path d="M14 9a2 2 0 0 1-2 2H6l-4 4V4c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2z"></path><path d="M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1"></path></svg> <span aria-hidden="true"></span> <span class="label svelte-cihcnl"> </span> <span class="caret svelte-cihcnl" aria-hidden="true">▾</span></button> <!>`,1);function tt(t,n){b(n,!0);let s=e(!1),c=j(()=>$.active),u=j(()=>o(c)?Q.byEndpoint.get(o(c).id)??null:null),f=j(()=>o(u)?.sessions??[]),p=j(()=>Q.activeSessionId),m=j(()=>Q.liveConnected),_=j(()=>o(f).find(e=>e.id===o(p))??null),v=j(()=>o(_)?He(o(_).title):`New session`);var y=et(),C=g(y),w=h(a(C),2);let E;var k=h(w,2),A=a(k,!0);O(k),x(2),O(C);var N=h(C,2);{let e=j(()=>o(c)?.label??`this endpoint`);X(N,{get open(){return o(s)},get title(){return`Sessions on ${o(e)??``}`},onClose:()=>d(s,!1),width:`26rem`,children:(e,t)=>{$e(e,{onChosen:()=>d(s,!1)})},$$slots:{default:!0}})}i(()=>{S(C,`aria-expanded`,o(s)),S(C,`title`,o(v)),E=M(w,1,`dot svelte-cihcnl`,null,E,{connected:o(m)}),S(w,`title`,o(m)?`Live updates connected`:`Live updates disconnected`),l(A,o(v))}),r(`click`,C,()=>d(s,!0)),D(t,y),T()}u([`click`]);var nt=E(`<span class="voice-interim svelte-7elv0w" aria-hidden="true"> </span>`),rt=E(`<button type="button" class="voice-autoplay-banner svelte-7elv0w" aria-label="Resume paused audio" title="Audio was blocked by the browser. Click to resume."><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" class="svelte-7elv0w"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5" class="svelte-7elv0w"></polygon><line x1="23" y1="9" x2="17" y2="15" class="svelte-7elv0w"></line><line x1="17" y1="9" x2="23" y2="15" class="svelte-7elv0w"></line></svg> <span class="svelte-7elv0w">Audio paused — click to resume</span></button>`),it=s(`<path d="M15.54 8.46a5 5 0 0 1 0 7.07"></path><path d="M19.07 4.93a10 10 0 0 1 0 14.14"></path>`,1),at=s(`<line x1="23" y1="9" x2="17" y2="15" class="svelte-7elv0w"></line><line x1="17" y1="9" x2="23" y2="15" class="svelte-7elv0w"></line>`,1),ot=E(`<button><svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5" class="svelte-7elv0w"></polygon><!></svg></button>`),st=s(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><line x1="1" y1="1" x2="23" y2="23" class="svelte-7elv0w"></line><path d="M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6" class="svelte-7elv0w"></path><path d="M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23" class="svelte-7elv0w"></path><line x1="12" y1="19" x2="12" y2="23" class="svelte-7elv0w"></line><line x1="8" y1="23" x2="16" y2="23" class="svelte-7elv0w"></line></svg>`),ct=E(`<span class="voice-spinner svelte-7elv0w" aria-hidden="true"></span>`),lt=E(`<svg aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="currentColor" class="svelte-7elv0w"><rect x="6" y="6" width="12" height="12" rx="1.5" class="svelte-7elv0w"></rect></svg> <span class="voice-pulse svelte-7elv0w" aria-hidden="true"></span>`,1),ut=s(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z" class="svelte-7elv0w"></path><path d="M19 10v2a7 7 0 0 1-14 0v-2" class="svelte-7elv0w"></path><line x1="12" y1="19" x2="12" y2="23" class="svelte-7elv0w"></line><line x1="8" y1="23" x2="16" y2="23" class="svelte-7elv0w"></line></svg>`),dt=E(`<div class="voice-control svelte-7elv0w" role="toolbar" aria-label="Voice controls"><!> <!> <!> <button><!></button> <span class="sr-only svelte-7elv0w" aria-live="polite"> </span></div>`);function ft(t,s){b(s,!0);let c=e(!1),u=null;A(()=>{re().then(()=>{d(c,!0)}),u=window.openpalm?.onGlobalMicToggle?.(()=>{w()})??null}),k(()=>{typeof window<`u`&&window.openpalm?.setTrayMicRecording?.(!1),u?.(),u=null,te()}),m(()=>{o(c)&&window.openpalm?.setTrayMicRecording?.(o(_))});let f=j(()=>o(c)&&K.sttEngine!==`disabled`&&K.sttSupported),p=j(()=>o(c)&&K.ttsSupported),_=j(()=>K.status===`recording`),v=j(()=>K.status===`transcribing`),y=j(()=>!o(_)&&!o(v)&&Q.sending),C=j(()=>K.status===`speaking`);async function w(){if(o(y))return;if(o(_)){V();return}if(o(v))return;W();let e=window.openpalm;if(e?.requestMicPermission){let t=await e.requestMicPermission();if(t===`denied-no-prompt`){K.errorMessage=`This OpenPalm build cannot request microphone access on macOS. Please update to the latest version of the desktop app.`;return}if(t===`denied`||t===`restricted`){K.errorMessage=`Microphone access is turned off. In the System Settings window that just opened, enable OpenPalm under Microphone, then quit and reopen the app.`;return}}ie(e=>{let t=e.trim();t&&Q.send(t)})}function E(){B(!K.ttsAutoEnabled)}var N=dt(),P=a(N),F=e=>{var t=nt(),n=a(t,!0);O(t),i(e=>{S(t,`title`,K.interimTranscript),l(n,e)},[()=>K.interimTranscript.length>48?K.interimTranscript.slice(0,48)+`…`:K.interimTranscript]),D(e,t)};n(P,e=>{o(_)&&K.interimTranscript&&e(F)});var I=h(P,2),L=e=>{var t=rt();r(`click`,t,()=>ee()),D(e,t)};n(I,e=>{K.autoplayBlocked&&e(L)});var R=h(I,2),z=e=>{var t=ot();let s;var c=a(t),l=h(a(c)),u=e=>{var t=it(),n=g(t);let r;var a=h(n);let s;i(()=>{r=M(n,0,`svelte-7elv0w`,null,r,{"wave-anim":o(C)}),s=M(a,0,`svelte-7elv0w`,null,s,{"wave-anim-2":o(C)})}),D(e,t)},d=e=>{var t=at();x(),D(e,t)};n(l,e=>{K.ttsAutoEnabled?e(u):e(d,-1)}),O(c),O(t),i(()=>{s=M(t,1,`voice-btn svelte-7elv0w`,null,s,{"voice-btn-on":K.ttsAutoEnabled,"voice-btn-speaking":o(C)}),S(t,`aria-label`,K.ttsAutoEnabled?`Turn off spoken responses`:`Turn on spoken responses`),S(t,`aria-pressed`,K.ttsAutoEnabled),S(t,`title`,o(C)?`Speaking — click to turn off spoken responses`:K.ttsAutoEnabled?`Spoken responses are on — click to turn off`:`Spoken responses are off — click to turn on`)}),r(`click`,t,E),D(e,t)};n(R,e=>{o(p)&&e(z)});var H=h(R,2);let U;var ne=a(H),G=e=>{D(e,st())},q=e=>{D(e,ct())},ae=e=>{var t=lt();x(2),D(e,t)},oe=e=>{D(e,ut())};n(ne,e=>{o(f)?o(v)||o(y)?e(q,1):o(_)?e(ae,2):e(oe,-1):e(G)}),O(H);var J=h(H,2),se=a(J,!0);O(J),O(N),i(()=>{U=M(H,1,`voice-btn svelte-7elv0w`,null,U,{"voice-btn-active":o(_),"voice-btn-processing":o(y)||o(v),"voice-btn-disabled":!o(f)}),H.disabled=!o(f)||o(y),S(H,`aria-label`,o(f)?o(_)?`Stop recording`:o(v)?`Transcribing…`:o(y)?`Sending message…`:`Start recording`:`Voice input unavailable`),S(H,`aria-pressed`,o(_)),S(H,`title`,o(f)?o(_)?`Stop recording`:o(v)?`Transcribing…`:o(y)?`Sending message…`:`Speak — message will be sent to the selected assistant`:`Voice input is unavailable — no speech-to-text engine is configured for this browser`),l(se,o(_)&&K.interimTranscript?K.interimTranscript:o(_)?`Recording`:o(v)?`Transcribing`:o(y)?`Sending message to assistant`:o(C)?`Assistant is speaking`:K.ttsAutoEnabled?`Spoken responses on`:``)}),r(`click`,H,w),D(t,N),T()}u([`click`]);var pt=e=>{D(e,mt())},mt=s(`<svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg>`),ht=E(`<span class="chat-selectors svelte-66bgq1"><!> <!></span>`),gt=E(`<header class="navbar svelte-66bgq1"><div class="navbar-inner svelte-66bgq1"><a class="navbar-brand svelte-66bgq1" href="/chat" aria-label="OpenPalm — go to chat"><span class="brand-icon svelte-66bgq1" aria-hidden="true"><img src="/logo-128.png" alt="" class="svelte-66bgq1"/></span> <span class="brand-text svelte-66bgq1">OpenPalm</span></a> <div class="navbar-actions svelte-66bgq1"><!> <!> <!> <!> <!></div></div></header>`);function _t(e,t){b(t,!0);let r=j(()=>q.url?.pathname??``),i=j(()=>o(r)===`/admin`||o(r).startsWith(`/admin/`)),s=j(()=>o(r)===`/chat`||o(r).startsWith(`/chat/`)),c=j(()=>o(r)===`/advanced`||o(r).startsWith(`/advanced/`)),l=j(()=>Me($.active?.url));var u=gt(),d=a(u),f=h(a(d),2),p=a(f),m=e=>{Y(e,{href:`/chat`,ariaLabel:`Back to chat`,title:`Chat`,get icon(){return pt}})};n(p,e=>{o(i)&&e(m)});var g=h(p,2);Te(g,{get showManageAssistant(){return o(l)}});var _=h(g,2),v=e=>{var t=ht(),n=a(t);Be(n,{}),tt(h(n,2),{}),O(t),D(e,t)};n(_,e=>{o(s)&&e(v)});var y=h(_,2),x=e=>{_e(e,{})};n(y,e=>{(o(s)||o(c))&&e(x)}),ft(h(y,2),{}),O(f),O(d),O(u),D(e,u),T()}export{Q as a,se as c,$ as i,$e as n,X as o,Re as r,Y as s,_t as t};
|
|
5
|
+
`);o=i.pop()??``;for(let t of i){if(!t)continue;let n=ke(t);if(n.id!==void 0&&(r=n.id),!n.data)continue;let i;try{i=JSON.parse(n.data)}catch(e){console.warn(`[session-events] Bad JSON in SSE frame`,e);continue}Ae(e,i)}}}finally{try{a.releaseLock()}catch{}}}return(async()=>{let r=0;for(;!t;)try{r++,await a(),r=0,t||await i(500)}catch(a){if(t)return;let o=a instanceof Error?a:Error(String(a));o.name!==`AbortError`&&(console.warn(`[session-events] SSE error, reconnecting`,o),e.onDisconnect?.(o)),await i(Math.min(Ee*2**Math.max(0,r-1),De)),n.signal.aborted&&!t&&(n=new AbortController)}})(),()=>{t=!0;try{n.abort()}catch{}}}function Z(){return{sessions:[],sessionsLoaded:!1,sessionsLoading:!1,sessionsError:``,activeSessionId:null}}var Q=new class{#e=e(_(new Map));get byEndpoint(){return o(this.#e)}set byEndpoint(e){d(this.#e,e,!0)}#t=e(`default`);get activeEndpointId(){return o(this.#t)}set activeEndpointId(e){d(this.#t,e,!0)}#n=e(_([]));get entries(){return o(this.#n)}set entries(e){d(this.#n,e,!0)}#r=e(!1);get entriesLoading(){return o(this.#r)}set entriesLoading(e){d(this.#r,e,!0)}#i=e(!1);get sending(){return o(this.#i)}set sending(e){d(this.#i,e,!0)}#a=e(``);get error(){return o(this.#a)}set error(e){d(this.#a,e,!0)}#o=e(!1);get liveConnected(){return o(this.#o)}set liveConnected(e){d(this.#o,e,!0)}_unsubscribeEvents=null;#s=j(()=>this.byEndpoint.get(this.activeEndpointId)?.activeSessionId??null);get activeSessionId(){return o(this.#s)}set activeSessionId(e){d(this.#s,e)}setEndpointState(e,t){let n={...this.byEndpoint.get(e)??Z(),...t};return this.byEndpoint=new Map(this.byEndpoint).set(e,n),n}async onEndpointChanged(e){if(this.sending){this.error=`Wait for the current reply to finish before switching.`;return}this.activeEndpointId=e,this.entries=[],this.error=``,this.byEndpoint.get(e)?.sessionsLoaded||await this.loadSessions();let t=this.byEndpoint.get(e)??Z(),n=t.sessions,r=t.activeSessionId,i=null;r&&n.some(e=>e.id===r)?i=r:n.length>0&&(i=n[0].id),i!==t.activeSessionId&&this.setEndpointState(e,{activeSessionId:i}),i&&await this.openSession(i),this._resubscribeEvents()}_resubscribeEvents(){if(this._unsubscribeEvents){try{this._unsubscribeEvents()}catch(e){console.warn(`[chat] failed to unsubscribe from previous event stream`,e)}this._unsubscribeEvents=null}this.liveConnected=!1,this._unsubscribeEvents=je({onCreated:e=>{this._onSessionCreated(e)},onUpdated:(e,t)=>{this._onSessionUpdated(e,t)},onDeleted:e=>{this._onSessionDeleted(e)},onConnect:()=>{this.liveConnected=!0},onDisconnect:()=>{this.liveConnected=!1}})}_onSessionCreated(e){let t=this.activeEndpointId,n=this.byEndpoint.get(t)??Z();if(n.sessions.some(t=>t.id===e))return;let r=Date.now(),i={id:e,title:``,createdAt:r,updatedAt:r};this.setEndpointState(t,{sessions:[i,...n.sessions],sessionsLoaded:!0})}_onSessionUpdated(e,t){let n=this.activeEndpointId,r=this.byEndpoint.get(n);if(!r)return;let i=r.sessions.findIndex(t=>t.id===e);if(i===-1)return;let a=r.sessions[i],o=[{...a,title:t?.title??a.title,updatedAt:t?.updatedAt??Date.now()},...r.sessions.filter(t=>t.id!==e)];o.sort((e,t)=>t.updatedAt-e.updatedAt),this.setEndpointState(n,{sessions:o})}async _onSessionDeleted(e){let t=this.activeEndpointId,n=this.byEndpoint.get(t);if(!n||!n.sessions.some(t=>t.id===e))return;let r=n.sessions.filter(t=>t.id!==e),i=n.activeSessionId===e,a=i?r[0]?.id??null:n.activeSessionId;this.setEndpointState(t,{sessions:r,activeSessionId:a}),i&&(this.entries=[],a&&await this.openSession(a))}async loadSessions(){let e=this.activeEndpointId;this.setEndpointState(e,{sessionsLoading:!0,sessionsError:``});try{let t=await L();this.setEndpointState(e,{sessions:t,sessionsLoaded:!0,sessionsLoading:!1,sessionsError:``})}catch(t){let n=t,r=n.status===503||n.status===502?`Assistant is not reachable.`:n.message??`Failed to load sessions.`;this.setEndpointState(e,{sessionsLoading:!1,sessionsError:r})}}async openSession(e){if(this.sending){this.error=`Wait for the current reply to finish before switching.`;return}let t=this.activeEndpointId;this.setEndpointState(t,{activeSessionId:e}),this.entries=[],this.entriesLoading=!0,this.error=``;try{let n=await z(e);this.activeEndpointId===t&&this.byEndpoint.get(t)?.activeSessionId===e&&(this.entries=n)}catch(e){let t=e;t.status===503||t.status===502?this.error=`Assistant is not reachable. Try reconnecting.`:t.status===401?this.error=`Sign-in required.`:this.error=t.message??`Failed to load messages.`}finally{this.entriesLoading=!1}}async startNewSession(){if(this.sending)return this.error=`Wait for the current reply to finish before switching.`,null;let e=this.activeEndpointId;this.error=``;try{let{id:t}=await U(),n=Date.now(),r={id:t,title:``,createdAt:n,updatedAt:n},i=this.byEndpoint.get(e)??Z();return this.setEndpointState(e,{sessions:[r,...i.sessions.filter(e=>e.id!==t)],sessionsLoaded:!0,activeSessionId:t}),this.entries=[],t}catch(e){let t=e;return this.error=`Failed to start session: ${t.message??`unknown error`}`,null}}async send(e){if(this.sending)return;let t=e.trim();if(!t)return;let n=this.activeSessionId;if(!n&&(n=await this.startNewSession(),!n))return;let r={id:crypto.randomUUID(),role:`user`,text:t,timestamp:Date.now()};this.entries=[...this.entries,r],this.error=``,this.sending=!0;try{let e=(await B(n,t)).parts.filter(e=>e.type===`text`&&e.text).map(e=>e.text??``).join(``),r={id:crypto.randomUUID(),role:`assistant`,text:e||`(no response)`,timestamp:Date.now()};this.entries=[...this.entries,r];let i=this.activeEndpointId,a=this.byEndpoint.get(i);if(a){let e=Date.now(),t=a.sessions.find(e=>e.id===n),r=t?{...t,updatedAt:e}:{id:n,title:``,createdAt:e,updatedAt:e},o=a.sessions.filter(e=>e.id!==n);this.setEndpointState(i,{sessions:[r,...o]})}K.ttsSupported&&K.ttsAutoEnabled&&e&&ne(e)}catch(e){let t=e;t.status===503||t.status===502?(this.error=`Assistant is not reachable. Try reconnecting.`,this.setEndpointState(this.activeEndpointId,{activeSessionId:null})):t.status===401?this.error=`Sign-in required.`:this.error=t.message??`Message failed.`}finally{this.sending=!1}}reset(){if(W(),this.entries=[],this.error=``,this.byEndpoint=new Map,this._unsubscribeEvents){try{this._unsubscribeEvents()}catch(e){console.warn(`[chat] failed to unsubscribe from event stream during reset`,e)}this._unsubscribeEvents=null}this.liveConnected=!1}},$=new class{#e=e(_([]));get endpoints(){return o(this.#e)}set endpoints(e){d(this.#e,e,!0)}#t=e(`default`);get activeId(){return o(this.#t)}set activeId(e){d(this.#t,e,!0)}#n=e(!1);get loading(){return o(this.#n)}set loading(e){d(this.#n,e,!0)}#r=e(!1);get loaded(){return o(this.#r)}set loaded(e){d(this.#r,e,!0)}#i=e(``);get error(){return o(this.#i)}set error(e){d(this.#i,e,!0)}#a=j(()=>this.endpoints.find(e=>e.id===this.activeId)??this.endpoints[0]??null);get active(){return o(this.#a)}set active(e){d(this.#a,e)}async load(e=!1){if(!this.loading&&!(this.loaded&&!e)){this.loading=!0,this.error=``;try{let{endpoints:e,activeId:t}=await I();this.endpoints=e,this.activeId=t,this.loaded=!0}catch(e){let t=e;t.status!==401&&(this.error=t.message??`Failed to load endpoints`)}finally{this.loading=!1}}}async activate(e){if(e===this.activeId)return;if(Q.sending)throw this.error=`Wait for the current reply to finish before switching.`,Error(this.error);let t=this.activeId;this.activeId=e;try{await R(e),await Q.onEndpointChanged(e)}catch(e){this.activeId=t;let n=e;throw this.error=n.message??`Failed to switch endpoint`,e}}};function Me(e){if(!e)return!0;try{let t=new URL(e).hostname;return t===`localhost`||t===`127.0.0.1`||t===`::1`||t===`host.docker.internal`}catch{return!0}}var Ne=E(`<p class="list-error svelte-dlw00e" role="alert"> </p>`),Pe=E(`<span class="sr-only svelte-dlw00e">(current)</span>`),Fe=E(`<button type="button"><span class="item-text svelte-dlw00e"><span class="item-label svelte-dlw00e"> <!></span> <span class="item-url svelte-dlw00e"> </span></span></button>`),Ie=E(`<a class="list-item link svelte-dlw00e" href="/admin">Manage this assistant…</a>`),Le=E(`<div class="endpoint-list svelte-dlw00e"><!> <div class="group" role="group" aria-label="Assistant endpoints"></div> <div class="divider svelte-dlw00e"></div> <!> <a class="list-item link svelte-dlw00e" href="/admin/endpoints">Manage assistant connections…</a></div>`);function Re(t,s){b(s,!0);let c=j(()=>$.active),u=j(()=>$.endpoints),f=j(()=>Me(o(c)?.url)),m=e(!1);async function g(e){if(!o(m)){if(e===o(c)?.id){s.onChosen?.();return}d(m,!0);try{await $.activate(e),s.onChosen?.()}catch{}finally{d(m,!1)}}}var _=Le(),v=a(_),y=e=>{var t=Ne(),n=a(t,!0);O(t),i(()=>l(n,$.error)),D(e,t)};n(v,e=>{$.error&&e(y)});var x=h(v,2);p(x,21,()=>o(u),e=>e.id,(e,t)=>{var s=Fe();let u;var d=a(s),f=a(d),p=a(f,!0),_=h(p),v=e=>{D(e,Pe())};n(_,e=>{o(t).id===o(c)?.id&&e(v)}),O(f);var y=h(f,2),b=a(y,!0);O(y),O(d),O(s),i(()=>{u=M(s,1,`list-item svelte-dlw00e`,null,u,{active:o(t).id===o(c)?.id}),S(s,`aria-current`,o(t).id===o(c)?.id?`true`:void 0),s.disabled=o(m),l(p,o(t).label),l(b,o(t).url)}),r(`click`,s,()=>g(o(t).id)),D(e,s)}),O(x);var C=h(x,4),w=e=>{var t=Ie();r(`click`,t,()=>s.onChosen?.()),D(e,t)};n(C,e=>{o(f)&&e(w)});var E=h(C,2);O(_),r(`click`,E,()=>s.onChosen?.()),D(t,_),T()}u([`click`]);var ze=E(`<button type="button" class="trigger svelte-48xr05" aria-haspopup="dialog"><svg class="trigger-icon svelte-48xr05" 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"><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> <span class="dot svelte-48xr05" aria-hidden="true"></span> <span class="label svelte-48xr05"> </span> <span class="caret svelte-48xr05" aria-hidden="true">▾</span></button> <!>`,1);function Be(t,n){b(n,!0);let s=e(!1),c=j(()=>$.active);A(()=>{$.load()});var u=ze(),f=g(u),p=h(a(f),4),m=a(p,!0);O(p),x(2),O(f),X(h(f,2),{get open(){return o(s)},title:`Assistant endpoint`,onClose:()=>d(s,!1),width:`26rem`,children:(e,t)=>{Re(e,{onChosen:()=>d(s,!1)})},$$slots:{default:!0}}),i(()=>{S(f,`aria-expanded`,o(s)),S(f,`aria-label`,o(c)?`Assistant endpoint: ${o(c).label}`:`Assistant endpoints`),S(f,`title`,o(c)?`Connected to: ${o(c).label} (${o(c).url})`:`Assistant endpoints`),f.disabled=$.loading,l(m,o(c)?.label??`Endpoint…`)}),r(`click`,f,()=>d(s,!0)),D(t,u),T()}u([`click`]);var Ve=/^New session - (\d{4}-\d{2}-\d{2}T[0-9:.]+Z?)$/;function He(e){let t=(e??``).trim();if(!t)return`Untitled session`;let n=Ve.exec(t);if(n){let e=Date.parse(n[1]);if(!Number.isNaN(e))return ce(e)}return t}function Ue(e,t){b(t,!0);let n=j(()=>He(t.title));x();var r=c();i(()=>l(r,o(n))),D(e,r),T()}var We=E(`<div class="notice svelte-1o6rxhb">Wait for the current reply to finish before switching.</div>`),Ge=E(`<div class="empty svelte-1o6rxhb"><!><span>Loading sessions…</span></div>`),Ke=E(`<div class="list-error svelte-1o6rxhb"><span class="svelte-1o6rxhb"> </span> <button type="button" class="retry-btn svelte-1o6rxhb">Retry</button></div>`),qe=E(`<div class="empty svelte-1o6rxhb">No sessions yet. Start the first one.</div>`),Je=E(`<span class="sr-only svelte-1o6rxhb">(current)</span>`),Ye=E(`<button type="button"><span class="item-text svelte-1o6rxhb"><span class="item-label svelte-1o6rxhb"><!><!></span> <span class="item-meta svelte-1o6rxhb"> </span></span></button>`),Xe=E(`<button type="button" class="show-all svelte-1o6rxhb"> </button>`),Ze=E(`<div class="session-list svelte-1o6rxhb" role="group" aria-label="Sessions"></div> <!>`,1),Qe=E(`<div class="session-body svelte-1o6rxhb"><!> <!> <div class="divider svelte-1o6rxhb"></div> <button type="button" class="list-item new-btn svelte-1o6rxhb"><span class="check svelte-1o6rxhb" aria-hidden="true">+</span> <span class="item-text svelte-1o6rxhb"><span class="item-label svelte-1o6rxhb">New session</span></span></button></div>`);function $e(t,s){b(s,!0);let c=e(!1),u=j(()=>$.active),f=j(()=>o(u)?Q.byEndpoint.get(o(u).id)??null:null),m=j(()=>o(f)?.sessions??[]),_=j(()=>o(f)?.sessionsLoading??!1),v=j(()=>o(f)?.sessionsError??``),y=j(()=>Q.activeSessionId),C=j(()=>o(c)?o(m):o(m).slice(0,50)),w=j(()=>Math.max(0,o(m).length-50));A(()=>{o(u)&&!o(f)?.sessionsLoaded&&!o(_)&&Q.loadSessions()});async function E(e){Q.sending||(await Q.openSession(e),s.onChosen?.())}async function k(){Q.sending||(await Q.startNewSession(),s.onChosen?.())}async function N(){await Q.loadSessions()}var P=Qe(),F=a(P),I=e=>{D(e,We())};n(F,e=>{Q.sending&&e(I)});var L=h(F,2),R=e=>{var t=Ge();ae(a(t),{size:12}),x(),O(t),D(e,t)},z=e=>{var t=Ke(),n=a(t),s=a(n,!0);O(n);var c=h(n,2);O(t),i(()=>l(s,o(v))),r(`click`,c,N),D(e,t)},B=e=>{D(e,qe())},V=e=>{var t=Ze(),s=g(t);p(s,21,()=>o(C),e=>e.id,(e,t)=>{var s=Ye();let c;var u=a(s),d=a(u),f=a(d);Ue(f,{get title(){return o(t).title}});var p=h(f),m=e=>{D(e,Je())};n(p,e=>{o(t).id===o(y)&&e(m)}),O(d);var g=h(d,2),_=a(g,!0);O(g),O(u),O(s),i((e,n)=>{c=M(s,1,`list-item session-item svelte-1o6rxhb`,null,c,{active:o(t).id===o(y)}),S(s,`aria-current`,o(t).id===o(y)?`true`:void 0),s.disabled=Q.sending,S(s,`title`,e),l(_,n)},[()=>ce(o(t).updatedAt),()=>le(o(t).updatedAt)]),r(`click`,s,()=>E(o(t).id)),D(e,s)}),O(s);var u=h(s,2),f=e=>{var t=Xe(),n=a(t);O(t),i(()=>l(n,`Show all (${o(w)??``} more)`)),r(`click`,t,()=>d(c,!0)),D(e,t)};n(u,e=>{!o(c)&&o(w)>0&&e(f)}),D(e,t)};n(L,e=>{o(_)?e(R):o(v)?e(z,1):o(m).length===0?e(B,2):e(V,-1)});var H=h(L,4);O(P),i(()=>H.disabled=Q.sending),r(`click`,H,k),D(t,P),T()}u([`click`]);var et=E(`<button type="button" class="trigger svelte-cihcnl" aria-haspopup="dialog" aria-label="Sessions"><svg class="trigger-icon svelte-cihcnl" 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"><path d="M14 9a2 2 0 0 1-2 2H6l-4 4V4c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2z"></path><path d="M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1"></path></svg> <span aria-hidden="true"></span> <span class="label svelte-cihcnl"> </span> <span class="caret svelte-cihcnl" aria-hidden="true">▾</span></button> <!>`,1);function tt(t,n){b(n,!0);let s=e(!1),c=j(()=>$.active),u=j(()=>o(c)?Q.byEndpoint.get(o(c).id)??null:null),f=j(()=>o(u)?.sessions??[]),p=j(()=>Q.activeSessionId),m=j(()=>Q.liveConnected),_=j(()=>o(f).find(e=>e.id===o(p))??null),v=j(()=>o(_)?He(o(_).title):`New session`);var y=et(),C=g(y),w=h(a(C),2);let E;var k=h(w,2),A=a(k,!0);O(k),x(2),O(C);var N=h(C,2);{let e=j(()=>o(c)?.label??`this endpoint`);X(N,{get open(){return o(s)},get title(){return`Sessions on ${o(e)??``}`},onClose:()=>d(s,!1),width:`26rem`,children:(e,t)=>{$e(e,{onChosen:()=>d(s,!1)})},$$slots:{default:!0}})}i(()=>{S(C,`aria-expanded`,o(s)),S(C,`title`,o(v)),E=M(w,1,`dot svelte-cihcnl`,null,E,{connected:o(m)}),S(w,`title`,o(m)?`Live updates connected`:`Live updates disconnected`),l(A,o(v))}),r(`click`,C,()=>d(s,!0)),D(t,y),T()}u([`click`]);var nt=E(`<span class="voice-interim svelte-7elv0w" aria-hidden="true"> </span>`),rt=E(`<button type="button" class="voice-autoplay-banner svelte-7elv0w" aria-label="Resume paused audio" title="Audio was blocked by the browser. Click to resume."><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" class="svelte-7elv0w"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5" class="svelte-7elv0w"></polygon><line x1="23" y1="9" x2="17" y2="15" class="svelte-7elv0w"></line><line x1="17" y1="9" x2="23" y2="15" class="svelte-7elv0w"></line></svg> <span class="svelte-7elv0w">Audio paused — click to resume</span></button>`),it=s(`<path d="M15.54 8.46a5 5 0 0 1 0 7.07"></path><path d="M19.07 4.93a10 10 0 0 1 0 14.14"></path>`,1),at=s(`<line x1="23" y1="9" x2="17" y2="15" class="svelte-7elv0w"></line><line x1="17" y1="9" x2="23" y2="15" class="svelte-7elv0w"></line>`,1),ot=E(`<button><svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5" class="svelte-7elv0w"></polygon><!></svg></button>`),st=s(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><line x1="1" y1="1" x2="23" y2="23" class="svelte-7elv0w"></line><path d="M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6" class="svelte-7elv0w"></path><path d="M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23" class="svelte-7elv0w"></path><line x1="12" y1="19" x2="12" y2="23" class="svelte-7elv0w"></line><line x1="8" y1="23" x2="16" y2="23" class="svelte-7elv0w"></line></svg>`),ct=E(`<span class="voice-spinner svelte-7elv0w" aria-hidden="true"></span>`),lt=E(`<svg aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="currentColor" class="svelte-7elv0w"><rect x="6" y="6" width="12" height="12" rx="1.5" class="svelte-7elv0w"></rect></svg> <span class="voice-pulse svelte-7elv0w" aria-hidden="true"></span>`,1),ut=s(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z" class="svelte-7elv0w"></path><path d="M19 10v2a7 7 0 0 1-14 0v-2" class="svelte-7elv0w"></path><line x1="12" y1="19" x2="12" y2="23" class="svelte-7elv0w"></line><line x1="8" y1="23" x2="16" y2="23" class="svelte-7elv0w"></line></svg>`),dt=E(`<div class="voice-control svelte-7elv0w" role="toolbar" aria-label="Voice controls"><!> <!> <!> <button><!></button> <span class="sr-only svelte-7elv0w" aria-live="polite"> </span></div>`);function ft(t,s){b(s,!0);let c=e(!1),u=null;A(()=>{re().then(()=>{d(c,!0)}),u=window.openpalm?.onGlobalMicToggle?.(()=>{w()})??null}),k(()=>{typeof window<`u`&&window.openpalm?.setTrayMicRecording?.(!1),u?.(),u=null,te()}),m(()=>{o(c)&&window.openpalm?.setTrayMicRecording?.(o(_))});let f=j(()=>o(c)&&K.sttEngine!==`disabled`&&K.sttSupported),p=j(()=>o(c)&&K.ttsSupported),_=j(()=>K.status===`recording`),v=j(()=>K.status===`transcribing`),y=j(()=>!o(_)&&!o(v)&&Q.sending),C=j(()=>K.status===`speaking`);async function w(){if(o(y))return;if(o(_)){H();return}if(o(v))return;W();let e=window.openpalm;if(e?.requestMicPermission){let t=await e.requestMicPermission();if(t===`denied-no-prompt`){K.errorMessage=`This OpenPalm build cannot request microphone access on macOS. Please update to the latest version of the desktop app.`;return}if(t===`denied`||t===`restricted`){K.errorMessage=`Microphone access is turned off. In the System Settings window that just opened, enable OpenPalm under Microphone, then quit and reopen the app.`;return}}ie(e=>{let t=e.trim();t&&Q.send(t)})}function E(){V(!K.ttsAutoEnabled)}var N=dt(),P=a(N),F=e=>{var t=nt(),n=a(t,!0);O(t),i(e=>{S(t,`title`,K.interimTranscript),l(n,e)},[()=>K.interimTranscript.length>48?K.interimTranscript.slice(0,48)+`…`:K.interimTranscript]),D(e,t)};n(P,e=>{o(_)&&K.interimTranscript&&e(F)});var I=h(P,2),L=e=>{var t=rt();r(`click`,t,()=>ee()),D(e,t)};n(I,e=>{K.autoplayBlocked&&e(L)});var R=h(I,2),z=e=>{var t=ot();let s;var c=a(t),l=h(a(c)),u=e=>{var t=it(),n=g(t);let r;var a=h(n);let s;i(()=>{r=M(n,0,`svelte-7elv0w`,null,r,{"wave-anim":o(C)}),s=M(a,0,`svelte-7elv0w`,null,s,{"wave-anim-2":o(C)})}),D(e,t)},d=e=>{var t=at();x(),D(e,t)};n(l,e=>{K.ttsAutoEnabled?e(u):e(d,-1)}),O(c),O(t),i(()=>{s=M(t,1,`voice-btn svelte-7elv0w`,null,s,{"voice-btn-on":K.ttsAutoEnabled,"voice-btn-speaking":o(C)}),S(t,`aria-label`,K.ttsAutoEnabled?`Turn off spoken responses`:`Turn on spoken responses`),S(t,`aria-pressed`,K.ttsAutoEnabled),S(t,`title`,o(C)?`Speaking — click to turn off spoken responses`:K.ttsAutoEnabled?`Spoken responses are on — click to turn off`:`Spoken responses are off — click to turn on`)}),r(`click`,t,E),D(e,t)};n(R,e=>{o(p)&&e(z)});var B=h(R,2);let U;var ne=a(B),G=e=>{D(e,st())},q=e=>{D(e,ct())},ae=e=>{var t=lt();x(2),D(e,t)},oe=e=>{D(e,ut())};n(ne,e=>{o(f)?o(v)||o(y)?e(q,1):o(_)?e(ae,2):e(oe,-1):e(G)}),O(B);var J=h(B,2),se=a(J,!0);O(J),O(N),i(()=>{U=M(B,1,`voice-btn svelte-7elv0w`,null,U,{"voice-btn-active":o(_),"voice-btn-processing":o(y)||o(v),"voice-btn-disabled":!o(f)}),B.disabled=!o(f)||o(y),S(B,`aria-label`,o(f)?o(_)?`Stop recording`:o(v)?`Transcribing…`:o(y)?`Sending message…`:`Start recording`:`Voice input unavailable`),S(B,`aria-pressed`,o(_)),S(B,`title`,o(f)?o(_)?`Stop recording`:o(v)?`Transcribing…`:o(y)?`Sending message…`:`Speak — message will be sent to the selected assistant`:`Voice input is unavailable — no speech-to-text engine is configured for this browser`),l(se,o(_)&&K.interimTranscript?K.interimTranscript:o(_)?`Recording`:o(v)?`Transcribing`:o(y)?`Sending message to assistant`:o(C)?`Assistant is speaking`:K.ttsAutoEnabled?`Spoken responses on`:``)}),r(`click`,B,w),D(t,N),T()}u([`click`]);var pt=e=>{D(e,mt())},mt=s(`<svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg>`),ht=E(`<span class="chat-selectors svelte-66bgq1"><!> <!></span>`),gt=E(`<header class="navbar svelte-66bgq1"><div class="navbar-inner svelte-66bgq1"><a class="navbar-brand svelte-66bgq1" href="/chat" aria-label="OpenPalm — go to chat"><span class="brand-icon svelte-66bgq1" aria-hidden="true"><img src="/logo-128.png" alt="" class="svelte-66bgq1"/></span> <span class="brand-text svelte-66bgq1">OpenPalm</span></a> <div class="navbar-actions svelte-66bgq1"><!> <!> <!> <!> <!></div></div></header>`);function _t(e,t){b(t,!0);let r=j(()=>q.url?.pathname??``),i=j(()=>o(r)===`/admin`||o(r).startsWith(`/admin/`)),s=j(()=>o(r)===`/chat`||o(r).startsWith(`/chat/`)),c=j(()=>o(r)===`/advanced`||o(r).startsWith(`/advanced/`)),l=j(()=>Me($.active?.url));var u=gt(),d=a(u),f=h(a(d),2),p=a(f),m=e=>{Y(e,{href:`/chat`,ariaLabel:`Back to chat`,title:`Chat`,get icon(){return pt}})};n(p,e=>{o(i)&&e(m)});var g=h(p,2);Te(g,{get showManageAssistant(){return o(l)}});var _=h(g,2),v=e=>{var t=ht(),n=a(t);Be(n,{}),tt(h(n,2),{}),O(t),D(e,t)};n(_,e=>{o(s)&&e(v)});var y=h(_,2),x=e=>{_e(e,{})};n(y,e=>{(o(s)||o(c))&&e(x)}),ft(h(y,2),{}),O(f),O(d),O(u),D(e,u),T()}export{Q as a,se as c,$ as i,$e as n,X as o,Re as r,Y as s,_t as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./0swOyi-5.js";import{a as e,i as t,o as n}from"./
|
|
1
|
+
import"./0swOyi-5.js";import{a as e,i as t,o as n}from"./DGd1H7f6.js";var r={get data(){return n.data},get error(){return n.error},get form(){return n.form},get params(){return n.params},get route(){return n.route},get state(){return n.state},get status(){return n.status},get url(){return n.url}};Object.defineProperty({get from(){return e.current?e.current.from:null},get to(){return e.current?e.current.to:null},get type(){return e.current?e.current.type:null},get willUnload(){return e.current?e.current.willUnload:null},get delta(){return e.current?e.current.delta:null},get complete(){return e.current?e.current.complete:null}},"current",{get(){throw Error(`Replace navigating.current.<prop> with navigating.<prop>`)}}),t.updated.check;var i=r;export{i as t};
|
|
Binary file
|
|
Binary file
|