UNPKG

@quantumai/quantum-cli-core

Version:

Quantum CLI Core - Multi-LLM Collaboration System

73 lines 2.23 kB
/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */ export class QueryHistoryManager { pattern; constructor() { this.pattern = { queryComplexityDistribution: [], contextMetrics: { avgFilesPerQuery: 0, detectedEnvironments: [], }, sessionMetrics: { totalSessions: 0, avgSessionDuration: 0, firstSessionTime: Date.now(), }, toolUsage: { fileOperations: 0, shellCommands: 0, collaborationFeatures: 0, codeModification: 0, }, behaviorMetrics: { commandRepetition: 0, errorRate: 0, }, recentQueries: [], }; } getUserPattern() { return this.pattern; } recordQuery(query, complexity) { this.pattern.queryComplexityDistribution.push({ complexity, timestamp: Date.now(), }); this.pattern.recentQueries.push({ text: query, timestamp: Date.now(), complexity, }); // Keep only recent queries (last 50) if (this.pattern.recentQueries.length > 50) { this.pattern.recentQueries = this.pattern.recentQueries.slice(-50); } } updateSessionMetrics(duration) { this.pattern.sessionMetrics.totalSessions++; this.pattern.sessionMetrics.avgSessionDuration = (this.pattern.sessionMetrics.avgSessionDuration * (this.pattern.sessionMetrics.totalSessions - 1) + duration) / this.pattern.sessionMetrics.totalSessions; } recordToolUsage(tool) { switch (tool) { case 'read_file': case 'write_file': case 'edit_file': this.pattern.toolUsage.fileOperations++; break; case 'shell': this.pattern.toolUsage.shellCommands++; break; default: // Other tools break; } } } //# sourceMappingURL=query-history-manager.js.map