aomi-frame
aomi/aomi-frameFreeComponent
Full assistant shell with thread list and runtime wiring.
Install it
npx shadcn@latest add https://aomi.dev/r/aomi-frame.jsonSource
1"use client";23import {4 type CSSProperties,5 type ReactNode,6 type FC,7 createContext,8 useContext,9} from "react";10import {11 AomiRuntimeProvider,12 cn,13 useAomiRuntime,14 type AomiClientOptions,15} from "@aomi-labs/react";16import { Thread } from "@/components/assistant-ui/thread";17import {18 ThreadListSidebar,19 type SidebarProduct,20} from "@/components/assistant-ui/threadlist-sidebar";21import { RuntimeTxHandler } from "@/components/runtime-tx-handler";22import {23 SidebarInset,24 SidebarProvider,25 SidebarTrigger,26} from "@/components/ui/sidebar";27import { ControlBar, type ControlBarProps } from "@/components/control-bar";28import type { WalletAccountMenuOptions } from "@/components/control-bar/account-menu-types";29import { safeEnv } from "../lib/wallet-kit/env";3031// =============================================================================32// Composer Control Context - signals Thread to show inline controls33// =============================================================================3435type ComposerControlContextValue = {36 enabled: boolean;37 controlBarProps?: Omit<ControlBarProps, "children">;38 welcomeTitle?: string;39};4041const ComposerControlContext = createContext<ComposerControlContextValue>({42 enabled: false,43});4445export const useComposerControl = () => useContext(ComposerControlContext);46// =============================================================================47// Types48// =============================================================================4950type RootProps = {51 children?: ReactNode;52 width?: CSSProperties["width"];53 height?: CSSProperties["height"];54 className?: string;55 style?: CSSProperties;56 /** Position of the wallet button in the sidebar */57 walletPosition?: "header" | "footer" | null;58 /** Which wallet families to show as dual slots (omit for single-family mode) */59 walletFamilies?: Array<"evm" | "solana">;60 /** Optional account menu on the sidebar wallet chip (portal supplies live data). */61 walletAccountMenu?: WalletAccountMenuOptions;62 /** Products in the sidebar wordmark dropdown. Pass `null` for a plain wordmark. */63 products?: SidebarProduct[] | null;64 /** Which product this frame is, for the wordmark badge (default: "chat"). */65 currentProductId?: string;66 /** Whether to show the thread list sidebar (default: true) */67 showSidebar?: boolean;68 /** Whether the thread list sidebar starts expanded (default: true) */69 defaultSidebarOpen?: boolean;70 /** Backend URL for the Aomi runtime */71// … 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-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-threadassistant-thread | aomi | Components | Free | 6 deps · 26 files | |
| assistant-thread-listassistant-thread-list | aomi | Components | Free | 2 deps |
