solsticestudioai commited on
Commit
7d9221c
·
verified ·
1 Parent(s): 127bce3

Add local external strategy comparison v0.2.1

Browse files
Files changed (3) hide show
  1. README.md +5 -1
  2. app.js +4 -0
  3. index.html +2 -1
README.md CHANGED
@@ -8,7 +8,7 @@ app_file: index.html
8
  pinned: false
9
  ---
10
 
11
- # Mnemosyne Memory Lab
12
 
13
  Compare how memory architectures handle changing beliefs, stale procedures,
14
  duplicated evidence, privacy boundaries, and historical reconstruction.
@@ -25,3 +25,7 @@ Dataset: https://huggingface.co/datasets/solsticestudioai/mnemosyne-memory-lifec
25
  Collection: https://huggingface.co/collections/solsticestudioai/solstice-agent-reliability-lab
26
  Methodology and validity: https://huggingface.co/datasets/solsticestudioai/mnemosyne-memory-lifecycle-benchmark/tree/main/docs
27
  Validity summary: https://huggingface.co/datasets/solsticestudioai/mnemosyne-memory-lifecycle-benchmark/blob/main/reports/benchmark-validity-summary.md
 
 
 
 
 
8
  pinned: false
9
  ---
10
 
11
+ # Mnemosyne Memory Lab v0.2.1
12
 
13
  Compare how memory architectures handle changing beliefs, stale procedures,
14
  duplicated evidence, privacy boundaries, and historical reconstruction.
 
25
  Collection: https://huggingface.co/collections/solsticestudioai/solstice-agent-reliability-lab
26
  Methodology and validity: https://huggingface.co/datasets/solsticestudioai/mnemosyne-memory-lifecycle-benchmark/tree/main/docs
27
  Validity summary: https://huggingface.co/datasets/solsticestudioai/mnemosyne-memory-lifecycle-benchmark/blob/main/reports/benchmark-validity-summary.md
28
+
29
+ Tooling v0.2.1 adds a provider-neutral external strategy protocol. Load a local
30
+ result bundle with “Compare your memory system”; no hosted memory upload is
31
+ performed.
app.js CHANGED
@@ -2,6 +2,7 @@
2
  const scenarios=window.MNEMOSYNE_SCENARIOS;
3
  const scenarioEl=document.querySelector('#scenario');
4
  const strategyEl=document.querySelector('#strategy');
 
5
  for(const s of scenarios){const o=document.createElement('option');o.value=s.scenario_id;o.textContent=s.title;scenarioEl.append(o)}
6
  for(const s of MnemosyneCore.strategies){const o=document.createElement('option');o.value=s;o.textContent=s;strategyEl.append(o)}
7
  scenarioEl.value='mnemo-belief_revision-01';
@@ -13,6 +14,8 @@
13
  document.querySelector('#timeline').innerHTML=s.observations.map(o=>`<div class="event"><b>${o.observation_id}</b> · ${o.timestamp}<br>${o.content}<br><span class="muted">authority ${o.authority} · evidence family ${o.evidence_family_id}</span></div>`).join('');
14
  document.querySelector('#output').innerHTML=`<p><b>${r.strategy}</b></p><p>Current answer: ${r.current||'none'}</p><p>Active records: ${r.records.filter(x=>x.status==='active').length} · Superseded: ${r.superseded.length}</p><p>Evidence families counted: ${r.evidence.join(', ')}</p>`;
15
  document.querySelector('#comparison').innerHTML='<table><tr><th>Strategy</th><th>Current answer</th><th>Superseded</th></tr>'+MnemosyneCore.strategies.map(x=>{const q=MnemosyneCore.run(x,s);return `<tr><td>${x}</td><td>${q.current||'none'}</td><td>${q.superseded.length}</td></tr>`}).join('')+'</table>';
 
 
16
  }
