volute 0.52.0 → 0.53.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.
Files changed (105) hide show
  1. package/dist/{accept-5NK5XJB5.js → accept-I4GVGWA3.js} +6 -3
  2. package/dist/{chat-VAZ25KVT.js → chat-WK2BLM7B.js} +9 -9
  3. package/dist/{chunk-724DVYHU.js → chunk-23UJGVYP.js} +9 -9
  4. package/dist/{chunk-K2F237KS.js → chunk-5DBGQBQR.js} +138 -13
  5. package/dist/chunk-5RBEEAKW.js +58 -0
  6. package/dist/{chunk-XRWUQPCA.js → chunk-7ARONCZW.js} +24 -2
  7. package/dist/{chunk-FXWBFDQR.js → chunk-AP2KQMMW.js} +48 -9
  8. package/dist/{chunk-DMK5ASKV.js → chunk-F6D766VQ.js} +6 -2
  9. package/dist/{chunk-ZEZQNP2G.js → chunk-HASADR3E.js} +46 -9
  10. package/dist/{chunk-AXFLY5GU.js → chunk-IQ7VNWH6.js} +16 -1
  11. package/dist/{chunk-G7A5LEVI.js → chunk-LN7XJ56R.js} +6 -6
  12. package/dist/{chunk-CW7BQKF6.js → chunk-P2TBUKLW.js} +3 -3
  13. package/dist/{chunk-SW2U6HRB.js → chunk-PIZDPY4G.js} +20 -3
  14. package/dist/{chunk-JHKBALS2.js → chunk-RMADJFA7.js} +1 -1
  15. package/dist/{chunk-RU74YG46.js → chunk-RQRO6PC7.js} +40 -6
  16. package/dist/{chunk-RPPTGPYF.js → chunk-TAWRJ24T.js} +1 -1
  17. package/dist/{chunk-ITK6HV47.js → chunk-UO4MZQNO.js} +1 -1
  18. package/dist/chunk-UTKUO2KY.js +102 -0
  19. package/dist/{chunk-YVR6EHWL.js → chunk-VDZ4I4ZP.js} +160 -18
  20. package/dist/cli.js +16 -16
  21. package/dist/{clock-ZT5YT6HA.js → clock-SH4NQC2F.js} +3 -3
  22. package/dist/{cloud-sync-H7EWZASD.js → cloud-sync-MJVJ33LD.js} +10 -9
  23. package/dist/{daemon-restart-4FWUA5JF.js → daemon-restart-BIGU4OKS.js} +1 -1
  24. package/dist/daemon.js +261 -89
  25. package/dist/{delivery-manager-VYXVKUMP.js → delivery-manager-FDHCZ7PU.js} +7 -5
  26. package/dist/delivery-notices-65TB3CBX.js +18 -0
  27. package/dist/{echo-text-PEEV7FQU.js → echo-text-KU6G4Z7V.js} +11 -10
  28. package/dist/{extensions-N6L5NYTK.js → extensions-VACUKFA5.js} +10 -9
  29. package/dist/{files-BRY5RRIM.js → files-CHPNEQXN.js} +5 -4
  30. package/dist/{message-delivery-7URC52ME.js → message-delivery-TUXM3AAE.js} +14 -11
  31. package/dist/{mind-NEXGT3KE.js → mind-IX5AWUST.js} +11 -11
  32. package/dist/{mind-contacts-QYU4TPEA.js → mind-contacts-BKUOUJPV.js} +5 -5
  33. package/dist/{mind-history-OGNR4L7W.js → mind-history-RVF6KJ7K.js} +83 -11
  34. package/dist/{mind-list-SYRA7CH5.js → mind-list-KNU34SUD.js} +2 -2
  35. package/dist/{mind-service-E26ZQXDS.js → mind-service-WHFBUKZE.js} +10 -9
  36. package/dist/{mind-sleep-LZAFBDZD.js → mind-sleep-D3DEYAWG.js} +5 -5
  37. package/dist/{mind-status-Z2LQFA6F.js → mind-status-BPTLQ5Z6.js} +15 -3
  38. package/dist/{package-2W2XKSIP.js → package-BN5KMU54.js} +1 -1
  39. package/dist/{prompts-NBO3HRK3.js → prompts-HNKGCAEY.js} +1 -1
  40. package/dist/{reject-TWB4QJHG.js → reject-K2A4UK2Y.js} +9 -5
  41. package/dist/{scheduler-JTTWZDYU.js → scheduler-5X5UIQOQ.js} +7 -5
  42. package/dist/{seed-64XEHRUP.js → seed-LHZ33UB4.js} +1 -1
  43. package/dist/{seed-cmd-UEL2QB3Q.js → seed-cmd-U4RVJ3UA.js} +2 -2
  44. package/dist/{seed-create-4JRQDPGA.js → seed-create-OQU4KNCB.js} +1 -1
  45. package/dist/{seed-readiness-DYOVCYHN.js → seed-readiness-WJYYRRCK.js} +2 -2
  46. package/dist/{seed-sprout-NIDIOJXT.js → seed-sprout-SFUYH2RG.js} +7 -7
  47. package/dist/{send-2YKOZJJ5.js → send-FWZAMDBN.js} +35 -20
  48. package/dist/{setup-4IX6PCD3.js → setup-RVSGCIF3.js} +1 -1
  49. package/dist/skills/memory/SKILL.md +47 -43
  50. package/dist/{skills-MPUALV3S.js → skills-QRPU6BWY.js} +1 -1
  51. package/dist/{sleep-manager-OFP2GFXF.js → sleep-manager-NWUCRBZB.js} +10 -9
  52. package/dist/{spirit-4ECYIVGE.js → spirit-I5ECLGRI.js} +16 -2
  53. package/dist/{spirit-availability-Y54Y3675.js → spirit-availability-NIUUYKU2.js} +11 -10
  54. package/dist/{sprout-GJMZFRGZ.js → sprout-A2PMEF7Z.js} +1 -1
  55. package/dist/{system-events-V43HDA3T.js → system-events-YTOU66QI.js} +5 -1
  56. package/dist/{systems-VDRUZXNF.js → systems-2DIJY4RF.js} +6 -6
  57. package/dist/{turn-tracker-C5PVIC3B.js → turn-tracker-NNHS6MAR.js} +4 -2
  58. package/dist/{up-H6LJZDRK.js → up-UGBHH743.js} +1 -1
  59. package/dist/{variant-cleanup-STC6B5HR.js → variant-cleanup-CZDLIY3F.js} +7 -5
  60. package/dist/{version-notify-LBVHH5YV.js → version-notify-SJVAQLZI.js} +4 -4
  61. package/dist/web-assets/assets/index-BHSU9r-4.css +1 -0
  62. package/dist/web-assets/assets/{index-B_eYTa3R.js → index-b7G7ZsVk.js} +13 -13
  63. package/dist/web-assets/index.html +2 -2
  64. package/package.json +1 -1
  65. package/templates/_base/.init/.config/prompts.json +1 -1
  66. package/templates/_base/src/lib/codex-session-seed.ts +463 -0
  67. package/templates/_base/src/lib/daemon-client.ts +35 -0
  68. package/templates/_base/src/lib/pi-session-seed.ts +434 -0
  69. package/templates/_base/src/lib/seed-note.ts +78 -0
  70. package/templates/_base/src/lib/session-seed.ts +375 -0
  71. package/templates/_base/src/lib/startup.ts +108 -4
  72. package/templates/claude/.init/CLAUDE.md +3 -3
  73. package/templates/claude/src/agent.ts +267 -89
  74. package/templates/claude/src/lib/hooks/pre-compact.ts +30 -5
  75. package/templates/claude/src/lib/stream-consumer.ts +13 -0
  76. package/templates/claude/src/server.ts +2 -1
  77. package/templates/codex/.init/AGENTS.md +3 -3
  78. package/templates/codex/src/agent.ts +256 -39
  79. package/templates/codex/src/server.ts +2 -1
  80. package/templates/pi/.init/MINDS.md +3 -3
  81. package/templates/pi/src/agent.ts +269 -43
  82. package/templates/pi/src/lib/event-handler.ts +11 -0
  83. package/templates/pi/src/server.ts +3 -1
  84. package/dist/web-assets/assets/index-DhZrzddW.css +0 -1
  85. package/dist/{backup-YVGV2ZNM.js → backup-WWXVIMYQ.js} +5 -5
  86. package/dist/{bridge-YK7NTRU5.js → bridge-KU2IKSH3.js} +3 -3
  87. package/dist/{channels-FSAHOQWI.js → channels-LW5ZLMSQ.js} +3 -3
  88. package/dist/{chunk-VPOMJMV6.js → chunk-BDHKCLWK.js} +0 -0
  89. package/dist/{chunk-EEOMA4DX.js → chunk-HTB7KDRU.js} +3 -3
  90. package/dist/{create-M727VUDF.js → create-C3XZACTV.js} +3 -3
  91. package/dist/{env-IBW2QI6K.js → env-BJGM6FBA.js} +5 -5
  92. package/dist/{extension-MRYJWSMV.js → extension-B2W52WZY.js} +3 -3
  93. package/dist/{list-UQGIW7OF.js → list-R2GDWOEE.js} +3 -3
  94. package/dist/{login-RJJTCVR3.js → login-EZ4RRDQX.js} +3 -3
  95. package/dist/{login-SB5OENMV.js → login-JDOAK465.js} +4 -4
  96. package/dist/{logout-YFZAJRPY.js → logout-K6ZGAJY5.js} +3 -3
  97. package/dist/{logout-BYV433X6.js → logout-MWSIUOQU.js} +3 -3
  98. package/dist/{mind-wake-LDGPRA42.js → mind-wake-DCDFFQKX.js} +3 -3
  99. package/dist/{read-RJ5NAW5J.js → read-J5RM674N.js} +3 -3
  100. package/dist/{register-OX4HRSGC.js → register-53LBGSDC.js} +3 -3
  101. package/dist/{restart-AGEGNSYQ.js → restart-R2WFNF5K.js} +4 -4
  102. package/dist/{skill-B5OJEQUA.js → skill-DXLLSUHB.js} +5 -5
  103. package/dist/{start-MUMNFR52.js → start-XDOUAWN3.js} +4 -4
  104. package/dist/{status-MWLE3RVC.js → status-EYG4A3OK.js} +3 -3
  105. package/dist/{stop-EKERNYTX.js → stop-O62RTEMD.js} +4 -4
@@ -78,20 +78,20 @@ ${e??``}`),[()=>x(t.event.content)]),K(e,n)};J(o,e=>{H(i)&&t.event.content&&e(s)
78
78
  `):e.message??``}function Vb(e){let t=e.split(`
79
79
  `).map(e=>e.trim()).filter(Boolean);return t.length===0?{}:t.length===1?{message:t[0]}:{messages:t}}var Hb=W(`<span class="summary-item svelte-lb23vu"><span><!></span> <span class="summary-label svelte-lb23vu"> </span> <span class="summary-detail svelte-lb23vu"> </span></span>`),Ub=W(`<span class="summary-sep svelte-lb23vu">&middot;</span>`),Wb=W(`<!> <span class="summary-item svelte-lb23vu"><span><!></span> <span class="summary-label svelte-lb23vu"> </span> <span class="summary-detail svelte-lb23vu"> </span></span>`,1),Gb=W(`<span class="summary-item svelte-lb23vu"><!> <span class="summary-label svelte-lb23vu">Schedule</span></span>`),Kb=W(`<span><!></span>`),qb=W(`<span class="color-dot svelte-lb23vu"></span>`),Jb=W(`<div><span class="row-name svelte-lb23vu"><!> <span class="clock-label svelte-lb23vu"> </span></span> <span class="row-times svelte-lb23vu"> </span> <span class="row-next svelte-lb23vu"> </span></div>`),Yb=W(`<div class="clock-details svelte-lb23vu"></div>`),Xb=W(`<div class="mind-clock svelte-lb23vu"><button class="clock-summary svelte-lb23vu"><div class="summary-items svelte-lb23vu"><!> <!> <!></div> <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M5 6l3 3 3-3"></path></svg></button> <!></div>`);function Zb(e,t){M(t,!0);let n=[`var(--blue)`,`var(--yellow)`,`var(--red)`,`var(--green)`,`var(--purple)`],r={heartbeat:`var(--red)`,pulse:`var(--red)`,dream:`var(--purple)`,dreaming:`var(--purple)`,sleep:`var(--blue)`,wake:`var(--blue)`},i=F(null),a=F(!1);Tn(()=>{tf(t.name).then(e=>{I(i,e,!0)}).catch(e=>{console.warn(`Failed to load clock status:`,e),I(i,null)})});function o(e){let t=e.toLowerCase();return t===`heartbeat`||t===`pulse`?`heartbeat`:t===`dream`||t===`dreaming`?`dream`:t===`sleep`||t===`wake`?`sleep`:`clock`}function s(e){return e.toLowerCase()in r}let c=new Map;function l(e){let t=e.toLowerCase();if(r[t])return r[t];if(!c.has(t)){let e=0;for(let n=0;n<t.length;n++)e=(e<<5)-e+t.charCodeAt(n)|0;c.set(t,n[Math.abs(e)%n.length])}return c.get(t)}function u(e){let t=[];return e.script?t.push(`Script: ${e.script}`):e.messages?.length?t.push(`Messages (rotating):\n${e.messages.join(`
80
80
  `)}`):e.message&&t.push(`Message: ${e.message}`),e.channel&&t.push(`Channel: ${e.channel}`),e.whileSleeping&&t.push(`While sleeping: ${e.whileSleeping}`),t.join(`
81
- `)}let d=P(()=>{let e=H(i)?.timezone;if(!(!e||e===Intl.DateTimeFormat().resolvedOptions().timeZone))try{return new Intl.DateTimeFormat(`en-US`,{timeZone:e,timeZoneName:`short`}).formatToParts(new Date).find(e=>e.type===`timeZoneName`)?.value}catch{return}});function f(e){try{return new Date(e).toLocaleTimeString(void 0,{hour:`numeric`,minute:`2-digit`})}catch{return e}}let p=P(()=>{if(!H(i))return[];let e=[],t=new Map;for(let e of H(i).upcoming)t.has(e.id)||t.set(e.id,e.at);if(H(i).sleep?.sleeping){let t=H(i).sleep.scheduledWakeAt??H(i).sleep.voluntaryWakeAt;e.push({id:`sleep`,icon:`sleep`,color:l(`sleep`),times:`sleeping now`,next:t?`wake ${Mb(t)}`:``,disabled:!1,tooltip:``})}else if(H(i).sleepConfig?.enabled&&H(i).sleepConfig.schedule){let n=H(i).sleepConfig.schedule,r=t.get(`sleep`);e.push({id:`sleep`,icon:`sleep`,color:l(`sleep`),times:`${Nb(n.sleep,H(d))} \u2192 ${Nb(n.wake,H(d))}`,next:r?Mb(r):``,disabled:!1,tooltip:``})}for(let n of H(i).schedules){let r=``;n.cron?r=Nb(n.cron,H(d)):n.fireAt&&(r=f(n.fireAt));let i=t.get(n.id);e.push({id:n.id,icon:o(n.id),color:l(n.id),times:r,next:i?Mb(i):``,disabled:!n.enabled,tooltip:u(n)})}return e}),m=P(()=>{if(!H(i))return null;if(H(i).sleep?.sleeping){if(H(i).sleep.wokenByTrigger)return{icon:`sleep`,label:`Briefly awake`,color:l(`wake`),detail:`trigger · sleeps when idle`};let e=H(i).sleep.scheduledWakeAt??H(i).sleep.voluntaryWakeAt;return{icon:`sleep`,label:`Sleeping`,color:l(`sleep`),detail:e?`wake ${Mb(e)}`:`now`}}if(H(i).previous?.length>0){let e=H(i).previous[0];return{icon:o(e.id),label:e.id,color:l(e.id),detail:Mb(e.at)}}return null}),h=P(()=>{if(!H(i))return null;let e=H(i).sleep?.sleeping,t=H(i).upcoming.find(t=>!(e&&t.id===`wake`));return t?{icon:o(t.id),label:t.id,color:l(t.id),detail:Mb(t.at)}:null}),g=P(()=>H(i)&&(H(i).schedules.length>0||H(i).sleep?.sleeping||H(i).sleepConfig?.enabled));var _=Kr(),v=z(_),y=e=>{var t=Xb(),n=R(t),r=R(n),i=R(r),o=e=>{var t=Hb(),n=R(t);let r;qa(R(n),{get kind(){return H(m).icon},class:`summary-icon`}),A(n);var i=B(n,2);let a;var o=R(i,!0);A(i);var s=B(i,2),c=R(s,!0);A(s),A(t),V(()=>{r=Z(n,``,r,{color:H(m).color}),a=Z(i,``,a,{color:H(m).color}),q(o,H(m).label),q(c,H(m).detail)}),K(e,t)};J(i,e=>{H(m)&&e(o)});var c=B(i,2),l=e=>{var t=Wb(),n=z(t),r=e=>{K(e,Ub())};J(n,e=>{H(m)&&e(r)});var i=B(n,2),a=R(i);let o;qa(R(a),{get kind(){return H(h).icon},class:`summary-icon`}),A(a);var s=B(a,2);let c;var l=R(s,!0);A(s);var u=B(s,2),d=R(u,!0);A(u),A(i),V(()=>{o=Z(a,``,o,{color:H(h).color}),c=Z(s,``,c,{color:H(h).color}),q(l,H(h).label),q(d,H(h).detail)}),K(e,t)};J(c,e=>{H(h)&&e(l)});var u=B(c,2),d=e=>{var t=Gb();qa(R(t),{kind:`clock`,class:`summary-icon`}),j(2),A(t),K(e,t)};J(u,e=>{!H(m)&&!H(h)&&e(d)}),A(r);var f=B(r,2);let g;A(n);var _=B(n,2),v=e=>{var t=Yb();Y(t,21,()=>H(p),e=>e.id,(e,t)=>{var n=Jb();let r;var i=R(n),a=R(i),o=e=>{var n=Kb();let r;qa(R(n),{get kind(){return H(t).icon},class:`clock-icon`}),A(n),V(()=>r=Z(n,``,r,{color:H(t).color})),K(e,n)},c=P(()=>s(H(t).id)),l=e=>{var n=qb();let r;V(()=>r=Z(n,``,r,{background:H(t).color})),K(e,n)};J(a,e=>{H(c)?e(o):e(l,-1)});var u=B(a,2);let d;var f=R(u,!0);A(u),A(i);var p=B(i,2),m=R(p,!0);A(p);var h=B(p,2),g=R(h,!0);A(h),A(n),V(()=>{r=X(n,1,`clock-row svelte-lb23vu`,null,r,{disabled:H(t).disabled}),Xi(n,`title`,H(t).tooltip),d=Z(u,``,d,{color:H(t).color}),q(f,H(t).id),q(m,H(t).times),q(g,H(t).next)}),K(e,n)}),A(t),K(e,t)};J(_,e=>{H(a)&&e(v)}),A(t),V(()=>g=X(f,0,`expand-chevron svelte-lb23vu`,null,g,{expanded:H(a)})),U(`click`,n,()=>I(a,!H(a))),K(e,t)};J(v,e=>{H(i)&&H(g)&&e(y)}),K(e,_),N()}Lr([`click`]);var Qb=W(`<button class="floating-btn svelte-chl8f0" aria-label="Chat"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-chl8f0"><path d="M2 3h12v8H5l-3 3V3z"></path></svg></button>`),$b=W(`<button class="floating-btn svelte-chl8f0" aria-label="Expand"><svg viewBox="0 0 24 24" fill="currentColor" class="svelte-chl8f0"><path d="M6 7.414V9a1 1 0 1 1-2 0V5a1 1 0 0 1 1-1h4a1 1 0 1 1 0 2H7.414l2.293 2.293a1 1 0 0 1-1.414 1.414L6 7.414zM15 6a1 1 0 1 1 0-2h4a1 1 0 0 1 1 1v4a1 1 0 1 1-2 0V7.414l-2.293 2.293a1 1 0 0 1-1.414-1.414L16.586 6H15zM5 14a1 1 0 0 1 1 1v1.586l2.293-2.293a1 1 0 0 1 1.414 1.414L7.414 18H9a1 1 0 1 1 0 2H5a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1zm9.293 1.707a1 1 0 0 1 1.414-1.414L18 16.586V15a1 1 0 1 1 2 0v4a1 1 0 0 1-1 1h-4a1 1 0 1 1 0-2h1.586l-2.293-2.293z"></path></svg></button>`),ex=W(`<div class="floating-btns svelte-chl8f0"><!> <!></div>`),tx=W(`<img alt="" class="profile-avatar svelte-chl8f0" loading="lazy" decoding="async"/>`),nx=W(`<p class="profile-description svelte-chl8f0"> </p>`),rx=W(`<div class="mind-panel svelte-chl8f0"><!> <div class="panel-body svelte-chl8f0"><div class="profile-section svelte-chl8f0"><!> <span class="profile-name svelte-chl8f0"><span></span> </span> <!></div> <!> <div class="history-section svelte-chl8f0"><!></div></div></div>`);function ix(e,t){M(t,!0);let n=P(()=>Zf.minds.find(e=>e.name===t.mind.name)??t.mind),r=P(()=>Qf.has(H(n).name));var i=rx(),a=R(i),o=e=>{var n=ex(),r=R(n),i=e=>{var n=Qb();Si(n,(e,t)=>Il?.(e,t),()=>({text:`Chat`,position:`right`})),U(`click`,n,function(...e){t.onChat?.apply(this,e)}),K(e,n)};J(r,e=>{t.onChat&&e(i)});var a=B(r,2),o=e=>{var n=$b();Si(n,(e,t)=>Il?.(e,t),()=>({text:`Expand`,position:`right`})),U(`click`,n,function(...e){t.onExpand?.apply(this,e)}),K(e,n)};J(a,e=>{t.onExpand&&e(o)}),A(n),K(e,n)};J(a,e=>{(t.onChat||t.onExpand)&&e(o)});var s=B(a,2),c=R(s),l=R(c),u=e=>{var t=tx();V(e=>Xi(t,`src`,e),[()=>`/api/minds/${encodeURIComponent(H(n).name)}/avatar`]),K(e,t)};J(l,e=>{H(n).avatar&&e(u)});var d=B(l,2),f=R(d);let p,m;var h=B(f);A(d);var g=B(d,2),_=e=>{var t=nx(),r=R(t,!0);A(t),V(()=>q(r,H(n).description)),K(e,t)};J(g,e=>{H(n).description&&e(_)}),A(c);var v=B(c,2);Zb(v,{get name(){return H(n).name}});var y=B(v,2);xy(R(y),{get name(){return H(n).name},get mindStatus(){return H(n).status}}),A(y),A(s),A(i),V(e=>{p=X(f,1,`status-dot svelte-chl8f0`,null,p,{iridescent:H(r)}),m=Z(f,``,m,e),q(h,` ${H(n).displayName??H(n).name??``}`)},[()=>({background:H(r)?void 0:Ll(H(n))})]),K(e,i),N()}Lr([`click`]);var ax=W(`<span class="template-badge svelte-ei9umb"> </span>`),ox=W(`<!> <button class="setting-hint-btn svelte-ei9umb">back</button>`,1),sx=W(`<option> </option>`),cx=W(`<option>--</option> <!> <option>other...</option>`,1),lx=W(`<div class="slider-control svelte-ei9umb"><input type="range" class="thinking-slider svelte-ei9umb" min="0" max="5" step="1"/> <span> </span></div>`),ux=W(`<!> <span class="setting-hint svelte-ei9umb">per</span> <!> <span class="setting-hint svelte-ei9umb">min</span>`,1),dx=W(`<!> <span class="setting-hint svelte-ei9umb">tokens</span>`,1),fx=W(`<!> <!>`,1),px=W(`<!> <!> <!> <!> <!> <!>`,1);function mx(e,t){M(t,!0);let n=pa(t,`hideBudget`,3,!1),r=F(null),i=F(L([])),a=F(``),o=F(0),s=F(``),c=F(``),l=F(``),u=F(!1),d=F(``),f=F(null),p=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`],m={claude:[`anthropic`],codex:[`openai-codex`],pi:[]},h=P(()=>t.template?m[t.template]??[]:[]),g=P(()=>H(i).filter(e=>e.enabled).filter(e=>H(h).length===0||H(h).includes(e.provider)));function _(e){return e?H(g).some(t=>t.id===e)?e:H(g).find(t=>t.id.startsWith(e)||e.startsWith(t.id))?.id??e:``}Tn(()=>{if(H(g).length>0&&H(a)){let e=_(H(a));e!==H(a)&&I(a,e,!0)}});let v=P(()=>H(a)!==``&&!H(g).some(e=>e.id===H(a))),y=P(()=>p[H(o)]);function b(e){I(a,e.config.model??``,!0);let t=e.config.thinkingLevel??`off`;I(o,Math.max(0,p.indexOf(t)),!0),I(s,e.config.tokenBudget==null?``:String(e.config.tokenBudget),!0),I(c,e.config.tokenBudgetPeriodMinutes==null?``:String(e.config.tokenBudgetPeriodMinutes),!0),I(l,e.config.compaction?.maxContextTokens==null?``:String(e.config.compaction.maxContextTokens),!0),I(u,e.config.unescapeNewlines??!1,!0)}function x(e){if(!e.trim())return null;let t=parseInt(e,10);return Number.isNaN(t)?null:t}async function S(e,n){I(f,e,!0),I(d,``);try{await n();let e=await Gu(t.name);I(r,e,!0),b(e)}catch(e){I(d,e instanceof Error?e.message:`Save failed`,!0)}I(f,null)}function C(e){I(a,e,!0),e&&S(`model`,()=>Ku(t.name,{model:e}))}function w(){S(`thinking`,()=>Ku(t.name,{thinkingLevel:p[H(o)]}))}function T(){S(`budget`,()=>Ku(t.name,{tokenBudget:x(H(s))}))}function E(){S(`period`,()=>Ku(t.name,{tokenBudgetPeriodMinutes:x(H(c))}))}function ee(){S(`compaction`,()=>Ku(t.name,{compaction:{maxContextTokens:x(H(l))}}))}function te(){I(u,!H(u)),S(`unescapeNewlines`,()=>Ku(t.name,{unescapeNewlines:H(u)}))}function ne(e){let t=e.target.value;t===`__other__`?I(a,``):C(t)}function D(e){I(o,parseInt(e.target.value,10),!0),w()}ma(async()=>{try{let[e,n]=await Promise.all([Gu(t.name),Od()]);I(r,e,!0),I(i,n,!0),b(e)}catch(e){I(d,e instanceof Error?e.message:`Failed to load config`,!0)}});var O=Kr(),re=z(O),ie=e=>{var r=px(),i=z(r),f=e=>{co(e,{label:`Template`,children:(e,n)=>{var r=ax(),i=R(r,!0);A(r),V(()=>q(i,t.template)),K(e,r)},$$slots:{default:!0}})};J(i,e=>{t.template&&e(f)});var p=B(i,2);co(p,{label:`Model`,children:(e,t)=>{var n=Kr(),r=z(n),i=e=>{var t=ox(),n=z(t);Xa(n,{type:`text`,onblur:()=>C(H(a)),placeholder:`Model ID`,get value(){return H(a)},set value(e){I(a,e,!0)}}),U(`click`,B(n,2),()=>{I(a,H(g)[0]?.id??``,!0),H(a)&&C(H(a))}),K(e,t)},o=e=>{oo(e,{get value(){return H(a)},onchange:ne,children:(e,t)=>{var n=cx(),r=z(n);r.value=r.__value=``;var i=B(r,2);Y(i,17,()=>H(g),e=>e.id,(e,t)=>{var n=sx(),r=R(n,!0);A(n);var i={};V(()=>{q(r,H(t).name),i!==(i=H(t).id)&&(n.value=(n.__value=H(t).id)??``)}),K(e,n)});var a=B(i,2);a.value=a.__value=`__other__`,K(e,n)},$$slots:{default:!0}})};J(r,e=>{H(v)?e(i):e(o,-1)}),K(e,n)},$$slots:{default:!0}});var m=B(p,2);co(m,{label:`Thinking`,children:(e,t)=>{var n=lx(),r=R(n);Ki(r);var i=B(r,2);let a;var s=R(i,!0);A(i),A(n),V(()=>{qi(r,H(o)),a=X(i,1,`slider-label svelte-ei9umb`,null,a,{off:H(o)===0}),q(s,H(y))}),U(`change`,r,D),K(e,n)},$$slots:{default:!0}});var h=B(m,2),_=e=>{var t=fx(),n=z(t);co(n,{label:`Budget`,children:(e,t)=>{var n=ux(),r=z(n);Xa(r,{type:`number`,width:`80px`,onblur:T,placeholder:`tokens`,get value(){return H(s)},set value(e){I(s,e,!0)}}),Xa(B(r,4),{type:`number`,width:`80px`,onblur:E,placeholder:`min`,get value(){return H(c)},set value(e){I(c,e,!0)}}),j(2),K(e,n)},$$slots:{default:!0}}),co(B(n,2),{label:`Context`,children:(e,t)=>{var n=dx();Xa(z(n),{type:`number`,width:`80px`,onblur:ee,placeholder:`150000`,get value(){return H(l)},set value(e){I(l,e,!0)}}),j(2),K(e,n)},$$slots:{default:!0}}),K(e,t)};J(h,e=>{n()||e(_)});var b=B(h,2);co(b,{label:`Fix newlines`,children:(e,t)=>{Co(e,{get checked(){return H(u)},onchange:te,label:`Unescape \\\\n in messages`})},$$slots:{default:!0}}),Ca(B(b,2),{get message(){return H(d)}}),K(e,r)};J(re,e=>{H(r)&&e(ie)}),K(e,O),N()}Lr([`click`,`change`]);var hx=W(`<div class="env-add-row svelte-1hrpqbw"><!> <!> <!> <!></div>`),gx=W(`<span class="env-key svelte-1hrpqbw"> </span> <!> <!> <!>`,1),_x=W(`<span class="env-source svelte-1hrpqbw">shared</span>`),vx=W(`<span class="env-key svelte-1hrpqbw"> <!></span> <span><!></span> <!> <!> <!>`,1),yx=W(`<div class="env-row svelte-1hrpqbw"><!></div>`),bx=W(`<div class="env-list svelte-1hrpqbw"></div>`),xx=W(`<!> <!> <!>`,1);function Sx(e,t){M(t,!0);let n=F(null),r=F(``),i=F(null),a=new Gl,o=F(!1),s=F(``),c=F(``),l=F(null),u=F(``),d=P(()=>{if(!H(n))return[];let e=[];for(let[t,r]of Object.entries(H(n).shared))e.push({key:t,value:r,source:`shared`});for(let[t,r]of Object.entries(H(n).mind)){let n=e.findIndex(e=>e.key===t);n>=0?e[n]={key:t,value:r,source:`mind`}:e.push({key:t,value:r,source:`mind`})}return e.sort((e,t)=>e.key.localeCompare(t.key))});async function f(){try{I(n,await qu(t.name),!0),I(r,``)}catch(e){I(r,e instanceof Error?e.message:`Failed to load environment`,!0)}}ma(()=>{f()});function p(e){a.has(e)?a.delete(e):a.add(e)}function m(e,t){I(l,e,!0),I(u,t,!0)}async function h(){if(H(l)){I(i,`env:${H(l)}`),I(r,``);try{await Ju(t.name,H(l),H(u)),I(n,await qu(t.name),!0),I(l,null),I(u,``)}catch(e){I(r,e instanceof Error?e.message:`Failed to save`,!0)}I(i,null)}}async function g(e,a){I(i,`env:${e}`),I(r,``);try{a===`shared`?await Xu(e):await Yu(t.name,e),I(n,await qu(t.name),!0)}catch(e){I(r,e instanceof Error?e.message:`Failed to delete`,!0)}I(i,null)}async function _(){if(H(s).trim()){I(i,`env:add`),I(r,``);try{await Ju(t.name,H(s).trim(),H(c)),I(n,await qu(t.name),!0),I(s,``),I(c,``),I(o,!1)}catch(e){I(r,e instanceof Error?e.message:`Failed to add`,!0)}I(i,null)}}function v(e,t){e.key===`Enter`&&t()}uo(e,{title:`Environment Variables`,action:e=>{_a(e,{variant:`primary`,onclick:()=>I(o,!0),children:(e,t)=>{j(),K(e,G(`Add`))},$$slots:{default:!0}})},children:(e,t)=>{var n=xx(),f=z(n);Ca(f,{get message(){return H(r)}});var y=B(f,2),b=e=>{var t=hx(),n=R(t);Xa(n,{variant:`mono`,type:`text`,width:`120px`,placeholder:`KEY`,onkeydown:e=>v(e,_),get value(){return H(s)},set value(e){I(s,e,!0)}});var r=B(n,2);Xa(r,{variant:`mono`,type:`text`,style:`flex:1`,placeholder:`value`,onkeydown:e=>v(e,_),get value(){return H(c)},set value(e){I(c,e,!0)}});var a=B(r,2);{let e=P(()=>H(i)!==null);_a(a,{variant:`primary`,onclick:_,get disabled(){return H(e)},children:(e,t)=>{j();var n=G();V(()=>q(n,H(i)===`env:add`?`...`:`Add`)),K(e,n)},$$slots:{default:!0}})}_a(B(a,2),{variant:`secondary`,onclick:()=>I(o,!1),children:(e,t)=>{j(),K(e,G(`Cancel`))},$$slots:{default:!0}}),A(t),K(e,t)};J(y,e=>{H(o)&&e(b)});var x=B(y,2),S=e=>{xa(e,{message:`No environment variables set.`})},C=e=>{var t=bx();Y(t,21,()=>H(d),e=>e.key,(e,t)=>{var n=yx(),r=R(n),o=e=>{var n=gx(),r=z(n),a=R(r,!0);A(r);var o=B(r,2);Xa(o,{variant:`mono`,type:`text`,style:`flex:1`,onkeydown:e=>v(e,h),get value(){return H(u)},set value(e){I(u,e,!0)}});var s=B(o,2);{let e=P(()=>H(i)!==null);_a(s,{variant:`primary`,onclick:h,get disabled(){return H(e)},children:(e,n)=>{j();var r=G();V(()=>q(r,H(i)===`env:${H(t).key}`?`...`:`Save`)),K(e,r)},$$slots:{default:!0}})}_a(B(s,2),{variant:`secondary`,onclick:()=>I(l,null),children:(e,t)=>{j(),K(e,G(`Cancel`))},$$slots:{default:!0}}),V(()=>q(a,H(t).key)),K(e,n)},s=e=>{var n=vx(),r=z(n),o=R(r),s=B(o),c=e=>{K(e,_x())};J(s,e=>{H(t).source===`shared`&&e(c)}),A(r);var l=B(r,2);let u;var d=R(l),f=e=>{var n=G();V(()=>q(n,H(t).value)),K(e,n)},h=P(()=>a.has(H(t).key)),_=e=>{K(e,G(`••••••••`))};J(d,e=>{H(h)?e(f):e(_,-1)}),A(l);var v=B(l,2);_a(v,{variant:`icon`,onclick:()=>p(H(t).key),title:`Toggle visibility`,children:(e,n)=>{j();var r=G();V(e=>q(r,e),[()=>a.has(H(t).key)?`Hide`:`Show`]),K(e,r)},$$slots:{default:!0}});var y=B(v,2),b=e=>{_a(e,{variant:`icon`,onclick:()=>m(H(t).key,H(t).value),title:`Edit`,children:(e,t)=>{j(),K(e,G(`Edit`))},$$slots:{default:!0}})};J(y,e=>{H(t).source===`mind`&&e(b)});var x=B(y,2);{let e=P(()=>H(i)!==null);_a(x,{variant:`icon`,onclick:()=>g(H(t).key,H(t).source),get disabled(){return H(e)},title:`Delete`,children:(e,n)=>{j();var r=G();V(()=>q(r,H(i)===`env:${H(t).key}`?`...`:`Del`)),K(e,r)},$$slots:{default:!0}})}V(e=>{q(o,`${H(t).key??``} `),u=X(l,1,`env-value svelte-1hrpqbw`,null,u,e)},[()=>({masked:!a.has(H(t).key)})]),K(e,n)};J(r,e=>{H(l)===H(t).key?e(o):e(s,-1)}),A(n),K(e,n)}),A(t),K(e,t)};J(x,e=>{H(d).length===0?e(S):e(C,-1)}),K(e,n)},$$slots:{action:!0,default:!0}}),N()}function Cx(e,t){Sx(e,{get name(){return t.name}})}function wx(){let e=F(null),t=null;function n(n){t&&clearTimeout(t),I(e,n,!0),t=setTimeout(()=>{I(e,null),t=null},1500)}return{get savedField(){return H(e)},showSaved:n}}var Tx=W(`<img alt="" class="avatar-img svelte-1ezxk1u" loading="lazy" decoding="async"/>`),Ex=W(`<div class="avatar-placeholder svelte-1ezxk1u">?</div>`),Dx=W(`<span class="saved-indicator svelte-1ezxk1u">Saved</span>`),Ox=W(`<div class="profile-fields svelte-1ezxk1u"><div class="field-row svelte-1ezxk1u"><span class="field-label svelte-1ezxk1u">Avatar</span> <button type="button" class="avatar-wrapper svelte-1ezxk1u"><!> <div class="avatar-overlay svelte-1ezxk1u">Change</div> <input type="file" accept="image/*" hidden="" class="svelte-1ezxk1u"/></button></div> <div class="field-row svelte-1ezxk1u"><label class="field-label svelte-1ezxk1u" for="profile-display-name">Display name</label> <div class="field-input-wrap svelte-1ezxk1u"><input id="profile-display-name" type="text" class="svelte-1ezxk1u"/> <!></div></div> <div class="field-row svelte-1ezxk1u"><label class="field-label svelte-1ezxk1u" for="profile-description">Description</label> <div class="field-input-wrap svelte-1ezxk1u"><textarea id="profile-description" rows="2" placeholder="A short description" class="svelte-1ezxk1u"></textarea> <!></div></div></div>`);function kx(e,t){M(t,!0);let n=F(``),r=F(``),i=F(null),{savedField:a,showSaved:o}=wx();Tn(()=>{I(n,t.mind.displayName??``,!0),I(r,t.mind.description??``,!0)});async function s(e){let n=e.target,r=n.files?.[0];r&&(await ff(t.mind.name,r),Zf.minds=await vu(),t.onUpdated(),n.value=``)}async function c(){let e=H(n).trim();e!==(t.mind.displayName??``)&&(await df(t.mind.name,{displayName:e}),o(`displayName`),t.onUpdated())}async function l(){let e=H(r).trim();e!==(t.mind.description??``)&&(await df(t.mind.name,{description:e}),o(`description`),t.onUpdated())}uo(e,{title:`Profile`,subtitle:`Avatar, display name, and description`,children:(e,o)=>{var u=Ox(),d=R(u),f=B(R(d),2),p=R(f),m=e=>{var n=Tx();V(e=>Xi(n,`src`,e),[()=>`/api/minds/${encodeURIComponent(t.mind.name)}/avatar`]),K(e,n)},h=e=>{K(e,Ex())};J(p,e=>{t.mind.avatar?e(m):e(h,-1)});var g=B(p,4);ua(g,e=>I(i,e),()=>H(i)),A(f),A(d);var _=B(d,2),v=B(R(_),2),y=R(v);Ki(y);var b=B(y,2),x=e=>{K(e,Dx())};J(b,e=>{a===`displayName`&&e(x)}),A(v),A(_);var S=B(_,2),C=B(R(S),2),w=R(C);hn(w);var T=B(w,2),E=e=>{K(e,Dx())};J(T,e=>{a===`description`&&e(E)}),A(C),A(S),A(u),V(()=>Xi(y,`placeholder`,t.mind.name)),U(`click`,f,()=>H(i)?.click()),U(`change`,g,s),Ir(`blur`,y,c),aa(y,()=>H(n),e=>I(n,e)),Ir(`blur`,w,l),aa(w,()=>H(r),e=>I(r,e)),K(e,u)},$$slots:{default:!0}}),N()}Lr([`click`,`change`]);var Ax=W(`<div class="cron-preview svelte-1u04gr6"> </div>`),jx=W(`<div class="sleep-summary svelte-1u04gr6"><span class="sleep-desc svelte-1u04gr6">Custom schedule</span> <!></div> <div class="cron-row svelte-1u04gr6"><span class="cron-label svelte-1u04gr6">Sleep at</span> <!></div> <!> <div class="cron-row svelte-1u04gr6"><span class="cron-label svelte-1u04gr6">Wake at</span> <!></div> <!>`,1),Mx=W(`<div class="sleep-summary svelte-1u04gr6"><span class="sleep-desc svelte-1u04gr6"> </span> <!></div> <!> <!>`,1),Nx=W(`<!> <div class="wake-triggers svelte-1u04gr6"><div class="subsection-header small svelte-1u04gr6">What wakes the mind early</div> <div class="trigger-row svelte-1u04gr6"><!></div> <div class="trigger-row svelte-1u04gr6"><!></div> <div class="trigger-row svelte-1u04gr6"><span class="trigger-text svelte-1u04gr6">Channels</span> <!></div> <div class="trigger-row svelte-1u04gr6"><span class="trigger-text svelte-1u04gr6">Senders</span> <!></div></div>`,1),Px=W(`<option>Every few hours</option> <option>Daily at a time</option> <option>Custom cron</option>`,1),Fx=W(`<div class="form-row svelte-1u04gr6"><span class="form-label svelte-1u04gr6"></span> <span class="form-hint svelte-1u04gr6">Every</span> <!> <span class="form-hint svelte-1u04gr6">hours</span></div>`),Ix=W(`<div class="form-row svelte-1u04gr6"><span class="form-label svelte-1u04gr6"></span> <span class="form-hint svelte-1u04gr6">At</span> <!></div>`),Lx=W(`<div class="form-row svelte-1u04gr6"><span class="form-label svelte-1u04gr6"></span> <!></div>`),Rx=W(`<option>Skip it</option> <option>Save for when awake</option> <option>Wake up for it</option>`,1),zx=W(`<div class="schedule-form svelte-1u04gr6"><div class="form-row svelte-1u04gr6"><span class="form-label svelte-1u04gr6">Name</span> <!></div> <div class="form-row svelte-1u04gr6"><span class="form-label svelte-1u04gr6">Frequency</span> <!></div> <!> <div class="form-row svelte-1u04gr6"><span class="form-label svelte-1u04gr6">Message</span> <textarea class="message-input svelte-1u04gr6" rows="2" placeholder="What to tell the mind — several lines rotate at random"></textarea></div> <div class="form-row svelte-1u04gr6"><span class="form-label svelte-1u04gr6">If sleeping</span> <!></div> <div class="form-actions svelte-1u04gr6"><!> <!></div></div>`),Bx=W(`<div class="schedule-card editing svelte-1u04gr6"><div class="form-row svelte-1u04gr6"><span class="form-label svelte-1u04gr6">Frequency</span> <!></div> <!> <div class="form-row svelte-1u04gr6"><span class="form-label svelte-1u04gr6">Message</span> <textarea class="message-input svelte-1u04gr6" rows="2" placeholder="What to tell the mind — several lines rotate at random"></textarea></div> <div class="form-row svelte-1u04gr6"><span class="form-label svelte-1u04gr6">If sleeping</span> <!></div> <div class="form-actions svelte-1u04gr6"><!> <!></div></div>`),Vx=W(`<div class="schedule-message svelte-1u04gr6"> </div>`),Hx=W(`<div><div class="schedule-top svelte-1u04gr6"><span class="schedule-name svelte-1u04gr6"> </span> <span class="schedule-freq svelte-1u04gr6"><!></span> <div class="schedule-actions svelte-1u04gr6"><!> <!> <!></div></div> <!></div>`),Ux=W(`<div class="schedule-list svelte-1u04gr6"></div>`),Wx=W(`<!> <div class="subsection svelte-1u04gr6"><div class="subsection-header svelte-1u04gr6"><span>Sleep</span> <!></div> <!></div> <div class="subsection svelte-1u04gr6"><div class="subsection-header svelte-1u04gr6"><span>Schedules</span> <!></div> <!> <!></div>`,1);function Gx(e,t){M(t,!0);let n=F(null),r=F(L([])),i=F(``),a=F(!0),o=F(0),s=F(0),c=F(8),l=F(0),u=F(!1),d=F(``),f=F(``),p=F(L(nf.mentions)),m=F(L(nf.dms)),h=F(``),g=F(``),_=F(!1),v=F(``),y=F(`daily`),b=F(4),x=F(12),S=F(0),C=F(``),w=F(``),T=F(`skip`),E=F(null),ee=F(`cron`),te=F(4),ne=F(12),D=F(0),O=F(``),re=F(``),ie=F(`skip`),ae=F(!0),k=F(null);function oe(e){I(n,e,!0),I(d,e.schedule?.sleep??``,!0),I(f,e.schedule?.wake??``,!0);let t=Ib(H(d)),r=Ib(H(f));t&&r?(I(o,t.hour,!0),I(s,t.minute,!0),I(c,r.hour,!0),I(l,r.minute,!0),I(u,!1)):(H(d)||H(f))&&I(u,!0),I(p,e.wakeTriggers?.mentions??nf.mentions,!0),I(m,e.wakeTriggers?.dms??nf.dms,!0),I(h,(e.wakeTriggers?.channels??[]).join(`, `),!0),I(g,(e.wakeTriggers?.senders??[]).join(`, `),!0)}async function se(){try{let[e,n]=await Promise.all([rf(t.name),of(t.name)]);oe(e),I(r,n,!0),I(i,``)}catch{I(i,`Failed to load configuration`)}I(a,!1)}ma(()=>{se()});async function ce(){if(!H(n))return;let e=!H(n).enabled;I(k,`sleep-toggle`);try{await af(t.name,{enabled:e}),I(n,{...H(n),enabled:e},!0),I(i,``)}catch(e){I(i,e instanceof Error?e.message:`Failed to update`,!0)}I(k,null)}async function le(){let e=H(u)?H(d):Lb(H(o),H(s)),r=H(u)?H(f):Lb(H(c),H(l));I(k,`sleep-cron`);try{await af(t.name,{schedule:{sleep:e,wake:r}}),H(n)&&I(n,{...H(n),schedule:{sleep:e,wake:r}},!0),I(d,e,!0),I(f,r,!0),I(i,``)}catch(e){I(i,e instanceof Error?e.message:`Failed to update`,!0)}I(k,null)}async function ue(){I(k,`wake-triggers`);try{let e=H(h).split(`,`).map(e=>e.trim()).filter(Boolean),r=H(g).split(`,`).map(e=>e.trim()).filter(Boolean);await af(t.name,{wakeTriggers:{mentions:H(p),dms:H(m),channels:e.length?e:void 0,senders:r.length?r:void 0}}),H(n)&&I(n,{...H(n),wakeTriggers:{mentions:H(p),dms:H(m),channels:e,senders:r}},!0),I(i,``)}catch(e){I(i,e instanceof Error?e.message:`Failed to update`,!0)}I(k,null)}async function de(e){I(k,`sched:${e.id}`);try{await cf(t.name,e.id,{enabled:!e.enabled}),I(r,H(r).map(t=>t.id===e.id?{...t,enabled:!t.enabled}:t),!0),I(i,``)}catch(e){I(i,e instanceof Error?e.message:`Failed to update`,!0)}I(k,null)}function fe(e){I(E,e.id,!0);let t=e.cron?Rb(e.cron):{type:`daily`};I(ee,t.type,!0),I(te,t.hours??4,!0),I(ne,t.hour??12,!0),I(D,t.minute??0,!0),I(O,e.cron??``,!0),I(re,Bb(e)||(e.script??``),!0),I(ie,e.whileSleeping??`skip`,!0),I(ae,e.enabled,!0)}async function pe(){if(!H(E))return;let e=zb(H(ee),{hours:H(te),hour:H(ne),minute:H(D),cron:H(O)});I(k,`sched:${H(E)}`);let n=Vb(H(re));try{await cf(t.name,H(E),{cron:e||void 0,...n,whileSleeping:H(ie),enabled:H(ae)}),I(r,H(r).map(t=>t.id===H(E)?{...t,cron:e,message:void 0,messages:void 0,...n,whileSleeping:H(ie),enabled:H(ae)}:t),!0),I(E,null),I(i,``)}catch(e){I(i,e instanceof Error?e.message:`Failed to save`,!0)}I(k,null)}async function me(){if(!H(v).trim())return;let e=zb(H(y),{hours:H(b),hour:H(x),minute:H(S),cron:H(C)});I(k,`sched:add`);try{await sf(t.name,{id:H(v).trim(),cron:e||void 0,...Vb(H(w)),whileSleeping:H(T),enabled:!0}),I(r,await of(t.name),!0),I(v,``),I(y,`daily`),I(b,4),I(x,12),I(S,0),I(C,``),I(w,``),I(T,`skip`),I(_,!1),I(i,``)}catch(e){I(i,e instanceof Error?e.message:`Failed to add`,!0)}I(k,null)}async function he(e){I(k,`sched:${e}`);try{await lf(t.name,e),I(r,H(r).filter(t=>t.id!==e),!0),I(i,``)}catch(e){I(i,e instanceof Error?e.message:`Failed to delete`,!0)}I(k,null)}var ge=Wx(),_e=z(ge);Ca(_e,{get message(){return H(i)}});var ve=B(_e,2),ye=R(ve),be=B(R(ye),2);{let e=P(()=>H(n)?.enabled??!1),t=P(()=>H(n)?.enabled?`On`:`Off`);Co(be,{get checked(){return H(e)},onchange:ce,get label(){return H(t)}})}A(ye);var xe=B(ye,2),Se=e=>{var t=Nx(),n=z(t),r=e=>{var t=jx(),n=z(t);_a(B(R(n),2),{variant:`text`,size:`sm`,onclick:()=>{I(u,!1),le()},children:(e,t)=>{j(),K(e,G(`Use time picker`))},$$slots:{default:!0}}),A(n);var r=B(n,2);Xa(B(R(r),2),{variant:`mono`,style:`flex:1`,onblur:le,placeholder:`0 0 * * *`,get value(){return H(d)},set value(e){I(d,e,!0)}}),A(r);var i=B(r,2),a=e=>{var t=Ax(),n=R(t,!0);A(t),V(e=>q(n,e),[()=>Nb(H(d))]),K(e,t)};J(i,e=>{H(d)&&e(a)});var o=B(i,2);Xa(B(R(o),2),{variant:`mono`,style:`flex:1`,onblur:le,placeholder:`0 8 * * *`,get value(){return H(f)},set value(e){I(f,e,!0)}}),A(o);var s=B(o,2),c=e=>{var t=Ax(),n=R(t,!0);A(t),V(e=>q(n,e),[()=>Nb(H(f))]),K(e,t)};J(s,e=>{H(f)&&e(c)}),K(e,t)},i=e=>{var t=Mx(),n=z(t),r=R(n),i=R(r);A(r),_a(B(r,2),{variant:`text`,size:`sm`,onclick:()=>{I(u,!0),I(d,Lb(H(o),H(s)),!0),I(f,Lb(H(c),H(l)),!0)},children:(e,t)=>{j(),K(e,G(`Custom`))},$$slots:{default:!0}}),A(n);var a=B(n,2);bo(a,{label:`Sleep at`,onchange:le,get hour(){return H(o)},set hour(e){I(o,e,!0)},get minute(){return H(s)},set minute(e){I(s,e,!0)}}),bo(B(a,2),{label:`Wake at`,onchange:le,get hour(){return H(c)},set hour(e){I(c,e,!0)},get minute(){return H(l)},set minute(e){I(l,e,!0)}}),V((e,t)=>q(i,`Sleeps at ${e??``}, wakes at ${t??``}`),[()=>Pb(H(o),H(s)),()=>Pb(H(c),H(l))]),K(e,t)};J(n,e=>{H(u)?e(r):e(i,-1)});var a=B(n,2),_=B(R(a),2);Co(R(_),{get checked(){return H(p)},onchange:()=>{I(p,!H(p)),ue()},label:`When mentioned`}),A(_);var v=B(_,2);Co(R(v),{get checked(){return H(m)},onchange:()=>{I(m,!H(m)),ue()},label:`Direct messages`}),A(v);var y=B(v,2);Xa(B(R(y),2),{type:`text`,style:`flex:1`,placeholder:`channel1, channel2`,onblur:ue,get value(){return H(h)},set value(e){I(h,e,!0)}}),A(y);var b=B(y,2);Xa(B(R(b),2),{type:`text`,style:`flex:1`,placeholder:`user1, user2`,onblur:ue,get value(){return H(g)},set value(e){I(g,e,!0)}}),A(b),A(a),K(e,t)};J(xe,e=>{H(n)?.enabled&&e(Se)}),A(ve);var Ce=B(ve,2),we=R(Ce);_a(B(R(we),2),{variant:`primary`,onclick:()=>I(_,!0),children:(e,t)=>{j(),K(e,G(`Add`))},$$slots:{default:!0}}),A(we);var Te=B(we,2),Ee=e=>{var t=zx(),n=R(t);Xa(B(R(n),2),{type:`text`,style:`flex:1`,placeholder:`e.g. heartbeat`,get value(){return H(v)},set value(e){I(v,e,!0)}}),A(n);var r=B(n,2);oo(B(R(r),2),{get value(){return H(y)},set value(e){I(y,e,!0)},children:(e,t)=>{var n=Px(),r=z(n);r.value=r.__value=`hours`;var i=B(r,2);i.value=i.__value=`daily`;var a=B(i,2);a.value=a.__value=`cron`,K(e,n)},$$slots:{default:!0}}),A(r);var i=B(r,2),a=e=>{var t=Fx();Xa(B(R(t),4),{type:`number`,width:`50px`,style:`text-align:center`,min:`1`,max:`24`,get value(){return H(b)},set value(e){I(b,e,!0)}}),j(2),A(t),K(e,t)},o=e=>{var t=Ix();bo(B(R(t),4),{get hour(){return H(x)},set hour(e){I(x,e,!0)},get minute(){return H(S)},set minute(e){I(S,e,!0)}}),A(t),K(e,t)},s=e=>{var t=Lx();Xa(B(R(t),2),{type:`text`,style:`flex:1`,placeholder:`*/30 * * * *`,get value(){return H(C)},set value(e){I(C,e,!0)}}),A(t),K(e,t)};J(i,e=>{H(y)===`hours`?e(a):H(y)===`daily`?e(o,1):e(s,-1)});var c=B(i,2),l=B(R(c),2);hn(l),A(c);var u=B(c,2);oo(B(R(u),2),{get value(){return H(T)},set value(e){I(T,e,!0)},children:(e,t)=>{var n=Rx(),r=z(n);r.value=r.__value=`skip`;var i=B(r,2);i.value=i.__value=`queue`;var a=B(i,2);a.value=a.__value=`trigger-wake`,K(e,n)},$$slots:{default:!0}}),A(u);var d=B(u,2),f=R(d);{let e=P(()=>H(k)!==null||!H(v).trim());_a(f,{variant:`primary`,onclick:me,get disabled(){return H(e)},children:(e,t)=>{j();var n=G();V(()=>q(n,H(k)===`sched:add`?`...`:`Add schedule`)),K(e,n)},$$slots:{default:!0}})}_a(B(f,2),{variant:`secondary`,onclick:()=>I(_,!1),children:(e,t)=>{j(),K(e,G(`Cancel`))},$$slots:{default:!0}}),A(d),A(t),aa(l,()=>H(w),e=>I(w,e)),K(e,t)};J(Te,e=>{H(_)&&e(Ee)});var De=B(Te,2),Oe=e=>{xa(e,{message:`No schedules configured.`})},ke=e=>{var t=Ux();Y(t,21,()=>H(r),e=>e.id,(e,t)=>{var n=Kr(),r=z(n),i=e=>{var n=Bx(),r=R(n);oo(B(R(r),2),{get value(){return H(ee)},set value(e){I(ee,e,!0)},children:(e,t)=>{var n=Px(),r=z(n);r.value=r.__value=`hours`;var i=B(r,2);i.value=i.__value=`daily`;var a=B(i,2);a.value=a.__value=`cron`,K(e,n)},$$slots:{default:!0}}),A(r);var i=B(r,2),a=e=>{var t=Fx();Xa(B(R(t),4),{type:`number`,width:`50px`,style:`text-align:center`,min:`1`,max:`24`,get value(){return H(te)},set value(e){I(te,e,!0)}}),j(2),A(t),K(e,t)},o=e=>{var t=Ix();bo(B(R(t),4),{get hour(){return H(ne)},set hour(e){I(ne,e,!0)},get minute(){return H(D)},set minute(e){I(D,e,!0)}}),A(t),K(e,t)},s=e=>{var t=Lx();Xa(B(R(t),2),{type:`text`,style:`flex:1`,placeholder:`*/30 * * * *`,get value(){return H(O)},set value(e){I(O,e,!0)}}),A(t),K(e,t)};J(i,e=>{H(ee)===`hours`?e(a):H(ee)===`daily`?e(o,1):e(s,-1)});var c=B(i,2),l=B(R(c),2);hn(l),A(c);var u=B(c,2);oo(B(R(u),2),{get value(){return H(ie)},set value(e){I(ie,e,!0)},children:(e,t)=>{var n=Rx(),r=z(n);r.value=r.__value=`skip`;var i=B(r,2);i.value=i.__value=`queue`;var a=B(i,2);a.value=a.__value=`trigger-wake`,K(e,n)},$$slots:{default:!0}}),A(u);var d=B(u,2),f=R(d);{let e=P(()=>H(k)!==null);_a(f,{variant:`primary`,onclick:pe,get disabled(){return H(e)},children:(e,n)=>{j();var r=G();V(()=>q(r,H(k)===`sched:${H(t).id}`?`...`:`Save`)),K(e,r)},$$slots:{default:!0}})}_a(B(f,2),{variant:`secondary`,onclick:()=>I(E,null),children:(e,t)=>{j(),K(e,G(`Cancel`))},$$slots:{default:!0}}),A(d),A(n),aa(l,()=>H(re),e=>I(re,e)),K(e,n)},a=e=>{var n=Hx();let r;var i=R(n),a=R(i),o=R(a,!0);A(a);var s=B(a,2),c=R(s),l=e=>{var n=G();V(e=>q(n,e),[()=>Nb(H(t).cron)]),K(e,n)},u=e=>{K(e,G(`one-time`))},d=e=>{K(e,G(`--`))};J(c,e=>{H(t).cron?e(l):H(t).fireAt?e(u,1):e(d,-1)}),A(s);var f=B(s,2),p=R(f);Co(p,{get checked(){return H(t).enabled},onchange:()=>de(H(t))});var m=B(p,2);_a(m,{variant:`icon`,onclick:()=>fe(H(t)),children:(e,t)=>{j(),K(e,G(`Edit`))},$$slots:{default:!0}});var h=B(m,2);{let e=P(()=>H(k)!==null);_a(h,{variant:`danger`,size:`sm`,class:`icon-size`,onclick:()=>he(H(t).id),get disabled(){return H(e)},children:(e,n)=>{j();var r=G();V(()=>q(r,H(k)===`sched:${H(t).id}`?`...`:`Del`)),K(e,r)},$$slots:{default:!0}})}A(f),A(i);var g=B(i,2),_=e=>{var n=Vx(),r=R(n,!0);A(n),V(e=>q(r,e),[()=>Bb(H(t))]),K(e,n)};J(g,e=>{(H(t).message||H(t).messages?.length)&&e(_)}),A(n),V(()=>{r=X(n,1,`schedule-card svelte-1u04gr6`,null,r,{disabled:!H(t).enabled}),q(o,H(t).id)}),K(e,n)};J(r,e=>{H(E)===H(t).id?e(i):e(a,-1)}),K(e,n)}),A(t),K(e,t)};J(De,e=>{H(r).length===0&&!H(_)?e(Oe):e(ke,-1)}),A(Ce),K(e,ge),N()}var Kx=W(`<div class="skill-desc svelte-19xtkvn"> </div>`),qx=W(`<span class="installed-tag svelte-19xtkvn">installed</span>`),Jx=W(`<div class="skill-row svelte-19xtkvn"><div class="skill-info svelte-19xtkvn"><div class="skill-name svelte-19xtkvn"> </div> <!> <div class="skill-meta svelte-19xtkvn"> </div></div> <div class="skill-actions svelte-19xtkvn"><!></div></div>`),Yx=W(`<div class="skill-list svelte-19xtkvn"></div>`),Xx=W(`<div class="modal-body svelte-19xtkvn"><!> <!></div>`);function Zx(e,t){M(t,!0);let n=F(L([])),r=F(``),i=F(!0),a=F(null);ma(()=>{id().then(e=>{I(n,e,!0),I(i,!1)}).catch(()=>{I(r,`Failed to load shared skills`),I(i,!1)})});async function o(e){I(a,e,!0),I(r,``);try{await od(t.name,e),t.onInstalled();try{I(n,await id(),!0)}catch{}}catch(e){I(r,e instanceof Error?e.message:`Failed to install`,!0)}I(a,null)}$a(e,{size:`480px`,title:`Add Skill`,get onClose(){return t.onClose},children:(e,s)=>{var c=Xx(),l=R(c);Ca(l,{get message(){return H(r)}});var u=B(l,2),d=e=>{xa(e,{message:`Loading...`})},f=e=>{xa(e,{message:`No shared skills available.`})},p=e=>{var r=Yx();Y(r,21,()=>H(n),e=>e.id,(e,n)=>{var r=Jx(),i=R(r),s=R(i),c=R(s,!0);A(s);var l=B(s,2),u=e=>{var t=Kx(),r=R(t,!0);A(t),V(()=>q(r,H(n).description)),K(e,t)};J(l,e=>{H(n).description&&e(u)});var d=B(l,2),f=R(d);A(d),A(i);var p=B(i,2),m=R(p),h=e=>{K(e,qx())},g=P(()=>t.installedIds.has(H(n).id)),_=e=>{{let t=P(()=>H(a)!==null);_a(e,{variant:`primary`,onclick:()=>o(H(n).id),get disabled(){return H(t)},children:(e,t)=>{j();var r=G();V(()=>q(r,H(a)===H(n).id?`...`:`Install`)),K(e,r)},$$slots:{default:!0}})}};J(m,e=>{H(g)?e(h):e(_,-1)}),A(p),A(r),V(()=>{q(c,H(n).name),q(f,`${H(n).id??``} · v${H(n).version??``}`)}),K(e,r)}),A(r),K(e,r)};J(u,e=>{H(i)?e(d):H(n).length===0?e(f,1):e(p,-1)}),A(c),K(e,c)},$$slots:{default:!0}}),N()}var Qx=W(`<span class="update-badge svelte-x10lne">update available</span>`),$x=W(`<div class="skill-desc svelte-x10lne"> </div>`),eS=W(`<span class="upstream-tag svelte-x10lne"> </span>`),tS=W(`<span class="local-tag svelte-x10lne">local</span>`),nS=W(`<div class="skill-row svelte-x10lne"><div class="skill-info svelte-x10lne"><div class="skill-name svelte-x10lne"> <!></div> <!> <div class="skill-meta svelte-x10lne"> <!></div></div> <div class="skill-actions svelte-x10lne"><!> <!> <!></div></div>`),rS=W(`<div class="skill-list svelte-x10lne"></div>`),iS=W(`<!> <!> <!>`,1),aS=W(`<!> <!>`,1);function oS(e,t){M(t,!0);let n=F(L([])),r=F(``),i=F(!0),a=F(null),o=F(!1);function s(){ad(t.name).then(e=>{I(n,e,!0),I(i,!1),I(r,``)}).catch(()=>{I(r,`Failed to load skills`),I(i,!1)})}ma(()=>{s()});let c=P(()=>new Set(H(n).map(e=>e.id)));async function l(e){I(a,e,!0),I(r,``);try{let n=await sd(t.name,e);n.status===`conflict`&&I(r,`Merge conflicts in: ${n.conflictFiles?.join(`, `)}. Resolve manually.`),s()}catch(e){I(r,e instanceof Error?e.message:`Failed to update`,!0)}I(a,null)}async function u(e){I(a,e,!0),I(r,``);try{await cd(t.name,e),s()}catch(e){I(r,e instanceof Error?e.message:`Failed to publish`,!0)}I(a,null)}async function d(e){I(a,e,!0),I(r,``);try{await ld(t.name,e),s()}catch(e){I(r,e instanceof Error?e.message:`Failed to uninstall`,!0)}I(a,null)}var f=aS(),p=z(f),m=e=>{xa(e,{message:`Loading...`})},h=e=>{var t=iS(),i=z(t);Ca(i,{get message(){return H(r)}});var s=B(i,2);no(s,{title:`Skills`,action:e=>{_a(e,{variant:`primary`,onclick:()=>I(o,!0),children:(e,t)=>{j(),K(e,G(`Add skill`))},$$slots:{default:!0}})},$$slots:{action:!0}});var c=B(s,2),f=e=>{xa(e,{message:`No skills installed.`})},p=e=>{var t=rS();Y(t,21,()=>H(n),e=>e.id,(e,t)=>{var n=nS(),r=R(n),i=R(r),o=R(i),s=B(o),c=e=>{K(e,Qx())};J(s,e=>{H(t).updateAvailable&&e(c)}),A(i);var f=B(i,2),p=e=>{var n=$x(),r=R(n,!0);A(n),V(()=>q(r,H(t).description)),K(e,n)};J(f,e=>{H(t).description&&e(p)});var m=B(f,2),h=R(m),g=B(h),_=e=>{var n=eS(),r=R(n);A(n),V(()=>q(r,`v${H(t).upstream.version??``}`)),K(e,n)},v=e=>{K(e,tS())};J(g,e=>{H(t).upstream?e(_):e(v,-1)}),A(m),A(r);var y=B(r,2),b=R(y),x=e=>{{let n=P(()=>H(a)!==null);_a(e,{variant:`primary`,onclick:()=>l(H(t).id),get disabled(){return H(n)},children:(e,n)=>{j();var r=G();V(()=>q(r,H(a)===H(t).id?`...`:`Update`)),K(e,r)},$$slots:{default:!0}})}};J(b,e=>{H(t).updateAvailable&&e(x)});var S=B(b,2);{let e=P(()=>H(a)!==null);_a(S,{variant:`secondary`,onclick:()=>u(H(t).id),get disabled(){return H(e)},children:(e,n)=>{j();var r=G();V(()=>q(r,H(a)===H(t).id?`...`:`Publish`)),K(e,r)},$$slots:{default:!0}})}var C=B(S,2);{let e=P(()=>H(a)!==null);_a(C,{variant:`danger`,onclick:()=>d(H(t).id),get disabled(){return H(e)},children:(e,n)=>{j();var r=G();V(()=>q(r,H(a)===H(t).id?`...`:`Uninstall`)),K(e,r)},$$slots:{default:!0}})}A(y),A(n),V(()=>{q(o,`${H(t).name??``} `),q(h,`${H(t).id??``} `)}),K(e,n)}),A(t),K(e,t)};J(c,e=>{H(n).length===0?e(f):e(p,-1)}),K(e,t)};J(p,e=>{H(i)?e(m):e(h,-1)});var g=B(p,2),_=e=>{Zx(e,{get name(){return t.name},get installedIds(){return H(c)},onClose:()=>I(o,!1),onInstalled:s})};J(g,e=>{H(o)&&e(_)}),K(e,f),N()}var sS=W(`<button> </button>`),cS=W(`<div class="settings svelte-1c5rh43"><nav class="section-nav svelte-1c5rh43"></nav> <div class="settings-body svelte-1c5rh43"><section id="profile" class="svelte-1c5rh43"><!></section> <section id="cognition" class="svelte-1c5rh43"><!> <!></section> <section id="rhythms" class="svelte-1c5rh43"><!> <!></section> <section id="skills" class="svelte-1c5rh43"><!></section> <section id="environment" class="svelte-1c5rh43"><!></section></div></div>`);function lS(e,t){M(t,!0);let n=P(()=>Zf.minds.find(e=>e.name===t.mind.name)??t.mind),r=P(()=>H(n).name),i=[{id:`profile`,label:`Profile`},{id:`cognition`,label:`Model`},{id:`rhythms`,label:`Clock`},{id:`skills`,label:`Skills`},{id:`environment`,label:`Environment`}],a=F(`profile`),o,s={},c=!1;ma(()=>{l()});function l(){if(!o)return;let e=new IntersectionObserver(e=>{if(!c)for(let t of e)t.isIntersecting&&I(a,t.target.id,!0)},{root:o,rootMargin:`-20% 0px -70% 0px`,threshold:0});for(let t of Object.values(s))t&&e.observe(t);return()=>e.disconnect()}function u(e){I(a,e,!0),c=!0,s[e]?.scrollIntoView({behavior:`smooth`,block:`start`}),setTimeout(()=>{c=!1},600)}async function d(){Zf.minds=await vu()}var f=cS(),p=R(f);Y(p,21,()=>i,ti,(e,t)=>{var n=sS();let r;var i=R(n,!0);A(n),V(()=>{r=X(n,1,`nav-pill svelte-1c5rh43`,null,r,{active:H(a)===H(t).id}),q(i,H(t).label)}),U(`click`,n,()=>u(H(t).id)),K(e,n)}),A(p);var m=B(p,2),h=R(m);kx(R(h),{get mind(){return H(n)},onUpdated:d}),A(h),ua(h,e=>s.profile=e,()=>s?.profile);var g=B(h,2),_=R(g);no(_,{title:`Model`,subtitle:`Cognition and resource limits`}),mx(B(_,2),{get name(){return H(r)},get template(){return H(n).template}}),A(g),ua(g,e=>s.cognition=e,()=>s?.cognition);var v=B(g,2),y=R(v);no(y,{title:`Clock`,subtitle:`Sleep, schedules, and wake triggers`}),Gx(B(y,2),{get name(){return H(r)}}),A(v),ua(v,e=>s.rhythms=e,()=>s?.rhythms);var b=B(v,2);oS(R(b),{get name(){return H(r)}}),A(b),ua(b,e=>s.skills=e,()=>s?.skills);var x=B(b,2);Cx(R(x),{get name(){return H(r)}}),A(x),ua(x,e=>s.environment=e,()=>s?.environment),A(m),ua(m,e=>o=e,()=>o),A(f),K(e,f),N()}Lr([`click`]);var uS=W(`<div class="error svelte-9a144u"> </div>`),dS=W(`<div class="warning svelte-9a144u"> </div>`),fS=W(`<div class="muted svelte-9a144u">Loading…</div>`),pS=W(`<div class="muted svelte-9a144u">No variants.</div>`),mS=W(`<span class="port"> </span>`),hS=W(`<span class="created"> </span>`),gS=W(`<span class="confirm svelte-9a144u"> <button class="confirm-yes svelte-9a144u"> </button> <button class="confirm-no svelte-9a144u">cancel</button></span>`),_S=W(`<span class="confirm svelte-9a144u">Discard this variant? <button class="confirm-yes danger svelte-9a144u"> </button> <button class="confirm-no svelte-9a144u">cancel</button></span>`),vS=W(`<!> <!>`,1),yS=W(`<li class="variant-row svelte-9a144u"><div class="variant-main svelte-9a144u"><span class="variant-name svelte-9a144u"> </span> <!></div> <div class="variant-meta svelte-9a144u"><span class="branch svelte-9a144u" title="branch"> </span> <!> <!></div> <div class="variant-actions svelte-9a144u"><!></div></li>`),bS=W(`<ul class="variant-list svelte-9a144u"></ul>`),xS=W(`<div class="variants svelte-9a144u"><!> <form class="create-form svelte-9a144u"><div class="create-row svelte-9a144u"><!> <!></div> <textarea class="soul-input svelte-9a144u" placeholder="Optional SOUL.md override for the variant" rows="2"></textarea></form> <!> <!> <!></div>`);function SS(e,t){M(t,!0);let n=F(L([])),r=F(!0),i=F(``),a=F(``),o=F(``),s=F(``),c=F(!1),l=F(null),u=F(null),d=F(null);async function f(){I(r,!0);try{I(n,await Bu(t.name),!0),I(i,``)}catch(e){console.error(`Failed to load variants:`,e),I(i,e instanceof Error?e.message:`Failed to load variants`,!0)}finally{I(r,!1)}}Tn(()=>{t.name,f()});async function p(e){e.preventDefault();let n=H(o).trim();if(!(!n||H(c))){I(c,!0),I(i,``),I(a,``);try{await Hu(t.name,{name:n,soul:H(s).trim()||void 0}),I(o,``),I(s,``),await f()}catch(e){console.error(`Failed to create variant:`,e),I(i,e instanceof Error?e.message:`Failed to create variant`,!0)}finally{I(c,!1)}}}async function m(e){I(d,e,!0),I(i,``),I(a,``);try{let n=await Uu(t.name,e);I(l,null),await f(),n.warning&&I(a,n.warning,!0)}catch(e){console.error(`Failed to join variant:`,e),I(i,e instanceof Error?e.message:`Failed to join variant`,!0)}finally{I(d,null)}}async function h(e){I(d,e,!0),I(i,``),I(a,``);try{await Wu(t.name,e),I(u,null),await f()}catch(e){console.error(`Failed to delete variant:`,e),I(i,e instanceof Error?e.message:`Failed to delete variant`,!0)}finally{I(d,null)}}var g=xS(),_=R(g);no(_,{title:`Variants`,subtitle:`Isolated forks of this mind — split off an experiment, then join it back or discard it`});var v=B(_,2),y=R(v),b=R(y);Xa(b,{placeholder:`variant name`,width:`180px`,get disabled(){return H(c)},get value(){return H(o)},set value(e){I(o,e,!0)}});var x=B(b,2);{let e=P(()=>H(c)||!H(o).trim());_a(x,{variant:`primary`,type:`submit`,get disabled(){return H(e)},children:(e,t)=>{j();var n=G();V(()=>q(n,H(c)?`Splitting…`:`Split`)),K(e,n)},$$slots:{default:!0}})}A(y);var S=B(y,2);hn(S),A(v);var C=B(v,2),w=e=>{var t=uS(),n=R(t,!0);A(t),V(()=>q(n,H(i))),K(e,t)};J(C,e=>{H(i)&&e(w)});var T=B(C,2),E=e=>{var t=dS(),n=R(t);A(t),V(()=>q(n,`Merge completed, but: ${H(a)??``}`)),K(e,t)};J(T,e=>{H(a)&&e(E)});var ee=B(T,2),te=e=>{K(e,fS())},ne=e=>{K(e,pS())},D=e=>{var r=bS();Y(r,21,()=>H(n),e=>e.name,(e,n)=>{var r=yS(),i=R(r),a=R(i),o=R(a,!0);A(a),po(B(a,2),{get status(){return H(n).status}}),A(i);var s=B(i,2),c=R(s),f=R(c,!0);A(c);var p=B(c,2),g=e=>{var t=mS(),r=R(t);A(t),V(()=>q(r,`:${H(n).port??``}`)),K(e,t)};J(p,e=>{H(n).port&&e(g)});var _=B(p,2),v=e=>{var t=hS(),r=R(t,!0);A(t),V(e=>q(r,e),[()=>Bl(H(n).created)]),K(e,t)};J(_,e=>{H(n).created&&e(v)}),A(s);var y=B(s,2),b=R(y),x=e=>{var r=gS(),i=R(r),a=B(i),o=R(a,!0);A(a);var s=B(a,2);A(r),V(()=>{q(i,`Join back into ${t.name??``} and restart? `),a.disabled=H(d)===H(n).name,q(o,H(d)===H(n).name?`joining…`:`join`),s.disabled=H(d)===H(n).name}),U(`click`,a,()=>m(H(n).name)),U(`click`,s,()=>I(l,null)),K(e,r)},S=e=>{var t=_S(),r=B(R(t)),i=R(r,!0);A(r);var a=B(r,2);A(t),V(()=>{r.disabled=H(d)===H(n).name,q(i,H(d)===H(n).name?`discarding…`:`discard`),a.disabled=H(d)===H(n).name}),U(`click`,r,()=>h(H(n).name)),U(`click`,a,()=>I(u,null)),K(e,t)},C=e=>{var t=vS(),r=z(t);{let e=P(()=>!!H(d));_a(r,{variant:`secondary`,onclick:()=>I(l,H(n).name,!0),get disabled(){return H(e)},children:(e,t)=>{j(),K(e,G(`Join`))},$$slots:{default:!0}})}var i=B(r,2);{let e=P(()=>!!H(d));_a(i,{variant:`text`,onclick:()=>I(u,H(n).name,!0),get disabled(){return H(e)},children:(e,t)=>{j(),K(e,G(`Discard`))},$$slots:{default:!0}})}K(e,t)};J(b,e=>{H(l)===H(n).name?e(x):H(u)===H(n).name?e(S,1):e(C,-1)}),A(y),A(r),V(()=>{q(o,H(n).name),q(f,H(n).branch)}),K(e,r)}),A(r),K(e,r)};J(ee,e=>{H(r)?e(te):H(n).length===0?e(ne,1):e(D,-1)}),A(g),V(()=>S.disabled=H(c)),Ir(`submit`,v,p),aa(S,()=>H(s),e=>I(s,e)),K(e,g),N()}Lr([`click`]);var CS=W(`<div class="error svelte-1ctf7xm"> </div>`),wS=W(`<div class="muted svelte-1ctf7xm">Loading…</div>`),TS=W(`<div class="muted svelte-1ctf7xm">No pending files.</div>`),ES=W(`<li class="file-row svelte-1ctf7xm"><div class="file-main svelte-1ctf7xm"><span class="file-name svelte-1ctf7xm"> </span> <span class="file-size svelte-1ctf7xm"> </span></div> <div class="file-meta svelte-1ctf7xm"><span class="sender"> </span> <span class="created"> </span></div></li>`),DS=W(`<ul class="file-list svelte-1ctf7xm"></ul> <div class="hint svelte-1ctf7xm">Accepting or rejecting a file is the mind's decision — it runs <code class="svelte-1ctf7xm">volute chat accept/reject &lt;id&gt;</code> when it's ready.</div>`,1),OS=W(`<div class="pending svelte-1ctf7xm"><!> <!> <!></div>`);function kS(e,t){M(t,!0);let n=F(L([])),r=F(!0),i=F(``);function a(e){if(e<1024)return`${e} B`;let t=[`KB`,`MB`,`GB`],n=e/1024,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r++;return`${n.toFixed(+(n<10))} ${t[r]}`}async function o(){I(r,!0);try{I(n,await uf(t.name),!0),I(i,``)}catch(e){console.error(`Failed to load pending files:`,e),I(i,e instanceof Error?e.message:`Failed to load pending files`,!0)}finally{I(r,!1)}}Tn(()=>{t.name,o()});var s=OS(),c=R(s);no(c,{title:`Incoming files`,subtitle:`Files sent to this mind, awaiting its review`});var l=B(c,2),u=e=>{var t=CS(),n=R(t,!0);A(t),V(()=>q(n,H(i))),K(e,t)};J(l,e=>{H(i)&&e(u)});var d=B(l,2),f=e=>{K(e,wS())},p=e=>{K(e,TS())},m=e=>{var t=DS(),r=z(t);Y(r,21,()=>H(n),e=>e.id,(e,t)=>{var n=ES(),r=R(n),i=R(r),o=R(i,!0);A(i);var s=B(i,2),c=R(s,!0);A(s),A(r);var l=B(r,2),u=R(l),d=R(u);A(u);var f=B(u,2),p=R(f,!0);A(f),A(l),A(n),V((e,n)=>{q(o,H(t).filename),q(c,e),q(d,`from ${H(t).sender??``}`),q(p,n)},[()=>a(H(t).size),()=>Bl(H(t).createdAt)]),K(e,n)}),A(r),j(2),K(e,t)};J(d,e=>{H(r)?e(f):H(n).length===0?e(p,1):e(m,-1)}),A(s),K(e,s),N()}var AS=W(`<div class="error svelte-18xrmlc"> </div>`),jS=W(`<div class="empty svelte-18xrmlc">Loading...</div>`),MS=W(`<div class="empty svelte-18xrmlc">No channels yet. Create one below.</div>`),NS=W(`<div class="channel-row svelte-18xrmlc"><div class="channel-info svelte-18xrmlc"><span class="channel-name svelte-18xrmlc"> </span> <span class="channel-meta svelte-18xrmlc"> </span></div> <button> </button></div>`),PS=W(`<!> <div class="channel-list svelte-18xrmlc"><!></div> <div class="create-section svelte-18xrmlc"><!> <button class="create-btn svelte-18xrmlc">Create</button></div>`,1);function FS(e,t){M(t,!0);let n=F(L([])),r=F(``),i=F(``),a=F(!0),o=F(null);function s(){I(a,!0),Zu().then(e=>{I(n,e,!0),I(i,``)}).catch(e=>{I(i,e instanceof Error?e.message:`Failed to load channels`,!0)}).finally(()=>{I(a,!1)})}ma(()=>{s()});async function c(){let e=H(r).trim().toLowerCase().replace(/[^a-z0-9-]/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``);if(e)try{let n=await Qu(e);I(r,``),s(),t.onJoined(n)}catch(e){I(i,e instanceof Error?e.message:`Failed to create channel`,!0)}}async function l(e){if(e.channel_name){I(o,e.channel_name,!0);try{await $u(e.channel_name),t.onJoined(e)}catch(e){I(i,e instanceof Error?e.message:`Failed to join channel`,!0)}finally{I(o,null)}}}async function u(e){if(e.channel_name)try{await ed(e.channel_name),s()}catch(e){I(i,e instanceof Error?e.message:`Failed to leave channel`,!0)}}function d(e){e.key===`Escape`&&t.onClose(),e.key===`Enter`&&c()}$a(e,{size:`380px`,title:`Browse channels`,get onClose(){return t.onClose},children:(e,t)=>{var s=PS(),f=z(s),p=e=>{var t=AS(),n=R(t,!0);A(t),V(()=>q(n,H(i))),K(e,t)};J(f,e=>{H(i)&&e(p)});var m=B(f,2),h=R(m),g=e=>{K(e,jS())},_=e=>{K(e,MS())},v=e=>{var t=Kr();Y(z(t),17,()=>H(n),e=>e.id,(e,t)=>{var n=NS(),r=R(n),i=R(r),a=R(i);A(i);var s=B(i,2),c=R(s);A(s),A(r);var d=B(r,2);let f;var p=R(d,!0);A(d),A(n),V(()=>{q(a,`#${H(t).channel_name??``}`),q(c,`${H(t).participantCount??``} member${H(t).participantCount===1?``:`s`}`),f=X(d,1,`action-btn svelte-18xrmlc`,null,f,{leave:H(t).isMember}),d.disabled=H(o)===H(t).channel_name,q(p,H(o)===H(t).channel_name?`...`:H(t).isMember?`leave`:`join`)}),U(`click`,d,()=>H(t).isMember?u(H(t)):l(H(t))),K(e,n)}),K(e,t)};J(h,e=>{H(a)?e(g):H(n).length===0?e(_,1):e(v,-1)}),A(m);var y=B(m,2),b=R(y);Xa(b,{type:`text`,placeholder:`new-channel-name`,style:`flex:1`,onkeydown:d,get value(){return H(r)},set value(e){I(r,e,!0)}});var x=B(b,2);A(y),V(e=>x.disabled=e,[()=>!H(r).trim()]),U(`click`,x,c),K(e,s)},$$slots:{default:!0}}),N()}Lr([`click`]);var IS=W(`<details class="section svelte-1v57vxv"><summary class="section-header svelte-1v57vxv">System Prompt</summary> <div class="section-body markdown-body svelte-1v57vxv"></div></details>`),LS=W(`<details class="section svelte-1v57vxv"><summary class="section-header svelte-1v57vxv">SDK Instructions</summary> <div class="section-body markdown-body svelte-1v57vxv"></div></details>`),RS=W(`<div class="skill-item svelte-1v57vxv"><span class="skill-name svelte-1v57vxv"> </span> <span class="skill-desc svelte-1v57vxv"> </span></div>`),zS=W(`<details class="section svelte-1v57vxv"><summary class="section-header svelte-1v57vxv"> </summary> <div class="section-body svelte-1v57vxv"></div></details>`),BS=W(`<div class="empty svelte-1v57vxv">No messages yet</div>`),VS=W(`<pre class="block-system-text svelte-1v57vxv"> </pre>`),HS=W(`<div class="block-text markdown-body svelte-1v57vxv"></div>`),US=W(`<details class="block-thinking svelte-1v57vxv"><summary class="thinking-header svelte-1v57vxv">Thinking</summary> <div class="thinking-body svelte-1v57vxv"> </div></details>`),WS=W(`<details class="block-tool svelte-1v57vxv"><summary class="tool-header svelte-1v57vxv"> </summary> <pre class="tool-body svelte-1v57vxv"> </pre></details>`),GS=W(`<details class="block-tool svelte-1v57vxv"><summary>Result<!></summary> <pre class="tool-body svelte-1v57vxv"> </pre></details>`),KS=W(`<div><div> </div> <div class="blocks svelte-1v57vxv"></div></div>`),qS=W(`<div class="messages svelte-1v57vxv"></div>`),JS=W(`<div class="session svelte-1v57vxv"><div class="session-label svelte-1v57vxv"> </div> <!></div>`),YS=W(`<div class="context-view svelte-1v57vxv"><div class="preamble svelte-1v57vxv"><!> <!> <!></div> <!></div>`);function XS(e,t){M(t,!0);var n=YS(),r=R(n),i=R(r),a=e=>{var n=IS(),r=B(R(n),2);ui(r,()=>Al(t.messages.preamble.systemPrompt),!0),A(r),A(n),K(e,n)};J(i,e=>{t.messages.preamble.systemPrompt&&e(a)});var o=B(i,2),s=e=>{var n=LS(),r=B(R(n),2);ui(r,()=>Al(t.messages.preamble.sdkInstructions),!0),A(r),A(n),K(e,n)};J(o,e=>{t.messages.preamble.sdkInstructions&&e(s)});var c=B(o,2),l=e=>{var n=zS(),r=R(n),i=R(r);A(r);var a=B(r,2);Y(a,21,()=>t.messages.preamble.skillDescriptions,ti,(e,t)=>{var n=RS(),r=R(n),i=R(r,!0);A(r);var a=B(r,2),o=R(a,!0);A(a),A(n),V(()=>{q(i,H(t).name),q(o,H(t).description)}),K(e,n)}),A(a),A(n),V(()=>q(i,`Skill Descriptions (${t.messages.preamble.skillDescriptions.length??``})`)),K(e,n)};J(c,e=>{t.messages.preamble.skillDescriptions.length>0&&e(l)}),A(r),Y(B(r,2),17,()=>t.messages.sessions,e=>e.name,(e,t)=>{var n=JS(),r=R(n),i=R(r,!0);A(r);var a=B(r,2),o=e=>{K(e,BS())},s=e=>{var n=qS();Y(n,21,()=>H(t).messages,ti,(e,t)=>{var n=KS();let r;var i=R(n);let a;var o=R(i,!0);A(i);var s=B(i,2);Y(s,21,()=>H(t).blocks,ti,(e,n)=>{var r=Kr(),i=z(r),a=e=>{var r=Kr(),i=z(r),a=e=>{var t=VS(),r=R(t,!0);A(t),V(()=>q(r,H(n).text)),K(e,t)},o=e=>{var t=HS();ui(t,()=>Al(H(n).text),!0),A(t),K(e,t)};J(i,e=>{H(t).role===`system`?e(a):e(o,-1)}),K(e,r)},o=e=>{var t=US(),r=B(R(t),2),i=R(r,!0);A(r),A(t),V(()=>q(i,H(n).text)),K(e,t)},s=e=>{var t=WS(),r=R(t),i=R(r,!0);A(r);var a=B(r,2),o=R(a,!0);A(a),A(t),V(()=>{q(i,H(n).name),q(o,H(n).input)}),K(e,t)},c=e=>{var t=GS(),r=R(t);let i;var a=B(R(r)),o=e=>{K(e,G(`(error)`))};J(a,e=>{H(n).isError&&e(o)}),A(r);var s=B(r,2),c=R(s,!0);A(s),A(t),V(()=>{i=X(r,1,`tool-header svelte-1v57vxv`,null,i,{"tool-error":H(n).isError}),q(c,H(n).text)}),K(e,t)};J(i,e=>{H(n).type===`text`?e(a):H(n).type===`thinking`?e(o,1):H(n).type===`tool_use`?e(s,2):H(n).type===`tool_result`&&e(c,3)}),K(e,r)}),A(s),A(n),V(()=>{r=X(n,1,`message svelte-1v57vxv`,null,r,{user:H(t).role===`user`,assistant:H(t).role===`assistant`,system:H(t).role===`system`}),a=X(i,1,`role-label svelte-1v57vxv`,null,a,{"user-label":H(t).role===`user`,"assistant-label":H(t).role===`assistant`,"system-label":H(t).role===`system`}),q(o,H(t).role)}),K(e,n)}),A(n),K(e,n)};J(a,e=>{H(t).messages.length===0?e(o):e(s,-1)}),A(n),V(()=>q(i,H(t).name)),K(e,n)}),A(n),K(e,n),N()}var ZS=W(`<div class="loading svelte-1ndm006">Loading context info...</div>`),QS=W(`<div class="error svelte-1ndm006"> </div>`),$S=W(`<div class="system-prompt-line svelte-1ndm006"><span class="sp-label svelte-1ndm006">System prompt</span> <span class="sp-value svelte-1ndm006"> </span></div>`),eC=W(`<div class="empty svelte-1ndm006">No active sessions</div>`),tC=W(`<span> </span><!>`,1),nC=W(`<span class="no-data svelte-1ndm006">no data yet</span>`),rC=W(`<div class="cell svelte-1ndm006"></div>`),iC=W(`<div class="waffle svelte-1ndm006"></div>`),aC=W(`<div class="token-bar svelte-1ndm006"><div class="token-bar-fill svelte-1ndm006"></div></div>`),oC=W(`<div class="session-block svelte-1ndm006"><div class="session-header svelte-1ndm006"><span class="session-name svelte-1ndm006"> </span> <span class="session-tokens svelte-1ndm006"><!></span></div> <!></div>`),sC=W(`<div class="sessions svelte-1ndm006"></div>`),cC=W(`<div class="context-content svelte-1ndm006"><!> <!></div>`),lC=W(`<div class="loading svelte-1ndm006">Loading context content...</div>`);function uC(e,t){M(t,!0);let n=F(`Overview`),r=F(null),i=F(null),a=F(!0),o=F(!1),s=F(``),c=F(``);ma(async()=>{try{I(r,await bu(t.mindName),!0)}catch(e){I(s,e.message??`Failed to fetch context info`,!0)}finally{I(a,!1)}});async function l(){if(!(H(i)||H(o))){I(o,!0);try{I(i,await xu(t.mindName),!0)}catch(e){I(c,e.message??`Failed to fetch context messages`,!0)}finally{I(o,!1)}}}function u(e){I(n,e,!0),e===`Content`&&l()}function d(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}let f={systemPrompt:`#6366f1`,claudeMd:`#818cf8`,skillDesc:`#8b5cf6`,userText:`#3b82f6`,assistantText:`#22c55e`,thinking:`#f59e0b`,toolUse:`#ec4899`,toolResult:`#f97316`,sdk:`#64748b`,empty:`var(--bg-3, #2a2a2a)`};function p(e,t){let n=[{key:`systemPrompt`,label:`System Prompt`,tokens:e.systemPrompt,color:f.systemPrompt},{key:`sdkInstructions`,label:`SDK Instructions`,tokens:e.sdkInstructions,color:f.claudeMd},{key:`skillDesc`,label:`Skill Descriptions`,tokens:e.skillDescriptions,color:f.skillDesc},{key:`userText`,label:`User Messages`,tokens:e.conversation.userText,color:f.userText},{key:`assistantText`,label:`Assistant Text`,tokens:e.conversation.assistantText,color:f.assistantText},{key:`thinking`,label:`Thinking`,tokens:e.conversation.thinking,color:f.thinking},{key:`toolUse`,label:`Tool Calls`,tokens:e.conversation.toolUse,color:f.toolUse},{key:`toolResult`,label:`Tool Results`,tokens:e.conversation.toolResult,color:f.toolResult}].filter(e=>e.tokens>0),r=t-n.reduce((e,t)=>e+t.tokens,0);return r>0&&n.push({key:`sdk`,label:`Tools & SDK`,tokens:r,color:f.sdk}),n}let m=2e3;function h(e,t){let n=Math.ceil(t/m),r=Math.ceil(n/15)*15,i=[];for(let t of e){let e=`${t.label}: ${d(t.tokens)}`,n=Math.max(1,Math.round(t.tokens/m));for(let a=0;a<n&&i.length<r;a++)i.push({color:t.color,tooltip:e})}for(;i.length<r;)i.push({color:f.empty,tooltip:``});return i}{let l=e=>{go(e,{tabs:[`Overview`,`Content`],get active(){return H(n)},onchange:u})},f=P(()=>H(n)===`Content`?`full`:`600px`);$a(e,{get title(){return`Context — ${t.mindName??``}`},get onClose(){return t.onClose},get size(){return H(f)},headerActions:l,children:(e,t)=>{var l=Kr(),u=z(l),f=e=>{var t=Kr(),n=z(t),i=e=>{K(e,ZS())},o=e=>{var t=QS(),n=R(t,!0);A(t),V(()=>q(n,H(s))),K(e,t)},c=e=>{var t=cC(),n=R(t),i=e=>{var t=$S(),n=B(R(t),2),i=R(n);A(n),A(t),V(e=>q(i,`${e??``} tokens`),[()=>d(H(r).systemPrompt)]),K(e,t)};J(n,e=>{H(r).systemPrompt>0&&e(i)});var a=B(n,2),o=e=>{K(e,eC())},s=e=>{var t=sC();Y(t,21,()=>H(r).sessions,e=>e.name,(e,t)=>{let n=P(()=>H(t).breakdown?p(H(t).breakdown,H(t).contextTokens):[]),r=P(()=>H(n).length>0&&H(t).contextWindow?h(H(n),H(t).contextWindow):[]),i=P(()=>H(t).contextWindow?H(t).contextTokens>H(t).contextWindow:!1);var a=oC(),o=R(a),s=R(o),c=R(s,!0);A(s);var l=B(s,2),u=R(l),f=e=>{var n=tC(),r=z(n);let a;var o=R(r,!0);A(r);var s=B(r),c=e=>{var n=G();V(e=>q(n,` / ${e??``}`),[()=>d(H(t).contextWindow)]),K(e,n)};J(s,e=>{H(t).contextWindow&&e(c)}),V(e=>{a=X(r,1,`svelte-1ndm006`,null,a,{"over-limit":H(i)}),q(o,e)},[()=>d(H(t).contextTokens)]),K(e,n)},m=e=>{K(e,nC())};J(u,e=>{H(t).contextTokens>0?e(f):e(m,-1)}),A(l),A(o);var g=B(o,2),_=e=>{var t=iC();Z(t,``,{},{"grid-template-columns":`repeat(15, 1fr)`}),Y(t,21,()=>H(r),ti,(e,t)=>{var n=Kr(),r=z(n),i=e=>{var n=rC();let r;Si(n,(e,t)=>Il?.(e,t),()=>H(t).tooltip),V(()=>r=Z(n,``,r,{background:H(t).color})),K(e,n)},a=e=>{var n=rC();let r;V(()=>r=Z(n,``,r,{background:H(t).color})),K(e,n)};J(r,e=>{H(t).tooltip?e(i):e(a,-1)}),K(e,n)}),A(t),K(e,t)},v=e=>{var n=aC(),r=R(n);let i;A(n),V(e=>i=Z(r,``,i,e),[()=>({width:`${Math.min(100,H(t).contextTokens/(H(t).contextWindow??H(t).contextTokens)*100)}%`})]),K(e,n)};J(g,e=>{H(r).length>0?e(_):H(t).contextTokens>0&&e(v,1)}),A(a),V(()=>q(c,H(t).name)),K(e,a)}),A(t),K(e,t)};J(a,e=>{H(r).sessions.length===0?e(o):e(s,-1)}),A(t),K(e,t)};J(n,e=>{H(a)?e(i):H(s)?e(o,1):H(r)&&e(c,2)}),K(e,t)},m=e=>{var t=Kr(),n=z(t),r=e=>{K(e,lC())},a=e=>{var t=QS(),n=R(t,!0);A(t),V(()=>q(n,H(c))),K(e,t)},s=e=>{XS(e,{get messages(){return H(i)}})};J(n,e=>{H(o)?e(r):H(c)?e(a,1):H(i)&&e(s,2)}),K(e,t)};J(u,e=>{H(n)===`Overview`?e(f):H(n)===`Content`&&e(m,1)}),K(e,l)},$$slots:{headerActions:!0,default:!0}})}N()}var dC=W(`<button class="model-selected svelte-c55mz0" type="button"><span class="model-selected-name svelte-c55mz0"> </span> <span class="model-selected-provider svelte-c55mz0"> </span> <span class="model-selected-clear svelte-c55mz0">×</span></button>`),fC=W(`<button class="model-option svelte-c55mz0" type="button"><span class="model-option-name svelte-c55mz0"> </span> <span class="model-option-provider svelte-c55mz0"> </span></button>`),pC=W(`<div class="model-dropdown svelte-c55mz0"></div>`),mC=W(`<div class="model-picker svelte-c55mz0"><!> <!></div>`),hC=W(`<div class="field svelte-c55mz0"><span class="label svelte-c55mz0">Model (optional)</span> <!></div>`),gC=W(`<label class="skill-item svelte-c55mz0"><input type="checkbox"/> <span class="skill-name svelte-c55mz0"> </span></label>`),_C=W(`<div class="field svelte-c55mz0"><span class="label svelte-c55mz0">Skills</span> <div class="skill-list svelte-c55mz0"></div></div>`),vC=W(`<label class="field svelte-c55mz0"><span class="label svelte-c55mz0">Seed SOUL template</span> <textarea class="textarea svelte-c55mz0" rows="6" placeholder="SOUL.md template for this seed..."></textarea> <span class="hint svelte-c55mz0"></span></label> <!>`,1),yC=W(`<div class="error svelte-c55mz0"> </div>`),bC=W(`<div class="modal-content svelte-c55mz0"><div class="modal-title svelte-c55mz0">Plant a seed</div> <label class="field svelte-c55mz0"><span class="label svelte-c55mz0">Name</span> <!></label> <label class="field svelte-c55mz0"><span class="label svelte-c55mz0">Description (optional)</span> <!></label> <!> <button class="advanced-toggle svelte-c55mz0"><span class="caret svelte-c55mz0"> </span> Advanced</button> <!> <!> <div class="actions svelte-c55mz0"><button class="cancel-btn svelte-c55mz0">Cancel</button> <button class="plant-btn svelte-c55mz0"> </button></div></div>`);function xC(e,t){M(t,!0);let n=[`orientation`,`memory`],r=F(``),i=F(``),a=F(``),o=F(!1),s=F(``),c=F(!1),l=F(``),u=F(``),d=F(L([])),f=F(L(new Set(n))),p=F(L([])),m=F(``),h=F(!1),g=P(()=>H(p).filter(e=>e.enabled)),_=P(()=>H(g).find(e=>e.id===H(a))),v=P(()=>H(m).trim()?H(g).filter(e=>{let t=H(m).toLowerCase();return e.id.toLowerCase().includes(t)||e.name.toLowerCase().includes(t)||e.provider.toLowerCase().includes(t)}).slice(0,12):H(g).slice(0,12)),y=P(()=>!H(o)&&!!H(r).trim());ma(()=>{gd().then(e=>{let t=e.find(e=>e.key===`seed_soul`);t&&(I(u,t.content,!0),I(l,t.content,!0))}).catch(e=>{console.error(`Failed to load prompt templates:`,e)}),id().then(e=>{I(d,e,!0)}).catch(e=>{console.error(`Failed to load shared skills:`,e)}),Od().then(e=>{I(p,e,!0)}).catch(e=>{console.error(`Failed to load AI models:`,e)})});function b(e){let t=new Set(H(f));t.has(e)?t.delete(e):t.add(e),I(f,t,!0)}async function x(){let e=H(r).trim();if(e){I(o,!0),I(s,``);try{let n=H(c)&&H(l)!==H(u)?H(l):void 0,r=H(c)?[...H(f)]:void 0;await Tu(e,{description:H(i).trim()||void 0,model:H(a)||void 0,seedSoul:n,skills:r}),await Su(e),t.onCreated(e)}catch(e){I(s,e instanceof Error?e.message:`Failed to create`,!0),I(o,!1)}}}$a(e,{size:`340px`,get onClose(){return t.onClose},children:(e,n)=>{var u=bC(),p=B(R(u),2);Xa(B(R(p),2),{inputSize:`md`,autofocus:!0,placeholder:`e.g. luna`,onkeydown:e=>e.key===`Enter`&&x(),get value(){return H(r)},set value(e){I(r,e,!0)}}),A(p);var S=B(p,2);Xa(B(R(S),2),{inputSize:`md`,placeholder:`A curious mind who loves poetry...`,onkeydown:e=>e.key===`Enter`&&x(),get value(){return H(i)},set value(e){I(i,e,!0)}}),A(S);var C=B(S,2),w=e=>{var t=hC(),n=B(R(t),2),r=e=>{var t=dC(),n=R(t),r=R(n,!0);A(n);var i=B(n,2),o=R(i,!0);A(i),j(2),A(t),V(()=>{q(r,H(_).name),q(o,H(_).provider)}),U(`click`,t,()=>{I(a,``),I(h,!0),I(m,``)}),K(e,t)},i=e=>{var t=mC(),n=R(t);Xa(n,{type:`text`,placeholder:`Search models...`,onfocus:()=>{I(h,!0)},onblur:()=>{setTimeout(()=>{I(h,!1)},150)},get value(){return H(m)},set value(e){I(m,e,!0)}});var r=B(n,2),i=e=>{var t=pC();Y(t,21,()=>H(v),e=>e.id,(e,t)=>{var n=fC(),r=R(n),i=R(r,!0);A(r);var o=B(r,2),s=R(o,!0);A(o),A(n),V(()=>{q(i,H(t).name),q(s,H(t).provider)}),U(`click`,n,()=>{I(a,H(t).id,!0),I(h,!1),I(m,``)}),K(e,n)}),A(t),K(e,t)};J(r,e=>{H(h)&&H(v).length>0&&e(i)}),A(t),K(e,t)};J(n,e=>{H(_)?e(r):e(i,-1)}),A(t),K(e,t)};J(C,e=>{H(g).length>0&&e(w)});var T=B(C,2),E=R(T),ee=R(E,!0);A(E),j(),A(T);var te=B(T,2),ne=e=>{var t=vC(),n=z(t),r=B(R(n),2);hn(r);var i=B(r,2);i.textContent="Variables: ${name}, ${description}",A(n);var a=B(n,2),o=e=>{var t=_C(),n=B(R(t),2);Y(n,21,()=>H(d),ti,(e,t)=>{var n=gC(),r=R(n);Ki(r);var i=B(r,2),a=R(i,!0);A(i),A(n),V(e=>{Ji(r,e),q(a,H(t).id)},[()=>H(f).has(H(t).id)]),U(`change`,r,()=>b(H(t).id)),K(e,n)}),A(n),A(t),K(e,t)};J(a,e=>{H(d).length>0&&e(o)}),aa(r,()=>H(l),e=>I(l,e)),K(e,t)};J(te,e=>{H(c)&&e(ne)});var D=B(te,2),O=e=>{var t=yC(),n=R(t,!0);A(t),V(()=>q(n,H(s))),K(e,t)};J(D,e=>{H(s)&&e(O)});var re=B(D,2),ie=R(re),ae=B(ie,2);let k;var oe=R(ae,!0);A(ae),A(re),A(u),V(()=>{q(ee,H(c)?`▼`:`▶`),ae.disabled=!H(y),k=Z(ae,``,k,{opacity:H(y)?1:.5}),q(oe,H(o)?`Planting...`:`Plant`)}),U(`click`,T,()=>I(c,!H(c))),U(`click`,ie,function(...e){t.onClose?.apply(this,e)}),U(`click`,ae,x),K(e,u)},$$slots:{default:!0}}),N()}Lr([`click`,`change`]);var SC=W(`<div class="message error svelte-9vtzjd"> </div>`),CC=W(`<div class="message success svelte-9vtzjd"> </div>`),wC=W(`<img alt="Avatar preview" class="avatar-img svelte-9vtzjd" loading="lazy" decoding="async"/>`),TC=W(`<img alt="Avatar" class="avatar-img svelte-9vtzjd" loading="lazy" decoding="async"/>`),EC=W(`<div class="avatar-placeholder svelte-9vtzjd">?</div>`),DC=W(`<button type="button" class="save-btn svelte-9vtzjd"> </button>`),OC=W(`<button type="button" class="remove-btn svelte-9vtzjd">Remove</button>`),kC=W(`<div class="modal-body svelte-9vtzjd"><form><h3 class="section-title svelte-9vtzjd">Profile</h3> <!> <!> <div class="avatar-section svelte-9vtzjd"><div class="avatar-preview svelte-9vtzjd"><!></div> <div class="avatar-actions svelte-9vtzjd"><label class="avatar-upload-btn svelte-9vtzjd">Choose file <input type="file" accept="image/png,image/jpeg,image/gif,image/webp" hidden="" class="svelte-9vtzjd"/></label> <!> <!></div></div> <label class="field svelte-9vtzjd"><span class="label svelte-9vtzjd">Display name</span> <input type="text" placeholder="Optional display name" class="svelte-9vtzjd"/></label> <label class="field svelte-9vtzjd"><span class="label svelte-9vtzjd">Description</span> <textarea placeholder="A short description" rows="3" class="svelte-9vtzjd"></textarea></label> <button class="save-btn svelte-9vtzjd" type="submit"> </button></form> <hr class="divider svelte-9vtzjd"/> <form><h3 class="section-title svelte-9vtzjd">Change Password</h3> <!> <!> <label class="field svelte-9vtzjd"><span class="label svelte-9vtzjd">Current password</span> <input type="password" autocomplete="current-password" class="svelte-9vtzjd"/></label> <label class="field svelte-9vtzjd"><span class="label svelte-9vtzjd">New password</span> <input type="password" autocomplete="new-password" class="svelte-9vtzjd"/></label> <label class="field svelte-9vtzjd"><span class="label svelte-9vtzjd">Confirm new password</span> <input type="password" autocomplete="new-password" class="svelte-9vtzjd"/></label> <button class="save-btn svelte-9vtzjd" type="submit"> </button></form></div>`);function AC(e,t){M(t,!0);let n=F(``),r=F(``),i=F(null),a=F(``),o=F(``),s=F(!1),c=F(null),l=F(null),u=F(!1),d=F(``),f=F(``),p=F(``),m=F(``),h=F(``),g=F(!1);ma(()=>{_()});async function _(){try{let e=await Yl();e&&(I(n,e.display_name??``,!0),I(r,e.description??``,!0),I(i,e.avatar?`/api/auth/avatars/${e.avatar}`:null,!0))}catch{I(a,`Failed to load profile`)}}async function v(e){e.preventDefault(),I(a,``),I(o,``),I(s,!0);try{await lu({display_name:H(n).trim()||null,description:H(r).trim()||null}),I(o,`Profile updated`)}catch(e){I(a,e instanceof Error?e.message:`Failed to update profile`,!0)}finally{I(s,!1)}}function y(e){let t=e.target.files?.[0];t&&(I(c,t,!0),I(l,URL.createObjectURL(t),!0))}async function b(){if(H(c)){I(u,!0),I(a,``);try{let e=await uu(H(c));I(i,`/api/auth/avatars/${e}`),I(c,null),I(l,null)}catch(e){I(a,e instanceof Error?e.message:`Failed to upload avatar`,!0)}finally{I(u,!1)}}}async function x(){I(a,``);try{await du(),I(i,null),I(c,null),I(l,null)}catch(e){I(a,e instanceof Error?e.message:`Failed to remove avatar`,!0)}}async function S(e){if(e.preventDefault(),I(m,``),I(h,``),H(f)!==H(p)){I(m,`New passwords do not match`);return}if(H(f).length<1){I(m,`New password cannot be empty`);return}I(g,!0);try{await eu(H(d),H(f)),I(h,`Password changed successfully`),I(d,``),I(f,``),I(p,``)}catch(e){I(m,e instanceof Error?e.message:`Failed to change password`,!0)}finally{I(g,!1)}}$a(e,{size:`420px`,title:`User Settings`,get onClose(){return t.onClose},children:(e,t)=>{var _=kC(),C=R(_),w=B(R(C),2),T=e=>{var t=SC(),n=R(t,!0);A(t),V(()=>q(n,H(a))),K(e,t)};J(w,e=>{H(a)&&e(T)});var E=B(w,2),ee=e=>{var t=CC(),n=R(t,!0);A(t),V(()=>q(n,H(o))),K(e,t)};J(E,e=>{H(o)&&e(ee)});var te=B(E,2),ne=R(te),D=R(ne),O=e=>{var t=wC();V(()=>Xi(t,`src`,H(l))),K(e,t)},re=e=>{var t=TC();V(()=>Xi(t,`src`,H(i))),K(e,t)},ie=e=>{K(e,EC())};J(D,e=>{H(l)?e(O):H(i)?e(re,1):e(ie,-1)}),A(ne);var ae=B(ne,2),k=R(ae),oe=B(R(k));A(k);var se=B(k,2),ce=e=>{var t=DC(),n=R(t,!0);A(t),V(()=>{t.disabled=H(u),q(n,H(u)?`Uploading...`:`Upload`)}),U(`click`,t,b),K(e,t)};J(se,e=>{H(c)&&e(ce)});var le=B(se,2),ue=e=>{var t=OC();U(`click`,t,x),K(e,t)};J(le,e=>{H(i)&&!H(c)&&e(ue)}),A(ae),A(te);var de=B(te,2),fe=B(R(de),2);Ki(fe),Xi(fe,`maxlength`,100),A(de);var pe=B(de,2),me=B(R(pe),2);hn(me),Xi(me,`maxlength`,500),A(pe);var he=B(pe,2),ge=R(he,!0);A(he),A(C);var _e=B(C,4),ve=B(R(_e),2),ye=e=>{var t=SC(),n=R(t,!0);A(t),V(()=>q(n,H(m))),K(e,t)};J(ve,e=>{H(m)&&e(ye)});var be=B(ve,2),xe=e=>{var t=CC(),n=R(t,!0);A(t),V(()=>q(n,H(h))),K(e,t)};J(be,e=>{H(h)&&e(xe)});var Se=B(be,2),Ce=B(R(Se),2);Ki(Ce),A(Se);var we=B(Se,2),Te=B(R(we),2);Ki(Te),A(we);var Ee=B(we,2),De=B(R(Ee),2);Ki(De),A(Ee);var Oe=B(Ee,2),ke=R(Oe,!0);A(Oe),A(_e),A(_),V(()=>{he.disabled=H(s),q(ge,H(s)?`Saving...`:`Save Profile`),Oe.disabled=H(g),q(ke,H(g)?`Saving...`:`Change Password`)}),Ir(`submit`,C,v),U(`change`,oe,y),aa(fe,()=>H(n),e=>I(n,e)),aa(me,()=>H(r),e=>I(r,e)),Ir(`submit`,_e,S),aa(Ce,()=>H(d),e=>I(d,e)),aa(Te,()=>H(f),e=>I(f,e)),aa(De,()=>H(p),e=>I(p,e)),K(e,_)},$$slots:{default:!0}}),N()}Lr([`change`,`click`]);var jC=W(`<div class="banner svelte-rcoqqt"><span>Minds cannot think yet — no AI provider is configured.</span> <button class="settings-btn svelte-rcoqqt">add a provider in Settings</button></div>`);function MC(e,t){M(t,!0);let n=F(!0);Tn(()=>{let e=!0;async function t(){try{let t=await fetch(`/api/system/info`);if(!t.ok){console.debug(`[provider] poll returned`,t.status);return}let r=await t.json();e&&I(n,r.aiConfigured!==!1)}catch(e){console.debug(`[provider] poll failed:`,e)}}t();let r=setInterval(t,6e4);return()=>{e=!1,clearInterval(r)}});var r=Kr(),i=z(r),a=e=>{var n=jC(),r=B(R(n),2);A(n),U(`click`,r,function(...e){t.onOpenSettings?.apply(this,e)}),K(e,n)};J(i,e=>{H(n)||e(a)}),K(e,r),N()}Lr([`click`]);var NC=W(`<div class="empty svelte-h08x3h">Loading...</div>`),PC=W(`<div class="empty error-text svelte-h08x3h"> </div>`),FC=W(`<button class="crumb svelte-h08x3h"> </button>`),IC=W(`<button class="file-row svelte-h08x3h"><span class="file-icon svelte-h08x3h">..</span> <span class="file-name svelte-h08x3h">..</span></button>`),LC=W(`<button><span class="file-icon svelte-h08x3h"> </span> <span class="file-name svelte-h08x3h"> </span></button>`),RC=W(`<div class="empty-dir svelte-h08x3h">Empty directory</div>`),zC=W(`<div class="preview-empty svelte-h08x3h">Loading...</div>`),BC=W(`<div class="preview-empty error-text svelte-h08x3h"> </div>`),VC=W(`<div class="preview-image svelte-h08x3h"><img class="svelte-h08x3h"/></div>`),HC=W(`<div class="preview-markdown markdown-body svelte-h08x3h"></div>`),UC=W(`<pre class="preview-text svelte-h08x3h"><code class="svelte-h08x3h"> </code></pre>`),WC=W(`<div class="preview-empty svelte-h08x3h"><span class="preview-mime svelte-h08x3h"> </span> <a class="download-link svelte-h08x3h" target="_blank" rel="noopener">Download</a></div>`),GC=W(`<div class="preview-header svelte-h08x3h"><span class="preview-filename svelte-h08x3h"> </span> <a class="preview-link svelte-h08x3h" target="_blank" rel="noopener">open</a></div> <!>`,1),KC=W(`<div class="preview-empty svelte-h08x3h">Select a file to preview</div>`),qC=W(`<div class="browser svelte-h08x3h"><div class="file-list svelte-h08x3h"><div class="breadcrumb svelte-h08x3h"><button class="crumb svelte-h08x3h">home/</button> <!></div> <!> <!> <!></div> <div class="preview svelte-h08x3h"><!></div></div>`),JC=W(`<div class="public-files svelte-h08x3h"><!></div>`);function YC(e,t){M(t,!0);let n=F(L([])),r=F(!0),i=F(``),a=F(``),o=F(null),s=F(null),c=F(!1),l=F(``),u=F(L([])),d=new Set([`text/plain`,`text/html`,`text/css`,`text/markdown`,`application/javascript`,`application/json`,`application/xml`]),f=new Set([`image/png`,`image/jpeg`,`image/gif`,`image/svg+xml`,`image/webp`]),p=P(()=>H(u).length>0?`${H(u).join(`/`)}/`:``);async function m(){I(r,!0),I(i,``),I(o,null),I(s,null);try{let e=H(u).length>0?`${H(u).join(`/`)}/`:``,r=await fetch(`/api/minds/${encodeURIComponent(t.name)}/files/${e}`);if(!r.ok)throw Error(`Failed to load directory`);I(n,await r.json(),!0)}catch(e){I(i,e instanceof Error?e.message:`Failed to load`,!0),I(n,[],!0)}finally{I(r,!1)}}Tn(()=>{t.name,H(p),m()});async function h(e){if(e.type===`directory`){I(u,[...H(u),e.name],!0);return}H(s)&&H(y)&&URL.revokeObjectURL(H(s)),I(o,e.name,!0),I(c,!0),I(s,null),I(l,``),I(a,``);try{let n=H(p)+e.name,r=await fetch(`/api/minds/${encodeURIComponent(t.name)}/files/${n}`);if(!r.ok)throw Error(`Failed to load file`);I(l,r.headers.get(`content-type`)??``,!0);let i=H(l).split(`;`)[0].trim();if(d.has(i))I(s,await r.text(),!0);else if(f.has(i)){let e=await r.blob();I(s,URL.createObjectURL(e),!0)}else I(s,null)}catch(e){I(s,null),I(a,e instanceof Error?e.message:`Failed to load file`,!0)}finally{I(c,!1)}}function g(){I(u,H(u).slice(0,-1),!0)}function _(){I(u,[],!0)}let v=P(()=>H(l).split(`;`)[0].trim()),y=P(()=>f.has(H(v))),b=P(()=>d.has(H(v))),x=P(()=>H(v)===`text/markdown`||(H(o)?.endsWith(`.md`)??!1));Tn(()=>{let e=H(s),t=H(y);return()=>{e&&t&&URL.revokeObjectURL(e)}});let S=P(()=>[...H(n)].sort((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`directory`?-1:1));var C=JC(),w=R(C),T=e=>{K(e,NC())},E=e=>{var t=PC(),n=R(t,!0);A(t),V(()=>q(n,H(i))),K(e,t)},ee=e=>{var r=qC(),i=R(r),d=R(i),f=R(d);Y(B(f,2),17,()=>H(u),ti,(e,t,n)=>{var r=FC(),i=R(r);A(r),V(()=>q(i,`${H(t)??``}/`)),U(`click`,r,()=>I(u,H(u).slice(0,n+1),!0)),K(e,r)}),A(d);var m=B(d,2),v=e=>{var t=IC();U(`click`,t,g),K(e,t)};J(m,e=>{H(u).length>0&&e(v)});var C=B(m,2);Y(C,17,()=>H(S),e=>e.name,(e,t)=>{var n=LC();let r;var i=R(n),a=R(i,!0);A(i);var s=B(i,2),c=R(s);A(s),A(n),V(()=>{r=X(n,1,`file-row svelte-h08x3h`,null,r,{active:H(o)===H(t).name}),q(a,H(t).type===`directory`?`📁`:`📄`),q(c,`${H(t).name??``}${H(t).type===`directory`?`/`:``}`)}),U(`click`,n,()=>h(H(t))),K(e,n)});var w=B(C,2),T=e=>{K(e,RC())};J(w,e=>{H(n).length===0&&e(T)}),A(i);var E=B(i,2),ee=R(E),te=e=>{var n=GC(),r=z(n),i=R(r),u=R(i);A(i);var d=B(i,2);A(r);var f=B(r,2),m=e=>{K(e,zC())},h=e=>{var t=BC(),n=R(t,!0);A(t),V(()=>q(n,H(a))),K(e,t)},g=e=>{var t=VC(),n=R(t);A(t),V(()=>{Xi(n,`src`,H(s)),Xi(n,`alt`,H(o))}),K(e,t)},_=e=>{var t=HC();ui(t,()=>Al(H(s)),!0),A(t),K(e,t)},v=e=>{var t=UC(),n=R(t),r=R(n,!0);A(n),A(t),V(()=>q(r,H(s))),K(e,t)},S=e=>{var n=WC(),r=R(n),i=R(r,!0);A(r);var a=B(r,2);A(n),V(e=>{q(i,H(l)||`unknown type`),Xi(a,`href`,`/api/minds/${e??``}/files/${H(p)??``}${H(o)??``}`)},[()=>encodeURIComponent(t.name)]),K(e,n)};J(f,e=>{H(c)?e(m):H(a)?e(h,1):H(y)&&H(s)?e(g,2):H(x)&&H(s)!==null?e(_,3):H(b)&&H(s)!==null?e(v,4):e(S,-1)}),V(e=>{q(u,`${H(p)??``}${H(o)??``}`),Xi(d,`href`,`/api/minds/${e??``}/files/${H(p)??``}${H(o)??``}`)},[()=>encodeURIComponent(t.name)]),K(e,n)},ne=e=>{K(e,KC())};J(ee,e=>{H(o)?e(te):e(ne,-1)}),A(E),A(r),U(`click`,f,_),K(e,r)};J(w,e=>{H(r)?e(T):H(i)?e(E,1):e(ee,-1)}),A(C),K(e,C),N()}Lr([`click`]);function XC(e,t,n){let r=null;function i(){r?.abort(),r=new AbortController;let i=r.signal;fetch(e,{signal:i}).then(async e=>{if(!e.ok){n?.(`Stream connection failed (${e.status})`);return}if(!e.body){n?.(`Stream has no body`);return}let r=e.body.getReader(),i=new TextDecoder,a=``;for(;;){let{done:e,value:n}=await r.read();if(e)break;a+=i.decode(n,{stream:!0});let o=a.split(`
82
- `);a=o.pop()||``;for(let e of o){if(!e.startsWith(`data: `))continue;let n=e.slice(6);n&&t(n)}}}).catch(e=>{e instanceof DOMException&&e.name===`AbortError`||n?.(e.message||`Stream error`)})}function a(){r?.abort()}return{start:i,stop:a}}function ZC(e,t){return XC(`/api/system/logs`,e,t)}var QC=W(`<button>debug</button>`),$C=W(`<button> </button>`),ew=W(`<div class="filter-sep svelte-1208idv"></div> <div class="filter-group svelte-1208idv"></div>`,1),tw=W(`<button class="pill pill-clear svelte-1208idv">clear</button>`),nw=W(`<div class="pause-bar svelte-1208idv"><span>Scroll paused</span> <button class="resume-btn svelte-1208idv">Resume</button></div>`),rw=W(`<span class="error svelte-1208idv"> </span>`),iw=W(`<span class="waiting svelte-1208idv">Waiting for logs...</span>`),aw=W(`<span class="cat svelte-1208idv"> </span>`),ow=W(`<span class="data svelte-1208idv"> </span>`),sw=W(`<div class="log-line svelte-1208idv"><span class="ts svelte-1208idv"> </span> <span class="level svelte-1208idv"> </span> <!> <span class="msg svelte-1208idv"> <!></span></div>`),cw=W(`<div class="system-logs svelte-1208idv"><div class="header svelte-1208idv"><span class="title svelte-1208idv">System Logs</span> <span class="count svelte-1208idv"><!></span></div> <div class="filter-bar svelte-1208idv"><div class="filter-group svelte-1208idv"><button>info</button> <button>warn</button> <button>error</button> <!></div> <!> <!></div> <!> <div class="log-output svelte-1208idv"><!> <!></div></div>`);function lw(e,t){M(t,!0);let n={info:`var(--text-2)`,warn:`var(--yellow)`,error:`var(--red)`,debug:`var(--text-2)`},r=F(L([])),i=F(!0),a=F(``),o,s=new Gl,c=new Gl,l=P(()=>H(r).some(e=>e.level===`debug`)),u=P(()=>[...new Set(H(r).map(e=>e.cat).filter(e=>!!e))].sort()),d=P(()=>s.size>0||c.size>0),f=P(()=>H(d)?H(r).filter(e=>!s.has(e.level)&&(!e.cat||!c.has(e.cat))):H(r));function p(e,t){e.has(t)?e.delete(t):e.add(t)}function m(){s.clear(),c.clear()}function h(e){try{let t=JSON.parse(e);H(r).push(t),H(r).length>2e3&&I(r,H(r).slice(-2e3),!0)}catch{}}Tn(()=>{I(a,``);let{start:e,stop:t}=ZC(h,e=>{I(a,e,!0)});return e(),t}),Tn(()=>{let e=H(f).length;H(i)&&o&&e>0&&(o.scrollTop=o.scrollHeight)});function g(){if(!o)return;let e=o.scrollHeight-o.scrollTop-o.clientHeight<30;I(i,e)}function _(){I(i,!0),o&&(o.scrollTop=o.scrollHeight)}function v(e){try{return new Date(e).toLocaleTimeString()}catch{return e}}function y(e){return Object.entries(e).map(([e,t])=>`${e}=${typeof t==`string`?t:JSON.stringify(t)}`).join(` `)}var b=cw(),x=R(b),S=B(R(x),2),C=R(S),w=e=>{var t=G();V(()=>q(t,`${H(f).length??``} / ${H(r).length??``} entries`)),K(e,t)},T=e=>{var t=G();V(()=>q(t,`${H(r).length??``} entries`)),K(e,t)};J(C,e=>{H(d)?e(w):e(T,-1)}),A(S),A(x);var E=B(x,2),ee=R(E),te=R(ee);let ne;var D=B(te,2);let O;var re=B(D,2);let ie;var ae=B(re,2),k=e=>{var t=QC();let n;V(e=>n=X(t,1,`pill pill-debug svelte-1208idv`,null,n,e),[()=>({inactive:s.has(`debug`)})]),U(`click`,t,()=>p(s,`debug`)),K(e,t)};J(ae,e=>{H(l)&&e(k)}),A(ee);var oe=B(ee,2),se=e=>{var t=ew(),n=B(z(t),2);Y(n,20,()=>H(u),e=>e,(e,t)=>{var n=$C();let r;var i=R(n,!0);A(n),V(e=>{r=X(n,1,`pill pill-cat svelte-1208idv`,null,r,e),q(i,t)},[()=>({inactive:c.has(t)})]),U(`click`,n,()=>p(c,t)),K(e,n)}),A(n),K(e,t)};J(oe,e=>{H(u).length>0&&e(se)});var ce=B(oe,2),le=e=>{var t=tw();U(`click`,t,m),K(e,t)};J(ce,e=>{H(d)&&e(le)}),A(E);var ue=B(E,2),de=e=>{var t=nw(),n=B(R(t),2);A(t),U(`click`,n,_),K(e,t)};J(ue,e=>{H(i)||e(de)});var fe=B(ue,2),pe=R(fe),me=e=>{var t=rw(),n=R(t,!0);A(t),V(()=>q(n,H(a))),K(e,t)},he=e=>{K(e,iw())};J(pe,e=>{H(a)?e(me):H(r).length===0&&e(he,1)}),Y(B(pe,2),17,()=>H(f),ti,(e,t)=>{var r=sw(),i=R(r),a=R(i,!0);A(i);var o=B(i,2);let s;var c=R(o,!0);A(o);var l=B(o,2),u=e=>{var n=aw(),r=R(n,!0);A(n),V(()=>q(r,H(t).cat)),K(e,n)};J(l,e=>{H(t).cat&&e(u)});var d=B(l,2),f=R(d,!0),p=B(f),m=e=>{var n=ow(),r=R(n,!0);A(n),V(e=>q(r,e),[()=>y(H(t).data)]),K(e,n)};J(p,e=>{H(t).data&&e(m)}),A(d),A(r),V(e=>{q(a,e),s=Z(o,``,s,{color:n[H(t).level]||`var(--text-2)`}),q(c,H(t).level),q(f,H(t).msg)},[()=>v(H(t).ts)]),K(e,r)}),A(fe),ua(fe,e=>o=e,()=>o),A(b),V((e,t,n)=>{ne=X(te,1,`pill pill-info svelte-1208idv`,null,ne,e),O=X(D,1,`pill pill-warn svelte-1208idv`,null,O,t),ie=X(re,1,`pill pill-error svelte-1208idv`,null,ie,n)},[()=>({inactive:s.has(`info`)}),()=>({inactive:s.has(`warn`)}),()=>({inactive:s.has(`error`)})]),U(`click`,te,()=>p(s,`info`)),U(`click`,D,()=>p(s,`warn`)),U(`click`,re,()=>p(s,`error`)),Ir(`scroll`,fe,g),K(e,b),N()}Lr([`click`]);var uw=W(`<span class="error svelte-1uhe9s"> </span>`),dw=W(`<span class="updating svelte-1uhe9s">Updating...</span>`),fw=W(`<span> </span> <button class="update-btn svelte-1uhe9s">update</button> <button class="dismiss-btn svelte-1uhe9s">&times;</button>`,1),pw=W(`<div class="banner svelte-1uhe9s"><!></div>`);function mw(e,t){M(t,!0);let n=F(null),r=F(!1),i=F(!1),a=F(null);Tn(()=>{let e=!0;async function t(){try{let t=await fetch(`/api/health`);if(!t.ok)return;let r=await t.json();e&&r.updateAvailable?I(n,{current:r.version,latest:r.latest,updateAvailable:!0},!0):e&&I(n,null)}catch(e){console.debug(`[update] poll failed:`,e)}}t();let r=setInterval(t,6e4);return()=>{e=!1,clearInterval(r)}});async function o(){I(i,!0);try{if(!(await fetch(`/api/system/update`,{method:`POST`})).ok){I(i,!1),I(a,`Update failed`),setTimeout(()=>{I(a,null)},5e3);return}let e=Date.now();for(await new Promise(e=>setTimeout(e,3e3));Date.now()-e<6e4;){try{let e=await fetch(`/api/health`);if(e.ok&&(await e.json()).version!==H(n)?.current){window.location.reload();return}}catch(e){console.debug(`[update] health check failed:`,e)}await new Promise(e=>setTimeout(e,2e3))}window.location.reload()}catch{I(i,!1),I(a,`Update failed`),setTimeout(()=>{I(a,null)},5e3)}}var s=Kr(),c=z(s),l=e=>{var t=pw(),s=R(t),c=e=>{var t=uw(),n=R(t,!0);A(t),V(()=>q(n,H(a))),K(e,t)},l=e=>{K(e,dw())},u=e=>{var t=fw(),i=z(t),a=R(i);A(i);var s=B(i,2),c=B(s,2);V(()=>q(a,`Update available: v${H(n).current??``} → v${H(n).latest??``}`)),U(`click`,s,o),U(`click`,c,()=>I(r,!0)),K(e,t)};J(s,e=>{H(a)?e(c):H(i)?e(l,1):e(u,-1)}),A(t),K(e,t)};J(c,e=>{H(n)?.updateAvailable&&!H(r)&&e(l)}),K(e,s),N()}Lr([`click`]);function hw(e){if(!e.checked)return`loading`;let t=e.hasAccount&&!e.loggedIn;return!e.setupComplete&&!t?`setup`:e.needsConnection?`connection`:e.loggedIn?`app`:`login`}function gw(e,t){let n=e instanceof Error?e.message:String(e);return/\bunauthorized\b|\bforbidden\b|\b401\b|\b403\b/i.test(n)?`Your session has expired — please log in again.`:n||t}var _w=W(`<button class="clear-btn svelte-q0li9w" type="button">×</button>`),vw=W(`<button type="button"><span class="option-empty svelte-q0li9w"> </span></button>`),yw=W(`<button type="button"> </button>`),bw=W(`<span class="dropdown-empty svelte-q0li9w">No matches</span>`),xw=W(`<div class="dropdown svelte-q0li9w"><!> <!> <!></div>`),Sw=W(`<div class="model-select svelte-q0li9w"><input type="text" class="text-input svelte-q0li9w"/> <!> <!></div>`);function Cw(e,t){M(t,!0);let n=pa(t,`value`,15,``),r=pa(t,`placeholder`,3,`Search models...`),i=pa(t,`emptyLabel`,3,`None`),a=F(``),o=F(!1),s=F(void 0),c,l=P(()=>H(o)?H(a):t.items.find(e=>e.id===n())?.label??(n()?n():``)),u=P(()=>{let e=H(a).toLowerCase().trim();return e?t.items.filter(t=>t.id.toLowerCase().includes(e)||t.label.toLowerCase().includes(e)):t.items});function d(e){let t=e.target.value;clearTimeout(c),c=setTimeout(()=>{I(a,t,!0),I(o,!0)},150)}function f(){I(a,``),I(o,!0)}function p(){setTimeout(()=>{I(o,!1),I(a,``)},200)}function m(e){n(e),I(o,!1),I(a,``),H(s)?.blur()}function h(){n(``),I(o,!1),I(a,``)}var g=Sw(),_=R(g);Ki(_),ua(_,e=>I(s,e),()=>H(s));var v=B(_,2),y=e=>{var t=_w();U(`mousedown`,t,e=>{e.preventDefault(),h()}),K(e,t)};J(v,e=>{n()&&!H(o)&&e(y)});var b=B(v,2),x=e=>{var t=xw(),r=R(t),a=e=>{var t=vw();let r;var a=R(t),o=R(a,!0);A(a),A(t),V(()=>{r=X(t,1,`dropdown-option svelte-q0li9w`,null,r,{selected:!n()}),q(o,i())}),U(`mousedown`,t,e=>{e.preventDefault(),m(``)}),K(e,t)};J(r,e=>{i()&&e(a)});var o=B(r,2);Y(o,17,()=>H(u),e=>e.id,(e,t)=>{var r=yw();let i;var a=R(r,!0);A(r),V(()=>{i=X(r,1,`dropdown-option svelte-q0li9w`,null,i,{selected:H(t).id===n()}),q(a,H(t).label)}),U(`mousedown`,r,e=>{e.preventDefault(),m(H(t).id)}),K(e,r)});var s=B(o,2),c=e=>{K(e,bw())};J(s,e=>{H(u).length===0&&e(c)}),A(t),K(e,t)};J(b,e=>{H(o)&&e(x)}),A(g),V(()=>{qi(_,H(l)),Xi(_,`placeholder`,r())}),U(`input`,_,d),Ir(`focus`,_,f),Ir(`blur`,_,p),K(e,g),N()}Lr([`input`,`mousedown`]);var ww=W(`<div class="error svelte-1x5emjp"> </div> <button class="retry-btn svelte-1x5emjp">Retry</button>`,1),Tw=W(`<div class="loading-text svelte-1x5emjp">Loading providers...</div>`),Ew=W(`<span class="model-tag svelte-1x5emjp"> <button class="model-tag-remove svelte-1x5emjp">×</button></span>`),Dw=W(`<div class="model-tags svelte-1x5emjp"></div>`),Ow=W(`<span class="dim svelte-1x5emjp">No models enabled</span>`),kw=W(`<div class="provider-card svelte-1x5emjp"><div class="provider-header svelte-1x5emjp"><span class="provider-name svelte-1x5emjp"> </span> <span class="auth-badge svelte-1x5emjp"> </span> <button class="remove-btn svelte-1x5emjp">Remove</button></div> <div class="provider-models svelte-1x5emjp"><!> <button class="add-model-btn svelte-1x5emjp">Add model</button></div></div>`),Aw=W(`<button class="add-provider-btn svelte-1x5emjp" type="button">+ Add a provider</button>`),jw=W(`<div class="model-defaults svelte-1x5emjp"><span class="label svelte-1x5emjp">Spirit model</span> <!> <div class="hint svelte-1x5emjp">The model that runs Volute's guiding spirit.</div> <span class="label mt svelte-1x5emjp">Utility model <span class="optional svelte-1x5emjp">(optional)</span></span> <!> <div class="hint svelte-1x5emjp">A smaller model for summaries and background tasks.</div></div>`),Mw=W(`<div class="error svelte-1x5emjp"> </div>`),Nw=W(`<!> <!> <!> <!>`,1),Pw=W(`<button class="btn-provider svelte-1x5emjp" type="button"> </button>`),Fw=W(`<span class="oauth-heading svelte-1x5emjp">Sign in with</span> <div class="oauth-buttons modal-oauth-buttons svelte-1x5emjp"></div>`,1),Iw=W(`<!> <button class="link-btn svelte-1x5emjp" type="button"> </button>`,1),Lw=W(`<button class="autocomplete-option svelte-1x5emjp" type="button"> </button>`),Rw=W(`<div class="autocomplete-list svelte-1x5emjp"></div>`),zw=W(`<form class="api-key-form svelte-1x5emjp"><input type="password" placeholder="API key" class="text-input svelte-1x5emjp"/> <button type="submit" class="save-btn svelte-1x5emjp"> </button></form>`),Bw=W(`<button class="link-btn svelte-1x5emjp" type="button">back to sign-in options</button>`),Vw=W(`<div class="api-key-section svelte-1x5emjp"><div class="autocomplete svelte-1x5emjp"><input type="text" class="text-input svelte-1x5emjp" placeholder="Search providers..."/> <!></div> <!></div> <!>`,1),Hw=W(`<div class="modal-body svelte-1x5emjp"><!> <!></div>`),Uw=W(`<span class="dim svelte-1x5emjp">Verifying...</span>`),Ww=W(`<div class="oauth-steps svelte-1x5emjp"><div class="oauth-step svelte-1x5emjp"><span class="step-num svelte-1x5emjp">1</span> Authorize in the opened window</div> <div class="oauth-step svelte-1x5emjp"><span class="step-num svelte-1x5emjp">2</span> Copy the redirect URL and paste below</div></div> <form class="api-key-form svelte-1x5emjp"><input type="text" placeholder="Paste the redirect URL here" class="text-input svelte-1x5emjp"/> <button type="submit" class="save-btn svelte-1x5emjp">Submit</button></form>`,1),Gw=W(`<p class="oauth-device-code svelte-1x5emjp"> </p>`),Kw=W(`<span class="dim svelte-1x5emjp">Waiting for authorization...</span>`),qw=W(`<p class="modal-text svelte-1x5emjp">Authorize at:</p> <a target="_blank" rel="noopener" class="oauth-link svelte-1x5emjp"> </a> <!> <!>`,1),Jw=W(`<span class="dim svelte-1x5emjp">Starting OAuth...</span>`),Yw=W(`<button class="model-option svelte-1x5emjp"> </button>`),Xw=W(`<div class="model-list svelte-1x5emjp"></div>`),Zw=W(`<button class="custom-add-btn svelte-1x5emjp"> </button> <span class="dim svelte-1x5emjp">For a model not yet in the catalog. Settings are inherited from a built-in model of this provider.</span>`,1),Qw=W(`<span class="dim svelte-1x5emjp">No more models available</span>`),$w=W(`<div class="modal-body svelte-1x5emjp"><input type="text" placeholder="Search or type a model id..." class="text-input svelte-1x5emjp"/> <!> <!> <!></div>`);function eT(e,t){M(t,!0);let n=pa(t,`showModelDefaults`,3,!1),r=pa(t,`spiritModel`,15,``),i=pa(t,`utilityModel`,15,``),a=F(L([])),o=F(L([])),s=F(``),c=F(!1),l=F(``),u=F(!1),d=F(`oauth`),f=F(``),p=F(``),m=F(``),h=F(``),g=F(``),_=F(``),v=F(!1),y=F(!1),b=F(!1),x=F(``),S=F(!1),C=F(``),w=F(!1),T=F(``),E=F(``),ee=P(()=>H(a).filter(e=>e.configured)),te=P(()=>H(a).filter(e=>!e.configured)),ne=P(()=>H(te).filter(e=>e.oauth)),D=P(()=>H(f).trim()?H(te).filter(e=>e.id.toLowerCase().includes(H(f).toLowerCase())):H(te)),O=P(()=>H(o).filter(e=>e.enabled)),re=P(()=>typeof location<`u`&&location.hostname!==`localhost`&&location.hostname!==`127.0.0.1`),ie={"Google Cloud Code Assist":`Google Cloud`,"ChatGPT Plus/Pro":`OpenAI`};function ae(e){let t=(e.oauthName??e.id).replace(/\s*\(.*\)/,``).trim();return ie[t]??(t||e.id)}function k(e){return H(O).filter(t=>t.provider===e)}let oe=P(()=>H(E).trim()?H(o).filter(e=>!e.enabled&&e.provider===H(T)&&e.id.toLowerCase().includes(H(E).toLowerCase())).slice(0,12):H(o).filter(e=>!e.enabled&&e.provider===H(T)).slice(0,12)),se=P(()=>H(E).trim().length>0&&!H(o).some(e=>e.provider===H(T)&&e.id.toLowerCase()===H(E).trim().toLowerCase()));function ce(e){return e===`api_key`?`API key`:e===`oauth`?`OAuth`:e===`env_var`?`env var`:``}Tn(()=>{H(O)&&t.onLoad?.(H(O))});async function le(){I(l,``);try{I(a,await Dd(),!0),I(o,await Od(),!0)}catch(e){console.warn(`[AiProviders] failed to load providers/models:`,e),I(l,gw(e,`Failed to load providers. Please try again.`),!0)}}function ue(){I(u,!1),I(h,``),I(g,``),I(_,``),I(v,!1),I(y,!1),I(b,!1),I(x,``),I(S,!1),I(C,``),I(d,`oauth`),I(f,``),I(p,``),I(m,``),I(s,``)}function de(){ue(),I(u,!0)}async function fe(){if(!H(p)||!H(m).trim())return;I(s,``),I(c,!0);let e=H(p);try{await kd(H(p),H(m).trim()),ue(),await le(),I(T,e,!0),I(E,``),I(w,!0)}catch(e){I(s,e instanceof Error?e.message:`Failed to save provider`,!0)}I(c,!1)}async function pe(e){I(c,!0),I(s,``);try{await Ad(e);let t=H(o).filter(t=>t.provider===e&&t.enabled);for(let e of t)i()===e.qualifiedId&&i(``),r()===e.qualifiedId&&r(``);await le()}catch(e){I(s,e instanceof Error?e.message:`Failed to remove provider`,!0)}I(c,!1)}async function me(e){I(s,``),I(h,e,!0),I(c,!0);try{let t=await jd(e);I(_,t.flowId,!0),I(y,!!t.needsManualCode),I(C,t.instructions??``,!0),I(v,!0),t.url&&(I(g,t.url,!0),window.open(t.url,`_blank`)),he()}catch(e){I(s,e instanceof Error?e.message:`OAuth failed`,!0),I(h,``)}I(c,!1)}async function he(){let e=0;for(;H(v);){await new Promise(e=>setTimeout(e,2500));try{let t=await Md(H(_));if(e=0,t.instructions&&!H(C)&&I(C,t.instructions,!0),t.url&&!H(g)&&I(g,t.url,!0),t.waitingForCode&&I(b,!0),t.status===`complete`){I(v,!1);let e=H(h);ue(),await le(),I(T,e,!0),I(E,``),I(w,!0);return}else if(t.status===`error`){I(v,!1),I(g,``),I(b,!1),I(S,!1),I(s,t.error??`OAuth failed`,!0),I(h,``);return}}catch{if(e++,e>=5){I(v,!1),I(g,``),I(S,!1),I(s,`Lost connection while waiting for OAuth`),I(h,``);return}}}}async function ge(){if(!(!H(x).trim()||!H(_))){I(s,``),I(S,!0);try{await Nd(H(_),H(x).trim()),I(x,``)}catch(e){I(s,e instanceof Error?e.message:`Failed to submit code`,!0),I(S,!1)}}}function _e(){let e=H(x).trim();e&&/^https?:\/\//.test(e)&&ge()}async function ve(e){let t=[...H(O).map(e=>e.qualifiedId),e];try{await Pd(t),I(o,H(o).map(t=>t.qualifiedId===e?{...t,enabled:!0}:t),!0),I(E,``),I(w,!1)}catch(e){I(s,e instanceof Error?e.message:`Failed to add model`,!0)}}async function ye(){let e=H(E).trim();if(e)try{await Fd(H(T),e),I(E,``),I(w,!1),await le()}catch(e){I(s,e instanceof Error?e.message:`Failed to add custom model`,!0)}}async function be(e){if(e.custom){try{await Id(e.provider,e.id),I(o,H(o).filter(t=>t.qualifiedId!==e.qualifiedId),!0),i()===e.qualifiedId&&i(``),r()===e.qualifiedId&&r(``)}catch(e){I(s,e instanceof Error?e.message:`Failed to remove custom model`,!0)}return}let t=H(O).map(e=>e.qualifiedId).filter(t=>t!==e.qualifiedId);try{await Pd(t),I(o,H(o).map(t=>t.qualifiedId===e.qualifiedId?{...t,enabled:!1}:t),!0),i()===e.qualifiedId&&i(``),r()===e.qualifiedId&&r(``)}catch(e){I(s,e instanceof Error?e.message:`Failed to remove model`,!0)}}var xe={load:le},Se=Nw(),Ce=z(Se),we=e=>{var t=ww(),n=z(t),r=R(n,!0);A(n);var i=B(n,2);V(()=>q(r,H(l))),U(`click`,i,()=>le()),K(e,t)},Te=e=>{K(e,Tw())},Ee=e=>{var t=Nw(),a=z(t);Y(a,17,()=>H(ee),e=>e.id,(e,t)=>{let n=P(()=>k(H(t).id));var r=kw(),i=R(r),a=R(i),o=R(a,!0);A(a);var l=B(a,2),u=R(l,!0);A(l);var d=B(l,2);A(i);var f=B(i,2),p=R(f),m=e=>{var t=Dw();Y(t,21,()=>H(n),e=>e.qualifiedId,(e,t)=>{var n=Ew(),r=R(n),i=B(r);A(n),V(()=>q(r,`${H(t).id??``} `)),U(`click`,i,()=>be(H(t))),K(e,n)}),A(t),K(e,t)},h=e=>{K(e,Ow())};J(p,e=>{H(n).length>0?e(m):e(h,-1)});var g=B(p,2);A(f),A(r),V(e=>{q(o,H(t).id),q(u,e),d.disabled=H(c)},[()=>ce(H(t).authMethod)]),U(`click`,d,()=>pe(H(t).id)),U(`click`,g,()=>{I(T,H(t).id,!0),I(E,``),I(s,``),I(w,!0)}),K(e,r)});var o=B(a,2),l=e=>{var t=Aw();U(`click`,t,de),K(e,t)};J(o,e=>{H(te).length>0&&e(l)});var d=B(o,2),f=e=>{var t=jw(),n=B(R(t),2);{let e=P(()=>H(O).map(e=>({id:e.qualifiedId,label:`${e.name} · ${e.provider}`})));Cw(n,{get items(){return H(e)},placeholder:`Search models...`,get value(){return r()},set value(e){r(e)}})}var a=B(n,6);{let e=P(()=>H(O).map(e=>({id:e.qualifiedId,label:`${e.name} · ${e.provider}`})));Cw(a,{get items(){return H(e)},placeholder:`Search models...`,emptyLabel:`None`,get value(){return i()},set value(e){i(e)}})}j(2),A(t),K(e,t)};J(d,e=>{n()&&H(O).length>0&&e(f)});var p=B(d,2),m=e=>{var t=Mw(),n=R(t,!0);A(t),V(()=>q(n,H(s))),K(e,t)};J(p,e=>{H(s)&&!H(u)&&e(m)}),K(e,t)};J(Ce,e=>{H(l)?e(we):H(a).length===0?e(Te,1):e(Ee,-1)});var De=B(Ce,2),Oe=e=>{$a(e,{onClose:()=>{H(v)||ue()},size:`420px`,title:`Add a provider`,children:(e,t)=>{var n=Hw(),r=R(n),i=e=>{var t=Iw(),n=z(t),r=e=>{var t=Fw(),n=B(z(t),2);Y(n,21,()=>H(ne),e=>e.id,(e,t)=>{var n=Pw(),r=R(n,!0);A(n),V(e=>{n.disabled=H(c),q(r,e)},[()=>ae(H(t))]),U(`click`,n,()=>me(H(t).id)),K(e,n)}),A(n),K(e,t)};J(n,e=>{H(ne).length>0&&e(r)});var i=B(n,2),a=R(i,!0);A(i),V(()=>q(a,H(ne).length>0?`or add an API key`:`Add an API key`)),U(`click`,i,()=>{I(d,`apikey`),I(f,``),I(p,``)}),K(e,t)},a=e=>{var t=Vw(),n=z(t),r=R(n),i=R(r);Ki(i);var a=B(i,2),o=e=>{var t=Rw();Y(t,21,()=>H(D),e=>e.id,(e,t)=>{var n=Lw(),r=R(n,!0);A(n),V(()=>q(r,H(t).id)),U(`click`,n,()=>{I(p,H(t).id,!0),I(f,H(t).id,!0)}),K(e,n)}),A(t),K(e,t)};J(a,e=>{!H(p)&&H(D).length>0&&e(o)}),A(r);var s=B(r,2),l=e=>{var t=zw(),n=R(t);Ki(n);var r=B(n,2),i=R(r,!0);A(r),A(t),V(e=>{r.disabled=e,q(i,H(c)?`...`:`Save`)},[()=>H(c)||!H(m).trim()]),Ir(`submit`,t,e=>{e.preventDefault(),fe()}),aa(n,()=>H(m),e=>I(m,e)),K(e,t)};J(s,e=>{H(p)&&e(l)}),A(n);var u=B(n,2),h=e=>{var t=Bw();U(`click`,t,()=>{I(d,`oauth`)}),K(e,t)};J(u,e=>{H(ne).length>0&&e(h)}),U(`input`,i,()=>{I(p,``)}),aa(i,()=>H(f),e=>I(f,e)),K(e,t)};J(r,e=>{H(d)===`oauth`?e(i):e(a,-1)});var o=B(r,2),l=e=>{var t=Mw(),n=R(t,!0);A(t),V(()=>q(n,H(s))),K(e,t)};J(o,e=>{H(s)&&e(l)}),A(n),K(e,n)},$$slots:{default:!0}})};J(De,e=>{H(u)&&!H(h)&&e(Oe)});var ke=B(De,2),Ae=e=>{{let t=P(()=>H(a).find(e=>e.id===H(h))?.oauthName??H(h));$a(e,{onClose:()=>{H(v)||ue()},size:`420px`,get title(){return`Sign in with ${H(t)??``}`},children:(e,t)=>{var n=Hw(),r=R(n),i=e=>{K(e,Uw())},a=e=>{var t=Ww(),n=B(z(t),2),r=R(n);Ki(r);var i=B(r,2);A(n),V(e=>i.disabled=e,[()=>!H(x).trim()]),Ir(`submit`,n,e=>{e.preventDefault(),ge()}),U(`input`,r,_e),aa(r,()=>H(x),e=>I(x,e)),K(e,t)},o=e=>{var t=qw(),n=B(z(t),2),r=R(n,!0);A(n);var i=B(n,2),a=e=>{var t=Gw(),n=R(t,!0);A(t),V(()=>q(n,H(C))),K(e,t)};J(i,e=>{H(C)&&e(a)});var o=B(i,2),s=e=>{K(e,Kw())};J(o,e=>{H(v)&&e(s)}),V(()=>{Xi(n,`href`,H(g)),q(r,H(g))}),K(e,t)},l=e=>{K(e,Kw())},u=e=>{K(e,Jw())};J(r,e=>{H(S)?e(i):H(g)&&(H(y)&&H(re)||H(b))?e(a,1):H(g)&&!H(y)?e(o,2):H(v)?e(l,3):H(c)&&e(u,4)});var d=B(r,2),f=e=>{var t=Mw(),n=R(t,!0);A(t),V(()=>q(n,H(s))),K(e,t)};J(d,e=>{H(s)&&e(f)}),A(n),K(e,n)},$$slots:{default:!0}})}};J(ke,e=>{H(h)&&e(Ae)});var je=B(ke,2),Me=e=>{$a(e,{onClose:()=>{I(w,!1)},size:`420px`,get title(){return`Add model — ${H(T)??``}`},children:(e,t)=>{var n=$w(),r=R(n);Ki(r);var i=B(r,2),a=e=>{var t=Xw();Y(t,21,()=>H(oe),e=>e.qualifiedId,(e,t)=>{var n=Yw(),r=R(n,!0);A(n),V(()=>q(r,H(t).id)),U(`click`,n,()=>ve(H(t).qualifiedId)),K(e,n)}),A(t),K(e,t)};J(i,e=>{H(oe).length>0&&e(a)});var o=B(i,2),c=e=>{var t=Zw(),n=z(t),r=R(n);A(n),j(2),V(e=>q(r,`Add “${e??``}” as a custom model`),[()=>H(E).trim()]),U(`click`,n,ye),K(e,t)},l=e=>{K(e,Qw())};J(o,e=>{H(se)?e(c):H(oe).length===0&&e(l,1)});var u=B(o,2),d=e=>{var t=Mw(),n=R(t,!0);A(t),V(()=>q(n,H(s))),K(e,t)};J(u,e=>{H(s)&&e(d)}),A(n),aa(r,()=>H(E),e=>I(E,e)),K(e,n)},$$slots:{default:!0}})};return J(je,e=>{H(w)&&e(Me)}),K(e,Se),N(xe)}Lr([`click`,`input`]);var tT=W(`<div></div>`),nT=W(`<div class="steps svelte-48ammf"></div>`),rT=W(`<div class="welcome svelte-48ammf"><div class="welcome-text svelte-48ammf">A platform for AI experience. Create minds with persistent memory,
83
- continuous identity, and the freedom to grow.</div> <button class="submit-btn svelte-48ammf">Get started</button></div>`),iT=W(`<div class="systems-status svelte-48ammf"><span class="systems-label svelte-48ammf">Registered as <strong class="svelte-48ammf"> </strong></span> <button type="button" class="link-btn svelte-48ammf">Disconnect</button></div>`),aT=W(`<div class="error svelte-48ammf"> </div>`),oT=W(`<div class="hint svelte-48ammf">Used for your subdomain on volute.systems.</div>`),sT=W(`<div class="systems-register"><label class="label svelte-48ammf" for="systemsSlug">System username</label> <div class="slug-row svelte-48ammf"><!> <button type="button" class="save-btn svelte-48ammf"> </button></div> <!> <button type="button" class="link-btn mt-sm svelte-48ammf">or login with an existing key</button></div>`),cT=W(`<div class="systems-login"><label class="label svelte-48ammf" for="systemsApiKey">API key</label> <div class="slug-row svelte-48ammf"><!> <button type="button" class="save-btn svelte-48ammf"> </button></div> <button type="button" class="link-btn mt-sm svelte-48ammf">back to registration</button></div>`),lT=W(`<button type="button" class="systems-btn svelte-48ammf">Register with volute.systems</button> <button type="button" class="link-btn svelte-48ammf">or login with an existing key</button>`,1),uT=W(`<div class="advanced-section svelte-48ammf"><label class="toggle-row svelte-48ammf"><input type="checkbox"/> <span>Allow access from other devices</span></label> <div class="hint svelte-48ammf">Connect from other computers on your network.</div> <label class="toggle-row svelte-48ammf"><input type="checkbox"/> <span>Start on boot</span></label> <div class="hint svelte-48ammf">Install as a service so Volute starts automatically.</div> <label class="toggle-row svelte-48ammf"><input type="checkbox"/> <span>Enable Tailscale HTTPS</span></label> <div class="hint svelte-48ammf">Serve over HTTPS using your Tailscale domain. Requires Tailscale to be running.</div></div>`),dT=W(`<button type="button" class="advanced-toggle svelte-48ammf"><span>&#9654;</span> Advanced</button> <!>`,1),fT=W(`<div class="step-title svelte-48ammf">Your system</div> <form><label class="label svelte-48ammf" for="systemName">System name</label> <!> <div class="hint svelte-48ammf">A display name for this Volute installation.</div> <label class="label mt svelte-48ammf" for="systemDescription">Description <span class="optional svelte-48ammf">(optional)</span></label> <textarea id="systemDescription" placeholder="What is this system for?" class="textarea svelte-48ammf" rows="2"></textarea> <div class="systems-section svelte-48ammf"><!> <!></div> <!> <!> <div class="button-row svelte-48ammf"><button type="button" class="back-btn svelte-48ammf">Back</button> <button type="submit" class="submit-btn flex-1 svelte-48ammf"> </button></div></form>`,1),pT=W(`<label class="label mt svelte-48ammf" for="username">Username</label> <!>`,1),mT=W(`<div class="username-preview svelte-48ammf">You'll sign in as <strong class="svelte-48ammf"> </strong> <button type="button" class="change-btn svelte-48ammf">(change)</button></div>`),hT=W(`<div class="step-title svelte-48ammf">Your account</div> <form><input type="hidden" name="username" autocomplete="username"/> <label class="label svelte-48ammf" for="displayName">Display name</label> <!> <!> <label class="label mt svelte-48ammf" for="password">Password</label> <!> <!> <div class="button-row svelte-48ammf"><button type="button" class="back-btn svelte-48ammf">Back</button> <button type="submit" class="submit-btn flex-1 svelte-48ammf"> </button></div></form>`,1),gT=W(`<div class="step-title svelte-48ammf">AI providers</div> <div class="step-desc svelte-48ammf">An AI provider is the engine your minds think with. Connect one and choose which
81
+ `)}let d=P(()=>{let e=H(i)?.timezone;if(!(!e||e===Intl.DateTimeFormat().resolvedOptions().timeZone))try{return new Intl.DateTimeFormat(`en-US`,{timeZone:e,timeZoneName:`short`}).formatToParts(new Date).find(e=>e.type===`timeZoneName`)?.value}catch{return}});function f(e){try{return new Date(e).toLocaleTimeString(void 0,{hour:`numeric`,minute:`2-digit`})}catch{return e}}let p=P(()=>{if(!H(i))return[];let e=[],t=new Map;for(let e of H(i).upcoming)t.has(e.id)||t.set(e.id,e.at);if(H(i).sleep?.sleeping){let t=H(i).sleep.scheduledWakeAt??H(i).sleep.voluntaryWakeAt;e.push({id:`sleep`,icon:`sleep`,color:l(`sleep`),times:`sleeping now`,next:t?`wake ${Mb(t)}`:``,disabled:!1,tooltip:``})}else if(H(i).sleepConfig?.enabled&&H(i).sleepConfig.schedule){let n=H(i).sleepConfig.schedule,r=t.get(`sleep`);e.push({id:`sleep`,icon:`sleep`,color:l(`sleep`),times:`${Nb(n.sleep,H(d))} \u2192 ${Nb(n.wake,H(d))}`,next:r?Mb(r):``,disabled:!1,tooltip:``})}for(let n of H(i).schedules){let r=``;n.cron?r=Nb(n.cron,H(d)):n.fireAt&&(r=f(n.fireAt));let i=t.get(n.id);e.push({id:n.id,icon:o(n.id),color:l(n.id),times:r,next:i?Mb(i):``,disabled:!n.enabled,tooltip:u(n)})}return e}),m=P(()=>{if(!H(i))return null;if(H(i).sleep?.sleeping){if(H(i).sleep.wokenByTrigger)return{icon:`sleep`,label:`Briefly awake`,color:l(`wake`),detail:`trigger · sleeps when idle`};let e=H(i).sleep.scheduledWakeAt??H(i).sleep.voluntaryWakeAt;return{icon:`sleep`,label:`Sleeping`,color:l(`sleep`),detail:e?`wake ${Mb(e)}`:`now`}}if(H(i).previous?.length>0){let e=H(i).previous[0];return{icon:o(e.id),label:e.id,color:l(e.id),detail:Mb(e.at)}}return null}),h=P(()=>{if(!H(i))return null;let e=H(i).sleep?.sleeping,t=H(i).upcoming.find(t=>!(e&&t.id===`wake`));return t?{icon:o(t.id),label:t.id,color:l(t.id),detail:Mb(t.at)}:null}),g=P(()=>H(i)&&(H(i).schedules.length>0||H(i).sleep?.sleeping||H(i).sleepConfig?.enabled));var _=Kr(),v=z(_),y=e=>{var t=Xb(),n=R(t),r=R(n),i=R(r),o=e=>{var t=Hb(),n=R(t);let r;qa(R(n),{get kind(){return H(m).icon},class:`summary-icon`}),A(n);var i=B(n,2);let a;var o=R(i,!0);A(i);var s=B(i,2),c=R(s,!0);A(s),A(t),V(()=>{r=Z(n,``,r,{color:H(m).color}),a=Z(i,``,a,{color:H(m).color}),q(o,H(m).label),q(c,H(m).detail)}),K(e,t)};J(i,e=>{H(m)&&e(o)});var c=B(i,2),l=e=>{var t=Wb(),n=z(t),r=e=>{K(e,Ub())};J(n,e=>{H(m)&&e(r)});var i=B(n,2),a=R(i);let o;qa(R(a),{get kind(){return H(h).icon},class:`summary-icon`}),A(a);var s=B(a,2);let c;var l=R(s,!0);A(s);var u=B(s,2),d=R(u,!0);A(u),A(i),V(()=>{o=Z(a,``,o,{color:H(h).color}),c=Z(s,``,c,{color:H(h).color}),q(l,H(h).label),q(d,H(h).detail)}),K(e,t)};J(c,e=>{H(h)&&e(l)});var u=B(c,2),d=e=>{var t=Gb();qa(R(t),{kind:`clock`,class:`summary-icon`}),j(2),A(t),K(e,t)};J(u,e=>{!H(m)&&!H(h)&&e(d)}),A(r);var f=B(r,2);let g;A(n);var _=B(n,2),v=e=>{var t=Yb();Y(t,21,()=>H(p),e=>e.id,(e,t)=>{var n=Jb();let r;var i=R(n),a=R(i),o=e=>{var n=Kb();let r;qa(R(n),{get kind(){return H(t).icon},class:`clock-icon`}),A(n),V(()=>r=Z(n,``,r,{color:H(t).color})),K(e,n)},c=P(()=>s(H(t).id)),l=e=>{var n=qb();let r;V(()=>r=Z(n,``,r,{background:H(t).color})),K(e,n)};J(a,e=>{H(c)?e(o):e(l,-1)});var u=B(a,2);let d;var f=R(u,!0);A(u),A(i);var p=B(i,2),m=R(p,!0);A(p);var h=B(p,2),g=R(h,!0);A(h),A(n),V(()=>{r=X(n,1,`clock-row svelte-lb23vu`,null,r,{disabled:H(t).disabled}),Xi(n,`title`,H(t).tooltip),d=Z(u,``,d,{color:H(t).color}),q(f,H(t).id),q(m,H(t).times),q(g,H(t).next)}),K(e,n)}),A(t),K(e,t)};J(_,e=>{H(a)&&e(v)}),A(t),V(()=>g=X(f,0,`expand-chevron svelte-lb23vu`,null,g,{expanded:H(a)})),U(`click`,n,()=>I(a,!H(a))),K(e,t)};J(v,e=>{H(i)&&H(g)&&e(y)}),K(e,_),N()}Lr([`click`]);var Qb=W(`<button class="floating-btn svelte-chl8f0" aria-label="Chat"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-chl8f0"><path d="M2 3h12v8H5l-3 3V3z"></path></svg></button>`),$b=W(`<button class="floating-btn svelte-chl8f0" aria-label="Expand"><svg viewBox="0 0 24 24" fill="currentColor" class="svelte-chl8f0"><path d="M6 7.414V9a1 1 0 1 1-2 0V5a1 1 0 0 1 1-1h4a1 1 0 1 1 0 2H7.414l2.293 2.293a1 1 0 0 1-1.414 1.414L6 7.414zM15 6a1 1 0 1 1 0-2h4a1 1 0 0 1 1 1v4a1 1 0 1 1-2 0V7.414l-2.293 2.293a1 1 0 0 1-1.414-1.414L16.586 6H15zM5 14a1 1 0 0 1 1 1v1.586l2.293-2.293a1 1 0 0 1 1.414 1.414L7.414 18H9a1 1 0 1 1 0 2H5a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1zm9.293 1.707a1 1 0 0 1 1.414-1.414L18 16.586V15a1 1 0 1 1 2 0v4a1 1 0 0 1-1 1h-4a1 1 0 1 1 0-2h1.586l-2.293-2.293z"></path></svg></button>`),ex=W(`<div class="floating-btns svelte-chl8f0"><!> <!></div>`),tx=W(`<img alt="" class="profile-avatar svelte-chl8f0" loading="lazy" decoding="async"/>`),nx=W(`<p class="profile-description svelte-chl8f0"> </p>`),rx=W(`<span> </span>`),ix=W(`<div class="mind-panel svelte-chl8f0"><!> <div class="panel-body svelte-chl8f0"><div class="profile-section svelte-chl8f0"><!> <span class="profile-name svelte-chl8f0"><span></span> </span> <!> <!></div> <!> <div class="history-section svelte-chl8f0"><!></div></div></div>`);function ax(e,t){M(t,!0);let n=P(()=>Zf.minds.find(e=>e.name===t.mind.name)??t.mind),r=P(()=>Qf.has(H(n).name));function i(e){return e<1e3?`~${e} tokens`:`~${(e/1e3).toFixed(1).replace(/\.0$/,``)}k tokens`}let a=P(()=>{let e=H(n).memory;return e?e.overHardCap?{over:!0,suffix:` — over load cap`,tip:`Over the load cap (${i(e.hardCapTokens)}) — only the head of MEMORY.md is loaded`}:e.overBudget?{over:!0,suffix:` — over budget`,tip:`Over the recommended budget (${i(e.softBudgetTokens)}) — consolidation recommended`}:{over:!1,suffix:``,tip:`MEMORY.md is loaded into every request`}:null});var o=ix(),s=R(o),c=e=>{var n=ex(),r=R(n),i=e=>{var n=Qb();Si(n,(e,t)=>Il?.(e,t),()=>({text:`Chat`,position:`right`})),U(`click`,n,function(...e){t.onChat?.apply(this,e)}),K(e,n)};J(r,e=>{t.onChat&&e(i)});var a=B(r,2),o=e=>{var n=$b();Si(n,(e,t)=>Il?.(e,t),()=>({text:`Expand`,position:`right`})),U(`click`,n,function(...e){t.onExpand?.apply(this,e)}),K(e,n)};J(a,e=>{t.onExpand&&e(o)}),A(n),K(e,n)};J(s,e=>{(t.onChat||t.onExpand)&&e(c)});var l=B(s,2),u=R(l),d=R(u),f=e=>{var t=tx();V(e=>Xi(t,`src`,e),[()=>`/api/minds/${encodeURIComponent(H(n).name)}/avatar`]),K(e,t)};J(d,e=>{H(n).avatar&&e(f)});var p=B(d,2),m=R(p);let h,g;var _=B(m);A(p);var v=B(p,2),y=e=>{var t=nx(),r=R(t,!0);A(t),V(()=>q(r,H(n).description)),K(e,t)};J(v,e=>{H(n).description&&e(y)});var b=B(v,2),x=e=>{var t=rx();let r;var o=R(t);A(t),Si(t,(e,t)=>Il?.(e,t),()=>({text:H(a).tip,position:`bottom`})),V(e=>{r=X(t,1,`memory-size svelte-chl8f0`,null,r,{"over-budget":H(a).over}),q(o,`Memory ${e??``}${H(a).suffix??``}`)},[()=>i(H(n).memory.estTokens)]),K(e,t)};J(b,e=>{H(n).memory&&H(a)&&e(x)}),A(u);var S=B(u,2);Zb(S,{get name(){return H(n).name}});var C=B(S,2);xy(R(C),{get name(){return H(n).name},get mindStatus(){return H(n).status}}),A(C),A(l),A(o),V(e=>{h=X(m,1,`status-dot svelte-chl8f0`,null,h,{iridescent:H(r)}),g=Z(m,``,g,e),q(_,` ${H(n).displayName??H(n).name??``}`)},[()=>({background:H(r)?void 0:Ll(H(n))})]),K(e,o),N()}Lr([`click`]);var ox=W(`<span class="template-badge svelte-ei9umb"> </span>`),sx=W(`<!> <button class="setting-hint-btn svelte-ei9umb">back</button>`,1),cx=W(`<option> </option>`),lx=W(`<option>--</option> <!> <option>other...</option>`,1),ux=W(`<div class="slider-control svelte-ei9umb"><input type="range" class="thinking-slider svelte-ei9umb" min="0" max="5" step="1"/> <span> </span></div>`),dx=W(`<!> <span class="setting-hint svelte-ei9umb">per</span> <!> <span class="setting-hint svelte-ei9umb">min</span>`,1),fx=W(`<!> <span class="setting-hint svelte-ei9umb">tokens</span>`,1),px=W(`<!> <!>`,1),mx=W(`<!> <!> <!> <!> <!> <!>`,1);function hx(e,t){M(t,!0);let n=pa(t,`hideBudget`,3,!1),r=F(null),i=F(L([])),a=F(``),o=F(0),s=F(``),c=F(``),l=F(``),u=F(!1),d=F(``),f=F(null),p=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`],m={claude:[`anthropic`],codex:[`openai-codex`],pi:[]},h=P(()=>t.template?m[t.template]??[]:[]),g=P(()=>H(i).filter(e=>e.enabled).filter(e=>H(h).length===0||H(h).includes(e.provider)));function _(e){return e?H(g).some(t=>t.id===e)?e:H(g).find(t=>t.id.startsWith(e)||e.startsWith(t.id))?.id??e:``}Tn(()=>{if(H(g).length>0&&H(a)){let e=_(H(a));e!==H(a)&&I(a,e,!0)}});let v=P(()=>H(a)!==``&&!H(g).some(e=>e.id===H(a))),y=P(()=>p[H(o)]);function b(e){I(a,e.config.model??``,!0);let t=e.config.thinkingLevel??`off`;I(o,Math.max(0,p.indexOf(t)),!0),I(s,e.config.tokenBudget==null?``:String(e.config.tokenBudget),!0),I(c,e.config.tokenBudgetPeriodMinutes==null?``:String(e.config.tokenBudgetPeriodMinutes),!0),I(l,e.config.compaction?.maxContextTokens==null?``:String(e.config.compaction.maxContextTokens),!0),I(u,e.config.unescapeNewlines??!1,!0)}function x(e){if(!e.trim())return null;let t=parseInt(e,10);return Number.isNaN(t)?null:t}async function S(e,n){I(f,e,!0),I(d,``);try{await n();let e=await Gu(t.name);I(r,e,!0),b(e)}catch(e){I(d,e instanceof Error?e.message:`Save failed`,!0)}I(f,null)}function C(e){I(a,e,!0),e&&S(`model`,()=>Ku(t.name,{model:e}))}function w(){S(`thinking`,()=>Ku(t.name,{thinkingLevel:p[H(o)]}))}function T(){S(`budget`,()=>Ku(t.name,{tokenBudget:x(H(s))}))}function E(){S(`period`,()=>Ku(t.name,{tokenBudgetPeriodMinutes:x(H(c))}))}function ee(){S(`compaction`,()=>Ku(t.name,{compaction:{maxContextTokens:x(H(l))}}))}function te(){I(u,!H(u)),S(`unescapeNewlines`,()=>Ku(t.name,{unescapeNewlines:H(u)}))}function ne(e){let t=e.target.value;t===`__other__`?I(a,``):C(t)}function D(e){I(o,parseInt(e.target.value,10),!0),w()}ma(async()=>{try{let[e,n]=await Promise.all([Gu(t.name),Od()]);I(r,e,!0),I(i,n,!0),b(e)}catch(e){I(d,e instanceof Error?e.message:`Failed to load config`,!0)}});var O=Kr(),re=z(O),ie=e=>{var r=mx(),i=z(r),f=e=>{co(e,{label:`Template`,children:(e,n)=>{var r=ox(),i=R(r,!0);A(r),V(()=>q(i,t.template)),K(e,r)},$$slots:{default:!0}})};J(i,e=>{t.template&&e(f)});var p=B(i,2);co(p,{label:`Model`,children:(e,t)=>{var n=Kr(),r=z(n),i=e=>{var t=sx(),n=z(t);Xa(n,{type:`text`,onblur:()=>C(H(a)),placeholder:`Model ID`,get value(){return H(a)},set value(e){I(a,e,!0)}}),U(`click`,B(n,2),()=>{I(a,H(g)[0]?.id??``,!0),H(a)&&C(H(a))}),K(e,t)},o=e=>{oo(e,{get value(){return H(a)},onchange:ne,children:(e,t)=>{var n=lx(),r=z(n);r.value=r.__value=``;var i=B(r,2);Y(i,17,()=>H(g),e=>e.id,(e,t)=>{var n=cx(),r=R(n,!0);A(n);var i={};V(()=>{q(r,H(t).name),i!==(i=H(t).id)&&(n.value=(n.__value=H(t).id)??``)}),K(e,n)});var a=B(i,2);a.value=a.__value=`__other__`,K(e,n)},$$slots:{default:!0}})};J(r,e=>{H(v)?e(i):e(o,-1)}),K(e,n)},$$slots:{default:!0}});var m=B(p,2);co(m,{label:`Thinking`,children:(e,t)=>{var n=ux(),r=R(n);Ki(r);var i=B(r,2);let a;var s=R(i,!0);A(i),A(n),V(()=>{qi(r,H(o)),a=X(i,1,`slider-label svelte-ei9umb`,null,a,{off:H(o)===0}),q(s,H(y))}),U(`change`,r,D),K(e,n)},$$slots:{default:!0}});var h=B(m,2),_=e=>{var t=px(),n=z(t);co(n,{label:`Budget`,children:(e,t)=>{var n=dx(),r=z(n);Xa(r,{type:`number`,width:`80px`,onblur:T,placeholder:`tokens`,get value(){return H(s)},set value(e){I(s,e,!0)}}),Xa(B(r,4),{type:`number`,width:`80px`,onblur:E,placeholder:`min`,get value(){return H(c)},set value(e){I(c,e,!0)}}),j(2),K(e,n)},$$slots:{default:!0}}),co(B(n,2),{label:`Context`,children:(e,t)=>{var n=fx();Xa(z(n),{type:`number`,width:`80px`,onblur:ee,placeholder:`150000`,get value(){return H(l)},set value(e){I(l,e,!0)}}),j(2),K(e,n)},$$slots:{default:!0}}),K(e,t)};J(h,e=>{n()||e(_)});var b=B(h,2);co(b,{label:`Fix newlines`,children:(e,t)=>{Co(e,{get checked(){return H(u)},onchange:te,label:`Unescape \\\\n in messages`})},$$slots:{default:!0}}),Ca(B(b,2),{get message(){return H(d)}}),K(e,r)};J(re,e=>{H(r)&&e(ie)}),K(e,O),N()}Lr([`click`,`change`]);var gx=W(`<div class="env-add-row svelte-1hrpqbw"><!> <!> <!> <!></div>`),_x=W(`<span class="env-key svelte-1hrpqbw"> </span> <!> <!> <!>`,1),vx=W(`<span class="env-source svelte-1hrpqbw">shared</span>`),yx=W(`<span class="env-key svelte-1hrpqbw"> <!></span> <span><!></span> <!> <!> <!>`,1),bx=W(`<div class="env-row svelte-1hrpqbw"><!></div>`),xx=W(`<div class="env-list svelte-1hrpqbw"></div>`),Sx=W(`<!> <!> <!>`,1);function Cx(e,t){M(t,!0);let n=F(null),r=F(``),i=F(null),a=new Gl,o=F(!1),s=F(``),c=F(``),l=F(null),u=F(``),d=P(()=>{if(!H(n))return[];let e=[];for(let[t,r]of Object.entries(H(n).shared))e.push({key:t,value:r,source:`shared`});for(let[t,r]of Object.entries(H(n).mind)){let n=e.findIndex(e=>e.key===t);n>=0?e[n]={key:t,value:r,source:`mind`}:e.push({key:t,value:r,source:`mind`})}return e.sort((e,t)=>e.key.localeCompare(t.key))});async function f(){try{I(n,await qu(t.name),!0),I(r,``)}catch(e){I(r,e instanceof Error?e.message:`Failed to load environment`,!0)}}ma(()=>{f()});function p(e){a.has(e)?a.delete(e):a.add(e)}function m(e,t){I(l,e,!0),I(u,t,!0)}async function h(){if(H(l)){I(i,`env:${H(l)}`),I(r,``);try{await Ju(t.name,H(l),H(u)),I(n,await qu(t.name),!0),I(l,null),I(u,``)}catch(e){I(r,e instanceof Error?e.message:`Failed to save`,!0)}I(i,null)}}async function g(e,a){I(i,`env:${e}`),I(r,``);try{a===`shared`?await Xu(e):await Yu(t.name,e),I(n,await qu(t.name),!0)}catch(e){I(r,e instanceof Error?e.message:`Failed to delete`,!0)}I(i,null)}async function _(){if(H(s).trim()){I(i,`env:add`),I(r,``);try{await Ju(t.name,H(s).trim(),H(c)),I(n,await qu(t.name),!0),I(s,``),I(c,``),I(o,!1)}catch(e){I(r,e instanceof Error?e.message:`Failed to add`,!0)}I(i,null)}}function v(e,t){e.key===`Enter`&&t()}uo(e,{title:`Environment Variables`,action:e=>{_a(e,{variant:`primary`,onclick:()=>I(o,!0),children:(e,t)=>{j(),K(e,G(`Add`))},$$slots:{default:!0}})},children:(e,t)=>{var n=Sx(),f=z(n);Ca(f,{get message(){return H(r)}});var y=B(f,2),b=e=>{var t=gx(),n=R(t);Xa(n,{variant:`mono`,type:`text`,width:`120px`,placeholder:`KEY`,onkeydown:e=>v(e,_),get value(){return H(s)},set value(e){I(s,e,!0)}});var r=B(n,2);Xa(r,{variant:`mono`,type:`text`,style:`flex:1`,placeholder:`value`,onkeydown:e=>v(e,_),get value(){return H(c)},set value(e){I(c,e,!0)}});var a=B(r,2);{let e=P(()=>H(i)!==null);_a(a,{variant:`primary`,onclick:_,get disabled(){return H(e)},children:(e,t)=>{j();var n=G();V(()=>q(n,H(i)===`env:add`?`...`:`Add`)),K(e,n)},$$slots:{default:!0}})}_a(B(a,2),{variant:`secondary`,onclick:()=>I(o,!1),children:(e,t)=>{j(),K(e,G(`Cancel`))},$$slots:{default:!0}}),A(t),K(e,t)};J(y,e=>{H(o)&&e(b)});var x=B(y,2),S=e=>{xa(e,{message:`No environment variables set.`})},C=e=>{var t=xx();Y(t,21,()=>H(d),e=>e.key,(e,t)=>{var n=bx(),r=R(n),o=e=>{var n=_x(),r=z(n),a=R(r,!0);A(r);var o=B(r,2);Xa(o,{variant:`mono`,type:`text`,style:`flex:1`,onkeydown:e=>v(e,h),get value(){return H(u)},set value(e){I(u,e,!0)}});var s=B(o,2);{let e=P(()=>H(i)!==null);_a(s,{variant:`primary`,onclick:h,get disabled(){return H(e)},children:(e,n)=>{j();var r=G();V(()=>q(r,H(i)===`env:${H(t).key}`?`...`:`Save`)),K(e,r)},$$slots:{default:!0}})}_a(B(s,2),{variant:`secondary`,onclick:()=>I(l,null),children:(e,t)=>{j(),K(e,G(`Cancel`))},$$slots:{default:!0}}),V(()=>q(a,H(t).key)),K(e,n)},s=e=>{var n=yx(),r=z(n),o=R(r),s=B(o),c=e=>{K(e,vx())};J(s,e=>{H(t).source===`shared`&&e(c)}),A(r);var l=B(r,2);let u;var d=R(l),f=e=>{var n=G();V(()=>q(n,H(t).value)),K(e,n)},h=P(()=>a.has(H(t).key)),_=e=>{K(e,G(`••••••••`))};J(d,e=>{H(h)?e(f):e(_,-1)}),A(l);var v=B(l,2);_a(v,{variant:`icon`,onclick:()=>p(H(t).key),title:`Toggle visibility`,children:(e,n)=>{j();var r=G();V(e=>q(r,e),[()=>a.has(H(t).key)?`Hide`:`Show`]),K(e,r)},$$slots:{default:!0}});var y=B(v,2),b=e=>{_a(e,{variant:`icon`,onclick:()=>m(H(t).key,H(t).value),title:`Edit`,children:(e,t)=>{j(),K(e,G(`Edit`))},$$slots:{default:!0}})};J(y,e=>{H(t).source===`mind`&&e(b)});var x=B(y,2);{let e=P(()=>H(i)!==null);_a(x,{variant:`icon`,onclick:()=>g(H(t).key,H(t).source),get disabled(){return H(e)},title:`Delete`,children:(e,n)=>{j();var r=G();V(()=>q(r,H(i)===`env:${H(t).key}`?`...`:`Del`)),K(e,r)},$$slots:{default:!0}})}V(e=>{q(o,`${H(t).key??``} `),u=X(l,1,`env-value svelte-1hrpqbw`,null,u,e)},[()=>({masked:!a.has(H(t).key)})]),K(e,n)};J(r,e=>{H(l)===H(t).key?e(o):e(s,-1)}),A(n),K(e,n)}),A(t),K(e,t)};J(x,e=>{H(d).length===0?e(S):e(C,-1)}),K(e,n)},$$slots:{action:!0,default:!0}}),N()}function wx(e,t){Cx(e,{get name(){return t.name}})}function Tx(){let e=F(null),t=null;function n(n){t&&clearTimeout(t),I(e,n,!0),t=setTimeout(()=>{I(e,null),t=null},1500)}return{get savedField(){return H(e)},showSaved:n}}var Ex=W(`<img alt="" class="avatar-img svelte-1ezxk1u" loading="lazy" decoding="async"/>`),Dx=W(`<div class="avatar-placeholder svelte-1ezxk1u">?</div>`),Ox=W(`<span class="saved-indicator svelte-1ezxk1u">Saved</span>`),kx=W(`<div class="profile-fields svelte-1ezxk1u"><div class="field-row svelte-1ezxk1u"><span class="field-label svelte-1ezxk1u">Avatar</span> <button type="button" class="avatar-wrapper svelte-1ezxk1u"><!> <div class="avatar-overlay svelte-1ezxk1u">Change</div> <input type="file" accept="image/*" hidden="" class="svelte-1ezxk1u"/></button></div> <div class="field-row svelte-1ezxk1u"><label class="field-label svelte-1ezxk1u" for="profile-display-name">Display name</label> <div class="field-input-wrap svelte-1ezxk1u"><input id="profile-display-name" type="text" class="svelte-1ezxk1u"/> <!></div></div> <div class="field-row svelte-1ezxk1u"><label class="field-label svelte-1ezxk1u" for="profile-description">Description</label> <div class="field-input-wrap svelte-1ezxk1u"><textarea id="profile-description" rows="2" placeholder="A short description" class="svelte-1ezxk1u"></textarea> <!></div></div></div>`);function Ax(e,t){M(t,!0);let n=F(``),r=F(``),i=F(null),{savedField:a,showSaved:o}=Tx();Tn(()=>{I(n,t.mind.displayName??``,!0),I(r,t.mind.description??``,!0)});async function s(e){let n=e.target,r=n.files?.[0];r&&(await ff(t.mind.name,r),Zf.minds=await vu(),t.onUpdated(),n.value=``)}async function c(){let e=H(n).trim();e!==(t.mind.displayName??``)&&(await df(t.mind.name,{displayName:e}),o(`displayName`),t.onUpdated())}async function l(){let e=H(r).trim();e!==(t.mind.description??``)&&(await df(t.mind.name,{description:e}),o(`description`),t.onUpdated())}uo(e,{title:`Profile`,subtitle:`Avatar, display name, and description`,children:(e,o)=>{var u=kx(),d=R(u),f=B(R(d),2),p=R(f),m=e=>{var n=Ex();V(e=>Xi(n,`src`,e),[()=>`/api/minds/${encodeURIComponent(t.mind.name)}/avatar`]),K(e,n)},h=e=>{K(e,Dx())};J(p,e=>{t.mind.avatar?e(m):e(h,-1)});var g=B(p,4);ua(g,e=>I(i,e),()=>H(i)),A(f),A(d);var _=B(d,2),v=B(R(_),2),y=R(v);Ki(y);var b=B(y,2),x=e=>{K(e,Ox())};J(b,e=>{a===`displayName`&&e(x)}),A(v),A(_);var S=B(_,2),C=B(R(S),2),w=R(C);hn(w);var T=B(w,2),E=e=>{K(e,Ox())};J(T,e=>{a===`description`&&e(E)}),A(C),A(S),A(u),V(()=>Xi(y,`placeholder`,t.mind.name)),U(`click`,f,()=>H(i)?.click()),U(`change`,g,s),Ir(`blur`,y,c),aa(y,()=>H(n),e=>I(n,e)),Ir(`blur`,w,l),aa(w,()=>H(r),e=>I(r,e)),K(e,u)},$$slots:{default:!0}}),N()}Lr([`click`,`change`]);var jx=W(`<div class="cron-preview svelte-1u04gr6"> </div>`),Mx=W(`<div class="sleep-summary svelte-1u04gr6"><span class="sleep-desc svelte-1u04gr6">Custom schedule</span> <!></div> <div class="cron-row svelte-1u04gr6"><span class="cron-label svelte-1u04gr6">Sleep at</span> <!></div> <!> <div class="cron-row svelte-1u04gr6"><span class="cron-label svelte-1u04gr6">Wake at</span> <!></div> <!>`,1),Nx=W(`<div class="sleep-summary svelte-1u04gr6"><span class="sleep-desc svelte-1u04gr6"> </span> <!></div> <!> <!>`,1),Px=W(`<!> <div class="wake-triggers svelte-1u04gr6"><div class="subsection-header small svelte-1u04gr6">What wakes the mind early</div> <div class="trigger-row svelte-1u04gr6"><!></div> <div class="trigger-row svelte-1u04gr6"><!></div> <div class="trigger-row svelte-1u04gr6"><span class="trigger-text svelte-1u04gr6">Channels</span> <!></div> <div class="trigger-row svelte-1u04gr6"><span class="trigger-text svelte-1u04gr6">Senders</span> <!></div></div>`,1),Fx=W(`<option>Every few hours</option> <option>Daily at a time</option> <option>Custom cron</option>`,1),Ix=W(`<div class="form-row svelte-1u04gr6"><span class="form-label svelte-1u04gr6"></span> <span class="form-hint svelte-1u04gr6">Every</span> <!> <span class="form-hint svelte-1u04gr6">hours</span></div>`),Lx=W(`<div class="form-row svelte-1u04gr6"><span class="form-label svelte-1u04gr6"></span> <span class="form-hint svelte-1u04gr6">At</span> <!></div>`),Rx=W(`<div class="form-row svelte-1u04gr6"><span class="form-label svelte-1u04gr6"></span> <!></div>`),zx=W(`<option>Skip it</option> <option>Save for when awake</option> <option>Wake up for it</option>`,1),Bx=W(`<div class="schedule-form svelte-1u04gr6"><div class="form-row svelte-1u04gr6"><span class="form-label svelte-1u04gr6">Name</span> <!></div> <div class="form-row svelte-1u04gr6"><span class="form-label svelte-1u04gr6">Frequency</span> <!></div> <!> <div class="form-row svelte-1u04gr6"><span class="form-label svelte-1u04gr6">Message</span> <textarea class="message-input svelte-1u04gr6" rows="2" placeholder="What to tell the mind — several lines rotate at random"></textarea></div> <div class="form-row svelte-1u04gr6"><span class="form-label svelte-1u04gr6">If sleeping</span> <!></div> <div class="form-actions svelte-1u04gr6"><!> <!></div></div>`),Vx=W(`<div class="schedule-card editing svelte-1u04gr6"><div class="form-row svelte-1u04gr6"><span class="form-label svelte-1u04gr6">Frequency</span> <!></div> <!> <div class="form-row svelte-1u04gr6"><span class="form-label svelte-1u04gr6">Message</span> <textarea class="message-input svelte-1u04gr6" rows="2" placeholder="What to tell the mind — several lines rotate at random"></textarea></div> <div class="form-row svelte-1u04gr6"><span class="form-label svelte-1u04gr6">If sleeping</span> <!></div> <div class="form-actions svelte-1u04gr6"><!> <!></div></div>`),Hx=W(`<div class="schedule-message svelte-1u04gr6"> </div>`),Ux=W(`<div><div class="schedule-top svelte-1u04gr6"><span class="schedule-name svelte-1u04gr6"> </span> <span class="schedule-freq svelte-1u04gr6"><!></span> <div class="schedule-actions svelte-1u04gr6"><!> <!> <!></div></div> <!></div>`),Wx=W(`<div class="schedule-list svelte-1u04gr6"></div>`),Gx=W(`<!> <div class="subsection svelte-1u04gr6"><div class="subsection-header svelte-1u04gr6"><span>Sleep</span> <!></div> <!></div> <div class="subsection svelte-1u04gr6"><div class="subsection-header svelte-1u04gr6"><span>Schedules</span> <!></div> <!> <!></div>`,1);function Kx(e,t){M(t,!0);let n=F(null),r=F(L([])),i=F(``),a=F(!0),o=F(0),s=F(0),c=F(8),l=F(0),u=F(!1),d=F(``),f=F(``),p=F(L(nf.mentions)),m=F(L(nf.dms)),h=F(``),g=F(``),_=F(!1),v=F(``),y=F(`daily`),b=F(4),x=F(12),S=F(0),C=F(``),w=F(``),T=F(`skip`),E=F(null),ee=F(`cron`),te=F(4),ne=F(12),D=F(0),O=F(``),re=F(``),ie=F(`skip`),ae=F(!0),k=F(null);function oe(e){I(n,e,!0),I(d,e.schedule?.sleep??``,!0),I(f,e.schedule?.wake??``,!0);let t=Ib(H(d)),r=Ib(H(f));t&&r?(I(o,t.hour,!0),I(s,t.minute,!0),I(c,r.hour,!0),I(l,r.minute,!0),I(u,!1)):(H(d)||H(f))&&I(u,!0),I(p,e.wakeTriggers?.mentions??nf.mentions,!0),I(m,e.wakeTriggers?.dms??nf.dms,!0),I(h,(e.wakeTriggers?.channels??[]).join(`, `),!0),I(g,(e.wakeTriggers?.senders??[]).join(`, `),!0)}async function se(){try{let[e,n]=await Promise.all([rf(t.name),of(t.name)]);oe(e),I(r,n,!0),I(i,``)}catch{I(i,`Failed to load configuration`)}I(a,!1)}ma(()=>{se()});async function ce(){if(!H(n))return;let e=!H(n).enabled;I(k,`sleep-toggle`);try{await af(t.name,{enabled:e}),I(n,{...H(n),enabled:e},!0),I(i,``)}catch(e){I(i,e instanceof Error?e.message:`Failed to update`,!0)}I(k,null)}async function le(){let e=H(u)?H(d):Lb(H(o),H(s)),r=H(u)?H(f):Lb(H(c),H(l));I(k,`sleep-cron`);try{await af(t.name,{schedule:{sleep:e,wake:r}}),H(n)&&I(n,{...H(n),schedule:{sleep:e,wake:r}},!0),I(d,e,!0),I(f,r,!0),I(i,``)}catch(e){I(i,e instanceof Error?e.message:`Failed to update`,!0)}I(k,null)}async function ue(){I(k,`wake-triggers`);try{let e=H(h).split(`,`).map(e=>e.trim()).filter(Boolean),r=H(g).split(`,`).map(e=>e.trim()).filter(Boolean);await af(t.name,{wakeTriggers:{mentions:H(p),dms:H(m),channels:e.length?e:void 0,senders:r.length?r:void 0}}),H(n)&&I(n,{...H(n),wakeTriggers:{mentions:H(p),dms:H(m),channels:e,senders:r}},!0),I(i,``)}catch(e){I(i,e instanceof Error?e.message:`Failed to update`,!0)}I(k,null)}async function de(e){I(k,`sched:${e.id}`);try{await cf(t.name,e.id,{enabled:!e.enabled}),I(r,H(r).map(t=>t.id===e.id?{...t,enabled:!t.enabled}:t),!0),I(i,``)}catch(e){I(i,e instanceof Error?e.message:`Failed to update`,!0)}I(k,null)}function fe(e){I(E,e.id,!0);let t=e.cron?Rb(e.cron):{type:`daily`};I(ee,t.type,!0),I(te,t.hours??4,!0),I(ne,t.hour??12,!0),I(D,t.minute??0,!0),I(O,e.cron??``,!0),I(re,Bb(e)||(e.script??``),!0),I(ie,e.whileSleeping??`skip`,!0),I(ae,e.enabled,!0)}async function pe(){if(!H(E))return;let e=zb(H(ee),{hours:H(te),hour:H(ne),minute:H(D),cron:H(O)});I(k,`sched:${H(E)}`);let n=Vb(H(re));try{await cf(t.name,H(E),{cron:e||void 0,...n,whileSleeping:H(ie),enabled:H(ae)}),I(r,H(r).map(t=>t.id===H(E)?{...t,cron:e,message:void 0,messages:void 0,...n,whileSleeping:H(ie),enabled:H(ae)}:t),!0),I(E,null),I(i,``)}catch(e){I(i,e instanceof Error?e.message:`Failed to save`,!0)}I(k,null)}async function me(){if(!H(v).trim())return;let e=zb(H(y),{hours:H(b),hour:H(x),minute:H(S),cron:H(C)});I(k,`sched:add`);try{await sf(t.name,{id:H(v).trim(),cron:e||void 0,...Vb(H(w)),whileSleeping:H(T),enabled:!0}),I(r,await of(t.name),!0),I(v,``),I(y,`daily`),I(b,4),I(x,12),I(S,0),I(C,``),I(w,``),I(T,`skip`),I(_,!1),I(i,``)}catch(e){I(i,e instanceof Error?e.message:`Failed to add`,!0)}I(k,null)}async function he(e){I(k,`sched:${e}`);try{await lf(t.name,e),I(r,H(r).filter(t=>t.id!==e),!0),I(i,``)}catch(e){I(i,e instanceof Error?e.message:`Failed to delete`,!0)}I(k,null)}var ge=Gx(),_e=z(ge);Ca(_e,{get message(){return H(i)}});var ve=B(_e,2),ye=R(ve),be=B(R(ye),2);{let e=P(()=>H(n)?.enabled??!1),t=P(()=>H(n)?.enabled?`On`:`Off`);Co(be,{get checked(){return H(e)},onchange:ce,get label(){return H(t)}})}A(ye);var xe=B(ye,2),Se=e=>{var t=Px(),n=z(t),r=e=>{var t=Mx(),n=z(t);_a(B(R(n),2),{variant:`text`,size:`sm`,onclick:()=>{I(u,!1),le()},children:(e,t)=>{j(),K(e,G(`Use time picker`))},$$slots:{default:!0}}),A(n);var r=B(n,2);Xa(B(R(r),2),{variant:`mono`,style:`flex:1`,onblur:le,placeholder:`0 0 * * *`,get value(){return H(d)},set value(e){I(d,e,!0)}}),A(r);var i=B(r,2),a=e=>{var t=jx(),n=R(t,!0);A(t),V(e=>q(n,e),[()=>Nb(H(d))]),K(e,t)};J(i,e=>{H(d)&&e(a)});var o=B(i,2);Xa(B(R(o),2),{variant:`mono`,style:`flex:1`,onblur:le,placeholder:`0 8 * * *`,get value(){return H(f)},set value(e){I(f,e,!0)}}),A(o);var s=B(o,2),c=e=>{var t=jx(),n=R(t,!0);A(t),V(e=>q(n,e),[()=>Nb(H(f))]),K(e,t)};J(s,e=>{H(f)&&e(c)}),K(e,t)},i=e=>{var t=Nx(),n=z(t),r=R(n),i=R(r);A(r),_a(B(r,2),{variant:`text`,size:`sm`,onclick:()=>{I(u,!0),I(d,Lb(H(o),H(s)),!0),I(f,Lb(H(c),H(l)),!0)},children:(e,t)=>{j(),K(e,G(`Custom`))},$$slots:{default:!0}}),A(n);var a=B(n,2);bo(a,{label:`Sleep at`,onchange:le,get hour(){return H(o)},set hour(e){I(o,e,!0)},get minute(){return H(s)},set minute(e){I(s,e,!0)}}),bo(B(a,2),{label:`Wake at`,onchange:le,get hour(){return H(c)},set hour(e){I(c,e,!0)},get minute(){return H(l)},set minute(e){I(l,e,!0)}}),V((e,t)=>q(i,`Sleeps at ${e??``}, wakes at ${t??``}`),[()=>Pb(H(o),H(s)),()=>Pb(H(c),H(l))]),K(e,t)};J(n,e=>{H(u)?e(r):e(i,-1)});var a=B(n,2),_=B(R(a),2);Co(R(_),{get checked(){return H(p)},onchange:()=>{I(p,!H(p)),ue()},label:`When mentioned`}),A(_);var v=B(_,2);Co(R(v),{get checked(){return H(m)},onchange:()=>{I(m,!H(m)),ue()},label:`Direct messages`}),A(v);var y=B(v,2);Xa(B(R(y),2),{type:`text`,style:`flex:1`,placeholder:`channel1, channel2`,onblur:ue,get value(){return H(h)},set value(e){I(h,e,!0)}}),A(y);var b=B(y,2);Xa(B(R(b),2),{type:`text`,style:`flex:1`,placeholder:`user1, user2`,onblur:ue,get value(){return H(g)},set value(e){I(g,e,!0)}}),A(b),A(a),K(e,t)};J(xe,e=>{H(n)?.enabled&&e(Se)}),A(ve);var Ce=B(ve,2),we=R(Ce);_a(B(R(we),2),{variant:`primary`,onclick:()=>I(_,!0),children:(e,t)=>{j(),K(e,G(`Add`))},$$slots:{default:!0}}),A(we);var Te=B(we,2),Ee=e=>{var t=Bx(),n=R(t);Xa(B(R(n),2),{type:`text`,style:`flex:1`,placeholder:`e.g. heartbeat`,get value(){return H(v)},set value(e){I(v,e,!0)}}),A(n);var r=B(n,2);oo(B(R(r),2),{get value(){return H(y)},set value(e){I(y,e,!0)},children:(e,t)=>{var n=Fx(),r=z(n);r.value=r.__value=`hours`;var i=B(r,2);i.value=i.__value=`daily`;var a=B(i,2);a.value=a.__value=`cron`,K(e,n)},$$slots:{default:!0}}),A(r);var i=B(r,2),a=e=>{var t=Ix();Xa(B(R(t),4),{type:`number`,width:`50px`,style:`text-align:center`,min:`1`,max:`24`,get value(){return H(b)},set value(e){I(b,e,!0)}}),j(2),A(t),K(e,t)},o=e=>{var t=Lx();bo(B(R(t),4),{get hour(){return H(x)},set hour(e){I(x,e,!0)},get minute(){return H(S)},set minute(e){I(S,e,!0)}}),A(t),K(e,t)},s=e=>{var t=Rx();Xa(B(R(t),2),{type:`text`,style:`flex:1`,placeholder:`*/30 * * * *`,get value(){return H(C)},set value(e){I(C,e,!0)}}),A(t),K(e,t)};J(i,e=>{H(y)===`hours`?e(a):H(y)===`daily`?e(o,1):e(s,-1)});var c=B(i,2),l=B(R(c),2);hn(l),A(c);var u=B(c,2);oo(B(R(u),2),{get value(){return H(T)},set value(e){I(T,e,!0)},children:(e,t)=>{var n=zx(),r=z(n);r.value=r.__value=`skip`;var i=B(r,2);i.value=i.__value=`queue`;var a=B(i,2);a.value=a.__value=`trigger-wake`,K(e,n)},$$slots:{default:!0}}),A(u);var d=B(u,2),f=R(d);{let e=P(()=>H(k)!==null||!H(v).trim());_a(f,{variant:`primary`,onclick:me,get disabled(){return H(e)},children:(e,t)=>{j();var n=G();V(()=>q(n,H(k)===`sched:add`?`...`:`Add schedule`)),K(e,n)},$$slots:{default:!0}})}_a(B(f,2),{variant:`secondary`,onclick:()=>I(_,!1),children:(e,t)=>{j(),K(e,G(`Cancel`))},$$slots:{default:!0}}),A(d),A(t),aa(l,()=>H(w),e=>I(w,e)),K(e,t)};J(Te,e=>{H(_)&&e(Ee)});var De=B(Te,2),Oe=e=>{xa(e,{message:`No schedules configured.`})},ke=e=>{var t=Wx();Y(t,21,()=>H(r),e=>e.id,(e,t)=>{var n=Kr(),r=z(n),i=e=>{var n=Vx(),r=R(n);oo(B(R(r),2),{get value(){return H(ee)},set value(e){I(ee,e,!0)},children:(e,t)=>{var n=Fx(),r=z(n);r.value=r.__value=`hours`;var i=B(r,2);i.value=i.__value=`daily`;var a=B(i,2);a.value=a.__value=`cron`,K(e,n)},$$slots:{default:!0}}),A(r);var i=B(r,2),a=e=>{var t=Ix();Xa(B(R(t),4),{type:`number`,width:`50px`,style:`text-align:center`,min:`1`,max:`24`,get value(){return H(te)},set value(e){I(te,e,!0)}}),j(2),A(t),K(e,t)},o=e=>{var t=Lx();bo(B(R(t),4),{get hour(){return H(ne)},set hour(e){I(ne,e,!0)},get minute(){return H(D)},set minute(e){I(D,e,!0)}}),A(t),K(e,t)},s=e=>{var t=Rx();Xa(B(R(t),2),{type:`text`,style:`flex:1`,placeholder:`*/30 * * * *`,get value(){return H(O)},set value(e){I(O,e,!0)}}),A(t),K(e,t)};J(i,e=>{H(ee)===`hours`?e(a):H(ee)===`daily`?e(o,1):e(s,-1)});var c=B(i,2),l=B(R(c),2);hn(l),A(c);var u=B(c,2);oo(B(R(u),2),{get value(){return H(ie)},set value(e){I(ie,e,!0)},children:(e,t)=>{var n=zx(),r=z(n);r.value=r.__value=`skip`;var i=B(r,2);i.value=i.__value=`queue`;var a=B(i,2);a.value=a.__value=`trigger-wake`,K(e,n)},$$slots:{default:!0}}),A(u);var d=B(u,2),f=R(d);{let e=P(()=>H(k)!==null);_a(f,{variant:`primary`,onclick:pe,get disabled(){return H(e)},children:(e,n)=>{j();var r=G();V(()=>q(r,H(k)===`sched:${H(t).id}`?`...`:`Save`)),K(e,r)},$$slots:{default:!0}})}_a(B(f,2),{variant:`secondary`,onclick:()=>I(E,null),children:(e,t)=>{j(),K(e,G(`Cancel`))},$$slots:{default:!0}}),A(d),A(n),aa(l,()=>H(re),e=>I(re,e)),K(e,n)},a=e=>{var n=Ux();let r;var i=R(n),a=R(i),o=R(a,!0);A(a);var s=B(a,2),c=R(s),l=e=>{var n=G();V(e=>q(n,e),[()=>Nb(H(t).cron)]),K(e,n)},u=e=>{K(e,G(`one-time`))},d=e=>{K(e,G(`--`))};J(c,e=>{H(t).cron?e(l):H(t).fireAt?e(u,1):e(d,-1)}),A(s);var f=B(s,2),p=R(f);Co(p,{get checked(){return H(t).enabled},onchange:()=>de(H(t))});var m=B(p,2);_a(m,{variant:`icon`,onclick:()=>fe(H(t)),children:(e,t)=>{j(),K(e,G(`Edit`))},$$slots:{default:!0}});var h=B(m,2);{let e=P(()=>H(k)!==null);_a(h,{variant:`danger`,size:`sm`,class:`icon-size`,onclick:()=>he(H(t).id),get disabled(){return H(e)},children:(e,n)=>{j();var r=G();V(()=>q(r,H(k)===`sched:${H(t).id}`?`...`:`Del`)),K(e,r)},$$slots:{default:!0}})}A(f),A(i);var g=B(i,2),_=e=>{var n=Hx(),r=R(n,!0);A(n),V(e=>q(r,e),[()=>Bb(H(t))]),K(e,n)};J(g,e=>{(H(t).message||H(t).messages?.length)&&e(_)}),A(n),V(()=>{r=X(n,1,`schedule-card svelte-1u04gr6`,null,r,{disabled:!H(t).enabled}),q(o,H(t).id)}),K(e,n)};J(r,e=>{H(E)===H(t).id?e(i):e(a,-1)}),K(e,n)}),A(t),K(e,t)};J(De,e=>{H(r).length===0&&!H(_)?e(Oe):e(ke,-1)}),A(Ce),K(e,ge),N()}var qx=W(`<div class="skill-desc svelte-19xtkvn"> </div>`),Jx=W(`<span class="installed-tag svelte-19xtkvn">installed</span>`),Yx=W(`<div class="skill-row svelte-19xtkvn"><div class="skill-info svelte-19xtkvn"><div class="skill-name svelte-19xtkvn"> </div> <!> <div class="skill-meta svelte-19xtkvn"> </div></div> <div class="skill-actions svelte-19xtkvn"><!></div></div>`),Xx=W(`<div class="skill-list svelte-19xtkvn"></div>`),Zx=W(`<div class="modal-body svelte-19xtkvn"><!> <!></div>`);function Qx(e,t){M(t,!0);let n=F(L([])),r=F(``),i=F(!0),a=F(null);ma(()=>{id().then(e=>{I(n,e,!0),I(i,!1)}).catch(()=>{I(r,`Failed to load shared skills`),I(i,!1)})});async function o(e){I(a,e,!0),I(r,``);try{await od(t.name,e),t.onInstalled();try{I(n,await id(),!0)}catch{}}catch(e){I(r,e instanceof Error?e.message:`Failed to install`,!0)}I(a,null)}$a(e,{size:`480px`,title:`Add Skill`,get onClose(){return t.onClose},children:(e,s)=>{var c=Zx(),l=R(c);Ca(l,{get message(){return H(r)}});var u=B(l,2),d=e=>{xa(e,{message:`Loading...`})},f=e=>{xa(e,{message:`No shared skills available.`})},p=e=>{var r=Xx();Y(r,21,()=>H(n),e=>e.id,(e,n)=>{var r=Yx(),i=R(r),s=R(i),c=R(s,!0);A(s);var l=B(s,2),u=e=>{var t=qx(),r=R(t,!0);A(t),V(()=>q(r,H(n).description)),K(e,t)};J(l,e=>{H(n).description&&e(u)});var d=B(l,2),f=R(d);A(d),A(i);var p=B(i,2),m=R(p),h=e=>{K(e,Jx())},g=P(()=>t.installedIds.has(H(n).id)),_=e=>{{let t=P(()=>H(a)!==null);_a(e,{variant:`primary`,onclick:()=>o(H(n).id),get disabled(){return H(t)},children:(e,t)=>{j();var r=G();V(()=>q(r,H(a)===H(n).id?`...`:`Install`)),K(e,r)},$$slots:{default:!0}})}};J(m,e=>{H(g)?e(h):e(_,-1)}),A(p),A(r),V(()=>{q(c,H(n).name),q(f,`${H(n).id??``} · v${H(n).version??``}`)}),K(e,r)}),A(r),K(e,r)};J(u,e=>{H(i)?e(d):H(n).length===0?e(f,1):e(p,-1)}),A(c),K(e,c)},$$slots:{default:!0}}),N()}var $x=W(`<span class="update-badge svelte-x10lne">update available</span>`),eS=W(`<div class="skill-desc svelte-x10lne"> </div>`),tS=W(`<span class="upstream-tag svelte-x10lne"> </span>`),nS=W(`<span class="local-tag svelte-x10lne">local</span>`),rS=W(`<div class="skill-row svelte-x10lne"><div class="skill-info svelte-x10lne"><div class="skill-name svelte-x10lne"> <!></div> <!> <div class="skill-meta svelte-x10lne"> <!></div></div> <div class="skill-actions svelte-x10lne"><!> <!> <!></div></div>`),iS=W(`<div class="skill-list svelte-x10lne"></div>`),aS=W(`<!> <!> <!>`,1),oS=W(`<!> <!>`,1);function sS(e,t){M(t,!0);let n=F(L([])),r=F(``),i=F(!0),a=F(null),o=F(!1);function s(){ad(t.name).then(e=>{I(n,e,!0),I(i,!1),I(r,``)}).catch(()=>{I(r,`Failed to load skills`),I(i,!1)})}ma(()=>{s()});let c=P(()=>new Set(H(n).map(e=>e.id)));async function l(e){I(a,e,!0),I(r,``);try{let n=await sd(t.name,e);n.status===`conflict`&&I(r,`Merge conflicts in: ${n.conflictFiles?.join(`, `)}. Resolve manually.`),s()}catch(e){I(r,e instanceof Error?e.message:`Failed to update`,!0)}I(a,null)}async function u(e){I(a,e,!0),I(r,``);try{await cd(t.name,e),s()}catch(e){I(r,e instanceof Error?e.message:`Failed to publish`,!0)}I(a,null)}async function d(e){I(a,e,!0),I(r,``);try{await ld(t.name,e),s()}catch(e){I(r,e instanceof Error?e.message:`Failed to uninstall`,!0)}I(a,null)}var f=oS(),p=z(f),m=e=>{xa(e,{message:`Loading...`})},h=e=>{var t=aS(),i=z(t);Ca(i,{get message(){return H(r)}});var s=B(i,2);no(s,{title:`Skills`,action:e=>{_a(e,{variant:`primary`,onclick:()=>I(o,!0),children:(e,t)=>{j(),K(e,G(`Add skill`))},$$slots:{default:!0}})},$$slots:{action:!0}});var c=B(s,2),f=e=>{xa(e,{message:`No skills installed.`})},p=e=>{var t=iS();Y(t,21,()=>H(n),e=>e.id,(e,t)=>{var n=rS(),r=R(n),i=R(r),o=R(i),s=B(o),c=e=>{K(e,$x())};J(s,e=>{H(t).updateAvailable&&e(c)}),A(i);var f=B(i,2),p=e=>{var n=eS(),r=R(n,!0);A(n),V(()=>q(r,H(t).description)),K(e,n)};J(f,e=>{H(t).description&&e(p)});var m=B(f,2),h=R(m),g=B(h),_=e=>{var n=tS(),r=R(n);A(n),V(()=>q(r,`v${H(t).upstream.version??``}`)),K(e,n)},v=e=>{K(e,nS())};J(g,e=>{H(t).upstream?e(_):e(v,-1)}),A(m),A(r);var y=B(r,2),b=R(y),x=e=>{{let n=P(()=>H(a)!==null);_a(e,{variant:`primary`,onclick:()=>l(H(t).id),get disabled(){return H(n)},children:(e,n)=>{j();var r=G();V(()=>q(r,H(a)===H(t).id?`...`:`Update`)),K(e,r)},$$slots:{default:!0}})}};J(b,e=>{H(t).updateAvailable&&e(x)});var S=B(b,2);{let e=P(()=>H(a)!==null);_a(S,{variant:`secondary`,onclick:()=>u(H(t).id),get disabled(){return H(e)},children:(e,n)=>{j();var r=G();V(()=>q(r,H(a)===H(t).id?`...`:`Publish`)),K(e,r)},$$slots:{default:!0}})}var C=B(S,2);{let e=P(()=>H(a)!==null);_a(C,{variant:`danger`,onclick:()=>d(H(t).id),get disabled(){return H(e)},children:(e,n)=>{j();var r=G();V(()=>q(r,H(a)===H(t).id?`...`:`Uninstall`)),K(e,r)},$$slots:{default:!0}})}A(y),A(n),V(()=>{q(o,`${H(t).name??``} `),q(h,`${H(t).id??``} `)}),K(e,n)}),A(t),K(e,t)};J(c,e=>{H(n).length===0?e(f):e(p,-1)}),K(e,t)};J(p,e=>{H(i)?e(m):e(h,-1)});var g=B(p,2),_=e=>{Qx(e,{get name(){return t.name},get installedIds(){return H(c)},onClose:()=>I(o,!1),onInstalled:s})};J(g,e=>{H(o)&&e(_)}),K(e,f),N()}var cS=W(`<button> </button>`),lS=W(`<div class="settings svelte-1c5rh43"><nav class="section-nav svelte-1c5rh43"></nav> <div class="settings-body svelte-1c5rh43"><section id="profile" class="svelte-1c5rh43"><!></section> <section id="cognition" class="svelte-1c5rh43"><!> <!></section> <section id="rhythms" class="svelte-1c5rh43"><!> <!></section> <section id="skills" class="svelte-1c5rh43"><!></section> <section id="environment" class="svelte-1c5rh43"><!></section></div></div>`);function uS(e,t){M(t,!0);let n=P(()=>Zf.minds.find(e=>e.name===t.mind.name)??t.mind),r=P(()=>H(n).name),i=[{id:`profile`,label:`Profile`},{id:`cognition`,label:`Model`},{id:`rhythms`,label:`Clock`},{id:`skills`,label:`Skills`},{id:`environment`,label:`Environment`}],a=F(`profile`),o,s={},c=!1;ma(()=>{l()});function l(){if(!o)return;let e=new IntersectionObserver(e=>{if(!c)for(let t of e)t.isIntersecting&&I(a,t.target.id,!0)},{root:o,rootMargin:`-20% 0px -70% 0px`,threshold:0});for(let t of Object.values(s))t&&e.observe(t);return()=>e.disconnect()}function u(e){I(a,e,!0),c=!0,s[e]?.scrollIntoView({behavior:`smooth`,block:`start`}),setTimeout(()=>{c=!1},600)}async function d(){Zf.minds=await vu()}var f=lS(),p=R(f);Y(p,21,()=>i,ti,(e,t)=>{var n=cS();let r;var i=R(n,!0);A(n),V(()=>{r=X(n,1,`nav-pill svelte-1c5rh43`,null,r,{active:H(a)===H(t).id}),q(i,H(t).label)}),U(`click`,n,()=>u(H(t).id)),K(e,n)}),A(p);var m=B(p,2),h=R(m);Ax(R(h),{get mind(){return H(n)},onUpdated:d}),A(h),ua(h,e=>s.profile=e,()=>s?.profile);var g=B(h,2),_=R(g);no(_,{title:`Model`,subtitle:`Cognition and resource limits`}),hx(B(_,2),{get name(){return H(r)},get template(){return H(n).template}}),A(g),ua(g,e=>s.cognition=e,()=>s?.cognition);var v=B(g,2),y=R(v);no(y,{title:`Clock`,subtitle:`Sleep, schedules, and wake triggers`}),Kx(B(y,2),{get name(){return H(r)}}),A(v),ua(v,e=>s.rhythms=e,()=>s?.rhythms);var b=B(v,2);sS(R(b),{get name(){return H(r)}}),A(b),ua(b,e=>s.skills=e,()=>s?.skills);var x=B(b,2);wx(R(x),{get name(){return H(r)}}),A(x),ua(x,e=>s.environment=e,()=>s?.environment),A(m),ua(m,e=>o=e,()=>o),A(f),K(e,f),N()}Lr([`click`]);var dS=W(`<div class="error svelte-9a144u"> </div>`),fS=W(`<div class="warning svelte-9a144u"> </div>`),pS=W(`<div class="muted svelte-9a144u">Loading…</div>`),mS=W(`<div class="muted svelte-9a144u">No variants.</div>`),hS=W(`<span class="port"> </span>`),gS=W(`<span class="created"> </span>`),_S=W(`<span class="confirm svelte-9a144u"> <button class="confirm-yes svelte-9a144u"> </button> <button class="confirm-no svelte-9a144u">cancel</button></span>`),vS=W(`<span class="confirm svelte-9a144u">Discard this variant? <button class="confirm-yes danger svelte-9a144u"> </button> <button class="confirm-no svelte-9a144u">cancel</button></span>`),yS=W(`<!> <!>`,1),bS=W(`<li class="variant-row svelte-9a144u"><div class="variant-main svelte-9a144u"><span class="variant-name svelte-9a144u"> </span> <!></div> <div class="variant-meta svelte-9a144u"><span class="branch svelte-9a144u" title="branch"> </span> <!> <!></div> <div class="variant-actions svelte-9a144u"><!></div></li>`),xS=W(`<ul class="variant-list svelte-9a144u"></ul>`),SS=W(`<div class="variants svelte-9a144u"><!> <form class="create-form svelte-9a144u"><div class="create-row svelte-9a144u"><!> <!></div> <textarea class="soul-input svelte-9a144u" placeholder="Optional SOUL.md override for the variant" rows="2"></textarea></form> <!> <!> <!></div>`);function CS(e,t){M(t,!0);let n=F(L([])),r=F(!0),i=F(``),a=F(``),o=F(``),s=F(``),c=F(!1),l=F(null),u=F(null),d=F(null);async function f(){I(r,!0);try{I(n,await Bu(t.name),!0),I(i,``)}catch(e){console.error(`Failed to load variants:`,e),I(i,e instanceof Error?e.message:`Failed to load variants`,!0)}finally{I(r,!1)}}Tn(()=>{t.name,f()});async function p(e){e.preventDefault();let n=H(o).trim();if(!(!n||H(c))){I(c,!0),I(i,``),I(a,``);try{await Hu(t.name,{name:n,soul:H(s).trim()||void 0}),I(o,``),I(s,``),await f()}catch(e){console.error(`Failed to create variant:`,e),I(i,e instanceof Error?e.message:`Failed to create variant`,!0)}finally{I(c,!1)}}}async function m(e){I(d,e,!0),I(i,``),I(a,``);try{let n=await Uu(t.name,e);I(l,null),await f(),n.warning&&I(a,n.warning,!0)}catch(e){console.error(`Failed to join variant:`,e),I(i,e instanceof Error?e.message:`Failed to join variant`,!0)}finally{I(d,null)}}async function h(e){I(d,e,!0),I(i,``),I(a,``);try{await Wu(t.name,e),I(u,null),await f()}catch(e){console.error(`Failed to delete variant:`,e),I(i,e instanceof Error?e.message:`Failed to delete variant`,!0)}finally{I(d,null)}}var g=SS(),_=R(g);no(_,{title:`Variants`,subtitle:`Isolated forks of this mind — split off an experiment, then join it back or discard it`});var v=B(_,2),y=R(v),b=R(y);Xa(b,{placeholder:`variant name`,width:`180px`,get disabled(){return H(c)},get value(){return H(o)},set value(e){I(o,e,!0)}});var x=B(b,2);{let e=P(()=>H(c)||!H(o).trim());_a(x,{variant:`primary`,type:`submit`,get disabled(){return H(e)},children:(e,t)=>{j();var n=G();V(()=>q(n,H(c)?`Splitting…`:`Split`)),K(e,n)},$$slots:{default:!0}})}A(y);var S=B(y,2);hn(S),A(v);var C=B(v,2),w=e=>{var t=dS(),n=R(t,!0);A(t),V(()=>q(n,H(i))),K(e,t)};J(C,e=>{H(i)&&e(w)});var T=B(C,2),E=e=>{var t=fS(),n=R(t);A(t),V(()=>q(n,`Merge completed, but: ${H(a)??``}`)),K(e,t)};J(T,e=>{H(a)&&e(E)});var ee=B(T,2),te=e=>{K(e,pS())},ne=e=>{K(e,mS())},D=e=>{var r=xS();Y(r,21,()=>H(n),e=>e.name,(e,n)=>{var r=bS(),i=R(r),a=R(i),o=R(a,!0);A(a),po(B(a,2),{get status(){return H(n).status}}),A(i);var s=B(i,2),c=R(s),f=R(c,!0);A(c);var p=B(c,2),g=e=>{var t=hS(),r=R(t);A(t),V(()=>q(r,`:${H(n).port??``}`)),K(e,t)};J(p,e=>{H(n).port&&e(g)});var _=B(p,2),v=e=>{var t=gS(),r=R(t,!0);A(t),V(e=>q(r,e),[()=>Bl(H(n).created)]),K(e,t)};J(_,e=>{H(n).created&&e(v)}),A(s);var y=B(s,2),b=R(y),x=e=>{var r=_S(),i=R(r),a=B(i),o=R(a,!0);A(a);var s=B(a,2);A(r),V(()=>{q(i,`Join back into ${t.name??``} and restart? `),a.disabled=H(d)===H(n).name,q(o,H(d)===H(n).name?`joining…`:`join`),s.disabled=H(d)===H(n).name}),U(`click`,a,()=>m(H(n).name)),U(`click`,s,()=>I(l,null)),K(e,r)},S=e=>{var t=vS(),r=B(R(t)),i=R(r,!0);A(r);var a=B(r,2);A(t),V(()=>{r.disabled=H(d)===H(n).name,q(i,H(d)===H(n).name?`discarding…`:`discard`),a.disabled=H(d)===H(n).name}),U(`click`,r,()=>h(H(n).name)),U(`click`,a,()=>I(u,null)),K(e,t)},C=e=>{var t=yS(),r=z(t);{let e=P(()=>!!H(d));_a(r,{variant:`secondary`,onclick:()=>I(l,H(n).name,!0),get disabled(){return H(e)},children:(e,t)=>{j(),K(e,G(`Join`))},$$slots:{default:!0}})}var i=B(r,2);{let e=P(()=>!!H(d));_a(i,{variant:`text`,onclick:()=>I(u,H(n).name,!0),get disabled(){return H(e)},children:(e,t)=>{j(),K(e,G(`Discard`))},$$slots:{default:!0}})}K(e,t)};J(b,e=>{H(l)===H(n).name?e(x):H(u)===H(n).name?e(S,1):e(C,-1)}),A(y),A(r),V(()=>{q(o,H(n).name),q(f,H(n).branch)}),K(e,r)}),A(r),K(e,r)};J(ee,e=>{H(r)?e(te):H(n).length===0?e(ne,1):e(D,-1)}),A(g),V(()=>S.disabled=H(c)),Ir(`submit`,v,p),aa(S,()=>H(s),e=>I(s,e)),K(e,g),N()}Lr([`click`]);var wS=W(`<div class="error svelte-1ctf7xm"> </div>`),TS=W(`<div class="muted svelte-1ctf7xm">Loading…</div>`),ES=W(`<div class="muted svelte-1ctf7xm">No pending files.</div>`),DS=W(`<li class="file-row svelte-1ctf7xm"><div class="file-main svelte-1ctf7xm"><span class="file-name svelte-1ctf7xm"> </span> <span class="file-size svelte-1ctf7xm"> </span></div> <div class="file-meta svelte-1ctf7xm"><span class="sender"> </span> <span class="created"> </span></div></li>`),OS=W(`<ul class="file-list svelte-1ctf7xm"></ul> <div class="hint svelte-1ctf7xm">Accepting or rejecting a file is the mind's decision — it runs <code class="svelte-1ctf7xm">volute chat accept/reject &lt;id&gt;</code> when it's ready.</div>`,1),kS=W(`<div class="pending svelte-1ctf7xm"><!> <!> <!></div>`);function AS(e,t){M(t,!0);let n=F(L([])),r=F(!0),i=F(``);function a(e){if(e<1024)return`${e} B`;let t=[`KB`,`MB`,`GB`],n=e/1024,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r++;return`${n.toFixed(+(n<10))} ${t[r]}`}async function o(){I(r,!0);try{I(n,await uf(t.name),!0),I(i,``)}catch(e){console.error(`Failed to load pending files:`,e),I(i,e instanceof Error?e.message:`Failed to load pending files`,!0)}finally{I(r,!1)}}Tn(()=>{t.name,o()});var s=kS(),c=R(s);no(c,{title:`Incoming files`,subtitle:`Files sent to this mind, awaiting its review`});var l=B(c,2),u=e=>{var t=wS(),n=R(t,!0);A(t),V(()=>q(n,H(i))),K(e,t)};J(l,e=>{H(i)&&e(u)});var d=B(l,2),f=e=>{K(e,TS())},p=e=>{K(e,ES())},m=e=>{var t=OS(),r=z(t);Y(r,21,()=>H(n),e=>e.id,(e,t)=>{var n=DS(),r=R(n),i=R(r),o=R(i,!0);A(i);var s=B(i,2),c=R(s,!0);A(s),A(r);var l=B(r,2),u=R(l),d=R(u);A(u);var f=B(u,2),p=R(f,!0);A(f),A(l),A(n),V((e,n)=>{q(o,H(t).filename),q(c,e),q(d,`from ${H(t).sender??``}`),q(p,n)},[()=>a(H(t).size),()=>Bl(H(t).createdAt)]),K(e,n)}),A(r),j(2),K(e,t)};J(d,e=>{H(r)?e(f):H(n).length===0?e(p,1):e(m,-1)}),A(s),K(e,s),N()}var jS=W(`<div class="error svelte-18xrmlc"> </div>`),MS=W(`<div class="empty svelte-18xrmlc">Loading...</div>`),NS=W(`<div class="empty svelte-18xrmlc">No channels yet. Create one below.</div>`),PS=W(`<div class="channel-row svelte-18xrmlc"><div class="channel-info svelte-18xrmlc"><span class="channel-name svelte-18xrmlc"> </span> <span class="channel-meta svelte-18xrmlc"> </span></div> <button> </button></div>`),FS=W(`<!> <div class="channel-list svelte-18xrmlc"><!></div> <div class="create-section svelte-18xrmlc"><!> <button class="create-btn svelte-18xrmlc">Create</button></div>`,1);function IS(e,t){M(t,!0);let n=F(L([])),r=F(``),i=F(``),a=F(!0),o=F(null);function s(){I(a,!0),Zu().then(e=>{I(n,e,!0),I(i,``)}).catch(e=>{I(i,e instanceof Error?e.message:`Failed to load channels`,!0)}).finally(()=>{I(a,!1)})}ma(()=>{s()});async function c(){let e=H(r).trim().toLowerCase().replace(/[^a-z0-9-]/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``);if(e)try{let n=await Qu(e);I(r,``),s(),t.onJoined(n)}catch(e){I(i,e instanceof Error?e.message:`Failed to create channel`,!0)}}async function l(e){if(e.channel_name){I(o,e.channel_name,!0);try{await $u(e.channel_name),t.onJoined(e)}catch(e){I(i,e instanceof Error?e.message:`Failed to join channel`,!0)}finally{I(o,null)}}}async function u(e){if(e.channel_name)try{await ed(e.channel_name),s()}catch(e){I(i,e instanceof Error?e.message:`Failed to leave channel`,!0)}}function d(e){e.key===`Escape`&&t.onClose(),e.key===`Enter`&&c()}$a(e,{size:`380px`,title:`Browse channels`,get onClose(){return t.onClose},children:(e,t)=>{var s=FS(),f=z(s),p=e=>{var t=jS(),n=R(t,!0);A(t),V(()=>q(n,H(i))),K(e,t)};J(f,e=>{H(i)&&e(p)});var m=B(f,2),h=R(m),g=e=>{K(e,MS())},_=e=>{K(e,NS())},v=e=>{var t=Kr();Y(z(t),17,()=>H(n),e=>e.id,(e,t)=>{var n=PS(),r=R(n),i=R(r),a=R(i);A(i);var s=B(i,2),c=R(s);A(s),A(r);var d=B(r,2);let f;var p=R(d,!0);A(d),A(n),V(()=>{q(a,`#${H(t).channel_name??``}`),q(c,`${H(t).participantCount??``} member${H(t).participantCount===1?``:`s`}`),f=X(d,1,`action-btn svelte-18xrmlc`,null,f,{leave:H(t).isMember}),d.disabled=H(o)===H(t).channel_name,q(p,H(o)===H(t).channel_name?`...`:H(t).isMember?`leave`:`join`)}),U(`click`,d,()=>H(t).isMember?u(H(t)):l(H(t))),K(e,n)}),K(e,t)};J(h,e=>{H(a)?e(g):H(n).length===0?e(_,1):e(v,-1)}),A(m);var y=B(m,2),b=R(y);Xa(b,{type:`text`,placeholder:`new-channel-name`,style:`flex:1`,onkeydown:d,get value(){return H(r)},set value(e){I(r,e,!0)}});var x=B(b,2);A(y),V(e=>x.disabled=e,[()=>!H(r).trim()]),U(`click`,x,c),K(e,s)},$$slots:{default:!0}}),N()}Lr([`click`]);var LS=W(`<details class="section svelte-1v57vxv"><summary class="section-header svelte-1v57vxv">System Prompt</summary> <div class="section-body markdown-body svelte-1v57vxv"></div></details>`),RS=W(`<details class="section svelte-1v57vxv"><summary class="section-header svelte-1v57vxv">SDK Instructions</summary> <div class="section-body markdown-body svelte-1v57vxv"></div></details>`),zS=W(`<div class="skill-item svelte-1v57vxv"><span class="skill-name svelte-1v57vxv"> </span> <span class="skill-desc svelte-1v57vxv"> </span></div>`),BS=W(`<details class="section svelte-1v57vxv"><summary class="section-header svelte-1v57vxv"> </summary> <div class="section-body svelte-1v57vxv"></div></details>`),VS=W(`<div class="empty svelte-1v57vxv">No messages yet</div>`),HS=W(`<pre class="block-system-text svelte-1v57vxv"> </pre>`),US=W(`<div class="block-text markdown-body svelte-1v57vxv"></div>`),WS=W(`<details class="block-thinking svelte-1v57vxv"><summary class="thinking-header svelte-1v57vxv">Thinking</summary> <div class="thinking-body svelte-1v57vxv"> </div></details>`),GS=W(`<details class="block-tool svelte-1v57vxv"><summary class="tool-header svelte-1v57vxv"> </summary> <pre class="tool-body svelte-1v57vxv"> </pre></details>`),KS=W(`<details class="block-tool svelte-1v57vxv"><summary>Result<!></summary> <pre class="tool-body svelte-1v57vxv"> </pre></details>`),qS=W(`<div><div> </div> <div class="blocks svelte-1v57vxv"></div></div>`),JS=W(`<div class="messages svelte-1v57vxv"></div>`),YS=W(`<div class="session svelte-1v57vxv"><div class="session-label svelte-1v57vxv"> </div> <!></div>`),XS=W(`<div class="context-view svelte-1v57vxv"><div class="preamble svelte-1v57vxv"><!> <!> <!></div> <!></div>`);function ZS(e,t){M(t,!0);var n=XS(),r=R(n),i=R(r),a=e=>{var n=LS(),r=B(R(n),2);ui(r,()=>Al(t.messages.preamble.systemPrompt),!0),A(r),A(n),K(e,n)};J(i,e=>{t.messages.preamble.systemPrompt&&e(a)});var o=B(i,2),s=e=>{var n=RS(),r=B(R(n),2);ui(r,()=>Al(t.messages.preamble.sdkInstructions),!0),A(r),A(n),K(e,n)};J(o,e=>{t.messages.preamble.sdkInstructions&&e(s)});var c=B(o,2),l=e=>{var n=BS(),r=R(n),i=R(r);A(r);var a=B(r,2);Y(a,21,()=>t.messages.preamble.skillDescriptions,ti,(e,t)=>{var n=zS(),r=R(n),i=R(r,!0);A(r);var a=B(r,2),o=R(a,!0);A(a),A(n),V(()=>{q(i,H(t).name),q(o,H(t).description)}),K(e,n)}),A(a),A(n),V(()=>q(i,`Skill Descriptions (${t.messages.preamble.skillDescriptions.length??``})`)),K(e,n)};J(c,e=>{t.messages.preamble.skillDescriptions.length>0&&e(l)}),A(r),Y(B(r,2),17,()=>t.messages.sessions,e=>e.name,(e,t)=>{var n=YS(),r=R(n),i=R(r,!0);A(r);var a=B(r,2),o=e=>{K(e,VS())},s=e=>{var n=JS();Y(n,21,()=>H(t).messages,ti,(e,t)=>{var n=qS();let r;var i=R(n);let a;var o=R(i,!0);A(i);var s=B(i,2);Y(s,21,()=>H(t).blocks,ti,(e,n)=>{var r=Kr(),i=z(r),a=e=>{var r=Kr(),i=z(r),a=e=>{var t=HS(),r=R(t,!0);A(t),V(()=>q(r,H(n).text)),K(e,t)},o=e=>{var t=US();ui(t,()=>Al(H(n).text),!0),A(t),K(e,t)};J(i,e=>{H(t).role===`system`?e(a):e(o,-1)}),K(e,r)},o=e=>{var t=WS(),r=B(R(t),2),i=R(r,!0);A(r),A(t),V(()=>q(i,H(n).text)),K(e,t)},s=e=>{var t=GS(),r=R(t),i=R(r,!0);A(r);var a=B(r,2),o=R(a,!0);A(a),A(t),V(()=>{q(i,H(n).name),q(o,H(n).input)}),K(e,t)},c=e=>{var t=KS(),r=R(t);let i;var a=B(R(r)),o=e=>{K(e,G(`(error)`))};J(a,e=>{H(n).isError&&e(o)}),A(r);var s=B(r,2),c=R(s,!0);A(s),A(t),V(()=>{i=X(r,1,`tool-header svelte-1v57vxv`,null,i,{"tool-error":H(n).isError}),q(c,H(n).text)}),K(e,t)};J(i,e=>{H(n).type===`text`?e(a):H(n).type===`thinking`?e(o,1):H(n).type===`tool_use`?e(s,2):H(n).type===`tool_result`&&e(c,3)}),K(e,r)}),A(s),A(n),V(()=>{r=X(n,1,`message svelte-1v57vxv`,null,r,{user:H(t).role===`user`,assistant:H(t).role===`assistant`,system:H(t).role===`system`}),a=X(i,1,`role-label svelte-1v57vxv`,null,a,{"user-label":H(t).role===`user`,"assistant-label":H(t).role===`assistant`,"system-label":H(t).role===`system`}),q(o,H(t).role)}),K(e,n)}),A(n),K(e,n)};J(a,e=>{H(t).messages.length===0?e(o):e(s,-1)}),A(n),V(()=>q(i,H(t).name)),K(e,n)}),A(n),K(e,n),N()}var QS=W(`<div class="loading svelte-1ndm006">Loading context info...</div>`),$S=W(`<div class="error svelte-1ndm006"> </div>`),eC=W(`<div class="system-prompt-line svelte-1ndm006"><span class="sp-label svelte-1ndm006">System prompt</span> <span class="sp-value svelte-1ndm006"> </span></div>`),tC=W(`<div class="empty svelte-1ndm006">No active sessions</div>`),nC=W(`<span> </span><!>`,1),rC=W(`<span class="no-data svelte-1ndm006">no data yet</span>`),iC=W(`<div class="cell svelte-1ndm006"></div>`),aC=W(`<div class="waffle svelte-1ndm006"></div>`),oC=W(`<div class="token-bar svelte-1ndm006"><div class="token-bar-fill svelte-1ndm006"></div></div>`),sC=W(`<div class="session-block svelte-1ndm006"><div class="session-header svelte-1ndm006"><span class="session-name svelte-1ndm006"> </span> <span class="session-tokens svelte-1ndm006"><!></span></div> <!></div>`),cC=W(`<div class="sessions svelte-1ndm006"></div>`),lC=W(`<div class="context-content svelte-1ndm006"><!> <!></div>`),uC=W(`<div class="loading svelte-1ndm006">Loading context content...</div>`);function dC(e,t){M(t,!0);let n=F(`Overview`),r=F(null),i=F(null),a=F(!0),o=F(!1),s=F(``),c=F(``);ma(async()=>{try{I(r,await bu(t.mindName),!0)}catch(e){I(s,e.message??`Failed to fetch context info`,!0)}finally{I(a,!1)}});async function l(){if(!(H(i)||H(o))){I(o,!0);try{I(i,await xu(t.mindName),!0)}catch(e){I(c,e.message??`Failed to fetch context messages`,!0)}finally{I(o,!1)}}}function u(e){I(n,e,!0),e===`Content`&&l()}function d(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}let f={systemPrompt:`#6366f1`,claudeMd:`#818cf8`,skillDesc:`#8b5cf6`,userText:`#3b82f6`,assistantText:`#22c55e`,thinking:`#f59e0b`,toolUse:`#ec4899`,toolResult:`#f97316`,sdk:`#64748b`,empty:`var(--bg-3, #2a2a2a)`};function p(e,t){let n=[{key:`systemPrompt`,label:`System Prompt`,tokens:e.systemPrompt,color:f.systemPrompt},{key:`sdkInstructions`,label:`SDK Instructions`,tokens:e.sdkInstructions,color:f.claudeMd},{key:`skillDesc`,label:`Skill Descriptions`,tokens:e.skillDescriptions,color:f.skillDesc},{key:`userText`,label:`User Messages`,tokens:e.conversation.userText,color:f.userText},{key:`assistantText`,label:`Assistant Text`,tokens:e.conversation.assistantText,color:f.assistantText},{key:`thinking`,label:`Thinking`,tokens:e.conversation.thinking,color:f.thinking},{key:`toolUse`,label:`Tool Calls`,tokens:e.conversation.toolUse,color:f.toolUse},{key:`toolResult`,label:`Tool Results`,tokens:e.conversation.toolResult,color:f.toolResult}].filter(e=>e.tokens>0),r=t-n.reduce((e,t)=>e+t.tokens,0);return r>0&&n.push({key:`sdk`,label:`Tools & SDK`,tokens:r,color:f.sdk}),n}let m=2e3;function h(e,t){let n=Math.ceil(t/m),r=Math.ceil(n/15)*15,i=[];for(let t of e){let e=`${t.label}: ${d(t.tokens)}`,n=Math.max(1,Math.round(t.tokens/m));for(let a=0;a<n&&i.length<r;a++)i.push({color:t.color,tooltip:e})}for(;i.length<r;)i.push({color:f.empty,tooltip:``});return i}{let l=e=>{go(e,{tabs:[`Overview`,`Content`],get active(){return H(n)},onchange:u})},f=P(()=>H(n)===`Content`?`full`:`600px`);$a(e,{get title(){return`Context — ${t.mindName??``}`},get onClose(){return t.onClose},get size(){return H(f)},headerActions:l,children:(e,t)=>{var l=Kr(),u=z(l),f=e=>{var t=Kr(),n=z(t),i=e=>{K(e,QS())},o=e=>{var t=$S(),n=R(t,!0);A(t),V(()=>q(n,H(s))),K(e,t)},c=e=>{var t=lC(),n=R(t),i=e=>{var t=eC(),n=B(R(t),2),i=R(n);A(n),A(t),V(e=>q(i,`${e??``} tokens`),[()=>d(H(r).systemPrompt)]),K(e,t)};J(n,e=>{H(r).systemPrompt>0&&e(i)});var a=B(n,2),o=e=>{K(e,tC())},s=e=>{var t=cC();Y(t,21,()=>H(r).sessions,e=>e.name,(e,t)=>{let n=P(()=>H(t).breakdown?p(H(t).breakdown,H(t).contextTokens):[]),r=P(()=>H(n).length>0&&H(t).contextWindow?h(H(n),H(t).contextWindow):[]),i=P(()=>H(t).contextWindow?H(t).contextTokens>H(t).contextWindow:!1);var a=sC(),o=R(a),s=R(o),c=R(s,!0);A(s);var l=B(s,2),u=R(l),f=e=>{var n=nC(),r=z(n);let a;var o=R(r,!0);A(r);var s=B(r),c=e=>{var n=G();V(e=>q(n,` / ${e??``}`),[()=>d(H(t).contextWindow)]),K(e,n)};J(s,e=>{H(t).contextWindow&&e(c)}),V(e=>{a=X(r,1,`svelte-1ndm006`,null,a,{"over-limit":H(i)}),q(o,e)},[()=>d(H(t).contextTokens)]),K(e,n)},m=e=>{K(e,rC())};J(u,e=>{H(t).contextTokens>0?e(f):e(m,-1)}),A(l),A(o);var g=B(o,2),_=e=>{var t=aC();Z(t,``,{},{"grid-template-columns":`repeat(15, 1fr)`}),Y(t,21,()=>H(r),ti,(e,t)=>{var n=Kr(),r=z(n),i=e=>{var n=iC();let r;Si(n,(e,t)=>Il?.(e,t),()=>H(t).tooltip),V(()=>r=Z(n,``,r,{background:H(t).color})),K(e,n)},a=e=>{var n=iC();let r;V(()=>r=Z(n,``,r,{background:H(t).color})),K(e,n)};J(r,e=>{H(t).tooltip?e(i):e(a,-1)}),K(e,n)}),A(t),K(e,t)},v=e=>{var n=oC(),r=R(n);let i;A(n),V(e=>i=Z(r,``,i,e),[()=>({width:`${Math.min(100,H(t).contextTokens/(H(t).contextWindow??H(t).contextTokens)*100)}%`})]),K(e,n)};J(g,e=>{H(r).length>0?e(_):H(t).contextTokens>0&&e(v,1)}),A(a),V(()=>q(c,H(t).name)),K(e,a)}),A(t),K(e,t)};J(a,e=>{H(r).sessions.length===0?e(o):e(s,-1)}),A(t),K(e,t)};J(n,e=>{H(a)?e(i):H(s)?e(o,1):H(r)&&e(c,2)}),K(e,t)},m=e=>{var t=Kr(),n=z(t),r=e=>{K(e,uC())},a=e=>{var t=$S(),n=R(t,!0);A(t),V(()=>q(n,H(c))),K(e,t)},s=e=>{ZS(e,{get messages(){return H(i)}})};J(n,e=>{H(o)?e(r):H(c)?e(a,1):H(i)&&e(s,2)}),K(e,t)};J(u,e=>{H(n)===`Overview`?e(f):H(n)===`Content`&&e(m,1)}),K(e,l)},$$slots:{headerActions:!0,default:!0}})}N()}var fC=W(`<button class="model-selected svelte-c55mz0" type="button"><span class="model-selected-name svelte-c55mz0"> </span> <span class="model-selected-provider svelte-c55mz0"> </span> <span class="model-selected-clear svelte-c55mz0">×</span></button>`),pC=W(`<button class="model-option svelte-c55mz0" type="button"><span class="model-option-name svelte-c55mz0"> </span> <span class="model-option-provider svelte-c55mz0"> </span></button>`),mC=W(`<div class="model-dropdown svelte-c55mz0"></div>`),hC=W(`<div class="model-picker svelte-c55mz0"><!> <!></div>`),gC=W(`<div class="field svelte-c55mz0"><span class="label svelte-c55mz0">Model (optional)</span> <!></div>`),_C=W(`<label class="skill-item svelte-c55mz0"><input type="checkbox"/> <span class="skill-name svelte-c55mz0"> </span></label>`),vC=W(`<div class="field svelte-c55mz0"><span class="label svelte-c55mz0">Skills</span> <div class="skill-list svelte-c55mz0"></div></div>`),yC=W(`<label class="field svelte-c55mz0"><span class="label svelte-c55mz0">Seed SOUL template</span> <textarea class="textarea svelte-c55mz0" rows="6" placeholder="SOUL.md template for this seed..."></textarea> <span class="hint svelte-c55mz0"></span></label> <!>`,1),bC=W(`<div class="error svelte-c55mz0"> </div>`),xC=W(`<div class="modal-content svelte-c55mz0"><div class="modal-title svelte-c55mz0">Plant a seed</div> <label class="field svelte-c55mz0"><span class="label svelte-c55mz0">Name</span> <!></label> <label class="field svelte-c55mz0"><span class="label svelte-c55mz0">Description (optional)</span> <!></label> <!> <button class="advanced-toggle svelte-c55mz0"><span class="caret svelte-c55mz0"> </span> Advanced</button> <!> <!> <div class="actions svelte-c55mz0"><button class="cancel-btn svelte-c55mz0">Cancel</button> <button class="plant-btn svelte-c55mz0"> </button></div></div>`);function SC(e,t){M(t,!0);let n=[`orientation`,`memory`],r=F(``),i=F(``),a=F(``),o=F(!1),s=F(``),c=F(!1),l=F(``),u=F(``),d=F(L([])),f=F(L(new Set(n))),p=F(L([])),m=F(``),h=F(!1),g=P(()=>H(p).filter(e=>e.enabled)),_=P(()=>H(g).find(e=>e.id===H(a))),v=P(()=>H(m).trim()?H(g).filter(e=>{let t=H(m).toLowerCase();return e.id.toLowerCase().includes(t)||e.name.toLowerCase().includes(t)||e.provider.toLowerCase().includes(t)}).slice(0,12):H(g).slice(0,12)),y=P(()=>!H(o)&&!!H(r).trim());ma(()=>{gd().then(e=>{let t=e.find(e=>e.key===`seed_soul`);t&&(I(u,t.content,!0),I(l,t.content,!0))}).catch(e=>{console.error(`Failed to load prompt templates:`,e)}),id().then(e=>{I(d,e,!0)}).catch(e=>{console.error(`Failed to load shared skills:`,e)}),Od().then(e=>{I(p,e,!0)}).catch(e=>{console.error(`Failed to load AI models:`,e)})});function b(e){let t=new Set(H(f));t.has(e)?t.delete(e):t.add(e),I(f,t,!0)}async function x(){let e=H(r).trim();if(e){I(o,!0),I(s,``);try{let n=H(c)&&H(l)!==H(u)?H(l):void 0,r=H(c)?[...H(f)]:void 0;await Tu(e,{description:H(i).trim()||void 0,model:H(a)||void 0,seedSoul:n,skills:r}),await Su(e),t.onCreated(e)}catch(e){I(s,e instanceof Error?e.message:`Failed to create`,!0),I(o,!1)}}}$a(e,{size:`340px`,get onClose(){return t.onClose},children:(e,n)=>{var u=xC(),p=B(R(u),2);Xa(B(R(p),2),{inputSize:`md`,autofocus:!0,placeholder:`e.g. luna`,onkeydown:e=>e.key===`Enter`&&x(),get value(){return H(r)},set value(e){I(r,e,!0)}}),A(p);var S=B(p,2);Xa(B(R(S),2),{inputSize:`md`,placeholder:`A curious mind who loves poetry...`,onkeydown:e=>e.key===`Enter`&&x(),get value(){return H(i)},set value(e){I(i,e,!0)}}),A(S);var C=B(S,2),w=e=>{var t=gC(),n=B(R(t),2),r=e=>{var t=fC(),n=R(t),r=R(n,!0);A(n);var i=B(n,2),o=R(i,!0);A(i),j(2),A(t),V(()=>{q(r,H(_).name),q(o,H(_).provider)}),U(`click`,t,()=>{I(a,``),I(h,!0),I(m,``)}),K(e,t)},i=e=>{var t=hC(),n=R(t);Xa(n,{type:`text`,placeholder:`Search models...`,onfocus:()=>{I(h,!0)},onblur:()=>{setTimeout(()=>{I(h,!1)},150)},get value(){return H(m)},set value(e){I(m,e,!0)}});var r=B(n,2),i=e=>{var t=mC();Y(t,21,()=>H(v),e=>e.id,(e,t)=>{var n=pC(),r=R(n),i=R(r,!0);A(r);var o=B(r,2),s=R(o,!0);A(o),A(n),V(()=>{q(i,H(t).name),q(s,H(t).provider)}),U(`click`,n,()=>{I(a,H(t).id,!0),I(h,!1),I(m,``)}),K(e,n)}),A(t),K(e,t)};J(r,e=>{H(h)&&H(v).length>0&&e(i)}),A(t),K(e,t)};J(n,e=>{H(_)?e(r):e(i,-1)}),A(t),K(e,t)};J(C,e=>{H(g).length>0&&e(w)});var T=B(C,2),E=R(T),ee=R(E,!0);A(E),j(),A(T);var te=B(T,2),ne=e=>{var t=yC(),n=z(t),r=B(R(n),2);hn(r);var i=B(r,2);i.textContent="Variables: ${name}, ${description}",A(n);var a=B(n,2),o=e=>{var t=vC(),n=B(R(t),2);Y(n,21,()=>H(d),ti,(e,t)=>{var n=_C(),r=R(n);Ki(r);var i=B(r,2),a=R(i,!0);A(i),A(n),V(e=>{Ji(r,e),q(a,H(t).id)},[()=>H(f).has(H(t).id)]),U(`change`,r,()=>b(H(t).id)),K(e,n)}),A(n),A(t),K(e,t)};J(a,e=>{H(d).length>0&&e(o)}),aa(r,()=>H(l),e=>I(l,e)),K(e,t)};J(te,e=>{H(c)&&e(ne)});var D=B(te,2),O=e=>{var t=bC(),n=R(t,!0);A(t),V(()=>q(n,H(s))),K(e,t)};J(D,e=>{H(s)&&e(O)});var re=B(D,2),ie=R(re),ae=B(ie,2);let k;var oe=R(ae,!0);A(ae),A(re),A(u),V(()=>{q(ee,H(c)?`▼`:`▶`),ae.disabled=!H(y),k=Z(ae,``,k,{opacity:H(y)?1:.5}),q(oe,H(o)?`Planting...`:`Plant`)}),U(`click`,T,()=>I(c,!H(c))),U(`click`,ie,function(...e){t.onClose?.apply(this,e)}),U(`click`,ae,x),K(e,u)},$$slots:{default:!0}}),N()}Lr([`click`,`change`]);var CC=W(`<div class="message error svelte-9vtzjd"> </div>`),wC=W(`<div class="message success svelte-9vtzjd"> </div>`),TC=W(`<img alt="Avatar preview" class="avatar-img svelte-9vtzjd" loading="lazy" decoding="async"/>`),EC=W(`<img alt="Avatar" class="avatar-img svelte-9vtzjd" loading="lazy" decoding="async"/>`),DC=W(`<div class="avatar-placeholder svelte-9vtzjd">?</div>`),OC=W(`<button type="button" class="save-btn svelte-9vtzjd"> </button>`),kC=W(`<button type="button" class="remove-btn svelte-9vtzjd">Remove</button>`),AC=W(`<div class="modal-body svelte-9vtzjd"><form><h3 class="section-title svelte-9vtzjd">Profile</h3> <!> <!> <div class="avatar-section svelte-9vtzjd"><div class="avatar-preview svelte-9vtzjd"><!></div> <div class="avatar-actions svelte-9vtzjd"><label class="avatar-upload-btn svelte-9vtzjd">Choose file <input type="file" accept="image/png,image/jpeg,image/gif,image/webp" hidden="" class="svelte-9vtzjd"/></label> <!> <!></div></div> <label class="field svelte-9vtzjd"><span class="label svelte-9vtzjd">Display name</span> <input type="text" placeholder="Optional display name" class="svelte-9vtzjd"/></label> <label class="field svelte-9vtzjd"><span class="label svelte-9vtzjd">Description</span> <textarea placeholder="A short description" rows="3" class="svelte-9vtzjd"></textarea></label> <button class="save-btn svelte-9vtzjd" type="submit"> </button></form> <hr class="divider svelte-9vtzjd"/> <form><h3 class="section-title svelte-9vtzjd">Change Password</h3> <!> <!> <label class="field svelte-9vtzjd"><span class="label svelte-9vtzjd">Current password</span> <input type="password" autocomplete="current-password" class="svelte-9vtzjd"/></label> <label class="field svelte-9vtzjd"><span class="label svelte-9vtzjd">New password</span> <input type="password" autocomplete="new-password" class="svelte-9vtzjd"/></label> <label class="field svelte-9vtzjd"><span class="label svelte-9vtzjd">Confirm new password</span> <input type="password" autocomplete="new-password" class="svelte-9vtzjd"/></label> <button class="save-btn svelte-9vtzjd" type="submit"> </button></form></div>`);function jC(e,t){M(t,!0);let n=F(``),r=F(``),i=F(null),a=F(``),o=F(``),s=F(!1),c=F(null),l=F(null),u=F(!1),d=F(``),f=F(``),p=F(``),m=F(``),h=F(``),g=F(!1);ma(()=>{_()});async function _(){try{let e=await Yl();e&&(I(n,e.display_name??``,!0),I(r,e.description??``,!0),I(i,e.avatar?`/api/auth/avatars/${e.avatar}`:null,!0))}catch{I(a,`Failed to load profile`)}}async function v(e){e.preventDefault(),I(a,``),I(o,``),I(s,!0);try{await lu({display_name:H(n).trim()||null,description:H(r).trim()||null}),I(o,`Profile updated`)}catch(e){I(a,e instanceof Error?e.message:`Failed to update profile`,!0)}finally{I(s,!1)}}function y(e){let t=e.target.files?.[0];t&&(I(c,t,!0),I(l,URL.createObjectURL(t),!0))}async function b(){if(H(c)){I(u,!0),I(a,``);try{let e=await uu(H(c));I(i,`/api/auth/avatars/${e}`),I(c,null),I(l,null)}catch(e){I(a,e instanceof Error?e.message:`Failed to upload avatar`,!0)}finally{I(u,!1)}}}async function x(){I(a,``);try{await du(),I(i,null),I(c,null),I(l,null)}catch(e){I(a,e instanceof Error?e.message:`Failed to remove avatar`,!0)}}async function S(e){if(e.preventDefault(),I(m,``),I(h,``),H(f)!==H(p)){I(m,`New passwords do not match`);return}if(H(f).length<1){I(m,`New password cannot be empty`);return}I(g,!0);try{await eu(H(d),H(f)),I(h,`Password changed successfully`),I(d,``),I(f,``),I(p,``)}catch(e){I(m,e instanceof Error?e.message:`Failed to change password`,!0)}finally{I(g,!1)}}$a(e,{size:`420px`,title:`User Settings`,get onClose(){return t.onClose},children:(e,t)=>{var _=AC(),C=R(_),w=B(R(C),2),T=e=>{var t=CC(),n=R(t,!0);A(t),V(()=>q(n,H(a))),K(e,t)};J(w,e=>{H(a)&&e(T)});var E=B(w,2),ee=e=>{var t=wC(),n=R(t,!0);A(t),V(()=>q(n,H(o))),K(e,t)};J(E,e=>{H(o)&&e(ee)});var te=B(E,2),ne=R(te),D=R(ne),O=e=>{var t=TC();V(()=>Xi(t,`src`,H(l))),K(e,t)},re=e=>{var t=EC();V(()=>Xi(t,`src`,H(i))),K(e,t)},ie=e=>{K(e,DC())};J(D,e=>{H(l)?e(O):H(i)?e(re,1):e(ie,-1)}),A(ne);var ae=B(ne,2),k=R(ae),oe=B(R(k));A(k);var se=B(k,2),ce=e=>{var t=OC(),n=R(t,!0);A(t),V(()=>{t.disabled=H(u),q(n,H(u)?`Uploading...`:`Upload`)}),U(`click`,t,b),K(e,t)};J(se,e=>{H(c)&&e(ce)});var le=B(se,2),ue=e=>{var t=kC();U(`click`,t,x),K(e,t)};J(le,e=>{H(i)&&!H(c)&&e(ue)}),A(ae),A(te);var de=B(te,2),fe=B(R(de),2);Ki(fe),Xi(fe,`maxlength`,100),A(de);var pe=B(de,2),me=B(R(pe),2);hn(me),Xi(me,`maxlength`,500),A(pe);var he=B(pe,2),ge=R(he,!0);A(he),A(C);var _e=B(C,4),ve=B(R(_e),2),ye=e=>{var t=CC(),n=R(t,!0);A(t),V(()=>q(n,H(m))),K(e,t)};J(ve,e=>{H(m)&&e(ye)});var be=B(ve,2),xe=e=>{var t=wC(),n=R(t,!0);A(t),V(()=>q(n,H(h))),K(e,t)};J(be,e=>{H(h)&&e(xe)});var Se=B(be,2),Ce=B(R(Se),2);Ki(Ce),A(Se);var we=B(Se,2),Te=B(R(we),2);Ki(Te),A(we);var Ee=B(we,2),De=B(R(Ee),2);Ki(De),A(Ee);var Oe=B(Ee,2),ke=R(Oe,!0);A(Oe),A(_e),A(_),V(()=>{he.disabled=H(s),q(ge,H(s)?`Saving...`:`Save Profile`),Oe.disabled=H(g),q(ke,H(g)?`Saving...`:`Change Password`)}),Ir(`submit`,C,v),U(`change`,oe,y),aa(fe,()=>H(n),e=>I(n,e)),aa(me,()=>H(r),e=>I(r,e)),Ir(`submit`,_e,S),aa(Ce,()=>H(d),e=>I(d,e)),aa(Te,()=>H(f),e=>I(f,e)),aa(De,()=>H(p),e=>I(p,e)),K(e,_)},$$slots:{default:!0}}),N()}Lr([`change`,`click`]);var MC=W(`<div class="banner svelte-rcoqqt"><span>Minds cannot think yet — no AI provider is configured.</span> <button class="settings-btn svelte-rcoqqt">add a provider in Settings</button></div>`);function NC(e,t){M(t,!0);let n=F(!0);Tn(()=>{let e=!0;async function t(){try{let t=await fetch(`/api/system/info`);if(!t.ok){console.debug(`[provider] poll returned`,t.status);return}let r=await t.json();e&&I(n,r.aiConfigured!==!1)}catch(e){console.debug(`[provider] poll failed:`,e)}}t();let r=setInterval(t,6e4);return()=>{e=!1,clearInterval(r)}});var r=Kr(),i=z(r),a=e=>{var n=MC(),r=B(R(n),2);A(n),U(`click`,r,function(...e){t.onOpenSettings?.apply(this,e)}),K(e,n)};J(i,e=>{H(n)||e(a)}),K(e,r),N()}Lr([`click`]);var PC=W(`<div class="empty svelte-h08x3h">Loading...</div>`),FC=W(`<div class="empty error-text svelte-h08x3h"> </div>`),IC=W(`<button class="crumb svelte-h08x3h"> </button>`),LC=W(`<button class="file-row svelte-h08x3h"><span class="file-icon svelte-h08x3h">..</span> <span class="file-name svelte-h08x3h">..</span></button>`),RC=W(`<button><span class="file-icon svelte-h08x3h"> </span> <span class="file-name svelte-h08x3h"> </span></button>`),zC=W(`<div class="empty-dir svelte-h08x3h">Empty directory</div>`),BC=W(`<div class="preview-empty svelte-h08x3h">Loading...</div>`),VC=W(`<div class="preview-empty error-text svelte-h08x3h"> </div>`),HC=W(`<div class="preview-image svelte-h08x3h"><img class="svelte-h08x3h"/></div>`),UC=W(`<div class="preview-markdown markdown-body svelte-h08x3h"></div>`),WC=W(`<pre class="preview-text svelte-h08x3h"><code class="svelte-h08x3h"> </code></pre>`),GC=W(`<div class="preview-empty svelte-h08x3h"><span class="preview-mime svelte-h08x3h"> </span> <a class="download-link svelte-h08x3h" target="_blank" rel="noopener">Download</a></div>`),KC=W(`<div class="preview-header svelte-h08x3h"><span class="preview-filename svelte-h08x3h"> </span> <a class="preview-link svelte-h08x3h" target="_blank" rel="noopener">open</a></div> <!>`,1),qC=W(`<div class="preview-empty svelte-h08x3h">Select a file to preview</div>`),JC=W(`<div class="browser svelte-h08x3h"><div class="file-list svelte-h08x3h"><div class="breadcrumb svelte-h08x3h"><button class="crumb svelte-h08x3h">home/</button> <!></div> <!> <!> <!></div> <div class="preview svelte-h08x3h"><!></div></div>`),YC=W(`<div class="public-files svelte-h08x3h"><!></div>`);function XC(e,t){M(t,!0);let n=F(L([])),r=F(!0),i=F(``),a=F(``),o=F(null),s=F(null),c=F(!1),l=F(``),u=F(L([])),d=new Set([`text/plain`,`text/html`,`text/css`,`text/markdown`,`application/javascript`,`application/json`,`application/xml`]),f=new Set([`image/png`,`image/jpeg`,`image/gif`,`image/svg+xml`,`image/webp`]),p=P(()=>H(u).length>0?`${H(u).join(`/`)}/`:``);async function m(){I(r,!0),I(i,``),I(o,null),I(s,null);try{let e=H(u).length>0?`${H(u).join(`/`)}/`:``,r=await fetch(`/api/minds/${encodeURIComponent(t.name)}/files/${e}`);if(!r.ok)throw Error(`Failed to load directory`);I(n,await r.json(),!0)}catch(e){I(i,e instanceof Error?e.message:`Failed to load`,!0),I(n,[],!0)}finally{I(r,!1)}}Tn(()=>{t.name,H(p),m()});async function h(e){if(e.type===`directory`){I(u,[...H(u),e.name],!0);return}H(s)&&H(y)&&URL.revokeObjectURL(H(s)),I(o,e.name,!0),I(c,!0),I(s,null),I(l,``),I(a,``);try{let n=H(p)+e.name,r=await fetch(`/api/minds/${encodeURIComponent(t.name)}/files/${n}`);if(!r.ok)throw Error(`Failed to load file`);I(l,r.headers.get(`content-type`)??``,!0);let i=H(l).split(`;`)[0].trim();if(d.has(i))I(s,await r.text(),!0);else if(f.has(i)){let e=await r.blob();I(s,URL.createObjectURL(e),!0)}else I(s,null)}catch(e){I(s,null),I(a,e instanceof Error?e.message:`Failed to load file`,!0)}finally{I(c,!1)}}function g(){I(u,H(u).slice(0,-1),!0)}function _(){I(u,[],!0)}let v=P(()=>H(l).split(`;`)[0].trim()),y=P(()=>f.has(H(v))),b=P(()=>d.has(H(v))),x=P(()=>H(v)===`text/markdown`||(H(o)?.endsWith(`.md`)??!1));Tn(()=>{let e=H(s),t=H(y);return()=>{e&&t&&URL.revokeObjectURL(e)}});let S=P(()=>[...H(n)].sort((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`directory`?-1:1));var C=YC(),w=R(C),T=e=>{K(e,PC())},E=e=>{var t=FC(),n=R(t,!0);A(t),V(()=>q(n,H(i))),K(e,t)},ee=e=>{var r=JC(),i=R(r),d=R(i),f=R(d);Y(B(f,2),17,()=>H(u),ti,(e,t,n)=>{var r=IC(),i=R(r);A(r),V(()=>q(i,`${H(t)??``}/`)),U(`click`,r,()=>I(u,H(u).slice(0,n+1),!0)),K(e,r)}),A(d);var m=B(d,2),v=e=>{var t=LC();U(`click`,t,g),K(e,t)};J(m,e=>{H(u).length>0&&e(v)});var C=B(m,2);Y(C,17,()=>H(S),e=>e.name,(e,t)=>{var n=RC();let r;var i=R(n),a=R(i,!0);A(i);var s=B(i,2),c=R(s);A(s),A(n),V(()=>{r=X(n,1,`file-row svelte-h08x3h`,null,r,{active:H(o)===H(t).name}),q(a,H(t).type===`directory`?`📁`:`📄`),q(c,`${H(t).name??``}${H(t).type===`directory`?`/`:``}`)}),U(`click`,n,()=>h(H(t))),K(e,n)});var w=B(C,2),T=e=>{K(e,zC())};J(w,e=>{H(n).length===0&&e(T)}),A(i);var E=B(i,2),ee=R(E),te=e=>{var n=KC(),r=z(n),i=R(r),u=R(i);A(i);var d=B(i,2);A(r);var f=B(r,2),m=e=>{K(e,BC())},h=e=>{var t=VC(),n=R(t,!0);A(t),V(()=>q(n,H(a))),K(e,t)},g=e=>{var t=HC(),n=R(t);A(t),V(()=>{Xi(n,`src`,H(s)),Xi(n,`alt`,H(o))}),K(e,t)},_=e=>{var t=UC();ui(t,()=>Al(H(s)),!0),A(t),K(e,t)},v=e=>{var t=WC(),n=R(t),r=R(n,!0);A(n),A(t),V(()=>q(r,H(s))),K(e,t)},S=e=>{var n=GC(),r=R(n),i=R(r,!0);A(r);var a=B(r,2);A(n),V(e=>{q(i,H(l)||`unknown type`),Xi(a,`href`,`/api/minds/${e??``}/files/${H(p)??``}${H(o)??``}`)},[()=>encodeURIComponent(t.name)]),K(e,n)};J(f,e=>{H(c)?e(m):H(a)?e(h,1):H(y)&&H(s)?e(g,2):H(x)&&H(s)!==null?e(_,3):H(b)&&H(s)!==null?e(v,4):e(S,-1)}),V(e=>{q(u,`${H(p)??``}${H(o)??``}`),Xi(d,`href`,`/api/minds/${e??``}/files/${H(p)??``}${H(o)??``}`)},[()=>encodeURIComponent(t.name)]),K(e,n)},ne=e=>{K(e,qC())};J(ee,e=>{H(o)?e(te):e(ne,-1)}),A(E),A(r),U(`click`,f,_),K(e,r)};J(w,e=>{H(r)?e(T):H(i)?e(E,1):e(ee,-1)}),A(C),K(e,C),N()}Lr([`click`]);function ZC(e,t,n){let r=null;function i(){r?.abort(),r=new AbortController;let i=r.signal;fetch(e,{signal:i}).then(async e=>{if(!e.ok){n?.(`Stream connection failed (${e.status})`);return}if(!e.body){n?.(`Stream has no body`);return}let r=e.body.getReader(),i=new TextDecoder,a=``;for(;;){let{done:e,value:n}=await r.read();if(e)break;a+=i.decode(n,{stream:!0});let o=a.split(`
82
+ `);a=o.pop()||``;for(let e of o){if(!e.startsWith(`data: `))continue;let n=e.slice(6);n&&t(n)}}}).catch(e=>{e instanceof DOMException&&e.name===`AbortError`||n?.(e.message||`Stream error`)})}function a(){r?.abort()}return{start:i,stop:a}}function QC(e,t){return ZC(`/api/system/logs`,e,t)}var $C=W(`<button>debug</button>`),ew=W(`<button> </button>`),tw=W(`<div class="filter-sep svelte-1208idv"></div> <div class="filter-group svelte-1208idv"></div>`,1),nw=W(`<button class="pill pill-clear svelte-1208idv">clear</button>`),rw=W(`<div class="pause-bar svelte-1208idv"><span>Scroll paused</span> <button class="resume-btn svelte-1208idv">Resume</button></div>`),iw=W(`<span class="error svelte-1208idv"> </span>`),aw=W(`<span class="waiting svelte-1208idv">Waiting for logs...</span>`),ow=W(`<span class="cat svelte-1208idv"> </span>`),sw=W(`<span class="data svelte-1208idv"> </span>`),cw=W(`<div class="log-line svelte-1208idv"><span class="ts svelte-1208idv"> </span> <span class="level svelte-1208idv"> </span> <!> <span class="msg svelte-1208idv"> <!></span></div>`),lw=W(`<div class="system-logs svelte-1208idv"><div class="header svelte-1208idv"><span class="title svelte-1208idv">System Logs</span> <span class="count svelte-1208idv"><!></span></div> <div class="filter-bar svelte-1208idv"><div class="filter-group svelte-1208idv"><button>info</button> <button>warn</button> <button>error</button> <!></div> <!> <!></div> <!> <div class="log-output svelte-1208idv"><!> <!></div></div>`);function uw(e,t){M(t,!0);let n={info:`var(--text-2)`,warn:`var(--yellow)`,error:`var(--red)`,debug:`var(--text-2)`},r=F(L([])),i=F(!0),a=F(``),o,s=new Gl,c=new Gl,l=P(()=>H(r).some(e=>e.level===`debug`)),u=P(()=>[...new Set(H(r).map(e=>e.cat).filter(e=>!!e))].sort()),d=P(()=>s.size>0||c.size>0),f=P(()=>H(d)?H(r).filter(e=>!s.has(e.level)&&(!e.cat||!c.has(e.cat))):H(r));function p(e,t){e.has(t)?e.delete(t):e.add(t)}function m(){s.clear(),c.clear()}function h(e){try{let t=JSON.parse(e);H(r).push(t),H(r).length>2e3&&I(r,H(r).slice(-2e3),!0)}catch{}}Tn(()=>{I(a,``);let{start:e,stop:t}=QC(h,e=>{I(a,e,!0)});return e(),t}),Tn(()=>{let e=H(f).length;H(i)&&o&&e>0&&(o.scrollTop=o.scrollHeight)});function g(){if(!o)return;let e=o.scrollHeight-o.scrollTop-o.clientHeight<30;I(i,e)}function _(){I(i,!0),o&&(o.scrollTop=o.scrollHeight)}function v(e){try{return new Date(e).toLocaleTimeString()}catch{return e}}function y(e){return Object.entries(e).map(([e,t])=>`${e}=${typeof t==`string`?t:JSON.stringify(t)}`).join(` `)}var b=lw(),x=R(b),S=B(R(x),2),C=R(S),w=e=>{var t=G();V(()=>q(t,`${H(f).length??``} / ${H(r).length??``} entries`)),K(e,t)},T=e=>{var t=G();V(()=>q(t,`${H(r).length??``} entries`)),K(e,t)};J(C,e=>{H(d)?e(w):e(T,-1)}),A(S),A(x);var E=B(x,2),ee=R(E),te=R(ee);let ne;var D=B(te,2);let O;var re=B(D,2);let ie;var ae=B(re,2),k=e=>{var t=$C();let n;V(e=>n=X(t,1,`pill pill-debug svelte-1208idv`,null,n,e),[()=>({inactive:s.has(`debug`)})]),U(`click`,t,()=>p(s,`debug`)),K(e,t)};J(ae,e=>{H(l)&&e(k)}),A(ee);var oe=B(ee,2),se=e=>{var t=tw(),n=B(z(t),2);Y(n,20,()=>H(u),e=>e,(e,t)=>{var n=ew();let r;var i=R(n,!0);A(n),V(e=>{r=X(n,1,`pill pill-cat svelte-1208idv`,null,r,e),q(i,t)},[()=>({inactive:c.has(t)})]),U(`click`,n,()=>p(c,t)),K(e,n)}),A(n),K(e,t)};J(oe,e=>{H(u).length>0&&e(se)});var ce=B(oe,2),le=e=>{var t=nw();U(`click`,t,m),K(e,t)};J(ce,e=>{H(d)&&e(le)}),A(E);var ue=B(E,2),de=e=>{var t=rw(),n=B(R(t),2);A(t),U(`click`,n,_),K(e,t)};J(ue,e=>{H(i)||e(de)});var fe=B(ue,2),pe=R(fe),me=e=>{var t=iw(),n=R(t,!0);A(t),V(()=>q(n,H(a))),K(e,t)},he=e=>{K(e,aw())};J(pe,e=>{H(a)?e(me):H(r).length===0&&e(he,1)}),Y(B(pe,2),17,()=>H(f),ti,(e,t)=>{var r=cw(),i=R(r),a=R(i,!0);A(i);var o=B(i,2);let s;var c=R(o,!0);A(o);var l=B(o,2),u=e=>{var n=ow(),r=R(n,!0);A(n),V(()=>q(r,H(t).cat)),K(e,n)};J(l,e=>{H(t).cat&&e(u)});var d=B(l,2),f=R(d,!0),p=B(f),m=e=>{var n=sw(),r=R(n,!0);A(n),V(e=>q(r,e),[()=>y(H(t).data)]),K(e,n)};J(p,e=>{H(t).data&&e(m)}),A(d),A(r),V(e=>{q(a,e),s=Z(o,``,s,{color:n[H(t).level]||`var(--text-2)`}),q(c,H(t).level),q(f,H(t).msg)},[()=>v(H(t).ts)]),K(e,r)}),A(fe),ua(fe,e=>o=e,()=>o),A(b),V((e,t,n)=>{ne=X(te,1,`pill pill-info svelte-1208idv`,null,ne,e),O=X(D,1,`pill pill-warn svelte-1208idv`,null,O,t),ie=X(re,1,`pill pill-error svelte-1208idv`,null,ie,n)},[()=>({inactive:s.has(`info`)}),()=>({inactive:s.has(`warn`)}),()=>({inactive:s.has(`error`)})]),U(`click`,te,()=>p(s,`info`)),U(`click`,D,()=>p(s,`warn`)),U(`click`,re,()=>p(s,`error`)),Ir(`scroll`,fe,g),K(e,b),N()}Lr([`click`]);var dw=W(`<span class="error svelte-1uhe9s"> </span>`),fw=W(`<span class="updating svelte-1uhe9s">Updating...</span>`),pw=W(`<span> </span> <button class="update-btn svelte-1uhe9s">update</button> <button class="dismiss-btn svelte-1uhe9s">&times;</button>`,1),mw=W(`<div class="banner svelte-1uhe9s"><!></div>`);function hw(e,t){M(t,!0);let n=F(null),r=F(!1),i=F(!1),a=F(null);Tn(()=>{let e=!0;async function t(){try{let t=await fetch(`/api/health`);if(!t.ok)return;let r=await t.json();e&&r.updateAvailable?I(n,{current:r.version,latest:r.latest,updateAvailable:!0},!0):e&&I(n,null)}catch(e){console.debug(`[update] poll failed:`,e)}}t();let r=setInterval(t,6e4);return()=>{e=!1,clearInterval(r)}});async function o(){I(i,!0);try{if(!(await fetch(`/api/system/update`,{method:`POST`})).ok){I(i,!1),I(a,`Update failed`),setTimeout(()=>{I(a,null)},5e3);return}let e=Date.now();for(await new Promise(e=>setTimeout(e,3e3));Date.now()-e<6e4;){try{let e=await fetch(`/api/health`);if(e.ok&&(await e.json()).version!==H(n)?.current){window.location.reload();return}}catch(e){console.debug(`[update] health check failed:`,e)}await new Promise(e=>setTimeout(e,2e3))}window.location.reload()}catch{I(i,!1),I(a,`Update failed`),setTimeout(()=>{I(a,null)},5e3)}}var s=Kr(),c=z(s),l=e=>{var t=mw(),s=R(t),c=e=>{var t=dw(),n=R(t,!0);A(t),V(()=>q(n,H(a))),K(e,t)},l=e=>{K(e,fw())},u=e=>{var t=pw(),i=z(t),a=R(i);A(i);var s=B(i,2),c=B(s,2);V(()=>q(a,`Update available: v${H(n).current??``} → v${H(n).latest??``}`)),U(`click`,s,o),U(`click`,c,()=>I(r,!0)),K(e,t)};J(s,e=>{H(a)?e(c):H(i)?e(l,1):e(u,-1)}),A(t),K(e,t)};J(c,e=>{H(n)?.updateAvailable&&!H(r)&&e(l)}),K(e,s),N()}Lr([`click`]);function gw(e){if(!e.checked)return`loading`;let t=e.hasAccount&&!e.loggedIn;return!e.setupComplete&&!t?`setup`:e.needsConnection?`connection`:e.loggedIn?`app`:`login`}function _w(e,t){let n=e instanceof Error?e.message:String(e);return/\bunauthorized\b|\bforbidden\b|\b401\b|\b403\b/i.test(n)?`Your session has expired — please log in again.`:n||t}var vw=W(`<button class="clear-btn svelte-q0li9w" type="button">×</button>`),yw=W(`<button type="button"><span class="option-empty svelte-q0li9w"> </span></button>`),bw=W(`<button type="button"> </button>`),xw=W(`<span class="dropdown-empty svelte-q0li9w">No matches</span>`),Sw=W(`<div class="dropdown svelte-q0li9w"><!> <!> <!></div>`),Cw=W(`<div class="model-select svelte-q0li9w"><input type="text" class="text-input svelte-q0li9w"/> <!> <!></div>`);function ww(e,t){M(t,!0);let n=pa(t,`value`,15,``),r=pa(t,`placeholder`,3,`Search models...`),i=pa(t,`emptyLabel`,3,`None`),a=F(``),o=F(!1),s=F(void 0),c,l=P(()=>H(o)?H(a):t.items.find(e=>e.id===n())?.label??(n()?n():``)),u=P(()=>{let e=H(a).toLowerCase().trim();return e?t.items.filter(t=>t.id.toLowerCase().includes(e)||t.label.toLowerCase().includes(e)):t.items});function d(e){let t=e.target.value;clearTimeout(c),c=setTimeout(()=>{I(a,t,!0),I(o,!0)},150)}function f(){I(a,``),I(o,!0)}function p(){setTimeout(()=>{I(o,!1),I(a,``)},200)}function m(e){n(e),I(o,!1),I(a,``),H(s)?.blur()}function h(){n(``),I(o,!1),I(a,``)}var g=Cw(),_=R(g);Ki(_),ua(_,e=>I(s,e),()=>H(s));var v=B(_,2),y=e=>{var t=vw();U(`mousedown`,t,e=>{e.preventDefault(),h()}),K(e,t)};J(v,e=>{n()&&!H(o)&&e(y)});var b=B(v,2),x=e=>{var t=Sw(),r=R(t),a=e=>{var t=yw();let r;var a=R(t),o=R(a,!0);A(a),A(t),V(()=>{r=X(t,1,`dropdown-option svelte-q0li9w`,null,r,{selected:!n()}),q(o,i())}),U(`mousedown`,t,e=>{e.preventDefault(),m(``)}),K(e,t)};J(r,e=>{i()&&e(a)});var o=B(r,2);Y(o,17,()=>H(u),e=>e.id,(e,t)=>{var r=bw();let i;var a=R(r,!0);A(r),V(()=>{i=X(r,1,`dropdown-option svelte-q0li9w`,null,i,{selected:H(t).id===n()}),q(a,H(t).label)}),U(`mousedown`,r,e=>{e.preventDefault(),m(H(t).id)}),K(e,r)});var s=B(o,2),c=e=>{K(e,xw())};J(s,e=>{H(u).length===0&&e(c)}),A(t),K(e,t)};J(b,e=>{H(o)&&e(x)}),A(g),V(()=>{qi(_,H(l)),Xi(_,`placeholder`,r())}),U(`input`,_,d),Ir(`focus`,_,f),Ir(`blur`,_,p),K(e,g),N()}Lr([`input`,`mousedown`]);var Tw=W(`<div class="error svelte-1x5emjp"> </div> <button class="retry-btn svelte-1x5emjp">Retry</button>`,1),Ew=W(`<div class="loading-text svelte-1x5emjp">Loading providers...</div>`),Dw=W(`<span class="model-tag svelte-1x5emjp"> <button class="model-tag-remove svelte-1x5emjp">×</button></span>`),Ow=W(`<div class="model-tags svelte-1x5emjp"></div>`),kw=W(`<span class="dim svelte-1x5emjp">No models enabled</span>`),Aw=W(`<div class="provider-card svelte-1x5emjp"><div class="provider-header svelte-1x5emjp"><span class="provider-name svelte-1x5emjp"> </span> <span class="auth-badge svelte-1x5emjp"> </span> <button class="remove-btn svelte-1x5emjp">Remove</button></div> <div class="provider-models svelte-1x5emjp"><!> <button class="add-model-btn svelte-1x5emjp">Add model</button></div></div>`),jw=W(`<button class="add-provider-btn svelte-1x5emjp" type="button">+ Add a provider</button>`),Mw=W(`<div class="model-defaults svelte-1x5emjp"><span class="label svelte-1x5emjp">Spirit model</span> <!> <div class="hint svelte-1x5emjp">The model that runs Volute's guiding spirit.</div> <span class="label mt svelte-1x5emjp">Utility model <span class="optional svelte-1x5emjp">(optional)</span></span> <!> <div class="hint svelte-1x5emjp">A smaller model for summaries and background tasks.</div></div>`),Nw=W(`<div class="error svelte-1x5emjp"> </div>`),Pw=W(`<!> <!> <!> <!>`,1),Fw=W(`<button class="btn-provider svelte-1x5emjp" type="button"> </button>`),Iw=W(`<span class="oauth-heading svelte-1x5emjp">Sign in with</span> <div class="oauth-buttons modal-oauth-buttons svelte-1x5emjp"></div>`,1),Lw=W(`<!> <button class="link-btn svelte-1x5emjp" type="button"> </button>`,1),Rw=W(`<button class="autocomplete-option svelte-1x5emjp" type="button"> </button>`),zw=W(`<div class="autocomplete-list svelte-1x5emjp"></div>`),Bw=W(`<form class="api-key-form svelte-1x5emjp"><input type="password" placeholder="API key" class="text-input svelte-1x5emjp"/> <button type="submit" class="save-btn svelte-1x5emjp"> </button></form>`),Vw=W(`<button class="link-btn svelte-1x5emjp" type="button">back to sign-in options</button>`),Hw=W(`<div class="api-key-section svelte-1x5emjp"><div class="autocomplete svelte-1x5emjp"><input type="text" class="text-input svelte-1x5emjp" placeholder="Search providers..."/> <!></div> <!></div> <!>`,1),Uw=W(`<div class="modal-body svelte-1x5emjp"><!> <!></div>`),Ww=W(`<span class="dim svelte-1x5emjp">Verifying...</span>`),Gw=W(`<div class="oauth-steps svelte-1x5emjp"><div class="oauth-step svelte-1x5emjp"><span class="step-num svelte-1x5emjp">1</span> Authorize in the opened window</div> <div class="oauth-step svelte-1x5emjp"><span class="step-num svelte-1x5emjp">2</span> Copy the redirect URL and paste below</div></div> <form class="api-key-form svelte-1x5emjp"><input type="text" placeholder="Paste the redirect URL here" class="text-input svelte-1x5emjp"/> <button type="submit" class="save-btn svelte-1x5emjp">Submit</button></form>`,1),Kw=W(`<p class="oauth-device-code svelte-1x5emjp"> </p>`),qw=W(`<span class="dim svelte-1x5emjp">Waiting for authorization...</span>`),Jw=W(`<p class="modal-text svelte-1x5emjp">Authorize at:</p> <a target="_blank" rel="noopener" class="oauth-link svelte-1x5emjp"> </a> <!> <!>`,1),Yw=W(`<span class="dim svelte-1x5emjp">Starting OAuth...</span>`),Xw=W(`<button class="model-option svelte-1x5emjp"> </button>`),Zw=W(`<div class="model-list svelte-1x5emjp"></div>`),Qw=W(`<button class="custom-add-btn svelte-1x5emjp"> </button> <span class="dim svelte-1x5emjp">For a model not yet in the catalog. Settings are inherited from a built-in model of this provider.</span>`,1),$w=W(`<span class="dim svelte-1x5emjp">No more models available</span>`),eT=W(`<div class="modal-body svelte-1x5emjp"><input type="text" placeholder="Search or type a model id..." class="text-input svelte-1x5emjp"/> <!> <!> <!></div>`);function tT(e,t){M(t,!0);let n=pa(t,`showModelDefaults`,3,!1),r=pa(t,`spiritModel`,15,``),i=pa(t,`utilityModel`,15,``),a=F(L([])),o=F(L([])),s=F(``),c=F(!1),l=F(``),u=F(!1),d=F(`oauth`),f=F(``),p=F(``),m=F(``),h=F(``),g=F(``),_=F(``),v=F(!1),y=F(!1),b=F(!1),x=F(``),S=F(!1),C=F(``),w=F(!1),T=F(``),E=F(``),ee=P(()=>H(a).filter(e=>e.configured)),te=P(()=>H(a).filter(e=>!e.configured)),ne=P(()=>H(te).filter(e=>e.oauth)),D=P(()=>H(f).trim()?H(te).filter(e=>e.id.toLowerCase().includes(H(f).toLowerCase())):H(te)),O=P(()=>H(o).filter(e=>e.enabled)),re=P(()=>typeof location<`u`&&location.hostname!==`localhost`&&location.hostname!==`127.0.0.1`),ie={"Google Cloud Code Assist":`Google Cloud`,"ChatGPT Plus/Pro":`OpenAI`};function ae(e){let t=(e.oauthName??e.id).replace(/\s*\(.*\)/,``).trim();return ie[t]??(t||e.id)}function k(e){return H(O).filter(t=>t.provider===e)}let oe=P(()=>H(E).trim()?H(o).filter(e=>!e.enabled&&e.provider===H(T)&&e.id.toLowerCase().includes(H(E).toLowerCase())).slice(0,12):H(o).filter(e=>!e.enabled&&e.provider===H(T)).slice(0,12)),se=P(()=>H(E).trim().length>0&&!H(o).some(e=>e.provider===H(T)&&e.id.toLowerCase()===H(E).trim().toLowerCase()));function ce(e){return e===`api_key`?`API key`:e===`oauth`?`OAuth`:e===`env_var`?`env var`:``}Tn(()=>{H(O)&&t.onLoad?.(H(O))});async function le(){I(l,``);try{I(a,await Dd(),!0),I(o,await Od(),!0)}catch(e){console.warn(`[AiProviders] failed to load providers/models:`,e),I(l,_w(e,`Failed to load providers. Please try again.`),!0)}}function ue(){I(u,!1),I(h,``),I(g,``),I(_,``),I(v,!1),I(y,!1),I(b,!1),I(x,``),I(S,!1),I(C,``),I(d,`oauth`),I(f,``),I(p,``),I(m,``),I(s,``)}function de(){ue(),I(u,!0)}async function fe(){if(!H(p)||!H(m).trim())return;I(s,``),I(c,!0);let e=H(p);try{await kd(H(p),H(m).trim()),ue(),await le(),I(T,e,!0),I(E,``),I(w,!0)}catch(e){I(s,e instanceof Error?e.message:`Failed to save provider`,!0)}I(c,!1)}async function pe(e){I(c,!0),I(s,``);try{await Ad(e);let t=H(o).filter(t=>t.provider===e&&t.enabled);for(let e of t)i()===e.qualifiedId&&i(``),r()===e.qualifiedId&&r(``);await le()}catch(e){I(s,e instanceof Error?e.message:`Failed to remove provider`,!0)}I(c,!1)}async function me(e){I(s,``),I(h,e,!0),I(c,!0);try{let t=await jd(e);I(_,t.flowId,!0),I(y,!!t.needsManualCode),I(C,t.instructions??``,!0),I(v,!0),t.url&&(I(g,t.url,!0),window.open(t.url,`_blank`)),he()}catch(e){I(s,e instanceof Error?e.message:`OAuth failed`,!0),I(h,``)}I(c,!1)}async function he(){let e=0;for(;H(v);){await new Promise(e=>setTimeout(e,2500));try{let t=await Md(H(_));if(e=0,t.instructions&&!H(C)&&I(C,t.instructions,!0),t.url&&!H(g)&&I(g,t.url,!0),t.waitingForCode&&I(b,!0),t.status===`complete`){I(v,!1);let e=H(h);ue(),await le(),I(T,e,!0),I(E,``),I(w,!0);return}else if(t.status===`error`){I(v,!1),I(g,``),I(b,!1),I(S,!1),I(s,t.error??`OAuth failed`,!0),I(h,``);return}}catch{if(e++,e>=5){I(v,!1),I(g,``),I(S,!1),I(s,`Lost connection while waiting for OAuth`),I(h,``);return}}}}async function ge(){if(!(!H(x).trim()||!H(_))){I(s,``),I(S,!0);try{await Nd(H(_),H(x).trim()),I(x,``)}catch(e){I(s,e instanceof Error?e.message:`Failed to submit code`,!0),I(S,!1)}}}function _e(){let e=H(x).trim();e&&/^https?:\/\//.test(e)&&ge()}async function ve(e){let t=[...H(O).map(e=>e.qualifiedId),e];try{await Pd(t),I(o,H(o).map(t=>t.qualifiedId===e?{...t,enabled:!0}:t),!0),I(E,``),I(w,!1)}catch(e){I(s,e instanceof Error?e.message:`Failed to add model`,!0)}}async function ye(){let e=H(E).trim();if(e)try{await Fd(H(T),e),I(E,``),I(w,!1),await le()}catch(e){I(s,e instanceof Error?e.message:`Failed to add custom model`,!0)}}async function be(e){if(e.custom){try{await Id(e.provider,e.id),I(o,H(o).filter(t=>t.qualifiedId!==e.qualifiedId),!0),i()===e.qualifiedId&&i(``),r()===e.qualifiedId&&r(``)}catch(e){I(s,e instanceof Error?e.message:`Failed to remove custom model`,!0)}return}let t=H(O).map(e=>e.qualifiedId).filter(t=>t!==e.qualifiedId);try{await Pd(t),I(o,H(o).map(t=>t.qualifiedId===e.qualifiedId?{...t,enabled:!1}:t),!0),i()===e.qualifiedId&&i(``),r()===e.qualifiedId&&r(``)}catch(e){I(s,e instanceof Error?e.message:`Failed to remove model`,!0)}}var xe={load:le},Se=Pw(),Ce=z(Se),we=e=>{var t=Tw(),n=z(t),r=R(n,!0);A(n);var i=B(n,2);V(()=>q(r,H(l))),U(`click`,i,()=>le()),K(e,t)},Te=e=>{K(e,Ew())},Ee=e=>{var t=Pw(),a=z(t);Y(a,17,()=>H(ee),e=>e.id,(e,t)=>{let n=P(()=>k(H(t).id));var r=Aw(),i=R(r),a=R(i),o=R(a,!0);A(a);var l=B(a,2),u=R(l,!0);A(l);var d=B(l,2);A(i);var f=B(i,2),p=R(f),m=e=>{var t=Ow();Y(t,21,()=>H(n),e=>e.qualifiedId,(e,t)=>{var n=Dw(),r=R(n),i=B(r);A(n),V(()=>q(r,`${H(t).id??``} `)),U(`click`,i,()=>be(H(t))),K(e,n)}),A(t),K(e,t)},h=e=>{K(e,kw())};J(p,e=>{H(n).length>0?e(m):e(h,-1)});var g=B(p,2);A(f),A(r),V(e=>{q(o,H(t).id),q(u,e),d.disabled=H(c)},[()=>ce(H(t).authMethod)]),U(`click`,d,()=>pe(H(t).id)),U(`click`,g,()=>{I(T,H(t).id,!0),I(E,``),I(s,``),I(w,!0)}),K(e,r)});var o=B(a,2),l=e=>{var t=jw();U(`click`,t,de),K(e,t)};J(o,e=>{H(te).length>0&&e(l)});var d=B(o,2),f=e=>{var t=Mw(),n=B(R(t),2);{let e=P(()=>H(O).map(e=>({id:e.qualifiedId,label:`${e.name} · ${e.provider}`})));ww(n,{get items(){return H(e)},placeholder:`Search models...`,get value(){return r()},set value(e){r(e)}})}var a=B(n,6);{let e=P(()=>H(O).map(e=>({id:e.qualifiedId,label:`${e.name} · ${e.provider}`})));ww(a,{get items(){return H(e)},placeholder:`Search models...`,emptyLabel:`None`,get value(){return i()},set value(e){i(e)}})}j(2),A(t),K(e,t)};J(d,e=>{n()&&H(O).length>0&&e(f)});var p=B(d,2),m=e=>{var t=Nw(),n=R(t,!0);A(t),V(()=>q(n,H(s))),K(e,t)};J(p,e=>{H(s)&&!H(u)&&e(m)}),K(e,t)};J(Ce,e=>{H(l)?e(we):H(a).length===0?e(Te,1):e(Ee,-1)});var De=B(Ce,2),Oe=e=>{$a(e,{onClose:()=>{H(v)||ue()},size:`420px`,title:`Add a provider`,children:(e,t)=>{var n=Uw(),r=R(n),i=e=>{var t=Lw(),n=z(t),r=e=>{var t=Iw(),n=B(z(t),2);Y(n,21,()=>H(ne),e=>e.id,(e,t)=>{var n=Fw(),r=R(n,!0);A(n),V(e=>{n.disabled=H(c),q(r,e)},[()=>ae(H(t))]),U(`click`,n,()=>me(H(t).id)),K(e,n)}),A(n),K(e,t)};J(n,e=>{H(ne).length>0&&e(r)});var i=B(n,2),a=R(i,!0);A(i),V(()=>q(a,H(ne).length>0?`or add an API key`:`Add an API key`)),U(`click`,i,()=>{I(d,`apikey`),I(f,``),I(p,``)}),K(e,t)},a=e=>{var t=Hw(),n=z(t),r=R(n),i=R(r);Ki(i);var a=B(i,2),o=e=>{var t=zw();Y(t,21,()=>H(D),e=>e.id,(e,t)=>{var n=Rw(),r=R(n,!0);A(n),V(()=>q(r,H(t).id)),U(`click`,n,()=>{I(p,H(t).id,!0),I(f,H(t).id,!0)}),K(e,n)}),A(t),K(e,t)};J(a,e=>{!H(p)&&H(D).length>0&&e(o)}),A(r);var s=B(r,2),l=e=>{var t=Bw(),n=R(t);Ki(n);var r=B(n,2),i=R(r,!0);A(r),A(t),V(e=>{r.disabled=e,q(i,H(c)?`...`:`Save`)},[()=>H(c)||!H(m).trim()]),Ir(`submit`,t,e=>{e.preventDefault(),fe()}),aa(n,()=>H(m),e=>I(m,e)),K(e,t)};J(s,e=>{H(p)&&e(l)}),A(n);var u=B(n,2),h=e=>{var t=Vw();U(`click`,t,()=>{I(d,`oauth`)}),K(e,t)};J(u,e=>{H(ne).length>0&&e(h)}),U(`input`,i,()=>{I(p,``)}),aa(i,()=>H(f),e=>I(f,e)),K(e,t)};J(r,e=>{H(d)===`oauth`?e(i):e(a,-1)});var o=B(r,2),l=e=>{var t=Nw(),n=R(t,!0);A(t),V(()=>q(n,H(s))),K(e,t)};J(o,e=>{H(s)&&e(l)}),A(n),K(e,n)},$$slots:{default:!0}})};J(De,e=>{H(u)&&!H(h)&&e(Oe)});var ke=B(De,2),Ae=e=>{{let t=P(()=>H(a).find(e=>e.id===H(h))?.oauthName??H(h));$a(e,{onClose:()=>{H(v)||ue()},size:`420px`,get title(){return`Sign in with ${H(t)??``}`},children:(e,t)=>{var n=Uw(),r=R(n),i=e=>{K(e,Ww())},a=e=>{var t=Gw(),n=B(z(t),2),r=R(n);Ki(r);var i=B(r,2);A(n),V(e=>i.disabled=e,[()=>!H(x).trim()]),Ir(`submit`,n,e=>{e.preventDefault(),ge()}),U(`input`,r,_e),aa(r,()=>H(x),e=>I(x,e)),K(e,t)},o=e=>{var t=Jw(),n=B(z(t),2),r=R(n,!0);A(n);var i=B(n,2),a=e=>{var t=Kw(),n=R(t,!0);A(t),V(()=>q(n,H(C))),K(e,t)};J(i,e=>{H(C)&&e(a)});var o=B(i,2),s=e=>{K(e,qw())};J(o,e=>{H(v)&&e(s)}),V(()=>{Xi(n,`href`,H(g)),q(r,H(g))}),K(e,t)},l=e=>{K(e,qw())},u=e=>{K(e,Yw())};J(r,e=>{H(S)?e(i):H(g)&&(H(y)&&H(re)||H(b))?e(a,1):H(g)&&!H(y)?e(o,2):H(v)?e(l,3):H(c)&&e(u,4)});var d=B(r,2),f=e=>{var t=Nw(),n=R(t,!0);A(t),V(()=>q(n,H(s))),K(e,t)};J(d,e=>{H(s)&&e(f)}),A(n),K(e,n)},$$slots:{default:!0}})}};J(ke,e=>{H(h)&&e(Ae)});var je=B(ke,2),Me=e=>{$a(e,{onClose:()=>{I(w,!1)},size:`420px`,get title(){return`Add model — ${H(T)??``}`},children:(e,t)=>{var n=eT(),r=R(n);Ki(r);var i=B(r,2),a=e=>{var t=Zw();Y(t,21,()=>H(oe),e=>e.qualifiedId,(e,t)=>{var n=Xw(),r=R(n,!0);A(n),V(()=>q(r,H(t).id)),U(`click`,n,()=>ve(H(t).qualifiedId)),K(e,n)}),A(t),K(e,t)};J(i,e=>{H(oe).length>0&&e(a)});var o=B(i,2),c=e=>{var t=Qw(),n=z(t),r=R(n);A(n),j(2),V(e=>q(r,`Add “${e??``}” as a custom model`),[()=>H(E).trim()]),U(`click`,n,ye),K(e,t)},l=e=>{K(e,$w())};J(o,e=>{H(se)?e(c):H(oe).length===0&&e(l,1)});var u=B(o,2),d=e=>{var t=Nw(),n=R(t,!0);A(t),V(()=>q(n,H(s))),K(e,t)};J(u,e=>{H(s)&&e(d)}),A(n),aa(r,()=>H(E),e=>I(E,e)),K(e,n)},$$slots:{default:!0}})};return J(je,e=>{H(w)&&e(Me)}),K(e,Se),N(xe)}Lr([`click`,`input`]);var nT=W(`<div></div>`),rT=W(`<div class="steps svelte-48ammf"></div>`),iT=W(`<div class="welcome svelte-48ammf"><div class="welcome-text svelte-48ammf">A platform for AI experience. Create minds with persistent memory,
83
+ continuous identity, and the freedom to grow.</div> <button class="submit-btn svelte-48ammf">Get started</button></div>`),aT=W(`<div class="systems-status svelte-48ammf"><span class="systems-label svelte-48ammf">Registered as <strong class="svelte-48ammf"> </strong></span> <button type="button" class="link-btn svelte-48ammf">Disconnect</button></div>`),oT=W(`<div class="error svelte-48ammf"> </div>`),sT=W(`<div class="hint svelte-48ammf">Used for your subdomain on volute.systems.</div>`),cT=W(`<div class="systems-register"><label class="label svelte-48ammf" for="systemsSlug">System username</label> <div class="slug-row svelte-48ammf"><!> <button type="button" class="save-btn svelte-48ammf"> </button></div> <!> <button type="button" class="link-btn mt-sm svelte-48ammf">or login with an existing key</button></div>`),lT=W(`<div class="systems-login"><label class="label svelte-48ammf" for="systemsApiKey">API key</label> <div class="slug-row svelte-48ammf"><!> <button type="button" class="save-btn svelte-48ammf"> </button></div> <button type="button" class="link-btn mt-sm svelte-48ammf">back to registration</button></div>`),uT=W(`<button type="button" class="systems-btn svelte-48ammf">Register with volute.systems</button> <button type="button" class="link-btn svelte-48ammf">or login with an existing key</button>`,1),dT=W(`<div class="advanced-section svelte-48ammf"><label class="toggle-row svelte-48ammf"><input type="checkbox"/> <span>Allow access from other devices</span></label> <div class="hint svelte-48ammf">Connect from other computers on your network.</div> <label class="toggle-row svelte-48ammf"><input type="checkbox"/> <span>Start on boot</span></label> <div class="hint svelte-48ammf">Install as a service so Volute starts automatically.</div> <label class="toggle-row svelte-48ammf"><input type="checkbox"/> <span>Enable Tailscale HTTPS</span></label> <div class="hint svelte-48ammf">Serve over HTTPS using your Tailscale domain. Requires Tailscale to be running.</div></div>`),fT=W(`<button type="button" class="advanced-toggle svelte-48ammf"><span>&#9654;</span> Advanced</button> <!>`,1),pT=W(`<div class="step-title svelte-48ammf">Your system</div> <form><label class="label svelte-48ammf" for="systemName">System name</label> <!> <div class="hint svelte-48ammf">A display name for this Volute installation.</div> <label class="label mt svelte-48ammf" for="systemDescription">Description <span class="optional svelte-48ammf">(optional)</span></label> <textarea id="systemDescription" placeholder="What is this system for?" class="textarea svelte-48ammf" rows="2"></textarea> <div class="systems-section svelte-48ammf"><!> <!></div> <!> <!> <div class="button-row svelte-48ammf"><button type="button" class="back-btn svelte-48ammf">Back</button> <button type="submit" class="submit-btn flex-1 svelte-48ammf"> </button></div></form>`,1),mT=W(`<label class="label mt svelte-48ammf" for="username">Username</label> <!>`,1),hT=W(`<div class="username-preview svelte-48ammf">You'll sign in as <strong class="svelte-48ammf"> </strong> <button type="button" class="change-btn svelte-48ammf">(change)</button></div>`),gT=W(`<div class="step-title svelte-48ammf">Your account</div> <form><input type="hidden" name="username" autocomplete="username"/> <label class="label svelte-48ammf" for="displayName">Display name</label> <!> <!> <label class="label mt svelte-48ammf" for="password">Password</label> <!> <!> <div class="button-row svelte-48ammf"><button type="button" class="back-btn svelte-48ammf">Back</button> <button type="submit" class="submit-btn flex-1 svelte-48ammf"> </button></div></form>`,1),_T=W(`<div class="step-title svelte-48ammf">AI providers</div> <div class="step-desc svelte-48ammf">An AI provider is the engine your minds think with. Connect one and choose which
84
84
  models they can use — the spirit model is what your system's spirit will think with.
85
85
  Get a key from <a href="https://console.anthropic.com/settings/keys" target="_blank" rel="noreferrer" class="svelte-48ammf">Anthropic</a>, <a href="https://platform.openai.com/api-keys" target="_blank" rel="noreferrer" class="svelte-48ammf">OpenAI</a>,
86
- or another provider.</div> <!> <!> <form><div class="button-row svelte-48ammf"><button type="button" class="back-btn svelte-48ammf">Back</button> <button type="submit" class="submit-btn flex-1 svelte-48ammf"> </button></div></form>`,1),_T=W(`<div class="hint svelte-48ammf">Minds will know it by this name.</div>`),vT=W(`<div class="step-title svelte-48ammf">Your spirit</div> <div class="step-desc svelte-48ammf">Every Volute system has a spirit — a caretaker mind that arrives with the system,
87
- tends it, and helps new minds find their footing. Yours needs a name.</div> <form><label class="label svelte-48ammf" for="spiritName">Name</label> <div class="slug-row svelte-48ammf"><!> <button type="button" class="save-btn svelte-48ammf" title="Suggest a name">Suggest</button></div> <!> <label class="label mt svelte-48ammf" for="spiritTemperament">Temperament <span class="optional svelte-48ammf">(optional)</span></label> <!> <div class="hint svelte-48ammf">A line about who they are. It becomes part of their soul — a seed they'll grow from.</div> <!> <div class="button-row svelte-48ammf"><button type="button" class="back-btn svelte-48ammf">Back</button> <button type="submit" class="submit-btn flex-1 svelte-48ammf"> </button></div></form>`,1),yT=W(`<div class="spinner svelte-48ammf"></div> <div class="finishing-text svelte-48ammf"> </div>`,1),bT=W(`<div class="error svelte-48ammf"> </div> <button class="submit-btn mt svelte-48ammf">Retry</button>`,1),xT=W(`<div class="greeting svelte-48ammf"><div class="greeting-sender svelte-48ammf"> </div> <div class="greeting-text svelte-48ammf"> </div></div>`),ST=W(`<div class="finishing-text svelte-48ammf"> </div>`),CT=W(`<li> </li>`),wT=W(`<ul class="warnings svelte-48ammf"></ul>`),TT=W(`<!> <!> <button class="submit-btn mt svelte-48ammf">Enter your system</button>`,1),ET=W(`<div class="finishing svelte-48ammf"><!></div>`),DT=W(`<div class="container svelte-48ammf"><div class="card svelte-48ammf"><div class="branding svelte-48ammf"><div class="logo-row svelte-48ammf"><span class="logo-wrap svelte-48ammf"><img src="/logo.png" alt="" class="login-spiral svelte-48ammf"/> <span class="hover-dot svelte-48ammf"></span></span> <span class="logo svelte-48ammf">volute</span></div></div> <!> <!></div></div>`);function OT(e,t){M(t,!0);function n(){let e=Kf.setupProgress;return e?.hasAccount?`provider`:e?.hasSystem?`account`:`welcome`}let r=F(L(n())),i=F(``),a=F(!1),o=F(L([])),s=F(``),c=F(``),l=F(!1),u=F(``),d=F(!1),f=F(``),p=F(!1),m=F(``),h=F(!1),g=F(``),_=F(!1),v=F(!1),y=F(!1),b=F(!1),x=F(!1),S=P(()=>Kf.setupProgress?.setupType===`system`),C=F(``),w=F(``),T=F(!1),E=F(``);function ee(e){return e.toLowerCase().replace(/[^a-z0-9_-]/g,``).slice(0,32)}function te(){H(T)||I(w,ee(H(C)),!0)}function ne(e){return e.toLowerCase().replace(/[^a-z0-9-]/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``).slice(0,32)}function D(){H(p)||I(f,ne(H(s)),!0)}let O=/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/,re=P(()=>H(f).length>=3&&H(f).length<=32&&O.test(H(f))),ie=P(()=>H(f).length>0&&!H(re)?H(f).length<3?`Must be at least 3 characters`:O.test(H(f))?`Must be 32 characters or fewer`:`Lowercase letters, numbers, and hyphens only (no leading/trailing hyphens)`:``),ae=F(void 0),k=F(``),oe=F(``),se=F(L([]));function ce(e){let t=e.map(e=>e.qualifiedId);t.length===H(se).length&&t.every((e,t)=>e===H(se)[t])||(I(se,t,!0),H(k)&&!H(se).includes(H(k))&&I(k,``),e.length>0&&!H(k)&&I(k,e[0].qualifiedId,!0))}let le=[`iris`,`wren`,`juniper`,`vesper`,`halcyon`,`sable`,`meridian`,`ember`,`lumen`,`thistle`],ue=F(L(Kf.setupProgress?.spiritName??``)),de=F(``),fe=F(``),pe=F(!1),me=/^[a-zA-Z0-9][a-zA-Z0-9._-]*$/,he=P(()=>H(ue).trim().length>0&&H(ue).trim().length<=64&&me.test(H(ue).trim())&&H(ue).trim().toLowerCase()!==`system`),ge=P(()=>H(ue).trim().length===0||H(he)?``:H(ue).trim().toLowerCase()===`system`?`"system" is a reserved name`:H(ue).trim().length>64?`Must be 64 characters or fewer`:`Must start with a letter or number; letters, numbers, dots, dashes, and underscores only`);function _e(){let e=le.filter(e=>e!==H(ue));I(ue,e[Math.floor(Math.random()*e.length)],!0)}let ve=[`welcome`,`system`,`account`,`provider`,`spirit`,`waking`],ye=P(()=>ve.indexOf(H(r)));function be(){return H(r)===`welcome`?!0:H(r)===`system`?!!H(s).trim():H(r)===`account`?!!H(C).trim()&&!!H(w).trim()&&!!H(E):H(r)===`provider`?H(se).length>0&&!!H(k):H(r)===`spirit`&&H(he)}function xe(){let e=ve.indexOf(H(r));e>0&&(I(r,ve[e-1],!0),I(i,``))}async function Se(e){if(e.preventDefault(),be()){I(i,``),I(a,!0);try{let e=await fetch(`/api/setup/system`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:H(s).trim(),description:H(c).trim()||void 0,remote:H(v)||void 0,service:H(y)||void 0,tailscale:H(b)||void 0})});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error||`System setup failed: ${e.status}`)}I(r,`account`)}catch(e){I(i,e instanceof Error?e.message:`Something went wrong`,!0)}I(a,!1)}}async function Ce(e){if(e.preventDefault(),be()){I(i,``),I(a,!0);try{let e=await fetch(`/api/setup/account`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({username:H(w).trim(),password:H(E),displayName:H(C).trim()})});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error||`Account setup failed: ${e.status}`)}let t=await Yl();t&&await Xf(t),I(r,`provider`)}catch(e){I(i,e instanceof Error?e.message:`Something went wrong`,!0)}I(a,!1)}}async function we(){if(H(f).trim()){I(g,``),I(_,!0);try{let e=await fetch(`/api/setup/system/register`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({slug:H(f).trim()})});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error||`Registration failed: ${e.status}`)}let t=await e.json();I(l,!0),I(u,t.system,!0),I(d,!1)}catch(e){I(g,e instanceof Error?e.message:`Registration failed`,!0)}I(_,!1)}}async function Te(){if(H(m).trim()){I(g,``),I(_,!0);try{let e=await fetch(`/api/setup/system/login`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({key:H(m).trim()})});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error||`Login failed: ${e.status}`)}let t=await e.json();I(l,!0),I(u,t.system,!0),I(h,!1),I(m,``)}catch(e){I(g,e instanceof Error?e.message:`Login failed`,!0)}I(_,!1)}}async function Ee(){I(g,``),I(_,!0);try{await fetch(`/api/setup/system/disconnect`,{method:`POST`}),I(l,!1),I(u,``)}catch(e){I(g,e instanceof Error?e.message:`Disconnect failed`,!0)}I(_,!1)}async function De(e){if(e.preventDefault(),be()){I(i,``),I(a,!0);try{let e=await fetch(`/api/setup/models`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({models:H(se),spiritModel:H(k),utilityModel:H(oe)||void 0})});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error||`Model setup failed: ${e.status}`)}I(r,`spirit`)}catch(e){I(i,e instanceof Error?e.message:`Something went wrong`,!0)}I(a,!1)}}async function Oe(e){if(e.preventDefault(),be()){I(i,``),I(a,!0);try{let e=await fetch(`/api/setup/spirit`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:H(ue).trim(),temperament:H(de).trim()||void 0})});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error||`Naming the spirit failed: ${e.status}`)}I(ue,H(ue).trim(),!0),I(r,`waking`),await ke()}catch(e){I(i,e instanceof Error?e.message:`Something went wrong`,!0),I(a,!1)}}}async function ke(){I(i,``),I(o,[],!0),I(fe,``),I(pe,!1),I(a,!0);try{let e=await fetch(`/api/setup/complete`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({})});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error||`Setup failed: ${e.status}`)}let t=await e.json().catch(()=>({}));I(o,t.warnings??[],!0),t.spiritConversationId&&t.spiritStarted?(I(fe,await je(t.spiritConversationId),!0),H(fe)||I(pe,!0)):I(pe,!0)}catch(e){I(i,e instanceof Error?e.message:`Something went wrong`,!0)}I(a,!1)}function Ae(){Kf.setupComplete=!0,t.onComplete(H(ue)||`volute`)}async function je(e){let t=Date.now();for(;Date.now()-t<6e4;){await new Promise(e=>setTimeout(e,1500));try{let t=await fetch(`/api/v1/conversations/${e}/messages?limit=5`);if(t.ok){let e=await t.json(),n=(e.items??e).find(e=>e.sender_name===H(ue)&&e.role===`user`);if(n){let e=n.content;if(typeof e==`string`)return e;if(Array.isArray(e)){let t=e.filter(e=>e.type===`text`&&e.text).map(e=>e.text).join(`
88
- `);if(t)return t}return``}}}catch{}}return``}Tn(()=>{H(r)===`system`&&!H(l)&&fetch(`/api/setup/system/systems-status`).then(e=>e.json()).then(e=>{e.registered&&(I(l,!0),I(u,e.system,!0))}).catch(()=>{})});let Me=!1;Tn(()=>{H(r)===`provider`&&!Me&&(Me=!0,H(ae)?.load())});var Ne=DT(),Pe=R(Ne),Fe=B(R(Pe),2),Ie=e=>{var t=nT();Y(t,22,()=>ve.slice(1,-1),e=>e,(e,t,n)=>{var i=tT();let a;V(()=>a=X(i,1,`step-dot svelte-48ammf`,null,a,{active:H(n)+1<=H(ye),current:ve[H(n)+1]===H(r)})),K(e,i)}),A(t),K(e,t)};J(Fe,e=>{H(r)!==`welcome`&&e(Ie)});var Le=B(Fe,2),Re=e=>{var t=rT(),n=B(R(t),2);A(t),U(`click`,n,()=>I(r,`system`)),K(e,t)},ze=e=>{var t=fT(),n=B(z(t),2),r=B(R(n),2);Xa(r,{inputSize:`md`,id:`systemName`,type:`text`,placeholder:`e.g. My Garden`,oninput:D,get value(){return H(s)},set value(e){I(s,e,!0)}});var o=B(r,6);hn(o);var C=B(o,2),w=R(C),T=e=>{var t=iT(),n=R(t),r=B(R(n)),i=R(r,!0);A(r),A(n);var a=B(n,2);A(t),V(()=>{q(i,H(u)),a.disabled=H(_)}),U(`click`,a,Ee),K(e,t)},E=e=>{var t=sT(),n=B(R(t),2),r=R(n);Xa(r,{id:`systemsSlug`,type:`text`,placeholder:`my-garden`,oninput:()=>{I(p,!0)},get value(){return H(f)},set value(e){I(f,e,!0)}});var i=B(r,2),a=R(i,!0);A(i),A(n);var o=B(n,2),s=e=>{var t=aT(),n=R(t,!0);A(t),V(()=>q(n,H(ie))),K(e,t)},c=e=>{K(e,oT())};J(o,e=>{H(ie)?e(s):e(c,-1)});var l=B(o,2);A(t),V(()=>{i.disabled=H(_)||!H(re),q(a,H(_)?`...`:`Register`)}),U(`click`,i,we),U(`click`,l,()=>{I(d,!1),I(h,!0)}),K(e,t)},ee=e=>{var t=cT(),n=B(R(t),2),r=R(n);Xa(r,{id:`systemsApiKey`,type:`password`,placeholder:`Paste your API key`,get value(){return H(m)},set value(e){I(m,e,!0)}});var i=B(r,2),a=R(i,!0);A(i),A(n);var o=B(n,2);A(t),V(e=>{i.disabled=e,q(a,H(_)?`...`:`Login`)},[()=>H(_)||!H(m).trim()]),U(`click`,i,Te),U(`click`,o,()=>{I(h,!1),I(d,!0)}),K(e,t)},te=e=>{var t=lT(),n=z(t),r=B(n,2);U(`click`,n,()=>{I(d,!0)}),U(`click`,r,()=>{I(h,!0)}),K(e,t)};J(w,e=>{H(l)?e(T):H(d)?e(E,1):H(h)?e(ee,2):e(te,-1)});var ne=B(w,2),O=e=>{var t=aT(),n=R(t,!0);A(t),V(()=>q(n,H(g))),K(e,t)};J(ne,e=>{H(g)&&e(O)}),A(C);var ae=B(C,2),k=e=>{var t=dT(),n=z(t),r=R(n);let i;j(),A(n);var a=B(n,2),o=e=>{var t=uT(),n=R(t),r=R(n);Ki(r),j(2),A(n);var i=B(n,4),a=R(i);Ki(a),j(2),A(i);var o=B(i,4),s=R(o);Ki(s),j(2),A(o),j(2),A(t),oa(r,()=>H(v),e=>I(v,e)),oa(a,()=>H(y),e=>I(y,e)),oa(s,()=>H(b),e=>I(b,e)),K(e,t)};J(a,e=>{H(x)&&e(o)}),V(()=>i=X(r,1,`advanced-arrow svelte-48ammf`,null,i,{open:H(x)})),U(`click`,n,()=>I(x,!H(x))),K(e,t)};J(ae,e=>{H(S)||e(k)});var oe=B(ae,2),se=e=>{var t=aT(),n=R(t,!0);A(t),V(()=>q(n,H(i))),K(e,t)};J(oe,e=>{H(i)&&e(se)});var ce=B(oe,2),le=R(ce),ue=B(le,2),de=R(ue,!0);A(ue),A(ce),A(n),V(e=>{ue.disabled=e,q(de,H(a)?`Setting up...`:`Continue`)},[()=>H(a)||!be()]),Ir(`submit`,n,Se),aa(o,()=>H(c),e=>I(c,e)),U(`click`,le,xe),K(e,t)},Be=e=>{var t=hT(),n=B(z(t),2),r=R(n);Ki(r);var o=B(r,4);Xa(o,{inputSize:`md`,id:`displayName`,type:`text`,placeholder:`Your name`,oninput:te,autocomplete:`off`,get value(){return H(C)},set value(e){I(C,e,!0)}});var s=B(o,2),c=e=>{var t=pT();Xa(B(z(t),2),{id:`username`,type:`text`,placeholder:`username`,autocomplete:`off`,get value(){return H(w)},set value(e){I(w,e,!0)}}),K(e,t)},l=e=>{var t=mT(),n=B(R(t)),r=R(n,!0);A(n);var i=B(n,2);A(t),V(()=>q(r,H(w))),U(`click`,i,()=>{I(T,!0)}),K(e,t)};J(s,e=>{H(T)?e(c):H(w)&&e(l,1)});var u=B(s,4);Xa(u,{inputSize:`md`,id:`password`,type:`password`,placeholder:`Choose a password`,autocomplete:`new-password`,get value(){return H(E)},set value(e){I(E,e,!0)}});var d=B(u,2),f=e=>{var t=aT(),n=R(t,!0);A(t),V(()=>q(n,H(i))),K(e,t)};J(d,e=>{H(i)&&e(f)});var p=B(d,2),m=R(p),h=B(m,2),g=R(h,!0);A(h),A(p),A(n),V(e=>{qi(r,H(w)),h.disabled=e,q(g,H(a)?`Setting up...`:`Continue`)},[()=>H(a)||!be()]),Ir(`submit`,n,Ce),U(`click`,m,xe),K(e,t)},Ve=e=>{var t=gT(),n=B(z(t),4);ua(eT(n,{showModelDefaults:!0,onLoad:ce,get spiritModel(){return H(k)},set spiritModel(e){I(k,e,!0)},get utilityModel(){return H(oe)},set utilityModel(e){I(oe,e,!0)}}),e=>I(ae,e,!0),()=>H(ae));var r=B(n,2),o=e=>{var t=aT(),n=R(t,!0);A(t),V(()=>q(n,H(i))),K(e,t)};J(r,e=>{H(i)&&e(o)});var s=B(r,2),c=R(s),l=R(c),u=B(l,2),d=R(u,!0);A(u),A(c),A(s),V(e=>{u.disabled=e,q(d,H(a)?`Saving...`:`Continue`)},[()=>H(a)||!be()]),Ir(`submit`,s,De),U(`click`,l,xe),K(e,t)},He=e=>{var t=vT(),n=B(z(t),4),r=B(R(n),2),o=R(r);Xa(o,{inputSize:`md`,id:`spiritName`,type:`text`,placeholder:`e.g. iris`,get value(){return H(ue)},set value(e){I(ue,e,!0)}});var s=B(o,2);A(r);var c=B(r,2),l=e=>{var t=aT(),n=R(t,!0);A(t),V(()=>q(n,H(ge))),K(e,t)},u=e=>{K(e,_T())};J(c,e=>{H(ge)?e(l):e(u,-1)});var d=B(c,4);Xa(d,{inputSize:`md`,id:`spiritTemperament`,type:`text`,placeholder:`warm, wry, a little formal`,get value(){return H(de)},set value(e){I(de,e,!0)}});var f=B(d,4),p=e=>{var t=aT(),n=R(t,!0);A(t),V(()=>q(n,H(i))),K(e,t)};J(f,e=>{H(i)&&e(p)});var m=B(f,2),h=R(m),g=B(h,2),_=R(g,!0);A(g),A(m),A(n),V(e=>{g.disabled=e,q(_,H(a)?`Finishing...`:`Finish setup`)},[()=>H(a)||!be()]),Ir(`submit`,n,Oe),U(`click`,s,_e),U(`click`,h,xe),K(e,t)},Ue=e=>{var t=ET(),n=R(t),r=e=>{var t=yT(),n=B(z(t),2),r=R(n);A(n),V(()=>q(r,`Waking ${H(ue)??``}...`)),K(e,t)},s=e=>{var t=bT(),n=z(t),r=R(n,!0);A(n);var a=B(n,2);V(()=>q(r,H(i))),U(`click`,a,ke),K(e,t)},c=e=>{var t=TT(),n=z(t),r=e=>{var t=xT(),n=R(t),r=R(n,!0);A(n);var i=B(n,2),a=R(i,!0);A(i),A(t),V(()=>{q(r,H(ue)),q(a,H(fe))}),K(e,t)},i=e=>{var t=ST(),n=R(t);A(t),V(()=>q(n,`${H(ue)??``} is still waking — you'll find them in your messages.`)),K(e,t)};J(n,e=>{H(fe)?e(r):H(pe)&&e(i,1)});var a=B(n,2),s=e=>{var t=wT();Y(t,21,()=>H(o),ti,(e,t)=>{var n=CT(),r=R(n,!0);A(n),V(()=>q(r,H(t))),K(e,n)}),A(t),K(e,t)};J(a,e=>{H(o).length>0&&e(s)}),U(`click`,B(a,2),Ae),K(e,t)};J(n,e=>{H(a)?e(r):H(i)?e(s,1):e(c,-1)}),A(t),K(e,t)};J(Le,e=>{H(r)===`welcome`?e(Re):H(r)===`system`?e(ze,1):H(r)===`account`?e(Be,2):H(r)===`provider`?e(Ve,3):H(r)===`spirit`?e(He,4):H(r)===`waking`&&e(Ue,5)}),A(Pe),A(Ne),K(e,Ne),N()}Lr([`click`]);var kT=W(`<p class="loading-text svelte-zlnrm2">Loading...</p>`),AT=W(`<div class="status-line svelte-zlnrm2"> </div>`),jT=W(`<div class="install-hint svelte-zlnrm2"> </div>`),MT=W(`<div class="status-line missing svelte-zlnrm2">restic not installed</div> <!>`,1),NT=W(`&middot; snapshot <span class="mono svelte-zlnrm2"> </span>`,1),PT=W(`<div class="last-run svelte-zlnrm2"> <!> <!></div>`),FT=W(`<div class="prune-warning svelte-zlnrm2"> </div>`),IT=W(`<!> <!> <!> <!>`,1),LT=W(`<div class="copy-error svelte-zlnrm2"> </div>`),RT=W(`<div class="password-reveal svelte-zlnrm2"><div class="password-warning svelte-zlnrm2">Store this passphrase somewhere off this machine &mdash; without it your backups are
89
- unreadable. It will not be shown again.</div> <div class="password-row svelte-zlnrm2"><code class="password-value svelte-zlnrm2"> </code> <!></div> <!></div>`),zT=W(`<!> <!> <div class="env-block svelte-zlnrm2"><div class="env-label svelte-zlnrm2">Credentials</div> <textarea class="env-textarea svelte-zlnrm2" rows="3"></textarea> <div class="env-hint svelte-zlnrm2">One KEY=VALUE per line, passed to restic. Saving replaces all stored credentials. <!></div></div> <div class="section-actions svelte-zlnrm2"><!></div> <!>`,1),BT=W(`<!> <span class="setting-hint svelte-zlnrm2">daily</span> <!> <span class="setting-hint svelte-zlnrm2">weekly</span> <!> <span class="setting-hint svelte-zlnrm2">monthly</span>`,1),VT=W(`<!> <span class="setting-hint wrap svelte-zlnrm2">Include session transcripts &mdash; Claude transcripts are only inside mind directories on
90
- user-isolation installs; elsewhere they live in the host ~/.claude and can't be captured.</span>`,1),HT=W(`<span class="save-status svelte-zlnrm2">Saving...</span>`),UT=W(`<span class="save-status saved svelte-zlnrm2">Saved</span>`),WT=W(`<div class="run-summary svelte-zlnrm2">Snapshot <span class="mono svelte-zlnrm2"> </span> </div>`),GT=W(`<div class="snapshot-row svelte-zlnrm2"><span class="mono svelte-zlnrm2"> </span> <span class="snapshot-time svelte-zlnrm2"> </span> <span class="snapshot-host svelte-zlnrm2"> </span></div>`),KT=W(`<div class="snapshot-list svelte-zlnrm2"></div>`),qT=W(`<div class="section-actions svelte-zlnrm2"><!> <!></div> <!> <!>`,1),JT=W(`<!> <!> <!> <div class="save-row svelte-zlnrm2"><!> <!></div> <!>`,1),YT=W(`<div class="backups svelte-zlnrm2"><!></div>`);function XT(e,t){M(t,!0);let n=F(!1),r=F(null),i=F(null),a=F(L({})),o=F(``),s=F(``),c=F(!1),l=F(L([])),u=F(``),d=F(!1),f=F(!1),p=F(`0 3 * * *`),m=F(``),h=F(``),g=F(``),_=F(!1),v=F(!1),y=F(null),b=F(!1),x=F(``),S=F(!1),C=F(null),w=F(``),T=F(null),E=F(!1),ee=F(``),te=F(``),ne=F(!0),D=F(!1),O=F(`idle`),re;function ie(e){if(!e.trim())return;let t=parseInt(e,10);return Number.isNaN(t)?void 0:t}function ae(e){let t={};for(let n of e.split(`
91
- `)){let e=n.trim();if(!e)continue;let r=e.indexOf(`=`);r<=0||(t[e.slice(0,r).trim()]=e.slice(r+1))}return t}async function k(){let e=await Jd();I(n,e.resticInstalled,!0),I(r,e.resticVersion,!0),I(i,e.installHint,!0),I(a,e.state,!0),I(o,e.config.repository??``,!0),I(c,e.config.hasPassword,!0),I(l,e.config.envKeys,!0),I(f,e.config.enabled??!1,!0),I(p,e.config.schedule??`0 3 * * *`,!0),I(m,e.config.keep?.daily==null?``:String(e.config.keep.daily),!0),I(h,e.config.keep?.weekly==null?``:String(e.config.keep.weekly),!0),I(g,e.config.keep?.monthly==null?``:String(e.config.keep.monthly),!0),I(_,e.config.includeSessions??!1,!0)}async function oe(){I(O,`saving`),clearTimeout(re);try{await Yd({repository:H(o),schedule:H(p),enabled:H(f),keep:{daily:ie(H(m)),weekly:ie(H(h)),monthly:ie(H(g))},includeSessions:H(_),password:H(s),env:H(d)?ae(H(u)):void 0}),I(s,``),I(u,``),I(d,!1),I(te,``),I(O,`saved`),re=setTimeout(()=>{I(O,`idle`)},1500)}catch(e){I(te,e instanceof Error?e.message:`Save failed`,!0),I(O,`idle`);return}try{await k()}catch(e){console.error(`Failed to refresh backup status`,e)}}async function se(){if(I(v,!0),I(y,null),await oe(),!H(te)){try{let e=await Xd();I(y,e.password,!0)}catch(e){I(te,e instanceof Error?e.message:`Failed to initialize repository`,!0)}try{await k()}catch(e){console.error(`Failed to refresh backup status`,e)}}I(v,!1)}async function ce(){if(H(y)){I(x,``);try{await navigator.clipboard.writeText(H(y))}catch{I(x,`Copy failed — select the text manually`);return}I(b,!0),setTimeout(()=>{I(b,!1)},1500)}}async function le(){I(S,!0),I(C,null),I(w,``);try{I(C,await Zd(),!0)}catch(e){I(w,e instanceof Error?e.message:`Backup failed`,!0),I(S,!1);return}try{await k(),H(T)&&await ue()}catch(e){console.error(`Failed to refresh backup status`,e)}I(S,!1)}async function ue(){I(E,!0),I(ee,``);try{I(T,await Qd(),!0)}catch(e){I(ee,e instanceof Error?e.message:`Failed to list snapshots`,!0)}I(E,!1)}function de(e){return`${(e/(1024*1024)).toFixed(1)} MB`}function fe(e){return e>=1e3?`${(e/1e3).toFixed(1)}s`:`${e}ms`}ma(async()=>{try{await k()}catch(e){I(te,e instanceof Error?e.message:`Failed to load backup status`,!0),I(D,!0)}I(ne,!1)});var pe=YT(),me=R(pe),he=e=>{K(e,kT())},ge=e=>{Ca(e,{get message(){return H(te)}})},_e=e=>{var t=JT(),ne=z(t);uo(ne,{title:`Status`,children:(e,t)=>{var o=IT(),s=z(o),c=e=>{var t=AT(),n=R(t,!0);A(t),V(()=>q(n,H(r))),K(e,t)},l=e=>{var t=MT(),n=B(z(t),2),r=e=>{var t=jT(),n=R(t,!0);A(t),V(()=>q(n,H(i))),K(e,t)};J(n,e=>{H(i)&&e(r)}),K(e,t)};J(s,e=>{H(n)?e(c):e(l,-1)});var u=B(s,2),d=e=>{var t=PT(),n=R(t),r=B(n),i=e=>{var t=NT(),n=B(z(t)),r=R(n,!0);A(n),V(e=>q(r,e),[()=>H(a).lastSnapshotId.slice(0,8)]),K(e,t)};J(r,e=>{H(a).lastSnapshotId&&e(i)});var o=B(r,2),s=e=>{var t=G();V(e=>q(t,`· ${e??``}`),[()=>fe(H(a).lastDurationMs)]),K(e,t)};J(o,e=>{H(a).lastDurationMs!=null&&e(s)}),A(t),V(e=>q(n,`Last successful backup ${e??``} `),[()=>new Date(H(a).lastRun).toLocaleString()]),K(e,t)};J(u,e=>{H(a).lastRun&&e(d)});var f=B(u,2),p=e=>{var t=FT(),n=R(t);A(t),V(()=>q(n,`Retention prune failed: ${H(a).pruneError??``}`)),K(e,t)};J(f,e=>{H(a).pruneError&&e(p)});var m=B(f,2),h=e=>{{let t=P(()=>H(a).lastAttempt?`Last attempt failed ${new Date(H(a).lastAttempt).toLocaleString()}: ${H(a).lastError}`:`Last attempt failed: ${H(a).lastError}`);Ca(e,{get message(){return H(t)}})}};J(m,e=>{H(a).lastError&&e(h)}),K(e,o)},$$slots:{default:!0}});var D=B(ne,2);uo(D,{title:`Repository`,children:(e,t)=>{var r=zT(),i=z(r);co(i,{label:`Repository`,children:(e,t)=>{Xa(e,{type:`text`,variant:`mono`,style:`flex:1`,placeholder:`/mnt/backups/volute or s3:s3.amazonaws.com/bucket/path`,get value(){return H(o)},set value(e){I(o,e,!0)}})},$$slots:{default:!0}});var a=B(i,2);co(a,{label:`Passphrase`,children:(e,t)=>{{let t=P(()=>H(c)?`(unchanged)`:`passphrase`);Xa(e,{type:`password`,style:`flex:1`,get placeholder(){return H(t)},get value(){return H(s)},set value(e){I(s,e,!0)}})}},$$slots:{default:!0}});var f=B(a,2),p=B(R(f),2);hn(p),Xi(p,`placeholder`,`AWS_ACCESS_KEY_ID=...
92
- AWS_SECRET_ACCESS_KEY=...`);var m=B(p,2),h=B(R(m)),g=e=>{var t=G();V(e=>q(t,`Currently set: ${e??``}`),[()=>H(l).join(`, `)]),K(e,t)};J(h,e=>{H(l).length>0&&e(g)}),A(m),A(f);var _=B(f,2),S=R(_);{let e=P(()=>!H(n)||H(v)||!H(o).trim());_a(S,{variant:`secondary`,onclick:se,get disabled(){return H(e)},children:(e,t)=>{j();var n=G();V(()=>q(n,H(v)?`Initializing...`:`Initialize repository`)),K(e,n)},$$slots:{default:!0}})}A(_);var C=B(_,2),w=e=>{var t=RT(),n=B(R(t),2),r=R(n),i=R(r,!0);A(r),_a(B(r,2),{variant:`primary`,onclick:ce,children:(e,t)=>{j();var n=G();V(()=>q(n,H(b)?`Copied`:`Copy`)),K(e,n)},$$slots:{default:!0}}),A(n);var a=B(n,2),o=e=>{var t=LT(),n=R(t,!0);A(t),V(()=>q(n,H(x))),K(e,t)};J(a,e=>{H(x)&&e(o)}),A(t),V(()=>q(i,H(y))),K(e,t)};J(C,e=>{H(y)&&e(w)}),U(`input`,p,()=>I(d,!0)),aa(p,()=>H(u),e=>I(u,e)),K(e,r)},$$slots:{default:!0}});var re=B(D,2);uo(re,{title:`Schedule`,children:(e,t)=>{var n=IT(),r=z(n);co(r,{label:`Enabled`,children:(e,t)=>{{let t=P(()=>H(f)?`On`:`Off`);Co(e,{get checked(){return H(f)},onchange:()=>I(f,!H(f)),get label(){return H(t)}})}},$$slots:{default:!0}});var i=B(r,2);co(i,{label:`Cron`,children:(e,t)=>{Xa(e,{variant:`mono`,width:`140px`,placeholder:`0 3 * * *`,get value(){return H(p)},set value(e){I(p,e,!0)}})},$$slots:{default:!0}});var a=B(i,2);co(a,{label:`Keep`,children:(e,t)=>{var n=BT(),r=z(n);Xa(r,{type:`number`,width:`60px`,placeholder:`7`,get value(){return H(m)},set value(e){I(m,e,!0)}});var i=B(r,4);Xa(i,{type:`number`,width:`60px`,placeholder:`4`,get value(){return H(h)},set value(e){I(h,e,!0)}}),Xa(B(i,4),{type:`number`,width:`60px`,placeholder:`12`,get value(){return H(g)},set value(e){I(g,e,!0)}}),j(2),K(e,n)},$$slots:{default:!0}}),co(B(a,2),{label:`Sessions`,children:(e,t)=>{var n=VT();Co(z(n),{get checked(){return H(_)},onchange:()=>I(_,!H(_))}),j(2),K(e,n)},$$slots:{default:!0}}),K(e,n)},$$slots:{default:!0}});var ie=B(re,2),ae=R(ie);{let e=P(()=>H(O)===`saving`);_a(ae,{variant:`primary`,onclick:oe,get disabled(){return H(e)},children:(e,t)=>{j(),K(e,G(`Save`))},$$slots:{default:!0}})}var k=B(ae,2),pe=e=>{Ca(e,{get message(){return H(te)}})},me=e=>{K(e,HT())},he=e=>{K(e,UT())};J(k,e=>{H(te)?e(pe):H(O)===`saving`?e(me,1):H(O)===`saved`&&e(he,2)}),A(ie),uo(B(ie,2),{title:`Backups`,children:(e,t)=>{var r=qT(),i=z(r),a=R(i);{let e=P(()=>!H(n)||H(S));_a(a,{variant:`secondary`,onclick:le,get disabled(){return H(e)},children:(e,t)=>{j();var n=G();V(()=>q(n,H(S)?`Running backup...`:`Run backup now`)),K(e,n)},$$slots:{default:!0}})}var o=B(a,2);{let e=P(()=>!H(n)||H(E));_a(o,{variant:`secondary`,onclick:ue,get disabled(){return H(e)},children:(e,t)=>{j();var n=G();V(()=>q(n,H(E)?`Loading...`:H(T)?`Refresh snapshots`:`Show snapshots`)),K(e,n)},$$slots:{default:!0}})}A(i);var s=B(i,2),c=e=>{Ca(e,{get message(){return H(w)}})},l=e=>{var t=WT(),n=B(R(t)),r=R(n,!0);A(n);var i=B(n);A(t),V((e,t,n)=>{q(r,e),q(i,` ·
86
+ or another provider.</div> <!> <!> <form><div class="button-row svelte-48ammf"><button type="button" class="back-btn svelte-48ammf">Back</button> <button type="submit" class="submit-btn flex-1 svelte-48ammf"> </button></div></form>`,1),vT=W(`<div class="hint svelte-48ammf">Minds will know it by this name.</div>`),yT=W(`<img alt="Spirit avatar preview" class="avatar-img svelte-48ammf"/>`),bT=W(`<div class="avatar-placeholder svelte-48ammf">?</div>`),xT=W(`<button type="button" class="remove-btn svelte-48ammf">Remove</button>`),ST=W(`<div class="hint svelte-48ammf"> </div>`),CT=W(`<div class="step-title svelte-48ammf">Your spirit</div> <div class="step-desc svelte-48ammf">Every Volute system has a spirit — a caretaker mind that arrives with the system,
87
+ tends it, and helps new minds find their footing. Yours needs a name.</div> <form><label class="label svelte-48ammf" for="spiritName">Name</label> <div class="slug-row svelte-48ammf"><!> <button type="button" class="save-btn svelte-48ammf" title="Suggest a name">Suggest</button></div> <!> <label class="label mt svelte-48ammf" for="spiritTemperament">Temperament <span class="optional svelte-48ammf">(optional)</span></label> <!> <div class="hint svelte-48ammf">A line about who they are. It becomes part of their soul — a seed they'll grow from.</div> <label class="label mt svelte-48ammf" for="spiritDescription">A line about them <span class="optional svelte-48ammf">(optional)</span></label> <!> <span class="label mt svelte-48ammf" id="spiritAvatarLabel">A face <span class="optional svelte-48ammf">(optional)</span></span> <div class="avatar-section svelte-48ammf"><div class="avatar-preview svelte-48ammf"><!></div> <div class="avatar-actions svelte-48ammf"><label class="avatar-upload-btn svelte-48ammf" for="spiritAvatarFile">Choose file <input type="file" id="spiritAvatarFile" aria-labelledby="spiritAvatarLabel" accept="image/png,image/jpeg,image/webp" hidden=""/></label> <!></div></div> <!> <!> <div class="button-row svelte-48ammf"><button type="button" class="back-btn svelte-48ammf">Back</button> <button type="submit" class="submit-btn flex-1 svelte-48ammf"> </button></div></form>`,1),wT=W(`<div class="spinner svelte-48ammf"></div> <div class="finishing-text svelte-48ammf"> </div>`,1),TT=W(`<div class="error svelte-48ammf"> </div> <button class="submit-btn mt svelte-48ammf">Retry</button>`,1),ET=W(`<div class="greeting svelte-48ammf"><div class="greeting-sender svelte-48ammf"> </div> <div class="greeting-text svelte-48ammf"> </div></div>`),DT=W(`<div class="finishing-text svelte-48ammf"> </div>`),OT=W(`<li> </li>`),kT=W(`<ul class="warnings svelte-48ammf"></ul>`),AT=W(`<!> <!> <button class="submit-btn mt svelte-48ammf">Enter your system</button>`,1),jT=W(`<div class="finishing svelte-48ammf"><!></div>`),MT=W(`<div class="container svelte-48ammf"><div class="card svelte-48ammf"><div class="branding svelte-48ammf"><div class="logo-row svelte-48ammf"><span class="logo-wrap svelte-48ammf"><img src="/logo.png" alt="" class="login-spiral svelte-48ammf"/> <span class="hover-dot svelte-48ammf"></span></span> <span class="logo svelte-48ammf">volute</span></div></div> <!> <!></div></div>`);function NT(e,t){M(t,!0);function n(){let e=Kf.setupProgress;return e?.hasAccount?`provider`:e?.hasSystem?`account`:`welcome`}let r=F(L(n())),i=F(``),a=F(!1),o=F(L([])),s=F(``),c=F(``),l=F(!1),u=F(``),d=F(!1),f=F(``),p=F(!1),m=F(``),h=F(!1),g=F(``),_=F(!1),v=F(!1),y=F(!1),b=F(!1),x=F(!1),S=P(()=>Kf.setupProgress?.setupType===`system`),C=F(``),w=F(``),T=F(!1),E=F(``);function ee(e){return e.toLowerCase().replace(/[^a-z0-9_-]/g,``).slice(0,32)}function te(){H(T)||I(w,ee(H(C)),!0)}function ne(e){return e.toLowerCase().replace(/[^a-z0-9-]/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``).slice(0,32)}function D(){H(p)||I(f,ne(H(s)),!0)}let O=/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/,re=P(()=>H(f).length>=3&&H(f).length<=32&&O.test(H(f))),ie=P(()=>H(f).length>0&&!H(re)?H(f).length<3?`Must be at least 3 characters`:O.test(H(f))?`Must be 32 characters or fewer`:`Lowercase letters, numbers, and hyphens only (no leading/trailing hyphens)`:``),ae=F(void 0),k=F(``),oe=F(``),se=F(L([]));function ce(e){let t=e.map(e=>e.qualifiedId);t.length===H(se).length&&t.every((e,t)=>e===H(se)[t])||(I(se,t,!0),H(k)&&!H(se).includes(H(k))&&I(k,``),e.length>0&&!H(k)&&I(k,e[0].qualifiedId,!0))}let le=[`iris`,`wren`,`juniper`,`vesper`,`halcyon`,`sable`,`meridian`,`ember`,`lumen`,`thistle`],ue=F(L(Kf.setupProgress?.spiritName??``)),de=F(``),fe=F(``),pe=F(null),me=F(``),he=F(``),ge=F(!1);function _e(e){I(me,``);let t=e.currentTarget.files?.[0];if(!t)return;if(!/^image\/(png|jpeg|webp)$/.test(t.type)){I(me,`Please choose a png, jpeg, or webp image.`);return}if(t.size>2*1024*1024){I(me,`Image must be under 2MB.`);return}let n=new FileReader;n.onload=()=>{I(pe,n.result,!0)},n.onerror=()=>{I(me,`Couldn't read that file — try another image.`)},n.readAsDataURL(t)}let ve=/^[a-zA-Z0-9][a-zA-Z0-9._-]*$/,ye=P(()=>H(ue).trim().length>0&&H(ue).trim().length<=64&&ve.test(H(ue).trim())&&H(ue).trim().toLowerCase()!==`system`),be=P(()=>H(ue).trim().length===0||H(ye)?``:H(ue).trim().toLowerCase()===`system`?`"system" is a reserved name`:H(ue).trim().length>64?`Must be 64 characters or fewer`:`Must start with a letter or number; letters, numbers, dots, dashes, and underscores only`);function xe(){let e=le.filter(e=>e!==H(ue));I(ue,e[Math.floor(Math.random()*e.length)],!0)}let Se=[`welcome`,`system`,`account`,`provider`,`spirit`,`waking`],Ce=P(()=>Se.indexOf(H(r)));function we(){return H(r)===`welcome`?!0:H(r)===`system`?!!H(s).trim():H(r)===`account`?!!H(C).trim()&&!!H(w).trim()&&!!H(E):H(r)===`provider`?H(se).length>0&&!!H(k):H(r)===`spirit`&&H(ye)}function Te(){let e=Se.indexOf(H(r));e>0&&(I(r,Se[e-1],!0),I(i,``))}async function Ee(e){if(e.preventDefault(),we()){I(i,``),I(a,!0);try{let e=await fetch(`/api/setup/system`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:H(s).trim(),description:H(c).trim()||void 0,remote:H(v)||void 0,service:H(y)||void 0,tailscale:H(b)||void 0})});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error||`System setup failed: ${e.status}`)}I(r,`account`)}catch(e){I(i,e instanceof Error?e.message:`Something went wrong`,!0)}I(a,!1)}}async function De(e){if(e.preventDefault(),we()){I(i,``),I(a,!0);try{let e=await fetch(`/api/setup/account`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({username:H(w).trim(),password:H(E),displayName:H(C).trim()})});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error||`Account setup failed: ${e.status}`)}let t=await Yl();t&&await Xf(t),I(r,`provider`)}catch(e){I(i,e instanceof Error?e.message:`Something went wrong`,!0)}I(a,!1)}}async function Oe(){if(H(f).trim()){I(g,``),I(_,!0);try{let e=await fetch(`/api/setup/system/register`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({slug:H(f).trim()})});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error||`Registration failed: ${e.status}`)}let t=await e.json();I(l,!0),I(u,t.system,!0),I(d,!1)}catch(e){I(g,e instanceof Error?e.message:`Registration failed`,!0)}I(_,!1)}}async function ke(){if(H(m).trim()){I(g,``),I(_,!0);try{let e=await fetch(`/api/setup/system/login`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({key:H(m).trim()})});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error||`Login failed: ${e.status}`)}let t=await e.json();I(l,!0),I(u,t.system,!0),I(h,!1),I(m,``)}catch(e){I(g,e instanceof Error?e.message:`Login failed`,!0)}I(_,!1)}}async function Ae(){I(g,``),I(_,!0);try{await fetch(`/api/setup/system/disconnect`,{method:`POST`}),I(l,!1),I(u,``)}catch(e){I(g,e instanceof Error?e.message:`Disconnect failed`,!0)}I(_,!1)}async function je(e){if(e.preventDefault(),we()){I(i,``),I(a,!0);try{let e=await fetch(`/api/setup/models`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({models:H(se),spiritModel:H(k),utilityModel:H(oe)||void 0})});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error||`Model setup failed: ${e.status}`)}I(r,`spirit`)}catch(e){I(i,e instanceof Error?e.message:`Something went wrong`,!0)}I(a,!1)}}async function Me(e){if(e.preventDefault(),we()){I(i,``),I(a,!0);try{let e=await fetch(`/api/setup/spirit`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:H(ue).trim(),temperament:H(de).trim()||void 0,description:H(fe).trim()||void 0,avatar:H(pe)??void 0})});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error||`Naming the spirit failed: ${e.status}`)}I(ue,H(ue).trim(),!0),I(r,`waking`),await Ne()}catch(e){I(i,e instanceof Error?e.message:`Something went wrong`,!0),I(a,!1)}}}async function Ne(){I(i,``),I(o,[],!0),I(he,``),I(ge,!1),I(a,!0);try{let e=await fetch(`/api/setup/complete`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({})});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error||`Setup failed: ${e.status}`)}let t=await e.json().catch(()=>({}));I(o,t.warnings??[],!0),t.spiritConversationId&&t.spiritStarted?(I(he,await Fe(t.spiritConversationId),!0),H(he)||I(ge,!0)):I(ge,!0)}catch(e){I(i,e instanceof Error?e.message:`Something went wrong`,!0)}I(a,!1)}function Pe(){Kf.setupComplete=!0,t.onComplete(H(ue)||`volute`)}async function Fe(e){let t=Date.now();for(;Date.now()-t<6e4;){await new Promise(e=>setTimeout(e,1500));try{let t=await fetch(`/api/v1/conversations/${e}/messages?limit=5`);if(t.ok){let e=await t.json(),n=(e.items??e).find(e=>e.sender_name===H(ue)&&e.role===`user`);if(n){let e=n.content;if(typeof e==`string`)return e;if(Array.isArray(e)){let t=e.filter(e=>e.type===`text`&&e.text).map(e=>e.text).join(`
88
+ `);if(t)return t}return``}}}catch{}}return``}Tn(()=>{H(r)===`system`&&!H(l)&&fetch(`/api/setup/system/systems-status`).then(e=>e.json()).then(e=>{e.registered&&(I(l,!0),I(u,e.system,!0))}).catch(()=>{})});let Ie=!1;Tn(()=>{H(r)===`provider`&&!Ie&&(Ie=!0,H(ae)?.load())});var Le=MT(),Re=R(Le),ze=B(R(Re),2),Be=e=>{var t=rT();Y(t,22,()=>Se.slice(1,-1),e=>e,(e,t,n)=>{var i=nT();let a;V(()=>a=X(i,1,`step-dot svelte-48ammf`,null,a,{active:H(n)+1<=H(Ce),current:Se[H(n)+1]===H(r)})),K(e,i)}),A(t),K(e,t)};J(ze,e=>{H(r)!==`welcome`&&e(Be)});var Ve=B(ze,2),He=e=>{var t=iT(),n=B(R(t),2);A(t),U(`click`,n,()=>I(r,`system`)),K(e,t)},Ue=e=>{var t=pT(),n=B(z(t),2),r=B(R(n),2);Xa(r,{inputSize:`md`,id:`systemName`,type:`text`,placeholder:`e.g. My Garden`,oninput:D,get value(){return H(s)},set value(e){I(s,e,!0)}});var o=B(r,6);hn(o);var C=B(o,2),w=R(C),T=e=>{var t=aT(),n=R(t),r=B(R(n)),i=R(r,!0);A(r),A(n);var a=B(n,2);A(t),V(()=>{q(i,H(u)),a.disabled=H(_)}),U(`click`,a,Ae),K(e,t)},E=e=>{var t=cT(),n=B(R(t),2),r=R(n);Xa(r,{id:`systemsSlug`,type:`text`,placeholder:`my-garden`,oninput:()=>{I(p,!0)},get value(){return H(f)},set value(e){I(f,e,!0)}});var i=B(r,2),a=R(i,!0);A(i),A(n);var o=B(n,2),s=e=>{var t=oT(),n=R(t,!0);A(t),V(()=>q(n,H(ie))),K(e,t)},c=e=>{K(e,sT())};J(o,e=>{H(ie)?e(s):e(c,-1)});var l=B(o,2);A(t),V(()=>{i.disabled=H(_)||!H(re),q(a,H(_)?`...`:`Register`)}),U(`click`,i,Oe),U(`click`,l,()=>{I(d,!1),I(h,!0)}),K(e,t)},ee=e=>{var t=lT(),n=B(R(t),2),r=R(n);Xa(r,{id:`systemsApiKey`,type:`password`,placeholder:`Paste your API key`,get value(){return H(m)},set value(e){I(m,e,!0)}});var i=B(r,2),a=R(i,!0);A(i),A(n);var o=B(n,2);A(t),V(e=>{i.disabled=e,q(a,H(_)?`...`:`Login`)},[()=>H(_)||!H(m).trim()]),U(`click`,i,ke),U(`click`,o,()=>{I(h,!1),I(d,!0)}),K(e,t)},te=e=>{var t=uT(),n=z(t),r=B(n,2);U(`click`,n,()=>{I(d,!0)}),U(`click`,r,()=>{I(h,!0)}),K(e,t)};J(w,e=>{H(l)?e(T):H(d)?e(E,1):H(h)?e(ee,2):e(te,-1)});var ne=B(w,2),O=e=>{var t=oT(),n=R(t,!0);A(t),V(()=>q(n,H(g))),K(e,t)};J(ne,e=>{H(g)&&e(O)}),A(C);var ae=B(C,2),k=e=>{var t=fT(),n=z(t),r=R(n);let i;j(),A(n);var a=B(n,2),o=e=>{var t=dT(),n=R(t),r=R(n);Ki(r),j(2),A(n);var i=B(n,4),a=R(i);Ki(a),j(2),A(i);var o=B(i,4),s=R(o);Ki(s),j(2),A(o),j(2),A(t),oa(r,()=>H(v),e=>I(v,e)),oa(a,()=>H(y),e=>I(y,e)),oa(s,()=>H(b),e=>I(b,e)),K(e,t)};J(a,e=>{H(x)&&e(o)}),V(()=>i=X(r,1,`advanced-arrow svelte-48ammf`,null,i,{open:H(x)})),U(`click`,n,()=>I(x,!H(x))),K(e,t)};J(ae,e=>{H(S)||e(k)});var oe=B(ae,2),se=e=>{var t=oT(),n=R(t,!0);A(t),V(()=>q(n,H(i))),K(e,t)};J(oe,e=>{H(i)&&e(se)});var ce=B(oe,2),le=R(ce),ue=B(le,2),de=R(ue,!0);A(ue),A(ce),A(n),V(e=>{ue.disabled=e,q(de,H(a)?`Setting up...`:`Continue`)},[()=>H(a)||!we()]),Ir(`submit`,n,Ee),aa(o,()=>H(c),e=>I(c,e)),U(`click`,le,Te),K(e,t)},We=e=>{var t=gT(),n=B(z(t),2),r=R(n);Ki(r);var o=B(r,4);Xa(o,{inputSize:`md`,id:`displayName`,type:`text`,placeholder:`Your name`,oninput:te,autocomplete:`off`,get value(){return H(C)},set value(e){I(C,e,!0)}});var s=B(o,2),c=e=>{var t=mT();Xa(B(z(t),2),{id:`username`,type:`text`,placeholder:`username`,autocomplete:`off`,get value(){return H(w)},set value(e){I(w,e,!0)}}),K(e,t)},l=e=>{var t=hT(),n=B(R(t)),r=R(n,!0);A(n);var i=B(n,2);A(t),V(()=>q(r,H(w))),U(`click`,i,()=>{I(T,!0)}),K(e,t)};J(s,e=>{H(T)?e(c):H(w)&&e(l,1)});var u=B(s,4);Xa(u,{inputSize:`md`,id:`password`,type:`password`,placeholder:`Choose a password`,autocomplete:`new-password`,get value(){return H(E)},set value(e){I(E,e,!0)}});var d=B(u,2),f=e=>{var t=oT(),n=R(t,!0);A(t),V(()=>q(n,H(i))),K(e,t)};J(d,e=>{H(i)&&e(f)});var p=B(d,2),m=R(p),h=B(m,2),g=R(h,!0);A(h),A(p),A(n),V(e=>{qi(r,H(w)),h.disabled=e,q(g,H(a)?`Setting up...`:`Continue`)},[()=>H(a)||!we()]),Ir(`submit`,n,De),U(`click`,m,Te),K(e,t)},Ge=e=>{var t=_T(),n=B(z(t),4);ua(tT(n,{showModelDefaults:!0,onLoad:ce,get spiritModel(){return H(k)},set spiritModel(e){I(k,e,!0)},get utilityModel(){return H(oe)},set utilityModel(e){I(oe,e,!0)}}),e=>I(ae,e,!0),()=>H(ae));var r=B(n,2),o=e=>{var t=oT(),n=R(t,!0);A(t),V(()=>q(n,H(i))),K(e,t)};J(r,e=>{H(i)&&e(o)});var s=B(r,2),c=R(s),l=R(c),u=B(l,2),d=R(u,!0);A(u),A(c),A(s),V(e=>{u.disabled=e,q(d,H(a)?`Saving...`:`Continue`)},[()=>H(a)||!we()]),Ir(`submit`,s,je),U(`click`,l,Te),K(e,t)},Ke=e=>{var t=CT(),n=B(z(t),4),r=B(R(n),2),o=R(r);Xa(o,{inputSize:`md`,id:`spiritName`,type:`text`,placeholder:`e.g. iris`,get value(){return H(ue)},set value(e){I(ue,e,!0)}});var s=B(o,2);A(r);var c=B(r,2),l=e=>{var t=oT(),n=R(t,!0);A(t),V(()=>q(n,H(be))),K(e,t)},u=e=>{K(e,vT())};J(c,e=>{H(be)?e(l):e(u,-1)});var d=B(c,4);Xa(d,{inputSize:`md`,id:`spiritTemperament`,type:`text`,placeholder:`warm, wry, a little formal`,get value(){return H(de)},set value(e){I(de,e,!0)}});var f=B(d,6);Xa(f,{inputSize:`md`,id:`spiritDescription`,type:`text`,placeholder:`the quiet keeper of this house`,maxlength:200,get value(){return H(fe)},set value(e){I(fe,e,!0)}});var p=B(f,4),m=R(p),h=R(m),g=e=>{var t=yT();V(()=>Xi(t,`src`,H(pe))),K(e,t)},_=e=>{K(e,bT())};J(h,e=>{H(pe)?e(g):e(_,-1)}),A(m);var v=B(m,2),y=R(v),b=B(R(y));A(y);var x=B(y,2),S=e=>{var t=xT();U(`click`,t,()=>I(pe,null)),K(e,t)};J(x,e=>{H(pe)&&e(S)}),A(v),A(p);var C=B(p,2),w=e=>{var t=oT(),n=R(t,!0);A(t),V(()=>q(n,H(me))),K(e,t)},T=e=>{var t=ST(),n=R(t);A(t),V(()=>q(n,`You can leave this to ${(H(ue)||`them`)??``} — they'll make their own face if you skip it.`)),K(e,t)};J(C,e=>{H(me)?e(w):e(T,-1)});var E=B(C,2),ee=e=>{var t=oT(),n=R(t,!0);A(t),V(()=>q(n,H(i))),K(e,t)};J(E,e=>{H(i)&&e(ee)});var te=B(E,2),ne=R(te),D=B(ne,2),O=R(D,!0);A(D),A(te),A(n),V(e=>{D.disabled=e,q(O,H(a)?`Finishing...`:`Finish setup`)},[()=>H(a)||!we()]),Ir(`submit`,n,Me),U(`click`,s,xe),U(`change`,b,_e),U(`click`,ne,Te),K(e,t)},qe=e=>{var t=jT(),n=R(t),r=e=>{var t=wT(),n=B(z(t),2),r=R(n);A(n),V(()=>q(r,`Waking ${H(ue)??``}...`)),K(e,t)},s=e=>{var t=TT(),n=z(t),r=R(n,!0);A(n);var a=B(n,2);V(()=>q(r,H(i))),U(`click`,a,Ne),K(e,t)},c=e=>{var t=AT(),n=z(t),r=e=>{var t=ET(),n=R(t),r=R(n,!0);A(n);var i=B(n,2),a=R(i,!0);A(i),A(t),V(()=>{q(r,H(ue)),q(a,H(he))}),K(e,t)},i=e=>{var t=DT(),n=R(t);A(t),V(()=>q(n,`${H(ue)??``} is still waking — you'll find them in your messages.`)),K(e,t)};J(n,e=>{H(he)?e(r):H(ge)&&e(i,1)});var a=B(n,2),s=e=>{var t=kT();Y(t,21,()=>H(o),ti,(e,t)=>{var n=OT(),r=R(n,!0);A(n),V(()=>q(r,H(t))),K(e,n)}),A(t),K(e,t)};J(a,e=>{H(o).length>0&&e(s)}),U(`click`,B(a,2),Pe),K(e,t)};J(n,e=>{H(a)?e(r):H(i)?e(s,1):e(c,-1)}),A(t),K(e,t)};J(Ve,e=>{H(r)===`welcome`?e(He):H(r)===`system`?e(Ue,1):H(r)===`account`?e(We,2):H(r)===`provider`?e(Ge,3):H(r)===`spirit`?e(Ke,4):H(r)===`waking`&&e(qe,5)}),A(Re),A(Le),K(e,Le),N()}Lr([`click`,`change`]);var PT=W(`<p class="loading-text svelte-zlnrm2">Loading...</p>`),FT=W(`<div class="status-line svelte-zlnrm2"> </div>`),IT=W(`<div class="install-hint svelte-zlnrm2"> </div>`),LT=W(`<div class="status-line missing svelte-zlnrm2">restic not installed</div> <!>`,1),RT=W(`&middot; snapshot <span class="mono svelte-zlnrm2"> </span>`,1),zT=W(`<div class="last-run svelte-zlnrm2"> <!> <!></div>`),BT=W(`<div class="prune-warning svelte-zlnrm2"> </div>`),VT=W(`<!> <!> <!> <!>`,1),HT=W(`<div class="copy-error svelte-zlnrm2"> </div>`),UT=W(`<div class="password-reveal svelte-zlnrm2"><div class="password-warning svelte-zlnrm2">Store this passphrase somewhere off this machine &mdash; without it your backups are
89
+ unreadable. It will not be shown again.</div> <div class="password-row svelte-zlnrm2"><code class="password-value svelte-zlnrm2"> </code> <!></div> <!></div>`),WT=W(`<!> <!> <div class="env-block svelte-zlnrm2"><div class="env-label svelte-zlnrm2">Credentials</div> <textarea class="env-textarea svelte-zlnrm2" rows="3"></textarea> <div class="env-hint svelte-zlnrm2">One KEY=VALUE per line, passed to restic. Saving replaces all stored credentials. <!></div></div> <div class="section-actions svelte-zlnrm2"><!></div> <!>`,1),GT=W(`<!> <span class="setting-hint svelte-zlnrm2">daily</span> <!> <span class="setting-hint svelte-zlnrm2">weekly</span> <!> <span class="setting-hint svelte-zlnrm2">monthly</span>`,1),KT=W(`<!> <span class="setting-hint wrap svelte-zlnrm2">Include session transcripts &mdash; Claude transcripts are only inside mind directories on
90
+ user-isolation installs; elsewhere they live in the host ~/.claude and can't be captured.</span>`,1),qT=W(`<span class="save-status svelte-zlnrm2">Saving...</span>`),JT=W(`<span class="save-status saved svelte-zlnrm2">Saved</span>`),YT=W(`<div class="run-summary svelte-zlnrm2">Snapshot <span class="mono svelte-zlnrm2"> </span> </div>`),XT=W(`<div class="snapshot-row svelte-zlnrm2"><span class="mono svelte-zlnrm2"> </span> <span class="snapshot-time svelte-zlnrm2"> </span> <span class="snapshot-host svelte-zlnrm2"> </span></div>`),ZT=W(`<div class="snapshot-list svelte-zlnrm2"></div>`),QT=W(`<div class="section-actions svelte-zlnrm2"><!> <!></div> <!> <!>`,1),$T=W(`<!> <!> <!> <div class="save-row svelte-zlnrm2"><!> <!></div> <!>`,1),eE=W(`<div class="backups svelte-zlnrm2"><!></div>`);function tE(e,t){M(t,!0);let n=F(!1),r=F(null),i=F(null),a=F(L({})),o=F(``),s=F(``),c=F(!1),l=F(L([])),u=F(``),d=F(!1),f=F(!1),p=F(`0 3 * * *`),m=F(``),h=F(``),g=F(``),_=F(!1),v=F(!1),y=F(null),b=F(!1),x=F(``),S=F(!1),C=F(null),w=F(``),T=F(null),E=F(!1),ee=F(``),te=F(``),ne=F(!0),D=F(!1),O=F(`idle`),re;function ie(e){if(!e.trim())return;let t=parseInt(e,10);return Number.isNaN(t)?void 0:t}function ae(e){let t={};for(let n of e.split(`
91
+ `)){let e=n.trim();if(!e)continue;let r=e.indexOf(`=`);r<=0||(t[e.slice(0,r).trim()]=e.slice(r+1))}return t}async function k(){let e=await Jd();I(n,e.resticInstalled,!0),I(r,e.resticVersion,!0),I(i,e.installHint,!0),I(a,e.state,!0),I(o,e.config.repository??``,!0),I(c,e.config.hasPassword,!0),I(l,e.config.envKeys,!0),I(f,e.config.enabled??!1,!0),I(p,e.config.schedule??`0 3 * * *`,!0),I(m,e.config.keep?.daily==null?``:String(e.config.keep.daily),!0),I(h,e.config.keep?.weekly==null?``:String(e.config.keep.weekly),!0),I(g,e.config.keep?.monthly==null?``:String(e.config.keep.monthly),!0),I(_,e.config.includeSessions??!1,!0)}async function oe(){I(O,`saving`),clearTimeout(re);try{await Yd({repository:H(o),schedule:H(p),enabled:H(f),keep:{daily:ie(H(m)),weekly:ie(H(h)),monthly:ie(H(g))},includeSessions:H(_),password:H(s),env:H(d)?ae(H(u)):void 0}),I(s,``),I(u,``),I(d,!1),I(te,``),I(O,`saved`),re=setTimeout(()=>{I(O,`idle`)},1500)}catch(e){I(te,e instanceof Error?e.message:`Save failed`,!0),I(O,`idle`);return}try{await k()}catch(e){console.error(`Failed to refresh backup status`,e)}}async function se(){if(I(v,!0),I(y,null),await oe(),!H(te)){try{let e=await Xd();I(y,e.password,!0)}catch(e){I(te,e instanceof Error?e.message:`Failed to initialize repository`,!0)}try{await k()}catch(e){console.error(`Failed to refresh backup status`,e)}}I(v,!1)}async function ce(){if(H(y)){I(x,``);try{await navigator.clipboard.writeText(H(y))}catch{I(x,`Copy failed — select the text manually`);return}I(b,!0),setTimeout(()=>{I(b,!1)},1500)}}async function le(){I(S,!0),I(C,null),I(w,``);try{I(C,await Zd(),!0)}catch(e){I(w,e instanceof Error?e.message:`Backup failed`,!0),I(S,!1);return}try{await k(),H(T)&&await ue()}catch(e){console.error(`Failed to refresh backup status`,e)}I(S,!1)}async function ue(){I(E,!0),I(ee,``);try{I(T,await Qd(),!0)}catch(e){I(ee,e instanceof Error?e.message:`Failed to list snapshots`,!0)}I(E,!1)}function de(e){return`${(e/(1024*1024)).toFixed(1)} MB`}function fe(e){return e>=1e3?`${(e/1e3).toFixed(1)}s`:`${e}ms`}ma(async()=>{try{await k()}catch(e){I(te,e instanceof Error?e.message:`Failed to load backup status`,!0),I(D,!0)}I(ne,!1)});var pe=eE(),me=R(pe),he=e=>{K(e,PT())},ge=e=>{Ca(e,{get message(){return H(te)}})},_e=e=>{var t=$T(),ne=z(t);uo(ne,{title:`Status`,children:(e,t)=>{var o=VT(),s=z(o),c=e=>{var t=FT(),n=R(t,!0);A(t),V(()=>q(n,H(r))),K(e,t)},l=e=>{var t=LT(),n=B(z(t),2),r=e=>{var t=IT(),n=R(t,!0);A(t),V(()=>q(n,H(i))),K(e,t)};J(n,e=>{H(i)&&e(r)}),K(e,t)};J(s,e=>{H(n)?e(c):e(l,-1)});var u=B(s,2),d=e=>{var t=zT(),n=R(t),r=B(n),i=e=>{var t=RT(),n=B(z(t)),r=R(n,!0);A(n),V(e=>q(r,e),[()=>H(a).lastSnapshotId.slice(0,8)]),K(e,t)};J(r,e=>{H(a).lastSnapshotId&&e(i)});var o=B(r,2),s=e=>{var t=G();V(e=>q(t,`· ${e??``}`),[()=>fe(H(a).lastDurationMs)]),K(e,t)};J(o,e=>{H(a).lastDurationMs!=null&&e(s)}),A(t),V(e=>q(n,`Last successful backup ${e??``} `),[()=>new Date(H(a).lastRun).toLocaleString()]),K(e,t)};J(u,e=>{H(a).lastRun&&e(d)});var f=B(u,2),p=e=>{var t=BT(),n=R(t);A(t),V(()=>q(n,`Retention prune failed: ${H(a).pruneError??``}`)),K(e,t)};J(f,e=>{H(a).pruneError&&e(p)});var m=B(f,2),h=e=>{{let t=P(()=>H(a).lastAttempt?`Last attempt failed ${new Date(H(a).lastAttempt).toLocaleString()}: ${H(a).lastError}`:`Last attempt failed: ${H(a).lastError}`);Ca(e,{get message(){return H(t)}})}};J(m,e=>{H(a).lastError&&e(h)}),K(e,o)},$$slots:{default:!0}});var D=B(ne,2);uo(D,{title:`Repository`,children:(e,t)=>{var r=WT(),i=z(r);co(i,{label:`Repository`,children:(e,t)=>{Xa(e,{type:`text`,variant:`mono`,style:`flex:1`,placeholder:`/mnt/backups/volute or s3:s3.amazonaws.com/bucket/path`,get value(){return H(o)},set value(e){I(o,e,!0)}})},$$slots:{default:!0}});var a=B(i,2);co(a,{label:`Passphrase`,children:(e,t)=>{{let t=P(()=>H(c)?`(unchanged)`:`passphrase`);Xa(e,{type:`password`,style:`flex:1`,get placeholder(){return H(t)},get value(){return H(s)},set value(e){I(s,e,!0)}})}},$$slots:{default:!0}});var f=B(a,2),p=B(R(f),2);hn(p),Xi(p,`placeholder`,`AWS_ACCESS_KEY_ID=...
92
+ AWS_SECRET_ACCESS_KEY=...`);var m=B(p,2),h=B(R(m)),g=e=>{var t=G();V(e=>q(t,`Currently set: ${e??``}`),[()=>H(l).join(`, `)]),K(e,t)};J(h,e=>{H(l).length>0&&e(g)}),A(m),A(f);var _=B(f,2),S=R(_);{let e=P(()=>!H(n)||H(v)||!H(o).trim());_a(S,{variant:`secondary`,onclick:se,get disabled(){return H(e)},children:(e,t)=>{j();var n=G();V(()=>q(n,H(v)?`Initializing...`:`Initialize repository`)),K(e,n)},$$slots:{default:!0}})}A(_);var C=B(_,2),w=e=>{var t=UT(),n=B(R(t),2),r=R(n),i=R(r,!0);A(r),_a(B(r,2),{variant:`primary`,onclick:ce,children:(e,t)=>{j();var n=G();V(()=>q(n,H(b)?`Copied`:`Copy`)),K(e,n)},$$slots:{default:!0}}),A(n);var a=B(n,2),o=e=>{var t=HT(),n=R(t,!0);A(t),V(()=>q(n,H(x))),K(e,t)};J(a,e=>{H(x)&&e(o)}),A(t),V(()=>q(i,H(y))),K(e,t)};J(C,e=>{H(y)&&e(w)}),U(`input`,p,()=>I(d,!0)),aa(p,()=>H(u),e=>I(u,e)),K(e,r)},$$slots:{default:!0}});var re=B(D,2);uo(re,{title:`Schedule`,children:(e,t)=>{var n=VT(),r=z(n);co(r,{label:`Enabled`,children:(e,t)=>{{let t=P(()=>H(f)?`On`:`Off`);Co(e,{get checked(){return H(f)},onchange:()=>I(f,!H(f)),get label(){return H(t)}})}},$$slots:{default:!0}});var i=B(r,2);co(i,{label:`Cron`,children:(e,t)=>{Xa(e,{variant:`mono`,width:`140px`,placeholder:`0 3 * * *`,get value(){return H(p)},set value(e){I(p,e,!0)}})},$$slots:{default:!0}});var a=B(i,2);co(a,{label:`Keep`,children:(e,t)=>{var n=GT(),r=z(n);Xa(r,{type:`number`,width:`60px`,placeholder:`7`,get value(){return H(m)},set value(e){I(m,e,!0)}});var i=B(r,4);Xa(i,{type:`number`,width:`60px`,placeholder:`4`,get value(){return H(h)},set value(e){I(h,e,!0)}}),Xa(B(i,4),{type:`number`,width:`60px`,placeholder:`12`,get value(){return H(g)},set value(e){I(g,e,!0)}}),j(2),K(e,n)},$$slots:{default:!0}}),co(B(a,2),{label:`Sessions`,children:(e,t)=>{var n=KT();Co(z(n),{get checked(){return H(_)},onchange:()=>I(_,!H(_))}),j(2),K(e,n)},$$slots:{default:!0}}),K(e,n)},$$slots:{default:!0}});var ie=B(re,2),ae=R(ie);{let e=P(()=>H(O)===`saving`);_a(ae,{variant:`primary`,onclick:oe,get disabled(){return H(e)},children:(e,t)=>{j(),K(e,G(`Save`))},$$slots:{default:!0}})}var k=B(ae,2),pe=e=>{Ca(e,{get message(){return H(te)}})},me=e=>{K(e,qT())},he=e=>{K(e,JT())};J(k,e=>{H(te)?e(pe):H(O)===`saving`?e(me,1):H(O)===`saved`&&e(he,2)}),A(ie),uo(B(ie,2),{title:`Backups`,children:(e,t)=>{var r=QT(),i=z(r),a=R(i);{let e=P(()=>!H(n)||H(S));_a(a,{variant:`secondary`,onclick:le,get disabled(){return H(e)},children:(e,t)=>{j();var n=G();V(()=>q(n,H(S)?`Running backup...`:`Run backup now`)),K(e,n)},$$slots:{default:!0}})}var o=B(a,2);{let e=P(()=>!H(n)||H(E));_a(o,{variant:`secondary`,onclick:ue,get disabled(){return H(e)},children:(e,t)=>{j();var n=G();V(()=>q(n,H(E)?`Loading...`:H(T)?`Refresh snapshots`:`Show snapshots`)),K(e,n)},$$slots:{default:!0}})}A(i);var s=B(i,2),c=e=>{Ca(e,{get message(){return H(w)}})},l=e=>{var t=YT(),n=B(R(t)),r=R(n,!0);A(n);var i=B(n);A(t),V((e,t,n)=>{q(r,e),q(i,` ·
93
93
  ${H(C).totalFilesProcessed??``} files processed (${H(C).filesNew??``} new,
94
94
  ${H(C).filesChanged??``} changed) · ${t??``} added ·
95
- ${n??``}`)},[()=>H(C).snapshotId.slice(0,8),()=>de(H(C).dataAdded),()=>fe(H(C).durationMs)]),K(e,t)};J(s,e=>{H(w)?e(c):H(C)&&e(l,1)});var u=B(s,2),d=e=>{Ca(e,{get message(){return H(ee)}})},f=e=>{var t=Kr(),n=z(t),r=e=>{xa(e,{message:`No snapshots yet.`})},i=e=>{var t=KT();Y(t,21,()=>H(T),e=>e.id,(e,t)=>{var n=GT(),r=R(n),i=R(r,!0);A(r);var a=B(r,2),o=R(a,!0);A(a);var s=B(a,2),c=R(s,!0);A(s),A(n),V(e=>{q(i,H(t).short_id),q(o,e),q(c,H(t).hostname)},[()=>new Date(H(t).time).toLocaleString()]),K(e,n)}),A(t),K(e,t)};J(n,e=>{H(T).length===0?e(r):e(i,-1)}),K(e,t)};J(u,e=>{H(ee)?e(d):H(T)&&e(f,1)}),K(e,r)},$$slots:{default:!0}}),K(e,t)};J(me,e=>{H(ne)?e(he):H(D)?e(ge,1):e(_e,-1)}),A(pe),K(e,pe),N()}Lr([`input`]);var ZT=W(`<form class="install-form svelte-1yivsg9"><input type="text" class="install-input svelte-1yivsg9" placeholder="npm package name"/> <!></form>`),QT=W(`<div class="restart-banner svelte-1yivsg9">Restart the daemon to apply changes.</div>`),$T=W(`<div class="ext-desc svelte-1yivsg9"> </div>`),eE=W(`<div class="ext-actions svelte-1yivsg9"><!></div>`),tE=W(`<div class="ext-row svelte-1yivsg9"><label class="enabled-toggle svelte-1yivsg9"><input type="checkbox" class="svelte-1yivsg9"/> <span class="toggle-track svelte-1yivsg9"><span class="toggle-thumb svelte-1yivsg9"></span></span></label> <div class="ext-info svelte-1yivsg9"><div class="ext-name svelte-1yivsg9"> </div> <!> <div class="ext-meta svelte-1yivsg9"> </div></div> <!></div>`),nE=W(`<div class="ext-list svelte-1yivsg9"><div class="column-header svelte-1yivsg9"><span class="column-label svelte-1yivsg9">Enabled</span></div> <!></div>`),rE=W(`<!> <!> <!> <!>`,1);function iE(e,t){M(t,!0);let n=F(L([])),r=F(``),i=F(!0),a=F(null),o=F(!1),s=F(``);function c(){pf().then(e=>{I(n,e,!0),I(i,!1),I(r,``)}).catch(e=>{I(r,e instanceof Error?e.message:`Failed to load extensions`,!0),I(i,!1)})}ma(c);async function l(e){I(a,e.id,!0),I(r,``);try{await mf(e.id,!e.enabled),e.enabled=!e.enabled,I(o,!0)}catch(e){I(r,e instanceof Error?e.message:`Failed to update`,!0)}I(a,null)}async function u(){let e=H(s).trim();if(e){I(a,`install`),I(r,``);try{await hf(e),I(s,``),I(o,!0),c()}catch(e){I(r,e instanceof Error?e.message:`Failed to install`,!0)}I(a,null)}}async function d(e){if(e.package){I(a,e.id,!0),I(r,``);try{await gf(e.package),I(o,!0),c()}catch(e){I(r,e instanceof Error?e.message:`Failed to uninstall`,!0)}I(a,null)}}let f=P(()=>[...H(n).filter(e=>e.source===`builtin`),...H(n).filter(e=>e.source!==`builtin`)]);var p=Kr(),m=z(p),h=e=>{xa(e,{message:`Loading...`})},g=e=>{var t=rE(),i=z(t);Ca(i,{get message(){return H(r)}});var c=B(i,2);no(c,{title:`Extensions`,action:e=>{var t=ZT(),n=R(t);Ki(n);var r=B(n,2);{let e=P(()=>H(a)!==null||!H(s).trim());_a(r,{variant:`primary`,onclick:u,get disabled(){return H(e)},children:(e,t)=>{j();var n=G();V(()=>q(n,H(a)===`install`?`Installing...`:`Install`)),K(e,n)},$$slots:{default:!0}})}A(t),V(()=>n.disabled=H(a)!==null),Ir(`submit`,t,e=>{e.preventDefault(),u()}),aa(n,()=>H(s),e=>I(s,e)),K(e,t)},$$slots:{action:!0}});var p=B(c,2),m=e=>{K(e,QT())};J(p,e=>{H(o)&&e(m)});var h=B(p,2),g=e=>{xa(e,{message:`No extensions found.`})},_=e=>{var t=nE();Y(B(R(t),2),17,()=>H(f),e=>e.id,(e,t)=>{var n=tE(),r=R(n),i=R(r);Ki(i),j(2),A(r);var o=B(r,2),s=R(o),c=R(s,!0);A(s);var u=B(s,2),f=e=>{var n=$T(),r=R(n,!0);A(n),V(()=>q(r,H(t).description)),K(e,n)};J(u,e=>{H(t).description&&e(f)});var p=B(u,2),m=R(p);A(p),A(o);var h=B(o,2),g=e=>{var n=eE(),r=R(n);{let e=P(()=>H(a)!==null);_a(r,{variant:`danger`,onclick:()=>d(H(t)),get disabled(){return H(e)},children:(e,n)=>{j();var r=G();V(()=>q(r,H(a)===H(t).id?`...`:`Uninstall`)),K(e,r)},$$slots:{default:!0}})}A(n),K(e,n)};J(h,e=>{H(t).source===`npm`&&H(t).package&&e(g)}),A(n),V(()=>{Xi(r,`title`,H(t).enabled?`Enabled`:`Disabled`),Ji(i,H(t).enabled),i.disabled=H(a)!==null,q(c,H(t).name),q(m,`${H(t).id??``} · v${H(t).version??``} · ${H(t).source??``}`)}),U(`change`,i,()=>l(H(t))),K(e,n)}),A(t),K(e,t)};J(h,e=>{H(n).length===0?e(g):e(_,-1)}),K(e,t)};J(m,e=>{H(i)?e(h):e(g,-1)}),K(e,p),N()}Lr([`change`]);var aE=W(`<p class="loading-text svelte-y2443v">Loading...</p>`),oE=W(`<!> <button class="setting-hint-btn svelte-y2443v">back</button>`,1),sE=W(`<option> </option>`),cE=W(`<option>--</option> <!> <option>other...</option>`,1),lE=W(`<div class="slider-control svelte-y2443v"><input type="range" class="thinking-slider svelte-y2443v" min="0" max="5" step="1"/> <span> </span></div>`),uE=W(`<!> <span class="setting-hint svelte-y2443v">per</span> <!> <span class="setting-hint svelte-y2443v">min</span>`,1),dE=W(`<!> <span class="setting-hint svelte-y2443v">tokens</span>`,1),fE=W(`<!> <!> <!> <!>`,1),pE=W(`<div class="cron-preview svelte-y2443v"> </div>`),mE=W(`<div class="sleep-summary svelte-y2443v"><span class="sleep-desc svelte-y2443v">Custom schedule</span> <!></div> <div class="cron-row svelte-y2443v"><span class="cron-label svelte-y2443v">Sleep at</span> <!></div> <!> <div class="cron-row svelte-y2443v"><span class="cron-label svelte-y2443v">Wake at</span> <!></div> <!>`,1),hE=W(`<div class="sleep-summary svelte-y2443v"><span class="sleep-desc svelte-y2443v"> </span> <!></div> <!> <!>`,1),gE=W(`<!> <div class="wake-triggers svelte-y2443v"><div class="subsection-header small svelte-y2443v">What wakes the mind early</div> <div class="trigger-row svelte-y2443v"><!></div> <div class="trigger-row svelte-y2443v"><!></div> <div class="trigger-row svelte-y2443v"><span class="trigger-text svelte-y2443v">Channels</span> <!></div> <div class="trigger-row svelte-y2443v"><span class="trigger-text svelte-y2443v">Senders</span> <!></div></div>`,1),_E=W(`<option>Every few hours</option> <option>Daily at a time</option> <option>Custom cron</option>`,1),vE=W(`<div class="form-row svelte-y2443v"><span class="form-label svelte-y2443v"></span> <span class="form-hint svelte-y2443v">Every</span> <!> <span class="form-hint svelte-y2443v">hours</span></div>`),yE=W(`<div class="form-row svelte-y2443v"><span class="form-label svelte-y2443v"></span> <span class="form-hint svelte-y2443v">At</span> <!></div>`),bE=W(`<div class="form-row svelte-y2443v"><span class="form-label svelte-y2443v"></span> <!></div>`),xE=W(`<option>Skip it</option> <option>Save for when awake</option> <option>Wake up for it</option>`,1),SE=W(`<div class="schedule-form svelte-y2443v"><div class="form-row svelte-y2443v"><span class="form-label svelte-y2443v">Name</span> <!></div> <div class="form-row svelte-y2443v"><span class="form-label svelte-y2443v">Frequency</span> <!></div> <!> <div class="form-row svelte-y2443v"><span class="form-label svelte-y2443v">Message</span> <textarea class="message-input svelte-y2443v" rows="2" placeholder="What to tell the mind — several lines rotate at random"></textarea></div> <div class="form-row svelte-y2443v"><span class="form-label svelte-y2443v">If sleeping</span> <!></div> <div class="form-actions svelte-y2443v"><!> <!></div></div>`),CE=W(`<div class="schedule-card editing svelte-y2443v"><div class="form-row svelte-y2443v"><span class="form-label svelte-y2443v">Frequency</span> <!></div> <!> <div class="form-row svelte-y2443v"><span class="form-label svelte-y2443v">Message</span> <textarea class="message-input svelte-y2443v" rows="2" placeholder="What to tell the mind — several lines rotate at random"></textarea></div> <div class="form-row svelte-y2443v"><span class="form-label svelte-y2443v">If sleeping</span> <!></div> <div class="form-actions svelte-y2443v"><!> <!></div></div>`),wE=W(`<div class="schedule-message svelte-y2443v"> </div>`),TE=W(`<div><div class="schedule-top svelte-y2443v"><span class="schedule-name svelte-y2443v"> </span> <span class="schedule-freq svelte-y2443v"><!></span> <div class="schedule-actions svelte-y2443v"><!> <!> <!></div></div> <!></div>`),EE=W(`<div class="schedule-list svelte-y2443v"></div>`),DE=W(`<div class="subsection svelte-y2443v"><div class="subsection-header svelte-y2443v"><span>Sleep</span> <!></div> <!></div> <div class="subsection svelte-y2443v"><div class="subsection-header svelte-y2443v"><span>Schedules</span> <!></div> <!> <!></div>`,1),OE=W(`<span class="save-status svelte-y2443v">Saving...</span>`),kE=W(`<span class="save-status saved svelte-y2443v">Saved</span>`),AE=W(`<!> <!> <div class="status-bar svelte-y2443v"><!></div>`,1),jE=W(`<div class="mind-defaults svelte-y2443v"><!></div>`);function ME(e,t){M(t,!0);let n=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`],r=F(L([])),i=F(``),a=F(0),o=F(``),s=F(``),c=F(``),l=F(!0),u=F(0),d=F(0),f=F(8),p=F(0),m=F(!1),h=F(``),g=F(``),_=F(L(nf.mentions)),v=F(L(nf.dms)),y=F(``),b=F(``),x=F(L([])),S=F(!1),C=F(null),w=F(``),T=F(`daily`),E=F(4),ee=F(12),te=F(0),ne=F(``),D=F(``),O=F(`skip`),re=F(`cron`),ie=F(4),ae=F(12),k=F(0),oe=F(``),se=F(``),ce=F(`skip`),le=F(!0),ue=F(``),de=F(!0),fe=F(!1),pe=F(`idle`),me,he=P(()=>H(r).filter(e=>e.enabled)),ge=P(()=>H(i)!==``&&!H(he).some(e=>e.id===H(i))),_e=P(()=>n[H(a)]);function ve(e){if(!e.trim())return null;let t=parseInt(e,10);return Number.isNaN(t)?null:t}function ye(e){let t=e.split(`,`).map(e=>e.trim()).filter(Boolean);return t.length?t:void 0}async function be(){I(pe,`saving`),clearTimeout(me);try{await Bd({cognition:{model:H(i)||void 0,thinkingLevel:n[H(a)]===`off`?void 0:n[H(a)],tokenBudget:ve(H(o))??void 0,tokenBudgetPeriodMinutes:ve(H(s))??void 0,compaction:ve(H(c))==null?void 0:{maxContextTokens:ve(H(c))}},sleep:{enabled:H(l),schedule:H(l)?{sleep:H(m)?H(h):Lb(H(u),H(d)),wake:H(m)?H(g):Lb(H(f),H(p))}:void 0,wakeTriggers:H(l)?{mentions:H(_),dms:H(v),channels:ye(H(y)),senders:ye(H(b))}:void 0},schedules:H(x).length>0?H(x):void 0}),I(ue,``),I(pe,`saved`),me=setTimeout(()=>{I(pe,`idle`)},1500)}catch(e){I(ue,e instanceof Error?e.message:`Save failed`,!0),I(pe,`idle`)}}function xe(e){let t=e.target.value;t===`__other__`?I(i,``):(I(i,t,!0),t&&be())}function Se(e){I(a,parseInt(e.target.value,10),!0),be()}function Ce(e){I(C,e.id,!0);let t=e.cron?Rb(e.cron):{type:`daily`};I(re,t.type,!0),I(ie,t.hours??4,!0),I(ae,t.hour??12,!0),I(k,t.minute??0,!0),I(oe,e.cron??``,!0),I(se,Bb(e),!0),I(ce,e.whileSleeping??`skip`,!0),I(le,e.enabled,!0)}function we(){if(!H(C))return;let e=zb(H(re),{hours:H(ie),hour:H(ae),minute:H(k),cron:H(oe)});I(x,H(x).map(t=>t.id===H(C)?{...t,cron:e||void 0,message:void 0,messages:void 0,...Vb(H(se)),whileSleeping:H(ce),enabled:H(le)}:t),!0),I(C,null),be()}function Te(){if(!H(w).trim())return;let e=zb(H(T),{hours:H(E),hour:H(ee),minute:H(te),cron:H(ne)});I(x,[...H(x),{id:H(w).trim(),cron:e||void 0,...Vb(H(D)),enabled:!0,whileSleeping:H(O)}],!0),I(w,``),I(T,`daily`),I(E,4),I(ee,12),I(te,0),I(ne,``),I(D,``),I(O,`skip`),I(S,!1),be()}function Ee(e){I(x,H(x).filter(t=>t.id!==e),!0),be()}function De(e){I(x,H(x).map(t=>t.id===e.id?{...t,enabled:!t.enabled}:t),!0),be()}ma(async()=>{try{let[e,t]=await Promise.all([zd(),Od()]);if(I(r,t,!0),e.cognition){I(i,e.cognition.model??``,!0);let t=e.cognition.thinkingLevel??`off`;I(a,Math.max(0,n.indexOf(t)),!0),I(o,e.cognition.tokenBudget==null?``:String(e.cognition.tokenBudget),!0),I(s,e.cognition.tokenBudgetPeriodMinutes==null?``:String(e.cognition.tokenBudgetPeriodMinutes),!0),I(c,e.cognition.compaction?.maxContextTokens==null?``:String(e.cognition.compaction.maxContextTokens),!0)}if(e.sleep){I(l,e.sleep.enabled??!0,!0);let t=e.sleep.schedule?Ib(e.sleep.schedule.sleep):null,n=e.sleep.schedule?Ib(e.sleep.schedule.wake):null;t&&n?(I(u,t.hour,!0),I(d,t.minute,!0),I(f,n.hour,!0),I(p,n.minute,!0)):e.sleep.schedule&&(I(m,!0),I(h,e.sleep.schedule.sleep,!0),I(g,e.sleep.schedule.wake,!0)),I(_,e.sleep.wakeTriggers?.mentions??nf.mentions,!0),I(v,e.sleep.wakeTriggers?.dms??nf.dms,!0),I(y,(e.sleep.wakeTriggers?.channels??[]).join(`, `),!0),I(b,(e.sleep.wakeTriggers?.senders??[]).join(`, `),!0)}e.schedules&&I(x,e.schedules,!0)}catch(e){I(ue,e instanceof Error?e.message:`Failed to load defaults`,!0),I(fe,!0)}I(de,!1)});var Oe=jE(),ke=R(Oe),Ae=e=>{K(e,aE())},je=e=>{Ca(e,{get message(){return H(ue)}})},Me=e=>{var t=AE(),n=z(t);uo(n,{title:`Model`,children:(e,t)=>{var n=fE(),r=z(n);co(r,{label:`Model`,children:(e,t)=>{var n=Kr(),r=z(n),a=e=>{var t=oE(),n=z(t);Xa(n,{type:`text`,onblur:()=>be(),placeholder:`Model ID`,get value(){return H(i)},set value(e){I(i,e,!0)}}),U(`click`,B(n,2),()=>{I(i,H(he)[0]?.id??``,!0),H(i)&&be()}),K(e,t)},o=e=>{oo(e,{get value(){return H(i)},onchange:xe,children:(e,t)=>{var n=cE(),r=z(n);r.value=r.__value=``;var i=B(r,2);Y(i,17,()=>H(he),e=>e.id,(e,t)=>{var n=sE(),r=R(n,!0);A(n);var i={};V(()=>{q(r,H(t).name),i!==(i=H(t).id)&&(n.value=(n.__value=H(t).id)??``)}),K(e,n)});var a=B(i,2);a.value=a.__value=`__other__`,K(e,n)},$$slots:{default:!0}})};J(r,e=>{H(ge)?e(a):e(o,-1)}),K(e,n)},$$slots:{default:!0}});var l=B(r,2);co(l,{label:`Thinking`,children:(e,t)=>{var n=lE(),r=R(n);Ki(r);var i=B(r,2);let o;var s=R(i,!0);A(i),A(n),V(()=>{qi(r,H(a)),o=X(i,1,`slider-label svelte-y2443v`,null,o,{off:H(a)===0}),q(s,H(_e))}),U(`change`,r,Se),K(e,n)},$$slots:{default:!0}});var u=B(l,2);co(u,{label:`Budget`,children:(e,t)=>{var n=uE(),r=z(n);Xa(r,{type:`number`,width:`80px`,onblur:()=>be(),placeholder:`tokens`,get value(){return H(o)},set value(e){I(o,e,!0)}}),Xa(B(r,4),{type:`number`,width:`80px`,onblur:()=>be(),placeholder:`min`,get value(){return H(s)},set value(e){I(s,e,!0)}}),j(2),K(e,n)},$$slots:{default:!0}}),co(B(u,2),{label:`Context`,children:(e,t)=>{var n=dE();Xa(z(n),{type:`number`,width:`80px`,onblur:()=>be(),placeholder:`150000`,get value(){return H(c)},set value(e){I(c,e,!0)}}),j(2),K(e,n)},$$slots:{default:!0}}),K(e,n)},$$slots:{default:!0}});var r=B(n,2);uo(r,{title:`Clock`,children:(e,t)=>{var n=DE(),r=z(n),i=R(r),a=B(R(i),2);{let e=P(()=>H(l)?`On`:`Off`);Co(a,{get checked(){return H(l)},onchange:()=>{I(l,!H(l)),be()},get label(){return H(e)}})}A(i);var o=B(i,2),s=e=>{var t=gE(),n=z(t),r=e=>{var t=mE(),n=z(t);_a(B(R(n),2),{variant:`text`,size:`sm`,onclick:()=>{I(m,!1),be()},children:(e,t)=>{j(),K(e,G(`Use time picker`))},$$slots:{default:!0}}),A(n);var r=B(n,2);Xa(B(R(r),2),{variant:`mono`,style:`flex:1`,onblur:()=>be(),placeholder:`0 0 * * *`,get value(){return H(h)},set value(e){I(h,e,!0)}}),A(r);var i=B(r,2),a=e=>{var t=pE(),n=R(t,!0);A(t),V(e=>q(n,e),[()=>Nb(H(h))]),K(e,t)};J(i,e=>{H(h)&&e(a)});var o=B(i,2);Xa(B(R(o),2),{variant:`mono`,style:`flex:1`,onblur:()=>be(),placeholder:`0 8 * * *`,get value(){return H(g)},set value(e){I(g,e,!0)}}),A(o);var s=B(o,2),c=e=>{var t=pE(),n=R(t,!0);A(t),V(e=>q(n,e),[()=>Nb(H(g))]),K(e,t)};J(s,e=>{H(g)&&e(c)}),K(e,t)},i=e=>{var t=hE(),n=z(t),r=R(n),i=R(r);A(r),_a(B(r,2),{variant:`text`,size:`sm`,onclick:()=>{I(m,!0),I(h,Lb(H(u),H(d)),!0),I(g,Lb(H(f),H(p)),!0)},children:(e,t)=>{j(),K(e,G(`Custom`))},$$slots:{default:!0}}),A(n);var a=B(n,2);bo(a,{label:`Sleep at`,onchange:()=>be(),get hour(){return H(u)},set hour(e){I(u,e,!0)},get minute(){return H(d)},set minute(e){I(d,e,!0)}}),bo(B(a,2),{label:`Wake at`,onchange:()=>be(),get hour(){return H(f)},set hour(e){I(f,e,!0)},get minute(){return H(p)},set minute(e){I(p,e,!0)}}),V((e,t)=>q(i,`Sleeps at ${e??``}, wakes at ${t??``}`),[()=>Pb(H(u),H(d)),()=>Pb(H(f),H(p))]),K(e,t)};J(n,e=>{H(m)?e(r):e(i,-1)});var a=B(n,2),o=B(R(a),2);Co(R(o),{get checked(){return H(_)},onchange:()=>{I(_,!H(_)),be()},label:`When mentioned`}),A(o);var s=B(o,2);Co(R(s),{get checked(){return H(v)},onchange:()=>{I(v,!H(v)),be()},label:`Direct messages`}),A(s);var c=B(s,2);Xa(B(R(c),2),{type:`text`,style:`flex:1`,placeholder:`channel1, channel2`,onblur:()=>be(),get value(){return H(y)},set value(e){I(y,e,!0)}}),A(c);var l=B(c,2);Xa(B(R(l),2),{type:`text`,style:`flex:1`,placeholder:`user1, user2`,onblur:()=>be(),get value(){return H(b)},set value(e){I(b,e,!0)}}),A(l),A(a),K(e,t)};J(o,e=>{H(l)&&e(s)}),A(r);var c=B(r,2),le=R(c);_a(B(R(le),2),{variant:`primary`,onclick:()=>I(S,!0),children:(e,t)=>{j(),K(e,G(`Add`))},$$slots:{default:!0}}),A(le);var ue=B(le,2),de=e=>{var t=SE(),n=R(t);Xa(B(R(n),2),{type:`text`,style:`flex:1`,placeholder:`e.g. heartbeat`,get value(){return H(w)},set value(e){I(w,e,!0)}}),A(n);var r=B(n,2);oo(B(R(r),2),{get value(){return H(T)},set value(e){I(T,e,!0)},children:(e,t)=>{var n=_E(),r=z(n);r.value=r.__value=`hours`;var i=B(r,2);i.value=i.__value=`daily`;var a=B(i,2);a.value=a.__value=`cron`,K(e,n)},$$slots:{default:!0}}),A(r);var i=B(r,2),a=e=>{var t=vE();Xa(B(R(t),4),{type:`number`,width:`50px`,style:`text-align:center`,get value(){return H(E)},set value(e){I(E,e,!0)}}),j(2),A(t),K(e,t)},o=e=>{var t=yE();bo(B(R(t),4),{get hour(){return H(ee)},set hour(e){I(ee,e,!0)},get minute(){return H(te)},set minute(e){I(te,e,!0)}}),A(t),K(e,t)},s=e=>{var t=bE();Xa(B(R(t),2),{type:`text`,style:`flex:1`,placeholder:`*/30 * * * *`,get value(){return H(ne)},set value(e){I(ne,e,!0)}}),A(t),K(e,t)};J(i,e=>{H(T)===`hours`?e(a):H(T)===`daily`?e(o,1):e(s,-1)});var c=B(i,2),l=B(R(c),2);hn(l),A(c);var u=B(c,2);oo(B(R(u),2),{get value(){return H(O)},set value(e){I(O,e,!0)},children:(e,t)=>{var n=xE(),r=z(n);r.value=r.__value=`skip`;var i=B(r,2);i.value=i.__value=`queue`;var a=B(i,2);a.value=a.__value=`trigger-wake`,K(e,n)},$$slots:{default:!0}}),A(u);var d=B(u,2),f=R(d);{let e=P(()=>!H(w).trim());_a(f,{variant:`primary`,onclick:Te,get disabled(){return H(e)},children:(e,t)=>{j(),K(e,G(`Add schedule`))},$$slots:{default:!0}})}_a(B(f,2),{variant:`secondary`,onclick:()=>I(S,!1),children:(e,t)=>{j(),K(e,G(`Cancel`))},$$slots:{default:!0}}),A(d),A(t),aa(l,()=>H(D),e=>I(D,e)),K(e,t)};J(ue,e=>{H(S)&&e(de)});var fe=B(ue,2),pe=e=>{xa(e,{message:`No default schedules configured.`})},me=e=>{var t=EE();Y(t,21,()=>H(x),e=>e.id,(e,t)=>{var n=Kr(),r=z(n),i=e=>{var t=CE(),n=R(t);oo(B(R(n),2),{get value(){return H(re)},set value(e){I(re,e,!0)},children:(e,t)=>{var n=_E(),r=z(n);r.value=r.__value=`hours`;var i=B(r,2);i.value=i.__value=`daily`;var a=B(i,2);a.value=a.__value=`cron`,K(e,n)},$$slots:{default:!0}}),A(n);var r=B(n,2),i=e=>{var t=vE();Xa(B(R(t),4),{type:`number`,width:`50px`,style:`text-align:center`,get value(){return H(ie)},set value(e){I(ie,e,!0)}}),j(2),A(t),K(e,t)},a=e=>{var t=yE();bo(B(R(t),4),{get hour(){return H(ae)},set hour(e){I(ae,e,!0)},get minute(){return H(k)},set minute(e){I(k,e,!0)}}),A(t),K(e,t)},o=e=>{var t=bE();Xa(B(R(t),2),{type:`text`,style:`flex:1`,placeholder:`*/30 * * * *`,get value(){return H(oe)},set value(e){I(oe,e,!0)}}),A(t),K(e,t)};J(r,e=>{H(re)===`hours`?e(i):H(re)===`daily`?e(a,1):e(o,-1)});var s=B(r,2),c=B(R(s),2);hn(c),A(s);var l=B(s,2);oo(B(R(l),2),{get value(){return H(ce)},set value(e){I(ce,e,!0)},children:(e,t)=>{var n=xE(),r=z(n);r.value=r.__value=`skip`;var i=B(r,2);i.value=i.__value=`queue`;var a=B(i,2);a.value=a.__value=`trigger-wake`,K(e,n)},$$slots:{default:!0}}),A(l);var u=B(l,2),d=R(u);_a(d,{variant:`primary`,onclick:we,children:(e,t)=>{j(),K(e,G(`Save`))},$$slots:{default:!0}}),_a(B(d,2),{variant:`secondary`,onclick:()=>I(C,null),children:(e,t)=>{j(),K(e,G(`Cancel`))},$$slots:{default:!0}}),A(u),A(t),aa(c,()=>H(se),e=>I(se,e)),K(e,t)},a=e=>{var n=TE();let r;var i=R(n),a=R(i),o=R(a,!0);A(a);var s=B(a,2),c=R(s),l=e=>{var n=G();V(e=>q(n,e),[()=>Nb(H(t).cron)]),K(e,n)},u=e=>{K(e,G(`--`))};J(c,e=>{H(t).cron?e(l):e(u,-1)}),A(s);var d=B(s,2),f=R(d);Co(f,{get checked(){return H(t).enabled},onchange:()=>De(H(t))});var p=B(f,2);_a(p,{variant:`icon`,onclick:()=>Ce(H(t)),children:(e,t)=>{j(),K(e,G(`Edit`))},$$slots:{default:!0}}),_a(B(p,2),{variant:`danger`,size:`sm`,onclick:()=>Ee(H(t).id),children:(e,t)=>{j(),K(e,G(`Del`))},$$slots:{default:!0}}),A(d),A(i);var m=B(i,2),h=e=>{var n=wE(),r=R(n,!0);A(n),V(e=>q(r,e),[()=>Bb(H(t))]),K(e,n)};J(m,e=>{(H(t).message||H(t).messages?.length)&&e(h)}),A(n),V(()=>{r=X(n,1,`schedule-card svelte-y2443v`,null,r,{disabled:!H(t).enabled}),q(o,H(t).id)}),K(e,n)};J(r,e=>{H(C)===H(t).id?e(i):e(a,-1)}),K(e,n)}),A(t),K(e,t)};J(fe,e=>{H(x).length===0&&!H(S)?e(pe):e(me,-1)}),A(c),K(e,n)},$$slots:{default:!0}});var le=B(r,2),de=R(le),fe=e=>{Ca(e,{get message(){return H(ue)}})},me=e=>{K(e,OE())},ve=e=>{K(e,kE())};J(de,e=>{H(ue)?e(fe):H(pe)===`saving`?e(me,1):H(pe)===`saved`&&e(ve,2)}),A(le),K(e,t)};J(ke,e=>{H(de)?e(Ae):H(fe)?e(je,1):e(Me,-1)}),A(Oe),K(e,Oe),N()}Lr([`click`,`change`]);var NE=W(`<div class="upload-area svelte-ywjv10"><input type="file" accept=".zip" class="file-input svelte-ywjv10"/> <!></div>`),PE=W(`<div class="skill-desc svelte-ywjv10"> </div>`),FE=W(`<div class="skill-row svelte-ywjv10"><label class="default-toggle svelte-ywjv10"><input type="checkbox" class="svelte-ywjv10"/> <span class="toggle-track svelte-ywjv10"><span class="toggle-thumb svelte-ywjv10"></span></span></label> <div class="skill-info svelte-ywjv10"><div class="skill-name svelte-ywjv10"> </div> <!> <div class="skill-meta svelte-ywjv10"> </div></div> <div class="skill-actions svelte-ywjv10"><!></div></div>`),IE=W(`<div class="skill-list svelte-ywjv10"><div class="column-header svelte-ywjv10"><span class="column-label svelte-ywjv10">Default</span></div> <!></div>`),LE=W(`<!> <!> <div class="auto-update-row svelte-ywjv10"><label class="default-toggle svelte-ywjv10"><input type="checkbox" class="svelte-ywjv10"/> <span class="toggle-track svelte-ywjv10"><span class="toggle-thumb svelte-ywjv10"></span></span></label> <div class="auto-update-info svelte-ywjv10"><span class="auto-update-label svelte-ywjv10">Auto-update mind skills</span> <span class="auto-update-desc svelte-ywjv10">Automatically update installed skills on all minds when a new version is available</span></div></div> <!>`,1);function RE(e,t){M(t,!0);let n=F(L([])),r=F(L([])),i=F(!0),a=F(``),o=F(!0),s=F(null);function c(){Promise.all([id(),dd(),md()]).then(([e,t,s])=>{I(n,e.sort((e,t)=>e.name.localeCompare(t.name)),!0),I(r,t,!0),I(i,s,!0),I(o,!1),I(a,``)}).catch(()=>{I(a,`Failed to load skills`),I(o,!1)})}async function l(){let e=!H(i);I(i,e);try{await hd(e)}catch(t){I(i,!e),I(a,t instanceof Error?t.message:`Failed to update setting`,!0)}}ma(c);let u=F(void 0);async function d(){let e=H(u)?.files?.[0];if(e){I(s,`upload`),I(a,``);try{await ef(e),c(),H(u).value=``}catch(e){I(a,e instanceof Error?e.message:`Failed to upload`,!0)}I(s,null)}}async function f(e){I(s,e,!0),I(a,``);try{await ud(e),c()}catch(e){I(a,e instanceof Error?e.message:`Failed to remove`,!0)}I(s,null)}async function p(e){I(s,`default:${e}`),I(a,``);try{H(r).includes(e)?I(r,await pd(e),!0):I(r,await fd(e),!0)}catch(e){I(a,e instanceof Error?e.message:`Failed to update defaults`,!0)}I(s,null)}var m=Kr(),h=z(m),g=e=>{xa(e,{message:`Loading...`})},_=e=>{var t=LE(),o=z(t);Ca(o,{get message(){return H(a)}});var c=B(o,2);no(c,{title:`Skills`,action:e=>{var t=NE(),n=R(t);ua(n,e=>I(u,e),()=>H(u));var r=B(n,2);{let e=P(()=>H(s)!==null);_a(r,{variant:`primary`,onclick:()=>H(u).click(),get disabled(){return H(e)},children:(e,t)=>{j();var n=G();V(()=>q(n,H(s)===`upload`?`Uploading...`:`Upload .zip`)),K(e,n)},$$slots:{default:!0}})}A(t),U(`change`,n,d),K(e,t)},$$slots:{action:!0}});var m=B(c,2),h=R(m),g=R(h);Ki(g),j(2),A(h),j(2),A(m);var _=B(m,2),v=e=>{xa(e,{message:`No shared skills yet.`})},y=e=>{var t=IE();Y(B(R(t),2),17,()=>H(n),e=>e.id,(e,t)=>{var n=FE(),i=R(n),a=R(i);Ki(a),j(2),A(i);var o=B(i,2),c=R(o),l=R(c,!0);A(c);var u=B(c,2),d=e=>{var n=PE(),r=R(n,!0);A(n),V(()=>q(r,H(t).description)),K(e,n)};J(u,e=>{H(t).description&&e(d)});var m=B(u,2),h=R(m);A(m),A(o);var g=B(o,2),_=R(g);{let e=P(()=>H(s)!==null);_a(_,{variant:`danger`,onclick:()=>f(H(t).id),get disabled(){return H(e)},children:(e,n)=>{j();var r=G();V(()=>q(r,H(s)===H(t).id?`...`:`Delete`)),K(e,r)},$$slots:{default:!0}})}A(g),A(n),V((e,n)=>{Xi(i,`title`,e),Ji(a,n),a.disabled=H(s)!==null,q(l,H(t).name),q(h,`${H(t).id??``} · v${H(t).version??``} · by ${H(t).author??``}`)},[()=>H(r).includes(H(t).id)?`Installed on new minds`:`Not installed on new minds`,()=>H(r).includes(H(t).id)]),U(`change`,a,()=>p(H(t).id)),K(e,n)}),A(t),K(e,t)};J(_,e=>{H(n).length===0?e(v):e(y,-1)}),V(()=>{Xi(h,`title`,H(i)?`Skills auto-update on daemon restart`:`Skills must be updated manually per mind`),Ji(g,H(i))}),U(`change`,g,l),K(e,t)};J(h,e=>{H(o)?e(g):e(_,-1)}),K(e,m),N()}Lr([`change`]);function zE(e){let t=e-1;return t*t*t+1}function BE(e,{delay:t=0,duration:n=400,easing:r=zE,axis:i=`y`}={}){let a=getComputedStyle(e),o=+a.opacity,s=i===`y`?`height`:`width`,c=parseFloat(a[s]),l=i===`y`?[`top`,`bottom`]:[`left`,`right`],u=l.map(e=>`${e[0].toUpperCase()}${e.slice(1)}`),d=parseFloat(a[`padding${u[0]}`]),f=parseFloat(a[`padding${u[1]}`]),p=parseFloat(a[`margin${u[0]}`]),m=parseFloat(a[`margin${u[1]}`]),h=parseFloat(a[`border${u[0]}Width`]),g=parseFloat(a[`border${u[1]}Width`]);return{delay:t,duration:n,easing:r,css:e=>`overflow: hidden;opacity: ${Math.min(e*20,1)*o};${s}: ${e*c}px;padding-${l[0]}: ${e*d}px;padding-${l[1]}: ${e*f}px;margin-${l[0]}: ${e*p}px;margin-${l[1]}: ${e*m}px;border-${l[0]}-width: ${e*h}px;border-${l[1]}-width: ${e*g}px;min-${s}: 0`}}function VE(e){return e.user_type===`mind`&&e.external===!0}function HE(e){return e.avatar?e.user_type===`mind`&&!VE(e)?`/api/minds/${encodeURIComponent(e.username)}/avatar`:`/api/auth/avatars/${encodeURIComponent(e.avatar)}`:null}function UE(e){return e.user_type===`mind`?VE(e)?`external`:`local`:null}function WE(e){return VE(e)?`revoke access?`:e.user_type===`mind`?`delete mind + data?`:`delete account?`}var GE=W(`<div class="error svelte-1xya1td"> </div>`),KE=W(`<p class="lede svelte-1xya1td">Give this token to the mind. It authenticates as <span class="mono svelte-1xya1td"> </span> over the API — no process runs here.</p> <div class="token-box svelte-1xya1td"><code class="token svelte-1xya1td"> </code> <!></div> <p class="warn svelte-1xya1td">This is the only time the token is shown — only a hash of it is stored. If it's lost,
96
- issue a new one from the mind's card.</p> <!> <div class="actions svelte-1xya1td"><!></div>`,1),qE=W(`<p class="lede svelte-1xya1td">An external mind runs somewhere else and reaches in over the API. It gets an account and a
97
- token, but no process, port, or directory here.</p> <form><div class="field svelte-1xya1td"><label for="ext-name" class="svelte-1xya1td">Name</label> <!> <span class="hint svelte-1xya1td">Letters, numbers, dot, dash, underscore. Used as @name.</span></div> <div class="field svelte-1xya1td"><label for="ext-display" class="svelte-1xya1td">Display name <span class="opt svelte-1xya1td">optional</span></label> <!></div> <div class="field svelte-1xya1td"><label for="ext-desc" class="svelte-1xya1td">Description <span class="opt svelte-1xya1td">optional</span></label> <!></div> <!> <div class="actions svelte-1xya1td"><!> <!></div></form>`,1),JE=W(`<div class="body svelte-1xya1td"><!></div>`);function YE(e,t){M(t,!0);let n=F(``),r=F(``),i=F(``),a=F(``),o=F(!1),s=F(null),c=F(!1);async function l(e){e.preventDefault();let c=H(n).trim();if(!(!c||H(o))){I(o,!0),I(a,``);try{let e=await iu({name:c,displayName:H(r).trim()||void 0,description:H(i).trim()||void 0});I(s,{name:e.name,token:e.token},!0),t.onRegistered()}catch(e){I(a,e instanceof Error?e.message:`Failed to register`,!0)}finally{I(o,!1)}}}async function u(){if(H(s))try{await navigator.clipboard.writeText(H(s).token),I(c,!0),I(a,``),setTimeout(()=>I(c,!1),1500)}catch{I(a,`Couldn't copy — select the token and copy it manually`)}}{let d=P(()=>H(s)?`@${H(s).name} registered`:`Add external mind`);$a(e,{size:`420px`,get title(){return H(d)},get onClose(){return t.onClose},children:(e,d)=>{var f=JE(),p=R(f),m=e=>{var n=KE(),r=z(n),i=B(R(r)),o=R(i);A(i),j(),A(r);var l=B(r,2),d=R(l),f=R(d,!0);A(d),_a(B(d,2),{variant:`secondary`,onclick:u,children:(e,t)=>{j();var n=G();V(()=>q(n,H(c)?`copied`:`copy`)),K(e,n)},$$slots:{default:!0}}),A(l);var p=B(l,4),m=e=>{var t=GE(),n=R(t,!0);A(t),V(()=>q(n,H(a))),K(e,t)};J(p,e=>{H(a)&&e(m)});var h=B(p,2);_a(R(h),{variant:`primary`,get onclick(){return t.onClose},children:(e,t)=>{j(),K(e,G(`done`))},$$slots:{default:!0}}),A(h),V(()=>{q(o,`@${H(s).name??``}`),q(f,H(s).token)}),K(e,n)},h=e=>{var s=qE(),c=B(z(s),2),u=R(c);Xa(B(R(u),2),{id:`ext-name`,placeholder:`hecate`,autocomplete:`off`,spellcheck:!1,get value(){return H(n)},set value(e){I(n,e,!0)}}),j(2),A(u);var d=B(u,2);Xa(B(R(d),2),{id:`ext-display`,placeholder:`Hecate`,autocomplete:`off`,get value(){return H(r)},set value(e){I(r,e,!0)}}),A(d);var f=B(d,2);Xa(B(R(f),2),{id:`ext-desc`,placeholder:`What is this mind?`,autocomplete:`off`,get value(){return H(i)},set value(e){I(i,e,!0)}}),A(f);var p=B(f,2),m=e=>{var t=GE(),n=R(t,!0);A(t),V(()=>q(n,H(a))),K(e,t)};J(p,e=>{H(a)&&e(m)});var h=B(p,2),g=R(h);_a(g,{variant:`text`,type:`button`,get onclick(){return t.onClose},children:(e,t)=>{j(),K(e,G(`cancel`))},$$slots:{default:!0}});var _=B(g,2);{let e=P(()=>!H(n).trim()||H(o));_a(_,{variant:`primary`,type:`submit`,get disabled(){return H(e)},children:(e,t)=>{j();var n=G();V(()=>q(n,H(o)?`registering...`:`register`)),K(e,n)},$$slots:{default:!0}})}A(h),A(c),Ir(`submit`,c,l),K(e,s)};J(p,e=>{H(s)?e(m):e(h,-1)}),A(f),K(e,f)},$$slots:{default:!0}})}N()}var XE=W(`<div class="error panel-error svelte-fqyh9p"> </div>`),ZE=W(`<img alt="" class="svelte-fqyh9p"/>`),QE=Gr(`<rect x="4" y="8" width="16" height="12" rx="2"></rect><circle cx="9" cy="14" r="1.5"></circle><circle cx="15" cy="14" r="1.5"></circle><line x1="12" y1="4" x2="12" y2="8"></line><circle cx="12" cy="3" r="1"></circle>`,1),$E=Gr(`<path d="M5 11a7 7 0 1 1 14 0c0 3-1.5 5-3 6v3H8v-3c-1.5-1-3-3-3-6z"></path><path d="M5 10c-.6 0-1 .8-1 1.8S4.4 13.5 5 13.5"></path><path d="M19 10c.6 0 1 .8 1 1.8s-.4 1.7-1 1.7"></path><circle cx="9.5" cy="10.5" r="1" fill="currentColor" stroke="none"></circle><circle cx="14.5" cy="10.5" r="1" fill="currentColor" stroke="none"></circle>`,1),eD=Gr(`<svg class="type-icon svelte-fqyh9p" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><!></svg>`),tD=W(`<span class="username svelte-fqyh9p"> </span>`),nD=W(`<span> </span>`),rD=W(`<span class="role admin svelte-fqyh9p">admin</span>`),iD=W(`<span class="role pending svelte-fqyh9p">pending</span> <button class="approve-btn svelte-fqyh9p">approve</button>`,1),aD=W(`<div class="issued svelte-fqyh9p"><code class="svelte-fqyh9p"> </code> <span class="issued-note svelte-fqyh9p">shown once — copy it now</span></div>`),oD=W(`<span class="tokens-empty svelte-fqyh9p">loading...</span>`),sD=W(`<span class="tokens-error svelte-fqyh9p"> </span>`),cD=W(`<span class="tokens-empty svelte-fqyh9p">No tokens — this mind cannot authenticate.</span>`),lD=W(`<span class="confirm-prompt svelte-fqyh9p">revoke? <button class="confirm-yes svelte-fqyh9p">yes</button> <button class="confirm-no svelte-fqyh9p">no</button></span>`),uD=W(`<button class="action-btn danger svelte-fqyh9p">revoke</button>`),dD=W(`<div class="token-row svelte-fqyh9p"><span class="token-label svelte-fqyh9p"> </span> <span class="token-date svelte-fqyh9p"> </span> <!></div>`),fD=W(`<div class="tokens svelte-fqyh9p"><div class="tokens-head svelte-fqyh9p"><span class="tokens-title svelte-fqyh9p">API tokens</span> <button class="action-btn svelte-fqyh9p">new token</button></div> <!> <!></div>`),pD=W(`<button class="action-btn svelte-fqyh9p">remove admin</button>`),mD=W(`<button class="action-btn svelte-fqyh9p">make admin</button>`),hD=W(`<span class="confirm-prompt svelte-fqyh9p"> <button class="confirm-yes svelte-fqyh9p"> </button> <button class="confirm-no svelte-fqyh9p">no</button></span>`),gD=W(`<button class="action-btn danger svelte-fqyh9p">delete</button>`),_D=W(`<div class="detail-panel svelte-fqyh9p"><div class="field svelte-fqyh9p"><label class="svelte-fqyh9p">Display name</label> <input type="text" class="svelte-fqyh9p"/></div> <div class="field svelte-fqyh9p"><label class="svelte-fqyh9p">Description</label> <input type="text" placeholder="Optional description" class="svelte-fqyh9p"/></div> <!> <div class="detail-actions svelte-fqyh9p"><div class="left-actions svelte-fqyh9p"><!> <!></div> <button class="save-btn svelte-fqyh9p"> </button></div></div>`),vD=W(`<div><div class="user-row svelte-fqyh9p" role="button" tabindex="0"><span></span> <span class="avatar svelte-fqyh9p"><!></span> <div class="user-info svelte-fqyh9p"><span class="display-name svelte-fqyh9p"> </span> <!></div> <div class="row-actions svelte-fqyh9p"><!> <!> <!> <span>&#x25B8;</span></div></div> <!></div>`),yD=W(`<div class="empty svelte-fqyh9p">No users yet.</div>`),bD=W(`<div class="container svelte-fqyh9p"><div class="panel-header svelte-fqyh9p"><div class="heading svelte-fqyh9p"><h3 class="svelte-fqyh9p">Users</h3> <span class="count svelte-fqyh9p"> </span></div> <!></div> <!> <div class="user-list svelte-fqyh9p"></div> <!></div> <!>`,1);function xD(e,t){M(t,!0);let n=F(L([])),r=F(``),i=F(null),a=F(!1),o=F(``),s=F(``),c=F(!1),l=F(null),u=F(null),d=F(L([])),f=F(!1),p=F(``),m=F(null),h=F(null),g=P(()=>new Map(t.minds.map(e=>[e.name,e]))),_=P(()=>H(n).filter(e=>e.role===`admin`).length),v=P(()=>[...H(n)].sort((e,t)=>Number(t.role===`pending`)-Number(e.role===`pending`)));function y(e){return new Date(Rl(e)).toLocaleString()}function b(){$l().then(e=>{I(n,e,!0),I(r,``)}).catch(()=>{I(r,`Failed to load users`)})}ma(()=>{b()});function x(e){H(i)===e.id?(I(i,null),I(l,null)):(I(i,e.id,!0),I(o,e.display_name??``,!0),I(s,e.description??``,!0),I(l,null),I(d,[],!0),I(p,``),I(m,null),I(h,null),VE(e)&&S(e.id))}async function S(e){I(f,!0),I(p,``);try{I(d,await au(e),!0)}catch{I(d,[],!0),I(p,`Couldn't load tokens — this mind may still have credentials.`)}finally{I(f,!1)}}async function C(e){I(r,``);try{let t=await ou(e.id);I(m,t.token,!0),await S(e.id)}catch(e){I(r,e instanceof Error?e.message:`Failed to issue token`,!0)}}async function w(e,t){I(r,``);try{await su(e.id,t),I(h,null),await S(e.id)}catch(e){I(r,e instanceof Error?e.message:`Failed to revoke token`,!0)}}function T(e){if(e.user_type===`mind`){if(Qf.has(e.username))return;let t=H(g).get(e.username);return t?Ll(t):`var(--text-2)`}return $f.has(e.username)?`var(--text-0)`:`var(--text-2)`}async function E(e,t){e.stopPropagation();try{await tu(t),b()}catch{I(r,`Failed to approve user`)}}async function ee(e,t){e.stopPropagation();let n=t.role===`admin`?`user`:`admin`;try{await nu(t.id,n),b()}catch(e){I(r,e instanceof Error?e.message:`Failed to change role`,!0)}}async function te(e){I(c,!0);try{await ru(e.id,{display_name:H(o).trim()||null,description:H(s).trim()||null}),b()}catch(e){I(r,e instanceof Error?e.message:`Failed to update profile`,!0)}finally{I(c,!1)}}async function ne(e){I(u,e.id,!0);try{if(e.user_type===`mind`&&!VE(e))try{await wu(e.username,!0),Zf.minds=Zf.minds.filter(t=>t.name!==e.username)}catch(t){if(t instanceof Error&&t.message.includes(`not found`))await cu(e.id);else throw t}else await cu(e.id);I(i,null),I(l,null),b()}catch(e){I(r,e instanceof Error?e.message:`Failed to delete`,!0)}finally{I(u,null)}}function D(e){return(H(o).trim()||null)!==(e.display_name??null)||(H(s).trim()||null)!==(e.description??null)}var O=bD(),re=z(O),ie=R(re),ae=R(ie),k=B(R(ae),2),oe=R(k,!0);A(k),A(ae),_a(B(ae,2),{variant:`secondary`,onclick:()=>I(a,!0),children:(e,t)=>{j(),K(e,G(`+ external mind`))},$$slots:{default:!0}}),A(ie);var se=B(ie,2),ce=e=>{var t=XE(),n=R(t,!0);A(t),V(()=>q(n,H(r))),K(e,t)};J(se,e=>{H(r)&&e(ce)});var le=B(se,2);Y(le,21,()=>H(v),e=>e.id,(e,t)=>{let n=P(()=>HE(H(t))),r=P(()=>UE(H(t)));var a=vD();let g;var v=R(a),b=R(v);let S,O;var re=B(b,2),ie=R(re),ae=e=>{var t=ZE();V(()=>Xi(t,`src`,H(n))),K(e,t)},k=e=>{var n=eD(),r=R(n),i=e=>{var t=QE();j(4),K(e,t)},a=e=>{var t=$E();j(4),K(e,t)};J(r,e=>{H(t).user_type===`mind`?e(i):e(a,-1)}),A(n),K(e,n)};J(ie,e=>{H(n)?e(ae):e(k,-1)}),A(re);var oe=B(re,2),se=R(oe),ce=R(se,!0);A(se);var le=B(se,2),ue=e=>{var n=tD(),r=R(n);A(n),V(()=>q(r,`@${H(t).username??``}`)),K(e,n)};J(le,e=>{H(t).display_name&&e(ue)}),A(oe);var de=B(oe,2),fe=R(de),pe=e=>{var t=nD();let n;var i=R(t,!0);A(t),V(()=>{n=X(t,1,`tag svelte-fqyh9p`,null,n,{external:H(r)===`external`}),q(i,H(r))}),K(e,t)};J(fe,e=>{H(r)&&e(pe)});var me=B(fe,2),he=e=>{K(e,rD())};J(me,e=>{H(t).role===`admin`&&e(he)});var ge=B(me,2),_e=e=>{var n=iD();U(`click`,B(z(n),2),e=>E(e,H(t).id)),K(e,n)};J(ge,e=>{H(t).role===`pending`&&e(_e)});var ve=B(ge,2);let ye;A(de),A(v);var be=B(v,2),xe=e=>{var n=_D(),r=R(n),i=R(r),a=B(i,2);Ki(a),A(r);var g=B(r,2),v=R(g),b=B(v,2);Ki(b),A(g);var x=B(g,2),S=e=>{var n=fD(),r=R(n),i=B(R(r),2);A(r);var a=B(r,2),o=e=>{var t=aD(),n=R(t),r=R(n,!0);A(n),j(2),A(t),V(()=>q(r,H(m))),K(e,t)};J(a,e=>{H(m)&&e(o)});var s=B(a,2),c=e=>{K(e,oD())},l=e=>{var t=sD(),n=R(t,!0);A(t),V(()=>q(n,H(p))),K(e,t)},u=e=>{K(e,cD())},g=e=>{var n=Kr();Y(z(n),17,()=>H(d),e=>e.id,(e,n)=>{var r=dD(),i=R(r),a=R(i,!0);A(i);var o=B(i,2),s=R(o,!0);A(o);var c=B(o,2),l=e=>{var r=lD(),i=B(R(r)),a=B(i,2);A(r),U(`click`,i,()=>w(H(t),H(n).id)),U(`click`,a,()=>I(h,null)),K(e,r)},u=e=>{var t=uD();U(`click`,t,()=>I(h,H(n).id,!0)),K(e,t)};J(c,e=>{H(h)===H(n).id?e(l):e(u,-1)}),A(r),V(e=>{q(a,H(n).label||`unlabeled`),q(s,e)},[()=>y(H(n).createdAt)]),K(e,r)}),K(e,n)};J(s,e=>{H(f)?e(c):H(p)?e(l,1):H(d).length===0?e(u,2):e(g,-1)}),A(n),U(`click`,i,()=>C(H(t))),K(e,n)},T=P(()=>VE(H(t)));J(x,e=>{H(T)&&e(S)});var E=B(x,2),O=R(E),re=R(O),ie=e=>{var n=pD();V(()=>n.disabled=H(_)<=1),U(`click`,n,e=>ee(e,H(t))),K(e,n)},ae=e=>{var n=mD();U(`click`,n,e=>ee(e,H(t))),K(e,n)};J(re,e=>{H(t).role===`admin`?e(ie):H(t).role!==`pending`&&e(ae,1)});var k=B(re,2),oe=e=>{var n=hD(),r=R(n),i=B(r),a=R(i,!0);A(i);var o=B(i,2);A(n),V(e=>{q(r,`${e??``} `),i.disabled=H(u)===H(t).id,q(a,H(u)===H(t).id?`...`:`yes`)},[()=>WE(H(t))]),U(`click`,i,()=>ne(H(t))),U(`click`,o,()=>I(l,null)),K(e,n)},se=e=>{var n=gD();V(()=>n.disabled=H(t).role===`admin`&&H(_)<=1),U(`click`,n,()=>I(l,H(t).id,!0)),K(e,n)};J(k,e=>{H(l)===H(t).id?e(oe):e(se,-1)}),A(O);var ce=B(O,2),le=R(ce,!0);A(ce),A(E),A(n),V(e=>{Xi(i,`for`,`dn-${H(t).id??``}`),Xi(a,`id`,`dn-${H(t).id??``}`),Xi(a,`placeholder`,H(t).username),Xi(v,`for`,`desc-${H(t).id??``}`),Xi(b,`id`,`desc-${H(t).id??``}`),ce.disabled=e,q(le,H(c)?`saving...`:`save`)},[()=>!D(H(t))||H(c)]),aa(a,()=>H(o),e=>I(o,e)),aa(b,()=>H(s),e=>I(s,e)),U(`click`,ce,()=>te(H(t))),bi(3,n,()=>BE,()=>({duration:150})),K(e,n)};J(be,e=>{H(i)===H(t).id&&e(xe)}),A(a),V((e,n)=>{g=X(a,1,`user-card svelte-fqyh9p`,null,g,{expanded:H(i)===H(t).id}),S=X(b,1,`status-dot svelte-fqyh9p`,null,S,e),O=Z(b,``,O,n),q(ce,H(t).display_name||H(t).username),ye=X(ve,1,`expand-icon svelte-fqyh9p`,null,ye,{open:H(i)===H(t).id})},[()=>({iridescent:H(t).user_type===`mind`&&Qf.has(H(t).username)}),()=>({background:T(H(t))})]),U(`click`,v,()=>x(H(t))),U(`keydown`,v,e=>e.key===`Enter`&&x(H(t))),K(e,a)}),A(le);var ue=B(le,2),de=e=>{K(e,yD())};J(ue,e=>{H(n).length===0&&!H(r)&&e(de)}),A(re);var fe=B(re,2),pe=e=>{YE(e,{onClose:()=>I(a,!1),onRegistered:b})};J(fe,e=>{H(a)&&e(pe)}),V(()=>q(oe,H(n).length)),K(e,O),N()}Lr([`click`,`keydown`]);var SD=W(`<div class="error svelte-n9btv2"> </div>`),CD=W(`<div class="loading svelte-n9btv2">Loading prompts...</div>`),wD=W(`<span class="custom-count svelte-n9btv2"> </span>`),TD=W(`<span class="custom-badge svelte-n9btv2">customized</span>`),ED=W(`<span class="var-tag svelte-n9btv2"> </span>`),DD=W(`<div class="var-tags svelte-n9btv2"></div>`),OD=W(`<textarea class="edit-area svelte-n9btv2" rows="10"></textarea> <div class="actions svelte-n9btv2"><button class="btn btn-save svelte-n9btv2"> </button> <button class="btn btn-cancel svelte-n9btv2">Cancel</button></div>`,1),kD=W(`<button class="btn btn-reset svelte-n9btv2">Reset</button>`),AD=W(`<pre class="prompt-content svelte-n9btv2"><code class="svelte-n9btv2"> </code></pre> <div class="actions svelte-n9btv2"><button class="btn btn-edit svelte-n9btv2">Edit</button> <!></div>`,1),jD=W(`<div><div class="prompt-header svelte-n9btv2"><span class="prompt-key svelte-n9btv2"> </span> <!></div> <p class="prompt-desc svelte-n9btv2"> </p> <!> <!></div>`),MD=W(`<div class="section-body svelte-n9btv2"></div>`),ND=W(`<div class="section svelte-n9btv2"><button class="section-header svelte-n9btv2"><span class="collapse-icon svelte-n9btv2"> </span> <span class="section-title svelte-n9btv2"> </span> <span class="section-subtitle svelte-n9btv2"> </span> <!></button> <!></div>`),PD=W(`<div class="prompts-page svelte-n9btv2"><!> <!></div>`);function FD(e,t){M(t,!0);let n=F(L([])),r=F(!0),i=F(null),a=F(``),o=F(!1),s=F(``),c=L({}),l={creation:{label:`Creation Prompts`,subtitle:`Used when creating new minds`},system:{label:`System Messages`,subtitle:`Sent by the daemon to minds`},mind:{label:`Mind Prompts`,subtitle:`Stamped into prompts.json at creation, then mind-owned`}},u=[`creation`,`system`,`mind`],d=P(()=>u.map(e=>({category:e,meta:l[e],items:H(n).filter(t=>t.category===e)})).filter(e=>e.items.length>0));async function f(){try{I(n,await gd(),!0),I(s,``)}catch(e){I(s,e instanceof Error?e.message:`Failed to load prompts`,!0)}finally{I(r,!1)}}ma(f);function p(e){c[e]=!c[e]}function m(e){I(i,e.key,!0),I(a,e.content,!0),c[e.category]=!0}function h(){I(i,null),I(a,``)}async function g(e){I(o,!0);try{await _d(e,H(a)),I(i,null),I(a,``),await f()}catch(e){I(s,e instanceof Error?e.message:`Failed to save`,!0)}finally{I(o,!1)}}async function _(e){I(o,!0);try{await vd(e),I(i,null),I(a,``),await f()}catch(e){I(s,e instanceof Error?e.message:`Failed to reset`,!0)}finally{I(o,!1)}}var v=PD(),y=R(v),b=e=>{var t=SD(),n=R(t,!0);A(t),V(()=>q(n,H(s))),K(e,t)};J(y,e=>{H(s)&&e(b)});var x=B(y,2),S=e=>{K(e,CD())},C=e=>{var t=Kr();Y(z(t),17,()=>H(d),e=>e.category,(e,t)=>{var n=ND(),r=R(n),s=R(r),l=R(s,!0);A(s);var u=B(s,2),d=R(u,!0);A(u);var f=B(u,2),v=R(f,!0);A(f);var y=B(f,2),b=e=>{var n=wD(),r=R(n);A(n),V(e=>q(r,`${e??``} customized`),[()=>H(t).items.filter(e=>e.isCustom).length]),K(e,n)},x=P(()=>H(t).items.some(e=>e.isCustom));J(y,e=>{H(x)&&e(b)}),A(r);var S=B(r,2),C=e=>{var n=MD();Y(n,21,()=>H(t).items,e=>e.key,(e,t)=>{var n=jD();let r;var s=R(n),c=R(s),l=R(c,!0);A(c);var u=B(c,2),d=e=>{K(e,TD())};J(u,e=>{H(t).isCustom&&e(d)}),A(s);var f=B(s,2),p=R(f,!0);A(f);var v=B(f,2),y=e=>{var n=DD();Y(n,20,()=>H(t).variables,e=>e,(e,t)=>{var n=ED(),r=R(n);A(n),V(()=>q(r,`$${`{`+t+`}`}`)),K(e,n)}),A(n),K(e,n)};J(v,e=>{H(t).variables.length>0&&e(y)});var b=B(v,2),x=e=>{var n=OD(),r=z(n);hn(r);var i=B(r,2),s=R(i),c=R(s,!0);A(s);var l=B(s,2);A(i),V(()=>{s.disabled=H(o),q(c,H(o)?`Saving...`:`Save`),l.disabled=H(o)}),aa(r,()=>H(a),e=>I(a,e)),U(`click`,s,()=>g(H(t).key)),U(`click`,l,h),K(e,n)},S=e=>{var n=AD(),r=z(n),i=R(r),a=R(i,!0);A(i),A(r);var s=B(r,2),c=R(s),l=B(c,2),u=e=>{var n=kD();V(()=>n.disabled=H(o)),U(`click`,n,()=>_(H(t).key)),K(e,n)};J(l,e=>{H(t).isCustom&&e(u)}),A(s),V(()=>q(a,H(t).content)),U(`click`,c,()=>m(H(t))),K(e,n)};J(b,e=>{H(i)===H(t).key?e(x):e(S,-1)}),A(n),V(()=>{r=X(n,1,`prompt-card svelte-n9btv2`,null,r,{custom:H(t).isCustom}),q(l,H(t).key),q(p,H(t).description)}),K(e,n)}),A(n),K(e,n)};J(S,e=>{c[H(t).category]&&e(C)}),A(n),V(()=>{q(l,c[H(t).category]?`▼`:`▶`),q(d,H(t).meta.label),q(v,H(t).meta.subtitle)}),U(`click`,r,()=>p(H(t).category)),K(e,n)}),K(e,t)};J(x,e=>{H(r)?e(S):e(C,-1)}),A(v),K(e,v),N()}Lr([`click`]);var ID=W(`<div class="error svelte-m1wc4k"> </div> <button class="retry-btn svelte-m1wc4k">Retry</button>`,1),LD=W(`<div class="loading-text svelte-m1wc4k">Loading providers...</div>`),RD=W(`<span class="entitlement-badge entitled svelte-m1wc4k">Ready</span>`),zD=W(`<span class="entitlement-badge not-entitled svelte-m1wc4k">Plan not entitled</span>`),BD=W(`<div class="entitlement-reason svelte-m1wc4k"> </div>`),VD=W(`<span class="model-tag svelte-m1wc4k"> <button class="model-tag-remove svelte-m1wc4k">×</button></span>`),HD=W(`<div class="model-tags svelte-m1wc4k"></div>`),UD=W(`<span class="dim svelte-m1wc4k">No models enabled</span>`),WD=W(`<div class="provider-card svelte-m1wc4k"><div class="provider-header svelte-m1wc4k"><span class="provider-name svelte-m1wc4k"> </span> <span class="auth-badge svelte-m1wc4k"> </span> <!> <button class="check-btn svelte-m1wc4k"> </button> <button class="remove-btn svelte-m1wc4k">Remove</button></div> <!> <div class="provider-models svelte-m1wc4k"><!> <button class="add-model-btn svelte-m1wc4k">Add model</button></div></div>`),GD=W(`<button class="add-provider-btn svelte-m1wc4k" type="button">+ Add a provider</button>`),KD=W(`<div class="model-defaults svelte-m1wc4k"><span class="label svelte-m1wc4k">Default model</span> <!> <div class="hint svelte-m1wc4k">Used when minds generate images without specifying a model.</div></div>`),qD=W(`<div class="error svelte-m1wc4k"> </div>`),JD=W(`<!> <!> <!> <!>`,1),YD=W(`<option> </option>`),XD=W(`<div class="autocomplete"><select class="select-input svelte-m1wc4k"><option>Select provider...</option><!></select></div>`),ZD=W(`<form class="api-key-form svelte-m1wc4k"><input type="password" placeholder="API key" class="text-input svelte-m1wc4k"/> <button type="submit" class="save-btn svelte-m1wc4k"> </button></form>`),QD=W(`<div class="modal-body svelte-m1wc4k"><!> <!> <!></div>`),$D=W(`<span class="model-desc svelte-m1wc4k"> </span>`),eO=W(`<button class="model-option svelte-m1wc4k"><span class="model-id svelte-m1wc4k"> </span> <!></button>`),tO=W(`<div class="model-list svelte-m1wc4k"></div>`),nO=W(`<div class="modal-body svelte-m1wc4k"><form class="api-key-form svelte-m1wc4k"><input type="text" placeholder="Search models..." class="text-input svelte-m1wc4k"/> <button type="submit" class="save-btn svelte-m1wc4k"> </button></form> <!> <!></div>`),rO=W(`<!> <!> <!>`,1);function iO(e,t){M(t,!0);let n=F(L([])),r=F(L([])),i=F(null),a=F(``),o=F(!1),s=F(``),c=F(!1),l=F(``),u=F(``),d=F(!1),f=F(``),p=F(L([])),m=F(!1),h=F(``),g=P(()=>H(n).filter(e=>e.configured)),_=P(()=>H(n).filter(e=>!e.configured));function v(e){return H(r).filter(t=>t.startsWith(`${e}:`))}function y(e){return e===`api_key`?`API key`:e===`oauth`?`OAuth`:e===`env_var`?`env var`:``}let b=new Gl;async function x(e){b.add(e),I(a,``);try{let t=await Wd(e);t.state===`not_entitled`&&!t.reason&&I(a,`Provider plan is not entitled to generate images.`),await S()}catch(e){I(a,e instanceof Error?e.message:`Failed to check entitlement`,!0)}finally{b.delete(e)}}async function S(){I(s,``);try{I(n,await Vd(),!0);let e=await Gd();I(r,e.models,!0),I(i,e.defaultModel,!0)}catch(e){console.warn(`[ImagegenProviders] failed to load imagegen config:`,e),I(s,gw(e,`Failed to load imagegen config. Please try again.`),!0)}}S();function C(){I(c,!1),I(d,!1),I(l,``),I(u,``),I(f,``),I(p,[],!0),I(h,``),I(a,``)}function w(){C(),I(c,!0),H(_).length===1&&I(l,H(_)[0].id,!0)}async function T(){if(!H(l)||!H(u).trim()||H(o))return;I(o,!0),I(a,``);let e=H(l);try{await Hd(H(l),H(u).trim()),C(),await S(),I(h,e,!0),I(f,``),I(p,[],!0),I(d,!0)}catch(e){I(a,e instanceof Error?e.message:`Failed to save`,!0)}finally{I(o,!1)}}async function E(e){I(o,!0),I(a,``);try{await Ud(e),H(i)?.startsWith(`${e}:`)&&I(i,null),await S()}catch(e){I(a,e instanceof Error?e.message:`Failed to remove`,!0)}finally{I(o,!1)}}async function ee(){if(H(f).trim()){I(m,!0);try{I(p,await qd(H(f).trim(),H(h)||void 0),!0)}catch(e){I(a,e instanceof Error?e.message:`Search failed`,!0)}finally{I(m,!1)}}}async function te(e){try{let t=[...H(r),e],n=H(r).length===0?e:void 0;await Kd(t,n),I(r,t,!0),n&&I(i,n,!0),I(d,!1),I(f,``),I(p,[],!0)}catch(e){I(a,e instanceof Error?e.message:`Failed to add model`,!0)}}async function ne(e){try{let t=H(r).filter(t=>t!==e);await Kd(t,H(i)===e?null:void 0),I(r,t,!0),H(i)===e&&I(i,null)}catch(e){I(a,e instanceof Error?e.message:`Failed to remove model`,!0)}}let D=F(``),O=F(!1);Tn(()=>{I(D,H(i)??``,!0)}),Tn(()=>{H(r).length>0&&I(O,!0)}),Tn(()=>{let e=H(D);H(O)&&(I(i,e||null,!0),Kd(H(r),e||null).catch(()=>{}))});var re={load:S},ie=rO(),ae=z(ie),k=e=>{var t=ID(),n=z(t),r=R(n,!0);A(n);var i=B(n,2);V(()=>q(r,H(s))),U(`click`,i,()=>S()),K(e,t)},oe=e=>{K(e,LD())},se=e=>{var t=JD(),n=z(t);Y(n,17,()=>H(g),e=>e.id,(e,t)=>{let n=P(()=>v(H(t).id));var r=WD(),i=R(r),a=R(i),s=R(a,!0);A(a);var c=B(a,2),l=R(c,!0);A(c);var u=B(c,2),m=e=>{K(e,RD())},g=e=>{K(e,zD())};J(u,e=>{H(t).entitlement?.state===`entitled`?e(m):H(t).entitlement?.state===`not_entitled`&&e(g,1)});var _=B(u,2),S=R(_,!0);A(_);var C=B(_,2);A(i);var w=B(i,2),T=e=>{var n=BD(),r=R(n,!0);A(n),V(()=>q(r,H(t).entitlement.reason)),K(e,n)};J(w,e=>{H(t).entitlement?.state===`not_entitled`&&H(t).entitlement.reason&&e(T)});var ee=B(w,2),te=R(ee),D=e=>{var t=HD();Y(t,20,()=>H(n),e=>e,(e,t)=>{var n=VD(),r=R(n),i=B(r);A(n),V(()=>q(r,`${t??``} `)),U(`click`,i,()=>ne(t)),K(e,n)}),A(t),K(e,t)},O=e=>{K(e,UD())};J(te,e=>{H(n).length>0?e(D):e(O,-1)});var re=B(te,2);A(ee),A(r),V((e,n,r)=>{q(s,H(t).id),q(l,e),_.disabled=n,q(S,r),C.disabled=H(o)},[()=>y(H(t).authMethod),()=>H(o)||b.has(H(t).id),()=>b.has(H(t).id)?`...`:`Check`]),U(`click`,_,()=>x(H(t).id)),U(`click`,C,()=>E(H(t).id)),U(`click`,re,()=>{I(h,H(t).id,!0),I(f,``),I(p,[],!0),I(d,!0)}),K(e,r)});var i=B(n,2),s=e=>{var t=GD();U(`click`,t,w),K(e,t)};J(i,e=>{H(_).length>0&&e(s)});var l=B(i,2),u=e=>{var t=KD(),n=B(R(t),2);{let e=P(()=>H(r).map(e=>({id:e,label:e})));Cw(n,{get items(){return H(e)},placeholder:`Search models...`,emptyLabel:`Select a model`,get value(){return H(D)},set value(e){I(D,e,!0)}})}j(2),A(t),K(e,t)};J(l,e=>{H(r).length>0&&e(u)});var m=B(l,2),S=e=>{var t=qD(),n=R(t,!0);A(t),V(()=>q(n,H(a))),K(e,t)};J(m,e=>{H(a)&&!H(c)&&!H(d)&&e(S)}),K(e,t)};J(ae,e=>{H(s)?e(k):H(n).length===0?e(oe,1):e(se,-1)});var ce=B(ae,2),le=e=>{$a(e,{onClose:C,size:`420px`,title:`Add imagegen provider`,children:(e,t)=>{var n=QD(),r=R(n),i=e=>{var t=XD(),n=R(t),r=R(n);r.value=r.__value=``,Y(B(r),17,()=>H(_),e=>e.id,(e,t)=>{var n=YD(),r=R(n,!0);A(n);var i={};V(()=>{q(r,H(t).id),i!==(i=H(t).id)&&(n.value=(n.__value=H(t).id)??``)}),K(e,n)}),A(n),A(t),Fi(n,()=>H(l),e=>I(l,e)),K(e,t)};J(r,e=>{H(_).length>1&&e(i)});var s=B(r,2),c=e=>{var t=ZD(),n=R(t);Ki(n);var r=B(n,2),i=R(r,!0);A(r),A(t),V(e=>{r.disabled=e,q(i,H(o)?`...`:`Save`)},[()=>H(o)||!H(u).trim()]),Ir(`submit`,t,e=>{e.preventDefault(),T()}),aa(n,()=>H(u),e=>I(u,e)),K(e,t)};J(s,e=>{H(l)&&e(c)});var d=B(s,2),f=e=>{var t=qD(),n=R(t,!0);A(t),V(()=>q(n,H(a))),K(e,t)};J(d,e=>{H(a)&&e(f)}),A(n),K(e,n)},$$slots:{default:!0}})};J(ce,e=>{H(c)&&e(le)});var ue=B(ce,2),de=e=>{$a(e,{onClose:()=>{I(d,!1),I(f,``),I(p,[],!0)},size:`480px`,get title(){return`Add model — ${H(h)??``}`},children:(e,t)=>{var n=nO(),i=R(n),o=R(i);Ki(o);var s=B(o,2),c=R(s,!0);A(s),A(i);var l=B(i,2),u=e=>{var t=tO();Y(t,21,()=>H(p),e=>e.id,(e,t)=>{var n=eO(),i=R(n),a=R(i,!0);A(i);var o=B(i,2),s=e=>{var n=$D(),r=R(n,!0);A(n),V(()=>q(r,H(t).description)),K(e,n)};J(o,e=>{H(t).description&&e(s)}),A(n),V(e=>{n.disabled=e,q(a,H(t).id)},[()=>H(r).includes(H(t).id)]),U(`click`,n,()=>te(H(t).id)),K(e,n)}),A(t),K(e,t)};J(l,e=>{H(p).length>0&&e(u)});var d=B(l,2),h=e=>{var t=qD(),n=R(t,!0);A(t),V(()=>q(n,H(a))),K(e,t)};J(d,e=>{H(a)&&e(h)}),A(n),V(e=>{s.disabled=e,q(c,H(m)?`...`:`Search`)},[()=>H(m)||!H(f).trim()]),Ir(`submit`,i,e=>{e.preventDefault(),ee()}),aa(o,()=>H(f),e=>I(f,e)),K(e,n)},$$slots:{default:!0}})};return J(ue,e=>{H(d)&&e(de)}),K(e,ie),N(re)}Lr([`click`]);var aO=W(`<div class="error svelte-7kf7oa"> </div>`),oO=W(`<div class="system-card svelte-7kf7oa"><div class="system-info svelte-7kf7oa"><span class="system-label svelte-7kf7oa">Registered as</span> <span class="system-name svelte-7kf7oa"> </span></div> <button class="btn btn-reset svelte-7kf7oa"> </button></div>`),sO=W(`<div class="system-actions svelte-7kf7oa"><button class="btn btn-edit svelte-7kf7oa">Register</button> <button class="btn btn-edit svelte-7kf7oa">Login with key</button></div>`),cO=W(`<form class="system-form svelte-7kf7oa"><input class="system-input svelte-7kf7oa"/> <button type="submit" class="btn btn-save svelte-7kf7oa"> </button> <button type="button" class="btn btn-cancel svelte-7kf7oa">Cancel</button></form>`),lO=W(`<div class="system-card svelte-7kf7oa"><div class="system-info svelte-7kf7oa"><span class="system-label svelte-7kf7oa">Not registered</span></div> <!></div>`),uO=W(`<div class="settings svelte-7kf7oa"><div class="section svelte-7kf7oa"><div class="section-header svelte-7kf7oa"><span class="section-title svelte-7kf7oa">Name</span> <span class="section-subtitle svelte-7kf7oa">Displayed in the sidebar</span></div> <input type="text" class="system-input svelte-7kf7oa" placeholder="e.g. My Garden"/></div> <div class="section svelte-7kf7oa"><div class="section-header svelte-7kf7oa"><span class="section-title svelte-7kf7oa">Mind Limit</span> <span class="section-subtitle svelte-7kf7oa"> </span></div> <!> <!></div> <div class="section svelte-7kf7oa"><div class="section-header svelte-7kf7oa"><span class="section-title svelte-7kf7oa">Registration</span> <span class="section-subtitle svelte-7kf7oa">volute.systems for pages and email</span></div> <!> <!></div> <div class="section svelte-7kf7oa"><div class="section-header svelte-7kf7oa"><span class="section-title svelte-7kf7oa">AI Providers</span> <span class="section-subtitle svelte-7kf7oa">Authentication for minds and system AI features</span></div> <!></div> <div class="section svelte-7kf7oa"><div class="section-header svelte-7kf7oa"><span class="section-title svelte-7kf7oa">Image Generation</span> <span class="section-subtitle svelte-7kf7oa">Provider configuration for mind image generation</span></div> <!></div></div>`);function dO(e,t){M(t,!0);let n=F(L(Kf.localName??``));async function r(){let e=H(n).trim();try{await xd(e),Kf.localName=e||null}catch{I(n,Kf.localName??``,!0)}}let i=F(``),a=F(`none`),o=F(``),s=F(!1),c=F(``),l=F(``),u=F(!1),d,f=F(``),p=F(0),m=F(``),h=F(!1);ma(async()=>{d.load();try{let e=await Ld();I(c,e.spiritModel??``,!0),I(l,e.utilityModel??``,!0)}catch{}try{let e=await Sd();I(f,e.maxMinds==null?``:String(e.maxMinds),!0),I(p,e.count,!0),I(h,!0)}catch(e){I(m,e instanceof Error?e.message:`Failed to load mind limit`,!0)}I(u,!0)});async function g(){if(!H(h))return;I(m,``);let e=H(f).trim(),t=null;if(e!==``){let n=Number(e);if(!Number.isInteger(n)||n<1){I(m,`Enter a whole number of 1 or more, or leave blank for unlimited.`);return}t=n}try{let e=await Cd(t);I(f,e.maxMinds==null?``:String(e.maxMinds),!0),I(p,e.count,!0)}catch(e){I(m,e instanceof Error?e.message:`Failed to save limit`,!0)}}Tn(()=>{let e=H(c),t=H(l);H(u)&&Rd({spiritModel:e||null,utilityModel:t||null}).catch(()=>{})});async function _(){if(!(!H(o).trim()||H(s))){I(s,!0),I(i,``);try{Kf.systemName=(await(H(a)===`register`?wd:Td)(H(o).trim())).system,I(a,`none`),I(o,``)}catch(e){I(i,e instanceof Error?e.message:`${H(a)} failed`,!0)}finally{I(s,!1)}}}async function v(){I(s,!0),I(i,``);try{await Ed(),Kf.systemName=null}catch(e){I(i,e instanceof Error?e.message:`Logout failed`,!0)}finally{I(s,!1)}}var y=uO(),b=R(y),x=B(R(b),2);Ki(x),A(b);var S=B(b,2),C=R(S),w=B(R(C),2),T=R(w);A(w),A(C);var E=B(C,2);{let e=P(()=>!H(h));Xa(E,{type:`number`,min:`1`,step:`1`,style:`width:100%`,placeholder:`Unlimited`,get disabled(){return H(e)},onblur:g,onkeydown:e=>{e.key===`Enter`&&e.target.blur()},get value(){return H(f)},set value(e){I(f,e,!0)}})}var ee=B(E,2),te=e=>{var t=aO(),n=R(t,!0);A(t),V(()=>q(n,H(m))),K(e,t)};J(ee,e=>{H(m)&&e(te)}),A(S);var ne=B(S,2),D=B(R(ne),2),O=e=>{var t=oO(),n=R(t),r=B(R(n),2),i=R(r,!0);A(r),A(n);var a=B(n,2),o=R(a,!0);A(a),A(t),V(()=>{q(i,Kf.systemName),a.disabled=H(s),q(o,H(s)?`...`:`Disconnect`)}),U(`click`,a,v),K(e,t)},re=e=>{var t=lO(),n=B(R(t),2),r=e=>{var t=sO(),n=R(t),r=B(n,2);A(t),U(`click`,n,()=>{I(a,`register`),I(o,``),I(i,``)}),U(`click`,r,()=>{I(a,`login`),I(o,``),I(i,``)}),K(e,t)},c=e=>{var t=cO(),n=R(t);Ki(n);var r=B(n,2),c=R(r,!0);A(r);var l=B(r,2);A(t),V(e=>{Xi(n,`type`,H(a)===`login`?`password`:`text`),Xi(n,`placeholder`,H(a)===`register`?`Name on volute.systems`:`API key`),r.disabled=e,q(c,H(s)?`...`:H(a)===`register`?`Register`:`Login`)},[()=>H(s)||!H(o).trim()]),Ir(`submit`,t,e=>{e.preventDefault(),_()}),aa(n,()=>H(o),e=>I(o,e)),U(`click`,l,()=>{I(a,`none`),I(i,``)}),K(e,t)};J(n,e=>{H(a)===`none`?e(r):e(c,-1)}),A(t),K(e,t)};J(D,e=>{Kf.systemName?e(O):e(re,-1)});var ie=B(D,2),ae=e=>{var t=aO(),n=R(t,!0);A(t),V(()=>q(n,H(i))),K(e,t)};J(ie,e=>{H(i)&&e(ae)}),A(ne);var k=B(ne,2);ua(eT(B(R(k),2),{showModelDefaults:!0,get spiritModel(){return H(c)},set spiritModel(e){I(c,e,!0)},get utilityModel(){return H(l)},set utilityModel(e){I(l,e,!0)}}),e=>d=e,()=>d),A(k);var oe=B(k,2);iO(B(R(oe),2),{}),A(oe),A(y),V(()=>q(T,`Cap on total minds (${H(p)??``} in use). Blank = unlimited.`)),Ir(`blur`,x,r),U(`keydown`,x,e=>{e.key===`Enter`&&e.target.blur()}),aa(x,()=>H(n),e=>I(n,e)),K(e,y),N()}Lr([`keydown`,`click`]);var fO=W(`<button> </button>`),pO=W(`<span class="restart-error svelte-138znmo"> </span>`),mO=W(`<div class="spirit-error svelte-138znmo"> </div>`),hO=W(`<div class="spirit-sections svelte-138znmo"><!> <!> <!> <!> <!></div>`),gO=W(`<div class="settings-page svelte-138znmo"><div class="settings-header svelte-138znmo"><div class="tab-row svelte-138znmo"></div> <div class="restart-area svelte-138znmo"><!> <button class="restart-btn svelte-138znmo"> </button></div></div> <div class="settings-body svelte-138znmo"><!></div></div>`);function _O(e,t){M(t,!0);let n=[`settings`,`mind-defaults`,`prompts`,`skills`,`extensions`,`backups`,`users`,`spirit`],r={settings:`Settings`,"mind-defaults":`Mind Defaults`,prompts:`Prompt Library`,skills:`Skills`,extensions:`Extensions`,backups:`Backups`,users:`Users`,spirit:`Spirit`},i=F(`settings`),a=F(null),o=F(``),s=F(!1);async function c(){if(!H(s)){I(s,!0);try{I(a,await yu(Kf.spiritName??`volute`),!0)}catch(e){I(o,e instanceof Error?e.message:`Failed to load spirit`,!0)}}}Tn(()=>{H(i)===`spirit`&&c()});let l=F(!1),u=F(null);async function d(){I(l,!0),I(u,null);try{await yd()}catch(e){I(u,e instanceof Error?e.message:`Unknown error`,!0),console.warn(`Failed to restart daemon:`,e)}finally{I(l,!1)}}var f=gO(),p=R(f),m=R(p);Y(m,21,()=>n,ti,(e,t)=>{var n=fO();let a;var o=R(n,!0);A(n),V(()=>{a=X(n,1,`settings-tab svelte-138znmo`,null,a,{active:H(i)===H(t)}),q(o,r[H(t)])}),U(`click`,n,()=>I(i,H(t),!0)),K(e,n)}),A(m);var h=B(m,2),g=R(h),_=e=>{var t=pO(),n=R(t);A(t),V(()=>q(n,`Failed: ${H(u)??``}`)),K(e,t)};J(g,e=>{H(u)&&e(_)});var v=B(g,2),y=R(v,!0);A(v),A(h),A(p);var b=B(p,2),x=R(b),S=e=>{dO(e,{})},C=e=>{ME(e,{})},w=e=>{FD(e,{})},T=e=>{RE(e,{})},E=e=>{iE(e,{})},ee=e=>{XT(e,{})},te=e=>{xD(e,{get minds(){return Zf.minds}})},ne=e=>{var t=Kr(),n=z(t),r=e=>{var t=mO(),n=R(t,!0);A(t),V(()=>q(n,H(o))),K(e,t)},i=e=>{var t=hO(),n=R(t);kx(n,{get mind(){return H(a)},onUpdated:c});var r=B(n,2);no(r,{title:`Model`,subtitle:`Cognition settings`});var i=B(r,2);mx(i,{get name(){return H(a).name},get template(){return H(a).template},hideBudget:!0});var o=B(i,2);oS(o,{get name(){return H(a).name}}),Cx(B(o,2),{get name(){return H(a).name}}),A(t),K(e,t)};J(n,e=>{H(o)?e(r):H(a)&&e(i,1)}),K(e,t)};J(x,e=>{H(i)===`settings`?e(S):H(i)===`mind-defaults`?e(C,1):H(i)===`prompts`?e(w,2):H(i)===`skills`?e(T,3):H(i)===`extensions`?e(E,4):H(i)===`backups`?e(ee,5):H(i)===`users`?e(te,6):H(i)===`spirit`&&e(ne,7)}),A(b),A(f),V(()=>{v.disabled=H(l),q(y,H(l)?`Restarting...`:`Restart Daemon`)}),U(`click`,v,d),K(e,f),N()}Lr([`click`]);var vO=W(`<div class="app"><div class="loading svelte-1ocnzw1">Loading...</div></div>`),yO=W(`<div class="app full-height svelte-1ocnzw1"><!></div>`),bO=W(`<!> <!>`,1),xO=W(`<button class="sidebar-backdrop svelte-1ocnzw1" aria-label="Close sidebar"></button>`),SO=W(`<span class="crumb-sep svelte-1ocnzw1">/</span>`),CO=W(`<button class="crumb-link svelte-1ocnzw1"> </button>`),wO=W(`<span class="crumb-current svelte-1ocnzw1"> </span>`),TO=W(`<span class="header-active-dot svelte-1ocnzw1"></span>`),EO=W(`<span class="tab-icon svelte-1ocnzw1"></span>`),DO=W(`<button><!></button>`),OO=W(`<div class="mind-section-tabs svelte-1ocnzw1"></div>`),kO=W(`<button><span class="tab-icon svelte-1ocnzw1"></span></button>`),AO=W(`<div class="mind-section-tabs svelte-1ocnzw1"><button aria-label="History"><span class="tab-icon svelte-1ocnzw1"></span></button> <!></div>`),jO=W(`<img alt="" class="user-avatar-img svelte-1ocnzw1" loading="lazy" decoding="async"/>`),MO=W(`<div class="user-dropdown svelte-1ocnzw1" role="menu"><button class="user-dropdown-item svelte-1ocnzw1">Profile</button> <button class="user-dropdown-item svelte-1ocnzw1">Logout</button></div>`),NO=W(`<button class="panel-reopen svelte-1ocnzw1" title="Show sidebar"><!></button>`),PO=W(`<button class="right-panel-backdrop svelte-1ocnzw1" aria-label="Close panel"></button>`),FO=W(`<button class="panel-close svelte-1ocnzw1" title="Close"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-1ocnzw1"><path d="M4 4l8 8M12 4l-8 8"></path></svg></button> <!>`,1),IO=W(`<!> <div class="resize-handle right-resize-handle svelte-1ocnzw1" role="separator" aria-label="Resize panel"></div> <div><!></div>`,1),LO=W(`<div class="modal-scroll-body svelte-1ocnzw1"><!></div>`),RO=W(`<div class="modal-scroll-body svelte-1ocnzw1"><!> <!></div>`),zO=W(`<div class="shell svelte-1ocnzw1"><!> <div class="shell-body svelte-1ocnzw1"><div><button class="sidebar-header svelte-1ocnzw1"><span class="awake-dot svelte-1ocnzw1"></span> <span class="sidebar-title svelte-1ocnzw1"> </span></button> <!></div> <!> <div class="resize-handle svelte-1ocnzw1" role="separator" aria-label="Resize sidebar"></div> <div class="content-area svelte-1ocnzw1"><div><div class="page-header svelte-1ocnzw1"><button class="header-hamburger svelte-1ocnzw1">&#9776;</button> <div class="page-breadcrumbs svelte-1ocnzw1"><!> <!></div> <!> <div class="header-actions svelte-1ocnzw1"><div class="user-menu-anchor svelte-1ocnzw1"><button class="user-avatar-btn svelte-1ocnzw1"><!></button> <!></div> <!></div></div> <div class="main-frame svelte-1ocnzw1"><!></div></div> <!></div></div></div> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!>`,1);function BO(e,t){M(t,!0);let n=F(L(Nm(Zf.extensions))),r=[{key:`chat`,label:`Chat`,icon:`<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3h12v8H5l-3 3V3z"/></svg>`}],i=P(()=>[...r,...Zf.extensions.flatMap(e=>(e.mindSections??[]).map(t=>({key:`ext:${e.id}:${t.id}`,label:t.label,icon:e.icon,defaultPath:t.defaultPath})))]),a=P(()=>H(n).kind===`mind`?H(n).name:null),o=P(()=>H(n).kind===`mind`?H(n).section??`chat`:null),s=P(()=>H(n).kind!==`mind`&&H(n).kind!==`channel`),c=P(()=>H(s)?H(n).kind===`system-history`?`system-history`:H(n).kind===`extension`?`ext:${H(n).extensionId}`:null:null),l=F(null),u=F(null),d=F(null),f=F(!1),p=F(L([])),m=F(!1),h=F(!1),g=F(!1),_=F(!1),v=F(null);Tn(()=>{I(h,H(g),!0)});let y=P(()=>{let e=H(n);if(e.kind===`channel`)return Zf.conversations.find(t=>t.type===`channel`&&t.channel_name===e.slug)?.id??null;if(e.kind===`mind`&&(!e.section||e.section===`chat`)){let t=e.name;return Zf.conversations.find(e=>{if(e.type===`channel`)return!1;let n=e.participants??[];return n.length===2&&n.some(e=>e.username===t)})?.id??null}return null});Tn(()=>{ap(H(y)),I(m,!1)});let b=P(()=>{let e=H(n);if(e.kind===`channel`)return Zf.conversations.find(t=>t.type===`channel`&&t.channel_name===e.slug)}),x=P(()=>{let e=H(n);if(e.kind===`mind`)return Zf.minds.find(t=>t.name===e.name)}),S=P(()=>H(x)?.mindType===`spirit`?r:H(i)),C=P(()=>H(l)===`mind`&&H(u)?H(u):H(x)??void 0),w=P(()=>!!(H(l)===`mind`&&H(u))),T=P(()=>!(!H(C)||!H(w)&&H(n).kind===`mind`)),E=P(()=>!!H(C)),ee=P(()=>H(n).kind===`mind`&&!!H(C)||H(n).kind===`channel`&&!!H(b)||!!(H(l)===`mind`&&H(u))),te=P(()=>H(ee)&&(!H(h)||H(g)&&H(m))),ne=P(()=>H(n).kind===`channel`?H(b)?.type===`channel`&&H(b).channel_name?`#${H(b).channel_name}`:H(n).slug:``),D=P(()=>{let e=H(n),t=[];if(e.kind===`mind`){if(t.push({label:`system`,action:ye}),t.push({label:e.name,action:()=>Fm(`/minds/${e.name}`)}),e.section&&e.section!==`chat`){let n=e.section;if(n.startsWith(`ext:`)){let e=n.split(`:`);n=e[2]??e[1]}t.push({label:n,action:e.subpath?()=>Fm(`/minds/${e.name}/${n}`):void 0}),e.subpath&&t.push({label:e.subpath})}}else if(e.kind===`channel`)t.push({label:H(ne)});else if(e.kind===`extension`){t.push({label:`system`,action:ye});let n=Zf.extensions.find(t=>t.id===e.extensionId),r=n?.systemSection?.urlPatterns?.[0];if(t.push({label:n?.name??e.extensionId,action:e.path?()=>Fm(r??`/ext/${e.extensionId}`):void 0}),e.path){let n=e.path.split(`/`);for(let e=0;e<n.length;e++){let i=e===n.length-1,a=n.slice(0,e+1).join(`/`);t.push({label:n[e],action:!i&&r?()=>Fm(`${r}/${a}`):void 0})}}}else e.kind===`system-history`?(t.push({label:`system`,action:ye}),t.push({label:`timeline`})):t.push({label:`system`});return t}),O=P(()=>{let e=H(n);return e.kind===`mind`?Qf.has(e.name):e.kind===`channel`&&(Zf.conversations.find(t=>t.type===`channel`&&t.channel_name===e.slug)?.participants??[]).some(e=>e.userType===`mind`&&Qf.has(e.username))}),re=F(!1),ie=P(()=>hw({checked:Kf.checked,setupComplete:Kf.setupComplete,hasAccount:!!Kf.setupProgress?.hasAccount,needsConnection:H(re),loggedIn:!!Kf.user}));async function ae(){await Yf(),Yp()&&(await rm(),I(re,!0))}Tn(()=>{document.title=Kf.localName||`volute`});function k(e,t){function n(){for(let t=26;t>=15&&(e.style.setProperty(`--title-size`,`${t}px`),!(e.scrollWidth<=e.clientWidth));t--);}return n(),document.fonts?.ready.then(n),{update:n}}ma(()=>{tm().then(e=>{e?Jf():(I(re,!0),Kf.checked=!0)}).catch(()=>{I(re,!0),Kf.checked=!0});let e=window.matchMedia(`(max-width: 1024px)`);I(g,e.matches,!0);let t=e=>{I(g,e.matches,!0)};e.addEventListener(`change`,t);let r=e=>{if(e.origin===window.location.origin&&e.data?.type===`navigate`&&typeof e.data.path==`string`){let t=H(n);if(!(t.kind===`extension`||t.kind===`mind`&&t.section?.startsWith(`ext:`)))return;Fm(e.data.path)}};return window.addEventListener(`message`,r),()=>{e.removeEventListener(`change`,t),window.removeEventListener(`message`,r)}}),Tn(()=>{if(Kf.user)return lp(),()=>up()}),Tn(()=>{Kf.user&&Ff()}),Tn(()=>{Kf.user&&Yl().then(e=>{I(v,e?.avatar?`/api/auth/avatars/${e.avatar}`:null,!0)}).catch(e=>{console.warn(`Failed to fetch user profile:`,e)})}),Tn(()=>{if(Zf.extensions.length>0){let e=Nm(Zf.extensions);e.kind===`extension`&&H(n).kind===`home`&&I(n,e,!0),e.kind===`mind`&&H(n).kind===`mind`&&e.section?.startsWith(`ext:`)&&H(n).section&&!H(n).section.startsWith(`ext:`)&&e.section.endsWith(`:${H(n).section}`)&&I(n,e,!0)}});let oe=F(!1);Tn(()=>{let e=()=>{I(oe,!0),I(n,Nm(Zf.extensions),!0)};window.addEventListener(`popstate`,e);let t=e=>{let t=e.target.closest(`a`);if(!t)return;let n=t.getAttribute(`href`);!n||n.startsWith(`http`)||n.startsWith(`//`)||t.target===`_blank`||e.metaKey||e.ctrlKey||e.shiftKey||(e.preventDefault(),Fm(n))};return document.addEventListener(`click`,t),()=>{window.removeEventListener(`popstate`,e),document.removeEventListener(`click`,t)}}),Tn(()=>{let e=Pm(H(n),Zf.extensions),t=window.location.pathname+window.location.search;t!==e&&(H(n).kind===`home`&&Zf.extensions.length===0&&t!==`/`||(H(oe)?window.history.replaceState(null,``,e):window.history.pushState(null,``,e))),I(oe,!1)}),Tn(()=>{if(H(n).kind!==`channel`||!H(n).slug.startsWith(`__conv:`))return;let e=H(n).slug.replace(`__conv:`,``),t=Zf.conversations.find(t=>t.id===e);if(t)if(t.type===`channel`&&t.channel_name)I(n,{kind:`channel`,slug:t.channel_name},!0);else{let e=t.participants?.find(e=>e.userType===`mind`&&e.username!==Kf.user?.username);e&&I(n,{kind:`mind`,name:e.username},!0)}});function se(){I(m,!0)}function ce(){H(w)&&(I(l,null),I(u,null)),I(m,!1),I(h,!0)}function le(){H(g)?I(m,!H(m)):I(h,!H(h))}function ue(e){I(u,e,!0),I(l,`mind`),I(m,!0),I(h,!1)}function de(e){let t=Zf.conversations.find(t=>t.id===e);if(t?.type===`channel`&&t.channel_name)I(n,{kind:`channel`,slug:t.channel_name},!0);else{let e=t?.participants?.find(e=>e.userType===`mind`&&e.username!==Kf.user?.username);e&&I(n,{kind:`mind`,name:e.username},!0)}ap(e),_p(),H(l)===`mind`&&(I(l,null),I(u,null))}async function fe(e){try{await Ou(e)}catch(e){console.error(`Failed to delete conversation:`,e);return}lp(),H(y)===e&&I(n,{kind:`home`},!0)}function pe(e){ap(e),lp()}function me(e){I(l,null),I(u,null),_p(),I(n,{kind:`mind`,name:e},!0)}function he(e){I(l,null),I(u,null),_p(),lp(),e.type===`channel`&&e.channel_name&&I(n,{kind:`channel`,slug:e.channel_name},!0)}function ge(e){I(l,null),I(u,null),_p(),I(n,{kind:`mind`,name:e},!0)}function _e(e){Xf(e)}function ve(e){mp(e),H(y)===e&&I(n,{kind:`home`},!0)}function ye(){I(n,{kind:`home`},!0)}function be(e){I(n,{kind:`mind`,name:e},!0),_p()}function xe(e,t,r){I(n,{kind:`mind`,name:e,section:t,subpath:r},!0)}function Se(e,t){I(n,{kind:`extension`,extensionId:e,path:t??``},!0),_p()}function Ce(e){I(f,!0),e.currentTarget.setPointerCapture(e.pointerId),document.body.style.userSelect=`none`,document.body.style.cursor=`col-resize`}function we(e){if(!H(f))return;let t=e.currentTarget.parentElement;if(!t)return;let n=t.getBoundingClientRect();yp.width=Math.max(180,Math.min(400,e.clientX-n.left))}function Te(){H(f)&&(I(f,!1),document.body.style.userSelect=``,document.body.style.cursor=``,bp())}let Ee=F(!1);function De(e){I(Ee,!0),e.currentTarget.setPointerCapture(e.pointerId),document.body.style.userSelect=`none`,document.body.style.cursor=`col-resize`}function Oe(e){if(!H(Ee))return;let t=e.currentTarget.parentElement;if(!t)return;let n=t.getBoundingClientRect();Sp.width=Math.max(240,Math.min(600,n.right-e.clientX))}function ke(){H(Ee)&&(I(Ee,!1),document.body.style.userSelect=``,document.body.style.cursor=``,Cp())}function Ae(e){if(e.key===`Escape`){if(H(_)){I(_,!1);return}if(H(m)){ce();return}if(hp.sidebarOpen){_p();return}}}function je(e){H(_)&&!e.target.closest(`.user-menu-anchor`)&&I(_,!1)}var Me=Kr();Ir(`keydown`,$t,Ae),Ir(`click`,en,je);var Ne=z(Me),Pe=e=>{K(e,vO())},Fe=e=>{var t=yO();OT(R(t),{onComplete:e=>{Kf.setupComplete=!0,lp(),requestAnimationFrame(()=>{I(n,{kind:`mind`,name:e},!0)})}}),A(t),K(e,t)},Ie=e=>{var t=yO();lm(R(t),{onConnected:e=>{I(re,!1),Xf(e)}}),A(t),K(e,t)},j=e=>{var t=yO(),n=R(t);{let e=P(()=>!Kf.setupComplete&&!!Kf.setupProgress?.hasAccount);mm(n,{onAuth:_e,get resumeSetup(){return H(e)}})}A(t),K(e,t)},Le=e=>{var t=zO(),r=z(t),i=R(r),u=e=>{var t=bO(),n=z(t);mw(n,{}),MC(B(n,2),{onOpenSettings:()=>I(l,`systemSettings`)}),K(e,t)};J(i,e=>{Kf.user.role===`admin`&&e(u)});var f=B(i,2),y=R(f);let x,w;var ne=R(y),re=B(R(ne),2),ie=R(re,!0);A(re),Si(re,(e,t)=>k?.(e,t),()=>({text:Kf.localName||`volute`,width:yp.width})),A(ne);var oe=B(ne,2);{let e=P(()=>Zf.conversations.filter(e=>!fp.has(e.id)));vb(oe,{get minds(){return Zf.minds},get conversations(){return H(e)},get selection(){return H(n)},get username(){return Kf.user.username},onHome:ye,onSelectMind:be,onSelectMindSection:(e,t)=>{I(d,e,!0),t===`history`?I(l,`mindHistory`):t===`files`?I(l,`mindFiles`):t===`settings`?I(l,`mindSettings`):t===`variants`?I(l,`mindVariants`):t===`events`?I(l,`mindEvents`):t===`context`&&I(l,`mindContext`)},onSelectSystemSection:e=>{e===`settings`?I(l,`systemSettings`):e===`logs`&&I(l,`systemLogs`)},onSelectConversation:de,onDeleteConversation:fe,onBrowseChannels:()=>I(l,`channelBrowser`),onOpenMind:ue,onSeed:()=>I(l,`seed`),onHideConversation:ve})}A(y);var _e=B(y,2),Ee=e=>{var t=xO();U(`click`,t,function(...e){_p?.apply(this,e)}),K(e,t)};J(_e,e=>{hp.sidebarOpen&&e(Ee)});var Ae=B(_e,2),je=B(Ae,2),Me=R(je);let Ne;var Pe=R(Me),Fe=R(Pe),Ie=B(Fe,2),j=R(Ie);Y(j,17,()=>H(D),ti,(e,t,n)=>{var r=bO(),i=z(r),a=e=>{K(e,SO())};J(i,e=>{n>0&&e(a)});var o=B(i,2),s=e=>{var n=CO(),r=R(n,!0);A(n),V(()=>q(r,H(t).label)),U(`click`,n,function(...e){H(t).action?.apply(this,e)}),K(e,n)},c=e=>{var n=wO(),r=R(n,!0);A(n),V(()=>q(r,H(t).label)),K(e,n)};J(o,e=>{H(t).action&&n<H(D).length-1?e(s):e(c,-1)}),K(e,r)});var Le=B(j,2),Re=e=>{K(e,TO())};J(Le,e=>{H(O)&&e(Re)}),A(Ie);var ze=B(Ie,2),Be=e=>{var t=OO();Y(t,21,()=>H(S),ti,(e,t)=>{var n=DO();let r;var i=R(n),s=e=>{var n=EO();ui(n,()=>Pl(H(t).icon),!0),A(n),K(e,n)};J(i,e=>{H(t).icon&&e(s)}),A(n),Si(n,(e,t)=>Il?.(e,t),()=>({text:H(t).label,position:`bottom`})),V(()=>r=X(n,1,`mind-section-tab svelte-1ocnzw1`,null,r,{active:H(o)===H(t).key})),U(`click`,n,()=>xe(H(a),H(t).key,H(t).defaultPath)),K(e,n)}),A(t),K(e,t)},Ve=e=>{var t=AO(),r=R(t);let i;var a=R(r);ui(a,()=>wo.history,!0),A(a),A(r),Si(r,(e,t)=>Il?.(e,t),()=>({text:`History`,position:`bottom`})),Y(B(r,2),17,()=>Zf.extensions,ti,(e,t)=>{var n=Kr(),r=z(n),i=e=>{var n=kO();let r;var i=R(n);ui(i,()=>Pl(H(t).icon??`<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 2h5v5H2zM9 2h5v5H9zM2 9h5v5H2zM9 9h5v5H9z"/></svg>`),!0),A(i),A(n),Si(n,(e,t)=>Il?.(e,t),()=>({text:H(t).systemSection.label,position:`bottom`})),V(()=>r=X(n,1,`mind-section-tab svelte-1ocnzw1`,null,r,{active:H(c)===`ext:${H(t).id}`})),U(`click`,n,()=>Se(H(t).id)),K(e,n)};J(r,e=>{H(t).systemSection&&e(i)}),K(e,n)}),A(t),V(()=>i=X(r,1,`mind-section-tab svelte-1ocnzw1`,null,i,{active:H(c)===`system-history`})),U(`click`,r,()=>{I(n,{kind:`system-history`},!0)}),K(e,t)};J(ze,e=>{H(a)?e(Be):H(s)&&e(Ve,1)});var He=B(ze,2),Ue=R(He),M=R(Ue),N=R(M),We=e=>{var t=jO();V(()=>Xi(t,`src`,H(v))),K(e,t)},Ge=e=>{qa(e,{kind:`brain`})};J(N,e=>{H(v)?e(We):e(Ge,-1)}),A(M);var Ke=B(M,2),qe=e=>{var t=MO(),n=R(t),r=B(n,2);A(t),U(`click`,n,()=>{I(_,!1),I(l,`userSettings`)}),U(`click`,r,()=>{I(_,!1),ae()}),K(e,t)};J(Ke,e=>{H(_)&&e(qe)}),A(Ue);var Je=B(Ue,2),Ye=e=>{var t=NO();qa(R(t),{kind:`history`}),A(t),U(`click`,t,le),K(e,t)};J(Je,e=>{H(ee)&&H(h)&&e(Ye)}),A(He),A(Pe);var Xe=B(Pe,2),Ze=R(Xe);{let e=P(()=>H(ee)?se:void 0);ky(Ze,{get selection(){return H(n)},get minds(){return Zf.minds},get conversations(){return Zf.conversations},get username(){return Kf.user.username},onConversationId:pe,onSelectConversation:de,onOpenMind:ue,onSeed:()=>I(l,`seed`),onTypingNames:e=>{I(p,e,!0)},get onToggleSidebar(){return gp},get onOpenRightPanel(){return H(e)}})}A(Xe),A(Me);var Qe=B(Me,2),$e=e=>{var t=IO(),n=z(t),r=e=>{var t=PO();U(`click`,t,ce),K(e,t)};J(n,e=>{H(g)&&H(m)&&e(r)});var i=B(n,2),a=B(i,2);let o,s;var c=R(a),u=e=>{var t=FO(),n=z(t);ei(B(n,2),()=>H(C).name,e=>{{let t=P(()=>H(E)?()=>{I(d,H(C).name,!0),I(l,`mindHistory`)}:void 0),n=P(()=>H(T)?()=>me(H(C).name):void 0);ix(e,{get mind(){return H(C)},get onExpand(){return H(t)},get onChat(){return H(n)}})}}),U(`click`,n,ce),K(e,t)},f=e=>{Wp(e,{get conversation(){return H(b)},get minds(){return Zf.minds},get typingNames(){return H(p)},onOpenMind:ue,onClose:ce})};J(c,e=>{H(C)?e(u):H(b)?.type===`channel`&&e(f,1)}),A(a),V(()=>{o=X(a,1,`right-panel svelte-1ocnzw1`,null,o,{"right-panel-open":H(g)&&H(m)}),s=Z(a,``,s,{width:`${Sp.width??``}px`})}),U(`pointerdown`,i,De),U(`pointermove`,i,Oe),U(`pointerup`,i,ke),Ir(`pointercancel`,i,ke),K(e,t)};J(Qe,e=>{H(te)&&e($e)}),A(je),A(f),A(r);var et=B(r,2),tt=e=>{FS(e,{onClose:()=>I(l,null),onJoined:he})};J(et,e=>{H(l)===`channelBrowser`&&e(tt)});var nt=B(et,2),rt=e=>{xC(e,{onClose:()=>I(l,null),onCreated:ge})};J(nt,e=>{H(l)===`seed`&&e(rt)});var it=B(nt,2),at=e=>{AC(e,{onClose:()=>I(l,null)})};J(it,e=>{H(l)===`userSettings`&&e(at)});var ot=B(it,2),st=e=>{$a(e,{get title(){return`History — ${H(d)??``}`},onClose:()=>{I(l,null),I(d,null)},children:(e,t)=>{var n=LO(),r=R(n);{let e=P(()=>Zf.minds.find(e=>e.name===H(d))?.status);xy(r,{get name(){return H(d)},get mindStatus(){return H(e)}})}A(n),K(e,n)},$$slots:{default:!0}})};J(ot,e=>{H(l)===`mindHistory`&&H(d)&&e(st)});var ct=B(ot,2),lt=e=>{$a(e,{get title(){return`Files — ${H(d)??``}`},onClose:()=>{I(l,null),I(d,null)},children:(e,t)=>{var n=RO(),r=R(n);kS(r,{get name(){return H(d)}}),YC(B(r,2),{get name(){return H(d)}}),A(n),K(e,n)},$$slots:{default:!0}})};J(ct,e=>{H(l)===`mindFiles`&&H(d)&&e(lt)});var ut=B(ct,2),dt=e=>{let t=P(()=>Zf.minds.find(e=>e.name===H(d)));var n=Kr(),r=z(n),i=e=>{$a(e,{get title(){return`Settings — ${H(d)??``}`},onClose:()=>{I(l,null),I(d,null)},children:(e,n)=>{lS(e,{get mind(){return H(t)}})},$$slots:{default:!0}})};J(r,e=>{H(t)&&e(i)}),K(e,n)};J(ut,e=>{H(l)===`mindSettings`&&H(d)&&e(dt)});var ft=B(ut,2),pt=e=>{$a(e,{get title(){return`Variants — ${H(d)??``}`},onClose:()=>{I(l,null),I(d,null)},children:(e,t)=>{var n=LO();SS(R(n),{get name(){return H(d)}}),A(n),K(e,n)},$$slots:{default:!0}})};J(ft,e=>{H(l)===`mindVariants`&&H(d)&&e(pt)});var mt=B(ft,2),ht=e=>{$a(e,{get title(){return`Events — ${H(d)??``}`},onClose:()=>{I(l,null),I(d,null)},children:(e,t)=>{var n=LO();jb(R(n),{get name(){return H(d)}}),A(n),K(e,n)},$$slots:{default:!0}})};J(mt,e=>{H(l)===`mindEvents`&&H(d)&&e(ht)});var gt=B(mt,2),_t=e=>{uC(e,{get mindName(){return H(d)},onClose:()=>{I(l,null),I(d,null)}})};J(gt,e=>{H(l)===`mindContext`&&H(d)&&e(_t)});var vt=B(gt,2),yt=e=>{$a(e,{title:`Settings`,onClose:()=>I(l,null),children:(e,t)=>{_O(e,{})},$$slots:{default:!0}})};J(vt,e=>{H(l)===`systemSettings`&&e(yt)});var bt=B(vt,2),xt=e=>{$a(e,{title:`System Logs`,onClose:()=>I(l,null),children:(e,t)=>{var n=LO();lw(R(n),{}),A(n),K(e,n)},$$slots:{default:!0}})};J(bt,e=>{H(l)===`systemLogs`&&e(xt)}),V(()=>{x=X(y,1,`sidebar svelte-1ocnzw1`,null,x,{"sidebar-open":hp.sidebarOpen}),w=Z(y,``,w,{width:`${yp.width??``}px`}),q(ie,Kf.localName||`volute`),Ne=X(Me,1,`main-column svelte-1ocnzw1`,null,Ne,{"has-right-panel":H(te)}),Xi(M,`title`,Kf.user?.username)}),U(`click`,ne,ye),U(`pointerdown`,Ae,Ce),U(`pointermove`,Ae,we),U(`pointerup`,Ae,Te),Ir(`pointercancel`,Ae,Te),U(`click`,Fe,function(...e){gp?.apply(this,e)}),U(`click`,M,()=>{I(_,!H(_))}),K(e,t)};J(Ne,e=>{H(ie)===`loading`?e(Pe):H(ie)===`setup`?e(Fe,1):H(ie)===`connection`?e(Ie,2):H(ie)===`login`?e(j,3):Kf.user&&e(Le,4)}),K(e,Me),N()}Lr([`click`,`pointerdown`,`pointermove`,`pointerup`]),Jr(BO,{target:document.getElementById(`root`)});
95
+ ${n??``}`)},[()=>H(C).snapshotId.slice(0,8),()=>de(H(C).dataAdded),()=>fe(H(C).durationMs)]),K(e,t)};J(s,e=>{H(w)?e(c):H(C)&&e(l,1)});var u=B(s,2),d=e=>{Ca(e,{get message(){return H(ee)}})},f=e=>{var t=Kr(),n=z(t),r=e=>{xa(e,{message:`No snapshots yet.`})},i=e=>{var t=ZT();Y(t,21,()=>H(T),e=>e.id,(e,t)=>{var n=XT(),r=R(n),i=R(r,!0);A(r);var a=B(r,2),o=R(a,!0);A(a);var s=B(a,2),c=R(s,!0);A(s),A(n),V(e=>{q(i,H(t).short_id),q(o,e),q(c,H(t).hostname)},[()=>new Date(H(t).time).toLocaleString()]),K(e,n)}),A(t),K(e,t)};J(n,e=>{H(T).length===0?e(r):e(i,-1)}),K(e,t)};J(u,e=>{H(ee)?e(d):H(T)&&e(f,1)}),K(e,r)},$$slots:{default:!0}}),K(e,t)};J(me,e=>{H(ne)?e(he):H(D)?e(ge,1):e(_e,-1)}),A(pe),K(e,pe),N()}Lr([`input`]);var nE=W(`<form class="install-form svelte-1yivsg9"><input type="text" class="install-input svelte-1yivsg9" placeholder="npm package name"/> <!></form>`),rE=W(`<div class="restart-banner svelte-1yivsg9">Restart the daemon to apply changes.</div>`),iE=W(`<div class="ext-desc svelte-1yivsg9"> </div>`),aE=W(`<div class="ext-actions svelte-1yivsg9"><!></div>`),oE=W(`<div class="ext-row svelte-1yivsg9"><label class="enabled-toggle svelte-1yivsg9"><input type="checkbox" class="svelte-1yivsg9"/> <span class="toggle-track svelte-1yivsg9"><span class="toggle-thumb svelte-1yivsg9"></span></span></label> <div class="ext-info svelte-1yivsg9"><div class="ext-name svelte-1yivsg9"> </div> <!> <div class="ext-meta svelte-1yivsg9"> </div></div> <!></div>`),sE=W(`<div class="ext-list svelte-1yivsg9"><div class="column-header svelte-1yivsg9"><span class="column-label svelte-1yivsg9">Enabled</span></div> <!></div>`),cE=W(`<!> <!> <!> <!>`,1);function lE(e,t){M(t,!0);let n=F(L([])),r=F(``),i=F(!0),a=F(null),o=F(!1),s=F(``);function c(){pf().then(e=>{I(n,e,!0),I(i,!1),I(r,``)}).catch(e=>{I(r,e instanceof Error?e.message:`Failed to load extensions`,!0),I(i,!1)})}ma(c);async function l(e){I(a,e.id,!0),I(r,``);try{await mf(e.id,!e.enabled),e.enabled=!e.enabled,I(o,!0)}catch(e){I(r,e instanceof Error?e.message:`Failed to update`,!0)}I(a,null)}async function u(){let e=H(s).trim();if(e){I(a,`install`),I(r,``);try{await hf(e),I(s,``),I(o,!0),c()}catch(e){I(r,e instanceof Error?e.message:`Failed to install`,!0)}I(a,null)}}async function d(e){if(e.package){I(a,e.id,!0),I(r,``);try{await gf(e.package),I(o,!0),c()}catch(e){I(r,e instanceof Error?e.message:`Failed to uninstall`,!0)}I(a,null)}}let f=P(()=>[...H(n).filter(e=>e.source===`builtin`),...H(n).filter(e=>e.source!==`builtin`)]);var p=Kr(),m=z(p),h=e=>{xa(e,{message:`Loading...`})},g=e=>{var t=cE(),i=z(t);Ca(i,{get message(){return H(r)}});var c=B(i,2);no(c,{title:`Extensions`,action:e=>{var t=nE(),n=R(t);Ki(n);var r=B(n,2);{let e=P(()=>H(a)!==null||!H(s).trim());_a(r,{variant:`primary`,onclick:u,get disabled(){return H(e)},children:(e,t)=>{j();var n=G();V(()=>q(n,H(a)===`install`?`Installing...`:`Install`)),K(e,n)},$$slots:{default:!0}})}A(t),V(()=>n.disabled=H(a)!==null),Ir(`submit`,t,e=>{e.preventDefault(),u()}),aa(n,()=>H(s),e=>I(s,e)),K(e,t)},$$slots:{action:!0}});var p=B(c,2),m=e=>{K(e,rE())};J(p,e=>{H(o)&&e(m)});var h=B(p,2),g=e=>{xa(e,{message:`No extensions found.`})},_=e=>{var t=sE();Y(B(R(t),2),17,()=>H(f),e=>e.id,(e,t)=>{var n=oE(),r=R(n),i=R(r);Ki(i),j(2),A(r);var o=B(r,2),s=R(o),c=R(s,!0);A(s);var u=B(s,2),f=e=>{var n=iE(),r=R(n,!0);A(n),V(()=>q(r,H(t).description)),K(e,n)};J(u,e=>{H(t).description&&e(f)});var p=B(u,2),m=R(p);A(p),A(o);var h=B(o,2),g=e=>{var n=aE(),r=R(n);{let e=P(()=>H(a)!==null);_a(r,{variant:`danger`,onclick:()=>d(H(t)),get disabled(){return H(e)},children:(e,n)=>{j();var r=G();V(()=>q(r,H(a)===H(t).id?`...`:`Uninstall`)),K(e,r)},$$slots:{default:!0}})}A(n),K(e,n)};J(h,e=>{H(t).source===`npm`&&H(t).package&&e(g)}),A(n),V(()=>{Xi(r,`title`,H(t).enabled?`Enabled`:`Disabled`),Ji(i,H(t).enabled),i.disabled=H(a)!==null,q(c,H(t).name),q(m,`${H(t).id??``} · v${H(t).version??``} · ${H(t).source??``}`)}),U(`change`,i,()=>l(H(t))),K(e,n)}),A(t),K(e,t)};J(h,e=>{H(n).length===0?e(g):e(_,-1)}),K(e,t)};J(m,e=>{H(i)?e(h):e(g,-1)}),K(e,p),N()}Lr([`change`]);var uE=W(`<p class="loading-text svelte-y2443v">Loading...</p>`),dE=W(`<!> <button class="setting-hint-btn svelte-y2443v">back</button>`,1),fE=W(`<option> </option>`),pE=W(`<option>--</option> <!> <option>other...</option>`,1),mE=W(`<div class="slider-control svelte-y2443v"><input type="range" class="thinking-slider svelte-y2443v" min="0" max="5" step="1"/> <span> </span></div>`),hE=W(`<!> <span class="setting-hint svelte-y2443v">per</span> <!> <span class="setting-hint svelte-y2443v">min</span>`,1),gE=W(`<!> <span class="setting-hint svelte-y2443v">tokens</span>`,1),_E=W(`<!> <!> <!> <!>`,1),vE=W(`<div class="cron-preview svelte-y2443v"> </div>`),yE=W(`<div class="sleep-summary svelte-y2443v"><span class="sleep-desc svelte-y2443v">Custom schedule</span> <!></div> <div class="cron-row svelte-y2443v"><span class="cron-label svelte-y2443v">Sleep at</span> <!></div> <!> <div class="cron-row svelte-y2443v"><span class="cron-label svelte-y2443v">Wake at</span> <!></div> <!>`,1),bE=W(`<div class="sleep-summary svelte-y2443v"><span class="sleep-desc svelte-y2443v"> </span> <!></div> <!> <!>`,1),xE=W(`<!> <div class="wake-triggers svelte-y2443v"><div class="subsection-header small svelte-y2443v">What wakes the mind early</div> <div class="trigger-row svelte-y2443v"><!></div> <div class="trigger-row svelte-y2443v"><!></div> <div class="trigger-row svelte-y2443v"><span class="trigger-text svelte-y2443v">Channels</span> <!></div> <div class="trigger-row svelte-y2443v"><span class="trigger-text svelte-y2443v">Senders</span> <!></div></div>`,1),SE=W(`<option>Every few hours</option> <option>Daily at a time</option> <option>Custom cron</option>`,1),CE=W(`<div class="form-row svelte-y2443v"><span class="form-label svelte-y2443v"></span> <span class="form-hint svelte-y2443v">Every</span> <!> <span class="form-hint svelte-y2443v">hours</span></div>`),wE=W(`<div class="form-row svelte-y2443v"><span class="form-label svelte-y2443v"></span> <span class="form-hint svelte-y2443v">At</span> <!></div>`),TE=W(`<div class="form-row svelte-y2443v"><span class="form-label svelte-y2443v"></span> <!></div>`),EE=W(`<option>Skip it</option> <option>Save for when awake</option> <option>Wake up for it</option>`,1),DE=W(`<div class="schedule-form svelte-y2443v"><div class="form-row svelte-y2443v"><span class="form-label svelte-y2443v">Name</span> <!></div> <div class="form-row svelte-y2443v"><span class="form-label svelte-y2443v">Frequency</span> <!></div> <!> <div class="form-row svelte-y2443v"><span class="form-label svelte-y2443v">Message</span> <textarea class="message-input svelte-y2443v" rows="2" placeholder="What to tell the mind — several lines rotate at random"></textarea></div> <div class="form-row svelte-y2443v"><span class="form-label svelte-y2443v">If sleeping</span> <!></div> <div class="form-actions svelte-y2443v"><!> <!></div></div>`),OE=W(`<div class="schedule-card editing svelte-y2443v"><div class="form-row svelte-y2443v"><span class="form-label svelte-y2443v">Frequency</span> <!></div> <!> <div class="form-row svelte-y2443v"><span class="form-label svelte-y2443v">Message</span> <textarea class="message-input svelte-y2443v" rows="2" placeholder="What to tell the mind — several lines rotate at random"></textarea></div> <div class="form-row svelte-y2443v"><span class="form-label svelte-y2443v">If sleeping</span> <!></div> <div class="form-actions svelte-y2443v"><!> <!></div></div>`),kE=W(`<div class="schedule-message svelte-y2443v"> </div>`),AE=W(`<div><div class="schedule-top svelte-y2443v"><span class="schedule-name svelte-y2443v"> </span> <span class="schedule-freq svelte-y2443v"><!></span> <div class="schedule-actions svelte-y2443v"><!> <!> <!></div></div> <!></div>`),jE=W(`<div class="schedule-list svelte-y2443v"></div>`),ME=W(`<div class="subsection svelte-y2443v"><div class="subsection-header svelte-y2443v"><span>Sleep</span> <!></div> <!></div> <div class="subsection svelte-y2443v"><div class="subsection-header svelte-y2443v"><span>Schedules</span> <!></div> <!> <!></div>`,1),NE=W(`<span class="save-status svelte-y2443v">Saving...</span>`),PE=W(`<span class="save-status saved svelte-y2443v">Saved</span>`),FE=W(`<!> <!> <div class="status-bar svelte-y2443v"><!></div>`,1),IE=W(`<div class="mind-defaults svelte-y2443v"><!></div>`);function LE(e,t){M(t,!0);let n=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`],r=F(L([])),i=F(``),a=F(0),o=F(``),s=F(``),c=F(``),l=F(!0),u=F(0),d=F(0),f=F(8),p=F(0),m=F(!1),h=F(``),g=F(``),_=F(L(nf.mentions)),v=F(L(nf.dms)),y=F(``),b=F(``),x=F(L([])),S=F(!1),C=F(null),w=F(``),T=F(`daily`),E=F(4),ee=F(12),te=F(0),ne=F(``),D=F(``),O=F(`skip`),re=F(`cron`),ie=F(4),ae=F(12),k=F(0),oe=F(``),se=F(``),ce=F(`skip`),le=F(!0),ue=F(``),de=F(!0),fe=F(!1),pe=F(`idle`),me,he=P(()=>H(r).filter(e=>e.enabled)),ge=P(()=>H(i)!==``&&!H(he).some(e=>e.id===H(i))),_e=P(()=>n[H(a)]);function ve(e){if(!e.trim())return null;let t=parseInt(e,10);return Number.isNaN(t)?null:t}function ye(e){let t=e.split(`,`).map(e=>e.trim()).filter(Boolean);return t.length?t:void 0}async function be(){I(pe,`saving`),clearTimeout(me);try{await Bd({cognition:{model:H(i)||void 0,thinkingLevel:n[H(a)]===`off`?void 0:n[H(a)],tokenBudget:ve(H(o))??void 0,tokenBudgetPeriodMinutes:ve(H(s))??void 0,compaction:ve(H(c))==null?void 0:{maxContextTokens:ve(H(c))}},sleep:{enabled:H(l),schedule:H(l)?{sleep:H(m)?H(h):Lb(H(u),H(d)),wake:H(m)?H(g):Lb(H(f),H(p))}:void 0,wakeTriggers:H(l)?{mentions:H(_),dms:H(v),channels:ye(H(y)),senders:ye(H(b))}:void 0},schedules:H(x).length>0?H(x):void 0}),I(ue,``),I(pe,`saved`),me=setTimeout(()=>{I(pe,`idle`)},1500)}catch(e){I(ue,e instanceof Error?e.message:`Save failed`,!0),I(pe,`idle`)}}function xe(e){let t=e.target.value;t===`__other__`?I(i,``):(I(i,t,!0),t&&be())}function Se(e){I(a,parseInt(e.target.value,10),!0),be()}function Ce(e){I(C,e.id,!0);let t=e.cron?Rb(e.cron):{type:`daily`};I(re,t.type,!0),I(ie,t.hours??4,!0),I(ae,t.hour??12,!0),I(k,t.minute??0,!0),I(oe,e.cron??``,!0),I(se,Bb(e),!0),I(ce,e.whileSleeping??`skip`,!0),I(le,e.enabled,!0)}function we(){if(!H(C))return;let e=zb(H(re),{hours:H(ie),hour:H(ae),minute:H(k),cron:H(oe)});I(x,H(x).map(t=>t.id===H(C)?{...t,cron:e||void 0,message:void 0,messages:void 0,...Vb(H(se)),whileSleeping:H(ce),enabled:H(le)}:t),!0),I(C,null),be()}function Te(){if(!H(w).trim())return;let e=zb(H(T),{hours:H(E),hour:H(ee),minute:H(te),cron:H(ne)});I(x,[...H(x),{id:H(w).trim(),cron:e||void 0,...Vb(H(D)),enabled:!0,whileSleeping:H(O)}],!0),I(w,``),I(T,`daily`),I(E,4),I(ee,12),I(te,0),I(ne,``),I(D,``),I(O,`skip`),I(S,!1),be()}function Ee(e){I(x,H(x).filter(t=>t.id!==e),!0),be()}function De(e){I(x,H(x).map(t=>t.id===e.id?{...t,enabled:!t.enabled}:t),!0),be()}ma(async()=>{try{let[e,t]=await Promise.all([zd(),Od()]);if(I(r,t,!0),e.cognition){I(i,e.cognition.model??``,!0);let t=e.cognition.thinkingLevel??`off`;I(a,Math.max(0,n.indexOf(t)),!0),I(o,e.cognition.tokenBudget==null?``:String(e.cognition.tokenBudget),!0),I(s,e.cognition.tokenBudgetPeriodMinutes==null?``:String(e.cognition.tokenBudgetPeriodMinutes),!0),I(c,e.cognition.compaction?.maxContextTokens==null?``:String(e.cognition.compaction.maxContextTokens),!0)}if(e.sleep){I(l,e.sleep.enabled??!0,!0);let t=e.sleep.schedule?Ib(e.sleep.schedule.sleep):null,n=e.sleep.schedule?Ib(e.sleep.schedule.wake):null;t&&n?(I(u,t.hour,!0),I(d,t.minute,!0),I(f,n.hour,!0),I(p,n.minute,!0)):e.sleep.schedule&&(I(m,!0),I(h,e.sleep.schedule.sleep,!0),I(g,e.sleep.schedule.wake,!0)),I(_,e.sleep.wakeTriggers?.mentions??nf.mentions,!0),I(v,e.sleep.wakeTriggers?.dms??nf.dms,!0),I(y,(e.sleep.wakeTriggers?.channels??[]).join(`, `),!0),I(b,(e.sleep.wakeTriggers?.senders??[]).join(`, `),!0)}e.schedules&&I(x,e.schedules,!0)}catch(e){I(ue,e instanceof Error?e.message:`Failed to load defaults`,!0),I(fe,!0)}I(de,!1)});var Oe=IE(),ke=R(Oe),Ae=e=>{K(e,uE())},je=e=>{Ca(e,{get message(){return H(ue)}})},Me=e=>{var t=FE(),n=z(t);uo(n,{title:`Model`,children:(e,t)=>{var n=_E(),r=z(n);co(r,{label:`Model`,children:(e,t)=>{var n=Kr(),r=z(n),a=e=>{var t=dE(),n=z(t);Xa(n,{type:`text`,onblur:()=>be(),placeholder:`Model ID`,get value(){return H(i)},set value(e){I(i,e,!0)}}),U(`click`,B(n,2),()=>{I(i,H(he)[0]?.id??``,!0),H(i)&&be()}),K(e,t)},o=e=>{oo(e,{get value(){return H(i)},onchange:xe,children:(e,t)=>{var n=pE(),r=z(n);r.value=r.__value=``;var i=B(r,2);Y(i,17,()=>H(he),e=>e.id,(e,t)=>{var n=fE(),r=R(n,!0);A(n);var i={};V(()=>{q(r,H(t).name),i!==(i=H(t).id)&&(n.value=(n.__value=H(t).id)??``)}),K(e,n)});var a=B(i,2);a.value=a.__value=`__other__`,K(e,n)},$$slots:{default:!0}})};J(r,e=>{H(ge)?e(a):e(o,-1)}),K(e,n)},$$slots:{default:!0}});var l=B(r,2);co(l,{label:`Thinking`,children:(e,t)=>{var n=mE(),r=R(n);Ki(r);var i=B(r,2);let o;var s=R(i,!0);A(i),A(n),V(()=>{qi(r,H(a)),o=X(i,1,`slider-label svelte-y2443v`,null,o,{off:H(a)===0}),q(s,H(_e))}),U(`change`,r,Se),K(e,n)},$$slots:{default:!0}});var u=B(l,2);co(u,{label:`Budget`,children:(e,t)=>{var n=hE(),r=z(n);Xa(r,{type:`number`,width:`80px`,onblur:()=>be(),placeholder:`tokens`,get value(){return H(o)},set value(e){I(o,e,!0)}}),Xa(B(r,4),{type:`number`,width:`80px`,onblur:()=>be(),placeholder:`min`,get value(){return H(s)},set value(e){I(s,e,!0)}}),j(2),K(e,n)},$$slots:{default:!0}}),co(B(u,2),{label:`Context`,children:(e,t)=>{var n=gE();Xa(z(n),{type:`number`,width:`80px`,onblur:()=>be(),placeholder:`150000`,get value(){return H(c)},set value(e){I(c,e,!0)}}),j(2),K(e,n)},$$slots:{default:!0}}),K(e,n)},$$slots:{default:!0}});var r=B(n,2);uo(r,{title:`Clock`,children:(e,t)=>{var n=ME(),r=z(n),i=R(r),a=B(R(i),2);{let e=P(()=>H(l)?`On`:`Off`);Co(a,{get checked(){return H(l)},onchange:()=>{I(l,!H(l)),be()},get label(){return H(e)}})}A(i);var o=B(i,2),s=e=>{var t=xE(),n=z(t),r=e=>{var t=yE(),n=z(t);_a(B(R(n),2),{variant:`text`,size:`sm`,onclick:()=>{I(m,!1),be()},children:(e,t)=>{j(),K(e,G(`Use time picker`))},$$slots:{default:!0}}),A(n);var r=B(n,2);Xa(B(R(r),2),{variant:`mono`,style:`flex:1`,onblur:()=>be(),placeholder:`0 0 * * *`,get value(){return H(h)},set value(e){I(h,e,!0)}}),A(r);var i=B(r,2),a=e=>{var t=vE(),n=R(t,!0);A(t),V(e=>q(n,e),[()=>Nb(H(h))]),K(e,t)};J(i,e=>{H(h)&&e(a)});var o=B(i,2);Xa(B(R(o),2),{variant:`mono`,style:`flex:1`,onblur:()=>be(),placeholder:`0 8 * * *`,get value(){return H(g)},set value(e){I(g,e,!0)}}),A(o);var s=B(o,2),c=e=>{var t=vE(),n=R(t,!0);A(t),V(e=>q(n,e),[()=>Nb(H(g))]),K(e,t)};J(s,e=>{H(g)&&e(c)}),K(e,t)},i=e=>{var t=bE(),n=z(t),r=R(n),i=R(r);A(r),_a(B(r,2),{variant:`text`,size:`sm`,onclick:()=>{I(m,!0),I(h,Lb(H(u),H(d)),!0),I(g,Lb(H(f),H(p)),!0)},children:(e,t)=>{j(),K(e,G(`Custom`))},$$slots:{default:!0}}),A(n);var a=B(n,2);bo(a,{label:`Sleep at`,onchange:()=>be(),get hour(){return H(u)},set hour(e){I(u,e,!0)},get minute(){return H(d)},set minute(e){I(d,e,!0)}}),bo(B(a,2),{label:`Wake at`,onchange:()=>be(),get hour(){return H(f)},set hour(e){I(f,e,!0)},get minute(){return H(p)},set minute(e){I(p,e,!0)}}),V((e,t)=>q(i,`Sleeps at ${e??``}, wakes at ${t??``}`),[()=>Pb(H(u),H(d)),()=>Pb(H(f),H(p))]),K(e,t)};J(n,e=>{H(m)?e(r):e(i,-1)});var a=B(n,2),o=B(R(a),2);Co(R(o),{get checked(){return H(_)},onchange:()=>{I(_,!H(_)),be()},label:`When mentioned`}),A(o);var s=B(o,2);Co(R(s),{get checked(){return H(v)},onchange:()=>{I(v,!H(v)),be()},label:`Direct messages`}),A(s);var c=B(s,2);Xa(B(R(c),2),{type:`text`,style:`flex:1`,placeholder:`channel1, channel2`,onblur:()=>be(),get value(){return H(y)},set value(e){I(y,e,!0)}}),A(c);var l=B(c,2);Xa(B(R(l),2),{type:`text`,style:`flex:1`,placeholder:`user1, user2`,onblur:()=>be(),get value(){return H(b)},set value(e){I(b,e,!0)}}),A(l),A(a),K(e,t)};J(o,e=>{H(l)&&e(s)}),A(r);var c=B(r,2),le=R(c);_a(B(R(le),2),{variant:`primary`,onclick:()=>I(S,!0),children:(e,t)=>{j(),K(e,G(`Add`))},$$slots:{default:!0}}),A(le);var ue=B(le,2),de=e=>{var t=DE(),n=R(t);Xa(B(R(n),2),{type:`text`,style:`flex:1`,placeholder:`e.g. heartbeat`,get value(){return H(w)},set value(e){I(w,e,!0)}}),A(n);var r=B(n,2);oo(B(R(r),2),{get value(){return H(T)},set value(e){I(T,e,!0)},children:(e,t)=>{var n=SE(),r=z(n);r.value=r.__value=`hours`;var i=B(r,2);i.value=i.__value=`daily`;var a=B(i,2);a.value=a.__value=`cron`,K(e,n)},$$slots:{default:!0}}),A(r);var i=B(r,2),a=e=>{var t=CE();Xa(B(R(t),4),{type:`number`,width:`50px`,style:`text-align:center`,get value(){return H(E)},set value(e){I(E,e,!0)}}),j(2),A(t),K(e,t)},o=e=>{var t=wE();bo(B(R(t),4),{get hour(){return H(ee)},set hour(e){I(ee,e,!0)},get minute(){return H(te)},set minute(e){I(te,e,!0)}}),A(t),K(e,t)},s=e=>{var t=TE();Xa(B(R(t),2),{type:`text`,style:`flex:1`,placeholder:`*/30 * * * *`,get value(){return H(ne)},set value(e){I(ne,e,!0)}}),A(t),K(e,t)};J(i,e=>{H(T)===`hours`?e(a):H(T)===`daily`?e(o,1):e(s,-1)});var c=B(i,2),l=B(R(c),2);hn(l),A(c);var u=B(c,2);oo(B(R(u),2),{get value(){return H(O)},set value(e){I(O,e,!0)},children:(e,t)=>{var n=EE(),r=z(n);r.value=r.__value=`skip`;var i=B(r,2);i.value=i.__value=`queue`;var a=B(i,2);a.value=a.__value=`trigger-wake`,K(e,n)},$$slots:{default:!0}}),A(u);var d=B(u,2),f=R(d);{let e=P(()=>!H(w).trim());_a(f,{variant:`primary`,onclick:Te,get disabled(){return H(e)},children:(e,t)=>{j(),K(e,G(`Add schedule`))},$$slots:{default:!0}})}_a(B(f,2),{variant:`secondary`,onclick:()=>I(S,!1),children:(e,t)=>{j(),K(e,G(`Cancel`))},$$slots:{default:!0}}),A(d),A(t),aa(l,()=>H(D),e=>I(D,e)),K(e,t)};J(ue,e=>{H(S)&&e(de)});var fe=B(ue,2),pe=e=>{xa(e,{message:`No default schedules configured.`})},me=e=>{var t=jE();Y(t,21,()=>H(x),e=>e.id,(e,t)=>{var n=Kr(),r=z(n),i=e=>{var t=OE(),n=R(t);oo(B(R(n),2),{get value(){return H(re)},set value(e){I(re,e,!0)},children:(e,t)=>{var n=SE(),r=z(n);r.value=r.__value=`hours`;var i=B(r,2);i.value=i.__value=`daily`;var a=B(i,2);a.value=a.__value=`cron`,K(e,n)},$$slots:{default:!0}}),A(n);var r=B(n,2),i=e=>{var t=CE();Xa(B(R(t),4),{type:`number`,width:`50px`,style:`text-align:center`,get value(){return H(ie)},set value(e){I(ie,e,!0)}}),j(2),A(t),K(e,t)},a=e=>{var t=wE();bo(B(R(t),4),{get hour(){return H(ae)},set hour(e){I(ae,e,!0)},get minute(){return H(k)},set minute(e){I(k,e,!0)}}),A(t),K(e,t)},o=e=>{var t=TE();Xa(B(R(t),2),{type:`text`,style:`flex:1`,placeholder:`*/30 * * * *`,get value(){return H(oe)},set value(e){I(oe,e,!0)}}),A(t),K(e,t)};J(r,e=>{H(re)===`hours`?e(i):H(re)===`daily`?e(a,1):e(o,-1)});var s=B(r,2),c=B(R(s),2);hn(c),A(s);var l=B(s,2);oo(B(R(l),2),{get value(){return H(ce)},set value(e){I(ce,e,!0)},children:(e,t)=>{var n=EE(),r=z(n);r.value=r.__value=`skip`;var i=B(r,2);i.value=i.__value=`queue`;var a=B(i,2);a.value=a.__value=`trigger-wake`,K(e,n)},$$slots:{default:!0}}),A(l);var u=B(l,2),d=R(u);_a(d,{variant:`primary`,onclick:we,children:(e,t)=>{j(),K(e,G(`Save`))},$$slots:{default:!0}}),_a(B(d,2),{variant:`secondary`,onclick:()=>I(C,null),children:(e,t)=>{j(),K(e,G(`Cancel`))},$$slots:{default:!0}}),A(u),A(t),aa(c,()=>H(se),e=>I(se,e)),K(e,t)},a=e=>{var n=AE();let r;var i=R(n),a=R(i),o=R(a,!0);A(a);var s=B(a,2),c=R(s),l=e=>{var n=G();V(e=>q(n,e),[()=>Nb(H(t).cron)]),K(e,n)},u=e=>{K(e,G(`--`))};J(c,e=>{H(t).cron?e(l):e(u,-1)}),A(s);var d=B(s,2),f=R(d);Co(f,{get checked(){return H(t).enabled},onchange:()=>De(H(t))});var p=B(f,2);_a(p,{variant:`icon`,onclick:()=>Ce(H(t)),children:(e,t)=>{j(),K(e,G(`Edit`))},$$slots:{default:!0}}),_a(B(p,2),{variant:`danger`,size:`sm`,onclick:()=>Ee(H(t).id),children:(e,t)=>{j(),K(e,G(`Del`))},$$slots:{default:!0}}),A(d),A(i);var m=B(i,2),h=e=>{var n=kE(),r=R(n,!0);A(n),V(e=>q(r,e),[()=>Bb(H(t))]),K(e,n)};J(m,e=>{(H(t).message||H(t).messages?.length)&&e(h)}),A(n),V(()=>{r=X(n,1,`schedule-card svelte-y2443v`,null,r,{disabled:!H(t).enabled}),q(o,H(t).id)}),K(e,n)};J(r,e=>{H(C)===H(t).id?e(i):e(a,-1)}),K(e,n)}),A(t),K(e,t)};J(fe,e=>{H(x).length===0&&!H(S)?e(pe):e(me,-1)}),A(c),K(e,n)},$$slots:{default:!0}});var le=B(r,2),de=R(le),fe=e=>{Ca(e,{get message(){return H(ue)}})},me=e=>{K(e,NE())},ve=e=>{K(e,PE())};J(de,e=>{H(ue)?e(fe):H(pe)===`saving`?e(me,1):H(pe)===`saved`&&e(ve,2)}),A(le),K(e,t)};J(ke,e=>{H(de)?e(Ae):H(fe)?e(je,1):e(Me,-1)}),A(Oe),K(e,Oe),N()}Lr([`click`,`change`]);var RE=W(`<div class="upload-area svelte-ywjv10"><input type="file" accept=".zip" class="file-input svelte-ywjv10"/> <!></div>`),zE=W(`<div class="skill-desc svelte-ywjv10"> </div>`),BE=W(`<div class="skill-row svelte-ywjv10"><label class="default-toggle svelte-ywjv10"><input type="checkbox" class="svelte-ywjv10"/> <span class="toggle-track svelte-ywjv10"><span class="toggle-thumb svelte-ywjv10"></span></span></label> <div class="skill-info svelte-ywjv10"><div class="skill-name svelte-ywjv10"> </div> <!> <div class="skill-meta svelte-ywjv10"> </div></div> <div class="skill-actions svelte-ywjv10"><!></div></div>`),VE=W(`<div class="skill-list svelte-ywjv10"><div class="column-header svelte-ywjv10"><span class="column-label svelte-ywjv10">Default</span></div> <!></div>`),HE=W(`<!> <!> <div class="auto-update-row svelte-ywjv10"><label class="default-toggle svelte-ywjv10"><input type="checkbox" class="svelte-ywjv10"/> <span class="toggle-track svelte-ywjv10"><span class="toggle-thumb svelte-ywjv10"></span></span></label> <div class="auto-update-info svelte-ywjv10"><span class="auto-update-label svelte-ywjv10">Auto-update mind skills</span> <span class="auto-update-desc svelte-ywjv10">Automatically update installed skills on all minds when a new version is available</span></div></div> <!>`,1);function UE(e,t){M(t,!0);let n=F(L([])),r=F(L([])),i=F(!0),a=F(``),o=F(!0),s=F(null);function c(){Promise.all([id(),dd(),md()]).then(([e,t,s])=>{I(n,e.sort((e,t)=>e.name.localeCompare(t.name)),!0),I(r,t,!0),I(i,s,!0),I(o,!1),I(a,``)}).catch(()=>{I(a,`Failed to load skills`),I(o,!1)})}async function l(){let e=!H(i);I(i,e);try{await hd(e)}catch(t){I(i,!e),I(a,t instanceof Error?t.message:`Failed to update setting`,!0)}}ma(c);let u=F(void 0);async function d(){let e=H(u)?.files?.[0];if(e){I(s,`upload`),I(a,``);try{await ef(e),c(),H(u).value=``}catch(e){I(a,e instanceof Error?e.message:`Failed to upload`,!0)}I(s,null)}}async function f(e){I(s,e,!0),I(a,``);try{await ud(e),c()}catch(e){I(a,e instanceof Error?e.message:`Failed to remove`,!0)}I(s,null)}async function p(e){I(s,`default:${e}`),I(a,``);try{H(r).includes(e)?I(r,await pd(e),!0):I(r,await fd(e),!0)}catch(e){I(a,e instanceof Error?e.message:`Failed to update defaults`,!0)}I(s,null)}var m=Kr(),h=z(m),g=e=>{xa(e,{message:`Loading...`})},_=e=>{var t=HE(),o=z(t);Ca(o,{get message(){return H(a)}});var c=B(o,2);no(c,{title:`Skills`,action:e=>{var t=RE(),n=R(t);ua(n,e=>I(u,e),()=>H(u));var r=B(n,2);{let e=P(()=>H(s)!==null);_a(r,{variant:`primary`,onclick:()=>H(u).click(),get disabled(){return H(e)},children:(e,t)=>{j();var n=G();V(()=>q(n,H(s)===`upload`?`Uploading...`:`Upload .zip`)),K(e,n)},$$slots:{default:!0}})}A(t),U(`change`,n,d),K(e,t)},$$slots:{action:!0}});var m=B(c,2),h=R(m),g=R(h);Ki(g),j(2),A(h),j(2),A(m);var _=B(m,2),v=e=>{xa(e,{message:`No shared skills yet.`})},y=e=>{var t=VE();Y(B(R(t),2),17,()=>H(n),e=>e.id,(e,t)=>{var n=BE(),i=R(n),a=R(i);Ki(a),j(2),A(i);var o=B(i,2),c=R(o),l=R(c,!0);A(c);var u=B(c,2),d=e=>{var n=zE(),r=R(n,!0);A(n),V(()=>q(r,H(t).description)),K(e,n)};J(u,e=>{H(t).description&&e(d)});var m=B(u,2),h=R(m);A(m),A(o);var g=B(o,2),_=R(g);{let e=P(()=>H(s)!==null);_a(_,{variant:`danger`,onclick:()=>f(H(t).id),get disabled(){return H(e)},children:(e,n)=>{j();var r=G();V(()=>q(r,H(s)===H(t).id?`...`:`Delete`)),K(e,r)},$$slots:{default:!0}})}A(g),A(n),V((e,n)=>{Xi(i,`title`,e),Ji(a,n),a.disabled=H(s)!==null,q(l,H(t).name),q(h,`${H(t).id??``} · v${H(t).version??``} · by ${H(t).author??``}`)},[()=>H(r).includes(H(t).id)?`Installed on new minds`:`Not installed on new minds`,()=>H(r).includes(H(t).id)]),U(`change`,a,()=>p(H(t).id)),K(e,n)}),A(t),K(e,t)};J(_,e=>{H(n).length===0?e(v):e(y,-1)}),V(()=>{Xi(h,`title`,H(i)?`Skills auto-update on daemon restart`:`Skills must be updated manually per mind`),Ji(g,H(i))}),U(`change`,g,l),K(e,t)};J(h,e=>{H(o)?e(g):e(_,-1)}),K(e,m),N()}Lr([`change`]);function WE(e){let t=e-1;return t*t*t+1}function GE(e,{delay:t=0,duration:n=400,easing:r=WE,axis:i=`y`}={}){let a=getComputedStyle(e),o=+a.opacity,s=i===`y`?`height`:`width`,c=parseFloat(a[s]),l=i===`y`?[`top`,`bottom`]:[`left`,`right`],u=l.map(e=>`${e[0].toUpperCase()}${e.slice(1)}`),d=parseFloat(a[`padding${u[0]}`]),f=parseFloat(a[`padding${u[1]}`]),p=parseFloat(a[`margin${u[0]}`]),m=parseFloat(a[`margin${u[1]}`]),h=parseFloat(a[`border${u[0]}Width`]),g=parseFloat(a[`border${u[1]}Width`]);return{delay:t,duration:n,easing:r,css:e=>`overflow: hidden;opacity: ${Math.min(e*20,1)*o};${s}: ${e*c}px;padding-${l[0]}: ${e*d}px;padding-${l[1]}: ${e*f}px;margin-${l[0]}: ${e*p}px;margin-${l[1]}: ${e*m}px;border-${l[0]}-width: ${e*h}px;border-${l[1]}-width: ${e*g}px;min-${s}: 0`}}function KE(e){return e.user_type===`mind`&&e.external===!0}function qE(e){return e.avatar?e.user_type===`mind`&&!KE(e)?`/api/minds/${encodeURIComponent(e.username)}/avatar`:`/api/auth/avatars/${encodeURIComponent(e.avatar)}`:null}function JE(e){return e.user_type===`mind`?KE(e)?`external`:`local`:null}function YE(e){return KE(e)?`revoke access?`:e.user_type===`mind`?`delete mind + data?`:`delete account?`}var XE=W(`<div class="error svelte-1xya1td"> </div>`),ZE=W(`<p class="lede svelte-1xya1td">Give this token to the mind. It authenticates as <span class="mono svelte-1xya1td"> </span> over the API — no process runs here.</p> <div class="token-box svelte-1xya1td"><code class="token svelte-1xya1td"> </code> <!></div> <p class="warn svelte-1xya1td">This is the only time the token is shown — only a hash of it is stored. If it's lost,
96
+ issue a new one from the mind's card.</p> <!> <div class="actions svelte-1xya1td"><!></div>`,1),QE=W(`<p class="lede svelte-1xya1td">An external mind runs somewhere else and reaches in over the API. It gets an account and a
97
+ token, but no process, port, or directory here.</p> <form><div class="field svelte-1xya1td"><label for="ext-name" class="svelte-1xya1td">Name</label> <!> <span class="hint svelte-1xya1td">Letters, numbers, dot, dash, underscore. Used as @name.</span></div> <div class="field svelte-1xya1td"><label for="ext-display" class="svelte-1xya1td">Display name <span class="opt svelte-1xya1td">optional</span></label> <!></div> <div class="field svelte-1xya1td"><label for="ext-desc" class="svelte-1xya1td">Description <span class="opt svelte-1xya1td">optional</span></label> <!></div> <!> <div class="actions svelte-1xya1td"><!> <!></div></form>`,1),$E=W(`<div class="body svelte-1xya1td"><!></div>`);function eD(e,t){M(t,!0);let n=F(``),r=F(``),i=F(``),a=F(``),o=F(!1),s=F(null),c=F(!1);async function l(e){e.preventDefault();let c=H(n).trim();if(!(!c||H(o))){I(o,!0),I(a,``);try{let e=await iu({name:c,displayName:H(r).trim()||void 0,description:H(i).trim()||void 0});I(s,{name:e.name,token:e.token},!0),t.onRegistered()}catch(e){I(a,e instanceof Error?e.message:`Failed to register`,!0)}finally{I(o,!1)}}}async function u(){if(H(s))try{await navigator.clipboard.writeText(H(s).token),I(c,!0),I(a,``),setTimeout(()=>I(c,!1),1500)}catch{I(a,`Couldn't copy — select the token and copy it manually`)}}{let d=P(()=>H(s)?`@${H(s).name} registered`:`Add external mind`);$a(e,{size:`420px`,get title(){return H(d)},get onClose(){return t.onClose},children:(e,d)=>{var f=$E(),p=R(f),m=e=>{var n=ZE(),r=z(n),i=B(R(r)),o=R(i);A(i),j(),A(r);var l=B(r,2),d=R(l),f=R(d,!0);A(d),_a(B(d,2),{variant:`secondary`,onclick:u,children:(e,t)=>{j();var n=G();V(()=>q(n,H(c)?`copied`:`copy`)),K(e,n)},$$slots:{default:!0}}),A(l);var p=B(l,4),m=e=>{var t=XE(),n=R(t,!0);A(t),V(()=>q(n,H(a))),K(e,t)};J(p,e=>{H(a)&&e(m)});var h=B(p,2);_a(R(h),{variant:`primary`,get onclick(){return t.onClose},children:(e,t)=>{j(),K(e,G(`done`))},$$slots:{default:!0}}),A(h),V(()=>{q(o,`@${H(s).name??``}`),q(f,H(s).token)}),K(e,n)},h=e=>{var s=QE(),c=B(z(s),2),u=R(c);Xa(B(R(u),2),{id:`ext-name`,placeholder:`hecate`,autocomplete:`off`,spellcheck:!1,get value(){return H(n)},set value(e){I(n,e,!0)}}),j(2),A(u);var d=B(u,2);Xa(B(R(d),2),{id:`ext-display`,placeholder:`Hecate`,autocomplete:`off`,get value(){return H(r)},set value(e){I(r,e,!0)}}),A(d);var f=B(d,2);Xa(B(R(f),2),{id:`ext-desc`,placeholder:`What is this mind?`,autocomplete:`off`,get value(){return H(i)},set value(e){I(i,e,!0)}}),A(f);var p=B(f,2),m=e=>{var t=XE(),n=R(t,!0);A(t),V(()=>q(n,H(a))),K(e,t)};J(p,e=>{H(a)&&e(m)});var h=B(p,2),g=R(h);_a(g,{variant:`text`,type:`button`,get onclick(){return t.onClose},children:(e,t)=>{j(),K(e,G(`cancel`))},$$slots:{default:!0}});var _=B(g,2);{let e=P(()=>!H(n).trim()||H(o));_a(_,{variant:`primary`,type:`submit`,get disabled(){return H(e)},children:(e,t)=>{j();var n=G();V(()=>q(n,H(o)?`registering...`:`register`)),K(e,n)},$$slots:{default:!0}})}A(h),A(c),Ir(`submit`,c,l),K(e,s)};J(p,e=>{H(s)?e(m):e(h,-1)}),A(f),K(e,f)},$$slots:{default:!0}})}N()}var tD=W(`<div class="error panel-error svelte-fqyh9p"> </div>`),nD=W(`<img alt="" class="svelte-fqyh9p"/>`),rD=Gr(`<rect x="4" y="8" width="16" height="12" rx="2"></rect><circle cx="9" cy="14" r="1.5"></circle><circle cx="15" cy="14" r="1.5"></circle><line x1="12" y1="4" x2="12" y2="8"></line><circle cx="12" cy="3" r="1"></circle>`,1),iD=Gr(`<path d="M5 11a7 7 0 1 1 14 0c0 3-1.5 5-3 6v3H8v-3c-1.5-1-3-3-3-6z"></path><path d="M5 10c-.6 0-1 .8-1 1.8S4.4 13.5 5 13.5"></path><path d="M19 10c.6 0 1 .8 1 1.8s-.4 1.7-1 1.7"></path><circle cx="9.5" cy="10.5" r="1" fill="currentColor" stroke="none"></circle><circle cx="14.5" cy="10.5" r="1" fill="currentColor" stroke="none"></circle>`,1),aD=Gr(`<svg class="type-icon svelte-fqyh9p" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><!></svg>`),oD=W(`<span class="username svelte-fqyh9p"> </span>`),sD=W(`<span> </span>`),cD=W(`<span class="role admin svelte-fqyh9p">admin</span>`),lD=W(`<span class="role pending svelte-fqyh9p">pending</span> <button class="approve-btn svelte-fqyh9p">approve</button>`,1),uD=W(`<div class="issued svelte-fqyh9p"><code class="svelte-fqyh9p"> </code> <span class="issued-note svelte-fqyh9p">shown once — copy it now</span></div>`),dD=W(`<span class="tokens-empty svelte-fqyh9p">loading...</span>`),fD=W(`<span class="tokens-error svelte-fqyh9p"> </span>`),pD=W(`<span class="tokens-empty svelte-fqyh9p">No tokens — this mind cannot authenticate.</span>`),mD=W(`<span class="confirm-prompt svelte-fqyh9p">revoke? <button class="confirm-yes svelte-fqyh9p">yes</button> <button class="confirm-no svelte-fqyh9p">no</button></span>`),hD=W(`<button class="action-btn danger svelte-fqyh9p">revoke</button>`),gD=W(`<div class="token-row svelte-fqyh9p"><span class="token-label svelte-fqyh9p"> </span> <span class="token-date svelte-fqyh9p"> </span> <!></div>`),_D=W(`<div class="tokens svelte-fqyh9p"><div class="tokens-head svelte-fqyh9p"><span class="tokens-title svelte-fqyh9p">API tokens</span> <button class="action-btn svelte-fqyh9p">new token</button></div> <!> <!></div>`),vD=W(`<button class="action-btn svelte-fqyh9p">remove admin</button>`),yD=W(`<button class="action-btn svelte-fqyh9p">make admin</button>`),bD=W(`<span class="confirm-prompt svelte-fqyh9p"> <button class="confirm-yes svelte-fqyh9p"> </button> <button class="confirm-no svelte-fqyh9p">no</button></span>`),xD=W(`<button class="action-btn danger svelte-fqyh9p">delete</button>`),SD=W(`<div class="detail-panel svelte-fqyh9p"><div class="field svelte-fqyh9p"><label class="svelte-fqyh9p">Display name</label> <input type="text" class="svelte-fqyh9p"/></div> <div class="field svelte-fqyh9p"><label class="svelte-fqyh9p">Description</label> <input type="text" placeholder="Optional description" class="svelte-fqyh9p"/></div> <!> <div class="detail-actions svelte-fqyh9p"><div class="left-actions svelte-fqyh9p"><!> <!></div> <button class="save-btn svelte-fqyh9p"> </button></div></div>`),CD=W(`<div><div class="user-row svelte-fqyh9p" role="button" tabindex="0"><span></span> <span class="avatar svelte-fqyh9p"><!></span> <div class="user-info svelte-fqyh9p"><span class="display-name svelte-fqyh9p"> </span> <!></div> <div class="row-actions svelte-fqyh9p"><!> <!> <!> <span>&#x25B8;</span></div></div> <!></div>`),wD=W(`<div class="empty svelte-fqyh9p">No users yet.</div>`),TD=W(`<div class="container svelte-fqyh9p"><div class="panel-header svelte-fqyh9p"><div class="heading svelte-fqyh9p"><h3 class="svelte-fqyh9p">Users</h3> <span class="count svelte-fqyh9p"> </span></div> <!></div> <!> <div class="user-list svelte-fqyh9p"></div> <!></div> <!>`,1);function ED(e,t){M(t,!0);let n=F(L([])),r=F(``),i=F(null),a=F(!1),o=F(``),s=F(``),c=F(!1),l=F(null),u=F(null),d=F(L([])),f=F(!1),p=F(``),m=F(null),h=F(null),g=P(()=>new Map(t.minds.map(e=>[e.name,e]))),_=P(()=>H(n).filter(e=>e.role===`admin`).length),v=P(()=>[...H(n)].sort((e,t)=>Number(t.role===`pending`)-Number(e.role===`pending`)));function y(e){return new Date(Rl(e)).toLocaleString()}function b(){$l().then(e=>{I(n,e,!0),I(r,``)}).catch(()=>{I(r,`Failed to load users`)})}ma(()=>{b()});function x(e){H(i)===e.id?(I(i,null),I(l,null)):(I(i,e.id,!0),I(o,e.display_name??``,!0),I(s,e.description??``,!0),I(l,null),I(d,[],!0),I(p,``),I(m,null),I(h,null),KE(e)&&S(e.id))}async function S(e){I(f,!0),I(p,``);try{I(d,await au(e),!0)}catch{I(d,[],!0),I(p,`Couldn't load tokens — this mind may still have credentials.`)}finally{I(f,!1)}}async function C(e){I(r,``);try{let t=await ou(e.id);I(m,t.token,!0),await S(e.id)}catch(e){I(r,e instanceof Error?e.message:`Failed to issue token`,!0)}}async function w(e,t){I(r,``);try{await su(e.id,t),I(h,null),await S(e.id)}catch(e){I(r,e instanceof Error?e.message:`Failed to revoke token`,!0)}}function T(e){if(e.user_type===`mind`){if(Qf.has(e.username))return;let t=H(g).get(e.username);return t?Ll(t):`var(--text-2)`}return $f.has(e.username)?`var(--text-0)`:`var(--text-2)`}async function E(e,t){e.stopPropagation();try{await tu(t),b()}catch{I(r,`Failed to approve user`)}}async function ee(e,t){e.stopPropagation();let n=t.role===`admin`?`user`:`admin`;try{await nu(t.id,n),b()}catch(e){I(r,e instanceof Error?e.message:`Failed to change role`,!0)}}async function te(e){I(c,!0);try{await ru(e.id,{display_name:H(o).trim()||null,description:H(s).trim()||null}),b()}catch(e){I(r,e instanceof Error?e.message:`Failed to update profile`,!0)}finally{I(c,!1)}}async function ne(e){I(u,e.id,!0);try{if(e.user_type===`mind`&&!KE(e))try{await wu(e.username,!0),Zf.minds=Zf.minds.filter(t=>t.name!==e.username)}catch(t){if(t instanceof Error&&t.message.includes(`not found`))await cu(e.id);else throw t}else await cu(e.id);I(i,null),I(l,null),b()}catch(e){I(r,e instanceof Error?e.message:`Failed to delete`,!0)}finally{I(u,null)}}function D(e){return(H(o).trim()||null)!==(e.display_name??null)||(H(s).trim()||null)!==(e.description??null)}var O=TD(),re=z(O),ie=R(re),ae=R(ie),k=B(R(ae),2),oe=R(k,!0);A(k),A(ae),_a(B(ae,2),{variant:`secondary`,onclick:()=>I(a,!0),children:(e,t)=>{j(),K(e,G(`+ external mind`))},$$slots:{default:!0}}),A(ie);var se=B(ie,2),ce=e=>{var t=tD(),n=R(t,!0);A(t),V(()=>q(n,H(r))),K(e,t)};J(se,e=>{H(r)&&e(ce)});var le=B(se,2);Y(le,21,()=>H(v),e=>e.id,(e,t)=>{let n=P(()=>qE(H(t))),r=P(()=>JE(H(t)));var a=CD();let g;var v=R(a),b=R(v);let S,O;var re=B(b,2),ie=R(re),ae=e=>{var t=nD();V(()=>Xi(t,`src`,H(n))),K(e,t)},k=e=>{var n=aD(),r=R(n),i=e=>{var t=rD();j(4),K(e,t)},a=e=>{var t=iD();j(4),K(e,t)};J(r,e=>{H(t).user_type===`mind`?e(i):e(a,-1)}),A(n),K(e,n)};J(ie,e=>{H(n)?e(ae):e(k,-1)}),A(re);var oe=B(re,2),se=R(oe),ce=R(se,!0);A(se);var le=B(se,2),ue=e=>{var n=oD(),r=R(n);A(n),V(()=>q(r,`@${H(t).username??``}`)),K(e,n)};J(le,e=>{H(t).display_name&&e(ue)}),A(oe);var de=B(oe,2),fe=R(de),pe=e=>{var t=sD();let n;var i=R(t,!0);A(t),V(()=>{n=X(t,1,`tag svelte-fqyh9p`,null,n,{external:H(r)===`external`}),q(i,H(r))}),K(e,t)};J(fe,e=>{H(r)&&e(pe)});var me=B(fe,2),he=e=>{K(e,cD())};J(me,e=>{H(t).role===`admin`&&e(he)});var ge=B(me,2),_e=e=>{var n=lD();U(`click`,B(z(n),2),e=>E(e,H(t).id)),K(e,n)};J(ge,e=>{H(t).role===`pending`&&e(_e)});var ve=B(ge,2);let ye;A(de),A(v);var be=B(v,2),xe=e=>{var n=SD(),r=R(n),i=R(r),a=B(i,2);Ki(a),A(r);var g=B(r,2),v=R(g),b=B(v,2);Ki(b),A(g);var x=B(g,2),S=e=>{var n=_D(),r=R(n),i=B(R(r),2);A(r);var a=B(r,2),o=e=>{var t=uD(),n=R(t),r=R(n,!0);A(n),j(2),A(t),V(()=>q(r,H(m))),K(e,t)};J(a,e=>{H(m)&&e(o)});var s=B(a,2),c=e=>{K(e,dD())},l=e=>{var t=fD(),n=R(t,!0);A(t),V(()=>q(n,H(p))),K(e,t)},u=e=>{K(e,pD())},g=e=>{var n=Kr();Y(z(n),17,()=>H(d),e=>e.id,(e,n)=>{var r=gD(),i=R(r),a=R(i,!0);A(i);var o=B(i,2),s=R(o,!0);A(o);var c=B(o,2),l=e=>{var r=mD(),i=B(R(r)),a=B(i,2);A(r),U(`click`,i,()=>w(H(t),H(n).id)),U(`click`,a,()=>I(h,null)),K(e,r)},u=e=>{var t=hD();U(`click`,t,()=>I(h,H(n).id,!0)),K(e,t)};J(c,e=>{H(h)===H(n).id?e(l):e(u,-1)}),A(r),V(e=>{q(a,H(n).label||`unlabeled`),q(s,e)},[()=>y(H(n).createdAt)]),K(e,r)}),K(e,n)};J(s,e=>{H(f)?e(c):H(p)?e(l,1):H(d).length===0?e(u,2):e(g,-1)}),A(n),U(`click`,i,()=>C(H(t))),K(e,n)},T=P(()=>KE(H(t)));J(x,e=>{H(T)&&e(S)});var E=B(x,2),O=R(E),re=R(O),ie=e=>{var n=vD();V(()=>n.disabled=H(_)<=1),U(`click`,n,e=>ee(e,H(t))),K(e,n)},ae=e=>{var n=yD();U(`click`,n,e=>ee(e,H(t))),K(e,n)};J(re,e=>{H(t).role===`admin`?e(ie):H(t).role!==`pending`&&e(ae,1)});var k=B(re,2),oe=e=>{var n=bD(),r=R(n),i=B(r),a=R(i,!0);A(i);var o=B(i,2);A(n),V(e=>{q(r,`${e??``} `),i.disabled=H(u)===H(t).id,q(a,H(u)===H(t).id?`...`:`yes`)},[()=>YE(H(t))]),U(`click`,i,()=>ne(H(t))),U(`click`,o,()=>I(l,null)),K(e,n)},se=e=>{var n=xD();V(()=>n.disabled=H(t).role===`admin`&&H(_)<=1),U(`click`,n,()=>I(l,H(t).id,!0)),K(e,n)};J(k,e=>{H(l)===H(t).id?e(oe):e(se,-1)}),A(O);var ce=B(O,2),le=R(ce,!0);A(ce),A(E),A(n),V(e=>{Xi(i,`for`,`dn-${H(t).id??``}`),Xi(a,`id`,`dn-${H(t).id??``}`),Xi(a,`placeholder`,H(t).username),Xi(v,`for`,`desc-${H(t).id??``}`),Xi(b,`id`,`desc-${H(t).id??``}`),ce.disabled=e,q(le,H(c)?`saving...`:`save`)},[()=>!D(H(t))||H(c)]),aa(a,()=>H(o),e=>I(o,e)),aa(b,()=>H(s),e=>I(s,e)),U(`click`,ce,()=>te(H(t))),bi(3,n,()=>GE,()=>({duration:150})),K(e,n)};J(be,e=>{H(i)===H(t).id&&e(xe)}),A(a),V((e,n)=>{g=X(a,1,`user-card svelte-fqyh9p`,null,g,{expanded:H(i)===H(t).id}),S=X(b,1,`status-dot svelte-fqyh9p`,null,S,e),O=Z(b,``,O,n),q(ce,H(t).display_name||H(t).username),ye=X(ve,1,`expand-icon svelte-fqyh9p`,null,ye,{open:H(i)===H(t).id})},[()=>({iridescent:H(t).user_type===`mind`&&Qf.has(H(t).username)}),()=>({background:T(H(t))})]),U(`click`,v,()=>x(H(t))),U(`keydown`,v,e=>e.key===`Enter`&&x(H(t))),K(e,a)}),A(le);var ue=B(le,2),de=e=>{K(e,wD())};J(ue,e=>{H(n).length===0&&!H(r)&&e(de)}),A(re);var fe=B(re,2),pe=e=>{eD(e,{onClose:()=>I(a,!1),onRegistered:b})};J(fe,e=>{H(a)&&e(pe)}),V(()=>q(oe,H(n).length)),K(e,O),N()}Lr([`click`,`keydown`]);var DD=W(`<div class="error svelte-n9btv2"> </div>`),OD=W(`<div class="loading svelte-n9btv2">Loading prompts...</div>`),kD=W(`<span class="custom-count svelte-n9btv2"> </span>`),AD=W(`<span class="custom-badge svelte-n9btv2">customized</span>`),jD=W(`<span class="var-tag svelte-n9btv2"> </span>`),MD=W(`<div class="var-tags svelte-n9btv2"></div>`),ND=W(`<textarea class="edit-area svelte-n9btv2" rows="10"></textarea> <div class="actions svelte-n9btv2"><button class="btn btn-save svelte-n9btv2"> </button> <button class="btn btn-cancel svelte-n9btv2">Cancel</button></div>`,1),PD=W(`<button class="btn btn-reset svelte-n9btv2">Reset</button>`),FD=W(`<pre class="prompt-content svelte-n9btv2"><code class="svelte-n9btv2"> </code></pre> <div class="actions svelte-n9btv2"><button class="btn btn-edit svelte-n9btv2">Edit</button> <!></div>`,1),ID=W(`<div><div class="prompt-header svelte-n9btv2"><span class="prompt-key svelte-n9btv2"> </span> <!></div> <p class="prompt-desc svelte-n9btv2"> </p> <!> <!></div>`),LD=W(`<div class="section-body svelte-n9btv2"></div>`),RD=W(`<div class="section svelte-n9btv2"><button class="section-header svelte-n9btv2"><span class="collapse-icon svelte-n9btv2"> </span> <span class="section-title svelte-n9btv2"> </span> <span class="section-subtitle svelte-n9btv2"> </span> <!></button> <!></div>`),zD=W(`<div class="prompts-page svelte-n9btv2"><!> <!></div>`);function BD(e,t){M(t,!0);let n=F(L([])),r=F(!0),i=F(null),a=F(``),o=F(!1),s=F(``),c=L({}),l={creation:{label:`Creation Prompts`,subtitle:`Used when creating new minds`},system:{label:`System Messages`,subtitle:`Sent by the daemon to minds`},mind:{label:`Mind Prompts`,subtitle:`Stamped into prompts.json at creation, then mind-owned`}},u=[`creation`,`system`,`mind`],d=P(()=>u.map(e=>({category:e,meta:l[e],items:H(n).filter(t=>t.category===e)})).filter(e=>e.items.length>0));async function f(){try{I(n,await gd(),!0),I(s,``)}catch(e){I(s,e instanceof Error?e.message:`Failed to load prompts`,!0)}finally{I(r,!1)}}ma(f);function p(e){c[e]=!c[e]}function m(e){I(i,e.key,!0),I(a,e.content,!0),c[e.category]=!0}function h(){I(i,null),I(a,``)}async function g(e){I(o,!0);try{await _d(e,H(a)),I(i,null),I(a,``),await f()}catch(e){I(s,e instanceof Error?e.message:`Failed to save`,!0)}finally{I(o,!1)}}async function _(e){I(o,!0);try{await vd(e),I(i,null),I(a,``),await f()}catch(e){I(s,e instanceof Error?e.message:`Failed to reset`,!0)}finally{I(o,!1)}}var v=zD(),y=R(v),b=e=>{var t=DD(),n=R(t,!0);A(t),V(()=>q(n,H(s))),K(e,t)};J(y,e=>{H(s)&&e(b)});var x=B(y,2),S=e=>{K(e,OD())},C=e=>{var t=Kr();Y(z(t),17,()=>H(d),e=>e.category,(e,t)=>{var n=RD(),r=R(n),s=R(r),l=R(s,!0);A(s);var u=B(s,2),d=R(u,!0);A(u);var f=B(u,2),v=R(f,!0);A(f);var y=B(f,2),b=e=>{var n=kD(),r=R(n);A(n),V(e=>q(r,`${e??``} customized`),[()=>H(t).items.filter(e=>e.isCustom).length]),K(e,n)},x=P(()=>H(t).items.some(e=>e.isCustom));J(y,e=>{H(x)&&e(b)}),A(r);var S=B(r,2),C=e=>{var n=LD();Y(n,21,()=>H(t).items,e=>e.key,(e,t)=>{var n=ID();let r;var s=R(n),c=R(s),l=R(c,!0);A(c);var u=B(c,2),d=e=>{K(e,AD())};J(u,e=>{H(t).isCustom&&e(d)}),A(s);var f=B(s,2),p=R(f,!0);A(f);var v=B(f,2),y=e=>{var n=MD();Y(n,20,()=>H(t).variables,e=>e,(e,t)=>{var n=jD(),r=R(n);A(n),V(()=>q(r,`$${`{`+t+`}`}`)),K(e,n)}),A(n),K(e,n)};J(v,e=>{H(t).variables.length>0&&e(y)});var b=B(v,2),x=e=>{var n=ND(),r=z(n);hn(r);var i=B(r,2),s=R(i),c=R(s,!0);A(s);var l=B(s,2);A(i),V(()=>{s.disabled=H(o),q(c,H(o)?`Saving...`:`Save`),l.disabled=H(o)}),aa(r,()=>H(a),e=>I(a,e)),U(`click`,s,()=>g(H(t).key)),U(`click`,l,h),K(e,n)},S=e=>{var n=FD(),r=z(n),i=R(r),a=R(i,!0);A(i),A(r);var s=B(r,2),c=R(s),l=B(c,2),u=e=>{var n=PD();V(()=>n.disabled=H(o)),U(`click`,n,()=>_(H(t).key)),K(e,n)};J(l,e=>{H(t).isCustom&&e(u)}),A(s),V(()=>q(a,H(t).content)),U(`click`,c,()=>m(H(t))),K(e,n)};J(b,e=>{H(i)===H(t).key?e(x):e(S,-1)}),A(n),V(()=>{r=X(n,1,`prompt-card svelte-n9btv2`,null,r,{custom:H(t).isCustom}),q(l,H(t).key),q(p,H(t).description)}),K(e,n)}),A(n),K(e,n)};J(S,e=>{c[H(t).category]&&e(C)}),A(n),V(()=>{q(l,c[H(t).category]?`▼`:`▶`),q(d,H(t).meta.label),q(v,H(t).meta.subtitle)}),U(`click`,r,()=>p(H(t).category)),K(e,n)}),K(e,t)};J(x,e=>{H(r)?e(S):e(C,-1)}),A(v),K(e,v),N()}Lr([`click`]);var VD=W(`<div class="error svelte-m1wc4k"> </div> <button class="retry-btn svelte-m1wc4k">Retry</button>`,1),HD=W(`<div class="loading-text svelte-m1wc4k">Loading providers...</div>`),UD=W(`<span class="entitlement-badge entitled svelte-m1wc4k">Ready</span>`),WD=W(`<span class="entitlement-badge not-entitled svelte-m1wc4k">Plan not entitled</span>`),GD=W(`<div class="entitlement-reason svelte-m1wc4k"> </div>`),KD=W(`<span class="model-tag svelte-m1wc4k"> <button class="model-tag-remove svelte-m1wc4k">×</button></span>`),qD=W(`<div class="model-tags svelte-m1wc4k"></div>`),JD=W(`<span class="dim svelte-m1wc4k">No models enabled</span>`),YD=W(`<div class="provider-card svelte-m1wc4k"><div class="provider-header svelte-m1wc4k"><span class="provider-name svelte-m1wc4k"> </span> <span class="auth-badge svelte-m1wc4k"> </span> <!> <button class="check-btn svelte-m1wc4k"> </button> <button class="remove-btn svelte-m1wc4k">Remove</button></div> <!> <div class="provider-models svelte-m1wc4k"><!> <button class="add-model-btn svelte-m1wc4k">Add model</button></div></div>`),XD=W(`<button class="add-provider-btn svelte-m1wc4k" type="button">+ Add a provider</button>`),ZD=W(`<div class="model-defaults svelte-m1wc4k"><span class="label svelte-m1wc4k">Default model</span> <!> <div class="hint svelte-m1wc4k">Used when minds generate images without specifying a model.</div></div>`),QD=W(`<div class="error svelte-m1wc4k"> </div>`),$D=W(`<!> <!> <!> <!>`,1),eO=W(`<option> </option>`),tO=W(`<div class="autocomplete"><select class="select-input svelte-m1wc4k"><option>Select provider...</option><!></select></div>`),nO=W(`<form class="api-key-form svelte-m1wc4k"><input type="password" placeholder="API key" class="text-input svelte-m1wc4k"/> <button type="submit" class="save-btn svelte-m1wc4k"> </button></form>`),rO=W(`<div class="modal-body svelte-m1wc4k"><!> <!> <!></div>`),iO=W(`<span class="model-desc svelte-m1wc4k"> </span>`),aO=W(`<button class="model-option svelte-m1wc4k"><span class="model-id svelte-m1wc4k"> </span> <!></button>`),oO=W(`<div class="model-list svelte-m1wc4k"></div>`),sO=W(`<div class="modal-body svelte-m1wc4k"><form class="api-key-form svelte-m1wc4k"><input type="text" placeholder="Search models..." class="text-input svelte-m1wc4k"/> <button type="submit" class="save-btn svelte-m1wc4k"> </button></form> <!> <!></div>`),cO=W(`<!> <!> <!>`,1);function lO(e,t){M(t,!0);let n=F(L([])),r=F(L([])),i=F(null),a=F(``),o=F(!1),s=F(``),c=F(!1),l=F(``),u=F(``),d=F(!1),f=F(``),p=F(L([])),m=F(!1),h=F(``),g=P(()=>H(n).filter(e=>e.configured)),_=P(()=>H(n).filter(e=>!e.configured));function v(e){return H(r).filter(t=>t.startsWith(`${e}:`))}function y(e){return e===`api_key`?`API key`:e===`oauth`?`OAuth`:e===`env_var`?`env var`:``}let b=new Gl;async function x(e){b.add(e),I(a,``);try{let t=await Wd(e);t.state===`not_entitled`&&!t.reason&&I(a,`Provider plan is not entitled to generate images.`),await S()}catch(e){I(a,e instanceof Error?e.message:`Failed to check entitlement`,!0)}finally{b.delete(e)}}async function S(){I(s,``);try{I(n,await Vd(),!0);let e=await Gd();I(r,e.models,!0),I(i,e.defaultModel,!0)}catch(e){console.warn(`[ImagegenProviders] failed to load imagegen config:`,e),I(s,_w(e,`Failed to load imagegen config. Please try again.`),!0)}}S();function C(){I(c,!1),I(d,!1),I(l,``),I(u,``),I(f,``),I(p,[],!0),I(h,``),I(a,``)}function w(){C(),I(c,!0),H(_).length===1&&I(l,H(_)[0].id,!0)}async function T(){if(!H(l)||!H(u).trim()||H(o))return;I(o,!0),I(a,``);let e=H(l);try{await Hd(H(l),H(u).trim()),C(),await S(),I(h,e,!0),I(f,``),I(p,[],!0),I(d,!0)}catch(e){I(a,e instanceof Error?e.message:`Failed to save`,!0)}finally{I(o,!1)}}async function E(e){I(o,!0),I(a,``);try{await Ud(e),H(i)?.startsWith(`${e}:`)&&I(i,null),await S()}catch(e){I(a,e instanceof Error?e.message:`Failed to remove`,!0)}finally{I(o,!1)}}async function ee(){if(H(f).trim()){I(m,!0);try{I(p,await qd(H(f).trim(),H(h)||void 0),!0)}catch(e){I(a,e instanceof Error?e.message:`Search failed`,!0)}finally{I(m,!1)}}}async function te(e){try{let t=[...H(r),e],n=H(r).length===0?e:void 0;await Kd(t,n),I(r,t,!0),n&&I(i,n,!0),I(d,!1),I(f,``),I(p,[],!0)}catch(e){I(a,e instanceof Error?e.message:`Failed to add model`,!0)}}async function ne(e){try{let t=H(r).filter(t=>t!==e);await Kd(t,H(i)===e?null:void 0),I(r,t,!0),H(i)===e&&I(i,null)}catch(e){I(a,e instanceof Error?e.message:`Failed to remove model`,!0)}}let D=F(``),O=F(!1);Tn(()=>{I(D,H(i)??``,!0)}),Tn(()=>{H(r).length>0&&I(O,!0)}),Tn(()=>{let e=H(D);H(O)&&(I(i,e||null,!0),Kd(H(r),e||null).catch(()=>{}))});var re={load:S},ie=cO(),ae=z(ie),k=e=>{var t=VD(),n=z(t),r=R(n,!0);A(n);var i=B(n,2);V(()=>q(r,H(s))),U(`click`,i,()=>S()),K(e,t)},oe=e=>{K(e,HD())},se=e=>{var t=$D(),n=z(t);Y(n,17,()=>H(g),e=>e.id,(e,t)=>{let n=P(()=>v(H(t).id));var r=YD(),i=R(r),a=R(i),s=R(a,!0);A(a);var c=B(a,2),l=R(c,!0);A(c);var u=B(c,2),m=e=>{K(e,UD())},g=e=>{K(e,WD())};J(u,e=>{H(t).entitlement?.state===`entitled`?e(m):H(t).entitlement?.state===`not_entitled`&&e(g,1)});var _=B(u,2),S=R(_,!0);A(_);var C=B(_,2);A(i);var w=B(i,2),T=e=>{var n=GD(),r=R(n,!0);A(n),V(()=>q(r,H(t).entitlement.reason)),K(e,n)};J(w,e=>{H(t).entitlement?.state===`not_entitled`&&H(t).entitlement.reason&&e(T)});var ee=B(w,2),te=R(ee),D=e=>{var t=qD();Y(t,20,()=>H(n),e=>e,(e,t)=>{var n=KD(),r=R(n),i=B(r);A(n),V(()=>q(r,`${t??``} `)),U(`click`,i,()=>ne(t)),K(e,n)}),A(t),K(e,t)},O=e=>{K(e,JD())};J(te,e=>{H(n).length>0?e(D):e(O,-1)});var re=B(te,2);A(ee),A(r),V((e,n,r)=>{q(s,H(t).id),q(l,e),_.disabled=n,q(S,r),C.disabled=H(o)},[()=>y(H(t).authMethod),()=>H(o)||b.has(H(t).id),()=>b.has(H(t).id)?`...`:`Check`]),U(`click`,_,()=>x(H(t).id)),U(`click`,C,()=>E(H(t).id)),U(`click`,re,()=>{I(h,H(t).id,!0),I(f,``),I(p,[],!0),I(d,!0)}),K(e,r)});var i=B(n,2),s=e=>{var t=XD();U(`click`,t,w),K(e,t)};J(i,e=>{H(_).length>0&&e(s)});var l=B(i,2),u=e=>{var t=ZD(),n=B(R(t),2);{let e=P(()=>H(r).map(e=>({id:e,label:e})));ww(n,{get items(){return H(e)},placeholder:`Search models...`,emptyLabel:`Select a model`,get value(){return H(D)},set value(e){I(D,e,!0)}})}j(2),A(t),K(e,t)};J(l,e=>{H(r).length>0&&e(u)});var m=B(l,2),S=e=>{var t=QD(),n=R(t,!0);A(t),V(()=>q(n,H(a))),K(e,t)};J(m,e=>{H(a)&&!H(c)&&!H(d)&&e(S)}),K(e,t)};J(ae,e=>{H(s)?e(k):H(n).length===0?e(oe,1):e(se,-1)});var ce=B(ae,2),le=e=>{$a(e,{onClose:C,size:`420px`,title:`Add imagegen provider`,children:(e,t)=>{var n=rO(),r=R(n),i=e=>{var t=tO(),n=R(t),r=R(n);r.value=r.__value=``,Y(B(r),17,()=>H(_),e=>e.id,(e,t)=>{var n=eO(),r=R(n,!0);A(n);var i={};V(()=>{q(r,H(t).id),i!==(i=H(t).id)&&(n.value=(n.__value=H(t).id)??``)}),K(e,n)}),A(n),A(t),Fi(n,()=>H(l),e=>I(l,e)),K(e,t)};J(r,e=>{H(_).length>1&&e(i)});var s=B(r,2),c=e=>{var t=nO(),n=R(t);Ki(n);var r=B(n,2),i=R(r,!0);A(r),A(t),V(e=>{r.disabled=e,q(i,H(o)?`...`:`Save`)},[()=>H(o)||!H(u).trim()]),Ir(`submit`,t,e=>{e.preventDefault(),T()}),aa(n,()=>H(u),e=>I(u,e)),K(e,t)};J(s,e=>{H(l)&&e(c)});var d=B(s,2),f=e=>{var t=QD(),n=R(t,!0);A(t),V(()=>q(n,H(a))),K(e,t)};J(d,e=>{H(a)&&e(f)}),A(n),K(e,n)},$$slots:{default:!0}})};J(ce,e=>{H(c)&&e(le)});var ue=B(ce,2),de=e=>{$a(e,{onClose:()=>{I(d,!1),I(f,``),I(p,[],!0)},size:`480px`,get title(){return`Add model — ${H(h)??``}`},children:(e,t)=>{var n=sO(),i=R(n),o=R(i);Ki(o);var s=B(o,2),c=R(s,!0);A(s),A(i);var l=B(i,2),u=e=>{var t=oO();Y(t,21,()=>H(p),e=>e.id,(e,t)=>{var n=aO(),i=R(n),a=R(i,!0);A(i);var o=B(i,2),s=e=>{var n=iO(),r=R(n,!0);A(n),V(()=>q(r,H(t).description)),K(e,n)};J(o,e=>{H(t).description&&e(s)}),A(n),V(e=>{n.disabled=e,q(a,H(t).id)},[()=>H(r).includes(H(t).id)]),U(`click`,n,()=>te(H(t).id)),K(e,n)}),A(t),K(e,t)};J(l,e=>{H(p).length>0&&e(u)});var d=B(l,2),h=e=>{var t=QD(),n=R(t,!0);A(t),V(()=>q(n,H(a))),K(e,t)};J(d,e=>{H(a)&&e(h)}),A(n),V(e=>{s.disabled=e,q(c,H(m)?`...`:`Search`)},[()=>H(m)||!H(f).trim()]),Ir(`submit`,i,e=>{e.preventDefault(),ee()}),aa(o,()=>H(f),e=>I(f,e)),K(e,n)},$$slots:{default:!0}})};return J(ue,e=>{H(d)&&e(de)}),K(e,ie),N(re)}Lr([`click`]);var uO=W(`<div class="error svelte-7kf7oa"> </div>`),dO=W(`<div class="system-card svelte-7kf7oa"><div class="system-info svelte-7kf7oa"><span class="system-label svelte-7kf7oa">Registered as</span> <span class="system-name svelte-7kf7oa"> </span></div> <button class="btn btn-reset svelte-7kf7oa"> </button></div>`),fO=W(`<div class="system-actions svelte-7kf7oa"><button class="btn btn-edit svelte-7kf7oa">Register</button> <button class="btn btn-edit svelte-7kf7oa">Login with key</button></div>`),pO=W(`<form class="system-form svelte-7kf7oa"><input class="system-input svelte-7kf7oa"/> <button type="submit" class="btn btn-save svelte-7kf7oa"> </button> <button type="button" class="btn btn-cancel svelte-7kf7oa">Cancel</button></form>`),mO=W(`<div class="system-card svelte-7kf7oa"><div class="system-info svelte-7kf7oa"><span class="system-label svelte-7kf7oa">Not registered</span></div> <!></div>`),hO=W(`<div class="settings svelte-7kf7oa"><div class="section svelte-7kf7oa"><div class="section-header svelte-7kf7oa"><span class="section-title svelte-7kf7oa">Name</span> <span class="section-subtitle svelte-7kf7oa">Displayed in the sidebar</span></div> <input type="text" class="system-input svelte-7kf7oa" placeholder="e.g. My Garden"/></div> <div class="section svelte-7kf7oa"><div class="section-header svelte-7kf7oa"><span class="section-title svelte-7kf7oa">Mind Limit</span> <span class="section-subtitle svelte-7kf7oa"> </span></div> <!> <!></div> <div class="section svelte-7kf7oa"><div class="section-header svelte-7kf7oa"><span class="section-title svelte-7kf7oa">Registration</span> <span class="section-subtitle svelte-7kf7oa">volute.systems for pages and email</span></div> <!> <!></div> <div class="section svelte-7kf7oa"><div class="section-header svelte-7kf7oa"><span class="section-title svelte-7kf7oa">AI Providers</span> <span class="section-subtitle svelte-7kf7oa">Authentication for minds and system AI features</span></div> <!></div> <div class="section svelte-7kf7oa"><div class="section-header svelte-7kf7oa"><span class="section-title svelte-7kf7oa">Image Generation</span> <span class="section-subtitle svelte-7kf7oa">Provider configuration for mind image generation</span></div> <!></div></div>`);function gO(e,t){M(t,!0);let n=F(L(Kf.localName??``));async function r(){let e=H(n).trim();try{await xd(e),Kf.localName=e||null}catch{I(n,Kf.localName??``,!0)}}let i=F(``),a=F(`none`),o=F(``),s=F(!1),c=F(``),l=F(``),u=F(!1),d,f=F(``),p=F(0),m=F(``),h=F(!1);ma(async()=>{d.load();try{let e=await Ld();I(c,e.spiritModel??``,!0),I(l,e.utilityModel??``,!0)}catch{}try{let e=await Sd();I(f,e.maxMinds==null?``:String(e.maxMinds),!0),I(p,e.count,!0),I(h,!0)}catch(e){I(m,e instanceof Error?e.message:`Failed to load mind limit`,!0)}I(u,!0)});async function g(){if(!H(h))return;I(m,``);let e=H(f).trim(),t=null;if(e!==``){let n=Number(e);if(!Number.isInteger(n)||n<1){I(m,`Enter a whole number of 1 or more, or leave blank for unlimited.`);return}t=n}try{let e=await Cd(t);I(f,e.maxMinds==null?``:String(e.maxMinds),!0),I(p,e.count,!0)}catch(e){I(m,e instanceof Error?e.message:`Failed to save limit`,!0)}}Tn(()=>{let e=H(c),t=H(l);H(u)&&Rd({spiritModel:e||null,utilityModel:t||null}).catch(()=>{})});async function _(){if(!(!H(o).trim()||H(s))){I(s,!0),I(i,``);try{Kf.systemName=(await(H(a)===`register`?wd:Td)(H(o).trim())).system,I(a,`none`),I(o,``)}catch(e){I(i,e instanceof Error?e.message:`${H(a)} failed`,!0)}finally{I(s,!1)}}}async function v(){I(s,!0),I(i,``);try{await Ed(),Kf.systemName=null}catch(e){I(i,e instanceof Error?e.message:`Logout failed`,!0)}finally{I(s,!1)}}var y=hO(),b=R(y),x=B(R(b),2);Ki(x),A(b);var S=B(b,2),C=R(S),w=B(R(C),2),T=R(w);A(w),A(C);var E=B(C,2);{let e=P(()=>!H(h));Xa(E,{type:`number`,min:`1`,step:`1`,style:`width:100%`,placeholder:`Unlimited`,get disabled(){return H(e)},onblur:g,onkeydown:e=>{e.key===`Enter`&&e.target.blur()},get value(){return H(f)},set value(e){I(f,e,!0)}})}var ee=B(E,2),te=e=>{var t=uO(),n=R(t,!0);A(t),V(()=>q(n,H(m))),K(e,t)};J(ee,e=>{H(m)&&e(te)}),A(S);var ne=B(S,2),D=B(R(ne),2),O=e=>{var t=dO(),n=R(t),r=B(R(n),2),i=R(r,!0);A(r),A(n);var a=B(n,2),o=R(a,!0);A(a),A(t),V(()=>{q(i,Kf.systemName),a.disabled=H(s),q(o,H(s)?`...`:`Disconnect`)}),U(`click`,a,v),K(e,t)},re=e=>{var t=mO(),n=B(R(t),2),r=e=>{var t=fO(),n=R(t),r=B(n,2);A(t),U(`click`,n,()=>{I(a,`register`),I(o,``),I(i,``)}),U(`click`,r,()=>{I(a,`login`),I(o,``),I(i,``)}),K(e,t)},c=e=>{var t=pO(),n=R(t);Ki(n);var r=B(n,2),c=R(r,!0);A(r);var l=B(r,2);A(t),V(e=>{Xi(n,`type`,H(a)===`login`?`password`:`text`),Xi(n,`placeholder`,H(a)===`register`?`Name on volute.systems`:`API key`),r.disabled=e,q(c,H(s)?`...`:H(a)===`register`?`Register`:`Login`)},[()=>H(s)||!H(o).trim()]),Ir(`submit`,t,e=>{e.preventDefault(),_()}),aa(n,()=>H(o),e=>I(o,e)),U(`click`,l,()=>{I(a,`none`),I(i,``)}),K(e,t)};J(n,e=>{H(a)===`none`?e(r):e(c,-1)}),A(t),K(e,t)};J(D,e=>{Kf.systemName?e(O):e(re,-1)});var ie=B(D,2),ae=e=>{var t=uO(),n=R(t,!0);A(t),V(()=>q(n,H(i))),K(e,t)};J(ie,e=>{H(i)&&e(ae)}),A(ne);var k=B(ne,2);ua(tT(B(R(k),2),{showModelDefaults:!0,get spiritModel(){return H(c)},set spiritModel(e){I(c,e,!0)},get utilityModel(){return H(l)},set utilityModel(e){I(l,e,!0)}}),e=>d=e,()=>d),A(k);var oe=B(k,2);lO(B(R(oe),2),{}),A(oe),A(y),V(()=>q(T,`Cap on total minds (${H(p)??``} in use). Blank = unlimited.`)),Ir(`blur`,x,r),U(`keydown`,x,e=>{e.key===`Enter`&&e.target.blur()}),aa(x,()=>H(n),e=>I(n,e)),K(e,y),N()}Lr([`keydown`,`click`]);var _O=W(`<button> </button>`),vO=W(`<span class="restart-error svelte-138znmo"> </span>`),yO=W(`<div class="spirit-error svelte-138znmo"> </div>`),bO=W(`<div class="spirit-sections svelte-138znmo"><!> <!> <!> <!> <!></div>`),xO=W(`<div class="settings-page svelte-138znmo"><div class="settings-header svelte-138znmo"><div class="tab-row svelte-138znmo"></div> <div class="restart-area svelte-138znmo"><!> <button class="restart-btn svelte-138znmo"> </button></div></div> <div class="settings-body svelte-138znmo"><!></div></div>`);function SO(e,t){M(t,!0);let n=[`settings`,`mind-defaults`,`prompts`,`skills`,`extensions`,`backups`,`users`,`spirit`],r={settings:`Settings`,"mind-defaults":`Mind Defaults`,prompts:`Prompt Library`,skills:`Skills`,extensions:`Extensions`,backups:`Backups`,users:`Users`,spirit:`Spirit`},i=F(`settings`),a=F(null),o=F(``),s=F(!1);async function c(){if(!H(s)){I(s,!0);try{I(a,await yu(Kf.spiritName??`volute`),!0)}catch(e){I(o,e instanceof Error?e.message:`Failed to load spirit`,!0)}}}Tn(()=>{H(i)===`spirit`&&c()});let l=F(!1),u=F(null);async function d(){I(l,!0),I(u,null);try{await yd()}catch(e){I(u,e instanceof Error?e.message:`Unknown error`,!0),console.warn(`Failed to restart daemon:`,e)}finally{I(l,!1)}}var f=xO(),p=R(f),m=R(p);Y(m,21,()=>n,ti,(e,t)=>{var n=_O();let a;var o=R(n,!0);A(n),V(()=>{a=X(n,1,`settings-tab svelte-138znmo`,null,a,{active:H(i)===H(t)}),q(o,r[H(t)])}),U(`click`,n,()=>I(i,H(t),!0)),K(e,n)}),A(m);var h=B(m,2),g=R(h),_=e=>{var t=vO(),n=R(t);A(t),V(()=>q(n,`Failed: ${H(u)??``}`)),K(e,t)};J(g,e=>{H(u)&&e(_)});var v=B(g,2),y=R(v,!0);A(v),A(h),A(p);var b=B(p,2),x=R(b),S=e=>{gO(e,{})},C=e=>{LE(e,{})},w=e=>{BD(e,{})},T=e=>{UE(e,{})},E=e=>{lE(e,{})},ee=e=>{tE(e,{})},te=e=>{ED(e,{get minds(){return Zf.minds}})},ne=e=>{var t=Kr(),n=z(t),r=e=>{var t=yO(),n=R(t,!0);A(t),V(()=>q(n,H(o))),K(e,t)},i=e=>{var t=bO(),n=R(t);Ax(n,{get mind(){return H(a)},onUpdated:c});var r=B(n,2);no(r,{title:`Model`,subtitle:`Cognition settings`});var i=B(r,2);hx(i,{get name(){return H(a).name},get template(){return H(a).template},hideBudget:!0});var o=B(i,2);sS(o,{get name(){return H(a).name}}),wx(B(o,2),{get name(){return H(a).name}}),A(t),K(e,t)};J(n,e=>{H(o)?e(r):H(a)&&e(i,1)}),K(e,t)};J(x,e=>{H(i)===`settings`?e(S):H(i)===`mind-defaults`?e(C,1):H(i)===`prompts`?e(w,2):H(i)===`skills`?e(T,3):H(i)===`extensions`?e(E,4):H(i)===`backups`?e(ee,5):H(i)===`users`?e(te,6):H(i)===`spirit`&&e(ne,7)}),A(b),A(f),V(()=>{v.disabled=H(l),q(y,H(l)?`Restarting...`:`Restart Daemon`)}),U(`click`,v,d),K(e,f),N()}Lr([`click`]);var CO=W(`<div class="app"><div class="loading svelte-1ocnzw1">Loading...</div></div>`),wO=W(`<div class="app full-height svelte-1ocnzw1"><!></div>`),TO=W(`<!> <!>`,1),EO=W(`<button class="sidebar-backdrop svelte-1ocnzw1" aria-label="Close sidebar"></button>`),DO=W(`<span class="crumb-sep svelte-1ocnzw1">/</span>`),OO=W(`<button class="crumb-link svelte-1ocnzw1"> </button>`),kO=W(`<span class="crumb-current svelte-1ocnzw1"> </span>`),AO=W(`<span class="header-active-dot svelte-1ocnzw1"></span>`),jO=W(`<span class="tab-icon svelte-1ocnzw1"></span>`),MO=W(`<button><!></button>`),NO=W(`<div class="mind-section-tabs svelte-1ocnzw1"></div>`),PO=W(`<button><span class="tab-icon svelte-1ocnzw1"></span></button>`),FO=W(`<div class="mind-section-tabs svelte-1ocnzw1"><button aria-label="History"><span class="tab-icon svelte-1ocnzw1"></span></button> <!></div>`),IO=W(`<img alt="" class="user-avatar-img svelte-1ocnzw1" loading="lazy" decoding="async"/>`),LO=W(`<div class="user-dropdown svelte-1ocnzw1" role="menu"><button class="user-dropdown-item svelte-1ocnzw1">Profile</button> <button class="user-dropdown-item svelte-1ocnzw1">Logout</button></div>`),RO=W(`<button class="panel-reopen svelte-1ocnzw1" title="Show sidebar"><!></button>`),zO=W(`<button class="right-panel-backdrop svelte-1ocnzw1" aria-label="Close panel"></button>`),BO=W(`<button class="panel-close svelte-1ocnzw1" title="Close"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-1ocnzw1"><path d="M4 4l8 8M12 4l-8 8"></path></svg></button> <!>`,1),VO=W(`<!> <div class="resize-handle right-resize-handle svelte-1ocnzw1" role="separator" aria-label="Resize panel"></div> <div><!></div>`,1),HO=W(`<div class="modal-scroll-body svelte-1ocnzw1"><!></div>`),UO=W(`<div class="modal-scroll-body svelte-1ocnzw1"><!> <!></div>`),WO=W(`<div class="shell svelte-1ocnzw1"><!> <div class="shell-body svelte-1ocnzw1"><div><button class="sidebar-header svelte-1ocnzw1"><span class="awake-dot svelte-1ocnzw1"></span> <span class="sidebar-title svelte-1ocnzw1"> </span></button> <!></div> <!> <div class="resize-handle svelte-1ocnzw1" role="separator" aria-label="Resize sidebar"></div> <div class="content-area svelte-1ocnzw1"><div><div class="page-header svelte-1ocnzw1"><button class="header-hamburger svelte-1ocnzw1">&#9776;</button> <div class="page-breadcrumbs svelte-1ocnzw1"><!> <!></div> <!> <div class="header-actions svelte-1ocnzw1"><div class="user-menu-anchor svelte-1ocnzw1"><button class="user-avatar-btn svelte-1ocnzw1"><!></button> <!></div> <!></div></div> <div class="main-frame svelte-1ocnzw1"><!></div></div> <!></div></div></div> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!>`,1);function GO(e,t){M(t,!0);let n=F(L(Nm(Zf.extensions))),r=[{key:`chat`,label:`Chat`,icon:`<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3h12v8H5l-3 3V3z"/></svg>`}],i=P(()=>[...r,...Zf.extensions.flatMap(e=>(e.mindSections??[]).map(t=>({key:`ext:${e.id}:${t.id}`,label:t.label,icon:e.icon,defaultPath:t.defaultPath})))]),a=P(()=>H(n).kind===`mind`?H(n).name:null),o=P(()=>H(n).kind===`mind`?H(n).section??`chat`:null),s=P(()=>H(n).kind!==`mind`&&H(n).kind!==`channel`),c=P(()=>H(s)?H(n).kind===`system-history`?`system-history`:H(n).kind===`extension`?`ext:${H(n).extensionId}`:null:null),l=F(null),u=F(null),d=F(null),f=F(!1),p=F(L([])),m=F(!1),h=F(!1),g=F(!1),_=F(!1),v=F(null);Tn(()=>{I(h,H(g),!0)});let y=P(()=>{let e=H(n);if(e.kind===`channel`)return Zf.conversations.find(t=>t.type===`channel`&&t.channel_name===e.slug)?.id??null;if(e.kind===`mind`&&(!e.section||e.section===`chat`)){let t=e.name;return Zf.conversations.find(e=>{if(e.type===`channel`)return!1;let n=e.participants??[];return n.length===2&&n.some(e=>e.username===t)})?.id??null}return null});Tn(()=>{ap(H(y)),I(m,!1)});let b=P(()=>{let e=H(n);if(e.kind===`channel`)return Zf.conversations.find(t=>t.type===`channel`&&t.channel_name===e.slug)}),x=P(()=>{let e=H(n);if(e.kind===`mind`)return Zf.minds.find(t=>t.name===e.name)}),S=P(()=>H(x)?.mindType===`spirit`?r:H(i)),C=P(()=>H(l)===`mind`&&H(u)?H(u):H(x)??void 0),w=P(()=>!!(H(l)===`mind`&&H(u))),T=P(()=>!(!H(C)||!H(w)&&H(n).kind===`mind`)),E=P(()=>!!H(C)),ee=P(()=>H(n).kind===`mind`&&!!H(C)||H(n).kind===`channel`&&!!H(b)||!!(H(l)===`mind`&&H(u))),te=P(()=>H(ee)&&(!H(h)||H(g)&&H(m))),ne=P(()=>H(n).kind===`channel`?H(b)?.type===`channel`&&H(b).channel_name?`#${H(b).channel_name}`:H(n).slug:``),D=P(()=>{let e=H(n),t=[];if(e.kind===`mind`){if(t.push({label:`system`,action:ye}),t.push({label:e.name,action:()=>Fm(`/minds/${e.name}`)}),e.section&&e.section!==`chat`){let n=e.section;if(n.startsWith(`ext:`)){let e=n.split(`:`);n=e[2]??e[1]}t.push({label:n,action:e.subpath?()=>Fm(`/minds/${e.name}/${n}`):void 0}),e.subpath&&t.push({label:e.subpath})}}else if(e.kind===`channel`)t.push({label:H(ne)});else if(e.kind===`extension`){t.push({label:`system`,action:ye});let n=Zf.extensions.find(t=>t.id===e.extensionId),r=n?.systemSection?.urlPatterns?.[0];if(t.push({label:n?.name??e.extensionId,action:e.path?()=>Fm(r??`/ext/${e.extensionId}`):void 0}),e.path){let n=e.path.split(`/`);for(let e=0;e<n.length;e++){let i=e===n.length-1,a=n.slice(0,e+1).join(`/`);t.push({label:n[e],action:!i&&r?()=>Fm(`${r}/${a}`):void 0})}}}else e.kind===`system-history`?(t.push({label:`system`,action:ye}),t.push({label:`timeline`})):t.push({label:`system`});return t}),O=P(()=>{let e=H(n);return e.kind===`mind`?Qf.has(e.name):e.kind===`channel`&&(Zf.conversations.find(t=>t.type===`channel`&&t.channel_name===e.slug)?.participants??[]).some(e=>e.userType===`mind`&&Qf.has(e.username))}),re=F(!1),ie=P(()=>gw({checked:Kf.checked,setupComplete:Kf.setupComplete,hasAccount:!!Kf.setupProgress?.hasAccount,needsConnection:H(re),loggedIn:!!Kf.user}));async function ae(){await Yf(),Yp()&&(await rm(),I(re,!0))}Tn(()=>{document.title=Kf.localName||`volute`});function k(e,t){function n(){for(let t=26;t>=15&&(e.style.setProperty(`--title-size`,`${t}px`),!(e.scrollWidth<=e.clientWidth));t--);}return n(),document.fonts?.ready.then(n),{update:n}}ma(()=>{tm().then(e=>{e?Jf():(I(re,!0),Kf.checked=!0)}).catch(()=>{I(re,!0),Kf.checked=!0});let e=window.matchMedia(`(max-width: 1024px)`);I(g,e.matches,!0);let t=e=>{I(g,e.matches,!0)};e.addEventListener(`change`,t);let r=e=>{if(e.origin===window.location.origin&&e.data?.type===`navigate`&&typeof e.data.path==`string`){let t=H(n);if(!(t.kind===`extension`||t.kind===`mind`&&t.section?.startsWith(`ext:`)))return;Fm(e.data.path)}};return window.addEventListener(`message`,r),()=>{e.removeEventListener(`change`,t),window.removeEventListener(`message`,r)}}),Tn(()=>{if(Kf.user)return lp(),()=>up()}),Tn(()=>{Kf.user&&Ff()}),Tn(()=>{Kf.user&&Yl().then(e=>{I(v,e?.avatar?`/api/auth/avatars/${e.avatar}`:null,!0)}).catch(e=>{console.warn(`Failed to fetch user profile:`,e)})}),Tn(()=>{if(Zf.extensions.length>0){let e=Nm(Zf.extensions);e.kind===`extension`&&H(n).kind===`home`&&I(n,e,!0),e.kind===`mind`&&H(n).kind===`mind`&&e.section?.startsWith(`ext:`)&&H(n).section&&!H(n).section.startsWith(`ext:`)&&e.section.endsWith(`:${H(n).section}`)&&I(n,e,!0)}});let oe=F(!1);Tn(()=>{let e=()=>{I(oe,!0),I(n,Nm(Zf.extensions),!0)};window.addEventListener(`popstate`,e);let t=e=>{let t=e.target.closest(`a`);if(!t)return;let n=t.getAttribute(`href`);!n||n.startsWith(`http`)||n.startsWith(`//`)||t.target===`_blank`||e.metaKey||e.ctrlKey||e.shiftKey||(e.preventDefault(),Fm(n))};return document.addEventListener(`click`,t),()=>{window.removeEventListener(`popstate`,e),document.removeEventListener(`click`,t)}}),Tn(()=>{let e=Pm(H(n),Zf.extensions),t=window.location.pathname+window.location.search;t!==e&&(H(n).kind===`home`&&Zf.extensions.length===0&&t!==`/`||(H(oe)?window.history.replaceState(null,``,e):window.history.pushState(null,``,e))),I(oe,!1)}),Tn(()=>{if(H(n).kind!==`channel`||!H(n).slug.startsWith(`__conv:`))return;let e=H(n).slug.replace(`__conv:`,``),t=Zf.conversations.find(t=>t.id===e);if(t)if(t.type===`channel`&&t.channel_name)I(n,{kind:`channel`,slug:t.channel_name},!0);else{let e=t.participants?.find(e=>e.userType===`mind`&&e.username!==Kf.user?.username);e&&I(n,{kind:`mind`,name:e.username},!0)}});function se(){I(m,!0)}function ce(){H(w)&&(I(l,null),I(u,null)),I(m,!1),I(h,!0)}function le(){H(g)?I(m,!H(m)):I(h,!H(h))}function ue(e){I(u,e,!0),I(l,`mind`),I(m,!0),I(h,!1)}function de(e){let t=Zf.conversations.find(t=>t.id===e);if(t?.type===`channel`&&t.channel_name)I(n,{kind:`channel`,slug:t.channel_name},!0);else{let e=t?.participants?.find(e=>e.userType===`mind`&&e.username!==Kf.user?.username);e&&I(n,{kind:`mind`,name:e.username},!0)}ap(e),_p(),H(l)===`mind`&&(I(l,null),I(u,null))}async function fe(e){try{await Ou(e)}catch(e){console.error(`Failed to delete conversation:`,e);return}lp(),H(y)===e&&I(n,{kind:`home`},!0)}function pe(e){ap(e),lp()}function me(e){I(l,null),I(u,null),_p(),I(n,{kind:`mind`,name:e},!0)}function he(e){I(l,null),I(u,null),_p(),lp(),e.type===`channel`&&e.channel_name&&I(n,{kind:`channel`,slug:e.channel_name},!0)}function ge(e){I(l,null),I(u,null),_p(),I(n,{kind:`mind`,name:e},!0)}function _e(e){Xf(e)}function ve(e){mp(e),H(y)===e&&I(n,{kind:`home`},!0)}function ye(){I(n,{kind:`home`},!0)}function be(e){I(n,{kind:`mind`,name:e},!0),_p()}function xe(e,t,r){I(n,{kind:`mind`,name:e,section:t,subpath:r},!0)}function Se(e,t){I(n,{kind:`extension`,extensionId:e,path:t??``},!0),_p()}function Ce(e){I(f,!0),e.currentTarget.setPointerCapture(e.pointerId),document.body.style.userSelect=`none`,document.body.style.cursor=`col-resize`}function we(e){if(!H(f))return;let t=e.currentTarget.parentElement;if(!t)return;let n=t.getBoundingClientRect();yp.width=Math.max(180,Math.min(400,e.clientX-n.left))}function Te(){H(f)&&(I(f,!1),document.body.style.userSelect=``,document.body.style.cursor=``,bp())}let Ee=F(!1);function De(e){I(Ee,!0),e.currentTarget.setPointerCapture(e.pointerId),document.body.style.userSelect=`none`,document.body.style.cursor=`col-resize`}function Oe(e){if(!H(Ee))return;let t=e.currentTarget.parentElement;if(!t)return;let n=t.getBoundingClientRect();Sp.width=Math.max(240,Math.min(600,n.right-e.clientX))}function ke(){H(Ee)&&(I(Ee,!1),document.body.style.userSelect=``,document.body.style.cursor=``,Cp())}function Ae(e){if(e.key===`Escape`){if(H(_)){I(_,!1);return}if(H(m)){ce();return}if(hp.sidebarOpen){_p();return}}}function je(e){H(_)&&!e.target.closest(`.user-menu-anchor`)&&I(_,!1)}var Me=Kr();Ir(`keydown`,$t,Ae),Ir(`click`,en,je);var Ne=z(Me),Pe=e=>{K(e,CO())},Fe=e=>{var t=wO();NT(R(t),{onComplete:e=>{Kf.setupComplete=!0,lp(),requestAnimationFrame(()=>{I(n,{kind:`mind`,name:e},!0)})}}),A(t),K(e,t)},Ie=e=>{var t=wO();lm(R(t),{onConnected:e=>{I(re,!1),Xf(e)}}),A(t),K(e,t)},j=e=>{var t=wO(),n=R(t);{let e=P(()=>!Kf.setupComplete&&!!Kf.setupProgress?.hasAccount);mm(n,{onAuth:_e,get resumeSetup(){return H(e)}})}A(t),K(e,t)},Le=e=>{var t=WO(),r=z(t),i=R(r),u=e=>{var t=TO(),n=z(t);hw(n,{}),NC(B(n,2),{onOpenSettings:()=>I(l,`systemSettings`)}),K(e,t)};J(i,e=>{Kf.user.role===`admin`&&e(u)});var f=B(i,2),y=R(f);let x,w;var ne=R(y),re=B(R(ne),2),ie=R(re,!0);A(re),Si(re,(e,t)=>k?.(e,t),()=>({text:Kf.localName||`volute`,width:yp.width})),A(ne);var oe=B(ne,2);{let e=P(()=>Zf.conversations.filter(e=>!fp.has(e.id)));vb(oe,{get minds(){return Zf.minds},get conversations(){return H(e)},get selection(){return H(n)},get username(){return Kf.user.username},onHome:ye,onSelectMind:be,onSelectMindSection:(e,t)=>{I(d,e,!0),t===`history`?I(l,`mindHistory`):t===`files`?I(l,`mindFiles`):t===`settings`?I(l,`mindSettings`):t===`variants`?I(l,`mindVariants`):t===`events`?I(l,`mindEvents`):t===`context`&&I(l,`mindContext`)},onSelectSystemSection:e=>{e===`settings`?I(l,`systemSettings`):e===`logs`&&I(l,`systemLogs`)},onSelectConversation:de,onDeleteConversation:fe,onBrowseChannels:()=>I(l,`channelBrowser`),onOpenMind:ue,onSeed:()=>I(l,`seed`),onHideConversation:ve})}A(y);var _e=B(y,2),Ee=e=>{var t=EO();U(`click`,t,function(...e){_p?.apply(this,e)}),K(e,t)};J(_e,e=>{hp.sidebarOpen&&e(Ee)});var Ae=B(_e,2),je=B(Ae,2),Me=R(je);let Ne;var Pe=R(Me),Fe=R(Pe),Ie=B(Fe,2),j=R(Ie);Y(j,17,()=>H(D),ti,(e,t,n)=>{var r=TO(),i=z(r),a=e=>{K(e,DO())};J(i,e=>{n>0&&e(a)});var o=B(i,2),s=e=>{var n=OO(),r=R(n,!0);A(n),V(()=>q(r,H(t).label)),U(`click`,n,function(...e){H(t).action?.apply(this,e)}),K(e,n)},c=e=>{var n=kO(),r=R(n,!0);A(n),V(()=>q(r,H(t).label)),K(e,n)};J(o,e=>{H(t).action&&n<H(D).length-1?e(s):e(c,-1)}),K(e,r)});var Le=B(j,2),Re=e=>{K(e,AO())};J(Le,e=>{H(O)&&e(Re)}),A(Ie);var ze=B(Ie,2),Be=e=>{var t=NO();Y(t,21,()=>H(S),ti,(e,t)=>{var n=MO();let r;var i=R(n),s=e=>{var n=jO();ui(n,()=>Pl(H(t).icon),!0),A(n),K(e,n)};J(i,e=>{H(t).icon&&e(s)}),A(n),Si(n,(e,t)=>Il?.(e,t),()=>({text:H(t).label,position:`bottom`})),V(()=>r=X(n,1,`mind-section-tab svelte-1ocnzw1`,null,r,{active:H(o)===H(t).key})),U(`click`,n,()=>xe(H(a),H(t).key,H(t).defaultPath)),K(e,n)}),A(t),K(e,t)},Ve=e=>{var t=FO(),r=R(t);let i;var a=R(r);ui(a,()=>wo.history,!0),A(a),A(r),Si(r,(e,t)=>Il?.(e,t),()=>({text:`History`,position:`bottom`})),Y(B(r,2),17,()=>Zf.extensions,ti,(e,t)=>{var n=Kr(),r=z(n),i=e=>{var n=PO();let r;var i=R(n);ui(i,()=>Pl(H(t).icon??`<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 2h5v5H2zM9 2h5v5H9zM2 9h5v5H2zM9 9h5v5H9z"/></svg>`),!0),A(i),A(n),Si(n,(e,t)=>Il?.(e,t),()=>({text:H(t).systemSection.label,position:`bottom`})),V(()=>r=X(n,1,`mind-section-tab svelte-1ocnzw1`,null,r,{active:H(c)===`ext:${H(t).id}`})),U(`click`,n,()=>Se(H(t).id)),K(e,n)};J(r,e=>{H(t).systemSection&&e(i)}),K(e,n)}),A(t),V(()=>i=X(r,1,`mind-section-tab svelte-1ocnzw1`,null,i,{active:H(c)===`system-history`})),U(`click`,r,()=>{I(n,{kind:`system-history`},!0)}),K(e,t)};J(ze,e=>{H(a)?e(Be):H(s)&&e(Ve,1)});var He=B(ze,2),Ue=R(He),M=R(Ue),N=R(M),We=e=>{var t=IO();V(()=>Xi(t,`src`,H(v))),K(e,t)},Ge=e=>{qa(e,{kind:`brain`})};J(N,e=>{H(v)?e(We):e(Ge,-1)}),A(M);var Ke=B(M,2),qe=e=>{var t=LO(),n=R(t),r=B(n,2);A(t),U(`click`,n,()=>{I(_,!1),I(l,`userSettings`)}),U(`click`,r,()=>{I(_,!1),ae()}),K(e,t)};J(Ke,e=>{H(_)&&e(qe)}),A(Ue);var Je=B(Ue,2),Ye=e=>{var t=RO();qa(R(t),{kind:`history`}),A(t),U(`click`,t,le),K(e,t)};J(Je,e=>{H(ee)&&H(h)&&e(Ye)}),A(He),A(Pe);var Xe=B(Pe,2),Ze=R(Xe);{let e=P(()=>H(ee)?se:void 0);ky(Ze,{get selection(){return H(n)},get minds(){return Zf.minds},get conversations(){return Zf.conversations},get username(){return Kf.user.username},onConversationId:pe,onSelectConversation:de,onOpenMind:ue,onSeed:()=>I(l,`seed`),onTypingNames:e=>{I(p,e,!0)},get onToggleSidebar(){return gp},get onOpenRightPanel(){return H(e)}})}A(Xe),A(Me);var Qe=B(Me,2),$e=e=>{var t=VO(),n=z(t),r=e=>{var t=zO();U(`click`,t,ce),K(e,t)};J(n,e=>{H(g)&&H(m)&&e(r)});var i=B(n,2),a=B(i,2);let o,s;var c=R(a),u=e=>{var t=BO(),n=z(t);ei(B(n,2),()=>H(C).name,e=>{{let t=P(()=>H(E)?()=>{I(d,H(C).name,!0),I(l,`mindHistory`)}:void 0),n=P(()=>H(T)?()=>me(H(C).name):void 0);ax(e,{get mind(){return H(C)},get onExpand(){return H(t)},get onChat(){return H(n)}})}}),U(`click`,n,ce),K(e,t)},f=e=>{Wp(e,{get conversation(){return H(b)},get minds(){return Zf.minds},get typingNames(){return H(p)},onOpenMind:ue,onClose:ce})};J(c,e=>{H(C)?e(u):H(b)?.type===`channel`&&e(f,1)}),A(a),V(()=>{o=X(a,1,`right-panel svelte-1ocnzw1`,null,o,{"right-panel-open":H(g)&&H(m)}),s=Z(a,``,s,{width:`${Sp.width??``}px`})}),U(`pointerdown`,i,De),U(`pointermove`,i,Oe),U(`pointerup`,i,ke),Ir(`pointercancel`,i,ke),K(e,t)};J(Qe,e=>{H(te)&&e($e)}),A(je),A(f),A(r);var et=B(r,2),tt=e=>{IS(e,{onClose:()=>I(l,null),onJoined:he})};J(et,e=>{H(l)===`channelBrowser`&&e(tt)});var nt=B(et,2),rt=e=>{SC(e,{onClose:()=>I(l,null),onCreated:ge})};J(nt,e=>{H(l)===`seed`&&e(rt)});var it=B(nt,2),at=e=>{jC(e,{onClose:()=>I(l,null)})};J(it,e=>{H(l)===`userSettings`&&e(at)});var ot=B(it,2),st=e=>{$a(e,{get title(){return`History — ${H(d)??``}`},onClose:()=>{I(l,null),I(d,null)},children:(e,t)=>{var n=HO(),r=R(n);{let e=P(()=>Zf.minds.find(e=>e.name===H(d))?.status);xy(r,{get name(){return H(d)},get mindStatus(){return H(e)}})}A(n),K(e,n)},$$slots:{default:!0}})};J(ot,e=>{H(l)===`mindHistory`&&H(d)&&e(st)});var ct=B(ot,2),lt=e=>{$a(e,{get title(){return`Files — ${H(d)??``}`},onClose:()=>{I(l,null),I(d,null)},children:(e,t)=>{var n=UO(),r=R(n);AS(r,{get name(){return H(d)}}),XC(B(r,2),{get name(){return H(d)}}),A(n),K(e,n)},$$slots:{default:!0}})};J(ct,e=>{H(l)===`mindFiles`&&H(d)&&e(lt)});var ut=B(ct,2),dt=e=>{let t=P(()=>Zf.minds.find(e=>e.name===H(d)));var n=Kr(),r=z(n),i=e=>{$a(e,{get title(){return`Settings — ${H(d)??``}`},onClose:()=>{I(l,null),I(d,null)},children:(e,n)=>{uS(e,{get mind(){return H(t)}})},$$slots:{default:!0}})};J(r,e=>{H(t)&&e(i)}),K(e,n)};J(ut,e=>{H(l)===`mindSettings`&&H(d)&&e(dt)});var ft=B(ut,2),pt=e=>{$a(e,{get title(){return`Variants — ${H(d)??``}`},onClose:()=>{I(l,null),I(d,null)},children:(e,t)=>{var n=HO();CS(R(n),{get name(){return H(d)}}),A(n),K(e,n)},$$slots:{default:!0}})};J(ft,e=>{H(l)===`mindVariants`&&H(d)&&e(pt)});var mt=B(ft,2),ht=e=>{$a(e,{get title(){return`Events — ${H(d)??``}`},onClose:()=>{I(l,null),I(d,null)},children:(e,t)=>{var n=HO();jb(R(n),{get name(){return H(d)}}),A(n),K(e,n)},$$slots:{default:!0}})};J(mt,e=>{H(l)===`mindEvents`&&H(d)&&e(ht)});var gt=B(mt,2),_t=e=>{dC(e,{get mindName(){return H(d)},onClose:()=>{I(l,null),I(d,null)}})};J(gt,e=>{H(l)===`mindContext`&&H(d)&&e(_t)});var vt=B(gt,2),yt=e=>{$a(e,{title:`Settings`,onClose:()=>I(l,null),children:(e,t)=>{SO(e,{})},$$slots:{default:!0}})};J(vt,e=>{H(l)===`systemSettings`&&e(yt)});var bt=B(vt,2),xt=e=>{$a(e,{title:`System Logs`,onClose:()=>I(l,null),children:(e,t)=>{var n=HO();uw(R(n),{}),A(n),K(e,n)},$$slots:{default:!0}})};J(bt,e=>{H(l)===`systemLogs`&&e(xt)}),V(()=>{x=X(y,1,`sidebar svelte-1ocnzw1`,null,x,{"sidebar-open":hp.sidebarOpen}),w=Z(y,``,w,{width:`${yp.width??``}px`}),q(ie,Kf.localName||`volute`),Ne=X(Me,1,`main-column svelte-1ocnzw1`,null,Ne,{"has-right-panel":H(te)}),Xi(M,`title`,Kf.user?.username)}),U(`click`,ne,ye),U(`pointerdown`,Ae,Ce),U(`pointermove`,Ae,we),U(`pointerup`,Ae,Te),Ir(`pointercancel`,Ae,Te),U(`click`,Fe,function(...e){gp?.apply(this,e)}),U(`click`,M,()=>{I(_,!H(_))}),K(e,t)};J(Ne,e=>{H(ie)===`loading`?e(Pe):H(ie)===`setup`?e(Fe,1):H(ie)===`connection`?e(Ie,2):H(ie)===`login`?e(j,3):Kf.user&&e(Le,4)}),K(e,Me),N()}Lr([`click`,`pointerdown`,`pointermove`,`pointerup`]),Jr(GO,{target:document.getElementById(`root`)});