agentic-qe 2.6.4 → 2.6.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 (44) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/README.md +26 -1
  3. package/dist/cli/commands/providers/index.d.ts +20 -0
  4. package/dist/cli/commands/providers/index.d.ts.map +1 -0
  5. package/dist/cli/commands/providers/index.js +143 -0
  6. package/dist/cli/commands/providers/index.js.map +1 -0
  7. package/dist/cli/commands/providers/status.d.ts +117 -0
  8. package/dist/cli/commands/providers/status.d.ts.map +1 -0
  9. package/dist/cli/commands/providers/status.js +368 -0
  10. package/dist/cli/commands/providers/status.js.map +1 -0
  11. package/dist/cli/index.js +8 -62
  12. package/dist/cli/index.js.map +1 -1
  13. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  14. package/dist/mcp/server-instructions.d.ts +1 -1
  15. package/dist/mcp/server-instructions.js +1 -1
  16. package/dist/monitoring/ProviderHealthMonitor.d.ts +195 -0
  17. package/dist/monitoring/ProviderHealthMonitor.d.ts.map +1 -0
  18. package/dist/monitoring/ProviderHealthMonitor.js +431 -0
  19. package/dist/monitoring/ProviderHealthMonitor.js.map +1 -0
  20. package/dist/monitoring/QuotaManager.d.ts +122 -0
  21. package/dist/monitoring/QuotaManager.d.ts.map +1 -0
  22. package/dist/monitoring/QuotaManager.js +351 -0
  23. package/dist/monitoring/QuotaManager.js.map +1 -0
  24. package/dist/providers/GitHubModelsProvider.d.ts +117 -0
  25. package/dist/providers/GitHubModelsProvider.d.ts.map +1 -0
  26. package/dist/providers/GitHubModelsProvider.js +464 -0
  27. package/dist/providers/GitHubModelsProvider.js.map +1 -0
  28. package/dist/providers/GroqProvider.d.ts +115 -0
  29. package/dist/providers/GroqProvider.d.ts.map +1 -0
  30. package/dist/providers/GroqProvider.js +443 -0
  31. package/dist/providers/GroqProvider.js.map +1 -0
  32. package/dist/providers/HybridRouterHealthIntegration.d.ts +191 -0
  33. package/dist/providers/HybridRouterHealthIntegration.d.ts.map +1 -0
  34. package/dist/providers/HybridRouterHealthIntegration.js +439 -0
  35. package/dist/providers/HybridRouterHealthIntegration.js.map +1 -0
  36. package/dist/providers/index.d.ts +6 -0
  37. package/dist/providers/index.d.ts.map +1 -1
  38. package/dist/providers/index.js +12 -1
  39. package/dist/providers/index.js.map +1 -1
  40. package/package.json +2 -2
  41. package/dist/cli/commands/providers.d.ts +0 -50
  42. package/dist/cli/commands/providers.d.ts.map +0 -1
  43. package/dist/cli/commands/providers.js +0 -403
  44. package/dist/cli/commands/providers.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,49 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.6.5] - 2025-12-25
