mirror of
https://github.com/moltbot/moltbot.git
synced 2026-04-21 05:32:53 +00:00
revert: remove TinyFish bundled plugin
This commit is contained in:
@@ -57374,160 +57374,6 @@
|
||||
"help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.",
|
||||
"hasChildren": false
|
||||
},
|
||||
{
|
||||
"path": "plugins.entries.tinyfish",
|
||||
"kind": "plugin",
|
||||
"type": "object",
|
||||
"required": false,
|
||||
"deprecated": false,
|
||||
"sensitive": false,
|
||||
"tags": [
|
||||
"advanced"
|
||||
],
|
||||
"label": "TinyFish",
|
||||
"help": "Hosted browser automation for complex public web workflows. (plugin: tinyfish)",
|
||||
"hasChildren": true
|
||||
},
|
||||
{
|
||||
"path": "plugins.entries.tinyfish.config",
|
||||
"kind": "plugin",
|
||||
"type": "object",
|
||||
"required": false,
|
||||
"deprecated": false,
|
||||
"sensitive": false,
|
||||
"tags": [
|
||||
"advanced"
|
||||
],
|
||||
"label": "TinyFish Config",
|
||||
"help": "Plugin-defined config payload for tinyfish.",
|
||||
"hasChildren": true
|
||||
},
|
||||
{
|
||||
"path": "plugins.entries.tinyfish.config.apiKey",
|
||||
"kind": "plugin",
|
||||
"type": [
|
||||
"object",
|
||||
"string"
|
||||
],
|
||||
"required": false,
|
||||
"deprecated": false,
|
||||
"sensitive": true,
|
||||
"tags": [
|
||||
"auth",
|
||||
"security"
|
||||
],
|
||||
"label": "TinyFish API Key",
|
||||
"help": "TinyFish API key for hosted browser automation (fallback: TINYFISH_API_KEY env var).",
|
||||
"hasChildren": false
|
||||
},
|
||||
{
|
||||
"path": "plugins.entries.tinyfish.config.baseUrl",
|
||||
"kind": "plugin",
|
||||
"type": "string",
|
||||
"required": false,
|
||||
"deprecated": false,
|
||||
"sensitive": false,
|
||||
"tags": [
|
||||
"advanced",
|
||||
"url-secret"
|
||||
],
|
||||
"label": "TinyFish Base URL",
|
||||
"help": "TinyFish API base URL override.",
|
||||
"hasChildren": false
|
||||
},
|
||||
{
|
||||
"path": "plugins.entries.tinyfish.enabled",
|
||||
"kind": "plugin",
|
||||
"type": "boolean",
|
||||
"required": false,
|
||||
"deprecated": false,
|
||||
"sensitive": false,
|
||||
"tags": [
|
||||
"advanced"
|
||||
],
|
||||
"label": "Enable TinyFish",
|
||||
"hasChildren": false
|
||||
},
|
||||
{
|
||||
"path": "plugins.entries.tinyfish.hooks",
|
||||
"kind": "plugin",
|
||||
"type": "object",
|
||||
"required": false,
|
||||
"deprecated": false,
|
||||
"sensitive": false,
|
||||
"tags": [
|
||||
"advanced"
|
||||
],
|
||||
"label": "Plugin Hook Policy",
|
||||
"help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.",
|
||||
"hasChildren": true
|
||||
},
|
||||
{
|
||||
"path": "plugins.entries.tinyfish.hooks.allowPromptInjection",
|
||||
"kind": "plugin",
|
||||
"type": "boolean",
|
||||
"required": false,
|
||||
"deprecated": false,
|
||||
"sensitive": false,
|
||||
"tags": [
|
||||
"access"
|
||||
],
|
||||
"label": "Allow Prompt Injection Hooks",
|
||||
"help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.",
|
||||
"hasChildren": false
|
||||
},
|
||||
{
|
||||
"path": "plugins.entries.tinyfish.subagent",
|
||||
"kind": "plugin",
|
||||
"type": "object",
|
||||
"required": false,
|
||||
"deprecated": false,
|
||||
"sensitive": false,
|
||||
"tags": [
|
||||
"advanced"
|
||||
],
|
||||
"label": "Plugin Subagent Policy",
|
||||
"help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.",
|
||||
"hasChildren": true
|
||||
},
|
||||
{
|
||||
"path": "plugins.entries.tinyfish.subagent.allowedModels",
|
||||
"kind": "plugin",
|
||||
"type": "array",
|
||||
"required": false,
|
||||
"deprecated": false,
|
||||
"sensitive": false,
|
||||
"tags": [
|
||||
"access"
|
||||
],
|
||||
"label": "Plugin Subagent Allowed Models",
|
||||
"help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.",
|
||||
"hasChildren": true
|
||||
},
|
||||
{
|
||||
"path": "plugins.entries.tinyfish.subagent.allowedModels.*",
|
||||
"kind": "plugin",
|
||||
"type": "string",
|
||||
"required": false,
|
||||
"deprecated": false,
|
||||
"sensitive": false,
|
||||
"tags": [],
|
||||
"hasChildren": false
|
||||
},
|
||||
{
|
||||
"path": "plugins.entries.tinyfish.subagent.allowModelOverride",
|
||||
"kind": "plugin",
|
||||
"type": "boolean",
|
||||
"required": false,
|
||||
"deprecated": false,
|
||||
"sensitive": false,
|
||||
"tags": [
|
||||
"access"
|
||||
],
|
||||
"label": "Allow Plugin Subagent Model Override",
|
||||
"help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.",
|
||||
"hasChildren": false
|
||||
},
|
||||
{
|
||||
"path": "plugins.entries.tlon",
|
||||
"kind": "plugin",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{"generatedBy":"scripts/generate-config-doc-baseline.ts","recordType":"meta","totalPaths":5778}
|
||||
{"generatedBy":"scripts/generate-config-doc-baseline.ts","recordType":"meta","totalPaths":5767}
|
||||
{"recordType":"path","path":"acp","kind":"core","type":"object","required":false,"deprecated":false,"sensitive":false,"tags":["advanced"],"label":"ACP","help":"ACP runtime controls for enabling dispatch, selecting backends, constraining allowed agent targets, and tuning streamed turn projection behavior.","hasChildren":true}
|
||||
{"recordType":"path","path":"acp.allowedAgents","kind":"core","type":"array","required":false,"deprecated":false,"sensitive":false,"tags":["access"],"label":"ACP Allowed Agents","help":"Allowlist of ACP target agent ids permitted for ACP runtime sessions. Empty means no additional allowlist restriction.","hasChildren":true}
|
||||
{"recordType":"path","path":"acp.allowedAgents.*","kind":"core","type":"string","required":false,"deprecated":false,"sensitive":false,"tags":[],"hasChildren":false}
|
||||
@@ -4914,17 +4914,6 @@
|
||||
{"recordType":"path","path":"plugins.entries.thread-ownership.subagent.allowedModels","kind":"plugin","type":"array","required":false,"deprecated":false,"sensitive":false,"tags":["access"],"label":"Plugin Subagent Allowed Models","help":"Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.","hasChildren":true}
|
||||
{"recordType":"path","path":"plugins.entries.thread-ownership.subagent.allowedModels.*","kind":"plugin","type":"string","required":false,"deprecated":false,"sensitive":false,"tags":[],"hasChildren":false}
|
||||
{"recordType":"path","path":"plugins.entries.thread-ownership.subagent.allowModelOverride","kind":"plugin","type":"boolean","required":false,"deprecated":false,"sensitive":false,"tags":["access"],"label":"Allow Plugin Subagent Model Override","help":"Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.","hasChildren":false}
|
||||
{"recordType":"path","path":"plugins.entries.tinyfish","kind":"plugin","type":"object","required":false,"deprecated":false,"sensitive":false,"tags":["advanced"],"label":"TinyFish","help":"Hosted browser automation for complex public web workflows. (plugin: tinyfish)","hasChildren":true}
|
||||
{"recordType":"path","path":"plugins.entries.tinyfish.config","kind":"plugin","type":"object","required":false,"deprecated":false,"sensitive":false,"tags":["advanced"],"label":"TinyFish Config","help":"Plugin-defined config payload for tinyfish.","hasChildren":true}
|
||||
{"recordType":"path","path":"plugins.entries.tinyfish.config.apiKey","kind":"plugin","type":["object","string"],"required":false,"deprecated":false,"sensitive":true,"tags":["auth","security"],"label":"TinyFish API Key","help":"TinyFish API key for hosted browser automation (fallback: TINYFISH_API_KEY env var).","hasChildren":false}
|
||||
{"recordType":"path","path":"plugins.entries.tinyfish.config.baseUrl","kind":"plugin","type":"string","required":false,"deprecated":false,"sensitive":false,"tags":["advanced","url-secret"],"label":"TinyFish Base URL","help":"TinyFish API base URL override.","hasChildren":false}
|
||||
{"recordType":"path","path":"plugins.entries.tinyfish.enabled","kind":"plugin","type":"boolean","required":false,"deprecated":false,"sensitive":false,"tags":["advanced"],"label":"Enable TinyFish","hasChildren":false}
|
||||
{"recordType":"path","path":"plugins.entries.tinyfish.hooks","kind":"plugin","type":"object","required":false,"deprecated":false,"sensitive":false,"tags":["advanced"],"label":"Plugin Hook Policy","help":"Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.","hasChildren":true}
|
||||
{"recordType":"path","path":"plugins.entries.tinyfish.hooks.allowPromptInjection","kind":"plugin","type":"boolean","required":false,"deprecated":false,"sensitive":false,"tags":["access"],"label":"Allow Prompt Injection Hooks","help":"Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.","hasChildren":false}
|
||||
{"recordType":"path","path":"plugins.entries.tinyfish.subagent","kind":"plugin","type":"object","required":false,"deprecated":false,"sensitive":false,"tags":["advanced"],"label":"Plugin Subagent Policy","help":"Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.","hasChildren":true}
|
||||
{"recordType":"path","path":"plugins.entries.tinyfish.subagent.allowedModels","kind":"plugin","type":"array","required":false,"deprecated":false,"sensitive":false,"tags":["access"],"label":"Plugin Subagent Allowed Models","help":"Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.","hasChildren":true}
|
||||
{"recordType":"path","path":"plugins.entries.tinyfish.subagent.allowedModels.*","kind":"plugin","type":"string","required":false,"deprecated":false,"sensitive":false,"tags":[],"hasChildren":false}
|
||||
{"recordType":"path","path":"plugins.entries.tinyfish.subagent.allowModelOverride","kind":"plugin","type":"boolean","required":false,"deprecated":false,"sensitive":false,"tags":["access"],"label":"Allow Plugin Subagent Model Override","help":"Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.","hasChildren":false}
|
||||
{"recordType":"path","path":"plugins.entries.tlon","kind":"plugin","type":"object","required":false,"deprecated":false,"sensitive":false,"tags":["advanced"],"label":"@openclaw/tlon","help":"OpenClaw Tlon/Urbit channel plugin (plugin: tlon)","hasChildren":true}
|
||||
{"recordType":"path","path":"plugins.entries.tlon.config","kind":"plugin","type":"object","required":false,"deprecated":false,"sensitive":false,"tags":["advanced"],"label":"@openclaw/tlon Config","help":"Plugin-defined config payload for tlon.","hasChildren":false}
|
||||
{"recordType":"path","path":"plugins.entries.tlon.enabled","kind":"plugin","type":"boolean","required":false,"deprecated":false,"sensitive":false,"tags":["advanced"],"label":"Enable @openclaw/tlon","hasChildren":false}
|
||||
|
||||
@@ -302,9 +302,5 @@
|
||||
{
|
||||
"source": "Testing",
|
||||
"target": "测试"
|
||||
},
|
||||
{
|
||||
"source": "TinyFish",
|
||||
"target": "TinyFish"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1157,8 +1157,7 @@
|
||||
"tools/kimi-search",
|
||||
"tools/perplexity-search",
|
||||
"tools/searxng-search",
|
||||
"tools/tavily",
|
||||
"tools/tinyfish"
|
||||
"tools/tavily"
|
||||
]
|
||||
},
|
||||
"tools/btw",
|
||||
|
||||
@@ -1,125 +0,0 @@
|
||||
---
|
||||
summary: "TinyFish plugin: hosted browser automation for public multi-step workflows"
|
||||
read_when:
|
||||
- You want hosted browser automation from OpenClaw
|
||||
- You are configuring or developing the TinyFish plugin
|
||||
title: "TinyFish"
|
||||
---
|
||||
|
||||
# TinyFish
|
||||
|
||||
TinyFish adds a hosted browser automation tool to OpenClaw for complex public
|
||||
web workflows: multi-step navigation, forms, JS-heavy pages, geo-aware proxy
|
||||
routing, and structured extraction.
|
||||
|
||||
Quick mental model:
|
||||
|
||||
- Enable the bundled plugin
|
||||
- Configure `plugins.entries.tinyfish.config`
|
||||
- Use the `tinyfish_automation` tool for public browser workflows
|
||||
- Get back `run_id`, `status`, `result`, and a live `streaming_url` when TinyFish provides one
|
||||
|
||||
## Where it runs
|
||||
|
||||
The TinyFish plugin runs inside the Gateway process, but the browser automation
|
||||
it triggers runs on TinyFish's hosted infrastructure.
|
||||
|
||||
If you use a remote Gateway, enable and configure the plugin on the machine
|
||||
running the Gateway.
|
||||
|
||||
## Enable
|
||||
|
||||
TinyFish ships as a bundled plugin and is disabled by default.
|
||||
|
||||
```json5
|
||||
{
|
||||
plugins: {
|
||||
entries: {
|
||||
tinyfish: {
|
||||
enabled: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
Restart the Gateway after enabling it.
|
||||
|
||||
## Config
|
||||
|
||||
Set config under `plugins.entries.tinyfish.config`:
|
||||
|
||||
```json5
|
||||
{
|
||||
plugins: {
|
||||
entries: {
|
||||
tinyfish: {
|
||||
enabled: true,
|
||||
config: {
|
||||
apiKey: "tf_live_...",
|
||||
// Optional; defaults to https://agent.tinyfish.ai
|
||||
baseUrl: "https://agent.tinyfish.ai",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
You can also supply the API key through `TINYFISH_API_KEY`.
|
||||
|
||||
## Tool
|
||||
|
||||
The plugin registers one tool:
|
||||
|
||||
### tinyfish_automation
|
||||
|
||||
Run hosted browser automation against a public website.
|
||||
|
||||
| Parameter | Required | Description |
|
||||
| ----------------- | -------- | ----------------------------------------------------------------- |
|
||||
| `url` | Yes | Target public website URL |
|
||||
| `goal` | Yes | Natural-language description of what to accomplish |
|
||||
| `browser_profile` | No | `lite` (default) or `stealth` (anti-bot mode) |
|
||||
| `proxy_config` | No | Object with `enabled` (boolean) and `country_code` (2-letter ISO) |
|
||||
|
||||
Return shape:
|
||||
|
||||
| Field | Description |
|
||||
| --------------- | ----------------------------------------------------- |
|
||||
| `run_id` | TinyFish run identifier |
|
||||
| `status` | `COMPLETED`, `FAILED`, or other terminal status |
|
||||
| `result` | Structured extraction result (when successful) |
|
||||
| `error` | Error details (when failed) |
|
||||
| `streaming_url` | Live browser session URL (when TinyFish provides one) |
|
||||
| `help_url` | Link to relevant TinyFish docs (on error) |
|
||||
| `help_message` | Human-readable help hint (on error) |
|
||||
|
||||
## Good fits
|
||||
|
||||
Use TinyFish when the built-in browser is not the best surface:
|
||||
|
||||
- Complex public forms with multiple steps
|
||||
- JS-heavy pages that need real browser rendering
|
||||
- Multi-step workflows with many clicks and navigation
|
||||
- Region-sensitive browsing that benefits from proxy routing
|
||||
- Structured extraction from live browser sessions
|
||||
|
||||
Prefer other tools when:
|
||||
|
||||
- A simple HTTP fetch or search is enough (`web_fetch`, `web_search`)
|
||||
- You want direct local or remote CDP control with the built-in [Browser](/tools/browser)
|
||||
- You need persistent authenticated browser sessions
|
||||
|
||||
## Limitations
|
||||
|
||||
- TinyFish targets public web workflows; persistent authenticated sessions are out of scope
|
||||
- CAPTCHA solving is not supported
|
||||
- Browser session state does not persist across runs
|
||||
- Batch and parallel runs are out of scope for the initial bundled plugin
|
||||
|
||||
## Example prompts
|
||||
|
||||
- "Open example.com/pricing and extract every plan name and price as JSON."
|
||||
- "Go to example.com/contact, fill the public inquiry form, and summarize what happened."
|
||||
- "Visit example.com/search, switch the region to Canada, and extract the top five public listings."
|
||||
Reference in New Issue
Block a user