@mono-agent/a2a-adapter 0.1.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.
@@ -0,0 +1,61 @@
1
+ import { type AgentCard, type Message } from "@a2a-js/sdk";
2
+ import { Client } from "@a2a-js/sdk/client";
3
+ import type { AgentMessageStream, AgentRequestBase, AgentResponder, AgentResponse } from "@mono-agent/agent-contracts";
4
+ export interface A2AConsumerOptions {
5
+ readonly agentUrl: string;
6
+ readonly bearerToken?: string;
7
+ readonly timeoutMs?: number;
8
+ readonly fetchImpl?: typeof fetch;
9
+ readonly preferredTransports?: readonly ("HTTP+JSON" | "JSONRPC")[];
10
+ }
11
+ export interface A2AConsumerSendMessageInput {
12
+ readonly text?: string;
13
+ readonly message?: Message;
14
+ readonly contextId?: string;
15
+ readonly taskId?: string;
16
+ readonly returnImmediately?: boolean;
17
+ readonly stream?: boolean;
18
+ readonly metadata?: Record<string, unknown>;
19
+ readonly signal?: AbortSignal;
20
+ readonly timeoutMs?: number;
21
+ }
22
+ export interface A2AConsumerResponseMetadata {
23
+ readonly a2a: {
24
+ readonly remoteAgentUrl: string;
25
+ readonly protocolVersion: string;
26
+ readonly messageId?: string;
27
+ readonly taskId?: string;
28
+ readonly contextId?: string;
29
+ readonly state?: string;
30
+ };
31
+ readonly [key: string]: unknown;
32
+ }
33
+ export interface A2AConsumerResponse extends AgentResponse {
34
+ readonly text?: string;
35
+ readonly metadata: A2AConsumerResponseMetadata;
36
+ }
37
+ export declare class A2AConsumer {
38
+ readonly agentCard: AgentCard;
39
+ private readonly client;
40
+ private readonly agentUrl;
41
+ private readonly timeoutMs;
42
+ constructor(input: {
43
+ readonly client: Client;
44
+ readonly agentCard: AgentCard;
45
+ readonly agentUrl: string;
46
+ readonly timeoutMs?: number;
47
+ });
48
+ sendMessage(input: A2AConsumerSendMessageInput): Promise<A2AConsumerResponse>;
49
+ cancelTask(taskId: string, signal?: AbortSignal): Promise<A2AConsumerResponse>;
50
+ private sendStreaming;
51
+ }
52
+ export declare function createA2AConsumer(options: A2AConsumerOptions): Promise<A2AConsumer>;
53
+ export declare function discoverA2AAgent(input: {
54
+ readonly agentUrl: string;
55
+ readonly fetchImpl?: typeof fetch;
56
+ }): Promise<AgentCard>;
57
+ export declare function sendA2AMessage(input: A2AConsumerOptions & A2AConsumerSendMessageInput): Promise<A2AConsumerResponse>;
58
+ export declare function createA2AConsumerResponder(options: A2AConsumerOptions & {
59
+ readonly streamRemote?: boolean;
60
+ }): AgentResponder<AgentRequestBase, AgentMessageStream, AgentResponse>;
61
+ //# sourceMappingURL=consumer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer.d.ts","sourceRoot":"","sources":["../src/consumer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,410 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { Role, TaskState, } from "@a2a-js/sdk";
3
+ import { Client, ClientFactory, JsonRpcTransportFactory, RestTransportFactory, } from "@a2a-js/sdk/client";
4
+ import { A2AConsumerError } from "./errors.js";
5
+ export class A2AConsumer {
6
+ agentCard;
7
+ client;
8
+ agentUrl;
9
+ timeoutMs;
10
+ constructor(input) {
11
+ this.client = input.client;
12
+ this.agentCard = input.agentCard;
13
+ this.agentUrl = input.agentUrl;
14
+ this.timeoutMs = input.timeoutMs;
15
+ }
16
+ async sendMessage(input) {
17
+ const request = buildSendMessageRequest(input);
18
+ const timeoutContext = signalWithTimeout(input.signal, input.timeoutMs ?? this.timeoutMs);
19
+ const options = timeoutContext.signal === undefined
20
+ ? undefined
21
+ : { signal: timeoutContext.signal };
22
+ try {
23
+ if (input.stream === true && this.agentCard.capabilities?.streaming === true) {
24
+ return await this.sendStreaming(request, options);
25
+ }
26
+ const result = await this.client.sendMessage(request, options);
27
+ return responseFromResult(result, {
28
+ agentUrl: this.agentUrl,
29
+ protocolVersion: this.client.protocolVersion,
30
+ allowPending: input.returnImmediately === true,
31
+ });
32
+ }
33
+ catch (error) {
34
+ throw normalizeConsumerError(error, {
35
+ agentUrl: this.agentUrl,
36
+ timeoutContext,
37
+ });
38
+ }
39
+ finally {
40
+ timeoutContext.cleanup();
41
+ }
42
+ }
43
+ async cancelTask(taskId, signal) {
44
+ const options = signal === undefined ? undefined : { signal };
45
+ try {
46
+ const task = await this.client.cancelTask({ id: taskId, tenant: "", metadata: {} }, options);
47
+ return responseFromResult(task, {
48
+ agentUrl: this.agentUrl,
49
+ protocolVersion: this.client.protocolVersion,
50
+ allowPending: true,
51
+ allowCanceled: true,
52
+ });
53
+ }
54
+ catch (error) {
55
+ throw normalizeConsumerError(error);
56
+ }
57
+ }
58
+ async sendStreaming(request, options) {
59
+ let latest;
60
+ for await (const event of this.client.sendMessageStream(request, options)) {
61
+ latest = resultFromStreamEvent(event) ?? latest;
62
+ }
63
+ if (latest === undefined) {
64
+ throw new A2AConsumerError("empty_a2a_response", "Remote A2A stream ended without a message or task.");
65
+ }
66
+ return responseFromResult(latest, {
67
+ agentUrl: this.agentUrl,
68
+ protocolVersion: this.client.protocolVersion,
69
+ allowPending: false,
70
+ });
71
+ }
72
+ }
73
+ export async function createA2AConsumer(options) {
74
+ const fetchImpl = bearerFetch(options.fetchImpl ?? fetch, options.bearerToken);
75
+ const agentCard = await discoverA2AAgent({
76
+ agentUrl: options.agentUrl,
77
+ fetchImpl,
78
+ });
79
+ const factory = new ClientFactory({
80
+ transports: [
81
+ new RestTransportFactory({ fetchImpl }),
82
+ new JsonRpcTransportFactory({ fetchImpl }),
83
+ ],
84
+ preferredTransports: [...(options.preferredTransports ?? ["HTTP+JSON", "JSONRPC"])],
85
+ clientConfig: {
86
+ acceptedOutputModes: ["text/plain"],
87
+ },
88
+ });
89
+ const client = await factory.createFromAgentCard(agentCard);
90
+ return new A2AConsumer({
91
+ client,
92
+ agentCard,
93
+ agentUrl: options.agentUrl,
94
+ ...(options.timeoutMs === undefined ? {} : { timeoutMs: options.timeoutMs }),
95
+ });
96
+ }
97
+ export async function discoverA2AAgent(input) {
98
+ const fetchImpl = input.fetchImpl ?? fetch;
99
+ const cardUrl = agentCardUrlFor(input.agentUrl);
100
+ let response;
101
+ try {
102
+ response = await fetchImpl(cardUrl);
103
+ }
104
+ catch (error) {
105
+ throw new A2AConsumerError("discovery_failed", "Failed to fetch A2A Agent Card.", {
106
+ reason: error instanceof Error ? error.message : String(error),
107
+ agentUrl: input.agentUrl,
108
+ });
109
+ }
110
+ if (!response.ok) {
111
+ throw new A2AConsumerError("discovery_failed", "Failed to fetch A2A Agent Card.", {
112
+ status: response.status,
113
+ agentUrl: input.agentUrl,
114
+ });
115
+ }
116
+ const card = await response.json();
117
+ assertAgentCard(card, input.agentUrl);
118
+ return card;
119
+ }
120
+ export async function sendA2AMessage(input) {
121
+ const consumer = await createA2AConsumer(input);
122
+ return await consumer.sendMessage(input);
123
+ }
124
+ export function createA2AConsumerResponder(options) {
125
+ let consumerPromise;
126
+ const getConsumer = () => {
127
+ consumerPromise ??= createA2AConsumer(options);
128
+ return consumerPromise;
129
+ };
130
+ return {
131
+ async respond(request, stream) {
132
+ const consumer = await getConsumer();
133
+ const response = await consumer.sendMessage({
134
+ text: request.text,
135
+ contextId: request.conversationId,
136
+ signal: request.abortSignal,
137
+ stream: options.streamRemote === true,
138
+ });
139
+ if (response.text !== undefined) {
140
+ await stream.append(response.text);
141
+ }
142
+ return response;
143
+ },
144
+ };
145
+ }
146
+ function buildSendMessageRequest(input) {
147
+ const message = input.message ?? textMessage({
148
+ text: requireText(input.text),
149
+ contextId: input.contextId ?? "",
150
+ taskId: input.taskId ?? "",
151
+ });
152
+ return {
153
+ tenant: "",
154
+ message,
155
+ configuration: {
156
+ acceptedOutputModes: ["text/plain"],
157
+ taskPushNotificationConfig: undefined,
158
+ historyLength: 10,
159
+ returnImmediately: input.returnImmediately === true,
160
+ },
161
+ metadata: input.metadata ?? {},
162
+ };
163
+ }
164
+ function textMessage(input) {
165
+ return {
166
+ messageId: randomUUID(),
167
+ contextId: input.contextId,
168
+ taskId: input.taskId,
169
+ role: Role.ROLE_USER,
170
+ parts: [textPart(input.text)],
171
+ metadata: {},
172
+ extensions: [],
173
+ referenceTaskIds: [],
174
+ };
175
+ }
176
+ function textPart(text) {
177
+ return {
178
+ content: { $case: "text", value: text },
179
+ mediaType: "text/plain",
180
+ filename: "",
181
+ metadata: {},
182
+ };
183
+ }
184
+ function requireText(text) {
185
+ const normalized = text?.trim();
186
+ if (normalized === undefined || normalized.length === 0) {
187
+ throw new A2AConsumerError("send_failed", "A2A consumer requires non-empty text.");
188
+ }
189
+ return normalized;
190
+ }
191
+ function responseFromResult(result, context) {
192
+ if (isTask(result)) {
193
+ const failure = failureForTask(result, context.allowCanceled === true);
194
+ if (failure !== undefined) {
195
+ throw failure;
196
+ }
197
+ const text = textFromTask(result);
198
+ if (text === undefined && !context.allowPending && result.status?.state === TaskState.TASK_STATE_COMPLETED) {
199
+ throw new A2AConsumerError("empty_a2a_response", "Remote A2A task completed without text output.", { taskId: result.id });
200
+ }
201
+ return {
202
+ ...(text === undefined ? {} : { text }),
203
+ metadata: {
204
+ a2a: {
205
+ remoteAgentUrl: context.agentUrl,
206
+ protocolVersion: context.protocolVersion,
207
+ taskId: result.id,
208
+ contextId: result.contextId,
209
+ ...(result.status?.state === undefined ? {} : { state: TaskState[result.status.state] }),
210
+ },
211
+ },
212
+ };
213
+ }
214
+ const text = textFromMessage(result);
215
+ if (text === undefined) {
216
+ throw new A2AConsumerError("empty_a2a_response", "Remote A2A message did not contain text output.", { messageId: result.messageId });
217
+ }
218
+ return {
219
+ text,
220
+ metadata: {
221
+ a2a: {
222
+ remoteAgentUrl: context.agentUrl,
223
+ protocolVersion: context.protocolVersion,
224
+ messageId: result.messageId,
225
+ contextId: result.contextId,
226
+ taskId: result.taskId,
227
+ },
228
+ },
229
+ };
230
+ }
231
+ function textFromTask(task) {
232
+ return textFromMessage(task.status?.message) ?? textFromArtifacts(task);
233
+ }
234
+ function textFromArtifacts(task) {
235
+ const texts = task.artifacts.flatMap((artifact) => textFromParts(artifact.parts));
236
+ return joinedText(texts);
237
+ }
238
+ function textFromMessage(message) {
239
+ if (message === undefined) {
240
+ return undefined;
241
+ }
242
+ return joinedText(textFromParts(message.parts));
243
+ }
244
+ function textFromParts(parts) {
245
+ return parts.flatMap((part) => {
246
+ if (part.content?.$case === "text") {
247
+ const text = part.content.value.trim();
248
+ return text.length === 0 ? [] : [text];
249
+ }
250
+ return [];
251
+ });
252
+ }
253
+ function joinedText(texts) {
254
+ if (texts.length === 0) {
255
+ return undefined;
256
+ }
257
+ const text = texts.join("\n").trim();
258
+ return text.length === 0 ? undefined : text;
259
+ }
260
+ function failureForTask(task, allowCanceled) {
261
+ const state = task.status?.state;
262
+ const text = textFromMessage(task.status?.message);
263
+ if (state === TaskState.TASK_STATE_FAILED) {
264
+ return new A2AConsumerError("remote_failed", text ?? "Remote A2A task failed.", { taskId: task.id });
265
+ }
266
+ if (state === TaskState.TASK_STATE_CANCELED && !allowCanceled) {
267
+ return new A2AConsumerError("remote_canceled", text ?? "Remote A2A task was canceled.", { taskId: task.id });
268
+ }
269
+ if (state === TaskState.TASK_STATE_REJECTED) {
270
+ return new A2AConsumerError("remote_rejected", text ?? "Remote A2A task was rejected.", { taskId: task.id });
271
+ }
272
+ if (state === TaskState.TASK_STATE_AUTH_REQUIRED) {
273
+ return new A2AConsumerError("remote_auth_required", text ?? "Remote A2A task requires authentication.", { taskId: task.id });
274
+ }
275
+ if (state === TaskState.TASK_STATE_INPUT_REQUIRED) {
276
+ return new A2AConsumerError("remote_input_required", text ?? "Remote A2A task requires input.", { taskId: task.id });
277
+ }
278
+ return undefined;
279
+ }
280
+ function resultFromStreamEvent(event) {
281
+ if (event.payload?.$case === "message" || event.payload?.$case === "task") {
282
+ return event.payload.value;
283
+ }
284
+ if (event.payload?.$case === "statusUpdate") {
285
+ return {
286
+ id: event.payload.value.taskId,
287
+ contextId: event.payload.value.contextId,
288
+ status: event.payload.value.status,
289
+ artifacts: [],
290
+ history: [],
291
+ metadata: {},
292
+ };
293
+ }
294
+ if (event.payload?.$case === "artifactUpdate") {
295
+ return {
296
+ id: event.payload.value.taskId,
297
+ contextId: event.payload.value.contextId,
298
+ status: undefined,
299
+ artifacts: event.payload.value.artifact === undefined ? [] : [event.payload.value.artifact],
300
+ history: [],
301
+ metadata: {},
302
+ };
303
+ }
304
+ return undefined;
305
+ }
306
+ function isTask(result) {
307
+ return "status" in result;
308
+ }
309
+ function normalizeConsumerError(error, context = {}) {
310
+ if (context.timeoutContext?.timedOut() === true) {
311
+ const timeoutMs = context.timeoutContext.timeoutMs;
312
+ return new A2AConsumerError("timeout", timeoutMessage(timeoutMs), {
313
+ timeoutMs,
314
+ ...(context.agentUrl === undefined ? {} : { agentUrl: context.agentUrl }),
315
+ reason: error instanceof Error ? error.message : String(error),
316
+ });
317
+ }
318
+ if (error instanceof A2AConsumerError) {
319
+ return error;
320
+ }
321
+ const reason = error instanceof Error ? error.message : String(error);
322
+ if (/\b(401|403|UNAUTHENTICATED|Unauthorized|auth)/iu.test(reason)) {
323
+ return new A2AConsumerError("remote_auth_required", "Remote A2A agent requires authentication.", { reason });
324
+ }
325
+ return new A2AConsumerError("send_failed", "A2A message send failed.", { reason });
326
+ }
327
+ function assertAgentCard(card, agentUrl) {
328
+ if (!isRecord(card) || typeof card.name !== "string" || !Array.isArray(card.supportedInterfaces)) {
329
+ throw new A2AConsumerError("invalid_agent_card", "A2A discovery returned an invalid Agent Card.", {
330
+ agentUrl,
331
+ });
332
+ }
333
+ }
334
+ function agentCardUrlFor(agentUrl) {
335
+ const parsed = new URL(agentUrl);
336
+ if (parsed.pathname.endsWith("/.well-known/agent-card.json")) {
337
+ return parsed.toString();
338
+ }
339
+ parsed.pathname = `${parsed.pathname.replace(/\/+$/u, "")}/.well-known/agent-card.json`;
340
+ parsed.search = "";
341
+ parsed.hash = "";
342
+ return parsed.toString();
343
+ }
344
+ function bearerFetch(fetchImpl, bearerToken) {
345
+ const token = bearerToken?.trim();
346
+ if (token === undefined || token.length === 0) {
347
+ return fetchImpl;
348
+ }
349
+ return async (input, init = {}) => {
350
+ const headers = new Headers(init.headers);
351
+ if (!headers.has("Authorization")) {
352
+ headers.set("Authorization", `Bearer ${token}`);
353
+ }
354
+ return await fetchImpl(input, {
355
+ ...init,
356
+ headers,
357
+ });
358
+ };
359
+ }
360
+ function signalWithTimeout(signal, timeoutMs) {
361
+ if (timeoutMs === undefined) {
362
+ return {
363
+ signal,
364
+ timeoutMs,
365
+ timedOut: () => false,
366
+ cleanup: () => undefined,
367
+ };
368
+ }
369
+ const controller = new AbortController();
370
+ let didTimeOut = false;
371
+ let timeout = setTimeout(() => {
372
+ timeout = undefined;
373
+ didTimeOut = true;
374
+ controller.abort(new Error(`A2A request timed out after ${timeoutMs}ms.`));
375
+ }, timeoutMs);
376
+ const clear = () => {
377
+ if (timeout !== undefined) {
378
+ clearTimeout(timeout);
379
+ timeout = undefined;
380
+ }
381
+ };
382
+ const abortFromInput = () => {
383
+ clear();
384
+ controller.abort(signal?.reason);
385
+ };
386
+ if (signal?.aborted === true) {
387
+ abortFromInput();
388
+ }
389
+ else {
390
+ signal?.addEventListener("abort", abortFromInput, { once: true });
391
+ }
392
+ return {
393
+ signal: controller.signal,
394
+ timeoutMs,
395
+ timedOut: () => didTimeOut,
396
+ cleanup: () => {
397
+ clear();
398
+ signal?.removeEventListener("abort", abortFromInput);
399
+ },
400
+ };
401
+ }
402
+ function timeoutMessage(timeoutMs) {
403
+ return timeoutMs === undefined
404
+ ? "A2A request timed out."
405
+ : `A2A request timed out after ${timeoutMs}ms.`;
406
+ }
407
+ function isRecord(value) {
408
+ return value !== null && typeof value === "object";
409
+ }
410
+ //# sourceMappingURL=consumer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer.js","sourceRoot":"","sources":["../src/consumer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export type A2AProviderErrorCode = "invalid_config" | "missing_required_config" | "start_failed" | "unsupported_input" | "unsafe_host";
2
+ export interface A2AProviderErrorDetails {
3
+ readonly code?: A2AProviderErrorCode;
4
+ readonly reason?: string;
5
+ readonly [key: string]: unknown;
6
+ }
7
+ export declare class A2AProviderError extends Error {
8
+ readonly code: A2AProviderErrorCode;
9
+ readonly details: A2AProviderErrorDetails;
10
+ constructor(code: A2AProviderErrorCode, message: string, details?: A2AProviderErrorDetails);
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";
13
+ export interface A2AConsumerErrorDetails {
14
+ readonly code?: A2AConsumerErrorCode;
15
+ readonly reason?: string;
16
+ readonly [key: string]: unknown;
17
+ }
18
+ export declare class A2AConsumerError extends Error {
19
+ readonly code: A2AConsumerErrorCode;
20
+ readonly details: A2AConsumerErrorDetails;
21
+ constructor(code: A2AConsumerErrorCode, message: string, details?: A2AConsumerErrorDetails);
22
+ }
23
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +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"}
package/dist/errors.js ADDED
@@ -0,0 +1,21 @@
1
+ export class A2AProviderError extends Error {
2
+ code;
3
+ details;
4
+ constructor(code, message, details = {}) {
5
+ super(message);
6
+ this.name = "A2AProviderError";
7
+ this.code = code;
8
+ this.details = { ...details, code };
9
+ }
10
+ }
11
+ export class A2AConsumerError extends Error {
12
+ code;
13
+ details;
14
+ constructor(code, message, details = {}) {
15
+ super(message);
16
+ this.name = "A2AConsumerError";
17
+ this.code = code;
18
+ this.details = { ...details, code };
19
+ }
20
+ }
21
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAaA,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;AAoBD,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,12 @@
1
+ export { createA2AAgentCard, normalizeBaseUrl, } from "./card.js";
2
+ export type { A2AAgentCardOptions, A2AAgentSkillOptions, } from "./card.js";
3
+ export { startA2AProvider, } from "./provider.js";
4
+ export type { A2AAgentRequest, A2AProviderLogger, A2AProviderOptions, A2AProviderStartResult, A2ARequestMetadata, } from "./provider.js";
5
+ export { A2AConsumer, createA2AConsumer, createA2AConsumerResponder, discoverA2AAgent, sendA2AMessage, } from "./consumer.js";
6
+ export type { A2AConsumerOptions, A2AConsumerResponse, A2AConsumerResponseMetadata, A2AConsumerSendMessageInput, } from "./consumer.js";
7
+ export { A2AConsumerError, A2AProviderError, } from "./errors.js";
8
+ export type { A2AConsumerErrorCode, A2AConsumerErrorDetails, A2AProviderErrorCode, A2AProviderErrorDetails, } from "./errors.js";
9
+ export { a2aFieldGroup, loadA2AAdapterConfig, redactA2AAdapterConfig, } from "./config.js";
10
+ export type { A2AAdapterAgentConfig, A2AAdapterConfig, A2AAdapterConsumerConfig, A2AAdapterProviderConfig, LoadA2AAdapterConfigInput, RedactedA2AAdapterConfig, } from "./config.js";
11
+ export type { AgentCard, Message, SendMessageResult, Task, } from "@a2a-js/sdk";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,0BAA0B,EAC1B,gBAAgB,EAChB,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,SAAS,EACT,OAAO,EACP,iBAAiB,EACjB,IAAI,GACL,MAAM,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ export { createA2AAgentCard, normalizeBaseUrl, } from "./card.js";
2
+ export { startA2AProvider, } from "./provider.js";
3
+ export { A2AConsumer, createA2AConsumer, createA2AConsumerResponder, discoverA2AAgent, sendA2AMessage, } from "./consumer.js";
4
+ export { A2AConsumerError, A2AProviderError, } from "./errors.js";
5
+ export { a2aFieldGroup, loadA2AAdapterConfig, redactA2AAdapterConfig, } from "./config.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,WAAW,CAAC;AAMnB,OAAO,EACL,gBAAgB,GACjB,MAAM,eAAe,CAAC;AASvB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,0BAA0B,EAC1B,gBAAgB,EAChB,cAAc,GACf,MAAM,eAAe,CAAC;AAQvB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAQrB,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { type AgentCard } from "@a2a-js/sdk";
2
+ import { type AgentMessageStream, type AgentRequestBase, type AgentResponder, type AgentResponse } from "@mono-agent/agent-contracts";
3
+ import { type A2AAgentCardOptions, type A2AAgentSkillOptions } from "./card.js";
4
+ export interface A2ARequestMetadata {
5
+ readonly tenant?: string;
6
+ readonly contextId: string;
7
+ readonly taskId: string;
8
+ readonly messageId: string;
9
+ readonly inputModes: readonly string[];
10
+ readonly sourceUrl?: string;
11
+ }
12
+ export interface A2AAgentRequest extends AgentRequestBase {
13
+ readonly conversationId: string;
14
+ readonly text: string;
15
+ readonly abortSignal: AbortSignal;
16
+ readonly metadata: {
17
+ readonly a2a: A2ARequestMetadata;
18
+ readonly [key: string]: unknown;
19
+ };
20
+ }
21
+ export interface A2AProviderLogger {
22
+ debug?(message: string, metadata?: Record<string, unknown>): void;
23
+ info?(message: string, metadata?: Record<string, unknown>): void;
24
+ warn?(message: string, metadata?: Record<string, unknown>): void;
25
+ error?(message: string, metadata?: Record<string, unknown>): void;
26
+ }
27
+ export interface A2AProviderOptions {
28
+ readonly host?: string;
29
+ readonly port?: number;
30
+ readonly publicBaseUrl?: string;
31
+ readonly allowNonLoopback?: boolean;
32
+ readonly requireBearer?: boolean;
33
+ readonly bearerToken?: string;
34
+ readonly responder: AgentResponder<A2AAgentRequest, AgentMessageStream, AgentResponse>;
35
+ readonly agent: Omit<A2AAgentCardOptions, "publicBaseUrl" | "skill" | "requireBearer">;
36
+ readonly skill: A2AAgentSkillOptions;
37
+ readonly logger?: A2AProviderLogger;
38
+ }
39
+ export interface A2AProviderStartResult {
40
+ readonly url: string;
41
+ readonly agentCardUrl: string;
42
+ readonly jsonRpcUrl: string;
43
+ readonly restUrl: string;
44
+ readonly host: string;
45
+ readonly port: number;
46
+ readonly agentCard: AgentCard;
47
+ stop(): Promise<void>;
48
+ }
49
+ export declare function startA2AProvider(options: A2AProviderOptions): Promise<A2AProviderStartResult>;
50
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}