pindex 1.2.2 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/README.md +11 -5
  2. package/dist/cli/index.js +13 -9
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/cli/init.d.ts.map +1 -1
  5. package/dist/cli/init.js +3 -4
  6. package/dist/cli/init.js.map +1 -1
  7. package/dist/cli/project-detector.js +2 -2
  8. package/dist/cli/project-detector.js.map +1 -1
  9. package/dist/db/database.d.ts.map +1 -1
  10. package/dist/db/database.js +1 -0
  11. package/dist/db/database.js.map +1 -1
  12. package/dist/db/migrations.d.ts +4 -1
  13. package/dist/db/migrations.d.ts.map +1 -1
  14. package/dist/db/migrations.js +26 -3
  15. package/dist/db/migrations.js.map +1 -1
  16. package/dist/db/queries.d.ts +11 -2
  17. package/dist/db/queries.d.ts.map +1 -1
  18. package/dist/db/queries.js +60 -24
  19. package/dist/db/queries.js.map +1 -1
  20. package/dist/db/schema.d.ts.map +1 -1
  21. package/dist/db/schema.js +4 -0
  22. package/dist/db/schema.js.map +1 -1
  23. package/dist/gui/server.d.ts.map +1 -1
  24. package/dist/gui/server.js +32 -12
  25. package/dist/gui/server.js.map +1 -1
  26. package/dist/index.js +46 -7
  27. package/dist/index.js.map +1 -1
  28. package/dist/indexer/index.d.ts +22 -3
  29. package/dist/indexer/index.d.ts.map +1 -1
  30. package/dist/indexer/index.js +196 -116
  31. package/dist/indexer/index.js.map +1 -1
  32. package/dist/indexer/parse-pool.d.ts +26 -0
  33. package/dist/indexer/parse-pool.d.ts.map +1 -0
  34. package/dist/indexer/parse-pool.js +201 -0
  35. package/dist/indexer/parse-pool.js.map +1 -0
  36. package/dist/indexer/parse-types.d.ts +33 -0
  37. package/dist/indexer/parse-types.d.ts.map +1 -0
  38. package/dist/indexer/parse-types.js +2 -0
  39. package/dist/indexer/parse-types.js.map +1 -0
  40. package/dist/indexer/parse-worker.d.ts +2 -0
  41. package/dist/indexer/parse-worker.d.ts.map +1 -0
  42. package/dist/indexer/parse-worker.js +39 -0
  43. package/dist/indexer/parse-worker.js.map +1 -0
  44. package/dist/indexer/parser.d.ts.map +1 -1
  45. package/dist/indexer/parser.js +47 -46
  46. package/dist/indexer/parser.js.map +1 -1
  47. package/dist/indexer/summarizer.d.ts +18 -7
  48. package/dist/indexer/summarizer.d.ts.map +1 -1
  49. package/dist/indexer/summarizer.js +110 -13
  50. package/dist/indexer/summarizer.js.map +1 -1
  51. package/dist/indexer/watcher.d.ts +6 -1
  52. package/dist/indexer/watcher.d.ts.map +1 -1
  53. package/dist/indexer/watcher.js +46 -6
  54. package/dist/indexer/watcher.js.map +1 -1
  55. package/dist/memory/anti-patterns.d.ts.map +1 -1
  56. package/dist/memory/anti-patterns.js +9 -11
  57. package/dist/memory/anti-patterns.js.map +1 -1
  58. package/dist/memory/observer.d.ts.map +1 -1
  59. package/dist/memory/observer.js +20 -4
  60. package/dist/memory/observer.js.map +1 -1
  61. package/dist/monitoring/server.d.ts.map +1 -1
  62. package/dist/monitoring/server.js +16 -4
  63. package/dist/monitoring/server.js.map +1 -1
  64. package/dist/monitoring/token-logger.d.ts +2 -2
  65. package/dist/monitoring/token-logger.d.ts.map +1 -1
  66. package/dist/monitoring/token-logger.js +1 -1
  67. package/dist/monitoring/token-logger.js.map +1 -1
  68. package/dist/server.d.ts +1 -0
  69. package/dist/server.d.ts.map +1 -1
  70. package/dist/server.js +56 -36
  71. package/dist/server.js.map +1 -1
  72. package/dist/tools/get_context.d.ts.map +1 -1
  73. package/dist/tools/get_context.js +35 -9
  74. package/dist/tools/get_context.js.map +1 -1
  75. package/dist/tools/get_project_overview.d.ts.map +1 -1
  76. package/dist/tools/get_project_overview.js +16 -12
  77. package/dist/tools/get_project_overview.js.map +1 -1
  78. package/dist/tools/get_session_memory.d.ts.map +1 -1
  79. package/dist/tools/get_session_memory.js +2 -5
  80. package/dist/tools/get_session_memory.js.map +1 -1
  81. package/dist/tools/schemas.d.ts +75 -0
  82. package/dist/tools/schemas.d.ts.map +1 -0
  83. package/dist/tools/schemas.js +79 -0
  84. package/dist/tools/schemas.js.map +1 -0
  85. package/dist/tools/search_symbols.d.ts.map +1 -1
  86. package/dist/tools/search_symbols.js +9 -7
  87. package/dist/tools/search_symbols.js.map +1 -1
  88. package/dist/util/paths.d.ts +9 -0
  89. package/dist/util/paths.d.ts.map +1 -0
  90. package/dist/util/paths.js +18 -0
  91. package/dist/util/paths.js.map +1 -0
  92. package/package.json +10 -7
