@savestate/cli 0.4.2 → 0.5.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 +34 -6
- package/dist/adapters/clawdbot.d.ts +69 -58
- package/dist/adapters/clawdbot.d.ts.map +1 -1
- package/dist/adapters/clawdbot.js +375 -101
- package/dist/adapters/clawdbot.js.map +1 -1
- package/dist/cli.js +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -60,12 +60,40 @@ savestate restore latest
|
|
|
60
60
|
|
|
61
61
|
| Platform | Extract | Restore | Status |
|
|
62
62
|
|----------|---------|---------|--------|
|
|
63
|
-
| **Clawdbot / Moltbot** | ✅ | ✅ |
|
|
64
|
-
| **OpenAI Assistants API** | ✅ | ✅ |
|
|
65
|
-
| **
|
|
66
|
-
| **ChatGPT** | ✅ | ⚠️ Partial |
|
|
67
|
-
| **Claude** | ✅ | ⚠️ Partial |
|
|
68
|
-
| **Gemini** | ✅ | ⚠️ Limited |
|
|
63
|
+
| **OpenClaw / Clawdbot / Moltbot** | ✅ | ✅ | **Full support** |
|
|
64
|
+
| **OpenAI Assistants API** | ✅ | ✅ | Available |
|
|
65
|
+
| **Claude Code** | ✅ | ✅ | Available |
|
|
66
|
+
| **ChatGPT** | ✅ | ⚠️ Partial | Available |
|
|
67
|
+
| **Claude (consumer)** | ✅ | ⚠️ Partial | Available |
|
|
68
|
+
| **Gemini** | ✅ | ⚠️ Limited | Available |
|
|
69
|
+
|
|
70
|
+
### OpenClaw Full Backup (v0.3.0+)
|
|
71
|
+
|
|
72
|
+
The OpenClaw adapter captures your **complete agent state**:
|
|
73
|
+
|
|
74
|
+
| Component | What's Captured |
|
|
75
|
+
|-----------|-----------------|
|
|
76
|
+
| **Identity** | SOUL.md, USER.md, AGENTS.md, TOOLS.md, IDENTITY.md |
|
|
77
|
+
| **Memory** | MEMORY.md, memory/*.md, memory SQLite databases |
|
|
78
|
+
| **Skills** | All SKILL.md files + scripts |
|
|
79
|
+
| **Scripts** | personal-scripts/, cron-wrappers/ |
|
|
80
|
+
| **Extensions** | Extension configs |
|
|
81
|
+
| **Conversations** | All session JSONL files (1000+ sessions) |
|
|
82
|
+
| **Gateway Config** | openclaw.json (agent defs, models, routing) |
|
|
83
|
+
| **Cron Jobs** | Scheduled tasks and behaviors |
|
|
84
|
+
| **Channel State** | Telegram offsets, message continuity |
|
|
85
|
+
| **Device Identity** | Device pairing, node relationships |
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# Full backup including semantic memory DBs
|
|
89
|
+
savestate snapshot
|
|
90
|
+
|
|
91
|
+
# Include credentials (channel auth tokens)
|
|
92
|
+
savestate snapshot --include-credentials
|
|
93
|
+
|
|
94
|
+
# Backup specific agent only
|
|
95
|
+
savestate snapshot --agent-id main
|
|
96
|
+
```
|
|
69
97
|
|
|
70
98
|
Community adapters welcome! See [Contributing](#contributing).
|
|
71
99
|
|
|
@@ -1,93 +1,104 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Clawdbot Adapter
|
|
2
|
+
* Clawdbot / OpenClaw Adapter
|
|
3
3
|
*
|
|
4
|
-
* First-party adapter for Clawdbot / Moltbot workspaces.
|
|
5
|
-
* Reads SOUL.md, MEMORY.md, memory/, USER.md, TOOLS.md,
|
|
6
|
-
* skills/, personal-scripts/, extensions/, conversation logs,
|
|
7
|
-
* cron wrappers, and config files.
|
|
4
|
+
* First-party adapter for Clawdbot / Moltbot / OpenClaw workspaces.
|
|
8
5
|
*
|
|
9
|
-
*
|
|
6
|
+
* Captures:
|
|
7
|
+
* Workspace: SOUL.md, MEMORY.md, memory/, USER.md, TOOLS.md, AGENTS.md
|
|
8
|
+
* Skills: SKILL.md + scripts per skill
|
|
9
|
+
* Personal scripts: personal-scripts/, cron-wrappers/
|
|
10
|
+
* Extensions: extension configs
|
|
11
|
+
* Conversations: session JSONL files
|
|
12
|
+
*
|
|
13
|
+
* NEW in v0.3.0 - Full OpenClaw runtime state:
|
|
14
|
+
* Gateway config: openclaw.json (agent defs, model config, routing)
|
|
15
|
+
* Cron jobs: cron/jobs.json (scheduled behaviors)
|
|
16
|
+
* Credentials: channel auth, OAuth tokens
|
|
17
|
+
* Device identity: device pairing
|
|
18
|
+
* Paired nodes: mobile node pairing
|
|
19
|
+
* Memory databases: SQLite semantic memory
|
|
20
|
+
* Channel state: telegram offsets, whatsapp session, etc.
|
|
21
|
+
*
|
|
22
|
+
* This is the dogfood adapter - SaveState eats its own cooking.
|
|
10
23
|
*/
|
|
11
24
|
import type { Adapter, PlatformMeta, Snapshot } from '../types.js';
|
|
25
|
+
export interface OpenClawState {
|
|
26
|
+
/** Gateway configuration (openclaw.json) */
|
|
27
|
+
gatewayConfig?: string;
|
|
28
|
+
/** Cron jobs configuration */
|
|
29
|
+
cronJobs?: string;
|
|
30
|
+
/** Device identity */
|
|
31
|
+
deviceIdentity?: Record<string, string>;
|
|
32
|
+
/** Paired nodes */
|
|
33
|
+
pairedNodes?: Record<string, string>;
|
|
34
|
+
/** Channel credentials (redacted by default) */
|
|
35
|
+
credentials?: Record<string, string>;
|
|
36
|
+
/** Channel state (telegram offsets, etc.) */
|
|
37
|
+
channelState?: Record<string, string>;
|
|
38
|
+
/** Memory database paths (for binary backup) */
|
|
39
|
+
memoryDatabases?: MemoryDatabaseEntry[];
|
|
40
|
+
}
|
|
41
|
+
export interface MemoryDatabaseEntry {
|
|
42
|
+
/** Agent ID this database belongs to */
|
|
43
|
+
agentId: string;
|
|
44
|
+
/** Relative path within archive */
|
|
45
|
+
archivePath: string;
|
|
46
|
+
/** Original file path */
|
|
47
|
+
sourcePath: string;
|
|
48
|
+
/** Size in bytes */
|
|
49
|
+
size: number;
|
|
50
|
+
/** SHA-256 checksum */
|
|
51
|
+
checksum: string;
|
|
52
|
+
}
|
|
53
|
+
export interface ClawdbotAdapterOptions {
|
|
54
|
+
/** Include credentials in backup (default: false for security) */
|
|
55
|
+
includeCredentials?: boolean;
|
|
56
|
+
/** Include memory SQLite databases (default: true, but large!) */
|
|
57
|
+
includeMemoryDatabases?: boolean;
|
|
58
|
+
/** Redact API keys from gateway config (default: true) */
|
|
59
|
+
redactSecrets?: boolean;
|
|
60
|
+
/** Specific agent ID to backup (default: all agents) */
|
|
61
|
+
agentId?: string;
|
|
62
|
+
}
|
|
12
63
|
export declare class ClawdbotAdapter implements Adapter {
|
|
13
64
|
readonly id = "clawdbot";
|
|
14
|
-
readonly name = "
|
|
15
|
-
readonly platform = "
|
|
16
|
-
readonly version = "0.
|
|
65
|
+
readonly name = "OpenClaw";
|
|
66
|
+
readonly platform = "openclaw";
|
|
67
|
+
readonly version = "0.3.0";
|
|
17
68
|
private readonly workspaceDir;
|
|
69
|
+
private readonly options;
|
|
18
70
|
private warnings;
|
|
19
|
-
constructor(workspaceDir?: string);
|
|
71
|
+
constructor(workspaceDir?: string, options?: ClawdbotAdapterOptions);
|
|
20
72
|
detect(): Promise<boolean>;
|
|
21
73
|
extract(): Promise<Snapshot>;
|
|
22
74
|
restore(snapshot: Snapshot): Promise<void>;
|
|
23
75
|
identify(): Promise<PlatformMeta>;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
76
|
+
private findOpenClawConfigDir;
|
|
77
|
+
private readOpenClawState;
|
|
78
|
+
private readDirectoryFiles;
|
|
79
|
+
private indexMemoryDatabases;
|
|
80
|
+
private redactSensitiveData;
|
|
81
|
+
private redactObject;
|
|
82
|
+
private restoreOpenClawState;
|
|
27
83
|
private isBinary;
|
|
28
84
|
private checkFileSize;
|
|
29
85
|
private safeReadFile;
|
|
30
86
|
private readIdentity;
|
|
31
87
|
private readMemory;
|
|
32
88
|
private readConversations;
|
|
33
|
-
/**
|
|
34
|
-
* Read skills/ directory — capture SKILL.md and scripts/ for each skill.
|
|
35
|
-
*/
|
|
36
89
|
private readSkills;
|
|
37
|
-
/**
|
|
38
|
-
* Read personal-scripts/ and personal-scripts/cron-wrappers/
|
|
39
|
-
*/
|
|
40
90
|
private readScripts;
|
|
41
|
-
/**
|
|
42
|
-
* Read extensions/ directory configs (skip node_modules and binary files).
|
|
43
|
-
*/
|
|
44
91
|
private readExtensions;
|
|
45
|
-
/**
|
|
46
|
-
* Read config files from workspace root.
|
|
47
|
-
*/
|
|
48
92
|
private readConfigFiles;
|
|
49
|
-
/**
|
|
50
|
-
* Build knowledge documents index from skills and scripts.
|
|
51
|
-
*/
|
|
52
93
|
private buildKnowledgeIndex;
|
|
53
|
-
private readJsonSafe;
|
|
54
|
-
/**
|
|
55
|
-
* Walk a directory recursively and return file paths matching optional extensions.
|
|
56
|
-
*/
|
|
57
94
|
private walkDir;
|
|
58
|
-
/**
|
|
59
|
-
* Parse concatenated personality back into individual files and write them.
|
|
60
|
-
* Files are joined with `--- FILENAME ---` markers.
|
|
61
|
-
*/
|
|
62
95
|
private restoreIdentity;
|
|
63
|
-
/**
|
|
64
|
-
* Parse the concatenated personality string into individual files.
|
|
65
|
-
* Format: `--- FILENAME ---\ncontent\n\n--- NEXTFILE ---\ncontent`
|
|
66
|
-
*/
|
|
67
96
|
private parsePersonality;
|
|
68
|
-
/**
|
|
69
|
-
* Restore memory entries back to their source files.
|
|
70
|
-
*/
|
|
71
97
|
private restoreMemory;
|
|
72
|
-
/**
|
|
73
|
-
* Restore skills back to skills/ directory.
|
|
74
|
-
*/
|
|
75
98
|
private restoreSkills;
|
|
76
|
-
/**
|
|
77
|
-
* Restore personal scripts.
|
|
78
|
-
*/
|
|
79
99
|
private restoreScripts;
|
|
80
|
-
/**
|
|
81
|
-
* Restore extension configs.
|
|
82
|
-
*/
|
|
83
100
|
private restoreExtensions;
|
|
84
|
-
/**
|
|
85
|
-
* Restore config files to workspace root.
|
|
86
|
-
*/
|
|
87
101
|
private restoreConfigFiles;
|
|
88
|
-
/**
|
|
89
|
-
* Create a .bak backup of an existing file before overwriting.
|
|
90
|
-
*/
|
|
91
102
|
private backupFile;
|
|
92
103
|
}
|
|
93
104
|
//# sourceMappingURL=clawdbot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clawdbot.d.ts","sourceRoot":"","sources":["../../src/adapters/clawdbot.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"clawdbot.d.ts","sourceRoot":"","sources":["../../src/adapters/clawdbot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAMH,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EACZ,QAAQ,EAOT,MAAM,aAAa,CAAC;AAKrB,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,gDAAgD;IAChD,eAAe,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AA8CD,MAAM,WAAW,sBAAsB;IACrC,kEAAkE;IAClE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kEAAkE;IAClE,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,0DAA0D;IAC1D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,eAAgB,YAAW,OAAO;IAC7C,QAAQ,CAAC,EAAE,cAAc;IACzB,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,QAAQ,cAAc;IAC/B,QAAQ,CAAC,OAAO,WAAW;IAE3B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAgB;gBAEpB,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sBAAsB;IAU7D,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAe1B,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;IAuH5B,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC1C,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC;IA8BvC,OAAO,CAAC,qBAAqB;YAYf,iBAAiB;YAqFjB,kBAAkB;YAwBlB,oBAAoB;IAmClC,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,YAAY;YAyBN,oBAAoB;IAiFlC,OAAO,CAAC,QAAQ;YAMF,aAAa;YAab,YAAY;YAcZ,YAAY;YAcZ,UAAU;YA8CV,iBAAiB;YA8DjB,UAAU;YAmEV,WAAW;YAsBX,cAAc;YA0Cd,eAAe;YAwBf,mBAAmB;YAmCnB,OAAO;YA2BP,eAAe;IAW7B,OAAO,CAAC,gBAAgB;YAoBV,aAAa;YASb,aAAa;YAcb,cAAc;YASd,iBAAiB;YAajB,kBAAkB;YAUlB,UAAU;CAUzB"}
|
|
@@ -1,26 +1,44 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Clawdbot Adapter
|
|
2
|
+
* Clawdbot / OpenClaw Adapter
|
|
3
3
|
*
|
|
4
|
-
* First-party adapter for Clawdbot / Moltbot workspaces.
|
|
5
|
-
* Reads SOUL.md, MEMORY.md, memory/, USER.md, TOOLS.md,
|
|
6
|
-
* skills/, personal-scripts/, extensions/, conversation logs,
|
|
7
|
-
* cron wrappers, and config files.
|
|
4
|
+
* First-party adapter for Clawdbot / Moltbot / OpenClaw workspaces.
|
|
8
5
|
*
|
|
9
|
-
*
|
|
6
|
+
* Captures:
|
|
7
|
+
* Workspace: SOUL.md, MEMORY.md, memory/, USER.md, TOOLS.md, AGENTS.md
|
|
8
|
+
* Skills: SKILL.md + scripts per skill
|
|
9
|
+
* Personal scripts: personal-scripts/, cron-wrappers/
|
|
10
|
+
* Extensions: extension configs
|
|
11
|
+
* Conversations: session JSONL files
|
|
12
|
+
*
|
|
13
|
+
* NEW in v0.3.0 - Full OpenClaw runtime state:
|
|
14
|
+
* Gateway config: openclaw.json (agent defs, model config, routing)
|
|
15
|
+
* Cron jobs: cron/jobs.json (scheduled behaviors)
|
|
16
|
+
* Credentials: channel auth, OAuth tokens
|
|
17
|
+
* Device identity: device pairing
|
|
18
|
+
* Paired nodes: mobile node pairing
|
|
19
|
+
* Memory databases: SQLite semantic memory
|
|
20
|
+
* Channel state: telegram offsets, whatsapp session, etc.
|
|
21
|
+
*
|
|
22
|
+
* This is the dogfood adapter - SaveState eats its own cooking.
|
|
10
23
|
*/
|
|
11
24
|
import { readFile, writeFile, readdir, stat, rename, mkdir } from 'node:fs/promises';
|
|
12
25
|
import { existsSync } from 'node:fs';
|
|
13
26
|
import { join, dirname, extname, relative } from 'node:path';
|
|
14
27
|
import { homedir } from 'node:os';
|
|
15
28
|
import { SAF_VERSION, generateSnapshotId, computeChecksum } from '../format.js';
|
|
29
|
+
// ─── Configuration ───────────────────────────────────────────
|
|
16
30
|
/** Files that constitute the agent's identity */
|
|
17
|
-
const IDENTITY_FILES = ['SOUL.md', 'USER.md', 'AGENTS.md', 'TOOLS.md'];
|
|
31
|
+
const IDENTITY_FILES = ['SOUL.md', 'USER.md', 'AGENTS.md', 'TOOLS.md', 'IDENTITY.md', 'BOOTSTRAP.md', 'HEARTBEAT.md'];
|
|
18
32
|
/** Directories containing memory data */
|
|
19
33
|
const MEMORY_DIRS = ['memory'];
|
|
20
34
|
/** Files containing memory data */
|
|
21
35
|
const MEMORY_FILES = ['memory.md', 'MEMORY.md'];
|
|
22
36
|
/** Config files to capture at workspace root */
|
|
23
37
|
const CONFIG_FILES = ['.env', 'config.json', 'config.yaml', 'config.yml', '.savestate/config.json'];
|
|
38
|
+
/** OpenClaw config directory names (in order of preference) */
|
|
39
|
+
const OPENCLAW_CONFIG_DIRS = ['.openclaw', '.moltbot', '.clawdbot'];
|
|
40
|
+
/** Gateway config file names (in order of preference) */
|
|
41
|
+
const GATEWAY_CONFIG_FILES = ['openclaw.json', 'moltbot.json', 'clawdbot.json'];
|
|
24
42
|
/** File extensions to skip as binary */
|
|
25
43
|
const BINARY_EXTENSIONS = new Set([
|
|
26
44
|
'.png', '.jpg', '.jpeg', '.gif', '.webp', '.ico', '.svg', '.bmp', '.tiff',
|
|
@@ -32,35 +50,48 @@ const BINARY_EXTENSIONS = new Set([
|
|
|
32
50
|
'.db', '.sqlite', '.sqlite3',
|
|
33
51
|
'.DS_Store',
|
|
34
52
|
]);
|
|
35
|
-
/** Maximum file size
|
|
36
|
-
const
|
|
37
|
-
/**
|
|
38
|
-
const
|
|
39
|
-
const FILE_SEPARATOR_SUFFIX = ' ---';
|
|
53
|
+
/** Maximum file size for text files (1MB) */
|
|
54
|
+
const MAX_TEXT_FILE_SIZE = 1024 * 1024;
|
|
55
|
+
/** Maximum file size for binary files like SQLite (100MB) */
|
|
56
|
+
const MAX_BINARY_FILE_SIZE = 100 * 1024 * 1024;
|
|
40
57
|
/** Directories to skip when scanning */
|
|
41
58
|
const SKIP_DIRS = new Set(['node_modules', '.git', 'dist', 'build', '.next', '__pycache__', '.venv', 'venv']);
|
|
59
|
+
/** Sensitive fields to redact from gateway config */
|
|
60
|
+
const SENSITIVE_CONFIG_FIELDS = ['apiKey', 'token', 'secret', 'password', 'accessToken', 'refreshToken'];
|
|
42
61
|
export class ClawdbotAdapter {
|
|
43
62
|
id = 'clawdbot';
|
|
44
|
-
name = '
|
|
45
|
-
platform = '
|
|
46
|
-
version = '0.
|
|
63
|
+
name = 'OpenClaw';
|
|
64
|
+
platform = 'openclaw';
|
|
65
|
+
version = '0.3.0';
|
|
47
66
|
workspaceDir;
|
|
67
|
+
options;
|
|
48
68
|
warnings = [];
|
|
49
|
-
constructor(workspaceDir) {
|
|
69
|
+
constructor(workspaceDir, options) {
|
|
50
70
|
this.workspaceDir = workspaceDir ?? process.cwd();
|
|
71
|
+
this.options = {
|
|
72
|
+
includeCredentials: false,
|
|
73
|
+
includeMemoryDatabases: true,
|
|
74
|
+
redactSecrets: true,
|
|
75
|
+
...options,
|
|
76
|
+
};
|
|
51
77
|
}
|
|
52
78
|
async detect() {
|
|
53
79
|
// Detect by looking for characteristic files
|
|
54
|
-
const markers = ['SOUL.md', 'memory.md', 'AGENTS.md', 'memory/'];
|
|
80
|
+
const markers = ['SOUL.md', 'memory.md', 'AGENTS.md', 'memory/', 'MEMORY.md'];
|
|
55
81
|
for (const marker of markers) {
|
|
56
82
|
if (existsSync(join(this.workspaceDir, marker))) {
|
|
57
83
|
return true;
|
|
58
84
|
}
|
|
59
85
|
}
|
|
86
|
+
// Also check for OpenClaw config dir
|
|
87
|
+
const configDir = this.findOpenClawConfigDir();
|
|
88
|
+
if (configDir)
|
|
89
|
+
return true;
|
|
60
90
|
return false;
|
|
61
91
|
}
|
|
62
92
|
async extract() {
|
|
63
93
|
this.warnings = [];
|
|
94
|
+
// Workspace content
|
|
64
95
|
const personality = await this.readIdentity();
|
|
65
96
|
const memoryEntries = await this.readMemory();
|
|
66
97
|
const conversations = await this.readConversations();
|
|
@@ -69,6 +100,8 @@ export class ClawdbotAdapter {
|
|
|
69
100
|
const extensions = await this.readExtensions();
|
|
70
101
|
const configEntries = await this.readConfigFiles();
|
|
71
102
|
const knowledge = await this.buildKnowledgeIndex(skills, scripts);
|
|
103
|
+
// NEW: OpenClaw runtime state
|
|
104
|
+
const openclawState = await this.readOpenClawState();
|
|
72
105
|
const snapshotId = generateSnapshotId();
|
|
73
106
|
const now = new Date().toISOString();
|
|
74
107
|
// Log warnings
|
|
@@ -77,6 +110,11 @@ export class ClawdbotAdapter {
|
|
|
77
110
|
console.warn(` ⚠ ${w}`);
|
|
78
111
|
}
|
|
79
112
|
}
|
|
113
|
+
// Merge OpenClaw state into config
|
|
114
|
+
const fullConfig = {
|
|
115
|
+
...configEntries,
|
|
116
|
+
_openclaw: openclawState,
|
|
117
|
+
};
|
|
80
118
|
const snapshot = {
|
|
81
119
|
manifest: {
|
|
82
120
|
version: SAF_VERSION,
|
|
@@ -89,7 +127,7 @@ export class ClawdbotAdapter {
|
|
|
89
127
|
},
|
|
90
128
|
identity: {
|
|
91
129
|
personality,
|
|
92
|
-
config:
|
|
130
|
+
config: fullConfig,
|
|
93
131
|
tools: [],
|
|
94
132
|
skills,
|
|
95
133
|
scripts,
|
|
@@ -136,6 +174,27 @@ export class ClawdbotAdapter {
|
|
|
136
174
|
description: 'Restore extension configs',
|
|
137
175
|
target: 'extensions/',
|
|
138
176
|
},
|
|
177
|
+
{
|
|
178
|
+
type: 'file',
|
|
179
|
+
description: 'Restore OpenClaw gateway config',
|
|
180
|
+
target: '~/.openclaw/openclaw.json',
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
type: 'file',
|
|
184
|
+
description: 'Restore cron jobs',
|
|
185
|
+
target: '~/.openclaw/cron/jobs.json',
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
type: 'manual',
|
|
189
|
+
description: 'Re-authenticate channel credentials (Telegram, WhatsApp, etc.)',
|
|
190
|
+
target: 'credentials/',
|
|
191
|
+
},
|
|
192
|
+
],
|
|
193
|
+
manualSteps: [
|
|
194
|
+
'Re-link Telegram bot if credentials were not included',
|
|
195
|
+
'Re-authenticate WhatsApp session',
|
|
196
|
+
'Re-pair mobile nodes',
|
|
197
|
+
'Verify API keys in gateway config',
|
|
139
198
|
],
|
|
140
199
|
},
|
|
141
200
|
};
|
|
@@ -160,32 +219,301 @@ export class ClawdbotAdapter {
|
|
|
160
219
|
if (snapshot.identity.extensions?.length) {
|
|
161
220
|
await this.restoreExtensions(snapshot.identity.extensions);
|
|
162
221
|
}
|
|
163
|
-
// Restore config files
|
|
222
|
+
// Restore config files (excluding _openclaw which needs special handling)
|
|
164
223
|
if (snapshot.identity.config) {
|
|
165
|
-
|
|
224
|
+
const { _openclaw, ...workspaceConfigs } = snapshot.identity.config;
|
|
225
|
+
if (Object.keys(workspaceConfigs).length > 0) {
|
|
226
|
+
await this.restoreConfigFiles(workspaceConfigs);
|
|
227
|
+
}
|
|
228
|
+
// Restore OpenClaw state
|
|
229
|
+
if (_openclaw) {
|
|
230
|
+
await this.restoreOpenClawState(_openclaw);
|
|
231
|
+
}
|
|
166
232
|
}
|
|
167
233
|
}
|
|
168
234
|
async identify() {
|
|
169
|
-
// Try to read version from package.json
|
|
235
|
+
// Try to read version from OpenClaw config or package.json
|
|
170
236
|
let version = this.version;
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
const
|
|
174
|
-
|
|
175
|
-
|
|
237
|
+
const configDir = this.findOpenClawConfigDir();
|
|
238
|
+
if (configDir) {
|
|
239
|
+
for (const configFile of GATEWAY_CONFIG_FILES) {
|
|
240
|
+
const configPath = join(configDir, configFile);
|
|
241
|
+
if (existsSync(configPath)) {
|
|
242
|
+
try {
|
|
243
|
+
const content = await readFile(configPath, 'utf-8');
|
|
244
|
+
const config = JSON.parse(content);
|
|
245
|
+
if (config.meta?.lastTouchedVersion) {
|
|
246
|
+
version = config.meta.lastTouchedVersion;
|
|
247
|
+
break;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
catch { /* ignore */ }
|
|
251
|
+
}
|
|
176
252
|
}
|
|
177
253
|
}
|
|
178
|
-
catch { /* ignore */ }
|
|
179
254
|
return {
|
|
180
|
-
name: '
|
|
255
|
+
name: 'OpenClaw',
|
|
181
256
|
version,
|
|
182
257
|
exportMethod: 'direct-file-access',
|
|
183
258
|
};
|
|
184
259
|
}
|
|
260
|
+
// ─── OpenClaw Config Directory ─────────────────────────────
|
|
261
|
+
findOpenClawConfigDir() {
|
|
262
|
+
for (const dirName of OPENCLAW_CONFIG_DIRS) {
|
|
263
|
+
const dirPath = join(homedir(), dirName);
|
|
264
|
+
if (existsSync(dirPath)) {
|
|
265
|
+
return dirPath;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
return null;
|
|
269
|
+
}
|
|
270
|
+
// ─── OpenClaw Runtime State ────────────────────────────────
|
|
271
|
+
async readOpenClawState() {
|
|
272
|
+
const state = {};
|
|
273
|
+
const configDir = this.findOpenClawConfigDir();
|
|
274
|
+
if (!configDir) {
|
|
275
|
+
this.warnings.push('OpenClaw config directory not found (~/.openclaw)');
|
|
276
|
+
return state;
|
|
277
|
+
}
|
|
278
|
+
// 1. Gateway config (openclaw.json / moltbot.json / clawdbot.json)
|
|
279
|
+
for (const configFile of GATEWAY_CONFIG_FILES) {
|
|
280
|
+
const configPath = join(configDir, configFile);
|
|
281
|
+
if (existsSync(configPath)) {
|
|
282
|
+
try {
|
|
283
|
+
let content = await readFile(configPath, 'utf-8');
|
|
284
|
+
if (this.options.redactSecrets) {
|
|
285
|
+
content = this.redactSensitiveData(content);
|
|
286
|
+
}
|
|
287
|
+
state.gatewayConfig = content;
|
|
288
|
+
break;
|
|
289
|
+
}
|
|
290
|
+
catch (e) {
|
|
291
|
+
this.warnings.push(`Failed to read gateway config: ${e}`);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
// 2. Cron jobs
|
|
296
|
+
const cronPath = join(configDir, 'cron', 'jobs.json');
|
|
297
|
+
if (existsSync(cronPath)) {
|
|
298
|
+
try {
|
|
299
|
+
state.cronJobs = await readFile(cronPath, 'utf-8');
|
|
300
|
+
}
|
|
301
|
+
catch (e) {
|
|
302
|
+
this.warnings.push(`Failed to read cron jobs: ${e}`);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
// 3. Device identity
|
|
306
|
+
const identityDir = join(configDir, 'identity');
|
|
307
|
+
if (existsSync(identityDir)) {
|
|
308
|
+
state.deviceIdentity = await this.readDirectoryFiles(identityDir, ['.json']);
|
|
309
|
+
}
|
|
310
|
+
// 4. Paired nodes
|
|
311
|
+
const nodesDir = join(configDir, 'nodes');
|
|
312
|
+
if (existsSync(nodesDir)) {
|
|
313
|
+
state.pairedNodes = await this.readDirectoryFiles(nodesDir, ['.json']);
|
|
314
|
+
}
|
|
315
|
+
// 5. Credentials (only if explicitly requested)
|
|
316
|
+
if (this.options.includeCredentials) {
|
|
317
|
+
const credentialsDir = join(configDir, 'credentials');
|
|
318
|
+
if (existsSync(credentialsDir)) {
|
|
319
|
+
state.credentials = await this.readDirectoryFiles(credentialsDir, ['.json']);
|
|
320
|
+
// Also capture WhatsApp session if present
|
|
321
|
+
const whatsappDir = join(credentialsDir, 'whatsapp');
|
|
322
|
+
if (existsSync(whatsappDir)) {
|
|
323
|
+
const waFiles = await this.readDirectoryFiles(whatsappDir, ['.json', '.txt']);
|
|
324
|
+
for (const [name, content] of Object.entries(waFiles)) {
|
|
325
|
+
state.credentials[`whatsapp/${name}`] = content;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
this.warnings.push('Credentials excluded (use --include-credentials to include)');
|
|
332
|
+
}
|
|
333
|
+
// 6. Channel state (telegram offsets, etc.)
|
|
334
|
+
const telegramDir = join(configDir, 'telegram');
|
|
335
|
+
if (existsSync(telegramDir)) {
|
|
336
|
+
state.channelState = await this.readDirectoryFiles(telegramDir, ['.json']);
|
|
337
|
+
}
|
|
338
|
+
// 7. Memory databases (SQLite files)
|
|
339
|
+
if (this.options.includeMemoryDatabases) {
|
|
340
|
+
const memoryDir = join(configDir, 'memory');
|
|
341
|
+
if (existsSync(memoryDir)) {
|
|
342
|
+
state.memoryDatabases = await this.indexMemoryDatabases(memoryDir);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
else {
|
|
346
|
+
this.warnings.push('Memory databases excluded (use --include-memory-dbs to include)');
|
|
347
|
+
}
|
|
348
|
+
return state;
|
|
349
|
+
}
|
|
350
|
+
async readDirectoryFiles(dir, extensions) {
|
|
351
|
+
const files = {};
|
|
352
|
+
try {
|
|
353
|
+
const entries = await readdir(dir);
|
|
354
|
+
for (const entry of entries) {
|
|
355
|
+
const ext = extname(entry).toLowerCase();
|
|
356
|
+
if (!extensions.includes(ext))
|
|
357
|
+
continue;
|
|
358
|
+
const filePath = join(dir, entry);
|
|
359
|
+
const fileStat = await stat(filePath).catch(() => null);
|
|
360
|
+
if (!fileStat?.isFile())
|
|
361
|
+
continue;
|
|
362
|
+
if (fileStat.size > MAX_TEXT_FILE_SIZE) {
|
|
363
|
+
this.warnings.push(`Skipped ${entry} (too large: ${(fileStat.size / 1024 / 1024).toFixed(1)}MB)`);
|
|
364
|
+
continue;
|
|
365
|
+
}
|
|
366
|
+
try {
|
|
367
|
+
files[entry] = await readFile(filePath, 'utf-8');
|
|
368
|
+
}
|
|
369
|
+
catch { /* skip unreadable */ }
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
catch { /* directory not readable */ }
|
|
373
|
+
return files;
|
|
374
|
+
}
|
|
375
|
+
async indexMemoryDatabases(memoryDir) {
|
|
376
|
+
const databases = [];
|
|
377
|
+
try {
|
|
378
|
+
const entries = await readdir(memoryDir);
|
|
379
|
+
for (const entry of entries) {
|
|
380
|
+
if (!entry.endsWith('.sqlite'))
|
|
381
|
+
continue;
|
|
382
|
+
const filePath = join(memoryDir, entry);
|
|
383
|
+
const fileStat = await stat(filePath).catch(() => null);
|
|
384
|
+
if (!fileStat?.isFile())
|
|
385
|
+
continue;
|
|
386
|
+
if (fileStat.size > MAX_BINARY_FILE_SIZE) {
|
|
387
|
+
this.warnings.push(`Memory DB ${entry} too large (${(fileStat.size / 1024 / 1024).toFixed(1)}MB > 100MB limit)`);
|
|
388
|
+
continue;
|
|
389
|
+
}
|
|
390
|
+
// Extract agent ID from filename (e.g., "main.sqlite" -> "main")
|
|
391
|
+
const agentId = entry.replace('.sqlite', '');
|
|
392
|
+
// Compute checksum
|
|
393
|
+
const buffer = await readFile(filePath);
|
|
394
|
+
const checksum = computeChecksum(buffer);
|
|
395
|
+
databases.push({
|
|
396
|
+
agentId,
|
|
397
|
+
archivePath: `memory-dbs/${entry}`,
|
|
398
|
+
sourcePath: filePath,
|
|
399
|
+
size: fileStat.size,
|
|
400
|
+
checksum,
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
catch { /* memory dir not readable */ }
|
|
405
|
+
return databases;
|
|
406
|
+
}
|
|
407
|
+
redactSensitiveData(jsonContent) {
|
|
408
|
+
try {
|
|
409
|
+
const obj = JSON.parse(jsonContent);
|
|
410
|
+
const redacted = this.redactObject(obj);
|
|
411
|
+
return JSON.stringify(redacted, null, 2);
|
|
412
|
+
}
|
|
413
|
+
catch {
|
|
414
|
+
// If not valid JSON, do simple regex replacement
|
|
415
|
+
let content = jsonContent;
|
|
416
|
+
for (const field of SENSITIVE_CONFIG_FIELDS) {
|
|
417
|
+
// Match "apiKey": "value" patterns
|
|
418
|
+
const regex = new RegExp(`("${field}"\\s*:\\s*)"[^"]*"`, 'gi');
|
|
419
|
+
content = content.replace(regex, '$1"[REDACTED]"');
|
|
420
|
+
}
|
|
421
|
+
return content;
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
redactObject(obj) {
|
|
425
|
+
if (obj === null || typeof obj !== 'object')
|
|
426
|
+
return obj;
|
|
427
|
+
if (Array.isArray(obj)) {
|
|
428
|
+
return obj.map(item => this.redactObject(item));
|
|
429
|
+
}
|
|
430
|
+
const result = {};
|
|
431
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
432
|
+
const lowerKey = key.toLowerCase();
|
|
433
|
+
const isSensitive = SENSITIVE_CONFIG_FIELDS.some(field => lowerKey.includes(field.toLowerCase()));
|
|
434
|
+
if (isSensitive && typeof value === 'string' && value.length > 0) {
|
|
435
|
+
result[key] = '[REDACTED]';
|
|
436
|
+
}
|
|
437
|
+
else if (typeof value === 'object' && value !== null) {
|
|
438
|
+
result[key] = this.redactObject(value);
|
|
439
|
+
}
|
|
440
|
+
else {
|
|
441
|
+
result[key] = value;
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
return result;
|
|
445
|
+
}
|
|
446
|
+
async restoreOpenClawState(state) {
|
|
447
|
+
const configDir = this.findOpenClawConfigDir() ?? join(homedir(), '.openclaw');
|
|
448
|
+
// Ensure config dir exists
|
|
449
|
+
await mkdir(configDir, { recursive: true });
|
|
450
|
+
// 1. Gateway config
|
|
451
|
+
if (state.gatewayConfig) {
|
|
452
|
+
const configPath = join(configDir, 'openclaw.json');
|
|
453
|
+
await this.backupFile(configPath);
|
|
454
|
+
await writeFile(configPath, state.gatewayConfig, 'utf-8');
|
|
455
|
+
console.log(' ✓ Restored gateway config (review API keys!)');
|
|
456
|
+
}
|
|
457
|
+
// 2. Cron jobs
|
|
458
|
+
if (state.cronJobs) {
|
|
459
|
+
const cronDir = join(configDir, 'cron');
|
|
460
|
+
await mkdir(cronDir, { recursive: true });
|
|
461
|
+
const cronPath = join(cronDir, 'jobs.json');
|
|
462
|
+
await this.backupFile(cronPath);
|
|
463
|
+
await writeFile(cronPath, state.cronJobs, 'utf-8');
|
|
464
|
+
console.log(' ✓ Restored cron jobs');
|
|
465
|
+
}
|
|
466
|
+
// 3. Device identity
|
|
467
|
+
if (state.deviceIdentity) {
|
|
468
|
+
const identityDir = join(configDir, 'identity');
|
|
469
|
+
await mkdir(identityDir, { recursive: true });
|
|
470
|
+
for (const [filename, content] of Object.entries(state.deviceIdentity)) {
|
|
471
|
+
const filePath = join(identityDir, filename);
|
|
472
|
+
await this.backupFile(filePath);
|
|
473
|
+
await writeFile(filePath, content, 'utf-8');
|
|
474
|
+
}
|
|
475
|
+
console.log(' ✓ Restored device identity');
|
|
476
|
+
}
|
|
477
|
+
// 4. Paired nodes
|
|
478
|
+
if (state.pairedNodes) {
|
|
479
|
+
const nodesDir = join(configDir, 'nodes');
|
|
480
|
+
await mkdir(nodesDir, { recursive: true });
|
|
481
|
+
for (const [filename, content] of Object.entries(state.pairedNodes)) {
|
|
482
|
+
const filePath = join(nodesDir, filename);
|
|
483
|
+
await this.backupFile(filePath);
|
|
484
|
+
await writeFile(filePath, content, 'utf-8');
|
|
485
|
+
}
|
|
486
|
+
console.log(' ✓ Restored paired nodes');
|
|
487
|
+
}
|
|
488
|
+
// 5. Credentials (if present)
|
|
489
|
+
if (state.credentials) {
|
|
490
|
+
const credentialsDir = join(configDir, 'credentials');
|
|
491
|
+
await mkdir(credentialsDir, { recursive: true });
|
|
492
|
+
for (const [filename, content] of Object.entries(state.credentials)) {
|
|
493
|
+
const filePath = join(credentialsDir, filename);
|
|
494
|
+
await mkdir(dirname(filePath), { recursive: true });
|
|
495
|
+
await this.backupFile(filePath);
|
|
496
|
+
await writeFile(filePath, content, 'utf-8');
|
|
497
|
+
}
|
|
498
|
+
console.log(' ✓ Restored credentials');
|
|
499
|
+
}
|
|
500
|
+
// 6. Channel state
|
|
501
|
+
if (state.channelState) {
|
|
502
|
+
const telegramDir = join(configDir, 'telegram');
|
|
503
|
+
await mkdir(telegramDir, { recursive: true });
|
|
504
|
+
for (const [filename, content] of Object.entries(state.channelState)) {
|
|
505
|
+
const filePath = join(telegramDir, filename);
|
|
506
|
+
await this.backupFile(filePath);
|
|
507
|
+
await writeFile(filePath, content, 'utf-8');
|
|
508
|
+
}
|
|
509
|
+
console.log(' ✓ Restored channel state');
|
|
510
|
+
}
|
|
511
|
+
// 7. Memory databases (need special binary handling in snapshot.ts)
|
|
512
|
+
if (state.memoryDatabases?.length) {
|
|
513
|
+
console.log(` ℹ ${state.memoryDatabases.length} memory database(s) indexed (restore via binary extract)`);
|
|
514
|
+
}
|
|
515
|
+
}
|
|
185
516
|
// ─── Private helpers ─────────────────────────────────────
|
|
186
|
-
/**
|
|
187
|
-
* Check if a file should be skipped (binary or too large).
|
|
188
|
-
*/
|
|
189
517
|
isBinary(filePath) {
|
|
190
518
|
const ext = extname(filePath).toLowerCase();
|
|
191
519
|
const base = filePath.split('/').pop() ?? '';
|
|
@@ -194,7 +522,7 @@ export class ClawdbotAdapter {
|
|
|
194
522
|
async checkFileSize(filePath) {
|
|
195
523
|
try {
|
|
196
524
|
const s = await stat(filePath);
|
|
197
|
-
if (s.size >
|
|
525
|
+
if (s.size > MAX_TEXT_FILE_SIZE) {
|
|
198
526
|
this.warnings.push(`Skipped ${filePath} (${(s.size / 1024 / 1024).toFixed(1)}MB > 1MB limit)`);
|
|
199
527
|
return false;
|
|
200
528
|
}
|
|
@@ -275,13 +603,21 @@ export class ClawdbotAdapter {
|
|
|
275
603
|
}
|
|
276
604
|
async readConversations() {
|
|
277
605
|
const conversations = [];
|
|
278
|
-
// Look for conversation logs in ~/.
|
|
279
|
-
|
|
606
|
+
// Look for conversation logs in ~/.openclaw/agents/*/sessions/*.jsonl
|
|
607
|
+
// Also check legacy paths: ~/.moltbot, ~/.clawdbot
|
|
608
|
+
const configDir = this.findOpenClawConfigDir();
|
|
609
|
+
if (!configDir)
|
|
610
|
+
return conversations;
|
|
611
|
+
const agentsDir = join(configDir, 'agents');
|
|
280
612
|
if (!existsSync(agentsDir))
|
|
281
613
|
return conversations;
|
|
282
614
|
try {
|
|
283
615
|
const agents = await readdir(agentsDir);
|
|
284
|
-
|
|
616
|
+
// Filter to specific agent if requested
|
|
617
|
+
const targetAgents = this.options.agentId
|
|
618
|
+
? agents.filter(a => a === this.options.agentId)
|
|
619
|
+
: agents;
|
|
620
|
+
for (const agent of targetAgents) {
|
|
285
621
|
const sessionsDir = join(agentsDir, agent, 'sessions');
|
|
286
622
|
if (!existsSync(sessionsDir))
|
|
287
623
|
continue;
|
|
@@ -295,7 +631,7 @@ export class ClawdbotAdapter {
|
|
|
295
631
|
const fileStat = await stat(sessionPath);
|
|
296
632
|
// Count lines (messages) without loading full content
|
|
297
633
|
let messageCount = 0;
|
|
298
|
-
if (fileStat.size <=
|
|
634
|
+
if (fileStat.size <= MAX_TEXT_FILE_SIZE) {
|
|
299
635
|
const content = await readFile(sessionPath, 'utf-8');
|
|
300
636
|
messageCount = content.split('\n').filter(l => l.trim()).length;
|
|
301
637
|
}
|
|
@@ -322,9 +658,6 @@ export class ClawdbotAdapter {
|
|
|
322
658
|
}
|
|
323
659
|
return conversations;
|
|
324
660
|
}
|
|
325
|
-
/**
|
|
326
|
-
* Read skills/ directory — capture SKILL.md and scripts/ for each skill.
|
|
327
|
-
*/
|
|
328
661
|
async readSkills() {
|
|
329
662
|
const skills = [];
|
|
330
663
|
const skillsDir = join(this.workspaceDir, 'skills');
|
|
@@ -358,7 +691,6 @@ export class ClawdbotAdapter {
|
|
|
358
691
|
continue;
|
|
359
692
|
if (this.isBinary(fPath))
|
|
360
693
|
continue;
|
|
361
|
-
// Capture config-like files: .json, .yaml, .yml, .toml, .md, .txt, .sh, .py, .ts, .js
|
|
362
694
|
const ext = extname(f).toLowerCase();
|
|
363
695
|
const captureExts = new Set(['.json', '.yaml', '.yml', '.toml', '.md', '.txt', '.sh', '.py', '.ts', '.js', '.env']);
|
|
364
696
|
if (!captureExts.has(ext))
|
|
@@ -390,9 +722,6 @@ export class ClawdbotAdapter {
|
|
|
390
722
|
}
|
|
391
723
|
return skills;
|
|
392
724
|
}
|
|
393
|
-
/**
|
|
394
|
-
* Read personal-scripts/ and personal-scripts/cron-wrappers/
|
|
395
|
-
*/
|
|
396
725
|
async readScripts() {
|
|
397
726
|
const scripts = [];
|
|
398
727
|
const scriptsDir = join(this.workspaceDir, 'personal-scripts');
|
|
@@ -414,9 +743,6 @@ export class ClawdbotAdapter {
|
|
|
414
743
|
}
|
|
415
744
|
return scripts;
|
|
416
745
|
}
|
|
417
|
-
/**
|
|
418
|
-
* Read extensions/ directory configs (skip node_modules and binary files).
|
|
419
|
-
*/
|
|
420
746
|
async readExtensions() {
|
|
421
747
|
const extensions = [];
|
|
422
748
|
const extDir = join(this.workspaceDir, 'extensions');
|
|
@@ -430,7 +756,6 @@ export class ClawdbotAdapter {
|
|
|
430
756
|
if (!s?.isDirectory())
|
|
431
757
|
continue;
|
|
432
758
|
const entry = { name: extName, configs: {} };
|
|
433
|
-
// Only capture config-like files (not source code or node_modules)
|
|
434
759
|
const configExts = new Set(['.json', '.yaml', '.yml', '.toml', '.md', '.env', '.env.example']);
|
|
435
760
|
const files = await readdir(extPath).catch(() => []);
|
|
436
761
|
for (const f of files) {
|
|
@@ -458,9 +783,6 @@ export class ClawdbotAdapter {
|
|
|
458
783
|
}
|
|
459
784
|
return extensions;
|
|
460
785
|
}
|
|
461
|
-
/**
|
|
462
|
-
* Read config files from workspace root.
|
|
463
|
-
*/
|
|
464
786
|
async readConfigFiles() {
|
|
465
787
|
const configs = {};
|
|
466
788
|
for (const file of CONFIG_FILES) {
|
|
@@ -472,7 +794,6 @@ export class ClawdbotAdapter {
|
|
|
472
794
|
}
|
|
473
795
|
}
|
|
474
796
|
}
|
|
475
|
-
// Also check .savestate/agent-config.json
|
|
476
797
|
const agentConfigPath = join(this.workspaceDir, '.savestate', 'agent-config.json');
|
|
477
798
|
if (existsSync(agentConfigPath)) {
|
|
478
799
|
const content = await this.safeReadFile(agentConfigPath);
|
|
@@ -482,9 +803,6 @@ export class ClawdbotAdapter {
|
|
|
482
803
|
}
|
|
483
804
|
return Object.keys(configs).length > 0 ? configs : undefined;
|
|
484
805
|
}
|
|
485
|
-
/**
|
|
486
|
-
* Build knowledge documents index from skills and scripts.
|
|
487
|
-
*/
|
|
488
806
|
async buildKnowledgeIndex(skills, scripts) {
|
|
489
807
|
const docs = [];
|
|
490
808
|
for (const skill of skills) {
|
|
@@ -513,18 +831,6 @@ export class ClawdbotAdapter {
|
|
|
513
831
|
}
|
|
514
832
|
return docs;
|
|
515
833
|
}
|
|
516
|
-
async readJsonSafe(path) {
|
|
517
|
-
try {
|
|
518
|
-
const content = await readFile(path, 'utf-8');
|
|
519
|
-
return JSON.parse(content);
|
|
520
|
-
}
|
|
521
|
-
catch {
|
|
522
|
-
return undefined;
|
|
523
|
-
}
|
|
524
|
-
}
|
|
525
|
-
/**
|
|
526
|
-
* Walk a directory recursively and return file paths matching optional extensions.
|
|
527
|
-
*/
|
|
528
834
|
async walkDir(dir, extensions) {
|
|
529
835
|
const results = [];
|
|
530
836
|
const entries = await readdir(dir, { withFileTypes: true }).catch(() => []);
|
|
@@ -532,7 +838,7 @@ export class ClawdbotAdapter {
|
|
|
532
838
|
if (SKIP_DIRS.has(entry.name))
|
|
533
839
|
continue;
|
|
534
840
|
if (entry.name.startsWith('.'))
|
|
535
|
-
continue;
|
|
841
|
+
continue;
|
|
536
842
|
const fullPath = join(dir, entry.name);
|
|
537
843
|
if (entry.isDirectory()) {
|
|
538
844
|
const sub = await this.walkDir(fullPath, extensions);
|
|
@@ -552,35 +858,24 @@ export class ClawdbotAdapter {
|
|
|
552
858
|
return results;
|
|
553
859
|
}
|
|
554
860
|
// ─── Restore helpers ──────────────────────────────────────
|
|
555
|
-
/**
|
|
556
|
-
* Parse concatenated personality back into individual files and write them.
|
|
557
|
-
* Files are joined with `--- FILENAME ---` markers.
|
|
558
|
-
*/
|
|
559
861
|
async restoreIdentity(personality) {
|
|
560
862
|
const files = this.parsePersonality(personality);
|
|
561
863
|
for (const [filename, content] of files) {
|
|
562
864
|
const targetPath = join(this.workspaceDir, filename);
|
|
563
|
-
// Backup existing file
|
|
564
865
|
await this.backupFile(targetPath);
|
|
565
|
-
// Write restored content
|
|
566
866
|
await mkdir(dirname(targetPath), { recursive: true });
|
|
567
867
|
await writeFile(targetPath, content, 'utf-8');
|
|
568
868
|
}
|
|
569
869
|
}
|
|
570
|
-
/**
|
|
571
|
-
* Parse the concatenated personality string into individual files.
|
|
572
|
-
* Format: `--- FILENAME ---\ncontent\n\n--- NEXTFILE ---\ncontent`
|
|
573
|
-
*/
|
|
574
870
|
parsePersonality(personality) {
|
|
575
871
|
const files = new Map();
|
|
576
872
|
const regex = /^--- (.+?) ---$/gm;
|
|
577
873
|
const matches = [...personality.matchAll(regex)];
|
|
578
874
|
for (let i = 0; i < matches.length; i++) {
|
|
579
875
|
const filename = matches[i][1];
|
|
580
|
-
const startIdx = matches[i].index + matches[i][0].length + 1;
|
|
876
|
+
const startIdx = matches[i].index + matches[i][0].length + 1;
|
|
581
877
|
const endIdx = i + 1 < matches.length ? matches[i + 1].index : personality.length;
|
|
582
878
|
let content = personality.slice(startIdx, endIdx);
|
|
583
|
-
// Trim trailing newlines between sections (but keep content intact)
|
|
584
879
|
content = content.replace(/\n\n$/, '\n');
|
|
585
880
|
if (!content.endsWith('\n'))
|
|
586
881
|
content += '\n';
|
|
@@ -588,23 +883,14 @@ export class ClawdbotAdapter {
|
|
|
588
883
|
}
|
|
589
884
|
return files;
|
|
590
885
|
}
|
|
591
|
-
/**
|
|
592
|
-
* Restore memory entries back to their source files.
|
|
593
|
-
*/
|
|
594
886
|
async restoreMemory(entries) {
|
|
595
887
|
for (const entry of entries) {
|
|
596
888
|
const targetPath = join(this.workspaceDir, entry.source);
|
|
597
|
-
// Backup existing file
|
|
598
889
|
await this.backupFile(targetPath);
|
|
599
|
-
// Ensure directory exists
|
|
600
890
|
await mkdir(dirname(targetPath), { recursive: true });
|
|
601
|
-
// Write restored content
|
|
602
891
|
await writeFile(targetPath, entry.content, 'utf-8');
|
|
603
892
|
}
|
|
604
893
|
}
|
|
605
|
-
/**
|
|
606
|
-
* Restore skills back to skills/ directory.
|
|
607
|
-
*/
|
|
608
894
|
async restoreSkills(skills) {
|
|
609
895
|
for (const skill of skills) {
|
|
610
896
|
const skillDir = join(this.workspaceDir, 'skills', skill.name);
|
|
@@ -617,9 +903,6 @@ export class ClawdbotAdapter {
|
|
|
617
903
|
}
|
|
618
904
|
}
|
|
619
905
|
}
|
|
620
|
-
/**
|
|
621
|
-
* Restore personal scripts.
|
|
622
|
-
*/
|
|
623
906
|
async restoreScripts(scripts) {
|
|
624
907
|
for (const script of scripts) {
|
|
625
908
|
const targetPath = join(this.workspaceDir, script.path);
|
|
@@ -628,9 +911,6 @@ export class ClawdbotAdapter {
|
|
|
628
911
|
await writeFile(targetPath, script.content, 'utf-8');
|
|
629
912
|
}
|
|
630
913
|
}
|
|
631
|
-
/**
|
|
632
|
-
* Restore extension configs.
|
|
633
|
-
*/
|
|
634
914
|
async restoreExtensions(extensions) {
|
|
635
915
|
for (const ext of extensions) {
|
|
636
916
|
const extDir = join(this.workspaceDir, 'extensions', ext.name);
|
|
@@ -642,9 +922,6 @@ export class ClawdbotAdapter {
|
|
|
642
922
|
}
|
|
643
923
|
}
|
|
644
924
|
}
|
|
645
|
-
/**
|
|
646
|
-
* Restore config files to workspace root.
|
|
647
|
-
*/
|
|
648
925
|
async restoreConfigFiles(configs) {
|
|
649
926
|
for (const [file, value] of Object.entries(configs)) {
|
|
650
927
|
if (typeof value !== 'string')
|
|
@@ -655,9 +932,6 @@ export class ClawdbotAdapter {
|
|
|
655
932
|
await writeFile(targetPath, value, 'utf-8');
|
|
656
933
|
}
|
|
657
934
|
}
|
|
658
|
-
/**
|
|
659
|
-
* Create a .bak backup of an existing file before overwriting.
|
|
660
|
-
*/
|
|
661
935
|
async backupFile(filePath) {
|
|
662
936
|
if (existsSync(filePath)) {
|
|
663
937
|
const backupPath = filePath + '.bak';
|
|
@@ -665,7 +939,7 @@ export class ClawdbotAdapter {
|
|
|
665
939
|
await rename(filePath, backupPath);
|
|
666
940
|
}
|
|
667
941
|
catch {
|
|
668
|
-
// If rename fails
|
|
942
|
+
// If rename fails, continue without backup
|
|
669
943
|
}
|
|
670
944
|
}
|
|
671
945
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clawdbot.js","sourceRoot":"","sources":["../../src/adapters/clawdbot.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"clawdbot.js","sourceRoot":"","sources":["../../src/adapters/clawdbot.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
File without changes
|