@tehreet/conduit
Version:
LLM API gateway with intelligent routing, robust process management, and health monitoring
150 lines • 4.42 kB
TypeScript
import { SynapseContext } from './context-extractor';
import { DefaultPluginManager } from '../plugins';
import { ConduitConfig } from './config-presets';
export interface AdvancedRoutingRule {
id: string;
name: string;
description?: string;
priority: number;
conditions: RoutingCondition[];
model: string;
confidence?: number;
enabled: boolean;
fallback?: string;
metadata?: Record<string, any>;
}
export interface RoutingCondition {
type: 'token_count' | 'model_request' | 'flags' | 'content' | 'context' | 'time' | 'custom';
field?: string;
operator: '=' | '!=' | '<' | '<=' | '>' | '>=' | 'includes' | 'excludes' | 'matches' | 'custom';
value: any;
negate?: boolean;
}
export interface RoutingDecision {
selectedModel: string;
confidence: number;
reason: string;
rule?: AdvancedRoutingRule;
fallbackModel?: string;
metadata?: Record<string, any>;
}
export interface RoutingEvaluationContext {
request: any;
tokenCount: number;
config: ConduitConfig;
env: NodeJS.ProcessEnv;
synapseContext: SynapseContext;
timestamp: Date;
contentAnalysis?: {
complexity: number;
language: string;
topics: string[];
codeBlocks: number;
};
}
/**
* Enhanced routing engine with advanced rule evaluation
*/
export declare class AdvancedRoutingEngine {
private rules;
private customEvaluators;
constructor();
/**
* Register a custom routing rule
*/
registerRule(rule: AdvancedRoutingRule): void;
/**
* Remove a routing rule
*/
removeRule(ruleId: string): void;
/**
* Get all routing rules
*/
getRules(): AdvancedRoutingRule[];
/**
* Register custom condition evaluator
*/
registerCustomEvaluator(name: string, evaluator: (condition: RoutingCondition, context: RoutingEvaluationContext) => boolean): void;
/**
* Evaluate routing rules and make routing decision
*/
evaluate(context: RoutingEvaluationContext): Promise<RoutingDecision>;
/**
* Evaluate a single routing rule
*/
private evaluateRule;
/**
* Evaluate a single condition
*/
private evaluateCondition;
/**
* Evaluate token count condition
*/
private evaluateTokenCountCondition;
/**
* Evaluate model request condition
*/
private evaluateModelRequestCondition;
/**
* Evaluate flags condition
*/
private evaluateFlagsCondition;
/**
* Evaluate content condition
*/
private evaluateContentCondition;
/**
* Evaluate context condition (Synapse context)
*/
private evaluateContextCondition;
/**
* Evaluate time condition
*/
private evaluateTimeCondition;
/**
* Evaluate custom condition
*/
private evaluateCustomCondition;
/**
* Compare values based on operator
*/
private compareValues;
/**
* Evaluate array condition
*/
private evaluateArrayCondition;
/**
* Enhance context with content analysis
*/
private enhanceContext;
/**
* Analyze content for routing decisions
*/
private analyzeContent;
/**
* Calculate content complexity
*/
private calculateComplexity;
/**
* Detect content language
*/
private detectLanguage;
/**
* Extract topics from content
*/
private extractTopics;
/**
* Register default evaluators
*/
private registerDefaultEvaluators;
}
export declare const getUseModel: (req: any, tokenCount: number, config: ConduitConfig, env?: NodeJS.ProcessEnv) => Promise<any>;
export declare const initializePlugins: (pluginDir?: string) => Promise<DefaultPluginManager>;
export declare const getAdvancedRoutingEngine: () => AdvancedRoutingEngine;
export declare const registerRoutingRule: (rule: AdvancedRoutingRule) => void;
export declare const removeRoutingRule: (ruleId: string) => void;
export declare const getAllRoutingRules: () => AdvancedRoutingRule[];
export declare const registerCustomEvaluator: (name: string, evaluator: (condition: RoutingCondition, context: RoutingEvaluationContext) => boolean) => void;
export declare const createCommonRoutingRules: () => AdvancedRoutingRule[];
export declare const router: (req: any, res: any, config: ConduitConfig) => Promise<void>;
//# sourceMappingURL=router.d.ts.map