UNPKG

@vfarcic/dot-ai

Version:

AI-powered development productivity platform that enhances software development workflows through intelligent automation and AI-driven assistance

150 lines 4.8 kB
/** * Remediate Tool - AI-powered Kubernetes issue analysis and remediation */ import { z } from 'zod'; import { BaseVisualizationData } from '../core/visualization'; export declare const REMEDIATE_TOOL_NAME = "remediate"; export declare const REMEDIATE_TOOL_DESCRIPTION = "AI-powered Kubernetes issue analysis that provides root cause identification and actionable remediation steps. Unlike basic kubectl commands, this tool performs multi-step investigation, correlates cluster data, and generates intelligent solutions. Use when users want to understand WHY something is broken, not just see raw status. Ideal for: troubleshooting failures, diagnosing performance issues, analyzing pod problems, investigating networking/storage issues, or any \"what's wrong\" questions."; export declare const REMEDIATE_TOOL_INPUT_SCHEMA: { issue: z.ZodOptional<z.ZodString>; mode: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ manual: "manual"; automatic: "automatic"; }>>>; confidenceThreshold: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; maxRiskLevel: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ low: "low"; medium: "medium"; high: "high"; }>>>; executeChoice: z.ZodOptional<z.ZodNumber>; sessionId: z.ZodOptional<z.ZodString>; executedCommands: z.ZodOptional<z.ZodArray<z.ZodString>>; interaction_id: z.ZodOptional<z.ZodString>; }; export interface RemediateInput { issue?: string; mode?: 'manual' | 'automatic'; confidenceThreshold?: number; maxRiskLevel?: 'low' | 'medium' | 'high'; executeChoice?: number; sessionId?: string; executedCommands?: string[]; interaction_id?: string; } export interface RemediateSessionData extends BaseVisualizationData { toolName: 'remediate'; issue: string; mode: 'manual' | 'automatic'; interaction_id?: string; finalAnalysis?: RemediateOutput; status: 'investigating' | 'analysis_complete' | 'failed' | 'executed_successfully' | 'executed_with_errors' | 'cancelled'; executionResults?: ExecutionResult[]; } export type RemediateSession = { sessionId: string; createdAt: string; updatedAt: string; data: RemediateSessionData; }; export interface RemediationAction { description: string; command?: string; risk: 'low' | 'medium' | 'high'; rationale: string; gitSource?: { repoURL: string; repoPath?: string; branch: string; files: Array<{ path: string; content: string; description: string; }>; }; } export interface ExecutionResult { action: string; success: boolean; output?: string; error?: string; timestamp: Date; } export interface ExecutionChoice { id: number; label: string; description: string; risk?: 'low' | 'medium' | 'high'; } export interface RemediateOutput { status: 'success' | 'failed' | 'awaiting_user_approval' | 'partially_resolved'; sessionId: string; investigation: { iterations: number; dataGathered: string[]; }; analysis: { rootCause: string; confidence: number; factors: string[]; }; remediation: { summary: string; actions: RemediationAction[]; risk: 'low' | 'medium' | 'high'; }; validationIntent?: string; guidance?: string; agentInstructions?: string; nextAction?: string; message?: string; executionChoices?: ExecutionChoice[]; executed?: boolean; results?: ExecutionResult[]; fallbackReason?: string; mode?: 'manual' | 'automatic'; pullRequest?: { url: string; number: number; branch: string; baseBranch: string; filesChanged: string[]; }; } /** * Remediate tool response type */ export interface RemediateToolResponse { content: Array<{ type: 'text'; text: string; }>; } /** * AI Final Analysis Response interface matching final analysis prompt format */ interface AIFinalAnalysisResponse { issueStatus: 'active' | 'resolved' | 'non_existent'; rootCause: string; confidence: number; factors: string[]; remediation: { summary: string; actions: RemediationAction[]; risk: 'low' | 'medium' | 'high'; }; validationIntent?: string; } /** * Parse AI final analysis response */ export declare function parseAIFinalAnalysis(aiResponse: string): AIFinalAnalysisResponse; /** * Main tool handler for remediate tool * * PRD #343: All kubectl operations go through plugin. * PRD #359: Uses unified plugin registry - no pluginManager parameter needed. */ export declare function handleRemediateTool(args: RemediateInput): Promise<RemediateToolResponse>; export {}; //# sourceMappingURL=remediate.d.ts.map