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
package/docs/messages.md
ADDED
|
@@ -0,0 +1,3480 @@
|
|
|
1
|
+
# cdp-tools Message Templates
|
|
2
|
+
|
|
3
|
+
This file contains all user-facing messages for the cdp-tools debugger. Messages use markdown formatting and support variable interpolation using `{{variable}}` syntax.
|
|
4
|
+
|
|
5
|
+
## Template Usage Status
|
|
6
|
+
|
|
7
|
+
Some templates are currently unused but kept for:
|
|
8
|
+
- Future error paths and edge cases
|
|
9
|
+
- Potential error conditions not yet encountered
|
|
10
|
+
- Consistency across similar tools
|
|
11
|
+
- Forward compatibility
|
|
12
|
+
|
|
13
|
+
**Currently unused templates (kept for future use):**
|
|
14
|
+
- BREAKPOINT_ALREADY_EXISTS - For duplicate breakpoint detection
|
|
15
|
+
- CHROME_LAUNCH_SUCCESS - For enhanced launch messages
|
|
16
|
+
- CONSOLE_MONITORING_ENABLED - For explicit monitoring activation
|
|
17
|
+
- DEBUGGER_CONNECT_SUCCESS - Reserved for verbose connection mode
|
|
18
|
+
- EXECUTION_CONTEXT_DESTROYED - For context destruction errors
|
|
19
|
+
- LINE_NOT_FOUND - For invalid line number errors
|
|
20
|
+
- LOGPOINT_SET_SUCCESS - For logpoint creation confirmation
|
|
21
|
+
- LOGPOINT_VALIDATE_SUCCESS - For logpoint validation feedback
|
|
22
|
+
- PLATFORM_UNSUPPORTED - For unsupported platform errors
|
|
23
|
+
- PORT_NOT_INSPECTABLE - For port availability errors
|
|
24
|
+
- SCRIPT_NOT_FOUND - For missing script errors
|
|
25
|
+
- SESSION_CLOSED - For session termination errors
|
|
26
|
+
- TIMEOUT_WAITING_FOR_PAUSE - For pause timeout errors
|
|
27
|
+
|
|
28
|
+
These templates should not be removed - they represent potential error conditions or future enhancements.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Connection Messages
|
|
33
|
+
|
|
34
|
+
## CHROME_ALREADY_RUNNING
|
|
35
|
+
|
|
36
|
+
**Type:** error
|
|
37
|
+
**Code:** CHROME_RUNNING
|
|
38
|
+
|
|
39
|
+
Chrome is already running. You can either:
|
|
40
|
+
|
|
41
|
+
**Suggestions:**
|
|
42
|
+
- Use `killChrome()` to close the existing instance
|
|
43
|
+
- Use `connectDebugger()` to connect to the running instance instead
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## CHROME_FORCED_PORT_IN_USE
|
|
48
|
+
|
|
49
|
+
**Type:** error
|
|
50
|
+
**Code:** PORT_IN_USE
|
|
51
|
+
|
|
52
|
+
Cannot launch a new Chrome instance on port {{port}}: that port is already in use. `forceNewInstance` guarantees a fresh process, so the requested port is never silently swapped for another one.
|
|
53
|
+
|
|
54
|
+
**Suggestions:**
|
|
55
|
+
- Use `killChrome({ port: {{port}} })` to free the port, then retry
|
|
56
|
+
- Drop `forceNewInstance` to reuse/tab into the Chrome already on port {{port}}
|
|
57
|
+
- Omit `port` to let `forceNewInstance` pick a free port automatically
|
|
58
|
+
- Pick a different explicit `port` if you are pinning one instance per port
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## CHROME_REFERENCE_ALREADY_BOUND
|
|
63
|
+
|
|
64
|
+
**Type:** error
|
|
65
|
+
**Code:** REFERENCE_IN_USE
|
|
66
|
+
|
|
67
|
+
Reference "{{reference}}" is already bound to a live connection, so `forceNewInstance` would leave two Chrome instances answering to the same name.
|
|
68
|
+
|
|
69
|
+
**Suggestions:**
|
|
70
|
+
- Choose a different 3-word reference for the new instance
|
|
71
|
+
- Drop `forceNewInstance` to reuse the existing "{{reference}}" connection
|
|
72
|
+
- Use `killChrome()` or `disconnectDebugger({ reference: "{{reference}}" })` first to release the name
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## CHROME_PROFILE_INVALID_NAME
|
|
77
|
+
|
|
78
|
+
**Type:** error
|
|
79
|
+
**Summary:** Invalid profile name
|
|
80
|
+
|
|
81
|
+
"{{profile}}" is not a valid persistent profile name.
|
|
82
|
+
|
|
83
|
+
A profile name becomes a directory, so it must be 1-64 characters of letters, digits, dot, dash or underscore, starting with a letter or digit. No slashes, no leading dot or dash, and it may not start with "chrome-debug-profile-".
|
|
84
|
+
|
|
85
|
+
**Suggestions:**
|
|
86
|
+
- Try a simple name like `device-a`, `owner-console` or `work_google`
|
|
87
|
+
- List existing profiles with `config({ action: 'listProfiles' })`
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## CHROME_PROFILE_IN_USE
|
|
92
|
+
|
|
93
|
+
**Type:** error
|
|
94
|
+
**Summary:** Profile already in use
|
|
95
|
+
|
|
96
|
+
Profile "{{profile}}" is already held by the Chrome running on port {{port}}.
|
|
97
|
+
|
|
98
|
+
Only one live Chrome can use a profile at a time - a second launch on the same user-data-dir is handed off to the first process and immediately exits.
|
|
99
|
+
|
|
100
|
+
**Suggestions:**
|
|
101
|
+
- Use the existing instance on port {{port}} (`connectionReason` of that connection)
|
|
102
|
+
- Or free the profile first: `killChrome({ port: {{port}}, reason: 'switching profile' })`
|
|
103
|
+
- Or launch a different profile, e.g. `launchChrome({ profile: '{{profile}}-2' })`
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## CHROME_PROFILE_PORT_MISMATCH
|
|
108
|
+
|
|
109
|
+
**Type:** error
|
|
110
|
+
**Summary:** Port already runs a different profile
|
|
111
|
+
|
|
112
|
+
Chrome is already running on port {{port}} with profile `{{actualProfile}}`, not "{{profile}}".
|
|
113
|
+
|
|
114
|
+
Reusing it would give you a different browser identity than you asked for.
|
|
115
|
+
|
|
116
|
+
**Suggestions:**
|
|
117
|
+
- Launch on another port: `launchChrome({ profile: '{{profile}}', forceNewInstance: true })`
|
|
118
|
+
- Or kill the instance first: `killChrome({ port: {{port}}, reason: 'switching profile' })`
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## CHROME_LAUNCH_SUCCESS
|
|
123
|
+
|
|
124
|
+
**Type:** success
|
|
125
|
+
**Summary:** Chrome launched and connected
|
|
126
|
+
|
|
127
|
+
Title: {{title}}, URL: {{url}}{{#viewport}}, Viewport: {{viewport.width}}x{{viewport.height}}{{/viewport}}{{#viewportClamped}} (settled here, not the size requested){{/viewportClamped}}{{#consoleStats}}
|
|
128
|
+
|
|
129
|
+
Console: {{consoleStats}}{{/consoleStats}}
|
|
130
|
+
|
|
131
|
+
{{#hasUserReference}}Ready to use! Use connectionReason: "{{reference}}" in tool calls.{{/hasUserReference}}{{^hasUserReference}}Ready to use! Use connectionReason: "{{reference}}" in tool calls, or rename with tab({ action: 'rename' }) first.{{/hasUserReference}}{{inactivityNote}}
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## CHROME_CONNECTION_REUSED
|
|
136
|
+
|
|
137
|
+
**Type:** success
|
|
138
|
+
**Summary:** Chrome connection reused (already exists)
|
|
139
|
+
|
|
140
|
+
Title: {{title}}, URL: {{url}}
|
|
141
|
+
|
|
142
|
+
Ready to use! Use connectionReason: "{{reference}}" in tool calls.
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## CHROME_LAUNCH_NO_CONNECT
|
|
147
|
+
|
|
148
|
+
**Type:** success
|
|
149
|
+
|
|
150
|
+
Chrome launched with debugging on port {{port}}
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## CHROME_LAUNCH_AUTO_CONNECT_FAILED
|
|
155
|
+
|
|
156
|
+
**Type:** warning
|
|
157
|
+
|
|
158
|
+
Chrome launched successfully but auto-connect failed: {{error}}
|
|
159
|
+
|
|
160
|
+
**Note:** Use `connectDebugger()` to connect manually.
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## DEBUGGER_CONNECT_SUCCESS
|
|
165
|
+
|
|
166
|
+
**Type:** success
|
|
167
|
+
**Summary:** Connected to {{runtimeType}} debugger
|
|
168
|
+
|
|
169
|
+
Host: {{host}}:{{port}}, Reference: {{reference}}
|
|
170
|
+
|
|
171
|
+
Features: {{features}}{{#consoleStats}}
|
|
172
|
+
Console: {{consoleStats}}{{/consoleStats}}{{#isChrome}}
|
|
173
|
+
|
|
174
|
+
Note: Console monitoring auto-enabled. Page auto-reloaded to capture initial logs.
|
|
175
|
+
|
|
176
|
+
IMPORTANT: Please provide a reference name for this tab using the renameTab tool.{{/isChrome}}{{#isNode}}
|
|
177
|
+
|
|
178
|
+
Note: Browser automation features are not available for Node.js debugging.
|
|
179
|
+
Console Monitoring: Enabled via CDP (logpoint output and console.log calls will be captured).{{/isNode}}{{autoRestartWarning}}
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## DEBUGGER_CONNECT_FAILED
|
|
184
|
+
|
|
185
|
+
**Type:** error
|
|
186
|
+
**Code:** CONNECTION_FAILED
|
|
187
|
+
|
|
188
|
+
Failed to connect to debugger at {{host}}:{{port}}: {{error}}
|
|
189
|
+
|
|
190
|
+
**Suggestions:**
|
|
191
|
+
- Verify the debugger is running and listening on the specified port
|
|
192
|
+
- For Chrome: Launch with `launchChrome()` or start with `--remote-debugging-port={{port}}`
|
|
193
|
+
- For Node.js: Start with `node --inspect={{port}} app.js`
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## DEBUGGER_NOT_RUNNING
|
|
198
|
+
|
|
199
|
+
**Type:** error
|
|
200
|
+
**Code:** NOT_RUNNING
|
|
201
|
+
|
|
202
|
+
{{message}}
|
|
203
|
+
|
|
204
|
+
**Note:** This error occurs when trying to connect to a debugger that is not running on the specified port.
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## DEBUGGER_NOT_CONNECTED
|
|
209
|
+
|
|
210
|
+
**Type:** error
|
|
211
|
+
**Code:** NOT_CONNECTED
|
|
212
|
+
**Summary:** Debugger not connected
|
|
213
|
+
|
|
214
|
+
No active debugger connection found.
|
|
215
|
+
|
|
216
|
+
**Suggestions:**
|
|
217
|
+
- Use `launchChrome()` to launch Chrome with debugging enabled
|
|
218
|
+
- Use `connectDebugger()` to connect to an existing debugger instance
|
|
219
|
+
|
|
220
|
+
**Example:**
|
|
221
|
+
```javascript
|
|
222
|
+
// Launch Chrome
|
|
223
|
+
launchChrome({ url: 'http://localhost:3000' })
|
|
224
|
+
|
|
225
|
+
// Or connect to existing
|
|
226
|
+
connectDebugger({ host: 'localhost', port: 9222 })
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## DEBUGGER_DISCONNECT_SUCCESS
|
|
232
|
+
|
|
233
|
+
**Type:** success
|
|
234
|
+
|
|
235
|
+
Disconnected from connection: {{reference}}
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## PORT_NOT_INSPECTABLE
|
|
240
|
+
|
|
241
|
+
**Type:** error
|
|
242
|
+
**Code:** PORT_NOT_READY
|
|
243
|
+
|
|
244
|
+
Chrome debugging port {{port}} failed to become inspectable within the timeout period
|
|
245
|
+
|
|
246
|
+
**Suggestions:**
|
|
247
|
+
- Chrome may be starting slowly - try increasing the timeout
|
|
248
|
+
- Check if another process is using port {{port}}
|
|
249
|
+
- Verify Chrome launched successfully (check process list)
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## CHROME_KILLED
|
|
254
|
+
|
|
255
|
+
**Type:** success
|
|
256
|
+
|
|
257
|
+
action:killed;port:{{port}};reason:{{reason}}
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## CHROME_STATUS
|
|
262
|
+
|
|
263
|
+
**Type:** info
|
|
264
|
+
|
|
265
|
+
Chrome launcher status
|
|
266
|
+
|
|
267
|
+
{{#if lastCloseEvents.length}}
|
|
268
|
+
### Recent Close Events
|
|
269
|
+
|
|
270
|
+
{{#each lastCloseEvents}}
|
|
271
|
+
- **{{reason}}** (port {{port}}, PID {{pid}}) at {{timestamp}}{{#hasExitCode}} - exit code: {{exitCode}}{{/hasExitCode}}{{#signal}} - signal: {{signal}}{{/signal}}
|
|
272
|
+
{{/each}}
|
|
273
|
+
{{/if}}
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
## CHROME_LAUNCHER_RESET
|
|
278
|
+
|
|
279
|
+
**Type:** success
|
|
280
|
+
|
|
281
|
+
Chrome launcher state reset successfully
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## CONNECTION_STATUS
|
|
286
|
+
|
|
287
|
+
**Type:** info
|
|
288
|
+
|
|
289
|
+
Connection status retrieved
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
## CONNECTIONS_LIST
|
|
294
|
+
|
|
295
|
+
**Type:** info
|
|
296
|
+
|
|
297
|
+
Active debugger connections ({{totalConnections}} total)
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## CONNECTION_SWITCH_SUCCESS
|
|
302
|
+
|
|
303
|
+
**Type:** success
|
|
304
|
+
|
|
305
|
+
Switched to connection: {{reference}}
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
## CONNECTION_SWITCH_FAILED
|
|
310
|
+
|
|
311
|
+
**Type:** error
|
|
312
|
+
**Code:** CONNECTION_NOT_FOUND
|
|
313
|
+
|
|
314
|
+
Connection with reference "{{reference}}" not found
|
|
315
|
+
|
|
316
|
+
**Suggestion:** Use `listConnections()` to see all available connections.
|
|
317
|
+
|
|
318
|
+
---
|
|
319
|
+
|
|
320
|
+
## DECLARED_CONNECTION_FAILED
|
|
321
|
+
|
|
322
|
+
**Type:** error
|
|
323
|
+
**Code:** DECLARED_CONNECTION_FAILED
|
|
324
|
+
**Summary:** A browser the sequence declares could not be brought up
|
|
325
|
+
|
|
326
|
+
{{message}}
|
|
327
|
+
|
|
328
|
+
The run stopped before its first step, so nothing has been executed yet.
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
## CONNECTION_NOT_FOUND
|
|
333
|
+
|
|
334
|
+
**Type:** error
|
|
335
|
+
**Code:** NO_CONNECTION
|
|
336
|
+
**Summary:** Connection not found
|
|
337
|
+
|
|
338
|
+
No active browser connection available.
|
|
339
|
+
|
|
340
|
+
**Suggestions:**
|
|
341
|
+
- Use `launchChrome()` to launch Chrome with debugging enabled
|
|
342
|
+
- Use `connectDebugger()` to connect to an existing debugger instance
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
## INVALID_REFERENCE
|
|
347
|
+
|
|
348
|
+
**Type:** error
|
|
349
|
+
**Code:** INVALID_REFERENCE
|
|
350
|
+
|
|
351
|
+
Invalid reference: {{error}}
|
|
352
|
+
|
|
353
|
+
**Requirements:**
|
|
354
|
+
- Reference must be exactly 3 words
|
|
355
|
+
- Words are separated by spaces
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
359
|
+
## REFERENCE_IN_USE
|
|
360
|
+
|
|
361
|
+
**Type:** error
|
|
362
|
+
**Code:** REFERENCE_IN_USE
|
|
363
|
+
|
|
364
|
+
Reference "{{reference}}" is already in use by another connection
|
|
365
|
+
|
|
366
|
+
**Suggestion:** Choose a different 3-word reference that describes this specific debugging activity.
|
|
367
|
+
|
|
368
|
+
---
|
|
369
|
+
|
|
370
|
+
## SOURCE_MAPS_LOADED
|
|
371
|
+
|
|
372
|
+
**Type:** success
|
|
373
|
+
|
|
374
|
+
Loaded {{count}} source maps from {{directory}}
|
|
375
|
+
|
|
376
|
+
---
|
|
377
|
+
|
|
378
|
+
## SOURCE_MAPS_FAILED
|
|
379
|
+
|
|
380
|
+
**Type:** error
|
|
381
|
+
**Code:** SOURCE_MAP_ERROR
|
|
382
|
+
|
|
383
|
+
Failed to load source maps: {{error}}
|
|
384
|
+
|
|
385
|
+
**Suggestions:**
|
|
386
|
+
- Verify the directory path is correct
|
|
387
|
+
- Ensure .js.map files exist in the directory
|
|
388
|
+
- Check file permissions
|
|
389
|
+
|
|
390
|
+
---
|
|
391
|
+
|
|
392
|
+
## SOURCE_CODE_SUCCESS
|
|
393
|
+
|
|
394
|
+
**Type:** success
|
|
395
|
+
|
|
396
|
+
Source code retrieved from {{url}} (lines {{startLine}}-{{endLine}})
|
|
397
|
+
|
|
398
|
+
---
|
|
399
|
+
|
|
400
|
+
## SOURCE_CODE_FAILED
|
|
401
|
+
|
|
402
|
+
**Type:** error
|
|
403
|
+
**Code:** SOURCE_CODE_ERROR
|
|
404
|
+
|
|
405
|
+
Failed to retrieve source code: {{error}}
|
|
406
|
+
|
|
407
|
+
---
|
|
408
|
+
|
|
409
|
+
## CODE_SEARCH_RESULTS
|
|
410
|
+
|
|
411
|
+
**Type:** info
|
|
412
|
+
|
|
413
|
+
Code search completed - found {{count}} matches
|
|
414
|
+
|
|
415
|
+
---
|
|
416
|
+
|
|
417
|
+
## FUNCTION_SEARCH_RESULTS
|
|
418
|
+
|
|
419
|
+
**Type:** info
|
|
420
|
+
|
|
421
|
+
Function search completed - found {{count}} matches for '{{functionName}}'
|
|
422
|
+
|
|
423
|
+
---
|
|
424
|
+
|
|
425
|
+
## Breakpoint Messages
|
|
426
|
+
|
|
427
|
+
## BREAKPOINT_SET_SUCCESS
|
|
428
|
+
|
|
429
|
+
**Type:** success
|
|
430
|
+
**Summary:** Breakpoint set
|
|
431
|
+
|
|
432
|
+
Location: {{url}}:{{resolvedLine}}, ID: {{breakpointId}}{{#wasAdjusted}}
|
|
433
|
+
|
|
434
|
+
⚠️ CDP resolved to {{resolvedLocation}} (requested {{requestedLocation}}) due to source mapping{{/wasAdjusted}}{{#condition}}
|
|
435
|
+
Condition: {{condition}}{{/condition}}
|
|
436
|
+
|
|
437
|
+
---
|
|
438
|
+
|
|
439
|
+
## BREAKPOINT_SET_FAILED
|
|
440
|
+
|
|
441
|
+
**Type:** error
|
|
442
|
+
**Code:** BREAKPOINT_FAILED
|
|
443
|
+
**Summary:** Failed to set breakpoint
|
|
444
|
+
|
|
445
|
+
Location: {{url}}:{{lineNumber}}
|
|
446
|
+
Reason: {{error}}
|
|
447
|
+
|
|
448
|
+
**Suggestions:**
|
|
449
|
+
- Verify the file URL is correct (use `file://` for local files or `http://` for web URLs)
|
|
450
|
+
- Ensure the line number exists in the source file
|
|
451
|
+
- Check that the debugger is paused or the script is already loaded
|
|
452
|
+
|
|
453
|
+
---
|
|
454
|
+
|
|
455
|
+
## BREAKPOINT_ALREADY_EXISTS
|
|
456
|
+
|
|
457
|
+
**Type:** error
|
|
458
|
+
**Code:** BREAKPOINT_EXISTS
|
|
459
|
+
|
|
460
|
+
A breakpoint already exists at {{url}}:{{lineNumber}}
|
|
461
|
+
|
|
462
|
+
**TIP:** Use `listBreakpoints()` to see all active breakpoints and their IDs.
|
|
463
|
+
|
|
464
|
+
---
|
|
465
|
+
|
|
466
|
+
## BREAKPOINT_REMOVE_SUCCESS
|
|
467
|
+
|
|
468
|
+
**Type:** success
|
|
469
|
+
|
|
470
|
+
Breakpoint {{breakpointId}} removed successfully
|
|
471
|
+
|
|
472
|
+
---
|
|
473
|
+
|
|
474
|
+
## BREAKPOINT_NOT_FOUND
|
|
475
|
+
|
|
476
|
+
**Type:** error
|
|
477
|
+
**Code:** BREAKPOINT_NOT_FOUND
|
|
478
|
+
|
|
479
|
+
Breakpoint {{breakpointId}} not found
|
|
480
|
+
|
|
481
|
+
**Suggestions:**
|
|
482
|
+
- Use `listBreakpoints()` to see all active breakpoints
|
|
483
|
+
- The breakpoint may have already been removed
|
|
484
|
+
|
|
485
|
+
---
|
|
486
|
+
|
|
487
|
+
## LOGPOINT_SET_SUCCESS
|
|
488
|
+
|
|
489
|
+
**Type:** success
|
|
490
|
+
|
|
491
|
+
Logpoint set at {{url}}:{{lineNumber}} (max executions: {{maxExecutions}})
|
|
492
|
+
|
|
493
|
+
**Breakpoint ID:** `{{breakpointId}}`
|
|
494
|
+
**Log message:** `{{logMessage}}`
|
|
495
|
+
|
|
496
|
+
**Note:** Logpoint will pause execution after {{maxExecutions}} executions. Use `resetLogpointCounter()` to reset the counter.
|
|
497
|
+
|
|
498
|
+
---
|
|
499
|
+
|
|
500
|
+
## LOGPOINT_VALIDATE_SUCCESS
|
|
501
|
+
|
|
502
|
+
**Type:** success
|
|
503
|
+
|
|
504
|
+
Logpoint validation successful! The expression can be evaluated at {{url}}:{{lineNumber}}
|
|
505
|
+
|
|
506
|
+
**Sample output:** {{sampleOutput}}
|
|
507
|
+
|
|
508
|
+
---
|
|
509
|
+
|
|
510
|
+
## LOGPOINT_VALIDATE_FAILED
|
|
511
|
+
|
|
512
|
+
**Type:** error
|
|
513
|
+
**Code:** LOGPOINT_INVALID
|
|
514
|
+
|
|
515
|
+
Logpoint validation failed: {{error}}
|
|
516
|
+
|
|
517
|
+
**Suggestions:**
|
|
518
|
+
- Check that the expressions in `{curly braces}` are valid JavaScript
|
|
519
|
+
- Ensure variables referenced exist in the scope at that line
|
|
520
|
+
- Try evaluating the expression manually with `evaluateExpression()`
|
|
521
|
+
|
|
522
|
+
---
|
|
523
|
+
|
|
524
|
+
## LOGPOINT_LIMIT_EXCEEDED
|
|
525
|
+
|
|
526
|
+
**Type:** warning
|
|
527
|
+
**Code:** LOGPOINT_LIMIT
|
|
528
|
+
|
|
529
|
+
Logpoint at {{url}}:{{lineNumber}} has reached execution limit ({{executionCount}}/{{maxExecutions}})
|
|
530
|
+
|
|
531
|
+
Captured logs:
|
|
532
|
+
{{logs}}
|
|
533
|
+
|
|
534
|
+
Options:
|
|
535
|
+
- Use resetLogpointCounter('{{breakpointId}}') to continue logging
|
|
536
|
+
- Use removeBreakpoint('{{breakpointId}}') to remove the logpoint
|
|
537
|
+
- Review the captured logs above
|
|
538
|
+
|
|
539
|
+
---
|
|
540
|
+
|
|
541
|
+
## LOGPOINT_COUNTER_RESET
|
|
542
|
+
|
|
543
|
+
**Type:** success
|
|
544
|
+
|
|
545
|
+
Logpoint {{breakpointId}} execution counter reset. It can now execute {{maxExecutions}} more times.
|
|
546
|
+
|
|
547
|
+
---
|
|
548
|
+
|
|
549
|
+
## Execution Messages
|
|
550
|
+
|
|
551
|
+
## EXECUTION_PAUSED
|
|
552
|
+
|
|
553
|
+
**Type:** success
|
|
554
|
+
|
|
555
|
+
Execution paused
|
|
556
|
+
|
|
557
|
+
---
|
|
558
|
+
|
|
559
|
+
## EXECUTION_RESUMED
|
|
560
|
+
|
|
561
|
+
**Type:** success
|
|
562
|
+
|
|
563
|
+
Execution resumed
|
|
564
|
+
|
|
565
|
+
---
|
|
566
|
+
|
|
567
|
+
## EXECUTION_STEP_OVER
|
|
568
|
+
|
|
569
|
+
**Type:** success
|
|
570
|
+
|
|
571
|
+
Stepped over to next line
|
|
572
|
+
|
|
573
|
+
---
|
|
574
|
+
|
|
575
|
+
## EXECUTION_STEP_INTO
|
|
576
|
+
|
|
577
|
+
**Type:** success
|
|
578
|
+
|
|
579
|
+
Stepped into function
|
|
580
|
+
|
|
581
|
+
---
|
|
582
|
+
|
|
583
|
+
## EXECUTION_STEP_OUT
|
|
584
|
+
|
|
585
|
+
**Type:** success
|
|
586
|
+
|
|
587
|
+
Stepped out of function
|
|
588
|
+
|
|
589
|
+
---
|
|
590
|
+
|
|
591
|
+
## CALL_STACK_SUCCESS
|
|
592
|
+
|
|
593
|
+
**Type:** success
|
|
594
|
+
|
|
595
|
+
Call Stack ({{frameCount}} frames){{#pausedLocation}} - Paused at: {{pausedLocation}}{{/pausedLocation}}
|
|
596
|
+
|
|
597
|
+
---
|
|
598
|
+
|
|
599
|
+
## VARIABLES_SUCCESS
|
|
600
|
+
|
|
601
|
+
**Type:** success
|
|
602
|
+
|
|
603
|
+
Variables for call frame {{callFrameId}}: {{returnedCount}} of {{totalCount}} total at depth {{usedDepth}}{{#filter}} (filtered by: {{filter}}){{/filter}}{{#includeGlobal}} (includes global scope){{/includeGlobal}}
|
|
604
|
+
|
|
605
|
+
---
|
|
606
|
+
|
|
607
|
+
## VARIABLES_DEPTH_REDUCED
|
|
608
|
+
|
|
609
|
+
**Type:** warning
|
|
610
|
+
|
|
611
|
+
Variables for call frame {{callFrameId}}: {{totalCount}} total (depth reduced from {{requestedDepth}} to {{usedDepth}}){{#filter}} (filtered by: {{filter}}){{/filter}}
|
|
612
|
+
|
|
613
|
+
Variable names/types shown. To inspect at full depth:
|
|
614
|
+
- Use `filter` parameter (e.g., filter: "^myVar$") to narrow results
|
|
615
|
+
- Use `evaluateExpression` (e.g., expression: "myVar") for specific values
|
|
616
|
+
|
|
617
|
+
---
|
|
618
|
+
|
|
619
|
+
## VARIABLES_NAMES_ONLY
|
|
620
|
+
|
|
621
|
+
**Type:** warning
|
|
622
|
+
|
|
623
|
+
Variables for call frame {{callFrameId}}: {{totalCount}} total (names only, values exceed limit)
|
|
624
|
+
|
|
625
|
+
Variable names listed by scope. To inspect values:
|
|
626
|
+
- Use `filter` parameter (e.g., filter: "^myVar$") to get values for matching variables
|
|
627
|
+
- Use `evaluateExpression` (e.g., expression: "myVar") to evaluate directly
|
|
628
|
+
|
|
629
|
+
---
|
|
630
|
+
|
|
631
|
+
## VARIABLES_COUNTS_ONLY
|
|
632
|
+
|
|
633
|
+
**Type:** warning
|
|
634
|
+
|
|
635
|
+
Variables for call frame {{callFrameId}}: {{totalCount}} total (counts only, names exceed limit)
|
|
636
|
+
|
|
637
|
+
Variable counts per scope shown. Too many variables to list names. To inspect:
|
|
638
|
+
- Use `filter` parameter to narrow scope (e.g., filter: "config|state|user")
|
|
639
|
+
- Use `includeGlobal: false` to exclude global scope (often has 100+ built-ins)
|
|
640
|
+
- Use `evaluateExpression` to check a specific variable directly
|
|
641
|
+
|
|
642
|
+
---
|
|
643
|
+
|
|
644
|
+
## VARIABLES_FILTER_INSUFFICIENT
|
|
645
|
+
|
|
646
|
+
**Type:** warning
|
|
647
|
+
|
|
648
|
+
Variables for call frame {{callFrameId}}: {{totalCount}} variables match filter "{{filter}}" (still exceeds limit)
|
|
649
|
+
|
|
650
|
+
The filter matches too many variables. Try:
|
|
651
|
+
- A more specific filter pattern (e.g., filter: "^exactName$" instead of "name")
|
|
652
|
+
- Use `evaluateExpression` to inspect a specific variable directly
|
|
653
|
+
- Use `includeGlobal: false` if global scope variables are included
|
|
654
|
+
|
|
655
|
+
---
|
|
656
|
+
|
|
657
|
+
## EVALUATE_EXPRESSION_SUCCESS
|
|
658
|
+
|
|
659
|
+
**Type:** success
|
|
660
|
+
**Summary:** Expression evaluated successfully
|
|
661
|
+
|
|
662
|
+
Expression: {{expression}}, Context: {{context}}
|
|
663
|
+
|
|
664
|
+
Result:
|
|
665
|
+
{{result}}
|
|
666
|
+
|
|
667
|
+
---
|
|
668
|
+
|
|
669
|
+
## EVALUATE_EXPRESSION_FAILED
|
|
670
|
+
|
|
671
|
+
**Type:** error
|
|
672
|
+
**Code:** EVALUATION_FAILED
|
|
673
|
+
|
|
674
|
+
Failed to evaluate expression: {{error}}
|
|
675
|
+
|
|
676
|
+
**Expression:** `{{expression}}`
|
|
677
|
+
|
|
678
|
+
**Suggestions:**
|
|
679
|
+
- Check that the expression is valid JavaScript
|
|
680
|
+
- Ensure variables referenced exist in the current scope
|
|
681
|
+
- If evaluating in a specific frame, verify the call frame ID is valid with `getCallStack()`
|
|
682
|
+
|
|
683
|
+
---
|
|
684
|
+
|
|
685
|
+
## EVALUATE_EXPRESSION_EXCEPTION
|
|
686
|
+
|
|
687
|
+
**Type:** error
|
|
688
|
+
**Code:** EVALUATE_EXPRESSION_EXCEPTION
|
|
689
|
+
|
|
690
|
+
The evaluated expression threw {{errorType}}: {{errorMessage}}
|
|
691
|
+
|
|
692
|
+
**Expression:** `{{expression}}`
|
|
693
|
+
|
|
694
|
+
**Stack:**
|
|
695
|
+
{{stack}}
|
|
696
|
+
|
|
697
|
+
**Suggestions:**
|
|
698
|
+
- This is the expression's own runtime error, not a tool failure - fix the expression and try again
|
|
699
|
+
- A RangeError here usually means a call stack was exhausted (e.g. spreading a very large array into `Math.max`/`Math.min`) - reduce/chunk the data instead of spreading it all at once
|
|
700
|
+
|
|
701
|
+
---
|
|
702
|
+
|
|
703
|
+
## EVALUATE_CONTEXT_UNRESPONSIVE
|
|
704
|
+
|
|
705
|
+
**Type:** error
|
|
706
|
+
**Code:** EVALUATE_CONTEXT_UNRESPONSIVE
|
|
707
|
+
|
|
708
|
+
Evaluation on connection "{{connectionReason}}" did not respond within {{timeoutMs}}ms - the execution context may be unresponsive.
|
|
709
|
+
|
|
710
|
+
**Expression:** `{{expression}}`
|
|
711
|
+
|
|
712
|
+
**Suggestions:**
|
|
713
|
+
- The renderer/execution context may be wedged by the expression itself - try reloading the page or reconnecting
|
|
714
|
+
- If the expression returned a Promise, it may simply never settle (promises are awaited by default) - check the async work completes, or pass `awaitPromise: false` to inspect the Promise object itself
|
|
715
|
+
- Simplify the expression (e.g. avoid spreading very large arrays or deeply recursive calls) and retry
|
|
716
|
+
- Use `getChromeStatus()` or `listConnections()` to check whether the connection is still healthy
|
|
717
|
+
|
|
718
|
+
---
|
|
719
|
+
|
|
720
|
+
## EVALUATE_PROMISE_PENDING_WHILE_PAUSED
|
|
721
|
+
|
|
722
|
+
**Type:** error
|
|
723
|
+
**Code:** EVALUATE_PROMISE_PENDING_WHILE_PAUSED
|
|
724
|
+
|
|
725
|
+
Expression returned a pending Promise while the debugger is paused - the event loop is stopped, so the promise can never settle.
|
|
726
|
+
|
|
727
|
+
**Expression:** `{{expression}}`
|
|
728
|
+
|
|
729
|
+
**Suggestions:**
|
|
730
|
+
- Resume execution first (`execution({ action: 'resume' })`), then evaluate the async expression against the running page
|
|
731
|
+
- Promises that are already settled (e.g. an async result from before the pause) ARE resolved automatically - only genuinely pending work fails this way
|
|
732
|
+
- Pass `awaitPromise: false` to inspect the pending Promise object itself instead of its value
|
|
733
|
+
|
|
734
|
+
---
|
|
735
|
+
|
|
736
|
+
## NOT_PAUSED
|
|
737
|
+
|
|
738
|
+
**Type:** error
|
|
739
|
+
**Code:** NOT_PAUSED
|
|
740
|
+
|
|
741
|
+
Not currently paused at a breakpoint
|
|
742
|
+
|
|
743
|
+
**Suggestions:**
|
|
744
|
+
- Use `pause()` to pause execution
|
|
745
|
+
- Set a breakpoint with `setBreakpoint()` and trigger it
|
|
746
|
+
- Wait for execution to hit an existing breakpoint
|
|
747
|
+
|
|
748
|
+
---
|
|
749
|
+
|
|
750
|
+
## BREAKPOINT_ACKNOWLEDGED
|
|
751
|
+
|
|
752
|
+
**Type:** success
|
|
753
|
+
|
|
754
|
+
Breakpoint pause acknowledged at {{location}}
|
|
755
|
+
|
|
756
|
+
Other tools are now unblocked while execution remains paused. Use `execution({ action: 'resume' })` to continue execution.
|
|
757
|
+
|
|
758
|
+
---
|
|
759
|
+
|
|
760
|
+
## TIMEOUT_WAITING_FOR_PAUSE
|
|
761
|
+
|
|
762
|
+
**Type:** error
|
|
763
|
+
**Code:** TIMEOUT
|
|
764
|
+
|
|
765
|
+
Timeout waiting for execution to pause
|
|
766
|
+
|
|
767
|
+
**Suggestions:**
|
|
768
|
+
- The breakpoint may not be hit in the code path being executed
|
|
769
|
+
- Try increasing the timeout duration
|
|
770
|
+
- Verify the breakpoint is set at the correct location with `listBreakpoints()`
|
|
771
|
+
|
|
772
|
+
---
|
|
773
|
+
|
|
774
|
+
## Browser Automation Messages
|
|
775
|
+
|
|
776
|
+
## PAGE_NAVIGATE_SUCCESS
|
|
777
|
+
|
|
778
|
+
**Type:** success
|
|
779
|
+
**Summary:** Navigation complete
|
|
780
|
+
|
|
781
|
+
URL: {{url}}{{#title}}, Title: {{title}}{{/title}}{{#clickableElements}}
|
|
782
|
+
|
|
783
|
+
**Clickable elements:** {{clickableElements.total}} total ({{clickableElements.inViewport}} in viewport)
|
|
784
|
+
|
|
785
|
+
{{clickableElements.hint}}{{/clickableElements}}{{#console}}
|
|
786
|
+
|
|
787
|
+
**Console:** {{console.errors}} errors, {{console.warnings}} warnings{{#console.hint}} - {{console.hint}}{{/console.hint}}{{/console}}{{#network}}
|
|
788
|
+
|
|
789
|
+
**Network:** {{network.failed}} failed requests of {{network.total}} total - {{network.hint}}{{/network}}
|
|
790
|
+
|
|
791
|
+
---
|
|
792
|
+
|
|
793
|
+
## PAGE_GO_BACK_SUCCESS
|
|
794
|
+
|
|
795
|
+
**Type:** success
|
|
796
|
+
|
|
797
|
+
Navigated back{{#url}} to: {{url}}{{/url}}{{#clickableElements}}
|
|
798
|
+
|
|
799
|
+
**Clickable elements:** {{clickableElements.total}} total ({{clickableElements.inViewport}} in viewport){{/clickableElements}}{{#console}}
|
|
800
|
+
|
|
801
|
+
**Console:** {{console.errors}} errors, {{console.warnings}} warnings{{#console.hint}} - {{console.hint}}{{/console.hint}}{{/console}}{{#network}}
|
|
802
|
+
|
|
803
|
+
**Network:** {{network.failed}} failed requests of {{network.total}} total - {{network.hint}}{{/network}}
|
|
804
|
+
|
|
805
|
+
---
|
|
806
|
+
|
|
807
|
+
## PAGE_GO_FORWARD_SUCCESS
|
|
808
|
+
|
|
809
|
+
**Type:** success
|
|
810
|
+
|
|
811
|
+
Navigated forward{{#url}} to: {{url}}{{/url}}{{#clickableElements}}
|
|
812
|
+
|
|
813
|
+
**Clickable elements:** {{clickableElements.total}} total ({{clickableElements.inViewport}} in viewport){{/clickableElements}}{{#console}}
|
|
814
|
+
|
|
815
|
+
**Console:** {{console.errors}} errors, {{console.warnings}} warnings{{#console.hint}} - {{console.hint}}{{/console.hint}}{{/console}}{{#network}}
|
|
816
|
+
|
|
817
|
+
**Network:** {{network.failed}} failed requests of {{network.total}} total - {{network.hint}}{{/network}}
|
|
818
|
+
|
|
819
|
+
---
|
|
820
|
+
|
|
821
|
+
## PAGE_INFO_SUCCESS
|
|
822
|
+
|
|
823
|
+
**Type:** success
|
|
824
|
+
**Summary:** Page information
|
|
825
|
+
|
|
826
|
+
URL: {{url}}, Title: {{title}}
|
|
827
|
+
|
|
828
|
+
---
|
|
829
|
+
|
|
830
|
+
## PAGE_RELOAD_SUCCESS
|
|
831
|
+
|
|
832
|
+
**Type:** success
|
|
833
|
+
|
|
834
|
+
Page reloaded successfully{{#clickableElements}}
|
|
835
|
+
|
|
836
|
+
**Clickable elements:** {{clickableElements.total}} total ({{clickableElements.inViewport}} in viewport){{/clickableElements}}{{#console}}
|
|
837
|
+
|
|
838
|
+
**Console:** {{console.errors}} errors, {{console.warnings}} warnings{{#console.hint}} - {{console.hint}}{{/console.hint}}{{/console}}{{#network}}
|
|
839
|
+
|
|
840
|
+
**Network:** {{network.failed}} failed requests of {{network.total}} total - {{network.hint}}{{/network}}
|
|
841
|
+
|
|
842
|
+
---
|
|
843
|
+
|
|
844
|
+
## ELEMENT_NOT_FOUND
|
|
845
|
+
|
|
846
|
+
**Type:** error
|
|
847
|
+
**Code:** ELEMENT_NOT_FOUND
|
|
848
|
+
|
|
849
|
+
Element not found: `{{selector}}`
|
|
850
|
+
|
|
851
|
+
**Suggestions:**
|
|
852
|
+
- Verify the CSS selector is correct
|
|
853
|
+
- Use `querySelector()` to test if the element exists
|
|
854
|
+
- The element may not be visible or loaded yet - try waiting or reloading the page
|
|
855
|
+
|
|
856
|
+
---
|
|
857
|
+
|
|
858
|
+
## ELEMENT_CLICK_SUCCESS
|
|
859
|
+
|
|
860
|
+
**Type:** success
|
|
861
|
+
**Summary:** Element clicked
|
|
862
|
+
|
|
863
|
+
Selector: `{{selector}}`
|
|
864
|
+
|
|
865
|
+
---
|
|
866
|
+
|
|
867
|
+
## TEXT_TYPE_SUCCESS
|
|
868
|
+
|
|
869
|
+
**Type:** success
|
|
870
|
+
|
|
871
|
+
Text typed into `{{selector}}`: "{{text}}"
|
|
872
|
+
|
|
873
|
+
---
|
|
874
|
+
|
|
875
|
+
## KEY_PRESS_SUCCESS
|
|
876
|
+
|
|
877
|
+
**Type:** success
|
|
878
|
+
|
|
879
|
+
Key pressed: `{{key}}`
|
|
880
|
+
|
|
881
|
+
---
|
|
882
|
+
|
|
883
|
+
## ELEMENT_HOVER_SUCCESS
|
|
884
|
+
|
|
885
|
+
**Type:** success
|
|
886
|
+
|
|
887
|
+
Hovered over element: `{{selector}}`
|
|
888
|
+
|
|
889
|
+
---
|
|
890
|
+
|
|
891
|
+
## ELEMENT_FOCUS_SUCCESS
|
|
892
|
+
|
|
893
|
+
**Type:** success
|
|
894
|
+
**Summary:** Element focused
|
|
895
|
+
|
|
896
|
+
{{description}}, Selector: {{selector}}{{#nextTabbable}}
|
|
897
|
+
|
|
898
|
+
Next tab: {{nextTabbable}}{{/nextTabbable}}{{#warning}}
|
|
899
|
+
|
|
900
|
+
Warning: {{warning}}{{/warning}}
|
|
901
|
+
|
|
902
|
+
---
|
|
903
|
+
|
|
904
|
+
## FOCUS_NEXT_SUCCESS
|
|
905
|
+
|
|
906
|
+
**Type:** success
|
|
907
|
+
**Summary:** Tabbed forward{{#count}} {{count}} times{{/count}}
|
|
908
|
+
|
|
909
|
+
{{description}}, Selector: {{selector}}{{#nextTabbable}}
|
|
910
|
+
|
|
911
|
+
Next tab: {{nextTabbable}}{{/nextTabbable}}
|
|
912
|
+
|
|
913
|
+
---
|
|
914
|
+
|
|
915
|
+
## FOCUS_PREVIOUS_SUCCESS
|
|
916
|
+
|
|
917
|
+
**Type:** success
|
|
918
|
+
**Summary:** Tabbed backward{{#count}} {{count}} times{{/count}}
|
|
919
|
+
|
|
920
|
+
{{description}}, Selector: {{selector}}{{#nextTabbable}}
|
|
921
|
+
|
|
922
|
+
Next tab: {{nextTabbable}}{{/nextTabbable}}
|
|
923
|
+
|
|
924
|
+
---
|
|
925
|
+
|
|
926
|
+
## INVALID_ACTION
|
|
927
|
+
|
|
928
|
+
**Type:** error
|
|
929
|
+
**Code:** INVALID_ACTION
|
|
930
|
+
|
|
931
|
+
Invalid action: {{action}}
|
|
932
|
+
|
|
933
|
+
**Valid actions:** {{validActions}}
|
|
934
|
+
|
|
935
|
+
---
|
|
936
|
+
|
|
937
|
+
## ELEMENT_CLICK_WARNING
|
|
938
|
+
|
|
939
|
+
**Type:** warning
|
|
940
|
+
|
|
941
|
+
Element `{{selector}}` was clicked, but may not have a click handler attached. Verify the expected action occurred.
|
|
942
|
+
|
|
943
|
+
---
|
|
944
|
+
|
|
945
|
+
## ACTION_PAUSED_AT_BREAKPOINT
|
|
946
|
+
|
|
947
|
+
**Type:** success
|
|
948
|
+
|
|
949
|
+
{{action}} on `{{selector}}` triggered breakpoint at {{url}}:{{lineNumber}}
|
|
950
|
+
|
|
951
|
+
**Next steps:**
|
|
952
|
+
- Use `getCallStack()` to see the full call stack
|
|
953
|
+
- Use `getVariables()` to inspect variables at this location
|
|
954
|
+
- Use `stepOver()`, `stepInto()`, or `stepOut()` to continue debugging
|
|
955
|
+
- Use `resume()` to continue execution
|
|
956
|
+
|
|
957
|
+
---
|
|
958
|
+
|
|
959
|
+
## ELEMENT_BLOCKED_BY_MODAL
|
|
960
|
+
|
|
961
|
+
**Type:** error
|
|
962
|
+
**Code:** ELEMENT_BLOCKED
|
|
963
|
+
|
|
964
|
+
Cannot interact with element `{{selector}}` - blocked by {{modalDescription}}
|
|
965
|
+
|
|
966
|
+
**Modal details:**
|
|
967
|
+
- Type: {{modalType}}
|
|
968
|
+
- Selector: `{{modalSelector}}`
|
|
969
|
+
- Available dismiss strategies: {{availableStrategies}}
|
|
970
|
+
|
|
971
|
+
**Suggestions:**
|
|
972
|
+
- Use `dismissModal()` tool to remove the blocking modal first
|
|
973
|
+
- Enable `handleModals: true` parameter to automatically dismiss modals
|
|
974
|
+
- Use `detectModals()` to see all blocking elements on the page
|
|
975
|
+
|
|
976
|
+
{{#suggestion}}
|
|
977
|
+
**Hint:** {{suggestion}}
|
|
978
|
+
{{/suggestion}}
|
|
979
|
+
|
|
980
|
+
---
|
|
981
|
+
|
|
982
|
+
## SCREENSHOT_SAVED
|
|
983
|
+
|
|
984
|
+
**Type:** success
|
|
985
|
+
**Summary:** Screenshot saved
|
|
986
|
+
|
|
987
|
+
Path: {{filepath}}, Size: {{fileSize}}
|
|
988
|
+
|
|
989
|
+
---
|
|
990
|
+
|
|
991
|
+
## DOM_SNAPSHOT_SUCCESS
|
|
992
|
+
|
|
993
|
+
**Type:** success
|
|
994
|
+
|
|
995
|
+
DOM snapshot retrieved (depth: {{depth}})
|
|
996
|
+
|
|
997
|
+
---
|
|
998
|
+
|
|
999
|
+
## Monitoring Messages
|
|
1000
|
+
|
|
1001
|
+
## CONSOLE_MONITORING_ENABLED
|
|
1002
|
+
|
|
1003
|
+
**Type:** info
|
|
1004
|
+
|
|
1005
|
+
Console monitoring auto-enabled. Page auto-reloaded to capture initial logs.
|
|
1006
|
+
|
|
1007
|
+
---
|
|
1008
|
+
|
|
1009
|
+
## CONSOLE_CLEARED
|
|
1010
|
+
|
|
1011
|
+
**Type:** success
|
|
1012
|
+
|
|
1013
|
+
Console cleared successfully ({{count}} messages removed)
|
|
1014
|
+
|
|
1015
|
+
---
|
|
1016
|
+
|
|
1017
|
+
## CONSOLE_MESSAGES_LIST
|
|
1018
|
+
|
|
1019
|
+
**Type:** success
|
|
1020
|
+
**Summary:** Console messages retrieved
|
|
1021
|
+
|
|
1022
|
+
Count: {{count}} of {{totalCount}} total{{#type}} (filtered by type: {{type}}){{/type}}
|
|
1023
|
+
|
|
1024
|
+
---
|
|
1025
|
+
|
|
1026
|
+
## CONSOLE_MESSAGE_DETAIL
|
|
1027
|
+
|
|
1028
|
+
**Type:** success
|
|
1029
|
+
|
|
1030
|
+
Console message [{{id}}] - Type: {{type}}, Timestamp: {{timestamp}}
|
|
1031
|
+
Text: {{text}}
|
|
1032
|
+
|
|
1033
|
+
---
|
|
1034
|
+
|
|
1035
|
+
## CONSOLE_MESSAGES_RECENT
|
|
1036
|
+
|
|
1037
|
+
**Type:** success
|
|
1038
|
+
|
|
1039
|
+
Recent Console Messages: {{count}} of {{requestedCount}} requested ({{totalCount}} total){{#type}} (filtered by type: {{type}}){{/type}}
|
|
1040
|
+
|
|
1041
|
+
---
|
|
1042
|
+
|
|
1043
|
+
## CONSOLE_SEARCH_RESULTS
|
|
1044
|
+
|
|
1045
|
+
**Type:** success
|
|
1046
|
+
|
|
1047
|
+
Console Log Search: {{matchCount}} matches for pattern "{{pattern}}"{{#flags}} (flags: {{flags}}){{/flags}}{{#type}} (type: {{type}}){{/type}} out of {{totalSearched}} searched
|
|
1048
|
+
|
|
1049
|
+
---
|
|
1050
|
+
|
|
1051
|
+
## NETWORK_MONITORING_ENABLED
|
|
1052
|
+
|
|
1053
|
+
**Type:** success
|
|
1054
|
+
|
|
1055
|
+
Network monitoring enabled
|
|
1056
|
+
|
|
1057
|
+
---
|
|
1058
|
+
|
|
1059
|
+
## NETWORK_MONITORING_DISABLED
|
|
1060
|
+
|
|
1061
|
+
**Type:** success
|
|
1062
|
+
|
|
1063
|
+
Network monitoring disabled
|
|
1064
|
+
|
|
1065
|
+
---
|
|
1066
|
+
|
|
1067
|
+
## NETWORK_CONDITIONS_SET
|
|
1068
|
+
|
|
1069
|
+
**Type:** success
|
|
1070
|
+
|
|
1071
|
+
Network conditions set to **{{preset}}**
|
|
1072
|
+
|
|
1073
|
+
---
|
|
1074
|
+
|
|
1075
|
+
## NETWORK_REQUESTS_LIST
|
|
1076
|
+
|
|
1077
|
+
**Type:** success
|
|
1078
|
+
**Summary:** Network requests retrieved
|
|
1079
|
+
|
|
1080
|
+
Count: {{count}} of {{totalCount}} total{{#resourceType}} (filtered by type: {{resourceType}}){{/resourceType}}
|
|
1081
|
+
|
|
1082
|
+
---
|
|
1083
|
+
|
|
1084
|
+
## NETWORK_REQUEST_DETAIL
|
|
1085
|
+
|
|
1086
|
+
**Type:** success
|
|
1087
|
+
|
|
1088
|
+
Network Request [{{id}}]: {{method}} {{url}}
|
|
1089
|
+
Resource Type: {{resourceType}}, Status: {{status}}{{#failed}}
|
|
1090
|
+
FAILED: {{errorText}}{{/failed}}
|
|
1091
|
+
|
|
1092
|
+
---
|
|
1093
|
+
|
|
1094
|
+
## NETWORK_SEARCH_RESULTS
|
|
1095
|
+
|
|
1096
|
+
**Type:** success
|
|
1097
|
+
|
|
1098
|
+
Network Request Search: {{matchCount}} matches for pattern "{{pattern}}"{{#flags}} (flags: {{flags}}){{/flags}}{{#filtersText}} (filters: {{filtersText}}){{/filtersText}} out of {{totalSearched}} searched
|
|
1099
|
+
|
|
1100
|
+
---
|
|
1101
|
+
|
|
1102
|
+
## NETWORK_REQUEST_NOT_FOUND
|
|
1103
|
+
|
|
1104
|
+
**Type:** error
|
|
1105
|
+
**Code:** REQUEST_NOT_FOUND
|
|
1106
|
+
|
|
1107
|
+
Network request {{id}} not found
|
|
1108
|
+
|
|
1109
|
+
**Suggestions:**
|
|
1110
|
+
- Use `listNetworkRequests()` to see all captured requests
|
|
1111
|
+
- Ensure network monitoring was enabled before the request was made
|
|
1112
|
+
- The request may have occurred before monitoring started
|
|
1113
|
+
|
|
1114
|
+
---
|
|
1115
|
+
|
|
1116
|
+
## Validation Errors
|
|
1117
|
+
|
|
1118
|
+
## SCRIPT_NOT_FOUND
|
|
1119
|
+
|
|
1120
|
+
**Type:** error
|
|
1121
|
+
**Code:** SCRIPT_NOT_FOUND
|
|
1122
|
+
|
|
1123
|
+
Script not found for URL: {{url}}
|
|
1124
|
+
|
|
1125
|
+
**Suggestions:**
|
|
1126
|
+
- Verify the URL is correct (use `file://` for local files)
|
|
1127
|
+
- Ensure the script has been loaded by the browser
|
|
1128
|
+
- For dynamically loaded scripts, wait for them to load before setting breakpoints
|
|
1129
|
+
- Use `searchCode()` to find available scripts
|
|
1130
|
+
|
|
1131
|
+
---
|
|
1132
|
+
|
|
1133
|
+
## LINE_NOT_FOUND
|
|
1134
|
+
|
|
1135
|
+
**Type:** error
|
|
1136
|
+
**Code:** LINE_NOT_FOUND
|
|
1137
|
+
|
|
1138
|
+
Line {{lineNumber}} not found in {{url}}
|
|
1139
|
+
|
|
1140
|
+
**Suggestions:**
|
|
1141
|
+
- Verify the line number exists in the source file
|
|
1142
|
+
- If using source maps, check that they're loaded correctly
|
|
1143
|
+
- The file may have been modified - reload the page
|
|
1144
|
+
|
|
1145
|
+
---
|
|
1146
|
+
|
|
1147
|
+
## CALL_FRAME_NOT_FOUND
|
|
1148
|
+
|
|
1149
|
+
**Type:** error
|
|
1150
|
+
**Code:** FRAME_NOT_FOUND
|
|
1151
|
+
|
|
1152
|
+
Call frame {{callFrameId}} not found
|
|
1153
|
+
|
|
1154
|
+
**Suggestions:**
|
|
1155
|
+
- Use `getCallStack()` to get valid call frame IDs
|
|
1156
|
+
- Ensure execution is still paused at a breakpoint
|
|
1157
|
+
- The call stack may have changed if execution resumed
|
|
1158
|
+
|
|
1159
|
+
---
|
|
1160
|
+
|
|
1161
|
+
## INVALID_FILTER
|
|
1162
|
+
|
|
1163
|
+
**Type:** error
|
|
1164
|
+
**Code:** INVALID_REGEX
|
|
1165
|
+
|
|
1166
|
+
Invalid filter regex: {{filter}}
|
|
1167
|
+
|
|
1168
|
+
{{error}}
|
|
1169
|
+
|
|
1170
|
+
**Suggestions:**
|
|
1171
|
+
- Check regex syntax (e.g., escape special characters like `[`, `]`, `(`, `)`)
|
|
1172
|
+
- Test your regex at regex101.com before using
|
|
1173
|
+
|
|
1174
|
+
---
|
|
1175
|
+
|
|
1176
|
+
## System Errors
|
|
1177
|
+
|
|
1178
|
+
## PLATFORM_UNSUPPORTED
|
|
1179
|
+
|
|
1180
|
+
**Type:** error
|
|
1181
|
+
**Code:** PLATFORM_UNSUPPORTED
|
|
1182
|
+
|
|
1183
|
+
Unsupported platform: {{platform}}
|
|
1184
|
+
|
|
1185
|
+
**Note:** Chrome launching is only supported on macOS, Windows, and Linux.
|
|
1186
|
+
|
|
1187
|
+
---
|
|
1188
|
+
|
|
1189
|
+
## CHROME_SPAWN_FAILED
|
|
1190
|
+
|
|
1191
|
+
**Type:** error
|
|
1192
|
+
**Code:** SPAWN_FAILED
|
|
1193
|
+
|
|
1194
|
+
Failed to spawn Chrome process: {{error}}
|
|
1195
|
+
|
|
1196
|
+
**Suggestions:**
|
|
1197
|
+
- Verify Chrome is installed on your system
|
|
1198
|
+
- Check that you have permission to execute Chrome
|
|
1199
|
+
- On macOS: Chrome should be at `/Applications/Google Chrome.app`
|
|
1200
|
+
- On Linux: Chrome/Chromium should be in your PATH
|
|
1201
|
+
|
|
1202
|
+
---
|
|
1203
|
+
|
|
1204
|
+
## PUPPETEER_NOT_CONNECTED
|
|
1205
|
+
|
|
1206
|
+
**Type:** error
|
|
1207
|
+
**Code:** PUPPETEER_NOT_CONNECTED
|
|
1208
|
+
|
|
1209
|
+
Not connected to browser. This operation requires browser automation support.
|
|
1210
|
+
|
|
1211
|
+
**Suggestions:**
|
|
1212
|
+
1. Launch Chrome with `launchChrome()` (automatically enables browser automation)
|
|
1213
|
+
2. Or connect to Chrome: `connectDebugger({ host: 'localhost', port: 9222 })`
|
|
1214
|
+
|
|
1215
|
+
**Note:** Browser automation features (DOM interaction, screenshots, navigation) are only available when connected to Chrome, not Node.js.
|
|
1216
|
+
|
|
1217
|
+
---
|
|
1218
|
+
|
|
1219
|
+
## PAGE_NOT_LOADED
|
|
1220
|
+
|
|
1221
|
+
**Type:** error
|
|
1222
|
+
**Code:** PAGE_NOT_LOADED
|
|
1223
|
+
|
|
1224
|
+
No page loaded. The tool `{{toolName}}` requires a web page to be loaded first.
|
|
1225
|
+
|
|
1226
|
+
**Suggestions:**
|
|
1227
|
+
1. Navigate to a URL with `navigateTo({ url: 'https://example.com' })`
|
|
1228
|
+
2. Or launch Chrome with a URL: `launchChrome({ url: 'https://example.com' })`
|
|
1229
|
+
|
|
1230
|
+
**Note:** Chrome starts with a blank page by default. You must navigate to a URL before using tools that interact with page content.
|
|
1231
|
+
|
|
1232
|
+
---
|
|
1233
|
+
|
|
1234
|
+
## NODEJS_NOT_SUPPORTED
|
|
1235
|
+
|
|
1236
|
+
**Type:** error
|
|
1237
|
+
**Code:** FEATURE_NOT_SUPPORTED
|
|
1238
|
+
|
|
1239
|
+
This feature is not supported for Node.js debugging ({{feature}})
|
|
1240
|
+
|
|
1241
|
+
**Available for Node.js:**
|
|
1242
|
+
- Breakpoints and debugging
|
|
1243
|
+
- Code execution and evaluation
|
|
1244
|
+
- Call stack inspection
|
|
1245
|
+
- Console log monitoring
|
|
1246
|
+
|
|
1247
|
+
**Not available for Node.js:**
|
|
1248
|
+
- Browser automation (DOM, screenshots, navigation)
|
|
1249
|
+
- Network request monitoring
|
|
1250
|
+
|
|
1251
|
+
**Suggestion:** Use `launchChrome()` if you need browser automation features.
|
|
1252
|
+
|
|
1253
|
+
---
|
|
1254
|
+
|
|
1255
|
+
## EXECUTION_CONTEXT_DESTROYED
|
|
1256
|
+
|
|
1257
|
+
**Type:** error
|
|
1258
|
+
**Code:** CONTEXT_DESTROYED
|
|
1259
|
+
|
|
1260
|
+
Execution context was destroyed (page may have navigated or reloaded)
|
|
1261
|
+
|
|
1262
|
+
**Suggestions:**
|
|
1263
|
+
- Reload the page and try again
|
|
1264
|
+
- Reconnect to the debugger with `connectDebugger()`
|
|
1265
|
+
- Check if the page navigated unexpectedly
|
|
1266
|
+
|
|
1267
|
+
---
|
|
1268
|
+
|
|
1269
|
+
## SESSION_CLOSED
|
|
1270
|
+
|
|
1271
|
+
**Type:** error
|
|
1272
|
+
**Code:** SESSION_CLOSED
|
|
1273
|
+
|
|
1274
|
+
Debugger session closed unexpectedly
|
|
1275
|
+
|
|
1276
|
+
**Suggestions:**
|
|
1277
|
+
- The browser or Node.js process may have crashed or been closed
|
|
1278
|
+
- Use `getDebuggerStatus()` to check connection status
|
|
1279
|
+
- Reconnect with `connectDebugger()` or relaunch with `launchChrome()`
|
|
1280
|
+
|
|
1281
|
+
---
|
|
1282
|
+
|
|
1283
|
+
## COOKIE_SET_SUCCESS
|
|
1284
|
+
|
|
1285
|
+
**Type:** success
|
|
1286
|
+
|
|
1287
|
+
Cookie set: `{{name}}`
|
|
1288
|
+
|
|
1289
|
+
---
|
|
1290
|
+
|
|
1291
|
+
## LOCAL_STORAGE_SET_SUCCESS
|
|
1292
|
+
|
|
1293
|
+
**Type:** success
|
|
1294
|
+
|
|
1295
|
+
localStorage item set: `{{key}}` = "{{value}}"
|
|
1296
|
+
|
|
1297
|
+
---
|
|
1298
|
+
|
|
1299
|
+
## SESSION_STORAGE_SET_SUCCESS
|
|
1300
|
+
|
|
1301
|
+
**Type:** success
|
|
1302
|
+
|
|
1303
|
+
sessionStorage item set: `{{key}}` = "{{value}}"
|
|
1304
|
+
|
|
1305
|
+
---
|
|
1306
|
+
|
|
1307
|
+
## STORAGE_KEY_REMOVED
|
|
1308
|
+
|
|
1309
|
+
**Type:** success
|
|
1310
|
+
|
|
1311
|
+
{{storageType}} key removed: `{{key}}`{{existedNote}}
|
|
1312
|
+
|
|
1313
|
+
---
|
|
1314
|
+
|
|
1315
|
+
## IDB_PUT_SUCCESS
|
|
1316
|
+
|
|
1317
|
+
**Type:** success
|
|
1318
|
+
|
|
1319
|
+
IndexedDB record written to `{{db}}` / `{{store}}` (key: {{key}})
|
|
1320
|
+
|
|
1321
|
+
---
|
|
1322
|
+
|
|
1323
|
+
## IDB_DELETE_SUCCESS
|
|
1324
|
+
|
|
1325
|
+
**Type:** success
|
|
1326
|
+
|
|
1327
|
+
IndexedDB record deleted from `{{db}}` / `{{store}}` (key: {{key}}){{existedNote}}
|
|
1328
|
+
|
|
1329
|
+
---
|
|
1330
|
+
|
|
1331
|
+
## INDEXEDDB_ERROR
|
|
1332
|
+
|
|
1333
|
+
**Type:** error
|
|
1334
|
+
**Code:** INDEXEDDB_ERROR
|
|
1335
|
+
|
|
1336
|
+
IndexedDB operation failed ({{action}}): {{error}}
|
|
1337
|
+
|
|
1338
|
+
**Suggestions:**
|
|
1339
|
+
- Use `storage({ action: "idbListDatabases" })` to confirm the database name
|
|
1340
|
+
- Use `storage({ action: "idbListStores", db: "..." })` to confirm the object store name
|
|
1341
|
+
- Object stores with a `keyPath` take their key from inside `record`; do not pass `key`
|
|
1342
|
+
- IndexedDB is origin-scoped, so navigate to the right origin before reading
|
|
1343
|
+
|
|
1344
|
+
---
|
|
1345
|
+
|
|
1346
|
+
## STORAGE_CLEARED
|
|
1347
|
+
|
|
1348
|
+
**Type:** success
|
|
1349
|
+
|
|
1350
|
+
Storage cleared successfully ({{types}})
|
|
1351
|
+
|
|
1352
|
+
---
|
|
1353
|
+
|
|
1354
|
+
## Variable Templates
|
|
1355
|
+
|
|
1356
|
+
Common variables used across messages:
|
|
1357
|
+
|
|
1358
|
+
- `{{port}}` - Port number (e.g., 9222)
|
|
1359
|
+
- `{{host}}` - Hostname (e.g., localhost)
|
|
1360
|
+
- `{{url}}` - File or page URL
|
|
1361
|
+
- `{{lineNumber}}` - Line number in source code
|
|
1362
|
+
- `{{columnNumber}}` - Column number in source code (optional)
|
|
1363
|
+
- `{{breakpointId}}` - Unique breakpoint identifier
|
|
1364
|
+
- `{{reference}}` - Connection reference name
|
|
1365
|
+
- `{{runtimeType}}` - 'chrome' or 'node'
|
|
1366
|
+
- `{{error}}` - Error message or details
|
|
1367
|
+
- `{{selector}}` - CSS selector string
|
|
1368
|
+
- `{{filepath}}` - File system path
|
|
1369
|
+
- `{{fileSize}}` - Human-readable file size
|
|
1370
|
+
- `{{id}}` - Generic identifier (request ID, log ID, etc.)
|
|
1371
|
+
- `{{count}}` - Numeric count
|
|
1372
|
+
- `{{logMessage}}` - Logpoint message template
|
|
1373
|
+
- `{{maxExecutions}}` - Maximum execution count for logpoints
|
|
1374
|
+
- `{{executionCount}}` - Current execution count
|
|
1375
|
+
- `{{logs}}` - Formatted log output
|
|
1376
|
+
- `{{feature}}` - Feature name
|
|
1377
|
+
- `{{platform}}` - Operating system platform
|
|
1378
|
+
- `{{types}}` - List of storage types
|
|
1379
|
+
- `{{depth}}` - DOM traversal depth
|
|
1380
|
+
- `{{sampleOutput}}` - Example output from validation
|
|
1381
|
+
- `{{newReference}}` - New tab reference name
|
|
1382
|
+
- `{{oldReference}}` - Old tab reference name
|
|
1383
|
+
- `{{closedReference}}` - Closed tab reference
|
|
1384
|
+
- `{{newActiveReference}}` - New active tab reference
|
|
1385
|
+
|
|
1386
|
+
---
|
|
1387
|
+
|
|
1388
|
+
## Tab Management Messages
|
|
1389
|
+
|
|
1390
|
+
## TAB_CREATE_SUCCESS
|
|
1391
|
+
|
|
1392
|
+
**Type:** success
|
|
1393
|
+
**Summary:** New tab created and connected
|
|
1394
|
+
|
|
1395
|
+
Title: {{title}}, URL: {{url}}{{#consoleStats}}
|
|
1396
|
+
|
|
1397
|
+
Console: {{consoleStats}}{{/consoleStats}}
|
|
1398
|
+
|
|
1399
|
+
---
|
|
1400
|
+
|
|
1401
|
+
## TAB_LIST_EMPTY
|
|
1402
|
+
|
|
1403
|
+
**Type:** info
|
|
1404
|
+
**Summary:** No Chrome tabs open
|
|
1405
|
+
|
|
1406
|
+
Use action "create" to create a new tab.
|
|
1407
|
+
|
|
1408
|
+
---
|
|
1409
|
+
|
|
1410
|
+
## TAB_LIST_SUCCESS
|
|
1411
|
+
|
|
1412
|
+
**Type:** list
|
|
1413
|
+
**Summary:** {{count}} open tab(s)
|
|
1414
|
+
|
|
1415
|
+
{{tabList}}
|
|
1416
|
+
|
|
1417
|
+
Tip: Use action "switch" to switch tabs, or "create" to open a new one.
|
|
1418
|
+
|
|
1419
|
+
---
|
|
1420
|
+
|
|
1421
|
+
## TAB_CREATE_FAILED
|
|
1422
|
+
|
|
1423
|
+
**Type:** error
|
|
1424
|
+
**Code:** TAB_CREATE_FAILED
|
|
1425
|
+
|
|
1426
|
+
Failed to create new tab: {{error}}
|
|
1427
|
+
|
|
1428
|
+
**Suggestions:**
|
|
1429
|
+
- Ensure a Chrome browser is already running (use `launchChrome` first)
|
|
1430
|
+
- Check that the browser connection is still active
|
|
1431
|
+
|
|
1432
|
+
---
|
|
1433
|
+
|
|
1434
|
+
## TAB_RENAME_SUCCESS
|
|
1435
|
+
|
|
1436
|
+
**Type:** success
|
|
1437
|
+
**Summary:** Tab renamed
|
|
1438
|
+
|
|
1439
|
+
Old: {{oldReference}}, New: {{newReference}}
|
|
1440
|
+
|
|
1441
|
+
---
|
|
1442
|
+
|
|
1443
|
+
## TAB_SWITCH_SUCCESS
|
|
1444
|
+
|
|
1445
|
+
**Type:** success
|
|
1446
|
+
**Summary:** Switched to tab
|
|
1447
|
+
|
|
1448
|
+
Title: {{title}}, URL: {{url}}
|
|
1449
|
+
|
|
1450
|
+
---
|
|
1451
|
+
|
|
1452
|
+
## TAB_CLOSE_SUCCESS
|
|
1453
|
+
|
|
1454
|
+
**Type:** success
|
|
1455
|
+
**Summary:** Tab closed
|
|
1456
|
+
|
|
1457
|
+
New active: {{newActiveReference}}
|
|
1458
|
+
|
|
1459
|
+
---
|
|
1460
|
+
|
|
1461
|
+
## TAB_CLOSE_FAILED
|
|
1462
|
+
|
|
1463
|
+
**Type:** error
|
|
1464
|
+
**Code:** TAB_CLOSE_FAILED
|
|
1465
|
+
|
|
1466
|
+
Failed to close tab: {{reference}}
|
|
1467
|
+
|
|
1468
|
+
**Suggestions:**
|
|
1469
|
+
- Verify the reference is correct using `listTabs()`
|
|
1470
|
+
- The tab may have already been closed
|
|
1471
|
+
|
|
1472
|
+
---
|
|
1473
|
+
|
|
1474
|
+
## DEBUG_LOGGING_ENABLED
|
|
1475
|
+
|
|
1476
|
+
**Type:** success
|
|
1477
|
+
**Code:** DEBUG_LOGGING_ENABLED
|
|
1478
|
+
|
|
1479
|
+
{{message}}
|
|
1480
|
+
|
|
1481
|
+
Debug logs will be written to `.cdp-tools/logs/debug.log` and visible in the MCP server's stderr output.
|
|
1482
|
+
|
|
1483
|
+
---
|
|
1484
|
+
|
|
1485
|
+
## DEBUG_LOGGING_DISABLED
|
|
1486
|
+
|
|
1487
|
+
**Type:** success
|
|
1488
|
+
**Code:** DEBUG_LOGGING_DISABLED
|
|
1489
|
+
|
|
1490
|
+
{{message}}
|
|
1491
|
+
|
|
1492
|
+
Debug logging is now disabled. No logs will be written.
|
|
1493
|
+
|
|
1494
|
+
---
|
|
1495
|
+
|
|
1496
|
+
## DEBUG_LOGGING_STATUS
|
|
1497
|
+
|
|
1498
|
+
**Type:** success
|
|
1499
|
+
**Code:** DEBUG_LOGGING_STATUS
|
|
1500
|
+
|
|
1501
|
+
Debug logging is currently **{{status}}**.
|
|
1502
|
+
{{#enabled}}
|
|
1503
|
+
Logs are being written to: `{{logFile}}`
|
|
1504
|
+
{{/enabled}}
|
|
1505
|
+
|
|
1506
|
+
---
|
|
1507
|
+
|
|
1508
|
+
## FILE_DOWNLOADED
|
|
1509
|
+
|
|
1510
|
+
**Type:** success
|
|
1511
|
+
**Code:** FILE_DOWNLOADED
|
|
1512
|
+
|
|
1513
|
+
File downloaded successfully from `{{url}}`
|
|
1514
|
+
|
|
1515
|
+
Saved to: `{{filepath}}`
|
|
1516
|
+
Size: {{size}}
|
|
1517
|
+
|
|
1518
|
+
---
|
|
1519
|
+
|
|
1520
|
+
## FILE_DOWNLOADED_OVERWROTE
|
|
1521
|
+
|
|
1522
|
+
**Type:** success
|
|
1523
|
+
**Code:** FILE_DOWNLOADED_OVERWROTE
|
|
1524
|
+
|
|
1525
|
+
File downloaded and **overwrote existing file** at `{{filepath}}`
|
|
1526
|
+
|
|
1527
|
+
Downloaded from: `{{url}}`
|
|
1528
|
+
Size: {{size}}
|
|
1529
|
+
|
|
1530
|
+
---
|
|
1531
|
+
|
|
1532
|
+
## FILE_ALREADY_EXISTS
|
|
1533
|
+
|
|
1534
|
+
**Type:** error
|
|
1535
|
+
**Code:** FILE_ALREADY_EXISTS
|
|
1536
|
+
|
|
1537
|
+
**ERROR:** A file named `{{filename}}` already exists at this location.
|
|
1538
|
+
|
|
1539
|
+
**Existing file:**
|
|
1540
|
+
- Path: `{{filepath}}`
|
|
1541
|
+
- Size: {{existingSize}}
|
|
1542
|
+
- Last modified: {{existingModified}}
|
|
1543
|
+
|
|
1544
|
+
**New file from `{{url}}`:**
|
|
1545
|
+
- Size: {{newSize}}
|
|
1546
|
+
|
|
1547
|
+
Please choose a different, more descriptive filename or set `overwriteIfExists: true` to replace the existing file.
|
|
1548
|
+
|
|
1549
|
+
---
|
|
1550
|
+
|
|
1551
|
+
## CANNOT_OVERWRITE_NONEXISTENT
|
|
1552
|
+
|
|
1553
|
+
**Type:** error
|
|
1554
|
+
**Code:** CANNOT_OVERWRITE_NONEXISTENT
|
|
1555
|
+
|
|
1556
|
+
**ERROR:** Cannot set `overwriteIfExists: true` for a file that doesn't exist yet.
|
|
1557
|
+
|
|
1558
|
+
The file `{{filename}}` does not exist at `{{filepath}}`.
|
|
1559
|
+
|
|
1560
|
+
Remove the `overwriteIfExists` parameter (it defaults to false) for new downloads.
|
|
1561
|
+
|
|
1562
|
+
---
|
|
1563
|
+
|
|
1564
|
+
## FILE_DOWNLOAD_FAILED
|
|
1565
|
+
|
|
1566
|
+
**Type:** error
|
|
1567
|
+
**Code:** FILE_DOWNLOAD_FAILED
|
|
1568
|
+
|
|
1569
|
+
Failed to download file from `{{url}}`
|
|
1570
|
+
|
|
1571
|
+
{{#status}}HTTP {{status}}: {{statusText}}{{/status}}
|
|
1572
|
+
{{#error}}Error: {{error}}{{/error}}
|
|
1573
|
+
|
|
1574
|
+
**Suggestions:**
|
|
1575
|
+
- Verify the URL is correct and accessible
|
|
1576
|
+
- Check your network connection
|
|
1577
|
+
- Ensure the server is responding
|
|
1578
|
+
|
|
1579
|
+
---
|
|
1580
|
+
|
|
1581
|
+
## INVALID_FILENAME
|
|
1582
|
+
|
|
1583
|
+
**Type:** error
|
|
1584
|
+
**Code:** INVALID_FILENAME
|
|
1585
|
+
|
|
1586
|
+
**ERROR:** Invalid filename `{{filename}}`
|
|
1587
|
+
|
|
1588
|
+
Reason: {{reason}}
|
|
1589
|
+
|
|
1590
|
+
Please use a valid filename without path separators or special characters.
|
|
1591
|
+
|
|
1592
|
+
---
|
|
1593
|
+
|
|
1594
|
+
## FILE_TOO_LARGE
|
|
1595
|
+
|
|
1596
|
+
**Type:** error
|
|
1597
|
+
**Code:** FILE_TOO_LARGE
|
|
1598
|
+
|
|
1599
|
+
**ERROR:** File is too large to download
|
|
1600
|
+
|
|
1601
|
+
The file at `{{url}}` is {{size}}, which exceeds the maximum allowed size of {{maxSize}}.
|
|
1602
|
+
|
|
1603
|
+
For security and performance reasons, files larger than {{maxSize}} cannot be downloaded automatically.
|
|
1604
|
+
|
|
1605
|
+
---
|
|
1606
|
+
|
|
1607
|
+
## FILE_QUARANTINED
|
|
1608
|
+
|
|
1609
|
+
**Type:** error
|
|
1610
|
+
**Code:** FILE_QUARANTINED
|
|
1611
|
+
|
|
1612
|
+
**WARNING:** File has been quarantined due to security concerns
|
|
1613
|
+
|
|
1614
|
+
**File:** `{{filename}}`
|
|
1615
|
+
**Reason:** {{reason}}
|
|
1616
|
+
**Size:** {{size}}
|
|
1617
|
+
**Content-Type:** {{contentType}}
|
|
1618
|
+
**Quarantine Location:** `{{quarantinePath}}`
|
|
1619
|
+
|
|
1620
|
+
The file was downloaded but renamed with a `.quarantined` extension and moved to quarantine to prevent accidental execution. If you trust this file, you can manually rename and move it from the quarantine location.
|
|
1621
|
+
|
|
1622
|
+
---
|
|
1623
|
+
|
|
1624
|
+
## FILE_SAVE_FAILED
|
|
1625
|
+
|
|
1626
|
+
**Type:** error
|
|
1627
|
+
**Code:** FILE_SAVE_FAILED
|
|
1628
|
+
|
|
1629
|
+
**ERROR:** Failed to save file to disk
|
|
1630
|
+
|
|
1631
|
+
The file was downloaded successfully but could not be saved to `{{filepath}}`
|
|
1632
|
+
|
|
1633
|
+
Error: {{error}}
|
|
1634
|
+
|
|
1635
|
+
**Possible causes:**
|
|
1636
|
+
- Disk is full
|
|
1637
|
+
- No write permission to the directory
|
|
1638
|
+
- File system error
|
|
1639
|
+
|
|
1640
|
+
---
|
|
1641
|
+
|
|
1642
|
+
## FILE_DOWNLOAD_NETWORK_ERROR
|
|
1643
|
+
|
|
1644
|
+
**Type:** error
|
|
1645
|
+
**Code:** FILE_DOWNLOAD_NETWORK_ERROR
|
|
1646
|
+
|
|
1647
|
+
**ERROR:** Network error while downloading file
|
|
1648
|
+
|
|
1649
|
+
Failed to connect to `{{url}}`
|
|
1650
|
+
|
|
1651
|
+
Error: {{error}}
|
|
1652
|
+
|
|
1653
|
+
**Suggestions:**
|
|
1654
|
+
- Check your internet connection
|
|
1655
|
+
- Verify the URL is accessible
|
|
1656
|
+
- Ensure the server is online
|
|
1657
|
+
|
|
1658
|
+
---
|
|
1659
|
+
|
|
1660
|
+
## PDF_SAVED
|
|
1661
|
+
|
|
1662
|
+
**Type:** success
|
|
1663
|
+
**Code:** PDF_SAVED
|
|
1664
|
+
|
|
1665
|
+
PDF saved successfully to `{{filepath}}`
|
|
1666
|
+
File size: {{fileSize}}
|
|
1667
|
+
{{#engine}}Engine: {{engine}}{{/engine}}
|
|
1668
|
+
{{#version}}Version: {{version}}{{/version}}
|
|
1669
|
+
|
|
1670
|
+
---
|
|
1671
|
+
|
|
1672
|
+
## PDF_GENERATED
|
|
1673
|
+
|
|
1674
|
+
**Type:** success
|
|
1675
|
+
**Code:** PDF_GENERATED
|
|
1676
|
+
|
|
1677
|
+
PDF generated successfully
|
|
1678
|
+
Size: {{size}}
|
|
1679
|
+
|
|
1680
|
+
{{note}}
|
|
1681
|
+
|
|
1682
|
+
---
|
|
1683
|
+
|
|
1684
|
+
## PDF_GENERATION_FAILED
|
|
1685
|
+
|
|
1686
|
+
**Type:** error
|
|
1687
|
+
**Code:** PDF_GENERATION_FAILED
|
|
1688
|
+
|
|
1689
|
+
**ERROR:** Failed to generate PDF
|
|
1690
|
+
|
|
1691
|
+
Error: {{error}}
|
|
1692
|
+
|
|
1693
|
+
---
|
|
1694
|
+
|
|
1695
|
+
## WEASYPRINT_NOT_FOUND
|
|
1696
|
+
|
|
1697
|
+
**Type:** error
|
|
1698
|
+
**Code:** WEASYPRINT_NOT_FOUND
|
|
1699
|
+
|
|
1700
|
+
**ERROR:** WeasyPrint is not installed or not found in PATH
|
|
1701
|
+
|
|
1702
|
+
WeasyPrint is required for advanced PDF generation with superior CSS page break support.
|
|
1703
|
+
|
|
1704
|
+
**Suggestions:**
|
|
1705
|
+
- Install WeasyPrint: `pip install weasyprint`
|
|
1706
|
+
- Verify installation: `weasyprint --version`
|
|
1707
|
+
- Ensure WeasyPrint is in your system PATH
|
|
1708
|
+
- Use `printToPDF` tool for basic PDF generation with Chrome instead
|
|
1709
|
+
|
|
1710
|
+
**Note:** WeasyPrint requires Python 3.7+ and additional system dependencies (Cairo, Pango, GdkPixbuf). See https://doc.courtbouillon.org/weasyprint/stable/first_steps.html#installation
|
|
1711
|
+
|
|
1712
|
+
Error: {{error}}
|
|
1713
|
+
|
|
1714
|
+
---
|
|
1715
|
+
|
|
1716
|
+
## WEASYPRINT_EXECUTION_FAILED
|
|
1717
|
+
|
|
1718
|
+
**Type:** error
|
|
1719
|
+
**Code:** WEASYPRINT_EXECUTION_FAILED
|
|
1720
|
+
|
|
1721
|
+
**ERROR:** WeasyPrint failed to generate PDF
|
|
1722
|
+
|
|
1723
|
+
The WeasyPrint process encountered an error during PDF generation.
|
|
1724
|
+
|
|
1725
|
+
Error: {{error}}
|
|
1726
|
+
|
|
1727
|
+
**Suggestions:**
|
|
1728
|
+
- Check HTML/CSS syntax for errors
|
|
1729
|
+
- Verify all referenced resources (images, stylesheets) are accessible
|
|
1730
|
+
- Check WeasyPrint logs for detailed error information
|
|
1731
|
+
- Try the `printToPDF` tool for basic PDF generation with Chrome instead
|
|
1732
|
+
|
|
1733
|
+
---
|
|
1734
|
+
|
|
1735
|
+
## Replay Messages
|
|
1736
|
+
|
|
1737
|
+
## INVALID_INDICES
|
|
1738
|
+
|
|
1739
|
+
**Type:** error
|
|
1740
|
+
**Code:** INVALID_INDICES
|
|
1741
|
+
|
|
1742
|
+
{{message}}
|
|
1743
|
+
|
|
1744
|
+
---
|
|
1745
|
+
|
|
1746
|
+
## REPLAY_ABORTED
|
|
1747
|
+
|
|
1748
|
+
**Type:** success
|
|
1749
|
+
**Summary:** Replay aborted
|
|
1750
|
+
|
|
1751
|
+
**Replay aborted:** {{name}}
|
|
1752
|
+
|
|
1753
|
+
Completed {{completedSteps}}/{{totalSteps}} steps before abort.{{#failedSteps}}
|
|
1754
|
+
{{failedSteps}} step(s) failed before the abort - see the step results.{{/failedSteps}}
|
|
1755
|
+
|
|
1756
|
+
---
|
|
1757
|
+
|
|
1758
|
+
## REPLAY_RUN_STARTED
|
|
1759
|
+
|
|
1760
|
+
**Type:** success
|
|
1761
|
+
**Summary:** Run started: {{name}}
|
|
1762
|
+
|
|
1763
|
+
**Run started in the background:** {{name}} ({{totalSteps}} steps, connection: {{connectionReason}})
|
|
1764
|
+
|
|
1765
|
+
Run id: `{{runId}}`
|
|
1766
|
+
|
|
1767
|
+
- Progress / results: `replay({ action: 'status', runId: '{{runId}}' })`
|
|
1768
|
+
- Stop it: `replay({ action: 'cancel', runId: '{{runId}}' })`
|
|
1769
|
+
|
|
1770
|
+
Results are kept in memory for 30 minutes after the run settles. Pass `wait: true` to `run` to block until completion instead.
|
|
1771
|
+
|
|
1772
|
+
---
|
|
1773
|
+
|
|
1774
|
+
## REPLAY_RUN_NOT_FOUND
|
|
1775
|
+
|
|
1776
|
+
**Type:** error
|
|
1777
|
+
**Code:** REPLAY_RUN_NOT_FOUND
|
|
1778
|
+
|
|
1779
|
+
**ERROR:** No run with id `{{runId}}`
|
|
1780
|
+
|
|
1781
|
+
Runs are held in memory only: results expire 30 minutes after a run settles, and a server restart (including the hot-restart on rebuild) kills in-flight runs and forgets every id.
|
|
1782
|
+
|
|
1783
|
+
**Suggestions:**
|
|
1784
|
+
- `replay({ action: 'status' })` lists the runs this server still knows about
|
|
1785
|
+
- Start the sequence again with `replay({ action: 'run', ... })`
|
|
1786
|
+
|
|
1787
|
+
---
|
|
1788
|
+
|
|
1789
|
+
## REPLAY_RUN_CANCELLING
|
|
1790
|
+
|
|
1791
|
+
**Type:** success
|
|
1792
|
+
**Summary:** Cancelling run {{runId}}
|
|
1793
|
+
|
|
1794
|
+
**Cancel requested:** {{name}} (`{{runId}}`)
|
|
1795
|
+
|
|
1796
|
+
Steps that support cancellation are interrupted promptly; other steps stop at the next step boundary. Work already dispatched to the browser may still take effect. Check `replay({ action: 'status', runId: '{{runId}}' })` until the status is `cancelled`.
|
|
1797
|
+
|
|
1798
|
+
---
|
|
1799
|
+
|
|
1800
|
+
## REPLAY_RUN_CANCELLED
|
|
1801
|
+
|
|
1802
|
+
**Type:** success
|
|
1803
|
+
**Summary:** Run cancelled
|
|
1804
|
+
|
|
1805
|
+
**Cancelled:** {{name}} (`{{runId}}`)
|
|
1806
|
+
|
|
1807
|
+
The paused session for this run was dropped.
|
|
1808
|
+
|
|
1809
|
+
---
|
|
1810
|
+
|
|
1811
|
+
## REPLAY_RUN_ALREADY_FINISHED
|
|
1812
|
+
|
|
1813
|
+
**Type:** info
|
|
1814
|
+
**Summary:** Run already {{status}}
|
|
1815
|
+
|
|
1816
|
+
**Nothing to cancel:** {{name}} (`{{runId}}`) is already {{status}}.
|
|
1817
|
+
|
|
1818
|
+
Its result is still available via `replay({ action: 'status', runId: '{{runId}}' })`.
|
|
1819
|
+
|
|
1820
|
+
---
|
|
1821
|
+
|
|
1822
|
+
## REPLAY_RUN_AMBIGUOUS
|
|
1823
|
+
|
|
1824
|
+
**Type:** error
|
|
1825
|
+
**Code:** REPLAY_RUN_AMBIGUOUS
|
|
1826
|
+
|
|
1827
|
+
**ERROR:** {{count}} runs are executing - specify which one to cancel
|
|
1828
|
+
|
|
1829
|
+
Runs: {{runList}}
|
|
1830
|
+
|
|
1831
|
+
**Suggestions:**
|
|
1832
|
+
- `replay({ action: 'cancel', runId: '...' })` targets one run
|
|
1833
|
+
- `replay({ action: 'status' })` shows all runs
|
|
1834
|
+
|
|
1835
|
+
---
|
|
1836
|
+
|
|
1837
|
+
## REPLAY_HISTORY
|
|
1838
|
+
|
|
1839
|
+
**Type:** success
|
|
1840
|
+
**Summary:** Command history
|
|
1841
|
+
|
|
1842
|
+
Showing {{count}} of {{totalCount}} commands
|
|
1843
|
+
|
|
1844
|
+
---
|
|
1845
|
+
|
|
1846
|
+
## REPLAY_HISTORY_EMPTY
|
|
1847
|
+
|
|
1848
|
+
**Type:** info
|
|
1849
|
+
**Summary:** Command history empty
|
|
1850
|
+
|
|
1851
|
+
No commands recorded yet. All tool calls are automatically recorded.
|
|
1852
|
+
|
|
1853
|
+
---
|
|
1854
|
+
|
|
1855
|
+
## REPLAY_SAVED_LIST
|
|
1856
|
+
|
|
1857
|
+
**Type:** list
|
|
1858
|
+
**Summary:** {{count}} saved sequence(s)
|
|
1859
|
+
|
|
1860
|
+
---
|
|
1861
|
+
|
|
1862
|
+
## REPLAY_SAVED_EMPTY
|
|
1863
|
+
|
|
1864
|
+
**Type:** info
|
|
1865
|
+
**Summary:** No saved sequences
|
|
1866
|
+
|
|
1867
|
+
No sequences saved to disk yet.
|
|
1868
|
+
|
|
1869
|
+
Location: `.cdp-tools/sequences/`
|
|
1870
|
+
|
|
1871
|
+
---
|
|
1872
|
+
|
|
1873
|
+
## REPLAY_RUN_SUCCESS
|
|
1874
|
+
|
|
1875
|
+
**Type:** success
|
|
1876
|
+
**Summary:** {{sequenceName}}
|
|
1877
|
+
|
|
1878
|
+
Completed {{successful}}/{{total}} commands in {{duration}}s
|
|
1879
|
+
|
|
1880
|
+
---
|
|
1881
|
+
|
|
1882
|
+
## REPLAY_RUN_FAILED
|
|
1883
|
+
|
|
1884
|
+
**Type:** error
|
|
1885
|
+
**Summary:** Failed at step {{failedStep}} ({{failedTool}})
|
|
1886
|
+
|
|
1887
|
+
Sequence: {{sequenceName}}
|
|
1888
|
+
|
|
1889
|
+
---
|
|
1890
|
+
|
|
1891
|
+
## REPLAY_STEP_TIMEOUT
|
|
1892
|
+
|
|
1893
|
+
**Type:** error
|
|
1894
|
+
**Summary:** Step timed out
|
|
1895
|
+
|
|
1896
|
+
Step {{step}} ({{tool}}) timed out after {{timeoutMs}}ms ({{limitSource}} limit)
|
|
1897
|
+
|
|
1898
|
+
**Note:** The run stops at this step. Work already dispatched to the browser may still take effect.
|
|
1899
|
+
|
|
1900
|
+
---
|
|
1901
|
+
|
|
1902
|
+
## REPLAY_PAUSED
|
|
1903
|
+
|
|
1904
|
+
**Type:** info
|
|
1905
|
+
**Summary:** {{sequenceName}}
|
|
1906
|
+
|
|
1907
|
+
Paused at step {{pausedStep}} of {{total}}, {{remaining}} remaining
|
|
1908
|
+
|
|
1909
|
+
---
|
|
1910
|
+
|
|
1911
|
+
## REPLAY_SEQUENCE_CREATED
|
|
1912
|
+
|
|
1913
|
+
**Type:** success
|
|
1914
|
+
**Summary:** Sequence created
|
|
1915
|
+
|
|
1916
|
+
Name: {{name}}, ID: {{id}}, Commands: {{commandCount}}
|
|
1917
|
+
|
|
1918
|
+
---
|
|
1919
|
+
|
|
1920
|
+
## REPLAY_SEQUENCE_DETAILS
|
|
1921
|
+
|
|
1922
|
+
**Type:** success
|
|
1923
|
+
**Summary:** Sequence details
|
|
1924
|
+
|
|
1925
|
+
{{name}}: {{commandCount}} commands
|
|
1926
|
+
|
|
1927
|
+
---
|
|
1928
|
+
|
|
1929
|
+
## REPLAY_STEP_SUCCESS
|
|
1930
|
+
|
|
1931
|
+
**Type:** success
|
|
1932
|
+
**Summary:** {{sequenceName}}
|
|
1933
|
+
|
|
1934
|
+
Executed {{stepCount}} step(s), {{remaining}} remaining
|
|
1935
|
+
|
|
1936
|
+
---
|
|
1937
|
+
|
|
1938
|
+
## REPLAY_STEP_COMPLETE
|
|
1939
|
+
|
|
1940
|
+
**Type:** success
|
|
1941
|
+
**Summary:** {{sequenceName}}
|
|
1942
|
+
|
|
1943
|
+
All {{total}} steps executed successfully
|
|
1944
|
+
|
|
1945
|
+
---
|
|
1946
|
+
|
|
1947
|
+
## REPLAY_BREAKPOINT_HIT
|
|
1948
|
+
|
|
1949
|
+
**Type:** info
|
|
1950
|
+
**Summary:** {{sequenceName}}
|
|
1951
|
+
|
|
1952
|
+
Breakpoint hit at {{location}}
|
|
1953
|
+
|
|
1954
|
+
---
|
|
1955
|
+
|
|
1956
|
+
## REPLAY_SEQUENCE_LIST
|
|
1957
|
+
|
|
1958
|
+
**Type:** list
|
|
1959
|
+
**Summary:** {{count}} sequence(s) in memory
|
|
1960
|
+
|
|
1961
|
+
---
|
|
1962
|
+
|
|
1963
|
+
## REPLAY_SEQUENCE_LIST_EMPTY
|
|
1964
|
+
|
|
1965
|
+
**Type:** info
|
|
1966
|
+
**Summary:** No sequences saved
|
|
1967
|
+
|
|
1968
|
+
No sequences saved yet in memory.
|
|
1969
|
+
|
|
1970
|
+
---
|
|
1971
|
+
|
|
1972
|
+
## REPLAY_ACTIVE_STATUS
|
|
1973
|
+
|
|
1974
|
+
**Type:** info
|
|
1975
|
+
**Summary:** {{sequenceName}}
|
|
1976
|
+
|
|
1977
|
+
Paused at step {{currentStep}} of {{totalSteps}}
|
|
1978
|
+
|
|
1979
|
+
---
|
|
1980
|
+
|
|
1981
|
+
## REPLAY_STEP_FAILED
|
|
1982
|
+
|
|
1983
|
+
**Type:** error
|
|
1984
|
+
**Summary:** Step failed
|
|
1985
|
+
|
|
1986
|
+
{{sequenceName}}: Failed at step {{failedStep}} ({{failedTool}})
|
|
1987
|
+
|
|
1988
|
+
---
|
|
1989
|
+
|
|
1990
|
+
## REPLAY_INSERT_PROMPT
|
|
1991
|
+
|
|
1992
|
+
**Type:** info
|
|
1993
|
+
**Summary:** Insert commands
|
|
1994
|
+
|
|
1995
|
+
{{sequenceName}}: {{commandCount}} command(s) available to insert
|
|
1996
|
+
|
|
1997
|
+
---
|
|
1998
|
+
|
|
1999
|
+
## REPLAY_INSERT_SUCCESS
|
|
2000
|
+
|
|
2001
|
+
**Type:** success
|
|
2002
|
+
**Summary:** Commands inserted
|
|
2003
|
+
|
|
2004
|
+
{{sequenceName}}: Inserted {{insertedCount}} command(s) after step {{insertAfter}}
|
|
2005
|
+
|
|
2006
|
+
---
|
|
2007
|
+
|
|
2008
|
+
## REPLAY_INSERT_NEW
|
|
2009
|
+
|
|
2010
|
+
**Type:** success
|
|
2011
|
+
**Summary:** New sequence created
|
|
2012
|
+
|
|
2013
|
+
{{sequenceName}}: Created with {{insertedCount}} inserted command(s)
|
|
2014
|
+
|
|
2015
|
+
---
|
|
2016
|
+
|
|
2017
|
+
## REPLAY_DEBUG_STATE
|
|
2018
|
+
|
|
2019
|
+
**Type:** info
|
|
2020
|
+
**Summary:** Debug state
|
|
2021
|
+
|
|
2022
|
+
Execution paused at {{location}}
|
|
2023
|
+
|
|
2024
|
+
---
|
|
2025
|
+
|
|
2026
|
+
## REPLAY_VARIABLE_PROMPT
|
|
2027
|
+
|
|
2028
|
+
**Type:** info
|
|
2029
|
+
**Summary:** Variables found
|
|
2030
|
+
|
|
2031
|
+
{{sequenceName}}: {{variableCount}} customizable parameter(s)
|
|
2032
|
+
|
|
2033
|
+
---
|
|
2034
|
+
|
|
2035
|
+
## REPLAY_NO_COMMANDS_SINCE_PAUSE
|
|
2036
|
+
|
|
2037
|
+
**Type:** info
|
|
2038
|
+
**Summary:** No commands to insert
|
|
2039
|
+
|
|
2040
|
+
No commands recorded since pause. Run some commands first.
|
|
2041
|
+
|
|
2042
|
+
---
|
|
2043
|
+
|
|
2044
|
+
## RECORDING_STARTED
|
|
2045
|
+
|
|
2046
|
+
**Type:** success
|
|
2047
|
+
|
|
2048
|
+
Command recording started. All tool calls will be recorded until you stop.
|
|
2049
|
+
|
|
2050
|
+
---
|
|
2051
|
+
|
|
2052
|
+
## SEQUENCE_EXPORTED
|
|
2053
|
+
|
|
2054
|
+
**Type:** success
|
|
2055
|
+
|
|
2056
|
+
Sequence "{{name}}" exported successfully!
|
|
2057
|
+
|
|
2058
|
+
**Sequence ID:** `{{sequenceId}}`
|
|
2059
|
+
**Commands:** {{commandCount}}
|
|
2060
|
+
|
|
2061
|
+
---
|
|
2062
|
+
|
|
2063
|
+
## SEQUENCE_DELETED
|
|
2064
|
+
|
|
2065
|
+
**Type:** success
|
|
2066
|
+
|
|
2067
|
+
Sequence `{{sequenceId}}` deleted successfully.
|
|
2068
|
+
|
|
2069
|
+
---
|
|
2070
|
+
|
|
2071
|
+
## ALREADY_RECORDING
|
|
2072
|
+
|
|
2073
|
+
**Type:** error
|
|
2074
|
+
**Code:** ALREADY_RECORDING
|
|
2075
|
+
|
|
2076
|
+
Already recording. Stop current recording first with `replay({ action: 'stopRecording' })`.
|
|
2077
|
+
|
|
2078
|
+
---
|
|
2079
|
+
|
|
2080
|
+
## NOT_RECORDING
|
|
2081
|
+
|
|
2082
|
+
**Type:** error
|
|
2083
|
+
**Code:** NOT_RECORDING
|
|
2084
|
+
|
|
2085
|
+
Not currently recording. Start recording first with `replay({ action: 'startRecording' })`.
|
|
2086
|
+
|
|
2087
|
+
---
|
|
2088
|
+
|
|
2089
|
+
## NO_COMMANDS_RECORDED
|
|
2090
|
+
|
|
2091
|
+
**Type:** error
|
|
2092
|
+
**Code:** NO_COMMANDS_RECORDED
|
|
2093
|
+
|
|
2094
|
+
No commands were recorded in this session.
|
|
2095
|
+
|
|
2096
|
+
---
|
|
2097
|
+
|
|
2098
|
+
## SEQUENCE_NOT_FOUND
|
|
2099
|
+
|
|
2100
|
+
**Type:** error
|
|
2101
|
+
**Code:** SEQUENCE_NOT_FOUND
|
|
2102
|
+
|
|
2103
|
+
{{#message}}{{message}}{{/message}}{{^message}}Sequence `{{sequenceId}}` not found. Use `replay({ action: 'list' })` to see available sequences or `replay({ action: 'listSaved' })` to see saved files.{{/message}}
|
|
2104
|
+
|
|
2105
|
+
---
|
|
2106
|
+
|
|
2107
|
+
## NO_MATCHING_COMMANDS
|
|
2108
|
+
|
|
2109
|
+
**Type:** error
|
|
2110
|
+
**Code:** NO_MATCHING_COMMANDS
|
|
2111
|
+
|
|
2112
|
+
No commands matched the provided IDs.
|
|
2113
|
+
|
|
2114
|
+
**Provided IDs:** {{providedIds}}
|
|
2115
|
+
|
|
2116
|
+
---
|
|
2117
|
+
|
|
2118
|
+
## SEQUENCE_EXPORTED_TO_DISK
|
|
2119
|
+
|
|
2120
|
+
**Type:** success
|
|
2121
|
+
|
|
2122
|
+
Sequence exported to disk successfully!
|
|
2123
|
+
|
|
2124
|
+
**Filename:** `{{filename}}`
|
|
2125
|
+
**Location:** `.cdp-tools/sequences/`
|
|
2126
|
+
|
|
2127
|
+
---
|
|
2128
|
+
|
|
2129
|
+
## LOAD_FAILED
|
|
2130
|
+
|
|
2131
|
+
**Type:** error
|
|
2132
|
+
**Code:** LOAD_FAILED
|
|
2133
|
+
|
|
2134
|
+
Failed to load sequence from disk.
|
|
2135
|
+
|
|
2136
|
+
**Filename:** `{{filename}}`
|
|
2137
|
+
**Error:** {{error}}
|
|
2138
|
+
|
|
2139
|
+
**Suggestions:**
|
|
2140
|
+
- Verify the filename is correct
|
|
2141
|
+
- Check that the file exists in `.cdp-tools/sequences/`
|
|
2142
|
+
- Use `replay({ action: 'listSaved' })` to see available files
|
|
2143
|
+
|
|
2144
|
+
---
|
|
2145
|
+
|
|
2146
|
+
## SEQUENCE_LOADED_FROM_DISK
|
|
2147
|
+
|
|
2148
|
+
**Type:** success
|
|
2149
|
+
|
|
2150
|
+
Sequence loaded.
|
|
2151
|
+
|
|
2152
|
+
**Sequence ID:** `{{sequenceId}}`
|
|
2153
|
+
**Name:** {{name}}
|
|
2154
|
+
**Commands:** {{commandCount}}
|
|
2155
|
+
|
|
2156
|
+
---
|
|
2157
|
+
|
|
2158
|
+
## SEQUENCE_LOADED_INTO_HISTORY
|
|
2159
|
+
|
|
2160
|
+
**Type:** success
|
|
2161
|
+
|
|
2162
|
+
Loaded {{commandCount}} commands from "{{name}}" into history.
|
|
2163
|
+
|
|
2164
|
+
Use `replay({ action: 'history' })` to view commands.
|
|
2165
|
+
|
|
2166
|
+
---
|
|
2167
|
+
|
|
2168
|
+
## SAVED_SEQUENCE_DELETED
|
|
2169
|
+
|
|
2170
|
+
**Type:** success
|
|
2171
|
+
|
|
2172
|
+
Sequence file "{{filename}}" deleted successfully.
|
|
2173
|
+
|
|
2174
|
+
---
|
|
2175
|
+
|
|
2176
|
+
## EXPORT_SUCCESS
|
|
2177
|
+
|
|
2178
|
+
**Type:** success
|
|
2179
|
+
**Summary:** Exported
|
|
2180
|
+
|
|
2181
|
+
Test: `{{testFile}}`
|
|
2182
|
+
{{#sequenceFile}}Sequence: `{{sequenceFile}}`{{/sequenceFile}}
|
|
2183
|
+
Format: {{format}}
|
|
2184
|
+
|
|
2185
|
+
---
|
|
2186
|
+
|
|
2187
|
+
## EXPORT_SEQUENCE_SUCCESS
|
|
2188
|
+
|
|
2189
|
+
**Type:** success
|
|
2190
|
+
**Summary:** Sequence exported
|
|
2191
|
+
|
|
2192
|
+
`{{filename}}` ({{location}})
|
|
2193
|
+
|
|
2194
|
+
---
|
|
2195
|
+
|
|
2196
|
+
## EXPORT_CONFLICT
|
|
2197
|
+
|
|
2198
|
+
**Type:** warning
|
|
2199
|
+
**Summary:** File exists
|
|
2200
|
+
|
|
2201
|
+
`{{filepath}}` exists. Use `overwrite: true` or rename sequence.
|
|
2202
|
+
|
|
2203
|
+
---
|
|
2204
|
+
|
|
2205
|
+
## EXPORT_FAILED
|
|
2206
|
+
|
|
2207
|
+
**Type:** error
|
|
2208
|
+
**Code:** EXPORT_FAILED
|
|
2209
|
+
|
|
2210
|
+
{{message}}
|
|
2211
|
+
|
|
2212
|
+
---
|
|
2213
|
+
|
|
2214
|
+
## RECORDING_STOPPED
|
|
2215
|
+
|
|
2216
|
+
**Type:** success
|
|
2217
|
+
**Summary:** Sequence created
|
|
2218
|
+
|
|
2219
|
+
{{name}} ({{sequenceId}})
|
|
2220
|
+
{{duration}}s, {{commandCount}} commands, {{startUrl}}
|
|
2221
|
+
clicks:{{clicks}}, drags:{{drags}}, scrolls:{{scrolls}}, keys:{{keyPresses}}{{#navigations}}, nav:{{navigations}}{{/navigations}}{{#comments}}, comments:{{comments}}{{/comments}}
|
|
2222
|
+
{{#coordinateClicks}}
|
|
2223
|
+
⚠️ {{coverageNote}}
|
|
2224
|
+
{{/coordinateClicks}}
|
|
2225
|
+
{{#timeline}}
|
|
2226
|
+
Timeline: {{timeline}}
|
|
2227
|
+
{{/timeline}}
|
|
2228
|
+
{{#bugCount}}
|
|
2229
|
+
🐛 **{{bugCount}} bug(s) recorded** - Use `issues({ action: 'list' })` to view
|
|
2230
|
+
{{/bugCount}}
|
|
2231
|
+
{{#featureCount}}
|
|
2232
|
+
✨ **{{featureCount}} feature(s) requested** - Use `issues({ action: 'list' })` to view
|
|
2233
|
+
{{/featureCount}}
|
|
2234
|
+
{{#hasIssues}}
|
|
2235
|
+
**Issues created:** {{issuesCreatedList}}
|
|
2236
|
+
{{/hasIssues}}
|
|
2237
|
+
{{^hasIssues}}
|
|
2238
|
+
Next: `get/run/export({ name: "{{name}}" })`
|
|
2239
|
+
{{/hasIssues}}
|
|
2240
|
+
|
|
2241
|
+
---
|
|
2242
|
+
|
|
2243
|
+
## RECORDING_NAME_CONFLICT
|
|
2244
|
+
|
|
2245
|
+
**Type:** warning
|
|
2246
|
+
**Summary:** Name exists
|
|
2247
|
+
|
|
2248
|
+
"{{sequenceName}}" exists. Use `name: "new-name"` or `overwrite: true`.
|
|
2249
|
+
|
|
2250
|
+
---
|
|
2251
|
+
|
|
2252
|
+
## BUGS_BLOCKING
|
|
2253
|
+
|
|
2254
|
+
**Type:** error
|
|
2255
|
+
**Code:** BUGS_BLOCKING
|
|
2256
|
+
|
|
2257
|
+
**BLOCKED: Bugs require acknowledgment**
|
|
2258
|
+
|
|
2259
|
+
The following bugs were recorded and must be acknowledged before tools can be used:
|
|
2260
|
+
|
|
2261
|
+
{{bugList}}
|
|
2262
|
+
|
|
2263
|
+
Use `issues({ action: 'acknowledge' })` to acknowledge.
|
|
2264
|
+
|
|
2265
|
+
---
|
|
2266
|
+
|
|
2267
|
+
## Issues Messages
|
|
2268
|
+
|
|
2269
|
+
## ISSUES_LIST
|
|
2270
|
+
|
|
2271
|
+
**Type:** success
|
|
2272
|
+
**Summary:** Issues list
|
|
2273
|
+
|
|
2274
|
+
{{issuesList}}
|
|
2275
|
+
|
|
2276
|
+
{{count}} issues: {{bugCount}} bugs, {{featureCount}} features{{#pendingCount}}, {{pendingCount}} pending{{/pendingCount}}
|
|
2277
|
+
|
|
2278
|
+
---
|
|
2279
|
+
|
|
2280
|
+
## ISSUES_CREATED
|
|
2281
|
+
|
|
2282
|
+
**Type:** success
|
|
2283
|
+
**Summary:** Issue created
|
|
2284
|
+
|
|
2285
|
+
**Issue #{{id}} created** ({{type}})
|
|
2286
|
+
|
|
2287
|
+
{{title}}{{#sequenceFile}}
|
|
2288
|
+
|
|
2289
|
+
Sequence: `{{sequenceFile}}`{{/sequenceFile}}
|
|
2290
|
+
|
|
2291
|
+
---
|
|
2292
|
+
|
|
2293
|
+
## ISSUES_NOT_FOUND
|
|
2294
|
+
|
|
2295
|
+
**Type:** error
|
|
2296
|
+
**Code:** ISSUES_NOT_FOUND
|
|
2297
|
+
|
|
2298
|
+
Issue #{{id}} not found
|
|
2299
|
+
|
|
2300
|
+
{{message}}
|
|
2301
|
+
|
|
2302
|
+
---
|
|
2303
|
+
|
|
2304
|
+
## ISSUES_MISSING_ID
|
|
2305
|
+
|
|
2306
|
+
**Type:** error
|
|
2307
|
+
**Code:** ISSUES_MISSING_ID
|
|
2308
|
+
|
|
2309
|
+
{{message}}
|
|
2310
|
+
|
|
2311
|
+
---
|
|
2312
|
+
|
|
2313
|
+
## ISSUES_RESOLVE_TIMEOUT
|
|
2314
|
+
|
|
2315
|
+
**Type:** error
|
|
2316
|
+
**Code:** ISSUES_RESOLVE_TIMEOUT
|
|
2317
|
+
|
|
2318
|
+
Timed out after {{timeoutSeconds}}s waiting for a human to respond to the verification overlay for issue #{{id}}.
|
|
2319
|
+
|
|
2320
|
+
**Suggestions:**
|
|
2321
|
+
- Nobody answered the "ready to begin?" / "is this fixed?" prompt in the browser tab - make sure a person is available to click through it
|
|
2322
|
+
- If you are an agent: only a human clicking the overlay can close an issue, so do not retry `resolve` unattended - record what you found with `comment` and ask the user to run `resolve` themselves
|
|
2323
|
+
- Use `issues({ action: 'comment', id: {{id}}, text: '...' })` in the meantime to record findings without blocking
|
|
2324
|
+
- Run `issues({ action: 'resolve', id: {{id}} })` again once a human is ready to verify
|
|
2325
|
+
|
|
2326
|
+
**Note:** No state was changed - the issue is exactly as it was before this call.
|
|
2327
|
+
|
|
2328
|
+
---
|
|
2329
|
+
|
|
2330
|
+
## ISSUES_MISSING_TYPE
|
|
2331
|
+
|
|
2332
|
+
**Type:** error
|
|
2333
|
+
**Code:** ISSUES_MISSING_TYPE
|
|
2334
|
+
|
|
2335
|
+
{{message}}
|
|
2336
|
+
|
|
2337
|
+
---
|
|
2338
|
+
|
|
2339
|
+
## ISSUES_MISSING_TITLE
|
|
2340
|
+
|
|
2341
|
+
**Type:** error
|
|
2342
|
+
**Code:** ISSUES_MISSING_TITLE
|
|
2343
|
+
|
|
2344
|
+
{{message}}
|
|
2345
|
+
|
|
2346
|
+
---
|
|
2347
|
+
|
|
2348
|
+
## ISSUES_MISSING_TEXT
|
|
2349
|
+
|
|
2350
|
+
**Type:** error
|
|
2351
|
+
**Code:** ISSUES_MISSING_TEXT
|
|
2352
|
+
|
|
2353
|
+
{{message}}
|
|
2354
|
+
|
|
2355
|
+
---
|
|
2356
|
+
|
|
2357
|
+
## ISSUES_MISSING_START_URL
|
|
2358
|
+
|
|
2359
|
+
**Type:** error
|
|
2360
|
+
**Code:** ISSUES_MISSING_START_URL
|
|
2361
|
+
|
|
2362
|
+
{{message}}
|
|
2363
|
+
|
|
2364
|
+
---
|
|
2365
|
+
|
|
2366
|
+
## ISSUES_WORK_STARTED
|
|
2367
|
+
|
|
2368
|
+
**Type:** success
|
|
2369
|
+
**Summary:** Working on issue #{{id}}
|
|
2370
|
+
|
|
2371
|
+
{{details}}{{#replayStarted}}
|
|
2372
|
+
Sequence replay completed.{{/replayStarted}}{{#browserLaunched}}
|
|
2373
|
+
Browser launched and navigated to start URL.{{/browserLaunched}}{{#recordingStarted}}
|
|
2374
|
+
Recording started. Reproduce the issue, then stop the recording.{{/recordingStarted}}{{#connectionReason}}
|
|
2375
|
+
|
|
2376
|
+
Connection: `{{connectionReason}}`{{/connectionReason}}
|
|
2377
|
+
|
|
2378
|
+
---
|
|
2379
|
+
|
|
2380
|
+
## ISSUES_WORK_CANCELLED
|
|
2381
|
+
|
|
2382
|
+
**Type:** info
|
|
2383
|
+
**Summary:** Work session cancelled for #{{id}}
|
|
2384
|
+
|
|
2385
|
+
Work session cancelled for {{type}} #{{id}}.
|
|
2386
|
+
|
|
2387
|
+
{{title}}
|
|
2388
|
+
|
|
2389
|
+
---
|
|
2390
|
+
|
|
2391
|
+
## ISSUES_VERIFICATION_CANCELLED
|
|
2392
|
+
|
|
2393
|
+
**Type:** info
|
|
2394
|
+
**Summary:** Verification cancelled for #{{id}}
|
|
2395
|
+
|
|
2396
|
+
Verification cancelled for {{type}} #{{id}}.
|
|
2397
|
+
|
|
2398
|
+
{{title}}
|
|
2399
|
+
|
|
2400
|
+
---
|
|
2401
|
+
|
|
2402
|
+
## ISSUES_RESOLVED
|
|
2403
|
+
|
|
2404
|
+
**Type:** success
|
|
2405
|
+
**Summary:** Issue #{{id}} {{status}}
|
|
2406
|
+
|
|
2407
|
+
**{{type}} #{{id}} marked as {{status}}**
|
|
2408
|
+
|
|
2409
|
+
{{title}}
|
|
2410
|
+
{{#userComment}}
|
|
2411
|
+
|
|
2412
|
+
**User comment:** {{userComment}}
|
|
2413
|
+
{{/userComment}}
|
|
2414
|
+
{{#replayDetails}}
|
|
2415
|
+
|
|
2416
|
+
**Replay execution details:**
|
|
2417
|
+
{{replayDetails}}
|
|
2418
|
+
{{/replayDetails}}
|
|
2419
|
+
|
|
2420
|
+
---
|
|
2421
|
+
|
|
2422
|
+
## ISSUES_NOT_RESOLVED
|
|
2423
|
+
|
|
2424
|
+
**Type:** warning
|
|
2425
|
+
**Summary:** Issue #{{id}} not resolved
|
|
2426
|
+
|
|
2427
|
+
**{{type}} #{{id}} - NOT RESOLVED**
|
|
2428
|
+
|
|
2429
|
+
User indicated this issue is not yet resolved. Status remains: {{status}}
|
|
2430
|
+
|
|
2431
|
+
{{title}}
|
|
2432
|
+
{{#userComment}}
|
|
2433
|
+
|
|
2434
|
+
**User comment:** {{userComment}}
|
|
2435
|
+
{{/userComment}}
|
|
2436
|
+
{{#replayDetails}}
|
|
2437
|
+
|
|
2438
|
+
**Replay execution details:**
|
|
2439
|
+
{{replayDetails}}
|
|
2440
|
+
{{/replayDetails}}
|
|
2441
|
+
|
|
2442
|
+
---
|
|
2443
|
+
|
|
2444
|
+
## ISSUES_REPLAY_FAILED
|
|
2445
|
+
|
|
2446
|
+
**Type:** error
|
|
2447
|
+
**Code:** ISSUES_REPLAY_FAILED
|
|
2448
|
+
**Summary:** {{type}} #{{id}} replay failed
|
|
2449
|
+
|
|
2450
|
+
{{replayDetails}}
|
|
2451
|
+
|
|
2452
|
+
---
|
|
2453
|
+
|
|
2454
|
+
## ISSUES_MISSING_CONNECTION
|
|
2455
|
+
|
|
2456
|
+
**Type:** error
|
|
2457
|
+
**Code:** ISSUES_MISSING_CONNECTION
|
|
2458
|
+
|
|
2459
|
+
{{message}}
|
|
2460
|
+
|
|
2461
|
+
---
|
|
2462
|
+
|
|
2463
|
+
## ISSUES_NO_PAGE_ACCESS
|
|
2464
|
+
|
|
2465
|
+
**Type:** error
|
|
2466
|
+
**Code:** ISSUES_NO_PAGE_ACCESS
|
|
2467
|
+
|
|
2468
|
+
{{message}}
|
|
2469
|
+
|
|
2470
|
+
---
|
|
2471
|
+
|
|
2472
|
+
## ISSUES_PAGE_ERROR
|
|
2473
|
+
|
|
2474
|
+
**Type:** error
|
|
2475
|
+
**Code:** ISSUES_PAGE_ERROR
|
|
2476
|
+
|
|
2477
|
+
{{message}}
|
|
2478
|
+
|
|
2479
|
+
---
|
|
2480
|
+
|
|
2481
|
+
## ISSUES_CHROME_LAUNCH_FAILED
|
|
2482
|
+
|
|
2483
|
+
**Type:** error
|
|
2484
|
+
**Code:** ISSUES_CHROME_LAUNCH_FAILED
|
|
2485
|
+
|
|
2486
|
+
{{message}}
|
|
2487
|
+
|
|
2488
|
+
---
|
|
2489
|
+
|
|
2490
|
+
## ISSUES_INVALID_CONNECTION
|
|
2491
|
+
|
|
2492
|
+
**Type:** error
|
|
2493
|
+
**Code:** ISSUES_INVALID_CONNECTION
|
|
2494
|
+
|
|
2495
|
+
{{message}}
|
|
2496
|
+
|
|
2497
|
+
---
|
|
2498
|
+
|
|
2499
|
+
## ISSUES_ACKNOWLEDGED
|
|
2500
|
+
|
|
2501
|
+
**Type:** success
|
|
2502
|
+
**Summary:** Bugs acknowledged ({{count}})
|
|
2503
|
+
|
|
2504
|
+
**Bugs acknowledged** ({{count}})
|
|
2505
|
+
|
|
2506
|
+
The following bugs have been acknowledged and must be added to your TODO list:
|
|
2507
|
+
|
|
2508
|
+
{{bugList}}
|
|
2509
|
+
|
|
2510
|
+
**IMPORTANT**: Start a non-blocking agent to investigate each bug immediately.
|
|
2511
|
+
The agent should analyze the issue, report findings, and propose a fix - but NOT make changes.
|
|
2512
|
+
Add each bug to your TODO list and track investigation progress.
|
|
2513
|
+
|
|
2514
|
+
---
|
|
2515
|
+
|
|
2516
|
+
## ISSUES_NONE_PENDING
|
|
2517
|
+
|
|
2518
|
+
**Type:** success
|
|
2519
|
+
**Summary:** No pending bugs
|
|
2520
|
+
|
|
2521
|
+
{{message}}
|
|
2522
|
+
|
|
2523
|
+
---
|
|
2524
|
+
|
|
2525
|
+
## ISSUES_INVALID_ACTION
|
|
2526
|
+
|
|
2527
|
+
**Type:** error
|
|
2528
|
+
**Code:** ISSUES_INVALID_ACTION
|
|
2529
|
+
|
|
2530
|
+
Unknown action: {{action}}
|
|
2531
|
+
|
|
2532
|
+
{{message}}
|
|
2533
|
+
|
|
2534
|
+
---
|
|
2535
|
+
|
|
2536
|
+
## ISSUES_SEQUENCE_NOT_FOUND
|
|
2537
|
+
|
|
2538
|
+
**Type:** error
|
|
2539
|
+
**Code:** ISSUES_SEQUENCE_NOT_FOUND
|
|
2540
|
+
|
|
2541
|
+
Sequence "{{sequenceName}}" not found
|
|
2542
|
+
|
|
2543
|
+
{{message}}
|
|
2544
|
+
|
|
2545
|
+
---
|
|
2546
|
+
|
|
2547
|
+
## ISSUES_SEQUENCE_COPY_FAILED
|
|
2548
|
+
|
|
2549
|
+
**Type:** error
|
|
2550
|
+
**Code:** ISSUES_SEQUENCE_COPY_FAILED
|
|
2551
|
+
|
|
2552
|
+
Failed to copy sequence "{{sequenceName}}"
|
|
2553
|
+
|
|
2554
|
+
{{error}}
|
|
2555
|
+
|
|
2556
|
+
---
|
|
2557
|
+
|
|
2558
|
+
## ISSUES_SEQUENCE_RERECORDED
|
|
2559
|
+
|
|
2560
|
+
**Type:** success
|
|
2561
|
+
**Summary:** New sequence recorded for {{type}} #{{id}}
|
|
2562
|
+
|
|
2563
|
+
{{recordingDetails}}
|
|
2564
|
+
|
|
2565
|
+
**ACTION REQUIRED:** The sequence has been updated. Run `issues({ action: 'resolve', id: {{id}} })` again to verify the fix with the new sequence.
|
|
2566
|
+
|
|
2567
|
+
---
|
|
2568
|
+
|
|
2569
|
+
## ISSUES_COMMENT_ADDED
|
|
2570
|
+
|
|
2571
|
+
**Type:** success
|
|
2572
|
+
**Summary:** Comment added to {{type}} #{{id}}
|
|
2573
|
+
|
|
2574
|
+
**Comment added to {{type}} #{{id}}** - {{title}}
|
|
2575
|
+
|
|
2576
|
+
**Comments ({{commentCount}}):**
|
|
2577
|
+
{{timeline}}
|
|
2578
|
+
|
|
2579
|
+
---
|
|
2580
|
+
|
|
2581
|
+
## MISSING_CONNECTION
|
|
2582
|
+
|
|
2583
|
+
**Type:** error
|
|
2584
|
+
**Code:** MISSING_CONNECTION
|
|
2585
|
+
|
|
2586
|
+
{{message}}
|
|
2587
|
+
|
|
2588
|
+
**Tools needing connection:** {{toolsNeedingConnection}}
|
|
2589
|
+
|
|
2590
|
+
{{suggestion}}
|
|
2591
|
+
|
|
2592
|
+
---
|
|
2593
|
+
|
|
2594
|
+
## MISSING_PARAMETER
|
|
2595
|
+
|
|
2596
|
+
**Type:** error
|
|
2597
|
+
**Code:** MISSING_PARAMETER
|
|
2598
|
+
|
|
2599
|
+
Missing required parameter: {{missing}}
|
|
2600
|
+
|
|
2601
|
+
**Action:** {{action}}
|
|
2602
|
+
**Message:** {{message}}
|
|
2603
|
+
|
|
2604
|
+
---
|
|
2605
|
+
|
|
2606
|
+
## INVALID_PARAMETER
|
|
2607
|
+
|
|
2608
|
+
**Type:** error
|
|
2609
|
+
**Code:** INVALID_PARAMETER
|
|
2610
|
+
|
|
2611
|
+
{{message}}
|
|
2612
|
+
|
|
2613
|
+
{{#parameter}}**Parameter:** {{parameter}}{{#value}} = `{{value}}`{{/value}}{{/parameter}}
|
|
2614
|
+
|
|
2615
|
+
---
|
|
2616
|
+
|
|
2617
|
+
## Server Messages
|
|
2618
|
+
|
|
2619
|
+
## SERVER_START_SUCCESS
|
|
2620
|
+
|
|
2621
|
+
**Type:** success
|
|
2622
|
+
**Summary:** Server started and ready
|
|
2623
|
+
|
|
2624
|
+
{{id}} (PID: {{pid}}){{#port}}, Port: {{port}}{{/port}}{{#autoRun}}, Auto-run: enabled{{/autoRun}}
|
|
2625
|
+
|
|
2626
|
+
Logs: server({ action: "logs", serverId: "{{id}}" }){{autoRestartWarning}}
|
|
2627
|
+
|
|
2628
|
+
---
|
|
2629
|
+
|
|
2630
|
+
## SERVER_START_PENDING
|
|
2631
|
+
|
|
2632
|
+
**Type:** success
|
|
2633
|
+
**Summary:** Server starting (waiting for port)
|
|
2634
|
+
|
|
2635
|
+
{{id}} (PID: {{pid}}){{#autoRun}}, Auto-run: enabled{{/autoRun}}
|
|
2636
|
+
**Status:** Waiting for port detection
|
|
2637
|
+
|
|
2638
|
+
The server process started but hasn't reported its port yet.
|
|
2639
|
+
- Check logs: `server({ action: 'logs', serverId: '{{id}}' })`
|
|
2640
|
+
- Port detection continues in background (30s timeout)
|
|
2641
|
+
- If port not detected, tools will be blocked until acknowledged{{autoRestartWarning}}
|
|
2642
|
+
|
|
2643
|
+
---
|
|
2644
|
+
|
|
2645
|
+
## SERVER_STOP_SUCCESS
|
|
2646
|
+
|
|
2647
|
+
**Type:** success
|
|
2648
|
+
|
|
2649
|
+
Server `{{serverId}}` stopped.
|
|
2650
|
+
|
|
2651
|
+
---
|
|
2652
|
+
|
|
2653
|
+
## SERVER_RESTART_SUCCESS
|
|
2654
|
+
|
|
2655
|
+
**Type:** success
|
|
2656
|
+
**Summary:** Server restarted and ready
|
|
2657
|
+
|
|
2658
|
+
{{id}} (PID: {{pid}}){{#port}}, Port: {{port}}{{/port}}{{#autoRun}}, Auto-run: enabled{{/autoRun}}
|
|
2659
|
+
|
|
2660
|
+
---
|
|
2661
|
+
|
|
2662
|
+
## SERVER_LIST_SUCCESS
|
|
2663
|
+
|
|
2664
|
+
**Type:** success
|
|
2665
|
+
|
|
2666
|
+
{{count}} server(s) ({{runningCount}} running, {{stoppedCount}} stopped)
|
|
2667
|
+
|
|
2668
|
+
{{serverList}}
|
|
2669
|
+
|
|
2670
|
+
**Actions:**
|
|
2671
|
+
- Stop: `server({ action: "stop", serverId: "<id>" })`
|
|
2672
|
+
- Restart: `server({ action: "restart", serverId: "<id>" })`
|
|
2673
|
+
- Logs: `server({ action: "logs", serverId: "<id>" })`
|
|
2674
|
+
|
|
2675
|
+
---
|
|
2676
|
+
|
|
2677
|
+
## SERVER_LIST_EMPTY
|
|
2678
|
+
|
|
2679
|
+
**Type:** success
|
|
2680
|
+
|
|
2681
|
+
No servers running.
|
|
2682
|
+
|
|
2683
|
+
Use `server({ action: "start", command: "<cmd>", cwd: "<dir>", id: "<name>" })` to start a server.
|
|
2684
|
+
|
|
2685
|
+
---
|
|
2686
|
+
|
|
2687
|
+
## SERVER_LOGS_FILE
|
|
2688
|
+
|
|
2689
|
+
**Type:** success
|
|
2690
|
+
|
|
2691
|
+
Logs for {{serverId}}
|
|
2692
|
+
|
|
2693
|
+
{{#running}}Running{{/running}}{{^running}}Stopped{{/running}}{{#autoRun}} (auto-run){{/autoRun}}
|
|
2694
|
+
{{#port}}Port: {{port}}{{/port}}
|
|
2695
|
+
{{#uptime}}Uptime: {{uptime}}{{/uptime}}
|
|
2696
|
+
|
|
2697
|
+
stdout: {{stdoutPath}}
|
|
2698
|
+
stderr: {{stderrPath}}
|
|
2699
|
+
|
|
2700
|
+
---
|
|
2701
|
+
|
|
2702
|
+
## SERVER_LOGS_COMMAND
|
|
2703
|
+
|
|
2704
|
+
**Type:** success
|
|
2705
|
+
|
|
2706
|
+
Logs for {{serverId}}
|
|
2707
|
+
|
|
2708
|
+
{{#running}}Running{{/running}}{{^running}}Stopped{{/running}}{{#autoRun}} (auto-run){{/autoRun}}
|
|
2709
|
+
{{#port}}Port: {{port}}{{/port}}
|
|
2710
|
+
{{#uptime}}Uptime: {{uptime}}{{/uptime}}
|
|
2711
|
+
|
|
2712
|
+
View logs: {{command}}
|
|
2713
|
+
|
|
2714
|
+
---
|
|
2715
|
+
|
|
2716
|
+
## SERVER_LOGS_UNAVAILABLE
|
|
2717
|
+
|
|
2718
|
+
**Type:** error
|
|
2719
|
+
|
|
2720
|
+
Log access not available for server {{serverId}}.
|
|
2721
|
+
|
|
2722
|
+
---
|
|
2723
|
+
|
|
2724
|
+
## SERVER_STOP_ALL_SUCCESS
|
|
2725
|
+
|
|
2726
|
+
**Type:** success
|
|
2727
|
+
|
|
2728
|
+
Stopped {{count}} server(s): {{serverIds}}
|
|
2729
|
+
|
|
2730
|
+
---
|
|
2731
|
+
|
|
2732
|
+
## SERVER_STOP_ALL_EMPTY
|
|
2733
|
+
|
|
2734
|
+
**Type:** success
|
|
2735
|
+
|
|
2736
|
+
No servers were running.
|
|
2737
|
+
|
|
2738
|
+
---
|
|
2739
|
+
|
|
2740
|
+
## SERVER_AUTORUN_ENABLED
|
|
2741
|
+
|
|
2742
|
+
**Type:** success
|
|
2743
|
+
|
|
2744
|
+
Auto-run enabled for `{{serverId}}`.
|
|
2745
|
+
|
|
2746
|
+
Server will automatically start when MCP server starts.
|
|
2747
|
+
|
|
2748
|
+
---
|
|
2749
|
+
|
|
2750
|
+
## SERVER_AUTORUN_DISABLED
|
|
2751
|
+
|
|
2752
|
+
**Type:** success
|
|
2753
|
+
|
|
2754
|
+
Auto-run disabled for `{{serverId}}`.
|
|
2755
|
+
|
|
2756
|
+
Server will not auto-start when MCP server starts.
|
|
2757
|
+
|
|
2758
|
+
---
|
|
2759
|
+
|
|
2760
|
+
## SERVER_NOT_FOUND
|
|
2761
|
+
|
|
2762
|
+
**Type:** error
|
|
2763
|
+
**Code:** SERVER_NOT_FOUND
|
|
2764
|
+
|
|
2765
|
+
Server `{{serverId}}` not found.
|
|
2766
|
+
|
|
2767
|
+
**Suggestions:**
|
|
2768
|
+
- Use `server({ action: "list" })` to see running servers
|
|
2769
|
+
- Check the server ID you provided when starting the server
|
|
2770
|
+
|
|
2771
|
+
---
|
|
2772
|
+
|
|
2773
|
+
## SERVER_ALREADY_RUNNING
|
|
2774
|
+
|
|
2775
|
+
**Type:** error
|
|
2776
|
+
**Code:** SERVER_ALREADY_RUNNING
|
|
2777
|
+
|
|
2778
|
+
Server `{{serverId}}` is already running (PID: {{pid}}).
|
|
2779
|
+
|
|
2780
|
+
**Suggestions:**
|
|
2781
|
+
- Use `server({ action: "stop", serverId: "{{serverId}}" })` to stop it first
|
|
2782
|
+
- Use `server({ action: "restart", serverId: "{{serverId}}" })` to restart it
|
|
2783
|
+
|
|
2784
|
+
---
|
|
2785
|
+
|
|
2786
|
+
## SERVER_START_FAILED
|
|
2787
|
+
|
|
2788
|
+
**Type:** error
|
|
2789
|
+
**Code:** SERVER_START_FAILED
|
|
2790
|
+
|
|
2791
|
+
Failed to start server: {{error}}
|
|
2792
|
+
|
|
2793
|
+
---
|
|
2794
|
+
|
|
2795
|
+
## SERVER_MISSING_COMMAND
|
|
2796
|
+
|
|
2797
|
+
**Type:** error
|
|
2798
|
+
**Code:** MISSING_PARAMETER
|
|
2799
|
+
|
|
2800
|
+
Missing required parameter: `command`
|
|
2801
|
+
|
|
2802
|
+
Provide the command to run (e.g., "npm run dev", "flask run", "python manage.py runserver").
|
|
2803
|
+
|
|
2804
|
+
---
|
|
2805
|
+
|
|
2806
|
+
## SERVER_MISSING_CWD
|
|
2807
|
+
|
|
2808
|
+
**Type:** error
|
|
2809
|
+
**Code:** MISSING_PARAMETER
|
|
2810
|
+
|
|
2811
|
+
Missing required parameter: `cwd`
|
|
2812
|
+
|
|
2813
|
+
Provide the working directory for the server command.
|
|
2814
|
+
|
|
2815
|
+
---
|
|
2816
|
+
|
|
2817
|
+
## SERVER_MISSING_ID
|
|
2818
|
+
|
|
2819
|
+
**Type:** error
|
|
2820
|
+
**Code:** MISSING_PARAMETER
|
|
2821
|
+
|
|
2822
|
+
Missing required parameter: `id`
|
|
2823
|
+
|
|
2824
|
+
Provide a unique identifier for this server (e.g., "flask-api", "next-frontend").
|
|
2825
|
+
|
|
2826
|
+
---
|
|
2827
|
+
|
|
2828
|
+
## SERVER_MISSING_SERVER_ID
|
|
2829
|
+
|
|
2830
|
+
**Type:** error
|
|
2831
|
+
**Code:** MISSING_PARAMETER
|
|
2832
|
+
|
|
2833
|
+
Missing required parameter: `serverId`
|
|
2834
|
+
|
|
2835
|
+
Use `server({ action: "list" })` to see running servers.
|
|
2836
|
+
|
|
2837
|
+
---
|
|
2838
|
+
|
|
2839
|
+
## SERVER_MISSING_AUTORUN
|
|
2840
|
+
|
|
2841
|
+
**Type:** error
|
|
2842
|
+
**Code:** MISSING_PARAMETER
|
|
2843
|
+
|
|
2844
|
+
Missing required parameter: `autoRun`
|
|
2845
|
+
|
|
2846
|
+
Set to `true` to enable auto-start on MCP startup, or `false` to disable.
|
|
2847
|
+
|
|
2848
|
+
---
|
|
2849
|
+
|
|
2850
|
+
## SERVER_LOGS_CLEARED
|
|
2851
|
+
|
|
2852
|
+
**Type:** success
|
|
2853
|
+
|
|
2854
|
+
Logs cleared for `{{serverId}}`.
|
|
2855
|
+
|
|
2856
|
+
**Log directory:** `{{logDir}}`
|
|
2857
|
+
|
|
2858
|
+
---
|
|
2859
|
+
|
|
2860
|
+
## SERVER_REMOVED
|
|
2861
|
+
|
|
2862
|
+
**Type:** success
|
|
2863
|
+
|
|
2864
|
+
Server `{{serverId}}` removed from config.
|
|
2865
|
+
|
|
2866
|
+
---
|
|
2867
|
+
|
|
2868
|
+
## PENDING_RESTART_CANCELLED
|
|
2869
|
+
|
|
2870
|
+
**Type:** success
|
|
2871
|
+
**Summary:** Watch-mode restart cancelled
|
|
2872
|
+
|
|
2873
|
+
Discarded the queued watch-mode restart for `{{serverId}}`. The server keeps running its current (paused) process - debug as usual.
|
|
2874
|
+
|
|
2875
|
+
**Note:** A later file change will queue a new restart the same way.
|
|
2876
|
+
|
|
2877
|
+
---
|
|
2878
|
+
|
|
2879
|
+
## PENDING_RESTART_NOT_FOUND
|
|
2880
|
+
|
|
2881
|
+
**Type:** error
|
|
2882
|
+
**Code:** PENDING_RESTART_NOT_FOUND
|
|
2883
|
+
|
|
2884
|
+
No watch-mode restart is queued for `{{serverId}}`.
|
|
2885
|
+
|
|
2886
|
+
**Suggestions:**
|
|
2887
|
+
- Use `server({ action: "list" })` to check whether watch mode is enabled for this server
|
|
2888
|
+
- This clears itself once the queued restart runs, so there may simply be nothing to cancel
|
|
2889
|
+
|
|
2890
|
+
---
|
|
2891
|
+
|
|
2892
|
+
## Port Monitoring Messages
|
|
2893
|
+
|
|
2894
|
+
## PORT_MONITOR_STARTED
|
|
2895
|
+
|
|
2896
|
+
**Type:** success
|
|
2897
|
+
**Summary:** Port monitoring started
|
|
2898
|
+
|
|
2899
|
+
Now monitoring port {{port}} at level `{{level}}`{{#description}} ({{description}}){{/description}}{{#interval}} with custom interval {{interval}}ms{{/interval}}.
|
|
2900
|
+
|
|
2901
|
+
The port will be checked via TCP connection probes. If the port goes down, tool responses will be affected based on the monitoring level:
|
|
2902
|
+
- `inform`: Info line prepended to responses
|
|
2903
|
+
- `error`: Error line prepended to responses
|
|
2904
|
+
- `block`: All tools blocked until acknowledged
|
|
2905
|
+
|
|
2906
|
+
**Default intervals:** block=1000ms, error=2000ms, inform=5000ms (configurable in `.cdp-tools/config.json`)
|
|
2907
|
+
|
|
2908
|
+
---
|
|
2909
|
+
|
|
2910
|
+
## PORT_MONITOR_STOPPED
|
|
2911
|
+
|
|
2912
|
+
**Type:** success
|
|
2913
|
+
**Summary:** Port monitoring stopped
|
|
2914
|
+
|
|
2915
|
+
Stopped monitoring port {{port}}.
|
|
2916
|
+
|
|
2917
|
+
---
|
|
2918
|
+
|
|
2919
|
+
## PORT_MONITOR_LIST
|
|
2920
|
+
|
|
2921
|
+
**Type:** list
|
|
2922
|
+
**Summary:** {{count}} monitored port(s)
|
|
2923
|
+
|
|
2924
|
+
**Up:** {{upCount}} | **Down:** {{downCount}} | **Connecting:** {{connectingCount}}
|
|
2925
|
+
|
|
2926
|
+
{{portList}}
|
|
2927
|
+
|
|
2928
|
+
---
|
|
2929
|
+
|
|
2930
|
+
## PORT_MONITOR_LIST_EMPTY
|
|
2931
|
+
|
|
2932
|
+
**Type:** success
|
|
2933
|
+
|
|
2934
|
+
No ports are currently being monitored.
|
|
2935
|
+
|
|
2936
|
+
Use `server({ action: 'monitorPort', port: <port>, monitoringLevel: 'inform'|'error'|'block' })` to start monitoring.
|
|
2937
|
+
|
|
2938
|
+
---
|
|
2939
|
+
|
|
2940
|
+
## PORT_ACKNOWLEDGED
|
|
2941
|
+
|
|
2942
|
+
**Type:** success
|
|
2943
|
+
**Summary:** Port failure acknowledged
|
|
2944
|
+
|
|
2945
|
+
Acknowledged failure for port {{port}}. Tool execution will now continue.
|
|
2946
|
+
|
|
2947
|
+
**Note:** The port is still being monitored. If it comes back up and fails again, you will need to acknowledge again.
|
|
2948
|
+
|
|
2949
|
+
---
|
|
2950
|
+
|
|
2951
|
+
## PORT_MISSING_PORT
|
|
2952
|
+
|
|
2953
|
+
**Type:** error
|
|
2954
|
+
**Code:** MISSING_PORT
|
|
2955
|
+
|
|
2956
|
+
Port number is required.
|
|
2957
|
+
|
|
2958
|
+
**Example:**
|
|
2959
|
+
```
|
|
2960
|
+
server({ action: 'monitorPort', port: 3000, monitoringLevel: 'error' })
|
|
2961
|
+
```
|
|
2962
|
+
|
|
2963
|
+
---
|
|
2964
|
+
|
|
2965
|
+
## PORT_MISSING_LEVEL
|
|
2966
|
+
|
|
2967
|
+
**Type:** error
|
|
2968
|
+
**Code:** MISSING_LEVEL
|
|
2969
|
+
|
|
2970
|
+
Monitoring level is required. Choose one of: `inform`, `error`, or `block`.
|
|
2971
|
+
|
|
2972
|
+
- `inform`: Info line prepended to tool responses when port is down
|
|
2973
|
+
- `error`: Error line prepended to tool responses when port is down
|
|
2974
|
+
- `block`: All tools blocked until failure is acknowledged
|
|
2975
|
+
|
|
2976
|
+
**Example:**
|
|
2977
|
+
```
|
|
2978
|
+
server({ action: 'monitorPort', port: 3000, monitoringLevel: 'block' })
|
|
2979
|
+
```
|
|
2980
|
+
|
|
2981
|
+
---
|
|
2982
|
+
|
|
2983
|
+
## PORT_NOT_MONITORED
|
|
2984
|
+
|
|
2985
|
+
**Type:** error
|
|
2986
|
+
**Code:** NOT_MONITORED
|
|
2987
|
+
|
|
2988
|
+
Port {{port}} is not being monitored.
|
|
2989
|
+
|
|
2990
|
+
Use `server({ action: 'listMonitored' })` to see all monitored ports.
|
|
2991
|
+
|
|
2992
|
+
---
|
|
2993
|
+
|
|
2994
|
+
## PORT_ACK_FAILED
|
|
2995
|
+
|
|
2996
|
+
**Type:** error
|
|
2997
|
+
**Code:** ACK_FAILED
|
|
2998
|
+
|
|
2999
|
+
Cannot acknowledge port {{port}}. Either the port is not being monitored, or it is not currently in a failed state.
|
|
3000
|
+
|
|
3001
|
+
Use `server({ action: 'listMonitored' })` to check the current status of monitored ports.
|
|
3002
|
+
|
|
3003
|
+
---
|
|
3004
|
+
|
|
3005
|
+
## Startup Timeout Messages
|
|
3006
|
+
|
|
3007
|
+
## STARTUP_ACKNOWLEDGED
|
|
3008
|
+
|
|
3009
|
+
**Type:** success
|
|
3010
|
+
**Summary:** Startup timeout acknowledged
|
|
3011
|
+
|
|
3012
|
+
Acknowledged startup timeout for server "{{serverId}}". Tool execution will now continue.
|
|
3013
|
+
|
|
3014
|
+
**Note:** The server is still running but port detection has stopped. If you know the port, you can manually monitor it with `server({ action: 'monitorPort', port: <port> })`.
|
|
3015
|
+
|
|
3016
|
+
---
|
|
3017
|
+
|
|
3018
|
+
## STARTUP_ACKNOWLEDGED_DIED
|
|
3019
|
+
|
|
3020
|
+
**Type:** success
|
|
3021
|
+
**Summary:** Server failure acknowledged
|
|
3022
|
+
|
|
3023
|
+
Acknowledged that server "{{serverId}}" died during startup. Tool execution will now continue.
|
|
3024
|
+
|
|
3025
|
+
Check logs with `server({ action: 'logs', serverId: '{{serverId}}' })` to investigate the failure, then restart with `server({ action: 'restart', serverId: '{{serverId}}' })`.
|
|
3026
|
+
|
|
3027
|
+
---
|
|
3028
|
+
|
|
3029
|
+
## STARTUP_ACK_FAILED
|
|
3030
|
+
|
|
3031
|
+
**Type:** error
|
|
3032
|
+
**Code:** ACK_FAILED
|
|
3033
|
+
|
|
3034
|
+
Cannot acknowledge startup for server "{{serverId}}". {{error}}
|
|
3035
|
+
|
|
3036
|
+
Use `server({ action: 'list' })` to see running servers.
|
|
3037
|
+
|
|
3038
|
+
---
|
|
3039
|
+
|
|
3040
|
+
## STARTUP_EXTENDED
|
|
3041
|
+
|
|
3042
|
+
**Type:** success
|
|
3043
|
+
**Summary:** Startup timeout extended
|
|
3044
|
+
|
|
3045
|
+
Extended startup timeout for server "{{serverId}}" by {{timeout}}. Port detection has resumed.
|
|
3046
|
+
|
|
3047
|
+
Use `server({ action: 'logs', serverId: '{{serverId}}' })` to check server startup progress.
|
|
3048
|
+
|
|
3049
|
+
---
|
|
3050
|
+
|
|
3051
|
+
## STARTUP_EXTEND_FAILED
|
|
3052
|
+
|
|
3053
|
+
**Type:** error
|
|
3054
|
+
**Code:** EXTEND_FAILED
|
|
3055
|
+
|
|
3056
|
+
Cannot extend startup timeout for server "{{serverId}}". {{error}}
|
|
3057
|
+
|
|
3058
|
+
If the server died, use `server({ action: 'restart', serverId: '{{serverId}}' })` to restart it.
|
|
3059
|
+
|
|
3060
|
+
---
|
|
3061
|
+
|
|
3062
|
+
## Config Messages
|
|
3063
|
+
|
|
3064
|
+
## CONFIG_PROFILE_LIST
|
|
3065
|
+
|
|
3066
|
+
**Type:** list
|
|
3067
|
+
**Summary:** Persistent Chrome profiles
|
|
3068
|
+
|
|
3069
|
+
Root: {{root}}
|
|
3070
|
+
Profiles ({{count}}): {{profiles}}
|
|
3071
|
+
|
|
3072
|
+
**Note:** Use `launchChrome({ profile: "<name>" })` to launch one, or `config({ action: "resetProfile", profile: "<name>" })` to wipe it.
|
|
3073
|
+
|
|
3074
|
+
---
|
|
3075
|
+
|
|
3076
|
+
## CONFIG_PROFILE_NAME_REQUIRED
|
|
3077
|
+
|
|
3078
|
+
**Type:** error
|
|
3079
|
+
**Summary:** Profile name required
|
|
3080
|
+
|
|
3081
|
+
`resetProfile` needs the `profile` parameter.
|
|
3082
|
+
|
|
3083
|
+
**Example:**
|
|
3084
|
+
```
|
|
3085
|
+
config({ action: "resetProfile", profile: "device-a" })
|
|
3086
|
+
```
|
|
3087
|
+
|
|
3088
|
+
---
|
|
3089
|
+
|
|
3090
|
+
## CONFIG_PROFILE_RESET_SUCCESS
|
|
3091
|
+
|
|
3092
|
+
**Type:** success
|
|
3093
|
+
**Summary:** Profile reset
|
|
3094
|
+
|
|
3095
|
+
Profile "{{profile}}" is now empty.{{#existed}}
|
|
3096
|
+
|
|
3097
|
+
Its previous contents (cookies, localStorage, IndexedDB, saved sessions) were deleted.{{/existed}}
|
|
3098
|
+
|
|
3099
|
+
Location: {{path}}
|
|
3100
|
+
|
|
3101
|
+
---
|
|
3102
|
+
|
|
3103
|
+
## CONFIG_PROFILE_RESET_IN_USE
|
|
3104
|
+
|
|
3105
|
+
**Type:** error
|
|
3106
|
+
**Summary:** Profile is in use
|
|
3107
|
+
|
|
3108
|
+
Cannot reset profile "{{profile}}" - the Chrome on port {{port}} is still using it.
|
|
3109
|
+
|
|
3110
|
+
Wiping a user-data-dir under a running Chrome corrupts it, and the deletion is partly undone when Chrome flushes state on exit.
|
|
3111
|
+
|
|
3112
|
+
**Suggestions:**
|
|
3113
|
+
- Stop it first: `killChrome({ port: {{port}}, reason: "resetting profile {{profile}}" })`
|
|
3114
|
+
- Then retry: `config({ action: "resetProfile", profile: "{{profile}}" })`
|
|
3115
|
+
|
|
3116
|
+
---
|
|
3117
|
+
|
|
3118
|
+
## CONFIG_PROFILE_RESET_FAILED
|
|
3119
|
+
|
|
3120
|
+
**Type:** error
|
|
3121
|
+
**Summary:** Profile reset failed
|
|
3122
|
+
|
|
3123
|
+
Could not reset profile "{{profile}}": {{error}}
|
|
3124
|
+
|
|
3125
|
+
---
|
|
3126
|
+
|
|
3127
|
+
## CONFIG_PROFILES_UNAVAILABLE
|
|
3128
|
+
|
|
3129
|
+
**Type:** error
|
|
3130
|
+
**Summary:** Profile management unavailable
|
|
3131
|
+
|
|
3132
|
+
Persistent Chrome profiles are not available - the config tool was created without a Chrome launcher.
|
|
3133
|
+
|
|
3134
|
+
---
|
|
3135
|
+
|
|
3136
|
+
## CONFIG_STATUS
|
|
3137
|
+
|
|
3138
|
+
**Type:** info
|
|
3139
|
+
**Summary:** Config status
|
|
3140
|
+
|
|
3141
|
+
**Loaded from:** {{loadedFrom}}
|
|
3142
|
+
**Location:** {{location}}
|
|
3143
|
+
|
|
3144
|
+
| Path | Exists |
|
|
3145
|
+
|------|--------|
|
|
3146
|
+
| Local: {{localPath}} | {{localExists}} |
|
|
3147
|
+
| Global: {{globalPath}} | {{globalExists}} |
|
|
3148
|
+
|
|
3149
|
+
**Server:** v{{version}} (pid {{serverPid}}, supervisor {{supervisorPid}})
|
|
3150
|
+
**Running:** {{entryPath}}
|
|
3151
|
+
**Built:** {{buildMtime}}
|
|
3152
|
+
|
|
3153
|
+
After a rebuild, a `Built` timestamp older than the build means this server
|
|
3154
|
+
never reloaded - the rebuild signalled a supervisor that is not the one serving
|
|
3155
|
+
you, and everything you are observing is the previous code.
|
|
3156
|
+
|
|
3157
|
+
---
|
|
3158
|
+
|
|
3159
|
+
## CONFIG_USE_LOCAL_SUCCESS
|
|
3160
|
+
|
|
3161
|
+
**Type:** success
|
|
3162
|
+
**Summary:** Switched to local config
|
|
3163
|
+
|
|
3164
|
+
Now using local config at {{path}}.{{#seeded}}
|
|
3165
|
+
|
|
3166
|
+
Config was seeded from global settings.{{/seeded}}
|
|
3167
|
+
|
|
3168
|
+
---
|
|
3169
|
+
|
|
3170
|
+
## CONFIG_USE_GLOBAL_SUCCESS
|
|
3171
|
+
|
|
3172
|
+
**Type:** success
|
|
3173
|
+
**Summary:** Switched to global config
|
|
3174
|
+
|
|
3175
|
+
Now using global config at {{path}}.
|
|
3176
|
+
|
|
3177
|
+
---
|
|
3178
|
+
|
|
3179
|
+
## CONFIG_RESET_SUCCESS
|
|
3180
|
+
|
|
3181
|
+
**Type:** success
|
|
3182
|
+
**Summary:** Config reset to defaults
|
|
3183
|
+
|
|
3184
|
+
Configuration has been reset to defaults and saved.
|
|
3185
|
+
|
|
3186
|
+
---
|
|
3187
|
+
|
|
3188
|
+
## CONFIG_BACKUP_SUCCESS
|
|
3189
|
+
|
|
3190
|
+
**Type:** success
|
|
3191
|
+
**Summary:** Config backed up
|
|
3192
|
+
|
|
3193
|
+
Backup created at {{path}}.
|
|
3194
|
+
|
|
3195
|
+
---
|
|
3196
|
+
|
|
3197
|
+
## CONFIG_BACKUP_FAILED
|
|
3198
|
+
|
|
3199
|
+
**Type:** error
|
|
3200
|
+
**Code:** BACKUP_FAILED
|
|
3201
|
+
|
|
3202
|
+
No config file to backup. Load a config first.
|
|
3203
|
+
|
|
3204
|
+
---
|
|
3205
|
+
|
|
3206
|
+
## CONFIG_CLONE_SUCCESS
|
|
3207
|
+
|
|
3208
|
+
**Type:** success
|
|
3209
|
+
**Summary:** Cloned global config to local
|
|
3210
|
+
|
|
3211
|
+
Created local config at {{path}} from global settings.
|
|
3212
|
+
|
|
3213
|
+
---
|
|
3214
|
+
|
|
3215
|
+
## CONFIG_CLONE_NO_GLOBAL
|
|
3216
|
+
|
|
3217
|
+
**Type:** error
|
|
3218
|
+
**Code:** NO_GLOBAL_CONFIG
|
|
3219
|
+
|
|
3220
|
+
No global config exists to clone from.
|
|
3221
|
+
|
|
3222
|
+
---
|
|
3223
|
+
|
|
3224
|
+
## CONFIG_SHOW
|
|
3225
|
+
|
|
3226
|
+
**Type:** info
|
|
3227
|
+
**Summary:** Current configuration
|
|
3228
|
+
|
|
3229
|
+
```json
|
|
3230
|
+
{{config}}
|
|
3231
|
+
```
|
|
3232
|
+
|
|
3233
|
+
---
|
|
3234
|
+
|
|
3235
|
+
## CONFIG_RELOAD
|
|
3236
|
+
|
|
3237
|
+
**Type:** success
|
|
3238
|
+
**Summary:** Config reloaded
|
|
3239
|
+
|
|
3240
|
+
{{#changed}}Reloaded config from {{path}} - changes applied live.{{/changed}}{{^changed}}Reloaded config from {{path}} - no changes since last load.{{/changed}}
|
|
3241
|
+
|
|
3242
|
+
Note: `tools.enabled`/`tools.disabled` changes still require an MCP server restart to take effect - use `config({action: 'restart'})`.
|
|
3243
|
+
|
|
3244
|
+
---
|
|
3245
|
+
|
|
3246
|
+
## CONFIG_RESTART_REQUESTED
|
|
3247
|
+
|
|
3248
|
+
**Type:** success
|
|
3249
|
+
**Summary:** Restart requested
|
|
3250
|
+
|
|
3251
|
+
Sent a restart signal to the cdp-tools supervisor (PID {{pid}}). The server restarts shortly - no reconnect needed.
|
|
3252
|
+
|
|
3253
|
+
Note: any Chrome instances this session launched will be killed (call `launchChrome` again). Managed dev servers (the `server` tool) survive and reattach automatically.
|
|
3254
|
+
|
|
3255
|
+
---
|
|
3256
|
+
|
|
3257
|
+
## CONFIG_RESTART_NOT_SUPERVISED
|
|
3258
|
+
|
|
3259
|
+
**Type:** error
|
|
3260
|
+
|
|
3261
|
+
No mcp-supervisor pidfile found - this session isn't running through the hot-reload supervisor, so there's nothing to signal.
|
|
3262
|
+
|
|
3263
|
+
**Suggestions:**
|
|
3264
|
+
- Ask the user to run `/mcp` to reconnect instead
|
|
3265
|
+
|
|
3266
|
+
---
|
|
3267
|
+
|
|
3268
|
+
## CONFIG_RESTART_STALE_PID
|
|
3269
|
+
|
|
3270
|
+
**Type:** error
|
|
3271
|
+
|
|
3272
|
+
Found a supervisor pidfile (PID {{pid}}) but couldn't signal it: {{error}}
|
|
3273
|
+
|
|
3274
|
+
**Suggestions:**
|
|
3275
|
+
- The supervisor process may have died without cleaning up its pidfile - ask the user to run `/mcp` to reconnect
|
|
3276
|
+
|
|
3277
|
+
---
|
|
3278
|
+
|
|
3279
|
+
## TOOLS_LIST
|
|
3280
|
+
|
|
3281
|
+
**Type:** info
|
|
3282
|
+
|
|
3283
|
+
{{toolsJson}}
|
|
3284
|
+
|
|
3285
|
+
---
|
|
3286
|
+
|
|
3287
|
+
## TOOLS_LIST_CONFLICT
|
|
3288
|
+
|
|
3289
|
+
**Type:** error
|
|
3290
|
+
|
|
3291
|
+
Dependency conflicts detected. All tools are blocked until resolved.
|
|
3292
|
+
|
|
3293
|
+
{{#each conflicts}}
|
|
3294
|
+
{{this}}
|
|
3295
|
+
{{/each}}
|
|
3296
|
+
|
|
3297
|
+
---
|
|
3298
|
+
|
|
3299
|
+
## Navigation Messages
|
|
3300
|
+
|
|
3301
|
+
## NAVIGATION_FAILED
|
|
3302
|
+
|
|
3303
|
+
**Type:** error
|
|
3304
|
+
**Code:** NAVIGATION_FAILED
|
|
3305
|
+
|
|
3306
|
+
Navigation failed: {{message}}
|
|
3307
|
+
|
|
3308
|
+
---
|
|
3309
|
+
|
|
3310
|
+
## Dashboard Messages
|
|
3311
|
+
|
|
3312
|
+
## DASHBOARD_OPEN
|
|
3313
|
+
|
|
3314
|
+
**Type:** success
|
|
3315
|
+
|
|
3316
|
+
Dashboard available at {{url}}
|
|
3317
|
+
|
|
3318
|
+
**Session type:** {{type}}
|
|
3319
|
+
|
|
3320
|
+
---
|
|
3321
|
+
|
|
3322
|
+
## DASHBOARD_STATUS
|
|
3323
|
+
|
|
3324
|
+
**Type:** success
|
|
3325
|
+
|
|
3326
|
+
**Dashboard Status**
|
|
3327
|
+
|
|
3328
|
+
| Property | Value |
|
|
3329
|
+
|----------|-------|
|
|
3330
|
+
| Session ID | {{shortId}} |
|
|
3331
|
+
| Full ID | {{sessionId}} |
|
|
3332
|
+
| PID | {{pid}} |
|
|
3333
|
+
| Type | {{type}} |
|
|
3334
|
+
| Port | {{port}} |
|
|
3335
|
+
| URL | {{url}} |
|
|
3336
|
+
| Sessions | {{sessionCount}} |
|
|
3337
|
+
|
|
3338
|
+
---
|
|
3339
|
+
|
|
3340
|
+
## DASHBOARD_STOPPED
|
|
3341
|
+
|
|
3342
|
+
**Type:** success
|
|
3343
|
+
|
|
3344
|
+
{{message}}
|
|
3345
|
+
|
|
3346
|
+
---
|
|
3347
|
+
|
|
3348
|
+
## DASHBOARD_NOT_AVAILABLE
|
|
3349
|
+
|
|
3350
|
+
**Type:** error
|
|
3351
|
+
**Code:** DASHBOARD_NOT_AVAILABLE
|
|
3352
|
+
|
|
3353
|
+
Dashboard is not available: {{reason}}
|
|
3354
|
+
|
|
3355
|
+
---
|
|
3356
|
+
|
|
3357
|
+
## DASHBOARD_NOT_HUB
|
|
3358
|
+
|
|
3359
|
+
**Type:** error
|
|
3360
|
+
**Code:** DASHBOARD_NOT_HUB
|
|
3361
|
+
|
|
3362
|
+
{{reason}}
|
|
3363
|
+
|
|
3364
|
+
**Suggestions:**
|
|
3365
|
+
- The hub is running in a different session
|
|
3366
|
+
- Use `dashboard({ action: "status" })` to see which session is the hub
|
|
3367
|
+
|
|
3368
|
+
---
|
|
3369
|
+
|
|
3370
|
+
## REQUEST_SUCCESS
|
|
3371
|
+
|
|
3372
|
+
**Type:** success
|
|
3373
|
+
**Summary:** {{method}} {{url}} -> {{status}} {{statusText}}
|
|
3374
|
+
|
|
3375
|
+
**Destination:** {{destination}} | **OK:** {{ok}} | **Duration:** {{durationMs}}ms{{#truncated}} (body truncated){{/truncated}}
|
|
3376
|
+
|
|
3377
|
+
**Body:** {{body}}
|
|
3378
|
+
|
|
3379
|
+
---
|
|
3380
|
+
|
|
3381
|
+
## REQUEST_FAILED
|
|
3382
|
+
|
|
3383
|
+
**Type:** error
|
|
3384
|
+
**Code:** REQUEST_FAILED
|
|
3385
|
+
|
|
3386
|
+
Request to {{url}} failed ({{destination}}): {{error}}
|
|
3387
|
+
|
|
3388
|
+
**Suggestions:**
|
|
3389
|
+
- Check the URL is reachable and the server is running
|
|
3390
|
+
- destination "browser" requires an active connection (use connectionReason)
|
|
3391
|
+
- destination "node" cannot resolve relative URLs - use a full URL (http://localhost:PORT/path)
|
|
3392
|
+
|
|
3393
|
+
---
|
|
3394
|
+
|
|
3395
|
+
## ASSERT_SUCCESS
|
|
3396
|
+
|
|
3397
|
+
**Type:** success
|
|
3398
|
+
**Summary:** Assertion passed: {{left}} {{operator}} {{right}}
|
|
3399
|
+
|
|
3400
|
+
---
|
|
3401
|
+
|
|
3402
|
+
## ASSERT_FAILED
|
|
3403
|
+
|
|
3404
|
+
**Type:** error
|
|
3405
|
+
**Code:** ASSERT_FAILED
|
|
3406
|
+
|
|
3407
|
+
{{message}}
|
|
3408
|
+
|
|
3409
|
+
**Assertion:** {{left}} {{operator}} {{right}}
|
|
3410
|
+
|
|
3411
|
+
---
|
|
3412
|
+
|
|
3413
|
+
## WAIT_CONDITION_MET
|
|
3414
|
+
|
|
3415
|
+
**Type:** success
|
|
3416
|
+
**Summary:** Wait complete ({{elapsedMs}}ms, {{polls}} checks)
|
|
3417
|
+
|
|
3418
|
+
Condition met after {{elapsedMs}}ms ({{polls}} checks): waited for {{condition}}
|
|
3419
|
+
|
|
3420
|
+
---
|
|
3421
|
+
|
|
3422
|
+
## WAIT_SLEEP_COMPLETE
|
|
3423
|
+
|
|
3424
|
+
**Type:** success
|
|
3425
|
+
**Summary:** Slept {{ms}}ms
|
|
3426
|
+
|
|
3427
|
+
Slept {{ms}}ms. Fixed sleeps are a last resort - prefer `wait({ selector })` or `wait({ expression })`, which return as soon as the condition holds and fail loudly when it never does.
|
|
3428
|
+
|
|
3429
|
+
---
|
|
3430
|
+
|
|
3431
|
+
## WAIT_TIMEOUT
|
|
3432
|
+
|
|
3433
|
+
**Type:** error
|
|
3434
|
+
**Code:** WAIT_TIMEOUT
|
|
3435
|
+
|
|
3436
|
+
Timed out after {{timeoutMs}}ms ({{polls}} checks) waiting for {{condition}}{{lastError}}
|
|
3437
|
+
|
|
3438
|
+
**Suggestions:**
|
|
3439
|
+
- The condition never became true - check it is the right selector/expression for the page you are on
|
|
3440
|
+
- If the page is still loading or async work is slow, raise `timeoutMs`
|
|
3441
|
+
- Use `content({ action: 'findInteractive' })` or `screenshot` to see the current page state
|
|
3442
|
+
|
|
3443
|
+
---
|
|
3444
|
+
|
|
3445
|
+
## WAIT_INVALID_ARGS
|
|
3446
|
+
|
|
3447
|
+
**Type:** error
|
|
3448
|
+
**Code:** WAIT_INVALID_ARGS
|
|
3449
|
+
|
|
3450
|
+
{{message}}
|
|
3451
|
+
|
|
3452
|
+
**Suggestions:**
|
|
3453
|
+
- `wait({ selector })` - element appears, `wait({ selectorGone })` - element disappears
|
|
3454
|
+
- `wait({ expression })` - synchronous JS predicate polls truthy
|
|
3455
|
+
- `wait({ ms })` - fixed sleep (last resort)
|
|
3456
|
+
|
|
3457
|
+
---
|
|
3458
|
+
|
|
3459
|
+
## WAIT_DEBUGGER_PAUSED
|
|
3460
|
+
|
|
3461
|
+
**Type:** error
|
|
3462
|
+
**Code:** WAIT_DEBUGGER_PAUSED
|
|
3463
|
+
|
|
3464
|
+
Cannot wait for {{condition}}: the debugger on "{{connectionReason}}" is paused at a breakpoint. The page's event loop is stopped, so nothing can change and the wait would only burn its timeout.
|
|
3465
|
+
|
|
3466
|
+
**Suggestions:**
|
|
3467
|
+
- Resume execution first: `execution({ action: 'resume' })`
|
|
3468
|
+
- Or inspect the paused state instead of waiting: `inspect({ action: 'getCallStack' })`
|
|
3469
|
+
|
|
3470
|
+
---
|
|
3471
|
+
|
|
3472
|
+
## CONFIG_USE_LOCAL_FAILED
|
|
3473
|
+
|
|
3474
|
+
**Type:** error
|
|
3475
|
+
**Code:** CONFIG_USE_LOCAL_FAILED
|
|
3476
|
+
|
|
3477
|
+
Failed to switch to local config: {{error}}
|
|
3478
|
+
|
|
3479
|
+
---
|
|
3480
|
+
|