@assistant-ui/react-google-adk 0.0.1

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 (81) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +156 -0
  3. package/dist/AdkClient.d.ts +45 -0
  4. package/dist/AdkClient.d.ts.map +1 -0
  5. package/dist/AdkClient.js +204 -0
  6. package/dist/AdkClient.js.map +1 -0
  7. package/dist/AdkEventAccumulator.d.ts +45 -0
  8. package/dist/AdkEventAccumulator.d.ts.map +1 -0
  9. package/dist/AdkEventAccumulator.js +508 -0
  10. package/dist/AdkEventAccumulator.js.map +1 -0
  11. package/dist/AdkSessionAdapter.d.ts +61 -0
  12. package/dist/AdkSessionAdapter.d.ts.map +1 -0
  13. package/dist/AdkSessionAdapter.js +159 -0
  14. package/dist/AdkSessionAdapter.js.map +1 -0
  15. package/dist/convertAdkMessages.d.ts +4 -0
  16. package/dist/convertAdkMessages.d.ts.map +1 -0
  17. package/dist/convertAdkMessages.js +75 -0
  18. package/dist/convertAdkMessages.js.map +1 -0
  19. package/dist/hooks.d.ts +50 -0
  20. package/dist/hooks.d.ts.map +1 -0
  21. package/dist/hooks.js +173 -0
  22. package/dist/hooks.js.map +1 -0
  23. package/dist/index.d.ts +11 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +10 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/server/adkEventStream.d.ts +42 -0
  28. package/dist/server/adkEventStream.d.ts.map +1 -0
  29. package/dist/server/adkEventStream.js +135 -0
  30. package/dist/server/adkEventStream.js.map +1 -0
  31. package/dist/server/createAdkApiRoute.d.ts +47 -0
  32. package/dist/server/createAdkApiRoute.d.ts.map +1 -0
  33. package/dist/server/createAdkApiRoute.js +41 -0
  34. package/dist/server/createAdkApiRoute.js.map +1 -0
  35. package/dist/server/index.d.ts +4 -0
  36. package/dist/server/index.d.ts.map +1 -0
  37. package/dist/server/index.js +4 -0
  38. package/dist/server/index.js.map +1 -0
  39. package/dist/server/parseAdkRequest.d.ts +56 -0
  40. package/dist/server/parseAdkRequest.d.ts.map +1 -0
  41. package/dist/server/parseAdkRequest.js +93 -0
  42. package/dist/server/parseAdkRequest.js.map +1 -0
  43. package/dist/structuredEvents.d.ts +7 -0
  44. package/dist/structuredEvents.d.ts.map +1 -0
  45. package/dist/structuredEvents.js +79 -0
  46. package/dist/structuredEvents.js.map +1 -0
  47. package/dist/types.d.ts +253 -0
  48. package/dist/types.d.ts.map +1 -0
  49. package/dist/types.js +14 -0
  50. package/dist/types.js.map +1 -0
  51. package/dist/useAdkMessages.d.ts +28 -0
  52. package/dist/useAdkMessages.d.ts.map +1 -0
  53. package/dist/useAdkMessages.js +198 -0
  54. package/dist/useAdkMessages.js.map +1 -0
  55. package/dist/useAdkRuntime.d.ts +36 -0
  56. package/dist/useAdkRuntime.d.ts.map +1 -0
  57. package/dist/useAdkRuntime.js +252 -0
  58. package/dist/useAdkRuntime.js.map +1 -0
  59. package/package.json +83 -0
  60. package/server/package.json +4 -0
  61. package/src/AdkClient.test.ts +662 -0
  62. package/src/AdkClient.ts +274 -0
  63. package/src/AdkEventAccumulator.test.ts +591 -0
  64. package/src/AdkEventAccumulator.ts +602 -0
  65. package/src/AdkSessionAdapter.test.ts +362 -0
  66. package/src/AdkSessionAdapter.ts +245 -0
  67. package/src/convertAdkMessages.test.ts +209 -0
  68. package/src/convertAdkMessages.ts +93 -0
  69. package/src/hooks.ts +217 -0
  70. package/src/index.ts +66 -0
  71. package/src/server/adkEventStream.test.ts +78 -0
  72. package/src/server/adkEventStream.ts +161 -0
  73. package/src/server/createAdkApiRoute.test.ts +370 -0
  74. package/src/server/createAdkApiRoute.ts +86 -0
  75. package/src/server/index.ts +6 -0
  76. package/src/server/parseAdkRequest.test.ts +152 -0
  77. package/src/server/parseAdkRequest.ts +122 -0
  78. package/src/structuredEvents.ts +81 -0
  79. package/src/types.ts +265 -0
  80. package/src/useAdkMessages.ts +259 -0
  81. package/src/useAdkRuntime.ts +398 -0
