import { BaseChatEngine, NonStreamingChatEngineParams, StreamingChatEngineParams } from '../../chat-engine/dist/index.js'; import { LLM, MessageContent, BaseToolWithCall, ToolOutput, ChatMessage, ChatResponse, ChatResponseChunk, BaseTool, ToolCall, PartialToolCall, TextChatMessage, ToolCallLLMMessageOptions } from '../../llms/dist/index.js'; import { ObjectRetriever } from '../../objects/dist/index.js'; import { EngineResponse } from '../../schema/dist/index.js'; import { Logger } from '@llamaindex/env'; import { UUID } from '../../global/dist/index.js'; type AgentTaskContext ? AdditionalMessageOptions : never, AdditionalChatOptions extends object = object> = { readonly stream: boolean; readonly toolCallCount: number; readonly llm: Model; readonly getTools: (input: MessageContent) => BaseToolWithCall[] | Promise; readonly additionalChatOptions: Partial; shouldContinue: (taskStep: Readonly>) => boolean; store: { toolOutputs: ToolOutput[]; messages: ChatMessage[]; } & Store; logger: Readonly; }; type TaskStep ? AdditionalMessageOptions : never, AdditionalChatOptions extends object = object> = { id: UUID; context: AgentTaskContext; prevStep: TaskStep | null; nextSteps: Set>; }; type TaskStepOutput ? AdditionalMessageOptions : never, AdditionalChatOptions extends object = object> = { taskStep: TaskStep; output: ChatResponse | ReadableStream>; isLast: boolean; }; type TaskHandler ? AdditionalMessageOptions : never, AdditionalChatOptions extends object = object> = (step: TaskStep, enqueueOutput: (taskOutput: TaskStepOutput) => void) => Promise; type AgentStartEvent = { startStep: TaskStep; }; type AgentEndEvent = { endStep: TaskStep; }; type AgentRunnerParams ? AdditionalMessageOptions : never, AdditionalChatOptions extends object = object> = { llm: AI; chatHistory: ChatMessage[]; systemPrompt: MessageContent | null; runner: AgentWorker; tools: BaseToolWithCall[] | ((query: MessageContent) => Promise); verbose: boolean; }; type AgentParamsBase ? AdditionalMessageOptions : never, AdditionalChatOptions extends object = object> = { llm?: AI; chatHistory?: ChatMessage[]; systemPrompt?: MessageContent; verbose?: boolean; tools: BaseToolWithCall[]; additionalChatOptions?: AdditionalChatOptions; } | { llm?: AI; chatHistory?: ChatMessage[]; systemPrompt?: MessageContent; verbose?: boolean; toolRetriever: ObjectRetriever; additionalChatOptions?: AdditionalChatOptions; }; /** * Worker will schedule tasks and handle the task execution * @deprecated Use agent instead. */ declare abstract class AgentWorker ? AdditionalMessageOptions : never, AdditionalChatOptions extends object = object> { #private; abstract taskHandler: TaskHandler; createTask(query: MessageContent, context: AgentTaskContext): ReadableStream>; [Symbol.toStringTag]: string; } /** * Runner will manage the task execution and provide a high-level API for the user * @deprecated Use agent instead. */ declare abstract class AgentRunner ? AdditionalMessageOptions : never, AdditionalChatOptions extends object = object> extends BaseChatEngine { #private; abstract createStore(): Store; static defaultCreateStore(): object; static defaultTaskHandler: TaskHandler; protected constructor(params: AgentRunnerParams); get llm(): AI; get chatHistory(): ChatMessage[]; get verbose(): boolean; reset(): void; getTools(query: MessageContent): Promise | BaseToolWithCall[]; static shouldContinue ? AdditionalMessageOptions : never>(task: Readonly>): boolean; createTask(message: MessageContent, stream?: boolean, verbose?: boolean | undefined, chatHistory?: ChatMessage[], additionalChatOptions?: AdditionalChatOptions): ReadableStream>; chat(params: NonStreamingChatEngineParams): Promise; chat(params: StreamingChatEngineParams): Promise>; } type LLMParamsBase ? AdditionalMessageOptions : never, AdditionalChatOptions extends object = object> = AgentParamsBase; type LLMParamsWithTools ? AdditionalMessageOptions : never, AdditionalChatOptions extends object = object> = LLMParamsBase & { tools: BaseToolWithCall[]; }; type LLMParamsWithToolRetriever ? AdditionalMessageOptions : never, AdditionalChatOptions extends object = object> = LLMParamsBase & { toolRetriever: ObjectRetriever; }; type LLMAgentParams ? AdditionalMessageOptions : never, AdditionalChatOptions extends object = object> = LLMParamsWithTools | LLMParamsWithToolRetriever; declare class LLMAgentWorker extends AgentWorker { taskHandler: TaskHandler>; } /** * @deprecated Use agent instead. */ declare class LLMAgent extends AgentRunner { constructor(params: LLMAgentParams); createStore: typeof AgentRunner.defaultCreateStore; taskHandler: TaskHandler>; } type StepToolsResponseParams = { response: ChatResponse; tools: BaseTool[]; step: Parameters>[0]; enqueueOutput: Parameters>[1]; }; type StepToolsStreamingResponseParams = Omit, "response"> & { response: AsyncIterable>; }; declare function stepToolsStreaming({ response, tools, step, enqueueOutput, }: StepToolsStreamingResponseParams): Promise; declare function stepTools({ response, tools, step, enqueueOutput, }: StepToolsResponseParams): Promise; declare function callTool(tool: BaseTool | undefined, toolCall: ToolCall | PartialToolCall, logger: Logger): Promise; declare function consumeAsyncIterable(input: ChatMessage, previousContent?: string): Promise>; declare function consumeAsyncIterable(input: AsyncIterable>, previousContent?: string): Promise>; declare function createReadableStream(asyncIterable: AsyncIterable): ReadableStream; declare function validateAgentParams(params: AgentParamsBase): void; export { AgentRunner, AgentWorker, LLMAgent, LLMAgentWorker, callTool, consumeAsyncIterable, createReadableStream, stepTools, stepToolsStreaming, validateAgentParams }; export type { AgentEndEvent, AgentParamsBase, AgentStartEvent, LLMAgentParams, TaskHandler, TaskStep };