@tienne/gestalt 0.86.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.
Files changed (133) hide show
  1. package/CLAUDE.md +6 -2
  2. package/dist/bin/gestalt-hook.d.ts +5 -0
  3. package/dist/bin/gestalt-hook.d.ts.map +1 -0
  4. package/dist/bin/gestalt-hook.js +51 -0
  5. package/dist/bin/gestalt-hook.js.map +1 -0
  6. package/dist/package.json +4 -3
  7. package/dist/plugin/role-agents/_shared/references/ai-tell-quick-rules.md +2 -2
  8. package/dist/plugin/skills/blast-radius/SKILL.md +11 -1
  9. package/dist/plugin/skills/diff-radius/SKILL.md +11 -0
  10. package/dist/plugin/skills/review/SKILL.md +9 -2
  11. package/dist/schemas/gestalt.schema.json +19 -0
  12. package/dist/src/cli/commands/harness-refs.d.ts +10 -0
  13. package/dist/src/cli/commands/harness-refs.d.ts.map +1 -1
  14. package/dist/src/cli/commands/harness-refs.js +40 -0
  15. package/dist/src/cli/commands/harness-refs.js.map +1 -1
  16. package/dist/src/cli/index.d.ts.map +1 -1
  17. package/dist/src/cli/index.js +10 -1
  18. package/dist/src/cli/index.js.map +1 -1
  19. package/dist/src/code-graph/cochange.d.ts +40 -0
  20. package/dist/src/code-graph/cochange.d.ts.map +1 -1
  21. package/dist/src/code-graph/cochange.js +88 -3
  22. package/dist/src/code-graph/cochange.js.map +1 -1
  23. package/dist/src/code-graph/engine.d.ts +35 -1
  24. package/dist/src/code-graph/engine.d.ts.map +1 -1
  25. package/dist/src/code-graph/engine.js +300 -55
  26. package/dist/src/code-graph/engine.js.map +1 -1
  27. package/dist/src/code-graph/freshness.d.ts +39 -0
  28. package/dist/src/code-graph/freshness.d.ts.map +1 -0
  29. package/dist/src/code-graph/freshness.js +93 -0
  30. package/dist/src/code-graph/freshness.js.map +1 -0
  31. package/dist/src/code-graph/hooks/background.d.ts +18 -0
  32. package/dist/src/code-graph/hooks/background.d.ts.map +1 -0
  33. package/dist/src/code-graph/hooks/background.js +55 -0
  34. package/dist/src/code-graph/hooks/background.js.map +1 -0
  35. package/dist/src/code-graph/hooks/pointers.d.ts +66 -0
  36. package/dist/src/code-graph/hooks/pointers.d.ts.map +1 -0
  37. package/dist/src/code-graph/hooks/pointers.js +292 -0
  38. package/dist/src/code-graph/hooks/pointers.js.map +1 -0
  39. package/dist/src/code-graph/hooks/rank.d.ts +36 -0
  40. package/dist/src/code-graph/hooks/rank.d.ts.map +1 -0
  41. package/dist/src/code-graph/hooks/rank.js +212 -0
  42. package/dist/src/code-graph/hooks/rank.js.map +1 -0
  43. package/dist/src/code-graph/hooks/run.d.ts +37 -0
  44. package/dist/src/code-graph/hooks/run.d.ts.map +1 -0
  45. package/dist/src/code-graph/hooks/run.js +324 -0
  46. package/dist/src/code-graph/hooks/run.js.map +1 -0
  47. package/dist/src/code-graph/hooks/settings.d.ts +11 -0
  48. package/dist/src/code-graph/hooks/settings.d.ts.map +1 -0
  49. package/dist/src/code-graph/hooks/settings.js +25 -0
  50. package/dist/src/code-graph/hooks/settings.js.map +1 -0
  51. package/dist/src/code-graph/hooks/state.d.ts +20 -0
  52. package/dist/src/code-graph/hooks/state.d.ts.map +1 -0
  53. package/dist/src/code-graph/hooks/state.js +73 -0
  54. package/dist/src/code-graph/hooks/state.js.map +1 -0
  55. package/dist/src/code-graph/index.d.ts +6 -2
  56. package/dist/src/code-graph/index.d.ts.map +1 -1
  57. package/dist/src/code-graph/index.js +3 -1
  58. package/dist/src/code-graph/index.js.map +1 -1
  59. package/dist/src/code-graph/ko-text.d.ts +39 -0
  60. package/dist/src/code-graph/ko-text.d.ts.map +1 -0
  61. package/dist/src/code-graph/ko-text.js +223 -0
  62. package/dist/src/code-graph/ko-text.js.map +1 -0
  63. package/dist/src/code-graph/lock.d.ts +30 -0
  64. package/dist/src/code-graph/lock.d.ts.map +1 -0
  65. package/dist/src/code-graph/lock.js +140 -0
  66. package/dist/src/code-graph/lock.js.map +1 -0
  67. package/dist/src/code-graph/plugins/typescript-skeleton.d.ts +7 -0
  68. package/dist/src/code-graph/plugins/typescript-skeleton.d.ts.map +1 -0
  69. package/dist/src/code-graph/plugins/typescript-skeleton.js +157 -0
  70. package/dist/src/code-graph/plugins/typescript-skeleton.js.map +1 -0
  71. package/dist/src/code-graph/plugins/typescript.d.ts.map +1 -1
  72. package/dist/src/code-graph/plugins/typescript.js +58 -0
  73. package/dist/src/code-graph/plugins/typescript.js.map +1 -1
  74. package/dist/src/code-graph/storage.d.ts +85 -0
  75. package/dist/src/code-graph/storage.d.ts.map +1 -1
  76. package/dist/src/code-graph/storage.js +318 -3
  77. package/dist/src/code-graph/storage.js.map +1 -1
  78. package/dist/src/code-graph/types.d.ts +66 -0
  79. package/dist/src/code-graph/types.d.ts.map +1 -1
  80. package/dist/src/core/config.d.ts +33 -0
  81. package/dist/src/core/config.d.ts.map +1 -1
  82. package/dist/src/core/config.js +14 -0
  83. package/dist/src/core/config.js.map +1 -1
  84. package/dist/src/core/hooks-env.d.ts +9 -0
  85. package/dist/src/core/hooks-env.d.ts.map +1 -0
  86. package/dist/src/core/hooks-env.js +16 -0
  87. package/dist/src/core/hooks-env.js.map +1 -0
  88. package/dist/src/harness-review/backward-search.d.ts +15 -2
  89. package/dist/src/harness-review/backward-search.d.ts.map +1 -1
  90. package/dist/src/harness-review/backward-search.js +101 -43
  91. package/dist/src/harness-review/backward-search.js.map +1 -1
  92. package/dist/src/harness-review/collect.d.ts +10 -1
  93. package/dist/src/harness-review/collect.d.ts.map +1 -1
  94. package/dist/src/harness-review/collect.js +66 -6
  95. package/dist/src/harness-review/collect.js.map +1 -1
  96. package/dist/src/harness-review/github-code-search.d.ts +32 -1
  97. package/dist/src/harness-review/github-code-search.d.ts.map +1 -1
  98. package/dist/src/harness-review/github-code-search.js +86 -2
  99. package/dist/src/harness-review/github-code-search.js.map +1 -1
  100. package/dist/src/harness-review/hybrid-search.d.ts +35 -0
  101. package/dist/src/harness-review/hybrid-search.d.ts.map +1 -0
  102. package/dist/src/harness-review/hybrid-search.js +63 -0
  103. package/dist/src/harness-review/hybrid-search.js.map +1 -0
  104. package/dist/src/harness-review/related-clones.d.ts +66 -0
  105. package/dist/src/harness-review/related-clones.d.ts.map +1 -0
  106. package/dist/src/harness-review/related-clones.js +309 -0
  107. package/dist/src/harness-review/related-clones.js.map +1 -0
  108. package/dist/src/harness-review/search-backend.d.ts +23 -1
  109. package/dist/src/harness-review/search-backend.d.ts.map +1 -1
  110. package/dist/src/harness-review/search-backend.js +13 -1
  111. package/dist/src/harness-review/search-backend.js.map +1 -1
  112. package/dist/src/humanize/detectors.js +1 -1
  113. package/dist/src/humanize/detectors.js.map +1 -1
  114. package/dist/src/mcp/schemas.d.ts +9 -3
  115. package/dist/src/mcp/schemas.d.ts.map +1 -1
  116. package/dist/src/mcp/schemas.js +19 -2
  117. package/dist/src/mcp/schemas.js.map +1 -1
  118. package/dist/src/mcp/server.d.ts.map +1 -1
  119. package/dist/src/mcp/server.js +21 -3
  120. package/dist/src/mcp/server.js.map +1 -1
  121. package/dist/src/mcp/tools/code-graph-passthrough.d.ts +6 -1
  122. package/dist/src/mcp/tools/code-graph-passthrough.d.ts.map +1 -1
  123. package/dist/src/mcp/tools/code-graph-passthrough.js +95 -6
  124. package/dist/src/mcp/tools/code-graph-passthrough.js.map +1 -1
  125. package/package.json +4 -3
  126. package/plugin/.codex-plugin/plugin.json +1 -1
  127. package/plugin/.mcp.json +1 -1
  128. package/plugin/mcp.json +1 -1
  129. package/plugin/role-agents/_shared/references/ai-tell-quick-rules.md +2 -2
  130. package/plugin/skills/blast-radius/SKILL.md +11 -1
  131. package/plugin/skills/diff-radius/SKILL.md +11 -0
  132. package/plugin/skills/review/SKILL.md +9 -2
  133. package/schemas/gestalt.schema.json +19 -0
