# pramoddutta/advanceplaywrightframework2x architecture

> Architecture diagram of the GitHub repository pramoddutta/advanceplaywrightframework2x, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/pramoddutta/advanceplaywrightframework2x
- Repository: https://github.com/pramoddutta/advanceplaywrightframework2x

## Overview

Advance Playwright Framework 2x is a TypeScript automation framework for UI and API checks, with reusable fixtures, page objects, data utilities, and AI-assisted analysis. The primary workflow is a test run: specs use prepared fixtures and UI/API clients to exercise an application, then Playwright results are reported and may be enriched with failure or flaky-test analysis. The map includes documented framework capabilities; some subsystem links are based on the README and tree because their source was not sampled.

Main entry points: [`src/tests`](https://github.com/pramoddutta/advanceplaywrightframework2x/tree/main/src/tests) (Test specifications), [`src/ai/agentFactory.ts`](https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/ai/agentFactory.ts) (Agent framework), [`src/api/BookingApi.ts`](https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/api/BookingApi.ts) (Booking client), [`src/ai/LLMClient.ts`](https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/ai/LLMClient.ts) (LLM transport)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Test entry"]
  node_specs["Test specifications"]
  node_runnerconfig["Runner configuration"]
end

subgraph group_ui["UI automation"]
  node_fixtures["Composable fixtures<br/>[test-base.ts]"]
  node_pages["Page objects"]
end

subgraph group_api["API automation"]
  node_bookingapi["Booking client<br/>[BookingApi.ts]"]
  node_apihelper["API helper<br/>[ApiHelper.ts]"]
end

subgraph group_shared["Shared services"]
  node_locator["Element wrapper"]
  node_credentials["Credentials and env"]
  node_testdata["Test data"]
  node_datagen["Data generation<br/>[DataGenerator.ts]"]
  node_schema["Schema validation<br/>[SchemaValidator.ts]"]
  node_logger["Scoped logging<br/>[logger.ts]"]
end

subgraph group_insights["Reporting and AI"]
  node_reporter["Custom reporter<br/>[CustomReporter.ts]"]
  node_rca["Failure analysis<br/>[rcaAgent.ts]"]
  node_flaky["Flaky analysis<br/>[flakyAnalyzer.ts]"]
  node_aigen["AI data generation<br/>[dataGenAgent.ts]"]
  node_selfheal["Self-healing<br/>[selfHealAgent.ts]"]
  node_agentfactory["Agent framework<br/>[agentFactory.ts]"]
  node_llmclient["LLM transport<br/>[LLMClient.ts]"]
  node_providers["Provider selection<br/>[providers.ts]"]
end

node_engineer(("Test author"))
node_playwright(("Playwright runner"))
node_app(("TTACart application"))
node_booker(("Restful Booker API"))
node_llm(("LLM provider"))

node_engineer -->|"authors checks"| node_specs
node_engineer -->|"starts run"| node_playwright
node_runnerconfig -->|"configures"| node_playwright
node_playwright -->|"executes"| node_specs
node_specs -->|"requests fixtures"| node_fixtures
node_fixtures -->|"constructs"| node_pages
node_specs -->|"uses"| node_pages
node_pages -->|"performs actions"| node_locator
node_locator -->|"drives UI"| node_app
node_specs -->|"calls"| node_bookingapi
node_bookingapi -->|"sends requests"| node_apihelper
node_apihelper -->|"calls API"| node_booker
node_bookingapi -->|"reads credentials"| node_credentials
node_fixtures -->|"reads credentials"| node_credentials
node_specs -->|"reads data"| node_testdata
node_specs -->|"generates data"| node_datagen
node_bookingapi -.->|"validates responses"| node_schema
node_playwright -->|"reports results"| node_reporter
node_reporter -->|"analyzes failures"| node_rca
node_reporter -->|"compares builds"| node_flaky
node_rca -->|"creates agent"| node_agentfactory
node_flaky -->|"creates agent"| node_agentfactory
node_aigen -->|"creates agent"| node_agentfactory
node_selfheal -->|"creates agent"| node_agentfactory
node_agentfactory -->|"requests completion"| node_llmclient
node_agentfactory -->|"validates output"| node_schema
node_llmclient -->|"resolves provider"| node_providers
node_llmclient -.->|"sends prompt"| node_llm
node_pages -->|"creates scoped logs"| node_logger
node_locator -->|"writes logs"| node_logger
node_llmclient -->|"writes metadata"| node_logger

click node_specs "https://github.com/pramoddutta/advanceplaywrightframework2x/tree/main/src/tests"
click node_runnerconfig "https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/playwright.config.ts"
click node_fixtures "https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/fixtures/test-base.ts"
click node_pages "https://github.com/pramoddutta/advanceplaywrightframework2x/tree/main/src/pages"
click node_locator "https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/utils/UtilElementLocator.ts"
click node_credentials "https://github.com/pramoddutta/advanceplaywrightframework2x/tree/main/src/config"
click node_testdata "https://github.com/pramoddutta/advanceplaywrightframework2x/tree/main/src/testdata"
click node_datagen "https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/utils/DataGenerator.ts"
click node_bookingapi "https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/api/BookingApi.ts"
click node_apihelper "https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/utils/ApiHelper.ts"
click node_schema "https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/utils/SchemaValidator.ts"
click node_reporter "https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/utils/CustomReporter.ts"
click node_rca "https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/ai/agents/rcaAgent.ts"
click node_flaky "https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/ai/agents/flakyAnalyzer.ts"
click node_aigen "https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/ai/agents/dataGenAgent.ts"
click node_selfheal "https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/ai/agents/selfHealAgent.ts"
click node_agentfactory "https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/ai/agentFactory.ts"
click node_llmclient "https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/ai/LLMClient.ts"
click node_providers "https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/ai/config/providers.ts"
click node_logger "https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/utils/logger.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_specs,node_runnerconfig toneBlue
class node_fixtures,node_pages toneAmber
class node_bookingapi,node_apihelper,node_booker toneMint
class node_locator,node_credentials,node_testdata,node_datagen,node_schema,node_logger toneRose
class node_reporter,node_rca,node_flaky,node_aigen,node_selfheal,node_agentfactory,node_llmclient,node_providers,node_engineer,node_playwright,node_app,node_llm toneIndigo
```

## Components

### Test entry

- [Test specifications](https://github.com/pramoddutta/advanceplaywrightframework2x/tree/main/src/tests): `src/tests`
- [Runner configuration](https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/playwright.config.ts): `playwright.config.ts`

### UI automation

- [Composable fixtures](https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/fixtures/test-base.ts): `src/fixtures/test-base.ts`
- [Page objects](https://github.com/pramoddutta/advanceplaywrightframework2x/tree/main/src/pages): `src/pages`

### API automation

- [Booking client](https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/api/BookingApi.ts): `src/api/BookingApi.ts`
- [API helper](https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/utils/ApiHelper.ts): `src/utils/ApiHelper.ts`

### Shared services

- [Element wrapper](https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/utils/UtilElementLocator.ts): `src/utils/UtilElementLocator.ts`
- [Credentials and env](https://github.com/pramoddutta/advanceplaywrightframework2x/tree/main/src/config): `src/config`
- [Test data](https://github.com/pramoddutta/advanceplaywrightframework2x/tree/main/src/testdata): `src/testdata`
- [Data generation](https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/utils/DataGenerator.ts): `src/utils/DataGenerator.ts`
- [Schema validation](https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/utils/SchemaValidator.ts): `src/utils/SchemaValidator.ts`
- [Scoped logging](https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/utils/logger.ts): `src/utils/logger.ts`

### Reporting and AI

- [Custom reporter](https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/utils/CustomReporter.ts): `src/utils/CustomReporter.ts`
- [Failure analysis](https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/ai/agents/rcaAgent.ts): `src/ai/agents/rcaAgent.ts`
- [Flaky analysis](https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/ai/agents/flakyAnalyzer.ts): `src/ai/agents/flakyAnalyzer.ts`
- [AI data generation](https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/ai/agents/dataGenAgent.ts): `src/ai/agents/dataGenAgent.ts`
- [Self-healing](https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/ai/agents/selfHealAgent.ts): `src/ai/agents/selfHealAgent.ts`
- [Agent framework](https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/ai/agentFactory.ts): `src/ai/agentFactory.ts`
- [LLM transport](https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/ai/LLMClient.ts): `src/ai/LLMClient.ts`
- [Provider selection](https://github.com/pramoddutta/advanceplaywrightframework2x/blob/main/src/ai/config/providers.ts): `src/ai/config/providers.ts`

### Other components

- **Test author**
- **Playwright runner**
- **TTACart application**
- **Restful Booker API**
- **LLM provider**

## Connections

- Test author → Test specifications: authors checks
- Test author → Playwright runner: starts run
- Runner configuration → Playwright runner: configures
- Playwright runner → Test specifications: executes
- Test specifications → Composable fixtures: requests fixtures
- Composable fixtures → Page objects: constructs
- Test specifications → Page objects: uses
- Page objects → Element wrapper: performs actions
- Element wrapper → TTACart application: drives UI
- Test specifications → Booking client: calls
- Booking client → API helper: sends requests
- API helper → Restful Booker API: calls API
- Booking client → Credentials and env: reads credentials
- Composable fixtures → Credentials and env: reads credentials
- Test specifications → Test data: reads data
- Test specifications → Data generation: generates data
- Booking client → Schema validation: validates responses
- Playwright runner → Custom reporter: reports results
- Custom reporter → Failure analysis: analyzes failures
- Custom reporter → Flaky analysis: compares builds
- Failure analysis → Agent framework: creates agent
- Flaky analysis → Agent framework: creates agent
- AI data generation → Agent framework: creates agent
- Self-healing → Agent framework: creates agent
- Agent framework → LLM transport: requests completion
- Agent framework → Schema validation: validates output
- LLM transport → Provider selection: resolves provider
- LLM transport → LLM provider: sends prompt
- Page objects → Scoped logging: creates scoped logs
- Element wrapper → Scoped logging: writes logs
- LLM transport → Scoped logging: writes metadata
