@alfe.ai/openclaw-sync 0.0.14 → 0.0.16
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/dist/cli/index.cjs +28 -74
- package/dist/cli/index.js +29 -75
- package/dist/cli/index.js.map +1 -1
- package/dist/ignore.cjs +2 -2
- package/dist/ignore.js +2 -2
- package/dist/index.cjs +7 -751
- package/dist/index.d.cts +53 -91
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +53 -91
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -748
- package/dist/plugin.cjs +2 -0
- package/dist/plugin.d.cts +69 -0
- package/dist/plugin.d.cts.map +1 -0
- package/dist/plugin.d.ts +69 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +2 -0
- package/dist/plugin2.cjs +762 -0
- package/dist/plugin2.js +747 -0
- package/dist/plugin2.js.map +1 -0
- package/dist/sync-engine.cjs +123 -80
- package/dist/sync-engine.js +108 -59
- package/dist/sync-engine.js.map +1 -1
- package/package.json +6 -1
- package/dist/index.js.map +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
|
+
import plugin, { SyncPluginConfig } from "./plugin.cjs";
|
|
2
|
+
|
|
1
3
|
//#region src/config.d.ts
|
|
4
|
+
|
|
2
5
|
/**
|
|
3
|
-
* AlfeSync configuration
|
|
6
|
+
* AlfeSync configuration.
|
|
7
|
+
*
|
|
8
|
+
* Derives credentials from `@alfe.ai/config` (~/.alfe/config.toml) so the
|
|
9
|
+
* sync plugin works on any agent that's already logged in — no separate
|
|
10
|
+
* `.alfesync/config.json` or manual `alfesync init` required.
|
|
11
|
+
*
|
|
12
|
+
* The only field not directly in @alfe.ai/config is `agentId`, which is
|
|
13
|
+
* resolved once at startup by calling POST /auth/validate (same pattern
|
|
14
|
+
* the gateway daemon uses to bootstrap its own identity).
|
|
4
15
|
*/
|
|
5
16
|
interface SyncConfig {
|
|
6
17
|
agentId: string;
|
|
@@ -10,39 +21,51 @@ interface SyncConfig {
|
|
|
10
21
|
apiUrl: string;
|
|
11
22
|
}
|
|
12
23
|
/**
|
|
13
|
-
*
|
|
24
|
+
* Local on-disk state directory (manifest, etc.) — separate from credentials.
|
|
25
|
+
* Lives under ~/.alfe/sync/ so sync state stays alongside the rest of Alfe's
|
|
26
|
+
* agent state, not scattered across the workspace.
|
|
14
27
|
*/
|
|
15
|
-
declare function
|
|
28
|
+
declare function syncStateDir(): string;
|
|
16
29
|
/**
|
|
17
|
-
*
|
|
30
|
+
* True if the agent has logged in (~/.alfe/config.toml exists).
|
|
31
|
+
* Sync needs no separate initialization — login is enough.
|
|
18
32
|
*/
|
|
19
|
-
declare function
|
|
33
|
+
declare function isInitialized(): boolean;
|
|
20
34
|
/**
|
|
21
|
-
*
|
|
35
|
+
* Invalidate the in-memory config cache. Call after login changes.
|
|
22
36
|
*/
|
|
23
|
-
declare function
|
|
37
|
+
declare function invalidateSyncConfigCache(): void;
|
|
24
38
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
39
|
+
* Resolve the full sync config — apiKey + apiUrl from @alfe.ai/config,
|
|
40
|
+
* agentId/orgId fetched once from /auth/validate.
|
|
41
|
+
*
|
|
42
|
+
* Returns null if the agent isn't logged in or validation fails.
|
|
43
|
+
* Callers that require config should use requireConfig().
|
|
44
|
+
*
|
|
45
|
+
* Concurrent callers share a single in-flight promise; failures are
|
|
46
|
+
* not cached so a transient API blip doesn't poison the process.
|
|
27
47
|
*/
|
|
28
|
-
declare function
|
|
48
|
+
declare function resolveSyncConfig(): Promise<SyncConfig | null>;
|
|
29
49
|
/**
|
|
30
|
-
*
|
|
31
|
-
* Creates the .alfesync directory if it doesn't exist.
|
|
50
|
+
* Resolve config or throw with a clear message. Use in CLI entry points.
|
|
32
51
|
*/
|
|
33
|
-
declare function
|
|
52
|
+
declare function requireConfig(): Promise<SyncConfig>;
|
|
34
53
|
/**
|
|
35
|
-
*
|
|
54
|
+
* Local-only check: does the on-disk sync state directory exist?
|
|
55
|
+
* Used by manifest loading to decide whether to create it.
|
|
36
56
|
*/
|
|
37
|
-
declare function requireConfig(workspacePath: string): Promise<SyncConfig>;
|
|
38
|
-
//# sourceMappingURL=config.d.ts.map
|
|
39
57
|
//#endregion
|
|
40
58
|
//#region src/manifest.d.ts
|
|
41
59
|
/**
|
|
42
|
-
* AlfeSync manifest — local file manifest at
|
|
60
|
+
* AlfeSync manifest — local file manifest at `~/.alfe/sync/manifest.json`.
|
|
43
61
|
*
|
|
44
62
|
* Tracks file hashes, sizes, sync timestamps, and storage classes
|
|
45
|
-
* to enable efficient diff-based syncing.
|
|
63
|
+
* to enable efficient diff-based syncing. Lives under `~/.alfe/sync/`
|
|
64
|
+
* so workspace directories stay clean.
|
|
65
|
+
*
|
|
66
|
+
* `workspacePath` is accepted by every function for consistency with the
|
|
67
|
+
* rest of the package, but the manifest itself is workspace-independent
|
|
68
|
+
* (one agent, one workspace, one manifest).
|
|
46
69
|
*/
|
|
47
70
|
interface ManifestEntry {
|
|
48
71
|
hash: string;
|
|
@@ -78,10 +101,15 @@ interface ManifestDiff {
|
|
|
78
101
|
}
|
|
79
102
|
/**
|
|
80
103
|
* Read the local manifest. Returns empty manifest if not found.
|
|
104
|
+
*
|
|
105
|
+
* `workspacePath` is accepted for call-site symmetry with the rest of the
|
|
106
|
+
* package but is not used — the manifest path is resolved from
|
|
107
|
+
* `~/.alfe/sync/` regardless of which workspace the call comes from.
|
|
81
108
|
*/
|
|
82
109
|
declare function readManifest(workspacePath: string): Promise<LocalManifest>;
|
|
83
110
|
/**
|
|
84
|
-
* Write the local manifest.
|
|
111
|
+
* Write the local manifest. `workspacePath` is accepted for call-site
|
|
112
|
+
* symmetry but unused (see `readManifest`).
|
|
85
113
|
*/
|
|
86
114
|
declare function writeManifest(workspacePath: string, manifest: LocalManifest): Promise<void>;
|
|
87
115
|
/**
|
|
@@ -251,9 +279,10 @@ interface SyncResult {
|
|
|
251
279
|
errors: number;
|
|
252
280
|
}
|
|
253
281
|
/**
|
|
254
|
-
* Create a sync engine
|
|
282
|
+
* Create a sync engine. Workspace path defaults to `config.workspacePath`
|
|
283
|
+
* from the resolved Alfe config, but can be overridden (e.g. for tests).
|
|
255
284
|
*/
|
|
256
|
-
declare function createSyncEngine(
|
|
285
|
+
declare function createSyncEngine(workspacePathOverride?: string): Promise<{
|
|
257
286
|
config: SyncConfig;
|
|
258
287
|
client: {
|
|
259
288
|
getManifest(): Promise<RemoteManifest>;
|
|
@@ -396,7 +425,7 @@ interface SharedSyncConfig {
|
|
|
396
425
|
token: string;
|
|
397
426
|
agentId: string;
|
|
398
427
|
}
|
|
399
|
-
interface PluginLogger
|
|
428
|
+
interface PluginLogger {
|
|
400
429
|
info(msg: string): void;
|
|
401
430
|
warn(msg: string): void;
|
|
402
431
|
error(msg: string): void;
|
|
@@ -409,74 +438,7 @@ interface SharedSyncEngine {
|
|
|
409
438
|
fullSync(): Promise<void>;
|
|
410
439
|
getScopes(): SharedScope[];
|
|
411
440
|
}
|
|
412
|
-
declare function createSharedSyncEngine(config: SharedSyncConfig, log: PluginLogger
|
|
413
|
-
//#endregion
|
|
414
|
-
//#region src/plugin.d.ts
|
|
415
|
-
/**
|
|
416
|
-
* @alfe.ai/openclaw-sync — OpenClaw Sync plugin.
|
|
417
|
-
*
|
|
418
|
-
* Wraps the existing sync engine as a lifecycle-managed integration,
|
|
419
|
-
* following the same plugin pattern as @alfe.ai/openclaw-mobile and
|
|
420
|
-
* @alfe.ai/openclaw-discord.
|
|
421
|
-
*
|
|
422
|
-
* Lifecycle:
|
|
423
|
-
* - activate(api): start the sync engine + watcher based on config
|
|
424
|
-
* - deactivate(api): stop the watcher, clean up resources
|
|
425
|
-
* - configure(api, config): update scope/schedule at runtime
|
|
426
|
-
*
|
|
427
|
-
* Registers 'sync.now' and 'sync.status' gateway RPC methods.
|
|
428
|
-
*/
|
|
429
|
-
/** Logger interface used by the plugin API */
|
|
430
|
-
interface PluginLogger {
|
|
431
|
-
info(msg: string): void;
|
|
432
|
-
warn(msg: string): void;
|
|
433
|
-
error(msg: string): void;
|
|
434
|
-
debug(msg: string): void;
|
|
435
|
-
}
|
|
436
|
-
interface PluginServiceContext {
|
|
437
|
-
config: Record<string, unknown>;
|
|
438
|
-
workspaceDir?: string;
|
|
439
|
-
stateDir: string;
|
|
440
|
-
logger: PluginLogger;
|
|
441
|
-
}
|
|
442
|
-
/** Plugin API passed to activate/deactivate/configure */
|
|
443
|
-
interface PluginApi {
|
|
444
|
-
logger: PluginLogger;
|
|
445
|
-
registrationMode?: 'full' | 'setup-only' | 'setup-runtime' | 'cli-metadata';
|
|
446
|
-
config?: SyncPluginConfig;
|
|
447
|
-
registerGatewayMethod?: (name: string, handler: () => Promise<unknown>) => void;
|
|
448
|
-
registerService?(service: {
|
|
449
|
-
id: string;
|
|
450
|
-
start: (ctx: PluginServiceContext) => void | Promise<void>;
|
|
451
|
-
stop?: (ctx: PluginServiceContext) => void | Promise<void>;
|
|
452
|
-
}): void;
|
|
453
|
-
}
|
|
454
|
-
interface SyncPluginConfig {
|
|
455
|
-
/** Workspace path to sync. Defaults to ~/.openclaw */
|
|
456
|
-
workspacePath?: string;
|
|
457
|
-
/** Sync scope — which data categories to sync */
|
|
458
|
-
syncScope?: ('config' | 'conversations' | 'memory')[];
|
|
459
|
-
/** Sync schedule — how often to auto-sync */
|
|
460
|
-
syncSchedule?: 'realtime' | 'hourly' | 'daily' | 'weekly';
|
|
461
|
-
/** IPC socket path override */
|
|
462
|
-
socketPath?: string;
|
|
463
|
-
/** Sync relay URL override (default: wss://sync.alfe.ai/ws) */
|
|
464
|
-
syncRelayUrl?: string;
|
|
465
|
-
/** Enable shared file sync for org/team/project scopes. Default: true */
|
|
466
|
-
sharedSync?: boolean;
|
|
467
|
-
}
|
|
468
|
-
declare const plugin: {
|
|
469
|
-
id: string;
|
|
470
|
-
name: string;
|
|
471
|
-
description: string;
|
|
472
|
-
version: string;
|
|
473
|
-
activate(api: PluginApi): void;
|
|
474
|
-
deactivate(api: PluginApi): Promise<void>;
|
|
475
|
-
/**
|
|
476
|
-
* Runtime config update — apply new scope/schedule without full restart.
|
|
477
|
-
*/
|
|
478
|
-
configure(api: PluginApi, config: SyncPluginConfig): Promise<void>;
|
|
479
|
-
};
|
|
441
|
+
declare function createSharedSyncEngine(config: SharedSyncConfig, log: PluginLogger): SharedSyncEngine;
|
|
480
442
|
//#endregion
|
|
481
|
-
export { type AgentStats, type ApiClient, type ApiClientConfig, type ConfirmResult, type DownloadResult, type FileHistoryEntry, type LocalManifest, type ManifestDiff, type ManifestEntry, type PresignResult, type ReconstructResult, type RegisterAgentResult, type RemoteManifest, type SharedScope, type SharedSyncConfig, type SharedSyncEngine, type SyncConfig, type SyncEngine, type SyncPluginConfig, type SyncResult, type UploadResult, type WatcherOptions, computeFileHash,
|
|
443
|
+
export { type AgentStats, type ApiClient, type ApiClientConfig, type ConfirmResult, type DownloadResult, type FileHistoryEntry, type LocalManifest, type ManifestDiff, type ManifestEntry, type PresignResult, type ReconstructResult, type RegisterAgentResult, type RemoteManifest, type SharedScope, type SharedSyncConfig, type SharedSyncEngine, type SyncConfig, type SyncEngine, type SyncPluginConfig, type SyncResult, type UploadResult, type WatcherOptions, computeFileHash, createApiClient, createSharedSyncEngine, createSyncEngine, diffManifests, downloadFiles, filterIgnored, invalidateSyncConfigCache, isInitialized, loadIgnorePatterns, plugin, readManifest, removeManifestEntry, requireConfig, resolveSyncConfig, shouldIgnore, startWatcher, syncStateDir, updateManifestEntry, uploadFiles, writeManifest };
|
|
482
444
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/config.ts","../src/manifest.ts","../src/ignore.ts","../src/api-client.ts","../src/sync-engine.ts","../src/watcher.ts","../src/uploader.ts","../src/downloader.ts","../src/shared-sync.ts"
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/config.ts","../src/manifest.ts","../src/ignore.ts","../src/api-client.ts","../src/sync-engine.ts","../src/watcher.ts","../src/uploader.ts","../src/downloader.ts","../src/shared-sync.ts"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
|
+
import plugin, { SyncPluginConfig } from "./plugin.js";
|
|
2
|
+
|
|
1
3
|
//#region src/config.d.ts
|
|
4
|
+
|
|
2
5
|
/**
|
|
3
|
-
* AlfeSync configuration
|
|
6
|
+
* AlfeSync configuration.
|
|
7
|
+
*
|
|
8
|
+
* Derives credentials from `@alfe.ai/config` (~/.alfe/config.toml) so the
|
|
9
|
+
* sync plugin works on any agent that's already logged in — no separate
|
|
10
|
+
* `.alfesync/config.json` or manual `alfesync init` required.
|
|
11
|
+
*
|
|
12
|
+
* The only field not directly in @alfe.ai/config is `agentId`, which is
|
|
13
|
+
* resolved once at startup by calling POST /auth/validate (same pattern
|
|
14
|
+
* the gateway daemon uses to bootstrap its own identity).
|
|
4
15
|
*/
|
|
5
16
|
interface SyncConfig {
|
|
6
17
|
agentId: string;
|
|
@@ -10,39 +21,51 @@ interface SyncConfig {
|
|
|
10
21
|
apiUrl: string;
|
|
11
22
|
}
|
|
12
23
|
/**
|
|
13
|
-
*
|
|
24
|
+
* Local on-disk state directory (manifest, etc.) — separate from credentials.
|
|
25
|
+
* Lives under ~/.alfe/sync/ so sync state stays alongside the rest of Alfe's
|
|
26
|
+
* agent state, not scattered across the workspace.
|
|
14
27
|
*/
|
|
15
|
-
declare function
|
|
28
|
+
declare function syncStateDir(): string;
|
|
16
29
|
/**
|
|
17
|
-
*
|
|
30
|
+
* True if the agent has logged in (~/.alfe/config.toml exists).
|
|
31
|
+
* Sync needs no separate initialization — login is enough.
|
|
18
32
|
*/
|
|
19
|
-
declare function
|
|
33
|
+
declare function isInitialized(): boolean;
|
|
20
34
|
/**
|
|
21
|
-
*
|
|
35
|
+
* Invalidate the in-memory config cache. Call after login changes.
|
|
22
36
|
*/
|
|
23
|
-
declare function
|
|
37
|
+
declare function invalidateSyncConfigCache(): void;
|
|
24
38
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
39
|
+
* Resolve the full sync config — apiKey + apiUrl from @alfe.ai/config,
|
|
40
|
+
* agentId/orgId fetched once from /auth/validate.
|
|
41
|
+
*
|
|
42
|
+
* Returns null if the agent isn't logged in or validation fails.
|
|
43
|
+
* Callers that require config should use requireConfig().
|
|
44
|
+
*
|
|
45
|
+
* Concurrent callers share a single in-flight promise; failures are
|
|
46
|
+
* not cached so a transient API blip doesn't poison the process.
|
|
27
47
|
*/
|
|
28
|
-
declare function
|
|
48
|
+
declare function resolveSyncConfig(): Promise<SyncConfig | null>;
|
|
29
49
|
/**
|
|
30
|
-
*
|
|
31
|
-
* Creates the .alfesync directory if it doesn't exist.
|
|
50
|
+
* Resolve config or throw with a clear message. Use in CLI entry points.
|
|
32
51
|
*/
|
|
33
|
-
declare function
|
|
52
|
+
declare function requireConfig(): Promise<SyncConfig>;
|
|
34
53
|
/**
|
|
35
|
-
*
|
|
54
|
+
* Local-only check: does the on-disk sync state directory exist?
|
|
55
|
+
* Used by manifest loading to decide whether to create it.
|
|
36
56
|
*/
|
|
37
|
-
declare function requireConfig(workspacePath: string): Promise<SyncConfig>;
|
|
38
|
-
//# sourceMappingURL=config.d.ts.map
|
|
39
57
|
//#endregion
|
|
40
58
|
//#region src/manifest.d.ts
|
|
41
59
|
/**
|
|
42
|
-
* AlfeSync manifest — local file manifest at
|
|
60
|
+
* AlfeSync manifest — local file manifest at `~/.alfe/sync/manifest.json`.
|
|
43
61
|
*
|
|
44
62
|
* Tracks file hashes, sizes, sync timestamps, and storage classes
|
|
45
|
-
* to enable efficient diff-based syncing.
|
|
63
|
+
* to enable efficient diff-based syncing. Lives under `~/.alfe/sync/`
|
|
64
|
+
* so workspace directories stay clean.
|
|
65
|
+
*
|
|
66
|
+
* `workspacePath` is accepted by every function for consistency with the
|
|
67
|
+
* rest of the package, but the manifest itself is workspace-independent
|
|
68
|
+
* (one agent, one workspace, one manifest).
|
|
46
69
|
*/
|
|
47
70
|
interface ManifestEntry {
|
|
48
71
|
hash: string;
|
|
@@ -78,10 +101,15 @@ interface ManifestDiff {
|
|
|
78
101
|
}
|
|
79
102
|
/**
|
|
80
103
|
* Read the local manifest. Returns empty manifest if not found.
|
|
104
|
+
*
|
|
105
|
+
* `workspacePath` is accepted for call-site symmetry with the rest of the
|
|
106
|
+
* package but is not used — the manifest path is resolved from
|
|
107
|
+
* `~/.alfe/sync/` regardless of which workspace the call comes from.
|
|
81
108
|
*/
|
|
82
109
|
declare function readManifest(workspacePath: string): Promise<LocalManifest>;
|
|
83
110
|
/**
|
|
84
|
-
* Write the local manifest.
|
|
111
|
+
* Write the local manifest. `workspacePath` is accepted for call-site
|
|
112
|
+
* symmetry but unused (see `readManifest`).
|
|
85
113
|
*/
|
|
86
114
|
declare function writeManifest(workspacePath: string, manifest: LocalManifest): Promise<void>;
|
|
87
115
|
/**
|
|
@@ -251,9 +279,10 @@ interface SyncResult {
|
|
|
251
279
|
errors: number;
|
|
252
280
|
}
|
|
253
281
|
/**
|
|
254
|
-
* Create a sync engine
|
|
282
|
+
* Create a sync engine. Workspace path defaults to `config.workspacePath`
|
|
283
|
+
* from the resolved Alfe config, but can be overridden (e.g. for tests).
|
|
255
284
|
*/
|
|
256
|
-
declare function createSyncEngine(
|
|
285
|
+
declare function createSyncEngine(workspacePathOverride?: string): Promise<{
|
|
257
286
|
config: SyncConfig;
|
|
258
287
|
client: {
|
|
259
288
|
getManifest(): Promise<RemoteManifest>;
|
|
@@ -396,7 +425,7 @@ interface SharedSyncConfig {
|
|
|
396
425
|
token: string;
|
|
397
426
|
agentId: string;
|
|
398
427
|
}
|
|
399
|
-
interface PluginLogger
|
|
428
|
+
interface PluginLogger {
|
|
400
429
|
info(msg: string): void;
|
|
401
430
|
warn(msg: string): void;
|
|
402
431
|
error(msg: string): void;
|
|
@@ -409,74 +438,7 @@ interface SharedSyncEngine {
|
|
|
409
438
|
fullSync(): Promise<void>;
|
|
410
439
|
getScopes(): SharedScope[];
|
|
411
440
|
}
|
|
412
|
-
declare function createSharedSyncEngine(config: SharedSyncConfig, log: PluginLogger
|
|
413
|
-
//#endregion
|
|
414
|
-
//#region src/plugin.d.ts
|
|
415
|
-
/**
|
|
416
|
-
* @alfe.ai/openclaw-sync — OpenClaw Sync plugin.
|
|
417
|
-
*
|
|
418
|
-
* Wraps the existing sync engine as a lifecycle-managed integration,
|
|
419
|
-
* following the same plugin pattern as @alfe.ai/openclaw-mobile and
|
|
420
|
-
* @alfe.ai/openclaw-discord.
|
|
421
|
-
*
|
|
422
|
-
* Lifecycle:
|
|
423
|
-
* - activate(api): start the sync engine + watcher based on config
|
|
424
|
-
* - deactivate(api): stop the watcher, clean up resources
|
|
425
|
-
* - configure(api, config): update scope/schedule at runtime
|
|
426
|
-
*
|
|
427
|
-
* Registers 'sync.now' and 'sync.status' gateway RPC methods.
|
|
428
|
-
*/
|
|
429
|
-
/** Logger interface used by the plugin API */
|
|
430
|
-
interface PluginLogger {
|
|
431
|
-
info(msg: string): void;
|
|
432
|
-
warn(msg: string): void;
|
|
433
|
-
error(msg: string): void;
|
|
434
|
-
debug(msg: string): void;
|
|
435
|
-
}
|
|
436
|
-
interface PluginServiceContext {
|
|
437
|
-
config: Record<string, unknown>;
|
|
438
|
-
workspaceDir?: string;
|
|
439
|
-
stateDir: string;
|
|
440
|
-
logger: PluginLogger;
|
|
441
|
-
}
|
|
442
|
-
/** Plugin API passed to activate/deactivate/configure */
|
|
443
|
-
interface PluginApi {
|
|
444
|
-
logger: PluginLogger;
|
|
445
|
-
registrationMode?: 'full' | 'setup-only' | 'setup-runtime' | 'cli-metadata';
|
|
446
|
-
config?: SyncPluginConfig;
|
|
447
|
-
registerGatewayMethod?: (name: string, handler: () => Promise<unknown>) => void;
|
|
448
|
-
registerService?(service: {
|
|
449
|
-
id: string;
|
|
450
|
-
start: (ctx: PluginServiceContext) => void | Promise<void>;
|
|
451
|
-
stop?: (ctx: PluginServiceContext) => void | Promise<void>;
|
|
452
|
-
}): void;
|
|
453
|
-
}
|
|
454
|
-
interface SyncPluginConfig {
|
|
455
|
-
/** Workspace path to sync. Defaults to ~/.openclaw */
|
|
456
|
-
workspacePath?: string;
|
|
457
|
-
/** Sync scope — which data categories to sync */
|
|
458
|
-
syncScope?: ('config' | 'conversations' | 'memory')[];
|
|
459
|
-
/** Sync schedule — how often to auto-sync */
|
|
460
|
-
syncSchedule?: 'realtime' | 'hourly' | 'daily' | 'weekly';
|
|
461
|
-
/** IPC socket path override */
|
|
462
|
-
socketPath?: string;
|
|
463
|
-
/** Sync relay URL override (default: wss://sync.alfe.ai/ws) */
|
|
464
|
-
syncRelayUrl?: string;
|
|
465
|
-
/** Enable shared file sync for org/team/project scopes. Default: true */
|
|
466
|
-
sharedSync?: boolean;
|
|
467
|
-
}
|
|
468
|
-
declare const plugin: {
|
|
469
|
-
id: string;
|
|
470
|
-
name: string;
|
|
471
|
-
description: string;
|
|
472
|
-
version: string;
|
|
473
|
-
activate(api: PluginApi): void;
|
|
474
|
-
deactivate(api: PluginApi): Promise<void>;
|
|
475
|
-
/**
|
|
476
|
-
* Runtime config update — apply new scope/schedule without full restart.
|
|
477
|
-
*/
|
|
478
|
-
configure(api: PluginApi, config: SyncPluginConfig): Promise<void>;
|
|
479
|
-
};
|
|
441
|
+
declare function createSharedSyncEngine(config: SharedSyncConfig, log: PluginLogger): SharedSyncEngine;
|
|
480
442
|
//#endregion
|
|
481
|
-
export { type AgentStats, type ApiClient, type ApiClientConfig, type ConfirmResult, type DownloadResult, type FileHistoryEntry, type LocalManifest, type ManifestDiff, type ManifestEntry, type PresignResult, type ReconstructResult, type RegisterAgentResult, type RemoteManifest, type SharedScope, type SharedSyncConfig, type SharedSyncEngine, type SyncConfig, type SyncEngine, type SyncPluginConfig, type SyncResult, type UploadResult, type WatcherOptions, computeFileHash,
|
|
443
|
+
export { type AgentStats, type ApiClient, type ApiClientConfig, type ConfirmResult, type DownloadResult, type FileHistoryEntry, type LocalManifest, type ManifestDiff, type ManifestEntry, type PresignResult, type ReconstructResult, type RegisterAgentResult, type RemoteManifest, type SharedScope, type SharedSyncConfig, type SharedSyncEngine, type SyncConfig, type SyncEngine, type SyncPluginConfig, type SyncResult, type UploadResult, type WatcherOptions, computeFileHash, createApiClient, createSharedSyncEngine, createSyncEngine, diffManifests, downloadFiles, filterIgnored, invalidateSyncConfigCache, isInitialized, loadIgnorePatterns, plugin, readManifest, removeManifestEntry, requireConfig, resolveSyncConfig, shouldIgnore, startWatcher, syncStateDir, updateManifestEntry, uploadFiles, writeManifest };
|
|
482
444
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/config.ts","../src/manifest.ts","../src/ignore.ts","../src/api-client.ts","../src/sync-engine.ts","../src/watcher.ts","../src/uploader.ts","../src/downloader.ts","../src/shared-sync.ts"
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/config.ts","../src/manifest.ts","../src/ignore.ts","../src/api-client.ts","../src/sync-engine.ts","../src/watcher.ts","../src/uploader.ts","../src/downloader.ts","../src/shared-sync.ts"],"mappings":"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"}
|