mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-29 03:13:37 +00:00
Surface missing bare Lobster workflow file paths instead of silently falling through to inline pipeline parsing. The runner now treats plain workflow file inputs as file paths, keeps inline commands with file-like arguments as pipelines, and preserves existing workflow file paths that contain spaces. Regression coverage covers missing bare workflow paths, inline false positives, and spaced workflow filenames. Fixes #68101. Based on and credits #68106 by @vvitovec. This replacement branch carries the focused fix forward because #68106 is dirty against current main and could not be repaired on the fork branch with available bot permissions. Validation: - node scripts/run-vitest.mjs extensions/lobster/src/lobster-runner.test.ts - autoreview clean: no accepted/actionable findings after the spaced-path fix - GitHub checks: 127 pass, 0 fail, 0 pending Co-authored-by: Viktor Vítovec <230458341+vvitovec@users.noreply.github.com>
Lobster (plugin)
Adds the lobster agent tool as an optional plugin tool.
Install
openclaw plugins install @openclaw/lobster
Restart the Gateway after installing or updating the plugin.
What this is
- Lobster is a standalone workflow shell (typed JSON-first pipelines + approvals/resume).
- This plugin integrates Lobster with OpenClaw without core changes.
Enable
Because this tool can trigger side effects (via workflows), it is registered with optional: true.
Enable it in an agent allowlist:
{
"agents": {
"list": [
{
"id": "main",
"tools": {
"allow": [
"lobster" // plugin id (enables all tools from this plugin)
]
}
}
]
}
}
Using openclaw.invoke (Lobster → OpenClaw tools)
Some Lobster pipelines may include a openclaw.invoke step to call back into OpenClaw tools/plugins (for example: gog for Google Workspace, gh for GitHub, message.send, etc.).
For this to work, the OpenClaw Gateway must expose the tool bridge endpoint and the target tool must be allowed by policy:
- OpenClaw provides an HTTP endpoint:
POST /tools/invoke. - The request is gated by gateway auth (e.g.
Authorization: Bearer …when token auth is enabled). - The invoked tool is gated by tool policy (global + per-agent + provider + group policy). If the tool is not allowed, OpenClaw returns
404 Tool not available.
Allowlisting recommended
To avoid letting workflows call arbitrary tools, set a tight allowlist on the agent that will be used by openclaw.invoke.
Example (allow only a small set of tools):
{
"agents": {
"list": [
{
"id": "main",
"tools": {
"allow": ["lobster", "web_fetch", "web_search", "gog", "gh"],
"deny": ["gateway"],
},
},
],
},
}
Notes:
- If
tools.allowis omitted or empty, it behaves like "allow everything (except denied)". For a real allowlist, set a non-emptyallow. - Tool names depend on which plugins you have installed/enabled.
Security
- Runs Lobster in process via the published
@clawdbot/lobster/coreruntime. - Does not manage OAuth/tokens.
- Uses timeouts, stdout caps, and strict JSON envelope parsing.
Docs
Package
- Plugin id:
lobster - Tool:
lobster - Package:
@openclaw/lobster - Minimum OpenClaw host:
2026.4.25