Files
langgraphjs/libs/sdk-svelte
github-actions[bot] c418781870 chore: version packages (#2495)
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @langchain/langgraph-api@1.2.5

### Patch Changes

-
[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(langgraph): forward named custom stream channels consistently

Forward remote `StreamChannel` emissions as `custom:<name>` protocol
events and normalize them back to custom-channel payloads in the API
session. This aligns JavaScript stream-channel forwarding with the
protocol subscription shape used by remote clients, so `custom:<name>`
subscriptions receive extension channel data consistently.

-   Updated dependencies \[]:
    -   @langchain/langgraph-ui@1.2.5

## @langchain/langgraph-cli@1.2.5

### Patch Changes

- Updated dependencies
\[[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f)]:
    -   @langchain/langgraph-api@1.2.5

## @langchain/langgraph@1.3.6

### Patch Changes

-
[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(langgraph): forward named custom stream channels consistently

Forward remote `StreamChannel` emissions as `custom:<name>` protocol
events and normalize them back to custom-channel payloads in the API
session. This aligns JavaScript stream-channel forwarding with the
protocol subscription shape used by remote clients, so `custom:<name>`
subscriptions receive extension channel data consistently.

- Updated dependencies
\[[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e),
[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f),
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)]:
    -   @langchain/langgraph-sdk@1.9.17

## @langchain/langgraph-sdk@1.9.17

### Patch Changes

- [#2494](https://github.com/langchain-ai/langgraphjs/pull/2494)
[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): revive automatic optimistic submit echo

Echo `submit()` input into `values` / `messages` immediately with
client-side
id minting and id-based reconciliation as the server streams back.
Expose
per-message `optimisticStatus` via message metadata (`pending` → `sent`
/
`failed`), shallow-merge non-message keys with rollback when no `values`
arrive, and add an `optimistic: false` hook opt-out. Plumb through
React,
    Vue, Svelte, and Angular with browser e2e coverage.

-
[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): coalesce duplicate thread read requests

Coalesce concurrent identical `threads.getState()` and
`threads.getHistory()` reads within the SDK client so transient remounts
do not issue duplicate hydrate requests. Request identity includes the
prepared URL, body, method, and headers, and coalescing is skipped for
caller-provided abort signals, raw response reads, and `onRequest` hooks
to preserve auth and cancellation isolation.

- [#2497](https://github.com/langchain-ai/langgraphjs/pull/2497)
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): reconcile subagents and subgraphs on thread reconnect

Seed deep-agent subagent cards from checkpoint messages and subgraph
hosts from a single bounded `getHistory` read during `hydrate()`, so
parallel fan-out discovery reappears immediately on refresh instead of
waiting for SSE replay. Subagent execution namespaces are promoted
through the existing guarded discovery state machine (bulk at hydrate,
lazily per opened card via the selector layer). The getHistory cost is
O(1) in requests regardless of fan-out width.

## @langchain/angular@1.0.17

### Patch Changes

- [#2494](https://github.com/langchain-ai/langgraphjs/pull/2494)
[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): revive automatic optimistic submit echo

Echo `submit()` input into `values` / `messages` immediately with
client-side
id minting and id-based reconciliation as the server streams back.
Expose
per-message `optimisticStatus` via message metadata (`pending` → `sent`
/
`failed`), shallow-merge non-message keys with rollback when no `values`
arrive, and add an `optimistic: false` hook opt-out. Plumb through
React,
    Vue, Svelte, and Angular with browser e2e coverage.

- [#2497](https://github.com/langchain-ai/langgraphjs/pull/2497)
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): reconcile subagents and subgraphs on thread reconnect

Seed deep-agent subagent cards from checkpoint messages and subgraph
hosts from a single bounded `getHistory` read during `hydrate()`, so
parallel fan-out discovery reappears immediately on refresh instead of
waiting for SSE replay. Subagent execution namespaces are promoted
through the existing guarded discovery state machine (bulk at hydrate,
lazily per opened card via the selector layer). The getHistory cost is
O(1) in requests regardless of fan-out width.

- Updated dependencies
\[[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e),
[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f),
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)]:
    -   @langchain/langgraph-sdk@1.9.17

## @langchain/react@1.0.17

### Patch Changes

- [#2494](https://github.com/langchain-ai/langgraphjs/pull/2494)
[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): revive automatic optimistic submit echo

Echo `submit()` input into `values` / `messages` immediately with
client-side
id minting and id-based reconciliation as the server streams back.
Expose
per-message `optimisticStatus` via message metadata (`pending` → `sent`
/
`failed`), shallow-merge non-message keys with rollback when no `values`
arrive, and add an `optimistic: false` hook opt-out. Plumb through
React,
    Vue, Svelte, and Angular with browser e2e coverage.

- [#2497](https://github.com/langchain-ai/langgraphjs/pull/2497)
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): reconcile subagents and subgraphs on thread reconnect

Seed deep-agent subagent cards from checkpoint messages and subgraph
hosts from a single bounded `getHistory` read during `hydrate()`, so
parallel fan-out discovery reappears immediately on refresh instead of
waiting for SSE replay. Subagent execution namespaces are promoted
through the existing guarded discovery state machine (bulk at hydrate,
lazily per opened card via the selector layer). The getHistory cost is
O(1) in requests regardless of fan-out width.

- Updated dependencies
\[[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e),
[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f),
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)]:
    -   @langchain/langgraph-sdk@1.9.17

## @langchain/svelte@1.0.17

### Patch Changes

- [#2494](https://github.com/langchain-ai/langgraphjs/pull/2494)
[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): revive automatic optimistic submit echo

Echo `submit()` input into `values` / `messages` immediately with
client-side
id minting and id-based reconciliation as the server streams back.
Expose
per-message `optimisticStatus` via message metadata (`pending` → `sent`
/
`failed`), shallow-merge non-message keys with rollback when no `values`
arrive, and add an `optimistic: false` hook opt-out. Plumb through
React,
    Vue, Svelte, and Angular with browser e2e coverage.

- [#2497](https://github.com/langchain-ai/langgraphjs/pull/2497)
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): reconcile subagents and subgraphs on thread reconnect

Seed deep-agent subagent cards from checkpoint messages and subgraph
hosts from a single bounded `getHistory` read during `hydrate()`, so
parallel fan-out discovery reappears immediately on refresh instead of
waiting for SSE replay. Subagent execution namespaces are promoted
through the existing guarded discovery state machine (bulk at hydrate,
lazily per opened card via the selector layer). The getHistory cost is
O(1) in requests regardless of fan-out width.

- Updated dependencies
\[[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e),
[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f),
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)]:
    -   @langchain/langgraph-sdk@1.9.17

## @langchain/vue@1.0.17

### Patch Changes

- [#2494](https://github.com/langchain-ai/langgraphjs/pull/2494)
[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): revive automatic optimistic submit echo

Echo `submit()` input into `values` / `messages` immediately with
client-side
id minting and id-based reconciliation as the server streams back.
Expose
per-message `optimisticStatus` via message metadata (`pending` → `sent`
/
`failed`), shallow-merge non-message keys with rollback when no `values`
arrive, and add an `optimistic: false` hook opt-out. Plumb through
React,
    Vue, Svelte, and Angular with browser e2e coverage.

- [#2497](https://github.com/langchain-ai/langgraphjs/pull/2497)
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): reconcile subagents and subgraphs on thread reconnect

Seed deep-agent subagent cards from checkpoint messages and subgraph
hosts from a single bounded `getHistory` read during `hydrate()`, so
parallel fan-out discovery reappears immediately on refresh instead of
waiting for SSE replay. Subagent execution namespaces are promoted
through the existing guarded discovery state machine (bulk at hydrate,
lazily per opened card via the selector layer). The getHistory cost is
O(1) in requests regardless of fan-out width.

- Updated dependencies
\[[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e),
[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f),
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)]:
    -   @langchain/langgraph-sdk@1.9.17

## @langchain/langgraph-ui@1.2.5



## @example/ai-elements@0.1.32

### Patch Changes

- Updated dependencies
\[[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f),
[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e),
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)]:
    -   @langchain/langgraph@1.3.6
    -   @langchain/react@1.0.17

## @examples/assistant-ui-claude@0.1.32

### Patch Changes

- Updated dependencies
\[[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f),
[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e),
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)]:
    -   @langchain/langgraph@1.3.6
    -   @langchain/react@1.0.17

## @examples/ui-angular@0.0.42

### Patch Changes

- Updated dependencies
\[[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f),
[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e),
[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f),
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)]:
    -   @langchain/langgraph@1.3.6
    -   @langchain/langgraph-sdk@1.9.17
    -   @langchain/angular@1.0.17

