agentic-qe 2.6.4 → 2.6.6
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/CHANGELOG.md +95 -0
- package/README.md +26 -1
- package/dist/agents/CoverageAnalyzerAgent.d.ts +31 -0
- package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.js +159 -0
- package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
- package/dist/agents/FleetCommanderAgent.d.ts +36 -0
- package/dist/agents/FleetCommanderAgent.d.ts.map +1 -1
- package/dist/agents/FleetCommanderAgent.js +226 -0
- package/dist/agents/FleetCommanderAgent.js.map +1 -1
- package/dist/cli/commands/kg/mincut.d.ts +50 -0
- package/dist/cli/commands/kg/mincut.d.ts.map +1 -0
- package/dist/cli/commands/kg/mincut.js +372 -0
- package/dist/cli/commands/kg/mincut.js.map +1 -0
- package/dist/cli/commands/providers/index.d.ts +20 -0
- package/dist/cli/commands/providers/index.d.ts.map +1 -0
- package/dist/cli/commands/providers/index.js +143 -0
- package/dist/cli/commands/providers/index.js.map +1 -0
- package/dist/cli/commands/providers/status.d.ts +117 -0
- package/dist/cli/commands/providers/status.d.ts.map +1 -0
- package/dist/cli/commands/providers/status.js +368 -0
- package/dist/cli/commands/providers/status.js.map +1 -0
- package/dist/cli/index.js +99 -62
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/claude-config.js +2 -2
- package/dist/code-intelligence/analysis/mincut/CircularDependencyDetector.d.ts +148 -0
- package/dist/code-intelligence/analysis/mincut/CircularDependencyDetector.d.ts.map +1 -0
- package/dist/code-intelligence/analysis/mincut/CircularDependencyDetector.js +393 -0
- package/dist/code-intelligence/analysis/mincut/CircularDependencyDetector.js.map +1 -0
- package/dist/code-intelligence/analysis/mincut/GraphAdapter.d.ts +169 -0
- package/dist/code-intelligence/analysis/mincut/GraphAdapter.d.ts.map +1 -0
- package/dist/code-intelligence/analysis/mincut/GraphAdapter.js +335 -0
- package/dist/code-intelligence/analysis/mincut/GraphAdapter.js.map +1 -0
- package/dist/code-intelligence/analysis/mincut/JsMinCut.d.ts +55 -0
- package/dist/code-intelligence/analysis/mincut/JsMinCut.d.ts.map +1 -0
- package/dist/code-intelligence/analysis/mincut/JsMinCut.js +265 -0
- package/dist/code-intelligence/analysis/mincut/JsMinCut.js.map +1 -0
- package/dist/code-intelligence/analysis/mincut/MinCutAnalyzer.d.ts +92 -0
- package/dist/code-intelligence/analysis/mincut/MinCutAnalyzer.d.ts.map +1 -0
- package/dist/code-intelligence/analysis/mincut/MinCutAnalyzer.js +200 -0
- package/dist/code-intelligence/analysis/mincut/MinCutAnalyzer.js.map +1 -0
- package/dist/code-intelligence/analysis/mincut/ModuleCouplingAnalyzer.d.ts +157 -0
- package/dist/code-intelligence/analysis/mincut/ModuleCouplingAnalyzer.d.ts.map +1 -0
- package/dist/code-intelligence/analysis/mincut/ModuleCouplingAnalyzer.js +434 -0
- package/dist/code-intelligence/analysis/mincut/ModuleCouplingAnalyzer.js.map +1 -0
- package/dist/code-intelligence/analysis/mincut/index.d.ts +12 -0
- package/dist/code-intelligence/analysis/mincut/index.d.ts.map +1 -0
- package/dist/code-intelligence/analysis/mincut/index.js +20 -0
- package/dist/code-intelligence/analysis/mincut/index.js.map +1 -0
- package/dist/code-intelligence/analysis/mincut/types.d.ts +145 -0
- package/dist/code-intelligence/analysis/mincut/types.d.ts.map +1 -0
- package/dist/code-intelligence/analysis/mincut/types.js +16 -0
- package/dist/code-intelligence/analysis/mincut/types.js.map +1 -0
- package/dist/code-intelligence/chunking/ASTChunker.d.ts +1 -1
- package/dist/code-intelligence/chunking/ASTChunker.d.ts.map +1 -1
- package/dist/code-intelligence/chunking/ASTChunker.js +4 -4
- package/dist/code-intelligence/chunking/ASTChunker.js.map +1 -1
- package/dist/code-intelligence/graph/GraphBuilder.d.ts +120 -0
- package/dist/code-intelligence/graph/GraphBuilder.d.ts.map +1 -1
- package/dist/code-intelligence/graph/GraphBuilder.js +517 -0
- package/dist/code-intelligence/graph/GraphBuilder.js.map +1 -1
- package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.d.ts.map +1 -1
- package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.js +3 -3
- package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.js.map +1 -1
- package/dist/code-intelligence/parser/{TreeSitterParser.d.ts → WebTreeSitterParser.d.ts} +45 -10
- package/dist/code-intelligence/parser/WebTreeSitterParser.d.ts.map +1 -0
- package/dist/code-intelligence/parser/{TreeSitterParser.js → WebTreeSitterParser.js} +147 -54
- package/dist/code-intelligence/parser/WebTreeSitterParser.js.map +1 -0
- package/dist/code-intelligence/parser/extractors/BaseExtractor.d.ts +12 -10
- package/dist/code-intelligence/parser/extractors/BaseExtractor.d.ts.map +1 -1
- package/dist/code-intelligence/parser/extractors/BaseExtractor.js +7 -3
- package/dist/code-intelligence/parser/extractors/BaseExtractor.js.map +1 -1
- package/dist/code-intelligence/parser/extractors/GoExtractor.d.ts +7 -5
- package/dist/code-intelligence/parser/extractors/GoExtractor.d.ts.map +1 -1
- package/dist/code-intelligence/parser/extractors/GoExtractor.js +2 -2
- package/dist/code-intelligence/parser/extractors/GoExtractor.js.map +1 -1
- package/dist/code-intelligence/parser/extractors/JavaScriptExtractor.d.ts +7 -5
- package/dist/code-intelligence/parser/extractors/JavaScriptExtractor.d.ts.map +1 -1
- package/dist/code-intelligence/parser/extractors/JavaScriptExtractor.js +2 -2
- package/dist/code-intelligence/parser/extractors/JavaScriptExtractor.js.map +1 -1
- package/dist/code-intelligence/parser/extractors/PythonExtractor.d.ts +7 -5
- package/dist/code-intelligence/parser/extractors/PythonExtractor.d.ts.map +1 -1
- package/dist/code-intelligence/parser/extractors/PythonExtractor.js +2 -2
- package/dist/code-intelligence/parser/extractors/PythonExtractor.js.map +1 -1
- package/dist/code-intelligence/parser/extractors/RustExtractor.d.ts +7 -5
- package/dist/code-intelligence/parser/extractors/RustExtractor.d.ts.map +1 -1
- package/dist/code-intelligence/parser/extractors/RustExtractor.js +2 -2
- package/dist/code-intelligence/parser/extractors/RustExtractor.js.map +1 -1
- package/dist/code-intelligence/parser/extractors/TypeScriptExtractor.d.ts +7 -5
- package/dist/code-intelligence/parser/extractors/TypeScriptExtractor.d.ts.map +1 -1
- package/dist/code-intelligence/parser/extractors/TypeScriptExtractor.js +2 -2
- package/dist/code-intelligence/parser/extractors/TypeScriptExtractor.js.map +1 -1
- package/dist/code-intelligence/parser/index.d.ts +7 -1
- package/dist/code-intelligence/parser/index.d.ts.map +1 -1
- package/dist/code-intelligence/parser/index.js +11 -3
- package/dist/code-intelligence/parser/index.js.map +1 -1
- package/dist/code-intelligence/service/CodeIntelligenceService.d.ts.map +1 -1
- package/dist/code-intelligence/service/CodeIntelligenceService.js +7 -5
- package/dist/code-intelligence/service/CodeIntelligenceService.js.map +1 -1
- package/dist/core/memory/HNSWVectorMemory.js +1 -1
- package/dist/coverage/CriticalPathDetector.d.ts +240 -0
- package/dist/coverage/CriticalPathDetector.d.ts.map +1 -0
- package/dist/coverage/CriticalPathDetector.js +388 -0
- package/dist/coverage/CriticalPathDetector.js.map +1 -0
- package/dist/coverage/index.d.ts +13 -0
- package/dist/coverage/index.d.ts.map +1 -0
- package/dist/coverage/index.js +16 -0
- package/dist/coverage/index.js.map +1 -0
- package/dist/fleet/topology/SPOFMonitor.d.ts +181 -0
- package/dist/fleet/topology/SPOFMonitor.d.ts.map +1 -0
- package/dist/fleet/topology/SPOFMonitor.js +286 -0
- package/dist/fleet/topology/SPOFMonitor.js.map +1 -0
- package/dist/fleet/topology/TopologyMinCutAnalyzer.d.ts +87 -0
- package/dist/fleet/topology/TopologyMinCutAnalyzer.d.ts.map +1 -0
- package/dist/fleet/topology/TopologyMinCutAnalyzer.js +472 -0
- package/dist/fleet/topology/TopologyMinCutAnalyzer.js.map +1 -0
- package/dist/fleet/topology/index.d.ts +13 -0
- package/dist/fleet/topology/index.d.ts.map +1 -0
- package/dist/fleet/topology/index.js +20 -0
- package/dist/fleet/topology/index.js.map +1 -0
- package/dist/fleet/topology/types.d.ts +139 -0
- package/dist/fleet/topology/types.d.ts.map +1 -0
- package/dist/fleet/topology/types.js +19 -0
- package/dist/fleet/topology/types.js.map +1 -0
- package/dist/mcp/handlers/test/test-execute-parallel.d.ts +34 -3
- package/dist/mcp/handlers/test/test-execute-parallel.d.ts.map +1 -1
- package/dist/mcp/handlers/test/test-execute-parallel.js +120 -5
- package/dist/mcp/handlers/test/test-execute-parallel.js.map +1 -1
- package/dist/mcp/server-instructions.d.ts +2 -2
- package/dist/mcp/server-instructions.d.ts.map +1 -1
- package/dist/mcp/server-instructions.js +2 -2
- package/dist/monitoring/ProviderHealthMonitor.d.ts +195 -0
- package/dist/monitoring/ProviderHealthMonitor.d.ts.map +1 -0
- package/dist/monitoring/ProviderHealthMonitor.js +431 -0
- package/dist/monitoring/ProviderHealthMonitor.js.map +1 -0
- package/dist/monitoring/QuotaManager.d.ts +122 -0
- package/dist/monitoring/QuotaManager.d.ts.map +1 -0
- package/dist/monitoring/QuotaManager.js +351 -0
- package/dist/monitoring/QuotaManager.js.map +1 -0
- package/dist/providers/GitHubModelsProvider.d.ts +117 -0
- package/dist/providers/GitHubModelsProvider.d.ts.map +1 -0
- package/dist/providers/GitHubModelsProvider.js +464 -0
- package/dist/providers/GitHubModelsProvider.js.map +1 -0
- package/dist/providers/GroqProvider.d.ts +115 -0
- package/dist/providers/GroqProvider.d.ts.map +1 -0
- package/dist/providers/GroqProvider.js +443 -0
- package/dist/providers/GroqProvider.js.map +1 -0
- package/dist/providers/HybridRouterHealthIntegration.d.ts +191 -0
- package/dist/providers/HybridRouterHealthIntegration.d.ts.map +1 -0
- package/dist/providers/HybridRouterHealthIntegration.js +439 -0
- package/dist/providers/HybridRouterHealthIntegration.js.map +1 -0
- package/dist/providers/index.d.ts +6 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +12 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/test/partition/MinCutPartitioner.d.ts +97 -0
- package/dist/test/partition/MinCutPartitioner.d.ts.map +1 -0
- package/dist/test/partition/MinCutPartitioner.js +459 -0
- package/dist/test/partition/MinCutPartitioner.js.map +1 -0
- package/dist/test/partition/RealTestExecutor.d.ts +86 -0
- package/dist/test/partition/RealTestExecutor.d.ts.map +1 -0
- package/dist/test/partition/RealTestExecutor.js +279 -0
- package/dist/test/partition/RealTestExecutor.js.map +1 -0
- package/dist/test/partition/TestDependencyAnalyzer.d.ts +75 -0
- package/dist/test/partition/TestDependencyAnalyzer.d.ts.map +1 -0
- package/dist/test/partition/TestDependencyAnalyzer.js +297 -0
- package/dist/test/partition/TestDependencyAnalyzer.js.map +1 -0
- package/dist/test/partition/index.d.ts +10 -0
- package/dist/test/partition/index.d.ts.map +1 -0
- package/dist/test/partition/index.js +26 -0
- package/dist/test/partition/index.js.map +1 -0
- package/dist/test/partition/types.d.ts +120 -0
- package/dist/test/partition/types.d.ts.map +1 -0
- package/dist/test/partition/types.js +21 -0
- package/dist/test/partition/types.js.map +1 -0
- package/package.json +5 -8
- package/dist/cli/commands/providers.d.ts +0 -50
- package/dist/cli/commands/providers.d.ts.map +0 -1
- package/dist/cli/commands/providers.js +0 -403
- package/dist/cli/commands/providers.js.map +0 -1
- package/dist/code-intelligence/parser/TreeSitterParser.d.ts.map +0 -1
- package/dist/code-intelligence/parser/TreeSitterParser.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CriticalPathDetector.js","sourceRoot":"","sources":["../../src/coverage/CriticalPathDetector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Coverage Analysis Module
|
|
3
|
+
*
|
|
4
|
+
* Provides coverage collection, reporting, and critical path detection
|
|
5
|
+
* for intelligent test prioritization.
|
|
6
|
+
*/
|
|
7
|
+
export { CoverageCollector } from './coverage-collector.js';
|
|
8
|
+
export type { CoverageData, FileCoverage, CoverageCollectorConfig, } from './coverage-collector.js';
|
|
9
|
+
export { CoverageReporter } from './coverage-reporter.js';
|
|
10
|
+
export type { ReportConfig, CoverageReport } from './coverage-reporter.js';
|
|
11
|
+
export { CriticalPathDetector } from './CriticalPathDetector.js';
|
|
12
|
+
export type { CoverageNode, CoverageEdge, CriticalPathInput, CriticalPath, PrioritizedCoverageGap, CriticalPathResult, BottleneckNode, GraphMetrics, CriticalPathConfig, } from './CriticalPathDetector.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/coverage/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,kBAAkB,GACnB,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Coverage Analysis Module
|
|
4
|
+
*
|
|
5
|
+
* Provides coverage collection, reporting, and critical path detection
|
|
6
|
+
* for intelligent test prioritization.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.CriticalPathDetector = exports.CoverageReporter = exports.CoverageCollector = void 0;
|
|
10
|
+
var coverage_collector_js_1 = require("./coverage-collector.js");
|
|
11
|
+
Object.defineProperty(exports, "CoverageCollector", { enumerable: true, get: function () { return coverage_collector_js_1.CoverageCollector; } });
|
|
12
|
+
var coverage_reporter_js_1 = require("./coverage-reporter.js");
|
|
13
|
+
Object.defineProperty(exports, "CoverageReporter", { enumerable: true, get: function () { return coverage_reporter_js_1.CoverageReporter; } });
|
|
14
|
+
var CriticalPathDetector_js_1 = require("./CriticalPathDetector.js");
|
|
15
|
+
Object.defineProperty(exports, "CriticalPathDetector", { enumerable: true, get: function () { return CriticalPathDetector_js_1.CriticalPathDetector; } });
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/coverage/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,iEAA4D;AAAnD,0HAAA,iBAAiB,OAAA;AAO1B,+DAA0D;AAAjD,wHAAA,gBAAgB,OAAA;AAGzB,qEAAiE;AAAxD,+HAAA,oBAAoB,OAAA"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SPOFMonitor - Real-time Single Point of Failure Monitoring
|
|
3
|
+
*
|
|
4
|
+
* Monitors fleet topology changes and automatically detects SPOFs.
|
|
5
|
+
* Emits events when:
|
|
6
|
+
* - Critical SPOFs are detected
|
|
7
|
+
* - Resilience score drops below threshold
|
|
8
|
+
* - Topology changes significantly
|
|
9
|
+
*/
|
|
10
|
+
import { EventEmitter } from 'events';
|
|
11
|
+
import { TopologyMinCutAnalyzer } from './TopologyMinCutAnalyzer.js';
|
|
12
|
+
import { FleetTopology, ResilienceResult, SPOFResult, TopologyAnalysisConfig } from './types.js';
|
|
13
|
+
/**
|
|
14
|
+
* Configuration for SPOF monitoring
|
|
15
|
+
*/
|
|
16
|
+
export interface SPOFMonitorConfig {
|
|
17
|
+
/** Enable/disable monitoring */
|
|
18
|
+
enabled?: boolean;
|
|
19
|
+
/** Minimum time between analyses (debounce) in ms */
|
|
20
|
+
debounceInterval?: number;
|
|
21
|
+
/** Resilience score threshold for warnings */
|
|
22
|
+
resilienceThreshold?: number;
|
|
23
|
+
/** Maximum number of critical SPOFs before alert */
|
|
24
|
+
maxCriticalSpofs?: number;
|
|
25
|
+
/** History size for trend analysis */
|
|
26
|
+
historySize?: number;
|
|
27
|
+
/** Analysis configuration */
|
|
28
|
+
analysisConfig?: TopologyAnalysisConfig;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Default SPOF monitor configuration
|
|
32
|
+
*/
|
|
33
|
+
export declare const DEFAULT_SPOF_MONITOR_CONFIG: Required<SPOFMonitorConfig>;
|
|
34
|
+
/**
|
|
35
|
+
* SPOF monitoring events
|
|
36
|
+
*/
|
|
37
|
+
export type SPOFMonitorEvents = {
|
|
38
|
+
/** Emitted when critical SPOFs are detected */
|
|
39
|
+
'spof:critical': {
|
|
40
|
+
spofs: SPOFResult[];
|
|
41
|
+
result: ResilienceResult;
|
|
42
|
+
};
|
|
43
|
+
/** Emitted when resilience drops below threshold */
|
|
44
|
+
'resilience:low': {
|
|
45
|
+
score: number;
|
|
46
|
+
threshold: number;
|
|
47
|
+
result: ResilienceResult;
|
|
48
|
+
};
|
|
49
|
+
/** Emitted when resilience is restored above threshold */
|
|
50
|
+
'resilience:restored': {
|
|
51
|
+
score: number;
|
|
52
|
+
previousScore: number;
|
|
53
|
+
};
|
|
54
|
+
/** Emitted when topology changes significantly */
|
|
55
|
+
'topology:changed': {
|
|
56
|
+
nodesDelta: number;
|
|
57
|
+
edgesDelta: number;
|
|
58
|
+
};
|
|
59
|
+
/** Emitted after each analysis */
|
|
60
|
+
'analysis:complete': {
|
|
61
|
+
result: ResilienceResult;
|
|
62
|
+
};
|
|
63
|
+
/** Emitted on analysis error */
|
|
64
|
+
'analysis:error': {
|
|
65
|
+
error: Error;
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Resilience history entry
|
|
70
|
+
*/
|
|
71
|
+
interface ResilienceHistoryEntry {
|
|
72
|
+
timestamp: Date;
|
|
73
|
+
score: number;
|
|
74
|
+
grade: ResilienceResult['grade'];
|
|
75
|
+
criticalSpofs: number;
|
|
76
|
+
totalNodes: number;
|
|
77
|
+
totalEdges: number;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Real-time SPOF Monitor
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* const monitor = new SPOFMonitor({
|
|
85
|
+
* resilienceThreshold: 0.7,
|
|
86
|
+
* maxCriticalSpofs: 0,
|
|
87
|
+
* });
|
|
88
|
+
*
|
|
89
|
+
* monitor.on('spof:critical', ({ spofs, result }) => {
|
|
90
|
+
* console.log(`ALERT: ${spofs.length} critical SPOFs detected!`);
|
|
91
|
+
* });
|
|
92
|
+
*
|
|
93
|
+
* // Feed topology updates
|
|
94
|
+
* monitor.onTopologyChanged(newTopology);
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
export declare class SPOFMonitor extends EventEmitter {
|
|
98
|
+
private config;
|
|
99
|
+
private analyzer;
|
|
100
|
+
private lastTopology?;
|
|
101
|
+
private lastResult?;
|
|
102
|
+
private history;
|
|
103
|
+
private analysisTimeout?;
|
|
104
|
+
private isAnalyzing;
|
|
105
|
+
private started;
|
|
106
|
+
constructor(config?: SPOFMonitorConfig);
|
|
107
|
+
/**
|
|
108
|
+
* Start monitoring
|
|
109
|
+
*/
|
|
110
|
+
start(): void;
|
|
111
|
+
/**
|
|
112
|
+
* Stop monitoring
|
|
113
|
+
*/
|
|
114
|
+
stop(): void;
|
|
115
|
+
/**
|
|
116
|
+
* Check if monitoring is active
|
|
117
|
+
*/
|
|
118
|
+
isRunning(): boolean;
|
|
119
|
+
/**
|
|
120
|
+
* Handle topology change event
|
|
121
|
+
*
|
|
122
|
+
* @param topology - New fleet topology
|
|
123
|
+
*/
|
|
124
|
+
onTopologyChanged(topology: FleetTopology): Promise<void>;
|
|
125
|
+
/**
|
|
126
|
+
* Force immediate analysis
|
|
127
|
+
*
|
|
128
|
+
* @param topology - Fleet topology to analyze
|
|
129
|
+
*/
|
|
130
|
+
analyzeNow(topology: FleetTopology): Promise<ResilienceResult>;
|
|
131
|
+
/**
|
|
132
|
+
* Get current resilience status
|
|
133
|
+
*/
|
|
134
|
+
getStatus(): {
|
|
135
|
+
lastResult?: ResilienceResult;
|
|
136
|
+
isHealthy: boolean;
|
|
137
|
+
trend: 'improving' | 'stable' | 'declining' | 'unknown';
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* Get resilience history
|
|
141
|
+
*/
|
|
142
|
+
getHistory(): ResilienceHistoryEntry[];
|
|
143
|
+
/**
|
|
144
|
+
* Schedule debounced analysis
|
|
145
|
+
*/
|
|
146
|
+
private scheduleAnalysis;
|
|
147
|
+
/**
|
|
148
|
+
* Perform resilience analysis
|
|
149
|
+
*/
|
|
150
|
+
private performAnalysis;
|
|
151
|
+
/**
|
|
152
|
+
* Process analysis result and emit appropriate events
|
|
153
|
+
*/
|
|
154
|
+
private processResult;
|
|
155
|
+
/**
|
|
156
|
+
* Add result to history
|
|
157
|
+
*/
|
|
158
|
+
private addToHistory;
|
|
159
|
+
/**
|
|
160
|
+
* Calculate resilience trend from history
|
|
161
|
+
*/
|
|
162
|
+
private calculateTrend;
|
|
163
|
+
/**
|
|
164
|
+
* Get the underlying analyzer
|
|
165
|
+
*/
|
|
166
|
+
getAnalyzer(): TopologyMinCutAnalyzer;
|
|
167
|
+
/**
|
|
168
|
+
* Override EventEmitter.emit for type safety
|
|
169
|
+
*/
|
|
170
|
+
emit<K extends keyof SPOFMonitorEvents>(event: K, data: SPOFMonitorEvents[K]): boolean;
|
|
171
|
+
/**
|
|
172
|
+
* Override EventEmitter.on for type safety
|
|
173
|
+
*/
|
|
174
|
+
on<K extends keyof SPOFMonitorEvents>(event: K, listener: (data: SPOFMonitorEvents[K]) => void): this;
|
|
175
|
+
/**
|
|
176
|
+
* Override EventEmitter.once for type safety
|
|
177
|
+
*/
|
|
178
|
+
once<K extends keyof SPOFMonitorEvents>(event: K, listener: (data: SPOFMonitorEvents[K]) => void): this;
|
|
179
|
+
}
|
|
180
|
+
export {};
|
|
181
|
+
//# sourceMappingURL=SPOFMonitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SPOFMonitor.d.ts","sourceRoot":"","sources":["../../../src/fleet/topology/SPOFMonitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* SPOFMonitor - Real-time Single Point of Failure Monitoring
|
|
4
|
+
*
|
|
5
|
+
* Monitors fleet topology changes and automatically detects SPOFs.
|
|
6
|
+
* Emits events when:
|
|
7
|
+
* - Critical SPOFs are detected
|
|
8
|
+
* - Resilience score drops below threshold
|
|
9
|
+
* - Topology changes significantly
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.SPOFMonitor = exports.DEFAULT_SPOF_MONITOR_CONFIG = void 0;
|
|
13
|
+
const events_1 = require("events");
|
|
14
|
+
const TopologyMinCutAnalyzer_js_1 = require("./TopologyMinCutAnalyzer.js");
|
|
15
|
+
const types_js_1 = require("./types.js");
|
|
16
|
+
const Logger_js_1 = require("../../utils/Logger.js");
|
|
17
|
+
const logger = Logger_js_1.Logger.getInstance();
|
|
18
|
+
/**
|
|
19
|
+
* Default SPOF monitor configuration
|
|
20
|
+
*/
|
|
21
|
+
exports.DEFAULT_SPOF_MONITOR_CONFIG = {
|
|
22
|
+
enabled: true,
|
|
23
|
+
debounceInterval: 5000,
|
|
24
|
+
resilienceThreshold: 0.6,
|
|
25
|
+
maxCriticalSpofs: 0,
|
|
26
|
+
historySize: 50,
|
|
27
|
+
analysisConfig: types_js_1.DEFAULT_TOPOLOGY_ANALYSIS_CONFIG,
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Real-time SPOF Monitor
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const monitor = new SPOFMonitor({
|
|
35
|
+
* resilienceThreshold: 0.7,
|
|
36
|
+
* maxCriticalSpofs: 0,
|
|
37
|
+
* });
|
|
38
|
+
*
|
|
39
|
+
* monitor.on('spof:critical', ({ spofs, result }) => {
|
|
40
|
+
* console.log(`ALERT: ${spofs.length} critical SPOFs detected!`);
|
|
41
|
+
* });
|
|
42
|
+
*
|
|
43
|
+
* // Feed topology updates
|
|
44
|
+
* monitor.onTopologyChanged(newTopology);
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
class SPOFMonitor extends events_1.EventEmitter {
|
|
48
|
+
constructor(config = {}) {
|
|
49
|
+
super();
|
|
50
|
+
this.history = [];
|
|
51
|
+
this.isAnalyzing = false;
|
|
52
|
+
this.started = false;
|
|
53
|
+
this.config = { ...exports.DEFAULT_SPOF_MONITOR_CONFIG, ...config };
|
|
54
|
+
this.analyzer = new TopologyMinCutAnalyzer_js_1.TopologyMinCutAnalyzer(this.config.analysisConfig);
|
|
55
|
+
logger.info('SPOFMonitor initialized', {
|
|
56
|
+
resilienceThreshold: this.config.resilienceThreshold,
|
|
57
|
+
maxCriticalSpofs: this.config.maxCriticalSpofs,
|
|
58
|
+
debounceInterval: this.config.debounceInterval,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Start monitoring
|
|
63
|
+
*/
|
|
64
|
+
start() {
|
|
65
|
+
if (this.started)
|
|
66
|
+
return;
|
|
67
|
+
this.started = true;
|
|
68
|
+
logger.info('SPOFMonitor started');
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Stop monitoring
|
|
72
|
+
*/
|
|
73
|
+
stop() {
|
|
74
|
+
this.started = false;
|
|
75
|
+
if (this.analysisTimeout) {
|
|
76
|
+
clearTimeout(this.analysisTimeout);
|
|
77
|
+
this.analysisTimeout = undefined;
|
|
78
|
+
}
|
|
79
|
+
logger.info('SPOFMonitor stopped');
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Check if monitoring is active
|
|
83
|
+
*/
|
|
84
|
+
isRunning() {
|
|
85
|
+
return this.started && this.config.enabled;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Handle topology change event
|
|
89
|
+
*
|
|
90
|
+
* @param topology - New fleet topology
|
|
91
|
+
*/
|
|
92
|
+
async onTopologyChanged(topology) {
|
|
93
|
+
if (!this.isRunning())
|
|
94
|
+
return;
|
|
95
|
+
// Detect significant changes
|
|
96
|
+
if (this.lastTopology) {
|
|
97
|
+
const nodesDelta = topology.nodes.length - this.lastTopology.nodes.length;
|
|
98
|
+
const edgesDelta = topology.edges.length - this.lastTopology.edges.length;
|
|
99
|
+
if (nodesDelta !== 0 || edgesDelta !== 0) {
|
|
100
|
+
this.emit('topology:changed', { nodesDelta, edgesDelta });
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
this.lastTopology = topology;
|
|
104
|
+
// Debounce analysis
|
|
105
|
+
this.scheduleAnalysis(topology);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Force immediate analysis
|
|
109
|
+
*
|
|
110
|
+
* @param topology - Fleet topology to analyze
|
|
111
|
+
*/
|
|
112
|
+
async analyzeNow(topology) {
|
|
113
|
+
// Cancel any pending debounced analysis
|
|
114
|
+
if (this.analysisTimeout) {
|
|
115
|
+
clearTimeout(this.analysisTimeout);
|
|
116
|
+
this.analysisTimeout = undefined;
|
|
117
|
+
}
|
|
118
|
+
return this.performAnalysis(topology);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Get current resilience status
|
|
122
|
+
*/
|
|
123
|
+
getStatus() {
|
|
124
|
+
const trend = this.calculateTrend();
|
|
125
|
+
const isHealthy = !this.lastResult ||
|
|
126
|
+
(this.lastResult.score >= this.config.resilienceThreshold &&
|
|
127
|
+
this.lastResult.criticalSpofs.length <= this.config.maxCriticalSpofs);
|
|
128
|
+
return {
|
|
129
|
+
lastResult: this.lastResult,
|
|
130
|
+
isHealthy,
|
|
131
|
+
trend,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Get resilience history
|
|
136
|
+
*/
|
|
137
|
+
getHistory() {
|
|
138
|
+
return [...this.history];
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Schedule debounced analysis
|
|
142
|
+
*/
|
|
143
|
+
scheduleAnalysis(topology) {
|
|
144
|
+
if (this.analysisTimeout) {
|
|
145
|
+
clearTimeout(this.analysisTimeout);
|
|
146
|
+
}
|
|
147
|
+
this.analysisTimeout = setTimeout(async () => {
|
|
148
|
+
await this.performAnalysis(topology);
|
|
149
|
+
}, this.config.debounceInterval);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Perform resilience analysis
|
|
153
|
+
*/
|
|
154
|
+
async performAnalysis(topology) {
|
|
155
|
+
if (this.isAnalyzing) {
|
|
156
|
+
logger.warn('Analysis already in progress, skipping');
|
|
157
|
+
return this.lastResult;
|
|
158
|
+
}
|
|
159
|
+
this.isAnalyzing = true;
|
|
160
|
+
try {
|
|
161
|
+
const result = await this.analyzer.analyzeResilience(topology);
|
|
162
|
+
const previousScore = this.lastResult?.score;
|
|
163
|
+
this.lastResult = result;
|
|
164
|
+
this.addToHistory(result, topology);
|
|
165
|
+
// Emit events based on analysis
|
|
166
|
+
this.processResult(result, previousScore);
|
|
167
|
+
this.emit('analysis:complete', { result });
|
|
168
|
+
return result;
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
logger.error('SPOF analysis failed', { error });
|
|
172
|
+
this.emit('analysis:error', { error: error });
|
|
173
|
+
throw error;
|
|
174
|
+
}
|
|
175
|
+
finally {
|
|
176
|
+
this.isAnalyzing = false;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Process analysis result and emit appropriate events
|
|
181
|
+
*/
|
|
182
|
+
processResult(result, previousScore) {
|
|
183
|
+
// Check for critical SPOFs
|
|
184
|
+
if (result.criticalSpofs.length > this.config.maxCriticalSpofs) {
|
|
185
|
+
logger.warn('Critical SPOFs detected', {
|
|
186
|
+
count: result.criticalSpofs.length,
|
|
187
|
+
spofs: result.criticalSpofs.map(s => s.agentId),
|
|
188
|
+
});
|
|
189
|
+
this.emit('spof:critical', { spofs: result.criticalSpofs, result });
|
|
190
|
+
}
|
|
191
|
+
// Check for low resilience
|
|
192
|
+
if (result.score < this.config.resilienceThreshold) {
|
|
193
|
+
logger.warn('Low resilience detected', {
|
|
194
|
+
score: result.score,
|
|
195
|
+
threshold: this.config.resilienceThreshold,
|
|
196
|
+
grade: result.grade,
|
|
197
|
+
});
|
|
198
|
+
this.emit('resilience:low', {
|
|
199
|
+
score: result.score,
|
|
200
|
+
threshold: this.config.resilienceThreshold,
|
|
201
|
+
result,
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
// Check for resilience restoration
|
|
205
|
+
if (previousScore !== undefined &&
|
|
206
|
+
previousScore < this.config.resilienceThreshold &&
|
|
207
|
+
result.score >= this.config.resilienceThreshold) {
|
|
208
|
+
logger.info('Resilience restored', {
|
|
209
|
+
previousScore,
|
|
210
|
+
currentScore: result.score,
|
|
211
|
+
});
|
|
212
|
+
this.emit('resilience:restored', {
|
|
213
|
+
score: result.score,
|
|
214
|
+
previousScore,
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Add result to history
|
|
220
|
+
*/
|
|
221
|
+
addToHistory(result, topology) {
|
|
222
|
+
this.history.push({
|
|
223
|
+
timestamp: new Date(),
|
|
224
|
+
score: result.score,
|
|
225
|
+
grade: result.grade,
|
|
226
|
+
criticalSpofs: result.criticalSpofs.length,
|
|
227
|
+
totalNodes: topology.nodes.length,
|
|
228
|
+
totalEdges: topology.edges.length,
|
|
229
|
+
});
|
|
230
|
+
// Trim history to max size
|
|
231
|
+
if (this.history.length > this.config.historySize) {
|
|
232
|
+
this.history = this.history.slice(-this.config.historySize);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Calculate resilience trend from history
|
|
237
|
+
*/
|
|
238
|
+
calculateTrend() {
|
|
239
|
+
if (this.history.length < 3) {
|
|
240
|
+
return 'unknown';
|
|
241
|
+
}
|
|
242
|
+
// Get last 5 entries (or all if less than 5)
|
|
243
|
+
const recentHistory = this.history.slice(-5);
|
|
244
|
+
const scores = recentHistory.map(h => h.score);
|
|
245
|
+
// Calculate trend using simple linear regression
|
|
246
|
+
const n = scores.length;
|
|
247
|
+
const sumX = (n * (n - 1)) / 2;
|
|
248
|
+
const sumY = scores.reduce((a, b) => a + b, 0);
|
|
249
|
+
const sumXY = scores.reduce((sum, score, i) => sum + i * score, 0);
|
|
250
|
+
const sumX2 = (n * (n - 1) * (2 * n - 1)) / 6;
|
|
251
|
+
const slope = (n * sumXY - sumX * sumY) / (n * sumX2 - sumX * sumX);
|
|
252
|
+
if (slope > 0.05) {
|
|
253
|
+
return 'improving';
|
|
254
|
+
}
|
|
255
|
+
else if (slope < -0.05) {
|
|
256
|
+
return 'declining';
|
|
257
|
+
}
|
|
258
|
+
return 'stable';
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Get the underlying analyzer
|
|
262
|
+
*/
|
|
263
|
+
getAnalyzer() {
|
|
264
|
+
return this.analyzer;
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Override EventEmitter.emit for type safety
|
|
268
|
+
*/
|
|
269
|
+
emit(event, data) {
|
|
270
|
+
return super.emit(event, data);
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Override EventEmitter.on for type safety
|
|
274
|
+
*/
|
|
275
|
+
on(event, listener) {
|
|
276
|
+
return super.on(event, listener);
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Override EventEmitter.once for type safety
|
|
280
|
+
*/
|
|
281
|
+
once(event, listener) {
|
|
282
|
+
return super.once(event, listener);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
exports.SPOFMonitor = SPOFMonitor;
|
|
286
|
+
//# sourceMappingURL=SPOFMonitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SPOFMonitor.js","sourceRoot":"","sources":["../../../src/fleet/topology/SPOFMonitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TopologyMinCutAnalyzer
|
|
3
|
+
*
|
|
4
|
+
* Analyzes fleet topology using min-cut algorithms for:
|
|
5
|
+
* - Single Point of Failure (SPOF) detection
|
|
6
|
+
* - Topology resilience scoring
|
|
7
|
+
* - Connectivity analysis
|
|
8
|
+
* - Optimization recommendations
|
|
9
|
+
*
|
|
10
|
+
* Uses the code-intelligence MinCutAnalyzer internally.
|
|
11
|
+
*/
|
|
12
|
+
import { MinCutGraphInput } from '../../code-intelligence/analysis/mincut/index.js';
|
|
13
|
+
import { FleetTopology, SPOFResult, ResilienceResult, TopologyAnalysisConfig, TopologyOptimization } from './types.js';
|
|
14
|
+
/**
|
|
15
|
+
* Analyzes fleet topology for vulnerabilities and resilience
|
|
16
|
+
*/
|
|
17
|
+
export declare class TopologyMinCutAnalyzer {
|
|
18
|
+
private minCutAnalyzer;
|
|
19
|
+
private config;
|
|
20
|
+
constructor(config?: TopologyAnalysisConfig);
|
|
21
|
+
/**
|
|
22
|
+
* Analyze fleet topology for resilience and SPOFs
|
|
23
|
+
*
|
|
24
|
+
* @param topology - Fleet topology to analyze
|
|
25
|
+
* @returns Comprehensive resilience analysis result
|
|
26
|
+
*/
|
|
27
|
+
analyzeResilience(topology: FleetTopology): Promise<ResilienceResult>;
|
|
28
|
+
/**
|
|
29
|
+
* Detect Single Points of Failure in the topology
|
|
30
|
+
*
|
|
31
|
+
* A SPOF is a node whose removal disconnects part of the graph.
|
|
32
|
+
*
|
|
33
|
+
* @param topology - Fleet topology
|
|
34
|
+
* @param graph - Graph representation (optional, will be computed if not provided)
|
|
35
|
+
* @returns Array of SPOF results
|
|
36
|
+
*/
|
|
37
|
+
detectSpofs(topology: FleetTopology, graph?: MinCutGraphInput): Promise<SPOFResult[]>;
|
|
38
|
+
/**
|
|
39
|
+
* Get topology optimization suggestions
|
|
40
|
+
*
|
|
41
|
+
* @param topology - Current fleet topology
|
|
42
|
+
* @param resilienceResult - Optional pre-computed resilience result
|
|
43
|
+
* @returns Array of optimization suggestions
|
|
44
|
+
*/
|
|
45
|
+
suggestOptimizations(topology: FleetTopology, resilienceResult?: ResilienceResult): Promise<TopologyOptimization[]>;
|
|
46
|
+
/**
|
|
47
|
+
* Convert fleet topology to min-cut graph format
|
|
48
|
+
*/
|
|
49
|
+
private topologyToGraph;
|
|
50
|
+
/**
|
|
51
|
+
* Remove a node from the graph
|
|
52
|
+
*/
|
|
53
|
+
private removeNodeFromGraph;
|
|
54
|
+
/**
|
|
55
|
+
* Check if graph is connected using BFS
|
|
56
|
+
*/
|
|
57
|
+
private isGraphConnected;
|
|
58
|
+
/**
|
|
59
|
+
* Find connected components in the graph
|
|
60
|
+
*/
|
|
61
|
+
private findConnectedComponents;
|
|
62
|
+
/**
|
|
63
|
+
* Calculate resilience score (0-1)
|
|
64
|
+
*/
|
|
65
|
+
private calculateResilienceScore;
|
|
66
|
+
/**
|
|
67
|
+
* Calculate average path redundancy
|
|
68
|
+
*/
|
|
69
|
+
private calculatePathRedundancy;
|
|
70
|
+
/**
|
|
71
|
+
* Determine SPOF severity
|
|
72
|
+
*/
|
|
73
|
+
private determineSPOFSeverity;
|
|
74
|
+
/**
|
|
75
|
+
* Generate recommendations for overall topology
|
|
76
|
+
*/
|
|
77
|
+
private generateRecommendations;
|
|
78
|
+
/**
|
|
79
|
+
* Generate recommendations for specific SPOF
|
|
80
|
+
*/
|
|
81
|
+
private generateSPOFRecommendations;
|
|
82
|
+
/**
|
|
83
|
+
* Calculate topology grade (A-F)
|
|
84
|
+
*/
|
|
85
|
+
private calculateGrade;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=TopologyMinCutAnalyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TopologyMinCutAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/fleet/topology/TopologyMinCutAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAkB,gBAAgB,EAAgB,MAAM,kDAAkD,CAAC;AAElH,OAAO,EACL,aAAa,EAGb,UAAU,EACV,gBAAgB,EAChB,sBAAsB,EAEtB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAIpB;;GAEG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,MAAM,CAAmC;gBAErC,MAAM,GAAE,sBAA2B;IAW/C;;;;;OAKG;IACU,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAsDlF;;;;;;;;OAQG;IACU,WAAW,CACtB,QAAQ,EAAE,aAAa,EACvB,KAAK,CAAC,EAAE,gBAAgB,GACvB,OAAO,CAAC,UAAU,EAAE,CAAC;IAkExB;;;;;;OAMG;IACU,oBAAoB,CAC/B,QAAQ,EAAE,aAAa,EACvB,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAuElC;;OAEG;IACH,OAAO,CAAC,eAAe;IAmDvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;YACW,gBAAgB;IAiC9B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAuC/B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAsChC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAwB/B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAuB7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAmD/B;;OAEG;IACH,OAAO,CAAC,2BAA2B;IA4BnC;;OAEG;IACH,OAAO,CAAC,cAAc;CAavB"}
|