@tienne/gestalt 0.87.0 → 0.88.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +6 -2
- package/dist/bin/gestalt-hook.d.ts +5 -0
- package/dist/bin/gestalt-hook.d.ts.map +1 -0
- package/dist/bin/gestalt-hook.js +51 -0
- package/dist/bin/gestalt-hook.js.map +1 -0
- package/dist/package.json +4 -3
- package/dist/plugin/skills/blast-radius/SKILL.md +11 -1
- package/dist/plugin/skills/diff-radius/SKILL.md +11 -0
- package/dist/schemas/gestalt.schema.json +19 -0
- package/dist/src/code-graph/cochange.d.ts +40 -0
- package/dist/src/code-graph/cochange.d.ts.map +1 -1
- package/dist/src/code-graph/cochange.js +88 -3
- package/dist/src/code-graph/cochange.js.map +1 -1
- package/dist/src/code-graph/engine.d.ts +35 -1
- package/dist/src/code-graph/engine.d.ts.map +1 -1
- package/dist/src/code-graph/engine.js +300 -55
- package/dist/src/code-graph/engine.js.map +1 -1
- package/dist/src/code-graph/freshness.d.ts +39 -0
- package/dist/src/code-graph/freshness.d.ts.map +1 -0
- package/dist/src/code-graph/freshness.js +93 -0
- package/dist/src/code-graph/freshness.js.map +1 -0
- package/dist/src/code-graph/hooks/background.d.ts +18 -0
- package/dist/src/code-graph/hooks/background.d.ts.map +1 -0
- package/dist/src/code-graph/hooks/background.js +55 -0
- package/dist/src/code-graph/hooks/background.js.map +1 -0
- package/dist/src/code-graph/hooks/pointers.d.ts +66 -0
- package/dist/src/code-graph/hooks/pointers.d.ts.map +1 -0
- package/dist/src/code-graph/hooks/pointers.js +292 -0
- package/dist/src/code-graph/hooks/pointers.js.map +1 -0
- package/dist/src/code-graph/hooks/rank.d.ts +36 -0
- package/dist/src/code-graph/hooks/rank.d.ts.map +1 -0
- package/dist/src/code-graph/hooks/rank.js +212 -0
- package/dist/src/code-graph/hooks/rank.js.map +1 -0
- package/dist/src/code-graph/hooks/run.d.ts +37 -0
- package/dist/src/code-graph/hooks/run.d.ts.map +1 -0
- package/dist/src/code-graph/hooks/run.js +324 -0
- package/dist/src/code-graph/hooks/run.js.map +1 -0
- package/dist/src/code-graph/hooks/settings.d.ts +11 -0
- package/dist/src/code-graph/hooks/settings.d.ts.map +1 -0
- package/dist/src/code-graph/hooks/settings.js +25 -0
- package/dist/src/code-graph/hooks/settings.js.map +1 -0
- package/dist/src/code-graph/hooks/state.d.ts +20 -0
- package/dist/src/code-graph/hooks/state.d.ts.map +1 -0
- package/dist/src/code-graph/hooks/state.js +73 -0
- package/dist/src/code-graph/hooks/state.js.map +1 -0
- package/dist/src/code-graph/index.d.ts +6 -2
- package/dist/src/code-graph/index.d.ts.map +1 -1
- package/dist/src/code-graph/index.js +3 -1
- package/dist/src/code-graph/index.js.map +1 -1
- package/dist/src/code-graph/ko-text.d.ts +39 -0
- package/dist/src/code-graph/ko-text.d.ts.map +1 -0
- package/dist/src/code-graph/ko-text.js +223 -0
- package/dist/src/code-graph/ko-text.js.map +1 -0
- package/dist/src/code-graph/lock.d.ts +30 -0
- package/dist/src/code-graph/lock.d.ts.map +1 -0
- package/dist/src/code-graph/lock.js +140 -0
- package/dist/src/code-graph/lock.js.map +1 -0
- package/dist/src/code-graph/plugins/typescript-skeleton.d.ts +7 -0
- package/dist/src/code-graph/plugins/typescript-skeleton.d.ts.map +1 -0
- package/dist/src/code-graph/plugins/typescript-skeleton.js +157 -0
- package/dist/src/code-graph/plugins/typescript-skeleton.js.map +1 -0
- package/dist/src/code-graph/plugins/typescript.d.ts.map +1 -1
- package/dist/src/code-graph/plugins/typescript.js +58 -0
- package/dist/src/code-graph/plugins/typescript.js.map +1 -1
- package/dist/src/code-graph/storage.d.ts +85 -0
- package/dist/src/code-graph/storage.d.ts.map +1 -1
- package/dist/src/code-graph/storage.js +318 -3
- package/dist/src/code-graph/storage.js.map +1 -1
- package/dist/src/code-graph/types.d.ts +66 -0
- package/dist/src/code-graph/types.d.ts.map +1 -1
- package/dist/src/core/config.d.ts +33 -0
- package/dist/src/core/config.d.ts.map +1 -1
- package/dist/src/core/config.js +14 -0
- package/dist/src/core/config.js.map +1 -1
- package/dist/src/core/hooks-env.d.ts +9 -0
- package/dist/src/core/hooks-env.d.ts.map +1 -0
- package/dist/src/core/hooks-env.js +16 -0
- package/dist/src/core/hooks-env.js.map +1 -0
- package/dist/src/mcp/schemas.d.ts +9 -3
- package/dist/src/mcp/schemas.d.ts.map +1 -1
- package/dist/src/mcp/schemas.js +19 -2
- package/dist/src/mcp/schemas.js.map +1 -1
- package/dist/src/mcp/server.d.ts.map +1 -1
- package/dist/src/mcp/server.js +21 -3
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/mcp/tools/code-graph-passthrough.d.ts +6 -1
- package/dist/src/mcp/tools/code-graph-passthrough.d.ts.map +1 -1
- package/dist/src/mcp/tools/code-graph-passthrough.js +95 -6
- package/dist/src/mcp/tools/code-graph-passthrough.js.map +1 -1
- package/package.json +4 -3
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/.mcp.json +1 -1
- package/plugin/mcp.json +1 -1
- package/plugin/skills/blast-radius/SKILL.md +11 -1
- package/plugin/skills/diff-radius/SKILL.md +11 -0
- package/schemas/gestalt.schema.json +19 -0
|
@@ -2,6 +2,7 @@ import { createRequire } from 'node:module';
|
|
|
2
2
|
import { statSync, existsSync, mkdirSync } from 'node:fs';
|
|
3
3
|
import { dirname } from 'node:path';
|
|
4
4
|
import { SQLITE_BUSY_TIMEOUT_MS } from '../core/constants.js';
|
|
5
|
+
import { koreanTerms } from './ko-text.js';
|
|
5
6
|
const _require = createRequire(import.meta.url);
|
|
6
7
|
function loadSqlite() {
|
|
7
8
|
const mod = _require('better-sqlite3');
|
|
@@ -22,6 +23,7 @@ function toNode(row) {
|
|
|
22
23
|
isTest: row.is_test === 1,
|
|
23
24
|
fileHash: row.file_hash ?? undefined,
|
|
24
25
|
updatedAt: row.updated_at,
|
|
26
|
+
doc: row.doc ?? undefined,
|
|
25
27
|
};
|
|
26
28
|
}
|
|
27
29
|
function toEmbedding(row) {
|
|
@@ -62,6 +64,10 @@ function toEdge(row) {
|
|
|
62
64
|
* 그래서 `capped`로 따로 알린다 — 출력 `limit`에 잘린 것과 사유가 다르다.
|
|
63
65
|
*/
|
|
64
66
|
export const MAX_MATCHED_ROWS = 10_000;
|
|
67
|
+
const TEXT_DOCS_KEY = 'text_index_docs';
|
|
68
|
+
const TEXT_COMMITS_KEY = 'text_index_commits';
|
|
69
|
+
const TEXT_AVG_TERMS_KEY = 'text_index_avg_commit_terms';
|
|
70
|
+
const TEXT_MAX_SEQ_KEY = 'text_index_max_seq';
|
|
65
71
|
/**
|
|
66
72
|
* 질의문을 상수로 뽑아둔다. `EXPLAIN QUERY PLAN` 테스트가 이 문자열을 그대로
|
|
67
73
|
* 설명해야 실제로 도는 질의의 계획을 고정하는 것이 된다. 테스트가 SQL을
|
|
@@ -187,7 +193,102 @@ export class CodeGraphStore {
|
|
|
187
193
|
min_pair_count INTEGER NOT NULL,
|
|
188
194
|
built_at REAL NOT NULL
|
|
189
195
|
);
|
|
196
|
+
|
|
197
|
+
-- 질의 시점 드리프트 검사용. size와 mtime이 그대로면 파일을 읽지 않는다.
|
|
198
|
+
-- checked_at은 mtime이 기록 시각에 바짝 붙은 행을 가려내는 데 쓴다.
|
|
199
|
+
-- 같은 mtime 해상도 안에서 다시 쓰인 파일은 stat만으로 구분이 안 된다.
|
|
200
|
+
CREATE TABLE IF NOT EXISTS cg_file_stat (
|
|
201
|
+
file_path TEXT PRIMARY KEY,
|
|
202
|
+
size INTEGER NOT NULL,
|
|
203
|
+
mtime_ms REAL NOT NULL,
|
|
204
|
+
file_hash TEXT NOT NULL,
|
|
205
|
+
checked_at REAL NOT NULL
|
|
206
|
+
);
|
|
207
|
+
|
|
208
|
+
CREATE TABLE IF NOT EXISTS cg_meta (
|
|
209
|
+
key TEXT PRIMARY KEY,
|
|
210
|
+
value TEXT NOT NULL
|
|
211
|
+
);
|
|
212
|
+
|
|
213
|
+
-- 한국어 색인. 주석은 노드 단위, 커밋 메시지는 커밋 단위로 bigram을 둔다.
|
|
214
|
+
-- 주석 쪽 노드 키는 cg_nodes의 rowid다. 노드 id는 절대경로가 든 긴 문자열이라 행마다
|
|
215
|
+
-- 들고 있으면 색인이 그래프 본체보다 커진다. 노드를 다시 쓰면 rowid가 바뀌므로
|
|
216
|
+
-- upsertNode와 deleteByFile이 그 노드의 단어를 먼저 지운다.
|
|
217
|
+
-- 커밋 쪽은 이력이라 지울 일이 없다. 둘 다 PK가 term으로 시작해서 훅의
|
|
218
|
+
-- "term IN (...)" 조회가 그 인덱스를 탄다.
|
|
219
|
+
CREATE TABLE IF NOT EXISTS cg_doc_terms (
|
|
220
|
+
term TEXT NOT NULL,
|
|
221
|
+
node_rowid INTEGER NOT NULL,
|
|
222
|
+
PRIMARY KEY (term, node_rowid)
|
|
223
|
+
) WITHOUT ROWID;
|
|
224
|
+
CREATE INDEX IF NOT EXISTS idx_cg_doc_terms_node ON cg_doc_terms(node_rowid);
|
|
225
|
+
|
|
226
|
+
-- seq는 넣은 순서(오래된 커밋이 작다), terms는 그 커밋 메시지의 bigram 수
|
|
227
|
+
CREATE TABLE IF NOT EXISTS cg_text_commits (
|
|
228
|
+
sha TEXT PRIMARY KEY,
|
|
229
|
+
seq INTEGER NOT NULL,
|
|
230
|
+
terms INTEGER NOT NULL
|
|
231
|
+
) WITHOUT ROWID;
|
|
232
|
+
CREATE TABLE IF NOT EXISTS cg_commit_terms (
|
|
233
|
+
term TEXT NOT NULL,
|
|
234
|
+
sha TEXT NOT NULL,
|
|
235
|
+
PRIMARY KEY (term, sha)
|
|
236
|
+
) WITHOUT ROWID;
|
|
237
|
+
CREATE TABLE IF NOT EXISTS cg_commit_files (
|
|
238
|
+
sha TEXT NOT NULL,
|
|
239
|
+
file_path TEXT NOT NULL,
|
|
240
|
+
PRIMARY KEY (sha, file_path)
|
|
241
|
+
) WITHOUT ROWID;
|
|
242
|
+
|
|
243
|
+
CREATE TABLE IF NOT EXISTS cg_ticket_files (
|
|
244
|
+
ticket TEXT NOT NULL,
|
|
245
|
+
file_path TEXT NOT NULL,
|
|
246
|
+
count INTEGER NOT NULL,
|
|
247
|
+
PRIMARY KEY (ticket, file_path)
|
|
248
|
+
);
|
|
190
249
|
`);
|
|
250
|
+
// doc 컬럼은 나중에 생겼다. 예전 DB에는 없으니 붙인다
|
|
251
|
+
const cols = this.db.prepare(`PRAGMA table_info(cg_nodes)`).all();
|
|
252
|
+
if (!cols.some((c) => c.name === 'doc')) {
|
|
253
|
+
this.db.exec(`ALTER TABLE cg_nodes ADD COLUMN doc TEXT`);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
getAllFileStats() {
|
|
257
|
+
const rows = this.db.prepare(`SELECT * FROM cg_file_stat`).all();
|
|
258
|
+
return new Map(rows.map((r) => [
|
|
259
|
+
r.file_path,
|
|
260
|
+
{
|
|
261
|
+
filePath: r.file_path,
|
|
262
|
+
size: r.size,
|
|
263
|
+
mtimeMs: r.mtime_ms,
|
|
264
|
+
fileHash: r.file_hash,
|
|
265
|
+
checkedAt: r.checked_at,
|
|
266
|
+
},
|
|
267
|
+
]));
|
|
268
|
+
}
|
|
269
|
+
upsertFileStat(row) {
|
|
270
|
+
this.db
|
|
271
|
+
.prepare(`INSERT OR REPLACE INTO cg_file_stat (file_path, size, mtime_ms, file_hash, checked_at)
|
|
272
|
+
VALUES (?, ?, ?, ?, ?)`)
|
|
273
|
+
.run(row.filePath, row.size, row.mtimeMs, row.fileHash, row.checkedAt);
|
|
274
|
+
}
|
|
275
|
+
deleteFileStat(filePath) {
|
|
276
|
+
this.db.prepare(`DELETE FROM cg_file_stat WHERE file_path = ?`).run(filePath);
|
|
277
|
+
}
|
|
278
|
+
/** 노드가 하나라도 있는 파일 경로. stat 행이 없던 옛 DB에서도 삭제를 잡으려면 이쪽도 봐야 한다 */
|
|
279
|
+
getGraphFilePaths() {
|
|
280
|
+
const rows = this.db.prepare(`SELECT DISTINCT file_path FROM cg_nodes`).all();
|
|
281
|
+
return rows.map((r) => r.file_path);
|
|
282
|
+
}
|
|
283
|
+
getMeta(key) {
|
|
284
|
+
const row = this.db.prepare(`SELECT value FROM cg_meta WHERE key = ?`).get(key);
|
|
285
|
+
return row?.value ?? null;
|
|
286
|
+
}
|
|
287
|
+
setMeta(key, value) {
|
|
288
|
+
this.db.prepare(`INSERT OR REPLACE INTO cg_meta (key, value) VALUES (?, ?)`).run(key, value);
|
|
289
|
+
}
|
|
290
|
+
transaction(fn) {
|
|
291
|
+
this.db.transaction(fn)();
|
|
191
292
|
}
|
|
192
293
|
getNodesByFile(filePath) {
|
|
193
294
|
const stmt = this.db.prepare(`
|
|
@@ -233,6 +334,166 @@ export class CodeGraphStore {
|
|
|
233
334
|
const rows = stmt.all(filePath, filePath);
|
|
234
335
|
return rows.map((r) => r.file_path);
|
|
235
336
|
}
|
|
337
|
+
/** getReferencingFiles와 같은 집합에 테스트 여부를 붙여 돌려준다 */
|
|
338
|
+
getReferencingFilesDetailed(filePath) {
|
|
339
|
+
const rows = this.db
|
|
340
|
+
.prepare(`
|
|
341
|
+
SELECT src.file_path AS file_path, MAX(src.is_test) AS is_test
|
|
342
|
+
FROM cg_edges e
|
|
343
|
+
JOIN cg_nodes tgt ON tgt.id = e.target_id
|
|
344
|
+
JOIN cg_nodes src ON src.id = e.source_id
|
|
345
|
+
WHERE tgt.file_path = ? AND src.file_path != ?
|
|
346
|
+
GROUP BY src.file_path
|
|
347
|
+
`)
|
|
348
|
+
.all(filePath, filePath);
|
|
349
|
+
return rows.map((r) => ({ filePath: r.file_path, isTest: r.is_test === 1 }));
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* 파일별로 그 파일을 import하는 파일 수. files를 주면 그 파일만, 생략하면 많은 순 상위 limit개.
|
|
353
|
+
*/
|
|
354
|
+
getImporterCounts(opts = {}) {
|
|
355
|
+
const params = [];
|
|
356
|
+
let where = `e.kind = 'IMPORTS_FROM' AND e.target_id LIKE 'file:%'`;
|
|
357
|
+
if (opts.files) {
|
|
358
|
+
if (opts.files.length === 0)
|
|
359
|
+
return new Map();
|
|
360
|
+
where += ` AND e.target_id IN (${opts.files.map(() => '?').join(',')})`;
|
|
361
|
+
params.push(...opts.files.map((f) => `file:${f}`));
|
|
362
|
+
}
|
|
363
|
+
let sql = `
|
|
364
|
+
SELECT substr(e.target_id, 6) AS file_path, COUNT(DISTINCT e.source_id) AS cnt
|
|
365
|
+
FROM cg_edges e WHERE ${where}
|
|
366
|
+
GROUP BY e.target_id ORDER BY cnt DESC`;
|
|
367
|
+
if (opts.limit !== undefined) {
|
|
368
|
+
sql += ` LIMIT ?`;
|
|
369
|
+
params.push(opts.limit);
|
|
370
|
+
}
|
|
371
|
+
const rows = this.db.prepare(sql).all(...params);
|
|
372
|
+
return new Map(rows.map((r) => [r.file_path, r.cnt]));
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* 이름이나 repoRoot 기준 상대 경로에 토큰 하나라도 들어간 노드를 고른다. 대소문자는 안 가린다.
|
|
376
|
+
* 상대 경로로 맞추는 건 절대 경로에 섞인 워크트리 이름 같은 조각이 걸리지 않게 하려는 것이다.
|
|
377
|
+
*/
|
|
378
|
+
searchNodesByTokens(repoRoot, tokens, limit) {
|
|
379
|
+
if (tokens.length === 0)
|
|
380
|
+
return [];
|
|
381
|
+
const rel = `lower(substr(file_path, ${repoRoot.length + 2}))`;
|
|
382
|
+
const clauses = [];
|
|
383
|
+
const params = [];
|
|
384
|
+
for (const t of tokens) {
|
|
385
|
+
const pattern = `%${t.replace(/[\\%_]/g, (c) => `\\${c}`)}%`;
|
|
386
|
+
clauses.push(`lower(name) LIKE ? ESCAPE '\\'`, `${rel} LIKE ? ESCAPE '\\'`);
|
|
387
|
+
params.push(pattern, pattern);
|
|
388
|
+
}
|
|
389
|
+
const rows = this.db
|
|
390
|
+
.prepare(`SELECT * FROM cg_nodes WHERE ${clauses.join(' OR ')} LIMIT ?`)
|
|
391
|
+
.all(...params, limit);
|
|
392
|
+
return rows.map(toNode);
|
|
393
|
+
}
|
|
394
|
+
getNodesByIds(ids) {
|
|
395
|
+
if (ids.length === 0)
|
|
396
|
+
return [];
|
|
397
|
+
const out = [];
|
|
398
|
+
// SQLite 바인딩 변수 상한(기본 32766)보다 한참 작게 끊는다
|
|
399
|
+
for (let i = 0; i < ids.length; i += 500) {
|
|
400
|
+
const chunk = ids.slice(i, i + 500);
|
|
401
|
+
const rows = this.db
|
|
402
|
+
.prepare(`SELECT * FROM cg_nodes WHERE id IN (${chunk.map(() => '?').join(',')})`)
|
|
403
|
+
.all(...chunk);
|
|
404
|
+
out.push(...rows.map(toNode));
|
|
405
|
+
}
|
|
406
|
+
return out;
|
|
407
|
+
}
|
|
408
|
+
/** 주석 색인에서 terms 중 하나라도 걸린 행. limit은 흔한 bigram이 수만 행을 끌고 오지 않게 막는다 */
|
|
409
|
+
getDocTermHits(terms, limit) {
|
|
410
|
+
if (terms.length === 0)
|
|
411
|
+
return [];
|
|
412
|
+
const rows = this.db
|
|
413
|
+
.prepare(`SELECT t.term, n.id AS node_id FROM cg_doc_terms t JOIN cg_nodes n ON n.rowid = t.node_rowid
|
|
414
|
+
WHERE t.term IN (${terms.map(() => '?').join(',')}) LIMIT ?`)
|
|
415
|
+
.all(...terms, limit);
|
|
416
|
+
return rows.map((r) => ({ term: r.term, nodeId: r.node_id }));
|
|
417
|
+
}
|
|
418
|
+
/** 커밋 색인에서 terms 중 하나라도 걸린 행 */
|
|
419
|
+
getCommitTermHits(terms, limit) {
|
|
420
|
+
if (terms.length === 0)
|
|
421
|
+
return [];
|
|
422
|
+
return this.db
|
|
423
|
+
.prepare(`SELECT term, sha FROM cg_commit_terms
|
|
424
|
+
WHERE term IN (${terms.map(() => '?').join(',')}) LIMIT ?`)
|
|
425
|
+
.all(...terms, limit);
|
|
426
|
+
}
|
|
427
|
+
/** 커밋마다 순번, bigram 수, 건드린 파일 */
|
|
428
|
+
getTextCommits(shas) {
|
|
429
|
+
if (shas.length === 0)
|
|
430
|
+
return [];
|
|
431
|
+
const ph = shas.map(() => '?').join(',');
|
|
432
|
+
const commits = this.db
|
|
433
|
+
.prepare(`SELECT sha, seq, terms FROM cg_text_commits WHERE sha IN (${ph})`)
|
|
434
|
+
.all(...shas);
|
|
435
|
+
const files = this.db
|
|
436
|
+
.prepare(`SELECT sha, file_path FROM cg_commit_files WHERE sha IN (${ph})`)
|
|
437
|
+
.all(...shas);
|
|
438
|
+
const bySha = new Map();
|
|
439
|
+
for (const f of files) {
|
|
440
|
+
const list = bySha.get(f.sha) ?? [];
|
|
441
|
+
list.push(f.file_path);
|
|
442
|
+
bySha.set(f.sha, list);
|
|
443
|
+
}
|
|
444
|
+
return commits.map((c) => ({ ...c, files: bySha.get(c.sha) ?? [] }));
|
|
445
|
+
}
|
|
446
|
+
/**
|
|
447
|
+
* term마다 df(주석은 노드 수, 커밋은 커밋 수)와 전체 문서 수, 커밋 bigram 수 평균, 최신 커밋 순번.
|
|
448
|
+
* 전체 값은 매 프롬프트마다 세지 않고 색인을 쓸 때 cg_meta에 적어둔 값을 읽는다
|
|
449
|
+
*/
|
|
450
|
+
getTextTermStats(terms) {
|
|
451
|
+
const num = (key, fallback) => Number(this.getMeta(key) ?? fallback) || fallback;
|
|
452
|
+
const stats = {
|
|
453
|
+
docDf: new Map(),
|
|
454
|
+
commitDf: new Map(),
|
|
455
|
+
docs: num(TEXT_DOCS_KEY, 0),
|
|
456
|
+
commits: num(TEXT_COMMITS_KEY, 0),
|
|
457
|
+
avgCommitTerms: num(TEXT_AVG_TERMS_KEY, 1),
|
|
458
|
+
maxSeq: num(TEXT_MAX_SEQ_KEY, 0),
|
|
459
|
+
};
|
|
460
|
+
if (terms.length === 0)
|
|
461
|
+
return stats;
|
|
462
|
+
const ph = terms.map(() => '?').join(',');
|
|
463
|
+
const doc = this.db
|
|
464
|
+
.prepare(`SELECT term, COUNT(*) AS cnt FROM cg_doc_terms WHERE term IN (${ph}) GROUP BY term`)
|
|
465
|
+
.all(...terms);
|
|
466
|
+
const commit = this.db
|
|
467
|
+
.prepare(`SELECT term, COUNT(*) AS cnt FROM cg_commit_terms WHERE term IN (${ph}) GROUP BY term`)
|
|
468
|
+
.all(...terms);
|
|
469
|
+
for (const r of doc)
|
|
470
|
+
stats.docDf.set(r.term, r.cnt);
|
|
471
|
+
for (const r of commit)
|
|
472
|
+
stats.commitDf.set(r.term, r.cnt);
|
|
473
|
+
return stats;
|
|
474
|
+
}
|
|
475
|
+
/** 한국어 색인의 전체 값을 다시 세서 cg_meta에 적는다. 색인을 쓴 쪽이 끝에 한 번 부른다 */
|
|
476
|
+
refreshTextIndexStats() {
|
|
477
|
+
const docs = this.db
|
|
478
|
+
.prepare(`SELECT COUNT(DISTINCT node_rowid) AS cnt FROM cg_doc_terms`)
|
|
479
|
+
.get();
|
|
480
|
+
const commits = this.db
|
|
481
|
+
.prepare(`SELECT COUNT(*) AS cnt, AVG(terms) AS avg, MAX(seq) AS max FROM cg_text_commits`)
|
|
482
|
+
.get();
|
|
483
|
+
this.setMeta(TEXT_DOCS_KEY, String(docs.cnt));
|
|
484
|
+
this.setMeta(TEXT_COMMITS_KEY, String(commits.cnt));
|
|
485
|
+
this.setMeta(TEXT_AVG_TERMS_KEY, String(commits.avg ?? 1));
|
|
486
|
+
this.setMeta(TEXT_MAX_SEQ_KEY, String(commits.max ?? 0));
|
|
487
|
+
}
|
|
488
|
+
getTicketFiles(tickets) {
|
|
489
|
+
if (tickets.length === 0)
|
|
490
|
+
return [];
|
|
491
|
+
const rows = this.db
|
|
492
|
+
.prepare(`SELECT ticket, file_path, count FROM cg_ticket_files
|
|
493
|
+
WHERE ticket IN (${tickets.map(() => '?').join(',')}) ORDER BY count DESC LIMIT 200`)
|
|
494
|
+
.all(...tickets);
|
|
495
|
+
return rows.map((r) => ({ ticket: r.ticket, filePath: r.file_path, count: r.count }));
|
|
496
|
+
}
|
|
236
497
|
getAllNodes() {
|
|
237
498
|
const stmt = this.db.prepare(`
|
|
238
499
|
SELECT * FROM cg_nodes
|
|
@@ -248,12 +509,24 @@ export class CodeGraphStore {
|
|
|
248
509
|
return rows.map(toEdge);
|
|
249
510
|
}
|
|
250
511
|
upsertNode(node) {
|
|
512
|
+
// REPLACE는 행을 지우고 새 rowid로 다시 넣는다. 옛 rowid에 걸린 주석 단어를 먼저 지운다
|
|
513
|
+
this.db
|
|
514
|
+
.prepare(`DELETE FROM cg_doc_terms WHERE node_rowid = (SELECT rowid FROM cg_nodes WHERE id = ?)`)
|
|
515
|
+
.run(node.id);
|
|
251
516
|
const stmt = this.db.prepare(`
|
|
252
517
|
INSERT OR REPLACE INTO cg_nodes
|
|
253
|
-
(id, kind, name, file_path, line_start, line_end, is_test, file_hash, updated_at)
|
|
254
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
518
|
+
(id, kind, name, file_path, line_start, line_end, is_test, file_hash, updated_at, doc)
|
|
519
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
255
520
|
`);
|
|
256
|
-
stmt.run(node.id, node.kind, node.name, node.filePath, node.lineStart ?? null, node.lineEnd ?? null, node.isTest ? 1 : 0, node.fileHash ?? null, node.updatedAt);
|
|
521
|
+
const info = stmt.run(node.id, node.kind, node.name, node.filePath, node.lineStart ?? null, node.lineEnd ?? null, node.isTest ? 1 : 0, node.fileHash ?? null, node.updatedAt, node.doc ?? null);
|
|
522
|
+
const rowid = info.lastInsertRowid;
|
|
523
|
+
if (node.doc) {
|
|
524
|
+
const term = this.db.prepare(`
|
|
525
|
+
INSERT OR IGNORE INTO cg_doc_terms (term, node_rowid) VALUES (?, ?)
|
|
526
|
+
`);
|
|
527
|
+
for (const t of koreanTerms(node.doc))
|
|
528
|
+
term.run(t, rowid);
|
|
529
|
+
}
|
|
257
530
|
}
|
|
258
531
|
upsertEdge(edge) {
|
|
259
532
|
const deleteStmt = this.db.prepare(`
|
|
@@ -275,11 +548,17 @@ export class CodeGraphStore {
|
|
|
275
548
|
`);
|
|
276
549
|
const deleteNodeStmt = this.db.prepare(`
|
|
277
550
|
DELETE FROM cg_nodes WHERE file_path = ?
|
|
551
|
+
`);
|
|
552
|
+
// 커밋 색인은 이력이라 파일을 다시 파싱해도 그대로 둔다. 주석 색인만 노드와 함께 지운다
|
|
553
|
+
const deleteDocTerms = this.db.prepare(`
|
|
554
|
+
DELETE FROM cg_doc_terms
|
|
555
|
+
WHERE node_rowid IN (SELECT rowid FROM cg_nodes WHERE file_path = ?)
|
|
278
556
|
`);
|
|
279
557
|
const run = this.db.transaction(() => {
|
|
280
558
|
for (const { id } of nodeIds) {
|
|
281
559
|
deleteEdgesForNode.run(id, id);
|
|
282
560
|
}
|
|
561
|
+
deleteDocTerms.run(filePath);
|
|
283
562
|
deleteNodeStmt.run(filePath);
|
|
284
563
|
});
|
|
285
564
|
run();
|
|
@@ -370,13 +649,49 @@ export class CodeGraphStore {
|
|
|
370
649
|
max_files_per_commit = excluded.max_files_per_commit,
|
|
371
650
|
min_pair_count = excluded.min_pair_count,
|
|
372
651
|
built_at = excluded.built_at
|
|
652
|
+
`);
|
|
653
|
+
const insertCommit = this.db.prepare(`
|
|
654
|
+
INSERT OR IGNORE INTO cg_text_commits (sha, seq, terms) VALUES (?, ?, ?)
|
|
655
|
+
`);
|
|
656
|
+
const insertTerm = this.db.prepare(`
|
|
657
|
+
INSERT OR IGNORE INTO cg_commit_terms (term, sha) VALUES (?, ?)
|
|
658
|
+
`);
|
|
659
|
+
const insertFile = this.db.prepare(`
|
|
660
|
+
INSERT OR IGNORE INTO cg_commit_files (sha, file_path) VALUES (?, ?)
|
|
661
|
+
`);
|
|
662
|
+
const upsertTicket = this.db.prepare(`
|
|
663
|
+
INSERT INTO cg_ticket_files (ticket, file_path, count) VALUES (?, ?, ?)
|
|
664
|
+
ON CONFLICT(ticket, file_path) DO UPDATE SET count = count + excluded.count
|
|
373
665
|
`);
|
|
374
666
|
const run = this.db.transaction(() => {
|
|
375
667
|
if (input.reset) {
|
|
376
668
|
deletePairs.run();
|
|
377
669
|
deleteSolos.run();
|
|
378
670
|
deleteMeta.run();
|
|
671
|
+
if (input.commitText) {
|
|
672
|
+
this.db.exec(`DELETE FROM cg_text_commits; DELETE FROM cg_commit_terms; DELETE FROM cg_commit_files;`);
|
|
673
|
+
}
|
|
674
|
+
if (input.tickets)
|
|
675
|
+
this.db.exec(`DELETE FROM cg_ticket_files`);
|
|
676
|
+
}
|
|
677
|
+
if (input.commitText) {
|
|
678
|
+
const max = this.db.prepare(`SELECT MAX(seq) AS m FROM cg_text_commits`).get();
|
|
679
|
+
let seq = max.m ?? 0;
|
|
680
|
+
// PK 순서로 넣으면 B-tree 끝에 이어 붙어서 페이지를 덜 쪼갠다
|
|
681
|
+
const rows = [];
|
|
682
|
+
for (const c of input.commitText) {
|
|
683
|
+
insertCommit.run(c.sha, ++seq, c.terms.length);
|
|
684
|
+
for (const f of c.files)
|
|
685
|
+
insertFile.run(c.sha, f);
|
|
686
|
+
for (const t of c.terms)
|
|
687
|
+
rows.push([t, c.sha]);
|
|
688
|
+
}
|
|
689
|
+
rows.sort((x, y) => (x[0] < y[0] ? -1 : x[0] > y[0] ? 1 : x[1] < y[1] ? -1 : 1));
|
|
690
|
+
for (const [t, sha] of rows)
|
|
691
|
+
insertTerm.run(t, sha);
|
|
379
692
|
}
|
|
693
|
+
for (const t of input.tickets ?? [])
|
|
694
|
+
upsertTicket.run(t.ticket, t.filePath, t.count);
|
|
380
695
|
for (const pair of input.pairs) {
|
|
381
696
|
upsertPair.run(pair.fileA, pair.fileB, pair.count, now);
|
|
382
697
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/code-graph/storage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/code-graph/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,11 @@ export interface CodeGraphNode {
|
|
|
21
21
|
isTest: boolean;
|
|
22
22
|
fileHash?: string;
|
|
23
23
|
updatedAt: number;
|
|
24
|
+
/**
|
|
25
|
+
* 선언 앞 주석(파일 노드는 파일 머리 주석). 한글이 든 것만 길이 상한까지 담는다.
|
|
26
|
+
* 한국어 프롬프트를 코드 위치에 잇는 색인의 원천이다
|
|
27
|
+
*/
|
|
28
|
+
doc?: string;
|
|
24
29
|
}
|
|
25
30
|
export interface CodeGraphEdge {
|
|
26
31
|
id?: number;
|
|
@@ -186,6 +191,25 @@ export interface AnalyzerPlugin {
|
|
|
186
191
|
language: string;
|
|
187
192
|
extensions: string[];
|
|
188
193
|
parse(filePath: string, content: string): ParseResult;
|
|
194
|
+
/** 본문을 뺀 시그니처 목록. 없으면 store의 노드 이름과 줄 범위로 대신한다 */
|
|
195
|
+
skeleton?(filePath: string, content: string): SkeletonEntry[];
|
|
196
|
+
}
|
|
197
|
+
export interface SkeletonEntry {
|
|
198
|
+
lineStart: number;
|
|
199
|
+
lineEnd: number;
|
|
200
|
+
/** 0이 최상위. 클래스 멤버는 1 */
|
|
201
|
+
depth: number;
|
|
202
|
+
signature: string;
|
|
203
|
+
}
|
|
204
|
+
export interface SkeletonResult {
|
|
205
|
+
filePath: string;
|
|
206
|
+
/** signatures: 플러그인이 시그니처를 뽑았다. graph_nodes: store의 노드 이름만 돌려준다 */
|
|
207
|
+
source: 'signatures' | 'graph_nodes';
|
|
208
|
+
entries: SkeletonEntry[];
|
|
209
|
+
originalChars: number;
|
|
210
|
+
skeletonChars: number;
|
|
211
|
+
/** 첫 줄이 줄인 크기다. 그대로 응답 본문으로 쓴다 */
|
|
212
|
+
text: string;
|
|
189
213
|
}
|
|
190
214
|
export type QueryPattern = 'callers_of' | 'callees_of' | 'tests_for' | 'imports_of';
|
|
191
215
|
export interface QueryResult {
|
|
@@ -205,6 +229,48 @@ export interface BuildOptions {
|
|
|
205
229
|
exclude?: string[];
|
|
206
230
|
mode?: BuildMode;
|
|
207
231
|
}
|
|
232
|
+
export interface RefreshOptions {
|
|
233
|
+
/** 락을 기다리는 최대 시간. 기본 1500ms */
|
|
234
|
+
lockTimeoutMs?: number;
|
|
235
|
+
/** 그 자리에서 다시 파싱할 파일 수 상한. 넘으면 reindex_pending으로 끝낸다. 기본은 상한 없음 */
|
|
236
|
+
maxInlineParse?: number;
|
|
237
|
+
}
|
|
238
|
+
export interface FreshnessCounts {
|
|
239
|
+
added: number;
|
|
240
|
+
modified: number;
|
|
241
|
+
removed: number;
|
|
242
|
+
touched: number;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* 질의 직전 최신화 결과. 질의 응답에 그대로 실린다.
|
|
246
|
+
* - fresh: 바뀐 게 없었다
|
|
247
|
+
* - refreshed: 바뀐 걸 반영하고 답했다
|
|
248
|
+
* - stale: 다른 프로세스가 갱신 중이거나 다시 파싱할 게 많아 이전 그래프로 답했다
|
|
249
|
+
* - skipped: 그래프 DB가 없거나 최신화를 껐다
|
|
250
|
+
*/
|
|
251
|
+
export type FreshnessReport = {
|
|
252
|
+
status: 'fresh';
|
|
253
|
+
checkedFiles: number;
|
|
254
|
+
durationMs: number;
|
|
255
|
+
} | {
|
|
256
|
+
status: 'refreshed';
|
|
257
|
+
changed: FreshnessCounts;
|
|
258
|
+
skippedCount?: number;
|
|
259
|
+
durationMs: number;
|
|
260
|
+
} | {
|
|
261
|
+
status: 'stale';
|
|
262
|
+
reason: 'locked' | 'refresh_failed' | 'reindex_pending';
|
|
263
|
+
message: string;
|
|
264
|
+
/** 반영하지 못한 변경. 락 대기나 드리프트가 많아 넘긴 경우에만 있다 */
|
|
265
|
+
pending?: FreshnessCounts;
|
|
266
|
+
/** reindex_pending일 때 다시 파싱해야 하는 파일 수 */
|
|
267
|
+
toParse?: number;
|
|
268
|
+
durationMs: number;
|
|
269
|
+
} | {
|
|
270
|
+
status: 'skipped';
|
|
271
|
+
reason: 'no_graph' | 'disabled';
|
|
272
|
+
durationMs: number;
|
|
273
|
+
};
|
|
208
274
|
export interface BuildResult {
|
|
209
275
|
nodesBuilt: number;
|
|
210
276
|
edgesBuilt: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/code-graph/types.ts"],"names":[],"mappings":"AACA,oBAAY,QAAQ;IAClB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,YAAY,iBAAiB;IAC7B,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,SAAS,cAAc;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/code-graph/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -285,6 +285,29 @@ declare const configSchema: z.ZodObject<{
|
|
|
285
285
|
*/
|
|
286
286
|
ruleSourceWarnings: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
287
287
|
notifications: z.ZodDefault<z.ZodBoolean>;
|
|
288
|
+
codeGraph: z.ZodDefault<z.ZodObject<{
|
|
289
|
+
/**
|
|
290
|
+
* Claude Code 플러그인 훅이 코드 그래프 컨텍스트를 넣을지. 훅은 플러그인이 깔린 모든 레포에
|
|
291
|
+
* 걸리므로 기본은 꺼짐이다. 훅 프로세스는 기동 비용 때문에 이 스키마를 거치지 않고
|
|
292
|
+
* `src/code-graph/hooks/settings.ts`가 같은 값을 직접 읽는다. 환경변수 이름과 파싱은
|
|
293
|
+
* 양쪽이 `./hooks-env.ts`를 함께 쓴다.
|
|
294
|
+
*/
|
|
295
|
+
hooks: z.ZodDefault<z.ZodObject<{
|
|
296
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
297
|
+
}, "strip", z.ZodTypeAny, {
|
|
298
|
+
enabled: boolean;
|
|
299
|
+
}, {
|
|
300
|
+
enabled?: boolean | undefined;
|
|
301
|
+
}>>;
|
|
302
|
+
}, "strip", z.ZodTypeAny, {
|
|
303
|
+
hooks: {
|
|
304
|
+
enabled: boolean;
|
|
305
|
+
};
|
|
306
|
+
}, {
|
|
307
|
+
hooks?: {
|
|
308
|
+
enabled?: boolean | undefined;
|
|
309
|
+
} | undefined;
|
|
310
|
+
}>>;
|
|
288
311
|
dbPath: z.ZodDefault<z.ZodString>;
|
|
289
312
|
skillsDir: z.ZodDefault<z.ZodString>;
|
|
290
313
|
agentsDir: z.ZodDefault<z.ZodString>;
|
|
@@ -344,6 +367,11 @@ declare const configSchema: z.ZodObject<{
|
|
|
344
367
|
ruleSourceErrors: string[];
|
|
345
368
|
ruleSourceWarnings: string[];
|
|
346
369
|
notifications: boolean;
|
|
370
|
+
codeGraph: {
|
|
371
|
+
hooks: {
|
|
372
|
+
enabled: boolean;
|
|
373
|
+
};
|
|
374
|
+
};
|
|
347
375
|
dbPath: string;
|
|
348
376
|
skillsDir: string;
|
|
349
377
|
agentsDir: string;
|
|
@@ -403,6 +431,11 @@ declare const configSchema: z.ZodObject<{
|
|
|
403
431
|
ruleSourceErrors?: string[] | undefined;
|
|
404
432
|
ruleSourceWarnings?: string[] | undefined;
|
|
405
433
|
notifications?: boolean | undefined;
|
|
434
|
+
codeGraph?: {
|
|
435
|
+
hooks?: {
|
|
436
|
+
enabled?: boolean | undefined;
|
|
437
|
+
} | undefined;
|
|
438
|
+
} | undefined;
|
|
406
439
|
dbPath?: string | undefined;
|
|
407
440
|
skillsDir?: string | undefined;
|
|
408
441
|
agentsDir?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/core/config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/core/config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoBxB,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;EAKvB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAkKhE;;;;;GAKG;AACH,QAAA,MAAM,gBAAgB;IAElB,sDAAsD;;;IAOtD;;;;;;;;;OASG;;IAOH,oCAAoC;;IAEpC,6CAA6C;;IAE7C,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4GhC,CAAC;AAEL,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAmB1D,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA5Jd,sDAAsD;;;QAOtD;;;;;;;;;WASG;;QAOH,oCAAoC;;QAEpC,6CAA6C;;QAE7C,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4JlC;;;OAGG;;IAEH;;;;;;OAMG;;;;QA/CH;;;;;WAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwDH,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAmBzD;;;GAGG;AACH,iBAAS,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClD,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,CAAC,CAmBH;AAED;;GAEG;AACH,iBAAS,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAclD;AASD;;;GAGG;AACH,iBAAS,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoFjD;AA2GD,wBAAgB,UAAU,CACxB,SAAS,GAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM,EAChD,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5D,aAAa,CAyEf;AAuHD,OAAO,EACL,SAAS,IAAI,UAAU,EACvB,eAAe,IAAI,gBAAgB,EACnC,cAAc,IAAI,eAAe,GAClC,CAAC"}
|