@@ -0,0 +1,252 @@
1
+ /// <reference types="@assistant-ui/core/store" />
2
+ import { useEffect, useRef, useState } from "react";
3
+ import { getExternalStoreMessages, } from "@assistant-ui/core";
4
+ import { useCloudThreadListAdapter, useRemoteThreadListRuntime, useExternalMessageConverter, useExternalStoreRuntime, useToolInvocations, } from "@assistant-ui/core/react";
5
+ import { useAui } from "@assistant-ui/store";
6
+ import { useAdkMessages } from "./useAdkMessages.js";
7
+ import { convertAdkMessage } from "./convertAdkMessages.js";
8
+ import { symbolAdkRuntimeExtras } from "./hooks.js";
9
+ import { v4 as uuidv4 } from "uuid";
10
+ const getMessageContent = (msg) => {
11
+ const allContent = [
12
+ ...msg.content,
13
+ ...(msg.attachments?.flatMap((a) => a.content) ?? []),
14
+ ];
15
+ const content = allContent.map((part) => {
16
+ const type = part.type;
17
+ switch (type) {
18
+ case "text":
19
+ return { type: "text", text: part.text };
20
+ case "image":
21
+ return { type: "image_url", url: part.image };
22
+ case "file":
23
+ return {
24
+ type: "text",
25
+ text: `[File: ${part.filename ?? "file"}]`,
26
+ };
27
+ case "tool-call":
28
+ throw new Error("Tool call appends are not supported.");
29
+ default:
30
+ const _exhaustiveCheck = type;
31
+ throw new Error(`Unsupported append message part type: ${_exhaustiveCheck}`);
32
+ }
33
+ });
34
+ if (content.length === 1 && content[0]?.type === "text") {
35
+ return content[0].text ?? "";
36
+ }
37
+ return content;
38
+ };
39
+ const getPendingToolCalls = (messages) => {
40
+ const pending = new Map();
41
+ for (const msg of messages) {
42
+ if (msg.type === "ai" && msg.tool_calls) {
43
+ for (const tc of msg.tool_calls) {
44
+ pending.set(tc.id, tc);
45
+ }
46
+ }
47
+ if (msg.type === "tool") {
48
+ pending.delete(msg.tool_call_id);
49
+ }
50
+ }
51
+ return [...pending.values()];
52
+ };
53
+ const truncateAdkMessages = (threadMessages, parentId) => {
54
+ if (parentId === null)
55
+ return [];
56
+ const parentIndex = threadMessages.findIndex((m) => m.id === parentId);
57
+ if (parentIndex === -1)
58
+ return [];
59
+ const truncated = [];
60
+ for (let i = 0; i <= parentIndex && i < threadMessages.length; i++) {
61
+ truncated.push(...getExternalStoreMessages(threadMessages[i]));
62
+ }
63
+ return truncated;
64
+ };
65
+ const useAdkRuntimeImpl = ({ autoCancelPendingToolCalls, adapters: { attachments, feedback, speech } = {}, unstable_allowCancellation, stream, load, getCheckpointId, eventHandlers, }) => {
66
+ const aui = useAui();
67
+ const { messages, stateDelta, agentInfo, longRunningToolIds, artifactDelta, toolConfirmations, authRequests, escalated, messageMetadata, sendMessage, cancel, setMessages, } = useAdkMessages({
68
+ stream,
69
+ ...(eventHandlers && { eventHandlers }),
70
+ });
71
+ const [isRunning, setIsRunning] = useState(false);
72
+ const [toolStatuses, setToolStatuses] = useState({});
73
+ const hasExecutingTools = Object.values(toolStatuses).some((s) => s?.type === "executing");
74
+ const effectiveIsRunning = isRunning || hasExecutingTools;
75
+ const handleSendMessage = async (msgs, config) => {
76
+ try {
77
+ setIsRunning(true);
78
+ await sendMessage(msgs, config);
79
+ }
80
+ finally {
81
+ setIsRunning(false);
82
+ }
83
+ };
84
+ const threadMessages = useExternalMessageConverter({
85
+ callback: convertAdkMessage,
86
+ messages,
87
+ isRunning: effectiveIsRunning,
88
+ });
89
+ const threadMessagesRef = useRef(threadMessages);
90
+ threadMessagesRef.current = threadMessages;
91
+ const [runtimeRef] = useState(() => ({
92
+ get current() {
93
+ return runtime;
94
+ },
95
+ }));
96
+ const toolInvocations = useToolInvocations({
97
+ state: { messages: threadMessages, isRunning: effectiveIsRunning },
98
+ getTools: () => runtimeRef.current.thread.getModelContext().tools,
99
+ onResult: (command) => {
100
+ if (command.type === "add-tool-result") {
101
+ void handleSendMessage([
102
+ {
103
+ id: uuidv4(),
104
+ type: "tool",
105
+ name: command.toolName,
106
+ tool_call_id: command.toolCallId,
107
+ content: JSON.stringify(command.result),
108
+ status: command.isError ? "error" : "success",
109
+ },
110
+ ], {});
111
+ }
112
+ },
113
+ setToolStatuses,
114
+ });
115
+ const runtime = useExternalStoreRuntime({
116
+ isRunning: effectiveIsRunning,
117
+ messages: threadMessages,
118
+ adapters: { attachments, feedback, speech },
119
+ extras: {
120
+ [symbolAdkRuntimeExtras]: true,
121
+ agentInfo,
122
+ stateDelta,
123
+ artifactDelta,
124
+ longRunningToolIds,
125
+ toolConfirmations,
126
+ authRequests,
127
+ escalated,
128
+ messageMetadata,
129
+ send: handleSendMessage,
130
+ },
131
+ onNew: async (msg) => {
132
+ await toolInvocations.abort();
133
+ const cancellations = autoCancelPendingToolCalls !== false
134
+ ? getPendingToolCalls(messages).map((t) => ({
135
+ id: uuidv4(),
136
+ type: "tool",
137
+ name: t.name,
138
+ tool_call_id: t.id,
139
+ content: JSON.stringify({ cancelled: true }),
140
+ status: "error",
141
+ }))
142
+ : [];
143
+ return handleSendMessage([
144
+ ...cancellations,
145
+ {
146
+ id: uuidv4(),
147
+ type: "human",
148
+ content: getMessageContent(msg),
149
+ },
150
+ ], { runConfig: msg.runConfig });
151
+ },
152
+ onEdit: getCheckpointId
153
+ ? async (msg) => {
154
+ await toolInvocations.abort();
155
+ const truncated = truncateAdkMessages(threadMessagesRef.current, msg.parentId);
156
+ setMessages(truncated);
157
+ const externalId = aui.threadListItem().getState().externalId;
158
+ const checkpointId = externalId
159
+ ? await getCheckpointId(externalId, truncated)
160
+ : null;
161
+ return handleSendMessage([
162
+ {
163
+ id: uuidv4(),
164
+ type: "human",
165
+ content: getMessageContent(msg),
166
+ },
167
+ ], {
168
+ runConfig: msg.runConfig,
169
+ ...(checkpointId && { checkpointId }),
170
+ });
171
+ }
172
+ : undefined,
173
+ onReload: getCheckpointId
174
+ ? async (parentId, config) => {
175
+ await toolInvocations.abort();
176
+ const truncated = truncateAdkMessages(threadMessagesRef.current, parentId);
177
+ setMessages(truncated);
178
+ const externalId = aui.threadListItem().getState().externalId;
179
+ const checkpointId = externalId
180
+ ? await getCheckpointId(externalId, truncated)
181
+ : null;
182
+ return handleSendMessage([], {
183
+ runConfig: config.runConfig,
184
+ ...(checkpointId && { checkpointId }),
185
+ });
186
+ }
187
+ : undefined,
188
+ onAddToolResult: async ({ toolCallId, toolName, result, isError, artifact, }) => {
189
+ await handleSendMessage([
190
+ {
191
+ id: uuidv4(),
192
+ type: "tool",
193
+ name: toolName,
194
+ tool_call_id: toolCallId,
195
+ content: JSON.stringify(result),
196
+ artifact,
197
+ status: isError ? "error" : "success",
198
+ },
199
+ ], {});
200
+ },
201
+ onResumeToolCall: (options) => toolInvocations.resume(options.toolCallId, options.payload),
202
+ onCancel: unstable_allowCancellation
203
+ ? async () => {
204
+ cancel();
205
+ await toolInvocations.abort();
206
+ }
207
+ : undefined,
208
+ });
209
+ {
210
+ const loadRef = useRef(load);
211
+ useEffect(() => {
212
+ loadRef.current = load;
213
+ });
214
+ useEffect(() => {
215
+ const loadFn = loadRef.current;
216
+ if (!loadFn)
217
+ return;
218
+ const externalId = aui.threadListItem().getState().externalId;
219
+ if (externalId == null)
220
+ return;
221
+ loadFn(externalId).then(({ messages: msgs }) => {
222
+ setMessages(msgs);
223
+ }, (e) => {
224
+ console.warn("Failed to load ADK session:", e);
225
+ });
226
+ }, [aui, setMessages]);
227
+ }
228
+ return runtime;
229
+ };
230
+ export const useAdkRuntime = ({ cloud, sessionAdapter, create, delete: deleteFn, ...options }) => {
231
+ const aui = useAui();
232
+ const cloudAdapter = useCloudThreadListAdapter({
233
+ cloud,
234
+ create: async () => {
235
+ if (create)
236
+ return create();
237
+ if (aui.threadListItem.source)
238
+ return aui.threadListItem().initialize();
239
+ return { externalId: undefined };
240
+ },
241
+ delete: deleteFn,
242
+ });
243
+ const adapter = sessionAdapter ?? cloudAdapter;
244
+ return useRemoteThreadListRuntime({
245
+ runtimeHook: function RuntimeHook() {
246
+ return useAdkRuntimeImpl(options);
247
+ },
248
+ adapter,
249
+ allowNesting: true,
250
+ });
251
+ };
252
+ //# sourceMappingURL=useAdkRuntime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAdkRuntime.js","sourceRoot":"","sources":["../src/useAdkRuntime.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,83 @@
1
+ {
2
+ "name": "@assistant-ui/react-google-adk",
3
+ "version": "0.0.1",
4
+ "description": "Google ADK adapter for assistant-ui",
5
+ "keywords": [
6
+ "google-adk",
7
+ "adk",
8
+ "assistant-ui",
9
+ "react",
10
+ "ai",
11
+ "chat",
12
+ "agents"
13
+ ],
14
+ "author": "AgentbaseAI Inc.",
15
+ "license": "MIT",
16
+ "type": "module",
17
+ "exports": {
18
+ ".": {
19
+ "aui-source": "./src/index.ts",
20
+ "types": "./dist/index.d.ts",
21
+ "default": "./dist/index.js"
22
+ },
23
+ "./server": {
24
+ "aui-source": "./src/server/index.ts",
25
+ "types": "./dist/server/index.d.ts",
26
+ "default": "./dist/server/index.js"
27
+ }
28
+ },
29
+ "main": "./dist/index.js",
30
+ "types": "./dist/index.d.ts",
31
+ "files": [
32
+ "dist",
33
+ "src",
34
+ "server",
35
+ "README.md"
36
+ ],
37
+ "sideEffects": false,
38
+ "dependencies": {
39
+ "@assistant-ui/core": "^0.1.7",
40
+ "@assistant-ui/store": "^0.2.3",
41
+ "assistant-cloud": "*",
42
+ "assistant-stream": "^0.3.6",
43
+ "uuid": "^13.0.0"
44
+ },
45
+ "peerDependencies": {
46
+ "@google/adk": ">=0.5.0",
47
+ "@types/react": "*",
48
+ "react": "^18 || ^19"
49
+ },
50
+ "peerDependenciesMeta": {
51
+ "@google/adk": {
52
+ "optional": true
53
+ },
54
+ "@types/react": {
55
+ "optional": true
56
+ }
57
+ },
58
+ "devDependencies": {
59
+ "@types/react": "^19.2.14",
60
+ "@types/uuid": "^11.0.0",
61
+ "react": "^19.2.4",
62
+ "vitest": "^4.1.0",
63
+ "@assistant-ui/x-buildutils": "0.0.3"
64
+ },
65
+ "publishConfig": {
66
+ "access": "public",
67
+ "provenance": true
68
+ },
69
+ "homepage": "https://www.assistant-ui.com/",
70
+ "repository": {
71
+ "type": "git",
72
+ "url": "git+https://github.com/assistant-ui/assistant-ui.git",
73
+ "directory": "packages/react-google-adk"
74
+ },
75
+ "bugs": {
76
+ "url": "https://github.com/assistant-ui/assistant-ui/issues"
77
+ },
78
+ "scripts": {
79
+ "build": "aui-build",
80
+ "test": "vitest run",
81
+ "test:watch": "vitest"
82
+ }
83
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "main": "../dist/server/index.js",
3
+ "types": "../dist/server/index.d.ts"
4
+ }