open-mem 0.7.3 → 0.8.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.
@@ -225,7 +225,7 @@ Respond with EXACTLY this XML format:
225
225
  FROM observation_embeddings
226
226
  WHERE embedding MATCH ? AND k = ?`,[K,B]).map((E)=>({observationId:E.observation_id,distance:E.distance}))}catch{return[]}}searchVecSubset(f,B,K){if(B.length===0)return[];try{let E=new Float32Array(f),J=Math.max(K*5,B.length),z=this.db.all(`SELECT observation_id, distance
227
227
  FROM observation_embeddings
228
- WHERE embedding MATCH ? AND k = ?`,[E,J]),$=new Set(B);return z.filter((R)=>$.has(R.observation_id)).slice(0,K).map((R)=>({observationId:R.observation_id,distance:R.distance}))}catch{return[]}}update(f,B){let K=this.getById(f);if(!K)return null;if(Object.keys(B).length===0)return K;let E=this.create({sessionId:K.sessionId,scope:K.scope??"project",type:B.type??K.type,title:B.title??K.title,subtitle:B.subtitle??K.subtitle,facts:B.facts??K.facts,narrative:B.narrative??K.narrative,concepts:B.concepts??K.concepts,filesRead:B.filesRead??K.filesRead,filesModified:B.filesModified??K.filesModified,rawToolOutput:K.rawToolOutput,toolName:"memory.revise",tokenCount:K.tokenCount,discoveryTokens:K.discoveryTokens,importance:B.importance??K.importance});return this.db.run("UPDATE observations SET revision_of = ? WHERE id = ?",[f,E.id]),this.supersede(f,E.id),this.getById(E.id)}supersede(f,B){let K=new Date().toISOString();this.db.run("UPDATE observations SET superseded_by = ?, superseded_at = ? WHERE id = ?",[B,K,f])}delete(f){if(this.db.all("SELECT id FROM observations WHERE id = ?",[f]).length===0)return!1;let K=new Date().toISOString();return this.db.run("UPDATE observations SET deleted_at = ? WHERE id = ?",[K,f]),this.deleteEmbeddingsForObservations([f]),!0}getLineage(f){let B=this.getByIdIncludingArchived(f);if(!B)return[];let K=new Set([B.id]),E=[B];while(E[0].revisionOf){let J=this.getByIdIncludingArchived(E[0].revisionOf);if(!J||K.has(J.id))break;E.unshift(J),K.add(J.id)}while(E[E.length-1].supersededBy){let J=E[E.length-1].supersededBy;if(!J)break;let z=this.getByIdIncludingArchived(J);if(!z||K.has(z.id))break;E.push(z),K.add(z.id)}return E}deleteOlderThan(f){return this.db.all(`DELETE FROM observations
228
+ WHERE embedding MATCH ? AND k = ?`,[E,J]),$=new Set(B);return z.filter((R)=>$.has(R.observation_id)).slice(0,K).map((R)=>({observationId:R.observation_id,distance:R.distance}))}catch{return[]}}update(f,B){let K=this.getById(f);if(!K)return null;if(Object.keys(B).length===0)return K;let E=this.create({sessionId:K.sessionId,scope:K.scope??"project",type:B.type??K.type,title:B.title??K.title,subtitle:B.subtitle??K.subtitle,facts:B.facts??K.facts,narrative:B.narrative??K.narrative,concepts:B.concepts??K.concepts,filesRead:B.filesRead??K.filesRead,filesModified:B.filesModified??K.filesModified,rawToolOutput:K.rawToolOutput,toolName:"mem-revise",tokenCount:K.tokenCount,discoveryTokens:K.discoveryTokens,importance:B.importance??K.importance});return this.db.run("UPDATE observations SET revision_of = ? WHERE id = ?",[f,E.id]),this.supersede(f,E.id),this.getById(E.id)}supersede(f,B){let K=new Date().toISOString();this.db.run("UPDATE observations SET superseded_by = ?, superseded_at = ? WHERE id = ?",[B,K,f])}delete(f){if(this.db.all("SELECT id FROM observations WHERE id = ?",[f]).length===0)return!1;let K=new Date().toISOString();return this.db.run("UPDATE observations SET deleted_at = ? WHERE id = ?",[K,f]),this.deleteEmbeddingsForObservations([f]),!0}getLineage(f){let B=this.getByIdIncludingArchived(f);if(!B)return[];let K=new Set([B.id]),E=[B];while(E[0].revisionOf){let J=this.getByIdIncludingArchived(E[0].revisionOf);if(!J||K.has(J.id))break;E.unshift(J),K.add(J.id)}while(E[E.length-1].supersededBy){let J=E[E.length-1].supersededBy;if(!J)break;let z=this.getByIdIncludingArchived(J);if(!z||K.has(z.id))break;E.push(z),K.add(z.id)}return E}deleteOlderThan(f){return this.db.all(`DELETE FROM observations
229
229
  WHERE (created_at < datetime('now', '-' || ? || ' days') OR deleted_at IS NOT NULL)
