@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.
Files changed (123) hide show
  1. package/dist/cjs/a2a/client.d.ts +39 -11
  2. package/dist/cjs/a2a/client.d.ts.map +1 -1
  3. package/dist/cjs/a2a/client.js +69 -22
  4. package/dist/cjs/a2a/client.js.map +1 -1
  5. package/dist/cjs/a2a/rest-client.d.ts +35 -9
  6. package/dist/cjs/a2a/rest-client.d.ts.map +1 -1
  7. package/dist/cjs/a2a/rest-client.js +65 -18
  8. package/dist/cjs/a2a/rest-client.js.map +1 -1
  9. package/dist/cjs/a2a/rest-runner.d.ts +6 -0
  10. package/dist/cjs/a2a/rest-runner.d.ts.map +1 -1
  11. package/dist/cjs/a2a/rest-runner.js +19 -7
  12. package/dist/cjs/a2a/rest-runner.js.map +1 -1
  13. package/dist/cjs/a2a/runner.d.ts +6 -0
  14. package/dist/cjs/a2a/runner.d.ts.map +1 -1
  15. package/dist/cjs/a2a/runner.js +24 -7
  16. package/dist/cjs/a2a/runner.js.map +1 -1
  17. package/dist/cjs/index.d.ts +5 -2
  18. package/dist/cjs/index.d.ts.map +1 -1
  19. package/dist/cjs/index.js +15 -10
  20. package/dist/cjs/index.js.map +1 -1
  21. package/dist/cjs/llm/debug.d.ts.map +1 -1
  22. package/dist/cjs/llm/debug.js +4 -1
  23. package/dist/cjs/llm/debug.js.map +1 -1
  24. package/dist/cjs/mcp/base-client.d.ts +19 -4
  25. package/dist/cjs/mcp/base-client.d.ts.map +1 -1
  26. package/dist/cjs/mcp/base-client.js +28 -8
  27. package/dist/cjs/mcp/base-client.js.map +1 -1
  28. package/dist/cjs/mcp/http-client.d.ts +5 -5
  29. package/dist/cjs/mcp/http-client.d.ts.map +1 -1
  30. package/dist/cjs/mcp/http-client.js +26 -21
  31. package/dist/cjs/mcp/http-client.js.map +1 -1
  32. package/dist/cjs/mcp/proxy-agent.d.ts +2 -50
  33. package/dist/cjs/mcp/proxy-agent.d.ts.map +1 -1
  34. package/dist/cjs/mcp/proxy-agent.js +12 -174
  35. package/dist/cjs/mcp/proxy-agent.js.map +1 -1
  36. package/dist/cjs/mcp/stdio-client.d.ts +1 -1
  37. package/dist/cjs/mcp/stdio-client.d.ts.map +1 -1
  38. package/dist/cjs/mcp/stdio-client.js +1 -1
  39. package/dist/cjs/mcp/stdio-client.js.map +1 -1
  40. package/dist/cjs/mcp/types.d.ts +8 -2
  41. package/dist/cjs/mcp/types.d.ts.map +1 -1
  42. package/dist/cjs/tool/delegate.d.ts +12 -1
  43. package/dist/cjs/tool/delegate.d.ts.map +1 -1
  44. package/dist/cjs/tool/delegate.js +21 -5
  45. package/dist/cjs/tool/delegate.js.map +1 -1
  46. package/dist/cjs/utils/header-vars.d.ts +18 -0
  47. package/dist/cjs/utils/header-vars.d.ts.map +1 -0
  48. package/dist/cjs/utils/header-vars.js +71 -0
  49. package/dist/cjs/utils/header-vars.js.map +1 -0
  50. package/dist/cjs/utils/proxy-agent.d.ts +53 -0
  51. package/dist/cjs/utils/proxy-agent.d.ts.map +1 -0
  52. package/dist/cjs/utils/proxy-agent.js +154 -0
  53. package/dist/cjs/utils/proxy-agent.js.map +1 -0
  54. package/dist/cjs/utils/proxy.d.ts +53 -0
  55. package/dist/cjs/utils/proxy.d.ts.map +1 -0
  56. package/dist/cjs/utils/proxy.js +148 -0
  57. package/dist/cjs/utils/proxy.js.map +1 -0
  58. package/dist/cjs/utils/system-proxy.d.ts +15 -0
  59. package/dist/cjs/utils/system-proxy.d.ts.map +1 -0
  60. package/dist/cjs/utils/system-proxy.js +133 -0
  61. package/dist/cjs/utils/system-proxy.js.map +1 -0
  62. package/dist/esm/a2a/client.d.ts +39 -11
  63. package/dist/esm/a2a/client.d.ts.map +1 -1
  64. package/dist/esm/a2a/client.js +69 -22
  65. package/dist/esm/a2a/client.js.map +1 -1
  66. package/dist/esm/a2a/rest-client.d.ts +35 -9
  67. package/dist/esm/a2a/rest-client.d.ts.map +1 -1
  68. package/dist/esm/a2a/rest-client.js +65 -18
  69. package/dist/esm/a2a/rest-client.js.map +1 -1
  70. package/dist/esm/a2a/rest-runner.d.ts +6 -0
  71. package/dist/esm/a2a/rest-runner.d.ts.map +1 -1
  72. package/dist/esm/a2a/rest-runner.js +19 -7
  73. package/dist/esm/a2a/rest-runner.js.map +1 -1
  74. package/dist/esm/a2a/runner.d.ts +6 -0
  75. package/dist/esm/a2a/runner.d.ts.map +1 -1
  76. package/dist/esm/a2a/runner.js +24 -7
  77. package/dist/esm/a2a/runner.js.map +1 -1
  78. package/dist/esm/index.d.ts +5 -2
  79. package/dist/esm/index.d.ts.map +1 -1
  80. package/dist/esm/index.js +3 -1
  81. package/dist/esm/index.js.map +1 -1
  82. package/dist/esm/llm/debug.d.ts.map +1 -1
  83. package/dist/esm/llm/debug.js +4 -1
  84. package/dist/esm/llm/debug.js.map +1 -1
  85. package/dist/esm/mcp/base-client.d.ts +19 -4
  86. package/dist/esm/mcp/base-client.d.ts.map +1 -1
  87. package/dist/esm/mcp/base-client.js +28 -8
  88. package/dist/esm/mcp/base-client.js.map +1 -1
  89. package/dist/esm/mcp/http-client.d.ts +5 -5
  90. package/dist/esm/mcp/http-client.d.ts.map +1 -1
  91. package/dist/esm/mcp/http-client.js +25 -20
  92. package/dist/esm/mcp/http-client.js.map +1 -1
  93. package/dist/esm/mcp/proxy-agent.d.ts +2 -50
  94. package/dist/esm/mcp/proxy-agent.d.ts.map +1 -1
  95. package/dist/esm/mcp/proxy-agent.js +7 -168
  96. package/dist/esm/mcp/proxy-agent.js.map +1 -1
  97. package/dist/esm/mcp/stdio-client.d.ts +1 -1
  98. package/dist/esm/mcp/stdio-client.d.ts.map +1 -1
  99. package/dist/esm/mcp/stdio-client.js +1 -1
  100. package/dist/esm/mcp/stdio-client.js.map +1 -1
  101. package/dist/esm/mcp/types.d.ts +8 -2
  102. package/dist/esm/mcp/types.d.ts.map +1 -1
  103. package/dist/esm/tool/delegate.d.ts +12 -1
  104. package/dist/esm/tool/delegate.d.ts.map +1 -1
  105. package/dist/esm/tool/delegate.js +21 -5
  106. package/dist/esm/tool/delegate.js.map +1 -1
  107. package/dist/esm/utils/header-vars.d.ts +18 -0
  108. package/dist/esm/utils/header-vars.d.ts.map +1 -0
  109. package/dist/esm/utils/header-vars.js +65 -0
  110. package/dist/esm/utils/header-vars.js.map +1 -0
  111. package/dist/esm/utils/proxy-agent.d.ts +53 -0
  112. package/dist/esm/utils/proxy-agent.d.ts.map +1 -0
  113. package/dist/esm/utils/proxy-agent.js +115 -0
  114. package/dist/esm/utils/proxy-agent.js.map +1 -0
  115. package/dist/esm/utils/proxy.d.ts +53 -0
  116. package/dist/esm/utils/proxy.d.ts.map +1 -0
  117. package/dist/esm/utils/proxy.js +109 -0
  118. package/dist/esm/utils/proxy.js.map +1 -0
  119. package/dist/esm/utils/system-proxy.d.ts +15 -0
  120. package/dist/esm/utils/system-proxy.d.ts.map +1 -0
  121. package/dist/esm/utils/system-proxy.js +128 -0
  122. package/dist/esm/utils/system-proxy.js.map +1 -0
  123. package/package.json +1 -1
