@soleri/core 2.5.0 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dist/brain/intelligence.d.ts +1 -0
  2. package/dist/brain/intelligence.d.ts.map +1 -1
  3. package/dist/brain/intelligence.js +160 -148
  4. package/dist/brain/intelligence.js.map +1 -1
  5. package/dist/control/identity-manager.d.ts +3 -1
  6. package/dist/control/identity-manager.d.ts.map +1 -1
  7. package/dist/control/identity-manager.js +53 -51
  8. package/dist/control/identity-manager.js.map +1 -1
  9. package/dist/control/intent-router.d.ts +1 -0
  10. package/dist/control/intent-router.d.ts.map +1 -1
  11. package/dist/control/intent-router.js +41 -32
  12. package/dist/control/intent-router.js.map +1 -1
  13. package/dist/curator/curator.d.ts +1 -0
  14. package/dist/curator/curator.d.ts.map +1 -1
  15. package/dist/curator/curator.js +58 -99
  16. package/dist/curator/curator.js.map +1 -1
  17. package/dist/facades/facade-factory.js +1 -1
  18. package/dist/facades/facade-factory.js.map +1 -1
  19. package/dist/governance/governance.d.ts +1 -0
  20. package/dist/governance/governance.d.ts.map +1 -1
  21. package/dist/governance/governance.js +51 -68
  22. package/dist/governance/governance.js.map +1 -1
  23. package/dist/index.d.ts +2 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +1 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/persistence/index.d.ts +2 -1
  28. package/dist/persistence/index.d.ts.map +1 -1
  29. package/dist/persistence/index.js +1 -0
  30. package/dist/persistence/index.js.map +1 -1
  31. package/dist/persistence/postgres-provider.d.ts +46 -0
  32. package/dist/persistence/postgres-provider.d.ts.map +1 -0
  33. package/dist/persistence/postgres-provider.js +115 -0
  34. package/dist/persistence/postgres-provider.js.map +1 -0
  35. package/dist/persistence/sqlite-provider.d.ts +5 -2
  36. package/dist/persistence/sqlite-provider.d.ts.map +1 -1
  37. package/dist/persistence/sqlite-provider.js +37 -1
  38. package/dist/persistence/sqlite-provider.js.map +1 -1
  39. package/dist/persistence/types.d.ts +23 -1
  40. package/dist/persistence/types.d.ts.map +1 -1
  41. package/dist/project/project-registry.d.ts +4 -4
  42. package/dist/project/project-registry.d.ts.map +1 -1
  43. package/dist/project/project-registry.js +32 -50
  44. package/dist/project/project-registry.js.map +1 -1
  45. package/dist/runtime/admin-extra-ops.d.ts +3 -3
  46. package/dist/runtime/admin-extra-ops.d.ts.map +1 -1
  47. package/dist/runtime/admin-extra-ops.js +33 -3
  48. package/dist/runtime/admin-extra-ops.js.map +1 -1
  49. package/dist/runtime/core-ops.d.ts +4 -4
  50. package/dist/runtime/core-ops.js +4 -4
  51. package/dist/runtime/runtime.js +1 -1
  52. package/dist/runtime/runtime.js.map +1 -1
  53. package/dist/runtime/vault-extra-ops.d.ts +3 -2
  54. package/dist/runtime/vault-extra-ops.d.ts.map +1 -1
  55. package/dist/runtime/vault-extra-ops.js +40 -2
  56. package/dist/runtime/vault-extra-ops.js.map +1 -1
  57. package/dist/vault/vault.d.ts +21 -0
  58. package/dist/vault/vault.d.ts.map +1 -1
  59. package/dist/vault/vault.js +99 -0
  60. package/dist/vault/vault.js.map +1 -1
  61. package/package.json +4 -2
  62. package/src/__tests__/admin-extra-ops.test.ts +2 -2
  63. package/src/__tests__/core-ops.test.ts +8 -2
  64. package/src/__tests__/persistence.test.ts +66 -0
  65. package/src/__tests__/postgres-provider.test.ts +58 -0
  66. package/src/__tests__/vault-extra-ops.test.ts +2 -2
  67. package/src/__tests__/vault.test.ts +184 -0
  68. package/src/brain/intelligence.ts +258 -307
  69. package/src/control/identity-manager.ts +77 -75
  70. package/src/control/intent-router.ts +55 -57
  71. package/src/curator/curator.ts +124 -145
  72. package/src/facades/facade-factory.ts +1 -1
  73. package/src/governance/governance.ts +90 -107
  74. package/src/index.ts +2 -0
  75. package/src/persistence/index.ts +2 -0
  76. package/src/persistence/postgres-provider.ts +157 -0
  77. package/src/persistence/sqlite-provider.ts +55 -2
  78. package/src/persistence/types.ts +31 -1
  79. package/src/project/project-registry.ts +69 -74
  80. package/src/runtime/admin-extra-ops.ts +36 -3
  81. package/src/runtime/core-ops.ts +4 -4
  82. package/src/runtime/runtime.ts +1 -1
  83. package/src/runtime/vault-extra-ops.ts +42 -2
  84. package/src/vault/vault.ts +118 -0
