kiri-mcp-server 0.16.1 → 0.18.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 (164) hide show
  1. package/README.md +65 -22
  2. package/dist/package.json +4 -2
  3. package/dist/src/client/proxy.js +0 -0
  4. package/dist/src/daemon/daemon.js +0 -0
  5. package/dist/src/indexer/codeintel/dart/adapter.d.ts +36 -0
  6. package/dist/src/indexer/codeintel/dart/adapter.d.ts.map +1 -0
  7. package/dist/src/indexer/codeintel/dart/adapter.js +60 -0
  8. package/dist/src/indexer/codeintel/dart/adapter.js.map +1 -0
  9. package/dist/src/indexer/codeintel/dart/index.d.ts +7 -0
  10. package/dist/src/indexer/codeintel/dart/index.d.ts.map +1 -0
  11. package/dist/src/indexer/codeintel/dart/index.js +7 -0
  12. package/dist/src/indexer/codeintel/dart/index.js.map +1 -0
  13. package/dist/src/indexer/codeintel/index.d.ts +30 -0
  14. package/dist/src/indexer/codeintel/index.d.ts.map +1 -0
  15. package/dist/src/indexer/codeintel/index.js +32 -0
  16. package/dist/src/indexer/codeintel/index.js.map +1 -0
  17. package/dist/src/indexer/codeintel/java/analyzer.d.ts +22 -0
  18. package/dist/src/indexer/codeintel/java/analyzer.d.ts.map +1 -0
  19. package/dist/src/indexer/codeintel/java/analyzer.js +281 -0
  20. package/dist/src/indexer/codeintel/java/analyzer.js.map +1 -0
  21. package/dist/src/indexer/codeintel/java/index.d.ts +7 -0
  22. package/dist/src/indexer/codeintel/java/index.d.ts.map +1 -0
  23. package/dist/src/indexer/codeintel/java/index.js +7 -0
  24. package/dist/src/indexer/codeintel/java/index.js.map +1 -0
  25. package/dist/src/indexer/codeintel/php/analyzer.d.ts +23 -0
  26. package/dist/src/indexer/codeintel/php/analyzer.d.ts.map +1 -0
  27. package/dist/src/indexer/codeintel/php/analyzer.js +342 -0
  28. package/dist/src/indexer/codeintel/php/analyzer.js.map +1 -0
  29. package/dist/src/indexer/codeintel/php/index.d.ts +7 -0
  30. package/dist/src/indexer/codeintel/php/index.d.ts.map +1 -0
  31. package/dist/src/indexer/codeintel/php/index.js +7 -0
  32. package/dist/src/indexer/codeintel/php/index.js.map +1 -0
  33. package/dist/src/indexer/codeintel/registry.d.ts +76 -0
  34. package/dist/src/indexer/codeintel/registry.d.ts.map +1 -0
  35. package/dist/src/indexer/codeintel/registry.js +127 -0
  36. package/dist/src/indexer/codeintel/registry.js.map +1 -0
  37. package/dist/src/indexer/codeintel/rust/analyzer.d.ts +14 -0
  38. package/dist/src/indexer/codeintel/rust/analyzer.d.ts.map +1 -0
  39. package/dist/src/indexer/codeintel/rust/analyzer.js +388 -0
  40. package/dist/src/indexer/codeintel/rust/analyzer.js.map +1 -0
  41. package/dist/src/indexer/codeintel/rust/index.d.ts +5 -0
  42. package/dist/src/indexer/codeintel/rust/index.d.ts.map +1 -0
  43. package/dist/src/indexer/codeintel/rust/index.js +5 -0
  44. package/dist/src/indexer/codeintel/rust/index.js.map +1 -0
  45. package/dist/src/indexer/codeintel/swift/analyzer.d.ts +22 -0
  46. package/dist/src/indexer/codeintel/swift/analyzer.d.ts.map +1 -0
  47. package/dist/src/indexer/codeintel/swift/analyzer.js +271 -0
  48. package/dist/src/indexer/codeintel/swift/analyzer.js.map +1 -0
  49. package/dist/src/indexer/codeintel/swift/index.d.ts +7 -0
  50. package/dist/src/indexer/codeintel/swift/index.d.ts.map +1 -0
  51. package/dist/src/indexer/codeintel/swift/index.js +7 -0
  52. package/dist/src/indexer/codeintel/swift/index.js.map +1 -0
  53. package/dist/src/indexer/codeintel/types.d.ts +114 -0
  54. package/dist/src/indexer/codeintel/types.d.ts.map +1 -0
  55. package/dist/src/indexer/codeintel/types.js +13 -0
  56. package/dist/src/indexer/codeintel/types.js.map +1 -0
  57. package/dist/src/indexer/codeintel/typescript/analyzer.d.ts +22 -0
  58. package/dist/src/indexer/codeintel/typescript/analyzer.d.ts.map +1 -0
  59. package/dist/{indexer/codeintel.js → src/indexer/codeintel/typescript/analyzer.js} +62 -34
  60. package/dist/src/indexer/codeintel/typescript/analyzer.js.map +1 -0
  61. package/dist/src/indexer/codeintel/typescript/index.d.ts +7 -0
  62. package/dist/src/indexer/codeintel/typescript/index.d.ts.map +1 -0
  63. package/dist/src/indexer/codeintel/typescript/index.js +7 -0
  64. package/dist/src/indexer/codeintel/typescript/index.js.map +1 -0
  65. package/dist/src/indexer/codeintel/utils.d.ts +91 -0
  66. package/dist/src/indexer/codeintel/utils.d.ts.map +1 -0
  67. package/dist/src/indexer/codeintel/utils.js +145 -0
  68. package/dist/src/indexer/codeintel/utils.js.map +1 -0
  69. package/dist/src/indexer/codeintel.d.ts +33 -26
  70. package/dist/src/indexer/codeintel.d.ts.map +1 -1
  71. package/dist/src/indexer/codeintel.js +56 -1078
  72. package/dist/src/indexer/codeintel.js.map +1 -1
  73. package/dist/src/indexer/graph-metrics.d.ts.map +1 -1
  74. package/dist/src/indexer/graph-metrics.js +16 -4
  75. package/dist/src/indexer/graph-metrics.js.map +1 -1
  76. package/dist/src/server/boost-profiles.d.ts +1 -1
  77. package/dist/src/server/boost-profiles.d.ts.map +1 -1
  78. package/dist/src/server/boost-profiles.js +22 -0
  79. package/dist/src/server/boost-profiles.js.map +1 -1
  80. package/dist/src/server/main.js +0 -0
  81. package/dist/src/server/rpc.js +4 -4
  82. package/dist/src/server/rpc.js.map +1 -1
  83. package/package.json +10 -2
  84. package/dist/client/cli.js +0 -68
  85. package/dist/client/cli.js.map +0 -1
  86. package/dist/client/index.js +0 -5
  87. package/dist/client/index.js.map +0 -1
  88. package/dist/eval/metrics.js +0 -47
  89. package/dist/eval/metrics.js.map +0 -1
  90. package/dist/indexer/cli.js +0 -362
  91. package/dist/indexer/cli.js.map +0 -1
  92. package/dist/indexer/codeintel.js.map +0 -1
  93. package/dist/indexer/git.js +0 -30
  94. package/dist/indexer/git.js.map +0 -1
  95. package/dist/indexer/language.js +0 -34
  96. package/dist/indexer/language.js.map +0 -1
  97. package/dist/indexer/pipeline/filters/denylist.js +0 -71
  98. package/dist/indexer/pipeline/filters/denylist.js.map +0 -1
  99. package/dist/indexer/schema.js +0 -101
  100. package/dist/indexer/schema.js.map +0 -1
  101. package/dist/server/bootstrap.js +0 -19
  102. package/dist/server/bootstrap.js.map +0 -1
  103. package/dist/server/context.js +0 -1
  104. package/dist/server/context.js.map +0 -1
  105. package/dist/server/fallbacks/degradeController.js +0 -69
  106. package/dist/server/fallbacks/degradeController.js.map +0 -1
  107. package/dist/server/handlers.js +0 -1268
  108. package/dist/server/handlers.js.map +0 -1
  109. package/dist/server/main.js +0 -151
  110. package/dist/server/main.js.map +0 -1
  111. package/dist/server/observability/metrics.js +0 -56
  112. package/dist/server/observability/metrics.js.map +0 -1
  113. package/dist/server/observability/tracing.js +0 -58
  114. package/dist/server/observability/tracing.js.map +0 -1
  115. package/dist/server/rpc.js +0 -477
  116. package/dist/server/rpc.js.map +0 -1
  117. package/dist/server/runtime.js +0 -47
  118. package/dist/server/runtime.js.map +0 -1
  119. package/dist/server/scoring.js +0 -116
  120. package/dist/server/scoring.js.map +0 -1
  121. package/dist/server/stdio.js +0 -76
  122. package/dist/server/stdio.js.map +0 -1
  123. package/dist/shared/duckdb.js +0 -119
  124. package/dist/shared/duckdb.js.map +0 -1
  125. package/dist/shared/embedding.js +0 -98
  126. package/dist/shared/embedding.js.map +0 -1
  127. package/dist/shared/index.js +0 -9
  128. package/dist/shared/index.js.map +0 -1
  129. package/dist/shared/security/config.js +0 -64
  130. package/dist/shared/security/config.js.map +0 -1
  131. package/dist/shared/security/masker.js +0 -56
  132. package/dist/shared/security/masker.js.map +0 -1
  133. package/dist/shared/tokenizer.js +0 -4
  134. package/dist/shared/tokenizer.js.map +0 -1
  135. package/dist/shared/utils/simpleYaml.js +0 -89
  136. package/dist/shared/utils/simpleYaml.js.map +0 -1
  137. package/dist/src/server/rrf.d.ts +0 -86
  138. package/dist/src/server/rrf.d.ts.map +0 -1
  139. package/dist/src/server/rrf.js +0 -108
  140. package/dist/src/server/rrf.js.map +0 -1
  141. package/dist/src/shared/embedding/engine.d.ts +0 -38
  142. package/dist/src/shared/embedding/engine.d.ts.map +0 -1
  143. package/dist/src/shared/embedding/engine.js +0 -6
  144. package/dist/src/shared/embedding/engine.js.map +0 -1
  145. package/dist/src/shared/embedding/lsh-engine.d.ts +0 -11
  146. package/dist/src/shared/embedding/lsh-engine.d.ts.map +0 -1
  147. package/dist/src/shared/embedding/lsh-engine.js +0 -14
  148. package/dist/src/shared/embedding/lsh-engine.js.map +0 -1
  149. package/dist/src/shared/embedding/registry.d.ts +0 -25
  150. package/dist/src/shared/embedding/registry.d.ts.map +0 -1
  151. package/dist/src/shared/embedding/registry.js +0 -50
  152. package/dist/src/shared/embedding/registry.js.map +0 -1
  153. package/dist/src/shared/embedding/semantic-engine.d.ts +0 -14
  154. package/dist/src/shared/embedding/semantic-engine.d.ts.map +0 -1
  155. package/dist/src/shared/embedding/semantic-engine.js +0 -50
  156. package/dist/src/shared/embedding/semantic-engine.js.map +0 -1
  157. package/dist/src/shared/models/model-manager.d.ts +0 -38
  158. package/dist/src/shared/models/model-manager.d.ts.map +0 -1
  159. package/dist/src/shared/models/model-manager.js +0 -116
  160. package/dist/src/shared/models/model-manager.js.map +0 -1
  161. package/dist/src/shared/models/model-manifest.d.ts +0 -22
  162. package/dist/src/shared/models/model-manifest.d.ts.map +0 -1
  163. package/dist/src/shared/models/model-manifest.js +0 -24
  164. package/dist/src/shared/models/model-manifest.js.map +0 -1
