@assistant-ui/react-a2a 0.2.5 → 0.2.7

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 (60) hide show
  1. package/README.md +47 -1
  2. package/dist/A2AClient.d.ts +43 -0
  3. package/dist/A2AClient.d.ts.map +1 -0
  4. package/dist/A2AClient.js +358 -0
  5. package/dist/A2AClient.js.map +1 -0
  6. package/dist/A2AThreadRuntimeCore.d.ts +75 -0
  7. package/dist/A2AThreadRuntimeCore.d.ts.map +1 -0
  8. package/dist/A2AThreadRuntimeCore.js +483 -0
  9. package/dist/A2AThreadRuntimeCore.js.map +1 -0
  10. package/dist/conversions.d.ts +14 -0
  11. package/dist/conversions.d.ts.map +1 -0
  12. package/dist/conversions.js +92 -0
  13. package/dist/conversions.js.map +1 -0
  14. package/dist/index.d.ts +7 -6
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +7 -6
  17. package/dist/index.js.map +1 -1
  18. package/dist/types.d.ts +228 -84
  19. package/dist/types.d.ts.map +1 -1
  20. package/dist/types.js +4 -9
  21. package/dist/types.js.map +1 -1
  22. package/dist/useA2ARuntime.d.ts +35 -48
  23. package/dist/useA2ARuntime.d.ts.map +1 -1
  24. package/dist/useA2ARuntime.js +126 -172
  25. package/dist/useA2ARuntime.js.map +1 -1
  26. package/package.json +9 -9
  27. package/src/A2AClient.test.ts +773 -0
  28. package/src/A2AClient.ts +519 -0
  29. package/src/A2AThreadRuntimeCore.test.ts +692 -0
  30. package/src/A2AThreadRuntimeCore.ts +633 -0
  31. package/src/conversions.test.ts +276 -0
  32. package/src/conversions.ts +115 -0
  33. package/src/index.ts +66 -6
  34. package/src/types.ts +276 -95
  35. package/src/useA2ARuntime.ts +204 -296
  36. package/dist/A2AMessageAccumulator.d.ts +0 -16
  37. package/dist/A2AMessageAccumulator.d.ts.map +0 -1
  38. package/dist/A2AMessageAccumulator.js +0 -29
  39. package/dist/A2AMessageAccumulator.js.map +0 -1
  40. package/dist/appendA2AChunk.d.ts +0 -3
  41. package/dist/appendA2AChunk.d.ts.map +0 -1
  42. package/dist/appendA2AChunk.js +0 -110
  43. package/dist/appendA2AChunk.js.map +0 -1
  44. package/dist/convertA2AMessages.d.ts +0 -64
  45. package/dist/convertA2AMessages.d.ts.map +0 -1
  46. package/dist/convertA2AMessages.js +0 -90
  47. package/dist/convertA2AMessages.js.map +0 -1
  48. package/dist/testUtils.d.ts +0 -4
  49. package/dist/testUtils.d.ts.map +0 -1
  50. package/dist/testUtils.js +0 -6
  51. package/dist/testUtils.js.map +0 -1
  52. package/dist/useA2AMessages.d.ts +0 -25
  53. package/dist/useA2AMessages.d.ts.map +0 -1
  54. package/dist/useA2AMessages.js +0 -122
  55. package/dist/useA2AMessages.js.map +0 -1
  56. package/src/A2AMessageAccumulator.ts +0 -48
  57. package/src/appendA2AChunk.ts +0 -121
  58. package/src/convertA2AMessages.ts +0 -108
  59. package/src/testUtils.ts +0 -11
  60. package/src/useA2AMessages.ts +0 -180
