@mariozechner/pi-agent
Version:
General-purpose agent with tool calling and session persistence
76 lines • 2.15 kB
TypeScript
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