dep-context-mcp 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 +380 -0
- package/dist/analysis/relationships.d.ts +25 -0
- package/dist/analysis/relationships.d.ts.map +1 -0
- package/dist/analysis/relationships.js +26 -0
- package/dist/analysis/relationships.js.map +1 -0
- package/dist/build-info.d.ts +15 -0
- package/dist/build-info.d.ts.map +1 -0
- package/dist/build-info.js +24 -0
- package/dist/build-info.js.map +1 -0
- package/dist/cache/manager.d.ts +19 -0
- package/dist/cache/manager.d.ts.map +1 -0
- package/dist/cache/manager.js +131 -0
- package/dist/cache/manager.js.map +1 -0
- package/dist/cache/registry.d.ts +44 -0
- package/dist/cache/registry.d.ts.map +1 -0
- package/dist/cache/registry.js +92 -0
- package/dist/cache/registry.js.map +1 -0
- package/dist/config/loader.d.ts +62 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +193 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/extraction/examples.d.ts +22 -0
- package/dist/extraction/examples.d.ts.map +1 -0
- package/dist/extraction/examples.js +109 -0
- package/dist/extraction/examples.js.map +1 -0
- package/dist/extraction/external-resolver.d.ts +26 -0
- package/dist/extraction/external-resolver.d.ts.map +1 -0
- package/dist/extraction/external-resolver.js +79 -0
- package/dist/extraction/external-resolver.js.map +1 -0
- package/dist/extraction/import-tracker.d.ts +58 -0
- package/dist/extraction/import-tracker.d.ts.map +1 -0
- package/dist/extraction/import-tracker.js +113 -0
- package/dist/extraction/import-tracker.js.map +1 -0
- package/dist/extraction/readme.d.ts +19 -0
- package/dist/extraction/readme.d.ts.map +1 -0
- package/dist/extraction/readme.js +79 -0
- package/dist/extraction/readme.js.map +1 -0
- package/dist/extraction/snapshot.d.ts +32 -0
- package/dist/extraction/snapshot.d.ts.map +1 -0
- package/dist/extraction/snapshot.js +258 -0
- package/dist/extraction/snapshot.js.map +1 -0
- package/dist/extraction/typescript.d.ts +104 -0
- package/dist/extraction/typescript.d.ts.map +1 -0
- package/dist/extraction/typescript.js +647 -0
- package/dist/extraction/typescript.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +329 -0
- package/dist/index.js.map +1 -0
- package/dist/resolver/package.d.ts +62 -0
- package/dist/resolver/package.d.ts.map +1 -0
- package/dist/resolver/package.js +334 -0
- package/dist/resolver/package.js.map +1 -0
- package/dist/tools/get-dependency.d.ts +55 -0
- package/dist/tools/get-dependency.d.ts.map +1 -0
- package/dist/tools/get-dependency.js +105 -0
- package/dist/tools/get-dependency.js.map +1 -0
- package/dist/tools/index-dependencies.d.ts +51 -0
- package/dist/tools/index-dependencies.d.ts.map +1 -0
- package/dist/tools/index-dependencies.js +90 -0
- package/dist/tools/index-dependencies.js.map +1 -0
- package/dist/tools/index-status.d.ts +36 -0
- package/dist/tools/index-status.d.ts.map +1 -0
- package/dist/tools/index-status.js +45 -0
- package/dist/tools/index-status.js.map +1 -0
- package/dist/tools/list.d.ts +48 -0
- package/dist/tools/list.d.ts.map +1 -0
- package/dist/tools/list.js +55 -0
- package/dist/tools/list.js.map +1 -0
- package/dist/tools/refresh.d.ts +59 -0
- package/dist/tools/refresh.d.ts.map +1 -0
- package/dist/tools/refresh.js +109 -0
- package/dist/tools/refresh.js.map +1 -0
- package/dist/tools/relationships.d.ts +41 -0
- package/dist/tools/relationships.d.ts.map +1 -0
- package/dist/tools/relationships.js +36 -0
- package/dist/tools/relationships.js.map +1 -0
- package/dist/tools/search-codebase.d.ts +64 -0
- package/dist/tools/search-codebase.d.ts.map +1 -0
- package/dist/tools/search-codebase.js +117 -0
- package/dist/tools/search-codebase.js.map +1 -0
- package/dist/tools/search.d.ts +37 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/tools/search.js +77 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/utils/logger.d.ts +19 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +71 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/vector/chroma.d.ts +38 -0
- package/dist/vector/chroma.d.ts.map +1 -0
- package/dist/vector/chroma.js +69 -0
- package/dist/vector/chroma.js.map +1 -0
- package/dist/vector/chunker.d.ts +29 -0
- package/dist/vector/chunker.d.ts.map +1 -0
- package/dist/vector/chunker.js +205 -0
- package/dist/vector/chunker.js.map +1 -0
- package/dist/vector/embeddings.d.ts +36 -0
- package/dist/vector/embeddings.d.ts.map +1 -0
- package/dist/vector/embeddings.js +106 -0
- package/dist/vector/embeddings.js.map +1 -0
- package/dist/vector/file-store.d.ts +10 -0
- package/dist/vector/file-store.d.ts.map +1 -0
- package/dist/vector/file-store.js +80 -0
- package/dist/vector/file-store.js.map +1 -0
- package/dist/vector/index-manager.d.ts +39 -0
- package/dist/vector/index-manager.d.ts.map +1 -0
- package/dist/vector/index-manager.js +105 -0
- package/dist/vector/index-manager.js.map +1 -0
- package/dist/vector/provider-factory.d.ts +23 -0
- package/dist/vector/provider-factory.d.ts.map +1 -0
- package/dist/vector/provider-factory.js +50 -0
- package/dist/vector/provider-factory.js.map +1 -0
- package/dist/vector/storage-factory.d.ts +17 -0
- package/dist/vector/storage-factory.d.ts.map +1 -0
- package/dist/vector/storage-factory.js +55 -0
- package/dist/vector/storage-factory.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-dependencies.js","sourceRoot":"","sources":["../../src/tools/index-dependencies.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool: get_index_status
|
|
3
|
+
*
|
|
4
|
+
* Returns status of the vector search index.
|
|
5
|
+
*/
|
|
6
|
+
import type { VectorIndexManager } from '../vector/index-manager.js';
|
|
7
|
+
export interface GetIndexStatusOutput {
|
|
8
|
+
enabled: boolean;
|
|
9
|
+
totalPackages: number;
|
|
10
|
+
totalChunks: number;
|
|
11
|
+
packages: Array<{
|
|
12
|
+
name: string;
|
|
13
|
+
version: string;
|
|
14
|
+
chunkCount: number;
|
|
15
|
+
indexedAt: string;
|
|
16
|
+
}>;
|
|
17
|
+
message?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface GetIndexStatusDeps {
|
|
20
|
+
indexManager: VectorIndexManager | null;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Creates the get_index_status tool handler
|
|
24
|
+
*/
|
|
25
|
+
export declare function createGetIndexStatusHandler(deps: GetIndexStatusDeps): () => Promise<GetIndexStatusOutput>;
|
|
26
|
+
/** Tool definition for MCP */
|
|
27
|
+
export declare const getIndexStatusToolDef: {
|
|
28
|
+
name: string;
|
|
29
|
+
description: string;
|
|
30
|
+
inputSchema: {
|
|
31
|
+
type: "object";
|
|
32
|
+
properties: {};
|
|
33
|
+
required: never[];
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=index-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-status.d.ts","sourceRoot":"","sources":["../../src/tools/index-status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAEpE,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,UAAU,EAAE,MAAM,CAAA;QAClB,SAAS,EAAE,MAAM,CAAA;KAClB,CAAC,CAAA;IACF,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAAA;CACxC;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,kBAAkB,SAC1B,OAAO,CAAC,oBAAoB,CAAC,CA2BtE;AAED,8BAA8B;AAC9B,eAAO,MAAM,qBAAqB;;;;;;;;CAQjC,CAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool: get_index_status
|
|
3
|
+
*
|
|
4
|
+
* Returns status of the vector search index.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Creates the get_index_status tool handler
|
|
8
|
+
*/
|
|
9
|
+
export function createGetIndexStatusHandler(deps) {
|
|
10
|
+
return async function getIndexStatus() {
|
|
11
|
+
const { indexManager } = deps;
|
|
12
|
+
if (!indexManager) {
|
|
13
|
+
return {
|
|
14
|
+
enabled: false,
|
|
15
|
+
totalPackages: 0,
|
|
16
|
+
totalChunks: 0,
|
|
17
|
+
packages: [],
|
|
18
|
+
message: 'Vector search is not enabled.'
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
const status = indexManager.getStatus();
|
|
22
|
+
return {
|
|
23
|
+
enabled: true,
|
|
24
|
+
totalPackages: status.packages.length,
|
|
25
|
+
totalChunks: status.totalChunks,
|
|
26
|
+
packages: status.packages.map(p => ({
|
|
27
|
+
name: p.packageName,
|
|
28
|
+
version: p.version,
|
|
29
|
+
chunkCount: p.chunkCount,
|
|
30
|
+
indexedAt: p.indexedAt.toISOString()
|
|
31
|
+
}))
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/** Tool definition for MCP */
|
|
36
|
+
export const getIndexStatusToolDef = {
|
|
37
|
+
name: 'get_index_status',
|
|
38
|
+
description: 'Get the status of the vector search index, including indexed packages and chunk counts.',
|
|
39
|
+
inputSchema: {
|
|
40
|
+
type: 'object',
|
|
41
|
+
properties: {},
|
|
42
|
+
required: []
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=index-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-status.js","sourceRoot":"","sources":["../../src/tools/index-status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAqBH;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,IAAwB;IAClE,OAAO,KAAK,UAAU,cAAc;QAClC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;QAE7B,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,aAAa,EAAE,CAAC;gBAChB,WAAW,EAAE,CAAC;gBACd,QAAQ,EAAE,EAAE;gBACZ,OAAO,EAAE,+BAA+B;aACzC,CAAA;QACH,CAAC;QAED,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,EAAE,CAAA;QAEvC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;YACrC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClC,IAAI,EAAE,CAAC,CAAC,WAAW;gBACnB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE;aACrC,CAAC,CAAC;SACJ,CAAA;IACH,CAAC,CAAA;AACH,CAAC;AAED,8BAA8B;AAC9B,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,yFAAyF;IACtG,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;KACb;CACF,CAAA"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool: list_dependencies
|
|
3
|
+
*
|
|
4
|
+
* Lists all dependencies with their context availability status.
|
|
5
|
+
*/
|
|
6
|
+
import type { CacheManager } from '../cache/manager.js';
|
|
7
|
+
import type { PackageMetadata } from '../resolver/package.js';
|
|
8
|
+
import type { VectorIndexManager } from '../vector/index-manager.js';
|
|
9
|
+
export interface ListDependenciesInput {
|
|
10
|
+
includeDev?: boolean;
|
|
11
|
+
filter?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface DependencyInfo {
|
|
14
|
+
name: string;
|
|
15
|
+
version: string;
|
|
16
|
+
description: string | undefined;
|
|
17
|
+
hasCachedSnapshot: boolean;
|
|
18
|
+
hasTypes: boolean;
|
|
19
|
+
isIndexed?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface ListDependenciesOutput {
|
|
22
|
+
dependencies: DependencyInfo[];
|
|
23
|
+
total: number;
|
|
24
|
+
cached: number;
|
|
25
|
+
}
|
|
26
|
+
export interface PackageResolverLike {
|
|
27
|
+
resolve(packageName: string): Promise<{
|
|
28
|
+
success: boolean;
|
|
29
|
+
packagePath: string | undefined;
|
|
30
|
+
metadata: PackageMetadata | undefined;
|
|
31
|
+
error: string | undefined;
|
|
32
|
+
}>;
|
|
33
|
+
findTypesEntry(packagePath: string, metadata: {
|
|
34
|
+
typesPath: string | undefined;
|
|
35
|
+
exportMap: Record<string, string>;
|
|
36
|
+
}): Promise<string | undefined>;
|
|
37
|
+
listAllDependencies(includeDev?: boolean): Promise<PackageMetadata[]>;
|
|
38
|
+
}
|
|
39
|
+
export interface ListDependenciesDeps {
|
|
40
|
+
cache: CacheManager;
|
|
41
|
+
resolver: PackageResolverLike;
|
|
42
|
+
indexManager?: VectorIndexManager | null;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Creates the list_dependencies tool handler
|
|
46
|
+
*/
|
|
47
|
+
export declare function createListDependenciesHandler(deps: ListDependenciesDeps): (input?: ListDependenciesInput) => Promise<ListDependenciesOutput>;
|
|
48
|
+
//# sourceMappingURL=list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/tools/list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAEpE,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,iBAAiB,EAAE,OAAO,CAAA;IAC1B,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,cAAc,EAAE,CAAA;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QACpC,OAAO,EAAE,OAAO,CAAA;QAChB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;QAC/B,QAAQ,EAAE,eAAe,GAAG,SAAS,CAAA;QACrC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;KAC1B,CAAC,CAAA;IACF,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC5C,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;QAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAClC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAC/B,mBAAmB,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAA;CACtE;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,YAAY,CAAA;IACnB,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,YAAY,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAA;CACzC;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,oBAAoB,IAEpE,QAAO,qBAA0B,KAChC,OAAO,CAAC,sBAAsB,CAAC,CA0DnC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool: list_dependencies
|
|
3
|
+
*
|
|
4
|
+
* Lists all dependencies with their context availability status.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Creates the list_dependencies tool handler
|
|
8
|
+
*/
|
|
9
|
+
export function createListDependenciesHandler(deps) {
|
|
10
|
+
return async function listDependencies(input = {}) {
|
|
11
|
+
const { includeDev = true, filter } = input;
|
|
12
|
+
const { cache, resolver } = deps;
|
|
13
|
+
// Get all dependencies from package.json
|
|
14
|
+
const allDeps = await resolver.listAllDependencies(includeDev);
|
|
15
|
+
// Apply name filter if provided
|
|
16
|
+
let filtered = allDeps;
|
|
17
|
+
if (filter) {
|
|
18
|
+
const filterLower = filter.toLowerCase();
|
|
19
|
+
filtered = filtered.filter((dep) => dep.name.toLowerCase().includes(filterLower));
|
|
20
|
+
}
|
|
21
|
+
// Build dependency info with cache status
|
|
22
|
+
const registry = await cache.getRegistry();
|
|
23
|
+
const { indexManager } = deps;
|
|
24
|
+
const dependencies = await Promise.all(filtered.map(async (dep) => {
|
|
25
|
+
const cacheEntry = registry.entries[dep.name];
|
|
26
|
+
const hasCachedSnapshot = cacheEntry?.version === dep.version;
|
|
27
|
+
// Check if package has types
|
|
28
|
+
const resolved = await resolver.resolve(dep.name);
|
|
29
|
+
let hasTypes = false;
|
|
30
|
+
if (resolved.success && resolved.packagePath && resolved.metadata) {
|
|
31
|
+
const typesPath = await resolver.findTypesEntry(resolved.packagePath, resolved.metadata);
|
|
32
|
+
hasTypes = typesPath !== undefined;
|
|
33
|
+
}
|
|
34
|
+
// Check if indexed
|
|
35
|
+
const isIndexed = indexManager?.isPackageIndexed(dep.name, dep.version);
|
|
36
|
+
return {
|
|
37
|
+
name: dep.name,
|
|
38
|
+
version: dep.version,
|
|
39
|
+
description: dep.description,
|
|
40
|
+
hasCachedSnapshot,
|
|
41
|
+
hasTypes,
|
|
42
|
+
isIndexed
|
|
43
|
+
};
|
|
44
|
+
}));
|
|
45
|
+
// Sort alphabetically
|
|
46
|
+
dependencies.sort((a, b) => a.name.localeCompare(b.name));
|
|
47
|
+
const cached = dependencies.filter(d => d.hasCachedSnapshot).length;
|
|
48
|
+
return {
|
|
49
|
+
dependencies,
|
|
50
|
+
total: dependencies.length,
|
|
51
|
+
cached
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/tools/list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA8CH;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAAC,IAA0B;IACtE,OAAO,KAAK,UAAU,gBAAgB,CACpC,QAA+B,EAAE;QAEjC,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;QAC3C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QAEhC,yCAAyC;QACzC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAA;QAE9D,gCAAgC;QAChC,IAAI,QAAQ,GAAG,OAAO,CAAA;QACtB,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAA;YACxC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAoB,EAAE,EAAE,CAClD,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC7C,CAAA;QACH,CAAC;QAED,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAA;QAC1C,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;QAE7B,MAAM,YAAY,GAAqB,MAAM,OAAO,CAAC,GAAG,CACtD,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,GAAoB,EAAE,EAAE;YAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAC7C,MAAM,iBAAiB,GAAG,UAAU,EAAE,OAAO,KAAK,GAAG,CAAC,OAAO,CAAA;YAE7D,6BAA6B;YAC7B,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACjD,IAAI,QAAQ,GAAG,KAAK,CAAA;YACpB,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAClE,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;gBACxF,QAAQ,GAAG,SAAS,KAAK,SAAS,CAAA;YACpC,CAAC;YAED,mBAAmB;YACnB,MAAM,SAAS,GAAG,YAAY,EAAE,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;YAEvE,OAAO;gBACL,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,iBAAiB;gBACjB,QAAQ;gBACR,SAAS;aACV,CAAA;QACH,CAAC,CAAC,CACH,CAAA;QAED,sBAAsB;QACtB,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAEzD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAA;QAEnE,OAAO;YACL,YAAY;YACZ,KAAK,EAAE,YAAY,CAAC,MAAM;YAC1B,MAAM;SACP,CAAA;IACH,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool: refresh_dependency
|
|
3
|
+
*
|
|
4
|
+
* Force regeneration of a dependency snapshot.
|
|
5
|
+
* Invalidates cache and generates fresh snapshot.
|
|
6
|
+
*/
|
|
7
|
+
import type { CacheManager } from '../cache/manager.js';
|
|
8
|
+
import type { Config } from '../config/loader.js';
|
|
9
|
+
import type { VectorIndexManager } from '../vector/index-manager.js';
|
|
10
|
+
export interface RefreshDependencyInput {
|
|
11
|
+
packageName: string;
|
|
12
|
+
}
|
|
13
|
+
export interface RefreshDependencyOutput {
|
|
14
|
+
packageName: string;
|
|
15
|
+
version: string;
|
|
16
|
+
refreshed: boolean;
|
|
17
|
+
reindexed: boolean;
|
|
18
|
+
message: string;
|
|
19
|
+
}
|
|
20
|
+
export interface RefreshDependencyError {
|
|
21
|
+
error: string;
|
|
22
|
+
code: 'NOT_FOUND' | 'NO_TYPES' | 'EXTRACTION_FAILED';
|
|
23
|
+
}
|
|
24
|
+
export type RefreshDependencyResult = RefreshDependencyOutput | RefreshDependencyError;
|
|
25
|
+
declare function isError(result: RefreshDependencyResult): result is RefreshDependencyError;
|
|
26
|
+
export interface PackageResolverLike {
|
|
27
|
+
resolve(packageName: string): Promise<{
|
|
28
|
+
success: boolean;
|
|
29
|
+
packagePath: string | undefined;
|
|
30
|
+
metadata: {
|
|
31
|
+
name: string;
|
|
32
|
+
version: string;
|
|
33
|
+
description: string | undefined;
|
|
34
|
+
typesPath: string | undefined;
|
|
35
|
+
mainPath: string | undefined;
|
|
36
|
+
exportMap: Record<string, string>;
|
|
37
|
+
dependencies: Record<string, string>;
|
|
38
|
+
devDependencies: Record<string, string>;
|
|
39
|
+
repository: string | undefined;
|
|
40
|
+
} | undefined;
|
|
41
|
+
error: string | undefined;
|
|
42
|
+
}>;
|
|
43
|
+
findTypesEntry(packagePath: string, metadata: {
|
|
44
|
+
typesPath: string | undefined;
|
|
45
|
+
exportMap: Record<string, string>;
|
|
46
|
+
}): Promise<string | undefined>;
|
|
47
|
+
}
|
|
48
|
+
export interface RefreshDependencyDeps {
|
|
49
|
+
cache: CacheManager;
|
|
50
|
+
resolver: PackageResolverLike;
|
|
51
|
+
config: Config;
|
|
52
|
+
indexManager?: VectorIndexManager | null;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Creates the refresh_dependency tool handler
|
|
56
|
+
*/
|
|
57
|
+
export declare function createRefreshDependencyHandler(deps: RefreshDependencyDeps): (input: RefreshDependencyInput) => Promise<RefreshDependencyResult>;
|
|
58
|
+
export { isError };
|
|
59
|
+
//# sourceMappingURL=refresh.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../src/tools/refresh.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAOjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAEpE,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,WAAW,GAAG,UAAU,GAAG,mBAAmB,CAAA;CACrD;AAED,MAAM,MAAM,uBAAuB,GAAG,uBAAuB,GAAG,sBAAsB,CAAA;AAEtF,iBAAS,OAAO,CAAC,MAAM,EAAE,uBAAuB,GAAG,MAAM,IAAI,sBAAsB,CAElF;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QACpC,OAAO,EAAE,OAAO,CAAA;QAChB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;QAC/B,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,MAAM,CAAA;YACf,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;YAC/B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;YAC7B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;YAC5B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YACjC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YACpC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YACvC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;SAC/B,GAAG,SAAS,CAAA;QACb,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;KAC1B,CAAC,CAAA;IACF,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC5C,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;QAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAClC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;CAChC;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,YAAY,CAAA;IACnB,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAA;CACzC;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,qBAAqB,IAEtE,OAAO,sBAAsB,KAC5B,OAAO,CAAC,uBAAuB,CAAC,CAuGpC;AAED,OAAO,EAAE,OAAO,EAAE,CAAA"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool: refresh_dependency
|
|
3
|
+
*
|
|
4
|
+
* Force regeneration of a dependency snapshot.
|
|
5
|
+
* Invalidates cache and generates fresh snapshot.
|
|
6
|
+
*/
|
|
7
|
+
import { extract, followReExports } from '../extraction/typescript.js';
|
|
8
|
+
import { createExternalPackageResolver } from '../extraction/external-resolver.js';
|
|
9
|
+
import { generateSnapshot } from '../extraction/snapshot.js';
|
|
10
|
+
import { extractReadme } from '../extraction/readme.js';
|
|
11
|
+
import { extractExamples, associateExamples, filterRelevantExamples } from '../extraction/examples.js';
|
|
12
|
+
function isError(result) {
|
|
13
|
+
return 'error' in result;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Creates the refresh_dependency tool handler
|
|
17
|
+
*/
|
|
18
|
+
export function createRefreshDependencyHandler(deps) {
|
|
19
|
+
return async function refreshDependency(input) {
|
|
20
|
+
const { packageName } = input;
|
|
21
|
+
const { cache, resolver, config } = deps;
|
|
22
|
+
// First, resolve the package
|
|
23
|
+
const resolved = await resolver.resolve(packageName);
|
|
24
|
+
if (!resolved.success || !resolved.metadata) {
|
|
25
|
+
return {
|
|
26
|
+
error: `Package '${packageName}' not found in node_modules`,
|
|
27
|
+
code: 'NOT_FOUND'
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
const { metadata, packagePath } = resolved;
|
|
31
|
+
const version = metadata.version;
|
|
32
|
+
// Invalidate existing cache entry
|
|
33
|
+
await cache.invalidate(packageName);
|
|
34
|
+
// Use types path from metadata (already resolved by resolver.resolve())
|
|
35
|
+
const typesPath = metadata.typesPath;
|
|
36
|
+
if (!typesPath) {
|
|
37
|
+
return {
|
|
38
|
+
error: `No TypeScript declarations found for '${packageName}'`,
|
|
39
|
+
code: 'NO_TYPES'
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
// Create external resolver for following external package re-exports
|
|
43
|
+
const externalResolver = createExternalPackageResolver(config.projectRoot);
|
|
44
|
+
// Extract types
|
|
45
|
+
let extraction = await extract(typesPath);
|
|
46
|
+
// Follow re-exports and import-then-export patterns
|
|
47
|
+
if (extraction.reExports.length > 0 || extraction.importedExports.length > 0) {
|
|
48
|
+
extraction = await followReExports(extraction, typesPath, new Set(), { externalResolver });
|
|
49
|
+
}
|
|
50
|
+
if (extraction.functions.length === 0 &&
|
|
51
|
+
extraction.classes.length === 0 &&
|
|
52
|
+
extraction.interfaces.length === 0 &&
|
|
53
|
+
extraction.types.length === 0 &&
|
|
54
|
+
extraction.errors.length > 0) {
|
|
55
|
+
return {
|
|
56
|
+
error: `Failed to extract types from '${packageName}': ${extraction.errors.join(', ')}`,
|
|
57
|
+
code: 'EXTRACTION_FAILED'
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
// Extract README if configured
|
|
61
|
+
let readme = undefined;
|
|
62
|
+
if (config.extraction.includeReadme) {
|
|
63
|
+
readme = await extractReadme(packagePath, config.extraction.maxReadmeLength);
|
|
64
|
+
}
|
|
65
|
+
// Extract and associate examples from README
|
|
66
|
+
let examples = [];
|
|
67
|
+
if (config.extraction.includeExamples && readme) {
|
|
68
|
+
const allExportNames = [
|
|
69
|
+
...extraction.functions.map(f => f.name),
|
|
70
|
+
...extraction.classes.map(c => c.name),
|
|
71
|
+
...extraction.interfaces.map(i => i.name),
|
|
72
|
+
...extraction.types.map(t => t.name)
|
|
73
|
+
];
|
|
74
|
+
const rawExamples = extractExamples(readme.raw);
|
|
75
|
+
const associated = associateExamples(rawExamples, allExportNames);
|
|
76
|
+
examples = filterRelevantExamples(associated, config.extraction.maxExamples);
|
|
77
|
+
}
|
|
78
|
+
// Generate snapshot
|
|
79
|
+
const snapshot = generateSnapshot(metadata, extraction, readme, {
|
|
80
|
+
includeReadme: config.extraction.includeReadme,
|
|
81
|
+
includeJsDoc: config.extraction.includeJsDoc,
|
|
82
|
+
includeExamples: config.extraction.includeExamples,
|
|
83
|
+
maxReadmeLength: config.extraction.maxReadmeLength,
|
|
84
|
+
maxExamples: config.extraction.maxExamples
|
|
85
|
+
}, examples);
|
|
86
|
+
// Store in cache
|
|
87
|
+
await cache.set(snapshot);
|
|
88
|
+
// Re-index if vector search is enabled
|
|
89
|
+
let reindexed = false;
|
|
90
|
+
if (deps.indexManager) {
|
|
91
|
+
try {
|
|
92
|
+
await deps.indexManager.indexPackage(packageName, version, extraction);
|
|
93
|
+
reindexed = true;
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
// Indexing failure shouldn't fail the refresh
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return {
|
|
100
|
+
packageName,
|
|
101
|
+
version,
|
|
102
|
+
refreshed: true,
|
|
103
|
+
reindexed,
|
|
104
|
+
message: `Refreshed ${packageName}@${version}`
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
export { isError };
|
|
109
|
+
//# sourceMappingURL=refresh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refresh.js","sourceRoot":"","sources":["../../src/tools/refresh.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool: get_package_relationships
|
|
3
|
+
*
|
|
4
|
+
* Analyzes relationships between packages.
|
|
5
|
+
*/
|
|
6
|
+
import type { RelationshipAnalyzer } from '../analysis/relationships.js';
|
|
7
|
+
export interface GetPackageRelationshipsInput {
|
|
8
|
+
packageName: string;
|
|
9
|
+
}
|
|
10
|
+
export interface GetPackageRelationshipsOutput {
|
|
11
|
+
packageName: string;
|
|
12
|
+
dependsOn: string[];
|
|
13
|
+
dependedBy: string[];
|
|
14
|
+
similarTo: Array<{
|
|
15
|
+
name: string;
|
|
16
|
+
score: number;
|
|
17
|
+
}>;
|
|
18
|
+
}
|
|
19
|
+
export interface GetPackageRelationshipsError {
|
|
20
|
+
error: string;
|
|
21
|
+
}
|
|
22
|
+
export type GetPackageRelationshipsResult = GetPackageRelationshipsOutput | GetPackageRelationshipsError;
|
|
23
|
+
export interface GetPackageRelationshipsDeps {
|
|
24
|
+
analyzer: RelationshipAnalyzer;
|
|
25
|
+
}
|
|
26
|
+
export declare function createGetPackageRelationshipsHandler(deps: GetPackageRelationshipsDeps): (input: GetPackageRelationshipsInput) => Promise<GetPackageRelationshipsResult>;
|
|
27
|
+
export declare const getPackageRelationshipsToolDef: {
|
|
28
|
+
name: string;
|
|
29
|
+
description: string;
|
|
30
|
+
inputSchema: {
|
|
31
|
+
type: "object";
|
|
32
|
+
properties: {
|
|
33
|
+
packageName: {
|
|
34
|
+
type: string;
|
|
35
|
+
description: string;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
required: string[];
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=relationships.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relationships.d.ts","sourceRoot":"","sources":["../../src/tools/relationships.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAExE,MAAM,WAAW,4BAA4B;IAC3C,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,6BAA6B;IAC5C,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAClD;AAED,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,6BAA6B,GAAG,6BAA6B,GAAG,4BAA4B,CAAA;AAExG,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,oBAAoB,CAAA;CAC/B;AAED,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,2BAA2B,IAElF,OAAO,4BAA4B,KAClC,OAAO,CAAC,6BAA6B,CAAC,CAa1C;AAED,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;CAa1C,CAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool: get_package_relationships
|
|
3
|
+
*
|
|
4
|
+
* Analyzes relationships between packages.
|
|
5
|
+
*/
|
|
6
|
+
export function createGetPackageRelationshipsHandler(deps) {
|
|
7
|
+
return async function getPackageRelationships(input) {
|
|
8
|
+
try {
|
|
9
|
+
const relationships = await deps.analyzer.analyze(input.packageName);
|
|
10
|
+
return {
|
|
11
|
+
packageName: input.packageName,
|
|
12
|
+
...relationships
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
catch (err) {
|
|
16
|
+
return {
|
|
17
|
+
error: `Failed to analyze relationships: ${err.message}`
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export const getPackageRelationshipsToolDef = {
|
|
23
|
+
name: 'get_package_relationships',
|
|
24
|
+
description: 'Analyze relationships between packages: what a package depends on, what depends on it, and similar packages.',
|
|
25
|
+
inputSchema: {
|
|
26
|
+
type: 'object',
|
|
27
|
+
properties: {
|
|
28
|
+
packageName: {
|
|
29
|
+
type: 'string',
|
|
30
|
+
description: 'The package to analyze'
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
required: ['packageName']
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=relationships.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relationships.js","sourceRoot":"","sources":["../../src/tools/relationships.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAyBH,MAAM,UAAU,oCAAoC,CAAC,IAAiC;IACpF,OAAO,KAAK,UAAU,uBAAuB,CAC3C,KAAmC;QAEnC,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;YACpE,OAAO;gBACL,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,GAAG,aAAa;aACjB,CAAA;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,KAAK,EAAE,oCAAqC,GAAa,CAAC,OAAO,EAAE;aACpE,CAAA;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,IAAI,EAAE,2BAA2B;IACjC,WAAW,EAAE,8GAA8G;IAC3H,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,wBAAwB;aACtC;SACF;QACD,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;CACF,CAAA"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool: search_codebase
|
|
3
|
+
*
|
|
4
|
+
* Semantic search across indexed dependencies using vector embeddings.
|
|
5
|
+
* Auto-indexes on first search if no index exists.
|
|
6
|
+
*/
|
|
7
|
+
import type { VectorIndexManager } from '../vector/index-manager.js';
|
|
8
|
+
import type { PackageResolverLike } from './get-dependency.js';
|
|
9
|
+
import type { Config } from '../config/loader.js';
|
|
10
|
+
export interface SearchCodebaseInput {
|
|
11
|
+
query: string;
|
|
12
|
+
limit?: number;
|
|
13
|
+
packageName?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface SearchCodebaseOutput {
|
|
16
|
+
results: Array<{
|
|
17
|
+
packageName: string;
|
|
18
|
+
name: string;
|
|
19
|
+
contentType: string;
|
|
20
|
+
signature?: string;
|
|
21
|
+
content: string;
|
|
22
|
+
score: number;
|
|
23
|
+
}>;
|
|
24
|
+
totalIndexed: number;
|
|
25
|
+
message?: string;
|
|
26
|
+
autoIndexed?: boolean;
|
|
27
|
+
}
|
|
28
|
+
export interface SearchCodebaseDeps {
|
|
29
|
+
indexManager: VectorIndexManager | null;
|
|
30
|
+
resolver: PackageResolverLike;
|
|
31
|
+
config: Config;
|
|
32
|
+
listProductionDeps: () => Promise<{
|
|
33
|
+
name: string;
|
|
34
|
+
version: string;
|
|
35
|
+
}[]>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Creates the search_codebase tool handler
|
|
39
|
+
*/
|
|
40
|
+
export declare function createSearchCodebaseHandler(deps: SearchCodebaseDeps): (input: SearchCodebaseInput) => Promise<SearchCodebaseOutput>;
|
|
41
|
+
/** Tool definition for MCP */
|
|
42
|
+
export declare const searchCodebaseToolDef: {
|
|
43
|
+
name: string;
|
|
44
|
+
description: string;
|
|
45
|
+
inputSchema: {
|
|
46
|
+
type: "object";
|
|
47
|
+
properties: {
|
|
48
|
+
query: {
|
|
49
|
+
type: string;
|
|
50
|
+
description: string;
|
|
51
|
+
};
|
|
52
|
+
limit: {
|
|
53
|
+
type: string;
|
|
54
|
+
description: string;
|
|
55
|
+
};
|
|
56
|
+
packageName: {
|
|
57
|
+
type: string;
|
|
58
|
+
description: string;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
required: string[];
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=search-codebase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-codebase.d.ts","sourceRoot":"","sources":["../../src/tools/search-codebase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAKjD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,KAAK,CAAC;QACb,WAAW,EAAE,MAAM,CAAA;QACnB,IAAI,EAAE,MAAM,CAAA;QACZ,WAAW,EAAE,MAAM,CAAA;QACnB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,EAAE,MAAM,CAAA;QACf,KAAK,EAAE,MAAM,CAAA;KACd,CAAC,CAAA;IACF,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAAA;IACvC,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,kBAAkB,EAAE,MAAM,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAA;CACvE;AAmCD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,kBAAkB,IAEhE,OAAO,mBAAmB,KACzB,OAAO,CAAC,oBAAoB,CAAC,CAwDjC;AAED,8BAA8B;AAC9B,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;CAqBjC,CAAA"}
|