@@ -1,5 +1,9 @@
1
- import { sep } from 'node:path';
1
+ /** Normalize any path to forward slashes (POSIX convention). */
2
+ function toForwardSlash(p) {
3
+ return p.replace(/\\/g, '/');
4
+ }
2
5
  export function upsertFile(db, input) {
6
+ input = { ...input, path: toForwardSlash(input.path) };
3
7
  db.prepare(`
4
8
  INSERT INTO files (path, language, hash, raw_token_estimate, summary, last_indexed)
5
9
  VALUES (@path, @language, @hash, @rawTokenEstimate, @summary, datetime('now'))
@@ -12,20 +16,18 @@ export function upsertFile(db, input) {
12
16
  `).run(input);
13
17
  }
14
18
  export function getFileByPath(db, path) {
15
- // Normalise to the platform separator so forward-slash and backslash inputs
16
- // both match the paths stored by the indexer on Windows (backslash) / Unix (slash).
17
- const normalized = path.replace(/[\\/]/g, sep);
19
+ const normalized = toForwardSlash(path);
18
20
  return (db.prepare('SELECT * FROM files WHERE path = ?').get(normalized) ?? null);
19
21
  }
20
22
  export function getAllFiles(db) {
21
23
  return db.prepare('SELECT * FROM files ORDER BY path').all();
22
24
  }
23
25
  export function deleteFile(db, path) {
24
- db.prepare('DELETE FROM files WHERE path = ?').run(path);
26
+ db.prepare('DELETE FROM files WHERE path = ?').run(toForwardSlash(path));
25
27
  }
