@mariozechner/pi-agent
Version:
General-purpose agent with transport abstraction, state management, and attachment support
47 lines • 1.76 kB
TypeScript
import type { Message } from "@mariozechner/pi-ai";
import type { AgentTransport } from "./transports/types.js";
import type { AgentEvent, AgentState, AppMessage, Attachment, ThinkingLevel } from "./types.js";
export interface AgentOptions {
initialState?: Partial<AgentState>;
transport: AgentTransport;
messageTransformer?: (messages: AppMessage[]) => Message[] | Promise<Message[]>;
queueMode?: "all" | "one-at-a-time";
}
export declare class Agent {
private _state;
private listeners;
private abortController?;
private transport;
private messageTransformer;
private messageQueue;
private queueMode;
private runningPrompt?;
private resolveRunningPrompt?;
constructor(opts: AgentOptions);
get state(): AgentState;
subscribe(fn: (e: AgentEvent) => void): () => void;
setSystemPrompt(v: string): void;
setModel(m: typeof this._state.model): void;
setThinkingLevel(l: ThinkingLevel): void;
setQueueMode(mode: "all" | "one-at-a-time"): void;
getQueueMode(): "all" | "one-at-a-time";
setTools(t: typeof this._state.tools): void;
replaceMessages(ms: AppMessage[]): void;
appendMessage(m: AppMessage): void;
queueMessage(m: AppMessage): Promise<void>;
clearMessageQueue(): void;
clearMessages(): void;
abort(): void;
/**
* Returns a promise that resolves when the current prompt completes.
* Returns immediately resolved promise if no prompt is running.
*/
waitForIdle(): Promise<void>;
/**
* Clear all messages and state. Call abort() first if a prompt is in flight.
*/
reset(): void;
prompt(input: string, attachments?: Attachment[]): Promise<void>;
private emit;
}
//# sourceMappingURL=agent.d.ts.map