@elizaos/app-core 2.0.3-beta.3 → 2.0.3-beta.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elizaos/app-core",
3
- "version": "2.0.3-beta.3",
3
+ "version": "2.0.3-beta.4",
4
4
  "description": "Shared application core for elizaOS white-label agent apps.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -155,22 +155,22 @@
155
155
  "three": "^0.184.0"
156
156
  },
157
157
  "optionalDependencies": {
158
- "@elizaos/capacitor-appblocker": "2.0.3-beta.3",
159
- "@elizaos/capacitor-bun-runtime": "2.0.3-beta.3",
160
- "@elizaos/capacitor-camera": "2.0.3-beta.3",
161
- "@elizaos/capacitor-canvas": "2.0.3-beta.3",
162
- "@elizaos/capacitor-contacts": "2.0.3-beta.3",
163
- "@elizaos/capacitor-gateway": "2.0.3-beta.3",
164
- "@elizaos/capacitor-location": "2.0.3-beta.3",
165
- "@elizaos/capacitor-messages": "2.0.3-beta.3",
166
- "@elizaos/capacitor-mobile-agent-bridge": "2.0.3-beta.3",
167
- "@elizaos/capacitor-mobile-signals": "2.0.3-beta.3",
168
- "@elizaos/capacitor-phone": "2.0.3-beta.3",
169
- "@elizaos/capacitor-screencapture": "2.0.3-beta.3",
170
- "@elizaos/capacitor-swabble": "2.0.3-beta.3",
171
- "@elizaos/capacitor-system": "2.0.3-beta.3",
172
- "@elizaos/capacitor-talkmode": "2.0.3-beta.3",
173
- "@elizaos/capacitor-websiteblocker": "2.0.3-beta.3",
158
+ "@elizaos/capacitor-appblocker": "2.0.3-beta.4",
159
+ "@elizaos/capacitor-bun-runtime": "2.0.3-beta.4",
160
+ "@elizaos/capacitor-camera": "2.0.3-beta.4",
161
+ "@elizaos/capacitor-canvas": "2.0.3-beta.4",
162
+ "@elizaos/capacitor-contacts": "2.0.3-beta.4",
163
+ "@elizaos/capacitor-gateway": "2.0.3-beta.4",
164
+ "@elizaos/capacitor-location": "2.0.3-beta.4",
165
+ "@elizaos/capacitor-messages": "2.0.3-beta.4",
166
+ "@elizaos/capacitor-mobile-agent-bridge": "2.0.3-beta.4",
167
+ "@elizaos/capacitor-mobile-signals": "2.0.3-beta.4",
168
+ "@elizaos/capacitor-phone": "2.0.3-beta.4",
169
+ "@elizaos/capacitor-screencapture": "2.0.3-beta.4",
170
+ "@elizaos/capacitor-swabble": "2.0.3-beta.4",
171
+ "@elizaos/capacitor-system": "2.0.3-beta.4",
172
+ "@elizaos/capacitor-talkmode": "2.0.3-beta.4",
173
+ "@elizaos/capacitor-websiteblocker": "2.0.3-beta.4",
174
174
  "sharp": "^0.34.5"
175
175
  },
