@vfarcic/dot-ai
Version:
AI-powered development productivity platform that enhances software development workflows through intelligent automation and AI-driven assistance
91 lines • 3.13 kB
TypeScript
/**
* Resource Capability Discovery & Inference Engine
*
* PRD #48: Resource Capabilities Discovery & Integration
*
* This module provides capability inference for Kubernetes resources through
* AI-powered analysis of schemas and metadata.
*/
import { Logger } from './error-handling';
import { AIProvider } from './ai-provider.interface';
/**
* Printer column definition from Kubernetes Table API
* Used for dynamic table column generation in UIs
*/
export interface PrinterColumn {
name: string;
type: string;
jsonPath: string;
description?: string;
priority?: number;
}
/**
* Complete resource capability data structure for Vector DB storage
*/
export interface ResourceCapability {
resourceName: string;
apiVersion?: string;
version?: string;
group?: string;
capabilities: string[];
providers: string[];
abstractions: string[];
complexity: 'low' | 'medium' | 'high';
description: string;
useCase: string;
printerColumns?: PrinterColumn[];
embedding?: number[];
analyzedAt: string;
confidence: number;
}
/**
* Generic Capability Inference Engine
*
* Analyzes any Kubernetes CRD using AI to extract semantic capabilities
* for improved AI recommendations and resource matching.
*/
export declare class CapabilityInferenceEngine {
private logger;
private aiProvider;
constructor(aiProvider: AIProvider, logger: Logger);
/**
* Main entry point: analyze resource to infer complete capabilities
*
* @param resourceName - Full resource name (e.g., "resourcegroups.azure.upbound.io")
* @param resourceDefinition - kubectl explain output for the resource
* @param interaction_id - Optional interaction ID for tracing
* @param apiVersion - Full apiVersion from kubectl (e.g., "apps/v1", "azure.upbound.io/v1beta1")
* @param version - Just the version part (e.g., "v1beta1")
* @param group - API group (e.g., "azure.upbound.io")
* @throws Error if capability inference fails for any reason
*/
inferCapabilities(resourceName: string, resourceDefinition?: string, interaction_id?: string, apiVersion?: string, version?: string, group?: string): Promise<ResourceCapability>;
/**
* Use AI to infer capabilities from all available resource context
*
* @throws Error if AI inference fails
*/
private inferWithAI;
/**
* Build AI inference prompt using standard prompt loading pattern
*
* @throws Error if prompt template cannot be loaded
*/
private buildInferencePrompt;
/**
* Parse AI response into structured capability data
*
* @throws Error if AI response cannot be parsed or is invalid
*/
private parseCapabilitiesFromAI;
/**
* Build final ResourceCapability from AI analysis result
*/
private buildResourceCapability;
/**
* Generate Vector DB ID for capability storage
* Creates deterministic UUID from resource name for Qdrant compatibility
*/
static generateCapabilityId(resourceName: string): string;
}
//# sourceMappingURL=capabilities.d.ts.map