@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.
Files changed (42) hide show
  1. package/README.md +220 -0
  2. package/dist/cli/init.d.ts +12 -0
  3. package/dist/cli/init.d.ts.map +1 -0
  4. package/dist/cli/init.js +153 -0
  5. package/dist/cli/init.js.map +1 -0
  6. package/dist/index.d.ts +14 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +375 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/indexer/api-parser.d.ts +23 -0
  11. package/dist/indexer/api-parser.d.ts.map +1 -0
  12. package/dist/indexer/api-parser.js +404 -0
  13. package/dist/indexer/api-parser.js.map +1 -0
  14. package/dist/indexer/doc-parser.d.ts +38 -0
  15. package/dist/indexer/doc-parser.d.ts.map +1 -0
  16. package/dist/indexer/doc-parser.js +359 -0
  17. package/dist/indexer/doc-parser.js.map +1 -0
  18. package/dist/indexer/index.d.ts +54 -0
  19. package/dist/indexer/index.d.ts.map +1 -0
  20. package/dist/indexer/index.js +151 -0
  21. package/dist/indexer/index.js.map +1 -0
  22. package/dist/indexer/search.d.ts +36 -0
  23. package/dist/indexer/search.d.ts.map +1 -0
  24. package/dist/indexer/search.js +511 -0
  25. package/dist/indexer/search.js.map +1 -0
  26. package/dist/tools/get-api.d.ts +26 -0
  27. package/dist/tools/get-api.d.ts.map +1 -0
  28. package/dist/tools/get-api.js +229 -0
  29. package/dist/tools/get-api.js.map +1 -0
  30. package/dist/tools/list-apis.d.ts +32 -0
  31. package/dist/tools/list-apis.d.ts.map +1 -0
  32. package/dist/tools/list-apis.js +210 -0
  33. package/dist/tools/list-apis.js.map +1 -0
  34. package/dist/tools/search-docs.d.ts +32 -0
  35. package/dist/tools/search-docs.d.ts.map +1 -0
  36. package/dist/tools/search-docs.js +148 -0
  37. package/dist/tools/search-docs.js.map +1 -0
  38. package/dist/types/index.d.ts +166 -0
  39. package/dist/types/index.d.ts.map +1 -0
  40. package/dist/types/index.js +9 -0
  41. package/dist/types/index.js.map +1 -0
  42. package/package.json +59 -0
