import { EventEmitter } from 'node:events'; import type { PromptCallbacks, PromptResult } from './types.js'; import { type IModelRunner, type PromptOptions, type RunnerMetrics, type SessionPolicyStatus } from './model-runner.js'; export interface ClineHubToolContext { sessionId?: string; toolCallId?: string; signal?: AbortSignal; } export interface ClineHubToolDefinition { name: string; description: string; inputSchema: Record; timeoutMs?: number; retryable?: boolean; maxRetries?: number; execute(input: Record, context: ClineHubToolContext): Promise; } export interface ClineHubClient { readonly runtimeAddress?: string; start(input: unknown): Promise<{ sessionId: string; }>; send(input: { sessionId: string; prompt: string; timeoutMs?: number; }): Promise; subscribe(listener: (event: unknown) => void, options?: unknown): () => void; get(sessionId: string): Promise; abort(sessionId: string, reason?: unknown): Promise; stop(sessionId: string): Promise; dispose(reason?: string): Promise; } export interface ClineHubRuntime { client: ClineHubClient; source: unknown; apiKey?: string; createTool(definition: ClineHubToolDefinition): unknown; } interface ClineHubRuntimeFactoryInput { command: string; cwd: string; dataDir?: string; provider: string; } export type ClineHubRuntimeFactory = (input: ClineHubRuntimeFactoryInput) => Promise; export interface ClineCLIAdapterOptions { command?: string; provider?: string; model?: string; systemPrompt?: string; cwd?: string; mcpConfigPath?: string; dataDir?: string; requestTimeout?: number; env?: NodeJS.ProcessEnv; sessionId?: string; allowedTools?: string[]; disallowedTools?: string[]; allowSpawnAgent?: boolean; allowAgentTeams?: boolean; maxSessions?: number; sessionTtlMs?: number; runtimeFactory?: ClineHubRuntimeFactory; } export declare function resolveClineDataDir(dataDir: string): string; export declare function hasPersistedClineCredential(options?: { command?: string; provider?: string; dataDir?: string; }): Promise; export declare class ClineCLIAdapter extends EventEmitter implements IModelRunner { readonly backendType: "cline"; private readonly options; private readonly runtimeFactory; private readonly sessions; private readonly stableRoutes; private readonly routesRequiringRebuild; private readonly routeTails; private readonly activeRoutes; private sessionLifecycleTail; private runtimePromise; private readonly disposedRuntimes; private runtimeWaiters; private sessionId; private systemPrompt; private requestCount; private failureCount; private totalLatencyMs; private lastRequestAt; private stopped; private readonly maxSessions; private readonly sessionTtlMs; constructor(options?: ClineCLIAdapterOptions); prompt(content: string, callbacks?: PromptCallbacks, promptOptions?: PromptOptions): Promise; private withRouteLock; private withSessionLifecycleLock; private getRuntime; private abortRoute; private quarantineRoute; private disposeRuntimeOnce; private runHubPrompt; private waitForToolSettlement; private startHubSession; private createProjectedTool; private processHubEvent; private removeStableRoute; private markRouteForRebuild; private retireRoute; private retireStaleSessions; private normalizeError; getSessionPolicyStatus(options: PromptOptions): SessionPolicyStatus; setSessionId(id: string): void; setSystemPrompt(prompt: string): void; sendMessage(content: string, callbacks?: PromptCallbacks): Promise; getSessionId(): string; isHealthy(): boolean; isReady(): boolean; getMetrics(): RunnerMetrics; stop(): Promise; private waitForCleanup; } export {}; //# sourceMappingURL=cline-cli-adapter.d.ts.map