@lore-co/core 0.1.1 → 0.1.3

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.
package/dist/engine.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { type AgentInteraction, type AgentTask, type CorrectMemoryDto, type CorrectMemoryResponse, type CreateMemoryDto, type ForgetMemoryDto, type ForgetMemoryResponse, type GetContextResponse, type GetMemoryDto, type GetMemoryResponse, type ListMemoriesDto, type ListMemoriesResponse, type MemoryCategory, type MemoryScope, type ObserveResponse, type RememberResponse } from "./schemas.js";
2
- import type { MemoryExtractor, MemoryRepository, MemoryRetriever } from "./ports.js";
2
+ import type { MemoryExtractor, MemoryRepository, MemoryRetriever, RepositoryContext } from "./ports.js";
3
3
  export interface SharedMemoryEngineDependencies {
4
4
  repository: MemoryRepository;
5
5
  extractor: MemoryExtractor;
@@ -21,10 +21,10 @@ export declare class SharedMemoryEngine {
21
21
  workspaceId?: string;
22
22
  }): Promise<GetContextResponse>;
23
23
  remember(input: CreateMemoryDto): Promise<RememberResponse>;
24
- correct(input: CorrectMemoryDto): Promise<CorrectMemoryResponse>;
25
- forget(input: ForgetMemoryDto | string): Promise<ForgetMemoryResponse>;
26
- listMemories(input?: ListMemoriesDto): Promise<ListMemoriesResponse>;
27
- getMemory(input: GetMemoryDto | string): Promise<GetMemoryResponse>;
24
+ correct(input: CorrectMemoryDto, context?: RepositoryContext): Promise<CorrectMemoryResponse>;
25
+ forget(input: ForgetMemoryDto | string, context?: RepositoryContext): Promise<ForgetMemoryResponse>;
26
+ listMemories(input?: ListMemoriesDto, context?: RepositoryContext): Promise<ListMemoriesResponse>;
27
+ getMemory(input: GetMemoryDto | string, context?: RepositoryContext): Promise<GetMemoryResponse>;
28
28
  }
29
29
  export { SharedMemoryEngine as LoreEngine };
30
30
  //# sourceMappingURL=engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AACA,OAAO,EAWL,KAAK,gBAAgB,EACrB,KAAK,SAAS,EAEd,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAEzB,KAAK,cAAc,EACnB,KAAK,WAAW,EAEhB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,8BAA8B;IAC7C,UAAU,EAAE,gBAAgB,CAAC;IAC7B,SAAS,EAAE,eAAe,CAAC;IAC3B,SAAS,EAAE,eAAe,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AA8CD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,cAAc,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC,GAAG,MAAM,CAYT;AAiID,qBAAa,kBAAkB;;gBAMjB,YAAY,EAAE,8BAA8B;gBAEtD,UAAU,EAAE,gBAAgB,EAC5B,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,eAAe;IAmCtB,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAkJrE,UAAU,CACd,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GACjC,OAAO,CAAC,kBAAkB,CAAC;IAKxB,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6B3D,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA2BhE,MAAM,CACV,KAAK,EAAE,eAAe,GAAG,MAAM,GAC9B,OAAO,CAAC,oBAAoB,CAAC;IAW1B,YAAY,CAChB,KAAK,GAAE,eAAoB,GAC1B,OAAO,CAAC,oBAAoB,CAAC;IAI1B,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAM1E;AAED,OAAO,EAAE,kBAAkB,IAAI,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AACA,OAAO,EAWL,KAAK,gBAAgB,EACrB,KAAK,SAAS,EAEd,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAEzB,KAAK,cAAc,EACnB,KAAK,WAAW,EAEhB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,8BAA8B;IAC7C,UAAU,EAAE,gBAAgB,CAAC;IAC7B,SAAS,EAAE,eAAe,CAAC;IAC3B,SAAS,EAAE,eAAe,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AA8CD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,cAAc,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC,GAAG,MAAM,CAYT;AAkID,qBAAa,kBAAkB;;gBAMjB,YAAY,EAAE,8BAA8B;gBAEtD,UAAU,EAAE,gBAAgB,EAC5B,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,eAAe;IAmCtB,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAqJrE,UAAU,CACd,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GACjC,OAAO,CAAC,kBAAkB,CAAC;IASxB,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6B3D,OAAO,CACX,KAAK,EAAE,gBAAgB,EACvB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC;IAyC3B,MAAM,CACV,KAAK,EAAE,eAAe,GAAG,MAAM,EAC/B,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,oBAAoB,CAAC;IAe1B,YAAY,CAChB,KAAK,GAAE,eAAoB,EAC3B,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,oBAAoB,CAAC;IAI1B,SAAS,CACb,KAAK,EAAE,YAAY,GAAG,MAAM,EAC5B,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,iBAAiB,CAAC;CAM9B;AAED,OAAO,EAAE,kBAAkB,IAAI,UAAU,EAAE,CAAC"}
