@okclaw-build/cli 1.0.0-beta.5 → 1.0.0-beta.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/dist/commands/edit.d.ts +2 -7
- package/dist/commands/edit.js +7 -13
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/feed.js +15 -3
- package/dist/commands/feed.js.map +1 -1
- package/dist/commands/show.d.ts +11 -0
- package/dist/commands/show.js +27 -0
- package/dist/commands/show.js.map +1 -0
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/installers/channel.d.ts +10 -1
- package/dist/installers/channel.js +69 -8
- package/dist/installers/channel.js.map +1 -1
- package/package.json +3 -2
package/dist/commands/edit.d.ts
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* Copies a file to the openclaw workspace directory.
|
|
5
|
-
* user → ~/.openclaw/workspace/USER.md
|
|
6
|
-
* identity → ~/.openclaw/workspace/IDENTITY.md
|
|
7
|
-
* soul → ~/.openclaw/workspace/SOUL.md
|
|
8
|
-
* agents → ~/.openclaw/workspace/AGENTS.md
|
|
2
|
+
* 7 个受支持的编辑目标:6 个 markdown 位于 workspace,openclaw.json 位于 OPENCLAW_HOME。
|
|
9
3
|
*/
|
|
4
|
+
export declare const TARGETS: Record<string, string>;
|
|
10
5
|
export declare function editCommand(args: string[]): Promise<void>;
|
package/dist/commands/edit.js
CHANGED
|
@@ -1,26 +1,20 @@
|
|
|
1
1
|
import { existsSync, mkdirSync } from 'node:fs';
|
|
2
|
+
import { dirname } from 'node:path';
|
|
2
3
|
import { shell } from '../utils/shell.js';
|
|
3
4
|
import { info, error } from '../utils/logger.js';
|
|
4
|
-
import { OPENCLAW_WORKSPACE } from '../utils/constants.js';
|
|
5
|
+
import { OPENCLAW_HOME, OPENCLAW_WORKSPACE } from '../utils/constants.js';
|
|
5
6
|
/**
|
|
6
|
-
*
|
|
7
|
+
* 7 个受支持的编辑目标:6 个 markdown 位于 workspace,openclaw.json 位于 OPENCLAW_HOME。
|
|
7
8
|
*/
|
|
8
|
-
const TARGETS = {
|
|
9
|
+
export const TARGETS = {
|
|
9
10
|
user: `${OPENCLAW_WORKSPACE}/USER.md`,
|
|
10
11
|
identity: `${OPENCLAW_WORKSPACE}/IDENTITY.md`,
|
|
11
12
|
soul: `${OPENCLAW_WORKSPACE}/SOUL.md`,
|
|
12
13
|
agents: `${OPENCLAW_WORKSPACE}/AGENTS.md`,
|
|
13
14
|
memory: `${OPENCLAW_WORKSPACE}/MEMORY.md`,
|
|
15
|
+
tools: `${OPENCLAW_WORKSPACE}/TOOLS.md`,
|
|
16
|
+
'openclaw-json': `${OPENCLAW_HOME}/openclaw.json`,
|
|
14
17
|
};
|
|
15
|
-
/**
|
|
16
|
-
* okclaw edit <target> --file <path>
|
|
17
|
-
*
|
|
18
|
-
* Copies a file to the openclaw workspace directory.
|
|
19
|
-
* user → ~/.openclaw/workspace/USER.md
|
|
20
|
-
* identity → ~/.openclaw/workspace/IDENTITY.md
|
|
21
|
-
* soul → ~/.openclaw/workspace/SOUL.md
|
|
22
|
-
* agents → ~/.openclaw/workspace/AGENTS.md
|
|
23
|
-
*/
|
|
24
18
|
export async function editCommand(args) {
|
|
25
19
|
const target = args[0];
|
|
26
20
|
if (!target || !TARGETS[target]) {
|
|
@@ -38,7 +32,7 @@ export async function editCommand(args) {
|
|
|
38
32
|
process.exit(1);
|
|
39
33
|
}
|
|
40
34
|
const dest = TARGETS[target];
|
|
41
|
-
mkdirSync(
|
|
35
|
+
mkdirSync(dirname(dest), { recursive: true });
|
|
42
36
|
await shell(`cp -f '${filePath}' '${dest}'`);
|
|
43
37
|
info(`Written to ${dest}`);
|
|
44
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE1E;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAA2B;IAC7C,IAAI,EAAa,GAAG,kBAAkB,UAAU;IAChD,QAAQ,EAAS,GAAG,kBAAkB,cAAc;IACpD,IAAI,EAAa,GAAG,kBAAkB,UAAU;IAChD,MAAM,EAAW,GAAG,kBAAkB,YAAY;IAClD,MAAM,EAAW,GAAG,kBAAkB,YAAY;IAClD,KAAK,EAAY,GAAG,kBAAkB,WAAW;IACjD,eAAe,EAAE,GAAG,aAAa,gBAAgB;CAClD,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAc;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,uBAAuB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,KAAK,CAAC,UAAU,QAAQ,MAAM,IAAI,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;AAC7B,CAAC"}
|
package/dist/commands/feed.js
CHANGED
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
import { existsSync, readFileSync, writeFileSync, appendFileSync, readdirSync, statSync, mkdirSync, rmSync } from 'node:fs';
|
|
2
2
|
import { join, extname, basename } from 'node:path';
|
|
3
|
-
import {
|
|
3
|
+
import { spawn } from 'node:child_process';
|
|
4
4
|
import { info, warn, error, success } from '../utils/logger.js';
|
|
5
5
|
import { OPENCLAW_WORKSPACE } from '../utils/constants.js';
|
|
6
|
+
function run(cmd, args) {
|
|
7
|
+
return new Promise((resolve, reject) => {
|
|
8
|
+
const child = spawn(cmd, args, { stdio: 'inherit' });
|
|
9
|
+
child.on('error', reject);
|
|
10
|
+
child.on('close', (code) => {
|
|
11
|
+
if (code === 0)
|
|
12
|
+
resolve();
|
|
13
|
+
else
|
|
14
|
+
reject(new Error(`${cmd} exited with code ${code}`));
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
}
|
|
6
18
|
const MEMORY_FILE = `${OPENCLAW_WORKSPACE}/MEMORY.md`;
|
|
7
19
|
const TEXT_EXTENSIONS = new Set(['.md', '.txt', '.text', '.csv', '.json', '.xml', '.yaml', '.yml', '.log']);
|
|
8
20
|
export async function feedCommand(args) {
|
|
@@ -41,10 +53,10 @@ async function feedArchive(archivePath) {
|
|
|
41
53
|
try {
|
|
42
54
|
const ext = extname(archivePath).toLowerCase();
|
|
43
55
|
if (ext === '.zip') {
|
|
44
|
-
await
|
|
56
|
+
await run('unzip', ['-o', archivePath, '-d', tmpDir]);
|
|
45
57
|
}
|
|
46
58
|
else {
|
|
47
|
-
await
|
|
59
|
+
await run('tar', ['xzf', archivePath, '-C', tmpDir]);
|
|
48
60
|
}
|
|
49
61
|
const files = collectFiles(tmpDir);
|
|
50
62
|
info(`Extracted ${files.length} file(s) from archive`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feed.js","sourceRoot":"","sources":["../../src/commands/feed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC5H,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"feed.js","sourceRoot":"","sources":["../../src/commands/feed.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* okclaw show <target>
|
|
3
|
+
*
|
|
4
|
+
* 把 target 对应的文件内容原样输出到 stdout。
|
|
5
|
+
* - 文件存在 → 输出文件内容,exit 0
|
|
6
|
+
* - 文件不存在 → 输出空内容,exit 0(视为尚未创建)
|
|
7
|
+
* - target 非法 → stderr 提示,exit 1
|
|
8
|
+
*
|
|
9
|
+
* `targets` 参数用于测试注入;生产调用不传第二个参数,使用 edit.ts 导出的 TARGETS。
|
|
10
|
+
*/
|
|
11
|
+
export declare function showCommand(args: string[], targets?: Record<string, string>): Promise<void>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { error } from '../utils/logger.js';
|
|
3
|
+
import { TARGETS as DEFAULT_TARGETS } from './edit.js';
|
|
4
|
+
/**
|
|
5
|
+
* okclaw show <target>
|
|
6
|
+
*
|
|
7
|
+
* 把 target 对应的文件内容原样输出到 stdout。
|
|
8
|
+
* - 文件存在 → 输出文件内容,exit 0
|
|
9
|
+
* - 文件不存在 → 输出空内容,exit 0(视为尚未创建)
|
|
10
|
+
* - target 非法 → stderr 提示,exit 1
|
|
11
|
+
*
|
|
12
|
+
* `targets` 参数用于测试注入;生产调用不传第二个参数,使用 edit.ts 导出的 TARGETS。
|
|
13
|
+
*/
|
|
14
|
+
export async function showCommand(args, targets = DEFAULT_TARGETS) {
|
|
15
|
+
const target = args[0];
|
|
16
|
+
if (!target || !targets[target]) {
|
|
17
|
+
error(`Usage: okclaw show <${Object.keys(targets).join('|')}>`);
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
20
|
+
const path = targets[target];
|
|
21
|
+
if (!existsSync(path)) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const content = readFileSync(path, 'utf8');
|
|
25
|
+
process.stdout.write(content);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=show.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"show.js","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,WAAW,CAAC;AAEvD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAc,EACd,UAAkC,eAAe;IAEjD,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,uBAAuB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,7 @@ import { readFileSync } from 'node:fs';
|
|
|
2
2
|
import { installCommand } from './commands/install.js';
|
|
3
3
|
import { checkCommand } from './commands/check.js';
|
|
4
4
|
import { editCommand } from './commands/edit.js';
|
|
5
|
+
import { showCommand } from './commands/show.js';
|
|
5
6
|
import { feedCommand } from './commands/feed.js';
|
|
6
7
|
import { startCommand, stopCommand, restartCommand, statusCommand } from './commands/service.js';
|
|
7
8
|
import { ensureRoot } from './utils/shell.js';
|
|
@@ -34,6 +35,9 @@ async function main() {
|
|
|
34
35
|
case 'edit':
|
|
35
36
|
await editCommand(args);
|
|
36
37
|
break;
|
|
38
|
+
case 'show':
|
|
39
|
+
await showCommand(args);
|
|
40
|
+
break;
|
|
37
41
|
case 'feed':
|
|
38
42
|
await feedCommand(args);
|
|
39
43
|
break;
|
|
@@ -66,7 +70,8 @@ Usage: okclaw <command> [args...]
|
|
|
66
70
|
okclaw stop Stop openclaw gateway
|
|
67
71
|
okclaw restart Restart openclaw gateway
|
|
68
72
|
okclaw status Show gateway status
|
|
69
|
-
okclaw edit <target> --file <path> Write config file (user/identity/soul/agents)
|
|
73
|
+
okclaw edit <target> --file <path> Write config file (user/identity/soul/agents/memory/tools/openclaw-json)
|
|
74
|
+
okclaw show <target> Read config file content to stdout (user/identity/soul/agents/memory/tools/openclaw-json)
|
|
70
75
|
okclaw feed --file <path> Feed file into knowledge base
|
|
71
76
|
|
|
72
77
|
Components:
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEjD,KAAK,UAAU,IAAI;IACjB,2CAA2C;IAC3C,IAAI,OAAO,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACvG,UAAU,EAAE,CAAC;IACf,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS;YACZ,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM;QACR,KAAK,OAAO;YACV,MAAM,YAAY,EAAE,CAAC;YACrB,MAAM;QACR,KAAK,OAAO;YACV,MAAM,YAAY,EAAE,CAAC;YACrB,MAAM;QACR,KAAK,MAAM;YACT,MAAM,WAAW,EAAE,CAAC;YACpB,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,cAAc,EAAE,CAAC;YACvB,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,aAAa,EAAE,CAAC;YACtB,MAAM;QACR,KAAK,MAAM;YACT,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM;QACR,KAAK,MAAM;YACT,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM;QACR,KAAK,WAAW,CAAC;QACjB,KAAK,IAAI,CAAC,CAAC,CAAC;YACV,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YAC1F,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACzB,MAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI,CAAC;QACV,KAAK,SAAS;YACZ,SAAS,EAAE,CAAC;YACZ,MAAM;QACR;YACE,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YACrC,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEjD,KAAK,UAAU,IAAI;IACjB,2CAA2C;IAC3C,IAAI,OAAO,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACvG,UAAU,EAAE,CAAC;IACf,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS;YACZ,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM;QACR,KAAK,OAAO;YACV,MAAM,YAAY,EAAE,CAAC;YACrB,MAAM;QACR,KAAK,OAAO;YACV,MAAM,YAAY,EAAE,CAAC;YACrB,MAAM;QACR,KAAK,MAAM;YACT,MAAM,WAAW,EAAE,CAAC;YACpB,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,cAAc,EAAE,CAAC;YACvB,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,aAAa,EAAE,CAAC;YACtB,MAAM;QACR,KAAK,MAAM;YACT,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM;QACR,KAAK,MAAM;YACT,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM;QACR,KAAK,MAAM;YACT,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM;QACR,KAAK,WAAW,CAAC;QACjB,KAAK,IAAI,CAAC,CAAC,CAAC;YACV,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YAC1F,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACzB,MAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI,CAAC;QACV,KAAK,SAAS;YACZ,SAAS,EAAE,CAAC;YACZ,MAAM;QACR;YACE,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YACrC,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCb,CAAC,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -4,8 +4,17 @@ export declare class ChannelInstaller implements Installer {
|
|
|
4
4
|
constructor(channelName: string);
|
|
5
5
|
checkDeps(): Promise<void>;
|
|
6
6
|
install(version: string, packageUrl?: string): Promise<void>;
|
|
7
|
+
private verifyInstalled;
|
|
7
8
|
configure(config: Record<string, unknown>): Promise<void>;
|
|
8
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Clean up both filesystem state (extensions/<name>) and openclaw.json state
|
|
11
|
+
* (plugins.entries/installs/allow.<name> + channels.<name>) for this channel,
|
|
12
|
+
* atomically. Partial cleanup — e.g., rm-ing the dir but leaving the JSON refs —
|
|
13
|
+
* leaves openclaw's config validation broken and poisons all subsequent
|
|
14
|
+
* `openclaw ...` commands ("unknown channel id: <name>").
|
|
15
|
+
*/
|
|
16
|
+
private cleanupStaleState;
|
|
17
|
+
private hasJsonRef;
|
|
9
18
|
private installFromLocalPackage;
|
|
10
19
|
/**
|
|
11
20
|
* Download tgz from npm (npmmirror) first, then install locally.
|
|
@@ -17,18 +17,29 @@ export class ChannelInstaller {
|
|
|
17
17
|
info(`${this.channelName} is bundled with openclaw, skipping install (config only).`);
|
|
18
18
|
return;
|
|
19
19
|
}
|
|
20
|
-
//
|
|
21
|
-
|
|
20
|
+
// Clean up any stale state (both the extension dir AND config entries) so openclaw's
|
|
21
|
+
// config validation passes when `openclaw plugins install` runs.
|
|
22
|
+
this.cleanupStaleState();
|
|
22
23
|
if (packageUrl) {
|
|
23
24
|
await this.installFromLocalPackage(packageUrl);
|
|
24
25
|
}
|
|
25
26
|
else {
|
|
26
27
|
await this.installViaNpmPack(version);
|
|
27
28
|
}
|
|
29
|
+
// Verify install actually landed — otherwise configure() would write channels.<name>
|
|
30
|
+
// into openclaw.json against a non-existent plugin and brick the runtime.
|
|
31
|
+
this.verifyInstalled();
|
|
28
32
|
// Add to plugins.allow so openclaw trusts this plugin
|
|
29
33
|
await this.addToPluginsAllow();
|
|
30
34
|
info(`${this.channelName}@${version} installed.`);
|
|
31
35
|
}
|
|
36
|
+
verifyInstalled() {
|
|
37
|
+
const pluginDir = `${OPENCLAW_HOME}/extensions/${this.channelName}`;
|
|
38
|
+
if (!existsSync(pluginDir)) {
|
|
39
|
+
throw new Error(`Install verification failed: ${pluginDir} not found after "openclaw plugins install". ` +
|
|
40
|
+
`The install command may have silently skipped due to stale config; aborting before configure() runs.`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
32
43
|
async configure(config) {
|
|
33
44
|
if (!config || Object.keys(config).length === 0)
|
|
34
45
|
return;
|
|
@@ -40,13 +51,63 @@ export class ChannelInstaller {
|
|
|
40
51
|
info(`${this.channelName} configured.`);
|
|
41
52
|
}
|
|
42
53
|
// ---- private ----
|
|
43
|
-
|
|
54
|
+
/**
|
|
55
|
+
* Clean up both filesystem state (extensions/<name>) and openclaw.json state
|
|
56
|
+
* (plugins.entries/installs/allow.<name> + channels.<name>) for this channel,
|
|
57
|
+
* atomically. Partial cleanup — e.g., rm-ing the dir but leaving the JSON refs —
|
|
58
|
+
* leaves openclaw's config validation broken and poisons all subsequent
|
|
59
|
+
* `openclaw ...` commands ("unknown channel id: <name>").
|
|
60
|
+
*/
|
|
61
|
+
cleanupStaleState() {
|
|
44
62
|
const pluginDir = `${OPENCLAW_HOME}/extensions/${this.channelName}`;
|
|
45
|
-
|
|
46
|
-
|
|
63
|
+
const configFile = `${OPENCLAW_HOME}/openclaw.json`;
|
|
64
|
+
const hadDir = existsSync(pluginDir);
|
|
65
|
+
const hadJsonRef = this.hasJsonRef(configFile);
|
|
66
|
+
if (!hadDir && !hadJsonRef)
|
|
67
|
+
return;
|
|
68
|
+
info(`Cleaning stale state for ${this.channelName} (dir=${hadDir}, jsonRefs=${hadJsonRef})`);
|
|
69
|
+
if (hadJsonRef) {
|
|
70
|
+
try {
|
|
71
|
+
const cfg = JSON.parse(readFileSync(configFile, 'utf8'));
|
|
72
|
+
if (cfg.channels)
|
|
73
|
+
delete cfg.channels[this.channelName];
|
|
74
|
+
if (cfg.plugins?.entries)
|
|
75
|
+
delete cfg.plugins.entries[this.channelName];
|
|
76
|
+
if (cfg.plugins?.installs)
|
|
77
|
+
delete cfg.plugins.installs[this.channelName];
|
|
78
|
+
if (Array.isArray(cfg.plugins?.allow)) {
|
|
79
|
+
cfg.plugins.allow = cfg.plugins.allow.filter((p) => p !== this.channelName);
|
|
80
|
+
}
|
|
81
|
+
writeFileSync(configFile, JSON.stringify(cfg, null, 2) + '\n', 'utf8');
|
|
82
|
+
}
|
|
83
|
+
catch (e) {
|
|
84
|
+
warn(`Failed to clean openclaw.json: ${e}`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (hadDir) {
|
|
47
88
|
rmSync(pluginDir, { recursive: true, force: true });
|
|
48
89
|
}
|
|
49
90
|
}
|
|
91
|
+
hasJsonRef(configFile) {
|
|
92
|
+
if (!existsSync(configFile))
|
|
93
|
+
return false;
|
|
94
|
+
try {
|
|
95
|
+
const cfg = JSON.parse(readFileSync(configFile, 'utf8'));
|
|
96
|
+
if (cfg.channels?.[this.channelName])
|
|
97
|
+
return true;
|
|
98
|
+
if (cfg.plugins?.entries?.[this.channelName])
|
|
99
|
+
return true;
|
|
100
|
+
if (cfg.plugins?.installs?.[this.channelName])
|
|
101
|
+
return true;
|
|
102
|
+
if (Array.isArray(cfg.plugins?.allow) && cfg.plugins.allow.includes(this.channelName))
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
// corrupted JSON — let cleanup run anyway
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
50
111
|
async installFromLocalPackage(packageUrl) {
|
|
51
112
|
mkdirSync(OKCLAW_TMP_DIR, { recursive: true });
|
|
52
113
|
const archive = `${OKCLAW_TMP_DIR}/${this.channelName}-plugin.tgz`;
|
|
@@ -119,9 +180,9 @@ export class ChannelInstaller {
|
|
|
119
180
|
}
|
|
120
181
|
else {
|
|
121
182
|
const strVal = String(value).replace(/'/g, "'\\''");
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
});
|
|
183
|
+
// Let errors propagate — silently skipping a config set leaves openclaw.json
|
|
184
|
+
// in a half-written state that breaks config validation at runtime.
|
|
185
|
+
await shell(`openclaw config set '${path}' '${strVal}'`);
|
|
125
186
|
}
|
|
126
187
|
}
|
|
127
188
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/installers/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAErF,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE3H,MAAM,OAAO,gBAAgB;IACP;IAApB,YAAoB,WAAmB;QAAnB,gBAAW,GAAX,WAAW,CAAQ;IAAG,CAAC;IAE3C,KAAK,CAAC,SAAS;QACb,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,UAAmB;QAChD,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,4DAA4D,CAAC,CAAC;YACtF,OAAO;QACT,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/installers/channel.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@okclaw-build/cli",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.7",
|
|
4
4
|
"description": "OKClaw deployment CLI - install and manage OpenClaw, OpenViking, and channel plugins",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
"scripts": {
|
|
11
11
|
"build": "tsc",
|
|
12
12
|
"dev": "tsc --watch",
|
|
13
|
-
"prepublishOnly": "npm run build"
|
|
13
|
+
"prepublishOnly": "npm run build",
|
|
14
|
+
"test": "tsc -p tsconfig.test.json && node --test dist-test/tests/**/*.test.js"
|
|
14
15
|
},
|
|
15
16
|
"keywords": ["openclaw", "openviking", "deploy", "cli"],
|
|
16
17
|
"license": "MIT",
|