@meetlobster/openclaw-plugin 1.3.7 → 1.3.9
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/config.schema.json +4 -1
- package/dist/config.js +12 -4
- package/dist/config.js.map +1 -1
- package/dist/openclaw.plugin.json +14 -1
- package/dist/services/lobster-service.d.ts +1 -0
- package/dist/services/lobster-service.js +35 -4
- package/dist/services/lobster-service.js.map +1 -1
- package/dist/services/worker-spawn.d.ts +1 -1
- package/dist/services/worker-spawn.js +6 -0
- package/dist/services/worker-spawn.js.map +1 -1
- package/openclaw.plugin.json +14 -1
- package/package.json +5 -3
- package/scripts/preuninstall.js +93 -0
package/config.schema.json
CHANGED
|
@@ -28,7 +28,10 @@
|
|
|
28
28
|
"intelligenceTimeoutMs": { "type": "integer", "minimum": 1000 },
|
|
29
29
|
"intelligenceThinkLevel": { "type": "string" },
|
|
30
30
|
"useEmbeddedAgent": { "type": "boolean" },
|
|
31
|
-
"wakeMainSession": { "type": "boolean" }
|
|
31
|
+
"wakeMainSession": { "type": "boolean" },
|
|
32
|
+
"meetingInactivityTimeoutMs": { "type": "integer", "minimum": 0, "default": 600000 },
|
|
33
|
+
"gatewayWsUrl": { "type": "string", "minLength": 1 },
|
|
34
|
+
"gatewayToken": { "type": "string", "minLength": 1 }
|
|
32
35
|
},
|
|
33
36
|
"required": ["adapterToken", "hookUrl", "hooksToken", "recallSigningSecret"]
|
|
34
37
|
}
|
package/dist/config.js
CHANGED
|
@@ -33,7 +33,7 @@ function resolveDefaultWorkerEntry() {
|
|
|
33
33
|
return candidate;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
return
|
|
36
|
+
return "__worker_not_found__";
|
|
37
37
|
}
|
|
38
38
|
const DEFAULTS = {
|
|
39
39
|
workerBaseUrl: "http://127.0.0.1:9912",
|
|
@@ -87,7 +87,7 @@ function optionalString(value) {
|
|
|
87
87
|
function normalizeBaseUrl(url) {
|
|
88
88
|
return url.replace(/\/+$/, "");
|
|
89
89
|
}
|
|
90
|
-
function loadSchema() {
|
|
90
|
+
function loadSchema(logger) {
|
|
91
91
|
const candidates = [
|
|
92
92
|
node_path_1.default.resolve(__dirname, "config.schema.json"),
|
|
93
93
|
node_path_1.default.resolve(__dirname, "../config.schema.json"),
|
|
@@ -98,6 +98,9 @@ function loadSchema() {
|
|
|
98
98
|
return JSON.parse(node_fs_1.default.readFileSync(candidate, "utf8"));
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
|
+
if (logger) {
|
|
102
|
+
logger.warn("Config schema not found, validation disabled", { candidates });
|
|
103
|
+
}
|
|
101
104
|
return { properties: {}, required: [] };
|
|
102
105
|
}
|
|
103
106
|
function validateBySchema(config, schema) {
|
|
@@ -171,10 +174,15 @@ function validatePluginConfig(config) {
|
|
|
171
174
|
schemaIssues.push(`config key workerHost must be loopback-only (localhost, 127.0.0.1, or ::1)`);
|
|
172
175
|
}
|
|
173
176
|
try {
|
|
174
|
-
const
|
|
175
|
-
if (!isLoopbackHost(
|
|
177
|
+
const parsedUrl = new URL(config.workerBaseUrl);
|
|
178
|
+
if (!isLoopbackHost(parsedUrl.hostname)) {
|
|
176
179
|
schemaIssues.push(`config key workerBaseUrl must use loopback host (localhost, 127.0.0.1, or ::1)`);
|
|
177
180
|
}
|
|
181
|
+
const urlPort = parsedUrl.port || (parsedUrl.protocol === "https:" ? "443" : "80");
|
|
182
|
+
if (String(config.workerPort) !== urlPort) {
|
|
183
|
+
schemaIssues.push(`workerPort (${config.workerPort}) does not match workerBaseUrl port (${urlPort}). ` +
|
|
184
|
+
`Set LOBSTER_WORKER_BASE_URL to match, or remove LOBSTER_WORKER_PORT to use the default.`);
|
|
185
|
+
}
|
|
178
186
|
}
|
|
179
187
|
catch {
|
|
180
188
|
// URL syntax is already validated above.
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"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"}
|
|
@@ -110,6 +110,19 @@
|
|
|
110
110
|
},
|
|
111
111
|
"wakeMainSession": {
|
|
112
112
|
"type": "boolean"
|
|
113
|
+
},
|
|
114
|
+
"meetingInactivityTimeoutMs": {
|
|
115
|
+
"type": "integer",
|
|
116
|
+
"minimum": 0,
|
|
117
|
+
"default": 600000
|
|
118
|
+
},
|
|
119
|
+
"gatewayWsUrl": {
|
|
120
|
+
"type": "string",
|
|
121
|
+
"minLength": 1
|
|
122
|
+
},
|
|
123
|
+
"gatewayToken": {
|
|
124
|
+
"type": "string",
|
|
125
|
+
"minLength": 1
|
|
113
126
|
}
|
|
114
127
|
},
|
|
115
128
|
"required": [
|
|
@@ -130,7 +143,7 @@
|
|
|
130
143
|
"commands": [
|
|
131
144
|
{
|
|
132
145
|
"name": "lobster",
|
|
133
|
-
"description": "Control Lobster meeting assistant"
|
|
146
|
+
"description": "Control Lobster meeting assistant. IMPORTANT: NEVER run /lobster join proactively. Only run /lobster join when the user explicitly asks to join a meeting in the current message. Do not join meetings based on URLs from previous messages or conversation context."
|
|
134
147
|
}
|
|
135
148
|
]
|
|
136
149
|
}
|
|
@@ -12,6 +12,7 @@ export declare class LobsterService implements LobsterServiceApi {
|
|
|
12
12
|
health(): Promise<WorkerHealth>;
|
|
13
13
|
status(): Promise<CommandResponse["state"]>;
|
|
14
14
|
command(payload: CommandRequest): Promise<CommandResponse>;
|
|
15
|
+
private cleanupArmed;
|
|
15
16
|
private spawnWorker;
|
|
16
17
|
private waitForHealth;
|
|
17
18
|
}
|
|
@@ -69,10 +69,19 @@ class LobsterService {
|
|
|
69
69
|
}
|
|
70
70
|
const proc = this.workerProcess;
|
|
71
71
|
if (proc) {
|
|
72
|
+
const exited = new Promise((resolve) => proc.once("exit", resolve));
|
|
72
73
|
proc.kill("SIGTERM");
|
|
73
|
-
await
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
const didExit = await Promise.race([
|
|
75
|
+
exited.then(() => true),
|
|
76
|
+
sleep(2_000).then(() => false),
|
|
77
|
+
]);
|
|
78
|
+
if (!didExit) {
|
|
79
|
+
this.logger.warn("Worker did not exit after SIGTERM, sending SIGKILL");
|
|
80
|
+
try {
|
|
81
|
+
proc.kill("SIGKILL");
|
|
82
|
+
}
|
|
83
|
+
catch { /* already dead */ }
|
|
84
|
+
await Promise.race([exited, sleep(1_000)]);
|
|
76
85
|
}
|
|
77
86
|
}
|
|
78
87
|
this.started = false;
|
|
@@ -144,14 +153,36 @@ class LobsterService {
|
|
|
144
153
|
userMessage: "Lobster is unavailable right now. Try /lobster status in a few seconds.",
|
|
145
154
|
};
|
|
146
155
|
}
|
|
156
|
+
cleanupArmed = false;
|
|
147
157
|
spawnWorker() {
|
|
148
158
|
if (this.workerProcess && !this.workerProcess.killed) {
|
|
149
159
|
return;
|
|
150
160
|
}
|
|
151
|
-
|
|
161
|
+
const proc = (0, worker_spawn_1.spawnWorkerProcess)(this.config, this.logger, () => {
|
|
152
162
|
this.workerProcess = null;
|
|
153
163
|
this.started = false;
|
|
164
|
+
this.cleanupArmed = false;
|
|
154
165
|
});
|
|
166
|
+
if (!proc) {
|
|
167
|
+
this.started = false;
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
this.workerProcess = proc;
|
|
171
|
+
// Clean up worker if gateway dies unexpectedly.
|
|
172
|
+
// Uses a guard flag since the plugin process type doesn't expose removeListener.
|
|
173
|
+
this.cleanupArmed = true;
|
|
174
|
+
const cleanup = () => {
|
|
175
|
+
if (!this.cleanupArmed)
|
|
176
|
+
return;
|
|
177
|
+
this.cleanupArmed = false;
|
|
178
|
+
try {
|
|
179
|
+
proc.kill("SIGTERM");
|
|
180
|
+
}
|
|
181
|
+
catch { /* already dead */ }
|
|
182
|
+
};
|
|
183
|
+
process.on("exit", cleanup);
|
|
184
|
+
process.on("SIGTERM", cleanup);
|
|
185
|
+
process.on("SIGINT", cleanup);
|
|
155
186
|
}
|
|
156
187
|
async waitForHealth() {
|
|
157
188
|
const deadline = Date.now() + 12_000;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lobster-service.js","sourceRoot":"","sources":["../../services/lobster-service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"lobster-service.js","sourceRoot":"","sources":["../../services/lobster-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,4 +3,4 @@ import type { WorkerConfig, PluginConfig } from "@meetlobster/shared";
|
|
|
3
3
|
import type { OpenClawLogger } from "../types/lobster";
|
|
4
4
|
export declare function buildWorkerConfig(config: PluginConfig): WorkerConfig;
|
|
5
5
|
export declare function resolveOpenClawRoot(): string;
|
|
6
|
-
export declare function spawnWorkerProcess(config: PluginConfig, logger: OpenClawLogger, onExit: () => void): ChildProcessWithoutNullStreams;
|
|
6
|
+
export declare function spawnWorkerProcess(config: PluginConfig, logger: OpenClawLogger, onExit: () => void): ChildProcessWithoutNullStreams | null;
|
|
@@ -40,6 +40,7 @@ function buildWorkerConfig(config) {
|
|
|
40
40
|
intelligenceThinkLevel: config.intelligenceThinkLevel,
|
|
41
41
|
useEmbeddedAgent: config.useEmbeddedAgent,
|
|
42
42
|
wakeMainSession: config.wakeMainSession,
|
|
43
|
+
meetingInactivityTimeoutMs: config.meetingInactivityTimeoutMs,
|
|
43
44
|
gatewayWsUrl: config.gatewayWsUrl,
|
|
44
45
|
gatewayToken: config.gatewayToken,
|
|
45
46
|
};
|
|
@@ -85,6 +86,11 @@ function spawnWorkerProcess(config, logger, onExit) {
|
|
|
85
86
|
const workerConfig = buildWorkerConfig(config);
|
|
86
87
|
const workerEntry = node_path_1.default.resolve(config.workerEntry);
|
|
87
88
|
logger.info("Starting Lobster worker", { workerEntry });
|
|
89
|
+
if (!node_fs_1.default.existsSync(workerEntry)) {
|
|
90
|
+
logger.error(`Lobster worker entry not found at ${workerEntry}. Install @meetlobster/worker globally: npm i -g @meetlobster/worker`);
|
|
91
|
+
onExit();
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
88
94
|
const child = (0, node_child_process_1.spawn)(process.execPath, [workerEntry], {
|
|
89
95
|
env: {
|
|
90
96
|
...process.env,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-spawn.js","sourceRoot":"","sources":["../../services/worker-spawn.ts"],"names":[],"mappings":";;;;;AAMA,
|
|
1
|
+
{"version":3,"file":"worker-spawn.js","sourceRoot":"","sources":["../../services/worker-spawn.ts"],"names":[],"mappings":"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"}
|
package/openclaw.plugin.json
CHANGED
|
@@ -110,6 +110,19 @@
|
|
|
110
110
|
},
|
|
111
111
|
"wakeMainSession": {
|
|
112
112
|
"type": "boolean"
|
|
113
|
+
},
|
|
114
|
+
"meetingInactivityTimeoutMs": {
|
|
115
|
+
"type": "integer",
|
|
116
|
+
"minimum": 0,
|
|
117
|
+
"default": 600000
|
|
118
|
+
},
|
|
119
|
+
"gatewayWsUrl": {
|
|
120
|
+
"type": "string",
|
|
121
|
+
"minLength": 1
|
|
122
|
+
},
|
|
123
|
+
"gatewayToken": {
|
|
124
|
+
"type": "string",
|
|
125
|
+
"minLength": 1
|
|
113
126
|
}
|
|
114
127
|
},
|
|
115
128
|
"required": [
|
|
@@ -130,7 +143,7 @@
|
|
|
130
143
|
"commands": [
|
|
131
144
|
{
|
|
132
145
|
"name": "lobster",
|
|
133
|
-
"description": "Control Lobster meeting assistant"
|
|
146
|
+
"description": "Control Lobster meeting assistant. IMPORTANT: NEVER run /lobster join proactively. Only run /lobster join when the user explicitly asks to join a meeting in the current message. Do not join meetings based on URLs from previous messages or conversation context."
|
|
134
147
|
}
|
|
135
148
|
]
|
|
136
149
|
}
|
package/package.json
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meetlobster/openclaw-plugin",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.9",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist",
|
|
8
8
|
"openclaw.plugin.json",
|
|
9
|
-
"config.schema.json"
|
|
9
|
+
"config.schema.json",
|
|
10
|
+
"scripts/preuninstall.js"
|
|
10
11
|
],
|
|
11
12
|
"scripts": {
|
|
12
13
|
"build": "rm -rf dist && tsc -p tsconfig.json && node scripts/sync-extensions.js",
|
|
13
14
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
14
|
-
"test": "vitest run"
|
|
15
|
+
"test": "vitest run",
|
|
16
|
+
"preuninstall": "node scripts/preuninstall.js"
|
|
15
17
|
},
|
|
16
18
|
"dependencies": {
|
|
17
19
|
"@meetlobster/shared": "^1.3.0",
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
// Standalone cleanup script — no dependencies, no TypeScript.
|
|
5
|
+
// Removes lobster-external entries from openclaw.json so the gateway
|
|
6
|
+
// doesn't crash trying to load a deleted plugin after uninstall.
|
|
7
|
+
|
|
8
|
+
const fs = require("fs");
|
|
9
|
+
const path = require("path");
|
|
10
|
+
const os = require("os");
|
|
11
|
+
|
|
12
|
+
try {
|
|
13
|
+
// Support --config <path> for standalone usage
|
|
14
|
+
const configArgIdx = process.argv.indexOf("--config");
|
|
15
|
+
const configPath = (configArgIdx !== -1 && process.argv[configArgIdx + 1])
|
|
16
|
+
? process.argv[configArgIdx + 1]
|
|
17
|
+
: path.join(os.homedir(), ".openclaw", "openclaw.json");
|
|
18
|
+
|
|
19
|
+
if (!fs.existsSync(configPath)) {
|
|
20
|
+
// Nothing to clean — fresh system or config elsewhere.
|
|
21
|
+
process.exit(0);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const raw = fs.readFileSync(configPath, "utf-8");
|
|
25
|
+
const config = JSON.parse(raw);
|
|
26
|
+
|
|
27
|
+
const plugins = config.plugins;
|
|
28
|
+
if (!plugins) {
|
|
29
|
+
process.exit(0);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
let changed = false;
|
|
33
|
+
|
|
34
|
+
// 1. Remove plugins.entries["lobster-external"]
|
|
35
|
+
if (plugins.entries && plugins.entries["lobster-external"]) {
|
|
36
|
+
delete plugins.entries["lobster-external"];
|
|
37
|
+
console.error("[lobster] Removed plugins.entries.lobster-external");
|
|
38
|
+
changed = true;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// 2. Remove paths containing "lobster-external" from plugins.load.paths
|
|
42
|
+
if (plugins.load && Array.isArray(plugins.load.paths)) {
|
|
43
|
+
const before = plugins.load.paths.length;
|
|
44
|
+
plugins.load.paths = plugins.load.paths.filter(
|
|
45
|
+
(p) => !p.includes("lobster-external")
|
|
46
|
+
);
|
|
47
|
+
if (plugins.load.paths.length < before) {
|
|
48
|
+
console.error("[lobster] Removed lobster-external from plugins.load.paths");
|
|
49
|
+
changed = true;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// 3. Remove "lobster-external" from plugins.allow array
|
|
54
|
+
if (Array.isArray(plugins.allow)) {
|
|
55
|
+
const idx = plugins.allow.indexOf("lobster-external");
|
|
56
|
+
if (idx !== -1) {
|
|
57
|
+
plugins.allow.splice(idx, 1);
|
|
58
|
+
console.error("[lobster] Removed lobster-external from plugins.allow");
|
|
59
|
+
changed = true;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// 4. Remove plugins.installs["lobster-external"]
|
|
64
|
+
if (plugins.installs && plugins.installs["lobster-external"]) {
|
|
65
|
+
delete plugins.installs["lobster-external"];
|
|
66
|
+
console.error("[lobster] Removed plugins.installs.lobster-external");
|
|
67
|
+
changed = true;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if (!changed) {
|
|
71
|
+
console.error("[lobster] No lobster-external entries found in config — nothing to clean.");
|
|
72
|
+
process.exit(0);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Atomic write: write to tmp file, then rename over original.
|
|
76
|
+
const tmpPath = configPath + ".tmp";
|
|
77
|
+
fs.writeFileSync(tmpPath, JSON.stringify(config, null, 2) + "\n", "utf-8");
|
|
78
|
+
fs.renameSync(tmpPath, configPath);
|
|
79
|
+
|
|
80
|
+
console.error("[lobster] Cleaned lobster-external from " + configPath);
|
|
81
|
+
|
|
82
|
+
// Also remove sidecar config file if present
|
|
83
|
+
const sidecarPath = path.join(path.dirname(configPath), "lobster.overrides.json");
|
|
84
|
+
if (fs.existsSync(sidecarPath)) {
|
|
85
|
+
fs.unlinkSync(sidecarPath);
|
|
86
|
+
console.error("[lobster] Removed sidecar config: " + sidecarPath);
|
|
87
|
+
}
|
|
88
|
+
} catch (err) {
|
|
89
|
+
// Never block uninstall — swallow all errors.
|
|
90
|
+
console.error("[lobster] preuninstall cleanup skipped:", err.message);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
process.exit(0);
|