@react-native-nitro-device-info/mcp-server 1.0.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 +220 -0
- package/dist/cli/init.d.ts +12 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +153 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +375 -0
- package/dist/index.js.map +1 -0
- package/dist/indexer/api-parser.d.ts +23 -0
- package/dist/indexer/api-parser.d.ts.map +1 -0
- package/dist/indexer/api-parser.js +404 -0
- package/dist/indexer/api-parser.js.map +1 -0
- package/dist/indexer/doc-parser.d.ts +38 -0
- package/dist/indexer/doc-parser.d.ts.map +1 -0
- package/dist/indexer/doc-parser.js +359 -0
- package/dist/indexer/doc-parser.js.map +1 -0
- package/dist/indexer/index.d.ts +54 -0
- package/dist/indexer/index.d.ts.map +1 -0
- package/dist/indexer/index.js +151 -0
- package/dist/indexer/index.js.map +1 -0
- package/dist/indexer/search.d.ts +36 -0
- package/dist/indexer/search.d.ts.map +1 -0
- package/dist/indexer/search.js +511 -0
- package/dist/indexer/search.js.map +1 -0
- package/dist/tools/get-api.d.ts +26 -0
- package/dist/tools/get-api.d.ts.map +1 -0
- package/dist/tools/get-api.js +229 -0
- package/dist/tools/get-api.js.map +1 -0
- package/dist/tools/list-apis.d.ts +32 -0
- package/dist/tools/list-apis.d.ts.map +1 -0
- package/dist/tools/list-apis.js +210 -0
- package/dist/tools/list-apis.js.map +1 -0
- package/dist/tools/search-docs.d.ts +32 -0
- package/dist/tools/search-docs.d.ts.map +1 -0
- package/dist/tools/search-docs.js +148 -0
- package/dist/tools/search-docs.js.map +1 -0
- package/dist/types/index.d.ts +166 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +9 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1,511 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* BM25 Search Implementation
|
|
4
|
+
*
|
|
5
|
+
* Implements the BM25 (Best Matching 25) ranking function for
|
|
6
|
+
* document retrieval with term frequency and document length normalization.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.tokenize = tokenize;
|
|
10
|
+
exports.stem = stem;
|
|
11
|
+
exports.processText = processText;
|
|
12
|
+
exports.search = search;
|
|
13
|
+
exports.buildSearchIndex = buildSearchIndex;
|
|
14
|
+
exports.levenshteinDistance = levenshteinDistance;
|
|
15
|
+
exports.findSimilarApis = findSimilarApis;
|
|
16
|
+
// BM25 parameters (tuned for documentation search)
|
|
17
|
+
const K1 = 1.2; // Term frequency saturation
|
|
18
|
+
const B = 0.75; // Document length normalization
|
|
19
|
+
// Stopwords to filter from queries
|
|
20
|
+
const STOPWORDS = new Set([
|
|
21
|
+
'the',
|
|
22
|
+
'a',
|
|
23
|
+
'an',
|
|
24
|
+
'is',
|
|
25
|
+
'are',
|
|
26
|
+
'was',
|
|
27
|
+
'were',
|
|
28
|
+
'be',
|
|
29
|
+
'been',
|
|
30
|
+
'being',
|
|
31
|
+
'have',
|
|
32
|
+
'has',
|
|
33
|
+
'had',
|
|
34
|
+
'do',
|
|
35
|
+
'does',
|
|
36
|
+
'did',
|
|
37
|
+
'will',
|
|
38
|
+
'would',
|
|
39
|
+
'could',
|
|
40
|
+
'should',
|
|
41
|
+
'may',
|
|
42
|
+
'might',
|
|
43
|
+
'must',
|
|
44
|
+
'shall',
|
|
45
|
+
'can',
|
|
46
|
+
'need',
|
|
47
|
+
'dare',
|
|
48
|
+
'ought',
|
|
49
|
+
'used',
|
|
50
|
+
'to',
|
|
51
|
+
'of',
|
|
52
|
+
'in',
|
|
53
|
+
'for',
|
|
54
|
+
'on',
|
|
55
|
+
'with',
|
|
56
|
+
'at',
|
|
57
|
+
'by',
|
|
58
|
+
'from',
|
|
59
|
+
'as',
|
|
60
|
+
'into',
|
|
61
|
+
'through',
|
|
62
|
+
'during',
|
|
63
|
+
'before',
|
|
64
|
+
'after',
|
|
65
|
+
'above',
|
|
66
|
+
'below',
|
|
67
|
+
'between',
|
|
68
|
+
'under',
|
|
69
|
+
'again',
|
|
70
|
+
'further',
|
|
71
|
+
'then',
|
|
72
|
+
'once',
|
|
73
|
+
'here',
|
|
74
|
+
'there',
|
|
75
|
+
'when',
|
|
76
|
+
'where',
|
|
77
|
+
'why',
|
|
78
|
+
'how',
|
|
79
|
+
'all',
|
|
80
|
+
'each',
|
|
81
|
+
'few',
|
|
82
|
+
'more',
|
|
83
|
+
'most',
|
|
84
|
+
'other',
|
|
85
|
+
'some',
|
|
86
|
+
'such',
|
|
87
|
+
'no',
|
|
88
|
+
'nor',
|
|
89
|
+
'not',
|
|
90
|
+
'only',
|
|
91
|
+
'own',
|
|
92
|
+
'same',
|
|
93
|
+
'so',
|
|
94
|
+
'than',
|
|
95
|
+
'too',
|
|
96
|
+
'very',
|
|
97
|
+
'just',
|
|
98
|
+
'and',
|
|
99
|
+
'but',
|
|
100
|
+
'if',
|
|
101
|
+
'or',
|
|
102
|
+
'because',
|
|
103
|
+
'until',
|
|
104
|
+
'while',
|
|
105
|
+
'although',
|
|
106
|
+
'this',
|
|
107
|
+
'that',
|
|
108
|
+
'these',
|
|
109
|
+
'those',
|
|
110
|
+
'am',
|
|
111
|
+
'it',
|
|
112
|
+
'its',
|
|
113
|
+
'i',
|
|
114
|
+
'me',
|
|
115
|
+
'my',
|
|
116
|
+
'we',
|
|
117
|
+
'our',
|
|
118
|
+
'you',
|
|
119
|
+
'your',
|
|
120
|
+
'he',
|
|
121
|
+
'him',
|
|
122
|
+
'his',
|
|
123
|
+
'she',
|
|
124
|
+
'her',
|
|
125
|
+
'they',
|
|
126
|
+
'them',
|
|
127
|
+
'their',
|
|
128
|
+
'what',
|
|
129
|
+
'which',
|
|
130
|
+
'who',
|
|
131
|
+
'whom',
|
|
132
|
+
'get',
|
|
133
|
+
'getting',
|
|
134
|
+
]);
|
|
135
|
+
/**
|
|
136
|
+
* Tokenize text into normalized terms
|
|
137
|
+
*/
|
|
138
|
+
function tokenize(text) {
|
|
139
|
+
return text
|
|
140
|
+
.toLowerCase()
|
|
141
|
+
.replace(/[^a-z0-9\s]/g, ' ')
|
|
142
|
+
.split(/\s+/)
|
|
143
|
+
.filter((term) => term.length > 1 && !STOPWORDS.has(term));
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Apply simple stemming (suffix stripping)
|
|
147
|
+
*/
|
|
148
|
+
function stem(word) {
|
|
149
|
+
// Simple suffix stripping for common English suffixes
|
|
150
|
+
if (word.endsWith('ing') && word.length > 5) {
|
|
151
|
+
return word.slice(0, -3);
|
|
152
|
+
}
|
|
153
|
+
if (word.endsWith('ed') && word.length > 4) {
|
|
154
|
+
return word.slice(0, -2);
|
|
155
|
+
}
|
|
156
|
+
if (word.endsWith('s') && !word.endsWith('ss') && word.length > 3) {
|
|
157
|
+
return word.slice(0, -1);
|
|
158
|
+
}
|
|
159
|
+
if (word.endsWith('ly') && word.length > 4) {
|
|
160
|
+
return word.slice(0, -2);
|
|
161
|
+
}
|
|
162
|
+
if (word.endsWith('ies') && word.length > 4) {
|
|
163
|
+
return word.slice(0, -3) + 'y';
|
|
164
|
+
}
|
|
165
|
+
return word;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Tokenize and stem text
|
|
169
|
+
*/
|
|
170
|
+
function processText(text) {
|
|
171
|
+
return tokenize(text).map(stem);
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Get document ID for an item
|
|
175
|
+
*/
|
|
176
|
+
function getDocumentId(item, type) {
|
|
177
|
+
if (type === 'api') {
|
|
178
|
+
return `api:${item.name}`;
|
|
179
|
+
}
|
|
180
|
+
return `doc:${item.id}`;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Get searchable text from an API definition
|
|
184
|
+
*/
|
|
185
|
+
function getApiSearchText(api) {
|
|
186
|
+
return [
|
|
187
|
+
api.name,
|
|
188
|
+
api.description,
|
|
189
|
+
api.signature,
|
|
190
|
+
api.returnType,
|
|
191
|
+
...api.parameters.map((p) => `${p.name} ${p.type} ${p.description}`),
|
|
192
|
+
...api.examples,
|
|
193
|
+
api.category,
|
|
194
|
+
].join(' ');
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Get searchable text from a documentation chunk
|
|
198
|
+
*/
|
|
199
|
+
function getChunkSearchText(chunk) {
|
|
200
|
+
return [chunk.title, chunk.content, ...chunk.mentionedApis].join(' ');
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Calculate IDF (Inverse Document Frequency)
|
|
204
|
+
*/
|
|
205
|
+
function calculateIdf(documentFrequency, totalDocuments) {
|
|
206
|
+
return Math.log((totalDocuments - documentFrequency + 0.5) / (documentFrequency + 0.5) + 1);
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Calculate BM25 score for a document
|
|
210
|
+
*/
|
|
211
|
+
function calculateBm25Score(termFrequencies, queryTerms, documentLength, avgDocumentLength, termDocumentFrequencies, totalDocuments) {
|
|
212
|
+
let score = 0;
|
|
213
|
+
for (const term of queryTerms) {
|
|
214
|
+
const tf = termFrequencies.get(term) || 0;
|
|
215
|
+
const df = termDocumentFrequencies.get(term) || 0;
|
|
216
|
+
if (tf === 0)
|
|
217
|
+
continue;
|
|
218
|
+
const idf = calculateIdf(df, totalDocuments);
|
|
219
|
+
const numerator = tf * (K1 + 1);
|
|
220
|
+
const denominator = tf + K1 * (1 - B + B * (documentLength / avgDocumentLength));
|
|
221
|
+
score += idf * (numerator / denominator);
|
|
222
|
+
}
|
|
223
|
+
return score;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Search the index with BM25 ranking
|
|
227
|
+
*/
|
|
228
|
+
function search(index, query, limit = 5, filters = {}) {
|
|
229
|
+
const queryTerms = processText(query);
|
|
230
|
+
if (queryTerms.length === 0) {
|
|
231
|
+
return [];
|
|
232
|
+
}
|
|
233
|
+
const results = [];
|
|
234
|
+
// Search APIs
|
|
235
|
+
if (filters.type === 'all' || filters.type === 'api' || !filters.type) {
|
|
236
|
+
for (const [, api] of index.apis) {
|
|
237
|
+
// Apply filters
|
|
238
|
+
if (filters.category && filters.category !== 'all') {
|
|
239
|
+
if (api.category !== filters.category)
|
|
240
|
+
continue;
|
|
241
|
+
}
|
|
242
|
+
if (filters.kind && filters.kind !== 'all') {
|
|
243
|
+
if (api.kind !== filters.kind)
|
|
244
|
+
continue;
|
|
245
|
+
}
|
|
246
|
+
if (filters.platform && filters.platform !== 'all') {
|
|
247
|
+
const platformType = api.platform.type;
|
|
248
|
+
if (filters.platform === 'ios') {
|
|
249
|
+
if (platformType !== 'ios' && platformType !== 'ios-only' && platformType !== 'both') {
|
|
250
|
+
continue;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
else if (filters.platform === 'android') {
|
|
254
|
+
if (platformType !== 'android' && platformType !== 'android-only' && platformType !== 'both') {
|
|
255
|
+
continue;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
else if (filters.platform === 'both') {
|
|
259
|
+
if (platformType !== 'both')
|
|
260
|
+
continue;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
const docId = getDocumentId(api, 'api');
|
|
264
|
+
const searchText = getApiSearchText(api);
|
|
265
|
+
const terms = processText(searchText);
|
|
266
|
+
// Calculate term frequencies for this document
|
|
267
|
+
const termFreqs = new Map();
|
|
268
|
+
for (const term of terms) {
|
|
269
|
+
termFreqs.set(term, (termFreqs.get(term) || 0) + 1);
|
|
270
|
+
}
|
|
271
|
+
const score = calculateBm25Score(termFreqs, queryTerms, index.documentLengths.get(docId) || terms.length, index.averageDocumentLength, index.termDocumentFrequencies, index.documentCount);
|
|
272
|
+
// Boost exact name matches
|
|
273
|
+
const nameLower = api.name.toLowerCase();
|
|
274
|
+
const queryLower = query.toLowerCase();
|
|
275
|
+
let boostedScore = score;
|
|
276
|
+
if (nameLower === queryLower) {
|
|
277
|
+
boostedScore *= 3;
|
|
278
|
+
}
|
|
279
|
+
else if (nameLower.includes(queryLower) || queryLower.includes(nameLower)) {
|
|
280
|
+
boostedScore *= 1.5;
|
|
281
|
+
}
|
|
282
|
+
if (boostedScore > 0) {
|
|
283
|
+
results.push({
|
|
284
|
+
item: api,
|
|
285
|
+
score: boostedScore,
|
|
286
|
+
type: 'api',
|
|
287
|
+
highlights: generateHighlights(api, queryTerms),
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
// Search documentation chunks
|
|
293
|
+
if (filters.type === 'all' || filters.type === 'guide' || !filters.type) {
|
|
294
|
+
for (const chunk of index.chunks) {
|
|
295
|
+
// Apply platform filter for documentation
|
|
296
|
+
if (filters.platform && filters.platform !== 'all') {
|
|
297
|
+
if (chunk.platforms.length > 0) {
|
|
298
|
+
if (filters.platform === 'ios' && !chunk.platforms.includes('ios')) {
|
|
299
|
+
continue;
|
|
300
|
+
}
|
|
301
|
+
if (filters.platform === 'android' && !chunk.platforms.includes('android')) {
|
|
302
|
+
continue;
|
|
303
|
+
}
|
|
304
|
+
if (filters.platform === 'both') {
|
|
305
|
+
if (!chunk.platforms.includes('ios') || !chunk.platforms.includes('android')) {
|
|
306
|
+
continue;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
const docId = getDocumentId(chunk, 'documentation');
|
|
312
|
+
const searchText = getChunkSearchText(chunk);
|
|
313
|
+
const terms = processText(searchText);
|
|
314
|
+
const termFreqs = new Map();
|
|
315
|
+
for (const term of terms) {
|
|
316
|
+
termFreqs.set(term, (termFreqs.get(term) || 0) + 1);
|
|
317
|
+
}
|
|
318
|
+
const score = calculateBm25Score(termFreqs, queryTerms, index.documentLengths.get(docId) || terms.length, index.averageDocumentLength, index.termDocumentFrequencies, index.documentCount);
|
|
319
|
+
// Boost platform-specific content when query mentions platform
|
|
320
|
+
let boostedScore = score;
|
|
321
|
+
if (queryLower(query, 'ios') && chunk.platforms.includes('ios')) {
|
|
322
|
+
boostedScore *= 1.3;
|
|
323
|
+
}
|
|
324
|
+
if (queryLower(query, 'android') && chunk.platforms.includes('android')) {
|
|
325
|
+
boostedScore *= 1.3;
|
|
326
|
+
}
|
|
327
|
+
if (boostedScore > 0) {
|
|
328
|
+
results.push({
|
|
329
|
+
item: chunk,
|
|
330
|
+
score: boostedScore,
|
|
331
|
+
type: 'documentation',
|
|
332
|
+
highlights: generateChunkHighlights(chunk, queryTerms),
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
// Sort by score descending and limit
|
|
338
|
+
results.sort((a, b) => b.score - a.score);
|
|
339
|
+
// Normalize scores to 0-100 range
|
|
340
|
+
const maxScore = results.length > 0 ? results[0].score : 1;
|
|
341
|
+
for (const result of results) {
|
|
342
|
+
result.score = Math.round((result.score / maxScore) * 100);
|
|
343
|
+
}
|
|
344
|
+
return results.slice(0, limit);
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Check if query mentions a term (case-insensitive)
|
|
348
|
+
*/
|
|
349
|
+
function queryLower(query, term) {
|
|
350
|
+
return query.toLowerCase().includes(term.toLowerCase());
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Generate highlights for API search results
|
|
354
|
+
*/
|
|
355
|
+
function generateHighlights(api, queryTerms) {
|
|
356
|
+
const highlights = [];
|
|
357
|
+
// Check name
|
|
358
|
+
if (queryTerms.some((term) => api.name.toLowerCase().includes(term))) {
|
|
359
|
+
highlights.push({ field: 'name', excerpt: api.name });
|
|
360
|
+
}
|
|
361
|
+
// Check description
|
|
362
|
+
const descTerms = processText(api.description);
|
|
363
|
+
if (queryTerms.some((term) => descTerms.includes(term))) {
|
|
364
|
+
highlights.push({
|
|
365
|
+
field: 'description',
|
|
366
|
+
excerpt: api.description.length > 150
|
|
367
|
+
? api.description.slice(0, 150) + '...'
|
|
368
|
+
: api.description,
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
return highlights;
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Generate highlights for documentation chunk search results
|
|
375
|
+
*/
|
|
376
|
+
function generateChunkHighlights(chunk, queryTerms) {
|
|
377
|
+
const highlights = [];
|
|
378
|
+
// Check title
|
|
379
|
+
if (queryTerms.some((term) => processText(chunk.title).includes(term))) {
|
|
380
|
+
highlights.push({ field: 'title', excerpt: chunk.title });
|
|
381
|
+
}
|
|
382
|
+
// Check content - find matching section
|
|
383
|
+
const sentences = chunk.content.split(/[.!?]+/);
|
|
384
|
+
for (const sentence of sentences) {
|
|
385
|
+
const sentenceTerms = processText(sentence);
|
|
386
|
+
if (queryTerms.some((term) => sentenceTerms.includes(term))) {
|
|
387
|
+
highlights.push({
|
|
388
|
+
field: 'content',
|
|
389
|
+
excerpt: sentence.trim().slice(0, 200),
|
|
390
|
+
});
|
|
391
|
+
break;
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
return highlights;
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* Build search index from APIs and documentation chunks
|
|
398
|
+
*/
|
|
399
|
+
function buildSearchIndex(apis, chunks) {
|
|
400
|
+
const index = {
|
|
401
|
+
apis: new Map(),
|
|
402
|
+
chunks: [],
|
|
403
|
+
invertedIndex: new Map(),
|
|
404
|
+
documentLengths: new Map(),
|
|
405
|
+
averageDocumentLength: 0,
|
|
406
|
+
documentCount: 0,
|
|
407
|
+
termDocumentFrequencies: new Map(),
|
|
408
|
+
};
|
|
409
|
+
let totalLength = 0;
|
|
410
|
+
// Index APIs
|
|
411
|
+
for (const api of apis) {
|
|
412
|
+
const docId = `api:${api.name}`;
|
|
413
|
+
index.apis.set(api.name, api);
|
|
414
|
+
const searchText = getApiSearchText(api);
|
|
415
|
+
const terms = processText(searchText);
|
|
416
|
+
index.documentLengths.set(docId, terms.length);
|
|
417
|
+
totalLength += terms.length;
|
|
418
|
+
index.documentCount++;
|
|
419
|
+
// Build inverted index
|
|
420
|
+
const uniqueTerms = new Set(terms);
|
|
421
|
+
for (const term of uniqueTerms) {
|
|
422
|
+
if (!index.invertedIndex.has(term)) {
|
|
423
|
+
index.invertedIndex.set(term, new Set());
|
|
424
|
+
}
|
|
425
|
+
index.invertedIndex.get(term).add(docId);
|
|
426
|
+
// Update document frequency
|
|
427
|
+
index.termDocumentFrequencies.set(term, (index.termDocumentFrequencies.get(term) || 0) + 1);
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
// Index documentation chunks
|
|
431
|
+
for (const chunk of chunks) {
|
|
432
|
+
const docId = `doc:${chunk.id}`;
|
|
433
|
+
index.chunks.push(chunk);
|
|
434
|
+
const searchText = getChunkSearchText(chunk);
|
|
435
|
+
const terms = processText(searchText);
|
|
436
|
+
index.documentLengths.set(docId, terms.length);
|
|
437
|
+
totalLength += terms.length;
|
|
438
|
+
index.documentCount++;
|
|
439
|
+
// Build inverted index
|
|
440
|
+
const uniqueTerms = new Set(terms);
|
|
441
|
+
for (const term of uniqueTerms) {
|
|
442
|
+
if (!index.invertedIndex.has(term)) {
|
|
443
|
+
index.invertedIndex.set(term, new Set());
|
|
444
|
+
}
|
|
445
|
+
index.invertedIndex.get(term).add(docId);
|
|
446
|
+
index.termDocumentFrequencies.set(term, (index.termDocumentFrequencies.get(term) || 0) + 1);
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
index.averageDocumentLength =
|
|
450
|
+
index.documentCount > 0 ? totalLength / index.documentCount : 0;
|
|
451
|
+
return index;
|
|
452
|
+
}
|
|
453
|
+
/**
|
|
454
|
+
* Calculate Levenshtein distance between two strings
|
|
455
|
+
*/
|
|
456
|
+
function levenshteinDistance(a, b) {
|
|
457
|
+
const matrix = [];
|
|
458
|
+
for (let i = 0; i <= b.length; i++) {
|
|
459
|
+
matrix[i] = [i];
|
|
460
|
+
}
|
|
461
|
+
for (let j = 0; j <= a.length; j++) {
|
|
462
|
+
matrix[0][j] = j;
|
|
463
|
+
}
|
|
464
|
+
for (let i = 1; i <= b.length; i++) {
|
|
465
|
+
for (let j = 1; j <= a.length; j++) {
|
|
466
|
+
if (b.charAt(i - 1) === a.charAt(j - 1)) {
|
|
467
|
+
matrix[i][j] = matrix[i - 1][j - 1];
|
|
468
|
+
}
|
|
469
|
+
else {
|
|
470
|
+
matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, // substitution
|
|
471
|
+
matrix[i][j - 1] + 1, // insertion
|
|
472
|
+
matrix[i - 1][j] + 1 // deletion
|
|
473
|
+
);
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
return matrix[b.length][a.length];
|
|
478
|
+
}
|
|
479
|
+
/**
|
|
480
|
+
* Find similar API names using fuzzy matching
|
|
481
|
+
*/
|
|
482
|
+
function findSimilarApis(query, apis, maxDistance = 3, limit = 3) {
|
|
483
|
+
const queryLower = query.toLowerCase();
|
|
484
|
+
const candidates = [];
|
|
485
|
+
for (const [name, api] of apis) {
|
|
486
|
+
const nameLower = name.toLowerCase();
|
|
487
|
+
// Exact match (case-insensitive)
|
|
488
|
+
if (nameLower === queryLower) {
|
|
489
|
+
return [api];
|
|
490
|
+
}
|
|
491
|
+
// Prefix match
|
|
492
|
+
if (nameLower.startsWith(queryLower) || queryLower.startsWith(nameLower)) {
|
|
493
|
+
candidates.push({ api, distance: 0 });
|
|
494
|
+
continue;
|
|
495
|
+
}
|
|
496
|
+
// Substring match
|
|
497
|
+
if (nameLower.includes(queryLower) || queryLower.includes(nameLower)) {
|
|
498
|
+
candidates.push({ api, distance: 1 });
|
|
499
|
+
continue;
|
|
500
|
+
}
|
|
501
|
+
// Levenshtein distance
|
|
502
|
+
const distance = levenshteinDistance(nameLower, queryLower);
|
|
503
|
+
if (distance <= maxDistance) {
|
|
504
|
+
candidates.push({ api, distance });
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
// Sort by distance and return top matches
|
|
508
|
+
candidates.sort((a, b) => a.distance - b.distance);
|
|
509
|
+
return candidates.slice(0, limit).map((c) => c.api);
|
|
510
|
+
}
|
|
511
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/indexer/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* get_api MCP Tool
|
|
3
|
+
*
|
|
4
|
+
* Retrieve detailed information about a specific API method or property.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
import type { SearchIndex } from '../types/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* Input schema for get_api tool
|
|
10
|
+
*/
|
|
11
|
+
export declare const getApiInputSchema: z.ZodObject<{
|
|
12
|
+
name: z.ZodString;
|
|
13
|
+
}, "strip", z.ZodTypeAny, {
|
|
14
|
+
name: string;
|
|
15
|
+
}, {
|
|
16
|
+
name: string;
|
|
17
|
+
}>;
|
|
18
|
+
export type GetApiInput = z.infer<typeof getApiInputSchema>;
|
|
19
|
+
/**
|
|
20
|
+
* Execute get_api tool
|
|
21
|
+
*/
|
|
22
|
+
export declare function executeGetApi(index: SearchIndex, input: GetApiInput): {
|
|
23
|
+
content: string;
|
|
24
|
+
isError: boolean;
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=get-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-api.d.ts","sourceRoot":"","sources":["../../src/tools/get-api.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAA2B,MAAM,mBAAmB,CAAC;AAG9E;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;EAM5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAoM5D;;GAEG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,WAAW,GACjB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAmCvC"}
|