@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,450 @@
|
|
|
1
|
+
<script module lang="ts">
|
|
2
|
+
export type { BrowserObservedPage, BrowserWorkspaceData } from './types.js';
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
<script lang="ts">
|
|
6
|
+
/**
|
|
7
|
+
* BrowserWorkspace — the consumer control surface for the browser-automation
|
|
8
|
+
* feature. Sessions list (with a profile filter) on the left; the selected
|
|
9
|
+
* session's detail (status, base URL, profile, storage-state, timestamps),
|
|
10
|
+
* its tabs, the recipe library, and an observed-page panel on the right.
|
|
11
|
+
*
|
|
12
|
+
* Data source: the host supplies records through `data` or an async `load`
|
|
13
|
+
* function. This presentation package never imports the consumer browser client:
|
|
14
|
+
* that client owns Playwright and local filesystem lifecycle and cannot enter a
|
|
15
|
+
* web or workerd bundle. When no data source is supplied, the surface shows an
|
|
16
|
+
* honest disconnected state; it never fabricates sessions.
|
|
17
|
+
*
|
|
18
|
+
* Registers NO runtime kinds — this is a *view* over host-supplied browser data.
|
|
19
|
+
*
|
|
20
|
+
* SEAMS (honest, not faked):
|
|
21
|
+
* - Observed-page panel: renders a real screenshot only when one is supplied
|
|
22
|
+
* via `observed` / `loadObserved` (the `observe` action's output). With no
|
|
23
|
+
* snapshot it shows a placeholder describing what a live capture would show.
|
|
24
|
+
* The live wire (host resolves the browser client + calls `observe`) lands
|
|
25
|
+
* with the hq-web route in C4 — this component only leaves the clean seam.
|
|
26
|
+
* - `data` / `load` props let a host feed records from the runtime appropriate
|
|
27
|
+
* to that host (SSR hydration, consumer client, cloud API, fixtures, or tests).
|
|
28
|
+
*/
|
|
29
|
+
import { onMount } from 'svelte';
|
|
30
|
+
import { settle } from '@vibesdotdev/kernel';
|
|
31
|
+
import { Badge } from '@vibesdotdev/kit/components/ui/badge';
|
|
32
|
+
import { Button } from '@vibesdotdev/kit/components/ui/button';
|
|
33
|
+
import * as Select from '@vibesdotdev/kit/components/ui/select';
|
|
34
|
+
import {
|
|
35
|
+
Camera,
|
|
36
|
+
Clock3,
|
|
37
|
+
Globe,
|
|
38
|
+
Layers,
|
|
39
|
+
RotateCw,
|
|
40
|
+
ScrollText,
|
|
41
|
+
SquareStack,
|
|
42
|
+
UserRound
|
|
43
|
+
} from '@lucide/svelte';
|
|
44
|
+
import { getBrowserWorkspaceState as scopedWorkspaceState, type BrowserWorkspaceSelectionState } from './state.svelte.js';
|
|
45
|
+
import type {
|
|
46
|
+
BrowserSession,
|
|
47
|
+
BrowserProfile,
|
|
48
|
+
BrowserTab,
|
|
49
|
+
BrowserRecipe
|
|
50
|
+
} from '@vibesdotdev/control/browser-automation';
|
|
51
|
+
import type { BrowserObservedPage, BrowserWorkspaceData } from './types.js';
|
|
52
|
+
|
|
53
|
+
interface Props {
|
|
54
|
+
state?: BrowserWorkspaceSelectionState;
|
|
55
|
+
class?: string;
|
|
56
|
+
title?: string;
|
|
57
|
+
/** Host-supplied records rendered directly without resolving a transport. */
|
|
58
|
+
data?: BrowserWorkspaceData;
|
|
59
|
+
/** Host-owned loader for the runtime/transport appropriate to the mounting surface. */
|
|
60
|
+
load?: () => Promise<BrowserWorkspaceData>;
|
|
61
|
+
/** Injected observed-page snapshot for the active session (the live seam). */
|
|
62
|
+
observed?: BrowserObservedPage | null;
|
|
63
|
+
/** Live observed-page loader; called when a session is focused. Left unset → seam only. */
|
|
64
|
+
loadObserved?: (sessionId: string) => Promise<BrowserObservedPage | null>;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
let {
|
|
68
|
+
state: selectionState = scopedWorkspaceState(),
|
|
69
|
+
class: className = '',
|
|
70
|
+
title = 'Browser sessions',
|
|
71
|
+
data,
|
|
72
|
+
load,
|
|
73
|
+
observed = null,
|
|
74
|
+
loadObserved
|
|
75
|
+
}: Props = $props();
|
|
76
|
+
|
|
77
|
+
const browserWorkspaceState = $derived(selectionState);
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
type Status = 'loading' | 'ready' | 'empty' | 'error';
|
|
81
|
+
|
|
82
|
+
let status = $state<Status>('loading');
|
|
83
|
+
let notice = $state('Connecting to browser runtime…');
|
|
84
|
+
let sessions = $state<BrowserSession[]>([]);
|
|
85
|
+
let profiles = $state<BrowserProfile[]>([]);
|
|
86
|
+
let tabs = $state<BrowserTab[]>([]);
|
|
87
|
+
let recipes = $state<BrowserRecipe[]>([]);
|
|
88
|
+
let liveObserved = $state<BrowserObservedPage | null>(null);
|
|
89
|
+
let loadGeneration = 0;
|
|
90
|
+
|
|
91
|
+
const profileFilter = $derived(browserWorkspaceState.profileFilter);
|
|
92
|
+
|
|
93
|
+
const profileName = $derived.by(() => {
|
|
94
|
+
const byId = new Map(profiles.map((p) => [p.id, p.name]));
|
|
95
|
+
return (id: string | undefined): string | null => (id ? (byId.get(id) ?? id) : null);
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
const visibleSessions = $derived(
|
|
99
|
+
profileFilter ? sessions.filter((s) => s.profileId === profileFilter) : sessions
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
const selectedSession = $derived(
|
|
103
|
+
visibleSessions.find((s) => s.id === browserWorkspaceState.activeSessionId) ?? null
|
|
104
|
+
);
|
|
105
|
+
|
|
106
|
+
const sessionTabs = $derived(
|
|
107
|
+
selectedSession ? tabs.filter((t) => t.sessionId === selectedSession.id) : []
|
|
108
|
+
);
|
|
109
|
+
|
|
110
|
+
const activeCount = $derived(sessions.filter((s) => s.status === 'active').length);
|
|
111
|
+
|
|
112
|
+
// Injected snapshot takes precedence over the live-loaded one.
|
|
113
|
+
const observedPage = $derived(observed ?? liveObserved);
|
|
114
|
+
|
|
115
|
+
function apply(next: BrowserWorkspaceData): void {
|
|
116
|
+
sessions = [...next.sessions];
|
|
117
|
+
profiles = [...next.profiles];
|
|
118
|
+
tabs = [...next.tabs];
|
|
119
|
+
recipes = [...next.recipes];
|
|
120
|
+
// Keep or seed the active selection so cross-route focus survives a reload.
|
|
121
|
+
const stillVisible =
|
|
122
|
+
browserWorkspaceState.activeSessionId &&
|
|
123
|
+
visibleSessions.some((s) => s.id === browserWorkspaceState.activeSessionId);
|
|
124
|
+
if (!stillVisible) {
|
|
125
|
+
browserWorkspaceState.selectSession(visibleSessions[0]?.id ?? null);
|
|
126
|
+
}
|
|
127
|
+
status = sessions.length > 0 ? 'ready' : 'empty';
|
|
128
|
+
notice =
|
|
129
|
+
status === 'ready'
|
|
130
|
+
? `${sessions.length} ${sessions.length === 1 ? 'session' : 'sessions'} · ${activeCount} active`
|
|
131
|
+
: 'No browser sessions yet.';
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
async function refresh(): Promise<void> {
|
|
136
|
+
const generation = ++loadGeneration;
|
|
137
|
+
status = 'loading';
|
|
138
|
+
notice = 'Loading browser sessions…';
|
|
139
|
+
const result = await settle(async () => load
|
|
140
|
+
? load()
|
|
141
|
+
: (data ?? { sessions: [], profiles: [], tabs: [], recipes: [] }));
|
|
142
|
+
if (generation !== loadGeneration) return;
|
|
143
|
+
if (result.ok) {
|
|
144
|
+
apply(result.value);
|
|
145
|
+
if (!load && !data) notice = 'Not connected to a browser data source.';
|
|
146
|
+
} else {
|
|
147
|
+
status = 'error';
|
|
148
|
+
notice = `Browser data source failed: ${result.cause instanceof Error ? result.cause.message : String(result.cause)}`;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
onMount(() => {
|
|
153
|
+
if (data) {
|
|
154
|
+
apply(data);
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
void refresh();
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
// Pull a live observed-page snapshot when the focused session changes and a
|
|
161
|
+
// loader is wired. Without a loader the panel stays a placeholder (the seam).
|
|
162
|
+
$effect(() => {
|
|
163
|
+
const id = selectedSession?.id;
|
|
164
|
+
const loader = loadObserved;
|
|
165
|
+
if (!id || !loader) {
|
|
166
|
+
liveObserved = null;
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
let cancelled = false;
|
|
170
|
+
void settle(() => loader(id)).then(result => {
|
|
171
|
+
if (cancelled) return;
|
|
172
|
+
if (result.ok) liveObserved = result.value;
|
|
173
|
+
else {
|
|
174
|
+
liveObserved = null;
|
|
175
|
+
status = 'error';
|
|
176
|
+
notice = `Observation failed: ${result.cause instanceof Error ? result.cause.message : String(result.cause)}`;
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
return () => {
|
|
180
|
+
cancelled = true;
|
|
181
|
+
};
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
function handleProfileChange(value: string | undefined): void {
|
|
185
|
+
browserWorkspaceState.setProfileFilter(value && value !== 'all' ? value : null);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
function selectSession(id: string): void {
|
|
189
|
+
browserWorkspaceState.selectSession(id);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
function fmt(ts: string | undefined): string {
|
|
193
|
+
if (!ts) return '—';
|
|
194
|
+
const d = new Date(ts);
|
|
195
|
+
if (Number.isNaN(d.getTime())) return ts;
|
|
196
|
+
return d.toLocaleString();
|
|
197
|
+
}
|
|
198
|
+
</script>
|
|
199
|
+
|
|
200
|
+
<section
|
|
201
|
+
class={`flex h-full min-h-[440px] flex-col gap-3 overflow-hidden ${className}`}
|
|
202
|
+
aria-label={title}
|
|
203
|
+
data-browser-workspace
|
|
204
|
+
data-browser-status={status}
|
|
205
|
+
>
|
|
206
|
+
<header class="flex flex-wrap items-center justify-between gap-3">
|
|
207
|
+
<div class="min-w-0">
|
|
208
|
+
<div class="flex items-center gap-2">
|
|
209
|
+
<Globe class="h-4 w-4 shrink-0 text-muted-foreground" />
|
|
210
|
+
<h2 class="truncate text-sm font-semibold text-foreground">{title}</h2>
|
|
211
|
+
{#if status === 'ready'}
|
|
212
|
+
<Badge variant="outline" class="gap-1 text-[0.6rem]">
|
|
213
|
+
{sessions.length}
|
|
214
|
+
{sessions.length === 1 ? 'session' : 'sessions'}
|
|
215
|
+
</Badge>
|
|
216
|
+
{#if activeCount > 0}
|
|
217
|
+
<Badge variant="success" class="gap-1 text-[0.6rem]">{activeCount} active</Badge>
|
|
218
|
+
{/if}
|
|
219
|
+
{/if}
|
|
220
|
+
</div>
|
|
221
|
+
<p class="mt-1 truncate text-xs text-muted-foreground">{notice}</p>
|
|
222
|
+
</div>
|
|
223
|
+
<div class="flex items-center gap-2">
|
|
224
|
+
{#if profiles.length > 0}
|
|
225
|
+
<Select.Root
|
|
226
|
+
type="single"
|
|
227
|
+
value={profileFilter ?? 'all'}
|
|
228
|
+
onValueChange={handleProfileChange}
|
|
229
|
+
>
|
|
230
|
+
<Select.Trigger class="h-8 w-44 text-xs">
|
|
231
|
+
{profileFilter ? (profileName(profileFilter) ?? 'Profile') : 'All profiles'}
|
|
232
|
+
</Select.Trigger>
|
|
233
|
+
<Select.Content>
|
|
234
|
+
<Select.Item value="all">All profiles</Select.Item>
|
|
235
|
+
{#each profiles as profile (profile.id)}
|
|
236
|
+
<Select.Item value={profile.id}>{profile.name}</Select.Item>
|
|
237
|
+
{/each}
|
|
238
|
+
</Select.Content>
|
|
239
|
+
</Select.Root>
|
|
240
|
+
{/if}
|
|
241
|
+
<Button
|
|
242
|
+
variant="outline"
|
|
243
|
+
size="sm"
|
|
244
|
+
class="h-8 gap-1.5 text-xs"
|
|
245
|
+
onclick={() => void refresh()}
|
|
246
|
+
disabled={status === 'loading'}
|
|
247
|
+
>
|
|
248
|
+
<RotateCw class="h-3.5 w-3.5" />
|
|
249
|
+
Refresh
|
|
250
|
+
</Button>
|
|
251
|
+
</div>
|
|
252
|
+
</header>
|
|
253
|
+
|
|
254
|
+
{#if status === 'loading'}
|
|
255
|
+
<div
|
|
256
|
+
class="grid min-h-64 flex-1 place-items-center rounded-xl border border-dashed border-border bg-muted/20 p-6 text-center"
|
|
257
|
+
>
|
|
258
|
+
<p class="text-sm text-muted-foreground">{notice}</p>
|
|
259
|
+
</div>
|
|
260
|
+
{:else if status === 'error'}
|
|
261
|
+
<div
|
|
262
|
+
class="grid min-h-64 flex-1 place-items-center rounded-xl border border-dashed border-destructive/40 bg-destructive/5 p-6 text-center"
|
|
263
|
+
>
|
|
264
|
+
<div class="space-y-1">
|
|
265
|
+
<p class="text-sm font-medium text-destructive">Couldn't load browser sessions</p>
|
|
266
|
+
<p class="text-xs text-muted-foreground">{notice}</p>
|
|
267
|
+
</div>
|
|
268
|
+
</div>
|
|
269
|
+
{:else if status === 'empty'}
|
|
270
|
+
<div
|
|
271
|
+
class="grid min-h-64 flex-1 place-items-center rounded-xl border border-dashed border-border bg-muted/20 p-8 text-center"
|
|
272
|
+
>
|
|
273
|
+
<div class="max-w-sm space-y-2">
|
|
274
|
+
<SquareStack class="mx-auto h-6 w-6 text-muted-foreground/70" />
|
|
275
|
+
<p class="text-sm font-medium text-foreground">{notice}</p>
|
|
276
|
+
<p class="text-xs text-muted-foreground">
|
|
277
|
+
Browser sessions appear after an agent runs a browser tool or when a connected machine
|
|
278
|
+
provides browser automation.
|
|
279
|
+
</p>
|
|
280
|
+
</div>
|
|
281
|
+
</div>
|
|
282
|
+
{:else}
|
|
283
|
+
<div class="grid min-h-0 flex-1 grid-cols-[minmax(0,20rem)_minmax(0,1fr)] gap-3 overflow-hidden">
|
|
284
|
+
<!-- Sessions list -->
|
|
285
|
+
<ul class="min-h-0 space-y-1.5 overflow-y-auto pr-1" aria-label="Browser sessions">
|
|
286
|
+
{#each visibleSessions as session (session.id)}
|
|
287
|
+
{@const selected = session.id === selectedSession?.id}
|
|
288
|
+
<li>
|
|
289
|
+
<button
|
|
290
|
+
type="button"
|
|
291
|
+
class={`w-full rounded-lg border px-3 py-2 text-left transition-colors ${
|
|
292
|
+
selected
|
|
293
|
+
? 'border-primary/60 bg-primary/5'
|
|
294
|
+
: 'border-border bg-card hover:border-border hover:bg-muted/40'
|
|
295
|
+
}`}
|
|
296
|
+
aria-current={selected}
|
|
297
|
+
onclick={() => selectSession(session.id)}
|
|
298
|
+
>
|
|
299
|
+
<div class="flex items-center justify-between gap-2">
|
|
300
|
+
<span class="truncate text-sm font-medium text-foreground">{session.name}</span>
|
|
301
|
+
<Badge
|
|
302
|
+
variant={session.status === 'active' ? 'success' : 'outline'}
|
|
303
|
+
class="shrink-0 text-[0.55rem]"
|
|
304
|
+
>
|
|
305
|
+
{session.status}
|
|
306
|
+
</Badge>
|
|
307
|
+
</div>
|
|
308
|
+
{#if session.baseUrl}
|
|
309
|
+
<p class="mt-0.5 truncate text-xs text-muted-foreground">{session.baseUrl}</p>
|
|
310
|
+
{/if}
|
|
311
|
+
<p class="mt-1 flex items-center gap-1 text-[0.65rem] text-muted-foreground">
|
|
312
|
+
<Clock3 class="h-3 w-3 shrink-0" />
|
|
313
|
+
<span class="truncate">used {fmt(session.lastUsedAt)}</span>
|
|
314
|
+
</p>
|
|
315
|
+
</button>
|
|
316
|
+
</li>
|
|
317
|
+
{:else}
|
|
318
|
+
<li class="rounded-lg border border-dashed border-border p-4 text-center text-xs text-muted-foreground">
|
|
319
|
+
No sessions for this profile.
|
|
320
|
+
</li>
|
|
321
|
+
{/each}
|
|
322
|
+
</ul>
|
|
323
|
+
|
|
324
|
+
<!-- Detail -->
|
|
325
|
+
<div class="min-h-0 overflow-y-auto rounded-xl border border-border bg-card">
|
|
326
|
+
{#if selectedSession}
|
|
327
|
+
<div class="space-y-4 p-4">
|
|
328
|
+
<div>
|
|
329
|
+
<div class="flex flex-wrap items-center gap-2">
|
|
330
|
+
<h3 class="truncate text-sm font-semibold text-foreground">{selectedSession.name}</h3>
|
|
331
|
+
<Badge
|
|
332
|
+
variant={selectedSession.status === 'active' ? 'success' : 'outline'}
|
|
333
|
+
class="text-[0.55rem]"
|
|
334
|
+
>
|
|
335
|
+
{selectedSession.status}
|
|
336
|
+
</Badge>
|
|
337
|
+
</div>
|
|
338
|
+
<dl class="mt-2 grid grid-cols-1 gap-x-4 gap-y-1.5 text-xs sm:grid-cols-2">
|
|
339
|
+
<div class="flex items-center gap-1.5 text-muted-foreground">
|
|
340
|
+
<Globe class="h-3 w-3 shrink-0" />
|
|
341
|
+
<dt class="sr-only">Base URL</dt>
|
|
342
|
+
<dd class="truncate text-foreground">{selectedSession.baseUrl ?? '—'}</dd>
|
|
343
|
+
</div>
|
|
344
|
+
<div class="flex items-center gap-1.5 text-muted-foreground">
|
|
345
|
+
<UserRound class="h-3 w-3 shrink-0" />
|
|
346
|
+
<dt class="sr-only">Profile</dt>
|
|
347
|
+
<dd class="truncate text-foreground">
|
|
348
|
+
{profileName(selectedSession.profileId) ?? 'default'}
|
|
349
|
+
</dd>
|
|
350
|
+
</div>
|
|
351
|
+
<div class="flex items-center gap-1.5 text-muted-foreground">
|
|
352
|
+
<ScrollText class="h-3 w-3 shrink-0" />
|
|
353
|
+
<dt class="sr-only">Storage state</dt>
|
|
354
|
+
<dd class="truncate text-foreground">{selectedSession.storageStatePath ?? 'none'}</dd>
|
|
355
|
+
</div>
|
|
356
|
+
<div class="flex items-center gap-1.5 text-muted-foreground">
|
|
357
|
+
<Clock3 class="h-3 w-3 shrink-0" />
|
|
358
|
+
<dt class="sr-only">Created</dt>
|
|
359
|
+
<dd class="truncate text-foreground">created {fmt(selectedSession.createdAt)}</dd>
|
|
360
|
+
</div>
|
|
361
|
+
</dl>
|
|
362
|
+
</div>
|
|
363
|
+
|
|
364
|
+
<!-- Observed-page panel (live seam) -->
|
|
365
|
+
<div class="rounded-lg border border-border bg-muted/20">
|
|
366
|
+
<div class="flex items-center gap-1.5 border-b border-border px-3 py-2">
|
|
367
|
+
<Camera class="h-3.5 w-3.5 text-muted-foreground" />
|
|
368
|
+
<span class="text-xs font-medium text-foreground">Observed page</span>
|
|
369
|
+
</div>
|
|
370
|
+
{#if observedPage?.screenshotUrl}
|
|
371
|
+
<figure class="p-3">
|
|
372
|
+
<img
|
|
373
|
+
src={observedPage.screenshotUrl}
|
|
374
|
+
alt={observedPage.title ?? 'Observed page screenshot'}
|
|
375
|
+
class="w-full rounded border border-border"
|
|
376
|
+
/>
|
|
377
|
+
<figcaption class="mt-1.5 truncate text-[0.65rem] text-muted-foreground">
|
|
378
|
+
{observedPage.title ?? observedPage.url ?? ''}
|
|
379
|
+
{#if observedPage.capturedAt}· {fmt(observedPage.capturedAt)}{/if}
|
|
380
|
+
</figcaption>
|
|
381
|
+
</figure>
|
|
382
|
+
{:else}
|
|
383
|
+
<div class="p-4 text-center text-xs text-muted-foreground">
|
|
384
|
+
No live view captured. Run the
|
|
385
|
+
<code class="rounded bg-muted px-1 py-0.5 text-[0.7rem]">observe</code>
|
|
386
|
+
action to capture this session's current page.
|
|
387
|
+
</div>
|
|
388
|
+
{/if}
|
|
389
|
+
</div>
|
|
390
|
+
|
|
391
|
+
<!-- Tabs -->
|
|
392
|
+
<div>
|
|
393
|
+
<div class="mb-1.5 flex items-center gap-1.5">
|
|
394
|
+
<Layers class="h-3.5 w-3.5 text-muted-foreground" />
|
|
395
|
+
<span class="text-xs font-medium text-foreground">Tabs</span>
|
|
396
|
+
<Badge variant="outline" class="text-[0.55rem]">{sessionTabs.length}</Badge>
|
|
397
|
+
</div>
|
|
398
|
+
{#if sessionTabs.length > 0}
|
|
399
|
+
<ul class="space-y-1">
|
|
400
|
+
{#each sessionTabs as tab (tab.id)}
|
|
401
|
+
<li
|
|
402
|
+
class="flex items-center justify-between gap-2 rounded-md border border-border px-2.5 py-1.5 text-xs"
|
|
403
|
+
>
|
|
404
|
+
<span class="truncate text-foreground">{tab.url ?? tab.id}</span>
|
|
405
|
+
<Badge
|
|
406
|
+
variant={tab.status === 'open' ? 'info' : 'outline'}
|
|
407
|
+
class="shrink-0 text-[0.55rem]"
|
|
408
|
+
>
|
|
409
|
+
{tab.status}
|
|
410
|
+
</Badge>
|
|
411
|
+
</li>
|
|
412
|
+
{/each}
|
|
413
|
+
</ul>
|
|
414
|
+
{:else}
|
|
415
|
+
<p class="text-xs text-muted-foreground">No tabs recorded for this session.</p>
|
|
416
|
+
{/if}
|
|
417
|
+
</div>
|
|
418
|
+
|
|
419
|
+
<!-- Recipe library -->
|
|
420
|
+
<div>
|
|
421
|
+
<div class="mb-1.5 flex items-center gap-1.5">
|
|
422
|
+
<ScrollText class="h-3.5 w-3.5 text-muted-foreground" />
|
|
423
|
+
<span class="text-xs font-medium text-foreground">Recipe library</span>
|
|
424
|
+
<Badge variant="outline" class="text-[0.55rem]">{recipes.length}</Badge>
|
|
425
|
+
</div>
|
|
426
|
+
{#if recipes.length > 0}
|
|
427
|
+
<ul class="space-y-1">
|
|
428
|
+
{#each recipes as recipe (recipe.id)}
|
|
429
|
+
<li
|
|
430
|
+
class="flex items-center justify-between gap-2 rounded-md border border-border px-2.5 py-1.5 text-xs"
|
|
431
|
+
>
|
|
432
|
+
<span class="truncate text-foreground">{recipe.name}</span>
|
|
433
|
+
<Badge variant="outline" class="shrink-0 text-[0.55rem]">{recipe.type}</Badge>
|
|
434
|
+
</li>
|
|
435
|
+
{/each}
|
|
436
|
+
</ul>
|
|
437
|
+
{:else}
|
|
438
|
+
<p class="text-xs text-muted-foreground">No saved recipes.</p>
|
|
439
|
+
{/if}
|
|
440
|
+
</div>
|
|
441
|
+
</div>
|
|
442
|
+
{:else}
|
|
443
|
+
<div class="grid h-full place-items-center p-6 text-center">
|
|
444
|
+
<p class="text-sm text-muted-foreground">Select a session to see its detail.</p>
|
|
445
|
+
</div>
|
|
446
|
+
{/if}
|
|
447
|
+
</div>
|
|
448
|
+
</div>
|
|
449
|
+
{/if}
|
|
450
|
+
</section>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type { BrowserObservedPage, BrowserWorkspaceData } from './types.ts';
|
|
2
|
+
import { type BrowserWorkspaceSelectionState } from './state.svelte.ts';
|
|
3
|
+
import type { BrowserObservedPage, BrowserWorkspaceData } from './types.ts';
|
|
4
|
+
interface Props {
|
|
5
|
+
state?: BrowserWorkspaceSelectionState;
|
|
6
|
+
class?: string;
|
|
7
|
+
title?: string;
|
|
8
|
+
/** Host-supplied records rendered directly without resolving a transport. */
|
|
9
|
+
data?: BrowserWorkspaceData;
|
|
10
|
+
/** Host-owned loader for the runtime/transport appropriate to the mounting surface. */
|
|
11
|
+
load?: () => Promise<BrowserWorkspaceData>;
|
|
12
|
+
/** Injected observed-page snapshot for the active session (the live seam). */
|
|
13
|
+
observed?: BrowserObservedPage | null;
|
|
14
|
+
/** Live observed-page loader; called when a session is focused. Left unset → seam only. */
|
|
15
|
+
loadObserved?: (sessionId: string) => Promise<BrowserObservedPage | null>;
|
|
16
|
+
}
|
|
17
|
+
declare const BrowserWorkspace: import("svelte").Component<Props, {}, "">;
|
|
18
|
+
type BrowserWorkspace = ReturnType<typeof BrowserWorkspace>;
|
|
19
|
+
export default BrowserWorkspace;
|
|
20
|
+
//# sourceMappingURL=BrowserWorkspace.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BrowserWorkspace.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/browser/BrowserWorkspace.svelte.ts"],"names":[],"mappings":"AAGC,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAyC7E,OAAO,EAAoD,KAAK,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AAO1H,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAG3E,UAAU,KAAK;IACd,KAAK,CAAC,EAAE,8BAA8B,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,uFAAuF;IACvF,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC3C,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACtC,2FAA2F;IAC3F,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;CAC1E;AAyWF,QAAA,MAAM,gBAAgB,2CAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-automation-svelte.plugin.d.ts","sourceRoot":"","sources":["../../../src/svelte/browser/browser-automation-svelte.plugin.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,6BAA6B,6CAkBxC,CAAC;AAEH,eAAe,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { browserWorkspaceComposition } from "../../browser/client/workspace-client.js";
|
|
2
|
+
import { createRuntimePlugin } from '@vibesdotdev/kernel';
|
|
3
|
+
import browserAutomationSvelteDocsDescriptor from "./docs/browser-automation-svelte.docs.descriptor.js";
|
|
4
|
+
import { createSvelteToolWidgetDescriptor, createSvelteToolWidgetLoader } from '@vibesdotdev/tools/svelte/tool-widgets';
|
|
5
|
+
const browserWidgetDescriptor = createSvelteToolWidgetDescriptor({
|
|
6
|
+
toolId: 'browser',
|
|
7
|
+
placement: 'top'
|
|
8
|
+
});
|
|
9
|
+
export const browserAutomationSveltePlugin = createRuntimePlugin({
|
|
10
|
+
// Plugin ids are how consumers resolve; this one is preserved verbatim
|
|
11
|
+
// through the bridge → control move even though it names the old package.
|
|
12
|
+
// Renaming it is part of "4. Close the old path" in
|
|
13
|
+
// docs/architecture/APP-PACKAGE-SPLIT-PLAYBOOK.md, together with the
|
|
14
|
+
// consumer sweep — not this split.
|
|
15
|
+
id: '@vibesdotdev/bridge/browser-automation/svelte',
|
|
16
|
+
name: 'Browser Automation Svelte',
|
|
17
|
+
description: 'Svelte browser-automation presentation surfaces and the designed `browser` tools/ui widget.',
|
|
18
|
+
dependencies: ['tools', 'runtime-client'],
|
|
19
|
+
descriptors: [...browserWorkspaceComposition.descriptors, browserAutomationSvelteDocsDescriptor, browserWidgetDescriptor],
|
|
20
|
+
loaders: [
|
|
21
|
+
...browserWorkspaceComposition.loaders,
|
|
22
|
+
createSvelteToolWidgetLoader(browserWidgetDescriptor, () => import('./tool-widgets/BrowserToolCard.svelte'))
|
|
23
|
+
]
|
|
24
|
+
});
|
|
25
|
+
export default browserAutomationSveltePlugin;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-automation-svelte.docs.descriptor.d.ts","sourceRoot":"","sources":["../../../../src/svelte/browser/docs/browser-automation-svelte.docs.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,QAAA,MAAM,UAAU,EAAE,mBAsDjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
const descriptor = {
|
|
2
|
+
kind: 'docs/topic',
|
|
3
|
+
id: 'browser-automation-svelte',
|
|
4
|
+
parent: 'runtime',
|
|
5
|
+
order: 46,
|
|
6
|
+
title: 'Browser Automation Svelte',
|
|
7
|
+
summary: 'Svelte browser-automation presentation surfaces (tool-call widget + control workspace) over the runtime-resolved browser client.',
|
|
8
|
+
tags: ['browser', 'svelte', 'automation', 'runtime', 'control-plane'],
|
|
9
|
+
surfaces: ['web', 'in-app'],
|
|
10
|
+
hardware: ['consumer', 'cloud'],
|
|
11
|
+
enabled: true,
|
|
12
|
+
body: {
|
|
13
|
+
type: 'markdown',
|
|
14
|
+
sourceType: 'raw',
|
|
15
|
+
source: `---
|
|
16
|
+
title: Browser Automation Svelte
|
|
17
|
+
summary: Transport-blind Svelte browser-automation presentation surfaces
|
|
18
|
+
tags: [browser, svelte, automation, runtime, control-plane]
|
|
19
|
+
parent: runtime
|
|
20
|
+
order: 46
|
|
21
|
+
surfaces: [web, in-app]
|
|
22
|
+
hardware: [consumer, cloud]
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# Browser Automation Svelte
|
|
26
|
+
|
|
27
|
+
\`@vibesdotdev/control/browser-automation/svelte\` presents browser-automation surfaces
|
|
28
|
+
without owning or bundling a browser backend. Hosts inject records through
|
|
29
|
+
\`data\` or \`load\`; the package never chooses a runtime or transport.
|
|
30
|
+
|
|
31
|
+
## Entrypoints
|
|
32
|
+
|
|
33
|
+
- \`@vibesdotdev/control/browser-automation/svelte/BrowserWorkspace.svelte\` - the
|
|
34
|
+
sessions list + profile filter + selected-session detail + observed-page seam.
|
|
35
|
+
- \`@vibesdotdev/control/browser-automation/svelte/tool-widgets\` - exports
|
|
36
|
+
\`BrowserToolCard\`. Registration is not a side effect of this subpath.
|
|
37
|
+
- \`@vibesdotdev/control/browser-automation/svelte/state\` - the cross-route
|
|
38
|
+
\`browserWorkspaceState\` runtime-owned selection compatibility facade (subpath-only; hosts that only
|
|
39
|
+
need the selection store import it without the workspace component tree).
|
|
40
|
+
- \`@vibesdotdev/control/browser-automation/svelte/plugin\` - docs topic plus the
|
|
41
|
+
\`browser\` \`tools/ui\` widget (\`BrowserToolCard\`, placement \`top\`).
|
|
42
|
+
Compose the plugin in the runtime to register its descriptors and workspace selection client.
|
|
43
|
+
|
|
44
|
+
## Boundary
|
|
45
|
+
|
|
46
|
+
This package paints host-supplied sessions, tabs, recipes, and observed-page
|
|
47
|
+
snapshots. The host resolves the consumer client, cloud API, or other transport
|
|
48
|
+
appropriate to its surface and supplies \`data\` or \`load\`. With no data source
|
|
49
|
+
the workspace shows an honest disconnected state. The Svelte plugin registers
|
|
50
|
+
the \`browser\` \`tools/ui\` widget; it does not register drive kinds — those stay
|
|
51
|
+
on the separate consumer and cloud plugins. JSON \`DefaultToolCard\` is not the fallback.
|
|
52
|
+
`
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
export default descriptor;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Svelte views and plugin. Runtime-owned selection adapters live at ./state. */
|
|
2
|
+
export { default as BrowserToolCard } from './tool-widgets/BrowserToolCard.svelte';
|
|
3
|
+
export { default as BrowserWorkspace } from './BrowserWorkspace.svelte';
|
|
4
|
+
export type { BrowserWorkspaceData, BrowserObservedPage } from './types.ts';
|
|
5
|
+
export { browserAutomationSveltePlugin, default } from './browser-automation-svelte.plugin.ts';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/svelte/browser/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EACN,OAAO,IAAI,gBAAgB,EAC3B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EAAE,6BAA6B,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Svelte views and plugin. Runtime-owned selection adapters live at ./state. */
|
|
2
|
+
export { default as BrowserToolCard } from './tool-widgets/BrowserToolCard.svelte';
|
|
3
|
+
export { default as BrowserWorkspace } from './BrowserWorkspace.svelte';
|
|
4
|
+
export { browserAutomationSveltePlugin, default } from "./browser-automation-svelte.plugin.js";
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { BrowserWorkspaceClient } from '../../browser/client/workspace-client.ts';
|
|
2
|
+
import { type VibesRuntime } from '@vibesdotdev/kernel';
|
|
3
|
+
export { browserWorkspacePlugin, getBrowserWorkspaceClient } from '../../browser/client/workspace-client.ts';
|
|
4
|
+
/** A component-scoped reactive projection. Call dispose when its scope ends. */
|
|
5
|
+
export declare class BrowserWorkspaceState {
|
|
6
|
+
private readonly client?;
|
|
7
|
+
private selection;
|
|
8
|
+
private unsubscribe;
|
|
9
|
+
constructor(client?: BrowserWorkspaceClient | undefined);
|
|
10
|
+
get activeSessionId(): string | null;
|
|
11
|
+
set activeSessionId(id: string | null);
|
|
12
|
+
get activeTabId(): string | null;
|
|
13
|
+
set activeTabId(id: string | null);
|
|
14
|
+
get profileFilter(): string | null;
|
|
15
|
+
set profileFilter(id: string | null);
|
|
16
|
+
selectSession(id: string | null): void;
|
|
17
|
+
selectTab(id: string | null): void;
|
|
18
|
+
setProfileFilter(id: string | null): void;
|
|
19
|
+
reset(): void;
|
|
20
|
+
dispose(): void;
|
|
21
|
+
}
|
|
22
|
+
export type BrowserWorkspaceSelectionState = Pick<BrowserWorkspaceState, 'activeSessionId' | 'activeTabId' | 'profileFilter' | 'selectSession' | 'selectTab' | 'setProfileFilter' | 'reset'>;
|
|
23
|
+
/** Share an adapter across routes by placing it in their common Svelte scope. */
|
|
24
|
+
export declare function provideBrowserWorkspaceState(state: BrowserWorkspaceState): BrowserWorkspaceState;
|
|
25
|
+
export declare function getBrowserWorkspaceState(): BrowserWorkspaceSelectionState;
|
|
26
|
+
export declare function createBrowserWorkspaceState(runtime: VibesRuntime): Promise<BrowserWorkspaceState>;
|
|
27
|
+
export declare const browserWorkspaceState: BrowserWorkspaceSelectionState;
|
|
28
|
+
//# sourceMappingURL=state.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/browser/state.svelte.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAA6B,MAAM,0CAA0C,CAAC;AAE7G,OAAO,EAAoC,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE1F,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AAI7G,gFAAgF;AAChF,qBAAa,qBAAqB;IAGrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAFpC,OAAO,CAAC,SAAS,CAAqD;IACtE,OAAO,CAAC,WAAW,CAA2B;gBACjB,MAAM,CAAC,EAAE,sBAAsB,YAAA;IAG5D,IAAI,eAAe,IACK,MAAM,GAAG,IAAI,CAD2B;IAChE,IAAI,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,EAA6B;IAClE,IAAI,WAAW,IACK,MAAM,GAAG,IAAI,CADuB;IACxD,IAAI,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,EAAyB;IAC1D,IAAI,aAAa,IACK,MAAM,GAAG,IAAI,CADyB;IAC5D,IAAI,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,EAAgC;IACnE,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAItC,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIlC,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIzC,KAAK,IAAI,IAAI;IAIb,OAAO,IAAI,IAAI;CACf;AAED,MAAM,MAAM,8BAA8B,GAAG,IAAI,CAAC,qBAAqB,EACtE,iBAAiB,GAAG,aAAa,GAAG,eAAe,GAAG,eAAe,GAAG,WAAW,GAAG,kBAAkB,GAAG,OAAO,CAAC,CAAC;AAErH,iFAAiF;AACjF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,qBAAqB,GAAG,qBAAqB,CAEhG;AACD,wBAAgB,wBAAwB,IAAI,8BAA8B,CAEzE;AACD,wBAAsB,2BAA2B,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAEvG;AAiBD,eAAO,MAAM,qBAAqB,EAAE,8BAWnC,CAAC"}
|