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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # OpenClaw Workspace Cloud Sync Plugin
2
2
 
3
- Bidirectional workspace sync between your OpenClaw agent and cloud storage via [rclone](https://rclone.org/).
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
- Drop a file locally it appears on the remote Gateway (and vice versa).
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. Dropbox app folder option (for scoped access)
48
- 4. Background sync interval
49
- 5. OAuth authorization
50
- 6. First sync
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: `.git/**`, `node_modules/**`, `.venv/**`, `__pycache__/**`, `*.log`, `.DS_Store`
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 bidirectionally
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 rclone bisync 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.
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 the first sync (establishes baseline)
268
- openclaw workspace-sync sync --resync
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;
@@ -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
@@ -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
- // Auto-retry with --resync when bisync requires it
493
- if (!result.ok && !params.resync && (result.error?.includes("--resync") || result.error?.includes("Must run --resync") || result.error?.includes("Bisync aborted"))) {
494
- logInfo("[workspace-sync] Bisync requires --resync, retrying automatically");
495
- const resyncArgs = [...args, "--resync"];
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
  }
@@ -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":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACtG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAU5C,IAAI,YAAgC,CAAC;AAErC,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,YAAY,GAAG,MAAM,CAAC;AACxB,CAAC;AAED,SAAS,OAAO,CAAC,GAAW;IAC1B,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW;IAC3B,YAAY,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E,SAAS,OAAO,CACd,OAAe,EACf,IAAc,EACd,OAAmD,EAAE;IAErD,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC;IAC3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACjF,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,QAAQ,GAAG,GAAmD,CAAC;gBACrE,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;gBACzB,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;gBACzB,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACjB,OAAO;YACT,CAAC;YACD,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CACvB,OAAe,EACf,IAAc,EACd,OAAgE,EAAE;IAElE,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAE1E,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,KAAK,CAAC;QAEnB,MAAM,KAAK,GAAG,SAAS,GAAG,CAAC;YACzB,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;gBACd,MAAM,GAAG,IAAI,CAAC;gBACd,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,CAAC,EAAE,SAAS,CAAC;YACf,CAAC,CAAC,SAAS,CAAC;QAEd,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACxC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,IAAI,CAAC;YACf,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC5B,IAAI,OAAO;wBAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACxC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,IAAI,CAAC;YACf,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC5B,IAAI,OAAO;wBAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,KAAK;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,2BAA2B,SAAS,IAAI,CAAiD,CAAC;gBAChH,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;gBACpB,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;gBACpB,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;iBAAM,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,iCAAiC,IAAI,EAAE,CAAiD,CAAC;gBAC/G,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;gBACpB,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;gBACpB,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,IAAI,KAAK;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,MAAM,mBAAmB,GAAG,OAAO,CAAC;AACpC,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AACpC,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAC7C,MAAM,wBAAwB,GAAG,OAAO,CAAC;AACzC,MAAM,gBAAgB,GAAG;IACvB,cAAc;CACf,CAAC;AASF,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,WAAW,GAAG,KAAK,EAAE,IAAY,EAAoB,EAAE;QAC3D,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACvE,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,QAAQ,IAAI,CAAC,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YAC9C,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,uBAAuB,EAAE,iBAAiB,EAAE,0BAA0B,CAAC,CAAC;IAC7F,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,MAAM,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,IAAI,kBAAkB,GAAkB,IAAI,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,kBAAkB;QAAE,OAAO,kBAAkB,CAAC;IAClD,kBAAkB,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAC9C,OAAO,kBAAkB,IAAI,QAAQ,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACxC,OAAO,MAAM,KAAK,IAAI,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAoE;IAEpE,MAAM,SAAS,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAC5C,IAAI,SAAS;QAAE,OAAO,IAAI,CAAC;IAE3B,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,QAAQ,CAAC;IACtC,MAAM,OAAO,GAAG,QAAQ,EAAE,KAAK,OAAO,CAAC;IAEvC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CACnD,GAAG,EAAE,CAAC,IAAI,EACV,GAAG,EAAE,CAAC,KAAK,CACZ,CAAC;QAEF,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,GAAG,MAAM,MAAM,CAC1B,+DAA+D,EAC/D,IAAI,CACL,CAAC;YACF,IAAI,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAC;YAC3B,OAAO,CAAC,mCAAmC,CAAC,CAAC;YAC7C,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;gBACrE,kBAAkB,GAAG,IAAI,CAAC;gBAC1B,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,YAAY,EAAE,KAAK,CACjB,6BAA6B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAChF,CAAC;gBACF,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,MAAM,MAAM,CAC1B,qFAAqF,EACrF,IAAI,CACL,CAAC;QACF,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC3B,OAAO,CAAC,0CAA0C,CAAC,CAAC;QACpD,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,+BAA+B,CAAC,EAAE;gBAChF,SAAS,EAAE,MAAM;aAClB,CAAC,CAAC;YACH,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;YACtE,kBAAkB,GAAG,IAAI,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,EAAE,KAAK,CACjB,6BAA6B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAChF,CAAC;YACF,YAAY,EAAE,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAC5E,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,YAAY,EAAE,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC9F,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,MAAM,UAAU,0BAA0B,CAAC,QAAiB;IAC1D,MAAM,IAAI,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;IACxF,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,MAAuC,EACvC,SAAiB,EACjB,QAAiB;IAkBjB,MAAM,iBAAiB,GAAG,IAAI,CAAC;IAC/B,OAAO;QACL,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,KAAK;QACnC,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,QAAQ;QAC9B,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK;QAC/B,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,OAAO;QACzC,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,mBAAmB;QACrD,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,mBAAmB;QACrD,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,kBAAkB,CAAC;QACnE,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,0BAA0B,CAAC,QAAQ,CAAC;QACtE,eAAe,EAAE,MAAM,EAAE,eAAe,IAAI,wBAAwB;QACpE,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,gBAAgB;QAC5C,YAAY,EAAE,MAAM,EAAE,YAAY,IAAI,KAAK;QAC3C,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,CAAC;QAC/B,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,IAAI,iBAAiB,CAAC,GAAG,IAAI;QACxD,cAAc,EAAE,MAAM,EAAE,cAAc,IAAI,KAAK;QAC/C,YAAY,EAAE,MAAM,EAAE,YAAY,IAAI,KAAK;KAC5C,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E,SAAS,aAAa,CAAC,QAA+B;IACpD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,OAAO,CAAC;QACjB,KAAK,UAAU;YACb,OAAO,UAAU,CAAC;QACpB,KAAK,IAAI;YACP,OAAO,IAAI,CAAC;QACd;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,QAA+B,EAC/B,UAAkB,EAClB,KAAa,EACb,OAYC;IAED,IAAI,QAAQ,KAAK,QAAQ,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;QAC7C,IAAI,MAAM,GAAG,IAAI,UAAU,aAAa,OAAO,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC;QACtE,IAAI,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YACjC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;gBAClE,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,MAAM,GAAG,IAAI,UAAU,aAAa,IAAI,IAAI,CAAC;IAEjD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,WAAW,KAAK,IAAI,CAAC;QAC/B,IAAI,OAAO,EAAE,OAAO,EAAE,MAAM;YAAE,MAAM,IAAI,eAAe,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC;QAClF,IAAI,OAAO,EAAE,OAAO,EAAE,SAAS;YAAE,MAAM,IAAI,mBAAmB,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC;IAC9F,CAAC;SAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,IAAI,WAAW,KAAK,IAAI,CAAC;QAC/B,IAAI,OAAO,EAAE,MAAM,EAAE,SAAS;YAAE,MAAM,IAAI,gBAAgB,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC;QACvF,IAAI,OAAO,EAAE,MAAM,EAAE,YAAY;YAAE,MAAM,IAAI,oBAAoB,OAAO,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC;IACnG,CAAC;SAAM,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QACnC,MAAM,IAAI,WAAW,KAAK,IAAI,CAAC;QAC/B,IAAI,OAAO,EAAE,QAAQ,EAAE,OAAO;YAAE,MAAM,IAAI,cAAc,OAAO,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC;QACrF,IAAI,OAAO,EAAE,QAAQ,EAAE,SAAS;YAAE,MAAM,IAAI,gBAAgB,OAAO,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC;IAC7F,CAAC;SAAM,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC7B,IAAI,OAAO,EAAE,EAAE,EAAE,QAAQ;YAAE,MAAM,IAAI,cAAc,OAAO,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC;QAC3E,IAAI,OAAO,EAAE,EAAE,EAAE,MAAM;YAAE,MAAM,IAAI,YAAY,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC;QACrE,IAAI,OAAO,EAAE,EAAE,EAAE,WAAW;YAAE,MAAM,IAAI,mBAAmB,OAAO,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC;QACtF,IAAI,OAAO,EAAE,EAAE,EAAE,eAAe;YAC9B,MAAM,IAAI,uBAAuB,OAAO,CAAC,EAAE,CAAC,eAAe,IAAI,CAAC;IACpE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAAkB,EAAE,OAAe;IACnE,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAkB,EAAE,UAAkB;IACvE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,UAA2C,EAC3C,UAAkB,EAClB,UAAkB;IAElB,IAAI,kBAAkB,CAAC,UAAU,EAAE,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5D,IAAI,CAAC,UAAU,EAAE,QAAQ,IAAI,UAAU,CAAC,QAAQ,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAEzE,IAAI,UAAU,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC;QACxC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,QAAQ,CAAC,uCAAuC,UAAU,qBAAqB,CAAC,CAAC;QACjF,MAAM,aAAa,GAAG,oBAAoB,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE;YACjF,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE;SAC1F,CAAC,CAAC;QACH,iBAAiB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC;QACvC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,QAAQ,CAAC,uCAAuC,UAAU,qBAAqB,CAAC,CAAC;QACjF,MAAM,aAAa,GAAG,oBAAoB,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE;YACjF,MAAM,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE;SACnG,CAAC,CAAC;QACH,iBAAiB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC;QACzC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,QAAQ,CAAC,uCAAuC,UAAU,qBAAqB,CAAC,CAAC;QACjF,MAAM,aAAa,GAAG,oBAAoB,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE;YACjF,QAAQ,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE;SAC/F,CAAC,CAAC;QACH,iBAAiB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QACjC,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC;QACvF,IAAI,CAAC,WAAW,IAAI,CAAC,eAAe;YAAE,OAAO,KAAK,CAAC;QACnD,QAAQ,CAAC,uCAAuC,UAAU,qBAAqB,CAAC,CAAC;QACjF,MAAM,aAAa,GAAG,oBAAoB,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;YAC9E,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE;SAC/D,CAAC,CAAC;QACH,iBAAiB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC;QACpC,IAAI,CAAC,SAAS,EAAE,UAAU;YAAE,OAAO,KAAK,CAAC;QACzC,QAAQ,CAAC,uCAAuC,UAAU,4BAA4B,CAAC,CAAC;QACxF,MAAM,aAAa,GAAG,oBAAoB,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;YAC9E,MAAM,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,UAAU,EAAE,aAAa,EAAE,SAAS,CAAC,aAAa,EAAE;SACrF,CAAC,CAAC;QACH,iBAAiB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAA+B,EAC/B,MAAe,EACf,SAAkB;IAElB,MAAM,SAAS,GAAG,MAAM,eAAe,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAErC,MAAM,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACjC,IAAI,MAAM,IAAI,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEtD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE;YACxD,SAAS,EAAE,OAAO;YAClB,SAAS,EAAE,SAAS;SACrB,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;QACjC,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClE,IAAI,UAAU;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAE1D,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAC9B,yEAAyE,CAC1E,CAAC;QACF,IAAI,SAAS;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAExD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,4CAA4C,EAAE,CAAC;IAC5E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,OAAO,EAAE,EAAE,CAAC;IAClE,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E,MAAM,UAAU,gBAAgB;IAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9D,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO;QACjC,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC;gBACH,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC7B,OAAO,CAAC,wCAAwC,CAAC,EAAE,CAAC,CAAC;YACvD,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,yBAAyB;IAC3B,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAY/B;IACC,MAAM,SAAS,GAAG,MAAM,eAAe,EAAE,CAAC;IAE1C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,IAAI,GAAG;QACX,QAAQ;QACR,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,EAAE;QAC3C,MAAM,CAAC,SAAS;QAChB,UAAU;QACV,MAAM,CAAC,UAAU;QACjB,oBAAoB;QACpB,MAAM,CAAC,eAAe;QACtB,mBAAmB;QACnB,WAAW;QACX,YAAY,EAAE,KAAK;QACnB,WAAW;QACX,aAAa;KACd,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtE,IAAI,MAAM,CAAC,YAAY;QAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,IAAI,MAAM,CAAC,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,MAAM,CAAC,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;QACtC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAEzC,OAAO,CAAC,6BAA6B,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEpE,MAAM,OAAO,GAAG,KAAK,EACnB,WAAqB,EACM,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,SAAS,EAAE,WAAW,EAAE;gBACxE,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,SAAS;gBACxC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACf,IAAI,kDAAkD,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBAClE,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;oBAC9B,CAAC;yBAAM,CAAC;wBACN,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;oBAC/B,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;YACjC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAE7E,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;aACnF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,GAA6D,CAAC;YAC7E,MAAM,OAAO,GACX,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,OAAO,IAAI,oBAAoB,CAAC;YAE3F,IAAI,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;gBACjD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,yDAAyD,EAAE,CAAC;YACzF,CAAC;YAED,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACvC,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjC,wCAAwC;IACxC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,iBAAiB,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAChG,OAAO,CAAC,kEAAkE,CAAC,CAAC;QAC5E,gBAAgB,EAAE,CAAC;QACnB,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,0EAA0E;IAC1E,6EAA6E;IAC7E,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,mBAAmB,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;QAClJ,OAAO,CAAC,sHAAsH,CAAC,CAAC;IAClI,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAU7B;IACC,MAAM,SAAS,GAAG,MAAM,eAAe,EAAE,CAAC;IAE1C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;IAC3D,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAClB,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAExF,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IACnE,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtE,IAAI,MAAM,CAAC,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;QACtC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAEzC,OAAO,CAAC,6BAA6B,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEpE,IAAI,CAAC;QACH,MAAM,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE;YACtC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,SAAS;YACxC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACf,IAAI,kDAAkD,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClE,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,GAA4C,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,OAAO,IAAI,oBAAoB,CAAC;QAChF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACvC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAIhC;IACC,MAAM,SAAS,GAAG,MAAM,eAAe,EAAE,CAAC;IAE1C,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAC9B,SAAS,EACT,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,EACnF,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAC5C,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM;aACjB,IAAI,EAAE;aACN,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,GAA4C,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,OAAO,IAAI,eAAe,CAAC;QAC3E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACvC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAGjC;IACC,MAAM,SAAS,GAAG,MAAM,eAAe,EAAE,CAAC;IAE1C,IAAI,CAAC;QACH,MAAM,OAAO,CACX,SAAS,EACT,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,UAAU,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,EAC3E,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAC1C,CAAC;QACF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,GAA4C,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,OAAO,IAAI,mBAAmB,CAAC;QAC/E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACvC,CAAC;AACH,CAAC"}
@@ -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;AAUtD,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;AAyGF,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,mBAAmB,EAC/B,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,IAAI,CAsCN;AAED,wBAAgB,eAAe,IAAI,IAAI,CAUtC;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"}
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"}
@@ -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
- logger.info(`[workspace-sync] Running periodic sync: ${resolved.remoteName}:${resolved.remotePath}`);
53
- const result = await runBisync({
54
- configPath: resolved.configPath,
55
- remoteName: resolved.remoteName,
56
- remotePath: resolved.remotePath,
57
- localPath: resolved.localPath,
58
- conflictResolve: resolved.conflictResolve,
59
- exclude: resolved.exclude,
60
- copySymlinks: resolved.copySymlinks,
61
- resync: !state.hasSuccessfulSync,
62
- timeoutMs: resolved.timeoutMs,
63
- verbose: !!logger.debug,
64
- });
65
- state.lastSyncAt = new Date();
66
- state.syncCount++;
67
- if (result.ok) {
68
- state.lastSyncOk = true;
69
- state.hasSuccessfulSync = true;
70
- logger.info("[workspace-sync] Periodic sync completed");
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
- state.lastSyncOk = false;
74
- state.errorCount++;
75
- state.hasSuccessfulSync = false;
76
- logger.warn(`[workspace-sync] Periodic sync failed: ${result.error}`);
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
- logger.info(`[workspace-sync] Starting periodic sync every ${effectiveInterval}s (pure file sync, zero LLM cost)`);
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;
@@ -1 +1 @@
1
- {"version":3,"file":"sync-manager.js","sourceRoot":"","sources":["../src/sync-manager.ts"],"names":[],"mappings":"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"}
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;
@@ -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": "1.4.5",
4
- "description": "Bidirectional workspace cloud sync via rclone (Dropbox, Google Drive, S3, OneDrive, 70+ providers)",
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
- Bidirectional sync between the agent workspace and cloud storage. Useful for backing up workspace files, sharing across devices, or restoring after migrations.
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
- Runs a bidirectional sync immediately. Use after bulk workspace changes.
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
- ### First-time sync (required once)
56
+ ### Force re-establish bisync baseline (destructive)
36
57
  ```bash
37
58
  openclaw workspace-sync sync --resync
38
59
  ```
39
60
 
40
- Required on first run to establish baseline. Only needed once per remote.
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
- "conflictResolve": "newer",
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` | see below | Glob patterns to exclude from sync |
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**: Before you start working (pulls latest from cloud)
96
- - **On session end**: After conversation ends (pushes changes to cloud)
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
- - **Resync required**: If bisync state is lost, automatically retries with `--resync`
104
- - **Interrupted syncs**: Uses `--recover` and `--resilient` flags to resume after interruptions
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
- First sync needs to establish baseline:
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
- - Sync is bidirectional (changes flow both ways)
135
- - Conflicts resolve by newest file (configurable via `conflictResolve`)
136
- - `.git/` and `node_modules/` excluded by default
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