route-claudecode
Version:
Advanced routing and transformation system for Claude Code outputs to multiple AI providers
61 lines • 2.03 kB
JavaScript
;
/**
* Universal Input Processor
* 统一输入处理器,处理各种格式的输入请求
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.UniversalInputProcessor = void 0;
exports.createUniversalInputProcessor = createUniversalInputProcessor;
const logger_1 = require("@/utils/logger");
class UniversalInputProcessor {
port;
constructor(port) {
this.port = port;
}
/**
* 处理输入请求
*/
async process(rawRequest) {
try {
// 如果已经是BaseRequest格式,直接返回
if (this.isBaseRequest(rawRequest)) {
return rawRequest;
}
// 转换为BaseRequest格式
const baseRequest = {
model: rawRequest.model || 'claude-3-5-sonnet-20241022',
messages: rawRequest.messages || [],
max_tokens: rawRequest.max_tokens || 131072,
temperature: rawRequest.temperature,
stream: rawRequest.stream || false,
system: rawRequest.system,
tools: rawRequest.tools,
metadata: {
...rawRequest.metadata,
originalModel: rawRequest.model
}
};
return baseRequest;
}
catch (error) {
logger_1.logger.error('Universal input processing failed', {
error: error instanceof Error ? error.message : String(error)
});
throw error;
}
}
/**
* 检查是否为BaseRequest格式
*/
isBaseRequest(request) {
return request &&
typeof request === 'object' &&
typeof request.model === 'string' &&
Array.isArray(request.messages);
}
}
exports.UniversalInputProcessor = UniversalInputProcessor;
function createUniversalInputProcessor(port) {
return new UniversalInputProcessor(port);
}
//# sourceMappingURL=universal-input-processor.js.map