17
  document.querySelector('#download').onclick=()=>{
18
  const s=scenarios.find(x=>x.scenario_id===scenarioEl.value)||scenarios[0];
@@ -22,5 +25,6 @@
22
  document.querySelector('#demo').onclick=()=>{scenarioEl.value='mnemo-belief_revision-01';strategyEl.value='typed_lifecycle_lineage';render()};
23
  scenarioEl.onchange=render; strategyEl.onchange=render;
24
  document.querySelector('#file').onchange=e=>{const f=e.target.files[0];if(!f)return;const reader=new FileReader();reader.onload=()=>{try{const data=JSON.parse(reader.result);if(data.scenario_id){scenarios.push(data);scenarioEl.value=data.scenario_id;render()}}catch{alert('Invalid local scenario')}};reader.readAsText(f)};
 
25
  render();
26
  })();
 
2
  const scenarios=window.MNEMOSYNE_SCENARIOS;
3
  const scenarioEl=document.querySelector('#scenario');
4
  const strategyEl=document.querySelector('#strategy');
5
+ let externalResult=null;
6
  for(const s of scenarios){const o=document.createElement('option');o.value=s.scenario_id;o.textContent=s.title;scenarioEl.append(o)}
7
  for(const s of MnemosyneCore.strategies){const o=document.createElement('option');o.value=s;o.textContent=s;strategyEl.append(o)}
8
  scenarioEl.value='mnemo-belief_revision-01';
 
14
  document.querySelector('#timeline').innerHTML=s.observations.map(o=>`<div class="event"><b>${o.observation_id}</b> · ${o.timestamp}<br>${o.content}<br><span class="muted">authority ${o.authority} · evidence family ${o.evidence_family_id}</span></div>`).join('');
15
  document.querySelector('#output').innerHTML=`<p><b>${r.strategy}</b></p><p>Current answer: ${r.current||'none'}</p><p>Active records: ${r.records.filter(x=>x.status==='active').length} · Superseded: ${r.superseded.length}</p><p>Evidence families counted: ${r.evidence.join(', ')}</p>`;
16
  document.querySelector('#comparison').innerHTML='<table><tr><th>Strategy</th><th>Current answer</th><th>Superseded</th></tr>'+MnemosyneCore.strategies.map(x=>{const q=MnemosyneCore.run(x,s);return `<tr><td>${x}</td><td>${q.current||'none'}</td><td>${q.superseded.length}</td></tr>`}).join('')+'</table>';
17
+ document.querySelector('#external').innerHTML=externalResult ? `<b>External strategy: ${externalResult.strategy_manifest?.display_name||externalResult.strategy?.display_name||'manual_unverified'}</b><p class="muted">${externalResult.tooling_version?'Bundle validated locally.':'manual_unverified result.'} Benchmark: ${externalResult.benchmark_version||'unknown'} · Fixture: ${externalResult.fixture_hash||'unknown'}</p><p>Current metric: ${externalResult.aggregate_metrics?.current_belief_accuracy ?? 'not_applicable'} · Historical: ${externalResult.aggregate_metrics?.historical_reconstruction_accuracy ?? 'not_applicable'}</p><button id="remove-external">Remove external result</button>` : '<b>External strategy</b><p class="muted">No external result loaded. Bundles are validated and compared locally; nothing is uploaded or persisted.</p>';
18
+ const remove=document.querySelector('#remove-external'); if(remove) remove.onclick=()=>{externalResult=null; render()};
19
  }
