@justmpm/deps-consult 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 +227 -0
- package/build/cache/package-cache.d.ts +39 -0
- package/build/cache/package-cache.d.ts.map +1 -0
- package/build/cache/package-cache.js +90 -0
- package/build/cache/package-cache.js.map +1 -0
- package/build/extractors/api-extractor.d.ts +6 -0
- package/build/extractors/api-extractor.d.ts.map +1 -0
- package/build/extractors/api-extractor.js +191 -0
- package/build/extractors/api-extractor.js.map +1 -0
- package/build/extractors/examples-extractor.d.ts +16 -0
- package/build/extractors/examples-extractor.d.ts.map +1 -0
- package/build/extractors/examples-extractor.js +224 -0
- package/build/extractors/examples-extractor.js.map +1 -0
- package/build/extractors/jsdoc-extractor.d.ts +11 -0
- package/build/extractors/jsdoc-extractor.d.ts.map +1 -0
- package/build/extractors/jsdoc-extractor.js +115 -0
- package/build/extractors/jsdoc-extractor.js.map +1 -0
- package/build/extractors/readme-extractor.d.ts +6 -0
- package/build/extractors/readme-extractor.d.ts.map +1 -0
- package/build/extractors/readme-extractor.js +138 -0
- package/build/extractors/readme-extractor.js.map +1 -0
- package/build/formatters/markdown-formatter.d.ts +12 -0
- package/build/formatters/markdown-formatter.d.ts.map +1 -0
- package/build/formatters/markdown-formatter.js +251 -0
- package/build/formatters/markdown-formatter.js.map +1 -0
- package/build/index.d.ts +12 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +226 -0
- package/build/index.js.map +1 -0
- package/build/pipeline.d.ts +31 -0
- package/build/pipeline.d.ts.map +1 -0
- package/build/pipeline.js +203 -0
- package/build/pipeline.js.map +1 -0
- package/build/resolvers/exports-resolver.d.ts +12 -0
- package/build/resolvers/exports-resolver.d.ts.map +1 -0
- package/build/resolvers/exports-resolver.js +235 -0
- package/build/resolvers/exports-resolver.js.map +1 -0
- package/build/resolvers/package-resolver.d.ts +25 -0
- package/build/resolvers/package-resolver.d.ts.map +1 -0
- package/build/resolvers/package-resolver.js +189 -0
- package/build/resolvers/package-resolver.js.map +1 -0
- package/build/resolvers/types-resolver.d.ts +19 -0
- package/build/resolvers/types-resolver.d.ts.map +1 -0
- package/build/resolvers/types-resolver.js +155 -0
- package/build/resolvers/types-resolver.js.map +1 -0
- package/build/schemas/package-json.schema.d.ts +81 -0
- package/build/schemas/package-json.schema.d.ts.map +1 -0
- package/build/schemas/package-json.schema.js +91 -0
- package/build/schemas/package-json.schema.js.map +1 -0
- package/build/test.d.ts +6 -0
- package/build/test.d.ts.map +1 -0
- package/build/test.js.map +1 -0
- package/build/types/index.d.ts +117 -0
- package/build/types/index.d.ts.map +1 -0
- package/build/types/index.js +14 -0
- package/build/types/index.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
// ─────────────────────────────────────────
|
|
2
|
+
// deps info
|
|
3
|
+
// ─────────────────────────────────────────
|
|
4
|
+
export function formatPackageInfo(meta) {
|
|
5
|
+
const lines = [];
|
|
6
|
+
lines.push(`# ${meta.name}${meta.version ? `@${meta.version}` : ''}`);
|
|
7
|
+
if (meta.description)
|
|
8
|
+
lines.push(`> ${meta.description}`);
|
|
9
|
+
lines.push('');
|
|
10
|
+
const infoLines = [];
|
|
11
|
+
if (meta.license)
|
|
12
|
+
infoLines.push(`- License: ${meta.license}`);
|
|
13
|
+
if (meta.hasTypes)
|
|
14
|
+
infoLines.push('- Types: Available');
|
|
15
|
+
else
|
|
16
|
+
infoLines.push('- Types: Not found');
|
|
17
|
+
if (meta.diskSize !== undefined) {
|
|
18
|
+
infoLines.push(`- Size: ${formatBytes(meta.diskSize)}`);
|
|
19
|
+
}
|
|
20
|
+
lines.push(infoLines.join('\n'));
|
|
21
|
+
lines.push('');
|
|
22
|
+
if (meta.entrypoints.length > 0) {
|
|
23
|
+
lines.push('## Entry Points');
|
|
24
|
+
for (const ep of meta.entrypoints) {
|
|
25
|
+
const hasTypes = ep.hasTypes ? ' (typed)' : '';
|
|
26
|
+
const subpath = ep.subpath === '.' ? 'main' : ep.subpath;
|
|
27
|
+
lines.push(`- \`${subpath}\`${hasTypes}`);
|
|
28
|
+
}
|
|
29
|
+
lines.push('');
|
|
30
|
+
}
|
|
31
|
+
if (meta.dependencies && Object.keys(meta.dependencies).length > 0) {
|
|
32
|
+
lines.push('## Dependencies');
|
|
33
|
+
const deps = Object.entries(meta.dependencies);
|
|
34
|
+
const shown = deps.slice(0, 20);
|
|
35
|
+
for (const [name, version] of shown) {
|
|
36
|
+
lines.push(`- ${name}: ${version}`);
|
|
37
|
+
}
|
|
38
|
+
if (deps.length > 20) {
|
|
39
|
+
lines.push(`- ... and ${deps.length - 20} more`);
|
|
40
|
+
}
|
|
41
|
+
lines.push('');
|
|
42
|
+
}
|
|
43
|
+
if (meta.peerDependencies && Object.keys(meta.peerDependencies).length > 0) {
|
|
44
|
+
lines.push('## Peer Dependencies');
|
|
45
|
+
for (const [name, version] of Object.entries(meta.peerDependencies)) {
|
|
46
|
+
lines.push(`- ${name}: ${version}`);
|
|
47
|
+
}
|
|
48
|
+
lines.push('');
|
|
49
|
+
}
|
|
50
|
+
return lines.join('\n');
|
|
51
|
+
}
|
|
52
|
+
// ─────────────────────────────────────────
|
|
53
|
+
// deps api
|
|
54
|
+
// ─────────────────────────────────────────
|
|
55
|
+
export function formatApiSurface(symbols, kind, limit) {
|
|
56
|
+
const lines = [];
|
|
57
|
+
const grouped = groupByKind(symbols);
|
|
58
|
+
if (kind === 'all') {
|
|
59
|
+
for (const [k, syms] of Object.entries(grouped)) {
|
|
60
|
+
lines.push(`## ${pluralize(k)} (${syms.length})`);
|
|
61
|
+
lines.push('');
|
|
62
|
+
const shown = syms.slice(0, limit);
|
|
63
|
+
for (const sym of shown) {
|
|
64
|
+
lines.push(formatSymbolCompact(sym));
|
|
65
|
+
}
|
|
66
|
+
if (syms.length > limit) {
|
|
67
|
+
lines.push(`... and ${syms.length - limit} more. Use \`limit\` param or \`deps search\` to find specific symbols.`);
|
|
68
|
+
}
|
|
69
|
+
lines.push('');
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
const syms = grouped[kind] ?? [];
|
|
74
|
+
lines.push(`## ${pluralize(kind)} (${syms.length})`);
|
|
75
|
+
lines.push('');
|
|
76
|
+
const shown = syms.slice(0, limit);
|
|
77
|
+
for (const sym of shown) {
|
|
78
|
+
lines.push(formatSymbolCompact(sym));
|
|
79
|
+
}
|
|
80
|
+
if (syms.length > limit) {
|
|
81
|
+
lines.push(`... and ${syms.length - limit} more. Use \`limit\` param to see more.`);
|
|
82
|
+
}
|
|
83
|
+
lines.push('');
|
|
84
|
+
}
|
|
85
|
+
lines.push(`Total: ${symbols.length} exported symbols`);
|
|
86
|
+
return lines.join('\n');
|
|
87
|
+
}
|
|
88
|
+
// ─────────────────────────────────────────
|
|
89
|
+
// deps search
|
|
90
|
+
// ─────────────────────────────────────────
|
|
91
|
+
export function formatSearchResults(results) {
|
|
92
|
+
if (results.length === 0) {
|
|
93
|
+
return 'No symbols found matching your query.';
|
|
94
|
+
}
|
|
95
|
+
const lines = [];
|
|
96
|
+
lines.push(`Found ${results.length} symbols:\n`);
|
|
97
|
+
for (const result of results) {
|
|
98
|
+
const matchIndicator = result.matchType === 'exact' ? '(exact)' :
|
|
99
|
+
result.matchType === 'prefix' ? '(prefix)' :
|
|
100
|
+
result.matchType === 'contains' ? '(contains)' : '(fuzzy)';
|
|
101
|
+
lines.push(`### ${result.symbol.name} ${matchIndicator}`);
|
|
102
|
+
lines.push(`- Kind: \`${result.symbol.kind}\``);
|
|
103
|
+
lines.push(`- Signature: \`${result.symbol.signature}\``);
|
|
104
|
+
if (result.symbol.jsdoc?.description) {
|
|
105
|
+
lines.push(`- ${truncate(result.symbol.jsdoc.description, 150)}`);
|
|
106
|
+
}
|
|
107
|
+
lines.push(`- File: ${result.symbol.file}:${result.symbol.line}`);
|
|
108
|
+
lines.push('');
|
|
109
|
+
}
|
|
110
|
+
return lines.join('\n');
|
|
111
|
+
}
|
|
112
|
+
// ─────────────────────────────────────────
|
|
113
|
+
// deps usage
|
|
114
|
+
// ─────────────────────────────────────────
|
|
115
|
+
export function formatSymbolUsage(symbol, importPaths) {
|
|
116
|
+
const lines = [];
|
|
117
|
+
lines.push(`# ${symbol.name}`);
|
|
118
|
+
lines.push('');
|
|
119
|
+
lines.push('## Signature');
|
|
120
|
+
lines.push('```typescript');
|
|
121
|
+
lines.push(symbol.signature);
|
|
122
|
+
lines.push('```');
|
|
123
|
+
lines.push('');
|
|
124
|
+
lines.push(`- **Kind**: ${symbol.kind}`);
|
|
125
|
+
lines.push(`- **File**: ${symbol.file}:${symbol.line}`);
|
|
126
|
+
lines.push(`- **Entry point**: ${symbol.entrypoint}`);
|
|
127
|
+
lines.push('');
|
|
128
|
+
if (importPaths.length > 0) {
|
|
129
|
+
lines.push('## Import');
|
|
130
|
+
for (const path of importPaths) {
|
|
131
|
+
lines.push('```typescript');
|
|
132
|
+
lines.push(`import { ${symbol.name} } from '${path}';`);
|
|
133
|
+
lines.push('```');
|
|
134
|
+
}
|
|
135
|
+
lines.push('');
|
|
136
|
+
}
|
|
137
|
+
if (symbol.jsdoc) {
|
|
138
|
+
if (symbol.jsdoc.description) {
|
|
139
|
+
lines.push('## Description');
|
|
140
|
+
lines.push(symbol.jsdoc.description);
|
|
141
|
+
lines.push('');
|
|
142
|
+
}
|
|
143
|
+
if (symbol.jsdoc.params && symbol.jsdoc.params.length > 0) {
|
|
144
|
+
lines.push('## Parameters');
|
|
145
|
+
for (const param of symbol.jsdoc.params) {
|
|
146
|
+
const desc = param.description ? ` - ${param.description}` : '';
|
|
147
|
+
lines.push(`- \`${param.name}\`${desc}`);
|
|
148
|
+
}
|
|
149
|
+
lines.push('');
|
|
150
|
+
}
|
|
151
|
+
if (symbol.jsdoc.returns) {
|
|
152
|
+
lines.push('## Returns');
|
|
153
|
+
lines.push(symbol.jsdoc.returns);
|
|
154
|
+
lines.push('');
|
|
155
|
+
}
|
|
156
|
+
if (symbol.jsdoc.deprecated) {
|
|
157
|
+
const msg = typeof symbol.jsdoc.deprecated === 'string'
|
|
158
|
+
? `: ${symbol.jsdoc.deprecated}`
|
|
159
|
+
: '';
|
|
160
|
+
lines.push(`> **DEPRECATED**${msg}`);
|
|
161
|
+
lines.push('');
|
|
162
|
+
}
|
|
163
|
+
if (symbol.jsdoc.throws && symbol.jsdoc.throws.length > 0) {
|
|
164
|
+
lines.push('## Throws');
|
|
165
|
+
for (const t of symbol.jsdoc.throws) {
|
|
166
|
+
lines.push(`- ${t}`);
|
|
167
|
+
}
|
|
168
|
+
lines.push('');
|
|
169
|
+
}
|
|
170
|
+
if (symbol.jsdoc.examples && symbol.jsdoc.examples.length > 0) {
|
|
171
|
+
lines.push('## Examples');
|
|
172
|
+
for (const example of symbol.jsdoc.examples) {
|
|
173
|
+
lines.push('```typescript');
|
|
174
|
+
lines.push(example);
|
|
175
|
+
lines.push('```');
|
|
176
|
+
lines.push('');
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return lines.join('\n');
|
|
181
|
+
}
|
|
182
|
+
// ─────────────────────────────────────────
|
|
183
|
+
// deps examples
|
|
184
|
+
// ─────────────────────────────────────────
|
|
185
|
+
export function formatExamples(examples) {
|
|
186
|
+
if (examples.length === 0) {
|
|
187
|
+
return 'No examples found.';
|
|
188
|
+
}
|
|
189
|
+
const lines = [];
|
|
190
|
+
lines.push(`# Examples (${examples.length} found)\n`);
|
|
191
|
+
for (let i = 0; i < examples.length; i++) {
|
|
192
|
+
const ex = examples[i];
|
|
193
|
+
const lang = ex.language ?? '';
|
|
194
|
+
const context = ex.context ? ` (${ex.context})` : '';
|
|
195
|
+
const source = ex.source === 'jsdoc' ? 'JSDoc' :
|
|
196
|
+
ex.source === 'readme' ? 'README' :
|
|
197
|
+
ex.source === 'examples-dir' ? 'examples/' : 'docs/';
|
|
198
|
+
lines.push(`## Example ${i + 1}${context} [${source}]`);
|
|
199
|
+
lines.push(`\`\`\`${lang}`);
|
|
200
|
+
lines.push(ex.code);
|
|
201
|
+
lines.push('```\n');
|
|
202
|
+
}
|
|
203
|
+
return lines.join('\n');
|
|
204
|
+
}
|
|
205
|
+
// ─────────────────────────────────────────
|
|
206
|
+
// Helpers
|
|
207
|
+
// ─────────────────────────────────────────
|
|
208
|
+
function formatSymbolCompact(sym) {
|
|
209
|
+
const jsdocHint = sym.jsdoc?.description
|
|
210
|
+
? ` // ${truncate(sym.jsdoc.description, 80)}`
|
|
211
|
+
: '';
|
|
212
|
+
const deprecated = sym.jsdoc?.deprecated ? ' [DEPRECATED]' : '';
|
|
213
|
+
return `- \`${sym.name}\` (\`${sym.kind}\`)${deprecated}${jsdocHint}`;
|
|
214
|
+
}
|
|
215
|
+
function groupByKind(symbols) {
|
|
216
|
+
const groups = {};
|
|
217
|
+
for (const sym of symbols) {
|
|
218
|
+
if (!groups[sym.kind])
|
|
219
|
+
groups[sym.kind] = [];
|
|
220
|
+
groups[sym.kind].push(sym);
|
|
221
|
+
}
|
|
222
|
+
for (const key of Object.keys(groups)) {
|
|
223
|
+
groups[key].sort((a, b) => a.name.localeCompare(b.name));
|
|
224
|
+
}
|
|
225
|
+
return groups;
|
|
226
|
+
}
|
|
227
|
+
function pluralize(kind) {
|
|
228
|
+
const map = {
|
|
229
|
+
function: 'Functions',
|
|
230
|
+
class: 'Classes',
|
|
231
|
+
interface: 'Interfaces',
|
|
232
|
+
type: 'Types',
|
|
233
|
+
enum: 'Enums',
|
|
234
|
+
variable: 'Variables',
|
|
235
|
+
constant: 'Constants',
|
|
236
|
+
};
|
|
237
|
+
return map[kind] ?? `${kind}s`;
|
|
238
|
+
}
|
|
239
|
+
function formatBytes(bytes) {
|
|
240
|
+
if (bytes < 1024)
|
|
241
|
+
return `${bytes} B`;
|
|
242
|
+
if (bytes < 1024 * 1024)
|
|
243
|
+
return `${(bytes / 1024).toFixed(1)} KB`;
|
|
244
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
245
|
+
}
|
|
246
|
+
function truncate(str, maxLength) {
|
|
247
|
+
if (str.length <= maxLength)
|
|
248
|
+
return str;
|
|
249
|
+
return str.substring(0, maxLength - 3) + '...';
|
|
250
|
+
}
|
|
251
|
+
//# sourceMappingURL=markdown-formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-formatter.js","sourceRoot":"","sources":["../../src/formatters/markdown-formatter.ts"],"names":[],"mappings":"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"}
|
package/build/index.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* @justmpm/deps-consult -- MCP Server
|
|
4
|
+
*
|
|
5
|
+
* Consulta pacotes instalados no node_modules.
|
|
6
|
+
* Extrai API surfaces, tipos, documentação e exemplos de uso.
|
|
7
|
+
* Zero config, offline, funciona com qualquer pacote npm.
|
|
8
|
+
*
|
|
9
|
+
* Tools: deps_info, deps_api, deps_search, deps_usage, deps_examples
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG"}
|
package/build/index.js
ADDED
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* @justmpm/deps-consult -- MCP Server
|
|
4
|
+
*
|
|
5
|
+
* Consulta pacotes instalados no node_modules.
|
|
6
|
+
* Extrai API surfaces, tipos, documentação e exemplos de uso.
|
|
7
|
+
* Zero config, offline, funciona com qualquer pacote npm.
|
|
8
|
+
*
|
|
9
|
+
* Tools: deps_info, deps_api, deps_search, deps_usage, deps_examples
|
|
10
|
+
*/
|
|
11
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
12
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
13
|
+
import { resolve } from 'node:path';
|
|
14
|
+
import { DepsInfoInputSchema, DepsApiInputSchema, DepsSearchInputSchema, DepsUsageInputSchema, DepsExamplesInputSchema, } from './schemas/package-json.schema.js';
|
|
15
|
+
import { getOrExtractPackage, searchSymbols, findSymbol, getExamples, resolveImportPaths, } from './pipeline.js';
|
|
16
|
+
import { formatPackageInfo, formatApiSurface, formatSearchResults, formatSymbolUsage, formatExamples, } from './formatters/markdown-formatter.js';
|
|
17
|
+
// ─────────────────────────────────────────
|
|
18
|
+
// Helpers
|
|
19
|
+
// ─────────────────────────────────────────
|
|
20
|
+
/** Normaliza kind do usuario (plural) para SymbolKind (singular) */
|
|
21
|
+
const KIND_ALIASES = {
|
|
22
|
+
function: 'function',
|
|
23
|
+
functions: 'function',
|
|
24
|
+
class: 'class',
|
|
25
|
+
classes: 'class',
|
|
26
|
+
interface: 'interface',
|
|
27
|
+
interfaces: 'interface',
|
|
28
|
+
type: 'type',
|
|
29
|
+
types: 'type',
|
|
30
|
+
enum: 'enum',
|
|
31
|
+
enums: 'enum',
|
|
32
|
+
variable: 'variable',
|
|
33
|
+
variables: 'variable',
|
|
34
|
+
constant: 'constant',
|
|
35
|
+
constants: 'constant',
|
|
36
|
+
};
|
|
37
|
+
function normalizeKind(kind) {
|
|
38
|
+
return KIND_ALIASES[kind];
|
|
39
|
+
}
|
|
40
|
+
// ─────────────────────────────────────────
|
|
41
|
+
// MCP Server Setup
|
|
42
|
+
// ─────────────────────────────────────────
|
|
43
|
+
const server = new McpServer({
|
|
44
|
+
name: 'deps-consult',
|
|
45
|
+
version: '1.0.0',
|
|
46
|
+
});
|
|
47
|
+
// ─────────────────────────────────────────
|
|
48
|
+
// Tool: deps_info
|
|
49
|
+
// ─────────────────────────────────────────
|
|
50
|
+
server.tool('deps_info', 'Get overview of an installed npm package: version, description, entry points, dependencies, types availability, and disk size.', DepsInfoInputSchema, async ({ package: packageName, projectDir: rawProjectDir }) => {
|
|
51
|
+
try {
|
|
52
|
+
const projectDir = resolve(rawProjectDir ?? process.cwd());
|
|
53
|
+
const cached = await getOrExtractPackage(packageName, projectDir);
|
|
54
|
+
const output = formatPackageInfo(cached.meta);
|
|
55
|
+
return {
|
|
56
|
+
content: [{ type: 'text', text: output }],
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
return {
|
|
61
|
+
content: [{ type: 'text', text: `Error: ${error instanceof Error ? error.message : String(error)}` }],
|
|
62
|
+
isError: true,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
// ─────────────────────────────────────────
|
|
67
|
+
// Tool: deps_api
|
|
68
|
+
// ─────────────────────────────────────────
|
|
69
|
+
server.tool('deps_api', 'Get the full API surface of an installed package: all exported functions, classes, interfaces, types, enums and variables with signatures.', DepsApiInputSchema, async ({ package: packageName, entrypoint, kind, limit: rawLimit }) => {
|
|
70
|
+
try {
|
|
71
|
+
const projectDir = resolve(process.cwd());
|
|
72
|
+
const cached = await getOrExtractPackage(packageName, projectDir);
|
|
73
|
+
let symbols = [];
|
|
74
|
+
if (entrypoint) {
|
|
75
|
+
const normalized = entrypoint.startsWith('.') ? entrypoint : `./${entrypoint}`;
|
|
76
|
+
const epSymbols = cached.symbols.get(normalized);
|
|
77
|
+
if (epSymbols) {
|
|
78
|
+
symbols = [...epSymbols];
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
for (const syms of cached.symbols.values()) {
|
|
82
|
+
symbols.push(...syms);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
const seen = new Set();
|
|
88
|
+
for (const syms of cached.symbols.values()) {
|
|
89
|
+
for (const sym of syms) {
|
|
90
|
+
if (!seen.has(sym.name)) {
|
|
91
|
+
seen.add(sym.name);
|
|
92
|
+
symbols.push(sym);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// Filtrar por kind
|
|
98
|
+
if (kind && kind !== 'all') {
|
|
99
|
+
const normalizedKind = normalizeKind(kind);
|
|
100
|
+
if (normalizedKind) {
|
|
101
|
+
symbols = symbols.filter(s => s.kind === normalizedKind);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
const limit = rawLimit ?? 50;
|
|
105
|
+
const normalizedKindForFormat = kind && kind !== 'all' ? (normalizeKind(kind) ?? kind) : 'all';
|
|
106
|
+
const output = formatApiSurface(symbols, normalizedKindForFormat, limit);
|
|
107
|
+
return {
|
|
108
|
+
content: [{ type: 'text', text: output }],
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
return {
|
|
113
|
+
content: [{ type: 'text', text: `Error: ${error instanceof Error ? error.message : String(error)}` }],
|
|
114
|
+
isError: true,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
// ─────────────────────────────────────────
|
|
119
|
+
// Tool: deps_search
|
|
120
|
+
// ─────────────────────────────────────────
|
|
121
|
+
server.tool('deps_search', 'Search for symbols in an installed package by name. Supports exact match, prefix (*), suffix (*), contains (*) and fuzzy matching.', DepsSearchInputSchema, async ({ package: packageName, query, entrypoint, kind }) => {
|
|
122
|
+
try {
|
|
123
|
+
const projectDir = resolve(process.cwd());
|
|
124
|
+
const cached = await getOrExtractPackage(packageName, projectDir);
|
|
125
|
+
const results = searchSymbols(cached, query, {
|
|
126
|
+
entrypoint,
|
|
127
|
+
kind: kind && kind !== 'all' ? normalizeKind(kind) : undefined,
|
|
128
|
+
});
|
|
129
|
+
const limited = results.slice(0, 30);
|
|
130
|
+
const output = formatSearchResults(limited);
|
|
131
|
+
return {
|
|
132
|
+
content: [{ type: 'text', text: output }],
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
return {
|
|
137
|
+
content: [{ type: 'text', text: `Error: ${error instanceof Error ? error.message : String(error)}` }],
|
|
138
|
+
isError: true,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
// ─────────────────────────────────────────
|
|
143
|
+
// Tool: deps_usage
|
|
144
|
+
// ─────────────────────────────────────────
|
|
145
|
+
server.tool('deps_usage', 'Get detailed usage information for a specific symbol: full signature with types, JSDoc documentation, parameters, return type, examples, import paths, and related types.', DepsUsageInputSchema, async ({ package: packageName, symbol: symbolName, entrypoint }) => {
|
|
146
|
+
try {
|
|
147
|
+
const projectDir = resolve(process.cwd());
|
|
148
|
+
const cached = await getOrExtractPackage(packageName, projectDir);
|
|
149
|
+
const symbol = findSymbol(cached, symbolName, entrypoint);
|
|
150
|
+
if (!symbol) {
|
|
151
|
+
const results = searchSymbols(cached, symbolName, { entrypoint });
|
|
152
|
+
const best = results[0];
|
|
153
|
+
if (best && best.score > 0.5) {
|
|
154
|
+
const importPaths = resolveImportPaths(cached, best.symbol);
|
|
155
|
+
const output = formatSymbolUsage(best.symbol, importPaths);
|
|
156
|
+
return {
|
|
157
|
+
content: [{
|
|
158
|
+
type: 'text',
|
|
159
|
+
text: `Exact symbol '${symbolName}' not found. Showing best match:\n\n${output}`,
|
|
160
|
+
}],
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
return {
|
|
164
|
+
content: [{
|
|
165
|
+
type: 'text',
|
|
166
|
+
text: `Symbol '${symbolName}' not found in '${packageName}'. Use deps_search to find the correct name.`,
|
|
167
|
+
}],
|
|
168
|
+
isError: true,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
const importPaths = resolveImportPaths(cached, symbol);
|
|
172
|
+
const output = formatSymbolUsage(symbol, importPaths);
|
|
173
|
+
return {
|
|
174
|
+
content: [{ type: 'text', text: output }],
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
return {
|
|
179
|
+
content: [{ type: 'text', text: `Error: ${error instanceof Error ? error.message : String(error)}` }],
|
|
180
|
+
isError: true,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
// ─────────────────────────────────────────
|
|
185
|
+
// Tool: deps_examples
|
|
186
|
+
// ─────────────────────────────────────────
|
|
187
|
+
server.tool('deps_examples', 'Extract code examples from an installed package: JSDoc @example tags, /examples directory files, README code blocks, and /docs content.', DepsExamplesInputSchema, async ({ package: packageName, symbol: symbolName }) => {
|
|
188
|
+
try {
|
|
189
|
+
const projectDir = resolve(process.cwd());
|
|
190
|
+
const cached = await getOrExtractPackage(packageName, projectDir);
|
|
191
|
+
const examples = await getExamples(cached, symbolName);
|
|
192
|
+
if (examples.length === 0) {
|
|
193
|
+
return {
|
|
194
|
+
content: [{
|
|
195
|
+
type: 'text',
|
|
196
|
+
text: symbolName
|
|
197
|
+
? `No examples found for '${symbolName}' in '${packageName}'.`
|
|
198
|
+
: `No examples found in '${packageName}'.`,
|
|
199
|
+
}],
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
const output = formatExamples(examples);
|
|
203
|
+
return {
|
|
204
|
+
content: [{ type: 'text', text: output }],
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
catch (error) {
|
|
208
|
+
return {
|
|
209
|
+
content: [{ type: 'text', text: `Error: ${error instanceof Error ? error.message : String(error)}` }],
|
|
210
|
+
isError: true,
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
// ─────────────────────────────────────────
|
|
215
|
+
// Start
|
|
216
|
+
// ─────────────────────────────────────────
|
|
217
|
+
async function main() {
|
|
218
|
+
const transport = new StdioServerTransport();
|
|
219
|
+
await server.connect(transport);
|
|
220
|
+
console.error('[deps-consult] MCP server started (stdio)');
|
|
221
|
+
}
|
|
222
|
+
main().catch((error) => {
|
|
223
|
+
console.error('[deps-consult] Fatal error:', error);
|
|
224
|
+
process.exit(1);
|
|
225
|
+
});
|
|
226
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pipeline de orquestração: conecta resolvers, extractors e cache.
|
|
3
|
+
* Uma função por tool que faz todo o fluxo end-to-end.
|
|
4
|
+
*/
|
|
5
|
+
import type { CachedPackage, ExtractedSymbol, SearchResult } from './types/index.js';
|
|
6
|
+
import type { CodeExample } from './extractors/examples-extractor.js';
|
|
7
|
+
/**
|
|
8
|
+
* Extrai e cacheia o pacote completo.
|
|
9
|
+
* Este é o ponto de entrada para todas as tools.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getOrExtractPackage(packageName: string, projectDir: string): Promise<CachedPackage>;
|
|
12
|
+
/**
|
|
13
|
+
* Busca símbolos em um pacote com scoring.
|
|
14
|
+
*/
|
|
15
|
+
export declare function searchSymbols(cached: CachedPackage, query: string, options?: {
|
|
16
|
+
entrypoint?: string;
|
|
17
|
+
kind?: string;
|
|
18
|
+
}): SearchResult[];
|
|
19
|
+
/**
|
|
20
|
+
* Encontra um símbolo exato pelo nome.
|
|
21
|
+
*/
|
|
22
|
+
export declare function findSymbol(cached: CachedPackage, symbolName: string, entrypoint?: string): ExtractedSymbol | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Extrai exemplos para um pacote/símbolo.
|
|
25
|
+
*/
|
|
26
|
+
export declare function getExamples(cached: CachedPackage, symbolName?: string): Promise<ReadonlyArray<CodeExample>>;
|
|
27
|
+
/**
|
|
28
|
+
* Resolve os import paths possíveis para um símbolo.
|
|
29
|
+
*/
|
|
30
|
+
export declare function resolveImportPaths(cached: CachedPackage, symbol: ExtractedSymbol): string[];
|
|
31
|
+
//# sourceMappingURL=pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EAEf,YAAY,EACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAStE;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CA6DxB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACA,YAAY,EAAE,CAmEhB;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,GAClB,eAAe,GAAG,SAAS,CAG7B;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAQrC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,GACtB,MAAM,EAAE,CAyBV"}
|