sensorium-mcp 3.0.29 → 3.0.31

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,5 +1,5 @@
1
1
  import { getUnconsolidatedEpisodes, markConsolidated } from "../data/memory/episodes.js";
2
- import { saveSemanticNote, searchSemanticNotesRanked, searchByEmbedding, saveNoteEmbedding, supersedeNote, } from "../data/memory/semantic.js";
2
+ import { saveSemanticNote, searchByEmbedding, saveNoteEmbedding, supersedeNote, updateSemanticNote, } from "../data/memory/semantic.js";
3
3
  import { cleanupConsolidationHousekeeping, getCandidateNotesForPruning, getUnconsolidatedThreadIds, getActiveNoteContent, hasActiveNote, expireNote, logConsolidation, mergeDuplicateNote, sweepOrphanedNotes, sweepOrphanedEmbeddings, } from "../data/memory/consolidation.js";
4
4
  import { resolveKnowledgeThreadId } from "../config.js";
5
5
  import { passesStructuralGate, passesQualityGate, parseReflectionFields } from "../data/memory/reflection.js";
@@ -26,54 +26,12 @@ function extractEpisodeText(episodes) {
26
26
  })
27
27
  .join("\n");
28
28
  }
29
- async function buildExistingNotesSection(db, episodesText, apiKey, threadId) {
30
- try {
31
- // Use embedding search to find semantically related notes (not just keyword match)
32
- const embedding = await generateEmbedding(episodesText.slice(0, 8000), apiKey);
33
- const related = searchByEmbedding(db, embedding, {
34
- maxResults: 30,
35
- minSimilarity: 0.3,
36
- skipAccessTracking: true,
37
- threadId,
38
- });
39
- if (related.length === 0)
40
- return "";
41
- return `\n\nExisting memory notes (check for contradictions — supersede any that are outdated):
42
- ${related.map((note) => `[${note.noteId}] (${note.type}, conf: ${note.confidence}) ${note.content}`).join("\n")}`;
43
- }
44
- catch (err) {
45
- log.warn(`[consolidation] Embedding search for existing notes failed: ${errorMessage(err)}`);
46
- // Fallback to keyword search
47
- try {
48
- const topKeywords = episodesText
49
- .toLowerCase().replace(/[^a-z0-9\s]/g, " ").split(/\s+/)
50
- .filter((w) => w.length > 3)
51
- .slice(0, 12);
52
- if (topKeywords.length === 0)
53
- return "";
54
- const ranked = searchSemanticNotesRanked(db, topKeywords.join(" "), {
55
- maxResults: 15,
56
- skipAccessTracking: true,
57
- minMatchRatio: 0.2,
58
- threadId,
59
- });
60
- if (ranked.length === 0)
61
- return "";
62
- return `\n\nExisting memory notes (check for contradictions — supersede any that are outdated):
63
- ${ranked.map((note) => `[${note.noteId}] (${note.type}, conf: ${note.confidence}) ${note.content}`).join("\n")}`;
64
- }
65
- catch {
66
- return "";
67
- }
68
- }
69
- }
70
- async function buildConsolidationPrompt(db, episodes, apiKey, threadId) {
29
+ function buildExtractionPrompt(episodes) {
71
30
  const episodesText = extractEpisodeText(episodes);
72
- const existingNotesSection = await buildExistingNotesSection(db, episodesText, apiKey, threadId);
73
31
  return `You are a memory consolidation agent. Extract ONLY actionable, durable knowledge from these episodes. Quality over quantity — fewer, better notes.
74
32
 
75
33
  Episodes:
76
- ${episodesText}${existingNotesSection}
34
+ ${episodesText}
77
35
 
78
36
  Output a JSON object with:
79
37
  {
@@ -84,20 +42,7 @@ Output a JSON object with:
84
42
  "keywords": ["keyword1", "keyword2", "keyword3"],
85
43
  "confidence": 0.0-1.0,
86
44
  "priority": 0 | 1 | 2,
87
- "quality_score": 1-5,
88
- "linked_notes": ["sn_xxx"],
89
- "link_reasons": ["brief causal relationship explanation"]
90
- }
91
- ],
92
- "supersede": [
93
- {
94
- "oldNoteId": "sn_xxx",
95
- "reason": "Why the old note is outdated/contradicted",
96
- "newContent": "Updated version of the knowledge",
97
- "type": "fact",
98
- "keywords": ["keyword1", "keyword2"],
99
- "confidence": 0.8,
100
- "priority": 0 | 1 | 2
45
+ "quality_score": 1-5
101
46
  }
102
47
  ]
103
48
  }
@@ -112,15 +57,9 @@ BANNED content — do NOT extract:
112
57
  - Self-assessments or meta-observations about the agent's own behavior ("I tend to...", "I regularly...")
113
58
  - Passive observations that don't inform decisions ("a discussion occurred", "code was reviewed")
114
59
  - Transient status ("currently working on X", "PR is open", "tests passing")
115
- - Duplicate information already captured in an existing note (check the existing notes section carefully)
116
60
 
117
61
  EXCEPTION: If the operator explicitly corrected the agent's behavior, extract that correction as a preference.
118
62
 
119
- SUPERSEDE — check existing notes for contradictions:
120
- - CRITICAL: If a new episode contradicts or updates an existing note, add a "supersede" entry
121
- - Common triggers: decisions changed, projects completed/abandoned, preferences updated, tools/tech switched, version numbers changed
122
- - The new episodes represent MORE RECENT information
123
-
124
63
  TYPE RULES:
125
64
  - fact: Durable knowledge about the project, codebase, architecture, people, or external world
126
65
  - preference: Operator's explicit or strongly implied preference for how things should be done
@@ -145,16 +84,59 @@ CONTENT QUALITY:
145
84
  - Capture WHY (motivation/context), not just WHAT. Include outcome if known
146
85
  - If neither WHY nor outcome is available, the note is probably not worth extracting
147
86
  - Include dates when known. Write "On April 15, operator requested X" not just "operator requested X." If the episode contains timestamps or date references, include them in the note content.
148
- - Return {"notes": [], "supersede": []} if nothing actionable
87
+ - Return {"notes": []} if nothing actionable
149
88
 
150
89
  SPECIFICITY GATE — apply to every note before including it:
151
90
  - Every note MUST contain at least one specific anchor: a file name, commit hash, person name, date, or concrete number. If you cannot name something specific, do not create the note.
152
- - Do NOT create notes that merely say "X was completed" or "Y was done." If something was completed, state WHAT specifically was done — which files changed, what bug was fixed, what the outcome was. Headlines without substance are useless.
91
+ - Do NOT create notes that merely say "X was completed" or "Y was done." If something was completed, state WHAT specifically was done — which files changed, what bug was fixed, what the outcome was. Headlines without substance are useless.`;
92
+ }
93
+ function buildSupersedePrompt(batch) {
94
+ const notesSection = batch
95
+ .map((item) => `[${item.noteIndex}] New: "${item.content}"\n` +
96
+ (item.candidates.length > 0
97
+ ? ` Candidates:\n${item.candidates.map((c) => ` [${c.noteId}] (${c.type}, conf: ${c.confidence}) ${c.content}`).join("\n")}`
98
+ : ` Candidates: none`))
99
+ .join("\n\n");
100
+ return `You are a contradiction detector for a memory system. For each new note, check if it contradicts or replaces any of its candidate existing notes.
101
+
102
+ ${notesSection}
103
+
104
+ Output a JSON object:
105
+ {
106
+ "results": [
107
+ { "noteIndex": 0, "supersede": true, "targetNoteId": "sn_xxx", "reason": "Why the candidate is now outdated" },
108
+ { "noteIndex": 1, "supersede": false }
109
+ ]
110
+ }
111
+
112
+ Rules:
113
+ - supersede=true ONLY if the new note explicitly contradicts, updates, or replaces a candidate (e.g., newer value, completed/abandoned project, changed preference, updated version)
114
+ - The new note represents MORE RECENT information than the candidates
115
+ - supersede=false if the new note adds different information without invalidating any candidate
116
+ - If no candidates are listed for a note, output supersede=false
117
+ - Output exactly one result per note index, in ascending order
118
+ - Only one candidate can be targeted per new note (the most directly contradicted one)`;
119
+ }
120
+ function buildLinkingPrompt(newNote, neighbors) {
121
+ const neighborsSection = neighbors.map((n) => `[${n.noteId}] (${n.type}) ${n.content}`).join("\n");
122
+ return `You are a causal link detector for a memory system. Determine if any of these existing notes are causally related to the new note.
123
+
124
+ New note: "${newNote.content}"
125
+
126
+ Existing notes to compare:
127
+ ${neighborsSection}
128
+
129
+ Output a JSON object:
130
+ {
131
+ "links": [
132
+ { "noteId": "sn_xxx", "reason": "Brief causal relationship — one caused the other, or they are part of the same chain" }
133
+ ]
134
+ }
153
135
 
154
- CAUSAL LINKING:
155
- - For each note, if it is causally related to any of the existing notes shown above (one caused the other, one is a consequence of the other, or they are part of the same chain of events), populate \`linked_notes\` with the existing note IDs and \`link_reasons\` with a parallel array of brief explanations — one explanation string per linked note ID, in the same order.
156
- - Example: if linked_notes is ["sn_a", "sn_b"], then link_reasons must be ["why sn_a is related", "why sn_b is related"].
157
- - If there are no causal relationships, omit \`linked_notes\` and \`link_reasons\` or set them to empty arrays.`;
136
+ Rules:
137
+ - Only include notes where there is a CLEAR causal or sequential relationship (one caused the other, one is a consequence of the other, or they are part of the same decision chain)
138
+ - Do NOT link notes that are merely on the same topic or share keywords the relationship must be directional and causal
139
+ - If no causal relationships exist, output { "links": [] }`;
158
140
  }
159
141
  async function checkConsolidationDuplicate(db, content, apiKey, threadId) {
160
142
  try {
@@ -294,19 +276,19 @@ export async function runIntelligentConsolidation(db, threadId, options) {
294
276
  const apiKey = process.env.OPENAI_API_KEY;
295
277
  if (!apiKey)
296
278
  throw new Error("OPENAI_API_KEY not set");
297
- const messages = [
298
- { role: "system", content: await buildConsolidationPrompt(db, episodes, apiKey, knowledgeThreadId) },
279
+ // ── Step 1: Extract knowledge from episodes ───────────────────────────
280
+ const extractMessages = [
281
+ { role: "system", content: buildExtractionPrompt(episodes) },
299
282
  { role: "user", content: "Extract knowledge from the episodes above." },
300
283
  ];
301
- const raw = await chatCompletion(messages, apiKey, {
284
+ const extractRaw = await chatCompletion(extractMessages, apiKey, {
302
285
  model: process.env.CONSOLIDATION_MODEL ?? "gpt-4o",
303
286
  maxTokens: 4096,
304
287
  responseFormat: { type: "json_object" },
305
288
  timeoutMs: 60_000,
306
289
  });
307
- const parsed = repairAndParseJSON(raw);
308
- const extractedNotes = parsed.notes ?? [];
309
- const supersedeActions = parsed.supersede ?? [];
290
+ const extractParsed = repairAndParseJSON(extractRaw);
291
+ const extractedNotes = extractParsed.notes ?? [];
310
292
  const episodeIds = episodes.map((episode) => episode.episodeId);
311
293
  if (!dryRun) {
312
294
  const noteWrites = [];
@@ -321,14 +303,6 @@ export async function runIntelligentConsolidation(db, threadId, options) {
321
303
  log.debug(`[consolidation] Dedup: skipping note similar to ${dedup.matchId} at ${dedup.similarity?.toFixed(3)}`);
322
304
  continue;
323
305
  }
324
- const rawLinked = Array.isArray(note.linked_notes) ? note.linked_notes.filter((id) => typeof id === "string") : [];
325
- const rawReasons = {};
326
- if (Array.isArray(note.link_reasons)) {
327
- rawLinked.forEach((id, i) => {
328
- if (typeof note.link_reasons[i] === "string")
329
- rawReasons[id] = note.link_reasons[i];
330
- });
331
- }
332
306
  noteWrites.push({
333
307
  type: noteType,
334
308
  content: note.content,
@@ -337,70 +311,101 @@ export async function runIntelligentConsolidation(db, threadId, options) {
337
311
  priority: Math.max(0, Math.min(2, note.priority ?? 0)),
338
312
  qualityScore: typeof note.quality_score === "number" ? note.quality_score : null,
339
313
  embedding: dedup.embedding,
340
- linkedNotes: rawLinked,
341
- linkReasons: rawReasons,
342
314
  });
343
315
  }
344
- // Phase 1b: pre-generate embeddings for supersede replacement notes (async, must be outside transaction).
345
- const supersedeWrites = [];
346
- for (const action of supersedeActions) {
347
- if (!action.oldNoteId || !action.newContent)
348
- continue;
349
- const noteType = (VALID_NOTE_TYPES.includes(action.type) ? action.type : "fact");
350
- let embedding = null;
316
+ // ── Step 2: Supersede check (batched LLM calls) ───────────────────
317
+ const SUPERSEDE_BATCH_SIZE = 4;
318
+ const notesWithCandidates = noteWrites.map((nw) => {
319
+ if (!nw.embedding)
320
+ return { nw, candidates: [] };
321
+ const similar = searchByEmbedding(db, nw.embedding, {
322
+ maxResults: 5,
323
+ minSimilarity: 0.4,
324
+ skipAccessTracking: true,
325
+ threadId: knowledgeThreadId,
326
+ });
327
+ return { nw, candidates: similar };
328
+ });
329
+ const toCheck = notesWithCandidates.filter((x) => x.candidates.length > 0);
330
+ for (let i = 0; i < toCheck.length; i += SUPERSEDE_BATCH_SIZE) {
331
+ const chunk = toCheck.slice(i, i + SUPERSEDE_BATCH_SIZE);
332
+ const batch = chunk.map((item, idx) => ({
333
+ noteIndex: idx,
334
+ content: item.nw.content,
335
+ candidates: item.candidates.map((c) => ({
336
+ noteId: c.noteId,
337
+ type: c.type,
338
+ confidence: c.confidence,
339
+ content: c.content,
340
+ })),
341
+ }));
351
342
  try {
352
- embedding = await generateEmbedding(action.newContent, apiKey);
343
+ const supersedeRaw = await chatCompletion([
344
+ { role: "system", content: buildSupersedePrompt(batch) },
345
+ { role: "user", content: "Check for contradictions." },
346
+ ], apiKey, {
347
+ model: process.env.CONSOLIDATION_MODEL ?? "gpt-4o",
348
+ maxTokens: 1024,
349
+ responseFormat: { type: "json_object" },
350
+ timeoutMs: 30_000,
351
+ });
352
+ const supersedeParsed = repairAndParseJSON(supersedeRaw);
353
+ for (const result of supersedeParsed.results ?? []) {
354
+ if (result.supersede && result.targetNoteId && typeof result.noteIndex === "number") {
355
+ const item = chunk[result.noteIndex];
356
+ if (!item)
357
+ continue;
358
+ // Guard: only allow IDs the LLM was actually shown
359
+ const candidateIds = new Set(item.candidates.map((c) => c.noteId));
360
+ if (!candidateIds.has(result.targetNoteId)) {
361
+ log.warn(`[consolidation] Supersede rejected: ${result.targetNoteId} was not in candidate set`);
362
+ continue;
363
+ }
364
+ item.nw.supersede = { targetNoteId: result.targetNoteId, reason: result.reason ?? "" };
365
+ }
366
+ }
353
367
  }
354
- catch {
355
- // non-fatal supersede note will be saved without embedding
368
+ catch (err) {
369
+ log.warn(`[consolidation] Supersede batch failed: ${errorMessage(err)}`);
356
370
  }
357
- supersedeWrites.push({ action, embedding, noteType });
358
371
  }
359
- // Phase 2: all DB writes in a single atomic transaction.
372
+ // ── Transaction: all DB writes ────────────────────────────────────
373
+ const savedNotes = [];
360
374
  let supersededCount = 0;
361
375
  db.transaction(() => {
362
- for (const nw of noteWrites) {
363
- const noteId = saveSemanticNote(db, {
364
- type: nw.type,
365
- content: nw.content,
366
- keywords: nw.keywords,
367
- confidence: nw.confidence,
368
- priority: nw.priority,
369
- qualityScore: nw.qualityScore,
370
- threadId: knowledgeThreadId,
371
- sourceEpisodes: episodeIds,
372
- linkedNotes: nw.linkedNotes.length > 0 ? nw.linkedNotes : undefined,
373
- linkReasons: Object.keys(nw.linkReasons).length > 0 ? nw.linkReasons : undefined,
374
- });
375
- if (nw.embedding) {
376
- saveNoteEmbedding(db, noteId, nw.embedding);
377
- }
378
- notesCreated++;
379
- details.push(`[${nw.type}] ${nw.content}`);
380
- }
381
- for (const { action, noteType, embedding } of supersedeWrites) {
382
- if (!hasActiveNote(db, action.oldNoteId)) {
383
- details.push(`[skip-supersede] ${action.oldNoteId} not found or already superseded`);
384
- continue;
385
- }
386
- try {
387
- const newId = supersedeNote(db, action.oldNoteId, {
388
- type: noteType,
389
- content: action.newContent,
390
- keywords: Array.isArray(action.keywords) ? action.keywords : [],
391
- confidence: Math.max(0, Math.min(1, action.confidence ?? 0.8)),
392
- priority: Math.max(0, Math.min(2, action.priority ?? 0)),
376
+ for (const { nw } of notesWithCandidates) {
377
+ let noteId;
378
+ if (nw.supersede && hasActiveNote(db, nw.supersede.targetNoteId)) {
379
+ noteId = supersedeNote(db, nw.supersede.targetNoteId, {
380
+ type: nw.type,
381
+ content: nw.content,
382
+ keywords: nw.keywords,
383
+ confidence: nw.confidence,
384
+ priority: nw.priority,
385
+ qualityScore: nw.qualityScore,
393
386
  sourceEpisodes: episodeIds,
394
387
  });
395
- if (embedding) {
396
- saveNoteEmbedding(db, newId, embedding);
397
- }
398
388
  supersededCount++;
399
- details.push(`[supersede] ${action.oldNoteId} → ${newId}: ${action.reason}`);
389
+ details.push(`[supersede] ${nw.supersede.targetNoteId} → ${noteId}: ${nw.supersede.reason}`);
400
390
  }
401
- catch (err) {
402
- details.push(`[supersede-error] ${action.oldNoteId}: ${errorMessage(err)}`);
391
+ else {
392
+ noteId = saveSemanticNote(db, {
393
+ type: nw.type,
394
+ content: nw.content,
395
+ keywords: nw.keywords,
396
+ confidence: nw.confidence,
397
+ priority: nw.priority,
398
+ qualityScore: nw.qualityScore,
399
+ threadId: knowledgeThreadId,
400
+ sourceEpisodes: episodeIds,
401
+ });
402
+ notesCreated++;
403
+ details.push(`[${nw.type}] ${nw.content}`);
404
+ }
405
+ if (nw.embedding) {
406
+ saveNoteEmbedding(db, noteId, nw.embedding);
403
407
  }
408
+ savedNotes.push({ noteId, embedding: nw.embedding, content: nw.content });
404
409
  }
405
410
  markConsolidated(db, episodeIds);
406
411
  logConsolidation(db, {
@@ -412,15 +417,51 @@ export async function runIntelligentConsolidation(db, threadId, options) {
412
417
  if (supersededCount > 0) {
413
418
  log.info(`[memory] Contradiction resolution: superseded ${supersededCount} outdated note(s)`);
414
419
  }
420
+ // ── Step 3: Linking enrichment (post-save, optional) ──────────────
421
+ for (const saved of savedNotes) {
422
+ if (!saved.embedding)
423
+ continue;
424
+ try {
425
+ const neighbors = searchByEmbedding(db, saved.embedding, {
426
+ maxResults: 6,
427
+ minSimilarity: 0.4,
428
+ skipAccessTracking: true,
429
+ threadId: knowledgeThreadId,
430
+ }).filter((n) => n.noteId !== saved.noteId).slice(0, 5);
431
+ if (neighbors.length === 0)
432
+ continue;
433
+ const linkRaw = await chatCompletion([
434
+ {
435
+ role: "system",
436
+ content: buildLinkingPrompt({ noteId: saved.noteId, content: saved.content }, neighbors.map((n) => ({ noteId: n.noteId, type: n.type, content: n.content }))),
437
+ },
438
+ { role: "user", content: "Identify causal links." },
439
+ ], apiKey, {
440
+ model: process.env.CONSOLIDATION_MODEL ?? "gpt-4o",
441
+ maxTokens: 512,
442
+ responseFormat: { type: "json_object" },
443
+ timeoutMs: 20_000,
444
+ });
445
+ const linkParsed = repairAndParseJSON(linkRaw);
446
+ const links = (linkParsed.links ?? []).filter((l) => typeof l.noteId === "string" && typeof l.reason === "string");
447
+ if (links.length > 0) {
448
+ const linkedNotes = links.map((l) => l.noteId);
449
+ const linkReasons = {};
450
+ for (const l of links)
451
+ linkReasons[l.noteId] = l.reason;
452
+ updateSemanticNote(db, saved.noteId, { linkedNotes, linkReasons });
453
+ }
454
+ }
455
+ catch (err) {
456
+ log.warn(`[consolidation] Linking step failed for ${saved.noteId}: ${errorMessage(err)}`);
457
+ }
458
+ }
415
459
  }
416
460
  else {
417
461
  for (const note of extractedNotes) {
418
462
  details.push(`[dry-run] [${note.type}] ${note.content}`);
419
463
  notesCreated++;
420
464
  }
421
- for (const action of supersedeActions) {
422
- details.push(`[dry-run] [supersede] ${action.oldNoteId} → ${action.reason}`);
423
- }
424
465
  }
425
466
  }
426
467
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"consolidation.service.js","sourceRoot":"","sources":["../../src/services/consolidation.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consolidation.service.js","sourceRoot":"","sources":["../../src/services/consolidation.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Self-update service — polls npm registry for new versions of sensorium-mcp
3
+ * and performs a graceful self-spawn update when a newer version is found.
4
+ *
5
+ * Entry point: startSelfUpdatePoller({ pkgVersion, httpPort })
6
+ * Call once after the HTTP server is listening (HTTP mode only).
7
+ *
8
+ * Environment variables:
9
+ * SELF_UPDATE_ENABLED "false" to disable (default: enabled)
10
+ * SELF_UPDATE_POLL_INTERVAL_MS Registry check interval (default: 60000)
11
+ * SELF_UPDATE_MIN_UPTIME_MS Min uptime before first update (default: 600000)
12
+ * SELF_UPDATE_GRACE_MS Grace period for agents to observe flag (default: 30000)
13
+ * MCP_START_COMMAND Replacement spawn command (default: npx -y sensorium-mcp@latest --prefer-online)
14
+ */
15
+ /**
16
+ * Fetch the latest published version of sensorium-mcp from the npm registry.
17
+ * Returns null on any error so the caller can silently skip this poll cycle.
18
+ */
19
+ export declare function getRemoteVersion(): Promise<string | null>;
20
+ /**
21
+ * Run one check cycle: compare remote version to current and trigger update
22
+ * if a newer version is available.
23
+ */
24
+ export declare function checkForUpdate(): Promise<void>;
25
+ /**
26
+ * Start the self-update polling loop.
27
+ * Call once after the HTTP server is listening (HTTP mode only).
28
+ *
29
+ * @param config.pkgVersion Current package version string (e.g. "3.0.30").
30
+ * @param config.httpPort HTTP port the server is bound to (for health polling).
31
+ */
32
+ export declare function startSelfUpdatePoller(config: {
33
+ pkgVersion: string;
34
+ httpPort: number;
35
+ }): void;
36
+ //# sourceMappingURL=self-update.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"self-update.service.d.ts","sourceRoot":"","sources":["../../src/services/self-update.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAkGH;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoB/D;AA8HD;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA4BpD;AAMD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAiB5F"}