| (function(global){ | |
| const strategies=['conversation_history','flat_similarity','extracted_profile','typed_lifecycle','typed_lifecycle_lineage']; | |
| function run(strategy,s){const obs=(strategy==='conversation_history'?s.observations.slice(-4):s.observations.slice());const typed=strategy.startsWith('typed_');const records=obs.map(o=>({id:o.observation_id+'-m',content:o.content,status:typed?'active':'candidate',authority:o.authority,evidence:o.evidence_family_id,owner:o.owner_scope}));const superseded=[];if(typed){for(let i=1;i<records.length;i++)if(records[i].content.split(' ')[0]===records[i-1].content.split(' ')[0]){records[i-1].status='superseded';superseded.push(records[i-1].id)}}return {strategy,current:records.length?records[records.length-1].content:null,records,superseded,evidence:[...new Set(records.map(r=>r.evidence))]};} | |
| global.MnemosyneCore={strategies,run}; | |
| })(window); | |