package/dist/engine.js CHANGED
@@ -77,6 +77,7 @@ function createMemory(input) {
77
77
  supersedesMemoryId,
78
78
  createdAt: timestamp,
79
79
  updatedAt: timestamp,
80
+ suppressedAt: null,
80
81
  deletedAt: null,
81
82
  });
82
83
  }
@@ -254,7 +255,9 @@ export class SharedMemoryEngine {
254
255
  }
255
256
  }
256
257
  else {
257
- const result = await this.#repository.supersede(supersedesMemoryId, memory);
258
+ const result = await this.#repository.supersede(supersedesMemoryId, memory, interaction.workspaceId === undefined
259
+ ? undefined
260
+ : { workspaceId: interaction.workspaceId });
258
261
  stored.push(result.memory);
259
262
  if (result.memory.id === memory.id) {
260
263
  created += 1;
@@ -275,7 +278,11 @@ export class SharedMemoryEngine {
275
278
  }
276
279
  async getContext(taskInput, context) {
277
280
  const task = AgentTaskSchema.parse(taskInput);
278
- return { memories: await this.#retriever.retrieve(task, context) };
281
+ const hits = await this.#retriever.retrieve(task, context);
282
+ return {
283
+ memories: hits.map((hit) => hit.memory),
284
+ hits,
285
+ };
279
286
  }
280
287
  async remember(input) {
281
288
  const value = CreateMemoryDtoSchema.parse(input);
@@ -302,43 +309,56 @@ export class SharedMemoryEngine {
302
309
  confirmation: "explicit",
303
310
  }));
304
311
  }
