agentic-qe 2.2.0 → 2.2.2
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-security-scanner.md +26 -0
- package/.claude/skills/agentic-quality-engineering/SKILL.md +4 -4
- package/.claude/skills/cicd-pipeline-qe-orchestrator/README.md +14 -11
- package/.claude/skills/skills-manifest.json +2 -2
- package/CHANGELOG.md +75 -0
- package/README.md +92 -214
- package/dist/agents/BaseAgent.d.ts +5 -1
- package/dist/agents/BaseAgent.d.ts.map +1 -1
- package/dist/agents/BaseAgent.js +32 -17
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/agents/index.js +3 -3
- package/dist/agents/index.js.map +1 -1
- package/dist/cli/commands/improve/index.d.ts +8 -1
- package/dist/cli/commands/improve/index.d.ts.map +1 -1
- package/dist/cli/commands/improve/index.js +18 -16
- package/dist/cli/commands/improve/index.js.map +1 -1
- package/dist/cli/commands/learn/index.d.ts +10 -2
- package/dist/cli/commands/learn/index.d.ts.map +1 -1
- package/dist/cli/commands/learn/index.js +99 -63
- package/dist/cli/commands/learn/index.js.map +1 -1
- package/dist/cli/commands/patterns/index.d.ts +8 -1
- package/dist/cli/commands/patterns/index.d.ts.map +1 -1
- package/dist/cli/commands/patterns/index.js +79 -45
- package/dist/cli/commands/patterns/index.js.map +1 -1
- package/dist/cli/commands/routing/index.d.ts +5 -0
- package/dist/cli/commands/routing/index.d.ts.map +1 -1
- package/dist/cli/commands/routing/index.js +11 -10
- package/dist/cli/commands/routing/index.js.map +1 -1
- package/dist/cli/init/agents.d.ts +1 -1
- package/dist/cli/init/agents.js +2 -2
- package/dist/cli/init/database-init.d.ts +7 -0
- package/dist/cli/init/database-init.d.ts.map +1 -1
- package/dist/cli/init/database-init.js +29 -48
- package/dist/cli/init/database-init.js.map +1 -1
- package/dist/core/memory/HNSWVectorMemory.d.ts +261 -0
- package/dist/core/memory/HNSWVectorMemory.d.ts.map +1 -0
- package/dist/core/memory/HNSWVectorMemory.js +647 -0
- package/dist/core/memory/HNSWVectorMemory.js.map +1 -0
- package/dist/core/memory/SwarmMemoryManager.d.ts +7 -0
- package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
- package/dist/core/memory/SwarmMemoryManager.js +9 -0
- package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
- package/dist/core/memory/index.d.ts +2 -0
- package/dist/core/memory/index.d.ts.map +1 -1
- package/dist/core/memory/index.js +11 -1
- package/dist/core/memory/index.js.map +1 -1
- package/dist/learning/ExplainableLearning.d.ts +191 -0
- package/dist/learning/ExplainableLearning.d.ts.map +1 -0
- package/dist/learning/ExplainableLearning.js +441 -0
- package/dist/learning/ExplainableLearning.js.map +1 -0
- package/dist/learning/GossipPatternSharingProtocol.d.ts +228 -0
- package/dist/learning/GossipPatternSharingProtocol.d.ts.map +1 -0
- package/dist/learning/GossipPatternSharingProtocol.js +590 -0
- package/dist/learning/GossipPatternSharingProtocol.js.map +1 -0
- package/dist/learning/LearningEngine.d.ts +4 -4
- package/dist/learning/LearningEngine.d.ts.map +1 -1
- package/dist/learning/LearningEngine.js +20 -13
- package/dist/learning/LearningEngine.js.map +1 -1
- package/dist/learning/PerformanceOptimizer.d.ts +268 -0
- package/dist/learning/PerformanceOptimizer.d.ts.map +1 -0
- package/dist/learning/PerformanceOptimizer.js +552 -0
- package/dist/learning/PerformanceOptimizer.js.map +1 -0
- package/dist/learning/PrivacyManager.d.ts +197 -0
- package/dist/learning/PrivacyManager.d.ts.map +1 -0
- package/dist/learning/PrivacyManager.js +551 -0
- package/dist/learning/PrivacyManager.js.map +1 -0
- package/dist/learning/TransferLearningManager.d.ts +212 -0
- package/dist/learning/TransferLearningManager.d.ts.map +1 -0
- package/dist/learning/TransferLearningManager.js +497 -0
- package/dist/learning/TransferLearningManager.js.map +1 -0
- package/dist/learning/algorithms/MAMLMetaLearner.d.ts +218 -0
- package/dist/learning/algorithms/MAMLMetaLearner.d.ts.map +1 -0
- package/dist/learning/algorithms/MAMLMetaLearner.js +532 -0
- package/dist/learning/algorithms/MAMLMetaLearner.js.map +1 -0
- package/dist/learning/algorithms/index.d.ts +4 -1
- package/dist/learning/algorithms/index.d.ts.map +1 -1
- package/dist/learning/algorithms/index.js +7 -1
- package/dist/learning/algorithms/index.js.map +1 -1
- package/dist/learning/index.d.ts +8 -0
- package/dist/learning/index.d.ts.map +1 -1
- package/dist/learning/index.js +17 -1
- package/dist/learning/index.js.map +1 -1
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.js +1 -1
- package/dist/providers/HybridRouter.d.ts +217 -0
- package/dist/providers/HybridRouter.d.ts.map +1 -0
- package/dist/providers/HybridRouter.js +679 -0
- package/dist/providers/HybridRouter.js.map +1 -0
- package/dist/providers/index.d.ts +1 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +7 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/telemetry/LearningTelemetry.d.ts +190 -0
- package/dist/telemetry/LearningTelemetry.d.ts.map +1 -0
- package/dist/telemetry/LearningTelemetry.js +403 -0
- package/dist/telemetry/LearningTelemetry.js.map +1 -0
- package/dist/telemetry/index.d.ts +1 -0
- package/dist/telemetry/index.d.ts.map +1 -1
- package/dist/telemetry/index.js +20 -2
- package/dist/telemetry/index.js.map +1 -1
- package/dist/telemetry/instrumentation/agent.d.ts +1 -1
- package/dist/telemetry/instrumentation/agent.js +1 -1
- package/dist/telemetry/instrumentation/index.d.ts +1 -1
- package/dist/telemetry/instrumentation/index.js +1 -1
- package/dist/utils/math.d.ts +11 -0
- package/dist/utils/math.d.ts.map +1 -0
- package/dist/utils/math.js +16 -0
- package/dist/utils/math.js.map +1 -0
- package/docs/reference/agents.md +1 -1
- package/docs/reference/skills.md +3 -3
- package/docs/reference/usage.md +4 -4
- package/package.json +14 -1
package/dist/learning/index.js
CHANGED
|
@@ -21,7 +21,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
21
21
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
22
22
|
};
|
|
23
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
-
exports.ExperienceSharingProtocol = exports.createRLAlgorithm = exports.createDefaultPPOConfig = exports.PPOLearner = exports.createDefaultActorCriticConfig = exports.ActorCriticLearner = exports.SARSALearner = exports.AbstractRLLearner = exports.FixRecommendationEngine = void 0;
|
|
24
|
+
exports.PrivacyLevel = exports.PrivacyManager = exports.PerformanceOptimizer = exports.TransferLearningManager = exports.GossipPatternSharingProtocol = exports.ExplainableLearning = exports.ExperienceSharingProtocol = exports.createRLAlgorithm = exports.createDefaultPPOConfig = exports.PPOLearner = exports.createDefaultActorCriticConfig = exports.ActorCriticLearner = exports.SARSALearner = exports.AbstractRLLearner = exports.FixRecommendationEngine = void 0;
|
|
25
25
|
__exportStar(require("./types"), exports);
|
|
26
26
|
__exportStar(require("./LearningEngine"), exports);
|
|
27
27
|
__exportStar(require("./QLearning"), exports);
|
|
@@ -50,4 +50,20 @@ Object.defineProperty(exports, "createRLAlgorithm", { enumerable: true, get: fun
|
|
|
50
50
|
// Experience Sharing (NEW in v2.2.0+)
|
|
51
51
|
var ExperienceSharingProtocol_1 = require("./ExperienceSharingProtocol");
|
|
52
52
|
Object.defineProperty(exports, "ExperienceSharingProtocol", { enumerable: true, get: function () { return ExperienceSharingProtocol_1.ExperienceSharingProtocol; } });
|
|
53
|
+
// Explainable Learning (NEW in v2.2.0+ - Issue #118)
|
|
54
|
+
var ExplainableLearning_1 = require("./ExplainableLearning");
|
|
55
|
+
Object.defineProperty(exports, "ExplainableLearning", { enumerable: true, get: function () { return ExplainableLearning_1.ExplainableLearning; } });
|
|
56
|
+
// Gossip Pattern Sharing (NEW in v2.2.0+ - Issue #118)
|
|
57
|
+
var GossipPatternSharingProtocol_1 = require("./GossipPatternSharingProtocol");
|
|
58
|
+
Object.defineProperty(exports, "GossipPatternSharingProtocol", { enumerable: true, get: function () { return GossipPatternSharingProtocol_1.GossipPatternSharingProtocol; } });
|
|
59
|
+
// Transfer Learning (NEW in v2.2.0+ - Issue #118)
|
|
60
|
+
var TransferLearningManager_1 = require("./TransferLearningManager");
|
|
61
|
+
Object.defineProperty(exports, "TransferLearningManager", { enumerable: true, get: function () { return TransferLearningManager_1.TransferLearningManager; } });
|
|
62
|
+
// Performance Optimizer (NEW in v2.2.0+ - Issue #118)
|
|
63
|
+
var PerformanceOptimizer_1 = require("./PerformanceOptimizer");
|
|
64
|
+
Object.defineProperty(exports, "PerformanceOptimizer", { enumerable: true, get: function () { return PerformanceOptimizer_1.PerformanceOptimizer; } });
|
|
65
|
+
// Privacy Manager (NEW in v2.2.0+ - Issue #118)
|
|
66
|
+
var PrivacyManager_1 = require("./PrivacyManager");
|
|
67
|
+
Object.defineProperty(exports, "PrivacyManager", { enumerable: true, get: function () { return PrivacyManager_1.PrivacyManager; } });
|
|
68
|
+
Object.defineProperty(exports, "PrivacyLevel", { enumerable: true, get: function () { return PrivacyManager_1.PrivacyLevel; } });
|
|
53
69
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/learning/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;AAEH,0CAAwB;AACxB,mDAAiC;AACjC,8CAA4B;AAC5B,2DAAyC;AACzC,uDAAqC;AACrC,oDAAkC;AAClC,sDAAoC;AACpC,sDAAoC;AACpC,yDAAuC;AACvC,4DAA0C;AAC1C,wDAAsC;AACtC,qDAAmC;AAEnC,gDAAgD;AAChD,qEAEmC;AADjC,kIAAA,uBAAuB,OAAA;AAGzB,iCAAiC;AACjC,4FAA4F;AAC5F,2CAasB;AAZpB,+GAAA,iBAAiB,OAAA;AAGjB,0GAAA,YAAY,OAAA;AAEZ,gHAAA,kBAAkB,OAAA;AAElB,4HAAA,8BAA8B,OAAA;AAC9B,wGAAA,UAAU,OAAA;AAEV,oHAAA,sBAAsB,OAAA;AACtB,+GAAA,iBAAiB,OAAA;AAGnB,sCAAsC;AACtC,yEAOqC;AANnC,sIAAA,yBAAyB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/learning/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;AAEH,0CAAwB;AACxB,mDAAiC;AACjC,8CAA4B;AAC5B,2DAAyC;AACzC,uDAAqC;AACrC,oDAAkC;AAClC,sDAAoC;AACpC,sDAAoC;AACpC,yDAAuC;AACvC,4DAA0C;AAC1C,wDAAsC;AACtC,qDAAmC;AAEnC,gDAAgD;AAChD,qEAEmC;AADjC,kIAAA,uBAAuB,OAAA;AAGzB,iCAAiC;AACjC,4FAA4F;AAC5F,2CAasB;AAZpB,+GAAA,iBAAiB,OAAA;AAGjB,0GAAA,YAAY,OAAA;AAEZ,gHAAA,kBAAkB,OAAA;AAElB,4HAAA,8BAA8B,OAAA;AAC9B,wGAAA,UAAU,OAAA;AAEV,oHAAA,sBAAsB,OAAA;AACtB,+GAAA,iBAAiB,OAAA;AAGnB,sCAAsC;AACtC,yEAOqC;AANnC,sIAAA,yBAAyB,OAAA;AAQ3B,qDAAqD;AACrD,6DAS+B;AAR7B,0HAAA,mBAAmB,OAAA;AAUrB,uDAAuD;AACvD,+EAOwC;AANtC,4IAAA,4BAA4B,OAAA;AAQ9B,kDAAkD;AAClD,qEAMmC;AALjC,kIAAA,uBAAuB,OAAA;AAQzB,sDAAsD;AACtD,+DAEgC;AAD9B,4HAAA,oBAAoB,OAAA;AAItB,gDAAgD;AAChD,mDAG0B;AAFxB,gHAAA,cAAc,OAAA;AACd,8GAAA,YAAY,OAAA"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export declare const SERVER_INSTRUCTIONS = "\n# Agentic QE Fleet - MCP Tool Guide\n\n## Overview\nAgentic QE provides 96 specialized quality engineering tools organized into a hierarchical system for efficient context usage.\n\n## Quick Start\n1. **Discover available tools:** Use `tools_discover` to see all domains\n2. **Load domain tools:** Use `tools_load_domain` to load specialized tools\n3. **Auto-loading:** Domain tools auto-load when relevant keywords are detected\n\n---\n\n## Core Tools (Always Available - 14 tools)\n\n### Fleet Management\n- `fleet_init` - Initialize QE fleet with topology\n- `agent_spawn` - Spawn specialized QE agent\n- `fleet_status` - Get fleet and agent status\n\n### Testing\n- `test_generate_enhanced` - AI test generation with pattern recognition\n- `test_execute_parallel` - Parallel test execution with retry\n- `test_report_comprehensive` - Multi-format test reports\n\n### Memory & Coordination\n- `memory_store` - Store data with TTL & namespacing\n- `memory_retrieve` - Retrieve stored data\n- `memory_query` - Pattern-based memory search\n\n### Quality & Orchestration\n- `quality_analyze` - Analyze quality metrics\n- `task_orchestrate` - Orchestrate tasks across agents\n- `task_status` - Check task progress\n\n### Discovery\n- `tools_discover` - List available tool domains\n- `tools_load_domain` - Load tools for a domain\n\n---\n\n## Domain Tools (Load as Needed)\n\n| Domain | Keywords | Tools | Use Case |\n|--------|----------|-------|----------|\n| **Security** | security, vulnerability, audit, owasp | 4 tools | Security scanning, vulnerability detection |\n| **Performance** | benchmark, bottleneck, profiling | 4 tools | Performance testing, bottleneck analysis |\n| **Coverage** | coverage, gap, uncovered | 5 tools | Coverage analysis, gap detection |\n| **Quality** | quality gate, deploy, release | 6 tools | Quality gates, deployment readiness |\n| **Flaky** | flaky, unstable, retry | 3 tools | Flaky test detection and stabilization |\n| **Visual** | screenshot, accessibility, wcag | 3 tools | Visual regression, accessibility testing |\n| **Requirements** | bdd, gherkin, acceptance | 2 tools | Requirements validation, BDD generation |\n\n### Loading Domain Tools\n```\n# Explicit load\ntools_load_domain({ domain: 'security' })\n\n# Auto-load: Just mention keywords in your request\n\"I need to run a security scan\" \u2192 Security tools auto-load\n```\n\n---\n\n## Specialized Tools (Expert Use)\n\n### Learning Domain (4 tools)\nFor persistent learning and pattern storage across sessions.\nLoad with: `tools_load_domain({ domain: 'learning' })`\n\n### Advanced Domain (7 tools)\nFor mutation testing, API contract validation, production incident replay.\nLoad with: `tools_load_domain({ domain: 'advanced' })`\n\n---\n\n## Best Practices\n\n1. **Start with core tools** - They handle 80% of use cases\n2. **Let auto-load work** - Mention keywords naturally\n3. **Use tools_discover** - When unsure what's available\n4. **Batch operations** - Use parallel execution for speed\n5. **Check fleet_status** - Monitor agent health\n\n---\n\n## Common Workflows\n\n### Test Generation & Execution\n1. `test_generate_enhanced` - Generate tests\n2. `test_execute_parallel` - Run tests\n3. `test_report_comprehensive` - Generate report\n\n### Quality Gate Check\n1. Load quality domain if not auto-loaded\n2. `quality_analyze` - Analyze metrics\n3. `qe_qualitygate_evaluate` - Make go/no-go decision\n\n### Security Audit\n1. `tools_load_domain({ domain: 'security' })`\n2. `qe_security_scan_comprehensive` - Full scan\n3. `qe_security_detect_vulnerabilities` - Detailed analysis\n\n---\n\n## Tool Naming Convention\nAll tools follow: `mcp__agentic_qe__<tool_name>`\n\nExample: `mcp__agentic_qe__test_generate_enhanced`\n";
|
|
8
8
|
export declare const SERVER_NAME = "agentic-qe";
|
|
9
|
-
export declare const SERVER_VERSION = "2.2.
|
|
9
|
+
export declare const SERVER_VERSION = "2.2.2";
|
|
10
10
|
/**
|
|
11
11
|
* Get formatted server info for MCP initialization
|
|
12
12
|
*/
|
|
@@ -119,7 +119,7 @@ All tools follow: \`mcp__agentic_qe__<tool_name>\`
|
|
|
119
119
|
Example: \`mcp__agentic_qe__test_generate_enhanced\`
|
|
120
120
|
`;
|
|
121
121
|
exports.SERVER_NAME = 'agentic-qe';
|
|
122
|
-
exports.SERVER_VERSION = '2.2.
|
|
122
|
+
exports.SERVER_VERSION = '2.2.2';
|
|
123
123
|
/**
|
|
124
124
|
* Get formatted server info for MCP initialization
|
|
125
125
|
*/
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HybridRouter - Intelligent LLM Provider Router
|
|
3
|
+
*
|
|
4
|
+
* Provides intelligent routing between local (ruvllm) and cloud (Claude, GPT) providers
|
|
5
|
+
* with circuit breakers, cost optimization, and adaptive learning.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Task complexity analysis for optimal routing
|
|
9
|
+
* - Latency-aware provider selection
|
|
10
|
+
* - Cost tracking and savings estimation
|
|
11
|
+
* - Circuit breaker pattern for failing providers
|
|
12
|
+
* - Priority queuing for urgent requests
|
|
13
|
+
* - Learning from routing outcomes
|
|
14
|
+
* - Privacy-first routing for sensitive data
|
|
15
|
+
*
|
|
16
|
+
* @module providers/HybridRouter
|
|
17
|
+
* @version 1.0.0
|
|
18
|
+
*/
|
|
19
|
+
import { ILLMProvider, LLMProviderConfig, LLMCompletionOptions, LLMCompletionResponse, LLMStreamEvent, LLMEmbeddingOptions, LLMEmbeddingResponse, LLMTokenCountOptions, LLMHealthStatus, LLMProviderMetadata } from './ILLMProvider';
|
|
20
|
+
import { ClaudeProviderConfig } from './ClaudeProvider';
|
|
21
|
+
import { RuvllmProviderConfig } from './RuvllmProvider';
|
|
22
|
+
/**
|
|
23
|
+
* Request priority levels
|
|
24
|
+
*/
|
|
25
|
+
export declare enum RequestPriority {
|
|
26
|
+
LOW = 0,
|
|
27
|
+
NORMAL = 1,
|
|
28
|
+
HIGH = 2,
|
|
29
|
+
URGENT = 3
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Task complexity classification
|
|
33
|
+
*/
|
|
34
|
+
export declare enum TaskComplexity {
|
|
35
|
+
SIMPLE = "simple",// Pattern matching, simple Q&A
|
|
36
|
+
MODERATE = "moderate",// Standard reasoning
|
|
37
|
+
COMPLEX = "complex",// Deep reasoning, code generation
|
|
38
|
+
VERY_COMPLEX = "very_complex"
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Routing strategy
|
|
42
|
+
*/
|
|
43
|
+
export declare enum RoutingStrategy {
|
|
44
|
+
COST_OPTIMIZED = "cost_optimized",// Minimize cost
|
|
45
|
+
LATENCY_OPTIMIZED = "latency_optimized",// Minimize latency
|
|
46
|
+
QUALITY_OPTIMIZED = "quality_optimized",// Maximize quality
|
|
47
|
+
BALANCED = "balanced",// Balance all factors
|
|
48
|
+
PRIVACY_FIRST = "privacy_first"
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Routing decision metadata
|
|
52
|
+
*/
|
|
53
|
+
export interface RoutingDecision {
|
|
54
|
+
provider: 'local' | 'cloud';
|
|
55
|
+
providerName: string;
|
|
56
|
+
reason: string;
|
|
57
|
+
estimatedCost: number;
|
|
58
|
+
estimatedLatency: number;
|
|
59
|
+
complexity: TaskComplexity;
|
|
60
|
+
priority: RequestPriority;
|
|
61
|
+
timestamp: Date;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Cost savings report
|
|
65
|
+
*/
|
|
66
|
+
export interface CostSavingsReport {
|
|
67
|
+
totalRequests: number;
|
|
68
|
+
localRequests: number;
|
|
69
|
+
cloudRequests: number;
|
|
70
|
+
totalCost: number;
|
|
71
|
+
estimatedCloudCost: number;
|
|
72
|
+
savings: number;
|
|
73
|
+
savingsPercentage: number;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Hybrid router configuration
|
|
77
|
+
*/
|
|
78
|
+
export interface HybridRouterConfig extends LLMProviderConfig {
|
|
79
|
+
/** Claude provider configuration */
|
|
80
|
+
claude?: ClaudeProviderConfig;
|
|
81
|
+
/** Ruvllm provider configuration */
|
|
82
|
+
ruvllm?: RuvllmProviderConfig;
|
|
83
|
+
/** Default routing strategy */
|
|
84
|
+
defaultStrategy?: RoutingStrategy;
|
|
85
|
+
/** Enable circuit breakers */
|
|
86
|
+
enableCircuitBreaker?: boolean;
|
|
87
|
+
/** Circuit breaker failure threshold */
|
|
88
|
+
circuitBreakerThreshold?: number;
|
|
89
|
+
/** Circuit breaker reset timeout (ms) */
|
|
90
|
+
circuitBreakerTimeout?: number;
|
|
91
|
+
/** Maximum latency for local provider (ms) */
|
|
92
|
+
maxLocalLatency?: number;
|
|
93
|
+
/** Enable learning from outcomes */
|
|
94
|
+
enableLearning?: boolean;
|
|
95
|
+
/** Privacy-sensitive keywords for automatic local routing */
|
|
96
|
+
privacyKeywords?: string[];
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* HybridRouter - Intelligent provider routing implementation
|
|
100
|
+
*
|
|
101
|
+
* Routes LLM requests between local and cloud providers based on:
|
|
102
|
+
* - Task complexity and required capabilities
|
|
103
|
+
* - Latency and cost constraints
|
|
104
|
+
* - Provider health and circuit breaker state
|
|
105
|
+
* - Request priority
|
|
106
|
+
* - Privacy requirements
|
|
107
|
+
*/
|
|
108
|
+
export declare class HybridRouter implements ILLMProvider {
|
|
109
|
+
private readonly logger;
|
|
110
|
+
private config;
|
|
111
|
+
private localProvider?;
|
|
112
|
+
private cloudProvider?;
|
|
113
|
+
private circuitBreakers;
|
|
114
|
+
private routingHistory;
|
|
115
|
+
private isInitialized;
|
|
116
|
+
private totalCost;
|
|
117
|
+
private requestCount;
|
|
118
|
+
private localRequestCount;
|
|
119
|
+
private cloudRequestCount;
|
|
120
|
+
constructor(config?: HybridRouterConfig);
|
|
121
|
+
/**
|
|
122
|
+
* Initialize the hybrid router and its providers
|
|
123
|
+
*/
|
|
124
|
+
initialize(): Promise<void>;
|
|
125
|
+
/**
|
|
126
|
+
* Complete a prompt with intelligent routing
|
|
127
|
+
*/
|
|
128
|
+
complete(options: LLMCompletionOptions): Promise<LLMCompletionResponse>;
|
|
129
|
+
/**
|
|
130
|
+
* Stream completion with routing
|
|
131
|
+
*/
|
|
132
|
+
streamComplete(options: LLMCompletionOptions): AsyncIterableIterator<LLMStreamEvent>;
|
|
133
|
+
/**
|
|
134
|
+
* Generate embeddings (prefer local)
|
|
135
|
+
*/
|
|
136
|
+
embed(options: LLMEmbeddingOptions): Promise<LLMEmbeddingResponse>;
|
|
137
|
+
/**
|
|
138
|
+
* Count tokens
|
|
139
|
+
*/
|
|
140
|
+
countTokens(options: LLMTokenCountOptions): Promise<number>;
|
|
141
|
+
/**
|
|
142
|
+
* Health check all providers
|
|
143
|
+
*/
|
|
144
|
+
healthCheck(): Promise<LLMHealthStatus>;
|
|
145
|
+
/**
|
|
146
|
+
* Get metadata (aggregated from all providers)
|
|
147
|
+
*/
|
|
148
|
+
getMetadata(): LLMProviderMetadata;
|
|
149
|
+
/**
|
|
150
|
+
* Shutdown all providers
|
|
151
|
+
*/
|
|
152
|
+
shutdown(): Promise<void>;
|
|
153
|
+
/**
|
|
154
|
+
* Track cost (aggregated across providers)
|
|
155
|
+
*/
|
|
156
|
+
trackCost(usage: LLMCompletionResponse['usage']): number;
|
|
157
|
+
/**
|
|
158
|
+
* Get cost savings report
|
|
159
|
+
*/
|
|
160
|
+
getCostSavingsReport(): CostSavingsReport;
|
|
161
|
+
/**
|
|
162
|
+
* Get routing statistics
|
|
163
|
+
*/
|
|
164
|
+
getRoutingStats(): {
|
|
165
|
+
totalDecisions: number;
|
|
166
|
+
localDecisions: number;
|
|
167
|
+
cloudDecisions: number;
|
|
168
|
+
averageLocalLatency: number;
|
|
169
|
+
averageCloudLatency: number;
|
|
170
|
+
successRate: number;
|
|
171
|
+
};
|
|
172
|
+
/**
|
|
173
|
+
* Make intelligent routing decision
|
|
174
|
+
*/
|
|
175
|
+
private makeRoutingDecision;
|
|
176
|
+
/**
|
|
177
|
+
* Analyze task complexity
|
|
178
|
+
*/
|
|
179
|
+
private analyzeComplexity;
|
|
180
|
+
/**
|
|
181
|
+
* Check for privacy-sensitive data
|
|
182
|
+
*/
|
|
183
|
+
private containsPrivacySensitiveData;
|
|
184
|
+
/**
|
|
185
|
+
* Check if provider is available (circuit breaker check)
|
|
186
|
+
*/
|
|
187
|
+
private isProviderAvailable;
|
|
188
|
+
/**
|
|
189
|
+
* Execute with circuit breaker protection
|
|
190
|
+
*/
|
|
191
|
+
private executeWithCircuitBreaker;
|
|
192
|
+
/**
|
|
193
|
+
* Execute fallback to alternative provider
|
|
194
|
+
*/
|
|
195
|
+
private executeFallback;
|
|
196
|
+
/**
|
|
197
|
+
* Initialize circuit breaker for a provider
|
|
198
|
+
*/
|
|
199
|
+
private initCircuitBreaker;
|
|
200
|
+
/**
|
|
201
|
+
* Create routing decision object
|
|
202
|
+
*/
|
|
203
|
+
private createDecision;
|
|
204
|
+
/**
|
|
205
|
+
* Calculate actual cost from response
|
|
206
|
+
*/
|
|
207
|
+
private calculateCost;
|
|
208
|
+
/**
|
|
209
|
+
* Record routing outcome for learning
|
|
210
|
+
*/
|
|
211
|
+
private recordOutcome;
|
|
212
|
+
/**
|
|
213
|
+
* Ensure router is initialized
|
|
214
|
+
*/
|
|
215
|
+
private ensureInitialized;
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=HybridRouter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HybridRouter.d.ts","sourceRoot":"","sources":["../../src/providers/HybridRouter.ts"],"names":[],"mappings":"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"}
|