Files
langgraphjs/libs/sdk-svelte
github-actions[bot] 659d628d19 chore: version packages (#2704)
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@1.4.11

### Patch Changes

- [#2706](https://github.com/langchain-ai/langgraphjs/pull/2706)
[`eaa5472`](https://github.com/langchain-ai/langgraphjs/commit/eaa5472fa480fad2671659d1c9ed0686a55d42bd)
Thanks [@zduric-langchain](https://github.com/zduric-langchain)! -
fix(langgraph): dedupe merged callback handlers by identity

`mergeCallbacks` concatenated `handlers` and `inheritableHandlers` while
deduping `tags`, so a handler inherited by both the ambient and the
explicit
config picked up an extra registration at every graph boundary. With
tracing
  on, a nested `streamMode: "messages"` run delivered every token twice.

- Updated dependencies
[[`3ce9f8d`](https://github.com/langchain-ai/langgraphjs/commit/3ce9f8d11dd64b1d091a25162603c49e6f4a426f),
[`51b4202`](https://github.com/langchain-ai/langgraphjs/commit/51b42020f7c730a15193aa907056881e3d961924),
[`a86f813`](https://github.com/langchain-ai/langgraphjs/commit/a86f813954e010fbf30711c37baa5c53444613d5)]:
  - @langchain/langgraph-sdk@1.9.30
## @langchain/langgraph-sdk@1.9.30

### Patch Changes

- [#2691](https://github.com/langchain-ai/langgraphjs/pull/2691)
[`3ce9f8d`](https://github.com/langchain-ai/langgraphjs/commit/3ce9f8d11dd64b1d091a25162603c49e6f4a426f)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): clear messages on hydrate(null) with a pending interrupt

  Teardown awaited the paused root pump, so threadId went null while
  the old conversation stayed on screen. Reset the snapshot first.

- [#2703](https://github.com/langchain-ai/langgraphjs/pull/2703)
[`51b4202`](https://github.com/langchain-ai/langgraphjs/commit/51b42020f7c730a15193aa907056881e3d961924)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): keep isLoading true across interrupt→running hydration

Deferred terminal resets no longer clear isLoading when a newer running
lifecycle has already arrived (HITL resume / SSE replay).

- [#2692](https://github.com/langchain-ai/langgraphjs/pull/2692)
[`a86f813`](https://github.com/langchain-ai/langgraphjs/commit/a86f813954e010fbf30711c37baa5c53444613d5)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): adopt server metadata on same-id optimistic message echo

  When a `values` snapshot echoes an optimistic human with the same
  content plus committed `additional_kwargs` (e.g. attachment paths),
  `stream.messages` now takes the server copy instead of keeping the
  plain optimistic message until hydration. Preferring is asymmetric:
  lagging or poorer values snapshots do not strip richer current
  metadata. In-flight AI token streaming is unchanged: streamed content
  still wins when it has moved past the snapshot.
## @langchain/angular@1.0.31

### Patch Changes

- Updated dependencies
[[`3ce9f8d`](https://github.com/langchain-ai/langgraphjs/commit/3ce9f8d11dd64b1d091a25162603c49e6f4a426f),
[`51b4202`](https://github.com/langchain-ai/langgraphjs/commit/51b42020f7c730a15193aa907056881e3d961924),
[`a86f813`](https://github.com/langchain-ai/langgraphjs/commit/a86f813954e010fbf30711c37baa5c53444613d5)]:
  - @langchain/langgraph-sdk@1.9.30
## @langchain/react@1.0.31

### Patch Changes

- Updated dependencies
[[`3ce9f8d`](https://github.com/langchain-ai/langgraphjs/commit/3ce9f8d11dd64b1d091a25162603c49e6f4a426f),
[`51b4202`](https://github.com/langchain-ai/langgraphjs/commit/51b42020f7c730a15193aa907056881e3d961924),
[`a86f813`](https://github.com/langchain-ai/langgraphjs/commit/a86f813954e010fbf30711c37baa5c53444613d5)]:
  - @langchain/langgraph-sdk@1.9.30
## @langchain/svelte@1.0.31

### Patch Changes

- Updated dependencies
[[`3ce9f8d`](https://github.com/langchain-ai/langgraphjs/commit/3ce9f8d11dd64b1d091a25162603c49e6f4a426f),
[`51b4202`](https://github.com/langchain-ai/langgraphjs/commit/51b42020f7c730a15193aa907056881e3d961924),
[`a86f813`](https://github.com/langchain-ai/langgraphjs/commit/a86f813954e010fbf30711c37baa5c53444613d5)]:
  - @langchain/langgraph-sdk@1.9.30
## @langchain/vue@1.0.31

### Patch Changes

- Updated dependencies
[[`3ce9f8d`](https://github.com/langchain-ai/langgraphjs/commit/3ce9f8d11dd64b1d091a25162603c49e6f4a426f),
[`51b4202`](https://github.com/langchain-ai/langgraphjs/commit/51b42020f7c730a15193aa907056881e3d961924),
[`a86f813`](https://github.com/langchain-ai/langgraphjs/commit/a86f813954e010fbf30711c37baa5c53444613d5)]:
  - @langchain/langgraph-sdk@1.9.30

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-19 12:36:59 -07:00
..
2026-08-19 12:36:59 -07:00
2026-08-19 12:36:59 -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