openclaw-workspace-sync 2.0.0 → 2.1.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 +111 -19
- package/dist/rclone.d.ts +41 -0
- package/dist/rclone.d.ts.map +1 -1
- package/dist/rclone.js +104 -0
- package/dist/rclone.js.map +1 -1
- package/dist/sync-manager.d.ts.map +1 -1
- package/dist/sync-manager.js +97 -8
- package/dist/sync-manager.js.map +1 -1
- package/dist/types.d.ts +7 -6
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/skills/workspace-sync/SKILL.md +25 -16
package/README.md
CHANGED
|
@@ -24,24 +24,88 @@ The remote gateway workspace is the **source of truth**. Changes made by the age
|
|
|
24
24
|
|
|
25
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
26
|
|
|
27
|
-
The plugin supports
|
|
27
|
+
The plugin supports three sync modes. Choose the one that fits your workflow:
|
|
28
28
|
|
|
29
29
|
| Mode | Direction | Description |
|
|
30
30
|
|------|-----------|-------------|
|
|
31
|
-
| `
|
|
31
|
+
| `mailbox` | Push + inbox/outbox | Workspace pushes to cloud; users drop files in `_outbox` to send them to the agent. **Safest.** |
|
|
32
|
+
| `mirror` | Remote → Local | One-way sync: workspace mirrors down to local. Safe — local can never overwrite remote. |
|
|
32
33
|
| `bisync` | Bidirectional | Full two-way sync. Powerful but requires careful setup. |
|
|
33
34
|
|
|
34
|
-
**Upgrading from a previous version?** If you were using bisync before, add `"mode": "bisync"` to your config to preserve the existing behavior.
|
|
35
|
+
**Upgrading from a previous version?** If you were using bisync before, add `"mode": "bisync"` to your config to preserve the existing behavior. For the safest option, use `"mode": "mailbox"`.
|
|
36
|
+
|
|
37
|
+
### `mailbox` mode (recommended)
|
|
38
|
+
|
|
39
|
+
The agent workspace is the source of truth. Each sync cycle:
|
|
40
|
+
|
|
41
|
+
1. **Push**: `rclone sync` pushes the workspace to the cloud (excluding `_inbox/` and `_outbox/`)
|
|
42
|
+
2. **Drain**: `rclone move` pulls files from the cloud `_outbox/` into the workspace `_inbox/`, deleting them from the cloud after transfer
|
|
43
|
+
|
|
44
|
+
```mermaid
|
|
45
|
+
flowchart LR
|
|
46
|
+
subgraph GW["Gateway (source of truth)"]
|
|
47
|
+
WS["/workspace"]
|
|
48
|
+
INBOX["_inbox/"]
|
|
49
|
+
end
|
|
50
|
+
subgraph CLOUD["Cloud Provider"]
|
|
51
|
+
CF["workspace files"]
|
|
52
|
+
OUTBOX_C["_outbox/"]
|
|
53
|
+
end
|
|
54
|
+
subgraph LOCAL["Your Machine"]
|
|
55
|
+
LM["local mirror"]
|
|
56
|
+
OUTBOX_L["_outbox/ (drop files here)"]
|
|
57
|
+
end
|
|
58
|
+
WS -- "1. rclone sync (push)" --> CF
|
|
59
|
+
CF -. "desktop app (auto)" .-> LM
|
|
60
|
+
OUTBOX_L -. "desktop app (auto)" .-> OUTBOX_C
|
|
61
|
+
OUTBOX_C -- "2. rclone move (drain)" --> INBOX
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
This creates a clean separation:
|
|
65
|
+
|
|
66
|
+
- **Your local machine** gets a live mirror of the workspace via your cloud provider's desktop app (e.g., Dropbox). You also see an `_outbox/` folder — drop files there to send them to the agent.
|
|
67
|
+
- **The agent workspace** has an `_inbox/` folder where incoming files land. The agent (or a skill) can process them from there.
|
|
68
|
+
|
|
69
|
+
On startup, the plugin bootstraps both directories:
|
|
70
|
+
- `rclone mkdir cloud:_outbox` — ensures the cloud `_outbox` exists so your desktop app creates the local folder
|
|
71
|
+
- `mkdir -p <workspace>/_inbox` — ensures the agent's landing zone exists
|
|
72
|
+
|
|
73
|
+
Because the push explicitly excludes `_inbox/**` and `_outbox/**`, there is no risk of sync loops or accidental overwrites. Files only flow in one direction through each channel.
|
|
74
|
+
|
|
75
|
+
```json
|
|
76
|
+
{
|
|
77
|
+
"mode": "mailbox",
|
|
78
|
+
"provider": "dropbox",
|
|
79
|
+
"remotePath": "",
|
|
80
|
+
"localPath": "/",
|
|
81
|
+
"interval": 60
|
|
82
|
+
}
|
|
83
|
+
```
|
|
35
84
|
|
|
36
|
-
### `mirror` mode
|
|
85
|
+
### `mirror` mode
|
|
37
86
|
|
|
38
87
|
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
88
|
|
|
40
|
-
|
|
89
|
+
```mermaid
|
|
90
|
+
flowchart LR
|
|
91
|
+
subgraph GW["Gateway (source of truth)"]
|
|
92
|
+
WS["/workspace"]
|
|
93
|
+
end
|
|
94
|
+
subgraph CLOUD["Cloud Provider"]
|
|
95
|
+
CF["workspace files"]
|
|
96
|
+
end
|
|
97
|
+
subgraph LOCAL["Your Machine"]
|
|
98
|
+
LM["local copy (read-only)"]
|
|
99
|
+
end
|
|
100
|
+
CF -- "rclone sync (pull)" --> LM
|
|
101
|
+
WS -. "agent writes here" .-> WS
|
|
102
|
+
```
|
|
41
103
|
|
|
42
|
-
|
|
104
|
+
This is safe: even if something goes wrong, only your local copy is affected — the workspace stays untouched.
|
|
43
105
|
|
|
44
|
-
|
|
106
|
+
### `ingest` option (mirror mode only)
|
|
107
|
+
|
|
108
|
+
Want to send files to the agent while using mirror mode? Enable the `ingest` option. This creates a local `inbox/` folder (sibling to the sync 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
109
|
|
|
46
110
|
```json
|
|
47
111
|
{
|
|
@@ -53,10 +117,29 @@ Want to send files to the agent? Enable the `ingest` option. This creates a loca
|
|
|
53
117
|
|
|
54
118
|
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
119
|
|
|
120
|
+
> For a more robust file-exchange pattern, consider `mailbox` mode instead. Mailbox uses `rclone move` to drain files (deleting from the source after transfer), which prevents duplicates and is easier to reason about.
|
|
121
|
+
|
|
56
122
|
### `bisync` mode (advanced)
|
|
57
123
|
|
|
58
124
|
Full bidirectional sync using rclone bisync. Changes on either side propagate to the other.
|
|
59
125
|
|
|
126
|
+
```mermaid
|
|
127
|
+
flowchart LR
|
|
128
|
+
subgraph GW["Gateway"]
|
|
129
|
+
WS["/workspace"]
|
|
130
|
+
end
|
|
131
|
+
subgraph CLOUD["Cloud Provider"]
|
|
132
|
+
CF["workspace files"]
|
|
133
|
+
end
|
|
134
|
+
subgraph LOCAL["Your Machine"]
|
|
135
|
+
LM["local copy"]
|
|
136
|
+
end
|
|
137
|
+
WS -- "rclone bisync" --> CF
|
|
138
|
+
CF -- "rclone bisync" --> WS
|
|
139
|
+
CF -. "desktop app" .-> LM
|
|
140
|
+
LM -. "desktop app" .-> CF
|
|
141
|
+
```
|
|
142
|
+
|
|
60
143
|
Use this only if you understand the trade-offs:
|
|
61
144
|
|
|
62
145
|
- Both sides must be in a known-good state before starting
|
|
@@ -65,7 +148,7 @@ Use this only if you understand the trade-offs:
|
|
|
65
148
|
- Deleted files can reappear if the other side still has them during a resync
|
|
66
149
|
- On container platforms (Fly.io, Railway), bisync state lives in ephemeral storage and is lost on every deploy
|
|
67
150
|
|
|
68
|
-
If you are running on a container platform, `
|
|
151
|
+
If you are running on a container platform, `mailbox` mode is strongly recommended.
|
|
69
152
|
|
|
70
153
|
## Setup sequence
|
|
71
154
|
|
|
@@ -75,6 +158,7 @@ Getting sync right depends on doing things in the right order. Follow these step
|
|
|
75
158
|
2. **Verify the remote** is accessible: `openclaw workspace-sync status`
|
|
76
159
|
3. **Run a dry-run first** to see what would happen: `openclaw workspace-sync sync --dry-run`
|
|
77
160
|
4. **Run the first sync**: `openclaw workspace-sync sync`
|
|
161
|
+
- In `mailbox` mode, this pushes the workspace and drains the `_outbox`
|
|
78
162
|
- In `mirror` mode, this pulls the current workspace down
|
|
79
163
|
- In `bisync` mode, this requires `--resync` to establish the baseline
|
|
80
164
|
5. **Enable periodic sync** by setting `interval` in your config
|
|
@@ -125,10 +209,10 @@ Add to your `openclaw.json`:
|
|
|
125
209
|
"enabled": true,
|
|
126
210
|
"config": {
|
|
127
211
|
"provider": "dropbox",
|
|
128
|
-
"mode": "
|
|
129
|
-
"remotePath": "
|
|
130
|
-
"localPath": "
|
|
131
|
-
"interval":
|
|
212
|
+
"mode": "mailbox",
|
|
213
|
+
"remotePath": "",
|
|
214
|
+
"localPath": "/",
|
|
215
|
+
"interval": 60,
|
|
132
216
|
"timeout": 1800,
|
|
133
217
|
"onSessionStart": true,
|
|
134
218
|
"onSessionEnd": false,
|
|
@@ -145,8 +229,8 @@ Add to your `openclaw.json`:
|
|
|
145
229
|
| Key | Type | Default | Description |
|
|
146
230
|
|-----|------|---------|-------------|
|
|
147
231
|
| `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 |
|
|
232
|
+
| `mode` | string | **required** | `mailbox` \| `mirror` \| `bisync` — see [Sync modes](#sync-modes-breaking-change-in-v20) |
|
|
233
|
+
| `ingest` | boolean | `false` | Enable local inbox for sending files to the agent (mirror mode only) |
|
|
150
234
|
| `ingestPath` | string | `"inbox"` | Local subfolder name for ingestion (relative to `localPath`) |
|
|
151
235
|
| `remotePath` | string | `"openclaw-share"` | Folder name in cloud storage |
|
|
152
236
|
| `localPath` | string | `"shared"` | Subfolder within workspace to sync |
|
|
@@ -179,6 +263,8 @@ Default excludes: `**/.DS_Store`
|
|
|
179
263
|
}
|
|
180
264
|
```
|
|
181
265
|
|
|
266
|
+
With `appFolder: true`, set `remotePath` to `""`. The app folder root is your sync root — do not repeat the app folder name in `remotePath` or rclone will fail with "directory not found."
|
|
267
|
+
|
|
182
268
|
**Google Drive:**
|
|
183
269
|
|
|
184
270
|
```json
|
|
@@ -302,7 +388,7 @@ Set `interval` to enable automatic background sync (in seconds):
|
|
|
302
388
|
|
|
303
389
|
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
390
|
|
|
305
|
-
In `mirror` mode, periodic sync pulls the latest workspace state down to local. In `bisync` mode, it runs a full bidirectional sync.
|
|
391
|
+
In `mailbox` mode, periodic sync pushes the workspace to the cloud and drains the `_outbox`. In `mirror` mode, periodic sync pulls the latest workspace state down to local. In `bisync` mode, it runs a full bidirectional sync.
|
|
306
392
|
|
|
307
393
|
### External cron (alternative)
|
|
308
394
|
|
|
@@ -347,20 +433,26 @@ For better security, create a scoped Dropbox app that only accesses a single fol
|
|
|
347
433
|
1. Go to [Dropbox App Console](https://www.dropbox.com/developers/apps)
|
|
348
434
|
2. Click **Create app** > **Scoped access** > **App folder**
|
|
349
435
|
3. Name it (e.g., `openclaw-sync`)
|
|
350
|
-
4. In **
|
|
436
|
+
4. In **Settings** tab, add a **Redirect URI**: `http://localhost:53682/`
|
|
437
|
+
- This is required for rclone's OAuth flow to work. Without it, Dropbox returns "Invalid redirect_uri" during authorization.
|
|
438
|
+
5. In **Permissions** tab, enable:
|
|
351
439
|
- `files.metadata.read` / `files.metadata.write`
|
|
352
440
|
- `files.content.read` / `files.content.write`
|
|
353
|
-
|
|
441
|
+
6. Copy **App key** and **App secret** from Settings
|
|
442
|
+
|
|
443
|
+
> **Important:** When using an app folder scoped app, set `"remotePath": ""` (empty string) in your config. The app folder **is** the root — rclone sees it as `/`. If you set `remotePath` to your app folder name (e.g., `"openclaw-sync"`), rclone will look for a subfolder *inside* the app folder with that name and fail with "directory not found."
|
|
354
444
|
|
|
355
445
|
Benefits:
|
|
356
446
|
- Token only accesses one folder, not your entire Dropbox
|
|
357
447
|
- If token is compromised, blast radius is limited
|
|
358
|
-
- Clean separation — sync folder lives under `Apps
|
|
448
|
+
- Clean separation — sync folder lives under `Apps/<your-app-name>/`
|
|
359
449
|
|
|
360
450
|
## Understanding sync safety
|
|
361
451
|
|
|
362
452
|
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
453
|
|
|
454
|
+
**Mailbox mode is the safest.** The workspace pushes to the cloud; users send files via `_outbox`. The two streams never overlap. Even if your local folder is wiped, the next push re-creates everything. Even if the `_outbox` has stale files, they just land in `_inbox` for the agent to handle.
|
|
455
|
+
|
|
364
456
|
**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
457
|
|
|
366
458
|
**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.
|
|
@@ -371,7 +463,7 @@ Cloud sync involves two copies of your data. When things go wrong, one side can
|
|
|
371
463
|
- Using `bisync` on container platforms where state is ephemeral
|
|
372
464
|
- Syncing very large directories (use `exclude` patterns liberally)
|
|
373
465
|
|
|
374
|
-
**If in doubt, use `
|
|
466
|
+
**If in doubt, use `mailbox` mode.** It gives you a live local mirror of the workspace and a clean way to send files to the agent, with no risk of data loss.
|
|
375
467
|
|
|
376
468
|
## Important: `--resync` is destructive (bisync only)
|
|
377
469
|
|
package/dist/rclone.d.ts
CHANGED
|
@@ -89,6 +89,22 @@ export declare function runBisync(params: {
|
|
|
89
89
|
verbose?: boolean;
|
|
90
90
|
timeoutMs?: number;
|
|
91
91
|
}): Promise<RcloneSyncResult>;
|
|
92
|
+
/**
|
|
93
|
+
* One-way copy (additive only — never deletes on destination).
|
|
94
|
+
* Used for inbox ingestion so files dropped locally get copied up
|
|
95
|
+
* to the remote without removing anything that was already there.
|
|
96
|
+
*/
|
|
97
|
+
export declare function runCopy(params: {
|
|
98
|
+
configPath: string;
|
|
99
|
+
remoteName: string;
|
|
100
|
+
remotePath: string;
|
|
101
|
+
localPath: string;
|
|
102
|
+
direction: "pull" | "push";
|
|
103
|
+
exclude: string[];
|
|
104
|
+
dryRun?: boolean;
|
|
105
|
+
verbose?: boolean;
|
|
106
|
+
timeoutMs?: number;
|
|
107
|
+
}): Promise<RcloneSyncResult>;
|
|
92
108
|
export declare function runSync(params: {
|
|
93
109
|
configPath: string;
|
|
94
110
|
remoteName: string;
|
|
@@ -100,6 +116,31 @@ export declare function runSync(params: {
|
|
|
100
116
|
verbose?: boolean;
|
|
101
117
|
timeoutMs?: number;
|
|
102
118
|
}): Promise<RcloneSyncResult>;
|
|
119
|
+
/**
|
|
120
|
+
* Move files from source to destination, deleting from source after transfer.
|
|
121
|
+
* Used in mailbox mode to drain the cloud _outbox into the local _inbox.
|
|
122
|
+
*/
|
|
123
|
+
export declare function runMove(params: {
|
|
124
|
+
configPath: string;
|
|
125
|
+
remoteName: string;
|
|
126
|
+
remotePath: string;
|
|
127
|
+
localPath: string;
|
|
128
|
+
direction: "pull" | "push";
|
|
129
|
+
exclude?: string[];
|
|
130
|
+
dryRun?: boolean;
|
|
131
|
+
verbose?: boolean;
|
|
132
|
+
timeoutMs?: number;
|
|
133
|
+
}): Promise<RcloneSyncResult>;
|
|
134
|
+
/**
|
|
135
|
+
* Ensure a directory exists on a remote (rclone mkdir).
|
|
136
|
+
* Used in mailbox mode to bootstrap _outbox on the cloud.
|
|
137
|
+
*/
|
|
138
|
+
export declare function runMkdir(params: {
|
|
139
|
+
configPath: string;
|
|
140
|
+
remoteName: string;
|
|
141
|
+
remotePath: string;
|
|
142
|
+
timeoutMs?: number;
|
|
143
|
+
}): Promise<RcloneSyncResult>;
|
|
103
144
|
export declare function listRemote(params: {
|
|
104
145
|
configPath: string;
|
|
105
146
|
remoteName: string;
|
package/dist/rclone.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rclone.d.ts","sourceRoot":"","sources":["../src/rclone.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rclone.d.ts","sourceRoot":"","sources":["../src/rclone.ts"],"names":[],"mappings":"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"}
|
package/dist/rclone.js
CHANGED
|
@@ -499,6 +499,48 @@ export async function runBisync(params) {
|
|
|
499
499
|
}
|
|
500
500
|
return result;
|
|
501
501
|
}
|
|
502
|
+
/**
|
|
503
|
+
* One-way copy (additive only — never deletes on destination).
|
|
504
|
+
* Used for inbox ingestion so files dropped locally get copied up
|
|
505
|
+
* to the remote without removing anything that was already there.
|
|
506
|
+
*/
|
|
507
|
+
export async function runCopy(params) {
|
|
508
|
+
const rcloneBin = await getRcloneBinary();
|
|
509
|
+
if (!existsSync(params.localPath)) {
|
|
510
|
+
mkdirSync(params.localPath, { recursive: true });
|
|
511
|
+
}
|
|
512
|
+
const remote = `${params.remoteName}:${params.remotePath}`;
|
|
513
|
+
const [source, dest] = params.direction === "pull" ? [remote, params.localPath] : [params.localPath, remote];
|
|
514
|
+
const args = ["copy", source, dest, "--config", params.configPath];
|
|
515
|
+
for (const pattern of params.exclude)
|
|
516
|
+
args.push("--exclude", pattern);
|
|
517
|
+
if (params.dryRun)
|
|
518
|
+
args.push("--dry-run");
|
|
519
|
+
if (params.verbose)
|
|
520
|
+
args.push("--verbose");
|
|
521
|
+
else
|
|
522
|
+
args.push("--log-level", "WARNING");
|
|
523
|
+
logInfo(`[workspace-sync] Running: ${rcloneBin} ${args.join(" ")}`);
|
|
524
|
+
try {
|
|
525
|
+
await runExecStreaming(rcloneBin, args, {
|
|
526
|
+
timeoutMs: params.timeoutMs ?? 1_800_000,
|
|
527
|
+
onLine: (line) => {
|
|
528
|
+
if (/ERROR|NOTICE|WARNING|Transferred:|Elapsed time:/i.test(line)) {
|
|
529
|
+
logInfo(`[rclone] ${line}`);
|
|
530
|
+
}
|
|
531
|
+
else {
|
|
532
|
+
logDebug(`[rclone] ${line}`);
|
|
533
|
+
}
|
|
534
|
+
},
|
|
535
|
+
});
|
|
536
|
+
return { ok: true };
|
|
537
|
+
}
|
|
538
|
+
catch (err) {
|
|
539
|
+
const errObj = err;
|
|
540
|
+
const message = errObj.stderr?.trim() || errObj.message || "Unknown copy error";
|
|
541
|
+
return { ok: false, error: message };
|
|
542
|
+
}
|
|
543
|
+
}
|
|
502
544
|
export async function runSync(params) {
|
|
503
545
|
const rcloneBin = await getRcloneBinary();
|
|
504
546
|
if (!existsSync(params.localPath)) {
|
|
@@ -536,6 +578,68 @@ export async function runSync(params) {
|
|
|
536
578
|
return { ok: false, error: message };
|
|
537
579
|
}
|
|
538
580
|
}
|
|
581
|
+
/**
|
|
582
|
+
* Move files from source to destination, deleting from source after transfer.
|
|
583
|
+
* Used in mailbox mode to drain the cloud _outbox into the local _inbox.
|
|
584
|
+
*/
|
|
585
|
+
export async function runMove(params) {
|
|
586
|
+
const rcloneBin = await getRcloneBinary();
|
|
587
|
+
if (!existsSync(params.localPath)) {
|
|
588
|
+
mkdirSync(params.localPath, { recursive: true });
|
|
589
|
+
}
|
|
590
|
+
const remote = `${params.remoteName}:${params.remotePath}`;
|
|
591
|
+
const [source, dest] = params.direction === "pull" ? [remote, params.localPath] : [params.localPath, remote];
|
|
592
|
+
const args = ["move", source, dest, "--config", params.configPath];
|
|
593
|
+
if (params.exclude) {
|
|
594
|
+
for (const pattern of params.exclude)
|
|
595
|
+
args.push("--exclude", pattern);
|
|
596
|
+
}
|
|
597
|
+
if (params.dryRun)
|
|
598
|
+
args.push("--dry-run");
|
|
599
|
+
if (params.verbose)
|
|
600
|
+
args.push("--verbose");
|
|
601
|
+
else
|
|
602
|
+
args.push("--log-level", "WARNING");
|
|
603
|
+
logInfo(`[workspace-sync] Running: ${rcloneBin} ${args.join(" ")}`);
|
|
604
|
+
try {
|
|
605
|
+
await runExecStreaming(rcloneBin, args, {
|
|
606
|
+
timeoutMs: params.timeoutMs ?? 1_800_000,
|
|
607
|
+
onLine: (line) => {
|
|
608
|
+
if (/ERROR|NOTICE|WARNING|Transferred:|Elapsed time:/i.test(line)) {
|
|
609
|
+
logInfo(`[rclone] ${line}`);
|
|
610
|
+
}
|
|
611
|
+
else {
|
|
612
|
+
logDebug(`[rclone] ${line}`);
|
|
613
|
+
}
|
|
614
|
+
},
|
|
615
|
+
});
|
|
616
|
+
return { ok: true };
|
|
617
|
+
}
|
|
618
|
+
catch (err) {
|
|
619
|
+
const errObj = err;
|
|
620
|
+
const message = errObj.stderr?.trim() || errObj.message || "Unknown move error";
|
|
621
|
+
return { ok: false, error: message };
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
/**
|
|
625
|
+
* Ensure a directory exists on a remote (rclone mkdir).
|
|
626
|
+
* Used in mailbox mode to bootstrap _outbox on the cloud.
|
|
627
|
+
*/
|
|
628
|
+
export async function runMkdir(params) {
|
|
629
|
+
const rcloneBin = await getRcloneBinary();
|
|
630
|
+
const remote = `${params.remoteName}:${params.remotePath}`;
|
|
631
|
+
const args = ["mkdir", remote, "--config", params.configPath];
|
|
632
|
+
logInfo(`[workspace-sync] Running: ${rcloneBin} ${args.join(" ")}`);
|
|
633
|
+
try {
|
|
634
|
+
await runExec(rcloneBin, args, { timeoutMs: params.timeoutMs ?? 30_000 });
|
|
635
|
+
return { ok: true };
|
|
636
|
+
}
|
|
637
|
+
catch (err) {
|
|
638
|
+
const errObj = err;
|
|
639
|
+
const message = errObj.stderr?.trim() || errObj.message || "Unknown mkdir error";
|
|
640
|
+
return { ok: false, error: message };
|
|
641
|
+
}
|
|
642
|
+
}
|
|
539
643
|
export async function listRemote(params) {
|
|
540
644
|
const rcloneBin = await getRcloneBinary();
|
|
541
645
|
try {
|
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;AAgBtD,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;AA0RF,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,mBAAmB,EAC/B,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,IAAI,CAmDN;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,7 +4,9 @@
|
|
|
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 {
|
|
7
|
+
import { existsSync, mkdirSync } from "node:fs";
|
|
8
|
+
import { join } from "node:path";
|
|
9
|
+
import { isRcloneInstalled, isRcloneConfigured, ensureRcloneConfigFromConfig, resolveSyncConfig, runBisync, runSync, runCopy, runMove, runMkdir, clearBisyncLocks, } from "./rclone.js";
|
|
8
10
|
const state = {
|
|
9
11
|
timeoutId: null,
|
|
10
12
|
lastSyncAt: null,
|
|
@@ -41,7 +43,7 @@ async function doSync() {
|
|
|
41
43
|
if (!syncConfig.provider || syncConfig.provider === "off")
|
|
42
44
|
return;
|
|
43
45
|
if (!syncConfig.mode) {
|
|
44
|
-
currentLogger.error('[workspace-sync] "mode" is required in config. Set "mode": "mirror" (remote→local,
|
|
46
|
+
currentLogger.error('[workspace-sync] "mode" is required in config. Set "mode": "mailbox" (inbox/outbox, safest), "mode": "mirror" (remote→local), or "mode": "bisync" (bidirectional). Sync will not run until mode is set.');
|
|
45
47
|
return;
|
|
46
48
|
}
|
|
47
49
|
const logger = currentLogger;
|
|
@@ -85,6 +87,57 @@ async function doSync() {
|
|
|
85
87
|
logger.warn(`[workspace-sync] Periodic bisync failed: ${result.error}`);
|
|
86
88
|
}
|
|
87
89
|
}
|
|
90
|
+
else if (mode === "mailbox") {
|
|
91
|
+
// Mailbox mode: workspace pushes to cloud, then drain cloud _outbox → local _inbox
|
|
92
|
+
const outboxRemotePath = resolved.remotePath
|
|
93
|
+
? `${resolved.remotePath}/_outbox`
|
|
94
|
+
: "_outbox";
|
|
95
|
+
const inboxLocalPath = join(resolved.localPath, "_inbox");
|
|
96
|
+
if (!existsSync(inboxLocalPath)) {
|
|
97
|
+
mkdirSync(inboxLocalPath, { recursive: true });
|
|
98
|
+
}
|
|
99
|
+
// Step 1: push workspace → cloud (excluding _inbox and _outbox)
|
|
100
|
+
const mailboxExcludes = [...resolved.exclude, "_inbox/**", "_outbox/**"];
|
|
101
|
+
logger.info(`[workspace-sync] Mailbox: pushing workspace → ${resolved.remoteName}:${resolved.remotePath}`);
|
|
102
|
+
const pushResult = await runSync({
|
|
103
|
+
configPath: resolved.configPath,
|
|
104
|
+
remoteName: resolved.remoteName,
|
|
105
|
+
remotePath: resolved.remotePath,
|
|
106
|
+
localPath: resolved.localPath,
|
|
107
|
+
direction: "push",
|
|
108
|
+
exclude: mailboxExcludes,
|
|
109
|
+
timeoutMs: resolved.timeoutMs,
|
|
110
|
+
verbose: !!logger.debug,
|
|
111
|
+
});
|
|
112
|
+
state.lastSyncAt = new Date();
|
|
113
|
+
state.syncCount++;
|
|
114
|
+
if (pushResult.ok) {
|
|
115
|
+
state.lastSyncOk = true;
|
|
116
|
+
logger.info("[workspace-sync] Mailbox push completed");
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
state.lastSyncOk = false;
|
|
120
|
+
state.errorCount++;
|
|
121
|
+
logger.warn(`[workspace-sync] Mailbox push failed: ${pushResult.error}`);
|
|
122
|
+
}
|
|
123
|
+
// Step 2: drain cloud _outbox → local _inbox (move = deletes from cloud after transfer)
|
|
124
|
+
logger.info(`[workspace-sync] Mailbox: draining ${resolved.remoteName}:${outboxRemotePath} → ${inboxLocalPath}`);
|
|
125
|
+
const drainResult = await runMove({
|
|
126
|
+
configPath: resolved.configPath,
|
|
127
|
+
remoteName: resolved.remoteName,
|
|
128
|
+
remotePath: outboxRemotePath,
|
|
129
|
+
localPath: inboxLocalPath,
|
|
130
|
+
direction: "pull",
|
|
131
|
+
timeoutMs: resolved.timeoutMs,
|
|
132
|
+
verbose: !!logger.debug,
|
|
133
|
+
});
|
|
134
|
+
if (drainResult.ok) {
|
|
135
|
+
logger.info("[workspace-sync] Mailbox drain completed");
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
logger.warn(`[workspace-sync] Mailbox drain failed: ${drainResult.error}`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
88
141
|
else {
|
|
89
142
|
// mirror mode: one-way remote → local
|
|
90
143
|
logger.info(`[workspace-sync] Running periodic mirror (remote→local): ${resolved.remoteName}:${resolved.remotePath}`);
|
|
@@ -111,9 +164,10 @@ async function doSync() {
|
|
|
111
164
|
}
|
|
112
165
|
// ingest: one-way local inbox → remote (additive)
|
|
113
166
|
if (resolved.ingest) {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
const
|
|
167
|
+
// inbox lives as a sibling of localPath, not inside it,
|
|
168
|
+
// so the mirror pull doesn't overwrite or delete inbox contents
|
|
169
|
+
const { dirname } = await import("node:path");
|
|
170
|
+
const inboxLocal = join(dirname(resolved.localPath), resolved.ingestPath);
|
|
117
171
|
if (!existsSync(inboxLocal)) {
|
|
118
172
|
mkdirSync(inboxLocal, { recursive: true });
|
|
119
173
|
}
|
|
@@ -121,7 +175,7 @@ async function doSync() {
|
|
|
121
175
|
? `${resolved.remotePath}/${resolved.ingestPath}`
|
|
122
176
|
: resolved.ingestPath;
|
|
123
177
|
logger.info(`[workspace-sync] Running ingest (local inbox→remote): ${inboxLocal} → ${resolved.remoteName}:${inboxRemotePath}`);
|
|
124
|
-
const ingestResult = await
|
|
178
|
+
const ingestResult = await runCopy({
|
|
125
179
|
configPath: resolved.configPath,
|
|
126
180
|
remoteName: resolved.remoteName,
|
|
127
181
|
remotePath: inboxRemotePath,
|
|
@@ -131,7 +185,10 @@ async function doSync() {
|
|
|
131
185
|
timeoutMs: resolved.timeoutMs,
|
|
132
186
|
verbose: !!logger.debug,
|
|
133
187
|
});
|
|
134
|
-
if (
|
|
188
|
+
if (ingestResult.ok) {
|
|
189
|
+
logger.info("[workspace-sync] Ingest sync completed");
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
135
192
|
logger.warn(`[workspace-sync] Ingest sync failed: ${ingestResult.error}`);
|
|
136
193
|
}
|
|
137
194
|
}
|
|
@@ -146,6 +203,34 @@ async function doSync() {
|
|
|
146
203
|
state.syncing = false;
|
|
147
204
|
}
|
|
148
205
|
}
|
|
206
|
+
/**
|
|
207
|
+
* Bootstrap mailbox directories:
|
|
208
|
+
* - `rclone mkdir cloud:_outbox` so the local Dropbox client creates the folder
|
|
209
|
+
* - `mkdir -p <workspace>/_inbox` so the agent has a landing zone
|
|
210
|
+
*/
|
|
211
|
+
async function bootstrapMailbox(syncConfig, workspaceDir, stateDir, logger) {
|
|
212
|
+
const resolved = resolveSyncConfig(syncConfig, workspaceDir, stateDir);
|
|
213
|
+
ensureRcloneConfigFromConfig(syncConfig, resolved.configPath, resolved.remoteName);
|
|
214
|
+
const outboxRemotePath = resolved.remotePath
|
|
215
|
+
? `${resolved.remotePath}/_outbox`
|
|
216
|
+
: "_outbox";
|
|
217
|
+
const mkdirResult = await runMkdir({
|
|
218
|
+
configPath: resolved.configPath,
|
|
219
|
+
remoteName: resolved.remoteName,
|
|
220
|
+
remotePath: outboxRemotePath,
|
|
221
|
+
});
|
|
222
|
+
if (mkdirResult.ok) {
|
|
223
|
+
logger.info(`[workspace-sync] Mailbox: ensured cloud _outbox at ${resolved.remoteName}:${outboxRemotePath}`);
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
logger.warn(`[workspace-sync] Mailbox: failed to create cloud _outbox: ${mkdirResult.error}`);
|
|
227
|
+
}
|
|
228
|
+
const inboxLocalPath = join(resolved.localPath, "_inbox");
|
|
229
|
+
if (!existsSync(inboxLocalPath)) {
|
|
230
|
+
mkdirSync(inboxLocalPath, { recursive: true });
|
|
231
|
+
logger.info(`[workspace-sync] Mailbox: created local _inbox at ${inboxLocalPath}`);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
149
234
|
export function startSyncManager(syncConfig, workspaceDir, stateDir, logger) {
|
|
150
235
|
stopSyncManager();
|
|
151
236
|
currentSyncConfig = syncConfig;
|
|
@@ -157,10 +242,14 @@ export function startSyncManager(syncConfig, workspaceDir, stateDir, logger) {
|
|
|
157
242
|
return;
|
|
158
243
|
}
|
|
159
244
|
if (!syncConfig.mode) {
|
|
160
|
-
logger.error('[workspace-sync] BREAKING: "mode" is now required. Set "mode": "mirror" (remote→local,
|
|
245
|
+
logger.error('[workspace-sync] BREAKING: "mode" is now required. Set "mode": "mailbox" (inbox/outbox, safest), "mode": "mirror" (remote→local), or "mode": "bisync" (bidirectional) in your openclaw.json plugin config. Sync will not start until mode is explicitly set.');
|
|
161
246
|
return;
|
|
162
247
|
}
|
|
163
248
|
clearBisyncLocks();
|
|
249
|
+
// Mailbox mode: bootstrap _outbox on cloud and _inbox locally
|
|
250
|
+
if (syncConfig.mode === "mailbox") {
|
|
251
|
+
void bootstrapMailbox(syncConfig, workspaceDir, stateDir, logger);
|
|
252
|
+
}
|
|
164
253
|
const intervalSeconds = syncConfig.interval ?? 0;
|
|
165
254
|
if (intervalSeconds <= 0) {
|
|
166
255
|
logger.info("[workspace-sync] Periodic sync disabled (interval=0)");
|
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,OAAO,EACP,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,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,CAAC;CACd,CAAC;AAEF,IAAI,iBAAiB,GAA+B,IAAI,CAAC;AACzD,IAAI,mBAAmB,GAAkB,IAAI,CAAC;AAC9C,IAAI,eAAe,GAAkB,IAAI,CAAC;AAC1C,IAAI,aAAa,GAAkB,IAAI,CAAC;AAExC,SAAS,gBAAgB;IACvB,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC;QAAE,OAAO;IACpD,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;QAChC,KAAK,WAAW,EAAE,CAAC;IACrB,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,WAAW;IACxB,MAAM,MAAM,EAAE,CAAC;IACf,gBAAgB,EAAE,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,MAAM;IACnB,IAAI,CAAC,iBAAiB,IAAI,CAAC,aAAa,IAAI,CAAC,mBAAmB;QAAE,OAAO;IACzE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,aAAa,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QACrF,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,iBAAiB,CAAC;IACrC,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,KAAK,KAAK;QAAE,OAAO;IAElE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACrB,aAAa,CAAC,KAAK,CACjB,
|
|
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
|
@@ -10,20 +10,21 @@
|
|
|
10
10
|
export type WorkspaceSyncProvider = "off" | "dropbox" | "gdrive" | "onedrive" | "s3" | "custom";
|
|
11
11
|
/**
|
|
12
12
|
* Workspace sync modes.
|
|
13
|
-
* - mirror: one-way remote→local (
|
|
14
|
-
* -
|
|
13
|
+
* - mirror: one-way remote→local (safe, simple)
|
|
14
|
+
* - mailbox: inbox/outbox pattern — workspace mirrors down, _outbox sends files up (safest)
|
|
15
|
+
* - bisync: bidirectional via rclone bisync (advanced, risky on ephemeral platforms)
|
|
15
16
|
*/
|
|
16
|
-
export type WorkspaceSyncMode = "mirror" | "bisync";
|
|
17
|
+
export type WorkspaceSyncMode = "mirror" | "mailbox" | "bisync";
|
|
17
18
|
/**
|
|
18
19
|
* Workspace sync configuration — matches the plugin configSchema.
|
|
19
20
|
*/
|
|
20
21
|
export type WorkspaceSyncConfig = {
|
|
21
22
|
provider?: WorkspaceSyncProvider;
|
|
22
|
-
/** Sync mode: "mirror" (remote→local,
|
|
23
|
+
/** Sync mode: "mailbox" (inbox/outbox, safest), "mirror" (remote→local), or "bisync" (bidirectional, advanced). */
|
|
23
24
|
mode?: WorkspaceSyncMode;
|
|
24
|
-
/** Enable a local inbox folder that syncs one-way up to the remote workspace. */
|
|
25
|
+
/** Enable a local inbox folder that syncs one-way up to the remote workspace (mirror mode only). */
|
|
25
26
|
ingest?: boolean;
|
|
26
|
-
/** Local subfolder name for ingestion, relative to localPath
|
|
27
|
+
/** Local subfolder name for ingestion, relative to localPath. Default: "inbox". Mirror mode only. */
|
|
27
28
|
ingestPath?: string;
|
|
28
29
|
remotePath?: string;
|
|
29
30
|
localPath?: string;
|
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
|
|
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;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,mHAAmH;IACnH,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,oGAAoG;IACpG,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qGAAqG;IACrG,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": "2.
|
|
4
|
-
"description": "Workspace cloud sync via rclone —
|
|
3
|
+
"version": "2.1.0",
|
|
4
|
+
"description": "Workspace cloud sync via rclone — mailbox (inbox/outbox), mirror, 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
|
-
Sync the agent workspace with cloud storage. `mode` is required — choose `mirror` (remote->local,
|
|
9
|
+
Sync the agent workspace with cloud storage. `mode` is required — choose `mailbox` (inbox/outbox, safest), `mirror` (remote->local), or `bisync` (bidirectional, advanced).
|
|
10
10
|
|
|
11
11
|
## Trigger
|
|
12
12
|
|
|
@@ -21,10 +21,19 @@ Use this skill when the user asks to:
|
|
|
21
21
|
|
|
22
22
|
| Mode | Direction | Description |
|
|
23
23
|
|------|-----------|-------------|
|
|
24
|
-
| `
|
|
24
|
+
| `mailbox` (recommended) | Push + inbox/outbox | Workspace pushes to cloud; `_outbox` sends files up to the agent's `_inbox`. Safest. |
|
|
25
|
+
| `mirror` | Remote → Local | One-way: workspace mirrors down. Safe — local can never overwrite remote. |
|
|
25
26
|
| `bisync` | Bidirectional | Two-way sync. Powerful but requires careful setup. |
|
|
26
27
|
|
|
27
|
-
|
|
28
|
+
### Mailbox mode
|
|
29
|
+
|
|
30
|
+
Each sync cycle: (1) pushes workspace to cloud excluding `_inbox/` and `_outbox/`, (2) drains cloud `_outbox/` into workspace `_inbox/` via `rclone move` (deletes from cloud after transfer). On startup, bootstraps `cloud:_outbox` and local `_inbox/`.
|
|
31
|
+
|
|
32
|
+
Users drop files in the local `_outbox/` folder (created by the cloud provider's desktop app). Files arrive in the agent's `_inbox/`. The agent or a skill processes them from there.
|
|
33
|
+
|
|
34
|
+
### Mirror mode with ingest
|
|
35
|
+
|
|
36
|
+
With `ingest: true`, a local `inbox/` folder syncs one-way **up** to the remote workspace (additive only). For a more robust pattern, use `mailbox` mode instead.
|
|
28
37
|
|
|
29
38
|
## Commands
|
|
30
39
|
|
|
@@ -40,7 +49,7 @@ Shows: provider, mode, last sync time, sync count, error count, running state.
|
|
|
40
49
|
openclaw workspace-sync sync
|
|
41
50
|
```
|
|
42
51
|
|
|
43
|
-
In `mirror` mode: pulls latest from remote. In `bisync` mode: runs bidirectional sync.
|
|
52
|
+
In `mailbox` mode: pushes workspace and drains `_outbox`. In `mirror` mode: pulls latest from remote. In `bisync` mode: runs bidirectional sync.
|
|
44
53
|
|
|
45
54
|
### Preview changes
|
|
46
55
|
```bash
|
|
@@ -79,15 +88,13 @@ Workspace sync is configured via the plugin entry in `openclaw.json`:
|
|
|
79
88
|
"enabled": true,
|
|
80
89
|
"config": {
|
|
81
90
|
"provider": "dropbox",
|
|
82
|
-
"mode": "
|
|
83
|
-
"remotePath": "
|
|
84
|
-
"localPath": "
|
|
85
|
-
"interval":
|
|
91
|
+
"mode": "mailbox",
|
|
92
|
+
"remotePath": "",
|
|
93
|
+
"localPath": "/",
|
|
94
|
+
"interval": 60,
|
|
86
95
|
"timeout": 1800,
|
|
87
96
|
"onSessionStart": true,
|
|
88
97
|
"onSessionEnd": true,
|
|
89
|
-
"ingest": true,
|
|
90
|
-
"ingestPath": "inbox",
|
|
91
98
|
"exclude": [".git/**", "node_modules/**", "*.log"]
|
|
92
99
|
}
|
|
93
100
|
}
|
|
@@ -101,8 +108,8 @@ Workspace sync is configured via the plugin entry in `openclaw.json`:
|
|
|
101
108
|
| Key | Default | Description |
|
|
102
109
|
|-----|---------|-------------|
|
|
103
110
|
| `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 |
|
|
111
|
+
| `mode` | **required** | `mailbox` (inbox/outbox, safest), `mirror` (remote->local), or `bisync` (bidirectional) |
|
|
112
|
+
| `ingest` | `false` | Enable local inbox for sending files to the agent (mirror mode only) |
|
|
106
113
|
| `ingestPath` | `"inbox"` | Local subfolder name for ingestion |
|
|
107
114
|
| `remotePath` | `"openclaw-share"` | Folder name in cloud storage |
|
|
108
115
|
| `localPath` | `"shared"` | Subfolder within workspace to sync |
|
|
@@ -116,15 +123,16 @@ Workspace sync is configured via the plugin entry in `openclaw.json`:
|
|
|
116
123
|
## Automatic sync
|
|
117
124
|
|
|
118
125
|
When configured, sync runs automatically:
|
|
119
|
-
- **On session start**:
|
|
126
|
+
- **On session start**: Pushes workspace and drains outbox (mailbox), pulls latest (mirror), or runs bisync
|
|
120
127
|
- **On session end**: Syncs changes after conversation ends
|
|
121
128
|
- **Periodic interval**: Background sync every N seconds (no LLM cost)
|
|
122
129
|
|
|
123
130
|
## Safety notes
|
|
124
131
|
|
|
132
|
+
- **Mailbox mode is the safest.** Workspace pushes to cloud; users send files via `_outbox`. Streams never overlap.
|
|
125
133
|
- **Mirror mode is safe by design.** Remote workspace is the authority. Local is a read-only copy.
|
|
126
134
|
- **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.
|
|
135
|
+
- **On container platforms** (Fly.io, Railway), bisync state is ephemeral — use `mailbox` or `mirror` mode instead.
|
|
128
136
|
- **When changing config** (remotePath, localPath, mode), disable periodic sync first, verify, then re-enable.
|
|
129
137
|
|
|
130
138
|
## Auto-recovery
|
|
@@ -161,9 +169,10 @@ rclone ls cloud:openclaw-share
|
|
|
161
169
|
|
|
162
170
|
## Notes
|
|
163
171
|
|
|
164
|
-
- `mode` is **required** — set `mirror` (remote→local) or `bisync` (bidirectional)
|
|
172
|
+
- `mode` is **required** — set `mailbox` (inbox/outbox, safest), `mirror` (remote→local), or `bisync` (bidirectional)
|
|
173
|
+
- Mailbox mode bootstraps `_outbox` on cloud and `_inbox` on workspace at startup
|
|
165
174
|
- Bisync is available for power users who need bidirectional sync
|
|
166
|
-
- Ingest inbox is additive only — cannot delete remote files
|
|
175
|
+
- Ingest inbox (mirror mode only) is additive only — cannot delete remote files
|
|
167
176
|
- Only `**/.DS_Store` excluded by default — add your own excludes in config
|
|
168
177
|
- Sync operations run in background (no LLM tokens used)
|
|
169
178
|
- All rclone activity is logged at info level for visibility
|