skyloom 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/ci.yml +36 -0
- package/CONVERSION_PLAN.md +191 -0
- package/README.md +67 -0
- package/dist/agents/dew.d.ts +15 -0
- package/dist/agents/dew.d.ts.map +1 -0
- package/dist/agents/dew.js +74 -0
- package/dist/agents/dew.js.map +1 -0
- package/dist/agents/fair.d.ts +15 -0
- package/dist/agents/fair.d.ts.map +1 -0
- package/dist/agents/fair.js +106 -0
- package/dist/agents/fair.js.map +1 -0
- package/dist/agents/fog.d.ts +15 -0
- package/dist/agents/fog.d.ts.map +1 -0
- package/dist/agents/fog.js +52 -0
- package/dist/agents/fog.js.map +1 -0
- package/dist/agents/frost.d.ts +15 -0
- package/dist/agents/frost.d.ts.map +1 -0
- package/dist/agents/frost.js +54 -0
- package/dist/agents/frost.js.map +1 -0
- package/dist/agents/rain.d.ts +15 -0
- package/dist/agents/rain.d.ts.map +1 -0
- package/dist/agents/rain.js +54 -0
- package/dist/agents/rain.js.map +1 -0
- package/dist/agents/snow.d.ts +27 -0
- package/dist/agents/snow.d.ts.map +1 -0
- package/dist/agents/snow.js +226 -0
- package/dist/agents/snow.js.map +1 -0
- package/dist/cli/main.d.ts +7 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +402 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/mode.d.ts +17 -0
- package/dist/cli/mode.d.ts.map +1 -0
- package/dist/cli/mode.js +56 -0
- package/dist/cli/mode.js.map +1 -0
- package/dist/core/agent.d.ts +174 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +1332 -0
- package/dist/core/agent.js.map +1 -0
- package/dist/core/agent_helpers.d.ts +51 -0
- package/dist/core/agent_helpers.d.ts.map +1 -0
- package/dist/core/agent_helpers.js +477 -0
- package/dist/core/agent_helpers.js.map +1 -0
- package/dist/core/bus.d.ts +99 -0
- package/dist/core/bus.d.ts.map +1 -0
- package/dist/core/bus.js +191 -0
- package/dist/core/bus.js.map +1 -0
- package/dist/core/cache.d.ts +63 -0
- package/dist/core/cache.d.ts.map +1 -0
- package/dist/core/cache.js +121 -0
- package/dist/core/cache.js.map +1 -0
- package/dist/core/checkpoint.d.ts +19 -0
- package/dist/core/checkpoint.d.ts.map +1 -0
- package/dist/core/checkpoint.js +120 -0
- package/dist/core/checkpoint.js.map +1 -0
- package/dist/core/circuit_breaker.d.ts +46 -0
- package/dist/core/circuit_breaker.d.ts.map +1 -0
- package/dist/core/circuit_breaker.js +99 -0
- package/dist/core/circuit_breaker.js.map +1 -0
- package/dist/core/config.d.ts +97 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +281 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/constants.d.ts +78 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/constants.js +84 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/factory.d.ts +63 -0
- package/dist/core/factory.d.ts.map +1 -0
- package/dist/core/factory.js +537 -0
- package/dist/core/factory.js.map +1 -0
- package/dist/core/icons.d.ts +28 -0
- package/dist/core/icons.d.ts.map +1 -0
- package/dist/core/icons.js +86 -0
- package/dist/core/icons.js.map +1 -0
- package/dist/core/index.d.ts +29 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +54 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/llm.d.ts +121 -0
- package/dist/core/llm.d.ts.map +1 -0
- package/dist/core/llm.js +532 -0
- package/dist/core/llm.js.map +1 -0
- package/dist/core/logger.d.ts +57 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +122 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/mcp.d.ts +190 -0
- package/dist/core/mcp.d.ts.map +1 -0
- package/dist/core/mcp.js +822 -0
- package/dist/core/mcp.js.map +1 -0
- package/dist/core/mcp_server.d.ts +26 -0
- package/dist/core/mcp_server.d.ts.map +1 -0
- package/dist/core/mcp_server.js +211 -0
- package/dist/core/mcp_server.js.map +1 -0
- package/dist/core/memory.d.ts +190 -0
- package/dist/core/memory.d.ts.map +1 -0
- package/dist/core/memory.js +988 -0
- package/dist/core/memory.js.map +1 -0
- package/dist/core/middleware.d.ts +114 -0
- package/dist/core/middleware.d.ts.map +1 -0
- package/dist/core/middleware.js +248 -0
- package/dist/core/middleware.js.map +1 -0
- package/dist/core/pipelines.d.ts +87 -0
- package/dist/core/pipelines.d.ts.map +1 -0
- package/dist/core/pipelines.js +301 -0
- package/dist/core/pipelines.js.map +1 -0
- package/dist/core/profile.d.ts +23 -0
- package/dist/core/profile.d.ts.map +1 -0
- package/dist/core/profile.js +289 -0
- package/dist/core/profile.js.map +1 -0
- package/dist/core/router.d.ts +24 -0
- package/dist/core/router.d.ts.map +1 -0
- package/dist/core/router.js +111 -0
- package/dist/core/router.js.map +1 -0
- package/dist/core/schemas.d.ts +82 -0
- package/dist/core/schemas.d.ts.map +1 -0
- package/dist/core/schemas.js +200 -0
- package/dist/core/schemas.js.map +1 -0
- package/dist/core/semantic.d.ts +92 -0
- package/dist/core/semantic.d.ts.map +1 -0
- package/dist/core/semantic.js +175 -0
- package/dist/core/semantic.js.map +1 -0
- package/dist/core/skill.d.ts +68 -0
- package/dist/core/skill.d.ts.map +1 -0
- package/dist/core/skill.js +350 -0
- package/dist/core/skill.js.map +1 -0
- package/dist/core/tool.d.ts +99 -0
- package/dist/core/tool.d.ts.map +1 -0
- package/dist/core/tool.js +341 -0
- package/dist/core/tool.js.map +1 -0
- package/dist/core/tool_router.d.ts +29 -0
- package/dist/core/tool_router.d.ts.map +1 -0
- package/dist/core/tool_router.js +172 -0
- package/dist/core/tool_router.js.map +1 -0
- package/dist/core/workspace.d.ts +48 -0
- package/dist/core/workspace.d.ts.map +1 -0
- package/dist/core/workspace.js +179 -0
- package/dist/core/workspace.js.map +1 -0
- package/dist/plugins/loader.d.ts +17 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +96 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/skills/loader.d.ts +9 -0
- package/dist/skills/loader.d.ts.map +1 -0
- package/dist/skills/loader.js +78 -0
- package/dist/skills/loader.js.map +1 -0
- package/dist/tools/builtin.d.ts +10 -0
- package/dist/tools/builtin.d.ts.map +1 -0
- package/dist/tools/builtin.js +414 -0
- package/dist/tools/builtin.js.map +1 -0
- package/dist/tools/computer.d.ts +12 -0
- package/dist/tools/computer.d.ts.map +1 -0
- package/dist/tools/computer.js +326 -0
- package/dist/tools/computer.js.map +1 -0
- package/dist/tools/delegate.d.ts +10 -0
- package/dist/tools/delegate.d.ts.map +1 -0
- package/dist/tools/delegate.js +45 -0
- package/dist/tools/delegate.js.map +1 -0
- package/dist/web/server.d.ts +5 -0
- package/dist/web/server.d.ts.map +1 -0
- package/dist/web/server.js +647 -0
- package/dist/web/server.js.map +1 -0
- package/dist/web/tts.d.ts +33 -0
- package/dist/web/tts.d.ts.map +1 -0
- package/dist/web/tts.js +69 -0
- package/dist/web/tts.js.map +1 -0
- package/package.json +60 -0
- package/scripts/install.js +48 -0
- package/scripts/link.js +10 -0
- package/setup.bat +79 -0
- package/skill-test-ty2fOA/test.md +10 -0
- package/src/agents/dew.ts +70 -0
- package/src/agents/fair.ts +102 -0
- package/src/agents/fog.ts +48 -0
- package/src/agents/frost.ts +50 -0
- package/src/agents/rain.ts +50 -0
- package/src/agents/snow.ts +239 -0
- package/src/cli/main.ts +405 -0
- package/src/cli/mode.ts +58 -0
- package/src/core/agent.ts +1506 -0
- package/src/core/agent_helpers.ts +461 -0
- package/src/core/bus.ts +221 -0
- package/src/core/cache.ts +153 -0
- package/src/core/checkpoint.ts +94 -0
- package/src/core/circuit_breaker.ts +119 -0
- package/src/core/config.ts +341 -0
- package/src/core/constants.ts +95 -0
- package/src/core/factory.ts +627 -0
- package/src/core/icons.ts +53 -0
- package/src/core/index.ts +31 -0
- package/src/core/llm.ts +724 -0
- package/src/core/logger.ts +144 -0
- package/src/core/mcp.ts +953 -0
- package/src/core/mcp_server.ts +176 -0
- package/src/core/memory.ts +1169 -0
- package/src/core/middleware.ts +350 -0
- package/src/core/pipelines.ts +424 -0
- package/src/core/profile.ts +255 -0
- package/src/core/router.ts +124 -0
- package/src/core/schemas.ts +282 -0
- package/src/core/semantic.ts +211 -0
- package/src/core/skill.ts +342 -0
- package/src/core/tool.ts +427 -0
- package/src/core/tool_router.ts +193 -0
- package/src/core/workspace.ts +150 -0
- package/src/plugins/loader.ts +66 -0
- package/src/skills/loader.ts +46 -0
- package/src/sql.js.d.ts +29 -0
- package/src/tools/builtin.ts +382 -0
- package/src/tools/computer.ts +269 -0
- package/src/tools/delegate.ts +49 -0
- package/src/web/server.ts +634 -0
- package/src/web/tts.ts +93 -0
- package/tests/bus.test.ts +121 -0
- package/tests/icons.test.ts +45 -0
- package/tests/router.test.ts +86 -0
- package/tests/schemas.test.ts +51 -0
- package/tests/semantic.test.ts +83 -0
- package/tests/setup.ts +10 -0
- package/tests/skill.test.ts +172 -0
- package/tests/tool.test.ts +108 -0
- package/tests/tool_router.test.ts +71 -0
- package/tsconfig.json +37 -0
- package/vitest.config.ts +17 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Structured logging for Skyloom.
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* const log = getLogger("fog");
|
|
7
|
+
* log.info("chat_request", { userMessage: "hello", agent: "fog" });
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.Logger = exports.LogLevel = void 0;
|
|
11
|
+
exports.getLogger = getLogger;
|
|
12
|
+
exports.setRequestId = setRequestId;
|
|
13
|
+
exports.getRequestId = getRequestId;
|
|
14
|
+
exports.setDefaultLogLevel = setDefaultLogLevel;
|
|
15
|
+
exports.getDefaultLogLevel = getDefaultLogLevel;
|
|
16
|
+
var LogLevel;
|
|
17
|
+
(function (LogLevel) {
|
|
18
|
+
LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG";
|
|
19
|
+
LogLevel[LogLevel["INFO"] = 1] = "INFO";
|
|
20
|
+
LogLevel[LogLevel["WARN"] = 2] = "WARN";
|
|
21
|
+
LogLevel[LogLevel["ERROR"] = 3] = "ERROR";
|
|
22
|
+
})(LogLevel || (exports.LogLevel = LogLevel = {}));
|
|
23
|
+
/**
|
|
24
|
+
* Logger instance for structured logging
|
|
25
|
+
*/
|
|
26
|
+
class Logger {
|
|
27
|
+
constructor(name, minLevel = LogLevel.INFO) {
|
|
28
|
+
this.name = name;
|
|
29
|
+
this.minLevel = minLevel;
|
|
30
|
+
}
|
|
31
|
+
formatEntry(levelName, msg, extra) {
|
|
32
|
+
const entry = {
|
|
33
|
+
ts: new Date().toISOString(),
|
|
34
|
+
level: levelName.toLowerCase(),
|
|
35
|
+
logger: this.name,
|
|
36
|
+
msg,
|
|
37
|
+
...extra,
|
|
38
|
+
};
|
|
39
|
+
return entry;
|
|
40
|
+
}
|
|
41
|
+
output(level, levelName, msg, extra) {
|
|
42
|
+
if (level < this.minLevel)
|
|
43
|
+
return;
|
|
44
|
+
const entry = this.formatEntry(levelName, msg, extra);
|
|
45
|
+
const line = JSON.stringify(entry, (_key, value) => {
|
|
46
|
+
// Ensure dates are serializable
|
|
47
|
+
if (value instanceof Date) {
|
|
48
|
+
return value.toISOString();
|
|
49
|
+
}
|
|
50
|
+
if (value instanceof Error) {
|
|
51
|
+
return {
|
|
52
|
+
name: value.name,
|
|
53
|
+
message: value.message,
|
|
54
|
+
stack: value.stack,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
return value;
|
|
58
|
+
});
|
|
59
|
+
// Output to stderr for logs, stdout for normal output
|
|
60
|
+
const output = level >= LogLevel.WARN ? console.error : console.log;
|
|
61
|
+
output(line);
|
|
62
|
+
}
|
|
63
|
+
debug(msg, extra) {
|
|
64
|
+
this.output(LogLevel.DEBUG, "DEBUG", msg, extra);
|
|
65
|
+
}
|
|
66
|
+
info(msg, extra) {
|
|
67
|
+
this.output(LogLevel.INFO, "INFO", msg, extra);
|
|
68
|
+
}
|
|
69
|
+
warn(msg, extra) {
|
|
70
|
+
this.output(LogLevel.WARN, "WARN", msg, extra);
|
|
71
|
+
}
|
|
72
|
+
error(msg, extra) {
|
|
73
|
+
this.output(LogLevel.ERROR, "ERROR", msg, extra);
|
|
74
|
+
}
|
|
75
|
+
setLevel(level) {
|
|
76
|
+
this.minLevel = level;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.Logger = Logger;
|
|
80
|
+
/**
|
|
81
|
+
* Global logger instances
|
|
82
|
+
*/
|
|
83
|
+
const loggers = new Map();
|
|
84
|
+
let requestId = null;
|
|
85
|
+
let defaultLogLevel = LogLevel.INFO;
|
|
86
|
+
/**
|
|
87
|
+
* Get or create a logger for a component
|
|
88
|
+
*/
|
|
89
|
+
function getLogger(name) {
|
|
90
|
+
if (!loggers.has(name)) {
|
|
91
|
+
loggers.set(name, new Logger(name, defaultLogLevel));
|
|
92
|
+
}
|
|
93
|
+
return loggers.get(name);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Set the global request ID for tracing
|
|
97
|
+
*/
|
|
98
|
+
function setRequestId(id) {
|
|
99
|
+
requestId = id;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Get the current request ID
|
|
103
|
+
*/
|
|
104
|
+
function getRequestId() {
|
|
105
|
+
return requestId;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Set the global default log level
|
|
109
|
+
*/
|
|
110
|
+
function setDefaultLogLevel(level) {
|
|
111
|
+
defaultLogLevel = level;
|
|
112
|
+
loggers.forEach((logger) => {
|
|
113
|
+
logger.setLevel(level);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Get the current default log level
|
|
118
|
+
*/
|
|
119
|
+
function getDefaultLogLevel() {
|
|
120
|
+
return defaultLogLevel;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP (Model Context Protocol) client — Anthropic-compatible transport.
|
|
3
|
+
*
|
|
4
|
+
* Implements the MCP 2025-03-26 specification with two transports:
|
|
5
|
+
* - stdio: subprocess-based with JSON-RPC over stdin/stdout
|
|
6
|
+
* - SSE: text/event-stream via HTTP/fetch with jsonrpc POST endpoint
|
|
7
|
+
*/
|
|
8
|
+
import type { Logger } from "./logger";
|
|
9
|
+
/**
|
|
10
|
+
* MCP server configuration.
|
|
11
|
+
*/
|
|
12
|
+
export interface MCPServerConfig {
|
|
13
|
+
name: string;
|
|
14
|
+
command?: string;
|
|
15
|
+
args?: string[];
|
|
16
|
+
url?: string;
|
|
17
|
+
env?: Record<string, string>;
|
|
18
|
+
enabled?: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* MCP tool definition from server.
|
|
22
|
+
*/
|
|
23
|
+
export interface MCPToolDef {
|
|
24
|
+
name: string;
|
|
25
|
+
description?: string;
|
|
26
|
+
inputSchema?: {
|
|
27
|
+
type?: string;
|
|
28
|
+
properties?: Record<string, any>;
|
|
29
|
+
required?: string[];
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Client for connecting to a single MCP server.
|
|
34
|
+
*
|
|
35
|
+
* Supports both stdio (subprocess) and SSE (text/event-stream) transports.
|
|
36
|
+
* Uses JSON-RPC 2.0 with id-based correlation for concurrent requests.
|
|
37
|
+
*/
|
|
38
|
+
export declare class MCPClient {
|
|
39
|
+
private config;
|
|
40
|
+
private process;
|
|
41
|
+
private serverTools;
|
|
42
|
+
private nextId;
|
|
43
|
+
private pending;
|
|
44
|
+
private log;
|
|
45
|
+
private sseResponse;
|
|
46
|
+
private sseMessageUrl;
|
|
47
|
+
constructor(config: MCPServerConfig, log?: Logger | null);
|
|
48
|
+
/**
|
|
49
|
+
* Generate next request ID.
|
|
50
|
+
*/
|
|
51
|
+
private newId;
|
|
52
|
+
/**
|
|
53
|
+
* Connect to the MCP server and list available tools.
|
|
54
|
+
*/
|
|
55
|
+
initialize(): Promise<MCPToolDef[]>;
|
|
56
|
+
/**
|
|
57
|
+
* Perform a health check on the MCP connection.
|
|
58
|
+
*/
|
|
59
|
+
healthCheck(): Promise<{
|
|
60
|
+
healthy: boolean;
|
|
61
|
+
details: string;
|
|
62
|
+
}>;
|
|
63
|
+
/**
|
|
64
|
+
* Initialize stdio transport.
|
|
65
|
+
*/
|
|
66
|
+
private initStdio;
|
|
67
|
+
/**
|
|
68
|
+
* Initialize SSE transport.
|
|
69
|
+
*/
|
|
70
|
+
private initSSE;
|
|
71
|
+
/**
|
|
72
|
+
* Health check via stdio.
|
|
73
|
+
*/
|
|
74
|
+
private healthStdio;
|
|
75
|
+
/**
|
|
76
|
+
* Health check via SSE.
|
|
77
|
+
*/
|
|
78
|
+
private healthSSE;
|
|
79
|
+
/**
|
|
80
|
+
* Background task: read from subprocess stdout.
|
|
81
|
+
*/
|
|
82
|
+
private readStdioLoop;
|
|
83
|
+
/**
|
|
84
|
+
* Background task: drain stderr to prevent blocking.
|
|
85
|
+
*/
|
|
86
|
+
private drainStderr;
|
|
87
|
+
/**
|
|
88
|
+
* Send JSON-RPC request via stdio and wait for response.
|
|
89
|
+
*/
|
|
90
|
+
private requestStdio;
|
|
91
|
+
/**
|
|
92
|
+
* Send JSON-RPC request via SSE and wait for response.
|
|
93
|
+
*/
|
|
94
|
+
private requestSSE;
|
|
95
|
+
/**
|
|
96
|
+
* Send JSON data via stdin.
|
|
97
|
+
*/
|
|
98
|
+
private sendJson;
|
|
99
|
+
/**
|
|
100
|
+
* POST JSON data via HTTP (SSE).
|
|
101
|
+
*/
|
|
102
|
+
private postJson;
|
|
103
|
+
/**
|
|
104
|
+
* Parse a single JSON line.
|
|
105
|
+
*/
|
|
106
|
+
private parseJsonLine;
|
|
107
|
+
/**
|
|
108
|
+
* Call a tool on the MCP server.
|
|
109
|
+
*/
|
|
110
|
+
callTool(name: string, args: Record<string, any>): Promise<string>;
|
|
111
|
+
/**
|
|
112
|
+
* Extract text content from MCP tool result.
|
|
113
|
+
*/
|
|
114
|
+
private extractToolResult;
|
|
115
|
+
/**
|
|
116
|
+
* Get list of tool definitions from server.
|
|
117
|
+
*/
|
|
118
|
+
getToolDefinitions(): MCPToolDef[];
|
|
119
|
+
/**
|
|
120
|
+
* Close the connection and clean up resources.
|
|
121
|
+
*/
|
|
122
|
+
close(): Promise<void>;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Manages multiple MCP server connections and registers their tools.
|
|
126
|
+
*/
|
|
127
|
+
export declare class MCPManager {
|
|
128
|
+
private toolRegistry;
|
|
129
|
+
private clients;
|
|
130
|
+
private serverConfigs;
|
|
131
|
+
private agents;
|
|
132
|
+
private log;
|
|
133
|
+
constructor(toolRegistry: any, log?: Logger);
|
|
134
|
+
/**
|
|
135
|
+
* Bind live agent instances for tool refresh.
|
|
136
|
+
*/
|
|
137
|
+
bindAgents(agents: Map<string, any>): void;
|
|
138
|
+
/**
|
|
139
|
+
* Configure MCP servers from config data.
|
|
140
|
+
*/
|
|
141
|
+
configure(servers: MCPServerConfig[]): void;
|
|
142
|
+
/**
|
|
143
|
+
* Connect to all configured MCP servers in parallel.
|
|
144
|
+
* Returns list of "server_name: N tools" status strings.
|
|
145
|
+
*/
|
|
146
|
+
connectAll(): Promise<string[]>;
|
|
147
|
+
/**
|
|
148
|
+
* Register MCP tools into the tool registry and agents.
|
|
149
|
+
*/
|
|
150
|
+
private registerMCPTools;
|
|
151
|
+
/**
|
|
152
|
+
* Create a handler function that calls an MCP tool.
|
|
153
|
+
*/
|
|
154
|
+
private makeMCPHandler;
|
|
155
|
+
/**
|
|
156
|
+
* Add a new MCP server at runtime.
|
|
157
|
+
*/
|
|
158
|
+
addServer(config: MCPServerConfig): Promise<string>;
|
|
159
|
+
/**
|
|
160
|
+
* Remove an MCP server and unregister its tools.
|
|
161
|
+
*/
|
|
162
|
+
removeServer(name: string): Promise<string>;
|
|
163
|
+
/**
|
|
164
|
+
* Get list of connected servers and their tool counts.
|
|
165
|
+
*/
|
|
166
|
+
listServers(): Array<{
|
|
167
|
+
name: string;
|
|
168
|
+
transport: string;
|
|
169
|
+
target: string;
|
|
170
|
+
tools: number;
|
|
171
|
+
connected: boolean;
|
|
172
|
+
}>;
|
|
173
|
+
/**
|
|
174
|
+
* Close all server connections and clean up.
|
|
175
|
+
*/
|
|
176
|
+
closeAll(): Promise<void>;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Load persisted MCP server configs.
|
|
180
|
+
*/
|
|
181
|
+
export declare function loadPersistedServers(): MCPServerConfig[];
|
|
182
|
+
/**
|
|
183
|
+
* Save MCP server config (add or update).
|
|
184
|
+
*/
|
|
185
|
+
export declare function savePersistedServer(config: MCPServerConfig): void;
|
|
186
|
+
/**
|
|
187
|
+
* Remove persisted MCP server config.
|
|
188
|
+
*/
|
|
189
|
+
export declare function removePersistedServer(name: string): void;
|
|
190
|
+
//# sourceMappingURL=mcp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/core/mcp.ts"],"names":[],"mappings":"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"}
|