@@ -0,0 +1,157 @@
1
+ import ts from 'typescript';
2
+ /** 이보다 긴 초기값은 `…`로 접는다. 상수 값 정도만 보이게 하려는 폭이다 */
3
+ const MAX_INITIALIZER_CHARS = 60;
4
+ /** 여러 줄 인자 목록을 한 줄로 접으며 생기는 `( a`와 `b, )`도 함께 정리한다. `<`, `>`는 비교식과 헷갈려 손대지 않는다 */
5
+ function oneLine(text) {
6
+ return text
7
+ .replace(/\s+/g, ' ')
8
+ .replace(/([([]) /g, '$1')
9
+ .replace(/,? ([)\]])/g, '$1')
10
+ .trim();
11
+ }
12
+ /**
13
+ * TS/JS 파일에서 본문을 뺀 시그니처를 뽑는다.
14
+ * 최상위 선언과 클래스, 인터페이스, enum, namespace 멤버를 담고 import는 뺀다.
15
+ */
16
+ export function extractTypeScriptSkeleton(filePath, content) {
17
+ const sf = ts.createSourceFile(filePath, content, ts.ScriptTarget.Latest, true);
18
+ const entries = [];
19
+ const lineOf = (pos) => sf.getLineAndCharacterOfPosition(pos).line + 1;
20
+ const push = (node, depth, signature) => {
21
+ entries.push({
22
+ lineStart: lineOf(node.getStart(sf)),
23
+ lineEnd: lineOf(node.getEnd()),
24
+ depth,
25
+ signature: oneLine(signature),
26
+ });
27
+ };
28
+ /** node 시작부터 upTo 직전까지. 본문이나 초기값 앞에서 자를 때 쓴다 */
29
+ const head = (node, upTo) => content.slice(node.getStart(sf), upTo).replace(/[\s=:]+$/, '');
30
+ const full = (node) => node.getText(sf).replace(/;\s*$/, '');
31
+ const visitStatements = (statements, depth) => {
32
+ for (const st of statements)
33
+ visitStatement(st, depth);
34
+ };
35
+ const visitStatement = (st, depth) => {
36
+ if (ts.isImportDeclaration(st) || ts.isImportEqualsDeclaration(st))
37
+ return;
38
+ if (ts.isFunctionDeclaration(st)) {
39
+ push(st, depth, st.body ? head(st, st.body.getStart(sf)) : full(st));
40
+ return;
41
+ }
42
+ if (ts.isClassDeclaration(st)) {
43
+ push(st, depth, head(st, openBrace(st)));
44
+ for (const m of st.members)
45
+ visitClassMember(m, depth + 1);
46
+ return;
47
+ }
48
+ if (ts.isInterfaceDeclaration(st)) {
49
+ push(st, depth, head(st, openBrace(st)));
50
+ for (const m of st.members)
51
+ push(m, depth + 1, full(m).replace(/[;,]$/, ''));
52
+ return;
53
+ }
54
+ if (ts.isEnumDeclaration(st)) {
55
+ push(st, depth, head(st, openBrace(st)));
56
+ for (const m of st.members)
57
+ push(m, depth + 1, m.name.getText(sf));
58
+ return;
59
+ }
60
+ if (ts.isModuleDeclaration(st)) {
61
+ const body = st.body;
62
+ if (body && ts.isModuleBlock(body)) {
63
+ push(st, depth, head(st, body.getStart(sf)));
64
+ visitStatements(body.statements, depth + 1);
65
+ }
66
+ else {
67
+ push(st, depth, full(st));
68
+ }
69
+ return;
70
+ }
71
+ if (ts.isTypeAliasDeclaration(st)) {
72
+ push(st, depth, full(st));
73
+ return;
74
+ }
75
+ if (ts.isVariableStatement(st)) {
76
+ visitVariableStatement(st, depth);
77
+ return;
78
+ }
79
+ if (ts.isExportAssignment(st)) {
80
+ const expr = st.expression;
81
+ push(st, depth, ts.isArrowFunction(expr) || ts.isFunctionExpression(expr)
82
+ ? `${head(st, expr.getStart(sf))} ${functionHead(expr)}`
83
+ : foldInitializer(full(st)));
84
+ return;
85
+ }
86
+ if (ts.isExportDeclaration(st))
87
+ push(st, depth, foldInitializer(full(st)));
88
+ };
89
+ const visitVariableStatement = (st, depth) => {
90
+ // `export const a = 1, b = 2`처럼 묶인 선언도 하나씩 줄을 나눈다
91
+ const prefix = content
92
+ .slice(st.getStart(sf), st.declarationList.declarations[0].getStart(sf))
93
+ .trimEnd();
94
+ for (const decl of st.declarationList.declarations) {
95
+ const name = decl.name.getText(sf);
96
+ const type = decl.type ? `: ${decl.type.getText(sf)}` : '';
97
+ const init = decl.initializer;
98
+ let signature;
99
+ if (init && (ts.isArrowFunction(init) || ts.isFunctionExpression(init))) {
100
+ signature = `${prefix} ${name}${type} = ${functionHead(init)}`;
101
+ }
102
+ else if (init) {
103
+ signature = `${prefix} ${name}${type} = ${foldInitializer(init.getText(sf))}`;
104
+ }
105
+ else {
106
+ signature = `${prefix} ${name}${type}`;
107
+ }
108
+ entries.push({
109
+ lineStart: lineOf(decl.getStart(sf)),
110
+ lineEnd: lineOf(decl.getEnd()),
111
+ depth,
112
+ signature: oneLine(signature),
113
+ });
114
+ }
115
+ };
116
+ const functionHead = (fn) => {
117
+ if (ts.isArrowFunction(fn)) {
118
+ return `${content.slice(fn.getStart(sf), fn.equalsGreaterThanToken.getEnd())} …`;
119
+ }
120
+ return `${head(fn, fn.body.getStart(sf))} …`;
121
+ };
122
+ const visitClassMember = (m, depth) => {
123
+ if (ts.isMethodDeclaration(m) ||
124
+ ts.isConstructorDeclaration(m) ||
125
+ ts.isGetAccessorDeclaration(m) ||
126
+ ts.isSetAccessorDeclaration(m)) {
127
+ push(m, depth, m.body ? head(m, m.body.getStart(sf)) : full(m));
128
+ return;
129
+ }
130
+ if (ts.isPropertyDeclaration(m)) {
131
+ const init = m.initializer;
132
+ if (init && (ts.isArrowFunction(init) || ts.isFunctionExpression(init))) {
133
+ push(m, depth, `${head(m, init.getStart(sf))} = ${functionHead(init)}`);
134
+ }
135
+ else {
136
+ push(m, depth, init ? head(m, init.getStart(sf)) : full(m));
137
+ }
138
+ return;
139
+ }
140
+ if (ts.isClassStaticBlockDeclaration(m)) {
141
+ push(m, depth, 'static { … }');
142
+ return;
143
+ }
144
+ push(m, depth, full(m));
145
+ };
146
+ const openBrace = (node) => {
147
+ const brace = node.getChildren(sf).find((c) => c.kind === ts.SyntaxKind.OpenBraceToken);
148
+ return brace ? brace.getStart(sf) : node.getEnd();
149
+ };
150
+ visitStatements(sf.statements, 0);
151
+ return entries;
152
+ }
153
+ function foldInitializer(text) {
154
+ const flat = oneLine(text);
155
+ return flat.length > MAX_INITIALIZER_CHARS ? `${flat.slice(0, MAX_INITIALIZER_CHARS)}…` : flat;
156
+ }
157
+ //# sourceMappingURL=typescript-skeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-skeleton.js","sourceRoot":"","sources":["../../../../src/code-graph/plugins/typescript-skeleton.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../../src/code-graph/plugins/typescript.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,cAAc,EAIpB,MAAM,aAAa,CAAC;AA2DrB,eAAO,MAAM,gBAAgB,EAAE,cAiL9B,CAAC"}
1
+ {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../../src/code-graph/plugins/typescript.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,cAAc,EAIpB,MAAM,aAAa,CAAC;AA+GrB,eAAO,MAAM,gBAAgB,EAAE,cAwL9B,CAAC"}
@@ -2,6 +2,8 @@ import ts from 'typescript';
2
2
  import { createHash } from 'node:crypto';
3
3
  import { resolve, dirname, basename, extname } from 'node:path';
4
4
  import { log } from '../../core/log.js';
5
+ import { extractTypeScriptSkeleton } from './typescript-skeleton.js';
6
+ import { docText } from '../ko-text.js';
5
7
  import { NodeKind, EdgeKind, } from '../types.js';
6
8
  const SUPPORTED_EXTENSIONS = ['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs'];
7
9
  function isTestFile(filePath) {
@@ -10,6 +12,56 @@ function isTestFile(filePath) {
10
12
  function hashContent(content) {
11
13
  return createHash('sha256').update(content).digest('hex');
12
14
  }
15
+ /** 주석과 다음 토큰 사이가 빈 줄 없이 붙어 있는가 */
16
+ function attached(text, from, to) {
17
+ return (text.slice(from, to).match(/\n/g)?.length ?? 0) <= 1;
18
+ }
19
+ /**
20
+ * 선언 바로 앞에 붙은 주석 묶음. 빈 줄로 떨어진 주석은 그 선언 설명으로 보지 않는다
21
+ * (파일 머리 주석이나 앞 절의 구분 주석이기 쉽다).
22
+ * 화살표 함수는 주석이 `const x = () => …` 문 앞에 붙으므로 그 문을 기준으로 본다.
23
+ */
24
+ function leadingDoc(node, sourceFile) {
25
+ let anchor = node;
26
+ if (ts.isArrowFunction(node) || ts.isFunctionExpression(node)) {
27
+ const p = node.parent;
28
+ if (ts.isVariableDeclaration(p) && ts.isVariableStatement(p.parent.parent))
29
+ anchor = p.parent.parent;
30
+ else if (ts.isPropertyDeclaration(p))
31
+ anchor = p;
32
+ }
33
+ const text = sourceFile.getFullText();
34
+ const ranges = ts.getLeadingCommentRanges(text, anchor.getFullStart()) ?? [];
35
+ const block = [];
36
+ let next = anchor.getStart(sourceFile);
37
+ for (let i = ranges.length - 1; i >= 0; i--) {
38
+ const r = ranges[i];
39
+ if (!attached(text, r.end, next))
40
+ break;
41
+ block.unshift(text.slice(r.pos, r.end));
42
+ next = r.pos;
43
+ }
44
+ return block.length > 0 ? docText(block.join('\n')) : undefined;
45
+ }
46
+ /**
47
+ * 파일 맨 위 주석. 첫 문장에 빈 줄 없이 붙어 있으면 그 문장의 설명이라 머리 주석이 아니다.
48
+ * 단 첫 문장이 import면 import를 설명하는 주석은 드무니 머리 주석으로 친다.
49
+ */
50
+ function fileHeaderDoc(sourceFile) {
51
+ const text = sourceFile.getFullText();
52
+ // 위치 0에서 부르면 TS가 shebang을 알아서 건너뛴다. 그 다음 줄부터 부르면 오히려 못 찾는다
53
+ const ranges = ts.getLeadingCommentRanges(text, 0) ?? [];
54
+ if (ranges.length === 0)
55
+ return undefined;
56
+ const first = sourceFile.statements[0];
57
+ const last = ranges[ranges.length - 1];
58
+ if (first &&
59
+ !ts.isImportDeclaration(first) &&
60
+ attached(text, last.end, first.getStart(sourceFile))) {
61
+ return undefined;
62
+ }
63
+ return docText(ranges.map((r) => text.slice(r.pos, r.end)).join('\n'));
64
+ }
13
65
  function getNodePosition(node, sourceFile) {
14
66
  const start = sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile));
15
67
  const end = sourceFile.getLineAndCharacterOfPosition(node.getEnd());
@@ -80,6 +132,7 @@ export const typescriptPlugin = {
80
132
  isTest,
81
133
  fileHash,
82
134
  updatedAt: now,
135
+ doc: fileHeaderDoc(sourceFile),
83
136
  });
84
137
  function visit(node) {
85
138
  // 함수 선언
@@ -102,6 +155,7 @@ export const typescriptPlugin = {
102
155
  lineEnd,
103
156
  isTest,
104
157
  updatedAt: now,
158
+ doc: leadingDoc(node, sourceFile),
105
159
  });
106
160
  addEdge(EdgeKind.CONTAINS, fileNodeId, fnId, lineStart);
107
161
  }