176
176
  "dependencies": {
@@ -184,24 +184,24 @@
184
184
  "@capacitor/preferences": "^8.0.1",
185
185
  "@capacitor/push-notifications": "^8.0.0",
186
186
  "@clack/prompts": "^1.0.0",
187
- "@elizaos/core": "2.0.3-beta.3",
188
- "@elizaos/plugin-anthropic": "2.0.3-beta.3",
189
- "@elizaos/plugin-browser": "2.0.3-beta.3",
190
- "@elizaos/plugin-edge-tts": "2.0.3-beta.3",
191
- "@elizaos/plugin-elizacloud": "2.0.3-beta.3",
192
- "@elizaos/plugin-groq": "2.0.3-beta.3",
193
- "@elizaos/plugin-health": "2.0.3-beta.3",
194
- "@elizaos/plugin-local-inference": "2.0.3-beta.3",
195
- "@elizaos/plugin-openai": "2.0.3-beta.3",
196
- "@elizaos/plugin-registry": "2.0.3-beta.3",
197
- "@elizaos/plugin-sql": "2.0.3-beta.3",
198
- "@elizaos/plugin-wechat": "2.0.3-beta.3",
199
- "@elizaos/plugin-workflow": "2.0.3-beta.3",
200
- "@elizaos/registry": "2.0.3-beta.3",
201
- "@elizaos/shared": "2.0.3-beta.3",
202
- "@elizaos/skills": "2.0.3-beta.3",
203
- "@elizaos/ui": "2.0.3-beta.3",
204
- "@elizaos/vault": "2.0.3-beta.3",
187
+ "@elizaos/core": "2.0.3-beta.4",
188
+ "@elizaos/plugin-anthropic": "2.0.3-beta.4",
189
+ "@elizaos/plugin-browser": "2.0.3-beta.4",
190
+ "@elizaos/plugin-edge-tts": "2.0.3-beta.4",
191
+ "@elizaos/plugin-elizacloud": "2.0.3-beta.4",
192
+ "@elizaos/plugin-groq": "2.0.3-beta.4",
193
+ "@elizaos/plugin-health": "2.0.3-beta.4",
194
+ "@elizaos/plugin-local-inference": "2.0.3-beta.4",
195
+ "@elizaos/plugin-openai": "2.0.3-beta.4",
196
+ "@elizaos/plugin-registry": "2.0.3-beta.4",
197
+ "@elizaos/plugin-sql": "2.0.3-beta.4",
198
+ "@elizaos/plugin-wechat": "2.0.3-beta.4",
199
+ "@elizaos/plugin-workflow": "2.0.3-beta.4",
200
+ "@elizaos/registry": "2.0.3-beta.4",
201
+ "@elizaos/shared": "2.0.3-beta.4",
202
+ "@elizaos/skills": "2.0.3-beta.4",
203
+ "@elizaos/ui": "2.0.3-beta.4",
204
+ "@elizaos/vault": "2.0.3-beta.4",
205
205
  "@node-rs/argon2": "^2.0.2",
206
206
  "@upstash/redis": "^1.37.0",
207
207
  "chalk": "^5.3.0",
@@ -222,5 +222,5 @@
222
222
  },
223
223
  "module": "./index.js",
224
224
  "types": "./index.d.ts",
225
- "gitHead": "f54b0f4eaed317d59fa7dbcdce20f4cdb0734420"
225
+ "gitHead": "f76f55793a0fb8d6b869dd8ddce03970de061e34"
226
226
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elizaos/electrobun",
3
- "version": "2.0.3-beta.3",
3
+ "version": "2.0.3-beta.4",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "assets",
@@ -25,14 +25,14 @@
25
25
  "build:native-effects": "bash scripts/build-macos-effects.sh"
26
26
  },
27
27
  "dependencies": {
28
- "@elizaos/agent": "2.0.3-beta.3",
29
- "@elizaos/app-core": "2.0.3-beta.3",
30
- "@elizaos/plugin-browser": "2.0.3-beta.3",
31
- "@elizaos/plugin-capacitor-bridge": "2.0.3-beta.3",
32
- "@elizaos/plugin-registry": "2.0.3-beta.3",
33
- "@elizaos/plugin-remote-manifest": "2.0.3-beta.3",
34
- "@elizaos/plugin-streaming": "2.0.3-beta.3",
35
- "@elizaos/shared": "2.0.3-beta.3",
28
+ "@elizaos/agent": "2.0.3-beta.4",
29
+ "@elizaos/app-core": "2.0.3-beta.4",
30
+ "@elizaos/plugin-browser": "2.0.3-beta.4",
31
+ "@elizaos/plugin-capacitor-bridge": "2.0.3-beta.4",
32
+ "@elizaos/plugin-registry": "2.0.3-beta.4",
33
+ "@elizaos/plugin-remote-manifest": "2.0.3-beta.4",
34
+ "@elizaos/plugin-streaming": "2.0.3-beta.4",
35
+ "@elizaos/shared": "2.0.3-beta.4",
36
36
  "bonjour-service": "1.4.2",
37
37
  "electrobun": "^1.18.1"
38
38
  },
