@promptbook/remote-server
Version:
Promptbook: Create persistent AI agents that turn your company's scattered knowledge into action
54 lines (53 loc) • 1.62 kB
TypeScript
import type { ChatMessage } from '../types/ChatMessage';
import type { ChatParticipant } from '../types/ChatParticipant';
import type { LlmChatProps } from './LlmChatProps';
/**
* Metadata for a teammate agent tool.
*
* @private function of `useLlmChatState`
*/
type TeammateMetadata = {
readonly url: string;
readonly label?: string;
readonly instructions?: string;
readonly toolName: string;
};
/**
* Lookup map of teammate metadata by tool name.
*
* @private function of `useLlmChatState`
*/
type TeammatesMap = Record<string, TeammateMetadata>;
/**
* Minimal task-progress item rendered by `<Chat/>`.
*
* @private function of `useLlmChatState`
*/
type LlmChatTaskProgress = {
readonly id: string;
readonly name: string;
readonly progress?: number;
};
/**
* State returned by `useLlmChatState`.
*
* @private function of `useLlmChatState`
*/
type UseLlmChatStateResult = {
readonly handleMessage: (messageContent: string, attachments?: ChatMessage['attachments']) => Promise<void>;
readonly handleReset: () => Promise<void>;
readonly handleStopStreaming: () => void;
readonly isStreaming: boolean;
readonly isVoiceCalling: boolean;
readonly messages: Array<ChatMessage>;
readonly participants: ReadonlyArray<ChatParticipant>;
readonly tasksProgress: Array<LlmChatTaskProgress>;
readonly teammates: TeammatesMap | undefined;
};
/**
* Coordinates derived state and handlers consumed by `<LlmChat/>`.
*
* @private function of `<LlmChat/>`
*/
export declare function useLlmChatState(props: LlmChatProps): UseLlmChatStateResult;
export {};