@lore-co/core 0.1.2 → 0.1.4

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.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { createHash, randomUUID } from "node:crypto";
2
- import { AgentInteractionSchema, AgentTaskSchema, CandidateMemorySchema, CorrectMemoryDtoSchema, CreateMemoryDtoSchema, ForgetMemoryDtoSchema, GetMemoryDtoSchema, ListMemoriesDtoSchema, MemorySchema, normalizeInteractionScope, } from "./schemas.js";
3
- import { redactSensitiveText } from "./redaction.js";
2
+ import { AgentInteractionSchema, AgentTaskSchema, CandidateMemorySchema, CorrectMemoryDtoSchema, CreateMemoryDtoSchema, ForgetMemoryDtoSchema, GetMemoryDtoSchema, ListMemoriesDtoSchema, MemoryConflictSchema, MemorySchema, normalizeInteractionScope, ProposalMetadataSchema, RecordProposalConflictDtoSchema, ReviewProposalDtoSchema, UpdateWorkspaceLearningPolicySchema, WorkspaceLearningPolicySchema, } from "./schemas.js";
3
+ import { redactSensitiveText, redactUnknown } from "./redaction.js";
4
+ import { ScopedMemoryConflictDetector } from "./conflict-detector.js";
4
5
  function normalizedContent(content) {
5
6
  return content.trim().replace(/\s+/gu, " ");
6
7
  }
@@ -35,6 +36,40 @@ function tokenOverlap(left, right) {
35
36
  const rightSet = new Set(right);
36
37
  return left.filter((token) => rightSet.has(token)).length / left.length;
37
38
  }
