import { C as TranscriptEntry, Kn as PluginHookAgentContext, Vn as RunEventDispatcher, br as PluginHookRegistry, i as preloadExtensions, n as discoverPiExtensions, o as PluginToolRegistry, r as getExtensions, t as DiscoveredPiExtension } from "../loader-CCcKMJve.js"; import { Agent, AgentTool } from "@earendil-works/pi-agent-core"; //#region src/pi-extensions/tool-adapter.d.ts type ToolDefinitionLike = { name: string; description?: string; parameters?: unknown; execute: (toolCallId: string, params: Record, signal?: AbortSignal, onUpdate?: (partial: unknown) => void, ctx?: PiExtensionContext) => Promise<{ content: unknown; details?: unknown; isError?: boolean; }>; }; //#endregion //#region src/pi-extensions/runtime-bridge.d.ts type CompactRequest = { customInstructions?: string; onComplete?: (result: unknown) => void; onError?: (error: Error) => void; }; declare class SessionRuntimeBridge { private agent; private messageQueue; private compactRequest; /** Called by runner when Agent is created */ bindAgent(agent: Agent): void; /** Called by runner at shutdown */ dispose(): void; /** pi.sendUserMessage - queue a user message for the next turn */ sendUserMessage(content: string, options?: { deliverAs?: "steer" | "followUp"; }): void; /** ctx.isIdle - check if agent is idle */ isIdle(): boolean; /** ctx.compact - request compaction */ requestCompact(options?: CompactRequest): void; /** Called by runner: get pending messages and clear queue */ drainMessages(): string[]; /** Called by runner: get pending compact request and clear */ drainCompactRequest(): CompactRequest | null; hasPendingMessages(): boolean; hasPendingCompact(): boolean; } //#endregion //#region src/pi-extensions/host.d.ts type PiExtensionUi = { notify: (message: string, level?: "info" | "warn" | "error") => void; confirm: (message: string) => Promise; select: (title: string, options: string[]) => Promise; setStatus: (id: string, text?: string) => void; theme?: { fg: (color: string, text: string) => string; }; }; type PiExtensionContext = { sessionId?: string; workspaceDir?: string; cwd?: string; signal?: AbortSignal; hasUI: boolean; ui: PiExtensionUi; appendEntry?: (type: string, data: unknown) => Promise; sessionManager?: { getEntries(): Promise; getBranch(): Promise; getLeafId(): Promise; getSessionFile(): string | undefined; }; isIdle?: () => boolean; compact?: (options?: { customInstructions?: string; onComplete?: (result: unknown) => void; onError?: (error: Error) => void; }) => void; hasPendingMessages?: () => boolean; }; type PiExtensionFlagValue = boolean | string; type PiExtensionFlagOptions = { default?: PiExtensionFlagValue; type?: string; description?: string; }; type RegisteredFlagDefinition = { name: string; default?: PiExtensionFlagValue; type?: string; description?: string; }; type PiExtensionAPI = { on(event: K, handler: (event: unknown, ctx: PiExtensionContext) => unknown | Promise): void; registerTool(def: ToolDefinitionLike): void; registerCommand: (...args: unknown[]) => void; registerFlag: (name: string, optionsOrLegacy?: PiExtensionFlagOptions | PiExtensionFlagValue) => void; getFlag: (name: string) => PiExtensionFlagValue | undefined; getCommands: () => Array<{ name: string; description?: string; source: string; sourceInfo: { path: string; source: string; scope: string; origin: string; baseDir?: string; }; }>; exec: (command: string, args: string[], options?: { signal?: AbortSignal; timeout?: number; cwd?: string; }) => Promise<{ stdout: string; stderr: string; code: number; killed: boolean; }>; sendUserMessage: (content: string | unknown[], options?: { deliverAs?: "steer" | "followUp"; }) => void; appendEntry?: (type: string, data: unknown) => Promise; getAllTools: () => Array<{ name: string; description?: string; parameters?: unknown; }>; /** Records active tool names only; does not change the agent runtime tool set. */ setActiveTools?: (toolNames: string[]) => void; getActiveTools?: () => string[]; }; type PiExtensionHostContext = { hookContext: PluginHookAgentContext; hookRegistry: PluginHookRegistry; toolRegistry: PluginToolRegistry; eventDispatcher: RunEventDispatcher; sessionId: string; sessionDir?: string; uiBridge?: PiExtensionUi; dialogBridge?: { confirm: (message: string, pluginId: string) => Promise; select: (title: string, options: string[], pluginId: string) => Promise; }; /** Per-extension config overrides, keyed by synthetic pi extension id (e.g. "pi:index"). */ piExtensionConfigs?: Map>; runtimeBridge?: SessionRuntimeBridge; }; type PiExtensionCommand = { handler: (...args: unknown[]) => unknown; description?: string; }; declare class PiExtensionHost { private readonly extensions; private readonly commands; /** Flag registration metadata (definition view; not runtime values). */ private readonly flagDefinitions; /** Runtime flag values resolved at registerFlag time. */ private readonly flagValues; /** Informational only: pi.setActiveTools does not switch runtime tools in AIMax yet. */ private activeTools; constructor(extensions: DiscoveredPiExtension[]); activate(ctx: PiExtensionHostContext): Promise; getRegisteredCommands(): Map; resolveCommand(name: string): PiExtensionCommand | undefined; getRegisteredFlags(): Map; private createExtensionAPI; } //#endregion //#region src/pi-extensions/session-sidecar.d.ts declare class PiExtensionSidecar { private readonly filePath; constructor(sessionDir: string); appendEntry(type: string, data: unknown): Promise; readEntries(): Promise; } //#endregion export { type DiscoveredPiExtension, type PiExtensionAPI, type PiExtensionContext, PiExtensionHost, type PiExtensionHostContext, PiExtensionSidecar, type PiExtensionUi, discoverPiExtensions, getExtensions, preloadExtensions };