/** * Autonomy Modes - Control automatic execution behavior */ export type AutonomyMode = 'suggest' | 'auto_edit' | 'full_auto'; export type ActionType = 'file_read' | 'file_write' | 'file_delete' | 'shell_command' | 'network_request' | 'git_operation' | 'install_package'; export interface ApprovalPolicy { action: ActionType; requiresApproval: boolean; autoApprovePatterns?: string[]; autoDenyPatterns?: string[]; } export interface AutonomyConfig { mode: AutonomyMode; policies?: ApprovalPolicy[]; rememberDecisions?: boolean; maxAutoActions?: number; } export interface ActionRequest { type: ActionType; description: string; target?: string; details?: Record; } export interface ActionDecision { approved: boolean; reason?: string; remembered?: boolean; } /** * Default policies for each mode */ export declare const MODE_POLICIES: Record; /** * Autonomy Manager class */ export declare class AutonomyManager { private config; private rememberedDecisions; private actionCount; private promptCallback?; constructor(config?: Partial); /** * Set the prompt callback for user approval */ setPromptCallback(callback: (request: ActionRequest) => Promise): void; /** * Request approval for an action */ requestApproval(request: ActionRequest): Promise; /** * Get policy for an action type */ private getPolicy; /** * Generate decision key for remembering */ private getDecisionKey; /** * Match a target against a pattern */ private matchPattern; /** * Get current mode */ getMode(): AutonomyMode; /** * Set mode */ setMode(mode: AutonomyMode): void; /** * Add custom policy */ addPolicy(policy: ApprovalPolicy): void; /** * Clear remembered decisions */ clearRemembered(): void; /** * Reset action count */ resetActionCount(): void; /** * Get action count */ getActionCount(): number; /** * Get summary of current settings */ getSummary(): string; } /** * Create an autonomy manager */ export declare function createAutonomyManager(config?: Partial): AutonomyManager; /** * Simple approval prompt for CLI */ export declare function cliApprovalPrompt(request: ActionRequest): Promise;