route-claudecode
Version:
Advanced routing and transformation system for Claude Code outputs to multiple AI providers
189 lines • 7.4 kB
JavaScript
;
/**
* 统一预处理器(向后兼容包装器)
* 现在使用统一兼容性预处理器,移除了补丁系统依赖
* 保持原有API接口以确保兼容性
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.UnifiedPatchPreprocessor = void 0;
exports.getUnifiedPatchPreprocessor = getUnifiedPatchPreprocessor;
exports.createUnifiedPatchPreprocessor = createUnifiedPatchPreprocessor;
exports.resetUnifiedPatchPreprocessor = resetUnifiedPatchPreprocessor;
const logging_1 = require("../logging");
const unified_compatibility_preprocessor_1 = require("./unified-compatibility-preprocessor");
class UnifiedPatchPreprocessor {
compatibilityProcessor;
logger;
config;
constructor(port, config) {
this.config = {
enabled: process.env.RCC_UNIFIED_PREPROCESSING !== 'false',
debugMode: process.env.RCC_PREPROCESSING_DEBUG === 'true',
forceAllInputs: process.env.RCC_FORCE_ALL_INPUTS === 'true',
bypassConditions: [],
performanceTracking: true,
cacheResults: process.env.RCC_CACHE_PREPROCESSING === 'true',
validateFinishReason: true,
strictFinishReasonValidation: process.env.RCC_STRICT_FINISH_REASON === 'true',
...config
};
// 强制启用关键验证
this.config.validateFinishReason = true;
this.logger = (0, logging_1.getLogger)(port);
this.compatibilityProcessor = (0, unified_compatibility_preprocessor_1.getUnifiedCompatibilityPreprocessor)(port, {
enabled: this.config.enabled,
debugMode: this.config.debugMode,
forceAllInputs: this.config.forceAllInputs,
performanceTracking: this.config.performanceTracking,
cacheResults: this.config.cacheResults,
validateFinishReason: this.config.validateFinishReason,
strictFinishReasonValidation: this.config.strictFinishReasonValidation
});
if (this.config.debugMode) {
this.logger.info('UnifiedPatchPreprocessor initialized (now using UnifiedCompatibilityPreprocessor)', {
config: this.config,
port
});
}
}
/**
* 统一预处理入口:处理输入阶段数据
*/
async preprocessInput(inputData, provider, model, requestId) {
// 强制输出到stderr以确保可见
process.stderr.write(`🚨🚨🚨 [CRITICAL-DEBUG] UnifiedPatchPreprocessor.preprocessInput CALLED! ${JSON.stringify({
requestId,
provider,
model,
hasData: !!inputData,
config: this.config
})}\n`);
const result = await this.compatibilityProcessor.preprocessInput(inputData, provider, model, requestId);
process.stderr.write(`🚨🚨🚨 [CRITICAL-DEBUG] UnifiedPatchPreprocessor.preprocessInput COMPLETED! ${JSON.stringify({
requestId,
hasResult: !!result,
resultType: typeof result
})}\n`);
return result;
}
/**
* 统一预处理入口:处理响应阶段数据
*/
async preprocessResponse(responseData, provider, model, requestId) {
return this.compatibilityProcessor.preprocessResponse(responseData, provider, model, requestId);
}
/**
* 统一预处理入口:处理流式数据块
*/
async preprocessStreaming(chunkData, provider, model, requestId) {
return this.compatibilityProcessor.preprocessStreaming(chunkData, provider, model, requestId);
}
/**
* 清理资源
*/
cleanup() {
this.compatibilityProcessor.cleanup();
}
/**
* 获取性能指标
*/
getPerformanceMetrics() {
return this.compatibilityProcessor.getPerformanceMetrics();
}
/**
* 向后兼容:滑动窗口工具检测
* @deprecated 现在由统一兼容性预处理器处理
*/
async slidingWindowToolDetection(data, context) {
console.warn('slidingWindowToolDetection is deprecated, using unified compatibility processor');
return { hasTools: false, toolCount: 0, patterns: [] };
}
/**
* 向后兼容:强制工具调用检测
* @deprecated 现在由统一兼容性预处理器处理
*/
async forceToolCallDetection(data, context) {
console.warn('forceToolCallDetection is deprecated, using unified compatibility processor');
return { hasTools: false, toolCount: 0 };
}
/**
* 向后兼容:ShuaiHong格式补丁
* @deprecated 现在由统一兼容性预处理器处理
*/
async applyShuaiHongFormatPatch(data, context) {
console.warn('applyShuaiHongFormatPatch is deprecated, using unified compatibility processor');
return data;
}
/**
* 向后兼容:LMStudio工具调用解析
* @deprecated 现在由统一兼容性预处理器处理
*/
parseLMStudioToolCalls(content, context) {
console.warn('parseLMStudioToolCalls is deprecated, using unified compatibility processor');
return [];
}
/**
* 向后兼容:强制finish reason覆盖
* @deprecated 现在由统一兼容性预处理器处理
*/
forceFinishReasonOverride(data, targetReason, context) {
console.warn('forceFinishReasonOverride is deprecated, using unified compatibility processor');
return data;
}
/**
* 向后兼容:验证finish reason
* @deprecated 现在由统一兼容性预处理器处理
*/
validateFinishReason(data, context) {
// 现在由统一兼容性预处理器处理,不需要额外操作
}
/**
* 向后兼容:检测异常响应
* @deprecated 现在由统一兼容性预处理器处理
*/
detectAbnormalResponse(data, context) {
console.warn('detectAbnormalResponse is deprecated, using unified compatibility processor');
return null;
}
/**
* 向后兼容:生成错误信息
* @deprecated 现在由统一兼容性预处理器处理
*/
generateErrorMessage(abnormalResponse, context) {
console.warn('generateErrorMessage is deprecated, using unified compatibility processor');
return 'Error handled by unified compatibility processor';
}
}
exports.UnifiedPatchPreprocessor = UnifiedPatchPreprocessor;
// 单例模式:全局统一预处理器实例
const preprocessorInstances = new Map();
/**
* 获取或创建统一预处理器实例
*/
function getUnifiedPatchPreprocessor(port, config) {
const key = port || 'default';
if (!preprocessorInstances.has(key)) {
preprocessorInstances.set(key, new UnifiedPatchPreprocessor(port, config));
}
return preprocessorInstances.get(key);
}
/**
* 创建新的统一预处理器实例
*/
function createUnifiedPatchPreprocessor(port, config) {
const key = port || 'default';
const instance = new UnifiedPatchPreprocessor(port, config);
preprocessorInstances.set(key, instance);
return instance;
}
/**
* 重置统一预处理器实例
*/
function resetUnifiedPatchPreprocessor(port) {
const key = port || 'default';
if (preprocessorInstances.has(key)) {
preprocessorInstances.get(key).cleanup();
preprocessorInstances.delete(key);
}
}
//# sourceMappingURL=unified-patch-preprocessor.js.map