vestige/apps/dashboard/build/_app/immutable/nodes/14.CDp0vmq1.js
Sam Valladares f7530af3db
release: v2.2.1 — Windows embeddings fix + backfill safety + first-run guide (#105)
* patch(backfill-safety): VESTIGE_BACKFILL_AUTOFIRE gate (default OFF) + bounded promote_memory_backfill

Off-by-default env gate around step-8.5 auto-fire in run_consolidation (decouples
backfill from consolidation cadence). New promote_memory_backfill caps stability at
MIN(stability*1.5, stability+365.0) (the bound retroactive_backfill.rs:300 already
computes but discarded); both backfill entry points use it. Fixes the false 'capped'
comment. Cloud-sync excluded at build (--no-default-features). Pending upstream PR to
samvallad33/vestige. omega-backfill-safety-v2.2.0 off tag v2.2.0 (3bcd4667).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* release: v2.2.1 — Windows embeddings fix + backfill safety + first-run guide

Board-clearing patch release.

Fixes:
- #101 Windows embeddings: release.yml already restores vector-search on the
  x86_64-pc-windows-msvc target (merged in #102); this release rebuilds the
  Windows binary so users actually get working embeddings.
- #103 Retroactive Salience Backfill safety (from community PR #104, adjusted):
  * promote_memory_backfill bounds the stability multiply to
    MIN(stability*1.5, stability+365.0) on both auto-fire and manual paths.
  * VESTIGE_BACKFILL_AUTOFIRE gate — default ON (preserves the shipped/documented
    v2.2.0 behavior), disable with 0/false/off/no. Env value is trimmed.
  * Corrected the false "capped" comment and the promote_memory_backfill doc.
  * Added 3 tests: +365 cap binds, *1.5 multiply below crossover, gate parsing.

Docs:
- #83 First-Run: new docs/GETTING-STARTED.md + README pointer.
- Consolidated roadmap issues #82,#84-#92 into docs/ROADMAP.md (Tracked Issues).
- Documented VESTIGE_BACKFILL_AUTOFIRE in docs/CONFIGURATION.md.
- CHANGELOG v2.2.1 entry.

Version bumped to 2.2.1 across all manifests + Cargo.lock + dashboard build.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Peter Lauzon <inbijiburu@protonmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 12:02:42 -05:00

6 lines
18 KiB
JavaScript

import"../chunks/Bzak7iHL.js";import{o as We}from"../chunks/TZu9D97Z.js";import{p as Ye,s as B,d as $e,i as P,e as s,g as e,r as t,a as l,b as Ge,f as Je,h as v,t as k,u as oe,j as f,au as ne,n as st}from"../chunks/wpu9U-D0.js";import{d as Ke,s as D,a as y}from"../chunks/D8mhvFt8.js";import{i as q}from"../chunks/DKve45Wd.js";import{e as pe,i as Oe,a as V,r as ot,s as Ie}from"../chunks/60_R_Vbt.js";import{a as He,r as nt}from"../chunks/P1-U_Xsj.js";import{s as X}from"../chunks/EqHb-9AZ.js";import{b as it}from"../chunks/CnZzd20v.js";import{a as H}from"../chunks/CZfHMhLI.js";import{N as L}from"../chunks/CcUbQ_Wl.js";import{P as lt}from"../chunks/BHDZZvku.js";import{A as dt}from"../chunks/DcKTNC6e.js";import{D as qe}from"../chunks/CmbJHhgy.js";import{I as Qe}from"../chunks/D7A-gG4Z.js";import{s as ct}from"../chunks/DPdYG9yN.js";const vt={created:{label:"Created",color:"#10b981",glyph:"",kind:"ring"},accessed:{label:"Accessed",color:"#3b82f6",glyph:"",kind:"dot"},promoted:{label:"Promoted",color:"#10b981",glyph:"",kind:"arrow-up"},demoted:{label:"Demoted",color:"#f59e0b",glyph:"",kind:"arrow-down"},edited:{label:"Edited",color:"#facc15",glyph:"",kind:"pencil"},suppressed:{label:"Suppressed",color:"#a855f7",glyph:"",kind:"x"},dreamed:{label:"Dreamed",color:"#c084fc",glyph:"",kind:"star"},reconsolidated:{label:"Reconsolidated",color:"#ec4899",glyph:"",kind:"circle-arrow"}},_e=15;function pt(g){let p=0;for(let m=0;m<g.length;m++)p=p*31+g.charCodeAt(m)>>>0;return p}function ut(g){let p=g>>>0;return()=>(p=p*1664525+1013904223>>>0,p/4294967296)}function ft(g,p=Date.now(),m){if(!g)return[];const x=ut(pt(g)),S=8+Math.floor(x()*8);if(S<=0)return[];const C=[],E=p-(14+x()*21)*864e5;C.push({action:"created",timestamp:new Date(E).toISOString(),reason:"smart_ingest · prediction-error gate opened",triggered_by:"smart_ingest"});let F=E,i=.5+x()*.2;const N=["accessed","accessed","accessed","accessed","promoted","demoted","edited","dreamed","reconsolidated","suppressed"];for(let z=1;z<S;z++){F+=x()*5*864e5+36e5;const O=N[Math.floor(x()*N.length)],d={action:O,timestamp:new Date(F).toISOString()};switch(O){case"accessed":{const I=i;i=Math.min(1,i+x()*.04+.01),d.old_value=I,d.new_value=i,d.triggered_by=x()>.5?"search":"deep_reference";break}case"promoted":{const I=i;i=Math.min(1,i+.1),d.old_value=I,d.new_value=i,d.reason="confirmed helpful by user",d.triggered_by="memory(action=promote)";break}case"demoted":{const I=i;i=Math.max(0,i-.15),d.old_value=I,d.new_value=i,d.reason="user flagged as outdated",d.triggered_by="memory(action=demote)";break}case"edited":{d.reason="content refined, FSRS state preserved",d.triggered_by="memory(action=edit)";break}case"suppressed":{const I=i;i=Math.max(0,i-.08),d.old_value=I,d.new_value=i,d.reason="top-down inhibition (Anderson 2025)",d.triggered_by="suppress(dashboard)";break}case"dreamed":{const I=i;i=Math.min(1,i+.05),d.old_value=I,d.new_value=i,d.reason="replayed during dream consolidation",d.triggered_by="dream()";break}case"reconsolidated":{d.reason="edited within 5-min labile window (Nader)",d.triggered_by="reconsolidation-manager";break}case"created":d.triggered_by="smart_ingest";break}C.push(d)}return C.reverse()}function gt(g,p=Date.now()){const m=new Date(g).getTime(),x=Math.max(0,p-m),S=Math.floor(x/1e3);if(S<60)return`${S}s ago`;const C=Math.floor(S/60);if(C<60)return`${C}m ago`;const E=Math.floor(C/60);if(E<24)return`${E}h ago`;const F=Math.floor(E/24);if(F<30)return`${F}d ago`;const i=Math.floor(F/30);return i<12?`${i}mo ago`:`${Math.floor(i/12)}y ago`}function xt(g,p){const m=typeof g=="number"&&Number.isFinite(g),x=typeof p=="number"&&Number.isFinite(p);return!m&&!x?null:!m&&x?`set ${p.toFixed(2)}`:m&&!x?`was ${g.toFixed(2)}`:`${g.toFixed(2)}${p.toFixed(2)}`}function mt(g,p){return p||g.length<=_e?{visible:g,hiddenCount:Math.max(0,g.length-_e)}:{visible:g.slice(0,_e),hiddenCount:g.length-_e}}var bt=f('<div class="h-10 glass-subtle rounded-lg animate-pulse svelte-kf1sc6"></div>'),_t=f('<div class="space-y-2 svelte-kf1sc6"></div>'),ht=f('<p class="text-xs text-decay italic svelte-kf1sc6">Audit trail failed to load.</p>'),kt=f('<p class="text-xs text-muted italic svelte-kf1sc6">No memory selected.</p>'),yt=f('<p class="text-xs text-muted italic svelte-kf1sc6">No audit events recorded yet.</p>'),wt=f('<span class="w-1.5 h-1.5 rounded-full svelte-kf1sc6"></span>'),Mt=f('<span class="w-2 h-2 rounded-full border svelte-kf1sc6"></span>'),Pt=ne('<svg viewBox="0 0 12 12" class="w-2.5 h-2.5 svelte-kf1sc6" fill="none" stroke-width="2"><path d="M6 10V2M3 5l3-3 3 3" stroke-linecap="round" stroke-linejoin="round" class="svelte-kf1sc6"></path></svg>'),St=ne('<svg viewBox="0 0 12 12" class="w-2.5 h-2.5 svelte-kf1sc6" fill="none" stroke-width="2"><path d="M6 2v8M3 7l3 3 3-3" stroke-linecap="round" stroke-linejoin="round" class="svelte-kf1sc6"></path></svg>'),At=ne('<svg viewBox="0 0 12 12" class="w-2.5 h-2.5 svelte-kf1sc6" fill="none" stroke-width="1.5"><path d="M8.5 1.5l2 2L4 10l-3 1 1-3 6.5-6.5z" stroke-linejoin="round" class="svelte-kf1sc6"></path></svg>'),Tt=ne('<svg viewBox="0 0 12 12" class="w-2.5 h-2.5 svelte-kf1sc6" fill="none" stroke-width="2"><path d="M2 2l8 8M10 2l-8 8" stroke-linecap="round" class="svelte-kf1sc6"></path></svg>'),Dt=ne('<svg viewBox="0 0 12 12" class="w-2.5 h-2.5 svelte-kf1sc6" stroke="none"><path d="M6 0.5l1.4 3.3 3.6.3-2.7 2.4.8 3.5L6 8.2l-3.1 1.8.8-3.5L1 4.1l3.6-.3L6 .5z" class="svelte-kf1sc6"></path></svg>'),Ct=ne('<svg viewBox="0 0 12 12" class="w-2.5 h-2.5 svelte-kf1sc6" fill="none" stroke-width="1.5"><path d="M10 6a4 4 0 1 1-1.2-2.8" stroke-linecap="round" class="svelte-kf1sc6"></path><path d="M10 1.5V4H7.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-kf1sc6"></path></svg>'),Et=f('<span class="text-muted font-mono text-[10px] svelte-kf1sc6"> </span>'),Ft=f('<div class="text-[11px] text-dim font-mono svelte-kf1sc6"> </div>'),Nt=f('<div class="text-[11px] text-dim italic svelte-kf1sc6"> </div>'),It=f('<li class="relative svelte-kf1sc6"><span class="marker absolute -left-[29px] top-0.5 w-4 h-4 flex items-center justify-center rounded-full svelte-kf1sc6" aria-hidden="true"><!></span> <div class="glass-subtle rounded-lg px-3 py-2 space-y-1 svelte-kf1sc6"><div class="flex items-center justify-between gap-2 flex-wrap svelte-kf1sc6"><div class="flex items-center gap-2 text-xs svelte-kf1sc6"><span class="font-semibold svelte-kf1sc6"> </span> <!></div> <span class="text-[10px] text-muted font-mono svelte-kf1sc6"> </span></div> <!> <!></div></li>'),$t=f('<button type="button" class="text-xs text-synapse-glow hover:text-bright transition-colors underline-offset-4 hover:underline svelte-kf1sc6"> </button>'),Ot=f('<ol class="relative pl-6 border-l border-synapse/15 space-y-3 svelte-kf1sc6"></ol> <!>',1),Rt=f('<div class="audit-trail space-y-3 svelte-kf1sc6" aria-label="Audit trail"><!></div>');function jt(g,p){Ye(p,!0);let m=B($e([])),x=B(!0),S=B(!1),C=B(!1);async function E(_){return ft(_,Date.now())}We(async()=>{if(!p.memoryId){P(m,[],!0),P(x,!1);return}try{P(m,await E(p.memoryId),!0)}catch{P(m,[],!0),P(S,!0)}finally{P(x,!1)}});const F=oe(()=>mt(e(m),e(C))),i=oe(()=>e(F).visible),N=oe(()=>e(F).hiddenCount);var z=Rt(),O=s(z);{var d=_=>{var w=_t();pe(w,20,()=>Array(5),Oe,(Q,Z)=>{var J=bt();l(Q,J)}),t(w),l(_,w)},I=_=>{var w=ht();l(_,w)},he=_=>{var w=kt();l(_,w)},ke=_=>{var w=yt();l(_,w)},ue=_=>{var w=Ot(),Q=Je(w);pe(Q,23,()=>e(i),(R,h)=>R.timestamp+h,(R,h,K)=>{const u=oe(()=>vt[e(h).action]),fe=oe(()=>xt(e(h).old_value,e(h).new_value));var ee=It(),te=s(ee),ye=s(te);{var we=a=>{var r=wt();k(()=>X(r,`background: ${e(u).color??""};`)),l(a,r)},c=a=>{var r=Mt();k(()=>X(r,`border-color: ${e(u).color??""}; background: transparent;`)),l(a,r)},M=a=>{var r=Pt();k(()=>V(r,"stroke",e(u).color)),l(a,r)},A=a=>{var r=St();k(()=>V(r,"stroke",e(u).color)),l(a,r)},n=a=>{var r=At();k(()=>V(r,"stroke",e(u).color)),l(a,r)},W=a=>{var r=Tt();k(()=>V(r,"stroke",e(u).color)),l(a,r)},j=a=>{var r=Dt();k(()=>V(r,"fill",e(u).color)),l(a,r)},ie=a=>{var r=Ct();k(()=>V(r,"stroke",e(u).color)),l(a,r)};q(ye,a=>{e(u).kind==="dot"?a(we):e(u).kind==="ring"?a(c,1):e(u).kind==="arrow-up"?a(M,2):e(u).kind==="arrow-down"?a(A,3):e(u).kind==="pencil"?a(n,4):e(u).kind==="x"?a(W,5):e(u).kind==="star"?a(j,6):e(u).kind==="circle-arrow"&&a(ie,7)})}t(te);var ae=v(te,2),U=s(ae),re=s(U),Y=s(re),Me=s(Y,!0);t(Y);var Pe=v(Y,2);{var ge=a=>{var r=Et(),b=s(r,!0);t(r),k(()=>D(b,e(h).triggered_by)),l(a,r)};q(Pe,a=>{e(h).triggered_by&&a(ge)})}t(re);var le=v(re,2),xe=s(le,!0);t(le),t(U);var se=v(U,2);{var Se=a=>{var r=Ft(),b=s(r);t(r),k(()=>D(b,`retention ${e(fe)??""}`)),l(a,r)};q(se,a=>{e(fe)&&a(Se)})}var me=v(se,2);{var Ae=a=>{var r=Nt(),b=s(r,!0);t(r),k(()=>D(b,e(h).reason)),l(a,r)};q(me,a=>{e(h).reason&&a(Ae)})}t(ae),t(ee),k((a,r)=>{X(ee,`animation-delay: ${e(K)*40}ms;`),X(te,`background: rgba(10,10,26,0.9); box-shadow: 0 0 10px ${e(u).color??""}88; border: 1px solid ${e(u).color??""};`),X(Y,`color: ${e(u).color??""};`),D(Me,e(u).label),V(le,"title",a),D(xe,r)},[()=>new Date(e(h).timestamp).toLocaleString(),()=>gt(e(h).timestamp)]),l(R,ee)}),t(Q);var Z=v(Q,2);{var J=R=>{var h=$t(),K=s(h,!0);t(h),k(()=>D(K,e(C)?"Hide older events":`Show ${e(N)} older event${e(N)===1?"":"s"}`)),y("click",h,u=>{u.stopPropagation(),P(C,!e(C))}),l(R,h)};q(Z,R=>{e(N)>0&&R(J)})}l(_,w)};q(O,_=>{e(x)?_(d):e(S)?_(I,1):p.memoryId?e(m).length===0?_(ke,3):_(ue,!1):_(he,2)})}t(z),l(g,z),Ge()}Ke(["click"]);var Bt=f('<span class="text-dim text-sm tabular-nums"><!> results</span>'),Lt=f('<div class="h-24 glass-subtle rounded-xl shimmer"></div>'),zt=f('<div class="grid gap-3"></div>'),Ht=f('<div class="enter flex flex-col items-center justify-center text-center py-20 gap-4"><div class="text-dim opacity-60 breathe"><!></div> <p class="text-dim text-sm max-w-sm"> </p></div>'),qt=f('<span class="text-xs px-1.5 py-0.5 bg-white/[0.04] rounded text-muted"> </span>'),Qt=f('<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>',1),Wt=f('<div role="presentation"><!></div>'),Yt=f('<div class="relative z-[1] mt-4 pt-4 border-t border-synapse/10 space-y-3"><div class="flex gap-1 text-[11px] uppercase tracking-wider"><span role="button" tabindex="0">Content</span> <span role="button" tabindex="0">Audit Trail</span></div> <!> <div class="flex gap-2"><span role="button" tabindex="0" class="px-3 py-1.5 bg-recall/20 text-recall text-xs rounded-lg hover:bg-recall/30 cursor-pointer select-none">Promote</span> <span role="button" tabindex="0" class="px-3 py-1.5 bg-decay/20 text-decay text-xs rounded-lg hover:bg-decay/30 cursor-pointer select-none">Demote</span> <span role="button" tabindex="0" title="Top-down inhibition (Anderson 2025). Compounds. Reversible for 24h." class="px-3 py-1.5 bg-purple-500/20 text-purple-400 text-xs rounded-lg hover:bg-purple-500/30 cursor-pointer select-none">Suppress</span> <span role="button" tabindex="0" class="px-3 py-1.5 bg-decay/10 text-decay/60 text-xs rounded-lg hover:bg-decay/20 ml-auto cursor-pointer select-none">Delete</span></div></div>'),Gt=f('<button><div class="relative z-[1] 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 capitalize"> </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>'),Jt=f('<div class="grid gap-3"></div>'),Kt=f(`<div class="p-6 max-w-6xl mx-auto space-y-6"><!> <div class="flex gap-3 flex-wrap items-end enter"><div class="relative flex-1 min-w-64"><span class="absolute left-3.5 top-1/2 -translate-y-1/2 text-muted pointer-events-none"><!></span> <input type="text" placeholder="Search memories… (press / to focus)" class="w-full pl-10 pr-4 py-2.5 bg-white/[0.03] border border-synapse/10 rounded-xl text-text text-sm
placeholder:text-muted focus:outline-none focus:border-synapse/40 focus:ring-2 focus:ring-synapse/15 transition backdrop-blur-sm"/></div> <!> <!></div> <!></div>`);function pa(g,p){Ye(p,!0);let m=B($e([])),x=B(""),S=B(""),C="",E=B(0),F=B(!0),i=B(null),N=$e({}),z;We(()=>O());async function O(){P(F,!0);try{const c={};e(x)&&(c.q=e(x)),e(S)&&(c.node_type=e(S)),e(E)>0&&(c.min_retention=String(e(E)));const M=await H.memories.list(c);P(m,M.memories,!0)}catch{P(m,[],!0)}finally{P(F,!1)}}function d(){clearTimeout(z),z=setTimeout(O,300)}function I(c){return c>.7?"#10b981":c>.4?"#f59e0b":"#ef4444"}const he=[{value:"",label:"All types"},{value:"fact",label:"Fact",color:L.fact},{value:"concept",label:"Concept",color:L.concept},{value:"event",label:"Event",color:L.event},{value:"person",label:"Person",color:L.person},{value:"place",label:"Place",color:L.place},{value:"note",label:"Note",color:L.note},{value:"pattern",label:"Pattern",color:L.pattern},{value:"decision",label:"Decision",color:L.decision}],ke=[{value:"0",label:"Any retention"},{value:"0.3",label:"≥ 30% — fading & up"},{value:"0.5",label:"≥ 50% — half-strength"},{value:"0.7",label:"≥ 70% — well-retained"},{value:"0.9",label:"≥ 90% — core memories"}];let ue=B("0");function _(c){P(E,parseFloat(c),!0),O()}var w=Kt(),Q=s(w);lt(Q,{icon:"memories",title:"Memories",subtitle:"Search, filter, and curate everything Vestige remembers",accent:"memory",children:(c,M)=>{var A=Bt(),n=s(A);dt(n,{get value(){return e(m).length}}),st(),t(A),l(c,A)},$$slots:{default:!0}});var Z=v(Q,2),J=s(Z),R=s(J),h=s(R);Qe(h,{name:"search",size:16}),t(R);var K=v(R,2);ot(K),t(J);var u=v(J,2);qe(u,{get options(){return he},label:"Type",icon:"filter",placeholder:"All types",onChange:O,get value(){return e(S)},set value(c){P(S,c,!0)}});var fe=v(u,2);qe(fe,{get options(){return ke},label:"Retention",icon:"pulse",onChange:_,get value(){return e(ue)},set value(c){P(ue,c,!0)}}),t(Z);var ee=v(Z,2);{var te=c=>{var M=zt();pe(M,20,()=>Array(8),Oe,(A,n)=>{var W=Lt();l(A,W)}),t(M),l(c,M)},ye=c=>{var M=Ht(),A=s(M),n=s(A);Qe(n,{name:"memories",size:48,strokeWidth:1.2}),t(A);var W=v(A,2),j=s(W,!0);t(W),t(M),k(()=>D(j,e(x)||e(S)||e(E)>0?"No memories match these filters yet. Try widening your search.":"No memories yet — once Vestige starts remembering, they will surface here, alive and searchable.")),l(c,M)},we=c=>{var M=Jt();pe(M,23,()=>e(m),A=>A.id,(A,n,W)=>{var j=Gt(),ie=s(j),ae=s(ie),U=s(ae),re=s(U),Y=v(re,2),Me=s(Y,!0);t(Y);var Pe=v(Y,2);pe(Pe,17,()=>e(n).tags.slice(0,3),Oe,(b,T)=>{var $=qt(),de=s($,!0);t($),k(()=>D(de,e(T))),l(b,$)}),t(U);var ge=v(U,2),le=s(ge,!0);t(ge),t(ae);var xe=v(ae,2),se=s(xe),Se=s(se);t(se);var me=v(se,2),Ae=s(me);t(me),t(xe),t(ie);var a=v(ie,2);{var r=b=>{const T=oe(()=>N[e(n).id]??"content");var $=Yt(),de=s($),be=s(de),Te=v(be,2);t(de);var Re=v(de,2);{var Ue=o=>{var G=Qt(),ce=Je(G),ve=s(ce,!0);t(ce);var Le=v(ce,2),Fe=s(Le),Xe=s(Fe);t(Fe);var Ne=v(Fe,2),Ze=s(Ne);t(Ne);var ze=v(Ne,2),et=s(ze);t(ze),t(Le),k((tt,at,rt)=>{D(ve,e(n).content),D(Xe,`Storage: ${tt??""}%`),D(Ze,`Retrieval: ${at??""}%`),D(et,`Created: ${rt??""}`)},[()=>(e(n).storageStrength*100).toFixed(1),()=>(e(n).retrievalStrength*100).toFixed(1),()=>new Date(e(n).createdAt).toLocaleDateString()]),l(o,G)},Ve=o=>{var G=Wt(),ce=s(G);jt(ce,{get memoryId(){return e(n).id}}),t(G),y("click",G,ve=>ve.stopPropagation()),y("keydown",G,ve=>ve.stopPropagation()),l(o,G)};q(Re,o=>{e(T)==="content"?o(Ue):o(Ve,!1)})}var je=v(Re,2),De=s(je),Ce=v(De,2),Ee=v(Ce,2),Be=v(Ee,2);t(je),t($),k(()=>{Ie(be,1,`px-3 py-1.5 rounded-lg cursor-pointer select-none transition
${e(T)==="content"?"bg-synapse/20 text-synapse-glow border border-synapse/40":"bg-white/[0.03] text-dim hover:text-text border border-transparent"}`),Ie(Te,1,`px-3 py-1.5 rounded-lg cursor-pointer select-none transition
${e(T)==="audit"?"bg-synapse/20 text-synapse-glow border border-synapse/40":"bg-white/[0.03] text-dim hover:text-text border border-transparent"}`)}),y("click",be,o=>{o.stopPropagation(),N[e(n).id]="content"}),y("keydown",be,o=>{(o.key==="Enter"||o.key===" ")&&(o.stopPropagation(),N[e(n).id]="content")}),y("click",Te,o=>{o.stopPropagation(),N[e(n).id]="audit"}),y("keydown",Te,o=>{(o.key==="Enter"||o.key===" ")&&(o.stopPropagation(),N[e(n).id]="audit")}),y("click",De,o=>{o.stopPropagation(),H.memories.promote(e(n).id)}),y("keydown",De,o=>{o.key==="Enter"&&(o.stopPropagation(),H.memories.promote(e(n).id))}),y("click",Ce,o=>{o.stopPropagation(),H.memories.demote(e(n).id)}),y("keydown",Ce,o=>{o.key==="Enter"&&(o.stopPropagation(),H.memories.demote(e(n).id))}),y("click",Ee,async o=>{o.stopPropagation(),await H.memories.suppress(e(n).id,"dashboard trigger")}),y("keydown",Ee,async o=>{o.key==="Enter"&&(o.stopPropagation(),await H.memories.suppress(e(n).id,"dashboard trigger"))}),y("click",Be,async o=>{o.stopPropagation(),await H.memories.delete(e(n).id),O()}),y("keydown",Be,async o=>{o.key==="Enter"&&(o.stopPropagation(),await H.memories.delete(e(n).id),O())}),l(b,$)};q(a,b=>{var T;((T=e(i))==null?void 0:T.id)===e(n).id&&b(r)})}t(j),He(j,(b,T)=>{var $;return($=nt)==null?void 0:$(b,T)},()=>({delay:Math.min(e(W)*35,350),y:12})),He(j,b=>{var T;return(T=ct)==null?void 0:T(b)}),k((b,T)=>{var $;Ie(j,1,`spotlight-surface text-left p-4 glass-subtle rounded-xl hover:bg-white/[0.04]
transition-all duration-200 group
${(($=e(i))==null?void 0:$.id)===e(n).id?"!border-synapse/40 glow-synapse live-border":""}`),X(re,`background: ${(L[e(n).nodeType]||"#8B95A5")??""}; box-shadow: 0 0 6px ${(L[e(n).nodeType]||"#8B95A5")??""}99`),D(Me,e(n).nodeType),D(le,e(n).content),X(Se,`width: ${e(n).retentionStrength*100}%; background: ${b??""}`),D(Ae,`${T??""}%`)},[()=>I(e(n).retentionStrength),()=>(e(n).retentionStrength*100).toFixed(0)]),y("click",j,()=>{var b;return P(i,((b=e(i))==null?void 0:b.id)===e(n).id?null:e(n),!0)}),l(A,j)}),t(M),l(c,M)};q(ee,c=>{e(F)?c(te):e(m).length===0?c(ye,1):c(we,!1)})}t(w),y("input",K,d),it(K,()=>e(x),c=>P(x,c)),l(g,w),Ge()}Ke(["input","click","keydown"]);export{pa as component};