agentic-qe 2.0.0 → 2.1.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.
Files changed (144) hide show
  1. package/.claude/agents/qx-partner.md +17 -4
  2. package/.claude/skills/accessibility-testing/SKILL.md +144 -692
  3. package/.claude/skills/agentic-quality-engineering/SKILL.md +176 -529
  4. package/.claude/skills/api-testing-patterns/SKILL.md +180 -560
  5. package/.claude/skills/brutal-honesty-review/SKILL.md +113 -603
  6. package/.claude/skills/bug-reporting-excellence/SKILL.md +116 -517
  7. package/.claude/skills/chaos-engineering-resilience/SKILL.md +127 -72
  8. package/.claude/skills/cicd-pipeline-qe-orchestrator/SKILL.md +209 -404
  9. package/.claude/skills/code-review-quality/SKILL.md +158 -608
  10. package/.claude/skills/compatibility-testing/SKILL.md +148 -38
  11. package/.claude/skills/compliance-testing/SKILL.md +132 -63
  12. package/.claude/skills/consultancy-practices/SKILL.md +114 -446
  13. package/.claude/skills/context-driven-testing/SKILL.md +117 -381
  14. package/.claude/skills/contract-testing/SKILL.md +176 -141
  15. package/.claude/skills/database-testing/SKILL.md +137 -130
  16. package/.claude/skills/exploratory-testing-advanced/SKILL.md +160 -629
  17. package/.claude/skills/holistic-testing-pact/SKILL.md +140 -188
  18. package/.claude/skills/localization-testing/SKILL.md +145 -33
  19. package/.claude/skills/mobile-testing/SKILL.md +132 -448
  20. package/.claude/skills/mutation-testing/SKILL.md +147 -41
  21. package/.claude/skills/performance-testing/SKILL.md +200 -546
  22. package/.claude/skills/quality-metrics/SKILL.md +164 -519
  23. package/.claude/skills/refactoring-patterns/SKILL.md +132 -699
  24. package/.claude/skills/regression-testing/SKILL.md +120 -926
  25. package/.claude/skills/risk-based-testing/SKILL.md +157 -660
  26. package/.claude/skills/security-testing/SKILL.md +199 -538
  27. package/.claude/skills/sherlock-review/SKILL.md +163 -699
  28. package/.claude/skills/shift-left-testing/SKILL.md +161 -465
  29. package/.claude/skills/shift-right-testing/SKILL.md +161 -519
  30. package/.claude/skills/six-thinking-hats/SKILL.md +175 -1110
  31. package/.claude/skills/skills-manifest.json +71 -20
  32. package/.claude/skills/tdd-london-chicago/SKILL.md +131 -448
  33. package/.claude/skills/technical-writing/SKILL.md +103 -154
  34. package/.claude/skills/test-automation-strategy/SKILL.md +166 -772
  35. package/.claude/skills/test-data-management/SKILL.md +126 -910
  36. package/.claude/skills/test-design-techniques/SKILL.md +179 -89
  37. package/.claude/skills/test-environment-management/SKILL.md +136 -91
  38. package/.claude/skills/test-reporting-analytics/SKILL.md +169 -92
  39. package/.claude/skills/testability-scoring/SKILL.md +172 -538
  40. package/.claude/skills/testability-scoring/scripts/generate-html-report.js +0 -0
  41. package/.claude/skills/visual-testing-advanced/SKILL.md +155 -78
  42. package/.claude/skills/xp-practices/SKILL.md +151 -587
  43. package/CHANGELOG.md +86 -0
  44. package/README.md +23 -16
  45. package/dist/agents/QXPartnerAgent.d.ts +47 -1
  46. package/dist/agents/QXPartnerAgent.d.ts.map +1 -1
  47. package/dist/agents/QXPartnerAgent.js +2086 -125
  48. package/dist/agents/QXPartnerAgent.js.map +1 -1
  49. package/dist/agents/lifecycle/AgentLifecycleManager.d.ts.map +1 -1
  50. package/dist/agents/lifecycle/AgentLifecycleManager.js +34 -31
  51. package/dist/agents/lifecycle/AgentLifecycleManager.js.map +1 -1
  52. package/dist/cli/commands/init-claude-md-template.d.ts.map +1 -1
  53. package/dist/cli/commands/init-claude-md-template.js +14 -0
  54. package/dist/cli/commands/init-claude-md-template.js.map +1 -1
  55. package/dist/core/SwarmCoordinator.d.ts +180 -0
  56. package/dist/core/SwarmCoordinator.d.ts.map +1 -0
  57. package/dist/core/SwarmCoordinator.js +473 -0
  58. package/dist/core/SwarmCoordinator.js.map +1 -0
  59. package/dist/core/memory/ReflexionMemoryAdapter.d.ts +109 -0
  60. package/dist/core/memory/ReflexionMemoryAdapter.d.ts.map +1 -0
  61. package/dist/core/memory/ReflexionMemoryAdapter.js +306 -0
  62. package/dist/core/memory/ReflexionMemoryAdapter.js.map +1 -0
  63. package/dist/core/memory/RuVectorPatternStore.d.ts +28 -0
  64. package/dist/core/memory/RuVectorPatternStore.d.ts.map +1 -1
  65. package/dist/core/memory/RuVectorPatternStore.js +70 -0
  66. package/dist/core/memory/RuVectorPatternStore.js.map +1 -1
  67. package/dist/core/memory/SparseVectorSearch.d.ts +55 -0
  68. package/dist/core/memory/SparseVectorSearch.d.ts.map +1 -0
  69. package/dist/core/memory/SparseVectorSearch.js +130 -0
  70. package/dist/core/memory/SparseVectorSearch.js.map +1 -0
  71. package/dist/core/memory/TieredCompression.d.ts +81 -0
  72. package/dist/core/memory/TieredCompression.d.ts.map +1 -0
  73. package/dist/core/memory/TieredCompression.js +270 -0
  74. package/dist/core/memory/TieredCompression.js.map +1 -0
  75. package/dist/core/memory/index.d.ts +6 -0
  76. package/dist/core/memory/index.d.ts.map +1 -1
  77. package/dist/core/memory/index.js +29 -1
  78. package/dist/core/memory/index.js.map +1 -1
  79. package/dist/core/metrics/MetricsAggregator.d.ts +228 -0
  80. package/dist/core/metrics/MetricsAggregator.d.ts.map +1 -0
  81. package/dist/core/metrics/MetricsAggregator.js +482 -0
  82. package/dist/core/metrics/MetricsAggregator.js.map +1 -0
  83. package/dist/core/metrics/index.d.ts +5 -0
  84. package/dist/core/metrics/index.d.ts.map +1 -0
  85. package/dist/core/metrics/index.js +11 -0
  86. package/dist/core/metrics/index.js.map +1 -0
  87. package/dist/core/optimization/SwarmOptimizer.d.ts +5 -0
  88. package/dist/core/optimization/SwarmOptimizer.d.ts.map +1 -1
  89. package/dist/core/optimization/SwarmOptimizer.js +17 -0
  90. package/dist/core/optimization/SwarmOptimizer.js.map +1 -1
  91. package/dist/core/orchestration/AdaptiveScheduler.d.ts +190 -0
  92. package/dist/core/orchestration/AdaptiveScheduler.d.ts.map +1 -0
  93. package/dist/core/orchestration/AdaptiveScheduler.js +460 -0
  94. package/dist/core/orchestration/AdaptiveScheduler.js.map +1 -0
  95. package/dist/core/orchestration/WorkflowOrchestrator.d.ts +13 -0
  96. package/dist/core/orchestration/WorkflowOrchestrator.d.ts.map +1 -1
  97. package/dist/core/orchestration/WorkflowOrchestrator.js +32 -0
  98. package/dist/core/orchestration/WorkflowOrchestrator.js.map +1 -1
  99. package/dist/core/recovery/CircuitBreaker.d.ts +176 -0
  100. package/dist/core/recovery/CircuitBreaker.d.ts.map +1 -0
  101. package/dist/core/recovery/CircuitBreaker.js +382 -0
  102. package/dist/core/recovery/CircuitBreaker.js.map +1 -0
  103. package/dist/core/recovery/RecoveryOrchestrator.d.ts +186 -0
  104. package/dist/core/recovery/RecoveryOrchestrator.d.ts.map +1 -0
  105. package/dist/core/recovery/RecoveryOrchestrator.js +476 -0
  106. package/dist/core/recovery/RecoveryOrchestrator.js.map +1 -0
  107. package/dist/core/recovery/RetryStrategy.d.ts +127 -0
  108. package/dist/core/recovery/RetryStrategy.d.ts.map +1 -0
  109. package/dist/core/recovery/RetryStrategy.js +314 -0
  110. package/dist/core/recovery/RetryStrategy.js.map +1 -0
  111. package/dist/core/recovery/index.d.ts +8 -0
  112. package/dist/core/recovery/index.d.ts.map +1 -0
  113. package/dist/core/recovery/index.js +27 -0
  114. package/dist/core/recovery/index.js.map +1 -0
  115. package/dist/core/skills/DependencyResolver.d.ts +99 -0
  116. package/dist/core/skills/DependencyResolver.d.ts.map +1 -0
  117. package/dist/core/skills/DependencyResolver.js +260 -0
  118. package/dist/core/skills/DependencyResolver.js.map +1 -0
  119. package/dist/core/skills/ManifestGenerator.d.ts +114 -0
  120. package/dist/core/skills/ManifestGenerator.d.ts.map +1 -0
  121. package/dist/core/skills/ManifestGenerator.js +449 -0
  122. package/dist/core/skills/ManifestGenerator.js.map +1 -0
  123. package/dist/core/skills/index.d.ts +9 -0
  124. package/dist/core/skills/index.d.ts.map +1 -0
  125. package/dist/core/skills/index.js +24 -0
  126. package/dist/core/skills/index.js.map +1 -0
  127. package/dist/mcp/handlers/chaos/chaos-inject-failure.d.ts +5 -0
  128. package/dist/mcp/handlers/chaos/chaos-inject-failure.d.ts.map +1 -1
  129. package/dist/mcp/handlers/chaos/chaos-inject-failure.js +36 -2
  130. package/dist/mcp/handlers/chaos/chaos-inject-failure.js.map +1 -1
  131. package/dist/mcp/handlers/chaos/chaos-inject-latency.d.ts +5 -0
  132. package/dist/mcp/handlers/chaos/chaos-inject-latency.d.ts.map +1 -1
  133. package/dist/mcp/handlers/chaos/chaos-inject-latency.js +36 -2
  134. package/dist/mcp/handlers/chaos/chaos-inject-latency.js.map +1 -1
  135. package/dist/mcp/server.d.ts +9 -9
  136. package/dist/mcp/server.d.ts.map +1 -1
  137. package/dist/mcp/server.js +1 -2
  138. package/dist/mcp/server.js.map +1 -1
  139. package/dist/types/qx.d.ts +113 -7
  140. package/dist/types/qx.d.ts.map +1 -1
  141. package/dist/types/qx.js.map +1 -1
  142. package/dist/visualization/api/RestEndpoints.js +1 -1
  143. package/dist/visualization/api/RestEndpoints.js.map +1 -1
  144. package/package.json +15 -54
