Files
openclaw/extensions/tinyfish/openclaw.plugin.json
Simantak Dabhade b880118d2d feat: add TinyFish as bundled browser automation plugin (#58645)
* feat: add TinyFish as bundled browser automation plugin

Add a default-off bundled `tinyfish` plugin with one tool
(`tinyfish_automation`) for hosted browser automation of complex public
web workflows. Follows the existing plugin architecture pattern.

- Plugin entry, manifest with contracts, config schema, SecretRef support
- SSE stream parser with COMPLETE-terminal, SSRF guards, credential rejection
- Bundled skill with escalation guidance (web_fetch -> web_search -> tinyfish -> browser)
- Docs page, labeler rule, glossary entry, changelog entry
- 21 tests covering request serialization, auth, security, streaming, and error paths

Closes #41300

* plugins: address review feedback and regenerate baselines

- Split API_INTEGRATION into TINYFISH_API_INTEGRATION and CLIENT_SOURCE
  for semantic clarity (Greptile P2)
- Wrap post-finally parseEventBlock in try/catch so trailing malformed
  data does not mask "stream ended before COMPLETE" error (Greptile P2)
- Regenerate config-baseline and plugin-sdk-api-baseline for new plugin

---------

Co-authored-by: Simantak Dabhade <simantak@mac.local>
2026-04-02 01:46:05 -04:00

42 lines
1.1 KiB
JSON

{
"id": "tinyfish",
"name": "TinyFish",
"description": "Hosted browser automation for complex public web workflows.",
"skills": ["./skills"],
"providerAuthEnvVars": {
"tinyfish": ["TINYFISH_API_KEY"]
},
"contracts": {
"tools": ["tinyfish_automation"]
},
"uiHints": {
"apiKey": {
"label": "TinyFish API Key",
"help": "TinyFish API key for hosted browser automation (fallback: TINYFISH_API_KEY env var).",
"sensitive": true,
"placeholder": "tf_live_..."
},
"baseUrl": {
"label": "TinyFish Base URL",
"help": "TinyFish API base URL override.",
"advanced": true,
"placeholder": "https://agent.tinyfish.ai"
}
},
"configSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"apiKey": {
"type": ["string", "object"],
"description": "TinyFish API key. You can also set TINYFISH_API_KEY."
},
"baseUrl": {
"type": "string",
"minLength": 1,
"description": "Optional TinyFish API base URL. Defaults to https://agent.tinyfish.ai."
}
}
}
}