@@ -124,6 +178,7 @@ export const typescriptPlugin = {
124
178
  lineEnd,
125
179
  isTest,
126
180
  updatedAt: now,
181
+ doc: leadingDoc(node, sourceFile),
127
182
  });
128
183
  addEdge(EdgeKind.CONTAINS, fileNodeId, classId, lineStart);
129
184
  // 상속 관계 (INHERITS)
@@ -159,6 +214,7 @@ export const typescriptPlugin = {
159
214
  lineEnd,
160
215
  isTest,
161
216
  updatedAt: now,
217
+ doc: leadingDoc(node, sourceFile),
162
218
  });
163
219
  }
164
220
  }
@@ -180,6 +236,7 @@ export const typescriptPlugin = {
180
236
  lineEnd,
181
237
  isTest,
182
238
  updatedAt: now,
239
+ doc: leadingDoc(node, sourceFile),
183
240
  });
184
241
  }
185
242
  }
@@ -205,5 +262,6 @@ export const typescriptPlugin = {
205
262
  }
206
263
  return { nodes, edges, fileHash };
207
264
  },
265
+ skeleton: extractTypeScriptSkeleton,
208
266
  };
209
267
  //# sourceMappingURL=typescript.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../../../src/code-graph/plugins/typescript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../../../src/code-graph/plugins/typescript.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,12 @@
