agentic-qe 2.1.2 → 2.2.1
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/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 +138 -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.d.ts.map +1 -1
- package/dist/agents/index.js +5 -1
- 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/di/AgentDependencies.d.ts +127 -0
- package/dist/core/di/AgentDependencies.d.ts.map +1 -0
- package/dist/core/di/AgentDependencies.js +251 -0
- package/dist/core/di/AgentDependencies.js.map +1 -0
- package/dist/core/di/DIContainer.d.ts +149 -0
- package/dist/core/di/DIContainer.d.ts.map +1 -0
- package/dist/core/di/DIContainer.js +333 -0
- package/dist/core/di/DIContainer.js.map +1 -0
- package/dist/core/di/index.d.ts +11 -0
- package/dist/core/di/index.d.ts.map +1 -0
- package/dist/core/di/index.js +22 -0
- package/dist/core/di/index.js.map +1 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +11 -1
- package/dist/core/index.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/ExperienceSharingProtocol.d.ts +243 -0
- package/dist/learning/ExperienceSharingProtocol.d.ts.map +1 -0
- package/dist/learning/ExperienceSharingProtocol.js +538 -0
- package/dist/learning/ExperienceSharingProtocol.js.map +1 -0
- 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 +104 -4
- package/dist/learning/LearningEngine.d.ts.map +1 -1
- package/dist/learning/LearningEngine.js +350 -16
- 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/QLearning.d.ts +38 -125
- package/dist/learning/QLearning.d.ts.map +1 -1
- package/dist/learning/QLearning.js +46 -267
- package/dist/learning/QLearning.js.map +1 -1
- package/dist/learning/QLearningLegacy.d.ts +154 -0
- package/dist/learning/QLearningLegacy.d.ts.map +1 -0
- package/dist/learning/QLearningLegacy.js +337 -0
- package/dist/learning/QLearningLegacy.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/AbstractRLLearner.d.ts +162 -0
- package/dist/learning/algorithms/AbstractRLLearner.d.ts.map +1 -0
- package/dist/learning/algorithms/AbstractRLLearner.js +300 -0
- package/dist/learning/algorithms/AbstractRLLearner.js.map +1 -0
- package/dist/learning/algorithms/ActorCriticLearner.d.ts +201 -0
- package/dist/learning/algorithms/ActorCriticLearner.d.ts.map +1 -0
- package/dist/learning/algorithms/ActorCriticLearner.js +447 -0
- package/dist/learning/algorithms/ActorCriticLearner.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/PPOLearner.d.ts +207 -0
- package/dist/learning/algorithms/PPOLearner.d.ts.map +1 -0
- package/dist/learning/algorithms/PPOLearner.js +490 -0
- package/dist/learning/algorithms/PPOLearner.js.map +1 -0
- package/dist/learning/algorithms/QLearning.d.ts +68 -0
- package/dist/learning/algorithms/QLearning.d.ts.map +1 -0
- package/dist/learning/algorithms/QLearning.js +116 -0
- package/dist/learning/algorithms/QLearning.js.map +1 -0
- package/dist/learning/algorithms/SARSALearner.d.ts +107 -0
- package/dist/learning/algorithms/SARSALearner.d.ts.map +1 -0
- package/dist/learning/algorithms/SARSALearner.js +252 -0
- package/dist/learning/algorithms/SARSALearner.js.map +1 -0
- package/dist/learning/algorithms/index.d.ts +32 -0
- package/dist/learning/algorithms/index.d.ts.map +1 -0
- package/dist/learning/algorithms/index.js +50 -0
- package/dist/learning/algorithms/index.js.map +1 -0
- package/dist/learning/index.d.ts +11 -0
- package/dist/learning/index.d.ts.map +1 -1
- package/dist/learning/index.js +31 -1
- package/dist/learning/index.js.map +1 -1
- package/dist/learning/types.d.ts +2 -0
- package/dist/learning/types.d.ts.map +1 -1
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.js +1 -1
- package/dist/memory/DistributedPatternLibrary.d.ts +159 -0
- package/dist/memory/DistributedPatternLibrary.d.ts.map +1 -0
- package/dist/memory/DistributedPatternLibrary.js +370 -0
- package/dist/memory/DistributedPatternLibrary.js.map +1 -0
- package/dist/memory/PatternQualityScorer.d.ts +169 -0
- package/dist/memory/PatternQualityScorer.d.ts.map +1 -0
- package/dist/memory/PatternQualityScorer.js +327 -0
- package/dist/memory/PatternQualityScorer.js.map +1 -0
- package/dist/memory/PatternReplicationService.d.ts +187 -0
- package/dist/memory/PatternReplicationService.d.ts.map +1 -0
- package/dist/memory/PatternReplicationService.js +392 -0
- package/dist/memory/PatternReplicationService.js.map +1 -0
- package/dist/providers/ClaudeProvider.d.ts +98 -0
- package/dist/providers/ClaudeProvider.d.ts.map +1 -0
- package/dist/providers/ClaudeProvider.js +418 -0
- package/dist/providers/ClaudeProvider.js.map +1 -0
- 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/ILLMProvider.d.ts +287 -0
- package/dist/providers/ILLMProvider.d.ts.map +1 -0
- package/dist/providers/ILLMProvider.js +33 -0
- package/dist/providers/ILLMProvider.js.map +1 -0
- package/dist/providers/LLMProviderFactory.d.ts +154 -0
- package/dist/providers/LLMProviderFactory.d.ts.map +1 -0
- package/dist/providers/LLMProviderFactory.js +426 -0
- package/dist/providers/LLMProviderFactory.js.map +1 -0
- package/dist/providers/RuvllmProvider.d.ts +107 -0
- package/dist/providers/RuvllmProvider.d.ts.map +1 -0
- package/dist/providers/RuvllmProvider.js +417 -0
- package/dist/providers/RuvllmProvider.js.map +1 -0
- package/dist/providers/index.d.ts +32 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +75 -0
- package/dist/providers/index.js.map +1 -0
- 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 +1 -1
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Learning Telemetry for Agentic QE Fleet
|
|
3
|
+
*
|
|
4
|
+
* OpenTelemetry integration for tracking learning metrics, algorithm performance,
|
|
5
|
+
* and agent improvement over time using reinforcement learning.
|
|
6
|
+
*
|
|
7
|
+
* Tracks:
|
|
8
|
+
* - Learning episodes and Q-value updates
|
|
9
|
+
* - Reward distribution and convergence
|
|
10
|
+
* - Pattern discovery and matching
|
|
11
|
+
* - Algorithm performance and switches
|
|
12
|
+
* - Experience sharing metrics
|
|
13
|
+
*/
|
|
14
|
+
import { Meter, Counter, Histogram, UpDownCounter, ObservableGauge } from '@opentelemetry/api';
|
|
15
|
+
import { MetricRecordOptions } from './types';
|
|
16
|
+
import { RLAlgorithmType } from '../learning/LearningEngine';
|
|
17
|
+
/**
|
|
18
|
+
* Learning metrics registry
|
|
19
|
+
*/
|
|
20
|
+
export interface LearningMetrics {
|
|
21
|
+
/** Total number of learning episodes recorded */
|
|
22
|
+
episodesTotal: Counter;
|
|
23
|
+
/** Total number of Q-value updates performed */
|
|
24
|
+
qValueUpdates: Counter;
|
|
25
|
+
/** Total sum of rewards received across all episodes */
|
|
26
|
+
rewardSum: Counter;
|
|
27
|
+
/** Number of algorithm switches performed */
|
|
28
|
+
algorithmSwitches: Counter;
|
|
29
|
+
/** Number of pattern cache hits */
|
|
30
|
+
patternHits: Counter;
|
|
31
|
+
/** Number of pattern cache misses */
|
|
32
|
+
patternMisses: Counter;
|
|
33
|
+
/** Distribution of episode durations in milliseconds */
|
|
34
|
+
episodeDuration: Histogram;
|
|
35
|
+
/** Distribution of reward values */
|
|
36
|
+
rewardDistribution: Histogram;
|
|
37
|
+
/** Distribution of Q-values */
|
|
38
|
+
qValueDistribution: Histogram;
|
|
39
|
+
/** Distribution of pattern confidence scores */
|
|
40
|
+
patternConfidence: Histogram;
|
|
41
|
+
/** Current learning rate */
|
|
42
|
+
learningRate: ObservableGauge;
|
|
43
|
+
/** Current exploration rate */
|
|
44
|
+
explorationRate: ObservableGauge;
|
|
45
|
+
/** Current convergence rate */
|
|
46
|
+
convergenceRate: ObservableGauge;
|
|
47
|
+
/** Size of Q-table (state-action pairs) */
|
|
48
|
+
qTableSize: ObservableGauge;
|
|
49
|
+
/** Number of experiences in replay buffer */
|
|
50
|
+
experienceBufferSize: ObservableGauge;
|
|
51
|
+
/** Pattern hit rate (cache efficiency) */
|
|
52
|
+
patternHitRate: ObservableGauge;
|
|
53
|
+
/** Number of experiences shared with peers */
|
|
54
|
+
experiencesShared: Counter;
|
|
55
|
+
/** Number of experiences received from peers */
|
|
56
|
+
experiencesReceived: Counter;
|
|
57
|
+
/** Number of active experience sharing connections */
|
|
58
|
+
activeSharingConnections: UpDownCounter;
|
|
59
|
+
}
|
|
60
|
+
declare const gaugeValues: {
|
|
61
|
+
learningRate: number;
|
|
62
|
+
explorationRate: number;
|
|
63
|
+
convergenceRate: number;
|
|
64
|
+
qTableSize: number;
|
|
65
|
+
experienceBufferSize: number;
|
|
66
|
+
patternHitRate: number;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Initialize learning metrics
|
|
70
|
+
*
|
|
71
|
+
* @param meter - OpenTelemetry Meter instance
|
|
72
|
+
* @returns Learning metrics registry
|
|
73
|
+
*/
|
|
74
|
+
export declare function createLearningMetrics(meter?: Meter): LearningMetrics;
|
|
75
|
+
/**
|
|
76
|
+
* Get initialized learning metrics
|
|
77
|
+
*
|
|
78
|
+
* @returns Learning metrics registry
|
|
79
|
+
*/
|
|
80
|
+
export declare function getLearningMetrics(): LearningMetrics;
|
|
81
|
+
/**
|
|
82
|
+
* Record a learning episode
|
|
83
|
+
*
|
|
84
|
+
* @param agentId - Agent identifier
|
|
85
|
+
* @param taskType - Type of task being learned
|
|
86
|
+
* @param reward - Reward received for this episode
|
|
87
|
+
* @param durationMs - Episode duration in milliseconds
|
|
88
|
+
* @param algorithm - RL algorithm used
|
|
89
|
+
* @param options - Additional recording options
|
|
90
|
+
*/
|
|
91
|
+
export declare function recordLearningEpisode(agentId: string, taskType: string, reward: number, durationMs: number, algorithm?: RLAlgorithmType, options?: {
|
|
92
|
+
qValueUpdate?: boolean;
|
|
93
|
+
patternDiscovered?: boolean;
|
|
94
|
+
explorationRate?: number;
|
|
95
|
+
learningRate?: number;
|
|
96
|
+
}): void;
|
|
97
|
+
/**
|
|
98
|
+
* Record Q-value updates
|
|
99
|
+
*
|
|
100
|
+
* @param agentId - Agent identifier
|
|
101
|
+
* @param count - Number of Q-value updates
|
|
102
|
+
* @param qValue - The Q-value (optional, for distribution tracking)
|
|
103
|
+
* @param algorithm - RL algorithm used
|
|
104
|
+
*/
|
|
105
|
+
export declare function recordQValueUpdate(agentId: string, count?: number, qValue?: number, algorithm?: RLAlgorithmType): void;
|
|
106
|
+
/**
|
|
107
|
+
* Record pattern matching activity
|
|
108
|
+
*
|
|
109
|
+
* @param agentId - Agent identifier
|
|
110
|
+
* @param hit - Whether the pattern was found in cache
|
|
111
|
+
* @param confidence - Pattern confidence score (if hit)
|
|
112
|
+
* @param patternType - Type of pattern
|
|
113
|
+
*/
|
|
114
|
+
export declare function recordPatternMatch(agentId: string, hit: boolean, confidence?: number, patternType?: string): void;
|
|
115
|
+
/**
|
|
116
|
+
* Record algorithm switch
|
|
117
|
+
*
|
|
118
|
+
* @param agentId - Agent identifier
|
|
119
|
+
* @param fromAlgorithm - Previous algorithm
|
|
120
|
+
* @param toAlgorithm - New algorithm
|
|
121
|
+
*/
|
|
122
|
+
export declare function recordAlgorithmSwitch(agentId: string, fromAlgorithm: RLAlgorithmType, toAlgorithm: RLAlgorithmType): void;
|
|
123
|
+
/**
|
|
124
|
+
* Record experience sharing activity
|
|
125
|
+
*
|
|
126
|
+
* @param agentId - Agent identifier
|
|
127
|
+
* @param direction - 'shared' or 'received'
|
|
128
|
+
* @param count - Number of experiences
|
|
129
|
+
* @param priority - Experience priority (0-1)
|
|
130
|
+
*/
|
|
131
|
+
export declare function recordExperienceSharing(agentId: string, direction: 'shared' | 'received', count?: number, priority?: number): void;
|
|
132
|
+
/**
|
|
133
|
+
* Update sharing connection count
|
|
134
|
+
*
|
|
135
|
+
* @param agentId - Agent identifier
|
|
136
|
+
* @param delta - Change in connection count (+1 for connect, -1 for disconnect)
|
|
137
|
+
*/
|
|
138
|
+
export declare function updateSharingConnections(agentId: string, delta: number): void;
|
|
139
|
+
/**
|
|
140
|
+
* Update gauge values (for observable metrics)
|
|
141
|
+
*
|
|
142
|
+
* @param gauge - Gauge name
|
|
143
|
+
* @param value - New value
|
|
144
|
+
*/
|
|
145
|
+
export declare function updateGaugeValue(gauge: keyof typeof gaugeValues, value: number): void;
|
|
146
|
+
/**
|
|
147
|
+
* Update multiple gauge values at once
|
|
148
|
+
*
|
|
149
|
+
* @param values - Object with gauge values to update
|
|
150
|
+
*/
|
|
151
|
+
export declare function updateGaugeValues(values: Partial<typeof gaugeValues>): void;
|
|
152
|
+
/**
|
|
153
|
+
* Create a traced learning operation span
|
|
154
|
+
*
|
|
155
|
+
* @param operationName - Name of the learning operation
|
|
156
|
+
* @param agentId - Agent identifier
|
|
157
|
+
* @param fn - Function to execute within the span
|
|
158
|
+
* @returns Result of the function
|
|
159
|
+
*/
|
|
160
|
+
export declare function withLearningSpan<T>(operationName: string, agentId: string, fn: () => Promise<T>): Promise<T>;
|
|
161
|
+
/**
|
|
162
|
+
* Record learning session summary
|
|
163
|
+
* Call this periodically or at session end to capture overall metrics
|
|
164
|
+
*
|
|
165
|
+
* @param agentId - Agent identifier
|
|
166
|
+
* @param stats - Learning statistics
|
|
167
|
+
*/
|
|
168
|
+
export declare function recordLearningSession(agentId: string, stats: {
|
|
169
|
+
algorithm: RLAlgorithmType;
|
|
170
|
+
totalEpisodes: number;
|
|
171
|
+
totalExperiences: number;
|
|
172
|
+
qTableSize: number;
|
|
173
|
+
explorationRate: number;
|
|
174
|
+
learningRate: number;
|
|
175
|
+
convergenceRate?: number;
|
|
176
|
+
avgReward?: number;
|
|
177
|
+
patternsDiscovered?: number;
|
|
178
|
+
}): void;
|
|
179
|
+
/**
|
|
180
|
+
* Get current pattern hit rate
|
|
181
|
+
*
|
|
182
|
+
* @returns Pattern hit rate (0-1)
|
|
183
|
+
*/
|
|
184
|
+
export declare function getPatternHitRate(): number;
|
|
185
|
+
/**
|
|
186
|
+
* Reset pattern hit tracking (useful for testing or per-session metrics)
|
|
187
|
+
*/
|
|
188
|
+
export declare function resetPatternHitTracking(): void;
|
|
189
|
+
export type { MetricRecordOptions };
|
|
190
|
+
//# sourceMappingURL=LearningTelemetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LearningTelemetry.d.ts","sourceRoot":"","sources":["../../src/telemetry/LearningTelemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Learning Telemetry for Agentic QE Fleet
|
|
4
|
+
*
|
|
5
|
+
* OpenTelemetry integration for tracking learning metrics, algorithm performance,
|
|
6
|
+
* and agent improvement over time using reinforcement learning.
|
|
7
|
+
*
|
|
8
|
+
* Tracks:
|
|
9
|
+
* - Learning episodes and Q-value updates
|
|
10
|
+
* - Reward distribution and convergence
|
|
11
|
+
* - Pattern discovery and matching
|
|
12
|
+
* - Algorithm performance and switches
|
|
13
|
+
* - Experience sharing metrics
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.createLearningMetrics = createLearningMetrics;
|
|
17
|
+
exports.getLearningMetrics = getLearningMetrics;
|
|
18
|
+
exports.recordLearningEpisode = recordLearningEpisode;
|
|
19
|
+
exports.recordQValueUpdate = recordQValueUpdate;
|
|
20
|
+
exports.recordPatternMatch = recordPatternMatch;
|
|
21
|
+
exports.recordAlgorithmSwitch = recordAlgorithmSwitch;
|
|
22
|
+
exports.recordExperienceSharing = recordExperienceSharing;
|
|
23
|
+
exports.updateSharingConnections = updateSharingConnections;
|
|
24
|
+
exports.updateGaugeValue = updateGaugeValue;
|
|
25
|
+
exports.updateGaugeValues = updateGaugeValues;
|
|
26
|
+
exports.withLearningSpan = withLearningSpan;
|
|
27
|
+
exports.recordLearningSession = recordLearningSession;
|
|
28
|
+
exports.getPatternHitRate = getPatternHitRate;
|
|
29
|
+
exports.resetPatternHitTracking = resetPatternHitTracking;
|
|
30
|
+
const bootstrap_1 = require("./bootstrap");
|
|
31
|
+
// Singleton metrics instance
|
|
32
|
+
let learningMetrics = null;
|
|
33
|
+
// Storage for observable gauge values
|
|
34
|
+
const gaugeValues = {
|
|
35
|
+
learningRate: 0,
|
|
36
|
+
explorationRate: 0,
|
|
37
|
+
convergenceRate: 0,
|
|
38
|
+
qTableSize: 0,
|
|
39
|
+
experienceBufferSize: 0,
|
|
40
|
+
patternHitRate: 0,
|
|
41
|
+
};
|
|
42
|
+
// Pattern hit tracking
|
|
43
|
+
let totalPatternRequests = 0;
|
|
44
|
+
let totalPatternHits = 0;
|
|
45
|
+
/**
|
|
46
|
+
* Initialize learning metrics
|
|
47
|
+
*
|
|
48
|
+
* @param meter - OpenTelemetry Meter instance
|
|
49
|
+
* @returns Learning metrics registry
|
|
50
|
+
*/
|
|
51
|
+
function createLearningMetrics(meter) {
|
|
52
|
+
if (learningMetrics) {
|
|
53
|
+
return learningMetrics;
|
|
54
|
+
}
|
|
55
|
+
const m = meter || (0, bootstrap_1.getMeter)();
|
|
56
|
+
learningMetrics = {
|
|
57
|
+
// Counters
|
|
58
|
+
episodesTotal: m.createCounter('aqe.learning.episodes_total', {
|
|
59
|
+
description: 'Total number of learning episodes recorded',
|
|
60
|
+
unit: 'episodes',
|
|
61
|
+
}),
|
|
62
|
+
qValueUpdates: m.createCounter('aqe.learning.qvalue_updates', {
|
|
63
|
+
description: 'Total number of Q-value updates performed',
|
|
64
|
+
unit: 'updates',
|
|
65
|
+
}),
|
|
66
|
+
rewardSum: m.createCounter('aqe.learning.reward_sum', {
|
|
67
|
+
description: 'Cumulative sum of rewards received across all episodes',
|
|
68
|
+
unit: 'reward',
|
|
69
|
+
}),
|
|
70
|
+
algorithmSwitches: m.createCounter('aqe.learning.algorithm_switches', {
|
|
71
|
+
description: 'Number of RL algorithm switches performed',
|
|
72
|
+
unit: 'switches',
|
|
73
|
+
}),
|
|
74
|
+
patternHits: m.createCounter('aqe.learning.pattern_hits', {
|
|
75
|
+
description: 'Number of successful pattern cache hits',
|
|
76
|
+
unit: 'hits',
|
|
77
|
+
}),
|
|
78
|
+
patternMisses: m.createCounter('aqe.learning.pattern_misses', {
|
|
79
|
+
description: 'Number of pattern cache misses',
|
|
80
|
+
unit: 'misses',
|
|
81
|
+
}),
|
|
82
|
+
experiencesShared: m.createCounter('aqe.learning.experiences_shared', {
|
|
83
|
+
description: 'Number of experiences shared with peer agents',
|
|
84
|
+
unit: 'experiences',
|
|
85
|
+
}),
|
|
86
|
+
experiencesReceived: m.createCounter('aqe.learning.experiences_received', {
|
|
87
|
+
description: 'Number of experiences received from peer agents',
|
|
88
|
+
unit: 'experiences',
|
|
89
|
+
}),
|
|
90
|
+
// Histograms
|
|
91
|
+
episodeDuration: m.createHistogram('aqe.learning.episode_duration', {
|
|
92
|
+
description: 'Distribution of learning episode durations',
|
|
93
|
+
unit: 'ms',
|
|
94
|
+
advice: {
|
|
95
|
+
explicitBucketBoundaries: [10, 50, 100, 250, 500, 1000, 2500, 5000, 10000],
|
|
96
|
+
},
|
|
97
|
+
}),
|
|
98
|
+
rewardDistribution: m.createHistogram('aqe.learning.reward_distribution', {
|
|
99
|
+
description: 'Distribution of reward values across episodes',
|
|
100
|
+
unit: 'reward',
|
|
101
|
+
advice: {
|
|
102
|
+
explicitBucketBoundaries: [-2, -1.5, -1, -0.5, 0, 0.5, 1, 1.5, 2],
|
|
103
|
+
},
|
|
104
|
+
}),
|
|
105
|
+
qValueDistribution: m.createHistogram('aqe.learning.qvalue_distribution', {
|
|
106
|
+
description: 'Distribution of Q-values in the Q-table',
|
|
107
|
+
unit: 'qvalue',
|
|
108
|
+
advice: {
|
|
109
|
+
explicitBucketBoundaries: [-5, -2, -1, 0, 1, 2, 5, 10, 20, 50],
|
|
110
|
+
},
|
|
111
|
+
}),
|
|
112
|
+
patternConfidence: m.createHistogram('aqe.learning.pattern_confidence', {
|
|
113
|
+
description: 'Distribution of pattern confidence scores',
|
|
114
|
+
unit: 'confidence',
|
|
115
|
+
advice: {
|
|
116
|
+
explicitBucketBoundaries: [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.95, 1.0],
|
|
117
|
+
},
|
|
118
|
+
}),
|
|
119
|
+
// Observable Gauges
|
|
120
|
+
learningRate: m.createObservableGauge('aqe.learning.learning_rate', {
|
|
121
|
+
description: 'Current learning rate (alpha)',
|
|
122
|
+
unit: 'rate',
|
|
123
|
+
}),
|
|
124
|
+
explorationRate: m.createObservableGauge('aqe.learning.exploration_rate', {
|
|
125
|
+
description: 'Current exploration rate (epsilon)',
|
|
126
|
+
unit: 'rate',
|
|
127
|
+
}),
|
|
128
|
+
convergenceRate: m.createObservableGauge('aqe.learning.convergence_rate', {
|
|
129
|
+
description: 'Learning convergence rate (improvement over time)',
|
|
130
|
+
unit: 'rate',
|
|
131
|
+
}),
|
|
132
|
+
qTableSize: m.createObservableGauge('aqe.learning.qtable_size', {
|
|
133
|
+
description: 'Number of state-action pairs in Q-table',
|
|
134
|
+
unit: 'pairs',
|
|
135
|
+
}),
|
|
136
|
+
experienceBufferSize: m.createObservableGauge('aqe.learning.experience_buffer_size', {
|
|
137
|
+
description: 'Number of experiences in replay buffer',
|
|
138
|
+
unit: 'experiences',
|
|
139
|
+
}),
|
|
140
|
+
patternHitRate: m.createObservableGauge('aqe.learning.pattern_hit_rate', {
|
|
141
|
+
description: 'Pattern cache hit rate (efficiency)',
|
|
142
|
+
unit: 'rate',
|
|
143
|
+
}),
|
|
144
|
+
activeSharingConnections: m.createUpDownCounter('aqe.learning.active_sharing_connections', {
|
|
145
|
+
description: 'Number of active experience sharing connections',
|
|
146
|
+
unit: 'connections',
|
|
147
|
+
}),
|
|
148
|
+
};
|
|
149
|
+
// Register observable callbacks
|
|
150
|
+
learningMetrics.learningRate.addCallback((observableResult) => {
|
|
151
|
+
observableResult.observe(gaugeValues.learningRate);
|
|
152
|
+
});
|
|
153
|
+
learningMetrics.explorationRate.addCallback((observableResult) => {
|
|
154
|
+
observableResult.observe(gaugeValues.explorationRate);
|
|
155
|
+
});
|
|
156
|
+
learningMetrics.convergenceRate.addCallback((observableResult) => {
|
|
157
|
+
observableResult.observe(gaugeValues.convergenceRate);
|
|
158
|
+
});
|
|
159
|
+
learningMetrics.qTableSize.addCallback((observableResult) => {
|
|
160
|
+
observableResult.observe(gaugeValues.qTableSize);
|
|
161
|
+
});
|
|
162
|
+
learningMetrics.experienceBufferSize.addCallback((observableResult) => {
|
|
163
|
+
observableResult.observe(gaugeValues.experienceBufferSize);
|
|
164
|
+
});
|
|
165
|
+
learningMetrics.patternHitRate.addCallback((observableResult) => {
|
|
166
|
+
observableResult.observe(gaugeValues.patternHitRate);
|
|
167
|
+
});
|
|
168
|
+
return learningMetrics;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Get initialized learning metrics
|
|
172
|
+
*
|
|
173
|
+
* @returns Learning metrics registry
|
|
174
|
+
*/
|
|
175
|
+
function getLearningMetrics() {
|
|
176
|
+
if (!learningMetrics) {
|
|
177
|
+
return createLearningMetrics();
|
|
178
|
+
}
|
|
179
|
+
return learningMetrics;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Record a learning episode
|
|
183
|
+
*
|
|
184
|
+
* @param agentId - Agent identifier
|
|
185
|
+
* @param taskType - Type of task being learned
|
|
186
|
+
* @param reward - Reward received for this episode
|
|
187
|
+
* @param durationMs - Episode duration in milliseconds
|
|
188
|
+
* @param algorithm - RL algorithm used
|
|
189
|
+
* @param options - Additional recording options
|
|
190
|
+
*/
|
|
191
|
+
function recordLearningEpisode(agentId, taskType, reward, durationMs, algorithm = 'q-learning', options) {
|
|
192
|
+
const metrics = getLearningMetrics();
|
|
193
|
+
const attributes = {
|
|
194
|
+
'agent.id': agentId,
|
|
195
|
+
'task.type': taskType,
|
|
196
|
+
'learning.algorithm': algorithm,
|
|
197
|
+
};
|
|
198
|
+
// Record episode
|
|
199
|
+
metrics.episodesTotal.add(1, attributes);
|
|
200
|
+
// Record episode duration
|
|
201
|
+
metrics.episodeDuration.record(durationMs, attributes);
|
|
202
|
+
// Record reward
|
|
203
|
+
metrics.rewardSum.add(reward, attributes);
|
|
204
|
+
metrics.rewardDistribution.record(reward, attributes);
|
|
205
|
+
// Record Q-value update if occurred
|
|
206
|
+
if (options?.qValueUpdate) {
|
|
207
|
+
metrics.qValueUpdates.add(1, attributes);
|
|
208
|
+
}
|
|
209
|
+
// Update gauge values if provided
|
|
210
|
+
if (options?.explorationRate !== undefined) {
|
|
211
|
+
updateGaugeValue('explorationRate', options.explorationRate);
|
|
212
|
+
}
|
|
213
|
+
if (options?.learningRate !== undefined) {
|
|
214
|
+
updateGaugeValue('learningRate', options.learningRate);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Record Q-value updates
|
|
219
|
+
*
|
|
220
|
+
* @param agentId - Agent identifier
|
|
221
|
+
* @param count - Number of Q-value updates
|
|
222
|
+
* @param qValue - The Q-value (optional, for distribution tracking)
|
|
223
|
+
* @param algorithm - RL algorithm used
|
|
224
|
+
*/
|
|
225
|
+
function recordQValueUpdate(agentId, count = 1, qValue, algorithm = 'q-learning') {
|
|
226
|
+
const metrics = getLearningMetrics();
|
|
227
|
+
const attributes = {
|
|
228
|
+
'agent.id': agentId,
|
|
229
|
+
'learning.algorithm': algorithm,
|
|
230
|
+
};
|
|
231
|
+
metrics.qValueUpdates.add(count, attributes);
|
|
232
|
+
// Record Q-value distribution if provided
|
|
233
|
+
if (qValue !== undefined) {
|
|
234
|
+
metrics.qValueDistribution.record(qValue, attributes);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Record pattern matching activity
|
|
239
|
+
*
|
|
240
|
+
* @param agentId - Agent identifier
|
|
241
|
+
* @param hit - Whether the pattern was found in cache
|
|
242
|
+
* @param confidence - Pattern confidence score (if hit)
|
|
243
|
+
* @param patternType - Type of pattern
|
|
244
|
+
*/
|
|
245
|
+
function recordPatternMatch(agentId, hit, confidence, patternType) {
|
|
246
|
+
const metrics = getLearningMetrics();
|
|
247
|
+
const attributes = {
|
|
248
|
+
'agent.id': agentId,
|
|
249
|
+
};
|
|
250
|
+
if (patternType) {
|
|
251
|
+
attributes['pattern.type'] = patternType;
|
|
252
|
+
}
|
|
253
|
+
// Track hit/miss
|
|
254
|
+
totalPatternRequests++;
|
|
255
|
+
if (hit) {
|
|
256
|
+
totalPatternHits++;
|
|
257
|
+
metrics.patternHits.add(1, attributes);
|
|
258
|
+
// Record confidence if provided
|
|
259
|
+
if (confidence !== undefined) {
|
|
260
|
+
metrics.patternConfidence.record(confidence, attributes);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
metrics.patternMisses.add(1, attributes);
|
|
265
|
+
}
|
|
266
|
+
// Update hit rate
|
|
267
|
+
updateGaugeValue('patternHitRate', totalPatternRequests > 0 ? totalPatternHits / totalPatternRequests : 0);
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Record algorithm switch
|
|
271
|
+
*
|
|
272
|
+
* @param agentId - Agent identifier
|
|
273
|
+
* @param fromAlgorithm - Previous algorithm
|
|
274
|
+
* @param toAlgorithm - New algorithm
|
|
275
|
+
*/
|
|
276
|
+
function recordAlgorithmSwitch(agentId, fromAlgorithm, toAlgorithm) {
|
|
277
|
+
const metrics = getLearningMetrics();
|
|
278
|
+
metrics.algorithmSwitches.add(1, {
|
|
279
|
+
'agent.id': agentId,
|
|
280
|
+
'learning.algorithm.from': fromAlgorithm,
|
|
281
|
+
'learning.algorithm.to': toAlgorithm,
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Record experience sharing activity
|
|
286
|
+
*
|
|
287
|
+
* @param agentId - Agent identifier
|
|
288
|
+
* @param direction - 'shared' or 'received'
|
|
289
|
+
* @param count - Number of experiences
|
|
290
|
+
* @param priority - Experience priority (0-1)
|
|
291
|
+
*/
|
|
292
|
+
function recordExperienceSharing(agentId, direction, count = 1, priority) {
|
|
293
|
+
const metrics = getLearningMetrics();
|
|
294
|
+
const attributes = {
|
|
295
|
+
'agent.id': agentId,
|
|
296
|
+
};
|
|
297
|
+
if (priority !== undefined) {
|
|
298
|
+
attributes['experience.priority'] = priority;
|
|
299
|
+
}
|
|
300
|
+
if (direction === 'shared') {
|
|
301
|
+
metrics.experiencesShared.add(count, attributes);
|
|
302
|
+
}
|
|
303
|
+
else {
|
|
304
|
+
metrics.experiencesReceived.add(count, attributes);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Update sharing connection count
|
|
309
|
+
*
|
|
310
|
+
* @param agentId - Agent identifier
|
|
311
|
+
* @param delta - Change in connection count (+1 for connect, -1 for disconnect)
|
|
312
|
+
*/
|
|
313
|
+
function updateSharingConnections(agentId, delta) {
|
|
314
|
+
const metrics = getLearningMetrics();
|
|
315
|
+
metrics.activeSharingConnections.add(delta, {
|
|
316
|
+
'agent.id': agentId,
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Update gauge values (for observable metrics)
|
|
321
|
+
*
|
|
322
|
+
* @param gauge - Gauge name
|
|
323
|
+
* @param value - New value
|
|
324
|
+
*/
|
|
325
|
+
function updateGaugeValue(gauge, value) {
|
|
326
|
+
gaugeValues[gauge] = value;
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Update multiple gauge values at once
|
|
330
|
+
*
|
|
331
|
+
* @param values - Object with gauge values to update
|
|
332
|
+
*/
|
|
333
|
+
function updateGaugeValues(values) {
|
|
334
|
+
Object.assign(gaugeValues, values);
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Create a traced learning operation span
|
|
338
|
+
*
|
|
339
|
+
* @param operationName - Name of the learning operation
|
|
340
|
+
* @param agentId - Agent identifier
|
|
341
|
+
* @param fn - Function to execute within the span
|
|
342
|
+
* @returns Result of the function
|
|
343
|
+
*/
|
|
344
|
+
async function withLearningSpan(operationName, agentId, fn) {
|
|
345
|
+
return (0, bootstrap_1.withSpan)(`aqe.learning.${operationName}`, async () => {
|
|
346
|
+
const tracer = (0, bootstrap_1.getTracer)();
|
|
347
|
+
const currentSpan = tracer.startActiveSpan(operationName, (span) => {
|
|
348
|
+
span.setAttribute('agent.id', agentId);
|
|
349
|
+
span.setAttribute('operation.type', 'learning');
|
|
350
|
+
return span;
|
|
351
|
+
});
|
|
352
|
+
try {
|
|
353
|
+
const result = await fn();
|
|
354
|
+
return result;
|
|
355
|
+
}
|
|
356
|
+
finally {
|
|
357
|
+
currentSpan?.end();
|
|
358
|
+
}
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Record learning session summary
|
|
363
|
+
* Call this periodically or at session end to capture overall metrics
|
|
364
|
+
*
|
|
365
|
+
* @param agentId - Agent identifier
|
|
366
|
+
* @param stats - Learning statistics
|
|
367
|
+
*/
|
|
368
|
+
function recordLearningSession(agentId, stats) {
|
|
369
|
+
// Update all gauge values
|
|
370
|
+
updateGaugeValues({
|
|
371
|
+
learningRate: stats.learningRate,
|
|
372
|
+
explorationRate: stats.explorationRate,
|
|
373
|
+
convergenceRate: stats.convergenceRate || 0,
|
|
374
|
+
qTableSize: stats.qTableSize,
|
|
375
|
+
experienceBufferSize: stats.totalExperiences,
|
|
376
|
+
});
|
|
377
|
+
// Record average reward if provided
|
|
378
|
+
if (stats.avgReward !== undefined) {
|
|
379
|
+
const metrics = getLearningMetrics();
|
|
380
|
+
metrics.rewardDistribution.record(stats.avgReward, {
|
|
381
|
+
'agent.id': agentId,
|
|
382
|
+
'learning.algorithm': stats.algorithm,
|
|
383
|
+
'session.type': 'summary',
|
|
384
|
+
});
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Get current pattern hit rate
|
|
389
|
+
*
|
|
390
|
+
* @returns Pattern hit rate (0-1)
|
|
391
|
+
*/
|
|
392
|
+
function getPatternHitRate() {
|
|
393
|
+
return totalPatternRequests > 0 ? totalPatternHits / totalPatternRequests : 0;
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Reset pattern hit tracking (useful for testing or per-session metrics)
|
|
397
|
+
*/
|
|
398
|
+
function resetPatternHitTracking() {
|
|
399
|
+
totalPatternRequests = 0;
|
|
400
|
+
totalPatternHits = 0;
|
|
401
|
+
updateGaugeValue('patternHitRate', 0);
|
|
402
|
+
}
|
|
403
|
+
//# sourceMappingURL=LearningTelemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LearningTelemetry.js","sourceRoot":"","sources":["../../src/telemetry/LearningTelemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
export { initTelemetry, shutdownTelemetry, getTracer, getMeter, isTelemetryInitialized, withSpan, recordSpanEvent, setSpanAttributes, defaultTelemetryConfig, } from './bootstrap';
|
|
7
7
|
export { TelemetryConfig, TelemetryInitResult, TelemetryShutdownResult, AgentAttributes, TaskAttributes, QEAttributes, ModelAttributes, MetricRecordOptions, METRIC_NAMES, HISTOGRAM_BOUNDARIES, SPAN_NAMES, } from './types';
|
|
8
8
|
export * from './metrics';
|
|
9
|
+
export { LearningMetrics, createLearningMetrics, getLearningMetrics, recordLearningEpisode, recordQValueUpdate, recordPatternMatch, recordAlgorithmSwitch, recordExperienceSharing, updateSharingConnections, updateGaugeValue, updateGaugeValues, withLearningSpan, recordLearningSession, getPatternHitRate, resetPatternHitTracking, } from './LearningTelemetry';
|
|
9
10
|
/**
|
|
10
11
|
* Quick start function for initializing telemetry with defaults
|
|
11
12
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,sBAAsB,EACtB,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,UAAU,GACX,MAAM,SAAS,CAAC;AAGjB,cAAc,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,sBAAsB,EACtB,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,UAAU,GACX,MAAM,SAAS,CAAC;AAGjB,cAAc,WAAW,CAAC;AAG1B,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,kDAkB7D"}
|