@vibesdotdev/control 0.0.0-stage → 1.0.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +18 -0
- package/README.md +90 -2
- package/dist/browser/browser.cloud.plugin.d.ts +21 -0
- package/dist/browser/browser.cloud.plugin.d.ts.map +1 -0
- package/dist/browser/browser.cloud.plugin.js +37 -0
- package/dist/browser/browser.cloud.plugin.js.map +1 -0
- package/dist/browser/browser.consumer.plugin.d.ts +4 -0
- package/dist/browser/browser.consumer.plugin.d.ts.map +1 -0
- package/dist/browser/browser.consumer.plugin.js +77 -0
- package/dist/browser/browser.consumer.plugin.js.map +1 -0
- package/dist/browser/browser.plugin.d.ts +3 -0
- package/dist/browser/browser.plugin.d.ts.map +1 -0
- package/dist/browser/browser.plugin.js +3 -0
- package/dist/browser/browser.plugin.js.map +1 -0
- package/dist/browser/bun/webview.backend.d.ts +23 -0
- package/dist/browser/bun/webview.backend.d.ts.map +1 -0
- package/dist/browser/bun/webview.backend.js +262 -0
- package/dist/browser/bun/webview.backend.js.map +1 -0
- package/dist/browser/bun/webview.descriptor.d.ts +21 -0
- package/dist/browser/bun/webview.descriptor.d.ts.map +1 -0
- package/dist/browser/bun/webview.descriptor.js +21 -0
- package/dist/browser/bun/webview.descriptor.js.map +1 -0
- package/dist/browser/bun/webview.plugin.d.ts +3 -0
- package/dist/browser/bun/webview.plugin.d.ts.map +1 -0
- package/dist/browser/bun/webview.plugin.js +24 -0
- package/dist/browser/bun/webview.plugin.js.map +1 -0
- package/dist/browser/client/browser-client.d.ts +92 -0
- package/dist/browser/client/browser-client.d.ts.map +1 -0
- package/dist/browser/client/browser-client.js +138 -0
- package/dist/browser/client/browser-client.js.map +1 -0
- package/dist/browser/client/workspace-client.d.ts +29 -0
- package/dist/browser/client/workspace-client.d.ts.map +1 -0
- package/dist/browser/client/workspace-client.js +38 -0
- package/dist/browser/client/workspace-client.js.map +1 -0
- package/dist/browser/contracts.d.ts +246 -0
- package/dist/browser/contracts.d.ts.map +1 -0
- package/dist/browser/contracts.js +38 -0
- package/dist/browser/contracts.js.map +1 -0
- package/dist/browser/index.d.ts +6 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +7 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/plugin.d.ts +3 -0
- package/dist/browser/plugin.d.ts.map +1 -0
- package/dist/browser/plugin.js +3 -0
- package/dist/browser/plugin.js.map +1 -0
- package/dist/browser/runtime/backend/kind.d.ts +23 -0
- package/dist/browser/runtime/backend/kind.d.ts.map +1 -0
- package/dist/browser/runtime/backend/kind.js +12 -0
- package/dist/browser/runtime/backend/kind.js.map +1 -0
- package/dist/browser/runtime/backend/playwright.descriptor.d.ts +20 -0
- package/dist/browser/runtime/backend/playwright.descriptor.d.ts.map +1 -0
- package/dist/browser/runtime/backend/playwright.descriptor.js +20 -0
- package/dist/browser/runtime/backend/playwright.descriptor.js.map +1 -0
- package/dist/browser/runtime/backend/resolve.d.ts +8 -0
- package/dist/browser/runtime/backend/resolve.d.ts.map +1 -0
- package/dist/browser/runtime/backend/resolve.js +43 -0
- package/dist/browser/runtime/backend/resolve.js.map +1 -0
- package/dist/browser/runtime/backend/types.d.ts +12 -0
- package/dist/browser/runtime/backend/types.d.ts.map +1 -0
- package/dist/browser/runtime/backend/types.js +12 -0
- package/dist/browser/runtime/backend/types.js.map +1 -0
- package/dist/browser/runtime/backends/playwright.backend.d.ts +71 -0
- package/dist/browser/runtime/backends/playwright.backend.d.ts.map +1 -0
- package/dist/browser/runtime/backends/playwright.backend.js +177 -0
- package/dist/browser/runtime/backends/playwright.backend.js.map +1 -0
- package/dist/browser/runtime/index.d.ts +3 -0
- package/dist/browser/runtime/index.d.ts.map +1 -0
- package/dist/browser/runtime/index.js +2 -0
- package/dist/browser/runtime/index.js.map +1 -0
- package/dist/browser/runtime/launcher.d.ts +18 -0
- package/dist/browser/runtime/launcher.d.ts.map +1 -0
- package/dist/browser/runtime/launcher.js +123 -0
- package/dist/browser/runtime/launcher.js.map +1 -0
- package/dist/browser/runtime/manager-host.d.ts +22 -0
- package/dist/browser/runtime/manager-host.d.ts.map +1 -0
- package/dist/browser/runtime/manager-host.js +102 -0
- package/dist/browser/runtime/manager-host.js.map +1 -0
- package/dist/browser/runtime/manager.context.d.ts +19 -0
- package/dist/browser/runtime/manager.context.d.ts.map +1 -0
- package/dist/browser/runtime/manager.context.descriptor.d.ts +30 -0
- package/dist/browser/runtime/manager.context.descriptor.d.ts.map +1 -0
- package/dist/browser/runtime/manager.context.descriptor.js +7 -0
- package/dist/browser/runtime/manager.context.descriptor.js.map +1 -0
- package/dist/browser/runtime/manager.context.impl.consumer.d.ts +6 -0
- package/dist/browser/runtime/manager.context.impl.consumer.d.ts.map +1 -0
- package/dist/browser/runtime/manager.context.impl.consumer.js +7 -0
- package/dist/browser/runtime/manager.context.impl.consumer.js.map +1 -0
- package/dist/browser/runtime/manager.context.js +19 -0
- package/dist/browser/runtime/manager.context.js.map +1 -0
- package/dist/browser/runtime/manager.d.ts +97 -0
- package/dist/browser/runtime/manager.d.ts.map +1 -0
- package/dist/browser/runtime/manager.js +731 -0
- package/dist/browser/runtime/manager.js.map +1 -0
- package/dist/browser/runtime/safe-url.d.ts +27 -0
- package/dist/browser/runtime/safe-url.d.ts.map +1 -0
- package/dist/browser/runtime/safe-url.js +77 -0
- package/dist/browser/runtime/safe-url.js.map +1 -0
- package/dist/browser/runtime/session-lease.d.ts +24 -0
- package/dist/browser/runtime/session-lease.d.ts.map +1 -0
- package/dist/browser/runtime/session-lease.js +65 -0
- package/dist/browser/runtime/session-lease.js.map +1 -0
- package/dist/browser/runtime/step-executor.d.ts +14 -0
- package/dist/browser/runtime/step-executor.d.ts.map +1 -0
- package/dist/browser/runtime/step-executor.js +97 -0
- package/dist/browser/runtime/step-executor.js.map +1 -0
- package/dist/browser/runtime/types.d.ts +54 -0
- package/dist/browser/runtime/types.d.ts.map +1 -0
- package/dist/browser/runtime/types.js +5 -0
- package/dist/browser/runtime/types.js.map +1 -0
- package/dist/browser/schemas/backend.d.ts +79 -0
- package/dist/browser/schemas/backend.d.ts.map +1 -0
- package/dist/browser/schemas/backend.js +33 -0
- package/dist/browser/schemas/backend.js.map +1 -0
- package/dist/browser/schemas/cli.d.ts +55 -0
- package/dist/browser/schemas/cli.d.ts.map +1 -0
- package/dist/browser/schemas/cli.js +37 -0
- package/dist/browser/schemas/cli.js.map +1 -0
- package/dist/browser/schemas/client.d.ts +28 -0
- package/dist/browser/schemas/client.d.ts.map +1 -0
- package/dist/browser/schemas/client.js +7 -0
- package/dist/browser/schemas/client.js.map +1 -0
- package/dist/browser/schemas/page.d.ts +71 -0
- package/dist/browser/schemas/page.d.ts.map +1 -0
- package/dist/browser/schemas/page.js +32 -0
- package/dist/browser/schemas/page.js.map +1 -0
- package/dist/browser/schemas/profile.d.ts +14 -0
- package/dist/browser/schemas/profile.d.ts.map +1 -0
- package/dist/browser/schemas/profile.js +14 -0
- package/dist/browser/schemas/profile.js.map +1 -0
- package/dist/browser/schemas/recipe.d.ts +218 -0
- package/dist/browser/schemas/recipe.d.ts.map +1 -0
- package/dist/browser/schemas/recipe.js +91 -0
- package/dist/browser/schemas/recipe.js.map +1 -0
- package/dist/browser/schemas/session.d.ts +42 -0
- package/dist/browser/schemas/session.d.ts.map +1 -0
- package/dist/browser/schemas/session.js +22 -0
- package/dist/browser/schemas/session.js.map +1 -0
- package/dist/browser/schemas/tab.d.ts +38 -0
- package/dist/browser/schemas/tab.d.ts.map +1 -0
- package/dist/browser/schemas/tab.js +20 -0
- package/dist/browser/schemas/tab.js.map +1 -0
- package/dist/browser/schemas/tool-card.d.ts +68 -0
- package/dist/browser/schemas/tool-card.d.ts.map +1 -0
- package/dist/browser/schemas/tool-card.js +29 -0
- package/dist/browser/schemas/tool-card.js.map +1 -0
- package/dist/browser/schemas/webview.d.ts +40 -0
- package/dist/browser/schemas/webview.d.ts.map +1 -0
- package/dist/browser/schemas/webview.js +5 -0
- package/dist/browser/schemas/webview.js.map +1 -0
- package/dist/browser/schemas/workspace.d.ts +8 -0
- package/dist/browser/schemas/workspace.d.ts.map +1 -0
- package/dist/browser/schemas/workspace.js +7 -0
- package/dist/browser/schemas/workspace.js.map +1 -0
- package/dist/browser/shared/ai-client.d.ts +26 -0
- package/dist/browser/shared/ai-client.d.ts.map +1 -0
- package/dist/browser/shared/ai-client.js +27 -0
- package/dist/browser/shared/ai-client.js.map +1 -0
- package/dist/browser/shared/ai-request.d.ts +26 -0
- package/dist/browser/shared/ai-request.d.ts.map +1 -0
- package/dist/browser/shared/ai-request.js +32 -0
- package/dist/browser/shared/ai-request.js.map +1 -0
- package/dist/browser/shared/cleanup.d.ts +5 -0
- package/dist/browser/shared/cleanup.d.ts.map +1 -0
- package/dist/browser/shared/cleanup.js +15 -0
- package/dist/browser/shared/cleanup.js.map +1 -0
- package/dist/browser/shared/constants.d.ts +19 -0
- package/dist/browser/shared/constants.d.ts.map +1 -0
- package/dist/browser/shared/constants.js +13 -0
- package/dist/browser/shared/constants.js.map +1 -0
- package/dist/browser/shared/json.d.ts +5 -0
- package/dist/browser/shared/json.d.ts.map +1 -0
- package/dist/browser/shared/json.js +3 -0
- package/dist/browser/shared/json.js.map +1 -0
- package/dist/browser/shared/paths.d.ts +33 -0
- package/dist/browser/shared/paths.d.ts.map +1 -0
- package/dist/browser/shared/paths.js +55 -0
- package/dist/browser/shared/paths.js.map +1 -0
- package/dist/browser/shared/steps.d.ts +82 -0
- package/dist/browser/shared/steps.d.ts.map +1 -0
- package/dist/browser/shared/steps.js +88 -0
- package/dist/browser/shared/steps.js.map +1 -0
- package/dist/browser/shared/storage-state.d.ts +23 -0
- package/dist/browser/shared/storage-state.d.ts.map +1 -0
- package/dist/browser/shared/storage-state.js +5 -0
- package/dist/browser/shared/storage-state.js.map +1 -0
- package/dist/browser/shared/tool-summary.d.ts +48 -0
- package/dist/browser/shared/tool-summary.d.ts.map +1 -0
- package/dist/browser/shared/tool-summary.js +183 -0
- package/dist/browser/shared/tool-summary.js.map +1 -0
- package/dist/browser/storage/browser-profile.record.descriptor.d.ts +28 -0
- package/dist/browser/storage/browser-profile.record.descriptor.d.ts.map +1 -0
- package/dist/browser/storage/browser-profile.record.descriptor.js +129 -0
- package/dist/browser/storage/browser-profile.record.descriptor.js.map +1 -0
- package/dist/browser/storage/browser-recipe.record.descriptor.d.ts +29 -0
- package/dist/browser/storage/browser-recipe.record.descriptor.d.ts.map +1 -0
- package/dist/browser/storage/browser-recipe.record.descriptor.js +103 -0
- package/dist/browser/storage/browser-recipe.record.descriptor.js.map +1 -0
- package/dist/browser/storage/browser-session.record.descriptor.d.ts +28 -0
- package/dist/browser/storage/browser-session.record.descriptor.d.ts.map +1 -0
- package/dist/browser/storage/browser-session.record.descriptor.js +147 -0
- package/dist/browser/storage/browser-session.record.descriptor.js.map +1 -0
- package/dist/browser/storage/browser-tab.record.descriptor.d.ts +28 -0
- package/dist/browser/storage/browser-tab.record.descriptor.d.ts.map +1 -0
- package/dist/browser/storage/browser-tab.record.descriptor.js +153 -0
- package/dist/browser/storage/browser-tab.record.descriptor.js.map +1 -0
- package/dist/browser/storage/database.d.ts +9 -0
- package/dist/browser/storage/database.d.ts.map +1 -0
- package/dist/browser/storage/database.js +16 -0
- package/dist/browser/storage/database.js.map +1 -0
- package/dist/browser/storage/index.d.ts +6 -0
- package/dist/browser/storage/index.d.ts.map +1 -0
- package/dist/browser/storage/index.js +5 -0
- package/dist/browser/storage/index.js.map +1 -0
- package/dist/browser/storage/types.d.ts +78 -0
- package/dist/browser/storage/types.d.ts.map +1 -0
- package/dist/browser/storage/types.js +5 -0
- package/dist/browser/storage/types.js.map +1 -0
- package/dist/browser/tools/cdp/implementation.d.ts +6 -0
- package/dist/browser/tools/cdp/implementation.d.ts.map +1 -0
- package/dist/browser/tools/cdp/implementation.js +20 -0
- package/dist/browser/tools/cdp/implementation.js.map +1 -0
- package/dist/browser/tools/control/implementation.d.ts +7 -0
- package/dist/browser/tools/control/implementation.d.ts.map +1 -0
- package/dist/browser/tools/control/implementation.js +185 -0
- package/dist/browser/tools/control/implementation.js.map +1 -0
- package/dist/browser/tools/control/prompts/index.d.ts +113 -0
- package/dist/browser/tools/control/prompts/index.d.ts.map +1 -0
- package/dist/browser/tools/control/prompts/index.js +5 -0
- package/dist/browser/tools/control/prompts/index.js.map +1 -0
- package/dist/browser/tools/control/prompts/plan-request.prompt.descriptor.d.ts +114 -0
- package/dist/browser/tools/control/prompts/plan-request.prompt.descriptor.d.ts.map +1 -0
- package/dist/browser/tools/control/prompts/plan-request.prompt.descriptor.js +57 -0
- package/dist/browser/tools/control/prompts/plan-request.prompt.descriptor.js.map +1 -0
- package/dist/browser/tools/control/prompts/planner.prompt.descriptor.d.ts +113 -0
- package/dist/browser/tools/control/prompts/planner.prompt.descriptor.d.ts.map +1 -0
- package/dist/browser/tools/control/prompts/planner.prompt.descriptor.js +15 -0
- package/dist/browser/tools/control/prompts/planner.prompt.descriptor.js.map +1 -0
- package/dist/browser/tools/control/schemas.d.ts +220 -0
- package/dist/browser/tools/control/schemas.d.ts.map +1 -0
- package/dist/browser/tools/control/schemas.js +49 -0
- package/dist/browser/tools/control/schemas.js.map +1 -0
- package/dist/browser/tools/direct/implementation.d.ts +7 -0
- package/dist/browser/tools/direct/implementation.d.ts.map +1 -0
- package/dist/browser/tools/direct/implementation.js +63 -0
- package/dist/browser/tools/direct/implementation.js.map +1 -0
- package/dist/browser/tools/direct/schemas.d.ts +209 -0
- package/dist/browser/tools/direct/schemas.d.ts.map +1 -0
- package/dist/browser/tools/direct/schemas.js +68 -0
- package/dist/browser/tools/direct/schemas.js.map +1 -0
- package/dist/browser/tools/index.d.ts +9 -0
- package/dist/browser/tools/index.d.ts.map +1 -0
- package/dist/browser/tools/index.js +9 -0
- package/dist/browser/tools/index.js.map +1 -0
- package/dist/browser/tools/observe/implementation.d.ts +7 -0
- package/dist/browser/tools/observe/implementation.d.ts.map +1 -0
- package/dist/browser/tools/observe/implementation.js +59 -0
- package/dist/browser/tools/observe/implementation.js.map +1 -0
- package/dist/browser/tools/observe/schemas.d.ts +63 -0
- package/dist/browser/tools/observe/schemas.d.ts.map +1 -0
- package/dist/browser/tools/observe/schemas.js +38 -0
- package/dist/browser/tools/observe/schemas.js.map +1 -0
- package/dist/browser/tools/observe/vision.d.ts +21 -0
- package/dist/browser/tools/observe/vision.d.ts.map +1 -0
- package/dist/browser/tools/observe/vision.js +73 -0
- package/dist/browser/tools/observe/vision.js.map +1 -0
- package/dist/browser/tools/recipe/implementation.d.ts +4 -0
- package/dist/browser/tools/recipe/implementation.d.ts.map +1 -0
- package/dist/browser/tools/recipe/implementation.js +259 -0
- package/dist/browser/tools/recipe/implementation.js.map +1 -0
- package/dist/browser/tools/recipe/schemas.d.ts +646 -0
- package/dist/browser/tools/recipe/schemas.d.ts.map +1 -0
- package/dist/browser/tools/recipe/schemas.js +126 -0
- package/dist/browser/tools/recipe/schemas.js.map +1 -0
- package/dist/browser/tools/session/implementation.d.ts +7 -0
- package/dist/browser/tools/session/implementation.d.ts.map +1 -0
- package/dist/browser/tools/session/implementation.js +111 -0
- package/dist/browser/tools/session/implementation.js.map +1 -0
- package/dist/browser/tools/session/index.d.ts +5 -0
- package/dist/browser/tools/session/index.d.ts.map +1 -0
- package/dist/browser/tools/session/index.js +6 -0
- package/dist/browser/tools/session/index.js.map +1 -0
- package/dist/browser/tools/session/schemas.d.ts +78 -0
- package/dist/browser/tools/session/schemas.d.ts.map +1 -0
- package/dist/browser/tools/session/schemas.js +60 -0
- package/dist/browser/tools/session/schemas.js.map +1 -0
- package/dist/browser/tools/unified/browser-recipe.prompt.descriptor.d.ts +114 -0
- package/dist/browser/tools/unified/browser-recipe.prompt.descriptor.d.ts.map +1 -0
- package/dist/browser/tools/unified/browser-recipe.prompt.descriptor.js +22 -0
- package/dist/browser/tools/unified/browser-recipe.prompt.descriptor.js.map +1 -0
- package/dist/browser/tools/unified/browser.impl.cloud.d.ts +8 -0
- package/dist/browser/tools/unified/browser.impl.cloud.d.ts.map +1 -0
- package/dist/browser/tools/unified/browser.impl.cloud.js +381 -0
- package/dist/browser/tools/unified/browser.impl.cloud.js.map +1 -0
- package/dist/browser/tools/unified/browser.impl.consumer.d.ts +14 -0
- package/dist/browser/tools/unified/browser.impl.consumer.d.ts.map +1 -0
- package/dist/browser/tools/unified/browser.impl.consumer.js +87 -0
- package/dist/browser/tools/unified/browser.impl.consumer.js.map +1 -0
- package/dist/browser/tools/unified/browser.unified.descriptor.d.ts +587 -0
- package/dist/browser/tools/unified/browser.unified.descriptor.d.ts.map +1 -0
- package/dist/browser/tools/unified/browser.unified.descriptor.js +54 -0
- package/dist/browser/tools/unified/browser.unified.descriptor.js.map +1 -0
- package/dist/browser/tools/unified/execution-binding.d.ts +5 -0
- package/dist/browser/tools/unified/execution-binding.d.ts.map +1 -0
- package/dist/browser/tools/unified/execution-binding.js +51 -0
- package/dist/browser/tools/unified/execution-binding.js.map +1 -0
- package/dist/browser/tools/unified/index.d.ts +5 -0
- package/dist/browser/tools/unified/index.d.ts.map +1 -0
- package/dist/browser/tools/unified/index.js +6 -0
- package/dist/browser/tools/unified/index.js.map +1 -0
- package/dist/browser/tools/unified/scan-cache-wiring.d.ts +16 -0
- package/dist/browser/tools/unified/scan-cache-wiring.d.ts.map +1 -0
- package/dist/browser/tools/unified/scan-cache-wiring.js +87 -0
- package/dist/browser/tools/unified/scan-cache-wiring.js.map +1 -0
- package/dist/browser/tools/unified/schemas.d.ts +786 -0
- package/dist/browser/tools/unified/schemas.d.ts.map +1 -0
- package/dist/browser/tools/unified/schemas.js +354 -0
- package/dist/browser/tools/unified/schemas.js.map +1 -0
- package/dist/browser/tools/webmcp/detection-script.d.ts +19 -0
- package/dist/browser/tools/webmcp/detection-script.d.ts.map +1 -0
- package/dist/browser/tools/webmcp/detection-script.js +104 -0
- package/dist/browser/tools/webmcp/detection-script.js.map +1 -0
- package/dist/browser/tools/webmcp/implementation.d.ts +18 -0
- package/dist/browser/tools/webmcp/implementation.d.ts.map +1 -0
- package/dist/browser/tools/webmcp/implementation.js +61 -0
- package/dist/browser/tools/webmcp/implementation.js.map +1 -0
- package/dist/cli/browser/browser.cli-group.descriptor.d.ts +17 -0
- package/dist/cli/browser/browser.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/browser/browser.cli-group.descriptor.js +17 -0
- package/dist/cli/browser/browser.cli-group.descriptor.js.map +1 -0
- package/dist/cli/browser/browser.cli.plugin.d.ts +12 -0
- package/dist/cli/browser/browser.cli.plugin.d.ts.map +1 -0
- package/dist/cli/browser/browser.cli.plugin.js +179 -0
- package/dist/cli/browser/browser.cli.plugin.js.map +1 -0
- package/dist/cli/browser/browser.recipe.cli-group.descriptor.d.ts +18 -0
- package/dist/cli/browser/browser.recipe.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/browser/browser.recipe.cli-group.descriptor.js +18 -0
- package/dist/cli/browser/browser.recipe.cli-group.descriptor.js.map +1 -0
- package/dist/cli/browser/browser.session.cli-group.descriptor.d.ts +18 -0
- package/dist/cli/browser/browser.session.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/browser/browser.session.cli-group.descriptor.js +18 -0
- package/dist/cli/browser/browser.session.cli-group.descriptor.js.map +1 -0
- package/dist/cli/browser/commands/control/browser.control.cli-command.descriptor.d.ts +36 -0
- package/dist/cli/browser/commands/control/browser.control.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/browser/commands/control/browser.control.cli-command.descriptor.js +29 -0
- package/dist/cli/browser/commands/control/browser.control.cli-command.descriptor.js.map +1 -0
- package/dist/cli/browser/commands/control/browser.control.impl.d.ts +7 -0
- package/dist/cli/browser/commands/control/browser.control.impl.d.ts.map +1 -0
- package/dist/cli/browser/commands/control/browser.control.impl.js +67 -0
- package/dist/cli/browser/commands/control/browser.control.impl.js.map +1 -0
- package/dist/cli/browser/commands/direct/browser.direct.cli-command.descriptor.d.ts +38 -0
- package/dist/cli/browser/commands/direct/browser.direct.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/browser/commands/direct/browser.direct.cli-command.descriptor.js +28 -0
- package/dist/cli/browser/commands/direct/browser.direct.cli-command.descriptor.js.map +1 -0
- package/dist/cli/browser/commands/direct/browser.direct.impl.d.ts +7 -0
- package/dist/cli/browser/commands/direct/browser.direct.impl.d.ts.map +1 -0
- package/dist/cli/browser/commands/direct/browser.direct.impl.js +85 -0
- package/dist/cli/browser/commands/direct/browser.direct.impl.js.map +1 -0
- package/dist/cli/browser/commands/observe/browser.observe.cli-command.descriptor.d.ts +30 -0
- package/dist/cli/browser/commands/observe/browser.observe.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/browser/commands/observe/browser.observe.cli-command.descriptor.js +22 -0
- package/dist/cli/browser/commands/observe/browser.observe.cli-command.descriptor.js.map +1 -0
- package/dist/cli/browser/commands/observe/browser.observe.impl.d.ts +7 -0
- package/dist/cli/browser/commands/observe/browser.observe.impl.d.ts.map +1 -0
- package/dist/cli/browser/commands/observe/browser.observe.impl.js +59 -0
- package/dist/cli/browser/commands/observe/browser.observe.impl.js.map +1 -0
- package/dist/cli/browser/commands/recipe/create/browser.recipe.create.cli-command.descriptor.d.ts +38 -0
- package/dist/cli/browser/commands/recipe/create/browser.recipe.create.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/browser/commands/recipe/create/browser.recipe.create.cli-command.descriptor.js +26 -0
- package/dist/cli/browser/commands/recipe/create/browser.recipe.create.cli-command.descriptor.js.map +1 -0
- package/dist/cli/browser/commands/recipe/create/browser.recipe.create.impl.d.ts +7 -0
- package/dist/cli/browser/commands/recipe/create/browser.recipe.create.impl.d.ts.map +1 -0
- package/dist/cli/browser/commands/recipe/create/browser.recipe.create.impl.js +60 -0
- package/dist/cli/browser/commands/recipe/create/browser.recipe.create.impl.js.map +1 -0
- package/dist/cli/browser/commands/recipe/delete/browser.recipe.delete.cli-command.descriptor.d.ts +25 -0
- package/dist/cli/browser/commands/recipe/delete/browser.recipe.delete.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/browser/commands/recipe/delete/browser.recipe.delete.cli-command.descriptor.js +22 -0
- package/dist/cli/browser/commands/recipe/delete/browser.recipe.delete.cli-command.descriptor.js.map +1 -0
- package/dist/cli/browser/commands/recipe/delete/browser.recipe.delete.impl.d.ts +7 -0
- package/dist/cli/browser/commands/recipe/delete/browser.recipe.delete.impl.d.ts.map +1 -0
- package/dist/cli/browser/commands/recipe/delete/browser.recipe.delete.impl.js +35 -0
- package/dist/cli/browser/commands/recipe/delete/browser.recipe.delete.impl.js.map +1 -0
- package/dist/cli/browser/commands/recipe/get/browser.recipe.get.cli-command.descriptor.d.ts +25 -0
- package/dist/cli/browser/commands/recipe/get/browser.recipe.get.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/browser/commands/recipe/get/browser.recipe.get.cli-command.descriptor.js +22 -0
- package/dist/cli/browser/commands/recipe/get/browser.recipe.get.cli-command.descriptor.js.map +1 -0
- package/dist/cli/browser/commands/recipe/get/browser.recipe.get.impl.d.ts +7 -0
- package/dist/cli/browser/commands/recipe/get/browser.recipe.get.impl.d.ts.map +1 -0
- package/dist/cli/browser/commands/recipe/get/browser.recipe.get.impl.js +88 -0
- package/dist/cli/browser/commands/recipe/get/browser.recipe.get.impl.js.map +1 -0
- package/dist/cli/browser/commands/recipe/list/browser.recipe.list.cli-command.descriptor.d.ts +20 -0
- package/dist/cli/browser/commands/recipe/list/browser.recipe.list.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/browser/commands/recipe/list/browser.recipe.list.cli-command.descriptor.js +19 -0
- package/dist/cli/browser/commands/recipe/list/browser.recipe.list.cli-command.descriptor.js.map +1 -0
- package/dist/cli/browser/commands/recipe/list/browser.recipe.list.impl.d.ts +7 -0
- package/dist/cli/browser/commands/recipe/list/browser.recipe.list.impl.d.ts.map +1 -0
- package/dist/cli/browser/commands/recipe/list/browser.recipe.list.impl.js +34 -0
- package/dist/cli/browser/commands/recipe/list/browser.recipe.list.impl.js.map +1 -0
- package/dist/cli/browser/commands/recipe/run/browser.recipe.run.cli-command.descriptor.d.ts +37 -0
- package/dist/cli/browser/commands/recipe/run/browser.recipe.run.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/browser/commands/recipe/run/browser.recipe.run.cli-command.descriptor.js +26 -0
- package/dist/cli/browser/commands/recipe/run/browser.recipe.run.cli-command.descriptor.js.map +1 -0
- package/dist/cli/browser/commands/recipe/run/browser.recipe.run.impl.d.ts +7 -0
- package/dist/cli/browser/commands/recipe/run/browser.recipe.run.impl.d.ts.map +1 -0
- package/dist/cli/browser/commands/recipe/run/browser.recipe.run.impl.js +88 -0
- package/dist/cli/browser/commands/recipe/run/browser.recipe.run.impl.js.map +1 -0
- package/dist/cli/browser/commands/recipe/update/browser.recipe.update.cli-command.descriptor.d.ts +37 -0
- package/dist/cli/browser/commands/recipe/update/browser.recipe.update.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/browser/commands/recipe/update/browser.recipe.update.cli-command.descriptor.js +26 -0
- package/dist/cli/browser/commands/recipe/update/browser.recipe.update.cli-command.descriptor.js.map +1 -0
- package/dist/cli/browser/commands/recipe/update/browser.recipe.update.impl.d.ts +7 -0
- package/dist/cli/browser/commands/recipe/update/browser.recipe.update.impl.d.ts.map +1 -0
- package/dist/cli/browser/commands/recipe/update/browser.recipe.update.impl.js +63 -0
- package/dist/cli/browser/commands/recipe/update/browser.recipe.update.impl.js.map +1 -0
- package/dist/cli/browser/commands/session/close/browser.session.close.cli-command.descriptor.d.ts +28 -0
- package/dist/cli/browser/commands/session/close/browser.session.close.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/browser/commands/session/close/browser.session.close.cli-command.descriptor.js +23 -0
- package/dist/cli/browser/commands/session/close/browser.session.close.cli-command.descriptor.js.map +1 -0
- package/dist/cli/browser/commands/session/close/browser.session.close.impl.d.ts +35 -0
- package/dist/cli/browser/commands/session/close/browser.session.close.impl.d.ts.map +1 -0
- package/dist/cli/browser/commands/session/close/browser.session.close.impl.js +75 -0
- package/dist/cli/browser/commands/session/close/browser.session.close.impl.js.map +1 -0
- package/dist/cli/browser/commands/session/dismiss/browser.session.dismiss.cli-command.descriptor.d.ts +16 -0
- package/dist/cli/browser/commands/session/dismiss/browser.session.dismiss.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/browser/commands/session/dismiss/browser.session.dismiss.cli-command.descriptor.js +16 -0
- package/dist/cli/browser/commands/session/dismiss/browser.session.dismiss.cli-command.descriptor.js.map +1 -0
- package/dist/cli/browser/commands/session/dismiss/browser.session.dismiss.impl.d.ts +7 -0
- package/dist/cli/browser/commands/session/dismiss/browser.session.dismiss.impl.d.ts.map +1 -0
- package/dist/cli/browser/commands/session/dismiss/browser.session.dismiss.impl.js +14 -0
- package/dist/cli/browser/commands/session/dismiss/browser.session.dismiss.impl.js.map +1 -0
- package/dist/cli/browser/commands/session/get/browser.session.get.cli-command.descriptor.d.ts +25 -0
- package/dist/cli/browser/commands/session/get/browser.session.get.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/browser/commands/session/get/browser.session.get.cli-command.descriptor.js +22 -0
- package/dist/cli/browser/commands/session/get/browser.session.get.cli-command.descriptor.js.map +1 -0
- package/dist/cli/browser/commands/session/get/browser.session.get.impl.d.ts +18 -0
- package/dist/cli/browser/commands/session/get/browser.session.get.impl.d.ts.map +1 -0
- package/dist/cli/browser/commands/session/get/browser.session.get.impl.js +61 -0
- package/dist/cli/browser/commands/session/get/browser.session.get.impl.js.map +1 -0
- package/dist/cli/browser/commands/session/list/browser.session.list.cli-command.descriptor.d.ts +27 -0
- package/dist/cli/browser/commands/session/list/browser.session.list.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/browser/commands/session/list/browser.session.list.cli-command.descriptor.js +24 -0
- package/dist/cli/browser/commands/session/list/browser.session.list.cli-command.descriptor.js.map +1 -0
- package/dist/cli/browser/commands/session/list/browser.session.list.impl.d.ts +22 -0
- package/dist/cli/browser/commands/session/list/browser.session.list.impl.d.ts.map +1 -0
- package/dist/cli/browser/commands/session/list/browser.session.list.impl.js +73 -0
- package/dist/cli/browser/commands/session/list/browser.session.list.impl.js.map +1 -0
- package/dist/cli/browser/commands/session/present/browser.session.present.cli-command.descriptor.d.ts +25 -0
- package/dist/cli/browser/commands/session/present/browser.session.present.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/browser/commands/session/present/browser.session.present.cli-command.descriptor.js +22 -0
- package/dist/cli/browser/commands/session/present/browser.session.present.cli-command.descriptor.js.map +1 -0
- package/dist/cli/browser/commands/session/present/browser.session.present.impl.d.ts +7 -0
- package/dist/cli/browser/commands/session/present/browser.session.present.impl.d.ts.map +1 -0
- package/dist/cli/browser/commands/session/present/browser.session.present.impl.js +29 -0
- package/dist/cli/browser/commands/session/present/browser.session.present.impl.js.map +1 -0
- package/dist/cli/browser/commands/session/resolve-session.d.ts +19 -0
- package/dist/cli/browser/commands/session/resolve-session.d.ts.map +1 -0
- package/dist/cli/browser/commands/session/resolve-session.js +11 -0
- package/dist/cli/browser/commands/session/resolve-session.js.map +1 -0
- package/dist/cli/browser/commands/session/session-age.d.ts +6 -0
- package/dist/cli/browser/commands/session/session-age.d.ts.map +1 -0
- package/dist/cli/browser/commands/session/session-age.js +34 -0
- package/dist/cli/browser/commands/session/session-age.js.map +1 -0
- package/dist/cli/browser/commands/session/sweep/browser.session.sweep.cli-command.descriptor.d.ts +26 -0
- package/dist/cli/browser/commands/session/sweep/browser.session.sweep.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/browser/commands/session/sweep/browser.session.sweep.cli-command.descriptor.js +24 -0
- package/dist/cli/browser/commands/session/sweep/browser.session.sweep.cli-command.descriptor.js.map +1 -0
- package/dist/cli/browser/commands/session/sweep/browser.session.sweep.impl.d.ts +32 -0
- package/dist/cli/browser/commands/session/sweep/browser.session.sweep.impl.d.ts.map +1 -0
- package/dist/cli/browser/commands/session/sweep/browser.session.sweep.impl.js +112 -0
- package/dist/cli/browser/commands/session/sweep/browser.session.sweep.impl.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/svelte/browser/BrowserWorkspace.svelte +450 -0
- package/dist/svelte/browser/BrowserWorkspace.svelte.d.ts +20 -0
- package/dist/svelte/browser/BrowserWorkspace.svelte.d.ts.map +1 -0
- package/dist/svelte/browser/browser-automation-svelte.plugin.d.ts +3 -0
- package/dist/svelte/browser/browser-automation-svelte.plugin.d.ts.map +1 -0
- package/dist/svelte/browser/browser-automation-svelte.plugin.js +25 -0
- package/dist/svelte/browser/docs/browser-automation-svelte.docs.descriptor.d.ts +4 -0
- package/dist/svelte/browser/docs/browser-automation-svelte.docs.descriptor.d.ts.map +1 -0
- package/dist/svelte/browser/docs/browser-automation-svelte.docs.descriptor.js +55 -0
- package/dist/svelte/browser/index.d.ts +6 -0
- package/dist/svelte/browser/index.d.ts.map +1 -0
- package/dist/svelte/browser/index.js +4 -0
- package/dist/svelte/browser/state.svelte.d.ts +28 -0
- package/dist/svelte/browser/state.svelte.d.ts.map +1 -0
- package/dist/svelte/browser/state.svelte.js +87 -0
- package/dist/svelte/browser/styles.css +10 -0
- package/dist/svelte/browser/tool-widgets/BrowserToolCard.svelte +268 -0
- package/dist/svelte/browser/tool-widgets/BrowserToolCard.svelte.d.ts +10 -0
- package/dist/svelte/browser/tool-widgets/BrowserToolCard.svelte.d.ts.map +1 -0
- package/dist/svelte/browser/tool-widgets/index.d.ts +2 -0
- package/dist/svelte/browser/tool-widgets/index.d.ts.map +1 -0
- package/dist/svelte/browser/tool-widgets/index.js +1 -0
- package/dist/svelte/browser/tool-widgets/summary.d.ts +2 -0
- package/dist/svelte/browser/tool-widgets/summary.d.ts.map +1 -0
- package/dist/svelte/browser/tool-widgets/summary.js +1 -0
- package/dist/svelte/browser/types.d.ts +16 -0
- package/dist/svelte/browser/types.d.ts.map +1 -0
- package/dist/svelte/browser/types.js +1 -0
- package/dist/tui/browser/browser-sessions.app.descriptor.d.ts +33 -0
- package/dist/tui/browser/browser-sessions.app.descriptor.d.ts.map +1 -0
- package/dist/tui/browser/browser-sessions.app.descriptor.js +33 -0
- package/dist/tui/browser/browser-sessions.app.descriptor.js.map +1 -0
- package/dist/tui/browser/browser-sessions.app.impl.d.ts +4 -0
- package/dist/tui/browser/browser-sessions.app.impl.d.ts.map +1 -0
- package/dist/tui/browser/browser-sessions.app.impl.js +231 -0
- package/dist/tui/browser/browser-sessions.app.impl.js.map +1 -0
- package/dist/tui/browser/browser.tui.plugin.d.ts +13 -0
- package/dist/tui/browser/browser.tui.plugin.d.ts.map +1 -0
- package/dist/tui/browser/browser.tui.plugin.js +52 -0
- package/dist/tui/browser/browser.tui.plugin.js.map +1 -0
- package/dist/tui/browser/tool-widgets/BrowserToolWidget.impl.consumer.d.ts +4 -0
- package/dist/tui/browser/tool-widgets/BrowserToolWidget.impl.consumer.d.ts.map +1 -0
- package/dist/tui/browser/tool-widgets/BrowserToolWidget.impl.consumer.js +31 -0
- package/dist/tui/browser/tool-widgets/BrowserToolWidget.impl.consumer.js.map +1 -0
- package/dist/tui/browser/tool-widgets/summary.d.ts +40 -0
- package/dist/tui/browser/tool-widgets/summary.d.ts.map +1 -0
- package/dist/tui/browser/tool-widgets/summary.js +16 -0
- package/dist/tui/browser/tool-widgets/summary.js.map +1 -0
- package/package.json +212 -4
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
import { withBrowserResource } from "../../shared/cleanup.js";
|
|
2
|
+
import { CapabilityError, CaughtFailureSchema, settle } from '@vibesdotdev/kernel';
|
|
3
|
+
import { JsonValueSchema } from '@vibesdotdev/kernel/schemas/json';
|
|
4
|
+
import { PageExtractionSchema } from "../../schemas/page.js";
|
|
5
|
+
import { BrowserOutputSchema } from "./schemas.js";
|
|
6
|
+
/**
|
|
7
|
+
* Browser Unified Tool Implementation (Cloud / workerd)
|
|
8
|
+
*
|
|
9
|
+
* Cloud-scoped implementation of the SAME `browser` tools/tool contract as
|
|
10
|
+
* `browser.impl.consumer.ts`, backed by the hardware-selected
|
|
11
|
+
* `browser/backend` runtime implementation. Provider composition owns the
|
|
12
|
+
* concrete engine and credential resolution.
|
|
13
|
+
*
|
|
14
|
+
* workerd-safe by construction: NO localdb, NO `BrowserRuntimeManager`, NO
|
|
15
|
+
* Playwright, NO node:fs, and NO provider imports.
|
|
16
|
+
*
|
|
17
|
+
* Honest action subset (everything else returns a structured
|
|
18
|
+
* "unsupported on cloud runtime" error, never a fake success):
|
|
19
|
+
* - `direct` — ephemeral session per call (launch → act → close).
|
|
20
|
+
* Supports every BrowserStep (goto/navigate, click,
|
|
21
|
+
* fill, type, press, waitForSelector, wait, select,
|
|
22
|
+
* hover, scroll, evaluate, screenshot). Screenshots
|
|
23
|
+
* return base64 PNG bytes (`screenshotBase64`) — there
|
|
24
|
+
* is no local FS, so `path` inputs are ignored. The
|
|
25
|
+
* result always includes extracted page title, text
|
|
26
|
+
* (truncated), and links so navigate+extract works
|
|
27
|
+
* with a single `{action:'direct', url}` call.
|
|
28
|
+
* - `cdp-session` — resolves the Browser Run binding/CDP endpoint.
|
|
29
|
+
* - `webmcp-discover` — stateless WebMCP surface detection.
|
|
30
|
+
*
|
|
31
|
+
* Unsupported on cloud: `observe`/`control` (local vision-model loops),
|
|
32
|
+
* `recipe.*` and `session.*` (persistent localdb-backed state; workerd
|
|
33
|
+
* sessions are ephemeral per call by design).
|
|
34
|
+
*/
|
|
35
|
+
import { getLogger } from '@vibesdotdev/logging';
|
|
36
|
+
import { dispatchBoundHostTool } from '@vibesdotdev/tools/agents/trusted-context';
|
|
37
|
+
import { bindBrowserInput } from "./execution-binding.js";
|
|
38
|
+
import { assertSafeBrowserUrl } from "../../runtime/safe-url.js";
|
|
39
|
+
import { WEBMCP_DETECTION_SCRIPT, WELL_KNOWN_FETCH_SCRIPT, toolsFromManifest, WebMcpDiscoveryResultSchema } from "../webmcp/detection-script.js";
|
|
40
|
+
import { checkScanCache, persistAndMaybeIngest } from "./scan-cache-wiring.js";
|
|
41
|
+
import { resolveBrowserBackend } from "../../runtime/backend/resolve.js";
|
|
42
|
+
/** Default tool-level timeout. Covers launch + all steps + teardown. */
|
|
43
|
+
const DEFAULT_TOOL_TIMEOUT_MS = 120_000;
|
|
44
|
+
/** Per-navigation timeout. */
|
|
45
|
+
const NAVIGATION_TIMEOUT_MS = 30_000;
|
|
46
|
+
/** Cap on extracted page text returned to the model. */
|
|
47
|
+
const PAGE_TEXT_MAX_CHARS = 20_000;
|
|
48
|
+
/** Cap on serialized `evaluate` step results. */
|
|
49
|
+
const EVALUATE_RESULT_MAX_CHARS = 100_000;
|
|
50
|
+
/** Cap on extracted links. */
|
|
51
|
+
const MAX_EXTRACTED_LINKS = 100;
|
|
52
|
+
const CLOUD_SUPPORTED_ACTIONS = ['direct', 'cdp-session', 'webmcp-discover'];
|
|
53
|
+
function withToolTimeout(runtime, work, ms = DEFAULT_TOOL_TIMEOUT_MS) {
|
|
54
|
+
return runtime.lifecycle.wait(() => work(), { timeoutMs: ms, reason: 'browser tool' });
|
|
55
|
+
}
|
|
56
|
+
/** Refusal for actions the cloud runtime cannot honestly support (throws — wire-envelope). */
|
|
57
|
+
function unsupportedOnCloud(action, reason) {
|
|
58
|
+
throw new CapabilityError(`Browser action '${action}' is unsupported on the cloud runtime: ${reason}. ` +
|
|
59
|
+
`Supported cloud actions: ${CLOUD_SUPPORTED_ACTIONS.join(', ')}. ` +
|
|
60
|
+
`Cloud browser sessions are ephemeral per call (open → act → close).`, 'UNAVAILABLE', { reason: 'browser-cloud-action-unsupported', details: { action, limitation: reason, supportedActions: [...CLOUD_SUPPORTED_ACTIONS] } });
|
|
61
|
+
}
|
|
62
|
+
/** Base64-encode bytes without Buffer (workerd-portable). */
|
|
63
|
+
function toBase64(bytes) {
|
|
64
|
+
let binary = '';
|
|
65
|
+
const chunk = 0x8000;
|
|
66
|
+
for (let i = 0; i < bytes.length; i += chunk) {
|
|
67
|
+
binary += String.fromCharCode(...bytes.subarray(i, i + chunk));
|
|
68
|
+
}
|
|
69
|
+
return btoa(binary);
|
|
70
|
+
}
|
|
71
|
+
function errorMessage(error) {
|
|
72
|
+
const failure = CaughtFailureSchema.parse(error);
|
|
73
|
+
return failure instanceof Error ? failure.message : failure.description;
|
|
74
|
+
}
|
|
75
|
+
/** In-page extraction: title + visible text + links, all capped. */
|
|
76
|
+
const PAGE_EXTRACT_SCRIPT = `(() => {
|
|
77
|
+
const doc = document;
|
|
78
|
+
const text = doc.body && doc.body.innerText ? doc.body.innerText : '';
|
|
79
|
+
const links = Array.from(doc.querySelectorAll('a[href]'))
|
|
80
|
+
.slice(0, ${MAX_EXTRACTED_LINKS})
|
|
81
|
+
.map((a) => ({ href: a.href, text: (a.textContent || '').trim().slice(0, 200) }))
|
|
82
|
+
.filter((l) => l.href);
|
|
83
|
+
return {
|
|
84
|
+
title: doc.title || '',
|
|
85
|
+
text: text.slice(0, ${PAGE_TEXT_MAX_CHARS + 1}),
|
|
86
|
+
links
|
|
87
|
+
};
|
|
88
|
+
})()`;
|
|
89
|
+
/**
|
|
90
|
+
* Cloud step runner over the high-level `BrowserBackendPage` seam. Mirrors
|
|
91
|
+
* `runtime/step-executor.ts` (same actions, same stop-on-first-failure
|
|
92
|
+
* semantics) but is FS-free: screenshots return base64 bytes instead of being
|
|
93
|
+
* written to a screenshots dir, and oversized evaluate results are truncated.
|
|
94
|
+
*/
|
|
95
|
+
async function runCloudSteps(runtime, page, steps) {
|
|
96
|
+
const logger = getLogger('control:browser-cloud', runtime);
|
|
97
|
+
const results = [];
|
|
98
|
+
for (let i = 0; i < steps.length; i++) {
|
|
99
|
+
const step = steps[i];
|
|
100
|
+
const start = performance.now();
|
|
101
|
+
const result = {
|
|
102
|
+
stepIndex: i,
|
|
103
|
+
action: step.action,
|
|
104
|
+
success: false,
|
|
105
|
+
durationMs: 0
|
|
106
|
+
};
|
|
107
|
+
const execution = await settle(async () => {
|
|
108
|
+
switch (step.action) {
|
|
109
|
+
case 'click':
|
|
110
|
+
await page.click(step.selector, { timeout: 10_000 });
|
|
111
|
+
break;
|
|
112
|
+
case 'fill':
|
|
113
|
+
await page.fill(step.selector, step.value, { timeout: 10_000 });
|
|
114
|
+
break;
|
|
115
|
+
case 'type':
|
|
116
|
+
await page.type(step.selector, step.text, { delay: step.delay ?? 50 });
|
|
117
|
+
break;
|
|
118
|
+
case 'press':
|
|
119
|
+
await page.press(step.key);
|
|
120
|
+
break;
|
|
121
|
+
case 'waitForSelector':
|
|
122
|
+
await page.waitForSelector(step.selector, {
|
|
123
|
+
state: step.state ?? 'visible',
|
|
124
|
+
timeout: step.timeout ?? 30_000
|
|
125
|
+
});
|
|
126
|
+
break;
|
|
127
|
+
case 'wait':
|
|
128
|
+
await page.waitForTimeout(step.delay);
|
|
129
|
+
break;
|
|
130
|
+
case 'select':
|
|
131
|
+
await page.selectOption(step.selector, step.value, { timeout: 10_000 });
|
|
132
|
+
break;
|
|
133
|
+
case 'hover':
|
|
134
|
+
await page.hover(step.selector, { timeout: 10_000 });
|
|
135
|
+
break;
|
|
136
|
+
case 'screenshot': {
|
|
137
|
+
// No local FS on workerd: `step.path` cannot be honored — return base64.
|
|
138
|
+
const bytes = await page.screenshot({ fullPage: step.fullPage ?? false });
|
|
139
|
+
if (bytes)
|
|
140
|
+
result.screenshotBase64 = toBase64(bytes);
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
case 'scroll':
|
|
144
|
+
if (step.selector) {
|
|
145
|
+
await page.scrollIntoView(step.selector);
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
await page.scrollTo(step.x ?? 0, step.y ?? 0);
|
|
149
|
+
}
|
|
150
|
+
break;
|
|
151
|
+
case 'evaluate': {
|
|
152
|
+
const evalResult = JsonValueSchema.parse(await page.evaluate(step.script));
|
|
153
|
+
result.evaluateResult = capEvaluateResult(evalResult);
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
case 'goto':
|
|
157
|
+
case 'navigate':
|
|
158
|
+
await page.goto(assertSafeBrowserUrl(step.url), {
|
|
159
|
+
waitUntil: step.waitUntil ?? 'domcontentloaded',
|
|
160
|
+
timeout: NAVIGATION_TIMEOUT_MS
|
|
161
|
+
});
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
result.success = execution.ok;
|
|
166
|
+
if (!execution.ok) {
|
|
167
|
+
logger.warn('browser step failed', { error: execution.cause });
|
|
168
|
+
result.error = errorMessage(execution.cause);
|
|
169
|
+
}
|
|
170
|
+
result.durationMs = Math.round(performance.now() - start);
|
|
171
|
+
results.push(result);
|
|
172
|
+
if (!result.success) {
|
|
173
|
+
break;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return results;
|
|
177
|
+
}
|
|
178
|
+
/** Keep evaluate results JSON-safe and bounded so tool output stays model-sized. */
|
|
179
|
+
function capEvaluateResult(value) {
|
|
180
|
+
const parsed = JsonValueSchema.parse(value ?? null);
|
|
181
|
+
const serialized = JSON.stringify(parsed);
|
|
182
|
+
if (serialized.length <= EVALUATE_RESULT_MAX_CHARS)
|
|
183
|
+
return parsed;
|
|
184
|
+
return `${serialized.slice(0, EVALUATE_RESULT_MAX_CHARS)}… [truncated: evaluate result exceeded ${EVALUATE_RESULT_MAX_CHARS} chars]`;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* `direct` on cloud: one ephemeral Browser Run context per call. Rejects (with
|
|
188
|
+
* a structured error, not silent degradation) every input that implies
|
|
189
|
+
* persistent session/profile/tab/video state.
|
|
190
|
+
*/
|
|
191
|
+
async function runDirect(runtime, input, ctx) {
|
|
192
|
+
const logger = getLogger('control:browser-cloud', runtime);
|
|
193
|
+
if (input.sessionId || input.session?.id || (input.session && input.session.mode !== 'ephemeral')) {
|
|
194
|
+
return unsupportedOnCloud('direct', 'persistent/named browser sessions require the consumer runtime (localdb-backed session store). Omit sessionId/session.mode for an ephemeral run.');
|
|
195
|
+
}
|
|
196
|
+
if (input.session?.persist || input.session?.persistCredentials) {
|
|
197
|
+
return unsupportedOnCloud('direct', 'session persistence (persist/persistCredentials) requires the consumer runtime.');
|
|
198
|
+
}
|
|
199
|
+
if (input.session?.profile || input.session?.extensions?.length) {
|
|
200
|
+
return unsupportedOnCloud('direct', 'browser profiles and extensions require a local Chromium profile dir (consumer runtime).');
|
|
201
|
+
}
|
|
202
|
+
if (input.tab?.id) {
|
|
203
|
+
return unsupportedOnCloud('direct', 'reusing a stored tab requires the consumer runtime; cloud tabs are ephemeral per call.');
|
|
204
|
+
}
|
|
205
|
+
if (input.options?.recordVideo?.enabled) {
|
|
206
|
+
return unsupportedOnCloud('direct', 'video recording writes to local disk (consumer runtime only).');
|
|
207
|
+
}
|
|
208
|
+
// Scan cache (always-on): a plain navigate+extract (URL, no custom steps) may
|
|
209
|
+
// be served from a fresh cached scan instead of launching Browser Rendering.
|
|
210
|
+
// Custom steps change page state, so they always run live.
|
|
211
|
+
const isPlainScan = Boolean(input.url) && (input.steps?.length ?? 0) === 0;
|
|
212
|
+
if (isPlainScan) {
|
|
213
|
+
const cached = await checkScanCache(runtime, input, ctx);
|
|
214
|
+
if (cached)
|
|
215
|
+
return cached;
|
|
216
|
+
}
|
|
217
|
+
const notes = [];
|
|
218
|
+
if (input.screenshotPath) {
|
|
219
|
+
notes.push('screenshotPath ignored on cloud (no local FS); screenshot returned as screenshotBase64 (PNG).');
|
|
220
|
+
}
|
|
221
|
+
const backend = await resolveBrowserBackend(runtime);
|
|
222
|
+
const { context } = await backend.launch({
|
|
223
|
+
runtime,
|
|
224
|
+
headless: input.options?.headless ?? true,
|
|
225
|
+
viewport: input.options?.viewport ?? { width: 1280, height: 800 }
|
|
226
|
+
});
|
|
227
|
+
return withBrowserResource(context, async () => {
|
|
228
|
+
const page = await context.newPage();
|
|
229
|
+
if (input.url) {
|
|
230
|
+
await page.goto(assertSafeBrowserUrl(input.url), {
|
|
231
|
+
waitUntil: 'domcontentloaded',
|
|
232
|
+
timeout: NAVIGATION_TIMEOUT_MS
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
const steps = input.steps ?? [];
|
|
236
|
+
const stepResults = await runCloudSteps(runtime, page, steps);
|
|
237
|
+
const allSucceeded = stepResults.every((result) => result.success);
|
|
238
|
+
// Always extract title/text/links so navigate+extract works in one call.
|
|
239
|
+
const extracted = await settle(async () => PageExtractionSchema.parse(await page.evaluate(PAGE_EXTRACT_SCRIPT)));
|
|
240
|
+
if (!extracted.ok)
|
|
241
|
+
logger.warn('page extraction failed', { error: extracted.cause });
|
|
242
|
+
const extraction = extracted.ok ? extracted.value : null;
|
|
243
|
+
const pageTextTruncated = (extraction?.text.length ?? 0) > PAGE_TEXT_MAX_CHARS;
|
|
244
|
+
let screenshotBase64;
|
|
245
|
+
if (input.screenshotAfter && allSucceeded) {
|
|
246
|
+
const bytes = await page.screenshot({ fullPage: false });
|
|
247
|
+
if (bytes)
|
|
248
|
+
screenshotBase64 = toBase64(bytes);
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
screenshotBase64 = stepResults.find((result) => result.screenshotBase64)?.screenshotBase64;
|
|
252
|
+
}
|
|
253
|
+
const result = {
|
|
254
|
+
error: allSucceeded ? undefined : stepResults.find(result => !result.success)?.error,
|
|
255
|
+
finalUrl: page.url(),
|
|
256
|
+
stepsCompleted: stepResults.filter((result) => result.success).length,
|
|
257
|
+
totalSteps: steps.length,
|
|
258
|
+
stepResults,
|
|
259
|
+
sessionPersisted: false,
|
|
260
|
+
tabClosed: true,
|
|
261
|
+
pageTitle: extraction?.title,
|
|
262
|
+
pageText: pageTextTruncated
|
|
263
|
+
? extraction?.text.slice(0, PAGE_TEXT_MAX_CHARS)
|
|
264
|
+
: extraction?.text,
|
|
265
|
+
pageTextTruncated,
|
|
266
|
+
links: extraction?.links,
|
|
267
|
+
screenshotBase64,
|
|
268
|
+
screenshotMimeType: screenshotBase64 ? 'image/png' : undefined,
|
|
269
|
+
message: notes.length > 0 ? notes.join(' ') : undefined
|
|
270
|
+
};
|
|
271
|
+
// Persist to the scan cache (idempotent) + opt-in knowledge create.
|
|
272
|
+
if (isPlainScan) {
|
|
273
|
+
return await persistAndMaybeIngest(runtime, input, ctx, result);
|
|
274
|
+
}
|
|
275
|
+
return result;
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* `cdp-session` on cloud: resolve the Browser Run target (binding vs account
|
|
280
|
+
* CDP endpoint) via the connector. Cloud-only mirror of
|
|
281
|
+
* `tools/cdp/implementation.ts`; this inline dispatch keeps the cloud bundle's
|
|
282
|
+
* action implementation self-contained while sharing the runtime backend seam.
|
|
283
|
+
*/
|
|
284
|
+
async function runCdpSession(runtime, input) {
|
|
285
|
+
const backend = await resolveBrowserBackend(runtime);
|
|
286
|
+
if (!backend.describeConnection) {
|
|
287
|
+
return {
|
|
288
|
+
hardware: 'cloud',
|
|
289
|
+
transport: 'unavailable',
|
|
290
|
+
note: `Browser backend '${backend.id}' does not expose connection metadata.`
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
return { ...(await backend.describeConnection(input)) };
|
|
294
|
+
}
|
|
295
|
+
/** `webmcp-discover` on cloud: stateless detect over an ephemeral page. */
|
|
296
|
+
async function runWebmcpDiscover(runtime, input) {
|
|
297
|
+
const logger = getLogger('control:browser-cloud', runtime);
|
|
298
|
+
const backend = await resolveBrowserBackend(runtime);
|
|
299
|
+
const { context } = await backend.launch({ runtime, headless: true });
|
|
300
|
+
return withBrowserResource(context, async () => {
|
|
301
|
+
const page = await context.newPage();
|
|
302
|
+
return withBrowserResource(page, async () => {
|
|
303
|
+
if (input.url) {
|
|
304
|
+
await page.goto(assertSafeBrowserUrl(input.url), {
|
|
305
|
+
waitUntil: 'domcontentloaded',
|
|
306
|
+
timeout: NAVIGATION_TIMEOUT_MS
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
const detection = WebMcpDiscoveryResultSchema.parse(await page.evaluate(WEBMCP_DETECTION_SCRIPT));
|
|
310
|
+
const sources = [...(detection?.sources ?? [])];
|
|
311
|
+
const tools = [...(detection?.tools ?? [])];
|
|
312
|
+
let manifestUrl = detection?.manifestUrl;
|
|
313
|
+
if (detection?.probeNotes?.length) {
|
|
314
|
+
logger.debug('webmcp optional probes failed', { notes: detection.probeNotes });
|
|
315
|
+
}
|
|
316
|
+
// Fall back to the linked manifest or the well-known path when no inline tools.
|
|
317
|
+
if (tools.length === 0 && (manifestUrl || input.probeWellKnown !== false)) {
|
|
318
|
+
const probe = await settle(() => page.evaluate(WELL_KNOWN_FETCH_SCRIPT));
|
|
319
|
+
if (!probe.ok)
|
|
320
|
+
logger.warn('webmcp well-known probe failed', { error: probe.cause });
|
|
321
|
+
const fetched = probe.ok ? toolsFromManifest(JsonValueSchema.parse(probe.value)) : [];
|
|
322
|
+
if (fetched.length > 0) {
|
|
323
|
+
tools.push(...fetched);
|
|
324
|
+
if (!sources.includes('webmcp.json'))
|
|
325
|
+
sources.push('webmcp.json');
|
|
326
|
+
manifestUrl = manifestUrl ?? '/webmcp.json';
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
return {
|
|
330
|
+
detected: (detection?.detected ?? false) || tools.length > 0,
|
|
331
|
+
hardware: 'cloud',
|
|
332
|
+
url: input.url ?? page.url(),
|
|
333
|
+
sources,
|
|
334
|
+
tools,
|
|
335
|
+
manifestUrl
|
|
336
|
+
};
|
|
337
|
+
});
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
async function dispatch(runtime, input, ctx) {
|
|
341
|
+
switch (input.action) {
|
|
342
|
+
case 'direct':
|
|
343
|
+
return runDirect(runtime, input, ctx);
|
|
344
|
+
case 'cdp-session':
|
|
345
|
+
return runCdpSession(runtime, input);
|
|
346
|
+
case 'webmcp-discover':
|
|
347
|
+
return runWebmcpDiscover(runtime, input);
|
|
348
|
+
case 'observe':
|
|
349
|
+
return unsupportedOnCloud(input.action, 'vision-model page observation runs on the consumer runtime. Use {action:"direct", url} to extract page text/links, or add a screenshot step for pixels.');
|
|
350
|
+
case 'control':
|
|
351
|
+
return unsupportedOnCloud(input.action, 'the AI-driven control loop runs on the consumer runtime.');
|
|
352
|
+
case 'recipe.list':
|
|
353
|
+
case 'recipe.get':
|
|
354
|
+
case 'recipe.delete':
|
|
355
|
+
case 'recipe.create':
|
|
356
|
+
case 'recipe.update':
|
|
357
|
+
case 'recipe.run':
|
|
358
|
+
return unsupportedOnCloud(input.action, 'recipes are stored in the consumer localdb, which does not exist on workerd.');
|
|
359
|
+
case 'session.list':
|
|
360
|
+
case 'session.get':
|
|
361
|
+
case 'session.delete':
|
|
362
|
+
case 'session.close':
|
|
363
|
+
case 'session.present':
|
|
364
|
+
case 'session.dismiss':
|
|
365
|
+
return unsupportedOnCloud(input.action, 'persistent sessions are stored in the consumer localdb; cloud sessions are ephemeral per call.');
|
|
366
|
+
default: {
|
|
367
|
+
const exhaustive = input;
|
|
368
|
+
throw new Error(`Unknown action: ${JSON.stringify(exhaustive)}`);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
export default {
|
|
373
|
+
async execute(input, runtime, ctx) {
|
|
374
|
+
const bound = bindBrowserInput(input, ctx);
|
|
375
|
+
const remote = await dispatchBoundHostTool(runtime, ctx, 'browser', bound);
|
|
376
|
+
if (remote.dispatched)
|
|
377
|
+
return BrowserOutputSchema.parse(remote.result);
|
|
378
|
+
return withToolTimeout(runtime, () => dispatch(runtime, bound, ctx));
|
|
379
|
+
}
|
|
380
|
+
};
|
|
381
|
+
//# sourceMappingURL=browser.impl.cloud.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.impl.cloud.js","sourceRoot":"","sources":["../../../../src/browser/tools/unified/browser.impl.cloud.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACnF,OAAO,EAAE,eAAe,EAAkB,MAAM,kCAAkC,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAYjE,OAAO,EACN,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,2BAA2B,EAC3B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,wEAAwE;AACxE,MAAM,uBAAuB,GAAG,OAAO,CAAC;AACxC,8BAA8B;AAC9B,MAAM,qBAAqB,GAAG,MAAM,CAAC;AACrC,wDAAwD;AACxD,MAAM,mBAAmB,GAAG,MAAM,CAAC;AACnC,iDAAiD;AACjD,MAAM,yBAAyB,GAAG,OAAO,CAAC;AAC1C,8BAA8B;AAC9B,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,MAAM,uBAAuB,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,iBAAiB,CAAU,CAAC;AAEtF,SAAS,eAAe,CACvB,OAAqB,EACrB,IAAsB,EACtB,EAAE,GAAG,uBAAuB;IAE5B,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;AACxF,CAAC;AAED,8FAA8F;AAC9F,SAAS,kBAAkB,CAAC,MAAc,EAAE,MAAc;IACzD,MAAM,IAAI,eAAe,CACxB,mBAAmB,MAAM,0CAA0C,MAAM,IAAI;QAC5E,4BAA4B,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QAClE,qEAAqE,EAChE,aAAa,EAAE,EAAE,MAAM,EAAE,kCAAkC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,GAAG,uBAAuB,CAAC,EAAE,EAAE,CAC5J,CAAC;AACH,CAAC;AAED,6DAA6D;AAC7D,SAAS,QAAQ,CAAC,KAAiB;IAClC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,KAAK,GAAG,MAAM,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;QAC9C,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IACnC,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjD,OAAO,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;AACzE,CAAC;AAED,oEAAoE;AACpE,MAAM,mBAAmB,GAAG;;;;cAId,mBAAmB;;;;;wBAKT,mBAAmB,GAAG,CAAC;;;KAG1C,CAAC;AAIN;;;;;GAKG;AACH,KAAK,UAAU,aAAa,CAC3B,OAAqB,EACrB,IAAwB,EACxB,KAAoB;IAEpB,MAAM,MAAM,GAAG,SAAS,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAsB,EAAE,CAAC;IAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,MAAM,GAAoB;YAC/B,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,CAAC;SACb,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,KAAK,IAAI,EAAE;YACzC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;gBACrB,KAAK,OAAO;oBACX,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;oBACrD,MAAM;gBACP,KAAK,MAAM;oBACV,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;oBAChE,MAAM;gBACP,KAAK,MAAM;oBACV,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;oBACvE,MAAM;gBACP,KAAK,OAAO;oBACX,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC3B,MAAM;gBACP,KAAK,iBAAiB;oBACrB,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE;wBACzC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;wBAC9B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,MAAM;qBAC/B,CAAC,CAAC;oBACH,MAAM;gBACP,KAAK,MAAM;oBACV,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtC,MAAM;gBACP,KAAK,QAAQ;oBACZ,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;oBACxE,MAAM;gBACP,KAAK,OAAO;oBACX,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;oBACrD,MAAM;gBACP,KAAK,YAAY,CAAC,CAAC,CAAC;oBACnB,yEAAyE;oBACzE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE,CAAC,CAAC;oBAC1E,IAAI,KAAK;wBAAE,MAAM,CAAC,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACrD,MAAM;gBACP,CAAC;gBACD,KAAK,QAAQ;oBACZ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACnB,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC1C,CAAC;yBAAM,CAAC;wBACP,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC/C,CAAC;oBACD,MAAM;gBACP,KAAK,UAAU,CAAC,CAAC,CAAC;oBACjB,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC3E,MAAM,CAAC,cAAc,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;oBACtD,MAAM;gBACP,CAAC;gBACD,KAAK,MAAM,CAAC;gBACZ,KAAK,UAAU;oBACd,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;wBAC/C,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,kBAAkB;wBAC/C,OAAO,EAAE,qBAAqB;qBAC9B,CAAC,CAAC;oBACH,MAAM;YACR,CAAC;QAEF,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/D,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAErB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM;QACP,CAAC;IACF,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,oFAAoF;AACpF,SAAS,iBAAiB,CAAC,KAA4B;IACtD,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,UAAU,CAAC,MAAM,IAAI,yBAAyB;QAAE,OAAO,MAAM,CAAC;IAClE,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,yBAAyB,CAAC,0CAA0C,yBAAyB,SAAS,CAAC;AACtI,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,SAAS,CACvB,OAAqB,EACrB,KAAkB,EAClB,GAAoB;IAEpB,MAAM,MAAM,GAAG,SAAS,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IAC3D,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,EAAE,CAAC;QACnG,OAAO,kBAAkB,CACxB,QAAQ,EACR,kJAAkJ,CAClJ,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,kBAAkB,EAAE,CAAC;QACjE,OAAO,kBAAkB,CACxB,QAAQ,EACR,iFAAiF,CACjF,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QACjE,OAAO,kBAAkB,CACxB,QAAQ,EACR,0FAA0F,CAC1F,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;QACnB,OAAO,kBAAkB,CACxB,QAAQ,EACR,wFAAwF,CACxF,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;QACzC,OAAO,kBAAkB,CACxB,QAAQ,EACR,+DAA+D,CAC/D,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,6EAA6E;IAC7E,2DAA2D;IAC3D,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3E,IAAI,WAAW,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACzD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC3B,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CACT,+FAA+F,CAC/F,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;QACxC,OAAO;QACP,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,IAAI,IAAI;QACzC,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;KACjE,CAAC,CAAC;IAEH,OAAO,mBAAmB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBAChD,SAAS,EAAE,kBAAkB;gBAC7B,OAAO,EAAE,qBAAqB;aAC9B,CAAC,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QAChC,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEnE,yEAAyE;QACzE,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACjH,IAAI,CAAC,SAAS,CAAC,EAAE;YAAE,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;QACrF,MAAM,UAAU,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACzD,MAAM,iBAAiB,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,mBAAmB,CAAC;QAE/E,IAAI,gBAAoC,CAAC;QACzC,IAAI,KAAK,CAAC,eAAe,IAAI,YAAY,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YACzD,IAAI,KAAK;gBAAE,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACP,gBAAgB,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;QAC5F,CAAC;QAED,MAAM,MAAM,GAAkB;YAC7B,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK;YACpF,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;YACpB,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM;YACrE,UAAU,EAAE,KAAK,CAAC,MAAM;YACxB,WAAW;YACX,gBAAgB,EAAE,KAAK;YACvB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,UAAU,EAAE,KAAK;YAC5B,QAAQ,EAAE,iBAAiB;gBAC1B,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC;gBAChD,CAAC,CAAC,UAAU,EAAE,IAAI;YACnB,iBAAiB;YACjB,KAAK,EAAE,UAAU,EAAE,KAAK;YACxB,gBAAgB;YAChB,kBAAkB,EAAE,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;YAC9D,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;SACvD,CAAC;QAEF,oEAAoE;QACpE,IAAI,WAAW,EAAE,CAAC;YACjB,OAAO,MAAM,qBAAqB,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,aAAa,CAC3B,OAAqB,EACrB,KAA4B;IAE5B,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACrD,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QACjC,OAAO;YACN,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,aAAa;YACxB,IAAI,EAAE,oBAAoB,OAAO,CAAC,EAAE,wCAAwC;SAC5E,CAAC;IACH,CAAC;IACD,OAAO,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;AACzD,CAAC;AAED,2EAA2E;AAC3E,KAAK,UAAU,iBAAiB,CAC/B,OAAqB,EACrB,KAAgC;IAEhC,MAAM,MAAM,GAAG,SAAS,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACtE,OAAO,mBAAmB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,OAAO,mBAAmB,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YAC3C,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;gBACf,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBAChD,SAAS,EAAE,kBAAkB;oBAC7B,OAAO,EAAE,qBAAqB;iBAC9B,CAAC,CAAC;YACJ,CAAC;YAED,MAAM,SAAS,GAAG,2BAA2B,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;YAClG,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5C,IAAI,WAAW,GAAG,SAAS,EAAE,WAAW,CAAC;YACzC,IAAI,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;gBACnC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;YAChF,CAAC;YAED,gFAAgF;YAChF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,EAAE,CAAC;gBAC3E,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;gBACzE,IAAI,CAAC,KAAK,CAAC,EAAE;oBAAE,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;gBACrF,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;oBACvB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;wBAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBAClE,WAAW,GAAG,WAAW,IAAI,cAAc,CAAC;gBAC7C,CAAC;YACF,CAAC;YAED,OAAO;gBACP,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAC3D,QAAQ,EAAE,OAAO;gBACjB,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE;gBAC5B,OAAO;gBACP,KAAK;gBACL,WAAW;aACX,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,QAAQ,CACtB,OAAqB,EACrB,KAAmB,EACnB,GAAoB;IAEpB,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,QAAQ;YACZ,OAAO,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACvC,KAAK,aAAa;YACjB,OAAO,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtC,KAAK,iBAAiB;YACrB,OAAO,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC1C,KAAK,SAAS;YACb,OAAO,kBAAkB,CACxB,KAAK,CAAC,MAAM,EACZ,yJAAyJ,CACzJ,CAAC;QACH,KAAK,SAAS;YACb,OAAO,kBAAkB,CACxB,KAAK,CAAC,MAAM,EACZ,0DAA0D,CAC1D,CAAC;QACH,KAAK,aAAa,CAAC;QACnB,KAAK,YAAY,CAAC;QAClB,KAAK,eAAe,CAAC;QACrB,KAAK,eAAe,CAAC;QACrB,KAAK,eAAe,CAAC;QACrB,KAAK,YAAY;YAChB,OAAO,kBAAkB,CACxB,KAAK,CAAC,MAAM,EACZ,8EAA8E,CAC9E,CAAC;QACH,KAAK,cAAc,CAAC;QACpB,KAAK,aAAa,CAAC;QACnB,KAAK,gBAAgB,CAAC;QACtB,KAAK,eAAe,CAAC;QACrB,KAAK,iBAAiB,CAAC;QACvB,KAAK,iBAAiB;YACrB,OAAO,kBAAkB,CACxB,KAAK,CAAC,MAAM,EACZ,gGAAgG,CAChG,CAAC;QACH,OAAO,CAAC,CAAC,CAAC;YACT,MAAM,UAAU,GAAU,KAAK,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;IACF,CAAC;AACF,CAAC;AAED,eAAe;IACd,KAAK,CAAC,OAAO,CAAC,KAAmB,EAAE,OAAqB,EAAE,GAAoB;QAC7E,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC3E,IAAI,MAAM,CAAC,UAAU;YAAE,OAAO,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvE,OAAO,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IACtE,CAAC;CACD,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser Unified Tool Implementation
|
|
3
|
+
*
|
|
4
|
+
* Routes to specific handlers based on action field using dynamic imports.
|
|
5
|
+
*/
|
|
6
|
+
import type { VibesRuntime } from '@vibesdotdev/kernel';
|
|
7
|
+
import type { ToolCallContext } from '@vibesdotdev/kernel/schemas/tool-call';
|
|
8
|
+
import type { BrowserInput, BrowserOutput } from './schemas.ts';
|
|
9
|
+
declare const defaultExport: {
|
|
10
|
+
execute(input: BrowserInput, runtime: VibesRuntime, ctx: ToolCallContext): Promise<BrowserOutput>;
|
|
11
|
+
_dispatch(input: BrowserInput, runtime: VibesRuntime, ctx: ToolCallContext): Promise<BrowserOutput>;
|
|
12
|
+
};
|
|
13
|
+
export default defaultExport;
|
|
14
|
+
//# sourceMappingURL=browser.impl.consumer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.impl.consumer.d.ts","sourceRoot":"","sources":["../../../../src/browser/tools/unified/browser.impl.consumer.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAiBhE,QAAA,MAAM,aAAa;mBACG,YAAY,WAAW,YAAY,OAAO,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;qBAQ/F,YAAY,WACV,YAAY,OAChB,eAAe,GAClB,OAAO,CAAC,aAAa,CAAC;CA+DzB,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { BrowserRecipeInputSchema } from "../recipe/schemas.js";
|
|
2
|
+
import { BrowserSessionInputSchema } from "../session/schemas.js";
|
|
3
|
+
import { BrowserOutputSchema } from "./schemas.js";
|
|
4
|
+
import { checkScanCache, persistAndMaybeIngest } from "./scan-cache-wiring.js";
|
|
5
|
+
import { bindBrowserInput } from "./execution-binding.js";
|
|
6
|
+
import { dispatchBoundHostTool } from '@vibesdotdev/tools/agents/trusted-context';
|
|
7
|
+
/** Default tool-level timeout. Covers launch + all steps + teardown. */
|
|
8
|
+
const DEFAULT_TOOL_TIMEOUT_MS = 120_000;
|
|
9
|
+
function withToolTimeout(runtime, work, ms = DEFAULT_TOOL_TIMEOUT_MS) {
|
|
10
|
+
return runtime.lifecycle.wait(() => work(), { timeoutMs: ms, reason: 'browser tool' });
|
|
11
|
+
}
|
|
12
|
+
// Hoisted const: tsc rewriteRelativeImportExtensions does not rewrite `.ts` specifiers inside `export default <expr>` (TS 6.0.3).
|
|
13
|
+
const defaultExport = {
|
|
14
|
+
async execute(input, runtime, ctx) {
|
|
15
|
+
const bound = bindBrowserInput(input, ctx);
|
|
16
|
+
const remote = await dispatchBoundHostTool(runtime, ctx, 'browser', bound);
|
|
17
|
+
if (remote.dispatched)
|
|
18
|
+
return BrowserOutputSchema.parse(remote.result);
|
|
19
|
+
return withToolTimeout(runtime, () => this._dispatch(bound, runtime, ctx));
|
|
20
|
+
},
|
|
21
|
+
async _dispatch(input, runtime, ctx) {
|
|
22
|
+
switch (input.action) {
|
|
23
|
+
case 'direct': {
|
|
24
|
+
// Scan cache (always-on) for plain navigate+extract (URL, no steps).
|
|
25
|
+
const isPlainScan = !input.sessionId && !input.session?.id && Boolean(input.url) && (input.steps?.length ?? 0) === 0;
|
|
26
|
+
if (isPlainScan) {
|
|
27
|
+
const cached = await checkScanCache(runtime, input, ctx);
|
|
28
|
+
if (cached)
|
|
29
|
+
return cached;
|
|
30
|
+
}
|
|
31
|
+
const { browserDirect } = await import("../direct/implementation.js");
|
|
32
|
+
const result = await browserDirect(runtime, input);
|
|
33
|
+
if (isPlainScan) {
|
|
34
|
+
return persistAndMaybeIngest(runtime, input, ctx, result);
|
|
35
|
+
}
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
case 'observe': {
|
|
39
|
+
const { browserObserve } = await import("../observe/implementation.js");
|
|
40
|
+
return browserObserve(runtime, input);
|
|
41
|
+
}
|
|
42
|
+
case 'control': {
|
|
43
|
+
const { browserControl } = await import("../control/implementation.js");
|
|
44
|
+
return browserControl(runtime, input);
|
|
45
|
+
}
|
|
46
|
+
case 'recipe.list':
|
|
47
|
+
case 'recipe.get':
|
|
48
|
+
case 'recipe.delete':
|
|
49
|
+
case 'recipe.create':
|
|
50
|
+
case 'recipe.update':
|
|
51
|
+
case 'recipe.run': {
|
|
52
|
+
const { browserRecipe } = await import("../recipe/implementation.js");
|
|
53
|
+
return browserRecipe(runtime, BrowserRecipeInputSchema.parse({
|
|
54
|
+
...input, action: input.action.slice('recipe.'.length)
|
|
55
|
+
}));
|
|
56
|
+
}
|
|
57
|
+
case 'session.list':
|
|
58
|
+
case 'session.get':
|
|
59
|
+
case 'session.delete':
|
|
60
|
+
case 'session.close':
|
|
61
|
+
case 'session.present':
|
|
62
|
+
case 'session.dismiss': {
|
|
63
|
+
const { browserSession } = await import("../session/implementation.js");
|
|
64
|
+
return browserSession(runtime, BrowserSessionInputSchema.parse({
|
|
65
|
+
...input, action: input.action.slice('session.'.length)
|
|
66
|
+
}));
|
|
67
|
+
}
|
|
68
|
+
case 'cdp-session': {
|
|
69
|
+
const { browserCdpSession } = await import("../cdp/implementation.js");
|
|
70
|
+
return BrowserOutputSchema.parse(await browserCdpSession(runtime, { preferCdp: input.preferCdp }));
|
|
71
|
+
}
|
|
72
|
+
case 'webmcp-discover': {
|
|
73
|
+
const { browserWebmcpDiscover } = await import("../webmcp/implementation.js");
|
|
74
|
+
return BrowserOutputSchema.parse(await browserWebmcpDiscover(runtime, {
|
|
75
|
+
url: input.url,
|
|
76
|
+
probeWellKnown: input.probeWellKnown
|
|
77
|
+
}));
|
|
78
|
+
}
|
|
79
|
+
default: {
|
|
80
|
+
const exhaustive = input;
|
|
81
|
+
throw new Error(`Unknown action: ${JSON.stringify(exhaustive)}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
export default defaultExport;
|
|
87
|
+
//# sourceMappingURL=browser.impl.consumer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.impl.consumer.js","sourceRoot":"","sources":["../../../../src/browser/tools/unified/browser.impl.consumer.ts"],"names":[],"mappings":"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"}
|