import type { ZodType } from 'zod'; import { z } from 'zod'; export type OpenAssistantToolParameters = ZodType; export type OpenAssistantOnToolCompleted = (toolCallId: string, additionalData?: unknown) => void; export type OpenAssistantExecuteFunctionResult = { llmResult: TLlmResult; additionalData?: TAdditionalData; }; export type OpenAssistantToolExecutionOptions = { toolCallId: string; abortSignal?: AbortSignal; }; export type OpenAssistantExecuteFunction = (params: TArgs, options?: OpenAssistantToolExecutionOptions & { context?: TContext; }) => Promise>; export type OpenAssistantTool, TLlmResult = unknown, TAdditionalData = unknown, TContext = unknown> = { name: string; description: string; parameters: TArgs; context?: TContext; component?: unknown; onToolCompleted?: OpenAssistantOnToolCompleted; execute: OpenAssistantExecuteFunction, TLlmResult, TAdditionalData, TContext>; }; export type OpenAssistantToolSet = Record>; export type OnToolCompleted = OpenAssistantOnToolCompleted;