@lobu/openclaw-plugin 6.1.1 → 7.0.0
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 +30 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +245 -225
- package/dist/index.js.map +1 -1
- package/dist/openclaw.plugin.json +14 -0
- package/openclaw.plugin.json +14 -0
- package/package.json +10 -3
package/README.md
CHANGED
|
@@ -32,9 +32,39 @@ Replace `<mcp-url>` with your workspace MCP URL (for example `https://lobu.ai/mc
|
|
|
32
32
|
| `autoRecall` | Search Lobu memory for relevant memories before each prompt. Default `true`. |
|
|
33
33
|
| `recallLimit` | Maximum recalled memory records per request. Default `6`. |
|
|
34
34
|
| `autoCapture` | Capture conversation observations as long-term memories after each session. Default `true`. |
|
|
35
|
+
| `memoryWikiCompat` | Spike/compat mode. `true` (or `{ enabled: true }`) registers OpenClaw memory-wiki tools (`wiki_status`, `wiki_search`, `wiki_get`, `wiki_apply`, `wiki_lint`) and the `memory_search`/`memory_get` aliases. Default `false`. |
|
|
35
36
|
|
|
36
37
|
See [`openclaw.plugin.json`](./openclaw.plugin.json) for the full schema.
|
|
37
38
|
|
|
39
|
+
## Memory-wiki compatibility mode
|
|
40
|
+
|
|
41
|
+
When `memoryWikiCompat` is enabled the plugin registers an OpenClaw-flavoured tool surface backed by existing Lobu MCP primitives — there is no separate wiki vault, no markdown export, and no MCP contract changes.
|
|
42
|
+
|
|
43
|
+
> **MCP surface note.** Watcher and knowledge admin operations (`list_watchers`, `get_watcher`, `read_knowledge`, `manage_watchers`) are registered as `INTERNAL_REST_TOOLS` in Lobu and **not** exposed on the MCP wire (`internal: true` hides them from `tools/list`). The compatibility layer therefore reaches those capabilities by scripting over the ClientSDK via the two MCP tools that *are* exposed for sandboxed execution: `query_sdk` (read-only) and `run_sdk` (writes). The sandbox requires `isolated-vm` in the host process — if it isn't installed, `query_sdk` returns `{ success: false, error: { name: 'RuntimeUnavailable', ... } }` and this layer surfaces it to the agent as a clear error instead of returning empty results.
|
|
44
|
+
|
|
45
|
+
| Compat tool | Backed by | Notes |
|
|
46
|
+
| --- | --- | --- |
|
|
47
|
+
| `wiki_status` | `query_sdk` (`client.watchers.list`) + `search_memory` probe | Reports `corpus = memory \| wiki \| all`, watcher count, MCP reachability. The SDK probe failure is caught internally so status itself always returns. |
|
|
48
|
+
| `wiki_search` | `search_memory` for `corpus=memory`; `query_sdk` running a single SDK script that fans out to `client.watchers.list` + `client.knowledge.read({ semantic_type: 'claim' })` + `client.knowledge.read({ semantic_type: 'synthesis' })` for `corpus=wiki`; merges both for `corpus=all` | Short queries (<3 chars) embed `includeContent=false` so the SDK script skips the knowledge calls. |
|
|
49
|
+
| `wiki_get` | `query_sdk` running `client.watchers.get` / `client.knowledge.read({ window_id })` / `client.knowledge.read({ content_ids })` / `client.knowledge.read({ query })` | Lookup parser accepts `event:123`, `watcher:7`, `window:9`, `reports/watchers/4`, or a free-text query. |
|
|
50
|
+
| `wiki_apply` | `save_memory` (MCP) for `create_synthesis`; `run_sdk` running `client.watchers.submitFeedback` for `update_metadata` with `watcher_id`/`window_id`/`corrections`; `save_memory` claim fallback otherwise | Corrections must contain `field_path`; empty or malformed arrays throw before MCP is called. |
|
|
51
|
+
| `wiki_lint` | In-plugin session ring buffer (cap 32) | Warns when `wiki_apply` was called with no evidence, when `status=active` confidence is below `0.5`, and when a wiki/memory search returned zero results. |
|
|
52
|
+
| `memory_search`, `memory_get` | `search_memory` (MCP); `query_sdk` running `client.knowledge.read` | OpenClaw-named aliases. `memory_search` does not route corpus — use `wiki_search` for that. |
|
|
53
|
+
|
|
54
|
+
`corpus` always means `memory | wiki | all` inside the agent's authenticated Lobu org. It is **not** an org/workspace selector.
|
|
55
|
+
|
|
56
|
+
### Tracing the compatibility tools against a live Lobu
|
|
57
|
+
|
|
58
|
+
`scripts/lobu/run-memory-wiki-compat-trace.ts` exercises the compat layer against a running Lobu MCP and emits a markdown comparison alongside the baseline (raw `search_memory`/`read_knowledge`/`list_watchers`) calls:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
LOBU_MCP_URL=http://localhost:8787/mcp/<org-slug> \
|
|
62
|
+
LOBU_MCP_TOKEN=$BENCH_TOKEN \
|
|
63
|
+
bun run scripts/lobu/run-memory-wiki-compat-trace.ts
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
The script writes `.lobu/benchmarks/memory/wiki-compat-trace.{md,json}`. It captures tool-surface differences (fan-out, latency, error shape) rather than retrieval recall — the existing retrieval-only benchmark in `packages/server/src/benchmarks/memory/` would show no difference between compat-on and compat-off, since both paths fetch the same underlying records.
|
|
67
|
+
|
|
38
68
|
## License
|
|
39
69
|
|
|
40
70
|
BUSL-1.1. See the repository [LICENSE](../../LICENSE).
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
export declare const KNOWN_MCP_TOOL_NAMES: Set<string>;
|
|
2
|
+
export declare const LOGIN_TOOL_NAMES: readonly ["lobu_login", "lobu_login_check"];
|
|
3
|
+
/**
|
|
4
|
+
* Run `work` with a hard wall-clock deadline. On timeout, the supplied
|
|
5
|
+
* `AbortSignal` is aborted (so an in-flight `fetch` cancels instead of
|
|
6
|
+
* lingering) and `onTimeout` is returned regardless of what is still pending.
|
|
7
|
+
* `work` is responsible for swallowing its own rejections; if it rejects after
|
|
8
|
+
* the deadline, the rejection is observed and ignored.
|
|
9
|
+
*/
|
|
10
|
+
export declare function runWithAbortDeadline<T>(work: (signal: AbortSignal) => Promise<T>, timeoutMs: number, onTimeout: T): Promise<T>;
|
|
1
11
|
declare const plugin: {
|
|
2
12
|
id: string;
|
|
3
13
|
name: string;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAqCA,eAAO,MAAM,oBAAoB,aAQ/B,CAAC;AAGH,eAAO,MAAM,gBAAgB,6CAA8C,CAAC;AAO5E;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,EACzC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,CAAC,GACX,OAAO,CAAC,CAAC,CAAC,CAeZ;AAi7BD,QAAA,MAAM,MAAM;;;;;kBAKI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CA2etC,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -7,6 +7,52 @@ import { promisify } from 'node:util';
|
|
|
7
7
|
import { renderFallbackSystemContext } from './lobu-guidance.js';
|
|
8
8
|
const AUTH_REQUIRED_MSG = 'Lobu memory is not connected. Call the lobu_login tool to authenticate, then show the user the login URL and code. After the user completes login in their browser, call lobu_login_check to finish authentication.';
|
|
9
9
|
const DEFAULT_RECALL_LIMIT = 6;
|
|
10
|
+
// Lobu MCP server tools exposed via `tools/list` (see packages/server/src/tools/registry.ts).
|
|
11
|
+
// Each is registered with OpenClaw as `lobu_<name>`. OpenClaw 2026.5.x requires every
|
|
12
|
+
// runtime-registered tool to appear in `contracts.tools` in openclaw.plugin.json — keep the
|
|
13
|
+
// `lobu_*` entries there in sync with this set (a unit test enforces it). Server tools not
|
|
14
|
+
// listed here are skipped rather than registered (and rejected) until this plugin is updated
|
|
15
|
+
// to declare them.
|
|
16
|
+
export const KNOWN_MCP_TOOL_NAMES = new Set([
|
|
17
|
+
'search_memory',
|
|
18
|
+
'save_memory',
|
|
19
|
+
'list_organizations',
|
|
20
|
+
'search_sdk',
|
|
21
|
+
'query_sdk',
|
|
22
|
+
'query_sql',
|
|
23
|
+
'run_sdk',
|
|
24
|
+
]);
|
|
25
|
+
// Auth tools the plugin always registers in standalone mode (see register()).
|
|
26
|
+
export const LOGIN_TOOL_NAMES = ['lobu_login', 'lobu_login_check'];
|
|
27
|
+
// `before_prompt_build` / `before_agent_start` run inside OpenClaw's hook budget
|
|
28
|
+
// (~15s) — a slow `search_memory` must not blow that. Bound the recall round-trip
|
|
29
|
+
// well under it and degrade to "no recall" rather than letting OpenClaw kill the hook.
|
|
30
|
+
const RECALL_TIMEOUT_MS = 8_000;
|
|
31
|
+
/**
|
|
32
|
+
* Run `work` with a hard wall-clock deadline. On timeout, the supplied
|
|
33
|
+
* `AbortSignal` is aborted (so an in-flight `fetch` cancels instead of
|
|
34
|
+
* lingering) and `onTimeout` is returned regardless of what is still pending.
|
|
35
|
+
* `work` is responsible for swallowing its own rejections; if it rejects after
|
|
36
|
+
* the deadline, the rejection is observed and ignored.
|
|
37
|
+
*/
|
|
38
|
+
export async function runWithAbortDeadline(work, timeoutMs, onTimeout) {
|
|
39
|
+
const controller = new AbortController();
|
|
40
|
+
let timer;
|
|
41
|
+
const deadline = new Promise((resolveDeadline) => {
|
|
42
|
+
timer = setTimeout(() => {
|
|
43
|
+
controller.abort();
|
|
44
|
+
resolveDeadline(onTimeout);
|
|
45
|
+
}, timeoutMs);
|
|
46
|
+
});
|
|
47
|
+
const guarded = work(controller.signal).catch(() => onTimeout);
|
|
48
|
+
try {
|
|
49
|
+
return await Promise.race([guarded, deadline]);
|
|
50
|
+
}
|
|
51
|
+
finally {
|
|
52
|
+
if (timer)
|
|
53
|
+
clearTimeout(timer);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
10
56
|
// Minimal fallback context used before the workspace instructions are fetched.
|
|
11
57
|
// Initialized lazily per mode (gateway vs standalone) in register().
|
|
12
58
|
let FALLBACK_SYSTEM_CONTEXT = null;
|
|
@@ -37,7 +83,7 @@ let mcpSessionId = null;
|
|
|
37
83
|
const MCP_PROTOCOL_VERSION = '2025-03-26';
|
|
38
84
|
// Make an MCP JSON-RPC request with session management.
|
|
39
85
|
// Server returns plain JSON when Accept doesn't include text/event-stream.
|
|
40
|
-
async function mcpFetch(url, body, extraHeaders) {
|
|
86
|
+
async function mcpFetch(url, body, extraHeaders, signal) {
|
|
41
87
|
const headers = {
|
|
42
88
|
'Content-Type': 'application/json',
|
|
43
89
|
Accept: 'application/json',
|
|
@@ -50,6 +96,7 @@ async function mcpFetch(url, body, extraHeaders) {
|
|
|
50
96
|
method: 'POST',
|
|
51
97
|
headers,
|
|
52
98
|
body: JSON.stringify(body),
|
|
99
|
+
signal,
|
|
53
100
|
});
|
|
54
101
|
const newSessionId = response.headers.get('mcp-session-id');
|
|
55
102
|
if (newSessionId) {
|
|
@@ -261,55 +308,6 @@ function hasAuthConfigured(config) {
|
|
|
261
308
|
function getWorkerToken() {
|
|
262
309
|
return asString(process.env.WORKER_TOKEN);
|
|
263
310
|
}
|
|
264
|
-
async function gatewayDeviceAuthStart(gatewayAuthUrl) {
|
|
265
|
-
const workerToken = getWorkerToken();
|
|
266
|
-
if (!workerToken)
|
|
267
|
-
throw new Error('WORKER_TOKEN not set');
|
|
268
|
-
const response = await fetch(`${gatewayAuthUrl}/internal/device-auth/start`, {
|
|
269
|
-
method: 'POST',
|
|
270
|
-
headers: {
|
|
271
|
-
'Content-Type': 'application/json',
|
|
272
|
-
Authorization: `Bearer ${workerToken}`,
|
|
273
|
-
},
|
|
274
|
-
body: JSON.stringify({ mcpId: 'lobu' }),
|
|
275
|
-
});
|
|
276
|
-
if (!response.ok) {
|
|
277
|
-
const errText = await response.text();
|
|
278
|
-
throw new Error(`Gateway device auth start failed: ${errText}`);
|
|
279
|
-
}
|
|
280
|
-
return (await response.json());
|
|
281
|
-
}
|
|
282
|
-
async function gatewayDeviceAuthPoll(gatewayAuthUrl) {
|
|
283
|
-
const workerToken = getWorkerToken();
|
|
284
|
-
if (!workerToken)
|
|
285
|
-
throw new Error('WORKER_TOKEN not set');
|
|
286
|
-
const response = await fetch(`${gatewayAuthUrl}/internal/device-auth/poll`, {
|
|
287
|
-
method: 'POST',
|
|
288
|
-
headers: {
|
|
289
|
-
'Content-Type': 'application/json',
|
|
290
|
-
Authorization: `Bearer ${workerToken}`,
|
|
291
|
-
},
|
|
292
|
-
body: JSON.stringify({ mcpId: 'lobu' }),
|
|
293
|
-
});
|
|
294
|
-
return (await response.json());
|
|
295
|
-
}
|
|
296
|
-
async function gatewayDeviceAuthCheck(gatewayAuthUrl) {
|
|
297
|
-
const workerToken = getWorkerToken();
|
|
298
|
-
if (!workerToken)
|
|
299
|
-
return false;
|
|
300
|
-
try {
|
|
301
|
-
const response = await fetch(`${gatewayAuthUrl}/internal/device-auth/status?mcpId=lobu`, {
|
|
302
|
-
headers: { Authorization: `Bearer ${workerToken}` },
|
|
303
|
-
});
|
|
304
|
-
if (!response.ok)
|
|
305
|
-
return false;
|
|
306
|
-
const data = (await response.json());
|
|
307
|
-
return !!data.authenticated;
|
|
308
|
-
}
|
|
309
|
-
catch {
|
|
310
|
-
return false;
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
311
|
function clearSessionTokens() {
|
|
314
312
|
sessionToken = null;
|
|
315
313
|
_sessionRefreshToken = null;
|
|
@@ -443,6 +441,75 @@ async function pollDeviceLogin(state) {
|
|
|
443
441
|
const desc = typeof data.error_description === 'string' ? data.error_description : error;
|
|
444
442
|
return { status: 'error', message: desc || 'Unknown error during login' };
|
|
445
443
|
}
|
|
444
|
+
/**
|
|
445
|
+
* Synchronous variant of {@link tryRefreshToken}, used at plugin `register()`
|
|
446
|
+
* time before the worker daemon is spawned. The daemon reads `WORKER_API_TOKEN`
|
|
447
|
+
* from its env once at process start, so a lazy refresh in `callMcpTool` (which
|
|
448
|
+
* only updates the in-process `sessionToken`) wouldn't reach it — we must hand
|
|
449
|
+
* the daemon a fresh token up front. Runs the refresh in a short-lived `node -e`
|
|
450
|
+
* subprocess; the OAuth params are passed via env vars, never interpolated into
|
|
451
|
+
* the script source.
|
|
452
|
+
*/
|
|
453
|
+
function refreshStoredTokenSync(mcpUrl) {
|
|
454
|
+
if (!_sessionRefreshToken || !sessionClientId || !sessionIssuer)
|
|
455
|
+
return;
|
|
456
|
+
const body = {
|
|
457
|
+
grant_type: 'refresh_token',
|
|
458
|
+
client_id: sessionClientId,
|
|
459
|
+
refresh_token: _sessionRefreshToken,
|
|
460
|
+
};
|
|
461
|
+
if (sessionClientSecret)
|
|
462
|
+
body.client_secret = sessionClientSecret;
|
|
463
|
+
const script = `
|
|
464
|
+
async function run() {
|
|
465
|
+
const r = await fetch(process.env.__TOKEN_URL, {
|
|
466
|
+
method: 'POST',
|
|
467
|
+
headers: { 'Content-Type': 'application/json' },
|
|
468
|
+
body: process.env.__TOKEN_BODY,
|
|
469
|
+
});
|
|
470
|
+
if (!r.ok) return;
|
|
471
|
+
const d = await r.json();
|
|
472
|
+
process.stdout.write(JSON.stringify({ access_token: d.access_token, refresh_token: d.refresh_token }));
|
|
473
|
+
}
|
|
474
|
+
run().catch(() => {});
|
|
475
|
+
`;
|
|
476
|
+
try {
|
|
477
|
+
const out = spawnSync('node', ['-e', script], {
|
|
478
|
+
timeout: 10_000,
|
|
479
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
480
|
+
env: {
|
|
481
|
+
...process.env,
|
|
482
|
+
__TOKEN_URL: `${sessionIssuer}/oauth/token`,
|
|
483
|
+
__TOKEN_BODY: JSON.stringify(body),
|
|
484
|
+
},
|
|
485
|
+
})
|
|
486
|
+
.stdout?.toString()
|
|
487
|
+
.trim();
|
|
488
|
+
if (!out)
|
|
489
|
+
return;
|
|
490
|
+
const tokens = JSON.parse(out);
|
|
491
|
+
if (typeof tokens.access_token !== 'string')
|
|
492
|
+
return;
|
|
493
|
+
sessionToken = tokens.access_token;
|
|
494
|
+
if (typeof tokens.refresh_token === 'string')
|
|
495
|
+
_sessionRefreshToken = tokens.refresh_token;
|
|
496
|
+
try {
|
|
497
|
+
saveStoredSession(mcpUrl, {
|
|
498
|
+
issuer: sessionIssuer,
|
|
499
|
+
clientId: sessionClientId,
|
|
500
|
+
clientSecret: sessionClientSecret,
|
|
501
|
+
refreshToken: _sessionRefreshToken,
|
|
502
|
+
accessToken: sessionToken,
|
|
503
|
+
});
|
|
504
|
+
}
|
|
505
|
+
catch {
|
|
506
|
+
// Best-effort persist.
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
catch {
|
|
510
|
+
// Best-effort refresh — fall back to the persisted (possibly stale) token.
|
|
511
|
+
}
|
|
512
|
+
}
|
|
446
513
|
async function tryRefreshToken(mcpUrl) {
|
|
447
514
|
if (!_sessionRefreshToken || !sessionClientId || !sessionIssuer)
|
|
448
515
|
return false;
|
|
@@ -525,12 +592,15 @@ async function reinitializeMcpSession(config) {
|
|
|
525
592
|
return false;
|
|
526
593
|
}
|
|
527
594
|
}
|
|
528
|
-
async function callMcpTool(config, toolName, args) {
|
|
595
|
+
async function callMcpTool(config, toolName, args, options) {
|
|
529
596
|
if (!config.mcpUrl)
|
|
530
597
|
return null;
|
|
531
598
|
const token = await resolveAuthToken(config);
|
|
532
599
|
const rpcId = `${Date.now()}-${Math.random().toString(16).slice(2)}`;
|
|
533
600
|
const authHeaders = { ...config.headers };
|
|
601
|
+
if (options?.rawJson) {
|
|
602
|
+
authHeaders['X-MCP-Format'] = 'json';
|
|
603
|
+
}
|
|
534
604
|
if (token) {
|
|
535
605
|
authHeaders.Authorization = `Bearer ${token}`;
|
|
536
606
|
}
|
|
@@ -542,7 +612,7 @@ async function callMcpTool(config, toolName, args) {
|
|
|
542
612
|
};
|
|
543
613
|
let result;
|
|
544
614
|
try {
|
|
545
|
-
result = await mcpFetch(config.mcpUrl, rpcBody, authHeaders);
|
|
615
|
+
result = await mcpFetch(config.mcpUrl, rpcBody, authHeaders, options?.signal);
|
|
546
616
|
}
|
|
547
617
|
catch (err) {
|
|
548
618
|
throw new Error(`MCP fetch failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
@@ -554,7 +624,7 @@ async function callMcpTool(config, toolName, args) {
|
|
|
554
624
|
if (refreshed && sessionToken) {
|
|
555
625
|
authHeaders.Authorization = `Bearer ${sessionToken}`;
|
|
556
626
|
const retryBody = { ...rpcBody, id: `${rpcId}-retry` };
|
|
557
|
-
const retry = await mcpFetch(config.mcpUrl, retryBody, authHeaders);
|
|
627
|
+
const retry = await mcpFetch(config.mcpUrl, retryBody, authHeaders, options?.signal);
|
|
558
628
|
data = retry.data;
|
|
559
629
|
response = retry.response;
|
|
560
630
|
}
|
|
@@ -572,7 +642,7 @@ async function callMcpTool(config, toolName, args) {
|
|
|
572
642
|
const newSession = await reinitializeMcpSession(config);
|
|
573
643
|
if (newSession) {
|
|
574
644
|
const retryBody = { ...rpcBody, id: `${rpcId}-reinit` };
|
|
575
|
-
const retry = await mcpFetch(config.mcpUrl, retryBody, authHeaders);
|
|
645
|
+
const retry = await mcpFetch(config.mcpUrl, retryBody, authHeaders, options?.signal);
|
|
576
646
|
data = retry.data;
|
|
577
647
|
response = retry.response;
|
|
578
648
|
}
|
|
@@ -727,7 +797,12 @@ function registerMcpTools(config, registerTool, log) {
|
|
|
727
797
|
log.warn('lobu: no MCP tools found (or fetch failed)');
|
|
728
798
|
return;
|
|
729
799
|
}
|
|
800
|
+
let registered = 0;
|
|
730
801
|
for (const tool of tools) {
|
|
802
|
+
if (!KNOWN_MCP_TOOL_NAMES.has(tool.name)) {
|
|
803
|
+
log.warn(`lobu: MCP server exposes tool "${tool.name}" not declared in contracts.tools; skipping. Update @lobu/openclaw-plugin to register it.`);
|
|
804
|
+
continue;
|
|
805
|
+
}
|
|
731
806
|
registerTool({
|
|
732
807
|
name: `lobu_${tool.name}`,
|
|
733
808
|
label: tool.name.replace(/_/g, ' '),
|
|
@@ -738,8 +813,9 @@ function registerMcpTools(config, registerTool, log) {
|
|
|
738
813
|
return { content: result?.content ?? [], details: {} };
|
|
739
814
|
},
|
|
740
815
|
});
|
|
816
|
+
registered++;
|
|
741
817
|
}
|
|
742
|
-
log.info(`lobu: registered ${
|
|
818
|
+
log.info(`lobu: registered ${registered} MCP tools`);
|
|
743
819
|
}
|
|
744
820
|
const plugin = {
|
|
745
821
|
id: 'openclaw-lobu',
|
|
@@ -774,57 +850,11 @@ const plugin = {
|
|
|
774
850
|
sessionClientId = stored.clientId || null;
|
|
775
851
|
sessionClientSecret = stored.clientSecret || null;
|
|
776
852
|
sessionIssuer = stored.issuer || null;
|
|
777
|
-
//
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
client_id: sessionClientId,
|
|
783
|
-
refresh_token: _sessionRefreshToken,
|
|
784
|
-
};
|
|
785
|
-
if (sessionClientSecret)
|
|
786
|
-
body.client_secret = sessionClientSecret;
|
|
787
|
-
// spawnSync imported at top-level (ESM-safe)
|
|
788
|
-
const scriptCode = [
|
|
789
|
-
'async function run() {',
|
|
790
|
-
` const r = await fetch(${JSON.stringify(sessionIssuer + '/oauth/token')}, {`,
|
|
791
|
-
' method: "POST",',
|
|
792
|
-
' headers: { "Content-Type": "application/json" },',
|
|
793
|
-
` body: ${JSON.stringify(JSON.stringify(body))},`,
|
|
794
|
-
' });',
|
|
795
|
-
' if (!r.ok) return;',
|
|
796
|
-
' const d = await r.json();',
|
|
797
|
-
' process.stdout.write(JSON.stringify({ access_token: d.access_token, refresh_token: d.refresh_token }));',
|
|
798
|
-
'}',
|
|
799
|
-
'run().catch(() => {});',
|
|
800
|
-
].join('\n');
|
|
801
|
-
const proc = spawnSync('node', ['-e', scriptCode], {
|
|
802
|
-
timeout: 10_000,
|
|
803
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
804
|
-
});
|
|
805
|
-
const out = proc.stdout?.toString().trim() ?? '';
|
|
806
|
-
if (out) {
|
|
807
|
-
const tokens = JSON.parse(out);
|
|
808
|
-
if (tokens.access_token) {
|
|
809
|
-
sessionToken = tokens.access_token;
|
|
810
|
-
if (tokens.refresh_token)
|
|
811
|
-
_sessionRefreshToken = tokens.refresh_token;
|
|
812
|
-
saveStoredSession(config.mcpUrl, {
|
|
813
|
-
issuer: sessionIssuer,
|
|
814
|
-
clientId: sessionClientId,
|
|
815
|
-
clientSecret: sessionClientSecret,
|
|
816
|
-
refreshToken: _sessionRefreshToken,
|
|
817
|
-
accessToken: sessionToken,
|
|
818
|
-
});
|
|
819
|
-
log.info('lobu: refreshed expired access token');
|
|
820
|
-
}
|
|
821
|
-
}
|
|
822
|
-
}
|
|
823
|
-
catch (refreshErr) {
|
|
824
|
-
log.warn(`lobu: token refresh failed: ${refreshErr instanceof Error ? refreshErr.message : String(refreshErr)}`);
|
|
825
|
-
}
|
|
826
|
-
}
|
|
827
|
-
// Auto-start worker daemon with (possibly refreshed) token
|
|
853
|
+
// The persisted access token may be expired — refresh it before
|
|
854
|
+
// spawning the daemon, which captures WORKER_API_TOKEN at process start
|
|
855
|
+
// and won't see a later lazy refresh from callMcpTool.
|
|
856
|
+
refreshStoredTokenSync(config.mcpUrl);
|
|
857
|
+
// Auto-start worker daemon with the (possibly refreshed) token
|
|
828
858
|
spawnWorkerDaemon(config.mcpUrl, sessionToken, log);
|
|
829
859
|
}
|
|
830
860
|
}
|
|
@@ -844,43 +874,6 @@ const plugin = {
|
|
|
844
874
|
},
|
|
845
875
|
execute: async () => {
|
|
846
876
|
try {
|
|
847
|
-
// Gateway mode: delegate to gateway device-auth endpoints
|
|
848
|
-
if (config.gatewayAuthUrl) {
|
|
849
|
-
// Check if already authenticated via gateway
|
|
850
|
-
const alreadyAuth = await gatewayDeviceAuthCheck(config.gatewayAuthUrl);
|
|
851
|
-
if (alreadyAuth) {
|
|
852
|
-
return {
|
|
853
|
-
content: [
|
|
854
|
-
{
|
|
855
|
-
type: 'text',
|
|
856
|
-
text: JSON.stringify({
|
|
857
|
-
status: 'already_authenticated',
|
|
858
|
-
message: "You are already authenticated with Lobu. Do NOT call lobu_login again. Proceed directly with the user's request using the available lobu tools.",
|
|
859
|
-
}),
|
|
860
|
-
},
|
|
861
|
-
],
|
|
862
|
-
details: {},
|
|
863
|
-
};
|
|
864
|
-
}
|
|
865
|
-
const started = await gatewayDeviceAuthStart(config.gatewayAuthUrl);
|
|
866
|
-
return {
|
|
867
|
-
content: [
|
|
868
|
-
{
|
|
869
|
-
type: 'text',
|
|
870
|
-
text: JSON.stringify({
|
|
871
|
-
status: 'login_started',
|
|
872
|
-
message: 'Open this URL in your browser and enter the code to connect Lobu:',
|
|
873
|
-
verification_url: started.verificationUriComplete || started.verificationUri,
|
|
874
|
-
user_code: started.userCode,
|
|
875
|
-
expires_in_seconds: started.expiresIn,
|
|
876
|
-
next_step: 'After the user completes login in their browser, call lobu_login_check to finish authentication.',
|
|
877
|
-
}),
|
|
878
|
-
},
|
|
879
|
-
],
|
|
880
|
-
details: {},
|
|
881
|
-
};
|
|
882
|
-
}
|
|
883
|
-
// Standalone mode: direct device flow
|
|
884
877
|
if (sessionToken) {
|
|
885
878
|
return {
|
|
886
879
|
content: [
|
|
@@ -940,57 +933,6 @@ const plugin = {
|
|
|
940
933
|
},
|
|
941
934
|
execute: async () => {
|
|
942
935
|
try {
|
|
943
|
-
// Gateway mode: poll gateway for completion
|
|
944
|
-
if (config.gatewayAuthUrl) {
|
|
945
|
-
const result = await gatewayDeviceAuthPoll(config.gatewayAuthUrl);
|
|
946
|
-
if (result.status === 'complete') {
|
|
947
|
-
log.info('lobu: gateway device auth completed');
|
|
948
|
-
// Fetch workspace instructions now that we're authenticated
|
|
949
|
-
if (!cachedWorkspaceInstructions) {
|
|
950
|
-
fetchWorkspaceInstructions(config, log);
|
|
951
|
-
}
|
|
952
|
-
return {
|
|
953
|
-
content: [
|
|
954
|
-
{
|
|
955
|
-
type: 'text',
|
|
956
|
-
text: JSON.stringify({
|
|
957
|
-
status: 'authenticated',
|
|
958
|
-
message: 'Lobu login successful! Memory tools are now available for this session.',
|
|
959
|
-
}),
|
|
960
|
-
},
|
|
961
|
-
],
|
|
962
|
-
details: {},
|
|
963
|
-
};
|
|
964
|
-
}
|
|
965
|
-
if (result.status === 'pending') {
|
|
966
|
-
return {
|
|
967
|
-
content: [
|
|
968
|
-
{
|
|
969
|
-
type: 'text',
|
|
970
|
-
text: JSON.stringify({
|
|
971
|
-
status: 'pending',
|
|
972
|
-
message: 'Waiting for user to approve in browser...',
|
|
973
|
-
next_step: 'Wait a few seconds, then call lobu_login_check again.',
|
|
974
|
-
}),
|
|
975
|
-
},
|
|
976
|
-
],
|
|
977
|
-
details: {},
|
|
978
|
-
};
|
|
979
|
-
}
|
|
980
|
-
return {
|
|
981
|
-
content: [
|
|
982
|
-
{
|
|
983
|
-
type: 'text',
|
|
984
|
-
text: JSON.stringify({
|
|
985
|
-
status: 'error',
|
|
986
|
-
message: result.message || 'Device auth failed',
|
|
987
|
-
}),
|
|
988
|
-
},
|
|
989
|
-
],
|
|
990
|
-
details: {},
|
|
991
|
-
};
|
|
992
|
-
}
|
|
993
|
-
// Standalone mode: direct device flow polling
|
|
994
936
|
if (!activeDeviceLogin) {
|
|
995
937
|
return {
|
|
996
938
|
content: [
|
|
@@ -1105,10 +1047,7 @@ const plugin = {
|
|
|
1105
1047
|
const getSystemContext = () => cachedWorkspaceInstructions
|
|
1106
1048
|
? `<lobu-system>\n${cachedWorkspaceInstructions}\n</lobu-system>`
|
|
1107
1049
|
: FALLBACK_SYSTEM_CONTEXT;
|
|
1108
|
-
const
|
|
1109
|
-
if (!config.autoRecall || !hasAuthConfigured(config)) {
|
|
1110
|
-
return '';
|
|
1111
|
-
}
|
|
1050
|
+
const recallOnce = async (query, signal) => {
|
|
1112
1051
|
try {
|
|
1113
1052
|
const result = await callMcpTool(config, 'search_memory', {
|
|
1114
1053
|
query,
|
|
@@ -1116,7 +1055,7 @@ const plugin = {
|
|
|
1116
1055
|
content_limit: config.recallLimit,
|
|
1117
1056
|
include_connections: false,
|
|
1118
1057
|
limit: 3,
|
|
1119
|
-
});
|
|
1058
|
+
}, { signal });
|
|
1120
1059
|
if (!result)
|
|
1121
1060
|
return '';
|
|
1122
1061
|
const text = extractTextFromContent(result.content);
|
|
@@ -1129,13 +1068,39 @@ const plugin = {
|
|
|
1129
1068
|
'\n</lobu-memory>');
|
|
1130
1069
|
}
|
|
1131
1070
|
catch (err) {
|
|
1132
|
-
if (err instanceof LobuAuthError)
|
|
1071
|
+
if (err instanceof LobuAuthError)
|
|
1072
|
+
return '';
|
|
1073
|
+
if (signal.aborted ||
|
|
1074
|
+
(err instanceof Error && (err.name === 'AbortError' || err.name === 'TimeoutError'))) {
|
|
1075
|
+
log.warn(`lobu recall skipped: search_memory exceeded ${RECALL_TIMEOUT_MS}ms`);
|
|
1133
1076
|
return '';
|
|
1134
1077
|
}
|
|
1135
1078
|
log.error(`lobu recall failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
1136
1079
|
return '';
|
|
1137
1080
|
}
|
|
1138
1081
|
};
|
|
1082
|
+
// Hard-bound the recall round-trip so it can never blow OpenClaw's hook
|
|
1083
|
+
// budget: abort the in-flight MCP fetch at RECALL_TIMEOUT_MS and degrade
|
|
1084
|
+
// to "no recall" no matter what is still pending (token command, network).
|
|
1085
|
+
//
|
|
1086
|
+
// OpenClaw fires both `before_prompt_build` and `before_agent_start` for
|
|
1087
|
+
// a turn (often back-to-back with the same prompt text). Memoize the last
|
|
1088
|
+
// (query → recallBlock) so the second event is a free cache hit instead
|
|
1089
|
+
// of a second `search_memory` round-trip.
|
|
1090
|
+
let lastRecallQuery = null;
|
|
1091
|
+
let lastRecallBlock = '';
|
|
1092
|
+
const doRecall = async (query) => {
|
|
1093
|
+
if (!config.autoRecall || !hasAuthConfigured(config)) {
|
|
1094
|
+
return '';
|
|
1095
|
+
}
|
|
1096
|
+
if (query === lastRecallQuery) {
|
|
1097
|
+
return lastRecallBlock;
|
|
1098
|
+
}
|
|
1099
|
+
const block = await runWithAbortDeadline((signal) => recallOnce(query, signal), RECALL_TIMEOUT_MS, '');
|
|
1100
|
+
lastRecallQuery = query;
|
|
1101
|
+
lastRecallBlock = block;
|
|
1102
|
+
return block;
|
|
1103
|
+
};
|
|
1139
1104
|
const buildPrependContext = (recallBlock) => ({
|
|
1140
1105
|
prependContext: getSystemContext() + (recallBlock ? '\n' + recallBlock : ''),
|
|
1141
1106
|
});
|
|
@@ -1187,39 +1152,60 @@ const plugin = {
|
|
|
1187
1152
|
}
|
|
1188
1153
|
if (config.autoCapture) {
|
|
1189
1154
|
let lastCapturedLen = 0;
|
|
1190
|
-
|
|
1155
|
+
const messageText = (m) => {
|
|
1156
|
+
if (!isRecord(m))
|
|
1157
|
+
return '';
|
|
1158
|
+
if (typeof m.content === 'string')
|
|
1159
|
+
return m.content;
|
|
1160
|
+
if (Array.isArray(m.content)) {
|
|
1161
|
+
return m.content
|
|
1162
|
+
.filter((p) => isRecord(p) && p.type === 'text')
|
|
1163
|
+
.map((p) => (isRecord(p) && typeof p.text === 'string' ? p.text : ''))
|
|
1164
|
+
.join('\n');
|
|
1165
|
+
}
|
|
1166
|
+
return '';
|
|
1167
|
+
};
|
|
1168
|
+
// Run on `agent_end` — the turn is complete and `messages` ends with the
|
|
1169
|
+
// assistant reply. (The worker's plugin-loader only honors
|
|
1170
|
+
// before_agent_start / agent_end; a before_prompt_build registration was
|
|
1171
|
+
// silently dropped, so autoCapture never ran inside Lobu.)
|
|
1172
|
+
on('agent_end', async (event) => {
|
|
1191
1173
|
if (!hasAuthConfigured(config))
|
|
1192
1174
|
return;
|
|
1193
1175
|
const messages = event.messages;
|
|
1194
1176
|
if (!Array.isArray(messages) || messages.length < 2)
|
|
1195
1177
|
return;
|
|
1196
|
-
// Only capture when new messages appeared since last capture
|
|
1197
1178
|
if (messages.length <= lastCapturedLen)
|
|
1198
1179
|
return;
|
|
1199
|
-
// Find the
|
|
1200
|
-
|
|
1201
|
-
|
|
1180
|
+
// Find the last assistant message, then the user message immediately
|
|
1181
|
+
// before it — pairing the answer with the question that prompted it
|
|
1182
|
+
// (not a trailing unanswered user message with the previous reply).
|
|
1183
|
+
let assistantIdx = -1;
|
|
1202
1184
|
for (let i = messages.length - 1; i >= 0; i--) {
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
.filter((p) => isRecord(p) && p.type === 'text')
|
|
1211
|
-
.map((p) => (isRecord(p) && typeof p.text === 'string' ? p.text : ''))
|
|
1212
|
-
.join('\n')
|
|
1213
|
-
: '';
|
|
1214
|
-
if (!text.trim())
|
|
1215
|
-
continue;
|
|
1216
|
-
if (m.role === 'assistant' && !lastAssistant)
|
|
1217
|
-
lastAssistant = text.trim();
|
|
1218
|
-
if (m.role === 'user' && !lastUser)
|
|
1219
|
-
lastUser = text.trim();
|
|
1220
|
-
if (lastUser && lastAssistant)
|
|
1221
|
-
break;
|
|
1185
|
+
if (isRecord(messages[i]) && messages[i].role === 'assistant') {
|
|
1186
|
+
const t = messageText(messages[i]);
|
|
1187
|
+
if (t.trim()) {
|
|
1188
|
+
assistantIdx = i;
|
|
1189
|
+
break;
|
|
1190
|
+
}
|
|
1191
|
+
}
|
|
1222
1192
|
}
|
|
1193
|
+
if (assistantIdx < 1)
|
|
1194
|
+
return;
|
|
1195
|
+
let userIdx = -1;
|
|
1196
|
+
for (let i = assistantIdx - 1; i >= 0; i--) {
|
|
1197
|
+
if (isRecord(messages[i]) && messages[i].role === 'user') {
|
|
1198
|
+
const t = messageText(messages[i]);
|
|
1199
|
+
if (t.trim()) {
|
|
1200
|
+
userIdx = i;
|
|
1201
|
+
break;
|
|
1202
|
+
}
|
|
1203
|
+
}
|
|
1204
|
+
}
|
|
1205
|
+
if (userIdx < 0)
|
|
1206
|
+
return;
|
|
1207
|
+
const lastUser = messageText(messages[userIdx]).trim();
|
|
1208
|
+
const lastAssistant = messageText(messages[assistantIdx]).trim();
|
|
1223
1209
|
if (!lastUser || !lastAssistant)
|
|
1224
1210
|
return;
|
|
1225
1211
|
const combined = `User: ${lastUser}\nAssistant: ${lastAssistant}`;
|
|
@@ -1227,7 +1213,7 @@ const plugin = {
|
|
|
1227
1213
|
return;
|
|
1228
1214
|
lastCapturedLen = messages.length;
|
|
1229
1215
|
const content = combined.length > 2000 ? combined.slice(0, 2000) : combined;
|
|
1230
|
-
// Fire-and-forget — don't block
|
|
1216
|
+
// Fire-and-forget — don't block the agent_end path.
|
|
1231
1217
|
callMcpTool(config, 'save_memory', {
|
|
1232
1218
|
content,
|
|
1233
1219
|
semantic_type: 'observation',
|
|
@@ -1238,6 +1224,40 @@ const plugin = {
|
|
|
1238
1224
|
});
|
|
1239
1225
|
}
|
|
1240
1226
|
log.info(`lobu: initialized (configured=${!!config.mcpUrl}, token=${!!config.token}, tokenCommand=${!!config.tokenCommand}, tools=${!!registerTool})`);
|
|
1227
|
+
// OpenClaw 2026.5.x only surfaces plugin tools to agents when the host's
|
|
1228
|
+
// tool-policy allowlist explicitly opts them in. With no `tools.*` section
|
|
1229
|
+
// in the OpenClaw config, `registerTool` calls succeed but the agent's
|
|
1230
|
+
// tool list silently excludes every lobu_*, wiki_*, and memory_* tool —
|
|
1231
|
+
// the plugin appears healthy in logs while the agent has no way to call it.
|
|
1232
|
+
// Detect this and shout, with a copy-pasteable fix.
|
|
1233
|
+
if (registerTool && config.mcpUrl) {
|
|
1234
|
+
const cfg = isRecord(api.config) ? api.config : {};
|
|
1235
|
+
const topTools = isRecord(cfg.tools) ? cfg.tools : null;
|
|
1236
|
+
const agentDefaults = isRecord(cfg.agents) && isRecord(cfg.agents.defaults)
|
|
1237
|
+
? cfg.agents.defaults
|
|
1238
|
+
: null;
|
|
1239
|
+
const agentTools = agentDefaults && isRecord(agentDefaults.tools)
|
|
1240
|
+
? agentDefaults.tools
|
|
1241
|
+
: null;
|
|
1242
|
+
const hasToolPolicy = (t) => !!t &&
|
|
1243
|
+
(typeof t.profile === 'string' ||
|
|
1244
|
+
(Array.isArray(t.allow) && t.allow.length > 0) ||
|
|
1245
|
+
(Array.isArray(t.alsoAllow) && t.alsoAllow.length > 0));
|
|
1246
|
+
if (!hasToolPolicy(topTools) && !hasToolPolicy(agentTools)) {
|
|
1247
|
+
log.warn('lobu: no tools.* policy detected in OpenClaw config. Plugin tools ' +
|
|
1248
|
+
'(lobu_*, wiki_*, memory_*) register successfully but may not ' +
|
|
1249
|
+
'reach the agent on OpenClaw 2026.5.x — every plugin on the host ' +
|
|
1250
|
+
'is gated the same way. The autoRecall hook and autoCapture hook ' +
|
|
1251
|
+
'still write to Lobu in the background (they call MCP directly, ' +
|
|
1252
|
+
'not via registered agent tools), so memory continues to flow; ' +
|
|
1253
|
+
'only deliberate agent-driven tool calls during a conversation ' +
|
|
1254
|
+
'are affected. We have tested tools.profile="full", ' +
|
|
1255
|
+
'tools.allow with [group:plugins], [*], and explicit tool names, ' +
|
|
1256
|
+
'and tools.alsoAllow variants — none surface plugin tools on ' +
|
|
1257
|
+
'OpenClaw 2026.5.2. If you find a host config that works, please ' +
|
|
1258
|
+
'file at https://github.com/lobu-ai/lobu/issues.');
|
|
1259
|
+
}
|
|
1260
|
+
}
|
|
1241
1261
|
},
|
|
1242
1262
|
};
|
|
1243
1263
|
export default plugin;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "openclaw-lobu",
|
|
3
|
+
"name": "Lobu",
|
|
3
4
|
"kind": "memory",
|
|
4
5
|
"description": "Lobu memory over MCP. Set mcpUrl to enable. Authentication via token, tokenCommand, or interactive device login.",
|
|
5
6
|
"entry": "./dist/index.js",
|
|
7
|
+
"contracts": {
|
|
8
|
+
"tools": [
|
|
9
|
+
"lobu_login",
|
|
10
|
+
"lobu_login_check",
|
|
11
|
+
"lobu_search_memory",
|
|
12
|
+
"lobu_save_memory",
|
|
13
|
+
"lobu_list_organizations",
|
|
14
|
+
"lobu_search_sdk",
|
|
15
|
+
"lobu_query_sdk",
|
|
16
|
+
"lobu_query_sql",
|
|
17
|
+
"lobu_run_sdk"
|
|
18
|
+
]
|
|
19
|
+
},
|
|
6
20
|
"configSchema": {
|
|
7
21
|
"type": "object",
|
|
8
22
|
"additionalProperties": false,
|
package/openclaw.plugin.json
CHANGED
|
@@ -1,8 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "openclaw-lobu",
|
|
3
|
+
"name": "Lobu",
|
|
3
4
|
"kind": "memory",
|
|
4
5
|
"description": "Lobu memory over MCP. Set mcpUrl to enable. Authentication via token, tokenCommand, or interactive device login.",
|
|
5
6
|
"entry": "./dist/index.js",
|
|
7
|
+
"contracts": {
|
|
8
|
+
"tools": [
|
|
9
|
+
"lobu_login",
|
|
10
|
+
"lobu_login_check",
|
|
11
|
+
"lobu_search_memory",
|
|
12
|
+
"lobu_save_memory",
|
|
13
|
+
"lobu_list_organizations",
|
|
14
|
+
"lobu_search_sdk",
|
|
15
|
+
"lobu_query_sdk",
|
|
16
|
+
"lobu_query_sql",
|
|
17
|
+
"lobu_run_sdk"
|
|
18
|
+
]
|
|
19
|
+
},
|
|
6
20
|
"configSchema": {
|
|
7
21
|
"type": "object",
|
|
8
22
|
"additionalProperties": false,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lobu/openclaw-plugin",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "7.0.0",
|
|
4
4
|
"description": "Lobu memory plugin for OpenClaw",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -20,12 +20,19 @@
|
|
|
20
20
|
"build": "tsc && cp ./openclaw.plugin.json ./dist/openclaw.plugin.json",
|
|
21
21
|
"typecheck": "tsc --noEmit",
|
|
22
22
|
"clean": "rm -rf dist",
|
|
23
|
-
"test:e2e": "vitest run --config test/e2e/vitest.config.ts"
|
|
23
|
+
"test:e2e": "vitest run --config test/e2e/vitest.config.ts",
|
|
24
|
+
"test:unit": "vitest run --config test/unit/vitest.config.ts"
|
|
24
25
|
},
|
|
25
26
|
"openclaw": {
|
|
26
27
|
"extensions": [
|
|
27
28
|
"./dist/index.js"
|
|
28
|
-
]
|
|
29
|
+
],
|
|
30
|
+
"compat": {
|
|
31
|
+
"pluginApi": ">=2026.4.0"
|
|
32
|
+
},
|
|
33
|
+
"build": {
|
|
34
|
+
"openclawVersion": "2026.5.7"
|
|
35
|
+
}
|
|
29
36
|
},
|
|
30
37
|
"devDependencies": {
|
|
31
38
|
"@types/node": "^20.10.0",
|