zor-ai 0.8.12 → 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.
Files changed (2) hide show
  1. package/install.js +42 -19
  2. 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 < releaseInfo.requiredBinaries.length; i++) {
466
- var binaryName = releaseInfo.requiredBinaries[i];
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 === binaryName;
488
+ return item.entryName === fileName;
469
489
  });
470
490
 
471
491
  if (!entry) {
472
492
  throw new Error(
473
- "Release bundle is missing required binary " + binaryName
493
+ "Release bundle is missing required " + kind + " " + fileName
474
494
  );
475
495
  }
476
496
 
477
- fs.writeFileSync(path.join(BIN_DIR, binaryName), entry.getData());
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
- for (var i = 0; i < releaseInfo.requiredBinaries.length; i++) {
520
- var binaryName = releaseInfo.requiredBinaries[i];
521
- var expectedHash = parseChecksumFile(checksumsData, binaryName);
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 binary " + binaryName
545
+ "Could not find checksum for required file " + fileName
525
546
  );
526
547
  }
527
548
 
528
- var binaryPath = path.join(BIN_DIR, binaryName);
529
- if (!fs.existsSync(binaryPath)) {
530
- throw new Error("Required binary was not extracted: " + binaryName);
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(binaryPath, expectedHash);
554
+ var valid = await verifyChecksum(filePath, expectedHash);
534
555
  if (!valid) {
535
- throw new Error("SHA256 checksum mismatch for " + binaryName);
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
- for (var i = 0; i < releaseInfo.requiredBinaries.length; i++) {
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, releaseInfo.requiredBinaries[i]));
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(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zor-ai",
3
- "version": "0.8.12",
3
+ "version": "0.8.16",
4
4
  "description": "The Agent That Lives - daemon-first AI agent runtime",
5
5
  "license": "MIT",
6
6
  "homepage": "https://zorai.app",