@susu-eng/gralkor 26.0.5 → 26.0.7
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 +22 -7
- package/dist/cli/bin.js +1 -1
- package/dist/cli/bin.js.map +1 -1
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +3 -16
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/lib/openclaw.d.ts +7 -6
- package/dist/cli/lib/openclaw.d.ts.map +1 -1
- package/dist/cli/lib/openclaw.js +16 -13
- package/dist/cli/lib/openclaw.js.map +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -57,24 +57,39 @@ The agent gets a unified memory interface where it doesn't need to think about w
|
|
|
57
57
|
**Using the CLI helper (recommended):**
|
|
58
58
|
|
|
59
59
|
```bash
|
|
60
|
-
npx @susu-eng/gralkor install
|
|
60
|
+
npx @susu-eng/gralkor@latest install
|
|
61
61
|
```
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
Use `@latest` to bypass npm's cache and always get the newest version. You can also pass config inline:
|
|
64
64
|
|
|
65
65
|
```bash
|
|
66
|
-
npx @susu-eng/gralkor install \
|
|
66
|
+
npx @susu-eng/gralkor@latest install \
|
|
67
67
|
--config '{"llm":{"provider":"openai","model":"gpt-4.1-mini"}}'
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
Or from a tarball:
|
|
71
71
|
|
|
72
72
|
```bash
|
|
73
|
-
npx @susu-eng/gralkor install /path/to/susu-eng-gralkor-memory-19.0.4.tgz
|
|
73
|
+
npx @susu-eng/gralkor@latest install /path/to/susu-eng-gralkor-memory-19.0.4.tgz
|
|
74
74
|
```
|
|
75
75
|
|
|
76
76
|
The install is idempotent — running it again with the same version is a no-op.
|
|
77
77
|
|
|
78
|
+
**What the installer handles:**
|
|
79
|
+
|
|
80
|
+
1. Clears `plugins.slots.memory` if it references a missing plugin (prevents "Config invalid" errors that block all openclaw commands)
|
|
81
|
+
2. Checks the installed version — skips if already current, uninstalls the old version if upgrading
|
|
82
|
+
3. Runs `openclaw plugins install @susu-eng/gralkor@latest` (tolerates config warnings from stale `plugins.allow`/`plugins.entries` references)
|
|
83
|
+
4. Enables the plugin (`openclaw plugins enable gralkor`)
|
|
84
|
+
5. Sets `plugins.slots.memory` to `gralkor`
|
|
85
|
+
6. Applies any `--config`/`--set` values
|
|
86
|
+
|
|
87
|
+
**What you must handle:**
|
|
88
|
+
|
|
89
|
+
- **`plugins.allow`**: If your config uses an allowlist, add `"gralkor"` to it. The installer does not modify the allowlist — stale references produce warnings but don't break anything.
|
|
90
|
+
- **API keys**: Set `GOOGLE_API_KEY` (default), `OPENAI_API_KEY`, or the relevant provider key in the environment before starting OpenClaw.
|
|
91
|
+
- **`uv`**: Must be on PATH. The installer does not install it.
|
|
92
|
+
|
|
78
93
|
**Manual install:**
|
|
79
94
|
|
|
80
95
|
```bash
|
|
@@ -160,16 +175,16 @@ In memory mode, `memory_search` searches both the knowledge graph and native Mar
|
|
|
160
175
|
|
|
161
176
|
### Lifecycle management
|
|
162
177
|
|
|
163
|
-
Run via `npx @susu-eng/gralkor` or install globally:
|
|
178
|
+
Run via `npx @susu-eng/gralkor@latest` or install globally:
|
|
164
179
|
|
|
165
180
|
```bash
|
|
166
|
-
gralkor install # Self-install from npm (default: @susu-eng/gralkor)
|
|
181
|
+
gralkor install # Self-install from npm (default: @susu-eng/gralkor@latest)
|
|
167
182
|
gralkor config --set llm.model=gpt-4.1-mini # Set plugin config
|
|
168
183
|
gralkor check # Pre-flight: uv, API keys, plugin state, server health
|
|
169
184
|
gralkor status # Plugin version, slot, server health, graph stats
|
|
170
185
|
```
|
|
171
186
|
|
|
172
|
-
The `install` command handles version comparison, upgrades,
|
|
187
|
+
The `install` command handles version comparison, upgrades, and optional `--config`/`--set` flags.
|
|
173
188
|
|
|
174
189
|
### Plugin commands (via OpenClaw)
|
|
175
190
|
|
package/dist/cli/bin.js
CHANGED
|
@@ -5,7 +5,7 @@ import { config } from "./commands/config.js";
|
|
|
5
5
|
import { check } from "./commands/check.js";
|
|
6
6
|
import { status } from "./commands/status.js";
|
|
7
7
|
import { getCLIVersion } from "./lib/version.js";
|
|
8
|
-
const DEFAULT_SOURCE = "@susu-eng/gralkor";
|
|
8
|
+
const DEFAULT_SOURCE = "@susu-eng/gralkor@latest";
|
|
9
9
|
const HELP = `Usage: gralkor <command> [options]
|
|
10
10
|
|
|
11
11
|
Commands:
|
package/dist/cli/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/cli/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,cAAc,GAAG,
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/cli/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,cAAc,GAAG,0BAA0B,CAAC;AAElD,MAAM,IAAI,GAAG;;;uEAG0D,cAAc;;;;;;;;;;;sCAW/C,CAAC;AAEvC,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,WAAW,aAAa,EAAE,EAAE,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;gBACxC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnB,OAAO,EAAE;oBACP,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC1B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;iBACxC;gBACD,gBAAgB,EAAE,IAAI;aACvB,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC;YAChD,MAAM,OAAO,CAAC;gBACZ,MAAM;gBACN,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,GAAG,EAAE,MAAM,CAAC,GAAG;aAChB,CAAC,CAAC;YACH,MAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;gBACzC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnB,OAAO,EAAE;oBACP,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC1B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;iBACxC;gBACD,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,MAAM,MAAM,CAAC;gBACX,MAAM,EAAE,YAAY,CAAC,MAAM;gBAC3B,GAAG,EAAE,YAAY,CAAC,GAAG;aACtB,CAAC,CAAC;YACH,MAAM;QACR,CAAC;QACD,KAAK,OAAO;YACV,MAAM,KAAK,EAAE,CAAC;YACd,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,MAAM,EAAE,CAAC;YACf,MAAM;QACR;YACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAChD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB;AAOD,wBAAsB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB;AAOD,wBAAsB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA+FjE"}
|
|
@@ -24,10 +24,9 @@ export async function install(opts) {
|
|
|
24
24
|
}
|
|
25
25
|
const targetVersion = extractVersionFromTarball(source) ?? extractVersionFromNpmRef(source);
|
|
26
26
|
// 3. Clear stale memory slot before listing plugins.
|
|
27
|
-
//
|
|
28
|
-
//
|
|
29
|
-
//
|
|
30
|
-
// at the end after install succeeds.
|
|
27
|
+
// plugins.slots.memory referencing a missing plugin causes "Config invalid"
|
|
28
|
+
// which blocks ALL openclaw commands. Other stale references (plugins.allow,
|
|
29
|
+
// plugins.entries) only produce warnings that installPlugin tolerates.
|
|
31
30
|
await oc.setConfig("plugins.slots.memory", "").catch(() => { });
|
|
32
31
|
let plugins;
|
|
33
32
|
try {
|
|
@@ -62,18 +61,6 @@ export async function install(opts) {
|
|
|
62
61
|
execute: () => oc.uninstallPlugin("gralkor"),
|
|
63
62
|
});
|
|
64
63
|
}
|
|
65
|
-
else if (!current) {
|
|
66
|
-
// Plugin not in list but directory may exist (untracked local code) — clean up.
|
|
67
|
-
// uninstallPlugin may fail if the plugin isn't tracked, so fall back to
|
|
68
|
-
// removing the extension directory directly.
|
|
69
|
-
actions.push({
|
|
70
|
-
description: "Remove stale gralkor install (if present)",
|
|
71
|
-
execute: async () => {
|
|
72
|
-
await oc.uninstallPlugin("gralkor").catch(() => { });
|
|
73
|
-
await oc.removePluginDir("gralkor");
|
|
74
|
-
},
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
64
|
// 5. Install
|
|
78
65
|
if (needsInstall) {
|
|
79
66
|
actions.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAazG,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAoB;IAChD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE9C,oBAAoB;IACpB,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,aAAa,EAAE,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACnD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,qBAAqB;IACrB,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAChG,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,aAAa,GAAG,yBAAyB,CAAC,MAAM,CAAC,IAAI,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAE5F,qDAAqD;IACrD,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,14 +13,15 @@ export declare function checkOpenclaw(): Promise<string>;
|
|
|
13
13
|
export declare function parsePluginList(stdout: string): PluginInfo[];
|
|
14
14
|
export declare function getInstalledPlugins(): Promise<PluginInfo[]>;
|
|
15
15
|
export declare function getPluginInfo(pluginId: string): Promise<PluginInfo | null>;
|
|
16
|
-
export declare function installPlugin(source: string): Promise<void>;
|
|
17
|
-
export declare function uninstallPlugin(pluginId: string): Promise<void>;
|
|
18
16
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
17
|
+
* Check if openclaw output contains only config warnings (no real errors).
|
|
18
|
+
* openclaw plugins install exits non-zero for stale config references
|
|
19
|
+
* (e.g. plugins.allow referencing a not-yet-installed plugin).
|
|
20
|
+
* These are harmless — the install succeeded despite the exit code.
|
|
22
21
|
*/
|
|
23
|
-
export declare function
|
|
22
|
+
export declare function isConfigWarningOnly(output: string): boolean;
|
|
23
|
+
export declare function installPlugin(source: string): Promise<void>;
|
|
24
|
+
export declare function uninstallPlugin(pluginId: string): Promise<void>;
|
|
24
25
|
export declare function enablePlugin(pluginId: string): Promise<void>;
|
|
25
26
|
export declare function setConfig(key: string, value: string): Promise<void>;
|
|
26
27
|
export declare function getConfig(key: string): Promise<string | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openclaw.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/openclaw.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"openclaw.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/openclaw.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;CAClB;AA4BD,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAMrD;AAED,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE,CAiB5D;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAMjE;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAGhF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAK3D;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQjE;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKrE;AAGD,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKlE;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKzE;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKnE"}
|
package/dist/cli/lib/openclaw.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
import { execFile } from "node:child_process";
|
|
2
|
-
import { rm } from "node:fs/promises";
|
|
3
|
-
import { join } from "node:path";
|
|
4
|
-
import { homedir } from "node:os";
|
|
5
2
|
import { promisify } from "node:util";
|
|
6
3
|
const execFileAsync = promisify(execFile);
|
|
7
4
|
async function exec(args) {
|
|
@@ -62,10 +59,25 @@ export async function getPluginInfo(pluginId) {
|
|
|
62
59
|
const plugins = await getInstalledPlugins();
|
|
63
60
|
return plugins.find((p) => p.id === pluginId) ?? null;
|
|
64
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Check if openclaw output contains only config warnings (no real errors).
|
|
64
|
+
* openclaw plugins install exits non-zero for stale config references
|
|
65
|
+
* (e.g. plugins.allow referencing a not-yet-installed plugin).
|
|
66
|
+
* These are harmless — the install succeeded despite the exit code.
|
|
67
|
+
*/
|
|
68
|
+
export function isConfigWarningOnly(output) {
|
|
69
|
+
return output.includes("Config warnings:") &&
|
|
70
|
+
!output.includes("ENOENT") &&
|
|
71
|
+
!output.includes("npm error") &&
|
|
72
|
+
!output.includes("404");
|
|
73
|
+
}
|
|
65
74
|
export async function installPlugin(source) {
|
|
66
75
|
const result = await exec(["plugins", "install", source]);
|
|
67
76
|
if (result.exitCode !== 0) {
|
|
68
|
-
|
|
77
|
+
const output = result.stderr || result.stdout;
|
|
78
|
+
if (!isConfigWarningOnly(output)) {
|
|
79
|
+
throw new Error(`Install failed: ${output}`);
|
|
80
|
+
}
|
|
69
81
|
}
|
|
70
82
|
}
|
|
71
83
|
export async function uninstallPlugin(pluginId) {
|
|
@@ -74,15 +86,6 @@ export async function uninstallPlugin(pluginId) {
|
|
|
74
86
|
throw new Error(`Uninstall failed: ${result.stderr || result.stdout}`);
|
|
75
87
|
}
|
|
76
88
|
}
|
|
77
|
-
/**
|
|
78
|
-
* Remove a plugin's extension directory directly.
|
|
79
|
-
* Fallback for untracked plugins that `openclaw plugins uninstall` can't handle
|
|
80
|
-
* because the plugin exists on disk but isn't in the plugin list.
|
|
81
|
-
*/
|
|
82
|
-
export async function removePluginDir(pluginId) {
|
|
83
|
-
const dir = join(homedir(), ".openclaw", "extensions", pluginId);
|
|
84
|
-
await rm(dir, { recursive: true, force: true });
|
|
85
|
-
}
|
|
86
89
|
export async function enablePlugin(pluginId) {
|
|
87
90
|
const result = await exec(["plugins", "enable", pluginId]);
|
|
88
91
|
if (result.exitCode !== 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openclaw.js","sourceRoot":"","sources":["../../../src/cli/lib/openclaw.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"openclaw.js","sourceRoot":"","sources":["../../../src/cli/lib/openclaw.ts"],"names":[],"mappings":"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"}
|
package/openclaw.plugin.json
CHANGED