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,401 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command Recorder for capturing and replaying tool invocations
|
|
3
|
+
*
|
|
4
|
+
* Records all tool calls automatically and allows creating named sequences
|
|
5
|
+
* by selecting specific command indices from the history.
|
|
6
|
+
*/
|
|
7
|
+
export interface RecordedCommand {
|
|
8
|
+
tool: string;
|
|
9
|
+
params: Record<string, any>;
|
|
10
|
+
delay?: number;
|
|
11
|
+
comment?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface CommandSequence {
|
|
14
|
+
id: string;
|
|
15
|
+
name: string;
|
|
16
|
+
description?: string;
|
|
17
|
+
expectedOutcome?: string;
|
|
18
|
+
startUrl?: string;
|
|
19
|
+
commands: RecordedCommand[];
|
|
20
|
+
/**
|
|
21
|
+
* Steps that run after `commands` reach a terminal state - success, a failed
|
|
22
|
+
* step, an abort, or the total timeout - but NOT when the run pauses (stepTo,
|
|
23
|
+
* a breakpoint, click validation), since a paused run is not over and its
|
|
24
|
+
* state is what the user stopped to inspect.
|
|
25
|
+
*
|
|
26
|
+
* They run on their own timeout budget and without the run's abort signal, so
|
|
27
|
+
* a cancelled or timed-out run still cleans up after itself, and they share
|
|
28
|
+
* the run's variable store so they can undo what setup captured. Their
|
|
29
|
+
* outcome never changes the run's verdict.
|
|
30
|
+
*/
|
|
31
|
+
teardown?: RecordedCommand[];
|
|
32
|
+
createdAt: number;
|
|
33
|
+
/**
|
|
34
|
+
* The connection every step was recorded against, when `create` hoisted a
|
|
35
|
+
* uniform per-step `connectionReason` off the steps (bug-018). Hoisting is
|
|
36
|
+
* what keeps a sequence portable, but it is lossy: without this, a later
|
|
37
|
+
* `insert` cannot tell whether the incoming steps came from the SAME browser
|
|
38
|
+
* as the bare ones (hoist again) or a different one (genuinely
|
|
39
|
+
* multi-connection). Absent on sequences recorded before this existed and on
|
|
40
|
+
* ones that never shared a single connection.
|
|
41
|
+
*/
|
|
42
|
+
recordedConnection?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Browsers this sequence needs before it can run, beyond the run's own
|
|
45
|
+
* connection. A multi-browser sequence names its connections on the steps,
|
|
46
|
+
* but naming them does not create them: without this the sequence can only
|
|
47
|
+
* run when someone has already launched those browsers by hand, so a suite
|
|
48
|
+
* run skips exactly the coverage that is hardest to get any other way.
|
|
49
|
+
*
|
|
50
|
+
* Each entry is launched before the first step if that reference is not
|
|
51
|
+
* already live. A caller's `connections` rebinding wins: a declaration is a
|
|
52
|
+
* default, not an override.
|
|
53
|
+
*/
|
|
54
|
+
requiredConnections?: Array<{
|
|
55
|
+
/** Connection reference the steps use, e.g. 'duo-member-two'. */
|
|
56
|
+
reference: string;
|
|
57
|
+
/** Opened on launch. Defaults to the sequence's startUrl. */
|
|
58
|
+
url?: string;
|
|
59
|
+
/**
|
|
60
|
+
* Named persistent Chrome profile to bring this reference up on, e.g.
|
|
61
|
+
* 'device-a' (see launchChrome({ profile })). The profile is the durable
|
|
62
|
+
* identity - its cookies, localStorage and IndexedDB survive between runs,
|
|
63
|
+
* so a device enrolled once stays enrolled - while the reference is only a
|
|
64
|
+
* name for this session. Declaring the pair is what lets a saved sequence
|
|
65
|
+
* be re-run tomorrow without rewiring which reference means which device.
|
|
66
|
+
*
|
|
67
|
+
* Implies reuse: a live Chrome already on this profile is the browser this
|
|
68
|
+
* declaration wants, so `forceNewInstance` defaults to FALSE here. Only one
|
|
69
|
+
* live Chrome may hold a profile, so forcing a second process would fail
|
|
70
|
+
* against the very browser it was asking for.
|
|
71
|
+
*/
|
|
72
|
+
profile?: string;
|
|
73
|
+
/** A distinct browser process, not a tab (default true, but false when
|
|
74
|
+
* `profile` is set) - two identities sharing one browser share its
|
|
75
|
+
* storage, which defeats the point. */
|
|
76
|
+
forceNewInstance?: boolean;
|
|
77
|
+
/** Why this browser exists, for the run summary. */
|
|
78
|
+
role?: string;
|
|
79
|
+
}>;
|
|
80
|
+
/**
|
|
81
|
+
* WebSockets this sequence's assertions depend on. Declared here rather than
|
|
82
|
+
* passed per run because the caller cannot be expected to know which socket
|
|
83
|
+
* carries an app's data - the sequence does, and a declaration cannot be
|
|
84
|
+
* forgotten by whoever invokes the run.
|
|
85
|
+
*
|
|
86
|
+
* Each entry is a substring of the socket URL. A run enforces, for every
|
|
87
|
+
* entry: at least one matching socket is open when the run ends, and no
|
|
88
|
+
* matching socket closed or hit frame errors while it executed. That covers
|
|
89
|
+
* both a transport that died mid-run and one that never came up - the second
|
|
90
|
+
* being invisible to any "is it up now" assertion written as a final step.
|
|
91
|
+
*
|
|
92
|
+
* Match on the app's own path (`/api/sync/socket`), not the origin, so the
|
|
93
|
+
* declaration survives `baseUrl` retargeting. Dev-server sockets (Vite HMR
|
|
94
|
+
* and friends) simply go undeclared and are ignored.
|
|
95
|
+
*/
|
|
96
|
+
requiredSockets?: string[];
|
|
97
|
+
/**
|
|
98
|
+
* What kind of sequence this is, for selecting and reporting on a suite:
|
|
99
|
+
* `['ui']`, `['contract', 'slow']`.
|
|
100
|
+
*
|
|
101
|
+
* Deliberately free-form rather than a closed `kind`, because the split that
|
|
102
|
+
* matters is not knowable in advance - a suite wants to slice by area and
|
|
103
|
+
* speed as readily as by ui-vs-contract, and folders are already spoken for
|
|
104
|
+
* by scenario shape (spine/story/duo).
|
|
105
|
+
*
|
|
106
|
+
* What this answers: a suite reporting "36 passed" reads as interface
|
|
107
|
+
* coverage, and in one 43-sequence suite 14 of those never issued a single
|
|
108
|
+
* `input` step - navigate, request, assert, with the browser present only to
|
|
109
|
+
* hold the auth cookie. Good contract tests, but no UI regression can fail
|
|
110
|
+
* any of them, and nothing said so.
|
|
111
|
+
*/
|
|
112
|
+
tags?: string[];
|
|
113
|
+
}
|
|
114
|
+
interface HistoryCommand extends RecordedCommand {
|
|
115
|
+
index: number;
|
|
116
|
+
timestamp: number;
|
|
117
|
+
}
|
|
118
|
+
export interface ActiveSequenceState {
|
|
119
|
+
sequenceId: string;
|
|
120
|
+
sequenceName: string;
|
|
121
|
+
connectionReason: string;
|
|
122
|
+
currentStep: number;
|
|
123
|
+
totalSteps: number;
|
|
124
|
+
pausedAt: number;
|
|
125
|
+
historyIndexAtPause: number;
|
|
126
|
+
/** Variable store for {{var:name.path}} interpolation, shared by reference
|
|
127
|
+
* with the ExecutionContext across run/step/finish calls for this pause. */
|
|
128
|
+
capturedVariables?: Record<string, any>;
|
|
129
|
+
/** {{timestamp}} value for this run, fixed at first resolution so it stays
|
|
130
|
+
* stable across every step of the same run (including step/finish calls). */
|
|
131
|
+
runTimestamp?: number;
|
|
132
|
+
/** The background run this paused session belongs to, when the pause came
|
|
133
|
+
* from a registered `run` (stepTo / click validation). Lets `cancel` by
|
|
134
|
+
* runId clear the right paused session, and `cancel` of the session mark
|
|
135
|
+
* the owning run record cancelled. */
|
|
136
|
+
runId?: string;
|
|
137
|
+
/** Recorded-reference -> this-session-reference mapping for the run that
|
|
138
|
+
* paused (replay({ action: 'run', connections: {...} })). Carried on the
|
|
139
|
+
* paused state so `step`/`finish` resolve per-step connections exactly the
|
|
140
|
+
* way the original `run` did instead of reverting to raw recorded names. */
|
|
141
|
+
connectionMap?: Record<string, string>;
|
|
142
|
+
}
|
|
143
|
+
export declare class CommandRecorder {
|
|
144
|
+
private history;
|
|
145
|
+
private sequences;
|
|
146
|
+
/** Bumped per created sequence: two created in the same millisecond used to
|
|
147
|
+
* share an id, and the second silently evicted the first from the map. */
|
|
148
|
+
private sequenceSeq;
|
|
149
|
+
private commandCounter;
|
|
150
|
+
private maxHistorySize;
|
|
151
|
+
private activeSequence;
|
|
152
|
+
private historyViewedWhilePaused;
|
|
153
|
+
/**
|
|
154
|
+
* Where each in-memory sequence came from, for the ones that came from disk.
|
|
155
|
+
* A sequence built from history has no entry and is never touched by the
|
|
156
|
+
* watcher - it exists nowhere else, so there is nothing to reload it from.
|
|
157
|
+
*/
|
|
158
|
+
private sequenceSources;
|
|
159
|
+
private sequenceWatcher;
|
|
160
|
+
private watchedDirs;
|
|
161
|
+
/**
|
|
162
|
+
* Get the sequences directory for a specific scope
|
|
163
|
+
*/
|
|
164
|
+
getSequencesDir(global?: boolean): string;
|
|
165
|
+
/**
|
|
166
|
+
* Watch the sequences directories and reload edited files, the way a managed
|
|
167
|
+
* dev server is restarted when its sources change.
|
|
168
|
+
*
|
|
169
|
+
* Memory used to shadow disk for the lifetime of the session: a sequence
|
|
170
|
+
* loaded once kept running its original version however many times you edited
|
|
171
|
+
* the file, with nothing in the run output to say so. `runAll` reloads the
|
|
172
|
+
* whole tree first, so the same sequence behaved differently depending on how
|
|
173
|
+
* it was invoked - which is how the stale copy stayed invisible.
|
|
174
|
+
*
|
|
175
|
+
* Idempotent, and safe to call before the directories exist: it attaches to
|
|
176
|
+
* whichever are present and callers re-invoke it after a save or load.
|
|
177
|
+
*/
|
|
178
|
+
startSequenceWatch(): void;
|
|
179
|
+
/** Stop watching (tests, shutdown). */
|
|
180
|
+
stopSequenceWatch(): void;
|
|
181
|
+
/**
|
|
182
|
+
* Re-read every disk-backed sequence whose file is newer than the copy in
|
|
183
|
+
* memory. Returns the names actually reloaded.
|
|
184
|
+
*
|
|
185
|
+
* A file that has gone missing or will not parse leaves the in-memory copy
|
|
186
|
+
* alone: a watcher fires mid-write as readily as after one, and dropping a
|
|
187
|
+
* good sequence because it was caught half-written would be worse than the
|
|
188
|
+
* staleness this exists to fix.
|
|
189
|
+
*/
|
|
190
|
+
reloadChangedSequences(ids?: string[]): Promise<string[]>;
|
|
191
|
+
/**
|
|
192
|
+
* The current copy of a sequence, re-read first if its file has changed
|
|
193
|
+
* since it was loaded.
|
|
194
|
+
*
|
|
195
|
+
* The watcher debounces (400ms), and an edit followed immediately by a run
|
|
196
|
+
* is the normal rhythm - so a run does not wait for the watcher to catch up,
|
|
197
|
+
* it asks. One stat on the way past.
|
|
198
|
+
*/
|
|
199
|
+
getFreshSequence(id: string): Promise<CommandSequence | undefined>;
|
|
200
|
+
/** Remember which file a sequence came from, so the watcher can refresh it. */
|
|
201
|
+
private trackSequenceSource;
|
|
202
|
+
/**
|
|
203
|
+
* Set active sequence state (for step-through)
|
|
204
|
+
*/
|
|
205
|
+
setActiveSequence(state: ActiveSequenceState | null): void;
|
|
206
|
+
/**
|
|
207
|
+
* Mark that history was viewed while paused (enables insert)
|
|
208
|
+
*/
|
|
209
|
+
markHistoryViewed(): void;
|
|
210
|
+
/**
|
|
211
|
+
* Reset history viewed flag (called when other actions are taken)
|
|
212
|
+
*/
|
|
213
|
+
resetHistoryViewed(): void;
|
|
214
|
+
/**
|
|
215
|
+
* Check if history was viewed while paused
|
|
216
|
+
*/
|
|
217
|
+
wasHistoryViewed(): boolean;
|
|
218
|
+
/**
|
|
219
|
+
* Get active sequence state
|
|
220
|
+
*/
|
|
221
|
+
getActiveSequence(): ActiveSequenceState | null;
|
|
222
|
+
/**
|
|
223
|
+
* Update current step in active sequence
|
|
224
|
+
*/
|
|
225
|
+
updateActiveSequenceStep(step: number): void;
|
|
226
|
+
/**
|
|
227
|
+
* Get commands recorded since sequence was paused
|
|
228
|
+
*/
|
|
229
|
+
getCommandsSincePause(): HistoryCommand[];
|
|
230
|
+
/**
|
|
231
|
+
* Get current history index (for tracking pause point)
|
|
232
|
+
*/
|
|
233
|
+
getCurrentHistoryIndex(): number;
|
|
234
|
+
/**
|
|
235
|
+
* Record a command (always-on, automatic)
|
|
236
|
+
*/
|
|
237
|
+
recordCommand(tool: string, params: Record<string, any>, options?: {
|
|
238
|
+
delay?: number;
|
|
239
|
+
comment?: string;
|
|
240
|
+
}): Promise<void>;
|
|
241
|
+
/**
|
|
242
|
+
* Get command history (most recent first)
|
|
243
|
+
*/
|
|
244
|
+
getHistory(limit?: number): HistoryCommand[];
|
|
245
|
+
/**
|
|
246
|
+
* Get a specific command by index
|
|
247
|
+
*/
|
|
248
|
+
getCommand(index: number): HistoryCommand | undefined;
|
|
249
|
+
/**
|
|
250
|
+
* Create a sequence from command indices
|
|
251
|
+
*/
|
|
252
|
+
createSequence(name: string, commandIndices: number[], options?: {
|
|
253
|
+
description?: string;
|
|
254
|
+
expectedOutcome?: string;
|
|
255
|
+
startUrl?: string;
|
|
256
|
+
/**
|
|
257
|
+
* Called with the fully built candidate BEFORE it replaces any same-named
|
|
258
|
+
* sequence in memory. Return false to reject: nothing is removed and nothing
|
|
259
|
+
* is stored, so a rejected create leaves the existing sequence intact.
|
|
260
|
+
* (Validating after the fact deleted the good copy and then rejected the bad
|
|
261
|
+
* one, leaving the user with neither.)
|
|
262
|
+
*/
|
|
263
|
+
validate?: (candidate: CommandSequence) => boolean;
|
|
264
|
+
}): Promise<CommandSequence | null>;
|
|
265
|
+
/**
|
|
266
|
+
* Create a sequence directly from commands (not from history)
|
|
267
|
+
*/
|
|
268
|
+
createSequenceFromCommands(name: string, commands: RecordedCommand[], options?: {
|
|
269
|
+
description?: string;
|
|
270
|
+
expectedOutcome?: string;
|
|
271
|
+
startUrl?: string;
|
|
272
|
+
}): Promise<CommandSequence>;
|
|
273
|
+
/**
|
|
274
|
+
* Check if a sequence with the given name exists
|
|
275
|
+
*/
|
|
276
|
+
sequenceNameExists(name: string): boolean;
|
|
277
|
+
/**
|
|
278
|
+
* List all saved sequences
|
|
279
|
+
*/
|
|
280
|
+
listSequences(): CommandSequence[];
|
|
281
|
+
/**
|
|
282
|
+
* Get a specific sequence by ID
|
|
283
|
+
*/
|
|
284
|
+
getSequence(sequenceId: string): CommandSequence | undefined;
|
|
285
|
+
/**
|
|
286
|
+
* Delete a sequence
|
|
287
|
+
*/
|
|
288
|
+
deleteSequence(sequenceId: string): boolean;
|
|
289
|
+
/**
|
|
290
|
+
* Remove ALL in-memory sequences with the given name. Used on create/reload so a
|
|
291
|
+
* name maps to exactly one sequence — otherwise `loadSequence({name})` resolves the
|
|
292
|
+
* oldest insertion-order match and re-created sequences are silently ignored (#75).
|
|
293
|
+
*/
|
|
294
|
+
private removeSequenceByName;
|
|
295
|
+
/**
|
|
296
|
+
* Clear all sequences
|
|
297
|
+
*/
|
|
298
|
+
clearAllSequences(): Promise<void>;
|
|
299
|
+
/**
|
|
300
|
+
* Clear command history
|
|
301
|
+
*/
|
|
302
|
+
clearHistory(): Promise<void>;
|
|
303
|
+
/**
|
|
304
|
+
* Get statistics
|
|
305
|
+
*/
|
|
306
|
+
getStats(): {
|
|
307
|
+
historyCount: number;
|
|
308
|
+
sequenceCount: number;
|
|
309
|
+
oldestCommandIndex: number | null;
|
|
310
|
+
newestCommandIndex: number | null;
|
|
311
|
+
};
|
|
312
|
+
/**
|
|
313
|
+
* Save a sequence to disk
|
|
314
|
+
* @param sequenceId - ID of the sequence to save
|
|
315
|
+
* @param global - If true, save to global ~/.cdp-tools/sequences/, otherwise working directory
|
|
316
|
+
*/
|
|
317
|
+
saveSequenceToDisk(sequenceId: string, global?: boolean, overwrite?: boolean): Promise<{
|
|
318
|
+
success: true;
|
|
319
|
+
filepath: string;
|
|
320
|
+
} | {
|
|
321
|
+
success: false;
|
|
322
|
+
error: string;
|
|
323
|
+
conflict?: boolean;
|
|
324
|
+
filepath?: string;
|
|
325
|
+
} | null>;
|
|
326
|
+
/**
|
|
327
|
+
* Find best matching filename from saved sequences (searches both working dir and global)
|
|
328
|
+
* Supports: exact match, with/without .json, name prefix (returns latest by timestamp)
|
|
329
|
+
* Returns the full path to the matched file
|
|
330
|
+
*/
|
|
331
|
+
findMatchingFilename(searchTerm: string): Promise<{
|
|
332
|
+
filename: string;
|
|
333
|
+
fullPath: string;
|
|
334
|
+
matchType: string;
|
|
335
|
+
location: string;
|
|
336
|
+
} | null>;
|
|
337
|
+
/**
|
|
338
|
+
* Parse a sequence file from disk WITHOUT touching in-memory state.
|
|
339
|
+
* Split out from registration so a caller can validate the parsed candidate
|
|
340
|
+
* before anything same-named is evicted (see registerLoadedSequence).
|
|
341
|
+
*/
|
|
342
|
+
private parseSequenceFile;
|
|
343
|
+
/**
|
|
344
|
+
* Register a parsed sequence in memory, replacing any same-named copy.
|
|
345
|
+
* Validation (if supplied) runs BEFORE the removal, so a rejected load leaves
|
|
346
|
+
* the pre-existing sequence completely intact instead of deleting the good copy
|
|
347
|
+
* and then rejecting the bad one, leaving the user with neither.
|
|
348
|
+
*/
|
|
349
|
+
private registerLoadedSequence;
|
|
350
|
+
/**
|
|
351
|
+
* Load a sequence from disk (supports fuzzy filename matching)
|
|
352
|
+
*
|
|
353
|
+
* @param options.validate - Called with the parsed candidate BEFORE it replaces any
|
|
354
|
+
* same-named in-memory sequence. Return false to reject: nothing is removed and
|
|
355
|
+
* nothing is stored, and this method returns null.
|
|
356
|
+
*/
|
|
357
|
+
loadSequenceFromDisk(filename: string, options?: {
|
|
358
|
+
validate?: (candidate: CommandSequence) => boolean;
|
|
359
|
+
}): Promise<CommandSequence | null>;
|
|
360
|
+
/**
|
|
361
|
+
* List saved sequences on disk from a specific directory
|
|
362
|
+
*/
|
|
363
|
+
private listSequencesFromDir;
|
|
364
|
+
/**
|
|
365
|
+
* List saved sequences on disk (checks both working directory and global)
|
|
366
|
+
*/
|
|
367
|
+
listSavedSequencesOnDisk(): Promise<Array<{
|
|
368
|
+
filename: string;
|
|
369
|
+
name: string;
|
|
370
|
+
id: string;
|
|
371
|
+
commandCount: number;
|
|
372
|
+
description?: string;
|
|
373
|
+
expectedOutcome?: string;
|
|
374
|
+
startUrl?: string;
|
|
375
|
+
location: string;
|
|
376
|
+
fullPath: string;
|
|
377
|
+
}>>;
|
|
378
|
+
/**
|
|
379
|
+
* List issue sequences on disk with associated issue metadata
|
|
380
|
+
*/
|
|
381
|
+
listIssueSequencesOnDisk(): Promise<Array<{
|
|
382
|
+
filename: string;
|
|
383
|
+
name: string;
|
|
384
|
+
id: string;
|
|
385
|
+
commandCount: number;
|
|
386
|
+
description?: string;
|
|
387
|
+
expectedOutcome?: string;
|
|
388
|
+
startUrl?: string;
|
|
389
|
+
location: string;
|
|
390
|
+
fullPath: string;
|
|
391
|
+
issueId?: number;
|
|
392
|
+
issueType?: string;
|
|
393
|
+
issueStatus?: string;
|
|
394
|
+
}>>;
|
|
395
|
+
/**
|
|
396
|
+
* Delete a sequence from disk (supports fuzzy filename matching)
|
|
397
|
+
*/
|
|
398
|
+
deleteSequenceFromDisk(filename: string): Promise<boolean>;
|
|
399
|
+
}
|
|
400
|
+
export {};
|
|
401
|
+
//# sourceMappingURL=command-recorder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-recorder.d.ts","sourceRoot":"","sources":["../src/command-recorder.ts"],"names":[],"mappings":"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"}
|