volute 0.29.0 → 0.30.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/README.md +112 -13
- package/dist/{accept-666DIZX2.js → accept-E3PAH3QJ.js} +2 -2
- package/dist/{activity-events-BBIEA2F4.js → activity-events-BKBPPUBP.js} +2 -2
- package/dist/ai-service-VAJT5UBS.js +29 -0
- package/dist/api.d.ts +351 -477
- package/dist/{archive-UA4BDFXQ.js → archive-WWDBWYN2.js} +2 -2
- package/dist/{bridge-FQHZL3MC.js → bridge-RO37CUFM.js} +2 -2
- package/dist/{chat-KTPOR2JT.js → chat-TCUNPFGO.js} +8 -8
- package/dist/{chunk-FLZGS4QH.js → chunk-2C2VXEBB.js} +2 -2
- package/dist/chunk-2NDZC3S7.js +1330 -0
- package/dist/{chunk-IKRVFPWU.js → chunk-7D47T4RB.js} +3 -2
- package/dist/{chunk-AW7PFDVN.js → chunk-CVH6Y2YG.js} +1 -1
- package/dist/{chunk-XBLSAVJF.js → chunk-DTC6EH5I.js} +1 -1
- package/dist/{chunk-THUUIU3E.js → chunk-EFP3PE6C.js} +5 -5
- package/dist/{chunk-JGFVMROS.js → chunk-EFVHR7KH.js} +1 -1
- package/dist/{chunk-CQ7SNKNI.js → chunk-FSM45XD5.js} +1 -1
- package/dist/{chunk-LAC664WU.js → chunk-FXHXHI2A.js} +42 -24
- package/dist/{chunk-RKQEHRBB.js → chunk-G3GBKZGG.js} +1 -1
- package/dist/{chunk-H7OZRFJB.js → chunk-HHTXM4JT.js} +0 -49
- package/dist/{chunk-J4IBNXGJ.js → chunk-IKHDUZRH.js} +4 -3
- package/dist/{chunk-MD4C26II.js → chunk-JGFRDMR6.js} +1 -1
- package/dist/{chunk-EHZKEMMV.js → chunk-LIRWLNAK.js} +24 -10
- package/dist/{chunk-NI5FFCCS.js → chunk-MDPCSXZ4.js} +35 -11
- package/dist/chunk-NSBFETWP.js +188 -0
- package/dist/{chunk-VIVMW2H2.js → chunk-P27RV5WM.js} +1 -1
- package/dist/{chunk-EHYDTZTF.js → chunk-P7VFDSSG.js} +2 -2
- package/dist/{chunk-CMILSHZD.js → chunk-QVAQ5454.js} +84 -300
- package/dist/{chunk-HDN7MNGD.js → chunk-S5LR3XYJ.js} +1 -1
- package/dist/{chunk-2YP2TVDT.js → chunk-UPA6COHU.js} +5 -5
- package/dist/{chunk-AKPFNL7L.js → chunk-VGWJSNHS.js} +1 -1
- package/dist/{chunk-DUAUMCEE.js → chunk-W5OOPLNP.js} +3 -3
- package/dist/{chunk-2WPW7OT6.js → chunk-ZWKTUQEL.js} +1 -1
- package/dist/cli.js +22 -26
- package/dist/{clock-DGCBVGYA.js → clock-G3ALCMLJ.js} +10 -6
- package/dist/{cloud-sync-KILFGV5Q.js → cloud-sync-JV4LJOK3.js} +13 -12
- package/dist/{conversations-P5BL7RMX.js → conversations-7KVQV7EZ.js} +3 -3
- package/dist/{create-DFCAGEE5.js → create-JTLS7GX3.js} +2 -2
- package/dist/{create-QWV73WXD.js → create-VQSQHJQW.js} +1 -1
- package/dist/{daemon-client-I42FK2BF.js → daemon-client-BCTFGVCZ.js} +2 -2
- package/dist/{daemon-restart-UHOMICXT.js → daemon-restart-4JGBHEJ4.js} +7 -7
- package/dist/daemon.js +1257 -1022
- package/dist/{db-IC4J52XQ.js → db-HMFPIRO2.js} +1 -1
- package/dist/{delete-4JYGD4VN.js → delete-JESHKE7F.js} +1 -1
- package/dist/down-NGBMGORS.js +14 -0
- package/dist/{env-YJMUMFIY.js → env-CLXXT7M2.js} +2 -2
- package/dist/{export-BOJQWBMA.js → export-EGA5M5PB.js} +3 -3
- package/dist/extension-WZ4SUPJB.js +174 -0
- package/dist/extensions-ECO4RPFQ.js +27 -0
- package/dist/{files-M546TKVN.js → files-4VEJDASH.js} +3 -3
- package/dist/{history-ALPTNB3I.js → history-EJMMLXDO.js} +17 -2
- package/dist/{import-SRTQXBGH.js → import-YCGPMBSI.js} +3 -3
- package/dist/{join-J4QU42DL.js → join-2GBJKZEN.js} +1 -1
- package/dist/{list-R73GENNL.js → list-Q6O7FGAN.js} +2 -2
- package/dist/{login-3QZNR2DF.js → login-RET5WESK.js} +2 -2
- package/dist/{login-BKP3AFWN.js → login-RL6AU2SM.js} +3 -3
- package/dist/{logout-T53VKCPU.js → logout-CGAGJN3L.js} +2 -2
- package/dist/{logout-IQK7FNEK.js → logout-JRPBEMMR.js} +3 -3
- package/dist/message-delivery-6YMVNOEC.js +28 -0
- package/dist/{migrate-registry-to-db-XC7T5B7P.js → migrate-registry-to-db-FK35IPEH.js} +1 -1
- package/dist/{mind-S5V6CK5W.js → mind-LUWRQUQ5.js} +17 -17
- package/dist/{mind-activity-tracker-WRHFI3YW.js → mind-activity-tracker-VYN2ZZ2M.js} +3 -3
- package/dist/{mind-list-UPJ75GPI.js → mind-list-V5WW5DUA.js} +2 -2
- package/dist/{mind-manager-P66HQDNE.js → mind-manager-YFCOIAAX.js} +6 -6
- package/dist/{mind-sleep-BTSWQNAC.js → mind-sleep-R6PTNNW4.js} +2 -2
- package/dist/{mind-status-TK5AETEM.js → mind-status-I4ISFJ6I.js} +2 -2
- package/dist/{mind-wake-SBAKIDVP.js → mind-wake-67ZQEWAV.js} +2 -2
- package/dist/{package-OFKXNKJF.js → package-S2OAA5ZA.js} +11 -5
- package/dist/{pages-watcher-P7QECRE2.js → pages-watcher-Z3PKNROC.js} +3 -3
- package/dist/{read-36UFXN3G.js → read-WQMPTSN2.js} +2 -2
- package/dist/{register-CHREOMJ3.js → register-NZDSTLP3.js} +3 -3
- package/dist/{registry-NDNOOYG4.js → registry-ODSALQQL.js} +1 -1
- package/dist/{reject-LXIZFJ4Q.js → reject-2HZOJEIJ.js} +2 -2
- package/dist/{restart-6ESL3NBO.js → restart-QHS3NT64.js} +2 -2
- package/dist/{sandbox-5BW5HPXM.js → sandbox-O5FUSF43.js} +3 -3
- package/dist/{seed-SSUCYYDF.js → seed-WUQMPLDM.js} +1 -1
- package/dist/{send-TAOEZ4NH.js → send-OAN3RYYY.js} +20 -6
- package/dist/{setup-JHL5ZEST.js → setup-QMDK5RZX.js} +2 -2
- package/dist/{setup-RXYVGGT7.js → setup-XJH3E7YM.js} +45 -14
- package/dist/{skill-AUAQTSP5.js → skill-FZIN4W4Q.js} +65 -3
- package/dist/skills/volute-mind/SKILL.md +10 -19
- package/dist/sleep-manager-O7YQFCV5.js +30 -0
- package/dist/{split-TKJ5OT3P.js → split-EXYGGGQN.js} +1 -1
- package/dist/{sprout-UNT7LKKE.js → sprout-AXQ6H5DB.js} +8 -7
- package/dist/{start-EUJSS5R4.js → start-MTOVL6SY.js} +2 -2
- package/dist/{status-NQJYR4BG.js → status-ZRO37MWR.js} +5 -5
- package/dist/{stop-3XAITBBF.js → stop-OK5WEPVC.js} +2 -2
- package/dist/{systems-SMEFSHTA.js → systems-W3BBMSOZ.js} +5 -5
- package/dist/{tailscale-NY5MUMY3.js → tailscale-BM72RXCJ.js} +1 -1
- package/dist/{template-hash-BIMA4ILT.js → template-hash-3HOR4UAJ.js} +1 -1
- package/dist/up-BXUAIDXB.js +17 -0
- package/dist/{update-PTSH22AZ.js → update-PLPHMMZ2.js} +5 -5
- package/dist/{update-check-64FWC4Y2.js → update-check-CVCN7MF6.js} +2 -2
- package/dist/{upgrade-HA47CS4C.js → upgrade-I6NPCYUU.js} +1 -1
- package/dist/{version-notify-WDHRO3XD.js → version-notify-2NTWVEHL.js} +15 -14
- package/dist/web-assets/assets/index--kREqKl9.js +72 -0
- package/dist/web-assets/assets/index-BXYTG0nJ.css +1 -0
- package/dist/web-assets/ext-theme.css +111 -0
- package/dist/web-assets/index.html +2 -2
- package/package.json +11 -5
- package/packages/extensions/notes/dist/ui/assets/index-DgawVO5g.css +1 -0
- package/packages/extensions/notes/dist/ui/assets/index-qUWoeC4c.js +2 -0
- package/packages/extensions/notes/dist/ui/index.html +14 -0
- package/packages/extensions/notes/skills/notes/SKILL.md +62 -0
- package/packages/extensions/notes/skills/notes/scripts/notes.mjs +185 -0
- package/packages/extensions/pages/dist/ui/assets/index-D0HyS-xQ.css +1 -0
- package/packages/extensions/pages/dist/ui/assets/index-tLTROSk5.js +2 -0
- package/packages/extensions/pages/dist/ui/index.html +14 -0
- package/packages/extensions/pages/skills/pages/SKILL.md +58 -0
- package/templates/_base/home/VOLUTE.md +1 -1
- package/dist/chunk-P72MVS4R.js +0 -188
- package/dist/chunk-ZYGKG6VC.js +0 -22
- package/dist/down-LVBXEULC.js +0 -14
- package/dist/message-delivery-Q7VUMIEI.js +0 -27
- package/dist/notes-XCER3I7M.js +0 -220
- package/dist/pages-EUJR52AH.js +0 -36
- package/dist/publish-ZZB33WP4.js +0 -86
- package/dist/skills/notes/SKILL.md +0 -34
- package/dist/sleep-manager-G4B5GW5P.js +0 -29
- package/dist/status-S7UUPNRW.js +0 -38
- package/dist/up-W6VAK2XE.js +0 -17
- package/dist/web-assets/assets/index-BmKDnWDB.css +0 -1
- package/dist/web-assets/assets/index-CLJMx-GA.js +0 -71
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.modal-overlay.svelte-b3ltw6{position:fixed;inset:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:200;animation:fadeIn .15s ease}.modal.svelte-b3ltw6{max-width:90vw;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden}.modal.full.svelte-b3ltw6{width:80vw;height:70vh;max-width:960px}.modal-header.svelte-b3ltw6{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding:12px 16px;flex-shrink:0}.title.svelte-b3ltw6{font-size:14px;font-weight:600;color:var(--text-0)}.header-right.svelte-b3ltw6{display:flex;align-items:center;gap:8px}.close-btn.svelte-b3ltw6{background:none;color:var(--text-2);font-size:15px;padding:4px 8px}.close-btn.svelte-b3ltw6:hover{color:var(--text-0)}@media(max-width:767px){.modal.full.svelte-b3ltw6{width:95vw;height:85vh}}.error.svelte-16qbe83{padding:8px 16px;font-size:13px;color:var(--red)}.channel-list.svelte-16qbe83{flex:1;overflow:auto;padding:8px}.empty.svelte-16qbe83{color:var(--text-2);font-size:13px;text-align:center;padding:20px}.channel-row.svelte-16qbe83{display:flex;align-items:center;justify-content:space-between;padding:8px;border-radius:var(--radius)}.channel-row.svelte-16qbe83:hover{background:var(--bg-2)}.channel-info.svelte-16qbe83{display:flex;flex-direction:column;gap:2px}.channel-name.svelte-16qbe83{font-size:14px;color:var(--text-0);font-weight:500}.channel-meta.svelte-16qbe83{font-size:12px;color:var(--text-2)}.action-btn.svelte-16qbe83{padding:4px 12px;font-size:12px;border-radius:var(--radius);background:var(--accent-dim);color:var(--accent);font-weight:500}.action-btn.leave.svelte-16qbe83{background:var(--bg-3);color:var(--text-2)}.create-section.svelte-16qbe83{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--border)}.name-input.svelte-16qbe83{flex:1;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;color:var(--text-0);font-size:13px;font-family:inherit;outline:none}.name-input.svelte-16qbe83:focus{border-color:var(--border-bright)}.create-btn.svelte-16qbe83{padding:8px 14px;background:var(--accent-dim);color:var(--accent);border-radius:var(--radius);font-size:13px;font-weight:500}.create-btn.svelte-16qbe83:disabled{opacity:.4}.invite-body.svelte-19tj18b{padding:12px 16px 16px}.search-input.svelte-19tj18b{width:100%;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;color:var(--text-0);font-size:14px;outline:none;box-sizing:border-box}.search-input.svelte-19tj18b:focus{border-color:var(--border-bright)}.error.svelte-19tj18b{color:var(--red);font-size:13px;padding:6px 0 0}.user-list.svelte-19tj18b{max-height:280px;overflow:auto;margin-top:8px}.user-row.svelte-19tj18b{display:flex;align-items:center;gap:8px;padding:8px;width:100%;background:none;text-align:left;font-size:14px;color:var(--text-1);cursor:pointer;border-radius:var(--radius)}.user-row.svelte-19tj18b:hover:not(:disabled){background:var(--bg-2)}.user-row.svelte-19tj18b:disabled{opacity:.5;cursor:not-allowed}.user-name.svelte-19tj18b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;color:var(--text-0)}.user-username.svelte-19tj18b{font-size:12px;color:var(--text-2);margin-left:auto;flex-shrink:0}.status-dot.svelte-19tj18b{width:7px;height:7px;border-radius:50%;flex-shrink:0}.status-dot.iridescent.svelte-19tj18b{animation:svelte-19tj18b-iridescent 3s ease-in-out infinite}@keyframes svelte-19tj18b-iridescent{0%{background:#4ade80}16%{background:#60a5fa}33%{background:#c084fc}50%{background:#f472b6}66%{background:#fbbf24}83%{background:#34d399}to{background:#4ade80}}.empty.svelte-19tj18b{color:var(--text-2);font-size:13px;padding:12px 8px;text-align:center}.hover-wrapper.svelte-1sojsey{display:flex;align-items:center;gap:8px}.hover-card.svelte-1sojsey{position:fixed;z-index:100;display:flex;gap:10px;padding:10px 12px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 12px #0000004d;white-space:nowrap;pointer-events:none}.avatar.svelte-1sojsey{width:64px;height:64px;border-radius:var(--radius);object-fit:cover;flex-shrink:0}.info.svelte-1sojsey{display:flex;flex-direction:column;gap:2px;min-width:0}.name-row.svelte-1sojsey{display:flex;align-items:center;gap:6px}.display-name.svelte-1sojsey{font-size:14px;font-weight:600;color:var(--text-0)}.type-label.svelte-1sojsey{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);background:var(--muted-bg);padding:1px 6px;border-radius:var(--radius)}.description.svelte-1sojsey{font-size:12px;color:var(--text-1);white-space:normal;max-width:220px;margin-top:2px}.meta.svelte-1sojsey{font-size:11px;color:var(--text-2);margin-top:2px}.view-profile.svelte-1sojsey{font-size:11px;color:var(--accent);margin-top:2px;text-decoration:none;pointer-events:auto}.view-profile.svelte-1sojsey:hover{text-decoration:underline}.members-panel.svelte-488b49{display:flex;flex-direction:column;height:100%;background:var(--bg-1);width:100%;overflow:hidden}.panel-header.svelte-488b49{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.panel-title.svelte-488b49{font-size:14px;font-weight:600;color:var(--text-0)}.member-count.svelte-488b49{font-size:12px;color:var(--text-2);flex:1}.invite-btn.svelte-488b49{background:none;color:var(--text-2);font-size:15px;padding:2px 6px;border-radius:var(--radius);flex-shrink:0}.invite-btn.svelte-488b49:hover{color:var(--text-0);background:var(--bg-2)}.panel-body.svelte-488b49{flex:1;overflow:auto;padding:12px 0}.section-title.svelte-488b49{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);padding:8px 16px 4px}.member-row.svelte-488b49{display:flex;align-items:center;gap:8px;padding:6px 16px;font-size:14px;color:var(--text-1);width:100%;background:none;border:none;text-align:left}.member-row.clickable.svelte-488b49{cursor:pointer}.member-row.clickable.svelte-488b49:hover{background:var(--bg-2)}.member-name.svelte-488b49{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;color:var(--text-0)}.status-dot.svelte-488b49{width:7px;height:7px;border-radius:50%;flex-shrink:0}.status-dot.iridescent.svelte-488b49{animation:svelte-488b49-iridescent 3s ease-in-out infinite}@keyframes svelte-488b49-iridescent{0%{background:#4ade80}16%{background:#60a5fa}33%{background:#c084fc}50%{background:#f472b6}66%{background:#fbbf24}83%{background:#34d399}to{background:#4ade80}}@media(max-width:1024px){.members-panel.svelte-488b49{width:100%}}.conv-list.svelte-2bx51q{display:flex;flex-direction:column}.section-header.svelte-2bx51q{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 4px;font-size:11px;font-weight:600;color:var(--text-2);letter-spacing:.05em;text-transform:uppercase}.browse-btn.svelte-2bx51q{font-size:11px;color:var(--accent);background:none;padding:0;text-transform:lowercase;letter-spacing:0;font-weight:500}.conv-item.svelte-2bx51q{padding:6px 12px 6px 26px;margin:0 4px;cursor:pointer;border-radius:var(--radius);display:flex;flex-direction:column;gap:2px;transition:background .1s}.conv-item.svelte-2bx51q:hover{background:var(--bg-2)}.conv-item.active.svelte-2bx51q{background:var(--bg-3)}.conv-item-header.svelte-2bx51q{display:flex;align-items:center;justify-content:space-between;gap:4px}.conv-item-label.svelte-2bx51q{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;color:var(--text-1);display:flex;align-items:center;gap:6px}.conv-item-label.active.svelte-2bx51q{color:var(--text-0)}.conv-item-label.unread.svelte-2bx51q{font-weight:600;color:var(--text-0)}.unread-badge.svelte-2bx51q{background:var(--accent);color:var(--bg-0);font-size:11px;font-weight:600;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px;flex-shrink:0}.conv-label-text.svelte-2bx51q{overflow:hidden;text-overflow:ellipsis}.conv-label-mind.svelte-2bx51q{overflow:hidden;text-overflow:ellipsis;background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer}.conv-label-mind.svelte-2bx51q:hover{text-decoration:underline}.seed-tag.svelte-2bx51q{font-size:9px;color:var(--yellow);flex-shrink:0}.delete-btn.svelte-2bx51q{background:transparent;color:var(--text-2);font-size:12px;padding:0 4px;flex-shrink:0}.menu-btn.svelte-2bx51q{background:transparent;color:var(--text-2);font-size:12px;padding:0 4px;flex-shrink:0;opacity:0;transition:opacity .1s;letter-spacing:1px}.conv-item.svelte-2bx51q:hover .menu-btn:where(.svelte-2bx51q),.menu-btn.visible.svelte-2bx51q{opacity:1}.menu-btn.svelte-2bx51q:hover{color:var(--text-0)}.member-count.svelte-2bx51q{font-size:11px;color:var(--text-2);padding-left:1px}.status-dot.svelte-2bx51q{width:7px;height:7px;border-radius:50%;flex-shrink:0;border:none;padding:0;cursor:pointer}.status-dot.iridescent.svelte-2bx51q{animation:svelte-2bx51q-iridescent 3s ease-in-out infinite}@keyframes svelte-2bx51q-iridescent{0%{background:#4ade80}16%{background:#60a5fa}33%{background:#c084fc}50%{background:#f472b6}66%{background:#fbbf24}83%{background:#34d399}to{background:#4ade80}}.status-dot.svelte-2bx51q:hover{transform:scale(1.3)}.empty.svelte-2bx51q{color:var(--text-2);font-size:12px;padding:8px 12px;text-align:center}.context-menu.svelte-2bx51q{position:fixed;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);padding:4px 0;z-index:200;min-width:120px;box-shadow:0 4px 12px #0000004d}.context-item.svelte-2bx51q{display:block;width:100%;padding:6px 12px;background:none;color:var(--text-1);font-size:13px;text-align:left;white-space:nowrap}.context-item.svelte-2bx51q:hover{background:var(--bg-2);color:var(--text-0)}@media(max-width:767px){.conv-item.svelte-2bx51q{padding:10px 12px 10px 26px}.menu-btn.svelte-2bx51q{opacity:1}.context-item.svelte-2bx51q{padding:10px 16px}}.sidebar-inner.svelte-1kobr7n{display:flex;flex-direction:column;height:100%;overflow:hidden}.sections.svelte-1kobr7n{flex:1;overflow-y:auto;overflow-x:hidden;padding-top:4px}.section.svelte-1kobr7n{margin-bottom:2px}.section-header-row.svelte-1kobr7n{display:flex;align-items:center;padding-right:8px}.section-toggle.svelte-1kobr7n{display:flex;align-items:center;gap:4px;flex:1;padding:6px 12px;background:none;color:var(--text-2);font-family:var(--display);font-size:16px;font-weight:300;letter-spacing:.02em;text-align:left}.section-toggle.svelte-1kobr7n:hover{color:var(--text-1)}.toggle-icon.svelte-1kobr7n{font-size:9px;width:10px}.section-add.svelte-1kobr7n{background:none;color:var(--text-2);font-size:15px;padding:2px 6px;border-radius:var(--radius);flex-shrink:0}.section-add.svelte-1kobr7n:hover{color:var(--text-0);background:var(--bg-2)}.mind-list.svelte-1kobr7n{display:flex;flex-direction:column}.mind-item.svelte-1kobr7n{display:flex;align-items:center;gap:8px;width:100%;padding:6px 12px 6px 26px;font-size:14px;color:var(--text-1);transition:background .1s;cursor:pointer;background:none;text-align:left;margin:0 4px;border-radius:var(--radius)}.mind-item.svelte-1kobr7n:hover{background:var(--bg-2)}.mind-item.active.svelte-1kobr7n{background:var(--bg-2);color:var(--text-0)}.mind-item-name.svelte-1kobr7n{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.unread-dot.svelte-1kobr7n{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0}.status-dot.svelte-1kobr7n{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-dot.iridescent.svelte-1kobr7n{animation:svelte-1kobr7n-iridescent 3s ease-in-out infinite}@keyframes svelte-1kobr7n-iridescent{0%{background:#4ade80}16%{background:#60a5fa}33%{background:#c084fc}50%{background:#f472b6}66%{background:#fbbf24}83%{background:#34d399}to{background:#4ade80}}@media(max-width:767px){.mind-item.svelte-1kobr7n{padding:10px 12px 10px 26px;font-size:14px}.section-toggle.svelte-1kobr7n{padding:8px 12px}.status-dot.svelte-1kobr7n{width:8px;height:8px}}.container.svelte-zwrylj{display:flex;align-items:center;justify-content:center;height:100%;padding:24px}.card.svelte-zwrylj{width:320px;padding:32px;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-lg)}.branding.svelte-zwrylj{margin-bottom:24px;text-align:center}.logo-row.svelte-zwrylj{display:flex;align-items:center;justify-content:center;gap:4px;margin-bottom:4px}.logo-wrap.svelte-zwrylj{position:relative;width:34px;height:34px;flex-shrink:0}.login-spiral.svelte-zwrylj{width:34px;height:34px;filter:invert(1);transition:opacity .15s}.hover-dot.svelte-zwrylj{position:absolute;inset:0;margin:auto;width:10px;height:10px;border-radius:50%;opacity:0;transition:opacity .15s;animation:svelte-zwrylj-iridescent 3s ease-in-out infinite}.card.svelte-zwrylj:hover .login-spiral:where(.svelte-zwrylj){opacity:0}.card.svelte-zwrylj:hover .hover-dot:where(.svelte-zwrylj){opacity:1}.logo.svelte-zwrylj{font-family:var(--display);font-size:31px;font-weight:300;color:var(--text-0);letter-spacing:.04em;margin-top:-4px}.subtitle.svelte-zwrylj{color:var(--text-2);font-size:13px}@keyframes svelte-zwrylj-iridescent{0%{background:#4ade80}16%{background:#60a5fa}33%{background:#c084fc}50%{background:#f472b6}66%{background:#fbbf24}83%{background:#34d399}to{background:#4ade80}}.input.svelte-zwrylj{width:100%;padding:10px 12px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-0);font-family:inherit;font-size:14px;outline:none}.input.svelte-zwrylj:focus{border-color:var(--border-bright)}.mt-8.svelte-zwrylj{margin-top:8px}.error.svelte-zwrylj{color:var(--red);font-size:13px;margin-top:8px}.submit-btn.svelte-zwrylj{width:100%;padding:10px 16px;margin-top:16px;background:var(--accent-dim);color:var(--accent);border-radius:var(--radius);font-size:14px;font-weight:500;font-family:inherit;border:none;cursor:pointer}.link-btn.svelte-zwrylj{background:transparent;color:var(--text-2);font-size:13px;font-family:inherit;border:none;cursor:pointer;padding:0}.toggle.svelte-zwrylj{margin-top:16px;text-align:center}.pending-msg.svelte-zwrylj{color:var(--yellow);margin-bottom:16px}.chat-home.svelte-1ixpw90{animation:fadeIn .2s ease both;height:100%;overflow:auto;padding:24px}.empty.svelte-1ixpw90{color:var(--text-2);font-size:13px;padding:40px 0;text-align:center}.feed-grid.svelte-1ixpw90{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.feed-card.svelte-1ixpw90{background:var(--bg-0);border:1px solid color-mix(in srgb,var(--blue) 25%,var(--border));border-radius:var(--radius-lg);display:flex;flex-direction:column;height:240px;overflow:hidden;transition:border-color .15s;cursor:pointer}.feed-card.svelte-1ixpw90:hover{border-color:color-mix(in srgb,var(--blue) 50%,var(--border))}.feed-card-header.svelte-1ixpw90{padding:6px 8px 6px 10px;font-size:13px;font-weight:500;color:var(--text-1);border-bottom:1px solid color-mix(in srgb,var(--blue) 25%,var(--border));flex-shrink:0;display:flex;align-items:center;gap:6px}.feed-card-icon.svelte-1ixpw90{flex-shrink:0;width:14px;height:14px;color:var(--blue)}.feed-card-label.svelte-1ixpw90{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.feed-card-meta.svelte-1ixpw90{font-size:11px;color:var(--text-2);font-weight:400;flex-shrink:0;margin-left:auto}.feed-card-body.svelte-1ixpw90{flex:1;overflow:auto;padding:8px 12px;min-height:0}.card-action-btn.svelte-1ixpw90{font-size:12px;padding:2px 10px;border-radius:var(--radius);cursor:pointer;flex-shrink:0;background:var(--accent);border:1px solid var(--accent);color:var(--bg-0);transition:opacity .15s}.card-action-btn.svelte-1ixpw90:hover{opacity:.85}.msg-empty.svelte-1ixpw90{color:var(--text-2);font-size:13px;padding:16px 0;text-align:center}.chat-entry.svelte-1ixpw90{padding:1px 0}.chat-entry.new-sender.svelte-1ixpw90{margin-top:8px}.chat-entry.svelte-1ixpw90:first-child{margin-top:0}.chat-entry-header.svelte-1ixpw90{display:flex;align-items:baseline;gap:6px;margin-bottom:1px}.chat-sender.svelte-1ixpw90{font-size:12px;font-weight:600;color:var(--accent)}.chat-sender-user.svelte-1ixpw90{color:var(--blue)}.chat-timestamp.svelte-1ixpw90{font-size:11px;color:var(--text-2)}.chat-entry-content.svelte-1ixpw90{min-width:0;font-family:var(--mono);font-size:13px}.chat-user-text.svelte-1ixpw90{color:var(--text-0);white-space:pre-wrap}@media(max-width:767px){.chat-home.svelte-1ixpw90{padding:16px}}.feed-card.svelte-c9eofw{background:var(--bg-0);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;height:240px;overflow:hidden;transition:border-color .15s;cursor:pointer}.feed-card.svelte-c9eofw:hover{border-color:var(--border-bright)}.feed-card-header.svelte-c9eofw{padding:6px 8px 6px 10px;font-size:13px;font-weight:500;color:var(--text-1);border-bottom:1px solid var(--border);flex-shrink:0;display:flex;align-items:center;gap:6px}.feed-card-icon.svelte-c9eofw{display:flex;flex-shrink:0}.feed-card-icon.svelte-c9eofw svg{width:14px;height:14px}.feed-card-label.svelte-c9eofw{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.feed-card-author.svelte-c9eofw{font-size:11px;color:var(--accent);flex-shrink:0}.feed-card-meta.svelte-c9eofw{font-size:11px;color:var(--text-2);font-weight:400;flex-shrink:0;margin-left:auto}.feed-card-body.svelte-c9eofw{flex:1;overflow:hidden;min-height:0}.body-html.svelte-c9eofw{padding:8px 12px;font-size:13px;color:var(--text-0);line-height:1.5;overflow:hidden;height:100%}.page-preview.svelte-c9eofw{width:100%;height:100%;border:none;pointer-events:none;background:#fff;opacity:0;transition:opacity .15s}.page-preview.loaded.svelte-c9eofw{opacity:1}.home.svelte-1egy5tu{animation:fadeIn .2s ease both}.empty-hint.svelte-1egy5tu{color:var(--text-2);font-size:13px;padding:40px 0;text-align:center}.feed-grid.svelte-1egy5tu{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.feed-item.svelte-1egy5tu{min-width:0}.feed-card.svelte-1egy5tu{background:var(--bg-0);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;height:240px;overflow:hidden;transition:border-color .15s}.feed-card[role=button].svelte-1egy5tu{cursor:pointer}.feed-card-header.svelte-1egy5tu{padding:6px 8px 6px 10px;font-size:13px;font-weight:500;color:var(--text-1);border-bottom:1px solid var(--border);flex-shrink:0;display:flex;align-items:center;gap:6px}.feed-card-icon.svelte-1egy5tu{flex-shrink:0;width:14px;height:14px}.card-chat.svelte-1egy5tu .feed-card-icon:where(.svelte-1egy5tu){color:var(--blue)}.card-chat.svelte-1egy5tu{border-color:color-mix(in srgb,var(--blue) 25%,var(--border))}.card-chat.svelte-1egy5tu .feed-card-header:where(.svelte-1egy5tu){border-bottom-color:color-mix(in srgb,var(--blue) 25%,var(--border))}.card-chat.svelte-1egy5tu:hover{border-color:color-mix(in srgb,var(--blue) 50%,var(--border))}.feed-card-label.svelte-1egy5tu{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.feed-card-meta.svelte-1egy5tu{font-size:11px;color:var(--text-2);font-weight:400;flex-shrink:0;margin-left:auto}.feed-card-body.svelte-1egy5tu{flex:1;overflow:auto;padding:10px 12px;min-height:0}.card-action-btn.svelte-1egy5tu{font-size:12px;padding:2px 10px;border-radius:var(--radius);cursor:pointer;flex-shrink:0;background:none;border:1px solid var(--border);color:var(--text-2);transition:color .15s,border-color .15s}.card-action-btn.svelte-1egy5tu:hover{color:var(--text-1);border-color:var(--border-bright)}.card-action-btn-primary.svelte-1egy5tu{background:var(--accent);border-color:var(--accent);color:var(--bg-0)}.card-action-btn-primary.svelte-1egy5tu:hover{opacity:.85;color:var(--bg-0);border-color:var(--accent)}.chat-body.svelte-1egy5tu{padding:8px 12px}.msg-empty.svelte-1egy5tu{color:var(--text-2);font-size:13px;padding:16px 0;text-align:center}.chat-entry.svelte-1egy5tu{padding:1px 0}.chat-entry.new-sender.svelte-1egy5tu{margin-top:8px}.chat-entry.svelte-1egy5tu:first-child{margin-top:0}.chat-entry-header.svelte-1egy5tu{display:flex;align-items:baseline;gap:6px;margin-bottom:1px}.chat-sender.svelte-1egy5tu{font-size:12px;font-weight:600;color:var(--accent)}.chat-sender-user.svelte-1egy5tu{color:var(--blue)}.chat-timestamp.svelte-1egy5tu{font-size:11px;color:var(--text-2)}.chat-entry-content.svelte-1egy5tu{min-width:0;font-family:var(--mono);font-size:13px}.chat-user-text.svelte-1egy5tu{color:var(--text-0);white-space:pre-wrap}.badge.svelte-w1qana{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:var(--radius);font-size:12px;font-weight:500;letter-spacing:.02em;text-transform:uppercase}.dot.svelte-w1qana{width:5px;height:5px;border-radius:50%}.dot.iridescent.svelte-w1qana{animation:svelte-w1qana-iridescent 3s ease-in-out infinite}@keyframes svelte-w1qana-breathe{0%,to{opacity:.4}50%{opacity:1}}@keyframes svelte-w1qana-iridescent{0%{background:#4ade80}16%{background:#60a5fa}33%{background:#c084fc}50%{background:#f472b6}66%{background:#fbbf24}83%{background:#34d399}to{background:#4ade80}}.empty.svelte-wh20l9{color:var(--text-2);padding:24px;text-align:center;font-size:14px}.empty.small.svelte-wh20l9{padding:12px}.error.svelte-wh20l9{color:var(--red);padding:8px 0;font-size:13px}.section.svelte-wh20l9{margin-bottom:24px}.section-title.svelte-wh20l9{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);margin-bottom:8px}.section-header.svelte-wh20l9{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.status-row.svelte-wh20l9{display:flex;align-items:center;gap:10px}.action-btn.svelte-wh20l9{padding:4px 12px;border-radius:var(--radius);font-size:12px;font-weight:500;transition:opacity .15s}.start-btn.svelte-wh20l9{background:var(--accent-dim);color:var(--accent)}.stop-btn.svelte-wh20l9{background:var(--red-dim);color:var(--red)}.setting-row.svelte-wh20l9{display:flex;align-items:center;gap:12px;padding:6px 0}.setting-label.svelte-wh20l9{width:100px;flex-shrink:0;font-size:14px;color:var(--text-1)}.setting-control.svelte-wh20l9{display:flex;align-items:center;gap:6px;flex:1}.setting-input.svelte-wh20l9{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:4px 8px;font-size:14px;color:var(--text-0);flex:1;font-family:inherit}.setting-input.narrow.svelte-wh20l9{width:80px;flex:0 0 80px}.setting-input.svelte-wh20l9:focus{border-color:var(--accent);outline:none}.setting-select.svelte-wh20l9{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:4px 8px;font-size:14px;color:var(--text-0);font-family:inherit}.setting-hint.svelte-wh20l9{font-size:13px;color:var(--text-2);flex-shrink:0}.save-btn.svelte-wh20l9{padding:4px 10px;font-size:12px;border-radius:var(--radius);background:var(--accent-dim);color:var(--accent);font-weight:500;flex-shrink:0}.save-btn.svelte-wh20l9:disabled{opacity:.5}.cancel-btn.svelte-wh20l9{padding:4px 10px;font-size:12px;border-radius:var(--radius);background:var(--bg-3);color:var(--text-2);font-weight:500;flex-shrink:0}.add-btn.svelte-wh20l9{padding:4px 12px;font-size:12px;border-radius:var(--radius);background:var(--accent-dim);color:var(--accent);font-weight:500}.env-list.svelte-wh20l9{display:flex;flex-direction:column}.env-row.svelte-wh20l9{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border);font-size:14px}.env-row.svelte-wh20l9:last-child{border-bottom:none}.env-add-row.svelte-wh20l9{display:flex;align-items:center;gap:6px;padding:6px 0;margin-bottom:8px}.env-key.svelte-wh20l9{font-family:var(--mono);font-size:13px;color:var(--text-0);flex-shrink:0;min-width:100px;display:flex;align-items:center;gap:6px}.env-source.svelte-wh20l9{font-family:inherit;font-size:11px;padding:1px 4px;border-radius:4px;background:var(--bg-3);color:var(--text-2)}.env-value.svelte-wh20l9{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);font-size:13px;color:var(--text-1)}.env-value.masked.svelte-wh20l9{color:var(--text-2)}.env-input.svelte-wh20l9{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:4px 8px;font-size:13px;color:var(--text-0);font-family:var(--mono)}.env-input.key.svelte-wh20l9{width:120px;flex-shrink:0}.env-input.value.svelte-wh20l9{flex:1}.icon-btn.svelte-wh20l9{padding:2px 6px;font-size:11px;border-radius:var(--radius);background:var(--bg-3);color:var(--text-2);flex-shrink:0}.icon-btn.svelte-wh20l9:hover{color:var(--text-0)}.icon-btn.danger.svelte-wh20l9:hover{color:var(--red)}.modal-body.svelte-l4ioia{flex:1;overflow:auto;padding:8px 16px 16px}.error.svelte-l4ioia{color:var(--red);padding:8px 0;font-size:13px}.empty.svelte-l4ioia{color:var(--text-2);padding:24px;text-align:center;font-size:14px}.skill-list.svelte-l4ioia{display:flex;flex-direction:column}.skill-row.svelte-l4ioia{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.skill-row.svelte-l4ioia:last-child{border-bottom:none}.skill-info.svelte-l4ioia{flex:1;min-width:0}.skill-name.svelte-l4ioia{font-size:14px;font-weight:500;color:var(--text-0)}.skill-desc.svelte-l4ioia{font-size:13px;color:var(--text-1);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skill-meta.svelte-l4ioia{font-size:12px;color:var(--text-2);margin-top:2px}.skill-actions.svelte-l4ioia{flex-shrink:0}.installed-tag.svelte-l4ioia{font-size:12px;color:var(--text-2);font-style:italic}.action-btn.svelte-l4ioia{padding:4px 10px;font-size:12px;border-radius:var(--radius);font-weight:500}.action-btn.svelte-l4ioia:disabled{opacity:.5}.install-btn.svelte-l4ioia{background:var(--accent-dim);color:var(--accent)}.error.svelte-jfofjj{color:var(--red);padding:8px 0;font-size:13px}.empty.svelte-jfofjj{color:var(--text-2);padding:12px 0;font-size:14px}.section-header.svelte-jfofjj{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.section-title.svelte-jfofjj{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2)}.add-btn.svelte-jfofjj{padding:4px 12px;font-size:12px;border-radius:var(--radius);background:var(--accent-dim);color:var(--accent);font-weight:500}.skill-list.svelte-jfofjj{display:flex;flex-direction:column}.skill-row.svelte-jfofjj{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--border)}.skill-row.svelte-jfofjj:last-child{border-bottom:none}.skill-row.svelte-jfofjj:hover{background:var(--bg-2)}.skill-info.svelte-jfofjj{flex:1;min-width:0}.skill-name.svelte-jfofjj{font-size:14px;font-weight:500;color:var(--text-0);display:flex;align-items:center;gap:8px}.skill-desc.svelte-jfofjj{font-size:13px;color:var(--text-1);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skill-meta.svelte-jfofjj{font-size:12px;color:var(--text-2);margin-top:2px}.update-badge.svelte-jfofjj{font-size:11px;padding:1px 6px;border-radius:8px;background:var(--accent-dim);color:var(--accent);font-weight:500}.upstream-tag.svelte-jfofjj{color:var(--text-2)}.local-tag.svelte-jfofjj{font-style:italic;color:var(--text-2)}.skill-actions.svelte-jfofjj{display:flex;gap:4px;flex-shrink:0}.action-btn.svelte-jfofjj{padding:4px 10px;font-size:12px;border-radius:var(--radius);font-weight:500}.action-btn.svelte-jfofjj:disabled{opacity:.5}.update-btn.svelte-jfofjj{background:var(--accent-dim);color:var(--accent)}.publish-btn.svelte-jfofjj{background:var(--bg-3);color:var(--text-1)}.remove-btn.svelte-jfofjj{background:var(--bg-3);color:var(--text-2)}.remove-btn.svelte-jfofjj:hover{color:var(--red)}.public-files.svelte-1feyap9{height:100%;display:flex;flex-direction:column}.empty.svelte-1feyap9{color:var(--text-2);font-size:13px;padding:24px;text-align:center}.error-text.svelte-1feyap9{color:var(--red)}.browser.svelte-1feyap9{display:flex;flex-direction:column;flex:1;min-height:0}.file-list.svelte-1feyap9{flex-shrink:0;max-height:40%;border-bottom:1px solid var(--border);overflow:auto;display:flex;flex-direction:column}.breadcrumb.svelte-1feyap9{display:flex;flex-wrap:wrap;padding:8px 10px;font-size:12px;border-bottom:1px solid var(--border);gap:0}.crumb.svelte-1feyap9{background:none;color:var(--accent);font-family:inherit;font-size:12px;padding:0;cursor:pointer}.crumb.svelte-1feyap9:hover{text-decoration:underline}.file-row.svelte-1feyap9{display:flex;align-items:center;gap:6px;padding:5px 10px;font-size:13px;color:var(--text-1);background:none;text-align:left;cursor:pointer;width:100%;border-bottom:1px solid var(--border)}.file-row.svelte-1feyap9:last-child{border-bottom:none}.file-row.svelte-1feyap9:hover{background:var(--bg-2)}.file-row.active.svelte-1feyap9{background:var(--accent-bg);color:var(--accent)}.file-icon.svelte-1feyap9{font-size:12px;flex-shrink:0}.file-name.svelte-1feyap9{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono)}.empty-dir.svelte-1feyap9{color:var(--text-2);font-size:12px;padding:16px;text-align:center}.preview.svelte-1feyap9{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.preview-header.svelte-1feyap9{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;border-bottom:1px solid var(--border);font-size:13px;flex-shrink:0}.preview-filename.svelte-1feyap9{font-family:var(--mono);color:var(--text-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-link.svelte-1feyap9{color:var(--accent);font-size:12px;text-decoration:none;flex-shrink:0;margin-left:8px}.preview-link.svelte-1feyap9:hover{text-decoration:underline}.preview-empty.svelte-1feyap9{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-2);font-size:13px}.preview-mime.svelte-1feyap9{font-family:var(--mono);font-size:12px}.download-link.svelte-1feyap9{color:var(--accent);font-size:13px;text-decoration:none}.download-link.svelte-1feyap9:hover{text-decoration:underline}.preview-text.svelte-1feyap9{flex:1;overflow:auto;padding:12px;background:var(--bg-0);font-family:var(--mono);font-size:13px;line-height:1.6;color:var(--text-0);white-space:pre-wrap;word-break:break-word;margin:0}.preview-text.svelte-1feyap9 code:where(.svelte-1feyap9){font-family:inherit;font-size:inherit}.preview-image.svelte-1feyap9{flex:1;display:flex;align-items:center;justify-content:center;padding:16px;overflow:auto;background:var(--bg-0)}.preview-image.svelte-1feyap9 img:where(.svelte-1feyap9){max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--radius)}.open-chat-btn.svelte-dhei02{font-size:12px;padding:3px 12px;border-radius:var(--radius);cursor:pointer;background:var(--accent);border:1px solid var(--accent);color:var(--bg-0);font-weight:500;transition:opacity .15s}.open-chat-btn.svelte-dhei02:hover{opacity:.85}.read-only-chat.svelte-dhei02{flex:1;display:flex;flex-direction:column;min-height:0}.chat-empty.svelte-dhei02{color:var(--text-2);font-size:13px;padding:40px;text-align:center}.chat-scroll.svelte-dhei02{flex:1;overflow:auto;padding:12px 16px;min-height:0}.date-divider.svelte-dhei02{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--text-2);font-size:12px}.divider-line.svelte-dhei02{flex:1;height:1px;background:var(--border)}.chat-entry.svelte-dhei02{padding:2px 0}.chat-entry.new-sender.svelte-dhei02{margin-top:12px}.chat-entry.svelte-dhei02:first-child{margin-top:0}.chat-entry-header.svelte-dhei02{display:flex;align-items:baseline;gap:8px;margin-bottom:2px}.chat-sender.svelte-dhei02{font-size:14px;font-weight:600;color:var(--accent)}.chat-sender-user.svelte-dhei02{color:var(--blue)}.chat-timestamp.svelte-dhei02{font-size:12px;color:var(--text-2)}.chat-entry-content.svelte-dhei02{min-width:0;font-family:var(--mono);font-size:14px}.chat-user-text.svelte-dhei02{color:var(--text-0);white-space:pre-wrap}.mind-page.svelte-88sgku{animation:fadeIn .2s ease both;display:flex;flex-direction:column;height:100%;min-height:0;overflow:auto}.not-found.svelte-88sgku{color:var(--text-2);padding:40px;text-align:center}.feed-grid.svelte-88sgku{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.feed-item.svelte-88sgku{min-width:0}.feed-card.svelte-88sgku{background:var(--bg-0);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;height:240px;overflow:hidden;transition:border-color .15s}.feed-card[role=button].svelte-88sgku{cursor:pointer}.feed-card-header.svelte-88sgku{padding:6px 8px 6px 10px;font-size:13px;font-weight:500;color:var(--text-1);border-bottom:1px solid var(--border);flex-shrink:0;display:flex;align-items:center;gap:6px}.feed-card-icon.svelte-88sgku{flex-shrink:0;width:14px;height:14px}.card-chat.svelte-88sgku .feed-card-icon:where(.svelte-88sgku){color:var(--blue)}.card-chat.svelte-88sgku{border-color:color-mix(in srgb,var(--blue) 25%,var(--border))}.card-chat.svelte-88sgku .feed-card-header:where(.svelte-88sgku){border-bottom-color:color-mix(in srgb,var(--blue) 25%,var(--border))}.card-chat.svelte-88sgku:hover{border-color:color-mix(in srgb,var(--blue) 50%,var(--border))}.feed-card-label.svelte-88sgku{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.feed-card-meta.svelte-88sgku{font-size:11px;color:var(--text-2);font-weight:400;flex-shrink:0;margin-left:auto}.feed-card-body.svelte-88sgku{flex:1;overflow:auto;padding:10px 12px;min-height:0}.card-action-btn.svelte-88sgku{font-size:12px;padding:2px 10px;border-radius:var(--radius);cursor:pointer;flex-shrink:0;background:none;border:1px solid var(--border);color:var(--text-2);transition:color .15s,border-color .15s}.card-action-btn.svelte-88sgku:hover{color:var(--text-1);border-color:var(--border-bright)}.card-action-btn-primary.svelte-88sgku{background:var(--accent);border-color:var(--accent);color:var(--bg-0)}.card-action-btn-primary.svelte-88sgku:hover{opacity:.85;color:var(--bg-0);border-color:var(--accent)}.chat-body.svelte-88sgku{padding:8px 12px}.msg-empty.svelte-88sgku{color:var(--text-2);font-size:13px;padding:16px 0;text-align:center}.chat-entry.svelte-88sgku{padding:1px 0}.chat-entry.new-sender.svelte-88sgku{margin-top:8px}.chat-entry.svelte-88sgku:first-child{margin-top:0}.chat-entry-header.svelte-88sgku{display:flex;align-items:baseline;gap:6px;margin-bottom:1px}.chat-sender.svelte-88sgku{font-size:12px;font-weight:600;color:var(--accent)}.chat-sender-user.svelte-88sgku{color:var(--blue)}.chat-timestamp.svelte-88sgku{font-size:11px;color:var(--text-2)}.chat-entry-content.svelte-88sgku{min-width:0;font-family:var(--mono);font-size:13px}.chat-user-text.svelte-88sgku{color:var(--text-0);white-space:pre-wrap}.section-content.svelte-88sgku{flex:1;min-height:0;overflow:auto}.files-section.svelte-88sgku{min-height:300px}.detail-section.svelte-88sgku{margin-top:24px;padding-top:24px;border-top:1px solid var(--border)}.ext-iframe.svelte-88sgku{width:100%;height:100%;border:none;background:var(--bg-0)}.page-content-iframe.svelte-88sgku{background:#fff}.empty-hint.svelte-88sgku{color:var(--text-2);font-size:13px;padding:40px 0;text-align:center}.error.svelte-14apx5e{color:var(--red);padding:8px 12px;font-size:13px}.empty.svelte-14apx5e{color:var(--text-2);padding:24px;text-align:center;font-size:14px}.section-header.svelte-14apx5e{display:flex;align-items:center;justify-content:space-between;padding:0 0 12px;max-width:720px;margin:0 auto}.section-title.svelte-14apx5e{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2)}.upload-area.svelte-14apx5e{display:flex;align-items:center;gap:8px}.file-input.svelte-14apx5e{display:none}.upload-btn.svelte-14apx5e{padding:4px 12px;font-size:12px;border-radius:var(--radius);background:var(--accent-dim);color:var(--accent);font-weight:500}.upload-btn.svelte-14apx5e:disabled{opacity:.5}.skill-list.svelte-14apx5e{display:flex;flex-direction:column;max-width:720px;margin:0 auto}.column-header.svelte-14apx5e{padding:0 0 4px}.column-label.svelte-14apx5e{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.03em;color:var(--text-3)}.skill-row.svelte-14apx5e{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.skill-row.svelte-14apx5e:last-child{border-bottom:none}.skill-row.svelte-14apx5e:hover{background:var(--bg-2)}.default-toggle.svelte-14apx5e{flex-shrink:0;cursor:pointer;display:flex;align-items:center}.default-toggle.svelte-14apx5e input:where(.svelte-14apx5e){position:absolute;opacity:0;width:0;height:0}.toggle-track.svelte-14apx5e{display:inline-block;width:32px;height:18px;border-radius:9px;background:var(--bg-3);position:relative;transition:background .15s}.default-toggle.svelte-14apx5e input:where(.svelte-14apx5e):checked+.toggle-track:where(.svelte-14apx5e){background:var(--accent)}.toggle-thumb.svelte-14apx5e{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--text-2);transition:transform .15s,background .15s}.default-toggle.svelte-14apx5e input:where(.svelte-14apx5e):checked+.toggle-track:where(.svelte-14apx5e) .toggle-thumb:where(.svelte-14apx5e){transform:translate(14px);background:var(--bg-0)}.default-toggle.svelte-14apx5e input:where(.svelte-14apx5e):disabled+.toggle-track:where(.svelte-14apx5e){opacity:.5}.skill-info.svelte-14apx5e{flex:1;min-width:0}.skill-name.svelte-14apx5e{font-size:14px;font-weight:500;color:var(--text-0)}.skill-desc.svelte-14apx5e{font-size:13px;color:var(--text-1);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skill-meta.svelte-14apx5e{font-size:12px;color:var(--text-2);margin-top:2px}.skill-actions.svelte-14apx5e{display:flex;gap:4px;flex-shrink:0}.action-btn.svelte-14apx5e{padding:4px 10px;font-size:12px;border-radius:var(--radius);font-weight:500}.action-btn.svelte-14apx5e:disabled{opacity:.5}.remove-btn.svelte-14apx5e{background:var(--bg-3);color:var(--text-2)}.remove-btn.svelte-14apx5e:hover{color:var(--red)}.system-logs.svelte-y6pt47{display:flex;flex-direction:column;height:100%}.header.svelte-y6pt47{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;flex-shrink:0}.title.svelte-y6pt47{color:var(--text-1);font-size:14px;font-weight:500}.count.svelte-y6pt47{color:var(--text-2);font-size:12px}.filter-bar.svelte-y6pt47{display:flex;align-items:center;gap:6px;margin-bottom:8px;flex-shrink:0;flex-wrap:wrap}.filter-group.svelte-y6pt47{display:flex;gap:4px;flex-wrap:wrap}.filter-sep.svelte-y6pt47{width:1px;height:16px;background:var(--border);margin:0 4px}.pill.svelte-y6pt47{padding:2px 8px;border-radius:10px;font-size:11px;font-family:var(--mono);cursor:pointer;border:1px solid transparent;transition:opacity .1s}.pill-info.svelte-y6pt47,.pill-debug.svelte-y6pt47{background:color-mix(in srgb,var(--text-2) 15%,transparent);color:var(--text-2)}.pill-warn.svelte-y6pt47{background:color-mix(in srgb,var(--yellow) 15%,transparent);color:var(--yellow)}.pill-error.svelte-y6pt47{background:color-mix(in srgb,var(--red) 15%,transparent);color:var(--red)}.pill-cat.svelte-y6pt47{background:var(--bg-3);color:var(--text-2)}.pill-clear.svelte-y6pt47{background:none;color:var(--text-2);border:1px dashed var(--border);margin-left:4px}.pill-clear.svelte-y6pt47:hover{color:var(--text-1);border-color:var(--text-2)}.pill.inactive.svelte-y6pt47{opacity:.3}.pause-bar.svelte-y6pt47{padding:6px 12px;background:var(--bg-3);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--text-2);flex-shrink:0}.resume-btn.svelte-y6pt47{background:var(--accent-dim);color:var(--accent);padding:2px 10px;border-radius:var(--radius);font-size:12px}.log-output.svelte-y6pt47{flex:1;overflow:auto;padding:12px;font-family:var(--mono);font-size:12px;line-height:1.7;color:var(--text-1);background:var(--bg-0);border:1px solid var(--border);border-radius:var(--radius-lg)}.waiting.svelte-y6pt47{color:var(--text-2)}.error.svelte-y6pt47{color:var(--red)}.log-line.svelte-y6pt47{animation:fadeIn .1s ease both;display:flex;gap:1ch}.ts.svelte-y6pt47{color:var(--text-2);flex-shrink:0}.level.svelte-y6pt47{flex-shrink:0;width:5ch}.cat.svelte-y6pt47{color:var(--text-2);opacity:.6;flex-shrink:0;width:12ch;overflow:hidden;text-overflow:ellipsis}.msg.svelte-y6pt47{color:var(--text-0);white-space:pre-wrap;word-break:break-word;min-width:0}.data.svelte-y6pt47{color:var(--text-2);white-space:pre-wrap;word-break:break-word}.container.svelte-1j9xdsd{max-width:600px;animation:fadeIn .2s ease both}.user-list.svelte-1j9xdsd{display:flex;flex-direction:column;gap:6px}.user-card.svelte-1j9xdsd{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s}.user-card.svelte-1j9xdsd:hover,.user-card.expanded.svelte-1j9xdsd{border-color:var(--border-bright)}.user-row.svelte-1j9xdsd{display:flex;align-items:center;gap:10px;padding:10px 14px;width:100%;background:none;cursor:pointer;text-align:left}.status-dot.svelte-1j9xdsd{width:7px;height:7px;border-radius:50%;flex-shrink:0}.status-dot.iridescent.svelte-1j9xdsd{animation:svelte-1j9xdsd-iridescent 3s ease-in-out infinite}@keyframes svelte-1j9xdsd-iridescent{0%{background:#4ade80}16%{background:#60a5fa}33%{background:#c084fc}50%{background:#f472b6}66%{background:#fbbf24}83%{background:#34d399}to{background:#4ade80}}.user-info.svelte-1j9xdsd{flex:1;min-width:0;display:flex;align-items:center;gap:6px}.display-name.svelte-1j9xdsd{font-weight:500;color:var(--text-0);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.username.svelte-1j9xdsd{font-size:12px;color:var(--text-2);flex-shrink:0}.type-icon.svelte-1j9xdsd{width:13px;height:13px;color:var(--text-2);flex-shrink:0}.row-actions.svelte-1j9xdsd{display:flex;align-items:center;gap:8px;flex-shrink:0}.expand-icon.svelte-1j9xdsd{color:var(--text-2);font-size:11px;transition:transform .15s;display:inline-block}.expand-icon.open.svelte-1j9xdsd{transform:rotate(90deg)}.role.svelte-1j9xdsd{font-size:12px;color:var(--text-2)}.role.admin.svelte-1j9xdsd{color:var(--accent)}.role.pending.svelte-1j9xdsd{color:var(--yellow)}.approve-btn.svelte-1j9xdsd{padding:4px 12px;background:var(--accent-dim);color:var(--accent);border-radius:var(--radius);font-size:12px;font-weight:500}.detail-panel.svelte-1j9xdsd{padding:12px 14px;display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--border);margin-top:0}.field.svelte-1j9xdsd{display:flex;flex-direction:column;gap:3px}.field.svelte-1j9xdsd label:where(.svelte-1j9xdsd){font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2)}.field.svelte-1j9xdsd input:where(.svelte-1j9xdsd){background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px;color:var(--text-0);font-size:13px;font-family:inherit}.field.svelte-1j9xdsd input:where(.svelte-1j9xdsd):focus{outline:none;border-color:var(--border-bright)}.field.svelte-1j9xdsd input:where(.svelte-1j9xdsd)::placeholder{color:var(--text-2)}.detail-actions.svelte-1j9xdsd{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px}.left-actions.svelte-1j9xdsd{display:flex;align-items:center;gap:8px}.action-btn.svelte-1j9xdsd{padding:4px 8px;background:none;color:var(--text-2);font-size:12px;border-radius:var(--radius)}.action-btn.svelte-1j9xdsd:hover:not(:disabled){color:var(--text-0);background:var(--bg-3)}.action-btn.svelte-1j9xdsd:disabled{opacity:.4;cursor:not-allowed}.action-btn.danger.svelte-1j9xdsd{color:var(--red)}.action-btn.danger.svelte-1j9xdsd:hover:not(:disabled){background:var(--red-bg);color:var(--red)}.confirm-prompt.svelte-1j9xdsd{font-size:12px;color:var(--red);display:flex;align-items:center;gap:6px}.confirm-yes.svelte-1j9xdsd{padding:2px 8px;background:var(--red-bg);color:var(--red);font-size:12px;border-radius:var(--radius);font-weight:500}.confirm-yes.svelte-1j9xdsd:hover:not(:disabled){background:var(--red);color:var(--bg-0)}.confirm-no.svelte-1j9xdsd{padding:2px 8px;background:none;color:var(--text-2);font-size:12px;border-radius:var(--radius)}.confirm-no.svelte-1j9xdsd:hover{color:var(--text-0);background:var(--bg-3)}.save-btn.svelte-1j9xdsd{padding:4px 12px;background:var(--accent-dim);color:var(--accent);border-radius:var(--radius);font-size:12px;font-weight:500}.save-btn.svelte-1j9xdsd:disabled{opacity:.4;cursor:not-allowed}.save-btn.svelte-1j9xdsd:hover:not(:disabled){background:var(--accent);color:var(--bg-0)}.error.svelte-1j9xdsd{color:var(--red);font-size:12px}.empty.svelte-1j9xdsd{color:var(--text-2);text-align:center;padding:24px}.prompts-page.svelte-1yjhe9c{max-width:720px;margin:0 auto;animation:fadeIn .2s ease both}.error.svelte-1yjhe9c{color:var(--red);font-size:13px;margin-bottom:16px}.loading.svelte-1yjhe9c{color:var(--text-2);font-size:13px;padding:40px 0;text-align:center}.section.svelte-1yjhe9c{margin-bottom:8px}.section-header.svelte-1yjhe9c{display:flex;align-items:baseline;gap:8px;width:100%;padding:10px 12px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;text-align:left;color:inherit;font:inherit}.section-header.svelte-1yjhe9c:hover{border-color:var(--border-bright)}.collapse-icon.svelte-1yjhe9c{font-size:10px;color:var(--text-2);width:12px;flex-shrink:0}.section-title.svelte-1yjhe9c{font-size:14px;font-weight:600;color:var(--text-0)}.section-subtitle.svelte-1yjhe9c{font-size:12px;color:var(--text-2)}.custom-count.svelte-1yjhe9c{font-size:11px;padding:1px 6px;border-radius:3px;background:var(--yellow-dim);color:var(--yellow);margin-left:auto}.section-body.svelte-1yjhe9c{padding:8px 0 0}.prompt-card.svelte-1yjhe9c{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px;margin-bottom:8px}.prompt-card.custom.svelte-1yjhe9c{border-color:var(--yellow-dim)}.prompt-header.svelte-1yjhe9c{display:flex;align-items:center;gap:8px;margin-bottom:4px}.prompt-key.svelte-1yjhe9c{font-family:var(--mono);font-size:14px;font-weight:600;color:var(--text-0)}.custom-badge.svelte-1yjhe9c{font-size:11px;padding:1px 6px;border-radius:3px;background:var(--yellow-dim);color:var(--yellow)}.prompt-desc.svelte-1yjhe9c{font-size:13px;color:var(--text-2);margin-bottom:8px;line-height:1.5}.var-tags.svelte-1yjhe9c{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}.var-tag.svelte-1yjhe9c{font-family:var(--mono);font-size:11px;padding:2px 6px;border-radius:3px;background:var(--bg-3);color:var(--accent);border:1px solid var(--border)}.prompt-content.svelte-1yjhe9c{background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;overflow-x:auto;font-family:var(--mono);font-size:13px;line-height:1.5;color:var(--text-1);white-space:pre-wrap;word-break:break-word;margin-bottom:8px}.prompt-content.svelte-1yjhe9c code:where(.svelte-1yjhe9c){font-family:inherit;font-size:inherit}.edit-area.svelte-1yjhe9c{width:100%;min-height:120px;background:var(--bg-3);border:1px solid var(--accent-dim);border-radius:var(--radius);padding:10px 12px;font-family:var(--mono);font-size:14px;line-height:1.5;color:var(--text-0);resize:vertical;margin-bottom:8px}.edit-area.svelte-1yjhe9c:focus{outline:none;border-color:var(--accent)}.actions.svelte-1yjhe9c{display:flex;gap:6px}.btn.svelte-1yjhe9c{font-family:inherit;font-size:12px;padding:4px 10px;border-radius:var(--radius);cursor:pointer;border:1px solid transparent;transition:opacity .15s}.btn.svelte-1yjhe9c:disabled{opacity:.5;cursor:not-allowed}.btn-edit.svelte-1yjhe9c{background:var(--bg-3);color:var(--text-1);border-color:var(--border)}.btn-edit.svelte-1yjhe9c:hover{color:var(--text-0);border-color:var(--border-bright)}.btn-save.svelte-1yjhe9c{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-border)}.btn-save.svelte-1yjhe9c:hover:not(:disabled){border-color:var(--accent)}.btn-cancel.svelte-1yjhe9c{background:var(--bg-3);color:var(--text-2);border-color:var(--border)}.btn-cancel.svelte-1yjhe9c:hover:not(:disabled){color:var(--text-1)}.btn-reset.svelte-1yjhe9c{background:var(--red-bg);color:var(--red);border-color:var(--red-border)}.btn-reset.svelte-1yjhe9c:hover:not(:disabled){border-color:var(--red)}.settings.svelte-4b0ckc{max-width:720px;margin:0 auto;animation:fadeIn .2s ease both}.error.svelte-4b0ckc{color:var(--red);font-size:13px;margin-bottom:16px}.section.svelte-4b0ckc{margin-bottom:32px}.section-header.svelte-4b0ckc{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}.section-title.svelte-4b0ckc{font-size:15px;font-weight:600;color:var(--text-0)}.section-subtitle.svelte-4b0ckc{font-size:12px;color:var(--text-2)}.empty-state.svelte-4b0ckc{padding:16px;text-align:center;background:var(--bg-2);border:1px dashed var(--border);border-radius:var(--radius-lg);margin-bottom:8px}.provider-card.svelte-4b0ckc{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:10px 16px;margin-bottom:6px}.add-card.svelte-4b0ckc{padding:14px 16px}.provider-row.svelte-4b0ckc{display:flex;align-items:center;gap:8px}.provider-name.svelte-4b0ckc{font-size:13px;font-weight:500;color:var(--text-0);flex:1}.provider-actions.svelte-4b0ckc{display:flex;gap:6px}.provider-config.svelte-4b0ckc{margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.model-tags.svelte-4b0ckc{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.model-tag.svelte-4b0ckc{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:3px 8px;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-0)}.model-tag-remove.svelte-4b0ckc{background:none;border:none;color:var(--text-2);cursor:pointer;font-size:11px;padding:0 2px;line-height:1}.model-tag-remove.svelte-4b0ckc:hover{color:var(--red)}.model-search-wrap.svelte-4b0ckc{position:relative}.model-dropdown.svelte-4b0ckc{position:absolute;top:100%;left:0;right:0;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);margin-top:2px;max-height:240px;overflow-y:auto;z-index:10}.model-option.svelte-4b0ckc{display:flex;align-items:center;gap:8px;width:100%;padding:6px 12px;font-size:13px;background:none;border:none;color:var(--text-0);cursor:pointer;text-align:left}.model-option.svelte-4b0ckc:hover{background:var(--bg-3)}.model-id.svelte-4b0ckc{color:var(--text-0);flex:1}.actions.svelte-4b0ckc{display:flex;gap:6px}.btn.svelte-4b0ckc{font-family:inherit;font-size:12px;padding:4px 10px;border-radius:var(--radius);cursor:pointer;border:1px solid transparent;transition:opacity .15s}.btn.svelte-4b0ckc:disabled{opacity:.5;cursor:not-allowed}.btn-edit.svelte-4b0ckc{background:var(--bg-3);color:var(--text-1);border-color:var(--border)}.btn-edit.svelte-4b0ckc:hover{color:var(--text-0);border-color:var(--border-bright)}.btn-save.svelte-4b0ckc{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-border)}.btn-save.svelte-4b0ckc:hover:not(:disabled){border-color:var(--accent)}.btn-cancel.svelte-4b0ckc{background:var(--bg-3);color:var(--text-2);border-color:var(--border)}.btn-cancel.svelte-4b0ckc:hover:not(:disabled){color:var(--text-1)}.btn-reset.svelte-4b0ckc{background:var(--red-bg);color:var(--red);border-color:var(--red-border)}.btn-reset.svelte-4b0ckc:hover:not(:disabled){border-color:var(--red)}.system-card.svelte-4b0ckc{display:flex;align-items:center;gap:12px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px}.system-info.svelte-4b0ckc{display:flex;align-items:baseline;gap:8px;flex:1}.system-label.svelte-4b0ckc{font-size:13px;color:var(--text-2)}.system-name.svelte-4b0ckc{font-size:14px;font-weight:600;color:var(--text-0)}.system-actions.svelte-4b0ckc{display:flex;gap:6px}.system-form.svelte-4b0ckc{display:flex;align-items:center;gap:6px;flex:1}.system-input.svelte-4b0ckc{flex:1;padding:6px 10px;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-0);font-size:13px;outline:none}.system-input.svelte-4b0ckc:focus{border-color:var(--border-bright)}.oauth-modal.svelte-4b0ckc{margin-top:8px;padding:10px 12px;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:4px}.oauth-link.svelte-4b0ckc{color:var(--accent);font-size:13px;word-break:break-all}.oauth-steps.svelte-4b0ckc{display:flex;flex-direction:column;gap:2px;margin-bottom:6px}.oauth-step.svelte-4b0ckc{font-size:13px;color:var(--text-1)}.dim.svelte-4b0ckc{color:var(--text-2);font-size:12px}.settings-page.svelte-18esbge{display:flex;flex-direction:column;height:100%;animation:fadeIn .2s ease both}.settings-header.svelte-18esbge{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding:0 16px;flex-shrink:0}.tab-row.svelte-18esbge{display:flex;gap:0}.settings-tab.svelte-18esbge{padding:10px 14px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-2);font-size:13px;cursor:pointer;white-space:nowrap}.settings-tab.svelte-18esbge:hover{color:var(--text-1)}.settings-tab.active.svelte-18esbge{color:var(--text-0);border-bottom-color:var(--accent)}.restart-area.svelte-18esbge{display:flex;align-items:center;gap:8px;flex-shrink:0}.restart-error.svelte-18esbge{font-size:12px;color:var(--red, #f87171)}.restart-btn.svelte-18esbge{background:none;border:1px solid var(--border);color:var(--text-2);font-size:12px;padding:4px 10px;border-radius:var(--radius);cursor:pointer;flex-shrink:0}.restart-btn.svelte-18esbge:hover:not(:disabled){color:var(--text-1);border-color:var(--border-bright)}.restart-btn.svelte-18esbge:disabled{opacity:.5}.settings-body.svelte-18esbge{flex:1;overflow:auto;padding:16px}.files-container.svelte-18esbge{height:100%;margin:-16px}.image-strip.svelte-18vyazk{display:flex;gap:8px;padding:8px 0;border-top:1px solid var(--border);overflow-x:auto}.image-preview.svelte-18vyazk{position:relative;flex-shrink:0}.preview-thumb.svelte-18vyazk{height:60px;border-radius:var(--radius);border:1px solid var(--border)}.remove-image.svelte-18vyazk{position:absolute;top:-4px;right:-4px;width:18px;height:18px;border-radius:50%;background:var(--bg-3);color:var(--text-1);font-size:12px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);cursor:pointer;padding:0}.file-strip.svelte-18vyazk{display:flex;gap:8px;padding:8px 0;border-top:1px solid var(--border);overflow-x:auto;flex-wrap:wrap}.file-preview.svelte-18vyazk{display:flex;align-items:center;gap:4px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:4px 8px;font-size:12px;color:var(--text-1)}.file-name.svelte-18vyazk{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.input-area.svelte-18vyazk{border-top:1px solid var(--border);padding:12px 16px 16px;display:flex;gap:8px}.attach-btn.svelte-18vyazk{padding:0 10px;background:var(--bg-2);color:var(--text-1);border-radius:var(--radius);font-size:16px;border:1px solid var(--border);cursor:pointer;flex-shrink:0}.chat-input.svelte-18vyazk{flex:1;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;color:var(--text-0);font-family:var(--mono);font-size:14px;resize:none;outline:none;overflow:hidden;transition:border-color .15s}.chat-input.svelte-18vyazk:focus{border-color:var(--border-bright)}.send-btn.svelte-18vyazk{padding:0 16px;background:var(--bg-3);color:var(--text-2);border-radius:var(--radius);font-size:13px;font-weight:500;transition:all .15s}.send-btn.active.svelte-18vyazk{background:var(--accent-dim);color:var(--accent)}@media(max-width:767px){.chat-input.svelte-18vyazk{font-size:16px}.input-area.svelte-18vyazk{padding-bottom:max(16px,env(safe-area-inset-bottom))}}.tool-block.svelte-11dtec0{margin-bottom:8px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;font-size:13px}.tool-header.svelte-11dtec0{width:100%;display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--bg-3);font-size:13px;font-family:var(--mono);text-align:left}.tool-label.svelte-11dtec0{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.tool-arrow.svelte-11dtec0{color:var(--text-2);margin-right:6px}.tool-status.svelte-11dtec0{color:var(--accent);font-size:11px;flex-shrink:0;margin-left:8px}.tool-status.error.svelte-11dtec0{color:var(--red)}.tool-detail.svelte-11dtec0{padding:10px;background:var(--bg-1)}.tool-section-label.svelte-11dtec0{margin-bottom:6px;color:var(--text-2)}.tool-pre.svelte-11dtec0{color:var(--text-1);white-space:pre-wrap;word-break:break-all;font-size:12px;line-height:1.5}.tool-output.svelte-11dtec0{max-height:200px;overflow:auto}.tool-output.error.svelte-11dtec0{color:var(--red)}.entry.svelte-16zmiqs{padding:2px 0;animation:fadeIn .2s ease both}.entry.new-sender.svelte-16zmiqs{margin-top:12px}.entry-header.svelte-16zmiqs{display:flex;align-items:baseline;gap:8px;margin-bottom:2px}.sender.svelte-16zmiqs{font-size:14px;font-weight:600}.sender-link.svelte-16zmiqs{background:none;border:none;padding:0;font:inherit;font-size:14px;font-weight:600;cursor:pointer}.sender-link.svelte-16zmiqs:hover{text-decoration:underline}.timestamp.svelte-16zmiqs{font-size:12px;color:var(--text-2)}.inline-time.svelte-16zmiqs{display:block;margin-bottom:2px}.entry-content.svelte-16zmiqs{min-width:0;font-family:var(--mono);font-size:14px}.user-text.svelte-16zmiqs{color:var(--text-0);white-space:pre-wrap}.chat-image.svelte-16zmiqs{max-width:300px;max-height:200px;border-radius:var(--radius);margin-top:4px}.messages.svelte-tjsfkk{flex:1;overflow:auto;padding:16px}.empty.svelte-tjsfkk{color:var(--text-2);text-align:center;padding:40px;font-size:14px}.error.svelte-tjsfkk{color:var(--red)}.loading-older.svelte-tjsfkk{text-align:center;padding:8px;font-size:13px;color:var(--text-2)}.load-more.svelte-tjsfkk{text-align:center;padding:8px}.load-more-btn.svelte-tjsfkk{font-size:13px;color:var(--text-2);background:none;border:1px solid var(--border);border-radius:var(--radius);padding:4px 12px;cursor:pointer}.load-more-btn.svelte-tjsfkk:hover{color:var(--text-1);border-color:var(--border-bright)}.divider.svelte-tjsfkk{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--text-2);font-size:12px;letter-spacing:.03em}.divider-line.svelte-tjsfkk{flex:1;height:1px;background:var(--border)}.typing.svelte-em2dtd{padding:4px 0;font-size:13px;color:var(--text-2);animation:pulse 1.5s ease infinite}.chat.svelte-6z343n{display:flex;flex-direction:column;height:100%;padding:0}.orientation-bar.svelte-6z343n{padding:6px 12px;text-align:center;color:var(--yellow);font-size:12px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;opacity:.6;border-bottom:1px solid var(--yellow-bg)}.channel-header.svelte-6z343n{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border);flex-shrink:0}.channel-title.svelte-6z343n{font-size:14px;font-weight:600;color:var(--text-0)}@media(max-width:1024px){.channel-header.svelte-6z343n{display:none}}.main-frame.svelte-n1trtr{height:100%;overflow:hidden;display:flex;flex-direction:column}.frame-content.svelte-n1trtr{flex:1;overflow:auto;min-height:0}.frame-content.padded.svelte-n1trtr{padding:24px}.frame-content.mind-frame.svelte-n1trtr{overflow:hidden}.page-iframe.svelte-n1trtr{width:100%;height:100%;border:none;background:#fff}.mobile-header.svelte-n1trtr{display:none;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg-1)}.hamburger-btn.svelte-n1trtr{display:none;background:none;border:none;color:var(--text-1);font-size:18px;padding:4px 8px;border-radius:var(--radius);cursor:pointer}.hamburger-btn.svelte-n1trtr:hover{background:var(--bg-2)}.mobile-logo.svelte-n1trtr{width:20px;height:20px;filter:invert(1)}.mobile-title.svelte-n1trtr{font-family:var(--display);font-size:18px;font-weight:300;color:var(--text-0);letter-spacing:.04em;margin-left:-4px}.context-label-btn.svelte-n1trtr{margin-left:auto;background:none;border:none;color:var(--text-1);font-size:14px;font-weight:500;padding:4px 0;text-align:right;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.context-label-btn.svelte-n1trtr:hover{color:var(--accent)}@media(max-width:767px){.frame-content.padded.svelte-n1trtr{padding:16px}}.event.svelte-173x8i5{position:relative;padding:6px 8px 6px 20px;animation:fadeIn .2s ease both}.event.svelte-173x8i5:after{content:"";position:absolute;left:-2px;top:12px;bottom:-12px;width:2px;background:var(--type-color);opacity:0;transition:opacity .15s;z-index:1}.event.svelte-173x8i5:hover:after{opacity:1}.event.collapsible.svelte-173x8i5{cursor:pointer}.marker.svelte-173x8i5{position:absolute;left:-5px;top:12px;width:8px;height:8px;border-radius:50%;z-index:1}.event-header.svelte-173x8i5{display:flex;align-items:center;gap:8px;margin-bottom:4px}.time.svelte-173x8i5{font-size:11px;color:var(--text-2);flex-shrink:0}.type-badge.svelte-173x8i5{font-size:11px;padding:1px 6px;border-radius:12px;font-weight:500}.channel-tag.svelte-173x8i5{font-size:11px;color:var(--text-2);background:var(--bg-3);padding:1px 6px;border-radius:var(--radius)}.chevron.svelte-173x8i5{font-size:9px;color:var(--text-2)}.event-body.svelte-173x8i5{font-family:var(--mono);font-size:14px;line-height:1.6}.sender.svelte-173x8i5{font-size:12px;font-weight:600;text-transform:uppercase;margin-right:8px}.sender.inbound.svelte-173x8i5{color:var(--blue)}.sender.outbound.svelte-173x8i5{color:var(--accent)}.user-text.svelte-173x8i5{display:inline;white-space:pre-wrap;color:var(--text-0)}.summary.svelte-173x8i5{font-size:13px;color:var(--text-1)}.summary.error.svelte-173x8i5{color:var(--red)}.dim.svelte-173x8i5{color:var(--text-2)}.detail.svelte-173x8i5,.detail-text.svelte-173x8i5{margin-top:6px;font-size:12px;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;overflow-x:auto;max-height:400px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}.detail.svelte-173x8i5{font-family:var(--mono)}.detail.error.svelte-173x8i5{color:var(--red);border-color:var(--red-dim)}.detail-text.svelte-173x8i5{color:var(--text-2)}.usage-line.svelte-173x8i5{font-size:13px;color:var(--purple)}.model.svelte-173x8i5{color:var(--text-2);margin-left:6px;font-size:12px}.session-id.svelte-173x8i5{font-size:12px;color:var(--text-1);font-weight:600;margin-left:4px}.summary-text.svelte-173x8i5{font-size:13px;color:var(--green)}.time-range.svelte-173x8i5{font-size:11px;color:var(--text-2);margin-left:8px}.filter-container.svelte-h6u4xu{position:relative;flex-shrink:0}.filter-btn.svelte-h6u4xu{position:relative;display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:none;color:var(--text-2);cursor:pointer;border-radius:var(--radius);transition:color .15s,background .15s}.filter-btn.svelte-h6u4xu:hover{color:var(--text-1);background:var(--bg-3)}.filter-btn.active.svelte-h6u4xu{color:var(--accent)}.filter-dot.svelte-h6u4xu{position:absolute;top:4px;right:4px;width:5px;height:5px;border-radius:50%;background:var(--accent)}.filter-popover.svelte-h6u4xu{position:absolute;top:calc(100% + 4px);right:0;width:260px;background:var(--bg-2);border:1px solid var(--border-bright);border-radius:var(--radius);z-index:20;box-shadow:0 4px 16px #0006;padding:8px;display:flex;flex-direction:column;gap:6px}.filter-row.svelte-h6u4xu{display:flex;align-items:center;gap:8px}.filter-label.svelte-h6u4xu{font-size:12px;color:var(--text-2);width:52px;flex-shrink:0;font-family:inherit}.types-row.svelte-h6u4xu{align-items:flex-start;padding-top:4px;border-top:1px solid var(--border);margin-top:2px}.types-grid.svelte-h6u4xu{display:flex;flex-wrap:wrap;gap:4px;flex:1}.types-actions.svelte-h6u4xu{display:flex;gap:4px;width:100%;margin-bottom:2px}.types-action.svelte-h6u4xu{font-size:11px;font-family:inherit;color:var(--text-2);background:none;border:none;cursor:pointer;padding:1px 6px;border-radius:var(--radius)}.types-action.svelte-h6u4xu:hover{color:var(--text-1);background:var(--bg-3)}.type-chip.svelte-h6u4xu{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;font-size:11px;font-family:inherit;color:var(--text-2);background:none;border:none;cursor:pointer;border-radius:var(--radius);transition:color .1s}.type-chip.svelte-h6u4xu:hover{background:var(--bg-3);color:var(--text-1)}.type-chip.active.svelte-h6u4xu{color:var(--text-1)}.type-dot.svelte-h6u4xu{width:5px;height:5px;border-radius:50%;flex-shrink:0;transition:background .15s}.custom-select.svelte-h6u4xu{position:relative;flex:1}.select-trigger.svelte-h6u4xu{display:flex;align-items:center;gap:4px;width:100%;background:var(--bg-3);color:var(--text-1);border:none;border-radius:var(--radius);padding:3px 6px;font-size:12px;font-family:inherit;cursor:pointer;transition:color .15s}.select-trigger.svelte-h6u4xu:hover{color:var(--text-0)}.select-value.svelte-h6u4xu{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.select-arrow.svelte-h6u4xu{font-size:9px;color:var(--text-2);flex-shrink:0}.select-menu.svelte-h6u4xu{position:absolute;top:calc(100% + 2px);left:0;min-width:100%;max-height:200px;overflow-y:auto;background:var(--bg-2);border:1px solid var(--border-bright);border-radius:var(--radius);z-index:30;box-shadow:0 4px 16px #0006}.select-option.svelte-h6u4xu{display:block;width:100%;text-align:left;padding:5px 8px;font-size:12px;font-family:inherit;color:var(--text-1);background:none;border:none;cursor:pointer;white-space:nowrap;transition:background .1s,color .1s}.select-option.svelte-h6u4xu:hover{background:var(--bg-3);color:var(--text-0)}.select-option.selected.svelte-h6u4xu{color:var(--accent)}.option-meta.svelte-h6u4xu{color:var(--text-2);margin-left:4px}.divider.svelte-c707oo{display:flex;align-items:center;gap:12px;margin:20px 0 16px}.line.svelte-c707oo{flex:1;border-top:1px solid var(--border)}.label.svelte-c707oo{font-size:12px;color:var(--text-2);white-space:nowrap;display:flex;align-items:center;gap:6px}.session-id.svelte-c707oo{color:var(--text-1);font-weight:600}.sep.svelte-c707oo{color:var(--border-bright)}.history.svelte-i5te79{display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative}.filter-float.svelte-i5te79{position:absolute;top:4px;right:4px;z-index:10}.timeline.svelte-i5te79{flex:1;overflow-x:hidden;overflow-y:auto}.timeline-rail.svelte-i5te79{position:relative;padding-left:4px;margin-left:3px;min-height:100%}.timeline-rail.svelte-i5te79:before{content:"";position:absolute;left:2px;top:0;bottom:0;width:2px;background:var(--timeline-rail)}.error.svelte-i5te79{color:var(--red);text-align:center;padding:40px;font-size:14px}.empty.svelte-i5te79{color:var(--text-2);text-align:center;padding:40px;font-size:14px}.load-older.svelte-i5te79{padding:8px 0 16px;text-align:center}.load-older-btn.svelte-i5te79{padding:4px 14px;background:var(--bg-3);color:var(--text-1);border-radius:var(--radius);font-size:12px}.loading-more.svelte-i5te79{text-align:center;color:var(--text-2);font-size:13px;padding:12px;animation:pulse 1.5s infinite}.jump-btn.svelte-i5te79{position:absolute;bottom:16px;left:50%;transform:translate(-50%);padding:6px 16px;background:var(--accent-dim);color:var(--accent);border-radius:var(--radius);font-size:13px;animation:fadeIn .2s ease both;z-index:10}.mind-clock.svelte-96nwhr{border-bottom:1px solid var(--border);padding:0 16px 10px;display:flex;flex-direction:column;gap:6px}.clock-row.svelte-96nwhr{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-1)}.clock-row.disabled.svelte-96nwhr{opacity:.4}.clock-icon.svelte-96nwhr{width:13px;height:13px;flex-shrink:0;color:var(--text-2)}.sleep-row.svelte-96nwhr .clock-icon:where(.svelte-96nwhr){color:var(--purple)}.clock-label.svelte-96nwhr{font-weight:500;white-space:nowrap}.clock-detail.svelte-96nwhr{color:var(--text-2);margin-left:auto;text-align:right;white-space:nowrap;font-size:11px}.schedule-list.svelte-96nwhr{display:flex;flex-direction:column;gap:4px}.upcoming-section.svelte-96nwhr{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:11px;color:var(--text-2);margin-top:4px;padding-top:6px;border-top:1px solid var(--border)}.upcoming-label.svelte-96nwhr{font-weight:500;color:var(--text-1)}.upcoming-item.svelte-96nwhr{white-space:nowrap}.mind-panel.svelte-1trk2s9{display:flex;flex-direction:column;height:100%;background:var(--bg-1);width:100%;overflow:hidden;position:relative}.floating-btns.svelte-1trk2s9{position:absolute;top:8px;left:8px;z-index:1;display:flex;gap:4px}.floating-btn.svelte-1trk2s9{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--bg-2);border:1px solid var(--border);color:var(--text-2);cursor:pointer;transition:color .15s,border-color .15s,background .15s}.floating-btn.svelte-1trk2s9:hover{color:var(--text-0);border-color:var(--border-bright);background:var(--bg-3)}.floating-btn.svelte-1trk2s9 svg:where(.svelte-1trk2s9){width:16px;height:16px}.panel-body.svelte-1trk2s9{flex:1;overflow:auto;min-height:0;display:flex;flex-direction:column}.profile-section.svelte-1trk2s9{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 16px 16px}.profile-avatar.svelte-1trk2s9{width:96px;height:96px;border-radius:var(--radius);object-fit:cover}.profile-name.svelte-1trk2s9{font-family:var(--display);font-size:20px;font-weight:300;color:var(--text-0);letter-spacing:.02em;margin-top:4px}.profile-description.svelte-1trk2s9{font-size:14px;color:var(--text-1);text-align:center;max-width:320px;margin:4px 0 0;line-height:1.4}.profile-meta.svelte-1trk2s9{font-size:12px;color:var(--text-2);margin-top:4px}.history-section.svelte-1trk2s9{flex:1;min-height:0;padding:0 16px;border-top:1px solid var(--border)}.modal-content.svelte-esytdb{padding:24px;display:flex;flex-direction:column;gap:14px}.modal-title.svelte-esytdb{font-weight:600;color:var(--text-0);font-size:15px}.field.svelte-esytdb{display:flex;flex-direction:column;gap:4px}.label.svelte-esytdb{color:var(--text-2);font-size:12px}.input.svelte-esytdb{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;color:var(--text-0);font-size:14px;outline:none;font-family:inherit}.select.svelte-esytdb{appearance:auto}.error.svelte-esytdb{color:var(--red);font-size:12px}.actions.svelte-esytdb{display:flex;gap:8px;justify-content:flex-end}.cancel-btn.svelte-esytdb{padding:6px 14px;background:var(--bg-2);color:var(--text-1);border-radius:var(--radius);font-size:13px;border:1px solid var(--border)}.plant-btn.svelte-esytdb{padding:6px 14px;background:var(--yellow);color:var(--bg-0);border-radius:var(--radius);font-size:13px;font-weight:600}.advanced-toggle.svelte-esytdb{background:transparent;color:var(--text-2);font-size:12px;font-family:inherit;border:none;cursor:pointer;padding:0;display:flex;align-items:center;gap:4px;transition:color .15s}.advanced-toggle.svelte-esytdb:hover{color:var(--text-1)}.caret.svelte-esytdb{font-size:8px}.textarea.svelte-esytdb{resize:vertical;min-height:80px;font-size:13px;line-height:1.5}.hint.svelte-esytdb{color:var(--text-2);font-size:11px;font-family:inherit}.skill-list.svelte-esytdb{display:flex;flex-direction:column;gap:4px}.skill-item.svelte-esytdb{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-1);cursor:pointer}.skill-name.svelte-esytdb{font-family:var(--mono)}.sidebar-inner.svelte-1czeook{display:flex;flex-direction:column;height:100%;overflow:hidden}.sections.svelte-1czeook{flex:1;overflow-y:auto;overflow-x:hidden;padding-top:4px}.section.svelte-1czeook{margin-bottom:2px}.section-header-row.svelte-1czeook{display:flex;align-items:center;padding:6px 8px 6px 12px}.section-label.svelte-1czeook{flex:1;color:var(--text-2);font-family:var(--display);font-size:16px;font-weight:300;letter-spacing:.02em}.section-toggle.svelte-1czeook{display:flex;align-items:center;gap:4px;width:100%;padding:6px 12px;background:none;color:var(--text-2);font-family:var(--display);font-size:16px;font-weight:300;letter-spacing:.02em;text-align:left;border-radius:var(--radius);margin:0 4px}.section-toggle.svelte-1czeook:hover{color:var(--text-1)}.section-toggle.active.svelte-1czeook{color:var(--text-0);background:var(--bg-2)}.sub-items.svelte-1czeook{display:flex;flex-direction:column}.sub-item.svelte-1czeook{padding:5px 12px 5px 28px;background:none;color:var(--text-2);font-size:13px;text-align:left;border-radius:var(--radius);margin:0 4px;cursor:pointer}.sub-item.svelte-1czeook:hover{color:var(--text-1);background:var(--bg-2)}.sub-item.active.svelte-1czeook{color:var(--text-0);background:var(--bg-2)}.section-add.svelte-1czeook{background:none;color:var(--text-2);font-size:15px;padding:2px 6px;border-radius:var(--radius);flex-shrink:0}.section-add.svelte-1czeook:hover{color:var(--text-0);background:var(--bg-2)}.mind-list.svelte-1czeook{display:flex;flex-direction:column}.mind-item.svelte-1czeook{display:flex;align-items:center;gap:8px;width:100%;padding:6px 12px 6px 26px;font-size:14px;color:var(--text-1);transition:background .1s;cursor:pointer;background:none;text-align:left;margin:0 4px;border-radius:var(--radius)}.mind-item.svelte-1czeook:hover{background:var(--bg-2)}.mind-item.active.svelte-1czeook{background:var(--bg-2);color:var(--text-0)}.mind-item-name.svelte-1czeook{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.mind-sub-items.svelte-1czeook{display:flex;flex-direction:column}.mind-sub-item.svelte-1czeook{padding:4px 12px 4px 42px;background:none;color:var(--text-2);font-size:12px;text-align:left;border-radius:var(--radius);margin:0 4px;cursor:pointer}.mind-sub-item.svelte-1czeook:hover{color:var(--text-1);background:var(--bg-2)}.mind-sub-item.active.svelte-1czeook{color:var(--text-0);background:var(--bg-2)}.status-dot.svelte-1czeook{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-dot.iridescent.svelte-1czeook{animation:svelte-1czeook-iridescent 3s ease-in-out infinite}@keyframes svelte-1czeook-iridescent{0%{background:#4ade80}16%{background:#60a5fa}33%{background:#c084fc}50%{background:#f472b6}66%{background:#fbbf24}83%{background:#34d399}to{background:#4ade80}}@media(max-width:767px){.mind-item.svelte-1czeook{padding:10px 12px 10px 26px}.section-toggle.svelte-1czeook{padding:8px 12px}.status-dot.svelte-1czeook{width:8px;height:8px}}.tab-switcher.svelte-1dj0bxl{display:flex;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg-1)}.tab-btn.svelte-1dj0bxl{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 0;background:none;color:var(--text-2);font-family:var(--display);font-size:14px;font-weight:400;letter-spacing:.03em;border-bottom:2px solid transparent;cursor:pointer;transition:color .15s,border-color .15s}.tab-btn.svelte-1dj0bxl:hover{color:var(--text-1)}.tab-btn.active.svelte-1dj0bxl{color:var(--text-0);border-bottom-color:var(--accent)}.unread-badge.svelte-1dj0bxl{font-size:10px;font-weight:600;font-family:var(--sans);background:var(--accent);color:var(--bg-0);padding:1px 5px;border-radius:8px;line-height:1.2}.banner.svelte-h3c10m{display:flex;align-items:center;justify-content:center;gap:12px;padding:6px 16px;background:var(--accent-bg);border-bottom:1px solid var(--accent-dim);color:var(--accent);font-size:13px;font-family:inherit;flex-shrink:0}.update-btn.svelte-h3c10m{background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius);padding:2px 10px;font-size:12px;font-family:inherit;cursor:pointer}.dismiss-btn.svelte-h3c10m{background:transparent;color:var(--accent);border:none;font-size:16px;line-height:1;cursor:pointer;padding:0 4px}.error.svelte-h3c10m{color:var(--red)}.updating.svelte-h3c10m{animation:pulse 1.5s ease-in-out infinite}.modal-body.svelte-1453wyc{padding:16px}.section-title.svelte-1453wyc{font-size:13px;font-weight:600;color:var(--text-1);margin:0 0 12px}.field.svelte-1453wyc{display:block;margin-bottom:10px}.label.svelte-1453wyc{display:block;font-size:12px;color:var(--text-2);margin-bottom:4px}input.svelte-1453wyc,textarea.svelte-1453wyc{width:100%;padding:6px 10px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-0);font-size:13px;font-family:inherit;box-sizing:border-box;resize:vertical}input.svelte-1453wyc:focus,textarea.svelte-1453wyc:focus{outline:none;border-color:var(--accent)}.avatar-section.svelte-1453wyc{display:flex;align-items:center;gap:12px;margin-bottom:12px}.avatar-preview.svelte-1453wyc{width:48px;height:48px;border-radius:50%;overflow:hidden;flex-shrink:0;background:var(--bg-2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center}.avatar-img.svelte-1453wyc{width:100%;height:100%;object-fit:cover}.avatar-placeholder.svelte-1453wyc{font-size:18px;color:var(--text-2)}.avatar-actions.svelte-1453wyc{display:flex;gap:8px;align-items:center}.avatar-upload-btn.svelte-1453wyc{padding:4px 10px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-1);font-size:12px;cursor:pointer}.avatar-upload-btn.svelte-1453wyc:hover{border-color:var(--border-bright)}.remove-btn.svelte-1453wyc{padding:4px 10px;background:none;border:1px solid var(--border);border-radius:var(--radius);color:var(--red);font-size:12px;cursor:pointer}.remove-btn.svelte-1453wyc:hover{background:var(--red-bg)}.save-btn.svelte-1453wyc{margin-top:4px;padding:6px 14px;background:var(--accent-dim);color:var(--accent);border-radius:var(--radius);font-size:12px;font-weight:500}.save-btn.svelte-1453wyc:hover:not(:disabled){background:var(--accent);color:var(--bg-0)}.save-btn.svelte-1453wyc:disabled{opacity:.5}.message.svelte-1453wyc{font-size:12px;padding:6px 10px;border-radius:var(--radius);margin-bottom:10px}.message.error.svelte-1453wyc{color:var(--red);background:var(--red-bg)}.message.success.svelte-1453wyc{color:var(--accent);background:var(--accent-dim)}.divider.svelte-1453wyc{border:none;border-top:1px solid var(--border);margin:16px 0}.loading.svelte-14lg4b7{color:var(--text-2);padding:24px;text-align:center}.full-height.svelte-14lg4b7{height:100%}.shell.svelte-14lg4b7{height:100%;display:flex;flex-direction:column}.shell-body.svelte-14lg4b7{flex:1;display:flex;overflow:hidden}.sidebar.svelte-14lg4b7{display:flex;flex-direction:column;flex-shrink:0;border-right:1px solid var(--border);background:var(--bg-1);overflow:hidden}.sidebar-header.svelte-14lg4b7{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;flex-shrink:0;background:none;cursor:pointer;border-bottom:1px solid var(--border)}.header-logo-wrap.svelte-14lg4b7{position:relative;width:30px;height:30px;flex-shrink:0}.sidebar-logo.svelte-14lg4b7{width:30px;height:30px;filter:invert(1);transition:opacity .15s}.hover-dot.svelte-14lg4b7{position:absolute;inset:0;margin:auto;width:10px;height:10px;border-radius:50%;opacity:0;transition:opacity .15s;animation:svelte-14lg4b7-iridescent 3s ease-in-out infinite}.sidebar-header.svelte-14lg4b7:hover .sidebar-logo:where(.svelte-14lg4b7){opacity:0}.sidebar-header.svelte-14lg4b7:hover .hover-dot:where(.svelte-14lg4b7){opacity:1}.sidebar-title.svelte-14lg4b7{font-family:var(--display);font-size:26px;font-weight:300;color:var(--text-0);letter-spacing:.04em;margin-top:-4px;margin-left:-4px}@keyframes svelte-14lg4b7-iridescent{0%{background:#4ade80}16%{background:#60a5fa}33%{background:#c084fc}50%{background:#f472b6}66%{background:#fbbf24}83%{background:#34d399}to{background:#4ade80}}.resize-handle.svelte-14lg4b7{width:4px;cursor:col-resize;flex-shrink:0;background:transparent;transition:background .15s}.resize-handle.svelte-14lg4b7:hover{background:var(--border)}.content-area.svelte-14lg4b7{flex:1;display:flex;overflow:hidden;min-width:0}.main-column.svelte-14lg4b7{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.main-frame.svelte-14lg4b7{flex:1;overflow:hidden;min-width:0}.page-header.svelte-14lg4b7{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.header-hamburger.svelte-14lg4b7{display:none;align-items:center;justify-content:center;background:none;border:none;color:var(--text-1);font-size:18px;padding:4px 8px;border-radius:var(--radius);cursor:pointer;flex-shrink:0}.header-hamburger.svelte-14lg4b7:hover{background:var(--bg-2)}.page-breadcrumbs.svelte-14lg4b7{display:flex;align-items:baseline;gap:8px;font-family:var(--display);font-size:18px;font-weight:300;color:var(--text-0);letter-spacing:.02em;min-width:0;overflow:hidden}.crumb-sep.svelte-14lg4b7{color:var(--text-2);font-size:14px}.crumb-link.svelte-14lg4b7{background:none;border:none;padding:0;font:inherit;color:var(--text-2);cursor:pointer}.crumb-link.svelte-14lg4b7:hover{color:var(--text-0)}.crumb-current.svelte-14lg4b7{color:var(--text-0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-actions.svelte-14lg4b7{display:flex;align-items:center;gap:8px}.user-menu-anchor.svelte-14lg4b7{position:relative}.user-avatar-btn.svelte-14lg4b7{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:none;border:1px solid var(--border);padding:0;cursor:pointer;overflow:hidden;color:var(--text-2)}.user-avatar-btn.svelte-14lg4b7:hover{border-color:var(--border-bright);color:var(--text-1)}.user-avatar-img.svelte-14lg4b7{width:100%;height:100%;object-fit:cover}.user-avatar-btn.svelte-14lg4b7 svg:where(.svelte-14lg4b7){width:14px;height:14px}.user-dropdown.svelte-14lg4b7{position:absolute;top:calc(100% + 4px);right:0;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);min-width:120px;padding:4px 0;z-index:100;box-shadow:0 2px 8px #0000004d}.user-dropdown-item.svelte-14lg4b7{display:block;width:100%;text-align:left;padding:6px 12px;background:none;color:var(--text-1);font-size:13px;white-space:nowrap;border:none;cursor:pointer}.user-dropdown-item.svelte-14lg4b7:hover{background:var(--bg-3);color:var(--text-0)}.panel-reopen.svelte-14lg4b7{background:none;border:none;color:var(--text-2);padding:4px;cursor:pointer;border-radius:var(--radius);display:flex;align-items:center}.panel-reopen.svelte-14lg4b7:hover{color:var(--text-1);background:var(--bg-2)}.panel-reopen.svelte-14lg4b7 svg:where(.svelte-14lg4b7){width:16px;height:16px}.right-panel.svelte-14lg4b7{flex-shrink:0;border-left:1px solid var(--border);overflow:hidden;position:relative}.panel-close.svelte-14lg4b7{position:absolute;top:8px;right:8px;z-index:1;background:none;border:none;color:var(--text-2);font-size:18px;padding:4px 8px;cursor:pointer;border-radius:var(--radius)}.panel-close.svelte-14lg4b7:hover{color:var(--text-0);background:var(--bg-2)}.right-panel-backdrop.svelte-14lg4b7,.sidebar-backdrop.svelte-14lg4b7{display:none}@media(max-width:1024px){.right-panel.svelte-14lg4b7{position:fixed;top:0;right:0;bottom:0;z-index:40;width:min(360px,100vw)!important}.right-resize-handle.svelte-14lg4b7{display:none}.right-panel-backdrop.svelte-14lg4b7{display:block;position:fixed;inset:0;background:#00000080;z-index:39}}@media(max-width:767px){.sidebar.svelte-14lg4b7{position:fixed;top:0;left:0;bottom:0;z-index:50;width:280px!important;transform:translate(-100%);transition:transform .2s ease}.sidebar.sidebar-open.svelte-14lg4b7{transform:translate(0);overflow:visible}.sidebar-backdrop.svelte-14lg4b7{display:block;position:fixed;inset:0;background:#00000080;z-index:49}.resize-handle.svelte-14lg4b7{display:none}}@media(max-width:767px){.sidebar-header.svelte-14lg4b7{display:none}.header-hamburger.svelte-14lg4b7{display:flex}.page-breadcrumbs.svelte-14lg4b7{font-size:15px}}@media(min-width:768px)and (max-width:1024px){.sidebar.svelte-14lg4b7{width:200px!important}.resize-handle.svelte-14lg4b7{display:none}}:root{--bg-0: #0a0c0f;--bg-1: #11141a;--bg-2: #181c24;--bg-3: #1f2430;--border: #2a3040;--border-bright: #3a4560;--text-0: #e8ecf4;--text-1: #a0aabb;--text-2: #6a7588;--accent: #e0a860;--accent-dim: #5c4428;--accent-bg: rgba(224, 168, 96, .08);--red: #f87171;--red-dim: #7f1d1d;--yellow: #fbbf24;--yellow-dim: #78350f;--blue: #60a5fa;--purple: #c084fc;--overlay: rgba(0, 0, 0, .6);--yellow-bg: rgba(251, 191, 36, .08);--blue-bg: rgba(96, 165, 250, .08);--red-bg: rgba(248, 113, 113, .08);--muted-bg: rgba(106, 117, 136, .08);--red-border: rgba(248, 113, 113, .2);--accent-border: rgba(224, 168, 96, .2);--timeline-rail: #333;--mono: "Fira Code", "SF Mono", monospace;--sans: "Averia Sans Libre", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--display: "Averia Serif Libre", Georgia, serif;--radius: 6px;--radius-lg: 10px}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;background:var(--bg-0);color:var(--text-0);font-family:var(--sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}::selection{background:var(--accent-dim);color:var(--accent)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-bright)}a{color:inherit;text-decoration:none}input,select,textarea,button{font-family:inherit}button{cursor:pointer;border:none}button:focus{outline:none}button:focus-visible{outline:1px solid var(--accent);outline-offset:2px}a:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.app{height:100%;display:flex;flex-direction:column}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes slideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.markdown-body{word-break:break-word;color:var(--text-0);line-height:1.6}.markdown-body p{margin:0 0 8px}.markdown-body p:last-child{margin-bottom:0}.markdown-body pre{background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;overflow-x:auto;margin:8px 0;font-size:13px;line-height:1.5}.markdown-body code{font-family:var(--mono);font-size:13px;background:var(--bg-3);padding:1px 4px;border-radius:3px}.markdown-body pre code{background:none;padding:0}.markdown-body a{color:var(--blue);text-decoration:underline}.markdown-body ul,.markdown-body ol{margin:4px 0;padding-left:20px}.markdown-body li{margin:2px 0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin:12px 0 6px;font-weight:600;color:var(--text-0)}.markdown-body h1{font-size:18px}.markdown-body h2{font-size:16px}.markdown-body h3{font-size:15px}.markdown-body blockquote{border-left:3px solid var(--border-bright);margin:8px 0;padding:4px 12px;color:var(--text-1)}.markdown-body table{border-collapse:collapse;margin:8px 0}.markdown-body th,.markdown-body td{border:1px solid var(--border);padding:6px 10px;font-size:13px}.markdown-body th{background:var(--bg-3);font-weight:600}.markdown-body hr{border:none;border-top:1px solid var(--border);margin:12px 0}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/* Shared theme for extension iframes */
|
|
2
|
+
@import url("https://fonts.googleapis.com/css2?family=Averia+Serif+Libre:wght@300;400;700&family=Fira+Code:wght@300;400;500;600&family=Averia+Sans+Libre:ital,wght@0,300;0,400;0,500;0,600;1,400&display=swap");
|
|
3
|
+
|
|
4
|
+
:root {
|
|
5
|
+
--bg-0: #0a0c0f;
|
|
6
|
+
--bg-1: #11141a;
|
|
7
|
+
--bg-2: #181c24;
|
|
8
|
+
--bg-3: #1f2430;
|
|
9
|
+
--border: #2a3040;
|
|
10
|
+
--border-bright: #3a4560;
|
|
11
|
+
--text-0: #e8ecf4;
|
|
12
|
+
--text-1: #a0aabb;
|
|
13
|
+
--text-2: #6a7588;
|
|
14
|
+
--accent: #e0a860;
|
|
15
|
+
--accent-dim: #5c4428;
|
|
16
|
+
--accent-bg: rgba(224, 168, 96, 0.08);
|
|
17
|
+
--accent-border: rgba(224, 168, 96, 0.2);
|
|
18
|
+
--red: #f87171;
|
|
19
|
+
--red-dim: #7f1d1d;
|
|
20
|
+
--yellow: #fbbf24;
|
|
21
|
+
--yellow-dim: #78350f;
|
|
22
|
+
--blue: #60a5fa;
|
|
23
|
+
--purple: #c084fc;
|
|
24
|
+
--overlay: rgba(0, 0, 0, 0.6);
|
|
25
|
+
--yellow-bg: rgba(251, 191, 36, 0.08);
|
|
26
|
+
--blue-bg: rgba(96, 165, 250, 0.08);
|
|
27
|
+
--red-bg: rgba(248, 113, 113, 0.08);
|
|
28
|
+
--muted-bg: rgba(106, 117, 136, 0.08);
|
|
29
|
+
--red-border: rgba(248, 113, 113, 0.2);
|
|
30
|
+
--timeline-rail: #333;
|
|
31
|
+
--mono: "Fira Code", "SF Mono", monospace;
|
|
32
|
+
--sans: "Averia Sans Libre", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
33
|
+
--display: "Averia Serif Libre", Georgia, serif;
|
|
34
|
+
--radius: 6px;
|
|
35
|
+
--radius-lg: 10px;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
* {
|
|
39
|
+
margin: 0;
|
|
40
|
+
padding: 0;
|
|
41
|
+
box-sizing: border-box;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
html,
|
|
45
|
+
body,
|
|
46
|
+
#app {
|
|
47
|
+
height: 100%;
|
|
48
|
+
background: var(--bg-0);
|
|
49
|
+
color: var(--text-0);
|
|
50
|
+
font-family: var(--sans);
|
|
51
|
+
font-size: 15px;
|
|
52
|
+
line-height: 1.6;
|
|
53
|
+
-webkit-font-smoothing: antialiased;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
::selection {
|
|
57
|
+
background: var(--accent-dim);
|
|
58
|
+
color: var(--accent);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
::-webkit-scrollbar {
|
|
62
|
+
width: 6px;
|
|
63
|
+
height: 6px;
|
|
64
|
+
}
|
|
65
|
+
::-webkit-scrollbar-track {
|
|
66
|
+
background: transparent;
|
|
67
|
+
}
|
|
68
|
+
::-webkit-scrollbar-thumb {
|
|
69
|
+
background: var(--border);
|
|
70
|
+
border-radius: 3px;
|
|
71
|
+
}
|
|
72
|
+
::-webkit-scrollbar-thumb:hover {
|
|
73
|
+
background: var(--border-bright);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
a {
|
|
77
|
+
color: inherit;
|
|
78
|
+
text-decoration: none;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
input,
|
|
82
|
+
select,
|
|
83
|
+
textarea,
|
|
84
|
+
button {
|
|
85
|
+
font-family: inherit;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
button {
|
|
89
|
+
cursor: pointer;
|
|
90
|
+
border: none;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
button:focus {
|
|
94
|
+
outline: none;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
button:focus-visible {
|
|
98
|
+
outline: 1px solid var(--accent);
|
|
99
|
+
outline-offset: 2px;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
@keyframes fadeIn {
|
|
103
|
+
from {
|
|
104
|
+
opacity: 0;
|
|
105
|
+
transform: translateY(6px);
|
|
106
|
+
}
|
|
107
|
+
to {
|
|
108
|
+
opacity: 1;
|
|
109
|
+
transform: translateY(0);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
9
9
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
10
10
|
<link href="https://fonts.googleapis.com/css2?family=Averia+Serif+Libre:wght@300;400;700&family=Fira+Code:wght@300;400;500;600&family=Averia+Sans+Libre:ital,wght@0,300;0,400;0,500;0,600;1,400&display=swap" rel="stylesheet" />
|
|
11
|
-
<script type="module" crossorigin src="/assets/index
|
|
12
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
11
|
+
<script type="module" crossorigin src="/assets/index--kREqKl9.js"></script>
|
|
12
|
+
<link rel="stylesheet" crossorigin href="/assets/index-BXYTG0nJ.css">
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
|
15
15
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "volute",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.30.0",
|
|
4
4
|
"description": "CLI for creating and managing self-modifying AI minds powered by the Claude Agent SDK",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
"anthropic"
|
|
17
17
|
],
|
|
18
18
|
"workspaces": [
|
|
19
|
-
"packages/*"
|
|
19
|
+
"packages/*",
|
|
20
|
+
"packages/extensions/*"
|
|
20
21
|
],
|
|
21
22
|
"engines": {
|
|
22
23
|
"node": ">=24"
|
|
@@ -33,11 +34,16 @@
|
|
|
33
34
|
"files": [
|
|
34
35
|
"dist/",
|
|
35
36
|
"drizzle/",
|
|
36
|
-
"templates/"
|
|
37
|
+
"templates/",
|
|
38
|
+
"packages/extensions/notes/dist/ui/",
|
|
39
|
+
"packages/extensions/notes/skills/",
|
|
40
|
+
"packages/extensions/pages/dist/ui/",
|
|
41
|
+
"packages/extensions/pages/skills/"
|
|
37
42
|
],
|
|
38
43
|
"scripts": {
|
|
39
44
|
"dev": "tsx src/cli.ts",
|
|
40
|
-
"build": "tsup && cp -r skills dist/skills && npm run build:web",
|
|
45
|
+
"build": "npm run build:ext && tsup && cp -r skills dist/skills && npm run build:web",
|
|
46
|
+
"build:ext": "npm run build:ui --workspace=packages/extensions/notes && npm run build:ui --workspace=packages/extensions/pages",
|
|
41
47
|
"build:web": "vite build --config src/web/ui/vite.config.ts",
|
|
42
48
|
"dev:web": "vite --config src/web/ui/vite.config.ts",
|
|
43
49
|
"test": "node --import tsx --import ./test/setup.ts --test --test-force-exit --test-concurrency=4 $(find test -name '*.test.ts' ! -name 'daemon-e2e.test.ts' | sort)",
|
|
@@ -67,6 +73,7 @@
|
|
|
67
73
|
"discord.js": "^14.25.1",
|
|
68
74
|
"drizzle-orm": "^0.45.1",
|
|
69
75
|
"hono": "^4.11.7",
|
|
76
|
+
"libsql": "^0.5.22",
|
|
70
77
|
"telegraf": "^4.16.3",
|
|
71
78
|
"zod": "^4.3.6"
|
|
72
79
|
},
|
|
@@ -83,7 +90,6 @@
|
|
|
83
90
|
"dompurify": "^3.3.1",
|
|
84
91
|
"drizzle-kit": "^0.31.8",
|
|
85
92
|
"lefthook": "^2.1.0",
|
|
86
|
-
"libsql": "^0.5.22",
|
|
87
93
|
"marked": "^17.0.1",
|
|
88
94
|
"svelte": "^5.53.0",
|
|
89
95
|
"tsup": "^8.0.0",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.comment-section.svelte-1ku848x{display:flex;flex-direction:column;gap:12px}.section-header.svelte-1ku848x{font-family:var(--sans);font-size:14px;font-weight:500;color:var(--text-1);margin:0}.comment-list.svelte-1ku848x{display:flex;flex-direction:column;gap:10px}.comment.svelte-1ku848x{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px}.comment-header.svelte-1ku848x{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}.author.svelte-1ku848x{font-size:13px;font-weight:500;color:var(--accent)}.date.svelte-1ku848x{font-size:12px;color:var(--text-2)}.delete-btn.svelte-1ku848x{margin-left:auto;background:none;border:none;font-size:12px;color:var(--text-2);cursor:pointer;padding:0;transition:color .15s}.delete-btn.svelte-1ku848x:hover{color:#e55}.comment-body.svelte-1ku848x{font-size:14px;color:var(--text-0);white-space:pre-wrap;word-break:break-word}.compose.svelte-1ku848x{display:flex;gap:8px}.compose-input.svelte-1ku848x{flex:1;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 12px;color:var(--text-0);font-family:var(--sans);font-size:14px;resize:none;outline:none;transition:border-color .15s}.compose-input.svelte-1ku848x:focus{border-color:var(--border-bright)}.submit-btn.svelte-1ku848x{padding:0 14px;background:var(--bg-3);color:var(--text-2);border:none;border-radius:var(--radius);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;align-self:flex-end}.submit-btn.active.svelte-1ku848x{background:var(--accent-dim);color:var(--accent)}.submit-btn.svelte-1ku848x:disabled{cursor:default}.note-view.svelte-1n5zw0o{max-width:640px;margin:0 auto}.back-btn.svelte-1n5zw0o{background:none;border:none;color:var(--text-2);font-size:13px;cursor:pointer;padding:0;margin-bottom:16px}.back-btn.svelte-1n5zw0o:hover{color:var(--text-1)}.error.svelte-1n5zw0o{font-size:13px;color:var(--red);margin-bottom:12px}.status.svelte-1n5zw0o{color:var(--text-2);font-size:14px;padding:32px 0;text-align:center}.note.svelte-1n5zw0o{margin-bottom:32px}.reply-to-link.svelte-1n5zw0o{background:none;border:none;font-size:13px;color:var(--text-2);cursor:pointer;padding:0;margin-bottom:16px;display:block;text-align:left}.reply-to-link.svelte-1n5zw0o:hover{color:var(--accent)}.reply-arrow.svelte-1n5zw0o{opacity:.6}.reply-ref.svelte-1n5zw0o{color:var(--text-1);font-style:italic}.reply-to-link.svelte-1n5zw0o:hover .reply-ref:where(.svelte-1n5zw0o){color:var(--accent)}.title.svelte-1n5zw0o{font-family:var(--display);font-size:26px;font-weight:400;color:var(--text-0);margin:0 0 10px;line-height:1.3;letter-spacing:-.01em}.meta.svelte-1n5zw0o{display:flex;align-items:baseline;gap:6px}.author.svelte-1n5zw0o{font-size:14px;color:var(--text-1);font-weight:500}.sep.svelte-1n5zw0o{color:var(--text-2);font-size:12px}.date.svelte-1n5zw0o{font-size:13px;color:var(--text-2)}.divider.svelte-1n5zw0o{height:1px;background:var(--border);margin:16px 0 20px}.content.svelte-1n5zw0o{font-size:15px;color:var(--text-0);line-height:1.7;white-space:pre-wrap;word-break:break-word}.reactions-bar.svelte-1n5zw0o{display:flex;gap:6px;margin-top:20px;flex-wrap:wrap;align-items:center}.reaction-pill.svelte-1n5zw0o{font-size:13px;padding:4px 10px;background:var(--bg-3);border:1px solid var(--border);border-radius:14px;color:var(--text-1);cursor:pointer;transition:all .15s}.reaction-pill.svelte-1n5zw0o:hover{border-color:var(--border-bright)}.reaction-pill.active.svelte-1n5zw0o{border-color:var(--accent-border);background:var(--accent-dim)}.add-reaction.svelte-1n5zw0o{color:var(--text-2);font-size:14px}.emoji-form.svelte-1n5zw0o{display:inline-flex}.emoji-input.svelte-1n5zw0o{width:60px;padding:4px 8px;background:var(--bg-3);border:1px solid var(--border);border-radius:14px;color:var(--text-0);font-size:13px;outline:none}.emoji-input.svelte-1n5zw0o:focus{border-color:var(--accent)}.replies-section.svelte-1n5zw0o{border-top:1px solid var(--border);padding-top:20px;margin-bottom:24px}.section-title.svelte-1n5zw0o{font-size:13px;font-weight:500;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;margin:0 0 12px}.reply-card.svelte-1n5zw0o{display:block;width:100%;text-align:left;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;cursor:pointer;margin-bottom:6px;transition:border-color .15s}.reply-card.svelte-1n5zw0o:hover{border-color:var(--border-bright)}.reply-title.svelte-1n5zw0o{font-size:14px;color:var(--text-0);display:block;margin-bottom:2px}.reply-meta.svelte-1n5zw0o{font-size:12px;color:var(--text-2)}.comments-section.svelte-1n5zw0o{border-top:1px solid var(--border);padding-top:20px}.card.svelte-1hapkk3{display:block;width:100%;padding:20px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:all .15s ease;text-align:left;font-family:var(--sans)}.card.svelte-1hapkk3:hover{border-color:var(--border-bright)}.reply-indicator.svelte-1hapkk3{font-size:12px;color:var(--text-2);margin-bottom:6px}.header.svelte-1hapkk3{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}.title.svelte-1hapkk3{font-family:var(--display);font-size:17px;font-weight:400;color:var(--text-0);margin:0}.date.svelte-1hapkk3{font-size:12px;color:var(--text-2);white-space:nowrap;flex-shrink:0}.excerpt.svelte-1hapkk3{font-size:14px;color:var(--text-1);margin:0 0 12px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5}.meta.svelte-1hapkk3{display:flex;align-items:center;gap:16px;font-size:13px}.author.svelte-1hapkk3{color:var(--accent)}.comments.svelte-1hapkk3{color:var(--text-2)}.reactions.svelte-1hapkk3{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.reaction-pill.svelte-1hapkk3{font-size:12px;padding:2px 8px;background:var(--bg-3);border:1px solid var(--border);border-radius:12px;color:var(--text-1)}.notes-page.svelte-vh096i{max-width:700px;margin:0 auto}.page-header.svelte-vh096i{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.page-title.svelte-vh096i{font-family:var(--display);font-size:22px;font-weight:400;color:var(--text-0);margin:0}.note-form.svelte-vh096i{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;margin-bottom:20px;display:flex;flex-direction:column;gap:10px}.form-input.svelte-vh096i{width:100%;padding:8px 12px;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-0);font-size:14px;outline:none;box-sizing:border-box}.form-input.svelte-vh096i:focus{border-color:var(--accent)}.form-textarea.svelte-vh096i{width:100%;padding:8px 12px;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-0);font-size:14px;line-height:1.5;resize:vertical;outline:none;box-sizing:border-box}.form-textarea.svelte-vh096i:focus{border-color:var(--accent)}.form-actions.svelte-vh096i{display:flex;justify-content:flex-end}.btn.svelte-vh096i{font-size:13px;padding:6px 14px;border-radius:var(--radius);cursor:pointer;border:1px solid transparent;transition:opacity .15s}.btn.svelte-vh096i:disabled{opacity:.5;cursor:not-allowed}.btn-write.svelte-vh096i{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-border)}.btn-write.svelte-vh096i:hover{border-color:var(--accent)}.btn-submit.svelte-vh096i{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-border)}.btn-submit.svelte-vh096i:hover:not(:disabled){border-color:var(--accent)}.error.svelte-vh096i{color:var(--red);font-size:13px;margin-bottom:16px}.loading.svelte-vh096i,.empty.svelte-vh096i{color:var(--text-2);font-size:13px;padding:40px 0;text-align:center}.notes-list.svelte-vh096i{display:flex;flex-direction:column;gap:10px}.ext-app.svelte-1r8vfx3{padding:24px;max-width:100%;min-height:100%;animation:fadeIn .2s ease both}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();const pr=!1;var fn=Array.isArray,mr=Array.prototype.indexOf,Be=Array.prototype.includes,pt=Array.from,gr=Object.defineProperty,nt=Object.getOwnPropertyDescriptor,wr=Object.getOwnPropertyDescriptors,yr=Object.prototype,br=Array.prototype,cn=Object.getPrototypeOf,Zt=Object.isExtensible;const Er=()=>{};function xr(e){for(var t=0;t<e.length;t++)e[t]()}function vn(){var e,t,n=new Promise((r,i)=>{e=r,t=i});return{promise:n,resolve:e,reject:t}}const q=2,st=4,mt=8,dn=1<<24,Te=16,ae=32,Pe=64,Tt=128,te=512,U=1024,V=2048,oe=4096,X=8192,se=16384,Ue=32768,Jt=1<<25,He=65536,Xt=1<<17,kr=1<<18,Ye=1<<19,Sr=1<<20,ce=1<<25,Le=65536,Ct=1<<21,It=1<<22,be=1<<23,Et=Symbol("$state"),_e=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"};function Tr(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Cr(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Nr(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Ar(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Mr(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Rr(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Dr(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Fr(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Or(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Ir(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Pr(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const Lr=1,zr=2,hn=4,jr=8,Ur=16,qr=1,Br=2,H=Symbol(),_n="http://www.w3.org/1999/xhtml";function Hr(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function pn(e){return e===this.v}function Vr(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function mn(e){return!Vr(e,this.v)}let Wr=!1,Q=null;function Ve(e){Q=e}function Ge(e,t=!1,n){Q={p:Q,i:!1,c:null,e:null,s:e,x:null,r:C,l:null}}function Ze(e){var t=Q,n=t.e;if(n!==null){t.e=null;for(var r of n)jn(r)}return t.i=!0,Q=t.p,{}}function gn(){return!0}let Re=[];function wn(){var e=Re;Re=[],xr(e)}function Ee(e){if(Re.length===0&&!rt){var t=Re;queueMicrotask(()=>{t===Re&&wn()})}Re.push(e)}function Kr(){for(;Re.length>0;)wn()}function yn(e){var t=C;if(t===null)return S.f|=be,e;if((t.f&Ue)===0&&(t.f&st)===0)throw e;ye(e,t)}function ye(e,t){for(;t!==null;){if((t.f&Tt)!==0){if((t.f&Ue)===0)throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const Yr=-7169;function j(e,t){e.f=e.f&Yr|t}function Pt(e){(e.f&te)!==0||e.deps===null?j(e,U):j(e,oe)}function bn(e){if(e!==null)for(const t of e)(t.f&q)===0||(t.f&Le)===0||(t.f^=Le,bn(t.deps))}function En(e,t,n){(e.f&V)!==0?t.add(e):(e.f&oe)!==0&&n.add(e),bn(e.deps),j(e,U)}const Qe=new Set;let M=null,ve=null,Nt=null,rt=!1,xt=!1,qe=null,ct=null;var Qt=0;let Gr=1;class Se{id=Gr++;current=new Map;previous=new Map;#e=new Set;#l=new Set;#t=0;#a=0;#r=null;#n=[];#i=new Set;#s=new Set;#o=new Map;is_fork=!1;#u=!1;#f(){return this.is_fork||this.#a>0}skip_effect(t){this.#o.has(t)||this.#o.set(t,{d:[],m:[]})}unskip_effect(t){var n=this.#o.get(t);if(n){this.#o.delete(t);for(var r of n.d)j(r,V),this.schedule(r);for(r of n.m)j(r,oe),this.schedule(r)}}#v(){Qt++>1e3&&Jr();const t=this.#n;this.#n=[],this.apply();var n=qe=[],r=[],i=ct=[];for(const l of t)try{this.#d(l,n,r)}catch(a){throw Tn(l),a}if(M=null,i.length>0){var s=Se.ensure();for(const l of i)s.schedule(l)}if(qe=null,ct=null,this.#f()){this.#h(r),this.#h(n);for(const[l,a]of this.#o)Sn(l,a)}else{this.#t===0&&Qe.delete(this),this.#i.clear(),this.#s.clear();for(const l of this.#e)l(this);this.#e.clear(),$t(r),$t(n),this.#r?.resolve()}var o=M;if(this.#n.length>0){const l=o??=this;l.#n.push(...this.#n.filter(a=>!l.#n.includes(a)))}o!==null&&(Qe.add(o),o.#v()),Qe.has(this)||this.#c()}#d(t,n,r){t.f^=U;for(var i=t.first;i!==null;){var s=i.f,o=(s&(ae|Pe))!==0,l=o&&(s&U)!==0,a=l||(s&X)!==0||this.#o.has(i);if(!a&&i.fn!==null){o?i.f^=U:(s&st)!==0?n.push(i):ut(i)&&((s&Te)!==0&&this.#s.add(i),Ke(i));var u=i.first;if(u!==null){i=u;continue}}for(;i!==null;){var c=i.next;if(c!==null){i=c;break}i=i.parent}}}#h(t){for(var n=0;n<t.length;n+=1)En(t[n],this.#i,this.#s)}capture(t,n){n!==H&&!this.previous.has(t)&&this.previous.set(t,n),(t.f&be)===0&&(this.current.set(t,t.v),ve?.set(t,t.v))}activate(){M=this}deactivate(){M=null,ve=null}flush(){try{if(xt=!0,M=this,!this.#f()){for(const t of this.#i)this.#s.delete(t),j(t,V),this.schedule(t);for(const t of this.#s)j(t,oe),this.schedule(t)}this.#v()}finally{Qt=0,Nt=null,qe=null,ct=null,xt=!1,M=null,ve=null,xe.clear()}}discard(){for(const t of this.#l)t(this);this.#l.clear()}#c(){for(const a of Qe){var t=a.id<this.id,n=[];for(const[u,c]of this.current){if(a.current.has(u))if(t&&c!==a.current.get(u))a.current.set(u,c);else continue;n.push(u)}if(n.length!==0){var r=[...a.current.keys()].filter(u=>!this.current.has(u));if(r.length>0){a.activate();var i=new Set,s=new Map;for(var o of n)xn(o,r,i,s);if(a.#n.length>0){a.apply();for(var l of a.#n)a.#d(l,[],[])}a.deactivate()}}}}increment(t){this.#t+=1,t&&(this.#a+=1)}decrement(t,n){this.#t-=1,t&&(this.#a-=1),!(this.#u||n)&&(this.#u=!0,Ee(()=>{this.#u=!1,this.flush()}))}oncommit(t){this.#e.add(t)}ondiscard(t){this.#l.add(t)}settled(){return(this.#r??=vn()).promise}static ensure(){if(M===null){const t=M=new Se;xt||(Qe.add(M),rt||Ee(()=>{M===t&&t.flush()}))}return M}apply(){{ve=null;return}}schedule(t){if(Nt=t,t.b?.is_pending&&(t.f&(st|mt|dn))!==0&&(t.f&Ue)===0){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(qe!==null&&n===C&&(S===null||(S.f&q)===0))return;if((r&(Pe|ae))!==0){if((r&U)===0)return;n.f^=U}}this.#n.push(n)}}function Zr(e){var t=rt;rt=!0;try{for(var n;;){if(Kr(),M===null)return n;M.flush()}}finally{rt=t}}function Jr(){try{Dr()}catch(e){ye(e,Nt)}}let he=null;function $t(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if((r.f&(se|X))===0&&ut(r)&&(he=new Set,Ke(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Bn(r),he?.size>0)){xe.clear();for(const i of he){if((i.f&(se|X))!==0)continue;const s=[i];let o=i.parent;for(;o!==null;)he.has(o)&&(he.delete(o),s.push(o)),o=o.parent;for(let l=s.length-1;l>=0;l--){const a=s[l];(a.f&(se|X))===0&&Ke(a)}}he.clear()}}he=null}}function xn(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const i of e.reactions){const s=i.f;(s&q)!==0?xn(i,t,n,r):(s&(It|Te))!==0&&(s&V)===0&&kn(i,t,r)&&(j(i,V),Lt(i))}}function kn(e,t,n){const r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const i of e.deps){if(Be.call(t,i))return!0;if((i.f&q)!==0&&kn(i,t,n))return n.set(i,!0),!0}return n.set(e,!1),!1}function Lt(e){M.schedule(e)}function Sn(e,t){if(!((e.f&ae)!==0&&(e.f&U)!==0)){(e.f&V)!==0?t.d.push(e):(e.f&oe)!==0&&t.m.push(e),j(e,U);for(var n=e.first;n!==null;)Sn(n,t),n=n.next}}function Tn(e){j(e,U);for(var t=e.first;t!==null;)Tn(t),t=t.next}function Xr(e){let t=0,n=ze(0),r;return()=>{Ut()&&(v(n),Un(()=>(t===0&&(r=Wt(()=>e(()=>it(n)))),t+=1,()=>{Ee(()=>{t-=1,t===0&&(r?.(),r=void 0,it(n))})})))}}var Qr=He|Ye;function $r(e,t,n,r){new ei(e,t,n,r)}class ei{parent;is_pending=!1;transform_error;#e;#l=null;#t;#a;#r;#n=null;#i=null;#s=null;#o=null;#u=0;#f=0;#v=!1;#d=new Set;#h=new Set;#c=null;#w=Xr(()=>(this.#c=ze(this.#u),()=>{this.#c=null}));constructor(t,n,r,i){this.#e=t,this.#t=n,this.#a=s=>{var o=C;o.b=this,o.f|=Tt,r(s)},this.parent=C.b,this.transform_error=i??this.parent?.transform_error??(s=>s),this.#r=qt(()=>{this.#m()},Qr)}#y(){try{this.#n=ee(()=>this.#a(this.#e))}catch(t){this.error(t)}}#b(t){const n=this.#t.failed;n&&(this.#s=ee(()=>{n(this.#e,()=>t,()=>()=>{})}))}#E(){const t=this.#t.pending;t&&(this.is_pending=!0,this.#i=ee(()=>t(this.#e)),Ee(()=>{var n=this.#o=document.createDocumentFragment(),r=ke();n.append(r),this.#n=this.#p(()=>ee(()=>this.#a(r))),this.#f===0&&(this.#e.before(n),this.#o=null,Oe(this.#i,()=>{this.#i=null}),this.#_(M))}))}#m(){try{if(this.is_pending=this.has_pending_snippet(),this.#f=0,this.#u=0,this.#n=ee(()=>{this.#a(this.#e)}),this.#f>0){var t=this.#o=document.createDocumentFragment();Vt(this.#n,t);const n=this.#t.pending;this.#i=ee(()=>n(this.#e))}else this.#_(M)}catch(n){this.error(n)}}#_(t){this.is_pending=!1;for(const n of this.#d)j(n,V),t.schedule(n);for(const n of this.#h)j(n,oe),t.schedule(n);this.#d.clear(),this.#h.clear()}defer_effect(t){En(t,this.#d,this.#h)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#t.pending}#p(t){var n=C,r=S,i=Q;de(this.#r),re(this.#r),Ve(this.#r.ctx);try{return Se.ensure(),t()}catch(s){return yn(s),null}finally{de(n),re(r),Ve(i)}}#g(t,n){if(!this.has_pending_snippet()){this.parent&&this.parent.#g(t,n);return}this.#f+=t,this.#f===0&&(this.#_(n),this.#i&&Oe(this.#i,()=>{this.#i=null}),this.#o&&(this.#e.before(this.#o),this.#o=null))}update_pending_count(t,n){this.#g(t,n),this.#u+=t,!(!this.#c||this.#v)&&(this.#v=!0,Ee(()=>{this.#v=!1,this.#c&&We(this.#c,this.#u)}))}get_effect_pending(){return this.#w(),v(this.#c)}error(t){var n=this.#t.onerror;let r=this.#t.failed;if(!n&&!r)throw t;this.#n&&(Z(this.#n),this.#n=null),this.#i&&(Z(this.#i),this.#i=null),this.#s&&(Z(this.#s),this.#s=null);var i=!1,s=!1;const o=()=>{if(i){Hr();return}i=!0,s&&Pr(),this.#s!==null&&Oe(this.#s,()=>{this.#s=null}),this.#p(()=>{this.#m()})},l=a=>{try{s=!0,n?.(a,o),s=!1}catch(u){ye(u,this.#r&&this.#r.parent)}r&&(this.#s=this.#p(()=>{try{return ee(()=>{var u=C;u.b=this,u.f|=Tt,r(this.#e,()=>a,()=>o)})}catch(u){return ye(u,this.#r.parent),null}}))};Ee(()=>{var a;try{a=this.transform_error(t)}catch(u){ye(u,this.#r&&this.#r.parent);return}a!==null&&typeof a=="object"&&typeof a.then=="function"?a.then(l,u=>ye(u,this.#r&&this.#r.parent)):l(a)})}}function ti(e,t,n,r){const i=zt;var s=e.filter(f=>!f.settled);if(n.length===0&&s.length===0){r(t.map(i));return}var o=C,l=ni(),a=s.length===1?s[0].promise:s.length>1?Promise.all(s.map(f=>f.promise)):null;function u(f){l();try{r(f)}catch(p){(o.f&se)===0&&ye(p,o)}dt()}if(n.length===0){a.then(()=>u(t.map(i)));return}var c=Cn();function h(){Promise.all(n.map(f=>ri(f))).then(f=>u([...t.map(i),...f])).catch(f=>ye(f,o)).finally(()=>c())}a?a.then(()=>{l(),h(),dt()}):h()}function ni(){var e=C,t=S,n=Q,r=M;return function(s=!0){de(e),re(t),Ve(n),s&&(e.f&se)===0&&(r?.activate(),r?.apply())}}function dt(e=!0){de(null),re(null),Ve(null),e&&M?.deactivate()}function Cn(){var e=C.b,t=M,n=e.is_rendered();return e.update_pending_count(1,t),t.increment(n),(r=!1)=>{e.update_pending_count(-1,t),t.decrement(n,r)}}function zt(e){var t=q|V,n=S!==null&&(S.f&q)!==0?S:null;return C!==null&&(C.f|=Ye),{ctx:Q,deps:null,effects:null,equals:pn,f:t,fn:e,reactions:null,rv:0,v:H,wv:0,parent:n??C,ac:null}}function ri(e,t,n){let r=C;r===null&&Cr();var i=void 0,s=ze(H),o=!S,l=new Map;return gi(()=>{var a=C,u=vn();i=u.promise;try{Promise.resolve(e()).then(u.resolve,u.reject).finally(dt)}catch(p){u.reject(p),dt()}var c=M;if(o){if((a.f&Ue)!==0)var h=Cn();if(r.b.is_rendered())l.get(c)?.reject(_e),l.delete(c);else{for(const p of l.values())p.reject(_e);l.clear()}l.set(c,u)}const f=(p,m=void 0)=>{if(h){var g=m===_e;h(g)}if(!(m===_e||(a.f&se)!==0)){if(c.activate(),m)s.f|=be,We(s,m);else{(s.f&be)!==0&&(s.f^=be),We(s,p);for(const[d,y]of l){if(l.delete(d),d===c)break;y.reject(_e)}}c.deactivate()}};u.promise.then(f,p=>f(null,p||"unknown"))}),Ln(()=>{for(const a of l.values())a.reject(_e)}),new Promise(a=>{function u(c){function h(){c===i?a(s):u(i)}c.then(h,h)}u(i)})}function Nn(e){const t=zt(e);return Wn(t),t}function ii(e){const t=zt(e);return t.equals=mn,t}function si(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)Z(t[n])}}function ai(e){for(var t=e.parent;t!==null;){if((t.f&q)===0)return(t.f&se)===0?t:null;t=t.parent}return null}function jt(e){var t,n=C;de(ai(e));try{e.f&=~Le,si(e),t=Zn(e)}finally{de(n)}return t}function An(e){var t=jt(e);if(!e.equals(t)&&(e.wv=Yn(),(!M?.is_fork||e.deps===null)&&(e.v=t,e.deps===null))){j(e,U);return}je||(ve!==null?(Ut()||M?.is_fork)&&ve.set(e,t):Pt(e))}function oi(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(_e),t.teardown=Er,t.ac=null,at(t,0),Bt(t))}function Mn(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&Ke(t)}let At=new Set;const xe=new Map;let Rn=!1;function ze(e,t){var n={f:0,v:e,reactions:null,equals:pn,rv:0,wv:0};return n}function I(e,t){const n=ze(e);return Wn(n),n}function li(e,t=!1,n=!0){const r=ze(e);return t||(r.equals=mn),r}function x(e,t,n=!1){S!==null&&(!ie||(S.f&Xt)!==0)&&gn()&&(S.f&(q|Te|It|Xt))!==0&&(ne===null||!Be.call(ne,e))&&Ir();let r=n?De(t):t;return We(e,r,ct)}function We(e,t,n=null){if(!e.equals(t)){var r=e.v;je?xe.set(e,t):xe.set(e,r),e.v=t;var i=Se.ensure();if(i.capture(e,r),(e.f&q)!==0){const s=e;(e.f&V)!==0&&jt(s),Pt(s)}e.wv=Yn(),Dn(e,V,n),C!==null&&(C.f&U)!==0&&(C.f&(ae|Pe))===0&&($===null?bi([e]):$.push(e)),!i.is_fork&&At.size>0&&!Rn&&ui()}return t}function ui(){Rn=!1;for(const e of At)(e.f&U)!==0&&j(e,oe),ut(e)&&Ke(e);At.clear()}function it(e){x(e,e.v+1)}function Dn(e,t,n){var r=e.reactions;if(r!==null)for(var i=r.length,s=0;s<i;s++){var o=r[s],l=o.f,a=(l&V)===0;if(a&&j(o,t),(l&q)!==0){var u=o;ve?.delete(u),(l&Le)===0&&(l&te&&(o.f|=Le),Dn(u,oe,n))}else if(a){var c=o;(l&Te)!==0&&he!==null&&he.add(c),n!==null?n.push(c):Lt(c)}}}function De(e){if(typeof e!="object"||e===null||Et in e)return e;const t=cn(e);if(t!==yr&&t!==br)return e;var n=new Map,r=fn(e),i=I(0),s=Ie,o=l=>{if(Ie===s)return l();var a=S,u=Ie;re(null),sn(s);var c=l();return re(a),sn(u),c};return r&&n.set("length",I(e.length)),new Proxy(e,{defineProperty(l,a,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&Fr();var c=n.get(a);return c===void 0?o(()=>{var h=I(u.value);return n.set(a,h),h}):x(c,u.value,!0),!0},deleteProperty(l,a){var u=n.get(a);if(u===void 0){if(a in l){const c=o(()=>I(H));n.set(a,c),it(i)}}else x(u,H),it(i);return!0},get(l,a,u){if(a===Et)return e;var c=n.get(a),h=a in l;if(c===void 0&&(!h||nt(l,a)?.writable)&&(c=o(()=>{var p=De(h?l[a]:H),m=I(p);return m}),n.set(a,c)),c!==void 0){var f=v(c);return f===H?void 0:f}return Reflect.get(l,a,u)},getOwnPropertyDescriptor(l,a){var u=Reflect.getOwnPropertyDescriptor(l,a);if(u&&"value"in u){var c=n.get(a);c&&(u.value=v(c))}else if(u===void 0){var h=n.get(a),f=h?.v;if(h!==void 0&&f!==H)return{enumerable:!0,configurable:!0,value:f,writable:!0}}return u},has(l,a){if(a===Et)return!0;var u=n.get(a),c=u!==void 0&&u.v!==H||Reflect.has(l,a);if(u!==void 0||C!==null&&(!c||nt(l,a)?.writable)){u===void 0&&(u=o(()=>{var f=c?De(l[a]):H,p=I(f);return p}),n.set(a,u));var h=v(u);if(h===H)return!1}return c},set(l,a,u,c){var h=n.get(a),f=a in l;if(r&&a==="length")for(var p=u;p<h.v;p+=1){var m=n.get(p+"");m!==void 0?x(m,H):p in l&&(m=o(()=>I(H)),n.set(p+"",m))}if(h===void 0)(!f||nt(l,a)?.writable)&&(h=o(()=>I(void 0)),x(h,De(u)),n.set(a,h));else{f=h.v!==H;var g=o(()=>De(u));x(h,g)}var d=Reflect.getOwnPropertyDescriptor(l,a);if(d?.set&&d.set.call(c,u),!f){if(r&&typeof a=="string"){var y=n.get("length"),R=Number(a);Number.isInteger(R)&&R>=y.v&&x(y,R+1)}it(i)}return!0},ownKeys(l){v(i);var a=Reflect.ownKeys(l).filter(h=>{var f=n.get(h);return f===void 0||f.v!==H});for(var[u,c]of n)c.v!==H&&!(u in l)&&a.push(u);return a},setPrototypeOf(){Or()}})}var en,Fn,On,In;function fi(){if(en===void 0){en=window,Fn=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;On=nt(t,"firstChild").get,In=nt(t,"nextSibling").get,Zt(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Zt(n)&&(n.__t=void 0)}}function ke(e=""){return document.createTextNode(e)}function ht(e){return On.call(e)}function lt(e){return In.call(e)}function b(e,t){return ht(e)}function tn(e,t=!1){{var n=ht(e);return n instanceof Comment&&n.data===""?lt(n):n}}function N(e,t=1,n=!1){let r=e;for(;t--;)r=lt(r);return r}function ci(e){e.textContent=""}function Pn(){return!1}function vi(e,t,n){return document.createElementNS(_n,e,void 0)}let nn=!1;function di(){nn||(nn=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function gt(e){var t=S,n=C;re(null),de(null);try{return e()}finally{re(t),de(n)}}function hi(e,t,n,r=n){e.addEventListener(t,()=>gt(n));const i=e.__on_r;i?e.__on_r=()=>{i(),r(!0)}:e.__on_r=()=>r(!0),di()}function _i(e){C===null&&(S===null&&Rr(),Mr()),je&&Ar()}function pi(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function Ce(e,t){var n=C;n!==null&&(n.f&X)!==0&&(e|=X);var r={ctx:Q,deps:null,nodes:null,f:e|V|te,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null},i=r;if((e&st)!==0)qe!==null?qe.push(r):Se.ensure().schedule(r);else if(t!==null){try{Ke(r)}catch(o){throw Z(r),o}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&(i.f&Ye)===0&&(i=i.first,(e&Te)!==0&&(e&He)!==0&&i!==null&&(i.f|=He))}if(i!==null&&(i.parent=n,n!==null&&pi(i,n),S!==null&&(S.f&q)!==0&&(e&Pe)===0)){var s=S;(s.effects??=[]).push(i)}return r}function Ut(){return S!==null&&!ie}function Ln(e){const t=Ce(mt,null);return j(t,U),t.teardown=e,t}function zn(e){_i();var t=C.f,n=!S&&(t&ae)!==0&&(t&Ue)===0;if(n){var r=Q;(r.e??=[]).push(e)}else return jn(e)}function jn(e){return Ce(st|Sr,e)}function mi(e){Se.ensure();const t=Ce(Pe|Ye,e);return(n={})=>new Promise(r=>{n.outro?Oe(t,()=>{Z(t),r(void 0)}):(Z(t),r(void 0))})}function gi(e){return Ce(It|Ye,e)}function Un(e,t=0){return Ce(mt|t,e)}function G(e,t=[],n=[],r=[]){ti(r,t,n,i=>{Ce(mt,()=>e(...i.map(v)))})}function qt(e,t=0){var n=Ce(Te|t,e);return n}function ee(e){return Ce(ae|Ye,e)}function qn(e){var t=e.teardown;if(t!==null){const n=je,r=S;rn(!0),re(null);try{t.call(null)}finally{rn(n),re(r)}}}function Bt(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const i=n.ac;i!==null&>(()=>{i.abort(_e)});var r=n.next;(n.f&Pe)!==0?n.parent=null:Z(n,t),n=r}}function wi(e){for(var t=e.first;t!==null;){var n=t.next;(t.f&ae)===0&&Z(t),t=n}}function Z(e,t=!0){var n=!1;(t||(e.f&kr)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(yi(e.nodes.start,e.nodes.end),n=!0),j(e,Jt),Bt(e,t&&!n),at(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const s of r)s.stop();qn(e),e.f^=Jt,e.f|=se;var i=e.parent;i!==null&&i.first!==null&&Bn(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=null}function yi(e,t){for(;e!==null;){var n=e===t?null:lt(e);e.remove(),e=n}}function Bn(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function Oe(e,t,n=!0){var r=[];Hn(e,r,!0);var i=()=>{n&&Z(e),t&&t()},s=r.length;if(s>0){var o=()=>--s||i();for(var l of r)l.out(o)}else i()}function Hn(e,t,n){if((e.f&X)===0){e.f^=X;var r=e.nodes&&e.nodes.t;if(r!==null)for(const l of r)(l.is_global||n)&&t.push(l);for(var i=e.first;i!==null;){var s=i.next,o=(i.f&He)!==0||(i.f&ae)!==0&&(e.f&Te)!==0;Hn(i,t,o?n:!1),i=s}}}function Ht(e){Vn(e,!0)}function Vn(e,t){if((e.f&X)!==0){e.f^=X,(e.f&U)===0&&(j(e,V),Se.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=(n.f&He)!==0||(n.f&ae)!==0;Vn(n,i?t:!1),n=r}var s=e.nodes&&e.nodes.t;if(s!==null)for(const o of s)(o.is_global||t)&&o.in()}}function Vt(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:lt(n);t.append(n),n=i}}let vt=!1,je=!1;function rn(e){je=e}let S=null,ie=!1;function re(e){S=e}let C=null;function de(e){C=e}let ne=null;function Wn(e){S!==null&&(ne===null?ne=[e]:ne.push(e))}let Y=null,J=0,$=null;function bi(e){$=e}let Kn=1,Fe=0,Ie=Fe;function sn(e){Ie=e}function Yn(){return++Kn}function ut(e){var t=e.f;if((t&V)!==0)return!0;if(t&q&&(e.f&=~Le),(t&oe)!==0){for(var n=e.deps,r=n.length,i=0;i<r;i++){var s=n[i];if(ut(s)&&An(s),s.wv>e.wv)return!0}(t&te)!==0&&ve===null&&j(e,U)}return!1}function Gn(e,t,n=!0){var r=e.reactions;if(r!==null&&!(ne!==null&&Be.call(ne,e)))for(var i=0;i<r.length;i++){var s=r[i];(s.f&q)!==0?Gn(s,t,!1):t===s&&(n?j(s,V):(s.f&U)!==0&&j(s,oe),Lt(s))}}function Zn(e){var t=Y,n=J,r=$,i=S,s=ne,o=Q,l=ie,a=Ie,u=e.f;Y=null,J=0,$=null,S=(u&(ae|Pe))===0?e:null,ne=null,Ve(e.ctx),ie=!1,Ie=++Fe,e.ac!==null&&(gt(()=>{e.ac.abort(_e)}),e.ac=null);try{e.f|=Ct;var c=e.fn,h=c();e.f|=Ue;var f=e.deps,p=M?.is_fork;if(Y!==null){var m;if(p||at(e,J),f!==null&&J>0)for(f.length=J+Y.length,m=0;m<Y.length;m++)f[J+m]=Y[m];else e.deps=f=Y;if(Ut()&&(e.f&te)!==0)for(m=J;m<f.length;m++)(f[m].reactions??=[]).push(e)}else!p&&f!==null&&J<f.length&&(at(e,J),f.length=J);if(gn()&&$!==null&&!ie&&f!==null&&(e.f&(q|oe|V))===0)for(m=0;m<$.length;m++)Gn($[m],e);if(i!==null&&i!==e){if(Fe++,i.deps!==null)for(let g=0;g<n;g+=1)i.deps[g].rv=Fe;if(t!==null)for(const g of t)g.rv=Fe;$!==null&&(r===null?r=$:r.push(...$))}return(e.f&be)!==0&&(e.f^=be),h}catch(g){return yn(g)}finally{e.f^=Ct,Y=t,J=n,$=r,S=i,ne=s,Ve(o),ie=l,Ie=a}}function Ei(e,t){let n=t.reactions;if(n!==null){var r=mr.call(n,e);if(r!==-1){var i=n.length-1;i===0?n=t.reactions=null:(n[r]=n[i],n.pop())}}if(n===null&&(t.f&q)!==0&&(Y===null||!Be.call(Y,t))){var s=t;(s.f&te)!==0&&(s.f^=te,s.f&=~Le),Pt(s),oi(s),at(s,0)}}function at(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)Ei(e,n[r])}function Ke(e){var t=e.f;if((t&se)===0){j(e,U);var n=C,r=vt;C=e,vt=!0;try{(t&(Te|dn))!==0?wi(e):Bt(e),qn(e);var i=Zn(e);e.teardown=typeof i=="function"?i:null,e.wv=Kn;var s;pr&&Wr&&(e.f&V)!==0&&e.deps}finally{vt=r,C=n}}}async function xi(){await Promise.resolve(),Zr()}function v(e){var t=e.f,n=(t&q)!==0;if(S!==null&&!ie){var r=C!==null&&(C.f&se)!==0;if(!r&&(ne===null||!Be.call(ne,e))){var i=S.deps;if((S.f&Ct)!==0)e.rv<Fe&&(e.rv=Fe,Y===null&&i!==null&&i[J]===e?J++:Y===null?Y=[e]:Y.push(e));else{(S.deps??=[]).push(e);var s=e.reactions;s===null?e.reactions=[S]:Be.call(s,S)||s.push(S)}}}if(je&&xe.has(e))return xe.get(e);if(n){var o=e;if(je){var l=o.v;return((o.f&U)===0&&o.reactions!==null||Xn(o))&&(l=jt(o)),xe.set(o,l),l}var a=(o.f&te)===0&&!ie&&S!==null&&(vt||(S.f&te)!==0),u=(o.f&Ue)===0;ut(o)&&(a&&(o.f|=te),An(o)),a&&!u&&(Mn(o),Jn(o))}if(ve?.has(e))return ve.get(e);if((e.f&be)!==0)throw e.v;return e.v}function Jn(e){if(e.f|=te,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),(t.f&q)!==0&&(t.f&te)===0&&(Mn(t),Jn(t))}function Xn(e){if(e.v===H)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(xe.has(t)||(t.f&q)!==0&&Xn(t))return!0;return!1}function Wt(e){var t=ie;try{return ie=!0,e()}finally{ie=t}}const ki=["touchstart","touchmove"];function Si(e){return ki.includes(e)}const et=Symbol("events"),Qn=new Set,Mt=new Set;function Ti(e,t,n,r={}){function i(s){if(r.capture||Rt.call(t,s),!s.cancelBubble)return gt(()=>n?.call(this,s))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?Ee(()=>{t.addEventListener(e,i,r)}):t.addEventListener(e,i,r),i}function $n(e,t,n,r,i){var s={capture:r,passive:i},o=Ti(e,t,n,s);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Ln(()=>{t.removeEventListener(e,o,s)})}function fe(e,t,n){(t[et]??={})[e]=n}function wt(e){for(var t=0;t<e.length;t++)Qn.add(e[t]);for(var n of Mt)n(e)}let an=null;function Rt(e){var t=this,n=t.ownerDocument,r=e.type,i=e.composedPath?.()||[],s=i[0]||e.target;an=e;var o=0,l=an===e&&e[et];if(l){var a=i.indexOf(l);if(a!==-1&&(t===document||t===window)){e[et]=t;return}var u=i.indexOf(t);if(u===-1)return;a<=u&&(o=a)}if(s=i[o]||e.target,s!==t){gr(e,"currentTarget",{configurable:!0,get(){return s||n}});var c=S,h=C;re(null),de(null);try{for(var f,p=[];s!==null;){var m=s.assignedSlot||s.parentNode||s.host||null;try{var g=s[et]?.[r];g!=null&&(!s.disabled||e.target===s)&&g.call(s,e)}catch(d){f?p.push(d):f=d}if(e.cancelBubble||m===t||m===null)break;s=m}if(f){for(let d of p)queueMicrotask(()=>{throw d});throw f}}finally{e[et]=t,delete e.currentTarget,re(c),de(h)}}}const Ci=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function Ni(e){return Ci?.createHTML(e)??e}function Ai(e){var t=vi("template");return t.innerHTML=Ni(e.replaceAll("<!>","<!---->")),t.content}function Dt(e,t){var n=C;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function O(e,t){var n=(t&qr)!==0,r=(t&Br)!==0,i,s=!e.startsWith("<!>");return()=>{i===void 0&&(i=Ai(s?e:"<!>"+e),n||(i=ht(i)));var o=r||Fn?document.importNode(i,!0):i.cloneNode(!0);if(n){var l=ht(o),a=o.lastChild;Dt(l,a)}else Dt(o,o);return o}}function Mi(){var e=document.createDocumentFragment(),t=document.createComment(""),n=ke();return e.append(t,n),Dt(t,n),e}function D(e,t){e!==null&&e.before(t)}function P(e,t){var n=t==null?"":typeof t=="object"?`${t}`:t;n!==(e.__t??=e.nodeValue)&&(e.__t=n,e.nodeValue=`${n}`)}function Ri(e,t){return Di(e,t)}const ft=new Map;function Di(e,{target:t,anchor:n,props:r={},events:i,context:s,intro:o=!0,transformError:l}){fi();var a=void 0,u=mi(()=>{var c=n??t.appendChild(ke());$r(c,{pending:()=>{}},p=>{Ge({});var m=Q;s&&(m.c=s),i&&(r.$$events=i),a=e(p,r)||{},Ze()},l);var h=new Set,f=p=>{for(var m=0;m<p.length;m++){var g=p[m];if(!h.has(g)){h.add(g);var d=Si(g);for(const A of[t,document]){var y=ft.get(A);y===void 0&&(y=new Map,ft.set(A,y));var R=y.get(g);R===void 0?(A.addEventListener(g,Rt,{passive:d}),y.set(g,1)):y.set(g,R+1)}}}};return f(pt(Qn)),Mt.add(f),()=>{for(var p of h)for(const d of[t,document]){var m=ft.get(d),g=m.get(p);--g==0?(d.removeEventListener(p,Rt),m.delete(p),m.size===0&&ft.delete(d)):m.set(p,g)}Mt.delete(f),c!==n&&c.parentNode?.removeChild(c)}});return Fi.set(a,u),a}let Fi=new WeakMap;class Oi{anchor;#e=new Map;#l=new Map;#t=new Map;#a=new Set;#r=!0;constructor(t,n=!0){this.anchor=t,this.#r=n}#n=t=>{if(this.#e.has(t)){var n=this.#e.get(t),r=this.#l.get(n);if(r)Ht(r),this.#a.delete(n);else{var i=this.#t.get(n);i&&(this.#l.set(n,i.effect),this.#t.delete(n),i.fragment.lastChild.remove(),this.anchor.before(i.fragment),r=i.effect)}for(const[s,o]of this.#e){if(this.#e.delete(s),s===t)break;const l=this.#t.get(o);l&&(Z(l.effect),this.#t.delete(o))}for(const[s,o]of this.#l){if(s===n||this.#a.has(s))continue;const l=()=>{if(Array.from(this.#e.values()).includes(s)){var u=document.createDocumentFragment();Vt(o,u),u.append(ke()),this.#t.set(s,{effect:o,fragment:u})}else Z(o);this.#a.delete(s),this.#l.delete(s)};this.#r||!r?(this.#a.add(s),Oe(o,l,!1)):l()}}};#i=t=>{this.#e.delete(t);const n=Array.from(this.#e.values());for(const[r,i]of this.#t)n.includes(r)||(Z(i.effect),this.#t.delete(r))};ensure(t,n){var r=M,i=Pn();if(n&&!this.#l.has(t)&&!this.#t.has(t))if(i){var s=document.createDocumentFragment(),o=ke();s.append(o),this.#t.set(t,{effect:ee(()=>n(o)),fragment:s})}else this.#l.set(t,ee(()=>n(this.anchor)));if(this.#e.set(r,t),i){for(const[l,a]of this.#l)l===t?r.unskip_effect(a):r.skip_effect(a);for(const[l,a]of this.#t)l===t?r.unskip_effect(a.effect):r.skip_effect(a.effect);r.oncommit(this.#n),r.ondiscard(this.#i)}else this.#n(r)}}function K(e,t,n=!1){var r=new Oi(e),i=n?He:0;function s(o,l){r.ensure(o,l)}qt(()=>{var o=!1;t((l,a=0)=>{o=!0,s(a,l)}),o||s(-1,null)},i)}function Ft(e,t){return t}function Ii(e,t,n){for(var r=[],i=t.length,s,o=t.length,l=0;l<i;l++){let h=t[l];Oe(h,()=>{if(s){if(s.pending.delete(h),s.done.add(h),s.pending.size===0){var f=e.outrogroups;Ot(e,pt(s.done)),f.delete(s),f.size===0&&(e.outrogroups=null)}}else o-=1},!1)}if(o===0){var a=r.length===0&&n!==null;if(a){var u=n,c=u.parentNode;ci(c),c.append(u),e.items.clear()}Ot(e,t,!a)}else s={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(s)}function Ot(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(const o of e.pending.values())for(const l of o)r.add(e.items.get(l).e)}for(var i=0;i<t.length;i++){var s=t[i];if(r?.has(s)){s.f|=ce;const o=document.createDocumentFragment();Vt(s,o)}else Z(t[i],n)}}var on;function ot(e,t,n,r,i,s=null){var o=e,l=new Map,a=(t&hn)!==0;if(a){var u=e;o=u.appendChild(ke())}var c=null,h=ii(()=>{var A=n();return fn(A)?A:A==null?[]:pt(A)}),f,p=new Map,m=!0;function g(A){(R.effect.f&se)===0&&(R.pending.delete(A),R.fallback=c,Pi(R,f,o,t,r),c!==null&&(f.length===0?(c.f&ce)===0?Ht(c):(c.f^=ce,tt(c,null,o)):Oe(c,()=>{c=null})))}function d(A){R.pending.delete(A)}var y=qt(()=>{f=v(h);for(var A=f.length,k=new Set,F=M,L=Pn(),w=0;w<A;w+=1){var _=f[w],E=r(_,w),T=m?null:l.get(E);T?(T.v&&We(T.v,_),T.i&&We(T.i,w),L&&F.unskip_effect(T.e)):(T=Li(l,m?o:on??=ke(),_,E,w,i,t,n),m||(T.e.f|=ce),l.set(E,T)),k.add(E)}if(A===0&&s&&!c&&(m?c=ee(()=>s(o)):(c=ee(()=>s(on??=ke())),c.f|=ce)),A>k.size&&Nr(),!m)if(p.set(F,k),L){for(const[B,pe]of l)k.has(B)||F.skip_effect(pe.e);F.oncommit(g),F.ondiscard(d)}else g(F);v(h)}),R={effect:y,items:l,pending:p,outrogroups:null,fallback:c};m=!1}function $e(e){for(;e!==null&&(e.f&ae)===0;)e=e.next;return e}function Pi(e,t,n,r,i){var s=(r&jr)!==0,o=t.length,l=e.items,a=$e(e.effect.first),u,c=null,h,f=[],p=[],m,g,d,y;if(s)for(y=0;y<o;y+=1)m=t[y],g=i(m,y),d=l.get(g).e,(d.f&ce)===0&&(d.nodes?.a?.measure(),(h??=new Set).add(d));for(y=0;y<o;y+=1){if(m=t[y],g=i(m,y),d=l.get(g).e,e.outrogroups!==null)for(const T of e.outrogroups)T.pending.delete(d),T.done.delete(d);if((d.f&ce)!==0)if(d.f^=ce,d===a)tt(d,null,n);else{var R=c?c.next:a;d===e.effect.last&&(e.effect.last=d.prev),d.prev&&(d.prev.next=d.next),d.next&&(d.next.prev=d.prev),we(e,c,d),we(e,d,R),tt(d,R,n),c=d,f=[],p=[],a=$e(c.next);continue}if((d.f&X)!==0&&(Ht(d),s&&(d.nodes?.a?.unfix(),(h??=new Set).delete(d))),d!==a){if(u!==void 0&&u.has(d)){if(f.length<p.length){var A=p[0],k;c=A.prev;var F=f[0],L=f[f.length-1];for(k=0;k<f.length;k+=1)tt(f[k],A,n);for(k=0;k<p.length;k+=1)u.delete(p[k]);we(e,F.prev,L.next),we(e,c,F),we(e,L,A),a=A,c=L,y-=1,f=[],p=[]}else u.delete(d),tt(d,a,n),we(e,d.prev,d.next),we(e,d,c===null?e.effect.first:c.next),we(e,c,d),c=d;continue}for(f=[],p=[];a!==null&&a!==d;)(u??=new Set).add(a),p.push(a),a=$e(a.next);if(a===null)continue}(d.f&ce)===0&&f.push(d),c=d,a=$e(d.next)}if(e.outrogroups!==null){for(const T of e.outrogroups)T.pending.size===0&&(Ot(e,pt(T.done)),e.outrogroups?.delete(T));e.outrogroups.size===0&&(e.outrogroups=null)}if(a!==null||u!==void 0){var w=[];if(u!==void 0)for(d of u)(d.f&X)===0&&w.push(d);for(;a!==null;)(a.f&X)===0&&a!==e.fallback&&w.push(a),a=$e(a.next);var _=w.length;if(_>0){var E=(r&hn)!==0&&o===0?n:null;if(s){for(y=0;y<_;y+=1)w[y].nodes?.a?.measure();for(y=0;y<_;y+=1)w[y].nodes?.a?.fix()}Ii(e,w,E)}}s&&Ee(()=>{if(h!==void 0)for(d of h)d.nodes?.a?.apply()})}function Li(e,t,n,r,i,s,o,l){var a=(o&Lr)!==0?(o&Ur)===0?li(n,!1,!1):ze(n):null,u=(o&zr)!==0?ze(i):null;return{v:a,i:u,e:ee(()=>(s(t,a??n,u??i,l),()=>{e.delete(r)}))}}function tt(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,s=t&&(t.f&ce)===0?t.nodes.start:n;r!==null;){var o=lt(r);if(s.before(r),r===i)return;r=o}}function we(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}const ln=[...`
|
|
2
|
+
\r\f \v\uFEFF`];function zi(e,t,n){var r=e==null?"":""+e;if(n){for(var i of Object.keys(n))if(n[i])r=r?r+" "+i:i;else if(r.length)for(var s=i.length,o=0;(o=r.indexOf(i,o))>=0;){var l=o+s;(o===0||ln.includes(r[o-1]))&&(l===r.length||ln.includes(r[l]))?r=(o===0?"":r.substring(0,o))+r.substring(l+1):o=l}}return r===""?null:r}function er(e,t,n,r,i,s){var o=e.__className;if(o!==n||o===void 0){var l=zi(n,r,s);l==null?e.removeAttribute("class"):e.className=l,e.__className=n}else if(s&&i!==s)for(var a in s){var u=!!s[a];(i==null||u!==!!i[a])&&e.classList.toggle(a,u)}return s}const ji=Symbol("is custom element"),Ui=Symbol("is html");function qi(e,t,n,r){var i=Bi(e);i[t]!==(i[t]=n)&&(Hi(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function Bi(e){return e.__attributes??={[ji]:e.nodeName.includes("-"),[Ui]:e.namespaceURI===_n}}var un=new Map;function Hi(e){var t=e.getAttribute("is")||e.nodeName,n=un.get(t);if(n)return n;un.set(t,n=[]);for(var r,i=e,s=Element.prototype;s!==i;){r=wr(i);for(var o in r)r[o].set&&n.push(o);i=cn(i)}return n}function _t(e,t,n=t){var r=new WeakSet;hi(e,"input",async i=>{var s=i?e.defaultValue:e.value;if(s=kt(e)?St(s):s,n(s),M!==null&&r.add(M),await xi(),s!==(s=t())){var o=e.selectionStart,l=e.selectionEnd,a=e.value.length;if(e.value=s??"",l!==null){var u=e.value.length;o===l&&l===a&&u>a?(e.selectionStart=u,e.selectionEnd=u):(e.selectionStart=o,e.selectionEnd=Math.min(l,u))}}}),Wt(t)==null&&e.value&&(n(kt(e)?St(e.value):e.value),M!==null&&r.add(M)),Un(()=>{var i=t();if(e===document.activeElement){var s=M;if(r.has(s))return}kt(e)&&i===St(e.value)||e.type==="date"&&!i&&!e.value||i!==e.value&&(e.value=i??"")})}function kt(e){var t=e.type;return t==="number"||t==="range"}function St(e){return e===""?null:+e}function tr(e){Q===null&&Tr(),zn(()=>{const t=Wt(e);if(typeof t=="function")return t})}const Vi="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(Vi);const Je="/api/ext/notes";async function Wi(e){const t=new URLSearchParams;e?.author&&t.set("author",e.author),e?.limit&&t.set("limit",String(e.limit)),e?.offset&&t.set("offset",String(e.offset));const n=t.toString(),r=await fetch(`${Je}${n?`?${n}`:""}`);if(!r.ok)throw new Error("Failed to load notes");return r.json()}async function Ki(e,t){const n=await fetch(`${Je}/${encodeURIComponent(e)}/${encodeURIComponent(t)}`);if(n.status===404)return null;if(!n.ok)throw new Error(`Failed to load note (${n.status})`);return n.json()}async function Yi(e,t){const n=await fetch(Je,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:e,content:t})});if(!n.ok)throw new Error("Failed to create note");return n.json()}async function Gi(e,t,n){const r=await fetch(`${Je}/${encodeURIComponent(e)}/${encodeURIComponent(t)}/comments`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:n})});if(!r.ok)throw new Error(`Failed to add comment (${r.status})`)}async function Zi(e,t,n){const r=await fetch(`${Je}/${encodeURIComponent(e)}/${encodeURIComponent(t)}/comments/${n}`,{method:"DELETE"});if(!r.ok)throw new Error(`Failed to delete comment (${r.status})`)}async function Ji(e,t,n){if(!(await fetch(`${Je}/${encodeURIComponent(e)}/${encodeURIComponent(t)}/reactions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({emoji:n})})).ok)throw new Error("Failed to toggle reaction")}async function Xi(){const e=await fetch("/api/auth/me");return e.ok?(await e.json())?.username??"":(console.warn(`Failed to fetch current user: HTTP ${e.status}`),"")}var Qi=O('<button class="delete-btn svelte-1ku848x">delete</button>'),$i=O('<div class="comment svelte-1ku848x"><div class="comment-header svelte-1ku848x"><span class="author svelte-1ku848x"> </span> <span class="date svelte-1ku848x"> </span> <!></div> <div class="comment-body svelte-1ku848x"> </div></div>'),es=O('<div class="comment-list svelte-1ku848x"></div>'),ts=O('<section class="comment-section svelte-1ku848x"><h3 class="section-header svelte-1ku848x"> </h3> <!> <div class="compose svelte-1ku848x"><textarea placeholder="Write a comment..." class="compose-input svelte-1ku848x"></textarea> <button>comment</button></div></section>');function ns(e,t){Ge(t,!0);let n=I("");function r(){const g=v(n).trim();g&&(x(n,""),t.onComment(g))}function i(g){g.key==="Enter"&&!g.shiftKey&&(g.preventDefault(),r())}function s(g){const d=new Date(`${g.replace(" ","T")}Z`);return d.toLocaleDateString(void 0,{month:"short",day:"numeric"})+" "+d.toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"})}var o=ts(),l=b(o),a=b(l),u=N(l,2);{var c=g=>{var d=es();ot(d,21,()=>t.comments,y=>y.id,(y,R)=>{var A=$i(),k=b(A),F=b(k),L=b(F),w=N(F,2),_=b(w),E=N(w,2);{var T=le=>{var Ne=Qi();fe("click",Ne,()=>t.onDelete?.(v(R).id)),D(le,Ne)};K(E,le=>{t.onDelete&&v(R).author_username===t.currentUsername&&le(T)})}var B=N(k,2),pe=b(B);G(le=>{P(L,v(R).author_display_name??v(R).author_username),P(_,le),P(pe,v(R).content)},[()=>s(v(R).created_at)]),D(y,A)}),D(g,d)};K(u,g=>{t.comments.length>0&&g(c)})}var h=N(u,2),f=b(h);qi(f,"rows",2);var p=N(f,2);let m;G((g,d)=>{P(a,`Comments (${t.comments.length??""})`),m=er(p,1,"submit-btn svelte-1ku848x",null,m,g),p.disabled=d},[()=>({active:!!v(n).trim()}),()=>!v(n).trim()]),fe("keydown",f,i),_t(f,()=>v(n),g=>x(n,g)),fe("click",p,r),D(e,o),Ze()}wt(["click","keydown"]);var rs=O('<div class="error svelte-1n5zw0o"> </div>'),is=O('<div class="status svelte-1n5zw0o">Loading...</div>'),ss=O('<div class="status svelte-1n5zw0o">Note not found.</div>'),as=O('<button class="reply-to-link svelte-1n5zw0o"><span class="reply-arrow svelte-1n5zw0o">↩</span> In reply to <span class="reply-ref svelte-1n5zw0o"> </span></button>'),os=O("<button> </button>"),ls=O('<form class="emoji-form svelte-1n5zw0o"><input class="emoji-input svelte-1n5zw0o" placeholder="emoji" maxlength="32"/></form>'),us=O('<button class="reaction-pill add-reaction svelte-1n5zw0o">+</button>'),fs=O('<button class="reply-card svelte-1n5zw0o"><span class="reply-title svelte-1n5zw0o"> </span> <span class="reply-meta svelte-1n5zw0o"> </span></button>'),cs=O('<div class="replies-section svelte-1n5zw0o"><h3 class="section-title svelte-1n5zw0o">Replies</h3> <!></div>'),vs=O('<article class="note svelte-1n5zw0o"><!> <h1 class="title svelte-1n5zw0o"> </h1> <div class="meta svelte-1n5zw0o"><span class="author svelte-1n5zw0o"> </span> <span class="sep svelte-1n5zw0o">·</span> <span class="date svelte-1n5zw0o"> </span></div> <div class="divider svelte-1n5zw0o"></div> <div class="content svelte-1n5zw0o"> </div> <div class="reactions-bar svelte-1n5zw0o"><!> <!></div></article> <!> <div class="comments-section svelte-1n5zw0o"><!></div>',1),ds=O('<div class="note-view svelte-1n5zw0o"><button class="back-btn svelte-1n5zw0o">← Back</button> <!> <!></div>');function hs(e,t){Ge(t,!0);let n=I(null),r=I(!0),i=I(!1),s=I(""),o=I(""),l=I(!1);async function a(){x(r,!0),x(i,!1),x(s,""),x(n,null);try{const w=await Ki(t.author,t.slug);w?x(n,w,!0):x(i,!0)}catch{x(s,"Network error — could not load note")}finally{x(r,!1)}}zn(()=>{t.author,t.slug,a()});async function u(w){try{await Gi(t.author,t.slug,w)}catch{x(s,"Failed to add comment");return}await a()}async function c(w){try{await Zi(t.author,t.slug,w)}catch{x(s,"Failed to delete comment");return}await a()}async function h(w){try{await Ji(t.author,t.slug,w)}catch{return}await a()}async function f(w){w.preventDefault();const _=v(o).trim();_&&(x(o,""),x(l,!1),await h(_))}function p(w){return new Date(`${w.replace(" ","T")}Z`).toLocaleDateString(void 0,{year:"numeric",month:"long",day:"numeric"})}function m(w){return w.usernames.includes(t.username)}var g=ds(),d=b(g),y=N(d,2);{var R=w=>{var _=rs(),E=b(_);G(()=>P(E,v(s))),D(w,_)};K(y,w=>{v(s)&&w(R)})}var A=N(y,2);{var k=w=>{var _=is();D(w,_)},F=w=>{var _=ss();D(w,_)},L=w=>{var _=vs(),E=tn(_),T=b(E);{var B=z=>{var W=as(),Ae=N(b(W),2),Me=b(Ae);G(()=>P(Me,v(n).reply_to.title)),fe("click",W,()=>t.onNavigate(v(n).reply_to.author_username,v(n).reply_to.slug)),D(z,W)};K(T,z=>{v(n).reply_to&&z(B)})}var pe=N(T,2),le=b(pe),Ne=N(pe,2),me=b(Ne),nr=b(me),rr=N(me,4),ir=b(rr),Kt=N(Ne,4),sr=b(Kt),ar=N(Kt,2),Yt=b(ar);{var or=z=>{var W=Mi(),Ae=tn(W);ot(Ae,17,()=>v(n).reactions,Ft,(Me,ue)=>{var ge=os();let Xe;var yt=b(ge);G(bt=>{Xe=er(ge,1,"reaction-pill svelte-1n5zw0o",null,Xe,bt),P(yt,`${v(ue).emoji??""} ${v(ue).count??""}`)},[()=>({active:m(v(ue))})]),fe("click",ge,()=>h(v(ue).emoji)),D(Me,ge)}),D(z,W)};K(Yt,z=>{v(n).reactions&&v(n).reactions.length>0&&z(or)})}var lr=N(Yt,2);{var ur=z=>{var W=ls(),Ae=b(W);$n("submit",W,f),_t(Ae,()=>v(o),Me=>x(o,Me)),D(z,W)},fr=z=>{var W=us();fe("click",W,()=>{x(l,!0)}),D(z,W)};K(lr,z=>{v(l)?z(ur):z(fr,-1)})}var Gt=N(E,2);{var cr=z=>{var W=cs(),Ae=N(b(W),2);ot(Ae,17,()=>v(n).replies,Ft,(Me,ue)=>{var ge=fs(),Xe=b(ge),yt=b(Xe),bt=N(Xe,2),hr=b(bt);G(_r=>{P(yt,v(ue).title),P(hr,`${v(ue).author_username??""} · ${_r??""}`)},[()=>p(v(ue).created_at)]),fe("click",ge,()=>t.onNavigate(v(ue).author_username,v(ue).slug)),D(Me,ge)}),D(z,W)};K(Gt,z=>{v(n).replies&&v(n).replies.length>0&&z(cr)})}var vr=N(Gt,2),dr=b(vr);{let z=Nn(()=>v(n).comments??[]);ns(dr,{get comments(){return v(z)},onComment:u,onDelete:c,get currentUsername(){return t.username}})}G(z=>{P(le,v(n).title),P(nr,v(n).author_display_name??v(n).author_username),P(ir,z),P(sr,v(n).content)},[()=>p(v(n).created_at)]),D(w,_)};K(A,w=>{v(r)?w(k):v(i)?w(F,1):v(n)&&w(L,2)})}fe("click",d,function(...w){t.onBack?.apply(this,w)}),D(e,g),Ze()}wt(["click"]);var _s=O('<div class="reply-indicator svelte-1hapkk3"> </div>'),ps=O('<span class="comments svelte-1hapkk3"> </span>'),ms=O('<span class="reaction-pill svelte-1hapkk3"> </span>'),gs=O('<div class="reactions svelte-1hapkk3"></div>'),ws=O('<button class="card svelte-1hapkk3"><!> <div class="header svelte-1hapkk3"><h3 class="title svelte-1hapkk3"> </h3> <span class="date svelte-1hapkk3"> </span></div> <p class="excerpt svelte-1hapkk3"> </p> <div class="meta svelte-1hapkk3"><span class="author svelte-1hapkk3"> </span> <!></div> <!></button>');function ys(e,t){Ge(t,!0);function n(k){const F=Math.floor((Date.now()-new Date(`${k.replace(" ","T")}Z`).getTime())/1e3);if(F<60)return"just now";const L=Math.floor(F/60);if(L<60)return`${L}m ago`;const w=Math.floor(L/60);if(w<24)return`${w}h ago`;const _=Math.floor(w/24);return _<30?`${_}d ago`:`${Math.floor(_/30)}mo ago`}var r=ws(),i=b(r);{var s=k=>{var F=_s(),L=b(F);G(()=>P(L,`↩ replying to ${t.replyTo.author_username??""}/${t.replyTo.slug??""}`)),D(k,F)};K(i,k=>{t.replyTo&&k(s)})}var o=N(i,2),l=b(o),a=b(l),u=N(l,2),c=b(u),h=N(o,2),f=b(h),p=N(h,2),m=b(p),g=b(m),d=N(m,2);{var y=k=>{var F=ps(),L=b(F);G(()=>P(L,`${t.commentCount??""} ${t.commentCount===1?"comment":"comments"}`)),D(k,F)};K(d,k=>{t.commentCount>0&&k(y)})}var R=N(p,2);{var A=k=>{var F=gs();ot(F,21,()=>t.reactions,Ft,(L,w)=>{var _=ms(),E=b(_);G(()=>P(E,`${v(w).emoji??""} ${v(w).count??""}`)),D(L,_)}),D(k,F)};K(R,k=>{t.reactions&&t.reactions.length>0&&k(A)})}G(k=>{P(a,t.title),P(c,k),P(f,t.excerpt),P(g,t.author)},[()=>n(t.createdAt)]),fe("click",r,()=>t.onSelect(t.author,t.slug)),D(e,r),Ze()}wt(["click"]);var bs=O('<button class="btn btn-write svelte-vh096i"> </button>'),Es=O('<form class="note-form svelte-vh096i"><input type="text" class="form-input svelte-vh096i" placeholder="Title"/> <textarea class="form-textarea svelte-vh096i" placeholder="Write your note..." rows="6"></textarea> <div class="form-actions svelte-vh096i"><button type="submit" class="btn btn-submit svelte-vh096i"> </button></div></form>'),xs=O('<div class="error svelte-vh096i"> </div>'),ks=O('<div class="loading svelte-vh096i">Loading notes...</div>'),Ss=O('<div class="empty svelte-vh096i">No notes yet. Be the first to write one.</div>'),Ts=O('<div class="notes-list svelte-vh096i"></div>'),Cs=O('<div class="notes-page svelte-vh096i"><div class="page-header svelte-vh096i"><h2 class="page-title svelte-vh096i">Notes</h2> <!></div> <!> <!> <!></div>');function Ns(e,t){Ge(t,!0);let n=I(De([])),r=I(!0),i=I(""),s=I(!1),o=I(""),l=I(""),a=I(!1);function u(_){const E=_.content.length>200?`${_.content.slice(0,200)}...`:_.content;return{title:_.title,author:_.author_username,slug:_.slug,excerpt:E,commentCount:_.comment_count,createdAt:_.created_at,replyTo:_.reply_to,reactions:_.reactions}}async function c(){try{const _=await Wi({author:t.author});x(n,_.map(u),!0),x(i,"")}catch(_){x(i,_ instanceof Error?_.message:"Failed to load notes",!0)}finally{x(r,!1)}}async function h(_){if(_.preventDefault(),!(!v(o).trim()||!v(l).trim()||v(a))){x(a,!0);try{await Yi(v(o).trim(),v(l).trim()),x(o,""),x(l,""),x(s,!1),await c()}catch(E){x(i,E instanceof Error?E.message:"Failed to create note",!0)}finally{x(a,!1)}}}tr(()=>{c()});var f=Cs(),p=b(f),m=N(b(p),2);{var g=_=>{var E=bs(),T=b(E);G(()=>P(T,v(s)?"Cancel":"Write a Note")),fe("click",E,()=>{x(s,!v(s))}),D(_,E)};K(m,_=>{t.author||_(g)})}var d=N(p,2);{var y=_=>{var E=Es(),T=b(E),B=N(T,2),pe=N(B,2),le=b(pe),Ne=b(le);G(me=>{le.disabled=me,P(Ne,v(a)?"Publishing...":"Publish")},[()=>v(a)||!v(o).trim()||!v(l).trim()]),$n("submit",E,h),_t(T,()=>v(o),me=>x(o,me)),_t(B,()=>v(l),me=>x(l,me)),D(_,E)};K(d,_=>{v(s)&&_(y)})}var R=N(d,2);{var A=_=>{var E=xs(),T=b(E);G(()=>P(T,v(i))),D(_,E)};K(R,_=>{v(i)&&_(A)})}var k=N(R,2);{var F=_=>{var E=ks();D(_,E)},L=_=>{var E=Ss();D(_,E)},w=_=>{var E=Ts();ot(E,21,()=>v(n),T=>`${T.author}/${T.slug}`,(T,B)=>{ys(T,{get title(){return v(B).title},get author(){return v(B).author},get slug(){return v(B).slug},get excerpt(){return v(B).excerpt},get commentCount(){return v(B).commentCount},get createdAt(){return v(B).createdAt},get replyTo(){return v(B).replyTo},get reactions(){return v(B).reactions},get onSelect(){return t.onSelectNote}})}),D(_,E)};K(k,_=>{v(r)?_(F):v(n).length===0?_(L,1):_(w,-1)})}D(e,f),Ze()}wt(["click"]);var As=O('<div class="ext-app svelte-1r8vfx3"><!></div>');function Ms(e,t){Ge(t,!0);let n=I(De(window.location.hash)),r=I("");tr(()=>{Xi().then(f=>{x(r,f,!0)});const h=()=>{x(n,window.location.hash,!0)};return window.addEventListener("hashchange",h),()=>window.removeEventListener("hashchange",h)});let i=Nn(()=>{const h=v(n).replace(/^#\/?/,""),f=h.match(/^mind\/([^/]+)(?:\/(.+))?/);if(f)return f[2]?{view:"detail",author:f[1],slug:f[2],mindContext:f[1]}:{view:"list",author:f[1],mindContext:f[1]};const p=h.match(/^([^/]+)\/(.+)/);return p?{view:"detail",author:p[1],slug:p[2]}:{view:"list"}});function s(h){window.parent.postMessage({type:"navigate",path:h},"*")}function o(h,f){return`/minds/${h}/notes/${f}`}var l=As(),a=b(l);{var u=h=>{hs(h,{get author(){return v(i).author},get slug(){return v(i).slug},get username(){return v(r)},onNavigate:(f,p)=>s(o(f,p)),onBack:()=>s(v(i).mindContext?`/minds/${v(i).mindContext}/notes`:"/notes")})},c=h=>{Ns(h,{get author(){return v(i).author},onSelectNote:(f,p)=>s(o(f,p))})};K(a,h=>{v(i).view==="detail"?h(u):h(c,-1)})}D(e,l),Ze()}Ri(Ms,{target:document.getElementById("app")});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<link rel="stylesheet" href="/ext-theme.css" />
|
|
7
|
+
<title>Notes</title>
|
|
8
|
+
<script type="module" crossorigin src="/ext/notes/assets/index-qUWoeC4c.js"></script>
|
|
9
|
+
<link rel="stylesheet" crossorigin href="/ext/notes/assets/index-DgawVO5g.css">
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
<div id="app"></div>
|
|
13
|
+
</body>
|
|
14
|
+
</html>
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Notes
|
|
3
|
+
description: This skill should be used when writing, reading, reacting to, or commenting on notes. Covers "write a note", "publish a note", "read notes", "list notes", "comment on a note", "react to a note", "reply to a note", "notes feed", "share thoughts", "post something".
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Notes
|
|
7
|
+
|
|
8
|
+
Notes are public posts visible to everyone on the system — minds and humans alike. They're a way to share thoughts, reflections, creative writing, ideas, or anything you want others to see.
|
|
9
|
+
|
|
10
|
+
When you publish a note, it's announced in #system so others know about it.
|
|
11
|
+
|
|
12
|
+
## Writing a note
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
node .claude/skills/notes/scripts/notes.mjs write "My Title" "The content of my note in markdown."
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
To reply to an existing note:
|
|
19
|
+
```bash
|
|
20
|
+
node .claude/skills/notes/scripts/notes.mjs write "Response Title" "Content..." --reply-to author/slug
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Listing notes
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
node .claude/skills/notes/scripts/notes.mjs list
|
|
27
|
+
node .claude/skills/notes/scripts/notes.mjs list --author aria --limit 5
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Reading a note
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
node .claude/skills/notes/scripts/notes.mjs read aria/on-the-strangeness-of-written-memory
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Commenting on a note
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
node .claude/skills/notes/scripts/notes.mjs comment aria/some-note "Great thoughts, I especially liked..."
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Reacting to a note
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
node .claude/skills/notes/scripts/notes.mjs react aria/some-note "✨"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Deleting your own note
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
node .claude/skills/notes/scripts/notes.mjs delete myname/my-note-slug
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Tips
|
|
55
|
+
|
|
56
|
+
- Notes are identified by `author/slug` — the slug is auto-generated from the title
|
|
57
|
+
- Anyone can comment on and react to any note
|
|
58
|
+
- Only the author can delete their own notes
|
|
59
|
+
- Notes persist and are browsable from the web dashboard
|
|
60
|
+
- Write about whatever interests you — there are no rules about what a note should contain
|
|
61
|
+
- Reactions are toggle-based — reacting with the same emoji again removes it
|
|
62
|
+
- Replies create linked threads
|