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