@@ -1,188 +1,142 @@
1
- import { useEffect, useRef, useState } from "react";
2
- import { useExternalMessageConverter, useExternalStoreRuntime, useThread, useThreadListItemRuntime, } from "@assistant-ui/react";
3
- import { convertA2AMessage } from "./convertA2AMessages.js";
4
- import { useA2AMessages } from "./useA2AMessages.js";
5
- import { appendA2AChunk } from "./appendA2AChunk.js";
6
- const getPendingToolCalls = (messages) => {
7
- const pendingToolCalls = new Map();
8
- for (const message of messages) {
9
- if (message.role === "assistant") {
10
- for (const toolCall of message.tool_calls ?? []) {
11
- pendingToolCalls.set(toolCall.id, toolCall);
12
- }
13
- }
14
- if (message.role === "tool") {
15
- pendingToolCalls.delete(message.tool_call_id);
16
- }
17
- }
18
- return [...pendingToolCalls.values()];
19
- };
20
- const getMessageContent = (msg) => {
21
- const allContent = [
22
- ...msg.content,
23
- ...(msg.attachments?.flatMap((a) => a.content) ?? []),
24
- ];
25
- const content = allContent.map((part) => {
26
- const type = part.type;
27
- switch (type) {
28
- case "text":
29
- return { type: "text", text: part.text };
30
- case "image":
31
- return { type: "image_url", image_url: { url: part.image } };
32
- case "tool-call":
33
- throw new Error("Tool call appends are not supported.");
34
- default:
35
- const _exhaustiveCheck = type;
36
- throw new Error(`Unsupported append message part type: ${_exhaustiveCheck}`);
37
- }
38
- });
39
- if (content.length === 1 && content[0]?.type === "text") {
40
- return content[0].text ?? "";
41
- }
42
- return content;
43
- };
44
- const symbolA2ARuntimeExtras = Symbol("a2a-runtime-extras");
45
- const asA2ARuntimeExtras = (extras) => {
1
+ /// <reference types="@assistant-ui/core/store" />
2
+ "use client";
3
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
4
+ import { useExternalStoreRuntime, useRuntimeAdapters, } from "@assistant-ui/core/react";
5
+ import { useAuiState } from "@assistant-ui/store";
6
+ import { A2AClient } from "./A2AClient.js";
7
+ import { A2AThreadRuntimeCore } from "./A2AThreadRuntimeCore.js";
8
+ // --- Extras symbol for A2A-specific state ---
9
+ const symbolA2AExtras = Symbol("a2a-extras");
10
+ const asA2AExtras = (extras) => {
46
11
  if (typeof extras !== "object" ||
47
12
  extras == null ||
48
- !(symbolA2ARuntimeExtras in extras))
49
- throw new Error("This method can only be called when you are using useA2ARuntime");
13
+ !(symbolA2AExtras in extras))
14
+ throw new Error("This hook can only be used inside a useA2ARuntime provider");
50
15
  return extras;
51
16
  };
