@quantumai/quantum-cli-core
Version:
Quantum CLI Core - Multi-LLM Collaboration System
73 lines • 2.23 kB
JavaScript
/**
* @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