Files
langgraphjs/libs/sdk-svelte
github-actions[bot] 34b7f6cfc5 chore: version packages (#2485)
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-sdk@1.9.15

### Patch Changes

- [#2484](https://github.com/langchain-ai/langgraphjs/pull/2484)
[`9861f42`](https://github.com/langchain-ai/langgraphjs/commit/9861f42cc4fa23d9e80ae45a76d511d7618cda07)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): claim in-flight slot before root pump wait for enqueue

Move `#runAbort` and `isLoading` setup ahead of `waitForRootPumpReady()`
so
`multitaskStrategy: "enqueue"` submits in the same tick land in
`queueStore`
    instead of bypassing the client queue.

## @langchain/angular@1.0.15

### Patch Changes

- Updated dependencies
\[[`9861f42`](https://github.com/langchain-ai/langgraphjs/commit/9861f42cc4fa23d9e80ae45a76d511d7618cda07)]:
    -   @langchain/langgraph-sdk@1.9.15

## @langchain/react@1.0.15

### Patch Changes

- Updated dependencies
\[[`9861f42`](https://github.com/langchain-ai/langgraphjs/commit/9861f42cc4fa23d9e80ae45a76d511d7618cda07)]:
    -   @langchain/langgraph-sdk@1.9.15

## @langchain/svelte@1.0.15

### Patch Changes

- Updated dependencies
\[[`9861f42`](https://github.com/langchain-ai/langgraphjs/commit/9861f42cc4fa23d9e80ae45a76d511d7618cda07)]:
    -   @langchain/langgraph-sdk@1.9.15

## @langchain/vue@1.0.15

### Patch Changes

- Updated dependencies
\[[`9861f42`](https://github.com/langchain-ai/langgraphjs/commit/9861f42cc4fa23d9e80ae45a76d511d7618cda07)]:
    -   @langchain/langgraph-sdk@1.9.15

## @example/ai-elements@0.1.30

### Patch Changes

-   Updated dependencies \[]:
    -   @langchain/react@1.0.15

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

### Patch Changes

-   Updated dependencies \[]:
    -   @langchain/react@1.0.15

## @examples/ui-angular@0.0.40

### Patch Changes

- Updated dependencies
\[[`9861f42`](https://github.com/langchain-ai/langgraphjs/commit/9861f42cc4fa23d9e80ae45a76d511d7618cda07)]:
    -   @langchain/langgraph-sdk@1.9.15
    -   @langchain/angular@1.0.15

## @examples/ui-multimodal@0.0.16

### Patch Changes

-   Updated dependencies \[]:
    -   @langchain/react@1.0.15

## @examples/ui-react@0.0.16

### Patch Changes

- Updated dependencies
\[[`9861f42`](https://github.com/langchain-ai/langgraphjs/commit/9861f42cc4fa23d9e80ae45a76d511d7618cda07)]:
    -   @langchain/langgraph-sdk@1.9.15
    -   @langchain/react@1.0.15

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-03 15:49:38 -07:00
..
2026-06-03 15:49:38 -07:00
2026-06-03 15:49:38 -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