52
- export const useA2ATaskState = () => {
53
- const { taskState } = useThread((t) => asA2ARuntimeExtras(t.extras));
54
- return taskState;
17
+ // --- Public hooks for A2A state ---
18
+ export const useA2ATask = () => {
19
+ return useAuiState((s) => asA2AExtras(s.thread.extras).task);
55
20
  };
56
21
  export const useA2AArtifacts = () => {
57
- const { artifacts } = useThread((t) => asA2ARuntimeExtras(t.extras));
58
- return artifacts;
22
+ return useAuiState((s) => asA2AExtras(s.thread.extras).artifacts);
59
23
  };
60
- export const useA2ASend = () => {
61
- const { send } = useThread((t) => asA2ARuntimeExtras(t.extras));
62
- return send;
24
+ export const useA2AAgentCard = () => {
25
+ return useAuiState((s) => asA2AExtras(s.thread.extras).agentCard);
63
26
  };
64
- export const useA2ARuntime = ({ autoCancelPendingToolCalls, adapters: { attachments, feedback, speech } = {}, unstable_allowCancellation, stream, contextId, onSwitchToNewThread, onSwitchToThread, eventHandlers, }) => {
65
- const { taskState, artifacts, setArtifacts, messages, sendMessage, cancel, setMessages, } = useA2AMessages({
66
- appendMessage: appendA2AChunk,
67
- stream,
68
- ...(eventHandlers && { eventHandlers }),
69
- });
70
- const [isRunning, setIsRunning] = useState(false);
71
- const handleSendMessage = async (messages, config) => {
72
- try {
73
- setIsRunning(true);
74
- await sendMessage(messages, config);
27
+ // --- Main hook ---
28
+ export function useA2ARuntime(options) {
29
+ const [_version, setVersion] = useState(0);
30
+ const notifyUpdate = useCallback(() => setVersion((v) => v + 1), []);
31
+ const runtimeAdapters = useRuntimeAdapters();
32
+ const historyAdapter = options.adapters?.history ?? runtimeAdapters?.history;
33
+ const threadListAdapter = options.adapters?.threadList;
34
+ // Create or reuse client
35
+ const clientRef = useRef(null);
36
+ if (!clientRef.current) {
37
+ if (options.client) {
38
+ clientRef.current = options.client;
75
39
  }
76
- catch (error) {
77
- console.error("Error streaming A2A messages:", error);
40
+ else if (options.baseUrl) {
41
+ clientRef.current = new A2AClient({
42
+ baseUrl: options.baseUrl,
43
+ headers: options.headers,
44
+ });
78
45
  }
79
- finally {
80
- setIsRunning(false);
46
+ else {
47
+ throw new Error("useA2ARuntime requires either `client` or `baseUrl`");
81
48
  }
82
- };
83
- const threadMessages = useExternalMessageConverter({
84
- callback: convertA2AMessage,
85
- messages,
86
- isRunning,
49
+ }
50
+ const client = clientRef.current;
51
+ // Create or reuse core
52
+ const coreRef = useRef(null);
53
+ if (!coreRef.current) {
54
+ coreRef.current = new A2AThreadRuntimeCore({
55
+ client,
56
+ contextId: options.contextId,
57
+ configuration: options.configuration,
58
+ ...(options.onError && { onError: options.onError }),
59
+ ...(options.onCancel && { onCancel: options.onCancel }),
60
+ ...(options.onArtifactComplete && {
61
+ onArtifactComplete: options.onArtifactComplete,
62
+ }),
63
+ ...(historyAdapter && { history: historyAdapter }),
64
+ notifyUpdate,
65
+ });
66
+ }
67
+ const core = coreRef.current;
68
+ core.updateOptions({
69
+ client,
70
+ contextId: options.contextId,
71
+ configuration: options.configuration,
72
+ ...(options.onError && { onError: options.onError }),
73
+ ...(options.onCancel && { onCancel: options.onCancel }),
74
+ ...(options.onArtifactComplete && {
75
+ onArtifactComplete: options.onArtifactComplete,
76
+ }),
77
+ ...(historyAdapter && { history: historyAdapter }),
87
78
  });
88
- const switchToThread = !onSwitchToThread
89
- ? undefined
90
- : async (externalId) => {
91
- const { messages, artifacts } = await onSwitchToThread(externalId);
92
- setMessages(messages);
93
- if (artifacts) {
94
- setArtifacts(artifacts);
95
- }
79
+ // Thread list
80
+ const threadList = useMemo(() => {
81
+ if (!threadListAdapter)
82
+ return undefined;
83
+ const { onSwitchToNewThread, onSwitchToThread } = threadListAdapter;
84
+ return {
85
+ threadId: threadListAdapter.threadId,
86
+ onSwitchToNewThread: onSwitchToNewThread
87
+ ? async () => {
88
+ await onSwitchToNewThread();
89
+ core.applyExternalMessages([]);
90
+ }
91
+ : undefined,
92
+ onSwitchToThread: onSwitchToThread
93
+ ? async (threadId) => {
94
+ const result = await onSwitchToThread(threadId);
95
+ core.applyExternalMessages(result.messages);
96
+ }
97
+ : undefined,
96
98
  };
97
- const threadList = {
98
- threadId: contextId,
99
- onSwitchToNewThread: !onSwitchToNewThread
100
- ? undefined
101
- : async () => {
102
- await onSwitchToNewThread();
103
- setMessages([]);
104
- setArtifacts([]);
99
+ }, [threadListAdapter, core]);
100
+ // Adapters
101
+ const adapters = options.adapters;
102
+ const adapterAdapters = useMemo(() => ({
103
+ attachments: adapters?.attachments ?? runtimeAdapters?.attachments,
104
+ speech: adapters?.speech,
105
+ feedback: adapters?.feedback,
106
+ threadList,
107
+ }), [adapters, runtimeAdapters, threadList]);
108
+ // Build store adapter
109
+ const store = useMemo(() => {
110
+ void _version;
111
+ return {
112
+ isLoading: core.isLoading,
113
+ messages: core.getMessages(),
114
+ isRunning: core.isRunning(),
115
+ extras: {
116
+ [symbolA2AExtras]: true,
117
+ task: core.getTask(),
118
+ artifacts: core.getArtifacts(),
119
+ agentCard: core.getAgentCard(),
105
120
  },
106
- onSwitchToThread: switchToThread,
107
- };
108
- const loadingRef = useRef(false);
109
- const threadListItemRuntime = useThreadListItemRuntime({ optional: true });
121
+ onNew: (message) => core.append(message),
122
+ onEdit: (message) => core.edit(message),
123
+ onReload: (parentId) => core.reload(parentId),
124
+ onCancel: () => core.cancel(),
125
+ setMessages: (messages) => core.applyExternalMessages(messages),
126
+ onImport: (messages) => core.applyExternalMessages(messages),
127
+ adapters: adapterAdapters,
128
+ };
129
+ }, [adapterAdapters, core, _version]);
130
+ const runtime = useExternalStoreRuntime(store);
110
131
  useEffect(() => {
111
- if (!threadListItemRuntime || !switchToThread || loadingRef.current)
112
- return;
113
- const externalId = threadListItemRuntime.getState().externalId;
114
- if (externalId) {
115
- loadingRef.current = true;
116
- switchToThread(externalId).finally(() => {
117
- loadingRef.current = false;
118
- });
119
- }
120
- }, [switchToThread, threadListItemRuntime]);
121
- return useExternalStoreRuntime({
122
- isRunning,
123
- messages: threadMessages,
124
- adapters: {
125
- attachments,
126
- feedback,
127
- speech,
128
- threadList,
129
- },
130
- extras: {
131
- [symbolA2ARuntimeExtras]: true,
132
- taskState,
133
- artifacts,
134
- send: handleSendMessage,
135
- },
136
- onNew: (msg) => {
137
- const cancellations = autoCancelPendingToolCalls !== false
138
- ? getPendingToolCalls(messages).map((t) => ({
139
- role: "tool",
140
- tool_call_id: t.id,
141
- content: JSON.stringify({ cancelled: true }),
142
- status: {
143
- type: "incomplete",
144
- reason: "cancelled",
145
- },
146
- }))
147
- : [];
148
- const config = {};
149
- if (contextId !== undefined)
150
- config.contextId = contextId;
151
- if (msg.runConfig !== undefined)
152
- config.runConfig = msg.runConfig;
153
- return handleSendMessage([
154
- ...cancellations,
155
- {
156
- role: "user",
157
- content: getMessageContent(msg),
158
- },
159
- ], config);
160
- },
161
- onAddToolResult: async ({ toolCallId, toolName: _toolName, result, isError, artifact, }) => {
162
- // TODO parallel human in the loop calls
163
- const message = {
164
- role: "tool",
165
- tool_call_id: toolCallId,
166
- content: JSON.stringify(result),
167
- status: isError
168
- ? { type: "incomplete", reason: "error" }
169
- : { type: "complete", reason: "stop" },
170
- };
171
- if (artifact) {
172
- message.artifacts = [artifact];
173
- }
174
- const config = {};
175
- if (contextId !== undefined)
176
- config.contextId = contextId;
177
- await handleSendMessage([message],
178
- // TODO reuse runconfig here!
179
- config);
180
- },
181
- onCancel: unstable_allowCancellation
182
- ? async () => {
183
- cancel();
184
- }
185
- : undefined,
186
- });
187
- };
132
+ core.attachRuntime(runtime);
133
+ return () => {
134
+ core.detachRuntime();
135
+ };
136
+ }, [core, runtime]);
137
+ useEffect(() => {
138
+ core.__internal_load();
139
+ }, [core]);
140
+ return runtime;
141
+ }
188
142
  //# sourceMappingURL=useA2ARuntime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useA2ARuntime.js","sourceRoot":"","sources":["../src/useA2ARuntime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useA2ARuntime.js","sourceRoot":"","sources":["../src/useA2ARuntime.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@assistant-ui/react-a2a",
3
- "version": "0.2.5",
4
- "description": "A2A protocol adapter for assistant-ui",
3
+ "version": "0.2.7",
4
+ "description": "A2A (Agent-to-Agent) v1.0 protocol adapter for assistant-ui",
5
5
  "keywords": [
6
6
  "a2a",
7
7
  "agent-to-agent",
@@ -30,11 +30,10 @@
30
30
  ],
31
31
  "sideEffects": false,
32
32
  "dependencies": {
33
- "assistant-stream": "^0.3.4",
34
- "uuid": "^13.0.0"
33
+ "@assistant-ui/core": "^0.1.7",
34
+ "@assistant-ui/store": "^0.2.3"
35
35
  },
36
36
  "peerDependencies": {
37
- "@assistant-ui/react": "^0.12.12",
38
37
  "@types/react": "*",
39
38
  "react": "^18 || ^19"
40
39
  },
@@ -45,10 +44,9 @@
45
44
  },
46
45
  "devDependencies": {
47
46
  "@types/react": "^19.2.14",
48
- "@types/uuid": "^11.0.0",
49
47
  "react": "^19.2.4",
50
- "@assistant-ui/react": "0.12.12",
51
- "@assistant-ui/x-buildutils": "0.0.1"
48
+ "vitest": "^4.1.0",
49
+ "@assistant-ui/x-buildutils": "0.0.3"
52
50
  },
53
51
  "publishConfig": {
54
52
  "access": "public",
@@ -64,6 +62,8 @@
64
62
  "url": "https://github.com/assistant-ui/assistant-ui/issues"
65
63
  },
66
64
  "scripts": {
67
- "build": "aui-build"
65
+ "build": "aui-build",
66
+ "test": "vitest run",
67
+ "test:watch": "vitest"
68
68
  }
69
69
  }