@aramisfa/openclaw-a2a-outbound 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/README.md +261 -16
  2. package/dist/config.d.ts +17 -0
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +214 -8
  5. package/dist/config.js.map +1 -1
  6. package/dist/constants.d.ts +1 -1
  7. package/dist/constants.d.ts.map +1 -1
  8. package/dist/constants.js +1 -1
  9. package/dist/constants.js.map +1 -1
  10. package/dist/errors.d.ts +4 -0
  11. package/dist/errors.d.ts.map +1 -1
  12. package/dist/errors.js +37 -1
  13. package/dist/errors.js.map +1 -1
  14. package/dist/index.d.ts +1 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +44 -20
  17. package/dist/index.js.map +1 -1
  18. package/dist/request-normalization.d.ts +23 -0
  19. package/dist/request-normalization.d.ts.map +1 -0
  20. package/dist/request-normalization.js +109 -0
  21. package/dist/request-normalization.js.map +1 -0
  22. package/dist/result-shape.d.ts +68 -25
  23. package/dist/result-shape.d.ts.map +1 -1
  24. package/dist/result-shape.js +192 -59
  25. package/dist/result-shape.js.map +1 -1
  26. package/dist/schemas.d.ts +81 -779
  27. package/dist/schemas.d.ts.map +1 -1
  28. package/dist/schemas.js +308 -275
  29. package/dist/schemas.js.map +1 -1
  30. package/dist/sdk-client-pool.d.ts +8 -4
  31. package/dist/sdk-client-pool.d.ts.map +1 -1
  32. package/dist/sdk-client-pool.js +21 -1
  33. package/dist/sdk-client-pool.js.map +1 -1
  34. package/dist/service.d.ts +33 -4
  35. package/dist/service.d.ts.map +1 -1
  36. package/dist/service.js +381 -60
  37. package/dist/service.js.map +1 -1
  38. package/dist/target-catalog.d.ts +66 -0
  39. package/dist/target-catalog.d.ts.map +1 -0
  40. package/dist/target-catalog.js +309 -0
  41. package/dist/target-catalog.js.map +1 -0
  42. package/dist/task-handle-registry.d.ts +29 -0
  43. package/dist/task-handle-registry.d.ts.map +1 -0
  44. package/dist/task-handle-registry.js +141 -0
  45. package/dist/task-handle-registry.js.map +1 -0
  46. package/openclaw.plugin.json +68 -1
  47. package/package.json +9 -5
  48. package/skills/remote-agent/SKILL.md +93 -0
package/dist/service.js CHANGED
@@ -1,26 +1,13 @@
1
+ import { UnsupportedOperationError } from "@a2a-js/sdk/client";
1
2
  import { parseA2AOutboundPluginConfig, } from "./config.js";
2
3
  import { A2AOutboundError, ERROR_CODES, toToolError, } from "./errors.js";
3
4
  import { log, startSpan } from "./logging.js";
