@yasserkhanorg/e2e-agents 0.3.2 → 0.3.3

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 (74) hide show
  1. package/README.md +22 -18
  2. package/dist/agent/config.d.ts +1 -0
  3. package/dist/agent/config.d.ts.map +1 -1
  4. package/dist/agent/config.js +10 -0
  5. package/dist/agent/pipeline.d.ts +6 -1
  6. package/dist/agent/pipeline.d.ts.map +1 -1
  7. package/dist/agent/pipeline.js +627 -27
  8. package/dist/agent/report.d.ts +5 -0
  9. package/dist/agent/report.d.ts.map +1 -1
  10. package/dist/agent/report.js +3 -0
  11. package/dist/agent/runner.d.ts.map +1 -1
  12. package/dist/agent/runner.js +25 -6
  13. package/dist/agent/tests.d.ts.map +1 -1
  14. package/dist/agent/tests.js +12 -2
  15. package/dist/cli.js +73 -5
  16. package/dist/esm/agent/config.js +10 -0
  17. package/dist/esm/agent/pipeline.js +627 -27
  18. package/dist/esm/agent/report.js +3 -0
  19. package/dist/esm/agent/runner.js +25 -6
  20. package/dist/esm/agent/tests.js +12 -2
  21. package/dist/esm/cli.js +73 -5
  22. package/package.json +1 -1
  23. package/dist/agent/cache_utils.d.ts +0 -38
  24. package/dist/agent/cache_utils.d.ts.map +0 -1
  25. package/dist/agent/cache_utils.js +0 -67
  26. package/dist/agent/impact-analyzer.d.ts +0 -114
  27. package/dist/agent/impact-analyzer.d.ts.map +0 -1
  28. package/dist/agent/impact-analyzer.js +0 -557
  29. package/dist/agent/index.d.ts +0 -21
  30. package/dist/agent/index.d.ts.map +0 -1
  31. package/dist/agent/index.js +0 -38
  32. package/dist/agent/model-router.d.ts +0 -57
  33. package/dist/agent/model-router.d.ts.map +0 -1
  34. package/dist/agent/model-router.js +0 -154
  35. package/dist/agent/report-generator.d.ts +0 -24
  36. package/dist/agent/report-generator.d.ts.map +0 -1
  37. package/dist/agent/report-generator.js +0 -250
  38. package/dist/agent/spec-bridge.d.ts +0 -101
  39. package/dist/agent/spec-bridge.d.ts.map +0 -1
  40. package/dist/agent/spec-bridge.js +0 -273
  41. package/dist/agent/spec-builder.d.ts +0 -102
  42. package/dist/agent/spec-builder.d.ts.map +0 -1
  43. package/dist/agent/spec-builder.js +0 -273
  44. package/dist/agent/telemetry.d.ts +0 -84
  45. package/dist/agent/telemetry.d.ts.map +0 -1
  46. package/dist/agent/telemetry.js +0 -220
  47. package/dist/agent/validators/selector-validator.d.ts +0 -74
  48. package/dist/agent/validators/selector-validator.d.ts.map +0 -1
  49. package/dist/agent/validators/selector-validator.js +0 -165
  50. package/dist/e2e-test-gen/index.d.ts +0 -51
  51. package/dist/e2e-test-gen/index.d.ts.map +0 -1
  52. package/dist/e2e-test-gen/index.js +0 -57
  53. package/dist/e2e-test-gen/spec_parser.d.ts +0 -142
  54. package/dist/e2e-test-gen/spec_parser.d.ts.map +0 -1
  55. package/dist/e2e-test-gen/spec_parser.js +0 -786
  56. package/dist/e2e-test-gen/types.d.ts +0 -185
  57. package/dist/e2e-test-gen/types.d.ts.map +0 -1
  58. package/dist/e2e-test-gen/types.js +0 -4
  59. package/dist/esm/agent/cache_utils.js +0 -63
  60. package/dist/esm/agent/impact-analyzer.js +0 -548
  61. package/dist/esm/agent/index.js +0 -22
  62. package/dist/esm/agent/model-router.js +0 -150
  63. package/dist/esm/agent/report-generator.js +0 -247
  64. package/dist/esm/agent/spec-bridge.js +0 -267
  65. package/dist/esm/agent/spec-builder.js +0 -267
  66. package/dist/esm/agent/telemetry.js +0 -216
  67. package/dist/esm/agent/validators/selector-validator.js +0 -160
  68. package/dist/esm/e2e-test-gen/index.js +0 -50
  69. package/dist/esm/e2e-test-gen/spec_parser.js +0 -782
  70. package/dist/esm/e2e-test-gen/types.js +0 -3
  71. package/dist/esm/plan-and-test-constants.js +0 -126
  72. package/dist/plan-and-test-constants.d.ts +0 -110
  73. package/dist/plan-and-test-constants.d.ts.map +0 -1
  74. package/dist/plan-and-test-constants.js +0 -132