@@ -23,16 +23,17 @@ const DEFAULT_TAG_ALIASES = [
23
23
  export class Curator {
24
24
  vault;
25
25
  cognee;
26
+ provider;
26
27
  constructor(vault, cognee) {
27
28
  this.vault = vault;
28
29
  this.cognee = cognee;
30
+ this.provider = vault.getProvider();
29
31
  this.initializeTables();
30
32
  this.seedDefaultAliases();
31
33
  }
32
34
  // ─── Schema ─────────────────────────────────────────────────────
33
35
  initializeTables() {
34
- const db = this.vault.getDb();
35
- db.exec(`
36
+ this.provider.execSql(`
36
37
  CREATE TABLE IF NOT EXISTS curator_entry_state (
37
38
  entry_id TEXT PRIMARY KEY,
38
39
  status TEXT NOT NULL DEFAULT 'active' CHECK(status IN ('active', 'stale', 'archived')),
@@ -84,30 +85,27 @@ export class Curator {
84
85
  resolved_at INTEGER,
85
86
  UNIQUE(pattern_id, antipattern_id)
86
87
  );
88
+ CREATE INDEX IF NOT EXISTS idx_curator_state_status ON curator_entry_state(status);
89
+ CREATE INDEX IF NOT EXISTS idx_curator_changelog_entry ON curator_changelog(entry_id);
87
90
  `);
88
91
  }
89
92
  seedDefaultAliases() {
90
- const db = this.vault.getDb();
91
- const insertCanonical = db.prepare('INSERT OR IGNORE INTO curator_tag_canonical (tag) VALUES (?)');
92
- const insertAlias = db.prepare('INSERT OR IGNORE INTO curator_tag_alias (alias, canonical) VALUES (?, ?)');
93
- const tx = db.transaction(() => {
93
+ this.provider.transaction(() => {
94
94
  const canonicals = new Set(DEFAULT_TAG_ALIASES.map(([, c]) => c));
95
95
  for (const tag of canonicals) {
96
- insertCanonical.run(tag);
96
+ this.provider.run('INSERT OR IGNORE INTO curator_tag_canonical (tag) VALUES (?)', [tag]);
97
97
  }
98
98
  for (const [alias, canonical] of DEFAULT_TAG_ALIASES) {
99
- insertAlias.run(alias, canonical);
99
+ this.provider.run('INSERT OR IGNORE INTO curator_tag_alias (alias, canonical) VALUES (?, ?)', [alias, canonical]);
100
100
  }
101
101
  });
102
- tx();
103
102
  }
104
103
  // ─── Status ─────────────────────────────────────────────────────
105
104
  getStatus() {
106
- const db = this.vault.getDb();
107
- const tableCount = (table) => db.prepare(`SELECT COUNT(*) as count FROM ${table}`).get().count;
108
- const lastGroomed = db
109
- .prepare('SELECT MAX(last_groomed_at) as ts FROM curator_entry_state WHERE last_groomed_at IS NOT NULL')
110
- .get();
105
+ const tableCount = (table) => (this.provider.get(`SELECT COUNT(*) as count FROM ${table}`) ?? {
106
+ count: 0,
107
+ }).count;
108
+ const lastGroomed = this.provider.get('SELECT MAX(last_groomed_at) as ts FROM curator_entry_state WHERE last_groomed_at IS NOT NULL') ?? { ts: null };
111
109
  return {
112
110
  initialized: true,
113
111
  tables: {
@@ -122,9 +120,8 @@ export class Curator {
122
120
  }
123
121
  // ─── Tag Normalization ──────────────────────────────────────────
124
122
  normalizeTag(tag) {
125
- const db = this.vault.getDb();
126
123
  const lower = tag.toLowerCase().trim();
127
- const row = db.prepare('SELECT canonical FROM curator_tag_alias WHERE alias = ?').get(lower);
124
+ const row = this.provider.get('SELECT canonical FROM curator_tag_alias WHERE alias = ?', [lower]);
128
125
  if (row) {
129
126
  return { original: tag, normalized: row.canonical, wasAliased: true };
130
127
  }
@@ -146,27 +143,30 @@ export class Curator {
146
143
  }
147
144
  if (changed) {
148
145
  const dedupedTags = [...new Set(normalizedTags)];
149
- const db = this.vault.getDb();
150
- db.prepare('UPDATE entries SET tags = ?, updated_at = unixepoch() WHERE id = ?').run(JSON.stringify(dedupedTags), entryId);
146
+ this.provider.run('UPDATE entries SET tags = ?, updated_at = unixepoch() WHERE id = ?', [
147
+ JSON.stringify(dedupedTags),
148
+ entryId,
149
+ ]);
151
150
  this.logChange('normalize_tags', entryId, JSON.stringify(entry.tags), JSON.stringify(dedupedTags), 'Tag normalization');
152
151
  }
153
152
  return results;
154
153
  }
155
154
  addTagAlias(alias, canonical) {
156
- const db = this.vault.getDb();
157
155
  const lower = alias.toLowerCase().trim();
158
156
  const canonicalLower = canonical.toLowerCase().trim();
159
- db.prepare('INSERT OR IGNORE INTO curator_tag_canonical (tag) VALUES (?)').run(canonicalLower);
160
- db.prepare('INSERT OR REPLACE INTO curator_tag_alias (alias, canonical) VALUES (?, ?)').run(lower, canonicalLower);
157
+ this.provider.run('INSERT OR IGNORE INTO curator_tag_canonical (tag) VALUES (?)', [
158
+ canonicalLower,
159
+ ]);
160
+ this.provider.run('INSERT OR REPLACE INTO curator_tag_alias (alias, canonical) VALUES (?, ?)', [
161
+ lower,
162
+ canonicalLower,
163
+ ]);
161
164
  }
162
165
  getCanonicalTags() {
163
- const db = this.vault.getDb();
164
- const rows = db
165
- .prepare(`SELECT c.tag, c.description,
166
- (SELECT COUNT(*) FROM curator_tag_alias a WHERE a.canonical = c.tag) as alias_count
167
- FROM curator_tag_canonical c
168
- ORDER BY c.tag`)
169
- .all();
166
+ const rows = this.provider.all(`SELECT c.tag, c.description,
167
+ (SELECT COUNT(*) FROM curator_tag_alias a WHERE a.canonical = c.tag) as alias_count
168
+ FROM curator_tag_canonical c
169
+ ORDER BY c.tag`);
170
170
  return rows.map((row) => ({
171
171
  tag: row.tag,
172
172
  description: row.description,
@@ -175,11 +175,8 @@ export class Curator {
175
175
  }));
176
176
  }
177
177
  countTagUsage(tag) {
178
- const db = this.vault.getDb();
179
- const row = db
180
- .prepare('SELECT COUNT(*) as count FROM entries WHERE tags LIKE ?')
181
- .get(`%"${tag}"%`);
182
- return row.count;
178
+ const row = this.provider.get('SELECT COUNT(*) as count FROM entries WHERE tags LIKE ?', [`%"${tag}"%`]);
179
+ return row?.count ?? 0;
183
180
  }
184
181
  // ─── Duplicate Detection ────────────────────────────────────────
185
182
  detectDuplicates(entryId, threshold) {
@@ -234,10 +231,7 @@ export class Curator {
234
231
  if (antipatterns.length === 0 || patterns.length === 0)
235
232
  return [];
236
233
  const vocabulary = this.buildVocabulary(entries);
237
- const db = this.vault.getDb();
238
234
  const detected = [];
239
- const insertStmt = db.prepare(`INSERT OR IGNORE INTO curator_contradictions (pattern_id, antipattern_id, similarity)
240
- VALUES (?, ?, ?)`);
241
235
  for (const ap of antipatterns) {
242
236
  // Stage 1: FTS5 candidate retrieval (fall back to all patterns if FTS returns empty)
243
237
  let candidates;
@@ -256,12 +250,11 @@ export class Curator {
256
250
  const pVec = calculateTfIdf(tokenize(pText), vocabulary);
257
251
  const similarity = cosineSimilarity(apVec, pVec);
258
252
  if (similarity >= effectiveThreshold) {
259
- const result = insertStmt.run(pattern.id, ap.id, similarity);
253
+ const result = this.provider.run('INSERT OR IGNORE INTO curator_contradictions (pattern_id, antipattern_id, similarity) VALUES (?, ?, ?)', [pattern.id, ap.id, similarity]);
260
254
  if (result.changes > 0) {
261
- const row = db
262
- .prepare('SELECT * FROM curator_contradictions WHERE pattern_id = ? AND antipattern_id = ?')
263
- .get(pattern.id, ap.id);
264
- detected.push(this.rowToContradiction(row));
255
+ const row = this.provider.get('SELECT * FROM curator_contradictions WHERE pattern_id = ? AND antipattern_id = ?', [pattern.id, ap.id]);
256
+ if (row)
257
+ detected.push(this.rowToContradiction(row));
265
258
  }
266
259
  }
267
260
  }
@@ -269,17 +262,15 @@ export class Curator {
269
262
  return detected;
270
263
  }
271
264
  getContradictions(status) {
272
- const db = this.vault.getDb();
273
265
  const query = status
274
266
  ? 'SELECT * FROM curator_contradictions WHERE status = ? ORDER BY similarity DESC'
275
267
  : 'SELECT * FROM curator_contradictions ORDER BY similarity DESC';
276
- const rows = (status ? db.prepare(query).all(status) : db.prepare(query).all());
268
+ const rows = this.provider.all(query, status ? [status] : undefined);
277
269
  return rows.map((r) => this.rowToContradiction(r));
278
270
  }
279
271
  resolveContradiction(id, resolution) {
280
- const db = this.vault.getDb();
281
- db.prepare('UPDATE curator_contradictions SET status = ?, resolved_at = unixepoch() WHERE id = ?').run(resolution, id);
282
- const row = db.prepare('SELECT * FROM curator_contradictions WHERE id = ?').get(id);
272
+ this.provider.run('UPDATE curator_contradictions SET status = ?, resolved_at = unixepoch() WHERE id = ?', [resolution, id]);
273
+ const row = this.provider.get('SELECT * FROM curator_contradictions WHERE id = ?', [id]);
283
274
  return row ? this.rowToContradiction(row) : null;
284
275
  }
285
276
  async detectContradictionsHybrid(threshold) {
@@ -291,10 +282,7 @@ export class Curator {
291
282
  return { contradictions: [], cogneeAvailable: false, method: 'tfidf-only' };
292
283
  }
293
284
  const vocabulary = this.buildVocabulary(entries);
294
- const db = this.vault.getDb();
295
285
  const detected = [];
296
- const insertStmt = db.prepare(`INSERT OR IGNORE INTO curator_contradictions (pattern_id, antipattern_id, similarity)
297
- VALUES (?, ?, ?)`);
298
286
  const cogneeAvailable = this.cognee?.isAvailable ?? false;
299
287
  for (const ap of antipatterns) {
300
288
  let candidates;
@@ -327,12 +315,11 @@ export class Curator {
327
315
  }
328
316
  }
329
317
  if (finalScore >= effectiveThreshold) {
330
- const result = insertStmt.run(pattern.id, ap.id, finalScore);
318
+ const result = this.provider.run('INSERT OR IGNORE INTO curator_contradictions (pattern_id, antipattern_id, similarity) VALUES (?, ?, ?)', [pattern.id, ap.id, finalScore]);
331
319
  if (result.changes > 0) {
332
- const row = db
333
- .prepare('SELECT * FROM curator_contradictions WHERE pattern_id = ? AND antipattern_id = ?')
334
- .get(pattern.id, ap.id);
335
- detected.push(this.rowToContradiction(row));
320
+ const row = this.provider.get('SELECT * FROM curator_contradictions WHERE pattern_id = ? AND antipattern_id = ?', [pattern.id, ap.id]);
321
+ if (row)
322
+ detected.push(this.rowToContradiction(row));
336
323
  }
337
324
  }
338
325
  }
@@ -350,15 +337,14 @@ export class Curator {
350
337
  return null;
351
338
  const tagsNormalized = this.normalizeTags(entryId);
352
339
  // Check staleness based on entry's updated_at timestamp
353
- const db = this.vault.getDb();
354
- const row = db.prepare('SELECT updated_at FROM entries WHERE id = ?').get(entryId);
340
+ const row = this.provider.get('SELECT updated_at FROM entries WHERE id = ?', [entryId]);
355
341
  const now = Math.floor(Date.now() / 1000);
356
342
  const stale = row ? now - row.updated_at > DEFAULT_STALE_DAYS * 86400 : false;
357
343
  const status = stale ? 'stale' : 'active';
358
344
  // Upsert entry state
359
- db.prepare(`INSERT INTO curator_entry_state (entry_id, status, last_groomed_at)
345
+ this.provider.run(`INSERT INTO curator_entry_state (entry_id, status, last_groomed_at)
360
346
  VALUES (?, ?, unixepoch())
361
- ON CONFLICT(entry_id) DO UPDATE SET status = excluded.status, last_groomed_at = unixepoch()`).run(entryId, status);
347
+ ON CONFLICT(entry_id) DO UPDATE SET status = excluded.status, last_groomed_at = unixepoch()`, [entryId, status]);
362
348
  this.logChange('groom', entryId, null, `status=${status}`, 'Routine grooming');
363
349
  return {
364
350
  entryId,
@@ -398,12 +384,9 @@ export class Curator {
398
384
  // Detect duplicates
399
385
  const duplicates = this.detectDuplicates(undefined, duplicateThreshold);
400
386
  // Detect stale entries
401
- const db = this.vault.getDb();
402
387
  const now = Math.floor(Date.now() / 1000);
403
388
  const staleThreshold = now - staleDaysThreshold * 86400;
404
- const staleRows = db
405
- .prepare('SELECT id FROM entries WHERE updated_at < ?')
406
- .all(staleThreshold);
389
+ const staleRows = this.provider.all('SELECT id FROM entries WHERE updated_at < ?', [staleThreshold]);
407
390
  const staleEntries = staleRows.map((r) => r.id);
408
391
  // Detect contradictions
409
392
  const contradictions = this.detectContradictions(contradictionThreshold);
@@ -411,9 +394,9 @@ export class Curator {
411
394
  if (!dryRun) {
412
395
  // Archive stale entries
413
396
  for (const entryId of staleEntries) {
414
- db.prepare(`INSERT INTO curator_entry_state (entry_id, status, last_groomed_at)
397
+ this.provider.run(`INSERT INTO curator_entry_state (entry_id, status, last_groomed_at)
415
398
  VALUES (?, 'archived', unixepoch())
416
- ON CONFLICT(entry_id) DO UPDATE SET status = 'archived', last_groomed_at = unixepoch()`).run(entryId);
399
+ ON CONFLICT(entry_id) DO UPDATE SET status = 'archived', last_groomed_at = unixepoch()`, [entryId]);
417
400
  this.logChange('archive', entryId, 'active', 'archived', 'Stale entry archived during consolidation');
418
401
  mutations++;
419
402
  }
@@ -441,10 +424,7 @@ export class Curator {
441
424
  }
442
425
  // ─── Changelog ──────────────────────────────────────────────────
443
426
  getEntryHistory(entryId, limit) {
444
- const db = this.vault.getDb();
445
- const rows = db
446
- .prepare('SELECT * FROM curator_changelog WHERE entry_id = ? ORDER BY created_at DESC, id DESC LIMIT ?')
447
- .all(entryId, limit ?? 50);
427
+ const rows = this.provider.all('SELECT * FROM curator_changelog WHERE entry_id = ? ORDER BY created_at DESC, id DESC LIMIT ?', [entryId, limit ?? 50]);
448
428
  return rows.map((r) => this.rowToChangelog(r));
449
429
  }
450
430
  // ─── Health Audit ───────────────────────────────────────────────
@@ -485,12 +465,9 @@ export class Curator {
485
465
  }
486
466
  coverageScore = Math.max(0, coverageScore);
487
467
  // Freshness: penalize stale entries
488
- const db = this.vault.getDb();
489
468
  const now = Math.floor(Date.now() / 1000);
490
469
  const staleThreshold = now - DEFAULT_STALE_DAYS * 86400;
491
- const staleCount = db
492
- .prepare('SELECT COUNT(*) as count FROM entries WHERE updated_at < ?')
493
- .get(staleThreshold).count;
470
+ const staleCount = (this.provider.get('SELECT COUNT(*) as count FROM entries WHERE updated_at < ?', [staleThreshold]) ?? { count: 0 }).count;
494
471
  const staleRatio = staleCount / entries.length;
495
472
  const freshnessScore = 1 - staleRatio;
496
473
  if (staleRatio > 0.3) {
@@ -525,9 +502,7 @@ export class Curator {
525
502
  recommendations.push(`${lowTagEntries.length} entries have fewer than 2 tags — improve tagging.`);
526
503
  }
527
504
  // Penalize ungroomed entries
528
- const groomedCount = db
529
- .prepare('SELECT COUNT(*) as count FROM curator_entry_state WHERE last_groomed_at IS NOT NULL')
530
- .get().count;
505
+ const groomedCount = (this.provider.get('SELECT COUNT(*) as count FROM curator_entry_state WHERE last_groomed_at IS NOT NULL') ?? { count: 0 }).count;
531
506
  if (groomedCount < entries.length) {
532
507
  const ungroomed = entries.length - groomedCount;
533
508
  const penalty = Math.min(10, Math.round((ungroomed / entries.length) * 10));
@@ -554,17 +529,11 @@ export class Curator {
554
529
  const entry = this.vault.get(entryId);
555
530
  if (!entry)
556
531
  return { recorded: false, historyId: -1 };
557
- const db = this.vault.getDb();
558
- const result = db
559
- .prepare('INSERT INTO curator_entry_history (entry_id, snapshot, changed_by, change_reason, created_at) VALUES (?, ?, ?, ?, unixepoch())')
560
- .run(entryId, JSON.stringify(entry), changedBy ?? 'system', changeReason ?? null);
532
+ const result = this.provider.run('INSERT INTO curator_entry_history (entry_id, snapshot, changed_by, change_reason, created_at) VALUES (?, ?, ?, ?, unixepoch())', [entryId, JSON.stringify(entry), changedBy ?? 'system', changeReason ?? null]);
561
533
  return { recorded: true, historyId: Number(result.lastInsertRowid) };
562
534
  }
563
535
  getVersionHistory(entryId) {
564
- const db = this.vault.getDb();
565
- const rows = db
566
- .prepare('SELECT * FROM curator_entry_history WHERE entry_id = ? ORDER BY created_at ASC, id ASC')
567
- .all(entryId);
536
+ const rows = this.provider.all('SELECT * FROM curator_entry_history WHERE entry_id = ? ORDER BY created_at ASC, id ASC', [entryId]);
568
537
  return rows.map((row) => ({
569
538
  historyId: row.id,
570
539
  entryId: row.entry_id,
@@ -576,26 +545,17 @@ export class Curator {
576
545
  }
577
546
  // ─── Queue Stats ──────────────────────────────────────────────
578
547
  getQueueStats() {
579
- const db = this.vault.getDb();
580
- const totalEntries = db.prepare('SELECT COUNT(*) as count FROM entries').get().count;
581
- const groomedEntries = db
582
- .prepare('SELECT COUNT(*) as count FROM curator_entry_state WHERE last_groomed_at IS NOT NULL')
583
- .get().count;
548
+ const totalEntries = (this.provider.get('SELECT COUNT(*) as count FROM entries') ?? { count: 0 }).count;
549
+ const groomedEntries = (this.provider.get('SELECT COUNT(*) as count FROM curator_entry_state WHERE last_groomed_at IS NOT NULL') ?? { count: 0 }).count;
584
550
  const ungroomedEntries = totalEntries - groomedEntries;
585
551
  const now = Math.floor(Date.now() / 1000);
586
552
  const staleThreshold = now - 30 * 86400;
587
553
  const freshThreshold = now - 7 * 86400;
588
- const staleEntries = db
589
- .prepare('SELECT COUNT(*) as count FROM curator_entry_state WHERE last_groomed_at IS NOT NULL AND last_groomed_at < ?')
590
- .get(staleThreshold).count;
591
- const freshEntries = db
592
- .prepare('SELECT COUNT(*) as count FROM curator_entry_state WHERE last_groomed_at IS NOT NULL AND last_groomed_at >= ?')
593
- .get(freshThreshold).count;
554
+ const staleEntries = (this.provider.get('SELECT COUNT(*) as count FROM curator_entry_state WHERE last_groomed_at IS NOT NULL AND last_groomed_at < ?', [staleThreshold]) ?? { count: 0 }).count;
555
+ const freshEntries = (this.provider.get('SELECT COUNT(*) as count FROM curator_entry_state WHERE last_groomed_at IS NOT NULL AND last_groomed_at >= ?', [freshThreshold]) ?? { count: 0 }).count;
594
556
  let avgDaysSinceGroom = 0;
595
557
  if (groomedEntries > 0) {
596
- const sumRow = db
597
- .prepare('SELECT SUM(? - last_groomed_at) as total FROM curator_entry_state WHERE last_groomed_at IS NOT NULL')
598
- .get(now);
558
+ const sumRow = this.provider.get('SELECT SUM(? - last_groomed_at) as total FROM curator_entry_state WHERE last_groomed_at IS NOT NULL', [now]) ?? { total: 0 };
599
559
  const totalSeconds = sumRow.total ?? 0;
600
560
  avgDaysSinceGroom = Math.round((totalSeconds / groomedEntries / 86400) * 100) / 100;
601
561
  }
@@ -694,8 +654,7 @@ export class Curator {
694
654
  return vocabulary;
695
655
  }
696
656
  logChange(action, entryId, beforeValue, afterValue, reason) {
697
- const db = this.vault.getDb();
698
- db.prepare('INSERT INTO curator_changelog (action, entry_id, before_value, after_value, reason) VALUES (?, ?, ?, ?, ?)').run(action, entryId, beforeValue, afterValue, reason);
657
+ this.provider.run('INSERT INTO curator_changelog (action, entry_id, before_value, after_value, reason) VALUES (?, ?, ?, ?, ?)', [action, entryId, beforeValue, afterValue, reason]);
699
658
  }
700
659
  rowToContradiction(row) {
701
660
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"curator.js","sourceRoot":"","sources":["../../src/curator/curator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"curator.js","sourceRoot":"","sources":["../../src/curator/curator.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,QAAQ,EACR,cAAc,EACd,gBAAgB,GAEjB,MAAM,uBAAuB,CAAC;AAiB/B,uEAAuE;AAEvE,MAAM,2BAA2B,GAAG,IAAI,CAAC;AACzC,MAAM,0BAA0B,GAAG,IAAI,CAAC;AACxC,MAAM,+BAA+B,GAAG,GAAG,CAAC;AAC5C,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAE9B,MAAM,mBAAmB,GAA4B;IACnD,CAAC,MAAM,EAAE,eAAe,CAAC;IACzB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,KAAK,EAAE,SAAS,CAAC;IAClB,CAAC,UAAU,EAAE,SAAS,CAAC;IACvB,CAAC,IAAI,EAAE,SAAS,CAAC;IACjB,CAAC,QAAQ,EAAE,SAAS,CAAC;IACrB,CAAC,MAAM,EAAE,SAAS,CAAC;IACnB,CAAC,MAAM,EAAE,aAAa,CAAC;IACvB,CAAC,KAAK,EAAE,UAAU,CAAC;IACnB,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAC1B,CAAC,MAAM,EAAE,sBAAsB,CAAC;IAChC,CAAC,MAAM,EAAE,cAAc,CAAC;CACzB,CAAC;AAEF,uEAAuE;AAEvE,MAAM,OAAO,OAAO;IACV,KAAK,CAAQ;IACb,MAAM,CAA2B;IACjC,QAAQ,CAAsB;IAEtC,YAAY,KAAY,EAAE,MAAqB;QAC7C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,mEAAmE;IAE3D,gBAAgB;QACtB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAsDrB,CAAC,CAAC;IACL,CAAC;IAEO,kBAAkB;QACxB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE;YAC7B,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAClE,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,8DAA8D,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3F,CAAC;YACD,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,mBAAmB,EAAE,CAAC;gBACrD,IAAI,CAAC,QAAQ,CAAC,GAAG,CACf,0EAA0E,EAC1E,CAAC,KAAK,EAAE,SAAS,CAAC,CACnB,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mEAAmE;IAEnE,SAAS;QACP,MAAM,UAAU,GAAG,CAAC,KAAa,EAAU,EAAE,CAC3C,CACE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAoB,iCAAiC,KAAK,EAAE,CAAC,IAAI;YAChF,KAAK,EAAE,CAAC;SACT,CACF,CAAC,KAAK,CAAC;QAEV,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CACnC,8FAA8F,CAC/F,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QAElB,OAAO;YACL,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE;gBACN,WAAW,EAAE,UAAU,CAAC,qBAAqB,CAAC;gBAC9C,aAAa,EAAE,UAAU,CAAC,uBAAuB,CAAC;gBAClD,SAAS,EAAE,UAAU,CAAC,mBAAmB,CAAC;gBAC1C,SAAS,EAAE,UAAU,CAAC,mBAAmB,CAAC;gBAC1C,cAAc,EAAE,UAAU,CAAC,wBAAwB,CAAC;aACrD;YACD,aAAa,EAAE,WAAW,CAAC,EAAE;SAC9B,CAAC;IACJ,CAAC;IAED,mEAAmE;IAEnE,YAAY,CAAC,GAAW;QACtB,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAC3B,yDAAyD,EACzD,CAAC,KAAK,CAAC,CACR,CAAC;QACF,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACxE,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IACjE,CAAC;IAED,aAAa,CAAC,OAAe;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAEtB,MAAM,OAAO,GAA6B,EAAE,CAAC;QAC7C,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACvC,IAAI,MAAM,CAAC,UAAU,KAAK,GAAG;gBAAE,OAAO,GAAG,IAAI,CAAC;QAChD,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;YACjD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,oEAAoE,EAAE;gBACtF,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;gBAC3B,OAAO;aACR,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CACZ,gBAAgB,EAChB,OAAO,EACP,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAC1B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAC3B,mBAAmB,CACpB,CAAC;QACJ,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,SAAiB;QAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,cAAc,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,8DAA8D,EAAE;YAChF,cAAc;SACf,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,2EAA2E,EAAE;YAC7F,KAAK;YACL,cAAc;SACf,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAK5B;;;qBAGe,CAChB,CAAC;QAEF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxB,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;YACvC,UAAU,EAAE,GAAG,CAAC,WAAW;SAC5B,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,aAAa,CAAC,GAAW;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAC3B,yDAAyD,EACzD,CAAC,KAAK,GAAG,IAAI,CAAC,CACf,CAAC;QACF,OAAO,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,mEAAmE;IAEnE,gBAAgB,CAAC,OAAgB,EAAE,SAAkB;QACnD,MAAM,kBAAkB,GAAG,SAAS,IAAI,2BAA2B,CAAC;QACpE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACnD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEpC,6BAA6B;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEjD,gCAAgC;QAChC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;QAChD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAC3F,GAAG,CACJ,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAElF,MAAM,OAAO,GAA+B,EAAE,CAAC;QAE/C,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAE,CAAC;YACxC,MAAM,OAAO,GAAyB,EAAE,CAAC;YAEzC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE;oBAAE,SAAS;gBACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAE,CAAC;gBACxC,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACxD,IAAI,UAAU,IAAI,kBAAkB,EAAE,CAAC;oBACrC,OAAO,CAAC,IAAI,CAAC;wBACX,OAAO,EAAE,KAAK,CAAC,EAAE;wBACjB,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,UAAU;wBACV,YAAY,EAAE,UAAU,IAAI,0BAA0B;qBACvD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;gBACpD,OAAO,CAAC,IAAI,CAAC;oBACX,OAAO,EAAE,KAAK,CAAC,EAAE;oBACjB,OAAO;oBACP,YAAY,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC;iBACjC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,mEAAmE;IAEnE,oBAAoB,CAAC,SAAkB;QACrC,MAAM,kBAAkB,GAAG,SAAS,IAAI,+BAA+B,CAAC;QACxE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAE7D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAElE,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAoB,EAAE,CAAC;QAErC,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;YAC9B,qFAAqF;YACrF,IAAI,UAA+B,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBAClF,UAAU,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACvF,CAAC;YAAC,MAAM,CAAC;gBACP,UAAU,GAAG,QAAQ,CAAC;YACxB,CAAC;YAED,oCAAoC;YACpC,MAAM,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtE,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;YAE3D,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACpF,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;gBACzD,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAEjD,IAAI,UAAU,IAAI,kBAAkB,EAAE,CAAC;oBACrC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAC9B,wGAAwG,EACxG,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,CAChC,CAAC;oBACF,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;wBACvB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAC3B,kFAAkF,EAClF,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CACpB,CAAC;wBACF,IAAI,GAAG;4BAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,iBAAiB,CAAC,MAA4B;QAC5C,MAAM,KAAK,GAAG,MAAM;YAClB,CAAC,CAAC,gFAAgF;YAClF,CAAC,CAAC,+DAA+D,CAAC;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAA0B,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC9F,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,oBAAoB,CAAC,EAAU,EAAE,UAAoC;QACnE,IAAI,CAAC,QAAQ,CAAC,GAAG,CACf,sFAAsF,EACtF,CAAC,UAAU,EAAE,EAAE,CAAC,CACjB,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAC3B,mDAAmD,EACnD,CAAC,EAAE,CAAC,CACL,CAAC;QACF,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,SAAkB;QAKjD,MAAM,kBAAkB,GAAG,SAAS,IAAI,+BAA+B,CAAC;QACxE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAE7D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvD,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;QAC9E,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAoB,EAAE,CAAC;QAErC,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,IAAI,KAAK,CAAC;QAE1D,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;YAC9B,IAAI,UAA+B,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBAClF,UAAU,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACvF,CAAC;YAAC,MAAM,CAAC;gBACP,UAAU,GAAG,QAAQ,CAAC;YACxB,CAAC;YAED,MAAM,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtE,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;YAE3D,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACpF,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;gBACzD,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAEjD,IAAI,UAAU,GAAG,UAAU,CAAC;gBAC5B,IAAI,eAAe,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACnC,IAAI,CAAC;wBACH,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE;4BAC7E,KAAK,EAAE,CAAC;yBACT,CAAC,CAAC;wBACH,MAAM,WAAW,GACf,aAAa,CAAC,MAAM,GAAG,CAAC;4BACtB,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM;4BAC3E,CAAC,CAAC,CAAC,CAAC;wBACR,UAAU,GAAG,GAAG,GAAG,UAAU,GAAG,GAAG,GAAG,WAAW,CAAC;oBACpD,CAAC;oBAAC,MAAM,CAAC;wBACP,UAAU,GAAG,UAAU,CAAC;oBAC1B,CAAC;gBACH,CAAC;gBAED,IAAI,UAAU,IAAI,kBAAkB,EAAE,CAAC;oBACrC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAC9B,wGAAwG,EACxG,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,CAChC,CAAC;oBACF,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;wBACvB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAC3B,kFAAkF,EAClF,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CACpB,CAAC;wBACF,IAAI,GAAG;4BAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,cAAc,EAAE,QAAQ;YACxB,eAAe;YACf,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY;SAClD,CAAC;IACJ,CAAC;IAED,mEAAmE;IAEnE,UAAU,CAAC,OAAe;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAEnD,wDAAwD;QACxD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAC3B,6CAA6C,EAC7C,CAAC,OAAO,CAAC,CACV,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,UAAU,GAAG,kBAAkB,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAE9E,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE1C,qBAAqB;QACrB,IAAI,CAAC,QAAQ,CAAC,GAAG,CACf;;mGAE6F,EAC7F,CAAC,OAAO,EAAE,MAAM,CAAC,CAClB,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,MAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC;QAE/E,OAAO;YACL,OAAO;YACP,cAAc;YACd,KAAK;YACL,aAAa,EAAE,GAAG;SACnB,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACnD,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACX,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;gBAC3E,IAAI,MAAM,CAAC,KAAK;oBAAE,UAAU,EAAE,CAAC;YACjC,CAAC;QACH,CAAC;QAED,OAAO;YACL,YAAY,EAAE,OAAO,CAAC,MAAM;YAC5B,YAAY,EAAE,OAAO,CAAC,MAAM;YAC5B,cAAc;YACd,UAAU;YACV,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SAC/B,CAAC;IACJ,CAAC;IAED,kEAAkE;IAElE,WAAW,CAAC,OAA8B;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC;QACvC,MAAM,kBAAkB,GAAG,OAAO,EAAE,kBAAkB,IAAI,kBAAkB,CAAC;QAC7E,MAAM,kBAAkB,GAAG,OAAO,EAAE,kBAAkB,IAAI,2BAA2B,CAAC;QACtF,MAAM,sBAAsB,GAC1B,OAAO,EAAE,sBAAsB,IAAI,+BAA+B,CAAC;QAErE,oBAAoB;QACpB,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;QAExE,uBAAuB;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,MAAM,cAAc,GAAG,GAAG,GAAG,kBAAkB,GAAG,KAAK,CAAC;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CACjC,6CAA6C,EAC7C,CAAC,cAAc,CAAC,CACjB,CAAC;QACF,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAEhD,wBAAwB;QACxB,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;QAEzE,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,wBAAwB;YACxB,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CACf;;kGAEwF,EACxF,CAAC,OAAO,CAAC,CACV,CAAC;gBACF,IAAI,CAAC,SAAS,CACZ,SAAS,EACT,OAAO,EACP,QAAQ,EACR,UAAU,EACV,2CAA2C,CAC5C,CAAC;gBACF,SAAS,EAAE,CAAC;YACd,CAAC;YAED,4EAA4E;YAC5E,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;YAClC,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;gBAChC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;wBACpE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACjC,IAAI,CAAC,SAAS,CACZ,kBAAkB,EAClB,KAAK,CAAC,OAAO,EACb,IAAI,EACJ,IAAI,EACJ,gBAAgB,MAAM,CAAC,OAAO,iBAAiB,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAC9E,CAAC;wBACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBAC3B,SAAS,EAAE,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,MAAM;YACN,UAAU;YACV,YAAY;YACZ,cAAc;YACd,SAAS;YACT,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SAC/B,CAAC;IACJ,CAAC;IAED,mEAAmE;IAEnE,eAAe,CAAC,OAAe,EAAE,KAAc;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAC5B,8FAA8F,EAC9F,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CACvB,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,mEAAmE;IAEnE,WAAW;QACT,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACnD,MAAM,eAAe,GAAa,EAAE,CAAC;QAErC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO;gBACL,KAAK,EAAE,GAAG;gBACV,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBAChE,eAAe,EAAE,CAAC,wDAAwD,CAAC;aAC5E,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,GAAG,GAAG,CAAC;QAEhB,wDAAwD;QACxD,MAAM,SAAS,GAA2B,EAAE,OAAO,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACrF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC;QAC1C,MAAM,eAAe,GAAG,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;QACpC,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,KAAK,IAAI,EAAE,CAAC;YACZ,aAAa,IAAI,IAAI,CAAC;YACtB,eAAe,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,KAAK,IAAI,CAAC,CAAC;YACX,aAAa,IAAI,IAAI,CAAC;YACtB,eAAe,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,KAAK,IAAI,CAAC,CAAC;YACX,aAAa,IAAI,IAAI,CAAC;YACtB,eAAe,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QACvE,CAAC;QACD,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;QAE3C,oCAAoC;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,MAAM,cAAc,GAAG,GAAG,GAAG,kBAAkB,GAAG,KAAK,CAAC;QACxD,MAAM,UAAU,GAAG,CACjB,IAAI,CAAC,QAAQ,CAAC,GAAG,CACf,4DAA4D,EAC5D,CAAC,cAAc,CAAC,CACjB,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAClB,CAAC,KAAK,CAAC;QACR,MAAM,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;QAC/C,MAAM,cAAc,GAAG,CAAC,GAAG,UAAU,CAAC;QACtC,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;YAC1D,KAAK,IAAI,OAAO,CAAC;YACjB,eAAe,CAAC,IAAI,CAClB,GAAG,UAAU,mBAAmB,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,8BAA8B,CAC3F,CAAC;QACJ,CAAC;QAED,kDAAkD;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC3C,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACpD,KAAK,IAAI,OAAO,CAAC;YACjB,YAAY,IAAI,OAAO,GAAG,EAAE,CAAC;YAC7B,eAAe,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,+CAA+C,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACxD,KAAK,IAAI,OAAO,CAAC;YACjB,YAAY,IAAI,OAAO,GAAG,EAAE,CAAC;YAC7B,eAAe,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,4CAA4C,CAAC,CAAC;QAC7F,CAAC;QACD,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QAEzC,mDAAmD;QACnD,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC1D,MAAM,cAAc,GAAG,CAAC,GAAG,WAAW,CAAC;QACvC,IAAI,WAAW,GAAG,GAAG,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC;YAC3D,KAAK,IAAI,OAAO,CAAC;YACjB,eAAe,CAAC,IAAI,CAClB,GAAG,aAAa,CAAC,MAAM,oDAAoD,CAC5E,CAAC;QACJ,CAAC;QAED,6BAA6B;QAC7B,MAAM,YAAY,GAAG,CACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CACf,qFAAqF,CACtF,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAClB,CAAC,KAAK,CAAC;QACR,IAAI,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC;YAChD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC5E,KAAK,IAAI,OAAO,CAAC;YACjB,eAAe,CAAC,IAAI,CAAC,GAAG,SAAS,0CAA0C,CAAC,CAAC;QAC/E,CAAC;QAED,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAE3B,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,eAAe,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACjE,CAAC;QAED,OAAO;YACL,KAAK;YACL,OAAO,EAAE;gBACP,QAAQ,EAAE,aAAa;gBACvB,SAAS,EAAE,cAAc;gBACzB,OAAO,EAAE,YAAY;gBACrB,SAAS,EAAE,cAAc;aAC1B;YACD,eAAe;SAChB,CAAC;IACJ,CAAC;IAED,kEAAkE;IAElE,cAAc,CACZ,OAAe,EACf,SAAkB,EAClB,YAAqB;QAErB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC;QAEtD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAC9B,gIAAgI,EAChI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,SAAS,IAAI,QAAQ,EAAE,YAAY,IAAI,IAAI,CAAC,CAC9E,CAAC;QAEF,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;IACvE,CAAC;IAED,iBAAiB,CAAC,OAAe;QAQ/B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAC5B,wFAAwF,EACxF,CAAC,OAAO,CAAC,CACV,CAAC;QAEF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxB,SAAS,EAAE,GAAG,CAAC,EAAY;YAC3B,OAAO,EAAE,GAAG,CAAC,QAAkB;YAC/B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAkB,CAAsB;YACjE,SAAS,EAAE,GAAG,CAAC,UAAoB;YACnC,YAAY,EAAG,GAAG,CAAC,aAAwB,IAAI,IAAI;YACnD,SAAS,EAAE,GAAG,CAAC,UAAoB;SACpC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,iEAAiE;IAEjE,aAAa;QAQX,MAAM,YAAY,GAAG,CACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAoB,uCAAuC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAC9F,CAAC,KAAK,CAAC;QAER,MAAM,cAAc,GAAG,CACrB,IAAI,CAAC,QAAQ,CAAC,GAAG,CACf,qFAAqF,CACtF,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAClB,CAAC,KAAK,CAAC;QAER,MAAM,gBAAgB,GAAG,YAAY,GAAG,cAAc,CAAC;QAEvD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,MAAM,cAAc,GAAG,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC;QACxC,MAAM,cAAc,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;QAEvC,MAAM,YAAY,GAAG,CACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CACf,6GAA6G,EAC7G,CAAC,cAAc,CAAC,CACjB,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAClB,CAAC,KAAK,CAAC;QAER,MAAM,YAAY,GAAG,CACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CACf,8GAA8G,EAC9G,CAAC,cAAc,CAAC,CACjB,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAClB,CAAC,KAAK,CAAC;QAER,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAC9B,qGAAqG,EACrG,CAAC,GAAG,CAAC,CACN,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAClB,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;YACvC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,cAAc,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QACtF,CAAC;QAED,OAAO;YACL,YAAY;YACZ,cAAc;YACd,gBAAgB;YAChB,YAAY;YACZ,YAAY;YACZ,iBAAiB;SAClB,CAAC;IACJ,CAAC;IAED,iEAAiE;IAEjE,cAAc,CAAC,OAAe;QAI5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAEpD,MAAM,OAAO,GAA4D,EAAE,CAAC;QAC5E,MAAM,OAAO,GAET,EAAE,CAAC;QAEP,wBAAwB;QACxB,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9E,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YAC1E,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC;QAC9B,CAAC;QAED,yCAAyC;QACzC,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,WAAW,GACf,cAAc,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM;YAC3C,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;gBAClC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;aACtC,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;QAChC,CAAC;QAED,yDAAyD;QACzD,IAAI,KAAK,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;YACnE,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;YACxF,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACpF,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;gBAC/E,OAAO,CAAC,QAAQ,GAAG,UAAU,CAAC;YAChC,CAAC;iBAAM,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC9E,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAC7C,IACE,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC9B,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC9B,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC9B,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC/B,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;gBAC3E,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;YAChC,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,OAAO,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAClF,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC;QAChC,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAC1C,CAAC;QAED,gBAAgB;QAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEpC,kBAAkB;QAClB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,qBAAqB,CAAC,CAAC;QAE/D,aAAa;QACb,IAAI,CAAC,SAAS,CACZ,iBAAiB,EACjB,OAAO,EACP,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAC3C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAC3C,gCAAgC,CACjC,CAAC;QAEF,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACrC,CAAC;IAED,mEAAmE;IAE3D,eAAe,CAAC,OAA4B;QAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;QAChC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC9C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAC3F,GAAG,CACJ,CAAC;YACF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACpD,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,SAAS,CACf,MAAc,EACd,OAAe,EACf,WAA0B,EAC1B,UAAyB,EACzB,MAAc;QAEd,IAAI,CAAC,QAAQ,CAAC,GAAG,CACf,4GAA4G,EAC5G,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,CACnD,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,GAA4B;QACrD,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAY;YACpB,SAAS,EAAE,GAAG,CAAC,UAAoB;YACnC,aAAa,EAAE,GAAG,CAAC,cAAwB;YAC3C,UAAU,EAAE,GAAG,CAAC,UAAoB;YACpC,MAAM,EAAE,GAAG,CAAC,MAA6B;YACzC,SAAS,EAAE,GAAG,CAAC,UAAoB;YACnC,UAAU,EAAG,GAAG,CAAC,WAAsB,IAAI,IAAI;SAChD,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,GAA4B;QACjD,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAY;YACpB,MAAM,EAAE,GAAG,CAAC,MAAgB;YAC5B,OAAO,EAAE,GAAG,CAAC,QAAkB;YAC/B,WAAW,EAAG,GAAG,CAAC,YAAuB,IAAI,IAAI;YACjD,UAAU,EAAG,GAAG,CAAC,WAAsB,IAAI,IAAI;YAC/C,MAAM,EAAE,GAAG,CAAC,MAAgB;YAC5B,SAAS,EAAE,GAAG,CAAC,UAAoB;SACpC,CAAC;IACJ,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  export function registerFacade(server, facade) {
3
3
  const opNames = facade.ops.map((o) => o.name);
4
- server.tool(facade.name, `${facade.description}\n\nOperations: ${opNames.join(', ')}`, {
4
+ server.tool(facade.name, facade.description, {
5
5
  op: z.string().describe(`Operation: ${opNames.join(' | ')}`),
6
6
  params: z.record(z.unknown()).optional().default({}).describe('Operation parameters'),
7
7
  }, async ({ op, params }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"facade-factory.js","sourceRoot":"","sources":["../../src/facades/facade-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"facade-factory.js","sourceRoot":"","sources":["../../src/facades/facade-factory.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import type { Vault } from '../vault/vault.js';
2
2
  import type { PolicyType, PolicyPreset, VaultPolicy, QuotaStatus, PolicyDecision, BatchDecision, PolicyAuditEntry, Proposal, ProposalStats, GovernanceDashboard } from './types.js';
3
3
  export declare class Governance {
4
4
  private vault;
5
+ private provider;
5
6
  constructor(vault: Vault);
6
7
  private initializeTables;
7
8
  getPolicy(projectPath: string): VaultPolicy;
@@ -1 +1 @@
1
- {"version":3,"file":"governance.d.ts","sourceRoot":"","sources":["../../src/governance/governance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EAIZ,WAAW,EACX,WAAW,EACX,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,QAAQ,EAER,aAAa,EACb,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAyDpB,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAQ;gBAET,KAAK,EAAE,KAAK;IAOxB,OAAO,CAAC,gBAAgB;IAiExB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW;IAwB3C,SAAS,CACP,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI;IAuBP,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAwBhF,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW;IAsChD,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAAE;IA6BtE,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GACxD,cAAc;IAkEjB,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GACjE,aAAa,EAAE;IASlB,OAAO,CAAC,aAAa;IA4BrB,OAAO,CACL,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE;QACT,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,EACD,MAAM,CAAC,EAAE,MAAM,GACd,MAAM;IAmBT,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAOxE,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAItF,cAAc,CACZ,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,SAAS,CAAC,EAAE,MAAM,GACjB,QAAQ,GAAG,IAAI;IAyBlB,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE;IAgBtE,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa;IAsErD,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;IAgBjD,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB;IAsCtD,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,eAAe;CAOxB"}
1
+ {"version":3,"file":"governance.d.ts","sourceRoot":"","sources":["../../src/governance/governance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EAIZ,WAAW,EACX,WAAW,EACX,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,QAAQ,EAER,aAAa,EACb,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAyDpB,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAsB;gBAE1B,KAAK,EAAE,KAAK;IAQxB,OAAO,CAAC,gBAAgB;IAgExB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW;IAsB3C,SAAS,CACP,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI;IAwBP,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAwBhF,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW;IAqChD,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAAE;IA2BtE,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GACxD,cAAc;IAkEjB,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GACjE,aAAa,EAAE;IASlB,OAAO,CAAC,aAAa;IA4BrB,OAAO,CACL,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE;QACT,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,EACD,MAAM,CAAC,EAAE,MAAM,GACd,MAAM;IAiBT,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAOxE,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAItF,cAAc,CACZ,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,SAAS,CAAC,EAAE,MAAM,GACjB,QAAQ,GAAG,IAAI;IAyBlB,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE;IAetE,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa;IAmErD,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;IAcjD,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB;IAoCtD,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,eAAe;CAIxB"}