@@ -0,0 +1,404 @@
1
+ "use strict";
2
+ /**
3
+ * API Parser for DeviceInfo.nitro.ts
4
+ *
5
+ * Extracts method signatures, JSDoc comments, and platform tags
6
+ * from the TypeScript interface definition.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.parseDeviceInfoFile = parseDeviceInfoFile;
43
+ exports.parseDeviceInfoContent = parseDeviceInfoContent;
44
+ exports.getDeviceInfoPath = getDeviceInfoPath;
45
+ const fs = __importStar(require("fs"));
46
+ const path = __importStar(require("path"));
47
+ /**
48
+ * Category keywords mapping for automatic categorization
49
+ */
50
+ const CATEGORY_KEYWORDS = {
51
+ // Battery & Power
52
+ battery: 'battery',
53
+ power: 'battery',
54
+ charging: 'battery',
55
+ lowpower: 'battery',
56
+ // Memory
57
+ memory: 'memory',
58
+ ram: 'memory',
59
+ // Storage
60
+ disk: 'storage',
61
+ storage: 'storage',
62
+ // Network
63
+ ip: 'network',
64
+ mac: 'network',
65
+ carrier: 'network',
66
+ network: 'network',
67
+ // Capabilities
68
+ notch: 'capabilities',
69
+ dynamicisland: 'capabilities',
70
+ emulator: 'capabilities',
71
+ simulator: 'capabilities',
72
+ tablet: 'capabilities',
73
+ camera: 'capabilities',
74
+ fingerprint: 'capabilities',
75
+ gms: 'capabilities',
76
+ hms: 'capabilities',
77
+ feature: 'capabilities',
78
+ landscape: 'capabilities',
79
+ // Application
80
+ version: 'application',
81
+ build: 'application',
82
+ bundle: 'application',
83
+ application: 'application',
84
+ install: 'application',
85
+ referrer: 'application',
86
+ useragent: 'application',
87
+ // Platform-specific
88
+ android: 'platform-specific',
89
+ serial: 'platform-specific',
90
+ security: 'platform-specific',
91
+ bootloader: 'platform-specific',
92
+ codename: 'platform-specific',
93
+ hardware: 'platform-specific',
94
+ incremental: 'platform-specific',
95
+ navigation: 'platform-specific',
96
+ // Display
97
+ brightness: 'display',
98
+ fontscale: 'display',
99
+ display: 'display',
100
+ zoom: 'display',
101
+ // Audio
102
+ headphone: 'audio',
103
+ bluetooth: 'audio',
104
+ audio: 'audio',
105
+ // Location
106
+ location: 'location',
107
+ airplane: 'location',
108
+ // Identification
109
+ unique: 'identification',
110
+ devicetoken: 'identification',
111
+ idfv: 'identification',
112
+ };
113
+ /**
114
+ * Parse JSDoc comment block
115
+ */
116
+ function parseJsDoc(comment) {
117
+ const lines = comment.split('\n').map((l) => l.trim().replace(/^\*\s?/, ''));
118
+ let description = '';
119
+ let platform = { type: 'both' };
120
+ const examples = [];
121
+ const params = [];
122
+ let returns = '';
123
+ let isAsync = false;
124
+ let currentSection = 'description';
125
+ let currentExample = '';
126
+ for (const line of lines) {
127
+ // Check for @tags
128
+ if (line.startsWith('@platform')) {
129
+ const platformText = line.replace('@platform', '').trim().toLowerCase();
130
+ if (platformText.includes('android') && platformText.includes('ios')) {
131
+ platform = { type: 'both' };
132
+ }
133
+ else if (platformText.includes('android only') || platformText === 'android') {
134
+ const apiMatch = platformText.match(/api\s*(\d+)/i);
135
+ platform = {
136
+ type: 'android-only',
137
+ minApiLevel: apiMatch ? parseInt(apiMatch[1]) : undefined,
138
+ };
139
+ }
140
+ else if (platformText.includes('ios only') || platformText === 'ios') {
141
+ const versionMatch = platformText.match(/ios\s*([\d.]+)/i);
142
+ platform = {
143
+ type: 'ios-only',
144
+ minVersion: versionMatch ? versionMatch[1] : undefined,
145
+ };
146
+ }
147
+ else if (platformText.includes('android')) {
148
+ const apiMatch = platformText.match(/api\s*(\d+)/i);
149
+ platform = {
150
+ type: 'android',
151
+ minApiLevel: apiMatch ? parseInt(apiMatch[1]) : undefined,
152
+ };
153
+ }
154
+ else if (platformText.includes('ios')) {
155
+ const versionMatch = platformText.match(/([\d.]+)/);
156
+ platform = {
157
+ type: 'ios',
158
+ minVersion: versionMatch ? versionMatch[1] : undefined,
159
+ };
160
+ }
161
+ continue;
162
+ }
163
+ if (line.startsWith('@example')) {
164
+ currentSection = 'example';
165
+ currentExample = '';
166
+ continue;
167
+ }
168
+ if (line.startsWith('@param')) {
169
+ currentSection = 'param';
170
+ const paramMatch = line.match(/@param\s+(\w+)\s*(.*)/);
171
+ if (paramMatch) {
172
+ params.push({
173
+ name: paramMatch[1],
174
+ type: 'unknown', // Will be extracted from signature
175
+ description: paramMatch[2] || '',
176
+ optional: false,
177
+ });
178
+ }
179
+ continue;
180
+ }
181
+ if (line.startsWith('@returns') || line.startsWith('@return')) {
182
+ currentSection = 'returns';
183
+ returns = line.replace(/@returns?\s*/, '');
184
+ continue;
185
+ }
186
+ if (line.startsWith('@async')) {
187
+ isAsync = true;
188
+ continue;
189
+ }
190
+ if (line.startsWith('@')) {
191
+ // Skip other tags
192
+ currentSection = 'other';
193
+ continue;
194
+ }
195
+ // Accumulate content based on current section
196
+ if (currentSection === 'description' && line && !line.startsWith('```')) {
197
+ description += (description ? ' ' : '') + line;
198
+ }
199
+ else if (currentSection === 'example') {
200
+ currentExample += line + '\n';
201
+ }
202
+ else if (currentSection === 'returns' && line) {
203
+ returns += ' ' + line;
204
+ }
205
+ }
206
+ if (currentExample.trim()) {
207
+ examples.push(currentExample.trim());
208
+ }
209
+ return {
210
+ description: description.trim(),
211
+ platform,
212
+ examples,
213
+ params,
214
+ returns: returns.trim(),
215
+ async: isAsync,
216
+ };
217
+ }
218
+ /**
219
+ * Determine API category based on name and description
220
+ */
221
+ function determineCategory(name, description) {
222
+ const searchText = (name + ' ' + description).toLowerCase();
223
+ for (const [keyword, category] of Object.entries(CATEGORY_KEYWORDS)) {
224
+ if (searchText.includes(keyword)) {
225
+ return category;
226
+ }
227
+ }
228
+ return 'device-info'; // Default category
229
+ }
230
+ /**
231
+ * Parse a single API member (method or property)
232
+ */
233
+ function parseApiMember(memberText, jsDocComment) {
234
+ const jsDoc = parseJsDoc(jsDocComment);
235
+ // Check if it's a readonly property
236
+ const propertyMatch = memberText.match(/readonly\s+(\w+):\s*([^;]+)/);
237
+ if (propertyMatch) {
238
+ const [, name, returnType] = propertyMatch;
239
+ return {
240
+ name,
241
+ description: jsDoc.description,
242
+ kind: 'property',
243
+ signature: `readonly ${name}: ${returnType.trim()}`,
244
+ returnType: returnType.trim(),
245
+ parameters: [],
246
+ platform: jsDoc.platform,
247
+ isAsync: false,
248
+ examples: jsDoc.examples,
249
+ relatedApis: findRelatedApis(name),
250
+ category: determineCategory(name, jsDoc.description),
251
+ };
252
+ }
253
+ // Check if it's a method
254
+ const methodMatch = memberText.match(/(\w+)\s*\(([^)]*)\)\s*:\s*([^;]+)/);
255
+ if (methodMatch) {
256
+ const [, name, paramsStr, returnType] = methodMatch;
257
+ // Parse parameters
258
+ const parameters = [];
259
+ if (paramsStr.trim()) {
260
+ const paramParts = paramsStr.split(',');
261
+ for (const param of paramParts) {
262
+ const paramMatch = param.trim().match(/(\w+)(\?)?:\s*(.+)/);
263
+ if (paramMatch) {
264
+ const [, paramName, optional, paramType] = paramMatch;
265
+ const jsDocParam = jsDoc.params.find((p) => p.name === paramName);
266
+ parameters.push({
267
+ name: paramName,
268
+ type: paramType.trim(),
269
+ description: jsDocParam?.description || '',
270
+ optional: !!optional,
271
+ });
272
+ }
273
+ }
274
+ }
275
+ const isAsync = jsDoc.async || returnType.trim().startsWith('Promise<');
276
+ const cleanReturnType = returnType.trim();
277
+ return {
278
+ name,
279
+ description: jsDoc.description,
280
+ kind: 'method',
281
+ signature: `${name}(${paramsStr.trim()}): ${cleanReturnType}`,
282
+ returnType: cleanReturnType,
283
+ parameters,
284
+ platform: jsDoc.platform,
285
+ isAsync,
286
+ examples: jsDoc.examples,
287
+ relatedApis: findRelatedApis(name),
288
+ category: determineCategory(name, jsDoc.description),
289
+ };
290
+ }
291
+ return null;
292
+ }
293
+ /**
294
+ * Find related APIs based on naming patterns
295
+ */
296
+ function findRelatedApis(name) {
297
+ const related = [];
298
+ const nameLower = name.toLowerCase();
299
+ // Battery-related
300
+ if (nameLower.includes('battery') || nameLower.includes('power') || nameLower.includes('charging')) {
301
+ if (!nameLower.includes('getbatterylevel'))
302
+ related.push('getBatteryLevel');
303
+ if (!nameLower.includes('getpowerstate'))
304
+ related.push('getPowerState');
305
+ if (!nameLower.includes('getisbatterycharging'))
306
+ related.push('getIsBatteryCharging');
307
+ if (!nameLower.includes('islowbatterylevel'))
308
+ related.push('isLowBatteryLevel');
309
+ }
310
+ // Memory-related
311
+ if (nameLower.includes('memory')) {
312
+ if (!nameLower.includes('totalmemory'))
313
+ related.push('totalMemory');
314
+ if (!nameLower.includes('getusedmemory'))
315
+ related.push('getUsedMemory');
316
+ if (!nameLower.includes('maxmemory'))
317
+ related.push('maxMemory');
318
+ }
319
+ // Storage-related
320
+ if (nameLower.includes('disk') || nameLower.includes('storage')) {
321
+ if (!nameLower.includes('totaldiskcapacity'))
322
+ related.push('totalDiskCapacity');
323
+ if (!nameLower.includes('getfreediskstorage'))
324
+ related.push('getFreeDiskStorage');
325
+ }
326
+ // Headphones-related
327
+ if (nameLower.includes('headphone')) {
328
+ if (!nameLower.includes('isheadphonesconnected'))
329
+ related.push('isHeadphonesConnected');
330
+ if (!nameLower.includes('iswiredheadphones'))
331
+ related.push('getIsWiredHeadphonesConnected');
332
+ if (!nameLower.includes('isbluetoothheadphones'))
333
+ related.push('getIsBluetoothHeadphonesConnected');
334
+ }
335
+ // Limit to 3 related APIs
336
+ return related.filter((r) => r.toLowerCase() !== nameLower).slice(0, 3);
337
+ }
338
+ /**
339
+ * Parse DeviceInfo.nitro.ts file and extract all API definitions
340
+ */
341
+ function parseDeviceInfoFile(filePath) {
342
+ const content = fs.readFileSync(filePath, 'utf-8');
343
+ return parseDeviceInfoContent(content);
344
+ }
345
+ /**
346
+ * Parse DeviceInfo content string and extract all API definitions
347
+ */
348
+ function parseDeviceInfoContent(content) {
349
+ const apis = [];
350
+ // Find the DeviceInfo interface
351
+ const interfaceMatch = content.match(/export\s+interface\s+DeviceInfo[\s\S]*?\{([\s\S]*?)\n\}/);
352
+ if (!interfaceMatch) {
353
+ console.warn('Could not find DeviceInfo interface in file');
354
+ return apis;
355
+ }
356
+ const interfaceBody = interfaceMatch[1];
357
+ // Split by JSDoc comments and member declarations
358
+ const memberRegex = /\/\*\*[\s\S]*?\*\/\s*(?:readonly\s+\w+:[^;]+;|\w+\s*\([^)]*\)\s*:[^;]+;)/g;
359
+ const matches = interfaceBody.match(memberRegex);
360
+ if (!matches) {
361
+ return apis;
362
+ }
363
+ for (const match of matches) {
364
+ // Split into JSDoc and member
365
+ const jsDocMatch = match.match(/\/\*\*([\s\S]*?)\*\//);
366
+ const memberMatch = match.match(/\*\/\s*([\s\S]+)/);
367
+ if (jsDocMatch && memberMatch) {
368
+ const jsDoc = jsDocMatch[1];
369
+ const member = memberMatch[1].trim();
370
+ const api = parseApiMember(member, jsDoc);
371
+ if (api) {
372
+ apis.push(api);
373
+ }
374
+ }
375
+ }
376
+ return apis;
377
+ }
378
+ /**
379
+ * Get the path to DeviceInfo.nitro.ts relative to package
380
+ *
381
+ * When running from dist (packages/mcp-server/dist), we need to go up 3 levels
382
+ * to reach the repository root where src/DeviceInfo.nitro.ts lives.
383
+ */
384
+ function getDeviceInfoPath(packageRoot) {
385
+ // Try common locations (ordered from most specific to least)
386
+ const possiblePaths = [
387
+ // From packages/mcp-server/dist -> repo root (3 levels up)
388
+ path.join(packageRoot, '..', '..', '..', 'src', 'DeviceInfo.nitro.ts'),
389
+ // From packages/mcp-server/src -> repo root (3 levels up, for dev mode)
390
+ path.join(packageRoot, '..', '..', '..', 'src', 'DeviceInfo.nitro.ts'),
391
+ // From packages/mcp-server -> repo root (2 levels up)
392
+ path.join(packageRoot, '..', '..', 'src', 'DeviceInfo.nitro.ts'),
393
+ // Legacy paths for other configurations
394
+ path.join(packageRoot, '..', 'src', 'DeviceInfo.nitro.ts'),
395
+ path.join(packageRoot, 'src', 'DeviceInfo.nitro.ts'),
396
+ ];
397
+ for (const p of possiblePaths) {
398
+ if (fs.existsSync(p)) {
399
+ return p;
400
+ }
401
+ }
402
+ throw new Error(`Could not find DeviceInfo.nitro.ts. Searched: ${possiblePaths.join(', ')}`);
403
+ }
404
+ //# sourceMappingURL=api-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-parser.js","sourceRoot":"","sources":["../../src/indexer/api-parser.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgVH,kDAGC;AAKD,wDAwCC;AAQD,8CAuBC;AA7ZD,uCAAyB;AACzB,2CAA6B;AAG7B;;GAEG;AACH,MAAM,iBAAiB,GAAgC;IACrD,kBAAkB;IAClB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IAEnB,SAAS;IACT,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,QAAQ;IAEb,UAAU;IACV,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,SAAS;IAElB,UAAU;IACV,EAAE,EAAE,SAAS;IACb,GAAG,EAAE,SAAS;IACd,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAElB,eAAe;IACf,KAAK,EAAE,cAAc;IACrB,aAAa,EAAE,cAAc;IAC7B,QAAQ,EAAE,cAAc;IACxB,SAAS,EAAE,cAAc;IACzB,MAAM,EAAE,cAAc;IACtB,MAAM,EAAE,cAAc;IACtB,WAAW,EAAE,cAAc;IAC3B,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,cAAc;IACnB,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,cAAc;IAEzB,cAAc;IACd,OAAO,EAAE,aAAa;IACtB,KAAK,EAAE,aAAa;IACpB,MAAM,EAAE,aAAa;IACrB,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,aAAa;IACvB,SAAS,EAAE,aAAa;IAExB,oBAAoB;IACpB,OAAO,EAAE,mBAAmB;IAC5B,MAAM,EAAE,mBAAmB;IAC3B,QAAQ,EAAE,mBAAmB;IAC7B,UAAU,EAAE,mBAAmB;IAC/B,QAAQ,EAAE,mBAAmB;IAC7B,QAAQ,EAAE,mBAAmB;IAC7B,WAAW,EAAE,mBAAmB;IAChC,UAAU,EAAE,mBAAmB;IAE/B,UAAU;IACV,UAAU,EAAE,SAAS;IACrB,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,SAAS;IAEf,QAAQ;IACR,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,OAAO;IAClB,KAAK,EAAE,OAAO;IAEd,WAAW;IACX,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IAEpB,iBAAiB;IACjB,MAAM,EAAE,gBAAgB;IACxB,WAAW,EAAE,gBAAgB;IAC7B,IAAI,EAAE,gBAAgB;CACvB,CAAC;AAEF;;GAEG;AACH,SAAS,UAAU,CAAC,OAAe;IAQjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;IAE7E,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,QAAQ,GAAa,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,IAAI,cAAc,GAAG,aAAa,CAAC;IACnC,IAAI,cAAc,GAAG,EAAE,CAAC;IAExB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,kBAAkB;QAClB,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACxE,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrE,QAAQ,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAC9B,CAAC;iBAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/E,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBACpD,QAAQ,GAAG;oBACT,IAAI,EAAE,cAAc;oBACpB,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC1D,CAAC;YACJ,CAAC;iBAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;gBACvE,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBAC3D,QAAQ,GAAG;oBACT,IAAI,EAAE,UAAU;oBAChB,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;iBACvD,CAAC;YACJ,CAAC;iBAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5C,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBACpD,QAAQ,GAAG;oBACT,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC1D,CAAC;YACJ,CAAC;iBAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxC,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACpD,QAAQ,GAAG;oBACT,IAAI,EAAE,KAAK;oBACX,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;iBACvD,CAAC;YACJ,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,cAAc,GAAG,SAAS,CAAC;YAC3B,cAAc,GAAG,EAAE,CAAC;YACpB,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,cAAc,GAAG,OAAO,CAAC;YACzB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACvD,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;oBACnB,IAAI,EAAE,SAAS,EAAE,mCAAmC;oBACpD,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE;oBAChC,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAC;YACL,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9D,cAAc,GAAG,SAAS,CAAC;YAC3B,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YAC3C,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,OAAO,GAAG,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,kBAAkB;YAClB,cAAc,GAAG,OAAO,CAAC;YACzB,SAAS;QACX,CAAC;QAED,8CAA8C;QAC9C,IAAI,cAAc,KAAK,aAAa,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACxE,WAAW,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QACjD,CAAC;aAAM,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACxC,cAAc,IAAI,IAAI,GAAG,IAAI,CAAC;QAChC,CAAC;aAAM,IAAI,cAAc,KAAK,SAAS,IAAI,IAAI,EAAE,CAAC;YAChD,OAAO,IAAI,GAAG,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAED,IAAI,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,OAAO;QACL,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE;QAC/B,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE;QACvB,KAAK,EAAE,OAAO;KACf,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,IAAY,EAAE,WAAmB;IAC1D,MAAM,UAAU,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;IAE5D,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACpE,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC,CAAC,mBAAmB;AAC3C,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CACrB,UAAkB,EAClB,YAAoB;IAEpB,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAEvC,oCAAoC;IACpC,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CACpC,6BAA6B,CAC9B,CAAC;IACF,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,GAAG,aAAa,CAAC;QAC3C,OAAO;YACL,IAAI;YACJ,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,IAAI,EAAE,UAAU;YAChB,SAAS,EAAE,YAAY,IAAI,KAAK,UAAU,CAAC,IAAI,EAAE,EAAE;YACnD,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE;YAC7B,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC;YAClC,QAAQ,EAAE,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC;SACrD,CAAC;IACJ,CAAC;IAED,yBAAyB;IACzB,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAClC,mCAAmC,CACpC,CAAC;IACF,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,GAAG,WAAW,CAAC;QAEpD,mBAAmB;QACnB,MAAM,UAAU,GAAgB,EAAE,CAAC;QACnC,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YACrB,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxC,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;gBAC/B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBAC5D,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC;oBACtD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;oBAClE,UAAU,CAAC,IAAI,CAAC;wBACd,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE;wBACtB,WAAW,EAAE,UAAU,EAAE,WAAW,IAAI,EAAE;wBAC1C,QAAQ,EAAE,CAAC,CAAC,QAAQ;qBACrB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GACX,KAAK,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,eAAe,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;QAE1C,OAAO;YACL,IAAI;YACJ,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,GAAG,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,eAAe,EAAE;YAC7D,UAAU,EAAE,eAAe;YAC3B,UAAU;YACV,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,OAAO;YACP,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC;YAClC,QAAQ,EAAE,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC;SACrD,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAErC,kBAAkB;IAClB,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACnG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5E,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACtF,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAClF,CAAC;IAED,iBAAiB;IACjB,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClE,CAAC;IAED,kBAAkB;IAClB,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAChE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChF,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACpF,CAAC;IAED,qBAAqB;IACrB,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACxF,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC5F,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACtG,CAAC;IAED,0BAA0B;IAC1B,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,QAAgB;IAClD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnD,OAAO,sBAAsB,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB,CAAC,OAAe;IACpD,MAAM,IAAI,GAAoB,EAAE,CAAC;IAEjC,gCAAgC;IAChC,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAClC,yDAAyD,CAC1D,CAAC;IAEF,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAExC,kDAAkD;IAClD,MAAM,WAAW,GAAG,2EAA2E,CAAC;IAChG,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAEjD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,8BAA8B;QAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAEpD,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAErC,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC1C,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,WAAmB;IACnD,6DAA6D;IAC7D,MAAM,aAAa,GAAG;QACpB,2DAA2D;QAC3D,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,qBAAqB,CAAC;QACtE,wEAAwE;QACxE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,qBAAqB,CAAC;QACtE,sDAAsD;QACtD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,qBAAqB,CAAC;QAChE,wCAAwC;QACxC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,qBAAqB,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,qBAAqB,CAAC;KACrD,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9B,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CACb,iDAAiD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5E,CAAC;AACJ,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Documentation Parser
3
+ *
4
+ * Parses markdown documentation files with heading-based chunking
5
+ * for searchable documentation sections.
6
+ */
7
+ import type { DocumentationChunk } from '../types/index.js';
8
+ /**
9
+ * Parse a single markdown file into documentation chunks
10
+ */
11
+ export declare function parseMarkdownFile(filePath: string): DocumentationChunk[];
12
+ /**
13
+ * Parse markdown content string into documentation chunks
14
+ */
15
+ export declare function parseMarkdownContent(content: string, source?: string): DocumentationChunk[];
16
+ /**
17
+ * Parse all markdown files in a directory
18
+ */
19
+ export declare function parseDocsDirectory(dirPath: string): DocumentationChunk[];
20
+ /**
21
+ * Get documentation paths relative to package root
22
+ *
23
+ * When running from dist (packages/mcp-server/dist), we need to go up 3 levels
24
+ * to reach the repository root where docs/ lives.
25
+ */
26
+ export declare function getDocsPaths(packageRoot: string): string[];
27
+ /**
28
+ * Parse README file for quick reference content
29
+ *
30
+ * When running from dist (packages/mcp-server/dist), we need to go up 3 levels
31
+ * to reach the repository root where README.md lives.
32
+ */
33
+ export declare function parseReadme(packageRoot: string): DocumentationChunk[];
34
+ /**
35
+ * Create platform limitation documentation chunks
36
+ */
37
+ export declare function createPlatformLimitationChunks(): DocumentationChunk[];
38
+ //# sourceMappingURL=doc-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-parser.d.ts","sourceRoot":"","sources":["../../src/indexer/doc-parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAgB,MAAM,mBAAmB,CAAC;AAkG1E;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAGxE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,MAAkB,GACzB,kBAAkB,EAAE,CA2FtB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE,CA2BxE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAc1D;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAsBrE;AAED;;GAEG;AACH,wBAAgB,8BAA8B,IAAI,kBAAkB,EAAE,CAuErE"}