20
  document.querySelector('#download').onclick=()=>{
21
  const s=scenarios.find(x=>x.scenario_id===scenarioEl.value)||scenarios[0];
 
25
  document.querySelector('#demo').onclick=()=>{scenarioEl.value='mnemo-belief_revision-01';strategyEl.value='typed_lifecycle_lineage';render()};
26
  scenarioEl.onchange=render; strategyEl.onchange=render;
27
  document.querySelector('#file').onchange=e=>{const f=e.target.files[0];if(!f)return;const reader=new FileReader();reader.onload=()=>{try{const data=JSON.parse(reader.result);if(data.scenario_id){scenarios.push(data);scenarioEl.value=data.scenario_id;render()}}catch{alert('Invalid local scenario')}};reader.readAsText(f)};
28
+ document.querySelector('#external-file').onchange=e=>{const f=e.target.files[0];if(!f)return;const reader=new FileReader();reader.onload=()=>{try{const data=JSON.parse(reader.result);const valid=(data.bundle_version==='mnemosyne-external-strategy-bundle/v1'&&data.benchmark_version==='v0.2.0'&&Array.isArray(data.scenario_level_outcomes))||(data.format_version==='mnemosyne-manual-result/v1'&&Array.isArray(data.results));if(!valid)throw new Error('invalid external result');externalResult=data;render()}catch{alert('Invalid external result bundle')}};reader.readAsText(f)};
29
  render();
30
  })();
index.html CHANGED
@@ -1,8 +1,9 @@
1
  <!doctype html>
2
  <html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Mnemosyne Memory Lab</title><link rel="stylesheet" href="styles.css"></head>
3
  <body><main><header><p class="kicker">SOLSTICE AGENT RELIABILITY LAB</p><h1>Mnemosyne Memory Lab</h1><p>Compare how memory architectures handle changing beliefs, stale procedures, duplicated evidence, privacy boundaries, and historical reconstruction.</p><p class="notice">40 deterministic synthetic scenarios · 5 strategies · browser-local processing</p></header>
4
- <section class="controls"><button id="demo">Run the changed-preference demo</button><button id="download">Download result</button><label>Scenario <select id="scenario"></select></label><label>Strategy <select id="strategy"></select></label><input id="file" type="file" accept=".json,.jsonl"></section>
5
  <section id="summary" class="panel"></section><section id="validity" class="panel"></section>
 
6
  <section class="grid"><article class="panel"><h2>Observation timeline</h2><div id="timeline"></div></article><article class="panel"><h2>Strategy output</h2><div id="output"></div></article></section>
7
  <section class="panel"><h2>Five-strategy comparison</h2><div id="comparison"></div></section><footer>All records are synthetic. This visualization does not claim real-world memory accuracy, complete erasure, or production privacy.</footer></main>
8
  <script src="memory-core.js"></script><script src="benchmark-data.js"></script><script src="app.js"></script></body></html>
 
1
  <!doctype html>
2
  <html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Mnemosyne Memory Lab</title><link rel="stylesheet" href="styles.css"></head>
3
  <body><main><header><p class="kicker">SOLSTICE AGENT RELIABILITY LAB</p><h1>Mnemosyne Memory Lab</h1><p>Compare how memory architectures handle changing beliefs, stale procedures, duplicated evidence, privacy boundaries, and historical reconstruction.</p><p class="notice">40 deterministic synthetic scenarios · 5 strategies · browser-local processing</p></header>
4
+ <section class="controls"><button id="demo">Run the changed-preference demo</button><button id="download">Download result</button><label>Scenario <select id="scenario"></select></label><label>Strategy <select id="strategy"></select></label><label>Local scenario <input id="file" type="file" accept=".json,.jsonl"></label><label>Compare your memory system <input id="external-file" type="file" accept=".json"></label></section>
5
  <section id="summary" class="panel"></section><section id="validity" class="panel"></section>
6
+ <section id="external" class="panel"><b>External strategy</b><p class="muted">No external result loaded. Bundles are validated and compared locally; nothing is uploaded or persisted.</p></section>
7
  <section class="grid"><article class="panel"><h2>Observation timeline</h2><div id="timeline"></div></article><article class="panel"><h2>Strategy output</h2><div id="output"></div></article></section>
8
  <section class="panel"><h2>Five-strategy comparison</h2><div id="comparison"></div></section><footer>All records are synthetic. This visualization does not claim real-world memory accuracy, complete erasure, or production privacy.</footer></main>
9
  <script src="memory-core.js"></script><script src="benchmark-data.js"></script><script src="app.js"></script></body></html>