UNPKG

@kdump/code-cli-any-llm

Version:

> A unified gateway for the Gemini, opencode, crush, and Qwen Code AI CLIs

82 lines 3.83 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.EnhancedRequestTransformer = void 0; const common_1 = require("@nestjs/common"); const request_transformer_1 = require("./request.transformer"); const ToolFormatter_1 = require("./enhanced/ToolFormatter"); const ZhipuOptimizer_1 = require("../utils/zhipu/ZhipuOptimizer"); const ToolFormatterAdapter_1 = require("./enhanced/ToolFormatterAdapter"); let EnhancedRequestTransformer = class EnhancedRequestTransformer extends request_transformer_1.RequestTransformer { zhipuOptimizer; toolFormatterAdapter; processingStats = { doubleEscapeDetections: 0, doubleEscapeCorrections: 0, typeCoercions: 0, failedParsings: 0, averageProcessingTime: 0, totalRequestsProcessed: 0, }; optimizationReports = []; constructor(zhipuOptimizer, toolFormatterAdapter, toolFormatter) { super(toolFormatter); this.zhipuOptimizer = zhipuOptimizer; this.toolFormatterAdapter = toolFormatterAdapter; } isZhipuModel(model) { return this.zhipuOptimizer.isZhipuModel(model); } transformRequest(geminiRequest, model) { const startTime = Date.now(); try { const baseRequest = super.transformRequest(geminiRequest, model); if (this.isZhipuModel(model)) { const optimized = this.zhipuOptimizer.optimizeRequest(baseRequest, model); if (optimized.tools && Array.isArray(optimized.tools)) { const toolFormat = this.zhipuOptimizer.getRecommendedToolFormat(model); optimized.tools = optimized.tools.map((tool) => this.toolFormatterAdapter.formatTool(tool, toolFormat)); } this.updateStats(startTime); return optimized; } this.updateStats(startTime); return baseRequest; } catch (error) { this.processingStats.failedParsings++; throw error; } } getProcessingStats() { return { ...this.processingStats }; } getOptimizationReport() { return [...this.optimizationReports]; } updateStats(startTime) { const processingTime = Date.now() - startTime; this.processingStats.totalRequestsProcessed++; const totalTime = this.processingStats.averageProcessingTime * (this.processingStats.totalRequestsProcessed - 1) + processingTime; this.processingStats.averageProcessingTime = totalTime / this.processingStats.totalRequestsProcessed; } }; exports.EnhancedRequestTransformer = EnhancedRequestTransformer; exports.EnhancedRequestTransformer = EnhancedRequestTransformer = __decorate([ (0, common_1.Injectable)(), __metadata("design:paramtypes", [ZhipuOptimizer_1.ZhipuOptimizer, ToolFormatterAdapter_1.ToolFormatterAdapter, ToolFormatter_1.ToolFormatter]) ], EnhancedRequestTransformer); //# sourceMappingURL=enhanced-request.transformer.js.map