UNPKG

@vfarcic/dot-ai

Version:

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

128 lines 6.36 kB
/** * Core Capability Scan Workflow * * Handles the step-by-step capability scanning workflow including resource selection, * specification, processing mode selection, and the actual scanning process */ import { Logger } from './error-handling'; import { CapabilityVectorService } from './capability-vector-service'; import { KubernetesDiscovery } from './discovery'; import { CapabilityInferenceEngine } from './capabilities'; /** * Args passed to capability scan operations */ interface CapabilityScanArgs { response?: string; resourceList?: string; interaction_id?: string; } /** * Response from capability scan operations */ interface CapabilityScanResponse { success: boolean; operation: string; dataType: string; REQUIRED_NEXT_CALL?: Record<string, unknown>; workflow?: Record<string, unknown>; status?: string; sessionId?: string; message?: string; checkProgress?: Record<string, unknown>; error?: { message: string; details?: string; currentStep?: string; expectedCall?: string; sessionId?: string; suggestedActions?: string[]; }; summary?: Record<string, unknown>; results?: unknown[]; clientInstructions?: Record<string, unknown>; } /** * Error record for scan operations */ interface ScanError { resource: string; error: string; index: number; timestamp: string; } export type TransitionCapabilitySessionFn = (session: CapabilityScanSession, nextStep: CapabilityScanSession['currentStep'], updates: Partial<CapabilityScanSession>, args: CapabilityScanArgs) => void; export type CleanupCapabilitySessionFn = (session: CapabilityScanSession, args: CapabilityScanArgs, logger: Logger, requestId: string) => void; export type ParseNumericResponseFn = (response: string, validOptions: string[]) => string; export type CreateCapabilityScanCompletionResponseFn = (sessionId: string, totalProcessed: number, successful: number, failed: number, processingTime: string, mode: 'auto' | 'manual', stopped?: boolean) => CapabilityScanResponse; interface ProgressData { status: 'processing' | 'completed'; current: number; total: number; percentage: number; currentResource: string; startedAt: string; lastUpdated: string; completedAt?: string; estimatedTimeRemaining?: string; totalProcessingTime?: string; successfulResources: number; failedResources: number; errors: ScanError[]; } interface PrinterColumnDef { name: string; type: string; jsonPath: string; description?: string; priority?: number; } interface ResourceMetadata { apiVersion: string; version: string; group: string; resourcePlural: string; printerColumns?: PrinterColumnDef[]; } interface CapabilityScanSession { sessionId: string; currentStep: 'resource-selection' | 'resource-specification' | 'scanning' | 'complete'; selectedResources?: string[] | 'all'; resourceList?: string; currentResourceIndex?: number; progress?: ProgressData; startedAt: string; lastActivity: string; resourceMetadata?: Record<string, ResourceMetadata>; } /** * Result of scanning a single resource */ interface ScanResourceResult { success: boolean; resource: string; id?: string; capabilities?: string[]; providers?: string[]; complexity?: string; confidence?: number; error?: string; } /** * Scan a single resource - fetches all data, runs AI inference, stores to DB * This is the core function that both full scan and targeted scan call for each resource. */ export declare function scanSingleResource(resourceName: string, discovery: KubernetesDiscovery, engine: CapabilityInferenceEngine, capabilityService: CapabilityVectorService, logger: Logger, requestId: string, interactionId?: string): Promise<ScanResourceResult>; /** * Handle resource selection step */ export declare function handleResourceSelection(session: CapabilityScanSession, args: CapabilityScanArgs, logger: Logger, requestId: string, capabilityService: CapabilityVectorService, parseNumericResponse: ParseNumericResponseFn, transitionCapabilitySession: TransitionCapabilitySessionFn, cleanupCapabilitySession: CleanupCapabilitySessionFn, createCapabilityScanCompletionResponse: CreateCapabilityScanCompletionResponseFn, handleScanningFn: (session: CapabilityScanSession, args: CapabilityScanArgs, logger: Logger, requestId: string, capabilityService: CapabilityVectorService, parseNumericResponse: ParseNumericResponseFn, transitionCapabilitySession: TransitionCapabilitySessionFn, cleanupCapabilitySession: CleanupCapabilitySessionFn, createCapabilityScanCompletionResponse: CreateCapabilityScanCompletionResponseFn) => Promise<CapabilityScanResponse>): Promise<CapabilityScanResponse>; /** * Handle resource specification step */ export declare function handleResourceSpecification(session: CapabilityScanSession, args: CapabilityScanArgs, logger: Logger, requestId: string, capabilityService: CapabilityVectorService, parseNumericResponse: ParseNumericResponseFn, transitionCapabilitySession: TransitionCapabilitySessionFn, cleanupCapabilitySession: CleanupCapabilitySessionFn, createCapabilityScanCompletionResponse: CreateCapabilityScanCompletionResponseFn, handleScanningFn: (session: CapabilityScanSession, args: CapabilityScanArgs, logger: Logger, requestId: string, capabilityService: CapabilityVectorService, parseNumericResponse: ParseNumericResponseFn, transitionCapabilitySession: TransitionCapabilitySessionFn, cleanupCapabilitySession: CleanupCapabilitySessionFn, createCapabilityScanCompletionResponse: CreateCapabilityScanCompletionResponseFn) => Promise<CapabilityScanResponse>): Promise<CapabilityScanResponse>; /** * Handle scanning step (actual capability analysis - auto mode only) */ export declare function handleScanning(session: CapabilityScanSession, args: CapabilityScanArgs, logger: Logger, requestId: string, capabilityService: CapabilityVectorService, _parseNumericResponse: ParseNumericResponseFn, transitionCapabilitySession: TransitionCapabilitySessionFn, cleanupCapabilitySession: CleanupCapabilitySessionFn, createCapabilityScanCompletionResponse: CreateCapabilityScanCompletionResponseFn): Promise<CapabilityScanResponse>; export {}; //# sourceMappingURL=capability-scan-workflow.d.ts.map