agentic-qe 1.0.4 → 1.0.5

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.
Files changed (74) hide show
  1. package/README.md +58 -9
  2. package/dist/cli/commands/init.d.ts +1 -0
  3. package/dist/cli/commands/init.d.ts.map +1 -1
  4. package/dist/cli/commands/init.js +219 -3
  5. package/dist/cli/commands/init.js.map +1 -1
  6. package/dist/cli/commands/routing/index.d.ts +95 -0
  7. package/dist/cli/commands/routing/index.d.ts.map +1 -0
  8. package/dist/cli/commands/routing/index.js +399 -0
  9. package/dist/cli/commands/routing/index.js.map +1 -0
  10. package/dist/cli/index.js +88 -0
  11. package/dist/cli/index.js.map +1 -1
  12. package/dist/core/routing/AdaptiveModelRouter.d.ts +86 -0
  13. package/dist/core/routing/AdaptiveModelRouter.d.ts.map +1 -0
  14. package/dist/core/routing/AdaptiveModelRouter.js +264 -0
  15. package/dist/core/routing/AdaptiveModelRouter.js.map +1 -0
  16. package/dist/core/routing/ComplexityAnalyzer.d.ts +49 -0
  17. package/dist/core/routing/ComplexityAnalyzer.d.ts.map +1 -0
  18. package/dist/core/routing/ComplexityAnalyzer.js +182 -0
  19. package/dist/core/routing/ComplexityAnalyzer.js.map +1 -0
  20. package/dist/core/routing/CostTracker.d.ts +55 -0
  21. package/dist/core/routing/CostTracker.d.ts.map +1 -0
  22. package/dist/core/routing/CostTracker.js +210 -0
  23. package/dist/core/routing/CostTracker.js.map +1 -0
  24. package/dist/core/routing/FleetManagerIntegration.d.ts +68 -0
  25. package/dist/core/routing/FleetManagerIntegration.d.ts.map +1 -0
  26. package/dist/core/routing/FleetManagerIntegration.js +170 -0
  27. package/dist/core/routing/FleetManagerIntegration.js.map +1 -0
  28. package/dist/core/routing/ModelRules.d.ts +38 -0
  29. package/dist/core/routing/ModelRules.d.ts.map +1 -0
  30. package/dist/core/routing/ModelRules.js +170 -0
  31. package/dist/core/routing/ModelRules.js.map +1 -0
  32. package/dist/core/routing/QETask.d.ts +12 -0
  33. package/dist/core/routing/QETask.d.ts.map +1 -0
  34. package/dist/core/routing/QETask.js +21 -0
  35. package/dist/core/routing/QETask.js.map +1 -0
  36. package/dist/core/routing/index.d.ts +19 -0
  37. package/dist/core/routing/index.d.ts.map +1 -0
  38. package/dist/core/routing/index.js +50 -0
  39. package/dist/core/routing/index.js.map +1 -0
  40. package/dist/core/routing/types.d.ts +136 -0
  41. package/dist/core/routing/types.d.ts.map +1 -0
  42. package/dist/core/routing/types.js +28 -0
  43. package/dist/core/routing/types.js.map +1 -0
  44. package/dist/mcp/server.d.ts.map +1 -1
  45. package/dist/mcp/server.js +77 -9
  46. package/dist/mcp/server.js.map +1 -1
  47. package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.d.ts +112 -0
  48. package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.d.ts.map +1 -0
  49. package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.js +341 -0
  50. package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.js.map +1 -0
  51. package/dist/mcp/streaming/StreamingMCPTool.d.ts +80 -0
  52. package/dist/mcp/streaming/StreamingMCPTool.d.ts.map +1 -0
  53. package/dist/mcp/streaming/StreamingMCPTool.js +276 -0
  54. package/dist/mcp/streaming/StreamingMCPTool.js.map +1 -0
  55. package/dist/mcp/streaming/TestExecuteStreamHandler.d.ts +73 -0
  56. package/dist/mcp/streaming/TestExecuteStreamHandler.d.ts.map +1 -0
  57. package/dist/mcp/streaming/TestExecuteStreamHandler.js +436 -0
  58. package/dist/mcp/streaming/TestExecuteStreamHandler.js.map +1 -0
  59. package/dist/mcp/streaming/index.d.ts +14 -0
  60. package/dist/mcp/streaming/index.d.ts.map +1 -0
  61. package/dist/mcp/streaming/index.js +30 -0
  62. package/dist/mcp/streaming/index.js.map +1 -0
  63. package/dist/mcp/streaming/types.d.ts +117 -0
  64. package/dist/mcp/streaming/types.d.ts.map +1 -0
  65. package/dist/mcp/streaming/types.js +88 -0
  66. package/dist/mcp/streaming/types.js.map +1 -0
  67. package/dist/mcp/tools.d.ts +3 -1
  68. package/dist/mcp/tools.d.ts.map +1 -1
  69. package/dist/mcp/tools.js +107 -1
  70. package/dist/mcp/tools.js.map +1 -1
  71. package/dist/types/index.d.ts +16 -1
  72. package/dist/types/index.d.ts.map +1 -1
  73. package/dist/types/index.js.map +1 -1
  74. package/package.json +2 -2
