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

View File

@@ -20,9 +20,12 @@
"test:watch": "vitest watch",
"typecheck": "tsc --noEmit",
"companion": "npm run companion:build && electron .",
"companion:dev": "node build-main.config.js --watch & vite build --config vite.config.electron.ts --watch",
"companion:dev": "npm run companion:build && (node build-main.config.js --watch & vite build --config vite.config.electron.ts --watch & electron .)",
"companion:build": "node build-main.config.js && vite build --config vite.config.electron.ts",
"companion:start": "electron ."
"companion:start": "electron .",
"companion:mock": "AUTOMATION_MODE=mock npm run companion:start",
"companion:devtools": "AUTOMATION_MODE=dev npm run companion:start",
"chrome:debug": "open -a 'Google Chrome' --args --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug"
},
"devDependencies": {
"@cucumber/cucumber": "^11.0.1",
@@ -38,6 +41,7 @@
"vitest": "^2.1.8"
},
"dependencies": {
"puppeteer-core": "^24.31.0",
"react": "^18.2.0",
"react-dom": "^18.2.0"
},