@assistant-ui/react-google-adk 0.0.30 → 0.0.32
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.
- package/dist/AdkClient.d.ts +26 -29
- package/dist/AdkClient.d.ts.map +1 -1
- package/dist/AdkClient.js +5 -3
- package/dist/AdkClient.js.map +1 -1
- package/dist/AdkEventAccumulator.d.ts +41 -45
- package/dist/AdkEventAccumulator.d.ts.map +1 -1
- package/dist/AdkEventAccumulator.js +63 -99
- package/dist/AdkEventAccumulator.js.map +1 -1
- package/dist/AdkSessionAdapter.d.ts +41 -39
- package/dist/AdkSessionAdapter.d.ts.map +1 -1
- package/dist/AdkSessionAdapter.js +11 -7
- package/dist/AdkSessionAdapter.js.map +1 -1
- package/dist/adkAuthRequest.d.ts +17 -0
- package/dist/adkAuthRequest.d.ts.map +1 -0
- package/dist/adkAuthRequest.js +45 -0
- package/dist/adkAuthRequest.js.map +1 -0
- package/dist/adkExtras.d.ts +2 -5
- package/dist/adkExtras.d.ts.map +1 -1
- package/dist/adkToolApproval.d.ts +18 -21
- package/dist/adkToolApproval.d.ts.map +1 -1
- package/dist/adkToolApproval.js +1 -3
- package/dist/adkToolApproval.js.map +1 -1
- package/dist/contentToParts.d.ts +2 -5
- package/dist/contentToParts.d.ts.map +1 -1
- package/dist/convertAdkMessages.d.ts +5 -8
- package/dist/convertAdkMessages.d.ts.map +1 -1
- package/dist/convertAdkMessages.js +4 -3
- package/dist/convertAdkMessages.js.map +1 -1
- package/dist/convertToAdkMessages.d.ts +36 -39
- package/dist/convertToAdkMessages.d.ts.map +1 -1
- package/dist/hooks.d.ts +25 -23
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +12 -10
- package/dist/hooks.js.map +1 -1
- package/dist/index.d.ts +11 -10
- package/dist/index.d.ts.map +1 -0
- package/dist/normalizeAdkPart.d.ts +2 -0
- package/dist/normalizeAdkPart.d.ts.map +1 -0
- package/dist/normalizeAdkPart.js +31 -0
- package/dist/normalizeAdkPart.js.map +1 -0
- package/dist/parseAdkEvent.d.ts +2 -5
- package/dist/parseAdkEvent.d.ts.map +1 -1
- package/dist/raceWithAbortSignal.d.ts +2 -0
- package/dist/raceWithAbortSignal.d.ts.map +1 -0
- package/dist/raceWithAbortSignal.js +45 -0
- package/dist/raceWithAbortSignal.js.map +1 -0
- package/dist/sdkIdentity.d.ts +2 -5
- package/dist/sdkIdentity.d.ts.map +1 -1
- package/dist/sdkIdentity.js +1 -1
- package/dist/server/adkEventStream.d.ts +25 -27
- package/dist/server/adkEventStream.d.ts.map +1 -1
- package/dist/server/adkEventStream.js +23 -15
- package/dist/server/adkEventStream.js.map +1 -1
- package/dist/server/createAdkApiRoute.d.ts +23 -25
- package/dist/server/createAdkApiRoute.d.ts.map +1 -1
- package/dist/server/index.d.ts +4 -4
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/parseAdkRequest.d.ts +18 -20
- package/dist/server/parseAdkRequest.d.ts.map +1 -1
- package/dist/structuredEvents.d.ts +2 -5
- package/dist/structuredEvents.d.ts.map +1 -1
- package/dist/structuredEvents.js +1 -1
- package/dist/structuredEvents.js.map +1 -1
- package/dist/toAdkFunctionResponse.d.ts +2 -5
- package/dist/toAdkFunctionResponse.d.ts.map +1 -1
- package/dist/trimTrailingSlashes.d.ts +1 -4
- package/dist/trimTrailingSlashes.d.ts.map +1 -1
- package/dist/types.d.ts +253 -256
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/useAdkMessages.d.ts +26 -29
- package/dist/useAdkMessages.d.ts.map +1 -1
- package/dist/useAdkMessages.js +2 -0
- package/dist/useAdkMessages.js.map +1 -1
- package/dist/useAdkRuntime.d.ts +50 -52
- package/dist/useAdkRuntime.d.ts.map +1 -1
- package/dist/useAdkRuntime.js +1 -1
- package/package.json +10 -9
- package/src/AdkClient.test.ts +50 -0
- package/src/AdkClient.ts +10 -3
- package/src/AdkEventAccumulator.test.ts +312 -11
- package/src/AdkEventAccumulator.ts +68 -142
- package/src/AdkSessionAdapter.test.ts +284 -1
- package/src/AdkSessionAdapter.ts +32 -8
- package/src/adkAuthRequest.test.ts +101 -0
- package/src/adkAuthRequest.ts +50 -0
- package/src/adkToolApproval.test.ts +0 -4
- package/src/adkToolApproval.ts +1 -3
- package/src/convertAdkMessages.test.ts +41 -0
- package/src/convertAdkMessages.ts +19 -7
- package/src/hooks.render.test.tsx +95 -2
- package/src/hooks.ts +12 -13
- package/src/normalizeAdkPart.ts +35 -0
- package/src/raceWithAbortSignal.test.ts +73 -0
- package/src/raceWithAbortSignal.ts +48 -0
- package/src/server/adkEventStream.test.ts +147 -0
- package/src/server/adkEventStream.ts +27 -20
- package/src/structuredEvents.test.ts +69 -0
- package/src/structuredEvents.ts +4 -1
- package/src/types.ts +1 -1
- package/src/useAdkMessages.test.ts +102 -3
- package/src/useAdkMessages.ts +2 -0
- package/src/useAdkRuntime.replacement.test.tsx +11 -7
|
@@ -1,32 +1,31 @@
|
|
|
1
|
-
//#region src/server/adkEventStream.d.ts
|
|
2
1
|
/**
|
|
3
2
|
* The ADK SDK Event type. Intentionally loose to avoid requiring @google/adk.
|
|
4
3
|
*/
|
|
5
4
|
type AdkSdkEvent = {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
5
|
+
id?: string;
|
|
6
|
+
invocationId?: string;
|
|
7
|
+
author?: string;
|
|
8
|
+
branch?: string;
|
|
9
|
+
partial?: boolean;
|
|
10
|
+
turnComplete?: boolean;
|
|
11
|
+
interrupted?: boolean;
|
|
12
|
+
finishReason?: string;
|
|
13
|
+
timestamp?: number;
|
|
14
|
+
content?: {
|
|
15
|
+
role?: string;
|
|
16
|
+
parts?: Array<Record<string, unknown>>;
|
|
17
|
+
};
|
|
18
|
+
actions?: Record<string, unknown>;
|
|
19
|
+
longRunningToolIds?: string[];
|
|
20
|
+
errorCode?: string;
|
|
21
|
+
errorMessage?: string;
|
|
22
|
+
groundingMetadata?: unknown;
|
|
23
|
+
citationMetadata?: unknown;
|
|
24
|
+
usageMetadata?: unknown;
|
|
25
|
+
customMetadata?: Record<string, unknown>;
|
|
27
26
|
};
|
|
28
|
-
type AdkEventStreamOptions = {
|
|
29
|
-
|
|
27
|
+
export type AdkEventStreamOptions = {
|
|
28
|
+
onError?: (error: unknown) => void;
|
|
30
29
|
};
|
|
31
30
|
/**
|
|
32
31
|
* Converts an AsyncGenerator of ADK SDK Events into an SSE Response.
|
|
@@ -38,7 +37,6 @@ type AdkEventStreamOptions = {
|
|
|
38
37
|
* return adkEventStream(events);
|
|
39
38
|
* ```
|
|
40
39
|
*/
|
|
41
|
-
declare const adkEventStream: (events: AsyncGenerator<AdkSdkEvent, void, undefined>, options?: AdkEventStreamOptions) => Response;
|
|
42
|
-
|
|
43
|
-
export { AdkEventStreamOptions, adkEventStream };
|
|
40
|
+
export declare const adkEventStream: (events: AsyncGenerator<AdkSdkEvent, void, undefined>, options?: AdkEventStreamOptions) => Response;
|
|
41
|
+
export {};
|
|
44
42
|
//# sourceMappingURL=adkEventStream.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adkEventStream.d.ts","
|
|
1
|
+
{"version":3,"file":"adkEventStream.d.ts","sourceRoot":"","sources":["../../src/server/adkEventStream.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,KAAK,WAAW,GAAG;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;KACxC,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C,CAAC;AAwEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC,CAAC;AAiBF;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GACzB,QAAQ,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC,EACpD,UAAU,qBAAqB,KAC9B,QAmDF,CAAC"}
|
|
@@ -72,25 +72,33 @@ const adkEventStream = (events, options) => {
|
|
|
72
72
|
const encoder = new TextEncoder();
|
|
73
73
|
let cancelled = false;
|
|
74
74
|
const stream = new ReadableStream({
|
|
75
|
-
|
|
75
|
+
start(controller) {
|
|
76
76
|
controller.enqueue(encoder.encode(":ok\n\n"));
|
|
77
|
+
},
|
|
78
|
+
async pull(controller) {
|
|
77
79
|
try {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
controller.
|
|
80
|
+
const { done, value } = await events.next();
|
|
81
|
+
if (cancelled) return;
|
|
82
|
+
if (done) {
|
|
83
|
+
controller.close();
|
|
84
|
+
return;
|
|
82
85
|
}
|
|
86
|
+
const wireEvent = convertSdkEvent(value);
|
|
87
|
+
controller.enqueue(encoder.encode(`data: ${JSON.stringify(wireEvent)}\n\n`));
|
|
83
88
|
} catch (e) {
|
|
84
|
-
if (
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
89
|
+
if (cancelled) return;
|
|
90
|
+
try {
|
|
91
|
+
await events.return?.(void 0);
|
|
92
|
+
} catch {}
|
|
93
|
+
if (cancelled) return;
|
|
94
|
+
notifyError(options?.onError, e);
|
|
95
|
+
if (cancelled) return;
|
|
96
|
+
const errorEvent = {
|
|
97
|
+
id: "",
|
|
98
|
+
errorCode: "STREAM_ERROR",
|
|
99
|
+
errorMessage: e instanceof Error ? e.message : "Unknown stream error"
|
|
100
|
+
};
|
|
101
|
+
controller.enqueue(encoder.encode(`data: ${JSON.stringify(errorEvent)}\n\n`));
|
|
94
102
|
controller.close();
|
|
95
103
|
}
|
|
96
104
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adkEventStream.js","names":[],"sources":["../../src/server/adkEventStream.ts"],"sourcesContent":["import type { AdkEvent, AdkEventActions, AdkEventPart } from \"../types\";\n\n/**\n * The ADK SDK Event type. Intentionally loose to avoid requiring @google/adk.\n */\ntype AdkSdkEvent = {\n id?: string;\n invocationId?: string;\n author?: string;\n branch?: string;\n partial?: boolean;\n turnComplete?: boolean;\n interrupted?: boolean;\n finishReason?: string;\n timestamp?: number;\n content?: {\n role?: string;\n parts?: Array<Record<string, unknown>>;\n };\n actions?: Record<string, unknown>;\n longRunningToolIds?: string[];\n errorCode?: string;\n errorMessage?: string;\n groundingMetadata?: unknown;\n citationMetadata?: unknown;\n usageMetadata?: unknown;\n customMetadata?: Record<string, unknown>;\n};\n\nconst convertSdkPart = (part: Record<string, unknown>): AdkEventPart => {\n const result: Record<string, unknown> = {};\n if (\"text\" in part && typeof part.text === \"string\") result.text = part.text;\n if (\"thought\" in part && typeof part.thought === \"boolean\")\n result.thought = part.thought;\n if (\"functionCall\" in part && part.functionCall)\n result.functionCall = part.functionCall;\n if (\"functionResponse\" in part && part.functionResponse)\n result.functionResponse = part.functionResponse;\n if (\"executableCode\" in part && part.executableCode)\n result.executableCode = part.executableCode;\n if (\"codeExecutionResult\" in part && part.codeExecutionResult)\n result.codeExecutionResult = part.codeExecutionResult;\n if (\"inlineData\" in part && part.inlineData)\n result.inlineData = part.inlineData;\n if (\"fileData\" in part && part.fileData) result.fileData = part.fileData;\n return result as AdkEventPart;\n};\n\nconst convertSdkActions = (\n actions: Record<string, unknown>,\n): AdkEventActions => {\n const result: Record<string, unknown> = {};\n if (actions.stateDelta != null) result.stateDelta = actions.stateDelta;\n if (actions.artifactDelta != null)\n result.artifactDelta = actions.artifactDelta;\n if (actions.transferToAgent != null)\n result.transferToAgent = actions.transferToAgent;\n if (actions.escalate != null) result.escalate = actions.escalate;\n if (actions.skipSummarization != null)\n result.skipSummarization = actions.skipSummarization;\n if (actions.requestedAuthConfigs != null)\n result.requestedAuthConfigs = actions.requestedAuthConfigs;\n if (actions.requestedToolConfirmations != null)\n result.requestedToolConfirmations = actions.requestedToolConfirmations;\n return result as AdkEventActions;\n};\n\nconst convertSdkEvent = (event: AdkSdkEvent): AdkEvent => {\n const result: Record<string, unknown> = { id: event.id ?? \"\" };\n if (event.invocationId != null) result.invocationId = event.invocationId;\n if (event.author != null) result.author = event.author;\n if (event.branch != null) result.branch = event.branch;\n if (event.partial != null) result.partial = event.partial;\n if (event.turnComplete != null) result.turnComplete = event.turnComplete;\n if (event.interrupted != null) result.interrupted = event.interrupted;\n if (event.finishReason != null) result.finishReason = event.finishReason;\n if (event.timestamp != null) result.timestamp = event.timestamp;\n if (event.content) {\n const content: Record<string, unknown> = {};\n if (event.content.role != null) content.role = event.content.role;\n if (event.content.parts)\n content.parts = event.content.parts.map(convertSdkPart);\n result.content = content;\n }\n if (event.actions) result.actions = convertSdkActions(event.actions);\n if (event.longRunningToolIds)\n result.longRunningToolIds = event.longRunningToolIds;\n if (event.errorCode != null) result.errorCode = event.errorCode;\n if (event.errorMessage != null) result.errorMessage = event.errorMessage;\n if (event.groundingMetadata != null)\n result.groundingMetadata = event.groundingMetadata;\n if (event.citationMetadata != null)\n result.citationMetadata = event.citationMetadata;\n if (event.usageMetadata != null) result.usageMetadata = event.usageMetadata;\n if (event.customMetadata != null)\n result.customMetadata = event.customMetadata;\n return result as AdkEvent;\n};\n\nexport type AdkEventStreamOptions = {\n onError?: (error: unknown) => void;\n};\n\nconst reportCallbackError = (error: unknown) => {\n console.error(\"[react-google-adk] onError callback threw an error\", error);\n};\n\nconst notifyError = (\n callback: AdkEventStreamOptions[\"onError\"],\n error: unknown,\n) => {\n try {\n void Promise.resolve(callback?.(error)).catch(reportCallbackError);\n } catch (callbackError) {\n reportCallbackError(callbackError);\n }\n};\n\n/**\n * Converts an AsyncGenerator of ADK SDK Events into an SSE Response.\n *\n * @example\n * ```ts\n * import { adkEventStream } from '@assistant-ui/react-google-adk/server';\n * const events = runner.runAsync({ userId, sessionId, newMessage });\n * return adkEventStream(events);\n * ```\n */\nexport const adkEventStream = (\n events: AsyncGenerator<AdkSdkEvent, void, undefined>,\n options?: AdkEventStreamOptions,\n): Response => {\n const encoder = new TextEncoder();\n let cancelled = false;\n const stream = new ReadableStream({\n
|
|
1
|
+
{"version":3,"file":"adkEventStream.js","names":[],"sources":["../../src/server/adkEventStream.ts"],"sourcesContent":["import type { AdkEvent, AdkEventActions, AdkEventPart } from \"../types\";\n\n/**\n * The ADK SDK Event type. Intentionally loose to avoid requiring @google/adk.\n */\ntype AdkSdkEvent = {\n id?: string;\n invocationId?: string;\n author?: string;\n branch?: string;\n partial?: boolean;\n turnComplete?: boolean;\n interrupted?: boolean;\n finishReason?: string;\n timestamp?: number;\n content?: {\n role?: string;\n parts?: Array<Record<string, unknown>>;\n };\n actions?: Record<string, unknown>;\n longRunningToolIds?: string[];\n errorCode?: string;\n errorMessage?: string;\n groundingMetadata?: unknown;\n citationMetadata?: unknown;\n usageMetadata?: unknown;\n customMetadata?: Record<string, unknown>;\n};\n\nconst convertSdkPart = (part: Record<string, unknown>): AdkEventPart => {\n const result: Record<string, unknown> = {};\n if (\"text\" in part && typeof part.text === \"string\") result.text = part.text;\n if (\"thought\" in part && typeof part.thought === \"boolean\")\n result.thought = part.thought;\n if (\"functionCall\" in part && part.functionCall)\n result.functionCall = part.functionCall;\n if (\"functionResponse\" in part && part.functionResponse)\n result.functionResponse = part.functionResponse;\n if (\"executableCode\" in part && part.executableCode)\n result.executableCode = part.executableCode;\n if (\"codeExecutionResult\" in part && part.codeExecutionResult)\n result.codeExecutionResult = part.codeExecutionResult;\n if (\"inlineData\" in part && part.inlineData)\n result.inlineData = part.inlineData;\n if (\"fileData\" in part && part.fileData) result.fileData = part.fileData;\n return result as AdkEventPart;\n};\n\nconst convertSdkActions = (\n actions: Record<string, unknown>,\n): AdkEventActions => {\n const result: Record<string, unknown> = {};\n if (actions.stateDelta != null) result.stateDelta = actions.stateDelta;\n if (actions.artifactDelta != null)\n result.artifactDelta = actions.artifactDelta;\n if (actions.transferToAgent != null)\n result.transferToAgent = actions.transferToAgent;\n if (actions.escalate != null) result.escalate = actions.escalate;\n if (actions.skipSummarization != null)\n result.skipSummarization = actions.skipSummarization;\n if (actions.requestedAuthConfigs != null)\n result.requestedAuthConfigs = actions.requestedAuthConfigs;\n if (actions.requestedToolConfirmations != null)\n result.requestedToolConfirmations = actions.requestedToolConfirmations;\n return result as AdkEventActions;\n};\n\nconst convertSdkEvent = (event: AdkSdkEvent): AdkEvent => {\n const result: Record<string, unknown> = { id: event.id ?? \"\" };\n if (event.invocationId != null) result.invocationId = event.invocationId;\n if (event.author != null) result.author = event.author;\n if (event.branch != null) result.branch = event.branch;\n if (event.partial != null) result.partial = event.partial;\n if (event.turnComplete != null) result.turnComplete = event.turnComplete;\n if (event.interrupted != null) result.interrupted = event.interrupted;\n if (event.finishReason != null) result.finishReason = event.finishReason;\n if (event.timestamp != null) result.timestamp = event.timestamp;\n if (event.content) {\n const content: Record<string, unknown> = {};\n if (event.content.role != null) content.role = event.content.role;\n if (event.content.parts)\n content.parts = event.content.parts.map(convertSdkPart);\n result.content = content;\n }\n if (event.actions) result.actions = convertSdkActions(event.actions);\n if (event.longRunningToolIds)\n result.longRunningToolIds = event.longRunningToolIds;\n if (event.errorCode != null) result.errorCode = event.errorCode;\n if (event.errorMessage != null) result.errorMessage = event.errorMessage;\n if (event.groundingMetadata != null)\n result.groundingMetadata = event.groundingMetadata;\n if (event.citationMetadata != null)\n result.citationMetadata = event.citationMetadata;\n if (event.usageMetadata != null) result.usageMetadata = event.usageMetadata;\n if (event.customMetadata != null)\n result.customMetadata = event.customMetadata;\n return result as AdkEvent;\n};\n\nexport type AdkEventStreamOptions = {\n onError?: (error: unknown) => void;\n};\n\nconst reportCallbackError = (error: unknown) => {\n console.error(\"[react-google-adk] onError callback threw an error\", error);\n};\n\nconst notifyError = (\n callback: AdkEventStreamOptions[\"onError\"],\n error: unknown,\n) => {\n try {\n void Promise.resolve(callback?.(error)).catch(reportCallbackError);\n } catch (callbackError) {\n reportCallbackError(callbackError);\n }\n};\n\n/**\n * Converts an AsyncGenerator of ADK SDK Events into an SSE Response.\n *\n * @example\n * ```ts\n * import { adkEventStream } from '@assistant-ui/react-google-adk/server';\n * const events = runner.runAsync({ userId, sessionId, newMessage });\n * return adkEventStream(events);\n * ```\n */\nexport const adkEventStream = (\n events: AsyncGenerator<AdkSdkEvent, void, undefined>,\n options?: AdkEventStreamOptions,\n): Response => {\n const encoder = new TextEncoder();\n let cancelled = false;\n const stream = new ReadableStream({\n start(controller) {\n // Initial SSE comment to keep connection alive through proxies\n controller.enqueue(encoder.encode(\":ok\\n\\n\"));\n },\n async pull(controller) {\n try {\n const { done, value } = await events.next();\n if (cancelled) return;\n if (done) {\n controller.close();\n return;\n }\n const wireEvent = convertSdkEvent(value);\n controller.enqueue(\n encoder.encode(`data: ${JSON.stringify(wireEvent)}\\n\\n`),\n );\n } catch (e) {\n if (cancelled) return;\n try {\n await events.return?.(undefined as any);\n } catch {}\n if (cancelled) return;\n notifyError(options?.onError, e);\n if (cancelled) return;\n const errorEvent: AdkEvent = {\n id: \"\",\n errorCode: \"STREAM_ERROR\",\n errorMessage: e instanceof Error ? e.message : \"Unknown stream error\",\n };\n controller.enqueue(\n encoder.encode(`data: ${JSON.stringify(errorEvent)}\\n\\n`),\n );\n controller.close();\n }\n },\n async cancel() {\n cancelled = true;\n await events.return?.(undefined as any);\n },\n });\n\n return new Response(stream, {\n headers: {\n \"Content-Type\": \"text/event-stream\",\n \"Cache-Control\": \"no-cache\",\n },\n });\n};\n"],"mappings":"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"}
|
|
@@ -1,31 +1,30 @@
|
|
|
1
|
-
import { AdkEventStreamOptions } from "./adkEventStream.js";
|
|
2
|
-
//#region src/server/createAdkApiRoute.d.ts
|
|
1
|
+
import { type AdkEventStreamOptions } from "./adkEventStream.js";
|
|
3
2
|
/**
|
|
4
3
|
* Loose runner type matching the ADK SDK's Runner interface.
|
|
5
4
|
* Avoids requiring `@google/adk` as a dependency.
|
|
6
5
|
*/
|
|
7
6
|
type AdkRunner = {
|
|
8
|
-
|
|
7
|
+
runAsync(options: Record<string, unknown>): AsyncGenerator<any, void, undefined>;
|
|
9
8
|
};
|
|
10
|
-
type CreateAdkApiRouteOptions = {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
9
|
+
export type CreateAdkApiRouteOptions = {
|
|
10
|
+
/**
|
|
11
|
+
* ADK Runner instance.
|
|
12
|
+
*/
|
|
13
|
+
runner: AdkRunner;
|
|
14
|
+
/**
|
|
15
|
+
* User ID to use for the ADK session. Can be a static string
|
|
16
|
+
* or a function that extracts it from the request.
|
|
17
|
+
*/
|
|
18
|
+
userId: string | ((req: Request) => string | Promise<string>);
|
|
19
|
+
/**
|
|
20
|
+
* Session ID to use. Can be a static string or a function
|
|
21
|
+
* that extracts it from the request (e.g. from query params or headers).
|
|
22
|
+
*/
|
|
23
|
+
sessionId: string | ((req: Request) => string | Promise<string>);
|
|
24
|
+
/**
|
|
25
|
+
* Error handler for stream errors.
|
|
26
|
+
*/
|
|
27
|
+
onError?: AdkEventStreamOptions["onError"];
|
|
29
28
|
};
|
|
30
29
|
/**
|
|
31
30
|
* Creates a request handler that combines `parseAdkRequest`, `toAdkContent`,
|
|
@@ -43,7 +42,6 @@ type CreateAdkApiRouteOptions = {
|
|
|
43
42
|
* });
|
|
44
43
|
* ```
|
|
45
44
|
*/
|
|
46
|
-
declare function createAdkApiRoute(options: CreateAdkApiRouteOptions): (req: Request) => Promise<Response>;
|
|
47
|
-
|
|
48
|
-
export { CreateAdkApiRouteOptions, createAdkApiRoute };
|
|
45
|
+
export declare function createAdkApiRoute(options: CreateAdkApiRouteOptions): (req: Request) => Promise<Response>;
|
|
46
|
+
export {};
|
|
49
47
|
//# sourceMappingURL=createAdkApiRoute.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createAdkApiRoute.d.ts","
|
|
1
|
+
{"version":3,"file":"createAdkApiRoute.d.ts","sourceRoot":"","sources":["../../src/server/createAdkApiRoute.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,qBAAqB,EAAE,4BAAyB;AAE9E;;;GAGG;AACH,KAAK,SAAS,GAAG;IACf,QAAQ,CACN,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC;;OAEG;IACH,MAAM,EAAE,SAAS,CAAC;IAElB;;;OAGG;IACH,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAE9D;;;OAGG;IACH,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAEjE;;OAEG;IACH,OAAO,CAAC,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;CAC5C,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,wBAAwB,GAChC,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CA8BrC"}
|
package/dist/server/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
export { adkEventStream, type AdkEventStreamOptions } from "./adkEventStream.js";
|
|
2
|
+
export { parseAdkRequest, toAdkContent } from "./parseAdkRequest.js";
|
|
3
|
+
export { createAdkApiRoute, type CreateAdkApiRouteOptions, } from "./createAdkApiRoute.js";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,4BAAyB;AAC9E,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,6BAA0B;AAClE,OAAO,EACL,iBAAiB,EACjB,KAAK,wBAAwB,GAC9B,+BAA4B"}
|
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
import { AdkSendMessageConfig } from "../types.js";
|
|
2
|
-
//#region src/server/parseAdkRequest.d.ts
|
|
1
|
+
import type { AdkSendMessageConfig } from "../types.js";
|
|
3
2
|
type ParsedAdkRequest = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
type: "message";
|
|
4
|
+
text: string;
|
|
5
|
+
parts?: Array<Record<string, unknown>> | undefined;
|
|
6
|
+
config: AdkSendMessageConfig;
|
|
7
|
+
stateDelta?: Record<string, unknown> | undefined;
|
|
9
8
|
} | {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
9
|
+
type: "tool-result";
|
|
10
|
+
toolCallId: string;
|
|
11
|
+
toolName: string;
|
|
12
|
+
result: unknown;
|
|
13
|
+
isError: boolean;
|
|
14
|
+
config: AdkSendMessageConfig;
|
|
15
|
+
stateDelta?: Record<string, unknown> | undefined;
|
|
17
16
|
};
|
|
18
17
|
/**
|
|
19
18
|
* Parses an incoming HTTP request into a structured ADK request.
|
|
@@ -36,7 +35,7 @@ type ParsedAdkRequest = {
|
|
|
36
35
|
* }
|
|
37
36
|
* ```
|
|
38
37
|
*/
|
|
39
|
-
declare const parseAdkRequest: (request: Request) => Promise<ParsedAdkRequest>;
|
|
38
|
+
export declare const parseAdkRequest: (request: Request) => Promise<ParsedAdkRequest>;
|
|
40
39
|
/**
|
|
41
40
|
* Converts a parsed ADK request into a Google GenAI Content object
|
|
42
41
|
* suitable for `Runner.runAsync({ newMessage })`.
|
|
@@ -49,10 +48,9 @@ declare const parseAdkRequest: (request: Request) => Promise<ParsedAdkRequest>;
|
|
|
49
48
|
* return adkEventStream(events);
|
|
50
49
|
* ```
|
|
51
50
|
*/
|
|
52
|
-
declare const toAdkContent: (parsed: ParsedAdkRequest) => {
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
export declare const toAdkContent: (parsed: ParsedAdkRequest) => {
|
|
52
|
+
role: string;
|
|
53
|
+
parts: Array<Record<string, unknown>>;
|
|
55
54
|
};
|
|
56
|
-
|
|
57
|
-
export { parseAdkRequest, toAdkContent };
|
|
55
|
+
export {};
|
|
58
56
|
//# sourceMappingURL=parseAdkRequest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseAdkRequest.d.ts","
|
|
1
|
+
{"version":3,"file":"parseAdkRequest.d.ts","sourceRoot":"","sources":["../../src/server/parseAdkRequest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAiB;AAGrD,KAAK,gBAAgB,GACjB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACnD,MAAM,EAAE,oBAAoB,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;CAClD,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;CAClD,CAAC;AAuGN;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,eAAe,GAC1B,SAAS,OAAO,KACf,OAAO,CAAC,gBAAgB,CAwE1B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,GACvB,QAAQ,gBAAgB,KACvB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAsBvD,CAAC"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
import { AdkEvent, AdkStructuredEvent } from "./types.js";
|
|
2
|
-
//#region src/structuredEvents.d.ts
|
|
1
|
+
import type { AdkEvent, AdkStructuredEvent } from "./types.js";
|
|
3
2
|
/**
|
|
4
3
|
* Converts a raw `AdkEvent` into an array of structured, typed events.
|
|
5
4
|
* Useful for building custom event renderers.
|
|
6
5
|
*/
|
|
7
|
-
declare function toAdkStructuredEvents(event: AdkEvent): AdkStructuredEvent[];
|
|
8
|
-
//#endregion
|
|
9
|
-
export { toAdkStructuredEvents };
|
|
6
|
+
export declare function toAdkStructuredEvents(event: AdkEvent): AdkStructuredEvent[];
|
|
10
7
|
//# sourceMappingURL=structuredEvents.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structuredEvents.d.ts","
|
|
1
|
+
{"version":3,"file":"structuredEvents.d.ts","sourceRoot":"","sources":["../src/structuredEvents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,mBAAgB;AAG5D;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,QAAQ,GAAG,kBAAkB,EAAE,CA4E3E"}
|
package/dist/structuredEvents.js
CHANGED
|
@@ -29,7 +29,7 @@ function toAdkStructuredEvents(event) {
|
|
|
29
29
|
type: "tool_call",
|
|
30
30
|
call: {
|
|
31
31
|
name: part.functionCall.name,
|
|
32
|
-
args: part.functionCall.args
|
|
32
|
+
args: part.functionCall.args ?? {}
|
|
33
33
|
}
|
|
34
34
|
};
|
|
35
35
|
if (part.functionCall.id != null) call.call.id = part.functionCall.id;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structuredEvents.js","names":[],"sources":["../src/structuredEvents.ts"],"sourcesContent":["import type { AdkEvent, AdkStructuredEvent } from \"./types\";\nimport { isFinalResponse } from \"./AdkEventAccumulator\";\n\n/**\n * Converts a raw `AdkEvent` into an array of structured, typed events.\n * Useful for building custom event renderers.\n */\nexport function toAdkStructuredEvents(event: AdkEvent): AdkStructuredEvent[] {\n const result: AdkStructuredEvent[] = [];\n\n if (event.errorCode || event.errorMessage) {\n const err: AdkStructuredEvent & { type: \"error\" } = { type: \"error\" };\n if (event.errorCode != null) err.errorCode = event.errorCode;\n if (event.errorMessage != null) err.errorMessage = event.errorMessage;\n result.push(err);\n }\n\n const parts = event.content?.parts;\n if (parts) {\n for (const part of parts) {\n if (part.text != null) {\n if (part.thought) {\n result.push({ type: \"thought\", content: part.text });\n } else {\n result.push({ type: \"content\", content: part.text });\n }\n }\n if (part.functionCall) {\n const call: AdkStructuredEvent & { type: \"tool_call\" } = {\n type: \"tool_call\",\n call: {
|
|
1
|
+
{"version":3,"file":"structuredEvents.js","names":[],"sources":["../src/structuredEvents.ts"],"sourcesContent":["import type { AdkEvent, AdkStructuredEvent } from \"./types\";\nimport { isFinalResponse } from \"./AdkEventAccumulator\";\n\n/**\n * Converts a raw `AdkEvent` into an array of structured, typed events.\n * Useful for building custom event renderers.\n */\nexport function toAdkStructuredEvents(event: AdkEvent): AdkStructuredEvent[] {\n const result: AdkStructuredEvent[] = [];\n\n if (event.errorCode || event.errorMessage) {\n const err: AdkStructuredEvent & { type: \"error\" } = { type: \"error\" };\n if (event.errorCode != null) err.errorCode = event.errorCode;\n if (event.errorMessage != null) err.errorMessage = event.errorMessage;\n result.push(err);\n }\n\n const parts = event.content?.parts;\n if (parts) {\n for (const part of parts) {\n if (part.text != null) {\n if (part.thought) {\n result.push({ type: \"thought\", content: part.text });\n } else {\n result.push({ type: \"content\", content: part.text });\n }\n }\n if (part.functionCall) {\n const call: AdkStructuredEvent & { type: \"tool_call\" } = {\n type: \"tool_call\",\n call: {\n name: part.functionCall.name,\n args: part.functionCall.args ?? {},\n },\n };\n if (part.functionCall.id != null) call.call.id = part.functionCall.id;\n result.push(call);\n }\n if (part.functionResponse) {\n const tr: AdkStructuredEvent & { type: \"tool_result\" } = {\n type: \"tool_result\",\n result: {\n name: part.functionResponse.name,\n response: part.functionResponse.response,\n },\n };\n if (part.functionResponse.id != null)\n tr.result.id = part.functionResponse.id;\n result.push(tr);\n }\n if (part.executableCode) {\n const ce: AdkStructuredEvent & { type: \"call_code\" } = {\n type: \"call_code\",\n code: { code: part.executableCode.code },\n };\n if (part.executableCode.language != null)\n ce.code.language = part.executableCode.language;\n result.push(ce);\n }\n if (part.codeExecutionResult) {\n const cr: AdkStructuredEvent & { type: \"code_result\" } = {\n type: \"code_result\",\n result: { output: part.codeExecutionResult.output },\n };\n if (part.codeExecutionResult.outcome != null)\n cr.result.outcome = part.codeExecutionResult.outcome;\n result.push(cr);\n }\n }\n }\n\n if (event.actions?.requestedToolConfirmations) {\n result.push({\n type: \"tool_confirmation\",\n confirmations: event.actions.requestedToolConfirmations,\n });\n }\n\n if (isFinalResponse(event) && result.length === 0) {\n result.push({ type: \"finished\" });\n }\n\n return result;\n}\n"],"mappings":";;;;;;AAOA,SAAgB,sBAAsB,OAAuC;CAC3E,MAAM,SAA+B,CAAC;CAEtC,IAAI,MAAM,aAAa,MAAM,cAAc;EACzC,MAAM,MAA8C,EAAE,MAAM,QAAQ;EACpE,IAAI,MAAM,aAAa,MAAM,IAAI,YAAY,MAAM;EACnD,IAAI,MAAM,gBAAgB,MAAM,IAAI,eAAe,MAAM;EACzD,OAAO,KAAK,GAAG;CACjB;CAEA,MAAM,QAAQ,MAAM,SAAS;CAC7B,IAAI,OACF,KAAK,MAAM,QAAQ,OAAO;EACxB,IAAI,KAAK,QAAQ,MAAM;GACrB,IAAI,KAAK,SACP,OAAO,KAAK;IAAE,MAAM;IAAW,SAAS,KAAK;GAAK,CAAC;QAEnD,OAAO,KAAK;IAAE,MAAM;IAAW,SAAS,KAAK;GAAK,CAAC;EAEvD;EACA,IAAI,KAAK,cAAc;GACrB,MAAM,OAAmD;IACvD,MAAM;IACN,MAAM;KACJ,MAAM,KAAK,aAAa;KACxB,MAAM,KAAK,aAAa,QAAQ,CAAC;IACnC;GACF;GACA,IAAI,KAAK,aAAa,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,aAAa;GACnE,OAAO,KAAK,IAAI;EAClB;EACA,IAAI,KAAK,kBAAkB;GACzB,MAAM,KAAmD;IACvD,MAAM;IACN,QAAQ;KACN,MAAM,KAAK,iBAAiB;KAC5B,UAAU,KAAK,iBAAiB;IAClC;GACF;GACA,IAAI,KAAK,iBAAiB,MAAM,MAC9B,GAAG,OAAO,KAAK,KAAK,iBAAiB;GACvC,OAAO,KAAK,EAAE;EAChB;EACA,IAAI,KAAK,gBAAgB;GACvB,MAAM,KAAiD;IACrD,MAAM;IACN,MAAM,EAAE,MAAM,KAAK,eAAe,KAAK;GACzC;GACA,IAAI,KAAK,eAAe,YAAY,MAClC,GAAG,KAAK,WAAW,KAAK,eAAe;GACzC,OAAO,KAAK,EAAE;EAChB;EACA,IAAI,KAAK,qBAAqB;GAC5B,MAAM,KAAmD;IACvD,MAAM;IACN,QAAQ,EAAE,QAAQ,KAAK,oBAAoB,OAAO;GACpD;GACA,IAAI,KAAK,oBAAoB,WAAW,MACtC,GAAG,OAAO,UAAU,KAAK,oBAAoB;GAC/C,OAAO,KAAK,EAAE;EAChB;CACF;CAGF,IAAI,MAAM,SAAS,4BACjB,OAAO,KAAK;EACV,MAAM;EACN,eAAe,MAAM,QAAQ;CAC/B,CAAC;CAGH,IAAI,gBAAgB,KAAK,KAAK,OAAO,WAAW,GAC9C,OAAO,KAAK,EAAE,MAAM,WAAW,CAAC;CAGlC,OAAO;AACT"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
declare const
|
|
3
|
-
declare const toAdkFunctionResponse: (result: unknown, isError?: boolean) => Record<string, unknown>;
|
|
4
|
-
//#endregion
|
|
5
|
-
export { isAdkFunctionError, toAdkFunctionResponse };
|
|
1
|
+
export declare const isAdkFunctionError: (response: unknown) => boolean;
|
|
2
|
+
export declare const toAdkFunctionResponse: (result: unknown, isError?: boolean) => Record<string, unknown>;
|
|
6
3
|
//# sourceMappingURL=toAdkFunctionResponse.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toAdkFunctionResponse.d.ts","
|
|
1
|
+
{"version":3,"file":"toAdkFunctionResponse.d.ts","sourceRoot":"","sources":["../src/toAdkFunctionResponse.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,GAAI,UAAU,OAAO,KAAG,OAGzB,CAAC;AAE/B,eAAO,MAAM,qBAAqB,GAChC,QAAQ,OAAO,EACf,iBAAe,KACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAOxB,CAAC"}
|
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
declare const trimTrailingSlashes: (value: string) => string;
|
|
3
|
-
//#endregion
|
|
4
|
-
export { trimTrailingSlashes };
|
|
1
|
+
export declare const trimTrailingSlashes: (value: string) => string;
|
|
5
2
|
//# sourceMappingURL=trimTrailingSlashes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trimTrailingSlashes.d.ts","
|
|
1
|
+
{"version":3,"file":"trimTrailingSlashes.d.ts","sourceRoot":"","sources":["../src/trimTrailingSlashes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,WAIhD,CAAC"}
|