11
+
12
+ ### Added
13
+
14
+ #### LLM Independence Phase 3-4 Complete
15
+
16
+ **New LLM Providers**
17
+ - `GroqProvider`: Free tier support with 14,400 requests/day, streaming, rate limiting
18
+ - `GitHubModelsProvider`: Automatic Codespaces detection, GITHUB_TOKEN authentication
19
+
20
+ **Provider Health Monitoring** (`src/monitoring/`)
21
+ - `ProviderHealthMonitor`: Health checks with circuit breaker pattern (closed → half-open → open)
22
+ - `QuotaManager`: Per-provider quota tracking with daily/minute limits and auto-reset
23
+ - Health-aware routing with automatic fallback chains
24
+
25
+ **CLI Provider Management**
26
+ - `aqe providers status`: Health dashboard with real-time provider status
27
+ - `aqe providers list`: List all configured providers
28
+ - `aqe providers test [provider]`: Test provider connectivity
29
+ - `aqe providers switch <provider>`: Switch default provider
30
+ - `aqe providers quota`: Show quota usage for all providers
31
+
32
+ **Health-Aware Routing** (`src/providers/HybridRouterHealthIntegration.ts`)
33
+ - Integrates ProviderHealthMonitor with HybridRouter
34
+ - Automatic fallback to healthy providers when primary fails
35
+ - Provider ranking based on health score, latency, and availability
36
+
37
+ ### Changed
38
+
39
+ - **CLI Command Pattern**: Refactored `src/cli/commands/providers/` to use `createProvidersCommand()` pattern consistent with other commands
40
+ - **Provider Exports**: Extended `src/providers/index.ts` with new Phase 3-4 components
41
+
42
+ ### Tests
43
+
44
+ - 144 new tests for Phase 3-4 components:
45
+ - `GroqProvider.test.ts` (22 tests)
46
+ - `GitHubModelsProvider.test.ts` (25 tests)
47
+ - `HybridRouterHealthIntegration.test.ts` (30 tests)
48
+ - `ProviderHealthMonitor.test.ts` (20 tests)
49
+ - `QuotaManager.test.ts` (20 tests)
50
+ - `providers.test.ts` (20 tests)
51
+ - `phase3-4-integration.test.ts` (7 tests)
52
+
10
53
  ## [2.6.4] - 2025-12-25
11
54
 
12
55
  ### Fixed
