@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.
Files changed (208) hide show
  1. package/.docs/organized/code-examples/waterfall.md +1 -1
  2. package/.docs/organized/code-examples/with-a2a.md +2 -2
  3. package/.docs/organized/code-examples/with-ag-ui.md +3 -3
  4. package/.docs/organized/code-examples/with-ai-sdk-v6.md +5 -5
  5. package/.docs/organized/code-examples/with-artifacts.md +5 -5
  6. package/.docs/organized/code-examples/with-assistant-transport.md +3 -3
  7. package/.docs/organized/code-examples/with-chain-of-thought.md +79 -50
  8. package/.docs/organized/code-examples/with-cloud-standalone.md +4 -4
  9. package/.docs/organized/code-examples/with-cloud.md +4 -4
  10. package/.docs/organized/code-examples/with-custom-thread-list.md +56 -11
  11. package/.docs/organized/code-examples/with-elevenlabs-conversational.md +7 -7
  12. package/.docs/organized/code-examples/with-elevenlabs-scribe.md +7 -7
  13. package/.docs/organized/code-examples/with-expo.md +16 -16
  14. package/.docs/organized/code-examples/with-external-store.md +2 -2
  15. package/.docs/organized/code-examples/with-ffmpeg.md +5 -5
  16. package/.docs/organized/code-examples/with-generative-ui.md +5 -5
  17. package/.docs/organized/code-examples/with-google-adk.md +4 -4
  18. package/.docs/organized/code-examples/with-heat-graph.md +1 -1
  19. package/.docs/organized/code-examples/with-interactables.md +5 -5
  20. package/.docs/organized/code-examples/with-langchain.md +3 -3
  21. package/.docs/organized/code-examples/with-langgraph.md +3 -3
  22. package/.docs/organized/code-examples/with-livekit.md +8 -8
  23. package/.docs/organized/code-examples/with-opencode.md +99 -54
  24. package/.docs/organized/code-examples/with-parent-id-grouping.md +4 -4
  25. package/.docs/organized/code-examples/with-react-hook-form.md +5 -5
  26. package/.docs/organized/code-examples/with-react-ink.md +1 -1
  27. package/.docs/organized/code-examples/with-react-router.md +8 -8
  28. package/.docs/organized/code-examples/with-store.md +1 -1
  29. package/.docs/organized/code-examples/with-tanstack.md +5 -5
  30. package/.docs/organized/code-examples/with-tap-runtime.md +2 -2
  31. package/.docs/raw/docs/(docs)/cli.mdx +2 -1
  32. package/.docs/raw/docs/(docs)/copilots/assistant-frame.mdx +1 -0
  33. package/.docs/raw/docs/(docs)/copilots/make-assistant-tool-ui.mdx +10 -3
  34. package/.docs/raw/docs/(docs)/copilots/make-assistant-tool.mdx +8 -3
  35. package/.docs/raw/docs/(docs)/copilots/make-assistant-visible.mdx +1 -0
  36. package/.docs/raw/docs/(docs)/copilots/model-context.mdx +1 -0
  37. package/.docs/raw/docs/(docs)/copilots/motivation.mdx +1 -0
  38. package/.docs/raw/docs/(docs)/copilots/use-assistant-instructions.mdx +1 -0
  39. package/.docs/raw/docs/(docs)/devtools.mdx +1 -0
  40. package/.docs/raw/docs/(docs)/index.mdx +1 -0
  41. package/.docs/raw/docs/(docs)/installation.mdx +1 -0
  42. package/.docs/raw/docs/(docs)/rtl.mdx +1 -0
  43. package/.docs/raw/docs/(reference)/api-reference/adapters/attachments.mdx +34 -0
  44. package/.docs/raw/docs/(reference)/api-reference/adapters/feedback-speech.mdx +41 -0
  45. package/.docs/raw/docs/(reference)/api-reference/adapters/index.mdx +26 -0
  46. package/.docs/raw/docs/(reference)/api-reference/adapters/persistence.mdx +34 -0
  47. package/.docs/raw/docs/(reference)/api-reference/adapters/runtime.mdx +31 -0
  48. package/.docs/raw/docs/(reference)/api-reference/context-providers/index.mdx +20 -0
  49. package/.docs/raw/docs/(reference)/api-reference/hooks/index.mdx +26 -0
  50. package/.docs/raw/docs/(reference)/api-reference/hooks/model-context.mdx +72 -0
  51. package/.docs/raw/docs/(reference)/api-reference/hooks/runtimes.mdx +41 -0
  52. package/.docs/raw/docs/(reference)/api-reference/hooks/state.mdx +48 -0
  53. package/.docs/raw/docs/(reference)/api-reference/hooks/utilities.mdx +30 -0
  54. package/.docs/raw/docs/(reference)/api-reference/integrations/index.mdx +23 -0
  55. package/.docs/raw/docs/(reference)/api-reference/overview.mdx +21 -0
  56. package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-if.mdx +7 -0
  57. package/.docs/raw/docs/(reference)/api-reference/primitives/index.mdx +65 -0
  58. package/.docs/raw/docs/(reference)/api-reference/primitives/message.mdx +50 -6
  59. package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list.mdx +15 -0
  60. package/.docs/raw/docs/(reference)/api-reference/primitives/thread.mdx +36 -1
  61. package/.docs/raw/docs/(reference)/api-reference/runtimes/index.mdx +38 -0
  62. package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-runtime.mdx +5 -0
  63. package/.docs/raw/docs/(reference)/migrations/v0-14.mdx +144 -6
  64. package/.docs/raw/docs/cloud/ai-sdk-assistant-ui.mdx +230 -2
  65. package/.docs/raw/docs/cloud/ai-sdk.mdx +221 -3
  66. package/.docs/raw/docs/cloud/langgraph.mdx +274 -2
  67. package/.docs/raw/docs/{(docs)/guides → guides}/attachments.mdx +41 -36
  68. package/.docs/raw/docs/guides/branching.mdx +76 -0
  69. package/.docs/raw/docs/guides/chain-of-thought.mdx +166 -0
  70. package/.docs/raw/docs/{(docs)/guides → guides}/context-api.mdx +50 -22
  71. package/.docs/raw/docs/{(docs)/guides → guides}/dictation.mdx +2 -0
  72. package/.docs/raw/docs/guides/editing.mdx +102 -0
  73. package/.docs/raw/docs/guides/index.mdx +103 -0
  74. package/.docs/raw/docs/{(docs)/guides → guides}/interactables.mdx +49 -0
  75. package/.docs/raw/docs/{(docs)/guides → guides}/latex.mdx +51 -8
  76. package/.docs/raw/docs/{(docs)/guides → guides}/mentions.mdx +61 -86
  77. package/.docs/raw/docs/{(docs)/guides → guides}/message-timing.mdx +8 -2
  78. package/.docs/raw/docs/{(docs)/guides → guides}/multi-agent.mdx +64 -4
  79. package/.docs/raw/docs/{(docs)/guides → guides}/quoting.mdx +10 -17
  80. package/.docs/raw/docs/{(docs)/guides → guides}/slash-commands.mdx +103 -37
  81. package/.docs/raw/docs/guides/speech.mdx +156 -0
  82. package/.docs/raw/docs/{(docs)/guides → guides}/suggestions.mdx +21 -83
  83. package/.docs/raw/docs/{(docs)/guides → guides}/tool-ui.mdx +108 -36
  84. package/.docs/raw/docs/{(docs)/guides → guides}/tools.mdx +131 -35
  85. package/.docs/raw/docs/{(docs)/guides → guides}/voice.mdx +39 -0
  86. package/.docs/raw/docs/ink/index.mdx +1 -3
  87. package/.docs/raw/docs/ink/migration.mdx +1 -3
  88. package/.docs/raw/docs/ink/primitives.mdx +37 -1
  89. package/.docs/raw/docs/integrations/attachments/custom-adapter.mdx +520 -0
  90. package/.docs/raw/docs/integrations/auth/better-auth.mdx +191 -0
  91. package/.docs/raw/docs/integrations/auth/clerk.mdx +172 -0
  92. package/.docs/raw/docs/integrations/auth/next-auth.mdx +196 -0
  93. package/.docs/raw/docs/integrations/frameworks/ai-sdk.mdx +79 -0
  94. package/.docs/raw/docs/integrations/frameworks/mastra/full-stack.mdx +188 -0
  95. package/.docs/raw/docs/integrations/frameworks/mastra/overview.mdx +57 -0
  96. package/.docs/raw/docs/integrations/frameworks/mastra/separate-server.mdx +201 -0
  97. package/.docs/raw/docs/integrations/gateways/index.mdx +157 -0
  98. package/.docs/raw/docs/integrations/index.mdx +173 -0
  99. package/.docs/raw/docs/integrations/observability/helicone.mdx +130 -0
  100. package/.docs/raw/docs/integrations/observability/langfuse.mdx +156 -0
  101. package/.docs/raw/docs/integrations/observability/langsmith.mdx +146 -0
  102. package/.docs/raw/docs/integrations/persistence/custom-adapter.mdx +712 -0
  103. package/.docs/raw/docs/integrations/tools/mcp.mdx +267 -0
  104. package/.docs/raw/docs/primitives/action-bar.mdx +1 -0
  105. package/.docs/raw/docs/primitives/assistant-modal.mdx +1 -0
  106. package/.docs/raw/docs/primitives/attachment.mdx +1 -0
  107. package/.docs/raw/docs/primitives/branch-picker.mdx +1 -0
  108. package/.docs/raw/docs/primitives/chain-of-thought.mdx +90 -85
  109. package/.docs/raw/docs/primitives/composer.mdx +2 -1
  110. package/.docs/raw/docs/primitives/error.mdx +1 -0
  111. package/.docs/raw/docs/primitives/index.mdx +2 -1
  112. package/.docs/raw/docs/primitives/message.mdx +68 -5
  113. package/.docs/raw/docs/primitives/selection-toolbar.mdx +1 -0
  114. package/.docs/raw/docs/primitives/suggestion.mdx +1 -0
  115. package/.docs/raw/docs/primitives/thread-list.mdx +39 -0
  116. package/.docs/raw/docs/primitives/thread.mdx +16 -13
  117. package/.docs/raw/docs/react-native/index.mdx +1 -3
  118. package/.docs/raw/docs/react-native/migration.mdx +1 -3
  119. package/.docs/raw/docs/runtimes/a2a/client-and-hooks.mdx +396 -0
  120. package/.docs/raw/docs/runtimes/a2a/overview.mdx +60 -0
  121. package/.docs/raw/docs/runtimes/a2a/quickstart.mdx +216 -0
  122. package/.docs/raw/docs/runtimes/ag-ui/overview.mdx +70 -0
  123. package/.docs/raw/docs/runtimes/ag-ui/quickstart.mdx +243 -0
  124. package/.docs/raw/docs/runtimes/ag-ui/runtime-options.mdx +123 -0
  125. package/.docs/raw/docs/runtimes/ai-sdk/overview.mdx +52 -0
  126. package/.docs/raw/docs/runtimes/ai-sdk/v4-legacy.mdx +71 -131
  127. package/.docs/raw/docs/runtimes/ai-sdk/v5-legacy.mdx +69 -63
  128. package/.docs/raw/docs/runtimes/ai-sdk/v6.mdx +330 -123
  129. package/.docs/raw/docs/runtimes/concepts/adapters.mdx +265 -0
  130. package/.docs/raw/docs/runtimes/concepts/architecture.mdx +125 -0
  131. package/.docs/raw/docs/runtimes/concepts/stability.mdx +67 -0
  132. package/.docs/raw/docs/runtimes/concepts/threads.mdx +428 -0
  133. package/.docs/raw/docs/runtimes/custom/assistant-transport.mdx +703 -0
  134. package/.docs/raw/docs/runtimes/custom/data-stream.mdx +323 -0
  135. package/.docs/raw/docs/runtimes/custom/external-store.mdx +253 -1236
  136. package/.docs/raw/docs/runtimes/custom/local-runtime.mdx +746 -0
  137. package/.docs/raw/docs/runtimes/custom/overview.mdx +71 -0
  138. package/.docs/raw/docs/runtimes/google-adk/api.mdx +256 -0
  139. package/.docs/raw/docs/runtimes/google-adk/hooks.mdx +717 -0
  140. package/.docs/raw/docs/runtimes/google-adk/overview.mdx +69 -0
  141. package/.docs/raw/docs/runtimes/google-adk/quickstart.mdx +229 -0
  142. package/.docs/raw/docs/runtimes/langchain.mdx +533 -0
  143. package/.docs/raw/docs/runtimes/langgraph/generative-ui.mdx +305 -0
  144. package/.docs/raw/docs/runtimes/langgraph/interrupts.mdx +104 -0
  145. package/.docs/raw/docs/runtimes/langgraph/overview.mdx +84 -0
  146. package/.docs/raw/docs/runtimes/langgraph/quickstart.mdx +496 -0
  147. package/.docs/raw/docs/runtimes/langgraph/streaming.mdx +127 -0
  148. package/.docs/raw/docs/runtimes/langgraph/threads.mdx +113 -0
  149. package/.docs/raw/docs/runtimes/langgraph/tutorial/introduction.mdx +3 -3
  150. package/.docs/raw/docs/runtimes/langgraph/tutorial/part-1.mdx +0 -23
  151. package/.docs/raw/docs/runtimes/langgraph/tutorial/part-2.mdx +1 -1
  152. package/.docs/raw/docs/runtimes/opencode/hooks.mdx +191 -0
  153. package/.docs/raw/docs/runtimes/opencode/overview.mdx +48 -0
  154. package/.docs/raw/docs/runtimes/opencode/quickstart.mdx +119 -0
  155. package/.docs/raw/docs/runtimes/pick-a-runtime.mdx +71 -203
  156. package/.docs/raw/docs/ui/accordion.mdx +1 -0
  157. package/.docs/raw/docs/ui/assistant-modal.mdx +1 -0
  158. package/.docs/raw/docs/ui/assistant-sidebar.mdx +1 -0
  159. package/.docs/raw/docs/ui/attachment.mdx +1 -0
  160. package/.docs/raw/docs/ui/badge.mdx +1 -0
  161. package/.docs/raw/docs/ui/composer-trigger-popover.mdx +1 -0
  162. package/.docs/raw/docs/ui/context-display.mdx +1 -0
  163. package/.docs/raw/docs/ui/diff-viewer.mdx +1 -0
  164. package/.docs/raw/docs/ui/directive-text.mdx +1 -0
  165. package/.docs/raw/docs/ui/file.mdx +1 -0
  166. package/.docs/raw/docs/ui/image.mdx +1 -0
  167. package/.docs/raw/docs/ui/markdown.mdx +2 -14
  168. package/.docs/raw/docs/ui/mermaid.mdx +1 -0
  169. package/.docs/raw/docs/ui/message-timing.mdx +3 -2
  170. package/.docs/raw/docs/ui/model-selector.mdx +1 -0
  171. package/.docs/raw/docs/ui/part-grouping.mdx +325 -313
  172. package/.docs/raw/docs/ui/quote.mdx +1 -0
  173. package/.docs/raw/docs/ui/reasoning.mdx +66 -33
  174. package/.docs/raw/docs/ui/scrollbar.mdx +1 -0
  175. package/.docs/raw/docs/ui/select.mdx +1 -0
  176. package/.docs/raw/docs/ui/sources.mdx +1 -0
  177. package/.docs/raw/docs/ui/streamdown.mdx +1 -0
  178. package/.docs/raw/docs/ui/syntax-highlighting.mdx +1 -0
  179. package/.docs/raw/docs/ui/tabs.mdx +1 -0
  180. package/.docs/raw/docs/ui/thread-list.mdx +17 -0
  181. package/.docs/raw/docs/ui/thread.mdx +56 -1
  182. package/.docs/raw/docs/ui/tool-fallback.mdx +1 -0
  183. package/.docs/raw/docs/ui/tool-group.mdx +39 -11
  184. package/.docs/raw/docs/ui/voice.mdx +1 -0
  185. package/.docs/raw/docs/utilities/heat-graph.mdx +1 -0
  186. package/.docs/raw/docs/utilities/react-o11y.mdx +278 -0
  187. package/.docs/raw/docs/utilities/tw-shimmer.mdx +1 -0
  188. package/package.json +3 -3
  189. package/src/tools/tests/path-traversal.test.ts +1 -1
  190. package/.docs/raw/docs/(docs)/guides/branching.mdx +0 -65
  191. package/.docs/raw/docs/(docs)/guides/chain-of-thought.mdx +0 -164
  192. package/.docs/raw/docs/(docs)/guides/editing.mdx +0 -66
  193. package/.docs/raw/docs/(docs)/guides/speech.mdx +0 -38
  194. package/.docs/raw/docs/runtimes/a2a/index.mdx +0 -298
  195. package/.docs/raw/docs/runtimes/assistant-transport.mdx +0 -1033
  196. package/.docs/raw/docs/runtimes/custom/custom-thread-list.mdx +0 -314
  197. package/.docs/raw/docs/runtimes/custom/local.mdx +0 -1464
  198. package/.docs/raw/docs/runtimes/data-stream.mdx +0 -422
  199. package/.docs/raw/docs/runtimes/google-adk/index.mdx +0 -686
  200. package/.docs/raw/docs/runtimes/helicone.mdx +0 -61
  201. package/.docs/raw/docs/runtimes/langchain/comparison.mdx +0 -60
  202. package/.docs/raw/docs/runtimes/langchain/index.mdx +0 -210
  203. package/.docs/raw/docs/runtimes/langgraph/index.mdx +0 -699
  204. package/.docs/raw/docs/runtimes/langgraph/tutorial/index.mdx +0 -12
  205. package/.docs/raw/docs/runtimes/langserve.mdx +0 -116
  206. package/.docs/raw/docs/runtimes/mastra/full-stack-integration.mdx +0 -218
  207. package/.docs/raw/docs/runtimes/mastra/overview.mdx +0 -18
  208. 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 |