import type { OldShortcut, Shortcut } from '../../types'; import type { MessageContentType, MessageRole, MessageStatus } from './constants'; import type { ContentMap, InputContent } from './contents'; import type { InterruptMessage } from './interrupt'; export interface ActivityMessage extends BaseMessage { activityType: MessageContentType.FlowAgent | MessageContentType.KnowledgeRag | MessageContentType.ReferenceDocument | string; } export interface AssistantMessage extends BaseMessage { toolCalls?: ToolCall[]; } declare global { interface AIBluekingMessageMap { } } export interface BaseMessage { content: C; id: number | string; messageId: number | string; name?: string; role: T; status: MessageStatus; uid?: string; property?: { extra?: { cite: { data: { key: string; value: string; }[]; title: string; type: 'structured'; } | string; command: string; context: Partial<{ [key: string]: string; __key: string; __label: string; __value: string; context_type: 'checkbox' | 'input' | 'number' | 'radioGroup' | 'select' | 'switcher' | 'text' | 'textarea'; } & Partial>[]; pause?: boolean; shortcut?: Partial; }; }; } export interface Context { description: string; value: string; } export type DeveloperMessage = BaseMessage; export type FunctionCall = { arguments: string; description?: string; mcpName?: string; name: string; }; export type GuideMessage = BaseMessage; export type HiddenAssistantMessage = BaseMessage; export type HiddenGuideMessage = BaseMessage; export type HiddenMessage = BaseMessage; export type HiddenSystemMessage = BaseMessage; export type HiddenUserMessage = BaseMessage; export type InfoMessage = BaseMessage; export type LoadingMessage = BaseMessage; export type Message = MessageMap[MessageType]; export type MessageMap = AIBluekingMessageMap & { [MessageRole.Activity]: ActivityMessage; [MessageRole.Assistant]: AssistantMessage; [MessageRole.Developer]: DeveloperMessage; [MessageRole.Guide]: GuideMessage; [MessageRole.Hidden]: HiddenMessage; [MessageRole.HiddenAssistant]: HiddenAssistantMessage; [MessageRole.HiddenGuide]: HiddenGuideMessage; [MessageRole.HiddenSystem]: HiddenSystemMessage; [MessageRole.HiddenUser]: HiddenUserMessage; [MessageRole.Info]: InfoMessage; [MessageRole.Interrupt]: InterruptMessage; [MessageRole.Loading]: LoadingMessage; [MessageRole.Pause]: PauseMessage; [MessageRole.Placeholder]: PlaceholderMessage; [MessageRole.Reasoning]: ReasoningMessage; [MessageRole.System]: SystemMessage; [MessageRole.TemplateAssistant]: TemplateAssistantMessage; [MessageRole.TemplateGuide]: TemplateGuideMessage; [MessageRole.TemplateHidden]: TemplateHiddenMessage; [MessageRole.TemplateSystem]: TemplateSystemMessage; [MessageRole.TemplateUser]: TemplateUserMessage; [MessageRole.Tool]: ToolMessage; [MessageRole.User]: UserMessage; }; export type MessageType = keyof MessageMap; export type PauseMessage = BaseMessage; export type PlaceholderMessage = BaseMessage; export interface ReasoningMessage extends BaseMessage { duration?: number; } export type SystemMessage = BaseMessage; export type TemplateAssistantMessage = BaseMessage; export type TemplateGuideMessage = BaseMessage; export type TemplateHiddenMessage = BaseMessage; export type TemplateSystemMessage = BaseMessage; export type TemplateUserMessage = BaseMessage; export type Tool = { description: string; name: string; parameters: unknown; }; export type ToolCall = { function: FunctionCall; id: string; toolMessage?: Partial; type: MessageContentType.Function; }; export interface ToolMessage extends BaseMessage { duration: number; error?: boolean | string; toolCallId: string; } export type UserMessage = BaseMessage;