@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 @@
|
|
|
1
|
+
{"version":3,"file":"webview.descriptor.js","sourceRoot":"","sources":["../../../src/browser/bun/webview.descriptor.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sBAAsB,GAAG,6BAAsC,CAAC;AAE7E,MAAM,UAAU,GAAG;IAClB,EAAE,EAAE,sBAAsB;IAC1B,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,6BAA6B;IACnC,WAAW,EAAE,oEAAoE;IACjF,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,MAAM,EAAE,UAAU;IAClB,SAAS,EAAE,aAAa;IACxB,SAAS,EAAE,cAAc;IACzB,YAAY,EAAE;QACb,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;QAChB,gBAAgB,EAAE,KAAK;KACvB;IACD,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,IAAI;CACsB,CAAC;AAErC,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webview.plugin.d.ts","sourceRoot":"","sources":["../../../src/browser/bun/webview.plugin.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,MAAM,6CAmBV,CAAC;AAEH,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { createRuntimePlugin } from '@vibesdotdev/kernel';
|
|
2
|
+
import webViewDescriptor from "./webview.descriptor.js";
|
|
3
|
+
const plugin = createRuntimePlugin({
|
|
4
|
+
id: 'browser-automation.bun-webview',
|
|
5
|
+
name: 'Browser Automation — Bun WebView',
|
|
6
|
+
description: 'Experimental Bun.WebView provider for the browser/backend runtime seam',
|
|
7
|
+
dependencies: ['browser-automation'],
|
|
8
|
+
descriptors: [webViewDescriptor],
|
|
9
|
+
loaders: [
|
|
10
|
+
{
|
|
11
|
+
id: webViewDescriptor.id,
|
|
12
|
+
kind: 'browser/backend',
|
|
13
|
+
// Consumer is only hardware eligibility. The factory below verifies the
|
|
14
|
+
// actual Bun.WebView host API before returning an implementation.
|
|
15
|
+
constraint: { hardware: ['consumer'] },
|
|
16
|
+
load: async () => {
|
|
17
|
+
const { createBunWebViewBackend } = await import("./webview.backend.js");
|
|
18
|
+
return { impl: createBunWebViewBackend() };
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
});
|
|
23
|
+
export default plugin;
|
|
24
|
+
//# sourceMappingURL=webview.plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webview.plugin.js","sourceRoot":"","sources":["../../../src/browser/bun/webview.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AAExD,MAAM,MAAM,GAAG,mBAAmB,CAAC;IAClC,EAAE,EAAE,gCAAgC;IACpC,IAAI,EAAE,kCAAkC;IACxC,WAAW,EAAE,wEAAwE;IACrF,YAAY,EAAE,CAAC,oBAAoB,CAAC;IACpC,WAAW,EAAE,CAAC,iBAAiB,CAAC;IAChC,OAAO,EAAE;QACR;YACC,EAAE,EAAE,iBAAiB,CAAC,EAAE;YACxB,IAAI,EAAE,iBAAiB;YACvB,wEAAwE;YACxE,kEAAkE;YAClE,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE;YACtC,IAAI,EAAE,KAAK,IAAI,EAAE;gBAChB,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;gBACzE,OAAO,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,CAAC;YAC5C,CAAC;SACD;KACD;CACD,CAAC,CAAC;AAEH,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BrowserClient - Canonical runtime client for browser automation
|
|
3
|
+
*
|
|
4
|
+
* Extends BaseRuntimeClient to provide:
|
|
5
|
+
* - sessions, profiles, tabs, recipes collections (via storage/record)
|
|
6
|
+
* - direct(...), observe(...), control(...), present(...), dismiss() operations
|
|
7
|
+
* - BrowserRuntimeManager instance management (no global singletons)
|
|
8
|
+
*
|
|
9
|
+
* Cross-module access goes through getVibesBrowserClient(runtime) only.
|
|
10
|
+
*/
|
|
11
|
+
import { BaseRuntimeClient } from '@vibesdotdev/kernel/client';
|
|
12
|
+
import type { StorageRecordInterface } from '@vibesdotdev/storage';
|
|
13
|
+
import { BrowserRuntimeManager } from '../runtime/manager.ts';
|
|
14
|
+
import type { BrowserSession, BrowserProfile, BrowserTab, BrowserRecipe } from '../storage/index.ts';
|
|
15
|
+
import type { BrowserDirectInput, BrowserDirectOutput } from '../tools/direct/schemas.ts';
|
|
16
|
+
import type { BrowserObserveInput, BrowserObserveOutput } from '../tools/observe/schemas.ts';
|
|
17
|
+
import type { BrowserControlInput, BrowserControlOutput } from '../tools/control/schemas.ts';
|
|
18
|
+
import { type KindContext, type VibesRuntime } from '@vibesdotdev/kernel';
|
|
19
|
+
import type { BrowserClientDescriptor } from '../schemas/client.ts';
|
|
20
|
+
export type { BrowserClientDescriptor } from '../schemas/client.ts';
|
|
21
|
+
/**
|
|
22
|
+
* Canonical browser automation client.
|
|
23
|
+
*
|
|
24
|
+
* One instance per runtime, managing:
|
|
25
|
+
* - Storage records for sessions, profiles, tabs, recipes
|
|
26
|
+
* - Playwright browser lifecycle via BrowserRuntimeManager
|
|
27
|
+
* - High-level operations: direct, observe, control, present, dismiss
|
|
28
|
+
*
|
|
29
|
+
* Runtime port `VibesRuntime` (Runtime SPEC `./client`): the browser engine is
|
|
30
|
+
* selected with the query's `filter`, which `RuntimeRef` does not carry.
|
|
31
|
+
*/
|
|
32
|
+
export declare class BrowserClient extends BaseRuntimeClient<VibesRuntime> {
|
|
33
|
+
private manager;
|
|
34
|
+
sessions: StorageRecordInterface<BrowserSession>;
|
|
35
|
+
profiles: StorageRecordInterface<BrowserProfile>;
|
|
36
|
+
tabs: StorageRecordInterface<BrowserTab>;
|
|
37
|
+
recipes: StorageRecordInterface<BrowserRecipe>;
|
|
38
|
+
constructor(descriptor: BrowserClientDescriptor, context?: KindContext<VibesRuntime>, runtime?: VibesRuntime);
|
|
39
|
+
/**
|
|
40
|
+
* Lazy-initialize storage records and runtime manager.
|
|
41
|
+
* Called automatically by ensureLoaded() / load().
|
|
42
|
+
*/
|
|
43
|
+
protected onLoad(): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Execute browser automation directly with steps.
|
|
46
|
+
*/
|
|
47
|
+
direct(input: BrowserDirectInput): Promise<BrowserDirectOutput>;
|
|
48
|
+
/**
|
|
49
|
+
* Observe a page via screenshot + AI vision analysis.
|
|
50
|
+
*/
|
|
51
|
+
observe(input: BrowserObserveInput): Promise<BrowserObserveOutput>;
|
|
52
|
+
/**
|
|
53
|
+
* Control a browser session iteratively via AI planning.
|
|
54
|
+
*/
|
|
55
|
+
control(input: BrowserControlInput): Promise<BrowserControlOutput>;
|
|
56
|
+
/**
|
|
57
|
+
* Present a session in a headed browser window.
|
|
58
|
+
*/
|
|
59
|
+
present(options?: {
|
|
60
|
+
id?: string;
|
|
61
|
+
url?: string;
|
|
62
|
+
}): Promise<{
|
|
63
|
+
url: string;
|
|
64
|
+
}>;
|
|
65
|
+
/**
|
|
66
|
+
* Dismiss the presentation browser.
|
|
67
|
+
*/
|
|
68
|
+
dismiss(): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Get the underlying runtime manager (for advanced use cases).
|
|
71
|
+
*/
|
|
72
|
+
getRuntimeManager(): BrowserRuntimeManager;
|
|
73
|
+
/**
|
|
74
|
+
* Resolve a storage record by ID.
|
|
75
|
+
*
|
|
76
|
+
* Missing-backend is a hard failure: there is NO silent fallback that
|
|
77
|
+
* directly constructs a storage record from its descriptor. Load the storage
|
|
78
|
+
* backend plugin (e.g. `storage.localdb`) before using the browser client.
|
|
79
|
+
*/
|
|
80
|
+
private resolveStorageRecord;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Get the canonical browser client from the runtime.
|
|
84
|
+
*
|
|
85
|
+
* Usage:
|
|
86
|
+
* ```ts
|
|
87
|
+
* const browser = await getVibesBrowserClient(runtime);
|
|
88
|
+
* const result = await browser.direct({ session: { name: 'test' }, steps: [...] });
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
export declare function getVibesBrowserClient(runtime: VibesRuntime): Promise<BrowserClient>;
|
|
92
|
+
//# sourceMappingURL=browser-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-client.d.ts","sourceRoot":"","sources":["../../../src/browser/client/browser-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,iBAAiB,EAAkB,MAAM,4BAA4B,CAAC;AAC/E,OAAO,KAAK,EAA2B,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,EACX,cAAc,EACd,cAAc,EACd,UAAU,EACV,aAAa,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACX,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EACX,mBAAmB,EACnB,oBAAoB,EACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACX,mBAAmB,EACnB,oBAAoB,EACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAmB,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE3F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEpE;;;;;;;;;;GAUG;AACH,qBAAa,aAAc,SAAQ,iBAAiB,CAAC,YAAY,CAAC;IACjE,OAAO,CAAC,OAAO,CAAsC;IAGrD,QAAQ,EAAG,sBAAsB,CAAC,cAAc,CAAC,CAAC;IAClD,QAAQ,EAAG,sBAAsB,CAAC,cAAc,CAAC,CAAC;IAClD,IAAI,EAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAC1C,OAAO,EAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;gBAEpC,UAAU,EAAE,uBAAuB,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY;IAI5G;;;OAGG;cACsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBhD;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAMrE;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAMxE;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAMxE;;OAEG;IACG,OAAO,CAAC,OAAO,GAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAepF;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B;;OAEG;IACH,iBAAiB,IAAI,qBAAqB;IAK1C;;;;;;OAMG;YACW,oBAAoB;CASlC;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAIzF"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BrowserClient - Canonical runtime client for browser automation
|
|
3
|
+
*
|
|
4
|
+
* Extends BaseRuntimeClient to provide:
|
|
5
|
+
* - sessions, profiles, tabs, recipes collections (via storage/record)
|
|
6
|
+
* - direct(...), observe(...), control(...), present(...), dismiss() operations
|
|
7
|
+
* - BrowserRuntimeManager instance management (no global singletons)
|
|
8
|
+
*
|
|
9
|
+
* Cross-module access goes through getVibesBrowserClient(runtime) only.
|
|
10
|
+
*/
|
|
11
|
+
import { BaseRuntimeClient, getVibesClient } from '@vibesdotdev/kernel/client';
|
|
12
|
+
import { BrowserRuntimeManager } from "../runtime/manager.js";
|
|
13
|
+
import { resolveBrowserRuntimeManager } from "../runtime/manager-host.js";
|
|
14
|
+
import { CapabilityError } from '@vibesdotdev/kernel';
|
|
15
|
+
/**
|
|
16
|
+
* Canonical browser automation client.
|
|
17
|
+
*
|
|
18
|
+
* One instance per runtime, managing:
|
|
19
|
+
* - Storage records for sessions, profiles, tabs, recipes
|
|
20
|
+
* - Playwright browser lifecycle via BrowserRuntimeManager
|
|
21
|
+
* - High-level operations: direct, observe, control, present, dismiss
|
|
22
|
+
*
|
|
23
|
+
* Runtime port `VibesRuntime` (Runtime SPEC `./client`): the browser engine is
|
|
24
|
+
* selected with the query's `filter`, which `RuntimeRef` does not carry.
|
|
25
|
+
*/
|
|
26
|
+
export class BrowserClient extends BaseRuntimeClient {
|
|
27
|
+
manager = null;
|
|
28
|
+
// Storage interfaces
|
|
29
|
+
sessions;
|
|
30
|
+
profiles;
|
|
31
|
+
tabs;
|
|
32
|
+
recipes;
|
|
33
|
+
constructor(descriptor, context, runtime) {
|
|
34
|
+
super(descriptor, context, runtime);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Lazy-initialize storage records and runtime manager.
|
|
38
|
+
* Called automatically by ensureLoaded() / load().
|
|
39
|
+
*/
|
|
40
|
+
async onLoad() {
|
|
41
|
+
await super.onLoad();
|
|
42
|
+
// Resolve storage records
|
|
43
|
+
this.sessions = await this.resolveStorageRecord('browser.sessions');
|
|
44
|
+
this.profiles = await this.resolveStorageRecord('browser.profiles');
|
|
45
|
+
this.tabs = await this.resolveStorageRecord('browser.tabs');
|
|
46
|
+
this.recipes = await this.resolveStorageRecord('browser.recipes');
|
|
47
|
+
// Resolve the provider selected by this runtime, for the bound workspace.
|
|
48
|
+
// The manager never invents Playwright behind an explicit provider choice,
|
|
49
|
+
// and an unbound host fails here with `workspace-unbound`.
|
|
50
|
+
const workspacePath = await this.runtime.context('runtime/workspace-path');
|
|
51
|
+
this.manager = await resolveBrowserRuntimeManager(this.runtime, workspacePath);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Execute browser automation directly with steps.
|
|
55
|
+
*/
|
|
56
|
+
async direct(input) {
|
|
57
|
+
await this.ensureLoaded();
|
|
58
|
+
const { browserDirect } = await import("../tools/direct/implementation.js");
|
|
59
|
+
return browserDirect(this.runtime, input);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Observe a page via screenshot + AI vision analysis.
|
|
63
|
+
*/
|
|
64
|
+
async observe(input) {
|
|
65
|
+
await this.ensureLoaded();
|
|
66
|
+
const { browserObserve } = await import("../tools/observe/implementation.js");
|
|
67
|
+
return browserObserve(this.runtime, input);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Control a browser session iteratively via AI planning.
|
|
71
|
+
*/
|
|
72
|
+
async control(input) {
|
|
73
|
+
await this.ensureLoaded();
|
|
74
|
+
const { browserControl } = await import("../tools/control/implementation.js");
|
|
75
|
+
return browserControl(this.runtime, input);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Present a session in a headed browser window.
|
|
79
|
+
*/
|
|
80
|
+
async present(options = {}) {
|
|
81
|
+
await this.ensureLoaded();
|
|
82
|
+
if (!this.manager)
|
|
83
|
+
throw new CapabilityError('Browser client not loaded', 'UNAVAILABLE', { reason: 'browser-client-not-loaded' });
|
|
84
|
+
const runtimeSession = options.id
|
|
85
|
+
? await this.manager.getOrLoadSession(options.id)
|
|
86
|
+
: this.manager.getRuntimeSession();
|
|
87
|
+
if (!runtimeSession) {
|
|
88
|
+
throw new CapabilityError('No browser session found to present. Create a session first.', 'NOT_FOUND', { reason: 'browser-session-not-found' });
|
|
89
|
+
}
|
|
90
|
+
return this.manager.presentSession(runtimeSession, options.url);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Dismiss the presentation browser.
|
|
94
|
+
*/
|
|
95
|
+
async dismiss() {
|
|
96
|
+
await this.ensureLoaded();
|
|
97
|
+
if (!this.manager)
|
|
98
|
+
throw new CapabilityError('Browser client not loaded', 'UNAVAILABLE', { reason: 'browser-client-not-loaded' });
|
|
99
|
+
return this.manager.dismissPresentation();
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Get the underlying runtime manager (for advanced use cases).
|
|
103
|
+
*/
|
|
104
|
+
getRuntimeManager() {
|
|
105
|
+
if (!this.manager)
|
|
106
|
+
throw new CapabilityError('Browser client not loaded', 'UNAVAILABLE', { reason: 'browser-client-not-loaded' });
|
|
107
|
+
return this.manager;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Resolve a storage record by ID.
|
|
111
|
+
*
|
|
112
|
+
* Missing-backend is a hard failure: there is NO silent fallback that
|
|
113
|
+
* directly constructs a storage record from its descriptor. Load the storage
|
|
114
|
+
* backend plugin (e.g. `storage.localdb`) before using the browser client.
|
|
115
|
+
*/
|
|
116
|
+
async resolveStorageRecord(id) {
|
|
117
|
+
return this.runtime
|
|
118
|
+
.query('storage/record')
|
|
119
|
+
.withId(id)
|
|
120
|
+
.enabled()
|
|
121
|
+
.resolve();
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get the canonical browser client from the runtime.
|
|
126
|
+
*
|
|
127
|
+
* Usage:
|
|
128
|
+
* ```ts
|
|
129
|
+
* const browser = await getVibesBrowserClient(runtime);
|
|
130
|
+
* const result = await browser.direct({ session: { name: 'test' }, steps: [...] });
|
|
131
|
+
* ```
|
|
132
|
+
*/
|
|
133
|
+
export async function getVibesBrowserClient(runtime) {
|
|
134
|
+
const client = await getVibesClient('browser', runtime);
|
|
135
|
+
await client.load();
|
|
136
|
+
return client;
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=browser-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-client.js","sourceRoot":"","sources":["../../../src/browser/client/browser-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { BaseRuntimeClient } from '@vibesdotdev/kernel/client';
|
|
2
|
+
import { type VibesRuntime } from '@vibesdotdev/kernel';
|
|
3
|
+
import { type BrowserWorkspaceSelection } from '../schemas/workspace.ts';
|
|
4
|
+
/** Selection belongs to the handed runtime; no browser engine or storage required. */
|
|
5
|
+
export declare class BrowserWorkspaceClient extends BaseRuntimeClient {
|
|
6
|
+
private selection;
|
|
7
|
+
private readonly listeners;
|
|
8
|
+
get snapshot(): BrowserWorkspaceSelection;
|
|
9
|
+
subscribe(listener: (selection: BrowserWorkspaceSelection) => void): () => void;
|
|
10
|
+
private update;
|
|
11
|
+
selectSession(id: string | null): void;
|
|
12
|
+
selectTab(id: string | null): void;
|
|
13
|
+
setProfileFilter(id: string | null): void;
|
|
14
|
+
reset(): void;
|
|
15
|
+
protected onDispose(): void;
|
|
16
|
+
}
|
|
17
|
+
export declare const browserWorkspaceComposition: {
|
|
18
|
+
id: string;
|
|
19
|
+
dependencies: string[];
|
|
20
|
+
descriptors: {
|
|
21
|
+
id: string;
|
|
22
|
+
kind: string;
|
|
23
|
+
description: string;
|
|
24
|
+
}[];
|
|
25
|
+
loaders: import("@vibesdotdev/kernel").AssetLoader[];
|
|
26
|
+
};
|
|
27
|
+
export declare const browserWorkspacePlugin: import("@vibesdotdev/kernel").RuntimePlugin;
|
|
28
|
+
export declare function getBrowserWorkspaceClient(runtime: VibesRuntime): Promise<BrowserWorkspaceClient>;
|
|
29
|
+
//# sourceMappingURL=workspace-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-client.d.ts","sourceRoot":"","sources":["../../../src/browser/client/workspace-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAkB,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAA+B,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAmC,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAE1G,sFAAsF;AACtF,qBAAa,sBAAuB,SAAQ,iBAAiB;IAC5D,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6D;IACvF,IAAI,QAAQ,IAAI,yBAAyB,CAAkC;IAC3E,SAAS,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,yBAAyB,KAAK,IAAI,GAAG,MAAM,IAAI;IAK/E,OAAO,CAAC,MAAM;IAId,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAGtC,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAClC,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IACzC,KAAK,IAAI,IAAI;cACM,SAAS,IAAI,IAAI;CACpC;AAED,eAAO,MAAM,2BAA2B;;;;;;;;;CAKvC,CAAC;AACF,eAAO,MAAM,sBAAsB,6CAAmD,CAAC;AAEvF,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAEtG"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { BaseRuntimeClient, getVibesClient } from '@vibesdotdev/kernel/client';
|
|
2
|
+
import { createRuntimePlugin, loader } from '@vibesdotdev/kernel';
|
|
3
|
+
import { BrowserWorkspaceSelectionSchema } from "../schemas/workspace.js";
|
|
4
|
+
/** Selection belongs to the handed runtime; no browser engine or storage required. */
|
|
5
|
+
export class BrowserWorkspaceClient extends BaseRuntimeClient {
|
|
6
|
+
selection = BrowserWorkspaceSelectionSchema.parse({});
|
|
7
|
+
listeners = new Set();
|
|
8
|
+
get snapshot() { return { ...this.selection }; }
|
|
9
|
+
subscribe(listener) {
|
|
10
|
+
this.listeners.add(listener);
|
|
11
|
+
listener(this.snapshot);
|
|
12
|
+
return () => { this.listeners.delete(listener); };
|
|
13
|
+
}
|
|
14
|
+
update(selection) {
|
|
15
|
+
this.selection = BrowserWorkspaceSelectionSchema.parse(selection);
|
|
16
|
+
for (const listener of this.listeners)
|
|
17
|
+
listener(this.snapshot);
|
|
18
|
+
}
|
|
19
|
+
selectSession(id) {
|
|
20
|
+
if (id !== this.selection.activeSessionId)
|
|
21
|
+
this.update({ ...this.selection, activeSessionId: id, activeTabId: null });
|
|
22
|
+
}
|
|
23
|
+
selectTab(id) { this.update({ ...this.selection, activeTabId: id }); }
|
|
24
|
+
setProfileFilter(id) { this.update({ ...this.selection, profileFilter: id }); }
|
|
25
|
+
reset() { this.update(BrowserWorkspaceSelectionSchema.parse({})); }
|
|
26
|
+
onDispose() { this.reset(); this.listeners.clear(); }
|
|
27
|
+
}
|
|
28
|
+
export const browserWorkspaceComposition = {
|
|
29
|
+
id: 'control.workspace',
|
|
30
|
+
dependencies: ['runtime-client'],
|
|
31
|
+
descriptors: [{ id: 'browser.workspace', kind: 'runtime/client', description: 'Runtime-owned browser workspace selection' }],
|
|
32
|
+
loaders: [loader('browser.workspace', { kind: 'runtime/client' }, async () => BrowserWorkspaceClient)]
|
|
33
|
+
};
|
|
34
|
+
export const browserWorkspacePlugin = createRuntimePlugin(browserWorkspaceComposition);
|
|
35
|
+
export async function getBrowserWorkspaceClient(runtime) {
|
|
36
|
+
return getVibesClient('browser.workspace', runtime);
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=workspace-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-client.js","sourceRoot":"","sources":["../../../src/browser/client/workspace-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAqB,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,+BAA+B,EAAkC,MAAM,yBAAyB,CAAC;AAE1G,sFAAsF;AACtF,MAAM,OAAO,sBAAuB,SAAQ,iBAAiB;IACpD,SAAS,GAAG,+BAA+B,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7C,SAAS,GAAG,IAAI,GAAG,EAAkD,CAAC;IACvF,IAAI,QAAQ,KAAgC,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC3E,SAAS,CAAC,QAAwD;QACjE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxB,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IACO,MAAM,CAAC,SAAoC;QAClD,IAAI,CAAC,SAAS,GAAG,+BAA+B,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAClE,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS;YAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChE,CAAC;IACD,aAAa,CAAC,EAAiB;QAC9B,IAAI,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,eAAe;YAAE,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IACvH,CAAC;IACD,SAAS,CAAC,EAAiB,IAAU,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3F,gBAAgB,CAAC,EAAiB,IAAU,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACpG,KAAK,KAAW,IAAI,CAAC,MAAM,CAAC,+BAA+B,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,SAAS,KAAW,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;CAC9E;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG;IAC1C,EAAE,EAAE,mBAAmB;IACvB,YAAY,EAAE,CAAC,gBAAgB,CAAC;IAChC,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC;IAC5H,OAAO,EAAE,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,sBAAsB,CAAC,CAAC;CACtG,CAAC;AACF,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAC,2BAA2B,CAAC,CAAC;AAEvF,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,OAAqB;IACpE,OAAO,cAAc,CAAyB,mBAAmB,EAAE,OAAO,CAAC,CAAC;AAC7E,CAAC"}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser Automation Contracts — canonical owner: `@vibesdotdev/control`
|
|
3
|
+
*
|
|
4
|
+
* Provider-neutral browser client, cookie/storage state, backend/page and
|
|
5
|
+
* browser-session CRUD contracts. They live here, in the browser capability
|
|
6
|
+
* package's narrow, import-safe contract entrypoint (`./browser-automation/contracts`),
|
|
7
|
+
* because they are browser-domain contracts, not generic runtime-client
|
|
8
|
+
* machinery. This module imports only `zod` and a type-only kernel runtime
|
|
9
|
+
* reference plus the kernel's JSON schema types, so any package that already
|
|
10
|
+
* depends on the kernel can import it without loading the control
|
|
11
|
+
* implementation graph and without a kernel → control cycle.
|
|
12
|
+
*
|
|
13
|
+
* This is the only entrypoint for these contracts; the kernel neither exports
|
|
14
|
+
* nor imports them.
|
|
15
|
+
*/
|
|
16
|
+
import * as z from 'zod/v4';
|
|
17
|
+
import type { VibesRuntime } from '@vibesdotdev/kernel';
|
|
18
|
+
import type { JsonObject } from '@vibesdotdev/kernel/schemas/json';
|
|
19
|
+
export type BrowserHardware = 'consumer' | 'cloud';
|
|
20
|
+
export type BrowserWaitState = 'attached' | 'detached' | 'visible' | 'hidden';
|
|
21
|
+
export type BrowserWaitUntil = 'load' | 'domcontentloaded' | 'networkidle' | 'commit';
|
|
22
|
+
export interface BrowserScreenshotOptions {
|
|
23
|
+
/** Absolute path to write the PNG to. When omitted, bytes are returned. */
|
|
24
|
+
path?: string;
|
|
25
|
+
fullPage?: boolean;
|
|
26
|
+
}
|
|
27
|
+
export interface BrowserWaitForSelectorOptions {
|
|
28
|
+
state?: BrowserWaitState;
|
|
29
|
+
timeout?: number;
|
|
30
|
+
}
|
|
31
|
+
export interface BrowserGotoOptions {
|
|
32
|
+
waitUntil?: BrowserWaitUntil;
|
|
33
|
+
timeout?: number;
|
|
34
|
+
}
|
|
35
|
+
export interface BrowserActionOptions {
|
|
36
|
+
timeout?: number;
|
|
37
|
+
}
|
|
38
|
+
export declare const BrowserStorageCookieSchema: z.ZodObject<{
|
|
39
|
+
name: z.ZodString;
|
|
40
|
+
value: z.ZodString;
|
|
41
|
+
domain: z.ZodString;
|
|
42
|
+
path: z.ZodString;
|
|
43
|
+
expires: z.ZodNumber;
|
|
44
|
+
httpOnly: z.ZodBoolean;
|
|
45
|
+
secure: z.ZodBoolean;
|
|
46
|
+
sameSite: z.ZodOptional<z.ZodEnum<{
|
|
47
|
+
Strict: "Strict";
|
|
48
|
+
Lax: "Lax";
|
|
49
|
+
None: "None";
|
|
50
|
+
}>>;
|
|
51
|
+
}, z.core.$strip>;
|
|
52
|
+
export type BrowserStorageCookie = z.infer<typeof BrowserStorageCookieSchema>;
|
|
53
|
+
export declare const BrowserStorageOriginSchema: z.ZodObject<{
|
|
54
|
+
origin: z.ZodString;
|
|
55
|
+
localStorage: z.ZodArray<z.ZodObject<{
|
|
56
|
+
name: z.ZodString;
|
|
57
|
+
value: z.ZodString;
|
|
58
|
+
}, z.core.$strip>>;
|
|
59
|
+
}, z.core.$strip>;
|
|
60
|
+
export type BrowserStorageOrigin = z.infer<typeof BrowserStorageOriginSchema>;
|
|
61
|
+
export declare const BrowserStorageStateSchema: z.ZodObject<{
|
|
62
|
+
cookies: z.ZodArray<z.ZodObject<{
|
|
63
|
+
name: z.ZodString;
|
|
64
|
+
value: z.ZodString;
|
|
65
|
+
domain: z.ZodString;
|
|
66
|
+
path: z.ZodString;
|
|
67
|
+
expires: z.ZodNumber;
|
|
68
|
+
httpOnly: z.ZodBoolean;
|
|
69
|
+
secure: z.ZodBoolean;
|
|
70
|
+
sameSite: z.ZodOptional<z.ZodEnum<{
|
|
71
|
+
Strict: "Strict";
|
|
72
|
+
Lax: "Lax";
|
|
73
|
+
None: "None";
|
|
74
|
+
}>>;
|
|
75
|
+
}, z.core.$strip>>;
|
|
76
|
+
origins: z.ZodArray<z.ZodObject<{
|
|
77
|
+
origin: z.ZodString;
|
|
78
|
+
localStorage: z.ZodArray<z.ZodObject<{
|
|
79
|
+
name: z.ZodString;
|
|
80
|
+
value: z.ZodString;
|
|
81
|
+
}, z.core.$strip>>;
|
|
82
|
+
}, z.core.$strip>>;
|
|
83
|
+
}, z.core.$strip>;
|
|
84
|
+
export type BrowserStorageState = z.infer<typeof BrowserStorageStateSchema>;
|
|
85
|
+
/**
|
|
86
|
+
* A single open page/tab, abstracted to the actions the step executor needs.
|
|
87
|
+
* Backends implement each method against their engine.
|
|
88
|
+
*/
|
|
89
|
+
export interface BrowserBackendPage {
|
|
90
|
+
goto(url: string, options?: BrowserGotoOptions): Promise<void>;
|
|
91
|
+
click(selector: string, options?: BrowserActionOptions): Promise<void>;
|
|
92
|
+
fill(selector: string, value: string, options?: BrowserActionOptions): Promise<void>;
|
|
93
|
+
/** Type character-by-character into a field (Playwright pressSequentially / Puppeteer type). */
|
|
94
|
+
type(selector: string, text: string, options?: {
|
|
95
|
+
delay?: number;
|
|
96
|
+
}): Promise<void>;
|
|
97
|
+
press(key: string): Promise<void>;
|
|
98
|
+
waitForSelector(selector: string, options?: BrowserWaitForSelectorOptions): Promise<void>;
|
|
99
|
+
waitForTimeout(ms: number): Promise<void>;
|
|
100
|
+
selectOption(selector: string, value: string, options?: BrowserActionOptions): Promise<void>;
|
|
101
|
+
hover(selector: string, options?: BrowserActionOptions): Promise<void>;
|
|
102
|
+
/** Capture a screenshot. Returns bytes when `options.path` is omitted. */
|
|
103
|
+
screenshot(options: BrowserScreenshotOptions): Promise<Uint8Array | undefined>;
|
|
104
|
+
scrollIntoView(selector: string): Promise<void>;
|
|
105
|
+
scrollTo(x: number, y: number): Promise<void>;
|
|
106
|
+
evaluate<T = unknown>(script: string): Promise<T>;
|
|
107
|
+
content(): Promise<string>;
|
|
108
|
+
/** Whether an element matching the selector currently exists in the DOM. */
|
|
109
|
+
exists(selector: string): Promise<boolean>;
|
|
110
|
+
/** textContent of the first element matching the selector (null if none). */
|
|
111
|
+
textContent(selector: string): Promise<string | null>;
|
|
112
|
+
url(): string;
|
|
113
|
+
/** Resolved path of a recorded video for this page, if recording is active. Consumer-only. */
|
|
114
|
+
video?(): Promise<string | undefined>;
|
|
115
|
+
close(): Promise<void>;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* A browser context (cookies/storage boundary) owning one or more pages.
|
|
119
|
+
*/
|
|
120
|
+
export interface BrowserBackendContext<TStorageState = BrowserStorageState> {
|
|
121
|
+
newPage(): Promise<BrowserBackendPage>;
|
|
122
|
+
pages(): Promise<BrowserBackendPage[]>;
|
|
123
|
+
/**
|
|
124
|
+
* Persist cookies/localStorage. When `path` is provided the backend writes
|
|
125
|
+
* to that path (consumer/local FS) and resolves; otherwise it returns the
|
|
126
|
+
* serialized state. Cloud backends that cannot persist locally return the
|
|
127
|
+
* state object for the caller to store.
|
|
128
|
+
*/
|
|
129
|
+
storageState(options?: {
|
|
130
|
+
path?: string;
|
|
131
|
+
}): Promise<TStorageState>;
|
|
132
|
+
close(): Promise<void>;
|
|
133
|
+
}
|
|
134
|
+
export interface BrowserBackendLaunchInput {
|
|
135
|
+
/** The runtime the launch belongs to; backends use it for lifecycle-bounded waits and env reads. */
|
|
136
|
+
runtime: VibesRuntime;
|
|
137
|
+
/** Consumer-only: persistent Chromium user-data dir. Ignored by cloud backends. */
|
|
138
|
+
profileDir?: string;
|
|
139
|
+
/** Consumer-only: unpacked extension dirs. Ignored by cloud backends. */
|
|
140
|
+
extensions?: string[];
|
|
141
|
+
headless?: boolean;
|
|
142
|
+
viewport?: {
|
|
143
|
+
width: number;
|
|
144
|
+
height: number;
|
|
145
|
+
};
|
|
146
|
+
recordVideo?: {
|
|
147
|
+
dir?: string;
|
|
148
|
+
size?: {
|
|
149
|
+
width: number;
|
|
150
|
+
height: number;
|
|
151
|
+
};
|
|
152
|
+
};
|
|
153
|
+
/** Path to a saved storage-state JSON to seed cookies/localStorage. */
|
|
154
|
+
storageStatePath?: string;
|
|
155
|
+
/**
|
|
156
|
+
* Exact HTTP(S) origins this caller is authorized to navigate despite the
|
|
157
|
+
* public-HTTPS SSRF floor. Intended for host-owned ephemeral development
|
|
158
|
+
* servers; providers must reject malformed origins and every undeclared
|
|
159
|
+
* loopback/private target.
|
|
160
|
+
*/
|
|
161
|
+
trustedOrigins?: readonly string[];
|
|
162
|
+
}
|
|
163
|
+
export interface BrowserBackendLaunchResult<TStorageState = BrowserStorageState> {
|
|
164
|
+
context: BrowserBackendContext<TStorageState>;
|
|
165
|
+
/** True when launched against a persistent profile dir (consumer only). */
|
|
166
|
+
persistent: boolean;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Declares which optional features a backend supports, so orchestration can
|
|
170
|
+
* gracefully refuse profile/present/recording on cloud hardware.
|
|
171
|
+
*/
|
|
172
|
+
export interface BrowserBackendCapabilities {
|
|
173
|
+
/** Persistent Chromium user-data profiles (local FS). */
|
|
174
|
+
profiles: boolean;
|
|
175
|
+
/** Headed "present"/handoff window. */
|
|
176
|
+
present: boolean;
|
|
177
|
+
/** Local video recording to disk. */
|
|
178
|
+
recording: boolean;
|
|
179
|
+
/** Local storage-state file persistence. */
|
|
180
|
+
storageStateFile: boolean;
|
|
181
|
+
}
|
|
182
|
+
/** Options for describing a backend's remotely connectable browser transport. */
|
|
183
|
+
export interface BrowserBackendConnectionInput {
|
|
184
|
+
/** Prefer a CDP endpoint over an in-process runtime binding when both are available. */
|
|
185
|
+
preferCdp?: boolean;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Public, credential-free connection metadata exposed by a browser backend.
|
|
189
|
+
* Authentication headers and provider credentials never cross this seam.
|
|
190
|
+
*/
|
|
191
|
+
export interface BrowserBackendConnectionDescriptor {
|
|
192
|
+
hardware: BrowserHardware;
|
|
193
|
+
transport: 'binding' | 'cdp' | 'unavailable';
|
|
194
|
+
browserWSEndpoint?: string;
|
|
195
|
+
note?: string;
|
|
196
|
+
}
|
|
197
|
+
export interface BrowserBackend<TStorageState = BrowserStorageState> {
|
|
198
|
+
readonly id: string;
|
|
199
|
+
readonly hardware: BrowserHardware;
|
|
200
|
+
readonly capabilities: BrowserBackendCapabilities;
|
|
201
|
+
launch(input: BrowserBackendLaunchInput): Promise<BrowserBackendLaunchResult<TStorageState>>;
|
|
202
|
+
/** Optional metadata for backends that support an external connection handoff. */
|
|
203
|
+
describeConnection?(input: BrowserBackendConnectionInput): Promise<BrowserBackendConnectionDescriptor>;
|
|
204
|
+
}
|
|
205
|
+
export type BrowserSessionStatus = 'active' | 'closed';
|
|
206
|
+
export interface BrowserSessionRecord {
|
|
207
|
+
id: string;
|
|
208
|
+
name: string;
|
|
209
|
+
baseUrl?: string;
|
|
210
|
+
profileId?: string;
|
|
211
|
+
storageStatePath?: string;
|
|
212
|
+
createdAt: string;
|
|
213
|
+
lastUsedAt: string;
|
|
214
|
+
status: BrowserSessionStatus;
|
|
215
|
+
metadata?: JsonObject;
|
|
216
|
+
}
|
|
217
|
+
export interface RuntimeBrowserClient {
|
|
218
|
+
readonly id?: string;
|
|
219
|
+
load?(): Promise<void>;
|
|
220
|
+
dispose?(): void;
|
|
221
|
+
sessions: {
|
|
222
|
+
get(id: string): Promise<BrowserSessionRecord | null>;
|
|
223
|
+
list(options?: {
|
|
224
|
+
where?: {
|
|
225
|
+
name?: string;
|
|
226
|
+
};
|
|
227
|
+
limit?: number;
|
|
228
|
+
}): Promise<{
|
|
229
|
+
items: BrowserSessionRecord[];
|
|
230
|
+
}>;
|
|
231
|
+
create(data: {
|
|
232
|
+
name: string;
|
|
233
|
+
baseUrl?: string;
|
|
234
|
+
storageStatePath?: string;
|
|
235
|
+
status?: BrowserSessionStatus;
|
|
236
|
+
createdAt: string;
|
|
237
|
+
lastUsedAt: string;
|
|
238
|
+
metadata?: JsonObject;
|
|
239
|
+
}): Promise<BrowserSessionRecord>;
|
|
240
|
+
update(id: string, data: {
|
|
241
|
+
storageStatePath?: string;
|
|
242
|
+
}): Promise<BrowserSessionRecord>;
|
|
243
|
+
delete(id: string): Promise<boolean | void>;
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/browser/contracts.ts"],"names":[],"mappings":"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"}
|