# useStream

> @langchain/react → useStream

[`useStream`](#index.useStream) is the root hook of `@langchain/react`. Mount it once per thread. It owns the thread lifecycle, the transport, and a handful of always-on projections (`values`, `messages`, `toolCalls`, `interrupts`, `error`, `isLoading`, discovery maps).

> **Learn more:** New to the SDK? Start with **Getting started**. For UI patterns, see the [LangChain frontend documentation](https://docs.langchain.com/oss/javascript/langchain/frontend/overview).

> **Runnable example:** The [`ui-react`](https://github.com/langchain-ai/streaming-cookbook/tree/main/typescript/ui-react) app in the [streaming cookbook](https://github.com/langchain-ai/streaming-cookbook) is a complete `useStream` chat with reconnect and replay.

## Options

The option bag is a discriminated union on `transport`:

- **Agent Server** (default) — omit `transport`, or pass `"sse"` / `"websocket"`. Requires `assistantId` + `apiUrl` (or a pre-built `client`).
- **Custom adapter** — pass an `AgentServerAdapter` instance. The hook delegates every command and subscription to the adapter. See [**Transports**](./transports).

### Common options

| Option          | Type                                                                                           | Description                                                                                                                 |
| --------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `assistantId`   | `string`                                                                                       | Assistant/graph ID. Required on the Agent Server branch; optional (defaults to `"_"`) on the custom-adapter branch.         |
| `threadId`      | `string \| null`                                                                               | Bind to an existing thread. Pass `null` to start a new thread on next submit; changing the value hydrates and resubscribes. |
| `initialValues` | `StateType`                                                                                    | Initial state values used until the first `values` event lands.                                                             |
| `messagesKey`   | `string`                                                                                       | State key holding the message array. Defaults to `"messages"`.                                                              |
| `onThreadId`    | `(id: string) => void`                                                                         | Fires when the server mints a new thread id.                                                                                |
| `onCreated`     | `(info: { runId: string }) => void`                                                            | Fired when this hook's run is accepted by the server.                                                                       |
| `onCompleted`   | `(info: { runId?: string; reason: "success" \| "error" \| "interrupt" \| "stopped" }) => void` | Fired when a run's active streaming phase ends. `runId` may be omitted for re-attached in-flight runs.                      |
| `tools`         | `HeadlessToolImplementation[]`                                                                 | Headless tools. Matching interrupts are auto-resolved with the handler's return value. See **Interrupts**.                  |
| `onTool`        | `OnToolCallback`                                                                               | Observe headless-tool lifecycle events (`start` / `success` / `error`).                                                     |
| `optimistic`    | `boolean`                                                                                      | Optimistic input echo, reconciled by id. Defaults to `true`; set `false` for server-authoritative-only.                     |

For details, see [**Migration: optimistic updates**](./migration#54-optimistic-updates-replaces-optimisticvalues).

### Agent Server branch ([`AgentServerOptions`](#index.AgentServerOptions))

| Option                            | Type                         | Description                                        |
| --------------------------------- | ---------------------------- | -------------------------------------------------- |
| `apiUrl`                          | `string`                     | Base URL of the LangGraph-compatible agent server. |
| `client`                          | `Client`                     | Pre-built SDK client (alternative to `apiUrl`).    |
| `apiKey`                          | `string`                     | API key forwarded to the built-in client.          |
| `callerOptions`, `defaultHeaders` | `ClientConfig[...]`          | Forwarded to the built-in client.                  |
| `transport`                       | `"sse" \| "websocket"`       | Built-in wire transport. Defaults to `"sse"`.      |
| `fetch`                           | `typeof fetch`               | Optional `fetch` override for the SSE transport.   |
| `webSocketFactory`                | `(url: string) => WebSocket` | Optional WebSocket factory for the WS transport.   |

### Custom-adapter branch ([`CustomAdapterOptions`](#index.CustomAdapterOptions))

| Option      | Type                 | Description                                                       |
| ----------- | -------------------- | ----------------------------------------------------------------- |
| `transport` | `AgentServerAdapter` | Adapter instance. Replaces the built-in transport stack entirely. |

Passing `apiUrl` / `apiKey` / `fetch` / `webSocketFactory` on the custom-adapter branch is a compile-time error.

## Return values

| Property                              | Type                                                        | Description                                                                                             |
| ------------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| `values`                              | `StateType`                                                 | Latest root `values`-channel snapshot (falls back to `initialValues ?? {}`).                            |
| `messages`                            | `BaseMessage[]`                                             | Root message projection; merges `messages`-channel deltas and `values.messages` snapshots.              |
| `toolCalls`                           | `AssembledToolCall[]`                                       | Tool calls assembled from the root run; each carries `status`, `args`, `result`, `aiMessageId`.         |
| `interrupt` / `interrupts`            | `Interrupt \| Interrupt[]`                                  | Most-recent root interrupt and the full interrupt list.                                                 |
| `isLoading`                           | `boolean`                                                   | True while a run is in flight or initial hydration hasn't completed.                                    |
| `isThreadLoading`                     | `boolean`                                                   | True during the initial thread-hydration lifecycle.                                                     |
| `hydrationPromise`                    | `Promise<void>`                                             | Settles when the active thread's initial hydrate resolves. Used by `useSuspenseStream`.                 |
| `error`                               | `unknown`                                                   | Latest transport or hydrate error.                                                                      |
| `threadId`                            | `string \| null`                                            | Currently bound thread id.                                                                              |
| `subagents`                           | `ReadonlyMap<string, SubagentDiscoverySnapshot>`            | Discovery snapshots for subagents on the thread (identity only — no messages / tool calls).             |
| `subgraphs`                           | `ReadonlyMap<string, SubgraphDiscoverySnapshot>`            | Subgraphs discovered on the run.                                                                        |
| `subgraphsByNode`                     | `ReadonlyMap<string, readonly SubgraphDiscoverySnapshot[]>` | Same snapshots keyed by the graph node that produced them.                                              |
| `submit(input, options?)`             | function                                                    | Dispatch a new run on the bound thread.                                                                 |
| `stop(options?)`                      | `(options?: { cancel?: boolean }) => Promise<void>`         | Cancel the active run (default) and disconnect. Pass `{ cancel: false }` to disconnect only.            |
| `disconnect()`                        | `() => Promise<void>`                                       | Disconnect the client without cancelling the run (`stop({ cancel: false })`).                           |
| `respond(response, options?)`         | function                                                    | Resume a single interrupt with a response payload (target via `options.interruptId` / `namespace`).     |
| `respondAll(responsesById, options?)` | function                                                    | Resume several interrupts pending at the same checkpoint in one command (`interruptId` → response map). |
| `getThread()`                         | `() => ThreadStream \| undefined`                           | Returns the bound `ThreadStream` for low-level protocol access; `undefined` until a thread is bound.    |
| `client`                              | `Client`                                                    | The bound client (`HttpAgentServerAdapter`'s client on the custom branch).                              |
| `assistantId`                         | `string`                                                    | Resolved assistant id (including the `"_"` fallback on custom adapters).                                |

## `submit()` options

`submit()` accepts `Partial<StateType>` as input (`messages` is widened to also accept `BaseMessage` class instances, or a single message). To resume a pending interrupt, use `stream.respond()` instead.

| Option                              | Type                                                 | Description                                                                                                 |
| ----------------------------------- | ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| `config`                            | `{ configurable?, tags?, recursion_limit?, ... }`    | Run config forwarded to the server.                                                                         |
| `metadata`                          | `Record<string, unknown>`                            | Run metadata.                                                                                               |
| `multitaskStrategy`                 | `"rollback" \| "interrupt" \| "reject" \| "enqueue"` | How to handle a submit while a run is active. See **Submission queue**.                                     |
| `forkFrom`                          | `string`                                             | Fork the new run from a specific checkpoint id (edit / retry flows). See **Fork & edit from a checkpoint**. |
| `interruptBefore`, `interruptAfter` | `string[]`                                           | Breakpoint debugging.                                                                                       |
| `runId`                             | `string`                                             | Pre-generate a run id (for optimistic UI / telemetry).                                                      |
| `durability`                        | `"async" \| "sync" \| "exit"`                        | Checkpoint policy.                                                                                          |
| `context`                           | `unknown`                                            | Runtime context (distinct from `config.configurable`).                                                      |
| `feedbackKeys`                      | `string[]`                                           | LangSmith integration.                                                                                      |
| `threadId`                          | `string`                                             | Per-submit thread override — rebinds the hook to `threadId` before dispatching.                             |
| `onError`                           | `(error: unknown) => void`                           | Per-submit error callback. The transport-level `stream.error` store update still happens.                   |

## Stopping a run and responding to interrupts

### `stop()`

`stream.stop()` cancels the active run by default: it disconnects the client transport, calls `client.runs.cancel` on the server, and sets `isLoading` to `false`. Messages and values received so far are preserved. Safe to call unconditionally — when no run is active it is a no-op.

```tsx
<button onClick={() => void stream.stop()} disabled={!stream.isLoading}>
  Stop
</button>
```

Pass `{ cancel: false }` to disconnect without cancelling server-side execution, or use `stream.disconnect()`.

### `disconnect()`

`stream.disconnect()` is an alias for `stop({ cancel: false })`. Use it in join/rejoin UIs where the agent should keep running after the client leaves the stream.

### `respond(response, options?)`

Resume a single pending interrupt. When `options.interruptId` is omitted, `respond()` walks `stream.getThread()?.interrupts` from newest to oldest and resumes the first entry not yet resolved by a prior `respond()` call. Safe when exactly one interrupt is pending; otherwise pass `options.interruptId` (and `options.namespace` for subgraph interrupts). See **Interrupts**.

```tsx
// Single pending interrupt — omit target:
await stream.respond({ approved: true });

// Multiple root interrupts — target by id:
await stream.respond({ approved: true }, { interruptId: myInterrupt.id! });

// Carry run config + metadata onto the resume:
await stream.respond(
  { approved: true },
  { config: { configurable: { model: "gpt-4o" } }, metadata: { source: "ui" } },
);
```

### `respondAll(responsesById, options?)`

Resume several interrupts pending at the same checkpoint (e.g. parallel tool-authorization prompts) in a single command. `responsesById` maps each pending `interruptId` to its response; namespaces are resolved internally from `getThread()?.interrupts`.

```tsx
await stream.respondAll({
  [interruptA.id]: { approved: true },
  [interruptB.id]: { approved: false },
});
```

### `hydrationPromise`

`stream.hydrationPromise` settles when the thread's initial hydration resolves (or rejects). A fresh promise is installed every time the hook binds to a new `threadId`. `useSuspenseStream` leans on this directly; in plain `useStream` apps you rarely need it.

## API reference

## Classes

- [`HttpAgentServerAdapter`](https://reference.langchain.com/javascript/langchain-react/HttpAgentServerAdapter)
- [`MediaAssemblyError`](https://reference.langchain.com/javascript/langchain-react/MediaAssemblyError)

## Functions

- [`applyHeadlessToolResumeCommand()`](https://reference.langchain.com/javascript/langchain-react/applyHeadlessToolResumeCommand)
- [`executeHeadlessTool()`](https://reference.langchain.com/javascript/langchain-react/executeHeadlessTool)
- [`filterOutHeadlessToolInterrupts()`](https://reference.langchain.com/javascript/langchain-react/filterOutHeadlessToolInterrupts)
- [`findHeadlessTool()`](https://reference.langchain.com/javascript/langchain-react/findHeadlessTool)
- [`flushPendingHeadlessToolInterrupts()`](https://reference.langchain.com/javascript/langchain-react/flushPendingHeadlessToolInterrupts)
- [`handleHeadlessToolInterrupt()`](https://reference.langchain.com/javascript/langchain-react/handleHeadlessToolInterrupt)
- [`headlessToolResumeCommand()`](https://reference.langchain.com/javascript/langchain-react/headlessToolResumeCommand)
- [`isHeadlessToolInterrupt()`](https://reference.langchain.com/javascript/langchain-react/isHeadlessToolInterrupt)
- [`parseHeadlessToolInterruptPayload()`](https://reference.langchain.com/javascript/langchain-react/parseHeadlessToolInterruptPayload)
- [`StreamProvider()`](https://reference.langchain.com/javascript/langchain-react/StreamProvider)
- [`useAudio()`](https://reference.langchain.com/javascript/langchain-react/useAudio)
- [`useAudioPlayer()`](https://reference.langchain.com/javascript/langchain-react/useAudioPlayer)
- [`useChannel()`](https://reference.langchain.com/javascript/langchain-react/useChannel)
- [`useChannelEffect()`](https://reference.langchain.com/javascript/langchain-react/useChannelEffect)
- [`useExtension()`](https://reference.langchain.com/javascript/langchain-react/useExtension)
- [`useFiles()`](https://reference.langchain.com/javascript/langchain-react/useFiles)
- [`useImages()`](https://reference.langchain.com/javascript/langchain-react/useImages)
- [`useMediaURL()`](https://reference.langchain.com/javascript/langchain-react/useMediaURL)
- [`useMessageMetadata()`](https://reference.langchain.com/javascript/langchain-react/useMessageMetadata)
- [`useMessages()`](https://reference.langchain.com/javascript/langchain-react/useMessages)
- [`useProjection()`](https://reference.langchain.com/javascript/langchain-react/useProjection)
- [`useStream()`](https://reference.langchain.com/javascript/langchain-react/useStream)
- [`useStreamContext()`](https://reference.langchain.com/javascript/langchain-react/useStreamContext)
- [`useSubmissionQueue()`](https://reference.langchain.com/javascript/langchain-react/useSubmissionQueue)
- [`useSuspenseStream()`](https://reference.langchain.com/javascript/langchain-react/useSuspenseStream)
- [`useToolCalls()`](https://reference.langchain.com/javascript/langchain-react/useToolCalls)
- [`useValues()`](https://reference.langchain.com/javascript/langchain-react/useValues)
- [`useVideo()`](https://reference.langchain.com/javascript/langchain-react/useVideo)
- [`useVideoPlayer()`](https://reference.langchain.com/javascript/langchain-react/useVideoPlayer)

## Interfaces

- [`AgentServerAdapter`](https://reference.langchain.com/javascript/langchain-react/AgentServerAdapter)
- [`AssembledToolCall`](https://reference.langchain.com/javascript/langchain-react/AssembledToolCall)
- [`AudioMedia`](https://reference.langchain.com/javascript/langchain-react/AudioMedia)
- [`AudioPlayerHandle`](https://reference.langchain.com/javascript/langchain-react/AudioPlayerHandle)
- [`FileMedia`](https://reference.langchain.com/javascript/langchain-react/FileMedia)
- [`FlushPendingHeadlessToolInterruptsOptions`](https://reference.langchain.com/javascript/langchain-react/FlushPendingHeadlessToolInterruptsOptions)
- [`HeadlessToolImplementation`](https://reference.langchain.com/javascript/langchain-react/HeadlessToolImplementation)
- [`HeadlessToolInterrupt`](https://reference.langchain.com/javascript/langchain-react/HeadlessToolInterrupt)
- [`HttpAgentServerAdapterOptions`](https://reference.langchain.com/javascript/langchain-react/HttpAgentServerAdapterOptions)
- [`ImageMedia`](https://reference.langchain.com/javascript/langchain-react/ImageMedia)
- [`MediaBase`](https://reference.langchain.com/javascript/langchain-react/MediaBase)
- [`MessageMetadata`](https://reference.langchain.com/javascript/langchain-react/MessageMetadata)
- [`StreamStopOptions`](https://reference.langchain.com/javascript/langchain-react/StreamStopOptions)
- [`StreamSubmitOptions`](https://reference.langchain.com/javascript/langchain-react/StreamSubmitOptions)
- [`SubagentDiscoverySnapshot`](https://reference.langchain.com/javascript/langchain-react/SubagentDiscoverySnapshot)
- [`SubgraphDiscoverySnapshot`](https://reference.langchain.com/javascript/langchain-react/SubgraphDiscoverySnapshot)
- [`SubmissionQueueEntry`](https://reference.langchain.com/javascript/langchain-react/SubmissionQueueEntry)
- [`ToolEvent`](https://reference.langchain.com/javascript/langchain-react/ToolEvent)
- [`UseAudioPlayerOptions`](https://reference.langchain.com/javascript/langchain-react/UseAudioPlayerOptions)
- [`UseChannelEffectOptions`](https://reference.langchain.com/javascript/langchain-react/UseChannelEffectOptions)
- [`UseStreamReturn`](https://reference.langchain.com/javascript/langchain-react/UseStreamReturn)
- [`UseSubmissionQueueReturn`](https://reference.langchain.com/javascript/langchain-react/UseSubmissionQueueReturn)
- [`UseVideoPlayerOptions`](https://reference.langchain.com/javascript/langchain-react/UseVideoPlayerOptions)
- [`VideoMedia`](https://reference.langchain.com/javascript/langchain-react/VideoMedia)
- [`VideoPlayerHandle`](https://reference.langchain.com/javascript/langchain-react/VideoPlayerHandle)

## Types

- [`AgentServerOptions`](https://reference.langchain.com/javascript/langchain-react/AgentServerOptions)
- [`AnyHeadlessToolImplementation`](https://reference.langchain.com/javascript/langchain-react/AnyHeadlessToolImplementation)
- [`AnyMediaHandle`](https://reference.langchain.com/javascript/langchain-react/AnyMediaHandle)
- [`AnyStream`](https://reference.langchain.com/javascript/langchain-react/AnyStream)
- [`CustomAdapterOptions`](https://reference.langchain.com/javascript/langchain-react/CustomAdapterOptions)
- [`DefaultToolCall`](https://reference.langchain.com/javascript/langchain-react/DefaultToolCall)
- [`InferStateType`](https://reference.langchain.com/javascript/langchain-react/InferStateType)
- [`InferSubagentStates`](https://reference.langchain.com/javascript/langchain-react/InferSubagentStates)
- [`InferToolCalls`](https://reference.langchain.com/javascript/langchain-react/InferToolCalls)
- [`InferToolOutput`](https://reference.langchain.com/javascript/langchain-react/InferToolOutput)
- [`MediaAssemblyErrorKind`](https://reference.langchain.com/javascript/langchain-react/MediaAssemblyErrorKind)
- [`MediaBlockType`](https://reference.langchain.com/javascript/langchain-react/MediaBlockType)
- [`MessageMetadataMap`](https://reference.langchain.com/javascript/langchain-react/MessageMetadataMap)
- [`OnToolCallback`](https://reference.langchain.com/javascript/langchain-react/OnToolCallback)
- [`PlayerStatus`](https://reference.langchain.com/javascript/langchain-react/PlayerStatus)
- [`SelectorTarget`](https://reference.langchain.com/javascript/langchain-react/SelectorTarget)
- [`StreamProviderCustomProps`](https://reference.langchain.com/javascript/langchain-react/StreamProviderCustomProps)
- [`StreamProviderProps`](https://reference.langchain.com/javascript/langchain-react/StreamProviderProps)
- [`SubmissionQueueSnapshot`](https://reference.langchain.com/javascript/langchain-react/SubmissionQueueSnapshot)
- [`ToolCallFromTool`](https://reference.langchain.com/javascript/langchain-react/ToolCallFromTool)
- [`ToolCallsFromTools`](https://reference.langchain.com/javascript/langchain-react/ToolCallsFromTools)
- [`ToolCallState`](https://reference.langchain.com/javascript/langchain-react/ToolCallState)
- [`ToolCallStatus`](https://reference.langchain.com/javascript/langchain-react/ToolCallStatus)
- [`ToolCallWithResult`](https://reference.langchain.com/javascript/langchain-react/ToolCallWithResult)
- [`UseStreamOptions`](https://reference.langchain.com/javascript/langchain-react/UseStreamOptions)
- [`UseStreamResult`](https://reference.langchain.com/javascript/langchain-react/UseStreamResult)
- [`UseSuspenseStreamReturn`](https://reference.langchain.com/javascript/langchain-react/UseSuspenseStreamReturn)
- [`WidenUpdateMessages`](https://reference.langchain.com/javascript/langchain-react/WidenUpdateMessages)

## Constants

- [`apiUrl`](https://reference.langchain.com/javascript/langchain-react/HttpAgentServerAdapter/apiUrl)
- [`getState`](https://reference.langchain.com/javascript/langchain-react/HttpAgentServerAdapter/getState)
- [`threadId`](https://reference.langchain.com/javascript/langchain-react/HttpAgentServerAdapter/threadId)
- [`cause`](https://reference.langchain.com/javascript/langchain-react/MediaAssemblyError/cause)
- [`kind`](https://reference.langchain.com/javascript/langchain-react/MediaAssemblyError/kind)
- [`messageId`](https://reference.langchain.com/javascript/langchain-react/MediaAssemblyError/messageId)
- [`partialBytes`](https://reference.langchain.com/javascript/langchain-react/MediaAssemblyError/partialBytes)
- [`threadId`](https://reference.langchain.com/javascript/langchain-react/AgentServerAdapter/threadId)
- [`args`](https://reference.langchain.com/javascript/langchain-react/AssembledToolCall/args)
- [`callId`](https://reference.langchain.com/javascript/langchain-react/AssembledToolCall/callId)
- [`error`](https://reference.langchain.com/javascript/langchain-react/AssembledToolCall/error)
- [`id`](https://reference.langchain.com/javascript/langchain-react/AssembledToolCall/id)
- [`input`](https://reference.langchain.com/javascript/langchain-react/AssembledToolCall/input)
- [`name`](https://reference.langchain.com/javascript/langchain-react/AssembledToolCall/name)
- [`namespace`](https://reference.langchain.com/javascript/langchain-react/AssembledToolCall/namespace)
- [`output`](https://reference.langchain.com/javascript/langchain-react/AssembledToolCall/output)
- [`status`](https://reference.langchain.com/javascript/langchain-react/AssembledToolCall/status)
- [`blob`](https://reference.langchain.com/javascript/langchain-react/AudioMedia/blob)
- [`error`](https://reference.langchain.com/javascript/langchain-react/AudioMedia/error)
- [`id`](https://reference.langchain.com/javascript/langchain-react/AudioMedia/id)
- [`messageId`](https://reference.langchain.com/javascript/langchain-react/AudioMedia/messageId)
- [`mimeType`](https://reference.langchain.com/javascript/langchain-react/AudioMedia/mimeType)
- [`monotonic`](https://reference.langchain.com/javascript/langchain-react/AudioMedia/monotonic)
- [`namespace`](https://reference.langchain.com/javascript/langchain-react/AudioMedia/namespace)
- [`node`](https://reference.langchain.com/javascript/langchain-react/AudioMedia/node)
- [`objectURL`](https://reference.langchain.com/javascript/langchain-react/AudioMedia/objectURL)
- [`partialBytes`](https://reference.langchain.com/javascript/langchain-react/AudioMedia/partialBytes)
- [`stream`](https://reference.langchain.com/javascript/langchain-react/AudioMedia/stream)
- [`transcript`](https://reference.langchain.com/javascript/langchain-react/AudioMedia/transcript)
- [`type`](https://reference.langchain.com/javascript/langchain-react/AudioMedia/type)
- [`url`](https://reference.langchain.com/javascript/langchain-react/AudioMedia/url)
- [`currentTime`](https://reference.langchain.com/javascript/langchain-react/AudioPlayerHandle/currentTime)
- [`duration`](https://reference.langchain.com/javascript/langchain-react/AudioPlayerHandle/duration)
- [`error`](https://reference.langchain.com/javascript/langchain-react/AudioPlayerHandle/error)
- [`level`](https://reference.langchain.com/javascript/langchain-react/AudioPlayerHandle/level)
- [`status`](https://reference.langchain.com/javascript/langchain-react/AudioPlayerHandle/status)
- [`strategy`](https://reference.langchain.com/javascript/langchain-react/AudioPlayerHandle/strategy)
- [`blob`](https://reference.langchain.com/javascript/langchain-react/FileMedia/blob)
- [`error`](https://reference.langchain.com/javascript/langchain-react/FileMedia/error)
- [`filename`](https://reference.langchain.com/javascript/langchain-react/FileMedia/filename)
- [`id`](https://reference.langchain.com/javascript/langchain-react/FileMedia/id)
- [`messageId`](https://reference.langchain.com/javascript/langchain-react/FileMedia/messageId)
- [`mimeType`](https://reference.langchain.com/javascript/langchain-react/FileMedia/mimeType)
- [`monotonic`](https://reference.langchain.com/javascript/langchain-react/FileMedia/monotonic)
- [`namespace`](https://reference.langchain.com/javascript/langchain-react/FileMedia/namespace)
- [`node`](https://reference.langchain.com/javascript/langchain-react/FileMedia/node)
- [`objectURL`](https://reference.langchain.com/javascript/langchain-react/FileMedia/objectURL)
- [`partialBytes`](https://reference.langchain.com/javascript/langchain-react/FileMedia/partialBytes)
- [`stream`](https://reference.langchain.com/javascript/langchain-react/FileMedia/stream)
- [`type`](https://reference.langchain.com/javascript/langchain-react/FileMedia/type)
- [`url`](https://reference.langchain.com/javascript/langchain-react/FileMedia/url)
- [`defer`](https://reference.langchain.com/javascript/langchain-react/FlushPendingHeadlessToolInterruptsOptions/defer)
- [`onTool`](https://reference.langchain.com/javascript/langchain-react/FlushPendingHeadlessToolInterruptsOptions/onTool)
- [`resumeSubmit`](https://reference.langchain.com/javascript/langchain-react/FlushPendingHeadlessToolInterruptsOptions/resumeSubmit)
- [`execute`](https://reference.langchain.com/javascript/langchain-react/HeadlessToolImplementation/execute)
- [`tool`](https://reference.langchain.com/javascript/langchain-react/HeadlessToolImplementation/tool)
- [`toolCall`](https://reference.langchain.com/javascript/langchain-react/HeadlessToolInterrupt/toolCall)
- [`type`](https://reference.langchain.com/javascript/langchain-react/HeadlessToolInterrupt/type)
- [`apiUrl`](https://reference.langchain.com/javascript/langchain-react/HttpAgentServerAdapterOptions/apiUrl)
- [`asyncCaller`](https://reference.langchain.com/javascript/langchain-react/HttpAgentServerAdapterOptions/asyncCaller)
- [`defaultHeaders`](https://reference.langchain.com/javascript/langchain-react/HttpAgentServerAdapterOptions/defaultHeaders)
- [`fetch`](https://reference.langchain.com/javascript/langchain-react/HttpAgentServerAdapterOptions/fetch)
- [`onRequest`](https://reference.langchain.com/javascript/langchain-react/HttpAgentServerAdapterOptions/onRequest)
- [`paths`](https://reference.langchain.com/javascript/langchain-react/HttpAgentServerAdapterOptions/paths)
- [`threadId`](https://reference.langchain.com/javascript/langchain-react/HttpAgentServerAdapterOptions/threadId)
- [`webSocketFactory`](https://reference.langchain.com/javascript/langchain-react/HttpAgentServerAdapterOptions/webSocketFactory)
- [`blob`](https://reference.langchain.com/javascript/langchain-react/ImageMedia/blob)
- [`error`](https://reference.langchain.com/javascript/langchain-react/ImageMedia/error)
- [`height`](https://reference.langchain.com/javascript/langchain-react/ImageMedia/height)
- [`id`](https://reference.langchain.com/javascript/langchain-react/ImageMedia/id)
- [`messageId`](https://reference.langchain.com/javascript/langchain-react/ImageMedia/messageId)
- [`mimeType`](https://reference.langchain.com/javascript/langchain-react/ImageMedia/mimeType)
- [`monotonic`](https://reference.langchain.com/javascript/langchain-react/ImageMedia/monotonic)
- [`namespace`](https://reference.langchain.com/javascript/langchain-react/ImageMedia/namespace)
- [`node`](https://reference.langchain.com/javascript/langchain-react/ImageMedia/node)
- [`objectURL`](https://reference.langchain.com/javascript/langchain-react/ImageMedia/objectURL)
- [`partialBytes`](https://reference.langchain.com/javascript/langchain-react/ImageMedia/partialBytes)
- [`stream`](https://reference.langchain.com/javascript/langchain-react/ImageMedia/stream)
- [`type`](https://reference.langchain.com/javascript/langchain-react/ImageMedia/type)
- [`url`](https://reference.langchain.com/javascript/langchain-react/ImageMedia/url)
- [`width`](https://reference.langchain.com/javascript/langchain-react/ImageMedia/width)
- [`blob`](https://reference.langchain.com/javascript/langchain-react/MediaBase/blob)
- [`error`](https://reference.langchain.com/javascript/langchain-react/MediaBase/error)
- [`id`](https://reference.langchain.com/javascript/langchain-react/MediaBase/id)
- [`messageId`](https://reference.langchain.com/javascript/langchain-react/MediaBase/messageId)
- [`mimeType`](https://reference.langchain.com/javascript/langchain-react/MediaBase/mimeType)
- [`monotonic`](https://reference.langchain.com/javascript/langchain-react/MediaBase/monotonic)
- [`namespace`](https://reference.langchain.com/javascript/langchain-react/MediaBase/namespace)
- [`node`](https://reference.langchain.com/javascript/langchain-react/MediaBase/node)
- [`objectURL`](https://reference.langchain.com/javascript/langchain-react/MediaBase/objectURL)
- [`partialBytes`](https://reference.langchain.com/javascript/langchain-react/MediaBase/partialBytes)
- [`stream`](https://reference.langchain.com/javascript/langchain-react/MediaBase/stream)
- [`url`](https://reference.langchain.com/javascript/langchain-react/MediaBase/url)
- [`optimisticStatus`](https://reference.langchain.com/javascript/langchain-react/MessageMetadata/optimisticStatus)
- [`parentCheckpointId`](https://reference.langchain.com/javascript/langchain-react/MessageMetadata/parentCheckpointId)
- [`cancel`](https://reference.langchain.com/javascript/langchain-react/StreamStopOptions/cancel)
- [`_stateType`](https://reference.langchain.com/javascript/langchain-react/StreamSubmitOptions/_stateType)
- [`config`](https://reference.langchain.com/javascript/langchain-react/StreamSubmitOptions/config)
- [`forkFrom`](https://reference.langchain.com/javascript/langchain-react/StreamSubmitOptions/forkFrom)
- [`metadata`](https://reference.langchain.com/javascript/langchain-react/StreamSubmitOptions/metadata)
- [`multitaskStrategy`](https://reference.langchain.com/javascript/langchain-react/StreamSubmitOptions/multitaskStrategy)
- [`onError`](https://reference.langchain.com/javascript/langchain-react/StreamSubmitOptions/onError)
- [`signal`](https://reference.langchain.com/javascript/langchain-react/StreamSubmitOptions/signal)
- [`threadId`](https://reference.langchain.com/javascript/langchain-react/StreamSubmitOptions/threadId)
- [`completedAt`](https://reference.langchain.com/javascript/langchain-react/SubagentDiscoverySnapshot/completedAt)
- [`depth`](https://reference.langchain.com/javascript/langchain-react/SubagentDiscoverySnapshot/depth)
- [`error`](https://reference.langchain.com/javascript/langchain-react/SubagentDiscoverySnapshot/error)
- [`id`](https://reference.langchain.com/javascript/langchain-react/SubagentDiscoverySnapshot/id)
- [`name`](https://reference.langchain.com/javascript/langchain-react/SubagentDiscoverySnapshot/name)
- [`namespace`](https://reference.langchain.com/javascript/langchain-react/SubagentDiscoverySnapshot/namespace)
- [`output`](https://reference.langchain.com/javascript/langchain-react/SubagentDiscoverySnapshot/output)
- [`parentId`](https://reference.langchain.com/javascript/langchain-react/SubagentDiscoverySnapshot/parentId)
- [`startedAt`](https://reference.langchain.com/javascript/langchain-react/SubagentDiscoverySnapshot/startedAt)
- [`status`](https://reference.langchain.com/javascript/langchain-react/SubagentDiscoverySnapshot/status)
- [`taskInput`](https://reference.langchain.com/javascript/langchain-react/SubagentDiscoverySnapshot/taskInput)
- [`completedAt`](https://reference.langchain.com/javascript/langchain-react/SubgraphDiscoverySnapshot/completedAt)
- [`id`](https://reference.langchain.com/javascript/langchain-react/SubgraphDiscoverySnapshot/id)
- [`namespace`](https://reference.langchain.com/javascript/langchain-react/SubgraphDiscoverySnapshot/namespace)
- [`nodeName`](https://reference.langchain.com/javascript/langchain-react/SubgraphDiscoverySnapshot/nodeName)
- [`startedAt`](https://reference.langchain.com/javascript/langchain-react/SubgraphDiscoverySnapshot/startedAt)
- [`status`](https://reference.langchain.com/javascript/langchain-react/SubgraphDiscoverySnapshot/status)
- [`createdAt`](https://reference.langchain.com/javascript/langchain-react/SubmissionQueueEntry/createdAt)
- [`id`](https://reference.langchain.com/javascript/langchain-react/SubmissionQueueEntry/id)
- [`options`](https://reference.langchain.com/javascript/langchain-react/SubmissionQueueEntry/options)
- [`values`](https://reference.langchain.com/javascript/langchain-react/SubmissionQueueEntry/values)
- [`args`](https://reference.langchain.com/javascript/langchain-react/ToolEvent/args)
- [`duration`](https://reference.langchain.com/javascript/langchain-react/ToolEvent/duration)
- [`error`](https://reference.langchain.com/javascript/langchain-react/ToolEvent/error)
- [`name`](https://reference.langchain.com/javascript/langchain-react/ToolEvent/name)
- [`phase`](https://reference.langchain.com/javascript/langchain-react/ToolEvent/phase)
- [`result`](https://reference.langchain.com/javascript/langchain-react/ToolEvent/result)
- [`autoPlay`](https://reference.langchain.com/javascript/langchain-react/UseAudioPlayerOptions/autoPlay)
- [`pcm`](https://reference.langchain.com/javascript/langchain-react/UseAudioPlayerOptions/pcm)
- [`pcmMimePrefixes`](https://reference.langchain.com/javascript/langchain-react/UseAudioPlayerOptions/pcmMimePrefixes)
- [`strategy`](https://reference.langchain.com/javascript/langchain-react/UseAudioPlayerOptions/strategy)
- [`bufferSize`](https://reference.langchain.com/javascript/langchain-react/UseChannelEffectOptions/bufferSize)
- [`enabled`](https://reference.langchain.com/javascript/langchain-react/UseChannelEffectOptions/enabled)
- [`onError`](https://reference.langchain.com/javascript/langchain-react/UseChannelEffectOptions/onError)
- [`onEvent`](https://reference.langchain.com/javascript/langchain-react/UseChannelEffectOptions/onEvent)
- [`replay`](https://reference.langchain.com/javascript/langchain-react/UseChannelEffectOptions/replay)
- [`target`](https://reference.langchain.com/javascript/langchain-react/UseChannelEffectOptions/target)
- [`assistantId`](https://reference.langchain.com/javascript/langchain-react/UseStreamReturn/assistantId)
- [`client`](https://reference.langchain.com/javascript/langchain-react/UseStreamReturn/client)
- [`error`](https://reference.langchain.com/javascript/langchain-react/UseStreamReturn/error)
- [`hydrationPromise`](https://reference.langchain.com/javascript/langchain-react/UseStreamReturn/hydrationPromise)
- [`interrupt`](https://reference.langchain.com/javascript/langchain-react/UseStreamReturn/interrupt)
- [`interrupts`](https://reference.langchain.com/javascript/langchain-react/UseStreamReturn/interrupts)
- [`isLoading`](https://reference.langchain.com/javascript/langchain-react/UseStreamReturn/isLoading)
- [`isThreadLoading`](https://reference.langchain.com/javascript/langchain-react/UseStreamReturn/isThreadLoading)
- [`messages`](https://reference.langchain.com/javascript/langchain-react/UseStreamReturn/messages)
- [`subagents`](https://reference.langchain.com/javascript/langchain-react/UseStreamReturn/subagents)
- [`subgraphs`](https://reference.langchain.com/javascript/langchain-react/UseStreamReturn/subgraphs)
- [`subgraphsByNode`](https://reference.langchain.com/javascript/langchain-react/UseStreamReturn/subgraphsByNode)
- [`threadId`](https://reference.langchain.com/javascript/langchain-react/UseStreamReturn/threadId)
- [`toolCalls`](https://reference.langchain.com/javascript/langchain-react/UseStreamReturn/toolCalls)
- [`values`](https://reference.langchain.com/javascript/langchain-react/UseStreamReturn/values)
- [`entries`](https://reference.langchain.com/javascript/langchain-react/UseSubmissionQueueReturn/entries)
- [`size`](https://reference.langchain.com/javascript/langchain-react/UseSubmissionQueueReturn/size)
- [`autoPlay`](https://reference.langchain.com/javascript/langchain-react/UseVideoPlayerOptions/autoPlay)
- [`blob`](https://reference.langchain.com/javascript/langchain-react/VideoMedia/blob)
- [`error`](https://reference.langchain.com/javascript/langchain-react/VideoMedia/error)
- [`id`](https://reference.langchain.com/javascript/langchain-react/VideoMedia/id)
- [`messageId`](https://reference.langchain.com/javascript/langchain-react/VideoMedia/messageId)
- [`mimeType`](https://reference.langchain.com/javascript/langchain-react/VideoMedia/mimeType)
- [`monotonic`](https://reference.langchain.com/javascript/langchain-react/VideoMedia/monotonic)
- [`namespace`](https://reference.langchain.com/javascript/langchain-react/VideoMedia/namespace)
- [`node`](https://reference.langchain.com/javascript/langchain-react/VideoMedia/node)
- [`objectURL`](https://reference.langchain.com/javascript/langchain-react/VideoMedia/objectURL)
- [`partialBytes`](https://reference.langchain.com/javascript/langchain-react/VideoMedia/partialBytes)
- [`stream`](https://reference.langchain.com/javascript/langchain-react/VideoMedia/stream)
- [`type`](https://reference.langchain.com/javascript/langchain-react/VideoMedia/type)
- [`url`](https://reference.langchain.com/javascript/langchain-react/VideoMedia/url)
- [`currentTime`](https://reference.langchain.com/javascript/langchain-react/VideoPlayerHandle/currentTime)
- [`duration`](https://reference.langchain.com/javascript/langchain-react/VideoPlayerHandle/duration)
- [`error`](https://reference.langchain.com/javascript/langchain-react/VideoPlayerHandle/error)
- [`status`](https://reference.langchain.com/javascript/langchain-react/VideoPlayerHandle/status)
- [`args`](https://reference.langchain.com/javascript/langchain-react/DefaultToolCall/args)
- [`id`](https://reference.langchain.com/javascript/langchain-react/DefaultToolCall/id)
- [`name`](https://reference.langchain.com/javascript/langchain-react/DefaultToolCall/name)
- [`type`](https://reference.langchain.com/javascript/langchain-react/DefaultToolCall/type)
- [`STREAM_CONTROLLER`](https://reference.langchain.com/javascript/langchain-react/STREAM_CONTROLLER)
