Feature Summary
Step 1 of the operator-demo video generator: the shared Playwright automation foundation.
Proposed Solution or Design
Add a new Docs sbt module with Playwright (Chromium) as a dependency. This module provides the shared framework that later operator-demo controllers and generated scripts will build on.
The module includes:
ControllerContext and shared base types: define ControllerContext together with the common step, controller, and builder abstractions used by later UI controllers.
- Shared Playwright utilities: add reusable helpers for common browser interactions, including cursor-visible clicks, optional press-and-hold behavior for controls that do not reliably respond to instantaneous clicks, dropdown selection, explicit waits, and canvas geometry helpers.
OperatorScript interface: define the interface implemented by each per-operator script. It includes separate setup and demo phases so preparation work, such as creating or importing the sample workflow, runs before recording starts and remains outside the final video.
- Shared execution constants: centralize commonly used values such as delay tiers, timeout ceilings, retry counts, and Run button state strings.
Controllers follow a builder-style API:
new SomeControllerBuilder(ctx)
.someAction(...)
.execute()
Affected Area
No response
Feature Summary
Step 1 of the operator-demo video generator: the shared Playwright automation foundation.
Proposed Solution or Design
Add a new
Docssbt module with Playwright (Chromium) as a dependency. This module provides the shared framework that later operator-demo controllers and generated scripts will build on.The module includes:
ControllerContextand shared base types: defineControllerContexttogether with the common step, controller, and builder abstractions used by later UI controllers.OperatorScriptinterface: define the interface implemented by each per-operator script. It includes separatesetupanddemophases so preparation work, such as creating or importing the sample workflow, runs before recording starts and remains outside the final video.Controllers follow a builder-style API:
Affected Area
No response