bereach-openclaw 0.2.3 → 0.2.5

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bereach-openclaw",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
4
4
  "description": "BeReach LinkedIn automation plugin for OpenClaw",
5
5
  "license": "AGPL-3.0",
6
6
  "openclaw": {
package/src/index.ts CHANGED
@@ -1,11 +1,9 @@
1
1
  import { createClient } from "./client";
2
2
  import { registerAllTools } from "./tools";
3
3
  import { registerCommands } from "./commands";
4
- import { createCampaignMonitor } from "./services/campaign-monitor";
5
4
 
6
5
  export default function register(api: any) {
7
6
  const client = createClient(api.config.BEREACH_API_KEY);
8
7
  registerAllTools(api, client);
9
8
  registerCommands(api, client);
10
- api.registerService(createCampaignMonitor(api, client));
11
9
  }
@@ -1,59 +0,0 @@
1
- import type { Bereach } from "bereach";
2
-
3
- /**
4
- * Background service that polls active campaigns every 5 minutes
5
- * and logs activity deltas (new actions since last check).
6
- */
7
- export function createCampaignMonitor(api: any, client: Bereach) {
8
- const seen = new Map<string, number>();
9
- let interval: ReturnType<typeof setInterval> | null = null;
10
-
11
- async function poll() {
12
- try {
13
- const campaigns = await (client as any).campaigns.getStatus({});
14
- if (!campaigns?.campaigns) return;
15
-
16
- for (const c of campaigns.campaigns) {
17
- if (c.status !== "active") continue;
18
-
19
- const stats = await (client as any).campaigns.getStats({
20
- campaignSlug: c.slug,
21
- });
22
- const total = stats?.totalActions ?? 0;
23
- const prev = seen.get(c.slug) ?? total;
24
- const delta = total - prev;
25
- seen.set(c.slug, total);
26
-
27
- if (delta > 0) {
28
- api.logger.info(
29
- `[bereach] Campaign "${c.slug}": +${delta} actions (${total} total)`,
30
- );
31
- }
32
- }
33
- } catch (err: any) {
34
- if (err?.statusCode === 401) {
35
- api.logger.error("[bereach] Campaign monitor: auth failed, stopping");
36
- stop();
37
- return;
38
- }
39
- api.logger.warn(`[bereach] Campaign monitor poll error: ${err.message}`);
40
- }
41
- }
42
-
43
- function stop() {
44
- if (interval) {
45
- clearInterval(interval);
46
- interval = null;
47
- }
48
- }
49
-
50
- return {
51
- id: "bereach-campaign-monitor",
52
- start: () => {
53
- poll();
54
- interval = setInterval(poll, 5 * 60 * 1000);
55
- api.logger.info("[bereach] Campaign monitor started (every 5m)");
56
- },
57
- stop,
58
- };
59
- }