@@ -46,5 +46,5 @@
46
46
  "publishConfig": {
47
47
  "access": "public"
48
48
  },
49
- "gitHead": "f54b0f4eaed317d59fa7dbcdce20f4cdb0734420"
49
+ "gitHead": "f76f55793a0fb8d6b869dd8ddce03970de061e34"
50
50
  }
@@ -0,0 +1,110 @@
1
+ import fs from "node:fs";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+
5
+ /**
6
+ * Compare two semver-ish version strings (zig follows MAJOR.MINOR.PATCH for
7
+ * stable releases; dev builds add `-dev.NNN+sha` which we strip).
8
+ * Returns negative when `a < b`, positive when `a > b`, zero on equal.
9
+ */
10
+ export function compareSemver(a, b) {
11
+ const norm = (v) =>
12
+ String(v)
13
+ .replace(/^v/, "")
14
+ .split(/[-+]/)[0]
15
+ .split(".")
16
+ .map((n) => Number.parseInt(n, 10) || 0);
17
+ const aa = norm(a);
18
+ const bb = norm(b);
19
+ for (let i = 0; i < Math.max(aa.length, bb.length); i += 1) {
20
+ const x = aa[i] ?? 0;
21
+ const y = bb[i] ?? 0;
22
+ if (x !== y) return x - y;
23
+ }
24
+ return 0;
25
+ }
26
+
27
+ export function resolveAndroidNdkHostDir(
28
+ prebuiltRoot,
29
+ { platform = os.platform(), arch = os.arch(), entries } = {},
30
+ ) {
31
+ const dirs =
32
+ entries ??
33
+ (fs.existsSync(prebuiltRoot) ? fs.readdirSync(prebuiltRoot) : []);
34
+ const hostDirs = dirs
35
+ .filter((d) => /^(linux|darwin|windows)-(x86_64|aarch64|arm64)$/.test(d))
36
+ .sort();
37
+ const hostPrefix =
38
+ platform === "win32"
39
+ ? "windows"
40
+ : platform === "linux" || platform === "darwin"
41
+ ? platform
42
+ : null;
43
+ if (!hostPrefix) return null;
44
+
45
+ const preferredArch =
46
+ arch === "x64" ? "x86_64" : arch === "arm64" ? "arm64" : arch;
47
+ const archCandidates =
48
+ preferredArch === "arm64"
49
+ ? ["arm64", "aarch64", "x86_64"]
50
+ : [preferredArch, "x86_64"];
51
+ return (
52
+ archCandidates
53
+ .map((candidate) => `${hostPrefix}-${candidate}`)
54
+ .find((candidate) => hostDirs.includes(candidate)) ??
55
+ hostDirs.find((candidate) => candidate.startsWith(`${hostPrefix}-`)) ??
56
+ null
57
+ );
58
+ }
59
+
60
+ export function resolveHomebrewFormulaIncludeDirs(
61
+ formula,
62
+ prefixes = ["/opt/homebrew", "/usr/local"],
63
+ ) {
64
+ const includeDirs = [];
65
+ for (const prefix of prefixes) {
66
+ includeDirs.push(path.join(prefix, "opt", formula, "include"));
67
+ const cellar = path.join(prefix, "Cellar", formula);
68
+ if (!fs.existsSync(cellar)) continue;
69
+ for (const version of fs.readdirSync(cellar).sort(compareSemver)) {
70
+ includeDirs.push(path.join(cellar, version, "include"));
71
+ }
72
+ }
73
+ return includeDirs;
74
+ }
75
+
76
+ export function resolveDefaultAndroidAssetsDir({ root = process.cwd() } = {}) {
77
+ const appRelativeCandidates = [
78
+ path.join("packages", "app"),
79
+ path.join("apps", "app"),
80
+ path.join("eliza", "packages", "app"),
81
+ ];
82
+ for (const appRelative of appRelativeCandidates) {
83
+ const appRoot = path.join(root, appRelative);
84
+ if (
85
+ fs.existsSync(path.join(appRoot, "android")) ||
86
+ fs.existsSync(path.join(appRoot, "package.json"))
87
+ ) {
88
+ return path.join(
89
+ appRoot,
90
+ "android",
91
+ "app",
92
+ "src",
93
+ "main",
94
+ "assets",
95
+ "agent",
96
+ );
97
+ }
98
+ }
99
+ return path.join(
100
+ root,
101
+ "packages",
102
+ "app",
103
+ "android",
104
+ "app",
105
+ "src",
106
+ "main",
107
+ "assets",
108
+ "agent",
109
+ );
110
+ }
@@ -187,8 +187,20 @@ import {
187
187
  import { verifyFusedSymbols } from "../build-helpers/verify-fused-symbols.mjs";
188
188
  import { patchVulkanKernels } from "../kernel-patches/vulkan-kernels.mjs";
189
189
  import { resolveRepoRootFromImportMeta } from "../lib/repo-root.mjs";
190
+ import {
191
+ compareSemver,
192
+ resolveAndroidNdkHostDir,
193
+ resolveDefaultAndroidAssetsDir as resolveDefaultAndroidAssetsDirForRoot,
194
+ resolveHomebrewFormulaIncludeDirs,
195
+ } from "./compile-libllama-paths.mjs";
190
196
  import { main as compileShimMain } from "./compile-shim.mjs";
191
197
 
198
+ export {
199
+ compareSemver,
200
+ resolveAndroidNdkHostDir,
201
+ resolveHomebrewFormulaIncludeDirs,
202
+ };
203
+
192
204
  const here = path.dirname(fileURLToPath(import.meta.url));
193
205
  // Walk up from `eliza/packages/app-core/scripts/aosp/` until we hit
194
206
  // the host repo root (the directory with a top-level `package.json`).
@@ -401,55 +413,6 @@ export function parseAndroidTarget(target) {
401
413
  return { target, arch, backend, fused, androidAbi };
402
414
  }
403
415
 
404
- export function resolveAndroidNdkHostDir(
405
- prebuiltRoot,
406
- { platform = os.platform(), arch = os.arch(), entries } = {},
407
- ) {
408
- const dirs =
409
- entries ??
410
- (fs.existsSync(prebuiltRoot) ? fs.readdirSync(prebuiltRoot) : []);
411
- const hostDirs = dirs
412
- .filter((d) => /^(linux|darwin|windows)-(x86_64|aarch64|arm64)$/.test(d))
413
- .sort();
414
- const hostPrefix =
415
- platform === "win32"
416
- ? "windows"
417
- : platform === "linux" || platform === "darwin"
418
- ? platform
419
- : null;
420
- if (!hostPrefix) return null;
421
-
422
- const preferredArch =
423
- arch === "x64" ? "x86_64" : arch === "arm64" ? "arm64" : arch;
424
- const archCandidates =
425
- preferredArch === "arm64"
426
- ? ["arm64", "aarch64", "x86_64"]
427
- : [preferredArch, "x86_64"];
428
- return (
429
- archCandidates
430
- .map((candidate) => `${hostPrefix}-${candidate}`)
431
- .find((candidate) => hostDirs.includes(candidate)) ??
432
- hostDirs.find((candidate) => candidate.startsWith(`${hostPrefix}-`)) ??
433
- null
434
- );
435
- }
436
-
437
- export function resolveHomebrewFormulaIncludeDirs(
438
- formula,
439
- prefixes = ["/opt/homebrew", "/usr/local"],
440
- ) {
441
- const includeDirs = [];
442
- for (const prefix of prefixes) {
443
- includeDirs.push(path.join(prefix, "opt", formula, "include"));
444
- const cellar = path.join(prefix, "Cellar", formula);
445
- if (!fs.existsSync(cellar)) continue;
446
- for (const version of fs.readdirSync(cellar).sort(compareSemver)) {
447
- includeDirs.push(path.join(cellar, version, "include"));
448
- }
449
- }
450
- return includeDirs;
451
- }
452
-
453
416
  /**
454
417
  * GGML_VULKAN CMake flags for the android-arm64 Vulkan backend. Points cmake at
455
418
  * the NDK's host `glslc` (the shader compiler ggml-vulkan's codegen invokes),
@@ -609,39 +572,7 @@ export function resolveAndroidVulkanCmakeFlags({
609
572
  }
610
573
 
611
574
  export function resolveDefaultAndroidAssetsDir({ root = repoRoot } = {}) {
612
- const appRelativeCandidates = [
613
- path.join("packages", "app"),
614
- path.join("apps", "app"),
615
- path.join("eliza", "packages", "app"),
616
- ];
617
- for (const appRelative of appRelativeCandidates) {
618
- const appRoot = path.join(root, appRelative);
619
- if (
620
- fs.existsSync(path.join(appRoot, "android")) ||
621
- fs.existsSync(path.join(appRoot, "package.json"))
622
- ) {
623
- return path.join(
624
- appRoot,
625
- "android",
626
- "app",
627
- "src",
628
- "main",
629
- "assets",
630
- "agent",
631
- );
632
- }
633
- }
634
- return path.join(
635
- root,
636
- "packages",
637
- "app",
638
- "android",
639
- "app",
640
- "src",
641
- "main",
642
- "assets",
643
- "agent",
644
- );
575
+ return resolveDefaultAndroidAssetsDirForRoot({ root });
645
576
  }
646
577
 
647
578
  export function parseArgs(argv) {
@@ -774,28 +705,6 @@ export function parseArgs(argv) {
774
705
  return args;
775
706
  }
776
707
 
777
- /**
778
- * Compare two semver-ish version strings (zig follows MAJOR.MINOR.PATCH for
779
- * stable releases; dev builds add `-dev.NNN+sha` which we strip).
780
- * Returns negative when `a < b`, positive when `a > b`, zero on equal.
781
- */
782
- export function compareSemver(a, b) {
783
- const norm = (v) =>
784
- String(v)
785
- .replace(/^v/, "")
786
- .split(/[-+]/)[0]
787
- .split(".")
788
- .map((n) => Number.parseInt(n, 10) || 0);
789
- const aa = norm(a);
790
- const bb = norm(b);
791
- for (let i = 0; i < Math.max(aa.length, bb.length); i += 1) {
792
- const x = aa[i] ?? 0;
793
- const y = bb[i] ?? 0;
794
- if (x !== y) return x - y;
795
- }
796
- return 0;
797
- }
798
-
799
708
  /**
800
709
  * Probe the build host for a usable zig toolchain. Returns the absolute path
801
710
  * to the zig binary on success, or throws an Error with an install hint
@@ -6,7 +6,7 @@ import {
6
6
  resolveAndroidNdkHostDir,
7
7
  resolveDefaultAndroidAssetsDir,
8
8
  resolveHomebrewFormulaIncludeDirs,
9
- } from "./compile-libllama.mjs";
9
+ } from "./compile-libllama-paths.mjs";
10
10
 
11
11
  const tmpDirs = [];
12
12