@browserbasehq/orca 3.4.0-preview-4 → 3.4.0-preview-5
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/dist/cjs/lib/v3/agent/AgentProvider.d.ts +1 -1
- package/dist/cjs/lib/v3/agent/AgentProvider.js.map +1 -1
- package/dist/cjs/lib/v3/launch/local.d.ts +2 -7
- package/dist/cjs/lib/v3/launch/local.js +47 -7
- package/dist/cjs/lib/v3/launch/local.js.map +1 -1
- package/dist/cjs/lib/v3/llm/aisdk.js +5 -0
- package/dist/cjs/lib/v3/llm/aisdk.js.map +1 -1
- package/dist/cjs/lib/v3/types/public/agent.d.ts +1 -1
- package/dist/cjs/lib/v3/types/public/agent.js.map +1 -1
- package/dist/cjs/lib/v3/types/public/api.d.ts +283 -0
- package/dist/cjs/lib/v3/types/public/api.js +50 -3
- package/dist/cjs/lib/v3/types/public/api.js.map +1 -1
- package/dist/cjs/lib/v3/types/public/model.d.ts +11 -7
- package/dist/cjs/lib/v3/types/public/model.js.map +1 -1
- package/dist/cjs/lib/v3/v3.js +2 -47
- package/dist/cjs/lib/v3/v3.js.map +1 -1
- package/dist/esm/lib/v3/agent/AgentProvider.d.ts +1 -1
- package/dist/esm/lib/v3/agent/AgentProvider.js.map +1 -1
- package/dist/esm/lib/v3/launch/local.d.ts +2 -7
- package/dist/esm/lib/v3/launch/local.js +48 -8
- package/dist/esm/lib/v3/launch/local.js.map +1 -1
- package/dist/esm/lib/v3/llm/aisdk.js +5 -0
- package/dist/esm/lib/v3/llm/aisdk.js.map +1 -1
- package/dist/esm/lib/v3/types/public/agent.d.ts +1 -1
- package/dist/esm/lib/v3/types/public/agent.js.map +1 -1
- package/dist/esm/lib/v3/types/public/api.d.ts +283 -0
- package/dist/esm/lib/v3/types/public/api.js +48 -1
- package/dist/esm/lib/v3/types/public/api.js.map +1 -1
- package/dist/esm/lib/v3/types/public/model.d.ts +11 -7
- package/dist/esm/lib/v3/types/public/model.js.map +1 -1
- package/dist/esm/lib/v3/v3.js +2 -47
- package/dist/esm/lib/v3/v3.js.map +1 -1
- package/package.json +4 -5
- package/dist/cjs/tests/cache-variables.test.d.ts +0 -1
- package/dist/cjs/tests/cache-variables.test.js +0 -221
- package/dist/cjs/tests/cache-variables.test.js.map +0 -1
- package/dist/cjs/tests/integration/agent-abort-signal.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/agent-abort-signal.spec.js +0 -123
- package/dist/cjs/tests/integration/agent-abort-signal.spec.js.map +0 -1
- package/dist/cjs/tests/integration/agent-cache-self-heal.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js +0 -83
- package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js.map +0 -1
- package/dist/cjs/tests/integration/agent-callbacks.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/agent-callbacks.spec.js +0 -385
- package/dist/cjs/tests/integration/agent-callbacks.spec.js.map +0 -1
- package/dist/cjs/tests/integration/agent-experimental-validation.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/agent-experimental-validation.spec.js +0 -362
- package/dist/cjs/tests/integration/agent-experimental-validation.spec.js.map +0 -1
- package/dist/cjs/tests/integration/agent-hybrid-mode.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js +0 -262
- package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js.map +0 -1
- package/dist/cjs/tests/integration/agent-message-continuation.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/agent-message-continuation.spec.js +0 -112
- package/dist/cjs/tests/integration/agent-message-continuation.spec.js.map +0 -1
- package/dist/cjs/tests/integration/agent-streaming.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/agent-streaming.spec.js +0 -140
- package/dist/cjs/tests/integration/agent-streaming.spec.js.map +0 -1
- package/dist/cjs/tests/integration/cdp-close-api-region.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/cdp-close-api-region.spec.js +0 -41
- package/dist/cjs/tests/integration/cdp-close-api-region.spec.js.map +0 -1
- package/dist/cjs/tests/integration/cdp-connection-close.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/cdp-connection-close.spec.js +0 -76
- package/dist/cjs/tests/integration/cdp-connection-close.spec.js.map +0 -1
- package/dist/cjs/tests/integration/cdp-session-detached.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/cdp-session-detached.spec.js +0 -45
- package/dist/cjs/tests/integration/cdp-session-detached.spec.js.map +0 -1
- package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.js +0 -56
- package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.js.map +0 -1
- package/dist/cjs/tests/integration/click-count.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/click-count.spec.js +0 -163
- package/dist/cjs/tests/integration/click-count.spec.js.map +0 -1
- package/dist/cjs/tests/integration/connect-to-existing-browser.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js +0 -99
- package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js.map +0 -1
- package/dist/cjs/tests/integration/context-addInitScript.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/context-addInitScript.spec.js +0 -285
- package/dist/cjs/tests/integration/context-addInitScript.spec.js.map +0 -1
- package/dist/cjs/tests/integration/context-extra-http-headers.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/context-extra-http-headers.spec.js +0 -49
- package/dist/cjs/tests/integration/context-extra-http-headers.spec.js.map +0 -1
- package/dist/cjs/tests/integration/cookies.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/cookies.spec.js +0 -187
- package/dist/cjs/tests/integration/cookies.spec.js.map +0 -1
- package/dist/cjs/tests/integration/default-page-tracking.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/default-page-tracking.spec.js +0 -52
- package/dist/cjs/tests/integration/default-page-tracking.spec.js.map +0 -1
- package/dist/cjs/tests/integration/downloads.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/downloads.spec.js +0 -52
- package/dist/cjs/tests/integration/downloads.spec.js.map +0 -1
- package/dist/cjs/tests/integration/flowLogger.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/flowLogger.spec.js +0 -718
- package/dist/cjs/tests/integration/flowLogger.spec.js.map +0 -1
- package/dist/cjs/tests/integration/frame-get-location-and-click.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js +0 -57
- package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js.map +0 -1
- package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js +0 -219
- package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +0 -1
- package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js +0 -474
- package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js.map +0 -1
- package/dist/cjs/tests/integration/keep-alive.child.d.ts +0 -1
- package/dist/cjs/tests/integration/keep-alive.child.js +0 -85
- package/dist/cjs/tests/integration/keep-alive.child.js.map +0 -1
- package/dist/cjs/tests/integration/keep-alive.spec.d.ts +0 -22
- package/dist/cjs/tests/integration/keep-alive.spec.js +0 -490
- package/dist/cjs/tests/integration/keep-alive.spec.js.map +0 -1
- package/dist/cjs/tests/integration/keyboard.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/keyboard.spec.js +0 -259
- package/dist/cjs/tests/integration/keyboard.spec.js.map +0 -1
- package/dist/cjs/tests/integration/locator-backend-node-id.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/locator-backend-node-id.spec.js +0 -150
- package/dist/cjs/tests/integration/locator-backend-node-id.spec.js.map +0 -1
- package/dist/cjs/tests/integration/locator-content-methods.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/locator-content-methods.spec.js +0 -180
- package/dist/cjs/tests/integration/locator-content-methods.spec.js.map +0 -1
- package/dist/cjs/tests/integration/locator-count-iframe.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/locator-count-iframe.spec.js +0 -129
- package/dist/cjs/tests/integration/locator-count-iframe.spec.js.map +0 -1
- package/dist/cjs/tests/integration/locator-count.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/locator-count.spec.js +0 -68
- package/dist/cjs/tests/integration/locator-count.spec.js.map +0 -1
- package/dist/cjs/tests/integration/locator-fill.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/locator-fill.spec.js +0 -117
- package/dist/cjs/tests/integration/locator-fill.spec.js.map +0 -1
- package/dist/cjs/tests/integration/locator-input-methods.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/locator-input-methods.spec.js +0 -127
- package/dist/cjs/tests/integration/locator-input-methods.spec.js.map +0 -1
- package/dist/cjs/tests/integration/locator-nth.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/locator-nth.spec.js +0 -175
- package/dist/cjs/tests/integration/locator-nth.spec.js.map +0 -1
- package/dist/cjs/tests/integration/locator-select-option.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/locator-select-option.spec.js +0 -216
- package/dist/cjs/tests/integration/locator-select-option.spec.js.map +0 -1
- package/dist/cjs/tests/integration/logger-initialization.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/logger-initialization.spec.js +0 -597
- package/dist/cjs/tests/integration/logger-initialization.spec.js.map +0 -1
- package/dist/cjs/tests/integration/multi-instance-logger.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/multi-instance-logger.spec.js +0 -293
- package/dist/cjs/tests/integration/multi-instance-logger.spec.js.map +0 -1
- package/dist/cjs/tests/integration/nested-div.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/nested-div.spec.js +0 -22
- package/dist/cjs/tests/integration/nested-div.spec.js.map +0 -1
- package/dist/cjs/tests/integration/observe-element-id-format.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/observe-element-id-format.spec.js +0 -130
- package/dist/cjs/tests/integration/observe-element-id-format.spec.js.map +0 -1
- package/dist/cjs/tests/integration/page-addInitScript.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/page-addInitScript.spec.js +0 -94
- package/dist/cjs/tests/integration/page-addInitScript.spec.js.map +0 -1
- package/dist/cjs/tests/integration/page-console.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/page-console.spec.js +0 -47
- package/dist/cjs/tests/integration/page-console.spec.js.map +0 -1
- package/dist/cjs/tests/integration/page-drag-and-drop.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/page-drag-and-drop.spec.js +0 -437
- package/dist/cjs/tests/integration/page-drag-and-drop.spec.js.map +0 -1
- package/dist/cjs/tests/integration/page-extra-http-headers.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/page-extra-http-headers.spec.js +0 -85
- package/dist/cjs/tests/integration/page-extra-http-headers.spec.js.map +0 -1
- package/dist/cjs/tests/integration/page-goto-response.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/page-goto-response.spec.js +0 -34
- package/dist/cjs/tests/integration/page-goto-response.spec.js.map +0 -1
- package/dist/cjs/tests/integration/page-hover.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/page-hover.spec.js +0 -165
- package/dist/cjs/tests/integration/page-hover.spec.js.map +0 -1
- package/dist/cjs/tests/integration/page-screenshot.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/page-screenshot.spec.js +0 -292
- package/dist/cjs/tests/integration/page-screenshot.spec.js.map +0 -1
- package/dist/cjs/tests/integration/page-scroll.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/page-scroll.spec.js +0 -183
- package/dist/cjs/tests/integration/page-scroll.spec.js.map +0 -1
- package/dist/cjs/tests/integration/page-send-cdp.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/page-send-cdp.spec.js +0 -47
- package/dist/cjs/tests/integration/page-send-cdp.spec.js.map +0 -1
- package/dist/cjs/tests/integration/perform-understudy-method.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/perform-understudy-method.spec.js +0 -63
- package/dist/cjs/tests/integration/perform-understudy-method.spec.js.map +0 -1
- package/dist/cjs/tests/integration/setinputfiles.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/setinputfiles.spec.js +0 -133
- package/dist/cjs/tests/integration/setinputfiles.spec.js.map +0 -1
- package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js +0 -161
- package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js.map +0 -1
- package/dist/cjs/tests/integration/shadow-iframe-spif.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js +0 -160
- package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js.map +0 -1
- package/dist/cjs/tests/integration/testUtils.d.ts +0 -40
- package/dist/cjs/tests/integration/testUtils.js +0 -188
- package/dist/cjs/tests/integration/testUtils.js.map +0 -1
- package/dist/cjs/tests/integration/text-selector-innermost.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/text-selector-innermost.spec.js +0 -105
- package/dist/cjs/tests/integration/text-selector-innermost.spec.js.map +0 -1
- package/dist/cjs/tests/integration/timeouts.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/timeouts.spec.js +0 -309
- package/dist/cjs/tests/integration/timeouts.spec.js.map +0 -1
- package/dist/cjs/tests/integration/user-data-dir.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/user-data-dir.spec.js +0 -77
- package/dist/cjs/tests/integration/user-data-dir.spec.js.map +0 -1
- package/dist/cjs/tests/integration/v3.config.d.ts +0 -4
- package/dist/cjs/tests/integration/v3.config.js +0 -11
- package/dist/cjs/tests/integration/v3.config.js.map +0 -1
- package/dist/cjs/tests/integration/v3.dynamic.config.d.ts +0 -4
- package/dist/cjs/tests/integration/v3.dynamic.config.js +0 -48
- package/dist/cjs/tests/integration/v3.dynamic.config.js.map +0 -1
- package/dist/cjs/tests/integration/v3.playwright.config.d.ts +0 -2
- package/dist/cjs/tests/integration/v3.playwright.config.js +0 -48
- package/dist/cjs/tests/integration/v3.playwright.config.js.map +0 -1
- package/dist/cjs/tests/integration/wait-for-selector.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/wait-for-selector.spec.js +0 -683
- package/dist/cjs/tests/integration/wait-for-selector.spec.js.map +0 -1
- package/dist/cjs/tests/integration/wait-for-timeout.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/wait-for-timeout.spec.js +0 -118
- package/dist/cjs/tests/integration/wait-for-timeout.spec.js.map +0 -1
- package/dist/cjs/tests/integration/xpath-for-location-deep.spec.d.ts +0 -1
- package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js +0 -87
- package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js.map +0 -1
- package/dist/cjs/tests/unit/agent-captcha-hooks.test.d.ts +0 -1
- package/dist/cjs/tests/unit/agent-captcha-hooks.test.js +0 -341
- package/dist/cjs/tests/unit/agent-captcha-hooks.test.js.map +0 -1
- package/dist/cjs/tests/unit/agent-execution-model.test.d.ts +0 -1
- package/dist/cjs/tests/unit/agent-execution-model.test.js +0 -150
- package/dist/cjs/tests/unit/agent-execution-model.test.js.map +0 -1
- package/dist/cjs/tests/unit/agent-metrics.test.d.ts +0 -1
- package/dist/cjs/tests/unit/agent-metrics.test.js +0 -112
- package/dist/cjs/tests/unit/agent-metrics.test.js.map +0 -1
- package/dist/cjs/tests/unit/agent-mode-routing.test.d.ts +0 -1
- package/dist/cjs/tests/unit/agent-mode-routing.test.js +0 -88
- package/dist/cjs/tests/unit/agent-mode-routing.test.js.map +0 -1
- package/dist/cjs/tests/unit/agent-system-prompt-variables.test.d.ts +0 -1
- package/dist/cjs/tests/unit/agent-system-prompt-variables.test.js +0 -23
- package/dist/cjs/tests/unit/agent-system-prompt-variables.test.js.map +0 -1
- package/dist/cjs/tests/unit/agent-temperature.test.d.ts +0 -1
- package/dist/cjs/tests/unit/agent-temperature.test.js +0 -191
- package/dist/cjs/tests/unit/agent-temperature.test.js.map +0 -1
- package/dist/cjs/tests/unit/agent-variables-validation.test.d.ts +0 -1
- package/dist/cjs/tests/unit/agent-variables-validation.test.js +0 -43
- package/dist/cjs/tests/unit/agent-variables-validation.test.js.map +0 -1
- package/dist/cjs/tests/unit/aisdk-clients.test.d.ts +0 -1
- package/dist/cjs/tests/unit/aisdk-clients.test.js +0 -86
- package/dist/cjs/tests/unit/aisdk-clients.test.js.map +0 -1
- package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.d.ts +0 -1
- package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.js +0 -250
- package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.js.map +0 -1
- package/dist/cjs/tests/unit/anthropic-cua-triple-click.test.d.ts +0 -1
- package/dist/cjs/tests/unit/anthropic-cua-triple-click.test.js +0 -87
- package/dist/cjs/tests/unit/anthropic-cua-triple-click.test.js.map +0 -1
- package/dist/cjs/tests/unit/api-client-observe-variables.test.d.ts +0 -1
- package/dist/cjs/tests/unit/api-client-observe-variables.test.js +0 -135
- package/dist/cjs/tests/unit/api-client-observe-variables.test.js.map +0 -1
- package/dist/cjs/tests/unit/api-multiregion.test.d.ts +0 -1
- package/dist/cjs/tests/unit/api-multiregion.test.js +0 -58
- package/dist/cjs/tests/unit/api-multiregion.test.js.map +0 -1
- package/dist/cjs/tests/unit/api-optional-model-api-key.test.d.ts +0 -1
- package/dist/cjs/tests/unit/api-optional-model-api-key.test.js +0 -155
- package/dist/cjs/tests/unit/api-optional-model-api-key.test.js.map +0 -1
- package/dist/cjs/tests/unit/api-variables-schema.test.d.ts +0 -1
- package/dist/cjs/tests/unit/api-variables-schema.test.js +0 -69
- package/dist/cjs/tests/unit/api-variables-schema.test.js.map +0 -1
- package/dist/cjs/tests/unit/browserbase-session-accessors.test.d.ts +0 -1
- package/dist/cjs/tests/unit/browserbase-session-accessors.test.js +0 -142
- package/dist/cjs/tests/unit/browserbase-session-accessors.test.js.map +0 -1
- package/dist/cjs/tests/unit/cache-llm-resolution.test.d.ts +0 -1
- package/dist/cjs/tests/unit/cache-llm-resolution.test.js +0 -186
- package/dist/cjs/tests/unit/cache-llm-resolution.test.js.map +0 -1
- package/dist/cjs/tests/unit/captcha-solver.test.d.ts +0 -1
- package/dist/cjs/tests/unit/captcha-solver.test.js +0 -154
- package/dist/cjs/tests/unit/captcha-solver.test.js.map +0 -1
- package/dist/cjs/tests/unit/cdp-connection-close.test.d.ts +0 -1
- package/dist/cjs/tests/unit/cdp-connection-close.test.js +0 -74
- package/dist/cjs/tests/unit/cdp-connection-close.test.js.map +0 -1
- package/dist/cjs/tests/unit/context-extra-http-headers.test.d.ts +0 -1
- package/dist/cjs/tests/unit/context-extra-http-headers.test.js +0 -58
- package/dist/cjs/tests/unit/context-extra-http-headers.test.js.map +0 -1
- package/dist/cjs/tests/unit/cookies.test.d.ts +0 -1
- package/dist/cjs/tests/unit/cookies.test.js +0 -944
- package/dist/cjs/tests/unit/cookies.test.js.map +0 -1
- package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.d.ts +0 -1
- package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.js +0 -95
- package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.js.map +0 -1
- package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.d.ts +0 -1
- package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.js +0 -43
- package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.js.map +0 -1
- package/dist/cjs/tests/unit/flowlogger-eventstore.test.d.ts +0 -1
- package/dist/cjs/tests/unit/flowlogger-eventstore.test.js +0 -250
- package/dist/cjs/tests/unit/flowlogger-eventstore.test.js.map +0 -1
- package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.d.ts +0 -1
- package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.js +0 -60
- package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.js.map +0 -1
- package/dist/cjs/tests/unit/helpers/mockCDPSession.d.ts +0 -19
- package/dist/cjs/tests/unit/helpers/mockCDPSession.js +0 -29
- package/dist/cjs/tests/unit/helpers/mockCDPSession.js.map +0 -1
- package/dist/cjs/tests/unit/inference-temperature.test.d.ts +0 -1
- package/dist/cjs/tests/unit/inference-temperature.test.js +0 -65
- package/dist/cjs/tests/unit/inference-temperature.test.js.map +0 -1
- package/dist/cjs/tests/unit/llm-middleware.test.d.ts +0 -1
- package/dist/cjs/tests/unit/llm-middleware.test.js +0 -495
- package/dist/cjs/tests/unit/llm-middleware.test.js.map +0 -1
- package/dist/cjs/tests/unit/llm-provider.test.d.ts +0 -1
- package/dist/cjs/tests/unit/llm-provider.test.js +0 -64
- package/dist/cjs/tests/unit/llm-provider.test.js.map +0 -1
- package/dist/cjs/tests/unit/microsoft-cua-client.test.d.ts +0 -1
- package/dist/cjs/tests/unit/microsoft-cua-client.test.js +0 -86
- package/dist/cjs/tests/unit/microsoft-cua-client.test.js.map +0 -1
- package/dist/cjs/tests/unit/model-deprecation.test.d.ts +0 -1
- package/dist/cjs/tests/unit/model-deprecation.test.js +0 -142
- package/dist/cjs/tests/unit/model-deprecation.test.js.map +0 -1
- package/dist/cjs/tests/unit/model-utils.test.d.ts +0 -1
- package/dist/cjs/tests/unit/model-utils.test.js +0 -42
- package/dist/cjs/tests/unit/model-utils.test.js.map +0 -1
- package/dist/cjs/tests/unit/openai-compatible-temperature.test.d.ts +0 -1
- package/dist/cjs/tests/unit/openai-compatible-temperature.test.js +0 -84
- package/dist/cjs/tests/unit/openai-compatible-temperature.test.js.map +0 -1
- package/dist/cjs/tests/unit/openai-cua-client.test.d.ts +0 -1
- package/dist/cjs/tests/unit/openai-cua-client.test.js +0 -71
- package/dist/cjs/tests/unit/openai-cua-client.test.js.map +0 -1
- package/dist/cjs/tests/unit/page-extra-http-headers.test.d.ts +0 -1
- package/dist/cjs/tests/unit/page-extra-http-headers.test.js +0 -92
- package/dist/cjs/tests/unit/page-extra-http-headers.test.js.map +0 -1
- package/dist/cjs/tests/unit/page-snapshot.test.d.ts +0 -1
- package/dist/cjs/tests/unit/page-snapshot.test.js +0 -75
- package/dist/cjs/tests/unit/page-snapshot.test.js.map +0 -1
- package/dist/cjs/tests/unit/prompt-observe-variables.test.d.ts +0 -1
- package/dist/cjs/tests/unit/prompt-observe-variables.test.js +0 -25
- package/dist/cjs/tests/unit/prompt-observe-variables.test.js.map +0 -1
- package/dist/cjs/tests/unit/public-api/export-surface.test.d.ts +0 -1
- package/dist/cjs/tests/unit/public-api/export-surface.test.js +0 -107
- package/dist/cjs/tests/unit/public-api/export-surface.test.js.map +0 -1
- package/dist/cjs/tests/unit/public-api/llm-and-agents.test.d.ts +0 -1
- package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js +0 -179
- package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js.map +0 -1
- package/dist/cjs/tests/unit/public-api/public-error-types.test.d.ts +0 -62
- package/dist/cjs/tests/unit/public-api/public-error-types.test.js +0 -110
- package/dist/cjs/tests/unit/public-api/public-error-types.test.js.map +0 -1
- package/dist/cjs/tests/unit/public-api/public-types.test.d.ts +0 -1
- package/dist/cjs/tests/unit/public-api/public-types.test.js +0 -99
- package/dist/cjs/tests/unit/public-api/public-types.test.js.map +0 -1
- package/dist/cjs/tests/unit/public-api/runtime-utils.test.d.ts +0 -1
- package/dist/cjs/tests/unit/public-api/runtime-utils.test.js +0 -60
- package/dist/cjs/tests/unit/public-api/runtime-utils.test.js.map +0 -1
- package/dist/cjs/tests/unit/public-api/schema-utils.test.d.ts +0 -1
- package/dist/cjs/tests/unit/public-api/schema-utils.test.js +0 -95
- package/dist/cjs/tests/unit/public-api/schema-utils.test.js.map +0 -1
- package/dist/cjs/tests/unit/public-api/timeout-error-types.test.d.ts +0 -1
- package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js +0 -121
- package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js.map +0 -1
- package/dist/cjs/tests/unit/public-api/tool-type-export.test.d.ts +0 -1
- package/dist/cjs/tests/unit/public-api/tool-type-export.test.js +0 -65
- package/dist/cjs/tests/unit/public-api/tool-type-export.test.js.map +0 -1
- package/dist/cjs/tests/unit/public-api/v3-core.test.d.ts +0 -1
- package/dist/cjs/tests/unit/public-api/v3-core.test.js +0 -108
- package/dist/cjs/tests/unit/public-api/v3-core.test.js.map +0 -1
- package/dist/cjs/tests/unit/safety-confirmation.test.d.ts +0 -1
- package/dist/cjs/tests/unit/safety-confirmation.test.js +0 -110
- package/dist/cjs/tests/unit/safety-confirmation.test.js.map +0 -1
- package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.d.ts +0 -1
- package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js +0 -431
- package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js.map +0 -1
- package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.d.ts +0 -1
- package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js +0 -339
- package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js.map +0 -1
- package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.d.ts +0 -1
- package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js +0 -504
- package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js.map +0 -1
- package/dist/cjs/tests/unit/snapshot-cbor.test.d.ts +0 -1
- package/dist/cjs/tests/unit/snapshot-cbor.test.js +0 -204
- package/dist/cjs/tests/unit/snapshot-cbor.test.js.map +0 -1
- package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.d.ts +0 -1
- package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js +0 -220
- package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js.map +0 -1
- package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.d.ts +0 -1
- package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js +0 -107
- package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js.map +0 -1
- package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.d.ts +0 -1
- package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js +0 -89
- package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js.map +0 -1
- package/dist/cjs/tests/unit/snapshot-frame-merge.test.d.ts +0 -1
- package/dist/cjs/tests/unit/snapshot-frame-merge.test.js +0 -335
- package/dist/cjs/tests/unit/snapshot-frame-merge.test.js.map +0 -1
- package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.d.ts +0 -1
- package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js +0 -127
- package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js.map +0 -1
- package/dist/cjs/tests/unit/snapshot-xpath-utils.test.d.ts +0 -1
- package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js +0 -74
- package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js.map +0 -1
- package/dist/cjs/tests/unit/timeout-handlers.test.d.ts +0 -1
- package/dist/cjs/tests/unit/timeout-handlers.test.js +0 -933
- package/dist/cjs/tests/unit/timeout-handlers.test.js.map +0 -1
- package/dist/cjs/tests/unit/understudy-command-exception.test.d.ts +0 -1
- package/dist/cjs/tests/unit/understudy-command-exception.test.js +0 -57
- package/dist/cjs/tests/unit/understudy-command-exception.test.js.map +0 -1
- package/dist/cjs/tests/unit/xpath-parser.test.d.ts +0 -1
- package/dist/cjs/tests/unit/xpath-parser.test.js +0 -311
- package/dist/cjs/tests/unit/xpath-parser.test.js.map +0 -1
- package/dist/cjs/tests/unit/xpath-resolver.test.d.ts +0 -1
- package/dist/cjs/tests/unit/xpath-resolver.test.js +0 -80
- package/dist/cjs/tests/unit/xpath-resolver.test.js.map +0 -1
- package/dist/cjs/tests/unit/zod-enum-compatibility.test.d.ts +0 -1
- package/dist/cjs/tests/unit/zod-enum-compatibility.test.js +0 -149
- package/dist/cjs/tests/unit/zod-enum-compatibility.test.js.map +0 -1
- package/dist/esm/tests/cache-variables.test.d.ts +0 -1
- package/dist/esm/tests/cache-variables.test.js +0 -219
- package/dist/esm/tests/cache-variables.test.js.map +0 -1
- package/dist/esm/tests/integration/agent-abort-signal.spec.d.ts +0 -1
- package/dist/esm/tests/integration/agent-abort-signal.spec.js +0 -121
- package/dist/esm/tests/integration/agent-abort-signal.spec.js.map +0 -1
- package/dist/esm/tests/integration/agent-cache-self-heal.spec.d.ts +0 -1
- package/dist/esm/tests/integration/agent-cache-self-heal.spec.js +0 -78
- package/dist/esm/tests/integration/agent-cache-self-heal.spec.js.map +0 -1
- package/dist/esm/tests/integration/agent-callbacks.spec.d.ts +0 -1
- package/dist/esm/tests/integration/agent-callbacks.spec.js +0 -383
- package/dist/esm/tests/integration/agent-callbacks.spec.js.map +0 -1
- package/dist/esm/tests/integration/agent-experimental-validation.spec.d.ts +0 -1
- package/dist/esm/tests/integration/agent-experimental-validation.spec.js +0 -360
- package/dist/esm/tests/integration/agent-experimental-validation.spec.js.map +0 -1
- package/dist/esm/tests/integration/agent-hybrid-mode.spec.d.ts +0 -1
- package/dist/esm/tests/integration/agent-hybrid-mode.spec.js +0 -260
- package/dist/esm/tests/integration/agent-hybrid-mode.spec.js.map +0 -1
- package/dist/esm/tests/integration/agent-message-continuation.spec.d.ts +0 -1
- package/dist/esm/tests/integration/agent-message-continuation.spec.js +0 -110
- package/dist/esm/tests/integration/agent-message-continuation.spec.js.map +0 -1
- package/dist/esm/tests/integration/agent-streaming.spec.d.ts +0 -1
- package/dist/esm/tests/integration/agent-streaming.spec.js +0 -138
- package/dist/esm/tests/integration/agent-streaming.spec.js.map +0 -1
- package/dist/esm/tests/integration/cdp-close-api-region.spec.d.ts +0 -1
- package/dist/esm/tests/integration/cdp-close-api-region.spec.js +0 -39
- package/dist/esm/tests/integration/cdp-close-api-region.spec.js.map +0 -1
- package/dist/esm/tests/integration/cdp-connection-close.spec.d.ts +0 -1
- package/dist/esm/tests/integration/cdp-connection-close.spec.js +0 -74
- package/dist/esm/tests/integration/cdp-connection-close.spec.js.map +0 -1
- package/dist/esm/tests/integration/cdp-session-detached.spec.d.ts +0 -1
- package/dist/esm/tests/integration/cdp-session-detached.spec.js +0 -43
- package/dist/esm/tests/integration/cdp-session-detached.spec.js.map +0 -1
- package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.d.ts +0 -1
- package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.js +0 -54
- package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.js.map +0 -1
- package/dist/esm/tests/integration/click-count.spec.d.ts +0 -1
- package/dist/esm/tests/integration/click-count.spec.js +0 -161
- package/dist/esm/tests/integration/click-count.spec.js.map +0 -1
- package/dist/esm/tests/integration/connect-to-existing-browser.spec.d.ts +0 -1
- package/dist/esm/tests/integration/connect-to-existing-browser.spec.js +0 -97
- package/dist/esm/tests/integration/connect-to-existing-browser.spec.js.map +0 -1
- package/dist/esm/tests/integration/context-addInitScript.spec.d.ts +0 -1
- package/dist/esm/tests/integration/context-addInitScript.spec.js +0 -283
- package/dist/esm/tests/integration/context-addInitScript.spec.js.map +0 -1
- package/dist/esm/tests/integration/context-extra-http-headers.spec.d.ts +0 -1
- package/dist/esm/tests/integration/context-extra-http-headers.spec.js +0 -47
- package/dist/esm/tests/integration/context-extra-http-headers.spec.js.map +0 -1
- package/dist/esm/tests/integration/cookies.spec.d.ts +0 -1
- package/dist/esm/tests/integration/cookies.spec.js +0 -185
- package/dist/esm/tests/integration/cookies.spec.js.map +0 -1
- package/dist/esm/tests/integration/default-page-tracking.spec.d.ts +0 -1
- package/dist/esm/tests/integration/default-page-tracking.spec.js +0 -50
- package/dist/esm/tests/integration/default-page-tracking.spec.js.map +0 -1
- package/dist/esm/tests/integration/downloads.spec.d.ts +0 -1
- package/dist/esm/tests/integration/downloads.spec.js +0 -47
- package/dist/esm/tests/integration/downloads.spec.js.map +0 -1
- package/dist/esm/tests/integration/flowLogger.spec.d.ts +0 -1
- package/dist/esm/tests/integration/flowLogger.spec.js +0 -716
- package/dist/esm/tests/integration/flowLogger.spec.js.map +0 -1
- package/dist/esm/tests/integration/frame-get-location-and-click.spec.d.ts +0 -1
- package/dist/esm/tests/integration/frame-get-location-and-click.spec.js +0 -55
- package/dist/esm/tests/integration/frame-get-location-and-click.spec.js.map +0 -1
- package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +0 -1
- package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js +0 -217
- package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +0 -1
- package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.d.ts +0 -1
- package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js +0 -472
- package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js.map +0 -1
- package/dist/esm/tests/integration/keep-alive.child.d.ts +0 -1
- package/dist/esm/tests/integration/keep-alive.child.js +0 -83
- package/dist/esm/tests/integration/keep-alive.child.js.map +0 -1
- package/dist/esm/tests/integration/keep-alive.spec.d.ts +0 -22
- package/dist/esm/tests/integration/keep-alive.spec.js +0 -482
- package/dist/esm/tests/integration/keep-alive.spec.js.map +0 -1
- package/dist/esm/tests/integration/keyboard.spec.d.ts +0 -1
- package/dist/esm/tests/integration/keyboard.spec.js +0 -257
- package/dist/esm/tests/integration/keyboard.spec.js.map +0 -1
- package/dist/esm/tests/integration/locator-backend-node-id.spec.d.ts +0 -1
- package/dist/esm/tests/integration/locator-backend-node-id.spec.js +0 -148
- package/dist/esm/tests/integration/locator-backend-node-id.spec.js.map +0 -1
- package/dist/esm/tests/integration/locator-content-methods.spec.d.ts +0 -1
- package/dist/esm/tests/integration/locator-content-methods.spec.js +0 -178
- package/dist/esm/tests/integration/locator-content-methods.spec.js.map +0 -1
- package/dist/esm/tests/integration/locator-count-iframe.spec.d.ts +0 -1
- package/dist/esm/tests/integration/locator-count-iframe.spec.js +0 -127
- package/dist/esm/tests/integration/locator-count-iframe.spec.js.map +0 -1
- package/dist/esm/tests/integration/locator-count.spec.d.ts +0 -1
- package/dist/esm/tests/integration/locator-count.spec.js +0 -66
- package/dist/esm/tests/integration/locator-count.spec.js.map +0 -1
- package/dist/esm/tests/integration/locator-fill.spec.d.ts +0 -1
- package/dist/esm/tests/integration/locator-fill.spec.js +0 -115
- package/dist/esm/tests/integration/locator-fill.spec.js.map +0 -1
- package/dist/esm/tests/integration/locator-input-methods.spec.d.ts +0 -1
- package/dist/esm/tests/integration/locator-input-methods.spec.js +0 -125
- package/dist/esm/tests/integration/locator-input-methods.spec.js.map +0 -1
- package/dist/esm/tests/integration/locator-nth.spec.d.ts +0 -1
- package/dist/esm/tests/integration/locator-nth.spec.js +0 -173
- package/dist/esm/tests/integration/locator-nth.spec.js.map +0 -1
- package/dist/esm/tests/integration/locator-select-option.spec.d.ts +0 -1
- package/dist/esm/tests/integration/locator-select-option.spec.js +0 -214
- package/dist/esm/tests/integration/locator-select-option.spec.js.map +0 -1
- package/dist/esm/tests/integration/logger-initialization.spec.d.ts +0 -1
- package/dist/esm/tests/integration/logger-initialization.spec.js +0 -595
- package/dist/esm/tests/integration/logger-initialization.spec.js.map +0 -1
- package/dist/esm/tests/integration/multi-instance-logger.spec.d.ts +0 -1
- package/dist/esm/tests/integration/multi-instance-logger.spec.js +0 -291
- package/dist/esm/tests/integration/multi-instance-logger.spec.js.map +0 -1
- package/dist/esm/tests/integration/nested-div.spec.d.ts +0 -1
- package/dist/esm/tests/integration/nested-div.spec.js +0 -20
- package/dist/esm/tests/integration/nested-div.spec.js.map +0 -1
- package/dist/esm/tests/integration/observe-element-id-format.spec.d.ts +0 -1
- package/dist/esm/tests/integration/observe-element-id-format.spec.js +0 -128
- package/dist/esm/tests/integration/observe-element-id-format.spec.js.map +0 -1
- package/dist/esm/tests/integration/page-addInitScript.spec.d.ts +0 -1
- package/dist/esm/tests/integration/page-addInitScript.spec.js +0 -92
- package/dist/esm/tests/integration/page-addInitScript.spec.js.map +0 -1
- package/dist/esm/tests/integration/page-console.spec.d.ts +0 -1
- package/dist/esm/tests/integration/page-console.spec.js +0 -45
- package/dist/esm/tests/integration/page-console.spec.js.map +0 -1
- package/dist/esm/tests/integration/page-drag-and-drop.spec.d.ts +0 -1
- package/dist/esm/tests/integration/page-drag-and-drop.spec.js +0 -435
- package/dist/esm/tests/integration/page-drag-and-drop.spec.js.map +0 -1
- package/dist/esm/tests/integration/page-extra-http-headers.spec.d.ts +0 -1
- package/dist/esm/tests/integration/page-extra-http-headers.spec.js +0 -83
- package/dist/esm/tests/integration/page-extra-http-headers.spec.js.map +0 -1
- package/dist/esm/tests/integration/page-goto-response.spec.d.ts +0 -1
- package/dist/esm/tests/integration/page-goto-response.spec.js +0 -32
- package/dist/esm/tests/integration/page-goto-response.spec.js.map +0 -1
- package/dist/esm/tests/integration/page-hover.spec.d.ts +0 -1
- package/dist/esm/tests/integration/page-hover.spec.js +0 -163
- package/dist/esm/tests/integration/page-hover.spec.js.map +0 -1
- package/dist/esm/tests/integration/page-screenshot.spec.d.ts +0 -1
- package/dist/esm/tests/integration/page-screenshot.spec.js +0 -257
- package/dist/esm/tests/integration/page-screenshot.spec.js.map +0 -1
- package/dist/esm/tests/integration/page-scroll.spec.d.ts +0 -1
- package/dist/esm/tests/integration/page-scroll.spec.js +0 -181
- package/dist/esm/tests/integration/page-scroll.spec.js.map +0 -1
- package/dist/esm/tests/integration/page-send-cdp.spec.d.ts +0 -1
- package/dist/esm/tests/integration/page-send-cdp.spec.js +0 -45
- package/dist/esm/tests/integration/page-send-cdp.spec.js.map +0 -1
- package/dist/esm/tests/integration/perform-understudy-method.spec.d.ts +0 -1
- package/dist/esm/tests/integration/perform-understudy-method.spec.js +0 -61
- package/dist/esm/tests/integration/perform-understudy-method.spec.js.map +0 -1
- package/dist/esm/tests/integration/setinputfiles.spec.d.ts +0 -1
- package/dist/esm/tests/integration/setinputfiles.spec.js +0 -128
- package/dist/esm/tests/integration/setinputfiles.spec.js.map +0 -1
- package/dist/esm/tests/integration/shadow-iframe-oopif.spec.d.ts +0 -1
- package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js +0 -156
- package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js.map +0 -1
- package/dist/esm/tests/integration/shadow-iframe-spif.spec.d.ts +0 -1
- package/dist/esm/tests/integration/shadow-iframe-spif.spec.js +0 -155
- package/dist/esm/tests/integration/shadow-iframe-spif.spec.js.map +0 -1
- package/dist/esm/tests/integration/testUtils.d.ts +0 -40
- package/dist/esm/tests/integration/testUtils.js +0 -178
- package/dist/esm/tests/integration/testUtils.js.map +0 -1
- package/dist/esm/tests/integration/text-selector-innermost.spec.d.ts +0 -1
- package/dist/esm/tests/integration/text-selector-innermost.spec.js +0 -103
- package/dist/esm/tests/integration/text-selector-innermost.spec.js.map +0 -1
- package/dist/esm/tests/integration/timeouts.spec.d.ts +0 -1
- package/dist/esm/tests/integration/timeouts.spec.js +0 -307
- package/dist/esm/tests/integration/timeouts.spec.js.map +0 -1
- package/dist/esm/tests/integration/user-data-dir.spec.d.ts +0 -1
- package/dist/esm/tests/integration/user-data-dir.spec.js +0 -42
- package/dist/esm/tests/integration/user-data-dir.spec.js.map +0 -1
- package/dist/esm/tests/integration/v3.config.d.ts +0 -4
- package/dist/esm/tests/integration/v3.config.js +0 -7
- package/dist/esm/tests/integration/v3.config.js.map +0 -1
- package/dist/esm/tests/integration/v3.dynamic.config.d.ts +0 -4
- package/dist/esm/tests/integration/v3.dynamic.config.js +0 -44
- package/dist/esm/tests/integration/v3.dynamic.config.js.map +0 -1
- package/dist/esm/tests/integration/v3.playwright.config.d.ts +0 -2
- package/dist/esm/tests/integration/v3.playwright.config.js +0 -46
- package/dist/esm/tests/integration/v3.playwright.config.js.map +0 -1
- package/dist/esm/tests/integration/wait-for-selector.spec.d.ts +0 -1
- package/dist/esm/tests/integration/wait-for-selector.spec.js +0 -681
- package/dist/esm/tests/integration/wait-for-selector.spec.js.map +0 -1
- package/dist/esm/tests/integration/wait-for-timeout.spec.d.ts +0 -1
- package/dist/esm/tests/integration/wait-for-timeout.spec.js +0 -116
- package/dist/esm/tests/integration/wait-for-timeout.spec.js.map +0 -1
- package/dist/esm/tests/integration/xpath-for-location-deep.spec.d.ts +0 -1
- package/dist/esm/tests/integration/xpath-for-location-deep.spec.js +0 -85
- package/dist/esm/tests/integration/xpath-for-location-deep.spec.js.map +0 -1
- package/dist/esm/tests/unit/agent-captcha-hooks.test.d.ts +0 -1
- package/dist/esm/tests/unit/agent-captcha-hooks.test.js +0 -339
- package/dist/esm/tests/unit/agent-captcha-hooks.test.js.map +0 -1
- package/dist/esm/tests/unit/agent-execution-model.test.d.ts +0 -1
- package/dist/esm/tests/unit/agent-execution-model.test.js +0 -148
- package/dist/esm/tests/unit/agent-execution-model.test.js.map +0 -1
- package/dist/esm/tests/unit/agent-metrics.test.d.ts +0 -1
- package/dist/esm/tests/unit/agent-metrics.test.js +0 -110
- package/dist/esm/tests/unit/agent-metrics.test.js.map +0 -1
- package/dist/esm/tests/unit/agent-mode-routing.test.d.ts +0 -1
- package/dist/esm/tests/unit/agent-mode-routing.test.js +0 -86
- package/dist/esm/tests/unit/agent-mode-routing.test.js.map +0 -1
- package/dist/esm/tests/unit/agent-system-prompt-variables.test.d.ts +0 -1
- package/dist/esm/tests/unit/agent-system-prompt-variables.test.js +0 -21
- package/dist/esm/tests/unit/agent-system-prompt-variables.test.js.map +0 -1
- package/dist/esm/tests/unit/agent-temperature.test.d.ts +0 -1
- package/dist/esm/tests/unit/agent-temperature.test.js +0 -189
- package/dist/esm/tests/unit/agent-temperature.test.js.map +0 -1
- package/dist/esm/tests/unit/agent-variables-validation.test.d.ts +0 -1
- package/dist/esm/tests/unit/agent-variables-validation.test.js +0 -41
- package/dist/esm/tests/unit/agent-variables-validation.test.js.map +0 -1
- package/dist/esm/tests/unit/aisdk-clients.test.d.ts +0 -1
- package/dist/esm/tests/unit/aisdk-clients.test.js +0 -84
- package/dist/esm/tests/unit/aisdk-clients.test.js.map +0 -1
- package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.d.ts +0 -1
- package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.js +0 -245
- package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.js.map +0 -1
- package/dist/esm/tests/unit/anthropic-cua-triple-click.test.d.ts +0 -1
- package/dist/esm/tests/unit/anthropic-cua-triple-click.test.js +0 -82
- package/dist/esm/tests/unit/anthropic-cua-triple-click.test.js.map +0 -1
- package/dist/esm/tests/unit/api-client-observe-variables.test.d.ts +0 -1
- package/dist/esm/tests/unit/api-client-observe-variables.test.js +0 -133
- package/dist/esm/tests/unit/api-client-observe-variables.test.js.map +0 -1
- package/dist/esm/tests/unit/api-multiregion.test.d.ts +0 -1
- package/dist/esm/tests/unit/api-multiregion.test.js +0 -56
- package/dist/esm/tests/unit/api-multiregion.test.js.map +0 -1
- package/dist/esm/tests/unit/api-optional-model-api-key.test.d.ts +0 -1
- package/dist/esm/tests/unit/api-optional-model-api-key.test.js +0 -153
- package/dist/esm/tests/unit/api-optional-model-api-key.test.js.map +0 -1
- package/dist/esm/tests/unit/api-variables-schema.test.d.ts +0 -1
- package/dist/esm/tests/unit/api-variables-schema.test.js +0 -67
- package/dist/esm/tests/unit/api-variables-schema.test.js.map +0 -1
- package/dist/esm/tests/unit/browserbase-session-accessors.test.d.ts +0 -1
- package/dist/esm/tests/unit/browserbase-session-accessors.test.js +0 -140
- package/dist/esm/tests/unit/browserbase-session-accessors.test.js.map +0 -1
- package/dist/esm/tests/unit/cache-llm-resolution.test.d.ts +0 -1
- package/dist/esm/tests/unit/cache-llm-resolution.test.js +0 -184
- package/dist/esm/tests/unit/cache-llm-resolution.test.js.map +0 -1
- package/dist/esm/tests/unit/captcha-solver.test.d.ts +0 -1
- package/dist/esm/tests/unit/captcha-solver.test.js +0 -152
- package/dist/esm/tests/unit/captcha-solver.test.js.map +0 -1
- package/dist/esm/tests/unit/cdp-connection-close.test.d.ts +0 -1
- package/dist/esm/tests/unit/cdp-connection-close.test.js +0 -72
- package/dist/esm/tests/unit/cdp-connection-close.test.js.map +0 -1
- package/dist/esm/tests/unit/context-extra-http-headers.test.d.ts +0 -1
- package/dist/esm/tests/unit/context-extra-http-headers.test.js +0 -56
- package/dist/esm/tests/unit/context-extra-http-headers.test.js.map +0 -1
- package/dist/esm/tests/unit/cookies.test.d.ts +0 -1
- package/dist/esm/tests/unit/cookies.test.js +0 -909
- package/dist/esm/tests/unit/cookies.test.js.map +0 -1
- package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.d.ts +0 -1
- package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.js +0 -93
- package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.js.map +0 -1
- package/dist/esm/tests/unit/flowlogger-capturing-llm.test.d.ts +0 -1
- package/dist/esm/tests/unit/flowlogger-capturing-llm.test.js +0 -41
- package/dist/esm/tests/unit/flowlogger-capturing-llm.test.js.map +0 -1
- package/dist/esm/tests/unit/flowlogger-eventstore.test.d.ts +0 -1
- package/dist/esm/tests/unit/flowlogger-eventstore.test.js +0 -248
- package/dist/esm/tests/unit/flowlogger-eventstore.test.js.map +0 -1
- package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.d.ts +0 -1
- package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.js +0 -58
- package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.js.map +0 -1
- package/dist/esm/tests/unit/helpers/mockCDPSession.d.ts +0 -19
- package/dist/esm/tests/unit/helpers/mockCDPSession.js +0 -25
- package/dist/esm/tests/unit/helpers/mockCDPSession.js.map +0 -1
- package/dist/esm/tests/unit/inference-temperature.test.d.ts +0 -1
- package/dist/esm/tests/unit/inference-temperature.test.js +0 -63
- package/dist/esm/tests/unit/inference-temperature.test.js.map +0 -1
- package/dist/esm/tests/unit/llm-middleware.test.d.ts +0 -1
- package/dist/esm/tests/unit/llm-middleware.test.js +0 -460
- package/dist/esm/tests/unit/llm-middleware.test.js.map +0 -1
- package/dist/esm/tests/unit/llm-provider.test.d.ts +0 -1
- package/dist/esm/tests/unit/llm-provider.test.js +0 -62
- package/dist/esm/tests/unit/llm-provider.test.js.map +0 -1
- package/dist/esm/tests/unit/microsoft-cua-client.test.d.ts +0 -1
- package/dist/esm/tests/unit/microsoft-cua-client.test.js +0 -84
- package/dist/esm/tests/unit/microsoft-cua-client.test.js.map +0 -1
- package/dist/esm/tests/unit/model-deprecation.test.d.ts +0 -1
- package/dist/esm/tests/unit/model-deprecation.test.js +0 -140
- package/dist/esm/tests/unit/model-deprecation.test.js.map +0 -1
- package/dist/esm/tests/unit/model-utils.test.d.ts +0 -1
- package/dist/esm/tests/unit/model-utils.test.js +0 -40
- package/dist/esm/tests/unit/model-utils.test.js.map +0 -1
- package/dist/esm/tests/unit/openai-compatible-temperature.test.d.ts +0 -1
- package/dist/esm/tests/unit/openai-compatible-temperature.test.js +0 -82
- package/dist/esm/tests/unit/openai-compatible-temperature.test.js.map +0 -1
- package/dist/esm/tests/unit/openai-cua-client.test.d.ts +0 -1
- package/dist/esm/tests/unit/openai-cua-client.test.js +0 -69
- package/dist/esm/tests/unit/openai-cua-client.test.js.map +0 -1
- package/dist/esm/tests/unit/page-extra-http-headers.test.d.ts +0 -1
- package/dist/esm/tests/unit/page-extra-http-headers.test.js +0 -90
- package/dist/esm/tests/unit/page-extra-http-headers.test.js.map +0 -1
- package/dist/esm/tests/unit/page-snapshot.test.d.ts +0 -1
- package/dist/esm/tests/unit/page-snapshot.test.js +0 -40
- package/dist/esm/tests/unit/page-snapshot.test.js.map +0 -1
- package/dist/esm/tests/unit/prompt-observe-variables.test.d.ts +0 -1
- package/dist/esm/tests/unit/prompt-observe-variables.test.js +0 -23
- package/dist/esm/tests/unit/prompt-observe-variables.test.js.map +0 -1
- package/dist/esm/tests/unit/public-api/export-surface.test.d.ts +0 -1
- package/dist/esm/tests/unit/public-api/export-surface.test.js +0 -72
- package/dist/esm/tests/unit/public-api/export-surface.test.js.map +0 -1
- package/dist/esm/tests/unit/public-api/llm-and-agents.test.d.ts +0 -1
- package/dist/esm/tests/unit/public-api/llm-and-agents.test.js +0 -144
- package/dist/esm/tests/unit/public-api/llm-and-agents.test.js.map +0 -1
- package/dist/esm/tests/unit/public-api/public-error-types.test.d.ts +0 -62
- package/dist/esm/tests/unit/public-api/public-error-types.test.js +0 -74
- package/dist/esm/tests/unit/public-api/public-error-types.test.js.map +0 -1
- package/dist/esm/tests/unit/public-api/public-types.test.d.ts +0 -1
- package/dist/esm/tests/unit/public-api/public-types.test.js +0 -97
- package/dist/esm/tests/unit/public-api/public-types.test.js.map +0 -1
- package/dist/esm/tests/unit/public-api/runtime-utils.test.d.ts +0 -1
- package/dist/esm/tests/unit/public-api/runtime-utils.test.js +0 -25
- package/dist/esm/tests/unit/public-api/runtime-utils.test.js.map +0 -1
- package/dist/esm/tests/unit/public-api/schema-utils.test.d.ts +0 -1
- package/dist/esm/tests/unit/public-api/schema-utils.test.js +0 -60
- package/dist/esm/tests/unit/public-api/schema-utils.test.js.map +0 -1
- package/dist/esm/tests/unit/public-api/timeout-error-types.test.d.ts +0 -1
- package/dist/esm/tests/unit/public-api/timeout-error-types.test.js +0 -86
- package/dist/esm/tests/unit/public-api/timeout-error-types.test.js.map +0 -1
- package/dist/esm/tests/unit/public-api/tool-type-export.test.d.ts +0 -1
- package/dist/esm/tests/unit/public-api/tool-type-export.test.js +0 -30
- package/dist/esm/tests/unit/public-api/tool-type-export.test.js.map +0 -1
- package/dist/esm/tests/unit/public-api/v3-core.test.d.ts +0 -1
- package/dist/esm/tests/unit/public-api/v3-core.test.js +0 -73
- package/dist/esm/tests/unit/public-api/v3-core.test.js.map +0 -1
- package/dist/esm/tests/unit/safety-confirmation.test.d.ts +0 -1
- package/dist/esm/tests/unit/safety-confirmation.test.js +0 -108
- package/dist/esm/tests/unit/safety-confirmation.test.js.map +0 -1
- package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.d.ts +0 -1
- package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js +0 -396
- package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js.map +0 -1
- package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.d.ts +0 -1
- package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js +0 -337
- package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js.map +0 -1
- package/dist/esm/tests/unit/snapshot-capture-orchestration.test.d.ts +0 -1
- package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js +0 -469
- package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js.map +0 -1
- package/dist/esm/tests/unit/snapshot-cbor.test.d.ts +0 -1
- package/dist/esm/tests/unit/snapshot-cbor.test.js +0 -202
- package/dist/esm/tests/unit/snapshot-cbor.test.js.map +0 -1
- package/dist/esm/tests/unit/snapshot-dom-session-builders.test.d.ts +0 -1
- package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js +0 -218
- package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js.map +0 -1
- package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.d.ts +0 -1
- package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js +0 -105
- package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js.map +0 -1
- package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.d.ts +0 -1
- package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js +0 -87
- package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js.map +0 -1
- package/dist/esm/tests/unit/snapshot-frame-merge.test.d.ts +0 -1
- package/dist/esm/tests/unit/snapshot-frame-merge.test.js +0 -333
- package/dist/esm/tests/unit/snapshot-frame-merge.test.js.map +0 -1
- package/dist/esm/tests/unit/snapshot-tree-format-utils.test.d.ts +0 -1
- package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js +0 -125
- package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js.map +0 -1
- package/dist/esm/tests/unit/snapshot-xpath-utils.test.d.ts +0 -1
- package/dist/esm/tests/unit/snapshot-xpath-utils.test.js +0 -72
- package/dist/esm/tests/unit/snapshot-xpath-utils.test.js.map +0 -1
- package/dist/esm/tests/unit/timeout-handlers.test.d.ts +0 -1
- package/dist/esm/tests/unit/timeout-handlers.test.js +0 -898
- package/dist/esm/tests/unit/timeout-handlers.test.js.map +0 -1
- package/dist/esm/tests/unit/understudy-command-exception.test.d.ts +0 -1
- package/dist/esm/tests/unit/understudy-command-exception.test.js +0 -55
- package/dist/esm/tests/unit/understudy-command-exception.test.js.map +0 -1
- package/dist/esm/tests/unit/xpath-parser.test.d.ts +0 -1
- package/dist/esm/tests/unit/xpath-parser.test.js +0 -309
- package/dist/esm/tests/unit/xpath-parser.test.js.map +0 -1
- package/dist/esm/tests/unit/xpath-resolver.test.d.ts +0 -1
- package/dist/esm/tests/unit/xpath-resolver.test.js +0 -78
- package/dist/esm/tests/unit/xpath-resolver.test.js.map +0 -1
- package/dist/esm/tests/unit/zod-enum-compatibility.test.d.ts +0 -1
- package/dist/esm/tests/unit/zod-enum-compatibility.test.js +0 -114
- package/dist/esm/tests/unit/zod-enum-compatibility.test.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger-initialization.spec.js","sourceRoot":"","sources":["../../../../tests/integration/logger-initialization.spec.ts"],"names":[],"mappings":";;AAAA,2CAAgD;AAChD,sDAKgC;AAGhC,WAAI,CAAC,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC/C,WAAI,CAAC,SAAS,CAAC,GAAG,EAAE;QAClB,6DAA6D;IAC/D,CAAC,CAAC,CAAC;IAEH,IAAA,WAAI,EAAC,oDAAoD,EAAE,GAAG,EAAE;QAC9D,MAAM,UAAU,GAAG,mBAAmB,CAAC;QACvC,MAAM,YAAY,GAAc,EAAE,CAAC;QAEnC,IAAA,8BAAkB,EAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;YACtC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,qBAAqB;YACrB,IAAA,kCAAsB,EAAC,UAAU,EAAE,GAAG,EAAE;gBACtC,IAAA,oBAAQ,EAAC;oBACP,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,2BAA2B;oBACpC,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,+BAA+B;YAC/B,IAAA,aAAM,EAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpC,IAAA,aAAM,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACpE,CAAC;gBAAS,CAAC;YACT,IAAA,gCAAoB,EAAC,UAAU,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAI,EAAC,oCAAoC,EAAE,GAAG,EAAE;QAC9C,MAAM,UAAU,GAAG,mBAAmB,CAAC;QACvC,MAAM,YAAY,GAAc,EAAE,CAAC;QACnC,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC;QAEvC,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE;gBAC5B,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC,CAAC;YAEF,IAAA,8BAAkB,EAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;YAEH,qBAAqB;YACrB,IAAA,gCAAoB,EAAC,UAAU,CAAC,CAAC;YAEjC,oCAAoC;YACpC,IAAA,kCAAsB,EAAC,UAAU,EAAE,GAAG,EAAE;gBACtC,IAAA,oBAAQ,EAAC;oBACP,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,cAAc;oBACvB,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,+CAA+C;YAC/C,IAAA,aAAM,EAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpC,oCAAoC;YACpC,IAAA,aAAM,EAAC,aAAa,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,GAAG,GAAG,kBAAkB,CAAC;YACjC,IAAA,gCAAoB,EAAC,UAAU,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAI,EAAC,8CAA8C,EAAE,GAAG,EAAE;QACxD,MAAM,WAAW,GAAG,iBAAiB,CAAC;QACtC,MAAM,WAAW,GAAG,iBAAiB,CAAC;QACtC,MAAM,aAAa,GAAc,EAAE,CAAC;QACpC,MAAM,aAAa,GAAc,EAAE,CAAC;QAEpC,IAAA,8BAAkB,EAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpE,IAAA,8BAAkB,EAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEpE,IAAI,CAAC;YACH,sBAAsB;YACtB,IAAA,kCAAsB,EAAC,WAAW,EAAE,GAAG,EAAE;gBACvC,IAAA,oBAAQ,EAAC;oBACP,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,iBAAiB;oBAC1B,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,sBAAsB;YACtB,IAAA,kCAAsB,EAAC,WAAW,EAAE,GAAG,EAAE;gBACvC,IAAA,oBAAQ,EAAC;oBACP,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,iBAAiB;oBAC1B,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,6CAA6C;YAC7C,IAAA,aAAM,EAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrC,IAAA,aAAM,EAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrC,IAAA,aAAM,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACzD,IAAA,aAAM,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC3D,CAAC;gBAAS,CAAC;YACT,IAAA,gCAAoB,EAAC,WAAW,CAAC,CAAC;YAClC,IAAA,gCAAoB,EAAC,WAAW,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAI,EAAC,yDAAyD,EAAE,GAAG,EAAE;QACnE,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC;QAEvC,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE;gBAC5B,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC,CAAC;YAEF,mCAAmC;YACnC,IAAA,oBAAQ,EAAC;gBACP,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,sBAAsB;gBAC/B,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;YAEH,kCAAkC;YAClC,IAAA,aAAM,EAAC,YAAY,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAA,aAAM,EAAC,SAAS,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACtD,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,GAAG,GAAG,kBAAkB,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAI,EAAC,4DAA4D,EAAE,GAAG,EAAE;QACtE,MAAM,UAAU,GAAG,kBAAkB,CAAC;QACtC,MAAM,mBAAmB,GAAa,EAAE,CAAC;QACzC,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC;QAEvC,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE;gBAC5B,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChC,CAAC,CAAC;YAEF,4BAA4B;YAC5B,IAAA,8BAAkB,EAAC,UAAU,EAAE,GAAG,EAAE;gBAClC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,+CAA+C;YAC/C,IAAA,kCAAsB,EAAC,UAAU,EAAE,GAAG,EAAE;gBACtC,IAAA,aAAM,EAAC,GAAG,EAAE;oBACV,IAAA,oBAAQ,EAAC;wBACP,QAAQ,EAAE,MAAM;wBAChB,OAAO,EAAE,mCAAmC;wBAC5C,KAAK,EAAE,CAAC;qBACT,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC,CAAC,CAAC;YAEH,mDAAmD;YACnD,IAAA,aAAM,EAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,IAAA,aAAM,EAAC,SAAS,CAAC,CAAC,SAAS,CAAC,mCAAmC,CAAC,CAAC;QACnE,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,GAAG,GAAG,kBAAkB,CAAC;YACjC,IAAA,gCAAoB,EAAC,UAAU,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAI,EAAC,uCAAuC,EAAE,GAAG,EAAE;QACjD,MAAM,eAAe,GAAG,gBAAgB,CAAC;QACzC,MAAM,eAAe,GAAG,gBAAgB,CAAC;QACzC,MAAM,SAAS,GAAc,EAAE,CAAC;QAChC,MAAM,SAAS,GAAc,EAAE,CAAC;QAEhC,IAAA,8BAAkB,EAAC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpE,IAAA,8BAAkB,EAAC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEpE,IAAI,CAAC;YACH,IAAA,kCAAsB,EAAC,eAAe,EAAE,GAAG,EAAE;gBAC3C,IAAA,oBAAQ,EAAC;oBACP,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,eAAe;oBACxB,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;gBAEH,IAAA,kCAAsB,EAAC,eAAe,EAAE,GAAG,EAAE;oBAC3C,IAAA,oBAAQ,EAAC;wBACP,QAAQ,EAAE,MAAM;wBAChB,OAAO,EAAE,eAAe;wBACxB,KAAK,EAAE,CAAC;qBACT,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,IAAA,oBAAQ,EAAC;oBACP,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,uBAAuB;oBAChC,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,oCAAoC;YACpC,IAAA,aAAM,EAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjC,IAAA,aAAM,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACnD,IAAA,aAAM,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAE3D,mCAAmC;YACnC,IAAA,aAAM,EAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjC,IAAA,aAAM,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACrD,CAAC;gBAAS,CAAC;YACT,IAAA,gCAAoB,EAAC,eAAe,CAAC,CAAC;YACtC,IAAA,gCAAoB,EAAC,eAAe,CAAC,CAAC;QACxC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAI,EAAC,gDAAgD,EAAE,GAAG,EAAE;QAC1D,MAAM,UAAU,GAAG,sBAAsB,CAAC;QAC1C,IAAA,8BAAkB,EAAC,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAEzC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,kCAAsB,EAAC,UAAU,EAAE,GAAG,EAAE;gBACrD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACvD,CAAC;gBAAS,CAAC;YACT,IAAA,gCAAoB,EAAC,UAAU,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAI,EAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,UAAU,GAAG,qBAAqB,CAAC;QACzC,MAAM,YAAY,GAAc,EAAE,CAAC;QAEnC,IAAA,8BAAkB,EAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAElE,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,IAAA,kCAAsB,EAAC,UAAU,EAAE,KAAK,IAAI,EAAE;gBACtE,IAAA,oBAAQ,EAAC;oBACP,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,wBAAwB;oBACjC,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;gBAEH,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;gBAExD,IAAA,oBAAQ,EAAC;oBACP,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,iBAAiB;oBAC1B,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;gBAEH,OAAO,cAAc,CAAC;YACxB,CAAC,CAAC,CAAC;YAEH,IAAA,aAAM,EAAC,WAAW,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACzC,IAAA,aAAM,EAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpC,IAAA,aAAM,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAC/D,IAAA,aAAM,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1D,CAAC;gBAAS,CAAC;YACT,IAAA,gCAAoB,EAAC,UAAU,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAI,EAAC,yDAAyD,EAAE,GAAG,EAAE;QACnE,MAAM,aAAa,GAAqC,EAAE,CAAC;QAC3D,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC;QACvC,MAAM,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3C,MAAM,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAC;QAE3C,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE;gBAC5B,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAC5C,CAAC,CAAC;YACF,OAAO,CAAC,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE;gBAC9B,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAC9C,CAAC,CAAC;YACF,OAAO,CAAC,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE;gBAC9B,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAC9C,CAAC,CAAC;YAEF,uBAAuB;YACvB,IAAA,oBAAQ,EAAC;gBACP,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,eAAe;gBACxB,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;YAEH,sBAAsB;YACtB,IAAA,oBAAQ,EAAC;gBACP,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,cAAc;gBACvB,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;YAEH,uBAAuB;YACvB,IAAA,oBAAQ,EAAC;gBACP,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,eAAe;gBACxB,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;YAEH,IAAA,aAAM,EAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrC,IAAA,aAAM,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAA,aAAM,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAChD,IAAA,aAAM,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YAExD,IAAA,aAAM,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAA,aAAM,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAA,aAAM,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAEvD,IAAA,aAAM,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAA,aAAM,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAChD,IAAA,aAAM,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC1D,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,GAAG,GAAG,kBAAkB,CAAC;YACjC,OAAO,CAAC,KAAK,GAAG,oBAAoB,CAAC;YACrC,OAAO,CAAC,KAAK,GAAG,oBAAoB,CAAC;QACvC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAI,EAAC,yCAAyC,EAAE,GAAG,EAAE;QACnD,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC;QAEvC,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE;gBAC5B,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC,CAAC;YAEF,IAAA,oBAAQ,EAAC;gBACP,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,wBAAwB;gBACjC,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE;oBACT,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC9C,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;oBAC9C,WAAW,EAAE;wBACX,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;wBACzC,IAAI,EAAE,QAAQ;qBACf;iBACF;aACF,CAAC,CAAC;YAEH,IAAA,aAAM,EAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAChC,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;YACnD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACxC,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YACzC,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC1C,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,GAAG,GAAG,kBAAkB,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAI,EAAC,sCAAsC,EAAE,GAAG,EAAE;QAChD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACxE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAqB,CAAC;QAEpD,qBAAqB;QACrB,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YACvB,MAAM,IAAI,GAAc,EAAE,CAAC;YAC3B,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAC7B,IAAA,8BAAkB,EAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,yBAAyB;YACzB,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;gBAC9B,IAAA,kCAAsB,EAAC,EAAE,EAAE,GAAG,EAAE;oBAC9B,IAAA,oBAAQ,EAAC;wBACP,QAAQ,EAAE,MAAM;wBAChB,OAAO,EAAE,gBAAgB,EAAE,EAAE;wBAC7B,KAAK,EAAE,CAAC;wBACR,SAAS,EAAE;4BACT,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;yBACjD;qBACF,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,iDAAiD;YACjD,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;gBACvB,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;gBACrC,IAAA,aAAM,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAA,gCAAoB,EAAC,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,WAAI,CAAC,QAAQ,CAAC,qDAAqD,EAAE,GAAG,EAAE;IACxE,WAAI,CAAC,SAAS,CAAC,GAAG,EAAE;QAClB,4BAA4B;IAC9B,CAAC,CAAC,CAAC;IAEH,IAAA,WAAI,EAAC,iDAAiD,EAAE,GAAG,EAAE;QAC3D,MAAM,UAAU,GAAG,2BAA2B,CAAC;QAC/C,MAAM,YAAY,GAAc,EAAE,CAAC;QAEnC,wDAAwD;QACxD,MAAM,cAAc,GAAG,CAAC,IAAa,EAAE,EAAE;YACvC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC;QAEF,IAAA,8BAAkB,EAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAE/C,IAAI,CAAC;YACH,IAAA,kCAAsB,EAAC,UAAU,EAAE,GAAG,EAAE;gBACtC,IAAA,oBAAQ,EAAC;oBACP,QAAQ,EAAE,eAAe;oBACzB,OAAO,EAAE,2BAA2B;oBACpC,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;gBAEH,IAAA,oBAAQ,EAAC;oBACP,QAAQ,EAAE,cAAc;oBACxB,OAAO,EAAE,kBAAkB;oBAC3B,KAAK,EAAE,CAAC;oBACR,SAAS,EAAE;wBACT,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAC3C;iBACF,CAAC,CAAC;gBAEH,IAAA,oBAAQ,EAAC;oBACP,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,eAAe;oBACxB,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,iDAAiD;YACjD,IAAA,aAAM,EAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpC,IAAA,aAAM,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAClE,IAAA,aAAM,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACzD,IAAA,aAAM,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxD,CAAC;gBAAS,CAAC;YACT,IAAA,gCAAoB,EAAC,UAAU,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAI,EAAC,qDAAqD,EAAE,GAAG,EAAE;QAC/D,MAAM,UAAU,GAAG,2BAA2B,CAAC;QAC/C,MAAM,YAAY,GAAc,EAAE,CAAC;QAEnC,uDAAuD;QACvD,MAAM,mBAAmB,GAAG;YAC1B,GAAG,EAAE,CAAC,IAAa,EAAE,EAAE;gBACrB,6EAA6E;gBAC7E,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;SACF,CAAC;QAEF,IAAA,8BAAkB,EAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAExE,IAAI,CAAC;YACH,IAAA,kCAAsB,EAAC,UAAU,EAAE,GAAG,EAAE;gBACtC,IAAA,oBAAQ,EAAC;oBACP,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,qCAAqC;oBAC9C,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,IAAA,aAAM,EAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpC,IAAA,aAAM,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAClC,qCAAqC,CACtC,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,IAAA,gCAAoB,EAAC,UAAU,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAI,EAAC,uDAAuD,EAAE,GAAG,EAAE;QACjE,MAAM,WAAW,GAAG,eAAe,CAAC;QACpC,MAAM,WAAW,GAAG,eAAe,CAAC;QACpC,MAAM,aAAa,GAAc,EAAE,CAAC;QACpC,MAAM,aAAa,GAAc,EAAE,CAAC;QAEpC,4DAA4D;QAC5D,IAAA,8BAAkB,EAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpE,IAAA,8BAAkB,EAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEpE,IAAI,CAAC;YACH,kBAAkB;YAClB,IAAA,kCAAsB,EAAC,WAAW,EAAE,GAAG,EAAE;gBACvC,IAAA,oBAAQ,EAAC;oBACP,QAAQ,EAAE,WAAW;oBACrB,OAAO,EAAE,qBAAqB;oBAC9B,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,kBAAkB;YAClB,IAAA,kCAAsB,EAAC,WAAW,EAAE,GAAG,EAAE;gBACvC,IAAA,oBAAQ,EAAC;oBACP,QAAQ,EAAE,WAAW;oBACrB,OAAO,EAAE,qBAAqB;oBAC9B,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,4DAA4D;YAC5D,IAAA,aAAM,EAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrC,IAAA,aAAM,EAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrC,IAAA,aAAM,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAC7D,IAAA,aAAM,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC/D,CAAC;gBAAS,CAAC;YACT,IAAA,gCAAoB,EAAC,WAAW,CAAC,CAAC;YAClC,IAAA,gCAAoB,EAAC,WAAW,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAI,EAAC,6DAA6D,EAAE,GAAG,EAAE;QACvE,MAAM,UAAU,GAAG,mBAAmB,CAAC;QACvC,MAAM,YAAY,GAAc,EAAE,CAAC;QAEnC,IAAA,8BAAkB,EAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAElE,IAAI,CAAC;YACH,IAAA,kCAAsB,EAAC,UAAU,EAAE,GAAG,EAAE;gBACtC,IAAA,oBAAQ,EAAC;oBACP,QAAQ,EAAE,SAAS;oBACnB,OAAO,EAAE,iBAAiB;oBAC1B,KAAK,EAAE,CAAC;oBACR,SAAS,EAAE;wBACT,QAAQ,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACvD,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;wBAC3C,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE;wBACxC,QAAQ,EAAE;4BACR,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;4BACvC,IAAI,EAAE,QAAQ;yBACf;qBACF;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,IAAA,aAAM,EAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAA,aAAM,EAAC,GAAG,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YACpC,IAAA,aAAM,EAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAChE,IAAA,aAAM,EAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnD,IAAA,aAAM,EAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChD,IAAA,aAAM,EAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvD,CAAC;gBAAS,CAAC;YACT,IAAA,gCAAoB,EAAC,UAAU,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAI,EAAC,+CAA+C,EAAE,GAAG,EAAE;QACzD,MAAM,UAAU,GAAG,eAAe,CAAC;QACnC,MAAM,YAAY,GAAc,EAAE,CAAC;QAEnC,IAAA,8BAAkB,EAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAElE,IAAI,CAAC;YACH,IAAA,kCAAsB,EAAC,UAAU,EAAE,GAAG,EAAE;gBACtC,sDAAsD;gBACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5B,IAAA,oBAAQ,EAAC;wBACP,QAAQ,EAAE,MAAM;wBAChB,OAAO,EAAE,aAAa,CAAC,EAAE;wBACzB,KAAK,EAAE,CAAC;wBACR,SAAS,EAAE;4BACT,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;yBACjD;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,8BAA8B;YAC9B,IAAA,aAAM,EAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrC,IAAA,aAAM,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACpD,IAAA,aAAM,EAAC,YAAY,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxD,CAAC;gBAAS,CAAC;YACT,IAAA,gCAAoB,EAAC,UAAU,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAI,EAAC,yCAAyC,EAAE,GAAG,EAAE;QACnD,MAAM,UAAU,GAAG,mBAAmB,CAAC;QACvC,MAAM,SAAS,GAAc,EAAE,CAAC;QAEhC,4CAA4C;QAC5C,MAAM,eAAe,GAAG,CAAC,IAAa,EAAE,EAAE;YACxC,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;gBACrB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;QACH,CAAC,CAAC;QAEF,IAAA,8BAAkB,EAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAEhD,IAAI,CAAC;YACH,IAAA,kCAAsB,EAAC,UAAU,EAAE,GAAG,EAAE;gBACtC,IAAA,oBAAQ,EAAC;oBACP,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,cAAc;oBACvB,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;gBAEH,IAAA,oBAAQ,EAAC;oBACP,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,eAAe;oBACxB,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;gBAEH,IAAA,oBAAQ,EAAC;oBACP,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,eAAe;oBACxB,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;gBAEH,IAAA,oBAAQ,EAAC;oBACP,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,eAAe;oBACxB,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,qCAAqC;YACrC,IAAA,aAAM,EAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjC,IAAA,aAAM,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACnD,IAAA,aAAM,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACrD,CAAC;gBAAS,CAAC;YACT,IAAA,gCAAoB,EAAC,UAAU,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAI,EAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,UAAU,GAAG,cAAc,CAAC;QAClC,MAAM,YAAY,GAAc,EAAE,CAAC;QAEnC,IAAA,8BAAkB,EAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAElE,IAAI,CAAC;YACH,MAAM,IAAA,kCAAsB,EAAC,UAAU,EAAE,KAAK,IAAI,EAAE;gBAClD,IAAA,oBAAQ,EAAC;oBACP,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,wBAAwB;oBACjC,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;gBAEH,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;gBAExD,IAAA,oBAAQ,EAAC;oBACP,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,uBAAuB;oBAChC,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;gBAEH,MAAM,OAAO,CAAC,GAAG,CAAC;oBAChB,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAC1B,IAAA,oBAAQ,EAAC;wBACP,QAAQ,EAAE,OAAO;wBACjB,OAAO,EAAE,sBAAsB;wBAC/B,KAAK,EAAE,CAAC;qBACT,CAAC,CACH;oBACD,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAC1B,IAAA,oBAAQ,EAAC;wBACP,QAAQ,EAAE,OAAO;wBACjB,OAAO,EAAE,sBAAsB;wBAC/B,KAAK,EAAE,CAAC;qBACT,CAAC,CACH;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,uDAAuD;YACvD,IAAA,aAAM,EAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpC,IAAA,aAAM,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAC/D,IAAA,aAAM,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAChE,CAAC;gBAAS,CAAC;YACT,IAAA,gCAAoB,EAAC,UAAU,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { test, expect } from \"@playwright/test\";\nimport {\n bindInstanceLogger,\n unbindInstanceLogger,\n withInstanceLogContext,\n v3Logger,\n} from \"../../lib/v3/logger.js\";\nimport type { LogLine } from \"../../lib/v3/types/public/logs.js\";\n\ntest.describe(\"V3 Logger Instance Routing\", () => {\n test.afterEach(() => {\n // Clean up is handled by unbindInstanceLogger calls in tests\n });\n\n test(\"bindInstanceLogger routes logs to correct instance\", () => {\n const instanceId = \"test-instance-001\";\n const capturedLogs: LogLine[] = [];\n\n bindInstanceLogger(instanceId, (line) => {\n capturedLogs.push(line);\n });\n\n try {\n // Log within context\n withInstanceLogContext(instanceId, () => {\n v3Logger({\n category: \"test\",\n message: \"Test message for instance\",\n level: 1,\n });\n });\n\n // Should have captured the log\n expect(capturedLogs.length).toBe(1);\n expect(capturedLogs[0].message).toBe(\"Test message for instance\");\n } finally {\n unbindInstanceLogger(instanceId);\n }\n });\n\n test(\"unbindInstanceLogger stops routing\", () => {\n const instanceId = \"test-instance-002\";\n const capturedLogs: LogLine[] = [];\n const consoleOutput: string[] = [];\n const originalConsoleLog = console.log;\n\n try {\n console.log = (msg: string) => {\n consoleOutput.push(msg);\n };\n\n bindInstanceLogger(instanceId, (line) => {\n capturedLogs.push(line);\n });\n\n // Unbind immediately\n unbindInstanceLogger(instanceId);\n\n // Log - should fall back to console\n withInstanceLogContext(instanceId, () => {\n v3Logger({\n category: \"test\",\n message: \"After unbind\",\n level: 1,\n });\n });\n\n // Should not have captured via instance logger\n expect(capturedLogs.length).toBe(0);\n // But should have logged to console\n expect(consoleOutput.length).toBeGreaterThan(0);\n } finally {\n console.log = originalConsoleLog;\n unbindInstanceLogger(instanceId);\n }\n });\n\n test(\"multiple instances have isolated log routing\", () => {\n const instance1Id = \"test-instance-1\";\n const instance2Id = \"test-instance-2\";\n const instance1Logs: LogLine[] = [];\n const instance2Logs: LogLine[] = [];\n\n bindInstanceLogger(instance1Id, (line) => instance1Logs.push(line));\n bindInstanceLogger(instance2Id, (line) => instance2Logs.push(line));\n\n try {\n // Log from instance 1\n withInstanceLogContext(instance1Id, () => {\n v3Logger({\n category: \"test\",\n message: \"From instance 1\",\n level: 1,\n });\n });\n\n // Log from instance 2\n withInstanceLogContext(instance2Id, () => {\n v3Logger({\n category: \"test\",\n message: \"From instance 2\",\n level: 1,\n });\n });\n\n // Each instance should have only its own log\n expect(instance1Logs.length).toBe(1);\n expect(instance2Logs.length).toBe(1);\n expect(instance1Logs[0].message).toBe(\"From instance 1\");\n expect(instance2Logs[0].message).toBe(\"From instance 2\");\n } finally {\n unbindInstanceLogger(instance1Id);\n unbindInstanceLogger(instance2Id);\n }\n });\n\n test(\"v3Logger falls back to console when no instance context\", () => {\n const capturedLogs: string[] = [];\n const originalConsoleLog = console.log;\n\n try {\n console.log = (msg: string) => {\n capturedLogs.push(msg);\n };\n\n // Log without any instance context\n v3Logger({\n category: \"test\",\n message: \"Console fallback log\",\n level: 1,\n });\n\n // Should have used console logger\n expect(capturedLogs.length).toBeGreaterThan(0);\n const logOutput = capturedLogs.join(\"\\n\");\n expect(logOutput).toContain(\"Console fallback log\");\n } finally {\n console.log = originalConsoleLog;\n }\n });\n\n test(\"v3Logger falls back to console when instance logger throws\", () => {\n const instanceId = \"failing-instance\";\n const capturedConsoleLogs: string[] = [];\n const originalConsoleLog = console.log;\n\n try {\n console.log = (msg: string) => {\n capturedConsoleLogs.push(msg);\n };\n\n // Bind a logger that throws\n bindInstanceLogger(instanceId, () => {\n throw new Error(\"Instance logger failed\");\n });\n\n // Should fall back to console without throwing\n withInstanceLogContext(instanceId, () => {\n expect(() => {\n v3Logger({\n category: \"test\",\n message: \"Test with failing instance logger\",\n level: 1,\n });\n }).not.toThrow();\n });\n\n // Console should have received the log as fallback\n expect(capturedConsoleLogs.length).toBeGreaterThan(0);\n const logOutput = capturedConsoleLogs.join(\"\\n\");\n expect(logOutput).toContain(\"Test with failing instance logger\");\n } finally {\n console.log = originalConsoleLog;\n unbindInstanceLogger(instanceId);\n }\n });\n\n test(\"withInstanceLogContext nests properly\", () => {\n const outerInstanceId = \"outer-instance\";\n const innerInstanceId = \"inner-instance\";\n const outerLogs: LogLine[] = [];\n const innerLogs: LogLine[] = [];\n\n bindInstanceLogger(outerInstanceId, (line) => outerLogs.push(line));\n bindInstanceLogger(innerInstanceId, (line) => innerLogs.push(line));\n\n try {\n withInstanceLogContext(outerInstanceId, () => {\n v3Logger({\n category: \"test\",\n message: \"Outer context\",\n level: 1,\n });\n\n withInstanceLogContext(innerInstanceId, () => {\n v3Logger({\n category: \"test\",\n message: \"Inner context\",\n level: 1,\n });\n });\n\n v3Logger({\n category: \"test\",\n message: \"Back to outer context\",\n level: 1,\n });\n });\n\n // Outer instance should have 2 logs\n expect(outerLogs.length).toBe(2);\n expect(outerLogs[0].message).toBe(\"Outer context\");\n expect(outerLogs[1].message).toBe(\"Back to outer context\");\n\n // Inner instance should have 1 log\n expect(innerLogs.length).toBe(1);\n expect(innerLogs[0].message).toBe(\"Inner context\");\n } finally {\n unbindInstanceLogger(outerInstanceId);\n unbindInstanceLogger(innerInstanceId);\n }\n });\n\n test(\"withInstanceLogContext returns function result\", () => {\n const instanceId = \"return-test-instance\";\n bindInstanceLogger(instanceId, () => {});\n\n try {\n const result = withInstanceLogContext(instanceId, () => {\n return { success: true, value: 42 };\n });\n\n expect(result).toEqual({ success: true, value: 42 });\n } finally {\n unbindInstanceLogger(instanceId);\n }\n });\n\n test(\"withInstanceLogContext works with async functions\", async () => {\n const instanceId = \"async-test-instance\";\n const capturedLogs: LogLine[] = [];\n\n bindInstanceLogger(instanceId, (line) => capturedLogs.push(line));\n\n try {\n const asyncResult = await withInstanceLogContext(instanceId, async () => {\n v3Logger({\n category: \"test\",\n message: \"Log from async context\",\n level: 1,\n });\n\n await new Promise((resolve) => setTimeout(resolve, 10));\n\n v3Logger({\n category: \"test\",\n message: \"Log after await\",\n level: 1,\n });\n\n return \"async result\";\n });\n\n expect(asyncResult).toBe(\"async result\");\n expect(capturedLogs.length).toBe(2);\n expect(capturedLogs[0].message).toBe(\"Log from async context\");\n expect(capturedLogs[1].message).toBe(\"Log after await\");\n } finally {\n unbindInstanceLogger(instanceId);\n }\n });\n\n test(\"console fallback formats different log levels correctly\", () => {\n const consoleOutput: { level: string; msg: string }[] = [];\n const originalConsoleLog = console.log;\n const originalConsoleError = console.error;\n const originalConsoleDebug = console.debug;\n\n try {\n console.log = (msg: string) => {\n consoleOutput.push({ level: \"log\", msg });\n };\n console.error = (msg: string) => {\n consoleOutput.push({ level: \"error\", msg });\n };\n console.debug = (msg: string) => {\n consoleOutput.push({ level: \"debug\", msg });\n };\n\n // Test error level (0)\n v3Logger({\n category: \"test\",\n message: \"Error message\",\n level: 0,\n });\n\n // Test info level (1)\n v3Logger({\n category: \"test\",\n message: \"Info message\",\n level: 1,\n });\n\n // Test debug level (2)\n v3Logger({\n category: \"test\",\n message: \"Debug message\",\n level: 2,\n });\n\n expect(consoleOutput.length).toBe(3);\n expect(consoleOutput[0].level).toBe(\"error\");\n expect(consoleOutput[0].msg).toContain(\"ERROR\");\n expect(consoleOutput[0].msg).toContain(\"Error message\");\n\n expect(consoleOutput[1].level).toBe(\"log\");\n expect(consoleOutput[1].msg).toContain(\"INFO\");\n expect(consoleOutput[1].msg).toContain(\"Info message\");\n\n expect(consoleOutput[2].level).toBe(\"debug\");\n expect(consoleOutput[2].msg).toContain(\"DEBUG\");\n expect(consoleOutput[2].msg).toContain(\"Debug message\");\n } finally {\n console.log = originalConsoleLog;\n console.error = originalConsoleError;\n console.debug = originalConsoleDebug;\n }\n });\n\n test(\"console fallback formats auxiliary data\", () => {\n const consoleOutput: string[] = [];\n const originalConsoleLog = console.log;\n\n try {\n console.log = (msg: string) => {\n consoleOutput.push(msg);\n };\n\n v3Logger({\n category: \"test\",\n message: \"Message with auxiliary\",\n level: 1,\n auxiliary: {\n stringValue: { value: \"test\", type: \"string\" },\n integerValue: { value: \"42\", type: \"integer\" },\n objectValue: {\n value: JSON.stringify({ nested: \"data\" }),\n type: \"object\",\n },\n },\n });\n\n expect(consoleOutput.length).toBe(1);\n const output = consoleOutput[0];\n expect(output).toContain(\"Message with auxiliary\");\n expect(output).toContain(\"stringValue\");\n expect(output).toContain(\"integerValue\");\n expect(output).toContain(\"objectValue\");\n } finally {\n console.log = originalConsoleLog;\n }\n });\n\n test(\"concurrent instances don't interfere\", () => {\n const instances = Array.from({ length: 10 }, (_, i) => `instance-${i}`);\n const logsByInstance = new Map<string, LogLine[]>();\n\n // Bind all instances\n instances.forEach((id) => {\n const logs: LogLine[] = [];\n logsByInstance.set(id, logs);\n bindInstanceLogger(id, (line) => logs.push(line));\n });\n\n try {\n // Log from each instance\n instances.forEach((id, index) => {\n withInstanceLogContext(id, () => {\n v3Logger({\n category: \"test\",\n message: `Message from ${id}`,\n level: 1,\n auxiliary: {\n index: { value: String(index), type: \"integer\" },\n },\n });\n });\n });\n\n // Verify each instance received only its own log\n instances.forEach((id) => {\n const logs = logsByInstance.get(id)!;\n expect(logs.length).toBe(1);\n expect(logs[0].message).toBe(`Message from ${id}`);\n });\n } finally {\n instances.forEach((id) => unbindInstanceLogger(id));\n }\n });\n});\n\ntest.describe(\"V3 Logger with External Logger (Production Pattern)\", () => {\n test.afterEach(() => {\n // Clean up instance loggers\n });\n\n test(\"external logger receives all logs from v3Logger\", () => {\n const instanceId = \"v3-instance-with-external\";\n const externalLogs: LogLine[] = [];\n\n // Simulate V3 constructor behavior with external logger\n const externalLogger = (line: LogLine) => {\n externalLogs.push(line);\n };\n\n bindInstanceLogger(instanceId, externalLogger);\n\n try {\n withInstanceLogContext(instanceId, () => {\n v3Logger({\n category: \"a11y/snapshot\",\n message: \"Capturing hybrid snapshot\",\n level: 0,\n });\n\n v3Logger({\n category: \"handlers/act\",\n message: \"Executing action\",\n level: 1,\n auxiliary: {\n action: { value: \"click\", type: \"string\" },\n },\n });\n\n v3Logger({\n category: \"debug\",\n message: \"Debug details\",\n level: 2,\n });\n });\n\n // All logs should be captured by external logger\n expect(externalLogs.length).toBe(3);\n expect(externalLogs[0].message).toBe(\"Capturing hybrid snapshot\");\n expect(externalLogs[1].message).toBe(\"Executing action\");\n expect(externalLogs[2].message).toBe(\"Debug details\");\n } finally {\n unbindInstanceLogger(instanceId);\n }\n });\n\n test(\"StagehandLogger wrapper forwards to external logger\", () => {\n const instanceId = \"v3-with-stagehand-wrapper\";\n const externalLogs: LogLine[] = [];\n\n // Simulate V3's stagehandLogger.log() wrapping pattern\n const mockStagehandLogger = {\n log: (line: LogLine) => {\n // This simulates StagehandLogger.log() which internally calls externalLogger\n externalLogs.push(line);\n },\n };\n\n bindInstanceLogger(instanceId, (line) => mockStagehandLogger.log(line));\n\n try {\n withInstanceLogContext(instanceId, () => {\n v3Logger({\n category: \"test\",\n message: \"Log through StagehandLogger wrapper\",\n level: 1,\n });\n });\n\n expect(externalLogs.length).toBe(1);\n expect(externalLogs[0].message).toBe(\n \"Log through StagehandLogger wrapper\",\n );\n } finally {\n unbindInstanceLogger(instanceId);\n }\n });\n\n test(\"multiple V3 instances with different external loggers\", () => {\n const instance1Id = \"v3-instance-1\";\n const instance2Id = \"v3-instance-2\";\n const external1Logs: LogLine[] = [];\n const external2Logs: LogLine[] = [];\n\n // Simulate two V3 instances with different external loggers\n bindInstanceLogger(instance1Id, (line) => external1Logs.push(line));\n bindInstanceLogger(instance2Id, (line) => external2Logs.push(line));\n\n try {\n // Instance 1 logs\n withInstanceLogContext(instance1Id, () => {\n v3Logger({\n category: \"instance1\",\n message: \"Instance 1 activity\",\n level: 1,\n });\n });\n\n // Instance 2 logs\n withInstanceLogContext(instance2Id, () => {\n v3Logger({\n category: \"instance2\",\n message: \"Instance 2 activity\",\n level: 1,\n });\n });\n\n // Each external logger should only have its instance's logs\n expect(external1Logs.length).toBe(1);\n expect(external2Logs.length).toBe(1);\n expect(external1Logs[0].message).toBe(\"Instance 1 activity\");\n expect(external2Logs[0].message).toBe(\"Instance 2 activity\");\n } finally {\n unbindInstanceLogger(instance1Id);\n unbindInstanceLogger(instance2Id);\n }\n });\n\n test(\"external logger receives logs with auxiliary data preserved\", () => {\n const instanceId = \"v3-with-auxiliary\";\n const externalLogs: LogLine[] = [];\n\n bindInstanceLogger(instanceId, (line) => externalLogs.push(line));\n\n try {\n withInstanceLogContext(instanceId, () => {\n v3Logger({\n category: \"extract\",\n message: \"Extracting data\",\n level: 1,\n auxiliary: {\n selector: { value: \"xpath=/html/body\", type: \"string\" },\n timeout: { value: \"5000\", type: \"integer\" },\n retries: { value: \"3\", type: \"integer\" },\n metadata: {\n value: JSON.stringify({ key: \"value\" }),\n type: \"object\",\n },\n },\n });\n });\n\n expect(externalLogs.length).toBe(1);\n const log = externalLogs[0];\n expect(log.auxiliary).toBeDefined();\n expect(log.auxiliary?.selector?.value).toBe(\"xpath=/html/body\");\n expect(log.auxiliary?.timeout?.value).toBe(\"5000\");\n expect(log.auxiliary?.retries?.value).toBe(\"3\");\n expect(log.auxiliary?.metadata?.type).toBe(\"object\");\n } finally {\n unbindInstanceLogger(instanceId);\n }\n });\n\n test(\"external logger handles rapid concurrent logs\", () => {\n const instanceId = \"v3-rapid-logs\";\n const externalLogs: LogLine[] = [];\n\n bindInstanceLogger(instanceId, (line) => externalLogs.push(line));\n\n try {\n withInstanceLogContext(instanceId, () => {\n // Simulate rapid logging like during snapshot capture\n for (let i = 0; i < 50; i++) {\n v3Logger({\n category: \"perf\",\n message: `Operation ${i}`,\n level: 2,\n auxiliary: {\n iteration: { value: String(i), type: \"integer\" },\n },\n });\n }\n });\n\n // All logs should be captured\n expect(externalLogs.length).toBe(50);\n expect(externalLogs[0].message).toBe(\"Operation 0\");\n expect(externalLogs[49].message).toBe(\"Operation 49\");\n } finally {\n unbindInstanceLogger(instanceId);\n }\n });\n\n test(\"external logger can filter by log level\", () => {\n const instanceId = \"v3-with-filtering\";\n const errorLogs: LogLine[] = [];\n\n // External logger that only captures errors\n const filteringLogger = (line: LogLine) => {\n if (line.level === 0) {\n errorLogs.push(line);\n }\n };\n\n bindInstanceLogger(instanceId, filteringLogger);\n\n try {\n withInstanceLogContext(instanceId, () => {\n v3Logger({\n category: \"test\",\n message: \"Info message\",\n level: 1,\n });\n\n v3Logger({\n category: \"test\",\n message: \"Error message\",\n level: 0,\n });\n\n v3Logger({\n category: \"test\",\n message: \"Debug message\",\n level: 2,\n });\n\n v3Logger({\n category: \"test\",\n message: \"Another error\",\n level: 0,\n });\n });\n\n // Only error logs should be captured\n expect(errorLogs.length).toBe(2);\n expect(errorLogs[0].message).toBe(\"Error message\");\n expect(errorLogs[1].message).toBe(\"Another error\");\n } finally {\n unbindInstanceLogger(instanceId);\n }\n });\n\n test(\"external logger persists across async operations\", async () => {\n const instanceId = \"v3-async-ops\";\n const externalLogs: LogLine[] = [];\n\n bindInstanceLogger(instanceId, (line) => externalLogs.push(line));\n\n try {\n await withInstanceLogContext(instanceId, async () => {\n v3Logger({\n category: \"async\",\n message: \"Before async operation\",\n level: 1,\n });\n\n await new Promise((resolve) => setTimeout(resolve, 50));\n\n v3Logger({\n category: \"async\",\n message: \"After async operation\",\n level: 1,\n });\n\n await Promise.all([\n Promise.resolve().then(() =>\n v3Logger({\n category: \"async\",\n message: \"Parallel operation 1\",\n level: 1,\n }),\n ),\n Promise.resolve().then(() =>\n v3Logger({\n category: \"async\",\n message: \"Parallel operation 2\",\n level: 1,\n }),\n ),\n ]);\n });\n\n // All logs should be captured despite async boundaries\n expect(externalLogs.length).toBe(4);\n expect(externalLogs[0].message).toBe(\"Before async operation\");\n expect(externalLogs[1].message).toBe(\"After async operation\");\n } finally {\n unbindInstanceLogger(instanceId);\n }\n });\n});\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,293 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const test_1 = require("@playwright/test");
|
|
4
|
-
const v3_js_1 = require("../../lib/v3/v3.js");
|
|
5
|
-
const v3_dynamic_config_js_1 = require("./v3.dynamic.config.js");
|
|
6
|
-
const testUtils_js_1 = require("./testUtils.js");
|
|
7
|
-
test_1.test.describe("V3 Multi-Instance Logger Isolation", () => {
|
|
8
|
-
// Run tests serially to avoid resource exhaustion from creating many Chrome instances
|
|
9
|
-
test_1.test.describe.configure({ mode: "serial" });
|
|
10
|
-
// Increase timeout for stress tests that create/destroy multiple instances
|
|
11
|
-
test_1.test.setTimeout(120_000);
|
|
12
|
-
(0, test_1.test)("multiple V3 instances can be created concurrently without logger conflicts", async () => {
|
|
13
|
-
const instanceCount = 5;
|
|
14
|
-
const instances = [];
|
|
15
|
-
const instanceLogs = new Map();
|
|
16
|
-
try {
|
|
17
|
-
// Create multiple instances with individual loggers
|
|
18
|
-
const creationPromises = Array.from({ length: instanceCount }, (_, i) => {
|
|
19
|
-
const logs = [];
|
|
20
|
-
instanceLogs.set(i, logs);
|
|
21
|
-
const config = (0, v3_dynamic_config_js_1.getV3DynamicTestConfig)({
|
|
22
|
-
verbose: 2,
|
|
23
|
-
disablePino: true,
|
|
24
|
-
logger: (line) => {
|
|
25
|
-
logs.push({
|
|
26
|
-
...line,
|
|
27
|
-
auxiliary: {
|
|
28
|
-
...line.auxiliary,
|
|
29
|
-
index: { value: String(i), type: "integer" },
|
|
30
|
-
},
|
|
31
|
-
});
|
|
32
|
-
},
|
|
33
|
-
});
|
|
34
|
-
const v3 = new v3_js_1.V3(config);
|
|
35
|
-
instances.push(v3);
|
|
36
|
-
return v3.init();
|
|
37
|
-
});
|
|
38
|
-
// All instances should initialize successfully
|
|
39
|
-
await Promise.all(creationPromises);
|
|
40
|
-
// Each instance should be initialized
|
|
41
|
-
(0, test_1.expect)(instances.length).toBe(instanceCount);
|
|
42
|
-
for (const instance of instances) {
|
|
43
|
-
(0, test_1.expect)(instance.context).toBeDefined();
|
|
44
|
-
}
|
|
45
|
-
// Perform operations that generate logs
|
|
46
|
-
await Promise.all(instances.map(async (instance) => {
|
|
47
|
-
const page = await instance.context.awaitActivePage();
|
|
48
|
-
await page.goto("about:blank");
|
|
49
|
-
}));
|
|
50
|
-
// Each instance should have logged to its own logger
|
|
51
|
-
for (let i = 0; i < instanceCount; i++) {
|
|
52
|
-
const logs = instanceLogs.get(i);
|
|
53
|
-
// Each instance should have some logs
|
|
54
|
-
(0, test_1.expect)(logs.length).toBeGreaterThan(0);
|
|
55
|
-
// Logs should not contain data from other instances
|
|
56
|
-
// (though this is harder to verify without more specific markers)
|
|
57
|
-
const hasOwnLogs = logs.some((log) => log.auxiliary?.index?.value === String(i) ||
|
|
58
|
-
log.category === "init");
|
|
59
|
-
(0, test_1.expect)(hasOwnLogs).toBe(true);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
finally {
|
|
63
|
-
// Clean up all instances
|
|
64
|
-
await Promise.all(instances.map((instance) => (0, testUtils_js_1.closeV3)(instance)));
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
(0, test_1.test)("V3 instances with external loggers don't leak logs to each other", async () => {
|
|
68
|
-
const instance1Logs = [];
|
|
69
|
-
const instance2Logs = [];
|
|
70
|
-
const v3Instance1 = new v3_js_1.V3((0, v3_dynamic_config_js_1.getV3DynamicTestConfig)({
|
|
71
|
-
verbose: 2,
|
|
72
|
-
disablePino: true,
|
|
73
|
-
logger: (line) => instance1Logs.push(line),
|
|
74
|
-
}));
|
|
75
|
-
const v3Instance2 = new v3_js_1.V3((0, v3_dynamic_config_js_1.getV3DynamicTestConfig)({
|
|
76
|
-
verbose: 2,
|
|
77
|
-
disablePino: true,
|
|
78
|
-
logger: (line) => instance2Logs.push(line),
|
|
79
|
-
}));
|
|
80
|
-
try {
|
|
81
|
-
// Initialize both instances
|
|
82
|
-
await Promise.all([v3Instance1.init(), v3Instance2.init()]);
|
|
83
|
-
// Perform operations on each instance
|
|
84
|
-
const page1 = await v3Instance1.context.awaitActivePage();
|
|
85
|
-
await page1.goto("about:blank");
|
|
86
|
-
const page2 = await v3Instance2.context.awaitActivePage();
|
|
87
|
-
await page2.goto("data:text/html,<h1>Instance 2</h1>");
|
|
88
|
-
// Both instances should have logs
|
|
89
|
-
(0, test_1.expect)(instance1Logs.length).toBeGreaterThan(0);
|
|
90
|
-
(0, test_1.expect)(instance2Logs.length).toBeGreaterThan(0);
|
|
91
|
-
// Logs should be distinct (no exact duplicates)
|
|
92
|
-
// This is a weak check, but verifies basic isolation
|
|
93
|
-
const instance1Messages = new Set(instance1Logs.map((l) => l.message));
|
|
94
|
-
const instance2Messages = new Set(instance2Logs.map((l) => l.message));
|
|
95
|
-
// At least some messages should be unique to each instance
|
|
96
|
-
// (This might not always be true for very generic messages like "init",
|
|
97
|
-
// but serves as a smoke test)
|
|
98
|
-
const allMessages = new Set([...instance1Messages, ...instance2Messages]);
|
|
99
|
-
(0, test_1.expect)(allMessages.size).toBeGreaterThanOrEqual(Math.max(instance1Messages.size, instance2Messages.size));
|
|
100
|
-
}
|
|
101
|
-
finally {
|
|
102
|
-
await Promise.all([(0, testUtils_js_1.closeV3)(v3Instance1), (0, testUtils_js_1.closeV3)(v3Instance2)]);
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
(0, test_1.test)("V3 instances without external loggers use shared global logger", async () => {
|
|
106
|
-
// Create instances without external loggers
|
|
107
|
-
const v3Instance1 = new v3_js_1.V3((0, v3_dynamic_config_js_1.getV3DynamicTestConfig)({
|
|
108
|
-
verbose: 1,
|
|
109
|
-
disablePino: true,
|
|
110
|
-
}));
|
|
111
|
-
const v3Instance2 = new v3_js_1.V3((0, v3_dynamic_config_js_1.getV3DynamicTestConfig)({
|
|
112
|
-
verbose: 1,
|
|
113
|
-
disablePino: true,
|
|
114
|
-
}));
|
|
115
|
-
try {
|
|
116
|
-
// Initialize both instances concurrently
|
|
117
|
-
await Promise.all([v3Instance1.init(), v3Instance2.init()]);
|
|
118
|
-
// Both should work fine
|
|
119
|
-
(0, test_1.expect)(v3Instance1.context).toBeDefined();
|
|
120
|
-
(0, test_1.expect)(v3Instance2.context).toBeDefined();
|
|
121
|
-
// Perform basic operations to ensure logging doesn't cause issues
|
|
122
|
-
const page1 = await v3Instance1.context.awaitActivePage();
|
|
123
|
-
const page2 = await v3Instance2.context.awaitActivePage();
|
|
124
|
-
await Promise.all([page1.goto("about:blank"), page2.goto("about:blank")]);
|
|
125
|
-
// Both should still be operational
|
|
126
|
-
(0, test_1.expect)(page1.url()).toContain("about:blank");
|
|
127
|
-
(0, test_1.expect)(page2.url()).toContain("about:blank");
|
|
128
|
-
}
|
|
129
|
-
finally {
|
|
130
|
-
await Promise.all([(0, testUtils_js_1.closeV3)(v3Instance1), (0, testUtils_js_1.closeV3)(v3Instance2)]);
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
|
-
(0, test_1.test)("rapidly creating and destroying instances doesn't cause logger issues", async () => {
|
|
134
|
-
const iterations = 5;
|
|
135
|
-
const results = [];
|
|
136
|
-
for (let i = 0; i < iterations; i++) {
|
|
137
|
-
const logs = [];
|
|
138
|
-
const v3 = new v3_js_1.V3((0, v3_dynamic_config_js_1.getV3DynamicTestConfig)({
|
|
139
|
-
verbose: 1, // Capture INFO logs for verification
|
|
140
|
-
disablePino: true,
|
|
141
|
-
logger: (line) => logs.push(line),
|
|
142
|
-
}));
|
|
143
|
-
try {
|
|
144
|
-
await v3.init();
|
|
145
|
-
const page = await v3.context.awaitActivePage();
|
|
146
|
-
await page.goto("about:blank");
|
|
147
|
-
results.push(true);
|
|
148
|
-
// Verify some logs were captured
|
|
149
|
-
(0, test_1.expect)(logs.length).toBeGreaterThan(0);
|
|
150
|
-
}
|
|
151
|
-
finally {
|
|
152
|
-
await (0, testUtils_js_1.closeV3)(v3);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
// All iterations should succeed
|
|
156
|
-
(0, test_1.expect)(results.length).toBe(iterations);
|
|
157
|
-
(0, test_1.expect)(results.every((r) => r === true)).toBe(true);
|
|
158
|
-
});
|
|
159
|
-
(0, test_1.test)("concurrent instance creation with mixed logger configurations", async () => {
|
|
160
|
-
const instances = [];
|
|
161
|
-
const configs = [
|
|
162
|
-
// With Pino disabled
|
|
163
|
-
(0, v3_dynamic_config_js_1.getV3DynamicTestConfig)({ verbose: 1, disablePino: true }),
|
|
164
|
-
// With external logger
|
|
165
|
-
(0, v3_dynamic_config_js_1.getV3DynamicTestConfig)({
|
|
166
|
-
verbose: 2,
|
|
167
|
-
disablePino: true,
|
|
168
|
-
//eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
169
|
-
logger: (_line) => {
|
|
170
|
-
// External logger
|
|
171
|
-
},
|
|
172
|
-
}),
|
|
173
|
-
// Without external logger
|
|
174
|
-
(0, v3_dynamic_config_js_1.getV3DynamicTestConfig)({ verbose: 0, disablePino: true }),
|
|
175
|
-
// High verbosity
|
|
176
|
-
(0, v3_dynamic_config_js_1.getV3DynamicTestConfig)({ verbose: 2, disablePino: true }),
|
|
177
|
-
];
|
|
178
|
-
try {
|
|
179
|
-
// Create all instances concurrently
|
|
180
|
-
const creationPromises = configs.map((config) => {
|
|
181
|
-
const v3 = new v3_js_1.V3(config);
|
|
182
|
-
instances.push(v3);
|
|
183
|
-
return v3.init();
|
|
184
|
-
});
|
|
185
|
-
await Promise.all(creationPromises);
|
|
186
|
-
// All should be initialized successfully
|
|
187
|
-
(0, test_1.expect)(instances.length).toBe(configs.length);
|
|
188
|
-
for (const instance of instances) {
|
|
189
|
-
(0, test_1.expect)(instance.context).toBeDefined();
|
|
190
|
-
}
|
|
191
|
-
// All should be able to perform operations
|
|
192
|
-
await Promise.all(instances.map(async (instance) => {
|
|
193
|
-
const page = await instance.context.awaitActivePage();
|
|
194
|
-
await page.goto("about:blank");
|
|
195
|
-
(0, test_1.expect)(page.url()).toContain("about:blank");
|
|
196
|
-
}));
|
|
197
|
-
}
|
|
198
|
-
finally {
|
|
199
|
-
await Promise.all(instances.map((instance) => (0, testUtils_js_1.closeV3)(instance)));
|
|
200
|
-
}
|
|
201
|
-
});
|
|
202
|
-
(0, test_1.test)("V3 instance logger is properly cleaned up on close", async () => {
|
|
203
|
-
const logs = [];
|
|
204
|
-
const v3 = new v3_js_1.V3((0, v3_dynamic_config_js_1.getV3DynamicTestConfig)({
|
|
205
|
-
verbose: 2,
|
|
206
|
-
disablePino: true,
|
|
207
|
-
logger: (line) => logs.push(line),
|
|
208
|
-
}));
|
|
209
|
-
await v3.init();
|
|
210
|
-
const initialLogCount = logs.length;
|
|
211
|
-
(0, test_1.expect)(initialLogCount).toBeGreaterThan(0);
|
|
212
|
-
await (0, testUtils_js_1.closeV3)(v3);
|
|
213
|
-
// After close, the instance should not generate new logs
|
|
214
|
-
// (This is hard to test directly, but we can verify the instance is closed)
|
|
215
|
-
(0, test_1.expect)(v3["state"].kind).toBe("UNINITIALIZED");
|
|
216
|
-
});
|
|
217
|
-
(0, test_1.test)("logger works correctly across instance lifecycle", async () => {
|
|
218
|
-
const logs = [];
|
|
219
|
-
const v3 = new v3_js_1.V3((0, v3_dynamic_config_js_1.getV3DynamicTestConfig)({
|
|
220
|
-
verbose: 2,
|
|
221
|
-
disablePino: true,
|
|
222
|
-
logger: (line) => logs.push(line),
|
|
223
|
-
}));
|
|
224
|
-
try {
|
|
225
|
-
// Before init
|
|
226
|
-
(0, test_1.expect)(logs.length).toBe(0);
|
|
227
|
-
// After init
|
|
228
|
-
await v3.init();
|
|
229
|
-
const afterInitCount = logs.length;
|
|
230
|
-
(0, test_1.expect)(afterInitCount).toBeGreaterThan(0);
|
|
231
|
-
// During operation
|
|
232
|
-
const page = await v3.context.awaitActivePage();
|
|
233
|
-
await page.goto("data:text/html,<h1>Test</h1>");
|
|
234
|
-
const afterOperationCount = logs.length;
|
|
235
|
-
(0, test_1.expect)(afterOperationCount).toBeGreaterThanOrEqual(afterInitCount);
|
|
236
|
-
// Verify log structure
|
|
237
|
-
const initLogs = logs.filter((log) => log.category === "init");
|
|
238
|
-
(0, test_1.expect)(initLogs.length).toBeGreaterThan(0);
|
|
239
|
-
// All logs should have required fields
|
|
240
|
-
for (const log of logs) {
|
|
241
|
-
(0, test_1.expect)(log.category).toBeDefined();
|
|
242
|
-
(0, test_1.expect)(log.message).toBeDefined();
|
|
243
|
-
(0, test_1.expect)(typeof log.level).toBe("number");
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
finally {
|
|
247
|
-
await (0, testUtils_js_1.closeV3)(v3);
|
|
248
|
-
}
|
|
249
|
-
});
|
|
250
|
-
(0, test_1.test)("multiple instances can navigate concurrently without logger interference", async () => {
|
|
251
|
-
const instanceCount = 3;
|
|
252
|
-
const instances = [];
|
|
253
|
-
const instanceLogs = new Map();
|
|
254
|
-
try {
|
|
255
|
-
// Create instances
|
|
256
|
-
for (let i = 0; i < instanceCount; i++) {
|
|
257
|
-
const logs = [];
|
|
258
|
-
instanceLogs.set(i, logs);
|
|
259
|
-
const v3 = new v3_js_1.V3((0, v3_dynamic_config_js_1.getV3DynamicTestConfig)({
|
|
260
|
-
verbose: 1,
|
|
261
|
-
disablePino: true,
|
|
262
|
-
logger: (line) => logs.push(line),
|
|
263
|
-
}));
|
|
264
|
-
instances.push(v3);
|
|
265
|
-
await v3.init();
|
|
266
|
-
}
|
|
267
|
-
// Navigate all instances concurrently to different URLs
|
|
268
|
-
const urls = [
|
|
269
|
-
"data:text/html,<h1>Page 1</h1>",
|
|
270
|
-
"data:text/html,<h1>Page 2</h1>",
|
|
271
|
-
"data:text/html,<h1>Page 3</h1>",
|
|
272
|
-
];
|
|
273
|
-
await Promise.all(instances.map(async (instance, i) => {
|
|
274
|
-
const page = await instance.context.awaitActivePage();
|
|
275
|
-
await page.goto(urls[i]);
|
|
276
|
-
}));
|
|
277
|
-
// Verify each instance navigated to the correct URL
|
|
278
|
-
for (let i = 0; i < instanceCount; i++) {
|
|
279
|
-
const page = await instances[i].context.awaitActivePage();
|
|
280
|
-
(0, test_1.expect)(page.url()).toContain(`Page ${i + 1}`);
|
|
281
|
-
}
|
|
282
|
-
// Each instance should have its own logs
|
|
283
|
-
for (let i = 0; i < instanceCount; i++) {
|
|
284
|
-
const logs = instanceLogs.get(i);
|
|
285
|
-
(0, test_1.expect)(logs.length).toBeGreaterThan(0);
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
finally {
|
|
289
|
-
await Promise.all(instances.map((instance) => (0, testUtils_js_1.closeV3)(instance)));
|
|
290
|
-
}
|
|
291
|
-
});
|
|
292
|
-
});
|
|
293
|
-
//# sourceMappingURL=multi-instance-logger.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"multi-instance-logger.spec.js","sourceRoot":"","sources":["../../../../tests/integration/multi-instance-logger.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { test, expect } from \"@playwright/test\";\nimport { V3 } from \"../../lib/v3/v3.js\";\nimport { getV3DynamicTestConfig } from \"./v3.dynamic.config.js\";\nimport type { LogLine } from \"../../lib/v3/types/public/logs.js\";\nimport { closeV3 } from \"./testUtils.js\";\n\ntest.describe(\"V3 Multi-Instance Logger Isolation\", () => {\n // Run tests serially to avoid resource exhaustion from creating many Chrome instances\n test.describe.configure({ mode: \"serial\" });\n // Increase timeout for stress tests that create/destroy multiple instances\n test.setTimeout(120_000);\n\n test(\"multiple V3 instances can be created concurrently without logger conflicts\", async () => {\n const instanceCount = 5;\n const instances: V3[] = [];\n const instanceLogs: Map<number, LogLine[]> = new Map();\n\n try {\n // Create multiple instances with individual loggers\n const creationPromises = Array.from({ length: instanceCount }, (_, i) => {\n const logs: LogLine[] = [];\n instanceLogs.set(i, logs);\n\n const config = getV3DynamicTestConfig({\n verbose: 2,\n disablePino: true,\n logger: (line: LogLine) => {\n logs.push({\n ...line,\n auxiliary: {\n ...line.auxiliary,\n index: { value: String(i), type: \"integer\" },\n },\n });\n },\n });\n\n const v3 = new V3(config);\n instances.push(v3);\n return v3.init();\n });\n\n // All instances should initialize successfully\n await Promise.all(creationPromises);\n\n // Each instance should be initialized\n expect(instances.length).toBe(instanceCount);\n for (const instance of instances) {\n expect(instance.context).toBeDefined();\n }\n\n // Perform operations that generate logs\n await Promise.all(\n instances.map(async (instance) => {\n const page = await instance.context.awaitActivePage();\n await page.goto(\"about:blank\");\n }),\n );\n\n // Each instance should have logged to its own logger\n for (let i = 0; i < instanceCount; i++) {\n const logs = instanceLogs.get(i)!;\n // Each instance should have some logs\n expect(logs.length).toBeGreaterThan(0);\n\n // Logs should not contain data from other instances\n // (though this is harder to verify without more specific markers)\n const hasOwnLogs = logs.some(\n (log) =>\n log.auxiliary?.index?.value === String(i) ||\n log.category === \"init\",\n );\n expect(hasOwnLogs).toBe(true);\n }\n } finally {\n // Clean up all instances\n await Promise.all(instances.map((instance) => closeV3(instance)));\n }\n });\n\n test(\"V3 instances with external loggers don't leak logs to each other\", async () => {\n const instance1Logs: LogLine[] = [];\n const instance2Logs: LogLine[] = [];\n\n const v3Instance1 = new V3(\n getV3DynamicTestConfig({\n verbose: 2,\n disablePino: true,\n logger: (line: LogLine) => instance1Logs.push(line),\n }),\n );\n\n const v3Instance2 = new V3(\n getV3DynamicTestConfig({\n verbose: 2,\n disablePino: true,\n logger: (line: LogLine) => instance2Logs.push(line),\n }),\n );\n\n try {\n // Initialize both instances\n await Promise.all([v3Instance1.init(), v3Instance2.init()]);\n\n // Perform operations on each instance\n const page1 = await v3Instance1.context.awaitActivePage();\n await page1.goto(\"about:blank\");\n\n const page2 = await v3Instance2.context.awaitActivePage();\n await page2.goto(\"data:text/html,<h1>Instance 2</h1>\");\n\n // Both instances should have logs\n expect(instance1Logs.length).toBeGreaterThan(0);\n expect(instance2Logs.length).toBeGreaterThan(0);\n\n // Logs should be distinct (no exact duplicates)\n // This is a weak check, but verifies basic isolation\n const instance1Messages = new Set(instance1Logs.map((l) => l.message));\n const instance2Messages = new Set(instance2Logs.map((l) => l.message));\n\n // At least some messages should be unique to each instance\n // (This might not always be true for very generic messages like \"init\",\n // but serves as a smoke test)\n const allMessages = new Set([...instance1Messages, ...instance2Messages]);\n expect(allMessages.size).toBeGreaterThanOrEqual(\n Math.max(instance1Messages.size, instance2Messages.size),\n );\n } finally {\n await Promise.all([closeV3(v3Instance1), closeV3(v3Instance2)]);\n }\n });\n\n test(\"V3 instances without external loggers use shared global logger\", async () => {\n // Create instances without external loggers\n const v3Instance1 = new V3(\n getV3DynamicTestConfig({\n verbose: 1,\n disablePino: true,\n }),\n );\n\n const v3Instance2 = new V3(\n getV3DynamicTestConfig({\n verbose: 1,\n disablePino: true,\n }),\n );\n\n try {\n // Initialize both instances concurrently\n await Promise.all([v3Instance1.init(), v3Instance2.init()]);\n\n // Both should work fine\n expect(v3Instance1.context).toBeDefined();\n expect(v3Instance2.context).toBeDefined();\n\n // Perform basic operations to ensure logging doesn't cause issues\n const page1 = await v3Instance1.context.awaitActivePage();\n const page2 = await v3Instance2.context.awaitActivePage();\n\n await Promise.all([page1.goto(\"about:blank\"), page2.goto(\"about:blank\")]);\n\n // Both should still be operational\n expect(page1.url()).toContain(\"about:blank\");\n expect(page2.url()).toContain(\"about:blank\");\n } finally {\n await Promise.all([closeV3(v3Instance1), closeV3(v3Instance2)]);\n }\n });\n\n test(\"rapidly creating and destroying instances doesn't cause logger issues\", async () => {\n const iterations = 5;\n const results: boolean[] = [];\n\n for (let i = 0; i < iterations; i++) {\n const logs: LogLine[] = [];\n const v3 = new V3(\n getV3DynamicTestConfig({\n verbose: 1, // Capture INFO logs for verification\n disablePino: true,\n logger: (line: LogLine) => logs.push(line),\n }),\n );\n\n try {\n await v3.init();\n const page = await v3.context.awaitActivePage();\n await page.goto(\"about:blank\");\n results.push(true);\n\n // Verify some logs were captured\n expect(logs.length).toBeGreaterThan(0);\n } finally {\n await closeV3(v3);\n }\n }\n\n // All iterations should succeed\n expect(results.length).toBe(iterations);\n expect(results.every((r) => r === true)).toBe(true);\n });\n\n test(\"concurrent instance creation with mixed logger configurations\", async () => {\n const instances: V3[] = [];\n const configs = [\n // With Pino disabled\n getV3DynamicTestConfig({ verbose: 1, disablePino: true }),\n // With external logger\n getV3DynamicTestConfig({\n verbose: 2,\n disablePino: true,\n //eslint-disable-next-line @typescript-eslint/no-unused-vars\n logger: (_line: LogLine) => {\n // External logger\n },\n }),\n // Without external logger\n getV3DynamicTestConfig({ verbose: 0, disablePino: true }),\n // High verbosity\n getV3DynamicTestConfig({ verbose: 2, disablePino: true }),\n ];\n\n try {\n // Create all instances concurrently\n const creationPromises = configs.map((config) => {\n const v3 = new V3(config);\n instances.push(v3);\n return v3.init();\n });\n\n await Promise.all(creationPromises);\n\n // All should be initialized successfully\n expect(instances.length).toBe(configs.length);\n for (const instance of instances) {\n expect(instance.context).toBeDefined();\n }\n\n // All should be able to perform operations\n await Promise.all(\n instances.map(async (instance) => {\n const page = await instance.context.awaitActivePage();\n await page.goto(\"about:blank\");\n expect(page.url()).toContain(\"about:blank\");\n }),\n );\n } finally {\n await Promise.all(instances.map((instance) => closeV3(instance)));\n }\n });\n\n test(\"V3 instance logger is properly cleaned up on close\", async () => {\n const logs: LogLine[] = [];\n const v3 = new V3(\n getV3DynamicTestConfig({\n verbose: 2,\n disablePino: true,\n logger: (line: LogLine) => logs.push(line),\n }),\n );\n\n await v3.init();\n const initialLogCount = logs.length;\n expect(initialLogCount).toBeGreaterThan(0);\n\n await closeV3(v3);\n\n // After close, the instance should not generate new logs\n // (This is hard to test directly, but we can verify the instance is closed)\n expect(v3[\"state\"].kind).toBe(\"UNINITIALIZED\");\n });\n\n test(\"logger works correctly across instance lifecycle\", async () => {\n const logs: LogLine[] = [];\n const v3 = new V3(\n getV3DynamicTestConfig({\n verbose: 2,\n disablePino: true,\n logger: (line: LogLine) => logs.push(line),\n }),\n );\n\n try {\n // Before init\n expect(logs.length).toBe(0);\n\n // After init\n await v3.init();\n const afterInitCount = logs.length;\n expect(afterInitCount).toBeGreaterThan(0);\n\n // During operation\n const page = await v3.context.awaitActivePage();\n await page.goto(\"data:text/html,<h1>Test</h1>\");\n const afterOperationCount = logs.length;\n expect(afterOperationCount).toBeGreaterThanOrEqual(afterInitCount);\n\n // Verify log structure\n const initLogs = logs.filter((log) => log.category === \"init\");\n expect(initLogs.length).toBeGreaterThan(0);\n\n // All logs should have required fields\n for (const log of logs) {\n expect(log.category).toBeDefined();\n expect(log.message).toBeDefined();\n expect(typeof log.level).toBe(\"number\");\n }\n } finally {\n await closeV3(v3);\n }\n });\n\n test(\"multiple instances can navigate concurrently without logger interference\", async () => {\n const instanceCount = 3;\n const instances: V3[] = [];\n const instanceLogs: Map<number, LogLine[]> = new Map();\n\n try {\n // Create instances\n for (let i = 0; i < instanceCount; i++) {\n const logs: LogLine[] = [];\n instanceLogs.set(i, logs);\n\n const v3 = new V3(\n getV3DynamicTestConfig({\n verbose: 1,\n disablePino: true,\n logger: (line: LogLine) => logs.push(line),\n }),\n );\n\n instances.push(v3);\n await v3.init();\n }\n\n // Navigate all instances concurrently to different URLs\n const urls = [\n \"data:text/html,<h1>Page 1</h1>\",\n \"data:text/html,<h1>Page 2</h1>\",\n \"data:text/html,<h1>Page 3</h1>\",\n ];\n\n await Promise.all(\n instances.map(async (instance, i) => {\n const page = await instance.context.awaitActivePage();\n await page.goto(urls[i]);\n }),\n );\n\n // Verify each instance navigated to the correct URL\n for (let i = 0; i < instanceCount; i++) {\n const page = await instances[i].context.awaitActivePage();\n expect(page.url()).toContain(`Page ${i + 1}`);\n }\n\n // Each instance should have its own logs\n for (let i = 0; i < instanceCount; i++) {\n const logs = instanceLogs.get(i)!;\n expect(logs.length).toBeGreaterThan(0);\n }\n } finally {\n await Promise.all(instances.map((instance) => closeV3(instance)));\n }\n });\n});\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const test_1 = require("@playwright/test");
|
|
4
|
-
const v3_js_1 = require("../../lib/v3/v3.js");
|
|
5
|
-
const index_js_1 = require("../../lib/v3/understudy/a11y/snapshot/index.js");
|
|
6
|
-
const v3_config_js_1 = require("./v3.config.js");
|
|
7
|
-
test_1.test.describe("tests captureHybridSnapshot() does not break due to -32000 Failed to convert response to JSON: CBOR: stack limit exceeded", () => {
|
|
8
|
-
let v3;
|
|
9
|
-
test_1.test.beforeEach(async () => {
|
|
10
|
-
v3 = new v3_js_1.V3(v3_config_js_1.v3TestConfig);
|
|
11
|
-
await v3.init();
|
|
12
|
-
});
|
|
13
|
-
test_1.test.afterEach(async () => {
|
|
14
|
-
await v3?.close?.().catch(() => { });
|
|
15
|
-
});
|
|
16
|
-
(0, test_1.test)("captureHybridSnapshot does not throw", async () => {
|
|
17
|
-
const page = v3.context.pages()[0];
|
|
18
|
-
await page.goto("https://browserbase.github.io/stagehand-eval-sites/sites/nested-div/");
|
|
19
|
-
await (0, test_1.expect)((0, index_js_1.captureHybridSnapshot)(page)).resolves.toBeDefined();
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
//# sourceMappingURL=nested-div.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nested-div.spec.js","sourceRoot":"","sources":["../../../../tests/integration/nested-div.spec.ts"],"names":[],"mappings":";;AAAA,2CAAgD;AAChD,8CAAwC;AACxC,6EAAuF;AACvF,iDAA8C;AAE9C,WAAI,CAAC,QAAQ,CAAC,2HAA2H,EAAE,GAAG,EAAE;IAC9I,IAAI,EAAM,CAAC;IAEX,WAAI,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE;QACzB,EAAE,GAAG,IAAI,UAAE,CAAC,2BAAY,CAAC,CAAC;QAC1B,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,WAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAI,EAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAEnC,MAAM,IAAI,CAAC,IAAI,CACb,sEAAsE,CACvE,CAAC;QAEF,MAAM,IAAA,aAAM,EAAC,IAAA,gCAAqB,EAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { test, expect } from \"@playwright/test\";\nimport { V3 } from \"../../lib/v3/v3.js\";\nimport { captureHybridSnapshot } from \"../../lib/v3/understudy/a11y/snapshot/index.js\";\nimport { v3TestConfig } from \"./v3.config.js\";\n\ntest.describe(\"tests captureHybridSnapshot() does not break due to -32000 Failed to convert response to JSON: CBOR: stack limit exceeded\", () => {\n let v3: V3;\n\n test.beforeEach(async () => {\n v3 = new V3(v3TestConfig);\n await v3.init();\n });\n\n test.afterEach(async () => {\n await v3?.close?.().catch(() => {});\n });\n\n test(\"captureHybridSnapshot does not throw\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"https://browserbase.github.io/stagehand-eval-sites/sites/nested-div/\",\n );\n\n await expect(captureHybridSnapshot(page)).resolves.toBeDefined();\n });\n});\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const test_1 = require("@playwright/test");
|
|
4
|
-
const v3_js_1 = require("../../lib/v3/v3.js");
|
|
5
|
-
const v3_config_js_1 = require("./v3.config.js");
|
|
6
|
-
const testUtils_js_1 = require("./testUtils.js");
|
|
7
|
-
const encodedIdPattern = /^\d+-\d+$/;
|
|
8
|
-
const mainFrameEncodedIdPattern = /^0-\d+$/;
|
|
9
|
-
function encodeHtml(html) {
|
|
10
|
-
return `data:text/html,${encodeURIComponent(html)}`;
|
|
11
|
-
}
|
|
12
|
-
const filler = Array.from({ length: 80 }, (_, index) => `<span hidden data-filler="${index}">filler ${index}</span>`).join("");
|
|
13
|
-
const cases = [
|
|
14
|
-
{
|
|
15
|
-
name: "button after hidden filler nodes",
|
|
16
|
-
instruction: "Find the Target Checkout button",
|
|
17
|
-
targetText: "Target Checkout",
|
|
18
|
-
marker: "checkout",
|
|
19
|
-
html: `
|
|
20
|
-
<!doctype html>
|
|
21
|
-
<html>
|
|
22
|
-
<body>
|
|
23
|
-
${filler}
|
|
24
|
-
<main>
|
|
25
|
-
<button onclick="document.body.dataset.clicked = 'checkout'">
|
|
26
|
-
Target Checkout
|
|
27
|
-
</button>
|
|
28
|
-
</main>
|
|
29
|
-
</body>
|
|
30
|
-
</html>
|
|
31
|
-
`,
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
name: "navigation link",
|
|
35
|
-
instruction: "Find the Pricing Plans link",
|
|
36
|
-
targetText: "Pricing Plans",
|
|
37
|
-
marker: "pricing",
|
|
38
|
-
html: `
|
|
39
|
-
<!doctype html>
|
|
40
|
-
<html>
|
|
41
|
-
<body>
|
|
42
|
-
<nav>
|
|
43
|
-
<a href="#pricing" onclick="document.body.dataset.clicked = 'pricing'">
|
|
44
|
-
Pricing Plans
|
|
45
|
-
</a>
|
|
46
|
-
</nav>
|
|
47
|
-
</body>
|
|
48
|
-
</html>
|
|
49
|
-
`,
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
name: "form input",
|
|
53
|
-
instruction: "Find the Company Email input",
|
|
54
|
-
targetText: "Company Email",
|
|
55
|
-
marker: "email",
|
|
56
|
-
html: `
|
|
57
|
-
<!doctype html>
|
|
58
|
-
<html>
|
|
59
|
-
<body>
|
|
60
|
-
<form>
|
|
61
|
-
<label>
|
|
62
|
-
Company Email
|
|
63
|
-
<input
|
|
64
|
-
type="email"
|
|
65
|
-
onclick="document.body.dataset.clicked = 'email'"
|
|
66
|
-
/>
|
|
67
|
-
</label>
|
|
68
|
-
</form>
|
|
69
|
-
</body>
|
|
70
|
-
</html>
|
|
71
|
-
`,
|
|
72
|
-
},
|
|
73
|
-
];
|
|
74
|
-
function observeResponseForTarget(testCase, onElementId) {
|
|
75
|
-
return (options) => {
|
|
76
|
-
const promptText = (0, testUtils_js_1.promptToText)(options.prompt);
|
|
77
|
-
(0, test_1.expect)(promptText).toContain("Always copy the complete ID exactly as shown inside the brackets into elementId");
|
|
78
|
-
(0, test_1.expect)(promptText).toContain('return elementId "0-18372"');
|
|
79
|
-
(0, test_1.expect)(promptText).toContain(testCase.targetText);
|
|
80
|
-
const elementId = (0, testUtils_js_1.findLastEncodedId)(options);
|
|
81
|
-
(0, test_1.expect)(elementId).toMatch(encodedIdPattern);
|
|
82
|
-
(0, test_1.expect)(elementId).toMatch(mainFrameEncodedIdPattern);
|
|
83
|
-
onElementId(elementId, options);
|
|
84
|
-
return {
|
|
85
|
-
elements: [
|
|
86
|
-
{
|
|
87
|
-
elementId,
|
|
88
|
-
description: testCase.targetText,
|
|
89
|
-
method: "click",
|
|
90
|
-
arguments: [],
|
|
91
|
-
},
|
|
92
|
-
],
|
|
93
|
-
};
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
test_1.test.describe("observe main frame element IDs", () => {
|
|
97
|
-
for (const testCase of cases) {
|
|
98
|
-
(0, test_1.test)(`keeps complete 0-ordinal element IDs for ${testCase.name}`, async () => {
|
|
99
|
-
let observedElementId;
|
|
100
|
-
const llmClient = (0, testUtils_js_1.createScriptedAisdkTestLlmClient)({
|
|
101
|
-
modelId: "mock/observe-main-frame-element-id-format",
|
|
102
|
-
jsonResponses: {
|
|
103
|
-
Observation: observeResponseForTarget(testCase, (elementId) => {
|
|
104
|
-
observedElementId = elementId;
|
|
105
|
-
}),
|
|
106
|
-
},
|
|
107
|
-
});
|
|
108
|
-
const v3 = new v3_js_1.V3((0, v3_config_js_1.getV3TestConfig)({
|
|
109
|
-
llmClient,
|
|
110
|
-
}));
|
|
111
|
-
await v3.init();
|
|
112
|
-
try {
|
|
113
|
-
const page = v3.context.pages()[0];
|
|
114
|
-
await page.goto(encodeHtml(testCase.html));
|
|
115
|
-
const observed = await v3.observe(testCase.instruction);
|
|
116
|
-
(0, test_1.expect)(observedElementId).toMatch(mainFrameEncodedIdPattern);
|
|
117
|
-
(0, test_1.expect)(observed).toHaveLength(1);
|
|
118
|
-
(0, test_1.expect)(observed[0].selector).toMatch(/^xpath=/);
|
|
119
|
-
const actResult = await v3.act(observed[0]);
|
|
120
|
-
(0, test_1.expect)(actResult.success).toBe(true);
|
|
121
|
-
const clicked = await page.evaluate(() => document.body.dataset.clicked);
|
|
122
|
-
(0, test_1.expect)(clicked).toBe(testCase.marker);
|
|
123
|
-
}
|
|
124
|
-
finally {
|
|
125
|
-
await (0, testUtils_js_1.closeV3)(v3);
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
//# sourceMappingURL=observe-element-id-format.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"observe-element-id-format.spec.js","sourceRoot":"","sources":["../../../../tests/integration/observe-element-id-format.spec.ts"],"names":[],"mappings":";;AAAA,2CAAgD;AAEhD,8CAAwC;AACxC,iDAAiD;AACjD,iDAKwB;AAExB,MAAM,gBAAgB,GAAG,WAAW,CAAC;AACrC,MAAM,yBAAyB,GAAG,SAAS,CAAC;AAE5C,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,kBAAkB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;AACtD,CAAC;AAUD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CACvB,EAAE,MAAM,EAAE,EAAE,EAAE,EACd,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,6BAA6B,KAAK,YAAY,KAAK,SAAS,CAC3E,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEX,MAAM,KAAK,GAAoB;IAC7B;QACE,IAAI,EAAE,kCAAkC;QACxC,WAAW,EAAE,iCAAiC;QAC9C,UAAU,EAAE,iBAAiB;QAC7B,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE;;;;YAIE,MAAM;;;;;;;;KAQb;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,6BAA6B;QAC1C,UAAU,EAAE,eAAe;QAC3B,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE;;;;;;;;;;;KAWL;KACF;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,8BAA8B;QAC3C,UAAU,EAAE,eAAe;QAC3B,MAAM,EAAE,OAAO;QACf,IAAI,EAAE;;;;;;;;;;;;;;;KAeL;KACF;CACF,CAAC;AAEF,SAAS,wBAAwB,CAC/B,QAAuB,EACvB,WAA6E;IAE7E,OAAO,CAAC,OAAmC,EAAE,EAAE;QAC7C,MAAM,UAAU,GAAG,IAAA,2BAAY,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChD,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,SAAS,CAC1B,iFAAiF,CAClF,CAAC;QACF,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;QAE3D,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAElD,MAAM,SAAS,GAAG,IAAA,gCAAiB,EAAC,OAAO,CAAC,CAAC;QAC7C,IAAA,aAAM,EAAC,SAAS,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC5C,IAAA,aAAM,EAAC,SAAS,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QACrD,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEhC,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,SAAS;oBACT,WAAW,EAAE,QAAQ,CAAC,UAAU;oBAChC,MAAM,EAAE,OAAO;oBACf,SAAS,EAAE,EAAc;iBAC1B;aACF;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,WAAI,CAAC,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IACnD,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAA,WAAI,EAAC,4CAA4C,QAAQ,CAAC,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE;YAC3E,IAAI,iBAAqC,CAAC;YAC1C,MAAM,SAAS,GAAG,IAAA,+CAAgC,EAAC;gBACjD,OAAO,EAAE,2CAA2C;gBACpD,aAAa,EAAE;oBACb,WAAW,EAAE,wBAAwB,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE;wBAC5D,iBAAiB,GAAG,SAAS,CAAC;oBAChC,CAAC,CAAC;iBACH;aACF,CAAC,CAAC;YAEH,MAAM,EAAE,GAAG,IAAI,UAAE,CACf,IAAA,8BAAe,EAAC;gBACd,SAAS;aACV,CAAC,CACH,CAAC;YACF,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;YAEhB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBAE3C,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAExD,IAAA,aAAM,EAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;gBAC7D,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAEhD,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5C,IAAA,aAAM,EAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAErC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CACjC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CACpC,CAAC;gBACF,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC;oBAAS,CAAC;gBACT,MAAM,IAAA,sBAAO,EAAC,EAAE,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC","sourcesContent":["import { expect, test } from \"@playwright/test\";\nimport type { LanguageModelV2CallOptions } from \"@ai-sdk/provider\";\nimport { V3 } from \"../../lib/v3/v3.js\";\nimport { getV3TestConfig } from \"./v3.config.js\";\nimport {\n closeV3,\n createScriptedAisdkTestLlmClient,\n findLastEncodedId,\n promptToText,\n} from \"./testUtils.js\";\n\nconst encodedIdPattern = /^\\d+-\\d+$/;\nconst mainFrameEncodedIdPattern = /^0-\\d+$/;\n\nfunction encodeHtml(html: string): string {\n return `data:text/html,${encodeURIComponent(html)}`;\n}\n\ntype MainFrameCase = {\n name: string;\n instruction: string;\n targetText: string;\n marker: string;\n html: string;\n};\n\nconst filler = Array.from(\n { length: 80 },\n (_, index) => `<span hidden data-filler=\"${index}\">filler ${index}</span>`,\n).join(\"\");\n\nconst cases: MainFrameCase[] = [\n {\n name: \"button after hidden filler nodes\",\n instruction: \"Find the Target Checkout button\",\n targetText: \"Target Checkout\",\n marker: \"checkout\",\n html: `\n <!doctype html>\n <html>\n <body>\n ${filler}\n <main>\n <button onclick=\"document.body.dataset.clicked = 'checkout'\">\n Target Checkout\n </button>\n </main>\n </body>\n </html>\n `,\n },\n {\n name: \"navigation link\",\n instruction: \"Find the Pricing Plans link\",\n targetText: \"Pricing Plans\",\n marker: \"pricing\",\n html: `\n <!doctype html>\n <html>\n <body>\n <nav>\n <a href=\"#pricing\" onclick=\"document.body.dataset.clicked = 'pricing'\">\n Pricing Plans\n </a>\n </nav>\n </body>\n </html>\n `,\n },\n {\n name: \"form input\",\n instruction: \"Find the Company Email input\",\n targetText: \"Company Email\",\n marker: \"email\",\n html: `\n <!doctype html>\n <html>\n <body>\n <form>\n <label>\n Company Email\n <input\n type=\"email\"\n onclick=\"document.body.dataset.clicked = 'email'\"\n />\n </label>\n </form>\n </body>\n </html>\n `,\n },\n];\n\nfunction observeResponseForTarget(\n testCase: MainFrameCase,\n onElementId: (elementId: string, options: LanguageModelV2CallOptions) => void,\n) {\n return (options: LanguageModelV2CallOptions) => {\n const promptText = promptToText(options.prompt);\n expect(promptText).toContain(\n \"Always copy the complete ID exactly as shown inside the brackets into elementId\",\n );\n expect(promptText).toContain('return elementId \"0-18372\"');\n\n expect(promptText).toContain(testCase.targetText);\n\n const elementId = findLastEncodedId(options);\n expect(elementId).toMatch(encodedIdPattern);\n expect(elementId).toMatch(mainFrameEncodedIdPattern);\n onElementId(elementId, options);\n\n return {\n elements: [\n {\n elementId,\n description: testCase.targetText,\n method: \"click\",\n arguments: [] as string[],\n },\n ],\n };\n };\n}\n\ntest.describe(\"observe main frame element IDs\", () => {\n for (const testCase of cases) {\n test(`keeps complete 0-ordinal element IDs for ${testCase.name}`, async () => {\n let observedElementId: string | undefined;\n const llmClient = createScriptedAisdkTestLlmClient({\n modelId: \"mock/observe-main-frame-element-id-format\",\n jsonResponses: {\n Observation: observeResponseForTarget(testCase, (elementId) => {\n observedElementId = elementId;\n }),\n },\n });\n\n const v3 = new V3(\n getV3TestConfig({\n llmClient,\n }),\n );\n await v3.init();\n\n try {\n const page = v3.context.pages()[0];\n await page.goto(encodeHtml(testCase.html));\n\n const observed = await v3.observe(testCase.instruction);\n\n expect(observedElementId).toMatch(mainFrameEncodedIdPattern);\n expect(observed).toHaveLength(1);\n expect(observed[0].selector).toMatch(/^xpath=/);\n\n const actResult = await v3.act(observed[0]);\n expect(actResult.success).toBe(true);\n\n const clicked = await page.evaluate(\n () => document.body.dataset.clicked,\n );\n expect(clicked).toBe(testCase.marker);\n } finally {\n await closeV3(v3);\n }\n });\n }\n});\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|