@@ -0,0 +1,260 @@
1
+ "use strict";
2
+ /**
3
+ * Dependency Resolver for Skill Loading
4
+ * Handles skill dependency graphs with cycle detection and optimal load ordering
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.DependencyResolver = void 0;
8
+ exports.createDependencyResolver = createDependencyResolver;
9
+ exports.visualizeDependencyTree = visualizeDependencyTree;
10
+ /**
11
+ * Skill Dependency Resolver
12
+ * Resolves skill dependencies with cycle detection and optimal ordering
13
+ */
14
+ class DependencyResolver {
15
+ constructor(manifest, options = {}) {
16
+ this.manifest = manifest;
17
+ this.skillMap = new Map(manifest.skills.map(s => [s.id, s]));
18
+ this.options = {
19
+ maxDepth: 10,
20
+ includeOptional: true,
21
+ cycleStrategy: 'warn',
22
+ ...options,
23
+ };
24
+ }
25
+ /**
26
+ * Resolve dependencies for a single skill
27
+ */
28
+ resolve(skillId) {
29
+ return this.resolveMultiple([skillId]);
30
+ }
31
+ /**
32
+ * Resolve dependencies for multiple skills
33
+ */
34
+ resolveMultiple(skillIds) {
35
+ const visited = new Set();
36
+ const loadOrder = [];
37
+ const cycles = [];
38
+ const unresolved = [];
39
+ // Build dependency tree for each skill
40
+ const trees = [];
41
+ for (const skillId of skillIds) {
42
+ const result = this.buildDependencyTree(skillId, [], 0, visited);
43
+ trees.push(result.node);
44
+ cycles.push(...result.cycles);
45
+ unresolved.push(...result.unresolved);
46
+ }
47
+ // Topological sort for optimal load order
48
+ const sortedOrder = this.topologicalSort(skillIds);
49
+ loadOrder.push(...sortedOrder);
50
+ // Merge trees into single root
51
+ const mergedTree = {
52
+ id: 'root',
53
+ depth: -1,
54
+ dependencies: trees,
55
+ };
56
+ return {
57
+ loadOrder,
58
+ tree: mergedTree,
59
+ cycles: this.deduplicateCycles(cycles),
60
+ unresolved,
61
+ };
62
+ }
63
+ /**
64
+ * Get all skills that depend on a given skill (reverse dependencies)
65
+ */
66
+ getDependents(skillId) {
67
+ const dependents = [];
68
+ for (const skill of this.manifest.skills) {
69
+ if (skill.dependencies?.includes(skillId)) {
70
+ dependents.push(skill.id);
71
+ }
72
+ }
73
+ return dependents;
74
+ }
75
+ /**
76
+ * Get direct dependencies of a skill
77
+ */
78
+ getDirectDependencies(skillId) {
79
+ const skill = this.skillMap.get(skillId);
80
+ return skill?.dependencies || [];
81
+ }
82
+ /**
83
+ * Get all transitive dependencies (full dependency closure)
84
+ */
85
+ getTransitiveDependencies(skillId) {
86
+ const resolution = this.resolve(skillId);
87
+ return resolution.loadOrder.filter(id => id !== skillId);
88
+ }
89
+ /**
90
+ * Check if adding a dependency would create a cycle
91
+ */
92
+ wouldCreateCycle(fromSkillId, toSkillId) {
93
+ // Check if toSkillId already depends on fromSkillId
94
+ const deps = this.getTransitiveDependencies(toSkillId);
95
+ return deps.includes(fromSkillId);
96
+ }
97
+ /**
98
+ * Build dependency tree recursively
99
+ */
100
+ buildDependencyTree(skillId, path, depth, globalVisited) {
101
+ const cycles = [];
102
+ const unresolved = [];
103
+ // Check for cycle
104
+ if (path.includes(skillId)) {
105
+ const cycleStart = path.indexOf(skillId);
106
+ const cycle = [...path.slice(cycleStart), skillId];
107
+ cycles.push(cycle);
108
+ if (this.options.cycleStrategy === 'error') {
109
+ throw new Error(`Circular dependency detected: ${cycle.join(' -> ')}`);
110
+ }
111
+ // Return leaf node to break cycle
112
+ return {
113
+ node: { id: skillId, depth, dependencies: [] },
114
+ cycles,
115
+ unresolved,
116
+ };
117
+ }
118
+ // Check max depth
119
+ if (depth > this.options.maxDepth) {
120
+ return {
121
+ node: { id: skillId, depth, dependencies: [] },
122
+ cycles,
123
+ unresolved,
124
+ };
125
+ }
126
+ const skill = this.skillMap.get(skillId);
127
+ if (!skill) {
128
+ return {
129
+ node: { id: skillId, depth, dependencies: [] },
130
+ cycles,
131
+ unresolved: [{ skillId, missing: [skillId] }],
132
+ };
133
+ }
134
+ // Check for missing dependencies
135
+ const missing = (skill.dependencies || []).filter(dep => !this.skillMap.has(dep));
136
+ if (missing.length > 0) {
137
+ unresolved.push({ skillId, missing });
138
+ }
139
+ // Build children
140
+ const dependencies = [];
141
+ const newPath = [...path, skillId];
142
+ for (const depId of skill.dependencies || []) {
143
+ if (!this.skillMap.has(depId))
144
+ continue;
145
+ if (globalVisited.has(depId) && !path.includes(depId)) {
146
+ // Already fully processed, add as leaf
147
+ dependencies.push({ id: depId, depth: depth + 1, dependencies: [] });
148
+ }
149
+ else {
150
+ const result = this.buildDependencyTree(depId, newPath, depth + 1, globalVisited);
151
+ dependencies.push(result.node);
152
+ cycles.push(...result.cycles);
153
+ unresolved.push(...result.unresolved);
154
+ }
155
+ }
156
+ globalVisited.add(skillId);
157
+ return {
158
+ node: { id: skillId, depth, dependencies },
159
+ cycles,
160
+ unresolved,
161
+ };
162
+ }
163
+ /**
164
+ * Topological sort for optimal load order (dependencies first)
165
+ */
166
+ topologicalSort(startIds) {
167
+ const result = [];
168
+ const visited = new Set();
169
+ const visiting = new Set(); // For cycle detection
170
+ const visit = (skillId) => {
171
+ if (visited.has(skillId))
172
+ return;
173
+ if (visiting.has(skillId))
174
+ return; // Cycle, skip
175
+ visiting.add(skillId);
176
+ const skill = this.skillMap.get(skillId);
177
+ if (skill?.dependencies) {
178
+ for (const depId of skill.dependencies) {
179
+ if (this.skillMap.has(depId)) {
180
+ visit(depId);
181
+ }
182
+ }
183
+ }
184
+ visiting.delete(skillId);
185
+ visited.add(skillId);
186
+ result.push(skillId);
187
+ };
188
+ // Start from requested skills
189
+ for (const startId of startIds) {
190
+ visit(startId);
191
+ }
192
+ return result;
193
+ }
194
+ /**
195
+ * Deduplicate cycle arrays (same cycle may be detected from different starting points)
196
+ */
197
+ deduplicateCycles(cycles) {
198
+ const seen = new Set();
199
+ const unique = [];
200
+ for (const cycle of cycles) {
201
+ // Normalize cycle by starting from smallest element
202
+ const normalized = this.normalizeCycle(cycle);
203
+ const key = normalized.join('->');
204
+ if (!seen.has(key)) {
205
+ seen.add(key);
206
+ unique.push(normalized);
207
+ }
208
+ }
209
+ return unique;
210
+ }
211
+ /**
212
+ * Normalize cycle to start from smallest element for deduplication
213
+ */
214
+ normalizeCycle(cycle) {
215
+ if (cycle.length <= 1)
216
+ return cycle;
217
+ // Remove duplicate end if present
218
+ const normalized = cycle[0] === cycle[cycle.length - 1]
219
+ ? cycle.slice(0, -1)
220
+ : cycle;
221
+ // Find index of smallest element
222
+ let minIndex = 0;
223
+ for (let i = 1; i < normalized.length; i++) {
224
+ if (normalized[i] < normalized[minIndex]) {
225
+ minIndex = i;
226
+ }
227
+ }
228
+ // Rotate to start from smallest
229
+ return [...normalized.slice(minIndex), ...normalized.slice(0, minIndex)];
230
+ }
231
+ }
232
+ exports.DependencyResolver = DependencyResolver;
233
+ /**
234
+ * Create a dependency resolver from manifest
235
+ */
236
+ function createDependencyResolver(manifest, options) {
237
+ return new DependencyResolver(manifest, options);
238
+ }
239
+ /**
240
+ * Visualize dependency tree as ASCII art
241
+ */
242
+ function visualizeDependencyTree(node, prefix = '') {
243
+ const lines = [];
244
+ if (node.id !== 'root') {
245
+ lines.push(`${prefix}${node.id}`);
246
+ }
247
+ const childPrefix = node.id === 'root' ? '' : prefix + ' ';
248
+ for (let i = 0; i < node.dependencies.length; i++) {
249
+ const child = node.dependencies[i];
250
+ const isLast = i === node.dependencies.length - 1;
251
+ const connector = isLast ? '└── ' : '├── ';
252
+ const nextPrefix = childPrefix + (isLast ? ' ' : '│ ');
253
+ lines.push(`${childPrefix}${connector}${child.id}`);
254
+ if (child.dependencies.length > 0) {
255
+ lines.push(visualizeDependencyTree(child, nextPrefix));
256
+ }
257
+ }
258
+ return lines.join('\n');
259
+ }
260
+ //# sourceMappingURL=DependencyResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DependencyResolver.js","sourceRoot":"","sources":["../../../src/core/skills/DependencyResolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Manifest Generator for Dynamic Skill Loading
3
+ * Scans skill directories and generates/updates skills-manifest.json
4
+ */
5
+ import { SkillManifest, SkillPriority } from './types.js';
6
+ /**
7
+ * Configuration for manifest generation
8
+ */
9
+ export interface ManifestGeneratorConfig {
10
+ /** Path to skills directory */
11
+ skillsDir: string;
12
+ /** Output path for manifest */
13
+ outputPath: string;
14
+ /** Default priority for skills without explicit priority */
15
+ defaultPriority: SkillPriority;
16
+ /** Estimate tokens per line of content */
17
+ tokensPerLine: number;
18
+ }
19
+ /**
20
+ * Manifest Generator for creating and updating skill manifests
21
+ */
22
+ export declare class ManifestGenerator {
23
+ private config;
24
+ constructor(config?: Partial<ManifestGeneratorConfig>);
25
+ /**
26
+ * Generate manifest from skill directories
27
+ */
28
+ generate(): Promise<SkillManifest>;
29
+ /**
30
+ * Update existing manifest with new/changed skills
31
+ */
32
+ update(): Promise<SkillManifest>;
33
+ /**
34
+ * Validate existing manifest against actual skill files
35
+ */
36
+ validate(): Promise<{
37
+ valid: boolean;
38
+ errors: string[];
39
+ warnings: string[];
40
+ }>;
41
+ /**
42
+ * Scan skill directories and extract metadata
43
+ */
44
+ private scanSkillDirectories;
45
+ /**
46
+ * Get list of skill directories
47
+ */
48
+ private getSkillDirectories;
49
+ /**
50
+ * Extract metadata from a skill directory
51
+ */
52
+ private extractMetadata;
53
+ /**
54
+ * Parse YAML frontmatter from markdown
55
+ */
56
+ private parseFrontmatter;
57
+ /**
58
+ * Detect category based on skill ID and frontmatter
59
+ */
60
+ private detectCategory;
61
+ /**
62
+ * Check if category is valid
63
+ */
64
+ private isValidCategory;
65
+ /**
66
+ * Detect priority based on skill ID and frontmatter
67
+ */
68
+ private detectPriority;
69
+ /**
70
+ * Extract description from content (first paragraph after frontmatter)
71
+ */
72
+ private extractDescription;
73
+ /**
74
+ * Extract keywords from frontmatter and content
75
+ */
76
+ private extractKeywords;
77
+ /**
78
+ * Estimate token count for content
79
+ */
80
+ private estimateTokens;
81
+ /**
82
+ * Format skill ID as human-readable name
83
+ */
84
+ private formatName;
85
+ /**
86
+ * Calculate category counts
87
+ */
88
+ private calculateCategoryCounts;
89
+ /**
90
+ * Get file modification time
91
+ */
92
+ private getFileStats;
93
+ /**
94
+ * Write manifest to file
95
+ */
96
+ private writeManifest;
97
+ }
98
+ /**
99
+ * CLI entry point for manifest generation
100
+ */
101
+ export declare function generateManifest(options?: Partial<ManifestGeneratorConfig>): Promise<SkillManifest>;
102
+ /**
103
+ * CLI entry point for manifest update
104
+ */
105
+ export declare function updateManifest(options?: Partial<ManifestGeneratorConfig>): Promise<SkillManifest>;
106
+ /**
107
+ * CLI entry point for manifest validation
108
+ */
109
+ export declare function validateManifest(options?: Partial<ManifestGeneratorConfig>): Promise<{
110
+ valid: boolean;
111
+ errors: string[];
112
+ warnings: string[];
113
+ }>;
114
+ //# sourceMappingURL=ManifestGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ManifestGenerator.d.ts","sourceRoot":"","sources":["../../../src/core/skills/ManifestGenerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAiB,aAAa,EAAiB,aAAa,EAAE,MAAM,YAAY,CAAC;AAExF;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,eAAe,EAAE,aAAa,CAAC;IAC/B,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAC;CACvB;AAoCD;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAA0B;gBAE5B,MAAM,GAAE,OAAO,CAAC,uBAAuB,CAAM;IAUzD;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,aAAa,CAAC;IAgBxC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC;IA8CtC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAmDnF;;OAEG;YACW,oBAAoB;IAuBlC;;OAEG;YACW,mBAAmB;IAWjC;;OAEG;YACW,eAAe;IA0B7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA0BxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAqBtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAkBtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAyBvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,CAAC,UAAU;IAOlB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiB/B;;OAEG;YACW,YAAY;IAU1B;;OAEG;YACW,aAAa;CAI5B;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,GAAE,OAAO,CAAC,uBAAuB,CAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAG7G;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,OAAO,CAAC,uBAAuB,CAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAG3G;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,GAAE,OAAO,CAAC,uBAAuB,CAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAGxJ"}