agentic-qe 1.0.4 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/qe-quality-analyzer.md +405 -0
- package/CHANGELOG.md +109 -0
- package/CONTRIBUTING.md +51 -0
- package/README.md +690 -134
- package/bin/aqe +90 -938
- package/dist/adapters/MemoryStoreAdapter.d.ts.map +1 -1
- package/dist/adapters/MemoryStoreAdapter.js +6 -0
- package/dist/adapters/MemoryStoreAdapter.js.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.d.ts +58 -3
- package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.js +316 -48
- package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.d.ts +48 -4
- package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.js +217 -10
- package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
- package/dist/agents/LearningAgent.d.ts +75 -0
- package/dist/agents/LearningAgent.d.ts.map +1 -0
- package/dist/agents/LearningAgent.js +177 -0
- package/dist/agents/LearningAgent.js.map +1 -0
- package/dist/agents/TestGeneratorAgent.d.ts +42 -2
- package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
- package/dist/agents/TestGeneratorAgent.js +232 -13
- package/dist/agents/TestGeneratorAgent.js.map +1 -1
- package/dist/cli/commands/improve/index.d.ts +70 -0
- package/dist/cli/commands/improve/index.d.ts.map +1 -0
- package/dist/cli/commands/improve/index.js +530 -0
- package/dist/cli/commands/improve/index.js.map +1 -0
- package/dist/cli/commands/init.d.ts +34 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +875 -42
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/learn/index.d.ts +68 -0
- package/dist/cli/commands/learn/index.d.ts.map +1 -0
- package/dist/cli/commands/learn/index.js +431 -0
- package/dist/cli/commands/learn/index.js.map +1 -0
- package/dist/cli/commands/patterns/index.d.ts +75 -0
- package/dist/cli/commands/patterns/index.d.ts.map +1 -0
- package/dist/cli/commands/patterns/index.js +502 -0
- package/dist/cli/commands/patterns/index.js.map +1 -0
- package/dist/cli/commands/routing/index.d.ts +95 -0
- package/dist/cli/commands/routing/index.d.ts.map +1 -0
- package/dist/cli/commands/routing/index.js +399 -0
- package/dist/cli/commands/routing/index.js.map +1 -0
- package/dist/cli/index.js +455 -8
- package/dist/cli/index.js.map +1 -1
- package/dist/core/memory/SwarmMemoryManager.d.ts +5 -0
- package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
- package/dist/core/memory/SwarmMemoryManager.js +7 -0
- package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
- package/dist/core/routing/AdaptiveModelRouter.d.ts +86 -0
- package/dist/core/routing/AdaptiveModelRouter.d.ts.map +1 -0
- package/dist/core/routing/AdaptiveModelRouter.js +264 -0
- package/dist/core/routing/AdaptiveModelRouter.js.map +1 -0
- package/dist/core/routing/ComplexityAnalyzer.d.ts +49 -0
- package/dist/core/routing/ComplexityAnalyzer.d.ts.map +1 -0
- package/dist/core/routing/ComplexityAnalyzer.js +182 -0
- package/dist/core/routing/ComplexityAnalyzer.js.map +1 -0
- package/dist/core/routing/CostTracker.d.ts +55 -0
- package/dist/core/routing/CostTracker.d.ts.map +1 -0
- package/dist/core/routing/CostTracker.js +210 -0
- package/dist/core/routing/CostTracker.js.map +1 -0
- package/dist/core/routing/FleetManagerIntegration.d.ts +68 -0
- package/dist/core/routing/FleetManagerIntegration.d.ts.map +1 -0
- package/dist/core/routing/FleetManagerIntegration.js +170 -0
- package/dist/core/routing/FleetManagerIntegration.js.map +1 -0
- package/dist/core/routing/ModelRules.d.ts +38 -0
- package/dist/core/routing/ModelRules.d.ts.map +1 -0
- package/dist/core/routing/ModelRules.js +170 -0
- package/dist/core/routing/ModelRules.js.map +1 -0
- package/dist/core/routing/QETask.d.ts +12 -0
- package/dist/core/routing/QETask.d.ts.map +1 -0
- package/dist/core/routing/QETask.js +21 -0
- package/dist/core/routing/QETask.js.map +1 -0
- package/dist/core/routing/index.d.ts +19 -0
- package/dist/core/routing/index.d.ts.map +1 -0
- package/dist/core/routing/index.js +50 -0
- package/dist/core/routing/index.js.map +1 -0
- package/dist/core/routing/types.d.ts +136 -0
- package/dist/core/routing/types.d.ts.map +1 -0
- package/dist/core/routing/types.js +28 -0
- package/dist/core/routing/types.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/learning/FlakyFixRecommendations.d.ts +40 -0
- package/dist/learning/FlakyFixRecommendations.d.ts.map +1 -0
- package/dist/learning/FlakyFixRecommendations.js +247 -0
- package/dist/learning/FlakyFixRecommendations.js.map +1 -0
- package/dist/learning/FlakyPredictionModel.d.ts +57 -0
- package/dist/learning/FlakyPredictionModel.d.ts.map +1 -0
- package/dist/learning/FlakyPredictionModel.js +289 -0
- package/dist/learning/FlakyPredictionModel.js.map +1 -0
- package/dist/learning/FlakyTestDetector.d.ts +46 -0
- package/dist/learning/FlakyTestDetector.d.ts.map +1 -0
- package/dist/learning/FlakyTestDetector.js +215 -0
- package/dist/learning/FlakyTestDetector.js.map +1 -0
- package/dist/learning/ImprovementLoop.d.ts +119 -0
- package/dist/learning/ImprovementLoop.d.ts.map +1 -0
- package/dist/learning/ImprovementLoop.js +353 -0
- package/dist/learning/ImprovementLoop.js.map +1 -0
- package/dist/learning/LearningEngine.d.ts +144 -0
- package/dist/learning/LearningEngine.d.ts.map +1 -0
- package/dist/learning/LearningEngine.js +531 -0
- package/dist/learning/LearningEngine.js.map +1 -0
- package/dist/learning/PerformanceTracker.d.ts +118 -0
- package/dist/learning/PerformanceTracker.d.ts.map +1 -0
- package/dist/learning/PerformanceTracker.js +376 -0
- package/dist/learning/PerformanceTracker.js.map +1 -0
- package/dist/learning/StatisticalAnalysis.d.ts +47 -0
- package/dist/learning/StatisticalAnalysis.d.ts.map +1 -0
- package/dist/learning/StatisticalAnalysis.js +170 -0
- package/dist/learning/StatisticalAnalysis.js.map +1 -0
- package/dist/learning/SwarmIntegration.d.ts +107 -0
- package/dist/learning/SwarmIntegration.d.ts.map +1 -0
- package/dist/learning/SwarmIntegration.js +191 -0
- package/dist/learning/SwarmIntegration.js.map +1 -0
- package/dist/learning/index.d.ts +10 -0
- package/dist/learning/index.d.ts.map +1 -0
- package/dist/learning/index.js +16 -0
- package/dist/learning/index.js.map +1 -0
- package/dist/learning/types.d.ts +288 -0
- package/dist/learning/types.d.ts.map +1 -0
- package/dist/learning/types.js +9 -0
- package/dist/learning/types.js.map +1 -0
- package/dist/mcp/handlers/phase2/Phase2Tools.d.ts +175 -0
- package/dist/mcp/handlers/phase2/Phase2Tools.d.ts.map +1 -0
- package/dist/mcp/handlers/phase2/Phase2Tools.js +693 -0
- package/dist/mcp/handlers/phase2/Phase2Tools.js.map +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +171 -9
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.d.ts +112 -0
- package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.d.ts.map +1 -0
- package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.js +341 -0
- package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.js.map +1 -0
- package/dist/mcp/streaming/StreamingMCPTool.d.ts +80 -0
- package/dist/mcp/streaming/StreamingMCPTool.d.ts.map +1 -0
- package/dist/mcp/streaming/StreamingMCPTool.js +276 -0
- package/dist/mcp/streaming/StreamingMCPTool.js.map +1 -0
- package/dist/mcp/streaming/TestExecuteStreamHandler.d.ts +73 -0
- package/dist/mcp/streaming/TestExecuteStreamHandler.d.ts.map +1 -0
- package/dist/mcp/streaming/TestExecuteStreamHandler.js +436 -0
- package/dist/mcp/streaming/TestExecuteStreamHandler.js.map +1 -0
- package/dist/mcp/streaming/index.d.ts +14 -0
- package/dist/mcp/streaming/index.d.ts.map +1 -0
- package/dist/mcp/streaming/index.js +30 -0
- package/dist/mcp/streaming/index.js.map +1 -0
- package/dist/mcp/streaming/types.d.ts +117 -0
- package/dist/mcp/streaming/types.d.ts.map +1 -0
- package/dist/mcp/streaming/types.js +88 -0
- package/dist/mcp/streaming/types.js.map +1 -0
- package/dist/mcp/tools.d.ts +18 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +123 -1
- package/dist/mcp/tools.js.map +1 -1
- package/dist/reasoning/CodeSignatureGenerator.d.ts +98 -0
- package/dist/reasoning/CodeSignatureGenerator.d.ts.map +1 -0
- package/dist/reasoning/CodeSignatureGenerator.js +427 -0
- package/dist/reasoning/CodeSignatureGenerator.js.map +1 -0
- package/dist/reasoning/PatternClassifier.d.ts +98 -0
- package/dist/reasoning/PatternClassifier.d.ts.map +1 -0
- package/dist/reasoning/PatternClassifier.js +345 -0
- package/dist/reasoning/PatternClassifier.js.map +1 -0
- package/dist/reasoning/PatternExtractor.d.ts +131 -0
- package/dist/reasoning/PatternExtractor.d.ts.map +1 -0
- package/dist/reasoning/PatternExtractor.js +539 -0
- package/dist/reasoning/PatternExtractor.js.map +1 -0
- package/dist/reasoning/PatternMemoryIntegration.d.ts +102 -0
- package/dist/reasoning/PatternMemoryIntegration.d.ts.map +1 -0
- package/dist/reasoning/PatternMemoryIntegration.js +336 -0
- package/dist/reasoning/PatternMemoryIntegration.js.map +1 -0
- package/dist/reasoning/QEReasoningBank.d.ts +121 -0
- package/dist/reasoning/QEReasoningBank.d.ts.map +1 -0
- package/dist/reasoning/QEReasoningBank.js +235 -0
- package/dist/reasoning/QEReasoningBank.js.map +1 -0
- package/dist/reasoning/TestTemplateCreator.d.ts +95 -0
- package/dist/reasoning/TestTemplateCreator.d.ts.map +1 -0
- package/dist/reasoning/TestTemplateCreator.js +535 -0
- package/dist/reasoning/TestTemplateCreator.js.map +1 -0
- package/dist/reasoning/index.d.ts +10 -0
- package/dist/reasoning/index.d.ts.map +1 -0
- package/dist/reasoning/index.js +31 -0
- package/dist/reasoning/index.js.map +1 -0
- package/dist/reasoning/types.d.ts +717 -0
- package/dist/reasoning/types.d.ts.map +1 -0
- package/dist/reasoning/types.js +57 -0
- package/dist/reasoning/types.js.map +1 -0
- package/dist/types/index.d.ts +20 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/pattern.types.d.ts +364 -0
- package/dist/types/pattern.types.d.ts.map +1 -0
- package/dist/types/pattern.types.js +60 -0
- package/dist/types/pattern.types.js.map +1 -0
- package/package.json +25 -3
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* FleetManager Integration for Multi-Model Router
|
|
4
|
+
* Integrates the AdaptiveModelRouter with FleetManager
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.RoutingEnabledFleetManager = void 0;
|
|
8
|
+
exports.createRoutingEnabledFleetManager = createRoutingEnabledFleetManager;
|
|
9
|
+
const AdaptiveModelRouter_1 = require("./AdaptiveModelRouter");
|
|
10
|
+
const QETask_1 = require("./QETask");
|
|
11
|
+
/**
|
|
12
|
+
* Extended FleetManager with routing capabilities
|
|
13
|
+
*/
|
|
14
|
+
class RoutingEnabledFleetManager {
|
|
15
|
+
constructor(fleetManager, memoryStore, eventBus, routerConfig) {
|
|
16
|
+
this.fleetManager = fleetManager;
|
|
17
|
+
this.memoryStore = memoryStore;
|
|
18
|
+
this.eventBus = eventBus;
|
|
19
|
+
this.router = new AdaptiveModelRouter_1.AdaptiveModelRouter(memoryStore, eventBus, routerConfig);
|
|
20
|
+
this.setupEventHandlers();
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Setup event handlers for router integration
|
|
24
|
+
*/
|
|
25
|
+
setupEventHandlers() {
|
|
26
|
+
// Listen for task submissions to perform model selection
|
|
27
|
+
this.eventBus.on('task:submitted', async (data) => {
|
|
28
|
+
await this.handleTaskSubmitted(data.task);
|
|
29
|
+
});
|
|
30
|
+
// Listen for task completions to track costs
|
|
31
|
+
this.eventBus.on('task:completed', async (data) => {
|
|
32
|
+
await this.handleTaskCompleted(data.task, data.result);
|
|
33
|
+
});
|
|
34
|
+
// Listen for model failures to trigger fallback
|
|
35
|
+
this.eventBus.on('model:failed', async (data) => {
|
|
36
|
+
await this.handleModelFailure(data.task, data.model, data.error);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Handle task submission - select optimal model
|
|
41
|
+
*/
|
|
42
|
+
async handleTaskSubmitted(task) {
|
|
43
|
+
try {
|
|
44
|
+
const qeTask = (0, QETask_1.taskToQETask)(task);
|
|
45
|
+
const selection = await this.router.selectModel(qeTask);
|
|
46
|
+
// Store model selection in task metadata
|
|
47
|
+
task.metadata = {
|
|
48
|
+
...task.metadata,
|
|
49
|
+
modelSelection: selection,
|
|
50
|
+
};
|
|
51
|
+
// Emit model selection event
|
|
52
|
+
this.eventBus.emit('router:model-assigned', {
|
|
53
|
+
taskId: task.getId(),
|
|
54
|
+
model: selection.model,
|
|
55
|
+
complexity: selection.complexity,
|
|
56
|
+
estimatedCost: selection.estimatedCost,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
console.error('Failed to select model for task:', error);
|
|
61
|
+
// Continue with default model
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Handle task completion - track actual costs
|
|
66
|
+
*/
|
|
67
|
+
async handleTaskCompleted(task, result) {
|
|
68
|
+
try {
|
|
69
|
+
const metadata = task.metadata;
|
|
70
|
+
if (!metadata || !metadata.modelSelection) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const selection = metadata.modelSelection;
|
|
74
|
+
const actualTokens = result.tokensUsed || this.estimateTokensFromResult(result);
|
|
75
|
+
// Track actual cost
|
|
76
|
+
await this.router.trackCost(selection.model, actualTokens);
|
|
77
|
+
// Calculate accuracy of cost estimation
|
|
78
|
+
const estimatedTokens = selection.estimatedCost / 0.00005; // Rough reverse calculation
|
|
79
|
+
const accuracy = actualTokens > 0 ? Math.abs(1 - estimatedTokens / actualTokens) : 0;
|
|
80
|
+
this.eventBus.emit('router:cost-accuracy', {
|
|
81
|
+
taskId: task.getId(),
|
|
82
|
+
model: selection.model,
|
|
83
|
+
estimatedTokens,
|
|
84
|
+
actualTokens,
|
|
85
|
+
accuracy,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
console.error('Failed to track task cost:', error);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Handle model failure - select fallback
|
|
94
|
+
*/
|
|
95
|
+
async handleModelFailure(task, failedModel, error) {
|
|
96
|
+
try {
|
|
97
|
+
const qeTask = (0, QETask_1.taskToQETask)(task);
|
|
98
|
+
const fallbackModel = this.router.getFallbackModel(failedModel, qeTask);
|
|
99
|
+
// Update task metadata with fallback model
|
|
100
|
+
task.metadata = {
|
|
101
|
+
...task.metadata,
|
|
102
|
+
fallbackModel,
|
|
103
|
+
originalModel: failedModel,
|
|
104
|
+
failureReason: error.message,
|
|
105
|
+
};
|
|
106
|
+
this.eventBus.emit('router:fallback-triggered', {
|
|
107
|
+
taskId: task.getId(),
|
|
108
|
+
failedModel,
|
|
109
|
+
fallbackModel,
|
|
110
|
+
error: error.message,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
console.error('Failed to handle model failure:', error);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Estimate tokens from result (fallback when not provided)
|
|
119
|
+
*/
|
|
120
|
+
estimateTokensFromResult(result) {
|
|
121
|
+
if (!result)
|
|
122
|
+
return 0;
|
|
123
|
+
const resultStr = JSON.stringify(result);
|
|
124
|
+
return Math.round(resultStr.length / 4); // Rough estimate
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Get router statistics
|
|
128
|
+
*/
|
|
129
|
+
async getRouterStats() {
|
|
130
|
+
return await this.router.getStats();
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Export cost dashboard
|
|
134
|
+
*/
|
|
135
|
+
async exportCostDashboard() {
|
|
136
|
+
return await this.router.exportCostDashboard();
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Enable or disable routing
|
|
140
|
+
*/
|
|
141
|
+
setRoutingEnabled(enabled) {
|
|
142
|
+
this.router.setEnabled(enabled);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Update router configuration
|
|
146
|
+
*/
|
|
147
|
+
updateRouterConfig(config) {
|
|
148
|
+
this.router.updateConfig(config);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Get underlying router instance
|
|
152
|
+
*/
|
|
153
|
+
getRouter() {
|
|
154
|
+
return this.router;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Get underlying fleet manager instance
|
|
158
|
+
*/
|
|
159
|
+
getFleetManager() {
|
|
160
|
+
return this.fleetManager;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
exports.RoutingEnabledFleetManager = RoutingEnabledFleetManager;
|
|
164
|
+
/**
|
|
165
|
+
* Factory function to create routing-enabled fleet manager
|
|
166
|
+
*/
|
|
167
|
+
function createRoutingEnabledFleetManager(fleetManager, memoryStore, eventBus, routerConfig) {
|
|
168
|
+
return new RoutingEnabledFleetManager(fleetManager, memoryStore, eventBus, routerConfig);
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=FleetManagerIntegration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FleetManagerIntegration.js","sourceRoot":"","sources":["../../../src/core/routing/FleetManagerIntegration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model Selection Rules
|
|
3
|
+
* Task-specific and complexity-based model selection rules
|
|
4
|
+
*/
|
|
5
|
+
import { AIModel, TaskComplexity, ModelCapability } from './types';
|
|
6
|
+
/**
|
|
7
|
+
* Model capabilities and pricing
|
|
8
|
+
*/
|
|
9
|
+
export declare const MODEL_CAPABILITIES: Record<AIModel, ModelCapability>;
|
|
10
|
+
/**
|
|
11
|
+
* Task-specific model selection rules by agent type and complexity
|
|
12
|
+
*/
|
|
13
|
+
export declare const MODEL_RULES: Record<string, Record<TaskComplexity, AIModel>>;
|
|
14
|
+
/**
|
|
15
|
+
* Fallback chain for each model (ordered by capability)
|
|
16
|
+
*/
|
|
17
|
+
export declare const FALLBACK_CHAINS: Record<AIModel, AIModel[]>;
|
|
18
|
+
/**
|
|
19
|
+
* Complexity detection keywords
|
|
20
|
+
*/
|
|
21
|
+
export declare const COMPLEXITY_KEYWORDS: {
|
|
22
|
+
simple: string[];
|
|
23
|
+
moderate: string[];
|
|
24
|
+
complex: string[];
|
|
25
|
+
critical: string[];
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Default router configuration
|
|
29
|
+
*/
|
|
30
|
+
export declare const DEFAULT_ROUTER_CONFIG: {
|
|
31
|
+
enabled: boolean;
|
|
32
|
+
defaultModel: AIModel;
|
|
33
|
+
enableCostTracking: boolean;
|
|
34
|
+
enableFallback: boolean;
|
|
35
|
+
maxRetries: number;
|
|
36
|
+
costThreshold: number;
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=ModelRules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelRules.d.ts","sourceRoot":"","sources":["../../../src/core/routing/ModelRules.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEnE;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,OAAO,EAAE,eAAe,CAiC/D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,CA2CvE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,CAqBtD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;CAqC/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;CAOjC,CAAC"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Model Selection Rules
|
|
4
|
+
* Task-specific and complexity-based model selection rules
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.DEFAULT_ROUTER_CONFIG = exports.COMPLEXITY_KEYWORDS = exports.FALLBACK_CHAINS = exports.MODEL_RULES = exports.MODEL_CAPABILITIES = void 0;
|
|
8
|
+
const types_1 = require("./types");
|
|
9
|
+
/**
|
|
10
|
+
* Model capabilities and pricing
|
|
11
|
+
*/
|
|
12
|
+
exports.MODEL_CAPABILITIES = {
|
|
13
|
+
[types_1.AIModel.GPT_3_5_TURBO]: {
|
|
14
|
+
model: types_1.AIModel.GPT_3_5_TURBO,
|
|
15
|
+
maxTokens: 4096,
|
|
16
|
+
costPerToken: 0.000002, // $0.002 per 1K tokens
|
|
17
|
+
strengths: ['Fast', 'Cheap', 'Good for simple tasks'],
|
|
18
|
+
weaknesses: ['Limited reasoning', 'Less accurate on complex tasks'],
|
|
19
|
+
rateLimitPerMin: 3500,
|
|
20
|
+
},
|
|
21
|
+
[types_1.AIModel.CLAUDE_HAIKU]: {
|
|
22
|
+
model: types_1.AIModel.CLAUDE_HAIKU,
|
|
23
|
+
maxTokens: 8192,
|
|
24
|
+
costPerToken: 0.000004, // $0.004 per 1K tokens
|
|
25
|
+
strengths: ['Balanced speed/quality', 'Good reasoning', 'Cost-effective'],
|
|
26
|
+
weaknesses: ['Not best for critical tasks'],
|
|
27
|
+
rateLimitPerMin: 2000,
|
|
28
|
+
},
|
|
29
|
+
[types_1.AIModel.GPT_4]: {
|
|
30
|
+
model: types_1.AIModel.GPT_4,
|
|
31
|
+
maxTokens: 8192,
|
|
32
|
+
costPerToken: 0.00003, // $0.03 per 1K tokens
|
|
33
|
+
strengths: ['Excellent reasoning', 'Complex problem solving'],
|
|
34
|
+
weaknesses: ['Expensive', 'Slower'],
|
|
35
|
+
rateLimitPerMin: 500,
|
|
36
|
+
},
|
|
37
|
+
[types_1.AIModel.CLAUDE_SONNET_4_5]: {
|
|
38
|
+
model: types_1.AIModel.CLAUDE_SONNET_4_5,
|
|
39
|
+
maxTokens: 16384,
|
|
40
|
+
costPerToken: 0.00005, // $0.05 per 1K tokens
|
|
41
|
+
strengths: ['Best reasoning', 'Critical tasks', 'Security analysis'],
|
|
42
|
+
weaknesses: ['Most expensive', 'Overkill for simple tasks'],
|
|
43
|
+
rateLimitPerMin: 200,
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Task-specific model selection rules by agent type and complexity
|
|
48
|
+
*/
|
|
49
|
+
exports.MODEL_RULES = {
|
|
50
|
+
'qe-test-generator': {
|
|
51
|
+
[types_1.TaskComplexity.SIMPLE]: types_1.AIModel.GPT_3_5_TURBO, // Unit tests, basic logic
|
|
52
|
+
[types_1.TaskComplexity.MODERATE]: types_1.AIModel.CLAUDE_HAIKU, // Integration tests
|
|
53
|
+
[types_1.TaskComplexity.COMPLEX]: types_1.AIModel.GPT_4, // Property-based, edge cases
|
|
54
|
+
[types_1.TaskComplexity.CRITICAL]: types_1.AIModel.CLAUDE_SONNET_4_5, // Security, performance
|
|
55
|
+
},
|
|
56
|
+
'qe-test-executor': {
|
|
57
|
+
[types_1.TaskComplexity.SIMPLE]: types_1.AIModel.GPT_3_5_TURBO,
|
|
58
|
+
[types_1.TaskComplexity.MODERATE]: types_1.AIModel.GPT_3_5_TURBO,
|
|
59
|
+
[types_1.TaskComplexity.COMPLEX]: types_1.AIModel.CLAUDE_HAIKU,
|
|
60
|
+
[types_1.TaskComplexity.CRITICAL]: types_1.AIModel.GPT_4,
|
|
61
|
+
},
|
|
62
|
+
'qe-coverage-analyzer': {
|
|
63
|
+
[types_1.TaskComplexity.SIMPLE]: types_1.AIModel.CLAUDE_HAIKU,
|
|
64
|
+
[types_1.TaskComplexity.MODERATE]: types_1.AIModel.CLAUDE_HAIKU,
|
|
65
|
+
[types_1.TaskComplexity.COMPLEX]: types_1.AIModel.GPT_4,
|
|
66
|
+
[types_1.TaskComplexity.CRITICAL]: types_1.AIModel.CLAUDE_SONNET_4_5,
|
|
67
|
+
},
|
|
68
|
+
'qe-quality-gate': {
|
|
69
|
+
[types_1.TaskComplexity.SIMPLE]: types_1.AIModel.CLAUDE_HAIKU,
|
|
70
|
+
[types_1.TaskComplexity.MODERATE]: types_1.AIModel.GPT_4,
|
|
71
|
+
[types_1.TaskComplexity.COMPLEX]: types_1.AIModel.GPT_4,
|
|
72
|
+
[types_1.TaskComplexity.CRITICAL]: types_1.AIModel.CLAUDE_SONNET_4_5,
|
|
73
|
+
},
|
|
74
|
+
'qe-performance-tester': {
|
|
75
|
+
[types_1.TaskComplexity.SIMPLE]: types_1.AIModel.CLAUDE_HAIKU,
|
|
76
|
+
[types_1.TaskComplexity.MODERATE]: types_1.AIModel.GPT_4,
|
|
77
|
+
[types_1.TaskComplexity.COMPLEX]: types_1.AIModel.GPT_4,
|
|
78
|
+
[types_1.TaskComplexity.CRITICAL]: types_1.AIModel.CLAUDE_SONNET_4_5,
|
|
79
|
+
},
|
|
80
|
+
'qe-security-scanner': {
|
|
81
|
+
[types_1.TaskComplexity.SIMPLE]: types_1.AIModel.GPT_4,
|
|
82
|
+
[types_1.TaskComplexity.MODERATE]: types_1.AIModel.GPT_4,
|
|
83
|
+
[types_1.TaskComplexity.COMPLEX]: types_1.AIModel.CLAUDE_SONNET_4_5,
|
|
84
|
+
[types_1.TaskComplexity.CRITICAL]: types_1.AIModel.CLAUDE_SONNET_4_5,
|
|
85
|
+
},
|
|
86
|
+
'default': {
|
|
87
|
+
[types_1.TaskComplexity.SIMPLE]: types_1.AIModel.GPT_3_5_TURBO,
|
|
88
|
+
[types_1.TaskComplexity.MODERATE]: types_1.AIModel.CLAUDE_HAIKU,
|
|
89
|
+
[types_1.TaskComplexity.COMPLEX]: types_1.AIModel.GPT_4,
|
|
90
|
+
[types_1.TaskComplexity.CRITICAL]: types_1.AIModel.CLAUDE_SONNET_4_5,
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Fallback chain for each model (ordered by capability)
|
|
95
|
+
*/
|
|
96
|
+
exports.FALLBACK_CHAINS = {
|
|
97
|
+
[types_1.AIModel.GPT_3_5_TURBO]: [
|
|
98
|
+
types_1.AIModel.CLAUDE_HAIKU,
|
|
99
|
+
types_1.AIModel.GPT_4,
|
|
100
|
+
types_1.AIModel.CLAUDE_SONNET_4_5,
|
|
101
|
+
],
|
|
102
|
+
[types_1.AIModel.CLAUDE_HAIKU]: [
|
|
103
|
+
types_1.AIModel.GPT_3_5_TURBO,
|
|
104
|
+
types_1.AIModel.GPT_4,
|
|
105
|
+
types_1.AIModel.CLAUDE_SONNET_4_5,
|
|
106
|
+
],
|
|
107
|
+
[types_1.AIModel.GPT_4]: [
|
|
108
|
+
types_1.AIModel.CLAUDE_SONNET_4_5,
|
|
109
|
+
types_1.AIModel.CLAUDE_HAIKU,
|
|
110
|
+
types_1.AIModel.GPT_3_5_TURBO,
|
|
111
|
+
],
|
|
112
|
+
[types_1.AIModel.CLAUDE_SONNET_4_5]: [
|
|
113
|
+
types_1.AIModel.GPT_4,
|
|
114
|
+
types_1.AIModel.CLAUDE_HAIKU,
|
|
115
|
+
types_1.AIModel.GPT_3_5_TURBO,
|
|
116
|
+
],
|
|
117
|
+
};
|
|
118
|
+
/**
|
|
119
|
+
* Complexity detection keywords
|
|
120
|
+
*/
|
|
121
|
+
exports.COMPLEXITY_KEYWORDS = {
|
|
122
|
+
[types_1.TaskComplexity.SIMPLE]: [
|
|
123
|
+
'unit test',
|
|
124
|
+
'basic',
|
|
125
|
+
'simple',
|
|
126
|
+
'getter',
|
|
127
|
+
'setter',
|
|
128
|
+
'validation',
|
|
129
|
+
'mock',
|
|
130
|
+
],
|
|
131
|
+
[types_1.TaskComplexity.MODERATE]: [
|
|
132
|
+
'integration',
|
|
133
|
+
'api',
|
|
134
|
+
'endpoint',
|
|
135
|
+
'database',
|
|
136
|
+
'middleware',
|
|
137
|
+
'component',
|
|
138
|
+
],
|
|
139
|
+
[types_1.TaskComplexity.COMPLEX]: [
|
|
140
|
+
'property-based',
|
|
141
|
+
'edge case',
|
|
142
|
+
'algorithm',
|
|
143
|
+
'concurrent',
|
|
144
|
+
'race condition',
|
|
145
|
+
'optimization',
|
|
146
|
+
'complex logic',
|
|
147
|
+
],
|
|
148
|
+
[types_1.TaskComplexity.CRITICAL]: [
|
|
149
|
+
'security',
|
|
150
|
+
'authentication',
|
|
151
|
+
'authorization',
|
|
152
|
+
'encryption',
|
|
153
|
+
'performance',
|
|
154
|
+
'memory leak',
|
|
155
|
+
'critical path',
|
|
156
|
+
'production',
|
|
157
|
+
],
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* Default router configuration
|
|
161
|
+
*/
|
|
162
|
+
exports.DEFAULT_ROUTER_CONFIG = {
|
|
163
|
+
enabled: false, // Feature flag - off by default
|
|
164
|
+
defaultModel: types_1.AIModel.CLAUDE_SONNET_4_5,
|
|
165
|
+
enableCostTracking: true,
|
|
166
|
+
enableFallback: true,
|
|
167
|
+
maxRetries: 3,
|
|
168
|
+
costThreshold: 0.50, // Max $0.50 per task
|
|
169
|
+
};
|
|
170
|
+
//# sourceMappingURL=ModelRules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelRules.js","sourceRoot":"","sources":["../../../src/core/routing/ModelRules.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* QETask Type Definition
|
|
3
|
+
* Bridge between Task and ModelRouter for model selection
|
|
4
|
+
*/
|
|
5
|
+
import { Task } from '../Task';
|
|
6
|
+
import { QETask as QETaskType } from './types';
|
|
7
|
+
export type QETask = QETaskType;
|
|
8
|
+
/**
|
|
9
|
+
* Convert Task to QETask for router compatibility
|
|
10
|
+
*/
|
|
11
|
+
export declare function taskToQETask(task: Task): QETask;
|
|
12
|
+
//# sourceMappingURL=QETask.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QETask.d.ts","sourceRoot":"","sources":["../../../src/core/routing/QETask.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AAG/C,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC;AAEhC;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAS/C"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* QETask Type Definition
|
|
4
|
+
* Bridge between Task and ModelRouter for model selection
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.taskToQETask = taskToQETask;
|
|
8
|
+
/**
|
|
9
|
+
* Convert Task to QETask for router compatibility
|
|
10
|
+
*/
|
|
11
|
+
function taskToQETask(task) {
|
|
12
|
+
return {
|
|
13
|
+
id: task.getId(),
|
|
14
|
+
type: task.getType(),
|
|
15
|
+
description: task.getName(),
|
|
16
|
+
data: task.getData(),
|
|
17
|
+
priority: 1, // Default priority
|
|
18
|
+
metadata: {},
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=QETask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QETask.js","sourceRoot":"","sources":["../../../src/core/routing/QETask.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAWH,oCASC;AAZD;;GAEG;AACH,SAAgB,YAAY,CAAC,IAAU;IACrC,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE;QAChB,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;QACpB,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE;QAC3B,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;QACpB,QAAQ,EAAE,CAAC,EAAE,mBAAmB;QAChC,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-Model Router Module
|
|
3
|
+
* Export all routing functionality
|
|
4
|
+
*/
|
|
5
|
+
export * from './types';
|
|
6
|
+
export * from './ModelRules';
|
|
7
|
+
export * from './ComplexityAnalyzer';
|
|
8
|
+
export * from './CostTracker';
|
|
9
|
+
export * from './AdaptiveModelRouter';
|
|
10
|
+
export * from './QETask';
|
|
11
|
+
export * from './FleetManagerIntegration';
|
|
12
|
+
export { AIModel, TaskComplexity, ModelSelection, RouterConfig, RouterStats, ModelRouter, ModelCapability, ModelCost, TaskAnalysis, } from './types';
|
|
13
|
+
export { DEFAULT_ROUTER_CONFIG, MODEL_CAPABILITIES, MODEL_RULES, FALLBACK_CHAINS, COMPLEXITY_KEYWORDS, } from './ModelRules';
|
|
14
|
+
export { AdaptiveModelRouter } from './AdaptiveModelRouter';
|
|
15
|
+
export { ComplexityAnalyzer } from './ComplexityAnalyzer';
|
|
16
|
+
export { CostTracker } from './CostTracker';
|
|
17
|
+
export { QETask, taskToQETask } from './QETask';
|
|
18
|
+
export { RoutingEnabledFleetManager, createRoutingEnabledFleetManager, } from './FleetManagerIntegration';
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/routing/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,UAAU,CAAC;AACzB,cAAc,2BAA2B,CAAC;AAG1C,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,EACd,YAAY,EACZ,WAAW,EACX,WAAW,EACX,eAAe,EACf,SAAS,EACT,YAAY,GACb,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Multi-Model Router Module
|
|
4
|
+
* Export all routing functionality
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
18
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.createRoutingEnabledFleetManager = exports.RoutingEnabledFleetManager = exports.taskToQETask = exports.CostTracker = exports.ComplexityAnalyzer = exports.AdaptiveModelRouter = exports.COMPLEXITY_KEYWORDS = exports.FALLBACK_CHAINS = exports.MODEL_RULES = exports.MODEL_CAPABILITIES = exports.DEFAULT_ROUTER_CONFIG = exports.TaskComplexity = exports.AIModel = void 0;
|
|
22
|
+
__exportStar(require("./types"), exports);
|
|
23
|
+
__exportStar(require("./ModelRules"), exports);
|
|
24
|
+
__exportStar(require("./ComplexityAnalyzer"), exports);
|
|
25
|
+
__exportStar(require("./CostTracker"), exports);
|
|
26
|
+
__exportStar(require("./AdaptiveModelRouter"), exports);
|
|
27
|
+
__exportStar(require("./QETask"), exports);
|
|
28
|
+
__exportStar(require("./FleetManagerIntegration"), exports);
|
|
29
|
+
// Re-export commonly used types
|
|
30
|
+
var types_1 = require("./types");
|
|
31
|
+
Object.defineProperty(exports, "AIModel", { enumerable: true, get: function () { return types_1.AIModel; } });
|
|
32
|
+
Object.defineProperty(exports, "TaskComplexity", { enumerable: true, get: function () { return types_1.TaskComplexity; } });
|
|
33
|
+
var ModelRules_1 = require("./ModelRules");
|
|
34
|
+
Object.defineProperty(exports, "DEFAULT_ROUTER_CONFIG", { enumerable: true, get: function () { return ModelRules_1.DEFAULT_ROUTER_CONFIG; } });
|
|
35
|
+
Object.defineProperty(exports, "MODEL_CAPABILITIES", { enumerable: true, get: function () { return ModelRules_1.MODEL_CAPABILITIES; } });
|
|
36
|
+
Object.defineProperty(exports, "MODEL_RULES", { enumerable: true, get: function () { return ModelRules_1.MODEL_RULES; } });
|
|
37
|
+
Object.defineProperty(exports, "FALLBACK_CHAINS", { enumerable: true, get: function () { return ModelRules_1.FALLBACK_CHAINS; } });
|
|
38
|
+
Object.defineProperty(exports, "COMPLEXITY_KEYWORDS", { enumerable: true, get: function () { return ModelRules_1.COMPLEXITY_KEYWORDS; } });
|
|
39
|
+
var AdaptiveModelRouter_1 = require("./AdaptiveModelRouter");
|
|
40
|
+
Object.defineProperty(exports, "AdaptiveModelRouter", { enumerable: true, get: function () { return AdaptiveModelRouter_1.AdaptiveModelRouter; } });
|
|
41
|
+
var ComplexityAnalyzer_1 = require("./ComplexityAnalyzer");
|
|
42
|
+
Object.defineProperty(exports, "ComplexityAnalyzer", { enumerable: true, get: function () { return ComplexityAnalyzer_1.ComplexityAnalyzer; } });
|
|
43
|
+
var CostTracker_1 = require("./CostTracker");
|
|
44
|
+
Object.defineProperty(exports, "CostTracker", { enumerable: true, get: function () { return CostTracker_1.CostTracker; } });
|
|
45
|
+
var QETask_1 = require("./QETask");
|
|
46
|
+
Object.defineProperty(exports, "taskToQETask", { enumerable: true, get: function () { return QETask_1.taskToQETask; } });
|
|
47
|
+
var FleetManagerIntegration_1 = require("./FleetManagerIntegration");
|
|
48
|
+
Object.defineProperty(exports, "RoutingEnabledFleetManager", { enumerable: true, get: function () { return FleetManagerIntegration_1.RoutingEnabledFleetManager; } });
|
|
49
|
+
Object.defineProperty(exports, "createRoutingEnabledFleetManager", { enumerable: true, get: function () { return FleetManagerIntegration_1.createRoutingEnabledFleetManager; } });
|
|
50
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/routing/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,0CAAwB;AACxB,+CAA6B;AAC7B,uDAAqC;AACrC,gDAA8B;AAC9B,wDAAsC;AACtC,2CAAyB;AACzB,4DAA0C;AAE1C,gCAAgC;AAChC,iCAUiB;AATf,gGAAA,OAAO,OAAA;AACP,uGAAA,cAAc,OAAA;AAUhB,2CAMsB;AALpB,mHAAA,qBAAqB,OAAA;AACrB,gHAAA,kBAAkB,OAAA;AAClB,yGAAA,WAAW,OAAA;AACX,6GAAA,eAAe,OAAA;AACf,iHAAA,mBAAmB,OAAA;AAGrB,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAC5B,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,mCAAgD;AAA/B,sGAAA,YAAY,OAAA;AAC7B,qEAGmC;AAFjC,qIAAA,0BAA0B,OAAA;AAC1B,2IAAA,gCAAgC,OAAA"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-Model Router Types
|
|
3
|
+
* Core interfaces and types for the adaptive model routing system
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* QE Task interface for routing
|
|
7
|
+
*/
|
|
8
|
+
export interface QETask {
|
|
9
|
+
id: string;
|
|
10
|
+
type: string;
|
|
11
|
+
description?: string;
|
|
12
|
+
data: any;
|
|
13
|
+
priority: number;
|
|
14
|
+
metadata?: Record<string, any>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Supported AI models with their capabilities and costs
|
|
18
|
+
*/
|
|
19
|
+
export declare enum AIModel {
|
|
20
|
+
GPT_4 = "gpt-4",
|
|
21
|
+
GPT_3_5_TURBO = "gpt-3.5-turbo",
|
|
22
|
+
CLAUDE_SONNET_4_5 = "claude-sonnet-4.5",
|
|
23
|
+
CLAUDE_HAIKU = "claude-haiku"
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Task complexity levels for model selection
|
|
27
|
+
*/
|
|
28
|
+
export declare enum TaskComplexity {
|
|
29
|
+
SIMPLE = "simple",// Basic logic, unit tests
|
|
30
|
+
MODERATE = "moderate",// Integration tests, standard patterns
|
|
31
|
+
COMPLEX = "complex",// Property-based, edge cases, algorithm design
|
|
32
|
+
CRITICAL = "critical"
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Model selection result with reasoning
|
|
36
|
+
*/
|
|
37
|
+
export interface ModelSelection {
|
|
38
|
+
model: AIModel;
|
|
39
|
+
complexity: TaskComplexity;
|
|
40
|
+
reasoning: string;
|
|
41
|
+
estimatedCost: number;
|
|
42
|
+
fallbackModels: AIModel[];
|
|
43
|
+
confidence: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Cost tracking per model
|
|
47
|
+
*/
|
|
48
|
+
export interface ModelCost {
|
|
49
|
+
modelId: AIModel;
|
|
50
|
+
tokensUsed: number;
|
|
51
|
+
estimatedCost: number;
|
|
52
|
+
requestCount: number;
|
|
53
|
+
avgTokensPerRequest: number;
|
|
54
|
+
timestamp: number;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Router configuration
|
|
58
|
+
*/
|
|
59
|
+
export interface RouterConfig {
|
|
60
|
+
enabled: boolean;
|
|
61
|
+
defaultModel: AIModel;
|
|
62
|
+
enableCostTracking: boolean;
|
|
63
|
+
enableFallback: boolean;
|
|
64
|
+
maxRetries: number;
|
|
65
|
+
costThreshold: number;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Model capability definition
|
|
69
|
+
*/
|
|
70
|
+
export interface ModelCapability {
|
|
71
|
+
model: AIModel;
|
|
72
|
+
maxTokens: number;
|
|
73
|
+
costPerToken: number;
|
|
74
|
+
strengths: string[];
|
|
75
|
+
weaknesses: string[];
|
|
76
|
+
rateLimitPerMin: number;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Router statistics
|
|
80
|
+
*/
|
|
81
|
+
export interface RouterStats {
|
|
82
|
+
totalRequests: number;
|
|
83
|
+
totalCost: number;
|
|
84
|
+
costSavings: number;
|
|
85
|
+
modelDistribution: Record<AIModel, number>;
|
|
86
|
+
avgCostPerTask: number;
|
|
87
|
+
avgCostPerTest: number;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Model selection strategy interface
|
|
91
|
+
*/
|
|
92
|
+
export interface ModelSelectionStrategy {
|
|
93
|
+
selectModel(task: QETask, complexity: TaskComplexity): AIModel;
|
|
94
|
+
getName(): string;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Core ModelRouter interface
|
|
98
|
+
*/
|
|
99
|
+
export interface ModelRouter {
|
|
100
|
+
/**
|
|
101
|
+
* Select the optimal model for a given task
|
|
102
|
+
*/
|
|
103
|
+
selectModel(task: QETask): Promise<ModelSelection>;
|
|
104
|
+
/**
|
|
105
|
+
* Track cost for a model usage
|
|
106
|
+
*/
|
|
107
|
+
trackCost(modelId: AIModel, tokens: number): Promise<void>;
|
|
108
|
+
/**
|
|
109
|
+
* Get fallback model when primary fails
|
|
110
|
+
*/
|
|
111
|
+
getFallbackModel(failedModel: AIModel, task: QETask): AIModel;
|
|
112
|
+
/**
|
|
113
|
+
* Get router statistics
|
|
114
|
+
*/
|
|
115
|
+
getStats(): Promise<RouterStats>;
|
|
116
|
+
/**
|
|
117
|
+
* Export cost dashboard data
|
|
118
|
+
*/
|
|
119
|
+
exportCostDashboard(): Promise<any>;
|
|
120
|
+
/**
|
|
121
|
+
* Analyze task complexity
|
|
122
|
+
*/
|
|
123
|
+
analyzeComplexity(task: QETask): Promise<TaskComplexity>;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Task analysis result
|
|
127
|
+
*/
|
|
128
|
+
export interface TaskAnalysis {
|
|
129
|
+
complexity: TaskComplexity;
|
|
130
|
+
estimatedTokens: number;
|
|
131
|
+
requiresReasoning: boolean;
|
|
132
|
+
requiresSecurity: boolean;
|
|
133
|
+
requiresPerformance: boolean;
|
|
134
|
+
confidence: number;
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/routing/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,GAAG,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,oBAAY,OAAO;IACjB,KAAK,UAAU;IACf,aAAa,kBAAkB;IAC/B,iBAAiB,sBAAsB;IACvC,YAAY,iBAAiB;CAC9B;AAED;;GAEG;AACH,oBAAY,cAAc;IACxB,MAAM,WAAW,CAAQ,0BAA0B;IACnD,QAAQ,aAAa,CAAI,uCAAuC;IAChE,OAAO,YAAY,CAAM,+CAA+C;IACxE,QAAQ,aAAa;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,cAAc,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3C,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC;IAC/D,OAAO,IAAI,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEnD;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3D;;OAEG;IACH,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAE9D;;OAEG;IACH,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IAEjC;;OAEG;IACH,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAEpC;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CAC1D;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,cAAc,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB"}
|