agentic-qe
Version:
Agentic Quality Engineering Fleet System - AI-driven quality management platform
132 lines • 2.94 kB
TypeScript
/**
* Config - Configuration management for the AQE Fleet
*
* Handles loading and validation of fleet configuration from multiple sources
* including environment variables, config files, and defaults.
*/
export interface AgentConfig {
type: string;
count: number;
config: any;
}
export interface DatabaseConfig {
type: 'sqlite' | 'postgres' | 'mysql';
host?: string;
port?: number;
database: string;
username?: string;
password?: string;
filename?: string;
}
export interface FleetConfig {
fleet: {
id: string;
name: string;
maxAgents: number;
heartbeatInterval: number;
taskTimeout: number;
};
agents: AgentConfig[];
database: DatabaseConfig;
logging: {
level: string;
format: string;
outputs: string[];
};
api: {
port: number;
host: string;
cors: boolean;
rateLimit: {
windowMs: number;
max: number;
};
};
security: {
apiKey?: string;
jwtSecret?: string;
encryption: {
algorithm: string;
keyLength: number;
};
};
}
export declare class Config {
private static instance;
private config;
private constructor();
/**
* Load configuration from multiple sources
*/
static load(configPath?: string): Promise<FleetConfig>;
/**
* Get configuration instance
*/
static getInstance(): Config;
/**
* Get full configuration
*/
getConfig(): FleetConfig;
/**
* Get fleet configuration
*/
getFleetConfig(): {
id: string;
name: string;
maxAgents: number;
heartbeatInterval: number;
taskTimeout: number;
};
/**
* Get agents configuration
*/
getAgentsConfig(): AgentConfig[];
/**
* Get database configuration
*/
getDatabaseConfig(): DatabaseConfig;
/**
* Get logging configuration
*/
getLoggingConfig(): {
level: string;
format: string;
outputs: string[];
};
/**
* Get API configuration
*/
getApiConfig(): {
port: number;
host: string;
cors: boolean;
rateLimit: {
windowMs: number;
max: number;
};
};
/**
* Get security configuration
*/
getSecurityConfig(): {
apiKey?: string | undefined;
jwtSecret?: string | undefined;
encryption: {
algorithm: string;
keyLength: number;
};
};
/**
* Deep merge configurations
*/
private static mergeConfigs;
/**
* Save configuration to file
*/
static save(config: Partial<FleetConfig>, filePath: string): Promise<void>;
/**
* Validate configuration
*/
private static validateConfig;
}
//# sourceMappingURL=Config.d.ts.map