@assistant-ui/react-google-adk 0.0.10 → 0.0.12

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 (69) 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 -35
  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 -26
  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 -35
  55. package/dist/useAdkRuntime.d.ts.map +1 -1
  56. package/dist/useAdkRuntime.js +195 -273
  57. package/dist/useAdkRuntime.js.map +1 -1
  58. package/package.json +8 -8
  59. package/src/AdkEventAccumulator.test.ts +5 -5
  60. package/src/AdkSessionAdapter.test.ts +7 -7
  61. package/src/convertAdkMessages.test.ts +16 -16
  62. package/src/hooks.ts +0 -2
  63. package/src/index.ts +3 -12
  64. package/src/useAdkMessages.ts +0 -1
  65. package/src/useAdkRuntime.ts +9 -43
  66. package/dist/index.d.ts.map +0 -1
  67. package/dist/index.js.map +0 -1
  68. package/dist/server/index.d.ts.map +0 -1
  69. package/dist/server/index.js.map +0 -1
@@ -1,29 +1,35 @@
1
- /// <reference types="@assistant-ui/core/store" />
2
- import type { AdkMessage, AdkMessageMetadata, AdkSendMessageConfig, AdkStreamCallback, AdkToolConfirmation, AdkAuthRequest, OnAdkErrorCallback, OnAdkCustomEventCallback, OnAdkAgentTransferCallback } from "./types.js";
3
- export type UseAdkMessagesOptions = {
4
- stream: AdkStreamCallback;
5
- eventHandlers?: {
6
- onError?: OnAdkErrorCallback;
7
- onCustomEvent?: OnAdkCustomEventCallback;
8
- onAgentTransfer?: OnAdkAgentTransferCallback;
9
- };
1
+ import { AdkAuthRequest, AdkMessage, AdkMessageMetadata, AdkSendMessageConfig, AdkStreamCallback, AdkToolConfirmation, OnAdkAgentTransferCallback, OnAdkCustomEventCallback, OnAdkErrorCallback } from "./types.js";
2
+
3
+ //#region src/useAdkMessages.d.ts
4
+ type UseAdkMessagesOptions = {
5
+ stream: AdkStreamCallback;
6
+ eventHandlers?: {
7
+ onError?: OnAdkErrorCallback;
8
+ onCustomEvent?: OnAdkCustomEventCallback;
9
+ onAgentTransfer?: OnAdkAgentTransferCallback;
10
+ };
10
11
  };
11
- export declare const useAdkMessages: ({ stream, eventHandlers, }: UseAdkMessagesOptions) => {
12
- messages: AdkMessage[];
13
- stateDelta: Record<string, unknown>;
14
- agentInfo: {
15
- name?: string | undefined;
16
- branch?: string | undefined;
17
- };
18
- longRunningToolIds: string[];
19
- artifactDelta: Record<string, number>;
20
- toolConfirmations: AdkToolConfirmation[];
21
- authRequests: AdkAuthRequest[];
22
- escalated: boolean;
23
- messageMetadata: Map<string, AdkMessageMetadata>;
24
- sendMessage: (newMessages: AdkMessage[], config: AdkSendMessageConfig) => Promise<void>;
25
- cancel: () => void;
26
- setMessages: (msgs: AdkMessage[]) => void;
27
- replaceMessages: (msgs: AdkMessage[]) => void;
12
+ declare const useAdkMessages: ({
13
+ stream,
14
+ eventHandlers
15
+ }: UseAdkMessagesOptions) => {
16
+ messages: AdkMessage[];
17
+ stateDelta: Record<string, unknown>;
18
+ agentInfo: {
19
+ name?: string | undefined;
20
+ branch?: string | undefined;
21
+ };
22
+ longRunningToolIds: string[];
23
+ artifactDelta: Record<string, number>;
24
+ toolConfirmations: AdkToolConfirmation[];
25
+ authRequests: AdkAuthRequest[];
26
+ escalated: boolean;
27
+ messageMetadata: Map<string, AdkMessageMetadata>;
28
+ sendMessage: (newMessages: AdkMessage[], config: AdkSendMessageConfig) => Promise<void>;
29
+ cancel: () => void;
30
+ setMessages: (msgs: AdkMessage[]) => void;
31
+ replaceMessages: (msgs: AdkMessage[]) => void;
28
32
  };
33
+ //#endregion
34
+ export { UseAdkMessagesOptions, useAdkMessages };
29
35
  //# sourceMappingURL=useAdkMessages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAdkMessages.d.ts","sourceRoot":"","sources":["../src/useAdkMessages.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEV,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,wBAAwB,EACxB,0BAA0B,EAC3B,mBAAgB;AAEjB,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,aAAa,CAAC,EAAE;QACd,OAAO,CAAC,EAAE,kBAAkB,CAAC;QAC7B,aAAa,CAAC,EAAE,wBAAwB,CAAC;QACzC,eAAe,CAAC,EAAE,0BAA0B,CAAC;KAC9C,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,4BAG5B,qBAAqB;;;;eAIb,MAAM,GAAG,SAAS;iBAChB,MAAM,GAAG,SAAS;;;;;;;;+BAsDP,UAAU,EAAE,UAAU,oBAAoB;;wBA9BhB,UAAU,EAAE;4BAUnD,UAAU,EAAE;CAiItB,CAAC"}
1
+ {"version":3,"file":"useAdkMessages.d.ts","names":[],"sources":["../src/useAdkMessages.ts"],"mappings":";;;KAkBY,qBAAA;EACV,MAAA,EAAQ,iBAAA;EACR,aAAA;IACE,OAAA,GAAU,kBAAA;IACV,aAAA,GAAgB,wBAAA;IAChB,eAAA,GAAkB,0BAAA;EAAA;AAAA;AAAA,cAIT,cAAA;EAAkB,MAAA;EAAA;AAAA,GAG5B,qBAAA;;;;;;;;;;;;;6BA2DqB,UAAA,IAAY,MAAA,EAAU,oBAAA,KAAoB,OAAA;;sBA9BhB,UAAA;0BAUvC,UAAA;AAAA"}
@@ -1,187 +1,160 @@
1
- /// <reference types="@assistant-ui/core/store" />
2
- import { useState, useCallback, useRef, useMemo } from "react";
3
- import { v4 as uuidv4 } from "uuid";
4
- import { useAui } from "@assistant-ui/store";
5
- import { AdkEventAccumulator } from "./AdkEventAccumulator.js";
6
1
  import { contentToParts } from "./contentToParts.js";
7
- export const useAdkMessages = ({ stream, eventHandlers, }) => {
8
- const [messages, _setMessages] = useState([]);
9
- const [stateDelta, setStateDelta] = useState({});
10
- const [agentInfo, setAgentInfo] = useState({});
11
- const [longRunningToolIds, setLongRunningToolIds] = useState([]);
12
- const [artifactDelta, setArtifactDelta] = useState({});
13
- const [toolConfirmations, setToolConfirmations] = useState([]);
14
- const [authRequests, setAuthRequests] = useState([]);
15
- const [escalated, setEscalated] = useState(false);
16
- const [messageMetadata, setMessageMetadata] = useState(new Map());
17
- const lastTransferToAgentRef = useRef(undefined);
18
- const messagesRef = useRef(messages);
19
- messagesRef.current = messages;
20
- const stateDeltaRef = useRef(stateDelta);
21
- stateDeltaRef.current = stateDelta;
22
- const artifactDeltaRef = useRef(artifactDelta);
23
- artifactDeltaRef.current = artifactDelta;
24
- const messageMetadataRef = useRef(messageMetadata);
25
- messageMetadataRef.current = messageMetadata;
26
- const setMessagesImmediate = useCallback((msgs) => {
27
- messagesRef.current = msgs;
28
- _setMessages(msgs);
29
- }, []);
30
- // Replace the message list AND reset derived per-turn HITL state.
31
- // Used by truncation paths (edit, reload, load) so that stale interrupt
32
- // markers and per-message metadata from the removed messages don't leak
33
- // into the next turn.
34
- const replaceMessages = useCallback((msgs) => {
35
- setMessagesImmediate(msgs);
36
- setLongRunningToolIds([]);
37
- setToolConfirmations([]);
38
- setAuthRequests([]);
39
- setEscalated(false);
40
- setMessageMetadata(new Map());
41
- }, [setMessagesImmediate]);
42
- const abortControllerRef = useRef(null);
43
- const { onError, onCustomEvent, onAgentTransfer } = useMemo(() => eventHandlers ?? {}, [eventHandlers]);
44
- const aui = useAui();
45
- const sendMessage = useCallback(async (newMessages, config) => {
46
- const newMessagesWithId = newMessages.map((m) => m.id ? m : { ...m, id: uuidv4() });
47
- const accumulator = new AdkEventAccumulator(messagesRef.current);
48
- for (const msg of newMessagesWithId) {
49
- accumulator.processEvent(messageToEvent(msg));
50
- }
51
- setMessagesImmediate(accumulator.getMessages());
52
- const abortController = new AbortController();
53
- abortControllerRef.current = abortController;
54
- try {
55
- const response = await stream(newMessagesWithId, {
56
- ...config,
57
- abortSignal: abortController.signal,
58
- initialize: async () => {
59
- return await aui.threadListItem().initialize();
60
- },
61
- });
62
- for await (const event of response) {
63
- const updatedMessages = accumulator.processEvent(event);
64
- setMessagesImmediate(updatedMessages);
65
- setStateDelta({
66
- ...stateDeltaRef.current,
67
- ...accumulator.getStateDelta(),
68
- });
69
- setAgentInfo(accumulator.getAgentInfo());
70
- setLongRunningToolIds(accumulator.getLongRunningToolIds());
71
- setArtifactDelta({
72
- ...artifactDeltaRef.current,
73
- ...accumulator.getArtifactDelta(),
74
- });
75
- setToolConfirmations(accumulator.getToolConfirmations());
76
- setAuthRequests(accumulator.getAuthRequests());
77
- setEscalated(accumulator.isEscalated());
78
- {
79
- const newMeta = accumulator.getMessageMetadata();
80
- if (newMeta.size > 0) {
81
- setMessageMetadata(new Map([...messageMetadataRef.current, ...newMeta]));
82
- }
83
- }
84
- const transfer = accumulator.getLastTransferToAgent();
85
- if (transfer && transfer !== lastTransferToAgentRef.current) {
86
- lastTransferToAgentRef.current = transfer;
87
- onAgentTransfer?.(transfer);
88
- }
89
- // Fire custom event callback for events with customMetadata
90
- if (event.customMetadata && onCustomEvent) {
91
- for (const [key, value] of Object.entries(event.customMetadata)) {
92
- onCustomEvent(key, value);
93
- }
94
- }
95
- if (event.errorCode || event.errorMessage) {
96
- onError?.(event.errorMessage ?? event.errorCode);
97
- }
98
- }
99
- }
100
- catch (error) {
101
- if (!abortController.signal.aborted &&
102
- !(error instanceof Error && error.name === "AbortError")) {
103
- throw error;
104
- }
105
- }
106
- finally {
107
- if (abortControllerRef.current === abortController) {
108
- abortControllerRef.current = null;
109
- }
110
- }
111
- }, [
112
- aui,
113
- setMessagesImmediate,
114
- stream,
115
- onError,
116
- onCustomEvent,
117
- onAgentTransfer,
118
- ]);
119
- const cancel = useCallback(() => {
120
- if (abortControllerRef.current) {
121
- abortControllerRef.current.abort();
122
- }
123
- }, []);
124
- return {
125
- messages,
126
- stateDelta,
127
- agentInfo,
128
- longRunningToolIds,
129
- artifactDelta,
130
- toolConfirmations,
131
- authRequests,
132
- escalated,
133
- messageMetadata,
134
- sendMessage,
135
- cancel,
136
- setMessages: setMessagesImmediate,
137
- replaceMessages,
138
- };
2
+ import { AdkEventAccumulator } from "./AdkEventAccumulator.js";
3
+ import { v4 } from "uuid";
4
+ import { useAui } from "@assistant-ui/store";
5
+ import { useCallback, useMemo, useRef, useState } from "react";
6
+ //#region src/useAdkMessages.ts
7
+ const useAdkMessages = ({ stream, eventHandlers }) => {
8
+ const [messages, _setMessages] = useState([]);
9
+ const [stateDelta, setStateDelta] = useState({});
10
+ const [agentInfo, setAgentInfo] = useState({});
11
+ const [longRunningToolIds, setLongRunningToolIds] = useState([]);
12
+ const [artifactDelta, setArtifactDelta] = useState({});
13
+ const [toolConfirmations, setToolConfirmations] = useState([]);
14
+ const [authRequests, setAuthRequests] = useState([]);
15
+ const [escalated, setEscalated] = useState(false);
16
+ const [messageMetadata, setMessageMetadata] = useState(/* @__PURE__ */ new Map());
17
+ const lastTransferToAgentRef = useRef(void 0);
18
+ const messagesRef = useRef(messages);
19
+ messagesRef.current = messages;
20
+ const stateDeltaRef = useRef(stateDelta);
21
+ stateDeltaRef.current = stateDelta;
22
+ const artifactDeltaRef = useRef(artifactDelta);
23
+ artifactDeltaRef.current = artifactDelta;
24
+ const messageMetadataRef = useRef(messageMetadata);
25
+ messageMetadataRef.current = messageMetadata;
26
+ const setMessagesImmediate = useCallback((msgs) => {
27
+ messagesRef.current = msgs;
28
+ _setMessages(msgs);
29
+ }, []);
30
+ const replaceMessages = useCallback((msgs) => {
31
+ setMessagesImmediate(msgs);
32
+ setLongRunningToolIds([]);
33
+ setToolConfirmations([]);
34
+ setAuthRequests([]);
35
+ setEscalated(false);
36
+ setMessageMetadata(/* @__PURE__ */ new Map());
37
+ }, [setMessagesImmediate]);
38
+ const abortControllerRef = useRef(null);
39
+ const { onError, onCustomEvent, onAgentTransfer } = useMemo(() => eventHandlers ?? {}, [eventHandlers]);
40
+ const aui = useAui();
41
+ return {
42
+ messages,
43
+ stateDelta,
44
+ agentInfo,
45
+ longRunningToolIds,
46
+ artifactDelta,
47
+ toolConfirmations,
48
+ authRequests,
49
+ escalated,
50
+ messageMetadata,
51
+ sendMessage: useCallback(async (newMessages, config) => {
52
+ const newMessagesWithId = newMessages.map((m) => m.id ? m : {
53
+ ...m,
54
+ id: v4()
55
+ });
56
+ const accumulator = new AdkEventAccumulator(messagesRef.current);
57
+ for (const msg of newMessagesWithId) accumulator.processEvent(messageToEvent(msg));
58
+ setMessagesImmediate(accumulator.getMessages());
59
+ const abortController = new AbortController();
60
+ abortControllerRef.current = abortController;
61
+ try {
62
+ const response = await stream(newMessagesWithId, {
63
+ ...config,
64
+ abortSignal: abortController.signal,
65
+ initialize: async () => {
66
+ return await aui.threadListItem().initialize();
67
+ }
68
+ });
69
+ for await (const event of response) {
70
+ setMessagesImmediate(accumulator.processEvent(event));
71
+ setStateDelta({
72
+ ...stateDeltaRef.current,
73
+ ...accumulator.getStateDelta()
74
+ });
75
+ setAgentInfo(accumulator.getAgentInfo());
76
+ setLongRunningToolIds(accumulator.getLongRunningToolIds());
77
+ setArtifactDelta({
78
+ ...artifactDeltaRef.current,
79
+ ...accumulator.getArtifactDelta()
80
+ });
81
+ setToolConfirmations(accumulator.getToolConfirmations());
82
+ setAuthRequests(accumulator.getAuthRequests());
83
+ setEscalated(accumulator.isEscalated());
84
+ {
85
+ const newMeta = accumulator.getMessageMetadata();
86
+ if (newMeta.size > 0) setMessageMetadata(new Map([...messageMetadataRef.current, ...newMeta]));
87
+ }
88
+ const transfer = accumulator.getLastTransferToAgent();
89
+ if (transfer && transfer !== lastTransferToAgentRef.current) {
90
+ lastTransferToAgentRef.current = transfer;
91
+ onAgentTransfer?.(transfer);
92
+ }
93
+ if (event.customMetadata && onCustomEvent) for (const [key, value] of Object.entries(event.customMetadata)) onCustomEvent(key, value);
94
+ if (event.errorCode || event.errorMessage) onError?.(event.errorMessage ?? event.errorCode);
95
+ }
96
+ } catch (error) {
97
+ if (!abortController.signal.aborted && !(error instanceof Error && error.name === "AbortError")) throw error;
98
+ } finally {
99
+ if (abortControllerRef.current === abortController) abortControllerRef.current = null;
100
+ }
101
+ }, [
102
+ aui,
103
+ setMessagesImmediate,
104
+ stream,
105
+ onError,
106
+ onCustomEvent,
107
+ onAgentTransfer
108
+ ]),
109
+ cancel: useCallback(() => {
110
+ if (abortControllerRef.current) abortControllerRef.current.abort();
111
+ }, []),
112
+ setMessages: setMessagesImmediate,
113
+ replaceMessages
114
+ };
139
115
  };
140
116
  /** @internal — exported for unit tests. */
141
- export const messageToEvent = (msg) => {
142
- if (msg.type === "human") {
143
- return {
144
- id: msg.id ?? uuidv4(),
145
- author: "user",
146
- content: { role: "user", parts: contentToParts(msg.content) },
147
- };
148
- }
149
- if (msg.type === "tool") {
150
- let response;
151
- try {
152
- response = JSON.parse(msg.content);
153
- }
154
- catch {
155
- response = msg.content;
156
- }
157
- return {
158
- id: msg.id ?? uuidv4(),
159
- content: {
160
- role: "user",
161
- parts: [
162
- {
163
- functionResponse: {
164
- name: msg.name,
165
- id: msg.tool_call_id,
166
- response,
167
- },
168
- },
169
- ],
170
- },
171
- };
172
- }
173
- const result = { id: msg.id ?? uuidv4() };
174
- if (msg.author != null)
175
- result.author = msg.author;
176
- result.content = {
177
- role: "model",
178
- parts: [
179
- ...contentToParts(msg.content),
180
- ...(msg.tool_calls?.map((tc) => ({
181
- functionCall: { name: tc.name, id: tc.id, args: { ...tc.args } },
182
- })) ?? []),
183
- ],
184
- };
185
- return result;
117
+ const messageToEvent = (msg) => {
118
+ if (msg.type === "human") return {
119
+ id: msg.id ?? v4(),
120
+ author: "user",
121
+ content: {
122
+ role: "user",
123
+ parts: contentToParts(msg.content)
124
+ }
125
+ };
126
+ if (msg.type === "tool") {
127
+ let response;
128
+ try {
129
+ response = JSON.parse(msg.content);
130
+ } catch {
131
+ response = msg.content;
132
+ }
133
+ return {
134
+ id: msg.id ?? v4(),
135
+ content: {
136
+ role: "user",
137
+ parts: [{ functionResponse: {
138
+ name: msg.name,
139
+ id: msg.tool_call_id,
140
+ response
141
+ } }]
142
+ }
143
+ };
144
+ }
145
+ const result = { id: msg.id ?? v4() };
146
+ if (msg.author != null) result.author = msg.author;
147
+ result.content = {
148
+ role: "model",
149
+ parts: [...contentToParts(msg.content), ...msg.tool_calls?.map((tc) => ({ functionCall: {
150
+ name: tc.name,
151
+ id: tc.id,
152
+ args: { ...tc.args }
153
+ } })) ?? []]
154
+ };
155
+ return result;
186
156
  };
157
+ //#endregion
158
+ export { messageToEvent, useAdkMessages };
159
+
187
160
  //# sourceMappingURL=useAdkMessages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAdkMessages.js","sourceRoot":"","sources":["../src/useAdkMessages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAdkMessages.js","names":["uuidv4"],"sources":["../src/useAdkMessages.ts"],"sourcesContent":["import { useState, useCallback, useRef, useMemo } from \"react\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { useAui } from \"@assistant-ui/store\";\nimport { AdkEventAccumulator } from \"./AdkEventAccumulator\";\nimport { contentToParts } from \"./contentToParts\";\nimport type {\n AdkEvent,\n AdkMessage,\n AdkMessageMetadata,\n AdkSendMessageConfig,\n AdkStreamCallback,\n AdkToolConfirmation,\n AdkAuthRequest,\n OnAdkErrorCallback,\n OnAdkCustomEventCallback,\n OnAdkAgentTransferCallback,\n} from \"./types\";\n\nexport type UseAdkMessagesOptions = {\n stream: AdkStreamCallback;\n eventHandlers?: {\n onError?: OnAdkErrorCallback;\n onCustomEvent?: OnAdkCustomEventCallback;\n onAgentTransfer?: OnAdkAgentTransferCallback;\n };\n};\n\nexport const useAdkMessages = ({\n stream,\n eventHandlers,\n}: UseAdkMessagesOptions) => {\n const [messages, _setMessages] = useState<AdkMessage[]>([]);\n const [stateDelta, setStateDelta] = useState<Record<string, unknown>>({});\n const [agentInfo, setAgentInfo] = useState<{\n name?: string | undefined;\n branch?: string | undefined;\n }>({});\n const [longRunningToolIds, setLongRunningToolIds] = useState<string[]>([]);\n const [artifactDelta, setArtifactDelta] = useState<Record<string, number>>(\n {},\n );\n const [toolConfirmations, setToolConfirmations] = useState<\n AdkToolConfirmation[]\n >([]);\n const [authRequests, setAuthRequests] = useState<AdkAuthRequest[]>([]);\n const [escalated, setEscalated] = useState(false);\n const [messageMetadata, setMessageMetadata] = useState<\n Map<string, AdkMessageMetadata>\n >(new Map());\n const lastTransferToAgentRef = useRef<string | undefined>(undefined);\n const messagesRef = useRef(messages);\n messagesRef.current = messages;\n const stateDeltaRef = useRef(stateDelta);\n stateDeltaRef.current = stateDelta;\n const artifactDeltaRef = useRef(artifactDelta);\n artifactDeltaRef.current = artifactDelta;\n const messageMetadataRef = useRef(messageMetadata);\n messageMetadataRef.current = messageMetadata;\n\n const setMessagesImmediate = useCallback((msgs: AdkMessage[]) => {\n messagesRef.current = msgs;\n _setMessages(msgs);\n }, []);\n\n // Replace the message list AND reset derived per-turn HITL state.\n // Used by truncation paths (edit, reload, load) so that stale interrupt\n // markers and per-message metadata from the removed messages don't leak\n // into the next turn.\n const replaceMessages = useCallback(\n (msgs: AdkMessage[]) => {\n setMessagesImmediate(msgs);\n setLongRunningToolIds([]);\n setToolConfirmations([]);\n setAuthRequests([]);\n setEscalated(false);\n setMessageMetadata(new Map());\n },\n [setMessagesImmediate],\n );\n\n const abortControllerRef = useRef<AbortController | null>(null);\n\n const { onError, onCustomEvent, onAgentTransfer } = useMemo(\n () => eventHandlers ?? {},\n [eventHandlers],\n );\n\n const aui = useAui();\n const sendMessage = useCallback(\n async (newMessages: AdkMessage[], config: AdkSendMessageConfig) => {\n const newMessagesWithId = newMessages.map((m) =>\n m.id ? m : { ...m, id: uuidv4() },\n ) as AdkMessage[];\n\n const accumulator = new AdkEventAccumulator(messagesRef.current);\n for (const msg of newMessagesWithId) {\n accumulator.processEvent(messageToEvent(msg));\n }\n setMessagesImmediate(accumulator.getMessages());\n\n const abortController = new AbortController();\n abortControllerRef.current = abortController;\n\n try {\n const response = await stream(newMessagesWithId, {\n ...config,\n abortSignal: abortController.signal,\n initialize: async () => {\n return await aui.threadListItem().initialize();\n },\n });\n\n for await (const event of response) {\n const updatedMessages = accumulator.processEvent(event);\n setMessagesImmediate(updatedMessages);\n setStateDelta({\n ...stateDeltaRef.current,\n ...accumulator.getStateDelta(),\n });\n setAgentInfo(accumulator.getAgentInfo());\n setLongRunningToolIds(accumulator.getLongRunningToolIds());\n setArtifactDelta({\n ...artifactDeltaRef.current,\n ...accumulator.getArtifactDelta(),\n });\n setToolConfirmations(accumulator.getToolConfirmations());\n setAuthRequests(accumulator.getAuthRequests());\n setEscalated(accumulator.isEscalated());\n {\n const newMeta = accumulator.getMessageMetadata();\n if (newMeta.size > 0) {\n setMessageMetadata(\n new Map([...messageMetadataRef.current, ...newMeta]),\n );\n }\n }\n\n const transfer = accumulator.getLastTransferToAgent();\n if (transfer && transfer !== lastTransferToAgentRef.current) {\n lastTransferToAgentRef.current = transfer;\n onAgentTransfer?.(transfer);\n }\n\n // Fire custom event callback for events with customMetadata\n if (event.customMetadata && onCustomEvent) {\n for (const [key, value] of Object.entries(event.customMetadata)) {\n onCustomEvent(key, value);\n }\n }\n\n if (event.errorCode || event.errorMessage) {\n onError?.(event.errorMessage ?? event.errorCode);\n }\n }\n } catch (error) {\n if (\n !abortController.signal.aborted &&\n !(error instanceof Error && error.name === \"AbortError\")\n ) {\n throw error;\n }\n } finally {\n if (abortControllerRef.current === abortController) {\n abortControllerRef.current = null;\n }\n }\n },\n [\n aui,\n setMessagesImmediate,\n stream,\n onError,\n onCustomEvent,\n onAgentTransfer,\n ],\n );\n\n const cancel = useCallback(() => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n }, []);\n\n return {\n messages,\n stateDelta,\n agentInfo,\n longRunningToolIds,\n artifactDelta,\n toolConfirmations,\n authRequests,\n escalated,\n messageMetadata,\n sendMessage,\n cancel,\n setMessages: setMessagesImmediate,\n replaceMessages,\n };\n};\n\n/** @internal — exported for unit tests. */\nexport const messageToEvent = (msg: AdkMessage): AdkEvent => {\n if (msg.type === \"human\") {\n return {\n id: msg.id ?? uuidv4(),\n author: \"user\",\n content: { role: \"user\", parts: contentToParts(msg.content) },\n };\n }\n\n if (msg.type === \"tool\") {\n let response: unknown;\n try {\n response = JSON.parse(msg.content);\n } catch {\n response = msg.content;\n }\n return {\n id: msg.id ?? uuidv4(),\n content: {\n role: \"user\",\n parts: [\n {\n functionResponse: {\n name: msg.name,\n id: msg.tool_call_id,\n response,\n },\n },\n ],\n },\n };\n }\n\n const result: AdkEvent = { id: msg.id ?? uuidv4() };\n if (msg.author != null) result.author = msg.author;\n result.content = {\n role: \"model\",\n parts: [\n ...contentToParts(msg.content),\n ...(msg.tool_calls?.map((tc) => ({\n functionCall: { name: tc.name, id: tc.id, args: { ...tc.args } },\n })) ?? []),\n ],\n };\n return result;\n};\n"],"mappings":"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"}
@@ -1,37 +1,45 @@
1
- /// <reference types="@assistant-ui/core/store" />
2
- import { type AttachmentAdapter, type DictationAdapter, type FeedbackAdapter, type SpeechSynthesisAdapter } from "@assistant-ui/core";
3
- import type { AssistantCloud } from "assistant-cloud";
4
- import type { RemoteThreadListAdapter } from "@assistant-ui/core";
5
- import type { AdkMessage, AdkStreamCallback, OnAdkErrorCallback, OnAdkCustomEventCallback, OnAdkAgentTransferCallback } from "./types.js";
6
- export type UseAdkRuntimeOptions = {
7
- stream: AdkStreamCallback;
8
- autoCancelPendingToolCalls?: boolean | undefined;
9
- unstable_allowCancellation?: boolean | undefined;
10
- getCheckpointId?: (threadId: string, parentMessages: AdkMessage[]) => Promise<string | null>;
11
- load?: (threadId: string) => Promise<{
12
- messages: AdkMessage[];
13
- }>;
14
- create?: () => Promise<{
15
- externalId: string;
16
- }>;
17
- delete?: (threadId: string) => Promise<void>;
18
- adapters?: {
19
- attachments?: AttachmentAdapter;
20
- speech?: SpeechSynthesisAdapter;
21
- dictation?: DictationAdapter;
22
- feedback?: FeedbackAdapter;
23
- } | undefined;
24
- eventHandlers?: {
25
- onError?: OnAdkErrorCallback;
26
- onCustomEvent?: OnAdkCustomEventCallback;
27
- onAgentTransfer?: OnAdkAgentTransferCallback;
28
- } | undefined;
29
- cloud?: AssistantCloud | undefined;
30
- /**
31
- * A `RemoteThreadListAdapter` to use instead of the cloud adapter.
32
- * Use with `createAdkSessionAdapter` for ADK session-backed persistence.
33
- */
34
- sessionAdapter?: RemoteThreadListAdapter | undefined;
1
+ import { AdkMessage, AdkStreamCallback, OnAdkAgentTransferCallback, OnAdkCustomEventCallback, OnAdkErrorCallback } from "./types.js";
2
+ import { AttachmentAdapter, DictationAdapter, FeedbackAdapter, RemoteThreadListAdapter, SpeechSynthesisAdapter } from "@assistant-ui/core";
3
+ import { AssistantCloud } from "assistant-cloud";
4
+
5
+ //#region src/useAdkRuntime.d.ts
6
+ type UseAdkRuntimeOptions = {
7
+ stream: AdkStreamCallback;
8
+ autoCancelPendingToolCalls?: boolean | undefined;
9
+ unstable_allowCancellation?: boolean | undefined;
10
+ getCheckpointId?: (threadId: string, parentMessages: AdkMessage[]) => Promise<string | null>;
11
+ load?: (threadId: string) => Promise<{
12
+ messages: AdkMessage[];
13
+ }>;
14
+ create?: () => Promise<{
15
+ externalId: string;
16
+ }>;
17
+ delete?: (threadId: string) => Promise<void>;
18
+ adapters?: {
19
+ attachments?: AttachmentAdapter;
20
+ speech?: SpeechSynthesisAdapter;
21
+ dictation?: DictationAdapter;
22
+ feedback?: FeedbackAdapter;
23
+ } | undefined;
24
+ eventHandlers?: {
25
+ onError?: OnAdkErrorCallback;
26
+ onCustomEvent?: OnAdkCustomEventCallback;
27
+ onAgentTransfer?: OnAdkAgentTransferCallback;
28
+ } | undefined;
29
+ cloud?: AssistantCloud | undefined;
30
+ /**
31
+ * A `RemoteThreadListAdapter` to use instead of the cloud adapter.
32
+ * Use with `createAdkSessionAdapter` for ADK session-backed persistence.
33
+ */
34
+ sessionAdapter?: RemoteThreadListAdapter | undefined;
35
35
  };
36
- export declare const useAdkRuntime: ({ cloud, sessionAdapter, create, delete: deleteFn, ...options }: UseAdkRuntimeOptions) => import("@assistant-ui/core").AssistantRuntime;
36
+ declare const useAdkRuntime: ({
37
+ cloud,
38
+ sessionAdapter,
39
+ create,
40
+ delete: deleteFn,
41
+ ...options
42
+ }: UseAdkRuntimeOptions) => import("@assistant-ui/core").AssistantRuntime;
43
+ //#endregion
44
+ export { UseAdkRuntimeOptions, useAdkRuntime };
37
45
  //# sourceMappingURL=useAdkRuntime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAdkRuntime.d.ts","sourceRoot":"","sources":["../src/useAdkRuntime.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAG5B,MAAM,oBAAoB,CAAC;AAU5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EACV,UAAU,EAEV,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,0BAA0B,EAC3B,mBAAgB;AA0GjB,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,0BAA0B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjD,0BAA0B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjD,eAAe,CAAC,EAAE,CAChB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,UAAU,EAAE,KACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,QAAQ,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC,CAAC;IACjE,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,QAAQ,CAAC,EACL;QACE,WAAW,CAAC,EAAE,iBAAiB,CAAC;QAChC,MAAM,CAAC,EAAE,sBAAsB,CAAC;QAChC,SAAS,CAAC,EAAE,gBAAgB,CAAC;QAC7B,QAAQ,CAAC,EAAE,eAAe,CAAC;KAC5B,GACD,SAAS,CAAC;IACd,aAAa,CAAC,EACV;QACE,OAAO,CAAC,EAAE,kBAAkB,CAAC;QAC7B,aAAa,CAAC,EAAE,wBAAwB,CAAC;QACzC,eAAe,CAAC,EAAE,0BAA0B,CAAC;KAC9C,GACD,SAAS,CAAC;IACd,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACnC;;;OAGG;IACH,cAAc,CAAC,EAAE,uBAAuB,GAAG,SAAS,CAAC;CACtD,CAAC;AAiPF,eAAO,MAAM,aAAa,GAAI,iEAM3B,oBAAoB,kDAsBtB,CAAC"}
1
+ {"version":3,"file":"useAdkRuntime.d.ts","names":[],"sources":["../src/useAdkRuntime.ts"],"mappings":";;;;;KAyIY,oBAAA;EACV,MAAA,EAAQ,iBAAA;EACR,0BAAA;EACA,0BAAA;EACA,eAAA,IACE,QAAA,UACA,cAAA,EAAgB,UAAA,OACb,OAAA;EACL,IAAA,IAAQ,QAAA,aAAqB,OAAA;IAAU,QAAA,EAAU,UAAA;EAAA;EACjD,MAAA,SAAe,OAAA;IAAU,UAAA;EAAA;EACzB,MAAA,IAAU,QAAA,aAAqB,OAAA;EAC/B,QAAA;IAEM,WAAA,GAAc,iBAAA;IACd,MAAA,GAAS,sBAAA;IACT,SAAA,GAAY,gBAAA;IACZ,QAAA,GAAW,eAAA;EAAA;EAGjB,aAAA;IAEM,OAAA,GAAU,kBAAA;IACV,aAAA,GAAgB,wBAAA;IAChB,eAAA,GAAkB,0BAAA;EAAA;EAGxB,KAAA,GAAQ,cAAA;EAxBR;;;;EA6BA,cAAA,GAAiB,uBAAA;AAAA;AAAA,cA8MN,aAAA;EAAiB,KAAA;EAAA,cAAA;EAAA,MAAA;EAAA,MAAA,EAAA,QAAA;EAAA,GAAA;AAAA,GAM3B,oBAAA,kCAAoB,gBAAA"}