agentic-qe 2.6.0 → 2.6.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 (63) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/README.md +1 -1
  3. package/dist/agents/pool/AgentPool.d.ts +112 -0
  4. package/dist/agents/pool/AgentPool.d.ts.map +1 -0
  5. package/dist/agents/pool/AgentPool.js +573 -0
  6. package/dist/agents/pool/AgentPool.js.map +1 -0
  7. package/dist/agents/pool/QEAgentPoolFactory.d.ts +118 -0
  8. package/dist/agents/pool/QEAgentPoolFactory.d.ts.map +1 -0
  9. package/dist/agents/pool/QEAgentPoolFactory.js +251 -0
  10. package/dist/agents/pool/QEAgentPoolFactory.js.map +1 -0
  11. package/dist/agents/pool/index.d.ts +34 -0
  12. package/dist/agents/pool/index.d.ts.map +1 -0
  13. package/dist/agents/pool/index.js +44 -0
  14. package/dist/agents/pool/index.js.map +1 -0
  15. package/dist/agents/pool/types.d.ts +227 -0
  16. package/dist/agents/pool/types.d.ts.map +1 -0
  17. package/dist/agents/pool/types.js +28 -0
  18. package/dist/agents/pool/types.js.map +1 -0
  19. package/dist/mcp/handlers/agent-spawn.d.ts +71 -5
  20. package/dist/mcp/handlers/agent-spawn.d.ts.map +1 -1
  21. package/dist/mcp/handlers/agent-spawn.js +336 -110
  22. package/dist/mcp/handlers/agent-spawn.js.map +1 -1
  23. package/dist/mcp/handlers/fleet-init.d.ts +24 -0
  24. package/dist/mcp/handlers/fleet-init.d.ts.map +1 -1
  25. package/dist/mcp/handlers/fleet-init.js +56 -4
  26. package/dist/mcp/handlers/fleet-init.js.map +1 -1
  27. package/dist/mcp/server-instructions.d.ts +1 -1
  28. package/dist/mcp/server-instructions.js +1 -1
  29. package/dist/memory/HNSWPatternStore.d.ts.map +1 -1
  30. package/dist/memory/HNSWPatternStore.js.map +1 -1
  31. package/dist/plugins/BasePlugin.d.ts +111 -0
  32. package/dist/plugins/BasePlugin.d.ts.map +1 -0
  33. package/dist/plugins/BasePlugin.js +154 -0
  34. package/dist/plugins/BasePlugin.js.map +1 -0
  35. package/dist/plugins/PluginManager.d.ts +145 -0
  36. package/dist/plugins/PluginManager.d.ts.map +1 -0
  37. package/dist/plugins/PluginManager.js +862 -0
  38. package/dist/plugins/PluginManager.js.map +1 -0
  39. package/dist/plugins/adapters/McpToolsPlugin.d.ts +98 -0
  40. package/dist/plugins/adapters/McpToolsPlugin.d.ts.map +1 -0
  41. package/dist/plugins/adapters/McpToolsPlugin.js +518 -0
  42. package/dist/plugins/adapters/McpToolsPlugin.js.map +1 -0
  43. package/dist/plugins/adapters/PlaywrightPlugin.d.ts +63 -0
  44. package/dist/plugins/adapters/PlaywrightPlugin.d.ts.map +1 -0
  45. package/dist/plugins/adapters/PlaywrightPlugin.js +451 -0
  46. package/dist/plugins/adapters/PlaywrightPlugin.js.map +1 -0
  47. package/dist/plugins/adapters/VitestPlugin.d.ts +74 -0
  48. package/dist/plugins/adapters/VitestPlugin.d.ts.map +1 -0
  49. package/dist/plugins/adapters/VitestPlugin.js +589 -0
  50. package/dist/plugins/adapters/VitestPlugin.js.map +1 -0
  51. package/dist/plugins/adapters/index.d.ts +8 -0
  52. package/dist/plugins/adapters/index.d.ts.map +1 -0
  53. package/dist/plugins/adapters/index.js +17 -0
  54. package/dist/plugins/adapters/index.js.map +1 -0
  55. package/dist/plugins/index.d.ts +32 -0
  56. package/dist/plugins/index.d.ts.map +1 -0
  57. package/dist/plugins/index.js +48 -0
  58. package/dist/plugins/index.js.map +1 -0
  59. package/dist/plugins/types.d.ts +528 -0
  60. package/dist/plugins/types.d.ts.map +1 -0
  61. package/dist/plugins/types.js +61 -0
  62. package/dist/plugins/types.js.map +1 -0
  63. package/package.json +4 -1
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Plugin System Module
3
+ * Phase 3 B2: Extensible Test Framework Adapters
4
+ *
5
+ * Provides a plugin architecture for:
6
+ * - Hot-swappable test framework adapters
7
+ * - Community plugin development
8
+ * - Enterprise customization
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { getPluginManager, PluginCategory } from './plugins';
13
+ *
14
+ * // Get plugin manager
15
+ * const manager = getPluginManager();
16
+ * await manager.initialize();
17
+ *
18
+ * // Register a custom plugin
19
+ * await manager.registerPlugin(myPlugin);
20
+ * await manager.activatePlugin('my-plugin');
21
+ *
22
+ * // Get test framework plugins
23
+ * const frameworks = manager.getPluginsByCategory(PluginCategory.TEST_FRAMEWORK);
24
+ * ```
25
+ */
26
+ export { Plugin, TestFrameworkPlugin, PluginMetadata, PluginDependency, PluginCategory, PluginState, PluginContext, PluginManagerAPI, PluginLogger, PluginConfigStore, PluginEventBus, PluginStorage, PluginRegistration, PluginDiscoveryResult, PluginManagerConfig, PluginManagerEvents, PluginFactory, PluginModule, TestGenerationSpec, GeneratedTest, ParsedTestFile, ParsedTestSuite, ParsedTest, ParsedHook, TestExecutionOptions, TestExecutionResult, TestResult, CoverageData, FrameworkConfig, } from './types';
27
+ export { PluginManager, getPluginManager, resetPluginManager, } from './PluginManager';
28
+ export { BasePlugin } from './BasePlugin';
29
+ export { PlaywrightPlugin } from './adapters/PlaywrightPlugin';
30
+ export { VitestPlugin } from './adapters/VitestPlugin';
31
+ export { McpToolsPlugin, McpToolCapability } from './adapters/McpToolsPlugin';
32
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,EAEL,MAAM,EACN,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,YAAY,EAGZ,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,eAAe,EACf,UAAU,EACV,UAAU,EACV,oBAAoB,EACpB,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,eAAe,GAChB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ /**
3
+ * Plugin System Module
4
+ * Phase 3 B2: Extensible Test Framework Adapters
5
+ *
6
+ * Provides a plugin architecture for:
7
+ * - Hot-swappable test framework adapters
8
+ * - Community plugin development
9
+ * - Enterprise customization
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { getPluginManager, PluginCategory } from './plugins';
14
+ *
15
+ * // Get plugin manager
16
+ * const manager = getPluginManager();
17
+ * await manager.initialize();
18
+ *
19
+ * // Register a custom plugin
20
+ * await manager.registerPlugin(myPlugin);
21
+ * await manager.activatePlugin('my-plugin');
22
+ *
23
+ * // Get test framework plugins
24
+ * const frameworks = manager.getPluginsByCategory(PluginCategory.TEST_FRAMEWORK);
25
+ * ```
26
+ */
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.McpToolsPlugin = exports.VitestPlugin = exports.PlaywrightPlugin = exports.BasePlugin = exports.resetPluginManager = exports.getPluginManager = exports.PluginManager = exports.PluginState = exports.PluginCategory = void 0;
29
+ // Core types
30
+ var types_1 = require("./types");
31
+ Object.defineProperty(exports, "PluginCategory", { enumerable: true, get: function () { return types_1.PluginCategory; } });
32
+ Object.defineProperty(exports, "PluginState", { enumerable: true, get: function () { return types_1.PluginState; } });
33
+ // Plugin Manager
34
+ var PluginManager_1 = require("./PluginManager");
35
+ Object.defineProperty(exports, "PluginManager", { enumerable: true, get: function () { return PluginManager_1.PluginManager; } });
36
+ Object.defineProperty(exports, "getPluginManager", { enumerable: true, get: function () { return PluginManager_1.getPluginManager; } });
37
+ Object.defineProperty(exports, "resetPluginManager", { enumerable: true, get: function () { return PluginManager_1.resetPluginManager; } });
38
+ // Base plugin class for easier plugin development
39
+ var BasePlugin_1 = require("./BasePlugin");
40
+ Object.defineProperty(exports, "BasePlugin", { enumerable: true, get: function () { return BasePlugin_1.BasePlugin; } });
41
+ // Reference plugins
42
+ var PlaywrightPlugin_1 = require("./adapters/PlaywrightPlugin");
43
+ Object.defineProperty(exports, "PlaywrightPlugin", { enumerable: true, get: function () { return PlaywrightPlugin_1.PlaywrightPlugin; } });
44
+ var VitestPlugin_1 = require("./adapters/VitestPlugin");
45
+ Object.defineProperty(exports, "VitestPlugin", { enumerable: true, get: function () { return VitestPlugin_1.VitestPlugin; } });
46
+ var McpToolsPlugin_1 = require("./adapters/McpToolsPlugin");
47
+ Object.defineProperty(exports, "McpToolsPlugin", { enumerable: true, get: function () { return McpToolsPlugin_1.McpToolsPlugin; } });
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;;AAEH,aAAa;AACb,iCAiCiB;AA3Bf,uGAAA,cAAc,OAAA;AACd,oGAAA,WAAW,OAAA;AA4Bb,iBAAiB;AACjB,iDAIyB;AAHvB,8GAAA,aAAa,OAAA;AACb,iHAAA,gBAAgB,OAAA;AAChB,mHAAA,kBAAkB,OAAA;AAGpB,kDAAkD;AAClD,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AAEnB,oBAAoB;AACpB,gEAA+D;AAAtD,oHAAA,gBAAgB,OAAA;AACzB,wDAAuD;AAA9C,4GAAA,YAAY,OAAA;AACrB,4DAA8E;AAArE,gHAAA,cAAc,OAAA"}
@@ -0,0 +1,528 @@
1
+ /**
2
+ * Plugin System Types
3
+ * Phase 3 B2: Extensible Test Framework Adapters
4
+ *
5
+ * Provides type definitions for the plugin architecture enabling:
6
+ * - Hot-swappable test framework adapters
7
+ * - Community plugin development
8
+ * - Enterprise customization
9
+ */
10
+ /**
11
+ * Plugin metadata for identification and compatibility
12
+ */
13
+ export interface PluginMetadata {
14
+ /** Unique plugin identifier (e.g., 'playwright-adapter') */
15
+ id: string;
16
+ /** Human-readable name */
17
+ name: string;
18
+ /** Semantic version (e.g., '1.0.0') */
19
+ version: string;
20
+ /** Plugin description */
21
+ description: string;
22
+ /** Plugin author */
23
+ author: string;
24
+ /** Plugin homepage or repository URL */
25
+ homepage?: string;
26
+ /** Plugin license */
27
+ license?: string;
28
+ /** Keywords for discovery */
29
+ keywords?: string[];
30
+ /** Minimum agentic-qe version required */
31
+ minAgenticQEVersion: string;
32
+ /** Maximum agentic-qe version supported (optional) */
33
+ maxAgenticQEVersion?: string;
34
+ /** Plugin dependencies (other plugins) */
35
+ dependencies?: PluginDependency[];
36
+ /** Plugin category */
37
+ category: PluginCategory;
38
+ /** Whether plugin is enabled by default */
39
+ enabledByDefault?: boolean;
40
+ }
41
+ /**
42
+ * Plugin dependency specification
43
+ */
44
+ export interface PluginDependency {
45
+ /** Plugin ID */
46
+ pluginId: string;
47
+ /** Version requirement (semver range) */
48
+ versionRange: string;
49
+ /** Whether dependency is optional */
50
+ optional?: boolean;
51
+ }
52
+ /**
53
+ * Plugin categories
54
+ */
55
+ export declare enum PluginCategory {
56
+ /** Test framework adapters (Playwright, Vitest, Cypress) */
57
+ TEST_FRAMEWORK = "test-framework",
58
+ /** Test generation strategies */
59
+ TEST_GENERATOR = "test-generator",
60
+ /** Coverage analysis tools */
61
+ COVERAGE = "coverage",
62
+ /** Reporting and output formats */
63
+ REPORTER = "reporter",
64
+ /** MCP tool integrations */
65
+ MCP_TOOLS = "mcp-tools",
66
+ /** CI/CD integrations */
67
+ CI_CD = "ci-cd",
68
+ /** IDE integrations */
69
+ IDE = "ide",
70
+ /** Custom agent extensions */
71
+ AGENT_EXTENSION = "agent-extension",
72
+ /** Utility plugins */
73
+ UTILITY = "utility"
74
+ }
75
+ /**
76
+ * Plugin lifecycle state
77
+ */
78
+ export declare enum PluginState {
79
+ /** Plugin discovered but not loaded */
80
+ DISCOVERED = "discovered",
81
+ /** Plugin is loading */
82
+ LOADING = "loading",
83
+ /** Plugin loaded but not activated */
84
+ LOADED = "loaded",
85
+ /** Plugin is activating */
86
+ ACTIVATING = "activating",
87
+ /** Plugin active and ready */
88
+ ACTIVE = "active",
89
+ /** Plugin is deactivating */
90
+ DEACTIVATING = "deactivating",
91
+ /** Plugin deactivated */
92
+ INACTIVE = "inactive",
93
+ /** Plugin failed to load or activate */
94
+ ERROR = "error",
95
+ /** Plugin unloaded */
96
+ UNLOADED = "unloaded"
97
+ }
98
+ /**
99
+ * Plugin context provided during lifecycle events
100
+ */
101
+ export interface PluginContext {
102
+ /** Plugin's own metadata */
103
+ metadata: PluginMetadata;
104
+ /** Agentic QE version */
105
+ agenticQEVersion: string;
106
+ /** Plugin manager API for inter-plugin communication */
107
+ pluginManager: PluginManagerAPI;
108
+ /** Logger for plugin */
109
+ logger: PluginLogger;
110
+ /** Configuration store */
111
+ config: PluginConfigStore;
112
+ /** Event bus for plugin events */
113
+ events: PluginEventBus;
114
+ /** Storage API for plugin data */
115
+ storage: PluginStorage;
116
+ }
117
+ /**
118
+ * Plugin manager API exposed to plugins
119
+ */
120
+ export interface PluginManagerAPI {
121
+ /** Get another plugin by ID */
122
+ getPlugin<T extends Plugin = Plugin>(id: string): T | undefined;
123
+ /** Check if plugin is available */
124
+ hasPlugin(id: string): boolean;
125
+ /** Get all plugins of a category */
126
+ getPluginsByCategory(category: PluginCategory): Plugin[];
127
+ /** Register a service that other plugins can use */
128
+ registerService<T>(name: string, service: T): void;
129
+ /** Get a registered service */
130
+ getService<T>(name: string): T | undefined;
131
+ /** Request plugin activation */
132
+ requestActivation(pluginId: string): Promise<void>;
133
+ }
134
+ /**
135
+ * Plugin logger interface
136
+ */
137
+ export interface PluginLogger {
138
+ debug(message: string, ...args: unknown[]): void;
139
+ info(message: string, ...args: unknown[]): void;
140
+ warn(message: string, ...args: unknown[]): void;
141
+ error(message: string, ...args: unknown[]): void;
142
+ }
143
+ /**
144
+ * Plugin configuration store
145
+ */
146
+ export interface PluginConfigStore {
147
+ /** Get configuration value */
148
+ get<T>(key: string, defaultValue?: T): T | undefined;
149
+ /** Set configuration value */
150
+ set<T>(key: string, value: T): void;
151
+ /** Check if key exists */
152
+ has(key: string): boolean;
153
+ /** Get all configuration */
154
+ getAll(): Record<string, unknown>;
155
+ /** Reset to defaults */
156
+ reset(): void;
157
+ }
158
+ /**
159
+ * Plugin event bus for inter-plugin communication
160
+ */
161
+ export interface PluginEventBus {
162
+ /** Emit an event */
163
+ emit(event: string, data?: unknown): void;
164
+ /** Listen for an event */
165
+ on(event: string, handler: (data: unknown) => void): () => void;
166
+ /** Listen for an event once */
167
+ once(event: string, handler: (data: unknown) => void): () => void;
168
+ /** Remove all listeners for an event */
169
+ off(event: string): void;
170
+ }
171
+ /**
172
+ * Plugin storage API
173
+ */
174
+ export interface PluginStorage {
175
+ /** Get stored value */
176
+ get<T>(key: string): Promise<T | undefined>;
177
+ /** Set stored value */
178
+ set<T>(key: string, value: T): Promise<void>;
179
+ /** Delete stored value */
180
+ delete(key: string): Promise<void>;
181
+ /** List all keys */
182
+ keys(): Promise<string[]>;
183
+ /** Clear all stored data */
184
+ clear(): Promise<void>;
185
+ }
186
+ /**
187
+ * Core plugin interface that all plugins must implement
188
+ */
189
+ export interface Plugin {
190
+ /** Plugin metadata */
191
+ readonly metadata: PluginMetadata;
192
+ /**
193
+ * Called when plugin is loaded
194
+ * Use for lightweight initialization (no async operations)
195
+ */
196
+ onLoad?(context: PluginContext): void;
197
+ /**
198
+ * Called when plugin is activated
199
+ * Use for heavy initialization, connecting to services, etc.
200
+ */
201
+ onActivate?(context: PluginContext): Promise<void>;
202
+ /**
203
+ * Called when plugin is deactivated
204
+ * Use for cleanup, disconnecting from services, etc.
205
+ */
206
+ onDeactivate?(context: PluginContext): Promise<void>;
207
+ /**
208
+ * Called when plugin is unloaded
209
+ * Use for final cleanup
210
+ */
211
+ onUnload?(context: PluginContext): void;
212
+ /**
213
+ * Called when plugin configuration changes
214
+ */
215
+ onConfigChange?(context: PluginContext, changes: Record<string, unknown>): void;
216
+ /**
217
+ * Health check for the plugin
218
+ * Returns true if plugin is healthy
219
+ */
220
+ healthCheck?(): Promise<boolean>;
221
+ }
222
+ /**
223
+ * Test framework adapter plugin interface
224
+ * Extends Plugin with test-specific capabilities
225
+ */
226
+ export interface TestFrameworkPlugin extends Plugin {
227
+ /** Supported file patterns for this test framework */
228
+ readonly filePatterns: string[];
229
+ /** Framework identifier */
230
+ readonly frameworkId: string;
231
+ /**
232
+ * Generate test code for the framework
233
+ */
234
+ generateTest(spec: TestGenerationSpec): Promise<GeneratedTest>;
235
+ /**
236
+ * Parse existing test file
237
+ */
238
+ parseTestFile(filePath: string, content: string): Promise<ParsedTestFile>;
239
+ /**
240
+ * Execute tests
241
+ */
242
+ executeTests(options: TestExecutionOptions): Promise<TestExecutionResult>;
243
+ /**
244
+ * Get framework-specific configuration
245
+ */
246
+ getFrameworkConfig(): FrameworkConfig;
247
+ }
248
+ /**
249
+ * Test generation specification
250
+ */
251
+ export interface TestGenerationSpec {
252
+ /** Source code to test */
253
+ sourceCode: string;
254
+ /** Source file path */
255
+ sourceFilePath: string;
256
+ /** Test type */
257
+ testType: 'unit' | 'integration' | 'e2e' | 'component';
258
+ /** Target test file path */
259
+ targetFilePath?: string;
260
+ /** Additional context */
261
+ context?: Record<string, unknown>;
262
+ /** Coverage targets */
263
+ coverageTargets?: string[];
264
+ }
265
+ /**
266
+ * Generated test result
267
+ */
268
+ export interface GeneratedTest {
269
+ /** Generated test code */
270
+ code: string;
271
+ /** Suggested file path */
272
+ filePath: string;
273
+ /** Imports required */
274
+ imports: string[];
275
+ /** Dependencies to install */
276
+ dependencies?: {
277
+ name: string;
278
+ version: string;
279
+ dev?: boolean;
280
+ }[];
281
+ /** Test metadata */
282
+ metadata: {
283
+ testCount: number;
284
+ coveredFunctions: string[];
285
+ coverageEstimate: number;
286
+ };
287
+ }
288
+ /**
289
+ * Parsed test file structure
290
+ */
291
+ export interface ParsedTestFile {
292
+ /** Test suites found */
293
+ suites: ParsedTestSuite[];
294
+ /** Imports */
295
+ imports: string[];
296
+ /** File-level setup/teardown */
297
+ hooks: ParsedHook[];
298
+ }
299
+ /**
300
+ * Parsed test suite
301
+ */
302
+ export interface ParsedTestSuite {
303
+ name: string;
304
+ tests: ParsedTest[];
305
+ nestedSuites: ParsedTestSuite[];
306
+ hooks: ParsedHook[];
307
+ line: number;
308
+ }
309
+ /**
310
+ * Parsed individual test
311
+ */
312
+ export interface ParsedTest {
313
+ name: string;
314
+ line: number;
315
+ isSkipped: boolean;
316
+ isOnly: boolean;
317
+ tags?: string[];
318
+ }
319
+ /**
320
+ * Parsed hook (beforeAll, afterEach, etc.)
321
+ */
322
+ export interface ParsedHook {
323
+ type: 'beforeAll' | 'afterAll' | 'beforeEach' | 'afterEach';
324
+ line: number;
325
+ }
326
+ /**
327
+ * Test execution options
328
+ */
329
+ export interface TestExecutionOptions {
330
+ /** Test files to run */
331
+ testFiles: string[];
332
+ /** Filter by test name pattern */
333
+ testNamePattern?: string;
334
+ /** Run in watch mode */
335
+ watch?: boolean;
336
+ /** Coverage options */
337
+ coverage?: {
338
+ enabled: boolean;
339
+ reporters?: string[];
340
+ threshold?: number;
341
+ };
342
+ /** Parallel execution */
343
+ parallel?: boolean;
344
+ /** Max workers */
345
+ maxWorkers?: number;
346
+ /** Timeout per test */
347
+ timeout?: number;
348
+ /** Environment variables */
349
+ env?: Record<string, string>;
350
+ }
351
+ /**
352
+ * Test execution result
353
+ */
354
+ export interface TestExecutionResult {
355
+ /** Overall success */
356
+ success: boolean;
357
+ /** Test results */
358
+ tests: TestResult[];
359
+ /** Duration in ms */
360
+ duration: number;
361
+ /** Coverage data if collected */
362
+ coverage?: CoverageData;
363
+ /** Console output */
364
+ output: string;
365
+ }
366
+ /**
367
+ * Individual test result
368
+ */
369
+ export interface TestResult {
370
+ name: string;
371
+ suite: string;
372
+ status: 'passed' | 'failed' | 'skipped' | 'pending';
373
+ duration: number;
374
+ error?: {
375
+ message: string;
376
+ stack?: string;
377
+ };
378
+ }
379
+ /**
380
+ * Coverage data
381
+ */
382
+ export interface CoverageData {
383
+ lines: {
384
+ total: number;
385
+ covered: number;
386
+ percentage: number;
387
+ };
388
+ branches: {
389
+ total: number;
390
+ covered: number;
391
+ percentage: number;
392
+ };
393
+ functions: {
394
+ total: number;
395
+ covered: number;
396
+ percentage: number;
397
+ };
398
+ statements: {
399
+ total: number;
400
+ covered: number;
401
+ percentage: number;
402
+ };
403
+ }
404
+ /**
405
+ * Framework-specific configuration
406
+ */
407
+ export interface FrameworkConfig {
408
+ /** Config file name (e.g., 'playwright.config.ts') */
409
+ configFileName: string;
410
+ /** Default test directory */
411
+ defaultTestDir: string;
412
+ /** Default config template */
413
+ configTemplate: string;
414
+ /** Required dependencies */
415
+ dependencies: {
416
+ name: string;
417
+ version: string;
418
+ dev?: boolean;
419
+ }[];
420
+ }
421
+ /**
422
+ * Plugin registration entry
423
+ */
424
+ export interface PluginRegistration {
425
+ /** Plugin instance */
426
+ plugin: Plugin;
427
+ /** Current state */
428
+ state: PluginState;
429
+ /** Plugin context */
430
+ context?: PluginContext;
431
+ /** Load timestamp */
432
+ loadedAt?: Date;
433
+ /** Activation timestamp */
434
+ activatedAt?: Date;
435
+ /** Last error */
436
+ lastError?: Error;
437
+ /** Dependencies resolved */
438
+ dependenciesResolved: boolean;
439
+ }
440
+ /**
441
+ * Plugin discovery result
442
+ */
443
+ export interface PluginDiscoveryResult {
444
+ /** Discovered plugins */
445
+ plugins: PluginMetadata[];
446
+ /** Discovery errors */
447
+ errors: {
448
+ path: string;
449
+ error: string;
450
+ }[];
451
+ /** Discovery duration */
452
+ duration: number;
453
+ }
454
+ /**
455
+ * Plugin manager configuration
456
+ */
457
+ export interface PluginManagerConfig {
458
+ /** Directories to search for plugins */
459
+ pluginDirs: string[];
460
+ /** Enable hot reload in development */
461
+ hotReload: boolean;
462
+ /** Plugin load timeout in ms */
463
+ loadTimeout: number;
464
+ /** Plugin activation timeout in ms */
465
+ activationTimeout: number;
466
+ /** Enable plugin sandboxing */
467
+ sandboxing: boolean;
468
+ /** Auto-activate plugins on load */
469
+ autoActivate: boolean;
470
+ /** Plugin config overrides */
471
+ pluginConfigs: Record<string, Record<string, unknown>>;
472
+ }
473
+ /**
474
+ * Plugin manager events
475
+ */
476
+ export interface PluginManagerEvents {
477
+ 'plugin:discovered': {
478
+ metadata: PluginMetadata;
479
+ };
480
+ 'plugin:loading': {
481
+ pluginId: string;
482
+ };
483
+ 'plugin:loaded': {
484
+ pluginId: string;
485
+ };
486
+ 'plugin:activating': {
487
+ pluginId: string;
488
+ };
489
+ 'plugin:activated': {
490
+ pluginId: string;
491
+ };
492
+ 'plugin:deactivating': {
493
+ pluginId: string;
494
+ };
495
+ 'plugin:deactivated': {
496
+ pluginId: string;
497
+ };
498
+ 'plugin:unloaded': {
499
+ pluginId: string;
500
+ };
501
+ 'plugin:error': {
502
+ pluginId: string;
503
+ error: Error;
504
+ };
505
+ 'plugin:configChanged': {
506
+ pluginId: string;
507
+ changes: Record<string, unknown>;
508
+ };
509
+ }
510
+ /**
511
+ * Factory function type for creating plugins
512
+ */
513
+ export type PluginFactory = () => Plugin;
514
+ /**
515
+ * Plugin module export structure
516
+ * Supports multiple export patterns for flexibility
517
+ */
518
+ export interface PluginModule {
519
+ /** Default export can be plugin or factory */
520
+ default?: Plugin | PluginFactory;
521
+ /** Named createPlugin factory function */
522
+ createPlugin?: PluginFactory;
523
+ /** Named plugin export */
524
+ plugin?: Plugin;
525
+ /** Optional named export for metadata */
526
+ metadata?: PluginMetadata;
527
+ }
528
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/plugins/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IAEX,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IAEb,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAEhB,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IAEpB,oBAAoB;IACpB,MAAM,EAAE,MAAM,CAAC;IAEf,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,0CAA0C;IAC1C,mBAAmB,EAAE,MAAM,CAAC;IAE5B,sDAAsD;IACtD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,0CAA0C;IAC1C,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAElC,sBAAsB;IACtB,QAAQ,EAAE,cAAc,CAAC;IAEzB,2CAA2C;IAC3C,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IAEjB,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IAErB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,oBAAY,cAAc;IACxB,4DAA4D;IAC5D,cAAc,mBAAmB;IAEjC,iCAAiC;IACjC,cAAc,mBAAmB;IAEjC,8BAA8B;IAC9B,QAAQ,aAAa;IAErB,mCAAmC;IACnC,QAAQ,aAAa;IAErB,4BAA4B;IAC5B,SAAS,cAAc;IAEvB,yBAAyB;IACzB,KAAK,UAAU;IAEf,uBAAuB;IACvB,GAAG,QAAQ;IAEX,8BAA8B;IAC9B,eAAe,oBAAoB;IAEnC,sBAAsB;IACtB,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,oBAAY,WAAW;IACrB,uCAAuC;IACvC,UAAU,eAAe;IAEzB,wBAAwB;IACxB,OAAO,YAAY;IAEnB,sCAAsC;IACtC,MAAM,WAAW;IAEjB,2BAA2B;IAC3B,UAAU,eAAe;IAEzB,8BAA8B;IAC9B,MAAM,WAAW;IAEjB,6BAA6B;IAC7B,YAAY,iBAAiB;IAE7B,yBAAyB;IACzB,QAAQ,aAAa;IAErB,wCAAwC;IACxC,KAAK,UAAU;IAEf,sBAAsB;IACtB,QAAQ,aAAa;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,4BAA4B;IAC5B,QAAQ,EAAE,cAAc,CAAC;IAEzB,yBAAyB;IACzB,gBAAgB,EAAE,MAAM,CAAC;IAEzB,wDAAwD;IACxD,aAAa,EAAE,gBAAgB,CAAC;IAEhC,wBAAwB;IACxB,MAAM,EAAE,YAAY,CAAC;IAErB,0BAA0B;IAC1B,MAAM,EAAE,iBAAiB,CAAC;IAE1B,kCAAkC;IAClC,MAAM,EAAE,cAAc,CAAC;IAEvB,kCAAkC;IAClC,OAAO,EAAE,aAAa,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+BAA+B;IAC/B,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAEhE,mCAAmC;IACnC,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAE/B,oCAAoC;IACpC,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,EAAE,CAAC;IAEzD,oDAAoD;IACpD,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;IAEnD,+BAA+B;IAC/B,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAE3C,gCAAgC;IAChC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAErD,8BAA8B;IAC9B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAEpC,0BAA0B;IAC1B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAE1B,4BAA4B;IAC5B,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElC,wBAAwB;IACxB,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,oBAAoB;IACpB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAE1C,0BAA0B;IAC1B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAEhE,+BAA+B;IAC/B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAElE,wCAAwC;IACxC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,uBAAuB;IACvB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAE5C,uBAAuB;IACvB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7C,0BAA0B;IAC1B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC,oBAAoB;IACpB,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE1B,4BAA4B;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,sBAAsB;IACtB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAElC;;;OAGG;IACH,MAAM,CAAC,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IAEtC;;;OAGG;IACH,UAAU,CAAC,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD;;;OAGG;IACH,YAAY,CAAC,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD;;;OAGG;IACH,QAAQ,CAAC,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IAExC;;OAEG;IACH,cAAc,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAEhF;;;OAGG;IACH,WAAW,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,MAAM;IACjD,sDAAsD;IACtD,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAEhC,2BAA2B;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE/D;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAE1E;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAE1E;;OAEG;IACH,kBAAkB,IAAI,eAAe,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IAEnB,uBAAuB;IACvB,cAAc,EAAE,MAAM,CAAC;IAEvB,gBAAgB;IAChB,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,KAAK,GAAG,WAAW,CAAC;IAEvD,4BAA4B;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElC,uBAAuB;IACvB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IAEb,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IAEjB,uBAAuB;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,8BAA8B;IAC9B,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAElE,oBAAoB;IACpB,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAC3B,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,MAAM,EAAE,eAAe,EAAE,CAAC;IAE1B,cAAc;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,gCAAgC;IAChC,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,WAAW,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW,CAAC;IAC5D,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,wBAAwB;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB,kCAAkC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,wBAAwB;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,uBAAuB;IACvB,QAAQ,CAAC,EAAE;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,yBAAyB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,sBAAsB;IACtB,OAAO,EAAE,OAAO,CAAC;IAEjB,mBAAmB;IACnB,KAAK,EAAE,UAAU,EAAE,CAAC;IAEpB,qBAAqB;IACrB,QAAQ,EAAE,MAAM,CAAC;IAEjB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,YAAY,CAAC;IAExB,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CACpE;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,sDAAsD;IACtD,cAAc,EAAE,MAAM,CAAC;IAEvB,6BAA6B;IAC7B,cAAc,EAAE,MAAM,CAAC;IAEvB,8BAA8B;IAC9B,cAAc,EAAE,MAAM,CAAC;IAEvB,4BAA4B;IAC5B,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;CAClE;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IAEf,oBAAoB;IACpB,KAAK,EAAE,WAAW,CAAC;IAEnB,qBAAqB;IACrB,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAEhB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,IAAI,CAAC;IAEnB,iBAAiB;IACjB,SAAS,CAAC,EAAE,KAAK,CAAC;IAElB,4BAA4B;IAC5B,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,yBAAyB;IACzB,OAAO,EAAE,cAAc,EAAE,CAAC;IAE1B,uBAAuB;IACvB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAE1C,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,UAAU,EAAE,MAAM,EAAE,CAAC;IAErB,uCAAuC;IACvC,SAAS,EAAE,OAAO,CAAC;IAEnB,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IAEpB,sCAAsC;IACtC,iBAAiB,EAAE,MAAM,CAAC;IAE1B,+BAA+B;IAC/B,UAAU,EAAE,OAAO,CAAC;IAEpB,oCAAoC;IACpC,YAAY,EAAE,OAAO,CAAC;IAEtB,8BAA8B;IAC9B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,mBAAmB,EAAE;QAAE,QAAQ,EAAE,cAAc,CAAA;KAAE,CAAC;IAClD,gBAAgB,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,eAAe,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,mBAAmB,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,kBAAkB,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,qBAAqB,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,oBAAoB,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,iBAAiB,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,cAAc,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC;IACnD,sBAAsB,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CAChF;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC;AAEzC;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;IAEjC,0CAA0C;IAC1C,YAAY,CAAC,EAAE,aAAa,CAAC;IAE7B,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B"}