@zmzai/agent-framework 0.1.0 → 0.2.1

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 (145) hide show
  1. package/README.md +37 -0
  2. package/dist/adapters/openai-provider.d.ts +31 -2
  3. package/dist/adapters/openai-provider.d.ts.map +1 -1
  4. package/dist/adapters/openai-provider.js +118 -74
  5. package/dist/adapters/openai-provider.js.map +1 -1
  6. package/dist/adapters/subprocess-sandbox.d.ts +4 -5
  7. package/dist/adapters/subprocess-sandbox.d.ts.map +1 -1
  8. package/dist/adapters/subprocess-sandbox.js +106 -18
  9. package/dist/adapters/subprocess-sandbox.js.map +1 -1
  10. package/dist/adapters/terminal-backend.d.ts +5 -0
  11. package/dist/adapters/terminal-backend.d.ts.map +1 -0
  12. package/dist/adapters/terminal-backend.js +153 -0
  13. package/dist/adapters/terminal-backend.js.map +1 -0
  14. package/dist/cli.js +0 -0
  15. package/dist/core/agent/registry.d.ts +3 -0
  16. package/dist/core/agent/registry.d.ts.map +1 -1
  17. package/dist/core/agent/registry.js +9 -2
  18. package/dist/core/agent/registry.js.map +1 -1
  19. package/dist/core/events/manifest.d.ts +29 -4
  20. package/dist/core/events/manifest.d.ts.map +1 -1
  21. package/dist/core/events/manifest.js +21 -0
  22. package/dist/core/events/manifest.js.map +1 -1
  23. package/dist/core/mcp/client.d.ts +46 -0
  24. package/dist/core/mcp/client.d.ts.map +1 -0
  25. package/dist/core/mcp/client.js +286 -0
  26. package/dist/core/mcp/client.js.map +1 -0
  27. package/dist/core/mcp/http-client.d.ts +54 -0
  28. package/dist/core/mcp/http-client.d.ts.map +1 -0
  29. package/dist/core/mcp/http-client.js +385 -0
  30. package/dist/core/mcp/http-client.js.map +1 -0
  31. package/dist/core/mcp/servers.d.ts +30 -0
  32. package/dist/core/mcp/servers.d.ts.map +1 -0
  33. package/dist/core/mcp/servers.js +104 -0
  34. package/dist/core/mcp/servers.js.map +1 -0
  35. package/dist/core/permission/ruleset.d.ts +1 -1
  36. package/dist/core/permission/ruleset.d.ts.map +1 -1
  37. package/dist/core/permission/ruleset.js +4 -0
  38. package/dist/core/permission/ruleset.js.map +1 -1
  39. package/dist/core/permission/write-path.d.ts +27 -0
  40. package/dist/core/permission/write-path.d.ts.map +1 -0
  41. package/dist/core/permission/write-path.js +52 -0
  42. package/dist/core/permission/write-path.js.map +1 -0
  43. package/dist/core/repomap/cache.d.ts +24 -0
  44. package/dist/core/repomap/cache.d.ts.map +1 -0
  45. package/dist/core/repomap/cache.js +59 -0
  46. package/dist/core/repomap/cache.js.map +1 -0
  47. package/dist/core/repomap/graph.d.ts +14 -0
  48. package/dist/core/repomap/graph.d.ts.map +1 -0
  49. package/dist/core/repomap/graph.js +89 -0
  50. package/dist/core/repomap/graph.js.map +1 -0
  51. package/dist/core/repomap/render.d.ts +10 -0
  52. package/dist/core/repomap/render.d.ts.map +1 -0
  53. package/dist/core/repomap/render.js +33 -0
  54. package/dist/core/repomap/render.js.map +1 -0
  55. package/dist/core/repomap/repomap.d.ts +38 -0
  56. package/dist/core/repomap/repomap.d.ts.map +1 -0
  57. package/dist/core/repomap/repomap.js +116 -0
  58. package/dist/core/repomap/repomap.js.map +1 -0
  59. package/dist/core/repomap/tags.d.ts +26 -0
  60. package/dist/core/repomap/tags.d.ts.map +1 -0
  61. package/dist/core/repomap/tags.js +191 -0
  62. package/dist/core/repomap/tags.js.map +1 -0
  63. package/dist/core/runtime/compaction.d.ts +26 -14
  64. package/dist/core/runtime/compaction.d.ts.map +1 -1
  65. package/dist/core/runtime/compaction.js +46 -34
  66. package/dist/core/runtime/compaction.js.map +1 -1
  67. package/dist/core/runtime/lifecycle.d.ts +79 -0
  68. package/dist/core/runtime/lifecycle.d.ts.map +1 -0
  69. package/dist/core/runtime/lifecycle.js +71 -0
  70. package/dist/core/runtime/lifecycle.js.map +1 -0
  71. package/dist/core/runtime/pi-bridge.d.ts +4 -1
  72. package/dist/core/runtime/pi-bridge.d.ts.map +1 -1
  73. package/dist/core/runtime/pi-bridge.js +15 -1
  74. package/dist/core/runtime/pi-bridge.js.map +1 -1
  75. package/dist/core/runtime/run-transcript.d.ts +14 -0
  76. package/dist/core/runtime/run-transcript.d.ts.map +1 -0
  77. package/dist/core/runtime/run-transcript.js +35 -0
  78. package/dist/core/runtime/run-transcript.js.map +1 -0
  79. package/dist/core/runtime/runner.d.ts +38 -9
  80. package/dist/core/runtime/runner.d.ts.map +1 -1
  81. package/dist/core/runtime/runner.js +140 -20
  82. package/dist/core/runtime/runner.js.map +1 -1
  83. package/dist/core/session/sqlite-store.d.ts +18 -0
  84. package/dist/core/session/sqlite-store.d.ts.map +1 -0
  85. package/dist/core/session/sqlite-store.js +159 -0
  86. package/dist/core/session/sqlite-store.js.map +1 -0
  87. package/dist/core/session/types.d.ts +12 -0
  88. package/dist/core/session/types.d.ts.map +1 -1
  89. package/dist/core/tools/adapter.d.ts +11 -4
  90. package/dist/core/tools/adapter.d.ts.map +1 -1
  91. package/dist/core/tools/adapter.js +167 -8
  92. package/dist/core/tools/adapter.js.map +1 -1
  93. package/dist/core/tools/builtins.d.ts.map +1 -1
  94. package/dist/core/tools/builtins.js +5 -2
  95. package/dist/core/tools/builtins.js.map +1 -1
  96. package/dist/core/tools/context.d.ts +2 -0
  97. package/dist/core/tools/context.d.ts.map +1 -1
  98. package/dist/core/tools/def.d.ts +25 -0
  99. package/dist/core/tools/def.d.ts.map +1 -1
  100. package/dist/core/tools/def.js +3 -1
  101. package/dist/core/tools/def.js.map +1 -1
  102. package/dist/core/tools/git.d.ts +12 -0
  103. package/dist/core/tools/git.d.ts.map +1 -0
  104. package/dist/core/tools/git.js +189 -0
  105. package/dist/core/tools/git.js.map +1 -0
  106. package/dist/core/tools/patch.d.ts +45 -0
  107. package/dist/core/tools/patch.d.ts.map +1 -0
  108. package/dist/core/tools/patch.js +224 -0
  109. package/dist/core/tools/patch.js.map +1 -0
  110. package/dist/core/tools/qa-check.d.ts.map +1 -1
  111. package/dist/core/tools/qa-check.js +9 -2
  112. package/dist/core/tools/qa-check.js.map +1 -1
  113. package/dist/core/tools/repomap.d.ts +8 -0
  114. package/dist/core/tools/repomap.d.ts.map +1 -0
  115. package/dist/core/tools/repomap.js +34 -0
  116. package/dist/core/tools/repomap.js.map +1 -0
  117. package/dist/core/tools/terminal.d.ts +80 -0
  118. package/dist/core/tools/terminal.d.ts.map +1 -0
  119. package/dist/core/tools/terminal.js +265 -0
  120. package/dist/core/tools/terminal.js.map +1 -0
  121. package/dist/core/tools/trim.d.ts +31 -0
  122. package/dist/core/tools/trim.d.ts.map +1 -0
  123. package/dist/core/tools/trim.js +98 -0
  124. package/dist/core/tools/trim.js.map +1 -0
  125. package/dist/core/tools/webfetch.d.ts +10 -0
  126. package/dist/core/tools/webfetch.d.ts.map +1 -0
  127. package/dist/core/tools/webfetch.js +104 -0
  128. package/dist/core/tools/webfetch.js.map +1 -0
  129. package/dist/core/tools/websearch.d.ts +19 -0
  130. package/dist/core/tools/websearch.d.ts.map +1 -0
  131. package/dist/core/tools/websearch.js +132 -0
  132. package/dist/core/tools/websearch.js.map +1 -0
  133. package/dist/index.d.ts +30 -5
  134. package/dist/index.d.ts.map +1 -1
  135. package/dist/index.js +19 -1
  136. package/dist/index.js.map +1 -1
  137. package/dist/server/create-agent-runtime.d.ts +68 -0
  138. package/dist/server/create-agent-runtime.d.ts.map +1 -0
  139. package/dist/server/create-agent-runtime.js +67 -0
  140. package/dist/server/create-agent-runtime.js.map +1 -0
  141. package/dist/server/create-server.d.ts +5 -0
  142. package/dist/server/create-server.d.ts.map +1 -1
  143. package/dist/server/create-server.js +2 -0
  144. package/dist/server/create-server.js.map +1 -1
  145. package/package.json +23 -9