230
230
  AND session_id NOT IN (SELECT id FROM sessions WHERE status != 'completed')
231
231
  RETURNING id`,[f]).length}deleteEmbeddingsForObservations(f){if(f.length===0)return;let B=f.map(()=>"?").join(",");try{this.db.run(`DELETE FROM observation_embeddings WHERE observation_id IN (${B})`,f)}catch{}this.db.run(`UPDATE observations SET embedding = NULL WHERE id IN (${B})`,f)}mapRow(f){return{id:f.id,sessionId:f.session_id,scope:f.scope??"project",type:f.type,title:f.title,subtitle:f.subtitle,facts:JSON.parse(f.facts),narrative:f.narrative,concepts:JSON.parse(f.concepts),filesRead:JSON.parse(f.files_read),filesModified:JSON.parse(f.files_modified),rawToolOutput:f.raw_tool_output,toolName:f.tool_name,createdAt:f.created_at,tokenCount:f.token_count,discoveryTokens:f.discovery_tokens??0,importance:f.importance??3,revisionOf:f.revision_of??null,deletedAt:f.deleted_at??null,supersededBy:f.superseded_by??null,supersededAt:f.superseded_at??null}}}import{randomUUID as I0}from"crypto";class t{db;constructor(f){this.db=f}create(f){let B=I0(),K=new Date().toISOString();return this.db.run(`INSERT INTO pending_messages
@@ -1,7 +1,7 @@
1
1
  import type { SearchOrchestrator } from "../search/orchestrator";
2
2
  import type { ObservationStore, SessionStore, SummaryStore, UserObservationStore } from "../store/ports";
3
3
  import type { AdapterStatus, ConfigAuditEvent, MaintenanceHistoryItem, Observation, OpenMemConfig, RevisionDiff, SearchResult } from "../types";