package/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
  [![Run in Smithery](https://smithery.ai/badge/skills/proffesor-for-testing)](https://smithery.ai/skills?ns=proffesor-for-testing&utm_source=github&utm_medium=badge)
12
12
 
13
13
 
14
- **Version 2.6.4** | [Changelog](CHANGELOG.md) | [Contributors](CONTRIBUTORS.md) | [Issues](https://github.com/proffesor-for-testing/agentic-qe/issues) | [Discussions](https://github.com/proffesor-for-testing/agentic-qe/discussions)
14
+ **Version 2.6.5** | [Changelog](CHANGELOG.md) | [Contributors](CONTRIBUTORS.md) | [Issues](https://github.com/proffesor-for-testing/agentic-qe/issues) | [Discussions](https://github.com/proffesor-for-testing/agentic-qe/discussions)
15
15
 
16
16
  > AI-powered test automation that learns from every task, switches between 300+ AI models on-the-fly, scores code testability, visualizes agent activity in real-time, and improves autonomously overnight — with built-in safety guardrails and full observability.
17
17
 
@@ -622,6 +622,7 @@ AQE supports multiple LLM providers for maximum flexibility and cost optimizatio
622
622
  | **Ollama** | Local | FREE | 10 min | Privacy, offline, no budget |
623
623
  | **OpenRouter** | Cloud | Paid/Free | 2 min | 300+ models, flexibility |
624
624
  | **Groq** | Cloud | FREE | 1 min | High-speed, 14,400 req/day |
625
+ | **GitHub Models** | Cloud | FREE | 0 min | Codespaces, auto-detected |
625
626
  | **Claude API** | Cloud | Paid | 2 min | Highest quality |
626
627
  | **Google AI** | Cloud | FREE | 2 min | Gemini models, 1,500 req/day |
627
628
 
@@ -694,6 +695,30 @@ await factory.initialize();
694
695
  - **Balanced**: `qwen/qwen-2.5-coder-32b-instruct` ($0.18/$0.18 per M)
695
696
  - **Premium**: `claude-sonnet-4` ($3/$15 per M)
696
697
 
698
+ ### Provider Health Monitoring (v2.6.5+)
699
+
700
+ Monitor and manage LLM providers with built-in health checks and automatic failover:
701
+
702
+ ```bash
703
+ # View provider health dashboard
704
+ aqe providers status
705
+
706
+ # Detailed metrics with circuit breaker states
707
+ aqe providers status --detailed
708
+
709
+ # Test specific provider connectivity
710
+ aqe providers test groq
711
+
712
+ # Check quota usage
713
+ aqe providers quota
714
+ ```
715
+
716
+ **Features:**
717
+ - **Circuit Breaker Pattern**: Automatic detection of unhealthy providers (closed → half-open → open)
718
+ - **Health-Aware Routing**: Requests automatically route to healthy providers
719
+ - **Quota Management**: Per-provider rate limit tracking with alerts
720
+ - **Fallback Chains**: Graceful degradation when primary provider fails
721
+
697
722
  ### Documentation
698
723
 
699
724
  - **[LLM Providers Guide](docs/guides/llm-providers-guide.md)** - Complete provider overview
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Provider Commands - LLM Provider management CLI
3
+ *
4
+ * Commands for monitoring, configuring, and managing LLM providers.
5
+ *
6
+ * Available commands:
7
+ * aqe providers status - Show provider health dashboard
8
+ * aqe providers list - List all registered providers
9
+ * aqe providers quota - Show quota usage for all providers
10
+ * aqe providers test - Test connectivity to a provider
11
+ * aqe providers switch - Switch the default provider
12
+ *
13
+ * @module cli/commands/providers
14
+ * @version 1.0.0
15
+ */
16
+ import { Command } from 'commander';
17
+ export declare function createProvidersCommand(): Command;
18
+ export { ProviderStatusCommand } from './status';
19
+ export type { ProviderStatusOptions, ProviderStatusReport, ProviderHealthInfo } from './status';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,sBAAsB,IAAI,OAAO,CAuHhD;AAGD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ /**
3
+ * Provider Commands - LLM Provider management CLI
4
+ *
5
+ * Commands for monitoring, configuring, and managing LLM providers.
6
+ *
7
+ * Available commands:
8
+ * aqe providers status - Show provider health dashboard
9
+ * aqe providers list - List all registered providers
10
+ * aqe providers quota - Show quota usage for all providers
11
+ * aqe providers test - Test connectivity to a provider
12
+ * aqe providers switch - Switch the default provider
13
+ *
14
+ * @module cli/commands/providers
15
+ * @version 1.0.0
16
+ */
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.ProviderStatusCommand = void 0;
22
+ exports.createProvidersCommand = createProvidersCommand;
23
+ const commander_1 = require("commander");
24
+ const chalk_1 = __importDefault(require("chalk"));
25
+ const status_1 = require("./status");
26
+ function createProvidersCommand() {
27
+ const providers = new commander_1.Command('providers')
28
+ .description('LLM provider management and health monitoring')
29
+ .addHelpText('after', `
30
+ Examples:
31
+ $ aqe providers status Show provider health dashboard
32
+ $ aqe providers status --detailed Show detailed metrics
33
+ $ aqe providers status --json Output in JSON format
34
+ $ aqe providers status --watch Continuously monitor
35
+ $ aqe providers list List all configured providers
36
+ $ aqe providers test groq Test Groq provider connectivity
37
+ $ aqe providers switch claude Switch default to Claude
38
+ `);
39
+ // Status subcommand - primary health dashboard
40
+ providers
41
+ .command('status')
42
+ .description('Show provider health dashboard with real-time metrics')
43
+ .option('-d, --detailed', 'Show detailed metrics for each provider')
44
+ .option('-j, --json', 'Output in JSON format')
45
+ .option('-f, --format <format>', 'Output format (json, table)', 'table')
46
+ .option('-v, --verbose', 'Show verbose output (alias for --detailed)')
47
+ .option('-w, --watch', 'Continuously monitor provider health')
48
+ .option('-i, --interval <seconds>', 'Watch interval in seconds', '10')
49
+ .action(async (options) => {
50
+ const statusOptions = {
51
+ detailed: options.detailed || options.verbose,
52
+ json: options.json || options.format === 'json',
53
+ watch: options.watch,
54
+ interval: parseInt(options.interval, 10)
55
+ };
56
+ try {
57
+ await status_1.ProviderStatusCommand.execute(statusOptions);
58
+ }
59
+ catch (error) {
60
+ console.error(chalk_1.default.red(`❌ Provider status failed: ${error.message}`));
61
+ process.exit(1);
62
+ }
63
+ });
64
+ // List subcommand - list all providers
65
+ providers
66
+ .command('list')
67
+ .description('List all configured providers and their status')
68
+ .option('-j, --json', 'Output in JSON format')
69
+ .option('-f, --format <format>', 'Output format (json, table)', 'table')
70
+ .option('-v, --verbose', 'Show detailed information')
71
+ .action(async (options) => {
72
+ try {
73
+ await status_1.ProviderStatusCommand.execute({
74
+ json: options.json || options.format === 'json',
75
+ detailed: options.verbose
76
+ });
77
+ }
78
+ catch (error) {
79
+ console.error(chalk_1.default.red(`❌ Provider list failed: ${error.message}`));
80
+ process.exit(1);
81
+ }
82
+ });
83
+ // Quota subcommand - show quota usage
84
+ providers
85
+ .command('quota')
86
+ .description('Show quota usage for all providers')
87
+ .option('-j, --json', 'Output in JSON format')
88
+ .action(async (options) => {
89
+ try {
90
+ await status_1.ProviderStatusCommand.execute({
91
+ detailed: true,
92
+ json: options.json
93
+ });
94
+ }
95
+ catch (error) {
96
+ console.error(chalk_1.default.red(`❌ Provider quota failed: ${error.message}`));
97
+ process.exit(1);
98
+ }
99
+ });
100
+ // Test subcommand - test provider connectivity
101
+ providers
102
+ .command('test')
103
+ .description('Test connectivity to a specific provider')
104
+ .argument('[provider]', 'Provider name to test (groq, github-models, claude, ollama)')
105
+ .option('-v, --verbose', 'Show detailed error information')
106
+ .action(async (provider, options) => {
107
+ try {
108
+ console.log(chalk_1.default.cyan(`\n🔍 Testing provider: ${provider || 'all'}\n`));
109
+ await status_1.ProviderStatusCommand.execute({
110
+ detailed: options.verbose || true
111
+ });
112
+ }
113
+ catch (error) {
114
+ console.error(chalk_1.default.red(`❌ Provider test failed: ${error.message}`));
115
+ process.exit(1);
116
+ }
117
+ });
118
+ // Switch subcommand - change default provider
119
+ providers
120
+ .command('switch')
121
+ .description('Switch the default provider')
122
+ .argument('<provider>', 'Provider name (groq, github-models, claude, ollama, openrouter)')
123
+ .action(async (provider) => {
124
+ const validProviders = ['groq', 'github-models', 'claude', 'ollama', 'openrouter', 'ruvllm'];
125
+ if (!validProviders.includes(provider.toLowerCase())) {
126
+ console.error(chalk_1.default.red(`❌ Invalid provider: ${provider}`));
127
+ console.log(chalk_1.default.yellow(`Valid providers: ${validProviders.join(', ')}`));
128
+ process.exit(1);
129
+ }
130
+ console.log(chalk_1.default.cyan(`\n🔄 Switching default provider to: ${provider}\n`));
131
+ console.log(chalk_1.default.yellow('To persist this change, update your configuration:'));
132
+ console.log(chalk_1.default.white(` aqe config set providers.default ${provider}`));
133
+ console.log(chalk_1.default.white(` # or edit .aqe/config.json directly\n`));
134
+ // Show current status of the target provider
135
+ console.log(chalk_1.default.cyan('Current status of target provider:'));
136
+ await status_1.ProviderStatusCommand.execute({ detailed: false });
137
+ });
138
+ return providers;
139
+ }
140
+ // Export command components for direct usage
141
+ var status_2 = require("./status");
142
+ Object.defineProperty(exports, "ProviderStatusCommand", { enumerable: true, get: function () { return status_2.ProviderStatusCommand; } });
143
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/providers/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Provider Status Command - Health dashboard for LLM providers
3
+ *
4
+ * Displays real-time health status of all registered LLM providers
5
+ * including circuit breaker states, latency, and availability metrics.
6
+ *
7
+ * Usage:
8
+ * aqe providers status [options]
9
+ *
10
+ * Options:
11
+ * --detailed Show detailed metrics for each provider
12
+ * --json Output in JSON format
13
+ * --watch Continuously monitor provider health
14
+ * --interval Watch interval in seconds (default: 10)
15
+ *
16
+ * @module cli/commands/providers/status
17
+ * @version 1.0.0
18
+ */
19
+ export interface ProviderStatusOptions {
20
+ detailed?: boolean;
21
+ json?: boolean;
22
+ watch?: boolean;
23
+ interval?: number;
24
+ }
25
+ export interface ProviderStatusReport {
26
+ timestamp: string;
27
+ overallHealth: 'healthy' | 'degraded' | 'unhealthy' | 'unknown';
28
+ providers: ProviderHealthInfo[];
29
+ summary: {
30
+ total: number;
31
+ healthy: number;
32
+ degraded: number;
33
+ unhealthy: number;
34
+ circuitOpen: number;
35
+ };
36
+ }
37
+ export interface ProviderHealthInfo {
38
+ id: string;
39
+ name: string;
40
+ healthy: boolean;
41
+ circuitState: 'closed' | 'open' | 'half-open';
42
+ latency: number;
43
+ errorRate: number;
44
+ availability: number;
45
+ lastCheck: string;
46
+ quota?: {
47
+ dailyUsed: number;
48
+ dailyLimit: number;
49
+ minuteUsed: number;
50
+ minuteLimit: number;
51
+ percentageUsed: number;
52
+ isExhausted: boolean;
53
+ };
54
+ lastError?: string;
55
+ }
56
+ /**
57
+ * Provider Status Command
58
+ */
59
+ export declare class ProviderStatusCommand {
60
+ private static healthMonitor?;
61
+ private static quotaManager?;
62
+ private static watchIntervalId?;
63
+ /**
64
+ * Execute the provider status command
65
+ */
66
+ static execute(options?: ProviderStatusOptions): Promise<ProviderStatusReport>;
67
+ /**
68
+ * Initialize health monitor and quota manager with default providers
69
+ */
70
+ private static initializeMonitoring;
71
+ /**
72
+ * Register default providers for monitoring
73
+ */
74
+ private static registerDefaultProviders;
75
+ /**
76
+ * Generate status report for all providers
77
+ */
78
+ private static generateStatusReport;
79
+ /**
80
+ * Display status report in console
81
+ */
82
+ private static displayStatusReport;
83
+ /**
84
+ * Display individual provider status
85
+ */
86
+ private static displayProviderStatus;
87
+ /**
88
+ * Start watch mode for continuous monitoring
89
+ */
90
+ private static startWatchMode;
91
+ /**
92
+ * Stop watch mode
93
+ */
94
+ static stopWatch(): void;
95
+ /**
96
+ * Get color for health status
97
+ */
98
+ private static getHealthColor;
99
+ /**
100
+ * Get circuit state icon
101
+ */
102
+ private static getCircuitIcon;
103
+ /**
104
+ * Get quota usage bar
105
+ */
106
+ private static getQuotaBar;
107
+ private static checkGroqHealth;
108
+ private static checkGitHubModelsHealth;
109
+ private static checkOllamaHealth;
110
+ private static checkClaudeHealth;
111
+ private static checkOpenRouterHealth;
112
+ /**
113
+ * Cleanup resources
114
+ */
115
+ static cleanup(): void;
116
+ }
117
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/providers/status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AASH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;IAChE,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAwB;IACrD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAe;IAC3C,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAiB;IAEhD;;OAEG;WACU,OAAO,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAmBxF;;OAEG;mBACkB,oBAAoB;IAmBzC;;OAEG;mBACkB,wBAAwB;IAiB7C;;OAEG;mBACkB,oBAAoB;IAyEzC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAmClC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAiCpC;;OAEG;mBACkB,cAAc;IAoCnC;;OAEG;IACH,MAAM,CAAC,SAAS,IAAI,IAAI;IAQxB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAU7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAS7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;mBAaL,eAAe;mBAUf,uBAAuB;mBAYvB,iBAAiB;mBAkBjB,iBAAiB;mBASjB,qBAAqB;IAS1C;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,IAAI;CAUvB"}