@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 CHANGED
@@ -60,12 +60,40 @@ savestate restore latest
60
60
 
61
61
  | Platform | Extract | Restore | Status |
62
62
  |----------|---------|---------|--------|
63
- | **Clawdbot / Moltbot** | ✅ | ✅ | Available now |
64
- | **OpenAI Assistants API** | ✅ | ✅ | Coming soon |
65
- | **Custom file-based agents** | ✅ | ✅ | Coming soon |
66
- | **ChatGPT** | ✅ | ⚠️ Partial | Planned |
67
- | **Claude** | ✅ | ⚠️ Partial | Planned |
68
- | **Gemini** | ✅ | ⚠️ Limited | Planned |
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
- * This is the dogfood adapter — SaveState eats its own cooking.
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 = "Clawdbot";
15
- readonly platform = "clawdbot";
16
- readonly version = "0.2.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
- * Check if a file should be skipped (binary or too large).
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;;;;;;;;;GASG;AAMH,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EACZ,QAAQ,EAOT,MAAM,aAAa,CAAC;AAqCrB,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,CAAgB;gBAEpB,YAAY,CAAC,EAAE,MAAM;IAI3B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAW1B,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;IAwF5B,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B1C,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC;IAoBvC;;OAEG;IACH,OAAO,CAAC,QAAQ;YAMF,aAAa;YAab,YAAY;YAcZ,YAAY;YAcZ,UAAU;YA8CV,iBAAiB;IAoD/B;;OAEG;YACW,UAAU;IAoExB;;OAEG;YACW,WAAW;IAsBzB;;OAEG;YACW,cAAc;IA2C5B;;OAEG;YACW,eAAe;IAyB7B;;OAEG;YACW,mBAAmB;YAmCnB,YAAY;IAS1B;;OAEG;YACW,OAAO;IA2BrB;;;OAGG;YACW,eAAe;IAe7B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAqBxB;;OAEG;YACW,aAAa;IAe3B;;OAEG;YACW,aAAa;IAc3B;;OAEG;YACW,cAAc;IAS5B;;OAEG;YACW,iBAAiB;IAa/B;;OAEG;YACW,kBAAkB;IAUhC;;OAEG;YACW,UAAU;CAUzB"}
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
- * This is the dogfood adapter — SaveState eats its own cooking.
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 to capture (1MB) */
36
- const MAX_FILE_SIZE = 1024 * 1024;
37
- /** Separator used in concatenated personality */
38
- const FILE_SEPARATOR_PREFIX = '--- ';
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 = 'Clawdbot';
45
- platform = 'clawdbot';
46
- version = '0.2.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: configEntries,
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
- await this.restoreConfigFiles(snapshot.identity.config);
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 in the workspace
235
+ // Try to read version from OpenClaw config or package.json
170
236
  let version = this.version;
171
- try {
172
- const pkg = await readFile(join(this.workspaceDir, 'package.json'), 'utf-8');
173
- const parsed = JSON.parse(pkg);
174
- if (typeof parsed.version === 'string') {
175
- version = parsed.version;
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: 'Clawdbot',
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 > MAX_FILE_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 ~/.clawdbot/agents/*/sessions/*.jsonl
279
- const agentsDir = join(homedir(), '.clawdbot', 'agents');
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
- for (const agent of agents) {
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 <= MAX_FILE_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; // Skip hidden files/dirs
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; // +1 for newline
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 (e.g., permissions), continue without backup
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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@savestate/cli",
3
- "version": "0.4.2",
3
+ "version": "0.5.0",
4
4
  "description": "Time Machine for AI. Backup, restore, and migrate your AI identity.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",