@@ -0,0 +1,271 @@
1
+ /**
2
+ * Swift Language Analyzer
3
+ *
4
+ * tree-sitter-swift を使用したシンボル抽出と依存関係解析。
5
+ * class, struct, enum, protocol, function, method, initializer, property をサポート。
6
+ */
7
+ import path from "node:path";
8
+ import Parser from "tree-sitter";
9
+ import Swift from "tree-sitter-swift";
10
+ import { treeSitterPointToLine, sanitizeTreeSitterSignature, assignSymbolIds, symbolsToSnippets, createDependencyRecorder, cleanDocComment, } from "../utils.js";
11
+ /**
12
+ * Swift のドキュメントコメント (/// コメントまたはブロックコメント) を抽出
13
+ */
14
+ function getSwiftDocComment(node, content) {
15
+ const parent = node.parent;
16
+ if (!parent)
17
+ return null;
18
+ // 親ノードのすべての子から、このノードの直前にあるコメントを探す
19
+ const precedingComments = [];
20
+ const siblings = parent.children; // namedChildrenではなくchildrenを使用
21
+ const nodeIndex = siblings.indexOf(node);
22
+ // このノードより前の兄弟を逆順で調べる
23
+ for (let i = nodeIndex - 1; i >= 0; i--) {
24
+ const sibling = siblings[i];
25
+ if (!sibling)
26
+ continue;
27
+ // commentまたはmultiline_commentをチェック
28
+ if (sibling.type === "comment" || sibling.type === "multiline_comment") {
29
+ const commentText = content.substring(sibling.startIndex, sibling.endIndex);
30
+ // /// または /** */ 形式のドキュメントコメントのみ抽出
31
+ if (commentText.startsWith("///") || commentText.startsWith("/**")) {
32
+ precedingComments.unshift(cleanDocComment(commentText));
33
+ }
34
+ }
35
+ else if (sibling.type !== "{" &&
36
+ sibling.type !== "}" &&
37
+ !sibling.text.trim().match(/^\s*$/)) {
38
+ // コメント以外の実質的なノードに到達したら終了
39
+ break;
40
+ }
41
+ }
42
+ if (precedingComments.length === 0) {
43
+ return null;
44
+ }
45
+ return precedingComments.join("\n");
46
+ }
47
+ /**
48
+ * 子ノードから識別子名を抽出(再帰的に探索)
49
+ */
50
+ function extractName(node, content) {
51
+ function findIdentifier(n) {
52
+ if (n.type === "type_identifier" || n.type === "simple_identifier") {
53
+ return n;
54
+ }
55
+ for (const child of n.namedChildren) {
56
+ const found = findIdentifier(child);
57
+ if (found)
58
+ return found;
59
+ }
60
+ return null;
61
+ }
62
+ const identifierNode = findIdentifier(node);
63
+ return identifierNode
64
+ ? content.substring(identifierNode.startIndex, identifierNode.endIndex)
65
+ : null;
66
+ }
67
+ /**
68
+ * class_declaration のキーワードから種類を判定
69
+ */
70
+ function getClassDeclKind(node) {
71
+ for (const child of node.children) {
72
+ if (child.type === "class")
73
+ return "class";
74
+ if (child.type === "struct")
75
+ return "struct";
76
+ if (child.type === "enum")
77
+ return "enum";
78
+ if (child.type === "extension")
79
+ return "extension";
80
+ }
81
+ return null;
82
+ }
83
+ /**
84
+ * シンボルレコードを作成
85
+ */
86
+ function createSwiftSymbolRecords(tree, content) {
87
+ const results = [];
88
+ /**
89
+ * ノードからシグネチャを取得
90
+ */
91
+ function getSignature(node) {
92
+ const nodeText = content.substring(node.startIndex, node.endIndex);
93
+ return sanitizeTreeSitterSignature(nodeText);
94
+ }
95
+ /**
96
+ * ツリーを再帰的にトラバースしてシンボルを抽出
97
+ */
98
+ function visit(node) {
99
+ // class_declaration: class/struct/enum/extension
100
+ if (node.type === "class_declaration") {
101
+ const kind = getClassDeclKind(node);
102
+ const name = extractName(node, content);
103
+ if (kind && name) {
104
+ results.push({
105
+ name,
106
+ kind,
107
+ rangeStartLine: treeSitterPointToLine(node.startPosition),
108
+ rangeEndLine: treeSitterPointToLine(node.endPosition),
109
+ signature: getSignature(node),
110
+ doc: getSwiftDocComment(node, content),
111
+ });
112
+ }
113
+ }
114
+ // protocol_declaration
115
+ else if (node.type === "protocol_declaration") {
116
+ const name = extractName(node, content);
117
+ if (name) {
118
+ results.push({
119
+ name,
120
+ kind: "protocol",
121
+ rangeStartLine: treeSitterPointToLine(node.startPosition),
122
+ rangeEndLine: treeSitterPointToLine(node.endPosition),
123
+ signature: getSignature(node),
124
+ doc: getSwiftDocComment(node, content),
125
+ });
126
+ }
127
+ }
128
+ // function_declaration: トップレベル関数またはメソッド
129
+ else if (node.type === "function_declaration") {
130
+ const name = extractName(node, content);
131
+ if (name) {
132
+ // 親がclass_bodyの場合はmethod、それ以外はfunction
133
+ const kind = node.parent?.type === "class_body" ? "method" : "function";
134
+ results.push({
135
+ name,
136
+ kind,
137
+ rangeStartLine: treeSitterPointToLine(node.startPosition),
138
+ rangeEndLine: treeSitterPointToLine(node.endPosition),
139
+ signature: getSignature(node),
140
+ doc: getSwiftDocComment(node, content),
141
+ });
142
+ }
143
+ }
144
+ // init_declaration: イニシャライザ
145
+ else if (node.type === "init_declaration") {
146
+ results.push({
147
+ name: "init",
148
+ kind: "initializer",
149
+ rangeStartLine: treeSitterPointToLine(node.startPosition),
150
+ rangeEndLine: treeSitterPointToLine(node.endPosition),
151
+ signature: getSignature(node),
152
+ doc: getSwiftDocComment(node, content),
153
+ });
154
+ }
155
+ // property_declaration: プロパティ(クラス/構造体/プロトコル/エクステンション内のみ)
156
+ else if (node.type === "property_declaration") {
157
+ // 親がclass_body、struct_body、protocol_body、enum_class_body、extension_bodyの場合のみプロパティとして扱う
158
+ const isClassMember = node.parent?.type === "class_body" ||
159
+ node.parent?.type === "struct_body" ||
160
+ node.parent?.type === "protocol_body" ||
161
+ node.parent?.type === "enum_class_body" ||
162
+ node.parent?.type === "extension_body";
163
+ if (isClassMember) {
164
+ const name = extractName(node, content);
165
+ if (name) {
166
+ results.push({
167
+ name,
168
+ kind: "property",
169
+ rangeStartLine: treeSitterPointToLine(node.startPosition),
170
+ rangeEndLine: treeSitterPointToLine(node.endPosition),
171
+ signature: getSignature(node),
172
+ doc: getSwiftDocComment(node, content),
173
+ });
174
+ }
175
+ }
176
+ }
177
+ // protocol_function_declaration: プロトコル内のメソッド宣言
178
+ else if (node.type === "protocol_function_declaration") {
179
+ const name = extractName(node, content);
180
+ if (name) {
181
+ results.push({
182
+ name,
183
+ kind: "protocol_method",
184
+ rangeStartLine: treeSitterPointToLine(node.startPosition),
185
+ rangeEndLine: treeSitterPointToLine(node.endPosition),
186
+ signature: getSignature(node),
187
+ doc: getSwiftDocComment(node, content),
188
+ });
189
+ }
190
+ }
191
+ // 子ノードを再帰的に訪問
192
+ for (const child of node.namedChildren) {
193
+ visit(child);
194
+ }
195
+ }
196
+ visit(tree.rootNode);
197
+ return assignSymbolIds(results);
198
+ }
199
+ /**
200
+ * Swift の import 文を解析して依存関係を収集
201
+ */
202
+ function collectSwiftDependencies(sourcePath, tree, content, fileSet) {
203
+ const { record, getDependencies } = createDependencyRecorder();
204
+ function visit(node) {
205
+ if (node.type === "import_declaration") {
206
+ // import_declarationの子からidentifierを抽出
207
+ const identifier = node.namedChildren.find((child) => child.type === "identifier");
208
+ if (identifier) {
209
+ const moduleName = content.substring(identifier.startIndex, identifier.endIndex);
210
+ // Swiftファイルへの相対パスかどうかをチェック
211
+ // 通常はシステムモジュール(Foundation, UIKit等)が多いため"package"として扱う
212
+ const baseDir = path.posix.dirname(sourcePath);
213
+ const swiftPath = path.posix.normalize(path.posix.join(baseDir, `${moduleName}.swift`));
214
+ if (fileSet.has(swiftPath)) {
215
+ record("path", swiftPath);
216
+ }
217
+ else {
218
+ record("package", moduleName);
219
+ }
220
+ }
221
+ }
222
+ // 子ノードを再帰的に訪問
223
+ for (const child of node.namedChildren) {
224
+ visit(child);
225
+ }
226
+ }
227
+ visit(tree.rootNode);
228
+ return getDependencies();
229
+ }
230
+ /**
231
+ * Swift Language Analyzer
232
+ *
233
+ * LanguageAnalyzer インターフェースを実装し、
234
+ * Swift ファイルのシンボル抽出と依存関係解析を提供
235
+ */
236
+ export class SwiftAnalyzer {
237
+ language = "Swift";
238
+ async analyze(context) {
239
+ const { pathInRepo, content, fileSet } = context;
240
+ try {
241
+ // 各ファイルごとに新しいパーサーインスタンスを作成(並行処理の安全性のため)
242
+ const parser = new Parser();
243
+ // Validate language object before setting it
244
+ if (!Swift || typeof Swift !== "object") {
245
+ throw new Error("Tree-sitter language for Swift is invalid or undefined");
246
+ }
247
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
248
+ parser.setLanguage(Swift);
249
+ const tree = parser.parse(content);
250
+ // シンボル抽出
251
+ const symbols = createSwiftSymbolRecords(tree, content);
252
+ // シンボルからスニペットを生成
253
+ const snippets = symbolsToSnippets(symbols);
254
+ // 依存関係を収集
255
+ const dependencies = collectSwiftDependencies(pathInRepo, tree, content, fileSet);
256
+ return { symbols, snippets, dependencies };
257
+ }
258
+ catch (error) {
259
+ // パース失敗時は空の結果を返して他のファイルの処理を継続
260
+ console.error(`Failed to parse Swift file ${pathInRepo}:`, error);
261
+ return { symbols: [], snippets: [], dependencies: [] };
262
+ }
263
+ }
264
+ }
265
+ /**
266
+ * Swift アナライザーのファクトリ関数
267
+ */
268
+ export function createSwiftAnalyzer() {
269
+ return new SwiftAnalyzer();
270
+ }
271
+ //# sourceMappingURL=analyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../../../../src/indexer/codeintel/swift/analyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Swift Analyzer Module
3
+ *
4
+ * Swift ファイル用の言語アナライザーをエクスポート
5
+ */
6
+ export { SwiftAnalyzer, createSwiftAnalyzer } from "./analyzer.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/indexer/codeintel/swift/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Swift Analyzer Module
3
+ *
4
+ * Swift ファイル用の言語アナライザーをエクスポート
5
+ */
6
+ export { SwiftAnalyzer, createSwiftAnalyzer } from "./analyzer.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/indexer/codeintel/swift/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Language analyzer core types
3
+ *
4
+ * このファイルは言語アナライザーシステムの中核となる型定義を提供します。
5
+ * Alloyで検証済みのPlan A (Central Registry) 設計に基づいています。
6
+ */
7
+ /**
8
+ * シンボル情報を表すレコード
9
+ * クラス、関数、メソッドなどのコード要素を表現します
10
+ */
11
+ export interface SymbolRecord {
12
+ /** 1から始まる連番ID */
13
+ symbolId: number;
14
+ /** シンボル名 */
15
+ name: string;
16
+ /** シンボルの種類 (function, class, method, interface, enum等) */
17
+ kind: string;
18
+ /** 開始行番号 (1-based) */
19
+ rangeStartLine: number;
20
+ /** 終了行番号 (1-based) */
21
+ rangeEndLine: number;
22
+ /** シグネチャ (最大200文字) */
23
+ signature: string | null;
24
+ /** ドキュメントコメント */
25
+ doc: string | null;
26
+ }
27
+ /**
28
+ * スニペット情報を表すレコード
29
+ * コードの行範囲を表現します
30
+ */
31
+ export interface SnippetRecord {
32
+ /** 開始行番号 (1-based) */
33
+ startLine: number;
34
+ /** 終了行番号 (1-based) */
35
+ endLine: number;
36
+ /** 関連するシンボルID (nullの場合はファイル全体) */
37
+ symbolId: number | null;
38
+ }
39
+ /**
40
+ * 依存関係を表すレコード
41
+ * import/requireなどの依存関係を表現します
42
+ */
43
+ export interface DependencyRecord {
44
+ /** 依存先の種類 */
45
+ dstKind: "path" | "package";
46
+ /** 依存先のパスまたはパッケージ名 */
47
+ dst: string;
48
+ /** 関係の種類 (import, require等) */
49
+ rel: string;
50
+ }
51
+ /**
52
+ * 解析コンテキスト
53
+ * アナライザーに渡される入力情報
54
+ */
55
+ export interface AnalysisContext {
56
+ /** リポジトリルートからの相対パス */
57
+ pathInRepo: string;
58
+ /** ファイルの内容 */
59
+ content: string;
60
+ /** インデックス済みファイルのセット (相対パス解決用) */
61
+ fileSet: Set<string>;
62
+ /** ワークスペースルート (LSPベースのアナライザー用、絶対パス) */
63
+ workspaceRoot?: string;
64
+ }
65
+ /**
66
+ * 解析結果
67
+ * アナライザーが返す出力情報
68
+ */
69
+ export interface AnalysisResult {
70
+ /** 抽出されたシンボル一覧 */
71
+ symbols: SymbolRecord[];
72
+ /** 生成されたスニペット一覧 */
73
+ snippets: SnippetRecord[];
74
+ /** 検出された依存関係一覧 */
75
+ dependencies: DependencyRecord[];
76
+ /** 解析ステータス (エラー時に設定) */
77
+ status?: "success" | "error" | "sdk_unavailable";
78
+ /** エラーメッセージ (エラー時に設定) */
79
+ error?: string;
80
+ }
81
+ /**
82
+ * 言語アナライザーインターフェース
83
+ *
84
+ * 実装要件:
85
+ * 1. ステートレスまたは内部で状態を管理 (スレッドセーフ)
86
+ * 2. パースエラー時は空の結果を返す (例外をスローしない)
87
+ * 3. 並行解析リクエストをサポート
88
+ *
89
+ * Alloyモデルの `Analyzer` atomに対応:
90
+ * - language: 言語識別子
91
+ * - analyze: 解析メソッド
92
+ * - dispose: リソース解放メソッド (オプション)
93
+ */
94
+ export interface LanguageAnalyzer {
95
+ /** 言語識別子 (例: "TypeScript", "Swift") */
96
+ readonly language: string;
97
+ /**
98
+ * ソースコードを解析してシンボル、スニペット、依存関係を抽出
99
+ *
100
+ * @param context - 解析コンテキスト
101
+ * @returns 解析結果 (エラー時も例外をスローせず空の結果を返す)
102
+ */
103
+ analyze(context: AnalysisContext): Promise<AnalysisResult>;
104
+ /**
105
+ * アナライザーが保持するリソースを解放
106
+ * レジストリからの削除時に呼び出される
107
+ */
108
+ dispose?(): Promise<void>;
109
+ }
110
+ /**
111
+ * 空の解析結果を生成するヘルパー
112
+ */
113
+ export declare function emptyResult(): AnalysisResult;
114
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/indexer/codeintel/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,iBAAiB;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iBAAiB;IACjB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,aAAa;IACb,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,+BAA+B;IAC/B,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,uCAAuC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,kBAAkB;IAClB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,mBAAmB;IACnB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,kBAAkB;IAClB,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,wBAAwB;IACxB,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,iBAAiB,CAAC;IACjD,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;;;;OAKG;IACH,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAE3D;;;OAGG;IACH,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,cAAc,CAE5C"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Language analyzer core types
3
+ *
4
+ * このファイルは言語アナライザーシステムの中核となる型定義を提供します。
5
+ * Alloyで検証済みのPlan A (Central Registry) 設計に基づいています。
6
+ */
7
+ /**
8
+ * 空の解析結果を生成するヘルパー
9
+ */
10
+ export function emptyResult() {
11
+ return { symbols: [], snippets: [], dependencies: [] };
12
+ }
13
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/indexer/codeintel/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiHH;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;AACzD,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * TypeScript Language Analyzer
3
+ *
4
+ * TypeScript Compiler APIを使用したシンボル抽出と依存関係解析。
5
+ * TypeScript/TSX両方をサポート。
6
+ */
7
+ import type { LanguageAnalyzer, AnalysisContext, AnalysisResult } from "../types.js";
8
+ /**
9
+ * TypeScript Language Analyzer
10
+ *
11
+ * LanguageAnalyzer インターフェースを実装し、
12
+ * TypeScript/TSX ファイルのシンボル抽出と依存関係解析を提供
13
+ */
14
+ export declare class TypeScriptAnalyzer implements LanguageAnalyzer {
15
+ readonly language = "TypeScript";
16
+ analyze(context: AnalysisContext): Promise<AnalysisResult>;
17
+ }
18
+ /**
19
+ * TypeScript アナライザーのファクトリ関数
20
+ */
21
+ export declare function createTypeScriptAnalyzer(): TypeScriptAnalyzer;
22
+ //# sourceMappingURL=analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../../../../src/indexer/codeintel/typescript/analyzer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,cAAc,EAIf,MAAM,aAAa,CAAC;AAwMrB;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,gBAAgB;IACzD,QAAQ,CAAC,QAAQ,gBAAgB;IAE3B,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;CAmBjE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,kBAAkB,CAE7D"}
@@ -1,6 +1,24 @@
1
+ /**
2
+ * TypeScript Language Analyzer
3
+ *
4
+ * TypeScript Compiler APIを使用したシンボル抽出と依存関係解析。
5
+ * TypeScript/TSX両方をサポート。
6
+ */
1
7
  import path from "node:path";