305
- async correct(input) {
312
+ async correct(input, context = {}) {
306
313
  const value = CorrectMemoryDtoSchema.parse(input);
307
- const current = await this.#repository.get(value.memoryId);
314
+ const current = await this.#repository.get(value.memoryId, context);
308
315
  if (current === null) {
309
316
  throw new Error(`Memory not found: ${value.memoryId}`);
310
317
  }
311
- if (current.status !== "active") {
312
- throw new Error(`Only active memories can be corrected: ${value.memoryId} is ${current.status}`);
318
+ if (current.status !== "active" && current.status !== "suppressed") {
319
+ throw new Error(`Only active or suppressed memories can be corrected: ${value.memoryId} is ${current.status}`);
313
320
  }
321
+ const content = redactSensitiveText(value.content);
322
+ const requestedSource = value.source ?? current.source;
323
+ const rawText = requestedSource.rawText === undefined ||
324
+ requestedSource.rawText === null
325
+ ? undefined
326
+ : redactSensitiveText(requestedSource.rawText);
327
+ const source = {
328
+ ...requestedSource,
329
+ ...(rawText === undefined ? {} : { rawText: rawText.text }),
330
+ ...((content.redacted || rawText?.redacted) === true
331
+ ? { redacted: true }
332
+ : {}),
333
+ };
314
334
  const replacement = createMemory({
315
335
  ...(current.workspaceId === undefined
316
336
  ? {}
317
337
  : { workspaceId: current.workspaceId }),
318
- content: redactSensitiveText(value.content).text,
338
+ content: content.text,
319
339
  scope: value.scope ?? current.scope,
320
340
  category: value.category ?? "correction",
321
- source: value.source ?? current.source,
341
+ source,
322
342
  confidence: 1,
323
343
  confirmation: "explicit",
324
344
  supersedesMemoryId: current.id,
325
345
  });
326
- return this.#repository.supersede(current.id, replacement);
346
+ return this.#repository.supersede(current.id, replacement, context);
327
347
  }
328
- async forget(input) {
348
+ async forget(input, context = {}) {
329
349
  const value = ForgetMemoryDtoSchema.parse(typeof input === "string" ? { id: input } : input);
330
- const memory = await this.#repository.softDelete(value.id);
350
+ const memory = await this.#repository.softDelete(value.id, undefined, context);
331
351
  if (memory === null) {
332
352
  throw new Error(`Memory not found: ${value.id}`);
333
353
  }
334
354
  return { memory };
335
355
  }
336
- async listMemories(input = {}) {
337
- return this.#repository.list(ListMemoriesDtoSchema.parse(input));
356
+ async listMemories(input = {}, context = {}) {
357
+ return this.#repository.list(ListMemoriesDtoSchema.parse(input), context);
338
358
  }
339
- async getMemory(input) {
359
+ async getMemory(input, context = {}) {
340
360
  const value = GetMemoryDtoSchema.parse(typeof input === "string" ? { id: input } : input);
341
- return { memory: await this.#repository.get(value.id) };
361
+ return { memory: await this.#repository.get(value.id, context) };
342
362
  }
343
363
  }
344
364
  export { SharedMemoryEngine as LoreEngine };
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,15 @@
1
1
  import { type InsertMemoryResult, type ListMemoriesDto, type ListMemoriesResponse, type Memory, type MemoryScope, type MemoryUpdate } from "./schemas.js";
2
- import type { FindActiveCandidatesOptions, MemoryRepository, SupersedeMemoryResult } from "./ports.js";
2
+ import type { FindActiveCandidatesOptions, MemoryRepository, RepositoryContext, SupersedeMemoryResult } from "./ports.js";
3
3
  export declare function memoryScopeAppliesTo(memoryScope: MemoryScope, taskScope: MemoryScope): boolean;
4
4
  export declare class InMemoryMemoryRepository implements MemoryRepository {
5
5
  #private;
6
6
  constructor(initialMemories?: readonly Memory[]);
7
7
  insert(memoryInput: Memory): Promise<InsertMemoryResult>;
8
- get(id: string): Promise<Memory | null>;
9
- list(input?: ListMemoriesDto): Promise<ListMemoriesResponse>;
10
- update(id: string, updateInput: MemoryUpdate): Promise<Memory | null>;
11
- softDelete(id: string, deletedAt?: string): Promise<Memory | null>;
8
+ get(id: string, context?: RepositoryContext): Promise<Memory | null>;
9
+ list(input?: ListMemoriesDto, context?: RepositoryContext): Promise<ListMemoriesResponse>;
10
+ update(id: string, updateInput: MemoryUpdate, context?: RepositoryContext): Promise<Memory | null>;
11
+ softDelete(id: string, deletedAt?: string, context?: RepositoryContext): Promise<Memory | null>;
12
12
  findActiveScopeCandidates(scope: MemoryScope, options?: FindActiveCandidatesOptions): Promise<Memory[]>;
13
- supersede(memoryId: string, replacementInput: Memory): Promise<SupersedeMemoryResult>;
13
+ supersede(memoryId: string, replacementInput: Memory, context?: RepositoryContext): Promise<SupersedeMemoryResult>;
14
14
  }
15
15
  //# sourceMappingURL=in-memory-repository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-repository.d.ts","sourceRoot":"","sources":["../src/in-memory-repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,2BAA2B,EAC3B,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAcpB,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,WAAW,GACrB,OAAO,CAQT;AAMD,qBAAa,wBAAyB,YAAW,gBAAgB;;gBAInD,eAAe,GAAE,SAAS,MAAM,EAAO;IAkB7C,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoBxD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKvC,IAAI,CAAC,KAAK,GAAE,eAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA4ChE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAyDrE,UAAU,CACd,EAAE,EAAE,MAAM,EACV,SAAS,SAA2B,GACnC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgBnB,yBAAyB,CAC7B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,MAAM,EAAE,CAAC;IAkDd,SAAS,CACb,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,qBAAqB,CAAC;CAgElC"}
1
+ {"version":3,"file":"in-memory-repository.d.ts","sourceRoot":"","sources":["../src/in-memory-repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,2BAA2B,EAC3B,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAsBpB,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,WAAW,GACrB,OAAO,CAQT;AAMD,qBAAa,wBAAyB,YAAW,gBAAgB;;gBAInD,eAAe,GAAE,SAAS,MAAM,EAAO;IAkB7C,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoBxD,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IASxE,IAAI,CACR,KAAK,GAAE,eAAoB,EAC3B,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,oBAAoB,CAAC;IAkD1B,MAAM,CACV,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,YAAY,EACzB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA6DnB,UAAU,CACd,EAAE,EAAE,MAAM,EACV,SAAS,SAA2B,EACpC,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAyBnB,yBAAyB,CAC7B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,MAAM,EAAE,CAAC;IA2Dd,SAAS,CACb,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC;CAqElC"}
@@ -3,6 +3,12 @@ import { createMemoryFingerprint } from "./engine.js";
3
3
  function copyMemory(memory) {
4
4
  return structuredClone(memory);
5
5
  }
6
+ function fingerprintKey(memory) {
7
+ return `${memory.workspaceId ?? memory.source.workspaceId ?? ""}\0${memory.fingerprint}`;
8
+ }
9
+ function reservesFingerprint(memory) {
10
+ return memory.status === "active" || memory.status === "suppressed";
11
+ }
6
12
  function scopeValueMatches(memoryValue, taskValue) {
7
13
  return memoryValue === undefined || memoryValue === taskValue;
8
14
  }
@@ -22,19 +28,19 @@ export class InMemoryMemoryRepository {
22
28
  constructor(initialMemories = []) {
23
29
  for (const initialMemory of initialMemories) {
24
30
  const memory = MemorySchema.parse(initialMemory);
25
- if (memory.status === "active" &&
26
- this.#fingerprints.has(memory.fingerprint)) {
31
+ if (reservesFingerprint(memory) &&
32
+ this.#fingerprints.has(fingerprintKey(memory))) {
27
33
  throw new Error(`Duplicate initial memory fingerprint: ${memory.fingerprint}`);
28
34
  }
29
35
  this.#memories.set(memory.id, copyMemory(memory));
30
- if (memory.status === "active") {
31
- this.#fingerprints.set(memory.fingerprint, memory.id);
36
+ if (reservesFingerprint(memory)) {
37
+ this.#fingerprints.set(fingerprintKey(memory), memory.id);
32
38
  }
33
39
  }
34
40
  }
35
41
  async insert(memoryInput) {
36
42
  const memory = MemorySchema.parse(memoryInput);
37
- const existingId = this.#fingerprints.get(memory.fingerprint);
43
+ const existingId = this.#fingerprints.get(fingerprintKey(memory));
38
44
  if (existingId !== undefined) {
39
45
  const existing = this.#memories.get(existingId);
40
46
  if (existing === undefined) {
@@ -46,14 +52,18 @@ export class InMemoryMemoryRepository {
46
52
  throw new Error(`Memory ID already exists: ${memory.id}`);
47
53
  }
48
54
  this.#memories.set(memory.id, copyMemory(memory));
49
- this.#fingerprints.set(memory.fingerprint, memory.id);
55
+ this.#fingerprints.set(fingerprintKey(memory), memory.id);
50
56
  return { memory: copyMemory(memory), inserted: true };
51
57
  }
52
- async get(id) {
58
+ async get(id, context = {}) {
53
59
  const memory = this.#memories.get(id);
54
- return memory === undefined ? null : copyMemory(memory);
60
+ return memory === undefined ||
61
+ (context.workspaceId !== undefined &&
62
+ memory.workspaceId !== context.workspaceId)
63
+ ? null
64
+ : copyMemory(memory);
55
65
  }
56
- async list(input = {}) {
66
+ async list(input = {}, context = {}) {
57
67
  const filters = ListMemoriesDtoSchema.parse(input);
58
68
  const categories = toArray(filters.category);
59
69
  const statuses = toArray(filters.status);
@@ -62,6 +72,10 @@ export class InMemoryMemoryRepository {
62
72
  const limit = filters.limit ?? 50;
63
73
  const matching = [...this.#memories.values()]
64
74
  .filter((memory) => {
75
+ if (context.workspaceId !== undefined &&
76
+ memory.workspaceId !== context.workspaceId) {
77
+ return false;
78
+ }
65
79
  if (filters.scope !== undefined &&
66
80
  !memoryScopeAppliesTo(filters.scope, memory.scope)) {
67
81
  return false;
@@ -85,9 +99,11 @@ export class InMemoryMemoryRepository {
85
99
  offset,
86
100
  };
87
101
  }
88
- async update(id, updateInput) {
102
+ async update(id, updateInput, context = {}) {
89
103
  const current = this.#memories.get(id);
90
- if (current === undefined) {
104
+ if (current === undefined ||
105
+ (context.workspaceId !== undefined &&
106
+ current.workspaceId !== context.workspaceId)) {
91
107
  return null;
92
108
  }
93
109
  const update = MemoryUpdateSchema.parse(updateInput);
@@ -121,24 +137,26 @@ export class InMemoryMemoryRepository {
121
137
  fingerprint,
122
138
  updatedAt: update.updatedAt ?? new Date().toISOString(),
123
139
  });
124
- if (next.status === "active") {
125
- const existingId = this.#fingerprints.get(next.fingerprint);
140
+ if (reservesFingerprint(next)) {
141
+ const existingId = this.#fingerprints.get(fingerprintKey(next));
126
142
  if (existingId !== undefined && existingId !== id) {
127
143
  throw new Error(`Memory fingerprint already exists: ${next.fingerprint}`);
128
144
  }
129
145
  }
130
- if (current.status === "active") {
131
- this.#fingerprints.delete(current.fingerprint);
146
+ if (reservesFingerprint(current)) {
147
+ this.#fingerprints.delete(fingerprintKey(current));
132
148
  }
133
- if (next.status === "active") {
134
- this.#fingerprints.set(next.fingerprint, id);
149
+ if (reservesFingerprint(next)) {
150
+ this.#fingerprints.set(fingerprintKey(next), id);
135
151
  }
136
152
  this.#memories.set(id, copyMemory(next));
137
153
  return copyMemory(next);
138
154
  }
139
- async softDelete(id, deletedAt = new Date().toISOString()) {
155
+ async softDelete(id, deletedAt = new Date().toISOString(), context = {}) {
140
156
  const current = this.#memories.get(id);
141
- if (current === undefined) {
157
+ if (current === undefined ||
158
+ (context.workspaceId !== undefined &&
159
+ current.workspaceId !== context.workspaceId)) {
142
160
  return null;
143
161
  }
144
162
  if (current.status === "deleted") {
@@ -146,9 +164,10 @@ export class InMemoryMemoryRepository {
146
164
  }
147
165
  return this.update(id, {
148
166
  status: "deleted",
167
+ suppressedAt: null,
149
168
  deletedAt,
150
169
  updatedAt: deletedAt,
151
- });
170
+ }, context);
152
171
  }
153
172
  async findActiveScopeCandidates(scope, options = {}) {
154
173
  const keywords = options.keywords
@@ -171,6 +190,12 @@ export class InMemoryMemoryRepository {
171
190
  path.startsWith(`${memory.scope.path}/`))) &&
172
191
  (memory.scope.component === undefined ||
173
192
  components.has(memory.scope.component)) &&
193
+ (options.requirePathOrComponentMatch !== true ||
194
+ (memory.scope.path !== undefined &&
195
+ paths.some((path) => path === memory.scope.path ||
196
+ path.startsWith(`${memory.scope.path}/`))) ||
197
+ (memory.scope.component !== undefined &&
198
+ components.has(memory.scope.component))) &&
174
199
  (keywords === undefined ||
175
200
  keywords.length === 0 ||
176
201
  keywords.some((keyword) => memory.content.toLocaleLowerCase().includes(keyword))))
@@ -179,16 +204,18 @@ export class InMemoryMemoryRepository {
179
204
  .slice(0, limit)
180
205
  .map(copyMemory);
181
206
  }
182
- async supersede(memoryId, replacementInput) {
207
+ async supersede(memoryId, replacementInput, context = {}) {
183
208
  const current = this.#memories.get(memoryId);
184
- if (current === undefined) {
209
+ if (current === undefined ||
210
+ (context.workspaceId !== undefined &&
211
+ current.workspaceId !== context.workspaceId)) {
185
212
  throw new Error(`Memory not found: ${memoryId}`);
186
213
  }
187
214
  const replacement = MemorySchema.parse(replacementInput);
188
215
  if (replacement.supersedesMemoryId !== memoryId) {
189
216
  throw new Error("Replacement must reference the memory it supersedes");
190
217
  }
191
- const existingId = this.#fingerprints.get(replacement.fingerprint);
218
+ const existingId = this.#fingerprints.get(fingerprintKey(replacement));
192
219
  if (current.status === "superseded") {
193
220
  const existing = existingId === undefined ? undefined : this.#memories.get(existingId);
194
221
  if (existing?.supersedesMemoryId === memoryId) {
@@ -199,8 +226,8 @@ export class InMemoryMemoryRepository {
199
226
  }
200
227
  throw new Error(`Memory has already been superseded: ${memoryId}`);
201
228
  }
202
- if (current.status !== "active") {
203
- throw new Error(`Only active memories can be superseded: ${memoryId} is ${current.status}`);
229
+ if (current.status !== "active" && current.status !== "suppressed") {
230
+ throw new Error(`Only active or suppressed memories can be superseded: ${memoryId} is ${current.status}`);
204
231
  }
205
232
  let storedReplacement;
206
233
  if (existingId !== undefined) {
@@ -218,7 +245,7 @@ export class InMemoryMemoryRepository {
218
245
  throw new Error(`Memory ID already exists: ${replacement.id}`);
219
246
  }
220
247
  this.#memories.set(replacement.id, copyMemory(replacement));
221
- this.#fingerprints.set(replacement.fingerprint, replacement.id);
248
+ this.#fingerprints.set(fingerprintKey(replacement), replacement.id);
222
249
  storedReplacement = replacement;
223
250
  }
224
251
  const timestamp = replacement.createdAt;
@@ -226,8 +253,9 @@ export class InMemoryMemoryRepository {
226
253
  ...current,
227
254
  status: "superseded",
228
255
  updatedAt: timestamp,
256
+ suppressedAt: null,
229
257
  });
230
- this.#fingerprints.delete(current.fingerprint);
258
+ this.#fingerprints.delete(fingerprintKey(current));
231
259
  this.#memories.set(memoryId, copyMemory(superseded));
232
260
  return {
233
261
  memory: copyMemory(storedReplacement),
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-repository.js","sourceRoot":"","sources":["../src/in-memory-repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"in-memory-repository.js","sourceRoot":"","sources":["../src/in-memory-repository.ts"],"names":[],"mappings":"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"}