4
- import { delegateFailure, delegateSuccess, taskCancelFailure, taskCancelSuccess, taskStatusFailure, taskStatusSuccess, } from "./result-shape.js";
5
- import { createClientPool } from "./sdk-client-pool.js";
6
- import { validateCancelInput, validateDelegateInput, validateStatusInput, } from "./schemas.js";
7
- function mergeServiceParameters(base, override) {
8
- const merged = {
9
- ...base,
10
- ...(override ?? {}),
11
- };
12
- return Object.keys(merged).length > 0 ? merged : undefined;
13
- }
14
- function requestOptions(timeoutMs, defaultTimeoutMs, defaultServiceParameters, serviceParameters) {
15
- const effectiveTimeoutMs = timeoutMs ?? defaultTimeoutMs;
16
- const mergedServiceParameters = mergeServiceParameters(defaultServiceParameters, serviceParameters);
17
- return {
18
- signal: AbortSignal.timeout(effectiveTimeoutMs),
19
- ...(mergedServiceParameters
20
- ? { serviceParameters: mergedServiceParameters }
21
- : {}),
22
- };
23
- }
5
+ import { cancelSuccess, listTargetsSuccess, remoteAgentFailure, sendStreamSuccess, sendSuccess, statusSuccess, streamUpdate, summarizeStreamEvent, watchSuccess, } from "./result-shape.js";
6
+ import { buildRequestOptions, normalizePlainIntentRequest, } from "./request-normalization.js";
7
+ import { createClientPool, } from "./sdk-client-pool.js";
8
+ import { buildRemoteAgentToolDefinition, createRemoteAgentInputValidator, } from "./schemas.js";
9
+ import { createTargetCatalog, } from "./target-catalog.js";
10
+ import { createTaskHandleRegistry, } from "./task-handle-registry.js";
24
11
  function fallbackErrorCode(error) {
25
12
  if (error instanceof A2AOutboundError) {
26
13
  return error.code;
@@ -30,15 +17,126 @@ function fallbackErrorCode(error) {
30
17
  }
31
18
  return ERROR_CODES.INTERNAL_ERROR;
32
19
  }
20
+ function targetIdentity(target) {
21
+ return JSON.stringify([
22
+ target.baseUrl,
23
+ target.cardPath,
24
+ ...target.preferredTransports,
25
+ ]);
26
+ }
27
+ function targetSummary(target) {
28
+ return {
29
+ baseUrl: target.baseUrl,
30
+ cardPath: target.cardPath,
31
+ preferredTransports: [...target.preferredTransports],
32
+ ...(target.alias !== undefined ? { alias: target.alias } : {}),
33
+ };
34
+ }
35
+ function firstStreamTaskId(events) {
36
+ for (const event of events) {
37
+ switch (event.kind) {
38
+ case "message":
39
+ if (event.taskId !== undefined) {
40
+ return event.taskId;
41
+ }
42
+ break;
43
+ case "task":
44
+ return event.id;
45
+ case "status-update":
46
+ case "artifact-update":
47
+ return event.taskId;
48
+ }
49
+ }
50
+ return undefined;
51
+ }
52
+ function isRecord(value) {
53
+ return typeof value === "object" && value !== null && !Array.isArray(value);
54
+ }
55
+ function withErrorDetails(error, details) {
56
+ if (error.details === undefined) {
57
+ return {
58
+ ...error,
59
+ details,
60
+ };
61
+ }
62
+ if (isRecord(error.details)) {
63
+ return {
64
+ ...error,
65
+ details: {
66
+ ...error.details,
67
+ ...details,
68
+ },
69
+ };
70
+ }
71
+ return {
72
+ ...error,
73
+ details: {
74
+ originalDetails: error.details,
75
+ ...details,
76
+ },
77
+ };
78
+ }
79
+ function taskHandleTargetMismatchError(taskHandle, handleTarget, explicitTarget) {
80
+ return new A2AOutboundError(ERROR_CODES.VALIDATION_ERROR, `task_handle "${taskHandle}" does not match the explicit target`, {
81
+ task_handle: taskHandle,
82
+ handle_target: targetSummary(handleTarget),
83
+ explicit_target: targetSummary(explicitTarget),
84
+ });
85
+ }
86
+ function taskHandleTaskIdMismatchError(taskHandle, handleTaskId, explicitTaskId) {
87
+ return new A2AOutboundError(ERROR_CODES.VALIDATION_ERROR, `task_handle "${taskHandle}" does not match task_id "${explicitTaskId}"`, {
88
+ task_handle: taskHandle,
89
+ handle_task_id: handleTaskId,
90
+ explicit_task_id: explicitTaskId,
91
+ });
92
+ }
93
+ function missingTargetContextError(action) {
94
+ const message = action === "send"
95
+ ? "send requires target_alias, target_url, or a configured default target"
96
+ : `${action} requires task_handle, or task_id plus target_alias/target_url, or a configured default target`;
97
+ return new A2AOutboundError(ERROR_CODES.VALIDATION_ERROR, message);
98
+ }
99
+ function streamingNotSupportedError(target, taskId) {
100
+ return new A2AOutboundError(ERROR_CODES.A2A_SDK_ERROR, `streaming updates are not available for task ${taskId}; retry with action=status`, {
101
+ task_id: taskId,
102
+ target_url: target.baseUrl,
103
+ ...(target.alias !== undefined ? { target_alias: target.alias } : {}),
104
+ ...(target.streamingSupported !== undefined
105
+ ? { streaming_supported: target.streamingSupported }
106
+ : {}),
107
+ suggested_action: "status",
108
+ });
109
+ }
110
+ async function consumeStream(stream, action, target, state, onUpdate) {
111
+ for await (const event of stream) {
112
+ state.events.push(event);
113
+ state.latestSummary = summarizeStreamEvent(target, event);
114
+ onUpdate?.(streamUpdate(action, target, event));
115
+ }
116
+ }
117
+ function requestedAction(input) {
118
+ if (typeof input === "object" &&
119
+ input !== null &&
120
+ "action" in input &&
121
+ typeof input.action === "string") {
122
+ return input.action;
123
+ }
124
+ return "unknown";
125
+ }
33
126
  export class A2AOutboundService {
34
127
  logger;
35
128
  tracer;
36
129
  config;
37
130
  clientPool;
131
+ targetCatalog;
132
+ taskHandleRegistry;
133
+ validateInput;
134
+ toolDefinition;
38
135
  constructor(options = {}) {
39
136
  this.logger = options.logger;
40
137
  this.tracer = options.tracer;
41
- this.config = parseA2AOutboundPluginConfig(options.config);
138
+ this.config =
139
+ options.parsedConfig ?? parseA2AOutboundPluginConfig(options.config);
42
140
  this.clientPool =
43
141
  options.clientPool ??
44
142
  createClientPool({
@@ -48,92 +146,315 @@ export class A2AOutboundService {
48
146
  normalizeBaseUrl: this.config.policy.normalizeBaseUrl,
49
147
  enforceSupportedTransports: this.config.policy.enforceSupportedTransports,
50
148
  });
149
+ this.targetCatalog =
150
+ options.targetCatalog ??
151
+ createTargetCatalog({
152
+ config: this.config,
153
+ clientPool: this.clientPool,
154
+ });
155
+ this.taskHandleRegistry =
156
+ options.taskHandleRegistry ??
157
+ createTaskHandleRegistry({
158
+ ttlMs: this.config.taskHandles.ttlMs,
159
+ maxEntries: this.config.taskHandles.maxEntries,
160
+ });
161
+ this.validateInput = createRemoteAgentInputValidator(this.config);
162
+ this.toolDefinition = buildRemoteAgentToolDefinition(this.config);
163
+ }
164
+ getToolDefinition() {
165
+ return {
166
+ ...this.toolDefinition,
167
+ parameters: {
168
+ ...this.toolDefinition.parameters,
169
+ },
170
+ };
171
+ }
172
+ async execute(input, options = {}) {
173
+ let validated;
174
+ try {
175
+ validated = this.validateInput(input);
176
+ }
177
+ catch (error) {
178
+ const action = requestedAction(input);
179
+ const toolError = toToolError(error, fallbackErrorCode(error));
180
+ log(this.logger, "error", "a2a.remote_agent.validation_error", {
181
+ action,
182
+ error: toolError,
183
+ });
184
+ return remoteAgentFailure(action, toolError);
185
+ }
186
+ switch (validated.action) {
187
+ case "list_targets":
188
+ return this.listTargets();
189
+ case "send":
190
+ return validated.follow_updates === true
191
+ ? this.sendStream(validated, { signal: options.signal, onUpdate: options.onUpdate })
192
+ : this.send(validated, { signal: options.signal });
193
+ case "watch":
194
+ return this.watch(validated, {
195
+ signal: options.signal,
196
+ onUpdate: options.onUpdate,
197
+ });
198
+ case "status":
199
+ return this.status(validated, { signal: options.signal });
200
+ case "cancel":
201
+ return this.cancel(validated, { signal: options.signal });
202
+ }
203
+ }
204
+ async resolveClient(target) {
205
+ const clientEntry = await this.clientPool.get(target);
206
+ return {
207
+ target,
208
+ clientEntry,
209
+ };
210
+ }
211
+ resolveExplicitTarget(input) {
212
+ if (input.target_alias !== undefined) {
213
+ return this.targetCatalog.resolveAlias(input.target_alias);
214
+ }
215
+ if (input.target_url !== undefined) {
216
+ return this.targetCatalog.resolveRawTarget({
217
+ baseUrl: input.target_url,
218
+ });
219
+ }
220
+ return undefined;
221
+ }
222
+ async resolveSendTarget(input) {
223
+ const explicitTarget = this.resolveExplicitTarget(input);
224
+ const target = explicitTarget ?? this.targetCatalog.resolveDefaultTarget();
225
+ if (!target) {
226
+ throw missingTargetContextError("send");
227
+ }
228
+ return this.resolveClient(target);
229
+ }
230
+ async resolveTaskContext(input) {
231
+ if (input.task_handle !== undefined) {
232
+ const handleRecord = this.taskHandleRegistry.resolve(input.task_handle);
233
+ if (input.task_id !== undefined && input.task_id !== handleRecord.taskId) {
234
+ throw taskHandleTaskIdMismatchError(input.task_handle, handleRecord.taskId, input.task_id);
235
+ }
236
+ const explicitTarget = this.resolveExplicitTarget(input);
237
+ if (explicitTarget !== undefined &&
238
+ targetIdentity(explicitTarget) !== targetIdentity(handleRecord.target)) {
239
+ throw taskHandleTargetMismatchError(input.task_handle, handleRecord.target, explicitTarget);
240
+ }
241
+ const clientEntry = await this.clientPool.get(handleRecord.target);
242
+ return {
243
+ target: handleRecord.target,
244
+ clientEntry,
245
+ taskId: handleRecord.taskId,
246
+ taskHandle: input.task_handle,
247
+ };
248
+ }
249
+ if (input.task_id === undefined) {
250
+ throw missingTargetContextError(input.action);
251
+ }
252
+ const target = this.resolveExplicitTarget(input) ?? this.targetCatalog.resolveDefaultTarget();
253
+ if (!target) {
254
+ throw missingTargetContextError(input.action);
255
+ }
256
+ const clientEntry = await this.clientPool.get(target);
257
+ return {
258
+ target,
259
+ clientEntry,
260
+ taskId: input.task_id,
261
+ };
262
+ }
263
+ bindTaskHandle(target, taskId, taskHandle) {
264
+ if (taskHandle !== undefined) {
265
+ return this.taskHandleRegistry.refresh(taskHandle, { target, taskId })
266
+ .taskHandle;
267
+ }
268
+ return this.taskHandleRegistry.create({ target, taskId }).taskHandle;
269
+ }
270
+ bindStreamTaskHandle(target, events, taskHandle) {
271
+ const taskId = firstStreamTaskId(events);
272
+ return taskId !== undefined
273
+ ? this.bindTaskHandle(target, taskId, taskHandle)
274
+ : undefined;
275
+ }
276
+ async listTargets() {
277
+ const span = startSpan(this.tracer, "a2a.remote_agent.list_targets");
278
+ try {
279
+ const entries = await this.targetCatalog.hydrateAllConfigured();
280
+ return listTargetsSuccess(entries);
281
+ }
282
+ catch (error) {
283
+ const toolError = toToolError(error, fallbackErrorCode(error));
284
+ log(this.logger, "error", "a2a.remote_agent.list_targets.error", {
285
+ error: toolError,
286
+ });
287
+ return remoteAgentFailure("list_targets", toolError);
288
+ }
289
+ finally {
290
+ span.end?.();
291
+ }
292
+ }
293
+ async send(input, options) {
294
+ const span = startSpan(this.tracer, "a2a.remote_agent.send");
295
+ let target;
296
+ try {
297
+ const resolved = await this.resolveSendTarget(input);
298
+ target = resolved.target;
299
+ const normalized = normalizePlainIntentRequest(input, {
300
+ defaultTimeoutMs: this.config.defaults.timeoutMs,
301
+ defaultServiceParameters: this.config.defaults.serviceParameters,
302
+ signal: options.signal,
303
+ });
304
+ const raw = await resolved.clientEntry.client.sendMessage(normalized.sendParams, normalized.requestOptions);
305
+ const taskHandle = raw.kind === "task" ? this.bindTaskHandle(target, raw.id) : undefined;
306
+ return sendSuccess(target, raw, taskHandle);
307
+ }
308
+ catch (error) {
309
+ const toolError = toToolError(error, fallbackErrorCode(error));
310
+ log(this.logger, "error", "a2a.remote_agent.send.error", {
311
+ target,
312
+ error: toolError,
313
+ });
314
+ return remoteAgentFailure("send", toolError);
315
+ }
316
+ finally {
317
+ span.end?.();
318
+ }
319
+ }
320
+ async sendStream(input, options) {
321
+ const span = startSpan(this.tracer, "a2a.remote_agent.send_stream");
322
+ let target;
323
+ const state = {
324
+ events: [],
325
+ };
326
+ try {
327
+ const resolved = await this.resolveSendTarget(input);
328
+ target = resolved.target;
329
+ const normalized = normalizePlainIntentRequest(input, {
330
+ defaultTimeoutMs: this.config.defaults.timeoutMs,
331
+ defaultServiceParameters: this.config.defaults.serviceParameters,
332
+ signal: options.signal,
333
+ });
334
+ await consumeStream(resolved.clientEntry.client.sendMessageStream(normalized.sendParams, normalized.requestOptions), "send", target, state, options.onUpdate);
335
+ if (state.events.length === 0) {
336
+ throw new A2AOutboundError(ERROR_CODES.A2A_SDK_ERROR, "stream ended without events");
337
+ }
338
+ return sendStreamSuccess(target, state.events, this.bindStreamTaskHandle(target, state.events));
339
+ }
340
+ catch (error) {
341
+ let toolError = toToolError(error, fallbackErrorCode(error));
342
+ if (state.events.length > 0 && state.latestSummary) {
343
+ toolError = withErrorDetails(toolError, {
344
+ partial_event_count: state.events.length,
345
+ latest_event_summary: state.latestSummary,
346
+ });
347
+ }
348
+ log(this.logger, "error", "a2a.remote_agent.send_stream.error", {
349
+ target,
350
+ error: toolError,
351
+ });
352
+ return remoteAgentFailure("send", toolError);
353
+ }
354
+ finally {
355
+ span.end?.();
356
+ }
51
357
  }
52
- async delegate(input) {
53
- const span = startSpan(this.tracer, "a2a.delegate");
358
+ async status(input, options) {
359
+ const span = startSpan(this.tracer, "a2a.remote_agent.status");
54
360
  let target;
361
+ let taskId;
55
362
  try {
56
- const validated = validateDelegateInput(input);
57
- const resolved = await this.clientPool.get(validated.target);
363
+ const resolved = await this.resolveTaskContext(input);
58
364
  target = resolved.target;
59
- const messagePayload = {
60
- message: validated.request.message,
61
- ...(validated.request.metadata !== undefined
62
- ? { metadata: validated.request.metadata }
63
- : {}),
64
- ...(validated.request.configuration !== undefined
65
- ? { configuration: validated.request.configuration }
365
+ taskId = resolved.taskId;
366
+ const params = {
367
+ id: resolved.taskId,
368
+ ...(input.history_length !== undefined
369
+ ? { historyLength: input.history_length }
66
370
  : {}),
67
371
  };
68
- const raw = await resolved.client.sendMessage(messagePayload, requestOptions(validated.request.timeoutMs, this.config.defaults.timeoutMs, this.config.defaults.serviceParameters, validated.request.serviceParameters));
69
- return delegateSuccess(target, raw);
372
+ const raw = await resolved.clientEntry.client.getTask(params, buildRequestOptions(input.timeout_ms, this.config.defaults.timeoutMs, this.config.defaults.serviceParameters, input.service_parameters, options.signal));
373
+ return statusSuccess(target, raw, this.bindTaskHandle(target, raw.id, resolved.taskHandle));
70
374
  }
71
375
  catch (error) {
72
376
  const toolError = toToolError(error, fallbackErrorCode(error));
73
- log(this.logger, "error", "a2a.delegate.error", {
377
+ log(this.logger, "error", "a2a.remote_agent.status.error", {
74
378
  target,
379
+ taskId,
75
380
  error: toolError,
76
381
  });
77
- return delegateFailure(target, toolError);
382
+ return remoteAgentFailure("status", toolError);
78
383
  }
79
384
  finally {
80
385
  span.end?.();
81
386
  }
82
387
  }
83
- async status(input) {
84
- const span = startSpan(this.tracer, "a2a.status");
388
+ async watch(input, options) {
389
+ const span = startSpan(this.tracer, "a2a.remote_agent.watch");
85
390
  let target;
86
391
  let taskId;
392
+ const state = {
393
+ events: [],
394
+ };
87
395
  try {
88
- const validated = validateStatusInput(input);
89
- taskId = validated.request.taskId;
90
- const resolved = await this.clientPool.get(validated.target);
396
+ const resolved = await this.resolveTaskContext(input);
91
397
  target = resolved.target;
398
+ taskId = resolved.taskId;
399
+ if (resolved.target.streamingSupported === false) {
400
+ throw streamingNotSupportedError(resolved.target, resolved.taskId);
401
+ }
92
402
  const params = {
93
- id: validated.request.taskId,
94
- ...(validated.request.historyLength !== undefined
95
- ? { historyLength: validated.request.historyLength }
96
- : {}),
403
+ id: resolved.taskId,
97
404
  };
98
- const raw = await resolved.client.getTask(params, requestOptions(validated.request.timeoutMs, this.config.defaults.timeoutMs, this.config.defaults.serviceParameters, validated.request.serviceParameters));
99
- return taskStatusSuccess(target, validated.request.taskId, raw);
405
+ await consumeStream(resolved.clientEntry.client.resubscribeTask(params, buildRequestOptions(input.timeout_ms, this.config.defaults.timeoutMs, this.config.defaults.serviceParameters, input.service_parameters, options.signal)), "watch", target, state, options.onUpdate);
406
+ if (state.events.length === 0) {
407
+ throw new A2AOutboundError(ERROR_CODES.A2A_SDK_ERROR, "stream ended without events");
408
+ }
409
+ return watchSuccess(target, state.events, this.bindStreamTaskHandle(target, state.events, resolved.taskHandle));
100
410
  }
101
411
  catch (error) {
102
- const toolError = toToolError(error, fallbackErrorCode(error));
103
- log(this.logger, "error", "a2a.status.error", {
412
+ let effectiveError = error;
413
+ if (effectiveError instanceof UnsupportedOperationError &&
414
+ target !== undefined &&
415
+ taskId !== undefined) {
416
+ effectiveError = streamingNotSupportedError(target, taskId);
417
+ }
418
+ let toolError = toToolError(effectiveError, fallbackErrorCode(effectiveError));
419
+ if (state.events.length > 0 && state.latestSummary) {
420
+ toolError = withErrorDetails(toolError, {
421
+ partial_event_count: state.events.length,
422
+ latest_event_summary: state.latestSummary,
423
+ });
424
+ }
425
+ log(this.logger, "error", "a2a.remote_agent.watch.error", {
104
426
  target,
105
427
  taskId,
106
428
  error: toolError,
107
429
  });
108
- return taskStatusFailure(target, toolError);
430
+ return remoteAgentFailure("watch", toolError);
109
431
  }
110
432
  finally {
111
433
  span.end?.();
112
434
  }
113
435
  }
114
- async cancel(input) {
115
- const span = startSpan(this.tracer, "a2a.cancel");
436
+ async cancel(input, options) {
437
+ const span = startSpan(this.tracer, "a2a.remote_agent.cancel");
116
438
  let target;
117
439
  let taskId;
118
440
  try {
119
- const validated = validateCancelInput(input);
120
- taskId = validated.request.taskId;
121
- const resolved = await this.clientPool.get(validated.target);
441
+ const resolved = await this.resolveTaskContext(input);
122
442
  target = resolved.target;
443
+ taskId = resolved.taskId;
123
444
  const params = {
124
- id: validated.request.taskId,
445
+ id: resolved.taskId,
125
446
  };
126
- const raw = await resolved.client.cancelTask(params, requestOptions(validated.request.timeoutMs, this.config.defaults.timeoutMs, this.config.defaults.serviceParameters, validated.request.serviceParameters));
127
- return taskCancelSuccess(target, validated.request.taskId, raw);
447
+ const raw = await resolved.clientEntry.client.cancelTask(params, buildRequestOptions(input.timeout_ms, this.config.defaults.timeoutMs, this.config.defaults.serviceParameters, input.service_parameters, options.signal));
448
+ return cancelSuccess(target, raw, this.bindTaskHandle(target, raw.id, resolved.taskHandle));
128
449
  }
129
450
  catch (error) {
130
451
  const toolError = toToolError(error, fallbackErrorCode(error));
131
- log(this.logger, "error", "a2a.cancel.error", {
452
+ log(this.logger, "error", "a2a.remote_agent.cancel.error", {
132
453
  target,
133
454
  taskId,
134
455
  error: toolError,
135
456
  });
136
- return taskCancelFailure(target, toolError);
457
+ return remoteAgentFailure("cancel", toolError);
137
458
  }
138
459
  finally {
139
460
  span.end?.();
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,4BAA4B,GAE7B,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,gBAAgB,EAChB,WAAW,EACX,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,GAAG,EAAE,SAAS,EAAoC,MAAM,cAAc,CAAC;AAChF,OAAO,EACL,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,GAElB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAsB,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,SAAS,sBAAsB,CAC7B,IAA4B,EAC5B,QAA4C;IAE5C,MAAM,MAAM,GAAG;QACb,GAAG,IAAI;QACP,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;KACpB,CAAC;IAEF,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7D,CAAC;AAED,SAAS,cAAc,CACrB,SAA6B,EAC7B,gBAAwB,EACxB,wBAAgD,EAChD,iBAAqD;IAErD,MAAM,kBAAkB,GAAG,SAAS,IAAI,gBAAgB,CAAC;IACzD,MAAM,uBAAuB,GAAG,sBAAsB,CACpD,wBAAwB,EACxB,iBAAiB,CAClB,CAAC;IAEF,OAAO;QACL,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC;QAC/C,GAAG,CAAC,uBAAuB;YACzB,CAAC,CAAC,EAAE,iBAAiB,EAAE,uBAAuB,EAAE;YAChD,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,WAAW,CAAC,aAAa,CAAC;IACnC,CAAC;IAED,OAAO,WAAW,CAAC,cAAc,CAAC;AACpC,CAAC;AASD,MAAM,OAAO,kBAAkB;IACZ,MAAM,CAAyB;IAE/B,MAAM,CAAyB;IAE/B,MAAM,CAA0B;IAEhC,UAAU,CAAgB;IAE3C,YAAY,UAAqC,EAAE;QACjD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,4BAA4B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE3D,IAAI,CAAC,UAAU;YACb,OAAO,CAAC,UAAU;gBAClB,gBAAgB,CAAC;oBACf,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ;oBAC9C,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB;oBAC7D,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB;oBAC3D,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB;oBACrD,0BAA0B,EACxB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,0BAA0B;iBAChD,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAc;QAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACpD,IAAI,MAAM,CAAC;QAEX,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC7D,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YAEzB,MAAM,cAAc,GAAsB;gBACxC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,OAAO;gBAClC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;oBAC1C,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE;oBAC1C,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS;oBAC/C,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE;oBACpD,CAAC,CAAC,EAAE,CAAC;aACR,CAAC;YAEF,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,WAAW,CAC3C,cAAc,EACd,cAAc,CACZ,SAAS,CAAC,OAAO,CAAC,SAAS,EAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EACtC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CACpC,CACF,CAAC;YAEF,OAAO,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;YAE/D,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE;gBAC9C,MAAM;gBACN,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;YAEH,OAAO,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAc;QACzB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAClD,IAAI,MAAM,CAAC;QACX,IAAI,MAA0B,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;YAClC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC7D,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YAEzB,MAAM,MAAM,GAAoB;gBAC9B,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM;gBAC5B,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS;oBAC/C,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE;oBACpD,CAAC,CAAC,EAAE,CAAC;aACR,CAAC;YAEF,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,CACvC,MAAM,EACN,cAAc,CACZ,SAAS,CAAC,OAAO,CAAC,SAAS,EAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EACtC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CACpC,CACF,CAAC;YAEF,OAAO,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;YAE/D,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE;gBAC5C,MAAM;gBACN,MAAM;gBACN,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;YAEH,OAAO,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC9C,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAc;QACzB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAClD,IAAI,MAAM,CAAC;QACX,IAAI,MAA0B,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;YAClC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC7D,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YAEzB,MAAM,MAAM,GAAiB;gBAC3B,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM;aAC7B,CAAC;YAEF,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAU,CAC1C,MAAM,EACN,cAAc,CACZ,SAAS,CAAC,OAAO,CAAC,SAAS,EAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EACtC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CACpC,CACF,CAAC;YAEF,OAAO,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;YAE/D,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE;gBAC5C,MAAM;gBACN,MAAM;gBACN,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;YAEH,OAAO,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC9C,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACf,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,YAAY,CAC1B,UAAqC,EAAE;IAEvC,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import type { A2AOutboundPluginConfig } from "./config.js";
2
+ import { type ToolError } from "./errors.js";
3
+ import type { A2ATargetInput } from "./schemas.js";
4
+ import type { ResolvedTarget, SDKClientPool } from "./sdk-client-pool.js";
5
+ export interface TargetCatalogSkillSummary {
6
+ id: string;
7
+ name: string;
8
+ description: string;
9
+ tags: string[];
10
+ examples: string[];
11
+ }
12
+ export interface TargetCardCacheEntry {
13
+ displayName?: string;
14
+ description?: string;
15
+ skillSummaries: TargetCatalogSkillSummary[];
16
+ streamingSupported?: boolean;
17
+ preferredTransport?: string;
18
+ lastRefreshedAt?: string;
19
+ lastRefreshError?: ToolError;
20
+ }
21
+ export interface TargetCatalogEntry {
22
+ target: ResolvedTarget;
23
+ configuredDescription?: string;
24
+ default: boolean;
25
+ tags: string[];
26
+ examples: string[];
27
+ card: TargetCardCacheEntry;
28
+ }
29
+ export interface TargetCatalogOptions {
30
+ config: A2AOutboundPluginConfig;
31
+ clientPool: SDKClientPool;
32
+ }
33
+ export interface TargetCatalogHydrationOptions {
34
+ force?: boolean;
35
+ }
36
+ export declare class TargetCatalog {
37
+ private readonly config;
38
+ private readonly clientPool;
39
+ private readonly configuredEntries;
40
+ private readonly targetsByAlias;
41
+ private readonly targetsByNormalizedBaseUrl;
42
+ private readonly defaultTargetAlias;
43
+ private readonly cardCache;
44
+ private readonly cardRefreshes;
45
+ constructor(options: TargetCatalogOptions);
46
+ listEntries(): TargetCatalogEntry[];
47
+ getEntry(alias: string): TargetCatalogEntry | undefined;
48
+ resolveAlias(alias: string): ResolvedTarget;
49
+ resolveDefaultTarget(): ResolvedTarget | undefined;
50
+ resolveConfiguredRawTarget(target: A2ATargetInput): ResolvedTarget;
51
+ resolveRawTarget(target: A2ATargetInput): ResolvedTarget;
52
+ hydrateAllConfigured(options?: TargetCatalogHydrationOptions): Promise<TargetCatalogEntry[]>;
53
+ hydrateConfiguredTarget(alias: string, options?: TargetCatalogHydrationOptions): Promise<TargetCatalogEntry>;
54
+ hydrateResolvedTarget(target: ResolvedTarget, options?: TargetCatalogHydrationOptions): Promise<ResolvedTarget>;
55
+ private requireAlias;
56
+ private findConfiguredEntry;
57
+ private resolveConfiguredEntry;
58
+ private resolveMatchedRawTarget;
59
+ private toCatalogEntry;
60
+ private cardCacheSnapshot;
61
+ private applyCachedMetadata;
62
+ private loadCardMetadata;
63
+ private refreshCardMetadata;
64
+ }
65
+ export declare function createTargetCatalog(options: TargetCatalogOptions): TargetCatalog;
66
+ //# sourceMappingURL=target-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target-catalog.d.ts","sourceRoot":"","sources":["../src/target-catalog.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,yBAAyB,EAAE,CAAC;IAC5C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,SAAS,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,cAAc,CAAC;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,uBAAuB,CAAC;IAChC,UAAU,EAAE,aAAa,CAAC;CAC3B;AAED,MAAM,WAAW,6BAA6B;IAC5C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA4FD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IAEjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAE3C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmC;IAErE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAE5E,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAGzC;IAEF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IAExD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2C;IAErE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG1B;gBAEQ,OAAO,EAAE,oBAAoB;IAkDzC,WAAW,IAAI,kBAAkB,EAAE;IAInC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAMvD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc;IAI3C,oBAAoB,IAAI,cAAc,GAAG,SAAS;IAMlD,0BAA0B,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc;IAmBlE,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc;IA6BlD,oBAAoB,CACxB,OAAO,GAAE,6BAAkC,GAC1C,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAU1B,uBAAuB,CAC3B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,6BAAkC,GAC1C,OAAO,CAAC,kBAAkB,CAAC;IAMxB,qBAAqB,CACzB,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,6BAAkC,GAC1C,OAAO,CAAC,cAAc,CAAC;IAK1B,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,mBAAmB;YAkBb,gBAAgB;YA+BhB,mBAAmB;CAkDlC;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAEhF"}