@cicctencent/agent-core 1.0.72 → 1.0.74

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 (55) hide show
  1. package/dist/cjs/a2a/client.d.ts +1 -3
  2. package/dist/cjs/a2a/client.d.ts.map +1 -1
  3. package/dist/cjs/a2a/client.js +13 -24
  4. package/dist/cjs/a2a/client.js.map +1 -1
  5. package/dist/cjs/a2a/rest-client.d.ts +1 -3
  6. package/dist/cjs/a2a/rest-client.d.ts.map +1 -1
  7. package/dist/cjs/a2a/rest-client.js +15 -53
  8. package/dist/cjs/a2a/rest-client.js.map +1 -1
  9. package/dist/cjs/index.d.ts +2 -0
  10. package/dist/cjs/index.d.ts.map +1 -1
  11. package/dist/cjs/index.js +7 -1
  12. package/dist/cjs/index.js.map +1 -1
  13. package/dist/cjs/llm/debug.d.ts +5 -2
  14. package/dist/cjs/llm/debug.d.ts.map +1 -1
  15. package/dist/cjs/llm/debug.js +22 -20
  16. package/dist/cjs/llm/debug.js.map +1 -1
  17. package/dist/cjs/mcp/http-client.d.ts +1 -1
  18. package/dist/cjs/mcp/http-client.d.ts.map +1 -1
  19. package/dist/cjs/mcp/http-client.js +15 -11
  20. package/dist/cjs/mcp/http-client.js.map +1 -1
  21. package/dist/cjs/sandbox/path-guard.d.ts.map +1 -1
  22. package/dist/cjs/sandbox/path-guard.js +14 -1
  23. package/dist/cjs/sandbox/path-guard.js.map +1 -1
  24. package/dist/cjs/utils/http-client.d.ts +86 -0
  25. package/dist/cjs/utils/http-client.d.ts.map +1 -0
  26. package/dist/cjs/utils/http-client.js +377 -0
  27. package/dist/cjs/utils/http-client.js.map +1 -0
  28. package/dist/esm/a2a/client.d.ts +1 -3
  29. package/dist/esm/a2a/client.d.ts.map +1 -1
  30. package/dist/esm/a2a/client.js +13 -24
  31. package/dist/esm/a2a/client.js.map +1 -1
  32. package/dist/esm/a2a/rest-client.d.ts +1 -3
  33. package/dist/esm/a2a/rest-client.d.ts.map +1 -1
  34. package/dist/esm/a2a/rest-client.js +15 -53
  35. package/dist/esm/a2a/rest-client.js.map +1 -1
  36. package/dist/esm/index.d.ts +2 -0
  37. package/dist/esm/index.d.ts.map +1 -1
  38. package/dist/esm/index.js +4 -0
  39. package/dist/esm/index.js.map +1 -1
  40. package/dist/esm/llm/debug.d.ts +5 -2
  41. package/dist/esm/llm/debug.d.ts.map +1 -1
  42. package/dist/esm/llm/debug.js +22 -20
  43. package/dist/esm/llm/debug.js.map +1 -1
  44. package/dist/esm/mcp/http-client.d.ts +1 -1
  45. package/dist/esm/mcp/http-client.d.ts.map +1 -1
  46. package/dist/esm/mcp/http-client.js +16 -12
  47. package/dist/esm/mcp/http-client.js.map +1 -1
  48. package/dist/esm/sandbox/path-guard.d.ts.map +1 -1
  49. package/dist/esm/sandbox/path-guard.js +14 -1
  50. package/dist/esm/sandbox/path-guard.js.map +1 -1
  51. package/dist/esm/utils/http-client.d.ts +86 -0
  52. package/dist/esm/utils/http-client.d.ts.map +1 -0
  53. package/dist/esm/utils/http-client.js +339 -0
  54. package/dist/esm/utils/http-client.js.map +1 -0
  55. package/package.json +1 -1
@@ -43,7 +43,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
43
43
  exports.extractHost = extractHost;
44
44
  exports.resolveHostIp = resolveHostIp;
45
45
  exports.fetchWithDiagnostics = fetchWithDiagnostics;
46
- const proxy_ts_1 = require("../utils/proxy.js");
46
+ const http_client_ts_1 = require("../utils/http-client.js");
47
47
  /** 从 URL 中提取 host(含端口),解析失败返回原始 URL */
