@kdump/code-cli-any-llm
Version:
> A unified gateway for the Gemini, opencode, crush, and Qwen Code AI CLIs
82 lines • 3.83 kB
JavaScript
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
;