bereach-openclaw 0.2.10 → 0.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -12
- package/openclaw.plugin.json +2 -5
- package/package.json +1 -1
- package/src/tools/index.ts +13 -16
- package/src/types/bereach.d.ts +0 -15
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# BeReach — OpenClaw Plugin
|
|
2
2
|
|
|
3
|
-
LinkedIn outreach automation via [BeReach](https://berea.ch). Registers 33 in-process tools
|
|
3
|
+
LinkedIn outreach automation via [BeReach](https://berea.ch). Registers 33 in-process tools and auto-reply commands.
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
@@ -8,16 +8,31 @@ LinkedIn outreach automation via [BeReach](https://berea.ch). Registers 33 in-pr
|
|
|
8
8
|
openclaw plugins install bereach-openclaw
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
+
## Post-install checklist
|
|
12
|
+
|
|
13
|
+
1. **Configure** — Add `BEREACH_API_KEY` to `openclaw.json` (see [Setup](#setup)).
|
|
14
|
+
2. **Restart** — `openclaw gateway restart`
|
|
15
|
+
3. **New session** — Type `/new` in Telegram or chat so the agent sees the tools (existing sessions don't pick up new plugins).
|
|
16
|
+
|
|
11
17
|
## Upgrade
|
|
12
18
|
|
|
13
|
-
`openclaw plugins update bereach` can leave `node_modules` and `extensions/` out of sync (version mismatch → trim/crash errors). **Use uninstall + reinstall** instead
|
|
19
|
+
`openclaw plugins update bereach` can leave `node_modules` and `extensions/` out of sync (version mismatch → trim/crash errors). **Use uninstall + reinstall** instead.
|
|
20
|
+
|
|
21
|
+
**Before upgrading:** note your `BEREACH_API_KEY` — uninstall may remove `plugins.entries.bereach`.
|
|
14
22
|
|
|
15
23
|
```bash
|
|
24
|
+
# 1. Uninstall
|
|
16
25
|
openclaw plugins uninstall bereach
|
|
26
|
+
|
|
27
|
+
# 2. Reinstall latest
|
|
17
28
|
openclaw plugins install bereach-openclaw
|
|
29
|
+
|
|
30
|
+
# 3. Re-add config (API key + plugins.allow) in openclaw.json — see Setup above
|
|
31
|
+
# 4. Restart the Gateway
|
|
32
|
+
# 5. /new in Telegram or chat (new session picks up the plugin)
|
|
18
33
|
```
|
|
19
34
|
|
|
20
|
-
|
|
35
|
+
Verify versions match:
|
|
21
36
|
```bash
|
|
22
37
|
cat /data/.openclaw/node_modules/bereach-openclaw/package.json | grep version
|
|
23
38
|
cat /data/.openclaw/extensions/bereach/package.json | grep version
|
|
@@ -41,14 +56,11 @@ The API key can be set in 3 ways (in order of precedence):
|
|
|
41
56
|
}
|
|
42
57
|
}
|
|
43
58
|
}
|
|
44
|
-
},
|
|
45
|
-
"tools": {
|
|
46
|
-
"allow": ["bereach"]
|
|
47
59
|
}
|
|
48
60
|
}
|
|
49
61
|
```
|
|
50
62
|
|
|
51
|
-
> **Note:** `plugins.allow` loads the plugin
|
|
63
|
+
> **Note:** `plugins.allow` loads the plugin. Tools are auto-enabled when the plugin is loaded (no `tools.allow` needed).
|
|
52
64
|
|
|
53
65
|
**Skills + model (optional)** — `skills.entries` has no `model` field; model is set at the agent level. To use Sonnet for BeReach:
|
|
54
66
|
|
|
@@ -76,8 +88,18 @@ The API key can be set in 3 ways (in order of precedence):
|
|
|
76
88
|
|
|
77
89
|
Restart the Gateway after configuring.
|
|
78
90
|
|
|
91
|
+
**Important:** After install or restart, start a **new session** so the agent sees the tools. In Telegram or chat: type `/new`. Existing sessions don't pick up new plugins.
|
|
92
|
+
|
|
79
93
|
## Troubleshooting
|
|
80
94
|
|
|
95
|
+
### BeReach tools (`bereach_*`) not visible in my session
|
|
96
|
+
|
|
97
|
+
**First try:** `/new` in Telegram or chat — new sessions pick up plugins; old ones don't.
|
|
98
|
+
|
|
99
|
+
If that doesn't work:
|
|
100
|
+
- Restart the Gateway: `openclaw gateway restart`
|
|
101
|
+
- Then `/new` again
|
|
102
|
+
|
|
81
103
|
### "Cannot read properties of undefined (reading 'trim')" or "plugin disabled (not in allowlist)"
|
|
82
104
|
|
|
83
105
|
OpenClaw loads plugins from **two locations**:
|
|
@@ -135,17 +157,12 @@ These execute instantly without invoking the AI:
|
|
|
135
157
|
openclaw bereach status
|
|
136
158
|
```
|
|
137
159
|
|
|
138
|
-
### Campaign monitor
|
|
139
|
-
|
|
140
|
-
A background service polls active campaigns every 5 minutes and logs activity deltas (new actions since last check).
|
|
141
|
-
|
|
142
160
|
## What's included
|
|
143
161
|
|
|
144
162
|
| Component | Description |
|
|
145
163
|
| --- | --- |
|
|
146
164
|
| `src/tools/` | 33 tool definitions generated from OpenAPI |
|
|
147
165
|
| `src/commands/` | Auto-reply commands + CLI |
|
|
148
|
-
| `src/services/` | Campaign monitoring service |
|
|
149
166
|
| `skills/bereach/SKILL.md` | Main behavioral skill |
|
|
150
167
|
| `skills/bereach/sub/lead-magnet.md` | Lead magnet workflow |
|
|
151
168
|
| `skills/bereach/sdk-reference.md` | SDK method reference |
|
package/openclaw.plugin.json
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "bereach",
|
|
3
3
|
"name": "BeReach",
|
|
4
|
-
"version": "0.2.
|
|
5
|
-
"description": "LinkedIn outreach automation — 33 tools, auto-reply commands
|
|
4
|
+
"version": "0.2.13",
|
|
5
|
+
"description": "LinkedIn outreach automation — 33 tools, auto-reply commands",
|
|
6
6
|
"configSchema": {
|
|
7
7
|
"type": "object",
|
|
8
|
-
"required": [
|
|
9
|
-
"BEREACH_API_KEY"
|
|
10
|
-
],
|
|
11
8
|
"additionalProperties": false,
|
|
12
9
|
"properties": {
|
|
13
10
|
"BEREACH_API_KEY": {
|
package/package.json
CHANGED
package/src/tools/index.ts
CHANGED
|
@@ -4,25 +4,22 @@ import { definitions } from "./definitions";
|
|
|
4
4
|
/**
|
|
5
5
|
* Registers all 33 BeReach tools with the OpenClaw agent.
|
|
6
6
|
* Format per https://docs.openclaw.ai/plugins/agent-tools
|
|
7
|
-
* optional
|
|
7
|
+
* Tools are required (not optional) — auto-enabled when plugin is loaded. Simpler UX: no tools.allow needed.
|
|
8
8
|
*/
|
|
9
9
|
export function registerAllTools(api: any) {
|
|
10
10
|
for (const def of definitions) {
|
|
11
|
-
api.registerTool(
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
};
|
|
23
|
-
},
|
|
11
|
+
api.registerTool({
|
|
12
|
+
name: def.name,
|
|
13
|
+
description: def.description,
|
|
14
|
+
parameters: def.parameters,
|
|
15
|
+
async execute(_id: string, params: Record<string, unknown>) {
|
|
16
|
+
const client = getClient();
|
|
17
|
+
const [resource, method] = def.handler.split(".");
|
|
18
|
+
const result = await (client as any)[resource][method](params);
|
|
19
|
+
return {
|
|
20
|
+
content: [{ type: "text" as const, text: JSON.stringify(result, null, 2) }],
|
|
21
|
+
};
|
|
24
22
|
},
|
|
25
|
-
|
|
26
|
-
);
|
|
23
|
+
});
|
|
27
24
|
}
|
|
28
25
|
}
|
package/src/types/bereach.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
declare module "bereach" {
|
|
2
|
-
interface BereachOptions {
|
|
3
|
-
token: string;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
export class Bereach {
|
|
7
|
-
constructor(options: BereachOptions);
|
|
8
|
-
linkedinScrapers: Record<string, (params: any) => Promise<any>>;
|
|
9
|
-
linkedinActions: Record<string, (params: any) => Promise<any>>;
|
|
10
|
-
linkedinChat: Record<string, (params: any) => Promise<any>>;
|
|
11
|
-
linkedinSearch: Record<string, (params: any) => Promise<any>>;
|
|
12
|
-
profile: Record<string, (params?: any) => Promise<any>>;
|
|
13
|
-
campaigns: Record<string, (params: any) => Promise<any>>;
|
|
14
|
-
}
|
|
15
|
-
}
|