feat(automation): implement dual-mode browser automation with DevTools adapter - Add explicit result types for all automation operations (NavigationResult, FormFillResult, ClickResult, WaitResult, ModalResult) - Implement BrowserDevToolsAdapter for real browser automation via Chrome DevTools Protocol - Create IRacingSelectorMap with CSS selectors for all 18 workflow steps - Add AutomationConfig for environment-based adapter selection (mock/dev/production) - Update DI container to support mode switching via AUTOMATION_MODE env var - Add 54 new tests (34 integration + 20 unit), total now 212 passing - Add npm scripts: companion:mock, companion:devtools, chrome:debug

This commit is contained in:
2025-11-21 19:54:37 +01:00
parent 33b6557eed
commit a980a288ea
18 changed files with 2446 additions and 94 deletions

18
.env.development.example Normal file
View File

@@ -0,0 +1,18 @@
# Development Environment Configuration
# Copy this file to .env.development and adjust values as needed
# Automation mode: 'dev' | 'production' | 'mock'
AUTOMATION_MODE=dev
# Chrome DevTools settings (for dev mode)
CHROME_DEBUG_PORT=9222
# CHROME_WS_ENDPOINT=ws://127.0.0.1:9222/devtools/browser/<id>
# Shared automation settings
AUTOMATION_TIMEOUT=30000
RETRY_ATTEMPTS=3
SCREENSHOT_ON_ERROR=true
# Start Chrome with debugging enabled:
# /Applications/Google Chrome.app/Contents/MacOS/Google Chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug
# Or use: npm run chrome:debug