@1mcp/agent 0.29.2 → 0.30.0-beta1
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/build/commands/serve/index.d.ts +58 -0
- package/build/commands/serve/index.d.ts.map +1 -1
- package/build/commands/serve/index.js +70 -0
- package/build/commands/serve/index.js.map +1 -1
- package/build/commands/serve/serve.d.ts +11 -0
- package/build/commands/serve/serve.d.ts.map +1 -1
- package/build/commands/serve/serve.js +73 -1
- package/build/commands/serve/serve.js.map +1 -1
- package/build/constants/mcp.d.ts +1 -1
- package/build/constants/mcp.d.ts.map +1 -1
- package/build/constants/mcp.js +1 -1
- package/build/constants/mcp.js.map +1 -1
- package/build/core/capabilities/capabilityAggregator.d.ts.map +1 -1
- package/build/core/capabilities/capabilityAggregator.js +42 -18
- package/build/core/capabilities/capabilityAggregator.js.map +1 -1
- package/build/core/capabilities/capabilityManager.d.ts +3 -2
- package/build/core/capabilities/capabilityManager.d.ts.map +1 -1
- package/build/core/capabilities/capabilityManager.js +3 -3
- package/build/core/capabilities/capabilityManager.js.map +1 -1
- package/build/core/capabilities/internal/installationTools.d.ts.map +1 -1
- package/build/core/capabilities/internal/installationTools.js +4 -0
- package/build/core/capabilities/internal/installationTools.js.map +1 -1
- package/build/core/capabilities/internal/lazyTools.d.ts +11 -0
- package/build/core/capabilities/internal/lazyTools.d.ts.map +1 -0
- package/build/core/capabilities/internal/lazyTools.js +48 -0
- package/build/core/capabilities/internal/lazyTools.js.map +1 -0
- package/build/core/capabilities/internal/managementTools.d.ts.map +1 -1
- package/build/core/capabilities/internal/managementTools.js +9 -0
- package/build/core/capabilities/internal/managementTools.js.map +1 -1
- package/build/core/capabilities/internalCapabilitiesProvider.d.ts +7 -1
- package/build/core/capabilities/internalCapabilitiesProvider.d.ts.map +1 -1
- package/build/core/capabilities/internalCapabilitiesProvider.js +31 -2
- package/build/core/capabilities/internalCapabilitiesProvider.js.map +1 -1
- package/build/core/capabilities/lazyLoadingOrchestrator.d.ts +175 -0
- package/build/core/capabilities/lazyLoadingOrchestrator.d.ts.map +1 -0
- package/build/core/capabilities/lazyLoadingOrchestrator.js +515 -0
- package/build/core/capabilities/lazyLoadingOrchestrator.js.map +1 -0
- package/build/core/capabilities/metaToolProvider.d.ts +118 -0
- package/build/core/capabilities/metaToolProvider.d.ts.map +1 -0
- package/build/core/capabilities/metaToolProvider.js +374 -0
- package/build/core/capabilities/metaToolProvider.js.map +1 -0
- package/build/core/capabilities/schemaCache.d.ts +124 -0
- package/build/core/capabilities/schemaCache.d.ts.map +1 -0
- package/build/core/capabilities/schemaCache.js +248 -0
- package/build/core/capabilities/schemaCache.js.map +1 -0
- package/build/core/capabilities/schemas/metaToolSchemas.d.ts +92 -0
- package/build/core/capabilities/schemas/metaToolSchemas.d.ts.map +1 -0
- package/build/core/capabilities/schemas/metaToolSchemas.js +68 -0
- package/build/core/capabilities/schemas/metaToolSchemas.js.map +1 -0
- package/build/core/capabilities/toolRegistry.d.ts +140 -0
- package/build/core/capabilities/toolRegistry.d.ts.map +1 -0
- package/build/core/capabilities/toolRegistry.js +284 -0
- package/build/core/capabilities/toolRegistry.js.map +1 -0
- package/build/core/client/clientManager.d.ts.map +1 -1
- package/build/core/client/clientManager.js +11 -5
- package/build/core/client/clientManager.js.map +1 -1
- package/build/core/flags/flagManager.d.ts.map +1 -1
- package/build/core/flags/flagManager.js +14 -1
- package/build/core/flags/flagManager.js.map +1 -1
- package/build/core/instructions/instructionAggregator.d.ts +21 -0
- package/build/core/instructions/instructionAggregator.d.ts.map +1 -1
- package/build/core/instructions/instructionAggregator.js +78 -3
- package/build/core/instructions/instructionAggregator.js.map +1 -1
- package/build/core/instructions/templateTypes.d.ts +40 -1
- package/build/core/instructions/templateTypes.d.ts.map +1 -1
- package/build/core/instructions/templateTypes.js +70 -0
- package/build/core/instructions/templateTypes.js.map +1 -1
- package/build/core/protocol/requestHandlers.d.ts +2 -1
- package/build/core/protocol/requestHandlers.d.ts.map +1 -1
- package/build/core/protocol/requestHandlers.js +112 -84
- package/build/core/protocol/requestHandlers.js.map +1 -1
- package/build/core/server/adapters/ExternalServerAdapter.d.ts +38 -0
- package/build/core/server/adapters/ExternalServerAdapter.d.ts.map +1 -0
- package/build/core/server/adapters/ExternalServerAdapter.js +50 -0
- package/build/core/server/adapters/ExternalServerAdapter.js.map +1 -0
- package/build/core/server/adapters/ServerRegistry.d.ts +63 -0
- package/build/core/server/adapters/ServerRegistry.d.ts.map +1 -0
- package/build/core/server/adapters/ServerRegistry.js +92 -0
- package/build/core/server/adapters/ServerRegistry.js.map +1 -0
- package/build/core/server/adapters/TemplateServerAdapter.d.ts +47 -0
- package/build/core/server/adapters/TemplateServerAdapter.d.ts.map +1 -0
- package/build/core/server/adapters/TemplateServerAdapter.js +99 -0
- package/build/core/server/adapters/TemplateServerAdapter.js.map +1 -0
- package/build/core/server/adapters/index.d.ts +5 -0
- package/build/core/server/adapters/index.d.ts.map +1 -0
- package/build/core/server/adapters/index.js +6 -0
- package/build/core/server/adapters/index.js.map +1 -0
- package/build/core/server/adapters/types.d.ts +122 -0
- package/build/core/server/adapters/types.d.ts.map +1 -0
- package/build/core/server/adapters/types.js +48 -0
- package/build/core/server/adapters/types.js.map +1 -0
- package/build/core/server/agentConfig.d.ts +19 -0
- package/build/core/server/agentConfig.d.ts.map +1 -1
- package/build/core/server/agentConfig.js +19 -0
- package/build/core/server/agentConfig.js.map +1 -1
- package/build/core/server/connectionManager.d.ts +17 -1
- package/build/core/server/connectionManager.d.ts.map +1 -1
- package/build/core/server/connectionManager.js +65 -5
- package/build/core/server/connectionManager.js.map +1 -1
- package/build/core/server/connectionResolver.d.ts +81 -0
- package/build/core/server/connectionResolver.d.ts.map +1 -0
- package/build/core/server/connectionResolver.js +140 -0
- package/build/core/server/connectionResolver.js.map +1 -0
- package/build/core/server/serverManager.d.ts +13 -0
- package/build/core/server/serverManager.d.ts.map +1 -1
- package/build/core/server/serverManager.js +49 -2
- package/build/core/server/serverManager.js.map +1 -1
- package/build/core/server/templateServerManager.d.ts +16 -0
- package/build/core/server/templateServerManager.d.ts.map +1 -1
- package/build/core/server/templateServerManager.js +45 -0
- package/build/core/server/templateServerManager.js.map +1 -1
- package/build/domains/preset/manager/presetManager.d.ts +5 -0
- package/build/domains/preset/manager/presetManager.d.ts.map +1 -1
- package/build/domains/preset/manager/presetManager.js +7 -0
- package/build/domains/preset/manager/presetManager.js.map +1 -1
- package/build/logger/logger.d.ts +13 -0
- package/build/logger/logger.d.ts.map +1 -1
- package/build/logger/logger.js +41 -0
- package/build/logger/logger.js.map +1 -1
- package/build/server.d.ts +3 -0
- package/build/server.d.ts.map +1 -1
- package/build/server.js +32 -0
- package/build/server.js.map +1 -1
- package/build/transport/http/middlewares/tagsExtractor.d.ts.map +1 -1
- package/build/transport/http/middlewares/tagsExtractor.js +71 -1
- package/build/transport/http/middlewares/tagsExtractor.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import logger, { debugIf } from '../../logger/logger.js';
|
|
2
|
+
/**
|
|
3
|
+
* SchemaCache provides LRU caching for tool schemas with optional TTL and request coalescing.
|
|
4
|
+
*
|
|
5
|
+
* This cache reduces redundant upstream server calls by storing loaded tool schemas
|
|
6
|
+
* and coalescing parallel requests for the same tool.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* const cache = new SchemaCache({ maxEntries: 1000, ttlMs: 3600000 });
|
|
11
|
+
*
|
|
12
|
+
* // Load tool schema (with coalescing for parallel calls)
|
|
13
|
+
* const tool = await cache.getOrLoad('filesystem', 'read_file', async () => {
|
|
14
|
+
* return await fetchSchemaFromServer('filesystem', 'read_file');
|
|
15
|
+
* });
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export class SchemaCache {
|
|
19
|
+
cache = new Map();
|
|
20
|
+
inflightRequests = new Map();
|
|
21
|
+
config;
|
|
22
|
+
stats = {
|
|
23
|
+
hits: 0,
|
|
24
|
+
misses: 0,
|
|
25
|
+
coalesced: 0,
|
|
26
|
+
evictions: 0,
|
|
27
|
+
get hitRate() {
|
|
28
|
+
const total = this.hits + this.misses;
|
|
29
|
+
return total > 0 ? (this.hits / total) * 100 : 0;
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
constructor(config) {
|
|
33
|
+
this.config = config;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Generate cache key from server and tool name
|
|
37
|
+
*/
|
|
38
|
+
getCacheKey(server, toolName) {
|
|
39
|
+
return `${server}:${toolName}`;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Check if a cache entry has expired (TTL)
|
|
43
|
+
*/
|
|
44
|
+
isExpired(entry) {
|
|
45
|
+
if (!this.config.ttlMs) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
const now = Date.now();
|
|
49
|
+
const age = now - entry.timestamp;
|
|
50
|
+
return age > this.config.ttlMs;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Evict oldest entry when cache is full (FIFO eviction by insertion time)
|
|
54
|
+
* Note: This is not true LRU - for that we'd need to track access order
|
|
55
|
+
*/
|
|
56
|
+
evictOldest() {
|
|
57
|
+
let oldestKey = null;
|
|
58
|
+
let oldestTimestamp = Infinity;
|
|
59
|
+
for (const [key, entry] of this.cache.entries()) {
|
|
60
|
+
if (entry.timestamp < oldestTimestamp) {
|
|
61
|
+
oldestTimestamp = entry.timestamp;
|
|
62
|
+
oldestKey = key;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (oldestKey) {
|
|
66
|
+
this.cache.delete(oldestKey);
|
|
67
|
+
this.stats.evictions++;
|
|
68
|
+
debugIf(() => ({ message: `Evicted oldest cache entry: ${oldestKey}` }));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get tool schema from cache or load it using the provided loader function
|
|
73
|
+
* Implements request coalescing for parallel requests to the same tool
|
|
74
|
+
*
|
|
75
|
+
* @param server - Server name
|
|
76
|
+
* @param toolName - Tool name
|
|
77
|
+
* @param loader - Async function to load the tool schema from upstream server
|
|
78
|
+
* @returns Promise resolving to the Tool schema
|
|
79
|
+
*/
|
|
80
|
+
async getOrLoad(server, toolName, loader) {
|
|
81
|
+
const cacheKey = this.getCacheKey(server, toolName);
|
|
82
|
+
// Check cache first
|
|
83
|
+
const cached = this.cache.get(cacheKey);
|
|
84
|
+
if (cached && !this.isExpired(cached)) {
|
|
85
|
+
this.stats.hits++;
|
|
86
|
+
debugIf(() => ({ message: `Cache hit: ${cacheKey}` }));
|
|
87
|
+
return cached.tool;
|
|
88
|
+
}
|
|
89
|
+
// Remove expired entry if exists
|
|
90
|
+
if (cached && this.isExpired(cached)) {
|
|
91
|
+
this.cache.delete(cacheKey);
|
|
92
|
+
debugIf(() => ({ message: `Cache entry expired: ${cacheKey}` }));
|
|
93
|
+
}
|
|
94
|
+
// Check for in-flight request (coalescing)
|
|
95
|
+
const inflight = this.inflightRequests.get(cacheKey);
|
|
96
|
+
if (inflight) {
|
|
97
|
+
this.stats.coalesced++;
|
|
98
|
+
debugIf(() => ({ message: `Coalesced request for: ${cacheKey}` }));
|
|
99
|
+
return inflight;
|
|
100
|
+
}
|
|
101
|
+
// Create new request
|
|
102
|
+
this.stats.misses++;
|
|
103
|
+
const promise = loader(server, toolName)
|
|
104
|
+
.then((tool) => {
|
|
105
|
+
// Store in cache
|
|
106
|
+
if (this.cache.size >= this.config.maxEntries) {
|
|
107
|
+
this.evictOldest();
|
|
108
|
+
}
|
|
109
|
+
this.cache.set(cacheKey, {
|
|
110
|
+
tool,
|
|
111
|
+
timestamp: Date.now(),
|
|
112
|
+
});
|
|
113
|
+
debugIf(() => ({ message: `Loaded and cached: ${cacheKey}` }));
|
|
114
|
+
return tool;
|
|
115
|
+
})
|
|
116
|
+
.finally(() => {
|
|
117
|
+
// Clean up in-flight map
|
|
118
|
+
this.inflightRequests.delete(cacheKey);
|
|
119
|
+
});
|
|
120
|
+
this.inflightRequests.set(cacheKey, promise);
|
|
121
|
+
return promise;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Check if a tool schema is currently cached (and not expired)
|
|
125
|
+
*/
|
|
126
|
+
has(server, toolName) {
|
|
127
|
+
const cacheKey = this.getCacheKey(server, toolName);
|
|
128
|
+
const cached = this.cache.get(cacheKey);
|
|
129
|
+
return cached !== undefined && !this.isExpired(cached);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Get cached tool schema without loading (returns null if not cached)
|
|
133
|
+
*/
|
|
134
|
+
getIfCached(server, toolName) {
|
|
135
|
+
const cacheKey = this.getCacheKey(server, toolName);
|
|
136
|
+
const cached = this.cache.get(cacheKey);
|
|
137
|
+
if (!cached) {
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
if (this.isExpired(cached)) {
|
|
141
|
+
this.cache.delete(cacheKey);
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
return cached.tool;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Manually add a tool schema to the cache
|
|
148
|
+
*/
|
|
149
|
+
set(server, toolName, tool) {
|
|
150
|
+
const cacheKey = this.getCacheKey(server, toolName);
|
|
151
|
+
if (this.cache.size >= this.config.maxEntries) {
|
|
152
|
+
this.evictOldest();
|
|
153
|
+
}
|
|
154
|
+
this.cache.set(cacheKey, {
|
|
155
|
+
tool,
|
|
156
|
+
timestamp: Date.now(),
|
|
157
|
+
});
|
|
158
|
+
debugIf(() => ({ message: `Manually cached: ${cacheKey}` }));
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Remove a tool schema from the cache
|
|
162
|
+
*/
|
|
163
|
+
delete(server, toolName) {
|
|
164
|
+
const cacheKey = this.getCacheKey(server, toolName);
|
|
165
|
+
return this.cache.delete(cacheKey);
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Clear all cached schemas
|
|
169
|
+
*/
|
|
170
|
+
clear() {
|
|
171
|
+
const size = this.cache.size;
|
|
172
|
+
this.cache.clear();
|
|
173
|
+
this.inflightRequests.clear();
|
|
174
|
+
logger.info(`Cleared ${size} tool schemas from cache`);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Get current cache statistics
|
|
178
|
+
*/
|
|
179
|
+
getStats() {
|
|
180
|
+
return { ...this.stats };
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Get current cache size
|
|
184
|
+
*/
|
|
185
|
+
size() {
|
|
186
|
+
return this.cache.size;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Get all cached tool identifiers
|
|
190
|
+
*/
|
|
191
|
+
getCachedTools() {
|
|
192
|
+
const now = Date.now();
|
|
193
|
+
const tools = [];
|
|
194
|
+
for (const [cacheKey, entry] of this.cache.entries()) {
|
|
195
|
+
// Skip expired entries
|
|
196
|
+
if (this.config.ttlMs && now - entry.timestamp > this.config.ttlMs) {
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
const [server, toolName] = cacheKey.split(':');
|
|
200
|
+
tools.push({ server, toolName });
|
|
201
|
+
}
|
|
202
|
+
return tools;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Reset statistics counters
|
|
206
|
+
*/
|
|
207
|
+
resetStats() {
|
|
208
|
+
this.stats.hits = 0;
|
|
209
|
+
this.stats.misses = 0;
|
|
210
|
+
this.stats.coalesced = 0;
|
|
211
|
+
this.stats.evictions = 0;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Log current cache statistics (for monitoring and observability)
|
|
215
|
+
* @param forceLog - Force logging even if debug mode is off
|
|
216
|
+
*/
|
|
217
|
+
logStats(forceLog = false) {
|
|
218
|
+
const stats = this.getStats();
|
|
219
|
+
const message = `SchemaCache stats: size=${this.cache.size}/${this.config.maxEntries}, hits=${stats.hits}, misses=${stats.misses}, hitRate=${stats.hitRate.toFixed(1)}%, coalesced=${stats.coalesced}, evictions=${stats.evictions}`;
|
|
220
|
+
if (forceLog) {
|
|
221
|
+
logger.info(message);
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
debugIf(message);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Preload tool schemas in batch
|
|
229
|
+
* @returns Object with loaded count and array of failures
|
|
230
|
+
*/
|
|
231
|
+
async preload(tools, loader) {
|
|
232
|
+
debugIf(() => ({ message: `Preloading ${tools.length} tool schemas` }));
|
|
233
|
+
const failed = [];
|
|
234
|
+
// Load in parallel for efficiency
|
|
235
|
+
await Promise.all(tools.map(({ server, toolName }) => this.getOrLoad(server, toolName, loader).catch((error) => {
|
|
236
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
237
|
+
logger.warn(`Failed to preload tool schema ${server}:${toolName}: ${errorMessage}`);
|
|
238
|
+
failed.push({ server, toolName, error: errorMessage });
|
|
239
|
+
})));
|
|
240
|
+
const loaded = tools.length - failed.length;
|
|
241
|
+
if (failed.length > 0) {
|
|
242
|
+
logger.warn(`Preload completed with ${failed.length} failures out of ${tools.length} tools`, { failed });
|
|
243
|
+
}
|
|
244
|
+
logger.info(`Preloaded ${loaded} tool schemas, cache size: ${this.cache.size}`);
|
|
245
|
+
return { loaded, failed };
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=schemaCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemaCache.js","sourceRoot":"","sources":["../../../src/core/capabilities/schemaCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Shared Zod schemas for meta-tool inputs and outputs
|
|
4
|
+
* Used by both lazyTools.ts and metaToolProvider.ts
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Input schemas
|
|
8
|
+
*/
|
|
9
|
+
export declare const ToolListInputSchema: z.ZodObject<{
|
|
10
|
+
server: z.ZodOptional<z.ZodString>;
|
|
11
|
+
pattern: z.ZodOptional<z.ZodString>;
|
|
12
|
+
tag: z.ZodOptional<z.ZodString>;
|
|
13
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
14
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
15
|
+
}, z.core.$strip>;
|
|
16
|
+
export declare const ToolSchemaInputSchema: z.ZodObject<{
|
|
17
|
+
server: z.ZodString;
|
|
18
|
+
toolName: z.ZodString;
|
|
19
|
+
}, z.core.$strip>;
|
|
20
|
+
export declare const ToolInvokeInputSchema: z.ZodObject<{
|
|
21
|
+
server: z.ZodString;
|
|
22
|
+
toolName: z.ZodString;
|
|
23
|
+
args: z.ZodObject<{}, z.core.$loose>;
|
|
24
|
+
}, z.core.$strip>;
|
|
25
|
+
/**
|
|
26
|
+
* Output schemas
|
|
27
|
+
*/
|
|
28
|
+
export declare const ToolMetadataSchema: z.ZodObject<{
|
|
29
|
+
name: z.ZodString;
|
|
30
|
+
server: z.ZodString;
|
|
31
|
+
description: z.ZodString;
|
|
32
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
33
|
+
}, z.core.$strip>;
|
|
34
|
+
export declare const ToolListOutputSchema: z.ZodObject<{
|
|
35
|
+
tools: z.ZodArray<z.ZodObject<{
|
|
36
|
+
name: z.ZodString;
|
|
37
|
+
server: z.ZodString;
|
|
38
|
+
description: z.ZodString;
|
|
39
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
40
|
+
}, z.core.$strip>>;
|
|
41
|
+
totalCount: z.ZodNumber;
|
|
42
|
+
servers: z.ZodArray<z.ZodString>;
|
|
43
|
+
hasMore: z.ZodBoolean;
|
|
44
|
+
nextCursor: z.ZodOptional<z.ZodString>;
|
|
45
|
+
error: z.ZodOptional<z.ZodObject<{
|
|
46
|
+
type: z.ZodEnum<{
|
|
47
|
+
not_found: "not_found";
|
|
48
|
+
validation: "validation";
|
|
49
|
+
upstream: "upstream";
|
|
50
|
+
internal: "internal";
|
|
51
|
+
}>;
|
|
52
|
+
message: z.ZodString;
|
|
53
|
+
}, z.core.$strip>>;
|
|
54
|
+
}, z.core.$strip>;
|
|
55
|
+
export declare const ToolSchemaOutputSchema: z.ZodObject<{
|
|
56
|
+
schema: z.ZodObject<{}, z.core.$loose>;
|
|
57
|
+
fromCache: z.ZodOptional<z.ZodBoolean>;
|
|
58
|
+
error: z.ZodOptional<z.ZodObject<{
|
|
59
|
+
type: z.ZodEnum<{
|
|
60
|
+
not_found: "not_found";
|
|
61
|
+
validation: "validation";
|
|
62
|
+
upstream: "upstream";
|
|
63
|
+
internal: "internal";
|
|
64
|
+
}>;
|
|
65
|
+
message: z.ZodString;
|
|
66
|
+
}, z.core.$strip>>;
|
|
67
|
+
}, z.core.$strip>;
|
|
68
|
+
export declare const ToolInvokeOutputSchema: z.ZodObject<{
|
|
69
|
+
result: z.ZodObject<{}, z.core.$loose>;
|
|
70
|
+
server: z.ZodString;
|
|
71
|
+
tool: z.ZodString;
|
|
72
|
+
error: z.ZodOptional<z.ZodObject<{
|
|
73
|
+
type: z.ZodEnum<{
|
|
74
|
+
not_found: "not_found";
|
|
75
|
+
validation: "validation";
|
|
76
|
+
upstream: "upstream";
|
|
77
|
+
internal: "internal";
|
|
78
|
+
}>;
|
|
79
|
+
message: z.ZodString;
|
|
80
|
+
}, z.core.$strip>>;
|
|
81
|
+
}, z.core.$strip>;
|
|
82
|
+
/**
|
|
83
|
+
* Type exports
|
|
84
|
+
*/
|
|
85
|
+
export type ToolListInput = z.infer<typeof ToolListInputSchema>;
|
|
86
|
+
export type ToolSchemaInput = z.infer<typeof ToolSchemaInputSchema>;
|
|
87
|
+
export type ToolInvokeInput = z.infer<typeof ToolInvokeInputSchema>;
|
|
88
|
+
export type ToolMetadata = z.infer<typeof ToolMetadataSchema>;
|
|
89
|
+
export type ToolListOutput = z.infer<typeof ToolListOutputSchema>;
|
|
90
|
+
export type ToolSchemaOutput = z.infer<typeof ToolSchemaOutputSchema>;
|
|
91
|
+
export type ToolInvokeOutput = z.infer<typeof ToolInvokeOutputSchema>;
|
|
92
|
+
//# sourceMappingURL=metaToolSchemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metaToolSchemas.d.ts","sourceRoot":"","sources":["../../../../src/core/capabilities/schemas/metaToolSchemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AAEH;;GAEG;AAEH,eAAO,MAAM,mBAAmB;;;;;;iBAM9B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;iBAGhC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;iBAIhC,CAAC;AAEH;;GAEG;AAEH,eAAO,MAAM,kBAAkB;;;;;iBAK7B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;iBAY/B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;iBASjC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;iBAUjC,CAAC;AAEH;;GAEG;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Shared Zod schemas for meta-tool inputs and outputs
|
|
4
|
+
* Used by both lazyTools.ts and metaToolProvider.ts
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Input schemas
|
|
8
|
+
*/
|
|
9
|
+
export const ToolListInputSchema = z.object({
|
|
10
|
+
server: z.string().optional(),
|
|
11
|
+
pattern: z.string().optional(),
|
|
12
|
+
tag: z.string().optional(),
|
|
13
|
+
limit: z.number().optional(),
|
|
14
|
+
cursor: z.string().optional(),
|
|
15
|
+
});
|
|
16
|
+
export const ToolSchemaInputSchema = z.object({
|
|
17
|
+
server: z.string(),
|
|
18
|
+
toolName: z.string(),
|
|
19
|
+
});
|
|
20
|
+
export const ToolInvokeInputSchema = z.object({
|
|
21
|
+
server: z.string(),
|
|
22
|
+
toolName: z.string(),
|
|
23
|
+
args: z.object({}).loose(),
|
|
24
|
+
});
|
|
25
|
+
/**
|
|
26
|
+
* Output schemas
|
|
27
|
+
*/
|
|
28
|
+
export const ToolMetadataSchema = z.object({
|
|
29
|
+
name: z.string(),
|
|
30
|
+
server: z.string(),
|
|
31
|
+
description: z.string(),
|
|
32
|
+
tags: z.array(z.string()).optional(),
|
|
33
|
+
});
|
|
34
|
+
export const ToolListOutputSchema = z.object({
|
|
35
|
+
tools: z.array(ToolMetadataSchema),
|
|
36
|
+
totalCount: z.number(),
|
|
37
|
+
servers: z.array(z.string()),
|
|
38
|
+
hasMore: z.boolean(),
|
|
39
|
+
nextCursor: z.string().optional(),
|
|
40
|
+
error: z
|
|
41
|
+
.object({
|
|
42
|
+
type: z.enum(['validation', 'upstream', 'not_found', 'internal']),
|
|
43
|
+
message: z.string(),
|
|
44
|
+
})
|
|
45
|
+
.optional(),
|
|
46
|
+
});
|
|
47
|
+
export const ToolSchemaOutputSchema = z.object({
|
|
48
|
+
schema: z.object({}).loose(),
|
|
49
|
+
fromCache: z.boolean().optional(),
|
|
50
|
+
error: z
|
|
51
|
+
.object({
|
|
52
|
+
type: z.enum(['validation', 'upstream', 'not_found', 'internal']),
|
|
53
|
+
message: z.string(),
|
|
54
|
+
})
|
|
55
|
+
.optional(),
|
|
56
|
+
});
|
|
57
|
+
export const ToolInvokeOutputSchema = z.object({
|
|
58
|
+
result: z.object({}).loose(),
|
|
59
|
+
server: z.string(),
|
|
60
|
+
tool: z.string(),
|
|
61
|
+
error: z
|
|
62
|
+
.object({
|
|
63
|
+
type: z.enum(['validation', 'upstream', 'not_found', 'internal']),
|
|
64
|
+
message: z.string(),
|
|
65
|
+
})
|
|
66
|
+
.optional(),
|
|
67
|
+
});
|
|
68
|
+
//# sourceMappingURL=metaToolSchemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metaToolSchemas.js","sourceRoot":"","sources":["../../../../src/core/capabilities/schemas/metaToolSchemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Lightweight tool metadata (name + description only, no inputSchema)
|
|
4
|
+
*/
|
|
5
|
+
export interface ToolMetadata {
|
|
6
|
+
name: string;
|
|
7
|
+
server: string;
|
|
8
|
+
description: string;
|
|
9
|
+
tags?: string[];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Options for listing tools from registry
|
|
13
|
+
*/
|
|
14
|
+
export interface ListToolsOptions {
|
|
15
|
+
server?: string;
|
|
16
|
+
pattern?: string;
|
|
17
|
+
tag?: string;
|
|
18
|
+
limit?: number;
|
|
19
|
+
cursor?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Result of listing tools from registry
|
|
23
|
+
*/
|
|
24
|
+
export interface ListToolsResult {
|
|
25
|
+
tools: ToolMetadata[];
|
|
26
|
+
totalCount: number;
|
|
27
|
+
hasMore: boolean;
|
|
28
|
+
nextCursor?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* ToolRegistry maintains a lightweight registry of tool metadata without input schemas.
|
|
32
|
+
*
|
|
33
|
+
* This registry is used in meta-tool mode to provide fast tool discovery without
|
|
34
|
+
* loading complex input schemas. Tools are identified by separate server and toolName
|
|
35
|
+
* parameters for explicit routing.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* const registry = ToolRegistry.build(connections);
|
|
40
|
+
*
|
|
41
|
+
* // List all tools
|
|
42
|
+
* const result = registry.listTools({});
|
|
43
|
+
*
|
|
44
|
+
* // Filter by server
|
|
45
|
+
* const filesystemTools = registry.listTools({ server: 'filesystem' });
|
|
46
|
+
*
|
|
47
|
+
* // Filter by pattern
|
|
48
|
+
* const readTools = registry.listTools({ pattern: '*read*' });
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare class ToolRegistry {
|
|
52
|
+
private tools;
|
|
53
|
+
private constructor();
|
|
54
|
+
/**
|
|
55
|
+
* Build a ToolRegistry from a map of server names to their tools
|
|
56
|
+
*
|
|
57
|
+
* @param toolsByServer - Map of server name to array of tools from that server
|
|
58
|
+
* @param serverTags - Optional map of server name to tags
|
|
59
|
+
* @returns A new ToolRegistry instance
|
|
60
|
+
*/
|
|
61
|
+
static fromToolsMap(toolsByServer: Map<string, Tool[]>, serverTags?: Map<string, string[]>): ToolRegistry;
|
|
62
|
+
/**
|
|
63
|
+
* Build a ToolRegistry from tools already loaded from servers
|
|
64
|
+
* This is used when tools are fetched externally (e.g., from CapabilityAggregator)
|
|
65
|
+
*
|
|
66
|
+
* @param toolsWithServer - Array of tools with their server names
|
|
67
|
+
* @returns A new ToolRegistry instance
|
|
68
|
+
*/
|
|
69
|
+
static fromToolsWithServer(toolsWithServer: Array<{
|
|
70
|
+
tool: Tool;
|
|
71
|
+
server: string;
|
|
72
|
+
tags?: string[];
|
|
73
|
+
}>): ToolRegistry;
|
|
74
|
+
/**
|
|
75
|
+
* Create an empty ToolRegistry
|
|
76
|
+
*/
|
|
77
|
+
static empty(): ToolRegistry;
|
|
78
|
+
/**
|
|
79
|
+
* List tools with optional filtering and pagination
|
|
80
|
+
*
|
|
81
|
+
* @param options - Filtering and pagination options
|
|
82
|
+
* @returns Filtered and paginated tool list
|
|
83
|
+
*/
|
|
84
|
+
listTools(options?: ListToolsOptions): ListToolsResult;
|
|
85
|
+
/**
|
|
86
|
+
* Get all unique server names in the registry
|
|
87
|
+
*/
|
|
88
|
+
getServers(): string[];
|
|
89
|
+
/**
|
|
90
|
+
* Get all unique tags in the registry
|
|
91
|
+
*/
|
|
92
|
+
getTags(): string[];
|
|
93
|
+
/**
|
|
94
|
+
* Get tool count by server
|
|
95
|
+
*/
|
|
96
|
+
getToolCountByServer(): Record<string, number>;
|
|
97
|
+
/**
|
|
98
|
+
* Check if a tool exists in the registry
|
|
99
|
+
*/
|
|
100
|
+
hasTool(server: string, toolName: string): boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Get tool metadata without inputSchema
|
|
103
|
+
*/
|
|
104
|
+
getTool(server: string, toolName: string): ToolMetadata | undefined;
|
|
105
|
+
/**
|
|
106
|
+
* Get total number of tools in registry
|
|
107
|
+
*/
|
|
108
|
+
size(): number;
|
|
109
|
+
/**
|
|
110
|
+
* Get all tools in the registry
|
|
111
|
+
*/
|
|
112
|
+
getAllTools(): ToolMetadata[];
|
|
113
|
+
/**
|
|
114
|
+
* Group tools by server
|
|
115
|
+
*/
|
|
116
|
+
groupByServer(): Record<string, ToolMetadata[]>;
|
|
117
|
+
/**
|
|
118
|
+
* Filter the registry to only include tools from specific servers
|
|
119
|
+
*
|
|
120
|
+
* @param serverNames - Set of server names to include
|
|
121
|
+
* @returns A new ToolRegistry instance with filtered tools
|
|
122
|
+
*/
|
|
123
|
+
filterByServers(serverNames: Set<string>): ToolRegistry;
|
|
124
|
+
/**
|
|
125
|
+
* Encode pagination cursor to base64 string
|
|
126
|
+
*/
|
|
127
|
+
private static encodeCursor;
|
|
128
|
+
/**
|
|
129
|
+
* Decode pagination cursor from base64 string
|
|
130
|
+
*/
|
|
131
|
+
private static decodeCursor;
|
|
132
|
+
/**
|
|
133
|
+
* Get tools grouped by category (based on server tags)
|
|
134
|
+
*/
|
|
135
|
+
categorizeByTags(): Record<string, {
|
|
136
|
+
name: string;
|
|
137
|
+
tools: ToolMetadata[];
|
|
138
|
+
}>;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=toolRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolRegistry.d.ts","sourceRoot":"","sources":["../../../src/core/capabilities/toolRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAI1D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAYD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAsB;IAEnC,OAAO;IAIP;;;;;;OAMG;WACW,YAAY,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,YAAY;IAwBhH;;;;;;OAMG;WACW,mBAAmB,CAC/B,eAAe,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,GACtE,YAAY;IAYf;;OAEG;WACW,KAAK,IAAI,YAAY;IAInC;;;;;OAKG;IACI,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,eAAe;IAgFjE;;OAEG;IACI,UAAU,IAAI,MAAM,EAAE;IAK7B;;OAEG;IACI,OAAO,IAAI,MAAM,EAAE;IAY1B;;OAEG;IACI,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAUrD;;OAEG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIzD;;OAEG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI1E;;OAEG;IACI,IAAI,IAAI,MAAM;IAIrB;;OAEG;IACI,WAAW,IAAI,YAAY,EAAE;IAIpC;;OAEG;IACI,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC;IAatD;;;;;OAKG;IACI,eAAe,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,YAAY;IAK9D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAK3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAU3B;;OAEG;IACI,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;CA4BnF"}
|