devharness 0.8.0
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.
- package/LICENSE +21 -0
- package/README.md +185 -0
- package/build/atomic-write.d.ts +28 -0
- package/build/atomic-write.d.ts.map +1 -0
- package/build/atomic-write.js +126 -0
- package/build/atomic-write.js.map +1 -0
- package/build/cdp-manager.d.ts +524 -0
- package/build/cdp-manager.d.ts.map +1 -0
- package/build/cdp-manager.js +1828 -0
- package/build/cdp-manager.js.map +1 -0
- package/build/cdp-manager.test.d.ts +6 -0
- package/build/cdp-manager.test.d.ts.map +1 -0
- package/build/cdp-manager.test.js +546 -0
- package/build/cdp-manager.test.js.map +1 -0
- package/build/chrome-launcher.d.ts +400 -0
- package/build/chrome-launcher.d.ts.map +1 -0
- package/build/chrome-launcher.js +1071 -0
- package/build/chrome-launcher.js.map +1 -0
- package/build/chrome-launcher.test.d.ts +11 -0
- package/build/chrome-launcher.test.d.ts.map +1 -0
- package/build/chrome-launcher.test.js +204 -0
- package/build/chrome-launcher.test.js.map +1 -0
- package/build/clickable-cache.d.ts +73 -0
- package/build/clickable-cache.d.ts.map +1 -0
- package/build/clickable-cache.js +90 -0
- package/build/clickable-cache.js.map +1 -0
- package/build/command-recorder.d.ts +401 -0
- package/build/command-recorder.d.ts.map +1 -0
- package/build/command-recorder.js +701 -0
- package/build/command-recorder.js.map +1 -0
- package/build/config.d.ts +390 -0
- package/build/config.d.ts.map +1 -0
- package/build/config.js +826 -0
- package/build/config.js.map +1 -0
- package/build/config.test.d.ts +2 -0
- package/build/config.test.d.ts.map +1 -0
- package/build/config.test.js +112 -0
- package/build/config.test.js.map +1 -0
- package/build/connection-manager.d.ts +159 -0
- package/build/connection-manager.d.ts.map +1 -0
- package/build/connection-manager.js +432 -0
- package/build/connection-manager.js.map +1 -0
- package/build/connection-manager.test.d.ts +11 -0
- package/build/connection-manager.test.d.ts.map +1 -0
- package/build/connection-manager.test.js +114 -0
- package/build/connection-manager.test.js.map +1 -0
- package/build/console-monitor.d.ts +150 -0
- package/build/console-monitor.d.ts.map +1 -0
- package/build/console-monitor.js +454 -0
- package/build/console-monitor.js.map +1 -0
- package/build/dashboard/bundle.js +1 -0
- package/build/dashboard/dashboard-client.d.ts +42 -0
- package/build/dashboard/dashboard-client.d.ts.map +1 -0
- package/build/dashboard/dashboard-client.js +184 -0
- package/build/dashboard/dashboard-client.js.map +1 -0
- package/build/dashboard/dashboard-hub.d.ts +50 -0
- package/build/dashboard/dashboard-hub.d.ts.map +1 -0
- package/build/dashboard/dashboard-hub.js +654 -0
- package/build/dashboard/dashboard-hub.js.map +1 -0
- package/build/dashboard/hub-lock.d.ts +16 -0
- package/build/dashboard/hub-lock.d.ts.map +1 -0
- package/build/dashboard/hub-lock.js +77 -0
- package/build/dashboard/hub-lock.js.map +1 -0
- package/build/dashboard/index.d.ts +25 -0
- package/build/dashboard/index.d.ts.map +1 -0
- package/build/dashboard/index.js +77 -0
- package/build/dashboard/index.js.map +1 -0
- package/build/dashboard/types.d.ts +83 -0
- package/build/dashboard/types.d.ts.map +1 -0
- package/build/dashboard/types.js +6 -0
- package/build/dashboard/types.js.map +1 -0
- package/build/debug-logger.d.ts +85 -0
- package/build/debug-logger.d.ts.map +1 -0
- package/build/debug-logger.js +195 -0
- package/build/debug-logger.js.map +1 -0
- package/build/debugger-aware-wrapper.d.ts +37 -0
- package/build/debugger-aware-wrapper.d.ts.map +1 -0
- package/build/debugger-aware-wrapper.js +128 -0
- package/build/debugger-aware-wrapper.js.map +1 -0
- package/build/dom-change-monitor.d.ts +92 -0
- package/build/dom-change-monitor.d.ts.map +1 -0
- package/build/dom-change-monitor.js +437 -0
- package/build/dom-change-monitor.js.map +1 -0
- package/build/element-collector.d.ts +16 -0
- package/build/element-collector.d.ts.map +1 -0
- package/build/element-collector.js +207 -0
- package/build/element-collector.js.map +1 -0
- package/build/error-helpers.d.ts +43 -0
- package/build/error-helpers.d.ts.map +1 -0
- package/build/error-helpers.js +143 -0
- package/build/error-helpers.js.map +1 -0
- package/build/formatters/console-formatter.d.ts +160 -0
- package/build/formatters/console-formatter.d.ts.map +1 -0
- package/build/formatters/console-formatter.js +338 -0
- package/build/formatters/console-formatter.js.map +1 -0
- package/build/helpers/parser-plugins.d.ts +44 -0
- package/build/helpers/parser-plugins.d.ts.map +1 -0
- package/build/helpers/parser-plugins.js +102 -0
- package/build/helpers/parser-plugins.js.map +1 -0
- package/build/helpers/paths.d.ts +79 -0
- package/build/helpers/paths.d.ts.map +1 -0
- package/build/helpers/paths.js +168 -0
- package/build/helpers/paths.js.map +1 -0
- package/build/helpers/process-liveness.d.ts +24 -0
- package/build/helpers/process-liveness.d.ts.map +1 -0
- package/build/helpers/process-liveness.js +36 -0
- package/build/helpers/process-liveness.js.map +1 -0
- package/build/helpers/process-liveness.test.d.ts +2 -0
- package/build/helpers/process-liveness.test.d.ts.map +1 -0
- package/build/helpers/process-liveness.test.js +40 -0
- package/build/helpers/process-liveness.test.js.map +1 -0
- package/build/helpers/sequence-tree.d.ts +27 -0
- package/build/helpers/sequence-tree.d.ts.map +1 -0
- package/build/helpers/sequence-tree.js +80 -0
- package/build/helpers/sequence-tree.js.map +1 -0
- package/build/helpers/sequence-tree.test.d.ts +2 -0
- package/build/helpers/sequence-tree.test.d.ts.map +1 -0
- package/build/helpers/sequence-tree.test.js +122 -0
- package/build/helpers/sequence-tree.test.js.map +1 -0
- package/build/index.d.ts +3 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +2007 -0
- package/build/index.js.map +1 -0
- package/build/interaction-recorder.d.ts +214 -0
- package/build/interaction-recorder.d.ts.map +1 -0
- package/build/interaction-recorder.js +2007 -0
- package/build/interaction-recorder.js.map +1 -0
- package/build/issue-tracker.d.ts +107 -0
- package/build/issue-tracker.d.ts.map +1 -0
- package/build/issue-tracker.js +582 -0
- package/build/issue-tracker.js.map +1 -0
- package/build/issue-tracker.test.d.ts +2 -0
- package/build/issue-tracker.test.d.ts.map +1 -0
- package/build/issue-tracker.test.js +88 -0
- package/build/issue-tracker.test.js.map +1 -0
- package/build/launch-chrome-port.test.d.ts +14 -0
- package/build/launch-chrome-port.test.d.ts.map +1 -0
- package/build/launch-chrome-port.test.js +97 -0
- package/build/launch-chrome-port.test.js.map +1 -0
- package/build/log-processor/orchestrator.d.ts +32 -0
- package/build/log-processor/orchestrator.d.ts.map +1 -0
- package/build/log-processor/orchestrator.js +27 -0
- package/build/log-processor/orchestrator.js.map +1 -0
- package/build/logpoint-execution-tracker.d.ts +57 -0
- package/build/logpoint-execution-tracker.d.ts.map +1 -0
- package/build/logpoint-execution-tracker.js +112 -0
- package/build/logpoint-execution-tracker.js.map +1 -0
- package/build/mcp-supervisor.d.ts +3 -0
- package/build/mcp-supervisor.d.ts.map +1 -0
- package/build/mcp-supervisor.js +211 -0
- package/build/mcp-supervisor.js.map +1 -0
- package/build/messages.d.ts +165 -0
- package/build/messages.d.ts.map +1 -0
- package/build/messages.js +574 -0
- package/build/messages.js.map +1 -0
- package/build/network-monitor.d.ts +172 -0
- package/build/network-monitor.d.ts.map +1 -0
- package/build/network-monitor.js +350 -0
- package/build/network-monitor.js.map +1 -0
- package/build/overlays.d.ts +49 -0
- package/build/overlays.d.ts.map +1 -0
- package/build/overlays.js +409 -0
- package/build/overlays.js.map +1 -0
- package/build/persistent-profiles.test.d.ts +15 -0
- package/build/persistent-profiles.test.d.ts.map +1 -0
- package/build/persistent-profiles.test.js +470 -0
- package/build/persistent-profiles.test.js.map +1 -0
- package/build/port-reserver.d.ts +32 -0
- package/build/port-reserver.d.ts.map +1 -0
- package/build/port-reserver.js +118 -0
- package/build/port-reserver.js.map +1 -0
- package/build/puppeteer-manager.d.ts +47 -0
- package/build/puppeteer-manager.d.ts.map +1 -0
- package/build/puppeteer-manager.js +116 -0
- package/build/puppeteer-manager.js.map +1 -0
- package/build/recording-coverage.test.d.ts +12 -0
- package/build/recording-coverage.test.d.ts.map +1 -0
- package/build/recording-coverage.test.js +72 -0
- package/build/recording-coverage.test.js.map +1 -0
- package/build/reference-validator.d.ts +47 -0
- package/build/reference-validator.d.ts.map +1 -0
- package/build/reference-validator.js +86 -0
- package/build/reference-validator.js.map +1 -0
- package/build/reference-validator.test.d.ts +5 -0
- package/build/reference-validator.test.d.ts.map +1 -0
- package/build/reference-validator.test.js +243 -0
- package/build/reference-validator.test.js.map +1 -0
- package/build/replay-cursor.d.ts +27 -0
- package/build/replay-cursor.d.ts.map +1 -0
- package/build/replay-cursor.js +240 -0
- package/build/replay-cursor.js.map +1 -0
- package/build/runners/docker-compose-runner.d.ts +69 -0
- package/build/runners/docker-compose-runner.d.ts.map +1 -0
- package/build/runners/docker-compose-runner.js +438 -0
- package/build/runners/docker-compose-runner.js.map +1 -0
- package/build/runners/docker-runner.d.ts +65 -0
- package/build/runners/docker-runner.d.ts.map +1 -0
- package/build/runners/docker-runner.js +414 -0
- package/build/runners/docker-runner.js.map +1 -0
- package/build/runners/index.d.ts +19 -0
- package/build/runners/index.d.ts.map +1 -0
- package/build/runners/index.js +35 -0
- package/build/runners/index.js.map +1 -0
- package/build/runners/native-runner.d.ts +95 -0
- package/build/runners/native-runner.d.ts.map +1 -0
- package/build/runners/native-runner.js +370 -0
- package/build/runners/native-runner.js.map +1 -0
- package/build/runners/types.d.ts +147 -0
- package/build/runners/types.d.ts.map +1 -0
- package/build/runners/types.js +25 -0
- package/build/runners/types.js.map +1 -0
- package/build/self-restart.d.ts +12 -0
- package/build/self-restart.d.ts.map +1 -0
- package/build/self-restart.js +41 -0
- package/build/self-restart.js.map +1 -0
- package/build/self-restart.test.d.ts +2 -0
- package/build/self-restart.test.d.ts.map +1 -0
- package/build/self-restart.test.js +34 -0
- package/build/self-restart.test.js.map +1 -0
- package/build/server-claims.d.ts +161 -0
- package/build/server-claims.d.ts.map +1 -0
- package/build/server-claims.js +382 -0
- package/build/server-claims.js.map +1 -0
- package/build/server-claims.test.d.ts +2 -0
- package/build/server-claims.test.d.ts.map +1 -0
- package/build/server-claims.test.js +197 -0
- package/build/server-claims.test.js.map +1 -0
- package/build/server-manager.d.ts +438 -0
- package/build/server-manager.d.ts.map +1 -0
- package/build/server-manager.js +1674 -0
- package/build/server-manager.js.map +1 -0
- package/build/server-manager.test.d.ts +17 -0
- package/build/server-manager.test.d.ts.map +1 -0
- package/build/server-manager.test.js +122 -0
- package/build/server-manager.test.js.map +1 -0
- package/build/server-ownership.test.d.ts +2 -0
- package/build/server-ownership.test.d.ts.map +1 -0
- package/build/server-ownership.test.js +238 -0
- package/build/server-ownership.test.js.map +1 -0
- package/build/server-watcher.d.ts +21 -0
- package/build/server-watcher.d.ts.map +1 -0
- package/build/server-watcher.js +105 -0
- package/build/server-watcher.js.map +1 -0
- package/build/session-detector.d.ts +47 -0
- package/build/session-detector.d.ts.map +1 -0
- package/build/session-detector.js +229 -0
- package/build/session-detector.js.map +1 -0
- package/build/session-detector.test.d.ts +9 -0
- package/build/session-detector.test.d.ts.map +1 -0
- package/build/session-detector.test.js +45 -0
- package/build/session-detector.test.js.map +1 -0
- package/build/sourcemap-handler.d.ts +114 -0
- package/build/sourcemap-handler.d.ts.map +1 -0
- package/build/sourcemap-handler.js +479 -0
- package/build/sourcemap-handler.js.map +1 -0
- package/build/supervisor/child-manager.d.ts +43 -0
- package/build/supervisor/child-manager.d.ts.map +1 -0
- package/build/supervisor/child-manager.js +148 -0
- package/build/supervisor/child-manager.js.map +1 -0
- package/build/supervisor/child-manager.test.d.ts +2 -0
- package/build/supervisor/child-manager.test.d.ts.map +1 -0
- package/build/supervisor/child-manager.test.js +107 -0
- package/build/supervisor/child-manager.test.js.map +1 -0
- package/build/supervisor/client-watcher.d.ts +48 -0
- package/build/supervisor/client-watcher.d.ts.map +1 -0
- package/build/supervisor/client-watcher.js +186 -0
- package/build/supervisor/client-watcher.js.map +1 -0
- package/build/supervisor/client-watcher.test.d.ts +2 -0
- package/build/supervisor/client-watcher.test.d.ts.map +1 -0
- package/build/supervisor/client-watcher.test.js +121 -0
- package/build/supervisor/client-watcher.test.js.map +1 -0
- package/build/supervisor/idle-config.d.ts +30 -0
- package/build/supervisor/idle-config.d.ts.map +1 -0
- package/build/supervisor/idle-config.js +76 -0
- package/build/supervisor/idle-config.js.map +1 -0
- package/build/supervisor/idle-config.test.d.ts +2 -0
- package/build/supervisor/idle-config.test.d.ts.map +1 -0
- package/build/supervisor/idle-config.test.js +119 -0
- package/build/supervisor/idle-config.test.js.map +1 -0
- package/build/supervisor/ndjson-reader.d.ts +47 -0
- package/build/supervisor/ndjson-reader.d.ts.map +1 -0
- package/build/supervisor/ndjson-reader.js +75 -0
- package/build/supervisor/ndjson-reader.js.map +1 -0
- package/build/supervisor/ndjson-reader.test.d.ts +2 -0
- package/build/supervisor/ndjson-reader.test.d.ts.map +1 -0
- package/build/supervisor/ndjson-reader.test.js +92 -0
- package/build/supervisor/ndjson-reader.test.js.map +1 -0
- package/build/supervisor/pidfile.d.ts +11 -0
- package/build/supervisor/pidfile.d.ts.map +1 -0
- package/build/supervisor/pidfile.js +29 -0
- package/build/supervisor/pidfile.js.map +1 -0
- package/build/supervisor/pidfile.test.d.ts +8 -0
- package/build/supervisor/pidfile.test.d.ts.map +1 -0
- package/build/supervisor/pidfile.test.js +46 -0
- package/build/supervisor/pidfile.test.js.map +1 -0
- package/build/supervisor/restart-coordinator.d.ts +73 -0
- package/build/supervisor/restart-coordinator.d.ts.map +1 -0
- package/build/supervisor/restart-coordinator.js +300 -0
- package/build/supervisor/restart-coordinator.js.map +1 -0
- package/build/supervisor/restart-coordinator.test.d.ts +2 -0
- package/build/supervisor/restart-coordinator.test.d.ts.map +1 -0
- package/build/supervisor/restart-coordinator.test.js +434 -0
- package/build/supervisor/restart-coordinator.test.js.map +1 -0
- package/build/test-support/fake-execute-tool-call.d.ts +11 -0
- package/build/test-support/fake-execute-tool-call.d.ts.map +1 -0
- package/build/test-support/fake-execute-tool-call.js +19 -0
- package/build/test-support/fake-execute-tool-call.js.map +1 -0
- package/build/tool-error.d.ts +14 -0
- package/build/tool-error.d.ts.map +1 -0
- package/build/tool-error.js +18 -0
- package/build/tool-error.js.map +1 -0
- package/build/tool-response.d.ts +293 -0
- package/build/tool-response.d.ts.map +1 -0
- package/build/tool-response.js +365 -0
- package/build/tool-response.js.map +1 -0
- package/build/tools/assert-tools.d.ts +62 -0
- package/build/tools/assert-tools.d.ts.map +1 -0
- package/build/tools/assert-tools.js +330 -0
- package/build/tools/assert-tools.js.map +1 -0
- package/build/tools/breakpoint-await-abort.test.d.ts +2 -0
- package/build/tools/breakpoint-await-abort.test.d.ts.map +1 -0
- package/build/tools/breakpoint-await-abort.test.js +124 -0
- package/build/tools/breakpoint-await-abort.test.js.map +1 -0
- package/build/tools/breakpoint-tools.d.ts +99 -0
- package/build/tools/breakpoint-tools.d.ts.map +1 -0
- package/build/tools/breakpoint-tools.js +1197 -0
- package/build/tools/breakpoint-tools.js.map +1 -0
- package/build/tools/config-tools.d.ts +58 -0
- package/build/tools/config-tools.d.ts.map +1 -0
- package/build/tools/config-tools.js +180 -0
- package/build/tools/config-tools.js.map +1 -0
- package/build/tools/connection-routing.test.d.ts +12 -0
- package/build/tools/connection-routing.test.d.ts.map +1 -0
- package/build/tools/connection-routing.test.js +206 -0
- package/build/tools/connection-routing.test.js.map +1 -0
- package/build/tools/console-tools.d.ts +84 -0
- package/build/tools/console-tools.d.ts.map +1 -0
- package/build/tools/console-tools.js +241 -0
- package/build/tools/console-tools.js.map +1 -0
- package/build/tools/content-tools.d.ts +74 -0
- package/build/tools/content-tools.d.ts.map +1 -0
- package/build/tools/content-tools.js +582 -0
- package/build/tools/content-tools.js.map +1 -0
- package/build/tools/dashboard-tools.d.ts +38 -0
- package/build/tools/dashboard-tools.d.ts.map +1 -0
- package/build/tools/dashboard-tools.js +123 -0
- package/build/tools/dashboard-tools.js.map +1 -0
- package/build/tools/dom-tools.d.ts +41 -0
- package/build/tools/dom-tools.d.ts.map +1 -0
- package/build/tools/dom-tools.js +277 -0
- package/build/tools/dom-tools.js.map +1 -0
- package/build/tools/download-tools.d.ts +55 -0
- package/build/tools/download-tools.d.ts.map +1 -0
- package/build/tools/download-tools.js +280 -0
- package/build/tools/download-tools.js.map +1 -0
- package/build/tools/execution-tools.d.ts +40 -0
- package/build/tools/execution-tools.d.ts.map +1 -0
- package/build/tools/execution-tools.js +121 -0
- package/build/tools/execution-tools.js.map +1 -0
- package/build/tools/input-abort.test.d.ts +2 -0
- package/build/tools/input-abort.test.d.ts.map +1 -0
- package/build/tools/input-abort.test.js +227 -0
- package/build/tools/input-abort.test.js.map +1 -0
- package/build/tools/input-ambiguous-selector.test.d.ts +2 -0
- package/build/tools/input-ambiguous-selector.test.d.ts.map +1 -0
- package/build/tools/input-ambiguous-selector.test.js +34 -0
- package/build/tools/input-ambiguous-selector.test.js.map +1 -0
- package/build/tools/input-tools.d.ts +168 -0
- package/build/tools/input-tools.d.ts.map +1 -0
- package/build/tools/input-tools.js +1397 -0
- package/build/tools/input-tools.js.map +1 -0
- package/build/tools/inspection-tools.d.ts +112 -0
- package/build/tools/inspection-tools.d.ts.map +1 -0
- package/build/tools/inspection-tools.js +637 -0
- package/build/tools/inspection-tools.js.map +1 -0
- package/build/tools/interpolation.d.ts +30 -0
- package/build/tools/interpolation.d.ts.map +1 -0
- package/build/tools/interpolation.js +143 -0
- package/build/tools/interpolation.js.map +1 -0
- package/build/tools/issues-abort-hygiene.test.d.ts +2 -0
- package/build/tools/issues-abort-hygiene.test.d.ts.map +1 -0
- package/build/tools/issues-abort-hygiene.test.js +79 -0
- package/build/tools/issues-abort-hygiene.test.js.map +1 -0
- package/build/tools/issues-tools.d.ts +98 -0
- package/build/tools/issues-tools.d.ts.map +1 -0
- package/build/tools/issues-tools.js +821 -0
- package/build/tools/issues-tools.js.map +1 -0
- package/build/tools/issues-tools.test.d.ts +8 -0
- package/build/tools/issues-tools.test.d.ts.map +1 -0
- package/build/tools/issues-tools.test.js +184 -0
- package/build/tools/issues-tools.test.js.map +1 -0
- package/build/tools/modal-tools.d.ts +73 -0
- package/build/tools/modal-tools.d.ts.map +1 -0
- package/build/tools/modal-tools.js +161 -0
- package/build/tools/modal-tools.js.map +1 -0
- package/build/tools/network-tools.d.ts +72 -0
- package/build/tools/network-tools.d.ts.map +1 -0
- package/build/tools/network-tools.js +432 -0
- package/build/tools/network-tools.js.map +1 -0
- package/build/tools/page-tools.d.ts +78 -0
- package/build/tools/page-tools.d.ts.map +1 -0
- package/build/tools/page-tools.js +255 -0
- package/build/tools/page-tools.js.map +1 -0
- package/build/tools/plugin-tools.d.ts +16 -0
- package/build/tools/plugin-tools.d.ts.map +1 -0
- package/build/tools/plugin-tools.js +17 -0
- package/build/tools/plugin-tools.js.map +1 -0
- package/build/tools/replay-abort.test.d.ts +2 -0
- package/build/tools/replay-abort.test.d.ts.map +1 -0
- package/build/tools/replay-abort.test.js +259 -0
- package/build/tools/replay-abort.test.js.map +1 -0
- package/build/tools/replay-add-conditional.test.d.ts +2 -0
- package/build/tools/replay-add-conditional.test.d.ts.map +1 -0
- package/build/tools/replay-add-conditional.test.js +205 -0
- package/build/tools/replay-add-conditional.test.js.map +1 -0
- package/build/tools/replay-background-run.test.d.ts +2 -0
- package/build/tools/replay-background-run.test.d.ts.map +1 -0
- package/build/tools/replay-background-run.test.js +176 -0
- package/build/tools/replay-background-run.test.js.map +1 -0
- package/build/tools/replay-capture-variables.test.d.ts +2 -0
- package/build/tools/replay-capture-variables.test.d.ts.map +1 -0
- package/build/tools/replay-capture-variables.test.js +331 -0
- package/build/tools/replay-capture-variables.test.js.map +1 -0
- package/build/tools/replay-conditional-idb-and-launch.test.d.ts +11 -0
- package/build/tools/replay-conditional-idb-and-launch.test.d.ts.map +1 -0
- package/build/tools/replay-conditional-idb-and-launch.test.js +429 -0
- package/build/tools/replay-conditional-idb-and-launch.test.js.map +1 -0
- package/build/tools/replay-conditional-timeout.test.d.ts +14 -0
- package/build/tools/replay-conditional-timeout.test.d.ts.map +1 -0
- package/build/tools/replay-conditional-timeout.test.js +126 -0
- package/build/tools/replay-conditional-timeout.test.js.map +1 -0
- package/build/tools/replay-declare.test.d.ts +2 -0
- package/build/tools/replay-declare.test.d.ts.map +1 -0
- package/build/tools/replay-declare.test.js +106 -0
- package/build/tools/replay-declare.test.js.map +1 -0
- package/build/tools/replay-declared-browser-cleanup.test.d.ts +2 -0
- package/build/tools/replay-declared-browser-cleanup.test.d.ts.map +1 -0
- package/build/tools/replay-declared-browser-cleanup.test.js +103 -0
- package/build/tools/replay-declared-browser-cleanup.test.js.map +1 -0
- package/build/tools/replay-declared-profile.test.d.ts +2 -0
- package/build/tools/replay-declared-profile.test.d.ts.map +1 -0
- package/build/tools/replay-declared-profile.test.js +116 -0
- package/build/tools/replay-declared-profile.test.js.map +1 -0
- package/build/tools/replay-executor.d.ts +556 -0
- package/build/tools/replay-executor.d.ts.map +1 -0
- package/build/tools/replay-executor.js +2347 -0
- package/build/tools/replay-executor.js.map +1 -0
- package/build/tools/replay-folder-save.test.d.ts +2 -0
- package/build/tools/replay-folder-save.test.d.ts.map +1 -0
- package/build/tools/replay-folder-save.test.js +63 -0
- package/build/tools/replay-folder-save.test.js.map +1 -0
- package/build/tools/replay-formatters.d.ts +148 -0
- package/build/tools/replay-formatters.d.ts.map +1 -0
- package/build/tools/replay-formatters.js +856 -0
- package/build/tools/replay-formatters.js.map +1 -0
- package/build/tools/replay-kill-chrome-on-finish.test.d.ts +2 -0
- package/build/tools/replay-kill-chrome-on-finish.test.d.ts.map +1 -0
- package/build/tools/replay-kill-chrome-on-finish.test.js +175 -0
- package/build/tools/replay-kill-chrome-on-finish.test.js.map +1 -0
- package/build/tools/replay-multi-connection.test.d.ts +2 -0
- package/build/tools/replay-multi-connection.test.d.ts.map +1 -0
- package/build/tools/replay-multi-connection.test.js +547 -0
- package/build/tools/replay-multi-connection.test.js.map +1 -0
- package/build/tools/replay-output-and-record-options.test.d.ts +2 -0
- package/build/tools/replay-output-and-record-options.test.d.ts.map +1 -0
- package/build/tools/replay-output-and-record-options.test.js +240 -0
- package/build/tools/replay-output-and-record-options.test.js.map +1 -0
- package/build/tools/replay-production-error-shape.test.d.ts +7 -0
- package/build/tools/replay-production-error-shape.test.d.ts.map +1 -0
- package/build/tools/replay-production-error-shape.test.js +93 -0
- package/build/tools/replay-production-error-shape.test.js.map +1 -0
- package/build/tools/replay-rebase.test.d.ts +2 -0
- package/build/tools/replay-rebase.test.d.ts.map +1 -0
- package/build/tools/replay-rebase.test.js +58 -0
- package/build/tools/replay-rebase.test.js.map +1 -0
- package/build/tools/replay-retry-classification.test.d.ts +9 -0
- package/build/tools/replay-retry-classification.test.d.ts.map +1 -0
- package/build/tools/replay-retry-classification.test.js +57 -0
- package/build/tools/replay-retry-classification.test.js.map +1 -0
- package/build/tools/replay-run-registry.d.ts +55 -0
- package/build/tools/replay-run-registry.d.ts.map +1 -0
- package/build/tools/replay-run-registry.js +65 -0
- package/build/tools/replay-run-registry.js.map +1 -0
- package/build/tools/replay-sequence-reload.test.d.ts +2 -0
- package/build/tools/replay-sequence-reload.test.d.ts.map +1 -0
- package/build/tools/replay-sequence-reload.test.js +82 -0
- package/build/tools/replay-sequence-reload.test.js.map +1 -0
- package/build/tools/replay-socket-scope.test.d.ts +2 -0
- package/build/tools/replay-socket-scope.test.d.ts.map +1 -0
- package/build/tools/replay-socket-scope.test.js +75 -0
- package/build/tools/replay-socket-scope.test.js.map +1 -0
- package/build/tools/replay-step-connection.test.d.ts +2 -0
- package/build/tools/replay-step-connection.test.d.ts.map +1 -0
- package/build/tools/replay-step-connection.test.js +292 -0
- package/build/tools/replay-step-connection.test.js.map +1 -0
- package/build/tools/replay-step-timeout.test.d.ts +2 -0
- package/build/tools/replay-step-timeout.test.d.ts.map +1 -0
- package/build/tools/replay-step-timeout.test.js +204 -0
- package/build/tools/replay-step-timeout.test.js.map +1 -0
- package/build/tools/replay-tags.test.d.ts +2 -0
- package/build/tools/replay-tags.test.d.ts.map +1 -0
- package/build/tools/replay-tags.test.js +99 -0
- package/build/tools/replay-tags.test.js.map +1 -0
- package/build/tools/replay-teardown-and-foreach.test.d.ts +13 -0
- package/build/tools/replay-teardown-and-foreach.test.d.ts.map +1 -0
- package/build/tools/replay-teardown-and-foreach.test.js +318 -0
- package/build/tools/replay-teardown-and-foreach.test.js.map +1 -0
- package/build/tools/replay-tool-name-validation.test.d.ts +2 -0
- package/build/tools/replay-tool-name-validation.test.d.ts.map +1 -0
- package/build/tools/replay-tool-name-validation.test.js +280 -0
- package/build/tools/replay-tool-name-validation.test.js.map +1 -0
- package/build/tools/replay-tools.d.ts +288 -0
- package/build/tools/replay-tools.d.ts.map +1 -0
- package/build/tools/replay-tools.js +2994 -0
- package/build/tools/replay-tools.js.map +1 -0
- package/build/tools/request-abort.test.d.ts +2 -0
- package/build/tools/request-abort.test.d.ts.map +1 -0
- package/build/tools/request-abort.test.js +130 -0
- package/build/tools/request-abort.test.js.map +1 -0
- package/build/tools/request-tools.d.ts +56 -0
- package/build/tools/request-tools.d.ts.map +1 -0
- package/build/tools/request-tools.js +174 -0
- package/build/tools/request-tools.js.map +1 -0
- package/build/tools/screenshot-tools.d.ts +135 -0
- package/build/tools/screenshot-tools.d.ts.map +1 -0
- package/build/tools/screenshot-tools.js +636 -0
- package/build/tools/screenshot-tools.js.map +1 -0
- package/build/tools/server-tools.d.ts +88 -0
- package/build/tools/server-tools.d.ts.map +1 -0
- package/build/tools/server-tools.js +485 -0
- package/build/tools/server-tools.js.map +1 -0
- package/build/tools/source-tools.d.ts +46 -0
- package/build/tools/source-tools.d.ts.map +1 -0
- package/build/tools/source-tools.js +47 -0
- package/build/tools/source-tools.js.map +1 -0
- package/build/tools/storage-tools.d.ts +141 -0
- package/build/tools/storage-tools.d.ts.map +1 -0
- package/build/tools/storage-tools.js +894 -0
- package/build/tools/storage-tools.js.map +1 -0
- package/build/tools/storage-tools.test.d.ts +13 -0
- package/build/tools/storage-tools.test.d.ts.map +1 -0
- package/build/tools/storage-tools.test.js +707 -0
- package/build/tools/storage-tools.test.js.map +1 -0
- package/build/tools/tab-tools.d.ts +42 -0
- package/build/tools/tab-tools.d.ts.map +1 -0
- package/build/tools/tab-tools.js +296 -0
- package/build/tools/tab-tools.js.map +1 -0
- package/build/tools/wait-tools.d.ts +85 -0
- package/build/tools/wait-tools.d.ts.map +1 -0
- package/build/tools/wait-tools.js +236 -0
- package/build/tools/wait-tools.js.map +1 -0
- package/build/tools/wait-tools.test.d.ts +9 -0
- package/build/tools/wait-tools.test.d.ts.map +1 -0
- package/build/tools/wait-tools.test.js +193 -0
- package/build/tools/wait-tools.test.js.map +1 -0
- package/build/types.d.ts +133 -0
- package/build/types.d.ts.map +1 -0
- package/build/types.js +5 -0
- package/build/types.js.map +1 -0
- package/build/ui-verifier.d.ts +88 -0
- package/build/ui-verifier.d.ts.map +1 -0
- package/build/ui-verifier.js +540 -0
- package/build/ui-verifier.js.map +1 -0
- package/build/utils/abort.d.ts +68 -0
- package/build/utils/abort.d.ts.map +1 -0
- package/build/utils/abort.js +159 -0
- package/build/utils/abort.js.map +1 -0
- package/build/utils/abort.test.d.ts +2 -0
- package/build/utils/abort.test.d.ts.map +1 -0
- package/build/utils/abort.test.js +174 -0
- package/build/utils/abort.test.js.map +1 -0
- package/build/utils/modal-detection-core.d.ts +150 -0
- package/build/utils/modal-detection-core.d.ts.map +1 -0
- package/build/utils/modal-detection-core.js +332 -0
- package/build/utils/modal-detection-core.js.map +1 -0
- package/build/utils/modal-detection-core.test.d.ts +5 -0
- package/build/utils/modal-detection-core.test.d.ts.map +1 -0
- package/build/utils/modal-detection-core.test.js +492 -0
- package/build/utils/modal-detection-core.test.js.map +1 -0
- package/build/utils/modal-detector.d.ts +29 -0
- package/build/utils/modal-detector.d.ts.map +1 -0
- package/build/utils/modal-detector.js +281 -0
- package/build/utils/modal-detector.js.map +1 -0
- package/build/utils/modal-dismissal.d.ts +32 -0
- package/build/utils/modal-dismissal.d.ts.map +1 -0
- package/build/utils/modal-dismissal.js +190 -0
- package/build/utils/modal-dismissal.js.map +1 -0
- package/build/utils/port-check.d.ts +31 -0
- package/build/utils/port-check.d.ts.map +1 -0
- package/build/utils/port-check.js +87 -0
- package/build/utils/port-check.js.map +1 -0
- package/build/utils/port-check.test.d.ts +2 -0
- package/build/utils/port-check.test.d.ts.map +1 -0
- package/build/utils/port-check.test.js +66 -0
- package/build/utils/port-check.test.js.map +1 -0
- package/build/utils/selector-resolver.d.ts +66 -0
- package/build/utils/selector-resolver.d.ts.map +1 -0
- package/build/utils/selector-resolver.js +200 -0
- package/build/utils/selector-resolver.js.map +1 -0
- package/build/validation-helpers.d.ts +41 -0
- package/build/validation-helpers.d.ts.map +1 -0
- package/build/validation-helpers.js +236 -0
- package/build/validation-helpers.js.map +1 -0
- package/build/window-sizing.d.ts +26 -0
- package/build/window-sizing.d.ts.map +1 -0
- package/build/window-sizing.js +87 -0
- package/build/window-sizing.js.map +1 -0
- package/build/window-sizing.test.d.ts +8 -0
- package/build/window-sizing.test.d.ts.map +1 -0
- package/build/window-sizing.test.js +113 -0
- package/build/window-sizing.test.js.map +1 -0
- package/docs/README.md +74 -0
- package/docs/automation.md +562 -0
- package/docs/debugging.md +229 -0
- package/docs/installation.md +133 -0
- package/docs/instructions.md +227 -0
- package/docs/mcp-instructions.md +15 -0
- package/docs/message-system.md +327 -0
- package/docs/messages.md +3480 -0
- package/docs/parser-plugins.md +132 -0
- package/docs/replay.md +1411 -0
- package/docs/troubleshooting.md +272 -0
- package/docs/working_with_llm_notes.md +5 -0
- package/package.json +87 -0
- package/skills/devharness/SKILL.md +195 -0
- package/skills/devharness/references/sequences.md +613 -0
- package/skills/devharness/references/tool-categories.md +99 -0
|
@@ -0,0 +1,556 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Replay Executor - Core execution engine for command sequences
|
|
3
|
+
*/
|
|
4
|
+
import type { CommandRecorder, RecordedCommand, CommandSequence, ActiveSequenceState } from '../command-recorder.js';
|
|
5
|
+
import type { ExecuteToolCall } from '../types.js';
|
|
6
|
+
import { ClickValidationConfig } from '../config.js';
|
|
7
|
+
export { injectReplayCursor, showClickEffect, showKeyPress, removeReplayCursor } from '../replay-cursor.js';
|
|
8
|
+
interface ReplayCursorCallbacks {
|
|
9
|
+
onClickBefore?: (x: number, y: number, isRightClick: boolean) => Promise<void>;
|
|
10
|
+
onKeyPress?: (key: string) => Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export declare function setReplayCursorCallbacks(callbacks: ReplayCursorCallbacks): void;
|
|
13
|
+
export interface ExecutionContext {
|
|
14
|
+
executeToolCall: ExecuteToolCall;
|
|
15
|
+
commandRecorder: CommandRecorder;
|
|
16
|
+
connectionReason: string;
|
|
17
|
+
logPrefix?: string;
|
|
18
|
+
/** Current nesting depth for conditional commands (used for recursion protection) */
|
|
19
|
+
conditionalDepth?: number;
|
|
20
|
+
/** Call stack of sequence names for circular reference detection */
|
|
21
|
+
conditionalCallStack?: string[];
|
|
22
|
+
/** Per-run variable store for {{var:name.path}} interpolation. Populated by
|
|
23
|
+
* { saveAs } steps (see CAPTURE_SOURCES), consumed by later steps' param
|
|
24
|
+
* interpolation. Shared BY REFERENCE with per-step ctx clones and nested
|
|
25
|
+
* sequences, so a capture anywhere is visible everywhere in the run. */
|
|
26
|
+
variableStore?: Record<string, any>;
|
|
27
|
+
/** {{timestamp}} value for this run, computed once and cached (not per-step). */
|
|
28
|
+
runTimestamp?: number;
|
|
29
|
+
/**
|
|
30
|
+
* Maps a per-step `connectionReason` as RECORDED onto a reference that exists
|
|
31
|
+
* in THIS session (`{ 'duo-member-two': 'my-second-browser' }`). Connection
|
|
32
|
+
* references are per-session, so a multi-connection sequence recorded elsewhere
|
|
33
|
+
* needs its references rebound before it can run here. Both sides are expected
|
|
34
|
+
* pre-sanitized (see sanitizeConnectionMap). Inherited by nested sequences.
|
|
35
|
+
*/
|
|
36
|
+
connectionMap?: Record<string, string>;
|
|
37
|
+
/**
|
|
38
|
+
* References this run CAUSED to be launched, filled in as `launchChrome`
|
|
39
|
+
* steps succeed with `reused: false`. Shared by reference with per-step ctx
|
|
40
|
+
* clones and nested sequences, so ownership survives every early return the
|
|
41
|
+
* executor has - a paused, failed or aborted run knows what it created just
|
|
42
|
+
* as well as a completed one. `killChromeOnFinish` kills exactly this set
|
|
43
|
+
* plus the run's own connection, and nothing else (issue #103).
|
|
44
|
+
*/
|
|
45
|
+
launchedConnections?: Set<string>;
|
|
46
|
+
}
|
|
47
|
+
export interface StepResult {
|
|
48
|
+
step: number;
|
|
49
|
+
tool: string;
|
|
50
|
+
success: boolean;
|
|
51
|
+
error?: string;
|
|
52
|
+
substeps?: StepResult[];
|
|
53
|
+
sequenceName?: string;
|
|
54
|
+
conditionMet?: boolean;
|
|
55
|
+
/** forEach: how many items the source yielded, before `where` filtering. */
|
|
56
|
+
itemsFound?: number;
|
|
57
|
+
/** forEach: how many items actually ran `do` (post-filter, post-maxItems). */
|
|
58
|
+
iterations?: number;
|
|
59
|
+
}
|
|
60
|
+
export interface BreakpointHitInfo {
|
|
61
|
+
url: string;
|
|
62
|
+
lineNumber: number;
|
|
63
|
+
columnNumber?: number;
|
|
64
|
+
functionName?: string;
|
|
65
|
+
}
|
|
66
|
+
export interface ClickValidationFailure {
|
|
67
|
+
step: number;
|
|
68
|
+
selector: string;
|
|
69
|
+
errors: string[];
|
|
70
|
+
warnings: string[];
|
|
71
|
+
info: string[];
|
|
72
|
+
}
|
|
73
|
+
export interface ExecutionResult {
|
|
74
|
+
results: StepResult[];
|
|
75
|
+
totalCommands: number;
|
|
76
|
+
durationMs: number;
|
|
77
|
+
pausedAtStep?: number;
|
|
78
|
+
activeSequenceState?: ActiveSequenceState;
|
|
79
|
+
breakpointHit?: BreakpointHitInfo;
|
|
80
|
+
/** Click validation failure - sequence paused for inspection/retry */
|
|
81
|
+
clickValidationFailure?: ClickValidationFailure;
|
|
82
|
+
/**
|
|
83
|
+
* Results of the sequence's `teardown` steps, when it has any and the run
|
|
84
|
+
* reached a terminal state. Deliberately NOT merged into `results`: teardown
|
|
85
|
+
* outcomes must never change the run's verdict, or a broken cleanup would
|
|
86
|
+
* mask the failure it was cleaning up after.
|
|
87
|
+
*/
|
|
88
|
+
teardownResults?: StepResult[];
|
|
89
|
+
/** True when teardown ran but at least one of its steps failed. */
|
|
90
|
+
teardownFailed?: boolean;
|
|
91
|
+
}
|
|
92
|
+
export interface ConnectionAnalysis {
|
|
93
|
+
launchChromeIndex: number;
|
|
94
|
+
firstConnectionToolIndex: number;
|
|
95
|
+
hasLaunchBeforeConnection: boolean;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Resolve what a step's `saveAs` should write to the variable store.
|
|
99
|
+
* A `saveAs` that cannot be honoured is an error, not a silent no-op: the
|
|
100
|
+
* later {{var:...}} step would otherwise fail somewhere far away with a
|
|
101
|
+
* confusing "no variable named" message.
|
|
102
|
+
*/
|
|
103
|
+
export declare function captureVariable(tool: string, params: Record<string, any>, result: any): {
|
|
104
|
+
ok: true;
|
|
105
|
+
value: unknown;
|
|
106
|
+
} | {
|
|
107
|
+
ok: false;
|
|
108
|
+
error: string;
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Tools that can only run against a *browser*. Used to decide whether a sequence
|
|
112
|
+
* needs Chrome auto-launched (analyzeSequenceConnections / sequenceNeedsConnection
|
|
113
|
+
* and the auto-launch paths in replay-tools).
|
|
114
|
+
*
|
|
115
|
+
* Deliberately excludes tools that are equally valid against a Node target
|
|
116
|
+
* (`inspect`, `execution`, `breakpoint`, `getSourceCode`, `request`) - listing
|
|
117
|
+
* those here would make a Node-only sequence spuriously launch Chrome.
|
|
118
|
+
*/
|
|
119
|
+
export declare const TOOLS_NEEDING_CONNECTION: string[];
|
|
120
|
+
/**
|
|
121
|
+
* Tools whose params accept a `connectionReason` and should therefore have the
|
|
122
|
+
* run-level connection injected when the step doesn't name one itself. Superset of
|
|
123
|
+
* TOOLS_NEEDING_CONNECTION: it adds the target-agnostic (Chrome *or* Node) debugging
|
|
124
|
+
* tools, which need to be pinned to the run's target but must NOT drag a browser
|
|
125
|
+
* launch in with them.
|
|
126
|
+
*
|
|
127
|
+
* `request` is handled separately - only `destination: 'browser'` takes a connection.
|
|
128
|
+
*/
|
|
129
|
+
export declare const TOOLS_ACCEPTING_CONNECTION: string[];
|
|
130
|
+
/**
|
|
131
|
+
* Whether a single step requires a *browser* connection (drives Chrome
|
|
132
|
+
* auto-launch). Param-aware variant of `TOOLS_NEEDING_CONNECTION.includes(tool)`:
|
|
133
|
+
* `wait` is browser-bound only in its selector/selectorGone forms.
|
|
134
|
+
* - `wait({ ms })` is a plain sleep and must not drag a Chrome launch in.
|
|
135
|
+
* - `wait({ expression })` is target-agnostic (valid against Node too), so it
|
|
136
|
+
* behaves like `inspect`: the run connection is injected, but it never
|
|
137
|
+
* forces a browser launch on its own.
|
|
138
|
+
*/
|
|
139
|
+
export declare function commandNeedsBrowserConnection(cmd: {
|
|
140
|
+
tool: string;
|
|
141
|
+
params?: Record<string, any>;
|
|
142
|
+
}): boolean;
|
|
143
|
+
/**
|
|
144
|
+
* Whether a bare step will have the run-level connection injected into it -
|
|
145
|
+
* i.e. whether leaving it bare is AMBIGUOUS about which browser it belongs to.
|
|
146
|
+
*
|
|
147
|
+
* Deliberately wider than `commandNeedsBrowserConnection`, which answers a
|
|
148
|
+
* different question (does this drag a Chrome launch in?). `inspect`,
|
|
149
|
+
* `execution`, `storage` and friends take an optional connectionReason, so a
|
|
150
|
+
* recording made without one captures nothing about which browser it ran
|
|
151
|
+
* against - and on replay it silently lands wherever the run-level connection
|
|
152
|
+
* points. Measuring ambiguity with the narrower predicate missed exactly those
|
|
153
|
+
* tools, which are the ones people actually leave bare.
|
|
154
|
+
*/
|
|
155
|
+
export declare function commandTakesInjectedConnection(cmd: {
|
|
156
|
+
tool: string;
|
|
157
|
+
params?: Record<string, any>;
|
|
158
|
+
}): boolean;
|
|
159
|
+
/**
|
|
160
|
+
* Result of condition evaluation
|
|
161
|
+
* - met: true - condition matched
|
|
162
|
+
* - met: false, isError: undefined - condition legitimately not met
|
|
163
|
+
* - met: false, isError: true - evaluation FAILED (should stop sequence)
|
|
164
|
+
*/
|
|
165
|
+
export type ConditionResult = {
|
|
166
|
+
met: true;
|
|
167
|
+
} | {
|
|
168
|
+
met: false;
|
|
169
|
+
reason?: string;
|
|
170
|
+
} | {
|
|
171
|
+
met: false;
|
|
172
|
+
reason: string;
|
|
173
|
+
isError: true;
|
|
174
|
+
};
|
|
175
|
+
/** The condition types `evaluateCondition` knows how to answer. */
|
|
176
|
+
export declare const CONDITION_TYPES: readonly ["selector", "url", "cookie", "localStorage", "indexedDB"];
|
|
177
|
+
/**
|
|
178
|
+
* Check a condition at authoring time: shape, type, and the `url`/`indexedDB`
|
|
179
|
+
* sub-forms. A value holding a `{{var:...}}` token is skipped - it is
|
|
180
|
+
* substituted at run time, so its final shape is unknowable here.
|
|
181
|
+
*/
|
|
182
|
+
export declare function validateConditionSyntax(condition: string, maxRegexLength?: number): {
|
|
183
|
+
ok: true;
|
|
184
|
+
} | {
|
|
185
|
+
ok: false;
|
|
186
|
+
reason: string;
|
|
187
|
+
};
|
|
188
|
+
/**
|
|
189
|
+
* Evaluate a handlebar-style condition
|
|
190
|
+
* Supported patterns:
|
|
191
|
+
* {{selector:CSS_SELECTOR}} - true if element exists
|
|
192
|
+
* {{!selector:CSS_SELECTOR}} - true if element does NOT exist
|
|
193
|
+
* {{url:contains:STRING}} - true if URL contains string
|
|
194
|
+
* {{url:matches:REGEX}} - true if URL matches regex
|
|
195
|
+
* {{cookie:NAME}} - true if cookie exists
|
|
196
|
+
* {{!cookie:NAME}} - true if cookie does NOT exist
|
|
197
|
+
* {{localStorage:KEY}} - true if localStorage key exists
|
|
198
|
+
* {{!localStorage:KEY}} - true if localStorage key does NOT exist
|
|
199
|
+
* {{indexedDB:DB/STORE/KEY}} - true if that IndexedDB record exists
|
|
200
|
+
* {{indexedDB:DB/STORE}} - true if that object store holds any record
|
|
201
|
+
* {{!indexedDB:...}} - negation of either form
|
|
202
|
+
*/
|
|
203
|
+
export declare function evaluateCondition(condition: string, ctx: ExecutionContext): Promise<ConditionResult>;
|
|
204
|
+
export interface ConditionalFlowResult {
|
|
205
|
+
success: boolean;
|
|
206
|
+
executed: boolean;
|
|
207
|
+
sequenceName: string;
|
|
208
|
+
substeps?: StepResult[];
|
|
209
|
+
error?: string;
|
|
210
|
+
durationMs?: number;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Execute a conditional flow - runs a sequence if condition is met
|
|
214
|
+
*/
|
|
215
|
+
export declare function executeConditionalFlow(condition: string, sequenceName: string, ctx: ExecutionContext, recorder: CommandRecorder,
|
|
216
|
+
/**
|
|
217
|
+
* The parent run's timeout budget, so substeps are bounded the way the
|
|
218
|
+
* caller asked rather than silently falling back to the defaults.
|
|
219
|
+
*
|
|
220
|
+
* `totalTimeout` must be the parent's REMAINING budget, not a fresh copy of
|
|
221
|
+
* its original value - otherwise wrapping steps in a conditional becomes a
|
|
222
|
+
* way to extend the total, and a caller who set a tight bound to fail fast
|
|
223
|
+
* would not get it.
|
|
224
|
+
*/
|
|
225
|
+
budget?: {
|
|
226
|
+
stepTimeout?: number;
|
|
227
|
+
totalTimeout?: number;
|
|
228
|
+
},
|
|
229
|
+
/**
|
|
230
|
+
* The parent RUN's signal. Without it a nested sequence is deaf to
|
|
231
|
+
* `replay cancel` even at its own step boundaries - the substep loop would
|
|
232
|
+
* run to completion after the user cancelled.
|
|
233
|
+
*/
|
|
234
|
+
abortSignal?: AbortSignal): Promise<ConditionalFlowResult>;
|
|
235
|
+
export interface ForEachFlowResult {
|
|
236
|
+
success: boolean;
|
|
237
|
+
sequenceName: string;
|
|
238
|
+
/** Items the source yielded, before `where` filtering. */
|
|
239
|
+
itemsFound: number;
|
|
240
|
+
/** Items that actually ran `do`. */
|
|
241
|
+
iterations: number;
|
|
242
|
+
substeps?: StepResult[];
|
|
243
|
+
error?: string;
|
|
244
|
+
durationMs?: number;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Resolve a `forEach` source to the array it enumerates.
|
|
248
|
+
*
|
|
249
|
+
* Two forms, deliberately no more. `{{var:name}}` reads an array a previous
|
|
250
|
+
* `saveAs` step captured - which is how anything non-DOM is enumerated, since
|
|
251
|
+
* `inspect({ action: 'evaluateExpression' })` can already return exactly the
|
|
252
|
+
* list the caller wants and is a recordable step. `{{selectorAll:CSS}}` covers
|
|
253
|
+
* the DOM case without making the caller hand-write an evaluate for it.
|
|
254
|
+
*
|
|
255
|
+
* Note the asymmetry with `conditional`'s conditions: those ask whether one
|
|
256
|
+
* named thing exists, so they can't express "give me every X". That gap is the
|
|
257
|
+
* whole reason this step exists.
|
|
258
|
+
*/
|
|
259
|
+
export declare function resolveForEachItems(source: unknown, ctx: ExecutionContext): Promise<{
|
|
260
|
+
ok: true;
|
|
261
|
+
items: unknown[];
|
|
262
|
+
} | {
|
|
263
|
+
ok: false;
|
|
264
|
+
error: string;
|
|
265
|
+
}>;
|
|
266
|
+
/**
|
|
267
|
+
* Run a sequence once per item of an enumerated source.
|
|
268
|
+
*
|
|
269
|
+
* Each iteration binds the item to `as` in the run's variable store (and its
|
|
270
|
+
* position to `<as>Index`), so the body addresses it with {{var:<as>.field}}
|
|
271
|
+
* exactly like any captured variable. The binding is REPLACED per iteration
|
|
272
|
+
* rather than scoped, because the variable store is shared by reference across
|
|
273
|
+
* nested runs - which also means a body's own `saveAs` captures survive into
|
|
274
|
+
* the next iteration, and a caller relying on that should say so.
|
|
275
|
+
*/
|
|
276
|
+
export declare function executeForEachFlow(params: {
|
|
277
|
+
in: unknown;
|
|
278
|
+
as: string;
|
|
279
|
+
do: string;
|
|
280
|
+
where?: string;
|
|
281
|
+
maxItems?: number;
|
|
282
|
+
}, ctx: ExecutionContext, recorder: CommandRecorder,
|
|
283
|
+
/** The parent's REMAINING budget - a loop must not extend the total. */
|
|
284
|
+
budget?: {
|
|
285
|
+
stepTimeout?: number;
|
|
286
|
+
totalTimeout?: number;
|
|
287
|
+
}, abortSignal?: AbortSignal): Promise<ForEachFlowResult>;
|
|
288
|
+
export interface LoadSequenceArgs {
|
|
289
|
+
name?: string;
|
|
290
|
+
sequenceId?: string;
|
|
291
|
+
}
|
|
292
|
+
export type LoadSequenceResult = {
|
|
293
|
+
success: true;
|
|
294
|
+
sequence: CommandSequence;
|
|
295
|
+
} | {
|
|
296
|
+
success: false;
|
|
297
|
+
error: string;
|
|
298
|
+
errorCode: string;
|
|
299
|
+
/** Template variables for error response (e.g., action, missing for MISSING_PARAMETER) */
|
|
300
|
+
templateVars?: Record<string, string>;
|
|
301
|
+
};
|
|
302
|
+
/**
|
|
303
|
+
* Load a sequence from memory (by sequenceId) or disk (by name)
|
|
304
|
+
*/
|
|
305
|
+
export declare function loadSequence(args: LoadSequenceArgs, recorder: CommandRecorder): Promise<LoadSequenceResult>;
|
|
306
|
+
/**
|
|
307
|
+
* Return a deep copy of the sequence retargeted at another deployment:
|
|
308
|
+
* every absolute http(s) URL — the startUrl and any string param in any
|
|
309
|
+
* command (navigate goto, request url, ...) — keeps its path/query/hash but
|
|
310
|
+
* takes `baseUrl`'s origin. Relative URLs are untouched (they already follow
|
|
311
|
+
* the page origin). An explicit `startUrl` replaces the sequence's startUrl
|
|
312
|
+
* wholesale, after rebasing, for runs whose entry point differs per target
|
|
313
|
+
* (e.g. a freshly minted share link). The stored sequence is never mutated —
|
|
314
|
+
* loadSequence can return the recorder's in-memory object.
|
|
315
|
+
*/
|
|
316
|
+
export declare function rebaseSequence(sequence: CommandSequence, overrides: {
|
|
317
|
+
baseUrl?: string;
|
|
318
|
+
startUrl?: string;
|
|
319
|
+
}): CommandSequence;
|
|
320
|
+
/**
|
|
321
|
+
* Analyze sequence commands to find launchChrome and determine connection requirements
|
|
322
|
+
*/
|
|
323
|
+
export declare function analyzeSequenceConnections(commands: RecordedCommand[]): ConnectionAnalysis;
|
|
324
|
+
/**
|
|
325
|
+
* Extract connectionReason from sequence's launchChrome command if present
|
|
326
|
+
*/
|
|
327
|
+
export declare function extractConnectionFromSequence(commands: RecordedCommand[], analysis: ConnectionAnalysis): string | undefined;
|
|
328
|
+
export interface RecordedConnectionAnalysis {
|
|
329
|
+
/** Distinct per-step connection references, in first-seen order. */
|
|
330
|
+
references: string[];
|
|
331
|
+
/** The one reference every connection-bearing step shares, if there is one. */
|
|
332
|
+
uniform?: string;
|
|
333
|
+
/**
|
|
334
|
+
* True when some steps name a connection and other BROWSER steps don't - the
|
|
335
|
+
* recording was driven partly through the active connection, so we cannot tell
|
|
336
|
+
* which browser the bare steps belonged to. Such a sequence is not hoisted
|
|
337
|
+
* (that could pin every step to the one named reference) and `create` says so.
|
|
338
|
+
*/
|
|
339
|
+
mixed: boolean;
|
|
340
|
+
/** More than one distinct per-step reference: a genuinely multi-connection sequence. */
|
|
341
|
+
multiConnection: boolean;
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* What connections a recorded/stored sequence's steps name.
|
|
345
|
+
*/
|
|
346
|
+
export declare function analyzeRecordedStepConnections(commands: RecordedCommand[]): RecordedConnectionAnalysis;
|
|
347
|
+
/**
|
|
348
|
+
* Hoist a uniform per-step connection back off the steps so the sequence stays
|
|
349
|
+
* portable: `replay({ action: 'run', connectionReason: 'other' })` can then
|
|
350
|
+
* retarget the whole thing. Steps keep their own connection only where the
|
|
351
|
+
* sequence genuinely spans connections (or where it is ambiguous - see
|
|
352
|
+
* `mixed`), which is the case a run-level connection cannot express.
|
|
353
|
+
*
|
|
354
|
+
* Returns a new command array; the input is never mutated.
|
|
355
|
+
*/
|
|
356
|
+
export declare function normalizeStepConnections(commands: RecordedCommand[]): {
|
|
357
|
+
commands: RecordedCommand[];
|
|
358
|
+
/** The reference that was hoisted off every step, if any. */
|
|
359
|
+
hoisted?: string;
|
|
360
|
+
analysis: RecordedConnectionAnalysis;
|
|
361
|
+
};
|
|
362
|
+
/**
|
|
363
|
+
* Normalize a recorded-reference -> session-reference map (both sides sanitized,
|
|
364
|
+
* so `{ 'Duo Member Two': 'My Second Browser' }` works the same as the
|
|
365
|
+
* hyphenated form). Returns undefined for an empty/absent map.
|
|
366
|
+
*/
|
|
367
|
+
export declare function sanitizeConnectionMap(map?: Record<string, string>): Record<string, string> | undefined;
|
|
368
|
+
/**
|
|
369
|
+
* Check if sequence needs a connection
|
|
370
|
+
*/
|
|
371
|
+
export declare function sequenceNeedsConnection(commands: RecordedCommand[]): boolean;
|
|
372
|
+
/**
|
|
373
|
+
* The connection references live in this session, as `listConnections` reports
|
|
374
|
+
* them. Returns null when that cannot be determined (probe failed, or a stubbed
|
|
375
|
+
* executeToolCall returned nothing parseable) - callers must treat null as
|
|
376
|
+
* "unknown" and NOT as "empty", or every per-step connection would be rejected.
|
|
377
|
+
*/
|
|
378
|
+
export declare function probeLiveConnectionReferences(executeToolCall: ExecuteToolCall): Promise<Set<string> | null>;
|
|
379
|
+
/**
|
|
380
|
+
* The `connections` array out of a `listConnections` response, or null when the
|
|
381
|
+
* response carries no parseable JSON block (a stub, or a future format) - null
|
|
382
|
+
* means "unknown", never "empty".
|
|
383
|
+
*/
|
|
384
|
+
export declare function parseConnectionList(text: string): Array<{
|
|
385
|
+
reference: string;
|
|
386
|
+
port?: number;
|
|
387
|
+
connected?: boolean;
|
|
388
|
+
}> | null;
|
|
389
|
+
/**
|
|
390
|
+
* Resolve a step's RECORDED connectionReason onto this session, and refuse to
|
|
391
|
+
* proceed if it doesn't exist here (bug-018).
|
|
392
|
+
*
|
|
393
|
+
* Falling back to the run-level connection with a warning is exactly the failure
|
|
394
|
+
* this exists to prevent: a sequence whose purpose is proving something crosses
|
|
395
|
+
* a browser boundary would run entirely in one browser and still pass.
|
|
396
|
+
*/
|
|
397
|
+
export declare function formatMissingStepConnection(opts: {
|
|
398
|
+
step: number;
|
|
399
|
+
tool: string;
|
|
400
|
+
recorded: string;
|
|
401
|
+
resolved: string;
|
|
402
|
+
mapped: boolean;
|
|
403
|
+
runConnection?: string;
|
|
404
|
+
live: string[];
|
|
405
|
+
}): string;
|
|
406
|
+
/**
|
|
407
|
+
* Check if debugger is paused and return breakpoint info if so
|
|
408
|
+
*/
|
|
409
|
+
export declare function checkIfPaused(ctx: ExecutionContext): Promise<BreakpointHitInfo | null>;
|
|
410
|
+
/**
|
|
411
|
+
* Check if debugger is paused and auto-resume if so
|
|
412
|
+
*/
|
|
413
|
+
export declare function resumeIfPaused(ctx: ExecutionContext): Promise<void>;
|
|
414
|
+
export type AutoLaunchResult = {
|
|
415
|
+
success: true;
|
|
416
|
+
} | {
|
|
417
|
+
success: false;
|
|
418
|
+
error: string;
|
|
419
|
+
errorType: 'INVALID_REFERENCE' | 'LAUNCH_FAILED';
|
|
420
|
+
};
|
|
421
|
+
/**
|
|
422
|
+
* Validate reference and auto-launch Chrome if needed.
|
|
423
|
+
* This is the shared helper for all auto-launch scenarios.
|
|
424
|
+
*/
|
|
425
|
+
export declare function autoLaunchChrome(executeToolCall: ExecuteToolCall, connectionReason: string, logPrefix?: string, forceNewInstance?: boolean): Promise<AutoLaunchResult>;
|
|
426
|
+
/**
|
|
427
|
+
* Ensure a connection is available, auto-launching Chrome if needed
|
|
428
|
+
*/
|
|
429
|
+
export declare function ensureConnection(ctx: ExecutionContext, needsConnection: boolean, hasLaunchBeforeConnection: boolean): Promise<{
|
|
430
|
+
success: true;
|
|
431
|
+
didAutoLaunch: boolean;
|
|
432
|
+
} | {
|
|
433
|
+
success: false;
|
|
434
|
+
error: string;
|
|
435
|
+
}>;
|
|
436
|
+
/**
|
|
437
|
+
* Check if a URL's port is open (for localhost URLs only)
|
|
438
|
+
* Returns success if port is open or URL is not localhost
|
|
439
|
+
*/
|
|
440
|
+
export declare function checkPortBeforeNavigation(url: string, logPrefix?: string): Promise<{
|
|
441
|
+
success: true;
|
|
442
|
+
} | {
|
|
443
|
+
success: false;
|
|
444
|
+
error: string;
|
|
445
|
+
}>;
|
|
446
|
+
/**
|
|
447
|
+
* Navigate to startUrl if sequence has one and doesn't start with navigate
|
|
448
|
+
*/
|
|
449
|
+
export declare function navigateToStartUrl(ctx: ExecutionContext, sequence: CommandSequence, analysis: ConnectionAnalysis): Promise<{
|
|
450
|
+
success: true;
|
|
451
|
+
} | {
|
|
452
|
+
success: false;
|
|
453
|
+
error: string;
|
|
454
|
+
}>;
|
|
455
|
+
/**
|
|
456
|
+
* Execute a single command with retry logic for element not found errors
|
|
457
|
+
*/
|
|
458
|
+
export declare function executeCommandWithRetry(executeToolCall: ExecuteToolCall, tool: string, params: Record<string, any>, logPrefix?: string,
|
|
459
|
+
/**
|
|
460
|
+
* The RUN's signal, forwarded to the tool handler so handlers that honour
|
|
461
|
+
* it (currently `wait`) are interrupted mid-step by `replay cancel`. Note
|
|
462
|
+
* this helper still RESOLVES `{ success: false }` when a handler throws an
|
|
463
|
+
* abort - executeSteps consults the signal on the failure path to classify
|
|
464
|
+
* it as "Replay aborted by user" rather than a genuine step failure.
|
|
465
|
+
*/
|
|
466
|
+
abortSignal?: AbortSignal): Promise<{
|
|
467
|
+
success: boolean;
|
|
468
|
+
result?: any;
|
|
469
|
+
error?: string;
|
|
470
|
+
}>;
|
|
471
|
+
/**
|
|
472
|
+
* Validate that navigation succeeded (page loaded correctly)
|
|
473
|
+
*/
|
|
474
|
+
export declare function validateNavigation(ctx: ExecutionContext, expectedUrl?: string): Promise<{
|
|
475
|
+
success: boolean;
|
|
476
|
+
error?: string;
|
|
477
|
+
}>;
|
|
478
|
+
/**
|
|
479
|
+
* Wait for an element to appear
|
|
480
|
+
*/
|
|
481
|
+
export declare function waitForElement(ctx: ExecutionContext, selector: string): Promise<void>;
|
|
482
|
+
/**
|
|
483
|
+
* Validate typed text was entered correctly
|
|
484
|
+
*/
|
|
485
|
+
export declare function validateTypedText(ctx: ExecutionContext, selector: string, expectedText: string, append?: boolean): Promise<void>;
|
|
486
|
+
export interface PreClickState {
|
|
487
|
+
consoleErrorCount: number;
|
|
488
|
+
consoleWarnCount: number;
|
|
489
|
+
consoleTotalCount: number;
|
|
490
|
+
networkRequestCount: number;
|
|
491
|
+
url: string;
|
|
492
|
+
}
|
|
493
|
+
export interface ClickValidationResult {
|
|
494
|
+
valid: boolean;
|
|
495
|
+
errors: string[];
|
|
496
|
+
warnings: string[];
|
|
497
|
+
info: string[];
|
|
498
|
+
}
|
|
499
|
+
/**
|
|
500
|
+
* Capture pre-click state for delta comparison
|
|
501
|
+
*/
|
|
502
|
+
export declare function capturePreClickState(ctx: ExecutionContext): Promise<PreClickState>;
|
|
503
|
+
/**
|
|
504
|
+
* Validate click action results
|
|
505
|
+
*/
|
|
506
|
+
export declare function validateClickAction(ctx: ExecutionContext, preState: PreClickState, clickResult: any, config: ClickValidationConfig): Promise<ClickValidationResult>;
|
|
507
|
+
export interface ExecuteStepsOptions {
|
|
508
|
+
/**
|
|
509
|
+
* Teardown's own total budget, independent of `totalTimeout`.
|
|
510
|
+
*
|
|
511
|
+
* It has to be independent: the commonest reason a run needs cleaning up
|
|
512
|
+
* after is that it ran out of time, and a teardown drawing on the exhausted
|
|
513
|
+
* parent budget would be skipped in exactly that case.
|
|
514
|
+
*/
|
|
515
|
+
teardownTimeout?: number;
|
|
516
|
+
sequence: CommandSequence;
|
|
517
|
+
startStep: number;
|
|
518
|
+
endStep?: number;
|
|
519
|
+
ctx: ExecutionContext;
|
|
520
|
+
variables?: Record<string, string>;
|
|
521
|
+
record?: boolean;
|
|
522
|
+
stepTimeout?: number;
|
|
523
|
+
totalTimeout?: number;
|
|
524
|
+
overrideConnectionReason?: string;
|
|
525
|
+
abortSignal?: AbortSignal;
|
|
526
|
+
/**
|
|
527
|
+
* Called as each TOP-LEVEL step starts executing, so a background run can
|
|
528
|
+
* report live progress. Deliberately not propagated into nested sequences
|
|
529
|
+
* (conditional flows): substeps report through their parent step only.
|
|
530
|
+
*/
|
|
531
|
+
onProgress?: (ev: {
|
|
532
|
+
step: number;
|
|
533
|
+
totalSteps: number;
|
|
534
|
+
tool: string;
|
|
535
|
+
}) => void;
|
|
536
|
+
}
|
|
537
|
+
/**
|
|
538
|
+
* Execute a range of steps from a sequence
|
|
539
|
+
*/
|
|
540
|
+
export declare function executeSteps(options: ExecuteStepsOptions): Promise<ExecutionResult>;
|
|
541
|
+
/**
|
|
542
|
+
* Execute a sequence with pause support (stepTo)
|
|
543
|
+
*/
|
|
544
|
+
export declare function executeSequenceWithPause(options: ExecuteStepsOptions & {
|
|
545
|
+
stepTo?: number;
|
|
546
|
+
}): Promise<ExecutionResult>;
|
|
547
|
+
export interface DebugState {
|
|
548
|
+
isPaused: boolean;
|
|
549
|
+
pauseLocation?: string;
|
|
550
|
+
breakpointCount: number;
|
|
551
|
+
}
|
|
552
|
+
/**
|
|
553
|
+
* Get current debug state (breakpoints, pause status)
|
|
554
|
+
*/
|
|
555
|
+
export declare function getDebugState(ctx: ExecutionContext): Promise<DebugState | null>;
|
|
556
|
+
//# sourceMappingURL=replay-executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replay-executor.d.ts","sourceRoot":"","sources":["../../src/tools/replay-executor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACrH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAKnD,OAAO,EAAiB,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAMpE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAM5G,UAAU,qBAAqB;IAC7B,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAID,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,qBAAqB,GAAG,IAAI,CAE/E;AAMD,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,eAAe,CAAC;IACjC,eAAe,EAAE,eAAe,CAAC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC;;;6EAGyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,sEAAsE;IACtE,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD;;;;;OAKG;IACH,eAAe,CAAC,EAAE,UAAU,EAAE,CAAC;IAC/B,mEAAmE;IACnE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wBAAwB,EAAE,MAAM,CAAC;IACjC,yBAAyB,EAAE,OAAO,CAAC;CACpC;AA4CD;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,MAAM,EAAE,GAAG,GACV;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAkB7D;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,UAEpC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,UAItC,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GAAG,OAAO,CAM1G;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GAAG,OAAO,CAI3G;AAMD;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,GAAG,EAAE,IAAI,CAAA;CAAE,GACb;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,CAAC;AAElD,mEAAmE;AACnE,eAAO,MAAM,eAAe,qEAAsE,CAAC;AAKnG;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,cAAc,SAAiD,GAC9D;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAuD9C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,eAAe,CAAC,CA0O1B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAiED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,eAAe;AACzB;;;;;;;;GAQG;AACH,MAAM,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE;AACxD;;;;GAIG;AACH,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,qBAAqB,CAAC,CAuGhC;AAMD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,OAAO,EACf,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,EAAE,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAqExE;AAiCD;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EAClF,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,eAAe;AACzB,wEAAwE;AACxE,MAAM,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,EACxD,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAoG5B;AAMD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,IAAI,CAAC;IACd,QAAQ,EAAE,eAAe,CAAC;CAC3B,GAAG;IACF,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,0FAA0F;IAC1F,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC,CAAC;AAEF;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,gBAAgB,EACtB,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,kBAAkB,CAAC,CAoD7B;AAMD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACjD,eAAe,CA2BjB;AAMD;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,kBAAkB,CAiB1F;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,eAAe,EAAE,EAC3B,QAAQ,EAAE,kBAAkB,GAC3B,MAAM,GAAG,SAAS,CAQpB;AAED,MAAM,WAAW,0BAA0B;IACzC,oEAAoE;IACpE,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,KAAK,EAAE,OAAO,CAAC;IACf,wFAAwF;IACxF,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,0BAA0B,CAoBtG;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG;IACrE,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,0BAA0B,CAAC;CACtC,CAeA;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAQpC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,CAI5E;AAMD;;;;;GAKG;AACH,wBAAsB,6BAA6B,CACjD,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAiB7B;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,GACX,KAAK,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GAAG,IAAI,CAWzE;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,GAAG,MAAM,CAYT;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CA6CnC;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,IAAI,CAAC,CAkBf;AAMD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,IAAI,CAAC;CACf,GAAG;IACF,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,mBAAmB,GAAG,eAAe,CAAC;CAClD,CAAC;AAEF;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,MAAM,EACxB,SAAS,GAAE,MAAsB,EACjC,gBAAgB,GAAE,OAAe,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAuB3B;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,gBAAgB,EACrB,eAAe,EAAE,OAAO,EACxB,yBAAyB,EAAE,OAAO,GACjC,OAAO,CAAC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA8BxF;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,MAAM,EACX,SAAS,GAAE,MAAmB,GAC7B,OAAO,CAAC;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAgBhE;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,kBAAkB,GAC3B,OAAO,CAAC;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAuChE;AAMD;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,SAAS,GAAE,MAAmB;AAC9B;;;;;;GAMG;AACH,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAkC7D;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,gBAAgB,EACrB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAmC/C;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CA8Bf;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,MAAM,GAAE,OAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CAuDf;AAMD,MAAM,WAAW,aAAa;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CA0CxF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,GAAG,EAChB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC,CA8GhC;AA0DD,MAAM,WAAW,mBAAmB;IAClC;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,gBAAgB,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC/E;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAmrBzF;AA2DD;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,mBAAmB,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACjD,OAAO,CAAC,eAAe,CAAC,CAiC1B;AAMD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CA0CrF"}
|