@cicctencent/agent-core 0.1.70 → 0.1.72
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/cjs/a2a/client.d.ts +39 -11
- package/dist/cjs/a2a/client.d.ts.map +1 -1
- package/dist/cjs/a2a/client.js +69 -22
- package/dist/cjs/a2a/client.js.map +1 -1
- package/dist/cjs/a2a/rest-client.d.ts +35 -9
- package/dist/cjs/a2a/rest-client.d.ts.map +1 -1
- package/dist/cjs/a2a/rest-client.js +65 -18
- package/dist/cjs/a2a/rest-client.js.map +1 -1
- package/dist/cjs/a2a/rest-runner.d.ts +6 -0
- package/dist/cjs/a2a/rest-runner.d.ts.map +1 -1
- package/dist/cjs/a2a/rest-runner.js +19 -7
- package/dist/cjs/a2a/rest-runner.js.map +1 -1
- package/dist/cjs/a2a/runner.d.ts +6 -0
- package/dist/cjs/a2a/runner.d.ts.map +1 -1
- package/dist/cjs/a2a/runner.js +24 -7
- package/dist/cjs/a2a/runner.js.map +1 -1
- package/dist/cjs/index.d.ts +5 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +15 -10
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/llm/debug.d.ts.map +1 -1
- package/dist/cjs/llm/debug.js +4 -1
- package/dist/cjs/llm/debug.js.map +1 -1
- package/dist/cjs/mcp/base-client.d.ts +19 -4
- package/dist/cjs/mcp/base-client.d.ts.map +1 -1
- package/dist/cjs/mcp/base-client.js +28 -8
- package/dist/cjs/mcp/base-client.js.map +1 -1
- package/dist/cjs/mcp/http-client.d.ts +5 -5
- package/dist/cjs/mcp/http-client.d.ts.map +1 -1
- package/dist/cjs/mcp/http-client.js +26 -21
- package/dist/cjs/mcp/http-client.js.map +1 -1
- package/dist/cjs/mcp/proxy-agent.d.ts +2 -50
- package/dist/cjs/mcp/proxy-agent.d.ts.map +1 -1
- package/dist/cjs/mcp/proxy-agent.js +12 -174
- package/dist/cjs/mcp/proxy-agent.js.map +1 -1
- package/dist/cjs/mcp/stdio-client.d.ts +1 -1
- package/dist/cjs/mcp/stdio-client.d.ts.map +1 -1
- package/dist/cjs/mcp/stdio-client.js +1 -1
- package/dist/cjs/mcp/stdio-client.js.map +1 -1
- package/dist/cjs/mcp/types.d.ts +8 -2
- package/dist/cjs/mcp/types.d.ts.map +1 -1
- package/dist/cjs/tool/delegate.d.ts +12 -1
- package/dist/cjs/tool/delegate.d.ts.map +1 -1
- package/dist/cjs/tool/delegate.js +21 -5
- package/dist/cjs/tool/delegate.js.map +1 -1
- package/dist/cjs/utils/header-vars.d.ts +18 -0
- package/dist/cjs/utils/header-vars.d.ts.map +1 -0
- package/dist/cjs/utils/header-vars.js +71 -0
- package/dist/cjs/utils/header-vars.js.map +1 -0
- package/dist/cjs/utils/proxy-agent.d.ts +53 -0
- package/dist/cjs/utils/proxy-agent.d.ts.map +1 -0
- package/dist/cjs/utils/proxy-agent.js +154 -0
- package/dist/cjs/utils/proxy-agent.js.map +1 -0
- package/dist/cjs/utils/proxy.d.ts +53 -0
- package/dist/cjs/utils/proxy.d.ts.map +1 -0
- package/dist/cjs/utils/proxy.js +148 -0
- package/dist/cjs/utils/proxy.js.map +1 -0
- package/dist/cjs/utils/system-proxy.d.ts +15 -0
- package/dist/cjs/utils/system-proxy.d.ts.map +1 -0
- package/dist/cjs/utils/system-proxy.js +133 -0
- package/dist/cjs/utils/system-proxy.js.map +1 -0
- package/dist/esm/a2a/client.d.ts +39 -11
- package/dist/esm/a2a/client.d.ts.map +1 -1
- package/dist/esm/a2a/client.js +69 -22
- package/dist/esm/a2a/client.js.map +1 -1
- package/dist/esm/a2a/rest-client.d.ts +35 -9
- package/dist/esm/a2a/rest-client.d.ts.map +1 -1
- package/dist/esm/a2a/rest-client.js +65 -18
- package/dist/esm/a2a/rest-client.js.map +1 -1
- package/dist/esm/a2a/rest-runner.d.ts +6 -0
- package/dist/esm/a2a/rest-runner.d.ts.map +1 -1
- package/dist/esm/a2a/rest-runner.js +19 -7
- package/dist/esm/a2a/rest-runner.js.map +1 -1
- package/dist/esm/a2a/runner.d.ts +6 -0
- package/dist/esm/a2a/runner.d.ts.map +1 -1
- package/dist/esm/a2a/runner.js +24 -7
- package/dist/esm/a2a/runner.js.map +1 -1
- package/dist/esm/index.d.ts +5 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/llm/debug.d.ts.map +1 -1
- package/dist/esm/llm/debug.js +4 -1
- package/dist/esm/llm/debug.js.map +1 -1
- package/dist/esm/mcp/base-client.d.ts +19 -4
- package/dist/esm/mcp/base-client.d.ts.map +1 -1
- package/dist/esm/mcp/base-client.js +28 -8
- package/dist/esm/mcp/base-client.js.map +1 -1
- package/dist/esm/mcp/http-client.d.ts +5 -5
- package/dist/esm/mcp/http-client.d.ts.map +1 -1
- package/dist/esm/mcp/http-client.js +25 -20
- package/dist/esm/mcp/http-client.js.map +1 -1
- package/dist/esm/mcp/proxy-agent.d.ts +2 -50
- package/dist/esm/mcp/proxy-agent.d.ts.map +1 -1
- package/dist/esm/mcp/proxy-agent.js +7 -168
- package/dist/esm/mcp/proxy-agent.js.map +1 -1
- package/dist/esm/mcp/stdio-client.d.ts +1 -1
- package/dist/esm/mcp/stdio-client.d.ts.map +1 -1
- package/dist/esm/mcp/stdio-client.js +1 -1
- package/dist/esm/mcp/stdio-client.js.map +1 -1
- package/dist/esm/mcp/types.d.ts +8 -2
- package/dist/esm/mcp/types.d.ts.map +1 -1
- package/dist/esm/tool/delegate.d.ts +12 -1
- package/dist/esm/tool/delegate.d.ts.map +1 -1
- package/dist/esm/tool/delegate.js +21 -5
- package/dist/esm/tool/delegate.js.map +1 -1
- package/dist/esm/utils/header-vars.d.ts +18 -0
- package/dist/esm/utils/header-vars.d.ts.map +1 -0
- package/dist/esm/utils/header-vars.js +65 -0
- package/dist/esm/utils/header-vars.js.map +1 -0
- package/dist/esm/utils/proxy-agent.d.ts +53 -0
- package/dist/esm/utils/proxy-agent.d.ts.map +1 -0
- package/dist/esm/utils/proxy-agent.js +115 -0
- package/dist/esm/utils/proxy-agent.js.map +1 -0
- package/dist/esm/utils/proxy.d.ts +53 -0
- package/dist/esm/utils/proxy.d.ts.map +1 -0
- package/dist/esm/utils/proxy.js +109 -0
- package/dist/esm/utils/proxy.js.map +1 -0
- package/dist/esm/utils/system-proxy.d.ts +15 -0
- package/dist/esm/utils/system-proxy.d.ts.map +1 -0
- package/dist/esm/utils/system-proxy.js +128 -0
- package/dist/esm/utils/system-proxy.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-agent.d.ts","sourceRoot":"","sources":["../../../src/mcp/proxy-agent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"proxy-agent.d.ts","sourceRoot":"","sources":["../../../src/mcp/proxy-agent.ts"],"names":[],"mappings":"AASA,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,cAAc,EACd,SAAS,EACT,mBAAmB,EACnB,aAAa,GACd,MAAM,mBAAmB,CAAC"}
|
|
@@ -1,179 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================
|
|
3
|
-
//
|
|
3
|
+
// Deprecated re-export shim
|
|
4
4
|
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// 通用代理逻辑已迁移至 utils/proxy.ts。
|
|
7
|
+
// 此文件仅保留作为向后兼容的浅层 re-export,避免外部深层导入
|
|
8
|
+
// (如 `agent-core/mcp/proxy-agent`)失效。新代码请改为从
|
|
9
|
+
// `utils/proxy` 导入。
|
|
5
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.DEFAULT_PROXY_SETTINGS = void 0;
|
|
7
|
-
|
|
8
|
-
exports.
|
|
9
|
-
exports.
|
|
10
|
-
exports.
|
|
11
|
-
exports
|
|
12
|
-
const child_process_1 = require("child_process");
|
|
13
|
-
/** 默认代理设置:全部分类走系统代理 */
|
|
14
|
-
exports.DEFAULT_PROXY_SETTINGS = {
|
|
15
|
-
llm: { mode: 'system' },
|
|
16
|
-
mcp: { mode: 'system' },
|
|
17
|
-
fetch: { mode: 'system' },
|
|
18
|
-
};
|
|
19
|
-
// ---- macOS 系统代理检测 ----
|
|
20
|
-
/**
|
|
21
|
-
* 从 macOS 系统偏好设置读取代理配置
|
|
22
|
-
* 通过 scutil --proxy 查询,仅 macOS 平台生效
|
|
23
|
-
*/
|
|
24
|
-
function getMacOSSystemProxy() {
|
|
25
|
-
if (process.platform !== 'darwin')
|
|
26
|
-
return undefined;
|
|
27
|
-
try {
|
|
28
|
-
const output = (0, child_process_1.execSync)('scutil --proxy', { encoding: 'utf-8', timeout: 3000 });
|
|
29
|
-
const parsed = {};
|
|
30
|
-
// scutil 输出格式: " Key : Value"
|
|
31
|
-
for (const line of output.split('\n')) {
|
|
32
|
-
const m = line.trim().match(/^(\w+)\s*:\s*(.+)$/);
|
|
33
|
-
if (m)
|
|
34
|
-
parsed[m[1]] = m[2].trim();
|
|
35
|
-
}
|
|
36
|
-
// 优先 HTTPS 代理,其次 HTTP 代理,最后 SOCKS 代理
|
|
37
|
-
if (parsed['HTTPSEnable'] === '1' && parsed['HTTPSProxy']) {
|
|
38
|
-
const port = parsed['HTTPSPort'] || '443';
|
|
39
|
-
const url = `http://${parsed['HTTPSProxy']}:${port}`;
|
|
40
|
-
console.debug(`[Proxy] macOS system HTTPS proxy detected: ${url}`);
|
|
41
|
-
return url;
|
|
42
|
-
}
|
|
43
|
-
if (parsed['HTTPEnable'] === '1' && parsed['HTTPProxy']) {
|
|
44
|
-
const port = parsed['HTTPPort'] || '80';
|
|
45
|
-
const url = `http://${parsed['HTTPProxy']}:${port}`;
|
|
46
|
-
console.debug(`[Proxy] macOS system HTTP proxy detected: ${url}`);
|
|
47
|
-
return url;
|
|
48
|
-
}
|
|
49
|
-
if (parsed['SOCKSEnable'] === '1' && parsed['SOCKSProxy']) {
|
|
50
|
-
const port = parsed['SOCKSPort'] || '1080';
|
|
51
|
-
const url = `socks5://${parsed['SOCKSProxy']}:${port}`;
|
|
52
|
-
console.debug(`[Proxy] macOS system SOCKS proxy detected: ${url}`);
|
|
53
|
-
return url;
|
|
54
|
-
}
|
|
55
|
-
return undefined;
|
|
56
|
-
}
|
|
57
|
-
catch {
|
|
58
|
-
return undefined;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
// ---- Windows 系统代理检测 ----
|
|
62
|
-
let _cachedSystemProxy = null;
|
|
63
|
-
/**
|
|
64
|
-
* 从 Windows 注册表读取系统代理配置
|
|
65
|
-
* 仅 Windows 平台生效,其他平台返回 undefined
|
|
66
|
-
* 结果缓存,避免重复查询注册表
|
|
67
|
-
*/
|
|
68
|
-
function getWindowsSystemProxy() {
|
|
69
|
-
if (_cachedSystemProxy !== null)
|
|
70
|
-
return _cachedSystemProxy || undefined;
|
|
71
|
-
if (process.platform !== 'win32') {
|
|
72
|
-
_cachedSystemProxy = undefined;
|
|
73
|
-
return undefined;
|
|
74
|
-
}
|
|
75
|
-
try {
|
|
76
|
-
const regPath = 'HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings';
|
|
77
|
-
const output = (0, child_process_1.execSync)(`reg query "${regPath}" /v ProxyEnable`, { encoding: 'utf-8', timeout: 3000, windowsHide: true });
|
|
78
|
-
const enabledMatch = output.match(/ProxyEnable\s+REG_DWORD\s+0x(\d+)/i);
|
|
79
|
-
if (!enabledMatch || enabledMatch[1] === '0') {
|
|
80
|
-
_cachedSystemProxy = undefined;
|
|
81
|
-
return undefined;
|
|
82
|
-
}
|
|
83
|
-
const serverOutput = (0, child_process_1.execSync)(`reg query "${regPath}" /v ProxyServer`, { encoding: 'utf-8', timeout: 3000, windowsHide: true });
|
|
84
|
-
const serverMatch = serverOutput.match(/ProxyServer\s+REG_SZ\s+(.+)/i);
|
|
85
|
-
if (!serverMatch) {
|
|
86
|
-
_cachedSystemProxy = undefined;
|
|
87
|
-
return undefined;
|
|
88
|
-
}
|
|
89
|
-
const proxyServer = serverMatch[1].trim();
|
|
90
|
-
// Windows 代理可能是 ip:port 格式,需要补全协议
|
|
91
|
-
const proxyUrl = proxyServer.includes('://') ? proxyServer : `http://${proxyServer}`;
|
|
92
|
-
_cachedSystemProxy = proxyUrl;
|
|
93
|
-
console.debug(`[Proxy] Windows system proxy detected: ${proxyUrl}`);
|
|
94
|
-
return proxyUrl;
|
|
95
|
-
}
|
|
96
|
-
catch {
|
|
97
|
-
_cachedSystemProxy = undefined;
|
|
98
|
-
return undefined;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
/** 清除系统代理缓存(设置变更时可调用) */
|
|
102
|
-
function clearSystemProxyCache() {
|
|
103
|
-
_cachedSystemProxy = null;
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* 获取系统代理 URL
|
|
107
|
-
* 优先级:环境变量 HTTPS_PROXY / HTTP_PROXY / ALL_PROXY > macOS scutil > Windows 注册表
|
|
108
|
-
*/
|
|
109
|
-
function getSystemProxyUrl() {
|
|
110
|
-
return process.env.HTTPS_PROXY
|
|
111
|
-
|| process.env.https_proxy
|
|
112
|
-
|| process.env.HTTP_PROXY
|
|
113
|
-
|| process.env.http_proxy
|
|
114
|
-
|| process.env.ALL_PROXY
|
|
115
|
-
|| process.env.all_proxy
|
|
116
|
-
|| getMacOSSystemProxy()
|
|
117
|
-
|| getWindowsSystemProxy();
|
|
118
|
-
}
|
|
119
|
-
// ---- Proxy URL 解析 ----
|
|
120
|
-
/**
|
|
121
|
-
* 根据分类代理配置解析代理 URL
|
|
122
|
-
*
|
|
123
|
-
* - `mode='system'`:自动检测系统代理(环境变量 + macOS scutil + Windows 注册表)
|
|
124
|
-
* - `mode='custom'`:使用用户指定的代理 URL
|
|
125
|
-
* - `mode='direct'`:不走代理,返回 undefined
|
|
126
|
-
*
|
|
127
|
-
* 返回的 URL 可直接传给 Node.js 22.17+ 内置 fetch() 的 proxy 选项,
|
|
128
|
-
* 支持 http://、https://、socks4://、socks5:// 协议。
|
|
129
|
-
*
|
|
130
|
-
* @param category 分类代理配置
|
|
131
|
-
* @param label 日志标签(如 'LLM', 'MCP', 'Fetch')
|
|
132
|
-
* @returns 代理 URL 字符串,无代理时返回 undefined
|
|
133
|
-
*/
|
|
134
|
-
function resolveProxyAgentForCategory(category, label = 'Proxy') {
|
|
135
|
-
if (!category)
|
|
136
|
-
return undefined;
|
|
137
|
-
let proxyUrl;
|
|
138
|
-
switch (category.mode) {
|
|
139
|
-
case 'direct':
|
|
140
|
-
console.debug(`[${label}] proxy mode: direct (no proxy)`);
|
|
141
|
-
return undefined;
|
|
142
|
-
case 'custom':
|
|
143
|
-
if (!category.url) {
|
|
144
|
-
console.debug(`[${label}] proxy mode: custom but no URL configured, falling back to direct`);
|
|
145
|
-
return undefined;
|
|
146
|
-
}
|
|
147
|
-
proxyUrl = category.url;
|
|
148
|
-
break;
|
|
149
|
-
case 'system':
|
|
150
|
-
default:
|
|
151
|
-
proxyUrl = getSystemProxyUrl();
|
|
152
|
-
if (!proxyUrl) {
|
|
153
|
-
console.debug(`[${label}] proxy mode: system, no system proxy detected`);
|
|
154
|
-
return undefined;
|
|
155
|
-
}
|
|
156
|
-
break;
|
|
157
|
-
}
|
|
158
|
-
console.debug(`[${label}] using proxy: ${proxyUrl}`);
|
|
159
|
-
return proxyUrl;
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* 获取分类代理的有效 URL(用于 axios 等 HTTP 客户端)
|
|
163
|
-
*
|
|
164
|
-
* @returns 代理 URL 字符串,无代理时返回 undefined
|
|
165
|
-
*/
|
|
166
|
-
function resolveProxyUrlForCategory(category) {
|
|
167
|
-
if (!category)
|
|
168
|
-
return undefined;
|
|
169
|
-
switch (category.mode) {
|
|
170
|
-
case 'direct':
|
|
171
|
-
return undefined;
|
|
172
|
-
case 'custom':
|
|
173
|
-
return category.url || undefined;
|
|
174
|
-
case 'system':
|
|
175
|
-
default:
|
|
176
|
-
return getSystemProxyUrl();
|
|
177
|
-
}
|
|
178
|
-
}
|
|
11
|
+
exports.resolveProxyUrlForCategory = exports.createProxyDispatcher = exports.resolveProxyAgentForCategory = exports.DEFAULT_PROXY_SETTINGS = void 0;
|
|
12
|
+
var proxy_ts_1 = require("../utils/proxy.js");
|
|
13
|
+
Object.defineProperty(exports, "DEFAULT_PROXY_SETTINGS", { enumerable: true, get: function () { return proxy_ts_1.DEFAULT_PROXY_SETTINGS; } });
|
|
14
|
+
Object.defineProperty(exports, "resolveProxyAgentForCategory", { enumerable: true, get: function () { return proxy_ts_1.resolveProxyAgentForCategory; } });
|
|
15
|
+
Object.defineProperty(exports, "createProxyDispatcher", { enumerable: true, get: function () { return proxy_ts_1.createProxyDispatcher; } });
|
|
16
|
+
Object.defineProperty(exports, "resolveProxyUrlForCategory", { enumerable: true, get: function () { return proxy_ts_1.resolveProxyUrlForCategory; } });
|
|
179
17
|
//# sourceMappingURL=proxy-agent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-agent.js","sourceRoot":"","sources":["../../../src/mcp/proxy-agent.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,
|
|
1
|
+
{"version":3,"file":"proxy-agent.js","sourceRoot":"","sources":["../../../src/mcp/proxy-agent.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,4BAA4B;AAC5B,+DAA+D;AAC/D,EAAE;AACF,6BAA6B;AAC7B,qCAAqC;AACrC,6CAA6C;AAC7C,oBAAoB;;;AAEpB,8CAK2B;AAJzB,kHAAA,sBAAsB,OAAA;AACtB,wHAAA,4BAA4B,OAAA;AAC5B,iHAAA,qBAAqB,OAAA;AACrB,sHAAA,0BAA0B,OAAA"}
|
|
@@ -10,7 +10,7 @@ export declare class StdioMCPClient extends MCPClientBase {
|
|
|
10
10
|
id: number;
|
|
11
11
|
method: string;
|
|
12
12
|
params?: Record<string, unknown>;
|
|
13
|
-
}): void;
|
|
13
|
+
}, _vars?: Record<string, unknown>): void;
|
|
14
14
|
private flushBuffer;
|
|
15
15
|
}
|
|
16
16
|
//# sourceMappingURL=stdio-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdio-client.d.ts","sourceRoot":"","sources":["../../../src/mcp/stdio-client.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,qBAAa,cAAe,SAAQ,aAAa;IAC/C,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,MAAM,CAAM;cACJ,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAkFjE,SAAS,CAAC,YAAY,IAAI,IAAI;IAQ9B,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"stdio-client.d.ts","sourceRoot":"","sources":["../../../src/mcp/stdio-client.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,qBAAa,cAAe,SAAQ,aAAa;IAC/C,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,MAAM,CAAM;cACJ,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAkFjE,SAAS,CAAC,YAAY,IAAI,IAAI;IAQ9B,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAiCjJ,OAAO,CAAC,WAAW;CAkBpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdio-client.js","sourceRoot":"","sources":["../../../src/mcp/stdio-client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"stdio-client.js","sourceRoot":"","sources":["../../../src/mcp/stdio-client.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/mcp/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ToolDefinition } from '../tool/types.js';
|
|
2
|
-
import type { ProxyCategoryConfig } from '
|
|
2
|
+
import type { ProxyCategoryConfig } from '../utils/proxy.js';
|
|
3
3
|
import type { AgentDebugTraceHandler } from '../a2a/client.js';
|
|
4
4
|
export type MCPTransport = 'stdio' | 'http' | 'sse' | 'streamableHttp' | (string & {});
|
|
5
5
|
export interface MCPServerConfig {
|
|
@@ -37,6 +37,12 @@ export interface MCPServerConfig {
|
|
|
37
37
|
proxyCategory?: ProxyCategoryConfig;
|
|
38
38
|
/** 扩展配置(自定义 transport 的专属数据统一放在此处) */
|
|
39
39
|
extra?: Record<string, unknown>;
|
|
40
|
+
/**
|
|
41
|
+
* 运行时变量(如 { userId, userMail })。
|
|
42
|
+
* 注入到 headers / auth 的模板占位符中(${vars.x})。
|
|
43
|
+
* 也可在调用 callTool(name, args, vars) 时按需覆盖。
|
|
44
|
+
*/
|
|
45
|
+
vars?: Record<string, unknown>;
|
|
40
46
|
/** 调试 trace 回调;未传时保持原始执行流程 */
|
|
41
47
|
onDebugTrace?: AgentDebugTraceHandler;
|
|
42
48
|
}
|
|
@@ -46,7 +52,7 @@ export interface MCPClient {
|
|
|
46
52
|
/** 发现远程工具列表 */
|
|
47
53
|
listTools(): Promise<ToolDefinition[]>;
|
|
48
54
|
/** 调用远程工具 */
|
|
49
|
-
callTool(name: string, args: Record<string, unknown>): Promise<string>;
|
|
55
|
+
callTool(name: string, args: Record<string, unknown>, vars?: Record<string, unknown>): Promise<string>;
|
|
50
56
|
/** 发现远程资源列表(可选能力) */
|
|
51
57
|
listResources?(): Promise<Array<{
|
|
52
58
|
uri: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/mcp/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/mcp/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAI/D,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,gBAAgB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEvF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,YAAY,CAAC;IACxB,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,oBAAoB;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,qEAAqE;IACrE,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxF,eAAe;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,aAAa,CAAC,EAAE,OAAO,GAAG;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE;;;;;OAKG;IACH,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,8BAA8B;IAC9B,YAAY,CAAC,EAAE,sBAAsB,CAAC;CACvC;AAID,MAAM,WAAW,SAAS;IACxB,gBAAgB;IAChB,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD,eAAe;IACf,SAAS,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAEvC,aAAa;IACb,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvG,qBAAqB;IACrB,aAAa,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAEtF,mBAAmB;IACnB,YAAY,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5C,WAAW;IACX,UAAU,IAAI,IAAI,CAAC;IAEnB,WAAW;IACX,WAAW,IAAI,OAAO,CAAC;CACxB"}
|
|
@@ -7,6 +7,11 @@ import type { StructuredAgentOutput, WorkflowRole } from '../agent/workflow.js';
|
|
|
7
7
|
export interface SubAgentRunOptions {
|
|
8
8
|
role?: WorkflowRole | string;
|
|
9
9
|
structured?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* 流式输出回调:每次子 Agent 产生新内容时调用,传入累积内容。
|
|
12
|
+
* 用于超时场景下保留部分结果。若设置了超时,executor 会自动传入此回调。
|
|
13
|
+
*/
|
|
14
|
+
onPartial?: (content: string) => void;
|
|
10
15
|
}
|
|
11
16
|
export interface SubAgentRunResult {
|
|
12
17
|
content: string;
|
|
@@ -35,6 +40,11 @@ export interface SubAgentRunner {
|
|
|
35
40
|
keywords?: string[];
|
|
36
41
|
/** 排他性范围:当用户意图落在此范围内时,此 Agent 可独立完成任务,无需调用其他 Agent */
|
|
37
42
|
exclusiveScope?: string[];
|
|
43
|
+
/**
|
|
44
|
+
* 该子 Agent 的委派超时时间(毫秒)。
|
|
45
|
+
* 若设置,则覆盖 createDelegateTool 传入的全局 timeoutMs;不设置时回退到全局超时。
|
|
46
|
+
*/
|
|
47
|
+
timeoutMs?: number;
|
|
38
48
|
/** 动态输入字段元数据,供 delegate_task 生成 LLM 引导文案(仅多字段场景填充) */
|
|
39
49
|
inputFields?: SubAgentInputField[];
|
|
40
50
|
/** 执行子任务,返回结果文本或结构化结果 */
|
|
@@ -56,7 +66,8 @@ export interface SubAgentInputField {
|
|
|
56
66
|
*
|
|
57
67
|
* @param runners 可用的子 Agent 列表(由上层注入)
|
|
58
68
|
* @param options 可选配置
|
|
59
|
-
* - timeoutMs:
|
|
69
|
+
* - timeoutMs: 全局委派超时时间(毫秒),作为所有 runner 的默认超时;
|
|
70
|
+
* 若某个 runner 自身设置了 timeoutMs,则其覆盖该全局值。超时后返回错误信息。默认不限制。
|
|
60
71
|
*/
|
|
61
72
|
export declare function createDelegateTool(runners: SubAgentRunner[], options?: {
|
|
62
73
|
timeoutMs?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegate.d.ts","sourceRoot":"","sources":["../../../src/tool/delegate.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEhF;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"delegate.d.ts","sourceRoot":"","sources":["../../../src/tool/delegate.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEhF;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,iBAAiB,CAAC;AAE7D,MAAM,WAAW,cAAc;IAC7B,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,WAAW,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACnC,yBAAyB;IACzB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACrG;AAED,uBAAuB;AACvB,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,cAAc,EAAE,EACzB,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/B,cAAc,GAAG,IAAI,CAiIvB"}
|
|
@@ -13,7 +13,8 @@ exports.createDelegateTool = createDelegateTool;
|
|
|
13
13
|
*
|
|
14
14
|
* @param runners 可用的子 Agent 列表(由上层注入)
|
|
15
15
|
* @param options 可选配置
|
|
16
|
-
* - timeoutMs:
|
|
16
|
+
* - timeoutMs: 全局委派超时时间(毫秒),作为所有 runner 的默认超时;
|
|
17
|
+
* 若某个 runner 自身设置了 timeoutMs,则其覆盖该全局值。超时后返回错误信息。默认不限制。
|
|
17
18
|
*/
|
|
18
19
|
function createDelegateTool(runners, options) {
|
|
19
20
|
const timeoutMs = options?.timeoutMs;
|
|
@@ -80,16 +81,31 @@ function createDelegateTool(runners, options) {
|
|
|
80
81
|
const startTime = Date.now();
|
|
81
82
|
console.log(`[delegate_task] 委派 → '${agentName}': taskLength=${task.length}, hasCtx=${!!ctx}, structured=${structured}${role ? `, role=${role}` : ''}`);
|
|
82
83
|
try {
|
|
83
|
-
|
|
84
|
-
const
|
|
84
|
+
// 优先使用 runner 自身的超时,回退到全局 timeoutMs
|
|
85
|
+
const effectiveTimeout = runner.timeoutMs ?? timeoutMs;
|
|
86
|
+
let lastPartialContent = '';
|
|
87
|
+
const runPromise = runner.run(task, ctx, {
|
|
88
|
+
role, structured,
|
|
89
|
+
onPartial: effectiveTimeout ? (c) => { lastPartialContent = c; } : undefined,
|
|
90
|
+
});
|
|
91
|
+
const result = effectiveTimeout
|
|
85
92
|
? await Promise.race([
|
|
86
93
|
runPromise,
|
|
87
|
-
new Promise((
|
|
94
|
+
new Promise((resolve) => setTimeout(() => {
|
|
95
|
+
if (lastPartialContent) {
|
|
96
|
+
console.log(`[delegate_task] '${agentName}' 超时,返回部分结果: ${lastPartialContent.length} chars`);
|
|
97
|
+
resolve(`[${agentName}] delegate_task timeout after ${effectiveTimeout}ms. Partial result:\n${lastPartialContent}`);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
resolve(`Error delegating to ${agentName}: delegate_task timeout after ${effectiveTimeout}ms`);
|
|
101
|
+
}
|
|
102
|
+
}, effectiveTimeout)),
|
|
88
103
|
])
|
|
89
104
|
: await runPromise;
|
|
90
105
|
const elapsed = Date.now() - startTime;
|
|
91
106
|
if (typeof result === 'string') {
|
|
92
|
-
|
|
107
|
+
const isTimeout = result.includes('delegate_task timeout');
|
|
108
|
+
console.log(`[delegate_task] ${isTimeout ? '⏱' : '✓'} '${agentName}' ${isTimeout ? '超时(含部分结果)' : '完成'}: elapsed=${elapsed}ms, resultLength=${result.length}`);
|
|
93
109
|
return result;
|
|
94
110
|
}
|
|
95
111
|
// SubAgentRunResult: 结构化结果
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegate.js","sourceRoot":"","sources":["../../../src/tool/delegate.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,kDAAkD;AAClD,+DAA+D;;
|
|
1
|
+
{"version":3,"file":"delegate.js","sourceRoot":"","sources":["../../../src/tool/delegate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** 变量集合(运行时由上层业务传入,如 { userId, userMail }) */
|
|
2
|
+
export type HeaderVars = Record<string, unknown>;
|
|
3
|
+
/** 将单个字符串中的占位符替换为实际变量 */
|
|
4
|
+
export declare function interpolateString(value: string, vars?: HeaderVars): string;
|
|
5
|
+
/**
|
|
6
|
+
* 递归对任意 JSON 值进行变量插值(深拷贝,不改原对象)。
|
|
7
|
+
* - string 叶子:替换 ${vars.x} / ${env.x} / ${x} 占位符
|
|
8
|
+
* - object / array:递归处理每个元素
|
|
9
|
+
* - 其他类型(number/boolean/null 等):原样返回
|
|
10
|
+
*
|
|
11
|
+
* 用于请求体静态参数的变量注入(与 header 插值共用同一套占位符语法)。
|
|
12
|
+
*/
|
|
13
|
+
export declare function interpolateValue<T>(value: T, vars?: HeaderVars): T;
|
|
14
|
+
/** 将单个 header 值中的占位符替换为实际变量(兼容旧 API,等价于 interpolateString) */
|
|
15
|
+
export declare function interpolateHeaderValue(value: string, vars?: HeaderVars): string;
|
|
16
|
+
/** 解析一组 header 模板(值可含 ${vars.x} / ${env.x} 占位符) */
|
|
17
|
+
export declare function resolveHeaderTemplates(headers: Record<string, string> | undefined, vars?: HeaderVars): Record<string, string>;
|
|
18
|
+
//# sourceMappingURL=header-vars.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header-vars.d.ts","sourceRoot":"","sources":["../../../src/utils/header-vars.ts"],"names":[],"mappings":"AAWA,8CAA8C;AAC9C,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAKjD,yBAAyB;AACzB,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,MAAM,CAW1E;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,CAAC,CAYlE;AAED,8DAA8D;AAC9D,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,MAAM,CAE/E;AAED,mDAAmD;AACnD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAC3C,IAAI,CAAC,EAAE,UAAU,GAChB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOxB"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// vars-interpolator - 请求变量插值(header 值 / 请求体参数通用)
|
|
4
|
+
//
|
|
5
|
+
// 占位符语法:
|
|
6
|
+
// ${vars.<name>} 从调用时传入的 vars 对象读取(运行时变量优先)
|
|
7
|
+
// ${env.<name>} 从 process.env 读取(兼容既有 auth 行为)
|
|
8
|
+
// ${<name>} 简写,等价于 ${vars.<name>}
|
|
9
|
+
//
|
|
10
|
+
// 未匹配到变量时替换为空字符串;非字符串值统一 String() 处理。
|
|
11
|
+
// ============================================================
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.interpolateString = interpolateString;
|
|
14
|
+
exports.interpolateValue = interpolateValue;
|
|
15
|
+
exports.interpolateHeaderValue = interpolateHeaderValue;
|
|
16
|
+
exports.resolveHeaderTemplates = resolveHeaderTemplates;
|
|
17
|
+
/** 占位符匹配:${vars.x} / ${env.x} / ${x} */
|
|
18
|
+
const VAR_PATTERN = /\$\{(?:vars\.|env\.)?(\w+)\}/g;
|
|
19
|
+
/** 将单个字符串中的占位符替换为实际变量 */
|
|
20
|
+
function interpolateString(value, vars) {
|
|
21
|
+
if (typeof value !== 'string')
|
|
22
|
+
return value;
|
|
23
|
+
return value.replace(VAR_PATTERN, (_match, name) => {
|
|
24
|
+
if (vars && Object.prototype.hasOwnProperty.call(vars, name) && vars[name] !== undefined) {
|
|
25
|
+
return String(vars[name]);
|
|
26
|
+
}
|
|
27
|
+
if (process.env[name] !== undefined) {
|
|
28
|
+
return process.env[name];
|
|
29
|
+
}
|
|
30
|
+
return '';
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* 递归对任意 JSON 值进行变量插值(深拷贝,不改原对象)。
|
|
35
|
+
* - string 叶子:替换 ${vars.x} / ${env.x} / ${x} 占位符
|
|
36
|
+
* - object / array:递归处理每个元素
|
|
37
|
+
* - 其他类型(number/boolean/null 等):原样返回
|
|
38
|
+
*
|
|
39
|
+
* 用于请求体静态参数的变量注入(与 header 插值共用同一套占位符语法)。
|
|
40
|
+
*/
|
|
41
|
+
function interpolateValue(value, vars) {
|
|
42
|
+
if (value == null)
|
|
43
|
+
return value;
|
|
44
|
+
if (typeof value === 'string')
|
|
45
|
+
return interpolateString(value, vars);
|
|
46
|
+
if (Array.isArray(value))
|
|
47
|
+
return value.map((v) => interpolateValue(v, vars));
|
|
48
|
+
if (typeof value === 'object') {
|
|
49
|
+
const result = {};
|
|
50
|
+
for (const [k, v] of Object.entries(value)) {
|
|
51
|
+
result[k] = interpolateValue(v, vars);
|
|
52
|
+
}
|
|
53
|
+
return result;
|
|
54
|
+
}
|
|
55
|
+
return value;
|
|
56
|
+
}
|
|
57
|
+
/** 将单个 header 值中的占位符替换为实际变量(兼容旧 API,等价于 interpolateString) */
|
|
58
|
+
function interpolateHeaderValue(value, vars) {
|
|
59
|
+
return interpolateString(value, vars);
|
|
60
|
+
}
|
|
61
|
+
/** 解析一组 header 模板(值可含 ${vars.x} / ${env.x} 占位符) */
|
|
62
|
+
function resolveHeaderTemplates(headers, vars) {
|
|
63
|
+
if (!headers)
|
|
64
|
+
return {};
|
|
65
|
+
const result = {};
|
|
66
|
+
for (const [key, raw] of Object.entries(headers)) {
|
|
67
|
+
result[key] = interpolateString(raw, vars);
|
|
68
|
+
}
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=header-vars.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header-vars.js","sourceRoot":"","sources":["../../../src/utils/header-vars.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,iDAAiD;AACjD,EAAE;AACF,SAAS;AACT,+CAA+C;AAC/C,mDAAmD;AACnD,2CAA2C;AAC3C,EAAE;AACF,sCAAsC;AACtC,+DAA+D;;AAS/D,8CAWC;AAUD,4CAYC;AAGD,wDAEC;AAGD,wDAUC;AAvDD,wCAAwC;AACxC,MAAM,WAAW,GAAG,+BAA+B,CAAC;AAEpD,yBAAyB;AACzB,SAAgB,iBAAiB,CAAC,KAAa,EAAE,IAAiB;IAChE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAA0B,CAAC;IACjE,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,IAAY,EAAE,EAAE;QACzD,IAAI,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACzF,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAW,CAAC;QACrC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAAI,KAAQ,EAAE,IAAiB;IAC7D,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAiB,CAAC;IACrF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAiB,CAAC;IAC7F,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;YACtE,MAAM,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,MAAsB,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8DAA8D;AAC9D,SAAgB,sBAAsB,CAAC,KAAa,EAAE,IAAiB;IACrE,OAAO,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,mDAAmD;AACnD,SAAgB,sBAAsB,CACpC,OAA2C,EAC3C,IAAiB;IAEjB,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACjD,MAAM,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/** ProxyAgent 类型(undici 内置,Node 18+ 可直接 import;用 any 避免未声明依赖的 TS 错误) */
|
|
2
|
+
export type ProxyAgentType = any;
|
|
3
|
+
/** 代理模式:system=系统代理, custom=自定义, direct=直连 */
|
|
4
|
+
export type ProxyMode = 'system' | 'custom' | 'direct';
|
|
5
|
+
/** 单分类代理配置 */
|
|
6
|
+
export interface ProxyCategoryConfig {
|
|
7
|
+
mode: ProxyMode;
|
|
8
|
+
/** mode='custom' 时的代理 URL */
|
|
9
|
+
url?: string;
|
|
10
|
+
}
|
|
11
|
+
/** 分类代理设置(LLM / MCP / Fetch 各自独立) */
|
|
12
|
+
export interface ProxySettings {
|
|
13
|
+
llm: ProxyCategoryConfig;
|
|
14
|
+
mcp: ProxyCategoryConfig;
|
|
15
|
+
fetch: ProxyCategoryConfig;
|
|
16
|
+
}
|
|
17
|
+
/** 默认代理设置:全部分类走系统代理 */
|
|
18
|
+
export declare const DEFAULT_PROXY_SETTINGS: ProxySettings;
|
|
19
|
+
/**
|
|
20
|
+
* 根据分类代理配置解析代理 URL
|
|
21
|
+
*
|
|
22
|
+
* - `mode='system'`:自动检测系统代理(环境变量 + macOS scutil + Windows 注册表)
|
|
23
|
+
* - `mode='custom'`:使用用户指定的代理 URL
|
|
24
|
+
* - `mode='direct'`:不走代理,返回 undefined
|
|
25
|
+
*
|
|
26
|
+
* 返回代理 URL 字符串,需配合 createProxyDispatcher() 使用。
|
|
27
|
+
* 支持 http://、https://、socks4://、socks5:// 协议。
|
|
28
|
+
*
|
|
29
|
+
* @param category 分类代理配置
|
|
30
|
+
* @param label 日志标签(如 'LLM', 'MCP', 'Fetch')
|
|
31
|
+
* @returns 代理 URL 字符串,无代理时返回 undefined
|
|
32
|
+
*/
|
|
33
|
+
export declare function resolveProxyAgentForCategory(category?: ProxyCategoryConfig, label?: string): string | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* 根据代理 URL 创建 undici ProxyAgent dispatcher
|
|
36
|
+
*
|
|
37
|
+
* Node.js 原生 fetch() 不支持 RequestInit.proxy 选项,
|
|
38
|
+
* 需通过 dispatcher 传入 undici 的 ProxyAgent 来正确使用代理。
|
|
39
|
+
*
|
|
40
|
+
* 使用动态 import('undici') 避免浏览器环境静态解析失败。
|
|
41
|
+
* 仅在传入 proxyUrl 时才创建 ProxyAgent,无代理时返回 undefined。
|
|
42
|
+
*
|
|
43
|
+
* @param proxyUrl 代理 URL(如 http://127.0.0.1:7890),undefined 时不创建
|
|
44
|
+
* @returns ProxyAgent dispatcher 或 undefined
|
|
45
|
+
*/
|
|
46
|
+
export declare function createProxyDispatcher(proxyUrl?: string): Promise<ProxyAgentType | undefined>;
|
|
47
|
+
/**
|
|
48
|
+
* 获取分类代理的有效 URL(用于 axios 等 HTTP 客户端)
|
|
49
|
+
*
|
|
50
|
+
* @returns 代理 URL 字符串,无代理时返回 undefined
|
|
51
|
+
*/
|
|
52
|
+
export declare function resolveProxyUrlForCategory(category?: ProxyCategoryConfig): string | undefined;
|
|
53
|
+
//# sourceMappingURL=proxy-agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy-agent.d.ts","sourceRoot":"","sources":["../../../src/utils/proxy-agent.ts"],"names":[],"mappings":"AAcA,wEAAwE;AACxE,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC;AAIjC,8CAA8C;AAC9C,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEvD,cAAc;AACd,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,6BAA6B;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,qCAAqC;AACrC,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,mBAAmB,CAAC;IACzB,GAAG,EAAE,mBAAmB,CAAC;IACzB,KAAK,EAAE,mBAAmB,CAAC;CAC5B;AAED,uBAAuB;AACvB,eAAO,MAAM,sBAAsB,EAAE,aAIpC,CAAC;AAIF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,CAAC,EAAE,mBAAmB,EAC9B,KAAK,SAAU,GACd,MAAM,GAAG,SAAS,CA8BpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAYlG;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,CAAC,EAAE,mBAAmB,GAAG,MAAM,GAAG,SAAS,CAY7F"}
|