@assistant-ui/react-a2a 0.2.14 → 0.2.16

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 CHANGED
@@ -1,23 +1,22 @@
1
1
  # `@assistant-ui/react-a2a`
2
2
 
3
- [A2A (Agent-to-Agent) v1.0](https://github.com/a2aproject/A2A) protocol adapter for [assistant-ui](https://www.assistant-ui.com/).
3
+ [A2A (Agent-to-Agent) v1.0](https://github.com/a2aproject/A2A) protocol integration for `@assistant-ui/react`. Built-in HTTP client with SSE streaming, agent-card discovery, multi-tenancy, and structured error handling.
4
4
 
5
5
  ## Installation
6
6
 
7
- ```sh
7
+ ```bash
8
8
  npm install @assistant-ui/react @assistant-ui/react-a2a
9
9
  ```
10
10
 
11
- ## Quick Start
11
+ ## Usage
12
12
 
13
13
  ```tsx
14
- import { AssistantRuntimeProvider, Thread } from "@assistant-ui/react";
14
+ import { AssistantRuntimeProvider } from "@assistant-ui/react";
15
15
  import { useA2ARuntime } from "@assistant-ui/react-a2a";
16
+ import { Thread } from "@/components/assistant-ui/thread";
16
17
 
17
- function App() {
18
- const runtime = useA2ARuntime({
19
- baseUrl: "http://localhost:9999",
20
- });
18
+ export function App() {
19
+ const runtime = useA2ARuntime({ baseUrl: "http://localhost:9999" });
21
20
 
22
21
  return (
23
22
  <AssistantRuntimeProvider runtime={runtime}>
@@ -27,23 +26,11 @@ function App() {
27
26
  }
28
27
  ```
29
28
 
30
- ## Documentation
29
+ Supports all 9 A2A task states (including `input_required` and `auth_required`), artifact streaming, push-notification config, extension negotiation, and streaming/non-streaming auto-fallback.
31
30
 
32
- Full documentation is available at [assistant-ui.com/docs/runtimes/a2a](https://www.assistant-ui.com/docs/runtimes/a2a).
31
+ ## See also
33
32
 
34
- ## Features
33
+ - `@assistant-ui/react-ag-ui` for the AG-UI protocol.
34
+ - `@assistant-ui/react-langgraph` for LangGraph agents.
35
35
 
36
- - Full A2A v1.0 protocol support
37
- - Built-in HTTP client with SSE streaming
38
- - All 9 task states (including `input_required`, `auth_required`)
39
- - Artifact streaming with append/lastChunk support
40
- - Agent card discovery
41
- - Multi-tenancy
42
- - Structured error handling (google.rpc.Status)
43
- - Push notification config CRUD
44
- - Extension negotiation
45
- - Streaming/non-streaming auto-fallback
46
-
47
- ## License
48
-
49
- MIT
36
+ Full reference at [assistant-ui.com/docs/runtimes/a2a](https://www.assistant-ui.com/docs/runtimes/a2a/overview).
@@ -1,46 +1,47 @@
1
- import type { A2AAgentCard, A2AErrorInfo, A2AListTaskPushNotificationConfigsResponse, A2AListTasksRequest, A2AListTasksResponse, A2AMessage, A2ASendMessageConfiguration, A2AStreamEvent, A2ATask, A2ATaskPushNotificationConfig } from "./types.js";
2
- export type A2AClientOptions = {
3
- baseUrl: string;
4
- /** Optional path prefix for all API endpoints (e.g. "/v1"). Does not affect agent card discovery. */
5
- basePath?: string | undefined;
6
- /** Optional tenant ID for multi-tenant servers. */
7
- tenant?: string | undefined;
8
- headers?: Record<string, string> | (() => Record<string, string> | Promise<Record<string, string>>) | undefined;
9
- /** A2A extension URIs to negotiate. Sent as A2A-Extensions header. */
10
- extensions?: string[] | undefined;
1
+ import { A2AAgentCard, A2AErrorInfo, A2AListTaskPushNotificationConfigsResponse, A2AListTasksRequest, A2AListTasksResponse, A2AMessage, A2ASendMessageConfiguration, A2AStreamEvent, A2ATask, A2ATaskPushNotificationConfig } from "./types.js";
2
+
3
+ //#region src/A2AClient.d.ts
4
+ type A2AClientOptions = {
5
+ baseUrl: string; /** Optional path prefix for all API endpoints (e.g. "/v1"). Does not affect agent card discovery. */
6
+ basePath?: string | undefined; /** Optional tenant ID for multi-tenant servers. */
7
+ tenant?: string | undefined;
8
+ headers?: Record<string, string> | (() => Record<string, string> | Promise<Record<string, string>>) | undefined; /** A2A extension URIs to negotiate. Sent as A2A-Extensions header. */
9
+ extensions?: string[] | undefined;
11
10
  };
12
- export declare class A2AError extends Error {
13
- code: number;
14
- status: string;
15
- details: unknown[] | undefined;
16
- constructor(info: A2AErrorInfo);
11
+ declare class A2AError extends Error {
12
+ code: number;
13
+ status: string;
14
+ details: unknown[] | undefined;
15
+ constructor(info: A2AErrorInfo);
17
16
  }
18
- export declare class A2AClient {
19
- private baseUrl;
20
- private basePath;
21
- private tenant;
22
- private extensionUris;
23
- private headersFn;
24
- constructor(options: A2AClientOptions);
25
- private getBasePath;
26
- private getHeaders;
27
- private throwResponseError;
28
- private fetchJSON;
29
- getAgentCard(signal?: AbortSignal): Promise<A2AAgentCard>;
30
- getExtendedAgentCard(signal?: AbortSignal): Promise<A2AAgentCard>;
31
- sendMessage(message: A2AMessage, configuration?: A2ASendMessageConfiguration, metadata?: Record<string, unknown>, signal?: AbortSignal): Promise<A2ATask | A2AMessage>;
32
- streamMessage(message: A2AMessage, configuration?: A2ASendMessageConfiguration, metadata?: Record<string, unknown>, signal?: AbortSignal): AsyncGenerator<A2AStreamEvent>;
33
- getTask(taskId: string, historyLength?: number, signal?: AbortSignal): Promise<A2ATask>;
34
- listTasks(request?: A2AListTasksRequest, signal?: AbortSignal): Promise<A2AListTasksResponse>;
35
- cancelTask(taskId: string, metadata?: Record<string, unknown>, signal?: AbortSignal): Promise<A2ATask>;
36
- subscribeToTask(taskId: string, signal?: AbortSignal): AsyncGenerator<A2AStreamEvent>;
37
- createTaskPushNotificationConfig(config: A2ATaskPushNotificationConfig, signal?: AbortSignal): Promise<A2ATaskPushNotificationConfig>;
38
- getTaskPushNotificationConfig(taskId: string, configId: string, signal?: AbortSignal): Promise<A2ATaskPushNotificationConfig>;
39
- listTaskPushNotificationConfigs(taskId: string, options?: {
40
- pageSize?: number;
41
- pageToken?: string;
42
- }, signal?: AbortSignal): Promise<A2AListTaskPushNotificationConfigsResponse>;
43
- deleteTaskPushNotificationConfig(taskId: string, configId: string, signal?: AbortSignal): Promise<void>;
44
- private parseSSE;
17
+ declare class A2AClient {
18
+ private baseUrl;
19
+ private basePath;
20
+ private tenant;
21
+ private extensionUris;
22
+ private headersFn;
23
+ constructor(options: A2AClientOptions);
24
+ private getBasePath;
25
+ private getHeaders;
26
+ private throwResponseError;
27
+ private fetchJSON;
28
+ getAgentCard(signal?: AbortSignal): Promise<A2AAgentCard>;
29
+ getExtendedAgentCard(signal?: AbortSignal): Promise<A2AAgentCard>;
30
+ sendMessage(message: A2AMessage, configuration?: A2ASendMessageConfiguration, metadata?: Record<string, unknown>, signal?: AbortSignal): Promise<A2ATask | A2AMessage>;
31
+ streamMessage(message: A2AMessage, configuration?: A2ASendMessageConfiguration, metadata?: Record<string, unknown>, signal?: AbortSignal): AsyncGenerator<A2AStreamEvent>;
32
+ getTask(taskId: string, historyLength?: number, signal?: AbortSignal): Promise<A2ATask>;
33
+ listTasks(request?: A2AListTasksRequest, signal?: AbortSignal): Promise<A2AListTasksResponse>;
34
+ cancelTask(taskId: string, metadata?: Record<string, unknown>, signal?: AbortSignal): Promise<A2ATask>;
35
+ subscribeToTask(taskId: string, signal?: AbortSignal): AsyncGenerator<A2AStreamEvent>;
36
+ createTaskPushNotificationConfig(config: A2ATaskPushNotificationConfig, signal?: AbortSignal): Promise<A2ATaskPushNotificationConfig>;
37
+ getTaskPushNotificationConfig(taskId: string, configId: string, signal?: AbortSignal): Promise<A2ATaskPushNotificationConfig>;
38
+ listTaskPushNotificationConfigs(taskId: string, options?: {
39
+ pageSize?: number;
40
+ pageToken?: string;
41
+ }, signal?: AbortSignal): Promise<A2AListTaskPushNotificationConfigsResponse>;
42
+ deleteTaskPushNotificationConfig(taskId: string, configId: string, signal?: AbortSignal): Promise<void>;
43
+ private parseSSE;
45
44
  }
45
+ //#endregion
46
+ export { A2AClient, A2AClientOptions, A2AError };
46
47
  //# sourceMappingURL=A2AClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"A2AClient.d.ts","sourceRoot":"","sources":["../src/A2AClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"A2AClient.d.ts","names":[],"sources":["../src/A2AClient.ts"],"mappings":";;;KAgBY,gBAAA;EACV,OAAA,UADU;EAGV,QAAA;EAEA,MAAA;EACA,OAAA,GACI,MAAA,0BACO,MAAA,mBAAyB,OAAA,CAAQ,MAAA,gCAAA;EAG5C,UAAA;AAAA;AAAA,cAGW,QAAA,SAAiB,KAAK;EACjC,IAAA;EACA,MAAA;EACA,OAAA;cAEY,IAAA,EAAM,YAAA;AAAA;AAAA,cAwHP,SAAA;EAAA,QACH,OAAA;EAAA,QACA,QAAA;EAAA,QACA,MAAA;EAAA,QACA,aAAA;EAAA,QACA,SAAA;cAII,OAAA,EAAS,gBAAA;EAAA,QAUb,WAAA;EAAA,QAIM,UAAA;EAAA,QAqBA,kBAAA;EAAA,QAyBA,SAAA;EAsBR,YAAA,CAAa,MAAA,GAAS,WAAA,GAAc,OAAA,CAAQ,YAAA;EAW5C,oBAAA,CAAqB,MAAA,GAAS,WAAA,GAAc,OAAA,CAAQ,YAAA;EASpD,WAAA,CACJ,OAAA,EAAS,UAAA,EACT,aAAA,GAAgB,2BAAA,EAChB,QAAA,GAAW,MAAA,mBACX,MAAA,GAAS,WAAA,GACR,OAAA,CAAQ,OAAA,GAAU,UAAA;EAuBd,aAAA,CACL,OAAA,EAAS,UAAA,EACT,aAAA,GAAgB,2BAAA,EAChB,QAAA,GAAW,MAAA,mBACX,MAAA,GAAS,WAAA,GACR,cAAA,CAAe,cAAA;EA4BZ,OAAA,CACJ,MAAA,UACA,aAAA,WACA,MAAA,GAAS,WAAA,GACR,OAAA,CAAQ,OAAA;EAaL,SAAA,CACJ,OAAA,GAAU,mBAAA,EACV,MAAA,GAAS,WAAA,GACR,OAAA,CAAQ,oBAAA;EAoBL,UAAA,CACJ,MAAA,UACA,QAAA,GAAW,MAAA,mBACX,MAAA,GAAS,WAAA,GACR,OAAA,CAAQ,OAAA;EAYJ,eAAA,CACL,MAAA,UACA,MAAA,GAAS,WAAA,GACR,cAAA,CAAe,cAAA;EAiBZ,gCAAA,CACJ,MAAA,EAAQ,6BAAA,EACR,MAAA,GAAS,WAAA,GACR,OAAA,CAAQ,6BAAA;EAaL,6BAAA,CACJ,MAAA,UACA,QAAA,UACA,MAAA,GAAS,WAAA,GACR,OAAA,CAAQ,6BAAA;EAOL,+BAAA,CACJ,MAAA,UACA,OAAA;IAAY,QAAA;IAAmB,SAAA;EAAA,GAC/B,MAAA,GAAS,WAAA,GACR,OAAA,CAAQ,0CAAA;EAYL,gCAAA,CACJ,MAAA,UACA,QAAA,UACA,MAAA,GAAS,WAAA,GACR,OAAA;EAAA,QAcY,QAAA;AAAA"}