milens 0.5.8 → 0.6.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.
package/dist/store/db.js CHANGED
@@ -21,42 +21,42 @@ export class Database {
21
21
  prepareStatements() {
22
22
  return {
23
23
  checkHash: this.db.prepare('SELECT hash FROM file_hashes WHERE path = ?'),
24
- upsertHash: this.db.prepare(`INSERT INTO file_hashes (path, hash) VALUES (?, ?)
24
+ upsertHash: this.db.prepare(`INSERT INTO file_hashes (path, hash) VALUES (?, ?)
25
25
  ON CONFLICT(path) DO UPDATE SET hash = excluded.hash, analyzed_at = datetime('now')`),
26
- insertSym: this.db.prepare(`INSERT OR REPLACE INTO symbols (id, name, kind, file_path, start_line, end_line, exported, parent_id, signature, role, heat)
26
+ insertSym: this.db.prepare(`INSERT OR REPLACE INTO symbols (id, name, kind, file_path, start_line, end_line, exported, parent_id, signature, role, heat)
27
27
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`),
28
28
  updateMeta: this.db.prepare(`UPDATE symbols SET role = ?, heat = ? WHERE id = ?`),
29
29
  upsertZone: this.db.prepare(`UPDATE file_hashes SET zone = ? WHERE path = ?`),
30
- insertLink: this.db.prepare(`INSERT OR REPLACE INTO links (id, from_id, to_id, type, confidence, line_number)
30
+ insertLink: this.db.prepare(`INSERT OR REPLACE INTO links (id, from_id, to_id, type, confidence, line_number)
31
31
  VALUES (?, ?, ?, ?, ?, ?)`),
32
- searchFts: this.db.prepare(`SELECT s.* FROM symbol_fts f
33
- JOIN symbols s ON s.rowid = f.rowid
34
- WHERE symbol_fts MATCH ?
32
+ searchFts: this.db.prepare(`SELECT s.* FROM symbol_fts f
33
+ JOIN symbols s ON s.rowid = f.rowid
34
+ WHERE symbol_fts MATCH ?
35
35
  ORDER BY rank LIMIT ?`),
36
36
  byName: this.db.prepare('SELECT * FROM symbols WHERE name = ?'),
37
37
  byId: this.db.prepare('SELECT * FROM symbols WHERE id = ?'),
38
38
  byFile: this.db.prepare('SELECT * FROM symbols WHERE file_path = ?'),
39
39
  linksIn: this.db.prepare('SELECT * FROM links WHERE to_id = ?'),
40
40
  linksOut: this.db.prepare('SELECT * FROM links WHERE from_id = ?'),
41
- upstream: this.db.prepare(`
42
- WITH RECURSIVE upstream(id, depth, via) AS (
43
- SELECT from_id, 1, type FROM links WHERE to_id = ? AND type IN ('calls', 'imports', 'extends', 'implements')
44
- UNION
45
- SELECT l.from_id, u.depth + 1, l.type
46
- FROM links l JOIN upstream u ON l.to_id = u.id
47
- WHERE u.depth < ? AND l.type IN ('calls', 'imports', 'extends', 'implements')
48
- )
49
- SELECT DISTINCT s.*, u.depth, u.via FROM upstream u JOIN symbols s ON s.id = u.id ORDER BY u.depth
41
+ upstream: this.db.prepare(`
42
+ WITH RECURSIVE upstream(id, depth, via) AS (
43
+ SELECT from_id, 1, type FROM links WHERE to_id = ? AND type IN ('calls', 'imports', 'extends', 'implements')
44
+ UNION
45
+ SELECT l.from_id, u.depth + 1, l.type
46
+ FROM links l JOIN upstream u ON l.to_id = u.id
47
+ WHERE u.depth < ? AND l.type IN ('calls', 'imports', 'extends', 'implements')
48
+ )
49
+ SELECT DISTINCT s.*, u.depth, u.via FROM upstream u JOIN symbols s ON s.id = u.id ORDER BY u.depth
50
50
  `),
51
- downstream: this.db.prepare(`
52
- WITH RECURSIVE downstream(id, depth, via) AS (
53
- SELECT to_id, 1, type FROM links WHERE from_id = ? AND type IN ('calls', 'imports', 'extends', 'implements')
54
- UNION
55
- SELECT l.to_id, d.depth + 1, l.type
56
- FROM links l JOIN downstream d ON l.from_id = d.id
57
- WHERE d.depth < ? AND l.type IN ('calls', 'imports', 'extends', 'implements')
58
- )
59
- SELECT DISTINCT s.*, d.depth, d.via FROM downstream d JOIN symbols s ON s.id = d.id ORDER BY d.depth
51
+ downstream: this.db.prepare(`
52
+ WITH RECURSIVE downstream(id, depth, via) AS (
53
+ SELECT to_id, 1, type FROM links WHERE from_id = ? AND type IN ('calls', 'imports', 'extends', 'implements')
54
+ UNION
55
+ SELECT l.to_id, d.depth + 1, l.type
56
+ FROM links l JOIN downstream d ON l.from_id = d.id
57
+ WHERE d.depth < ? AND l.type IN ('calls', 'imports', 'extends', 'implements')
58
+ )
59
+ SELECT DISTINCT s.*, d.depth, d.via FROM downstream d JOIN symbols s ON s.id = d.id ORDER BY d.depth
60
60
  `),
61
61
  countSymbols: this.db.prepare('SELECT COUNT(*) as c FROM symbols'),
62
62
  countLinks: this.db.prepare('SELECT COUNT(*) as c FROM links'),
@@ -176,14 +176,16 @@ export class Database {
176
176
  return rows.map(rowToLink);
177
177
  }
178
178
  findDeadCode(kind, limit = 50) {
179
+ // Exclude: section symbols (markdown headings), test fixtures (not real production code)
180
+ const excludeClause = `AND s.kind != 'section' AND s.file_path NOT LIKE 'test/fixtures/%'`;
179
181
  const sql = kind
180
- ? `SELECT s.* FROM symbols s
181
- LEFT JOIN links l ON l.to_id = s.id AND l.type != 'contains'
182
- WHERE s.exported = 1 AND s.kind = ? AND l.id IS NULL
182
+ ? `SELECT s.* FROM symbols s
183
+ LEFT JOIN links l ON l.to_id = s.id AND l.type != 'contains'
184
+ WHERE s.exported = 1 AND s.kind = ? ${excludeClause} AND l.id IS NULL
183
185
  LIMIT ?`
184
- : `SELECT s.* FROM symbols s
185
- LEFT JOIN links l ON l.to_id = s.id AND l.type != 'contains'
186
- WHERE s.exported = 1 AND l.id IS NULL
186
+ : `SELECT s.* FROM symbols s
187
+ LEFT JOIN links l ON l.to_id = s.id AND l.type != 'contains'
188
+ WHERE s.exported = 1 ${excludeClause} AND l.id IS NULL
187
189
  LIMIT ?`;
188
190
  const rows = kind
189
191
  ? this.db.prepare(sql).all(kind, limit)
@@ -191,25 +193,25 @@ export class Database {
191
193
  return rows.map(rowToSymbol);
192
194
  }
193
195
  getTypeHierarchy(symbolId) {
194
- const ancestors = this.db.prepare(`
195
- WITH RECURSIVE up(id, depth) AS (
196
- SELECT to_id, 1 FROM links WHERE from_id = ? AND type IN ('extends', 'implements')
197
- UNION
198
- SELECT l.to_id, u.depth + 1
199
- FROM links l JOIN up u ON l.from_id = u.id
200
- WHERE l.type IN ('extends', 'implements') AND u.depth < 10
201
- )
202
- SELECT DISTINCT s.*, u.depth FROM up u JOIN symbols s ON s.id = u.id ORDER BY u.depth
196
+ const ancestors = this.db.prepare(`
197
+ WITH RECURSIVE up(id, depth) AS (
198
+ SELECT to_id, 1 FROM links WHERE from_id = ? AND type IN ('extends', 'implements')
199
+ UNION
200
+ SELECT l.to_id, u.depth + 1
201
+ FROM links l JOIN up u ON l.from_id = u.id
202
+ WHERE l.type IN ('extends', 'implements') AND u.depth < 10
203
+ )
204
+ SELECT DISTINCT s.*, u.depth FROM up u JOIN symbols s ON s.id = u.id ORDER BY u.depth
203
205
  `).all(symbolId);
204
- const descendants = this.db.prepare(`
205
- WITH RECURSIVE down(id, depth) AS (
206
- SELECT from_id, 1 FROM links WHERE to_id = ? AND type IN ('extends', 'implements')
207
- UNION
208
- SELECT l.from_id, d.depth + 1
209
- FROM links l JOIN down d ON l.to_id = d.id
210
- WHERE l.type IN ('extends', 'implements') AND d.depth < 10
211
- )
212
- SELECT DISTINCT s.*, d.depth FROM down d JOIN symbols s ON s.id = d.id ORDER BY d.depth
206
+ const descendants = this.db.prepare(`
207
+ WITH RECURSIVE down(id, depth) AS (
208
+ SELECT from_id, 1 FROM links WHERE to_id = ? AND type IN ('extends', 'implements')
209
+ UNION
210
+ SELECT l.from_id, d.depth + 1
211
+ FROM links l JOIN down d ON l.to_id = d.id
212
+ WHERE l.type IN ('extends', 'implements') AND d.depth < 10
213
+ )
214
+ SELECT DISTINCT s.*, d.depth FROM down d JOIN symbols s ON s.id = d.id ORDER BY d.depth
213
215
  `).all(symbolId);
214
216
  return {
215
217
  ancestors: ancestors.map(r => ({ symbol: rowToSymbol(r), depth: r.depth })),
@@ -224,15 +226,15 @@ export class Database {
224
226
  const fromId = fromSyms[0].id;
225
227
  const toIds = new Set(toSyms.map(s => s.id));
226
228
  // BFS outgoing from source
227
- const rows = this.db.prepare(`
228
- WITH RECURSIVE path(id, depth, via) AS (
229
- SELECT to_id, 1, type FROM links WHERE from_id = ? AND type != 'contains'
230
- UNION
231
- SELECT l.to_id, p.depth + 1, l.type
232
- FROM links l JOIN path p ON l.from_id = p.id
233
- WHERE l.type != 'contains' AND p.depth < ?
234
- )
235
- SELECT DISTINCT s.*, p.depth, p.via FROM path p JOIN symbols s ON s.id = p.id ORDER BY p.depth
229
+ const rows = this.db.prepare(`
230
+ WITH RECURSIVE path(id, depth, via) AS (
231
+ SELECT to_id, 1, type FROM links WHERE from_id = ? AND type != 'contains'
232
+ UNION
233
+ SELECT l.to_id, p.depth + 1, l.type
234
+ FROM links l JOIN path p ON l.from_id = p.id
235
+ WHERE l.type != 'contains' AND p.depth < ?
236
+ )
237
+ SELECT DISTINCT s.*, p.depth, p.via FROM path p JOIN symbols s ON s.id = p.id ORDER BY p.depth
236
238
  `).all(fromId, maxDepth);
237
239
  const result = [];
238
240
  for (const r of rows) {
@@ -285,14 +287,14 @@ export class Database {
285
287
  };
286
288
  }
287
289
  getConfidenceDistribution() {
288
- const rows = this.db.prepare(`
289
- SELECT
290
- SUM(CASE WHEN confidence >= 0.9 THEN 1 ELSE 0 END) as high,
291
- SUM(CASE WHEN confidence >= 0.7 AND confidence < 0.9 THEN 1 ELSE 0 END) as medium,
292
- SUM(CASE WHEN confidence < 0.7 THEN 1 ELSE 0 END) as low,
293
- COUNT(*) as total
294
- FROM links
295
- WHERE type != 'contains'
290
+ const rows = this.db.prepare(`
291
+ SELECT
292
+ SUM(CASE WHEN confidence >= 0.9 THEN 1 ELSE 0 END) as high,
293
+ SUM(CASE WHEN confidence >= 0.7 AND confidence < 0.9 THEN 1 ELSE 0 END) as medium,
294
+ SUM(CASE WHEN confidence < 0.7 THEN 1 ELSE 0 END) as low,
295
+ COUNT(*) as total
296
+ FROM links
297
+ WHERE type != 'contains'
296
298
  `).get();
297
299
  return {
298
300
  high: rows?.high ?? 0,
@@ -345,34 +347,34 @@ export class Database {
345
347
  // ── Route/endpoint detection via link patterns ──
346
348
  getEntrypoints() {
347
349
  // Symbols with role='entrypoint' OR exported + 0 incoming non-contains links
348
- const rows = this.db.prepare(`
349
- SELECT s.* FROM symbols s
350
- WHERE s.exported = 1
351
- AND s.role = 'entrypoint'
352
- ORDER BY s.heat DESC
353
- LIMIT 50
350
+ const rows = this.db.prepare(`
351
+ SELECT s.* FROM symbols s
352
+ WHERE s.exported = 1
353
+ AND s.role = 'entrypoint'
354
+ ORDER BY s.heat DESC
355
+ LIMIT 50
354
356
  `).all();
355
357
  return rows.map(rowToSymbol);
356
358
  }
357
359
  // ── Domain clustering stats ──
358
360
  getDomainStats() {
359
- const rows = this.db.prepare(`
360
- SELECT fh.zone AS domain, COUNT(DISTINCT fh.path) AS file_count,
361
- COUNT(s.id) AS symbol_count
362
- FROM file_hashes fh
363
- LEFT JOIN symbols s ON s.file_path = fh.path
364
- WHERE fh.zone IS NOT NULL
365
- GROUP BY fh.zone
366
- ORDER BY symbol_count DESC
361
+ const rows = this.db.prepare(`
362
+ SELECT fh.zone AS domain, COUNT(DISTINCT fh.path) AS file_count,
363
+ COUNT(s.id) AS symbol_count
364
+ FROM file_hashes fh
365
+ LEFT JOIN symbols s ON s.file_path = fh.path
366
+ WHERE fh.zone IS NOT NULL
367
+ GROUP BY fh.zone
368
+ ORDER BY symbol_count DESC
367
369
  `).all();
368
370
  return rows.map((r) => ({ domain: r.domain, files: r.file_count, symbols: r.symbol_count }));
369
371
  }
370
372
  // ── Staleness detection ──
371
373
  getStaleFiles(hoursOld = 24) {
372
- const rows = this.db.prepare(`
373
- SELECT path FROM file_hashes
374
- WHERE analyzed_at < datetime('now', '-' || ? || ' hours')
375
- ORDER BY analyzed_at ASC
374
+ const rows = this.db.prepare(`
375
+ SELECT path FROM file_hashes
376
+ WHERE analyzed_at < datetime('now', '-' || ? || ' hours')
377
+ ORDER BY analyzed_at ASC
376
378
  `).all(hoursOld);
377
379
  return rows.map((r) => r.path);
378
380
  }
@@ -395,39 +397,39 @@ export class Database {
395
397
  }
396
398
  // ── Tool usage tracking ──
397
399
  logToolUsage(tool, durationMs, tokensOut, tokensSaved, repo) {
398
- this.db.prepare(`INSERT INTO tool_usage (tool, duration_ms, tokens_out, tokens_saved, repo)
400
+ this.db.prepare(`INSERT INTO tool_usage (tool, duration_ms, tokens_out, tokens_saved, repo)
399
401
  VALUES (?, ?, ?, ?, ?)`).run(tool, durationMs, tokensOut, tokensSaved, repo ?? null);
400
402
  }
401
403
  getToolUsageStats() {
402
- const totals = this.db.prepare(`
403
- SELECT COUNT(*) as total_calls,
404
- COALESCE(SUM(tokens_saved), 0) as total_saved,
405
- COALESCE(SUM(tokens_out), 0) as total_out,
406
- COALESCE(SUM(duration_ms), 0) as total_ms
407
- FROM tool_usage
404
+ const totals = this.db.prepare(`
405
+ SELECT COUNT(*) as total_calls,
406
+ COALESCE(SUM(tokens_saved), 0) as total_saved,
407
+ COALESCE(SUM(tokens_out), 0) as total_out,
408
+ COALESCE(SUM(duration_ms), 0) as total_ms
409
+ FROM tool_usage
408
410
  `).get();
409
- const byTool = this.db.prepare(`
410
- SELECT tool, COUNT(*) as calls,
411
- COALESCE(SUM(tokens_saved), 0) as tokens_saved,
412
- COALESCE(SUM(tokens_out), 0) as tokens_out,
413
- CAST(COALESCE(AVG(duration_ms), 0) AS INTEGER) as avg_ms
414
- FROM tool_usage
415
- GROUP BY tool
416
- ORDER BY calls DESC
411
+ const byTool = this.db.prepare(`
412
+ SELECT tool, COUNT(*) as calls,
413
+ COALESCE(SUM(tokens_saved), 0) as tokens_saved,
414
+ COALESCE(SUM(tokens_out), 0) as tokens_out,
415
+ CAST(COALESCE(AVG(duration_ms), 0) AS INTEGER) as avg_ms
416
+ FROM tool_usage
417
+ GROUP BY tool
418
+ ORDER BY calls DESC
417
419
  `).all();
418
- const byDay = this.db.prepare(`
419
- SELECT date(called_at) as date, COUNT(*) as calls,
420
- COALESCE(SUM(tokens_saved), 0) as tokens_saved
421
- FROM tool_usage
422
- GROUP BY date(called_at)
423
- ORDER BY date DESC
424
- LIMIT 30
420
+ const byDay = this.db.prepare(`
421
+ SELECT date(called_at) as date, COUNT(*) as calls,
422
+ COALESCE(SUM(tokens_saved), 0) as tokens_saved
423
+ FROM tool_usage
424
+ GROUP BY date(called_at)
425
+ ORDER BY date DESC
426
+ LIMIT 30
425
427
  `).all();
426
- const recentCalls = this.db.prepare(`
427
- SELECT tool, called_at, duration_ms, tokens_saved
428
- FROM tool_usage
429
- ORDER BY id DESC
430
- LIMIT 50
428
+ const recentCalls = this.db.prepare(`
429
+ SELECT tool, called_at, duration_ms, tokens_saved
430
+ FROM tool_usage
431
+ ORDER BY id DESC
432
+ LIMIT 50
431
433
  `).all();
432
434
  return {
433
435
  totalCalls: totals.total_calls,
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/store/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/store/db.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,MAAM,OAAO,QAAQ;IACX,EAAE,CAAyB;IAC3B,KAAK,CAA6C;IAE1D,YAAY,MAAc;QACxB,IAAI,CAAC,EAAE,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACrC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACvC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACpC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,iBAAiB;QACvD,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,2CAA2C;QACpF,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBAAqB;QAC5D,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACxC,CAAC;IAEO,iBAAiB;QACvB,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC;YACzE,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CACzB;6FACqF,CACtF;YACD,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CACxB;kDAC0C,CAC3C;YACD,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CACzB,oDAAoD,CACrD;YACD,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CACzB,gDAAgD,CACjD;YACD,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CACzB;mCAC2B,CAC5B;YACD,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CACxB;;;+BAGuB,CACxB;YACD,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC;YAC/D,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,oCAAoC,CAAC;YAC3D,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC;YACpE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC;YAC/D,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC;YAClE,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;OASzB,CAAC;YACF,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;OAS3B,CAAC;YACF,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC;YAClE,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,iCAAiC,CAAC;YAC9D,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC;YACpE,eAAe,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAC9B,iFAAiF,CAClF;YACD,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,yCAAyC,CAAC;SAC9E,CAAC;IACJ,CAAC;IAEO,WAAW;QACjB,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB;gBAClC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC;gBACvD,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,aAAa;QACnB,+DAA+D;QAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,GAAG,EAAW,CAAC;QAC1E,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACpF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QAEjG,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC,GAAG,EAAW,CAAC;QAChF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IACzF,CAAC;IAED,2BAA2B;IAE3B,cAAc,CAAC,QAAgB,EAAE,OAAe;QAC9C,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAQ,CAAC;QACtD,OAAO,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC;IAC5B,CAAC;IAED,cAAc,CAAC,QAAgB,EAAE,OAAe;QAC9C,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,oBAAoB;IAEpB,YAAY,CAAC,GAAe;QAC1B,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CACtB,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,EACxC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAChD,GAAG,CAAC,QAAQ,IAAI,IAAI,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI,EAC3C,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,CAChC,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,IAAgB;QACzB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CACvB,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAC1C,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CACnC,CAAC;IACJ,CAAC;IAED,oBAAoB,CAAC,EAAU,EAAE,IAAY,EAAE,IAAY;QACzD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,WAAW,CAAC,QAAgB,EAAE,IAAY;QACxC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,gBAAgB;IAEhB,aAAa,CAAC,KAAa,EAAE,KAAK,GAAG,EAAE;QACrC,2FAA2F;QAC3F,MAAM,SAAS,GAAG,KAAK;aACpB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAW,sBAAsB;aACpD,KAAK,CAAC,KAAK,CAAC,CAAkB,oBAAoB;aAClD,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAY,gDAAgD;aAC9E,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAU,CAAC;YACjE,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,IAAY;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAU,CAAC;QAClD,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,cAAc,CAAC,EAAU;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAQ,CAAC;QAC3C,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,CAAC;IAED,gBAAgB,CAAC,QAAgB;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAU,CAAC;QACtD,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,gBAAgB,CAAC,QAAgB;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAU,CAAC;QACvD,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,gBAAgB,CAAC,QAAgB;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAU,CAAC;QACxD,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,YAAY,CAAC,QAAgB,EAAE,QAAQ,GAAG,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAU,CAAC;QAClE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,cAAc,CAAC,QAAgB,EAAE,QAAQ,GAAG,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAU,CAAC;QACpE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,QAAQ;QACN,MAAM,OAAO,GAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAU,CAAC,CAAC,CAAC;QACzD,MAAM,KAAK,GAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAU,CAAC,CAAC,CAAC;QACrD,MAAM,KAAK,GAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAU,CAAC,CAAC,CAAC;QACrD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,aAAa;QACX,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,GAAG,EAAW,CAAC;QACrE,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,WAAW;QACT,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,GAAG,EAAW,CAAC;QACnE,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,YAAY,CAAC,IAAa,EAAE,KAAK,GAAG,EAAE;QACpC,yFAAyF;QACzF,MAAM,aAAa,GAAG,oEAAoE,CAAC;QAC3F,MAAM,GAAG,GAAG,IAAI;YACd,CAAC,CAAC;;+CAEuC,aAAa;iBAC3C;YACX,CAAC,CAAC;;gCAEwB,aAAa;iBAC5B,CAAC;QACd,MAAM,IAAI,GAAG,IAAI;YACf,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAU;YAChD,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAU,CAAC;QAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,gBAAgB,CAAC,QAAgB;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;KASjC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAU,CAAC;QAE1B,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;KASnC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAU,CAAC;QAE1B,OAAO;YACL,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3E,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;SAChF,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,QAAgB,EAAE,MAAc,EAAE,QAAQ,GAAG,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAE9D,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAE7C,2BAA2B;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;KAS5B,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAU,CAAC;QAElC,MAAM,MAAM,GAA8D,EAAE,CAAC;QAC7E,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACpE,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAE,MAAM;QAC7B,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,eAAe;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,EAAW,CAAC;QACtF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,oBAAoB;IAEpB,cAAc,CAAC,QAAgB;QAC7B,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,aAAa;QACX,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;IACvE,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACpC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACpC,CAAC;IAED,gDAAgD;IAEhD,OAAO,CAAC,GAAW,EAAE,KAAa;QAChC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,6DAA6D,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACjG,CAAC;IAED,OAAO,CAAC,GAAW;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,CAAC,GAAG,CAAQ,CAAC;QACzF,OAAO,GAAG,EAAE,KAAK,CAAC;IACpB,CAAC;IAED,kBAAkB;QAChB,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;YAChE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;YAC5D,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;YACtE,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;SACnE,CAAC;IACJ,CAAC;IAED,eAAe;QACb,OAAO;YACL,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;YAC1D,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;YAClE,yBAAyB,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;SAC5F,CAAC;IACJ,CAAC;IAED,yBAAyB;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;KAQ5B,CAAC,CAAC,GAAG,EAAS,CAAC;QAChB,OAAO;YACL,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;YACrB,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;YACzB,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;YACnB,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;SACxB,CAAC;IACJ,CAAC;IAED,8DAA8D;IAE9D,kBAAkB,CAAC,QAAgB,EAAE,QAAQ,GAAG,CAAC;QAC/C,4EAA4E;QAC5E,MAAM,KAAK,GAAgE,EAAE,CAAC;QAC9E,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAElC,MAAM,GAAG,GAAG,CAAC,SAAiB,EAAE,WAAuD,EAAE,KAAa,EAAE,EAAE;YACxG,IAAI,KAAK,GAAG,QAAQ;gBAAE,OAAO;YAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,OAAO;YACnC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YAC1G,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAE3C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,EAAE,QAAQ,EAAE,CAAC;gBAC3C,yCAAyC;gBACzC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;gBACvC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC1B,OAAO;YACT,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjD,IAAI,CAAC,OAAO;oBAAE,SAAS;gBACvB,4DAA4D;gBAC5D,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACzD,kDAAkD;oBAClD,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACrF,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACrF,CAAC;YACH,CAAC;YAED,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,SAAS,EAAE,CAAC;YACd,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,mDAAmD;QACnD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,mDAAmD;IAEnD,cAAc;QACZ,6EAA6E;QAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;KAM5B,CAAC,CAAC,GAAG,EAAW,CAAC;QAClB,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,gCAAgC;IAEhC,cAAc;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;KAQ5B,CAAC,CAAC,GAAG,EAAW,CAAC;QAClB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IACpG,CAAC;IAED,4BAA4B;IAE5B,aAAa,CAAC,QAAQ,GAAG,EAAE;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;KAI5B,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAU,CAAC;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,4BAA4B;IAE5B,iBAAiB,CAAC,IAAY;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,2DAA2D,CAC5D,CAAC,GAAG,CAAC,IAAI,CAAU,CAAC;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,2BAA2B;IAE3B,cAAc;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;QACjD,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAC3C,CAAC;IAED,KAAK;QACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACpC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC1C,CAAC;IAED,4BAA4B;IAE5B,YAAY,CAAC,IAAY,EAAE,UAAkB,EAAE,SAAiB,EAAE,WAAmB,EAAE,IAAa;QAClG,IAAI,CAAC,EAAE,CAAC,OAAO,CACb;8BACwB,CACzB,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,iBAAiB;QASf,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;KAM9B,CAAC,CAAC,GAAG,EAAS,CAAC;QAEhB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;KAQ9B,CAAC,CAAC,GAAG,EAAW,CAAC;QAElB,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;KAO7B,CAAC,CAAC,GAAG,EAAW,CAAC;QAElB,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;KAKnC,CAAC,CAAC,GAAG,EAAW,CAAC;QAElB,OAAO;YACL,UAAU,EAAE,MAAM,CAAC,WAAW;YAC9B,gBAAgB,EAAE,MAAM,CAAC,WAAW;YACpC,cAAc,EAAE,MAAM,CAAC,SAAS;YAChC,eAAe,EAAE,MAAM,CAAC,QAAQ;YAChC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;gBAC9B,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,YAAY;gBACzD,SAAS,EAAE,CAAC,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC,MAAM;aACjD,CAAC,CAAC;YACH,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE;YACvG,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;gBACxC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC,YAAY;aAC5F,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAED,WAAW,CAAI,EAAW;QACxB,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;IACnC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;CACF;AAED,oBAAoB;AAEpB,SAAS,WAAW,CAAC,GAAQ;IAC3B,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,QAAQ,EAAE,GAAG,CAAC,QAAQ,KAAK,CAAC;QAC5B,QAAQ,EAAE,GAAG,CAAC,SAAS,IAAI,SAAS;QACpC,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,SAAS;QACrC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,SAAS;QAC3B,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,SAAS;KAC5B,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,GAAQ;IACzB,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,IAAI,EAAE,GAAG,CAAC,KAAK;QACf,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,IAAI,EAAE,GAAG,CAAC,WAAW,IAAI,SAAS;KACnC,CAAC;AACJ,CAAC"}
@@ -1,83 +1,83 @@
1
- -- milens code intelligence database schema
2
-
3
- CREATE TABLE IF NOT EXISTS symbols (
4
- id TEXT PRIMARY KEY,
5
- name TEXT NOT NULL,
6
- kind TEXT NOT NULL,
7
- file_path TEXT NOT NULL,
8
- start_line INTEGER,
9
- end_line INTEGER,
10
- exported INTEGER DEFAULT 0,
11
- parent_id TEXT,
12
- signature TEXT,
13
- role TEXT,
14
- heat INTEGER DEFAULT 0
15
- );
16
-
17
- CREATE TABLE IF NOT EXISTS links (
18
- id TEXT PRIMARY KEY,
19
- from_id TEXT NOT NULL,
20
- to_id TEXT NOT NULL,
21
- type TEXT NOT NULL,
22
- confidence REAL DEFAULT 1.0,
23
- line_number INTEGER
24
- );
25
-
26
- CREATE TABLE IF NOT EXISTS file_hashes (
27
- path TEXT PRIMARY KEY,
28
- hash TEXT NOT NULL,
29
- analyzed_at TEXT NOT NULL DEFAULT (datetime('now')),
30
- zone TEXT
31
- );
32
-
33
- CREATE TABLE IF NOT EXISTS repo_meta (
34
- key TEXT PRIMARY KEY,
35
- value TEXT NOT NULL
36
- );
37
-
38
- CREATE TABLE IF NOT EXISTS meta (
39
- key TEXT PRIMARY KEY,
40
- value TEXT
41
- );
42
-
43
- CREATE INDEX IF NOT EXISTS idx_symbols_name ON symbols(name);
44
- CREATE INDEX IF NOT EXISTS idx_symbols_file ON symbols(file_path);
45
- CREATE INDEX IF NOT EXISTS idx_symbols_kind ON symbols(kind);
46
- CREATE INDEX IF NOT EXISTS idx_links_from ON links(from_id);
47
- CREATE INDEX IF NOT EXISTS idx_links_to ON links(to_id);
48
- CREATE INDEX IF NOT EXISTS idx_links_type ON links(type);
49
-
50
- -- FTS5 full-text search on symbol names and paths
51
- CREATE VIRTUAL TABLE IF NOT EXISTS symbol_fts USING fts5(
52
- name,
53
- file_path,
54
- kind,
55
- content='symbols',
56
- content_rowid='rowid'
57
- );
58
-
59
- -- Triggers to keep FTS in sync
60
- CREATE TRIGGER IF NOT EXISTS symbols_ai AFTER INSERT ON symbols BEGIN
61
- INSERT INTO symbol_fts(rowid, name, file_path, kind)
62
- VALUES (new.rowid, new.name, new.file_path, new.kind);
63
- END;
64
-
65
- CREATE TRIGGER IF NOT EXISTS symbols_ad AFTER DELETE ON symbols BEGIN
66
- INSERT INTO symbol_fts(symbol_fts, rowid, name, file_path, kind)
67
- VALUES ('delete', old.rowid, old.name, old.file_path, old.kind);
68
- END;
69
-
70
- -- Tool usage tracking for dashboard analytics
71
- CREATE TABLE IF NOT EXISTS tool_usage (
72
- id INTEGER PRIMARY KEY AUTOINCREMENT,
73
- tool TEXT NOT NULL,
74
- called_at TEXT NOT NULL DEFAULT (datetime('now')),
75
- duration_ms INTEGER DEFAULT 0,
76
- tokens_in INTEGER DEFAULT 0,
77
- tokens_out INTEGER DEFAULT 0,
78
- tokens_saved INTEGER DEFAULT 0,
79
- repo TEXT
80
- );
81
-
82
- CREATE INDEX IF NOT EXISTS idx_tool_usage_tool ON tool_usage(tool);
83
- CREATE INDEX IF NOT EXISTS idx_tool_usage_at ON tool_usage(called_at);
1
+ -- milens code intelligence database schema
2
+
3
+ CREATE TABLE IF NOT EXISTS symbols (
4
+ id TEXT PRIMARY KEY,
5
+ name TEXT NOT NULL,
6
+ kind TEXT NOT NULL,
7
+ file_path TEXT NOT NULL,
8
+ start_line INTEGER,
9
+ end_line INTEGER,
10
+ exported INTEGER DEFAULT 0,
11
+ parent_id TEXT,
12
+ signature TEXT,
13
+ role TEXT,
14
+ heat INTEGER DEFAULT 0
15
+ );
16
+
17
+ CREATE TABLE IF NOT EXISTS links (
18
+ id TEXT PRIMARY KEY,
19
+ from_id TEXT NOT NULL,
20
+ to_id TEXT NOT NULL,
21
+ type TEXT NOT NULL,
22
+ confidence REAL DEFAULT 1.0,
23
+ line_number INTEGER
24
+ );
25
+
26
+ CREATE TABLE IF NOT EXISTS file_hashes (
27
+ path TEXT PRIMARY KEY,
28
+ hash TEXT NOT NULL,
29
+ analyzed_at TEXT NOT NULL DEFAULT (datetime('now')),
30
+ zone TEXT
31
+ );
32
+
33
+ CREATE TABLE IF NOT EXISTS repo_meta (
34
+ key TEXT PRIMARY KEY,
35
+ value TEXT NOT NULL
36
+ );
37
+
38
+ CREATE TABLE IF NOT EXISTS meta (
39
+ key TEXT PRIMARY KEY,
40
+ value TEXT
41
+ );
42
+
43
+ CREATE INDEX IF NOT EXISTS idx_symbols_name ON symbols(name);
44
+ CREATE INDEX IF NOT EXISTS idx_symbols_file ON symbols(file_path);
45
+ CREATE INDEX IF NOT EXISTS idx_symbols_kind ON symbols(kind);
46
+ CREATE INDEX IF NOT EXISTS idx_links_from ON links(from_id);
47
+ CREATE INDEX IF NOT EXISTS idx_links_to ON links(to_id);
48
+ CREATE INDEX IF NOT EXISTS idx_links_type ON links(type);
49
+
50
+ -- FTS5 full-text search on symbol names and paths
51
+ CREATE VIRTUAL TABLE IF NOT EXISTS symbol_fts USING fts5(
52
+ name,
53
+ file_path,
54
+ kind,
55
+ content='symbols',
56
+ content_rowid='rowid'
57
+ );
58
+
59
+ -- Triggers to keep FTS in sync
60
+ CREATE TRIGGER IF NOT EXISTS symbols_ai AFTER INSERT ON symbols BEGIN
61
+ INSERT INTO symbol_fts(rowid, name, file_path, kind)
62
+ VALUES (new.rowid, new.name, new.file_path, new.kind);
63
+ END;
64
+
65
+ CREATE TRIGGER IF NOT EXISTS symbols_ad AFTER DELETE ON symbols BEGIN
66
+ INSERT INTO symbol_fts(symbol_fts, rowid, name, file_path, kind)
67
+ VALUES ('delete', old.rowid, old.name, old.file_path, old.kind);
68
+ END;
69
+
70
+ -- Tool usage tracking for dashboard analytics
71
+ CREATE TABLE IF NOT EXISTS tool_usage (
72
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
73
+ tool TEXT NOT NULL,
74
+ called_at TEXT NOT NULL DEFAULT (datetime('now')),
75
+ duration_ms INTEGER DEFAULT 0,
76
+ tokens_in INTEGER DEFAULT 0,
77
+ tokens_out INTEGER DEFAULT 0,
78
+ tokens_saved INTEGER DEFAULT 0,
79
+ repo TEXT
80
+ );
81
+
82
+ CREATE INDEX IF NOT EXISTS idx_tool_usage_tool ON tool_usage(tool);
83
+ CREATE INDEX IF NOT EXISTS idx_tool_usage_at ON tool_usage(called_at);