UNPKG

@mariozechner/pi-agent

Version:

General-purpose agent with tool calling and session persistence

76 lines 2.15 kB
import OpenAI from "openai"; import type { SessionManager } from "./session-manager.js"; export type AgentEvent = { type: "session_start"; sessionId: string; model: string; api: string; baseURL: string; systemPrompt: string; } | { type: "assistant_start"; } | { type: "reasoning"; text: string; } | { type: "tool_call"; toolCallId: string; name: string; args: string; } | { type: "tool_result"; toolCallId: string; result: string; isError: boolean; } | { type: "assistant_message"; text: string; } | { type: "error"; message: string; } | { type: "user_message"; text: string; } | { type: "interrupted"; } | { type: "token_usage"; inputTokens: number; outputTokens: number; totalTokens: number; cacheReadTokens: number; cacheWriteTokens: number; reasoningTokens: number; }; export interface AgentEventReceiver { on(event: AgentEvent): Promise<void>; } export interface AgentConfig { apiKey: string; baseURL: string; model: string; api: "completions" | "responses"; systemPrompt: string; } export interface ToolCall { name: string; arguments: string; id: string; } export declare function callModelResponsesApi(client: OpenAI, model: string, messages: any[], signal?: AbortSignal, eventReceiver?: AgentEventReceiver, supportsReasoning?: boolean, baseURL?: string): Promise<void>; export declare function callModelChatCompletionsApi(client: OpenAI, model: string, messages: any[], signal?: AbortSignal, eventReceiver?: AgentEventReceiver, supportsReasoning?: boolean, baseURL?: string): Promise<void>; export declare class Agent { private client; readonly config: AgentConfig; private messages; private renderer?; private sessionManager?; private comboReceiver; private abortController; private supportsReasoning; constructor(config: AgentConfig, renderer?: AgentEventReceiver, sessionManager?: SessionManager); ask(userMessage: string): Promise<void>; interrupt(): void; setEvents(events: AgentEvent[]): void; } //# sourceMappingURL=agent.d.ts.map