Status: Ready for Implementation
Target: 40-50% reduction in codebase complexity while maintaining security and functionality
Target: Reduce 12 AuthTypes to 4 essential patterns
// NEW: 4 Essential Auth Patterns
enum AuthProvider {
GOOGLE_OAUTH = 'google-oauth', // LOGIN_WITH_GOOGLE, USE_VERTEX_AI, CLOUD_SHELL
API_KEY = 'api-key', // USE_OPENAI, USE_ANTHROPIC, USE_GEMINI, USE_GROK, USE_RUNPOD
LOCAL_HTTP = 'local-http', // USE_OLLAMA, USE_LM_STUDIO
LEGACY_OAUTH = 'legacy-oauth' // QWEN_OAUTH (maintain backward compatibility)
}
interface ProviderConfig {
type: AuthProvider;
apiKey?: string;
baseUrl?: string;
model?: string;
additionalConfig?: Record<string, unknown>;
}- Create
ProviderManagerclass (packages/core/src/providers/ProviderManager.ts) - Implement provider adapters for each auth pattern
- Migrate existing auth validation to new provider system
- Update credential management to use unified provider interface
- Maintain backward compatibility through provider adapters
Target: Single source of truth for all configuration
// packages/core/src/config/ConfigManager.ts
class ConfigManager {
private providers: Map<string, ProviderConfig>;
private toolRegistry: ToolRegistry;
private settings: CoreSettings;
// Unified configuration loading
async loadConfiguration(source: ConfigSource): Promise<void>
// Provider management
getProvider(name: string): ProviderConfig
setProvider(name: string, config: ProviderConfig): void
// Tool configuration
getToolConfig(): ToolConfig
// Settings management
getSetting<T>(key: string): T
setSetting<T>(key: string, value: T): void
}- Create ConfigManager interface with provider abstraction
- Migrate settings from 3 config files to unified structure
- Implement configuration validation with schema validation
- Add configuration migration utilities for existing users
- Update all configuration consumers to use ConfigManager
Target: 80% reduction in tool discovery complexity
// Simplified tool interface
interface SimpleTool {
name: string;
description: string;
schema: FunctionDeclaration;
execute(params: Record<string, unknown>): Promise<ToolResult>;
}
// Unified tool registry
class UnifiedToolRegistry {
private coreTools: Map<string, SimpleTool>;
private discoveredTools: Map<string, SimpleTool>;
registerCoreTool(tool: SimpleTool): void
discoverExternalTools(): Promise<void>
getTool(name: string): SimpleTool | undefined
getAllTools(): SimpleTool[]
}- Consolidate tool discovery mechanisms into single interface
- Simplify MCP tool integration with standardized adapter
- Reduce tool registry complexity by 80%
- Maintain tool functionality while simplifying discovery
Target: 3 essential commands replacing 30+ scripts
{
"scripts": {
"dev": "node scripts/dev.js", // Development with watch mode
"build": "node scripts/build.js", // Production build
"test": "node scripts/test.js" // All testing (unit, integration, lint)
}
}- Analyze script dependencies and identify essential operations
- Create optimized build pipeline with parallel execution
- Consolidate testing workflows into single command
- Maintain development ergonomics while reducing complexity
- Provider System: 60% reduction in auth-related code
- Configuration: 70% reduction in config management code
- Tool System: 80% reduction in discovery mechanisms
- Build Scripts: 60% reduction in build complexity
- Single source of truth for configuration
- Unified provider interface reduces conditional logic
- Simplified tool discovery reduces debugging complexity
- Streamlined build process improves developer velocity
- Centralized credential management through ConfigManager
- Reduced attack surface through code consolidation
- Simplified validation logic reduces security bugs
- Maintained security controls from previous phases
- 40-50% reduction in total lines of code
- 12 AuthTypes → 4 AuthProviders (67% reduction)
- 3 config files → 1 ConfigManager (67% reduction)
- 30+ build scripts → 3 commands (90% reduction)
- Single configuration entry point
- Unified provider interface
- Simplified tool discovery
- Maintained backward compatibility
- Enhanced developer experience
- Maintain existing API surface through adapters
- Provide migration utilities for existing configurations
- Support legacy auth types during transition period
- Comprehensive integration tests for new architecture
- Migration testing with real-world configurations
- Performance testing to ensure no regression
- Security testing of new provider interfaces
- Feature flags for new architecture components
- Gradual migration with fallback to existing system
- Monitoring and alerting for migration issues
- Documentation for rolling back changes
Week 1: Provider System Consolidation
Week 2: Unified Configuration Management
Week 3: Tool System Simplification
Week 4: Build System Optimization
Each week includes implementation, testing, and documentation updates.