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/angular@1.0.0 ### Major Changes - [#2314](https://github.com/langchain-ai/langgraphjs/pull/2314) [`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb) Thanks [@christian-bromann](https://github.com/christian-bromann)! - Add the Angular event streaming integration. Angular applications can now build on the shared event streaming runtime with `useStream`, `injectStream`, `StreamService`, `provideStream`, `provideStreamDefaults`, `injectProjection`, and selector helpers for messages, values, tool calls, custom channels, extensions, media, message metadata, and submission queues. The integration supports thread switching, run submission, reattachment, interrupts, WebSocket and SSE/custom transports, headless tools, subgraphs, subagents, and typed event projections. This release also adds Angular-specific media helpers, including `injectMediaUrl` and selectors for audio, images, video, and files. The package now exports the shared stream, media, transport, headless-tool, and type inference types needed to compose strongly typed streaming UIs. The documentation has been refreshed with guides for dependency injection, `injectStream`, selectors, transports, custom transports, interrupts, submission queues, headless tools, subagents/subgraphs, type safety, testing, and migration from the previous SDK surface. ### Patch Changes - Updated dependencies \[[`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb), [`d1e2fda`](https://github.com/langchain-ai/langgraphjs/commit/d1e2fda1b1165e122362780a62ab8d2ebff9f9b9)]: - @langchain/langgraph-sdk@1.9.0 ## @langchain/react@1.0.0 ### Major Changes - [#2314](https://github.com/langchain-ai/langgraphjs/pull/2314) [`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb) Thanks [@christian-bromann](https://github.com/christian-bromann)! - Add the React event streaming integration. React applications can now use the shared event streaming runtime through `useStream`, `useProjection`, `useSuspenseStream`, `StreamProvider`, and focused selector hooks for messages, values, tool calls, custom channels, extensions, media, message metadata, and submission queues. The new integration supports thread-scoped runs, reattachment, interrupts, WebSocket and SSE/custom transports, headless tools, subgraphs, subagents, typed stream extensions, and strongly typed state/tool-call inference. This release also adds media helpers for streaming UI experiences, including `useMediaURL`, `useAudioPlayer`, and `useVideoPlayer`, plus selectors for audio, images, video, and files. Shared transport, media, protocol event, message metadata, and discovery types are exported from the package so React components can compose richer streaming interfaces without deep imports. The package documentation and tests have been expanded around custom transports, selectors, interrupts, multimodal streaming, suspense, submission queues, headless tools, subagents, type safety, and migration from the previous streaming API. ### Patch Changes - Updated dependencies \[[`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb), [`d1e2fda`](https://github.com/langchain-ai/langgraphjs/commit/d1e2fda1b1165e122362780a62ab8d2ebff9f9b9)]: - @langchain/langgraph-sdk@1.9.0 ## @langchain/svelte@1.0.0 ### Major Changes - [#2314](https://github.com/langchain-ai/langgraphjs/pull/2314) [`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb) Thanks [@christian-bromann](https://github.com/christian-bromann)! - Add the Svelte event streaming integration. Svelte applications can now use the shared event streaming runtime through `useStream`, `useProjection`, context helpers, and selector runes for messages, values, tool calls, custom channels, extensions, media, message metadata, and submission queues. The integration supports thread-scoped runs, reattachment, interrupts, WebSocket and SSE/custom transports, headless tools, subgraphs, subagents, typed stream extensions, and strongly typed state/tool-call inference. This release also adds Svelte media helpers, including `useMediaURL`, `useAudioPlayer`, and `useVideoPlayer`, plus selectors for audio, images, video, and files. Shared transport, media, protocol event, message metadata, and discovery types are exported from the package so Svelte components can compose streaming interfaces without deep imports. The package now includes focused documentation and tests for context, custom transports, selectors, interrupts, hydration, submission queues, subscriptions, headless tools, subagents, type safety, and migration from the previous streaming API. ### Patch Changes - Updated dependencies \[[`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb), [`d1e2fda`](https://github.com/langchain-ai/langgraphjs/commit/d1e2fda1b1165e122362780a62ab8d2ebff9f9b9)]: - @langchain/langgraph-sdk@1.9.0 ## @langchain/vue@1.0.0 ### Major Changes - [#2314](https://github.com/langchain-ai/langgraphjs/pull/2314) [`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb) Thanks [@christian-bromann](https://github.com/christian-bromann)! - Add the Vue event streaming integration. Vue applications can now use the shared event streaming runtime through `useStream`, `useProjection`, `provideStream`, `useStreamContext`, and selector composables for messages, values, tool calls, custom channels, extensions, media, message metadata, and submission queues. The integration supports thread-scoped runs, reattachment, interrupts, WebSocket and SSE/custom transports, headless tools, subgraphs, subagents, typed stream extensions, and strongly typed state/tool-call inference. This release also adds Vue media helpers, including `useMediaURL`, `useAudioPlayer`, and `useVideoPlayer`, plus selectors for audio, images, video, and files. Shared transport, media, protocol event, message metadata, and discovery types are exported from the package so Vue components can build rich streaming UIs without deep imports. The package documentation and tests now cover API usage, custom transports, forking, interrupts, multimodal streaming, selectors, shared streams, subagents, suspense, submission queues, transports, type safety, and migration from the previous streaming API. ### Patch Changes - Updated dependencies \[[`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb), [`d1e2fda`](https://github.com/langchain-ai/langgraphjs/commit/d1e2fda1b1165e122362780a62ab8d2ebff9f9b9)]: - @langchain/langgraph-sdk@1.9.0 ## @langchain/langgraph-api@1.2.0 ### Minor Changes - [#2314](https://github.com/langchain-ai/langgraphjs/pull/2314) [`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb) Thanks [@christian-bromann](https://github.com/christian-bromann)! - Add the thread-scoped event streaming protocol used by the new SDK streaming clients. This release adds protocol routes for WebSocket and SSE/HTTP streaming, including thread-local command handling, filtered subscriptions, event replay, state inspection, checkpoint listing/forking, interrupt input, agent tree queries, and run start/resume commands. Stream events are normalized into the canonical protocol shape with ordered sequence IDs so clients can safely dedupe, resume subscriptions, and coordinate multiple projections from the same run. The experimental embed server now supports the same protocol flow, so embedded graphs can serve the new SDK transports without standing up a separate LangGraph API deployment. The server also gains protocol session tests and fixture graphs covering deep agents, interrupts, subgraphs, and SDK transport behavior. ### Patch Changes - Updated dependencies \[]: - @langchain/langgraph-ui@1.2.0 ## @langchain/langgraph@1.3.0 ### Minor Changes - [#2314](https://github.com/langchain-ai/langgraphjs/pull/2314) [`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb) Thanks [@christian-bromann](https://github.com/christian-bromann)! - Add the in-process event streaming runtime behind `streamEvents`. LangGraph now exposes the core primitives for event-based streaming, including `StreamChannel`, `StreamMux`, `GraphRunStream`, `SubgraphRunStream`, native stream transformers, and protocol event conversion utilities. These APIs let graphs emit ordered protocol events, derive additional projections, expose custom stream channels, and bridge in-process runs to remote SDK clients. The runtime includes built-in transformers for messages, values, lifecycle events, and subgraph discovery. It also adds support for transformer registration during graph execution, forwarding remote `StreamChannel` output, subgraph-aware event routing, event log multiplexing, and checkpoint-aware values streams. This release also expands test coverage across Pregel streaming, event conversion, stream muxing, stream channels, run streams, lifecycle transformers, subgraph transformers, and type-level streaming behavior. ### Patch Changes - Updated dependencies \[[`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb), [`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb), [`d1e2fda`](https://github.com/langchain-ai/langgraphjs/commit/d1e2fda1b1165e122362780a62ab8d2ebff9f9b9)]: - @langchain/langgraph-checkpoint@1.0.2 - @langchain/langgraph-sdk@1.9.0 ## @langchain/langgraph-sdk@1.9.0 ### Minor Changes - [#2314](https://github.com/langchain-ai/langgraphjs/pull/2314) [`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb) Thanks [@christian-bromann](https://github.com/christian-bromann)! - Add the framework-agnostic event streaming SDK. The SDK now includes a thread-focused streaming client built around `ThreadStream`, `SubscriptionHandle`, message assembly, media assembly, typed stream extensions, and pluggable protocol transports. Applications can stream over SSE or WebSocket, provide custom agent-server adapters, subscribe to values/messages/tools/custom/lifecycle/checkpoint channels, inspect and fork state, respond to interrupts, and replay or dedupe ordered event streams. This release also adds the reusable stream runtime used by the React, Vue, Svelte, and Angular packages: `StreamController`, `StreamStore`, `ChannelRegistry`, projection factories, subagent/subgraph discovery, submission queue coordination, message metadata tracking, root message projection, media projections, and helper types for agent/deep-agent state and tool-call inference. The client package has been reorganized into focused modules for assistants, threads, runs, store, protocol streaming, transports, media, messages, and UI helpers. New SDK documentation covers configuration, assistants, threads, runs, store, streaming, transports, extensions, interrupts, messages, media, subagents, and subgraphs. ### Patch Changes - [#2363](https://github.com/langchain-ai/langgraphjs/pull/2363) [`d1e2fda`](https://github.com/langchain-ai/langgraphjs/commit/d1e2fda1b1165e122362780a62ab8d2ebff9f9b9) Thanks [@cwlbraa](https://github.com/cwlbraa)! - Add a `returnMinimal` option to `threads.update`. ## @langchain/langgraph-checkpoint@1.0.2 ### Patch Changes - [#2314](https://github.com/langchain-ai/langgraphjs/pull/2314) [`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb) Thanks [@christian-bromann](https://github.com/christian-bromann)! - Improve `MemorySaver` diagnostics when checkpoint writes are missing a `thread_id`. The in-memory checkpointer now explains why `configurable.thread_id` is required and includes a concrete `graph.stream(..., { configurable: { thread_id } })` example in the error message. This makes the new thread-oriented event streaming flows easier to debug when an application forgets to provide durable thread configuration. ## @langchain/langgraph-cli@1.2.0 ### Patch Changes - Updated dependencies \[[`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb)]: - @langchain/langgraph-api@1.2.0 ## @langchain/langgraph-ui@1.2.0 ## @example/ai-elements@0.1.15 ### Patch Changes - Updated dependencies \[[`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb), [`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb)]: - @langchain/langgraph@1.3.0 - @langchain/react@1.0.0 ## @examples/assistant-ui-claude@0.1.15 ### Patch Changes - Updated dependencies \[[`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb), [`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb)]: - @langchain/langgraph@1.3.0 - @langchain/react@1.0.0 ## @examples/ui-angular@0.0.25 ### Patch Changes - Updated dependencies \[[`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb), [`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb), [`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb), [`d1e2fda`](https://github.com/langchain-ai/langgraphjs/commit/d1e2fda1b1165e122362780a62ab8d2ebff9f9b9)]: - @langchain/langgraph@1.3.0 - @langchain/langgraph-sdk@1.9.0 - @langchain/angular@1.0.0 ## @examples/ui-multimodal@0.0.1 ### Patch Changes - Updated dependencies \[[`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb), [`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb)]: - @langchain/langgraph@1.3.0 - @langchain/react@1.0.0 ## @examples/ui-react@0.0.1 ### Patch Changes - Updated dependencies \[[`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb), [`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb), [`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb), [`d1e2fda`](https://github.com/langchain-ai/langgraphjs/commit/d1e2fda1b1165e122362780a62ab8d2ebff9f9b9)]: - @langchain/langgraph@1.3.0 - @langchain/langgraph-sdk@1.9.0 - @langchain/react@1.0.0 ## langgraph@1.0.32 ### Patch Changes - Updated dependencies \[[`085a07f`](https://github.com/langchain-ai/langgraphjs/commit/085a07f569b6d7d79728eb7eb6eb3a0c67fcdefb)]: - @langchain/langgraph@1.3.0 --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Hunter Lovell <hunter@hntrl.io>
@langchain/angular
Angular SDK for building AI-powered applications with Deep Agents, LangChain and LangGraph.
The package ships a Signals-first API built on top of the v2 streaming
protocol. injectStream 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 inject* selectors so components
only pay for data they actually consume.
Upgrading from
0.x? Seedocs/v1-migration.mdfor the complete matrix of option, return-shape, and transport changes.
Installation
npm install @langchain/angular @langchain/core
Peer dependencies: @angular/core (^18.0.0 – ^21.0.0),
@langchain/core (^1.1.27).
Quick start
import { Component } from "@angular/core";
import { injectStream } from "@langchain/angular";
@Component({
standalone: true,
template: `
<div>
@for (msg of stream.messages(); track msg.id ?? $index) {
<div>{{ str(msg.content) }}</div>
}
<button
[disabled]="stream.isLoading()"
(click)="onSubmit()"
>
Send
</button>
</div>
`,
})
export class ChatComponent {
readonly stream = injectStream({
assistantId: "agent",
apiUrl: "http://localhost:2024",
});
str(v: unknown) {
return typeof v === "string" ? v : JSON.stringify(v);
}
onSubmit() {
void this.stream.submit({
messages: [{ type: "human", content: "Hello!" }],
});
}
}
injectStream must be called from an Angular injection context —
the host's DestroyRef owns the stream, so navigating away destroys
the controller automatically.
Features at a glance
- Signals everywhere. Messages, values, tool calls, interrupts,
loading/error state — all Angular
Signal<T>s you call as functions in templates. - One call, two transports. Same option bag targets either the
LangGraph Platform (SSE by default,
transport: "websocket"opt-in) or a custom backend through anAgentServerAdapter. - Ref-counted selectors.
injectMessages,injectValues,injectToolCalls, media selectors, submission queue — the first consumer opens a subscription, the last one'sDestroyRefcloses it. Components pay only for what they render. - Human-in-the-loop. Interrupts are first-class signals; resume or fork a specific pending interrupt with one call.
- Headless tools. Register browser-side tool implementations; the runtime dispatches matching interrupts and auto-resumes with the return value.
- Subagent & subgraph discovery. Lightweight snapshots at the root; scoped content (messages, tool calls, state) via the same selectors, targeted at a snapshot or namespace.
- Forking without history preload. Per-message metadata +
submit({ forkFrom })replaces the legacybranch/fetchStateHistorytrio. - DI-native.
provideStreamfor subtree sharing,provideStreamDefaultsfor app-wide config,StreamServicefor class-based wrappers. - Typed end-to-end. Pass
typeof agentas the first generic — state, tool args, and per-subagent state flow through to every selector.
Public stream types
Use StreamApi<T> when you need to name the return type of
injectStream, useStream, provideStream, or StreamService in
Angular code. It is the Angular-facing alias for the Signals-first
handle.
UseStreamResult<T> is also exported as a React-compatible alias for
the same shape. Prefer it only in shared utilities that are designed to
accept stream handles from multiple framework packages.
Documentation
In-depth guides live under docs/:
inject-stream.md— options + return-shape referencetransports.md— SSE, WebSocket, and customAgentServerAdaptercustom-transport.md— implementingAgentServerAdapteragainst your own backend, with a worked walkthrough ofexamples/ui-react-transportselectors.md— scoped reads (injectMessages,injectValues, media, channels, …)interrupts.md— handling and responding to interruptsbranching.md— forking viainjectMessageMetadata+submit({ forkFrom })submission-queue.md—injectSubmissionQueueandmultitaskStrategy: "enqueue"headless-tools.md— browser-side tool implementationssubagents-subgraphs.md— discovery snapshots and scoped contentdependency-injection.md—provideStream,provideStreamDefaults,StreamServicetype-safety.md— generics, agent inference, and public stream aliasestesting.md—STREAM_INSTANCEfakes and service overridesv1-migration.md— migrating from0.x
Playground
For complete end-to-end examples, visit the LangChain UI Playground.
License
MIT