@assistant-ui/react-google-adk 0.0.8 → 0.0.11

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 (63) hide show
  1. package/README.md +15 -128
  2. package/dist/AdkClient.d.ts +30 -26
  3. package/dist/AdkClient.d.ts.map +1 -1
  4. package/dist/AdkClient.js +131 -165
  5. package/dist/AdkClient.js.map +1 -1
  6. package/dist/AdkEventAccumulator.d.ts +43 -39
  7. package/dist/AdkEventAccumulator.d.ts.map +1 -1
  8. package/dist/AdkEventAccumulator.js +446 -531
  9. package/dist/AdkEventAccumulator.js.map +1 -1
  10. package/dist/AdkSessionAdapter.d.ts +40 -37
  11. package/dist/AdkSessionAdapter.d.ts.map +1 -1
  12. package/dist/AdkSessionAdapter.js +134 -155
  13. package/dist/AdkSessionAdapter.js.map +1 -1
  14. package/dist/contentToParts.d.ts +6 -2
  15. package/dist/contentToParts.d.ts.map +1 -1
  16. package/dist/contentToParts.js +37 -34
  17. package/dist/contentToParts.js.map +1 -1
  18. package/dist/convertAdkMessages.d.ts +7 -3
  19. package/dist/convertAdkMessages.d.ts.map +1 -1
  20. package/dist/convertAdkMessages.js +93 -86
  21. package/dist/convertAdkMessages.js.map +1 -1
  22. package/dist/hooks.d.ts +38 -34
  23. package/dist/hooks.d.ts.map +1 -1
  24. package/dist/hooks.js +132 -155
  25. package/dist/hooks.js.map +1 -1
  26. package/dist/index.d.ts +10 -11
  27. package/dist/index.js +10 -10
  28. package/dist/server/adkEventStream.d.ts +27 -25
  29. package/dist/server/adkEventStream.d.ts.map +1 -1
  30. package/dist/server/adkEventStream.js +91 -126
  31. package/dist/server/adkEventStream.js.map +1 -1
  32. package/dist/server/createAdkApiRoute.d.ts +26 -23
  33. package/dist/server/createAdkApiRoute.d.ts.map +1 -1
  34. package/dist/server/createAdkApiRoute.js +34 -37
  35. package/dist/server/createAdkApiRoute.js.map +1 -1
  36. package/dist/server/index.d.ts +4 -4
  37. package/dist/server/index.js +4 -4
  38. package/dist/server/parseAdkRequest.d.ts +21 -18
  39. package/dist/server/parseAdkRequest.d.ts.map +1 -1
  40. package/dist/server/parseAdkRequest.js +80 -88
  41. package/dist/server/parseAdkRequest.js.map +1 -1
  42. package/dist/structuredEvents.d.ts +6 -2
  43. package/dist/structuredEvents.d.ts.map +1 -1
  44. package/dist/structuredEvents.js +70 -75
  45. package/dist/structuredEvents.js.map +1 -1
  46. package/dist/types.d.ts +231 -227
  47. package/dist/types.d.ts.map +1 -1
  48. package/dist/types.js +15 -12
  49. package/dist/types.js.map +1 -1
  50. package/dist/useAdkMessages.d.ts +32 -25
  51. package/dist/useAdkMessages.d.ts.map +1 -1
  52. package/dist/useAdkMessages.js +155 -182
  53. package/dist/useAdkMessages.js.map +1 -1
  54. package/dist/useAdkRuntime.d.ts +43 -34
  55. package/dist/useAdkRuntime.d.ts.map +1 -1
  56. package/dist/useAdkRuntime.js +219 -273
  57. package/dist/useAdkRuntime.js.map +1 -1
  58. package/package.json +8 -8
  59. package/src/useAdkRuntime.ts +6 -2
  60. package/dist/index.d.ts.map +0 -1
  61. package/dist/index.js.map +0 -1
  62. package/dist/server/index.d.ts.map +0 -1
  63. package/dist/server/index.js.map +0 -1
@@ -1,286 +1,232 @@
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
1
  import { convertAdkMessage } from "./convertAdkMessages.js";
8
2
  import { symbolAdkRuntimeExtras } from "./hooks.js";
9
- import { v4 as uuidv4 } from "uuid";
3
+ import { useAdkMessages } from "./useAdkMessages.js";
4
+ import { v4 } from "uuid";
5
+ import { useAui } from "@assistant-ui/store";
6
+ import { useEffect, useRef, useState } from "react";
7
+ import { getExternalStoreMessages } from "@assistant-ui/core";
8
+ import { useCloudThreadListAdapter, useExternalMessageConverter, useExternalStoreRuntime, useRemoteThreadListRuntime, useToolInvocations } from "@assistant-ui/core/react";
9
+ //#region src/useAdkRuntime.ts
10
10
  /** @internal — exported for unit tests. */