48
48
  function extractHost(url) {
49
49
  try {
@@ -74,11 +74,14 @@ async function resolveHostIp(domain) {
74
74
  /**
75
75
  * 包装一次 fetch,捕获网络层诊断信息并在调试模式下回调。
76
76
  *
77
+ * 出网内核(超时、代理 dispatcher、外部 signal 联动)复用通用 HttpClient,
78
+ * 本函数只负责 LLM 调试侧的 DNS 解析、耗时/状态采集与回调。
79
+ *
77
80
  * 行为:
78
- * - 合并外部 abortSignal 与内部超时控制器;
79
81
  * - 调试模式下先做 DNS 解析,再发请求,记录总耗时;
80
82
  * - 无论成功/失败/超时,均在 finally 中回调调试信息(若 debug=true);
81
- * - 调试回调抛错不会影响主流程。
83
+ * - 调试回调抛错不会影响主流程;
84
+ * - 外部取消(非超时)以 AbortError 透传,超时归一为 HttpError(code=TIMEOUT)。
82
85
  */
83
86
  async function fetchWithDiagnostics(url, init, opts) {
84
87
  const start = Date.now();
@@ -87,32 +90,31 @@ async function fetchWithDiagnostics(url, init, opts) {
87
90
  if (opts.debugCtx?.debug) {
88
91
  resolvedIp = await resolveHostIp(domain);
89
92
  }
90
- const controller = new AbortController();
91
- const timer = setTimeout(() => controller.abort(), opts.timeout);
92
- const externalSignal = opts.externalSignal;
93
- if (externalSignal) {
94
- if (externalSignal.aborted)
95
- controller.abort();
96
- else
97
- externalSignal.addEventListener('abort', () => controller.abort(), { once: true });
98
- }
99
- // 创建 ProxyAgent dispatcher(仅在有代理时)
100
- const dispatcher = await (0, proxy_ts_1.createProxyDispatcher)(opts.proxy);
93
+ // 代理语义与原实现一致:显式 proxy URL → custom,未配置 → direct
94
+ const http = (0, http_client_ts_1.createHttpClient)({
95
+ timeout: opts.timeout,
96
+ proxy: opts.proxy
97
+ ? { mode: 'custom', url: opts.proxy }
98
+ : { mode: 'direct' },
99
+ label: 'LLM',
100
+ });
101
+ // init.proxy 仅为透传标记,不属于 fetch 参数
102
+ const { proxy: _ignoredProxy, ...fetchInit } = init;
101
103
  let res;
102
104
  let errMsg;
105
+ let aborted = false;
103
106
  try {
104
- res = await fetch(url, {
105
- ...init,
106
- signal: controller.signal,
107
- ...(dispatcher ? { dispatcher } : {}),
107
+ res = await http.fetch(url, {
108
+ ...fetchInit,
109
+ ...(opts.externalSignal ? { signal: opts.externalSignal } : {}),
108
110
  });
109
111
  }
110
112
  catch (e) {
111
113
  errMsg = e?.message || String(e);
114
+ aborted = e?.name === 'AbortError' || e?.code === 'TIMEOUT';
112
115
  throw e;
113
116
  }
114
117
  finally {
115
- clearTimeout(timer);
116
118
  if (opts.debugCtx?.debug) {
117
119
  const info = {
118
120
  provider: opts.provider,
@@ -126,7 +128,7 @@ async function fetchWithDiagnostics(url, init, opts) {
126
128
  durationMs: Date.now() - start,
127
129
  httpStatus: res?.status,
128
130
  ok: res?.ok,
129
- aborted: controller.signal.aborted,
131
+ aborted,
130
132
  error: errMsg,
131
133
  };
132
134
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/llm/debug.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/llm/debug.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { MCPServerConfig } from './types.js';
3
3
  export declare class HttpMCPClient extends MCPClientBase {
4
4
  private endpoint;
5
5
  private sessionId?;
6
- private proxyDispatcher?;
6
+ private http;
7
7
  /** 用户自定义请求头模板(值可含 ${vars.x} / ${env.x} 占位符,发送时解析) */
8
8
  private headerTemplates?;
9
9
  /** 结构化鉴权配置 */
@@ -1 +1 @@
1
- {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../src/mcp/http-client.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,qBAAa,aAAc,SAAQ,aAAa;IAC9C,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,qDAAqD;IACrD,OAAO,CAAC,eAAe,CAAC,CAAyB;IACjD,cAAc;IACd,OAAO,CAAC,UAAU,CAAC,CAAiD;cACpD,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAYjE,SAAS,CAAC,YAAY,IAAI,IAAI;IAS9B,+EAA+E;IAC/E,OAAO,CAAC,gBAAgB;IAmBxB,+DAA+D;IAC/D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;IAExD,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,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAgJhJ;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;IAgChB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,kBAAkB;CAe3B"}
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../src/mcp/http-client.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAKlD,qBAAa,aAAc,SAAQ,aAAa;IAC9C,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,IAAI,CAAa;IACzB,qDAAqD;IACrD,OAAO,CAAC,eAAe,CAAC,CAAyB;IACjD,cAAc;IACd,OAAO,CAAC,UAAU,CAAC,CAAiD;cACpD,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBjE,SAAS,CAAC,YAAY,IAAI,IAAI;IAQ9B,+EAA+E;IAC/E,OAAO,CAAC,gBAAgB;IAmBxB,+DAA+D;IAC/D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;IAExD,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,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IA8IhJ;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;IAgChB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,kBAAkB;CAe3B"}
@@ -6,11 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.HttpMCPClient = void 0;
7
7
  const base_client_ts_1 = require("./base-client.js");
8
8
  const proxy_ts_1 = require("../utils/proxy.js");
9
+ const http_client_ts_1 = require("../utils/http-client.js");
9
10
  const header_vars_ts_1 = require("../utils/header-vars.js");
10
11
  class HttpMCPClient extends base_client_ts_1.MCPClientBase {
11
12
  endpoint = '';
12
13
  sessionId;
13
- proxyDispatcher;
14
+ http;
14
15
  /** 用户自定义请求头模板(值可含 ${vars.x} / ${env.x} 占位符,发送时解析) */
15
16
  headerTemplates;
16
17
  /** 结构化鉴权配置 */
@@ -21,7 +22,13 @@ class HttpMCPClient extends base_client_ts_1.MCPClientBase {
21
22
  }
22
23
  this.endpoint = config.endpoint;
23
24
  this.proxyUrl = (0, proxy_ts_1.resolveProxyAgentForCategory)(config.proxyCategory, 'MCP:HTTP');
24
- this.proxyDispatcher = await (0, proxy_ts_1.createProxyDispatcher)(this.proxyUrl);
25
+ // timeout=0:MCP 请求不设传输层超时(由 base-client 请求/通知机制控制),
26
+ // 通知的 10s 超时在 send 中经外部 signal 传入。
27
+ this.http = (0, http_client_ts_1.createHttpClient)({
28
+ timeout: 0,
29
+ proxy: config.proxyCategory ?? { mode: 'direct' },
30
+ label: 'MCP:HTTP',
31
+ });
25
32
  this.headerTemplates = config.headers;
26
33
  this.authConfig = config.auth;
27
34
  this.onDebugTrace = config.onDebugTrace;
@@ -32,7 +39,6 @@ class HttpMCPClient extends base_client_ts_1.MCPClientBase {
32
39
  this.headerTemplates = undefined;
33
40
  this.authConfig = undefined;
34
41
  this.proxyUrl = undefined;
35
- this.proxyDispatcher = undefined;
36
42
  }
37
43
  /** 根据 auth 配置生成鉴权请求头(value 支持 ${vars.x} / ${env.x} 模板)。vars 随请求显式传入,避免共享状态。 */
38
44
  buildAuthHeaders(vars) {
@@ -79,17 +85,15 @@ class HttpMCPClient extends base_client_ts_1.MCPClientBase {
79
85
  }
80
86
  const body = JSON.stringify(request);
81
87
  const startTime = Date.now();
82
- // 使用 undici ProxyAgent dispatcher 支持代理(Node.js 原生 fetch 不支持 proxy 选项)
83
- const fetchOptions = {
88
+ console.debug(`[MCP:HTTP] sending ${request.method} (id=${request.id}), isNotification=${isNotification}, endpoint=${this.endpoint}`);
89
+ this.http
90
+ .fetch(this.endpoint, {
84
91
  method: 'POST',
85
92
  headers,
86
93
  body,
87
- signal: isNotification ? AbortSignal.timeout(10000) : undefined,
88
- };
89
- if (this.proxyDispatcher)
90
- fetchOptions.dispatcher = this.proxyDispatcher;
91
- console.debug(`[MCP:HTTP] sending ${request.method} (id=${request.id}), isNotification=${isNotification}, endpoint=${this.endpoint}`);
92
- fetch(this.endpoint, fetchOptions).then(async (res) => {
94
+ ...(isNotification ? { signal: AbortSignal.timeout(10000) } : {}),
95
+ })
96
+ .then(async (res) => {
93
97
  // 即使是通知(无需处理响应),也必须消费响应体以释放 HTTP keep-alive 连接。
94
98
  // 否则连接停留在 "body unconsumed" 状态,后续请求(如 tools/list)无法复用
95
99
  // 该连接,最终等到连接池耗尽后超时 —— 这是 debug(逐步 await)能拿到工具
@@ -1 +1 @@
1
- {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/mcp/http-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/mcp/http-client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"path-guard.d.ts","sourceRoot":"","sources":["../../../src/sandbox/path-guard.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAGlE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAwDxF"}
1
+ {"version":3,"file":"path-guard.d.ts","sourceRoot":"","sources":["../../../src/sandbox/path-guard.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAGlE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqExF"}
@@ -73,7 +73,20 @@ function detectOutsideSandboxPath(command, rootDir) {
73
73
  const winHome = (process.env.USERPROFILE || (homeDrive && process.env.HOMEPATH ? path.join(homeDrive, process.env.HOMEPATH) : '')) || '';
74
74
  // 注意:Windows 盘符路径部分([A-Za-z]:[\\/]...)的尾部排除集不含反斜杠,
75
75
  // 否则 C:\Users\someone\secret.txt 会在首个反斜杠处截断、导致沙箱内路径误拦。
76
- const pattern = /(~(?:\/[^\s"'<>|;()&\\]*)?)|(\$HOME|\$\{HOME\})(?:\/[^\s"'<>|;()&\\]*)?|(\/Users(?:\/[^\s"'<>|;()&\\]*)?|\/home(?:\/[^\s"'<>|;()&\\]*)?|\/etc(?:\/[^\s"'<>|;()&\\]*)?|\/private(?:\/[^\s"'<>|;()&\\]*)?|\/System(?:\/[^\s"'<>|;()&\\]*)?|\/root(?:\/[^\s"'<>|;()&\\]*)?|\/var(?:\/[^\s"'<>|;()&\\]*)?|(?<![:A-Za-z])[A-Za-z]:[\\/][^\s"'<>|;()&]*)|(file:\/\/[^\s"'<>|;()&\\]*)/g;
76
+ //
77
+ // POSIX 绝对路径分支前置路径起始边界断言 `(?<![\w.\-\/\\])`:
78
+ // 该断言使黑名单目录名仅在其处于路径 token 起始位置时命中,MUST NOT 把更深层
79
+ // 路径中间恰好同名的片段当作绝对路径起点。
80
+ // 反例(修复前被拦截):`ls /data/home/fefeding/T0_v3_train/` 中 `/home/` 片段
81
+ // 被单独匹配,候选路径 `/home/fefeding/T0_v3_train/` 落在用户主目录内;而下方
82
+ // 「主目录命中」判定先于「rootDir 内」判定返回,故命令被假阳性拦截,且报错片段
83
+ // 丢失了 `/data` 前缀。
84
+ // 断言字符集 `[\w.\-\/\\]`:`\w` 覆盖路径常规构成字符;`.` 与 `-` 为路径中常见合法
85
+ // 字符(如版本目录 `v1.2/home`);`/`、`\` 为分隔符,是本假阳性的直接排除项。
86
+ // 此处用排除式黑名单而非「允许位置白名单」(如 `(?<=^|\s|=|"|')`)——后者会漏掉
87
+ // `;`、`|`、`&`、`(`、`>` 等 shell 元字符之后的真实逃逸路径。
88
+ // 后行断言在本正则的 Windows 盘符分支 `(?<![:A-Za-z])` 已有先例,无新增引擎约束。
89
+ const pattern = /(~(?:\/[^\s"'<>|;()&\\]*)?)|(\$HOME|\$\{HOME\})(?:\/[^\s"'<>|;()&\\]*)?|((?<![\w.\-\/\\])\/(?:Users|home|etc|private|System|root|var)(?:\/[^\s"'<>|;()&\\]*)?|(?<![:A-Za-z])[A-Za-z]:[\\/][^\s"'<>|;()&]*)|(file:\/\/[^\s"'<>|;()&\\]*)/g;
77
90
  let m;
78
91
  while ((m = pattern.exec(command))) {
79
92
  let candidate;
@@ -1 +1 @@
1
- {"version":3,"file":"path-guard.js","sourceRoot":"","sources":["../../../src/sandbox/path-guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"path-guard.js","sourceRoot":"","sources":["../../../src/sandbox/path-guard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import { type ProxyCategoryConfig } from './proxy.js';
2
+ export type HttpEncoding = 'json' | 'text' | 'gbk' | 'buffer' | 'arraybuffer';
3
+ export interface HttpClientOptions {
4
+ /** 请求超时(毫秒);默认 30000;0 = 不超时 */
5
+ timeout?: number;
6
+ /** 可恢复错误重试次数(仅 request/get/post 生效),默认 0(不重试) */
7
+ retry?: number;
8
+ /** 重试基础退避(线性:delay * attempt),默认 500 */
9
+ retryDelayMs?: number;
10
+ /**
11
+ * client 级默认代理;默认 `{ mode: 'system' }`(跟随系统代理)。
12
+ * 三种模式:`{ mode: 'direct' }` 强制直连 / `{ mode: 'custom', url }` 指定代理
13
+ * (http/https/socks4/socks5)/ `{ mode: 'system' }` 跟随系统代理。
14
+ * system 模式每次请求动态解析(自动跟随系统代理变化),并遵循 NO_PROXY 环境变量。
15
+ * 可用 setProxy() 运行时更新;单个请求可用 options.proxy 覆盖。
16
+ */
17
+ proxy?: ProxyCategoryConfig;
18
+ /** 每个请求默认携带的请求头 */
19
+ defaultHeaders?: Record<string, string>;
20
+ /** 直连地址族:0=auto(默认)/4=IPv4/6=IPv6;走代理时忽略 */
21
+ family?: 0 | 4 | 6;
22
+ /** 日志前缀,默认 'Http' */
23
+ label?: string;
24
+ /** 自定义 fetch 实现(测试注入),默认 globalThis.fetch */
25
+ fetch?: typeof fetch;
26
+ }
27
+ export interface HttpRequestOptions {
28
+ method?: 'GET' | 'POST';
29
+ /** 查询参数;undefined/null/空字符串值忽略 */
30
+ params?: Record<string, string | number | undefined | null>;
31
+ /** POST 请求体:对象自动 JSON.stringify 并补 Content-Type;字符串/URLSearchParams 原样发送 */
32
+ body?: unknown;
33
+ headers?: Record<string, string>;
34
+ /** 响应解码方式,默认 json */
35
+ encoding?: HttpEncoding;
36
+ /** 覆盖 client 级超时 */
37
+ timeout?: number;
38
+ /** 覆盖 client 级重试次数 */
39
+ retry?: number;
40
+ /**
41
+ * 覆盖 client 级代理(单请求粒度)。
42
+ * 典型用法:client 默认走系统代理,个别域名 `{ mode: 'direct' }` 强制直连。
43
+ */
44
+ proxy?: ProxyCategoryConfig;
45
+ }
46
+ /**
47
+ * 归一化 HTTP 错误:
48
+ * - 网络层失败(连接重置/超时/DNS 等):带 code 与原始 cause;
49
+ * - 非 2xx 响应:带 status 与响应体摘要(body)。
50
+ */
51
+ export declare class HttpError extends Error {
52
+ readonly code?: string;
53
+ readonly status?: number;
54
+ readonly body?: string;
55
+ constructor(message: string, opts?: {
56
+ code?: string;
57
+ status?: number;
58
+ body?: string;
59
+ cause?: unknown;
60
+ });
61
+ }
62
+ export interface HttpClient {
63
+ /** 通用请求入口:按 encoding 返回解码后数据 */
64
+ request(url: string, options?: HttpRequestOptions): Promise<any>;
65
+ get(url: string, options?: Omit<HttpRequestOptions, 'method' | 'body'>): Promise<any>;
66
+ post(url: string, body?: unknown, options?: Omit<HttpRequestOptions, 'method' | 'body'>): Promise<any>;
67
+ /** 低层请求:仅做超时 + 代理 + 错误归一,不重试、不解码,返回原始 Response */
68
+ fetch(url: string, init?: RequestInit & {
69
+ timeout?: number;
70
+ proxy?: ProxyCategoryConfig;
71
+ }): Promise<Response>;
72
+ /**
73
+ * 运行时更新 client 级默认代理(下一次请求即生效,进行中请求不受影响)。
74
+ * 适合代理配置热更新场景(如管理端切换代理)。
75
+ */
76
+ setProxy(config: ProxyCategoryConfig): void;
77
+ }
78
+ /**
79
+ * 创建通用 HTTP 客户端
80
+ *
81
+ * @example
82
+ * const http = createHttpClient({ timeout: 8000, retry: 2, proxy: { mode: 'system' } });
83
+ * const data = await http.get('https://push2.eastmoney.com/api/qt/clist/get', { params });
84
+ */
85
+ export declare function createHttpClient(options?: HttpClientOptions): HttpClient;
86
+ //# sourceMappingURL=http-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../src/utils/http-client.ts"],"names":[],"mappings":"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"}