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.
Files changed (118) hide show
  1. package/README.md +380 -0
  2. package/dist/analysis/relationships.d.ts +25 -0
  3. package/dist/analysis/relationships.d.ts.map +1 -0
  4. package/dist/analysis/relationships.js +26 -0
  5. package/dist/analysis/relationships.js.map +1 -0
  6. package/dist/build-info.d.ts +15 -0
  7. package/dist/build-info.d.ts.map +1 -0
  8. package/dist/build-info.js +24 -0
  9. package/dist/build-info.js.map +1 -0
  10. package/dist/cache/manager.d.ts +19 -0
  11. package/dist/cache/manager.d.ts.map +1 -0
  12. package/dist/cache/manager.js +131 -0
  13. package/dist/cache/manager.js.map +1 -0
  14. package/dist/cache/registry.d.ts +44 -0
  15. package/dist/cache/registry.d.ts.map +1 -0
  16. package/dist/cache/registry.js +92 -0
  17. package/dist/cache/registry.js.map +1 -0
  18. package/dist/config/loader.d.ts +62 -0
  19. package/dist/config/loader.d.ts.map +1 -0
  20. package/dist/config/loader.js +193 -0
  21. package/dist/config/loader.js.map +1 -0
  22. package/dist/extraction/examples.d.ts +22 -0
  23. package/dist/extraction/examples.d.ts.map +1 -0
  24. package/dist/extraction/examples.js +109 -0
  25. package/dist/extraction/examples.js.map +1 -0
  26. package/dist/extraction/external-resolver.d.ts +26 -0
  27. package/dist/extraction/external-resolver.d.ts.map +1 -0
  28. package/dist/extraction/external-resolver.js +79 -0
  29. package/dist/extraction/external-resolver.js.map +1 -0
  30. package/dist/extraction/import-tracker.d.ts +58 -0
  31. package/dist/extraction/import-tracker.d.ts.map +1 -0
  32. package/dist/extraction/import-tracker.js +113 -0
  33. package/dist/extraction/import-tracker.js.map +1 -0
  34. package/dist/extraction/readme.d.ts +19 -0
  35. package/dist/extraction/readme.d.ts.map +1 -0
  36. package/dist/extraction/readme.js +79 -0
  37. package/dist/extraction/readme.js.map +1 -0
  38. package/dist/extraction/snapshot.d.ts +32 -0
  39. package/dist/extraction/snapshot.d.ts.map +1 -0
  40. package/dist/extraction/snapshot.js +258 -0
  41. package/dist/extraction/snapshot.js.map +1 -0
  42. package/dist/extraction/typescript.d.ts +104 -0
  43. package/dist/extraction/typescript.d.ts.map +1 -0
  44. package/dist/extraction/typescript.js +647 -0
  45. package/dist/extraction/typescript.js.map +1 -0
  46. package/dist/index.d.ts +9 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +329 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/resolver/package.d.ts +62 -0
  51. package/dist/resolver/package.d.ts.map +1 -0
  52. package/dist/resolver/package.js +334 -0
  53. package/dist/resolver/package.js.map +1 -0
  54. package/dist/tools/get-dependency.d.ts +55 -0
  55. package/dist/tools/get-dependency.d.ts.map +1 -0
  56. package/dist/tools/get-dependency.js +105 -0
  57. package/dist/tools/get-dependency.js.map +1 -0
  58. package/dist/tools/index-dependencies.d.ts +51 -0
  59. package/dist/tools/index-dependencies.d.ts.map +1 -0
  60. package/dist/tools/index-dependencies.js +90 -0
  61. package/dist/tools/index-dependencies.js.map +1 -0
  62. package/dist/tools/index-status.d.ts +36 -0
  63. package/dist/tools/index-status.d.ts.map +1 -0
  64. package/dist/tools/index-status.js +45 -0
  65. package/dist/tools/index-status.js.map +1 -0
  66. package/dist/tools/list.d.ts +48 -0
  67. package/dist/tools/list.d.ts.map +1 -0
  68. package/dist/tools/list.js +55 -0
  69. package/dist/tools/list.js.map +1 -0
  70. package/dist/tools/refresh.d.ts +59 -0
  71. package/dist/tools/refresh.d.ts.map +1 -0
  72. package/dist/tools/refresh.js +109 -0
  73. package/dist/tools/refresh.js.map +1 -0
  74. package/dist/tools/relationships.d.ts +41 -0
  75. package/dist/tools/relationships.d.ts.map +1 -0
  76. package/dist/tools/relationships.js +36 -0
  77. package/dist/tools/relationships.js.map +1 -0
  78. package/dist/tools/search-codebase.d.ts +64 -0
  79. package/dist/tools/search-codebase.d.ts.map +1 -0
  80. package/dist/tools/search-codebase.js +117 -0
  81. package/dist/tools/search-codebase.js.map +1 -0
  82. package/dist/tools/search.d.ts +37 -0
  83. package/dist/tools/search.d.ts.map +1 -0
  84. package/dist/tools/search.js +77 -0
  85. package/dist/tools/search.js.map +1 -0
  86. package/dist/utils/logger.d.ts +19 -0
  87. package/dist/utils/logger.d.ts.map +1 -0
  88. package/dist/utils/logger.js +71 -0
  89. package/dist/utils/logger.js.map +1 -0
  90. package/dist/vector/chroma.d.ts +38 -0
  91. package/dist/vector/chroma.d.ts.map +1 -0
  92. package/dist/vector/chroma.js +69 -0
  93. package/dist/vector/chroma.js.map +1 -0
  94. package/dist/vector/chunker.d.ts +29 -0
  95. package/dist/vector/chunker.d.ts.map +1 -0
  96. package/dist/vector/chunker.js +205 -0
  97. package/dist/vector/chunker.js.map +1 -0
  98. package/dist/vector/embeddings.d.ts +36 -0
  99. package/dist/vector/embeddings.d.ts.map +1 -0
  100. package/dist/vector/embeddings.js +106 -0
  101. package/dist/vector/embeddings.js.map +1 -0
  102. package/dist/vector/file-store.d.ts +10 -0
  103. package/dist/vector/file-store.d.ts.map +1 -0
  104. package/dist/vector/file-store.js +80 -0
  105. package/dist/vector/file-store.js.map +1 -0
  106. package/dist/vector/index-manager.d.ts +39 -0
  107. package/dist/vector/index-manager.d.ts.map +1 -0
  108. package/dist/vector/index-manager.js +105 -0
  109. package/dist/vector/index-manager.js.map +1 -0
  110. package/dist/vector/provider-factory.d.ts +23 -0
  111. package/dist/vector/provider-factory.d.ts.map +1 -0
  112. package/dist/vector/provider-factory.js +50 -0
  113. package/dist/vector/provider-factory.js.map +1 -0
  114. package/dist/vector/storage-factory.d.ts +17 -0
  115. package/dist/vector/storage-factory.d.ts.map +1 -0
  116. package/dist/vector/storage-factory.js +55 -0
  117. package/dist/vector/storage-factory.js.map +1 -0
  118. 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"}