ai-mind-map 1.6.1 → 1.6.2

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.
@@ -12,109 +12,109 @@ import Database from 'better-sqlite3';
12
12
  // ============================================================
13
13
  // Schema SQL
14
14
  // ============================================================
15
- const SCHEMA_SQL = `
16
- -- Core nodes table
17
- CREATE TABLE IF NOT EXISTS nodes (
18
- id TEXT PRIMARY KEY,
19
- type TEXT NOT NULL,
20
- name TEXT NOT NULL,
21
- qualifiedName TEXT NOT NULL,
22
- filePath TEXT NOT NULL,
23
- startLine INTEGER NOT NULL,
24
- endLine INTEGER NOT NULL,
25
- signature TEXT NOT NULL DEFAULT '',
26
- docComment TEXT,
27
- hash TEXT NOT NULL,
28
- language TEXT NOT NULL,
29
- visibility TEXT NOT NULL DEFAULT 'unknown',
30
- isAsync INTEGER NOT NULL DEFAULT 0,
31
- isStatic INTEGER NOT NULL DEFAULT 0,
32
- isExported INTEGER NOT NULL DEFAULT 0,
33
- parameters TEXT,
34
- returnType TEXT,
35
- updatedAt INTEGER NOT NULL
36
- );
37
-
38
- -- Edges table with composite primary key
39
- CREATE TABLE IF NOT EXISTS edges (
40
- sourceId TEXT NOT NULL,
41
- targetId TEXT NOT NULL,
42
- type TEXT NOT NULL,
43
- metadata TEXT,
44
- PRIMARY KEY (sourceId, targetId, type)
45
- );
46
-
47
- -- Indexes for common queries
48
- CREATE INDEX IF NOT EXISTS idx_nodes_filePath ON nodes(filePath);
49
- CREATE INDEX IF NOT EXISTS idx_nodes_type ON nodes(type);
50
- CREATE INDEX IF NOT EXISTS idx_nodes_name ON nodes(name);
51
- CREATE INDEX IF NOT EXISTS idx_nodes_language ON nodes(language);
52
- CREATE INDEX IF NOT EXISTS idx_nodes_hash ON nodes(hash);
53
- CREATE INDEX IF NOT EXISTS idx_edges_sourceId ON edges(sourceId);
54
- CREATE INDEX IF NOT EXISTS idx_edges_targetId ON edges(targetId);
55
- CREATE INDEX IF NOT EXISTS idx_edges_type ON edges(type);
56
-
57
- -- FTS5 virtual table for full-text search across names, signatures, and doc comments
58
- CREATE VIRTUAL TABLE IF NOT EXISTS nodes_fts USING fts5(
59
- id UNINDEXED,
60
- name,
61
- qualifiedName,
62
- signature,
63
- docComment,
64
- content='nodes',
65
- content_rowid='rowid',
66
- tokenize='porter unicode61'
67
- );
68
-
69
- -- Triggers to keep FTS in sync with nodes table
70
- CREATE TRIGGER IF NOT EXISTS nodes_ai AFTER INSERT ON nodes BEGIN
71
- INSERT INTO nodes_fts(rowid, id, name, qualifiedName, signature, docComment)
72
- VALUES (new.rowid, new.id, new.name, new.qualifiedName, new.signature, new.docComment);
73
- END;
74
-
75
- CREATE TRIGGER IF NOT EXISTS nodes_ad AFTER DELETE ON nodes BEGIN
76
- INSERT INTO nodes_fts(nodes_fts, rowid, id, name, qualifiedName, signature, docComment)
77
- VALUES ('delete', old.rowid, old.id, old.name, old.qualifiedName, old.signature, old.docComment);
78
- END;
79
-
80
- CREATE TRIGGER IF NOT EXISTS nodes_au AFTER UPDATE ON nodes BEGIN
81
- INSERT INTO nodes_fts(nodes_fts, rowid, id, name, qualifiedName, signature, docComment)
82
- VALUES ('delete', old.rowid, old.id, old.name, old.qualifiedName, old.signature, old.docComment);
83
- INSERT INTO nodes_fts(rowid, id, name, qualifiedName, signature, docComment)
84
- VALUES (new.rowid, new.id, new.name, new.qualifiedName, new.signature, new.docComment);
85
- END;
86
-
87
- -- Metadata table for tracking schema version and stats
88
- CREATE TABLE IF NOT EXISTS graph_meta (
89
- key TEXT PRIMARY KEY,
90
- value TEXT NOT NULL
91
- );
92
-
93
- -- Learned rules: AI-taught patterns that persist per-project
94
- CREATE TABLE IF NOT EXISTS learned_rules (
95
- id TEXT PRIMARY KEY,
96
- type TEXT NOT NULL, -- 'classification' | 'search_alias' | 'code_pattern' | 'convention'
97
- name TEXT NOT NULL,
98
- description TEXT NOT NULL,
99
- rule TEXT NOT NULL, -- JSON: the actual rule definition
100
- created_at INTEGER NOT NULL,
101
- updated_at INTEGER NOT NULL,
102
- used_count INTEGER NOT NULL DEFAULT 0,
103
- last_used_at INTEGER,
104
- created_by TEXT NOT NULL DEFAULT 'ai'
105
- );
106
-
107
- CREATE INDEX IF NOT EXISTS idx_learned_rules_type ON learned_rules(type);
108
- CREATE INDEX IF NOT EXISTS idx_learned_rules_name ON learned_rules(name);
109
-
110
- -- File index for fast staleness detection via mtime
111
- CREATE TABLE IF NOT EXISTS file_index (
112
- file_path TEXT PRIMARY KEY,
113
- mtime_ms REAL NOT NULL,
114
- size_bytes INTEGER NOT NULL,
115
- content_hash TEXT NOT NULL,
116
- indexed_at INTEGER NOT NULL
117
- );
15
+ const SCHEMA_SQL = `
16
+ -- Core nodes table
17
+ CREATE TABLE IF NOT EXISTS nodes (
18
+ id TEXT PRIMARY KEY,
19
+ type TEXT NOT NULL,
20
+ name TEXT NOT NULL,
21
+ qualifiedName TEXT NOT NULL,
22
+ filePath TEXT NOT NULL,
23
+ startLine INTEGER NOT NULL,
24
+ endLine INTEGER NOT NULL,
25
+ signature TEXT NOT NULL DEFAULT '',
26
+ docComment TEXT,
27
+ hash TEXT NOT NULL,
28
+ language TEXT NOT NULL,
29
+ visibility TEXT NOT NULL DEFAULT 'unknown',
30
+ isAsync INTEGER NOT NULL DEFAULT 0,
31
+ isStatic INTEGER NOT NULL DEFAULT 0,
32
+ isExported INTEGER NOT NULL DEFAULT 0,
33
+ parameters TEXT,
34
+ returnType TEXT,
35
+ updatedAt INTEGER NOT NULL
36
+ );
37
+
38
+ -- Edges table with composite primary key
39
+ CREATE TABLE IF NOT EXISTS edges (
40
+ sourceId TEXT NOT NULL,
41
+ targetId TEXT NOT NULL,
42
+ type TEXT NOT NULL,
43
+ metadata TEXT,
44
+ PRIMARY KEY (sourceId, targetId, type)
45
+ );
46
+
47
+ -- Indexes for common queries
48
+ CREATE INDEX IF NOT EXISTS idx_nodes_filePath ON nodes(filePath);
49
+ CREATE INDEX IF NOT EXISTS idx_nodes_type ON nodes(type);
50
+ CREATE INDEX IF NOT EXISTS idx_nodes_name ON nodes(name);
51
+ CREATE INDEX IF NOT EXISTS idx_nodes_language ON nodes(language);
52
+ CREATE INDEX IF NOT EXISTS idx_nodes_hash ON nodes(hash);
53
+ CREATE INDEX IF NOT EXISTS idx_edges_sourceId ON edges(sourceId);
54
+ CREATE INDEX IF NOT EXISTS idx_edges_targetId ON edges(targetId);
55
+ CREATE INDEX IF NOT EXISTS idx_edges_type ON edges(type);
56
+
57
+ -- FTS5 virtual table for full-text search across names, signatures, and doc comments
58
+ CREATE VIRTUAL TABLE IF NOT EXISTS nodes_fts USING fts5(
59
+ id UNINDEXED,
60
+ name,
61
+ qualifiedName,
62
+ signature,
63
+ docComment,
64
+ content='nodes',
65
+ content_rowid='rowid',
66
+ tokenize='porter unicode61'
67
+ );
68
+
69
+ -- Triggers to keep FTS in sync with nodes table
70
+ CREATE TRIGGER IF NOT EXISTS nodes_ai AFTER INSERT ON nodes BEGIN
71
+ INSERT INTO nodes_fts(rowid, id, name, qualifiedName, signature, docComment)
72
+ VALUES (new.rowid, new.id, new.name, new.qualifiedName, new.signature, new.docComment);
73
+ END;
74
+
75
+ CREATE TRIGGER IF NOT EXISTS nodes_ad AFTER DELETE ON nodes BEGIN
76
+ INSERT INTO nodes_fts(nodes_fts, rowid, id, name, qualifiedName, signature, docComment)
77
+ VALUES ('delete', old.rowid, old.id, old.name, old.qualifiedName, old.signature, old.docComment);
78
+ END;
79
+
80
+ CREATE TRIGGER IF NOT EXISTS nodes_au AFTER UPDATE ON nodes BEGIN
81
+ INSERT INTO nodes_fts(nodes_fts, rowid, id, name, qualifiedName, signature, docComment)
82
+ VALUES ('delete', old.rowid, old.id, old.name, old.qualifiedName, old.signature, old.docComment);
83
+ INSERT INTO nodes_fts(rowid, id, name, qualifiedName, signature, docComment)
84
+ VALUES (new.rowid, new.id, new.name, new.qualifiedName, new.signature, new.docComment);
85
+ END;
86
+
87
+ -- Metadata table for tracking schema version and stats
88
+ CREATE TABLE IF NOT EXISTS graph_meta (
89
+ key TEXT PRIMARY KEY,
90
+ value TEXT NOT NULL
91
+ );
92
+
93
+ -- Learned rules: AI-taught patterns that persist per-project
94
+ CREATE TABLE IF NOT EXISTS learned_rules (
95
+ id TEXT PRIMARY KEY,
96
+ type TEXT NOT NULL, -- 'classification' | 'search_alias' | 'code_pattern' | 'convention'
97
+ name TEXT NOT NULL,
98
+ description TEXT NOT NULL,
99
+ rule TEXT NOT NULL, -- JSON: the actual rule definition
100
+ created_at INTEGER NOT NULL,
101
+ updated_at INTEGER NOT NULL,
102
+ used_count INTEGER NOT NULL DEFAULT 0,
103
+ last_used_at INTEGER,
104
+ created_by TEXT NOT NULL DEFAULT 'ai'
105
+ );
106
+
107
+ CREATE INDEX IF NOT EXISTS idx_learned_rules_type ON learned_rules(type);
108
+ CREATE INDEX IF NOT EXISTS idx_learned_rules_name ON learned_rules(name);
109
+
110
+ -- File index for fast staleness detection via mtime
111
+ CREATE TABLE IF NOT EXISTS file_index (
112
+ file_path TEXT PRIMARY KEY,
113
+ mtime_ms REAL NOT NULL,
114
+ size_bytes INTEGER NOT NULL,
115
+ content_hash TEXT NOT NULL,
116
+ indexed_at INTEGER NOT NULL
117
+ );
118
118
  `;
119
119
  const SCHEMA_VERSION = '4';
120
120
  // ============================================================
@@ -270,16 +270,16 @@ export class KnowledgeGraph {
270
270
  * Insert or update a single node.
271
271
  */
272
272
  upsertNode(node) {
273
- this.db.prepare(`
274
- INSERT OR REPLACE INTO nodes (
275
- id, type, name, qualifiedName, filePath, startLine, endLine,
276
- signature, docComment, hash, language, visibility,
277
- isAsync, isStatic, isExported, parameters, returnType, updatedAt
278
- ) VALUES (
279
- @id, @type, @name, @qualifiedName, @filePath, @startLine, @endLine,
280
- @signature, @docComment, @hash, @language, @visibility,
281
- @isAsync, @isStatic, @isExported, @parameters, @returnType, @updatedAt
282
- )
273
+ this.db.prepare(`
274
+ INSERT OR REPLACE INTO nodes (
275
+ id, type, name, qualifiedName, filePath, startLine, endLine,
276
+ signature, docComment, hash, language, visibility,
277
+ isAsync, isStatic, isExported, parameters, returnType, updatedAt
278
+ ) VALUES (
279
+ @id, @type, @name, @qualifiedName, @filePath, @startLine, @endLine,
280
+ @signature, @docComment, @hash, @language, @visibility,
281
+ @isAsync, @isStatic, @isExported, @parameters, @returnType, @updatedAt
282
+ )
283
283
  `).run({
284
284
  id: node.id,
285
285
  type: node.type,
@@ -307,16 +307,16 @@ export class KnowledgeGraph {
307
307
  upsertNodes(nodes) {
308
308
  if (nodes.length === 0)
309
309
  return;
310
- const insertStmt = this.db.prepare(`
311
- INSERT OR REPLACE INTO nodes (
312
- id, type, name, qualifiedName, filePath, startLine, endLine,
313
- signature, docComment, hash, language, visibility,
314
- isAsync, isStatic, isExported, parameters, returnType, updatedAt
315
- ) VALUES (
316
- @id, @type, @name, @qualifiedName, @filePath, @startLine, @endLine,
317
- @signature, @docComment, @hash, @language, @visibility,
318
- @isAsync, @isStatic, @isExported, @parameters, @returnType, @updatedAt
319
- )
310
+ const insertStmt = this.db.prepare(`
311
+ INSERT OR REPLACE INTO nodes (
312
+ id, type, name, qualifiedName, filePath, startLine, endLine,
313
+ signature, docComment, hash, language, visibility,
314
+ isAsync, isStatic, isExported, parameters, returnType, updatedAt
315
+ ) VALUES (
316
+ @id, @type, @name, @qualifiedName, @filePath, @startLine, @endLine,
317
+ @signature, @docComment, @hash, @language, @visibility,
318
+ @isAsync, @isStatic, @isExported, @parameters, @returnType, @updatedAt
319
+ )
320
320
  `);
321
321
  const transaction = this.db.transaction((items) => {
322
322
  for (const node of items) {
@@ -408,9 +408,9 @@ export class KnowledgeGraph {
408
408
  * Insert or update a single edge.
409
409
  */
410
410
  upsertEdge(edge) {
411
- this.db.prepare(`
412
- INSERT OR REPLACE INTO edges (sourceId, targetId, type, metadata)
413
- VALUES (@sourceId, @targetId, @type, @metadata)
411
+ this.db.prepare(`
412
+ INSERT OR REPLACE INTO edges (sourceId, targetId, type, metadata)
413
+ VALUES (@sourceId, @targetId, @type, @metadata)
414
414
  `).run({
415
415
  sourceId: edge.sourceId,
416
416
  targetId: edge.targetId,
@@ -424,9 +424,9 @@ export class KnowledgeGraph {
424
424
  upsertEdges(edges) {
425
425
  if (edges.length === 0)
426
426
  return;
427
- const insertStmt = this.db.prepare(`
428
- INSERT OR REPLACE INTO edges (sourceId, targetId, type, metadata)
429
- VALUES (@sourceId, @targetId, @type, @metadata)
427
+ const insertStmt = this.db.prepare(`
428
+ INSERT OR REPLACE INTO edges (sourceId, targetId, type, metadata)
429
+ VALUES (@sourceId, @targetId, @type, @metadata)
430
430
  `);
431
431
  const transaction = this.db.transaction((items) => {
432
432
  for (const edge of items) {
@@ -506,10 +506,10 @@ export class KnowledgeGraph {
506
506
  * Find all nodes that call a given node (callers / "who calls this?").
507
507
  */
508
508
  findCallers(nodeId) {
509
- const rows = this.db.prepare(`
510
- SELECT n.* FROM nodes n
511
- JOIN edges e ON n.id = e.sourceId
512
- WHERE e.targetId = ? AND e.type = 'calls'
509
+ const rows = this.db.prepare(`
510
+ SELECT n.* FROM nodes n
511
+ JOIN edges e ON n.id = e.sourceId
512
+ WHERE e.targetId = ? AND e.type = 'calls'
513
513
  `).all(nodeId);
514
514
  return rows.map((r) => this.rowToNode(r));
515
515
  }
@@ -517,10 +517,10 @@ export class KnowledgeGraph {
517
517
  * Find all nodes that a given node calls (callees / "what does this call?").
518
518
  */
519
519
  findCallees(nodeId) {
520
- const rows = this.db.prepare(`
521
- SELECT n.* FROM nodes n
522
- JOIN edges e ON n.id = e.targetId
523
- WHERE e.sourceId = ? AND e.type = 'calls'
520
+ const rows = this.db.prepare(`
521
+ SELECT n.* FROM nodes n
522
+ JOIN edges e ON n.id = e.targetId
523
+ WHERE e.sourceId = ? AND e.type = 'calls'
524
524
  `).all(nodeId);
525
525
  return rows.map((r) => this.rowToNode(r));
526
526
  }
@@ -539,9 +539,9 @@ export class KnowledgeGraph {
539
539
  if (current.depth >= maxDepth || visited.has(current.id))
540
540
  continue;
541
541
  visited.add(current.id);
542
- const parentEdges = this.db.prepare(`
543
- SELECT e.targetId FROM edges e
544
- WHERE e.sourceId = ? AND e.type IN ('inherits', 'implements', 'contains')
542
+ const parentEdges = this.db.prepare(`
543
+ SELECT e.targetId FROM edges e
544
+ WHERE e.sourceId = ? AND e.type IN ('inherits', 'implements', 'contains')
545
545
  `).all(current.id);
546
546
  for (const { targetId } of parentEdges) {
547
547
  if (!visited.has(targetId)) {
@@ -570,9 +570,9 @@ export class KnowledgeGraph {
570
570
  if (current.depth >= maxDepth || visited.has(current.id))
571
571
  continue;
572
572
  visited.add(current.id);
573
- const childEdges = this.db.prepare(`
574
- SELECT e.sourceId FROM edges e
575
- WHERE e.targetId = ? AND e.type IN ('inherits', 'implements', 'contains')
573
+ const childEdges = this.db.prepare(`
574
+ SELECT e.sourceId FROM edges e
575
+ WHERE e.targetId = ? AND e.type IN ('inherits', 'implements', 'contains')
576
576
  `).all(current.id);
577
577
  for (const { sourceId } of childEdges) {
578
578
  if (!visited.has(sourceId)) {
@@ -607,9 +607,9 @@ export class KnowledgeGraph {
607
607
  continue;
608
608
  visited.add(current.id);
609
609
  // Find nodes that depend ON this node (reverse dependency)
610
- const dependents = this.db.prepare(`
611
- SELECT e.sourceId FROM edges e
612
- WHERE e.targetId = ? AND e.type IN (${typeFilter})
610
+ const dependents = this.db.prepare(`
611
+ SELECT e.sourceId FROM edges e
612
+ WHERE e.targetId = ? AND e.type IN (${typeFilter})
613
613
  `).all(current.id);
614
614
  for (const { sourceId } of dependents) {
615
615
  if (!visited.has(sourceId)) {
@@ -647,38 +647,38 @@ export class KnowledgeGraph {
647
647
  try {
648
648
  // Use FTS5 bm25() for proper information-retrieval ranking
649
649
  // bm25 weights: name(10), qualifiedName(5), signature(3), docComment(1)
650
- const rows = this.db.prepare(`
651
- SELECT * FROM (
652
- SELECT n.*, bm25(nodes_fts, 10, 5, 3, 1) AS bm25_score,
653
- CASE
654
- WHEN n.name = @query THEN 0
655
- WHEN n.name LIKE @like THEN 1
656
- WHEN n.qualifiedName LIKE @like THEN 2
657
- ELSE 3
658
- END AS exact_bonus
659
- FROM nodes_fts fts
660
- JOIN nodes n ON fts.id = n.id
661
- WHERE nodes_fts MATCH @fts
662
-
663
- UNION
664
-
665
- SELECT n.*, 0 AS bm25_score,
666
- CASE
667
- WHEN n.name = @query THEN 0
668
- WHEN n.name LIKE @like THEN 1
669
- WHEN n.qualifiedName LIKE @like THEN 2
670
- WHEN n.signature LIKE @like THEN 3
671
- ELSE 4
672
- END AS exact_bonus
673
- FROM nodes n
674
- WHERE n.name LIKE @like
675
- OR n.qualifiedName LIKE @like
676
- OR n.signature LIKE @like
677
- OR n.docComment LIKE @like
678
- )
679
- GROUP BY id
680
- ORDER BY MIN(exact_bonus), MIN(bm25_score), name
681
- LIMIT @limit
650
+ const rows = this.db.prepare(`
651
+ SELECT * FROM (
652
+ SELECT n.*, bm25(nodes_fts, 10, 5, 3, 1) AS bm25_score,
653
+ CASE
654
+ WHEN n.name = @query THEN 0
655
+ WHEN n.name LIKE @like THEN 1
656
+ WHEN n.qualifiedName LIKE @like THEN 2
657
+ ELSE 3
658
+ END AS exact_bonus
659
+ FROM nodes_fts fts
660
+ JOIN nodes n ON fts.id = n.id
661
+ WHERE nodes_fts MATCH @fts
662
+
663
+ UNION
664
+
665
+ SELECT n.*, 0 AS bm25_score,
666
+ CASE
667
+ WHEN n.name = @query THEN 0
668
+ WHEN n.name LIKE @like THEN 1
669
+ WHEN n.qualifiedName LIKE @like THEN 2
670
+ WHEN n.signature LIKE @like THEN 3
671
+ ELSE 4
672
+ END AS exact_bonus
673
+ FROM nodes n
674
+ WHERE n.name LIKE @like
675
+ OR n.qualifiedName LIKE @like
676
+ OR n.signature LIKE @like
677
+ OR n.docComment LIKE @like
678
+ )
679
+ GROUP BY id
680
+ ORDER BY MIN(exact_bonus), MIN(bm25_score), name
681
+ LIMIT @limit
682
682
  `).all({ query: trimmed, like: likePattern, fts: sanitized, limit });
683
683
  return rows.map((r) => this.rowToNode(r));
684
684
  }
@@ -707,19 +707,19 @@ export class KnowledgeGraph {
707
707
  /** Fallback LIKE-based search */
708
708
  searchLike(query, limit) {
709
709
  const pattern = `%${query}%`;
710
- const rows = this.db.prepare(`
711
- SELECT * FROM nodes
712
- WHERE name LIKE ? OR qualifiedName LIKE ? OR signature LIKE ? OR docComment LIKE ?
713
- ORDER BY
714
- CASE
715
- WHEN name = ? THEN 0
716
- WHEN name LIKE ? THEN 1
717
- WHEN qualifiedName LIKE ? THEN 2
718
- WHEN signature LIKE ? THEN 3
719
- ELSE 4
720
- END,
721
- name
722
- LIMIT ?
710
+ const rows = this.db.prepare(`
711
+ SELECT * FROM nodes
712
+ WHERE name LIKE ? OR qualifiedName LIKE ? OR signature LIKE ? OR docComment LIKE ?
713
+ ORDER BY
714
+ CASE
715
+ WHEN name = ? THEN 0
716
+ WHEN name LIKE ? THEN 1
717
+ WHEN qualifiedName LIKE ? THEN 2
718
+ WHEN signature LIKE ? THEN 3
719
+ ELSE 4
720
+ END,
721
+ name
722
+ LIMIT ?
723
723
  `).all(pattern, pattern, pattern, pattern, query, pattern, pattern, pattern, limit);
724
724
  return rows.map((r) => this.rowToNode(r));
725
725
  }
@@ -761,10 +761,10 @@ export class KnowledgeGraph {
761
761
  getProjectOverview() {
762
762
  const overview = new Map();
763
763
  // Single query: get ALL non-file nodes, ordered by file then line
764
- const allSymbols = this.db.prepare(`
765
- SELECT * FROM nodes
766
- WHERE type != 'file'
767
- ORDER BY filePath, startLine
764
+ const allSymbols = this.db.prepare(`
765
+ SELECT * FROM nodes
766
+ WHERE type != 'file'
767
+ ORDER BY filePath, startLine
768
768
  `).all();
769
769
  for (const row of allSymbols) {
770
770
  const node = this.rowToNode(row);
@@ -925,9 +925,9 @@ export class KnowledgeGraph {
925
925
  this.db.prepare('UPDATE learned_rules SET description = ?, rule = ?, updated_at = ? WHERE id = ?').run(rule.description, JSON.stringify(rule.rule), now, existing.id);
926
926
  return { id: existing.id, created: false };
927
927
  }
928
- this.db.prepare(`
929
- INSERT INTO learned_rules (id, type, name, description, rule, created_at, updated_at, created_by)
930
- VALUES (?, ?, ?, ?, ?, ?, ?, ?)
928
+ this.db.prepare(`
929
+ INSERT INTO learned_rules (id, type, name, description, rule, created_at, updated_at, created_by)
930
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
931
931
  `).run(id, rule.type, rule.name, rule.description, JSON.stringify(rule.rule), now, now, rule.createdBy ?? 'ai');
932
932
  return { id, created: true };
933
933
  }
@@ -1008,9 +1008,9 @@ export class KnowledgeGraph {
1008
1008
  * Upsert a file index entry after indexing.
1009
1009
  */
1010
1010
  upsertFileIndex(filePath, mtimeMs, sizeBytes, contentHash) {
1011
- this.db.prepare(`
1012
- INSERT OR REPLACE INTO file_index (file_path, mtime_ms, size_bytes, content_hash, indexed_at)
1013
- VALUES (?, ?, ?, ?, ?)
1011
+ this.db.prepare(`
1012
+ INSERT OR REPLACE INTO file_index (file_path, mtime_ms, size_bytes, content_hash, indexed_at)
1013
+ VALUES (?, ?, ?, ?, ?)
1014
1014
  `).run(filePath, mtimeMs, sizeBytes, contentHash, Date.now());
1015
1015
  }
1016
1016
  /**
@@ -291,7 +291,7 @@ export class Indexer {
291
291
  if (i % 100 === 0 && i > 0) {
292
292
  const mem = process.memoryUsage();
293
293
  if (mem.heapUsed / mem.heapTotal > MEMORY_PRESSURE_THRESHOLD) {
294
- process.stderr.write(`⚠️ Memory pressure during fullIndex at file ${i}/${parseResults.length}. Stopping early.\n`);
294
+ process.stderr.write(`⚠ Memory pressure during fullIndex at file ${i}/${parseResults.length}. Stopping early.\n`);
295
295
  break;
296
296
  }
297
297
  }
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/knowledge-graph/indexer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/knowledge-graph/indexer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAY,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,OAAO,EACL,SAAS,EACT,UAAU,EACV,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAIrB,2FAA2F;AAC3F,MAAM,mBAAmB,GAAG,IAAI,GAAG,IAAI,CAAC;AAExC,sFAAsF;AACtF,MAAM,yBAAyB,GAAG,IAAI,CAAC;AA+BvC,+DAA+D;AAC/D,gBAAgB;AAChB,+DAA+D;AAE/D;;;GAGG;AACH,MAAM,OAAO,OAAO;IACV,KAAK,CAAiB;IACtB,MAAM,CAAgB;IACtB,EAAE,CAA4B;IAC9B,SAAS,GAA2B,IAAI,CAAC;IAEjD;;;OAGG;IACK,cAAc,GAAG,IAAI,GAAG,EAAqC,CAAC;IACtE,4CAA4C;IACpC,iBAAiB,GAAa,EAAE,CAAC;IAEzC,YAAY,KAAqB,EAAE,MAAqB;QACtD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;QAEnB,2BAA2B;QAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,mCAAmC;QACnC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC;IAED,+DAA+D;IAC/D,YAAY,CAAC,SAA0B;QACrC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,OAAe;QAC5B,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC;QAClC,oDAAoD;QACpD,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;QACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,0CAA0C;QAC1C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,oBAAoB;QAClB,OAAO,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACK,sBAAsB,CAAC,QAAgB;QAC7C,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChD,IAAI,SAAS,GAAkB,IAAI,CAAC;QACpC,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC1C,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAChD,IAAI,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;gBAChF,SAAS,GAAG,IAAI,CAAC;gBACjB,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC;YACrC,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACK,gBAAgB,CAAC,QAAgB;QACvC,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;QACzD,CAAC;QACD,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED,sDAAsD;IAC9C,kBAAkB;QACxB,uCAAuC;QACvC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QAED,yBAAyB;QACzB,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YAClE,MAAM,gBAAgB,GAAG,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAC9D,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;QAED,8BAA8B;QAC9B,IAAI,CAAC;YACH,MAAM,aAAa,GAAG;gBACpB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,YAAY,CAAC;gBAClD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,EAAE,YAAY,CAAC;aACxD,CAAC;YACF,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;gBAC9B,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;oBACzC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACvB,CAAC;gBAAC,MAAM,CAAC;oBACP,0BAA0B;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS;QACb,MAAM,UAAU,GAAG,sBAAsB,EAAE,CAAC;QAE5C,gDAAgD;QAChD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAErD,0BAA0B;QAC1B,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE;gBAClC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;gBAC5B,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,IAAI;gBACX,GAAG,EAAE,KAAK;gBACV,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;oBACjC,wCAAwC;oBACxC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBACzC,OAAO,MAAM,CAAC,KAAK,CAAC;oBACtB,CAAC;oBACD,OAAO,CAAC,CAAC;gBACX,CAAC,CAAC;aACH,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;QAC5B,CAAC;QAED,eAAe;QACf,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE3C,iDAAiD;QACjD,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAE/E,wBAAwB;YACxB,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;gBAAE,SAAS;YAEvC,kBAAkB;YAClB,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;gBACrC,IAAI,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW;oBAAE,SAAS;gBACtD,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;oBAAE,SAAS;YACpC,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YAED,wCAAwC;YACxC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;gBAAE,SAAS;YAExC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,SAAS,CAAC,UAAkC;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAe;YACxB,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,EAAE;SACd,CAAC;QAEF,oBAAoB;QACpB,UAAU,EAAE,CAAC;YACX,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,sCAAsC;SAChD,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACrC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC;QAElC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,UAAU,EAAE,CAAC;gBACX,KAAK,EAAE,UAAU;gBACjB,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE,iCAAiC;aAC3C,CAAC,CAAC;YACH,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAC1C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,uEAAuE;QACvE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAEjD,mBAAmB;QACnB,UAAU,EAAE,CAAC;YACX,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,OAAO,EAAE,WAAW,KAAK,CAAC,MAAM,WAAW;SAC5C,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAClE,UAAU,EAAE,CAAC;gBACX,KAAK,EAAE,SAAS;gBAChB,OAAO;gBACP,KAAK;gBACL,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACvD,OAAO,EAAE,UAAU,OAAO,IAAI,KAAK,QAAQ;aAC5C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,mBAAmB;QACnB,UAAU,EAAE,CAAC;YACX,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,YAAY,CAAC,MAAM;YAC1B,OAAO,EAAE,2CAA2C;SACrD,CAAC,CAAC;QAEH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAE/B,6CAA6C;YAC7C,IAAI,CAAC;gBACH,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/D,KAAK,CAAC,YAAY,EAAE,CAAC;oBACrB,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;oBAC/C,SAAS;gBACX,CAAC;gBAED,KAAK,CAAC,WAAW,EAAE,CAAC;gBACpB,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC1C,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;gBAE1C,8BAA8B;gBAC9B,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAClC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACjF,CAAC;gBAED,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClC,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;gBACjD,CAAC;gBAED,iBAAiB;gBACjB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAExE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;oBACjB,UAAU,EAAE,CAAC;wBACX,KAAK,EAAE,SAAS;wBAChB,OAAO,EAAE,CAAC,GAAG,CAAC;wBACd,KAAK,EAAE,YAAY,CAAC,MAAM;wBAC1B,WAAW,EAAE,MAAM,CAAC,QAAQ;wBAC5B,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,QAAQ;qBACxD,CAAC,CAAC;gBACL,CAAC;gBAED,wCAAwC;gBACxC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;oBAClC,IAAI,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,yBAAyB,EAAE,CAAC;wBAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,8CAA8C,CAAC,IAAI,YAAY,CAAC,MAAM,qBAAqB,CAC5F,CAAC;wBACF,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAE1C,UAAU,EAAE,CAAC;YACX,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,KAAK,CAAC,WAAW;YAC1B,KAAK,EAAE,KAAK,CAAC,YAAY;YACzB,OAAO,EAAE,sBAAsB,KAAK,CAAC,WAAW,WAAW,KAAK,CAAC,YAAY,WAAW,KAAK,CAAC,YAAY,aAAa,KAAK,CAAC,UAAU,IAAI;SAC5I,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,gBAAgB,CAAC,UAAkC;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAe;YACxB,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,EAAE;SACd,CAAC;QAEF,oBAAoB;QACpB,UAAU,EAAE,CAAC;YACX,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,yBAAyB;SACnC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5C,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC;QAEzC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;QAC3D,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;QAE7C,+CAA+C;QAC/C,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,MAAM,aAAa,GAAa,EAAE,CAAC;QAEnC,6DAA6D;QAC7D,6DAA6D;QAC7D,wDAAwD;QACxD,iDAAiD;QACjD,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;YACpC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAEtD,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,0BAA0B;gBAC1B,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC5B,SAAS;YACX,CAAC;YAED,oDAAoD;YACpD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YACzD,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAEtC,IAAI,SAAS,EAAE,CAAC;oBACd,wEAAwE;oBACxE,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC;wBACtF,KAAK,CAAC,YAAY,EAAE,CAAC;wBACrB,SAAS;oBACX,CAAC;gBACH,CAAC;gBAED,wDAAwD;gBACxD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAClD,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBACjD,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;oBACjC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,gEAAgE;oBAChE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;oBACnF,KAAK,CAAC,YAAY,EAAE,CAAC;gBACvB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;gBACrC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,UAAU,EAAE,CAAC;gBACX,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,aAAa,CAAC,MAAM;gBAC3B,OAAO,EAAE,YAAY,aAAa,CAAC,MAAM,mBAAmB;aAC7D,CAAC,CAAC;YAEH,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;gBACrC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;gBACrC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;gBACrC,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,UAAU,EAAE,CAAC;gBACX,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,YAAY,CAAC,MAAM;gBAC1B,OAAO,EAAE,WAAW,YAAY,CAAC,MAAM,mBAAmB;aAC3D,CAAC,CAAC;YAEH,yDAAyD;YACzD,uDAAuD;YACvD,mDAAmD;YACnD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YACtC,IAAI,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,SAAS,GAAG,yBAAyB,EAAE,CAAC;gBACrE,OAAO,CAAC,KAAK,CACX,kCAAkC,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;oBACpF,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;oBACrD,YAAY,YAAY,CAAC,MAAM,wBAAwB,CACxD,CAAC;gBACF,KAAK,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;oBACxE,UAAU,EAAE,CAAC;wBACX,KAAK,EAAE,SAAS;wBAChB,OAAO;wBACP,KAAK;wBACL,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBACrE,OAAO,EAAE,UAAU,OAAO,IAAI,KAAK,gBAAgB;qBACpD,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,yBAAyB;gBACzB,UAAU,EAAE,CAAC;oBACX,KAAK,EAAE,SAAS;oBAChB,OAAO,EAAE,CAAC;oBACV,KAAK,EAAE,YAAY,CAAC,MAAM;oBAC1B,OAAO,EAAE,6BAA6B;iBACvC,CAAC,CAAC;gBAEH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC7C,6BAA6B;oBAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC;wBAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;wBAClC,IAAI,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,yBAAyB,EAAE,CAAC;4BAC7D,OAAO,CAAC,KAAK,CACX,yCAAyC,CAAC,IAAI,YAAY,CAAC,MAAM,IAAI;gCACrE,gCAAgC,CACjC,CAAC;4BACF,KAAK,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;4BAC9C,MAAM;wBACR,CAAC;oBACH,CAAC;oBAED,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBAE/B,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC/D,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;wBAC/C,SAAS;oBACX,CAAC;oBAED,KAAK,CAAC,WAAW,EAAE,CAAC;oBACpB,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC1C,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;oBAE1C,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;wBAClC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;oBACjF,CAAC;oBAED,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAClC,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;oBACjD,CAAC;oBAED,sDAAsD;oBACtD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;wBACnB,IAAI,CAAC;4BACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;4BAC7D,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;wBACxE,CAAC;wBAAC,MAAM,CAAC;4BACP,sCAAsC;wBACxC,CAAC;oBACH,CAAC;oBAED,+BAA+B;oBAC/B,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;oBAExE,qDAAqD;oBACrD,IAAI,CAAC;wBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;wBAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;wBACvE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;oBACzF,CAAC;oBAAC,MAAM,CAAC;wBACP,qDAAqD;oBACvD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAE1C,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;QAC/D,UAAU,EAAE,CAAC;YACX,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,KAAK,CAAC,YAAY;YACzB,OAAO,EAAE,WAAW,GAAG,CAAC;gBACtB,CAAC,CAAC,sBAAsB,KAAK,CAAC,WAAW,aAAa,KAAK,CAAC,YAAY,eAAe,KAAK,CAAC,UAAU,IAAI;gBAC3G,CAAC,CAAC,wBAAwB,KAAK,CAAC,YAAY,qBAAqB,KAAK,CAAC,UAAU,KAAK;SACzF,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC9B,uEAAuE;QACvE,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACzF,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAEnD,oEAAoE;QACpE,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACxE,IAAI,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAE5C,8CAA8C;QAC9C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,GAAG,mBAAmB,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,IAAI,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW;gBAAE,OAAO,IAAI,CAAC;YACzD,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,6BAA6B;YAC7B,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACrC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;QAEzC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,sDAAsD;YACtD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;oBACtD,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACjE,CAAC;gBAAC,MAAM,CAAC;oBACP,sCAAsC;gBACxC,CAAC;YACH,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,QAAgB;QACzB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc;QAOlB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;QACzC,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,yCAAyC;QACzC,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YACrD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxB,SAAS;YACX,CAAC;YACD,IAAI,KAAK,CAAC,UAAU,GAAG,aAAa,EAAE,CAAC;gBACrC,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC;YACnC,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtC,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC;oBAC9E,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,2CAA2C;YACxE,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC;QACvD,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,OAAO;YACL,UAAU;YACV,QAAQ;YACR,YAAY;YACZ,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE;YAC5C,aAAa;SACd,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,sBAAsB;QAC1B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACrC,MAAM,UAAU,GAA2B,EAAE,CAAC;QAE9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,IAAI,EAAE,CAAC;gBACT,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;aAC9B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAMlB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;QAEzC,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;YACpC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9B,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;QACzC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;gBACjC,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjF,OAAO;YACL,YAAY,EAAE,YAAY,CAAC,MAAM;YACjC,UAAU,EAAE,YAAY,CAAC,MAAM;YAC/B,SAAS;YACT,YAAY,EAAE,SAAS,GAAG,GAAG,EAAE,sBAAsB;SACtD,CAAC;IACJ,CAAC;IAED,qGAAqG;IACrG,KAAK,CAAC,aAAa;QAMjB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAClD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;QAEvC,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,cAAc,GAAa,EAAE,CAAC;QAEpC,mCAAmC;QACnC,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpB,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,wBAAwB;gBACxB,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;oBACzC,MAAM,WAAW,GAAG,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;oBAC/E,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBAC9C,IAAI,WAAW,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;wBAC/C,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrB,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrB,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,OAAO;YACL,UAAU;YACV,YAAY;YACZ,cAAc;YACd,OAAO,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;SAC7F,CAAC;IACJ,CAAC;CACF"}