2
8
  import ts from "typescript";
3
- const SUPPORTED_LANGUAGES = new Set(["TypeScript"]);
9
+ import { assignSymbolIds, symbolsToSnippets, createDependencyRecorder } from "../utils.js";
10
+ /**
11
+ * TypeScript Compiler API の位置情報を 1-based 行番号に変換
12
+ */
13
+ function toLineNumber(source, position) {
14
+ return source.getLineAndCharacterOfPosition(position).line + 1;
15
+ }
16
+ /**
17
+ * シグネチャテキストをサニタイズ
18
+ * - ブロック本体 ({...}) を除去
19
+ * - 最大200文字に切り詰め
20
+ * - 最初の行のみを取得
21
+ */
4
22
  function sanitizeSignature(source, node) {
5
23
  const start = node.getStart(source);
6
24
  const endCandidate = node.forEachChild((child) => {
@@ -13,6 +31,9 @@ function sanitizeSignature(source, node) {
13
31
  const snippet = source.text.slice(start, Math.min(end, start + 200));
14
32
  return snippet.split(/\r?\n/)[0]?.trim().replace(/\s+/g, " ") ?? "";
15
33
  }
34
+ /**
35
+ * JSDoc コメントを抽出
36
+ */
16
37
  function getDocComment(node) {
17
38
  const tags = ts.getJSDocCommentsAndTags(node);
18
39
  const parts = [];
@@ -31,10 +52,10 @@ function getDocComment(node) {
31
52
  }
32
53
  return parts.join("\n").trim() || null;
33
54
  }
34
- function toLineNumber(source, position) {
35
- return source.getLineAndCharacterOfPosition(position).line + 1;
36
- }
37
- function createSymbolRecords(source) {
55
+ /**
56
+ * AST を走査してシンボルを抽出
57
+ */
58
+ function extractSymbols(source) {
38
59
  const results = [];
39
60
  const visit = (node) => {
40
61
  if (ts.isFunctionDeclaration(node) && node.name) {
@@ -78,9 +99,8 @@ function createSymbolRecords(source) {
78
99
  });
79
100
  }
80
101
  else if (ts.isMethodDeclaration(node) && node.name) {
81
- const name = node.name.getText(source);
82
102
  results.push({
83
- name,
103
+ name: node.name.getText(source),
84
104
  kind: "method",
85
105
  rangeStartLine: toLineNumber(source, node.getStart(source)),
86
106
  rangeEndLine: toLineNumber(source, node.getEnd()),
@@ -91,10 +111,12 @@ function createSymbolRecords(source) {
91
111
  ts.forEachChild(node, visit);
92
112
  };
93
113
  ts.forEachChild(source, visit);
94
- return results
95
- .sort((a, b) => a.rangeStartLine - b.rangeStartLine)
96
- .map((item, index) => ({ symbolId: index + 1, ...item }));
114
+ return assignSymbolIds(results);
97
115
  }
116
+ /**
117
+ * import/export/require 文からモジュールパスを正規化
118
+ * 相対パスはファイルセットと照合してpath、それ以外はpackageとして分類
119
+ */
98
120
  function normalizePathSpecifier(sourcePath, specifier, fileSet) {
99
121
  if (specifier.startsWith(".") || specifier.startsWith("/")) {
100
122
  const baseDir = path.posix.dirname(sourcePath);
@@ -119,14 +141,11 @@ function normalizePathSpecifier(sourcePath, specifier, fileSet) {
119
141
  }
120
142
  return { kind: "package", target: specifier };
121
143
  }
144
+ /**
145
+ * import/export 文を解析して依存関係を収集
146
+ */
122
147
  function collectDependencies(sourcePath, source, fileSet) {
123
- const dependencies = new Map();
124
- const record = (kind, dst) => {
125
- const key = `${kind}:${dst}`;
126
- if (!dependencies.has(key)) {
127
- dependencies.set(key, { dstKind: kind, dst, rel: "import" });
128
- }
129
- };
148
+ const { record, getDependencies } = createDependencyRecorder();
130
149
  const visit = (node) => {
131
150
  if (ts.isImportDeclaration(node) &&
132
151
  node.moduleSpecifier &&
@@ -159,24 +178,33 @@ function collectDependencies(sourcePath, source, fileSet) {
159
178
  ts.forEachChild(node, visit);
160
179
  };
161
180
  ts.forEachChild(source, visit);
162
- return Array.from(dependencies.values());
181
+ return getDependencies();
163
182
  }
164
- export function analyzeSource(pathInRepo, lang, content, fileSet) {
165
- const normalizedLang = lang ?? "";
166
- if (!SUPPORTED_LANGUAGES.has(normalizedLang)) {
167
- return { symbols: [], snippets: [], dependencies: [] };
183
+ /**
184
+ * TypeScript Language Analyzer
185
+ *
186
+ * LanguageAnalyzer インターフェースを実装し、
187
+ * TypeScript/TSX ファイルのシンボル抽出と依存関係解析を提供
188
+ */
189
+ export class TypeScriptAnalyzer {
190
+ language = "TypeScript";
191
+ async analyze(context) {
192
+ const { pathInRepo, content, fileSet } = context;
193
+ // TypeScript Compiler API でパース
194
+ const sourceFile = ts.createSourceFile(pathInRepo, content, ts.ScriptTarget.Latest, true);
195
+ // シンボル抽出
196
+ const symbols = extractSymbols(sourceFile);
197
+ // シンボルからスニペットを生成
198
+ const snippets = symbolsToSnippets(symbols);
199
+ // 依存関係を収集
200
+ const dependencies = collectDependencies(pathInRepo, sourceFile, fileSet);
201
+ return { symbols, snippets, dependencies };
168
202
  }
169
- const sourceFile = ts.createSourceFile(pathInRepo, content, ts.ScriptTarget.Latest, true);
170
- const symbols = createSymbolRecords(sourceFile);
171
- const snippets = symbols.map((symbol) => ({
172
- startLine: symbol.rangeStartLine,
173
- endLine: symbol.rangeEndLine,
174
- symbolId: symbol.symbolId,
175
- }));
176
- const dependencies = collectDependencies(pathInRepo, sourceFile, fileSet);
177
- return { symbols, snippets, dependencies };
178
203
  }
179
- export function buildFallbackSnippet(totalLines) {
180
- return { startLine: 1, endLine: totalLines, symbolId: null };
204
+ /**
205
+ * TypeScript アナライザーのファクトリ関数
206
+ */
207
+ export function createTypeScriptAnalyzer() {
208
+ return new TypeScriptAnalyzer();
181
209
  }
182
- //# sourceMappingURL=codeintel.js.map
210
+ //# sourceMappingURL=analyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../../../../src/indexer/codeintel/typescript/analyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * TypeScript Analyzer Module
3
+ *
4
+ * TypeScript/TSX ファイル用の言語アナライザーをエクスポート
5
+ */
6
+ export { TypeScriptAnalyzer, createTypeScriptAnalyzer } from "./analyzer.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/indexer/codeintel/typescript/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * TypeScript Analyzer Module
3
+ *
4
+ * TypeScript/TSX ファイル用の言語アナライザーをエクスポート
5
+ */
6
+ export { TypeScriptAnalyzer, createTypeScriptAnalyzer } from "./analyzer.js";
7
+ //# sourceMappingURL=index.js.map