@okclaw-build/cli 1.0.0-beta.40 → 1.0.0-beta.42
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 +48 -0
- package/dist/commands/backup.d.ts +16 -0
- package/dist/commands/backup.js +72 -0
- package/dist/commands/backup.js.map +1 -0
- package/dist/commands/migration.d.ts +1 -0
- package/dist/commands/migration.js +205 -0
- package/dist/commands/migration.js.map +1 -0
- package/dist/commands/restore.d.ts +16 -0
- package/dist/commands/restore.js +67 -0
- package/dist/commands/restore.js.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/installers/openclaw.d.ts +1 -14
- package/dist/installers/openclaw.js +4 -60
- package/dist/installers/openclaw.js.map +1 -1
- package/dist/installers/skill.d.ts +1 -0
- package/dist/installers/skill.js +24 -4
- package/dist/installers/skill.js.map +1 -1
- package/dist/migration/archive.d.ts +14 -0
- package/dist/migration/archive.js +84 -0
- package/dist/migration/archive.js.map +1 -0
- package/dist/migration/crypto.d.ts +16 -0
- package/dist/migration/crypto.js +56 -0
- package/dist/migration/crypto.js.map +1 -0
- package/dist/migration/manifest.d.ts +39 -0
- package/dist/migration/manifest.js +140 -0
- package/dist/migration/manifest.js.map +1 -0
- package/dist/openclaw-user-data.d.ts +63 -0
- package/dist/openclaw-user-data.js +246 -0
- package/dist/openclaw-user-data.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { existsSync, cpSync, mkdirSync, rmSync, statSync, chmodSync, readdirSync, } from 'node:fs';
|
|
2
|
+
import { shell, shellCapture } from './utils/shell.js';
|
|
3
|
+
import { OKCLAW_BACKUP_DIR, OPENCLAW_WORKSPACE } from './utils/constants.js';
|
|
4
|
+
export const OPENCLAW_USER_DATA_FILES = [
|
|
5
|
+
'MEMORY.md',
|
|
6
|
+
'USER.md',
|
|
7
|
+
'IDENTITY.md',
|
|
8
|
+
'SOUL.md',
|
|
9
|
+
'TOOLS.md',
|
|
10
|
+
'AGENTS.md',
|
|
11
|
+
'HEARTBEAT.md',
|
|
12
|
+
];
|
|
13
|
+
export const LEGACY_OPENCLAW_WORKSPACE = '/root/openclaw/workspace';
|
|
14
|
+
const WORKSPACE_BACKUP_DIR = 'workspace';
|
|
15
|
+
const LEGACY_WORKSPACE_BACKUP_DIR = 'workspace-root-openclaw';
|
|
16
|
+
const SKILLS_DIR = 'skills';
|
|
17
|
+
const OPENCLAW_CONFIG_FILE = 'openclaw.json';
|
|
18
|
+
const realBackupFs = { existsSync, mkdirSync, cpSync, statSync };
|
|
19
|
+
const realArchiveFs = { ...realBackupFs, readdirSync: readdirSync };
|
|
20
|
+
const realRestoreFs = {
|
|
21
|
+
...realBackupFs,
|
|
22
|
+
rmSync,
|
|
23
|
+
chmodSync,
|
|
24
|
+
readdirSync: readdirSync,
|
|
25
|
+
};
|
|
26
|
+
export function formatBackupTimestamp(now) {
|
|
27
|
+
return now.toISOString().replace(/\.\d{3}Z$/, 'Z').replace(/:/g, '');
|
|
28
|
+
}
|
|
29
|
+
function copyIfExists(fsOps, src, dest, recursive = false) {
|
|
30
|
+
if (!fsOps.existsSync(src))
|
|
31
|
+
return false;
|
|
32
|
+
fsOps.cpSync(src, dest, recursive ? { recursive: true } : undefined);
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
export function backupOpenclawUserData(now = new Date(), fsOps = realBackupFs) {
|
|
36
|
+
const backupDir = `${OKCLAW_BACKUP_DIR}/openclaw-user-data-${formatBackupTimestamp(now)}`;
|
|
37
|
+
const workspaces = Array.from(new Set([OPENCLAW_WORKSPACE, LEGACY_OPENCLAW_WORKSPACE]));
|
|
38
|
+
let copiedItems = 0;
|
|
39
|
+
let copiedWorkspaces = 0;
|
|
40
|
+
for (const workspace of workspaces) {
|
|
41
|
+
if (!fsOps.existsSync(workspace))
|
|
42
|
+
continue;
|
|
43
|
+
const workspaceBackupName = copiedWorkspaces === 0 ? WORKSPACE_BACKUP_DIR : LEGACY_WORKSPACE_BACKUP_DIR;
|
|
44
|
+
const workspaceBackupDir = `${backupDir}/${workspaceBackupName}`;
|
|
45
|
+
let workspaceDirCreated = false;
|
|
46
|
+
const ensureWorkspaceBackupDir = () => {
|
|
47
|
+
if (workspaceDirCreated)
|
|
48
|
+
return;
|
|
49
|
+
fsOps.mkdirSync(workspaceBackupDir, { recursive: true });
|
|
50
|
+
workspaceDirCreated = true;
|
|
51
|
+
};
|
|
52
|
+
for (const file of OPENCLAW_USER_DATA_FILES) {
|
|
53
|
+
const src = `${workspace}/${file}`;
|
|
54
|
+
if (!fsOps.existsSync(src))
|
|
55
|
+
continue;
|
|
56
|
+
ensureWorkspaceBackupDir();
|
|
57
|
+
if (copyIfExists(fsOps, src, `${workspaceBackupDir}/${file}`)) {
|
|
58
|
+
copiedItems += 1;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const skillsDir = `${workspace}/${SKILLS_DIR}`;
|
|
62
|
+
if (fsOps.existsSync(skillsDir) && fsOps.statSync(skillsDir).isDirectory()) {
|
|
63
|
+
ensureWorkspaceBackupDir();
|
|
64
|
+
if (copyIfExists(fsOps, skillsDir, `${workspaceBackupDir}/${SKILLS_DIR}`, true)) {
|
|
65
|
+
copiedItems += 1;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (workspaceDirCreated) {
|
|
69
|
+
copiedWorkspaces += 1;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return copiedItems > 0 ? backupDir : null;
|
|
73
|
+
}
|
|
74
|
+
export async function createOpenclawUserDataArchive(options = {}) {
|
|
75
|
+
const now = options.now ?? new Date();
|
|
76
|
+
const fsOps = options.fsOps ?? realArchiveFs;
|
|
77
|
+
const shellOps = options.shellOps ?? { shell };
|
|
78
|
+
const backupDir = backupOpenclawUserData(now, fsOps);
|
|
79
|
+
if (!backupDir) {
|
|
80
|
+
return { backupDir: null, archivePath: null, includedFiles: [] };
|
|
81
|
+
}
|
|
82
|
+
const includedFiles = listRelativeFiles(fsOps, backupDir);
|
|
83
|
+
validateArchiveEntries(includedFiles);
|
|
84
|
+
const archivePath = options.archivePath ?? `/tmp/openclaw-user-data-${formatBackupTimestamp(now)}.tar.gz`;
|
|
85
|
+
try {
|
|
86
|
+
await shellOps.shell(`tar -czf ${shellSingleQuote(archivePath)} -C ${shellSingleQuote(backupDir)} .`);
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
attachContext(error, { backupDir, archivePath });
|
|
90
|
+
throw error;
|
|
91
|
+
}
|
|
92
|
+
return { backupDir, archivePath, includedFiles };
|
|
93
|
+
}
|
|
94
|
+
export async function restoreOpenclawUserDataArchive(options) {
|
|
95
|
+
const now = options.now ?? new Date();
|
|
96
|
+
const fsOps = options.fsOps ?? realRestoreFs;
|
|
97
|
+
const shellOps = options.shellOps ?? { shell };
|
|
98
|
+
const stagingDir = `/tmp/openclaw-user-data-restore-${formatBackupTimestamp(now)}`;
|
|
99
|
+
try {
|
|
100
|
+
fsOps.rmSync(stagingDir, { recursive: true, force: true });
|
|
101
|
+
fsOps.mkdirSync(stagingDir, { recursive: true });
|
|
102
|
+
const tarEntries = await listArchiveEntries(shellOps, options.archivePath);
|
|
103
|
+
validateArchiveEntries(tarEntries.map((entry) => entry.path));
|
|
104
|
+
validateArchiveEntryTypes(tarEntries);
|
|
105
|
+
await shellOps.shell(`tar -xzf ${shellSingleQuote(options.archivePath)} -C ${shellSingleQuote(stagingDir)}`);
|
|
106
|
+
const entries = listRelativeFiles(fsOps, stagingDir);
|
|
107
|
+
validateArchiveEntries(entries);
|
|
108
|
+
fsOps.mkdirSync(OPENCLAW_WORKSPACE, { recursive: true });
|
|
109
|
+
fsOps.chmodSync(OPENCLAW_WORKSPACE, 0o755);
|
|
110
|
+
const restored = new Set();
|
|
111
|
+
restoreWorkspaceBackup(fsOps, `${stagingDir}/${WORKSPACE_BACKUP_DIR}`, restored);
|
|
112
|
+
restoreWorkspaceBackup(fsOps, `${stagingDir}/${LEGACY_WORKSPACE_BACKUP_DIR}`, restored);
|
|
113
|
+
const restoredFiles = Array.from(restored).sort();
|
|
114
|
+
for (const file of restoredFiles) {
|
|
115
|
+
const path = `${OPENCLAW_WORKSPACE}/${file}`;
|
|
116
|
+
if (file === SKILLS_DIR) {
|
|
117
|
+
applyRestoredPermissions(fsOps, path);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
fsOps.chmodSync(path, 0o644);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
await shellOps.shell(`chown -R root:root ${shellSingleQuote(OPENCLAW_WORKSPACE)}`);
|
|
124
|
+
return { stagingDir, archivePath: options.archivePath, restoredFiles };
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
attachContext(error, { stagingDir, archivePath: options.archivePath });
|
|
128
|
+
throw error;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
async function listArchiveEntries(shellOps, archivePath) {
|
|
132
|
+
if (shellOps.capture) {
|
|
133
|
+
const stdout = await shellOps.capture(`tar -tvzf ${shellSingleQuote(archivePath)}`);
|
|
134
|
+
return parseTarVerboseEntries(stdout);
|
|
135
|
+
}
|
|
136
|
+
const result = await shellCapture(`tar -tvzf ${shellSingleQuote(archivePath)}`);
|
|
137
|
+
if (result.code !== 0) {
|
|
138
|
+
throw new Error(`Command failed (exit ${result.code}): tar -tvzf ${archivePath}`);
|
|
139
|
+
}
|
|
140
|
+
return parseTarVerboseEntries(result.stdout);
|
|
141
|
+
}
|
|
142
|
+
function parseTarVerboseEntries(stdout) {
|
|
143
|
+
return stdout.split(/\r?\n/)
|
|
144
|
+
.map((line) => line.trim())
|
|
145
|
+
.filter(Boolean)
|
|
146
|
+
.map((line) => {
|
|
147
|
+
const modeType = line[0];
|
|
148
|
+
const tokens = line.split(/\s+/);
|
|
149
|
+
const rawPath = tokens.slice(5).join(' ');
|
|
150
|
+
const path = rawPath.includes(' -> ') ? rawPath.slice(0, rawPath.indexOf(' -> ')) : rawPath;
|
|
151
|
+
return {
|
|
152
|
+
type: modeType === '-' ? 'file' : modeType === 'd' ? 'directory' : 'unsupported',
|
|
153
|
+
path,
|
|
154
|
+
raw: line,
|
|
155
|
+
};
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
function validateArchiveEntryTypes(entries) {
|
|
159
|
+
for (const entry of entries) {
|
|
160
|
+
if (entry.type === 'unsupported') {
|
|
161
|
+
throw new Error(`unsupported archive entry type: ${entry.raw}`);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
function restoreWorkspaceBackup(fsOps, backupWorkspaceDir, restored) {
|
|
166
|
+
if (!fsOps.existsSync(backupWorkspaceDir))
|
|
167
|
+
return;
|
|
168
|
+
for (const file of OPENCLAW_USER_DATA_FILES) {
|
|
169
|
+
if (restored.has(file))
|
|
170
|
+
continue;
|
|
171
|
+
const src = `${backupWorkspaceDir}/${file}`;
|
|
172
|
+
if (!fsOps.existsSync(src))
|
|
173
|
+
continue;
|
|
174
|
+
fsOps.cpSync(src, `${OPENCLAW_WORKSPACE}/${file}`);
|
|
175
|
+
restored.add(file);
|
|
176
|
+
}
|
|
177
|
+
const skillsSrc = `${backupWorkspaceDir}/${SKILLS_DIR}`;
|
|
178
|
+
if (!restored.has(SKILLS_DIR) && fsOps.existsSync(skillsSrc) && fsOps.statSync(skillsSrc).isDirectory()) {
|
|
179
|
+
fsOps.rmSync(`${OPENCLAW_WORKSPACE}/${SKILLS_DIR}`, { recursive: true, force: true });
|
|
180
|
+
fsOps.cpSync(skillsSrc, `${OPENCLAW_WORKSPACE}/${SKILLS_DIR}`, { recursive: true });
|
|
181
|
+
restored.add(SKILLS_DIR);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
function applyRestoredPermissions(fsOps, path) {
|
|
185
|
+
if (!fsOps.existsSync(path))
|
|
186
|
+
return;
|
|
187
|
+
if (fsOps.statSync(path).isDirectory()) {
|
|
188
|
+
fsOps.chmodSync(path, 0o755);
|
|
189
|
+
for (const entry of fsOps.readdirSync(path, { withFileTypes: true })) {
|
|
190
|
+
applyRestoredPermissions(fsOps, `${path}/${entry.name}`);
|
|
191
|
+
}
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
fsOps.chmodSync(path, 0o644);
|
|
195
|
+
}
|
|
196
|
+
function listRelativeFiles(fsOps, root) {
|
|
197
|
+
if (!fsOps.existsSync(root))
|
|
198
|
+
return [];
|
|
199
|
+
const files = [];
|
|
200
|
+
const visit = (dir, prefix) => {
|
|
201
|
+
for (const entry of fsOps.readdirSync(dir, { withFileTypes: true })) {
|
|
202
|
+
const relative = prefix ? `${prefix}/${entry.name}` : entry.name;
|
|
203
|
+
const path = `${dir}/${entry.name}`;
|
|
204
|
+
if (entry.isDirectory()) {
|
|
205
|
+
visit(path, relative);
|
|
206
|
+
}
|
|
207
|
+
else if (entry.isFile()) {
|
|
208
|
+
files.push(relative);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
visit(root, '');
|
|
213
|
+
return files.sort();
|
|
214
|
+
}
|
|
215
|
+
function validateArchiveEntries(entries) {
|
|
216
|
+
for (const entry of entries) {
|
|
217
|
+
const normalized = normalizeArchiveEntry(entry);
|
|
218
|
+
if (!normalized)
|
|
219
|
+
continue;
|
|
220
|
+
const parts = normalized.split('/');
|
|
221
|
+
if (entry.startsWith('/') ||
|
|
222
|
+
parts.includes('..') ||
|
|
223
|
+
parts.includes(OPENCLAW_CONFIG_FILE)) {
|
|
224
|
+
throw new Error(`unsafe archive entry: ${entry}`);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
function normalizeArchiveEntry(entry) {
|
|
229
|
+
let normalized = entry.trim();
|
|
230
|
+
while (normalized.startsWith('./')) {
|
|
231
|
+
normalized = normalized.slice(2);
|
|
232
|
+
}
|
|
233
|
+
while (normalized.endsWith('/')) {
|
|
234
|
+
normalized = normalized.slice(0, -1);
|
|
235
|
+
}
|
|
236
|
+
return normalized === '.' ? '' : normalized;
|
|
237
|
+
}
|
|
238
|
+
function shellSingleQuote(value) {
|
|
239
|
+
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
240
|
+
}
|
|
241
|
+
function attachContext(error, context) {
|
|
242
|
+
if (error && typeof error === 'object') {
|
|
243
|
+
Object.assign(error, context);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=openclaw-user-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openclaw-user-data.js","sourceRoot":"","sources":["../src/openclaw-user-data.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED