milens 0.5.7 → 0.5.9

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 (44) hide show
  1. package/LICENSE +75 -75
  2. package/README.md +477 -461
  3. package/dist/analyzer/engine.d.ts.map +1 -1
  4. package/dist/analyzer/engine.js +16 -1
  5. package/dist/analyzer/engine.js.map +1 -1
  6. package/dist/analyzer/resolver.d.ts +4 -1
  7. package/dist/analyzer/resolver.d.ts.map +1 -1
  8. package/dist/analyzer/resolver.js +158 -27
  9. package/dist/analyzer/resolver.js.map +1 -1
  10. package/dist/cli.js +395 -395
  11. package/dist/parser/extract.d.ts +4 -0
  12. package/dist/parser/extract.d.ts.map +1 -1
  13. package/dist/parser/extract.js +131 -9
  14. package/dist/parser/extract.js.map +1 -1
  15. package/dist/parser/lang-go.js +34 -34
  16. package/dist/parser/lang-java.js +29 -29
  17. package/dist/parser/lang-js.d.ts.map +1 -1
  18. package/dist/parser/lang-js.js +99 -75
  19. package/dist/parser/lang-js.js.map +1 -1
  20. package/dist/parser/lang-md.d.ts.map +1 -1
  21. package/dist/parser/lang-md.js +3 -0
  22. package/dist/parser/lang-md.js.map +1 -1
  23. package/dist/parser/lang-php.js +38 -38
  24. package/dist/parser/lang-py.d.ts.map +1 -1
  25. package/dist/parser/lang-py.js +32 -31
  26. package/dist/parser/lang-py.js.map +1 -1
  27. package/dist/parser/lang-ruby.js +14 -14
  28. package/dist/parser/lang-rust.js +30 -30
  29. package/dist/parser/lang-ts.d.ts.map +1 -1
  30. package/dist/parser/lang-ts.js +151 -104
  31. package/dist/parser/lang-ts.js.map +1 -1
  32. package/dist/server/mcp.d.ts.map +1 -1
  33. package/dist/server/mcp.js +130 -36
  34. package/dist/server/mcp.js.map +1 -1
  35. package/dist/skills.js +121 -121
  36. package/dist/skills.js.map +1 -1
  37. package/dist/store/db.d.ts +6 -0
  38. package/dist/store/db.d.ts.map +1 -1
  39. package/dist/store/db.js +121 -102
  40. package/dist/store/db.js.map +1 -1
  41. package/dist/store/schema.sql +83 -83
  42. package/dist/types.d.ts +26 -0
  43. package/dist/types.d.ts.map +1 -1
  44. package/package.json +65 -65
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) {
@@ -284,6 +286,23 @@ export class Database {
284
286
  exportedProductionSymbols: parseInt(this.getMeta('exported_production_symbols') ?? '0', 10),
285
287
  };
286
288
  }
289
+ getConfidenceDistribution() {
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'
298
+ `).get();
299
+ return {
300
+ high: rows?.high ?? 0,
301
+ medium: rows?.medium ?? 0,
302
+ low: rows?.low ?? 0,
303
+ total: rows?.total ?? 0,
304
+ };
305
+ }
287
306
  // ── Flow tracing — call chains from entrypoints to target ──
288
307
  traceToEntrypoints(symbolId, maxDepth = 8) {
289
308
  // Walk upstream following only 'calls' links to find paths from entrypoints
@@ -328,34 +347,34 @@ export class Database {
328
347
  // ── Route/endpoint detection via link patterns ──
329
348
  getEntrypoints() {
330
349
  // Symbols with role='entrypoint' OR exported + 0 incoming non-contains links
331
- const rows = this.db.prepare(`
332
- SELECT s.* FROM symbols s
333
- WHERE s.exported = 1
334
- AND s.role = 'entrypoint'
335
- ORDER BY s.heat DESC
336
- 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
337
356
  `).all();
338
357
  return rows.map(rowToSymbol);
339
358
  }
340
359
  // ── Domain clustering stats ──
341
360
  getDomainStats() {
342
- const rows = this.db.prepare(`
343
- SELECT fh.zone AS domain, COUNT(DISTINCT fh.path) AS file_count,
344
- COUNT(s.id) AS symbol_count
345
- FROM file_hashes fh
346
- LEFT JOIN symbols s ON s.file_path = fh.path
347
- WHERE fh.zone IS NOT NULL
348
- GROUP BY fh.zone
349
- 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
350
369
  `).all();
351
370
  return rows.map((r) => ({ domain: r.domain, files: r.file_count, symbols: r.symbol_count }));
352
371
  }
353
372
  // ── Staleness detection ──
354
373
  getStaleFiles(hoursOld = 24) {
355
- const rows = this.db.prepare(`
356
- SELECT path FROM file_hashes
357
- WHERE analyzed_at < datetime('now', '-' || ? || ' hours')
358
- 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
359
378
  `).all(hoursOld);
360
379
  return rows.map((r) => r.path);
361
380
  }
@@ -378,39 +397,39 @@ export class Database {
378
397
  }
379
398
  // ── Tool usage tracking ──
380
399
  logToolUsage(tool, durationMs, tokensOut, tokensSaved, repo) {
381
- 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)
382
401
  VALUES (?, ?, ?, ?, ?)`).run(tool, durationMs, tokensOut, tokensSaved, repo ?? null);
