@vfarcic/dot-ai
Version:
AI-powered development productivity platform that enhances software development workflows through intelligent automation and AI-driven assistance
72 lines • 2.19 kB
TypeScript
/**
* Packaging Module - Convert raw Kubernetes manifests to Helm charts or Kustomize overlays
*
* Implements AI-driven packaging as specified in PRD #248.
* Raw manifests are always generated and validated first, then packaged based on outputFormat.
*/
import { Logger } from './error-handling';
import { DotAI } from './index';
/**
* Output format types supported by packaging
*/
export type OutputFormat = 'raw' | 'helm' | 'kustomize';
/**
* File entry in packaging response
*/
export interface PackageFile {
relativePath: string;
content: string;
}
/**
* Result of packaging operation
*/
export interface PackagingResult {
files: PackageFile[];
format: OutputFormat;
}
/**
* Error context for packaging retries
*/
interface PackagingErrorContext {
attempt: number;
previousOutput: string;
validationError: string;
}
/**
* Question with answer structure
*/
interface QuestionWithAnswer {
question: string;
answer?: unknown;
}
/**
* Solution data structure for packaging
*/
interface SolutionData {
questions?: {
required?: QuestionWithAnswer[];
basic?: QuestionWithAnswer[];
advanced?: QuestionWithAnswer[];
open?: {
answer?: string;
};
};
intent?: string;
[key: string]: unknown;
}
/**
* Package raw Kubernetes manifests into Helm chart or Kustomize overlay
*
* @param rawManifests - Validated raw Kubernetes YAML manifests
* @param solution - Solution data with intent, questions, answers
* @param outputFormat - Target format ('helm' or 'kustomize')
* @param outputPath - User-specified output path
* @param dotAI - DotAI instance for AI calls
* @param logger - Logger instance
* @param errorContext - Optional error context for retries
* @param interaction_id - Optional interaction ID for evaluation
* @returns PackagingResult with files array
*/
export declare function packageManifests(rawManifests: string, solution: SolutionData, outputFormat: OutputFormat, outputPath: string, dotAI: DotAI, logger: Logger, errorContext?: PackagingErrorContext, interaction_id?: string): Promise<PackagingResult>;
export {};
//# sourceMappingURL=packaging.d.ts.map