rcc-pipeline
Version:
RCC Pipeline Module - Pipeline system and workflow management based on pipeline-framework
230 lines • 6.92 kB
TypeScript
/**
* Pipeline Execution Context - Enhanced request-response tracing system
* 流水线执行上下文 - 增强的请求响应跟踪系统
*/
import { BaseModuleRecordingConfig } from 'rcc-basemodule';
/**
* Pipeline execution context interface with comprehensive request-response tracing
* 流水线执行上下文接口,提供完整的请求响应跟踪
*/
export interface PipelineExecutionContext {
/** Unique execution identifier */
executionId: string;
/** Request identifier for cross-module tracking */
requestId: string;
/** Trace identifier for distributed tracking */
traceId: string;
/** Session identifier for session tracking */
sessionId?: string;
/** Pipeline stage tracking */
stage: PipelineStage;
/** Current module information */
module: ModuleInfo;
/** Execution timing information */
timing: ExecutionTiming;
/** Request data with truncation support */
request?: any;
/** Response data with truncation support */
response?: any;
/** Error information if execution failed */
error?: ExecutionError;
/** Metadata for additional context */
metadata?: Record<string, any>;
/** Configuration snapshot */
config?: ConfigSnapshot;
/** Child contexts for nested executions */
children?: PipelineExecutionContext[];
/** Parent context for hierarchical tracking */
parent?: PipelineExecutionContext;
}
/**
* Pipeline stage enumeration
* 流水线阶段枚举
*/
export declare enum PipelineStage {
REQUEST_INIT = "request_init",
AUTHENTICATION = "authentication",
SCHEDULING = "scheduling",
PIPELINE_SELECTION = "pipeline_selection",
PROVIDER_EXECUTION = "provider_execution",
RESPONSE_PROCESSING = "response_processing",
COMPLETION = "completion",
ERROR_HANDLING = "error_handling"
}
/**
* Module information for pipeline tracking
* 模块信息,用于流水线跟踪
*/
export interface ModuleInfo {
moduleId: string;
moduleName: string;
moduleType: string;
providerName?: string;
endpoint?: string;
}
/**
* Execution timing information
* 执行时间信息
*/
export interface ExecutionTiming {
startTime: number;
endTime?: number;
duration?: number;
stageTimings: Map<PipelineStage, StageTiming>;
}
/**
* Stage-specific timing information
* 阶段特定的时间信息
*/
export interface StageTiming {
startTime: number;
endTime?: number;
duration?: number;
status: 'pending' | 'running' | 'completed' | 'failed';
}
/**
* Execution error information
* 执行错误信息
*/
export interface ExecutionError {
errorId: string;
message: string;
stack?: string;
category: ErrorCategory;
severity: ErrorSeverity;
recoverable: boolean;
context?: Record<string, any>;
}
/**
* Error category enumeration
* 错误类别枚举
*/
export declare enum ErrorCategory {
NETWORK = "network",
AUTHENTICATION = "authentication",
VALIDATION = "validation",
PROCESSING = "processing",
PROVIDER = "provider",
SYSTEM = "system",
TIMEOUT = "timeout",
RATE_LIMIT = "rate_limit"
}
/**
* Error severity enumeration
* 错误严重性枚举
*/
export declare enum ErrorSeverity {
FATAL = "fatal",
ERROR = "error",
WARNING = "warning",
INFO = "info"
}
/**
* Configuration snapshot for consistency tracking
* 配置快照,用于一致性跟踪
*/
export interface ConfigSnapshot {
recordingConfig: BaseModuleRecordingConfig;
baseDirectory: string;
port?: number;
environment: string;
timestamp: number;
}
/**
* Execution context creation options
* 执行上下文创建选项
*/
export interface ExecutionContextOptions {
/** Create new trace or inherit existing */
createNewTrace?: boolean;
/** Inherit from parent context */
inheritFrom?: PipelineExecutionContext;
/** Custom execution ID */
executionId?: string;
/** Custom trace ID */
traceId?: string;
/** Custom session ID */
sessionId?: string;
/** Additional metadata */
metadata?: Record<string, any>;
/** Configuration overrides */
config?: Partial<BaseModuleRecordingConfig>;
}
/**
* Execution context manager interface
* 执行上下文管理器接口
*/
export interface IExecutionContextManager {
/** Create new execution context */
createContext(moduleInfo: ModuleInfo, stage: PipelineStage, request?: any, options?: ExecutionContextOptions): PipelineExecutionContext;
/** Update context stage */
updateStage(context: PipelineExecutionContext, newStage: PipelineStage, data?: any): void;
/** Complete context execution */
completeContext(context: PipelineExecutionContext, response?: any, error?: ExecutionError): void;
/** Get context by execution ID */
getContext(executionId: string): PipelineExecutionContext | undefined;
/** Get context by request ID */
getContextByRequestId(requestId: string): PipelineExecutionContext | undefined;
/** Get active contexts */
getActiveContexts(): PipelineExecutionContext[];
/** Get contexts by trace ID */
getContextsByTraceId(traceId: string): PipelineExecutionContext[];
/** Clear completed contexts */
clearCompletedContexts(): void;
/** Get execution statistics */
getStatistics(): ExecutionStatistics;
}
/**
* Execution statistics
* 执行统计
*/
export interface ExecutionStatistics {
totalExecutions: number;
activeExecutions: number;
completedExecutions: number;
failedExecutions: number;
averageDuration: number;
stageStatistics: Map<PipelineStage, StageStatistics>;
errorStatistics: Map<ErrorCategory, number>;
}
/**
* Stage-specific statistics
* 阶段特定统计
*/
export interface StageStatistics {
total: number;
completed: number;
failed: number;
averageDuration: number;
}
/**
* Execution context factory
* 执行上下文工厂
*/
export declare class ExecutionContextFactory {
private static instance;
private constructor();
static getInstance(): ExecutionContextFactory;
/**
* Create execution context
* 创建执行上下文
*/
createContext(moduleInfo: ModuleInfo, stage: PipelineStage, request?: any, options?: ExecutionContextOptions): PipelineExecutionContext;
/**
* Update context stage
* 更新上下文阶段
*/
updateStage(context: PipelineExecutionContext, newStage: PipelineStage, data?: any): void;
/**
* Complete context execution
* 完成上下文执行
*/
completeContext(context: PipelineExecutionContext, response?: any, error?: ExecutionError): void;
private generateExecutionId;
private generateTraceId;
private generateRequestId;
private sanitizeRequest;
private sanitizeResponse;
private createConfigSnapshot;
}
//# sourceMappingURL=PipelineExecutionContext.d.ts.map