@elizaos/app-core 2.0.0-beta.3 → 2.0.3-beta.3
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/agent-bridge.d.ts +27 -0
- package/agent-bridge.d.ts.map +1 -0
- package/agent-bridge.js +26 -0
- package/api/__tests__/sandbox-test-helpers.js +1 -1
- package/api/auth/audit.d.ts +1 -1
- package/api/auth/audit.js +1 -1
- package/api/auth/auth-context.d.ts +1 -1
- package/api/auth/auth-context.js +1 -1
- package/api/auth/bootstrap-token.d.ts +1 -1
- package/api/auth/bootstrap-token.js +2 -2
- package/api/auth/index.d.ts +9 -10
- package/api/auth/index.d.ts.map +1 -1
- package/api/auth/index.js +9 -10
- package/api/auth/passwords.js +2 -2
- package/api/auth/sensitive-rate-limit.d.ts +1 -4
- package/api/auth/sensitive-rate-limit.d.ts.map +1 -1
- package/api/auth/sensitive-rate-limit.js +6 -6
- package/api/auth/sessions.d.ts +1 -1
- package/api/auth/sessions.js +2 -2
- package/api/auth-bootstrap-routes.d.ts +7 -14
- package/api/auth-bootstrap-routes.d.ts.map +1 -1
- package/api/auth-bootstrap-routes.js +14 -27
- package/api/auth-pairing-routes.d.ts +17 -0
- package/api/auth-pairing-routes.d.ts.map +1 -0
- package/api/auth-pairing-routes.js +299 -0
- package/api/auth-session-routes.d.ts +2 -2
- package/api/auth-session-routes.d.ts.map +1 -1
- package/api/auth-session-routes.js +36 -15
- package/api/auth.d.ts +13 -20
- package/api/auth.d.ts.map +1 -1
- package/api/auth.js +32 -27
- package/api/automations-compat-routes.d.ts +1 -1
- package/api/automations-compat-routes.d.ts.map +1 -1
- package/api/automations-compat-routes.js +5 -5
- package/api/background-tasks-routes.d.ts +4 -0
- package/api/background-tasks-routes.d.ts.map +1 -0
- package/api/background-tasks-routes.js +63 -0
- package/api/catalog-routes.d.ts +1 -1
- package/api/catalog-routes.js +3 -3
- package/api/cloud-pair-route.d.ts +26 -0
- package/api/cloud-pair-route.d.ts.map +1 -0
- package/api/cloud-pair-route.js +222 -0
- package/api/cloud-voice-routes.d.ts +52 -0
- package/api/cloud-voice-routes.d.ts.map +1 -0
- package/api/cloud-voice-routes.js +50 -0
- package/api/compat-route-shared.d.ts +14 -7
- package/api/compat-route-shared.d.ts.map +1 -1
- package/api/compat-route-shared.js +27 -188
- package/api/credential-resolver.d.ts +2 -2
- package/api/credential-resolver.d.ts.map +1 -1
- package/api/credential-resolver.js +8 -2
- package/api/database-rows-compat-routes.d.ts +1 -1
- package/api/database-rows-compat-routes.d.ts.map +1 -1
- package/api/database-rows-compat-routes.js +69 -31
- package/api/dev-boot-history.d.ts +26 -0
- package/api/dev-boot-history.d.ts.map +1 -0
- package/api/dev-boot-history.js +69 -0
- package/api/dev-compat-routes.d.ts +6 -1
- package/api/dev-compat-routes.d.ts.map +1 -1
- package/api/dev-compat-routes.js +127 -4
- package/api/dev-console-log.d.ts +2 -2
- package/api/dev-console-log.d.ts.map +1 -1
- package/api/dev-console-log.js +8 -5
- package/api/dev-route-catalog.d.ts +58 -0
- package/api/dev-route-catalog.d.ts.map +1 -0
- package/api/dev-route-catalog.js +477 -0
- package/api/dev-stack.d.ts.map +1 -1
- package/api/dev-stack.js +6 -9
- package/api/drop-status-compat-route.d.ts +3 -0
- package/api/drop-status-compat-route.d.ts.map +1 -0
- package/api/drop-status-compat-route.js +12 -0
- package/api/first-run-routes.d.ts +4 -0
- package/api/first-run-routes.d.ts.map +1 -0
- package/api/first-run-routes.js +208 -0
- package/api/first-run-tts-route.d.ts +19 -0
- package/api/first-run-tts-route.d.ts.map +1 -0
- package/api/first-run-tts-route.js +59 -0
- package/api/internal-routes.d.ts +23 -0
- package/api/internal-routes.d.ts.map +1 -0
- package/api/internal-routes.js +203 -0
- package/api/ios-local-agent-transport.d.ts +36 -0
- package/api/ios-local-agent-transport.d.ts.map +1 -0
- package/api/ios-local-agent-transport.js +566 -0
- package/api/onboarding-voice-lines.d.ts +23 -0
- package/api/onboarding-voice-lines.d.ts.map +1 -0
- package/api/onboarding-voice-lines.js +8 -0
- package/api/perf-instrument.d.ts +43 -0
- package/api/perf-instrument.d.ts.map +1 -0
- package/api/perf-instrument.js +113 -0
- package/api/response.d.ts.map +1 -1
- package/api/response.js +14 -14
- package/api/runtime-mode-routes.d.ts +1 -1
- package/api/runtime-mode-routes.d.ts.map +1 -1
- package/api/runtime-mode-routes.js +2 -2
- package/api/secrets-inventory-routes.js +2 -2
- package/api/secrets-manager-routes.d.ts +1 -1
- package/api/secrets-manager-routes.d.ts.map +1 -1
- package/api/secrets-manager-routes.js +9 -10
- package/api/sensitive-request-routes.d.ts +2 -2
- package/api/sensitive-request-routes.js +5 -5
- package/api/server-config-filter.d.ts.map +1 -1
- package/api/server-config-filter.js +0 -1
- package/api/server-cors.d.ts.map +1 -1
- package/api/server-cors.js +13 -2
- package/api/server-first-run-helpers.d.ts +26 -0
- package/api/server-first-run-helpers.d.ts.map +1 -0
- package/api/server-first-run-helpers.js +268 -0
- package/api/server-security.js +1 -1
- package/api/server-startup.d.ts.map +1 -1
- package/api/server-startup.js +3 -4
- package/api/server-wallet-trade.js +1 -1
- package/api/server.d.ts +11 -11
- package/api/server.d.ts.map +1 -1
- package/api/server.js +227 -139
- package/api/setup-contract.d.ts +63 -0
- package/api/setup-contract.d.ts.map +1 -0
- package/api/setup-contract.js +39 -0
- package/api/training-benchmarks.d.ts +97 -0
- package/api/training-benchmarks.d.ts.map +1 -0
- package/api/training-benchmarks.js +329 -0
- package/api/workbench-compat-routes.d.ts +1 -1
- package/api/workbench-compat-routes.js +2 -2
- package/benchmark/cerebras-autowire.d.ts +28 -0
- package/benchmark/cerebras-autowire.d.ts.map +1 -0
- package/benchmark/cerebras-autowire.js +62 -0
- package/benchmark/lifeops-bench-handler.d.ts +36 -0
- package/benchmark/lifeops-bench-handler.d.ts.map +1 -1
- package/benchmark/lifeops-bench-handler.js +63 -1
- package/benchmark/lifeops-fake-backend.d.ts +39 -0
- package/benchmark/lifeops-fake-backend.d.ts.map +1 -1
- package/benchmark/lifeops-fake-backend.js +993 -21
- package/benchmark/mock-plugin.d.ts.map +1 -1
- package/benchmark/mock-plugin.js +0 -24
- package/benchmark/plugin.d.ts +2 -1
- package/benchmark/plugin.d.ts.map +1 -1
- package/benchmark/plugin.js +989 -68
- package/benchmark/replay-capture.d.ts +2 -2
- package/benchmark/replay-capture.d.ts.map +1 -1
- package/benchmark/replay-capture.js +3 -3
- package/benchmark/server-utils.d.ts +164 -11
- package/benchmark/server-utils.d.ts.map +1 -1
- package/benchmark/server-utils.js +625 -62
- package/benchmark/server.d.ts.map +1 -1
- package/benchmark/server.js +1962 -118
- package/boot-profile.d.ts +3 -0
- package/boot-profile.d.ts.map +1 -0
- package/boot-profile.js +30 -0
- package/browser.d.ts +23 -1
- package/browser.d.ts.map +1 -1
- package/browser.js +20 -1
- package/cli/argv.js +1 -1
- package/cli/banner.js +1 -1
- package/cli/command-format.js +2 -2
- package/cli/doctor/checks.d.ts.map +1 -1
- package/cli/doctor/checks.js +6 -6
- package/cli/plugins-cli.d.ts.map +1 -1
- package/cli/plugins-cli.js +82 -32
- package/cli/profile.d.ts.map +1 -1
- package/cli/profile.js +5 -4
- package/cli/program/build-program.js +4 -4
- package/cli/program/command-registry.d.ts.map +1 -1
- package/cli/program/command-registry.js +13 -11
- package/cli/program/help.js +5 -5
- package/cli/program/preaction.js +5 -5
- package/cli/program/register.auth.d.ts +27 -1
- package/cli/program/register.auth.d.ts.map +1 -1
- package/cli/program/register.auth.js +193 -12
- package/cli/program/register.capability-router.d.ts +29 -0
- package/cli/program/register.capability-router.d.ts.map +1 -0
- package/cli/program/register.capability-router.js +568 -0
- package/cli/program/register.config.js +1 -1
- package/cli/program/register.configure.d.ts.map +1 -1
- package/cli/program/register.configure.js +1 -1
- package/cli/program/register.dashboard.d.ts.map +1 -1
- package/cli/program/register.dashboard.js +17 -8
- package/cli/program/register.db.d.ts.map +1 -1
- package/cli/program/register.db.js +3 -4
- package/cli/program/register.doctor.js +7 -7
- package/cli/program/register.setup.d.ts.map +1 -1
- package/cli/program/register.setup.js +14 -10
- package/cli/program/register.start.d.ts.map +1 -1
- package/cli/program/register.start.js +5 -3
- package/cli/program/register.subclis.js +3 -3
- package/cli/program/register.update.d.ts +6 -0
- package/cli/program/register.update.d.ts.map +1 -1
- package/cli/program/register.update.js +58 -6
- package/cli/program.d.ts +1 -1
- package/cli/program.js +1 -1
- package/cli/run-main.js +4 -4
- package/config/app-config.d.ts +2 -0
- package/config/app-config.d.ts.map +1 -0
- package/config/app-config.js +1 -0
- package/connectors/capacitor-jsc.d.ts.map +1 -1
- package/connectors/capacitor-jsc.js +16 -10
- package/connectors/capacitor-quickjs.d.ts.map +1 -1
- package/connectors/capacitor-quickjs.js +18 -13
- package/connectors/capacitor-sqlite.d.ts.map +1 -1
- package/connectors/capacitor-sqlite.js +27 -12
- package/dispatch/approval-queue.d.ts +37 -0
- package/dispatch/approval-queue.d.ts.map +1 -0
- package/dispatch/approval-queue.js +25 -0
- package/dispatch/channel-registry.d.ts +30 -0
- package/dispatch/channel-registry.d.ts.map +1 -0
- package/dispatch/channel-registry.js +22 -0
- package/dispatch/connector-registry.d.ts +39 -0
- package/dispatch/connector-registry.d.ts.map +1 -0
- package/dispatch/connector-registry.js +24 -0
- package/dispatch/index.d.ts +14 -0
- package/dispatch/index.d.ts.map +1 -0
- package/dispatch/index.js +13 -0
- package/dispatch/send-policy.d.ts +36 -0
- package/dispatch/send-policy.d.ts.map +1 -0
- package/dispatch/send-policy.js +16 -0
- package/entry.js +28 -11
- package/first-run/first-run-config.d.ts +55 -0
- package/first-run/first-run-config.d.ts.map +1 -0
- package/first-run/first-run-config.js +178 -0
- package/first-run/runtime-target.d.ts +4 -0
- package/first-run/runtime-target.d.ts.map +1 -0
- package/first-run/runtime-target.js +13 -0
- package/index.d.ts +46 -34
- package/index.d.ts.map +1 -1
- package/index.js +53 -33
- package/package.json +166 -51
- package/packaging/PUBLISHING_GUIDE.md +20 -20
- package/packaging/debian/apt-repo-config/README.md +18 -0
- package/packaging/debian/apt-repo-config/conf/distributions +11 -0
- package/packaging/flatpak/README.md +26 -16
- package/packaging/flatpak/ai.elizaos.App.metainfo.xml +17 -12
- package/packaging/flatpak/ai.elizaos.App.store.yml +5 -5
- package/packaging/flatpak/ai.elizaos.App.yml +10 -24
- package/packaging/flatpak/elizaos-app-wrapper.store.sh +2 -2
- package/packaging/flatpak/generate-sources.sh +74 -0
- package/packaging/flatpak/node-sources.json +7930 -0
- package/packaging/inno/build-inno.ps1 +34 -9
- package/packaging/msix/AppxManifest.store.xml +1 -1
- package/packaging/msix/README.md +39 -19
- package/packaging/msix/build-msix.ps1 +44 -14
- package/packaging/snap/snapcraft.yaml +22 -21
- package/packaging/test-packaging.sh +2 -2
- package/permissions/types.d.ts +1 -1
- package/permissions/types.js +1 -1
- package/platform/elizaos-agent-browser-stub.d.ts +143 -0
- package/platform/elizaos-agent-browser-stub.d.ts.map +1 -0
- package/platform/elizaos-agent-browser-stub.js +157 -0
- package/platform/elizaos-plugin-elizacloud-browser-stub.d.ts +34 -0
- package/platform/elizaos-plugin-elizacloud-browser-stub.d.ts.map +1 -0
- package/platform/elizaos-plugin-elizacloud-browser-stub.js +51 -0
- package/platform/empty-node-module.d.ts +148 -0
- package/platform/empty-node-module.d.ts.map +1 -1
- package/platform/empty-node-module.js +140 -3
- package/platform/ios-runtime-backends.d.ts +83 -0
- package/platform/ios-runtime-backends.d.ts.map +1 -0
- package/platform/ios-runtime-backends.js +133 -0
- package/platform/ios-runtime-bridge.d.ts +15 -0
- package/platform/ios-runtime-bridge.d.ts.map +1 -0
- package/platform/ios-runtime-bridge.js +526 -0
- package/platform/native-library-policy.d.ts +23 -0
- package/platform/native-library-policy.d.ts.map +1 -0
- package/platform/native-library-policy.js +112 -0
- package/platform/native-plugin-entrypoints.d.ts +19 -0
- package/platform/native-plugin-entrypoints.d.ts.map +1 -0
- package/platform/native-plugin-entrypoints.js +29 -0
- package/platforms/android/README.md +68 -10
- package/platforms/android/app/build.gradle +291 -3
- package/platforms/android/app/capacitor.build.gradle +18 -1
- package/platforms/android/app/proguard-rules.pro +17 -2
- package/platforms/android/app/src/androidTest/java/ai/elizaos/app/ElizaOsInstrumentedTest.java +1 -1
- package/platforms/android/app/src/main/AndroidManifest.xml +335 -18
- package/platforms/android/app/src/main/assets/runners/eliza-tasks.js +177 -0
- package/platforms/android/app/src/main/elizavoice-jni/CMakeLists.txt +100 -0
- package/platforms/android/app/src/main/elizavoice-jni/elizavoice-jni.cpp +1629 -0
- package/platforms/android/app/src/main/java/ai/elizaos/app/AgentPlugin.java +111 -171
- package/platforms/android/app/src/main/java/ai/elizaos/app/AndroidVirtualizationBridge.java +284 -0
- package/platforms/android/app/src/main/java/ai/elizaos/app/BatteryOptimizationPlugin.java +95 -0
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaAccessibilityService.java +55 -0
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaAgentService.java +1283 -141
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaAndroidSystemBridge.java +83 -0
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaAssistActivity.java +50 -1
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaBionicInferenceServer.java +740 -0
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaBootReceiver.java +90 -8
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaBrowserActivity.java +2 -2
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaCalendarActivity.java +1 -1
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaCameraActivity.java +1 -1
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaClockActivity.java +2 -2
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaContactsActivity.java +1 -1
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaDialActivity.java +1 -1
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaInCallService.java +1 -1
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaMmsReceiver.java +1 -1
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaNativeBridge.java +22 -0
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaNotificationListenerService.java +45 -0
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaQuickActionsWidgetProvider.java +68 -0
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaShareActivity.java +132 -0
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaSmsComposeActivity.java +1 -1
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaSmsGatewayService.java +268 -0
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaSmsReceiver.java +12 -1
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaTasksWorker.java +194 -0
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaVoiceCaptureService.java +198 -0
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaVoiceNative.java +255 -0
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaVoicePlugin.java +505 -0
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaVoiceTileService.java +39 -0
- package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaWorkScheduler.java +60 -0
- package/platforms/android/app/src/main/java/ai/elizaos/app/GatewayConnectionService.java +53 -19
- package/platforms/android/app/src/main/java/ai/elizaos/app/MainActivity.java +160 -33
- package/platforms/android/app/src/main/java/ai/elizaos/app/ResourceProbePlugin.java +169 -0
- package/platforms/android/app/src/main/java/ai/elizaos/app/VoiceCapturePlugin.java +119 -0
- package/platforms/android/app/src/main/res/drawable/eliza_widget_background.xml +10 -0
- package/platforms/android/app/src/main/res/drawable/eliza_widget_button_background.xml +13 -0
- package/platforms/android/app/src/main/res/drawable/splash.png +0 -0
- package/platforms/android/app/src/main/res/drawable-land-hdpi/splash.png +0 -0
- package/platforms/android/app/src/main/res/drawable-land-mdpi/splash.png +0 -0
- package/platforms/android/app/src/main/res/drawable-land-xhdpi/splash.png +0 -0
- package/platforms/android/app/src/main/res/drawable-land-xxhdpi/splash.png +0 -0
- package/platforms/android/app/src/main/res/drawable-land-xxxhdpi/splash.png +0 -0
- package/platforms/android/app/src/main/res/drawable-port-hdpi/splash.png +0 -0
- package/platforms/android/app/src/main/res/drawable-port-mdpi/splash.png +0 -0
- package/platforms/android/app/src/main/res/drawable-port-xhdpi/splash.png +0 -0
- package/platforms/android/app/src/main/res/drawable-port-xxhdpi/splash.png +0 -0
- package/platforms/android/app/src/main/res/drawable-port-xxxhdpi/splash.png +0 -0
- package/platforms/android/app/src/main/res/layout/eliza_quick_actions_widget.xml +86 -0
- package/platforms/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +2 -1
- package/platforms/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +2 -1
- package/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png +0 -0
- package/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png +0 -0
- package/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
- package/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png +0 -0
- package/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png +0 -0
- package/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
- package/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png +0 -0
- package/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png +0 -0
- package/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
- package/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0
- package/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png +0 -0
- package/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- package/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0
- package/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png +0 -0
- package/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
- package/platforms/android/app/src/main/res/values/android_app_actions.xml +48 -0
- package/platforms/android/app/src/main/res/values/colors.xml +12 -0
- package/platforms/android/app/src/main/res/values/ic_launcher_background.xml +2 -2
- package/platforms/android/app/src/main/res/values/strings.xml +2 -2
- package/platforms/android/app/src/main/res/values/styles.xml +28 -1
- package/platforms/android/app/src/main/res/xml/eliza_accessibility_service.xml +9 -0
- package/platforms/android/app/src/main/res/xml/eliza_quick_actions_widget.xml +13 -0
- package/platforms/android/app/src/main/res/xml/shortcuts.xml +121 -0
- package/platforms/android/build.gradle +2 -2
- package/platforms/android/capacitor-cordova-android-plugins/build.gradle +9 -3
- package/platforms/android/capacitor-cordova-android-plugins/cordova.variables.gradle +6 -2
- package/platforms/android/capacitor-cordova-android-plugins/src/main/AndroidManifest.xml +7 -2
- package/platforms/android/capacitor-cordova-android-plugins/src/main/java/.gitkeep +0 -1
- package/platforms/android/capacitor.settings.gradle +66 -16
- package/platforms/android/gradle.properties +1 -0
- package/platforms/android/update-manifest/generate-manifest.mjs +97 -0
- package/platforms/android/update-manifest/schema.json +26 -0
- package/platforms/apple-store-entitlements.reviewed.json +155 -0
- package/platforms/electrobun/.generated/brand-config.json +3 -2
- package/platforms/electrobun/LICENSE +21 -0
- package/platforms/electrobun/README.md +15 -1
- package/platforms/electrobun/assets/appIcon.icns +0 -0
- package/platforms/electrobun/assets/appIcon.ico +0 -0
- package/platforms/electrobun/assets/appIcon.iconset/icon_128x128.png +0 -0
- package/platforms/electrobun/assets/appIcon.iconset/icon_128x128@2x.png +0 -0
- package/platforms/electrobun/assets/appIcon.iconset/icon_16x16.png +0 -0
- package/platforms/electrobun/assets/appIcon.iconset/icon_16x16@2x.png +0 -0
- package/platforms/electrobun/assets/appIcon.iconset/icon_256x256.png +0 -0
- package/platforms/electrobun/assets/appIcon.iconset/icon_256x256@2x.png +0 -0
- package/platforms/electrobun/assets/appIcon.iconset/icon_32x32.png +0 -0
- package/platforms/electrobun/assets/appIcon.iconset/icon_32x32@2x.png +0 -0
- package/platforms/electrobun/assets/appIcon.iconset/icon_512x512.png +0 -0
- package/platforms/electrobun/assets/brand-config.json +6 -6
- package/platforms/electrobun/biome.json +9 -9
- package/platforms/electrobun/docs/capability-collapse-matrix.json +318 -0
- package/platforms/electrobun/docs/capability-collapse-matrix.md +129 -0
- package/platforms/electrobun/docs/capability-routing.md +86 -0
- package/platforms/electrobun/docs/database-boot-policy.md +90 -0
- package/platforms/electrobun/docs/riscv64-port.md +175 -0
- package/platforms/electrobun/docs/startup-first-run-cleanup.md +18 -0
- package/platforms/electrobun/docs/trace-first-annotations.md +52 -0
- package/platforms/electrobun/docs/ui-boundary-audit.json +580 -0
- package/platforms/electrobun/docs/ui-boundary-audit.md +257 -0
- package/platforms/electrobun/electrobun.config.ts +591 -364
- package/platforms/electrobun/entitlements/JUSTIFICATIONS.md +141 -0
- package/platforms/electrobun/entitlements/README.md +34 -6
- package/platforms/electrobun/entitlements/mas-bun.entitlements +15 -0
- package/platforms/electrobun/entitlements/mas.entitlements +6 -4
- package/platforms/electrobun/native/macos/window-effects.mm +1526 -0
- package/platforms/electrobun/package.json +21 -13
- package/platforms/electrobun/remotes/fs/README.md +70 -0
- package/platforms/electrobun/remotes/fs/electrobun.config.ts +38 -0
- package/platforms/electrobun/remotes/fs/package.json +12 -0
- package/platforms/electrobun/remotes/fs/plugin.json +25 -0
- package/platforms/electrobun/remotes/fs/src/bun/errors.ts +57 -0
- package/platforms/electrobun/remotes/fs/src/bun/file-limits.ts +50 -0
- package/platforms/electrobun/remotes/fs/src/bun/fs-service.ts +389 -0
- package/platforms/electrobun/remotes/fs/src/bun/path-guard.ts +270 -0
- package/platforms/electrobun/remotes/fs/src/bun/protocol.ts +149 -0
- package/platforms/electrobun/remotes/fs/src/bun/worker.ts +174 -0
- package/platforms/electrobun/remotes/fs/src/dev/phase5-smoke.ts +171 -0
- package/platforms/electrobun/remotes/fs/src/web/index.html +8 -0
- package/platforms/electrobun/remotes/git/README.md +75 -0
- package/platforms/electrobun/remotes/git/electrobun.config.ts +44 -0
- package/platforms/electrobun/remotes/git/package.json +12 -0
- package/platforms/electrobun/remotes/git/plugin.json +31 -0
- package/platforms/electrobun/remotes/git/src/bun/errors.ts +69 -0
- package/platforms/electrobun/remotes/git/src/bun/git-command.ts +156 -0
- package/platforms/electrobun/remotes/git/src/bun/git-service.ts +446 -0
- package/platforms/electrobun/remotes/git/src/bun/operation-history.ts +124 -0
- package/platforms/electrobun/remotes/git/src/bun/protocol.ts +252 -0
- package/platforms/electrobun/remotes/git/src/bun/worker.ts +316 -0
- package/platforms/electrobun/remotes/git/src/dev/phase7-smoke.ts +141 -0
- package/platforms/electrobun/remotes/git/src/web/index.html +8 -0
- package/platforms/electrobun/remotes/local-model/README.md +138 -0
- package/platforms/electrobun/remotes/local-model/electrobun.config.ts +46 -0
- package/platforms/electrobun/remotes/local-model/package.json +12 -0
- package/platforms/electrobun/remotes/local-model/plugin.json +33 -0
- package/platforms/electrobun/remotes/local-model/src/bun/download-state.ts +115 -0
- package/platforms/electrobun/remotes/local-model/src/bun/eliza1-catalog.ts +405 -0
- package/platforms/electrobun/remotes/local-model/src/bun/errors.ts +74 -0
- package/platforms/electrobun/remotes/local-model/src/bun/hf-eliza1-client.ts +169 -0
- package/platforms/electrobun/remotes/local-model/src/bun/local-inference-api-client.ts +245 -0
- package/platforms/electrobun/remotes/local-model/src/bun/model-service.ts +490 -0
- package/platforms/electrobun/remotes/local-model/src/bun/protocol.ts +301 -0
- package/platforms/electrobun/remotes/local-model/src/bun/worker.ts +248 -0
- package/platforms/electrobun/remotes/local-model/src/dev/phase8-smoke.ts +116 -0
- package/platforms/electrobun/remotes/local-model/src/web/index.html +13 -0
- package/platforms/electrobun/remotes/pty/README.md +65 -0
- package/platforms/electrobun/remotes/pty/electrobun.config.ts +47 -0
- package/platforms/electrobun/remotes/pty/package.json +12 -0
- package/platforms/electrobun/remotes/pty/plugin.json +34 -0
- package/platforms/electrobun/remotes/pty/src/bun/errors.ts +57 -0
- package/platforms/electrobun/remotes/pty/src/bun/output-buffer.ts +127 -0
- package/platforms/electrobun/remotes/pty/src/bun/protocol.ts +192 -0
- package/platforms/electrobun/remotes/pty/src/bun/pty-service.ts +562 -0
- package/platforms/electrobun/remotes/pty/src/bun/worker.ts +218 -0
- package/platforms/electrobun/remotes/pty/src/dev/phase6-smoke.ts +127 -0
- package/platforms/electrobun/remotes/pty/src/web/index.html +8 -0
- package/platforms/electrobun/remotes/runtime/README.md +370 -0
- package/platforms/electrobun/remotes/runtime/electrobun.config.ts +48 -0
- package/platforms/electrobun/remotes/runtime/package.json +14 -0
- package/platforms/electrobun/remotes/runtime/plugin.json +30 -0
- package/platforms/electrobun/remotes/runtime/src/bun/api-client.ts +620 -0
- package/platforms/electrobun/remotes/runtime/src/bun/errors.ts +45 -0
- package/platforms/electrobun/remotes/runtime/src/bun/log-buffer.ts +33 -0
- package/platforms/electrobun/remotes/runtime/src/bun/protocol.ts +366 -0
- package/platforms/electrobun/remotes/runtime/src/bun/route-discovery.ts +419 -0
- package/platforms/electrobun/remotes/runtime/src/bun/runtime-manager.ts +423 -0
- package/platforms/electrobun/remotes/runtime/src/bun/sse-parser.ts +99 -0
- package/platforms/electrobun/remotes/runtime/src/bun/stream-manager.ts +887 -0
- package/platforms/electrobun/remotes/runtime/src/bun/worker.ts +1231 -0
- package/platforms/electrobun/remotes/runtime/src/dev/phase1-smoke.ts +34 -0
- package/platforms/electrobun/remotes/runtime/src/dev/phase2-smoke.ts +91 -0
- package/platforms/electrobun/remotes/runtime/src/dev/phase3-smoke.ts +137 -0
- package/platforms/electrobun/remotes/runtime/src/web/index.css +187 -0
- package/platforms/electrobun/remotes/runtime/src/web/index.html +76 -0
- package/platforms/electrobun/remotes/runtime/src/web/index.ts +192 -0
- package/platforms/electrobun/remotes/surface/README.md +201 -0
- package/platforms/electrobun/remotes/surface/electrobun.config.ts +38 -0
- package/platforms/electrobun/remotes/surface/package.json +12 -0
- package/platforms/electrobun/remotes/surface/plugin.json +28 -0
- package/platforms/electrobun/remotes/surface/src/bun/worker.ts +132 -0
- package/platforms/electrobun/remotes/surface/src/dev/phase4-smoke.ts +566 -0
- package/platforms/electrobun/remotes/surface/src/protocol/event-types.ts +84 -0
- package/platforms/electrobun/remotes/surface/src/protocol/runtime-client.ts +673 -0
- package/platforms/electrobun/remotes/surface/src/web/app.ts +595 -0
- package/platforms/electrobun/remotes/surface/src/web/index.css +460 -0
- package/platforms/electrobun/remotes/surface/src/web/index.html +466 -0
- package/platforms/electrobun/remotes/surface/src/web/index.ts +5 -0
- package/platforms/electrobun/remotes/surface/src/web/render.ts +455 -0
- package/platforms/electrobun/remotes/surface/src/web/state.ts +427 -0
- package/platforms/electrobun/scripts/build-macos-effects.sh +4 -0
- package/platforms/electrobun/scripts/ensure-build-folder.ts +28 -0
- package/platforms/electrobun/scripts/local-adhoc-sign-macos.ts +159 -159
- package/platforms/electrobun/scripts/postwrap-diagnostics.ts +424 -339
- package/platforms/electrobun/scripts/postwrap-sign-runtime-macos.ts +302 -271
- package/platforms/electrobun/scripts/smoke-test-windows.ps1 +17 -16
- package/platforms/electrobun/scripts/smoke-test.sh +5 -7
- package/platforms/electrobun/scripts/sync-web-assets.mjs +13 -13
- package/platforms/electrobun/scripts/verify-rpc-handlers.ts +109 -110
- package/platforms/electrobun/scripts/verify-windows-installer-proof.ps1 +3 -8
- package/platforms/electrobun/src/__stubs__/bun-ffi.ts +31 -31
- package/platforms/electrobun/src/__stubs__/electrobun-bun.ts +1 -1
- package/platforms/electrobun/src/agent-ready-state.ts +8 -8
- package/platforms/electrobun/src/agent-reset-from-main.test.ts +162 -0
- package/platforms/electrobun/src/agent-reset-from-main.ts +62 -62
- package/platforms/electrobun/src/agent-status-rpc.test.ts +95 -0
- package/platforms/electrobun/src/agent-status-rpc.ts +156 -0
- package/platforms/electrobun/src/api-base.test.ts +247 -0
- package/platforms/electrobun/src/api-base.ts +202 -93
- package/platforms/electrobun/src/application-menu-action-registry.ts +9 -9
- package/platforms/electrobun/src/application-menu.ts +341 -348
- package/platforms/electrobun/src/background-notice.ts +36 -36
- package/platforms/electrobun/src/boot-progress.test.ts +188 -0
- package/platforms/electrobun/src/boot-progress.ts +111 -0
- package/platforms/electrobun/src/brand-config.test.ts +39 -0
- package/platforms/electrobun/src/brand-config.ts +141 -129
- package/platforms/electrobun/src/bridge/browser-tabs-renderer-registry.ts +28 -28
- package/platforms/electrobun/src/bridge/electrobun-boot-config.ts +42 -0
- package/platforms/electrobun/src/bridge/electrobun-crypto-ready.ts +120 -0
- package/platforms/electrobun/src/bridge/electrobun-direct-rpc.ts +342 -357
- package/platforms/electrobun/src/bridge/electrobun-stub.ts +13 -13
- package/platforms/electrobun/src/browser-workspace-bridge-server.ts +285 -243
- package/platforms/electrobun/src/cloud-auth-window.ts +136 -136
- package/platforms/electrobun/src/cloud-disconnect-from-main.ts +90 -90
- package/platforms/electrobun/src/config-and-auth-rpc.test.ts +256 -0
- package/platforms/electrobun/src/config-and-auth-rpc.ts +302 -0
- package/platforms/electrobun/src/conversations-and-character-rpc.test.ts +185 -0
- package/platforms/electrobun/src/conversations-and-character-rpc.ts +131 -0
- package/platforms/electrobun/src/dashboard-rpc.test.ts +200 -0
- package/platforms/electrobun/src/dashboard-rpc.ts +344 -0
- package/platforms/electrobun/src/database/database-lock.ts +141 -0
- package/platforms/electrobun/src/database/database-mode.ts +149 -0
- package/platforms/electrobun/src/database/database-recovery.ts +72 -0
- package/platforms/electrobun/src/database/database-snapshot.ts +190 -0
- package/platforms/electrobun/src/database/database.test.ts +196 -0
- package/platforms/electrobun/src/database/index.ts +5 -0
- package/platforms/electrobun/src/database/pglite-paths.ts +100 -0
- package/platforms/electrobun/src/desktop-deep-link-events.test.ts +30 -0
- package/platforms/electrobun/src/desktop-deep-link-events.ts +17 -0
- package/platforms/electrobun/src/desktop-http-request.test.ts +102 -73
- package/platforms/electrobun/src/desktop-http-request.ts +97 -85
- package/platforms/electrobun/src/desktop-pill-config.test.ts +27 -0
- package/platforms/electrobun/src/desktop-pill-config.ts +40 -0
- package/platforms/electrobun/src/desktop-test-bridge-server.ts +232 -204
- package/platforms/electrobun/src/desktop-tray-config.test.ts +87 -0
- package/platforms/electrobun/src/desktop-tray-config.ts +84 -0
- package/platforms/electrobun/src/devtools-layout.ts +41 -41
- package/platforms/electrobun/src/diagnostic-format.test.ts +71 -0
- package/platforms/electrobun/src/diagnostic-format.ts +75 -36
- package/platforms/electrobun/src/dynamic-view-rpc-schema.test.ts +37 -0
- package/platforms/electrobun/src/dynamic-views/README.md +44 -0
- package/platforms/electrobun/src/dynamic-views/demo/agent-run-trace.html +135 -0
- package/platforms/electrobun/src/dynamic-views/errors.ts +29 -0
- package/platforms/electrobun/src/dynamic-views/host.test.ts +353 -0
- package/platforms/electrobun/src/dynamic-views/host.ts +332 -0
- package/platforms/electrobun/src/dynamic-views/index.ts +57 -0
- package/platforms/electrobun/src/dynamic-views/kiosk-canvas.ts +89 -0
- package/platforms/electrobun/src/dynamic-views/registry.test.ts +139 -0
- package/platforms/electrobun/src/dynamic-views/registry.ts +196 -0
- package/platforms/electrobun/src/dynamic-views/session-manager.test.ts +355 -0
- package/platforms/electrobun/src/dynamic-views/session-manager.ts +348 -0
- package/platforms/electrobun/src/dynamic-views/types.ts +105 -0
- package/platforms/electrobun/src/electrobun-boot-config.test.ts +50 -0
- package/platforms/electrobun/src/electrobun-config.test.ts +62 -0
- package/platforms/electrobun/src/electrobun-crypto-ready.test.ts +65 -0
- package/platforms/electrobun/src/electrobun-window-options.ts +25 -0
- package/platforms/electrobun/src/extension-rpc.test.ts +88 -0
- package/platforms/electrobun/src/extension-rpc.ts +102 -0
- package/platforms/electrobun/src/fatal-shutdown.test.ts +12 -16
- package/platforms/electrobun/src/fatal-shutdown.ts +1 -1
- package/platforms/electrobun/src/first-party-remotes.test.ts +169 -0
- package/platforms/electrobun/src/first-party-remotes.ts +297 -0
- package/platforms/electrobun/src/first-run-rpc.test.ts +192 -0
- package/platforms/electrobun/src/first-run-rpc.ts +146 -0
- package/platforms/electrobun/src/floating-chat-window.ts +181 -181
- package/platforms/electrobun/src/inbox-rpc.test.ts +123 -0
- package/platforms/electrobun/src/inbox-rpc.ts +158 -0
- package/platforms/electrobun/src/index.ts +2608 -2098
- package/platforms/electrobun/src/kiosk-mode.ts +50 -0
- package/platforms/electrobun/src/launch/index.ts +4 -0
- package/platforms/electrobun/src/launch/launch-dynamic-view.ts +37 -0
- package/platforms/electrobun/src/launch/launch-orchestrator.test.ts +224 -0
- package/platforms/electrobun/src/launch/launch-orchestrator.ts +456 -0
- package/platforms/electrobun/src/launch/launch-store.test.ts +97 -0
- package/platforms/electrobun/src/launch/launch-store.ts +134 -0
- package/platforms/electrobun/src/launch/types.ts +103 -0
- package/platforms/electrobun/src/launch/views/launch-diagnostics.html +205 -0
- package/platforms/electrobun/src/lifecycle/agent-ready-publish.test.ts +50 -0
- package/platforms/electrobun/src/lifecycle/agent-ready-publish.ts +27 -0
- package/platforms/electrobun/src/lifecycle/api-base-owner.test.ts +83 -0
- package/platforms/electrobun/src/lifecycle/api-base-owner.ts +63 -31
- package/platforms/electrobun/src/lifecycle/desktop-session-prime.ts +44 -44
- package/platforms/electrobun/src/logger.ts +14 -14
- package/platforms/electrobun/src/main-window-runtime.ts +83 -83
- package/platforms/electrobun/src/main-window-session.test.ts +109 -0
- package/platforms/electrobun/src/main-window-session.ts +87 -51
- package/platforms/electrobun/src/menu-reset-from-main.ts +158 -158
- package/platforms/electrobun/src/native/agent-env.test.ts +52 -0
- package/platforms/electrobun/src/native/agent-runtime-layout.test.ts +42 -0
- package/platforms/electrobun/src/native/agent-state-dir.test.ts +91 -0
- package/platforms/electrobun/src/native/agent.ts +2133 -1682
- package/platforms/electrobun/src/native/auth-bridge.test.ts +67 -0
- package/platforms/electrobun/src/native/auth-bridge.ts +464 -360
- package/platforms/electrobun/src/native/browser-workspace.ts +723 -471
- package/platforms/electrobun/src/native/camera.ts +50 -50
- package/platforms/electrobun/src/native/canvas.ts +444 -445
- package/platforms/electrobun/src/native/credentials.ts +678 -616
- package/platforms/electrobun/src/native/desktop-window.test.ts +416 -0
- package/platforms/electrobun/src/native/desktop.ts +2200 -2156
- package/platforms/electrobun/src/native/editor-bridge.ts +201 -201
- package/platforms/electrobun/src/native/file-watcher.ts +154 -154
- package/platforms/electrobun/src/native/gateway.ts +179 -180
- package/platforms/electrobun/src/native/gpu-window.ts +256 -256
- package/platforms/electrobun/src/native/index.ts +82 -74
- package/platforms/electrobun/src/native/location.test.ts +44 -0
- package/platforms/electrobun/src/native/location.ts +90 -80
- package/platforms/electrobun/src/native/loopback-port.ts +60 -60
- package/platforms/electrobun/src/native/mac-window-effects.ts +166 -104
- package/platforms/electrobun/src/native/music-player.ts +38 -38
- package/platforms/electrobun/src/native/permissions-shared.ts +249 -150
- package/platforms/electrobun/src/native/permissions.ts +301 -208
- package/platforms/electrobun/src/native/power-state.ts +129 -129
- package/platforms/electrobun/src/native/remote-plugin-host.test.ts +1394 -0
- package/platforms/electrobun/src/native/remote-plugin-host.ts +1541 -0
- package/platforms/electrobun/src/native/screencapture.ts +667 -573
- package/platforms/electrobun/src/native/steward.ts +207 -204
- package/platforms/electrobun/src/native/swabble.ts +68 -324
- package/platforms/electrobun/src/native/talkmode.ts +253 -422
- package/platforms/electrobun/src/native/webgpu-browser-support.test.ts +18 -0
- package/platforms/electrobun/src/native/webgpu-browser-support.ts +165 -147
- package/platforms/electrobun/src/native-onboarding.ts +270 -0
- package/platforms/electrobun/src/onboarding-overlay-window.ts +141 -0
- package/platforms/electrobun/src/persisted-deployment.ts +91 -0
- package/platforms/electrobun/src/pill-window.test.ts +91 -0
- package/platforms/electrobun/src/pill-window.ts +99 -0
- package/platforms/electrobun/src/preload-validation.ts +44 -44
- package/platforms/electrobun/src/preload.js +1 -1
- package/platforms/electrobun/src/print-electrobun-dev-settings-banner.ts +120 -120
- package/platforms/electrobun/src/renderer-api-proxy.test.ts +73 -0
- package/platforms/electrobun/src/renderer-api-proxy.ts +86 -0
- package/platforms/electrobun/src/renderer-static.test.ts +53 -0
- package/platforms/electrobun/src/renderer-static.ts +144 -57
- package/platforms/electrobun/src/rpc-handler-slices.ts +121 -0
- package/platforms/electrobun/src/rpc-handlers.test.ts +267 -0
- package/platforms/electrobun/src/rpc-handlers.ts +1306 -913
- package/platforms/electrobun/src/rpc-parse-utils.ts +57 -0
- package/platforms/electrobun/src/rpc-port-resolver.test.ts +45 -0
- package/platforms/electrobun/src/rpc-port-resolver.ts +31 -0
- package/platforms/electrobun/src/rpc-schema.ts +2556 -1619
- package/platforms/electrobun/src/runtime-layout.ts +105 -105
- package/platforms/electrobun/src/runtime-permissions.ts +95 -95
- package/platforms/electrobun/src/runtime-rpc.test.ts +126 -0
- package/platforms/electrobun/src/runtime-rpc.ts +237 -0
- package/platforms/electrobun/src/screenshot-dev-server.ts +87 -87
- package/platforms/electrobun/src/settings-mutations-rpc.test.ts +193 -0
- package/platforms/electrobun/src/settings-mutations-rpc.ts +220 -0
- package/platforms/electrobun/src/startup-trace.ts +274 -270
- package/platforms/electrobun/src/subscription-rpc.test.ts +89 -0
- package/platforms/electrobun/src/subscription-rpc.ts +192 -0
- package/platforms/electrobun/src/surface-windows.test.ts +355 -0
- package/platforms/electrobun/src/surface-windows.ts +410 -410
- package/platforms/electrobun/src/trace/README.md +73 -0
- package/platforms/electrobun/src/trace/errors.ts +21 -0
- package/platforms/electrobun/src/trace/index.ts +40 -0
- package/platforms/electrobun/src/trace/trace-dynamic-view.ts +40 -0
- package/platforms/electrobun/src/trace/trace-host-requests.ts +473 -0
- package/platforms/electrobun/src/trace/trace-service.test.ts +186 -0
- package/platforms/electrobun/src/trace/trace-service.ts +324 -0
- package/platforms/electrobun/src/trace/trace-store.test.ts +141 -0
- package/platforms/electrobun/src/trace/trace-store.ts +551 -0
- package/platforms/electrobun/src/trace/types.ts +250 -0
- package/platforms/electrobun/src/trace/views/agent-run-trace.html +311 -0
- package/platforms/electrobun/src/types/web-speech.d.ts +28 -28
- package/platforms/electrobun/src/types.ts +5 -5
- package/platforms/electrobun/src/update-availability.test.ts +72 -0
- package/platforms/electrobun/src/update-availability.ts +90 -0
- package/platforms/electrobun/src/update-rpc.test.ts +83 -0
- package/platforms/electrobun/src/update-rpc.ts +123 -0
- package/platforms/electrobun/src/voice/README.md +184 -0
- package/platforms/electrobun/src/voice/errors.ts +42 -0
- package/platforms/electrobun/src/voice/index.ts +78 -0
- package/platforms/electrobun/src/voice/types.ts +316 -0
- package/platforms/electrobun/src/voice/voice-host-requests.ts +259 -0
- package/platforms/electrobun/src/voice/voice-latency-budget.test.ts +66 -0
- package/platforms/electrobun/src/voice/voice-latency-budget.ts +243 -0
- package/platforms/electrobun/src/voice/voice-live-validation.test.ts +357 -0
- package/platforms/electrobun/src/voice/voice-live-validation.ts +838 -0
- package/platforms/electrobun/src/voice/voice-pipeline.ts +250 -0
- package/platforms/electrobun/src/voice/voice-playback-adapter.ts +31 -0
- package/platforms/electrobun/src/voice/voice-runtime-adapter.test.ts +213 -0
- package/platforms/electrobun/src/voice/voice-runtime-adapter.ts +687 -0
- package/platforms/electrobun/src/voice/voice-service.test.ts +587 -0
- package/platforms/electrobun/src/voice/voice-service.ts +1067 -0
- package/platforms/electrobun/src/voice/voice-stream-coordinator.test.ts +115 -0
- package/platforms/electrobun/src/voice/voice-stream-coordinator.ts +270 -0
- package/platforms/electrobun/src/voice/voice-trace.ts +97 -0
- package/platforms/electrobun/src/voice/voice-tts-chunker.test.ts +91 -0
- package/platforms/electrobun/src/voice/voice-tts-chunker.ts +194 -0
- package/platforms/electrobun/src/windows-cef-profile.ts +88 -88
- package/platforms/electrobun/tsconfig.json +88 -12
- package/platforms/electrobun/update-channels.json +22 -0
- package/platforms/electrobun/vitest.electrobun.config.ts +72 -42
- package/platforms/ios/App/App/App.entitlements +4 -0
- package/platforms/ios/App/App/AppDelegate.swift +80 -18
- package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ios-marketing-1024.png +0 -0
- package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-20x20@1x.png +0 -0
- package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-20x20@2x.png +0 -0
- package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-29x29@1x.png +0 -0
- package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-29x29@2x.png +0 -0
- package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-40x40@1x.png +0 -0
- package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-40x40@2x.png +0 -0
- package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-76x76@1x.png +0 -0
- package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-76x76@2x.png +0 -0
- package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-83_5x83_5@2x.png +0 -0
- package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-20x20@2x.png +0 -0
- package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-20x20@3x.png +0 -0
- package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-29x29@2x.png +0 -0
- package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-29x29@3x.png +0 -0
- package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-40x40@2x.png +0 -0
- package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-40x40@3x.png +0 -0
- package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-60x60@2x.png +0 -0
- package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-60x60@3x.png +0 -0
- package/platforms/ios/App/App/Base.lproj/LaunchScreen.storyboard +4 -9
- package/platforms/ios/App/App/ComputerUseBridge.swift +589 -0
- package/platforms/ios/App/App/DeviceActivityMonitorExtension/DeviceActivityMonitorExtension.entitlements +12 -0
- package/platforms/ios/App/App/DeviceActivityMonitorExtension/DeviceActivityMonitorExtension.swift +34 -0
- package/platforms/ios/App/App/DeviceActivityMonitorExtension/Info.plist +29 -0
- package/platforms/ios/App/App/DeviceActivityReportExtension/DeviceActivityReportExtension.entitlements +12 -0
- package/platforms/ios/App/App/DeviceActivityReportExtension/DeviceActivityReportExtension.swift +53 -0
- package/platforms/ios/App/App/DeviceActivityReportExtension/Info.plist +27 -0
- package/platforms/ios/App/App/ElizaAppIntents.swift +183 -0
- package/platforms/ios/App/App/ElizaIntentPlugin.swift +342 -5
- package/platforms/ios/App/App/Info.plist +17 -1
- package/platforms/ios/App/App/runners/eliza-tasks.js +177 -0
- package/platforms/ios/App/App.xcodeproj/project.pbxproj +262 -6
- package/platforms/ios/App/BroadcastExtension/SampleHandler.swift +100 -0
- package/platforms/ios/App/Podfile +5 -0
- package/platforms/ios/App/Podfile.lock +83 -59
- package/register-runtime-hooks.js +11 -5
- package/registry/index.d.ts +1 -5
- package/registry/index.d.ts.map +1 -1
- package/registry/index.js +10 -68
- package/runtime/android-avf-microdroid-bridge.d.ts +29 -0
- package/runtime/android-avf-microdroid-bridge.d.ts.map +1 -0
- package/runtime/android-avf-microdroid-bridge.js +149 -0
- package/runtime/api-dev-settings-banner.d.ts.map +1 -1
- package/runtime/api-dev-settings-banner.js +5 -13
- package/runtime/app-core-runtime-hooks.d.ts +21 -0
- package/runtime/app-core-runtime-hooks.d.ts.map +1 -0
- package/runtime/app-core-runtime-hooks.js +10 -0
- package/runtime/autonomy-policy.d.ts +2 -0
- package/runtime/autonomy-policy.d.ts.map +1 -0
- package/runtime/autonomy-policy.js +4 -0
- package/runtime/bundled-fused-lib.d.ts +36 -0
- package/runtime/bundled-fused-lib.d.ts.map +1 -0
- package/runtime/bundled-fused-lib.js +77 -0
- package/runtime/channel-plugin-map.d.ts +1 -5
- package/runtime/channel-plugin-map.d.ts.map +1 -1
- package/runtime/channel-plugin-map.js +11 -31
- package/runtime/desktop/AppWindowRenderer.d.ts +17 -0
- package/runtime/desktop/AppWindowRenderer.d.ts.map +1 -0
- package/runtime/desktop/AppWindowRenderer.js +360 -0
- package/runtime/desktop/DesktopSurfaceNavigationRuntime.d.ts +2 -0
- package/runtime/desktop/DesktopSurfaceNavigationRuntime.d.ts.map +1 -0
- package/runtime/desktop/DesktopSurfaceNavigationRuntime.js +41 -0
- package/runtime/desktop/DesktopTrayRuntime.d.ts +2 -0
- package/runtime/desktop/DesktopTrayRuntime.d.ts.map +1 -0
- package/runtime/desktop/DesktopTrayRuntime.js +174 -0
- package/runtime/desktop/DetachedShellRoot.d.ts +10 -0
- package/runtime/desktop/DetachedShellRoot.d.ts.map +1 -0
- package/runtime/desktop/DetachedShellRoot.js +111 -0
- package/runtime/desktop/index.d.ts +6 -0
- package/runtime/desktop/index.d.ts.map +1 -0
- package/runtime/desktop/index.js +5 -0
- package/runtime/desktop/tray-menu.d.ts +20 -0
- package/runtime/desktop/tray-menu.d.ts.map +1 -0
- package/runtime/desktop/tray-menu.js +143 -0
- package/runtime/dev-server.d.ts +1 -1
- package/runtime/dev-server.d.ts.map +1 -1
- package/runtime/dev-server.js +104 -19
- package/runtime/eliza.d.ts +75 -1
- package/runtime/eliza.d.ts.map +1 -1
- package/runtime/eliza.js +606 -122
- package/runtime/ensure-text-to-speech-handler.d.ts.map +1 -1
- package/runtime/ensure-text-to-speech-handler.js +10 -3
- package/runtime/mobile-safe-runtime.d.ts +181 -2
- package/runtime/mobile-safe-runtime.d.ts.map +1 -1
- package/runtime/mobile-safe-runtime.js +1019 -12
- package/runtime/mode/remote-forwarder.d.ts.map +1 -1
- package/runtime/mode/remote-forwarder.js +2 -2
- package/runtime/mode/route-mode-guard.d.ts +2 -3
- package/runtime/mode/route-mode-guard.d.ts.map +1 -1
- package/runtime/mode/route-mode-guard.js +4 -5
- package/runtime/mode/route-mode-matrix.d.ts +1 -1
- package/runtime/mode/route-mode-matrix.d.ts.map +1 -1
- package/runtime/mode/route-mode-matrix.js +14 -1
- package/runtime/mode/runtime-mode.d.ts +1 -1
- package/runtime/mode/runtime-mode.js +1 -1
- package/runtime/runtime-bootstrap-policy.d.ts.map +1 -1
- package/runtime/runtime-bootstrap-policy.js +14 -2
- package/runtime/telegram-standalone-handler.d.ts.map +1 -1
- package/runtime/telegram-standalone-handler.js +10 -9
- package/runtime/tts-cache-wiring.d.ts +29 -0
- package/runtime/tts-cache-wiring.d.ts.map +1 -0
- package/runtime/tts-cache-wiring.js +114 -0
- package/runtime/voice-warmup.d.ts +66 -0
- package/runtime/voice-warmup.d.ts.map +1 -0
- package/runtime/voice-warmup.js +101 -0
- package/scripts/android-sms-gateway-template.test.mjs +1014 -0
- package/scripts/aosp/README.md +29 -16
- package/scripts/aosp/compile-libllama-zig-pin.test.mjs +147 -0
- package/scripts/aosp/compile-libllama.mjs +1750 -267
- package/scripts/aosp/compile-libllama.test.mjs +133 -0
- package/scripts/aosp/compile-shim.mjs +68 -19
- package/scripts/aosp/deploy-pixel.mjs +405 -0
- package/scripts/aosp/lib/load-variant-config.mjs +3 -3
- package/scripts/aosp/llama-cpp-patches/README.md +8 -8
- package/scripts/aosp/llama-cpp-patches/apply-patches.mjs +23 -6
- package/scripts/aosp/llama-cpp-patches/polarquant/README.md +37 -0
- package/scripts/aosp/llama-cpp-patches/qjl/README.md +37 -0
- package/scripts/aosp/seccomp-shim/sigsys-handler-arm64.c +169 -0
- package/scripts/aosp/seccomp-shim/sigsys-handler-riscv64.c +217 -0
- package/scripts/aosp/smoke-cuttlefish.mjs +34 -4
- package/scripts/aosp/stage-default-models.mjs +59 -35
- package/scripts/aosp/stage-default-models.test.mjs +23 -0
- package/scripts/aosp/variant-config-schema.ts +2 -2
- package/scripts/assert-required-bundled-packages.test.ts +555 -0
- package/scripts/audit-apple-store-sandbox.mjs +146 -0
- package/scripts/audit-live-test-surface.mjs +5 -2
- package/scripts/build-capacitor-app.mjs +21 -0
- package/scripts/build-flatpak.mjs +5 -5
- package/scripts/build-helpers/arm64-simd.mjs +72 -0
- package/scripts/build-helpers/omnivoice-merged.mjs +87 -0
- package/scripts/build-helpers/verify-fused-symbols.mjs +600 -0
- package/scripts/build-helpers/verify-fused-symbols.test.mjs +0 -0
- package/scripts/build-image.sh +1 -1
- package/scripts/build-llama-cpp-mtp.mjs +488 -0
- package/scripts/build-native-plugins.mjs +230 -18
- package/scripts/build-patched-electrobun-cli.mjs +68 -10
- package/scripts/build-win.mjs +1 -1
- package/scripts/bun-riscv64/Dockerfile +418 -0
- package/scripts/bun-riscv64/README.md +316 -0
- package/scripts/bun-riscv64/build.sh +469 -0
- package/scripts/bun-riscv64/bun-patches/0001-config-add-riscv64-arch.patch +74 -0
- package/scripts/bun-riscv64/bun-patches/0002-flags-add-riscv64-march-mabi.patch +16 -0
- package/scripts/bun-riscv64/bun-patches/0003-zig-add-riscv64-target-triple-and-cpu.patch +26 -0
- package/scripts/bun-riscv64/bun-patches/0004-webkit-force-local-mode-on-riscv64.patch +33 -0
- package/scripts/bun-riscv64/bun-patches/0005-tinycc-disable-on-riscv64.patch +16 -0
- package/scripts/bun-riscv64/bun-patches/0006-build-add-riscv64-cli-validation.patch +15 -0
- package/scripts/bun-riscv64/bun-patches/0007-deps-per-dep-riscv64-checks.patch +24 -0
- package/scripts/bun-riscv64/bun-patches/0008-source-stabilize-riscv64-musl-build.patch +226 -0
- package/scripts/bun-riscv64/bun-patches/0009-disable-wasm-streaming-hooks-for-c-loop.patch +162 -0
- package/scripts/bun-riscv64/bun-patches/0010-disable-inspector-profiler-for-riscv64-c-loop.patch +80 -0
- package/scripts/bun-riscv64/bun-patches/0011-process-arch-add-riscv64.patch +23 -0
- package/scripts/bun-riscv64/bun-patches/0012-cpu-features-add-riscv64-fallback.patch +13 -0
- package/scripts/bun-riscv64/bun-patches/0013-disable-console-inspector-hooks-for-riscv64-c-loop.patch +43 -0
- package/scripts/bun-riscv64/bun-patches/0014-disable-custom-inspector-dispatchers-on-riscv64.patch +127 -0
- package/scripts/bun-riscv64/bun-patches/0015-disable-jsc-profiler-builtins-on-riscv64.patch +75 -0
- package/scripts/bun-riscv64/bun-patches/0016-node-vm-disable-jit-cached-data-on-riscv64-c-loop.patch +96 -0
- package/scripts/bun-riscv64/bun-patches/0017-disable-performance-domjit-signature-on-riscv64-c-loop.patch +34 -0
- package/scripts/bun-riscv64/bun-patches/0018-fix-serialized-script-identifier-big-endian-path.patch +19 -0
- package/scripts/bun-riscv64/bun-patches/0019-add-wtf-timer-fire-bridge-for-c-loop.patch +24 -0
- package/scripts/bun-riscv64/bun-patches/0020-run-riscv64-smoke-test-under-qemu.patch +13 -0
- package/scripts/bun-riscv64/bun-patches/0021-fix-riscv64-linux-open-flags.patch +25 -0
- package/scripts/bun-riscv64/bun-patches/0022-zlib-riscv64-generic-kernels.patch +25 -0
- package/scripts/bun-riscv64/bun-patches/README.md +127 -0
- package/scripts/bun-riscv64/bun-version.json +202 -0
- package/scripts/bun-riscv64/run-build.sh +162 -0
- package/scripts/bun-riscv64/rust-core/0001-riscv64-rust-core-port.patch +868 -0
- package/scripts/bun-riscv64/rust-core/0002-second-wave-riscv64-source-gaps.patch +130 -0
- package/scripts/bun-riscv64/rust-core/0003-third-wave-riscv64-crash-handler-gaps.patch +78 -0
- package/scripts/bun-riscv64/rust-core/0004-rust-target-cpu-riscv64.patch +39 -0
- package/scripts/bun-riscv64/rust-core/0005-fifth-wave-riscv64-source-gaps.patch +96 -0
- package/scripts/bun-riscv64/rust-core/0006-cpp-wasm-and-inspector-guards-riscv64.patch +91 -0
- package/scripts/bun-riscv64/rust-core/0007-bun-alloc-max-align-t-riscv64.patch +36 -0
- package/scripts/bun-riscv64/rust-core/0008-workspace-lints-warn-not-deny-riscv64.patch +75 -0
- package/scripts/bun-riscv64/rust-core/0009-zigglobalobject-wasm-streaming-guards-riscv64.patch +109 -0
- package/scripts/bun-riscv64/rust-core/0010-tcc-externs-stub-on-riscv64.patch +62 -0
- package/scripts/bun-riscv64/rust-core/0011-clippy-ptr-cast-lints-warn-riscv64.patch +61 -0
- package/scripts/bun-riscv64/rust-core/README.md +80 -0
- package/scripts/bun-riscv64/rust-core/webkit-patches/0003-disable-dfg-ftl-on-riscv64.patch +60 -0
- package/scripts/bun-riscv64/rust-core/webkit-patches/0004-riscv64-do-not-force-wasm-in-c-loop.patch +31 -0
- package/scripts/bun-riscv64/rust-core/webkit-patches/0005-domjit-effect-allow-no-dfg-c-loop.patch +40 -0
- package/scripts/bun-riscv64/rust-core/webkit-patches/0006-disable-usewasm-when-webassembly-compiled-out.patch +33 -0
- package/scripts/bun-riscv64/rust-core/webkit-patches/0007-restore-dropped-includes-and-llint-fwd-decl.patch +31 -0
- package/scripts/bun-riscv64/validate.sh +264 -0
- package/scripts/bun-riscv64/webkit-patches/0001-cherry-pick-llint-riscv64.recipe +155 -0
- package/scripts/bun-riscv64/webkit-patches/0002-cherry-pick-baseline-jit-riscv64.recipe +40 -0
- package/scripts/bun-riscv64/webkit-patches/0003-disable-dfg-ftl-on-riscv64.patch +60 -0
- package/scripts/bun-riscv64/webkit-patches/0004-riscv64-do-not-force-wasm-in-c-loop.patch +31 -0
- package/scripts/bun-riscv64/webkit-patches/0005-domjit-effect-allow-no-dfg-c-loop.patch +40 -0
- package/scripts/bun-riscv64/webkit-patches/0006-disable-usewasm-when-webassembly-compiled-out.patch +33 -0
- package/scripts/bun-riscv64/webkit-patches/0007-restore-dropped-includes-and-llint-fwd-decl.patch +72 -0
- package/scripts/bun-riscv64/webkit-patches/README.md +146 -0
- package/scripts/check-homepage-public-readiness.mjs +353 -0
- package/scripts/check-homepage-release-data.mjs +110 -0
- package/scripts/check-i18n.mjs +1 -1
- package/scripts/check-real-local-chat.ts +147 -0
- package/scripts/check-real-local-provisioning.ts +104 -0
- package/scripts/check-real-local-reset.ts +249 -0
- package/scripts/check-sms-gateway-completion-audit.mjs +428 -0
- package/scripts/check-sms-gateway-readiness.mjs +266 -0
- package/scripts/clean-repo.mjs +5 -5
- package/scripts/codesign-mas.mjs +222 -16
- package/scripts/collect-docker-runtime-deps.mjs +229 -0
- package/scripts/continue-sms-gateway-work.mjs +121 -0
- package/scripts/copy-runtime-node-modules.ts +1050 -195
- package/scripts/deploy-cloud-api-production-gateway.mjs +52 -0
- package/scripts/desktop-build.mjs +965 -98
- package/scripts/dev-platform.mjs +346 -102
- package/scripts/dev-startup-smoke.mjs +248 -0
- package/scripts/dev-ui.mjs +418 -176
- package/scripts/disable-local-eliza-workspace.mjs +35 -0
- package/scripts/docker-ci-smoke.sh +465 -96
- package/scripts/docker-entrypoint.sh +62 -1
- package/scripts/docker-entrypoint.test.ts +283 -0
- package/scripts/ensure-avatars.mjs +2 -2
- package/scripts/ensure-electrobun-core.mjs +1 -1
- package/scripts/ensure-generated-core-proto-js.mjs +1 -1
- package/scripts/ensure-type-package-aliases.mjs +62 -5
- package/scripts/ensure-vision-deps.mjs +20 -1
- package/scripts/entry.ts +1 -1
- package/scripts/ffi-stub/Makefile +64 -0
- package/scripts/ffi-stub/README.md +391 -0
- package/scripts/ffi-stub/asr-ffi-smoke.ts +139 -0
- package/scripts/ffi-stub/ffi-stub.c +539 -0
- package/scripts/ffi-stub/ffi.h +538 -0
- package/scripts/ffi-stub/libelizainference_stub.so +0 -0
- package/scripts/ffi-stub/tts-stream-ffi-smoke.ts +349 -0
- package/scripts/generate-first-run-voicelines.mjs +194 -0
- package/scripts/generate-plugin-index.js +4 -3
- package/scripts/generate-static-asset-manifest.mjs +1 -1
- package/scripts/i18n-dynamic-keys.json +5 -5
- package/scripts/init-submodules.mjs +2 -2
- package/scripts/install-android-sms-gateway.md +177 -0
- package/scripts/install-android-sms-gateway.mjs +1088 -0
- package/scripts/ios-xcframework/README.md +74 -72
- package/scripts/ios-xcframework/build-xcframework.mjs +204 -43
- package/scripts/ios-xcframework/run-physical-device-smoke.mjs +1943 -0
- package/scripts/ios-xcframework/runtime-symbol-shim.c +450 -0
- package/scripts/kernel-patches/cpu-polar-kernels.mjs +441 -0
- package/scripts/kernel-patches/cpu-simd-kernels.mjs +253 -0
- package/scripts/kernel-patches/cpu-thread-parallelism.mjs +368 -0
- package/scripts/kernel-patches/cuda-kernels.mjs +117 -0
- package/scripts/kernel-patches/metal-kernels.mjs +1698 -109
- package/scripts/kernel-patches/server-omnivoice-route.mjs +718 -0
- package/scripts/kernel-patches/server-structured-output.mjs +279 -0
- package/scripts/kernel-patches/vulkan-dispatch-log.mjs +166 -0
- package/scripts/kernel-patches/vulkan-dispatch-log.test.mjs +50 -0
- package/scripts/kernel-patches/vulkan-dispatch-patches/01-vulkan-shaders-gen.patch +30 -16
- package/scripts/kernel-patches/vulkan-dispatch-patches/02-ggml-vulkan-pipelines.patch +75 -30
- package/scripts/kernel-patches/vulkan-kernels.mjs +800 -49
- package/scripts/lib/agent-source-watcher.mjs +173 -0
- package/scripts/lib/agent-source-watcher.test.mjs +184 -0
- package/scripts/lib/api-supervisor.mjs +78 -9
- package/scripts/lib/api-supervisor.test.mjs +121 -0
- package/scripts/lib/app-dir.mjs +2 -16
- package/scripts/lib/apple-entitlement-audit.mjs +655 -0
- package/scripts/lib/apple-entitlement-audit.test.mjs +144 -0
- package/scripts/lib/artifact-staleness.d.mts +33 -0
- package/scripts/lib/artifact-staleness.mjs +122 -0
- package/scripts/lib/artifact-staleness.test.mts +98 -0
- package/scripts/lib/bun-version-guard.mjs +13 -13
- package/scripts/lib/capacitor-plugin-build-needed.mjs +4 -3
- package/scripts/lib/capacitor-plugin-names.mjs +30 -14
- package/scripts/lib/desktop-preflight.mjs +9 -5
- package/scripts/lib/desktop-startup-embedding-warmup-policy.mjs +51 -0
- package/scripts/lib/desktop-startup-embedding-warmup-policy.test.mjs +55 -0
- package/scripts/lib/duet-bridge.d.mts +63 -0
- package/scripts/lib/duet-bridge.mjs +193 -0
- package/scripts/lib/ios-plist-url-scheme.mjs +80 -0
- package/scripts/lib/mobile-build-decisions.mjs +97 -0
- package/scripts/lib/node-path-env.mjs +4 -2
- package/scripts/lib/orchestrator-desktop-dev-banner.mjs +12 -3
- package/scripts/lib/patch-bun-exports.mjs +90 -27
- package/scripts/lib/patch-bun-exports.test.mjs +79 -0
- package/scripts/lib/renderer-build-action.mjs +35 -0
- package/scripts/lib/renderer-build-action.test.mjs +70 -0
- package/scripts/lib/renderer-build-manifest.d.mts +65 -0
- package/scripts/lib/renderer-build-manifest.mjs +257 -0
- package/scripts/lib/renderer-build-manifest.test.mts +277 -0
- package/scripts/lib/stage-android-agent.mjs +757 -99
- package/scripts/lib/sync-eliza-env-aliases.mjs +3 -25
- package/scripts/lib/ui-smoke-stub-decision.mjs +33 -0
- package/scripts/lib/ui-smoke-stub-decision.test.mjs +46 -0
- package/scripts/lib/verify-ondevice-artifact.d.mts +16 -0
- package/scripts/lib/verify-ondevice-artifact.mjs +61 -0
- package/scripts/lib/verify-ondevice-artifact.test.mts +98 -0
- package/scripts/lib/vite-renderer-dist-stale.mjs +5 -0
- package/scripts/lib/voice-latency-report.mjs +154 -0
- package/scripts/lib/websocket-pending-queue.ts +92 -0
- package/scripts/lifeops-prompt-benchmark.ts +21 -12
- package/scripts/link-docker-local-app-packages.mjs +109 -36
- package/scripts/local-stt-bench.ts +192 -0
- package/scripts/maintain-cloud-api-production-gateway.mjs +54 -0
- package/scripts/mas-smoke.mjs +459 -0
- package/scripts/mas-smoke.test.mjs +220 -0
- package/scripts/mobile-auth-simulator-smoke.mjs +0 -1
- package/scripts/normalize-eliza-capture.ts +97 -0
- package/scripts/omnivoice-fuse/prepare.mjs +2543 -23
- package/scripts/pack-upstreams.mjs +65 -5
- package/scripts/package-electrobun-linux.mjs +303 -0
- package/scripts/patch-deps.mjs +5 -3
- package/scripts/patches/llama-asr-word-timestamps.patch +218 -0
- package/scripts/playwright-ui-live-stack.ts +588 -157
- package/scripts/playwright-ui-smoke-api-stub.mjs +3495 -111
- package/scripts/pre-review-local.mjs +2 -2
- package/scripts/prepare-ios-cocoapods.sh +41 -3
- package/scripts/release-check.ts +180 -84
- package/scripts/relink-workspace-packages-to-dist.mjs +21 -4
- package/scripts/rt.mjs +16 -1
- package/scripts/run-biome-check.mjs +1 -1
- package/scripts/run-coding-agent-e2e.mjs +3 -3
- package/scripts/run-eliza-app-core-script.mjs +34 -0
- package/scripts/run-local-plugin-live-smoke.mjs +66 -2
- package/scripts/run-mobile-build-android-app-actions.test.mjs +426 -0
- package/scripts/run-mobile-build-brand-separation.test.mts +33 -0
- package/scripts/run-mobile-build-ios-engine-gate.test.mjs +85 -0
- package/scripts/run-mobile-build-mtp-staleness.test.mts +198 -0
- package/scripts/run-mobile-build.mjs +5082 -610
- package/scripts/run-node-runtime.mjs +184 -7
- package/scripts/run-node-runtime.test.mjs +167 -0
- package/scripts/run-node-tsx.mjs +80 -33
- package/scripts/run-node.mjs +41 -1
- package/scripts/run-production-build.mjs +34 -27
- package/scripts/run-release-check.mjs +19 -0
- package/scripts/run-release-contract-suite.mjs +107 -14
- package/scripts/run-ui-smoke-playwright-suite.mjs +0 -2
- package/scripts/runtime-package-manifest.ts +21 -3
- package/scripts/serve-real-local-agent.ts +72 -0
- package/scripts/setup-upstreams.mjs +42 -1
- package/scripts/sms-gateway-status.mjs +194 -0
- package/scripts/stage-android-agent.test.mjs +97 -0
- package/scripts/stage-desktop-fused-lib.mjs +453 -0
- package/scripts/stage-elizavoice-lib.mjs +363 -0
- package/scripts/startup-integration-script-drift.test.ts +82 -4
- package/scripts/streaming-pipeline-bench.ts +543 -0
- package/scripts/sync-homepage-porkbun-dns.mjs +262 -0
- package/scripts/test-sms-gateway-software.mjs +100 -0
- package/scripts/type-audit.mjs +1 -1
- package/scripts/validate-bluebubbles-outbound.mjs +293 -0
- package/scripts/validate-cdn-assets.mjs +15 -7
- package/scripts/validate-regression-matrix.mjs +109 -8
- package/scripts/verify-android-sms-gateway-e2e.mjs +362 -0
- package/scripts/verify-bluebubbles-gateway-e2e.mjs +191 -0
- package/scripts/verify-bluebubbles-inbound-readiness.mjs +88 -0
- package/scripts/verify-cloud-api-production-deploy.mjs +87 -0
- package/scripts/verify-cloud-sms-onboarding-flow.mjs +336 -0
- package/scripts/verify-ondevice-artifact.mjs +111 -0
- package/scripts/voice/freeze-voice.mjs +521 -0
- package/scripts/voice-attribution-smoke.ts +644 -0
- package/scripts/voice-create-profile.mjs +379 -0
- package/scripts/voice-duet.mjs +1355 -0
- package/scripts/voice-e2e-hardware.ts +877 -0
- package/scripts/voice-interactive.mjs +1721 -0
- package/scripts/voice-latency-report.mjs +96 -0
- package/scripts/voice-latency-report.test.ts +176 -0
- package/scripts/voice-preset/build-default-voice-preset.mjs +249 -0
- package/scripts/voice-preset/build-onboarding-voice.mjs +281 -0
- package/scripts/watch-sms-gateway-readiness.mjs +303 -0
- package/scripts/write-homepage-release-data.mjs +458 -26
- package/security/agent-vault-id.d.ts +2 -2
- package/security/agent-vault-id.js +1 -1
- package/security/hydrate-wallet-keys-from-platform-store.d.ts.map +1 -1
- package/security/hydrate-wallet-keys-from-platform-store.js +23 -14
- package/security/platform-secure-store-node.d.ts +3 -3
- package/security/platform-secure-store-node.js +3 -3
- package/security/wallet-os-store-actions.d.ts +0 -9
- package/security/wallet-os-store-actions.d.ts.map +1 -1
- package/security/wallet-os-store-actions.js +3 -10
- package/services/account-pool.d.ts +23 -14
- package/services/account-pool.d.ts.map +1 -1
- package/services/account-pool.js +86 -24
- package/services/account-usage.d.ts.map +1 -1
- package/services/account-usage.js +2 -5
- package/services/ambient-audio/consent.d.ts +9 -0
- package/services/ambient-audio/consent.d.ts.map +1 -0
- package/services/ambient-audio/consent.js +28 -0
- package/services/ambient-audio/index.d.ts +7 -0
- package/services/ambient-audio/index.d.ts.map +1 -0
- package/services/ambient-audio/index.js +4 -0
- package/services/ambient-audio/replay-buffer.d.ts +14 -0
- package/services/ambient-audio/replay-buffer.d.ts.map +1 -0
- package/services/ambient-audio/replay-buffer.js +66 -0
- package/services/ambient-audio/response-gate.d.ts +3 -0
- package/services/ambient-audio/response-gate.d.ts.map +1 -0
- package/services/ambient-audio/response-gate.js +33 -0
- package/services/ambient-audio/service.d.ts +22 -0
- package/services/ambient-audio/service.d.ts.map +1 -0
- package/services/ambient-audio/service.js +47 -0
- package/services/ambient-audio/types.d.ts +42 -0
- package/services/ambient-audio/types.d.ts.map +1 -0
- package/services/app-updates/update-policy.d.ts +64 -0
- package/services/app-updates/update-policy.d.ts.map +1 -0
- package/services/app-updates/update-policy.js +228 -0
- package/services/auth-store.d.ts +37 -1
- package/services/auth-store.d.ts.map +1 -1
- package/services/auth-store.js +59 -26
- package/services/cloud-jwks-store.d.ts +3 -3
- package/services/cloud-jwks-store.d.ts.map +1 -1
- package/services/cloud-jwks-store.js +5 -8
- package/services/coding-account-bridge.d.ts +71 -0
- package/services/coding-account-bridge.d.ts.map +1 -0
- package/services/coding-account-bridge.js +267 -0
- package/services/connector-target-catalog.d.ts +11 -4
- package/services/connector-target-catalog.d.ts.map +1 -1
- package/services/connector-target-catalog.js +7 -4
- package/services/credential-tunnel-service.d.ts +66 -0
- package/services/credential-tunnel-service.d.ts.map +1 -0
- package/services/credential-tunnel-service.js +227 -0
- package/services/github-credentials.d.ts +1 -1
- package/services/github-credentials.js +1 -1
- package/services/inference-abort.d.ts +47 -0
- package/services/inference-abort.d.ts.map +1 -0
- package/services/inference-abort.js +76 -0
- package/services/persistence.d.ts +2 -3
- package/services/persistence.d.ts.map +1 -1
- package/services/persistence.js +2 -3
- package/services/phrase-chunked-tts.d.ts +136 -0
- package/services/phrase-chunked-tts.d.ts.map +1 -0
- package/services/phrase-chunked-tts.js +208 -0
- package/services/sandbox-registry.d.ts +78 -0
- package/services/sandbox-registry.d.ts.map +1 -0
- package/services/sandbox-registry.js +323 -0
- package/services/secrets-manager-installer.d.ts +8 -1
- package/services/secrets-manager-installer.d.ts.map +1 -1
- package/services/secrets-manager-installer.js +27 -2
- package/services/sensitive-requests/cloud-link-adapter.d.ts +15 -0
- package/services/sensitive-requests/cloud-link-adapter.d.ts.map +1 -0
- package/services/sensitive-requests/cloud-link-adapter.js +73 -0
- package/services/sensitive-requests/index.d.ts +27 -0
- package/services/sensitive-requests/index.d.ts.map +1 -0
- package/services/sensitive-requests/index.js +51 -0
- package/services/sensitive-requests/instruct-dm-only-adapter.d.ts +14 -0
- package/services/sensitive-requests/instruct-dm-only-adapter.d.ts.map +1 -0
- package/services/sensitive-requests/instruct-dm-only-adapter.js +22 -0
- package/services/sensitive-requests/owner-app-inline-adapter.d.ts +3 -0
- package/services/sensitive-requests/owner-app-inline-adapter.d.ts.map +1 -0
- package/services/sensitive-requests/owner-app-inline-adapter.js +146 -0
- package/services/sensitive-requests/owner-app-oauth-adapter.d.ts +3 -0
- package/services/sensitive-requests/owner-app-oauth-adapter.d.ts.map +1 -0
- package/services/sensitive-requests/owner-app-oauth-adapter.js +156 -0
- package/services/sensitive-requests/public-link-adapter.d.ts +14 -0
- package/services/sensitive-requests/public-link-adapter.d.ts.map +1 -0
- package/services/sensitive-requests/public-link-adapter.js +86 -0
- package/services/sensitive-requests/tunnel-link-adapter.d.ts +17 -0
- package/services/sensitive-requests/tunnel-link-adapter.d.ts.map +1 -0
- package/services/sensitive-requests/tunnel-link-adapter.js +38 -0
- package/services/steward-credentials.d.ts +1 -1
- package/services/steward-credentials.d.ts.map +1 -1
- package/services/steward-credentials.js +10 -6
- package/services/steward-sidecar/health-check.d.ts.map +1 -1
- package/services/steward-sidecar/health-check.js +4 -3
- package/services/steward-sidecar/process-management.d.ts +1 -1
- package/services/steward-sidecar/process-management.d.ts.map +1 -1
- package/services/steward-sidecar/process-management.js +9 -3
- package/services/steward-sidecar/types.d.ts +1 -1
- package/services/steward-sidecar/types.d.ts.map +1 -1
- package/services/steward-sidecar/wallet-setup.d.ts +1 -1
- package/services/steward-sidecar/wallet-setup.d.ts.map +1 -1
- package/services/steward-sidecar/wallet-setup.js +8 -7
- package/services/steward-sidecar.d.ts +5 -5
- package/services/steward-sidecar.d.ts.map +1 -1
- package/services/steward-sidecar.js +27 -19
- package/services/task-host-capabilities.d.ts +60 -0
- package/services/task-host-capabilities.d.ts.map +1 -0
- package/services/task-host-capabilities.js +122 -0
- package/services/tool-call-cache/index.d.ts +2 -2
- package/services/tool-call-cache/index.d.ts.map +1 -1
- package/services/tool-call-cache/index.js +1 -1
- package/services/trigger-event-bridge.js +1 -1
- package/services/tunnel-to-mobile/index.d.ts +2 -0
- package/services/tunnel-to-mobile/index.d.ts.map +1 -0
- package/services/tunnel-to-mobile/index.js +1 -0
- package/services/tunnel-to-mobile/tunnel-to-mobile-client.d.ts +105 -0
- package/services/tunnel-to-mobile/tunnel-to-mobile-client.d.ts.map +1 -0
- package/services/tunnel-to-mobile/tunnel-to-mobile-client.js +190 -0
- package/services/vault-bootstrap.d.ts.map +1 -1
- package/services/vault-bootstrap.js +52 -21
- package/services/vault-mirror.d.ts +1 -1
- package/services/vault-mirror.d.ts.map +1 -1
- package/services/vault-mirror.js +29 -6
- package/services/voice-profiles/diarization-pipeline.d.ts +6 -0
- package/services/voice-profiles/diarization-pipeline.d.ts.map +1 -0
- package/services/voice-profiles/diarization-pipeline.js +20 -0
- package/services/voice-profiles/index.d.ts +12 -0
- package/services/voice-profiles/index.d.ts.map +1 -0
- package/services/voice-profiles/index.js +5 -0
- package/services/voice-profiles/nickname-evaluator.d.ts +14 -0
- package/services/voice-profiles/nickname-evaluator.d.ts.map +1 -0
- package/services/voice-profiles/nickname-evaluator.js +46 -0
- package/services/voice-profiles/owner-confidence.d.ts +10 -0
- package/services/voice-profiles/owner-confidence.d.ts.map +1 -0
- package/services/voice-profiles/owner-confidence.js +38 -0
- package/services/voice-profiles/private-challenge.d.ts +20 -0
- package/services/voice-profiles/private-challenge.d.ts.map +1 -0
- package/services/voice-profiles/private-challenge.js +44 -0
- package/services/voice-profiles/store.d.ts +21 -0
- package/services/voice-profiles/store.d.ts.map +1 -0
- package/services/voice-profiles/store.js +50 -0
- package/services/voice-profiles/types.d.ts +38 -0
- package/services/voice-profiles/types.d.ts.map +1 -0
- package/services/voice-profiles/types.js +1 -0
- package/styles/electrobun-mac-window-drag.css +4 -4
- package/test/helpers/__tests__/live-agent-test.smoke.test.ts +43 -70
- package/test/helpers/browser-mocks.ts +2 -2
- package/test/helpers/conditional-tests.ts +2 -2
- package/test/helpers/live-agent-test.ts +537 -551
- package/test/helpers/live-provider.test.ts +95 -5
- package/test/helpers/live-provider.ts +234 -56
- package/test/helpers/live-runtime-server.ts +4 -4
- package/test/helpers/pglite-runtime.ts +1 -1
- package/test/helpers/real-runtime.ts +72 -20
- package/test/helpers/trajectory-harness.ts +11 -7
- package/test/scripts/start-eliza-live.ts +9 -0
- package/test/scripts/test-parallel.mjs +1 -1
- package/test/scripts/test-root-unit.mjs +6 -7
- package/test/scripts/websocket-pending-queue.test.ts +119 -0
- package/test-support/test-helpers.d.ts +0 -33
- package/test-support/test-helpers.d.ts.map +1 -1
- package/test-support/test-helpers.js +81 -189
- package/ui-compat.d.ts +14 -2
- package/ui-compat.d.ts.map +1 -1
- package/ui-compat.js +23 -3
- package/api/auth-pairing-compat-routes.d.ts +0 -17
- package/api/auth-pairing-compat-routes.d.ts.map +0 -1
- package/api/auth-pairing-compat-routes.js +0 -301
- package/api/local-inference-compat-routes.d.ts +0 -16
- package/api/local-inference-compat-routes.d.ts.map +0 -1
- package/api/local-inference-compat-routes.js +0 -617
- package/api/onboarding-compat-routes.d.ts +0 -4
- package/api/onboarding-compat-routes.d.ts.map +0 -1
- package/api/onboarding-compat-routes.js +0 -207
- package/api/plugins-compat-routes.d.ts +0 -103
- package/api/plugins-compat-routes.d.ts.map +0 -1
- package/api/plugins-compat-routes.js +0 -1181
- package/api/server-onboarding-compat.d.ts +0 -31
- package/api/server-onboarding-compat.d.ts.map +0 -1
- package/api/server-onboarding-compat.js +0 -283
- package/benchmark/cua-routes.d.ts +0 -10
- package/benchmark/cua-routes.d.ts.map +0 -1
- package/benchmark/cua-routes.js +0 -179
- package/benchmark/mock-plugin-base.d.ts +0 -9
- package/benchmark/mock-plugin-base.d.ts.map +0 -1
- package/benchmark/mock-plugin-base.js +0 -325
- package/cli/parse-duration.d.ts +0 -5
- package/cli/parse-duration.d.ts.map +0 -1
- package/cli/parse-duration.js +0 -27
- package/patches/llama-cpp-capacitor@0.1.5.patch +0 -2387
- package/platform/agent-browser-stub.d.ts +0 -27
- package/platform/agent-browser-stub.d.ts.map +0 -1
- package/platform/agent-browser-stub.js +0 -16
- package/platforms/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java +0 -26
- package/platforms/android/app/src/main/res/drawable/ic_launcher_background.xml +0 -170
- package/platforms/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +0 -34
- package/platforms/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java +0 -18
- package/platforms/electrobun/assets/appIcon.iconset/icon_512x512@2x.png +0 -0
- package/platforms/electrobun/assets/appIcon.png +0 -0
- package/platforms/electrobun/scripts/build-whisper-universal.sh +0 -137
- package/platforms/electrobun/scripts/build-whisper.sh +0 -95
- package/platforms/electrobun/scripts/ensure-whisper-model.sh +0 -93
- package/platforms/electrobun/src/libMacWindowEffects.dylib +0 -0
- package/platforms/electrobun/src/native/whisper.ts +0 -280
- package/platforms/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png +0 -0
- package/platforms/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png +0 -0
- package/platforms/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png +0 -0
- package/registry/generate-apps.d.ts +0 -2
- package/registry/generate-apps.d.ts.map +0 -1
- package/registry/generate-apps.js +0 -338
- package/registry/generate.d.ts +0 -2
- package/registry/generate.d.ts.map +0 -1
- package/registry/generate.js +0 -506
- package/registry/loader.d.ts +0 -27
- package/registry/loader.d.ts.map +0 -1
- package/registry/loader.js +0 -111
- package/registry/schema.d.ts +0 -989
- package/registry/schema.d.ts.map +0 -1
- package/registry/schema.js +0 -264
- package/runtime/embedding-manager-support.d.ts +0 -77
- package/runtime/embedding-manager-support.d.ts.map +0 -1
- package/runtime/embedding-manager-support.js +0 -309
- package/runtime/embedding-presets.d.ts +0 -5
- package/runtime/embedding-presets.d.ts.map +0 -1
- package/runtime/embedding-presets.js +0 -47
- package/runtime/embedding-warmup-policy.d.ts +0 -13
- package/runtime/embedding-warmup-policy.d.ts.map +0 -1
- package/runtime/embedding-warmup-policy.js +0 -33
- package/runtime/ensure-local-inference-handler.d.ts +0 -25
- package/runtime/ensure-local-inference-handler.d.ts.map +0 -1
- package/runtime/ensure-local-inference-handler.js +0 -389
- package/runtime/mobile-local-inference-gate.d.ts +0 -21
- package/runtime/mobile-local-inference-gate.d.ts.map +0 -1
- package/runtime/mobile-local-inference-gate.js +0 -24
- package/scripts/aosp/avd-test.mjs +0 -403
- package/scripts/aosp/boot-validate.mjs +0 -536
- package/scripts/aosp/build-aosp.mjs +0 -448
- package/scripts/aosp/build-bootanimation.mjs +0 -178
- package/scripts/aosp/capture-screens.mjs +0 -325
- package/scripts/aosp/e2e-validate.mjs +0 -225
- package/scripts/aosp/lint-init-rc.mjs +0 -258
- package/scripts/aosp/llama-shim/eliza_llama_shim.c +0 -276
- package/scripts/aosp/sim.mjs +0 -277
- package/scripts/aosp/sync-to-aosp.mjs +0 -134
- package/scripts/aosp/validate.mjs +0 -1273
- package/scripts/build-llama-cpp-dflash.mjs +0 -1866
- package/scripts/generate-onboarding-voicelines.mjs +0 -194
- package/scripts/generated/static-asset-manifest.json +0 -4
- package/scripts/normalize-parallax-capture.ts +0 -97
- package/scripts/omnivoice-fuse/Makefile +0 -44
- package/scripts/omnivoice-fuse/README.md +0 -266
- package/scripts/omnivoice-fuse/cmake-graft.mjs +0 -180
- package/scripts/omnivoice-fuse/ffi-stub.c +0 -222
- package/scripts/omnivoice-fuse/ffi.h +0 -158
- package/scripts/omnivoice-fuse/libelizainference_stub.dylib +0 -0
- package/scripts/omnivoice-fuse/verify-symbols.mjs +0 -138
- package/security/cloud-secret-store.d.ts +0 -34
- package/security/cloud-secret-store.d.ts.map +0 -1
- package/security/cloud-secret-store.js +0 -65
- package/security/export-guard.d.ts +0 -34
- package/security/export-guard.d.ts.map +0 -1
- package/security/export-guard.js +0 -127
- package/services/local-inference/__stress__/cache-stress-helpers.d.ts +0 -76
- package/services/local-inference/__stress__/cache-stress-helpers.d.ts.map +0 -1
- package/services/local-inference/__stress__/cache-stress-helpers.js +0 -238
- package/services/local-inference/active-model.d.ts +0 -180
- package/services/local-inference/active-model.d.ts.map +0 -1
- package/services/local-inference/active-model.js +0 -362
- package/services/local-inference/assignments.d.ts +0 -58
- package/services/local-inference/assignments.d.ts.map +0 -1
- package/services/local-inference/assignments.js +0 -179
- package/services/local-inference/backend.d.ts +0 -200
- package/services/local-inference/backend.d.ts.map +0 -1
- package/services/local-inference/backend.js +0 -242
- package/services/local-inference/bundled-models.d.ts +0 -34
- package/services/local-inference/bundled-models.d.ts.map +0 -1
- package/services/local-inference/bundled-models.js +0 -104
- package/services/local-inference/cache-bridge.d.ts +0 -184
- package/services/local-inference/cache-bridge.d.ts.map +0 -1
- package/services/local-inference/cache-bridge.js +0 -333
- package/services/local-inference/catalog.d.ts +0 -57
- package/services/local-inference/catalog.d.ts.map +0 -1
- package/services/local-inference/catalog.js +0 -262
- package/services/local-inference/conversation-registry.d.ts +0 -122
- package/services/local-inference/conversation-registry.d.ts.map +0 -1
- package/services/local-inference/conversation-registry.js +0 -182
- package/services/local-inference/device-bridge.d.ts +0 -139
- package/services/local-inference/device-bridge.d.ts.map +0 -1
- package/services/local-inference/device-bridge.js +0 -774
- package/services/local-inference/dflash-doctor.d.ts +0 -27
- package/services/local-inference/dflash-doctor.d.ts.map +0 -1
- package/services/local-inference/dflash-doctor.js +0 -149
- package/services/local-inference/dflash-server.d.ts +0 -248
- package/services/local-inference/dflash-server.d.ts.map +0 -1
- package/services/local-inference/dflash-server.js +0 -1076
- package/services/local-inference/downloader.d.ts +0 -48
- package/services/local-inference/downloader.d.ts.map +0 -1
- package/services/local-inference/downloader.js +0 -688
- package/services/local-inference/engine.d.ts +0 -282
- package/services/local-inference/engine.d.ts.map +0 -1
- package/services/local-inference/engine.js +0 -743
- package/services/local-inference/external-scanner.d.ts +0 -17
- package/services/local-inference/external-scanner.d.ts.map +0 -1
- package/services/local-inference/external-scanner.js +0 -261
- package/services/local-inference/handler-registry.d.ts +0 -72
- package/services/local-inference/handler-registry.d.ts.map +0 -1
- package/services/local-inference/handler-registry.js +0 -159
- package/services/local-inference/hardware.d.ts +0 -26
- package/services/local-inference/hardware.d.ts.map +0 -1
- package/services/local-inference/hardware.js +0 -139
- package/services/local-inference/hf-search.d.ts +0 -19
- package/services/local-inference/hf-search.d.ts.map +0 -1
- package/services/local-inference/hf-search.js +0 -169
- package/services/local-inference/index.d.ts +0 -10
- package/services/local-inference/index.d.ts.map +0 -1
- package/services/local-inference/index.js +0 -7
- package/services/local-inference/llama-server-metrics.d.ts +0 -108
- package/services/local-inference/llama-server-metrics.d.ts.map +0 -1
- package/services/local-inference/llama-server-metrics.js +0 -175
- package/services/local-inference/manifest/index.d.ts +0 -4
- package/services/local-inference/manifest/index.d.ts.map +0 -1
- package/services/local-inference/manifest/index.js +0 -5
- package/services/local-inference/manifest/schema.d.ts +0 -419
- package/services/local-inference/manifest/schema.d.ts.map +0 -1
- package/services/local-inference/manifest/schema.js +0 -227
- package/services/local-inference/manifest/types.d.ts +0 -23
- package/services/local-inference/manifest/types.d.ts.map +0 -1
- package/services/local-inference/manifest/types.js +0 -5
- package/services/local-inference/manifest/validator.d.ts +0 -43
- package/services/local-inference/manifest/validator.d.ts.map +0 -1
- package/services/local-inference/manifest/validator.js +0 -187
- package/services/local-inference/paths.d.ts +0 -8
- package/services/local-inference/paths.d.ts.map +0 -1
- package/services/local-inference/paths.js +0 -7
- package/services/local-inference/providers.d.ts +0 -61
- package/services/local-inference/providers.d.ts.map +0 -1
- package/services/local-inference/providers.js +0 -334
- package/services/local-inference/ram-budget.d.ts +0 -57
- package/services/local-inference/ram-budget.d.ts.map +0 -1
- package/services/local-inference/ram-budget.js +0 -107
- package/services/local-inference/readiness.d.ts +0 -9
- package/services/local-inference/readiness.d.ts.map +0 -1
- package/services/local-inference/readiness.js +0 -153
- package/services/local-inference/recommendation.d.ts +0 -62
- package/services/local-inference/recommendation.d.ts.map +0 -1
- package/services/local-inference/recommendation.js +0 -309
- package/services/local-inference/registry.d.ts +0 -35
- package/services/local-inference/registry.d.ts.map +0 -1
- package/services/local-inference/registry.js +0 -117
- package/services/local-inference/router-handler.d.ts +0 -51
- package/services/local-inference/router-handler.d.ts.map +0 -1
- package/services/local-inference/router-handler.js +0 -165
- package/services/local-inference/routing-policy.d.ts +0 -55
- package/services/local-inference/routing-policy.d.ts.map +0 -1
- package/services/local-inference/routing-policy.js +0 -195
- package/services/local-inference/routing-preferences.d.ts +0 -8
- package/services/local-inference/routing-preferences.d.ts.map +0 -1
- package/services/local-inference/routing-preferences.js +0 -7
- package/services/local-inference/service.d.ts +0 -88
- package/services/local-inference/service.d.ts.map +0 -1
- package/services/local-inference/service.js +0 -210
- package/services/local-inference/session-pool.d.ts +0 -72
- package/services/local-inference/session-pool.d.ts.map +0 -1
- package/services/local-inference/session-pool.js +0 -125
- package/services/local-inference/types.d.ts +0 -309
- package/services/local-inference/types.d.ts.map +0 -1
- package/services/local-inference/types.js +0 -23
- package/services/local-inference/verify.d.ts +0 -8
- package/services/local-inference/verify.d.ts.map +0 -1
- package/services/local-inference/verify.js +0 -7
- package/services/local-inference/voice/barge-in.d.ts +0 -15
- package/services/local-inference/voice/barge-in.d.ts.map +0 -1
- package/services/local-inference/voice/barge-in.js +0 -20
- package/services/local-inference/voice/engine-bridge.d.ts +0 -256
- package/services/local-inference/voice/engine-bridge.d.ts.map +0 -1
- package/services/local-inference/voice/engine-bridge.js +0 -398
- package/services/local-inference/voice/ffi-bindings.d.ts +0 -114
- package/services/local-inference/voice/ffi-bindings.d.ts.map +0 -1
- package/services/local-inference/voice/ffi-bindings.js +0 -281
- package/services/local-inference/voice/index.d.ts +0 -51
- package/services/local-inference/voice/index.d.ts.map +0 -1
- package/services/local-inference/voice/index.js +0 -50
- package/services/local-inference/voice/lifecycle.d.ts +0 -135
- package/services/local-inference/voice/lifecycle.d.ts.map +0 -1
- package/services/local-inference/voice/lifecycle.js +0 -189
- package/services/local-inference/voice/phoneme-tokenizer.d.ts +0 -58
- package/services/local-inference/voice/phoneme-tokenizer.d.ts.map +0 -1
- package/services/local-inference/voice/phoneme-tokenizer.js +0 -53
- package/services/local-inference/voice/phrase-cache.d.ts +0 -24
- package/services/local-inference/voice/phrase-cache.d.ts.map +0 -1
- package/services/local-inference/voice/phrase-cache.js +0 -32
- package/services/local-inference/voice/phrase-chunker.d.ts +0 -20
- package/services/local-inference/voice/phrase-chunker.d.ts.map +0 -1
- package/services/local-inference/voice/phrase-chunker.js +0 -85
- package/services/local-inference/voice/ring-buffer.d.ts +0 -40
- package/services/local-inference/voice/ring-buffer.d.ts.map +0 -1
- package/services/local-inference/voice/ring-buffer.js +0 -85
- package/services/local-inference/voice/rollback-queue.d.ts +0 -24
- package/services/local-inference/voice/rollback-queue.d.ts.map +0 -1
- package/services/local-inference/voice/rollback-queue.js +0 -49
- package/services/local-inference/voice/scheduler.d.ts +0 -47
- package/services/local-inference/voice/scheduler.d.ts.map +0 -1
- package/services/local-inference/voice/scheduler.js +0 -123
- package/services/local-inference/voice/shared-resources.d.ts +0 -119
- package/services/local-inference/voice/shared-resources.d.ts.map +0 -1
- package/services/local-inference/voice/shared-resources.js +0 -83
- package/services/local-inference/voice/speaker-preset-cache.d.ts +0 -28
- package/services/local-inference/voice/speaker-preset-cache.d.ts.map +0 -1
- package/services/local-inference/voice/speaker-preset-cache.js +0 -44
- package/services/local-inference/voice/types.d.ts +0 -80
- package/services/local-inference/voice/types.d.ts.map +0 -1
- package/services/local-inference/voice/voice-preset-format.d.ts +0 -56
- package/services/local-inference/voice/voice-preset-format.d.ts.map +0 -1
- package/services/local-inference/voice/voice-preset-format.js +0 -184
- package/services/plugin-installer.d.ts +0 -22
- package/services/plugin-installer.d.ts.map +0 -1
- package/services/plugin-installer.js +0 -41
- package/test/helpers/i18n.ts +0 -5
- package/test/helpers/loopback.ts +0 -33
- package/test/helpers/react-test.ts +0 -40
- package/test/helpers/skip-without.ts +0 -53
- package/test/scripts/task-agent-live-smoke.ts +0 -1335
- /package/services/{local-inference/voice → ambient-audio}/types.js +0 -0
|
@@ -5,6 +5,7 @@ import fs from "node:fs";
|
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { fileURLToPath } from "node:url";
|
|
7
7
|
import { resolveElectrobunDir, resolveMainAppDir } from "./lib/app-dir.mjs";
|
|
8
|
+
import { maxMtimeUnder } from "./lib/artifact-staleness.mjs";
|
|
8
9
|
import {
|
|
9
10
|
buildWindowsRepairSteps,
|
|
10
11
|
classifyElectrobunViewFailure,
|
|
@@ -13,6 +14,7 @@ import {
|
|
|
13
14
|
isSupportedBunVersion,
|
|
14
15
|
} from "./lib/desktop-preflight.mjs";
|
|
15
16
|
import { appIdentityEnv } from "./lib/read-app-identity.mjs";
|
|
17
|
+
import { assertRendererRebuiltSince } from "./lib/renderer-build-manifest.mjs";
|
|
16
18
|
|
|
17
19
|
const ROOT = process.cwd();
|
|
18
20
|
const SCRIPT_DIR = path.dirname(fileURLToPath(import.meta.url));
|
|
@@ -35,11 +37,149 @@ const COMMAND_PREFIX = (process.env.ELIZA_DESKTOP_COMMAND_PREFIX ?? "")
|
|
|
35
37
|
.trim()
|
|
36
38
|
.split(/\s+/)
|
|
37
39
|
.filter(Boolean);
|
|
40
|
+
const DESKTOP_BUILD_LOCK_DIR = path.join(ROOT, ".turbo", "desktop-build.lock");
|
|
38
41
|
const RUNTIME_COPY_SCRIPT = fs.existsSync(
|
|
39
42
|
path.join(ROOT, "scripts", "copy-runtime-node-modules.ts"),
|
|
40
43
|
)
|
|
41
44
|
? path.join(ROOT, "scripts", "copy-runtime-node-modules.ts")
|
|
42
45
|
: path.join(SCRIPT_DIR, "copy-runtime-node-modules.ts");
|
|
46
|
+
const WRITE_BUILD_INFO_SCRIPT = fs.existsSync(
|
|
47
|
+
path.join(ROOT, "scripts", "write-build-info.ts"),
|
|
48
|
+
)
|
|
49
|
+
? path.join(ROOT, "scripts", "write-build-info.ts")
|
|
50
|
+
: path.join(ROOT, "packages", "scripts", "write-build-info.ts");
|
|
51
|
+
|
|
52
|
+
function resolveWorkspacePackageDir(packageDirName) {
|
|
53
|
+
const candidates = [
|
|
54
|
+
path.join(ROOT, "packages", packageDirName),
|
|
55
|
+
path.join(ROOT, "eliza", "packages", packageDirName),
|
|
56
|
+
];
|
|
57
|
+
return (
|
|
58
|
+
candidates.find((candidate) =>
|
|
59
|
+
fs.existsSync(path.join(candidate, "package.json")),
|
|
60
|
+
) ?? candidates[0]
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function sleepSync(ms) {
|
|
65
|
+
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function readDesktopBuildLockOwnerPid() {
|
|
69
|
+
try {
|
|
70
|
+
const rawOwner = fs.readFileSync(
|
|
71
|
+
path.join(DESKTOP_BUILD_LOCK_DIR, "owner"),
|
|
72
|
+
"utf8",
|
|
73
|
+
);
|
|
74
|
+
const pid = Number.parseInt(rawOwner.split(/\r?\n/, 1)[0] ?? "", 10);
|
|
75
|
+
return Number.isFinite(pid) && pid > 0 ? pid : null;
|
|
76
|
+
} catch {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function isProcessAlive(pid) {
|
|
82
|
+
try {
|
|
83
|
+
process.kill(pid, 0);
|
|
84
|
+
return true;
|
|
85
|
+
} catch (error) {
|
|
86
|
+
if (error?.code === "ESRCH") return false;
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function withDesktopBuildLock(run) {
|
|
92
|
+
const lockParent = path.dirname(DESKTOP_BUILD_LOCK_DIR);
|
|
93
|
+
const staleAfterMs = 30 * 60 * 1000;
|
|
94
|
+
let announcedWait = false;
|
|
95
|
+
|
|
96
|
+
fs.mkdirSync(lockParent, { recursive: true });
|
|
97
|
+
|
|
98
|
+
for (;;) {
|
|
99
|
+
try {
|
|
100
|
+
fs.mkdirSync(DESKTOP_BUILD_LOCK_DIR);
|
|
101
|
+
fs.writeFileSync(
|
|
102
|
+
path.join(DESKTOP_BUILD_LOCK_DIR, "owner"),
|
|
103
|
+
`${process.pid}\n${new Date().toISOString()}\n`,
|
|
104
|
+
);
|
|
105
|
+
break;
|
|
106
|
+
} catch (error) {
|
|
107
|
+
if (error?.code !== "EEXIST") {
|
|
108
|
+
throw error;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
let stat = null;
|
|
112
|
+
try {
|
|
113
|
+
stat = fs.statSync(DESKTOP_BUILD_LOCK_DIR);
|
|
114
|
+
} catch {
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
const ownerPid = readDesktopBuildLockOwnerPid();
|
|
119
|
+
if (
|
|
120
|
+
(ownerPid !== null && !isProcessAlive(ownerPid)) ||
|
|
121
|
+
Date.now() - stat.mtimeMs > staleAfterMs
|
|
122
|
+
) {
|
|
123
|
+
fs.rmSync(DESKTOP_BUILD_LOCK_DIR, { recursive: true, force: true });
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
if (!announcedWait) {
|
|
128
|
+
console.log(
|
|
129
|
+
"[desktop-build] Waiting for another desktop build to finish...",
|
|
130
|
+
);
|
|
131
|
+
announcedWait = true;
|
|
132
|
+
}
|
|
133
|
+
sleepSync(250);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
try {
|
|
138
|
+
run();
|
|
139
|
+
} finally {
|
|
140
|
+
fs.rmSync(DESKTOP_BUILD_LOCK_DIR, { recursive: true, force: true });
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
function resolveWorkspacePluginDir(pluginDirName) {
|
|
145
|
+
const candidates = [
|
|
146
|
+
path.join(ROOT, "plugins", pluginDirName),
|
|
147
|
+
path.join(ROOT, "eliza", "plugins", pluginDirName),
|
|
148
|
+
];
|
|
149
|
+
return (
|
|
150
|
+
candidates.find((candidate) =>
|
|
151
|
+
fs.existsSync(path.join(candidate, "package.json")),
|
|
152
|
+
) ?? candidates[0]
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
const APP_CORE_PACKAGE_DIR = resolveWorkspacePackageDir("app-core");
|
|
157
|
+
const AGENT_PACKAGE_DIR = resolveWorkspacePackageDir("agent");
|
|
158
|
+
const CLOUD_SDK_PACKAGE_DIR = resolveWorkspacePackageDir("cloud-sdk");
|
|
159
|
+
const CORE_PACKAGE_DIR = resolveWorkspacePackageDir("core");
|
|
160
|
+
const PLUGIN_AGENT_ORCHESTRATOR_PACKAGE_DIR = resolveWorkspacePluginDir(
|
|
161
|
+
"plugin-agent-orchestrator",
|
|
162
|
+
);
|
|
163
|
+
const APP_MODEL_TESTER_PACKAGE_DIR =
|
|
164
|
+
resolveWorkspacePluginDir("app-model-tester");
|
|
165
|
+
const PLUGIN_LOCAL_INFERENCE_PACKAGE_DIR = resolveWorkspacePluginDir(
|
|
166
|
+
"plugin-local-inference",
|
|
167
|
+
);
|
|
168
|
+
const PLUGIN_REMOTE_MANIFEST_PACKAGE_DIR = resolveWorkspacePackageDir(
|
|
169
|
+
"plugin-remote-manifest",
|
|
170
|
+
);
|
|
171
|
+
const PLUGIN_WORKER_RUNTIME_PACKAGE_DIR = resolveWorkspacePackageDir(
|
|
172
|
+
"plugin-worker-runtime",
|
|
173
|
+
);
|
|
174
|
+
const SHARED_PACKAGE_DIR = resolveWorkspacePackageDir("shared");
|
|
175
|
+
const SECURITY_PACKAGE_DIR = resolveWorkspacePackageDir("security");
|
|
176
|
+
const UI_PACKAGE_DIR = resolveWorkspacePackageDir("ui");
|
|
177
|
+
const VAULT_PACKAGE_DIR = resolveWorkspacePackageDir("vault");
|
|
178
|
+
const DESKTOP_BUILD_TMP_DIR = path.join(ELECTROBUN_DIR, "tmp");
|
|
179
|
+
const DESKTOP_BUILD_BUN_CACHE_DIR = path.join(
|
|
180
|
+
DESKTOP_BUILD_TMP_DIR,
|
|
181
|
+
"bun-cache",
|
|
182
|
+
);
|
|
43
183
|
|
|
44
184
|
const argv = process.argv.slice(2);
|
|
45
185
|
const command = argv[0] && !argv[0].startsWith("--") ? argv[0] : "build";
|
|
@@ -51,18 +191,22 @@ const buildProfile =
|
|
|
51
191
|
const variant =
|
|
52
192
|
getArgValue(args, "variant") ?? process.env.VITE_APP_VARIANT ?? "base";
|
|
53
193
|
const buildVariant = resolveBuildVariant(
|
|
54
|
-
getArgValue(args, "build-variant") ?? process.env.
|
|
194
|
+
getArgValue(args, "build-variant") ?? process.env.ELIZA_BUILD_VARIANT,
|
|
55
195
|
);
|
|
56
196
|
const buildEnv = getArgValue(args, "env") ?? process.env.BUILD_ENV ?? "";
|
|
57
|
-
const buildWhisper = getBooleanArg(args, "build-whisper");
|
|
58
197
|
const stageMacosReleaseApp = getBooleanArg(args, "stage-macos-release-app");
|
|
198
|
+
// The macOS native-effects dylib build shells to `xcrun clang++` (Xcode CLT).
|
|
199
|
+
// "Explicitly requested" decides whether missing native tooling is a hard
|
|
200
|
+
// failure (CI passes --build-native-effects on a tooled runner) or a graceful
|
|
201
|
+
// skip (out-of-box dev build).
|
|
202
|
+
const nativeEffectsExplicitlyRequested =
|
|
203
|
+
getBooleanArg(args, "build-native-effects") ||
|
|
204
|
+
process.env.ELIZA_DESKTOP_BUILD_NATIVE_EFFECTS === "1";
|
|
59
205
|
|
|
60
206
|
function resolveBuildVariant(raw) {
|
|
61
207
|
if (raw === "store" || raw === "direct") return raw;
|
|
62
208
|
if (raw === undefined || raw === null || raw === "") return "direct";
|
|
63
|
-
fail(
|
|
64
|
-
`Unknown --build-variant value: ${raw}. Expected "store" or "direct".`,
|
|
65
|
-
);
|
|
209
|
+
fail(`Unknown --build-variant value: ${raw}. Expected "store" or "direct".`);
|
|
66
210
|
}
|
|
67
211
|
const excludedOptionalPacks = [
|
|
68
212
|
...new Set([
|
|
@@ -170,7 +314,12 @@ function buildInvocation(binary, binaryArgs = []) {
|
|
|
170
314
|
}
|
|
171
315
|
|
|
172
316
|
function run(commandName, commandArgs, options = {}) {
|
|
173
|
-
const {
|
|
317
|
+
const {
|
|
318
|
+
cwd = ROOT,
|
|
319
|
+
env = process.env,
|
|
320
|
+
label,
|
|
321
|
+
allowFailure = false,
|
|
322
|
+
} = options;
|
|
174
323
|
const invocation = buildInvocation(commandName, commandArgs);
|
|
175
324
|
const rendered = [invocation.command, ...invocation.args].join(" ");
|
|
176
325
|
console.log(`[desktop-build] ${label ?? rendered}`);
|
|
@@ -182,6 +331,12 @@ function run(commandName, commandArgs, options = {}) {
|
|
|
182
331
|
});
|
|
183
332
|
|
|
184
333
|
if (result.status !== 0) {
|
|
334
|
+
if (allowFailure) {
|
|
335
|
+
console.warn(
|
|
336
|
+
`[desktop-build] ${rendered} exited ${result.status ?? 1} (tolerated)`,
|
|
337
|
+
);
|
|
338
|
+
return;
|
|
339
|
+
}
|
|
185
340
|
fail(
|
|
186
341
|
`${rendered} failed with exit code ${result.status ?? 1}`,
|
|
187
342
|
result.status ?? 1,
|
|
@@ -189,6 +344,24 @@ function run(commandName, commandArgs, options = {}) {
|
|
|
189
344
|
}
|
|
190
345
|
}
|
|
191
346
|
|
|
347
|
+
function runStatus(commandName, commandArgs, options = {}) {
|
|
348
|
+
const { cwd = ROOT, env = process.env, label } = options;
|
|
349
|
+
const invocation = buildInvocation(commandName, commandArgs);
|
|
350
|
+
const rendered = [invocation.command, ...invocation.args].join(" ");
|
|
351
|
+
console.log(`[desktop-build] ${label ?? rendered}`);
|
|
352
|
+
|
|
353
|
+
const result = spawnSync(invocation.command, invocation.args, {
|
|
354
|
+
cwd,
|
|
355
|
+
env,
|
|
356
|
+
stdio: "inherit",
|
|
357
|
+
});
|
|
358
|
+
|
|
359
|
+
return {
|
|
360
|
+
command: rendered,
|
|
361
|
+
status: result.status ?? 1,
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
|
|
192
365
|
function runCapture(commandName, commandArgs, options = {}) {
|
|
193
366
|
const { cwd = ROOT, env = process.env } = options;
|
|
194
367
|
const invocation = buildInvocation(commandName, commandArgs);
|
|
@@ -223,6 +396,50 @@ function runBunCapture(commandArgs, options = {}) {
|
|
|
223
396
|
return runCapture(bun, commandArgs, options);
|
|
224
397
|
}
|
|
225
398
|
|
|
399
|
+
function runBunStatus(commandArgs, options = {}) {
|
|
400
|
+
const bun = resolveBunBinary();
|
|
401
|
+
if (!bun) {
|
|
402
|
+
fail('Could not find "bun" in PATH.');
|
|
403
|
+
}
|
|
404
|
+
return runStatus(bun, commandArgs, options);
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
function desktopBuildTempEnv(extraEnv = {}) {
|
|
408
|
+
fs.mkdirSync(DESKTOP_BUILD_TMP_DIR, { recursive: true });
|
|
409
|
+
return {
|
|
410
|
+
...process.env,
|
|
411
|
+
...extraEnv,
|
|
412
|
+
TMPDIR: DESKTOP_BUILD_TMP_DIR,
|
|
413
|
+
TMP: DESKTOP_BUILD_TMP_DIR,
|
|
414
|
+
TEMP: DESKTOP_BUILD_TMP_DIR,
|
|
415
|
+
BUN_TMPDIR: DESKTOP_BUILD_TMP_DIR,
|
|
416
|
+
BUN_INSTALL_CACHE_DIR: DESKTOP_BUILD_BUN_CACHE_DIR,
|
|
417
|
+
};
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
function dependencyTreePresent(cwd) {
|
|
421
|
+
return (
|
|
422
|
+
fs.existsSync(path.join(cwd, "node_modules")) ||
|
|
423
|
+
fs.existsSync(path.join(ROOT, "node_modules"))
|
|
424
|
+
);
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
function runOptionalWorkspaceInstall(cwd, label) {
|
|
428
|
+
if (dependencyTreePresent(cwd)) {
|
|
429
|
+
console.log(`[desktop-build] ${label} (skipped; dependencies present)`);
|
|
430
|
+
return;
|
|
431
|
+
}
|
|
432
|
+
runBun(
|
|
433
|
+
["install", "--ignore-scripts", "--cache-dir", DESKTOP_BUILD_BUN_CACHE_DIR],
|
|
434
|
+
{
|
|
435
|
+
cwd,
|
|
436
|
+
env: desktopBuildTempEnv(),
|
|
437
|
+
label,
|
|
438
|
+
allowFailure: true,
|
|
439
|
+
},
|
|
440
|
+
);
|
|
441
|
+
}
|
|
442
|
+
|
|
226
443
|
function resolveBunBinary() {
|
|
227
444
|
if (process.platform === "win32") {
|
|
228
445
|
const whereResult = spawnSync("where", ["bun"], {
|
|
@@ -257,11 +474,6 @@ function resolveBunBinary() {
|
|
|
257
474
|
return bun;
|
|
258
475
|
}
|
|
259
476
|
|
|
260
|
-
function runNode(commandArgs, options = {}) {
|
|
261
|
-
const node = which("node") ?? process.execPath;
|
|
262
|
-
run(node, commandArgs, options);
|
|
263
|
-
}
|
|
264
|
-
|
|
265
477
|
function runPackageBinary(binary, binaryArgs, options = {}) {
|
|
266
478
|
const bunx = which("bunx");
|
|
267
479
|
if (bunx) {
|
|
@@ -278,7 +490,46 @@ function runPackageBinary(binary, binaryArgs, options = {}) {
|
|
|
278
490
|
fail(`Could not find bunx or npx to run ${binary}.`);
|
|
279
491
|
}
|
|
280
492
|
|
|
493
|
+
function resolveLocalPackageBinary(binary, cwdCandidates = []) {
|
|
494
|
+
const executableNames =
|
|
495
|
+
process.platform === "win32"
|
|
496
|
+
? [`${binary}.cmd`, `${binary}.exe`, binary]
|
|
497
|
+
: [binary];
|
|
498
|
+
const candidates = [];
|
|
499
|
+
|
|
500
|
+
for (const cwd of cwdCandidates) {
|
|
501
|
+
for (const executableName of executableNames) {
|
|
502
|
+
candidates.push(path.join(cwd, "node_modules", ".bin", executableName));
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
for (const executableName of executableNames) {
|
|
507
|
+
candidates.push(path.join(ROOT, "node_modules", ".bin", executableName));
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
return candidates.find((candidate) => fs.existsSync(candidate)) ?? null;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
function runBunPackageBinary(binary, binaryArgs, options = {}) {
|
|
514
|
+
const bunx = which("bunx");
|
|
515
|
+
if (bunx) {
|
|
516
|
+
run(bunx, ["--bun", binary, ...binaryArgs], options);
|
|
517
|
+
return;
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
runPackageBinary(binary, binaryArgs, options);
|
|
521
|
+
}
|
|
522
|
+
|
|
281
523
|
function runElectrobun(commandArgs, options = {}) {
|
|
524
|
+
const local = resolveLocalPackageBinary(
|
|
525
|
+
"electrobun",
|
|
526
|
+
[options.cwd, ELECTROBUN_DIR].filter(Boolean),
|
|
527
|
+
);
|
|
528
|
+
if (local) {
|
|
529
|
+
run(local, commandArgs, options);
|
|
530
|
+
return;
|
|
531
|
+
}
|
|
532
|
+
|
|
282
533
|
const direct = which("electrobun");
|
|
283
534
|
if (direct) {
|
|
284
535
|
run(direct, commandArgs, options);
|
|
@@ -427,6 +678,53 @@ function runDesktopPreflight() {
|
|
|
427
678
|
bunVersion,
|
|
428
679
|
errorCode: "OK",
|
|
429
680
|
});
|
|
681
|
+
|
|
682
|
+
preflightStoreVariantSigning();
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
/**
|
|
686
|
+
* Store-variant signing preflight.
|
|
687
|
+
*
|
|
688
|
+
* When building the store flavor of a desktop variant outside CI (no
|
|
689
|
+
* ELECTROBUN_SKIP_CODESIGN=1, no CI=true), fail loudly if the required
|
|
690
|
+
* signing-identity env vars aren't set. Without this, the build runs all
|
|
691
|
+
* the way through staging + packaging only to die in codesign-mas.mjs
|
|
692
|
+
* or build-msix.ps1 — wasting minutes of clock per attempt.
|
|
693
|
+
*
|
|
694
|
+
* CI builds skip this preflight because the secrets are provisioned at
|
|
695
|
+
* job-step level, after this script's preflight runs.
|
|
696
|
+
*/
|
|
697
|
+
function preflightStoreVariantSigning() {
|
|
698
|
+
if (buildVariant !== "store") return;
|
|
699
|
+
if (process.env.CI === "true" || process.env.ELECTROBUN_SKIP_CODESIGN === "1")
|
|
700
|
+
return;
|
|
701
|
+
|
|
702
|
+
const missing = [];
|
|
703
|
+
if (process.platform === "darwin") {
|
|
704
|
+
if (!process.env.ELIZA_MAS_SIGNING_IDENTITY?.trim()) {
|
|
705
|
+
missing.push("ELIZA_MAS_SIGNING_IDENTITY");
|
|
706
|
+
}
|
|
707
|
+
} else if (process.platform === "win32") {
|
|
708
|
+
if (!process.env.ELIZA_MSIX_STORE_CERT_PATH?.trim()) {
|
|
709
|
+
missing.push("ELIZA_MSIX_STORE_CERT_PATH");
|
|
710
|
+
}
|
|
711
|
+
} else if (process.platform === "linux") {
|
|
712
|
+
// Flatpak builds use `flatpak-builder`; no signing env vars are required
|
|
713
|
+
// (Flathub signs the repo server-side).
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
if (missing.length === 0) return;
|
|
717
|
+
|
|
718
|
+
failPreflight(
|
|
719
|
+
"Store-variant build requires signing env vars (or set ELECTROBUN_SKIP_CODESIGN=1 for unsigned local builds).",
|
|
720
|
+
{
|
|
721
|
+
step: "store-signing",
|
|
722
|
+
platform: process.platform,
|
|
723
|
+
buildVariant,
|
|
724
|
+
missing,
|
|
725
|
+
},
|
|
726
|
+
missing.map((name) => ` set ${name}=... before running`),
|
|
727
|
+
);
|
|
430
728
|
}
|
|
431
729
|
|
|
432
730
|
function findLatestMacAppBundle() {
|
|
@@ -461,60 +759,581 @@ function findLatestMacAppBundle() {
|
|
|
461
759
|
return candidates[0].appBundlePath;
|
|
462
760
|
}
|
|
463
761
|
|
|
464
|
-
function
|
|
465
|
-
|
|
762
|
+
function hasRootTsdownEntry() {
|
|
763
|
+
return (
|
|
764
|
+
fs.existsSync(path.join(ROOT, "tsdown.config.ts")) ||
|
|
765
|
+
fs.existsSync(path.join(ROOT, "tsdown.config.mts")) ||
|
|
766
|
+
fs.existsSync(path.join(ROOT, "tsdown.config.js")) ||
|
|
767
|
+
fs.existsSync(path.join(ROOT, "src", "index.ts"))
|
|
768
|
+
);
|
|
769
|
+
}
|
|
466
770
|
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
771
|
+
function ensureRootRuntimeBundle() {
|
|
772
|
+
if (hasRootTsdownEntry()) {
|
|
773
|
+
runPackageBinary("tsdown", [], {
|
|
774
|
+
cwd: ROOT,
|
|
775
|
+
label: "Building core runtime bundle with tsdown",
|
|
776
|
+
});
|
|
777
|
+
return;
|
|
778
|
+
}
|
|
779
|
+
|
|
780
|
+
const distDir = path.join(ROOT, "dist");
|
|
781
|
+
const entrySource = [
|
|
782
|
+
"// auto-generated by desktop-build.mjs",
|
|
783
|
+
"// Standalone elizaOS checkouts do not have a root tsdown entry.",
|
|
784
|
+
"// Packaged desktop runtimes resolve the real CLI entry from the bundled node_modules tree.",
|
|
785
|
+
'import "./node_modules/@elizaos/app-core/dist/entry.js";',
|
|
786
|
+
"",
|
|
787
|
+
].join("\n");
|
|
788
|
+
|
|
789
|
+
fs.mkdirSync(distDir, { recursive: true });
|
|
790
|
+
fs.writeFileSync(path.join(distDir, "entry.js"), entrySource);
|
|
791
|
+
fs.writeFileSync(path.join(distDir, "index.js"), entrySource);
|
|
792
|
+
fs.writeFileSync(path.join(distDir, "package.json"), '{"type":"module"}\n');
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
// The desktop build compiles the @elizaos/* workspace packages from source, so
|
|
796
|
+
// it only works when those packages are present on disk (a workspace/local
|
|
797
|
+
// checkout). In packages mode they are resolved from node_modules instead and
|
|
798
|
+
// resolveWorkspacePackageDir() falls back to a non-existent ROOT/packages/* dir,
|
|
799
|
+
// which previously surfaced deep in the build as a cryptic
|
|
800
|
+
// "Expected @elizaos/core package not found". Detect this once, up front, with
|
|
801
|
+
// an actionable message instead.
|
|
802
|
+
function ensureWorkspaceCheckoutPresent() {
|
|
803
|
+
if (fs.existsSync(path.join(CORE_PACKAGE_DIR, "package.json"))) {
|
|
804
|
+
return;
|
|
805
|
+
}
|
|
806
|
+
fail(
|
|
807
|
+
"Desktop build requires the @elizaos/* workspace packages on disk, but " +
|
|
808
|
+
`none were found (looked for ${path.join(CORE_PACKAGE_DIR, "package.json")}).\n` +
|
|
809
|
+
" Run the desktop build from a workspace checkout where packages/* (or " +
|
|
810
|
+
"eliza/packages/*) are present.",
|
|
811
|
+
);
|
|
812
|
+
}
|
|
813
|
+
|
|
814
|
+
function ensureWorkspaceRuntimePackageBuilt(packageName, packageDir) {
|
|
815
|
+
const packageJson = path.join(packageDir, "package.json");
|
|
816
|
+
if (!fs.existsSync(packageJson)) {
|
|
817
|
+
fail(`Expected ${packageName} package not found: ${packageDir}`);
|
|
818
|
+
}
|
|
819
|
+
|
|
820
|
+
if (
|
|
821
|
+
process.env.ELIZA_DESKTOP_REBUILD_RUNTIME_PACKAGES !== "1" &&
|
|
822
|
+
workspaceRuntimePackageLooksBuilt(packageName, packageDir)
|
|
823
|
+
) {
|
|
824
|
+
console.log(
|
|
825
|
+
`[desktop-build] Reusing existing ${packageName} runtime package`,
|
|
826
|
+
);
|
|
827
|
+
return;
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
runBun(["run", "build"], {
|
|
831
|
+
cwd: packageDir,
|
|
832
|
+
label: `Building ${packageName} runtime package`,
|
|
470
833
|
});
|
|
834
|
+
}
|
|
471
835
|
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
836
|
+
function workspaceRuntimePackageMarkersPresent(packageName, distDir) {
|
|
837
|
+
if (packageName === "@elizaos/core") {
|
|
838
|
+
return (
|
|
839
|
+
fs.existsSync(path.join(distDir, "node", "index.node.js")) &&
|
|
840
|
+
fs.existsSync(path.join(distDir, "index.node.d.ts")) &&
|
|
841
|
+
fs.existsSync(path.join(distDir, "testing", "live-provider.d.ts"))
|
|
842
|
+
);
|
|
843
|
+
}
|
|
844
|
+
|
|
845
|
+
if (packageName === "@elizaos/ui") {
|
|
846
|
+
return (
|
|
847
|
+
fs.existsSync(path.join(distDir, "index.js")) &&
|
|
848
|
+
fs.existsSync(path.join(distDir, "App.js")) &&
|
|
849
|
+
fs.existsSync(path.join(distDir, "components", "pages", "LogsView.js"))
|
|
850
|
+
);
|
|
851
|
+
}
|
|
852
|
+
|
|
853
|
+
return true;
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
function workspaceRuntimePackageLooksBuilt(packageName, packageDir) {
|
|
857
|
+
const distDir = path.join(packageDir, "dist");
|
|
858
|
+
if (!fs.existsSync(distDir)) return false;
|
|
859
|
+
if (!workspaceRuntimePackageMarkersPresent(packageName, distDir))
|
|
860
|
+
return false;
|
|
861
|
+
|
|
862
|
+
// Presence of the marker files isn't enough — a dist built from older sources
|
|
863
|
+
// would silently reuse stale runtime code (issue #9309). Reuse only when the
|
|
864
|
+
// dist is at least as new as the package's src. ELIZA_DESKTOP_TRUST_RUNTIME_-
|
|
865
|
+
// PACKAGE_DIST=1 bypasses the mtime check for environments where checkout
|
|
866
|
+
// mtimes are unreliable.
|
|
867
|
+
if (process.env.ELIZA_DESKTOP_TRUST_RUNTIME_PACKAGE_DIST === "1") return true;
|
|
868
|
+
const srcDir = path.join(packageDir, "src");
|
|
869
|
+
if (!fs.existsSync(srcDir)) return true;
|
|
870
|
+
const srcMtime = maxMtimeUnder(srcDir);
|
|
871
|
+
const distMtime = maxMtimeUnder(distDir);
|
|
872
|
+
if (srcMtime > distMtime) {
|
|
873
|
+
console.log(
|
|
874
|
+
`[desktop-build] ${packageName} dist is stale (src newer than dist) — rebuilding`,
|
|
875
|
+
);
|
|
876
|
+
return false;
|
|
877
|
+
}
|
|
878
|
+
return true;
|
|
879
|
+
}
|
|
880
|
+
|
|
881
|
+
function ensureWorkspaceRuntimePackagesBuilt() {
|
|
882
|
+
ensureWorkspaceRuntimePackageBuilt("@elizaos/core", CORE_PACKAGE_DIR);
|
|
883
|
+
ensureWorkspaceRuntimePackageBuilt("@elizaos/shared", SHARED_PACKAGE_DIR);
|
|
884
|
+
ensureWorkspaceRuntimePackageBuilt(
|
|
885
|
+
"@elizaos/cloud-sdk",
|
|
886
|
+
CLOUD_SDK_PACKAGE_DIR,
|
|
887
|
+
);
|
|
888
|
+
ensureWorkspaceRuntimePackageBuilt("@elizaos/security", SECURITY_PACKAGE_DIR);
|
|
889
|
+
ensureWorkspaceRuntimePackageBuilt("@elizaos/vault", VAULT_PACKAGE_DIR);
|
|
890
|
+
ensureWorkspaceRuntimePackageBuilt(
|
|
891
|
+
"@elizaos/plugin-remote-manifest",
|
|
892
|
+
PLUGIN_REMOTE_MANIFEST_PACKAGE_DIR,
|
|
893
|
+
);
|
|
894
|
+
ensureWorkspaceRuntimePackageBuilt(
|
|
895
|
+
"@elizaos/plugin-agent-orchestrator",
|
|
896
|
+
PLUGIN_AGENT_ORCHESTRATOR_PACKAGE_DIR,
|
|
897
|
+
);
|
|
898
|
+
ensureWorkspaceRuntimePackageBuilt(
|
|
899
|
+
"@elizaos/app-model-tester",
|
|
900
|
+
APP_MODEL_TESTER_PACKAGE_DIR,
|
|
901
|
+
);
|
|
902
|
+
ensureWorkspaceRuntimePackageBuilt("@elizaos/ui", UI_PACKAGE_DIR);
|
|
903
|
+
ensureWorkspaceRuntimePackageBuilt(
|
|
904
|
+
"@elizaos/plugin-local-inference",
|
|
905
|
+
PLUGIN_LOCAL_INFERENCE_PACKAGE_DIR,
|
|
906
|
+
);
|
|
907
|
+
ensureWorkspaceRuntimePackageBuilt(
|
|
908
|
+
"@elizaos/plugin-worker-runtime",
|
|
909
|
+
PLUGIN_WORKER_RUNTIME_PACKAGE_DIR,
|
|
910
|
+
);
|
|
911
|
+
ensureWorkspaceRuntimePackageBuilt("@elizaos/agent", AGENT_PACKAGE_DIR);
|
|
912
|
+
ensureWorkspaceRuntimePackageBuilt("@elizaos/app-core", APP_CORE_PACKAGE_DIR);
|
|
913
|
+
}
|
|
914
|
+
|
|
915
|
+
function ensureUiGeneratedAssets() {
|
|
916
|
+
runBun(["run", "generate:css-strings"], {
|
|
917
|
+
cwd: UI_PACKAGE_DIR,
|
|
918
|
+
label: "Generating @elizaos/ui CSS string modules",
|
|
475
919
|
});
|
|
920
|
+
}
|
|
921
|
+
|
|
922
|
+
function desktopRendererBuildEnv() {
|
|
923
|
+
const env = {
|
|
924
|
+
...process.env,
|
|
925
|
+
VITE_APP_VARIANT: variant,
|
|
926
|
+
ELIZA_BUILD_VARIANT: buildVariant,
|
|
927
|
+
};
|
|
928
|
+
if (env.ELIZA_SKIP_LOCAL_UPSTREAMS !== "1") {
|
|
929
|
+
env.ELIZA_FORCE_LOCAL_UPSTREAMS = "1";
|
|
930
|
+
}
|
|
931
|
+
return env;
|
|
932
|
+
}
|
|
933
|
+
|
|
934
|
+
function runtimeCopyArgs() {
|
|
935
|
+
return [
|
|
936
|
+
RUNTIME_COPY_SCRIPT,
|
|
937
|
+
"--scan-dir",
|
|
938
|
+
"dist",
|
|
939
|
+
"--target-dist",
|
|
940
|
+
"dist",
|
|
941
|
+
...excludedOptionalPacks.flatMap((pack) => [
|
|
942
|
+
"--exclude-optional-pack",
|
|
943
|
+
pack,
|
|
944
|
+
]),
|
|
945
|
+
];
|
|
946
|
+
}
|
|
947
|
+
|
|
948
|
+
function runtimeCopyLabel() {
|
|
949
|
+
return excludedOptionalPacks.length > 0
|
|
950
|
+
? `Bundling runtime node_modules into dist (profile=${buildProfile}, excluding: ${excludedOptionalPacks.join(", ")})`
|
|
951
|
+
: `Bundling runtime node_modules into dist (profile=${buildProfile})`;
|
|
952
|
+
}
|
|
953
|
+
|
|
954
|
+
function formatGiB(bytes) {
|
|
955
|
+
return `${(bytes / 1024 / 1024 / 1024).toFixed(1)} GiB`;
|
|
956
|
+
}
|
|
957
|
+
|
|
958
|
+
function directorySizeBytes(dir) {
|
|
959
|
+
if (!fs.existsSync(dir)) return 0;
|
|
960
|
+
|
|
961
|
+
let total = 0;
|
|
962
|
+
const visit = (currentDir) => {
|
|
963
|
+
for (const entry of fs.readdirSync(currentDir, { withFileTypes: true })) {
|
|
964
|
+
const entryPath = path.join(currentDir, entry.name);
|
|
965
|
+
const stat = fs.lstatSync(entryPath);
|
|
966
|
+
if (stat.isDirectory()) {
|
|
967
|
+
visit(entryPath);
|
|
968
|
+
continue;
|
|
969
|
+
}
|
|
970
|
+
total += stat.size;
|
|
971
|
+
}
|
|
972
|
+
};
|
|
973
|
+
|
|
974
|
+
visit(dir);
|
|
975
|
+
return total;
|
|
976
|
+
}
|
|
977
|
+
|
|
978
|
+
function assertRuntimeCopyDiskHeadroom() {
|
|
979
|
+
if (typeof fs.statfsSync !== "function") return;
|
|
980
|
+
|
|
981
|
+
const stat = fs.statfsSync(ROOT);
|
|
982
|
+
const availableBytes = Number(stat.bavail) * Number(stat.bsize);
|
|
983
|
+
const minimumBytes = Number.parseInt(
|
|
984
|
+
process.env.ELIZA_DESKTOP_MIN_FREE_BYTES ?? `${4 * 1024 * 1024 * 1024}`,
|
|
985
|
+
10,
|
|
986
|
+
);
|
|
987
|
+
if (!Number.isFinite(minimumBytes) || minimumBytes <= 0) return;
|
|
988
|
+
if (availableBytes >= minimumBytes) return;
|
|
989
|
+
|
|
990
|
+
const existingRuntimeNodeModules = path.join(ROOT, "dist", "node_modules");
|
|
991
|
+
const recyclableBytes = directorySizeBytes(existingRuntimeNodeModules);
|
|
992
|
+
const effectiveAvailableBytes = availableBytes + recyclableBytes;
|
|
993
|
+
if (effectiveAvailableBytes >= minimumBytes) {
|
|
994
|
+
if (recyclableBytes > 0) {
|
|
995
|
+
console.log(
|
|
996
|
+
`[desktop-build] Runtime copy has ${formatGiB(availableBytes)} free plus ${formatGiB(recyclableBytes)} recyclable generated node_modules output.`,
|
|
997
|
+
);
|
|
998
|
+
}
|
|
999
|
+
return;
|
|
1000
|
+
}
|
|
1001
|
+
|
|
1002
|
+
fail(
|
|
1003
|
+
[
|
|
1004
|
+
`Desktop runtime bundling needs at least ${formatGiB(minimumBytes)} free before copying node_modules; only ${formatGiB(availableBytes)} is available (${formatGiB(effectiveAvailableBytes)} after replacing generated dist/node_modules).`,
|
|
1005
|
+
"Free disk space, remove stale build outputs such as dist/.turbo, or rerun with ELIZA_DESKTOP_MIN_FREE_BYTES=0 if you intentionally want to risk a partial copy.",
|
|
1006
|
+
].join(" "),
|
|
1007
|
+
);
|
|
1008
|
+
}
|
|
1009
|
+
|
|
1010
|
+
function copyRuntimeNodeModulesWithRetry() {
|
|
1011
|
+
assertRuntimeCopyDiskHeadroom();
|
|
1012
|
+
|
|
1013
|
+
const maxAttempts = 2;
|
|
1014
|
+
for (let attempt = 1; attempt <= maxAttempts; attempt += 1) {
|
|
1015
|
+
const result = runBunStatus(runtimeCopyArgs(), {
|
|
1016
|
+
cwd: ROOT,
|
|
1017
|
+
label:
|
|
1018
|
+
attempt === 1
|
|
1019
|
+
? runtimeCopyLabel()
|
|
1020
|
+
: `${runtimeCopyLabel()} (retry ${attempt}/${maxAttempts})`,
|
|
1021
|
+
});
|
|
1022
|
+
if (result.status === 0) {
|
|
1023
|
+
return;
|
|
1024
|
+
}
|
|
1025
|
+
if (attempt < maxAttempts) {
|
|
1026
|
+
console.warn(
|
|
1027
|
+
`[desktop-build] ${result.command} exited ${result.status}; retrying runtime node_modules bundle`,
|
|
1028
|
+
);
|
|
1029
|
+
continue;
|
|
1030
|
+
}
|
|
1031
|
+
fail(
|
|
1032
|
+
`${result.command} failed with exit code ${result.status}`,
|
|
1033
|
+
result.status,
|
|
1034
|
+
);
|
|
1035
|
+
}
|
|
1036
|
+
}
|
|
1037
|
+
|
|
1038
|
+
const FUSED_LIB_STAGE_SCRIPT = path.join(
|
|
1039
|
+
SCRIPT_DIR,
|
|
1040
|
+
"stage-desktop-fused-lib.mjs",
|
|
1041
|
+
);
|
|
1042
|
+
// "auto" → the stager picks the host's best backend (Metal on macOS, CUDA when
|
|
1043
|
+
// nvcc is present, else CPU) with the CPU fallback always baked in, so a local
|
|
1044
|
+
// `--build-fused-lib` produces "CPU + platform GPU" for the build host.
|
|
1045
|
+
const FUSED_LIB_VARIANT =
|
|
1046
|
+
getArgValue(args, "fused-lib-variant") ??
|
|
1047
|
+
process.env.ELIZA_DESKTOP_FUSED_LIB_VARIANT ??
|
|
1048
|
+
"auto";
|
|
1049
|
+
// Where the fused lib is staged so the Electrobun copy (dist -> eliza-dist)
|
|
1050
|
+
// carries it; app-core's runtime probe (ensureBundledFusedLibDir) then finds
|
|
1051
|
+
// `<eliza-dist>/local-inference/lib` with no env wiring.
|
|
1052
|
+
const FUSED_LIB_OUT_DIR = path.join(ROOT, "dist", "local-inference", "lib");
|
|
1053
|
+
|
|
1054
|
+
function fusedLibFilenames() {
|
|
1055
|
+
if (process.platform === "darwin") return ["libelizainference.dylib"];
|
|
1056
|
+
if (process.platform === "win32")
|
|
1057
|
+
return ["elizainference.dll", "libelizainference.dll"];
|
|
1058
|
+
return ["libelizainference.so"];
|
|
1059
|
+
}
|
|
1060
|
+
|
|
1061
|
+
function fusedLibAlreadyStaged() {
|
|
1062
|
+
return fusedLibFilenames().some((name) =>
|
|
1063
|
+
fs.existsSync(path.join(FUSED_LIB_OUT_DIR, name)),
|
|
1064
|
+
);
|
|
1065
|
+
}
|
|
1066
|
+
|
|
1067
|
+
// Provenance for the staged fused lib so the reuse gate never silently reuses a
|
|
1068
|
+
// lib built for a DIFFERENT variant/platform than this build targets (#9309).
|
|
1069
|
+
const FUSED_LIB_SIDECAR = path.join(FUSED_LIB_OUT_DIR, "staged-fused-lib.json");
|
|
1070
|
+
|
|
1071
|
+
function readFusedLibSidecar() {
|
|
1072
|
+
try {
|
|
1073
|
+
return JSON.parse(fs.readFileSync(FUSED_LIB_SIDECAR, "utf8"));
|
|
1074
|
+
} catch {
|
|
1075
|
+
return null;
|
|
1076
|
+
}
|
|
1077
|
+
}
|
|
1078
|
+
|
|
1079
|
+
function writeFusedLibSidecar() {
|
|
1080
|
+
fs.mkdirSync(FUSED_LIB_OUT_DIR, { recursive: true });
|
|
1081
|
+
fs.writeFileSync(
|
|
1082
|
+
FUSED_LIB_SIDECAR,
|
|
1083
|
+
`${JSON.stringify(
|
|
1084
|
+
{
|
|
1085
|
+
variant: FUSED_LIB_VARIANT,
|
|
1086
|
+
platform: process.platform,
|
|
1087
|
+
builtAt: new Date().toISOString(),
|
|
1088
|
+
},
|
|
1089
|
+
null,
|
|
1090
|
+
2,
|
|
1091
|
+
)}\n`,
|
|
1092
|
+
);
|
|
1093
|
+
}
|
|
1094
|
+
|
|
1095
|
+
/**
|
|
1096
|
+
* A staged lib whose provenance sidecar names a DIFFERENT variant/platform than
|
|
1097
|
+
* this build targets — a confirmed wrong-variant lib we must not ship.
|
|
1098
|
+
*/
|
|
1099
|
+
function fusedLibStagedVariantMismatch() {
|
|
1100
|
+
if (!fusedLibAlreadyStaged()) return false;
|
|
1101
|
+
const sidecar = readFusedLibSidecar();
|
|
1102
|
+
if (!sidecar) return false; // no provenance ≠ wrong provenance
|
|
1103
|
+
return (
|
|
1104
|
+
sidecar.variant !== FUSED_LIB_VARIANT ||
|
|
1105
|
+
sidecar.platform !== process.platform
|
|
1106
|
+
);
|
|
1107
|
+
}
|
|
1108
|
+
|
|
1109
|
+
/**
|
|
1110
|
+
* Whether a staged lib can be reused. A lib with a matching sidecar is reused; a
|
|
1111
|
+
* sidecar-less lib (e.g. a prebuilt artifact a CI step dropped into
|
|
1112
|
+
* dist/local-inference/lib) is TRUSTED and reused — we can't confirm its variant
|
|
1113
|
+
* but it was deliberately staged. Only a sidecar that names a different
|
|
1114
|
+
* variant/platform forces a rebuild.
|
|
1115
|
+
*/
|
|
1116
|
+
function fusedLibStagedForCurrentVariant() {
|
|
1117
|
+
return fusedLibAlreadyStaged() && !fusedLibStagedVariantMismatch();
|
|
1118
|
+
}
|
|
1119
|
+
|
|
1120
|
+
const FUSED_LIB_FORK_DIR = path.join(
|
|
1121
|
+
PLUGIN_LOCAL_INFERENCE_PACKAGE_DIR,
|
|
1122
|
+
"native",
|
|
1123
|
+
"llama.cpp",
|
|
1124
|
+
);
|
|
1125
|
+
|
|
1126
|
+
/**
|
|
1127
|
+
* Ensure the native llama.cpp fork submodule is checked out (the fused build
|
|
1128
|
+
* needs its CMakeLists). Release CI checks out with `submodules: false`, so the
|
|
1129
|
+
* fork is absent; init just the one path on demand rather than requiring the
|
|
1130
|
+
* workflow to fetch every submodule. Returns true if the fork is present after.
|
|
1131
|
+
*/
|
|
1132
|
+
function ensureFusedLibSubmodule() {
|
|
1133
|
+
if (fs.existsSync(path.join(FUSED_LIB_FORK_DIR, "CMakeLists.txt")))
|
|
1134
|
+
return true;
|
|
1135
|
+
const rel = path.relative(ROOT, FUSED_LIB_FORK_DIR).split(path.sep).join("/");
|
|
1136
|
+
console.log(
|
|
1137
|
+
`[desktop-build] Native fork missing; initializing submodule ${rel}`,
|
|
1138
|
+
);
|
|
1139
|
+
// NB: no --depth/shallow here — a shallow submodule fetch fails with
|
|
1140
|
+
// "Server does not allow request for unadvertised object <sha>" when the
|
|
1141
|
+
// recorded gitlink commit isn't the remote tip, which is common. Reliability
|
|
1142
|
+
// over speed: this path must actually produce the fork.
|
|
1143
|
+
spawnSync(
|
|
1144
|
+
"git",
|
|
1145
|
+
["-C", ROOT, "submodule", "update", "--init", "--recursive", rel],
|
|
1146
|
+
{ stdio: "inherit" },
|
|
1147
|
+
);
|
|
1148
|
+
return fs.existsSync(path.join(FUSED_LIB_FORK_DIR, "CMakeLists.txt"));
|
|
1149
|
+
}
|
|
1150
|
+
|
|
1151
|
+
/**
|
|
1152
|
+
* Build + stage the fused `libelizainference` into the desktop bundle so a
|
|
1153
|
+
* COMPILED app ships with working local inference — no first-run download, no
|
|
1154
|
+
* manual `build:fused-desktop`. The "auto" variant bakes CPU in and layers the
|
|
1155
|
+
* host's best GPU backend (Metal on macOS; CUDA when nvcc is present; else CPU),
|
|
1156
|
+
* so it works on every host.
|
|
1157
|
+
*
|
|
1158
|
+
* Gating:
|
|
1159
|
+
* - Reuses an already-staged lib (a prior build, or a prebuilt artifact a CI
|
|
1160
|
+
* step dropped into dist/local-inference/lib).
|
|
1161
|
+
* - Builds when explicitly asked (`--build-fused-lib` /
|
|
1162
|
+
* ELIZA_DESKTOP_BUILD_FUSED_LIB=1) OR automatically on CI release builds
|
|
1163
|
+
* (CI=true) — initializing the native submodule on demand. Off for plain
|
|
1164
|
+
* local dev builds (keeps iteration fast).
|
|
1165
|
+
* - An EXPLICIT request hard-fails if it can't produce the lib (unless
|
|
1166
|
+
* ELIZA_DESKTOP_FUSED_LIB_OPTIONAL=1). A CI auto-build is BEST-EFFORT: a
|
|
1167
|
+
* missing toolchain or a build failure warns and ships without the lib
|
|
1168
|
+
* (cloud fallback) rather than breaking the release. Set
|
|
1169
|
+
* ELIZA_DESKTOP_FUSED_LIB_REQUIRED=1 to make CI auto-builds hard-fail too.
|
|
1170
|
+
*/
|
|
1171
|
+
function stageDesktopFusedLib() {
|
|
1172
|
+
const explicitlyRequested =
|
|
1173
|
+
getBooleanArg(args, "build-fused-lib") ||
|
|
1174
|
+
process.env.ELIZA_DESKTOP_BUILD_FUSED_LIB === "1";
|
|
1175
|
+
const ciAutoBuild = process.env.CI === "true";
|
|
1176
|
+
const shouldBuild = explicitlyRequested || ciAutoBuild;
|
|
1177
|
+
const required =
|
|
1178
|
+
(explicitlyRequested ||
|
|
1179
|
+
process.env.ELIZA_DESKTOP_FUSED_LIB_REQUIRED === "1") &&
|
|
1180
|
+
process.env.ELIZA_DESKTOP_FUSED_LIB_OPTIONAL !== "1";
|
|
1181
|
+
|
|
1182
|
+
if (
|
|
1183
|
+
fusedLibStagedForCurrentVariant() &&
|
|
1184
|
+
process.env.ELIZA_DESKTOP_REBUILD_FUSED_LIB !== "1"
|
|
1185
|
+
) {
|
|
1186
|
+
console.log(
|
|
1187
|
+
`[desktop-build] Reusing already-staged fused lib in ${FUSED_LIB_OUT_DIR} ` +
|
|
1188
|
+
`(variant=${FUSED_LIB_VARIANT}, ${process.platform})`,
|
|
1189
|
+
);
|
|
1190
|
+
return;
|
|
1191
|
+
}
|
|
1192
|
+
|
|
1193
|
+
// A staged lib whose sidecar names a DIFFERENT variant/platform is a confirmed
|
|
1194
|
+
// wrong-variant lib — never silently reused. (A sidecar-less drop-in is trusted
|
|
1195
|
+
// and was already reused above.)
|
|
1196
|
+
const variantMismatch = fusedLibStagedVariantMismatch();
|
|
1197
|
+
if (variantMismatch) {
|
|
1198
|
+
const sidecar = readFusedLibSidecar();
|
|
1199
|
+
console.warn(
|
|
1200
|
+
`[desktop-build] Staged fused lib does not match this build ` +
|
|
1201
|
+
`(want variant=${FUSED_LIB_VARIANT}/${process.platform}, found ` +
|
|
1202
|
+
`${sidecar.variant}/${sidecar.platform}). ` +
|
|
1203
|
+
`It will be rebuilt to avoid shipping a wrong-variant native lib.`,
|
|
1204
|
+
);
|
|
1205
|
+
}
|
|
1206
|
+
|
|
1207
|
+
if (!shouldBuild) {
|
|
1208
|
+
if (variantMismatch) {
|
|
1209
|
+
// Can't rebuild here (no toolchain requested) and the staged lib is the
|
|
1210
|
+
// wrong variant — drop it so the app cleanly falls back to cloud inference
|
|
1211
|
+
// instead of dlopen()-ing a mismatched backend on the device.
|
|
1212
|
+
for (const name of fusedLibFilenames()) {
|
|
1213
|
+
fs.rmSync(path.join(FUSED_LIB_OUT_DIR, name), { force: true });
|
|
1214
|
+
}
|
|
1215
|
+
fs.rmSync(FUSED_LIB_SIDECAR, { force: true });
|
|
1216
|
+
console.warn(
|
|
1217
|
+
"[desktop-build] Removed the mismatched fused lib; this build ships without " +
|
|
1218
|
+
"local inference. Rebuild with --build-fused-lib to stage the right variant.",
|
|
1219
|
+
);
|
|
1220
|
+
return;
|
|
1221
|
+
}
|
|
1222
|
+
console.log(
|
|
1223
|
+
"[desktop-build] Skipping fused libelizainference build (local-inference will be " +
|
|
1224
|
+
"unavailable in this build). Enable with --build-fused-lib or " +
|
|
1225
|
+
"ELIZA_DESKTOP_BUILD_FUSED_LIB=1 (CI release builds enable it automatically).",
|
|
1226
|
+
);
|
|
1227
|
+
return;
|
|
1228
|
+
}
|
|
476
1229
|
|
|
477
|
-
|
|
1230
|
+
// Surface a hard failure for an explicit request that can't proceed; otherwise
|
|
1231
|
+
// warn and ship without the lib so a release never breaks on the native build.
|
|
1232
|
+
const giveUp = (reason) => {
|
|
1233
|
+
if (required) {
|
|
1234
|
+
fail(
|
|
1235
|
+
`Cannot build the fused libelizainference for the desktop bundle: ${reason}. ` +
|
|
1236
|
+
"Install the toolchain / init submodules, or set " +
|
|
1237
|
+
"ELIZA_DESKTOP_FUSED_LIB_OPTIONAL=1 to ship without local inference.",
|
|
1238
|
+
);
|
|
1239
|
+
}
|
|
1240
|
+
console.warn(
|
|
1241
|
+
`[desktop-build] Skipping fused libelizainference build — ${reason}. ` +
|
|
1242
|
+
"The compiled app will fall back to cloud inference.",
|
|
1243
|
+
);
|
|
1244
|
+
};
|
|
1245
|
+
|
|
1246
|
+
if (!which("cmake")) {
|
|
1247
|
+
giveUp("cmake not found on PATH");
|
|
1248
|
+
return;
|
|
1249
|
+
}
|
|
1250
|
+
if (!ensureFusedLibSubmodule()) {
|
|
1251
|
+
giveUp(`native fork not available at ${FUSED_LIB_FORK_DIR}`);
|
|
1252
|
+
return;
|
|
1253
|
+
}
|
|
1254
|
+
|
|
1255
|
+
fs.mkdirSync(FUSED_LIB_OUT_DIR, { recursive: true });
|
|
1256
|
+
run(
|
|
1257
|
+
"node",
|
|
478
1258
|
[
|
|
479
|
-
|
|
480
|
-
"
|
|
481
|
-
|
|
482
|
-
"--
|
|
483
|
-
|
|
484
|
-
"--target-dist",
|
|
485
|
-
"dist",
|
|
486
|
-
...excludedOptionalPacks.flatMap((pack) => [
|
|
487
|
-
"--exclude-optional-pack",
|
|
488
|
-
pack,
|
|
489
|
-
]),
|
|
1259
|
+
FUSED_LIB_STAGE_SCRIPT,
|
|
1260
|
+
"--variant",
|
|
1261
|
+
FUSED_LIB_VARIANT,
|
|
1262
|
+
"--out",
|
|
1263
|
+
FUSED_LIB_OUT_DIR,
|
|
490
1264
|
],
|
|
491
1265
|
{
|
|
492
1266
|
cwd: ROOT,
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
1267
|
+
// A CI auto-build that fails must not abort the whole release; an explicit
|
|
1268
|
+
// request is allowed to hard-fail.
|
|
1269
|
+
allowFailure: !required,
|
|
1270
|
+
label: `Building + staging fused libelizainference (${FUSED_LIB_VARIANT}) into the desktop bundle`,
|
|
497
1271
|
},
|
|
498
1272
|
);
|
|
499
1273
|
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
1274
|
+
if (!fusedLibAlreadyStaged()) {
|
|
1275
|
+
giveUp("the build produced no lib in the output dir");
|
|
1276
|
+
return;
|
|
1277
|
+
}
|
|
1278
|
+
// Record provenance so a later build with a different variant/platform won't
|
|
1279
|
+
// silently reuse this lib.
|
|
1280
|
+
writeFusedLibSidecar();
|
|
1281
|
+
}
|
|
1282
|
+
|
|
1283
|
+
function stageDesktopBuild() {
|
|
1284
|
+
ensureWorkspaceCheckoutPresent();
|
|
1285
|
+
ensureAppDirs();
|
|
1286
|
+
|
|
1287
|
+
ensureRootRuntimeBundle();
|
|
1288
|
+
ensureWorkspaceRuntimePackagesBuilt();
|
|
1289
|
+
|
|
1290
|
+
// Build + bundle the fused local-inference native lib so the packaged app
|
|
1291
|
+
// serves local AI out of the box. Gated (see stageDesktopFusedLib) so plain
|
|
1292
|
+
// dev builds stay fast; auto-built best-effort on CI release builds.
|
|
1293
|
+
stageDesktopFusedLib();
|
|
1294
|
+
|
|
1295
|
+
runBun(["run", "generate:css-strings"], {
|
|
1296
|
+
cwd: UI_PACKAGE_DIR,
|
|
1297
|
+
label: "Generating UI runtime CSS string modules",
|
|
503
1298
|
});
|
|
504
1299
|
|
|
505
|
-
runBun([
|
|
506
|
-
cwd:
|
|
507
|
-
label: "
|
|
1300
|
+
runBun([WRITE_BUILD_INFO_SCRIPT], {
|
|
1301
|
+
cwd: ROOT,
|
|
1302
|
+
label: "Writing build metadata",
|
|
508
1303
|
});
|
|
509
1304
|
|
|
510
|
-
|
|
1305
|
+
copyRuntimeNodeModulesWithRetry();
|
|
1306
|
+
|
|
1307
|
+
// `bun install` for these workspaces can emit benign EEXIST errors when
|
|
1308
|
+
// file: deps overlap with manually-linked @elizaos/* symlinks. The links
|
|
1309
|
+
// get created successfully; bun exits non-zero only because of the dup
|
|
1310
|
+
// attempt. Tolerate so the build can proceed.
|
|
1311
|
+
runOptionalWorkspaceInstall(
|
|
1312
|
+
APP_DIR,
|
|
1313
|
+
"Ensuring app workspace dependencies are installed",
|
|
1314
|
+
);
|
|
1315
|
+
|
|
1316
|
+
runOptionalWorkspaceInstall(
|
|
1317
|
+
ELECTROBUN_DIR,
|
|
1318
|
+
"Ensuring Electrobun workspace dependencies are installed",
|
|
1319
|
+
);
|
|
1320
|
+
|
|
1321
|
+
ensureUiGeneratedAssets();
|
|
1322
|
+
|
|
1323
|
+
// Capture the moment the renderer build starts so we can prove afterward that
|
|
1324
|
+
// a FRESH bundle was produced — not a stale dist silently reused (issue #9309).
|
|
1325
|
+
const rendererBuildStartedAt = Date.now() - 1000;
|
|
1326
|
+
runBunPackageBinary("vite", ["build"], {
|
|
511
1327
|
cwd: APP_DIR,
|
|
512
|
-
env:
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
1328
|
+
env: desktopRendererBuildEnv(),
|
|
1329
|
+
label: `Building renderer bundle (VITE_APP_VARIANT=${variant}, ELIZA_BUILD_VARIANT=${buildVariant})`,
|
|
1330
|
+
});
|
|
1331
|
+
// Fail loudly if the renderer manifest is missing or predates this build (a
|
|
1332
|
+
// cached/stale dist was reused) or was built for a different variant.
|
|
1333
|
+
assertRendererRebuiltSince(path.join(APP_DIR, "dist"), {
|
|
1334
|
+
notBefore: rendererBuildStartedAt,
|
|
1335
|
+
expectVariant: buildVariant,
|
|
1336
|
+
label: "desktop",
|
|
518
1337
|
});
|
|
519
1338
|
|
|
520
1339
|
runDesktopPreflight();
|
|
@@ -525,20 +1344,32 @@ function stageDesktopBuild() {
|
|
|
525
1344
|
});
|
|
526
1345
|
|
|
527
1346
|
if (process.platform === "darwin") {
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
1347
|
+
// build:native-effects shells to `xcrun clang++` (Xcode Command Line
|
|
1348
|
+
// Tools). On a dev machine without the CLT the compile would hard-fail
|
|
1349
|
+
// deep in the stage; skip gracefully unless the build was explicitly asked
|
|
1350
|
+
// for the native bits (CI passes --build-native-effects on a tooled runner).
|
|
1351
|
+
const clangAvailable =
|
|
1352
|
+
which("xcrun") && runCapture("xcrun", ["-f", "clang++"]).status === 0;
|
|
1353
|
+
if (!clangAvailable) {
|
|
1354
|
+
if (nativeEffectsExplicitlyRequested) {
|
|
1355
|
+
fail(
|
|
1356
|
+
"Native macOS effects build requires the Xcode Command Line Tools " +
|
|
1357
|
+
"(xcrun clang++), which are missing. Install them with " +
|
|
1358
|
+
"`xcode-select --install`, or omit --build-native-effects / " +
|
|
1359
|
+
"ELIZA_DESKTOP_BUILD_NATIVE_EFFECTS=1.",
|
|
1360
|
+
);
|
|
1361
|
+
}
|
|
1362
|
+
console.warn(
|
|
1363
|
+
"[desktop-build] Skipping native macOS effects dylib — Xcode Command " +
|
|
1364
|
+
"Line Tools (xcrun clang++) not found. Request the native build " +
|
|
1365
|
+
"explicitly with --build-native-effects to make this a hard error.",
|
|
1366
|
+
);
|
|
1367
|
+
} else {
|
|
1368
|
+
runBun(["run", "build:native-effects"], {
|
|
1369
|
+
cwd: ELECTROBUN_DIR,
|
|
1370
|
+
label: "Building native macOS effects dylib",
|
|
1371
|
+
});
|
|
1372
|
+
}
|
|
542
1373
|
}
|
|
543
1374
|
}
|
|
544
1375
|
|
|
@@ -700,9 +1531,9 @@ function mirrorCanonicalToLegacy(name) {
|
|
|
700
1531
|
|
|
701
1532
|
function packageDesktopBuild() {
|
|
702
1533
|
ensureAppDirs();
|
|
703
|
-
const packageArgs = ["
|
|
1534
|
+
const packageArgs = ["build"];
|
|
704
1535
|
if (buildEnv) {
|
|
705
|
-
packageArgs.push(
|
|
1536
|
+
packageArgs.push(`--env=${buildEnv}`);
|
|
706
1537
|
}
|
|
707
1538
|
|
|
708
1539
|
if (process.platform === "darwin") {
|
|
@@ -720,15 +1551,17 @@ function packageDesktopBuild() {
|
|
|
720
1551
|
|
|
721
1552
|
const packageEnv = {
|
|
722
1553
|
...process.env,
|
|
1554
|
+
ELECTROBUN_SKIP_CODESIGN: process.env.ELECTROBUN_SKIP_CODESIGN ?? "1",
|
|
723
1555
|
ELIZA_ELECTROBUN_REPO_ROOT: process.env.ELIZA_ELECTROBUN_REPO_ROOT ?? ROOT,
|
|
724
|
-
|
|
1556
|
+
ELIZA_BUILD_VARIANT: buildVariant,
|
|
1557
|
+
PATH: `${path.join(ELECTROBUN_DIR, "scripts", "bin")}${path.delimiter}${process.env.PATH ?? ""}`,
|
|
725
1558
|
...appIdentityEnv(APP_DIR),
|
|
726
1559
|
...(stageMacosReleaseApp && process.platform === "darwin"
|
|
727
1560
|
? { ELIZA_ELECTROBUN_NOTARIZE: "0" }
|
|
728
1561
|
: {}),
|
|
729
1562
|
};
|
|
730
1563
|
|
|
731
|
-
|
|
1564
|
+
runElectrobun(packageArgs, {
|
|
732
1565
|
cwd: ELECTROBUN_DIR,
|
|
733
1566
|
env: packageEnv,
|
|
734
1567
|
label: buildEnv
|
|
@@ -760,9 +1593,11 @@ function packageDesktopBuild() {
|
|
|
760
1593
|
|
|
761
1594
|
// Mac App Store post-package codesign: when building the store variant on
|
|
762
1595
|
// macOS with real signing enabled, walk the bundle and re-sign every nested
|
|
763
|
-
// Mach-O with
|
|
764
|
-
//
|
|
765
|
-
//
|
|
1596
|
+
// Mach-O with the narrowest applicable entitlements. Most helpers get
|
|
1597
|
+
// mas-child.entitlements, the Bun helper gets mas-bun.entitlements
|
|
1598
|
+
// (Bun-scoped allow-jit), and the parent .app gets mas.entitlements.
|
|
1599
|
+
// Required because Electrobun's config exposes only one entitlements field;
|
|
1600
|
+
// helpers must inherit explicitly.
|
|
766
1601
|
if (
|
|
767
1602
|
process.platform === "darwin" &&
|
|
768
1603
|
buildVariant === "store" &&
|
|
@@ -773,9 +1608,9 @@ function packageDesktopBuild() {
|
|
|
773
1608
|
path.join(SCRIPT_DIR, "codesign-mas.mjs"),
|
|
774
1609
|
`--app=${appBundlePath}`,
|
|
775
1610
|
];
|
|
776
|
-
if (process.env.
|
|
1611
|
+
if (process.env.ELIZA_MAS_INSTALLER_IDENTITY) {
|
|
777
1612
|
codesignArgs.push(
|
|
778
|
-
`--installer-identity=${process.env.
|
|
1613
|
+
`--installer-identity=${process.env.ELIZA_MAS_INSTALLER_IDENTITY}`,
|
|
779
1614
|
);
|
|
780
1615
|
}
|
|
781
1616
|
run("node", codesignArgs, {
|
|
@@ -783,6 +1618,26 @@ function packageDesktopBuild() {
|
|
|
783
1618
|
env: packageEnv,
|
|
784
1619
|
label: `MAS post-package codesign (${path.basename(appBundlePath)})`,
|
|
785
1620
|
});
|
|
1621
|
+
|
|
1622
|
+
// Opt-in post-sign verification. Walks every Mach-O and asserts the
|
|
1623
|
+
// tightened entitlement set is what actually shipped — protects against
|
|
1624
|
+
// future regressions in the signer or in the entitlement plists. Skipped
|
|
1625
|
+
// by default because most builds don't want the extra walk; CI store
|
|
1626
|
+
// builds and developers debugging MAS signing should enable it.
|
|
1627
|
+
if (
|
|
1628
|
+
getBooleanArg(args, "verify-mas") ||
|
|
1629
|
+
process.env.ELIZA_VERIFY_MAS === "1"
|
|
1630
|
+
) {
|
|
1631
|
+
run(
|
|
1632
|
+
"node",
|
|
1633
|
+
[path.join(SCRIPT_DIR, "mas-smoke.mjs"), `--app=${appBundlePath}`],
|
|
1634
|
+
{
|
|
1635
|
+
cwd: ROOT,
|
|
1636
|
+
env: packageEnv,
|
|
1637
|
+
label: `MAS entitlements verification (${path.basename(appBundlePath)})`,
|
|
1638
|
+
},
|
|
1639
|
+
);
|
|
1640
|
+
}
|
|
786
1641
|
}
|
|
787
1642
|
|
|
788
1643
|
if (stageMacosReleaseApp && process.platform === "darwin") {
|
|
@@ -829,39 +1684,51 @@ Options:
|
|
|
829
1684
|
and forces Cloud hosting at runtime; "direct"
|
|
830
1685
|
keeps current unsandboxed behavior.
|
|
831
1686
|
--env <channel> Electrobun build env (e.g. canary, stable)
|
|
832
|
-
--build-whisper Build whisper.cpp on macOS/Linux during stage
|
|
833
1687
|
--stage-macos-release-app Stage a direct macOS .app + DMG from the Electrobun build output
|
|
834
1688
|
--exclude-optional-pack <name> Exclude a manifest-classified optional capability pack during staging
|
|
1689
|
+
--build-native-effects Require the native macOS effects dylib build (hard-fail if Xcode CLT is missing)
|
|
1690
|
+
--verify-mas After MAS codesign, walk the bundle and verify the tightened
|
|
1691
|
+
entitlements via mas-smoke.mjs. Off by default; ELIZA_VERIFY_MAS=1
|
|
1692
|
+
also enables it.
|
|
835
1693
|
|
|
836
1694
|
Environment:
|
|
837
1695
|
ELIZA_DESKTOP_COMMAND_PREFIX Prefix every spawned command, e.g. "arch -x86_64"
|
|
1696
|
+
ELIZA_VERIFY_MAS=1 Enable mas-smoke entitlement verification on store builds.
|
|
838
1697
|
`);
|
|
839
1698
|
}
|
|
840
1699
|
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
1700
|
+
function runCommand() {
|
|
1701
|
+
switch (command) {
|
|
1702
|
+
case "preflight":
|
|
1703
|
+
runDesktopPreflight();
|
|
1704
|
+
break;
|
|
1705
|
+
case "stage":
|
|
1706
|
+
stageDesktopBuild();
|
|
1707
|
+
break;
|
|
1708
|
+
case "package":
|
|
1709
|
+
packageDesktopBuild();
|
|
1710
|
+
break;
|
|
1711
|
+
case "build":
|
|
1712
|
+
stageDesktopBuild();
|
|
1713
|
+
packageDesktopBuild();
|
|
1714
|
+
break;
|
|
1715
|
+
case "run":
|
|
1716
|
+
stageDesktopBuild();
|
|
1717
|
+
packageDesktopBuild();
|
|
1718
|
+
runDesktopBuild();
|
|
1719
|
+
break;
|
|
1720
|
+
case "help":
|
|
1721
|
+
case "--help":
|
|
1722
|
+
case "-h":
|
|
1723
|
+
printUsage();
|
|
1724
|
+
break;
|
|
1725
|
+
default:
|
|
1726
|
+
fail(`Unknown command: ${command}`);
|
|
1727
|
+
}
|
|
1728
|
+
}
|
|
1729
|
+
|
|
1730
|
+
if (["preflight", "help", "--help", "-h"].includes(command)) {
|
|
1731
|
+
runCommand();
|
|
1732
|
+
} else {
|
|
1733
|
+
withDesktopBuildLock(runCommand);
|
|
867
1734
|
}
|