type AIVendor = 'deepseek' | 'openai' | 'anthropic' | 'claude' | 'google' | 'gemini' | 'azure' | 'custom'; interface AIProviderConfig { vendor: AIVendor; baseUrl?: string; apiKey: string; model: string; headers?: Record; } type ToolCategory = 'observation' | 'action'; type ToolErrorCode = 'TIMEOUT' | 'NETWORK' | 'HTTP_4XX' | 'HTTP_5XX' | 'VALIDATION' | 'UNKNOWN_TOOL' | 'ABORTED' | 'RUNTIME_GUARD' | 'MODEL_OUTPUT_INVALID' | 'PLAN_VALIDATION_FAILED' | 'SCRIPT_VALIDATION_FAILED' | 'UNKNOWN'; interface ToolResult { toolCallId: string; name: string; success: boolean; data?: unknown; error?: string; warning?: string; errorCode?: ToolErrorCode; retryable?: boolean; attempt?: number; latencyMs?: number; source?: 'local' | 'mcp'; server?: string; } interface ExecutionLogEntry { index: number; toolName: string; arguments: Record; result: ToolResult; category: ToolCategory; timestamp: number; } interface WorkflowScript { id: string; name: string; version: string; steps: Record; flow: string[]; description?: string; timeout?: number; exception_handlers?: ExceptionHandler[]; } interface ExceptionHandler { description?: string; name?: string; selector: Record; action: string; action_params?: Record; max_trigger_count?: number; } interface WorkflowStep { description?: string; completed?: string; /** * 循环配置,两种模式二选一: * - count: 固定次数循环(-1 表示无限循环,需外部取消) * - max_count + completed="success": 条件循环(-1 表示无限循环直到成功) * - interval: 循环间隔毫秒数,默认 0 */ loop?: { count: number; interval?: number; } | { max_count: number; interval?: number; }; actions: WorkflowAction[]; } interface WorkflowAction { path: string; params?: Record; throw_if_empty?: string[]; } interface TaskPlanSubtask { id: number; description: string; successCriteria: string; estimatedActions: string[]; } interface TaskPlan { goal: string; subtasks: TaskPlanSubtask[]; risks: string[]; assumptions: string[]; estimatedSteps: number; } interface ToolRetryPolicy { observation: number; action: number; } interface ToolTimeoutPolicy { defaultMs: number; observeScreenMs: number; startAppMs: number; } interface RuntimeLimitPolicy { /** Positive hard cap on dialogue iterations. */ maxIterations: number; maxConsecutiveFailures: number; maxSameToolFingerprint: number; } interface PlannerPolicy { maxAttempts: number; } interface ScriptGenerationPolicy { maxAttempts: number; } interface ReliabilityConfig { retries: ToolRetryPolicy; timeouts: ToolTimeoutPolicy; limits: RuntimeLimitPolicy; planner: PlannerPolicy; scriptGeneration: ScriptGenerationPolicy; } interface RuntimeDiagnosticsSummary { planningRetries: number; toolRetries: number; scriptGenerationRetries: number; convergenceTriggers: number; totalToolCalls: number; successfulToolCalls: number; runtimeSuccessRate: number | null; totalActionCalls: number; successfulActionCalls: number; automationSuccessRate: number | null; totalFailures: number; failureByCode: Record; finalFailureCode?: string; } interface AgentPlanningData { sessionId: string; status: 'started' | 'completed' | 'paused'; plan?: TaskPlan; text?: string; } type McpServerConfig = { transport: 'stdio'; command: string; args?: string[]; env?: Record; } | { transport: 'http' | 'streamable_http' | 'sse'; url: string; headers?: Record; }; declare function generateScriptWithReliability(goal: string, executionLog: ExecutionLogEntry[], providerConfig: AIProviderConfig, reliability: ReliabilityConfig, signal?: AbortSignal): Promise<{ workflow: WorkflowScript; attempts: number; errors: string[]; }>; declare function generateScript(goal: string, executionLog: ExecutionLogEntry[], providerConfig: AIProviderConfig, signal?: AbortSignal): Promise; export { generateScript, generateScriptWithReliability }; export type { AIProviderConfig, AIVendor, AgentPlanningData, ExecutionLogEntry, McpServerConfig, ReliabilityConfig, RuntimeDiagnosticsSummary, TaskPlan, TaskPlanSubtask, WorkflowScript };