import { Honcho } from '@honcho-ai/sdk'; /** * OpenAI function calling tool definitions for Honcho. * These produce the `tools` array format expected by the OpenAI Chat Completions API. */ interface HonchoOpenAIToolsConfig { client: Honcho; defaultPeerId?: string; defaultSessionId?: string; defaultObserverPeerId?: string; } interface OpenAIToolDefinition { type: "function"; function: { name: string; description: string; parameters: Record; strict?: boolean; }; } interface OpenAIToolExecutor { /** Tool definitions to pass to the OpenAI API. */ definitions: OpenAIToolDefinition[]; /** Execute a tool call by name. Returns the stringified result. */ execute: (name: string, args: Record) => Promise; } /** * Create OpenAI-compatible tool definitions and executor for Honcho. * * @example * ```ts * import { honchoOpenAITools } from "@honcho-ai/vercel-ai-sdk/openai"; * import OpenAI from "openai"; * * const openai = new OpenAI(); * const honcho = honchoOpenAITools({ client, defaultPeerId: "user-123" }); * * const response = await openai.chat.completions.create({ * model: "gpt-4o", * messages: [{ role: "user", content: "What do you know about me?" }], * tools: honcho.definitions, * }); * * // Handle tool calls * for (const call of response.choices[0].message.tool_calls ?? []) { * const result = await honcho.execute(call.function.name, JSON.parse(call.function.arguments)); * } * ``` */ declare function honchoOpenAITools(config: HonchoOpenAIToolsConfig): OpenAIToolExecutor; export { type HonchoOpenAIToolsConfig, type OpenAIToolDefinition, type OpenAIToolExecutor, honchoOpenAITools };