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
JavaScript
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];
}
}