@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.
- package/README.md +345 -196
- package/dist/cli.js +133 -12
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/indexer/db.d.ts.map +1 -1
- package/dist/indexer/db.js +96 -2
- package/dist/indexer/db.js.map +1 -1
- package/dist/indexer/docs.d.ts +42 -0
- package/dist/indexer/docs.d.ts.map +1 -0
- package/dist/indexer/docs.js +214 -0
- package/dist/indexer/docs.js.map +1 -0
- package/dist/indexer/embedder.d.ts +7 -0
- package/dist/indexer/embedder.d.ts.map +1 -1
- package/dist/indexer/embedder.js +10 -0
- package/dist/indexer/embedder.js.map +1 -1
- package/dist/indexer/extractors/types.d.ts +22 -0
- package/dist/indexer/extractors/types.d.ts.map +1 -1
- package/dist/indexer/extractors/types.js +12 -0
- package/dist/indexer/extractors/types.js.map +1 -1
- package/dist/indexer/extractors/typescript.d.ts +1 -1
- package/dist/indexer/extractors/typescript.d.ts.map +1 -1
- package/dist/indexer/extractors/typescript.js +38 -8
- package/dist/indexer/extractors/typescript.js.map +1 -1
- package/dist/indexer/git-hooks.d.ts +1 -0
- package/dist/indexer/git-hooks.d.ts.map +1 -1
- package/dist/indexer/git-hooks.js +3 -2
- package/dist/indexer/git-hooks.js.map +1 -1
- package/dist/indexer/index.d.ts +32 -7
- package/dist/indexer/index.d.ts.map +1 -1
- package/dist/indexer/index.js +427 -15
- package/dist/indexer/index.js.map +1 -1
- package/dist/indexer/lsp/client.d.ts +61 -0
- package/dist/indexer/lsp/client.d.ts.map +1 -0
- package/dist/indexer/lsp/client.js +217 -0
- package/dist/indexer/lsp/client.js.map +1 -0
- package/dist/indexer/lsp/config.d.ts +16 -0
- package/dist/indexer/lsp/config.d.ts.map +1 -0
- package/dist/indexer/lsp/config.js +78 -0
- package/dist/indexer/lsp/config.js.map +1 -0
- package/dist/indexer/lsp/enrichment.d.ts +55 -0
- package/dist/indexer/lsp/enrichment.d.ts.map +1 -0
- package/dist/indexer/lsp/enrichment.js +211 -0
- package/dist/indexer/lsp/enrichment.js.map +1 -0
- package/dist/indexer/lsp/registry.d.ts +19 -0
- package/dist/indexer/lsp/registry.d.ts.map +1 -0
- package/dist/indexer/lsp/registry.js +118 -0
- package/dist/indexer/lsp/registry.js.map +1 -0
- package/dist/indexer/parser.d.ts +7 -0
- package/dist/indexer/parser.d.ts.map +1 -1
- package/dist/indexer/parser.js +3 -1
- package/dist/indexer/parser.js.map +1 -1
- package/dist/indexer/poller.d.ts +7 -0
- package/dist/indexer/poller.d.ts.map +1 -1
- package/dist/indexer/poller.js +6 -0
- package/dist/indexer/poller.js.map +1 -1
- package/dist/indexer/walker.d.ts +22 -0
- package/dist/indexer/walker.d.ts.map +1 -1
- package/dist/indexer/walker.js +15 -0
- package/dist/indexer/walker.js.map +1 -1
- package/dist/indexer/watcher.d.ts +7 -0
- package/dist/indexer/watcher.d.ts.map +1 -1
- package/dist/indexer/watcher.js +6 -0
- package/dist/indexer/watcher.js.map +1 -1
- package/dist/kb-server/db.d.ts +82 -0
- package/dist/kb-server/db.d.ts.map +1 -1
- package/dist/kb-server/db.js +239 -0
- package/dist/kb-server/db.js.map +1 -1
- package/dist/kb-server/server.d.ts +1 -0
- package/dist/kb-server/server.d.ts.map +1 -1
- package/dist/kb-server/server.js +23 -2
- package/dist/kb-server/server.js.map +1 -1
- package/dist/kb-server/tools/architecture.d.ts +7 -0
- package/dist/kb-server/tools/architecture.d.ts.map +1 -1
- package/dist/kb-server/tools/architecture.js +35 -0
- package/dist/kb-server/tools/architecture.js.map +1 -1
- package/dist/kb-server/tools/docs.d.ts +78 -0
- package/dist/kb-server/tools/docs.d.ts.map +1 -0
- package/dist/kb-server/tools/docs.js +136 -0
- package/dist/kb-server/tools/docs.js.map +1 -0
- package/dist/kb-server/tools/lookup.d.ts.map +1 -1
- package/dist/kb-server/tools/lookup.js +5 -4
- package/dist/kb-server/tools/lookup.js.map +1 -1
- package/dist/kb-server/tools/notes.d.ts +1 -1
- package/dist/kb-server/tools/notes.d.ts.map +1 -1
- package/dist/kb-server/tools/notes.js +35 -0
- package/dist/kb-server/tools/notes.js.map +1 -1
- package/dist/kb-server/tools/search.d.ts +29 -10
- package/dist/kb-server/tools/search.d.ts.map +1 -1
- package/dist/kb-server/tools/search.js +101 -21
- package/dist/kb-server/tools/search.js.map +1 -1
- 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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
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
|
|
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(
|
|
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":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/kb-server/tools/search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AA8BrD,iFAAiF;AAEjF,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,IAAI,EAAE,WAAW;IACjB,WAAW,EACT,yFAAyF;QACzF,sDAAsD;QACtD,+FAA+F;QAC/F,oEAAoE;IACtE,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,sBAAsB;aACpC;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC;gBACzC,WAAW,EAAE,sCAAsC;aACpD;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mDAAmD;aACjE;SACF;QACD,QAAQ,EAAE,CAAC,OAAO,CAAC;KACpB;CACO,CAAC;AA+CX;;;;;;;GAOG;AACH,SAAS,iBAAiB,CAAC,KAAa;IACtC,gFAAgF;IAChF,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;AAC1C,CAAC;AAED,SAAS,0BAA0B,CAAC,EAAqB;IACvD,IAAI,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,GAAG,EAA6B,CAAC;QACvF,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,CACvC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAC/D,CAAC;IAEF,OAAO;QACL,MAAM,CAAC,yBAAyB,CAAC;QACjC,MAAM,CAAC,sBAAsB,CAAC;QAC9B,MAAM,CAAC,gBAAgB,CAAC;QACxB,MAAM,CAAC,iBAAiB,CAAC;KAC1B,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAChC,CAAC;AAED,gEAAgE;AAChE,SAAS,gBAAgB,CACvB,EAAqB,EACrB,KAAa,EACb,KAAa,EACb,MAAe;IAEf,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG;;;kBAGE,oBAAoB;;;;;;qCAMD,YAAY;;mBAE9B,CAAC;QAChB,MAAM,MAAM,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACtF,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAyB,CAAC;QACpE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,qDAAqD;QACrD,MAAM,SAAS,GAAG,IAAI,KAAK,GAAG,CAAC;QAC/B,MAAM,GAAG,GAAG;;;kBAGE,oBAAoB;;;;;+BAKP,YAAY;mBACxB,CAAC;QAChB,MAAM,MAAM,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACtF,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAyB,CAAC;IAChE,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,EAAqB,EAAE,IAAY;IAC1D,MAAM,GAAG,GAAG,EAAE;SACX,OAAO,CACN,sGAAsG,CACvG;SACA,GAAG,CAAC,IAAI,CAAoC,CAAC;IAChD,OAAO,GAAG,EAAE,OAAO,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,oBAAoB,CAC3B,EAAqB,EACrB,WAAqB,EACrB,KAAa,EACb,MAAe;IAEf,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,mBAAmB,CAAC,EAAE,CAAC;QAC9C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,MAAM,UAAU,GAAG,0BAA0B,CAAC,EAAE,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG;;;gBAGE,UAAU;;;;;;iCAMO,YAAY;;gBAE7B,CAAC;IACf,MAAM,MAAM,GAAG,MAAM,KAAK,SAAS;QACjC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC;QAC9C,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAyB,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAC/B,EAAqB,EACrB,WAAqB,EACrB,KAAa,EACb,MAAe;IAEf,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,wBAAwB,CAAC,EAAE,CAAC;QACnD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,yBAAyB,CAAC,EAAE,EAAE;YACzC,WAAW;YACX,MAAM;YACN,KAAK;SACN,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxB,WAAW,EAAE,aAAa;YAC1B,cAAc,EAAE,GAAG,CAAC,EAAE;YACtB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,IAAI,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,SAAS;YAChC,IAAI,EAAE,aAAa;YACnB,SAAS,EAAE,GAAG,CAAC,QAAQ;YACvB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,MAAM,EAAE,GAAG,CAAC,UAAU;SACvB,CAAC,CAAC,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,cAAc,CAC3B,EAAqB,EACrB,KAAa,EACb,KAAa,EACb,QAA2B,EAC3B,MAAe;IAEf,IAAI,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE3B,MAAM,UAAU,GAAG,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,wBAAwB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC;aACrC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;aACjC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAEnB,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,OAAO,CACd,UAAgC,EAChC,QAAmC,EACnC,KAAa;IAEb,MAAM,CAAC,GAAG,EAAE,CAAC;IACb,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqD,CAAC;IAE5E,MAAM,SAAS,GAAG,CAAC,IAAsB,EAAU,EAAE,CACnD,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5F,MAAM,OAAO,GAAG,CAAC,IAAwB,EAAQ,EAAE;QACjD,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YACzB,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;YAClC,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,CAAC,UAAU,CAAC,CAAC;IACpB,IAAI,QAAQ;QAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEhC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;SAC/B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;SACjC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;SACf,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,EAAqB,EACrB,IAAgB,EAChB,QAA4B,EAC5B,QAAyB;IAEzB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC;IAEvC,MAAM,UAAU,GAAG,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAExE,IAAI,MAAoB,CAAC;IAEzB,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,MAAM,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;IAC5D,CAAC;SAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrB,0EAA0E;QAC1E,MAAM,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,qCAAqC,EAAE,CAAC;IACrF,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAEpF,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,MAAM,GAAG,QAAQ;gBACf,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE;gBAC9C,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,sCAAsC,EAAE,CAAC;QACjF,CAAC;aAAM,CAAC;YACN,mBAAmB;YACnB,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YACnD,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,sCAAsC,CAAC;YAC7E,MAAM,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;QACnD,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC;YACH,QAAQ,CAAC;gBACP,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,aAAa,EAAE,IAAI;gBACnB,QAAQ,EAAE,MAAM,CAAC,SAAS;gBAC1B,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;gBAClC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;gBACrE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;gBAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,2CAA2C;QAC7C,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jafreck/lore",
|
|
3
|
-
"version": "0.2.
|
|
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.
|
|
64
|
+
"tree-sitter": "0.22.4",
|
|
65
65
|
"tree-sitter-bash": "^0.25.1",
|
|
66
|
-
"tree-sitter-c": "0.
|
|
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.
|
|
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.
|
|
82
|
+
"tree-sitter-python": "0.23.6",
|
|
83
83
|
"tree-sitter-ruby": "^0.23.1",
|
|
84
|
-
"tree-sitter-rust": "0.
|
|
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": "^
|
|
93
|
+
"@types/node": "^25",
|
|
94
94
|
"@vitest/coverage-v8": "^4.0",
|
|
95
95
|
"typescript": "^5.9",
|
|
96
96
|
"vitest": "^4.0"
|