@@ -0,0 +1,286 @@
1
+ import { spawn } from "node:child_process";
2
+ /** Minimal MCP (Model Context Protocol) stdio client. Speaks newline-delimited
3
+ * JSON-RPC 2.0 over the spawned server's stdin/stdout — the same framing as
4
+ * the official @modelcontextprotocol/sdk stdio transport, without pulling the
5
+ * SDK dependency (framework keeps zod/pi as its only runtime deps).
6
+ *
7
+ * Scope (P0): initialize handshake + tools/list + tools/call. Server→client
8
+ * requests outside the tool lifecycle are politely refused (-32601) so
9
+ * compliant servers never hang waiting on sampling/roots we don't offer. */
10
+ const PROTOCOL_VERSION = "2024-11-05";
11
+ const MAX_FRAME_BYTES = 16 * 1024 * 1024;
12
+ /** 单个 stdio server 累计 stdout 上限(P0 隔离):超出视为失控/恶意,杀进程。
13
+ * 正常 JSON-RPC 流量远小于该值;防的是疯狂刷屏把宿主内存打爆。 */
14
+ const MAX_STREAM_BYTES = 64 * 1024 * 1024;
15
+ function isRecord(value) {
16
+ return typeof value === "object" && value !== null && !Array.isArray(value);
17
+ }
18
+ export class McpStdioClient {
19
+ #spec;
20
+ #opts;
21
+ #child = null;
22
+ #buffer = "";
23
+ #nextId = 1;
24
+ #pending = new Map();
25
+ #onRequest;
26
+ #closed = false;
27
+ #stdoutBytes = 0;
28
+ constructor(spec, opts = {}) {
29
+ this.#spec = spec;
30
+ this.#opts = {
31
+ requestTimeoutMs: opts.requestTimeoutMs ?? 30_000,
32
+ connectTimeoutMs: opts.connectTimeoutMs ?? 15_000,
33
+ cwd: opts.cwd,
34
+ baseEnv: opts.baseEnv,
35
+ allowedCommands: opts.allowedCommands,
36
+ };
37
+ }
38
+ get connected() {
39
+ return this.#child !== null && !this.#closed && this.#child.exitCode === null;
40
+ }
41
+ /** 启动子进程并完成 initialize 握手。失败时保证子进程被回收后抛错。 */
42
+ async start() {
43
+ if (this.connected)
44
+ return;
45
+ // 白名单校验(P0):basename 精确匹配,防 mcp.json 里的任意可执行路径
46
+ const allowed = this.#opts.allowedCommands;
47
+ if (allowed && allowed.length > 0) {
48
+ const base = this.#spec.command.split("/").pop().split("\\").pop();
49
+ if (!allowed.includes(base)) {
50
+ throw new Error(`MCP server 命令不在白名单内:${this.#spec.command}(允许:${allowed.join(", ")})`);
51
+ }
52
+ }
53
+ const base = this.#opts.baseEnv ?? Object.fromEntries(Object.entries(process.env).filter((entry) => entry[1] !== undefined));
54
+ // Next.js 的类型增广把 ProcessEnv.NODE_ENV 声明为必填窄类型,而运行时 env 一定继承自 process.env(含 NODE_ENV),此处断言仅为消除类型误报。
55
+ const env = { ...base, ...this.#spec.env };
56
+ let child;
57
+ try {
58
+ child = spawn(this.#spec.command, this.#spec.args ?? [], {
59
+ cwd: this.#spec.cwd ?? this.#opts.cwd,
60
+ env,
61
+ stdio: ["pipe", "pipe", "pipe"],
62
+ windowsHide: true,
63
+ // posix 下独立进程组:dispose 时整组回收,防 server 自行 fork 的子进程泄漏
64
+ detached: process.platform !== "win32",
65
+ });
66
+ }
67
+ catch (error) {
68
+ throw new Error(`MCP server 进程无法启动:${error.message}`);
69
+ }
70
+ this.#child = child;
71
+ child.stdout.setEncoding("utf8");
72
+ child.stdout.on("data", (chunk) => {
73
+ this.#stdoutBytes += Buffer.byteLength(chunk);
74
+ if (this.#stdoutBytes > MAX_STREAM_BYTES) {
75
+ this.#disposeChild();
76
+ this.#failAll(new Error(`MCP server 输出超过累计上限(${Math.floor(MAX_STREAM_BYTES / 1024 / 1024)}MB),已强制终止`));
77
+ return;
78
+ }
79
+ this.#consume(chunk);
80
+ });
81
+ // stderr 只做环形摘要收集,便于把启动失败原因带给调用方。
82
+ const stderrTail = [];
83
+ child.stderr.setEncoding("utf8");
84
+ child.stderr.on("data", (chunk) => {
85
+ stderrTail.push(chunk);
86
+ if (stderrTail.length > 20)
87
+ stderrTail.shift();
88
+ });
89
+ this.#stderrTail = stderrTail;
90
+ child.on("error", (error) => {
91
+ this.#failAll(new Error(`MCP server 进程错误:${error.message}`));
92
+ });
93
+ child.on("close", (code, signal) => {
94
+ const detail = stderrTail.length ? `:${stderrTail.join("").trim().slice(-500)}` : "";
95
+ this.#failAll(new Error(`MCP server 已退出(code=${code ?? "null"}${signal ? ` signal=${signal}` : ""})${detail}`));
96
+ this.#child = null;
97
+ });
98
+ const timeout = setTimeout(() => {
99
+ this.#disposeChild();
100
+ this.#failAll(new Error(`MCP initialize 握手超时(${this.#opts.connectTimeoutMs}ms 无响应)`));
101
+ }, this.#opts.connectTimeoutMs);
102
+ try {
103
+ await this.request("initialize", {
104
+ protocolVersion: PROTOCOL_VERSION,
105
+ capabilities: {},
106
+ clientInfo: { name: "zmzai-agent-framework", version: "0.1.0" },
107
+ }, timeout);
108
+ this.notify("notifications/initialized");
109
+ }
110
+ catch (error) {
111
+ this.close();
112
+ throw error instanceof Error ? error : new Error(String(error));
113
+ }
114
+ finally {
115
+ clearTimeout(timeout);
116
+ }
117
+ }
118
+ #stderrTail = [];
119
+ /** tools/list 自动翻页聚合全量工具。 */
120
+ async listTools() {
121
+ const tools = [];
122
+ let cursor;
123
+ do {
124
+ const result = await this.request("tools/list", cursor ? { cursor } : {});
125
+ if (Array.isArray(result.tools)) {
126
+ for (const tool of result.tools) {
127
+ if (!isRecord(tool) || typeof tool.name !== "string")
128
+ continue;
129
+ tools.push({
130
+ name: tool.name,
131
+ ...(typeof tool.description === "string" ? { description: tool.description } : {}),
132
+ ...(isRecord(tool.inputSchema) ? { inputSchema: tool.inputSchema } : {}),
133
+ });
134
+ }
135
+ }
136
+ cursor = typeof result.nextCursor === "string" ? result.nextCursor : undefined;
137
+ } while (cursor);
138
+ return tools;
139
+ }
140
+ async callTool(name, args) {
141
+ const result = await this.request("tools/call", { name, arguments: args });
142
+ const isError = result.isError === true;
143
+ const text = Array.isArray(result.content)
144
+ ? result.content
145
+ .map((block) => (isRecord(block) && block.type === "text" && typeof block.text === "string" ? block.text : ""))
146
+ .filter(Boolean)
147
+ .join("\n")
148
+ : "";
149
+ return { text, isError };
150
+ }
151
+ request(method, params, timerOverride) {
152
+ if (!this.connected)
153
+ return Promise.reject(new Error(`MCP 连接不可用(method=${method})`));
154
+ const id = this.#nextId++;
155
+ const timer = timerOverride ?? setTimeout(() => {
156
+ const pending = this.#pending.get(id);
157
+ if (pending) {
158
+ this.#pending.delete(id);
159
+ pending.reject(new Error(`MCP 请求超时:${method}(${this.#opts.requestTimeoutMs}ms)`));
160
+ }
161
+ }, this.#opts.requestTimeoutMs);
162
+ return new Promise((resolve, reject) => {
163
+ this.#pending.set(id, { resolve: resolve, reject, timer });
164
+ this.#write({ jsonrpc: "2.0", id, method, ...(params !== undefined ? { params } : {}) });
165
+ });
166
+ }
167
+ notify(method, params) {
168
+ if (!this.connected)
169
+ return;
170
+ const frame = { jsonrpc: "2.0", method, ...(params !== undefined ? { params } : {}) };
171
+ this.#write(frame);
172
+ }
173
+ /** 注册服务器请求回调;返回 false 表示框架不提供该能力(客户端回 -32601)。 */
174
+ onRequest(handler) {
175
+ this.#onRequest = handler;
176
+ }
177
+ close() {
178
+ this.#closed = true;
179
+ this.#disposeChild();
180
+ this.#failAll(new Error("MCP 连接已由宿主关闭"));
181
+ }
182
+ #write(frame) {
183
+ const child = this.#child;
184
+ if (!child || !child.stdin?.writable)
185
+ return;
186
+ child.stdin.write(JSON.stringify(frame) + "\n");
187
+ }
188
+ #consume(chunk) {
189
+ this.#buffer += chunk;
190
+ let index;
191
+ while ((index = this.#buffer.indexOf("\n")) >= 0) {
192
+ const line = this.#buffer.slice(0, index).trim();
193
+ this.#buffer = this.#buffer.slice(index + 1);
194
+ if (!line)
195
+ continue;
196
+ if (line.length > MAX_FRAME_BYTES)
197
+ continue;
198
+ let frame;
199
+ try {
200
+ frame = JSON.parse(line);
201
+ }
202
+ catch {
203
+ continue; // 非 JSON 行(某些 server 往 stdout 打日志)直接丢弃
204
+ }
205
+ if (!isRecord(frame) || frame.jsonrpc !== "2.0")
206
+ continue;
207
+ if (typeof frame.id === "number") {
208
+ const pending = this.#pending.get(frame.id);
209
+ if (!pending)
210
+ continue;
211
+ this.#pending.delete(frame.id);
212
+ clearTimeout(pending.timer);
213
+ const rpcError = frame.error;
214
+ if (rpcError) {
215
+ pending.reject(new Error(`MCP 错误 ${rpcError.code ?? "-"}: ${rpcError.message ?? "未知错误"}`));
216
+ }
217
+ else {
218
+ pending.resolve(frame.result);
219
+ }
220
+ continue;
221
+ }
222
+ // 服务器通知忽略;服务器主动请求仅在宿主注册了处理器且其返回非 undefined 时给结果,否则 -32601。
223
+ if (typeof frame.method === "string") {
224
+ void this.#handleServerInitiated(frame.method, frame.params, typeof frame.id !== "undefined" && frame.id !== null ? Number(frame.id) : null);
225
+ }
226
+ }
227
+ }
228
+ async #handleServerInitiated(method, params, id) {
229
+ const handled = this.#onRequest ? await this.#onRequest(method, params) : undefined;
230
+ if (id === null)
231
+ return;
232
+ if (handled !== undefined) {
233
+ this.#child?.stdin?.write(JSON.stringify({ jsonrpc: "2.0", id, result: handled }) + "\n");
234
+ }
235
+ else {
236
+ this.#child?.stdin?.write(JSON.stringify({ jsonrpc: "2.0", id, error: { code: -32601, message: `Method not found: ${method}` } }) + "\n");
237
+ }
238
+ }
239
+ #disposeChild() {
240
+ const child = this.#child;
241
+ if (!child)
242
+ return;
243
+ try {
244
+ child.stdin?.end();
245
+ }
246
+ catch {
247
+ /* already gone */
248
+ }
249
+ if (child.exitCode === null) {
250
+ // 进程组整组回收(spawn detached 时 child.pid 即组长的 pgid)
251
+ const killGroup = () => {
252
+ try {
253
+ if (process.platform !== "win32" && child.pid)
254
+ process.kill(-child.pid, "SIGTERM");
255
+ else
256
+ child.kill("SIGTERM");
257
+ }
258
+ catch {
259
+ child.kill("SIGTERM");
260
+ }
261
+ };
262
+ killGroup();
263
+ setTimeout(() => {
264
+ if (child.exitCode === null) {
265
+ try {
266
+ if (process.platform !== "win32" && child.pid)
267
+ process.kill(-child.pid, "SIGKILL");
268
+ else
269
+ child.kill("SIGKILL");
270
+ }
271
+ catch {
272
+ child.kill("SIGKILL");
273
+ }
274
+ }
275
+ }, 2000).unref();
276
+ }
277
+ }
278
+ #failAll(error) {
279
+ for (const [, pending] of this.#pending) {
280
+ clearTimeout(pending.timer);
281
+ pending.reject(error);
282
+ }
283
+ this.#pending.clear();
284
+ }
285
+ }
286
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/core/mcp/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import type { PluginMcpServer } from "../agent/plugin.js";
2
+ import type { McpCallResult, McpToolInfo } from "./client.js";
3
+ /** MCP HTTP 双传输(P0 收尾):
4
+ * - streamable-http(现行规范):单端点 POST,响应可为 application/json 或
5
+ * text/event-stream 帧;initialize 下发的 Mcp-Session-Id 需回传;
6
+ * notifications POST 期望 202。
7
+ * - sse(遗留):常开 GET 事件流承载响应;服务端以 endpoint 事件告知 POST 目标。
8
+ *
9
+ * stdio 走既有 McpStdioClient;三者都满足下方 McpClientLike 结构。 */
10
+ export type McpClientLike = {
11
+ listTools(): Promise<McpToolInfo[]>;
12
+ callTool(name: string, args: Record<string, unknown>): Promise<McpCallResult>;
13
+ close(): void;
14
+ };
15
+ /** 增量 SSE 帧解析:data:/event:/id: 行、空行分帧、`:` 开头为注释心跳。 */
16
+ export declare function createSseParser(onEvent: (event: {
17
+ event: string | null;
18
+ data: string;
19
+ }) => void): (chunk: string) => void;
20
+ export declare class McpStreamableHttpClient implements McpClientLike {
21
+ #private;
22
+ constructor(url: string, opts?: {
23
+ headers?: Record<string, string>;
24
+ requestTimeoutMs?: number;
25
+ });
26
+ start(): Promise<void>;
27
+ private postJsonRpc;
28
+ request(method: string, params?: unknown): Promise<unknown>;
29
+ notify(method: string, params?: unknown): Promise<void>;
30
+ listTools(): Promise<McpToolInfo[]>;
31
+ callTool(name: string, args: Record<string, unknown>): Promise<McpCallResult>;
32
+ close(): void;
33
+ }
34
+ export declare function toolsFromResult(result: unknown): McpToolInfo[];
35
+ export declare function callFromResult(result: unknown): McpCallResult;
36
+ export declare class McpSseClient implements McpClientLike {
37
+ #private;
38
+ constructor(url: string, opts?: {
39
+ headers?: Record<string, string>;
40
+ requestTimeoutMs?: number;
41
+ });
42
+ start(): Promise<void>;
43
+ postToEndpoint(payload: Record<string, unknown>): Promise<Response>;
44
+ private postedRequest;
45
+ listTools(): Promise<McpToolInfo[]>;
46
+ callTool(name: string, args: Record<string, unknown>): Promise<McpCallResult>;
47
+ notifyInitialized(): Promise<void>;
48
+ close(): void;
49
+ get closed(): boolean;
50
+ }
51
+ export declare function createMcpHttpClient(spec: PluginMcpServer, opts?: {
52
+ requestTimeoutMs?: number;
53
+ }): McpClientLike | null;
54
+ //# sourceMappingURL=http-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../src/core/mcp/http-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE9D;;;;;;yDAMyD;AAEzD,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9E,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAwBF,sDAAsD;AACtD,wBAAgB,eAAe,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CA8BzH;AAoDD,qBAAa,uBAAwB,YAAW,aAAa;;gBAO/C,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAO;IAM7F,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAKd,WAAW;IA4DnB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAM3D,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IASvD,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAInC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IAInF,KAAK,IAAI,IAAI;CAGd;AAKD,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,WAAW,EAAE,CAa9D;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,aAAa,CAU7D;AAID,qBAAa,YAAa,YAAW,aAAa;;gBASpC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAO;IAM7F,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAoFtB,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;YAU3D,aAAa;IAQrB,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAKnC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IAO7E,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxC,KAAK,IAAI,IAAI;IAMb,IAAI,MAAM,IAAI,OAAO,CAEpB;CACF;AAID,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,eAAe,EACrB,IAAI,GAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAO,GACvC,aAAa,GAAG,IAAI,CAStB"}