import type { AgentProviderConfig, ClaudeCodeAgentProviderConfig, CodexCliAgentProviderConfig, GrokCliAgentProviderConfig, KimiCliAgentProviderConfig, OpenCodeCliAgentProviderConfig } from '../../shared/agent-config.js'; import type { ProviderChildHealthSnapshot } from '../../shared/snapshot.js'; import type { ProviderUsageInput } from '../../shared/agent-token-usage.js'; export type { AgentProviderConfig, ClaudeCodeAgentProviderConfig, CodexCliAgentProviderConfig, GrokCliAgentProviderConfig, KimiCliAgentProviderConfig, OpenCodeCliAgentProviderConfig, }; export interface ProviderSessionRecord { id: string; updatedAt: string; } export declare function providerSessionPayload(session: ProviderSessionRecord | undefined, kind: string): Record; export interface AgentRuntimeEffects { persistProviderSession(session: ProviderSessionRecord): Promise; recordAgentText(text: string | undefined, payload?: Record): Promise; recordEvent(payload: Record): Promise; recordOutput(stream: 'stderr' | 'stdout', text: string): Promise; recordUsage(usage: ProviderUsageInput): Promise; recordRuntime(type: 'runtime.started' | 'runtime.completed' | 'runtime.failed', payload?: Record): Promise; recordToolFailed(payload: Record): Promise; recordToolStarted(payload: Record): Promise; } export interface AgentRuntimeInput { cwd: string; effects: AgentRuntimeEffects; env: NodeJS.ProcessEnv; onActivity?: () => void; prompt: string; providerSession?: ProviderSessionRecord; itemId: string; signal?: AbortSignal; suppressFailureRecord?: boolean; systemPrompt?: string; systemPromptFilePath?: string; } export interface AgentRuntimeResult { text?: string; } export interface AgentRuntimeFollowupInput { activeItemId: string; itemIds: string[]; prompt: string; } export interface AgentRuntimeFollowupResult { accepted: boolean; retryable?: boolean; text?: string; } export interface AgentRuntimeDrainInput { activeItemId: string; signal?: AbortSignal; } export interface AgentRuntimeCloseOptions { forceAfterMs?: number; signal?: NodeJS.Signals; } export interface AgentRuntimeHealth { child?: ProviderChildHealthSnapshot; childExpected: boolean; } export interface AgentRuntime { readonly env?: Record; readonly kind: string; close?(options?: AgentRuntimeCloseOptions): Promise; health?(): AgentRuntimeHealth; /** * Provider-owned background work (e.g. Claude background Bash tasks). * `undefined` means this runtime does not expose quiescence beyond the active * Anima item — config reload keeps the previous active-item-only behavior. */ isProviderQuiescent?(): boolean | undefined; run(input: AgentRuntimeInput): Promise; appendToActiveRun(input: AgentRuntimeFollowupInput): Promise; requestDrain?(input: AgentRuntimeDrainInput): Promise; /** Resolves when `isProviderQuiescent()` is true (or immediately if unsupported). */ waitForProviderQuiescent?(signal?: AbortSignal): Promise; } //# sourceMappingURL=contract.d.ts.map