import { type ExtensionAPI, type ExtensionContext } from "@earendil-works/pi-coding-agent"; import type { CodexConversionConfig } from "../adapter/activation/config.ts"; import type { AdapterState } from "../adapter/activation/state.ts"; import { type PiSystemPromptOptions } from "../prompt/build-system-prompt.ts"; import { createExecCommandTracker } from "../tools/exec/command-state.ts"; import { createExecSessionManager } from "../tools/exec/session-manager.ts"; import type { BackgroundBashWidgetState } from "../ui/background-bash-widget.ts"; import { CodexVoiceController } from "../voice/controller.ts"; import { CodexLanVoiceServerController } from "../voice/lan/controller.ts"; import type { CodexDiagnosticsSink } from "../providers/openai-codex/types.ts"; export type CodexContext = ExtensionContext; export type CodexPrewarmResult = { status: "ready"; } | { status: "aborted"; } | { status: "failed"; error: Error; }; export interface CodexExtensionRuntime { state: AdapterState; tracker: ReturnType; sessions: ReturnType; backgroundWidget: BackgroundBashWidgetState; voice: CodexVoiceController; lanVoice: CodexLanVoiceServerController; execEnv(config?: CodexConversionConfig): NodeJS.ProcessEnv; codexSystemPrompt(basePrompt: string, ctx: CodexContext, skills?: AdapterState["promptSkills"], systemPromptOptions?: PiSystemPromptOptions): string; startPrewarm(ctx: CodexContext, systemPrompt?: string, prepared?: boolean): Promise | undefined; startCompactionPrewarm(ctx: CodexContext): Promise | undefined; resetTransport(sessionId?: string): void; resetTransportAfterCompaction(sessionId: string): void; shutdownTransport(sessionId: string): void; waitForPrewarm(ctx: CodexContext, systemPrompt: string): Promise | undefined; prewarmIdentity(ctx: CodexContext, systemPrompt: string): string | undefined; configureDiagnostics(ctx: CodexContext, announceLog?: boolean): Promise; diagnosticsSink(): CodexDiagnosticsSink | undefined; shutdownDiagnostics(): Promise; } export declare function createCodexExtensionRuntime(pi: ExtensionAPI): CodexExtensionRuntime;