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.
- package/README.md +65 -22
- package/dist/package.json +4 -2
- package/dist/src/client/proxy.js +0 -0
- package/dist/src/daemon/daemon.js +0 -0
- package/dist/src/indexer/codeintel/dart/adapter.d.ts +36 -0
- package/dist/src/indexer/codeintel/dart/adapter.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/dart/adapter.js +60 -0
- package/dist/src/indexer/codeintel/dart/adapter.js.map +1 -0
- package/dist/src/indexer/codeintel/dart/index.d.ts +7 -0
- package/dist/src/indexer/codeintel/dart/index.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/dart/index.js +7 -0
- package/dist/src/indexer/codeintel/dart/index.js.map +1 -0
- package/dist/src/indexer/codeintel/index.d.ts +30 -0
- package/dist/src/indexer/codeintel/index.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/index.js +32 -0
- package/dist/src/indexer/codeintel/index.js.map +1 -0
- package/dist/src/indexer/codeintel/java/analyzer.d.ts +22 -0
- package/dist/src/indexer/codeintel/java/analyzer.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/java/analyzer.js +281 -0
- package/dist/src/indexer/codeintel/java/analyzer.js.map +1 -0
- package/dist/src/indexer/codeintel/java/index.d.ts +7 -0
- package/dist/src/indexer/codeintel/java/index.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/java/index.js +7 -0
- package/dist/src/indexer/codeintel/java/index.js.map +1 -0
- package/dist/src/indexer/codeintel/php/analyzer.d.ts +23 -0
- package/dist/src/indexer/codeintel/php/analyzer.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/php/analyzer.js +342 -0
- package/dist/src/indexer/codeintel/php/analyzer.js.map +1 -0
- package/dist/src/indexer/codeintel/php/index.d.ts +7 -0
- package/dist/src/indexer/codeintel/php/index.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/php/index.js +7 -0
- package/dist/src/indexer/codeintel/php/index.js.map +1 -0
- package/dist/src/indexer/codeintel/registry.d.ts +76 -0
- package/dist/src/indexer/codeintel/registry.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/registry.js +127 -0
- package/dist/src/indexer/codeintel/registry.js.map +1 -0
- package/dist/src/indexer/codeintel/rust/analyzer.d.ts +14 -0
- package/dist/src/indexer/codeintel/rust/analyzer.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/rust/analyzer.js +388 -0
- package/dist/src/indexer/codeintel/rust/analyzer.js.map +1 -0
- package/dist/src/indexer/codeintel/rust/index.d.ts +5 -0
- package/dist/src/indexer/codeintel/rust/index.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/rust/index.js +5 -0
- package/dist/src/indexer/codeintel/rust/index.js.map +1 -0
- package/dist/src/indexer/codeintel/swift/analyzer.d.ts +22 -0
- package/dist/src/indexer/codeintel/swift/analyzer.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/swift/analyzer.js +271 -0
- package/dist/src/indexer/codeintel/swift/analyzer.js.map +1 -0
- package/dist/src/indexer/codeintel/swift/index.d.ts +7 -0
- package/dist/src/indexer/codeintel/swift/index.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/swift/index.js +7 -0
- package/dist/src/indexer/codeintel/swift/index.js.map +1 -0
- package/dist/src/indexer/codeintel/types.d.ts +114 -0
- package/dist/src/indexer/codeintel/types.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/types.js +13 -0
- package/dist/src/indexer/codeintel/types.js.map +1 -0
- package/dist/src/indexer/codeintel/typescript/analyzer.d.ts +22 -0
- package/dist/src/indexer/codeintel/typescript/analyzer.d.ts.map +1 -0
- package/dist/{indexer/codeintel.js → src/indexer/codeintel/typescript/analyzer.js} +62 -34
- package/dist/src/indexer/codeintel/typescript/analyzer.js.map +1 -0
- package/dist/src/indexer/codeintel/typescript/index.d.ts +7 -0
- package/dist/src/indexer/codeintel/typescript/index.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/typescript/index.js +7 -0
- package/dist/src/indexer/codeintel/typescript/index.js.map +1 -0
- package/dist/src/indexer/codeintel/utils.d.ts +91 -0
- package/dist/src/indexer/codeintel/utils.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/utils.js +145 -0
- package/dist/src/indexer/codeintel/utils.js.map +1 -0
- package/dist/src/indexer/codeintel.d.ts +33 -26
- package/dist/src/indexer/codeintel.d.ts.map +1 -1
- package/dist/src/indexer/codeintel.js +56 -1078
- package/dist/src/indexer/codeintel.js.map +1 -1
- package/dist/src/indexer/graph-metrics.d.ts.map +1 -1
- package/dist/src/indexer/graph-metrics.js +16 -4
- package/dist/src/indexer/graph-metrics.js.map +1 -1
- package/dist/src/server/boost-profiles.d.ts +1 -1
- package/dist/src/server/boost-profiles.d.ts.map +1 -1
- package/dist/src/server/boost-profiles.js +22 -0
- package/dist/src/server/boost-profiles.js.map +1 -1
- package/dist/src/server/main.js +0 -0
- package/dist/src/server/rpc.js +4 -4
- package/dist/src/server/rpc.js.map +1 -1
- package/package.json +10 -2
- package/dist/client/cli.js +0 -68
- package/dist/client/cli.js.map +0 -1
- package/dist/client/index.js +0 -5
- package/dist/client/index.js.map +0 -1
- package/dist/eval/metrics.js +0 -47
- package/dist/eval/metrics.js.map +0 -1
- package/dist/indexer/cli.js +0 -362
- package/dist/indexer/cli.js.map +0 -1
- package/dist/indexer/codeintel.js.map +0 -1
- package/dist/indexer/git.js +0 -30
- package/dist/indexer/git.js.map +0 -1
- package/dist/indexer/language.js +0 -34
- package/dist/indexer/language.js.map +0 -1
- package/dist/indexer/pipeline/filters/denylist.js +0 -71
- package/dist/indexer/pipeline/filters/denylist.js.map +0 -1
- package/dist/indexer/schema.js +0 -101
- package/dist/indexer/schema.js.map +0 -1
- package/dist/server/bootstrap.js +0 -19
- package/dist/server/bootstrap.js.map +0 -1
- package/dist/server/context.js +0 -1
- package/dist/server/context.js.map +0 -1
- package/dist/server/fallbacks/degradeController.js +0 -69
- package/dist/server/fallbacks/degradeController.js.map +0 -1
- package/dist/server/handlers.js +0 -1268
- package/dist/server/handlers.js.map +0 -1
- package/dist/server/main.js +0 -151
- package/dist/server/main.js.map +0 -1
- package/dist/server/observability/metrics.js +0 -56
- package/dist/server/observability/metrics.js.map +0 -1
- package/dist/server/observability/tracing.js +0 -58
- package/dist/server/observability/tracing.js.map +0 -1
- package/dist/server/rpc.js +0 -477
- package/dist/server/rpc.js.map +0 -1
- package/dist/server/runtime.js +0 -47
- package/dist/server/runtime.js.map +0 -1
- package/dist/server/scoring.js +0 -116
- package/dist/server/scoring.js.map +0 -1
- package/dist/server/stdio.js +0 -76
- package/dist/server/stdio.js.map +0 -1
- package/dist/shared/duckdb.js +0 -119
- package/dist/shared/duckdb.js.map +0 -1
- package/dist/shared/embedding.js +0 -98
- package/dist/shared/embedding.js.map +0 -1
- package/dist/shared/index.js +0 -9
- package/dist/shared/index.js.map +0 -1
- package/dist/shared/security/config.js +0 -64
- package/dist/shared/security/config.js.map +0 -1
- package/dist/shared/security/masker.js +0 -56
- package/dist/shared/security/masker.js.map +0 -1
- package/dist/shared/tokenizer.js +0 -4
- package/dist/shared/tokenizer.js.map +0 -1
- package/dist/shared/utils/simpleYaml.js +0 -89
- package/dist/shared/utils/simpleYaml.js.map +0 -1
- package/dist/src/server/rrf.d.ts +0 -86
- package/dist/src/server/rrf.d.ts.map +0 -1
- package/dist/src/server/rrf.js +0 -108
- package/dist/src/server/rrf.js.map +0 -1
- package/dist/src/shared/embedding/engine.d.ts +0 -38
- package/dist/src/shared/embedding/engine.d.ts.map +0 -1
- package/dist/src/shared/embedding/engine.js +0 -6
- package/dist/src/shared/embedding/engine.js.map +0 -1
- package/dist/src/shared/embedding/lsh-engine.d.ts +0 -11
- package/dist/src/shared/embedding/lsh-engine.d.ts.map +0 -1
- package/dist/src/shared/embedding/lsh-engine.js +0 -14
- package/dist/src/shared/embedding/lsh-engine.js.map +0 -1
- package/dist/src/shared/embedding/registry.d.ts +0 -25
- package/dist/src/shared/embedding/registry.d.ts.map +0 -1
- package/dist/src/shared/embedding/registry.js +0 -50
- package/dist/src/shared/embedding/registry.js.map +0 -1
- package/dist/src/shared/embedding/semantic-engine.d.ts +0 -14
- package/dist/src/shared/embedding/semantic-engine.d.ts.map +0 -1
- package/dist/src/shared/embedding/semantic-engine.js +0 -50
- package/dist/src/shared/embedding/semantic-engine.js.map +0 -1
- package/dist/src/shared/models/model-manager.d.ts +0 -38
- package/dist/src/shared/models/model-manager.d.ts.map +0 -1
- package/dist/src/shared/models/model-manager.js +0 -116
- package/dist/src/shared/models/model-manager.js.map +0 -1
- package/dist/src/shared/models/model-manifest.d.ts +0 -22
- package/dist/src/shared/models/model-manifest.d.ts.map +0 -1
- package/dist/src/shared/models/model-manifest.js +0 -24
- 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 @@
|
|
|
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 @@
|
|
|
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
|
-
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
function
|
|
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
|
|
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
|
|
181
|
+
return getDependencies();
|
|
163
182
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
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
|
-
|
|
180
|
-
|
|
204
|
+
/**
|
|
205
|
+
* TypeScript アナライザーのファクトリ関数
|
|
206
|
+
*/
|
|
207
|
+
export function createTypeScriptAnalyzer() {
|
|
208
|
+
return new TypeScriptAnalyzer();
|
|
181
209
|
}
|
|
182
|
-
//# sourceMappingURL=
|
|
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 @@
|
|
|
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"}
|