adpa-enterprise-framework-automation
Version:
Modular, standards-compliant Node.js/TypeScript automation framework for enterprise requirements, project, and data management. Provides CLI and API for BABOK v3, PMBOK 7th Edition, and DMBOK 2.0 (in progress). Production-ready Express.js API with TypeSpe
91 lines • 2.54 kB
TypeScript
/**
* Enhanced AI Provider Types and Interfaces for Interactive Provider Selection
*
* Extends the base AI types with enhanced configuration interfaces for the
* interactive provider selection menu feature.
*
* @version 2.1.3
* @author Requirements Gathering Agent Team
* @created June 2025
*
* @filepath c:\Users\menno\Source\Repos\requirements-gathering-agent\src\modules\ai\enhanced-types.ts
*/
import { ProviderMetrics } from './types.js';
export interface EnhancedProviderConfig {
id: string;
name: string;
displayName: string;
description: string;
category: 'cloud' | 'local' | 'free' | 'enterprise';
priority: number;
check: () => Promise<boolean>;
isAvailable: () => Promise<boolean>;
getStatus: () => Promise<ProviderStatus>;
requiredEnvVars: string[];
optionalEnvVars: string[];
configTemplate: Record<string, string>;
setupGuide: SetupGuide;
tokenLimit: number;
features: string[];
costInfo?: CostInfo;
icon: string;
statusColor: string;
recommendation?: string;
}
export interface ProviderStatus {
configured: boolean;
available: boolean;
connected: boolean;
lastChecked: Date;
error?: string;
metrics?: ProviderMetrics;
}
export interface SetupGuide {
steps: SetupStep[];
estimatedTime: string;
difficulty: 'easy' | 'medium' | 'advanced';
prerequisites: string[];
helpLinks: {
title: string;
url: string;
}[];
}
export interface SetupStep {
title: string;
description: string;
action: 'manual' | 'command' | 'input';
command?: string;
validation?: () => Promise<boolean>;
}
export interface CostInfo {
tier: 'free' | 'paid' | 'enterprise';
costPerToken?: number;
dailyLimit?: number;
description: string;
}
export interface ValidationResult {
valid: boolean;
errors: string[];
warnings?: string[];
}
export interface ConnectionTestResult {
success: boolean;
responseTime?: number;
error?: string;
errorCode?: string;
suggestions?: string[];
metadata?: Record<string, any>;
}
export interface MenuAction {
action: 'select' | 'configure' | 'retry-setup' | 'change-provider' | 'show-help' | 'exit';
providerId?: string;
data?: any;
}
export interface InteractiveMenuOptions {
showMetrics?: boolean;
allowExit?: boolean;
autoRefresh?: boolean;
refreshInterval?: number;
}
export type { AIProvider, ProviderMetrics } from './types.js';
//# sourceMappingURL=enhanced-types.d.ts.map