mirror of
https://github.com/farcasclaudiu/openclaw.git
synced 2026-06-29 01:02:03 +03:00
chore: Run pnpm format:fix.
This commit is contained in:
@@ -5,7 +5,7 @@ Adds the `lobster` agent tool as an **optional** plugin tool.
|
||||
## What this is
|
||||
|
||||
- Lobster is a standalone workflow shell (typed JSON-first pipelines + approvals/resume).
|
||||
- This plugin integrates Lobster with OpenClaw *without core changes*.
|
||||
- This plugin integrates Lobster with OpenClaw _without core changes_.
|
||||
|
||||
## Enable
|
||||
|
||||
@@ -53,22 +53,17 @@ Example (allow only a small set of tools):
|
||||
{
|
||||
"id": "main",
|
||||
"tools": {
|
||||
"allow": [
|
||||
"lobster",
|
||||
"web_fetch",
|
||||
"web_search",
|
||||
"gog",
|
||||
"gh"
|
||||
],
|
||||
"deny": ["gateway"]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
"allow": ["lobster", "web_fetch", "web_search", "gog", "gh"],
|
||||
"deny": ["gateway"],
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
Notes:
|
||||
|
||||
- If `tools.allow` is omitted or empty, it behaves like "allow everything (except denied)". For a real allowlist, set a **non-empty** `allow`.
|
||||
- Tool names depend on which plugins you have installed/enabled.
|
||||
|
||||
|
||||
@@ -8,13 +8,13 @@ Lobster executes multi-step workflows with approval checkpoints. Use it when:
|
||||
|
||||
## When to use Lobster
|
||||
|
||||
| User intent | Use Lobster? |
|
||||
|-------------|--------------|
|
||||
| "Triage my email" | Yes — multi-step, may send replies |
|
||||
| "Send a message" | No — single action, use message tool directly |
|
||||
| "Check my email every morning and ask before replying" | Yes — scheduled workflow with approval |
|
||||
| "What's the weather?" | No — simple query |
|
||||
| "Monitor this PR and notify me of changes" | Yes — stateful, recurring |
|
||||
| User intent | Use Lobster? |
|
||||
| ------------------------------------------------------ | --------------------------------------------- |
|
||||
| "Triage my email" | Yes — multi-step, may send replies |
|
||||
| "Send a message" | No — single action, use message tool directly |
|
||||
| "Check my email every morning and ask before replying" | Yes — scheduled workflow with approval |
|
||||
| "What's the weather?" | No — simple query |
|
||||
| "Monitor this PR and notify me of changes" | Yes — stateful, recurring |
|
||||
|
||||
## Basic usage
|
||||
|
||||
@@ -28,6 +28,7 @@ Lobster executes multi-step workflows with approval checkpoints. Use it when:
|
||||
```
|
||||
|
||||
Returns structured result:
|
||||
|
||||
```json
|
||||
{
|
||||
"protocolVersion": 1,
|
||||
@@ -41,6 +42,7 @@ Returns structured result:
|
||||
### Handle approval
|
||||
|
||||
If the workflow needs approval:
|
||||
|
||||
```json
|
||||
{
|
||||
"status": "needs_approval",
|
||||
@@ -54,6 +56,7 @@ If the workflow needs approval:
|
||||
```
|
||||
|
||||
Present the prompt to the user. If they approve:
|
||||
|
||||
```json
|
||||
{
|
||||
"action": "resume",
|
||||
@@ -65,15 +68,19 @@ Present the prompt to the user. If they approve:
|
||||
## Example workflows
|
||||
|
||||
### Email triage
|
||||
|
||||
```
|
||||
gog.gmail.search --query 'newer_than:1d' --max 20 | email.triage
|
||||
```
|
||||
|
||||
Fetches recent emails, classifies into buckets (needs_reply, needs_action, fyi).
|
||||
|
||||
### Email triage with approval gate
|
||||
|
||||
```
|
||||
gog.gmail.search --query 'newer_than:1d' | email.triage | approve --prompt 'Process these?'
|
||||
```
|
||||
|
||||
Same as above, but halts for approval before returning.
|
||||
|
||||
## Key behaviors
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"name": "@openclaw/lobster",
|
||||
"version": "2026.1.30",
|
||||
"type": "module",
|
||||
"description": "Lobster workflow tool plugin (typed pipelines + resumable approvals)",
|
||||
"type": "module",
|
||||
"openclaw": {
|
||||
"extensions": [
|
||||
"./index.ts"
|
||||
|
||||
@@ -192,9 +192,11 @@ export function createLobsterTool(api: OpenClawPluginApi) {
|
||||
const execPath = resolveExecutablePath(
|
||||
typeof params.lobsterPath === "string" ? params.lobsterPath : undefined,
|
||||
);
|
||||
const cwd = typeof params.cwd === "string" && params.cwd.trim() ? params.cwd.trim() : process.cwd();
|
||||
const cwd =
|
||||
typeof params.cwd === "string" && params.cwd.trim() ? params.cwd.trim() : process.cwd();
|
||||
const timeoutMs = typeof params.timeoutMs === "number" ? params.timeoutMs : 20_000;
|
||||
const maxStdoutBytes = typeof params.maxStdoutBytes === "number" ? params.maxStdoutBytes : 512_000;
|
||||
const maxStdoutBytes =
|
||||
typeof params.maxStdoutBytes === "number" ? params.maxStdoutBytes : 512_000;
|
||||
|
||||
const argv = (() => {
|
||||
if (action === "run") {
|
||||
|
||||
Reference in New Issue
Block a user