UNPKG

@eko-ai/eko

Version:

Empowering language to transform human words into action.

105 lines 2.72 kB
import { JSONSchema7, SharedV2ProviderOptions, LanguageModelV2ToolCallPart } from "@ai-sdk/provider"; import { ToolResult } from "./tools.types"; import { LLMStreamMessage } from "./llm.types"; import { EkoConfig, HumanCallback, AgentStreamCallback } from "./agent.types"; export type MessageTextPart = { type: "text"; text: string; }; export type MessageFilePart = { type: "file"; fileId: string; filename?: string; mimeType: string; data: string; filePath?: string; }; export type ToolCallPart = { type: "tool-call"; toolCallId: string; toolName: string; input: Record<string, any>; }; export type ToolResultPart = { type: "tool-result"; toolCallId: string; toolName: string; isError: boolean; output: string | Record<string, any>; }; export type ChatStreamMessage = { streamType: "chat"; chatId: string; messageId: string; } & ({ type: "chat_start"; } | LLMStreamMessage | { type: "chat_end"; error: string | null; duration: number; reactLoopNum: number; }); export interface ChatStreamCallback { chatCallback: { onMessage: (message: ChatStreamMessage) => Promise<void>; }; taskCallback?: AgentStreamCallback & HumanCallback; } export type EkoMessage = { id: string; } & ({ role: "user"; content: EkoMessageUserPart[]; } | { role: "assistant"; content: EkoMessageAssistantPart[]; } | { role: "tool"; content: EkoMessageToolPart[]; }) & { timestamp: number; extra?: Record<string, any>; }; export type EkoMessageUserPart = { type: "text"; text: string; } | { type: "file"; mimeType: string; data: string; filename?: string; }; export type EkoMessageAssistantPart = { type: "text"; text: string; } | { type: "tool-call"; toolCallId: string; toolName: string; args: Record<string, unknown>; providerOptions?: SharedV2ProviderOptions; }; export type EkoMessageToolPart = { type: "tool-result"; toolCallId: string; toolName: string; result: string | Record<string, unknown>; }; export interface DialogueTool { readonly name: string; readonly description?: string; readonly parameters: JSONSchema7; execute: (args: Record<string, unknown>, toolCall: LanguageModelV2ToolCallPart, messageId: string) => Promise<ToolResult>; } export type EkoDialogueConfig = Omit<EkoConfig, "callback"> & { chatLlms?: string[]; }; export type DialogueParams = { messageId: string; user: Array<MessageTextPart | MessageFilePart>; callback: ChatStreamCallback; datetime?: string; signal?: AbortSignal; extra?: Record<string, any>; }; //# sourceMappingURL=chat.types.d.ts.map