UNPKG

claude-gemini-multimodal-bridge

Version:

Enterprise-grade AI integration bridge connecting Claude Code, Gemini CLI, and Google AI Studio with intelligent routing and advanced multimodal processing capabilities

52 lines (51 loc) 2.04 kB
import { WorkflowOrchestrator } from '../tools/workflowOrchestrator.js'; import { safeExecute } from '../utils/errorHandler.js'; import { logger } from '../utils/logger.js'; import { COMPLEXITY_MULTIPLIERS, COST_FACTORS, DURATION_FACTORS, scoreToComplexity, } from '../utils/workflowUtils.js'; export class BaseWorkflow { id; steps; continueOnError; timeout; orchestrator; constructor(type, timeout, id) { this.id = id ?? `${type}_workflow_${Date.now()}`; this.steps = []; this.continueOnError = false; this.timeout = timeout; this.orchestrator = new WorkflowOrchestrator(); } assessComplexityByScore(score) { return scoreToComplexity(score); } async executeWithWrapper(operation, operationName, timeoutMultiplier = 1) { return safeExecute(operation, { operationName, layer: 'claude', timeout: this.timeout * timeoutMultiplier, }); } logWorkflowStart(workflowType, metadata) { logger.info(`Starting ${workflowType} workflow`, { workflowId: this.id, ...metadata, }); } calculateResourceEstimate(baseValues, inputMultiplier, complexity) { const multiplier = COMPLEXITY_MULTIPLIERS[complexity]; return { estimated_tokens: baseValues.memory * inputMultiplier * multiplier.tokens, complexity_score: baseValues.cpu * multiplier.score, estimated_duration: baseValues.duration * inputMultiplier * multiplier.duration, recommended_execution_mode: 'adaptive', required_capabilities: ['claude', 'gemini', 'aistudio'], estimated_cost: baseValues.cost * inputMultiplier * multiplier.cost, }; } estimateDuration(baseTime, multiplier, complexity) { return baseTime * multiplier * DURATION_FACTORS[complexity]; } estimateCost(baseCost, multiplier, complexity) { return baseCost * multiplier * COST_FACTORS[complexity]; } }