@jafreck/lore 0.2.0 → 0.2.1

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 (93) hide show
  1. package/README.md +345 -196
  2. package/dist/cli.js +133 -12
  3. package/dist/cli.js.map +1 -1
  4. package/dist/index.d.ts +1 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/indexer/db.d.ts.map +1 -1
  8. package/dist/indexer/db.js +96 -2
  9. package/dist/indexer/db.js.map +1 -1
  10. package/dist/indexer/docs.d.ts +42 -0
  11. package/dist/indexer/docs.d.ts.map +1 -0
  12. package/dist/indexer/docs.js +214 -0
  13. package/dist/indexer/docs.js.map +1 -0
  14. package/dist/indexer/embedder.d.ts +7 -0
  15. package/dist/indexer/embedder.d.ts.map +1 -1
  16. package/dist/indexer/embedder.js +10 -0
  17. package/dist/indexer/embedder.js.map +1 -1
  18. package/dist/indexer/extractors/types.d.ts +22 -0
  19. package/dist/indexer/extractors/types.d.ts.map +1 -1
  20. package/dist/indexer/extractors/types.js +12 -0
  21. package/dist/indexer/extractors/types.js.map +1 -1
  22. package/dist/indexer/extractors/typescript.d.ts +1 -1
  23. package/dist/indexer/extractors/typescript.d.ts.map +1 -1
  24. package/dist/indexer/extractors/typescript.js +38 -8
  25. package/dist/indexer/extractors/typescript.js.map +1 -1
  26. package/dist/indexer/git-hooks.d.ts +1 -0
  27. package/dist/indexer/git-hooks.d.ts.map +1 -1
  28. package/dist/indexer/git-hooks.js +3 -2
  29. package/dist/indexer/git-hooks.js.map +1 -1
  30. package/dist/indexer/index.d.ts +32 -7
  31. package/dist/indexer/index.d.ts.map +1 -1
  32. package/dist/indexer/index.js +427 -15
  33. package/dist/indexer/index.js.map +1 -1
  34. package/dist/indexer/lsp/client.d.ts +61 -0
  35. package/dist/indexer/lsp/client.d.ts.map +1 -0
  36. package/dist/indexer/lsp/client.js +217 -0
  37. package/dist/indexer/lsp/client.js.map +1 -0
  38. package/dist/indexer/lsp/config.d.ts +16 -0
  39. package/dist/indexer/lsp/config.d.ts.map +1 -0
  40. package/dist/indexer/lsp/config.js +78 -0
  41. package/dist/indexer/lsp/config.js.map +1 -0
  42. package/dist/indexer/lsp/enrichment.d.ts +55 -0
  43. package/dist/indexer/lsp/enrichment.d.ts.map +1 -0
  44. package/dist/indexer/lsp/enrichment.js +211 -0
  45. package/dist/indexer/lsp/enrichment.js.map +1 -0
  46. package/dist/indexer/lsp/registry.d.ts +19 -0
  47. package/dist/indexer/lsp/registry.d.ts.map +1 -0
  48. package/dist/indexer/lsp/registry.js +118 -0
  49. package/dist/indexer/lsp/registry.js.map +1 -0
  50. package/dist/indexer/parser.d.ts +7 -0
  51. package/dist/indexer/parser.d.ts.map +1 -1
  52. package/dist/indexer/parser.js +3 -1
  53. package/dist/indexer/parser.js.map +1 -1
  54. package/dist/indexer/poller.d.ts +7 -0
  55. package/dist/indexer/poller.d.ts.map +1 -1
  56. package/dist/indexer/poller.js +6 -0
  57. package/dist/indexer/poller.js.map +1 -1
  58. package/dist/indexer/walker.d.ts +22 -0
  59. package/dist/indexer/walker.d.ts.map +1 -1
  60. package/dist/indexer/walker.js +15 -0
  61. package/dist/indexer/walker.js.map +1 -1
  62. package/dist/indexer/watcher.d.ts +7 -0
  63. package/dist/indexer/watcher.d.ts.map +1 -1
  64. package/dist/indexer/watcher.js +6 -0
  65. package/dist/indexer/watcher.js.map +1 -1
  66. package/dist/kb-server/db.d.ts +82 -0
  67. package/dist/kb-server/db.d.ts.map +1 -1
  68. package/dist/kb-server/db.js +239 -0
  69. package/dist/kb-server/db.js.map +1 -1
  70. package/dist/kb-server/server.d.ts +1 -0
  71. package/dist/kb-server/server.d.ts.map +1 -1
  72. package/dist/kb-server/server.js +23 -2
  73. package/dist/kb-server/server.js.map +1 -1
  74. package/dist/kb-server/tools/architecture.d.ts +7 -0
  75. package/dist/kb-server/tools/architecture.d.ts.map +1 -1
  76. package/dist/kb-server/tools/architecture.js +35 -0
  77. package/dist/kb-server/tools/architecture.js.map +1 -1
  78. package/dist/kb-server/tools/docs.d.ts +78 -0
  79. package/dist/kb-server/tools/docs.d.ts.map +1 -0
  80. package/dist/kb-server/tools/docs.js +136 -0
  81. package/dist/kb-server/tools/docs.js.map +1 -0
  82. package/dist/kb-server/tools/lookup.d.ts.map +1 -1
  83. package/dist/kb-server/tools/lookup.js +5 -4
  84. package/dist/kb-server/tools/lookup.js.map +1 -1
  85. package/dist/kb-server/tools/notes.d.ts +1 -1
  86. package/dist/kb-server/tools/notes.d.ts.map +1 -1
  87. package/dist/kb-server/tools/notes.js +35 -0
  88. package/dist/kb-server/tools/notes.js.map +1 -1
  89. package/dist/kb-server/tools/search.d.ts +29 -10
  90. package/dist/kb-server/tools/search.d.ts.map +1 -1
  91. package/dist/kb-server/tools/search.js +101 -21
  92. package/dist/kb-server/tools/search.js.map +1 -1
  93. package/package.json +7 -7
