@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.
@@ -1,8 +1,34 @@
1
- import { ListMemoriesDtoSchema, MemorySchema, MemoryUpdateSchema, } from "./schemas.js";
1
+ import { ListMemoriesDtoSchema, MemoryConflictSchema, MemorySchema, MemoryUpdateSchema, ProposalMetadataSchema, ReviewProposalDtoSchema, UpdateWorkspaceLearningPolicySchema, WorkspaceLearningPolicySchema, } from "./schemas.js";
2
2
  import { createMemoryFingerprint } from "./engine.js";
3
3
  function copyMemory(memory) {
4
4
  return structuredClone(memory);
5
5
  }
6
+ function copyProposalMetadata(metadata) {
7
+ return structuredClone(metadata);
8
+ }
9
+ function copyConflict(conflict) {
10
+ return structuredClone(conflict);
11
+ }
12
+ function memoryWorkspaceId(memory) {
13
+ return memory.workspaceId ?? memory.source.workspaceId;
14
+ }
15
+ function fingerprintKey(memory) {
16
+ return `${memoryWorkspaceId(memory) ?? ""}\0${memory.fingerprint}`;
17
+ }
18
+ function reservesFingerprint(memory) {
19
+ return (memory.status === "active" ||
20
+ memory.status === "suppressed" ||
21
+ memory.status === "proposed");
22
+ }
23
+ function conflictEdgeKey(conflict) {
24
+ return [
25
+ conflict.workspaceId,
26
+ conflict.proposalMemoryId,
27
+ conflict.targetMemoryId,
28
+ conflict.detector,
29
+ ].join("\0");
30
+ }
31
+ const DEFAULT_POLICY_UPDATED_AT = "1970-01-01T00:00:00.000Z";
6
32
  function scopeValueMatches(memoryValue, taskValue) {
7
33
  return memoryValue === undefined || memoryValue === taskValue;
8
34
  }