package/README.md CHANGED
@@ -133,6 +133,9 @@ Run AI-driven impact analysis or gap analysis on any frontend repo.
133
133
  ```bash
134
134
  npx e2e-ai-agents impact --path /path/to/webapp
135
135
  npx e2e-ai-agents gap --path /path/to/webapp
136
+ npx e2e-ai-agents plan --path /path/to/webapp
137
+ npx e2e-ai-agents generate --path /path/to/webapp --pipeline
138
+ npx e2e-ai-agents heal --path /path/to/webapp --traceability-report ./playwright-report.json
136
139
  npx e2e-ai-agents suggest --path /path/to/webapp
137
140
  npx e2e-ai-agents approve-and-generate --path /path/to/webapp
138
141
  npx e2e-ai-agents finalize-generated-tests --path /path/to/webapp
@@ -199,7 +202,8 @@ Optional config file `e2e-ai-agents.config.json` (JSON):
199
202
  "scenarios": 3,
200
203
  "outputDir": "specs/functional/ai-assisted",
201
204
  "heal": true,
202
- "mcp": false
205
+ "mcp": false,
206
+ "mcpAllowFallback": false
203
207
  },
204
208
  "llm": { "provider": "anthropic", "fallback": "ollama" },
205
209
  "policy": {
@@ -232,12 +236,25 @@ Notes:
232
236
  - Impact analysis can apply subsystem-aware risk boosts and priority floors from a map (`impact.subsystemRisk`) to capture known high-blast-radius areas.
233
237
  - Diffing is computed from `merge-base(<since>, HEAD)` when available, which is the standard PR-impact baseline.
234
238
  - Reports are written under `testsRoot/.e2e-ai-agents/reports` (or app root if `testsRoot` is not set).
235
- - Use `approve-and-generate` for explicit approval before patching `data-testid` and generating/healing tests.
239
+ - Use `approve-and-generate` for explicit approval before generating/healing tests.
240
+ - Selector/data-testid patches are only applied when `--apply` is passed.
241
+ - `plan` is a direct alias for `suggest`.
242
+ - `generate` is a direct alias for `approve-and-generate`.
243
+ - `heal` targets flaky/failed specs from a Playwright JSON report (`--traceability-report`).
236
244
  - `--apply` remains available as a legacy shortcut for direct `gap` execution.
237
245
  - Use `--pipeline` to run the Playwright generation pipeline.
238
246
  - If `e2e-test-gen-cli.ts` exists in `testsRoot`, it is used as the advanced runner.
239
247
  - If it is absent, `@yasserkhanorg/e2e-agents` falls back to package-native generation with strategy-based templates, quality guardrails (`no test.describe`, single tag), and iterative heal attempts.
240
- - Use `--pipeline-mcp` (or `"pipeline": { "mcp": true }`) to run exploration/healing via Playwright MCP.
248
+ - `--pipeline-mcp` now attempts the official Playwright Test Agent loop first (planner/generator/healer) using:
249
+ - `npx playwright init-agents --loop=claude --prompts`
250
+ - `.mcp.json` (`playwright run-test-mcp-server`)
251
+ - `claude -p` non-interactive orchestration
252
+ - In MCP mode, fallback is strict by default: if official agent setup fails, generation stops instead of silently degrading.
253
+ - Use `--pipeline-mcp-allow-fallback` (or config `pipeline.mcpAllowFallback=true`) only when you explicitly want fallback generation.
254
+ - MCP prerequisites: Playwright config in `testsRoot` and Claude CLI installed/authenticated.
255
+ - Official MCP outputs are validated against discovered local API surface (`pw.*`, `pw.testBrowser.*`, `channelsPage.*`) to block invented methods (for example `pw.mainClient.*`).
256
+ - If fallback is enabled and official MCP agent execution is unavailable, pipeline falls back to `e2e-test-gen` (if present) or package-native generation with warnings in report output.
257
+ - `impact/gap` pipeline output now includes `pipeline.mcp` (`requested`, `active`, `backend`) so MCP activation is explicit.
241
258
  - `suggest` writes `.e2e-ai-agents/plan.json` with `runSet` (`smoke|targeted|full`) and confidence.
242
259
  - `suggest` also writes `.e2e-ai-agents/ci-summary.md` with CI status: `run-now`, `must-add-tests`, or `safe-to-merge`.
243
260
  - CLI policy overrides: `--policy-min-confidence`, `--policy-safe-merge-confidence`, `--policy-force-full-on-warnings`, `--policy-risky-patterns`.
@@ -566,21 +583,8 @@ Supported levels: `ERROR`, `WARN`, `INFO`, `DEBUG` (default: `INFO`)
566
583
 
567
584
  ### Caching
568
585
 
569
- The library includes a simple TTL cache for repository context:
570
-
571
- ```typescript
572
- import { SimpleCache } from '@yasserkhanorg/e2e-agents/agent/cache_utils';
573
-
574
- // Create a 10-minute cache
575
- const cache = new SimpleCache(10 * 60 * 1000);
576
-
577
- // Store and retrieve
578
- cache.set('key', {data: 'value'});
579
- const value = cache.get('key');
580
-
581
- // Check stats
582
- const {size, entries} = cache.stats();
583
- ```
586
+ Repository context and analysis data are cached internally by the tool.
587
+ No public cache API is exposed; caching behavior is automatic.
584
588
 
585
589
  ### Performance Metrics (v0.3.0)
586
590
 
@@ -53,6 +53,7 @@ export interface PipelineConfig {
53
53
  parallel?: boolean;
54
54
  dryRun?: boolean;
55
55
  mcp?: boolean;
56
+ mcpAllowFallback?: boolean;
56
57
  }
57
58
  export interface LLMConfig {
58
59
  provider?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/agent/config.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,KAAK,CAAC;AAC5C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AACvF,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,YAAY,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,YAAY;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC3B,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACjC,cAAc,EAAE;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;KACd,CAAC;IACF,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,KAAK,GAAG,SAAS,CAAC;AAEjD,MAAM,MAAM,YAAY,GAClB,cAAc,GACd,YAAY,GACZ,eAAe,GACf,QAAQ,GACR,OAAO,GACP,aAAa,CAAC;AAEpB,MAAM,WAAW,UAAU;IACvB,YAAY,EAAE,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC3B,YAAY,EAAE,YAAY,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IACzB,wBAAwB,EAAE,MAAM,CAAC;IACjC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,4BAA4B,EAAE,MAAM,CAAC;IACrC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,2BAA2B;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,wBAAwB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,yBAAyB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,SAAS;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,aAAa,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,cAAc,CAAC;IAC1B,SAAS,EAAE,cAAc,CAAC;IAC1B,aAAa,EAAE,mBAAmB,CAAC;IACnC,aAAa,EAAE,mBAAmB,CAAC;IACnC,cAAc,EAAE,oBAAoB,CAAC;IACrC,MAAM,EAAE;QACJ,aAAa,EAAE,OAAO,CAAC;QACvB,eAAe,EAAE,2BAA2B,CAAC;QAC7C,YAAY,EAAE,wBAAwB,CAAC;QACvC,aAAa,EAAE,yBAAyB,CAAC;KAC5C,CAAC;IACF,QAAQ,EAAE,cAAc,CAAC;IACzB,GAAG,EAAE,SAAS,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,GAAG,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACnB;AA0ID,MAAM,WAAW,eAAe;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAClC;AAgaD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,eAAe,GAAG,cAAc,CAiI3G"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/agent/config.ts"],"names":[],"mappings":"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"}
@@ -76,6 +76,7 @@ const DEFAULT_CONFIG = {
76
76
  outputDir: 'specs/functional/ai-assisted',
77
77
  heal: true,
78
78
  mcp: false,
79
+ mcpAllowFallback: false,
79
80
  },
80
81
  llm: {
81
82
  provider: 'anthropic',
@@ -437,6 +438,9 @@ function extractConfigPatch(raw) {
437
438
  parallel: pipeline.parallel !== undefined ? Boolean(pipeline.parallel) : undefined,
438
439
  dryRun: pipeline.dryRun !== undefined ? Boolean(pipeline.dryRun) : undefined,
439
440
  mcp: pipeline.mcp !== undefined ? Boolean(pipeline.mcp) : DEFAULT_CONFIG.pipeline.mcp,
441
+ mcpAllowFallback: pipeline.mcpAllowFallback !== undefined
442
+ ? Boolean(pipeline.mcpAllowFallback)
443
+ : DEFAULT_CONFIG.pipeline.mcpAllowFallback,
440
444
  };
441
445
  }
442
446
  if (raw.llm && typeof raw.llm === 'object') {
@@ -581,6 +585,12 @@ function resolveConfig(cwd, configPath, overrides) {
581
585
  if (overrides.pipeline.dryRun !== undefined) {
582
586
  pipelinePatch.dryRun = overrides.pipeline.dryRun;
583
587
  }
588
+ if (overrides.pipeline.mcp !== undefined) {
589
+ pipelinePatch.mcp = overrides.pipeline.mcp;
590
+ }
591
+ if (overrides.pipeline.mcpAllowFallback !== undefined) {
592
+ pipelinePatch.mcpAllowFallback = overrides.pipeline.mcpAllowFallback;
593
+ }
584
594
  config.pipeline = { ...config.pipeline, ...pipelinePatch };
585
595
  }
586
596
  if (overrides?.policy) {
@@ -9,9 +9,14 @@ export interface PipelineResult {
9
9
  error?: string;
10
10
  }
11
11
  export interface PipelineSummary {
12
- runner: 'e2e-test-gen' | 'package-native' | 'unknown';
12
+ runner: 'playwright-agents' | 'e2e-test-gen' | 'package-native' | 'unknown';
13
13
  results: PipelineResult[];
14
14
  warnings: string[];
15
+ mcp?: {
16
+ requested: boolean;
17
+ active: boolean;
18
+ backend: 'playwright-agents' | 'e2e-test-gen' | 'package-native' | 'unknown';
19
+ };
15
20
  }
16
21
  export interface SpecHealTarget {
17
22
  specPath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/agent/pipeline.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAG9C,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACjD,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,cAAc,GAAG,gBAAgB,GAAG,SAAS,CAAC;IACtD,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAmeD,wBAAgB,mBAAmB,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EAAE,EACzB,QAAQ,EAAE,cAAc,GACzB,eAAe,CAsFjB;AAwBD,wBAAgB,qBAAqB,CACjC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,UAAU,EAAE,EACnB,QAAQ,EAAE,cAAc,GACzB,eAAe,CAyHjB"}
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/agent/pipeline.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAG9C,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACjD,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,mBAAmB,GAAG,cAAc,GAAG,gBAAgB,GAAG,SAAS,CAAC;IAC5E,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,GAAG,CAAC,EAAE;QACF,SAAS,EAAE,OAAO,CAAC;QACnB,MAAM,EAAE,OAAO,CAAC;QAChB,OAAO,EAAE,mBAAmB,GAAG,cAAc,GAAG,gBAAgB,GAAG,SAAS,CAAC;KAChF,CAAC;CACL;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAwwBD,wBAAgB,mBAAmB,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EAAE,EACzB,QAAQ,EAAE,cAAc,GACzB,eAAe,CA4FjB;AAgaD,wBAAgB,qBAAqB,CACjC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,UAAU,EAAE,EACnB,QAAQ,EAAE,cAAc,GACzB,eAAe,CAyIjB"}