Split out of the agent repository into its own project. The two commits that introduced and reworked the extension are preserved. The extension could not build on its own: prebuild called `python ../../tools/generate_tool_defs.py`, and the 31 tool schemas lived outside the tree — in a directory that was under no version control at all. - tools/schema/*.json and tools/generate_tool_defs.py now live here. They describe browser tools, so they belong with the extension. - The generator writes TypeScript into this repo and, when the agent repo is checked out next to it, the Python tool definitions there as well. The presence check looks for agent/tools.py: checking only for the directory was useless — it is almost always true, and the generator then wrote into an arbitrary neighbouring folder (verified, then fixed). - Added .gitignore: dist/, node_modules/, and *.token — the MCP bridge token is a runtime secret. Verified: `npm run build` from a clean checkout with and without the agent repo present; tsc reports no errors. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
29 lines
852 B
JSON
29 lines
852 B
JSON
{
|
|
"name": "browser_file_upload",
|
|
"description": "Attaches local files to an <input type=\"file\"> via CDP, as if picked in the OS dialog, and fires a change event. Paths must be absolute on the machine running the browser. Never try to open the native file dialog by clicking — it cannot be operated.",
|
|
"requires_confirmation": true,
|
|
"inputSchema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"selector": {
|
|
"type": "string",
|
|
"description": "CSS selector of the file input."
|
|
},
|
|
"ref_id": {
|
|
"type": "string",
|
|
"description": "ref_id of the file input. Preferred."
|
|
},
|
|
"files": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "Absolute paths on the browser machine."
|
|
}
|
|
},
|
|
"required": [
|
|
"files"
|
|
]
|
|
}
|
|
}
|