UNPKG

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