route-claudecode
Version:
Advanced routing and transformation system for Claude Code outputs to multiple AI providers
79 lines • 2.82 kB
JavaScript
;
/**
* 简化的Finish Reason处理器 - 已弃用
* 项目所有者: Jason Zhang
*
* ⚠️ 此文件已被 src/transformers/response-converter.ts 替代
* 保留此文件仅为向后兼容性,建议使用新的转换器
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.mapFinishReason = mapFinishReason;
exports.mapStopReason = mapStopReason;
exports.getSupportedFinishReasons = getSupportedFinishReasons;
exports.getSupportedStopReasons = getSupportedStopReasons;
/**
* 基础的Finish Reason映射表
*/
const FINISH_REASON_MAPPING = {
// OpenAI -> Anthropic
'stop': 'end_turn',
'length': 'max_tokens',
'tool_calls': 'tool_use',
'function_call': 'tool_use',
'content_filter': 'stop_sequence',
};
/**
* 将OpenAI finish reason映射为Anthropic stop reason
* @deprecated 使用 response-converter.ts 中的 mapFinishReasonStrict 替代
*/
function mapFinishReason(finishReason, requestId, hasToolCall) {
console.warn('⚠️ mapFinishReason is deprecated, use response-converter.ts instead');
if (!finishReason) {
return 'end_turn';
}
const mappedReason = FINISH_REASON_MAPPING[finishReason];
if (!mappedReason) {
console.warn(`⚠️ Unknown finish reason '${finishReason}' encountered. Available: ${Object.keys(FINISH_REASON_MAPPING).join(', ')}`);
if (requestId) {
console.warn(` Request ID: ${requestId}`);
}
// 移除智能推断和fallback,直接抛出错误
throw new Error(`Unknown finish reason '${finishReason}' - no mapping available and fallback disabled. Use response-converter.ts for proper handling.`);
}
return mappedReason;
}
/**
* 将Anthropic stop reason映射为OpenAI finish reason
* @deprecated 使用 response-converter.ts 中的 mapStopReasonStrict 替代
*/
function mapStopReason(stopReason) {
console.warn('⚠️ mapStopReason is deprecated, use response-converter.ts instead');
if (!stopReason) {
return 'stop';
}
// 创建反向映射
const reverseMapping = {
'end_turn': 'stop',
'max_tokens': 'length',
'tool_use': 'tool_calls',
'stop_sequence': 'stop',
};
const mappedReason = reverseMapping[stopReason];
if (!mappedReason) {
throw new Error(`Unknown stop reason '${stopReason}'. Available: ${Object.keys(reverseMapping).join(', ')}. Use response-converter.ts for proper handling.`);
}
return mappedReason;
}
/**
* 获取所有支持的finish reasons
*/
function getSupportedFinishReasons() {
return Object.keys(FINISH_REASON_MAPPING);
}
/**
* 获取所有支持的stop reasons
*/
function getSupportedStopReasons() {
return Object.values(FINISH_REASON_MAPPING);
}
//# sourceMappingURL=finish-reason-handler.js.map