assistant-thread
aomi/assistant-threadFreeComponent
Chat surface built on @assistant-ui primitives.
Install it
npx shadcn@latest add https://aomi.dev/r/assistant-thread.jsonSource
1"use client";23import {4 ArrowDownIcon,5 ArrowUpIcon,6 BoxIcon,7 CableIcon,8 CheckIcon,9 ChevronLeftIcon,10 ChevronRightIcon,11 CoinsIcon,12 CopyIcon,13 PencilIcon,14 RefreshCwIcon,15 Square,16 ArrowLeftRightIcon,17 TrendingUpIcon,18} from "lucide-react";1920import {21 ActionBarPrimitive,22 BranchPickerPrimitive,23 ComposerPrimitive,24 ErrorPrimitive,25 MessagePrimitive,26 ThreadPrimitive,27} from "@assistant-ui/react";2829import type { FC } from "react";30import { useEffect } from "react";31import { LazyMotion, MotionConfig, domAnimation } from "motion/react";32import * as m from "motion/react-m";3334import { Button } from "@/components/ui/button";35import { Skeleton } from "@/components/ui/skeleton";36import { MarkdownText } from "@/components/assistant-ui/markdown-text";37import { ToolFallback } from "@/components/assistant-ui/tool-fallback";38import { AssistantTurnParts } from "@/components/assistant-ui/working-trace";39import { TooltipIconButton } from "@/components/assistant-ui/tooltip-icon-button";4041import {42 cn,43 useCurrentThreadMetadata,44 useThreadContext,45} from "@aomi-labs/react";46import { useComposerControl } from "@/components/aomi-frame";47import { AomiMark } from "@/components/aomi-mark";48import { ModelSelect } from "@/components/control-bar/model-select";49import { AppSelect } from "@/components/control-bar/app-select";50import { ApiKeyInput } from "@/components/control-bar/api-key-input";51import { NetworkSelect } from "@/components/control-bar/network-select";52import { ConnectButton } from "@/components/control-bar/connect-button";53import { SecretGate } from "@/components/control-bar/secret-gate";54import { PaymentRequiredGate } from "@/components/control-bar/payment-required-gate";55import { shouldShowThreadLoadingSkeleton } from "@/components/assistant-ui/thread-loading";56import { useThread, useComposerRuntime, useMessage } from "@assistant-ui/react";5758export const Thread: FC = () => {59 const composerRuntime = useComposerRuntime();60 const { threadViewKey } = useThreadContext();6162 useEffect(() => {63 try {64 composerRuntime.setText("");65 } catch (error) {66 console.error("Failed to reset composer input:", error);67 }68 }, [composerRuntime, threadViewKey]);6970 return (71 <LazyMotion features={domAnimation}>72 <MotionConfig reducedMotion="user">73 <ThreadPrimitive.Root74 className="aui-root aui-thread-root @container bg-aomi-bg text-aomi-fg relative flex h-full flex-col"75 style={{76// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from aomi
All 34 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| accordionaccordion | aomi | Components | Free | 2 deps | |
| alertalert | aomi | Components | Free | 1 dep | |
| aomi-frameaomi-frame | aomi | Components | Free | 1 dep | |
| aomi-para-provideraomi-para-provider | aomi | Components | Free | 9 deps · 27 files | |
| aomi-privy-provideraomi-privy-provider | aomi | Components | Free | 7 deps · 15 files | |
| aomi-wallet-kitaomi-wallet-kit | aomi | Components | Free | 8 deps · 59 files | |
| aomi-widgetaomi-widget | aomi | Components | Free | 2 deps | |
| assistant-thread-listassistant-thread-list | aomi | Components | Free | 2 deps |
