feat: add snapshot size limits and optional snapshots to fix token overflow
Implements comprehensive solution for browser_click and other interactive tools returning massive responses (37K+ tokens) due to full page snapshots. Features implemented: 1. **Snapshot size limits** (--max-snapshot-tokens, default 10k) - Automatically truncates large snapshots with helpful messages - Preserves essential info (URL, title, errors) when truncating - Shows exact token counts and configuration suggestions 2. **Optional snapshots** (--no-snapshots) - Disables automatic snapshots after interactive operations - browser_snapshot tool always works for explicit snapshots - Maintains backward compatibility (snapshots enabled by default) 3. **Differential snapshots** (--differential-snapshots) - Shows only changes since last snapshot instead of full page - Tracks URL, title, DOM structure, and console activity - Significantly reduces token usage for incremental operations 4. **Enhanced tool descriptions** - All interactive tools now document snapshot behavior - Clear guidance on when snapshots are included/excluded - Helpful suggestions for users experiencing token limits Configuration options: - CLI: --no-snapshots, --max-snapshot-tokens N, --differential-snapshots - ENV: PLAYWRIGHT_MCP_INCLUDE_SNAPSHOTS, PLAYWRIGHT_MCP_MAX_SNAPSHOT_TOKENS, etc. - Config file: includeSnapshots, maxSnapshotTokens, differentialSnapshots Fixes token overflow errors while providing users full control over snapshot behavior and response sizes. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
7d97fc3e3b
commit
574fdc4959
10 changed files with 301 additions and 67 deletions
21
config.d.ts
vendored
21
config.d.ts
vendored
|
|
@ -122,4 +122,25 @@ export type Config = {
|
|||
* Whether to send image responses to the client. Can be "allow", "omit", or "auto". Defaults to "auto", which sends images if the client can display them.
|
||||
*/
|
||||
imageResponses?: 'allow' | 'omit';
|
||||
|
||||
/**
|
||||
* Whether to include page snapshots automatically after interactive operations like clicks.
|
||||
* When disabled, tools will run without generating snapshots unless explicitly requested.
|
||||
* Default is true for backward compatibility.
|
||||
*/
|
||||
includeSnapshots?: boolean;
|
||||
|
||||
/**
|
||||
* Maximum number of tokens allowed in page snapshots before truncation.
|
||||
* When a snapshot exceeds this limit, it will be truncated with a helpful message.
|
||||
* Use 0 to disable truncation. Default is 10000.
|
||||
*/
|
||||
maxSnapshotTokens?: number;
|
||||
|
||||
/**
|
||||
* Enable differential snapshots that only show changes since the last snapshot.
|
||||
* When enabled, tools will show page changes instead of full snapshots.
|
||||
* Default is false.
|
||||
*/
|
||||
differentialSnapshots?: boolean;
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue