@assistant-ui/react-google-adk
v0.0.1
Published
Google ADK adapter for assistant-ui
Readme
@assistant-ui/react-google-adk
Google ADK (Agent Development Kit) adapter for assistant-ui.
Connects Google ADK JS agents to assistant-ui's React runtime with streaming, tool calls, multi-agent support, tool confirmations, auth flows, and session state management.
Installation
npm install @assistant-ui/react @assistant-ui/react-google-adkQuick Start
Proxy Mode (with a Next.js API Route)
Server (app/api/adk/route.ts):
import { createAdkApiRoute } from "@assistant-ui/react-google-adk/server";
import { runner } from "./agent";
export const POST = createAdkApiRoute({
runner,
userId: "default-user",
sessionId: (req) =>
new URL(req.url).searchParams.get("sessionId") ?? "default",
});Client:
import { useAdkRuntime, createAdkStream } from "@assistant-ui/react-google-adk";
const runtime = useAdkRuntime({
stream: createAdkStream({ api: "/api/adk" }),
});Direct Mode (connecting to an ADK server)
import {
useAdkRuntime,
createAdkStream,
createAdkSessionAdapter,
} from "@assistant-ui/react-google-adk";
const { adapter, load } = createAdkSessionAdapter({
apiUrl: "http://localhost:8000",
appName: "my-app",
userId: "user-1",
});
const runtime = useAdkRuntime({
stream: createAdkStream({
api: "http://localhost:8000",
appName: "my-app",
userId: "user-1",
}),
sessionAdapter: adapter,
load,
});API Reference
Client Exports
createAdkStream(options)
Creates an AdkStreamCallback that connects to an ADK endpoint via SSE.
| Option | Type | Description |
|--------|------|-------------|
| api | string | URL to POST to (proxy route or ADK server base URL) |
| appName | string? | ADK app name (enables direct mode when set) |
| userId | string? | ADK user ID (required with appName) |
| headers | Record<string, string> \| (() => ...) | Static or dynamic request headers |
createAdkSessionAdapter(options)
Creates a RemoteThreadListAdapter backed by ADK's session REST API.
Returns { adapter, load } where load reconstructs messages from session events.
| Option | Type | Description |
|--------|------|-------------|
| apiUrl | string | ADK server base URL |
| appName | string | ADK app name |
| userId | string | ADK user ID |
| headers | Record<string, string> \| (() => ...) | Static or dynamic request headers |
useAdkRuntime(options)
Main hook that creates a full AssistantRuntime.
| Option | Type | Description |
|--------|------|-------------|
| stream | AdkStreamCallback | Stream callback (use createAdkStream) |
| sessionAdapter | RemoteThreadListAdapter? | Alternative to cloud for thread persistence |
| cloud | AssistantCloud? | Cloud adapter for thread persistence |
| load | (threadId: string) => Promise<{messages}> | Load thread history |
| autoCancelPendingToolCalls | boolean? | Auto-cancel pending tools on new message (default: true) |
| unstable_allowCancellation | boolean? | Enable stream cancellation |
| getCheckpointId | (threadId, messages) => Promise<string?> | Enable edit/reload |
| adapters | {attachments?, speech?, feedback?} | Optional adapters |
| eventHandlers | {onError?, onCustomEvent?, onAgentTransfer?} | Event callbacks |
Hooks
| Hook | Description |
|------|-------------|
| useAdkAgentInfo() | Current agent name and branch path |
| useAdkSessionState() | Accumulated session state delta |
| useAdkSend() | Send raw ADK messages |
| useAdkLongRunningToolIds() | Pending tool IDs awaiting input |
| useAdkToolConfirmations() | Tool confirmation requests |
| useAdkAuthRequests() | Auth credential requests |
| useAdkArtifacts() | Artifact delta (filename → version) |
| useAdkEscalation() | Escalation flag |
| useAdkMessageMetadata() | Per-message grounding/citation/usage |
Server Exports (/server)
createAdkApiRoute(options)
One-liner API route handler combining request parsing and SSE streaming.
| Option | Type | Description |
|--------|------|-------------|
| runner | AdkRunner | ADK Runner instance |
| userId | string \| (req) => string | Static or dynamic user ID |
| sessionId | string \| (req) => string | Static or dynamic session ID |
| onError | (error) => void | Error handler |
adkEventStream(events, options?)
Converts an ADK event async generator into an SSE Response.
parseAdkRequest(request)
Parses an incoming HTTP request into a structured ADK request.
toAdkContent(parsed)
Converts a parsed request into a Google GenAI Content object.
Documentation
See the full documentation for setup guides, advanced APIs, and examples.
License
MIT
