@okclaw-build/cli 1.0.0-beta.50 → 1.0.0-beta.53
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/backup.js +31 -4
- package/dist/commands/backup.js.map +1 -1
- package/dist/commands/install.js +30 -17
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/restore.js +31 -4
- package/dist/commands/restore.js.map +1 -1
- package/dist/commands/skill.js +37 -14
- package/dist/commands/skill.js.map +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/installers/base.d.ts +2 -1
- package/dist/installers/channel.d.ts +3 -2
- package/dist/installers/channel.js +32 -26
- package/dist/installers/channel.js.map +1 -1
- package/dist/installers/openclaw.js +25 -12
- package/dist/installers/openclaw.js.map +1 -1
- package/dist/installers/skill.d.ts +3 -2
- package/dist/installers/skill.js +39 -20
- package/dist/installers/skill.js.map +1 -1
- package/dist/openclaw-user-data.d.ts +22 -2
- package/dist/openclaw-user-data.js +165 -26
- package/dist/openclaw-user-data.js.map +1 -1
- package/dist/utils/constants.d.ts +0 -8
- package/dist/utils/constants.js +0 -14
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/install-safety.d.ts +25 -0
- package/dist/utils/install-safety.js +95 -0
- package/dist/utils/install-safety.js.map +1 -0
- package/dist/utils/shell.d.ts +11 -0
- package/dist/utils/shell.js +58 -0
- package/dist/utils/shell.js.map +1 -1
- package/package.json +4 -3
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { existsSync, cpSync, mkdirSync, rmSync, statSync, lstatSync, chmodSync, readdirSync, } from 'node:fs';
|
|
1
|
+
import { existsSync, cpSync, mkdirSync, rmSync, statSync, lstatSync, chmodSync, readdirSync, readlinkSync, } from 'node:fs';
|
|
2
2
|
import { posix as pathPosix } from 'node:path';
|
|
3
3
|
import { shell, shellCapture } from './utils/shell.js';
|
|
4
|
+
import { warn } from './utils/logger.js';
|
|
4
5
|
import { OKCLAW_BACKUP_DIR, OPENCLAW_WORKSPACE } from './utils/constants.js';
|
|
5
6
|
export const OPENCLAW_USER_DATA_FILES = [
|
|
6
7
|
'MEMORY.md',
|
|
@@ -11,12 +12,24 @@ export const OPENCLAW_USER_DATA_FILES = [
|
|
|
11
12
|
'AGENTS.md',
|
|
12
13
|
'HEARTBEAT.md',
|
|
13
14
|
];
|
|
15
|
+
export const OPENCLAW_CLONE_USER_DATA_FILES = [
|
|
16
|
+
'IDENTITY.md',
|
|
17
|
+
'SOUL.md',
|
|
18
|
+
'TOOLS.md',
|
|
19
|
+
'AGENTS.md',
|
|
20
|
+
];
|
|
14
21
|
export const LEGACY_OPENCLAW_WORKSPACE = '/root/openclaw/workspace';
|
|
15
22
|
const WORKSPACE_BACKUP_DIR = 'workspace';
|
|
16
23
|
const LEGACY_WORKSPACE_BACKUP_DIR = 'workspace-root-openclaw';
|
|
17
24
|
const SKILLS_DIR = 'skills';
|
|
18
|
-
const
|
|
19
|
-
|
|
25
|
+
const realBackupFs = {
|
|
26
|
+
existsSync,
|
|
27
|
+
mkdirSync,
|
|
28
|
+
cpSync,
|
|
29
|
+
statSync,
|
|
30
|
+
readdirSync: readdirSync,
|
|
31
|
+
readlinkSync,
|
|
32
|
+
};
|
|
20
33
|
const realArchiveFs = { ...realBackupFs, readdirSync: readdirSync };
|
|
21
34
|
const realRestoreFs = {
|
|
22
35
|
...realBackupFs,
|
|
@@ -34,7 +47,8 @@ function copyIfExists(fsOps, src, dest, recursive = false) {
|
|
|
34
47
|
fsOps.cpSync(src, dest, recursive ? { recursive: true } : undefined);
|
|
35
48
|
return true;
|
|
36
49
|
}
|
|
37
|
-
export function backupOpenclawUserData(now = new Date(), fsOps = realBackupFs) {
|
|
50
|
+
export function backupOpenclawUserData(now = new Date(), fsOps = realBackupFs, options = {}) {
|
|
51
|
+
const files = getUserDataFilesForScope(options.scope);
|
|
38
52
|
const backupDir = `${OKCLAW_BACKUP_DIR}/openclaw-user-data-${formatBackupTimestamp(now)}`;
|
|
39
53
|
const workspaces = Array.from(new Set([OPENCLAW_WORKSPACE, LEGACY_OPENCLAW_WORKSPACE]));
|
|
40
54
|
let copiedItems = 0;
|
|
@@ -42,22 +56,26 @@ export function backupOpenclawUserData(now = new Date(), fsOps = realBackupFs) {
|
|
|
42
56
|
for (const workspace of workspaces) {
|
|
43
57
|
if (!fsOps.existsSync(workspace))
|
|
44
58
|
continue;
|
|
45
|
-
const workspaceBackupName =
|
|
59
|
+
const workspaceBackupName = options.includeWorkspaceExtra
|
|
60
|
+
? (workspace === OPENCLAW_WORKSPACE ? WORKSPACE_BACKUP_DIR : LEGACY_WORKSPACE_BACKUP_DIR)
|
|
61
|
+
: (copiedWorkspaces === 0 ? WORKSPACE_BACKUP_DIR : LEGACY_WORKSPACE_BACKUP_DIR);
|
|
46
62
|
const workspaceBackupDir = `${backupDir}/${workspaceBackupName}`;
|
|
47
63
|
let workspaceDirCreated = false;
|
|
64
|
+
const copiedRootEntries = new Set();
|
|
48
65
|
const ensureWorkspaceBackupDir = () => {
|
|
49
66
|
if (workspaceDirCreated)
|
|
50
67
|
return;
|
|
51
68
|
fsOps.mkdirSync(workspaceBackupDir, { recursive: true });
|
|
52
69
|
workspaceDirCreated = true;
|
|
53
70
|
};
|
|
54
|
-
for (const file of
|
|
71
|
+
for (const file of files) {
|
|
55
72
|
const src = `${workspace}/${file}`;
|
|
56
73
|
if (!fsOps.existsSync(src))
|
|
57
74
|
continue;
|
|
58
75
|
ensureWorkspaceBackupDir();
|
|
59
76
|
if (copyIfExists(fsOps, src, `${workspaceBackupDir}/${file}`)) {
|
|
60
77
|
copiedItems += 1;
|
|
78
|
+
copiedRootEntries.add(file);
|
|
61
79
|
}
|
|
62
80
|
}
|
|
63
81
|
const skillsDir = `${workspace}/${SKILLS_DIR}`;
|
|
@@ -65,19 +83,111 @@ export function backupOpenclawUserData(now = new Date(), fsOps = realBackupFs) {
|
|
|
65
83
|
ensureWorkspaceBackupDir();
|
|
66
84
|
if (copyIfExists(fsOps, skillsDir, `${workspaceBackupDir}/${SKILLS_DIR}`, true)) {
|
|
67
85
|
copiedItems += 1;
|
|
86
|
+
copiedRootEntries.add(SKILLS_DIR);
|
|
68
87
|
}
|
|
69
88
|
}
|
|
89
|
+
if (options.scope !== 'clone' && options.includeWorkspaceExtra) {
|
|
90
|
+
copiedItems += copyWorkspaceExtraEntries(fsOps, workspace, workspaceBackupDir, copiedRootEntries, ensureWorkspaceBackupDir, options.onSkip ?? defaultBackupSkip);
|
|
91
|
+
}
|
|
70
92
|
if (workspaceDirCreated) {
|
|
71
93
|
copiedWorkspaces += 1;
|
|
72
94
|
}
|
|
73
95
|
}
|
|
74
96
|
return copiedItems > 0 ? backupDir : null;
|
|
75
97
|
}
|
|
98
|
+
function getUserDataFilesForScope(scope = 'user-data') {
|
|
99
|
+
return scope === 'clone' ? OPENCLAW_CLONE_USER_DATA_FILES : OPENCLAW_USER_DATA_FILES;
|
|
100
|
+
}
|
|
101
|
+
function defaultBackupSkip(relativePath, reason) {
|
|
102
|
+
warn(`全量迁移跳过不可移植条目 ${relativePath}: ${reason}`);
|
|
103
|
+
}
|
|
104
|
+
// 全量模式只把"可移植"条目纳入归档,让归档天生可在目标主机还原:
|
|
105
|
+
// 普通文件、目录、以及目标仍落在 workspace 内的软链都保留;指向 workspace 之外的软链
|
|
106
|
+
// 和 socket/fifo 等特殊文件在 backup 阶段就跳过并告警,而不是搬进去等 restore 整包失败。
|
|
107
|
+
function copyWorkspaceExtraEntries(fsOps, workspace, workspaceBackupDir, copiedRootEntries, ensureWorkspaceBackupDir, onSkip) {
|
|
108
|
+
if (!fsOps.readdirSync) {
|
|
109
|
+
throw new Error('backup fs does not support readdirSync for full workspace backup');
|
|
110
|
+
}
|
|
111
|
+
let copied = 0;
|
|
112
|
+
for (const entry of fsOps.readdirSync(workspace, { withFileTypes: true })) {
|
|
113
|
+
if (copiedRootEntries.has(entry.name))
|
|
114
|
+
continue;
|
|
115
|
+
const src = `${workspace}/${entry.name}`;
|
|
116
|
+
const dest = `${workspaceBackupDir}/${entry.name}`;
|
|
117
|
+
const rel = entry.name;
|
|
118
|
+
if (entry.isSymbolicLink?.()) {
|
|
119
|
+
if (!isPortableSymlink(fsOps, src, rel, onSkip))
|
|
120
|
+
continue;
|
|
121
|
+
ensureWorkspaceBackupDir();
|
|
122
|
+
fsOps.cpSync(src, dest);
|
|
123
|
+
copied += 1;
|
|
124
|
+
copiedRootEntries.add(entry.name);
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
if (entry.isDirectory()) {
|
|
128
|
+
ensureWorkspaceBackupDir();
|
|
129
|
+
copyPortableTree(fsOps, src, dest, rel, onSkip);
|
|
130
|
+
copied += 1;
|
|
131
|
+
copiedRootEntries.add(entry.name);
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
if (entry.isFile()) {
|
|
135
|
+
ensureWorkspaceBackupDir();
|
|
136
|
+
fsOps.cpSync(src, dest);
|
|
137
|
+
copied += 1;
|
|
138
|
+
copiedRootEntries.add(entry.name);
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
onSkip(rel, '不支持的文件类型');
|
|
142
|
+
}
|
|
143
|
+
return copied;
|
|
144
|
+
}
|
|
145
|
+
// 递归拷贝目录,逐项套用与 restore 校验一致的"可移植"判定,使嵌套软链/特殊文件也被过滤。
|
|
146
|
+
function copyPortableTree(fsOps, srcDir, destDir, relDir, onSkip) {
|
|
147
|
+
if (!fsOps.readdirSync) {
|
|
148
|
+
throw new Error('backup fs does not support readdirSync for full workspace backup');
|
|
149
|
+
}
|
|
150
|
+
fsOps.mkdirSync(destDir, { recursive: true });
|
|
151
|
+
for (const entry of fsOps.readdirSync(srcDir, { withFileTypes: true })) {
|
|
152
|
+
const src = `${srcDir}/${entry.name}`;
|
|
153
|
+
const dest = `${destDir}/${entry.name}`;
|
|
154
|
+
const rel = relDir ? `${relDir}/${entry.name}` : entry.name;
|
|
155
|
+
if (entry.isSymbolicLink?.()) {
|
|
156
|
+
if (isPortableSymlink(fsOps, src, rel, onSkip)) {
|
|
157
|
+
fsOps.cpSync(src, dest);
|
|
158
|
+
}
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
if (entry.isDirectory()) {
|
|
162
|
+
copyPortableTree(fsOps, src, dest, rel, onSkip);
|
|
163
|
+
continue;
|
|
164
|
+
}
|
|
165
|
+
if (entry.isFile()) {
|
|
166
|
+
fsOps.cpSync(src, dest);
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
onSkip(rel, '不支持的文件类型');
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
function isPortableSymlink(fsOps, src, rel, onSkip) {
|
|
173
|
+
if (!fsOps.readlinkSync) {
|
|
174
|
+
throw new Error('backup fs does not support readlinkSync for full workspace backup');
|
|
175
|
+
}
|
|
176
|
+
const target = fsOps.readlinkSync(src);
|
|
177
|
+
if (symlinkTargetWithinWorkspace(rel, target))
|
|
178
|
+
return true;
|
|
179
|
+
onSkip(rel, `软链目标逃逸 workspace: ${target}`);
|
|
180
|
+
return false;
|
|
181
|
+
}
|
|
76
182
|
export async function createOpenclawUserDataArchive(options = {}) {
|
|
77
183
|
const now = options.now ?? new Date();
|
|
78
184
|
const fsOps = options.fsOps ?? realArchiveFs;
|
|
79
185
|
const shellOps = options.shellOps ?? { shell };
|
|
80
|
-
const backupDir = backupOpenclawUserData(now, fsOps
|
|
186
|
+
const backupDir = backupOpenclawUserData(now, fsOps, {
|
|
187
|
+
scope: options.scope,
|
|
188
|
+
includeWorkspaceExtra: options.includeWorkspaceExtra,
|
|
189
|
+
onSkip: options.onSkip,
|
|
190
|
+
});
|
|
81
191
|
if (!backupDir) {
|
|
82
192
|
return { backupDir: null, archivePath: null, includedFiles: [] };
|
|
83
193
|
}
|
|
@@ -109,16 +219,21 @@ export async function restoreOpenclawUserDataArchive(options) {
|
|
|
109
219
|
validateArchiveEntries(entries);
|
|
110
220
|
fsOps.mkdirSync(OPENCLAW_WORKSPACE, { recursive: true });
|
|
111
221
|
fsOps.chmodSync(OPENCLAW_WORKSPACE, 0o755);
|
|
112
|
-
const restored = new
|
|
113
|
-
restoreWorkspaceBackup(fsOps, `${stagingDir}/${WORKSPACE_BACKUP_DIR}`, restored);
|
|
114
|
-
restoreWorkspaceBackup(fsOps, `${stagingDir}/${LEGACY_WORKSPACE_BACKUP_DIR}`, restored);
|
|
115
|
-
|
|
222
|
+
const restored = new Map();
|
|
223
|
+
restoreWorkspaceBackup(fsOps, `${stagingDir}/${WORKSPACE_BACKUP_DIR}`, restored, options.scope);
|
|
224
|
+
restoreWorkspaceBackup(fsOps, `${stagingDir}/${LEGACY_WORKSPACE_BACKUP_DIR}`, restored, options.scope);
|
|
225
|
+
if (options.scope !== 'clone' && options.includeWorkspaceExtra) {
|
|
226
|
+
restoreWorkspaceExtraEntries(fsOps, `${stagingDir}/${WORKSPACE_BACKUP_DIR}`, restored);
|
|
227
|
+
restoreWorkspaceExtraEntries(fsOps, `${stagingDir}/${LEGACY_WORKSPACE_BACKUP_DIR}`, restored);
|
|
228
|
+
}
|
|
229
|
+
const restoredFiles = Array.from(restored.keys()).sort();
|
|
116
230
|
for (const file of restoredFiles) {
|
|
117
231
|
const path = `${OPENCLAW_WORKSPACE}/${file}`;
|
|
118
|
-
|
|
232
|
+
const type = restored.get(file);
|
|
233
|
+
if (type === 'directory') {
|
|
119
234
|
applyRestoredPermissions(fsOps, path);
|
|
120
235
|
}
|
|
121
|
-
else {
|
|
236
|
+
else if (type === 'file') {
|
|
122
237
|
fsOps.chmodSync(path, 0o644);
|
|
123
238
|
}
|
|
124
239
|
}
|
|
@@ -149,13 +264,13 @@ function parseTarVerboseEntries(stdout) {
|
|
|
149
264
|
const modeType = line[0];
|
|
150
265
|
const tokens = line.split(/\s+/);
|
|
151
266
|
const rawPath = tokens.slice(5).join(' ');
|
|
152
|
-
const linkIndex = rawPath.indexOf(' -> ');
|
|
153
|
-
const path = linkIndex >= 0 ? rawPath.slice(0, linkIndex) : rawPath;
|
|
154
|
-
const linkTarget = linkIndex >= 0 ? rawPath.slice(linkIndex + ' -> '.length) : undefined;
|
|
155
267
|
const type = modeType === '-' ? 'file'
|
|
156
268
|
: modeType === 'd' ? 'directory'
|
|
157
269
|
: modeType === 'l' ? 'symlink'
|
|
158
270
|
: 'unsupported';
|
|
271
|
+
const linkIndex = type === 'symlink' ? rawPath.indexOf(' -> ') : -1;
|
|
272
|
+
const path = linkIndex >= 0 ? rawPath.slice(0, linkIndex) : rawPath;
|
|
273
|
+
const linkTarget = linkIndex >= 0 ? rawPath.slice(linkIndex + ' -> '.length) : undefined;
|
|
159
274
|
return { type, path, linkTarget, raw: line };
|
|
160
275
|
});
|
|
161
276
|
}
|
|
@@ -177,13 +292,20 @@ function assertSymlinkWithinWorkspace(entry) {
|
|
|
177
292
|
if (relative === null || !target) {
|
|
178
293
|
throw new Error(`unsafe archive symlink: ${entry.raw}`);
|
|
179
294
|
}
|
|
180
|
-
|
|
295
|
+
if (!symlinkTargetWithinWorkspace(relative, target)) {
|
|
296
|
+
throw new Error(`unsafe archive symlink target: ${entry.raw}`);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
// backup 过滤与 restore 校验共用的判定:软链在还原到 OPENCLAW_WORKSPACE 后,
|
|
300
|
+
// 其目标是否仍落在 workspace 内。relativePath 是软链相对 workspace 根的路径。
|
|
301
|
+
function symlinkTargetWithinWorkspace(relativePath, target) {
|
|
302
|
+
if (!target)
|
|
303
|
+
return false;
|
|
304
|
+
const linkDir = pathPosix.dirname(`${OPENCLAW_WORKSPACE}/${relativePath}`);
|
|
181
305
|
const resolvedTarget = target.startsWith('/')
|
|
182
306
|
? pathPosix.normalize(target)
|
|
183
307
|
: pathPosix.normalize(pathPosix.join(linkDir, target));
|
|
184
|
-
|
|
185
|
-
throw new Error(`unsafe archive symlink target: ${entry.raw}`);
|
|
186
|
-
}
|
|
308
|
+
return resolvedTarget === OPENCLAW_WORKSPACE || resolvedTarget.startsWith(`${OPENCLAW_WORKSPACE}/`);
|
|
187
309
|
}
|
|
188
310
|
function workspaceRelativePath(entryPath) {
|
|
189
311
|
const normalized = normalizeArchiveEntry(entryPath);
|
|
@@ -195,23 +317,41 @@ function workspaceRelativePath(entryPath) {
|
|
|
195
317
|
}
|
|
196
318
|
return null;
|
|
197
319
|
}
|
|
198
|
-
function restoreWorkspaceBackup(fsOps, backupWorkspaceDir, restored) {
|
|
320
|
+
function restoreWorkspaceBackup(fsOps, backupWorkspaceDir, restored, scope = 'user-data') {
|
|
199
321
|
if (!fsOps.existsSync(backupWorkspaceDir))
|
|
200
322
|
return;
|
|
201
|
-
for (const file of
|
|
323
|
+
for (const file of getUserDataFilesForScope(scope)) {
|
|
202
324
|
if (restored.has(file))
|
|
203
325
|
continue;
|
|
204
326
|
const src = `${backupWorkspaceDir}/${file}`;
|
|
205
327
|
if (!fsOps.existsSync(src))
|
|
206
328
|
continue;
|
|
207
329
|
fsOps.cpSync(src, `${OPENCLAW_WORKSPACE}/${file}`);
|
|
208
|
-
restored.
|
|
330
|
+
restored.set(file, 'file');
|
|
209
331
|
}
|
|
210
332
|
const skillsSrc = `${backupWorkspaceDir}/${SKILLS_DIR}`;
|
|
211
333
|
if (!restored.has(SKILLS_DIR) && fsOps.existsSync(skillsSrc) && fsOps.statSync(skillsSrc).isDirectory()) {
|
|
212
334
|
fsOps.rmSync(`${OPENCLAW_WORKSPACE}/${SKILLS_DIR}`, { recursive: true, force: true });
|
|
213
335
|
fsOps.cpSync(skillsSrc, `${OPENCLAW_WORKSPACE}/${SKILLS_DIR}`, { recursive: true });
|
|
214
|
-
restored.
|
|
336
|
+
restored.set(SKILLS_DIR, 'directory');
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
function restoreWorkspaceExtraEntries(fsOps, backupWorkspaceDir, restored) {
|
|
340
|
+
if (!fsOps.existsSync(backupWorkspaceDir))
|
|
341
|
+
return;
|
|
342
|
+
for (const entry of fsOps.readdirSync(backupWorkspaceDir, { withFileTypes: true })) {
|
|
343
|
+
if (restored.has(entry.name))
|
|
344
|
+
continue;
|
|
345
|
+
const src = `${backupWorkspaceDir}/${entry.name}`;
|
|
346
|
+
const dest = `${OPENCLAW_WORKSPACE}/${entry.name}`;
|
|
347
|
+
fsOps.rmSync(dest, { recursive: true, force: true });
|
|
348
|
+
if (entry.isDirectory()) {
|
|
349
|
+
fsOps.cpSync(src, dest, { recursive: true });
|
|
350
|
+
restored.set(entry.name, 'directory');
|
|
351
|
+
continue;
|
|
352
|
+
}
|
|
353
|
+
fsOps.cpSync(src, dest);
|
|
354
|
+
restored.set(entry.name, entry.isSymbolicLink?.() ? 'symlink' : 'file');
|
|
215
355
|
}
|
|
216
356
|
}
|
|
217
357
|
function applyRestoredPermissions(fsOps, path) {
|
|
@@ -256,8 +396,7 @@ function validateArchiveEntries(entries) {
|
|
|
256
396
|
continue;
|
|
257
397
|
const parts = normalized.split('/');
|
|
258
398
|
if (entry.startsWith('/') ||
|
|
259
|
-
parts.includes('..')
|
|
260
|
-
parts.includes(OPENCLAW_CONFIG_FILE)) {
|
|
399
|
+
parts.includes('..')) {
|
|
261
400
|
throw new Error(`unsafe archive entry: ${entry}`);
|
|
262
401
|
}
|
|
263
402
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openclaw-user-data.js","sourceRoot":"","sources":["../src/openclaw-user-data.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openclaw-user-data.js","sourceRoot":"","sources":["../src/openclaw-user-data.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,10 +5,6 @@ export declare const OKCLAW_TMP_DIR = "/root/okclaw/tmp";
|
|
|
5
5
|
export declare const OPENCLAW_HOME = "/root/.openclaw";
|
|
6
6
|
export declare const OPENCLAW_WORKSPACE = "/root/.openclaw/workspace";
|
|
7
7
|
export declare const OPENCLAW_GATEWAY_PORT = 18789;
|
|
8
|
-
export declare const OPENVIKING_HOME = "/root/.openviking";
|
|
9
|
-
export declare const OPENVIKING_CONF = "/root/.openviking/ov.conf";
|
|
10
|
-
export declare const OPENVIKING_ENV = "/root/.openclaw/openviking.env";
|
|
11
|
-
export declare const OPENVIKING_PORT = 1933;
|
|
12
8
|
export declare const NODE_MIN_MAJOR = 24;
|
|
13
9
|
export declare const NODE_MIN_MINOR = 0;
|
|
14
10
|
export declare const NODE_INSTALL_VERSION = "24";
|
|
@@ -21,9 +17,5 @@ export declare const NODE_MIRROR = "https://npmmirror.com/mirrors/node";
|
|
|
21
17
|
export declare const JSDELIVR_GH = "https://cdn.jsdelivr.net/gh";
|
|
22
18
|
export declare const NVM_VERSION = "v0.40.3";
|
|
23
19
|
export declare const NVM_SH_SOURCES: string[];
|
|
24
|
-
export declare const OPENVIKING_REPO = "volcengine/OpenViking";
|
|
25
|
-
export declare const OPENVIKING_PLUGIN_DIR = "examples/openclaw-plugin";
|
|
26
|
-
export declare const OPENVIKING_PLUGIN_REQUIRED_FILES: string[];
|
|
27
|
-
export declare const OPENVIKING_PLUGIN_OPTIONAL_FILES: string[];
|
|
28
20
|
export declare const CHANNEL_NPM_PACKAGES: Record<string, string>;
|
|
29
21
|
export declare const BUNDLED_PLUGINS: Set<string>;
|
package/dist/utils/constants.js
CHANGED
|
@@ -9,10 +9,6 @@ export const OPENCLAW_WORKSPACE = `${OPENCLAW_HOME}/workspace`;
|
|
|
9
9
|
// (`openclaw gateway run` → `openclaw`,systemd → `node`),所以进程识别一律
|
|
10
10
|
// 按这个监听端口来,不能用 `ps -C` / `pkill -f` 匹配进程名。
|
|
11
11
|
export const OPENCLAW_GATEWAY_PORT = 18789;
|
|
12
|
-
export const OPENVIKING_HOME = '/root/.openviking';
|
|
13
|
-
export const OPENVIKING_CONF = `${OPENVIKING_HOME}/ov.conf`;
|
|
14
|
-
export const OPENVIKING_ENV = `${OPENCLAW_HOME}/openviking.env`;
|
|
15
|
-
export const OPENVIKING_PORT = 1933;
|
|
16
12
|
// Node baseline — standardize on the current LTS (Node 24, "Krypton").
|
|
17
13
|
// openclaw keeps raising its own minimum over time (e.g. >=22.19), so any
|
|
18
14
|
// host sitting on an older Node makes `openclaw onboard` fail with
|
|
@@ -48,16 +44,6 @@ export const NVM_SH_SOURCES = [
|
|
|
48
44
|
`https://gitee.com/mirrors/nvm/raw/${NVM_VERSION}/nvm.sh`,
|
|
49
45
|
`https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/nvm.sh`,
|
|
50
46
|
];
|
|
51
|
-
export const OPENVIKING_REPO = 'volcengine/OpenViking';
|
|
52
|
-
export const OPENVIKING_PLUGIN_DIR = 'examples/openclaw-plugin';
|
|
53
|
-
// Plugin files to download (same as ov-install)
|
|
54
|
-
export const OPENVIKING_PLUGIN_REQUIRED_FILES = ['index.ts', 'config.ts', 'package.json'];
|
|
55
|
-
export const OPENVIKING_PLUGIN_OPTIONAL_FILES = [
|
|
56
|
-
'context-engine.ts', 'client.ts', 'process-manager.ts',
|
|
57
|
-
'memory-ranking.ts', 'text-utils.ts', 'tool-call-id.ts',
|
|
58
|
-
'session-transcript-repair.ts', 'openclaw.plugin.json',
|
|
59
|
-
'tsconfig.json',
|
|
60
|
-
];
|
|
61
47
|
// Channel npm package mapping
|
|
62
48
|
export const CHANNEL_NPM_PACKAGES = {
|
|
63
49
|
dingtalk: '@soimy/dingtalk',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;AAC1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,WAAW,SAAS,CAAC;AACzD,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,WAAW,SAAS,CAAC;AACzD,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,WAAW,MAAM,CAAC;AAEnD,MAAM,CAAC,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAC/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,aAAa,YAAY,CAAC;AAC/D,0DAA0D;AAC1D,kEAAkE;AAClE,2CAA2C;AAC3C,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAC3C,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;AAC1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,WAAW,SAAS,CAAC;AACzD,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,WAAW,SAAS,CAAC;AACzD,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,WAAW,MAAM,CAAC;AAEnD,MAAM,CAAC,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAC/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,aAAa,YAAY,CAAC;AAC/D,0DAA0D;AAC1D,kEAAkE;AAClE,2CAA2C;AAC3C,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAC3C,uEAAuE;AACvE,0EAA0E;AAC1E,mEAAmE;AACnE,6EAA6E;AAC7E,oEAAoE;AACpE,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAChC,4EAA4E;AAC5E,mEAAmE;AACnE,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAEzC,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG,gCAAgC,CAAC;AAC7D,8EAA8E;AAC9E,gFAAgF;AAChF,wEAAwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AAC7D,MAAM,CAAC,MAAM,WAAW,GAAG,mBAAmB,CAAC;AAC/C,MAAM,CAAC,MAAM,aAAa,GAAG,0CAA0C,CAAC;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAG,2BAA2B,CAAC;AAC5D,MAAM,CAAC,MAAM,WAAW,GAAG,oCAAoC,CAAC;AAEhE,wEAAwE;AACxE,MAAM,CAAC,MAAM,WAAW,GAAG,6BAA6B,CAAC;AAEzD,4EAA4E;AAC5E,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,gFAAgF;AAChF,gFAAgF;AAChF,iCAAiC;AACjC,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AACrC,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,GAAG,WAAW,eAAe,WAAW,SAAS;IACjD,qCAAqC,WAAW,SAAS;IACzD,gDAAgD,WAAW,SAAS;CACrE,CAAC;AACF,8BAA8B;AAC9B,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,QAAQ,EAAE,iBAAiB;IAC3B,MAAM,EAAE,iCAAiC;IACzC,iDAAiD;IACjD,mEAAmE;CACpE,CAAC;AAEF,yEAAyE;AACzE,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export type InstallComponentKind = 'openclaw' | 'channel' | 'skill';
|
|
2
|
+
export interface ParsedInstallComponent {
|
|
3
|
+
kind: InstallComponentKind;
|
|
4
|
+
raw: string;
|
|
5
|
+
channelName?: string;
|
|
6
|
+
skillName?: string;
|
|
7
|
+
}
|
|
8
|
+
export type PackageSource = {
|
|
9
|
+
kind: 'remote';
|
|
10
|
+
url: string;
|
|
11
|
+
} | {
|
|
12
|
+
kind: 'local';
|
|
13
|
+
path: string;
|
|
14
|
+
};
|
|
15
|
+
export type SafePackageVersion = string & {
|
|
16
|
+
readonly __safePackageVersion: unique symbol;
|
|
17
|
+
};
|
|
18
|
+
export declare function parseInstallComponent(component: string): ParsedInstallComponent;
|
|
19
|
+
export declare function assertSafeInstallName(kind: 'channel' | 'skill', name: string): string;
|
|
20
|
+
export declare function assertSafePackageVersion(version: string): SafePackageVersion;
|
|
21
|
+
export declare function parsePackageSource(raw: string): PackageSource;
|
|
22
|
+
export declare function resolveInside(baseDir: string, ...segments: string[]): string;
|
|
23
|
+
export declare function channelExtensionDir(channelName: string): string;
|
|
24
|
+
export declare function skillInstallDir(skillName: string): string;
|
|
25
|
+
export declare function tmpInstallPath(fileName: string): string;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { isAbsolute, resolve, sep } from 'node:path';
|
|
2
|
+
import { BUNDLED_PLUGINS, CHANNEL_NPM_PACKAGES, OKCLAW_TMP_DIR, OPENCLAW_HOME, OPENCLAW_WORKSPACE, } from './constants.js';
|
|
3
|
+
const CHANNEL_NAMES = new Set([
|
|
4
|
+
...Object.keys(CHANNEL_NPM_PACKAGES),
|
|
5
|
+
...BUNDLED_PLUGINS,
|
|
6
|
+
's3',
|
|
7
|
+
]);
|
|
8
|
+
const NAME_TOKEN_PATTERN = /^[A-Za-z0-9._-]+$/;
|
|
9
|
+
const VERSION_PATTERN = /^[A-Za-z0-9._+-]+$/;
|
|
10
|
+
const SHELL_METACHAR_PATTERN = /[`$;|<>]/;
|
|
11
|
+
const CONTROL_PATTERN = /[\x00-\x1F\x7F]/;
|
|
12
|
+
export function parseInstallComponent(component) {
|
|
13
|
+
if (component === 'openclaw')
|
|
14
|
+
return { kind: 'openclaw', raw: component };
|
|
15
|
+
if (component.startsWith('skill:')) {
|
|
16
|
+
const skillName = component.slice('skill:'.length);
|
|
17
|
+
return { kind: 'skill', raw: component, skillName: assertSafeInstallName('skill', skillName) };
|
|
18
|
+
}
|
|
19
|
+
if (CHANNEL_NAMES.has(component)) {
|
|
20
|
+
return { kind: 'channel', raw: component, channelName: assertSafeInstallName('channel', component) };
|
|
21
|
+
}
|
|
22
|
+
throw new Error(`Unsupported install component: ${component}`);
|
|
23
|
+
}
|
|
24
|
+
export function assertSafeInstallName(kind, name) {
|
|
25
|
+
const message = `Invalid ${kind} name: ${name}`;
|
|
26
|
+
const maxLength = kind === 'skill' ? 128 : 64;
|
|
27
|
+
if (!name || name.length > maxLength || name === '.' || name === '..') {
|
|
28
|
+
throw new Error(message);
|
|
29
|
+
}
|
|
30
|
+
if (!NAME_TOKEN_PATTERN.test(name) || name.includes('..')) {
|
|
31
|
+
throw new Error(message);
|
|
32
|
+
}
|
|
33
|
+
return name;
|
|
34
|
+
}
|
|
35
|
+
export function assertSafePackageVersion(version) {
|
|
36
|
+
if (!version
|
|
37
|
+
|| version.length > 128
|
|
38
|
+
|| !VERSION_PATTERN.test(version)
|
|
39
|
+
|| version.includes('..')
|
|
40
|
+
|| version.includes('/')
|
|
41
|
+
|| version.includes('\\')
|
|
42
|
+
|| /\s/.test(version)
|
|
43
|
+
|| CONTROL_PATTERN.test(version)) {
|
|
44
|
+
throw new Error(`Invalid package version: ${version}`);
|
|
45
|
+
}
|
|
46
|
+
return version;
|
|
47
|
+
}
|
|
48
|
+
export function parsePackageSource(raw) {
|
|
49
|
+
if (hasUnsafePackageSourceChars(raw)) {
|
|
50
|
+
throw new Error(`Invalid packageUrl: ${raw}`);
|
|
51
|
+
}
|
|
52
|
+
let parsed;
|
|
53
|
+
try {
|
|
54
|
+
parsed = new URL(raw);
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
parsed = undefined;
|
|
58
|
+
}
|
|
59
|
+
if (parsed?.protocol === 'http:' || parsed?.protocol === 'https:') {
|
|
60
|
+
return { kind: 'remote', url: raw };
|
|
61
|
+
}
|
|
62
|
+
if (parsed && parsed.protocol !== 'file:') {
|
|
63
|
+
throw new Error(`Invalid packageUrl: ${raw}`);
|
|
64
|
+
}
|
|
65
|
+
if (!isAbsolute(raw)) {
|
|
66
|
+
throw new Error(`Invalid packageUrl: local package must be an absolute path: ${raw}`);
|
|
67
|
+
}
|
|
68
|
+
if (raw.split(/[\\/]+/).includes('..')) {
|
|
69
|
+
throw new Error(`Invalid packageUrl: ${raw}`);
|
|
70
|
+
}
|
|
71
|
+
return { kind: 'local', path: raw };
|
|
72
|
+
}
|
|
73
|
+
export function resolveInside(baseDir, ...segments) {
|
|
74
|
+
const base = resolve(baseDir);
|
|
75
|
+
const target = resolve(base, ...segments);
|
|
76
|
+
if (target !== base && !target.startsWith(`${base}${sep}`)) {
|
|
77
|
+
throw new Error(`Resolved path outside base directory: ${target}`);
|
|
78
|
+
}
|
|
79
|
+
return target;
|
|
80
|
+
}
|
|
81
|
+
export function channelExtensionDir(channelName) {
|
|
82
|
+
return resolveInside(OPENCLAW_HOME, 'extensions', assertSafeInstallName('channel', channelName));
|
|
83
|
+
}
|
|
84
|
+
export function skillInstallDir(skillName) {
|
|
85
|
+
return resolveInside(OPENCLAW_WORKSPACE, 'skills', assertSafeInstallName('skill', skillName));
|
|
86
|
+
}
|
|
87
|
+
export function tmpInstallPath(fileName) {
|
|
88
|
+
return resolveInside(OKCLAW_TMP_DIR, assertSafeInstallName('skill', fileName));
|
|
89
|
+
}
|
|
90
|
+
function hasUnsafePackageSourceChars(raw) {
|
|
91
|
+
return SHELL_METACHAR_PATTERN.test(raw)
|
|
92
|
+
|| CONTROL_PATTERN.test(raw)
|
|
93
|
+
|| /\s/.test(raw);
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=install-safety.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-safety.js","sourceRoot":"","sources":["../../src/utils/install-safety.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/shell.d.ts
CHANGED
|
@@ -3,6 +3,10 @@ export interface ShellResult {
|
|
|
3
3
|
stdout: string;
|
|
4
4
|
stderr: string;
|
|
5
5
|
}
|
|
6
|
+
export interface CommandOptions {
|
|
7
|
+
cwd?: string;
|
|
8
|
+
env?: NodeJS.ProcessEnv;
|
|
9
|
+
}
|
|
6
10
|
/**
|
|
7
11
|
* Ensure running as root. If not, re-exec with sudo and exit.
|
|
8
12
|
*/
|
|
@@ -23,12 +27,19 @@ export declare function ensureRoot(): void;
|
|
|
23
27
|
* Throws on non-zero exit.
|
|
24
28
|
*/
|
|
25
29
|
export declare function shell(cmd: string): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Run a command with argv instead of interpolating external values into a shell
|
|
32
|
+
* string. The fixed bash wrapper only initializes nvm, then `exec "$@"`.
|
|
33
|
+
*/
|
|
34
|
+
export declare function runCommand(cmd: string, args?: string[], options?: CommandOptions): Promise<void>;
|
|
26
35
|
/**
|
|
27
36
|
* Run a shell command with retries.
|
|
28
37
|
*/
|
|
29
38
|
export declare function shellRetry(cmd: string, retries?: number, delayMs?: number): Promise<void>;
|
|
39
|
+
export declare function runCommandRetry(cmd: string, args?: string[], retries?: number, delayMs?: number, options?: CommandOptions): Promise<void>;
|
|
30
40
|
/**
|
|
31
41
|
* Run a shell command and capture stdout/stderr.
|
|
32
42
|
*/
|
|
33
43
|
export declare function shellCapture(cmd: string): Promise<ShellResult>;
|
|
44
|
+
export declare function runCommandCapture(cmd: string, args?: string[], options?: CommandOptions): Promise<ShellResult>;
|
|
34
45
|
export declare function commandExists(cmd: string): Promise<boolean>;
|