@@ -0,0 +1,210 @@
1
+ "use strict";
2
+ /**
3
+ * Cost Tracker
4
+ * Tracks model usage costs and provides analytics
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.CostTracker = void 0;
8
+ const types_1 = require("./types");
9
+ const ModelRules_1 = require("./ModelRules");
10
+ class CostTracker {
11
+ constructor(memoryStore, eventBus) {
12
+ this.memoryStore = memoryStore;
13
+ this.eventBus = eventBus;
14
+ this.costs = new Map();
15
+ this.sessionStartTime = Date.now();
16
+ this.initializeCosts();
17
+ }
18
+ /**
19
+ * Initialize cost tracking for all models
20
+ */
21
+ initializeCosts() {
22
+ Object.values(types_1.AIModel).forEach((model) => {
23
+ this.costs.set(model, {
24
+ modelId: model,
25
+ tokensUsed: 0,
26
+ estimatedCost: 0,
27
+ requestCount: 0,
28
+ avgTokensPerRequest: 0,
29
+ timestamp: Date.now(),
30
+ });
31
+ });
32
+ }
33
+ /**
34
+ * Track cost for a model usage
35
+ */
36
+ async trackCost(modelId, tokens) {
37
+ const cost = this.costs.get(modelId);
38
+ if (!cost) {
39
+ throw new Error(`Unknown model: ${modelId}`);
40
+ }
41
+ const capability = ModelRules_1.MODEL_CAPABILITIES[modelId];
42
+ const estimatedCost = tokens * capability.costPerToken;
43
+ // Update local cost tracking
44
+ cost.tokensUsed += tokens;
45
+ cost.estimatedCost += estimatedCost;
46
+ cost.requestCount += 1;
47
+ cost.avgTokensPerRequest = cost.tokensUsed / cost.requestCount;
48
+ cost.timestamp = Date.now();
49
+ this.costs.set(modelId, cost);
50
+ // Persist to SwarmMemoryManager
51
+ await this.persistCosts();
52
+ // Emit cost tracking event
53
+ this.eventBus.emit('router:cost-tracked', {
54
+ model: modelId,
55
+ tokens,
56
+ cost: estimatedCost,
57
+ totalCost: cost.estimatedCost,
58
+ });
59
+ }
60
+ /**
61
+ * Persist costs to SwarmMemoryManager
62
+ */
63
+ async persistCosts() {
64
+ const costsArray = Array.from(this.costs.values());
65
+ await this.memoryStore.store('routing/costs', costsArray, {
66
+ partition: 'coordination',
67
+ ttl: 86400, // 24 hours
68
+ });
69
+ }
70
+ /**
71
+ * Load costs from SwarmMemoryManager
72
+ */
73
+ async loadCosts() {
74
+ try {
75
+ const stored = await this.memoryStore.retrieve('routing/costs', {
76
+ partition: 'coordination',
77
+ });
78
+ if (stored && Array.isArray(stored)) {
79
+ stored.forEach((cost) => {
80
+ this.costs.set(cost.modelId, cost);
81
+ });
82
+ }
83
+ }
84
+ catch (error) {
85
+ // No stored costs, use initialized values
86
+ }
87
+ }
88
+ /**
89
+ * Get router statistics
90
+ */
91
+ async getStats() {
92
+ const costsArray = Array.from(this.costs.values());
93
+ const totalRequests = costsArray.reduce((sum, c) => sum + c.requestCount, 0);
94
+ const totalCost = costsArray.reduce((sum, c) => sum + c.estimatedCost, 0);
95
+ // Calculate cost savings vs single model (Claude Sonnet 4.5)
96
+ const baselineModel = ModelRules_1.MODEL_CAPABILITIES[types_1.AIModel.CLAUDE_SONNET_4_5];
97
+ const totalTokens = costsArray.reduce((sum, c) => sum + c.tokensUsed, 0);
98
+ const baselineCost = totalTokens * baselineModel.costPerToken;
99
+ const costSavings = baselineCost - totalCost;
100
+ // Model distribution
101
+ const modelDistribution = {};
102
+ Object.values(types_1.AIModel).forEach((model) => {
103
+ const cost = this.costs.get(model);
104
+ modelDistribution[model] = cost?.requestCount || 0;
105
+ });
106
+ // Average costs
107
+ const avgCostPerTask = totalRequests > 0 ? totalCost / totalRequests : 0;
108
+ const avgCostPerTest = await this.calculateAvgCostPerTest();
109
+ return {
110
+ totalRequests,
111
+ totalCost,
112
+ costSavings,
113
+ modelDistribution,
114
+ avgCostPerTask,
115
+ avgCostPerTest,
116
+ };
117
+ }
118
+ /**
119
+ * Calculate average cost per test generated
120
+ */
121
+ async calculateAvgCostPerTest() {
122
+ try {
123
+ // Get test count from memory
124
+ const testMetrics = await this.memoryStore.retrieve('aqe/test-metrics', {
125
+ partition: 'coordination',
126
+ });
127
+ if (testMetrics && typeof testMetrics === 'object' && 'totalTests' in testMetrics) {
128
+ const totalTests = testMetrics.totalTests;
129
+ if (totalTests > 0) {
130
+ const stats = await this.getStats();
131
+ return stats.totalCost / totalTests;
132
+ }
133
+ }
134
+ }
135
+ catch (error) {
136
+ // No test metrics available
137
+ }
138
+ return 0;
139
+ }
140
+ /**
141
+ * Export cost dashboard data
142
+ */
143
+ async exportCostDashboard() {
144
+ const stats = await this.getStats();
145
+ const costsArray = Array.from(this.costs.values());
146
+ return {
147
+ summary: {
148
+ totalCost: stats.totalCost.toFixed(4),
149
+ totalRequests: stats.totalRequests,
150
+ costSavings: stats.costSavings.toFixed(4),
151
+ savingsPercentage: stats.totalCost > 0
152
+ ? ((stats.costSavings / (stats.totalCost + stats.costSavings)) * 100).toFixed(2)
153
+ : '0.00',
154
+ avgCostPerTask: stats.avgCostPerTask.toFixed(4),
155
+ avgCostPerTest: stats.avgCostPerTest.toFixed(4),
156
+ sessionDuration: this.formatDuration(Date.now() - this.sessionStartTime),
157
+ },
158
+ models: costsArray.map((cost) => {
159
+ const capability = ModelRules_1.MODEL_CAPABILITIES[cost.modelId];
160
+ return {
161
+ model: cost.modelId,
162
+ requests: cost.requestCount,
163
+ tokensUsed: cost.tokensUsed,
164
+ cost: cost.estimatedCost.toFixed(4),
165
+ avgTokensPerRequest: Math.round(cost.avgTokensPerRequest),
166
+ costPerToken: capability.costPerToken,
167
+ percentage: stats.totalCost > 0
168
+ ? ((cost.estimatedCost / stats.totalCost) * 100).toFixed(2)
169
+ : '0.00',
170
+ };
171
+ }),
172
+ distribution: stats.modelDistribution,
173
+ timestamp: new Date().toISOString(),
174
+ };
175
+ }
176
+ /**
177
+ * Format duration in human-readable format
178
+ */
179
+ formatDuration(ms) {
180
+ const seconds = Math.floor(ms / 1000);
181
+ const minutes = Math.floor(seconds / 60);
182
+ const hours = Math.floor(minutes / 60);
183
+ if (hours > 0) {
184
+ return `${hours}h ${minutes % 60}m`;
185
+ }
186
+ else if (minutes > 0) {
187
+ return `${minutes}m ${seconds % 60}s`;
188
+ }
189
+ else {
190
+ return `${seconds}s`;
191
+ }
192
+ }
193
+ /**
194
+ * Reset cost tracking (for testing)
195
+ */
196
+ async reset() {
197
+ this.costs.clear();
198
+ this.initializeCosts();
199
+ this.sessionStartTime = Date.now();
200
+ await this.persistCosts();
201
+ }
202
+ /**
203
+ * Get cost for specific model
204
+ */
205
+ getModelCost(modelId) {
206
+ return this.costs.get(modelId);
207
+ }
208
+ }
209
+ exports.CostTracker = CostTracker;
210
+ //# sourceMappingURL=CostTracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CostTracker.js","sourceRoot":"","sources":["../../../src/core/routing/CostTracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * FleetManager Integration for Multi-Model Router
3
+ * Integrates the AdaptiveModelRouter with FleetManager
4
+ */
5
+ import { FleetManager } from '../FleetManager';
6
+ import { AdaptiveModelRouter } from './AdaptiveModelRouter';
7
+ import { SwarmMemoryManager } from '../memory/SwarmMemoryManager';
8
+ import { EventBus } from '../EventBus';
9
+ import { RouterConfig } from './types';
10
+ /**
11
+ * Extended FleetManager with routing capabilities
12
+ */
13
+ export declare class RoutingEnabledFleetManager {
14
+ private fleetManager;
15
+ private router;
16
+ private memoryStore;
17
+ private eventBus;
18
+ constructor(fleetManager: FleetManager, memoryStore: SwarmMemoryManager, eventBus: EventBus, routerConfig?: Partial<RouterConfig>);
19
+ /**
20
+ * Setup event handlers for router integration
21
+ */
22
+ private setupEventHandlers;
23
+ /**
24
+ * Handle task submission - select optimal model
25
+ */
26
+ private handleTaskSubmitted;
27
+ /**
28
+ * Handle task completion - track actual costs
29
+ */
30
+ private handleTaskCompleted;
31
+ /**
32
+ * Handle model failure - select fallback
33
+ */
34
+ private handleModelFailure;
35
+ /**
36
+ * Estimate tokens from result (fallback when not provided)
37
+ */
38
+ private estimateTokensFromResult;
39
+ /**
40
+ * Get router statistics
41
+ */
42
+ getRouterStats(): Promise<import("./types").RouterStats>;
43
+ /**
44
+ * Export cost dashboard
45
+ */
46
+ exportCostDashboard(): Promise<any>;
47
+ /**
48
+ * Enable or disable routing
49
+ */
50
+ setRoutingEnabled(enabled: boolean): void;
51
+ /**
52
+ * Update router configuration
53
+ */
54
+ updateRouterConfig(config: Partial<RouterConfig>): void;
55
+ /**
56
+ * Get underlying router instance
57
+ */
58
+ getRouter(): AdaptiveModelRouter;
59
+ /**
60
+ * Get underlying fleet manager instance
61
+ */
62
+ getFleetManager(): FleetManager;
63
+ }
64
+ /**
65
+ * Factory function to create routing-enabled fleet manager
66
+ */
67
+ export declare function createRoutingEnabledFleetManager(fleetManager: FleetManager, memoryStore: SwarmMemoryManager, eventBus: EventBus, routerConfig?: Partial<RouterConfig>): RoutingEnabledFleetManager;
68
+ //# sourceMappingURL=FleetManagerIntegration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FleetManagerIntegration.d.ts","sourceRoot":"","sources":["../../../src/core/routing/FleetManagerIntegration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAA2B,YAAY,EAAE,MAAM,SAAS,CAAC;AAGhE;;GAEG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,QAAQ,CAAW;gBAGzB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,kBAAkB,EAC/B,QAAQ,EAAE,QAAQ,EAClB,YAAY,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;IAUtC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;OAEG;YACW,mBAAmB;IAwBjC;;OAEG;YACW,mBAAmB;IA6BjC;;OAEG;YACW,kBAAkB;IAwBhC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAOhC;;OAEG;IACG,cAAc;IAIpB;;OAEG;IACG,mBAAmB;IAIzB;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIzC;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAIvD;;OAEG;IACH,SAAS,IAAI,mBAAmB;IAIhC;;OAEG;IACH,eAAe,IAAI,YAAY;CAGhC;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,kBAAkB,EAC/B,QAAQ,EAAE,QAAQ,EAClB,YAAY,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GACnC,0BAA0B,CAO5B"}
@@ -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"}