mirror of
https://github.com/samvallad33/vestige.git
synced 2026-04-26 01:06:21 +02:00
feat: Vestige v2.0.0 "Cognitive Leap" — 3D dashboard, HyDE search, WebSocket events
The biggest release in Vestige history. Complete visual and cognitive overhaul. Dashboard: - SvelteKit 2 + Three.js 3D neural visualization at localhost:3927/dashboard - 7 interactive pages: Graph, Memories, Timeline, Feed, Explore, Intentions, Stats - WebSocket event bus with 16 event types, real-time 3D animations - Bloom post-processing, GPU instanced rendering, force-directed layout - Dream visualization mode, FSRS retention curves, command palette (Cmd+K) - Keyboard shortcuts, responsive mobile layout, PWA installable - Single binary deployment via include_dir! (22MB) Engine: - HyDE query expansion (intent classification + 3-5 semantic variants + centroid) - fastembed 5.11 with optional Nomic v2 MoE + Qwen3 reranker + Metal GPU - Emotional memory module (#29) - Criterion benchmark suite Backend: - Axum WebSocket at /ws with heartbeat + event broadcast - 7 new REST endpoints for cognitive operations - Event emission from MCP tools via shared broadcast channel - CORS for SvelteKit dev mode Distribution: - GitHub issue templates (bug report, feature request) - CHANGELOG with comprehensive v2.0 release notes - README updated with dashboard docs, architecture diagram, comparison table 734 tests passing, zero warnings, 22MB release binary. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
26cee040a5
commit
c2d28f3433
321 changed files with 32695 additions and 4727 deletions
3
apps/dashboard/build/_app/immutable/nodes/0.CVv5sZN_.js
Normal file
3
apps/dashboard/build/_app/immutable/nodes/0.CVv5sZN_.js
Normal file
File diff suppressed because one or more lines are too long
BIN
apps/dashboard/build/_app/immutable/nodes/0.CVv5sZN_.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/0.CVv5sZN_.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/nodes/0.CVv5sZN_.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/0.CVv5sZN_.js.gz
Normal file
Binary file not shown.
1
apps/dashboard/build/_app/immutable/nodes/1.wR9SFDr_.js
Normal file
1
apps/dashboard/build/_app/immutable/nodes/1.wR9SFDr_.js
Normal file
|
|
@ -0,0 +1 @@
|
|||
import{a as h,f as g}from"../chunks/wmwKEafM.js";import{i as l}from"../chunks/CtRgAcWZ.js";import{p as v,f as d,t as _,a as x,c as s,r as o,e as $}from"../chunks/DleE0ac1.js";import{s as p}from"../chunks/8PSwG_AU.js";import{s as k,p as m}from"../chunks/rHGvVkdq.js";const b={get error(){return m.error},get status(){return m.status}};k.updated.check;const f=b;var E=g("<h1> </h1> <p> </p>",1);function A(i,c){v(c,!1),l();var t=E(),r=d(t),n=s(r,!0);o(r);var a=$(r,2),u=s(a,!0);o(a),_(()=>{var e;p(n,f.status),p(u,(e=f.error)==null?void 0:e.message)}),h(i,t),x()}export{A as component};
|
||||
BIN
apps/dashboard/build/_app/immutable/nodes/1.wR9SFDr_.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/1.wR9SFDr_.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/nodes/1.wR9SFDr_.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/1.wR9SFDr_.js.gz
Normal file
Binary file not shown.
1
apps/dashboard/build/_app/immutable/nodes/10.MRR5NpnA.js
Normal file
1
apps/dashboard/build/_app/immutable/nodes/10.MRR5NpnA.js
Normal file
File diff suppressed because one or more lines are too long
BIN
apps/dashboard/build/_app/immutable/nodes/10.MRR5NpnA.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/10.MRR5NpnA.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/nodes/10.MRR5NpnA.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/10.MRR5NpnA.js.gz
Normal file
Binary file not shown.
1
apps/dashboard/build/_app/immutable/nodes/11.DwFmilUf.js
Normal file
1
apps/dashboard/build/_app/immutable/nodes/11.DwFmilUf.js
Normal file
|
|
@ -0,0 +1 @@
|
|||
import{a as l,f as v}from"../chunks/wmwKEafM.js";import{o as pe}from"../chunks/DZf5toYK.js";import{p as ce,d as b,h as me,g as e,a as ue,e as r,c as a,s as c,r as t,t as g}from"../chunks/DleE0ac1.js";import{d as _e,a as K,s as m}from"../chunks/8PSwG_AU.js";import{i as P}from"../chunks/BHs8FnOA.js";import{e as h,i as R}from"../chunks/BsRos8Kb.js";import{s as Q}from"../chunks/D6n3ggvw.js";import{b as fe}from"../chunks/DYdHPHRa.js";import{a as xe}from"../chunks/BcuCGYSa.js";import{N as U}from"../chunks/CHfZNXj4.js";var be=v('<div class="h-16 bg-surface/50 rounded-lg animate-pulse"></div>'),ge=v('<div class="space-y-4"></div>'),he=v('<div class="text-center py-20 text-dim"><p>No memories in the selected time range.</p></div>'),ye=v('<div class="w-2 h-2 rounded-full"></div>'),we=v('<span class="text-xs text-muted"> </span>'),ke=v('<div class="flex items-start gap-2 text-sm"><div class="w-2 h-2 mt-1.5 rounded-full flex-shrink-0"></div> <div class="flex-1 min-w-0"><span class="text-dim line-clamp-1"> </span></div> <span class="text-xs text-muted flex-shrink-0"> </span></div>'),Te=v('<div class="mt-3 pt-3 border-t border-subtle/20 space-y-2"></div>'),je=v('<div class="relative pl-14"><div class="absolute left-4 top-3 w-5 h-5 rounded-full border-2 border-synapse bg-abyss flex items-center justify-center"><div class="w-2 h-2 rounded-full bg-synapse"></div></div> <button class="w-full text-left p-4 bg-surface/40 border border-subtle/20 rounded-lg hover:border-synapse/30 transition-all"><div class="flex items-center justify-between"><div><span class="text-sm text-bright font-medium"> </span> <span class="text-xs text-dim ml-2"> </span></div> <div class="flex gap-1"><!> <!></div></div> <!></button></div>'),Ne=v('<div class="relative"><div class="absolute left-6 top-0 bottom-0 w-px bg-subtle/30"></div> <div class="space-y-4"></div></div>'),Oe=v('<div class="p-6 max-w-4xl mx-auto space-y-6"><div class="flex items-center justify-between"><h1 class="text-xl text-bright font-semibold">Timeline</h1> <select class="px-3 py-2 bg-surface border border-subtle/40 rounded-lg text-dim text-sm"><option>7 days</option><option>14 days</option><option>30 days</option><option>90 days</option></select></div> <!></div>');function Re(V,W){ce(W,!0);let u=b(me([])),y=b(!0),w=b(14),k=b(null);pe(()=>Y());async function Y(){c(y,!0);try{const s=await xe.timeline(e(w),500);c(u,s.timeline,!0)}catch{c(u,[],!0)}finally{c(y,!1)}}var T=Oe(),j=a(T),_=r(a(j),2),N=a(_);N.value=N.__value=7;var O=r(N);O.value=O.__value=14;var S=r(O);S.value=S.__value=30;var q=r(S);q.value=q.__value=90,t(_),t(j);var X=r(j,2);{var Z=s=>{var d=ge();h(d,20,()=>Array(7),R,(f,x)=>{var i=be();l(f,i)}),t(d),l(s,d)},ee=s=>{var d=he();l(s,d)},te=s=>{var d=Ne(),f=r(a(d),2);h(f,21,()=>e(u),x=>x.date,(x,i)=>{var D=je(),E=r(a(D),2),$=a(E),A=a($),C=a(A),ae=a(C,!0);t(C);var z=r(C,2),se=a(z);t(z),t(A);var B=r(A,2),G=a(B);h(G,17,()=>e(i).memories.slice(0,10),R,(n,o)=>{var p=ye();g(()=>Q(p,`background: ${(U[e(o).nodeType]||"#6b7280")??""}; opacity: ${.3+e(o).retentionStrength*.7}`)),l(n,p)});var re=r(G,2);{var ie=n=>{var o=we(),p=a(o);t(o),g(()=>m(p,`+${e(i).memories.length-10}`)),l(n,o)};P(re,n=>{e(i).memories.length>10&&n(ie)})}t(B),t($);var oe=r($,2);{var le=n=>{var o=Te();h(o,21,()=>e(i).memories,R,(p,F)=>{var L=ke(),H=a(L),M=r(H,2),I=a(M),ve=a(I,!0);t(I),t(M);var J=r(M,2),de=a(J);t(J),t(L),g(ne=>{Q(H,`background: ${(U[e(F).nodeType]||"#6b7280")??""}`),m(ve,e(F).content),m(de,`${ne??""}%`)},[()=>(e(F).retentionStrength*100).toFixed(0)]),l(p,L)}),t(o),l(n,o)};P(oe,n=>{e(k)===e(i).date&&n(le)})}t(E),t(D),g(()=>{m(ae,e(i).date),m(se,`${e(i).count??""} memories`)}),K("click",E,()=>c(k,e(k)===e(i).date?null:e(i).date,!0)),l(x,D)}),t(f),t(d),l(s,d)};P(X,s=>{e(y)?s(Z):e(u).length===0?s(ee,1):s(te,!1)})}t(T),K("change",_,Y),fe(_,()=>e(w),s=>c(w,s)),l(V,T),ue()}_e(["change","click"]);export{Re as component};
|
||||
BIN
apps/dashboard/build/_app/immutable/nodes/11.DwFmilUf.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/11.DwFmilUf.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/nodes/11.DwFmilUf.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/11.DwFmilUf.js.gz
Normal file
Binary file not shown.
1
apps/dashboard/build/_app/immutable/nodes/2.VW3Ep--L.js
Normal file
1
apps/dashboard/build/_app/immutable/nodes/2.VW3Ep--L.js
Normal file
|
|
@ -0,0 +1 @@
|
|||
import{c as m,a as n}from"../chunks/wmwKEafM.js";import{f as p}from"../chunks/DleE0ac1.js";import{s as e}from"../chunks/CVDMn5X_.js";function c(r,a){var o=m(),t=p(o);e(t,()=>a.children),n(r,o)}export{c as component};
|
||||
BIN
apps/dashboard/build/_app/immutable/nodes/2.VW3Ep--L.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/2.VW3Ep--L.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/nodes/2.VW3Ep--L.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/2.VW3Ep--L.js.gz
Normal file
Binary file not shown.
3
apps/dashboard/build/_app/immutable/nodes/3.DlJxvrxN.js
Normal file
3
apps/dashboard/build/_app/immutable/nodes/3.DlJxvrxN.js
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
import{a as u,f as m}from"../chunks/wmwKEafM.js";import{o as xe}from"../chunks/DZf5toYK.js";import{p as ge,t as g,a as fe,s as n,c as t,d as h,g as e,e as i,r as a}from"../chunks/DleE0ac1.js";import{d as be,a as D,s as d}from"../chunks/8PSwG_AU.js";import{i as $}from"../chunks/BHs8FnOA.js";import{e as _e,i as he}from"../chunks/BsRos8Kb.js";import{s as ye}from"../chunks/BK028jHP.js";import{s as we}from"../chunks/D6n3ggvw.js";import{s as De,a as $e}from"../chunks/M1z6VHZC.js";import{G as ke}from"../chunks/CVZIBdRK.js";import{a as f}from"../chunks/BcuCGYSa.js";import{e as Se}from"../chunks/kVvujbiQ.js";var je=m('<div class="h-full flex items-center justify-center"><div class="text-center space-y-4"><div class="w-16 h-16 mx-auto rounded-full border-2 border-synapse/30 border-t-synapse animate-spin"></div> <p class="text-dim text-sm">Loading memory graph...</p></div></div>'),Ce=m('<div class="h-full flex items-center justify-center"><div class="text-center space-y-4 max-w-md px-8"><div class="text-4xl">◎</div> <h2 class="text-xl text-bright">Your Mind Awaits</h2> <p class="text-dim text-sm"> </p></div></div>'),Fe=m("<div> </div>"),Me=m('<span class="px-2 py-0.5 rounded text-xs bg-surface text-dim"> </span>'),ze=m("<div> </div>"),Ae=m('<div class="absolute right-0 top-0 h-full w-96 bg-abyss/95 backdrop-blur-xl border-l border-subtle/30 p-6 overflow-y-auto z-20"><div class="flex justify-between items-start mb-4"><h3 class="text-bright text-sm font-semibold">Memory Detail</h3> <button class="text-dim hover:text-text text-lg">×</button></div> <div class="space-y-4"><div class="flex gap-2"><span class="px-2 py-0.5 rounded text-xs bg-synapse/20 text-synapse-glow"> </span> <!></div> <div class="text-sm text-text leading-relaxed whitespace-pre-wrap"> </div> <div><div class="flex justify-between text-xs text-dim mb-1"><span>Retention</span> <span> </span></div> <div class="h-2 bg-surface rounded-full overflow-hidden"><div class="h-full rounded-full transition-all duration-500"></div></div></div> <div class="text-xs text-dim space-y-1"><div> </div> <div> </div> <!></div> <div class="flex gap-2"><button class="flex-1 px-3 py-2 rounded bg-recall/20 text-recall text-xs hover:bg-recall/30 transition">Promote</button> <button class="flex-1 px-3 py-2 rounded bg-decay/20 text-decay text-xs hover:bg-decay/30 transition">Demote</button></div></div></div>'),Ge=m('<div class="h-full relative"><!> <div class="absolute top-4 left-4 flex gap-2 z-10"><button> </button></div> <div class="absolute top-4 right-4 z-10 text-xs text-dim backdrop-blur-sm bg-abyss/60 rounded-lg px-3 py-2 border border-subtle/20"><!></div> <!></div>');function Je(B,E){ge(E,!0);const H=()=>$e(Se,"$eventFeed",J),[J,K]=De();let v=h(null),s=h(null),I=h(!0),k=h(""),x=h(!1);xe(async()=>{try{n(v,await f.graph({max_nodes:150,depth:3}),!0)}catch{n(k,"No memories yet. Start using Vestige to see your memory graph.")}finally{n(I,!1)}});async function O(){n(x,!0);try{const r=await f.dream();n(v,await f.graph({max_nodes:150,depth:3}),!0)}catch{}finally{n(x,!1)}}async function Q(r){try{n(s,await f.memories.get(r),!0)}catch{n(s,null)}}var S=Ge(),P=t(S);{var U=r=>{var o=je();u(r,o)},W=r=>{var o=Ce(),l=t(o),y=i(t(l),4),w=t(y,!0);a(y),a(l),a(o),g(()=>d(w,e(k))),u(r,o)},X=r=>{ke(r,{get nodes(){return e(v).nodes},get edges(){return e(v).edges},get centerId(){return e(v).center_id},get events(){return H()},get isDreaming(){return e(x)},onSelect:Q})};$(P,r=>{e(I)?r(U):e(k)?r(W,1):e(v)&&r(X,2)})}var j=i(P,2),b=t(j),Z=t(b,!0);a(b),a(j);var C=i(j,2),ee=t(C);{var te=r=>{var o=Fe(),l=t(o);a(o),g(()=>d(l,`${e(v).nodeCount??""} nodes / ${e(v).edgeCount??""} edges`)),u(r,o)};$(ee,r=>{e(v)&&r(te)})}a(C);var ae=i(C,2);{var re=r=>{var o=Ae(),l=t(o),y=i(t(l),2);a(l);var w=i(l,2),F=t(w),M=t(F),se=t(M,!0);a(M);var ie=i(M,2);_e(ie,17,()=>e(s).tags,he,(c,p)=>{var _=Me(),me=t(_,!0);a(_),g(()=>d(me,e(p))),u(c,_)}),a(F);var z=i(F,2),oe=t(z,!0);a(z);var A=i(z,2),G=t(A),T=i(t(G),2),de=t(T);a(T),a(G);var V=i(G,2),ve=t(V);a(V),a(A);var L=i(A,2),N=t(L),ne=t(N);a(N);var R=i(N,2),le=t(R);a(R);var ce=i(R,2);{var pe=c=>{var p=ze(),_=t(p);a(p),g(()=>d(_,`Source: ${e(s).source??""}`)),u(c,p)};$(ce,c=>{e(s).source&&c(pe)})}a(L);var Y=i(L,2),q=t(Y),ue=i(q,2);a(Y),a(w),a(o),g((c,p)=>{d(se,e(s).nodeType),d(oe,e(s).content),d(de,`${c??""}%`),we(ve,`width: ${e(s).retentionStrength*100}%; background: ${e(s).retentionStrength>.7?"#10b981":e(s).retentionStrength>.4?"#f59e0b":"#ef4444"}`),d(ne,`Created: ${p??""}`),d(le,`Reviews: ${e(s).reviewCount??0??""}`)},[()=>(e(s).retentionStrength*100).toFixed(1),()=>new Date(e(s).createdAt).toLocaleDateString()]),D("click",y,()=>n(s,null)),D("click",q,()=>e(s)&&f.memories.promote(e(s).id)),D("click",ue,()=>e(s)&&f.memories.demote(e(s).id)),u(r,o)};$(ae,r=>{e(s)&&r(re)})}a(S),g(()=>{b.disabled=e(x),ye(b,1,`px-4 py-2 rounded-lg bg-dream/20 border border-dream/40 text-dream-glow text-sm
|
||||
hover:bg-dream/30 transition-all disabled:opacity-50 backdrop-blur-sm
|
||||
${e(x)?"glow-dream animate-pulse-glow":""}`),d(Z,e(x)?"◎ Dreaming...":"◎ Dream")}),D("click",b,O),u(B,S),fe(),K()}be(["click"]);export{Je as component};
|
||||
BIN
apps/dashboard/build/_app/immutable/nodes/3.DlJxvrxN.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/3.DlJxvrxN.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/nodes/3.DlJxvrxN.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/3.DlJxvrxN.js.gz
Normal file
Binary file not shown.
6
apps/dashboard/build/_app/immutable/nodes/4.JZRJcAXm.js
Normal file
6
apps/dashboard/build/_app/immutable/nodes/4.JZRJcAXm.js
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
import{a as p,f as u,c as ze}from"../chunks/wmwKEafM.js";import{p as Ae,d as I,h as Pe,g as e,a as Qe,c as r,e as a,s as f,r as t,i as qe,t as y,f as ge,u as se,j as Be}from"../chunks/DleE0ac1.js";import{d as De,a as q,s as n}from"../chunks/8PSwG_AU.js";import{i as S}from"../chunks/BHs8FnOA.js";import{e as oe,i as ie}from"../chunks/BsRos8Kb.js";import{b as ne,r as ye}from"../chunks/ChQRIhGP.js";import{s as de}from"../chunks/BK028jHP.js";import{s as Ke}from"../chunks/D6n3ggvw.js";import{a as X}from"../chunks/BcuCGYSa.js";var Re=u('<button><span class="text-xl"> </span> <span class="font-medium"> </span> <span class="text-[10px] text-muted text-center"> </span></button>'),Ue=u('<div class="p-3 bg-synapse/10 border border-synapse/30 rounded-lg"><div class="text-[10px] text-synapse-glow mb-1 uppercase tracking-wider">Source</div> <p class="text-sm text-text"> </p> <div class="flex gap-2 mt-1.5 text-[10px] text-muted"><span> </span> <span> </span></div></div>'),Ve=u('<div class="p-3 bg-dream/10 border border-dream/30 rounded-lg"><div class="text-[10px] text-dream-glow mb-1 uppercase tracking-wider">Target</div> <p class="text-sm text-text"> </p> <div class="flex gap-2 mt-1.5 text-[10px] text-muted"><span> </span> <span> </span></div></div>'),Ge=u(`<div class="space-y-3"><label class="text-xs text-dim font-medium">Target Memory <span class="text-muted"> </span></label> <div class="flex gap-2"><input type="text" placeholder="Search for the target memory..." class="flex-1 px-4 py-2.5 bg-surface border border-subtle/40 rounded-lg text-text text-sm
|
||||
placeholder:text-muted focus:outline-none focus:border-dream/60 transition"/> <button class="px-4 py-2.5 bg-dream/20 border border-dream/40 text-dream-glow text-sm rounded-lg hover:bg-dream/30 transition">Find</button></div></div> <!>`,1),He=u('<div class="text-center py-8 text-dim"><div class="text-lg animate-pulse mb-2">◎</div> <p> </p></div>'),Je=u('<span class="px-1.5 py-0.5 bg-deep rounded"> </span>'),Le=u("<span> </span>"),We=u("<span> </span>"),Xe=u("<span> </span>"),Ye=u('<span class="text-synapse-glow"> </span>'),Ze=u('<div class="p-3 bg-surface/40 border border-subtle/20 rounded-lg flex items-start gap-3 hover:border-subtle/40 transition"><div class="w-6 h-6 rounded-full bg-synapse/15 text-synapse-glow text-xs flex items-center justify-center flex-shrink-0 mt-0.5"></div> <div class="flex-1 min-w-0"><p class="text-sm text-text line-clamp-2"> </p> <div class="flex flex-wrap gap-3 mt-1.5 text-xs text-muted"><!> <!> <!> <!> <!></div></div></div>'),et=u('<div class="space-y-4"><div class="flex items-center justify-between"><h2 class="text-sm text-bright font-semibold"> </h2></div> <div class="space-y-2"></div></div>'),tt=u('<div class="text-center py-8 text-dim"><div class="text-3xl mb-3 opacity-20">◬</div> <p>No connections found for this query.</p></div>'),rt=u('<div><div class="text-xs text-dim mb-1.5 capitalize"> </div> <div class="h-2 bg-deep rounded-full overflow-hidden"><div></div></div> <div class="text-xs text-muted mt-1"> </div></div>'),at=u('<div class="grid grid-cols-4 gap-3"></div>'),st=u('<div class="mt-4 p-4 bg-surface/30 border border-subtle/20 rounded-lg"><div class="flex items-center gap-3 mb-4"><span class="text-3xl text-bright font-bold"> </span> <span> </span></div> <!></div>'),ot=u(`<div class="p-6 max-w-5xl mx-auto space-y-8"><h1 class="text-xl text-bright font-semibold">Explore Connections</h1> <div class="grid grid-cols-3 gap-2"></div> <div class="space-y-3"><label class="text-xs text-dim font-medium">Source Memory</label> <div class="flex gap-2"><input type="text" placeholder="Search for a memory to explore from..." class="flex-1 px-4 py-2.5 bg-surface border border-subtle/40 rounded-lg text-text text-sm
|
||||
placeholder:text-muted focus:outline-none focus:border-synapse/60 transition"/> <button class="px-4 py-2.5 bg-synapse/20 border border-synapse/40 text-synapse-glow text-sm rounded-lg hover:bg-synapse/30 transition">Find</button></div></div> <!> <!> <!> <div class="pt-8 border-t border-subtle/20"><h2 class="text-lg text-bright font-semibold mb-4">Importance Scorer</h2> <p class="text-xs text-muted mb-3">4-channel neuroscience scoring: novelty, arousal, reward, attention</p> <textarea placeholder="Paste any text to score its importance..." class="w-full h-24 px-4 py-3 bg-surface border border-subtle/40 rounded-lg text-text text-sm
|
||||
placeholder:text-muted resize-none focus:outline-none focus:border-synapse/60 transition"></textarea> <button class="mt-2 px-4 py-2 bg-dream/20 border border-dream/40 text-dream-glow text-sm rounded-lg hover:bg-dream/30 transition">Score</button> <!></div></div>`);function mt(he,we){Ae(we,!0);let V=I(""),G=I(""),F=I(null),C=I(null),B=I(Pe([])),$=I("associations"),O=I(!1),H=I(""),D=I(null);const le={associations:{icon:"◎",desc:"Spreading activation — find related memories via graph traversal"},chains:{icon:"⟿",desc:"Build reasoning path from source to target memory"},bridges:{icon:"⬡",desc:"Find connecting memories between two concepts"}};async function ve(){if(e(V).trim()){f(O,!0);try{const s=await X.search(e(V),1);s.results.length>0&&(f(F,s.results[0],!0),await Y())}catch{}finally{f(O,!1)}}}async function ce(){if(e(G).trim()){f(O,!0);try{const s=await X.search(e(G),1);s.results.length>0&&(f(C,s.results[0],!0),e(F)&&await Y())}catch{}finally{f(O,!1)}}}async function Y(){if(e(F)){f(O,!0);try{const s=(e($)==="chains"||e($)==="bridges")&&e(C)?e(C).id:void 0,o=await X.explore(e(F).id,e($),s);f(B,o.results||o.nodes||o.chain||o.bridges||[],!0)}catch{f(B,[],!0)}finally{f(O,!1)}}}async function Se(){e(H).trim()&&f(D,await X.importance(e(H)),!0)}function ke(s){f($,s,!0),e(F)&&Y()}var Z=ot(),ee=a(r(Z),2);oe(ee,20,()=>["associations","chains","bridges"],ie,(s,o)=>{var d=Re(),b=r(d),h=r(b,!0);t(b);var _=a(b,2),c=r(_,!0);t(_);var i=a(_,2),g=r(i,!0);t(i),t(d),y(w=>{de(d,1,`flex flex-col items-center gap-1 p-3 rounded-lg text-sm transition
|
||||
${e($)===o?"bg-synapse/15 text-synapse-glow border border-synapse/40":"bg-surface/30 text-dim border border-subtle/20 hover:border-subtle/40"}`),n(h,le[o].icon),n(c,w),n(g,le[o].desc)},[()=>o.charAt(0).toUpperCase()+o.slice(1)]),q("click",d,()=>ke(o)),p(s,d)}),t(ee);var te=a(ee,2),pe=a(r(te),2),J=r(pe);ye(J);var Fe=a(J,2);t(pe),t(te);var xe=a(te,2);{var Te=s=>{var o=Ue(),d=a(r(o),2),b=r(d,!0);t(d);var h=a(d,2),_=r(h),c=r(_,!0);t(_);var i=a(_,2),g=r(i);t(i),t(h),t(o),y((w,z)=>{n(b,w),n(c,e(F).nodeType),n(g,`${z??""}% retention`)},[()=>e(F).content.slice(0,200),()=>(e(F).retentionStrength*100).toFixed(0)]),p(s,o)};S(xe,s=>{e(F)&&s(Te)})}var ue=a(xe,2);{var $e=s=>{var o=Ge(),d=ge(o),b=r(d),h=a(r(b)),_=r(h);t(h),t(b);var c=a(b,2),i=r(c);ye(i);var g=a(i,2);t(c),t(d);var w=a(d,2);{var z=m=>{var E=Ve(),x=a(r(E),2),K=r(x,!0);t(x);var M=a(x,2),k=r(M),A=r(k,!0);t(k);var T=a(k,2),P=r(T);t(T),t(M),t(E),y((Q,j)=>{n(K,Q),n(A,e(C).nodeType),n(P,`${j??""}% retention`)},[()=>e(C).content.slice(0,200),()=>(e(C).retentionStrength*100).toFixed(0)]),p(m,E)};S(w,m=>{e(C)&&m(z)})}y(()=>n(_,`(for ${e($)??""})`)),q("keydown",i,m=>m.key==="Enter"&&ce()),ne(i,()=>e(G),m=>f(G,m)),q("click",g,ce),p(s,o)};S(ue,s=>{(e($)==="chains"||e($)==="bridges")&&s($e)})}var me=a(ue,2);{var Ee=s=>{var o=ze(),d=ge(o);{var b=c=>{var i=He(),g=a(r(i),2),w=r(g);t(g),t(i),y(()=>n(w,`Exploring ${e($)??""}...`)),p(c,i)},h=c=>{var i=et(),g=r(i),w=r(g),z=r(w);t(w),t(g);var m=a(g,2);oe(m,21,()=>e(B),ie,(E,x,K)=>{var M=Ze(),k=r(M);k.textContent=K+1;var A=a(k,2),T=r(A),P=r(T,!0);t(T);var Q=a(T,2),j=r(Q);{var L=l=>{var v=Je(),N=r(v,!0);t(v),y(()=>n(N,e(x).nodeType)),p(l,v)};S(j,l=>{e(x).nodeType&&l(L)})}var R=a(j,2);{var ae=l=>{var v=Le(),N=r(v);t(v),y(U=>n(N,`Score: ${U??""}`),[()=>Number(e(x).score).toFixed(3)]),p(l,v)};S(R,l=>{e(x).score&&l(ae)})}var W=a(R,2);{var Ie=l=>{var v=We(),N=r(v);t(v),y(U=>n(N,`Similarity: ${U??""}`),[()=>Number(e(x).similarity).toFixed(3)]),p(l,v)};S(W,l=>{e(x).similarity&&l(Ie)})}var fe=a(W,2);{var je=l=>{var v=Xe(),N=r(v);t(v),y(U=>n(N,`${U??""}% retention`),[()=>(Number(e(x).retention)*100).toFixed(0)]),p(l,v)};S(fe,l=>{e(x).retention&&l(je)})}var Ce=a(fe,2);{var Oe=l=>{var v=Ye(),N=r(v,!0);t(v),y(()=>n(N,e(x).connectionType)),p(l,v)};S(Ce,l=>{e(x).connectionType&&l(Oe)})}t(Q),t(A),t(M),y(()=>n(P,e(x).content)),p(E,M)}),t(m),t(i),y(()=>n(z,`${e(B).length??""} Connections Found`)),p(c,i)},_=c=>{var i=tt();p(c,i)};S(d,c=>{e(O)?c(b):e(B).length>0?c(h,1):c(_,!1)})}p(s,o)};S(me,s=>{e(F)&&s(Ee)})}var be=a(me,2),re=a(r(be),4);qe(re);var _e=a(re,2),Me=a(_e,2);{var Ne=s=>{const o=se(()=>e(D).channels),d=se(()=>Number(e(D).composite||e(D).compositeScore||0));var b=st(),h=r(b),_=r(h),c=r(_,!0);t(_);var i=a(_,2),g=r(i,!0);t(i),t(h);var w=a(h,2);{var z=m=>{var E=at();oe(E,21,()=>Object.entries(e(o)),ie,(x,K)=>{var M=se(()=>Be(e(K),2));let k=()=>e(M)[0],A=()=>e(M)[1];var T=rt(),P=r(T),Q=r(P,!0);t(P);var j=a(P,2),L=r(j);t(j);var R=a(j,2),ae=r(R,!0);t(R),t(T),y(W=>{n(Q,k()),de(L,1,`h-full rounded-full transition-all duration-500
|
||||
${k()==="novelty"?"bg-synapse":k()==="arousal"?"bg-dream":k()==="reward"?"bg-recall":"bg-amber-400"}`),Ke(L,`width: ${A()*100}%`),n(ae,W)},[()=>A().toFixed(2)]),p(x,T)}),t(E),p(m,E)};S(w,m=>{e(o)&&m(z)})}t(b),y(m=>{n(c,m),de(i,1,`px-2 py-1 rounded text-xs ${e(d)>.6?"bg-recall/20 text-recall border border-recall/30":"bg-surface text-dim border border-subtle/30"}`),n(g,e(d)>.6?"SAVE":"SKIP")},[()=>e(d).toFixed(2)]),p(s,b)};S(Me,s=>{e(D)&&s(Ne)})}t(be),t(Z),q("keydown",J,s=>s.key==="Enter"&&ve()),ne(J,()=>e(V),s=>f(V,s)),q("click",Fe,ve),ne(re,()=>e(H),s=>f(H,s)),q("click",_e,Se),p(he,Z),Qe()}De(["click","keydown"]);export{mt as component};
|
||||
BIN
apps/dashboard/build/_app/immutable/nodes/4.JZRJcAXm.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/4.JZRJcAXm.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/nodes/4.JZRJcAXm.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/4.JZRJcAXm.js.gz
Normal file
Binary file not shown.
2
apps/dashboard/build/_app/immutable/nodes/5.CJ3qOnwc.js
Normal file
2
apps/dashboard/build/_app/immutable/nodes/5.CJ3qOnwc.js
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
import{a as c,f as l}from"../chunks/wmwKEafM.js";import{i as z}from"../chunks/CtRgAcWZ.js";import{p as B,t as $,a as G,e as i,c as a,r,g as o}from"../chunks/DleE0ac1.js";import{d as K,a as Q,s as m}from"../chunks/8PSwG_AU.js";import{i as D}from"../chunks/BHs8FnOA.js";import{e as X,i as Z}from"../chunks/BsRos8Kb.js";import{s as h}from"../chunks/D6n3ggvw.js";import{s as ee,a as te}from"../chunks/M1z6VHZC.js";import{w as re,e as ae}from"../chunks/kVvujbiQ.js";import{E as x}from"../chunks/CHfZNXj4.js";var se=l('<div class="text-center py-20 text-dim"><div class="text-4xl mb-4">◉</div> <p>Waiting for cognitive events...</p> <p class="text-sm text-muted mt-2">Events appear here in real-time as Vestige thinks.</p></div>'),oe=l('<span class="text-xs text-muted"> </span>'),ie=l(`<div class="flex items-start gap-3 p-3 bg-surface/40 border border-subtle/15 rounded-lg
|
||||
hover:border-subtle/30 transition-all duration-200"><div class="w-6 h-6 rounded flex items-center justify-center text-xs flex-shrink-0"> </div> <div class="flex-1 min-w-0"><div class="flex items-center gap-2 mb-0.5"><span class="text-xs font-medium"> </span> <!></div> <p class="text-sm text-dim"> </p></div></div>`),ne=l('<div class="space-y-2"></div>'),de=l('<div class="p-6 max-w-4xl mx-auto space-y-6"><div class="flex items-center justify-between"><h1 class="text-xl text-bright font-semibold">Live Feed</h1> <div class="flex gap-3"><span class="text-dim text-sm"> </span> <button class="text-xs text-muted hover:text-text transition">Clear</button></div></div> <!></div>');function ye(F,M){B(M,!1);const _=()=>te(ae,"$eventFeed",k),[k,N]=ee();function P(t){return new Date(t).toLocaleTimeString()}function E(t){return{MemoryCreated:"+",MemoryUpdated:"~",MemoryDeleted:"×",MemoryPromoted:"↑",MemoryDemoted:"↓",SearchPerformed:"◎",DreamStarted:"◈",DreamProgress:"◈",DreamCompleted:"◈",ConsolidationStarted:"◉",ConsolidationCompleted:"◉",RetentionDecayed:"↘",ConnectionDiscovered:"━",ActivationSpread:"◬",ImportanceScored:"◫",Heartbeat:"♡"}[t]||"·"}function T(t){const e=t.data;switch(t.type){case"MemoryCreated":return`New ${e.node_type}: "${String(e.content_preview).slice(0,60)}..."`;case"SearchPerformed":return`Searched "${e.query}" → ${e.result_count} results (${e.duration_ms}ms)`;case"DreamStarted":return`Dream started with ${e.memory_count} memories`;case"DreamCompleted":return`Dream complete: ${e.connections_found} connections, ${e.insights_generated} insights (${e.duration_ms}ms)`;case"ConsolidationStarted":return"Consolidation cycle started";case"ConsolidationCompleted":return`Consolidated ${e.nodes_processed} nodes, ${e.decay_applied} decayed (${e.duration_ms}ms)`;case"ConnectionDiscovered":return`Connection: ${String(e.connection_type)} (weight: ${Number(e.weight).toFixed(2)})`;case"ImportanceScored":return`Scored ${Number(e.composite_score).toFixed(2)}: "${String(e.content_preview).slice(0,50)}..."`;case"MemoryPromoted":return`Promoted → ${(Number(e.new_retention)*100).toFixed(0)}% retention`;case"MemoryDemoted":return`Demoted → ${(Number(e.new_retention)*100).toFixed(0)}% retention`;default:return JSON.stringify(e).slice(0,100)}}z();var f=de(),g=a(f),S=i(a(g),2),y=a(S),I=a(y);r(y);var L=i(y,2);r(S),r(g);var O=i(g,2);{var j=t=>{var e=se();c(t,e)},R=t=>{var e=ne();X(e,5,_,Z,(V,s)=>{var p=ie(),v=a(p),q=a(v,!0);r(v);var C=i(v,2),b=a(C),u=a(b),A=a(u,!0);r(u);var H=i(u,2);{var J=n=>{var d=oe(),W=a(d,!0);r(d),$(Y=>m(W,Y),[()=>P(String(o(s).data.timestamp))]),c(n,d)};D(H,n=>{o(s).data.timestamp&&n(J)})}r(b);var w=i(b,2),U=a(w,!0);r(w),r(C),r(p),$((n,d)=>{h(p,`border-left: 3px solid ${(x[o(s).type]||"#6b7280")??""}`),h(v,`background: ${(x[o(s).type]||"#6b7280")??""}20; color: ${(x[o(s).type]||"#6b7280")??""}`),m(q,n),h(u,`color: ${(x[o(s).type]||"#6b7280")??""}`),m(A,o(s).type),m(U,d)},[()=>E(o(s).type),()=>T(o(s))]),c(V,p)}),r(e),c(t,e)};D(O,t=>{_().length===0?t(j):t(R,!1)})}r(f),$(()=>m(I,`${_().length??""} events`)),Q("click",L,()=>re.clearEvents()),c(F,f),G(),N()}K(["click"]);export{ye as component};
|
||||
BIN
apps/dashboard/build/_app/immutable/nodes/5.CJ3qOnwc.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/5.CJ3qOnwc.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/nodes/5.CJ3qOnwc.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/5.CJ3qOnwc.js.gz
Normal file
Binary file not shown.
5
apps/dashboard/build/_app/immutable/nodes/6.BbuG7uIt.js
Normal file
5
apps/dashboard/build/_app/immutable/nodes/6.BbuG7uIt.js
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
import{a as h,f as w}from"../chunks/wmwKEafM.js";import{o as Ue}from"../chunks/DZf5toYK.js";import{p as we,c as a,e as r,G as ke,r as t,t as S,g as e,a as De,u as ce,s as b,d as z,f as Ve}from"../chunks/DleE0ac1.js";import{s as i,d as Ye,a as M}from"../chunks/8PSwG_AU.js";import{i as O}from"../chunks/BHs8FnOA.js";import{e as pe,i as ue}from"../chunks/BsRos8Kb.js";import{s as p,b as Ze,r as He}from"../chunks/ChQRIhGP.js";import{s as Je}from"../chunks/BK028jHP.js";import{s as Se}from"../chunks/D6n3ggvw.js";import{b as Ke}from"../chunks/DYdHPHRa.js";import{s as Oe,a as We}from"../chunks/M1z6VHZC.js";import{G as Xe}from"../chunks/CVZIBdRK.js";import{p as he}from"../chunks/D-x7U94i.js";import{a as Z}from"../chunks/BcuCGYSa.js";import{e as et}from"../chunks/kVvujbiQ.js";var tt=w('<div class="flex items-center gap-1 text-[10px]"><span class="text-muted"> </span> <span> </span></div>'),at=w('<div class="space-y-2"><svg class="w-full"><line x1="4" stroke="#2a2a5e" stroke-width="0.5" stroke-dasharray="2,4"></line><line x1="4" stroke="#ef444430" stroke-width="0.5" stroke-dasharray="2,4"></line><path fill="none" stroke="#6366f1" stroke-width="2" stroke-linecap="round"></path><path fill="url(#curveGrad)" opacity="0.15"></path><circle cx="4" r="3"></circle><defs><linearGradient id="curveGrad" x1="0" y1="0" x2="0" y2="1"><stop offset="0%" stop-color="#6366f1"></stop><stop offset="100%" stop-color="#6366f100"></stop></linearGradient></defs></svg> <div class="flex gap-2 flex-wrap"></div></div>');function rt(W,f){we(f,!0);let $=he(f,"width",3,240),u=he(f,"height",3,80);function E(n){return f.stability<=0?0:Math.exp(-n/f.stability)}let x=ce(()=>()=>{const n=[],_=Math.max(f.stability*3,30),m=4,j=$()-m*2,T=u()-m*2;for(let v=0;v<=50;v++){const R=v/50*_,C=E(R),U=m+v/50*j,K=m+(1-C)*T;n.push(`${v===0?"M":"L"}${U.toFixed(1)},${K.toFixed(1)}`)}return n.join(" ")}),o=ce(()=>[{label:"Now",days:0,value:f.retention},{label:"1d",days:1,value:E(1)},{label:"7d",days:7,value:E(7)},{label:"30d",days:30,value:E(30)}]);function P(n){return n>.7?"#10b981":n>.4?"#f59e0b":"#ef4444"}var A=at(),l=a(A),k=a(l),F=r(k),G=r(F),H=r(G),J=r(H);ke(),t(l);var Q=r(l,2);pe(Q,21,()=>e(o),ue,(n,_)=>{var m=tt(),j=a(m),T=a(j);t(j);var v=r(j,2),R=a(v);t(v),t(m),S((C,U)=>{i(T,`${e(_).label??""}:`),Se(v,`color: ${C??""}`),i(R,`${U??""}%`)},[()=>P(e(_).value),()=>(e(_).value*100).toFixed(0)]),h(n,m)}),t(Q),t(A),S((n,_,m)=>{p(l,"width",$()),p(l,"height",u()),p(l,"viewBox",`0 0 ${$()??""} ${u()??""}`),p(k,"y1",4+(u()-8)*.5),p(k,"x2",$()-4),p(k,"y2",4+(u()-8)*.5),p(F,"y1",4+(u()-8)*.8),p(F,"x2",$()-4),p(F,"y2",4+(u()-8)*.8),p(G,"d",n),p(H,"d",`${_??""} L${$()-4},${u()-4} L4,${u()-4} Z`),p(J,"cy",4+(1-f.retention)*(u()-8)),p(J,"fill",m)},[()=>e(x)(),()=>e(x)(),()=>P(f.retention)]),h(W,A),De()}var st=w('<div class="h-full flex items-center justify-center"><div class="text-center space-y-4"><div class="w-16 h-16 mx-auto rounded-full border-2 border-synapse/30 border-t-synapse animate-spin"></div> <p class="text-dim text-sm">Loading memory graph...</p></div></div>'),ot=w('<div class="h-full flex items-center justify-center"><div class="text-center space-y-4 max-w-md px-8"><div class="text-5xl opacity-30">◎</div> <h2 class="text-xl text-bright">Your Mind Awaits</h2> <p class="text-dim text-sm"> </p></div></div>'),it=w('<span> </span> <span class="mx-2 text-subtle">·</span> <span> </span> <span class="mx-2 text-subtle">·</span> <span> </span>',1),nt=w('<span class="px-2 py-0.5 rounded text-xs bg-surface text-dim"> </span>'),dt=w('<div><div class="flex justify-between text-xs text-dim mb-0.5"><span> </span> <span> </span></div> <div class="h-1.5 bg-surface rounded-full overflow-hidden"><div class="h-full rounded-full transition-all duration-500"></div></div></div>'),lt=w("<div> </div>"),vt=w(`<div class="absolute right-0 top-0 h-full w-96 bg-abyss/95 backdrop-blur-xl border-l border-subtle/30 p-6 overflow-y-auto z-20
|
||||
transition-transform duration-300"><div class="flex justify-between items-start mb-4"><h3 class="text-bright text-sm font-semibold">Memory Detail</h3> <button class="text-dim hover:text-text text-lg leading-none">×</button></div> <div class="space-y-4"><div class="flex gap-2 flex-wrap"><span class="px-2 py-0.5 rounded text-xs bg-synapse/20 text-synapse-glow"> </span> <!></div> <div class="text-sm text-text leading-relaxed whitespace-pre-wrap max-h-64 overflow-y-auto"> </div> <div class="space-y-2"></div> <div><div class="text-xs text-dim mb-1 font-medium">Retention Forecast</div> <!></div> <div class="text-xs text-muted space-y-1"><div> </div> <div> </div> <!> <div> </div></div> <div class="flex gap-2 pt-2"><button class="flex-1 px-3 py-2 rounded bg-recall/20 text-recall text-xs hover:bg-recall/30 transition">↑ Promote</button> <button class="flex-1 px-3 py-2 rounded bg-decay/20 text-decay text-xs hover:bg-decay/30 transition">↓ Demote</button></div> <a href="/explore" class="block text-center px-3 py-2 rounded bg-dream/10 text-dream-glow text-xs hover:bg-dream/20 transition border border-dream/20">◬ Explore Connections</a></div></div>`),ct=w(`<div class="h-full relative"><!> <div class="absolute top-4 left-4 right-4 z-10 flex items-center gap-3"><div class="flex gap-2 flex-1 max-w-md"><input type="text" placeholder="Center graph on..." class="flex-1 px-3 py-2 bg-abyss/80 backdrop-blur-sm border border-subtle/30 rounded-lg text-text text-sm
|
||||
placeholder:text-muted focus:outline-none focus:border-synapse/50 transition"/> <button class="px-3 py-2 bg-synapse/20 border border-synapse/40 text-synapse-glow text-sm rounded-lg hover:bg-synapse/30 transition backdrop-blur-sm">Focus</button></div> <div class="flex gap-2 ml-auto"><select class="px-2 py-2 bg-abyss/80 backdrop-blur-sm border border-subtle/30 rounded-lg text-dim text-xs"><option>50 nodes</option><option>100 nodes</option><option>150 nodes</option><option>200 nodes</option></select> <button> </button> <button class="px-3 py-2 bg-abyss/80 backdrop-blur-sm border border-subtle/30 rounded-lg text-dim text-sm hover:text-text transition">↻</button></div></div> <div class="absolute bottom-4 left-4 z-10 text-xs text-dim backdrop-blur-sm bg-abyss/60 rounded-lg px-3 py-2 border border-subtle/20"><!></div> <!></div>`);function At(W,f){we(f,!0);const $=()=>We(et,"$eventFeed",u),[u,E]=Oe();let x=z(null),o=z(null),P=z(!0),A=z(""),l=z(!1),k=z(""),F=z(150);Ue(()=>G());async function G(s,d){b(P,!0),b(A,"");try{b(x,await Z.graph({max_nodes:e(F),depth:3,query:s||void 0,center_id:d||void 0}),!0)}catch{b(A,"No memories yet. Start using Vestige to populate your graph.")}finally{b(P,!1)}}async function H(){b(l,!0);try{await Z.dream(),await G()}catch{}finally{b(l,!1)}}async function J(s){try{b(o,await Z.memories.get(s),!0)}catch{b(o,null)}}function Q(){e(k).trim()&&G(e(k))}var n=ct(),_=a(n);{var m=s=>{var d=st();h(s,d)},j=s=>{var d=ot(),y=a(d),B=r(a(y),4),L=a(B,!0);t(B),t(y),t(d),S(()=>i(L,e(A))),h(s,d)},T=s=>{Xe(s,{get nodes(){return e(x).nodes},get edges(){return e(x).edges},get centerId(){return e(x).center_id},get events(){return $()},get isDreaming(){return e(l)},onSelect:J})};O(_,s=>{e(P)?s(m):e(A)?s(j,1):e(x)&&s(T,2)})}var v=r(_,2),R=a(v),C=a(R);He(C);var U=r(C,2);t(R);var K=r(R,2),V=a(K),X=a(V);X.value=X.__value=50;var ee=r(X);ee.value=ee.__value=100;var te=r(ee);te.value=te.__value=150;var xe=r(te);xe.value=xe.__value=200,t(V);var q=r(V,2),$e=a(q,!0);t(q);var Ae=r(q,2);t(K),t(v);var ae=r(v,2),Fe=a(ae);{var Ge=s=>{var d=it(),y=Ve(d),B=a(y);t(y);var L=r(y,4),Y=a(L);t(L);var I=r(L,4),re=a(I);t(I),S(()=>{i(B,`${e(x).nodeCount??""} nodes`),i(Y,`${e(x).edgeCount??""} edges`),i(re,`depth ${e(x).depth??""}`)}),h(s,d)};O(Fe,s=>{e(x)&&s(Ge)})}t(ae);var Ce=r(ae,2);{var Le=s=>{var d=vt(),y=a(d),B=r(a(y),2);t(y);var L=r(y,2),Y=a(L),I=a(Y),re=a(I,!0);t(I);var Me=r(I,2);pe(Me,17,()=>e(o).tags,ue,(g,c)=>{var D=nt(),N=a(D,!0);t(D),S(()=>i(N,e(c))),h(g,D)}),t(Y);var se=r(Y,2),je=a(se,!0);t(se);var oe=r(se,2);pe(oe,21,()=>[{label:"Retention",value:e(o).retentionStrength},{label:"Storage",value:e(o).storageStrength},{label:"Retrieval",value:e(o).retrievalStrength}],ue,(g,c)=>{var D=dt(),N=a(D),ve=a(N),Be=a(ve,!0);t(ve);var _e=r(ve,2),Ie=a(_e);t(_e),t(N);var ye=r(N,2),Qe=a(ye);t(ye),t(D),S(Te=>{i(Be,e(c).label),i(Ie,`${Te??""}%`),Se(Qe,`width: ${e(c).value*100}%; background: ${e(c).value>.7?"#10b981":e(c).value>.4?"#f59e0b":"#ef4444"}`)},[()=>(e(c).value*100).toFixed(1)]),h(g,D)}),t(oe);var ie=r(oe,2),Re=r(a(ie),2);{let g=ce(()=>e(o).storageStrength*30);rt(Re,{get retention(){return e(o).retentionStrength},get stability(){return e(g)}})}t(ie);var ne=r(ie,2),de=a(ne),Ne=a(de);t(de);var le=r(de,2),ze=a(le);t(le);var me=r(le,2);{var Ee=g=>{var c=lt(),D=a(c);t(c),S(N=>i(D,`Accessed: ${N??""}`),[()=>new Date(e(o).lastAccessedAt).toLocaleString()]),h(g,c)};O(me,g=>{e(o).lastAccessedAt&&g(Ee)})}var be=r(me,2),Pe=a(be);t(be),t(ne);var fe=r(ne,2),ge=a(fe),qe=r(ge,2);t(fe),ke(2),t(L),t(d),S((g,c)=>{i(re,e(o).nodeType),i(je,e(o).content),i(Ne,`Created: ${g??""}`),i(ze,`Updated: ${c??""}`),i(Pe,`Reviews: ${e(o).reviewCount??0??""}`)},[()=>new Date(e(o).createdAt).toLocaleString(),()=>new Date(e(o).updatedAt).toLocaleString()]),M("click",B,()=>b(o,null)),M("click",ge,()=>{e(o)&&Z.memories.promote(e(o).id)}),M("click",qe,()=>{e(o)&&Z.memories.demote(e(o).id)}),h(s,d)};O(Ce,s=>{e(o)&&s(Le)})}t(n),S(()=>{q.disabled=e(l),Je(q,1,`px-4 py-2 rounded-lg bg-dream/20 border border-dream/40 text-dream-glow text-sm
|
||||
hover:bg-dream/30 transition-all backdrop-blur-sm disabled:opacity-50
|
||||
${e(l)?"glow-dream animate-pulse-glow":""}`),i($e,e(l)?"◈ Dreaming...":"◈ Dream")}),M("keydown",C,s=>s.key==="Enter"&&Q()),Ze(C,()=>e(k),s=>b(k,s)),M("click",U,Q),M("change",V,()=>G()),Ke(V,()=>e(F),s=>b(F,s)),M("click",q,H),M("click",Ae,()=>G()),h(W,n),De(),E()}Ye(["keydown","click","change"]);export{At as component};
|
||||
BIN
apps/dashboard/build/_app/immutable/nodes/6.BbuG7uIt.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/6.BbuG7uIt.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/nodes/6.BbuG7uIt.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/6.BbuG7uIt.js.gz
Normal file
Binary file not shown.
1
apps/dashboard/build/_app/immutable/nodes/7.CenRva5o.js
Normal file
1
apps/dashboard/build/_app/immutable/nodes/7.CenRva5o.js
Normal file
File diff suppressed because one or more lines are too long
BIN
apps/dashboard/build/_app/immutable/nodes/7.CenRva5o.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/7.CenRva5o.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/nodes/7.CenRva5o.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/7.CenRva5o.js.gz
Normal file
Binary file not shown.
4
apps/dashboard/build/_app/immutable/nodes/8.Dd_gKrfw.js
Normal file
4
apps/dashboard/build/_app/immutable/nodes/8.Dd_gKrfw.js
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
import{a as _,f}from"../chunks/wmwKEafM.js";import{o as qe}from"../chunks/DZf5toYK.js";import{p as Qe,d as g,h as Ye,t as D,g as e,a as ze,c as r,e as t,s as p,r as a}from"../chunks/DleE0ac1.js";import{d as Be,a as x,s as l}from"../chunks/8PSwG_AU.js";import{i as pe}from"../chunks/BHs8FnOA.js";import{e as W,i as ce}from"../chunks/BsRos8Kb.js";import{b as ue,r as _e}from"../chunks/ChQRIhGP.js";import{s as Ge}from"../chunks/BK028jHP.js";import{s as xe}from"../chunks/D6n3ggvw.js";import{b as He}from"../chunks/DYdHPHRa.js";import{a as F}from"../chunks/BcuCGYSa.js";import{N as Ie}from"../chunks/CHfZNXj4.js";var Je=f('<div class="h-24 bg-surface/50 rounded-lg animate-pulse"></div>'),Ke=f('<div class="grid gap-3"></div>'),Ue=f('<span class="text-xs px-1.5 py-0.5 bg-deep rounded text-muted"> </span>'),Ve=f('<div class="mt-4 pt-4 border-t border-subtle/20 space-y-3"><p class="text-sm text-text whitespace-pre-wrap"> </p> <div class="grid grid-cols-3 gap-3 text-xs text-dim"><div> </div> <div> </div> <div> </div></div> <div class="flex gap-2"><button class="px-3 py-1.5 bg-recall/20 text-recall text-xs rounded hover:bg-recall/30">Promote</button> <button class="px-3 py-1.5 bg-decay/20 text-decay text-xs rounded hover:bg-decay/30">Demote</button> <button class="px-3 py-1.5 bg-decay/10 text-decay/60 text-xs rounded hover:bg-decay/20 ml-auto">Delete</button></div></div>'),We=f('<button><div class="flex items-start justify-between gap-4"><div class="flex-1 min-w-0"><div class="flex items-center gap-2 mb-2"><span class="w-2 h-2 rounded-full"></span> <span class="text-xs text-dim"> </span> <!></div> <p class="text-sm text-text leading-relaxed line-clamp-2"> </p></div> <div class="flex flex-col items-end gap-1 flex-shrink-0"><div class="w-12 h-1.5 bg-deep rounded-full overflow-hidden"><div class="h-full rounded-full"></div></div> <span class="text-xs text-muted"> </span></div></div> <!></button>'),Xe=f('<div class="grid gap-3"></div>'),Ze=f(`<div class="p-6 max-w-6xl mx-auto space-y-6"><div class="flex items-center justify-between"><h1 class="text-xl text-bright font-semibold">Memories</h1> <span class="text-dim text-sm"> </span></div> <div class="flex gap-3 flex-wrap"><input type="text" placeholder="Search memories..." class="flex-1 min-w-64 px-4 py-2.5 bg-surface border border-subtle/40 rounded-lg text-text text-sm
|
||||
placeholder:text-muted focus:outline-none focus:border-synapse/60 focus:ring-1 focus:ring-synapse/30 transition"/> <select class="px-3 py-2.5 bg-surface border border-subtle/40 rounded-lg text-dim text-sm focus:outline-none"><option>All types</option><option>Fact</option><option>Concept</option><option>Event</option><option>Person</option><option>Place</option><option>Note</option><option>Pattern</option><option>Decision</option></select> <div class="flex items-center gap-2 text-xs text-dim"><span>Min retention:</span> <input type="range" min="0" max="1" step="0.1" class="w-24 accent-synapse"/> <span> </span></div></div> <!></div>`);function ct(fe,ge){Qe(ge,!0);let w=g(Ye([])),S=g(""),k=g(""),be="",b=g(0),M=g(!0),P=g(null),X;qe(()=>m());async function m(){p(M,!0);try{const o={};e(S)&&(o.q=e(S)),e(k)&&(o.node_type=e(k)),e(b)>0&&(o.min_retention=String(e(b)));const v=await F.memories.list(o);p(w,v.memories,!0)}catch{p(w,[],!0)}finally{p(M,!1)}}function me(){clearTimeout(X),X=setTimeout(m,300)}function he(o){return o>.7?"#10b981":o>.4?"#f59e0b":"#ef4444"}var C=Ze(),A=r(C),Z=t(r(A),2),ye=r(Z);a(Z),a(A);var E=t(A,2),T=r(E);_e(T);var h=t(T,2),N=r(h);N.value=N.__value="";var O=t(N);O.value=O.__value="fact";var R=t(O);R.value=R.__value="concept";var j=t(R);j.value=j.__value="event";var L=t(j);L.value=L.__value="person";var q=t(L);q.value=q.__value="place";var Q=t(q);Q.value=Q.__value="note";var Y=t(Q);Y.value=Y.__value="pattern";var ee=t(Y);ee.value=ee.__value="decision",a(h);var te=t(h,2),$=t(r(te),2);_e($);var ae=t($,2),we=r(ae);a(ae),a(te),a(E);var Se=t(E,2);{var ke=o=>{var v=Ke();W(v,20,()=>Array(8),ce,(y,s)=>{var c=Je();_(y,c)}),a(v),_(o,v)},Pe=o=>{var v=Xe();W(v,21,()=>e(w),y=>y.id,(y,s)=>{var c=We(),z=r(c),B=r(z),G=r(B),re=r(G),H=t(re,2),Te=r(H,!0);a(H);var $e=t(H,2);W($e,17,()=>e(s).tags.slice(0,3),ce,(i,n)=>{var d=Ue(),J=r(d,!0);a(d),D(()=>l(J,e(n))),_(i,d)}),a(G);var oe=t(G,2),De=r(oe,!0);a(oe),a(B);var se=t(B,2),I=r(se),Fe=r(I);a(I);var ie=t(I,2),Me=r(ie);a(ie),a(se),a(z);var Ce=t(z,2);{var Ae=i=>{var n=Ve(),d=r(n),J=r(d,!0);a(d);var K=t(d,2),U=r(K),Ee=r(U);a(U);var V=t(U,2),Ne=r(V);a(V);var ne=t(V,2),Oe=r(ne);a(ne),a(K);var de=t(K,2),le=r(de),ve=t(le,2),Re=t(ve,2);a(de),a(n),D((u,je,Le)=>{l(J,e(s).content),l(Ee,`Storage: ${u??""}%`),l(Ne,`Retrieval: ${je??""}%`),l(Oe,`Created: ${Le??""}`)},[()=>(e(s).storageStrength*100).toFixed(1),()=>(e(s).retrievalStrength*100).toFixed(1),()=>new Date(e(s).createdAt).toLocaleDateString()]),x("click",le,u=>{u.stopPropagation(),F.memories.promote(e(s).id)}),x("click",ve,u=>{u.stopPropagation(),F.memories.demote(e(s).id)}),x("click",Re,u=>{u.stopPropagation(),F.memories.delete(e(s).id),m()}),_(i,n)};pe(Ce,i=>{var n;((n=e(P))==null?void 0:n.id)===e(s).id&&i(Ae)})}a(c),D((i,n)=>{var d;Ge(c,1,`text-left p-4 bg-surface/50 border border-subtle/20 rounded-lg hover:border-synapse/30
|
||||
hover:bg-surface transition-all duration-200 group
|
||||
${((d=e(P))==null?void 0:d.id)===e(s).id?"border-synapse/50 glow-synapse":""}`),xe(re,`background: ${(Ie[e(s).nodeType]||"#6b7280")??""}`),l(Te,e(s).nodeType),l(De,e(s).content),xe(Fe,`width: ${e(s).retentionStrength*100}%; background: ${i??""}`),l(Me,`${n??""}%`)},[()=>he(e(s).retentionStrength),()=>(e(s).retentionStrength*100).toFixed(0)]),x("click",c,()=>{var i;return p(P,((i=e(P))==null?void 0:i.id)===e(s).id?null:e(s),!0)}),_(y,c)}),a(v),_(o,v)};pe(Se,o=>{e(M)?o(ke):o(Pe,!1)})}a(C),D(o=>{l(ye,`${e(w).length??""} results`),l(we,`${o??""}%`)},[()=>(e(b)*100).toFixed(0)]),x("input",T,me),ue(T,()=>e(S),o=>p(S,o)),x("change",h,m),He(h,()=>e(k),o=>p(k,o)),x("change",$,m),ue($,()=>e(b),o=>p(b,o)),_(fe,C),ze()}Be(["input","change","click"]);export{ct as component};
|
||||
BIN
apps/dashboard/build/_app/immutable/nodes/8.Dd_gKrfw.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/8.Dd_gKrfw.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/nodes/8.Dd_gKrfw.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/8.Dd_gKrfw.js.gz
Normal file
Binary file not shown.
2
apps/dashboard/build/_app/immutable/nodes/9.CFdF6F7Z.js
Normal file
2
apps/dashboard/build/_app/immutable/nodes/9.CFdF6F7Z.js
Normal file
File diff suppressed because one or more lines are too long
BIN
apps/dashboard/build/_app/immutable/nodes/9.CFdF6F7Z.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/9.CFdF6F7Z.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/nodes/9.CFdF6F7Z.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/9.CFdF6F7Z.js.gz
Normal file
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue