Files
langgraphjs/libs/sdk-vue
github-actions[bot] 92ea6ab754 chore: version packages (#2507)
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-checkpoint-validation@1.1.0

### Minor Changes

- [#2503](https://github.com/langchain-ai/langgraphjs/pull/2503)
[`6e850fb`](https://github.com/langchain-ai/langgraphjs/commit/6e850fbabc842bb495352fbd6ef424c67ab0948f)
Thanks [@jkennedyvz](https://github.com/jkennedyvz)! -
fix(langgraph-checkpoint-validation): align node engine with vitest

## @langchain/langgraph-api@1.3.0

### Minor Changes

- [#2505](https://github.com/langchain-ai/langgraphjs/pull/2505)
[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
Consolidate the protocol session's channel inference, channel-set
validation, and namespace prefix matching onto the shared
`@langchain/langgraph/stream` helpers instead of maintaining local
copies. This removes duplicated logic across `session/index.mts`,
`session/namespace.mts`, `session/internal-types.mts`, and
`service.mts`.

This also aligns SSE event-sink filtering (`matchesSinkFilter`) with the
WebSocket subscription matcher: both now normalize dynamic namespace
suffixes (e.g. a `["fetcher"]` namespace filter matches an event emitted
under `["fetcher:<uuid>"]`). Previously the SSE path used a stricter
exact-segment match.

Because the session now imports `@langchain/langgraph/stream`, the
`@langchain/langgraph` peer dependency floor is raised to `^1.3.6` (the
first release that ships the `/stream` entrypoint).

### Patch Changes

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

## @langchain/langgraph-checkpoint-sqlite@1.0.2

### Patch Changes

- [#2504](https://github.com/langchain-ai/langgraphjs/pull/2504)
[`e8a0940`](https://github.com/langchain-ai/langgraphjs/commit/e8a09409ac4a997012e78081160c91188ebe39fc)
Thanks [@jackjin1997](https://github.com/jackjin1997)! - fix:
`SqliteSaver.list({}, { filter })` now honors arbitrary metadata keys
(e.g. `tenant_id`, `env`), matching the behavior of the MongoDB,
Postgres, and Redis checkpointers. Previously only `source`, `step`, and
`parents` were honored — any other key was silently dropped, returning
unfiltered results.

## @langchain/langgraph-cli@1.3.0

### Patch Changes

- Updated dependencies
\[[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)]:
    -   @langchain/langgraph-api@1.3.0

## @langchain/langgraph@1.3.7

### Patch Changes

- [#2505](https://github.com/langchain-ai/langgraphjs/pull/2505)
[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)
Thanks [@christian-bromann](https://github.com/christian-bromann)! - Add
the `@langchain/langgraph/stream` entrypoint — a transport-agnostic
backend toolkit for building custom servers on top of the v2 streaming
protocol. Alongside the existing `StreamChannel` and
`convertToProtocolEvent`, it exposes subscription primitives, typed
against a minimal `MatchableEvent` shape so they work on both the core
`ProtocolEvent` and the wire-level `Event` from `@langchain/protocol`:

- `inferChannel(event)` — map an event to its subscription `Channel`
(named `custom:<name>` channels included).
- `matchesSubscription(event, definition)` — decide whether a buffered
event should be delivered for a `SubscribeParams` filter, honoring
channel, namespace prefix/depth, and an optional `since` replay cursor.
- `isPrefixMatch(namespace, prefix)` /
`normalizeNamespaceSegment(segment)` — namespace prefix matching with
dynamic-suffix normalization (e.g. `fetcher:<uuid>` matches the
`fetcher` prefix).
- `SUPPORTED_CHANNELS` / `isSupportedChannel(value)` — the recognized
channel set and a guard for validating subscription requests.

- Updated dependencies
\[[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)]:
    -   @langchain/langgraph-sdk@1.9.19

## @langchain/langgraph-sdk@1.9.19

### Patch Changes

- [#2505](https://github.com/langchain-ai/langgraphjs/pull/2505)
[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
Deduplicate the client stream transports: the protocol transport now
shares the SSE decoder and `IterableReadableStream` helpers with the
legacy transport instead of carrying its own copies. Removes the
redundant `transport/decoder.ts` and `transport/stream.ts` shims (and a
dead `StreamPart` re-export), importing the shared utilities from
`utils/sse.ts` directly. No public API or behavior change.

## @langchain/angular@1.0.19

### Patch Changes

- Updated dependencies
\[[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)]:
    -   @langchain/langgraph-sdk@1.9.19

## @langchain/react@1.0.19

### Patch Changes

- Updated dependencies
\[[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)]:
    -   @langchain/langgraph-sdk@1.9.19

## @langchain/svelte@1.0.19

### Patch Changes

- Updated dependencies
\[[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)]:
    -   @langchain/langgraph-sdk@1.9.19

## @langchain/vue@1.0.19

### Patch Changes

- Updated dependencies
\[[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)]:
    -   @langchain/langgraph-sdk@1.9.19

## @langchain/langgraph-ui@1.3.0



## @example/ai-elements@0.1.34

### Patch Changes

- Updated dependencies
\[[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)]:
    -   @langchain/langgraph@1.3.7
    -   @langchain/react@1.0.19

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

### Patch Changes

- Updated dependencies
\[[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)]:
    -   @langchain/langgraph@1.3.7
    -   @langchain/react@1.0.19

## @examples/ui-angular@0.0.44

### Patch Changes

- Updated dependencies
\[[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5),
[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)]:
    -   @langchain/langgraph@1.3.7
    -   @langchain/langgraph-sdk@1.9.19
    -   @langchain/angular@1.0.19

## @examples/ui-multimodal@0.0.20

### Patch Changes

- Updated dependencies
\[[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)]:
    -   @langchain/langgraph@1.3.7
    -   @langchain/react@1.0.19

## @examples/ui-react@0.0.20

### Patch Changes

- Updated dependencies
\[[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5),
[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)]:
    -   @langchain/langgraph@1.3.7
    -   @langchain/langgraph-sdk@1.9.19
    -   @langchain/react@1.0.19

## langgraph@1.0.39

### Patch Changes

- Updated dependencies
\[[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)]:
    -   @langchain/langgraph@1.3.7

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-08 14:00:32 -07:00
..
2026-06-08 14:00:32 -07:00
2026-06-08 14:00:32 -07:00

@langchain/vue

Vue SDK for building AI-powered applications with Deep Agents, LangChain and LangGraph.

The package ships a Composition-APIfirst binding built on top of the v2 streaming protocol. useStream returns a small, always-on root handle (values, messages, isLoading, error, …) and pushes anything namespaced (subagents, subgraphs, media, submission queue, per-message metadata) behind ref-counted use* selectors so components only pay for the data they actually consume.

Upgrading from 0.x? See docs/v1-migration.md for the complete matrix of option, return-shape, and transport changes.

Highlights

  • v2-native streaming protocol. Session-based transport with automatic re-attach on remount — no reconnectOnMount / joinStream dance.
  • Composition-API first. Everything is a ShallowRef / ComputedRef, auto-disposed via onScopeDispose when the scope unmounts.
  • Selector-based subscriptions. Namespaced data (subagents, subgraphs, media) streams only when a component actually mounts the matching selector composable, and releases on unmount.
  • Discriminated transports. Hosted Agent Server and custom adapters are two arms of a single typed union — mixing them is a compile-time error.
  • 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, with ready-to-use <img> / <audio> / <video> players.
  • <Suspense> friendly. hydrationPromise lets you gate async setup() on initial hydration.

Installation

npm install @langchain/vue @langchain/core

Peer dependencies: vue (^3.4.0), @langchain/core (^1.0.1).

Quick start

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

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

function onSubmit() {
  void stream.submit({ messages: [{ type: "human", content: "Hello!" }] });
}
</script>

<template>
  <div>
    <div v-for="(msg, i) in stream.messages" :key="msg.id ?? i">
      {{ typeof msg.content === "string" ? msg.content : JSON.stringify(msg.content) }}
    </div>

    <button :disabled="stream.isLoading" @click="onSubmit">
      Send
    </button>
  </div>
</template>

Reactive fields on the handle are Vue refs (ShallowRef / ComputedRef). In <script setup>, read them with .value: stream.messages.value, stream.isLoading.value. In <template>, Vue auto-unwraps refs, so prefer the shorter stream.messages / stream.isLoading form.

Documentation

In-depth guides live in docs/:

Playground

For complete end-to-end examples with full agentic UIs, visit the LangChain UI Playground.

License

MIT