@@ -2,16 +2,18 @@
2
2
  // A2AClient — 轻量 A2A 协议客户端
3
3
  // 支持 Agent 发现、同步/流式任务、取消等核心方法
4
4
  // ============================================================
5
+ import { createProxyDispatcher } from "../utils/proxy.js";
6
+ import { interpolateHeaderValue, interpolateValue, resolveHeaderTemplates } from "../utils/header-vars.js";
5
7
  /** JSON-RPC 请求 ID 自增计数器 */
6
8
  let rpcIdCounter = 0;
7
9
  function nextRpcId() {
8
10
  return `a2a_${++rpcIdCounter}_${Date.now()}`;
9
11
  }
10
- /** 将 AuthConfig 转为 HTTP 请求头 */
11
- export function buildAuthHeaders(auth) {
12
+ /** 将 AuthConfig 转为 HTTP 请求头(value 支持 ${vars.x} / ${env.x} 模板) */
13
+ export function buildAuthHeaders(auth, vars) {
12
14
  if (!auth?.value)
13
15
  return {};
14
- const val = auth.value.replace(/\$\{env\.(\w+)\}/g, (_, name) => process.env[name] || '');
16
+ const val = interpolateHeaderValue(auth.value, vars);
15
17
  switch (auth.type) {
16
18
  case 'bearer': return { 'Authorization': `Bearer ${val}` };
17
19
  case 'basic': return { 'Authorization': `Basic ${val}` };
@@ -33,24 +35,60 @@ export class A2AClient {
33
35
  connectTimeout;
34
36
  chunkTimeout;
35
37
  fetchFn;
36
- headers;
38
+ /** 鉴权配置(构造时保存,发送时结合运行时变量解析) */
39
+ authConfig;
40
+ /** 自定义请求头模板(值可含 ${vars.x} / ${env.x} 占位符,发送时解析) */
41
+ headerTemplates;
42
+ /** 默认运行时变量 */
43
+ contextVars;
37
44
  onDebugTrace;
45
+ proxyUrl;
46
+ proxyDispatcher;
38
47
  constructor(options = {}) {
39
48
  this.timeout = options.timeout ?? 300_000;
40
49
  this.connectTimeout = options.connectTimeout ?? 30_000;
41
50
  this.chunkTimeout = options.chunkTimeout ?? 60_000;
42
51
  this.fetchFn = options.fetch ?? globalThis.fetch.bind(globalThis);
43
- this.headers = { ...buildAuthHeaders(options.auth), ...(options.headers ?? {}) };
52
+ this.authConfig = options.auth;
53
+ this.headerTemplates = { ...(options.headers ?? {}) };
54
+ this.contextVars = options.vars;
44
55
  this.onDebugTrace = options.onDebugTrace;
56
+ this.proxyUrl = options.proxy;
57
+ }
58
+ /**
59
+ * 更新运行时变量(如 userId / userMail)。
60
+ * 后续请求将使用更新后的值解析 ${vars.x} 占位符。
61
+ */
62
+ setContextVars(vars) {
63
+ this.contextVars = { ...(this.contextVars || {}), ...vars };
64
+ }
65
+ /** 合并运行时变量:构造时默认 vars + 本次调用传入的 vars(后者优先) */
66
+ mergeVars(callVars) {
67
+ return { ...(this.contextVars || {}), ...(callVars || {}) };
68
+ }
69
+ /** 解析本次请求生效的请求头(合并 auth + 自定义头,并应用 ${vars.x}/${env.x} 模板) */
70
+ resolveHeaders(callVars) {
71
+ const vars = this.mergeVars(callVars);
72
+ return {
73
+ ...buildAuthHeaders(this.authConfig, vars),
74
+ ...resolveHeaderTemplates(this.headerTemplates, vars),
75
+ };
76
+ }
77
+ /** 对请求体参数进行变量插值(${vars.x}/${env.x}/${x}),深拷贝不改原对象 */
78
+ resolveBody(body, callVars) {
79
+ return interpolateValue(body, this.mergeVars(callVars));
45
80
  }
46
81
  // ---- Agent 发现 ----
47
82
  /**
48
83
  * 通过 base URL 发现远程 Agent
49
84
  * 自动请求 /.well-known/agent.json 并返回 AgentCard
50
85
  */
51
- async discoverAgent(baseUrl) {
86
+ async discoverAgent(baseUrl, vars) {
52
87
  const url = this.resolveAgentCardUrl(baseUrl);
53
- const res = await this.fetchWithTimeout(url, { method: 'GET' });
88
+ const res = await this.fetchWithTimeout(url, {
89
+ method: 'GET',
90
+ headers: this.resolveHeaders(vars),
91
+ });
54
92
  if (!res.ok) {
55
93
  throw new Error(`A2A discover failed: HTTP ${res.status} from ${url}`);
56
94
  }
@@ -62,8 +100,8 @@ export class A2AClient {
62
100
  }
63
101
  // ---- 任务操作 ----
64
102
  /** 同步发送任务(tasks/send),等待完成后返回完整 Task */
65
- async sendTask(agentUrl, params) {
66
- const response = await this.jsonRpcCall(agentUrl, 'tasks/send', params);
103
+ async sendTask(agentUrl, params, vars) {
104
+ const response = await this.jsonRpcCall(agentUrl, 'tasks/send', params, vars);
67
105
  if (response.error) {
68
106
  throw new Error(`A2A tasks/send error [${response.error.code}]: ${response.error.message}`);
69
107
  }
@@ -81,14 +119,14 @@ export class A2AClient {
81
119
  *
82
120
  * @param abortSignal 外部中止信号(前端断开时中止 SSE 读取)
83
121
  */
84
- async sendTaskStreaming(agentUrl, params, onEvent, abortSignal) {
122
+ async sendTaskStreaming(agentUrl, params, onEvent, abortSignal, vars) {
85
123
  const request = {
86
124
  jsonrpc: '2.0',
87
125
  id: nextRpcId(),
88
126
  method: 'tasks/sendSubscribe',
89
- params: params,
127
+ params: this.resolveBody(params, vars),
90
128
  };
91
- const requestHeaders = { 'Content-Type': 'application/json', ...this.headers };
129
+ const requestHeaders = { 'Content-Type': 'application/json', ...this.resolveHeaders(vars) };
92
130
  // 连接阶段:使用独立 AbortController + connectTimeout + 外部 signal 联动
93
131
  const connectAbort = new AbortController();
94
132
  const connectTimer = setTimeout(() => connectAbort.abort(), this.connectTimeout);
@@ -245,20 +283,20 @@ export class A2AClient {
245
283
  return lastStatusUpdate;
246
284
  }
247
285
  /** 查询任务状态(tasks/get) */
248
- async getTask(agentUrl, taskId, historyLength) {
286
+ async getTask(agentUrl, taskId, historyLength, vars) {
249
287
  const params = { id: taskId };
250
288
  if (historyLength !== undefined)
251
289
  params.historyLength = historyLength;
252
- const response = await this.jsonRpcCall(agentUrl, 'tasks/get', params);
290
+ const response = await this.jsonRpcCall(agentUrl, 'tasks/get', params, vars);
253
291
  if (response.error) {
254
292
  throw new Error(`A2A tasks/get error [${response.error.code}]: ${response.error.message}`);
255
293
  }
256
294
  return response.result;
257
295
  }
258
296
  /** 取消任务(tasks/cancel) */
259
- async cancelTask(agentUrl, taskId) {
297
+ async cancelTask(agentUrl, taskId, vars) {
260
298
  const params = { id: taskId };
261
- const response = await this.jsonRpcCall(agentUrl, 'tasks/cancel', params);
299
+ const response = await this.jsonRpcCall(agentUrl, 'tasks/cancel', params, vars);
262
300
  if (response.error) {
263
301
  throw new Error(`A2A tasks/cancel error [${response.error.code}]: ${response.error.message}`);
264
302
  }
@@ -273,14 +311,14 @@ export class A2AClient {
273
311
  return `${trimmed}/.well-known/agent.json`;
274
312
  }
275
313
  /** 发送 JSON-RPC 请求 */
276
- async jsonRpcCall(url, method, params) {
314
+ async jsonRpcCall(url, method, params, vars) {
277
315
  const request = {
278
316
  jsonrpc: '2.0',
279
317
  id: nextRpcId(),
280
318
  method,
281
- params,
319
+ params: this.resolveBody(params, vars),
282
320
  };
283
- const requestHeaders = { 'Content-Type': 'application/json', ...this.headers };
321
+ const requestHeaders = { 'Content-Type': 'application/json', ...this.resolveHeaders(vars) };
284
322
  const start = Date.now();
285
323
  let res;
286
324
  try {
@@ -347,12 +385,21 @@ export class A2AClient {
347
385
  clearTimeout(timer);
348
386
  }
349
387
  }
350
- /** 带超时的 fetch */
388
+ /** 带超时的 fetch(自动应用代理 dispatcher,无代理时直连) */
351
389
  async fetchWithTimeout(url, init) {
352
390
  const controller = new AbortController();
353
391
  const timer = setTimeout(() => controller.abort(), this.timeout);
354
392
  try {
355
- return await this.fetchFn(url, { ...init, signal: controller.signal });
393
+ // 懒加载 ProxyAgent dispatcher(仅在有代理时创建一次)
394
+ if (this.proxyUrl && !this.proxyDispatcher) {
395
+ this.proxyDispatcher = await createProxyDispatcher(this.proxyUrl);
396
+ }
397
+ const dispatcher = this.proxyDispatcher;
398
+ return await this.fetchFn(url, {
399
+ ...init,
400
+ signal: controller.signal,
401
+ ...(dispatcher ? { dispatcher } : {}),
402
+ });
356
403
  }
357
404
  finally {
358
405
  clearTimeout(timer);
@@ -362,7 +409,7 @@ export class A2AClient {
362
409
  if (!this.onDebugTrace)
363
410
  return;
364
411
  try {
365
- this.onDebugTrace(trace);
412
+ this.onDebugTrace({ ...trace, proxy: this.proxyUrl });
366
413
  }
367
414
  catch { /* ignore debug hook errors */ }
368
415
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/a2a/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/a2a/client.ts"],"names":[],"mappings":"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"}
@@ -55,12 +55,20 @@ export interface RestA2AClientOptions {
55
55
  chunkTimeout?: number;
56
56
  /** 自定义 fetch 实现(默认使用 globalThis.fetch) */
57
57
  fetch?: typeof fetch;
58
- /** 自定义请求头 */
58
+ /** 自定义请求头;值支持 ${vars.x} / ${env.x} 模板 */
59
59
  headers?: Record<string, string>;
60
- /** 认证配置 */
60
+ /** 认证配置;value 支持 ${vars.x} / ${env.x} 模板 */
61
61
  auth?: AuthConfig;
62
+ /**
63
+ * 运行时变量(如 { userId, userMail })。
64
+ * 用于解析 headers / auth 中的 ${vars.x} 占位符。
65
+ * 也可在每次调用(invoke / invokeStreaming / submit / getTask / discoverCapability)时按需覆盖。
66
+ */
67
+ vars?: Record<string, unknown>;
62
68
  /** 调试 trace 回调;未传时保持原始执行流程 */
63
69
  onDebugTrace?: AgentDebugTraceHandler;
70
+ /** 代理 URL(如 http://127.0.0.1:7890),传入后通过 undici ProxyAgent 走代理,不传则直连 */
71
+ proxy?: string;
64
72
  }
65
73
  /**
66
74
  * REST 风格 A2A 协议客户端
@@ -75,13 +83,31 @@ export declare class RestA2AClient {
75
83
  private connectTimeout;
76
84
  private chunkTimeout;
77
85
  private fetchFn;
78
- private headers;
86
+ /** 鉴权配置(构造时保存,发送时结合运行时变量解析) */
87
+ private authConfig?;
88
+ /** 自定义请求头模板(值可含 ${vars.x} / ${env.x} 占位符,发送时解析) */
89
+ private headerTemplates;
90
+ /** 默认运行时变量 */
91
+ private contextVars?;
79
92
  private onDebugTrace?;
93
+ private proxyUrl?;
94
+ private proxyDispatcher?;
80
95
  constructor(options?: RestA2AClientOptions);
96
+ /**
97
+ * 更新运行时变量(如 userId / userMail)。
98
+ * 后续请求将使用更新后的值解析 ${vars.x} 占位符。
99
+ */
100
+ setContextVars(vars: Record<string, unknown>): void;
101
+ /** 合并运行时变量:构造时默认 vars + 本次调用传入的 vars(后者优先) */
102
+ private mergeVars;
103
+ /** 解析本次请求生效的请求头(合并 auth + 自定义头,并应用 ${vars.x}/${env.x} 模板) */
104
+ private resolveHeaders;
105
+ /** 对请求体参数进行变量插值(${vars.x}/${env.x}/${x}),深拷贝不改原对象 */
106
+ private resolveBody;
81
107
  /** 获取 Capability Card:GET /capabilities/{capabilityId},失败时尝试 :stream 探测 */
82
- discoverCapability(baseUrl: string, capabilityId: string, streamAction?: string): Promise<RestCapabilityCard>;
108
+ discoverCapability(baseUrl: string, capabilityId: string, streamAction?: string, vars?: Record<string, unknown>): Promise<RestCapabilityCard>;
83
109
  /** 同步调用:POST /api/v1/a2a/capabilities/{capabilityId}:{action} */
84
- invoke(baseUrl: string, capabilityId: string, input: Record<string, unknown>, action?: string): Promise<RestCapabilityResult>;
110
+ invoke(baseUrl: string, capabilityId: string, input: Record<string, unknown>, action?: string, vars?: Record<string, unknown>): Promise<RestCapabilityResult>;
85
111
  /**
86
112
  * 流式调用:POST /api/v1/a2a/capabilities/{capabilityId}:stream (SSE)
87
113
  *
@@ -96,19 +122,19 @@ export declare class RestA2AClient {
96
122
  *
97
123
  * @returns 最后一个 result 事件的数据,或 null(流中断且无 result)
98
124
  */
99
- invokeStreaming(baseUrl: string, capabilityId: string, input: Record<string, unknown>, onEvent?: (event: RestSSEEvent) => void, abortSignal?: AbortSignal, action?: string): Promise<RestCapabilityResult | null>;
125
+ invokeStreaming(baseUrl: string, capabilityId: string, input: Record<string, unknown>, onEvent?: (event: RestSSEEvent) => void, abortSignal?: AbortSignal, action?: string, vars?: Record<string, unknown>): Promise<RestCapabilityResult | null>;
100
126
  /** 异步提交:POST /api/v1/a2a/capabilities/{capabilityId}:submit */
101
- submit(baseUrl: string, capabilityId: string, input: Record<string, unknown>): Promise<{
127
+ submit(baseUrl: string, capabilityId: string, input: Record<string, unknown>, vars?: Record<string, unknown>): Promise<{
102
128
  task_id: string;
103
129
  [key: string]: unknown;
104
130
  }>;
105
131
  /** 查询任务状态:GET /api/v1/a2a/tasks/{taskId} */
106
- getTask(baseUrl: string, taskId: string): Promise<RestTaskStatus>;
132
+ getTask(baseUrl: string, taskId: string, vars?: Record<string, unknown>): Promise<RestTaskStatus>;
107
133
  /** 构建 Capability URL */
108
134
  private buildCapabilityUrl;
109
135
  /** 带 chunkTimeout 的 reader.read() */
110
136
  private readChunkWithTimeout;
111
- /** 带超时的 fetch */
137
+ /** 带超时的 fetch(自动应用代理 dispatcher,无代理时直连) */
112
138
  private fetchWithTimeout;
113
139
  private emitDebugTrace;
114
140
  private headersToObject;
@@ -1 +1 @@
1
- {"version":3,"file":"rest-client.d.ts","sourceRoot":"","sources":["../../../src/a2a/rest-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rest-client.d.ts","sourceRoot":"","sources":["../../../src/a2a/rest-client.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,8 @@
13
13
  // 适配不同远程服务的命名约定(如 :run 代替 :invoke)。
14
14
  // ============================================================
15
15
  import { buildAuthHeaders } from "./client.js";
16
+ import { createProxyDispatcher } from "../utils/proxy.js";
17
+ import { resolveHeaderTemplates, interpolateValue } from "../utils/header-vars.js";
16
18
  // ---- RestA2AClient ----
17
19
  /**
18
20
  * REST 风格 A2A 协议客户端
@@ -27,19 +29,52 @@ export class RestA2AClient {
27
29
  connectTimeout;
28
30
  chunkTimeout;
29
31
  fetchFn;
30
- headers;
32
+ /** 鉴权配置(构造时保存,发送时结合运行时变量解析) */
33
+ authConfig;
34
+ /** 自定义请求头模板(值可含 ${vars.x} / ${env.x} 占位符,发送时解析) */
35
+ headerTemplates;
36
+ /** 默认运行时变量 */
37
+ contextVars;
31
38
  onDebugTrace;
39
+ proxyUrl;
40
+ proxyDispatcher;
32
41
  constructor(options = {}) {
33
42
  this.timeout = options.timeout ?? 300_000;
34
43
  this.connectTimeout = options.connectTimeout ?? 30_000;
35
44
  this.chunkTimeout = options.chunkTimeout ?? 60_000;
36
45
  this.fetchFn = options.fetch ?? globalThis.fetch.bind(globalThis);
37
- this.headers = { ...buildAuthHeaders(options.auth), ...(options.headers ?? {}) };
46
+ this.authConfig = options.auth;
47
+ this.headerTemplates = { ...(options.headers ?? {}) };
48
+ this.contextVars = options.vars;
38
49
  this.onDebugTrace = options.onDebugTrace;
50
+ this.proxyUrl = options.proxy;
51
+ }
52
+ /**
53
+ * 更新运行时变量(如 userId / userMail)。
54
+ * 后续请求将使用更新后的值解析 ${vars.x} 占位符。
55
+ */
56
+ setContextVars(vars) {
57
+ this.contextVars = { ...(this.contextVars || {}), ...vars };
58
+ }
59
+ /** 合并运行时变量:构造时默认 vars + 本次调用传入的 vars(后者优先) */
60
+ mergeVars(callVars) {
61
+ return { ...(this.contextVars || {}), ...(callVars || {}) };
62
+ }
63
+ /** 解析本次请求生效的请求头(合并 auth + 自定义头,并应用 ${vars.x}/${env.x} 模板) */
64
+ resolveHeaders(callVars) {
65
+ const vars = this.mergeVars(callVars);
66
+ return {
67
+ ...buildAuthHeaders(this.authConfig, vars),
68
+ ...resolveHeaderTemplates(this.headerTemplates, vars),
69
+ };
70
+ }
71
+ /** 对请求体参数进行变量插值(${vars.x}/${env.x}/${x}),深拷贝不改原对象 */
72
+ resolveBody(body, callVars) {
73
+ return interpolateValue(body, this.mergeVars(callVars));
39
74
  }
40
75
  // ---- Capability 发现 ----
41
76
  /** 获取 Capability Card:GET /capabilities/{capabilityId},失败时尝试 :stream 探测 */
42
- async discoverCapability(baseUrl, capabilityId, streamAction) {
77
+ async discoverCapability(baseUrl, capabilityId, streamAction, vars) {
43
78
  const url = this.buildCapabilityUrl(baseUrl, capabilityId);
44
79
  console.log(`[REST-A2A] discoverCapability -> GET ${url}`);
45
80
  try {
@@ -64,7 +99,7 @@ export class RestA2AClient {
64
99
  const timer = setTimeout(() => controller.abort(), 10_000);
65
100
  const res = await this.fetchFn(streamUrl, {
66
101
  method: 'POST',
67
- headers: { 'Content-Type': 'application/json', ...this.headers },
102
+ headers: { 'Content-Type': 'application/json', ...this.resolveHeaders(vars) },
68
103
  body: JSON.stringify({}),
69
104
  signal: controller.signal,
70
105
  });
@@ -113,18 +148,18 @@ export class RestA2AClient {
113
148
  }
114
149
  // ---- 同步调用 ----
115
150
  /** 同步调用:POST /api/v1/a2a/capabilities/{capabilityId}:{action} */
116
- async invoke(baseUrl, capabilityId, input, action) {
151
+ async invoke(baseUrl, capabilityId, input, action, vars) {
117
152
  const url = this.buildCapabilityUrl(baseUrl, capabilityId, action || 'invoke');
118
153
  console.log(`[REST-A2A-Client] invoke start: POST ${url}`);
119
154
  console.log(`[REST-A2A-Client] invoke input: ${JSON.stringify(input, null, 2).slice(0, 500)}`);
120
155
  const startTime = Date.now();
121
- const requestHeaders = { 'Content-Type': 'application/json', ...this.headers };
156
+ const requestHeaders = { 'Content-Type': 'application/json', ...this.resolveHeaders(vars) };
122
157
  let res;
123
158
  try {
124
159
  res = await this.fetchWithTimeout(url, {
125
160
  method: 'POST',
126
161
  headers: requestHeaders,
127
- body: JSON.stringify(input),
162
+ body: JSON.stringify(this.resolveBody(input, vars)),
128
163
  });
129
164
  }
130
165
  catch (err) {
@@ -181,7 +216,7 @@ export class RestA2AClient {
181
216
  *
182
217
  * @returns 最后一个 result 事件的数据,或 null(流中断且无 result)
183
218
  */
184
- async invokeStreaming(baseUrl, capabilityId, input, onEvent, abortSignal, action) {
219
+ async invokeStreaming(baseUrl, capabilityId, input, onEvent, abortSignal, action, vars) {
185
220
  const url = this.buildCapabilityUrl(baseUrl, capabilityId, action || 'stream');
186
221
  console.log(`[REST-A2A-Client] invokeStreaming start: POST ${url}`);
187
222
  console.log(`[REST-A2A-Client] invokeStreaming input: ${JSON.stringify(input, null, 2).slice(0, 500)}`);
@@ -198,12 +233,12 @@ export class RestA2AClient {
198
233
  }
199
234
  let res;
200
235
  const connectStartTime = Date.now();
201
- const requestHeaders = { 'Content-Type': 'application/json', ...this.headers };
236
+ const requestHeaders = { 'Content-Type': 'application/json', ...this.resolveHeaders(vars) };
202
237
  try {
203
238
  res = await this.fetchFn(url, {
204
239
  method: 'POST',
205
240
  headers: requestHeaders,
206
- body: JSON.stringify(input),
241
+ body: JSON.stringify(this.resolveBody(input, vars)),
207
242
  signal: connectAbort.signal,
208
243
  });
209
244
  console.log(`[REST-A2A-Client] invokeStreaming connected: HTTP ${res.status} (${Date.now() - connectStartTime}ms)`);
@@ -365,14 +400,14 @@ export class RestA2AClient {
365
400
  }
366
401
  // ---- 异步任务 ----
367
402
  /** 异步提交:POST /api/v1/a2a/capabilities/{capabilityId}:submit */
368
- async submit(baseUrl, capabilityId, input) {
403
+ async submit(baseUrl, capabilityId, input, vars) {
369
404
  const url = this.buildCapabilityUrl(baseUrl, capabilityId, 'submit');
370
405
  console.log(`[REST-A2A-Client] submit start: POST ${url}`);
371
406
  console.log(`[REST-A2A-Client] submit input: ${JSON.stringify(input, null, 2).slice(0, 500)}`);
372
407
  const res = await this.fetchWithTimeout(url, {
373
408
  method: 'POST',
374
- headers: { 'Content-Type': 'application/json', ...this.headers },
375
- body: JSON.stringify(input),
409
+ headers: { 'Content-Type': 'application/json', ...this.resolveHeaders(vars) },
410
+ body: JSON.stringify(this.resolveBody(input, vars)),
376
411
  });
377
412
  if (!res.ok) {
378
413
  let bodyText = '';
@@ -388,11 +423,14 @@ export class RestA2AClient {
388
423
  return result;
389
424
  }
390
425
  /** 查询任务状态:GET /api/v1/a2a/tasks/{taskId} */
391
- async getTask(baseUrl, taskId) {
426
+ async getTask(baseUrl, taskId, vars) {
392
427
  const trimmed = baseUrl.replace(/\/+$/, '');
393
428
  const url = `${trimmed}/api/v1/a2a/tasks/${taskId}`;
394
429
  console.log(`[REST-A2A-Client] getTask: GET ${url}`);
395
- const res = await this.fetchWithTimeout(url, { method: 'GET' });
430
+ const res = await this.fetchWithTimeout(url, {
431
+ method: 'GET',
432
+ headers: this.resolveHeaders(vars),
433
+ });
396
434
  if (!res.ok) {
397
435
  let bodyText = '';
398
436
  try {
@@ -443,14 +481,23 @@ export class RestA2AClient {
443
481
  clearTimeout(timer);
444
482
  }
445
483
  }
446
- /** 带超时的 fetch */
484
+ /** 带超时的 fetch(自动应用代理 dispatcher,无代理时直连) */
447
485
  async fetchWithTimeout(url, init) {
448
486
  const controller = new AbortController();
449
487
  const timer = setTimeout(() => controller.abort(), this.timeout);
450
488
  console.log(`[REST-A2A-Client] fetchWithTimeout: ${init.method || 'GET'} ${url} (timeout=${this.timeout}ms)`);
451
489
  const startTime = Date.now();
452
490
  try {
453
- const res = await this.fetchFn(url, { ...init, signal: controller.signal });
491
+ // 懒加载 ProxyAgent dispatcher(仅在有代理时创建一次)
492
+ if (this.proxyUrl && !this.proxyDispatcher) {
493
+ this.proxyDispatcher = await createProxyDispatcher(this.proxyUrl);
494
+ }
495
+ const dispatcher = this.proxyDispatcher;
496
+ const res = await this.fetchFn(url, {
497
+ ...init,
498
+ signal: controller.signal,
499
+ ...(dispatcher ? { dispatcher } : {}),
500
+ });
454
501
  console.log(`[REST-A2A-Client] fetchWithTimeout response: HTTP ${res.status} (${Date.now() - startTime}ms)`);
455
502
  return res;
456
503
  }
@@ -485,7 +532,7 @@ export class RestA2AClient {
485
532
  if (!this.onDebugTrace)
486
533
  return;
487
534
  try {
488
- this.onDebugTrace(trace);
535
+ this.onDebugTrace({ ...trace, proxy: this.proxyUrl });
489
536
  }
490
537
  catch { /* ignore debug hook errors */ }
491
538
  }