39
+ const ORGANIZATION_SCOPE_SIGNAL = /\b(?:(?:organization|org|team|company)[ -]wide|across\s+(?:the\s+)?(?:entire\s+|whole\s+)?(?:organization|org|team|company)|across\s+(?:all|every)\s+(?:repositories|repos)|(?:all|every)\s+(?:repositories|repos))\b/iu;
40
+ function isExplicitOrganizationCandidate(candidate) {
41
+ if (candidate.category !== "correction" ||
42
+ candidate.confirmation !== "explicit" ||
43
+ candidate.scopeIntent !== "organization" ||
44
+ candidate.scopeEvidence?.basis !== "explicit_user_statement") {
45
+ return false;
46
+ }
47
+ const rawText = candidate.rawText;
48
+ if (rawText === undefined) {
49
+ return false;
50
+ }
51
+ const evidence = candidate.scopeEvidence.excerpt;
52
+ return (normalizedComparison(rawText).includes(normalizedComparison(evidence)) &&
53
+ ORGANIZATION_SCOPE_SIGNAL.test(evidence));
54
+ }
55
+ function resolveCandidateScope(taskScope, candidate, reconciliationTarget) {
56
+ if (reconciliationTarget !== undefined) {
57
+ return reconciliationTarget.scope;
58
+ }
59
+ if (isExplicitOrganizationCandidate(candidate) &&
60
+ taskScope.organization !== undefined) {
61
+ return { organization: taskScope.organization };
62
+ }
63
+ if (taskScope.repo === undefined) {
64
+ return undefined;
65
+ }
66
+ return {
67
+ ...(taskScope.organization === undefined
68
+ ? {}
69
+ : { organization: taskScope.organization }),
70
+ repo: taskScope.repo,
71
+ };
72
+ }
38
73
  export function createMemoryFingerprint(input) {
39
74
  const canonical = JSON.stringify([
40
75
  normalizedContent(input.content).normalize("NFKC"),
@@ -59,7 +94,7 @@ function createMemory(input) {
59
94
  content: normalizedContent(input.content),
60
95
  scope: input.scope,
61
96
  category: input.category,
62
- status: "active",
97
+ status: input.status ?? "active",
63
98
  source: input.source,
64
99
  ...(input.confidence === undefined ? {} : { confidence: input.confidence }),
65
100
  ...(input.confirmation === undefined
@@ -77,6 +112,7 @@ function createMemory(input) {
77
112
  supersedesMemoryId,
78
113
  createdAt: timestamp,
79
114
  updatedAt: timestamp,
115
+ suppressedAt: null,
80
116
  deletedAt: null,
81
117
  });
82
118
  }
@@ -141,6 +177,7 @@ export class SharedMemoryEngine {
141
177
  #repository;
142
178
  #extractor;
143
179
  #retriever;
180
+ #conflictDetector;
144
181
  #minimumConfidence;
145
182
  constructor(dependenciesOrRepository, extractor, retriever) {
146
183
  if ("repository" in dependenciesOrRepository &&
@@ -149,6 +186,9 @@ export class SharedMemoryEngine {
149
186
  this.#repository = dependenciesOrRepository.repository;
150
187
  this.#extractor = dependenciesOrRepository.extractor;
151
188
  this.#retriever = dependenciesOrRepository.retriever;
189
+ this.#conflictDetector =
190
+ dependenciesOrRepository.conflictDetector ??
191
+ new ScopedMemoryConflictDetector(dependenciesOrRepository.retriever);
152
192
  this.#minimumConfidence = Math.min(Math.max(dependenciesOrRepository.minimumConfidence ?? 0.8, 0), 1);
153
193
  return;
154
194
  }
@@ -158,6 +198,7 @@ export class SharedMemoryEngine {
158
198
  this.#repository = dependenciesOrRepository;
159
199
  this.#extractor = extractor;
160
200
  this.#retriever = retriever;
201
+ this.#conflictDetector = new ScopedMemoryConflictDetector(retriever);
161
202
  this.#minimumConfidence = 0.8;
162
203
  }
163
204
  async observe(interactionInput) {
@@ -167,6 +208,10 @@ export class SharedMemoryEngine {
167
208
  if (Object.keys(scope).length === 0) {
168
209
  throw new Error("Observed learnings require an organization, project, repository, path, or component scope");
169
210
  }
211
+ const workspacePolicy = interaction.workspaceId === undefined
212
+ ? undefined
213
+ : await this.#repository.getWorkspaceLearningPolicy(interaction.workspaceId);
214
+ const learningMode = workspacePolicy?.learningMode ?? "trust_tiered";
170
215
  const candidates = (await this.#extractor.extract(interaction))
171
216
  .map((candidate) => {
172
217
  const content = redactSensitiveText(candidate.content);
@@ -176,6 +221,9 @@ export class SharedMemoryEngine {
176
221
  const supersedesContent = candidate.supersedesContent === undefined
177
222
  ? undefined
178
223
  : redactSensitiveText(candidate.supersedesContent);
224
+ const scopeEvidence = candidate.scopeEvidence === undefined
225
+ ? undefined
226
+ : redactSensitiveText(candidate.scopeEvidence.excerpt);
179
227
  return CandidateMemorySchema.parse({
180
228
  ...candidate,
181
229
  content: content.text,
@@ -183,6 +231,14 @@ export class SharedMemoryEngine {
183
231
  ...(supersedesContent === undefined
184
232
  ? {}
185
233
  : { supersedesContent: supersedesContent.text }),
234
+ ...(scopeEvidence === undefined
235
+ ? {}
236
+ : {
237
+ scopeEvidence: {
238
+ ...candidate.scopeEvidence,
239
+ excerpt: scopeEvidence.text,
240
+ },
241
+ }),
186
242
  });
187
243
  })
188
244
  .filter((candidate) => candidate.confidence >= this.#minimumConfidence);
@@ -222,21 +278,40 @@ export class SharedMemoryEngine {
222
278
  : { eventId: interaction.eventId }),
223
279
  ...(sourceWasRedacted ? { redacted: true } : {}),
224
280
  };
225
- const equivalent = await findEquivalentMemory(this.#repository, scope, candidate, interaction.workspaceId);
281
+ const explicitTarget = candidate.supersedesMemoryId === undefined
282
+ ? undefined
283
+ : await this.#repository.get(candidate.supersedesMemoryId, interaction.workspaceId === undefined
284
+ ? undefined
285
+ : { workspaceId: interaction.workspaceId });
286
+ if (candidate.supersedesMemoryId !== undefined &&
287
+ explicitTarget === null) {
288
+ throw new Error(`Correction target not found: ${candidate.supersedesMemoryId}`);
289
+ }
290
+ const inferredTarget = explicitTarget === undefined
291
+ ? await findReconciliationTarget(this.#repository, scope, candidate, interaction.workspaceId)
292
+ : undefined;
293
+ const reconciliationTarget = explicitTarget ?? inferredTarget;
294
+ const candidateScope = resolveCandidateScope(scope, candidate, reconciliationTarget ?? undefined);
295
+ if (candidateScope === undefined) {
296
+ continue;
297
+ }
298
+ const equivalent = await findEquivalentMemory(this.#repository, candidateScope, candidate, interaction.workspaceId);
226
299
  if (equivalent !== undefined) {
227
300
  stored.push(equivalent);
228
301
  continue;
229
302
  }
230
- const inferredTarget = candidate.supersedesMemoryId === undefined
231
- ? await findReconciliationTarget(this.#repository, scope, candidate, interaction.workspaceId)
232
- : undefined;
233
- const supersedesMemoryId = candidate.supersedesMemoryId ?? inferredTarget?.id;
303
+ const supersedesMemoryId = reconciliationTarget?.id;
304
+ const shouldPropose = interaction.workspaceId !== undefined &&
305
+ (learningMode === "proposal_only" ||
306
+ supersedesMemoryId !== undefined ||
307
+ candidate.category !== "correction" ||
308
+ candidate.confirmation !== "explicit");
234
309
  const memory = createMemory({
235
310
  ...(interaction.workspaceId === undefined
236
311
  ? {}
237
312
  : { workspaceId: interaction.workspaceId }),
238
313
  content: candidate.content,
239
- scope,
314
+ scope: candidateScope,
240
315
  category: candidate.category,
241
316
  source,
242
317
  confidence: candidate.confidence,
@@ -245,8 +320,64 @@ export class SharedMemoryEngine {
245
320
  ? {}
246
321
  : { reconciliationKey: candidate.reconciliationKey }),
247
322
  ...(supersedesMemoryId === undefined ? {} : { supersedesMemoryId }),
323
+ ...(shouldPropose ? { status: "proposed" } : {}),
248
324
  });
249
- if (supersedesMemoryId === undefined) {
325
+ if (shouldPropose) {
326
+ const proposalWorkspaceId = interaction.workspaceId;
327
+ if (proposalWorkspaceId === undefined) {
328
+ throw new Error("Governed proposals require a workspace ID");
329
+ }
330
+ const metadata = ProposalMetadataSchema.parse({
331
+ memoryId: memory.id,
332
+ workspaceId: proposalWorkspaceId,
333
+ policyMode: learningMode,
334
+ reason: learningMode === "proposal_only"
335
+ ? "Workspace policy requires review for automatic captures."
336
+ : supersedesMemoryId === undefined
337
+ ? "Automatic capture was not an explicit human correction."
338
+ : "A deterministic replacement target requires conflict review.",
339
+ provenance: source,
340
+ proposedAt: memory.createdAt,
341
+ decision: null,
342
+ reviewerId: null,
343
+ decisionReason: null,
344
+ decidedAt: null,
345
+ decisionTargetMemoryId: null,
346
+ });
347
+ if (workspacePolicy === undefined) {
348
+ throw new Error("Governed proposals require workspace policy");
349
+ }
350
+ const detected = await this.#conflictDetector.detect({
351
+ proposal: memory,
352
+ ...(reconciliationTarget === undefined
353
+ ? {}
354
+ : { deterministicTarget: reconciliationTarget }),
355
+ policy: workspacePolicy,
356
+ }, { workspaceId: proposalWorkspaceId });
357
+ const conflicts = detected.map((conflict) => {
358
+ const evidence = redactUnknown(conflict.evidence);
359
+ return MemoryConflictSchema.parse({
360
+ id: randomUUID(),
361
+ workspaceId: proposalWorkspaceId,
362
+ proposalMemoryId: memory.id,
363
+ targetMemoryId: conflict.targetMemoryId,
364
+ detector: conflict.detector,
365
+ severity: conflict.detector === "deterministic"
366
+ ? "blocking"
367
+ : "warning",
368
+ evidence: evidence.value,
369
+ createdAt: memory.createdAt,
370
+ resolution: null,
371
+ resolvedAt: null,
372
+ });
373
+ });
374
+ const result = await this.#repository.propose(memory, metadata, conflicts);
375
+ stored.push(result.memory);
376
+ if (result.inserted) {
377
+ created += 1;
378
+ }
379
+ }
380
+ else if (supersedesMemoryId === undefined) {
250
381
  const result = await this.#repository.insert(memory);
251
382
  stored.push(result.memory);
252
383
  if (result.inserted) {
@@ -254,7 +385,9 @@ export class SharedMemoryEngine {
254
385
  }
255
386
  }
256
387
  else {
257
- const result = await this.#repository.supersede(supersedesMemoryId, memory);
388
+ const result = await this.#repository.supersede(supersedesMemoryId, memory, interaction.workspaceId === undefined
389
+ ? undefined
390
+ : { workspaceId: interaction.workspaceId });
258
391
  stored.push(result.memory);
259
392
  if (result.memory.id === memory.id) {
260
393
  created += 1;
@@ -275,7 +408,48 @@ export class SharedMemoryEngine {
275
408
  }
276
409
  async getContext(taskInput, context) {
277
410
  const task = AgentTaskSchema.parse(taskInput);
278
- return { memories: await this.#retriever.retrieve(task, context) };
411
+ const hits = (await this.#retriever.retrieve(task, context)).filter((hit) => hit.memory.status === "active");
412
+ return {
413
+ memories: hits.map((hit) => hit.memory),
414
+ hits,
415
+ };
416
+ }
417
+ async getWorkspaceLearningPolicy(workspaceIdInput) {
418
+ const workspaceId = WorkspaceLearningPolicySchema.shape.workspaceId.parse(workspaceIdInput);
419
+ return this.#repository.getWorkspaceLearningPolicy(workspaceId);
420
+ }
421
+ async updateWorkspaceLearningPolicy(workspaceIdInput, updateInput) {
422
+ const workspaceId = WorkspaceLearningPolicySchema.shape.workspaceId.parse(workspaceIdInput);
423
+ const update = UpdateWorkspaceLearningPolicySchema.parse(updateInput);
424
+ return this.#repository.updateWorkspaceLearningPolicy(workspaceId, update);
425
+ }
426
+ async getProposal(proposalMemoryId, context) {
427
+ const memoryId = ReviewProposalDtoSchema.shape.proposalMemoryId.parse(proposalMemoryId);
428
+ return this.#repository.getProposal(memoryId, context);
429
+ }
430
+ async recordProposalConflict(inputValue, context) {
431
+ const input = RecordProposalConflictDtoSchema.parse(inputValue);
432
+ const redactedEvidence = redactUnknown(input.evidence);
433
+ const conflict = MemoryConflictSchema.parse({
434
+ id: randomUUID(),
435
+ workspaceId: context.workspaceId,
436
+ proposalMemoryId: input.proposalMemoryId,
437
+ targetMemoryId: input.targetMemoryId,
438
+ detector: input.detector,
439
+ severity: input.severity,
440
+ evidence: redactedEvidence.value,
441
+ createdAt: new Date().toISOString(),
442
+ resolution: null,
443
+ resolvedAt: null,
444
+ });
445
+ return (await this.#repository.addProposalConflict(conflict, context)).conflict;
446
+ }
447
+ async reviewProposal(inputValue, context) {
448
+ const input = ReviewProposalDtoSchema.parse(inputValue);
449
+ return this.#repository.reviewProposal({
450
+ ...input,
451
+ reason: redactSensitiveText(input.reason).text,
452
+ }, context);
279
453
  }
280
454
  async remember(input) {
281
455
  const value = CreateMemoryDtoSchema.parse(input);
@@ -302,43 +476,56 @@ export class SharedMemoryEngine {
302
476
  confirmation: "explicit",
303
477
  }));
304
478
  }
305
- async correct(input) {
479
+ async correct(input, context = {}) {
306
480
  const value = CorrectMemoryDtoSchema.parse(input);
307
- const current = await this.#repository.get(value.memoryId);
481
+ const current = await this.#repository.get(value.memoryId, context);
308
482
  if (current === null) {
309
483
  throw new Error(`Memory not found: ${value.memoryId}`);
310
484
  }
311
- if (current.status !== "active") {
312
- throw new Error(`Only active memories can be corrected: ${value.memoryId} is ${current.status}`);
485
+ if (current.status !== "active" && current.status !== "suppressed") {
486
+ throw new Error(`Only active or suppressed memories can be corrected: ${value.memoryId} is ${current.status}`);
313
487
  }
488
+ const content = redactSensitiveText(value.content);
489
+ const requestedSource = value.source ?? current.source;
490
+ const rawText = requestedSource.rawText === undefined ||
491
+ requestedSource.rawText === null
492
+ ? undefined
493
+ : redactSensitiveText(requestedSource.rawText);
494
+ const source = {
495
+ ...requestedSource,
496
+ ...(rawText === undefined ? {} : { rawText: rawText.text }),
497
+ ...((content.redacted || rawText?.redacted) === true
498
+ ? { redacted: true }
499
+ : {}),
500
+ };
314
501
  const replacement = createMemory({
315
502
  ...(current.workspaceId === undefined
316
503
  ? {}
317
504
  : { workspaceId: current.workspaceId }),
318
- content: redactSensitiveText(value.content).text,
505
+ content: content.text,
319
506
  scope: value.scope ?? current.scope,
320
507
  category: value.category ?? "correction",
321
- source: value.source ?? current.source,
508
+ source,
322
509
  confidence: 1,
323
510
  confirmation: "explicit",
324
511
  supersedesMemoryId: current.id,
325
512
  });
326
- return this.#repository.supersede(current.id, replacement);
513
+ return this.#repository.supersede(current.id, replacement, context);
327
514
  }
328
- async forget(input) {
515
+ async forget(input, context = {}) {
329
516
  const value = ForgetMemoryDtoSchema.parse(typeof input === "string" ? { id: input } : input);
330
- const memory = await this.#repository.softDelete(value.id);
517
+ const memory = await this.#repository.softDelete(value.id, undefined, context);
331
518
  if (memory === null) {
332
519
  throw new Error(`Memory not found: ${value.id}`);
333
520
  }
334
521
  return { memory };
335
522
  }
336
- async listMemories(input = {}) {
337
- return this.#repository.list(ListMemoriesDtoSchema.parse(input));
523
+ async listMemories(input = {}, context = {}) {
524
+ return this.#repository.list(ListMemoriesDtoSchema.parse(input), context);
338
525
  }
339
- async getMemory(input) {
526
+ async getMemory(input, context = {}) {
340
527
  const value = GetMemoryDtoSchema.parse(typeof input === "string" ? { id: input } : input);
341
- return { memory: await this.#repository.get(value.id) };
528
+ return { memory: await this.#repository.get(value.id, context) };
342
529
  }
343
530
  }
344
531
  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,21 @@
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";
1
+ import { type InsertMemoryResult, type ListMemoriesDto, type ListMemoriesResponse, type Memory, type MemoryConflict, type MemoryScope, type MemoryUpdate, type ProposalMetadata, type ProposalRecord, type ProposeMemoryResult, type ReviewProposalDto, type ReviewProposalResponse, type UpdateWorkspaceLearningPolicy, type WorkspaceLearningPolicy } from "./schemas.js";
2
+ import type { FindActiveCandidatesOptions, InsertMemoryConflictResult, MemoryRepository, RepositoryContext, SupersedeMemoryResult, WorkspaceRepositoryContext } 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
+ propose(memoryInput: Memory, metadataInput: ProposalMetadata, conflictInputs?: readonly MemoryConflict[]): Promise<ProposeMemoryResult>;
9
+ get(id: string, context?: RepositoryContext): Promise<Memory | null>;
10
+ getProposal(memoryId: string, context?: RepositoryContext): Promise<ProposalRecord | null>;
11
+ addProposalConflict(conflictInput: MemoryConflict, context: WorkspaceRepositoryContext): Promise<InsertMemoryConflictResult>;
12
+ reviewProposal(inputValue: ReviewProposalDto, context: WorkspaceRepositoryContext): Promise<ReviewProposalResponse>;
13
+ getWorkspaceLearningPolicy(workspaceId: string): Promise<WorkspaceLearningPolicy>;
14
+ updateWorkspaceLearningPolicy(workspaceId: string, updateInput: UpdateWorkspaceLearningPolicy): Promise<WorkspaceLearningPolicy>;
15
+ list(input?: ListMemoriesDto, context?: RepositoryContext): Promise<ListMemoriesResponse>;
16
+ update(id: string, updateInput: MemoryUpdate, context?: RepositoryContext): Promise<Memory | null>;
17
+ softDelete(id: string, deletedAt?: string, context?: RepositoryContext): Promise<Memory | null>;
12
18
  findActiveScopeCandidates(scope: MemoryScope, options?: FindActiveCandidatesOptions): Promise<Memory[]>;
13
- supersede(memoryId: string, replacementInput: Memory): Promise<SupersedeMemoryResult>;
19
+ supersede(memoryId: string, replacementInput: Memory, context?: RepositoryContext): Promise<SupersedeMemoryResult>;
14
20
  }
15
21
  //# 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,EASL,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,EAC7B,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,2BAA2B,EAC3B,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAiDpB,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,WAAW,GACrB,OAAO,CAQT;AAMD,qBAAa,wBAAyB,YAAW,gBAAgB;;gBAQnD,eAAe,GAAE,SAAS,MAAM,EAAO;IAkB7C,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAyBxD,OAAO,CACX,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,gBAAgB,EAC/B,cAAc,GAAE,SAAS,cAAc,EAAO,GAC7C,OAAO,CAAC,mBAAmB,CAAC;IA0EzB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IASxE,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAkB3B,mBAAmB,CACvB,aAAa,EAAE,cAAc,EAC7B,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,0BAA0B,CAAC;IAkBhC,cAAc,CAClB,UAAU,EAAE,iBAAiB,EAC7B,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,sBAAsB,CAAC;IAqJ5B,0BAA0B,CAC9B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,uBAAuB,CAAC;IAa7B,6BAA6B,CACjC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,6BAA6B,GACzC,OAAO,CAAC,uBAAuB,CAAC;IAgE7B,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;IAoEnB,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"}