26
28
  export function upsertSymbol(db, input) {
27
29
  const result = db.prepare(`
28
- INSERT INTO symbols (file_id, name, kind, signature, summary, start_line, end_line, is_exported, is_async, has_try_catch)
30
+ INSERT OR REPLACE INTO symbols (file_id, name, kind, signature, summary, start_line, end_line, is_exported, is_async, has_try_catch)
29
31
  VALUES (@fileId, @name, @kind, @signature, @summary, @startLine, @endLine, @isExported, @isAsync, @hasTryCatch)
30
32
  `).run({
31
33
  ...input,
@@ -74,15 +76,15 @@ export function searchSymbolsFts(db, query, limit, filters) {
74
76
  params.push(limit);
75
77
  return db.prepare(sql).all(...params);
76
78
  }
77
- catch {
78
- // FTS query syntax errors – return empty rather than throw
79
+ catch (err) {
80
+ process.stderr.write(`[pindex] FTS symbol search error: ${err}\n`);
79
81
  return [];
80
82
  }
81
83
  }
82
84
  export function upsertDependency(db, input) {
83
85
  db.prepare(`
84
86
  INSERT OR IGNORE INTO dependencies (from_file, to_file, symbol_name)
85
- VALUES (@fromFile, @toFile, @symbolName)
87
+ VALUES (@fromFile, @toFile, COALESCE(@symbolName, ''))
86
88
  `).run(input);
87
89
  }
88
90
  export function getDependenciesByFile(db, fileId) {
@@ -106,13 +108,14 @@ export function upsertUsage(db, input) {
106
108
  VALUES (@symbolId, @usedInFile, @usedAtLine)
107
109
  `).run(input);
108
110
  }
109
- export function getUsagesBySymbol(db, symbolId) {
111
+ export function getUsagesBySymbol(db, symbolId, limit = 200) {
110
112
  return db
111
113
  .prepare(`SELECT u.*, f.path AS file_path
112
114
  FROM usages u JOIN files f ON u.used_in_file = f.id
113
115
  WHERE u.symbol_id = ?
114
- ORDER BY f.path, u.used_at_line`)
115
- .all(symbolId);
116
+ ORDER BY f.path, u.used_at_line
117
+ LIMIT ?`)
118
+ .all(symbolId, limit);
116
119
  }
117
120
  export function deleteUsagesByFile(db, fileId) {
118
121
  db.prepare('DELETE FROM usages WHERE used_in_file = ?').run(fileId);
@@ -206,7 +209,8 @@ export function searchDocumentsFts(db, query, limit) {
206
209
  LIMIT ?`)
207
210
  .all(query, limit);
208
211
  }
209
- catch {
212
+ catch (err) {
213
+ process.stderr.write(`[pindex] FTS document search error: ${err}\n`);
210
214
  return [];
211
215
  }
212
216
  }
@@ -228,7 +232,8 @@ export function searchContextEntriesFts(db, query, limit) {
228
232
  LIMIT ?`)
229
233
  .all(query, limit);
230
234
  }
231
- catch {
235
+ catch (err) {
236
+ process.stderr.write(`[pindex] FTS context search error: ${err}\n`);
232
237
  return [];
233
238
  }
234
239
  }
@@ -246,10 +251,10 @@ export function upsertAstSnapshot(db, input) {
246
251
  export function getSnapshotsByFile(db, filePath) {
247
252
  return db
248
253
  .prepare('SELECT * FROM ast_snapshots WHERE file_path = ?')
249
- .all(filePath);
254
+ .all(toForwardSlash(filePath));
250
255
  }
251
256
  export function deleteSnapshotsByFile(db, filePath) {
252
- db.prepare('DELETE FROM ast_snapshots WHERE file_path = ?').run(filePath);
257
+ db.prepare('DELETE FROM ast_snapshots WHERE file_path = ?').run(toForwardSlash(filePath));
253
258
  }
254
259
  export function insertObservation(db, input) {
255
260
  const result = db.prepare(`
@@ -264,29 +269,30 @@ export function insertObservation(db, input) {
264
269
  });
265
270
  return result.lastInsertRowid;
266
271
  }
267
- export function getObservationsBySession(db, sessionId) {
272
+ export function getObservationsBySession(db, sessionId, includeStale = true, limit = 500) {
273
+ const staleClause = includeStale ? '' : ' AND stale = 0';
268
274
  return db
269
- .prepare('SELECT * FROM session_observations WHERE session_id = ? ORDER BY created_at')
270
- .all(sessionId);
275
+ .prepare(`SELECT * FROM session_observations WHERE session_id = ?${staleClause} ORDER BY created_at LIMIT ?`)
276
+ .all(sessionId, limit);
271
277
  }
272
278
  export function getObservationsByFile(db, filePath, limit = 5) {
273
279
  return db
274
280
  .prepare('SELECT * FROM session_observations WHERE file_path = ? ORDER BY created_at DESC LIMIT ?')
275
- .all(filePath, limit);
281
+ .all(toForwardSlash(filePath), limit);
276
282
  }
277
283
  export function getObservationsByFileSymbol(db, filePath, symbolName, limit = 5) {
278
284
  return db
279
285
  .prepare(`SELECT * FROM session_observations
280
286
  WHERE file_path = ? AND symbol_name = ?
281
287
  ORDER BY created_at DESC LIMIT ?`)
282
- .all(filePath, symbolName, limit);
288
+ .all(toForwardSlash(filePath), symbolName, limit);
283
289
  }
284
290
  export function markObservationsStale(db, filePath, symbolName, reason) {
285
291
  db.prepare(`
286
292
  UPDATE session_observations
287
293
  SET stale = 1, stale_reason = ?
288
294
  WHERE file_path = ? AND symbol_name = ? AND stale = 0
289
- `).run(reason, filePath, symbolName);
295
+ `).run(reason, toForwardSlash(filePath), symbolName);
290
296
  }
291
297
  export function countStaleObservations(db) {
292
298
  const row = db
@@ -302,10 +308,13 @@ export function countPriorSessions(db, excludeSessionId) {
302
308
  }
303
309
  export function deleteObservationsOlderThan(db, cutoffIso) {
304
310
  db.prepare('DELETE FROM session_observations WHERE created_at < ?').run(cutoffIso);
311
+ db.prepare('DELETE FROM session_events WHERE timestamp < ?').run(cutoffIso);
312
+ db.prepare('DELETE FROM token_log WHERE timestamp < ?').run(cutoffIso);
305
313
  }
306
314
  export function deleteObservationsExceptSession(db, sessionId) {
307
315
  db.prepare('DELETE FROM session_observations WHERE session_id != ?').run(sessionId);
308
316
  db.prepare('DELETE FROM session_events WHERE session_id != ?').run(sessionId);
317
+ db.prepare('DELETE FROM token_log WHERE session_id != ?').run(sessionId);
309
318
  }
310
319
  export function insertSessionEvent(db, input) {
311
320
  const result = db.prepare(`
@@ -334,14 +343,41 @@ export function getSessionEvents(db, sessionId, eventTypes) {
334
343
  .all(sessionId);
335
344
  }
336
345
  export function getRecentFileChangeEvents(db, filePath, sessionId, windowMinutes) {
346
+ const cutoff = new Date(Date.now() - windowMinutes * 60 * 1000).toISOString();
337
347
  return db
338
348
  .prepare(`SELECT * FROM session_events
339
349
  WHERE session_id = ?
340
350
  AND file_path = ?
341
351
  AND event_type IN ('symbol_added', 'symbol_removed', 'sig_changed')
342
- AND timestamp >= datetime('now', '-' || ? || ' minutes')
352
+ AND timestamp >= ?
343
353
  ORDER BY timestamp`)
344
- .all(sessionId, filePath, windowMinutes);
354
+ .all(sessionId, toForwardSlash(filePath), cutoff);
355
+ }
356
+ /**
357
+ * Check if at least one session event matching the given criteria exists.
358
+ * Uses EXISTS + LIMIT 1 for efficiency — avoids fetching the entire event stream.
359
+ */
360
+ export function hasMatchingSessionEvent(db, sessionId, eventType, filePath, symbolName) {
361
+ let sql = 'SELECT 1 FROM session_events WHERE session_id = ? AND event_type = ?';
362
+ const params = [sessionId, eventType];
363
+ if (filePath) {
364
+ sql += ' AND file_path = ?';
365
+ params.push(toForwardSlash(filePath));
366
+ }
367
+ if (symbolName) {
368
+ sql += ' AND symbol_name = ?';
369
+ params.push(symbolName);
370
+ }
371
+ sql += ' LIMIT 1';
372
+ return db.prepare(sql).get(...params) !== undefined;
373
+ }
374
+ /**
375
+ * Get the most recent session event of a given type for a specific file.
376
+ */
377
+ export function getLatestSessionEvent(db, sessionId, eventType, filePath) {
378
+ return db.prepare(`SELECT * FROM session_events
379
+ WHERE session_id = ? AND event_type = ? AND file_path = ?
380
+ ORDER BY timestamp DESC LIMIT 1`).get(sessionId, eventType, toForwardSlash(filePath));
345
381
  }
346
382
  export function getAntiPatternEvents(db, sessionId) {
347
383
  return db
@@ -1 +1 @@
1
- {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/db/queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/db/queries.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C;+DAC+D;AAC/D,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAmOtD"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C;+DAC+D;AAC/D,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAuOtD"}
package/dist/db/schema.js CHANGED
@@ -66,7 +66,10 @@ export function initSchema(db) {
66
66
  CREATE INDEX IF NOT EXISTS idx_symbols_name ON symbols(name);
67
67
  CREATE INDEX IF NOT EXISTS idx_dependencies_from ON dependencies(from_file);
68
68
  CREATE INDEX IF NOT EXISTS idx_dependencies_to ON dependencies(to_file);
69
+ CREATE UNIQUE INDEX IF NOT EXISTS idx_dependencies_unique ON dependencies(from_file, to_file, symbol_name);
69
70
  CREATE INDEX IF NOT EXISTS idx_usages_symbol ON usages(symbol_id);
71
+ CREATE INDEX IF NOT EXISTS idx_usages_used_in_file ON usages(used_in_file);
72
+ CREATE UNIQUE INDEX IF NOT EXISTS idx_usages_unique ON usages(symbol_id, used_in_file, used_at_line);
70
73
  CREATE INDEX IF NOT EXISTS idx_token_log_session ON token_log(session_id);
71
74
  `);
72
75
  // ─── Document Tables ───────────────────────────────────────────────────────
@@ -215,6 +218,7 @@ export function initSchema(db) {
215
218
  CREATE INDEX IF NOT EXISTS idx_session_observations_file ON session_observations(file_path);
216
219
  CREATE INDEX IF NOT EXISTS idx_session_events_session ON session_events(session_id);
217
220
  CREATE INDEX IF NOT EXISTS idx_session_events_file_time ON session_events(file_path, timestamp);
221
+ CREATE INDEX IF NOT EXISTS idx_session_events_type_session ON session_events(event_type, session_id);
218
222
  `);
219
223
  }
220
224
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAEA;+DAC+D;AAC/D,MAAM,UAAU,UAAU,CAAC,EAAqB;IAC9C,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEP,CAAC,CAAC;IAEH,8EAA8E;IAC9E,qEAAqE;IAErE,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;GAsBP,CAAC,CAAC;IAEH,0EAA0E;IAC1E,0BAA0B;IAC1B,EAAE,CAAC,IAAI,CAAC;;;GAGP,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;;;GAGP,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;;;GAGP,CAAC,CAAC;IAEH,8EAA8E;IAC9E,uEAAuE;IAEvE,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;GAoBP,CAAC,CAAC;IAEH,6EAA6E;IAC7E,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;GAoBP,CAAC,CAAC;IAEH,6EAA6E;IAC7E,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;GAoBP,CAAC,CAAC;IAEH,8EAA8E;IAE9E,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCP,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAEA;+DAC+D;AAC/D,MAAM,UAAU,UAAU,CAAC,EAAqB;IAC9C,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEP,CAAC,CAAC;IAEH,8EAA8E;IAC9E,qEAAqE;IAErE,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;GAsBP,CAAC,CAAC;IAEH,0EAA0E;IAC1E,0BAA0B;IAC1B,EAAE,CAAC,IAAI,CAAC;;;GAGP,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;;;GAGP,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;;;GAGP,CAAC,CAAC;IAEH,8EAA8E;IAC9E,uEAAuE;IAEvE,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;GAoBP,CAAC,CAAC;IAEH,6EAA6E;IAC7E,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;GAoBP,CAAC,CAAC;IAEH,6EAA6E;IAC7E,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;GAoBP,CAAC,CAAC;IAEH,8EAA8E;IAE9E,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCP,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/gui/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,4BAA4B,CAAC;AAIpC,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAaD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAsD1F;AAID,wBAAgB,YAAY,IAAI,OAAO,CAAC,WAAW,CAqJlD;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IAC5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAuBvE"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/gui/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,4BAA4B,CAAC;AAIpC,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAaD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAuD1F;AAID,wBAAgB,YAAY,IAAI,OAAO,CAAC,WAAW,CAmKlD;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IAC5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA2BvE"}
@@ -59,7 +59,8 @@ export function loadProjectStats(entry) {
59
59
  indexSizeBytes,
60
60
  };
61
61
  }
62
- catch {
62
+ catch (err) {
63
+ process.stderr.write(`[pindex] Failed to load stats for project "${entry.name}": ${err}\n`);
63
64
  return {
64
65
  entry, fileCount: 0, symbolCount: 0,
65
66
  totalTokensSaved: 0, totalTokensActual: 0,
@@ -75,13 +76,24 @@ export function loadProjectStats(entry) {
75
76
  export function createGuiApp() {
76
77
  const app = express();
77
78
  app.use(express.json());
79
+ // Cache registry reads with a 5-second TTL to avoid re-reading the file on every request
80
+ let registryCache = null;
81
+ let registryCacheTime = 0;
82
+ const REGISTRY_TTL_MS = 5000;
83
+ function getCachedRegistry() {
84
+ const now = Date.now();
85
+ if (!registryCache || now - registryCacheTime > REGISTRY_TTL_MS) {
86
+ registryCache = new GlobalRegistry().list();
87
+ registryCacheTime = now;
88
+ }
89
+ return registryCache;
90
+ }
78
91
  app.get('/api/projects', (_req, res) => {
79
- const registry = new GlobalRegistry();
80
- const projects = registry.list().map(loadProjectStats);
92
+ const projects = getCachedRegistry().map(loadProjectStats);
81
93
  res.json(projects);
82
94
  });
83
95
  app.get('/api/projects/:hash/detail', (req, res) => {
84
- const registry = new GlobalRegistry();
96
+ const registry = { list: getCachedRegistry };
85
97
  const entry = registry.list().find((p) => p.hash === req.params.hash);
86
98
  if (!entry)
87
99
  return res.status(404).json({ error: 'project not found' });
@@ -99,7 +111,8 @@ export function createGuiApp() {
99
111
  FROM token_log ORDER BY timestamp DESC LIMIT 200`).all();
100
112
  return res.json({ files, symbols, tokenLog });
101
113
  }
102
- catch {
114
+ catch (err) {
115
+ process.stderr.write(`[pindex] DB query failed for project detail ${req.params.hash}: ${err}\n`);
103
116
  return res.json({ files: [], symbols: [], tokenLog: [] });
104
117
  }
105
118
  finally {
@@ -107,7 +120,7 @@ export function createGuiApp() {
107
120
  }
108
121
  });
109
122
  app.get('/api/projects/:hash/sessions', (req, res) => {
110
- const registry = new GlobalRegistry();
123
+ const registry = { list: getCachedRegistry };
111
124
  const entry = registry.list().find((p) => p.hash === req.params.hash);
112
125
  if (!entry)
113
126
  return res.status(404).json({ error: 'project not found' });
@@ -122,7 +135,8 @@ export function createGuiApp() {
122
135
  .all();
123
136
  return res.json(sessions);
124
137
  }
125
- catch {
138
+ catch (err) {
139
+ process.stderr.write(`[pindex] DB query failed for sessions ${req.params.hash}: ${err}\n`);
126
140
  return res.json([]);
127
141
  }
128
142
  finally {
@@ -130,7 +144,7 @@ export function createGuiApp() {
130
144
  }
131
145
  });
132
146
  app.get('/api/overview', async (_req, res) => {
133
- const registry = new GlobalRegistry();
147
+ const registry = { list: getCachedRegistry };
134
148
  const entries = registry.list();
135
149
  const baseStats = entries.map(loadProjectStats);
136
150
  // Check monitoring ports in parallel to detect running pindex-server instances
@@ -153,7 +167,7 @@ export function createGuiApp() {
153
167
  res.json({ overview, projects: stats });
154
168
  });
155
169
  app.get('/api/sessions/recent', (_req, res) => {
156
- const registry = new GlobalRegistry();
170
+ const registry = { list: getCachedRegistry };
157
171
  const all = [];
158
172
  for (const entry of registry.list()) {
159
173
  const dbPath = getProjectIndexPath(entry.path);
@@ -169,7 +183,9 @@ export function createGuiApp() {
169
183
  .all();
170
184
  rows.forEach(r => all.push({ ...r, projectName: entry.name, projectHash: entry.hash }));
171
185
  }
172
- catch { /* skip */ }
186
+ catch (err) {
187
+ process.stderr.write(`[pindex] Failed to read sessions for "${entry.name}": ${err}\n`);
188
+ }
173
189
  finally {
174
190
  db?.close();
175
191
  }
@@ -194,7 +210,7 @@ export function createGuiApp() {
194
210
  return res.json(result);
195
211
  });
196
212
  app.get('/api/projects/:hash/open', async (req, res) => {
197
- const registry = new GlobalRegistry();
213
+ const registry = { list: getCachedRegistry };
198
214
  const entry = registry.list().find((p) => p.hash === req.params.hash);
199
215
  if (!entry)
200
216
  return res.status(404).json({ error: 'project not found' });
@@ -226,7 +242,11 @@ export function startGuiServer(port) {
226
242
  httpServer.close();
227
243
  reject(err);
228
244
  });
229
- httpServer.listen(port);
245
+ // Bind to loopback by default. The GUI exposes aggregated project data
246
+ // across ALL registered PindeX projects and must not be reachable from
247
+ // other hosts without an explicit opt-in via PINDEX_BIND_HOST.
248
+ const bindHost = process.env.PINDEX_BIND_HOST ?? '127.0.0.1';
249
+ httpServer.listen(port, bindHost);
230
250
  });
231
251
  }
232
252
  // ─── Inline Dashboard HTML ─────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/gui/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/gui/server.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -10,7 +10,6 @@ import { createMcpServer } from './server.js';
10
10
  import { createSession, deleteObservationsOlderThan, deleteObservationsExceptSession, } from './db/queries.js';
11
11
  import { getProjectIndexPath } from './cli/project-detector.js';
12
12
  import { SessionObserver } from './memory/observer.js';
13
- import { EventEmitter } from 'node:events';
14
13
  import { v4 as uuidv4 } from 'uuid';
15
14
  // ─── Configuration (from environment variables) ───────────────────────────────
16
15
  const INDEX_PATH = process.env.INDEX_PATH ?? './.codebase-index/index.db';
@@ -23,6 +22,10 @@ const BASELINE_MODE = process.env.BASELINE_MODE === 'true';
23
22
  const GENERATE_SUMMARIES = process.env.GENERATE_SUMMARIES === 'true';
24
23
  // 'permanent' | 'session' | '7d' | '30d' | ...
25
24
  const OBSERVATION_RETENTION = process.env.OBSERVATION_RETENTION ?? 'permanent';
25
+ // Summarizer configuration
26
+ const SUMMARIZER_API_KEY = process.env.SUMMARIZER_API_KEY ?? '';
27
+ const SUMMARIZER_BASE_URL = process.env.SUMMARIZER_BASE_URL ?? 'https://api.openai.com/v1';
28
+ const SUMMARIZER_MODEL = process.env.SUMMARIZER_MODEL ?? 'gpt-4o-mini';
26
29
  // Federated repos: colon- or comma-separated absolute paths
27
30
  const FEDERATION_REPOS = (process.env.FEDERATION_REPOS ?? '')
28
31
  .split(/[:,,]/)
@@ -45,16 +48,26 @@ async function main() {
45
48
  }
46
49
  }).filter((x) => x !== null);
47
50
  // 2. Set up the indexer
51
+ if (GENERATE_SUMMARIES && !SUMMARIZER_API_KEY) {
52
+ process.stderr.write('[pindex] Warning: GENERATE_SUMMARIES=true but no SUMMARIZER_API_KEY set\n');
53
+ }
48
54
  const indexer = new Indexer({
49
55
  db,
50
56
  projectRoot: PROJECT_ROOT,
51
57
  languages: LANGUAGES,
52
58
  generateSummaries: GENERATE_SUMMARIES,
59
+ summarizerOptions: {
60
+ enabled: GENERATE_SUMMARIES,
61
+ apiKey: SUMMARIZER_API_KEY,
62
+ baseUrl: SUMMARIZER_BASE_URL,
63
+ model: SUMMARIZER_MODEL,
64
+ },
65
+ });
66
+ // 3. Initial indexing (non-blocking) — log errors instead of swallowing
67
+ indexer.indexAll().then(() => indexer.resolveDependencies()).catch((err) => {
68
+ process.stderr.write(`[pindex] Initial indexing failed: ${String(err)}\n`);
53
69
  });
54
- // 3. Initial indexing (non-blocking)
55
- indexer.indexAll().then(() => indexer.resolveDependencies()).catch(() => { });
56
70
  // 4. Start monitoring server
57
- const emitter = new EventEmitter();
58
71
  const monitoringServer = startMonitoringServer(db, MONITORING_PORT);
59
72
  if (MONITORING_AUTO_OPEN) {
60
73
  const { default: open } = await import('open');
@@ -63,14 +76,17 @@ async function main() {
63
76
  // 5. Set up token logger + session observer for the current session
64
77
  const sessionId = uuidv4();
65
78
  createSession(db, { id: sessionId, mode: BASELINE_MODE ? 'baseline' : 'indexed', label: null });
66
- const tokenLogger = new TokenLogger({ db, sessionId, emitter });
79
+ const tokenLogger = new TokenLogger({ db, sessionId });
67
80
  const observer = new SessionObserver({ db, sessionId, projectRoot: PROJECT_ROOT });
68
81
  // 5b. Observation retention cleanup
69
82
  applyObservationRetention(db, sessionId, OBSERVATION_RETENTION);
70
83
  // 6. Start file watcher
84
+ let watcher = null;
71
85
  if (AUTO_REINDEX) {
72
- const watcher = new FileWatcher({ db, indexer, projectRoot: PROJECT_ROOT, observer });
73
- watcher.start().catch(() => { });
86
+ watcher = new FileWatcher({ db, indexer, projectRoot: PROJECT_ROOT, languages: LANGUAGES, observer });
87
+ watcher.start().catch((err) => {
88
+ process.stderr.write(`[pindex] File watcher failed to start: ${String(err)}\n`);
89
+ });
74
90
  }
75
91
  // 7. Create and start the MCP server
76
92
  const server = createMcpServer(db, indexer, tokenLogger, monitoringServer, {
@@ -83,6 +99,29 @@ async function main() {
83
99
  });
84
100
  const transport = new StdioServerTransport();
85
101
  await server.connect(transport);
102
+ // ─── Graceful Shutdown ──────────────────────────────────────────────────
103
+ const cleanup = async () => {
104
+ try {
105
+ if (watcher)
106
+ await watcher.stop();
107
+ await indexer.closePool();
108
+ await monitoringServer.close();
109
+ for (const fed of federatedDbs) {
110
+ try {
111
+ fed.db.close();
112
+ }
113
+ catch { /* ignore */ }
114
+ }
115
+ db.close();
116
+ }
117
+ catch { /* best effort */ }
118
+ };
119
+ process.on('SIGTERM', () => {
120
+ cleanup().finally(() => process.exit(0));
121
+ });
122
+ process.on('SIGINT', () => {
123
+ cleanup().finally(() => process.exit(0));
124
+ });
86
125
  }
87
126
  // Catch any unhandled exception / rejection and exit so Claude Code auto-restarts the server.
88
127
  process.on('uncaughtException', (err) => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACL,aAAa,EACb,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC,iFAAiF;AAEjF,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,4BAA4B,CAAC;AAC1E,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AAC/D,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,uBAAuB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAChF,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,OAAO,CAAC;AAC1D,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;AAC5E,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,MAAM,CAAC;AACzE,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM,CAAC;AAC3D,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,MAAM,CAAC;AACrE,+CAA+C;AAC/C,MAAM,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,WAAW,CAAC;AAE/E,2BAA2B;AAC3B,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC;AAChE,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,2BAA2B,CAAC;AAC3F,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,aAAa,CAAC;AAEvE,4DAA4D;AAC5D,MAAM,gBAAgB,GAAa,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;KACpE,KAAK,CAAC,OAAO,CAAC;KACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;KACpB,MAAM,CAAC,OAAO,CAAC,CAAC;AAEnB,KAAK,UAAU,IAAI;IACjB,uCAAuC;IACvC,MAAM,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IACpC,aAAa,CAAC,EAAE,CAAC,CAAC;IAElB,gDAAgD;IAChD,MAAM,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QACrD,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACnC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qDAAqD,QAAQ,IAAI,CAAC,CAAC;YACxF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAA8D,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAEzF,wBAAwB;IACxB,IAAI,kBAAkB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC9C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;IACpG,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;QAC1B,EAAE;QACF,WAAW,EAAE,YAAY;QACzB,SAAS,EAAE,SAAS;QACpB,iBAAiB,EAAE,kBAAkB;QACrC,iBAAiB,EAAE;YACjB,OAAO,EAAE,kBAAkB;YAC3B,MAAM,EAAE,kBAAkB;YAC1B,OAAO,EAAE,mBAAmB;YAC5B,KAAK,EAAE,gBAAgB;SACxB;KACF,CAAC,CAAC;IAEH,wEAAwE;IACxE,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACzE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,6BAA6B;IAC7B,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;IAEpE,IAAI,oBAAoB,EAAE,CAAC;QACzB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,oBAAoB,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,oEAAoE;IACpE,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChG,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;IAEnF,oCAAoC;IACpC,yBAAyB,CAAC,EAAE,EAAE,SAAS,EAAE,qBAAqB,CAAC,CAAC;IAEhE,wBAAwB;IACxB,IAAI,OAAO,GAAuB,IAAI,CAAC;IACvC,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,GAAG,IAAI,WAAW,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtG,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qCAAqC;IACrC,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE;QACzE,WAAW,EAAE,YAAY;QACzB,cAAc,EAAE,eAAe;QAC/B,YAAY,EAAE,aAAa;QAC3B,YAAY;QACZ,SAAS;QACT,QAAQ;KACT,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,2EAA2E;IAC3E,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;QACxC,IAAI,CAAC;YACH,IAAI,OAAO;gBAAE,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;YAC1B,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC/B,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAChD,CAAC;YACD,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,8FAA8F;AAC9F,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE;IACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AACH,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE;IAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH,SAAS,yBAAyB,CAChC,EAAqC,EACrC,gBAAwB,EACxB,MAAc;IAEd,IAAI,MAAM,KAAK,WAAW;QAAE,OAAO;IAEnC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,+BAA+B,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QAC1B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QACxC,2BAA2B,CAAC,EAAE,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,kDAAkD,MAAM,+BAA+B,CACxF,CAAC;AACJ,CAAC"}
@@ -1,13 +1,20 @@
1
1
  import type Database from 'better-sqlite3';
2
- import type { IndexResult } from '../types.js';
2
+ import type { IndexResult, ParsedImport } from '../types.js';
3
3
  import { type AstDiffResult } from '../memory/ast-diff.js';
4
+ import { type SummarizerOptions } from './summarizer.js';
5
+ /** Glob patterns per language name (as used in EXTENSION_MAP). */
6
+ export declare const LANGUAGE_PATTERNS: Record<string, string[]>;
4
7
  export interface IndexerOptions {
5
8
  db: Database.Database;
6
9
  projectRoot: string;
7
10
  languages?: string[];
8
11
  ignorePatterns?: string[];
9
12
  generateSummaries?: boolean;
13
+ summarizerOptions?: SummarizerOptions;
10
14
  documentPatterns?: string[];
15
+ /** 0 = run parsing synchronously on main (test / small-project mode).
16
+ * undefined = auto-select based on CPU count. */
17
+ maxParseWorkers?: number;
11
18
  }
12
19
  export interface IndexAllOptions {
13
20
  additionalPaths?: string[];
@@ -25,16 +32,28 @@ export declare class Indexer {
25
32
  private readonly languages;
26
33
  private readonly ignorePatterns;
27
34
  private readonly generateSummaries;
35
+ private readonly summarizer;
28
36
  private readonly documentPatterns;
37
+ private pool;
38
+ private readonly configuredMaxWorkers;
39
+ private lastImportsCache;
29
40
  constructor(options: IndexerOptions);
30
41
  /** Discovers and indexes all source files and document files in the project root. */
31
42
  indexAll(options?: IndexAllOptions): Promise<IndexResult>;
32
43
  /** Indexes (or re-indexes) a single file given its project-relative path. */
33
44
  indexFile(relativePath: string, force?: boolean): Promise<IndexFileResult>;
45
+ /** Everything that happens after a file has been read, parsed, and hashed.
46
+ * Runs entirely on the main thread: summarizer → AST diff → DB transaction. */
47
+ private processParsedFile;
34
48
  /** Indexes (or re-indexes) a single document file given its project-relative path. */
35
49
  indexDocument(relativePath: string, force?: boolean): Promise<IndexFileResult>;
36
- /** Second-pass: resolves import strings to file IDs and stores dependencies. */
37
- resolveDependencies(): Promise<void>;
50
+ /** Resolves import strings to file IDs and stores dependencies.
51
+ * Fast path: pass an importsCache built during indexAll() to skip re-reading
52
+ * and re-parsing every file. Slow path (no cache) re-parses as before. */
53
+ resolveDependencies(importsCache?: Map<string, ParsedImport[]>): Promise<void>;
54
+ /** Terminates any worker threads owned by the parse pool. Safe to call
55
+ * multiple times; no-op when no pool was ever constructed. */
56
+ closePool(): Promise<void>;
38
57
  /** Resolves a relative import path to a project-relative file path. */
39
58
  private resolveImportPath;
40
59
  }