@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
TypeScript
/**
* 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