UNPKG

@vfarcic/dot-ai

Version:

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

136 lines 4.39 kB
/** * Core Policy Operations * * Handles policy intent management operations including CRUD operations * and Kyverno cluster policy cleanup */ import { Logger } from './error-handling'; import { PolicyVectorService } from './policy-vector-service'; /** * Kyverno policy metadata */ interface KyvernoPolicyInfo { name: string; labels?: Record<string, string>; creationTimestamp?: string; } /** * Kyverno delete result */ interface KyvernoDeleteResult { successful: Array<{ policyId?: string; deletedAt: string; }>; failed: Array<{ policyId?: string; error: string; }>; total: number; } /** * Policy operation result */ interface PolicyOperationResult { success: boolean; operation?: string; dataType?: string; message?: string; error?: string; data?: unknown; deletedKyvernoPolicies?: KyvernoDeleteResult; requiresConfirmation?: boolean; confirmationMessage?: string; confirmation?: string | { question: string; options: string[]; }; note?: string; deletedPolicyIntent?: { id: string; description: string; }; deletedPolicyIntents?: unknown[]; deletedCount?: number; workflow?: unknown; storage?: unknown; policyIntents?: unknown[]; policyIntent?: unknown; totalCount?: number; searchResults?: unknown[]; kyvernoCleanup?: unknown; kyvernoPolicies?: unknown; } /** * Policy delete arguments */ interface PolicyDeleteArgs { operation?: string; dataType?: string; id?: string; response?: string; } /** * Policy operation arguments */ interface PolicyOperationArgs { sessionId?: string; response?: string; id?: string; limit?: number; step?: string; [key: string]: unknown; } /** * Validation result from connection checks */ interface ValidationCheckResult { success: boolean; error?: string; } /** * Get initialized policy service */ export declare function getPolicyService(): Promise<PolicyVectorService>; /** * Find Kyverno policies by policy intent ID using label selector * PRD #359: Uses unified plugin registry */ export declare function findKyvernoPoliciesByPolicyId(policyId: string, logger: Logger, requestId: string): Promise<KyvernoPolicyInfo[]>; /** * Find all Kyverno policies that have policy-intent/id labels * PRD #359: Uses unified plugin registry */ export declare function findAllKyvernoPoliciesForPolicyIntents(logger: Logger, requestId: string): Promise<Array<KyvernoPolicyInfo & { policyId?: string; }>>; /** * Delete Kyverno policies by policy intent ID using label selector * PRD #359: Uses unified plugin registry */ export declare function deleteKyvernoPoliciesByPolicyId(policyId: string, logger: Logger, requestId: string): Promise<KyvernoDeleteResult>; /** * Delete all Kyverno policies that have policy-intent/id labels * PRD #359: Uses unified plugin registry */ export declare function deleteAllKyvernoPoliciesForPolicyIntents(logger: Logger, requestId: string): Promise<KyvernoDeleteResult>; /** * Handle individual policy delete with Kyverno cleanup * PRD #359: Uses unified plugin registry */ export declare function handlePolicyDelete(policyId: string, policyService: PolicyVectorService, args: PolicyDeleteArgs, logger: Logger, requestId: string): Promise<PolicyOperationResult>; /** * Handle deleteAll policies with batch Kyverno cleanup * PRD #359: Uses unified plugin registry */ export declare function handlePolicyDeleteAll(policyService: PolicyVectorService, args: PolicyDeleteArgs & { response?: string; }, logger: Logger, requestId: string): Promise<PolicyOperationResult>; /** * Main policy operations handler - delegates to specific operation functions * Requires shared validation utilities to be passed as parameters to avoid circular imports * PRD #359: Uses unified plugin registry for kubectl operations */ export declare function handlePolicyOperation(operation: string, args: PolicyOperationArgs, logger: Logger, requestId: string, validateVectorDBConnection: (vectorService: PolicyVectorService, logger: Logger, requestId: string) => Promise<ValidationCheckResult>, validateEmbeddingService: (logger: Logger, requestId: string) => Promise<ValidationCheckResult>): Promise<PolicyOperationResult>; export {}; //# sourceMappingURL=policy-operations.d.ts.map