kagent-ts 0.1.2 → 0.1.4
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/dist/core/agent.d.ts +61 -13
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +55 -14
- package/dist/core/agent.js.map +1 -1
- package/dist/core/hooks.d.ts +8 -2
- package/dist/core/hooks.d.ts.map +1 -1
- package/dist/core/plan-solve-agent.d.ts.map +1 -1
- package/dist/core/plan-solve-agent.js +40 -17
- package/dist/core/plan-solve-agent.js.map +1 -1
- package/dist/core/react-agent.d.ts.map +1 -1
- package/dist/core/react-agent.js +30 -13
- package/dist/core/react-agent.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/index.d.ts +4 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +8 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/mcp-client-manager.d.ts +64 -0
- package/dist/mcp/mcp-client-manager.d.ts.map +1 -0
- package/dist/mcp/mcp-client-manager.js +224 -0
- package/dist/mcp/mcp-client-manager.js.map +1 -0
- package/dist/mcp/mcp-types.d.ts +58 -0
- package/dist/mcp/mcp-types.d.ts.map +1 -0
- package/dist/mcp/mcp-types.js +20 -0
- package/dist/mcp/mcp-types.js.map +1 -0
- package/dist/skills/file-skill-loader.d.ts +5 -14
- package/dist/skills/file-skill-loader.d.ts.map +1 -1
- package/dist/skills/file-skill-loader.js +28 -146
- package/dist/skills/file-skill-loader.js.map +1 -1
- package/dist/skills/skill-manager.d.ts +6 -23
- package/dist/skills/skill-manager.d.ts.map +1 -1
- package/dist/skills/skill-manager.js +9 -53
- package/dist/skills/skill-manager.js.map +1 -1
- package/dist/skills/types.d.ts +1 -8
- package/dist/skills/types.d.ts.map +1 -1
- package/dist/trace/index.d.ts +4 -0
- package/dist/trace/index.d.ts.map +1 -0
- package/dist/trace/index.js +6 -0
- package/dist/trace/index.js.map +1 -0
- package/dist/trace/trace-logger.d.ts +92 -0
- package/dist/trace/trace-logger.d.ts.map +1 -0
- package/dist/trace/trace-logger.js +463 -0
- package/dist/trace/trace-logger.js.map +1 -0
- package/dist/trace/types.d.ts +20 -0
- package/dist/trace/types.d.ts.map +1 -0
- package/dist/trace/types.js +3 -0
- package/dist/trace/types.js.map +1 -0
- package/package.json +2 -1
package/dist/core/react-agent.js
CHANGED
|
@@ -68,6 +68,8 @@ class ReActAgent extends agent_1.Agent {
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
async run(input) {
|
|
71
|
+
// ── Async initialization (MCP connections, etc.) ────────────────────
|
|
72
|
+
await this.init();
|
|
71
73
|
// ── Progressive disclosure ─────────────────────────────────────────
|
|
72
74
|
if (this.enableSkillAutoDetect && this.skillManager.count > 0) {
|
|
73
75
|
const activated = this.skillManager.detectAndActivate(input);
|
|
@@ -91,26 +93,32 @@ class ReActAgent extends agent_1.Agent {
|
|
|
91
93
|
// Check if user cancelled (SIGINT)
|
|
92
94
|
if (this.isCancelled) {
|
|
93
95
|
this.sessionManager?.deleteSession(this.sessionManager.getSessionId());
|
|
94
|
-
|
|
96
|
+
const cancelMsg = "Execution cancelled by user. Session discarded.";
|
|
97
|
+
for (const h of this.hooks)
|
|
98
|
+
h.onFinish?.(cancelMsg);
|
|
99
|
+
return cancelMsg;
|
|
95
100
|
}
|
|
96
101
|
// Check and compress if needed
|
|
97
102
|
this.checkAndCompress();
|
|
98
103
|
// Prepare messages for the LLM
|
|
99
104
|
const contextMessages = this.contextManager.getContextMessages();
|
|
100
105
|
// Call the LLM with all registered tools — with network error handling
|
|
101
|
-
this.hooks
|
|
106
|
+
for (const h of this.hooks)
|
|
107
|
+
h.onLLMStart?.(contextMessages, this.toolRegistry.getTools());
|
|
102
108
|
let response;
|
|
103
109
|
try {
|
|
104
110
|
response = await this.llm.chat(contextMessages, this.toolRegistry.getTools());
|
|
105
111
|
}
|
|
106
112
|
catch (err) {
|
|
107
113
|
if (err instanceof openai_provider_1.LLMNetworkError) {
|
|
108
|
-
this.hooks
|
|
114
|
+
for (const h of this.hooks)
|
|
115
|
+
h.onLLMError?.(err);
|
|
109
116
|
return this.handleNetworkError(err, iteration + 1);
|
|
110
117
|
}
|
|
111
118
|
throw err; // Unknown error — propagate
|
|
112
119
|
}
|
|
113
|
-
this.hooks
|
|
120
|
+
for (const h of this.hooks)
|
|
121
|
+
h.onLLMEnd?.(response);
|
|
114
122
|
// Parse the response content as structured JSON
|
|
115
123
|
const parsed = (0, response_schema_1.parseReActResponse)(response.content);
|
|
116
124
|
const rawContent = response.content;
|
|
@@ -124,7 +132,8 @@ class ReActAgent extends agent_1.Agent {
|
|
|
124
132
|
// Log the reasoning thought and capture as error analysis
|
|
125
133
|
if (parsed.thought) {
|
|
126
134
|
console.log(`[Thought] ${parsed.thought}`);
|
|
127
|
-
this.hooks
|
|
135
|
+
for (const h of this.hooks)
|
|
136
|
+
h.onThought?.(parsed.thought);
|
|
128
137
|
this.captureAnalysisFromThought(parsed.thought);
|
|
129
138
|
}
|
|
130
139
|
for (const toolCall of response.tool_calls) {
|
|
@@ -135,7 +144,8 @@ class ReActAgent extends agent_1.Agent {
|
|
|
135
144
|
catch {
|
|
136
145
|
args = {};
|
|
137
146
|
}
|
|
138
|
-
this.hooks
|
|
147
|
+
for (const h of this.hooks)
|
|
148
|
+
h.onToolStart?.(toolCall.function.name, args);
|
|
139
149
|
// Execute via ToolRegistry — includes circuit breaker protection
|
|
140
150
|
let result;
|
|
141
151
|
try {
|
|
@@ -147,10 +157,12 @@ class ReActAgent extends agent_1.Agent {
|
|
|
147
157
|
}
|
|
148
158
|
// Determine success vs error and fire appropriate hook
|
|
149
159
|
if (result.startsWith("Error")) {
|
|
150
|
-
this.hooks
|
|
160
|
+
for (const h of this.hooks)
|
|
161
|
+
h.onToolError?.(toolCall.function.name, result);
|
|
151
162
|
}
|
|
152
163
|
else {
|
|
153
|
-
this.hooks
|
|
164
|
+
for (const h of this.hooks)
|
|
165
|
+
h.onToolEnd?.(toolCall.function.name, result);
|
|
154
166
|
}
|
|
155
167
|
// Track this result for error analysis if it indicates a failure
|
|
156
168
|
this.trackToolErrorForAnalysis(toolCall.function.name, result);
|
|
@@ -167,7 +179,8 @@ class ReActAgent extends agent_1.Agent {
|
|
|
167
179
|
}
|
|
168
180
|
// No tool calls — extract the final answer from the JSON
|
|
169
181
|
if ("answer" in parsed && parsed.answer) {
|
|
170
|
-
this.hooks
|
|
182
|
+
for (const h of this.hooks)
|
|
183
|
+
h.onFinish?.(parsed.answer);
|
|
171
184
|
// Save final checkpoint as completed
|
|
172
185
|
if (this.checkpointingEnabled) {
|
|
173
186
|
this.saveCheckpoint("completed");
|
|
@@ -179,7 +192,8 @@ class ReActAgent extends agent_1.Agent {
|
|
|
179
192
|
if (parsed.thought) {
|
|
180
193
|
consecutiveEmptyIterations++;
|
|
181
194
|
console.log(`[Thought] ${parsed.thought}`);
|
|
182
|
-
this.hooks
|
|
195
|
+
for (const h of this.hooks)
|
|
196
|
+
h.onThought?.(parsed.thought);
|
|
183
197
|
this.captureAnalysisFromThought(parsed.thought);
|
|
184
198
|
// If stuck in unproductive thought-only loop, inject format reminder
|
|
185
199
|
if (consecutiveEmptyIterations >= 3) {
|
|
@@ -194,7 +208,8 @@ class ReActAgent extends agent_1.Agent {
|
|
|
194
208
|
"Please try rephrasing or breaking it down into smaller, more specific steps.";
|
|
195
209
|
const stuckAssistantMessage = message_1.Message.assistant(stuckMsg);
|
|
196
210
|
this.contextManager.addMessage(stuckAssistantMessage.toDict());
|
|
197
|
-
this.hooks
|
|
211
|
+
for (const h of this.hooks)
|
|
212
|
+
h.onFinish?.(stuckMsg);
|
|
198
213
|
return stuckMsg;
|
|
199
214
|
}
|
|
200
215
|
// Save checkpoint after a thought-only iteration
|
|
@@ -210,7 +225,8 @@ class ReActAgent extends agent_1.Agent {
|
|
|
210
225
|
"Please try rephrasing or breaking it down into smaller, more specific steps.";
|
|
211
226
|
const stuckAssistantMessage = message_1.Message.assistant(stuckMsg);
|
|
212
227
|
this.contextManager.addMessage(stuckAssistantMessage.toDict());
|
|
213
|
-
this.hooks
|
|
228
|
+
for (const h of this.hooks)
|
|
229
|
+
h.onFinish?.(stuckMsg);
|
|
214
230
|
return stuckMsg;
|
|
215
231
|
}
|
|
216
232
|
}
|
|
@@ -219,7 +235,8 @@ class ReActAgent extends agent_1.Agent {
|
|
|
219
235
|
`Please try breaking your request into smaller steps.`;
|
|
220
236
|
const timeoutAssistantMessage = message_1.Message.assistant(timeoutMsg);
|
|
221
237
|
this.contextManager.addMessage(timeoutAssistantMessage.toDict());
|
|
222
|
-
this.hooks
|
|
238
|
+
for (const h of this.hooks)
|
|
239
|
+
h.onFinish?.(timeoutMsg);
|
|
223
240
|
return timeoutMsg;
|
|
224
241
|
}
|
|
225
242
|
// ─── Resume ──────────────────────────────────────────────────────────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-agent.js","sourceRoot":"","sources":["../../src/core/react-agent.ts"],"names":[],"mappings":";;;AAAA,mCAA6C;AAC7C,iDAA8C;AAC9C,uDAG2B;AAC3B,4DAAyD;AAEzD,uDAA+D;AAE/D;;;;;GAKG;AACH,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;;;;;;;;;;;6CAuBS,gDAA8B,EAAE,CAAC;AAiB9E;;;;;;;;;;;;GAYG;AACH,MAAa,UAAW,SAAQ,aAAK;IAC3B,aAAa,CAAS;IACtB,qBAAqB,CAAU;IAEvC,YAAY,MAAwB;QAClC,mDAAmD;QACnD,MAAM,YAAY,GAAqB;YACrC,GAAG,MAAM;YACT,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,2BAA2B;SACjE,CAAC;QACF,KAAK,CAAC,YAAY,CAAC,CAAC;QAEpB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,IAAI,IAAI,CAAC;QAElE,6DAA6D;QAC7D,2DAA2D;QAC3D,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAa;QACrB,sEAAsE;QACtE,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC7D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,4BAA4B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,MAAM,WAAW,GAAG,iBAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QAErD,oEAAoE;QACpE,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;QAED,uEAAuE;QACvE,IAAI,0BAA0B,GAAG,CAAC,CAAC;QACnC,MAAM,qBAAqB,GAAG,CAAC,CAAC;QAEhC,qEAAqE;QACrE,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,EAAE,CAAC;YACpE,mCAAmC;YACnC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,IAAI,CAAC,cAAc,EAAE,aAAa,CAChC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CACnC,CAAC;gBACF,
|
|
1
|
+
{"version":3,"file":"react-agent.js","sourceRoot":"","sources":["../../src/core/react-agent.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -36,4 +36,10 @@ export { SessionManager } from "./session/session-manager";
|
|
|
36
36
|
export type { SessionManagerConfig } from "./session/session-manager";
|
|
37
37
|
export type { SessionState, SessionStatus, AgentType, PlanSolveSessionState, } from "./session/session-types";
|
|
38
38
|
export { countTokens, countMessageTokens } from "./utils/token-counter";
|
|
39
|
+
export { TraceLogger } from "./trace/trace-logger";
|
|
40
|
+
export type { TraceLoggerConfig } from "./trace/trace-logger";
|
|
41
|
+
export type { AgentTraceEvent, AgentTraceEventType } from "./trace/types";
|
|
42
|
+
export { McpClientManager } from "./mcp/mcp-client-manager";
|
|
43
|
+
export { McpConnectionError } from "./mcp/mcp-types";
|
|
44
|
+
export type { McpServerConfig, McpConnectionStatus, McpConnectionErrorReport, } from "./mcp/mcp-types";
|
|
39
45
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,YAAY,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,EACL,kBAAkB,EAClB,8BAA8B,EAC9B,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC1E,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGnF,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,cAAc,EACd,cAAc,GACf,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAChG,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGzD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG9D,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACxF,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAIhG,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGnE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAGhF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,YAAY,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,YAAY,EACV,YAAY,EACZ,aAAa,EACb,SAAS,EACT,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.countMessageTokens = exports.countTokens = exports.SessionManager = exports.PreferenceManager = exports.SlidingWindowCompression = exports.ContextManager = exports.isNetworkError = exports.LLMNetworkError = exports.OpenAIProvider = exports.Role = exports.Message = exports.parseKeywords = exports.parseFrontmatter = exports.FileSkillLoader = exports.SkillManager = exports.GlobSearchTool = exports.GrepSearchTool = exports.EditFileTool = exports.WriteFileTool = exports.ReadFileTool = exports.registerAllBuiltinTools = exports.BUILTIN_TOOLS = exports.categorizeError = exports.ToolErrorTracker = exports.BreakerState = exports.CircuitBreaker = exports.ToolRegistry = exports.PLAN_SOLVE_INSTRUCTIONS = exports.parsePlanSolveResponse = exports.STRUCTURED_OUTPUT_INSTRUCTIONS = exports.parseReActResponse = exports.PlanSolveAgent = exports.ReActAgent = exports.Agent = void 0;
|
|
3
|
+
exports.McpConnectionError = exports.McpClientManager = exports.TraceLogger = exports.countMessageTokens = exports.countTokens = exports.SessionManager = exports.PreferenceManager = exports.SlidingWindowCompression = exports.ContextManager = exports.isNetworkError = exports.LLMNetworkError = exports.OpenAIProvider = exports.Role = exports.Message = exports.parseKeywords = exports.parseFrontmatter = exports.FileSkillLoader = exports.SkillManager = exports.GlobSearchTool = exports.GrepSearchTool = exports.EditFileTool = exports.WriteFileTool = exports.ReadFileTool = exports.registerAllBuiltinTools = exports.BUILTIN_TOOLS = exports.categorizeError = exports.ToolErrorTracker = exports.BreakerState = exports.CircuitBreaker = exports.ToolRegistry = exports.PLAN_SOLVE_INSTRUCTIONS = exports.parsePlanSolveResponse = exports.STRUCTURED_OUTPUT_INSTRUCTIONS = exports.parseReActResponse = exports.PlanSolveAgent = exports.ReActAgent = exports.Agent = void 0;
|
|
4
4
|
// Core Agent
|
|
5
5
|
var agent_1 = require("./core/agent");
|
|
6
6
|
Object.defineProperty(exports, "Agent", { enumerable: true, get: function () { return agent_1.Agent; } });
|
|
@@ -64,4 +64,12 @@ Object.defineProperty(exports, "SessionManager", { enumerable: true, get: functi
|
|
|
64
64
|
var token_counter_1 = require("./utils/token-counter");
|
|
65
65
|
Object.defineProperty(exports, "countTokens", { enumerable: true, get: function () { return token_counter_1.countTokens; } });
|
|
66
66
|
Object.defineProperty(exports, "countMessageTokens", { enumerable: true, get: function () { return token_counter_1.countMessageTokens; } });
|
|
67
|
+
// Trace — session execution trace logger
|
|
68
|
+
var trace_logger_1 = require("./trace/trace-logger");
|
|
69
|
+
Object.defineProperty(exports, "TraceLogger", { enumerable: true, get: function () { return trace_logger_1.TraceLogger; } });
|
|
70
|
+
// MCP (Model Context Protocol) — dynamic tool discovery
|
|
71
|
+
var mcp_client_manager_1 = require("./mcp/mcp-client-manager");
|
|
72
|
+
Object.defineProperty(exports, "McpClientManager", { enumerable: true, get: function () { return mcp_client_manager_1.McpClientManager; } });
|
|
73
|
+
var mcp_types_1 = require("./mcp/mcp-types");
|
|
74
|
+
Object.defineProperty(exports, "McpConnectionError", { enumerable: true, get: function () { return mcp_types_1.McpConnectionError; } });
|
|
67
75
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,aAAa;AACb,sCAAqC;AAA5B,8FAAA,KAAK,OAAA;AAEd,kDAAgD;AAAvC,yGAAA,UAAU,OAAA;AAEnB,4DAAyD;AAAhD,kHAAA,cAAc,OAAA;AAKvB,oDAAoD;AACpD,0DAKgC;AAJ9B,qHAAA,kBAAkB,OAAA;AAClB,iIAAA,8BAA8B,OAAA;AAC9B,yHAAA,sBAAsB,OAAA;AACtB,0HAAA,uBAAuB,OAAA;AASzB,qCAAqC;AACrC,uDAAqD;AAA5C,6GAAA,YAAY,OAAA;AACrB,2DAAyD;AAAhD,iHAAA,cAAc,OAAA;AAEvB,uCAA6C;AAApC,qGAAA,YAAY,OAAA;AAGrB,6DAA6D;AAC7D,uDAA0E;AAAjE,iHAAA,gBAAgB,OAAA;AAAE,gHAAA,eAAe,OAAA;AAI1C,sBAAsB;AACtB,+CAQ+B;AAP7B,sGAAA,aAAa,OAAA;AACb,gHAAA,uBAAuB,OAAA;AACvB,qGAAA,YAAY,OAAA;AACZ,sGAAA,aAAa,OAAA;AACb,qGAAA,YAAY,OAAA;AACZ,uGAAA,cAAc,OAAA;AACd,uGAAA,cAAc,OAAA;AAGhB,kCAAkC;AAClC,wCAAgG;AAAvF,qGAAA,YAAY,OAAA;AAAE,wGAAA,eAAe,OAAA;AAAE,yGAAA,gBAAgB,OAAA;AAAE,sGAAA,aAAa,OAAA;AAGvE,WAAW;AACX,8CAA6C;AAApC,kGAAA,OAAO,OAAA;AAChB,0CAAwC;AAA/B,6FAAA,IAAI,OAAA;AAKb,yDAAwF;AAA/E,iHAAA,cAAc,OAAA;AAAE,kHAAA,eAAe,OAAA;AAAE,iHAAA,cAAc,OAAA;AAIxD,UAAU;AACV,6DAA2D;AAAlD,iHAAA,cAAc,OAAA;AAKvB,+DAAwE;AAA/D,0HAAA,wBAAwB,OAAA;AAGjC,mBAAmB;AACnB,uEAAqE;AAA5D,uHAAA,iBAAiB,OAAA;AAG1B,2CAA2C;AAC3C,6DAA2D;AAAlD,iHAAA,cAAc,OAAA;AASvB,QAAQ;AACR,uDAAwE;AAA/D,4GAAA,WAAW,OAAA;AAAE,mHAAA,kBAAkB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,aAAa;AACb,sCAAqC;AAA5B,8FAAA,KAAK,OAAA;AAEd,kDAAgD;AAAvC,yGAAA,UAAU,OAAA;AAEnB,4DAAyD;AAAhD,kHAAA,cAAc,OAAA;AAKvB,oDAAoD;AACpD,0DAKgC;AAJ9B,qHAAA,kBAAkB,OAAA;AAClB,iIAAA,8BAA8B,OAAA;AAC9B,yHAAA,sBAAsB,OAAA;AACtB,0HAAA,uBAAuB,OAAA;AASzB,qCAAqC;AACrC,uDAAqD;AAA5C,6GAAA,YAAY,OAAA;AACrB,2DAAyD;AAAhD,iHAAA,cAAc,OAAA;AAEvB,uCAA6C;AAApC,qGAAA,YAAY,OAAA;AAGrB,6DAA6D;AAC7D,uDAA0E;AAAjE,iHAAA,gBAAgB,OAAA;AAAE,gHAAA,eAAe,OAAA;AAI1C,sBAAsB;AACtB,+CAQ+B;AAP7B,sGAAA,aAAa,OAAA;AACb,gHAAA,uBAAuB,OAAA;AACvB,qGAAA,YAAY,OAAA;AACZ,sGAAA,aAAa,OAAA;AACb,qGAAA,YAAY,OAAA;AACZ,uGAAA,cAAc,OAAA;AACd,uGAAA,cAAc,OAAA;AAGhB,kCAAkC;AAClC,wCAAgG;AAAvF,qGAAA,YAAY,OAAA;AAAE,wGAAA,eAAe,OAAA;AAAE,yGAAA,gBAAgB,OAAA;AAAE,sGAAA,aAAa,OAAA;AAGvE,WAAW;AACX,8CAA6C;AAApC,kGAAA,OAAO,OAAA;AAChB,0CAAwC;AAA/B,6FAAA,IAAI,OAAA;AAKb,yDAAwF;AAA/E,iHAAA,cAAc,OAAA;AAAE,kHAAA,eAAe,OAAA;AAAE,iHAAA,cAAc,OAAA;AAIxD,UAAU;AACV,6DAA2D;AAAlD,iHAAA,cAAc,OAAA;AAKvB,+DAAwE;AAA/D,0HAAA,wBAAwB,OAAA;AAGjC,mBAAmB;AACnB,uEAAqE;AAA5D,uHAAA,iBAAiB,OAAA;AAG1B,2CAA2C;AAC3C,6DAA2D;AAAlD,iHAAA,cAAc,OAAA;AASvB,QAAQ;AACR,uDAAwE;AAA/D,4GAAA,WAAW,OAAA;AAAE,mHAAA,kBAAkB,OAAA;AAExC,yCAAyC;AACzC,qDAAmD;AAA1C,2GAAA,WAAW,OAAA;AAIpB,wDAAwD;AACxD,+DAA4D;AAAnD,sHAAA,gBAAgB,OAAA;AACzB,6CAAqD;AAA5C,+GAAA,kBAAkB,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.McpConnectionError = exports.McpClientManager = void 0;
|
|
4
|
+
var mcp_client_manager_1 = require("./mcp-client-manager");
|
|
5
|
+
Object.defineProperty(exports, "McpClientManager", { enumerable: true, get: function () { return mcp_client_manager_1.McpClientManager; } });
|
|
6
|
+
var mcp_types_1 = require("./mcp-types");
|
|
7
|
+
Object.defineProperty(exports, "McpConnectionError", { enumerable: true, get: function () { return mcp_types_1.McpConnectionError; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";;;AAAA,2DAAwD;AAA/C,sHAAA,gBAAgB,OAAA;AACzB,yCAAiD;AAAxC,+GAAA,kBAAkB,OAAA"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { ToolRegistry } from "../tools/tool-registry";
|
|
2
|
+
import { McpServerConfig, McpConnectionStatus, McpConnectionErrorReport } from "./mcp-types";
|
|
3
|
+
/**
|
|
4
|
+
* Manages connections to MCP (Model Context Protocol) servers.
|
|
5
|
+
*
|
|
6
|
+
* Lifecycle:
|
|
7
|
+
* 1. `connectToServer()` / `connectAll()` — connect, discover tools,
|
|
8
|
+
* register adapted tools in ToolRegistry
|
|
9
|
+
* 2. Tools execute via the adapted `Tool` wrapper (delegates to MCP client)
|
|
10
|
+
* 3. `disconnect()` / `disconnectAll()` — unregister tools, close connections
|
|
11
|
+
*/
|
|
12
|
+
export declare class McpClientManager {
|
|
13
|
+
/** Active connections keyed by server name. */
|
|
14
|
+
private connections;
|
|
15
|
+
/** The ToolRegistry where adapted tools are registered. */
|
|
16
|
+
private toolRegistry;
|
|
17
|
+
constructor(toolRegistry: ToolRegistry);
|
|
18
|
+
/**
|
|
19
|
+
* Connect to a single MCP server, discover its tools, and register them
|
|
20
|
+
* in the ToolRegistry with a `{serverName}_` prefix.
|
|
21
|
+
*
|
|
22
|
+
* @throws McpConnectionError if the config is invalid or the
|
|
23
|
+
* connection/tool-discovery fails.
|
|
24
|
+
*/
|
|
25
|
+
connectToServer(serverName: string, config: McpServerConfig): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Connect to multiple MCP servers. Failures for individual servers are
|
|
28
|
+
* collected and logged; other servers still connect.
|
|
29
|
+
*
|
|
30
|
+
* @returns An array of connection error reports (empty if all succeeded).
|
|
31
|
+
*/
|
|
32
|
+
connectAll(servers: Record<string, McpServerConfig>): Promise<McpConnectionErrorReport[]>;
|
|
33
|
+
/**
|
|
34
|
+
* Disconnect from a single server and unregister its tools.
|
|
35
|
+
*/
|
|
36
|
+
disconnect(serverName: string): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Disconnect from all MCP servers and unregister all MCP-provided tools.
|
|
39
|
+
*/
|
|
40
|
+
disconnectAll(): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Get connection status for all servers.
|
|
43
|
+
*/
|
|
44
|
+
getStatus(): McpConnectionStatus[];
|
|
45
|
+
/**
|
|
46
|
+
* Whether at least one server is connected.
|
|
47
|
+
*/
|
|
48
|
+
get isConnected(): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Get the number of connected servers.
|
|
51
|
+
*/
|
|
52
|
+
get connectedCount(): number;
|
|
53
|
+
/**
|
|
54
|
+
* Adapt an MCP SDK tool descriptor into the framework's Tool interface.
|
|
55
|
+
*
|
|
56
|
+
* The adapted tool's name is `{serverName}_{mcpToolName}` to avoid
|
|
57
|
+
* collisions between servers and with locally-registered tools.
|
|
58
|
+
*
|
|
59
|
+
* The `execute` function closes over the client instance and handles
|
|
60
|
+
* result content parsing (extracting text from MCP's Content[] array).
|
|
61
|
+
*/
|
|
62
|
+
private adaptTool;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=mcp-client-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-client-manager.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-client-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EAEzB,MAAM,aAAa,CAAC;AAmCrB;;;;;;;;GAQG;AACH,qBAAa,gBAAgB;IAC3B,+CAA+C;IAC/C,OAAO,CAAC,WAAW,CAA+C;IAElE,2DAA2D;IAC3D,OAAO,CAAC,YAAY,CAAe;gBAEvB,YAAY,EAAE,YAAY;IAMtC;;;;;;OAMG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAyEjF;;;;;OAKG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAkB/F;;OAEG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBnD;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAOpC;;OAEG;IACH,SAAS,IAAI,mBAAmB,EAAE;IAQlC;;OAEG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACH,IAAI,cAAc,IAAI,MAAM,CAE3B;IAID;;;;;;;;OAQG;IACH,OAAO,CAAC,SAAS;CAgDlB"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.McpClientManager = void 0;
|
|
4
|
+
const mcp_types_1 = require("./mcp-types");
|
|
5
|
+
const index_js_1 = require("@modelcontextprotocol/sdk/client/index.js");
|
|
6
|
+
const stdio_js_1 = require("@modelcontextprotocol/sdk/client/stdio.js");
|
|
7
|
+
const sse_js_1 = require("@modelcontextprotocol/sdk/client/sse.js");
|
|
8
|
+
// ─── Config resolver ────────────────────────────────────────────────────────
|
|
9
|
+
function resolveTransportConfig(config) {
|
|
10
|
+
if (config.command && config.url) {
|
|
11
|
+
throw new mcp_types_1.McpConnectionError("MCP server config must specify either 'command' (stdio) or 'url' (SSE), not both.");
|
|
12
|
+
}
|
|
13
|
+
if (config.command) {
|
|
14
|
+
return { type: "stdio", command: config.command, args: config.args, env: config.env };
|
|
15
|
+
}
|
|
16
|
+
if (config.url) {
|
|
17
|
+
return { type: "sse", url: config.url };
|
|
18
|
+
}
|
|
19
|
+
throw new mcp_types_1.McpConnectionError("MCP server config must specify either 'command' (stdio) or 'url' (SSE).");
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Manages connections to MCP (Model Context Protocol) servers.
|
|
23
|
+
*
|
|
24
|
+
* Lifecycle:
|
|
25
|
+
* 1. `connectToServer()` / `connectAll()` — connect, discover tools,
|
|
26
|
+
* register adapted tools in ToolRegistry
|
|
27
|
+
* 2. Tools execute via the adapted `Tool` wrapper (delegates to MCP client)
|
|
28
|
+
* 3. `disconnect()` / `disconnectAll()` — unregister tools, close connections
|
|
29
|
+
*/
|
|
30
|
+
class McpClientManager {
|
|
31
|
+
/** Active connections keyed by server name. */
|
|
32
|
+
connections = new Map();
|
|
33
|
+
/** The ToolRegistry where adapted tools are registered. */
|
|
34
|
+
toolRegistry;
|
|
35
|
+
constructor(toolRegistry) {
|
|
36
|
+
this.toolRegistry = toolRegistry;
|
|
37
|
+
}
|
|
38
|
+
// ─── Connection Management ────────────────────────────────────────────────
|
|
39
|
+
/**
|
|
40
|
+
* Connect to a single MCP server, discover its tools, and register them
|
|
41
|
+
* in the ToolRegistry with a `{serverName}_` prefix.
|
|
42
|
+
*
|
|
43
|
+
* @throws McpConnectionError if the config is invalid or the
|
|
44
|
+
* connection/tool-discovery fails.
|
|
45
|
+
*/
|
|
46
|
+
async connectToServer(serverName, config) {
|
|
47
|
+
if (this.connections.has(serverName)) {
|
|
48
|
+
throw new mcp_types_1.McpConnectionError(`MCP server "${serverName}" is already connected.`);
|
|
49
|
+
}
|
|
50
|
+
const transportConfig = resolveTransportConfig(config);
|
|
51
|
+
// Build transport
|
|
52
|
+
let transport;
|
|
53
|
+
if (transportConfig.type === "stdio") {
|
|
54
|
+
transport = new stdio_js_1.StdioClientTransport({
|
|
55
|
+
command: transportConfig.command,
|
|
56
|
+
args: transportConfig.args,
|
|
57
|
+
env: transportConfig.env,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
transport = new sse_js_1.SSEClientTransport(new URL(transportConfig.url));
|
|
62
|
+
}
|
|
63
|
+
// Create client and connect
|
|
64
|
+
const client = new index_js_1.Client({ name: "kagent-ts", version: "0.1.3" }, { capabilities: {} });
|
|
65
|
+
try {
|
|
66
|
+
await client.connect(transport);
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
throw new mcp_types_1.McpConnectionError(`Failed to connect to MCP server "${serverName}": ${err instanceof Error ? err.message : String(err)}`);
|
|
70
|
+
}
|
|
71
|
+
// Discover tools
|
|
72
|
+
let mcpToolDescriptors;
|
|
73
|
+
try {
|
|
74
|
+
const result = await client.listTools();
|
|
75
|
+
mcpToolDescriptors = result.tools;
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
await client.close().catch(() => { });
|
|
79
|
+
throw new mcp_types_1.McpConnectionError(`Failed to list tools from MCP server "${serverName}": ${err instanceof Error ? err.message : String(err)}`);
|
|
80
|
+
}
|
|
81
|
+
// Adapt and register tools
|
|
82
|
+
const adaptedTools = [];
|
|
83
|
+
for (const mcpTool of mcpToolDescriptors) {
|
|
84
|
+
const adapted = this.adaptTool(serverName, mcpTool, client);
|
|
85
|
+
if (this.toolRegistry.has(adapted.name)) {
|
|
86
|
+
console.warn(`[MCP] Tool "${adapted.name}" is already registered. ` +
|
|
87
|
+
`Skipping MCP tool "${serverName}/${mcpTool.name}".`);
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
adaptedTools.push(adapted);
|
|
91
|
+
}
|
|
92
|
+
if (adaptedTools.length === 0) {
|
|
93
|
+
console.warn(`[MCP] Server "${serverName}" exposed no usable tools.`);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
this.toolRegistry.registerMany(adaptedTools);
|
|
97
|
+
console.log(`[MCP] Registered ${adaptedTools.length} tool(s) from server "${serverName}".`);
|
|
98
|
+
}
|
|
99
|
+
this.connections.set(serverName, { serverName, client, tools: adaptedTools });
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Connect to multiple MCP servers. Failures for individual servers are
|
|
103
|
+
* collected and logged; other servers still connect.
|
|
104
|
+
*
|
|
105
|
+
* @returns An array of connection error reports (empty if all succeeded).
|
|
106
|
+
*/
|
|
107
|
+
async connectAll(servers) {
|
|
108
|
+
const errors = [];
|
|
109
|
+
await Promise.allSettled(Object.entries(servers).map(async ([name, config]) => {
|
|
110
|
+
try {
|
|
111
|
+
await this.connectToServer(name, config);
|
|
112
|
+
}
|
|
113
|
+
catch (err) {
|
|
114
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
115
|
+
errors.push({ serverName: name, error: message });
|
|
116
|
+
console.error(`[MCP] Failed to connect to server "${name}": ${message}`);
|
|
117
|
+
}
|
|
118
|
+
}));
|
|
119
|
+
return errors;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Disconnect from a single server and unregister its tools.
|
|
123
|
+
*/
|
|
124
|
+
async disconnect(serverName) {
|
|
125
|
+
const conn = this.connections.get(serverName);
|
|
126
|
+
if (!conn)
|
|
127
|
+
return;
|
|
128
|
+
// Unregister tools
|
|
129
|
+
for (const tool of conn.tools) {
|
|
130
|
+
this.toolRegistry.remove(tool.name);
|
|
131
|
+
}
|
|
132
|
+
// Close the client
|
|
133
|
+
try {
|
|
134
|
+
await conn.client.close();
|
|
135
|
+
}
|
|
136
|
+
catch (err) {
|
|
137
|
+
console.warn(`[MCP] Error while closing connection to "${serverName}": ${err instanceof Error ? err.message : String(err)}`);
|
|
138
|
+
}
|
|
139
|
+
this.connections.delete(serverName);
|
|
140
|
+
console.log(`[MCP] Disconnected from server "${serverName}".`);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Disconnect from all MCP servers and unregister all MCP-provided tools.
|
|
144
|
+
*/
|
|
145
|
+
async disconnectAll() {
|
|
146
|
+
const names = Array.from(this.connections.keys());
|
|
147
|
+
await Promise.allSettled(names.map((name) => this.disconnect(name)));
|
|
148
|
+
}
|
|
149
|
+
// ─── Queries ──────────────────────────────────────────────────────────────
|
|
150
|
+
/**
|
|
151
|
+
* Get connection status for all servers.
|
|
152
|
+
*/
|
|
153
|
+
getStatus() {
|
|
154
|
+
return Array.from(this.connections.entries()).map(([name, conn]) => ({
|
|
155
|
+
serverName: name,
|
|
156
|
+
connected: true,
|
|
157
|
+
toolCount: conn.tools.length,
|
|
158
|
+
}));
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Whether at least one server is connected.
|
|
162
|
+
*/
|
|
163
|
+
get isConnected() {
|
|
164
|
+
return this.connections.size > 0;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Get the number of connected servers.
|
|
168
|
+
*/
|
|
169
|
+
get connectedCount() {
|
|
170
|
+
return this.connections.size;
|
|
171
|
+
}
|
|
172
|
+
// ─── Tool Adapter ─────────────────────────────────────────────────────────
|
|
173
|
+
/**
|
|
174
|
+
* Adapt an MCP SDK tool descriptor into the framework's Tool interface.
|
|
175
|
+
*
|
|
176
|
+
* The adapted tool's name is `{serverName}_{mcpToolName}` to avoid
|
|
177
|
+
* collisions between servers and with locally-registered tools.
|
|
178
|
+
*
|
|
179
|
+
* The `execute` function closes over the client instance and handles
|
|
180
|
+
* result content parsing (extracting text from MCP's Content[] array).
|
|
181
|
+
*/
|
|
182
|
+
adaptTool(serverName, mcpTool, client) {
|
|
183
|
+
const prefixedName = `${serverName}_${mcpTool.name}`;
|
|
184
|
+
return {
|
|
185
|
+
name: prefixedName,
|
|
186
|
+
description: mcpTool.description ?? "",
|
|
187
|
+
parameters: (mcpTool.inputSchema ?? { type: "object", properties: {} }),
|
|
188
|
+
execute: async (args) => {
|
|
189
|
+
// Check connection is still alive
|
|
190
|
+
if (!this.connections.has(serverName)) {
|
|
191
|
+
return `Error: MCP server "${serverName}" is no longer connected. Tool "${prefixedName}" is unavailable.`;
|
|
192
|
+
}
|
|
193
|
+
try {
|
|
194
|
+
const result = await client.callTool({
|
|
195
|
+
name: mcpTool.name,
|
|
196
|
+
arguments: args,
|
|
197
|
+
});
|
|
198
|
+
// MCP results carry an array of content items (text, image, etc.)
|
|
199
|
+
let output = "(MCP tool returned no content)";
|
|
200
|
+
if (result.content && Array.isArray(result.content)) {
|
|
201
|
+
const textParts = result.content
|
|
202
|
+
.map((c) => (c.text ? c.text : JSON.stringify(c)))
|
|
203
|
+
.filter(Boolean);
|
|
204
|
+
if (textParts.length > 0) {
|
|
205
|
+
output = textParts.join("\n");
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
// Prefix with "Error:" so the framework's circuit-breaker /
|
|
209
|
+
// retry-guidance path handles it correctly.
|
|
210
|
+
if (result.isError) {
|
|
211
|
+
return `Error: ${output}`;
|
|
212
|
+
}
|
|
213
|
+
return output;
|
|
214
|
+
}
|
|
215
|
+
catch (err) {
|
|
216
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
217
|
+
return `Error executing MCP tool "${serverName}/${mcpTool.name}": ${message}`;
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
exports.McpClientManager = McpClientManager;
|
|
224
|
+
//# sourceMappingURL=mcp-client-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-client-manager.js","sourceRoot":"","sources":["../../src/mcp/mcp-client-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP (Model Context Protocol) type definitions.
|
|
3
|
+
*
|
|
4
|
+
* Users define MCP servers via `McpServerConfig`. The framework
|
|
5
|
+
* connects, discovers tools, adapts them, and registers with ToolRegistry.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Configuration for connecting to an MCP server.
|
|
9
|
+
*
|
|
10
|
+
* Two mutually exclusive modes:
|
|
11
|
+
* - stdio: set `command` (optionally `args` and `env`)
|
|
12
|
+
* - SSE: set `url`
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* // stdio: local filesystem server
|
|
17
|
+
* { command: "npx", args: ["-y", "@modelcontextprotocol/server-filesystem", "."] }
|
|
18
|
+
*
|
|
19
|
+
* // SSE: remote server
|
|
20
|
+
* { url: "http://localhost:3001/sse" }
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export interface McpServerConfig {
|
|
24
|
+
/** Command for stdio transport (e.g., "npx", "uvx"). Exclusive with `url`. */
|
|
25
|
+
command?: string;
|
|
26
|
+
/** Arguments passed to the stdio command. */
|
|
27
|
+
args?: string[];
|
|
28
|
+
/** Environment variables injected into the stdio process. */
|
|
29
|
+
env?: Record<string, string>;
|
|
30
|
+
/**
|
|
31
|
+
* URL for SSE transport (e.g., "http://localhost:3000/sse").
|
|
32
|
+
* Exclusive with `command`.
|
|
33
|
+
*/
|
|
34
|
+
url?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Snapshot of a single MCP server's connection state.
|
|
38
|
+
*/
|
|
39
|
+
export interface McpConnectionStatus {
|
|
40
|
+
serverName: string;
|
|
41
|
+
connected: boolean;
|
|
42
|
+
toolCount: number;
|
|
43
|
+
error?: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Report from a failed connection attempt.
|
|
47
|
+
*/
|
|
48
|
+
export interface McpConnectionErrorReport {
|
|
49
|
+
serverName: string;
|
|
50
|
+
error: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Specialized error for MCP connection/issues.
|
|
54
|
+
*/
|
|
55
|
+
export declare class McpConnectionError extends Error {
|
|
56
|
+
constructor(message: string);
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=mcp-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-types.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,eAAe;IAC9B,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI5B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MCP (Model Context Protocol) type definitions.
|
|
4
|
+
*
|
|
5
|
+
* Users define MCP servers via `McpServerConfig`. The framework
|
|
6
|
+
* connects, discovers tools, adapts them, and registers with ToolRegistry.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.McpConnectionError = void 0;
|
|
10
|
+
/**
|
|
11
|
+
* Specialized error for MCP connection/issues.
|
|
12
|
+
*/
|
|
13
|
+
class McpConnectionError extends Error {
|
|
14
|
+
constructor(message) {
|
|
15
|
+
super(message);
|
|
16
|
+
this.name = "McpConnectionError";
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.McpConnectionError = McpConnectionError;
|
|
20
|
+
//# sourceMappingURL=mcp-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-types.js","sourceRoot":"","sources":["../../src/mcp/mcp-types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAkDH;;GAEG;AACH,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AALD,gDAKC"}
|