@a2anet/a2a-utils 0.3.0 → 0.5.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 +28 -15
- package/dist/client/{agent-manager.d.ts → a2a-agents.d.ts} +2 -2
- package/dist/client/a2a-agents.d.ts.map +1 -0
- package/dist/client/{agent-manager.js → a2a-agents.js} +2 -2
- package/dist/client/a2a-agents.js.map +1 -0
- package/dist/client/a2a-session.d.ts +35 -8
- package/dist/client/a2a-session.d.ts.map +1 -1
- package/dist/client/a2a-session.js +139 -19
- package/dist/client/a2a-session.js.map +1 -1
- package/dist/client/a2a-tools.d.ts +23 -5
- package/dist/client/a2a-tools.d.ts.map +1 -1
- package/dist/client/a2a-tools.js +80 -18
- package/dist/client/a2a-tools.js.map +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/files/file-store.d.ts +19 -4
- package/dist/files/file-store.d.ts.map +1 -1
- package/dist/files/local-file-store.d.ts +32 -6
- package/dist/files/local-file-store.d.ts.map +1 -1
- package/dist/files/local-file-store.js +65 -23
- package/dist/files/local-file-store.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/client/agent-manager.d.ts.map +0 -1
- package/dist/client/agent-manager.js.map +0 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
This package is a comprehensive set of utility functions for using [A2A servers (remote agents)](https://a2a-protocol.org/latest/topics/key-concepts/#core-actors-in-a2a-interactions), it powers the [A2A MCP Server](https://github.com/a2anet/a2a-mcp).
|
|
6
6
|
|
|
7
|
-
`A2ASession` is at the core of the package, it takes an `
|
|
7
|
+
`A2ASession` is at the core of the package, it takes an `A2AAgents` (for connecting to agents, viewing Agent Cards, etc.), and optionally a `TaskStore` (for saving Tasks) and `FileStore` (for saving files).
|
|
8
8
|
It has two methods, `sendMessage` and `getTask`.
|
|
9
9
|
|
|
10
10
|
These methods are more sophisticated versions of the same methods in the [A2A SDKs](https://github.com/orgs/a2aproject/repositories).
|
|
@@ -13,7 +13,7 @@ It also sends the message as non-blocking and streams the response until the Tas
|
|
|
13
13
|
If `sendMessage` times out, `getTask` can be called with the Task ID to start streaming the response again.
|
|
14
14
|
If `TaskStore` and `FileStore` are set, the Task, Artifacts, and files will automatically be saved.
|
|
15
15
|
|
|
16
|
-
`
|
|
16
|
+
`A2AAgents` stores user-defined agent IDs that link to Agent Card URLs and headers.
|
|
17
17
|
Agents are stored this way so that Agent Card URLs and headers are not exposed to the agent and because Agent Cards can be dynamic (i.e. change depending on the headers).
|
|
18
18
|
It has five methods, `getAgents`, `getAgentsForLlm`, `getAgent`, `getAgentForLlm`, and `addAgent`.
|
|
19
19
|
See the API reference below for more information.
|
|
@@ -25,6 +25,19 @@ Tool outputs are also optimised for LLMs.
|
|
|
25
25
|
For example, `getAgents` returns a list of agent names and descriptions, whereas `getAgent` also returns an agent's skill names and descriptions.
|
|
26
26
|
`sendMessage` and `getTask` return LLM-friendly types that are subsets of A2A types (e.g. `TaskForLLM`, `MessageForLLM`, and `ArtifactForLLM`) and automatically minimise large Artifacts, which can be viewed with `viewTextArtifact` and `viewDataArtifact`.
|
|
27
27
|
|
|
28
|
+
## ✨ Features
|
|
29
|
+
|
|
30
|
+
- **6 LLM-friendly tools** — `getAgents`, `getAgent`, `sendMessage`, `getTask`, `viewTextArtifact`, and `viewDataArtifact`, designed with clear docstrings, JSON-serialisable outputs, and actionable error messages
|
|
31
|
+
- **Simple message sending** — send messages with just an agent ID and message string; Agent Card fetching, headers, and non-blocking streaming are handled automatically
|
|
32
|
+
- **Multi-turn conversations** — continue conversations across multiple messages using `contextId`
|
|
33
|
+
- **Long-running task support** — if `sendMessage` times out, use `getTask` to resume streaming until the task reaches a terminal state
|
|
34
|
+
- **Automatic artifact minimization** — large text and data artifacts are automatically minimized for LLM context windows, with `viewTextArtifact` and `viewDataArtifact` for detailed navigation
|
|
35
|
+
- **Task persistence** — save and load tasks as JSON files with `JSONTaskStore`
|
|
36
|
+
- **File artifact storage** — save file artifacts to the local filesystem with `LocalFileStore`, or implement `FileStore` for custom backends (S3, GCS, etc.)
|
|
37
|
+
- **Agent Card management** — `A2AAgents` stores agent IDs, URLs, and custom headers, with multiple detail levels for LLM summaries (`name`, `basic`, `skills`, `full`)
|
|
38
|
+
- **Runtime agent registration** — add new agents at runtime with `addAgent`
|
|
39
|
+
- **Configurable timeouts and polling** — customisable timeouts for sending messages, monitoring tasks, and polling intervals
|
|
40
|
+
|
|
28
41
|
## 📦 Installation
|
|
29
42
|
|
|
30
43
|
To install with npm:
|
|
@@ -44,9 +57,9 @@ bun add @a2anet/a2a-utils
|
|
|
44
57
|
Create an `A2ASession`, then `A2ATools` to get LLM-friendly tools that can be used out-of-the-box with agent frameworks.
|
|
45
58
|
|
|
46
59
|
```typescript
|
|
47
|
-
import { A2ATools, A2ASession,
|
|
60
|
+
import { A2ATools, A2ASession, A2AAgents, JSONTaskStore, LocalFileStore } from "@a2anet/a2a-utils";
|
|
48
61
|
|
|
49
|
-
const
|
|
62
|
+
const agents = new A2AAgents({
|
|
50
63
|
"weather": { url: "https://weather.example.com/.well-known/agent-card.json" },
|
|
51
64
|
"research-bot": {
|
|
52
65
|
url: "https://research.example.com/.well-known/agent-card.json",
|
|
@@ -54,7 +67,7 @@ const agentManager = new AgentManager({
|
|
|
54
67
|
},
|
|
55
68
|
});
|
|
56
69
|
|
|
57
|
-
const a2aSession = new A2ASession(
|
|
70
|
+
const a2aSession = new A2ASession(agents, {
|
|
58
71
|
taskStore: new JSONTaskStore("./storage/tasks"),
|
|
59
72
|
fileStore: new LocalFileStore("./storage/files"),
|
|
60
73
|
});
|
|
@@ -71,7 +84,7 @@ const a2aTools = new A2ATools(a2aSession);
|
|
|
71
84
|
Ready-made tools for agents to communicate with A2A servers. Every method has LLM-friendly docstrings, returns JSON-serialisable objects, and returns actionable error messages.
|
|
72
85
|
|
|
73
86
|
```typescript
|
|
74
|
-
import { A2ATools, A2ASession,
|
|
87
|
+
import { A2ATools, A2ASession, A2AAgents } from "@a2anet/a2a-utils";
|
|
75
88
|
|
|
76
89
|
const tools = new A2ATools(session);
|
|
77
90
|
```
|
|
@@ -327,10 +340,10 @@ Example result:
|
|
|
327
340
|
Programmatic interface for sending messages to A2A agents. Returns full A2A SDK types (`Task`, `Message`) for direct use.
|
|
328
341
|
|
|
329
342
|
```typescript
|
|
330
|
-
import { A2ASession,
|
|
343
|
+
import { A2ASession, A2AAgents, JSONTaskStore, LocalFileStore } from "@a2anet/a2a-utils";
|
|
331
344
|
|
|
332
345
|
const session = new A2ASession(
|
|
333
|
-
new
|
|
346
|
+
new A2AAgents({
|
|
334
347
|
"research-bot": { url: "https://research-bot.example.com/.well-known/agent-card.json" },
|
|
335
348
|
}),
|
|
336
349
|
{
|
|
@@ -342,7 +355,7 @@ const session = new A2ASession(
|
|
|
342
355
|
|
|
343
356
|
| Parameter | Type | Required | Description |
|
|
344
357
|
|---|---|---|---|
|
|
345
|
-
| `
|
|
358
|
+
| `agents` | `A2AAgents` | Yes | The agent manager instance |
|
|
346
359
|
| `taskStore` | `TaskStore \| undefined` | No | Task store for persistence (default: `InMemoryTaskStore`) |
|
|
347
360
|
| `fileStore` | `FileStore \| null` | No | File store for saving file artifacts (default: `null`) |
|
|
348
361
|
| `sendMessageTimeout` | `number` | No | HTTP timeout in seconds for `sendMessage` (default: `60.0`) |
|
|
@@ -400,15 +413,15 @@ const task = await session.getTask("research-bot", "task-123");
|
|
|
400
413
|
|
|
401
414
|
**Returns:** `Task` (from `@a2a-js/sdk`)
|
|
402
415
|
|
|
403
|
-
###
|
|
416
|
+
### A2AAgents
|
|
404
417
|
|
|
405
418
|
Manages A2A agent cards keyed by user-defined agent IDs.
|
|
406
419
|
|
|
407
420
|
```typescript
|
|
408
|
-
import {
|
|
421
|
+
import { A2AAgents } from "@a2anet/a2a-utils";
|
|
409
422
|
|
|
410
423
|
// From object
|
|
411
|
-
const manager = new
|
|
424
|
+
const manager = new A2AAgents({
|
|
412
425
|
"language-translator": {
|
|
413
426
|
url: "https://example.com/language-translator/agent-card.json",
|
|
414
427
|
custom_headers: { "Authorization": "Bearer tok_123" },
|
|
@@ -416,10 +429,10 @@ const manager = new AgentManager({
|
|
|
416
429
|
});
|
|
417
430
|
|
|
418
431
|
// From JSON file
|
|
419
|
-
const manager2 = new
|
|
432
|
+
const manager2 = new A2AAgents("./agents.json");
|
|
420
433
|
|
|
421
434
|
// Empty — add agents later
|
|
422
|
-
const manager3 = new
|
|
435
|
+
const manager3 = new A2AAgents();
|
|
423
436
|
```
|
|
424
437
|
|
|
425
438
|
#### `async getAgents(): Promise<Record<string, AgentURLAndCustomHeaders>>`
|
|
@@ -1150,7 +1163,7 @@ All types are readonly interfaces exported from `@a2anet/a2a-utils`.
|
|
|
1150
1163
|
|
|
1151
1164
|
#### `AgentURLAndCustomHeaders`
|
|
1152
1165
|
|
|
1153
|
-
Returned by `
|
|
1166
|
+
Returned by `A2AAgents.getAgent()` and `A2AAgents.getAgents()`.
|
|
1154
1167
|
|
|
1155
1168
|
```typescript
|
|
1156
1169
|
const agent: AgentURLAndCustomHeaders = {
|
|
@@ -4,7 +4,7 @@ import type { AgentURLAndCustomHeaders } from "../types.js";
|
|
|
4
4
|
*
|
|
5
5
|
* Agents are configured via a dict mapping agent_id to config, or a JSON file path.
|
|
6
6
|
*/
|
|
7
|
-
export declare class
|
|
7
|
+
export declare class A2AAgents {
|
|
8
8
|
private config;
|
|
9
9
|
private agents;
|
|
10
10
|
private initErrors;
|
|
@@ -91,4 +91,4 @@ export declare class AgentManager {
|
|
|
91
91
|
*/
|
|
92
92
|
getAgentsForLlm(detail?: "name" | "basic" | "skills" | "full"): Promise<Record<string, Record<string, unknown>>>;
|
|
93
93
|
}
|
|
94
|
-
//# sourceMappingURL=
|
|
94
|
+
//# sourceMappingURL=a2a-agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a2a-agents.d.ts","sourceRoot":"","sources":["../../src/client/a2a-agents.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D;;;;GAIG;AACH,qBAAa,SAAS;IAClB,OAAO,CAAC,MAAM,CAA0C;IACxD,OAAO,CAAC,MAAM,CAAgD;IAC9D,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC;;;;;;;;OAQG;gBAEC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,GAAG,IAAW,EACtE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAM/B,sCAAsC;IACtC,OAAO,CAAC,UAAU;IAelB,wEAAwE;YAC1D,iBAAiB;YAUjB,YAAY;IAoC1B,iDAAiD;YACnC,UAAU;IAgBxB,4FAA4F;IAC5F,OAAO,CAAC,eAAe;IAqBvB,wDAAwD;IACxD,OAAO,CAAC,iBAAiB;IAOzB;;;;;;;;OAQG;IACG,QAAQ,CACV,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC;IAYhB;;;;;;OAMG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC;IAKzE;;;;OAIG;IACH,IAAI,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEjD;IAED;;;;OAIG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAKpE;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IAgCzB;;;;;;;OAOG;IACG,cAAc,CAChB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAgB,GACvD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAS1C;;;;;;OAMG;IACG,eAAe,CACjB,MAAM,GAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAgB,GACvD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAStD"}
|
|
@@ -11,7 +11,7 @@ import { DefaultAgentCardResolver } from "@a2a-js/sdk/client";
|
|
|
11
11
|
*
|
|
12
12
|
* Agents are configured via a dict mapping agent_id to config, or a JSON file path.
|
|
13
13
|
*/
|
|
14
|
-
export class
|
|
14
|
+
export class A2AAgents {
|
|
15
15
|
config;
|
|
16
16
|
agents = {};
|
|
17
17
|
initErrors = {};
|
|
@@ -240,4 +240,4 @@ export class AgentManager {
|
|
|
240
240
|
return result;
|
|
241
241
|
}
|
|
242
242
|
}
|
|
243
|
-
//# sourceMappingURL=
|
|
243
|
+
//# sourceMappingURL=a2a-agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a2a-agents.js","sourceRoot":"","sources":["../../src/client/a2a-agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A2ASession — main interface for interacting with A2A agents.
|
|
3
|
-
*/
|
|
4
1
|
import type { Message, Task } from "@a2a-js/sdk";
|
|
5
2
|
import { type TaskStore } from "@a2a-js/sdk/server";
|
|
6
3
|
import type { FileStore } from "../files/file-store.js";
|
|
7
|
-
import type {
|
|
4
|
+
import type { JsonObject } from "../types.js";
|
|
5
|
+
import type { A2AAgents } from "./a2a-agents.js";
|
|
8
6
|
/** Main interface for sending messages to A2A agents. */
|
|
9
7
|
export declare class A2ASession {
|
|
10
|
-
|
|
8
|
+
/** Maximum file size for local file uploads (1MB). */
|
|
9
|
+
private static readonly MAX_FILE_SIZE;
|
|
10
|
+
/** Common MIME types by extension. */
|
|
11
|
+
private static readonly MIME_TYPES;
|
|
12
|
+
readonly agents: A2AAgents;
|
|
11
13
|
readonly taskStore: TaskStore;
|
|
12
14
|
readonly fileStore: FileStore | null;
|
|
13
15
|
private readonly sendMessageTimeout;
|
|
14
16
|
private readonly getTaskTimeout;
|
|
15
17
|
private readonly getTaskPollInterval;
|
|
16
|
-
constructor(
|
|
18
|
+
constructor(agents: A2AAgents, opts?: {
|
|
17
19
|
taskStore?: TaskStore;
|
|
18
20
|
fileStore?: FileStore | null;
|
|
19
21
|
sendMessageTimeout?: number;
|
|
@@ -30,6 +32,11 @@ export declare class A2ASession {
|
|
|
30
32
|
* @param opts.taskId - Optional task ID to attach to the message.
|
|
31
33
|
* @param opts.timeout - HTTP timeout in seconds. Defaults to sendMessageTimeout
|
|
32
34
|
* from constructor.
|
|
35
|
+
* @param opts.data - Structured data to include with the message. Each item
|
|
36
|
+
* is sent as a separate JSON object alongside the text.
|
|
37
|
+
* @param opts.files - Files to include with the message. Accepts local file
|
|
38
|
+
* paths (read and sent as binary, max 1MB) or URLs (sent as references
|
|
39
|
+
* for the remote agent to fetch).
|
|
33
40
|
*
|
|
34
41
|
* @returns Task for task responses, Message for message-only responses.
|
|
35
42
|
*
|
|
@@ -39,6 +46,8 @@ export declare class A2ASession {
|
|
|
39
46
|
contextId?: string | null;
|
|
40
47
|
taskId?: string | null;
|
|
41
48
|
timeout?: number | null;
|
|
49
|
+
data?: JsonObject[];
|
|
50
|
+
files?: string[];
|
|
42
51
|
}): Promise<Task | Message>;
|
|
43
52
|
/**
|
|
44
53
|
* Get the current state of a task, monitoring until terminal/actionable state.
|
|
@@ -67,11 +76,29 @@ export declare class A2ASession {
|
|
|
67
76
|
pollInterval?: number | null;
|
|
68
77
|
}): Promise<Task>;
|
|
69
78
|
/**
|
|
70
|
-
* Save file artifacts to the file store if configured.
|
|
79
|
+
* Save file artifacts from a task to the file store if configured.
|
|
71
80
|
*
|
|
72
81
|
* Idempotent: skips artifacts whose files have already been saved.
|
|
82
|
+
* Also saves files from the task's status message if present.
|
|
73
83
|
*/
|
|
74
|
-
private
|
|
84
|
+
private saveTaskFiles;
|
|
85
|
+
/**
|
|
86
|
+
* Save file parts from a message to the file store if configured.
|
|
87
|
+
*
|
|
88
|
+
* Idempotent: skips messages whose files have already been saved.
|
|
89
|
+
*/
|
|
90
|
+
private saveMessageFiles;
|
|
91
|
+
/**
|
|
92
|
+
* Build a file Part from a file path or URL.
|
|
93
|
+
*
|
|
94
|
+
* Local paths are read and encoded as FileWithBytes (max 1MB).
|
|
95
|
+
* URLs are passed through as FileWithUri.
|
|
96
|
+
*/
|
|
97
|
+
private buildFilePart;
|
|
98
|
+
/** Get MIME type from filename extension. */
|
|
99
|
+
private static getMimeType;
|
|
100
|
+
/** Check if a string is an HTTP/HTTPS URL. */
|
|
101
|
+
private static isUrl;
|
|
75
102
|
/** Monitor a task via SSE resubscription, falling back to a final fetch. */
|
|
76
103
|
private getTaskStreaming;
|
|
77
104
|
/** Monitor a task by polling at regular intervals. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a2a-session.d.ts","sourceRoot":"","sources":["../../src/client/a2a-session.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"a2a-session.d.ts","sourceRoot":"","sources":["../../src/client/a2a-session.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAGR,OAAO,EAGP,IAAI,EAGP,MAAM,aAAa,CAAC;AAErB,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAuBjD,yDAAyD;AACzD,qBAAa,UAAU;IACnB,sDAAsD;IACtD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAa;IAElD,sCAAsC;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAyBhC;IAEF,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;gBAGzC,MAAM,EAAE,SAAS,EACjB,IAAI,CAAC,EAAE;QACH,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;QAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAChC;IAUL;;;;;;;;;;;;;;;;;;;OAmBG;IACG,WAAW,CACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;QACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,GACF,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;IA2G1B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,OAAO,CACT,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE;QACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,GACF,OAAO,CAAC,IAAI,CAAC;IAkChB;;;;;OAKG;YACW,aAAa;IA+B3B;;;;OAIG;YACW,gBAAgB;IAa9B;;;;;OAKG;YACW,aAAa;IAuB3B,6CAA6C;IAC7C,OAAO,CAAC,MAAM,CAAC,WAAW;IAK1B,8CAA8C;IAC9C,OAAO,CAAC,MAAM,CAAC,KAAK;IAIpB,4EAA4E;YAC9D,gBAAgB;IAwC9B,sDAAsD;YACxC,cAAc;IAwB5B,4CAA4C;YAC9B,SAAS;IAevB,mEAAmE;IACnE,OAAO,CAAC,gBAAgB;IAIxB,wDAAwD;IACxD,OAAO,CAAC,YAAY;IAmBpB;;;;;;OAMG;YACW,YAAY;CAS7B"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
// SPDX-FileCopyrightText: 2025-present A2A Net <hello@a2anet.com>
|
|
2
2
|
//
|
|
3
3
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
/**
|
|
5
|
+
* A2ASession — main interface for interacting with A2A agents.
|
|
6
|
+
*/
|
|
7
|
+
import * as fsSync from "node:fs/promises";
|
|
8
|
+
import * as path from "node:path";
|
|
4
9
|
import { A2AClient } from "@a2a-js/sdk/client";
|
|
5
10
|
import { InMemoryTaskStore } from "@a2a-js/sdk/server";
|
|
6
11
|
import { v4 as uuidv4 } from "uuid";
|
|
@@ -10,14 +15,43 @@ function sleep(seconds) {
|
|
|
10
15
|
}
|
|
11
16
|
/** Main interface for sending messages to A2A agents. */
|
|
12
17
|
export class A2ASession {
|
|
13
|
-
|
|
18
|
+
/** Maximum file size for local file uploads (1MB). */
|
|
19
|
+
static MAX_FILE_SIZE = 1_048_576;
|
|
20
|
+
/** Common MIME types by extension. */
|
|
21
|
+
static MIME_TYPES = {
|
|
22
|
+
".pdf": "application/pdf",
|
|
23
|
+
".json": "application/json",
|
|
24
|
+
".xml": "application/xml",
|
|
25
|
+
".zip": "application/zip",
|
|
26
|
+
".gz": "application/gzip",
|
|
27
|
+
".tar": "application/x-tar",
|
|
28
|
+
".csv": "text/csv",
|
|
29
|
+
".txt": "text/plain",
|
|
30
|
+
".html": "text/html",
|
|
31
|
+
".css": "text/css",
|
|
32
|
+
".js": "text/javascript",
|
|
33
|
+
".ts": "text/typescript",
|
|
34
|
+
".md": "text/markdown",
|
|
35
|
+
".png": "image/png",
|
|
36
|
+
".jpg": "image/jpeg",
|
|
37
|
+
".jpeg": "image/jpeg",
|
|
38
|
+
".gif": "image/gif",
|
|
39
|
+
".webp": "image/webp",
|
|
40
|
+
".svg": "image/svg+xml",
|
|
41
|
+
".ico": "image/x-icon",
|
|
42
|
+
".mp3": "audio/mpeg",
|
|
43
|
+
".wav": "audio/wav",
|
|
44
|
+
".mp4": "video/mp4",
|
|
45
|
+
".webm": "video/webm",
|
|
46
|
+
};
|
|
47
|
+
agents;
|
|
14
48
|
taskStore;
|
|
15
49
|
fileStore;
|
|
16
50
|
sendMessageTimeout;
|
|
17
51
|
getTaskTimeout;
|
|
18
52
|
getTaskPollInterval;
|
|
19
|
-
constructor(
|
|
20
|
-
this.
|
|
53
|
+
constructor(agents, opts) {
|
|
54
|
+
this.agents = agents;
|
|
21
55
|
this.taskStore = opts?.taskStore ?? new InMemoryTaskStore();
|
|
22
56
|
this.fileStore = opts?.fileStore ?? null;
|
|
23
57
|
this.sendMessageTimeout = opts?.sendMessageTimeout ?? 60.0;
|
|
@@ -34,6 +68,11 @@ export class A2ASession {
|
|
|
34
68
|
* @param opts.taskId - Optional task ID to attach to the message.
|
|
35
69
|
* @param opts.timeout - HTTP timeout in seconds. Defaults to sendMessageTimeout
|
|
36
70
|
* from constructor.
|
|
71
|
+
* @param opts.data - Structured data to include with the message. Each item
|
|
72
|
+
* is sent as a separate JSON object alongside the text.
|
|
73
|
+
* @param opts.files - Files to include with the message. Accepts local file
|
|
74
|
+
* paths (read and sent as binary, max 1MB) or URLs (sent as references
|
|
75
|
+
* for the remote agent to fetch).
|
|
37
76
|
*
|
|
38
77
|
* @returns Task for task responses, Message for message-only responses.
|
|
39
78
|
*
|
|
@@ -42,11 +81,25 @@ export class A2ASession {
|
|
|
42
81
|
async sendMessage(agentId, message, opts) {
|
|
43
82
|
const [agentCard, headers] = await this.resolveAgent(agentId);
|
|
44
83
|
const contextId = opts?.contextId ?? uuidv4();
|
|
84
|
+
// Build message parts
|
|
85
|
+
const parts = [{ kind: "text", text: message }];
|
|
86
|
+
// Add data parts
|
|
87
|
+
if (opts?.data) {
|
|
88
|
+
for (const d of opts.data) {
|
|
89
|
+
parts.push({ kind: "data", data: d });
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// Add file parts
|
|
93
|
+
if (opts?.files) {
|
|
94
|
+
for (const fileRef of opts.files) {
|
|
95
|
+
parts.push(await this.buildFilePart(fileRef));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
45
98
|
// Build A2A message
|
|
46
99
|
const a2aMessage = {
|
|
47
100
|
kind: "message",
|
|
48
101
|
messageId: uuidv4(),
|
|
49
|
-
parts
|
|
102
|
+
parts,
|
|
50
103
|
role: "user",
|
|
51
104
|
contextId,
|
|
52
105
|
};
|
|
@@ -68,7 +121,9 @@ export class A2ASession {
|
|
|
68
121
|
const result = response.result;
|
|
69
122
|
// Handle Message result
|
|
70
123
|
if (result.kind === "message") {
|
|
71
|
-
|
|
124
|
+
const msg = result;
|
|
125
|
+
await this.saveMessageFiles(msg);
|
|
126
|
+
return msg;
|
|
72
127
|
}
|
|
73
128
|
// Handle Task result
|
|
74
129
|
if (result.kind !== "task") {
|
|
@@ -78,7 +133,7 @@ export class A2ASession {
|
|
|
78
133
|
await this.taskStore.save(task);
|
|
79
134
|
// If task is already in a terminal/actionable state, save files and return
|
|
80
135
|
if (TERMINAL_OR_ACTIONABLE_STATES.has(task.status.state)) {
|
|
81
|
-
await this.
|
|
136
|
+
await this.saveTaskFiles(task);
|
|
82
137
|
return task;
|
|
83
138
|
}
|
|
84
139
|
// Task is in a non-terminal state (e.g. working) — monitor with remaining time
|
|
@@ -96,7 +151,7 @@ export class A2ASession {
|
|
|
96
151
|
}
|
|
97
152
|
await this.taskStore.save(task);
|
|
98
153
|
}
|
|
99
|
-
await this.
|
|
154
|
+
await this.saveTaskFiles(task);
|
|
100
155
|
return task;
|
|
101
156
|
}
|
|
102
157
|
/**
|
|
@@ -140,27 +195,92 @@ export class A2ASession {
|
|
|
140
195
|
task = await this.getTaskPolling(agentCard, headers, taskId, effectiveTimeout, effectivePollInterval);
|
|
141
196
|
}
|
|
142
197
|
await this.taskStore.save(task);
|
|
143
|
-
await this.
|
|
198
|
+
await this.saveTaskFiles(task);
|
|
144
199
|
return task;
|
|
145
200
|
}
|
|
146
201
|
/**
|
|
147
|
-
* Save file artifacts to the file store if configured.
|
|
202
|
+
* Save file artifacts from a task to the file store if configured.
|
|
148
203
|
*
|
|
149
204
|
* Idempotent: skips artifacts whose files have already been saved.
|
|
205
|
+
* Also saves files from the task's status message if present.
|
|
150
206
|
*/
|
|
151
|
-
async
|
|
152
|
-
if (this.fileStore === null
|
|
207
|
+
async saveTaskFiles(task) {
|
|
208
|
+
if (this.fileStore === null) {
|
|
153
209
|
return;
|
|
154
210
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
const
|
|
159
|
-
if (
|
|
160
|
-
await this.fileStore.
|
|
211
|
+
// Save artifact files
|
|
212
|
+
if (task.artifacts) {
|
|
213
|
+
for (const artifact of task.artifacts) {
|
|
214
|
+
const hasFiles = artifact.parts.some((p) => p.kind === "file");
|
|
215
|
+
if (hasFiles) {
|
|
216
|
+
const existing = await this.fileStore.getArtifact(task.id, artifact.artifactId);
|
|
217
|
+
if (existing.length === 0) {
|
|
218
|
+
await this.fileStore.saveArtifact(task.id, artifact);
|
|
219
|
+
}
|
|
161
220
|
}
|
|
162
221
|
}
|
|
163
222
|
}
|
|
223
|
+
// Save files from the status message
|
|
224
|
+
if (task.status.message) {
|
|
225
|
+
await this.saveMessageFiles(task.status.message);
|
|
226
|
+
}
|
|
227
|
+
// Save files from history messages
|
|
228
|
+
if (task.history) {
|
|
229
|
+
for (const message of task.history) {
|
|
230
|
+
await this.saveMessageFiles(message);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Save file parts from a message to the file store if configured.
|
|
236
|
+
*
|
|
237
|
+
* Idempotent: skips messages whose files have already been saved.
|
|
238
|
+
*/
|
|
239
|
+
async saveMessageFiles(message) {
|
|
240
|
+
if (this.fileStore === null) {
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
const hasFiles = message.parts.some((p) => p.kind === "file");
|
|
244
|
+
if (hasFiles) {
|
|
245
|
+
const existing = await this.fileStore.getMessage(message.messageId);
|
|
246
|
+
if (existing.length === 0) {
|
|
247
|
+
await this.fileStore.saveMessage(message);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Build a file Part from a file path or URL.
|
|
253
|
+
*
|
|
254
|
+
* Local paths are read and encoded as FileWithBytes (max 1MB).
|
|
255
|
+
* URLs are passed through as FileWithUri.
|
|
256
|
+
*/
|
|
257
|
+
async buildFilePart(fileRef) {
|
|
258
|
+
if (A2ASession.isUrl(fileRef)) {
|
|
259
|
+
return {
|
|
260
|
+
kind: "file",
|
|
261
|
+
file: { uri: fileRef },
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
const content = await fsSync.readFile(fileRef);
|
|
265
|
+
if (content.length > A2ASession.MAX_FILE_SIZE) {
|
|
266
|
+
const sizeMb = (content.length / 1_048_576).toFixed(1);
|
|
267
|
+
throw new Error(`File '${fileRef}' is ${sizeMb}MB. Maximum size for file uploads is 1MB.`);
|
|
268
|
+
}
|
|
269
|
+
const name = path.basename(fileRef);
|
|
270
|
+
const mimeType = A2ASession.getMimeType(name);
|
|
271
|
+
return {
|
|
272
|
+
kind: "file",
|
|
273
|
+
file: { name, mimeType, bytes: content.toString("base64") },
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
/** Get MIME type from filename extension. */
|
|
277
|
+
static getMimeType(filename) {
|
|
278
|
+
const ext = path.extname(filename).toLowerCase();
|
|
279
|
+
return A2ASession.MIME_TYPES[ext] ?? "application/octet-stream";
|
|
280
|
+
}
|
|
281
|
+
/** Check if a string is an HTTP/HTTPS URL. */
|
|
282
|
+
static isUrl(value) {
|
|
283
|
+
return value.startsWith("http://") || value.startsWith("https://");
|
|
164
284
|
}
|
|
165
285
|
/** Monitor a task via SSE resubscription, falling back to a final fetch. */
|
|
166
286
|
async getTaskStreaming(agentCard, headers, taskId, timeout) {
|
|
@@ -252,9 +372,9 @@ export class A2ASession {
|
|
|
252
372
|
* @throws Error if agent cannot be resolved.
|
|
253
373
|
*/
|
|
254
374
|
async resolveAgent(agentId) {
|
|
255
|
-
const agent = await this.
|
|
375
|
+
const agent = await this.agents.getAgent(agentId);
|
|
256
376
|
if (agent === null) {
|
|
257
|
-
const agents = await this.
|
|
377
|
+
const agents = await this.agents.getAgents();
|
|
258
378
|
const available = Object.keys(agents).sort().join(", ");
|
|
259
379
|
throw new Error(`Agent '${agentId}' not found. Available agents: ${available}`);
|
|
260
380
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a2a-session.js","sourceRoot":"","sources":["../../src/client/a2a-session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"a2a-session.js","sourceRoot":"","sources":["../../src/client/a2a-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { JsonObject } from "../types.js";
|
|
1
2
|
import { ArtifactSettings } from "../types.js";
|
|
2
3
|
import type { A2ASession } from "./a2a-session.js";
|
|
3
4
|
export declare const TEXT_MINIMIZED_TIP = "Text was minimized. Call view_text_artifact() to view specific line ranges.";
|
|
@@ -49,12 +50,23 @@ export declare class A2ATools {
|
|
|
49
50
|
*
|
|
50
51
|
* @param agentId - ID of the agent to message (from get_agents).
|
|
51
52
|
* @param message - The message content to send.
|
|
52
|
-
* @param contextId - Continue an existing conversation by providing its context ID.
|
|
53
|
+
* @param opts.contextId - Continue an existing conversation by providing its context ID.
|
|
53
54
|
* Omit to start a new conversation.
|
|
54
|
-
* @param taskId - Attach to an existing task (for input_required flows).
|
|
55
|
-
* @param timeout - Override the default timeout in seconds.
|
|
55
|
+
* @param opts.taskId - Attach to an existing task (for input_required flows).
|
|
56
|
+
* @param opts.timeout - Override the default timeout in seconds.
|
|
57
|
+
* @param opts.data - Structured data to include with the message. Each item
|
|
58
|
+
* is sent as a separate JSON object alongside the text.
|
|
59
|
+
* @param opts.files - Files to include with the message. Accepts local file
|
|
60
|
+
* paths (read and sent as binary, max 1MB) or URLs (sent as references
|
|
61
|
+
* for the remote agent to fetch).
|
|
56
62
|
*/
|
|
57
|
-
sendMessage(agentId: string, message: string,
|
|
63
|
+
sendMessage(agentId: string, message: string, opts?: {
|
|
64
|
+
contextId?: string | null;
|
|
65
|
+
taskId?: string | null;
|
|
66
|
+
timeout?: number | null;
|
|
67
|
+
data?: JsonObject[];
|
|
68
|
+
files?: string[];
|
|
69
|
+
}): Promise<Record<string, unknown>>;
|
|
58
70
|
/**
|
|
59
71
|
* Check the progress of a task that is still in progress.
|
|
60
72
|
*
|
|
@@ -106,7 +118,7 @@ export declare class A2ATools {
|
|
|
106
118
|
* Convert an A2A Message to MessageForLLM.
|
|
107
119
|
*
|
|
108
120
|
* Combines all TextParts into a single TextPartForLLM.
|
|
109
|
-
* FileParts
|
|
121
|
+
* Includes FileParts with saved path metadata.
|
|
110
122
|
*/
|
|
111
123
|
private buildMessageForLlm;
|
|
112
124
|
/** Convert a Task to TaskForLLM with artifact minimization and file path queries. */
|
|
@@ -148,5 +160,11 @@ export declare class A2ATools {
|
|
|
148
160
|
* "all" (passthrough string), or null.
|
|
149
161
|
*/
|
|
150
162
|
private static parseColumns;
|
|
163
|
+
/**
|
|
164
|
+
* Build a FilePartForLLM from a file Part.
|
|
165
|
+
*
|
|
166
|
+
* Used by both message and artifact file handling.
|
|
167
|
+
*/
|
|
168
|
+
private static buildFilePartForLlm;
|
|
151
169
|
}
|
|
152
170
|
//# sourceMappingURL=a2a-tools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a2a-tools.d.ts","sourceRoot":"","sources":["../../src/client/a2a-tools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"a2a-tools.d.ts","sourceRoot":"","sources":["../../src/client/a2a-tools.ts"],"names":[],"mappings":"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"}
|