@assistant-ui/react
Version:
Typescript/React library for AI Chat
64 lines • 3.22 kB
TypeScript
import { AppendMessage, ThreadMessage } from "../../types";
import { AttachmentAdapter } from "../adapters/attachment";
import { AddToolResultOptions, StartRunConfig, ThreadSuggestion } from "../core/ThreadRuntimeCore";
import { FeedbackAdapter } from "../adapters/feedback/FeedbackAdapter";
import { SpeechSynthesisAdapter } from "../adapters/speech/SpeechAdapterTypes";
import { ThreadMessageLike } from "./ThreadMessageLike";
export type ExternalStoreThreadData<TState extends "regular" | "archived"> = {
status: TState;
threadId: string;
title?: string | undefined;
};
export type ExternalStoreThreadListAdapter = {
/**
* @deprecated This API is still under active development and might change without notice.
*/
threadId?: string | undefined;
threads?: readonly ExternalStoreThreadData<"regular">[] | undefined;
archivedThreads?: readonly ExternalStoreThreadData<"archived">[] | undefined;
/**
* @deprecated This API is still under active development and might change without notice.
*/
onSwitchToNewThread?: (() => Promise<void> | void) | undefined;
/**
* @deprecated This API is still under active development and might change without notice.
*/
onSwitchToThread?: ((threadId: string) => Promise<void> | void) | undefined;
onRename?: (threadId: string, newTitle: string) => (Promise<void> | void) | undefined;
onArchive?: ((threadId: string) => Promise<void> | void) | undefined;
onUnarchive?: ((threadId: string) => Promise<void> | void) | undefined;
onDelete?: ((threadId: string) => Promise<void> | void) | undefined;
};
export type ExternalStoreMessageConverter<T> = (message: T, idx: number) => ThreadMessageLike;
type ExternalStoreMessageConverterAdapter<T> = {
convertMessage: ExternalStoreMessageConverter<T>;
};
type ExternalStoreAdapterBase<T> = {
isDisabled?: boolean | undefined;
isRunning?: boolean | undefined;
messages: readonly T[];
suggestions?: readonly ThreadSuggestion[] | undefined;
extras?: unknown;
setMessages?: ((messages: T[]) => void) | undefined;
onNew: (message: AppendMessage) => Promise<void>;
onEdit?: ((message: AppendMessage) => Promise<void>) | undefined;
onReload?: ((parentId: string | null, config: StartRunConfig) => Promise<void>) | undefined;
onCancel?: (() => Promise<void>) | undefined;
onAddToolResult?: ((options: AddToolResultOptions) => Promise<void> | void) | undefined;
convertMessage?: ExternalStoreMessageConverter<T> | undefined;
adapters?: {
attachments?: AttachmentAdapter | undefined;
speech?: SpeechSynthesisAdapter | undefined;
feedback?: FeedbackAdapter | undefined;
/**
* @deprecated This API is still under active development and might change without notice.
*/
threadList?: ExternalStoreThreadListAdapter | undefined;
} | undefined;
unstable_capabilities?: {
copy?: boolean | undefined;
} | undefined;
};
export type ExternalStoreAdapter<T = ThreadMessage> = ExternalStoreAdapterBase<T> & (T extends ThreadMessage ? object : ExternalStoreMessageConverterAdapter<T>);
export {};
//# sourceMappingURL=ExternalStoreAdapter.d.ts.map