## @examples/ui-multimodal@0.0.18

### Patch Changes

- Updated dependencies
\[[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f),
[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e),
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)]:
    -   @langchain/langgraph@1.3.6
    -   @langchain/react@1.0.17

## @examples/ui-react@0.0.18

### Patch Changes

- Updated dependencies
\[[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f),
[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e),
[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f),
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)]:
    -   @langchain/langgraph@1.3.6
    -   @langchain/langgraph-sdk@1.9.17
    -   @langchain/react@1.0.17

## langgraph@1.0.38

### Patch Changes

- Updated dependencies
\[[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f)]:
    -   @langchain/langgraph@1.3.6

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-05 15:52:16 -07:00
..
2026-06-05 15:52:16 -07:00
2026-06-05 15:52:16 -07:00

@langchain/svelte

Svelte 5 SDK for Deep Agents, LangChain and LangGraph.

useStream binds a LangGraph agent into a Svelte 5 component. Reactive fields are exposed as getters on a stable handle (stream.messages, stream.isLoading, …) so templates and $derived expressions track updates automatically — no stores, no $ prefix, no destructuring.

Installation

npm install @langchain/svelte @langchain/core

Peer dependencies: svelte ^5.0.0, @langchain/core ^1.0.1

Quick start

<script lang="ts">
  import { useStream } from "@langchain/svelte";

  const stream = useStream({
    assistantId: "agent",
    apiUrl: "http://localhost:2024",
  });
