route-claudecode
Version:
Advanced routing and transformation system for Claude Code outputs to multiple AI providers
90 lines • 2.34 kB
TypeScript
/**
* Pipeline Types Definition
* 流水线系统类型定义
* Owner: Jason Zhang
*/
export interface PipelineStep {
stepNumber: number;
stepName: string;
provider: string;
process(input: any, context?: any): Promise<any>;
}
export interface StepDataCapture {
stepNumber: number;
stepName: string;
provider: 'openai' | 'anthropic' | 'gemini' | 'codewhisperer';
input: any;
output: any;
timing: {
startTime: number;
endTime: number;
duration: number;
};
metadata: {
requestId: string;
sessionId: string;
model: string;
category: string;
};
errors?: any[];
}
export interface PipelineContext {
requestId: string;
sessionId: string;
userId?: string;
clientInfo?: {
userAgent?: string;
ip?: string;
host?: string;
};
headers?: Record<string, string>;
startTime: number;
}
export interface PipelineFlow {
flowId: string;
steps: StepDataCapture[];
totalDuration: number;
status: 'success' | 'failed' | 'partial';
error?: any;
metadata: {
requestId: string;
sessionId: string;
provider: string;
model: string;
category: string;
startTime: number;
endTime: number;
};
}
export interface PerformanceMetrics {
stepNumber: number;
stepName: string;
provider: string;
avgDuration: number;
minDuration: number;
maxDuration: number;
successRate: number;
totalRequests: number;
errorCount: number;
lastUpdated: number;
}
export interface DataCaptureConfig {
enabled: boolean;
steps: number[];
providers: string[];
categories: string[];
sampling?: {
enabled: boolean;
rate: number;
};
storage: {
type: 'file' | 'database';
path: string;
maxSize?: number;
rotation?: boolean;
};
}
export type StepName = 'input-processing' | 'input-preprocessing' | 'routing' | 'request-transformation' | 'api-interaction' | 'response-preprocessing' | 'response-transformation' | 'output-processing';
export type ProviderType = 'openai' | 'anthropic' | 'gemini' | 'codewhisperer';
export type CategoryType = 'tool-calls' | 'long-text' | 'normal-text' | 'error';
//# sourceMappingURL=pipeline.d.ts.map