@mono-agent/a2a-adapter 0.9.0 → 0.10.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.
- package/README.md +74 -1
- package/dist/card.d.ts +2 -0
- package/dist/card.d.ts.map +1 -1
- package/dist/card.js +15 -1
- package/dist/card.js.map +1 -1
- package/dist/channel-driver.d.ts.map +1 -1
- package/dist/channel-driver.js +25 -0
- package/dist/channel-driver.js.map +1 -1
- package/dist/config.d.ts +6 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +64 -0
- package/dist/config.js.map +1 -1
- package/dist/consumer.d.ts +56 -3
- package/dist/consumer.d.ts.map +1 -1
- package/dist/consumer.js +323 -19
- package/dist/consumer.js.map +1 -1
- package/dist/errors.d.ts +2 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/idempotency.d.ts +37 -0
- package/dist/idempotency.d.ts.map +1 -0
- package/dist/idempotency.js +1325 -0
- package/dist/idempotency.js.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/provider.d.ts +3 -0
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +22 -1
- package/dist/provider.js.map +1 -1
- package/package.json +2 -2
package/dist/consumer.js
CHANGED
|
@@ -1,32 +1,46 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import { Role, TaskState, } from "@a2a-js/sdk";
|
|
3
|
-
import { Client, ClientFactory, JsonRpcTransportFactory, RestTransportFactory, } from "@a2a-js/sdk/client";
|
|
3
|
+
import { Client, ClientFactory, JsonRpcTransportFactory, RestTransportFactory, ServiceParameters, withA2AExtensions, } from "@a2a-js/sdk/client";
|
|
4
4
|
import { A2AConsumerError } from "./errors.js";
|
|
5
|
+
import { A2A_IDEMPOTENCY_EXTENSION_URI, A2A_IDEMPOTENCY_METADATA_KEY, A2A_IDEMPOTENCY_SCHEMA_VERSION, a2aIdempotencyEnvelope, classifyA2AIdempotencyTransportError, stableA2AMessageId, } from "./idempotency.js";
|
|
5
6
|
export class A2AConsumer {
|
|
6
7
|
agentCard;
|
|
7
8
|
client;
|
|
8
9
|
agentUrl;
|
|
9
10
|
timeoutMs;
|
|
11
|
+
refreshConnection;
|
|
10
12
|
constructor(input) {
|
|
11
13
|
this.client = input.client;
|
|
12
14
|
this.agentCard = input.agentCard;
|
|
13
15
|
this.agentUrl = input.agentUrl;
|
|
14
16
|
this.timeoutMs = input.timeoutMs;
|
|
17
|
+
this.refreshConnection = input.refreshConnection;
|
|
15
18
|
}
|
|
16
19
|
async sendMessage(input) {
|
|
17
20
|
const request = buildSendMessageRequest(input);
|
|
18
21
|
const timeoutContext = signalWithTimeout(input.signal, input.timeoutMs ?? this.timeoutMs);
|
|
19
|
-
const options = timeoutContext.signal
|
|
20
|
-
? undefined
|
|
21
|
-
: { signal: timeoutContext.signal };
|
|
22
|
+
const options = requestOptionsFor(input, timeoutContext.signal);
|
|
22
23
|
try {
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
let agentCard = this.agentCard;
|
|
25
|
+
let client = this.client;
|
|
26
|
+
if (input.idempotencyKey !== undefined) {
|
|
27
|
+
if (this.refreshConnection !== undefined) {
|
|
28
|
+
const refreshed = await this.refreshConnection(timeoutContext.signal);
|
|
29
|
+
assertIdempotencySupported(refreshed.agentCard);
|
|
30
|
+
agentCard = refreshed.agentCard;
|
|
31
|
+
client = refreshed.client;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
assertIdempotencySupported(agentCard);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (input.stream === true && agentCard.capabilities?.streaming === true) {
|
|
38
|
+
return await this.sendStreaming(client, request, options);
|
|
25
39
|
}
|
|
26
|
-
const result = await
|
|
40
|
+
const result = await client.sendMessage(request, options);
|
|
27
41
|
return responseFromResult(result, {
|
|
28
42
|
agentUrl: this.agentUrl,
|
|
29
|
-
protocolVersion:
|
|
43
|
+
protocolVersion: client.protocolVersion,
|
|
30
44
|
allowPending: input.returnImmediately === true,
|
|
31
45
|
});
|
|
32
46
|
}
|
|
@@ -40,6 +54,30 @@ export class A2AConsumer {
|
|
|
40
54
|
timeoutContext.cleanup();
|
|
41
55
|
}
|
|
42
56
|
}
|
|
57
|
+
async dispatchMessage(input) {
|
|
58
|
+
if (typeof input.idempotencyKey !== "string") {
|
|
59
|
+
throw new A2AConsumerError("invalid_idempotency_key", "A2A dispatchMessage requires an idempotencyKey.", { field: "idempotencyKey" });
|
|
60
|
+
}
|
|
61
|
+
const request = cloneDispatchRequest(buildSendMessageRequest({
|
|
62
|
+
...input,
|
|
63
|
+
returnImmediately: true,
|
|
64
|
+
stream: false,
|
|
65
|
+
}));
|
|
66
|
+
const current = await this.sendDispatchProjection(request, {
|
|
67
|
+
returnImmediately: true,
|
|
68
|
+
...(input.signal === undefined ? {} : { signal: input.signal }),
|
|
69
|
+
...(input.timeoutMs === undefined ? {} : { timeoutMs: input.timeoutMs }),
|
|
70
|
+
});
|
|
71
|
+
return new A2AConsumerDispatchHandle({
|
|
72
|
+
current,
|
|
73
|
+
observe: async (options) => await this.sendDispatchProjection(request, {
|
|
74
|
+
returnImmediately: false,
|
|
75
|
+
...(options?.signal === undefined ? {} : { signal: options.signal }),
|
|
76
|
+
...(options?.timeoutMs === undefined ? {} : { timeoutMs: options.timeoutMs }),
|
|
77
|
+
}),
|
|
78
|
+
cancel: async (taskId, signal) => await this.cancelDispatchTask(taskId, signal),
|
|
79
|
+
});
|
|
80
|
+
}
|
|
43
81
|
async cancelTask(taskId, signal) {
|
|
44
82
|
const options = signal === undefined ? undefined : { signal };
|
|
45
83
|
try {
|
|
@@ -55,9 +93,59 @@ export class A2AConsumer {
|
|
|
55
93
|
throw normalizeConsumerError(error);
|
|
56
94
|
}
|
|
57
95
|
}
|
|
58
|
-
async
|
|
96
|
+
async sendDispatchProjection(request, projection) {
|
|
97
|
+
const timeoutContext = signalWithTimeout(projection.signal, projection.timeoutMs ?? this.timeoutMs);
|
|
98
|
+
const options = requestOptionsForIdempotency(true, timeoutContext.signal);
|
|
99
|
+
try {
|
|
100
|
+
let agentCard = this.agentCard;
|
|
101
|
+
let client = this.client;
|
|
102
|
+
if (this.refreshConnection !== undefined) {
|
|
103
|
+
const refreshed = await this.refreshConnection(timeoutContext.signal);
|
|
104
|
+
agentCard = refreshed.agentCard;
|
|
105
|
+
client = refreshed.client;
|
|
106
|
+
}
|
|
107
|
+
assertIdempotencySupported(agentCard);
|
|
108
|
+
const result = await client.sendMessage(projectSendMessageRequest(request, projection.returnImmediately), options);
|
|
109
|
+
return responseFromResult(result, {
|
|
110
|
+
agentUrl: this.agentUrl,
|
|
111
|
+
protocolVersion: client.protocolVersion,
|
|
112
|
+
allowPending: true,
|
|
113
|
+
allowTerminalFailures: true,
|
|
114
|
+
allowEmptyResponse: true,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
throw normalizeConsumerError(error, {
|
|
119
|
+
agentUrl: this.agentUrl,
|
|
120
|
+
timeoutContext,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
finally {
|
|
124
|
+
timeoutContext.cleanup();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
async cancelDispatchTask(taskId, signal) {
|
|
128
|
+
const options = signal === undefined ? undefined : { signal };
|
|
129
|
+
try {
|
|
130
|
+
const client = this.refreshConnection === undefined
|
|
131
|
+
? this.client
|
|
132
|
+
: (await this.refreshConnection(signal)).client;
|
|
133
|
+
const task = await client.cancelTask({ id: taskId, tenant: "", metadata: {} }, options);
|
|
134
|
+
return responseFromResult(task, {
|
|
135
|
+
agentUrl: this.agentUrl,
|
|
136
|
+
protocolVersion: client.protocolVersion,
|
|
137
|
+
allowPending: true,
|
|
138
|
+
allowTerminalFailures: true,
|
|
139
|
+
allowEmptyResponse: true,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
throw normalizeConsumerError(error);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
async sendStreaming(client, request, options) {
|
|
59
147
|
let latest;
|
|
60
|
-
for await (const event of
|
|
148
|
+
for await (const event of client.sendMessageStream(request, options)) {
|
|
61
149
|
latest = resultFromStreamEvent(event) ?? latest;
|
|
62
150
|
}
|
|
63
151
|
if (latest === undefined) {
|
|
@@ -65,7 +153,7 @@ export class A2AConsumer {
|
|
|
65
153
|
}
|
|
66
154
|
return responseFromResult(latest, {
|
|
67
155
|
agentUrl: this.agentUrl,
|
|
68
|
-
protocolVersion:
|
|
156
|
+
protocolVersion: client.protocolVersion,
|
|
69
157
|
allowPending: false,
|
|
70
158
|
});
|
|
71
159
|
}
|
|
@@ -91,6 +179,17 @@ export async function createA2AConsumer(options) {
|
|
|
91
179
|
client,
|
|
92
180
|
agentCard,
|
|
93
181
|
agentUrl: options.agentUrl,
|
|
182
|
+
refreshConnection: async (signal) => {
|
|
183
|
+
const refreshedCard = await discoverA2AAgent({
|
|
184
|
+
agentUrl: options.agentUrl,
|
|
185
|
+
fetchImpl,
|
|
186
|
+
...(signal === undefined ? {} : { signal }),
|
|
187
|
+
});
|
|
188
|
+
return {
|
|
189
|
+
agentCard: refreshedCard,
|
|
190
|
+
client: await factory.createFromAgentCard(refreshedCard),
|
|
191
|
+
};
|
|
192
|
+
},
|
|
94
193
|
...(options.timeoutMs === undefined ? {} : { timeoutMs: options.timeoutMs }),
|
|
95
194
|
});
|
|
96
195
|
}
|
|
@@ -99,7 +198,7 @@ export async function discoverA2AAgent(input) {
|
|
|
99
198
|
const cardUrl = agentCardUrlFor(input.agentUrl);
|
|
100
199
|
let response;
|
|
101
200
|
try {
|
|
102
|
-
response = await fetchImpl(cardUrl);
|
|
201
|
+
response = await fetchImpl(cardUrl, input.signal === undefined ? undefined : { signal: input.signal });
|
|
103
202
|
}
|
|
104
203
|
catch (error) {
|
|
105
204
|
throw new A2AConsumerError("discovery_failed", "Failed to fetch A2A Agent Card.", {
|
|
@@ -121,6 +220,17 @@ export async function sendA2AMessage(input) {
|
|
|
121
220
|
const consumer = await createA2AConsumer(input);
|
|
122
221
|
return await consumer.sendMessage(input);
|
|
123
222
|
}
|
|
223
|
+
export async function dispatchA2AMessage(input) {
|
|
224
|
+
const consumer = await createA2AConsumer({
|
|
225
|
+
agentUrl: input.agentUrl,
|
|
226
|
+
...(input.bearerToken === undefined ? {} : { bearerToken: input.bearerToken }),
|
|
227
|
+
...(input.fetchImpl === undefined ? {} : { fetchImpl: input.fetchImpl }),
|
|
228
|
+
...(input.preferredTransports === undefined
|
|
229
|
+
? {}
|
|
230
|
+
: { preferredTransports: input.preferredTransports }),
|
|
231
|
+
});
|
|
232
|
+
return await consumer.dispatchMessage(input);
|
|
233
|
+
}
|
|
124
234
|
export function createA2AConsumerResponder(options) {
|
|
125
235
|
let consumerPromise;
|
|
126
236
|
const getConsumer = () => {
|
|
@@ -130,9 +240,11 @@ export function createA2AConsumerResponder(options) {
|
|
|
130
240
|
return {
|
|
131
241
|
async respond(request, stream) {
|
|
132
242
|
const consumer = await getConsumer();
|
|
243
|
+
const idempotencyKey = options.idempotencyKeyForRequest?.(request);
|
|
133
244
|
const response = await consumer.sendMessage({
|
|
134
245
|
text: request.text,
|
|
135
246
|
contextId: request.conversationId,
|
|
247
|
+
...(idempotencyKey === undefined ? {} : { idempotencyKey }),
|
|
136
248
|
signal: request.abortSignal,
|
|
137
249
|
stream: options.streamRemote === true,
|
|
138
250
|
});
|
|
@@ -144,26 +256,55 @@ export function createA2AConsumerResponder(options) {
|
|
|
144
256
|
};
|
|
145
257
|
}
|
|
146
258
|
function buildSendMessageRequest(input) {
|
|
259
|
+
const idempotencyKey = normalizeConsumerIdempotencyKey(input.idempotencyKey);
|
|
147
260
|
const message = input.message ?? textMessage({
|
|
148
261
|
text: requireText(input.text),
|
|
149
262
|
contextId: input.contextId ?? "",
|
|
150
263
|
taskId: input.taskId ?? "",
|
|
264
|
+
...(idempotencyKey === undefined ? {} : { messageId: stableA2AMessageId(idempotencyKey) }),
|
|
151
265
|
});
|
|
266
|
+
const metadata = { ...(input.metadata ?? {}) };
|
|
267
|
+
if (idempotencyKey !== undefined) {
|
|
268
|
+
if (Object.prototype.hasOwnProperty.call(metadata, A2A_IDEMPOTENCY_METADATA_KEY)) {
|
|
269
|
+
throw new A2AConsumerError("invalid_idempotency_key", `A2A request metadata key ${A2A_IDEMPOTENCY_METADATA_KEY} is reserved; pass idempotencyKey instead.`);
|
|
270
|
+
}
|
|
271
|
+
metadata[A2A_IDEMPOTENCY_METADATA_KEY] = a2aIdempotencyEnvelope(idempotencyKey);
|
|
272
|
+
}
|
|
152
273
|
return {
|
|
153
274
|
tenant: "",
|
|
154
275
|
message,
|
|
155
276
|
configuration: {
|
|
156
277
|
acceptedOutputModes: ["text/plain"],
|
|
157
278
|
taskPushNotificationConfig: undefined,
|
|
158
|
-
historyLength:
|
|
279
|
+
historyLength: normalizeHistoryLength(input.historyLength),
|
|
159
280
|
returnImmediately: input.returnImmediately === true,
|
|
160
281
|
},
|
|
161
|
-
metadata
|
|
282
|
+
metadata,
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
function cloneDispatchRequest(request) {
|
|
286
|
+
try {
|
|
287
|
+
return structuredClone(request);
|
|
288
|
+
}
|
|
289
|
+
catch (error) {
|
|
290
|
+
throw new A2AConsumerError("send_failed", "A2A dispatch payload must be structured-cloneable so it can be observed safely.", { reason: error instanceof Error ? error.message : String(error) });
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
function projectSendMessageRequest(request, returnImmediately) {
|
|
294
|
+
if (request.configuration === undefined) {
|
|
295
|
+
throw new A2AConsumerError("send_failed", "A2A dispatch request is missing its response projection configuration.");
|
|
296
|
+
}
|
|
297
|
+
return {
|
|
298
|
+
...request,
|
|
299
|
+
configuration: {
|
|
300
|
+
...request.configuration,
|
|
301
|
+
returnImmediately,
|
|
302
|
+
},
|
|
162
303
|
};
|
|
163
304
|
}
|
|
164
305
|
function textMessage(input) {
|
|
165
306
|
return {
|
|
166
|
-
messageId: randomUUID(),
|
|
307
|
+
messageId: input.messageId ?? randomUUID(),
|
|
167
308
|
contextId: input.contextId,
|
|
168
309
|
taskId: input.taskId,
|
|
169
310
|
role: Role.ROLE_USER,
|
|
@@ -190,12 +331,17 @@ function requireText(text) {
|
|
|
190
331
|
}
|
|
191
332
|
function responseFromResult(result, context) {
|
|
192
333
|
if (isTask(result)) {
|
|
193
|
-
const failure =
|
|
334
|
+
const failure = context.allowTerminalFailures === true
|
|
335
|
+
? undefined
|
|
336
|
+
: failureForTask(result, context.allowCanceled === true);
|
|
194
337
|
if (failure !== undefined) {
|
|
195
338
|
throw failure;
|
|
196
339
|
}
|
|
197
340
|
const text = textFromTask(result);
|
|
198
|
-
if (text === undefined
|
|
341
|
+
if (text === undefined
|
|
342
|
+
&& context.allowEmptyResponse !== true
|
|
343
|
+
&& !context.allowPending
|
|
344
|
+
&& result.status?.state === TaskState.TASK_STATE_COMPLETED) {
|
|
199
345
|
throw new A2AConsumerError("empty_a2a_response", "Remote A2A task completed without text output.", { taskId: result.id });
|
|
200
346
|
}
|
|
201
347
|
return {
|
|
@@ -212,11 +358,11 @@ function responseFromResult(result, context) {
|
|
|
212
358
|
};
|
|
213
359
|
}
|
|
214
360
|
const text = textFromMessage(result);
|
|
215
|
-
if (text === undefined) {
|
|
361
|
+
if (text === undefined && context.allowEmptyResponse !== true) {
|
|
216
362
|
throw new A2AConsumerError("empty_a2a_response", "Remote A2A message did not contain text output.", { messageId: result.messageId });
|
|
217
363
|
}
|
|
218
364
|
return {
|
|
219
|
-
text,
|
|
365
|
+
...(text === undefined ? {} : { text }),
|
|
220
366
|
metadata: {
|
|
221
367
|
a2a: {
|
|
222
368
|
remoteAgentUrl: context.agentUrl,
|
|
@@ -277,6 +423,102 @@ function failureForTask(task, allowCanceled) {
|
|
|
277
423
|
}
|
|
278
424
|
return undefined;
|
|
279
425
|
}
|
|
426
|
+
class A2AConsumerDispatchHandle {
|
|
427
|
+
currentResponse;
|
|
428
|
+
observe;
|
|
429
|
+
cancelTask;
|
|
430
|
+
constructor(input) {
|
|
431
|
+
this.currentResponse = input.current;
|
|
432
|
+
this.observe = input.observe;
|
|
433
|
+
this.cancelTask = input.cancel;
|
|
434
|
+
}
|
|
435
|
+
get current() {
|
|
436
|
+
return this.currentResponse;
|
|
437
|
+
}
|
|
438
|
+
async observeTerminal(options) {
|
|
439
|
+
const currentOutcome = terminalOutcomeFromResponse(this.currentResponse);
|
|
440
|
+
if (currentOutcome !== undefined) {
|
|
441
|
+
return currentOutcome;
|
|
442
|
+
}
|
|
443
|
+
const response = await this.observe(options);
|
|
444
|
+
this.currentResponse = response;
|
|
445
|
+
return requireTerminalOutcome(response);
|
|
446
|
+
}
|
|
447
|
+
async cancel(options) {
|
|
448
|
+
const currentOutcome = terminalOutcomeFromResponse(this.currentResponse);
|
|
449
|
+
if (currentOutcome !== undefined) {
|
|
450
|
+
return currentOutcome;
|
|
451
|
+
}
|
|
452
|
+
const taskId = this.currentResponse.metadata.a2a.taskId;
|
|
453
|
+
if (taskId === undefined || taskId.length === 0) {
|
|
454
|
+
throw new A2AConsumerError("send_failed", "The admitted A2A dispatch has no task id and cannot be canceled.");
|
|
455
|
+
}
|
|
456
|
+
const response = await this.cancelTask(taskId, options?.signal);
|
|
457
|
+
this.currentResponse = response;
|
|
458
|
+
const canceledOutcome = terminalOutcomeFromResponse(response);
|
|
459
|
+
if (canceledOutcome !== undefined) {
|
|
460
|
+
return canceledOutcome;
|
|
461
|
+
}
|
|
462
|
+
return await this.observeTerminal(options?.signal === undefined ? undefined : { signal: options.signal });
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
function terminalOutcomeFromResponse(response) {
|
|
466
|
+
const state = response.metadata.a2a.state;
|
|
467
|
+
if (state === undefined) {
|
|
468
|
+
return response.metadata.a2a.messageId === undefined
|
|
469
|
+
? undefined
|
|
470
|
+
: { status: "completed", response };
|
|
471
|
+
}
|
|
472
|
+
if (state === "TASK_STATE_COMPLETED") {
|
|
473
|
+
return { status: "completed", response };
|
|
474
|
+
}
|
|
475
|
+
const terminalFailure = terminalFailureForState(state);
|
|
476
|
+
if (terminalFailure === undefined) {
|
|
477
|
+
return undefined;
|
|
478
|
+
}
|
|
479
|
+
return {
|
|
480
|
+
status: terminalFailure.status,
|
|
481
|
+
response,
|
|
482
|
+
error: new A2AConsumerError(terminalFailure.code, response.text ?? terminalFailure.message, {
|
|
483
|
+
...(response.metadata.a2a.taskId === undefined
|
|
484
|
+
? {}
|
|
485
|
+
: { taskId: response.metadata.a2a.taskId }),
|
|
486
|
+
state,
|
|
487
|
+
}),
|
|
488
|
+
};
|
|
489
|
+
}
|
|
490
|
+
function requireTerminalOutcome(response) {
|
|
491
|
+
const outcome = terminalOutcomeFromResponse(response);
|
|
492
|
+
if (outcome !== undefined) {
|
|
493
|
+
return outcome;
|
|
494
|
+
}
|
|
495
|
+
throw new A2AConsumerError("send_failed", "A2A terminal observation returned a non-terminal response.", {
|
|
496
|
+
...(response.metadata.a2a.taskId === undefined
|
|
497
|
+
? {}
|
|
498
|
+
: { taskId: response.metadata.a2a.taskId }),
|
|
499
|
+
...(response.metadata.a2a.state === undefined
|
|
500
|
+
? {}
|
|
501
|
+
: { state: response.metadata.a2a.state }),
|
|
502
|
+
});
|
|
503
|
+
}
|
|
504
|
+
function terminalFailureForState(state) {
|
|
505
|
+
if (state === "TASK_STATE_FAILED") {
|
|
506
|
+
return { status: "failed", code: "remote_failed", message: "Remote A2A task failed." };
|
|
507
|
+
}
|
|
508
|
+
if (state === "TASK_STATE_CANCELED") {
|
|
509
|
+
return { status: "canceled", code: "remote_canceled", message: "Remote A2A task was canceled." };
|
|
510
|
+
}
|
|
511
|
+
if (state === "TASK_STATE_REJECTED") {
|
|
512
|
+
return { status: "rejected", code: "remote_rejected", message: "Remote A2A task was rejected." };
|
|
513
|
+
}
|
|
514
|
+
if (state === "TASK_STATE_AUTH_REQUIRED") {
|
|
515
|
+
return { status: "auth_required", code: "remote_auth_required", message: "Remote A2A task requires authentication." };
|
|
516
|
+
}
|
|
517
|
+
if (state === "TASK_STATE_INPUT_REQUIRED") {
|
|
518
|
+
return { status: "input_required", code: "remote_input_required", message: "Remote A2A task requires input." };
|
|
519
|
+
}
|
|
520
|
+
return undefined;
|
|
521
|
+
}
|
|
280
522
|
function resultFromStreamEvent(event) {
|
|
281
523
|
if (event.payload?.$case === "message" || event.payload?.$case === "task") {
|
|
282
524
|
return event.payload.value;
|
|
@@ -319,11 +561,73 @@ function normalizeConsumerError(error, context = {}) {
|
|
|
319
561
|
return error;
|
|
320
562
|
}
|
|
321
563
|
const reason = error instanceof Error ? error.message : String(error);
|
|
564
|
+
const idempotencyFailure = classifyA2AIdempotencyTransportError(reason);
|
|
565
|
+
if (idempotencyFailure === "capacity_exhausted") {
|
|
566
|
+
return new A2AConsumerError("idempotency_capacity_exhausted", "The A2A provider's durable idempotency admission capacity is exhausted; automatic execution was refused.", { reason });
|
|
567
|
+
}
|
|
568
|
+
if (idempotencyFailure === "conflict") {
|
|
569
|
+
return new A2AConsumerError("idempotency_conflict", "The A2A idempotency key is already bound to a different canonical request.", { reason });
|
|
570
|
+
}
|
|
571
|
+
if (idempotencyFailure === "in_doubt") {
|
|
572
|
+
return new A2AConsumerError("idempotency_in_doubt", "The A2A provider has a non-terminal durable admission from a prior process and refuses automatic re-execution.", { reason });
|
|
573
|
+
}
|
|
574
|
+
if (idempotencyFailure === "result_expired") {
|
|
575
|
+
return new A2AConsumerError("idempotency_result_expired", "The A2A provider compacted the terminal result after retention; the logical key remains bound and was not re-executed.", { reason });
|
|
576
|
+
}
|
|
577
|
+
if (idempotencyFailure === "unsupported") {
|
|
578
|
+
return new A2AConsumerError("idempotency_unsupported", "The A2A provider refused the reserved key envelope because durable idempotency is not configured.", { reason });
|
|
579
|
+
}
|
|
580
|
+
if (idempotencyFailure === "invalid_key") {
|
|
581
|
+
return new A2AConsumerError("invalid_idempotency_key", "The A2A idempotency key was rejected by the provider.", { reason });
|
|
582
|
+
}
|
|
322
583
|
if (/\b(401|403|UNAUTHENTICATED|Unauthorized|auth)/iu.test(reason)) {
|
|
323
584
|
return new A2AConsumerError("remote_auth_required", "Remote A2A agent requires authentication.", { reason });
|
|
324
585
|
}
|
|
325
586
|
return new A2AConsumerError("send_failed", "A2A message send failed.", { reason });
|
|
326
587
|
}
|
|
588
|
+
function normalizeConsumerIdempotencyKey(value) {
|
|
589
|
+
if (value === undefined) {
|
|
590
|
+
return undefined;
|
|
591
|
+
}
|
|
592
|
+
try {
|
|
593
|
+
return a2aIdempotencyEnvelope(value).key;
|
|
594
|
+
}
|
|
595
|
+
catch {
|
|
596
|
+
throw new A2AConsumerError("invalid_idempotency_key", "A2A idempotencyKey must be 1-200 ASCII letters, digits, or . _ : @ - and start with a letter or digit.", { field: "idempotencyKey" });
|
|
597
|
+
}
|
|
598
|
+
}
|
|
599
|
+
function normalizeHistoryLength(value) {
|
|
600
|
+
const historyLength = value ?? 10;
|
|
601
|
+
if (!Number.isSafeInteger(historyLength) || historyLength < 0) {
|
|
602
|
+
throw new A2AConsumerError("send_failed", "A2A historyLength must be a non-negative safe integer.", { field: "historyLength" });
|
|
603
|
+
}
|
|
604
|
+
return historyLength;
|
|
605
|
+
}
|
|
606
|
+
function requestOptionsFor(input, signal) {
|
|
607
|
+
return requestOptionsForIdempotency(input.idempotencyKey !== undefined, signal);
|
|
608
|
+
}
|
|
609
|
+
function requestOptionsForIdempotency(keyed, signal) {
|
|
610
|
+
const serviceParameters = !keyed
|
|
611
|
+
? undefined
|
|
612
|
+
: ServiceParameters.create(withA2AExtensions(A2A_IDEMPOTENCY_EXTENSION_URI));
|
|
613
|
+
if (signal === undefined && serviceParameters === undefined) {
|
|
614
|
+
return undefined;
|
|
615
|
+
}
|
|
616
|
+
return {
|
|
617
|
+
...(signal === undefined ? {} : { signal }),
|
|
618
|
+
...(serviceParameters === undefined ? {} : { serviceParameters }),
|
|
619
|
+
};
|
|
620
|
+
}
|
|
621
|
+
function assertIdempotencySupported(card) {
|
|
622
|
+
const extensions = card.capabilities?.extensions;
|
|
623
|
+
const extension = Array.isArray(extensions)
|
|
624
|
+
? extensions.find((candidate) => isRecord(candidate) && candidate.uri === A2A_IDEMPOTENCY_EXTENSION_URI)
|
|
625
|
+
: undefined;
|
|
626
|
+
if (extension?.params?.schemaVersion !== A2A_IDEMPOTENCY_SCHEMA_VERSION
|
|
627
|
+
|| extension.params.metadataKey !== A2A_IDEMPOTENCY_METADATA_KEY) {
|
|
628
|
+
throw new A2AConsumerError("idempotency_unsupported", "Remote A2A Agent Card does not advertise the mono-agent logical dispatch idempotency extension; refusing a keyed send.", { extensionUri: A2A_IDEMPOTENCY_EXTENSION_URI });
|
|
629
|
+
}
|
|
630
|
+
}
|
|
327
631
|
function assertAgentCard(card, agentUrl) {
|
|
328
632
|
if (!isRecord(card) || typeof card.name !== "string" || !Array.isArray(card.supportedInterfaces)) {
|
|
329
633
|
throw new A2AConsumerError("invalid_agent_card", "A2A discovery returned an invalid Agent Card.", {
|
package/dist/consumer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consumer.js","sourceRoot":"","sources":["../src/consumer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"consumer.js","sourceRoot":"","sources":["../src/consumer.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type A2AProviderErrorCode = "invalid_config" | "missing_required_config" | "start_failed" | "unsupported_input" | "unsafe_host";
|
|
1
|
+
export type A2AProviderErrorCode = "idempotency_store_error" | "invalid_config" | "invalid_idempotency_key" | "missing_required_config" | "start_failed" | "unsupported_input" | "unsafe_host";
|
|
2
2
|
export interface A2AProviderErrorDetails {
|
|
3
3
|
readonly code?: A2AProviderErrorCode;
|
|
4
4
|
readonly reason?: string;
|
|
@@ -9,7 +9,7 @@ export declare class A2AProviderError extends Error {
|
|
|
9
9
|
readonly details: A2AProviderErrorDetails;
|
|
10
10
|
constructor(code: A2AProviderErrorCode, message: string, details?: A2AProviderErrorDetails);
|
|
11
11
|
}
|
|
12
|
-
export type A2AConsumerErrorCode = "discovery_failed" | "empty_a2a_response" | "invalid_agent_card" | "remote_auth_required" | "remote_canceled" | "remote_failed" | "remote_input_required" | "remote_rejected" | "send_failed" | "timeout";
|
|
12
|
+
export type A2AConsumerErrorCode = "discovery_failed" | "empty_a2a_response" | "idempotency_conflict" | "idempotency_capacity_exhausted" | "idempotency_in_doubt" | "idempotency_result_expired" | "idempotency_unsupported" | "invalid_agent_card" | "invalid_idempotency_key" | "remote_auth_required" | "remote_canceled" | "remote_failed" | "remote_input_required" | "remote_rejected" | "send_failed" | "timeout";
|
|
13
13
|
export interface A2AConsumerErrorDetails {
|
|
14
14
|
readonly code?: A2AConsumerErrorCode;
|
|
15
15
|
readonly reason?: string;
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAC5B,gBAAgB,GAChB,yBAAyB,GACzB,cAAc,GACd,mBAAmB,GACnB,aAAa,CAAC;AAElB,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;gBAGxC,IAAI,EAAE,oBAAoB,EAC1B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,uBAA4B;CAOxC;AAED,MAAM,MAAM,oBAAoB,GAC5B,kBAAkB,GAClB,oBAAoB,GACpB,oBAAoB,GACpB,sBAAsB,GACtB,iBAAiB,GACjB,eAAe,GACf,uBAAuB,GACvB,iBAAiB,GACjB,aAAa,GACb,SAAS,CAAC;AAEd,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;gBAGxC,IAAI,EAAE,oBAAoB,EAC1B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,uBAA4B;CAOxC"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAC5B,yBAAyB,GACzB,gBAAgB,GAChB,yBAAyB,GACzB,yBAAyB,GACzB,cAAc,GACd,mBAAmB,GACnB,aAAa,CAAC;AAElB,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;gBAGxC,IAAI,EAAE,oBAAoB,EAC1B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,uBAA4B;CAOxC;AAED,MAAM,MAAM,oBAAoB,GAC5B,kBAAkB,GAClB,oBAAoB,GACpB,sBAAsB,GACtB,gCAAgC,GAChC,sBAAsB,GACtB,4BAA4B,GAC5B,yBAAyB,GACzB,oBAAoB,GACpB,yBAAyB,GACzB,sBAAsB,GACtB,iBAAiB,GACjB,eAAe,GACf,uBAAuB,GACvB,iBAAiB,GACjB,aAAa,GACb,SAAS,CAAC;AAEd,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;gBAGxC,IAAI,EAAE,oBAAoB,EAC1B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,uBAA4B;CAOxC"}
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAeA,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAChC,IAAI,CAAuB;IAC3B,OAAO,CAA0B;IAE1C,YACE,IAA0B,EAC1B,OAAe,EACf,UAAmC,EAAE;QAErC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC;IACtC,CAAC;CACF;AA0BD,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAChC,IAAI,CAAuB;IAC3B,OAAO,CAA0B;IAE1C,YACE,IAA0B,EAC1B,OAAe,EACf,UAAmC,EAAE;QAErC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC;IACtC,CAAC;CACF"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type A2ARequestHandler, type TaskStore } from "@a2a-js/sdk/server";
|
|
2
|
+
export declare const A2A_IDEMPOTENCY_METADATA_KEY = "mono-agent.dev/a2a-idempotency/v1";
|
|
3
|
+
export declare const A2A_IDEMPOTENCY_SCHEMA_VERSION = 1;
|
|
4
|
+
export declare const A2A_IDEMPOTENCY_EXTENSION_URI = "https://mono-agent.dev/extensions/a2a-idempotency/v1";
|
|
5
|
+
export interface A2AProviderIdempotencyOptions {
|
|
6
|
+
/** Owner-only durable record directory. */
|
|
7
|
+
readonly stateDir: string;
|
|
8
|
+
/** Stable provider/principal identity; never derive it from URLs or secrets. */
|
|
9
|
+
readonly namespace: string;
|
|
10
|
+
/** Terminal receipt retention. Must exceed every caller retry horizon. */
|
|
11
|
+
readonly retentionMs?: number;
|
|
12
|
+
/** Hard admission capacity; exhaustion fails closed without eviction. */
|
|
13
|
+
readonly maxRecords?: number;
|
|
14
|
+
}
|
|
15
|
+
export type A2AIdempotencyFailureKind = "capacity_exhausted" | "conflict" | "in_doubt" | "invalid_key" | "result_expired" | "unsupported";
|
|
16
|
+
interface IdempotencyEnvelope {
|
|
17
|
+
readonly schemaVersion: 1;
|
|
18
|
+
readonly key: string;
|
|
19
|
+
}
|
|
20
|
+
export declare function createIdempotentA2ARequestHandler(input: {
|
|
21
|
+
readonly delegate: A2ARequestHandler;
|
|
22
|
+
readonly taskStore: TaskStore;
|
|
23
|
+
readonly options: A2AProviderIdempotencyOptions;
|
|
24
|
+
readonly logger?: {
|
|
25
|
+
warn?(message: string, metadata?: Record<string, unknown>): void;
|
|
26
|
+
error?(message: string, metadata?: Record<string, unknown>): void;
|
|
27
|
+
};
|
|
28
|
+
}): Promise<A2ARequestHandler>;
|
|
29
|
+
export declare function validateA2AProviderIdempotencyOptions(options: A2AProviderIdempotencyOptions): void;
|
|
30
|
+
export declare function guardUnsupportedA2AIdempotency(delegate: A2ARequestHandler): A2ARequestHandler;
|
|
31
|
+
export declare function normalizeA2AIdempotencyKey(value: string): string;
|
|
32
|
+
export declare function a2aIdempotencyEnvelope(key: string): IdempotencyEnvelope;
|
|
33
|
+
export declare function stableA2AMessageId(key: string): string;
|
|
34
|
+
export declare function defaultA2AIdempotencyStateDir(cwd: string, namespace: string): string;
|
|
35
|
+
export declare function classifyA2AIdempotencyTransportError(reason: string): A2AIdempotencyFailureKind | undefined;
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=idempotency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idempotency.d.ts","sourceRoot":"","sources":["../src/idempotency.ts"],"names":[],"mappings":"AAwBA,OAAO,EAEL,KAAK,iBAAiB,EAEtB,KAAK,SAAS,EACf,MAAM,oBAAoB,CAAC;AAI5B,eAAO,MAAM,4BAA4B,sCAAsC,CAAC;AAChF,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAChD,eAAO,MAAM,6BAA6B,yDAAyD,CAAC;AAmBpG,MAAM,WAAW,6BAA6B;IAC5C,2CAA2C;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,0EAA0E;IAC1E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,MAAM,yBAAyB,GACjC,oBAAoB,GACpB,UAAU,GACV,UAAU,GACV,aAAa,GACb,gBAAgB,GAChB,aAAa,CAAC;AAElB,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAqED,wBAAsB,iCAAiC,CAAC,KAAK,EAAE;IAC7D,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,6BAA6B,CAAC;IAChD,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;QACjE,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;KACnE,CAAC;CACH,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAa7B;AAED,wBAAgB,qCAAqC,CACnD,OAAO,EAAE,6BAA6B,GACrC,IAAI,CAWN;AAED,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,iBAAiB,GAC1B,iBAAiB,CAEnB;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUhE;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAKvE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAIpF;AAED,wBAAgB,oCAAoC,CAAC,MAAM,EAAE,MAAM,GAAG,yBAAyB,GAAG,SAAS,CAuB1G"}
|