11
- export const getMessageContent = (msg) => {
12
- const allContent = [
13
- ...msg.content,
14
- ...(msg.attachments?.flatMap((a) => a.content) ?? []),
15
- ];
16
- const content = allContent.map((part) => {
17
- const type = part.type;
18
- switch (type) {
19
- case "text":
20
- return { type: "text", text: part.text };
21
- case "image":
22
- return { type: "image_url", url: part.image };
23
- case "file":
24
- return {
25
- type: "file",
26
- mimeType: part.mimeType,
27
- data: part.data,
28
- ...(part.filename != null && { filename: part.filename }),
29
- };
30
- case "tool-call":
31
- throw new Error("Tool call appends are not supported.");
32
- default: {
33
- const _exhaustiveCheck = type;
34
- throw new Error(`Unsupported append message part type: ${_exhaustiveCheck}`);
35
- }
36
- }
37
- });
38
- if (content.length === 1 && content[0]?.type === "text") {
39
- return content[0].text ?? "";
40
- }
41
- return content;
11
+ const getMessageContent = (msg) => {
12
+ const content = [...msg.content, ...msg.attachments?.flatMap((a) => a.content) ?? []].map((part) => {
13
+ const type = part.type;
14
+ switch (type) {
15
+ case "text": return {
16
+ type: "text",
17
+ text: part.text
18
+ };
19
+ case "image": return {
20
+ type: "image_url",
21
+ url: part.image
22
+ };
23
+ case "file": return {
24
+ type: "file",
25
+ mimeType: part.mimeType,
26
+ data: part.data,
27
+ ...part.filename != null && { filename: part.filename }
28
+ };
29
+ case "tool-call": throw new Error("Tool call appends are not supported.");
30
+ default: throw new Error(`Unsupported append message part type: ${type}`);
31
+ }
32
+ });
33
+ if (content.length === 1 && content[0]?.type === "text") return content[0].text ?? "";
34
+ return content;
42
35
  };
43
36
  /** @internal — exported for unit tests. */
44
- export const getPendingToolCalls = (messages) => {
45
- const pending = new Map();
46
- for (const msg of messages) {
47
- if (msg.type === "ai" && msg.tool_calls) {
48
- for (const tc of msg.tool_calls) {
49
- pending.set(tc.id, tc);
50
- }
51
- }
52
- if (msg.type === "tool") {
53
- pending.delete(msg.tool_call_id);
54
- }
55
- }
56
- return [...pending.values()];
37
+ const getPendingToolCalls = (messages) => {
38
+ const pending = /* @__PURE__ */ new Map();
39
+ for (const msg of messages) {
40
+ if (msg.type === "ai" && msg.tool_calls) for (const tc of msg.tool_calls) pending.set(tc.id, tc);
41
+ if (msg.type === "tool") pending.delete(msg.tool_call_id);
42
+ }
43
+ return [...pending.values()];
57
44
  };
58
45
  /**
59
- * @internal — exported for unit tests.
60
- *
61
- * Returns `{cancelled: true}` tool responses for pending tool calls when the
62
- * user sends a new turn, EXCEPT for HITL interrupts marked via
63
- * `long_running_tool_ids` (`adk_request_input`, `adk_request_confirmation`,
64
- * `adk_request_credential`). Those must be answered through a dedicated tool
65
- * UI + submit helper, not auto-cancelled.
66
- */
67
- export const getPendingCancellations = (messages, longRunningToolIds) => {
68
- const longRunningSet = new Set(longRunningToolIds);
69
- return getPendingToolCalls(messages)
70
- .filter((t) => !longRunningSet.has(t.id))
71
- .map((t) => ({
72
- id: uuidv4(),
73
- type: "tool",
74
- name: t.name,
75
- tool_call_id: t.id,
76
- content: JSON.stringify({ cancelled: true }),
77
- status: "error",
78
- }));
46
+ * @internal — exported for unit tests.
47
+ *
48
+ * Returns `{cancelled: true}` tool responses for pending tool calls when the
49
+ * user sends a new turn, EXCEPT for HITL interrupts marked via
50
+ * `long_running_tool_ids` (`adk_request_input`, `adk_request_confirmation`,
51
+ * `adk_request_credential`). Those must be answered through a dedicated tool
52
+ * UI + submit helper, not auto-cancelled.
53
+ */
54
+ const getPendingCancellations = (messages, longRunningToolIds) => {
55
+ const longRunningSet = new Set(longRunningToolIds);
56
+ return getPendingToolCalls(messages).filter((t) => !longRunningSet.has(t.id)).map((t) => ({
57
+ id: v4(),
58
+ type: "tool",
59
+ name: t.name,
60
+ tool_call_id: t.id,
61
+ content: JSON.stringify({ cancelled: true }),
62
+ status: "error"
63
+ }));
79
64
  };
80
65
  const truncateAdkMessages = (threadMessages, parentId) => {
81
- if (parentId === null)
82
- return [];
83
- const parentIndex = threadMessages.findIndex((m) => m.id === parentId);
84
- if (parentIndex === -1)
85
- return [];
86
- const truncated = [];
87
- for (let i = 0; i <= parentIndex && i < threadMessages.length; i++) {
88
- truncated.push(...getExternalStoreMessages(threadMessages[i]));
89
- }
90
- return truncated;
66
+ if (parentId === null) return [];
67
+ const parentIndex = threadMessages.findIndex((m) => m.id === parentId);
68
+ if (parentIndex === -1) return [];
69
+ const truncated = [];
70
+ for (let i = 0; i <= parentIndex && i < threadMessages.length; i++) truncated.push(...getExternalStoreMessages(threadMessages[i]));
71
+ return truncated;
91
72
  };
92
- const useAdkRuntimeImpl = ({ autoCancelPendingToolCalls, adapters: { attachments, dictation, feedback, speech } = {}, unstable_allowCancellation, stream, load, getCheckpointId, eventHandlers, }) => {
93
- // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage
94
- const aui = useAui();
95
- const { messages, stateDelta, agentInfo, longRunningToolIds, artifactDelta, toolConfirmations, authRequests, escalated, messageMetadata, sendMessage, cancel, replaceMessages,
96
- // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage
97
- } = useAdkMessages({
98
- stream,
99
- ...(eventHandlers && { eventHandlers }),
100
- });
101
- // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage
102
- const [isRunning, setIsRunning] = useState(false);
103
- // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage
104
- const [toolStatuses, setToolStatuses] = useState({});
105
- const hasExecutingTools = Object.values(toolStatuses).some((s) => s?.type === "executing");
106
- const effectiveIsRunning = isRunning || hasExecutingTools;
107
- const handleSendMessage = async (msgs, config) => {
108
- try {
109
- setIsRunning(true);
110
- await sendMessage(msgs, config);
111
- }
112
- finally {
113
- setIsRunning(false);
114
- }
115
- };
116
- // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage
117
- const threadMessages = useExternalMessageConverter({
118
- callback: convertAdkMessage,
119
- messages,
120
- isRunning: effectiveIsRunning,
121
- });
122
- // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage
123
- const threadMessagesRef = useRef(threadMessages);
124
- threadMessagesRef.current = threadMessages;
125
- // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage
126
- const [runtimeRef] = useState(() => ({
127
- get current() {
128
- return runtime;
129
- },
130
- }));
131
- // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage
132
- const toolInvocations = useToolInvocations({
133
- state: { messages: threadMessages, isRunning: effectiveIsRunning },
134
- getTools: () => runtimeRef.current.thread.getModelContext().tools,
135
- onResult: (command) => {
136
- if (command.type === "add-tool-result") {
137
- void handleSendMessage([
138
- {
139
- id: uuidv4(),
140
- type: "tool",
141
- name: command.toolName,
142
- tool_call_id: command.toolCallId,
143
- content: JSON.stringify(command.result),
144
- status: command.isError ? "error" : "success",
145
- },
146
- ], {});
147
- }
148
- },
149
- setToolStatuses,
150
- });
151
- // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage
152
- const runtime = useExternalStoreRuntime({
153
- isRunning: effectiveIsRunning,
154
- messages: threadMessages,
155
- adapters: { attachments, dictation, feedback, speech },
156
- extras: {
157
- [symbolAdkRuntimeExtras]: true,
158
- agentInfo,
159
- stateDelta,
160
- artifactDelta,
161
- longRunningToolIds,
162
- toolConfirmations,
163
- authRequests,
164
- escalated,
165
- messageMetadata,
166
- send: handleSendMessage,
167
- },
168
- onNew: async (msg) => {
169
- await toolInvocations.abort();
170
- const cancellations = autoCancelPendingToolCalls !== false
171
- ? getPendingCancellations(messages, longRunningToolIds)
172
- : [];
173
- return handleSendMessage([
174
- ...cancellations,
175
- {
176
- id: uuidv4(),
177
- type: "human",
178
- content: getMessageContent(msg),
179
- },
180
- ], { runConfig: msg.runConfig });
181
- },
182
- onEdit: getCheckpointId
183
- ? async (msg) => {
184
- await toolInvocations.abort();
185
- const truncated = truncateAdkMessages(threadMessagesRef.current, msg.parentId);
186
- replaceMessages(truncated);
187
- const externalId = aui.threadListItem().getState().externalId;
188
- const checkpointId = externalId
189
- ? await getCheckpointId(externalId, truncated)
190
- : null;
191
- return handleSendMessage([
192
- {
193
- id: uuidv4(),
194
- type: "human",
195
- content: getMessageContent(msg),
196
- },
197
- ], {
198
- runConfig: msg.runConfig,
199
- ...(checkpointId && { checkpointId }),
200
- });
201
- }
202
- : undefined,
203
- onReload: getCheckpointId
204
- ? async (parentId, config) => {
205
- await toolInvocations.abort();
206
- const truncated = truncateAdkMessages(threadMessagesRef.current, parentId);
207
- replaceMessages(truncated);
208
- const externalId = aui.threadListItem().getState().externalId;
209
- const checkpointId = externalId
210
- ? await getCheckpointId(externalId, truncated)
211
- : null;
212
- return handleSendMessage([], {
213
- runConfig: config.runConfig,
214
- ...(checkpointId && { checkpointId }),
215
- });
216
- }
217
- : undefined,
218
- onAddToolResult: async ({ toolCallId, toolName, result, isError, artifact, }) => {
219
- await handleSendMessage([
220
- {
221
- id: uuidv4(),
222
- type: "tool",
223
- name: toolName,
224
- tool_call_id: toolCallId,
225
- content: JSON.stringify(result),
226
- artifact,
227
- status: isError ? "error" : "success",
228
- },
229
- ], {});
230
- },
231
- onResumeToolCall: (options) => toolInvocations.resume(options.toolCallId, options.payload),
232
- onCancel: unstable_allowCancellation
233
- ? async () => {
234
- cancel();
235
- await toolInvocations.abort();
236
- }
237
- : undefined,
238
- });
239
- {
240
- // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage
241
- const loadRef = useRef(load);
242
- // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage
243
- useEffect(() => {
244
- loadRef.current = load;
245
- });
246
- // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage
247
- useEffect(() => {
248
- const loadFn = loadRef.current;
249
- if (!loadFn)
250
- return;
251
- const externalId = aui.threadListItem().getState().externalId;
252
- if (externalId == null)
253
- return;
254
- loadFn(externalId).then(({ messages: msgs }) => {
255
- replaceMessages(msgs);
256
- }, (e) => {
257
- console.warn("Failed to load ADK session:", e);
258
- });
259
- }, [aui, replaceMessages]);
260
- }
261
- return runtime;
73
+ const useAdkRuntimeImpl = ({ autoCancelPendingToolCalls, adapters: { attachments, dictation, feedback, speech } = {}, unstable_allowCancellation, stream, load, getCheckpointId, eventHandlers }) => {
74
+ const aui = useAui();
75
+ const { messages, stateDelta, agentInfo, longRunningToolIds, artifactDelta, toolConfirmations, authRequests, escalated, messageMetadata, sendMessage, cancel, replaceMessages } = useAdkMessages({
76
+ stream,
77
+ ...eventHandlers && { eventHandlers }
78
+ });
79
+ const [isRunning, setIsRunning] = useState(false);
80
+ const [toolStatuses, setToolStatuses] = useState({});
81
+ const hasExecutingTools = Object.values(toolStatuses).some((s) => s?.type === "executing");
82
+ const effectiveIsRunning = isRunning || hasExecutingTools;
83
+ const handleSendMessage = async (msgs, config) => {
84
+ try {
85
+ setIsRunning(true);
86
+ await sendMessage(msgs, config);
87
+ } finally {
88
+ setIsRunning(false);
89
+ }
90
+ };
91
+ const threadMessages = useExternalMessageConverter({
92
+ callback: convertAdkMessage,
93
+ messages,
94
+ isRunning: effectiveIsRunning
95
+ });
96
+ const threadMessagesRef = useRef(threadMessages);
97
+ threadMessagesRef.current = threadMessages;
98
+ const [runtimeRef] = useState(() => ({ get current() {
99
+ return runtime;
100
+ } }));
101
+ const toolInvocations = useToolInvocations({
102
+ state: {
103
+ messages: threadMessages,
104
+ isRunning: effectiveIsRunning
105
+ },
106
+ getTools: () => runtimeRef.current.thread.getModelContext().tools,
107
+ onResult: (command) => {
108
+ if (command.type === "add-tool-result") handleSendMessage([{
109
+ id: v4(),
110
+ type: "tool",
111
+ name: command.toolName,
112
+ tool_call_id: command.toolCallId,
113
+ content: JSON.stringify(command.result),
114
+ status: command.isError ? "error" : "success"
115
+ }], {});
116
+ },
117
+ setToolStatuses
118
+ });
119
+ const runtime = useExternalStoreRuntime({
120
+ isRunning: effectiveIsRunning,
121
+ messages: threadMessages,
122
+ adapters: {
123
+ attachments,
124
+ dictation,
125
+ feedback,
126
+ speech
127
+ },
128
+ extras: {
129
+ [symbolAdkRuntimeExtras]: true,
130
+ agentInfo,
131
+ stateDelta,
132
+ artifactDelta,
133
+ longRunningToolIds,
134
+ toolConfirmations,
135
+ authRequests,
136
+ escalated,
137
+ messageMetadata,
138
+ send: handleSendMessage
139
+ },
140
+ onNew: async (msg) => {
141
+ await toolInvocations.abort();
142
+ return handleSendMessage([...autoCancelPendingToolCalls !== false ? getPendingCancellations(messages, longRunningToolIds) : [], {
143
+ id: v4(),
144
+ type: "human",
145
+ content: getMessageContent(msg)
146
+ }], { runConfig: msg.runConfig });
147
+ },
148
+ onEdit: getCheckpointId ? async (msg) => {
149
+ await toolInvocations.abort();
150
+ const truncated = truncateAdkMessages(threadMessagesRef.current, msg.parentId);
151
+ replaceMessages(truncated);
152
+ const externalId = aui.threadListItem().getState().externalId;
153
+ const checkpointId = externalId ? await getCheckpointId(externalId, truncated) : null;
154
+ return handleSendMessage([{
155
+ id: v4(),
156
+ type: "human",
157
+ content: getMessageContent(msg)
158
+ }], {
159
+ runConfig: msg.runConfig,
160
+ ...checkpointId && { checkpointId }
161
+ });
162
+ } : void 0,
163
+ onReload: getCheckpointId ? async (parentId, config) => {
164
+ await toolInvocations.abort();
165
+ const truncated = truncateAdkMessages(threadMessagesRef.current, parentId);
166
+ replaceMessages(truncated);
167
+ const externalId = aui.threadListItem().getState().externalId;
168
+ const checkpointId = externalId ? await getCheckpointId(externalId, truncated) : null;
169
+ return handleSendMessage([], {
170
+ runConfig: config.runConfig,
171
+ ...checkpointId && { checkpointId }
172
+ });
173
+ } : void 0,
174
+ onAddToolResult: async ({ toolCallId, toolName, result, isError, artifact }) => {
175
+ await handleSendMessage([{
176
+ id: v4(),
177
+ type: "tool",
178
+ name: toolName,
179
+ tool_call_id: toolCallId,
180
+ content: JSON.stringify(result),
181
+ artifact,
182
+ status: isError ? "error" : "success"
183
+ }], {});
184
+ },
185
+ onResumeToolCall: (options) => toolInvocations.resume(options.toolCallId, options.payload),
186
+ onCancel: unstable_allowCancellation ? async () => {
187
+ cancel();
188
+ await toolInvocations.abort();
189
+ } : void 0
190
+ });
191
+ {
192
+ const loadRef = useRef(load);
193
+ useEffect(() => {
194
+ loadRef.current = load;
195
+ });
196
+ useEffect(() => {
197
+ const loadFn = loadRef.current;
198
+ if (!loadFn) return;
199
+ const externalId = aui.threadListItem().getState().externalId;
200
+ if (externalId == null) return;
201
+ loadFn(externalId).then(({ messages: msgs }) => {
202
+ replaceMessages(msgs);
203
+ }, (e) => {
204
+ console.warn("Failed to load ADK session:", e);
205
+ });
206
+ }, [aui, replaceMessages]);
207
+ }
208
+ return runtime;
262
209
  };
263
- export const useAdkRuntime = ({ cloud, sessionAdapter, create, delete: deleteFn, ...options }) => {
264
- const aui = useAui();
265
- const cloudAdapter = useCloudThreadListAdapter({
266
- cloud,
267
- create: async () => {
268
- if (create)
269
- return create();
270
- if (aui.threadListItem.source)
271
- return aui.threadListItem().initialize();
272
- return { externalId: undefined };
273
- },
274
- delete: deleteFn,
275
- });
276
- const adapter = sessionAdapter ?? cloudAdapter;
277
- return useRemoteThreadListRuntime({
278
- runtimeHook: function RuntimeHook() {
279
- // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage
280
- return useAdkRuntimeImpl(options);
281
- },
282
- adapter,
283
- allowNesting: true,
284
- });
210
+ const useAdkRuntime = ({ cloud, sessionAdapter, create, delete: deleteFn, ...options }) => {
211
+ const aui = useAui();
212
+ const cloudAdapter = useCloudThreadListAdapter({
213
+ cloud,
214
+ create: async () => {
215
+ if (create) return create();
216
+ if (aui.threadListItem.source) return aui.threadListItem().initialize();
217
+ return { externalId: void 0 };
218
+ },
219
+ delete: deleteFn
220
+ });
221
+ return useRemoteThreadListRuntime({
222
+ runtimeHook: function RuntimeHook() {
223
+ return useAdkRuntimeImpl(options);
224
+ },
225
+ adapter: sessionAdapter ?? cloudAdapter,
226
+ allowNesting: true
227
+ });
285
228
  };
229
+ //#endregion
230
+ export { getMessageContent, getPendingCancellations, getPendingToolCalls, useAdkRuntime };
231
+
286
232
  //# sourceMappingURL=useAdkRuntime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAdkRuntime.js","sourceRoot":"","sources":["../src/useAdkRuntime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAdkRuntime.js","names":["_exhaustiveCheck","uuidv4"],"sources":["../src/useAdkRuntime.ts"],"sourcesContent":["/// <reference types=\"@assistant-ui/core/store\" />\nimport { useEffect, useRef, useState } from \"react\";\nimport {\n getExternalStoreMessages,\n type AttachmentAdapter,\n type DictationAdapter,\n type FeedbackAdapter,\n type SpeechSynthesisAdapter,\n type AppendMessage,\n type ThreadMessage,\n} from \"@assistant-ui/core\";\nimport {\n type ToolExecutionStatus,\n useCloudThreadListAdapter,\n useRemoteThreadListRuntime,\n useExternalMessageConverter,\n useExternalStoreRuntime,\n useToolInvocations,\n} from \"@assistant-ui/core/react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport type { AssistantCloud } from \"assistant-cloud\";\nimport type { RemoteThreadListAdapter } from \"@assistant-ui/core\";\nimport type {\n AdkMessage,\n AdkSendMessageConfig,\n AdkStreamCallback,\n OnAdkErrorCallback,\n OnAdkCustomEventCallback,\n OnAdkAgentTransferCallback,\n} from \"./types\";\nimport { useAdkMessages } from \"./useAdkMessages\";\nimport { convertAdkMessage } from \"./convertAdkMessages\";\nimport { symbolAdkRuntimeExtras, type AdkRuntimeExtras } from \"./hooks\";\nimport { v4 as uuidv4 } from \"uuid\";\n\n/** @internal — exported for unit tests. */\nexport const getMessageContent = (msg: AppendMessage) => {\n const allContent = [\n ...msg.content,\n ...(msg.attachments?.flatMap((a) => a.content) ?? []),\n ];\n const content = allContent.map((part) => {\n const type = part.type;\n switch (type) {\n case \"text\":\n return { type: \"text\" as const, text: part.text };\n case \"image\":\n return { type: \"image_url\" as const, url: part.image };\n case \"file\":\n return {\n type: \"file\" as const,\n mimeType: part.mimeType,\n data: part.data,\n ...(part.filename != null && { filename: part.filename }),\n };\n\n case \"tool-call\":\n throw new Error(\"Tool call appends are not supported.\");\n\n default: {\n const _exhaustiveCheck:\n | \"reasoning\"\n | \"source\"\n | \"audio\"\n | \"data\"\n | \"generative-ui\" = type;\n throw new Error(\n `Unsupported append message part type: ${_exhaustiveCheck}`,\n );\n }\n }\n });\n\n if (content.length === 1 && content[0]?.type === \"text\") {\n return content[0].text ?? \"\";\n }\n\n return content;\n};\n\n/** @internal — exported for unit tests. */\nexport const getPendingToolCalls = (messages: AdkMessage[]) => {\n const pending = new Map<string, { id: string; name: string }>();\n for (const msg of messages) {\n if (msg.type === \"ai\" && msg.tool_calls) {\n for (const tc of msg.tool_calls) {\n pending.set(tc.id, tc);\n }\n }\n if (msg.type === \"tool\") {\n pending.delete(msg.tool_call_id);\n }\n }\n return [...pending.values()];\n};\n\n/**\n * @internal — exported for unit tests.\n *\n * Returns `{cancelled: true}` tool responses for pending tool calls when the\n * user sends a new turn, EXCEPT for HITL interrupts marked via\n * `long_running_tool_ids` (`adk_request_input`, `adk_request_confirmation`,\n * `adk_request_credential`). Those must be answered through a dedicated tool\n * UI + submit helper, not auto-cancelled.\n */\nexport const getPendingCancellations = (\n messages: AdkMessage[],\n longRunningToolIds: readonly string[],\n): Array<AdkMessage & { type: \"tool\" }> => {\n const longRunningSet = new Set(longRunningToolIds);\n return getPendingToolCalls(messages)\n .filter((t) => !longRunningSet.has(t.id))\n .map(\n (t) =>\n ({\n id: uuidv4(),\n type: \"tool\",\n name: t.name,\n tool_call_id: t.id,\n content: JSON.stringify({ cancelled: true }),\n status: \"error\",\n }) satisfies AdkMessage & { type: \"tool\" },\n );\n};\n\nconst truncateAdkMessages = (\n threadMessages: readonly ThreadMessage[],\n parentId: string | null,\n): AdkMessage[] => {\n if (parentId === null) return [];\n const parentIndex = threadMessages.findIndex((m) => m.id === parentId);\n if (parentIndex === -1) return [];\n const truncated: AdkMessage[] = [];\n for (let i = 0; i <= parentIndex && i < threadMessages.length; i++) {\n truncated.push(...getExternalStoreMessages<AdkMessage>(threadMessages[i]!));\n }\n return truncated;\n};\n\nexport type UseAdkRuntimeOptions = {\n stream: AdkStreamCallback;\n autoCancelPendingToolCalls?: boolean | undefined;\n unstable_allowCancellation?: boolean | undefined;\n getCheckpointId?: (\n threadId: string,\n parentMessages: AdkMessage[],\n ) => Promise<string | null>;\n load?: (threadId: string) => Promise<{ messages: AdkMessage[] }>;\n create?: () => Promise<{ externalId: string }>;\n delete?: (threadId: string) => Promise<void>;\n adapters?:\n | {\n attachments?: AttachmentAdapter;\n speech?: SpeechSynthesisAdapter;\n dictation?: DictationAdapter;\n feedback?: FeedbackAdapter;\n }\n | undefined;\n eventHandlers?:\n | {\n onError?: OnAdkErrorCallback;\n onCustomEvent?: OnAdkCustomEventCallback;\n onAgentTransfer?: OnAdkAgentTransferCallback;\n }\n | undefined;\n cloud?: AssistantCloud | undefined;\n /**\n * A `RemoteThreadListAdapter` to use instead of the cloud adapter.\n * Use with `createAdkSessionAdapter` for ADK session-backed persistence.\n */\n sessionAdapter?: RemoteThreadListAdapter | undefined;\n};\n\nconst useAdkRuntimeImpl = ({\n autoCancelPendingToolCalls,\n adapters: { attachments, dictation, feedback, speech } = {},\n unstable_allowCancellation,\n stream,\n load,\n getCheckpointId,\n eventHandlers,\n}: UseAdkRuntimeOptions) => {\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n const aui = useAui();\n const {\n messages,\n stateDelta,\n agentInfo,\n longRunningToolIds,\n artifactDelta,\n toolConfirmations,\n authRequests,\n escalated,\n messageMetadata,\n sendMessage,\n cancel,\n replaceMessages,\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n } = useAdkMessages({\n stream,\n ...(eventHandlers && { eventHandlers }),\n });\n\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n const [isRunning, setIsRunning] = useState(false);\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n const [toolStatuses, setToolStatuses] = useState<\n Record<string, ToolExecutionStatus>\n >({});\n const hasExecutingTools = Object.values(toolStatuses).some(\n (s) => s?.type === \"executing\",\n );\n const effectiveIsRunning = isRunning || hasExecutingTools;\n\n const handleSendMessage = async (\n msgs: AdkMessage[],\n config: AdkSendMessageConfig,\n ) => {\n try {\n setIsRunning(true);\n await sendMessage(msgs, config);\n } finally {\n setIsRunning(false);\n }\n };\n\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n const threadMessages = useExternalMessageConverter({\n callback: convertAdkMessage,\n messages,\n isRunning: effectiveIsRunning,\n });\n\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n const threadMessagesRef = useRef(threadMessages);\n threadMessagesRef.current = threadMessages;\n\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n const [runtimeRef] = useState(() => ({\n get current() {\n return runtime;\n },\n }));\n\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n const toolInvocations = useToolInvocations({\n state: { messages: threadMessages, isRunning: effectiveIsRunning },\n getTools: () => runtimeRef.current.thread.getModelContext().tools,\n onResult: (command) => {\n if (command.type === \"add-tool-result\") {\n void handleSendMessage(\n [\n {\n id: uuidv4(),\n type: \"tool\",\n name: command.toolName,\n tool_call_id: command.toolCallId,\n content: JSON.stringify(command.result),\n status: command.isError ? \"error\" : \"success\",\n },\n ],\n {},\n );\n }\n },\n setToolStatuses,\n });\n\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n const runtime = useExternalStoreRuntime({\n isRunning: effectiveIsRunning,\n messages: threadMessages,\n adapters: { attachments, dictation, feedback, speech },\n extras: {\n [symbolAdkRuntimeExtras]: true,\n agentInfo,\n stateDelta,\n artifactDelta,\n longRunningToolIds,\n toolConfirmations,\n authRequests,\n escalated,\n messageMetadata,\n send: handleSendMessage,\n } satisfies AdkRuntimeExtras,\n onNew: async (msg) => {\n await toolInvocations.abort();\n\n const cancellations =\n autoCancelPendingToolCalls !== false\n ? getPendingCancellations(messages, longRunningToolIds)\n : [];\n\n return handleSendMessage(\n [\n ...cancellations,\n {\n id: uuidv4(),\n type: \"human\",\n content: getMessageContent(msg),\n },\n ],\n { runConfig: msg.runConfig },\n );\n },\n onEdit: getCheckpointId\n ? async (msg) => {\n await toolInvocations.abort();\n const truncated = truncateAdkMessages(\n threadMessagesRef.current,\n msg.parentId,\n );\n replaceMessages(truncated);\n const externalId = aui.threadListItem().getState().externalId;\n const checkpointId = externalId\n ? await getCheckpointId(externalId, truncated)\n : null;\n return handleSendMessage(\n [\n {\n id: uuidv4(),\n type: \"human\",\n content: getMessageContent(msg),\n },\n ],\n {\n runConfig: msg.runConfig,\n ...(checkpointId && { checkpointId }),\n },\n );\n }\n : undefined,\n onReload: getCheckpointId\n ? async (parentId, config) => {\n await toolInvocations.abort();\n const truncated = truncateAdkMessages(\n threadMessagesRef.current,\n parentId,\n );\n replaceMessages(truncated);\n const externalId = aui.threadListItem().getState().externalId;\n const checkpointId = externalId\n ? await getCheckpointId(externalId, truncated)\n : null;\n return handleSendMessage([], {\n runConfig: config.runConfig,\n ...(checkpointId && { checkpointId }),\n });\n }\n : undefined,\n onAddToolResult: async ({\n toolCallId,\n toolName,\n result,\n isError,\n artifact,\n }) => {\n await handleSendMessage(\n [\n {\n id: uuidv4(),\n type: \"tool\",\n name: toolName,\n tool_call_id: toolCallId,\n content: JSON.stringify(result),\n artifact,\n status: isError ? \"error\" : \"success\",\n },\n ],\n {},\n );\n },\n onResumeToolCall: (options) =>\n toolInvocations.resume(options.toolCallId, options.payload),\n onCancel: unstable_allowCancellation\n ? async () => {\n cancel();\n await toolInvocations.abort();\n }\n : undefined,\n });\n\n {\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n const loadRef = useRef(load);\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n useEffect(() => {\n loadRef.current = load;\n });\n\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n useEffect(() => {\n const loadFn = loadRef.current;\n if (!loadFn) return;\n\n const externalId = aui.threadListItem().getState().externalId;\n if (externalId == null) return;\n\n loadFn(externalId).then(\n ({ messages: msgs }) => {\n replaceMessages(msgs);\n },\n (e) => {\n console.warn(\"Failed to load ADK session:\", e);\n },\n );\n }, [aui, replaceMessages]);\n }\n\n return runtime;\n};\n\nexport const useAdkRuntime = ({\n cloud,\n sessionAdapter,\n create,\n delete: deleteFn,\n ...options\n}: UseAdkRuntimeOptions) => {\n const aui = useAui();\n const cloudAdapter = useCloudThreadListAdapter({\n cloud,\n create: async () => {\n if (create) return create();\n if (aui.threadListItem.source) return aui.threadListItem().initialize();\n return { externalId: undefined };\n },\n delete: deleteFn,\n });\n\n const adapter = sessionAdapter ?? cloudAdapter;\n\n return useRemoteThreadListRuntime({\n runtimeHook: function RuntimeHook() {\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n return useAdkRuntimeImpl(options);\n },\n adapter,\n allowNesting: true,\n });\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@assistant-ui/react-google-adk",
3
- "version": "0.0.8",
3
+ "version": "0.0.11",
4
4
  "description": "Google ADK adapter for assistant-ui",
5
5
  "keywords": [
6
6
  "google-adk",
@@ -34,10 +34,10 @@
34
34
  ],
35
35
  "sideEffects": false,
36
36
  "dependencies": {
37
- "@assistant-ui/core": "^0.1.16",
38
- "@assistant-ui/store": "^0.2.9",
37
+ "@assistant-ui/core": "^0.2.5",
38
+ "@assistant-ui/store": "^0.2.12",
39
39
  "assistant-cloud": "*",
40
- "assistant-stream": "^0.3.12",
40
+ "assistant-stream": "^0.3.16",
41
41
  "uuid": "^14.0.0"
42
42
  },
43
43
  "peerDependencies": {
@@ -54,11 +54,11 @@
54
54
  }
55
55
  },
56
56
  "devDependencies": {
57
- "@types/react": "^19.2.14",
57
+ "@types/react": "^19.2.15",
58
58
  "@types/uuid": "^11.0.0",
59
- "react": "^19.2.5",
60
- "vitest": "^4.1.5",
61
- "@assistant-ui/x-buildutils": "0.0.6"
59
+ "react": "^19.2.6",
60
+ "vitest": "^4.1.7",
61
+ "@assistant-ui/x-buildutils": "0.0.9"
62
62
  },
63
63
  "publishConfig": {
64
64
  "access": "public",
@@ -58,8 +58,12 @@ export const getMessageContent = (msg: AppendMessage) => {
58
58
  throw new Error("Tool call appends are not supported.");
59
59
 
60
60
  default: {
61
- const _exhaustiveCheck: "reasoning" | "source" | "audio" | "data" =
62
- type;
61
+ const _exhaustiveCheck:
62
+ | "reasoning"
63
+ | "source"
64
+ | "audio"
65
+ | "data"
66
+ | "generative-ui" = type;
63
67
  throw new Error(
64
68
  `Unsupported append message part type: ${_exhaustiveCheck}`,
65
69
  );
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,KAAK,oBAAoB,GAC1B,2BAAwB;AAEzB,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,GAC3B,4BAAyB;AAE1B,OAAO,EAAE,iBAAiB,EAAE,gCAA6B;AAEzD,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,UAAU,EACV,qBAAqB,EACrB,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,0BAA0B,GAC3B,mBAAgB;AAEjB,OAAO,EAAE,YAAY,EAAE,mBAAgB;AAEvC,OAAO,EAAE,qBAAqB,EAAE,8BAA2B;AAE3D,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAE5D,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,GAC5B,uBAAoB;AAErB,OAAO,EACL,uBAAuB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,GACrB,+BAA4B;AAE7B,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,eAAe,GAChB,mBAAgB"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,GAEd,2BAAwB;AAEzB,OAAO,EACL,cAAc,GAEf,4BAAyB;AAE1B,OAAO,EAAE,iBAAiB,EAAE,gCAA6B;AAuBzD,OAAO,EAAE,YAAY,EAAE,mBAAgB;AAEvC,OAAO,EAAE,qBAAqB,EAAE,8BAA2B;AAE3D,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAE5D,OAAO,EACL,eAAe,GAEhB,uBAAoB;AAErB,OAAO,EACL,uBAAuB,GAGxB,+BAA4B;AAE7B,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,eAAe,GAChB,mBAAgB"}