mirror of
https://github.com/Tencent/BrowserSkill.git
synced 2026-09-10 13:01:23 +08:00
* feat(emulate): add mobile device emulation via CDP Emulation domain Add `bsk emulate` so agents can debug mobile page behaviour by emulating a device environment on a session tab: - Viewport metrics (Emulation.setDeviceMetricsOverride), User-Agent (Emulation.setUserAgentOverride, optional accept-language and UA client-hints metadata), and touch (Emulation.setTouchEmulationEnabled with maxTouchPoints). - Seven CLI-side device presets (iphone-14, iphone-14-pro-max, iphone-se, pixel-7, galaxy-s23, ipad-mini, galaxy-tab-s8) via --device; manual flags (--width/--height/--dpr/--mobile/--ua/ --accept-language/--touch/--max-touch-points) work standalone or override individual preset fields. - `bsk emulate --off` clears every override (clearDeviceMetricsOverride + touch disabled + empty UA override) and restores the real environment. - Overrides are per-tab (CDP per-target) and not inherited by new tabs; the result JSON carries a note reminding agents to re-apply. Wire: new tool.emulate method end-to-end (bsk-protocol types + JSON schemas + Method::ToolEmulate classified BrowserMutation, daemon forwarding, CLI subcommand, extension tool handler + ChromiumCdp Emulation wrappers, dispatcher registration), docs in both SKILL.md copies, and unit tests on every layer. * refine(emulate): merge per-tab state and align preset override semantics - extension: remember the applied emulation state per tab and merge each new request onto it field by field before applying, so a later --width/--height no longer resets an earlier preset's dpr/mobile; --off clears the stored state along with the CDP overrides - extension: cdp_failed errors now note that already-applied overrides were not rolled back and can be reset with --off - cli: validate width/height pairing and metric requirements on the merged preset+flags result, so --device iphone-14 --width 500 keeps the preset height - cli: add --no-mobile/--no-touch (conflicting with --mobile/--touch) to turn preset mobile/touch fields back off - docs: describe the merge behaviour, --no-mobile/--no-touch and --off state clearing in both SKILL.md copies
32 lines
591 B
Rust
32 lines
591 B
Rust
//! Typed params/results for the `tool.*` RPC methods (§7).
|
|
|
|
pub mod console;
|
|
pub mod dialog;
|
|
pub mod emulate;
|
|
pub mod human_loop;
|
|
pub mod interaction;
|
|
pub mod navigation;
|
|
pub mod network;
|
|
pub mod observation;
|
|
pub mod record;
|
|
pub mod script;
|
|
pub mod session;
|
|
pub mod tabs;
|
|
pub mod waits;
|
|
pub mod window;
|
|
|
|
pub use console::*;
|
|
pub use dialog::*;
|
|
pub use emulate::*;
|
|
pub use human_loop::*;
|
|
pub use interaction::*;
|
|
pub use navigation::*;
|
|
pub use network::*;
|
|
pub use observation::*;
|
|
pub use record::*;
|
|
pub use script::*;
|
|
pub use session::*;
|
|
pub use tabs::*;
|
|
pub use waits::*;
|
|
pub use window::*;
|