</script>

{#each stream.messages as msg (msg.id)}
  <div>{msg.content}</div>
{/each}

<button
  disabled={stream.isLoading}
  onclick={() =>
    stream.submit({ messages: [{ type: "human", content: "Hello!" }] })}
>
  Send
</button>

Note: Access fields through the live stream handle. Destructuring (const { messages } = stream) freezes the values at that moment — use stream.messages in templates instead.

Highlights

  • v2-native streaming protocol. Session-based transport with automatic re-attach on remount; no more reconnectOnMount / joinStream dance.
  • Always-on root projections. values, messages, toolCalls, and interrupts are reactive at the root with zero extra subscription cost.
  • Selector composables for scoped data. Per-subagent / per-subgraph messages, tool calls, and media stream only when a component actually mounts the matching composable, and release on unmount.
  • Discriminated option bag. The hosted Agent Server path and the custom-adapter path are two arms of a single typed union — mixing them is a compile-time error.
  • Reactive threadId. Pass threadId: () => active to drive in-place thread swaps without remounting.
  • Agent-brand type inference. useStream<typeof agent>() unwraps state, tool calls, and subagent state maps from an agent brand.
  • Multimodal media streams. Built-in assembly for audio, images, video, and files — plus opinionated playback helpers.
  • Headless tools. Register local tool implementations that auto-resolve server-emitted tool-call interrupts without a round-trip through the UI.

Documentation

In-depth guides live in docs/:

Migrating from v0

@langchain/svelte v1 targets the v2 streaming protocol. The useStream import stays the same, but the option bag, return shape, and how you subscribe to scoped data all change. Most chat apps migrate in well under an hour — the full guide with line-by-line diffs lives in docs/v1-migration.md.

Playground

For full end-to-end examples, see the LangChain UI Playground.

License

MIT