@assistant-ui/mcp-docs-server 0.1.30 → 0.1.31
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/.docs/organized/code-examples/waterfall.md +1 -1
- package/.docs/organized/code-examples/with-a2a.md +2 -2
- package/.docs/organized/code-examples/with-ag-ui.md +3 -3
- package/.docs/organized/code-examples/with-ai-sdk-v6.md +5 -5
- package/.docs/organized/code-examples/with-artifacts.md +5 -5
- package/.docs/organized/code-examples/with-assistant-transport.md +3 -3
- package/.docs/organized/code-examples/with-chain-of-thought.md +79 -50
- package/.docs/organized/code-examples/with-cloud-standalone.md +4 -4
- package/.docs/organized/code-examples/with-cloud.md +4 -4
- package/.docs/organized/code-examples/with-custom-thread-list.md +56 -11
- package/.docs/organized/code-examples/with-elevenlabs-conversational.md +7 -7
- package/.docs/organized/code-examples/with-elevenlabs-scribe.md +7 -7
- package/.docs/organized/code-examples/with-expo.md +16 -16
- package/.docs/organized/code-examples/with-external-store.md +2 -2
- package/.docs/organized/code-examples/with-ffmpeg.md +5 -5
- package/.docs/organized/code-examples/with-generative-ui.md +5 -5
- package/.docs/organized/code-examples/with-google-adk.md +4 -4
- package/.docs/organized/code-examples/with-heat-graph.md +1 -1
- package/.docs/organized/code-examples/with-interactables.md +5 -5
- package/.docs/organized/code-examples/with-langchain.md +3 -3
- package/.docs/organized/code-examples/with-langgraph.md +3 -3
- package/.docs/organized/code-examples/with-livekit.md +8 -8
- package/.docs/organized/code-examples/with-opencode.md +99 -54
- package/.docs/organized/code-examples/with-parent-id-grouping.md +4 -4
- package/.docs/organized/code-examples/with-react-hook-form.md +5 -5
- package/.docs/organized/code-examples/with-react-ink.md +1 -1
- package/.docs/organized/code-examples/with-react-router.md +8 -8
- package/.docs/organized/code-examples/with-store.md +1 -1
- package/.docs/organized/code-examples/with-tanstack.md +5 -5
- package/.docs/organized/code-examples/with-tap-runtime.md +2 -2
- package/.docs/raw/docs/(docs)/cli.mdx +2 -1
- package/.docs/raw/docs/(docs)/copilots/assistant-frame.mdx +1 -0
- package/.docs/raw/docs/(docs)/copilots/make-assistant-tool-ui.mdx +10 -3
- package/.docs/raw/docs/(docs)/copilots/make-assistant-tool.mdx +8 -3
- package/.docs/raw/docs/(docs)/copilots/make-assistant-visible.mdx +1 -0
- package/.docs/raw/docs/(docs)/copilots/model-context.mdx +1 -0
- package/.docs/raw/docs/(docs)/copilots/motivation.mdx +1 -0
- package/.docs/raw/docs/(docs)/copilots/use-assistant-instructions.mdx +1 -0
- package/.docs/raw/docs/(docs)/devtools.mdx +1 -0
- package/.docs/raw/docs/(docs)/index.mdx +1 -0
- package/.docs/raw/docs/(docs)/installation.mdx +1 -0
- package/.docs/raw/docs/(docs)/rtl.mdx +1 -0
- package/.docs/raw/docs/(reference)/api-reference/adapters/attachments.mdx +34 -0
- package/.docs/raw/docs/(reference)/api-reference/adapters/feedback-speech.mdx +41 -0
- package/.docs/raw/docs/(reference)/api-reference/adapters/index.mdx +26 -0
- package/.docs/raw/docs/(reference)/api-reference/adapters/persistence.mdx +34 -0
- package/.docs/raw/docs/(reference)/api-reference/adapters/runtime.mdx +31 -0
- package/.docs/raw/docs/(reference)/api-reference/context-providers/index.mdx +20 -0
- package/.docs/raw/docs/(reference)/api-reference/hooks/index.mdx +26 -0
- package/.docs/raw/docs/(reference)/api-reference/hooks/model-context.mdx +72 -0
- package/.docs/raw/docs/(reference)/api-reference/hooks/runtimes.mdx +41 -0
- package/.docs/raw/docs/(reference)/api-reference/hooks/state.mdx +48 -0
- package/.docs/raw/docs/(reference)/api-reference/hooks/utilities.mdx +30 -0
- package/.docs/raw/docs/(reference)/api-reference/integrations/index.mdx +23 -0
- package/.docs/raw/docs/(reference)/api-reference/overview.mdx +21 -0
- package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-if.mdx +7 -0
- package/.docs/raw/docs/(reference)/api-reference/primitives/index.mdx +65 -0
- package/.docs/raw/docs/(reference)/api-reference/primitives/message.mdx +50 -6
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list.mdx +15 -0
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread.mdx +36 -1
- package/.docs/raw/docs/(reference)/api-reference/runtimes/index.mdx +38 -0
- package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-runtime.mdx +5 -0
- package/.docs/raw/docs/(reference)/migrations/v0-14.mdx +144 -6
- package/.docs/raw/docs/cloud/ai-sdk-assistant-ui.mdx +230 -2
- package/.docs/raw/docs/cloud/ai-sdk.mdx +221 -3
- package/.docs/raw/docs/cloud/langgraph.mdx +274 -2
- package/.docs/raw/docs/{(docs)/guides → guides}/attachments.mdx +41 -36
- package/.docs/raw/docs/guides/branching.mdx +76 -0
- package/.docs/raw/docs/guides/chain-of-thought.mdx +166 -0
- package/.docs/raw/docs/{(docs)/guides → guides}/context-api.mdx +50 -22
- package/.docs/raw/docs/{(docs)/guides → guides}/dictation.mdx +2 -0
- package/.docs/raw/docs/guides/editing.mdx +102 -0
- package/.docs/raw/docs/guides/index.mdx +103 -0
- package/.docs/raw/docs/{(docs)/guides → guides}/interactables.mdx +49 -0
- package/.docs/raw/docs/{(docs)/guides → guides}/latex.mdx +51 -8
- package/.docs/raw/docs/{(docs)/guides → guides}/mentions.mdx +61 -86
- package/.docs/raw/docs/{(docs)/guides → guides}/message-timing.mdx +8 -2
- package/.docs/raw/docs/{(docs)/guides → guides}/multi-agent.mdx +64 -4
- package/.docs/raw/docs/{(docs)/guides → guides}/quoting.mdx +10 -17
- package/.docs/raw/docs/{(docs)/guides → guides}/slash-commands.mdx +103 -37
- package/.docs/raw/docs/guides/speech.mdx +156 -0
- package/.docs/raw/docs/{(docs)/guides → guides}/suggestions.mdx +21 -83
- package/.docs/raw/docs/{(docs)/guides → guides}/tool-ui.mdx +108 -36
- package/.docs/raw/docs/{(docs)/guides → guides}/tools.mdx +131 -35
- package/.docs/raw/docs/{(docs)/guides → guides}/voice.mdx +39 -0
- package/.docs/raw/docs/ink/index.mdx +1 -3
- package/.docs/raw/docs/ink/migration.mdx +1 -3
- package/.docs/raw/docs/ink/primitives.mdx +37 -1
- package/.docs/raw/docs/integrations/attachments/custom-adapter.mdx +520 -0
- package/.docs/raw/docs/integrations/auth/better-auth.mdx +191 -0
- package/.docs/raw/docs/integrations/auth/clerk.mdx +172 -0
- package/.docs/raw/docs/integrations/auth/next-auth.mdx +196 -0
- package/.docs/raw/docs/integrations/frameworks/ai-sdk.mdx +79 -0
- package/.docs/raw/docs/integrations/frameworks/mastra/full-stack.mdx +188 -0
- package/.docs/raw/docs/integrations/frameworks/mastra/overview.mdx +57 -0
- package/.docs/raw/docs/integrations/frameworks/mastra/separate-server.mdx +201 -0
- package/.docs/raw/docs/integrations/gateways/index.mdx +157 -0
- package/.docs/raw/docs/integrations/index.mdx +173 -0
- package/.docs/raw/docs/integrations/observability/helicone.mdx +130 -0
- package/.docs/raw/docs/integrations/observability/langfuse.mdx +156 -0
- package/.docs/raw/docs/integrations/observability/langsmith.mdx +146 -0
- package/.docs/raw/docs/integrations/persistence/custom-adapter.mdx +712 -0
- package/.docs/raw/docs/integrations/tools/mcp.mdx +267 -0
- package/.docs/raw/docs/primitives/action-bar.mdx +1 -0
- package/.docs/raw/docs/primitives/assistant-modal.mdx +1 -0
- package/.docs/raw/docs/primitives/attachment.mdx +1 -0
- package/.docs/raw/docs/primitives/branch-picker.mdx +1 -0
- package/.docs/raw/docs/primitives/chain-of-thought.mdx +90 -85
- package/.docs/raw/docs/primitives/composer.mdx +2 -1
- package/.docs/raw/docs/primitives/error.mdx +1 -0
- package/.docs/raw/docs/primitives/index.mdx +2 -1
- package/.docs/raw/docs/primitives/message.mdx +68 -5
- package/.docs/raw/docs/primitives/selection-toolbar.mdx +1 -0
- package/.docs/raw/docs/primitives/suggestion.mdx +1 -0
- package/.docs/raw/docs/primitives/thread-list.mdx +39 -0
- package/.docs/raw/docs/primitives/thread.mdx +16 -13
- package/.docs/raw/docs/react-native/index.mdx +1 -3
- package/.docs/raw/docs/react-native/migration.mdx +1 -3
- package/.docs/raw/docs/runtimes/a2a/client-and-hooks.mdx +396 -0
- package/.docs/raw/docs/runtimes/a2a/overview.mdx +60 -0
- package/.docs/raw/docs/runtimes/a2a/quickstart.mdx +216 -0
- package/.docs/raw/docs/runtimes/ag-ui/overview.mdx +70 -0
- package/.docs/raw/docs/runtimes/ag-ui/quickstart.mdx +243 -0
- package/.docs/raw/docs/runtimes/ag-ui/runtime-options.mdx +123 -0
- package/.docs/raw/docs/runtimes/ai-sdk/overview.mdx +52 -0
- package/.docs/raw/docs/runtimes/ai-sdk/v4-legacy.mdx +71 -131
- package/.docs/raw/docs/runtimes/ai-sdk/v5-legacy.mdx +69 -63
- package/.docs/raw/docs/runtimes/ai-sdk/v6.mdx +330 -123
- package/.docs/raw/docs/runtimes/concepts/adapters.mdx +265 -0
- package/.docs/raw/docs/runtimes/concepts/architecture.mdx +125 -0
- package/.docs/raw/docs/runtimes/concepts/stability.mdx +67 -0
- package/.docs/raw/docs/runtimes/concepts/threads.mdx +428 -0
- package/.docs/raw/docs/runtimes/custom/assistant-transport.mdx +703 -0
- package/.docs/raw/docs/runtimes/custom/data-stream.mdx +323 -0
- package/.docs/raw/docs/runtimes/custom/external-store.mdx +253 -1236
- package/.docs/raw/docs/runtimes/custom/local-runtime.mdx +746 -0
- package/.docs/raw/docs/runtimes/custom/overview.mdx +71 -0
- package/.docs/raw/docs/runtimes/google-adk/api.mdx +256 -0
- package/.docs/raw/docs/runtimes/google-adk/hooks.mdx +717 -0
- package/.docs/raw/docs/runtimes/google-adk/overview.mdx +69 -0
- package/.docs/raw/docs/runtimes/google-adk/quickstart.mdx +229 -0
- package/.docs/raw/docs/runtimes/langchain.mdx +533 -0
- package/.docs/raw/docs/runtimes/langgraph/generative-ui.mdx +305 -0
- package/.docs/raw/docs/runtimes/langgraph/interrupts.mdx +104 -0
- package/.docs/raw/docs/runtimes/langgraph/overview.mdx +84 -0
- package/.docs/raw/docs/runtimes/langgraph/quickstart.mdx +496 -0
- package/.docs/raw/docs/runtimes/langgraph/streaming.mdx +127 -0
- package/.docs/raw/docs/runtimes/langgraph/threads.mdx +113 -0
- package/.docs/raw/docs/runtimes/langgraph/tutorial/introduction.mdx +3 -3
- package/.docs/raw/docs/runtimes/langgraph/tutorial/part-1.mdx +0 -23
- package/.docs/raw/docs/runtimes/langgraph/tutorial/part-2.mdx +1 -1
- package/.docs/raw/docs/runtimes/opencode/hooks.mdx +191 -0
- package/.docs/raw/docs/runtimes/opencode/overview.mdx +48 -0
- package/.docs/raw/docs/runtimes/opencode/quickstart.mdx +119 -0
- package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +71 -203
- package/.docs/raw/docs/ui/accordion.mdx +1 -0
- package/.docs/raw/docs/ui/assistant-modal.mdx +1 -0
- package/.docs/raw/docs/ui/assistant-sidebar.mdx +1 -0
- package/.docs/raw/docs/ui/attachment.mdx +1 -0
- package/.docs/raw/docs/ui/badge.mdx +1 -0
- package/.docs/raw/docs/ui/composer-trigger-popover.mdx +1 -0
- package/.docs/raw/docs/ui/context-display.mdx +1 -0
- package/.docs/raw/docs/ui/diff-viewer.mdx +1 -0
- package/.docs/raw/docs/ui/directive-text.mdx +1 -0
- package/.docs/raw/docs/ui/file.mdx +1 -0
- package/.docs/raw/docs/ui/image.mdx +1 -0
- package/.docs/raw/docs/ui/markdown.mdx +2 -14
- package/.docs/raw/docs/ui/mermaid.mdx +1 -0
- package/.docs/raw/docs/ui/message-timing.mdx +3 -2
- package/.docs/raw/docs/ui/model-selector.mdx +1 -0
- package/.docs/raw/docs/ui/part-grouping.mdx +325 -313
- package/.docs/raw/docs/ui/quote.mdx +1 -0
- package/.docs/raw/docs/ui/reasoning.mdx +66 -33
- package/.docs/raw/docs/ui/scrollbar.mdx +1 -0
- package/.docs/raw/docs/ui/select.mdx +1 -0
- package/.docs/raw/docs/ui/sources.mdx +1 -0
- package/.docs/raw/docs/ui/streamdown.mdx +1 -0
- package/.docs/raw/docs/ui/syntax-highlighting.mdx +1 -0
- package/.docs/raw/docs/ui/tabs.mdx +1 -0
- package/.docs/raw/docs/ui/thread-list.mdx +17 -0
- package/.docs/raw/docs/ui/thread.mdx +56 -1
- package/.docs/raw/docs/ui/tool-fallback.mdx +1 -0
- package/.docs/raw/docs/ui/tool-group.mdx +39 -11
- package/.docs/raw/docs/ui/voice.mdx +1 -0
- package/.docs/raw/docs/utilities/heat-graph.mdx +1 -0
- package/.docs/raw/docs/utilities/react-o11y.mdx +278 -0
- package/.docs/raw/docs/utilities/tw-shimmer.mdx +1 -0
- package/package.json +3 -3
- package/src/tools/tests/path-traversal.test.ts +1 -1
- package/.docs/raw/docs/(docs)/guides/branching.mdx +0 -65
- package/.docs/raw/docs/(docs)/guides/chain-of-thought.mdx +0 -164
- package/.docs/raw/docs/(docs)/guides/editing.mdx +0 -66
- package/.docs/raw/docs/(docs)/guides/speech.mdx +0 -38
- package/.docs/raw/docs/runtimes/a2a/index.mdx +0 -298
- package/.docs/raw/docs/runtimes/assistant-transport.mdx +0 -1033
- package/.docs/raw/docs/runtimes/custom/custom-thread-list.mdx +0 -314
- package/.docs/raw/docs/runtimes/custom/local.mdx +0 -1464
- package/.docs/raw/docs/runtimes/data-stream.mdx +0 -422
- package/.docs/raw/docs/runtimes/google-adk/index.mdx +0 -686
- package/.docs/raw/docs/runtimes/helicone.mdx +0 -61
- package/.docs/raw/docs/runtimes/langchain/comparison.mdx +0 -60
- package/.docs/raw/docs/runtimes/langchain/index.mdx +0 -210
- package/.docs/raw/docs/runtimes/langgraph/index.mdx +0 -699
- package/.docs/raw/docs/runtimes/langgraph/tutorial/index.mdx +0 -12
- package/.docs/raw/docs/runtimes/langserve.mdx +0 -116
- package/.docs/raw/docs/runtimes/mastra/full-stack-integration.mdx +0 -218
- package/.docs/raw/docs/runtimes/mastra/overview.mdx +0 -18
- package/.docs/raw/docs/runtimes/mastra/separate-server-integration.mdx +0 -217
|
@@ -1,298 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: A2A Protocol
|
|
3
|
-
description: Connect to A2A (Agent-to-Agent) v1.0 protocol servers.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
`@assistant-ui/react-a2a` provides a runtime adapter for the [A2A (Agent-to-Agent) v1.0 protocol](https://github.com/a2aproject/A2A), enabling your assistant-ui frontend to communicate with any A2A-compliant agent server.
|
|
7
|
-
|
|
8
|
-
## Requirements
|
|
9
|
-
|
|
10
|
-
- An A2A v1.0 compatible agent server
|
|
11
|
-
- React 18 or 19
|
|
12
|
-
|
|
13
|
-
## Installation
|
|
14
|
-
|
|
15
|
-
<InstallCommand npm={["@assistant-ui/react", "@assistant-ui/react-a2a"]} />
|
|
16
|
-
|
|
17
|
-
## Getting Started
|
|
18
|
-
|
|
19
|
-
<Steps>
|
|
20
|
-
<Step>
|
|
21
|
-
### Set up the Runtime Provider
|
|
22
|
-
|
|
23
|
-
Create a runtime provider component that connects to your A2A server.
|
|
24
|
-
|
|
25
|
-
```tsx title="app/MyRuntimeProvider.tsx"
|
|
26
|
-
"use client";
|
|
27
|
-
|
|
28
|
-
import { AssistantRuntimeProvider } from "@assistant-ui/react";
|
|
29
|
-
import { useA2ARuntime } from "@assistant-ui/react-a2a";
|
|
30
|
-
|
|
31
|
-
export function MyRuntimeProvider({
|
|
32
|
-
children,
|
|
33
|
-
}: {
|
|
34
|
-
children: React.ReactNode;
|
|
35
|
-
}) {
|
|
36
|
-
const runtime = useA2ARuntime({
|
|
37
|
-
baseUrl: "http://localhost:9999",
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
return (
|
|
41
|
-
<AssistantRuntimeProvider runtime={runtime}>
|
|
42
|
-
{children}
|
|
43
|
-
</AssistantRuntimeProvider>
|
|
44
|
-
);
|
|
45
|
-
}
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
</Step>
|
|
49
|
-
<Step>
|
|
50
|
-
### Add the Thread component
|
|
51
|
-
|
|
52
|
-
```tsx title="app/page.tsx"
|
|
53
|
-
import { Thread } from "@assistant-ui/react";
|
|
54
|
-
import { MyRuntimeProvider } from "./MyRuntimeProvider";
|
|
55
|
-
|
|
56
|
-
export default function Page() {
|
|
57
|
-
return (
|
|
58
|
-
<MyRuntimeProvider>
|
|
59
|
-
<Thread />
|
|
60
|
-
</MyRuntimeProvider>
|
|
61
|
-
);
|
|
62
|
-
}
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
</Step>
|
|
66
|
-
<Step>
|
|
67
|
-
### Setup UI Components
|
|
68
|
-
|
|
69
|
-
Follow the [UI Setup](/docs/ui) guide to setup the UI components.
|
|
70
|
-
|
|
71
|
-
</Step>
|
|
72
|
-
</Steps>
|
|
73
|
-
|
|
74
|
-
## A2AClient
|
|
75
|
-
|
|
76
|
-
The built-in `A2AClient` handles all communication with the A2A server, including JSON serialization, SSE streaming, ProtoJSON enum normalization, and structured error handling.
|
|
77
|
-
|
|
78
|
-
```ts
|
|
79
|
-
import { A2AClient } from "@assistant-ui/react-a2a";
|
|
80
|
-
|
|
81
|
-
const client = new A2AClient({
|
|
82
|
-
baseUrl: "https://my-agent.example.com",
|
|
83
|
-
headers: { Authorization: "Bearer <token>" },
|
|
84
|
-
tenant: "my-org", // optional, for multi-tenant servers
|
|
85
|
-
extensions: ["urn:a2a:ext:my-extension"], // optional
|
|
86
|
-
});
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
You can pass a pre-built client to `useA2ARuntime`:
|
|
90
|
-
|
|
91
|
-
```tsx
|
|
92
|
-
const runtime = useA2ARuntime({ client });
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### Client Options
|
|
96
|
-
|
|
97
|
-
| Option | Type | Description |
|
|
98
|
-
| --- | --- | --- |
|
|
99
|
-
| `baseUrl` | `string` | Base URL of the A2A server |
|
|
100
|
-
| `basePath` | `string` | Optional path prefix for API endpoints (e.g. `"/v1"`). Does not affect agent card discovery |
|
|
101
|
-
| `headers` | `Record<string, string>` or `() => Record<string, string>` | Static or dynamic headers (e.g. for auth tokens) |
|
|
102
|
-
| `tenant` | `string` | Tenant ID for multi-tenant servers (prepended to URL paths) |
|
|
103
|
-
| `extensions` | `string[]` | Extension URIs to negotiate via `A2A-Extensions` header |
|
|
104
|
-
|
|
105
|
-
### Client Methods
|
|
106
|
-
|
|
107
|
-
| Method | Description |
|
|
108
|
-
| --- | --- |
|
|
109
|
-
| `sendMessage(message, configuration?, metadata?)` | Send a message (non-streaming) |
|
|
110
|
-
| `streamMessage(message, configuration?, metadata?)` | Send a message with SSE streaming |
|
|
111
|
-
| `getTask(taskId, historyLength?)` | Get a task by ID |
|
|
112
|
-
| `listTasks(request?)` | List tasks with filtering and pagination |
|
|
113
|
-
| `cancelTask(taskId, metadata?)` | Cancel an in-progress task |
|
|
114
|
-
| `subscribeToTask(taskId)` | Subscribe to SSE updates for a task |
|
|
115
|
-
| `getAgentCard()` | Fetch the agent card from `/.well-known/agent-card.json` |
|
|
116
|
-
| `getExtendedAgentCard()` | Fetch the extended (authenticated) agent card |
|
|
117
|
-
| `createTaskPushNotificationConfig(config)` | Create a push notification config |
|
|
118
|
-
| `getTaskPushNotificationConfig(taskId, configId)` | Get a push notification config |
|
|
119
|
-
| `listTaskPushNotificationConfigs(taskId)` | List push notification configs |
|
|
120
|
-
| `deleteTaskPushNotificationConfig(taskId, configId)` | Delete a push notification config |
|
|
121
|
-
|
|
122
|
-
## useA2ARuntime Options
|
|
123
|
-
|
|
124
|
-
| Option | Type | Description |
|
|
125
|
-
| --- | --- | --- |
|
|
126
|
-
| `client` | `A2AClient` | Pre-built A2A client instance (provide this OR `baseUrl`) |
|
|
127
|
-
| `baseUrl` | `string` | A2A server URL (creates a client automatically) |
|
|
128
|
-
| `basePath` | `string` | Path prefix for API endpoints (e.g. `"/v1"`). Only used with `baseUrl` |
|
|
129
|
-
| `tenant` | `string` | Tenant ID for multi-tenant servers. Only used with `baseUrl` |
|
|
130
|
-
| `headers` | see above | Headers for the auto-created client |
|
|
131
|
-
| `extensions` | `string[]` | Extension URIs to negotiate. Only used with `baseUrl` |
|
|
132
|
-
| `contextId` | `string` | Initial context ID for the conversation |
|
|
133
|
-
| `configuration` | `A2ASendMessageConfiguration` | Default send message configuration |
|
|
134
|
-
| `onError` | `(error: Error) => void` | Error callback |
|
|
135
|
-
| `onCancel` | `() => void` | Cancellation callback |
|
|
136
|
-
| `adapters.attachments` | `AttachmentAdapter` | Custom attachment handling |
|
|
137
|
-
| `adapters.speech` | `SpeechSynthesisAdapter` | Text-to-speech |
|
|
138
|
-
| `adapters.feedback` | `FeedbackAdapter` | Feedback collection |
|
|
139
|
-
| `adapters.history` | `ThreadHistoryAdapter` | Message persistence |
|
|
140
|
-
| `adapters.threadList` | `UseA2AThreadListAdapter` | Thread switching |
|
|
141
|
-
|
|
142
|
-
## Hooks
|
|
143
|
-
|
|
144
|
-
### useA2ATask
|
|
145
|
-
|
|
146
|
-
Returns the current A2A task object, including task state and status message.
|
|
147
|
-
|
|
148
|
-
```tsx
|
|
149
|
-
import { useA2ATask } from "@assistant-ui/react-a2a";
|
|
150
|
-
|
|
151
|
-
function TaskStatus() {
|
|
152
|
-
const task = useA2ATask();
|
|
153
|
-
|
|
154
|
-
if (!task) return null;
|
|
155
|
-
|
|
156
|
-
return <div>Task {task.id}: {task.status.state}</div>;
|
|
157
|
-
}
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
### useA2AArtifacts
|
|
161
|
-
|
|
162
|
-
Returns the artifacts generated by the current task.
|
|
163
|
-
|
|
164
|
-
```tsx
|
|
165
|
-
import { useA2AArtifacts } from "@assistant-ui/react-a2a";
|
|
166
|
-
|
|
167
|
-
function ArtifactList() {
|
|
168
|
-
const artifacts = useA2AArtifacts();
|
|
169
|
-
|
|
170
|
-
return (
|
|
171
|
-
<ul>
|
|
172
|
-
{artifacts.map((artifact) => (
|
|
173
|
-
<li key={artifact.artifactId}>
|
|
174
|
-
{artifact.name}: {artifact.parts.length} parts
|
|
175
|
-
</li>
|
|
176
|
-
))}
|
|
177
|
-
</ul>
|
|
178
|
-
);
|
|
179
|
-
}
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
### useA2AAgentCard
|
|
183
|
-
|
|
184
|
-
Returns the agent card fetched from the server on initialization.
|
|
185
|
-
|
|
186
|
-
```tsx
|
|
187
|
-
import { useA2AAgentCard } from "@assistant-ui/react-a2a";
|
|
188
|
-
|
|
189
|
-
function AgentInfo() {
|
|
190
|
-
const card = useA2AAgentCard();
|
|
191
|
-
|
|
192
|
-
if (!card) return null;
|
|
193
|
-
|
|
194
|
-
return (
|
|
195
|
-
<div>
|
|
196
|
-
<h3>{card.name}</h3>
|
|
197
|
-
<p>{card.description}</p>
|
|
198
|
-
<div>Skills: {card.skills.map((s) => s.name).join(", ")}</div>
|
|
199
|
-
</div>
|
|
200
|
-
);
|
|
201
|
-
}
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
## Task States
|
|
205
|
-
|
|
206
|
-
The A2A protocol defines 9 task states. The runtime maps them to assistant-ui message statuses:
|
|
207
|
-
|
|
208
|
-
| A2A Task State | Description | Message Status |
|
|
209
|
-
| --- | --- | --- |
|
|
210
|
-
| `unspecified` | Unknown/default state | `running` |
|
|
211
|
-
| `submitted` | Task acknowledged | `running` |
|
|
212
|
-
| `working` | Task in progress | `running` |
|
|
213
|
-
| `completed` | Task finished | `complete` |
|
|
214
|
-
| `failed` | Task errored | `incomplete (error)` |
|
|
215
|
-
| `canceled` | Task cancelled | `incomplete (cancelled)` |
|
|
216
|
-
| `rejected` | Agent declined task | `incomplete (error)` |
|
|
217
|
-
| `input_required` | Agent needs user input | `requires-action` |
|
|
218
|
-
| `auth_required` | Authentication needed | `requires-action` |
|
|
219
|
-
|
|
220
|
-
<Callout type="info">
|
|
221
|
-
When a task enters `input_required`, the user can continue the conversation normally. The runtime will send the next message with the same `taskId` to resume the task.
|
|
222
|
-
</Callout>
|
|
223
|
-
|
|
224
|
-
## Artifacts
|
|
225
|
-
|
|
226
|
-
A2A agents can produce artifacts (files, code, data) alongside their responses. Artifacts are accumulated during streaming and accessible via the `useA2AArtifacts` hook.
|
|
227
|
-
|
|
228
|
-
The runtime supports:
|
|
229
|
-
- **Incremental artifact streaming** via `append` mode
|
|
230
|
-
- **Artifact completion notification** via `onArtifactComplete` callback
|
|
231
|
-
- **Automatic reset** of artifacts on each new run
|
|
232
|
-
|
|
233
|
-
```tsx
|
|
234
|
-
const runtime = useA2ARuntime({
|
|
235
|
-
baseUrl: "http://localhost:9999",
|
|
236
|
-
onArtifactComplete: (artifact) => {
|
|
237
|
-
console.log("Artifact ready:", artifact.name);
|
|
238
|
-
},
|
|
239
|
-
});
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
## Streaming vs Non-Streaming
|
|
243
|
-
|
|
244
|
-
The runtime automatically selects the communication mode based on the agent's capabilities:
|
|
245
|
-
|
|
246
|
-
- If the agent card indicates `capabilities.streaming: true` (or unset), the runtime uses `POST /message:stream` with SSE
|
|
247
|
-
- If `capabilities.streaming: false`, the runtime falls back to `POST /message:send`
|
|
248
|
-
|
|
249
|
-
## Error Handling
|
|
250
|
-
|
|
251
|
-
The client throws `A2AError` instances with structured error information following the `google.rpc.Status` format:
|
|
252
|
-
|
|
253
|
-
```tsx
|
|
254
|
-
import { A2AError } from "@assistant-ui/react-a2a";
|
|
255
|
-
|
|
256
|
-
const runtime = useA2ARuntime({
|
|
257
|
-
baseUrl: "http://localhost:9999",
|
|
258
|
-
onError: (error) => {
|
|
259
|
-
if (error instanceof A2AError) {
|
|
260
|
-
console.log(error.code); // HTTP status code
|
|
261
|
-
console.log(error.status); // e.g. "NOT_FOUND"
|
|
262
|
-
console.log(error.details); // google.rpc.ErrorInfo details
|
|
263
|
-
}
|
|
264
|
-
},
|
|
265
|
-
});
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
## Multi-Tenancy
|
|
269
|
-
|
|
270
|
-
For multi-tenant A2A servers, pass a `tenant` option to the client:
|
|
271
|
-
|
|
272
|
-
```ts
|
|
273
|
-
const client = new A2AClient({
|
|
274
|
-
baseUrl: "https://agent.example.com",
|
|
275
|
-
tenant: "my-org",
|
|
276
|
-
});
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
This prepends `/{tenant}` to all API paths (e.g. `/my-org/message:send`).
|
|
280
|
-
|
|
281
|
-
## Features
|
|
282
|
-
|
|
283
|
-
| Feature | Supported |
|
|
284
|
-
| --- | --- |
|
|
285
|
-
| Streaming (SSE) | Yes |
|
|
286
|
-
| Non-streaming fallback | Yes |
|
|
287
|
-
| All 9 task states | Yes |
|
|
288
|
-
| Artifacts (text, data, file) | Yes |
|
|
289
|
-
| Agent card discovery | Yes |
|
|
290
|
-
| Multi-tenancy | Yes |
|
|
291
|
-
| Structured errors | Yes |
|
|
292
|
-
| Push notifications CRUD | Yes |
|
|
293
|
-
| Extension negotiation | Yes |
|
|
294
|
-
| Task cancellation | Yes |
|
|
295
|
-
| Message editing | Yes |
|
|
296
|
-
| Message reload | Yes |
|
|
297
|
-
| History persistence | Yes |
|
|
298
|
-
| Thread list management | Yes |
|