openclaw-workspace-sync 1.4.5 → 2.0.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 +129 -18
- package/dist/rclone.d.ts +4 -1
- package/dist/rclone.d.ts.map +1 -1
- package/dist/rclone.js +7 -5
- package/dist/rclone.js.map +1 -1
- package/dist/sync-manager.d.ts.map +1 -1
- package/dist/sync-manager.js +96 -26
- package/dist/sync-manager.js.map +1 -1
- package/dist/types.d.ts +12 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/skills/workspace-sync/SKILL.md +51 -20
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# OpenClaw Workspace Cloud Sync Plugin
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Sync your OpenClaw agent workspace with cloud storage via [rclone](https://rclone.org/).
|
|
4
4
|
|
|
5
5
|
Supports **Dropbox, Google Drive, OneDrive, S3/R2/Minio**, and [70+ cloud providers](https://rclone.org/overview/).
|
|
6
6
|
|
|
@@ -10,7 +10,7 @@ Supports **Dropbox, Google Drive, OneDrive, S3/R2/Minio**, and [70+ cloud provid
|
|
|
10
10
|
<img src="https://raw.githubusercontent.com/ashbrener/openclaw-workspace-sync/main/docs/how-it-works.png" alt="How it works — Local Machine syncs to Cloud Provider syncs to Remote Gateway" width="600" />
|
|
11
11
|
</p>
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
The remote gateway workspace is the **source of truth**. Changes made by the agent flow down to your local machine through cloud storage. You can send files to the agent through an optional inbox.
|
|
14
14
|
|
|
15
15
|
**Zero LLM cost.** All sync operations are pure rclone file operations — they never wake the bot or trigger LLM calls.
|
|
16
16
|
|
|
@@ -20,6 +20,67 @@ Drop a file locally — it appears on the remote Gateway (and vice versa).
|
|
|
20
20
|
<img src="https://raw.githubusercontent.com/ashbrener/openclaw-workspace-sync/main/docs/architecture.png" alt="Plugin architecture — CLI, Hooks, and Sync Manager feed into rclone wrapper" width="600" />
|
|
21
21
|
</p>
|
|
22
22
|
|
|
23
|
+
## Sync modes (breaking change in v2.0)
|
|
24
|
+
|
|
25
|
+
**`mode` is now required.** Previous versions used bidirectional bisync implicitly. Starting with v2.0, you must explicitly set `"mode"` in your config. The plugin will refuse to start and log an error until `mode` is set. This prevents accidental data loss from an unexpected sync direction.
|
|
26
|
+
|
|
27
|
+
The plugin supports two sync modes. Choose the one that fits your workflow:
|
|
28
|
+
|
|
29
|
+
| Mode | Direction | Description |
|
|
30
|
+
|------|-----------|-------------|
|
|
31
|
+
| `mirror` | Remote → Local | One-way sync: workspace mirrors down to local. Safe — local can never overwrite remote. **Recommended.** |
|
|
32
|
+
| `bisync` | Bidirectional | Full two-way sync. Powerful but requires careful setup. |
|
|
33
|
+
|
|
34
|
+
**Upgrading from a previous version?** If you were using bisync before, add `"mode": "bisync"` to your config to preserve the existing behavior. If you want the safer default, use `"mode": "mirror"` instead.
|
|
35
|
+
|
|
36
|
+
### `mirror` mode (recommended)
|
|
37
|
+
|
|
38
|
+
The agent workspace is the source of truth. Every sync cycle copies the latest workspace state down to your local folder. Local files outside the workspace are never sent up.
|
|
39
|
+
|
|
40
|
+
This is the safest mode: even if something goes wrong, only your local copy is affected — the workspace stays untouched.
|
|
41
|
+
|
|
42
|
+
### `ingest` option
|
|
43
|
+
|
|
44
|
+
Want to send files to the agent? Enable the `ingest` option. This creates a local `inbox/` folder that syncs one-way **up** to the workspace. Drop a file in the inbox — it appears on the remote workspace. The inbox is separate from the mirror, so there is no risk of overwriting workspace files.
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
{
|
|
48
|
+
"mode": "mirror",
|
|
49
|
+
"ingest": true,
|
|
50
|
+
"ingestPath": "inbox"
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
When enabled, a local `inbox/` folder syncs its contents to `<remotePath>/inbox/` on the workspace. This is additive only — files are copied up, never deleted from the remote side.
|
|
55
|
+
|
|
56
|
+
### `bisync` mode (advanced)
|
|
57
|
+
|
|
58
|
+
Full bidirectional sync using rclone bisync. Changes on either side propagate to the other.
|
|
59
|
+
|
|
60
|
+
Use this only if you understand the trade-offs:
|
|
61
|
+
|
|
62
|
+
- Both sides must be in a known-good state before starting
|
|
63
|
+
- A `--resync` is required once to establish the baseline — and it copies **everything**
|
|
64
|
+
- If bisync state is lost (e.g., after a deploy that wipes ephemeral storage), you must `--resync` again
|
|
65
|
+
- Deleted files can reappear if the other side still has them during a resync
|
|
66
|
+
- On container platforms (Fly.io, Railway), bisync state lives in ephemeral storage and is lost on every deploy
|
|
67
|
+
|
|
68
|
+
If you are running on a container platform, `mirror` mode is strongly recommended.
|
|
69
|
+
|
|
70
|
+
## Setup sequence
|
|
71
|
+
|
|
72
|
+
Getting sync right depends on doing things in the right order. Follow these steps:
|
|
73
|
+
|
|
74
|
+
1. **Configure the plugin** in `openclaw.json` with your provider credentials and `mode`
|
|
75
|
+
2. **Verify the remote** is accessible: `openclaw workspace-sync status`
|
|
76
|
+
3. **Run a dry-run first** to see what would happen: `openclaw workspace-sync sync --dry-run`
|
|
77
|
+
4. **Run the first sync**: `openclaw workspace-sync sync`
|
|
78
|
+
- In `mirror` mode, this pulls the current workspace down
|
|
79
|
+
- In `bisync` mode, this requires `--resync` to establish the baseline
|
|
80
|
+
5. **Enable periodic sync** by setting `interval` in your config
|
|
81
|
+
|
|
82
|
+
Take care when changing config (switching `remotePath`, `localPath`, or `mode`) — always disable periodic sync first, verify the new paths, then re-enable.
|
|
83
|
+
|
|
23
84
|
## Install
|
|
24
85
|
|
|
25
86
|
```bash
|
|
@@ -44,10 +105,11 @@ openclaw workspace-sync setup
|
|
|
44
105
|
The setup wizard guides you through:
|
|
45
106
|
1. Checking/installing rclone
|
|
46
107
|
2. Selecting cloud provider
|
|
47
|
-
3.
|
|
48
|
-
4.
|
|
49
|
-
5.
|
|
50
|
-
6.
|
|
108
|
+
3. Choosing sync mode
|
|
109
|
+
4. Dropbox app folder option (for scoped access)
|
|
110
|
+
5. Background sync interval
|
|
111
|
+
6. OAuth authorization
|
|
112
|
+
7. First sync
|
|
51
113
|
|
|
52
114
|
Or configure manually — see [Configuration](#configuration) below.
|
|
53
115
|
|
|
@@ -63,13 +125,13 @@ Add to your `openclaw.json`:
|
|
|
63
125
|
"enabled": true,
|
|
64
126
|
"config": {
|
|
65
127
|
"provider": "dropbox",
|
|
128
|
+
"mode": "mirror",
|
|
66
129
|
"remotePath": "openclaw-share",
|
|
67
130
|
"localPath": "shared",
|
|
68
131
|
"interval": 300,
|
|
69
132
|
"timeout": 1800,
|
|
70
133
|
"onSessionStart": true,
|
|
71
134
|
"onSessionEnd": false,
|
|
72
|
-
"conflictResolve": "newer",
|
|
73
135
|
"exclude": [".git/**", "node_modules/**", "*.log"]
|
|
74
136
|
}
|
|
75
137
|
}
|
|
@@ -83,6 +145,9 @@ Add to your `openclaw.json`:
|
|
|
83
145
|
| Key | Type | Default | Description |
|
|
84
146
|
|-----|------|---------|-------------|
|
|
85
147
|
| `provider` | string | `"off"` | `dropbox` \| `gdrive` \| `onedrive` \| `s3` \| `custom` \| `off` |
|
|
148
|
+
| `mode` | string | **required** | `mirror` \| `bisync` — see [Sync modes](#sync-modes-breaking-change-in-v20) |
|
|
149
|
+
| `ingest` | boolean | `false` | Enable local inbox for sending files to the agent |
|
|
150
|
+
| `ingestPath` | string | `"inbox"` | Local subfolder name for ingestion (relative to `localPath`) |
|
|
86
151
|
| `remotePath` | string | `"openclaw-share"` | Folder name in cloud storage |
|
|
87
152
|
| `localPath` | string | `"shared"` | Subfolder within workspace to sync |
|
|
88
153
|
| `interval` | number | `0` | Background sync interval in seconds (0 = manual only, min 60) |
|
|
@@ -91,11 +156,11 @@ Add to your `openclaw.json`:
|
|
|
91
156
|
| `onSessionEnd` | boolean | `false` | Sync when an agent session ends |
|
|
92
157
|
| `remoteName` | string | `"cloud"` | rclone remote name |
|
|
93
158
|
| `configPath` | string | auto | Path to rclone.conf |
|
|
94
|
-
| `conflictResolve` | string | `"newer"` | `newer` \| `local` \| `remote` |
|
|
159
|
+
| `conflictResolve` | string | `"newer"` | `newer` \| `local` \| `remote` (bisync only) |
|
|
95
160
|
| `exclude` | string[] | see below | Glob patterns to exclude |
|
|
96
161
|
| `copySymlinks` | boolean | `false` | Follow symlinks during sync |
|
|
97
162
|
|
|
98
|
-
Default excludes:
|
|
163
|
+
Default excludes: `**/.DS_Store`
|
|
99
164
|
|
|
100
165
|
### Provider-specific options
|
|
101
166
|
|
|
@@ -190,19 +255,19 @@ openclaw workspace-sync setup
|
|
|
190
255
|
# Check sync status
|
|
191
256
|
openclaw workspace-sync status
|
|
192
257
|
|
|
193
|
-
# Sync
|
|
258
|
+
# Sync (behavior depends on mode)
|
|
194
259
|
openclaw workspace-sync sync
|
|
195
260
|
|
|
196
|
-
# First sync (required once to establish baseline)
|
|
197
|
-
openclaw workspace-sync sync --resync
|
|
198
|
-
|
|
199
261
|
# Preview changes without syncing
|
|
200
262
|
openclaw workspace-sync sync --dry-run
|
|
201
263
|
|
|
202
|
-
# One-way sync
|
|
264
|
+
# One-way sync (explicit, overrides mode for this run)
|
|
203
265
|
openclaw workspace-sync sync --direction pull # remote -> local
|
|
204
266
|
openclaw workspace-sync sync --direction push # local -> remote
|
|
205
267
|
|
|
268
|
+
# Force re-establish bisync baseline (bisync mode only)
|
|
269
|
+
openclaw workspace-sync sync --resync
|
|
270
|
+
|
|
206
271
|
# Authorize with cloud provider
|
|
207
272
|
openclaw workspace-sync authorize
|
|
208
273
|
openclaw workspace-sync authorize --provider gdrive
|
|
@@ -235,7 +300,9 @@ Set `interval` to enable automatic background sync (in seconds):
|
|
|
235
300
|
}
|
|
236
301
|
```
|
|
237
302
|
|
|
238
|
-
The gateway runs
|
|
303
|
+
The gateway runs sync in the background at this interval. Minimum interval is 60 seconds. The `timeout` controls how long each sync operation is allowed to run (default: 1800s / 30 min). Increase this for large workspaces or slow connections.
|
|
304
|
+
|
|
305
|
+
In `mirror` mode, periodic sync pulls the latest workspace state down to local. In `bisync` mode, it runs a full bidirectional sync.
|
|
239
306
|
|
|
240
307
|
### External cron (alternative)
|
|
241
308
|
|
|
@@ -264,8 +331,11 @@ If you prefer to skip the interactive wizard, configure the plugin in `openclaw.
|
|
|
264
331
|
# 1. Authorize with your cloud provider
|
|
265
332
|
openclaw workspace-sync authorize --provider dropbox
|
|
266
333
|
|
|
267
|
-
# 2. Run
|
|
268
|
-
openclaw workspace-sync sync --
|
|
334
|
+
# 2. Run a dry-run to preview what will sync
|
|
335
|
+
openclaw workspace-sync sync --dry-run
|
|
336
|
+
|
|
337
|
+
# 3. Run the first sync
|
|
338
|
+
openclaw workspace-sync sync
|
|
269
339
|
```
|
|
270
340
|
|
|
271
341
|
The plugin handles rclone installation, config generation, and token storage automatically based on your `openclaw.json` settings.
|
|
@@ -287,6 +357,37 @@ Benefits:
|
|
|
287
357
|
- If token is compromised, blast radius is limited
|
|
288
358
|
- Clean separation — sync folder lives under `Apps/`
|
|
289
359
|
|
|
360
|
+
## Understanding sync safety
|
|
361
|
+
|
|
362
|
+
Cloud sync involves two copies of your data. When things go wrong, one side can overwrite the other. Here is what to keep in mind:
|
|
363
|
+
|
|
364
|
+
**Mirror mode is safe by design.** The remote workspace is the authority. Local is a read-only copy. Even if your local folder is empty, stale, or corrupted, the next sync just re-downloads the workspace. The agent's work is never affected by local state.
|
|
365
|
+
|
|
366
|
+
**Bisync requires both sides to agree.** Bisync tracks what changed since the last sync. If that tracking state is lost (deploy, disk wipe, moving to a new machine), rclone does not know what changed and requires a `--resync`. A resync copies everything from both sides — if one side has stale or unwanted files, they propagate to the other.
|
|
367
|
+
|
|
368
|
+
**Common pitfalls to avoid:**
|
|
369
|
+
- Changing `remotePath` or `localPath` while periodic sync is enabled
|
|
370
|
+
- Running `--resync` without checking both sides first
|
|
371
|
+
- Using `bisync` on container platforms where state is ephemeral
|
|
372
|
+
- Syncing very large directories (use `exclude` patterns liberally)
|
|
373
|
+
|
|
374
|
+
**If in doubt, use `mirror` mode.** You can always send files to the agent through the inbox, and you get a reliable local copy of the workspace without any risk.
|
|
375
|
+
|
|
376
|
+
## Important: `--resync` is destructive (bisync only)
|
|
377
|
+
|
|
378
|
+
**Never use `--resync` unless you know exactly what it does.** The `--resync` flag tells rclone to throw away its knowledge of what has changed and do a full reconciliation — it copies every file that exists on either side to the other side. This means:
|
|
379
|
+
|
|
380
|
+
- Files you deleted remotely will come back from local (and vice versa)
|
|
381
|
+
- It transfers your **entire** sync scope, not just recent changes
|
|
382
|
+
- On a large Dropbox, this can take 30+ minutes and fill your disk
|
|
383
|
+
|
|
384
|
+
Normal bisync (without `--resync`) only transfers files that changed since the last sync. The plugin **never** auto-resyncs. If bisync's internal state gets corrupted, it will log a message telling you to run `--resync` manually — but only do this after confirming both sides are in the state you want.
|
|
385
|
+
|
|
386
|
+
```bash
|
|
387
|
+
# Only when you explicitly need to re-establish the baseline:
|
|
388
|
+
openclaw workspace-sync sync --resync
|
|
389
|
+
```
|
|
390
|
+
|
|
290
391
|
## Troubleshooting
|
|
291
392
|
|
|
292
393
|
### Token expired
|
|
@@ -295,7 +396,7 @@ Benefits:
|
|
|
295
396
|
openclaw workspace-sync authorize
|
|
296
397
|
```
|
|
297
398
|
|
|
298
|
-
### Conflicts
|
|
399
|
+
### Conflicts (bisync only)
|
|
299
400
|
|
|
300
401
|
Files modified on both sides get a `.conflict` suffix. The winner is determined by `conflictResolve` (default: `newer`). To find conflict files:
|
|
301
402
|
|
|
@@ -329,6 +430,16 @@ Increase the `timeout` config (in seconds). The default is 1800 (30 min). For la
|
|
|
329
430
|
chmod -R 755 <workspace>/shared
|
|
330
431
|
```
|
|
331
432
|
|
|
433
|
+
## Deployment recommendations
|
|
434
|
+
|
|
435
|
+
If you are running OpenClaw on a cloud container (Fly.io, Railway, Render) or a VPS:
|
|
436
|
+
|
|
437
|
+
- **Use a separate persistent volume for the workspace.** Container root filesystems are ephemeral — a redeploy wipes everything. Mount a dedicated volume (e.g., Fly.io volumes, EBS, DigitalOcean block storage) at your workspace path so data survives deploys and restarts.
|
|
438
|
+
- **Enable daily volume snapshots.** Most cloud providers offer automated snapshots (Fly.io does this by default with 5-day retention). If something goes wrong — a bad sync, accidental deletion, or a failed reorganization — a recent snapshot lets you restore in minutes instead of rebuilding from scratch.
|
|
439
|
+
- **Test your restore process.** A backup you have never restored is a backup you do not have. Create a volume from a snapshot at least once to confirm the process works and you know the steps.
|
|
440
|
+
|
|
441
|
+
These recommendations apply regardless of whether you use this plugin. Cloud sync adds convenience but is not a substitute for proper backups.
|
|
442
|
+
|
|
332
443
|
## Security notes
|
|
333
444
|
|
|
334
445
|
- **Token storage**: rclone tokens are stored in `rclone.conf` with `0600` permissions
|
package/dist/rclone.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Self-contained — no imports from openclaw core.
|
|
5
5
|
* Uses child_process.execFile directly instead of the core runExec wrapper.
|
|
6
6
|
*/
|
|
7
|
-
import type { WorkspaceSyncConfig, WorkspaceSyncProvider } from "./types.js";
|
|
7
|
+
import type { WorkspaceSyncConfig, WorkspaceSyncMode, WorkspaceSyncProvider } from "./types.js";
|
|
8
8
|
type Logger = {
|
|
9
9
|
debug?: (msg: string) => void;
|
|
10
10
|
info: (msg: string) => void;
|
|
@@ -25,6 +25,9 @@ export declare function ensureRcloneInstalled(prompt: (message: string, defaultV
|
|
|
25
25
|
export declare function getDefaultRcloneConfigPath(stateDir?: string): string;
|
|
26
26
|
export declare function resolveSyncConfig(config: WorkspaceSyncConfig | undefined, workspace: string, stateDir?: string): {
|
|
27
27
|
provider: WorkspaceSyncProvider;
|
|
28
|
+
mode: WorkspaceSyncMode;
|
|
29
|
+
ingest: boolean;
|
|
30
|
+
ingestPath: string;
|
|
28
31
|
remoteName: string;
|
|
29
32
|
remotePath: string;
|
|
30
33
|
localPath: string;
|
package/dist/rclone.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rclone.d.ts","sourceRoot":"","sources":["../src/rclone.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"rclone.d.ts","sourceRoot":"","sources":["../src/rclone.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEhG,KAAK,MAAM,GAAG;IACZ,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B,CAAC;AAIF,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE9C;AAoHD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAMF,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6B/D;AAID,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAIvD;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAG1D;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GACnE,OAAO,CAAC,OAAO,CAAC,CA0DlB;AAMD,wBAAgB,0BAA0B,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAGpE;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,mBAAmB,GAAG,SAAS,EACvC,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB;IACD,QAAQ,EAAE,qBAAqB,CAAC;IAChC,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;CACvB,CAmBA;AAqBD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,qBAAqB,EAC/B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,EAAE,CAAC,EAAE;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,QAAQ,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,MAAM,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;CACzE,GACA,MAAM,CAmCR;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAM3E;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAQlF;AAED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,mBAAmB,GAAG,SAAS,EAC3C,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CA4DT;AAMD,wBAAsB,eAAe,CACnC,QAAQ,EAAE,qBAAqB,EAC/B,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA2BrE;AAMD,wBAAgB,gBAAgB,IAAI,IAAI,CAgBvC;AAMD,wBAAsB,SAAS,CAAC,MAAM,EAAE;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkF5B;AAED,wBAAsB,OAAO,CAAC,MAAM,EAAE;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoC5B;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAoBxE;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAevD"}
|
package/dist/rclone.js
CHANGED
|
@@ -212,6 +212,9 @@ export function resolveSyncConfig(config, workspace, stateDir) {
|
|
|
212
212
|
const DEFAULT_TIMEOUT_S = 1800;
|
|
213
213
|
return {
|
|
214
214
|
provider: config?.provider ?? "off",
|
|
215
|
+
mode: config?.mode ?? "mirror",
|
|
216
|
+
ingest: config?.ingest ?? false,
|
|
217
|
+
ingestPath: config?.ingestPath ?? "inbox",
|
|
215
218
|
remoteName: config?.remoteName ?? DEFAULT_REMOTE_NAME,
|
|
216
219
|
remotePath: config?.remotePath ?? DEFAULT_REMOTE_PATH,
|
|
217
220
|
localPath: join(workspace, config?.localPath ?? DEFAULT_LOCAL_PATH),
|
|
@@ -489,11 +492,10 @@ export async function runBisync(params) {
|
|
|
489
492
|
clearBisyncLocks();
|
|
490
493
|
result = await attempt(args);
|
|
491
494
|
}
|
|
492
|
-
//
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
result = await attempt(resyncArgs);
|
|
495
|
+
// Never auto-resync — --resync does a full reconciliation that overwrites
|
|
496
|
+
// the local side with remote state. Only use when explicitly forced via CLI.
|
|
497
|
+
if (!result.ok && (result.error?.includes("--resync") || result.error?.includes("Must run --resync") || result.error?.includes("Bisync aborted"))) {
|
|
498
|
+
logInfo("[workspace-sync] Bisync needs --resync to re-establish baseline. Run manually: openclaw workspace-sync sync --resync");
|
|
497
499
|
}
|
|
498
500
|
return result;
|
|
499
501
|
}
|
package/dist/rclone.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rclone.js","sourceRoot":"","sources":["../src/rclone.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rclone.js","sourceRoot":"","sources":["../src/rclone.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-manager.d.ts","sourceRoot":"","sources":["../src/sync-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"sync-manager.d.ts","sourceRoot":"","sources":["../src/sync-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAWtD,KAAK,MAAM,GAAG;IACZ,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B,CAAC;AAqLF,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,mBAAmB,EAC/B,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,IAAI,CA8CN;AAED,wBAAgB,eAAe,IAAI,IAAI,CAWtC;AAED,wBAAgB,oBAAoB,IAAI;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CAQA;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE1D"}
|
package/dist/sync-manager.js
CHANGED
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
* Runs rclone bisync at configured intervals WITHOUT involving the agent/LLM.
|
|
5
5
|
* Pure file operation, zero token cost.
|
|
6
6
|
*/
|
|
7
|
-
import { isRcloneInstalled, isRcloneConfigured, ensureRcloneConfigFromConfig, resolveSyncConfig, runBisync, clearBisyncLocks, } from "./rclone.js";
|
|
7
|
+
import { isRcloneInstalled, isRcloneConfigured, ensureRcloneConfigFromConfig, resolveSyncConfig, runBisync, runSync, clearBisyncLocks, } from "./rclone.js";
|
|
8
8
|
const state = {
|
|
9
9
|
timeoutId: null,
|
|
10
10
|
lastSyncAt: null,
|
|
11
11
|
lastSyncOk: null,
|
|
12
12
|
syncCount: 0,
|
|
13
13
|
errorCount: 0,
|
|
14
|
-
hasSuccessfulSync: false,
|
|
15
14
|
running: false,
|
|
15
|
+
syncing: false,
|
|
16
16
|
intervalMs: 0,
|
|
17
17
|
};
|
|
18
18
|
let currentSyncConfig = null;
|
|
@@ -33,10 +33,19 @@ async function runSyncLoop() {
|
|
|
33
33
|
async function doSync() {
|
|
34
34
|
if (!currentSyncConfig || !currentLogger || !currentWorkspaceDir)
|
|
35
35
|
return;
|
|
36
|
+
if (state.syncing) {
|
|
37
|
+
currentLogger.info("[workspace-sync] Sync already in progress, skipping this cycle");
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
36
40
|
const syncConfig = currentSyncConfig;
|
|
37
41
|
if (!syncConfig.provider || syncConfig.provider === "off")
|
|
38
42
|
return;
|
|
43
|
+
if (!syncConfig.mode) {
|
|
44
|
+
currentLogger.error('[workspace-sync] "mode" is required in config. Set "mode": "mirror" (remote→local, recommended) or "mode": "bisync" (bidirectional). Sync will not run until mode is set.');
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
39
47
|
const logger = currentLogger;
|
|
48
|
+
state.syncing = true;
|
|
40
49
|
try {
|
|
41
50
|
const installed = await isRcloneInstalled();
|
|
42
51
|
if (!installed) {
|
|
@@ -49,31 +58,83 @@ async function doSync() {
|
|
|
49
58
|
logger.warn(`[workspace-sync] rclone not configured for "${resolved.remoteName}", skipping`);
|
|
50
59
|
return;
|
|
51
60
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
state.
|
|
69
|
-
|
|
70
|
-
|
|
61
|
+
const mode = resolved.mode;
|
|
62
|
+
if (mode === "bisync") {
|
|
63
|
+
logger.info(`[workspace-sync] Running periodic bisync: ${resolved.remoteName}:${resolved.remotePath}`);
|
|
64
|
+
const result = await runBisync({
|
|
65
|
+
configPath: resolved.configPath,
|
|
66
|
+
remoteName: resolved.remoteName,
|
|
67
|
+
remotePath: resolved.remotePath,
|
|
68
|
+
localPath: resolved.localPath,
|
|
69
|
+
conflictResolve: resolved.conflictResolve,
|
|
70
|
+
exclude: resolved.exclude,
|
|
71
|
+
copySymlinks: resolved.copySymlinks,
|
|
72
|
+
resync: false,
|
|
73
|
+
timeoutMs: resolved.timeoutMs,
|
|
74
|
+
verbose: !!logger.debug,
|
|
75
|
+
});
|
|
76
|
+
state.lastSyncAt = new Date();
|
|
77
|
+
state.syncCount++;
|
|
78
|
+
if (result.ok) {
|
|
79
|
+
state.lastSyncOk = true;
|
|
80
|
+
logger.info("[workspace-sync] Periodic bisync completed");
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
state.lastSyncOk = false;
|
|
84
|
+
state.errorCount++;
|
|
85
|
+
logger.warn(`[workspace-sync] Periodic bisync failed: ${result.error}`);
|
|
86
|
+
}
|
|
71
87
|
}
|
|
72
88
|
else {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
89
|
+
// mirror mode: one-way remote → local
|
|
90
|
+
logger.info(`[workspace-sync] Running periodic mirror (remote→local): ${resolved.remoteName}:${resolved.remotePath}`);
|
|
91
|
+
const result = await runSync({
|
|
92
|
+
configPath: resolved.configPath,
|
|
93
|
+
remoteName: resolved.remoteName,
|
|
94
|
+
remotePath: resolved.remotePath,
|
|
95
|
+
localPath: resolved.localPath,
|
|
96
|
+
direction: "pull",
|
|
97
|
+
exclude: resolved.exclude,
|
|
98
|
+
timeoutMs: resolved.timeoutMs,
|
|
99
|
+
verbose: !!logger.debug,
|
|
100
|
+
});
|
|
101
|
+
state.lastSyncAt = new Date();
|
|
102
|
+
state.syncCount++;
|
|
103
|
+
if (result.ok) {
|
|
104
|
+
state.lastSyncOk = true;
|
|
105
|
+
logger.info("[workspace-sync] Periodic mirror completed");
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
state.lastSyncOk = false;
|
|
109
|
+
state.errorCount++;
|
|
110
|
+
logger.warn(`[workspace-sync] Periodic mirror failed: ${result.error}`);
|
|
111
|
+
}
|
|
112
|
+
// ingest: one-way local inbox → remote (additive)
|
|
113
|
+
if (resolved.ingest) {
|
|
114
|
+
const { join } = await import("node:path");
|
|
115
|
+
const { existsSync, mkdirSync } = await import("node:fs");
|
|
116
|
+
const inboxLocal = join(resolved.localPath, resolved.ingestPath);
|
|
117
|
+
if (!existsSync(inboxLocal)) {
|
|
118
|
+
mkdirSync(inboxLocal, { recursive: true });
|
|
119
|
+
}
|
|
120
|
+
const inboxRemotePath = resolved.remotePath
|
|
121
|
+
? `${resolved.remotePath}/${resolved.ingestPath}`
|
|
122
|
+
: resolved.ingestPath;
|
|
123
|
+
logger.info(`[workspace-sync] Running ingest (local inbox→remote): ${inboxLocal} → ${resolved.remoteName}:${inboxRemotePath}`);
|
|
124
|
+
const ingestResult = await runSync({
|
|
125
|
+
configPath: resolved.configPath,
|
|
126
|
+
remoteName: resolved.remoteName,
|
|
127
|
+
remotePath: inboxRemotePath,
|
|
128
|
+
localPath: inboxLocal,
|
|
129
|
+
direction: "push",
|
|
130
|
+
exclude: resolved.exclude,
|
|
131
|
+
timeoutMs: resolved.timeoutMs,
|
|
132
|
+
verbose: !!logger.debug,
|
|
133
|
+
});
|
|
134
|
+
if (!ingestResult.ok) {
|
|
135
|
+
logger.warn(`[workspace-sync] Ingest sync failed: ${ingestResult.error}`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
77
138
|
}
|
|
78
139
|
}
|
|
79
140
|
catch (err) {
|
|
@@ -81,6 +142,9 @@ async function doSync() {
|
|
|
81
142
|
state.errorCount++;
|
|
82
143
|
logger.error(`[workspace-sync] Periodic sync error: ${err instanceof Error ? err.message : String(err)}`);
|
|
83
144
|
}
|
|
145
|
+
finally {
|
|
146
|
+
state.syncing = false;
|
|
147
|
+
}
|
|
84
148
|
}
|
|
85
149
|
export function startSyncManager(syncConfig, workspaceDir, stateDir, logger) {
|
|
86
150
|
stopSyncManager();
|
|
@@ -92,6 +156,10 @@ export function startSyncManager(syncConfig, workspaceDir, stateDir, logger) {
|
|
|
92
156
|
logger.info("[workspace-sync] Workspace sync not configured");
|
|
93
157
|
return;
|
|
94
158
|
}
|
|
159
|
+
if (!syncConfig.mode) {
|
|
160
|
+
logger.error('[workspace-sync] BREAKING: "mode" is now required. Set "mode": "mirror" (remote→local, recommended) or "mode": "bisync" (bidirectional) in your openclaw.json plugin config. Sync will not start until mode is explicitly set.');
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
95
163
|
clearBisyncLocks();
|
|
96
164
|
const intervalSeconds = syncConfig.interval ?? 0;
|
|
97
165
|
if (intervalSeconds <= 0) {
|
|
@@ -102,7 +170,8 @@ export function startSyncManager(syncConfig, workspaceDir, stateDir, logger) {
|
|
|
102
170
|
if (effectiveInterval !== intervalSeconds) {
|
|
103
171
|
logger.warn(`[workspace-sync] Interval increased from ${intervalSeconds}s to ${effectiveInterval}s (minimum)`);
|
|
104
172
|
}
|
|
105
|
-
|
|
173
|
+
const mode = syncConfig.mode ?? "mirror";
|
|
174
|
+
logger.info(`[workspace-sync] Starting periodic sync every ${effectiveInterval}s in ${mode} mode (pure file sync, zero LLM cost)`);
|
|
106
175
|
state.running = true;
|
|
107
176
|
state.intervalMs = effectiveInterval * 1000;
|
|
108
177
|
state.timeoutId = setTimeout(() => {
|
|
@@ -111,6 +180,7 @@ export function startSyncManager(syncConfig, workspaceDir, stateDir, logger) {
|
|
|
111
180
|
}
|
|
112
181
|
export function stopSyncManager() {
|
|
113
182
|
state.running = false;
|
|
183
|
+
state.syncing = false;
|
|
114
184
|
if (state.timeoutId) {
|
|
115
185
|
clearTimeout(state.timeoutId);
|
|
116
186
|
state.timeoutId = null;
|
package/dist/sync-manager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-manager.js","sourceRoot":"","sources":["../src/sync-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,4BAA4B,EAC5B,iBAAiB,EACjB,SAAS,EACT,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAoBrB,MAAM,KAAK,GAAqB;IAC9B,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,CAAC;IACZ,UAAU,EAAE,CAAC;IACb,
|
|
1
|
+
{"version":3,"file":"sync-manager.js","sourceRoot":"","sources":["../src/sync-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -8,11 +8,23 @@
|
|
|
8
8
|
* - custom: custom rclone remote (user-configured)
|
|
9
9
|
*/
|
|
10
10
|
export type WorkspaceSyncProvider = "off" | "dropbox" | "gdrive" | "onedrive" | "s3" | "custom";
|
|
11
|
+
/**
|
|
12
|
+
* Workspace sync modes.
|
|
13
|
+
* - mirror: one-way remote→local (default, safest)
|
|
14
|
+
* - bisync: bidirectional via rclone bisync (advanced)
|
|
15
|
+
*/
|
|
16
|
+
export type WorkspaceSyncMode = "mirror" | "bisync";
|
|
11
17
|
/**
|
|
12
18
|
* Workspace sync configuration — matches the plugin configSchema.
|
|
13
19
|
*/
|
|
14
20
|
export type WorkspaceSyncConfig = {
|
|
15
21
|
provider?: WorkspaceSyncProvider;
|
|
22
|
+
/** Sync mode: "mirror" (remote→local, default) or "bisync" (bidirectional, advanced). */
|
|
23
|
+
mode?: WorkspaceSyncMode;
|
|
24
|
+
/** Enable a local inbox folder that syncs one-way up to the remote workspace. */
|
|
25
|
+
ingest?: boolean;
|
|
26
|
+
/** Local subfolder name for ingestion, relative to localPath (default: "inbox"). */
|
|
27
|
+
ingestPath?: string;
|
|
16
28
|
remotePath?: string;
|
|
17
29
|
localPath?: string;
|
|
18
30
|
interval?: number;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,IAAI,GAAG,QAAQ,CAAC;AAEhG;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,EAAE,CAAC,EAAE;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC;KACpD,CAAC;IACF,MAAM,CAAC,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACxC,CAAC;CACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,IAAI,GAAG,QAAQ,CAAC;AAEhG;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,yFAAyF;IACzF,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,iFAAiF;IACjF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,EAAE,CAAC,EAAE;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC;KACpD,CAAC;IACF,MAAM,CAAC,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACxC,CAAC;CACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openclaw-workspace-sync",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "Workspace cloud sync via rclone — mirror (remote→local) or bisync (Dropbox, Google Drive, S3, OneDrive, 70+ providers)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -6,7 +6,7 @@ metadata: {"openclaw":{"emoji":"☁️","requires":{"bins":["rclone"]}}}
|
|
|
6
6
|
|
|
7
7
|
# workspace-sync
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Sync the agent workspace with cloud storage. `mode` is required — choose `mirror` (remote->local, recommended) or `bisync` (bidirectional, advanced). An optional `inbox` folder lets users send files up to the agent.
|
|
10
10
|
|
|
11
11
|
## Trigger
|
|
12
12
|
|
|
@@ -15,6 +15,16 @@ Use this skill when the user asks to:
|
|
|
15
15
|
- Back up workspace files
|
|
16
16
|
- Check sync status
|
|
17
17
|
- Fix sync issues
|
|
18
|
+
- Send files to the agent workspace
|
|
19
|
+
|
|
20
|
+
## Sync modes
|
|
21
|
+
|
|
22
|
+
| Mode | Direction | Description |
|
|
23
|
+
|------|-----------|-------------|
|
|
24
|
+
| `mirror` (default) | Remote → Local | One-way: workspace mirrors down. Safe — local can never overwrite remote. |
|
|
25
|
+
| `bisync` | Bidirectional | Two-way sync. Powerful but requires careful setup. |
|
|
26
|
+
|
|
27
|
+
With `ingest: true`, a local `inbox/` folder syncs one-way **up** to the remote workspace (additive only, works with any mode).
|
|
18
28
|
|
|
19
29
|
## Commands
|
|
20
30
|
|
|
@@ -23,21 +33,32 @@ Use this skill when the user asks to:
|
|
|
23
33
|
openclaw workspace-sync status
|
|
24
34
|
```
|
|
25
35
|
|
|
26
|
-
Shows: provider, last sync time, sync count, error count, running state.
|
|
36
|
+
Shows: provider, mode, last sync time, sync count, error count, running state.
|
|
27
37
|
|
|
28
38
|
### Trigger manual sync
|
|
29
39
|
```bash
|
|
30
40
|
openclaw workspace-sync sync
|
|
31
41
|
```
|
|
32
42
|
|
|
33
|
-
|
|
43
|
+
In `mirror` mode: pulls latest from remote. In `bisync` mode: runs bidirectional sync.
|
|
44
|
+
|
|
45
|
+
### Preview changes
|
|
46
|
+
```bash
|
|
47
|
+
openclaw workspace-sync sync --dry-run
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### One-way sync (explicit direction)
|
|
51
|
+
```bash
|
|
52
|
+
openclaw workspace-sync sync --direction pull # remote -> local
|
|
53
|
+
openclaw workspace-sync sync --direction push # local -> remote
|
|
54
|
+
```
|
|
34
55
|
|
|
35
|
-
###
|
|
56
|
+
### Force re-establish bisync baseline (destructive)
|
|
36
57
|
```bash
|
|
37
58
|
openclaw workspace-sync sync --resync
|
|
38
59
|
```
|
|
39
60
|
|
|
40
|
-
|
|
61
|
+
**WARNING: `--resync` is destructive (bisync only).** It copies ALL files from both sides to make them identical — deleted files come back, and it transfers everything. Only use when you explicitly need to re-establish the bisync baseline. The plugin never auto-resyncs.
|
|
41
62
|
|
|
42
63
|
### View remote files
|
|
43
64
|
```bash
|
|
@@ -58,13 +79,15 @@ Workspace sync is configured via the plugin entry in `openclaw.json`:
|
|
|
58
79
|
"enabled": true,
|
|
59
80
|
"config": {
|
|
60
81
|
"provider": "dropbox",
|
|
82
|
+
"mode": "mirror",
|
|
61
83
|
"remotePath": "openclaw-share",
|
|
62
84
|
"localPath": "shared",
|
|
63
85
|
"interval": 300,
|
|
64
86
|
"timeout": 1800,
|
|
65
87
|
"onSessionStart": true,
|
|
66
88
|
"onSessionEnd": true,
|
|
67
|
-
"
|
|
89
|
+
"ingest": true,
|
|
90
|
+
"ingestPath": "inbox",
|
|
68
91
|
"exclude": [".git/**", "node_modules/**", "*.log"]
|
|
69
92
|
}
|
|
70
93
|
}
|
|
@@ -78,30 +101,37 @@ Workspace sync is configured via the plugin entry in `openclaw.json`:
|
|
|
78
101
|
| Key | Default | Description |
|
|
79
102
|
|-----|---------|-------------|
|
|
80
103
|
| `provider` | `"off"` | `dropbox`, `gdrive`, `onedrive`, `s3`, `custom`, or `off` |
|
|
104
|
+
| `mode` | **required** | `mirror` (remote->local) or `bisync` (bidirectional) |
|
|
105
|
+
| `ingest` | `false` | Enable local inbox for sending files to the agent |
|
|
106
|
+
| `ingestPath` | `"inbox"` | Local subfolder name for ingestion |
|
|
81
107
|
| `remotePath` | `"openclaw-share"` | Folder name in cloud storage |
|
|
82
108
|
| `localPath` | `"shared"` | Subfolder within workspace to sync |
|
|
83
109
|
| `interval` | `0` | Background sync interval in seconds (0 = manual only, min 60) |
|
|
84
110
|
| `timeout` | `1800` | Max seconds for a single sync operation (min 60) |
|
|
85
111
|
| `onSessionStart` | `false` | Sync when an agent session begins |
|
|
86
112
|
| `onSessionEnd` | `false` | Sync when an agent session ends |
|
|
87
|
-
| `conflictResolve` | `"newer"` | `newer`, `local`, or `remote` |
|
|
88
|
-
| `exclude` |
|
|
89
|
-
|
|
90
|
-
Default excludes: `.git/**`, `node_modules/**`, `.venv/**`, `__pycache__/**`, `*.log`, `.DS_Store`
|
|
113
|
+
| `conflictResolve` | `"newer"` | `newer`, `local`, or `remote` (bisync only) |
|
|
114
|
+
| `exclude` | `**/.DS_Store` | Glob patterns to exclude from sync |
|
|
91
115
|
|
|
92
116
|
## Automatic sync
|
|
93
117
|
|
|
94
118
|
When configured, sync runs automatically:
|
|
95
|
-
- **On session start**:
|
|
96
|
-
- **On session end**:
|
|
119
|
+
- **On session start**: Pulls latest from cloud (mirror) or runs bisync
|
|
120
|
+
- **On session end**: Syncs changes after conversation ends
|
|
97
121
|
- **Periodic interval**: Background sync every N seconds (no LLM cost)
|
|
98
122
|
|
|
123
|
+
## Safety notes
|
|
124
|
+
|
|
125
|
+
- **Mirror mode is safe by design.** Remote workspace is the authority. Local is a read-only copy.
|
|
126
|
+
- **Bisync requires careful setup.** Both sides must agree. If state is lost, `--resync` is needed and it copies everything.
|
|
127
|
+
- **On container platforms** (Fly.io, Railway), bisync state is ephemeral — use `mirror` mode instead.
|
|
128
|
+
- **When changing config** (remotePath, localPath, mode), disable periodic sync first, verify, then re-enable.
|
|
129
|
+
|
|
99
130
|
## Auto-recovery
|
|
100
131
|
|
|
101
|
-
The plugin automatically handles common rclone failures:
|
|
102
132
|
- **Stale lock files**: Detected and cleared before retrying (lock files older than 15 min are expired automatically)
|
|
103
|
-
- **
|
|
104
|
-
- **
|
|
133
|
+
- **Interrupted syncs**: Uses `--recover` and `--resilient` flags to resume after interruptions (bisync only)
|
|
134
|
+
- **Resync never automatic**: If bisync state is lost, the plugin logs a message but does NOT auto-resync
|
|
105
135
|
|
|
106
136
|
## Troubleshooting
|
|
107
137
|
|
|
@@ -111,8 +141,8 @@ Run the setup wizard:
|
|
|
111
141
|
openclaw workspace-sync setup
|
|
112
142
|
```
|
|
113
143
|
|
|
114
|
-
### "requires --resync"
|
|
115
|
-
|
|
144
|
+
### "requires --resync" (bisync only)
|
|
145
|
+
Bisync state was lost. **Before running `--resync`, verify both sides are correct**:
|
|
116
146
|
```bash
|
|
117
147
|
openclaw workspace-sync sync --resync
|
|
118
148
|
```
|
|
@@ -131,8 +161,9 @@ rclone ls cloud:openclaw-share
|
|
|
131
161
|
|
|
132
162
|
## Notes
|
|
133
163
|
|
|
134
|
-
-
|
|
135
|
-
-
|
|
136
|
-
-
|
|
164
|
+
- `mode` is **required** — set `mirror` (remote→local) or `bisync` (bidirectional)
|
|
165
|
+
- Bisync is available for power users who need bidirectional sync
|
|
166
|
+
- Ingest inbox is additive only — cannot delete remote files
|
|
167
|
+
- Only `**/.DS_Store` excluded by default — add your own excludes in config
|
|
137
168
|
- Sync operations run in background (no LLM tokens used)
|
|
138
169
|
- All rclone activity is logged at info level for visibility
|