feat: add JSON Schema for agent-browser config files (#1242)
* feat: add JSON Schema for agent-browser config files Adds agent-browser.schema.json describing all config options with types and descriptions. Enables IDE autocomplete and validation when referenced via $schema in agent-browser.json or ~/.agent-browser/config.json. README and docs site updated to document the schema reference. * fix(schema): use integer type for maxOutput to match usize deserialization Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com> --------- Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>
This commit is contained in:
co-authored by
vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>
parent
19808d08f8
commit
4f9edf9337
@@ -0,0 +1,166 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "Agent Browser Configuration",
|
||||
"description": "Configuration file for agent-browser (e.g., agent-browser.json or ~/.agent-browser/config.json)",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"headed": {
|
||||
"type": "boolean",
|
||||
"description": "Show browser window instead of running headless."
|
||||
},
|
||||
"json": {
|
||||
"type": "boolean",
|
||||
"description": "Output in JSON format."
|
||||
},
|
||||
"debug": {
|
||||
"type": "boolean",
|
||||
"description": "Enable debug output."
|
||||
},
|
||||
"session": {
|
||||
"type": "string",
|
||||
"description": "Session identifier."
|
||||
},
|
||||
"sessionName": {
|
||||
"type": "string",
|
||||
"description": "Auto-save/load state persistence name."
|
||||
},
|
||||
"executablePath": {
|
||||
"type": "string",
|
||||
"description": "Path to a custom browser executable."
|
||||
},
|
||||
"extensions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Paths to browser extensions. Extensions from user-level and project-level configs are concatenated."
|
||||
},
|
||||
"profile": {
|
||||
"type": "string",
|
||||
"description": "Path to the browser profile data directory."
|
||||
},
|
||||
"state": {
|
||||
"type": "string",
|
||||
"description": "Path to load/save browser state."
|
||||
},
|
||||
"proxy": {
|
||||
"type": "string",
|
||||
"description": "Proxy server URL (e.g., http://localhost:8080)."
|
||||
},
|
||||
"proxyBypass": {
|
||||
"type": "string",
|
||||
"description": "Comma-separated domains to bypass the proxy (e.g., localhost,*.internal.com)."
|
||||
},
|
||||
"args": {
|
||||
"type": "string",
|
||||
"description": "Additional comma-separated launch arguments for the browser."
|
||||
},
|
||||
"userAgent": {
|
||||
"type": "string",
|
||||
"description": "Custom User-Agent string."
|
||||
},
|
||||
"provider": {
|
||||
"type": "string",
|
||||
"description": "Provider to use, such as 'ios'."
|
||||
},
|
||||
"device": {
|
||||
"type": "string",
|
||||
"description": "Device name or identifier for emulation or providers (e.g., 'iPhone 16 Pro')."
|
||||
},
|
||||
"ignoreHttpsErrors": {
|
||||
"type": "boolean",
|
||||
"description": "Ignore HTTPS errors during navigation."
|
||||
},
|
||||
"allowFileAccess": {
|
||||
"type": "boolean",
|
||||
"description": "Allow file:// URLs to access local files."
|
||||
},
|
||||
"cdp": {
|
||||
"type": "string",
|
||||
"description": "Chrome DevTools Protocol endpoint URL."
|
||||
},
|
||||
"autoConnect": {
|
||||
"type": "boolean",
|
||||
"description": "Auto-discover and connect to a running Chrome instance."
|
||||
},
|
||||
"annotate": {
|
||||
"type": "boolean",
|
||||
"description": "Annotated screenshot with numbered element labels."
|
||||
},
|
||||
"colorScheme": {
|
||||
"type": "string",
|
||||
"enum": ["dark", "light", "no-preference"],
|
||||
"description": "Color scheme preference."
|
||||
},
|
||||
"downloadPath": {
|
||||
"type": "string",
|
||||
"description": "Default directory for browser downloads."
|
||||
},
|
||||
"contentBoundaries": {
|
||||
"type": "boolean",
|
||||
"description": "Wrap page output in boundary markers for LLM safety."
|
||||
},
|
||||
"maxOutput": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"description": "Max characters for page output (truncates beyond limit)."
|
||||
},
|
||||
"allowedDomains": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Allowed domain patterns (e.g., ['example.com', '*.example.com'])."
|
||||
},
|
||||
"actionPolicy": {
|
||||
"type": "string",
|
||||
"description": "Path to action policy JSON file."
|
||||
},
|
||||
"confirmActions": {
|
||||
"type": "string",
|
||||
"description": "Comma-separated action categories requiring confirmation."
|
||||
},
|
||||
"confirmInteractive": {
|
||||
"type": "boolean",
|
||||
"description": "Enable interactive confirmation prompts (auto-denies if stdin is not a TTY)."
|
||||
},
|
||||
"engine": {
|
||||
"type": "string",
|
||||
"enum": ["chrome", "lightpanda"],
|
||||
"default": "chrome",
|
||||
"description": "Browser engine to use."
|
||||
},
|
||||
"screenshotDir": {
|
||||
"type": "string",
|
||||
"description": "Default screenshot output directory."
|
||||
},
|
||||
"screenshotQuality": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 100,
|
||||
"description": "JPEG quality for screenshots (0-100)."
|
||||
},
|
||||
"screenshotFormat": {
|
||||
"type": "string",
|
||||
"enum": ["png", "jpeg"],
|
||||
"description": "Screenshot format."
|
||||
},
|
||||
"idleTimeout": {
|
||||
"type": "string",
|
||||
"description": "Auto-shutdown the daemon after N ms of inactivity (e.g., '60000')."
|
||||
},
|
||||
"model": {
|
||||
"type": "string",
|
||||
"description": "AI model for chat command (e.g., 'openai/gpt-4o')."
|
||||
},
|
||||
"noAutoDialog": {
|
||||
"type": "boolean",
|
||||
"description": "Disable automatic dismissal of alert/beforeunload dialogs."
|
||||
},
|
||||
"headers": {
|
||||
"type": "string",
|
||||
"description": "Custom HTTP headers supplied as a JSON-formatted string."
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
}
|
||||
Reference in New Issue
Block a user