@assistant-ui/react-statewire
Binds a statewire to an assistant-ui thread: a converter projects the replicated state into messages, and the run-dialect commands drive the composer and message actions. Part of harness-sdk, with harness-sdk and pinned.
Install
pnpm add @assistant-ui/react-statewire statewire @assistant-ui/core @assistant-ui/store react
Use
import { AuiConfig, AuiProvider } from "@assistant-ui/store";
import { StatewireThread } from "@assistant-ui/react-statewire";
import { LocalStorageComposerDrafts } from "@assistant-ui/react-statewire/local-storage";
import { StatewireHttp } from "statewire";
const thread = StatewireThread<ServerState>({
transport: StatewireHttp({ url }),
initialState: { messages: [], status: "ready", runs: [] },
converter,
capabilities: { edit: true, reload: true },
storage: { composer: LocalStorageComposerDrafts({ threadId, principal }) },
});
const config = AuiConfig({ thread });
return (
<AuiProvider config={config}>
<Thread />
</AuiProvider>
);
Pass a stable authenticated principal; remount the thread/session when the account changes. Legacy unscoped drafts and sessions remain quarantined.
Docs
- Get started: https://github.com/assistant-ui/harness-sdk/blob/main/apps/docs/app/statewire/docs/get-started/statewire/page.mdx
- Guide: https://github.com/assistant-ui/harness-sdk/blob/main/apps/docs/app/statewire/docs/guides/statewire/bindings/page.mdx
- Reference: https://github.com/assistant-ui/harness-sdk/blob/main/apps/docs/app/statewire/docs/reference/statewire-bindings/page.mdx
- Spec: https://github.com/assistant-ui/harness-sdk/blob/main/apps/docs/app/statewire/docs/spec/statewire-protocol/envelopes/page.mdx