@gatanot/qualia_web 0.1.0
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/client/_app/immutable/assets/0.BlmLthUu.css +1 -0
- package/build/client/_app/immutable/assets/0.BlmLthUu.css.br +0 -0
- package/build/client/_app/immutable/assets/0.BlmLthUu.css.gz +0 -0
- package/build/client/_app/immutable/assets/2.C6F1hpzI.css +1 -0
- package/build/client/_app/immutable/assets/2.C6F1hpzI.css.br +0 -0
- package/build/client/_app/immutable/assets/2.C6F1hpzI.css.gz +0 -0
- package/build/client/_app/immutable/assets/3.D8sLuVpx.css +1 -0
- package/build/client/_app/immutable/assets/3.D8sLuVpx.css.br +0 -0
- package/build/client/_app/immutable/assets/3.D8sLuVpx.css.gz +0 -0
- package/build/client/_app/immutable/assets/4.1xWrYHn4.css +1 -0
- package/build/client/_app/immutable/assets/4.1xWrYHn4.css.br +0 -0
- package/build/client/_app/immutable/assets/4.1xWrYHn4.css.gz +0 -0
- package/build/client/_app/immutable/assets/5.K6sy6bnZ.css +1 -0
- package/build/client/_app/immutable/assets/5.K6sy6bnZ.css.br +0 -0
- package/build/client/_app/immutable/assets/5.K6sy6bnZ.css.gz +0 -0
- package/build/client/_app/immutable/assets/ChatInput.CmxPxwkj.css +1 -0
- package/build/client/_app/immutable/assets/ChatInput.CmxPxwkj.css.br +0 -0
- package/build/client/_app/immutable/assets/ChatInput.CmxPxwkj.css.gz +0 -0
- package/build/client/_app/immutable/assets/KaTeX_AMS-Regular.BQhdFMY1.woff2 +0 -0
- package/build/client/_app/immutable/assets/KaTeX_AMS-Regular.DMm9YOAa.woff +0 -0
- package/build/client/_app/immutable/assets/KaTeX_AMS-Regular.DRggAlZN.ttf +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Caligraphic-Bold.ATXxdsX0.ttf +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Caligraphic-Bold.BEiXGLvX.woff +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2 +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Caligraphic-Regular.CTRA-rTL.woff +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2 +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Caligraphic-Regular.wX97UBjC.ttf +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Fraktur-Bold.BdnERNNW.ttf +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Fraktur-Bold.BsDP51OF.woff +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Fraktur-Bold.CL6g_b3V.woff2 +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Fraktur-Regular.CB_wures.ttf +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Fraktur-Regular.CTYiF6lA.woff2 +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Fraktur-Regular.Dxdc4cR9.woff +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Main-Bold.Cx986IdX.woff2 +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Main-Bold.Jm3AIy58.woff +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Main-Bold.waoOVXN0.ttf +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2 +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Main-BoldItalic.DzxPMmG6.ttf +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Main-BoldItalic.SpSLRI95.woff +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Main-Italic.3WenGoN9.ttf +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Main-Italic.BMLOBm91.woff +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Main-Italic.NWA7e6Wa.woff2 +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Main-Regular.B22Nviop.woff2 +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Main-Regular.Dr94JaBh.woff +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Main-Regular.ypZvNtVU.ttf +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Math-BoldItalic.B3XSjfu4.ttf +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2 +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Math-BoldItalic.iY-2wyZ7.woff +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Math-Italic.DA0__PXp.woff +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Math-Italic.flOr_0UB.ttf +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Math-Italic.t53AETM-.woff2 +0 -0
- package/build/client/_app/immutable/assets/KaTeX_SansSerif-Bold.CFMepnvq.ttf +0 -0
- package/build/client/_app/immutable/assets/KaTeX_SansSerif-Bold.D1sUS0GD.woff2 +0 -0
- package/build/client/_app/immutable/assets/KaTeX_SansSerif-Bold.DbIhKOiC.woff +0 -0
- package/build/client/_app/immutable/assets/KaTeX_SansSerif-Italic.C3H0VqGB.woff2 +0 -0
- package/build/client/_app/immutable/assets/KaTeX_SansSerif-Italic.DN2j7dab.woff +0 -0
- package/build/client/_app/immutable/assets/KaTeX_SansSerif-Italic.YYjJ1zSn.ttf +0 -0
- package/build/client/_app/immutable/assets/KaTeX_SansSerif-Regular.BNo7hRIc.ttf +0 -0
- package/build/client/_app/immutable/assets/KaTeX_SansSerif-Regular.CS6fqUqJ.woff +0 -0
- package/build/client/_app/immutable/assets/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2 +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Script-Regular.C5JkGWo-.ttf +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Script-Regular.D3wIWfF6.woff2 +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Script-Regular.D5yQViql.woff +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Size1-Regular.C195tn64.woff +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Size1-Regular.Dbsnue_I.ttf +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Size1-Regular.mCD8mA8B.woff2 +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Size2-Regular.B7gKUWhC.ttf +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Size2-Regular.Dy4dx90m.woff2 +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Size2-Regular.oD1tc_U0.woff +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Size3-Regular.CTq5MqoE.woff +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Size3-Regular.DgpXs0kz.ttf +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Size4-Regular.BF-4gkZK.woff +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Size4-Regular.DWFBv043.ttf +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Size4-Regular.Dl5lxZxV.woff2 +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Typewriter-Regular.C0xS9mPB.woff +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Typewriter-Regular.CO6r4hn1.woff2 +0 -0
- package/build/client/_app/immutable/assets/KaTeX_Typewriter-Regular.D3Ib7_Hf.ttf +0 -0
- package/build/client/_app/immutable/chunks/B39M1lOz.js +3 -0
- package/build/client/_app/immutable/chunks/B39M1lOz.js.br +0 -0
- package/build/client/_app/immutable/chunks/B39M1lOz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BMcRbUT8.js +3 -0
- package/build/client/_app/immutable/chunks/BMcRbUT8.js.br +0 -0
- package/build/client/_app/immutable/chunks/BMcRbUT8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BN2zEB6w.js +1 -0
- package/build/client/_app/immutable/chunks/BN2zEB6w.js.br +0 -0
- package/build/client/_app/immutable/chunks/BN2zEB6w.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BVDlhZK_.js +1 -0
- package/build/client/_app/immutable/chunks/BVDlhZK_.js.br +2 -0
- package/build/client/_app/immutable/chunks/BVDlhZK_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CxmPiQW9.js +1 -0
- package/build/client/_app/immutable/chunks/CxmPiQW9.js.br +0 -0
- package/build/client/_app/immutable/chunks/CxmPiQW9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DAIlYrs_.js +1 -0
- package/build/client/_app/immutable/chunks/DAIlYrs_.js.br +0 -0
- package/build/client/_app/immutable/chunks/DAIlYrs_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ir23lSxH.js +329 -0
- package/build/client/_app/immutable/chunks/Ir23lSxH.js.br +0 -0
- package/build/client/_app/immutable/chunks/Ir23lSxH.js.gz +0 -0
- package/build/client/_app/immutable/chunks/gZTJ0hjf.js +1 -0
- package/build/client/_app/immutable/chunks/gZTJ0hjf.js.br +0 -0
- package/build/client/_app/immutable/chunks/gZTJ0hjf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/idCMFvY6.js +1 -0
- package/build/client/_app/immutable/chunks/idCMFvY6.js.br +2 -0
- package/build/client/_app/immutable/chunks/idCMFvY6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/kNaey6uv.js +1 -0
- package/build/client/_app/immutable/chunks/kNaey6uv.js.br +0 -0
- package/build/client/_app/immutable/chunks/kNaey6uv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/xihTtKlq.js +1 -0
- package/build/client/_app/immutable/chunks/xihTtKlq.js.br +1 -0
- package/build/client/_app/immutable/chunks/xihTtKlq.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.CAKAEcgA.js +2 -0
- package/build/client/_app/immutable/entry/app.CAKAEcgA.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CAKAEcgA.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.BSM2k8tg.js +1 -0
- package/build/client/_app/immutable/entry/start.BSM2k8tg.js.br +0 -0
- package/build/client/_app/immutable/entry/start.BSM2k8tg.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.fnpvsEAN.js +1 -0
- package/build/client/_app/immutable/nodes/0.fnpvsEAN.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.fnpvsEAN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.CLtaTeie.js +1 -0
- package/build/client/_app/immutable/nodes/1.CLtaTeie.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.CLtaTeie.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.BwxFyRtn.js +1 -0
- package/build/client/_app/immutable/nodes/2.BwxFyRtn.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.BwxFyRtn.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.D2KZBL5g.js +4 -0
- package/build/client/_app/immutable/nodes/3.D2KZBL5g.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.D2KZBL5g.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.B6LN5K9i.js +1 -0
- package/build/client/_app/immutable/nodes/4.B6LN5K9i.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.B6LN5K9i.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.CVHYq0o4.js +10 -0
- package/build/client/_app/immutable/nodes/5.CVHYq0o4.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.CVHYq0o4.js.gz +0 -0
- package/build/client/_app/version.json +1 -0
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/client/robots.txt +3 -0
- package/build/client/robots.txt.br +0 -0
- package/build/client/robots.txt.gz +0 -0
- package/build/env.js +70 -0
- package/build/env.js.map +1 -0
- package/build/handler.js +17 -0
- package/build/handler.js.map +1 -0
- package/build/index.js +140 -0
- package/build/index.js.map +1 -0
- package/build/server/chunks/0-CF_dr3E0.js +9 -0
- package/build/server/chunks/0-CF_dr3E0.js.map +1 -0
- package/build/server/chunks/1-CVoEVbhQ.js +9 -0
- package/build/server/chunks/1-CVoEVbhQ.js.map +1 -0
- package/build/server/chunks/2-BzhQC8cX.js +38 -0
- package/build/server/chunks/2-BzhQC8cX.js.map +1 -0
- package/build/server/chunks/3-CukYFw9L.js +9 -0
- package/build/server/chunks/3-CukYFw9L.js.map +1 -0
- package/build/server/chunks/4-4e_Gaah7.js +9 -0
- package/build/server/chunks/4-4e_Gaah7.js.map +1 -0
- package/build/server/chunks/5-B4fCEv4c.js +9 -0
- package/build/server/chunks/5-B4fCEv4c.js.map +1 -0
- package/build/server/chunks/ChatInput-GWTgCE1t.js +122 -0
- package/build/server/chunks/ChatInput-GWTgCE1t.js.map +1 -0
- package/build/server/chunks/_layout.svelte-MrMdtdjr.js +232 -0
- package/build/server/chunks/_layout.svelte-MrMdtdjr.js.map +1 -0
- package/build/server/chunks/_page.svelte-CfQFFres.js +64 -0
- package/build/server/chunks/_page.svelte-CfQFFres.js.map +1 -0
- package/build/server/chunks/_page.svelte-CgTaVEr0.js +189 -0
- package/build/server/chunks/_page.svelte-CgTaVEr0.js.map +1 -0
- package/build/server/chunks/_page.svelte-DEDJBB4D.js +602 -0
- package/build/server/chunks/_page.svelte-DEDJBB4D.js.map +1 -0
- package/build/server/chunks/_page.svelte-OC4xDCWu.js +67 -0
- package/build/server/chunks/_page.svelte-OC4xDCWu.js.map +1 -0
- package/build/server/chunks/_server.ts-BG3v883h.js +115 -0
- package/build/server/chunks/_server.ts-BG3v883h.js.map +1 -0
- package/build/server/chunks/_server.ts-C1hU_FnX.js +28 -0
- package/build/server/chunks/_server.ts-C1hU_FnX.js.map +1 -0
- package/build/server/chunks/_server.ts-CJOrsy4y.js +30 -0
- package/build/server/chunks/_server.ts-CJOrsy4y.js.map +1 -0
- package/build/server/chunks/_server.ts-Co2FAQm2.js +43 -0
- package/build/server/chunks/_server.ts-Co2FAQm2.js.map +1 -0
- package/build/server/chunks/_server.ts-D6NGuqud.js +106 -0
- package/build/server/chunks/_server.ts-D6NGuqud.js.map +1 -0
- package/build/server/chunks/_server.ts-DaHUgm60.js +26 -0
- package/build/server/chunks/_server.ts-DaHUgm60.js.map +1 -0
- package/build/server/chunks/_server.ts-DiHyx5ij.js +64 -0
- package/build/server/chunks/_server.ts-DiHyx5ij.js.map +1 -0
- package/build/server/chunks/_server.ts-GB-Qo389.js +73 -0
- package/build/server/chunks/_server.ts-GB-Qo389.js.map +1 -0
- package/build/server/chunks/_server.ts-K359HUPL.js +32 -0
- package/build/server/chunks/_server.ts-K359HUPL.js.map +1 -0
- package/build/server/chunks/_server.ts-e4VKCo3M.js +54 -0
- package/build/server/chunks/_server.ts-e4VKCo3M.js.map +1 -0
- package/build/server/chunks/_server.ts-nr6qwbTw.js +42 -0
- package/build/server/chunks/_server.ts-nr6qwbTw.js.map +1 -0
- package/build/server/chunks/chat-confirm-BW2aJ2qz.js +5 -0
- package/build/server/chunks/chat-confirm-BW2aJ2qz.js.map +1 -0
- package/build/server/chunks/chat-steering-DTefLITL.js +5 -0
- package/build/server/chunks/chat-steering-DTefLITL.js.map +1 -0
- package/build/server/chunks/client-BoLIct8q.js +69 -0
- package/build/server/chunks/client-BoLIct8q.js.map +1 -0
- package/build/server/chunks/config-d3FC8naq.js +4907 -0
- package/build/server/chunks/config-d3FC8naq.js.map +1 -0
- package/build/server/chunks/error.svelte-BpxjjtfZ.js +65 -0
- package/build/server/chunks/error.svelte-BpxjjtfZ.js.map +1 -0
- package/build/server/chunks/gateway-DWcUFfHo.js +478 -0
- package/build/server/chunks/gateway-DWcUFfHo.js.map +1 -0
- package/build/server/chunks/handler-BAQYBQgy.js +1454 -0
- package/build/server/chunks/handler-BAQYBQgy.js.map +1 -0
- package/build/server/chunks/hooks.server-C6heBR7o.js +35 -0
- package/build/server/chunks/hooks.server-C6heBR7o.js.map +1 -0
- package/build/server/chunks/index.js-N7Sh42pC.js +11584 -0
- package/build/server/chunks/index.js-N7Sh42pC.js.map +1 -0
- package/build/server/chunks/manifest.js-D2rH2GXr.js +143 -0
- package/build/server/chunks/manifest.js-D2rH2GXr.js.map +1 -0
- package/build/server/chunks/markdown-BYqQ8bKF.js +78593 -0
- package/build/server/chunks/markdown-BYqQ8bKF.js.map +1 -0
- package/build/server/chunks/prompts-tcGD1LCs.js +37 -0
- package/build/server/chunks/prompts-tcGD1LCs.js.map +1 -0
- package/build/server/chunks/session-store-B1Aop0Qn.js +50 -0
- package/build/server/chunks/session-store-B1Aop0Qn.js.map +1 -0
- package/build/server/chunks/stores-D_6JNTkz.js +36 -0
- package/build/server/chunks/stores-D_6JNTkz.js.map +1 -0
- package/build/shims.js +33 -0
- package/build/shims.js.map +1 -0
- package/handler.d.ts +8 -0
- package/package.json +46 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_layout.svelte-MrMdtdjr.js","sources":["../../../.svelte-kit/output/server/entries/pages/_layout.svelte.js"],"sourcesContent":["import { H as attr, U as escape_html, a as ensure_array_like, c as store_get, i as derived, n as attr_class, o as head, r as bind_props, u as unsubscribe_stores } from \"../../chunks/dev.js\";\nimport { t as afterNavigate } from \"../../chunks/client.js\";\nimport { t as page } from \"../../chunks/stores.js\";\nimport \"../../chunks/navigation.js\";\nimport { s as sessions, t as activeWorkspace } from \"../../chunks/session-store.js\";\nimport \"../../chunks/model-picker-state.svelte.js\";\n//#region src/lib/assets/favicon.svg\nvar favicon_default = \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='107'%20height='128'%20viewBox='0%200%20107%20128'%3e%3ctitle%3esvelte-logo%3c/title%3e%3cpath%20d='M94.157%2022.819c-10.4-14.885-30.94-19.297-45.792-9.835L22.282%2029.608A29.92%2029.92%200%200%200%208.764%2049.65a31.5%2031.5%200%200%200%203.108%2020.231%2030%2030%200%200%200-4.477%2011.183%2031.9%2031.9%200%200%200%205.448%2024.116c10.402%2014.887%2030.942%2019.297%2045.791%209.835l26.083-16.624A29.92%2029.92%200%200%200%2098.235%2078.35a31.53%2031.53%200%200%200-3.105-20.232%2030%2030%200%200%200%204.474-11.182%2031.88%2031.88%200%200%200-5.447-24.116'%20style='fill:%23ff3e00'/%3e%3cpath%20d='M45.817%20106.582a20.72%2020.72%200%200%201-22.237-8.243%2019.17%2019.17%200%200%201-3.277-14.503%2018%2018%200%200%201%20.624-2.435l.49-1.498%201.337.981a33.6%2033.6%200%200%200%2010.203%205.098l.97.294-.09.968a5.85%205.85%200%200%200%201.052%203.878%206.24%206.24%200%200%200%206.695%202.485%205.8%205.8%200%200%200%201.603-.704L69.27%2076.28a5.43%205.43%200%200%200%202.45-3.631%205.8%205.8%200%200%200-.987-4.371%206.24%206.24%200%200%200-6.698-2.487%205.7%205.7%200%200%200-1.6.704l-9.953%206.345a19%2019%200%200%201-5.296%202.326%2020.72%2020.72%200%200%201-22.237-8.243%2019.17%2019.17%200%200%201-3.277-14.502%2017.99%2017.99%200%200%201%208.13-12.052l26.081-16.623a19%2019%200%200%201%205.3-2.329%2020.72%2020.72%200%200%201%2022.237%208.243%2019.17%2019.17%200%200%201%203.277%2014.503%2018%2018%200%200%201-.624%202.435l-.49%201.498-1.337-.98a33.6%2033.6%200%200%200-10.203-5.1l-.97-.294.09-.968a5.86%205.86%200%200%200-1.052-3.878%206.24%206.24%200%200%200-6.696-2.485%205.8%205.8%200%200%200-1.602.704L37.73%2051.72a5.42%205.42%200%200%200-2.449%203.63%205.79%205.79%200%200%200%20.986%204.372%206.24%206.24%200%200%200%206.698%202.486%205.8%205.8%200%200%200%201.602-.704l9.952-6.342a19%2019%200%200%201%205.295-2.328%2020.72%2020.72%200%200%201%2022.237%208.242%2019.17%2019.17%200%200%201%203.277%2014.503%2018%2018%200%200%201-8.13%2012.053l-26.081%2016.622a19%2019%200%200%201-5.3%202.328'%20style='fill:%23fff'/%3e%3c/svg%3e\";\n//#endregion\n//#region src/lib/components/SearchDialog.svelte\nfunction SearchDialog($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { sessions, open = false } = $$props;\n\t\tlet keyword = \"\";\n\t\tlet filtered = derived(() => {\n\t\t\tconst kw = keyword.trim().toLowerCase();\n\t\t\tif (!kw) return sessions;\n\t\t\treturn sessions.filter((s) => s.title.toLowerCase().includes(kw));\n\t\t});\n\t\tfunction formatTime(ts) {\n\t\t\tconst d = new Date(ts);\n\t\t\tif ((/* @__PURE__ */ new Date()).getTime() - d.getTime() < 864e5) return d.toLocaleTimeString(\"zh-CN\", {\n\t\t\t\thour: \"2-digit\",\n\t\t\t\tminute: \"2-digit\"\n\t\t\t});\n\t\t\treturn d.toLocaleDateString(\"zh-CN\", {\n\t\t\t\tmonth: \"short\",\n\t\t\t\tday: \"numeric\"\n\t\t\t});\n\t\t}\n\t\tif (open) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<div class=\"search-overlay svelte-jfym0o\" role=\"dialog\"><div class=\"search-panel svelte-jfym0o\" role=\"document\"><div class=\"search-header svelte-jfym0o\"><span class=\"material-symbols-rounded search-icon svelte-jfym0o\">search</span> <input class=\"search-input svelte-jfym0o\" type=\"text\" placeholder=\"搜索对话标题...\"${attr(\"value\", keyword)} autocomplete=\"off\"/> `);\n\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--></div> <div class=\"search-results svelte-jfym0o\">`);\n\t\t\tif (sessions.length === 0) {\n\t\t\t\t$$renderer.push(\"<!--[1-->\");\n\t\t\t\t$$renderer.push(`<div class=\"empty-hint svelte-jfym0o\">暂无对话</div>`);\n\t\t\t} else {\n\t\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<!--[-->`);\n\t\t\t\tconst each_array = ensure_array_like(filtered());\n\t\t\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\t\t\tlet session = each_array[$$index];\n\t\t\t\t\t$$renderer.push(`<button class=\"search-item svelte-jfym0o\"><span class=\"material-symbols-rounded session-icon svelte-jfym0o\">chat_bubble</span> <div class=\"session-info svelte-jfym0o\"><div class=\"session-title svelte-jfym0o\">${escape_html(session.title)}</div> <div class=\"session-time svelte-jfym0o\">${escape_html(formatTime(session.updated_at))}</div></div></button>`);\n\t\t\t\t}\n\t\t\t\t$$renderer.push(`<!--]-->`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--></div></div></div>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]-->`);\n\t\tbind_props($$props, { open });\n\t});\n}\n//#endregion\n//#region src/lib/theme.ts\nfunction getSystemTheme() {\n\tif (typeof window === \"undefined\") return \"light\";\n\treturn window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\n}\nfunction getStoredTheme() {\n\tif (typeof window === \"undefined\") return null;\n\treturn localStorage.getItem(\"qualia-theme\");\n}\nvar current = getStoredTheme() || getSystemTheme();\nfunction getTheme() {\n\treturn current;\n}\n//#endregion\n//#region src/lib/components/SessionSidebar.svelte\nfunction SessionSidebar($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tvar $$store_subs;\n\t\tlet { mobileOpen = false, customIcon = false } = $$props;\n\t\tlet editingId = null;\n\t\tlet editTitle = \"\";\n\t\tlet searchOpen = false;\n\t\tlet themeIcon = getTheme() === \"dark\" ? \"light_mode\" : \"dark_mode\";\n\t\tlet collapsedGroups = /* @__PURE__ */ new Set();\n\t\tafterNavigate(() => {\n\t\t\tmobileOpen = false;\n\t\t});\n\t\tfunction formatTime(ts) {\n\t\t\tconst d = new Date(ts);\n\t\t\tif ((/* @__PURE__ */ new Date()).getTime() - d.getTime() < 864e5) return d.toLocaleTimeString(\"zh-CN\", {\n\t\t\t\thour: \"2-digit\",\n\t\t\t\tminute: \"2-digit\"\n\t\t\t});\n\t\t\treturn d.toLocaleDateString(\"zh-CN\", {\n\t\t\t\tmonth: \"short\",\n\t\t\t\tday: \"numeric\"\n\t\t\t});\n\t\t}\n\t\tfunction wsLabel(ws) {\n\t\t\tif (!ws) return \"默认工作区\";\n\t\t\tconst parts = ws.replace(/\\\\/g, \"/\").split(\"/\");\n\t\t\treturn parts[parts.length - 1] || ws;\n\t\t}\n\t\tlet groups = derived(() => {\n\t\t\tconst map = /* @__PURE__ */ new Map();\n\t\t\tfor (const s of store_get($$store_subs ??= {}, \"$sessions\", sessions)) {\n\t\t\t\tconst key = s.workspace || \"\";\n\t\t\t\tif (!map.has(key)) map.set(key, []);\n\t\t\t\tmap.get(key).push(s);\n\t\t\t}\n\t\t\treturn Array.from(map.entries()).map(([ws, items]) => ({\n\t\t\t\tworkspace: ws,\n\t\t\t\tsessions: items\n\t\t\t})).sort((a, b) => {\n\t\t\t\tif (!a.workspace) return -1;\n\t\t\t\tif (!b.workspace) return 1;\n\t\t\t\treturn a.workspace.localeCompare(b.workspace);\n\t\t\t});\n\t\t});\n\t\tlet $$settled = true;\n\t\tlet $$inner_renderer;\n\t\tfunction $$render_inner($$renderer) {\n\t\t\t$$renderer.push(`<div${attr_class(\"sidebar svelte-103bhu0\", void 0, { \"mobile-open\": mobileOpen })}><div class=\"sidebar-header svelte-103bhu0\"><a href=\"/\" class=\"brand svelte-103bhu0\">`);\n\t\t\tif (customIcon) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<img src=\"/api/brand-icon\" alt=\"\" class=\"brand-img svelte-103bhu0\"/>`);\n\t\t\t} else {\n\t\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<span class=\"material-symbols-rounded brand-icon svelte-103bhu0\">spa</span>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--> <span class=\"brand-name svelte-103bhu0\">Qualia</span></a> <button class=\"collapse-btn svelte-103bhu0\" title=\"收起侧边栏\"><span class=\"material-symbols-rounded\">menu_open</span></button></div> <div class=\"workspace-bar svelte-103bhu0\"><button class=\"ws-selector svelte-103bhu0\"><span class=\"material-symbols-rounded ws-icon svelte-103bhu0\">folder</span> <span class=\"ws-label svelte-103bhu0\">${escape_html(wsLabel(store_get($$store_subs ??= {}, \"$activeWorkspace\", activeWorkspace)))}</span> <span class=\"material-symbols-rounded ws-arrow svelte-103bhu0\">expand_more</span></button> `);\n\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--></div> <div class=\"section-label svelte-103bhu0\"><span>对话</span> <button class=\"new-btn svelte-103bhu0\"><span class=\"material-symbols-rounded\">add</span></button></div> <div class=\"session-list svelte-103bhu0\"><!--[-->`);\n\t\t\tconst each_array_1 = ensure_array_like(groups());\n\t\t\tfor (let $$index_2 = 0, $$length = each_array_1.length; $$index_2 < $$length; $$index_2++) {\n\t\t\t\tlet group = each_array_1[$$index_2];\n\t\t\t\tconst isCollapsed = collapsedGroups.has(group.workspace);\n\t\t\t\t$$renderer.push(`<button class=\"group-header svelte-103bhu0\"><span class=\"material-symbols-rounded group-arrow svelte-103bhu0\">${escape_html(isCollapsed ? \"chevron_right\" : \"expand_more\")}</span> <span class=\"material-symbols-rounded group-icon svelte-103bhu0\">folder</span> <span class=\"group-name svelte-103bhu0\">${escape_html(wsLabel(group.workspace))}</span> <span class=\"group-count svelte-103bhu0\">${escape_html(group.sessions.length)}</span></button> `);\n\t\t\t\tif (!isCollapsed) {\n\t\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t\t$$renderer.push(`<!--[-->`);\n\t\t\t\t\tconst each_array_2 = ensure_array_like(group.sessions.slice(0, 8));\n\t\t\t\t\tfor (let $$index_1 = 0, $$length = each_array_2.length; $$index_1 < $$length; $$index_1++) {\n\t\t\t\t\t\tlet session = each_array_2[$$index_1];\n\t\t\t\t\t\t$$renderer.push(`<div${attr_class(\"session-item svelte-103bhu0\", void 0, { \"active\": session.id === store_get($$store_subs ??= {}, \"$page\", page).params.sessionId })} role=\"button\" tabindex=\"0\"><span class=\"material-symbols-rounded session-icon svelte-103bhu0\">chat_bubble</span> <div class=\"session-info svelte-103bhu0\">`);\n\t\t\t\t\t\tif (editingId === session.id) {\n\t\t\t\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t\t\t\t$$renderer.push(`<input class=\"session-title-input svelte-103bhu0\" type=\"text\"${attr(\"value\", editTitle)} autofocus=\"\"/>`);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t\t\t\t\t$$renderer.push(`<div class=\"session-title svelte-103bhu0\" role=\"textbox\" tabindex=\"-1\">${escape_html(session.title)}</div> <div class=\"session-time svelte-103bhu0\">${escape_html(formatTime(session.updated_at))}</div>`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$$renderer.push(`<!--]--></div> <button class=\"delete-btn svelte-103bhu0\" title=\"删除\"><span class=\"material-symbols-rounded\">delete</span></button></div>`);\n\t\t\t\t\t}\n\t\t\t\t\t$$renderer.push(`<!--]-->`);\n\t\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<!--]-->`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--> <a href=\"/records\" class=\"view-all-link svelte-103bhu0\"><span class=\"material-symbols-rounded view-all-icon svelte-103bhu0\">history</span> <span class=\"view-all-text\">查看全部记录</span></a></div> <div class=\"sidebar-footer svelte-103bhu0\"><a href=\"/settings\"${attr_class(\"footer-link svelte-103bhu0\", void 0, { \"active\": store_get($$store_subs ??= {}, \"$page\", page).url.pathname === \"/settings\" })}><span class=\"material-symbols-rounded\">settings</span> 设置</a> <button class=\"footer-link search-btn svelte-103bhu0\"><span class=\"material-symbols-rounded\">search</span> 搜索</button> <button class=\"footer-link theme-btn svelte-103bhu0\" title=\"切换主题\"><span class=\"material-symbols-rounded\">${escape_html(themeIcon)}</span></button></div></div> `);\n\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\tSearchDialog($$renderer, {\n\t\t\t\tsessions: store_get($$store_subs ??= {}, \"$sessions\", sessions),\n\t\t\t\tget open() {\n\t\t\t\t\treturn searchOpen;\n\t\t\t\t},\n\t\t\t\tset open($$value) {\n\t\t\t\t\tsearchOpen = $$value;\n\t\t\t\t\t$$settled = false;\n\t\t\t\t}\n\t\t\t});\n\t\t\t$$renderer.push(`<!---->`);\n\t\t}\n\t\tdo {\n\t\t\t$$settled = true;\n\t\t\t$$inner_renderer = $$renderer.copy();\n\t\t\t$$render_inner($$inner_renderer);\n\t\t} while (!$$settled);\n\t\t$$renderer.subsume($$inner_renderer);\n\t\tif ($$store_subs) unsubscribe_stores($$store_subs);\n\t\tbind_props($$props, { mobileOpen });\n\t});\n}\n//#endregion\n//#region src/routes/+layout.svelte\nfunction _layout($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { children } = $$props;\n\t\tlet sidebarOpen = false;\n\t\tlet customIcon = false;\n\t\tlet $$settled = true;\n\t\tlet $$inner_renderer;\n\t\tfunction $$render_inner($$renderer) {\n\t\t\thead(\"12qhfyh\", $$renderer, ($$renderer) => {\n\t\t\t\t$$renderer.title(($$renderer) => {\n\t\t\t\t\t$$renderer.push(`<title>Qualia</title>`);\n\t\t\t\t});\n\t\t\t\t$$renderer.push(`<link rel=\"icon\"${attr(\"href\", favicon_default)}/> <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\"/> <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin=\"\"/> <link href=\"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700&family=Noto+Serif+SC:wght@400;700&family=Roboto:wght@300;400;500;700&display=swap\" rel=\"stylesheet\"/> <link href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@24,400,0,0\" rel=\"stylesheet\"/> `);\n\t\t\t\tif (sidebarOpen) {\n\t\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t\t$$renderer.push(`<style>\n\t\t\thtml, body { overflow: hidden; }\n\t\t</style>`);\n\t\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<!--]-->`);\n\t\t\t});\n\t\t\t$$renderer.push(`<div class=\"app svelte-12qhfyh\">`);\n\t\t\tSessionSidebar($$renderer, {\n\t\t\t\tcustomIcon,\n\t\t\t\tget mobileOpen() {\n\t\t\t\t\treturn sidebarOpen;\n\t\t\t\t},\n\t\t\t\tset mobileOpen($$value) {\n\t\t\t\t\tsidebarOpen = $$value;\n\t\t\t\t\t$$settled = false;\n\t\t\t\t}\n\t\t\t});\n\t\t\t$$renderer.push(`<!----> <div class=\"main-wrapper svelte-12qhfyh\"><header class=\"app-header svelte-12qhfyh\"><button class=\"icon-btn svelte-12qhfyh\"><span class=\"material-symbols-rounded\">menu</span></button> <a href=\"/\" class=\"app-title svelte-12qhfyh\">Qualia</a> <div class=\"header-right svelte-12qhfyh\"><a href=\"/\" class=\"icon-btn new-chat-btn svelte-12qhfyh\"><span class=\"material-symbols-rounded\">add_comment</span></a></div></header> <main class=\"svelte-12qhfyh\">`);\n\t\t\tif (sidebarOpen) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<div class=\"scrim svelte-12qhfyh\"></div>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\tchildren($$renderer);\n\t\t\t$$renderer.push(`<!----></main></div></div>`);\n\t\t}\n\t\tdo {\n\t\t\t$$settled = true;\n\t\t\t$$inner_renderer = $$renderer.copy();\n\t\t\t$$render_inner($$inner_renderer);\n\t\t} while (!$$settled);\n\t\t$$renderer.subsume($$inner_renderer);\n\t});\n}\n//#endregion\nexport { _layout as default };\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { e as escape_html, d as store_get, f as ensure_array_like, m as html, i as attr, u as unsubscribe_stores, k as derived } from './index.js-N7Sh42pC.js';
|
|
2
|
+
import './client-BoLIct8q.js';
|
|
3
|
+
import { s as sessions } from './session-store-B1Aop0Qn.js';
|
|
4
|
+
import { r as renderMarkdown } from './markdown-BYqQ8bKF.js';
|
|
5
|
+
import 'node:module';
|
|
6
|
+
|
|
7
|
+
//#region src/routes/records/+page.svelte
|
|
8
|
+
function _page($$renderer, $$props) {
|
|
9
|
+
$$renderer.component(($$renderer) => {
|
|
10
|
+
var $$store_subs;
|
|
11
|
+
const PAGE_SIZE = 20;
|
|
12
|
+
let currentPage = 1;
|
|
13
|
+
let totalPages = derived(() => Math.max(1, Math.ceil(store_get($$store_subs ??= {}, "$sessions", sessions).length / PAGE_SIZE)));
|
|
14
|
+
let visibleSessions = derived(() => {
|
|
15
|
+
if (currentPage > totalPages()) currentPage = totalPages();
|
|
16
|
+
const start = (currentPage - 1) * PAGE_SIZE;
|
|
17
|
+
return store_get($$store_subs ??= {}, "$sessions", sessions).slice(start, start + PAGE_SIZE);
|
|
18
|
+
});
|
|
19
|
+
function formatDate(ts) {
|
|
20
|
+
const d = new Date(ts);
|
|
21
|
+
const diff = (/* @__PURE__ */ new Date()).getTime() - d.getTime();
|
|
22
|
+
const timeStr = d.toLocaleTimeString("zh-CN", {
|
|
23
|
+
hour: "2-digit",
|
|
24
|
+
minute: "2-digit"
|
|
25
|
+
});
|
|
26
|
+
if (diff < 864e5) return `今天 ${timeStr}`;
|
|
27
|
+
else if (diff < 1728e5) return `昨天 ${timeStr}`;
|
|
28
|
+
return d.toLocaleDateString("zh-CN", {
|
|
29
|
+
year: "numeric",
|
|
30
|
+
month: "long",
|
|
31
|
+
day: "numeric"
|
|
32
|
+
}) + " " + timeStr;
|
|
33
|
+
}
|
|
34
|
+
$$renderer.push(`<div class="records-page svelte-192mfm1"><div class="records-inner svelte-192mfm1"><header class="records-header svelte-192mfm1"><button class="back-btn svelte-192mfm1"><span class="material-symbols-rounded">arrow_back</span></button> <h1 class="svelte-192mfm1">对话记录</h1> <span class="record-count svelte-192mfm1">${escape_html(visibleSessions().length > 0 ? `${(currentPage - 1) * PAGE_SIZE + 1}–${Math.min(currentPage * PAGE_SIZE, store_get($$store_subs ??= {}, "$sessions", sessions).length)} / ${store_get($$store_subs ??= {}, "$sessions", sessions).length}` : "")}</span></header> `);
|
|
35
|
+
if (store_get($$store_subs ??= {}, "$sessions", sessions).length === 0) {
|
|
36
|
+
$$renderer.push("<!--[0-->");
|
|
37
|
+
$$renderer.push(`<div class="empty-state svelte-192mfm1"><span class="material-symbols-rounded empty-icon svelte-192mfm1">chat_bubble</span> <p class="svelte-192mfm1">暂无对话记录</p></div>`);
|
|
38
|
+
} else {
|
|
39
|
+
$$renderer.push("<!--[-1-->");
|
|
40
|
+
$$renderer.push(`<div class="record-list svelte-192mfm1"><!--[-->`);
|
|
41
|
+
const each_array = ensure_array_like(visibleSessions());
|
|
42
|
+
for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
|
|
43
|
+
let session = each_array[$$index];
|
|
44
|
+
$$renderer.push(`<button class="record-card svelte-192mfm1"><div class="record-header svelte-192mfm1"><span class="record-title svelte-192mfm1">${escape_html(session.title)}</span> <span class="record-time svelte-192mfm1">${escape_html(formatDate(session.updated_at))}</span></div> `);
|
|
45
|
+
if (session.summary) {
|
|
46
|
+
$$renderer.push("<!--[0-->");
|
|
47
|
+
$$renderer.push(`<div class="record-summary svelte-192mfm1">${html(renderMarkdown(session.summary))}</div>`);
|
|
48
|
+
} else $$renderer.push("<!--[-1-->");
|
|
49
|
+
$$renderer.push(`<!--]--></button>`);
|
|
50
|
+
}
|
|
51
|
+
$$renderer.push(`<!--]--></div> `);
|
|
52
|
+
if (totalPages() > 1) {
|
|
53
|
+
$$renderer.push("<!--[0-->");
|
|
54
|
+
$$renderer.push(`<div class="pagination svelte-192mfm1"><button class="page-btn svelte-192mfm1"${attr("disabled", currentPage <= 1, true)}><span class="material-symbols-rounded">chevron_left</span></button> <span class="page-info svelte-192mfm1">${escape_html(currentPage)} / ${escape_html(totalPages())}</span> <button class="page-btn svelte-192mfm1"${attr("disabled", currentPage >= totalPages(), true)}><span class="material-symbols-rounded">chevron_right</span></button></div>`);
|
|
55
|
+
} else $$renderer.push("<!--[-1-->");
|
|
56
|
+
$$renderer.push(`<!--]-->`);
|
|
57
|
+
}
|
|
58
|
+
$$renderer.push(`<!--]--></div></div>`);
|
|
59
|
+
if ($$store_subs) unsubscribe_stores($$store_subs);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export { _page as default };
|
|
64
|
+
//# sourceMappingURL=_page.svelte-CfQFFres.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_page.svelte-CfQFFres.js","sources":["../../../.svelte-kit/output/server/entries/pages/records/_page.svelte.js"],"sourcesContent":["import { H as attr, U as escape_html, a as ensure_array_like, c as store_get, d as html, i as derived, u as unsubscribe_stores } from \"../../../chunks/dev.js\";\nimport \"../../../chunks/navigation.js\";\nimport { s as sessions } from \"../../../chunks/session-store.js\";\nimport { t as renderMarkdown } from \"../../../chunks/markdown.js\";\n//#region src/routes/records/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tvar $$store_subs;\n\t\tconst PAGE_SIZE = 20;\n\t\tlet currentPage = 1;\n\t\tlet totalPages = derived(() => Math.max(1, Math.ceil(store_get($$store_subs ??= {}, \"$sessions\", sessions).length / PAGE_SIZE)));\n\t\tlet visibleSessions = derived(() => {\n\t\t\tif (currentPage > totalPages()) currentPage = totalPages();\n\t\t\tconst start = (currentPage - 1) * PAGE_SIZE;\n\t\t\treturn store_get($$store_subs ??= {}, \"$sessions\", sessions).slice(start, start + PAGE_SIZE);\n\t\t});\n\t\tfunction formatDate(ts) {\n\t\t\tconst d = new Date(ts);\n\t\t\tconst diff = (/* @__PURE__ */ new Date()).getTime() - d.getTime();\n\t\t\tconst timeStr = d.toLocaleTimeString(\"zh-CN\", {\n\t\t\t\thour: \"2-digit\",\n\t\t\t\tminute: \"2-digit\"\n\t\t\t});\n\t\t\tif (diff < 864e5) return `今天 ${timeStr}`;\n\t\t\telse if (diff < 1728e5) return `昨天 ${timeStr}`;\n\t\t\treturn d.toLocaleDateString(\"zh-CN\", {\n\t\t\t\tyear: \"numeric\",\n\t\t\t\tmonth: \"long\",\n\t\t\t\tday: \"numeric\"\n\t\t\t}) + \" \" + timeStr;\n\t\t}\n\t\t$$renderer.push(`<div class=\"records-page svelte-192mfm1\"><div class=\"records-inner svelte-192mfm1\"><header class=\"records-header svelte-192mfm1\"><button class=\"back-btn svelte-192mfm1\"><span class=\"material-symbols-rounded\">arrow_back</span></button> <h1 class=\"svelte-192mfm1\">对话记录</h1> <span class=\"record-count svelte-192mfm1\">${escape_html(visibleSessions().length > 0 ? `${(currentPage - 1) * PAGE_SIZE + 1}–${Math.min(currentPage * PAGE_SIZE, store_get($$store_subs ??= {}, \"$sessions\", sessions).length)} / ${store_get($$store_subs ??= {}, \"$sessions\", sessions).length}` : \"\")}</span></header> `);\n\t\tif (store_get($$store_subs ??= {}, \"$sessions\", sessions).length === 0) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<div class=\"empty-state svelte-192mfm1\"><span class=\"material-symbols-rounded empty-icon svelte-192mfm1\">chat_bubble</span> <p class=\"svelte-192mfm1\">暂无对话记录</p></div>`);\n\t\t} else {\n\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<div class=\"record-list svelte-192mfm1\"><!--[-->`);\n\t\t\tconst each_array = ensure_array_like(visibleSessions());\n\t\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\t\tlet session = each_array[$$index];\n\t\t\t\t$$renderer.push(`<button class=\"record-card svelte-192mfm1\"><div class=\"record-header svelte-192mfm1\"><span class=\"record-title svelte-192mfm1\">${escape_html(session.title)}</span> <span class=\"record-time svelte-192mfm1\">${escape_html(formatDate(session.updated_at))}</span></div> `);\n\t\t\t\tif (session.summary) {\n\t\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t\t$$renderer.push(`<div class=\"record-summary svelte-192mfm1\">${html(renderMarkdown(session.summary))}</div>`);\n\t\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<!--]--></button>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--></div> `);\n\t\t\tif (totalPages() > 1) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<div class=\"pagination svelte-192mfm1\"><button class=\"page-btn svelte-192mfm1\"${attr(\"disabled\", currentPage <= 1, true)}><span class=\"material-symbols-rounded\">chevron_left</span></button> <span class=\"page-info svelte-192mfm1\">${escape_html(currentPage)} / ${escape_html(totalPages())}</span> <button class=\"page-btn svelte-192mfm1\"${attr(\"disabled\", currentPage >= totalPages(), true)}><span class=\"material-symbols-rounded\">chevron_right</span></button></div>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]-->`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></div></div>`);\n\t\tif ($$store_subs) unsubscribe_stores($$store_subs);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { f as ensure_array_like, c as attr_class, e as escape_html, b as bind_props, i as attr, p as stringify } from './index.js-N7Sh42pC.js';
|
|
2
|
+
import { D as DEFAULT_SYSTEM_PROMPT } from './prompts-tcGD1LCs.js';
|
|
3
|
+
import './session-store-B1Aop0Qn.js';
|
|
4
|
+
import 'node:module';
|
|
5
|
+
|
|
6
|
+
//#region src/lib/components/settings/StorageToggle.svelte
|
|
7
|
+
function StorageToggle($$renderer, $$props) {
|
|
8
|
+
$$renderer.component(($$renderer) => {
|
|
9
|
+
let { enabled = false, ontoggle } = $$props;
|
|
10
|
+
$$renderer.push(`<section class="section svelte-ux4set"><h2 class="svelte-ux4set">常规</h2> <div class="setting-row svelte-ux4set"><div class="setting-label"><div class="setting-title svelte-ux4set">对话存储</div> <div class="setting-desc svelte-ux4set">`);
|
|
11
|
+
if (enabled) {
|
|
12
|
+
$$renderer.push("<!--[0-->");
|
|
13
|
+
$$renderer.push(`已开启 — 对话历史持久化到本地数据库`);
|
|
14
|
+
} else {
|
|
15
|
+
$$renderer.push("<!--[-1-->");
|
|
16
|
+
$$renderer.push(`已关闭 — 数据仅保存在内存,重启后丢失(适合开发测试)`);
|
|
17
|
+
}
|
|
18
|
+
$$renderer.push(`<!--]--></div></div> <button${attr_class("toggle svelte-ux4set", void 0, { "on": enabled })} aria-label="切换存储开关"><span class="toggle-knob svelte-ux4set"></span></button></div></section>`);
|
|
19
|
+
bind_props($$props, { enabled });
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
//#region src/lib/components/settings/PromptEditor.svelte
|
|
24
|
+
function PromptEditor($$renderer, $$props) {
|
|
25
|
+
$$renderer.component(($$renderer) => {
|
|
26
|
+
let { systemPrompt = "", onsave } = $$props;
|
|
27
|
+
$$renderer.push(`<section class="section svelte-1cqdm0h"><h2 class="svelte-1cqdm0h">系统提示词</h2> <p class="section-desc svelte-1cqdm0h">定义 Qualia 的角色和行为准则,将作为每条对话的 system prompt 发送给模型。</p> <textarea class="prompt-editor svelte-1cqdm0h"${attr("rows", 10)} placeholder="输入系统提示词...">`);
|
|
28
|
+
const $$body = escape_html(systemPrompt);
|
|
29
|
+
if ($$body) $$renderer.push(`${$$body}`);
|
|
30
|
+
$$renderer.push(`</textarea> <div class="prompt-actions svelte-1cqdm0h"><span class="prompt-hint svelte-1cqdm0h">${escape_html(systemPrompt?.length || 0)} 字符</span> <div class="prompt-actions-right svelte-1cqdm0h"><button type="button" class="btn svelte-1cqdm0h"${attr("disabled", systemPrompt === DEFAULT_SYSTEM_PROMPT, true)}>恢复默认</button> <button class="btn btn-primary svelte-1cqdm0h">保存提示词</button></div></div></section>`);
|
|
31
|
+
bind_props($$props, { systemPrompt });
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
//#endregion
|
|
35
|
+
//#region src/lib/components/settings/AvatarEditor.svelte
|
|
36
|
+
function AvatarEditor($$renderer, $$props) {
|
|
37
|
+
$$renderer.component(($$renderer) => {
|
|
38
|
+
let { customBrandIcon} = $$props;
|
|
39
|
+
$$renderer.push(`<div class="brand-icon-row svelte-1ae3gd2"><div class="brand-icon-preview svelte-1ae3gd2">`);
|
|
40
|
+
if (customBrandIcon) {
|
|
41
|
+
$$renderer.push("<!--[0-->");
|
|
42
|
+
$$renderer.push(`<img${attr("src", `/api/brand-icon?t=${stringify(Date.now())}`)} alt="头像" class="preview-img svelte-1ae3gd2"/>`);
|
|
43
|
+
} else {
|
|
44
|
+
$$renderer.push("<!--[-1-->");
|
|
45
|
+
$$renderer.push(`<span class="material-symbols-rounded preview-icon svelte-1ae3gd2">spa</span>`);
|
|
46
|
+
}
|
|
47
|
+
$$renderer.push(`<!--]--></div> <div class="brand-icon-actions svelte-1ae3gd2"><button class="btn btn-sm svelte-1ae3gd2">上传图片</button> `);
|
|
48
|
+
if (customBrandIcon) {
|
|
49
|
+
$$renderer.push("<!--[0-->");
|
|
50
|
+
$$renderer.push(`<button class="btn btn-sm btn-danger svelte-1ae3gd2">恢复默认</button>`);
|
|
51
|
+
} else $$renderer.push("<!--[-1-->");
|
|
52
|
+
$$renderer.push(`<!--]--></div></div> `);
|
|
53
|
+
$$renderer.push("<!--[-1-->");
|
|
54
|
+
$$renderer.push(`<!--]-->`);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
//#endregion
|
|
58
|
+
//#region src/routes/settings/+page.svelte
|
|
59
|
+
function _page($$renderer, $$props) {
|
|
60
|
+
$$renderer.component(($$renderer) => {
|
|
61
|
+
const TABS = [
|
|
62
|
+
{
|
|
63
|
+
id: "general",
|
|
64
|
+
label: "常规"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
id: "provider",
|
|
68
|
+
label: "供应商"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
id: "notify",
|
|
72
|
+
label: "通知"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
id: "summary",
|
|
76
|
+
label: "摘要"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
id: "compress",
|
|
80
|
+
label: "压缩"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
id: "search",
|
|
84
|
+
label: "搜索"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
id: "tasks",
|
|
88
|
+
label: "任务"
|
|
89
|
+
}
|
|
90
|
+
];
|
|
91
|
+
let config = {
|
|
92
|
+
providers: [],
|
|
93
|
+
activeModel: "",
|
|
94
|
+
storageEnabled: false,
|
|
95
|
+
systemPrompt: "",
|
|
96
|
+
customBrandIcon: false,
|
|
97
|
+
autoSummarize: true,
|
|
98
|
+
summaryMode: "idle",
|
|
99
|
+
summaryIdleHours: 8,
|
|
100
|
+
summaryScheduleHour: 2,
|
|
101
|
+
summaryIntervalMin: 30,
|
|
102
|
+
compressionMode: "auto",
|
|
103
|
+
compressionThreshold: 256e3,
|
|
104
|
+
searchEnabled: false,
|
|
105
|
+
searchProvider: "searxng",
|
|
106
|
+
searxngURL: "http://localhost:8080",
|
|
107
|
+
tavilyApiKey: "",
|
|
108
|
+
emailNotifications: false,
|
|
109
|
+
emailSmtpHost: "",
|
|
110
|
+
emailSmtpPort: 465,
|
|
111
|
+
emailSmtpSecure: true,
|
|
112
|
+
emailSmtpUser: "",
|
|
113
|
+
emailSmtpPass: "",
|
|
114
|
+
emailFrom: "",
|
|
115
|
+
emailTo: "",
|
|
116
|
+
telegramEnabled: false,
|
|
117
|
+
telegramBotToken: "",
|
|
118
|
+
telegramAllowedUsers: ""
|
|
119
|
+
};
|
|
120
|
+
let activeTab = "general";
|
|
121
|
+
async function toggleStorage() {
|
|
122
|
+
const updated = {
|
|
123
|
+
...config,
|
|
124
|
+
storageEnabled: !config.storageEnabled
|
|
125
|
+
};
|
|
126
|
+
const res = await fetch("/api/config", {
|
|
127
|
+
method: "PUT",
|
|
128
|
+
headers: { "Content-Type": "application/json" },
|
|
129
|
+
body: JSON.stringify({
|
|
130
|
+
action: "writeConfig",
|
|
131
|
+
config: updated
|
|
132
|
+
})
|
|
133
|
+
});
|
|
134
|
+
if (res.ok) config = await res.json();
|
|
135
|
+
}
|
|
136
|
+
async function saveSystemPrompt() {
|
|
137
|
+
const res = await fetch("/api/config", {
|
|
138
|
+
method: "PUT",
|
|
139
|
+
headers: { "Content-Type": "application/json" },
|
|
140
|
+
body: JSON.stringify({
|
|
141
|
+
action: "writeConfig",
|
|
142
|
+
config
|
|
143
|
+
})
|
|
144
|
+
});
|
|
145
|
+
if (res.ok) config = await res.json();
|
|
146
|
+
}
|
|
147
|
+
let $$settled = true;
|
|
148
|
+
let $$inner_renderer;
|
|
149
|
+
function $$render_inner($$renderer) {
|
|
150
|
+
$$renderer.push(`<div class="settings svelte-1i19ct2"><div class="settings-inner svelte-1i19ct2"><h1 class="svelte-1i19ct2">设置</h1> <nav class="tab-bar svelte-1i19ct2"><!--[-->`);
|
|
151
|
+
const each_array = ensure_array_like(TABS);
|
|
152
|
+
for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
|
|
153
|
+
let tab = each_array[$$index];
|
|
154
|
+
$$renderer.push(`<button${attr_class("tab-btn svelte-1i19ct2", void 0, { "active": activeTab === tab.id })}>${escape_html(tab.label)}</button>`);
|
|
155
|
+
}
|
|
156
|
+
$$renderer.push(`<!--]--></nav> <div class="tab-content">`);
|
|
157
|
+
$$renderer.push("<!--[0-->");
|
|
158
|
+
StorageToggle($$renderer, {
|
|
159
|
+
enabled: config.storageEnabled,
|
|
160
|
+
ontoggle: toggleStorage
|
|
161
|
+
});
|
|
162
|
+
$$renderer.push(`<!----> `);
|
|
163
|
+
PromptEditor($$renderer, {
|
|
164
|
+
onsave: saveSystemPrompt,
|
|
165
|
+
get systemPrompt() {
|
|
166
|
+
return config.systemPrompt;
|
|
167
|
+
},
|
|
168
|
+
set systemPrompt($$value) {
|
|
169
|
+
config.systemPrompt = $$value;
|
|
170
|
+
$$settled = false;
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
$$renderer.push(`<!----> <section class="section svelte-1i19ct2"><h2 class="svelte-1i19ct2">头像</h2> `);
|
|
174
|
+
AvatarEditor($$renderer, {
|
|
175
|
+
customBrandIcon: config.customBrandIcon});
|
|
176
|
+
$$renderer.push(`<!----></section>`);
|
|
177
|
+
$$renderer.push(`<!--]--></div></div></div>`);
|
|
178
|
+
}
|
|
179
|
+
do {
|
|
180
|
+
$$settled = true;
|
|
181
|
+
$$inner_renderer = $$renderer.copy();
|
|
182
|
+
$$render_inner($$inner_renderer);
|
|
183
|
+
} while (!$$settled);
|
|
184
|
+
$$renderer.subsume($$inner_renderer);
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
export { _page as default };
|
|
189
|
+
//# sourceMappingURL=_page.svelte-CgTaVEr0.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_page.svelte-CgTaVEr0.js","sources":["../../../.svelte-kit/output/server/entries/pages/settings/_page.svelte.js"],"sourcesContent":["import { H as attr, U as escape_html, a as ensure_array_like, l as stringify, n as attr_class, r as bind_props } from \"../../../chunks/dev.js\";\nimport { t as DEFAULT_SYSTEM_PROMPT } from \"../../../chunks/prompts.js\";\nimport \"../../../chunks/session-store.js\";\nimport \"../../../chunks/model-picker-state.svelte.js\";\n//#region src/lib/components/settings/StorageToggle.svelte\nfunction StorageToggle($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { enabled = false, ontoggle } = $$props;\n\t\t$$renderer.push(`<section class=\"section svelte-ux4set\"><h2 class=\"svelte-ux4set\">常规</h2> <div class=\"setting-row svelte-ux4set\"><div class=\"setting-label\"><div class=\"setting-title svelte-ux4set\">对话存储</div> <div class=\"setting-desc svelte-ux4set\">`);\n\t\tif (enabled) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`已开启 — 对话历史持久化到本地数据库`);\n\t\t} else {\n\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`已关闭 — 数据仅保存在内存,重启后丢失(适合开发测试)`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></div></div> <button${attr_class(\"toggle svelte-ux4set\", void 0, { \"on\": enabled })} aria-label=\"切换存储开关\"><span class=\"toggle-knob svelte-ux4set\"></span></button></div></section>`);\n\t\tbind_props($$props, { enabled });\n\t});\n}\n//#endregion\n//#region src/lib/components/settings/PromptEditor.svelte\nfunction PromptEditor($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { systemPrompt = \"\", onsave } = $$props;\n\t\t$$renderer.push(`<section class=\"section svelte-1cqdm0h\"><h2 class=\"svelte-1cqdm0h\">系统提示词</h2> <p class=\"section-desc svelte-1cqdm0h\">定义 Qualia 的角色和行为准则,将作为每条对话的 system prompt 发送给模型。</p> <textarea class=\"prompt-editor svelte-1cqdm0h\"${attr(\"rows\", 10)} placeholder=\"输入系统提示词...\">`);\n\t\tconst $$body = escape_html(systemPrompt);\n\t\tif ($$body) $$renderer.push(`${$$body}`);\n\t\t$$renderer.push(`</textarea> <div class=\"prompt-actions svelte-1cqdm0h\"><span class=\"prompt-hint svelte-1cqdm0h\">${escape_html(systemPrompt?.length || 0)} 字符</span> <div class=\"prompt-actions-right svelte-1cqdm0h\"><button type=\"button\" class=\"btn svelte-1cqdm0h\"${attr(\"disabled\", systemPrompt === DEFAULT_SYSTEM_PROMPT, true)}>恢复默认</button> <button class=\"btn btn-primary svelte-1cqdm0h\">保存提示词</button></div></div></section>`);\n\t\tbind_props($$props, { systemPrompt });\n\t});\n}\n//#endregion\n//#region src/lib/components/settings/AvatarEditor.svelte\nfunction AvatarEditor($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { customBrandIcon, onsave, onreset } = $$props;\n\t\t$$renderer.push(`<div class=\"brand-icon-row svelte-1ae3gd2\"><div class=\"brand-icon-preview svelte-1ae3gd2\">`);\n\t\tif (customBrandIcon) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<img${attr(\"src\", `/api/brand-icon?t=${stringify(Date.now())}`)} alt=\"头像\" class=\"preview-img svelte-1ae3gd2\"/>`);\n\t\t} else {\n\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<span class=\"material-symbols-rounded preview-icon svelte-1ae3gd2\">spa</span>`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></div> <div class=\"brand-icon-actions svelte-1ae3gd2\"><button class=\"btn btn-sm svelte-1ae3gd2\">上传图片</button> `);\n\t\tif (customBrandIcon) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<button class=\"btn btn-sm btn-danger svelte-1ae3gd2\">恢复默认</button>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div></div> `);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]-->`);\n\t});\n}\n//#endregion\n//#region src/routes/settings/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tconst TABS = [\n\t\t\t{\n\t\t\t\tid: \"general\",\n\t\t\t\tlabel: \"常规\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"provider\",\n\t\t\t\tlabel: \"供应商\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"notify\",\n\t\t\t\tlabel: \"通知\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"summary\",\n\t\t\t\tlabel: \"摘要\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"compress\",\n\t\t\t\tlabel: \"压缩\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"search\",\n\t\t\t\tlabel: \"搜索\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"tasks\",\n\t\t\t\tlabel: \"任务\"\n\t\t\t}\n\t\t];\n\t\tlet config = {\n\t\t\tproviders: [],\n\t\t\tactiveModel: \"\",\n\t\t\tstorageEnabled: false,\n\t\t\tsystemPrompt: \"\",\n\t\t\tcustomBrandIcon: false,\n\t\t\tautoSummarize: true,\n\t\t\tsummaryMode: \"idle\",\n\t\t\tsummaryIdleHours: 8,\n\t\t\tsummaryScheduleHour: 2,\n\t\t\tsummaryIntervalMin: 30,\n\t\t\tcompressionMode: \"auto\",\n\t\t\tcompressionThreshold: 256e3,\n\t\t\tsearchEnabled: false,\n\t\t\tsearchProvider: \"searxng\",\n\t\t\tsearxngURL: \"http://localhost:8080\",\n\t\t\ttavilyApiKey: \"\",\n\t\t\temailNotifications: false,\n\t\t\temailSmtpHost: \"\",\n\t\t\temailSmtpPort: 465,\n\t\t\temailSmtpSecure: true,\n\t\t\temailSmtpUser: \"\",\n\t\t\temailSmtpPass: \"\",\n\t\t\temailFrom: \"\",\n\t\t\temailTo: \"\",\n\t\t\ttelegramEnabled: false,\n\t\t\ttelegramBotToken: \"\",\n\t\t\ttelegramAllowedUsers: \"\"\n\t\t};\n\t\tlet activeTab = \"general\";\n\t\tasync function loadConfig() {\n\t\t\ttry {\n\t\t\t\tconst res = await fetch(\"/api/config\");\n\t\t\t\tif (res.ok) config = await res.json();\n\t\t\t} catch {}\n\t\t}\n\t\tasync function toggleStorage() {\n\t\t\tconst updated = {\n\t\t\t\t...config,\n\t\t\t\tstorageEnabled: !config.storageEnabled\n\t\t\t};\n\t\t\tconst res = await fetch(\"/api/config\", {\n\t\t\t\tmethod: \"PUT\",\n\t\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\taction: \"writeConfig\",\n\t\t\t\t\tconfig: updated\n\t\t\t\t})\n\t\t\t});\n\t\t\tif (res.ok) config = await res.json();\n\t\t}\n\t\tasync function saveSystemPrompt() {\n\t\t\tconst res = await fetch(\"/api/config\", {\n\t\t\t\tmethod: \"PUT\",\n\t\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\taction: \"writeConfig\",\n\t\t\t\t\tconfig\n\t\t\t\t})\n\t\t\t});\n\t\t\tif (res.ok) config = await res.json();\n\t\t}\n\t\tlet $$settled = true;\n\t\tlet $$inner_renderer;\n\t\tfunction $$render_inner($$renderer) {\n\t\t\t$$renderer.push(`<div class=\"settings svelte-1i19ct2\"><div class=\"settings-inner svelte-1i19ct2\"><h1 class=\"svelte-1i19ct2\">设置</h1> <nav class=\"tab-bar svelte-1i19ct2\"><!--[-->`);\n\t\t\tconst each_array = ensure_array_like(TABS);\n\t\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\t\tlet tab = each_array[$$index];\n\t\t\t\t$$renderer.push(`<button${attr_class(\"tab-btn svelte-1i19ct2\", void 0, { \"active\": activeTab === tab.id })}>${escape_html(tab.label)}</button>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--></nav> <div class=\"tab-content\">`);\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\tStorageToggle($$renderer, {\n\t\t\t\tenabled: config.storageEnabled,\n\t\t\t\tontoggle: toggleStorage\n\t\t\t});\n\t\t\t$$renderer.push(`<!----> `);\n\t\t\tPromptEditor($$renderer, {\n\t\t\t\tonsave: saveSystemPrompt,\n\t\t\t\tget systemPrompt() {\n\t\t\t\t\treturn config.systemPrompt;\n\t\t\t\t},\n\t\t\t\tset systemPrompt($$value) {\n\t\t\t\t\tconfig.systemPrompt = $$value;\n\t\t\t\t\t$$settled = false;\n\t\t\t\t}\n\t\t\t});\n\t\t\t$$renderer.push(`<!----> <section class=\"section svelte-1i19ct2\"><h2 class=\"svelte-1i19ct2\">头像</h2> `);\n\t\t\tAvatarEditor($$renderer, {\n\t\t\t\tcustomBrandIcon: config.customBrandIcon,\n\t\t\t\tonsave: () => loadConfig(),\n\t\t\t\tonreset: () => loadConfig()\n\t\t\t});\n\t\t\t$$renderer.push(`<!----></section>`);\n\t\t\t$$renderer.push(`<!--]--></div></div></div>`);\n\t\t}\n\t\tdo {\n\t\t\t$$settled = true;\n\t\t\t$$inner_renderer = $$renderer.copy();\n\t\t\t$$render_inner($$inner_renderer);\n\t\t} while (!$$settled);\n\t\t$$renderer.subsume($$inner_renderer);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":"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"}
|