@@ -11,6 +11,7 @@
11
11
  * Semantic and fused modes fall back to structural-only when no EmbeddingProvider
12
12
  * is supplied, clearly indicating the degradation in `mode_used`.
13
13
  */
14
+ import { semanticSearchDocSections } from '../db.js';
14
15
  // ─── Tool definition ──────────────────────────────────────────────────────────
15
16
  export const toolDef = {
16
17
  name: 'kb_search',
@@ -50,13 +51,33 @@ function sanitizeFts5Query(query) {
50
51
  // Escape interior double-quotes, then wrap in double-quotes for a phrase query.
51
52
  return `"${query.replace(/"/g, '""')}"`;
52
53
  }
54
+ function symbolEnrichmentProjection(db) {
55
+ let columns = new Set();
56
+ try {
57
+ const rows = db.prepare('PRAGMA table_info(symbols)').all();
58
+ columns = new Set(rows.map((row) => row.name));
59
+ }
60
+ catch {
61
+ columns = new Set();
62
+ }
63
+ const column = (name) => (columns.has(name) ? `s.${name} AS ${name}` : `NULL AS ${name}`);
64
+ return [
65
+ column('resolved_type_signature'),
66
+ column('resolved_return_type'),
67
+ column('definition_uri'),
68
+ column('definition_path'),
69
+ ].join(',\n ');
70
+ }
53
71
  /** Run a structural BM25 FTS5 search and return ranked rows. */
54
72
  function structuralSearch(db, query, limit, branch) {
55
73
  const safeQuery = sanitizeFts5Query(query);
56
74
  const branchClause = branch !== undefined ? ' AND f.branch = ?' : '';
75
+ const enrichmentProjection = symbolEnrichmentProjection(db);
57
76
  try {
58
- const sql = `SELECT s.id AS symbol_id, s.name, s.kind, f.path AS file_path,
77
+ const sql = `SELECT 'symbol' AS result_type,
78
+ s.id AS symbol_id, s.name, s.kind, f.path AS file_path,
59
79
  s.start_line, s.end_line,
80
+ ${enrichmentProjection},
60
81
  bm25(symbols_fts) AS score,
61
82
  f.branch AS branch
62
83
  FROM symbols_fts
@@ -64,7 +85,7 @@ function structuralSearch(db, query, limit, branch) {
64
85
  JOIN files f ON f.id = s.file_id
65
86
  WHERE symbols_fts MATCH ?${branchClause}
66
87
  ORDER BY score
67
- LIMIT ?`;
88
+ LIMIT ?`;
68
89
  const params = branch !== undefined ? [safeQuery, branch, limit] : [safeQuery, limit];
69
90
  const rows = db.prepare(sql).all(...params);
70
91
  return rows;
@@ -72,18 +93,85 @@ function structuralSearch(db, query, limit, branch) {
72
93
  catch {
73
94
  // FTS5 parse error — fall back to LIKE-based search.
74
95
  const likeQuery = `%${query}%`;
75
- const sql = `SELECT s.id AS symbol_id, s.name, s.kind, f.path AS file_path,
96
+ const sql = `SELECT 'symbol' AS result_type,
97
+ s.id AS symbol_id, s.name, s.kind, f.path AS file_path,
76
98
  s.start_line, s.end_line,
99
+ ${enrichmentProjection},
77
100
  0.0 AS score,
78
101
  f.branch AS branch
79
102
  FROM symbols s
80
103
  JOIN files f ON f.id = s.file_id
81
104
  WHERE s.name LIKE ?${branchClause}
82
- LIMIT ?`;
105
+ LIMIT ?`;
83
106
  const params = branch !== undefined ? [likeQuery, branch, limit] : [likeQuery, limit];
84
107
  return db.prepare(sql).all(...params);
85
108
  }
86
109
  }
110
+ function hasVirtualTable(db, name) {
111
+ const row = db
112
+ .prepare("SELECT 1 AS present FROM sqlite_master WHERE type IN ('table', 'virtual table') AND name = ? LIMIT 1")
113
+ .get(name);
114
+ return row?.present === 1;
115
+ }
116
+ function semanticSymbolSearch(db, queryVector, limit, branch) {
117
+ if (!hasVirtualTable(db, 'symbol_embeddings')) {
118
+ return [];
119
+ }
120
+ const branchClause = branch !== undefined ? ' AND f.branch = ?' : '';
121
+ const enrichment = symbolEnrichmentProjection(db);
122
+ const sql = `SELECT 'symbol' AS result_type,
123
+ s.id AS symbol_id, s.name, s.kind, f.path AS file_path,
124
+ s.start_line, s.end_line,
125
+ ${enrichment},
126
+ distance AS score,
127
+ f.branch AS branch
128
+ FROM symbol_embeddings
129
+ JOIN symbols s ON s.rowid = symbol_embeddings.rowid
130
+ JOIN files f ON f.id = s.file_id
131
+ WHERE embedding MATCH ?${branchClause}
132
+ ORDER BY distance
133
+ LIMIT ?`;
134
+ const params = branch !== undefined
135
+ ? [JSON.stringify(queryVector), branch, limit]
136
+ : [JSON.stringify(queryVector), limit];
137
+ try {
138
+ return db.prepare(sql).all(...params);
139
+ }
140
+ catch {
141
+ return [];
142
+ }
143
+ }
144
+ function semanticDocSectionSearch(db, queryVector, limit, branch) {
145
+ if (!hasVirtualTable(db, 'doc_section_embeddings')) {
146
+ return [];
147
+ }
148
+ try {
149
+ const rows = semanticSearchDocSections(db, {
150
+ queryVector,
151
+ branch,
152
+ limit,
153
+ });
154
+ return rows.map((row) => ({
155
+ result_type: 'doc_section',
156
+ doc_section_id: row.id,
157
+ doc_id: row.doc_id,
158
+ doc_kind: row.doc_kind,
159
+ doc_title: row.doc_title,
160
+ section_index: row.section_index,
161
+ heading_path: row.heading_path,
162
+ name: row.title || row.doc_title,
163
+ kind: 'doc_section',
164
+ file_path: row.doc_path,
165
+ start_line: row.line_start,
166
+ end_line: row.line_end,
167
+ score: row.score,
168
+ branch: row.doc_branch,
169
+ }));
170
+ }
171
+ catch {
172
+ return [];
173
+ }
174
+ }
87
175
  /**
88
176
  * Attempt a semantic (cosine) search via the vec0 virtual table.
89
177
  * Returns `null` when no embedder is available or the table has no rows.
@@ -93,21 +181,11 @@ async function semanticSearch(db, query, limit, embedder, branch) {
93
181
  const [queryVec] = await embedder.embed([query]);
94
182
  if (!queryVec)
95
183
  return null;
96
- const branchClause = branch !== undefined ? ' AND f.branch = ?' : '';
97
- const sql = `SELECT s.id AS symbol_id, s.name, s.kind, f.path AS file_path,
98
- s.start_line, s.end_line,
99
- distance AS score,
100
- f.branch AS branch
101
- FROM symbol_embeddings
102
- JOIN symbols s ON s.rowid = symbol_embeddings.rowid
103
- JOIN files f ON f.id = s.file_id
104
- WHERE embedding MATCH ?${branchClause}
105
- ORDER BY distance
106
- LIMIT ?`;
107
- const params = branch !== undefined
108
- ? [JSON.stringify(queryVec), branch, limit]
109
- : [JSON.stringify(queryVec), limit];
110
- const rows = db.prepare(sql).all(...params);
184
+ const symbolRows = semanticSymbolSearch(db, queryVec, limit, branch);
185
+ const docRows = semanticDocSectionSearch(db, queryVec, limit, branch);
186
+ const rows = [...symbolRows, ...docRows]
187
+ .sort((a, b) => a.score - b.score)
188
+ .slice(0, limit);
111
189
  return rows.length > 0 ? rows : null;
112
190
  }
113
191
  catch {
@@ -123,15 +201,17 @@ async function semanticSearch(db, query, limit, embedder, branch) {
123
201
  function rrfFuse(structural, semantic, limit) {
124
202
  const k = 60;
125
203
  const scores = new Map();
204
+ const resultKey = (item) => item.result_type === 'symbol' ? `symbol:${item.symbol_id}` : `doc:${item.doc_section_id}`;
126
205
  const addList = (list) => {
127
206
  list.forEach((item, idx) => {
128
- const existing = scores.get(item.symbol_id);
207
+ const key = resultKey(item);
208
+ const existing = scores.get(key);
129
209
  const contrib = 1 / (k + idx + 1);
130
210
  if (existing) {
131
211
  existing.score += contrib;
132
212
  }
133
213
  else {
134
- scores.set(item.symbol_id, { item, score: contrib });
214
+ scores.set(key, { item, score: contrib });
135
215
  }
136
216
  });
137
217
  };
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/kb-server/tools/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/kb-server/tools/search.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jafreck/lore",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Language-aware codebase indexer — tree-sitter parsing, symbol extraction, call-graph construction, and optional embeddings for semantic search",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -61,13 +61,13 @@
61
61
  "fast-glob": "^3.3.3",
62
62
  "simple-git": "^3.32.3",
63
63
  "sqlite-vec": "^0.1.6",
64
- "tree-sitter": "0.21.1",
64
+ "tree-sitter": "0.22.4",
65
65
  "tree-sitter-bash": "^0.25.1",
66
- "tree-sitter-c": "0.23.2",
66
+ "tree-sitter-c": "0.24.1",
67
67
  "tree-sitter-c-sharp": "0.23.1",
68
68
  "tree-sitter-cpp": "0.23.4",
69
69
  "tree-sitter-dart": "^1.0.0",
70
- "tree-sitter-elixir": "^0.3.4",
70
+ "tree-sitter-elixir": "^0.3.5",
71
71
  "tree-sitter-elm": "^4.5.0",
72
72
  "tree-sitter-go": "0.23.4",
73
73
  "tree-sitter-haskell": "^0.23.1",
@@ -79,9 +79,9 @@
79
79
  "tree-sitter-objc": "^3.0.2",
80
80
  "tree-sitter-ocaml": "^0.24.2",
81
81
  "tree-sitter-php": "^0.24.2",
82
- "tree-sitter-python": "0.23.4",
82
+ "tree-sitter-python": "0.23.6",
83
83
  "tree-sitter-ruby": "^0.23.1",
84
- "tree-sitter-rust": "0.23.1",
84
+ "tree-sitter-rust": "0.24.0",
85
85
  "tree-sitter-scala": "^0.24.0",
86
86
  "tree-sitter-swift": "^0.7.1",
87
87
  "tree-sitter-typescript": "0.23.2",
@@ -90,7 +90,7 @@
90
90
  },
91
91
  "devDependencies": {
92
92
  "@types/better-sqlite3": "^7.6.13",
93
- "@types/node": "^22",
93
+ "@types/node": "^25",
94
94
  "@vitest/coverage-v8": "^4.0",
95
95
  "typescript": "^5.9",
96
96
  "vitest": "^4.0"