4
- import type { FolderContextMaintenanceResult, HealthStatus, LineageNode, MemoryEngine, MemoryExportOptions, MemoryImportOptions, MetricsSnapshot, MemorySaveInput, MemorySearchFilters, MemoryStats, MemoryUpdatePatch, PlatformInfo, RuntimeStatusSnapshot, TimelineResult } from "./contracts";
4
+ import type { FolderContextMaintenanceResult, HealthStatus, LineageNode, MemoryEngine, MemoryExportOptions, MemoryImportOptions, MemorySaveInput, MemorySearchFilters, MemoryStats, MemoryUpdatePatch, MetricsSnapshot, PlatformInfo, RuntimeStatusSnapshot, TimelineResult } from "./contracts";
5
5
  interface EngineDeps {
6
6
  observations: ObservationStore;
7
7
  sessions: SessionStore;
@@ -1 +1 @@
1
- {"version":3,"file":"memory-engine.d.ts","sourceRoot":"","sources":["../../src/core/memory-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-engine.d.ts","sourceRoot":"","sources":["../../src/core/memory-engine.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EACX,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACX,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EACX,8BAA8B,EAC9B,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,MAAM,aAAa,CAAC;AAErB,UAAU,UAAU;IACnB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,YAAY,CAAC;IACxB,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,mBAAmB,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAClD,uBAAuB,CAAC,EAAE,CAAC,MAAM,qBAAqB,CAAC,GAAG,IAAI,CAAC;IAC/D,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC3C,uBAAuB,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;CACzD;AAsCD,UAAU,gBAAgB;IACzB,IAAI,IAAI,gBAAgB,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAAC;IAC7C,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACtC;AAED,UAAU,uBAAuB;IAChC,IAAI,IAAI,sBAAsB,EAAE,CAAC;IACjC,MAAM,CAAC,IAAI,EAAE,sBAAsB,GAAG,IAAI,CAAC;CAC3C;AAED,qBAAa,mBAAoB,YAAW,YAAY;IACvD,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,mBAAmB,CAA8B;IACzD,OAAO,CAAC,uBAAuB,CAAuC;IACtE,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,uBAAuB,CAAiC;IAChE,OAAO,CAAC,sBAAsB,CAA0B;IACxD,OAAO,CAAC,sBAAsB,CAAgC;gBAElD,IAAI,EAAE,UAAU;IAa5B,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,sBAAsB;IAoBxB,MAAM,CAAC,MAAM,EAAE;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,IAAI,CAAC;IAIX,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKpD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAcjF,QAAQ,CAAC,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAqBtF,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAqBzD,IAAI,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IA8CzD,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAS7D,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAYtC,MAAM,CACX,KAAK,EAAE,SAAS,EAChB,OAAO,GAAE,mBAAwB,GAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAoC7B,MAAM,CACX,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,mBAAwB,GAC/B,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAuE3C,YAAY,CACjB,UAAU,CAAC,EAAE,MAAM,EACnB,IAAI,GAAE,QAAQ,GAAG,YAAuB,GACtC,OAAO,CAAC,MAAM,CAAC;IAqDlB,KAAK,IAAI,MAAM;IAWf,gBAAgB,CAAC,KAAK,EAAE;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,SAAS,GAAG,YAAY,GAAG,YAAY,CAAC;KAChD,GAAG,WAAW,EAAE;IA2BjB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAI9C,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,IAAI;IA2C5C,YAAY,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,CAAC;QACpE,EAAE,EAAE,MAAM,CAAC;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;QACxC,gBAAgB,EAAE,MAAM,CAAC;QACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,CAAC;IAIF,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAU7C,KAAK,IAAI,WAAW;IAyBd,qBAAqB,CAC1B,MAAM,EAAE,OAAO,GAAG,SAAS,EAC3B,MAAM,EAAE,OAAO,GACb,OAAO,CAAC,8BAA8B,CAAC;IAe1C,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAyCnE,SAAS,IAAI,YAAY;IAmBzB,UAAU,IAAI,eAAe;IAc7B,YAAY,IAAI,YAAY;IAS5B,kBAAkB,IAAI,aAAa,EAAE;IA8CrC,sBAAsB,IAAI,gBAAgB,EAAE;IAK5C,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAQzC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAsCvE,qBAAqB,IAAI,sBAAsB,EAAE;IAKjD,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,GAAG,IAAI;CAO1D"}
package/dist/cursor.js CHANGED
@@ -225,7 +225,7 @@ Respond with EXACTLY this XML format:
225
225
  FROM observation_embeddings
226
226
  WHERE embedding MATCH ? AND k = ?`,[K,B]).map((E)=>({observationId:E.observation_id,distance:E.distance}))}catch{return[]}}searchVecSubset(f,B,K){if(B.length===0)return[];try{let E=new Float32Array(f),J=Math.max(K*5,B.length),z=this.db.all(`SELECT observation_id, distance
227
227
  FROM observation_embeddings
228
- WHERE embedding MATCH ? AND k = ?`,[E,J]),$=new Set(B);return z.filter((R)=>$.has(R.observation_id)).slice(0,K).map((R)=>({observationId:R.observation_id,distance:R.distance}))}catch{return[]}}update(f,B){let K=this.getById(f);if(!K)return null;if(Object.keys(B).length===0)return K;let E=this.create({sessionId:K.sessionId,scope:K.scope??"project",type:B.type??K.type,title:B.title??K.title,subtitle:B.subtitle??K.subtitle,facts:B.facts??K.facts,narrative:B.narrative??K.narrative,concepts:B.concepts??K.concepts,filesRead:B.filesRead??K.filesRead,filesModified:B.filesModified??K.filesModified,rawToolOutput:K.rawToolOutput,toolName:"memory.revise",tokenCount:K.tokenCount,discoveryTokens:K.discoveryTokens,importance:B.importance??K.importance});return this.db.run("UPDATE observations SET revision_of = ? WHERE id = ?",[f,E.id]),this.supersede(f,E.id),this.getById(E.id)}supersede(f,B){let K=new Date().toISOString();this.db.run("UPDATE observations SET superseded_by = ?, superseded_at = ? WHERE id = ?",[B,K,f])}delete(f){if(this.db.all("SELECT id FROM observations WHERE id = ?",[f]).length===0)return!1;let K=new Date().toISOString();return this.db.run("UPDATE observations SET deleted_at = ? WHERE id = ?",[K,f]),this.deleteEmbeddingsForObservations([f]),!0}getLineage(f){let B=this.getByIdIncludingArchived(f);if(!B)return[];let K=new Set([B.id]),E=[B];while(E[0].revisionOf){let J=this.getByIdIncludingArchived(E[0].revisionOf);if(!J||K.has(J.id))break;E.unshift(J),K.add(J.id)}while(E[E.length-1].supersededBy){let J=E[E.length-1].supersededBy;if(!J)break;let z=this.getByIdIncludingArchived(J);if(!z||K.has(z.id))break;E.push(z),K.add(z.id)}return E}deleteOlderThan(f){return this.db.all(`DELETE FROM observations
228
+ WHERE embedding MATCH ? AND k = ?`,[E,J]),$=new Set(B);return z.filter((R)=>$.has(R.observation_id)).slice(0,K).map((R)=>({observationId:R.observation_id,distance:R.distance}))}catch{return[]}}update(f,B){let K=this.getById(f);if(!K)return null;if(Object.keys(B).length===0)return K;let E=this.create({sessionId:K.sessionId,scope:K.scope??"project",type:B.type??K.type,title:B.title??K.title,subtitle:B.subtitle??K.subtitle,facts:B.facts??K.facts,narrative:B.narrative??K.narrative,concepts:B.concepts??K.concepts,filesRead:B.filesRead??K.filesRead,filesModified:B.filesModified??K.filesModified,rawToolOutput:K.rawToolOutput,toolName:"mem-revise",tokenCount:K.tokenCount,discoveryTokens:K.discoveryTokens,importance:B.importance??K.importance});return this.db.run("UPDATE observations SET revision_of = ? WHERE id = ?",[f,E.id]),this.supersede(f,E.id),this.getById(E.id)}supersede(f,B){let K=new Date().toISOString();this.db.run("UPDATE observations SET superseded_by = ?, superseded_at = ? WHERE id = ?",[B,K,f])}delete(f){if(this.db.all("SELECT id FROM observations WHERE id = ?",[f]).length===0)return!1;let K=new Date().toISOString();return this.db.run("UPDATE observations SET deleted_at = ? WHERE id = ?",[K,f]),this.deleteEmbeddingsForObservations([f]),!0}getLineage(f){let B=this.getByIdIncludingArchived(f);if(!B)return[];let K=new Set([B.id]),E=[B];while(E[0].revisionOf){let J=this.getByIdIncludingArchived(E[0].revisionOf);if(!J||K.has(J.id))break;E.unshift(J),K.add(J.id)}while(E[E.length-1].supersededBy){let J=E[E.length-1].supersededBy;if(!J)break;let z=this.getByIdIncludingArchived(J);if(!z||K.has(z.id))break;E.push(z),K.add(z.id)}return E}deleteOlderThan(f){return this.db.all(`DELETE FROM observations
229
229
  WHERE (created_at < datetime('now', '-' || ? || ' days') OR deleted_at IS NOT NULL)
230
230
  AND session_id NOT IN (SELECT id FROM sessions WHERE status != 'completed')
231
231
  RETURNING id`,[f]).length}deleteEmbeddingsForObservations(f){if(f.length===0)return;let B=f.map(()=>"?").join(",");try{this.db.run(`DELETE FROM observation_embeddings WHERE observation_id IN (${B})`,f)}catch{}this.db.run(`UPDATE observations SET embedding = NULL WHERE id IN (${B})`,f)}mapRow(f){return{id:f.id,sessionId:f.session_id,scope:f.scope??"project",type:f.type,title:f.title,subtitle:f.subtitle,facts:JSON.parse(f.facts),narrative:f.narrative,concepts:JSON.parse(f.concepts),filesRead:JSON.parse(f.files_read),filesModified:JSON.parse(f.files_modified),rawToolOutput:f.raw_tool_output,toolName:f.tool_name,createdAt:f.created_at,tokenCount:f.token_count,discoveryTokens:f.discovery_tokens??0,importance:f.importance??3,revisionOf:f.revision_of??null,deletedAt:f.deleted_at??null,supersededBy:f.superseded_by??null,supersededAt:f.superseded_at??null}}}import{randomUUID as I0}from"crypto";class t{db;constructor(f){this.db=f}create(f){let B=I0(),K=new Date().toISOString();return this.db.run(`INSERT INTO pending_messages
package/dist/daemon.js CHANGED
@@ -214,7 +214,7 @@ Respond with EXACTLY this XML format:
214
214
  FROM observation_embeddings
215
215
  WHERE embedding MATCH ? AND k = ?`,[$,X]).map((Q)=>({observationId:Q.observation_id,distance:Q.distance}))}catch{return[]}}searchVecSubset(J,X,$){if(X.length===0)return[];try{let Q=new Float32Array(J),Z=Math.max($*5,X.length),H=this.db.all(`SELECT observation_id, distance
216
216
  FROM observation_embeddings
217
- WHERE embedding MATCH ? AND k = ?`,[Q,Z]),W=new Set(X);return H.filter((Y)=>W.has(Y.observation_id)).slice(0,$).map((Y)=>({observationId:Y.observation_id,distance:Y.distance}))}catch{return[]}}update(J,X){let $=this.getById(J);if(!$)return null;if(Object.keys(X).length===0)return $;let Q=this.create({sessionId:$.sessionId,scope:$.scope??"project",type:X.type??$.type,title:X.title??$.title,subtitle:X.subtitle??$.subtitle,facts:X.facts??$.facts,narrative:X.narrative??$.narrative,concepts:X.concepts??$.concepts,filesRead:X.filesRead??$.filesRead,filesModified:X.filesModified??$.filesModified,rawToolOutput:$.rawToolOutput,toolName:"memory.revise",tokenCount:$.tokenCount,discoveryTokens:$.discoveryTokens,importance:X.importance??$.importance});return this.db.run("UPDATE observations SET revision_of = ? WHERE id = ?",[J,Q.id]),this.supersede(J,Q.id),this.getById(Q.id)}supersede(J,X){let $=new Date().toISOString();this.db.run("UPDATE observations SET superseded_by = ?, superseded_at = ? WHERE id = ?",[X,$,J])}delete(J){if(this.db.all("SELECT id FROM observations WHERE id = ?",[J]).length===0)return!1;let $=new Date().toISOString();return this.db.run("UPDATE observations SET deleted_at = ? WHERE id = ?",[$,J]),this.deleteEmbeddingsForObservations([J]),!0}getLineage(J){let X=this.getByIdIncludingArchived(J);if(!X)return[];let $=new Set([X.id]),Q=[X];while(Q[0].revisionOf){let Z=this.getByIdIncludingArchived(Q[0].revisionOf);if(!Z||$.has(Z.id))break;Q.unshift(Z),$.add(Z.id)}while(Q[Q.length-1].supersededBy){let Z=Q[Q.length-1].supersededBy;if(!Z)break;let H=this.getByIdIncludingArchived(Z);if(!H||$.has(H.id))break;Q.push(H),$.add(H.id)}return Q}deleteOlderThan(J){return this.db.all(`DELETE FROM observations
217
+ WHERE embedding MATCH ? AND k = ?`,[Q,Z]),W=new Set(X);return H.filter((Y)=>W.has(Y.observation_id)).slice(0,$).map((Y)=>({observationId:Y.observation_id,distance:Y.distance}))}catch{return[]}}update(J,X){let $=this.getById(J);if(!$)return null;if(Object.keys(X).length===0)return $;let Q=this.create({sessionId:$.sessionId,scope:$.scope??"project",type:X.type??$.type,title:X.title??$.title,subtitle:X.subtitle??$.subtitle,facts:X.facts??$.facts,narrative:X.narrative??$.narrative,concepts:X.concepts??$.concepts,filesRead:X.filesRead??$.filesRead,filesModified:X.filesModified??$.filesModified,rawToolOutput:$.rawToolOutput,toolName:"mem-revise",tokenCount:$.tokenCount,discoveryTokens:$.discoveryTokens,importance:X.importance??$.importance});return this.db.run("UPDATE observations SET revision_of = ? WHERE id = ?",[J,Q.id]),this.supersede(J,Q.id),this.getById(Q.id)}supersede(J,X){let $=new Date().toISOString();this.db.run("UPDATE observations SET superseded_by = ?, superseded_at = ? WHERE id = ?",[X,$,J])}delete(J){if(this.db.all("SELECT id FROM observations WHERE id = ?",[J]).length===0)return!1;let $=new Date().toISOString();return this.db.run("UPDATE observations SET deleted_at = ? WHERE id = ?",[$,J]),this.deleteEmbeddingsForObservations([J]),!0}getLineage(J){let X=this.getByIdIncludingArchived(J);if(!X)return[];let $=new Set([X.id]),Q=[X];while(Q[0].revisionOf){let Z=this.getByIdIncludingArchived(Q[0].revisionOf);if(!Z||$.has(Z.id))break;Q.unshift(Z),$.add(Z.id)}while(Q[Q.length-1].supersededBy){let Z=Q[Q.length-1].supersededBy;if(!Z)break;let H=this.getByIdIncludingArchived(Z);if(!H||$.has(H.id))break;Q.push(H),$.add(H.id)}return Q}deleteOlderThan(J){return this.db.all(`DELETE FROM observations
218
218
  WHERE (created_at < datetime('now', '-' || ? || ' days') OR deleted_at IS NOT NULL)
219
219
  AND session_id NOT IN (SELECT id FROM sessions WHERE status != 'completed')
220
220
  RETURNING id`,[J]).length}deleteEmbeddingsForObservations(J){if(J.length===0)return;let X=J.map(()=>"?").join(",");try{this.db.run(`DELETE FROM observation_embeddings WHERE observation_id IN (${X})`,J)}catch{}this.db.run(`UPDATE observations SET embedding = NULL WHERE id IN (${X})`,J)}mapRow(J){return{id:J.id,sessionId:J.session_id,scope:J.scope??"project",type:J.type,title:J.title,subtitle:J.subtitle,facts:JSON.parse(J.facts),narrative:J.narrative,concepts:JSON.parse(J.concepts),filesRead:JSON.parse(J.files_read),filesModified:JSON.parse(J.files_modified),rawToolOutput:J.raw_tool_output,toolName:J.tool_name,createdAt:J.created_at,tokenCount:J.token_count,discoveryTokens:J.discovery_tokens??0,importance:J.importance??3,revisionOf:J.revision_of??null,deletedAt:J.deleted_at??null,supersededBy:J.superseded_by??null,supersededAt:J.superseded_at??null}}}import{randomUUID as $X}from"crypto";class g{db;constructor(J){this.db=J}create(J){let X=$X(),$=new Date().toISOString();return this.db.run(`INSERT INTO pending_messages
@@ -1 +1 @@
1
- {"version":3,"file":"observations.d.ts","sourceRoot":"","sources":["../../src/db/observations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observations.d.ts","sourceRoot":"","sources":["../../src/db/observations.ts"],"names":[],"mappings":"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"}