visionclaw 0.1.194-beta.0 → 0.1.194-beta.2
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/agent/backup-uploader.d.ts +44 -0
- package/dist/agent/backup-uploader.d.ts.map +1 -0
- package/dist/agent/backup-uploader.js +83 -0
- package/dist/agent/backup-uploader.js.map +1 -0
- package/dist/agent/backup.d.ts +7 -1
- package/dist/agent/backup.d.ts.map +1 -1
- package/dist/agent/backup.js +339 -52
- package/dist/agent/backup.js.map +1 -1
- package/dist/agent/command-handlers.d.ts.map +1 -1
- package/dist/agent/command-handlers.js +3 -2
- package/dist/agent/command-handlers.js.map +1 -1
- package/dist/agent/data-collector.d.ts.map +1 -1
- package/dist/agent/data-collector.js +15 -88
- package/dist/agent/data-collector.js.map +1 -1
- package/dist/agent/status.js +1 -1
- package/dist/agent/status.js.map +1 -1
- package/dist/backup.d.ts +4 -1
- package/dist/backup.d.ts.map +1 -1
- package/dist/backup.js +86 -3
- package/dist/backup.js.map +1 -1
- package/dist/config/types.d.ts +9 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +6 -0
- package/dist/config/types.js.map +1 -1
- package/dist/drive/google-drive.d.ts +1 -0
- package/dist/drive/google-drive.d.ts.map +1 -1
- package/dist/drive/google-drive.js +5 -0
- package/dist/drive/google-drive.js.map +1 -1
- package/dist/i18n/messages.js +2 -2
- package/dist/i18n/messages.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/onboarding/setup-shared.d.ts.map +1 -1
- package/dist/onboarding/setup-shared.js +6 -0
- package/dist/onboarding/setup-shared.js.map +1 -1
- package/dist/realtime/server.d.ts.map +1 -1
- package/dist/realtime/server.js +4 -1
- package/dist/realtime/server.js.map +1 -1
- package/dist/restore.d.ts +5 -0
- package/dist/restore.d.ts.map +1 -1
- package/dist/restore.js +132 -16
- package/dist/restore.js.map +1 -1
- package/dist/tos-storage.d.ts +45 -0
- package/dist/tos-storage.d.ts.map +1 -0
- package/dist/tos-storage.js +134 -0
- package/dist/tos-storage.js.map +1 -0
- package/dist-agent/assets/index.html +1058 -0
- package/dist-agent/assets/samples/alloy.mp3 +0 -0
- package/dist-agent/assets/samples/ash.mp3 +0 -0
- package/dist-agent/assets/samples/ballad.mp3 +0 -0
- package/dist-agent/assets/samples/cedar.mp3 +0 -0
- package/dist-agent/assets/samples/coral.mp3 +0 -0
- package/dist-agent/assets/samples/echo.mp3 +0 -0
- package/dist-agent/assets/samples/marin.mp3 +0 -0
- package/dist-agent/assets/samples/sage.mp3 +0 -0
- package/dist-agent/assets/samples/shimmer.mp3 +0 -0
- package/dist-agent/assets/samples/verse.mp3 +0 -0
- package/dist-agent/bundle.cjs +3361 -2045
- package/dist-agent/realtime/assets/index.html +1058 -0
- package/dist-agent/realtime/assets/samples/alloy.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/ash.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/ballad.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/cedar.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/coral.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/echo.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/marin.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/sage.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/shimmer.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/verse.mp3 +0 -0
- package/package.json +3 -2
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { VisionClawConfig } from "../config/types.js";
|
|
2
|
+
export type BackupProvider = "gdrive" | "tos";
|
|
3
|
+
export interface BackupUploadProgress {
|
|
4
|
+
uploadedBytes: number;
|
|
5
|
+
}
|
|
6
|
+
export interface BackupUploadBaseOptions {
|
|
7
|
+
localPath: string;
|
|
8
|
+
name: string;
|
|
9
|
+
contentType: string;
|
|
10
|
+
onProgress?: (progress: BackupUploadProgress) => void;
|
|
11
|
+
}
|
|
12
|
+
export interface GdriveBackupUploadOptions extends BackupUploadBaseOptions {
|
|
13
|
+
provider: "gdrive";
|
|
14
|
+
config: VisionClawConfig;
|
|
15
|
+
ownerEmail: string;
|
|
16
|
+
}
|
|
17
|
+
export interface TosBackupUploadOptions extends BackupUploadBaseOptions {
|
|
18
|
+
provider: "tos";
|
|
19
|
+
tos: {
|
|
20
|
+
accessKeyId: string;
|
|
21
|
+
accessKeySecret: string;
|
|
22
|
+
bucket: string;
|
|
23
|
+
region: string;
|
|
24
|
+
endpoint: string;
|
|
25
|
+
publicEndpoint: string;
|
|
26
|
+
signedUrlExpiresSeconds: number;
|
|
27
|
+
key: string;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export type BackupUploadOptions = GdriveBackupUploadOptions | TosBackupUploadOptions;
|
|
31
|
+
export interface BackupUploadResult {
|
|
32
|
+
provider: BackupProvider;
|
|
33
|
+
location: string;
|
|
34
|
+
signedUrl?: string;
|
|
35
|
+
key?: string;
|
|
36
|
+
bucket?: string;
|
|
37
|
+
sizeBytes?: number;
|
|
38
|
+
expiresAt?: string;
|
|
39
|
+
}
|
|
40
|
+
export declare function buildBackupTosKey(config: VisionClawConfig, zipName: string): string;
|
|
41
|
+
export declare function uploadBackup(options: BackupUploadOptions): Promise<BackupUploadResult>;
|
|
42
|
+
export declare function uploadBackupToGoogleDrive(options: GdriveBackupUploadOptions): Promise<BackupUploadResult>;
|
|
43
|
+
export declare function uploadBackupToTos(options: TosBackupUploadOptions): Promise<BackupUploadResult>;
|
|
44
|
+
//# sourceMappingURL=backup-uploader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup-uploader.d.ts","sourceRoot":"","sources":["../../src/agent/backup-uploader.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE9C,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACvD;AAED,MAAM,WAAW,yBAA0B,SAAQ,uBAAuB;IACxE,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAuB,SAAQ,uBAAuB;IACrE,QAAQ,EAAE,KAAK,CAAC;IAChB,GAAG,EAAE;QACH,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,uBAAuB,EAAE,MAAM,CAAC;QAChC,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED,MAAM,MAAM,mBAAmB,GAAG,yBAAyB,GAAG,sBAAsB,CAAC;AAErF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAWD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnF;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAK5F;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,kBAAkB,CAAC,CAuB7B;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,kBAAkB,CAAC,CAuC7B"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import os from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { getProfile } from "../config/index.js";
|
|
5
|
+
import { GoogleDriveClient } from "../drive/google-drive.js";
|
|
6
|
+
import { createTosSignedUrl, formatTosUri, uploadTosObject } from "../tos-storage.js";
|
|
7
|
+
function slugify(value) {
|
|
8
|
+
const slug = value
|
|
9
|
+
.trim()
|
|
10
|
+
.toLowerCase()
|
|
11
|
+
.replace(/[^a-z0-9._-]+/g, "-")
|
|
12
|
+
.replace(/^-+|-+$/g, "");
|
|
13
|
+
return slug || "unknown";
|
|
14
|
+
}
|
|
15
|
+
export function buildBackupTosKey(config, zipName) {
|
|
16
|
+
return `backups/${slugify(config.agentName)}/${slugify(getProfile())}/${zipName}`;
|
|
17
|
+
}
|
|
18
|
+
export async function uploadBackup(options) {
|
|
19
|
+
if (options.provider === "gdrive") {
|
|
20
|
+
return uploadBackupToGoogleDrive(options);
|
|
21
|
+
}
|
|
22
|
+
return uploadBackupToTos(options);
|
|
23
|
+
}
|
|
24
|
+
export async function uploadBackupToGoogleDrive(options) {
|
|
25
|
+
const drive = new GoogleDriveClient(options.config);
|
|
26
|
+
const uploaded = await drive.uploadFile({
|
|
27
|
+
localPath: options.localPath,
|
|
28
|
+
name: options.name,
|
|
29
|
+
mimeType: options.contentType,
|
|
30
|
+
onProgress: (uploadedBytes) => {
|
|
31
|
+
options.onProgress?.({ uploadedBytes });
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
await drive.shareFile({
|
|
35
|
+
fileId: uploaded.id,
|
|
36
|
+
email: options.ownerEmail,
|
|
37
|
+
role: "reader",
|
|
38
|
+
sendNotification: false,
|
|
39
|
+
});
|
|
40
|
+
return {
|
|
41
|
+
provider: "gdrive",
|
|
42
|
+
location: uploaded.webViewLink ?? `https://drive.google.com/file/d/${uploaded.id}/view`,
|
|
43
|
+
sizeBytes: fs.statSync(options.localPath).size,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export async function uploadBackupToTos(options) {
|
|
47
|
+
const sizeBytes = fs.statSync(options.localPath).size;
|
|
48
|
+
const credentials = {
|
|
49
|
+
accessKeyId: options.tos.accessKeyId,
|
|
50
|
+
accessKeySecret: options.tos.accessKeySecret,
|
|
51
|
+
region: options.tos.region,
|
|
52
|
+
endpoint: options.tos.endpoint,
|
|
53
|
+
};
|
|
54
|
+
await uploadTosObject({
|
|
55
|
+
filePath: options.localPath,
|
|
56
|
+
bucket: options.tos.bucket,
|
|
57
|
+
key: options.tos.key,
|
|
58
|
+
credentials,
|
|
59
|
+
contentType: options.contentType,
|
|
60
|
+
checkpointDir: path.join(os.tmpdir(), ".tos-backup-checkpoints"),
|
|
61
|
+
onProgress: (progress) => {
|
|
62
|
+
options.onProgress?.({ uploadedBytes: progress.uploadedBytes });
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
const signedUrl = createTosSignedUrl({
|
|
66
|
+
bucket: options.tos.bucket,
|
|
67
|
+
key: options.tos.key,
|
|
68
|
+
credentials,
|
|
69
|
+
expiresSeconds: options.tos.signedUrlExpiresSeconds,
|
|
70
|
+
publicEndpoint: options.tos.publicEndpoint,
|
|
71
|
+
});
|
|
72
|
+
const expiresAt = new Date(Date.now() + options.tos.signedUrlExpiresSeconds * 1000).toISOString();
|
|
73
|
+
return {
|
|
74
|
+
provider: "tos",
|
|
75
|
+
location: formatTosUri(options.tos.bucket, options.tos.key),
|
|
76
|
+
signedUrl,
|
|
77
|
+
key: options.tos.key,
|
|
78
|
+
bucket: options.tos.bucket,
|
|
79
|
+
sizeBytes,
|
|
80
|
+
expiresAt,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=backup-uploader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup-uploader.js","sourceRoot":"","sources":["../../src/agent/backup-uploader.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/backup.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type BackupProvider, type BackupUploadResult } from "./backup-uploader.js";
|
|
1
2
|
import type { VisionClawConfig } from "../config/types.js";
|
|
2
3
|
/**
|
|
3
4
|
* Create a ZIP backup of VisionClaw profile data and upload it to Google Drive.
|
|
@@ -8,5 +9,10 @@ import type { VisionClawConfig } from "../config/types.js";
|
|
|
8
9
|
*
|
|
9
10
|
* @returns Shareable Google Drive link for the uploaded ZIP.
|
|
10
11
|
*/
|
|
11
|
-
export
|
|
12
|
+
export interface BackupRunOptions {
|
|
13
|
+
provider?: BackupProvider;
|
|
14
|
+
signedUrlExpiresSeconds?: number;
|
|
15
|
+
}
|
|
16
|
+
export type BackupResult = BackupUploadResult;
|
|
17
|
+
export declare function runBackup(config: VisionClawConfig, ownerEmail: string, options?: BackupRunOptions): Promise<BackupResult>;
|
|
12
18
|
//# sourceMappingURL=backup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/agent/backup.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/agent/backup.ts"],"names":[],"mappings":"AAOA,OAAO,EAAmC,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAErH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAib3D;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAE9C,wBAAsB,SAAS,CAC7B,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,YAAY,CAAC,CA2OvB"}
|