prettyplay 0.0.0__tar.gz → 0.0.1__tar.gz
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.
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.gitignore +1 -3
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/config.yml +6 -1
- prettyplay-0.0.1/.goga/history/2026/add-actions/adr.md +60 -0
- prettyplay-0.0.1/.goga/history/2026/add-actions/arch.md +958 -0
- prettyplay-0.0.1/.goga/history/2026/add-actions/completed/plan.md +1333 -0
- prettyplay-0.0.1/.goga/history/2026/add-actions/design.md +1804 -0
- prettyplay-0.0.1/.goga/history/2026/add-actions/task.md +162 -0
- prettyplay-0.0.1/.goga/history/2026/add-expect-count/adr.md +85 -0
- prettyplay-0.0.1/.goga/history/2026/add-expect-count/arch.md +617 -0
- prettyplay-0.0.1/.goga/history/2026/add-expect-count/completed/plan.md +456 -0
- prettyplay-0.0.1/.goga/history/2026/add-expect-count/design.md +719 -0
- prettyplay-0.0.1/.goga/history/2026/add-expect-count/task.md +114 -0
- prettyplay-0.0.1/.goga/history/2026/agent-context-window/adr.md +102 -0
- prettyplay-0.0.1/.goga/history/2026/agent-context-window/arch.md +1527 -0
- prettyplay-0.0.1/.goga/history/2026/agent-context-window/completed/plan.md +648 -0
- prettyplay-0.0.1/.goga/history/2026/agent-context-window/design.md +1125 -0
- prettyplay-0.0.1/.goga/history/2026/agent-context-window/task.md +189 -0
- prettyplay-0.0.1/.goga/history/2026/better-healt/adr.md +159 -0
- prettyplay-0.0.1/.goga/history/2026/better-healt/arch.md +1608 -0
- prettyplay-0.0.1/.goga/history/2026/better-healt/completed/plan.md +1367 -0
- prettyplay-0.0.1/.goga/history/2026/better-healt/design.md +1810 -0
- prettyplay-0.0.1/.goga/history/2026/better-healt/task.md +318 -0
- prettyplay-0.0.1/.goga/history/2026/better-healt-2/adr.md +42 -0
- prettyplay-0.0.1/.goga/history/2026/better-healt-2/arch.md +228 -0
- prettyplay-0.0.1/.goga/history/2026/better-healt-2/completed/plan.md +582 -0
- prettyplay-0.0.1/.goga/history/2026/better-healt-2/design.md +706 -0
- prettyplay-0.0.1/.goga/history/2026/better-healt-2/task.md +105 -0
- prettyplay-0.0.1/.goga/history/2026/fix-interactive-loop/adr.md +85 -0
- prettyplay-0.0.1/.goga/history/2026/fix-interactive-loop/arch.md +682 -0
- prettyplay-0.0.1/.goga/history/2026/fix-interactive-loop/completed/plan.md +1026 -0
- prettyplay-0.0.1/.goga/history/2026/fix-interactive-loop/design.md +1217 -0
- prettyplay-0.0.1/.goga/history/2026/fix-interactive-loop/task.md +244 -0
- prettyplay-0.0.1/.goga/history/2026/fix-interactive-loop/todo.md +47 -0
- prettyplay-0.0.1/.goga/history/2026/fix-user-instructions/adr.md +115 -0
- prettyplay-0.0.1/.goga/history/2026/fix-user-instructions/arch.md +912 -0
- prettyplay-0.0.1/.goga/history/2026/fix-user-instructions/completed/plan.md +1405 -0
- prettyplay-0.0.1/.goga/history/2026/fix-user-instructions/design.md +1341 -0
- prettyplay-0.0.1/.goga/history/2026/fix-user-instructions/task.md +204 -0
- prettyplay-0.0.1/.goga/history/2026/step-group-and-step-params/adr.md +130 -0
- prettyplay-0.0.1/.goga/history/2026/step-group-and-step-params/arch.md +1207 -0
- prettyplay-0.0.1/.goga/history/2026/step-group-and-step-params/completed/plan.md +1466 -0
- prettyplay-0.0.1/.goga/history/2026/step-group-and-step-params/design.md +1487 -0
- prettyplay-0.0.1/.goga/history/2026/step-group-and-step-params/prd.md +382 -0
- prettyplay-0.0.1/.goga/history/2026/step-group-and-step-params/task.md +343 -0
- prettyplay-0.0.1/.goga/history/2026/strict-and-fullscreen-mode/adr.md +21 -0
- prettyplay-0.0.1/.goga/history/2026/strict-and-fullscreen-mode/arch.md +1885 -0
- prettyplay-0.0.1/.goga/history/2026/strict-and-fullscreen-mode/completed/plan.md +694 -0
- prettyplay-0.0.1/.goga/history/2026/strict-and-fullscreen-mode/design.md +1081 -0
- prettyplay-0.0.1/.goga/history/2026/strict-and-fullscreen-mode/task.md +145 -0
- prettyplay-0.0.1/.goga/memory/architecture.md +61 -0
- prettyplay-0.0.1/.goga/memory/code-design.md +57 -0
- prettyplay-0.0.1/.goga/tools/mkdocs/traceability.yml +37 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/usages/cooks/anthropic.md +25 -4
- prettyplay-0.0.1/.goga/usages/cooks/json_repair.md +68 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/usages/cooks/openai.md +23 -3
- prettyplay-0.0.1/.goga/usages/cooks/playwright.md +345 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/usages/cooks/pydantic.md +27 -20
- prettyplay-0.0.1/.goga/usages/prompts/group_diagnosis.md +40 -0
- prettyplay-0.0.1/.goga/usages/prompts/group_framing.md +25 -0
- prettyplay-0.0.1/.goga/usages/prompts/step_cheatsheet.md +87 -0
- prettyplay-0.0.1/.goga/usages/prompts/step_generation.md +51 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/workflows/bugfix.yml +1 -1
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/workflows/development.yml +2 -2
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/workflows/epic.yml +1 -1
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/workflows/story.yml +1 -1
- prettyplay-0.0.1/.goga/workflows/sync.yml +3 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/workflows/task.yml +1 -1
- prettyplay-0.0.1/MANIFEST.in +1 -0
- prettyplay-0.0.1/PKG-INFO +495 -0
- prettyplay-0.0.1/README.md +463 -0
- prettyplay-0.0.1/docs/configuration.md +391 -0
- prettyplay-0.0.1/docs/getting-started.md +220 -0
- prettyplay-0.0.1/docs/guides/browser-setup.md +104 -0
- prettyplay-0.0.1/docs/guides/writing-steps.md +218 -0
- prettyplay-0.0.1/docs/index.md +80 -0
- prettyplay-0.0.1/docs/reference/driver-facade.md +211 -0
- prettyplay-0.0.1/docs/reference/failure-taxonomy.md +150 -0
- prettyplay-0.0.1/docs/reference/groups.md +127 -0
- prettyplay-0.0.1/docs/reference/hooks.md +133 -0
- prettyplay-0.0.1/docs/reference/interactive-steering.md +123 -0
- prettyplay-0.0.1/docs/reference/llm-providers.md +180 -0
- prettyplay-0.0.1/docs/reference/self-healing.md +85 -0
- prettyplay-0.0.1/docs/reference/settle-polling.md +102 -0
- prettyplay-0.0.1/docs/reference/step-cache.md +139 -0
- prettyplay-0.0.1/example/conftest.py +127 -0
- prettyplay-0.0.1/example/tests/test_duckduckgo.py +8 -0
- prettyplay-0.0.1/example/tests/test_yandex.py +8 -0
- prettyplay-0.0.1/example/tests/test_youtube.py +14 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/mkdocs.yml +17 -1
- prettyplay-0.0.1/prettyplay/.usages/lifecycle.md +114 -0
- prettyplay-0.0.1/prettyplay/.usages/steps.md +120 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/__init__.py +8 -3
- {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/cache/.usages/addressing.md +1 -1
- prettyplay-0.0.1/prettyplay/cache/.usages/budgets.md +51 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/cache/.usages/storage.md +2 -2
- {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/cache/budgets.py +39 -1
- {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/cache/models.py +3 -1
- {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/cache/store.py +33 -14
- prettyplay-0.0.1/prettyplay/config/.usages/configuration.md +222 -0
- prettyplay-0.0.1/prettyplay/config/__init__.py +6 -0
- prettyplay-0.0.1/prettyplay/config/loader.py +381 -0
- prettyplay-0.0.1/prettyplay/config/models.py +289 -0
- prettyplay-0.0.1/prettyplay/driver/.usages/error_kinds.md +26 -0
- prettyplay-0.0.1/prettyplay/driver/.usages/plumbing.md +52 -0
- prettyplay-0.0.1/prettyplay/driver/__init__.py +11 -0
- prettyplay-0.0.1/prettyplay/driver/errors.py +90 -0
- prettyplay-0.0.1/prettyplay/driver/page.py +237 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/driver/session.py +124 -24
- prettyplay-0.0.1/prettyplay/engine/.usages/generation.md +134 -0
- prettyplay-0.0.1/prettyplay/engine/.usages/healing.md +56 -0
- prettyplay-0.0.1/prettyplay/engine/__init__.py +19 -0
- prettyplay-0.0.1/prettyplay/engine/attempts.py +95 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/engine/classification.py +13 -6
- prettyplay-0.0.1/prettyplay/engine/compliance.py +119 -0
- prettyplay-0.0.1/prettyplay/engine/execution.py +30 -0
- prettyplay-0.0.1/prettyplay/engine/generator.py +1078 -0
- prettyplay-0.0.1/prettyplay/engine/groups/.usages/recovery.md +48 -0
- prettyplay-0.0.1/prettyplay/engine/groups/__init__.py +7 -0
- prettyplay-0.0.1/prettyplay/engine/groups/diagnosis.py +123 -0
- prettyplay-0.0.1/prettyplay/engine/groups/outcome.py +54 -0
- prettyplay-0.0.1/prettyplay/engine/groups/recovery.py +413 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/engine/healer.py +46 -20
- prettyplay-0.0.1/prettyplay/engine/polling/.usages/settle.md +51 -0
- prettyplay-0.0.1/prettyplay/engine/polling/__init__.py +6 -0
- prettyplay-0.0.1/prettyplay/engine/polling/settle.py +100 -0
- prettyplay-0.0.1/prettyplay/engine/polling/window.py +89 -0
- prettyplay-0.0.1/prettyplay/engine/steering/.usages/steering.md +90 -0
- prettyplay-0.0.1/prettyplay/engine/steering/__init__.py +5 -0
- prettyplay-0.0.1/prettyplay/engine/steering/steering.py +741 -0
- prettyplay-0.0.1/prettyplay/engine/text.py +25 -0
- prettyplay-0.0.1/prettyplay/executor.py +645 -0
- prettyplay-0.0.1/prettyplay/failures/.usages/taxonomy.md +131 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/failures/__init__.py +10 -2
- prettyplay-0.0.1/prettyplay/failures/errors.py +422 -0
- prettyplay-0.0.1/prettyplay/groups.py +258 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/llm/.usages/classification.md +7 -1
- prettyplay-0.0.1/prettyplay/llm/.usages/providers.md +96 -0
- prettyplay-0.0.1/prettyplay/llm/__init__.py +26 -0
- prettyplay-0.0.1/prettyplay/llm/_request.py +376 -0
- prettyplay-0.0.1/prettyplay/llm/anthropic_provider.py +422 -0
- prettyplay-0.0.1/prettyplay/llm/models.py +297 -0
- prettyplay-0.0.1/prettyplay/llm/openai_provider.py +397 -0
- prettyplay-0.0.1/prettyplay/llm/provider.py +259 -0
- prettyplay-0.0.1/prettyplay/reporting/.usages/hooks.md +61 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/reporting/hooks.py +28 -3
- {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/runtime.py +3 -3
- {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/scenario.py +196 -18
- prettyplay-0.0.1/prettyplay.egg-info/PKG-INFO +495 -0
- prettyplay-0.0.1/prettyplay.egg-info/SOURCES.txt +240 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay.egg-info/requires.txt +1 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/pyproject.toml +10 -0
- prettyplay-0.0.1/tests/cache/test_budgets.py +184 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/tests/cache/test_models.py +1 -1
- {prettyplay-0.0.0 → prettyplay-0.0.1}/tests/cache/test_store.py +53 -3
- prettyplay-0.0.1/tests/config/test_loader.py +832 -0
- prettyplay-0.0.1/tests/config/test_models.py +351 -0
- prettyplay-0.0.1/tests/conftest.py +100 -0
- prettyplay-0.0.1/tests/driver/test_errors.py +59 -0
- prettyplay-0.0.1/tests/driver/test_page.py +612 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/tests/driver/test_session.py +453 -55
- prettyplay-0.0.1/tests/engine/groups/test_diagnosis.py +336 -0
- prettyplay-0.0.1/tests/engine/groups/test_outcome.py +143 -0
- prettyplay-0.0.1/tests/engine/groups/test_recovery.py +812 -0
- prettyplay-0.0.1/tests/engine/polling/test_settle.py +321 -0
- prettyplay-0.0.1/tests/engine/polling/test_window.py +130 -0
- prettyplay-0.0.1/tests/engine/steering/__init__.py +1 -0
- prettyplay-0.0.1/tests/engine/steering/test_steering.py +1548 -0
- prettyplay-0.0.1/tests/engine/test_attempts.py +144 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/tests/engine/test_classification.py +78 -11
- prettyplay-0.0.1/tests/engine/test_compliance.py +163 -0
- prettyplay-0.0.1/tests/engine/test_execution.py +326 -0
- prettyplay-0.0.1/tests/engine/test_generator.py +2005 -0
- prettyplay-0.0.1/tests/engine/test_healer.py +946 -0
- prettyplay-0.0.1/tests/engine/test_text.py +34 -0
- prettyplay-0.0.1/tests/failures/__init__.py +0 -0
- prettyplay-0.0.1/tests/failures/test_errors.py +628 -0
- prettyplay-0.0.1/tests/llm/__init__.py +0 -0
- prettyplay-0.0.1/tests/llm/test_anthropic_provider.py +848 -0
- prettyplay-0.0.1/tests/llm/test_models.py +538 -0
- prettyplay-0.0.1/tests/llm/test_openai_provider.py +851 -0
- prettyplay-0.0.1/tests/llm/test_provider.py +591 -0
- prettyplay-0.0.1/tests/llm/test_request.py +573 -0
- prettyplay-0.0.1/tests/reporting/__init__.py +0 -0
- prettyplay-0.0.1/tests/reporting/test_hooks.py +189 -0
- prettyplay-0.0.1/tests/test_executor.py +1814 -0
- prettyplay-0.0.1/tests/test_groups_integration.py +519 -0
- prettyplay-0.0.1/tests/test_integration.py +1497 -0
- prettyplay-0.0.1/tests/test_scenario.py +1473 -0
- prettyplay-0.0.0/.goga/memory/architecture.md +0 -95
- prettyplay-0.0.0/.goga/memory/code-design.md +0 -19
- prettyplay-0.0.0/.goga/usages/cooks/playwright.md +0 -115
- prettyplay-0.0.0/PKG-INFO +0 -236
- prettyplay-0.0.0/README.md +0 -205
- prettyplay-0.0.0/docs/defines/master.md +0 -162
- prettyplay-0.0.0/prettyplay/.usages/lifecycle.md +0 -50
- prettyplay-0.0.0/prettyplay/.usages/steps.md +0 -56
- prettyplay-0.0.0/prettyplay/CODEMANIFEST +0 -182
- prettyplay-0.0.0/prettyplay/cache/.usages/budgets.md +0 -21
- prettyplay-0.0.0/prettyplay/cache/CODEMANIFEST +0 -152
- prettyplay-0.0.0/prettyplay/config/.usages/configuration.md +0 -87
- prettyplay-0.0.0/prettyplay/config/CODEMANIFEST +0 -132
- prettyplay-0.0.0/prettyplay/config/__init__.py +0 -6
- prettyplay-0.0.0/prettyplay/config/loader.py +0 -192
- prettyplay-0.0.0/prettyplay/config/models.py +0 -92
- prettyplay-0.0.0/prettyplay/driver/.usages/facade.md +0 -66
- prettyplay-0.0.0/prettyplay/driver/CODEMANIFEST +0 -162
- prettyplay-0.0.0/prettyplay/driver/__init__.py +0 -6
- prettyplay-0.0.0/prettyplay/driver/page.py +0 -350
- prettyplay-0.0.0/prettyplay/engine/.usages/generation.md +0 -45
- prettyplay-0.0.0/prettyplay/engine/.usages/healing.md +0 -31
- prettyplay-0.0.0/prettyplay/engine/CODEMANIFEST +0 -215
- prettyplay-0.0.0/prettyplay/engine/__init__.py +0 -8
- prettyplay-0.0.0/prettyplay/engine/execution.py +0 -25
- prettyplay-0.0.0/prettyplay/engine/generator.py +0 -318
- prettyplay-0.0.0/prettyplay/engine/text.py +0 -19
- prettyplay-0.0.0/prettyplay/executor.py +0 -109
- prettyplay-0.0.0/prettyplay/failures/.usages/taxonomy.md +0 -40
- prettyplay-0.0.0/prettyplay/failures/CODEMANIFEST +0 -117
- prettyplay-0.0.0/prettyplay/failures/errors.py +0 -147
- prettyplay-0.0.0/prettyplay/llm/.usages/providers.md +0 -33
- prettyplay-0.0.0/prettyplay/llm/CODEMANIFEST +0 -125
- prettyplay-0.0.0/prettyplay/llm/__init__.py +0 -8
- prettyplay-0.0.0/prettyplay/llm/_request.py +0 -216
- prettyplay-0.0.0/prettyplay/llm/anthropic_provider.py +0 -213
- prettyplay-0.0.0/prettyplay/llm/models.py +0 -22
- prettyplay-0.0.0/prettyplay/llm/openai_provider.py +0 -187
- prettyplay-0.0.0/prettyplay/llm/provider.py +0 -115
- prettyplay-0.0.0/prettyplay/reporting/.usages/hooks.md +0 -41
- prettyplay-0.0.0/prettyplay/reporting/CODEMANIFEST +0 -79
- prettyplay-0.0.0/prettyplay.egg-info/PKG-INFO +0 -236
- prettyplay-0.0.0/prettyplay.egg-info/SOURCES.txt +0 -144
- prettyplay-0.0.0/tests/cache/test_budgets.py +0 -94
- prettyplay-0.0.0/tests/config/test_loader.py +0 -318
- prettyplay-0.0.0/tests/config/test_models.py +0 -166
- prettyplay-0.0.0/tests/conftest.py +0 -47
- prettyplay-0.0.0/tests/driver/test_page.py +0 -637
- prettyplay-0.0.0/tests/engine/test_execution.py +0 -148
- prettyplay-0.0.0/tests/engine/test_generator.py +0 -713
- prettyplay-0.0.0/tests/engine/test_healer.py +0 -505
- prettyplay-0.0.0/tests/failures/test_errors.py +0 -199
- prettyplay-0.0.0/tests/llm/test_anthropic_provider.py +0 -472
- prettyplay-0.0.0/tests/llm/test_models.py +0 -47
- prettyplay-0.0.0/tests/llm/test_openai_provider.py +0 -499
- prettyplay-0.0.0/tests/llm/test_provider.py +0 -109
- prettyplay-0.0.0/tests/llm/test_request.py +0 -65
- prettyplay-0.0.0/tests/reporting/test_hooks.py +0 -81
- prettyplay-0.0.0/tests/test_executor.py +0 -421
- prettyplay-0.0.0/tests/test_integration.py +0 -555
- prettyplay-0.0.0/tests/test_scenario.py +0 -613
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.github/workflows/docs.yml +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.github/workflows/lint.yml +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.github/workflows/new_version.yml +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.github/workflows/notify.yml +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.github/workflows/publish.yml +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.github/workflows/strictacode.yml +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.github/workflows/tests.yml +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/Dockerfile +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/additional-configuration/adr.md +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/additional-configuration/arch.md +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/additional-configuration/completed/plan.md +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/additional-configuration/design.md +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/additional-configuration/task.md +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/more-usability/adr.md +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/more-usability/arch.md +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/more-usability/completed/plan.md +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/more-usability/design.md +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/more-usability/task.md +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/the-first-version/adr.md +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/the-first-version/arch.md +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/the-first-version/completed/plan.md +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/the-first-version/design.md +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/the-first-version/prd.md +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/history/2026/the-first-version/task.md +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/scaffold.yml +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.goga/usages/conventions.md +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/.strictacode.yml +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/LICENSE +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/agents/analyst.sh +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/agents/architector.sh +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/agents/developer.sh +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/agents/manager.sh +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/agents/product.sh +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/agents/reviewer.sh +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/agents/tester.sh +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/docs/overrides/main.html +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1/example}/tests/__init__.py +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/cache/__init__.py +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/cache/text.py +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/reporting/__init__.py +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay/reporting/reporter.py +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay.egg-info/dependency_links.txt +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/prettyplay.egg-info/top_level.txt +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/setup.cfg +0 -0
- {prettyplay-0.0.0/tests/cache → prettyplay-0.0.1/tests}/__init__.py +0 -0
- {prettyplay-0.0.0/tests/config → prettyplay-0.0.1/tests/cache}/__init__.py +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/tests/cache/test_text.py +0 -0
- {prettyplay-0.0.0/tests/driver → prettyplay-0.0.1/tests/config}/__init__.py +0 -0
- {prettyplay-0.0.0/tests/engine → prettyplay-0.0.1/tests/driver}/__init__.py +0 -0
- {prettyplay-0.0.0/tests/failures → prettyplay-0.0.1/tests/engine}/__init__.py +0 -0
- {prettyplay-0.0.0/tests/llm → prettyplay-0.0.1/tests/engine/groups}/__init__.py +0 -0
- {prettyplay-0.0.0/tests/reporting → prettyplay-0.0.1/tests/engine/polling}/__init__.py +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/tests/reporting/test_reporter.py +0 -0
- {prettyplay-0.0.0 → prettyplay-0.0.1}/tests/test_runtime.py +0 -0
|
@@ -3,6 +3,8 @@ language: python
|
|
|
3
3
|
image: prettyplay:latest
|
|
4
4
|
dockerfile: .goga/Dockerfile
|
|
5
5
|
|
|
6
|
+
.base-ref: &base-ref 0.0.x
|
|
7
|
+
|
|
6
8
|
.claude-env: &claude-env
|
|
7
9
|
ANTHROPIC_MODEL: opus
|
|
8
10
|
ANTHROPIC_BASE_URL: "https://api.z.ai/api/anthropic"
|
|
@@ -12,7 +14,7 @@ build:
|
|
|
12
14
|
agent: developer
|
|
13
15
|
review_executor:
|
|
14
16
|
agent: reviewer
|
|
15
|
-
base_ref:
|
|
17
|
+
base_ref: *base-ref
|
|
16
18
|
|
|
17
19
|
pipeline:
|
|
18
20
|
agent: claude
|
|
@@ -20,6 +22,9 @@ pipeline:
|
|
|
20
22
|
<<: *claude-env
|
|
21
23
|
ANTHROPIC_DEFAULT_OPUS_MODEL: "glm-5.3[1m]"
|
|
22
24
|
|
|
25
|
+
topics:
|
|
26
|
+
base_ref: *base-ref
|
|
27
|
+
|
|
23
28
|
codemanifest:
|
|
24
29
|
usages:
|
|
25
30
|
conventions: .goga/usages/conventions.md
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: accepted
|
|
3
|
+
date: 2026-09-11
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Full Playwright parity for the generation API surface
|
|
7
|
+
|
|
8
|
+
Generated step code works only through the `PageFacade`/`LocatorFacade` surface, and the exact
|
|
9
|
+
listing of that surface is sent to the LLM as PAGE API. Real scenarios kept failing on missing
|
|
10
|
+
actions — the motivating case: generated code called a non-existent `press` on a located element.
|
|
11
|
+
The LLM assumes Playwright's API because that is what it knows, so every divergence between the
|
|
12
|
+
facade and Playwright is a latent failure. We decided to move the facade from a narrow curated
|
|
13
|
+
surface to **full parity with the Playwright sync API at page/locator level**, mirroring Playwright
|
|
14
|
+
names 1:1 across the whole surface — including renaming existing methods (`find_by_role` →
|
|
15
|
+
`get_by_role`, `open` → `goto`) — because name divergence was the exact source of the motivating
|
|
16
|
+
failure. Backward compatibility is dropped entirely: it is not a concern for this break and is not
|
|
17
|
+
adopted as a policy going forward.
|
|
18
|
+
|
|
19
|
+
## Decision points
|
|
20
|
+
|
|
21
|
+
- **Boundary**: the full user-level contour — all interaction actions (keyboard including `press`,
|
|
22
|
+
hover, checkbox/radio, clear, double/right click, drag&drop, file upload), all navigation
|
|
23
|
+
(`goto`/back/forward/reload), the full expectation and wait set (value, checked, count,
|
|
24
|
+
attribute, hidden, URL, title, wait_for), dialogs, iframes, tabs/popups with switching.
|
|
25
|
+
Deliberately excluded: network interception (route/request), arbitrary JS (`evaluate`), CDP,
|
|
26
|
+
clock, HAR, tracing — the page-state model that failure classification and healing rely on must
|
|
27
|
+
stay honest.
|
|
28
|
+
- **Names**: the whole surface mirrors Playwright names 1:1; existing methods are renamed to their
|
|
29
|
+
mirror counterparts. New Playwright capabilities arriving later are expected to land as mirror
|
|
30
|
+
extensions.
|
|
31
|
+
- **Extras**: the prettyplay-specific scroll family (`scroll_to_element`, `scroll_down`,
|
|
32
|
+
`scroll_to_bottom`, `scroll_into_view`, `scroll_container_*`) stays on top of the mirror under
|
|
33
|
+
its own names — power Playwright does not offer at this level.
|
|
34
|
+
- **Expectation model**: method-style `expect_*` calls on the facade with full coverage; the
|
|
35
|
+
chained `expect(locator).to_be_*()` model of Playwright is not adopted — the fixed step form
|
|
36
|
+
(one page-facade argument, no imports) forbids it.
|
|
37
|
+
- **Multi-page**: popups and new tabs are in scope, with switching to the opened window and back.
|
|
38
|
+
- **Delivery**: one change covering the whole surface at once, no phasing.
|
|
39
|
+
- **Step cache**: explicitly a non-decision — the cache can simply be deleted or healed lazily
|
|
40
|
+
through the existing classify → rot → regenerate loop; no dedicated mechanism is built.
|
|
41
|
+
- **Dialogs**: automatic dialog acceptance (the `page.on("dialog", accept)` equivalent) becomes a
|
|
42
|
+
setting of the browser group of `BrowserConfig`.
|
|
43
|
+
|
|
44
|
+
## Consequences
|
|
45
|
+
|
|
46
|
+
- The driver's standing constraint "the facade surface is a backward-compatibility contract —
|
|
47
|
+
extend, never rename or remove" is retired; the parity principle replaces it.
|
|
48
|
+
- The `facade` practice, the PAGE API listing that mirrors it exactly, and the generation system
|
|
49
|
+
prompt examples change together in one move.
|
|
50
|
+
- The facade remains a thread-marshaling wrapper over the driver thread: parity means names and
|
|
51
|
+
capabilities, never exposing raw Playwright objects.
|
|
52
|
+
- Renamed methods make cached steps fail; the accepted answer is manual deletion or lazy healing —
|
|
53
|
+
misclassification noise on AttributeError is an accepted cost.
|
|
54
|
+
|
|
55
|
+
## Unresolved questions (contract phase)
|
|
56
|
+
|
|
57
|
+
- The exact name mapping between the current surface and the Playwright mirror.
|
|
58
|
+
- The dialog expectation construct for scenarios that must verify a dialog, and the behavior when
|
|
59
|
+
the auto-accept setting is off.
|
|
60
|
+
- The mechanism for tab/popup switching and for iframe access.
|