zor-ai 0.8.13 → 0.8.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/install.js +42 -19
- package/package.json +1 -1
package/install.js
CHANGED
|
@@ -22,26 +22,37 @@ const PLATFORM_MAP = {
|
|
|
22
22
|
archivePlatform: "linux-x86_64",
|
|
23
23
|
checksumPlatform: "linux-x86_64",
|
|
24
24
|
requiredBinaries: ["zorai", "zorai-daemon", "zorai-tui", "zorai-gateway", "zorai-mcp", "zorai-desktop"],
|
|
25
|
+
requiredAssets: [],
|
|
25
26
|
},
|
|
26
27
|
"linux-arm64": {
|
|
27
28
|
archivePlatform: "linux-aarch64",
|
|
28
29
|
checksumPlatform: "linux-aarch64",
|
|
29
|
-
requiredBinaries: ["zorai", "zorai-daemon", "zorai-tui", "zorai-gateway", "zorai-mcp"],
|
|
30
|
+
requiredBinaries: ["zorai", "zorai-daemon", "zorai-tui", "zorai-gateway", "zorai-mcp", "zorai-desktop"],
|
|
31
|
+
requiredAssets: [],
|
|
30
32
|
},
|
|
31
33
|
"darwin-arm64": {
|
|
32
34
|
archivePlatform: "darwin-arm64",
|
|
33
35
|
checksumPlatform: "darwin-arm64",
|
|
34
|
-
requiredBinaries: ["zorai", "zorai-daemon", "zorai-tui", "zorai-gateway", "zorai-mcp"],
|
|
36
|
+
requiredBinaries: ["zorai", "zorai-daemon", "zorai-tui", "zorai-gateway", "zorai-mcp", "zorai-desktop"],
|
|
37
|
+
requiredAssets: ["zorai-desktop.app.zip"],
|
|
35
38
|
},
|
|
36
39
|
"darwin-x64": {
|
|
37
40
|
archivePlatform: "darwin-x86_64",
|
|
38
41
|
checksumPlatform: "darwin-x86_64",
|
|
39
|
-
requiredBinaries: ["zorai", "zorai-daemon", "zorai-tui", "zorai-gateway", "zorai-mcp"],
|
|
42
|
+
requiredBinaries: ["zorai", "zorai-daemon", "zorai-tui", "zorai-gateway", "zorai-mcp", "zorai-desktop"],
|
|
43
|
+
requiredAssets: ["zorai-desktop.app.zip"],
|
|
40
44
|
},
|
|
41
45
|
"win32-x64": {
|
|
42
46
|
archivePlatform: "windows-x64",
|
|
43
47
|
checksumPlatform: "windows-x64",
|
|
44
48
|
requiredBinaries: ["zorai.exe", "zorai-daemon.exe", "zorai-tui.exe", "zorai-gateway.exe", "zorai-mcp.exe", "zorai-desktop.exe"],
|
|
49
|
+
requiredAssets: [],
|
|
50
|
+
},
|
|
51
|
+
"win32-arm64": {
|
|
52
|
+
archivePlatform: "windows-arm64",
|
|
53
|
+
checksumPlatform: "windows-arm64",
|
|
54
|
+
requiredBinaries: ["zorai.exe", "zorai-daemon.exe", "zorai-tui.exe", "zorai-gateway.exe", "zorai-mcp.exe", "zorai-desktop.exe"],
|
|
55
|
+
requiredAssets: [],
|
|
45
56
|
},
|
|
46
57
|
};
|
|
47
58
|
|
|
@@ -260,6 +271,7 @@ function getReleaseAssetInfo(platform, arch, version) {
|
|
|
260
271
|
checksumName: "SHA256SUMS-" + target.checksumPlatform + ".txt",
|
|
261
272
|
bundleChecksumName: "SHA256SUMS.txt",
|
|
262
273
|
requiredBinaries: target.requiredBinaries.slice(),
|
|
274
|
+
requiredAssets: target.requiredAssets.slice(),
|
|
263
275
|
skillsArchiveRoot: "skills",
|
|
264
276
|
guidelinesArchiveRoot: "guidelines",
|
|
265
277
|
};
|
|
@@ -458,23 +470,31 @@ async function maybeRefreshDaemonAfterInstall(options, installWork, deps) {
|
|
|
458
470
|
}
|
|
459
471
|
|
|
460
472
|
function extractRequiredBinaries(archiveData, releaseInfo) {
|
|
473
|
+
extractRequiredFiles(archiveData, releaseInfo.requiredBinaries, "binary");
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
function extractRequiredAssets(archiveData, releaseInfo) {
|
|
477
|
+
extractRequiredFiles(archiveData, releaseInfo.requiredAssets || [], "asset");
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
function extractRequiredFiles(archiveData, requiredFiles, kind) {
|
|
461
481
|
var AdmZip = require("adm-zip");
|
|
462
482
|
var archive = new AdmZip(archiveData);
|
|
463
483
|
var entries = archive.getEntries();
|
|
464
484
|
|
|
465
|
-
for (var i = 0; i <
|
|
466
|
-
var
|
|
485
|
+
for (var i = 0; i < requiredFiles.length; i++) {
|
|
486
|
+
var fileName = requiredFiles[i];
|
|
467
487
|
var entry = entries.find(function (item) {
|
|
468
|
-
return item.entryName ===
|
|
488
|
+
return item.entryName === fileName;
|
|
469
489
|
});
|
|
470
490
|
|
|
471
491
|
if (!entry) {
|
|
472
492
|
throw new Error(
|
|
473
|
-
"Release bundle is missing required
|
|
493
|
+
"Release bundle is missing required " + kind + " " + fileName
|
|
474
494
|
);
|
|
475
495
|
}
|
|
476
496
|
|
|
477
|
-
fs.writeFileSync(path.join(BIN_DIR,
|
|
497
|
+
fs.writeFileSync(path.join(BIN_DIR, fileName), entry.getData());
|
|
478
498
|
}
|
|
479
499
|
}
|
|
480
500
|
|
|
@@ -516,23 +536,24 @@ function extractBundledGuidelines(archiveData, releaseInfo, guidelinesDir) {
|
|
|
516
536
|
}
|
|
517
537
|
|
|
518
538
|
async function verifyExtractedBinaries(checksumsData, releaseInfo) {
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
var
|
|
539
|
+
var requiredFiles = releaseInfo.requiredBinaries.concat(releaseInfo.requiredAssets || []);
|
|
540
|
+
for (var i = 0; i < requiredFiles.length; i++) {
|
|
541
|
+
var fileName = requiredFiles[i];
|
|
542
|
+
var expectedHash = parseChecksumFile(checksumsData, fileName);
|
|
522
543
|
if (!expectedHash) {
|
|
523
544
|
throw new Error(
|
|
524
|
-
"Could not find checksum for required
|
|
545
|
+
"Could not find checksum for required file " + fileName
|
|
525
546
|
);
|
|
526
547
|
}
|
|
527
548
|
|
|
528
|
-
var
|
|
529
|
-
if (!fs.existsSync(
|
|
530
|
-
throw new Error("Required
|
|
549
|
+
var filePath = path.join(BIN_DIR, fileName);
|
|
550
|
+
if (!fs.existsSync(filePath)) {
|
|
551
|
+
throw new Error("Required file was not extracted: " + fileName);
|
|
531
552
|
}
|
|
532
553
|
|
|
533
|
-
var valid = await verifyChecksum(
|
|
554
|
+
var valid = await verifyChecksum(filePath, expectedHash);
|
|
534
555
|
if (!valid) {
|
|
535
|
-
throw new Error("SHA256 checksum mismatch for " +
|
|
556
|
+
throw new Error("SHA256 checksum mismatch for " + fileName);
|
|
536
557
|
}
|
|
537
558
|
}
|
|
538
559
|
}
|
|
@@ -542,9 +563,10 @@ function cleanupExtractedBinaries(releaseInfo) {
|
|
|
542
563
|
return;
|
|
543
564
|
}
|
|
544
565
|
|
|
545
|
-
|
|
566
|
+
var requiredFiles = releaseInfo.requiredBinaries.concat(releaseInfo.requiredAssets || []);
|
|
567
|
+
for (var i = 0; i < requiredFiles.length; i++) {
|
|
546
568
|
try {
|
|
547
|
-
fs.unlinkSync(path.join(BIN_DIR,
|
|
569
|
+
fs.unlinkSync(path.join(BIN_DIR, requiredFiles[i]));
|
|
548
570
|
} catch (_e) {
|
|
549
571
|
/* ignore cleanup errors */
|
|
550
572
|
}
|
|
@@ -619,6 +641,7 @@ async function main() {
|
|
|
619
641
|
async function () {
|
|
620
642
|
console.log("zorai: extracting binaries, skills, and guidelines...");
|
|
621
643
|
extractRequiredBinaries(archiveData, releaseInfo);
|
|
644
|
+
extractRequiredAssets(archiveData, releaseInfo);
|
|
622
645
|
extractBundledSkills(archiveData, releaseInfo, runtimeSkillsDir);
|
|
623
646
|
extractBundledGuidelines(archiveData, releaseInfo, runtimeGuidelinesDir);
|
|
624
647
|
console.log(
|