@@ -19,22 +45,29 @@ function toArray(value) {
19
45
  export class InMemoryMemoryRepository {
20
46
  #memories = new Map();
21
47
  #fingerprints = new Map();
48
+ #proposalMetadata = new Map();
49
+ #conflicts = new Map();
50
+ #conflictEdges = new Map();
51
+ #policies = new Map();
22
52
  constructor(initialMemories = []) {
23
53
  for (const initialMemory of initialMemories) {
24
54
  const memory = MemorySchema.parse(initialMemory);
25
- if (memory.status === "active" &&
26
- this.#fingerprints.has(memory.fingerprint)) {
55
+ if (reservesFingerprint(memory) &&
56
+ this.#fingerprints.has(fingerprintKey(memory))) {
27
57
  throw new Error(`Duplicate initial memory fingerprint: ${memory.fingerprint}`);
28
58
  }
29
59
  this.#memories.set(memory.id, copyMemory(memory));
30
- if (memory.status === "active") {
31
- this.#fingerprints.set(memory.fingerprint, memory.id);
60
+ if (reservesFingerprint(memory)) {
61
+ this.#fingerprints.set(fingerprintKey(memory), memory.id);
32
62
  }
33
63
  }
34
64
  }
35
65
  async insert(memoryInput) {
36
66
  const memory = MemorySchema.parse(memoryInput);
37
- const existingId = this.#fingerprints.get(memory.fingerprint);
67
+ if (memory.status === "proposed") {
68
+ throw new Error("Proposed memories must be inserted with proposal metadata");
69
+ }
70
+ const existingId = this.#fingerprints.get(fingerprintKey(memory));
38
71
  if (existingId !== undefined) {
39
72
  const existing = this.#memories.get(existingId);
40
73
  if (existing === undefined) {
@@ -46,14 +79,286 @@ export class InMemoryMemoryRepository {
46
79
  throw new Error(`Memory ID already exists: ${memory.id}`);
47
80
  }
48
81
  this.#memories.set(memory.id, copyMemory(memory));
49
- this.#fingerprints.set(memory.fingerprint, memory.id);
82
+ if (reservesFingerprint(memory)) {
83
+ this.#fingerprints.set(fingerprintKey(memory), memory.id);
84
+ }
50
85
  return { memory: copyMemory(memory), inserted: true };
51
86
  }
52
- async get(id) {
87
+ async propose(memoryInput, metadataInput, conflictInputs = []) {
88
+ const memory = MemorySchema.parse(memoryInput);
89
+ const metadata = ProposalMetadataSchema.parse(metadataInput);
90
+ const conflicts = conflictInputs.map((conflict) => MemoryConflictSchema.parse(conflict));
91
+ if (memory.status !== "proposed") {
92
+ throw new Error("Proposal insertion requires proposed memory status");
93
+ }
94
+ if (metadata.memoryId !== memory.id ||
95
+ metadata.workspaceId !== memoryWorkspaceId(memory)) {
96
+ throw new Error("Proposal metadata does not match its memory");
97
+ }
98
+ if (metadata.decision !== null) {
99
+ throw new Error("New proposal metadata must be pending");
100
+ }
101
+ if (JSON.stringify(metadata.provenance) !== JSON.stringify(memory.source)) {
102
+ throw new Error("Proposal provenance does not match its memory source");
103
+ }
104
+ const existingId = this.#fingerprints.get(fingerprintKey(memory));
105
+ if (existingId !== undefined) {
106
+ const existing = this.#memories.get(existingId);
107
+ if (existing === undefined) {
108
+ throw new Error("In-memory fingerprint index is inconsistent");
109
+ }
110
+ const existingMetadata = this.#proposalMetadata.get(existing.id);
111
+ return {
112
+ memory: copyMemory(existing),
113
+ metadata: existingMetadata === undefined
114
+ ? null
115
+ : copyProposalMetadata(existingMetadata),
116
+ conflicts: this.#proposalConflicts(existing.id),
117
+ inserted: false,
118
+ };
119
+ }
120
+ if (this.#memories.has(memory.id)) {
121
+ throw new Error(`Memory ID already exists: ${memory.id}`);
122
+ }
123
+ const conflictEdges = new Set();
124
+ for (const conflict of conflicts) {
125
+ this.#validateNewConflict(conflict, memory);
126
+ const edge = conflictEdgeKey(conflict);
127
+ if (conflictEdges.has(edge)) {
128
+ throw new Error("Duplicate conflict edge in proposal");
129
+ }
130
+ if (this.#conflicts.has(conflict.id) ||
131
+ this.#conflictEdges.has(edge)) {
132
+ throw new Error("Proposal conflict already exists");
133
+ }
134
+ conflictEdges.add(edge);
135
+ }
136
+ this.#memories.set(memory.id, copyMemory(memory));
137
+ this.#fingerprints.set(fingerprintKey(memory), memory.id);
138
+ this.#proposalMetadata.set(memory.id, copyProposalMetadata(metadata));
139
+ for (const conflict of conflicts) {
140
+ this.#storeConflict(conflict);
141
+ }
142
+ return {
143
+ memory: copyMemory(memory),
144
+ metadata: copyProposalMetadata(metadata),
145
+ conflicts: conflicts.map(copyConflict),
146
+ inserted: true,
147
+ };
148
+ }
149
+ async get(id, context = {}) {
53
150
  const memory = this.#memories.get(id);
54
- return memory === undefined ? null : copyMemory(memory);
151
+ return memory === undefined ||
152
+ (context.workspaceId !== undefined &&
153
+ memory.workspaceId !== context.workspaceId)
154
+ ? null
155
+ : copyMemory(memory);
55
156
  }
56
- async list(input = {}) {
157
+ async getProposal(memoryId, context = {}) {
158
+ const memory = this.#memories.get(memoryId);
159
+ const metadata = this.#proposalMetadata.get(memoryId);
160
+ if (memory === undefined ||
161
+ metadata === undefined ||
162
+ (context.workspaceId !== undefined &&
163
+ memoryWorkspaceId(memory) !== context.workspaceId)) {
164
+ return null;
165
+ }
166
+ return {
167
+ memory: copyMemory(memory),
168
+ metadata: copyProposalMetadata(metadata),
169
+ conflicts: this.#proposalConflicts(memoryId),
170
+ };
171
+ }
172
+ async addProposalConflict(conflictInput, context) {
173
+ const conflict = MemoryConflictSchema.parse(conflictInput);
174
+ if (conflict.workspaceId !== context.workspaceId) {
175
+ throw new Error("Conflict workspace does not match repository context");
176
+ }
177
+ this.#validateNewConflict(conflict);
178
+ const existingId = this.#conflictEdges.get(conflictEdgeKey(conflict));
179
+ if (existingId !== undefined) {
180
+ const existing = this.#conflicts.get(existingId);
181
+ if (existing === undefined) {
182
+ throw new Error("In-memory conflict index is inconsistent");
183
+ }
184
+ return { conflict: copyConflict(existing), inserted: false };
185
+ }
186
+ this.#storeConflict(conflict);
187
+ return { conflict: copyConflict(conflict), inserted: true };
188
+ }
189
+ async reviewProposal(inputValue, context) {
190
+ const input = ReviewProposalDtoSchema.parse(inputValue);
191
+ const current = this.#memories.get(input.proposalMemoryId);
192
+ const metadata = this.#proposalMetadata.get(input.proposalMemoryId);
193
+ if (current === undefined ||
194
+ metadata === undefined ||
195
+ memoryWorkspaceId(current) !== context.workspaceId) {
196
+ throw new Error(`Proposal not found: ${input.proposalMemoryId}`);
197
+ }
198
+ if (metadata.decision !== null || current.status !== "proposed") {
199
+ throw new Error(`Proposal has already been resolved: ${current.id}`);
200
+ }
201
+ const openConflicts = this.#proposalConflicts(current.id).filter((conflict) => conflict.resolution === null);
202
+ const blocking = openConflicts.filter((conflict) => conflict.severity === "blocking");
203
+ if (input.decision === "approve" &&
204
+ (blocking.length > 0 || current.supersedesMemoryId !== null)) {
205
+ throw new Error("Blocked proposals cannot be approved without resolution");
206
+ }
207
+ let target;
208
+ if (input.decision === "use_proposal") {
209
+ const targetId = input.targetMemoryId;
210
+ const deterministicConflict = openConflicts.find((conflict) => conflict.targetMemoryId === targetId &&
211
+ conflict.detector === "deterministic" &&
212
+ conflict.severity === "blocking");
213
+ if (deterministicConflict === undefined) {
214
+ throw new Error("Using a proposal requires an open deterministic blocking conflict");
215
+ }
216
+ if (blocking.some((conflict) => conflict.targetMemoryId !== targetId)) {
217
+ throw new Error("Proposal has additional blocking conflicts that require keep_both or reject");
218
+ }
219
+ target = targetId === undefined ? undefined : this.#memories.get(targetId);
220
+ if (target === undefined ||
221
+ memoryWorkspaceId(target) !== context.workspaceId ||
222
+ (target.status !== "active" && target.status !== "suppressed")) {
223
+ throw new Error(`Conflict target is not replaceable: ${targetId}`);
224
+ }
225
+ if (current.supersedesMemoryId !== null &&
226
+ current.supersedesMemoryId !== target.id) {
227
+ throw new Error("Proposal lineage does not match the conflict target");
228
+ }
229
+ }
230
+ const decidedAt = new Date().toISOString();
231
+ const supersedesMemoryId = input.decision === "use_proposal" ? (target?.id ?? null) : null;
232
+ const status = input.decision === "reject" ? "deleted" : "active";
233
+ const next = MemorySchema.parse({
234
+ ...current,
235
+ status,
236
+ scope: input.scope ?? current.scope,
237
+ supersedesMemoryId,
238
+ fingerprint: createMemoryFingerprint({
239
+ content: current.content,
240
+ scope: input.scope ?? current.scope,
241
+ category: current.category,
242
+ supersedesMemoryId,
243
+ }),
244
+ updatedAt: decidedAt,
245
+ suppressedAt: null,
246
+ deletedAt: input.decision === "reject" ? decidedAt : null,
247
+ });
248
+ if (reservesFingerprint(next)) {
249
+ const existingId = this.#fingerprints.get(fingerprintKey(next));
250
+ if (existingId !== undefined &&
251
+ existingId !== current.id &&
252
+ existingId !== target?.id) {
253
+ throw new Error(`Memory fingerprint already exists: ${next.fingerprint}`);
254
+ }
255
+ }
256
+ let supersededMemory = null;
257
+ if (target !== undefined) {
258
+ supersededMemory = MemorySchema.parse({
259
+ ...target,
260
+ status: "superseded",
261
+ updatedAt: decidedAt,
262
+ suppressedAt: null,
263
+ });
264
+ if (reservesFingerprint(target)) {
265
+ this.#fingerprints.delete(fingerprintKey(target));
266
+ }
267
+ this.#memories.set(target.id, copyMemory(supersededMemory));
268
+ }
269
+ if (reservesFingerprint(current)) {
270
+ this.#fingerprints.delete(fingerprintKey(current));
271
+ }
272
+ if (reservesFingerprint(next)) {
273
+ this.#fingerprints.set(fingerprintKey(next), next.id);
274
+ }
275
+ this.#memories.set(next.id, copyMemory(next));
276
+ const nextMetadata = ProposalMetadataSchema.parse({
277
+ ...metadata,
278
+ decision: input.decision,
279
+ reviewerId: input.reviewerId,
280
+ decisionReason: input.reason,
281
+ decidedAt,
282
+ decisionTargetMemoryId: target?.id ?? null,
283
+ });
284
+ this.#proposalMetadata.set(next.id, copyProposalMetadata(nextMetadata));
285
+ const resolvedConflicts = openConflicts.map((conflict) => MemoryConflictSchema.parse({
286
+ ...conflict,
287
+ resolution: input.decision,
288
+ resolvedAt: decidedAt,
289
+ }));
290
+ for (const conflict of resolvedConflicts) {
291
+ this.#conflicts.set(conflict.id, copyConflict(conflict));
292
+ }
293
+ return {
294
+ proposal: copyMemory(next),
295
+ metadata: copyProposalMetadata(nextMetadata),
296
+ conflicts: this.#proposalConflicts(next.id),
297
+ supersededMemory: supersededMemory === null ? null : copyMemory(supersededMemory),
298
+ };
299
+ }
300
+ async getWorkspaceLearningPolicy(workspaceId) {
301
+ const stored = this.#policies.get(workspaceId);
302
+ return structuredClone(stored ??
303
+ WorkspaceLearningPolicySchema.parse({
304
+ workspaceId,
305
+ learningMode: "trust_tiered",
306
+ llmConflictAnalysisEnabled: false,
307
+ updatedAt: DEFAULT_POLICY_UPDATED_AT,
308
+ }));
309
+ }
310
+ async updateWorkspaceLearningPolicy(workspaceId, updateInput) {
311
+ const update = UpdateWorkspaceLearningPolicySchema.parse(updateInput);
312
+ const current = await this.getWorkspaceLearningPolicy(workspaceId);
313
+ const next = WorkspaceLearningPolicySchema.parse({
314
+ ...current,
315
+ ...update,
316
+ workspaceId,
317
+ updatedAt: new Date().toISOString(),
318
+ });
319
+ this.#policies.set(workspaceId, structuredClone(next));
320
+ return structuredClone(next);
321
+ }
322
+ #proposalConflicts(proposalMemoryId) {
323
+ return [...this.#conflicts.values()]
324
+ .filter((conflict) => conflict.proposalMemoryId === proposalMemoryId)
325
+ .sort((left, right) => left.createdAt.localeCompare(right.createdAt) ||
326
+ left.id.localeCompare(right.id))
327
+ .map(copyConflict);
328
+ }
329
+ #validateNewConflict(conflict, unstoredProposal) {
330
+ if (conflict.resolution !== null) {
331
+ throw new Error("New conflicts must be unresolved");
332
+ }
333
+ const proposal = unstoredProposal?.id === conflict.proposalMemoryId
334
+ ? unstoredProposal
335
+ : this.#memories.get(conflict.proposalMemoryId);
336
+ const target = this.#memories.get(conflict.targetMemoryId);
337
+ if (proposal === undefined || proposal.status !== "proposed") {
338
+ throw new Error(`Proposed memory not found: ${conflict.proposalMemoryId}`);
339
+ }
340
+ if (conflict.workspaceId !== memoryWorkspaceId(proposal) ||
341
+ target === undefined ||
342
+ memoryWorkspaceId(target) !== conflict.workspaceId) {
343
+ throw new Error("Conflict memories must belong to the same workspace");
344
+ }
345
+ if (target.status !== "active" && target.status !== "suppressed") {
346
+ throw new Error(`Conflict target is not reviewable: ${target.id}`);
347
+ }
348
+ }
349
+ #storeConflict(conflict) {
350
+ const edge = conflictEdgeKey(conflict);
351
+ const existingId = this.#conflictEdges.get(edge);
352
+ if (existingId !== undefined && existingId !== conflict.id) {
353
+ throw new Error("Conflict edge already exists");
354
+ }
355
+ if (this.#conflicts.has(conflict.id)) {
356
+ throw new Error(`Conflict ID already exists: ${conflict.id}`);
357
+ }
358
+ this.#conflicts.set(conflict.id, copyConflict(conflict));
359
+ this.#conflictEdges.set(edge, conflict.id);
360
+ }
361
+ async list(input = {}, context = {}) {
57
362
  const filters = ListMemoriesDtoSchema.parse(input);
58
363
  const categories = toArray(filters.category);
59
364
  const statuses = toArray(filters.status);
@@ -62,6 +367,10 @@ export class InMemoryMemoryRepository {
62
367
  const limit = filters.limit ?? 50;
63
368
  const matching = [...this.#memories.values()]
64
369
  .filter((memory) => {
370
+ if (context.workspaceId !== undefined &&
371
+ memory.workspaceId !== context.workspaceId) {
372
+ return false;
373
+ }
65
374
  if (filters.scope !== undefined &&
66
375
  !memoryScopeAppliesTo(filters.scope, memory.scope)) {
67
376
  return false;
@@ -85,12 +394,19 @@ export class InMemoryMemoryRepository {
85
394
  offset,
86
395
  };
87
396
  }
88
- async update(id, updateInput) {
397
+ async update(id, updateInput, context = {}) {
89
398
  const current = this.#memories.get(id);
90
- if (current === undefined) {
399
+ if (current === undefined ||
400
+ (context.workspaceId !== undefined &&
401
+ current.workspaceId !== context.workspaceId)) {
91
402
  return null;
92
403
  }
93
404
  const update = MemoryUpdateSchema.parse(updateInput);
405
+ if (update.status !== undefined &&
406
+ (current.status === "proposed" || update.status === "proposed") &&
407
+ update.status !== current.status) {
408
+ throw new Error("Proposed memories must be resolved with reviewProposal");
409
+ }
94
410
  const content = update.content ?? current.content;
95
411
  const scope = update.scope ?? current.scope;
96
412
  const category = update.category ?? current.category;
@@ -121,24 +437,26 @@ export class InMemoryMemoryRepository {
121
437
  fingerprint,
122
438
  updatedAt: update.updatedAt ?? new Date().toISOString(),
123
439
  });
124
- if (next.status === "active") {
125
- const existingId = this.#fingerprints.get(next.fingerprint);
440
+ if (reservesFingerprint(next)) {
441
+ const existingId = this.#fingerprints.get(fingerprintKey(next));
126
442
  if (existingId !== undefined && existingId !== id) {
127
443
  throw new Error(`Memory fingerprint already exists: ${next.fingerprint}`);
128
444
  }
129
445
  }
130
- if (current.status === "active") {
131
- this.#fingerprints.delete(current.fingerprint);
446
+ if (reservesFingerprint(current)) {
447
+ this.#fingerprints.delete(fingerprintKey(current));
132
448
  }
133
- if (next.status === "active") {
134
- this.#fingerprints.set(next.fingerprint, id);
449
+ if (reservesFingerprint(next)) {
450
+ this.#fingerprints.set(fingerprintKey(next), id);
135
451
  }
136
452
  this.#memories.set(id, copyMemory(next));
137
453
  return copyMemory(next);
138
454
  }
139
- async softDelete(id, deletedAt = new Date().toISOString()) {
455
+ async softDelete(id, deletedAt = new Date().toISOString(), context = {}) {
140
456
  const current = this.#memories.get(id);
141
- if (current === undefined) {
457
+ if (current === undefined ||
458
+ (context.workspaceId !== undefined &&
459
+ current.workspaceId !== context.workspaceId)) {
142
460
  return null;
143
461
  }
144
462
  if (current.status === "deleted") {
@@ -146,9 +464,10 @@ export class InMemoryMemoryRepository {
146
464
  }
147
465
  return this.update(id, {
148
466
  status: "deleted",
467
+ suppressedAt: null,
149
468
  deletedAt,
150
469
  updatedAt: deletedAt,
151
- });
470
+ }, context);
152
471
  }
153
472
  async findActiveScopeCandidates(scope, options = {}) {
154
473
  const keywords = options.keywords
@@ -171,6 +490,12 @@ export class InMemoryMemoryRepository {
171
490
  path.startsWith(`${memory.scope.path}/`))) &&
172
491
  (memory.scope.component === undefined ||
173
492
  components.has(memory.scope.component)) &&
493
+ (options.requirePathOrComponentMatch !== true ||
494
+ (memory.scope.path !== undefined &&
495
+ paths.some((path) => path === memory.scope.path ||
496
+ path.startsWith(`${memory.scope.path}/`))) ||
497
+ (memory.scope.component !== undefined &&
498
+ components.has(memory.scope.component))) &&
174
499
  (keywords === undefined ||
175
500
  keywords.length === 0 ||
176
501
  keywords.some((keyword) => memory.content.toLocaleLowerCase().includes(keyword))))
@@ -179,16 +504,18 @@ export class InMemoryMemoryRepository {
179
504
  .slice(0, limit)
180
505
  .map(copyMemory);
181
506
  }
182
- async supersede(memoryId, replacementInput) {
507
+ async supersede(memoryId, replacementInput, context = {}) {
183
508
  const current = this.#memories.get(memoryId);
184
- if (current === undefined) {
509
+ if (current === undefined ||
510
+ (context.workspaceId !== undefined &&
511
+ current.workspaceId !== context.workspaceId)) {
185
512
  throw new Error(`Memory not found: ${memoryId}`);
186
513
  }
187
514
  const replacement = MemorySchema.parse(replacementInput);
188
515
  if (replacement.supersedesMemoryId !== memoryId) {
189
516
  throw new Error("Replacement must reference the memory it supersedes");
190
517
  }
191
- const existingId = this.#fingerprints.get(replacement.fingerprint);
518
+ const existingId = this.#fingerprints.get(fingerprintKey(replacement));
192
519
  if (current.status === "superseded") {
193
520
  const existing = existingId === undefined ? undefined : this.#memories.get(existingId);
194
521
  if (existing?.supersedesMemoryId === memoryId) {
@@ -199,8 +526,8 @@ export class InMemoryMemoryRepository {
199
526
  }
200
527
  throw new Error(`Memory has already been superseded: ${memoryId}`);
201
528
  }
202
- if (current.status !== "active") {
203
- throw new Error(`Only active memories can be superseded: ${memoryId} is ${current.status}`);
529
+ if (current.status !== "active" && current.status !== "suppressed") {
530
+ throw new Error(`Only active or suppressed memories can be superseded: ${memoryId} is ${current.status}`);
204
531
  }
205
532
  let storedReplacement;
206
533
  if (existingId !== undefined) {
@@ -218,7 +545,7 @@ export class InMemoryMemoryRepository {
218
545
  throw new Error(`Memory ID already exists: ${replacement.id}`);
219
546
  }
220
547
  this.#memories.set(replacement.id, copyMemory(replacement));
221
- this.#fingerprints.set(replacement.fingerprint, replacement.id);
548
+ this.#fingerprints.set(fingerprintKey(replacement), replacement.id);
222
549
  storedReplacement = replacement;
223
550
  }
224
551
  const timestamp = replacement.createdAt;
@@ -226,8 +553,9 @@ export class InMemoryMemoryRepository {
226
553
  ...current,
227
554
  status: "superseded",
228
555
  updatedAt: timestamp,
556
+ suppressedAt: null,
229
557
  });
230
- this.#fingerprints.delete(current.fingerprint);
558
+ this.#fingerprints.delete(fingerprintKey(current));
231
559
  this.#memories.set(memoryId, copyMemory(superseded));
232
560
  return {
233
561
  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":"AAAA,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,mCAAmC,EACnC,6BAA6B,GAe9B,MAAM,cAAc,CAAC;AAStB,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD,SAAS,UAAU,CAAC,MAAc;IAChC,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,oBAAoB,CAAC,QAA0B;IACtD,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,YAAY,CAAC,QAAwB;IAC5C,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAc;IACvC,OAAO,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;AACzD,CAAC;AAED,SAAS,cAAc,CAAC,MAAc;IACpC,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC;AACrE,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAc;IACzC,OAAO,CACL,MAAM,CAAC,MAAM,KAAK,QAAQ;QAC1B,MAAM,CAAC,MAAM,KAAK,YAAY;QAC9B,MAAM,CAAC,MAAM,KAAK,UAAU,CAC7B,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,QAAwB;IAC/C,OAAO;QACL,QAAQ,CAAC,WAAW;QACpB,QAAQ,CAAC,gBAAgB;QACzB,QAAQ,CAAC,cAAc;QACvB,QAAQ,CAAC,QAAQ;KAClB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,yBAAyB,GAAG,0BAA0B,CAAC;AAE7D,SAAS,iBAAiB,CACxB,WAA+B,EAC/B,SAA6B;IAE7B,OAAO,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,WAAwB,EACxB,SAAsB;IAEtB,OAAO,CACL,iBAAiB,CAAC,WAAW,CAAC,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC;QACnE,iBAAiB,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC;QACzD,iBAAiB,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;QACnD,iBAAiB,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;QACnD,iBAAiB,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAC9D,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAI,KAA0B;IAC5C,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,OAAO,wBAAwB;IAC1B,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,iBAAiB,GAAG,IAAI,GAAG,EAA4B,CAAC;IACxD,UAAU,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC/C,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,SAAS,GAAG,IAAI,GAAG,EAAmC,CAAC;IAEhE,YAAY,kBAAqC,EAAE;QACjD,KAAK,MAAM,aAAa,IAAI,eAAe,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACjD,IACE,mBAAmB,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAC9C,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,yCAAyC,MAAM,CAAC,WAAW,EAAE,CAC9D,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YAClD,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,WAAmB;QAC9B,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;QAClE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC3D,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAClD,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,OAAO,CACX,WAAmB,EACnB,aAA+B,EAC/B,iBAA4C,EAAE;QAE9C,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC7D,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAChD,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,CACrC,CAAC;QACF,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QACD,IACE,QAAQ,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE;YAC/B,QAAQ,CAAC,WAAW,KAAK,iBAAiB,CAAC,MAAM,CAAC,EAClD,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QACD,IACE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EACrE,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;QAClE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACjE,OAAO;gBACL,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC;gBAC5B,QAAQ,EACN,gBAAgB,KAAK,SAAS;oBAC5B,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,oBAAoB,CAAC,gBAAgB,CAAC;gBAC5C,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/C,QAAQ,EAAE,KAAK;aAChB,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;QACxC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACzD,CAAC;YACD,IACE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAC7B,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACtD,CAAC;YACD,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;QACD,OAAO;YACL,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC;YAC1B,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CAAC;YACxC,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC;YACtC,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU,EAAE,UAA6B,EAAE;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtC,OAAO,MAAM,KAAK,SAAS;YACzB,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS;gBAChC,MAAM,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC;YAC7C,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,WAAW,CACf,QAAgB,EAChB,UAA6B,EAAE;QAE/B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtD,IACE,MAAM,KAAK,SAAS;YACpB,QAAQ,KAAK,SAAS;YACtB,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS;gBAChC,iBAAiB,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,WAAW,CAAC,EACpD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC;YAC1B,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CAAC;YACxC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;SAC7C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,aAA6B,EAC7B,OAAmC;QAEnC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC3D,IAAI,QAAQ,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACjD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,UAA6B,EAC7B,OAAmC;QAEnC,MAAM,KAAK,GAAG,uBAAuB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpE,IACE,OAAO,KAAK,SAAS;YACrB,QAAQ,KAAK,SAAS;YACtB,iBAAiB,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,WAAW,EAClD,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,uCAAuC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAC9D,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,KAAK,IAAI,CAC3C,CAAC;QACF,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CACnC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,KAAK,UAAU,CAC/C,CAAC;QACF,IACE,KAAK,CAAC,QAAQ,KAAK,SAAS;YAC5B,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,kBAAkB,KAAK,IAAI,CAAC,EAC5D,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,MAA0B,CAAC;QAC/B,IAAI,KAAK,CAAC,QAAQ,KAAK,cAAc,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC;YACtC,MAAM,qBAAqB,GAAG,aAAa,CAAC,IAAI,CAC9C,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,CAAC,cAAc,KAAK,QAAQ;gBACpC,QAAQ,CAAC,QAAQ,KAAK,eAAe;gBACrC,QAAQ,CAAC,QAAQ,KAAK,UAAU,CACnC,CAAC;YACF,IAAI,qBAAqB,KAAK,SAAS,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;YACJ,CAAC;YACD,IACE,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,KAAK,QAAQ,CAAC,EACjE,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAC;YACJ,CAAC;YACD,MAAM,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC3E,IACE,MAAM,KAAK,SAAS;gBACpB,iBAAiB,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,WAAW;gBACjD,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,YAAY,CAAC,EAC9D,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,uCAAuC,QAAQ,EAAE,CAAC,CAAC;YACrE,CAAC;YACD,IACE,OAAO,CAAC,kBAAkB,KAAK,IAAI;gBACnC,OAAO,CAAC,kBAAkB,KAAK,MAAM,CAAC,EAAE,EACxC,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,kBAAkB,GACtB,KAAK,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAClE,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QAClE,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC;YAC9B,GAAG,OAAO;YACV,MAAM;YACN,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK;YACnC,kBAAkB;YAClB,WAAW,EAAE,uBAAuB,CAAC;gBACnC,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK;gBACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,kBAAkB;aACnB,CAAC;YACF,SAAS,EAAE,SAAS;YACpB,YAAY,EAAE,IAAI;YAClB,SAAS,EAAE,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;SAC1D,CAAC,CAAC;QACH,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;YAChE,IACE,UAAU,KAAK,SAAS;gBACxB,UAAU,KAAK,OAAO,CAAC,EAAE;gBACzB,UAAU,KAAK,MAAM,EAAE,EAAE,EACzB,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,sCAAsC,IAAI,CAAC,WAAW,EAAE,CACzD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,gBAAgB,GAAkB,IAAI,CAAC;QAC3C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,gBAAgB,GAAG,YAAY,CAAC,KAAK,CAAC;gBACpC,GAAG,MAAM;gBACT,MAAM,EAAE,YAAY;gBACpB,SAAS,EAAE,SAAS;gBACpB,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;YACH,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9C,MAAM,YAAY,GAAG,sBAAsB,CAAC,KAAK,CAAC;YAChD,GAAG,QAAQ;YACX,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,cAAc,EAAE,KAAK,CAAC,MAAM;YAC5B,SAAS;YACT,sBAAsB,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI;SAC3C,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC,CAAC;QAExE,MAAM,iBAAiB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACvD,oBAAoB,CAAC,KAAK,CAAC;YACzB,GAAG,QAAQ;YACX,UAAU,EAAE,KAAK,CAAC,QAAQ;YAC1B,UAAU,EAAE,SAAS;SACtB,CAAC,CACH,CAAC;QACF,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;YACzC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC;YAC1B,QAAQ,EAAE,oBAAoB,CAAC,YAAY,CAAC;YAC5C,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,gBAAgB,EACd,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC;SAClE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,0BAA0B,CAC9B,WAAmB;QAEnB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC/C,OAAO,eAAe,CACpB,MAAM;YACJ,6BAA6B,CAAC,KAAK,CAAC;gBAClC,WAAW;gBACX,YAAY,EAAE,cAAc;gBAC5B,0BAA0B,EAAE,KAAK;gBACjC,SAAS,EAAE,yBAAyB;aACrC,CAAC,CACL,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,6BAA6B,CACjC,WAAmB,EACnB,WAA0C;QAE1C,MAAM,MAAM,GAAG,mCAAmC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC;QACnE,MAAM,IAAI,GAAG,6BAA6B,CAAC,KAAK,CAAC;YAC/C,GAAG,OAAO;YACV,GAAG,MAAM;YACT,WAAW;YACX,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,kBAAkB,CAAC,gBAAwB;QACzC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;aACjC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,KAAK,gBAAgB,CAAC;aACpE,IAAI,CACH,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC;YAC7C,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAClC;aACA,GAAG,CAAC,YAAY,CAAC,CAAC;IACvB,CAAC;IAED,oBAAoB,CAClB,QAAwB,EACxB,gBAAyB;QAEzB,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,QAAQ,GACZ,gBAAgB,EAAE,EAAE,KAAK,QAAQ,CAAC,gBAAgB;YAChD,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC3D,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,IACE,QAAQ,CAAC,WAAW,KAAK,iBAAiB,CAAC,QAAQ,CAAC;YACpD,MAAM,KAAK,SAAS;YACpB,iBAAiB,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,WAAW,EAClD,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,sCAAsC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,cAAc,CAAC,QAAwB;QACrC,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,QAAQ,CAAC,EAAE,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,IAAI,CACR,QAAyB,EAAE,EAC3B,UAA6B,EAAE;QAE/B,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,iBAAiB,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QAElC,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;aAC1C,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YACjB,IACE,OAAO,CAAC,WAAW,KAAK,SAAS;gBACjC,MAAM,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,EAC1C,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IACE,OAAO,CAAC,KAAK,KAAK,SAAS;gBAC3B,CAAC,oBAAoB,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAClD,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IACE,UAAU,KAAK,SAAS;gBACxB,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EACrC,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChE,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,CACL,KAAK,KAAK,SAAS;gBACnB,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CACnD,CAAC;QACJ,CAAC,CAAC;aACD,IAAI,CACH,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7C,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAClC,CAAC;QAEJ,OAAO;YACL,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;YAChE,KAAK,EAAE,QAAQ,CAAC,MAAM;YACtB,KAAK;YACL,MAAM;SACP,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CACV,EAAU,EACV,WAAyB,EACzB,UAA6B,EAAE;QAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvC,IACE,OAAO,KAAK,SAAS;YACrB,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS;gBAChC,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,EAC9C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACrD,IACE,MAAM,CAAC,MAAM,KAAK,SAAS;YAC3B,CAAC,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC;YAC/D,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAChC,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;QAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;QACrD,MAAM,kBAAkB,GACtB,MAAM,CAAC,kBAAkB,KAAK,SAAS;YACrC,CAAC,CAAC,OAAO,CAAC,kBAAkB;YAC5B,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC;QAChC,MAAM,4BAA4B,GAChC,MAAM,CAAC,WAAW,KAAK,SAAS;YAChC,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS;gBAC3B,MAAM,CAAC,KAAK,KAAK,SAAS;gBAC1B,MAAM,CAAC,QAAQ,KAAK,SAAS;gBAC7B,MAAM,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,4BAA4B;YAC9C,CAAC,CAAC,uBAAuB,CAAC;gBACtB,OAAO;gBACP,KAAK;gBACL,QAAQ;gBACR,kBAAkB;aACnB,CAAC;YACJ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC;YAC9B,GAAG,OAAO;YACV,GAAG,MAAM;YACT,EAAE;YACF,OAAO;YACP,KAAK;YACL,QAAQ;YACR,kBAAkB;YAClB,WAAW;YACX,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACxD,CAAC,CAAC;QACH,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;YAChE,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;gBAClD,MAAM,IAAI,KAAK,CACb,sCAAsC,IAAI,CAAC,WAAW,EAAE,CACzD,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,UAAU,CACd,EAAU,EACV,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EACpC,UAA6B,EAAE;QAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvC,IACE,OAAO,KAAK,SAAS;YACrB,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS;gBAChC,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,EAC9C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAChB,EAAE,EACF;YACE,MAAM,EAAE,SAAS;YACjB,YAAY,EAAE,IAAI;YAClB,SAAS;YACT,SAAS,EAAE,SAAS;SACrB,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,yBAAyB,CAC7B,KAAkB,EAClB,UAAuC,EAAE;QAEzC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ;YAC/B,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,iBAAiB,EAAE,CAAC;aACrD,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC;QACnC,MAAM,KAAK,GAAG;YACZ,GAAG,IAAI,GAAG,CACR,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAC3C,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,SAAS,CAChD,CACF;SACF,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CACrD,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,SAAS,CAChD,CACF,CAAC;QAEF,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;aAChC,MAAM,CACL,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,MAAM,KAAK,QAAQ;YAC1B,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS;gBAChC,MAAM,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY;YAChD,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YACtD,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;YAChD,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;gBAC9B,KAAK,CAAC,IAAI,CACR,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI;oBAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAC3C,CAAC;YACJ,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS;gBACnC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC,OAAO,CAAC,2BAA2B,KAAK,IAAI;gBAC3C,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;oBAC9B,KAAK,CAAC,IAAI,CACR,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI;wBAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAC3C,CAAC;gBACJ,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS;oBACnC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5C,CAAC,QAAQ,KAAK,SAAS;gBACrB,QAAQ,CAAC,MAAM,KAAK,CAAC;gBACrB,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CACxB,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CACrD,CAAC,CACP;aACA,IAAI,CACH,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7C,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAClC;aACA,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;aACf,GAAG,CAAC,UAAU,CAAC,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,SAAS,CACb,QAAgB,EAChB,gBAAwB,EACxB,UAA6B,EAAE;QAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7C,IACE,OAAO,KAAK,SAAS;YACrB,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS;gBAChC,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,EAC9C,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACzD,IAAI,WAAW,CAAC,kBAAkB,KAAK,QAAQ,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;QACvE,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YACpC,MAAM,QAAQ,GACZ,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACxE,IAAI,QAAQ,EAAE,kBAAkB,KAAK,QAAQ,EAAE,CAAC;gBAC9C,OAAO;oBACL,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC;oBAC5B,gBAAgB,EAAE,UAAU,CAAC,OAAO,CAAC;iBACtC,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,uCAAuC,QAAQ,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CACb,yDAAyD,QAAQ,OAAO,OAAO,CAAC,MAAM,EAAE,CACzF,CAAC;QACJ,CAAC;QAED,IAAI,iBAAyB,CAAC;QAC9B,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;YACjE,CAAC;YACD,IAAI,QAAQ,CAAC,kBAAkB,KAAK,QAAQ,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CACb,wDAAwD,CACzD,CAAC;YACJ,CAAC;YACD,iBAAiB,GAAG,QAAQ,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,KAAK,CAAC,6BAA6B,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;YACjE,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;YACpE,iBAAiB,GAAG,WAAW,CAAC;QAClC,CAAC;QAED,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;QACxC,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC;YACpC,GAAG,OAAO;YACV,MAAM,EAAE,YAAY;YACpB,SAAS,EAAE,SAAS;YACpB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;QAErD,OAAO;YACL,MAAM,EAAE,UAAU,CAAC,iBAAiB,CAAC;YACrC,gBAAgB,EAAE,UAAU,CAAC,UAAU,CAAC;SACzC,CAAC;IACJ,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -5,6 +5,8 @@ export { AuthenticatedWorkspaceSchema, type AuthenticatedWorkspace, } from "./au
5
5
  export * from "./ports.js";
6
6
  export * from "./in-memory-repository.js";
7
7
  export * from "./engine.js";
8
+ export * from "./conflict-detector.js";
8
9
  export * from "./redaction.js";
9
10
  export * from "./injected-context.js";
11
+ export * from "./native-coding-agents.js";
10
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACL,4BAA4B,EAC5B,KAAK,sBAAsB,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACL,4BAA4B,EAC5B,KAAK,sBAAsB,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC"}
package/dist/index.js CHANGED
@@ -5,6 +5,8 @@ export { AuthenticatedWorkspaceSchema, } from "./auth-schemas.js";
5
5
  export * from "./ports.js";
6
6
  export * from "./in-memory-repository.js";
7
7
  export * from "./engine.js";
8
+ export * from "./conflict-detector.js";
8
9
  export * from "./redaction.js";
9
10
  export * from "./injected-context.js";
11
+ export * from "./native-coding-agents.js";
10
12
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACL,4BAA4B,GAE7B,MAAM,mBAAmB,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACL,4BAA4B,GAE7B,MAAM,mBAAmB,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const NATIVE_CODING_AGENT_NAMES: readonly ["claude", "codex", "opencode"];
2
+ export type NativeCodingAgentName = (typeof NATIVE_CODING_AGENT_NAMES)[number];
3
+ export declare function isNativeCodingAgent(agent: string): agent is NativeCodingAgentName;
4
+ //# sourceMappingURL=native-coding-agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-coding-agents.d.ts","sourceRoot":"","sources":["../src/native-coding-agents.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,0CAI5B,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAC/B,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAI7C,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,GACZ,KAAK,IAAI,qBAAqB,CAEhC"}
@@ -0,0 +1,10 @@
1
+ export const NATIVE_CODING_AGENT_NAMES = [
2
+ "claude",
3
+ "codex",
4
+ "opencode",
5
+ ];
6
+ const NATIVE_CODING_AGENTS = new Set(NATIVE_CODING_AGENT_NAMES);
7
+ export function isNativeCodingAgent(agent) {
8
+ return NATIVE_CODING_AGENTS.has(agent);
9
+ }
10
+ //# sourceMappingURL=native-coding-agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-coding-agents.js","sourceRoot":"","sources":["../src/native-coding-agents.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,QAAQ;IACR,OAAO;IACP,UAAU;CACF,CAAC;AAKX,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAS,yBAAyB,CAAC,CAAC;AAExE,MAAM,UAAU,mBAAmB,CACjC,KAAa;IAEb,OAAO,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC"}