1
1
  import type { CodeGraphNode, CodeGraphEdge, CodeGraphStats, CoChangeMeta } from './types.js';
2
2
  import type { CodeNodeEmbedding } from './embedding-provider.js';
3
+ export interface FileStatRow {
4
+ filePath: string;
5
+ size: number;
6
+ mtimeMs: number;
7
+ fileHash: string;
8
+ checkedAt: number;
9
+ }
3
10
  export interface CoChangeNeighborRow {
4
11
  other: string;
5
12
  pairCount: number;
@@ -31,6 +38,15 @@ export interface CoChangePairRow {
31
38
  * 그래서 `capped`로 따로 알린다 — 출력 `limit`에 잘린 것과 사유가 다르다.
32
39
  */
33
40
  export declare const MAX_MATCHED_ROWS = 10000;
41
+ export interface TextTermStats {
42
+ docDf: Map<string, number>;
43
+ commitDf: Map<string, number>;
44
+ /** 주석이 붙은 노드 수 */
45
+ docs: number;
46
+ commits: number;
47
+ avgCommitTerms: number;
48
+ maxSeq: number;
49
+ }
34
50
  /**
35
51
  * 질의문을 상수로 뽑아둔다. `EXPLAIN QUERY PLAN` 테스트가 이 문자열을 그대로
36
52
  * 설명해야 실제로 도는 질의의 계획을 고정하는 것이 된다. 테스트가 SQL을
@@ -70,11 +86,33 @@ export interface CoChangeMergeInput {
70
86
  };
71
87
  /** true면 세 테이블을 비우고 새로 쓴다 (전량 재수집). false면 카운터를 더한다 */
72
88
  reset: boolean;
89
+ /**
90
+ * 커밋 메시지에서 뽑은 한국어 bigram(커밋 단위, 오래된 것부터)과 티켓 키(파일마다 나온 커밋 수).
91
+ * reset이면 커밋 색인과 티켓 색인도 비우고 새로 쓴다. 생략하면 둘 다 건드리지 않는다
92
+ */
93
+ commitText?: {
94
+ sha: string;
95
+ terms: string[];
96
+ files: string[];
97
+ }[];
98
+ tickets?: {
99
+ ticket: string;
100
+ filePath: string;
101
+ count: number;
102
+ }[];
73
103
  }
74
104
  export declare class CodeGraphStore {
75
105
  private db;
76
106
  constructor(dbPath: string);
77
107
  private initialize;
108
+ getAllFileStats(): Map<string, FileStatRow>;
109
+ upsertFileStat(row: FileStatRow): void;
110
+ deleteFileStat(filePath: string): void;
111
+ /** 노드가 하나라도 있는 파일 경로. stat 행이 없던 옛 DB에서도 삭제를 잡으려면 이쪽도 봐야 한다 */
112
+ getGraphFilePaths(): string[];
113
+ getMeta(key: string): string | null;
114
+ setMeta(key: string, value: string): void;
115
+ transaction(fn: () => void): void;
78
116
  getNodesByFile(filePath: string): CodeGraphNode[];
79
117
  getNodeById(id: string): CodeGraphNode | null;
80
118
  getEdgesBySource(sourceId: string): CodeGraphEdge[];
@@ -85,6 +123,53 @@ export declare class CodeGraphStore {
85
123
  * 지운 뒤에는 filePath를 참조하던 파일 목록을 더 이상 조회할 수 없다.
86
124
  */
87
125
  getReferencingFiles(filePath: string): string[];
126
+ /** getReferencingFiles와 같은 집합에 테스트 여부를 붙여 돌려준다 */
127
+ getReferencingFilesDetailed(filePath: string): {
128
+ filePath: string;
129
+ isTest: boolean;
130
+ }[];
131
+ /**
132
+ * 파일별로 그 파일을 import하는 파일 수. files를 주면 그 파일만, 생략하면 많은 순 상위 limit개.
133
+ */
134
+ getImporterCounts(opts?: {
135
+ files?: string[];
136
+ limit?: number;
137
+ }): Map<string, number>;
138
+ /**
139
+ * 이름이나 repoRoot 기준 상대 경로에 토큰 하나라도 들어간 노드를 고른다. 대소문자는 안 가린다.
140
+ * 상대 경로로 맞추는 건 절대 경로에 섞인 워크트리 이름 같은 조각이 걸리지 않게 하려는 것이다.
141
+ */
142
+ searchNodesByTokens(repoRoot: string, tokens: string[], limit: number): CodeGraphNode[];
143
+ getNodesByIds(ids: string[]): CodeGraphNode[];
144
+ /** 주석 색인에서 terms 중 하나라도 걸린 행. limit은 흔한 bigram이 수만 행을 끌고 오지 않게 막는다 */
145
+ getDocTermHits(terms: string[], limit: number): {
146
+ term: string;
147
+ nodeId: string;
148
+ }[];
149
+ /** 커밋 색인에서 terms 중 하나라도 걸린 행 */
150
+ getCommitTermHits(terms: string[], limit: number): {
151
+ term: string;
152
+ sha: string;
153
+ }[];
154
+ /** 커밋마다 순번, bigram 수, 건드린 파일 */
155
+ getTextCommits(shas: string[]): {
156
+ sha: string;
157
+ seq: number;
158
+ terms: number;
159
+ files: string[];
160
+ }[];
161
+ /**
162
+ * term마다 df(주석은 노드 수, 커밋은 커밋 수)와 전체 문서 수, 커밋 bigram 수 평균, 최신 커밋 순번.
163
+ * 전체 값은 매 프롬프트마다 세지 않고 색인을 쓸 때 cg_meta에 적어둔 값을 읽는다
164
+ */
165
+ getTextTermStats(terms: string[]): TextTermStats;
166
+ /** 한국어 색인의 전체 값을 다시 세서 cg_meta에 적는다. 색인을 쓴 쪽이 끝에 한 번 부른다 */
167
+ refreshTextIndexStats(): void;
168
+ getTicketFiles(tickets: string[]): {
169
+ ticket: string;
170
+ filePath: string;
171
+ count: number;
172
+ }[];
88
173
  getAllNodes(): CodeGraphNode[];
89
174
  getAllEdges(): CodeGraphEdge[];
90
175
  upsertNode(node: CodeGraphNode): void;
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/code-graph/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/code-graph/storage.ts"],"names":[],"mappings":"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"}