383
402
  }
384
403
  getToolUsageStats() {
385
- const totals = this.db.prepare(`
386
- SELECT COUNT(*) as total_calls,
387
- COALESCE(SUM(tokens_saved), 0) as total_saved,
388
- COALESCE(SUM(tokens_out), 0) as total_out,
389
- COALESCE(SUM(duration_ms), 0) as total_ms
390
- 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
391
410
  `).get();
392
- const byTool = this.db.prepare(`
393
- SELECT tool, COUNT(*) as calls,
394
- COALESCE(SUM(tokens_saved), 0) as tokens_saved,
395
- COALESCE(SUM(tokens_out), 0) as tokens_out,
396
- CAST(COALESCE(AVG(duration_ms), 0) AS INTEGER) as avg_ms
397
- FROM tool_usage
398
- GROUP BY tool
399
- 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
400
419
  `).all();
401
- const byDay = this.db.prepare(`
402
- SELECT date(called_at) as date, COUNT(*) as calls,
403
- COALESCE(SUM(tokens_saved), 0) as tokens_saved
404
- FROM tool_usage
405
- GROUP BY date(called_at)
406
- ORDER BY date DESC
407
- 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
408
427
  `).all();
409
- const recentCalls = this.db.prepare(`
410
- SELECT tool, called_at, duration_ms, tokens_saved
411
- FROM tool_usage
412
- ORDER BY id DESC
413
- 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
414
433
  `).all();
415
434
  return {
416
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":"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"}
@@ -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);
package/dist/types.d.ts CHANGED
@@ -55,6 +55,9 @@ export interface ExtractionResult {
55
55
  exportedNames: Set<string>;
56
56
  reExports: RawReExport[];
57
57
  typeBindings: RawTypeBinding[];
58
+ assignmentBindings: RawAssignmentBinding[];
59
+ returnTypes: RawReturnType[];
60
+ callResultBindings: RawCallResultBinding[];
58
61
  }
59
62
  export interface RawReExport {
60
63
  filePath: string;
@@ -67,6 +70,29 @@ export interface RawTypeBinding {
67
70
  variableName: string;
68
71
  typeName: string;
69
72
  line: number;
73
+ scope?: string;
74
+ }
75
+ export interface RawAssignmentBinding {
76
+ filePath: string;
77
+ target: string;
78
+ source: string;
79
+ line: number;
80
+ scope?: string;
81
+ }
82
+ export interface RawReturnType {
83
+ filePath: string;
84
+ functionName: string;
85
+ returnType: string;
86
+ line: number;
87
+ parentName?: string;
88
+ }
89
+ export interface RawCallResultBinding {
90
+ filePath: string;
91
+ target: string;
92
+ calleeName: string;
93
+ receiver?: string;
94
+ line: number;
95
+ scope?: string;
70
96
  }
71
97
  export interface AnalysisStats {
72
98
  filesScanned: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}