@elizaos/app-core 2.0.0-beta.2 → 2.0.11-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1534) hide show
  1. package/agent-bridge.d.ts +27 -0
  2. package/agent-bridge.d.ts.map +1 -0
  3. package/agent-bridge.js +26 -0
  4. package/api/__tests__/sandbox-test-helpers.js +1 -1
  5. package/api/auth/audit.js +1 -1
  6. package/api/auth/auth-context.js +1 -1
  7. package/api/auth/bootstrap-token.js +2 -2
  8. package/api/auth/index.d.ts +9 -10
  9. package/api/auth/index.d.ts.map +1 -1
  10. package/api/auth/index.js +9 -10
  11. package/api/auth/passwords.js +2 -2
  12. package/api/auth/sensitive-rate-limit.d.ts +1 -4
  13. package/api/auth/sensitive-rate-limit.d.ts.map +1 -1
  14. package/api/auth/sensitive-rate-limit.js +6 -6
  15. package/api/auth/sessions.js +2 -2
  16. package/api/auth-bootstrap-routes.d.ts +6 -13
  17. package/api/auth-bootstrap-routes.d.ts.map +1 -1
  18. package/api/auth-bootstrap-routes.js +14 -27
  19. package/api/auth-pairing-routes.d.ts +17 -0
  20. package/api/auth-pairing-routes.d.ts.map +1 -0
  21. package/api/auth-pairing-routes.js +300 -0
  22. package/api/auth-session-routes.d.ts.map +1 -1
  23. package/api/auth-session-routes.js +36 -15
  24. package/api/auth.d.ts +12 -19
  25. package/api/auth.d.ts.map +1 -1
  26. package/api/auth.js +32 -27
  27. package/api/automations-compat-routes.d.ts.map +1 -1
  28. package/api/automations-compat-routes.js +5 -5
  29. package/api/background-tasks-routes.d.ts +4 -0
  30. package/api/background-tasks-routes.d.ts.map +1 -0
  31. package/api/background-tasks-routes.js +63 -0
  32. package/api/catalog-routes.js +3 -3
  33. package/api/cloud-pair-route.d.ts +26 -0
  34. package/api/cloud-pair-route.d.ts.map +1 -0
  35. package/api/cloud-pair-route.js +222 -0
  36. package/api/cloud-voice-routes.d.ts +52 -0
  37. package/api/cloud-voice-routes.d.ts.map +1 -0
  38. package/api/cloud-voice-routes.js +50 -0
  39. package/api/compat-route-shared.d.ts +2 -2
  40. package/api/compat-route-shared.d.ts.map +1 -1
  41. package/api/compat-route-shared.js +11 -7
  42. package/api/credential-resolver.d.ts +2 -2
  43. package/api/credential-resolver.d.ts.map +1 -1
  44. package/api/credential-resolver.js +8 -2
  45. package/api/database-rows-compat-routes.d.ts.map +1 -1
  46. package/api/database-rows-compat-routes.js +69 -31
  47. package/api/dev-boot-history.d.ts +26 -0
  48. package/api/dev-boot-history.d.ts.map +1 -0
  49. package/api/dev-boot-history.js +69 -0
  50. package/api/dev-compat-routes.d.ts +5 -0
  51. package/api/dev-compat-routes.d.ts.map +1 -1
  52. package/api/dev-compat-routes.js +127 -4
  53. package/api/dev-console-log.d.ts +2 -2
  54. package/api/dev-console-log.d.ts.map +1 -1
  55. package/api/dev-console-log.js +8 -5
  56. package/api/dev-route-catalog.d.ts +58 -0
  57. package/api/dev-route-catalog.d.ts.map +1 -0
  58. package/api/dev-route-catalog.js +447 -0
  59. package/api/dev-stack.d.ts.map +1 -1
  60. package/api/dev-stack.js +6 -9
  61. package/api/first-run-routes.d.ts +4 -0
  62. package/api/first-run-routes.d.ts.map +1 -0
  63. package/api/first-run-routes.js +208 -0
  64. package/api/first-run-tts-route.d.ts +19 -0
  65. package/api/first-run-tts-route.d.ts.map +1 -0
  66. package/api/first-run-tts-route.js +59 -0
  67. package/api/internal-routes.d.ts +23 -0
  68. package/api/internal-routes.d.ts.map +1 -0
  69. package/api/internal-routes.js +203 -0
  70. package/api/ios-local-agent-transport.d.ts +36 -0
  71. package/api/ios-local-agent-transport.d.ts.map +1 -0
  72. package/api/ios-local-agent-transport.js +566 -0
  73. package/api/onboarding-voice-lines.d.ts +23 -0
  74. package/api/onboarding-voice-lines.d.ts.map +1 -0
  75. package/api/onboarding-voice-lines.js +8 -0
  76. package/api/perf-instrument.d.ts +43 -0
  77. package/api/perf-instrument.d.ts.map +1 -0
  78. package/api/perf-instrument.js +113 -0
  79. package/api/response.d.ts.map +1 -1
  80. package/api/response.js +14 -14
  81. package/api/runtime-mode-routes.d.ts.map +1 -1
  82. package/api/runtime-mode-routes.js +2 -2
  83. package/api/secrets-inventory-routes.js +2 -2
  84. package/api/secrets-manager-routes.d.ts +1 -1
  85. package/api/secrets-manager-routes.d.ts.map +1 -1
  86. package/api/secrets-manager-routes.js +9 -10
  87. package/api/sensitive-request-routes.d.ts.map +1 -1
  88. package/api/sensitive-request-routes.js +5 -5
  89. package/api/sensitive-request-store.d.ts +12 -3
  90. package/api/sensitive-request-store.d.ts.map +1 -1
  91. package/api/server-cors.d.ts.map +1 -1
  92. package/api/server-cors.js +13 -2
  93. package/api/server-first-run-helpers.d.ts +26 -0
  94. package/api/server-first-run-helpers.d.ts.map +1 -0
  95. package/api/server-first-run-helpers.js +271 -0
  96. package/api/server-security.js +1 -1
  97. package/api/server-startup.d.ts.map +1 -1
  98. package/api/server-startup.js +3 -4
  99. package/api/server-wallet-trade.js +1 -1
  100. package/api/server.d.ts +4 -4
  101. package/api/server.d.ts.map +1 -1
  102. package/api/server.js +222 -88
  103. package/api/setup-contract.d.ts +63 -0
  104. package/api/setup-contract.d.ts.map +1 -0
  105. package/api/setup-contract.js +39 -0
  106. package/api/training-benchmarks.d.ts +97 -0
  107. package/api/training-benchmarks.d.ts.map +1 -0
  108. package/api/training-benchmarks.js +307 -0
  109. package/api/workbench-compat-routes.js +2 -2
  110. package/benchmark/cerebras-autowire.d.ts +28 -0
  111. package/benchmark/cerebras-autowire.d.ts.map +1 -0
  112. package/benchmark/cerebras-autowire.js +62 -0
  113. package/benchmark/lifeops-bench-handler.d.ts +36 -0
  114. package/benchmark/lifeops-bench-handler.d.ts.map +1 -1
  115. package/benchmark/lifeops-bench-handler.js +63 -1
  116. package/benchmark/lifeops-fake-backend.d.ts +39 -0
  117. package/benchmark/lifeops-fake-backend.d.ts.map +1 -1
  118. package/benchmark/lifeops-fake-backend.js +993 -21
  119. package/benchmark/mock-plugin.d.ts.map +1 -1
  120. package/benchmark/mock-plugin.js +0 -24
  121. package/benchmark/plugin.d.ts +2 -1
  122. package/benchmark/plugin.d.ts.map +1 -1
  123. package/benchmark/plugin.js +989 -68
  124. package/benchmark/replay-capture.d.ts +2 -2
  125. package/benchmark/replay-capture.d.ts.map +1 -1
  126. package/benchmark/replay-capture.js +3 -3
  127. package/benchmark/server-utils.d.ts +162 -9
  128. package/benchmark/server-utils.d.ts.map +1 -1
  129. package/benchmark/server-utils.js +625 -62
  130. package/benchmark/server.d.ts.map +1 -1
  131. package/benchmark/server.js +1962 -118
  132. package/boot-profile.d.ts +3 -0
  133. package/boot-profile.d.ts.map +1 -0
  134. package/boot-profile.js +30 -0
  135. package/browser.d.ts +23 -1
  136. package/browser.d.ts.map +1 -1
  137. package/browser.js +20 -1
  138. package/cli/argv.js +1 -1
  139. package/cli/banner.js +1 -1
  140. package/cli/command-format.js +2 -2
  141. package/cli/doctor/checks.d.ts.map +1 -1
  142. package/cli/doctor/checks.js +6 -6
  143. package/cli/plugins-cli.d.ts.map +1 -1
  144. package/cli/plugins-cli.js +77 -32
  145. package/cli/profile.d.ts.map +1 -1
  146. package/cli/profile.js +5 -4
  147. package/cli/program/build-program.js +4 -4
  148. package/cli/program/command-registry.d.ts.map +1 -1
  149. package/cli/program/command-registry.js +13 -11
  150. package/cli/program/help.js +5 -5
  151. package/cli/program/preaction.js +5 -5
  152. package/cli/program/register.auth.d.ts.map +1 -1
  153. package/cli/program/register.auth.js +6 -12
  154. package/cli/program/register.capability-router.d.ts +29 -0
  155. package/cli/program/register.capability-router.d.ts.map +1 -0
  156. package/cli/program/register.capability-router.js +568 -0
  157. package/cli/program/register.config.js +1 -1
  158. package/cli/program/register.configure.d.ts.map +1 -1
  159. package/cli/program/register.configure.js +1 -1
  160. package/cli/program/register.dashboard.d.ts.map +1 -1
  161. package/cli/program/register.dashboard.js +6 -7
  162. package/cli/program/register.db.d.ts.map +1 -1
  163. package/cli/program/register.db.js +3 -4
  164. package/cli/program/register.doctor.js +7 -7
  165. package/cli/program/register.setup.d.ts.map +1 -1
  166. package/cli/program/register.setup.js +14 -10
  167. package/cli/program/register.start.d.ts.map +1 -1
  168. package/cli/program/register.start.js +5 -3
  169. package/cli/program/register.subclis.js +3 -3
  170. package/cli/program/register.update.d.ts +6 -0
  171. package/cli/program/register.update.d.ts.map +1 -1
  172. package/cli/program/register.update.js +58 -6
  173. package/cli/program.js +1 -1
  174. package/cli/run-main.js +4 -4
  175. package/config/app-config.d.ts +2 -0
  176. package/config/app-config.d.ts.map +1 -0
  177. package/config/app-config.js +1 -0
  178. package/connectors/capacitor-jsc.d.ts.map +1 -1
  179. package/connectors/capacitor-jsc.js +16 -10
  180. package/connectors/capacitor-quickjs.d.ts.map +1 -1
  181. package/connectors/capacitor-quickjs.js +18 -13
  182. package/connectors/capacitor-sqlite.d.ts.map +1 -1
  183. package/connectors/capacitor-sqlite.js +27 -12
  184. package/dispatch/approval-queue.d.ts +37 -0
  185. package/dispatch/approval-queue.d.ts.map +1 -0
  186. package/dispatch/approval-queue.js +25 -0
  187. package/dispatch/channel-registry.d.ts +30 -0
  188. package/dispatch/channel-registry.d.ts.map +1 -0
  189. package/dispatch/channel-registry.js +22 -0
  190. package/dispatch/connector-registry.d.ts +39 -0
  191. package/dispatch/connector-registry.d.ts.map +1 -0
  192. package/dispatch/connector-registry.js +24 -0
  193. package/dispatch/index.d.ts +14 -0
  194. package/dispatch/index.d.ts.map +1 -0
  195. package/dispatch/index.js +13 -0
  196. package/dispatch/send-policy.d.ts +36 -0
  197. package/dispatch/send-policy.d.ts.map +1 -0
  198. package/dispatch/send-policy.js +16 -0
  199. package/entry.js +28 -11
  200. package/first-run/first-run-config.d.ts +55 -0
  201. package/first-run/first-run-config.d.ts.map +1 -0
  202. package/first-run/first-run-config.js +178 -0
  203. package/first-run/runtime-target.d.ts +4 -0
  204. package/first-run/runtime-target.d.ts.map +1 -0
  205. package/first-run/runtime-target.js +13 -0
  206. package/index.d.ts +16 -3
  207. package/index.d.ts.map +1 -1
  208. package/index.js +57 -33
  209. package/package.json +159 -50
  210. package/packaging/debian/apt-repo-config/README.md +18 -0
  211. package/packaging/debian/apt-repo-config/conf/distributions +11 -0
  212. package/packaging/flatpak/README.md +26 -16
  213. package/packaging/flatpak/ai.elizaos.App.metainfo.xml +17 -12
  214. package/packaging/flatpak/ai.elizaos.App.store.yml +5 -5
  215. package/packaging/flatpak/ai.elizaos.App.yml +10 -24
  216. package/packaging/flatpak/elizaos-app-wrapper.store.sh +2 -2
  217. package/packaging/flatpak/generate-sources.sh +74 -0
  218. package/packaging/flatpak/node-sources.json +7930 -0
  219. package/packaging/inno/build-inno.ps1 +34 -9
  220. package/packaging/msix/AppxManifest.store.xml +1 -1
  221. package/packaging/msix/README.md +39 -19
  222. package/packaging/msix/build-msix.ps1 +44 -14
  223. package/packaging/snap/snapcraft.yaml +22 -21
  224. package/packaging/test-packaging.sh +2 -2
  225. package/permissions/types.d.ts +1 -1
  226. package/permissions/types.js +1 -1
  227. package/platform/elizaos-agent-browser-stub.d.ts +144 -0
  228. package/platform/elizaos-agent-browser-stub.d.ts.map +1 -0
  229. package/platform/elizaos-agent-browser-stub.js +158 -0
  230. package/platform/elizaos-plugin-elizacloud-browser-stub.d.ts +34 -0
  231. package/platform/elizaos-plugin-elizacloud-browser-stub.d.ts.map +1 -0
  232. package/platform/elizaos-plugin-elizacloud-browser-stub.js +51 -0
  233. package/platform/empty-node-module.d.ts +148 -0
  234. package/platform/empty-node-module.d.ts.map +1 -1
  235. package/platform/empty-node-module.js +140 -3
  236. package/platform/ios-runtime-backends.d.ts +83 -0
  237. package/platform/ios-runtime-backends.d.ts.map +1 -0
  238. package/platform/ios-runtime-backends.js +133 -0
  239. package/platform/ios-runtime-bridge.d.ts +15 -0
  240. package/platform/ios-runtime-bridge.d.ts.map +1 -0
  241. package/platform/ios-runtime-bridge.js +527 -0
  242. package/platform/native-library-policy.d.ts +23 -0
  243. package/platform/native-library-policy.d.ts.map +1 -0
  244. package/platform/native-library-policy.js +112 -0
  245. package/platform/native-plugin-entrypoints.d.ts +19 -0
  246. package/platform/native-plugin-entrypoints.d.ts.map +1 -0
  247. package/platform/native-plugin-entrypoints.js +29 -0
  248. package/platforms/android/README.md +68 -10
  249. package/platforms/android/app/build.gradle +268 -3
  250. package/platforms/android/app/capacitor.build.gradle +18 -1
  251. package/platforms/android/app/proguard-rules.pro +17 -2
  252. package/platforms/android/app/src/androidTest/java/ai/elizaos/app/ElizaOsInstrumentedTest.java +1 -1
  253. package/platforms/android/app/src/main/AndroidManifest.xml +334 -17
  254. package/platforms/android/app/src/main/assets/runners/eliza-tasks.js +177 -0
  255. package/platforms/android/app/src/main/elizavoice-jni/CMakeLists.txt +75 -0
  256. package/platforms/android/app/src/main/elizavoice-jni/elizavoice-jni.cpp +1045 -0
  257. package/platforms/android/app/src/main/java/ai/elizaos/app/AgentPlugin.java +111 -171
  258. package/platforms/android/app/src/main/java/ai/elizaos/app/AndroidVirtualizationBridge.java +284 -0
  259. package/platforms/android/app/src/main/java/ai/elizaos/app/BatteryOptimizationPlugin.java +95 -0
  260. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaAccessibilityService.java +55 -0
  261. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaAgentService.java +1198 -141
  262. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaAndroidSystemBridge.java +83 -0
  263. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaAssistActivity.java +50 -1
  264. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaBootReceiver.java +90 -8
  265. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaBrowserActivity.java +2 -2
  266. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaCalendarActivity.java +1 -1
  267. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaCameraActivity.java +1 -1
  268. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaClockActivity.java +2 -2
  269. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaContactsActivity.java +1 -1
  270. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaDialActivity.java +1 -1
  271. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaInCallService.java +1 -1
  272. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaMmsReceiver.java +1 -1
  273. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaNativeBridge.java +22 -0
  274. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaNotificationListenerService.java +45 -0
  275. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaQuickActionsWidgetProvider.java +68 -0
  276. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaShareActivity.java +132 -0
  277. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaSmsComposeActivity.java +1 -1
  278. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaSmsGatewayService.java +268 -0
  279. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaSmsReceiver.java +12 -1
  280. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaTasksWorker.java +194 -0
  281. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaVoiceCaptureService.java +198 -0
  282. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaVoiceNative.java +160 -0
  283. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaVoicePlugin.java +450 -0
  284. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaVoiceTileService.java +39 -0
  285. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaWorkScheduler.java +60 -0
  286. package/platforms/android/app/src/main/java/ai/elizaos/app/GatewayConnectionService.java +53 -19
  287. package/platforms/android/app/src/main/java/ai/elizaos/app/MainActivity.java +160 -33
  288. package/platforms/android/app/src/main/java/ai/elizaos/app/ResourceProbePlugin.java +169 -0
  289. package/platforms/android/app/src/main/java/ai/elizaos/app/VoiceCapturePlugin.java +119 -0
  290. package/platforms/android/app/src/main/res/drawable/eliza_widget_background.xml +10 -0
  291. package/platforms/android/app/src/main/res/drawable/eliza_widget_button_background.xml +13 -0
  292. package/platforms/android/app/src/main/res/drawable/splash.png +0 -0
  293. package/platforms/android/app/src/main/res/drawable-land-hdpi/splash.png +0 -0
  294. package/platforms/android/app/src/main/res/drawable-land-mdpi/splash.png +0 -0
  295. package/platforms/android/app/src/main/res/drawable-land-xhdpi/splash.png +0 -0
  296. package/platforms/android/app/src/main/res/drawable-land-xxhdpi/splash.png +0 -0
  297. package/platforms/android/app/src/main/res/drawable-land-xxxhdpi/splash.png +0 -0
  298. package/platforms/android/app/src/main/res/drawable-port-hdpi/splash.png +0 -0
  299. package/platforms/android/app/src/main/res/drawable-port-mdpi/splash.png +0 -0
  300. package/platforms/android/app/src/main/res/drawable-port-xhdpi/splash.png +0 -0
  301. package/platforms/android/app/src/main/res/drawable-port-xxhdpi/splash.png +0 -0
  302. package/platforms/android/app/src/main/res/drawable-port-xxxhdpi/splash.png +0 -0
  303. package/platforms/android/app/src/main/res/layout/eliza_quick_actions_widget.xml +86 -0
  304. package/platforms/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +2 -1
  305. package/platforms/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +2 -1
  306. package/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  307. package/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png +0 -0
  308. package/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png +0 -0
  309. package/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  310. package/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  311. package/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png +0 -0
  312. package/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png +0 -0
  313. package/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  314. package/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  315. package/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png +0 -0
  316. package/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png +0 -0
  317. package/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  318. package/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  319. package/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0
  320. package/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png +0 -0
  321. package/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  322. package/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  323. package/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0
  324. package/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png +0 -0
  325. package/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  326. package/platforms/android/app/src/main/res/values/android_app_actions.xml +48 -0
  327. package/platforms/android/app/src/main/res/values/colors.xml +8 -0
  328. package/platforms/android/app/src/main/res/values/ic_launcher_background.xml +2 -2
  329. package/platforms/android/app/src/main/res/values/strings.xml +2 -2
  330. package/platforms/android/app/src/main/res/values/styles.xml +25 -1
  331. package/platforms/android/app/src/main/res/xml/eliza_accessibility_service.xml +9 -0
  332. package/platforms/android/app/src/main/res/xml/eliza_quick_actions_widget.xml +13 -0
  333. package/platforms/android/app/src/main/res/xml/shortcuts.xml +121 -0
  334. package/platforms/android/build.gradle +2 -2
  335. package/platforms/android/capacitor-cordova-android-plugins/build.gradle +9 -3
  336. package/platforms/android/capacitor-cordova-android-plugins/cordova.variables.gradle +6 -2
  337. package/platforms/android/capacitor-cordova-android-plugins/src/main/AndroidManifest.xml +7 -2
  338. package/platforms/android/capacitor-cordova-android-plugins/src/main/java/.gitkeep +0 -1
  339. package/platforms/android/capacitor.settings.gradle +66 -16
  340. package/platforms/android/gradle.properties +1 -0
  341. package/platforms/android/update-manifest/generate-manifest.mjs +97 -0
  342. package/platforms/android/update-manifest/schema.json +26 -0
  343. package/platforms/apple-store-entitlements.reviewed.json +155 -0
  344. package/platforms/electrobun/.generated/brand-config.json +3 -2
  345. package/platforms/electrobun/LICENSE +21 -0
  346. package/platforms/electrobun/README.md +15 -1
  347. package/platforms/electrobun/assets/appIcon.icns +0 -0
  348. package/platforms/electrobun/assets/appIcon.ico +0 -0
  349. package/platforms/electrobun/assets/appIcon.iconset/icon_128x128.png +0 -0
  350. package/platforms/electrobun/assets/appIcon.iconset/icon_128x128@2x.png +0 -0
  351. package/platforms/electrobun/assets/appIcon.iconset/icon_16x16.png +0 -0
  352. package/platforms/electrobun/assets/appIcon.iconset/icon_16x16@2x.png +0 -0
  353. package/platforms/electrobun/assets/appIcon.iconset/icon_256x256.png +0 -0
  354. package/platforms/electrobun/assets/appIcon.iconset/icon_256x256@2x.png +0 -0
  355. package/platforms/electrobun/assets/appIcon.iconset/icon_32x32.png +0 -0
  356. package/platforms/electrobun/assets/appIcon.iconset/icon_32x32@2x.png +0 -0
  357. package/platforms/electrobun/assets/appIcon.iconset/icon_512x512.png +0 -0
  358. package/platforms/electrobun/assets/brand-config.json +6 -6
  359. package/platforms/electrobun/biome.json +9 -9
  360. package/platforms/electrobun/docs/capability-collapse-matrix.json +318 -0
  361. package/platforms/electrobun/docs/capability-collapse-matrix.md +129 -0
  362. package/platforms/electrobun/docs/capability-routing.md +86 -0
  363. package/platforms/electrobun/docs/convergence-audit.json +3505 -0
  364. package/platforms/electrobun/docs/convergence-audit.md +694 -0
  365. package/platforms/electrobun/docs/database-boot-policy.md +90 -0
  366. package/platforms/electrobun/docs/riscv64-port.md +175 -0
  367. package/platforms/electrobun/docs/startup-first-run-cleanup.md +18 -0
  368. package/platforms/electrobun/docs/trace-first-annotations.md +52 -0
  369. package/platforms/electrobun/docs/ui-boundary-audit.json +580 -0
  370. package/platforms/electrobun/docs/ui-boundary-audit.md +257 -0
  371. package/platforms/electrobun/electrobun.config.ts +592 -364
  372. package/platforms/electrobun/entitlements/JUSTIFICATIONS.md +141 -0
  373. package/platforms/electrobun/entitlements/README.md +34 -6
  374. package/platforms/electrobun/entitlements/mas-bun.entitlements +15 -0
  375. package/platforms/electrobun/entitlements/mas.entitlements +6 -4
  376. package/platforms/electrobun/native/macos/window-effects.mm +1522 -0
  377. package/platforms/electrobun/package.json +18 -12
  378. package/platforms/electrobun/remotes/fs/README.md +70 -0
  379. package/platforms/electrobun/remotes/fs/electrobun.config.ts +38 -0
  380. package/platforms/electrobun/remotes/fs/package.json +12 -0
  381. package/platforms/electrobun/remotes/fs/plugin.json +25 -0
  382. package/platforms/electrobun/remotes/fs/src/bun/errors.ts +57 -0
  383. package/platforms/electrobun/remotes/fs/src/bun/file-limits.ts +50 -0
  384. package/platforms/electrobun/remotes/fs/src/bun/fs-service.ts +389 -0
  385. package/platforms/electrobun/remotes/fs/src/bun/path-guard.ts +270 -0
  386. package/platforms/electrobun/remotes/fs/src/bun/protocol.ts +149 -0
  387. package/platforms/electrobun/remotes/fs/src/bun/worker.ts +174 -0
  388. package/platforms/electrobun/remotes/fs/src/dev/phase5-smoke.ts +171 -0
  389. package/platforms/electrobun/remotes/fs/src/web/index.html +8 -0
  390. package/platforms/electrobun/remotes/git/README.md +75 -0
  391. package/platforms/electrobun/remotes/git/electrobun.config.ts +44 -0
  392. package/platforms/electrobun/remotes/git/package.json +12 -0
  393. package/platforms/electrobun/remotes/git/plugin.json +31 -0
  394. package/platforms/electrobun/remotes/git/src/bun/errors.ts +69 -0
  395. package/platforms/electrobun/remotes/git/src/bun/git-command.ts +156 -0
  396. package/platforms/electrobun/remotes/git/src/bun/git-service.ts +446 -0
  397. package/platforms/electrobun/remotes/git/src/bun/operation-history.ts +124 -0
  398. package/platforms/electrobun/remotes/git/src/bun/protocol.ts +252 -0
  399. package/platforms/electrobun/remotes/git/src/bun/worker.ts +316 -0
  400. package/platforms/electrobun/remotes/git/src/dev/phase7-smoke.ts +141 -0
  401. package/platforms/electrobun/remotes/git/src/web/index.html +8 -0
  402. package/platforms/electrobun/remotes/local-model/README.md +138 -0
  403. package/platforms/electrobun/remotes/local-model/electrobun.config.ts +46 -0
  404. package/platforms/electrobun/remotes/local-model/package.json +12 -0
  405. package/platforms/electrobun/remotes/local-model/plugin.json +33 -0
  406. package/platforms/electrobun/remotes/local-model/src/bun/download-state.ts +115 -0
  407. package/platforms/electrobun/remotes/local-model/src/bun/eliza1-catalog.ts +425 -0
  408. package/platforms/electrobun/remotes/local-model/src/bun/errors.ts +74 -0
  409. package/platforms/electrobun/remotes/local-model/src/bun/hf-eliza1-client.ts +169 -0
  410. package/platforms/electrobun/remotes/local-model/src/bun/local-inference-api-client.ts +245 -0
  411. package/platforms/electrobun/remotes/local-model/src/bun/model-service.ts +490 -0
  412. package/platforms/electrobun/remotes/local-model/src/bun/protocol.ts +301 -0
  413. package/platforms/electrobun/remotes/local-model/src/bun/worker.ts +248 -0
  414. package/platforms/electrobun/remotes/local-model/src/dev/phase8-smoke.ts +117 -0
  415. package/platforms/electrobun/remotes/local-model/src/web/index.html +13 -0
  416. package/platforms/electrobun/remotes/pty/README.md +65 -0
  417. package/platforms/electrobun/remotes/pty/electrobun.config.ts +47 -0
  418. package/platforms/electrobun/remotes/pty/package.json +12 -0
  419. package/platforms/electrobun/remotes/pty/plugin.json +34 -0
  420. package/platforms/electrobun/remotes/pty/src/bun/errors.ts +57 -0
  421. package/platforms/electrobun/remotes/pty/src/bun/output-buffer.ts +127 -0
  422. package/platforms/electrobun/remotes/pty/src/bun/protocol.ts +192 -0
  423. package/platforms/electrobun/remotes/pty/src/bun/pty-service.ts +562 -0
  424. package/platforms/electrobun/remotes/pty/src/bun/worker.ts +218 -0
  425. package/platforms/electrobun/remotes/pty/src/dev/phase6-smoke.ts +127 -0
  426. package/platforms/electrobun/remotes/pty/src/web/index.html +8 -0
  427. package/platforms/electrobun/remotes/runtime/README.md +370 -0
  428. package/platforms/electrobun/remotes/runtime/electrobun.config.ts +48 -0
  429. package/platforms/electrobun/remotes/runtime/package.json +14 -0
  430. package/platforms/electrobun/remotes/runtime/plugin.json +30 -0
  431. package/platforms/electrobun/remotes/runtime/src/bun/api-client.ts +620 -0
  432. package/platforms/electrobun/remotes/runtime/src/bun/errors.ts +45 -0
  433. package/platforms/electrobun/remotes/runtime/src/bun/log-buffer.ts +33 -0
  434. package/platforms/electrobun/remotes/runtime/src/bun/protocol.ts +366 -0
  435. package/platforms/electrobun/remotes/runtime/src/bun/route-discovery.ts +419 -0
  436. package/platforms/electrobun/remotes/runtime/src/bun/runtime-manager.ts +423 -0
  437. package/platforms/electrobun/remotes/runtime/src/bun/sse-parser.ts +99 -0
  438. package/platforms/electrobun/remotes/runtime/src/bun/stream-manager.ts +887 -0
  439. package/platforms/electrobun/remotes/runtime/src/bun/worker.ts +1231 -0
  440. package/platforms/electrobun/remotes/runtime/src/dev/phase1-smoke.ts +34 -0
  441. package/platforms/electrobun/remotes/runtime/src/dev/phase2-smoke.ts +86 -0
  442. package/platforms/electrobun/remotes/runtime/src/dev/phase3-smoke.ts +141 -0
  443. package/platforms/electrobun/remotes/runtime/src/web/index.css +187 -0
  444. package/platforms/electrobun/remotes/runtime/src/web/index.html +76 -0
  445. package/platforms/electrobun/remotes/runtime/src/web/index.ts +192 -0
  446. package/platforms/electrobun/remotes/surface/README.md +201 -0
  447. package/platforms/electrobun/remotes/surface/electrobun.config.ts +38 -0
  448. package/platforms/electrobun/remotes/surface/package.json +12 -0
  449. package/platforms/electrobun/remotes/surface/plugin.json +28 -0
  450. package/platforms/electrobun/remotes/surface/src/bun/worker.ts +132 -0
  451. package/platforms/electrobun/remotes/surface/src/dev/phase4-smoke.ts +566 -0
  452. package/platforms/electrobun/remotes/surface/src/protocol/event-types.ts +84 -0
  453. package/platforms/electrobun/remotes/surface/src/protocol/runtime-client.ts +673 -0
  454. package/platforms/electrobun/remotes/surface/src/web/app.ts +595 -0
  455. package/platforms/electrobun/remotes/surface/src/web/index.css +460 -0
  456. package/platforms/electrobun/remotes/surface/src/web/index.html +466 -0
  457. package/platforms/electrobun/remotes/surface/src/web/index.ts +5 -0
  458. package/platforms/electrobun/remotes/surface/src/web/render.ts +455 -0
  459. package/platforms/electrobun/remotes/surface/src/web/state.ts +427 -0
  460. package/platforms/electrobun/scripts/build-macos-effects.sh +4 -0
  461. package/platforms/electrobun/scripts/ensure-build-folder.ts +28 -0
  462. package/platforms/electrobun/scripts/ensure-whisper-gguf.sh +55 -0
  463. package/platforms/electrobun/scripts/ensure-whisper-model.sh +22 -80
  464. package/platforms/electrobun/scripts/generate-convergence-audit.ts +1203 -0
  465. package/platforms/electrobun/scripts/local-adhoc-sign-macos.ts +159 -159
  466. package/platforms/electrobun/scripts/postwrap-diagnostics.ts +424 -339
  467. package/platforms/electrobun/scripts/postwrap-sign-runtime-macos.ts +302 -271
  468. package/platforms/electrobun/scripts/smoke-test-windows.ps1 +17 -16
  469. package/platforms/electrobun/scripts/smoke-test.sh +5 -7
  470. package/platforms/electrobun/scripts/sync-web-assets.mjs +13 -13
  471. package/platforms/electrobun/scripts/verify-rpc-handlers.ts +109 -110
  472. package/platforms/electrobun/scripts/verify-windows-installer-proof.ps1 +3 -8
  473. package/platforms/electrobun/src/__stubs__/bun-ffi.ts +31 -31
  474. package/platforms/electrobun/src/__stubs__/electrobun-bun.ts +1 -1
  475. package/platforms/electrobun/src/agent-ready-state.ts +8 -8
  476. package/platforms/electrobun/src/agent-reset-from-main.test.ts +162 -0
  477. package/platforms/electrobun/src/agent-reset-from-main.ts +62 -62
  478. package/platforms/electrobun/src/agent-status-rpc.test.ts +95 -0
  479. package/platforms/electrobun/src/agent-status-rpc.ts +156 -0
  480. package/platforms/electrobun/src/api-base.test.ts +247 -0
  481. package/platforms/electrobun/src/api-base.ts +202 -93
  482. package/platforms/electrobun/src/application-menu-action-registry.ts +9 -9
  483. package/platforms/electrobun/src/application-menu.ts +348 -348
  484. package/platforms/electrobun/src/background-notice.ts +36 -36
  485. package/platforms/electrobun/src/boot-progress.test.ts +188 -0
  486. package/platforms/electrobun/src/boot-progress.ts +111 -0
  487. package/platforms/electrobun/src/brand-config.test.ts +39 -0
  488. package/platforms/electrobun/src/brand-config.ts +141 -129
  489. package/platforms/electrobun/src/bridge/browser-tabs-renderer-registry.ts +28 -28
  490. package/platforms/electrobun/src/bridge/electrobun-boot-config.ts +42 -0
  491. package/platforms/electrobun/src/bridge/electrobun-crypto-ready.ts +120 -0
  492. package/platforms/electrobun/src/bridge/electrobun-direct-rpc.ts +342 -357
  493. package/platforms/electrobun/src/bridge/electrobun-stub.ts +13 -13
  494. package/platforms/electrobun/src/browser-workspace-bridge-server.ts +285 -243
  495. package/platforms/electrobun/src/cloud-auth-window.ts +136 -136
  496. package/platforms/electrobun/src/cloud-disconnect-from-main.ts +90 -90
  497. package/platforms/electrobun/src/config-and-auth-rpc.test.ts +256 -0
  498. package/platforms/electrobun/src/config-and-auth-rpc.ts +302 -0
  499. package/platforms/electrobun/src/conversations-and-character-rpc.test.ts +185 -0
  500. package/platforms/electrobun/src/conversations-and-character-rpc.ts +131 -0
  501. package/platforms/electrobun/src/dashboard-rpc.test.ts +200 -0
  502. package/platforms/electrobun/src/dashboard-rpc.ts +344 -0
  503. package/platforms/electrobun/src/database/database-lock.ts +141 -0
  504. package/platforms/electrobun/src/database/database-mode.ts +149 -0
  505. package/platforms/electrobun/src/database/database-recovery.ts +72 -0
  506. package/platforms/electrobun/src/database/database-snapshot.ts +190 -0
  507. package/platforms/electrobun/src/database/database.test.ts +196 -0
  508. package/platforms/electrobun/src/database/index.ts +5 -0
  509. package/platforms/electrobun/src/database/pglite-paths.ts +100 -0
  510. package/platforms/electrobun/src/desktop-deep-link-events.test.ts +30 -0
  511. package/platforms/electrobun/src/desktop-deep-link-events.ts +17 -0
  512. package/platforms/electrobun/src/desktop-http-request.test.ts +73 -73
  513. package/platforms/electrobun/src/desktop-http-request.ts +85 -85
  514. package/platforms/electrobun/src/desktop-pill-config.test.ts +27 -0
  515. package/platforms/electrobun/src/desktop-pill-config.ts +40 -0
  516. package/platforms/electrobun/src/desktop-test-bridge-server.ts +204 -204
  517. package/platforms/electrobun/src/desktop-tray-config.test.ts +87 -0
  518. package/platforms/electrobun/src/desktop-tray-config.ts +84 -0
  519. package/platforms/electrobun/src/devtools-layout.ts +41 -41
  520. package/platforms/electrobun/src/diagnostic-format.test.ts +71 -0
  521. package/platforms/electrobun/src/diagnostic-format.ts +75 -36
  522. package/platforms/electrobun/src/dynamic-view-rpc-schema.test.ts +37 -0
  523. package/platforms/electrobun/src/dynamic-views/README.md +44 -0
  524. package/platforms/electrobun/src/dynamic-views/demo/agent-run-trace.html +135 -0
  525. package/platforms/electrobun/src/dynamic-views/errors.ts +29 -0
  526. package/platforms/electrobun/src/dynamic-views/host.test.ts +353 -0
  527. package/platforms/electrobun/src/dynamic-views/host.ts +332 -0
  528. package/platforms/electrobun/src/dynamic-views/index.ts +57 -0
  529. package/platforms/electrobun/src/dynamic-views/kiosk-canvas.ts +89 -0
  530. package/platforms/electrobun/src/dynamic-views/registry.test.ts +139 -0
  531. package/platforms/electrobun/src/dynamic-views/registry.ts +196 -0
  532. package/platforms/electrobun/src/dynamic-views/session-manager.test.ts +355 -0
  533. package/platforms/electrobun/src/dynamic-views/session-manager.ts +348 -0
  534. package/platforms/electrobun/src/dynamic-views/types.ts +105 -0
  535. package/platforms/electrobun/src/electrobun-boot-config.test.ts +50 -0
  536. package/platforms/electrobun/src/electrobun-config.test.ts +62 -0
  537. package/platforms/electrobun/src/electrobun-crypto-ready.test.ts +65 -0
  538. package/platforms/electrobun/src/electrobun-window-options.ts +25 -0
  539. package/platforms/electrobun/src/extension-rpc.test.ts +88 -0
  540. package/platforms/electrobun/src/extension-rpc.ts +102 -0
  541. package/platforms/electrobun/src/fatal-shutdown.test.ts +10 -10
  542. package/platforms/electrobun/src/fatal-shutdown.ts +1 -1
  543. package/platforms/electrobun/src/first-party-remotes.test.ts +169 -0
  544. package/platforms/electrobun/src/first-party-remotes.ts +297 -0
  545. package/platforms/electrobun/src/first-run-rpc.test.ts +192 -0
  546. package/platforms/electrobun/src/first-run-rpc.ts +146 -0
  547. package/platforms/electrobun/src/floating-chat-window.ts +181 -181
  548. package/platforms/electrobun/src/inbox-rpc.test.ts +123 -0
  549. package/platforms/electrobun/src/inbox-rpc.ts +158 -0
  550. package/platforms/electrobun/src/index.ts +2555 -2096
  551. package/platforms/electrobun/src/kiosk-mode.ts +50 -0
  552. package/platforms/electrobun/src/launch/index.ts +4 -0
  553. package/platforms/electrobun/src/launch/launch-dynamic-view.ts +37 -0
  554. package/platforms/electrobun/src/launch/launch-orchestrator.test.ts +224 -0
  555. package/platforms/electrobun/src/launch/launch-orchestrator.ts +456 -0
  556. package/platforms/electrobun/src/launch/launch-store.test.ts +97 -0
  557. package/platforms/electrobun/src/launch/launch-store.ts +134 -0
  558. package/platforms/electrobun/src/launch/types.ts +103 -0
  559. package/platforms/electrobun/src/launch/views/launch-diagnostics.html +205 -0
  560. package/platforms/electrobun/src/lifecycle/agent-ready-publish.test.ts +50 -0
  561. package/platforms/electrobun/src/lifecycle/agent-ready-publish.ts +27 -0
  562. package/platforms/electrobun/src/lifecycle/api-base-owner.ts +42 -31
  563. package/platforms/electrobun/src/lifecycle/desktop-session-prime.ts +44 -44
  564. package/platforms/electrobun/src/logger.ts +14 -14
  565. package/platforms/electrobun/src/main-window-runtime.ts +83 -83
  566. package/platforms/electrobun/src/main-window-session.test.ts +109 -0
  567. package/platforms/electrobun/src/main-window-session.ts +87 -51
  568. package/platforms/electrobun/src/menu-reset-from-main.ts +158 -158
  569. package/platforms/electrobun/src/native/agent-env.test.ts +52 -0
  570. package/platforms/electrobun/src/native/agent-runtime-layout.test.ts +42 -0
  571. package/platforms/electrobun/src/native/agent-state-dir.test.ts +91 -0
  572. package/platforms/electrobun/src/native/agent.ts +2122 -1682
  573. package/platforms/electrobun/src/native/auth-bridge.test.ts +67 -0
  574. package/platforms/electrobun/src/native/auth-bridge.ts +464 -360
  575. package/platforms/electrobun/src/native/browser-workspace.ts +723 -471
  576. package/platforms/electrobun/src/native/camera.ts +50 -50
  577. package/platforms/electrobun/src/native/canvas.ts +444 -445
  578. package/platforms/electrobun/src/native/credentials.ts +673 -616
  579. package/platforms/electrobun/src/native/desktop-window.test.ts +300 -0
  580. package/platforms/electrobun/src/native/desktop.ts +2196 -2156
  581. package/platforms/electrobun/src/native/editor-bridge.ts +201 -201
  582. package/platforms/electrobun/src/native/file-watcher.ts +154 -154
  583. package/platforms/electrobun/src/native/gateway.ts +179 -180
  584. package/platforms/electrobun/src/native/gpu-window.ts +256 -256
  585. package/platforms/electrobun/src/native/index.ts +76 -74
  586. package/platforms/electrobun/src/native/location.test.ts +44 -0
  587. package/platforms/electrobun/src/native/location.ts +90 -80
  588. package/platforms/electrobun/src/native/loopback-port.ts +60 -60
  589. package/platforms/electrobun/src/native/mac-window-effects.ts +166 -104
  590. package/platforms/electrobun/src/native/music-player.ts +38 -38
  591. package/platforms/electrobun/src/native/permissions-shared.ts +249 -150
  592. package/platforms/electrobun/src/native/permissions.ts +301 -208
  593. package/platforms/electrobun/src/native/power-state.ts +129 -129
  594. package/platforms/electrobun/src/native/remote-plugin-host.test.ts +1394 -0
  595. package/platforms/electrobun/src/native/remote-plugin-host.ts +1531 -0
  596. package/platforms/electrobun/src/native/screencapture.ts +667 -573
  597. package/platforms/electrobun/src/native/steward.ts +207 -204
  598. package/platforms/electrobun/src/native/swabble.ts +68 -324
  599. package/platforms/electrobun/src/native/talkmode.ts +253 -422
  600. package/platforms/electrobun/src/native/webgpu-browser-support.test.ts +18 -0
  601. package/platforms/electrobun/src/native/webgpu-browser-support.ts +165 -147
  602. package/platforms/electrobun/src/native/whisper-env.test.ts +71 -0
  603. package/platforms/electrobun/src/native/whisper-env.ts +68 -0
  604. package/platforms/electrobun/src/native-onboarding.ts +270 -0
  605. package/platforms/electrobun/src/onboarding-overlay-window.ts +141 -0
  606. package/platforms/electrobun/src/persisted-deployment.ts +91 -0
  607. package/platforms/electrobun/src/pill-window.test.ts +91 -0
  608. package/platforms/electrobun/src/pill-window.ts +99 -0
  609. package/platforms/electrobun/src/preload-validation.ts +44 -44
  610. package/platforms/electrobun/src/preload.js +1 -1
  611. package/platforms/electrobun/src/print-electrobun-dev-settings-banner.ts +120 -120
  612. package/platforms/electrobun/src/renderer-api-proxy.test.ts +73 -0
  613. package/platforms/electrobun/src/renderer-api-proxy.ts +86 -0
  614. package/platforms/electrobun/src/renderer-static.test.ts +53 -0
  615. package/platforms/electrobun/src/renderer-static.ts +144 -57
  616. package/platforms/electrobun/src/rpc-handler-slices.ts +121 -0
  617. package/platforms/electrobun/src/rpc-handlers.test.ts +267 -0
  618. package/platforms/electrobun/src/rpc-handlers.ts +1306 -913
  619. package/platforms/electrobun/src/rpc-parse-utils.ts +57 -0
  620. package/platforms/electrobun/src/rpc-port-resolver.test.ts +45 -0
  621. package/platforms/electrobun/src/rpc-port-resolver.ts +31 -0
  622. package/platforms/electrobun/src/rpc-schema.ts +2556 -1619
  623. package/platforms/electrobun/src/runtime-layout.ts +105 -105
  624. package/platforms/electrobun/src/runtime-permissions.ts +95 -95
  625. package/platforms/electrobun/src/runtime-rpc.test.ts +126 -0
  626. package/platforms/electrobun/src/runtime-rpc.ts +237 -0
  627. package/platforms/electrobun/src/screenshot-dev-server.ts +87 -87
  628. package/platforms/electrobun/src/settings-mutations-rpc.test.ts +193 -0
  629. package/platforms/electrobun/src/settings-mutations-rpc.ts +220 -0
  630. package/platforms/electrobun/src/startup-trace.ts +274 -270
  631. package/platforms/electrobun/src/subscription-rpc.test.ts +89 -0
  632. package/platforms/electrobun/src/subscription-rpc.ts +192 -0
  633. package/platforms/electrobun/src/surface-windows.test.ts +355 -0
  634. package/platforms/electrobun/src/surface-windows.ts +410 -410
  635. package/platforms/electrobun/src/trace/README.md +73 -0
  636. package/platforms/electrobun/src/trace/errors.ts +21 -0
  637. package/platforms/electrobun/src/trace/index.ts +40 -0
  638. package/platforms/electrobun/src/trace/trace-dynamic-view.ts +40 -0
  639. package/platforms/electrobun/src/trace/trace-host-requests.ts +473 -0
  640. package/platforms/electrobun/src/trace/trace-service.test.ts +186 -0
  641. package/platforms/electrobun/src/trace/trace-service.ts +324 -0
  642. package/platforms/electrobun/src/trace/trace-store.test.ts +141 -0
  643. package/platforms/electrobun/src/trace/trace-store.ts +551 -0
  644. package/platforms/electrobun/src/trace/types.ts +250 -0
  645. package/platforms/electrobun/src/trace/views/agent-run-trace.html +311 -0
  646. package/platforms/electrobun/src/types/web-speech.d.ts +28 -28
  647. package/platforms/electrobun/src/types.ts +5 -5
  648. package/platforms/electrobun/src/update-availability.test.ts +72 -0
  649. package/platforms/electrobun/src/update-availability.ts +90 -0
  650. package/platforms/electrobun/src/update-rpc.test.ts +83 -0
  651. package/platforms/electrobun/src/update-rpc.ts +123 -0
  652. package/platforms/electrobun/src/voice/README.md +184 -0
  653. package/platforms/electrobun/src/voice/errors.ts +42 -0
  654. package/platforms/electrobun/src/voice/index.ts +78 -0
  655. package/platforms/electrobun/src/voice/types.ts +316 -0
  656. package/platforms/electrobun/src/voice/voice-host-requests.ts +259 -0
  657. package/platforms/electrobun/src/voice/voice-latency-budget.test.ts +66 -0
  658. package/platforms/electrobun/src/voice/voice-latency-budget.ts +243 -0
  659. package/platforms/electrobun/src/voice/voice-live-validation.test.ts +352 -0
  660. package/platforms/electrobun/src/voice/voice-live-validation.ts +838 -0
  661. package/platforms/electrobun/src/voice/voice-pipeline.ts +250 -0
  662. package/platforms/electrobun/src/voice/voice-playback-adapter.ts +31 -0
  663. package/platforms/electrobun/src/voice/voice-runtime-adapter.test.ts +213 -0
  664. package/platforms/electrobun/src/voice/voice-runtime-adapter.ts +686 -0
  665. package/platforms/electrobun/src/voice/voice-service.test.ts +561 -0
  666. package/platforms/electrobun/src/voice/voice-service.ts +1027 -0
  667. package/platforms/electrobun/src/voice/voice-stream-coordinator.test.ts +115 -0
  668. package/platforms/electrobun/src/voice/voice-stream-coordinator.ts +270 -0
  669. package/platforms/electrobun/src/voice/voice-trace.ts +97 -0
  670. package/platforms/electrobun/src/voice/voice-tts-chunker.test.ts +91 -0
  671. package/platforms/electrobun/src/voice/voice-tts-chunker.ts +194 -0
  672. package/platforms/electrobun/src/windows-cef-profile.ts +88 -88
  673. package/platforms/electrobun/tsconfig.json +73 -13
  674. package/platforms/electrobun/update-channels.json +22 -0
  675. package/platforms/electrobun/vitest.electrobun.config.ts +72 -42
  676. package/platforms/ios/App/App/App.entitlements +4 -0
  677. package/platforms/ios/App/App/AppDelegate.swift +80 -18
  678. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ios-marketing-1024.png +0 -0
  679. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-20x20@1x.png +0 -0
  680. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-20x20@2x.png +0 -0
  681. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-29x29@1x.png +0 -0
  682. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-29x29@2x.png +0 -0
  683. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-40x40@1x.png +0 -0
  684. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-40x40@2x.png +0 -0
  685. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-76x76@1x.png +0 -0
  686. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-76x76@2x.png +0 -0
  687. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-83_5x83_5@2x.png +0 -0
  688. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-20x20@2x.png +0 -0
  689. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-20x20@3x.png +0 -0
  690. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-29x29@2x.png +0 -0
  691. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-29x29@3x.png +0 -0
  692. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-40x40@2x.png +0 -0
  693. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-40x40@3x.png +0 -0
  694. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-60x60@2x.png +0 -0
  695. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-60x60@3x.png +0 -0
  696. package/platforms/ios/App/App/Base.lproj/LaunchScreen.storyboard +1 -4
  697. package/platforms/ios/App/App/ComputerUseBridge.swift +589 -0
  698. package/platforms/ios/App/App/DeviceActivityMonitorExtension/DeviceActivityMonitorExtension.entitlements +12 -0
  699. package/platforms/ios/App/App/DeviceActivityMonitorExtension/DeviceActivityMonitorExtension.swift +34 -0
  700. package/platforms/ios/App/App/DeviceActivityMonitorExtension/Info.plist +29 -0
  701. package/platforms/ios/App/App/DeviceActivityReportExtension/DeviceActivityReportExtension.entitlements +12 -0
  702. package/platforms/ios/App/App/DeviceActivityReportExtension/DeviceActivityReportExtension.swift +53 -0
  703. package/platforms/ios/App/App/DeviceActivityReportExtension/Info.plist +27 -0
  704. package/platforms/ios/App/App/ElizaAppIntents.swift +183 -0
  705. package/platforms/ios/App/App/ElizaIntentPlugin.swift +342 -5
  706. package/platforms/ios/App/App/Info.plist +17 -1
  707. package/platforms/ios/App/App/runners/eliza-tasks.js +177 -0
  708. package/platforms/ios/App/App.xcodeproj/project.pbxproj +262 -6
  709. package/platforms/ios/App/BroadcastExtension/SampleHandler.swift +100 -0
  710. package/platforms/ios/App/Podfile +5 -0
  711. package/platforms/ios/App/Podfile.lock +83 -59
  712. package/register-runtime-hooks.js +11 -5
  713. package/registry/app-registry.d.ts +14 -0
  714. package/registry/app-registry.d.ts.map +1 -0
  715. package/registry/app-registry.js +29 -0
  716. package/registry/entries/apps/app-polymarket.json +31 -0
  717. package/registry/entries/apps/clawville.json +27 -0
  718. package/registry/entries/apps/companion.json +28 -0
  719. package/registry/entries/apps/database-viewer.json +27 -0
  720. package/registry/entries/apps/defense-of-the-agents.json +27 -0
  721. package/registry/entries/apps/documents.json +30 -0
  722. package/registry/entries/apps/feed.json +27 -0
  723. package/registry/entries/apps/hyperliquid.json +31 -0
  724. package/registry/entries/apps/log-viewer.json +27 -0
  725. package/registry/entries/apps/memory-viewer.json +27 -0
  726. package/registry/entries/apps/model-tester.json +31 -0
  727. package/registry/entries/apps/plugin-viewer.json +27 -0
  728. package/registry/entries/apps/relationship-viewer.json +27 -0
  729. package/registry/entries/apps/runtime-debugger.json +27 -0
  730. package/registry/entries/apps/shopify.json +31 -0
  731. package/registry/entries/apps/skills-viewer.json +27 -0
  732. package/registry/entries/apps/steward.json +31 -0
  733. package/registry/entries/apps/training.json +54 -0
  734. package/registry/entries/apps/trajectory-viewer.json +27 -0
  735. package/registry/entries/apps/vincent.json +31 -0
  736. package/registry/entries/connectors/bluebubbles.json +99 -0
  737. package/registry/entries/connectors/bluesky.json +173 -0
  738. package/registry/entries/connectors/discord.json +119 -0
  739. package/registry/entries/connectors/farcaster.json +174 -0
  740. package/registry/entries/connectors/feishu.json +79 -0
  741. package/registry/entries/connectors/google-chat.json +120 -0
  742. package/registry/entries/connectors/google.json +82 -0
  743. package/registry/entries/connectors/imessage.json +96 -0
  744. package/registry/entries/connectors/instagram.json +64 -0
  745. package/registry/entries/connectors/line.json +86 -0
  746. package/registry/entries/connectors/matrix.json +94 -0
  747. package/registry/entries/connectors/mattermost.json +110 -0
  748. package/registry/entries/connectors/msteams.json +104 -0
  749. package/registry/entries/connectors/nextcloud-talk.json +104 -0
  750. package/registry/entries/connectors/nostr.json +70 -0
  751. package/registry/entries/connectors/signal.json +81 -0
  752. package/registry/entries/connectors/slack.json +102 -0
  753. package/registry/entries/connectors/telegram.json +71 -0
  754. package/registry/entries/connectors/tlon.json +94 -0
  755. package/registry/entries/connectors/twitch.json +110 -0
  756. package/registry/entries/connectors/whatsapp.json +113 -0
  757. package/registry/entries/connectors/x.json +231 -0
  758. package/registry/entries/connectors/zalo.json +112 -0
  759. package/registry/entries/connectors/zalouser.json +122 -0
  760. package/registry/entries/plugins/agent-orchestrator.json +33 -0
  761. package/registry/entries/plugins/agent-skills.json +72 -0
  762. package/registry/entries/plugins/anthropic.json +73 -0
  763. package/registry/entries/plugins/app-control.json +23 -0
  764. package/registry/entries/plugins/auto-trader.json +203 -0
  765. package/registry/entries/plugins/background-runner.json +26 -0
  766. package/registry/entries/plugins/blooio.json +102 -0
  767. package/registry/entries/plugins/browser.json +75 -0
  768. package/registry/entries/plugins/cli.json +40 -0
  769. package/registry/entries/plugins/clipboard.json +44 -0
  770. package/registry/entries/plugins/coding-tools.json +71 -0
  771. package/registry/entries/plugins/commands.json +63 -0
  772. package/registry/entries/plugins/computeruse.json +74 -0
  773. package/registry/entries/plugins/copilot-proxy.json +93 -0
  774. package/registry/entries/plugins/directives.json +63 -0
  775. package/registry/entries/plugins/edge-tts.json +97 -0
  776. package/registry/entries/plugins/elevenlabs.json +169 -0
  777. package/registry/entries/plugins/elizacloud.json +208 -0
  778. package/registry/entries/plugins/evm.json +134 -0
  779. package/registry/entries/plugins/experience.json +34 -0
  780. package/registry/entries/plugins/facewear.json +131 -0
  781. package/registry/entries/plugins/form.json +26 -0
  782. package/registry/entries/plugins/github.json +93 -0
  783. package/registry/entries/plugins/gmail-watch.json +25 -0
  784. package/registry/entries/plugins/goals.json +77 -0
  785. package/registry/entries/plugins/google-genai.json +106 -0
  786. package/registry/entries/plugins/groq.json +93 -0
  787. package/registry/entries/plugins/hedera.json +48 -0
  788. package/registry/entries/plugins/inmemorydb.json +25 -0
  789. package/registry/entries/plugins/linear.json +51 -0
  790. package/registry/entries/plugins/local-inference.json +142 -0
  791. package/registry/entries/plugins/local-storage.json +36 -0
  792. package/registry/entries/plugins/localdb.json +25 -0
  793. package/registry/entries/plugins/mcp.json +44 -0
  794. package/registry/entries/plugins/memory.json +124 -0
  795. package/registry/entries/plugins/minecraft.json +79 -0
  796. package/registry/entries/plugins/moltbook.json +83 -0
  797. package/registry/entries/plugins/music.json +155 -0
  798. package/registry/entries/plugins/mysticism.json +48 -0
  799. package/registry/entries/plugins/nearai.json +82 -0
  800. package/registry/entries/plugins/ngrok.json +69 -0
  801. package/registry/entries/plugins/ollama.json +96 -0
  802. package/registry/entries/plugins/openai.json +189 -0
  803. package/registry/entries/plugins/openrouter.json +188 -0
  804. package/registry/entries/plugins/pdf.json +26 -0
  805. package/registry/entries/plugins/plugin-manager.json +23 -0
  806. package/registry/entries/plugins/prose.json +48 -0
  807. package/registry/entries/plugins/rlm.json +26 -0
  808. package/registry/entries/plugins/roblox.json +88 -0
  809. package/registry/entries/plugins/rss.json +64 -0
  810. package/registry/entries/plugins/s3-storage.json +91 -0
  811. package/registry/entries/plugins/scheduling.json +35 -0
  812. package/registry/entries/plugins/shell.json +94 -0
  813. package/registry/entries/plugins/social-alpha.json +72 -0
  814. package/registry/entries/plugins/tailscale.json +81 -0
  815. package/registry/entries/plugins/tee.json +53 -0
  816. package/registry/entries/plugins/todos.json +26 -0
  817. package/registry/entries/plugins/trajectory-logger.json +33 -0
  818. package/registry/entries/plugins/trust.json +39 -0
  819. package/registry/entries/plugins/tts.json +71 -0
  820. package/registry/entries/plugins/tunnel.json +45 -0
  821. package/registry/entries/plugins/twilio.json +168 -0
  822. package/registry/entries/plugins/vercel-ai-gateway.json +128 -0
  823. package/registry/entries/plugins/video.json +23 -0
  824. package/registry/entries/plugins/vision.json +43 -0
  825. package/registry/entries/plugins/webhooks.json +23 -0
  826. package/registry/entries/plugins/workflow.json +25 -0
  827. package/registry/entries/plugins/xai.json +75 -0
  828. package/registry/index.d.ts +2 -1
  829. package/registry/index.d.ts.map +1 -1
  830. package/registry/index.js +46 -12
  831. package/registry/loader.d.ts +2 -1
  832. package/registry/loader.d.ts.map +1 -1
  833. package/registry/loader.js +49 -2
  834. package/registry/schema.d.ts +244 -34
  835. package/registry/schema.d.ts.map +1 -1
  836. package/registry/schema.js +36 -0
  837. package/runtime/android-avf-microdroid-bridge.d.ts +29 -0
  838. package/runtime/android-avf-microdroid-bridge.d.ts.map +1 -0
  839. package/runtime/android-avf-microdroid-bridge.js +149 -0
  840. package/runtime/api-dev-settings-banner.d.ts.map +1 -1
  841. package/runtime/api-dev-settings-banner.js +5 -13
  842. package/runtime/app-core-runtime-hooks.d.ts +21 -0
  843. package/runtime/app-core-runtime-hooks.d.ts.map +1 -0
  844. package/runtime/app-core-runtime-hooks.js +10 -0
  845. package/runtime/autonomy-policy.d.ts +2 -0
  846. package/runtime/autonomy-policy.d.ts.map +1 -0
  847. package/runtime/autonomy-policy.js +4 -0
  848. package/runtime/desktop/AppWindowRenderer.d.ts +17 -0
  849. package/runtime/desktop/AppWindowRenderer.d.ts.map +1 -0
  850. package/runtime/desktop/AppWindowRenderer.js +360 -0
  851. package/runtime/desktop/DesktopSurfaceNavigationRuntime.d.ts +2 -0
  852. package/runtime/desktop/DesktopSurfaceNavigationRuntime.d.ts.map +1 -0
  853. package/runtime/desktop/DesktopSurfaceNavigationRuntime.js +41 -0
  854. package/runtime/desktop/DesktopTrayRuntime.d.ts +2 -0
  855. package/runtime/desktop/DesktopTrayRuntime.d.ts.map +1 -0
  856. package/runtime/desktop/DesktopTrayRuntime.js +174 -0
  857. package/runtime/desktop/DetachedShellRoot.d.ts +10 -0
  858. package/runtime/desktop/DetachedShellRoot.d.ts.map +1 -0
  859. package/runtime/desktop/DetachedShellRoot.js +111 -0
  860. package/runtime/desktop/index.d.ts +6 -0
  861. package/runtime/desktop/index.d.ts.map +1 -0
  862. package/runtime/desktop/index.js +5 -0
  863. package/runtime/desktop/tray-menu.d.ts +20 -0
  864. package/runtime/desktop/tray-menu.d.ts.map +1 -0
  865. package/runtime/desktop/tray-menu.js +143 -0
  866. package/runtime/dev-server.d.ts +1 -1
  867. package/runtime/dev-server.d.ts.map +1 -1
  868. package/runtime/dev-server.js +93 -17
  869. package/runtime/eliza.d.ts +75 -1
  870. package/runtime/eliza.d.ts.map +1 -1
  871. package/runtime/eliza.js +596 -122
  872. package/runtime/ensure-text-to-speech-handler.d.ts.map +1 -1
  873. package/runtime/ensure-text-to-speech-handler.js +10 -3
  874. package/runtime/mobile-safe-runtime.d.ts +181 -2
  875. package/runtime/mobile-safe-runtime.d.ts.map +1 -1
  876. package/runtime/mobile-safe-runtime.js +1019 -12
  877. package/runtime/mode/remote-forwarder.d.ts.map +1 -1
  878. package/runtime/mode/remote-forwarder.js +2 -2
  879. package/runtime/mode/route-mode-guard.d.ts +1 -2
  880. package/runtime/mode/route-mode-guard.d.ts.map +1 -1
  881. package/runtime/mode/route-mode-guard.js +4 -5
  882. package/runtime/mode/route-mode-matrix.d.ts.map +1 -1
  883. package/runtime/mode/route-mode-matrix.js +14 -1
  884. package/runtime/mode/runtime-mode.d.ts +1 -1
  885. package/runtime/mode/runtime-mode.d.ts.map +1 -1
  886. package/runtime/mode/runtime-mode.js +15 -4
  887. package/runtime/runtime-bootstrap-policy.d.ts.map +1 -1
  888. package/runtime/runtime-bootstrap-policy.js +14 -2
  889. package/runtime/telegram-standalone-handler.d.ts.map +1 -1
  890. package/runtime/telegram-standalone-handler.js +10 -9
  891. package/runtime/tts-cache-wiring.d.ts +29 -0
  892. package/runtime/tts-cache-wiring.d.ts.map +1 -0
  893. package/runtime/tts-cache-wiring.js +114 -0
  894. package/runtime/voice-warmup.d.ts +81 -0
  895. package/runtime/voice-warmup.d.ts.map +1 -0
  896. package/runtime/voice-warmup.js +111 -0
  897. package/scripts/android-sms-gateway-template.test.mjs +1014 -0
  898. package/scripts/aosp/README.md +19 -15
  899. package/scripts/aosp/compile-libllama.mjs +1344 -248
  900. package/scripts/aosp/compile-shim.mjs +47 -18
  901. package/scripts/aosp/deploy-pixel.mjs +405 -0
  902. package/scripts/aosp/lib/load-variant-config.mjs +3 -3
  903. package/scripts/aosp/llama-cpp-patches/README.md +8 -8
  904. package/scripts/aosp/llama-cpp-patches/apply-patches.mjs +23 -6
  905. package/scripts/aosp/llama-cpp-patches/polarquant/README.md +37 -0
  906. package/scripts/aosp/llama-cpp-patches/qjl/README.md +37 -0
  907. package/scripts/aosp/seccomp-shim/sigsys-handler-arm64.c +169 -0
  908. package/scripts/aosp/seccomp-shim/sigsys-handler-riscv64.c +217 -0
  909. package/scripts/aosp/smoke-cuttlefish.mjs +34 -4
  910. package/scripts/aosp/stage-default-models.mjs +18 -18
  911. package/scripts/aosp/variant-config-schema.ts +2 -2
  912. package/scripts/assert-required-bundled-packages.test.ts +534 -0
  913. package/scripts/audit-apple-store-sandbox.mjs +146 -0
  914. package/scripts/audit-live-test-surface.mjs +5 -2
  915. package/scripts/build-capacitor-app.mjs +21 -0
  916. package/scripts/build-flatpak.mjs +5 -5
  917. package/scripts/build-helpers/arm64-simd.mjs +72 -0
  918. package/scripts/build-helpers/omnivoice-merged.mjs +87 -0
  919. package/scripts/build-helpers/verify-fused-symbols.mjs +567 -0
  920. package/scripts/build-image.sh +1 -1
  921. package/scripts/build-llama-cpp-mtp.mjs +487 -0
  922. package/scripts/build-native-plugins.mjs +230 -18
  923. package/scripts/build-patched-electrobun-cli.mjs +68 -10
  924. package/scripts/build-win.mjs +1 -1
  925. package/scripts/bun-riscv64/Dockerfile +418 -0
  926. package/scripts/bun-riscv64/README.md +316 -0
  927. package/scripts/bun-riscv64/build.sh +469 -0
  928. package/scripts/bun-riscv64/bun-patches/0001-config-add-riscv64-arch.patch +74 -0
  929. package/scripts/bun-riscv64/bun-patches/0002-flags-add-riscv64-march-mabi.patch +16 -0
  930. package/scripts/bun-riscv64/bun-patches/0003-zig-add-riscv64-target-triple-and-cpu.patch +26 -0
  931. package/scripts/bun-riscv64/bun-patches/0004-webkit-force-local-mode-on-riscv64.patch +33 -0
  932. package/scripts/bun-riscv64/bun-patches/0005-tinycc-disable-on-riscv64.patch +16 -0
  933. package/scripts/bun-riscv64/bun-patches/0006-build-add-riscv64-cli-validation.patch +15 -0
  934. package/scripts/bun-riscv64/bun-patches/0007-deps-per-dep-riscv64-checks.patch +24 -0
  935. package/scripts/bun-riscv64/bun-patches/0008-source-stabilize-riscv64-musl-build.patch +226 -0
  936. package/scripts/bun-riscv64/bun-patches/0009-disable-wasm-streaming-hooks-for-c-loop.patch +162 -0
  937. package/scripts/bun-riscv64/bun-patches/0010-disable-inspector-profiler-for-riscv64-c-loop.patch +80 -0
  938. package/scripts/bun-riscv64/bun-patches/0011-process-arch-add-riscv64.patch +23 -0
  939. package/scripts/bun-riscv64/bun-patches/0012-cpu-features-add-riscv64-fallback.patch +13 -0
  940. package/scripts/bun-riscv64/bun-patches/0013-disable-console-inspector-hooks-for-riscv64-c-loop.patch +43 -0
  941. package/scripts/bun-riscv64/bun-patches/0014-disable-custom-inspector-dispatchers-on-riscv64.patch +127 -0
  942. package/scripts/bun-riscv64/bun-patches/0015-disable-jsc-profiler-builtins-on-riscv64.patch +75 -0
  943. package/scripts/bun-riscv64/bun-patches/0016-node-vm-disable-jit-cached-data-on-riscv64-c-loop.patch +96 -0
  944. package/scripts/bun-riscv64/bun-patches/0017-disable-performance-domjit-signature-on-riscv64-c-loop.patch +34 -0
  945. package/scripts/bun-riscv64/bun-patches/0018-fix-serialized-script-identifier-big-endian-path.patch +19 -0
  946. package/scripts/bun-riscv64/bun-patches/0019-add-wtf-timer-fire-bridge-for-c-loop.patch +24 -0
  947. package/scripts/bun-riscv64/bun-patches/0020-run-riscv64-smoke-test-under-qemu.patch +13 -0
  948. package/scripts/bun-riscv64/bun-patches/0021-fix-riscv64-linux-open-flags.patch +25 -0
  949. package/scripts/bun-riscv64/bun-patches/0022-zlib-riscv64-generic-kernels.patch +25 -0
  950. package/scripts/bun-riscv64/bun-patches/README.md +127 -0
  951. package/scripts/bun-riscv64/bun-version.json +202 -0
  952. package/scripts/bun-riscv64/run-build.sh +162 -0
  953. package/scripts/bun-riscv64/rust-core/0001-riscv64-rust-core-port.patch +868 -0
  954. package/scripts/bun-riscv64/rust-core/0002-second-wave-riscv64-source-gaps.patch +130 -0
  955. package/scripts/bun-riscv64/rust-core/0003-third-wave-riscv64-crash-handler-gaps.patch +78 -0
  956. package/scripts/bun-riscv64/rust-core/0004-rust-target-cpu-riscv64.patch +39 -0
  957. package/scripts/bun-riscv64/rust-core/0005-fifth-wave-riscv64-source-gaps.patch +96 -0
  958. package/scripts/bun-riscv64/rust-core/0006-cpp-wasm-and-inspector-guards-riscv64.patch +91 -0
  959. package/scripts/bun-riscv64/rust-core/0007-bun-alloc-max-align-t-riscv64.patch +36 -0
  960. package/scripts/bun-riscv64/rust-core/0008-workspace-lints-warn-not-deny-riscv64.patch +75 -0
  961. package/scripts/bun-riscv64/rust-core/0009-zigglobalobject-wasm-streaming-guards-riscv64.patch +109 -0
  962. package/scripts/bun-riscv64/rust-core/0010-tcc-externs-stub-on-riscv64.patch +62 -0
  963. package/scripts/bun-riscv64/rust-core/0011-clippy-ptr-cast-lints-warn-riscv64.patch +61 -0
  964. package/scripts/bun-riscv64/rust-core/README.md +80 -0
  965. package/scripts/bun-riscv64/rust-core/webkit-patches/0003-disable-dfg-ftl-on-riscv64.patch +60 -0
  966. package/scripts/bun-riscv64/rust-core/webkit-patches/0004-riscv64-do-not-force-wasm-in-c-loop.patch +31 -0
  967. package/scripts/bun-riscv64/rust-core/webkit-patches/0005-domjit-effect-allow-no-dfg-c-loop.patch +40 -0
  968. package/scripts/bun-riscv64/rust-core/webkit-patches/0006-disable-usewasm-when-webassembly-compiled-out.patch +33 -0
  969. package/scripts/bun-riscv64/rust-core/webkit-patches/0007-restore-dropped-includes-and-llint-fwd-decl.patch +31 -0
  970. package/scripts/bun-riscv64/validate.sh +264 -0
  971. package/scripts/bun-riscv64/webkit-patches/0001-cherry-pick-llint-riscv64.recipe +155 -0
  972. package/scripts/bun-riscv64/webkit-patches/0002-cherry-pick-baseline-jit-riscv64.recipe +40 -0
  973. package/scripts/bun-riscv64/webkit-patches/0003-disable-dfg-ftl-on-riscv64.patch +60 -0
  974. package/scripts/bun-riscv64/webkit-patches/0004-riscv64-do-not-force-wasm-in-c-loop.patch +31 -0
  975. package/scripts/bun-riscv64/webkit-patches/0005-domjit-effect-allow-no-dfg-c-loop.patch +40 -0
  976. package/scripts/bun-riscv64/webkit-patches/0006-disable-usewasm-when-webassembly-compiled-out.patch +33 -0
  977. package/scripts/bun-riscv64/webkit-patches/0007-restore-dropped-includes-and-llint-fwd-decl.patch +72 -0
  978. package/scripts/bun-riscv64/webkit-patches/README.md +146 -0
  979. package/scripts/check-homepage-public-readiness.mjs +353 -0
  980. package/scripts/check-homepage-release-data.mjs +110 -0
  981. package/scripts/check-i18n.mjs +2 -1
  982. package/scripts/check-real-local-chat.ts +147 -0
  983. package/scripts/check-real-local-provisioning.ts +104 -0
  984. package/scripts/check-real-local-reset.ts +249 -0
  985. package/scripts/check-sms-gateway-completion-audit.mjs +428 -0
  986. package/scripts/check-sms-gateway-readiness.mjs +266 -0
  987. package/scripts/clean-repo.mjs +5 -5
  988. package/scripts/codesign-mas.mjs +222 -16
  989. package/scripts/collect-docker-runtime-deps.mjs +229 -0
  990. package/scripts/continue-sms-gateway-work.mjs +121 -0
  991. package/scripts/copy-runtime-node-modules.ts +903 -195
  992. package/scripts/deploy-cloud-api-production-gateway.mjs +52 -0
  993. package/scripts/desktop-build.mjs +655 -101
  994. package/scripts/dev-platform.mjs +346 -102
  995. package/scripts/dev-startup-smoke.mjs +248 -0
  996. package/scripts/dev-ui.mjs +418 -176
  997. package/scripts/disable-local-eliza-workspace.mjs +35 -0
  998. package/scripts/docker-ci-smoke.sh +298 -96
  999. package/scripts/docker-entrypoint.sh +62 -1
  1000. package/scripts/docker-entrypoint.test.ts +283 -0
  1001. package/scripts/ensure-avatars.mjs +2 -2
  1002. package/scripts/ensure-electrobun-core.mjs +1 -1
  1003. package/scripts/ensure-generated-core-proto-js.mjs +1 -1
  1004. package/scripts/ensure-type-package-aliases.mjs +62 -5
  1005. package/scripts/ensure-vision-deps.mjs +20 -1
  1006. package/scripts/entry.ts +1 -1
  1007. package/scripts/ffi-stub/Makefile +64 -0
  1008. package/scripts/ffi-stub/README.md +391 -0
  1009. package/scripts/ffi-stub/asr-ffi-smoke.ts +139 -0
  1010. package/scripts/ffi-stub/ffi-stub.c +539 -0
  1011. package/scripts/ffi-stub/ffi.h +538 -0
  1012. package/scripts/ffi-stub/libelizainference_stub.so +0 -0
  1013. package/scripts/ffi-stub/tts-stream-ffi-smoke.ts +349 -0
  1014. package/scripts/generate-first-run-voicelines.mjs +194 -0
  1015. package/scripts/generate-plugin-index.js +4 -3
  1016. package/scripts/generate-static-asset-manifest.mjs +1 -1
  1017. package/scripts/i18n-dynamic-keys.json +5 -5
  1018. package/scripts/init-submodules.mjs +2 -2
  1019. package/scripts/install-android-sms-gateway.md +177 -0
  1020. package/scripts/install-android-sms-gateway.mjs +1088 -0
  1021. package/scripts/ios-xcframework/README.md +74 -72
  1022. package/scripts/ios-xcframework/build-xcframework.mjs +204 -43
  1023. package/scripts/ios-xcframework/run-physical-device-smoke.mjs +1943 -0
  1024. package/scripts/ios-xcframework/runtime-symbol-shim.c +450 -0
  1025. package/scripts/kernel-patches/cpu-polar-kernels.mjs +441 -0
  1026. package/scripts/kernel-patches/cpu-simd-kernels.mjs +253 -0
  1027. package/scripts/kernel-patches/cpu-thread-parallelism.mjs +368 -0
  1028. package/scripts/kernel-patches/cuda-kernels.mjs +117 -0
  1029. package/scripts/kernel-patches/metal-kernels.mjs +1698 -109
  1030. package/scripts/kernel-patches/server-omnivoice-route.mjs +718 -0
  1031. package/scripts/kernel-patches/server-structured-output.mjs +279 -0
  1032. package/scripts/kernel-patches/vulkan-dispatch-log.mjs +166 -0
  1033. package/scripts/kernel-patches/vulkan-dispatch-log.test.mjs +50 -0
  1034. package/scripts/kernel-patches/vulkan-dispatch-patches/01-vulkan-shaders-gen.patch +30 -16
  1035. package/scripts/kernel-patches/vulkan-dispatch-patches/02-ggml-vulkan-pipelines.patch +75 -30
  1036. package/scripts/kernel-patches/vulkan-kernels.mjs +800 -49
  1037. package/scripts/lib/agent-source-watcher.mjs +174 -0
  1038. package/scripts/lib/agent-source-watcher.test.mjs +184 -0
  1039. package/scripts/lib/api-supervisor.mjs +78 -9
  1040. package/scripts/lib/api-supervisor.test.mjs +121 -0
  1041. package/scripts/lib/app-dir.mjs +2 -16
  1042. package/scripts/lib/apple-entitlement-audit.mjs +655 -0
  1043. package/scripts/lib/apple-entitlement-audit.test.mjs +144 -0
  1044. package/scripts/lib/bun-version-guard.mjs +13 -13
  1045. package/scripts/lib/capacitor-plugin-build-needed.mjs +4 -3
  1046. package/scripts/lib/capacitor-plugin-names.mjs +30 -14
  1047. package/scripts/lib/desktop-preflight.mjs +9 -5
  1048. package/scripts/lib/desktop-startup-embedding-warmup-policy.mjs +51 -0
  1049. package/scripts/lib/desktop-startup-embedding-warmup-policy.test.mjs +55 -0
  1050. package/scripts/lib/duet-bridge.d.mts +63 -0
  1051. package/scripts/lib/duet-bridge.mjs +193 -0
  1052. package/scripts/lib/node-path-env.mjs +4 -2
  1053. package/scripts/lib/orchestrator-desktop-dev-banner.mjs +12 -3
  1054. package/scripts/lib/patch-bun-exports.mjs +90 -27
  1055. package/scripts/lib/patch-bun-exports.test.mjs +79 -0
  1056. package/scripts/lib/renderer-build-action.mjs +35 -0
  1057. package/scripts/lib/renderer-build-action.test.mjs +70 -0
  1058. package/scripts/lib/stage-android-agent.mjs +748 -99
  1059. package/scripts/lib/sync-eliza-env-aliases.mjs +3 -25
  1060. package/scripts/lib/ui-smoke-stub-decision.mjs +33 -0
  1061. package/scripts/lib/ui-smoke-stub-decision.test.mjs +46 -0
  1062. package/scripts/lib/vite-renderer-dist-stale.mjs +5 -0
  1063. package/scripts/lib/voice-latency-report.mjs +154 -0
  1064. package/scripts/lifeops-prompt-benchmark.ts +21 -12
  1065. package/scripts/link-docker-local-app-packages.mjs +89 -36
  1066. package/scripts/local-stt-bench.ts +192 -0
  1067. package/scripts/maintain-cloud-api-production-gateway.mjs +54 -0
  1068. package/scripts/mas-smoke.mjs +459 -0
  1069. package/scripts/mas-smoke.test.mjs +220 -0
  1070. package/scripts/mobile-auth-simulator-smoke.mjs +0 -1
  1071. package/scripts/normalize-eliza-capture.ts +97 -0
  1072. package/scripts/omnivoice-fuse/prepare.mjs +2543 -23
  1073. package/scripts/pack-upstreams.mjs +65 -5
  1074. package/scripts/package-electrobun-linux.mjs +303 -0
  1075. package/scripts/patch-deps.mjs +5 -3
  1076. package/scripts/patches/llama-mobile-kokoro-tts.patch +480 -0
  1077. package/scripts/playwright-ui-live-stack.ts +194 -49
  1078. package/scripts/playwright-ui-smoke-api-stub.mjs +3501 -109
  1079. package/scripts/pre-review-local.mjs +2 -2
  1080. package/scripts/prepare-ios-cocoapods.sh +41 -3
  1081. package/scripts/release-check.ts +180 -84
  1082. package/scripts/release-workflow-drift.test.ts +57 -0
  1083. package/scripts/relink-workspace-packages-to-dist.mjs +21 -4
  1084. package/scripts/rt.mjs +16 -1
  1085. package/scripts/run-biome-check.mjs +1 -1
  1086. package/scripts/run-coding-agent-e2e.mjs +3 -3
  1087. package/scripts/run-eliza-app-core-script.mjs +34 -0
  1088. package/scripts/run-local-plugin-live-smoke.mjs +71 -2
  1089. package/scripts/run-mobile-build-android-app-actions.test.mjs +426 -0
  1090. package/scripts/run-mobile-build.mjs +4757 -607
  1091. package/scripts/run-node-runtime.mjs +184 -7
  1092. package/scripts/run-node-runtime.test.mjs +167 -0
  1093. package/scripts/run-node-tsx.mjs +80 -33
  1094. package/scripts/run-node.mjs +41 -1
  1095. package/scripts/run-production-build.mjs +34 -27
  1096. package/scripts/run-release-check.mjs +19 -0
  1097. package/scripts/run-release-contract-suite.mjs +107 -14
  1098. package/scripts/run-ui-smoke-playwright-suite.mjs +0 -2
  1099. package/scripts/runtime-package-manifest.ts +21 -3
  1100. package/scripts/setup-upstreams.mjs +42 -1
  1101. package/scripts/sms-gateway-status.mjs +194 -0
  1102. package/scripts/stage-android-agent.test.mjs +97 -0
  1103. package/scripts/stage-elizavoice-lib.mjs +203 -0
  1104. package/scripts/startup-integration-script-drift.test.ts +82 -4
  1105. package/scripts/streaming-pipeline-bench.ts +543 -0
  1106. package/scripts/sync-homepage-porkbun-dns.mjs +262 -0
  1107. package/scripts/test-sms-gateway-software.mjs +100 -0
  1108. package/scripts/type-audit.mjs +1 -1
  1109. package/scripts/validate-bluebubbles-outbound.mjs +293 -0
  1110. package/scripts/validate-cdn-assets.mjs +15 -7
  1111. package/scripts/validate-regression-matrix.mjs +109 -8
  1112. package/scripts/verify-android-sms-gateway-e2e.mjs +362 -0
  1113. package/scripts/verify-bluebubbles-gateway-e2e.mjs +191 -0
  1114. package/scripts/verify-bluebubbles-inbound-readiness.mjs +88 -0
  1115. package/scripts/verify-cloud-api-production-deploy.mjs +87 -0
  1116. package/scripts/verify-cloud-sms-onboarding-flow.mjs +336 -0
  1117. package/scripts/voice/freeze-voice.mjs +521 -0
  1118. package/scripts/voice-attribution-smoke.ts +538 -0
  1119. package/scripts/voice-create-profile.mjs +379 -0
  1120. package/scripts/voice-duet.mjs +1355 -0
  1121. package/scripts/voice-e2e-hardware.ts +871 -0
  1122. package/scripts/voice-interactive.mjs +1750 -0
  1123. package/scripts/voice-latency-report.mjs +96 -0
  1124. package/scripts/voice-latency-report.test.ts +176 -0
  1125. package/scripts/voice-preset/build-default-voice-preset.mjs +249 -0
  1126. package/scripts/voice-preset/build-onboarding-voice.mjs +281 -0
  1127. package/scripts/watch-sms-gateway-readiness.mjs +303 -0
  1128. package/scripts/write-homepage-release-data.mjs +458 -26
  1129. package/security/agent-vault-id.d.ts +1 -1
  1130. package/security/agent-vault-id.js +1 -1
  1131. package/security/hydrate-wallet-keys-from-platform-store.d.ts.map +1 -1
  1132. package/security/hydrate-wallet-keys-from-platform-store.js +23 -14
  1133. package/security/platform-secure-store-node.d.ts +2 -2
  1134. package/security/platform-secure-store-node.js +3 -3
  1135. package/security/wallet-os-store-actions.d.ts +0 -9
  1136. package/security/wallet-os-store-actions.d.ts.map +1 -1
  1137. package/security/wallet-os-store-actions.js +3 -10
  1138. package/services/account-pool.d.ts +23 -14
  1139. package/services/account-pool.d.ts.map +1 -1
  1140. package/services/account-pool.js +86 -24
  1141. package/services/account-usage.d.ts.map +1 -1
  1142. package/services/account-usage.js +2 -5
  1143. package/services/ambient-audio/consent.d.ts +9 -0
  1144. package/services/ambient-audio/consent.d.ts.map +1 -0
  1145. package/services/ambient-audio/consent.js +28 -0
  1146. package/services/ambient-audio/index.d.ts +7 -0
  1147. package/services/ambient-audio/index.d.ts.map +1 -0
  1148. package/services/ambient-audio/index.js +4 -0
  1149. package/services/ambient-audio/replay-buffer.d.ts +14 -0
  1150. package/services/ambient-audio/replay-buffer.d.ts.map +1 -0
  1151. package/services/ambient-audio/replay-buffer.js +66 -0
  1152. package/services/ambient-audio/response-gate.d.ts +3 -0
  1153. package/services/ambient-audio/response-gate.d.ts.map +1 -0
  1154. package/services/ambient-audio/response-gate.js +33 -0
  1155. package/services/ambient-audio/service.d.ts +22 -0
  1156. package/services/ambient-audio/service.d.ts.map +1 -0
  1157. package/services/ambient-audio/service.js +47 -0
  1158. package/services/ambient-audio/types.d.ts +42 -0
  1159. package/services/ambient-audio/types.d.ts.map +1 -0
  1160. package/services/app-updates/update-policy.d.ts +64 -0
  1161. package/services/app-updates/update-policy.d.ts.map +1 -0
  1162. package/services/app-updates/update-policy.js +228 -0
  1163. package/services/auth-store.d.ts +37 -1
  1164. package/services/auth-store.d.ts.map +1 -1
  1165. package/services/auth-store.js +59 -26
  1166. package/services/cloud-jwks-store.d.ts +3 -3
  1167. package/services/cloud-jwks-store.d.ts.map +1 -1
  1168. package/services/cloud-jwks-store.js +5 -8
  1169. package/services/coding-account-bridge.d.ts +71 -0
  1170. package/services/coding-account-bridge.d.ts.map +1 -0
  1171. package/services/coding-account-bridge.js +267 -0
  1172. package/services/connector-target-catalog.d.ts +10 -3
  1173. package/services/connector-target-catalog.d.ts.map +1 -1
  1174. package/services/connector-target-catalog.js +7 -4
  1175. package/services/credential-tunnel-service.d.ts +66 -0
  1176. package/services/credential-tunnel-service.d.ts.map +1 -0
  1177. package/services/credential-tunnel-service.js +227 -0
  1178. package/services/github-credentials.d.ts +1 -1
  1179. package/services/github-credentials.js +1 -1
  1180. package/services/inference-abort.d.ts +47 -0
  1181. package/services/inference-abort.d.ts.map +1 -0
  1182. package/services/inference-abort.js +76 -0
  1183. package/services/persistence.d.ts +2 -3
  1184. package/services/persistence.d.ts.map +1 -1
  1185. package/services/persistence.js +2 -3
  1186. package/services/phrase-chunked-tts.d.ts +136 -0
  1187. package/services/phrase-chunked-tts.d.ts.map +1 -0
  1188. package/services/phrase-chunked-tts.js +208 -0
  1189. package/services/sandbox-registry.d.ts +78 -0
  1190. package/services/sandbox-registry.d.ts.map +1 -0
  1191. package/services/sandbox-registry.js +323 -0
  1192. package/services/secrets-manager-installer.d.ts +8 -1
  1193. package/services/secrets-manager-installer.d.ts.map +1 -1
  1194. package/services/secrets-manager-installer.js +27 -2
  1195. package/services/sensitive-requests/cloud-link-adapter.d.ts +15 -0
  1196. package/services/sensitive-requests/cloud-link-adapter.d.ts.map +1 -0
  1197. package/services/sensitive-requests/cloud-link-adapter.js +73 -0
  1198. package/services/sensitive-requests/index.d.ts +27 -0
  1199. package/services/sensitive-requests/index.d.ts.map +1 -0
  1200. package/services/sensitive-requests/index.js +51 -0
  1201. package/services/sensitive-requests/instruct-dm-only-adapter.d.ts +14 -0
  1202. package/services/sensitive-requests/instruct-dm-only-adapter.d.ts.map +1 -0
  1203. package/services/sensitive-requests/instruct-dm-only-adapter.js +22 -0
  1204. package/services/sensitive-requests/owner-app-inline-adapter.d.ts +3 -0
  1205. package/services/sensitive-requests/owner-app-inline-adapter.d.ts.map +1 -0
  1206. package/services/sensitive-requests/owner-app-inline-adapter.js +146 -0
  1207. package/services/sensitive-requests/owner-app-oauth-adapter.d.ts +3 -0
  1208. package/services/sensitive-requests/owner-app-oauth-adapter.d.ts.map +1 -0
  1209. package/services/sensitive-requests/owner-app-oauth-adapter.js +156 -0
  1210. package/services/sensitive-requests/public-link-adapter.d.ts +14 -0
  1211. package/services/sensitive-requests/public-link-adapter.d.ts.map +1 -0
  1212. package/services/sensitive-requests/public-link-adapter.js +86 -0
  1213. package/services/sensitive-requests/tunnel-link-adapter.d.ts +17 -0
  1214. package/services/sensitive-requests/tunnel-link-adapter.d.ts.map +1 -0
  1215. package/services/sensitive-requests/tunnel-link-adapter.js +38 -0
  1216. package/services/steward-credentials.d.ts +1 -1
  1217. package/services/steward-credentials.d.ts.map +1 -1
  1218. package/services/steward-credentials.js +10 -6
  1219. package/services/steward-sidecar/health-check.d.ts.map +1 -1
  1220. package/services/steward-sidecar/health-check.js +4 -3
  1221. package/services/steward-sidecar/process-management.d.ts +1 -1
  1222. package/services/steward-sidecar/process-management.d.ts.map +1 -1
  1223. package/services/steward-sidecar/process-management.js +9 -3
  1224. package/services/steward-sidecar/types.d.ts +1 -1
  1225. package/services/steward-sidecar/types.d.ts.map +1 -1
  1226. package/services/steward-sidecar/wallet-setup.d.ts.map +1 -1
  1227. package/services/steward-sidecar/wallet-setup.js +8 -7
  1228. package/services/steward-sidecar.d.ts +2 -2
  1229. package/services/steward-sidecar.d.ts.map +1 -1
  1230. package/services/steward-sidecar.js +27 -19
  1231. package/services/task-host-capabilities.d.ts +60 -0
  1232. package/services/task-host-capabilities.d.ts.map +1 -0
  1233. package/services/task-host-capabilities.js +122 -0
  1234. package/services/tool-call-cache/index.d.ts +2 -2
  1235. package/services/tool-call-cache/index.d.ts.map +1 -1
  1236. package/services/tool-call-cache/index.js +1 -1
  1237. package/services/trigger-event-bridge.js +1 -1
  1238. package/services/tunnel-to-mobile/index.d.ts +2 -0
  1239. package/services/tunnel-to-mobile/index.d.ts.map +1 -0
  1240. package/services/tunnel-to-mobile/index.js +1 -0
  1241. package/services/tunnel-to-mobile/tunnel-to-mobile-client.d.ts +105 -0
  1242. package/services/tunnel-to-mobile/tunnel-to-mobile-client.d.ts.map +1 -0
  1243. package/services/tunnel-to-mobile/tunnel-to-mobile-client.js +190 -0
  1244. package/services/vault-bootstrap.d.ts.map +1 -1
  1245. package/services/vault-bootstrap.js +48 -21
  1246. package/services/vault-mirror.d.ts +1 -1
  1247. package/services/vault-mirror.d.ts.map +1 -1
  1248. package/services/vault-mirror.js +29 -6
  1249. package/services/voice-profiles/diarization-pipeline.d.ts +6 -0
  1250. package/services/voice-profiles/diarization-pipeline.d.ts.map +1 -0
  1251. package/services/voice-profiles/diarization-pipeline.js +20 -0
  1252. package/services/voice-profiles/index.d.ts +12 -0
  1253. package/services/voice-profiles/index.d.ts.map +1 -0
  1254. package/services/voice-profiles/index.js +5 -0
  1255. package/services/voice-profiles/nickname-evaluator.d.ts +14 -0
  1256. package/services/voice-profiles/nickname-evaluator.d.ts.map +1 -0
  1257. package/services/voice-profiles/nickname-evaluator.js +46 -0
  1258. package/services/voice-profiles/owner-confidence.d.ts +10 -0
  1259. package/services/voice-profiles/owner-confidence.d.ts.map +1 -0
  1260. package/services/voice-profiles/owner-confidence.js +38 -0
  1261. package/services/voice-profiles/private-challenge.d.ts +20 -0
  1262. package/services/voice-profiles/private-challenge.d.ts.map +1 -0
  1263. package/services/voice-profiles/private-challenge.js +44 -0
  1264. package/services/voice-profiles/store.d.ts +21 -0
  1265. package/services/voice-profiles/store.d.ts.map +1 -0
  1266. package/services/voice-profiles/store.js +50 -0
  1267. package/services/voice-profiles/types.d.ts +38 -0
  1268. package/services/voice-profiles/types.d.ts.map +1 -0
  1269. package/services/voice-profiles/types.js +1 -0
  1270. package/styles/electrobun-mac-window-drag.css +4 -4
  1271. package/test/helpers/__tests__/live-agent-test.smoke.test.ts +43 -70
  1272. package/test/helpers/browser-mocks.ts +2 -2
  1273. package/test/helpers/conditional-tests.ts +2 -2
  1274. package/test/helpers/i18n.ts +1 -1
  1275. package/test/helpers/live-agent-test.ts +537 -551
  1276. package/test/helpers/live-provider.test.ts +4 -4
  1277. package/test/helpers/live-provider.ts +41 -7
  1278. package/test/helpers/live-runtime-server.ts +4 -4
  1279. package/test/helpers/pglite-runtime.ts +1 -1
  1280. package/test/helpers/real-runtime.ts +54 -15
  1281. package/test/helpers/trajectory-harness.ts +11 -7
  1282. package/test/scripts/start-eliza-live.ts +9 -0
  1283. package/test/scripts/test-parallel.mjs +1 -1
  1284. package/test/scripts/test-root-unit.mjs +6 -7
  1285. package/ui-compat.d.ts +13 -2
  1286. package/ui-compat.d.ts.map +1 -1
  1287. package/ui-compat.js +19 -3
  1288. package/api/auth-pairing-compat-routes.d.ts +0 -17
  1289. package/api/auth-pairing-compat-routes.d.ts.map +0 -1
  1290. package/api/auth-pairing-compat-routes.js +0 -301
  1291. package/api/local-inference-compat-routes.d.ts +0 -16
  1292. package/api/local-inference-compat-routes.d.ts.map +0 -1
  1293. package/api/local-inference-compat-routes.js +0 -617
  1294. package/api/onboarding-compat-routes.d.ts +0 -4
  1295. package/api/onboarding-compat-routes.d.ts.map +0 -1
  1296. package/api/onboarding-compat-routes.js +0 -207
  1297. package/api/plugins-compat-routes.d.ts +0 -103
  1298. package/api/plugins-compat-routes.d.ts.map +0 -1
  1299. package/api/plugins-compat-routes.js +0 -1181
  1300. package/api/server-onboarding-compat.d.ts +0 -31
  1301. package/api/server-onboarding-compat.d.ts.map +0 -1
  1302. package/api/server-onboarding-compat.js +0 -283
  1303. package/benchmark/cua-routes.d.ts +0 -10
  1304. package/benchmark/cua-routes.d.ts.map +0 -1
  1305. package/benchmark/cua-routes.js +0 -179
  1306. package/benchmark/mock-plugin-base.d.ts +0 -9
  1307. package/benchmark/mock-plugin-base.d.ts.map +0 -1
  1308. package/benchmark/mock-plugin-base.js +0 -325
  1309. package/cli/parse-duration.d.ts +0 -5
  1310. package/cli/parse-duration.d.ts.map +0 -1
  1311. package/cli/parse-duration.js +0 -27
  1312. package/patches/llama-cpp-capacitor@0.1.5.patch +0 -2387
  1313. package/platform/agent-browser-stub.d.ts +0 -27
  1314. package/platform/agent-browser-stub.d.ts.map +0 -1
  1315. package/platform/agent-browser-stub.js +0 -16
  1316. package/platforms/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java +0 -26
  1317. package/platforms/android/app/src/main/res/drawable/ic_launcher_background.xml +0 -170
  1318. package/platforms/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +0 -34
  1319. package/platforms/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java +0 -18
  1320. package/platforms/electrobun/assets/appIcon.iconset/icon_512x512@2x.png +0 -0
  1321. package/platforms/electrobun/assets/appIcon.png +0 -0
  1322. package/platforms/electrobun/scripts/build-whisper-universal.sh +0 -137
  1323. package/platforms/electrobun/scripts/build-whisper.sh +0 -95
  1324. package/platforms/electrobun/src/libMacWindowEffects.dylib +0 -0
  1325. package/platforms/electrobun/src/native/whisper.ts +0 -280
  1326. package/platforms/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png +0 -0
  1327. package/platforms/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png +0 -0
  1328. package/platforms/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png +0 -0
  1329. package/registry/generate-apps.d.ts +0 -2
  1330. package/registry/generate-apps.d.ts.map +0 -1
  1331. package/registry/generate-apps.js +0 -338
  1332. package/registry/generate.d.ts +0 -2
  1333. package/registry/generate.d.ts.map +0 -1
  1334. package/registry/generate.js +0 -506
  1335. package/runtime/embedding-manager-support.d.ts +0 -77
  1336. package/runtime/embedding-manager-support.d.ts.map +0 -1
  1337. package/runtime/embedding-manager-support.js +0 -309
  1338. package/runtime/embedding-presets.d.ts +0 -5
  1339. package/runtime/embedding-presets.d.ts.map +0 -1
  1340. package/runtime/embedding-presets.js +0 -47
  1341. package/runtime/embedding-warmup-policy.d.ts +0 -13
  1342. package/runtime/embedding-warmup-policy.d.ts.map +0 -1
  1343. package/runtime/embedding-warmup-policy.js +0 -33
  1344. package/runtime/ensure-local-inference-handler.d.ts +0 -25
  1345. package/runtime/ensure-local-inference-handler.d.ts.map +0 -1
  1346. package/runtime/ensure-local-inference-handler.js +0 -389
  1347. package/runtime/mobile-local-inference-gate.d.ts +0 -21
  1348. package/runtime/mobile-local-inference-gate.d.ts.map +0 -1
  1349. package/runtime/mobile-local-inference-gate.js +0 -24
  1350. package/scripts/aosp/avd-test.mjs +0 -403
  1351. package/scripts/aosp/boot-validate.mjs +0 -536
  1352. package/scripts/aosp/build-aosp.mjs +0 -448
  1353. package/scripts/aosp/build-bootanimation.mjs +0 -178
  1354. package/scripts/aosp/capture-screens.mjs +0 -325
  1355. package/scripts/aosp/e2e-validate.mjs +0 -225
  1356. package/scripts/aosp/lint-init-rc.mjs +0 -258
  1357. package/scripts/aosp/llama-shim/eliza_llama_shim.c +0 -276
  1358. package/scripts/aosp/sim.mjs +0 -277
  1359. package/scripts/aosp/sync-to-aosp.mjs +0 -134
  1360. package/scripts/aosp/validate.mjs +0 -1273
  1361. package/scripts/build-llama-cpp-dflash.mjs +0 -1866
  1362. package/scripts/generate-onboarding-voicelines.mjs +0 -194
  1363. package/scripts/generated/static-asset-manifest.json +0 -4
  1364. package/scripts/normalize-parallax-capture.ts +0 -97
  1365. package/scripts/omnivoice-fuse/Makefile +0 -44
  1366. package/scripts/omnivoice-fuse/README.md +0 -266
  1367. package/scripts/omnivoice-fuse/cmake-graft.mjs +0 -180
  1368. package/scripts/omnivoice-fuse/ffi-stub.c +0 -222
  1369. package/scripts/omnivoice-fuse/ffi.h +0 -158
  1370. package/scripts/omnivoice-fuse/libelizainference_stub.dylib +0 -0
  1371. package/scripts/omnivoice-fuse/verify-symbols.mjs +0 -138
  1372. package/security/cloud-secret-store.d.ts +0 -34
  1373. package/security/cloud-secret-store.d.ts.map +0 -1
  1374. package/security/cloud-secret-store.js +0 -65
  1375. package/security/export-guard.d.ts +0 -34
  1376. package/security/export-guard.d.ts.map +0 -1
  1377. package/security/export-guard.js +0 -127
  1378. package/services/local-inference/__stress__/cache-stress-helpers.d.ts +0 -76
  1379. package/services/local-inference/__stress__/cache-stress-helpers.d.ts.map +0 -1
  1380. package/services/local-inference/__stress__/cache-stress-helpers.js +0 -238
  1381. package/services/local-inference/active-model.d.ts +0 -180
  1382. package/services/local-inference/active-model.d.ts.map +0 -1
  1383. package/services/local-inference/active-model.js +0 -362
  1384. package/services/local-inference/assignments.d.ts +0 -58
  1385. package/services/local-inference/assignments.d.ts.map +0 -1
  1386. package/services/local-inference/assignments.js +0 -179
  1387. package/services/local-inference/backend.d.ts +0 -200
  1388. package/services/local-inference/backend.d.ts.map +0 -1
  1389. package/services/local-inference/backend.js +0 -242
  1390. package/services/local-inference/bundled-models.d.ts +0 -34
  1391. package/services/local-inference/bundled-models.d.ts.map +0 -1
  1392. package/services/local-inference/bundled-models.js +0 -104
  1393. package/services/local-inference/cache-bridge.d.ts +0 -184
  1394. package/services/local-inference/cache-bridge.d.ts.map +0 -1
  1395. package/services/local-inference/cache-bridge.js +0 -333
  1396. package/services/local-inference/catalog.d.ts +0 -57
  1397. package/services/local-inference/catalog.d.ts.map +0 -1
  1398. package/services/local-inference/catalog.js +0 -262
  1399. package/services/local-inference/conversation-registry.d.ts +0 -122
  1400. package/services/local-inference/conversation-registry.d.ts.map +0 -1
  1401. package/services/local-inference/conversation-registry.js +0 -182
  1402. package/services/local-inference/device-bridge.d.ts +0 -139
  1403. package/services/local-inference/device-bridge.d.ts.map +0 -1
  1404. package/services/local-inference/device-bridge.js +0 -774
  1405. package/services/local-inference/dflash-doctor.d.ts +0 -27
  1406. package/services/local-inference/dflash-doctor.d.ts.map +0 -1
  1407. package/services/local-inference/dflash-doctor.js +0 -149
  1408. package/services/local-inference/dflash-server.d.ts +0 -248
  1409. package/services/local-inference/dflash-server.d.ts.map +0 -1
  1410. package/services/local-inference/dflash-server.js +0 -1076
  1411. package/services/local-inference/downloader.d.ts +0 -48
  1412. package/services/local-inference/downloader.d.ts.map +0 -1
  1413. package/services/local-inference/downloader.js +0 -688
  1414. package/services/local-inference/engine.d.ts +0 -282
  1415. package/services/local-inference/engine.d.ts.map +0 -1
  1416. package/services/local-inference/engine.js +0 -743
  1417. package/services/local-inference/external-scanner.d.ts +0 -17
  1418. package/services/local-inference/external-scanner.d.ts.map +0 -1
  1419. package/services/local-inference/external-scanner.js +0 -261
  1420. package/services/local-inference/handler-registry.d.ts +0 -72
  1421. package/services/local-inference/handler-registry.d.ts.map +0 -1
  1422. package/services/local-inference/handler-registry.js +0 -159
  1423. package/services/local-inference/hardware.d.ts +0 -26
  1424. package/services/local-inference/hardware.d.ts.map +0 -1
  1425. package/services/local-inference/hardware.js +0 -139
  1426. package/services/local-inference/hf-search.d.ts +0 -19
  1427. package/services/local-inference/hf-search.d.ts.map +0 -1
  1428. package/services/local-inference/hf-search.js +0 -169
  1429. package/services/local-inference/index.d.ts +0 -10
  1430. package/services/local-inference/index.d.ts.map +0 -1
  1431. package/services/local-inference/index.js +0 -7
  1432. package/services/local-inference/llama-server-metrics.d.ts +0 -108
  1433. package/services/local-inference/llama-server-metrics.d.ts.map +0 -1
  1434. package/services/local-inference/llama-server-metrics.js +0 -175
  1435. package/services/local-inference/manifest/index.d.ts +0 -4
  1436. package/services/local-inference/manifest/index.d.ts.map +0 -1
  1437. package/services/local-inference/manifest/index.js +0 -5
  1438. package/services/local-inference/manifest/schema.d.ts +0 -419
  1439. package/services/local-inference/manifest/schema.d.ts.map +0 -1
  1440. package/services/local-inference/manifest/schema.js +0 -227
  1441. package/services/local-inference/manifest/types.d.ts +0 -23
  1442. package/services/local-inference/manifest/types.d.ts.map +0 -1
  1443. package/services/local-inference/manifest/types.js +0 -5
  1444. package/services/local-inference/manifest/validator.d.ts +0 -43
  1445. package/services/local-inference/manifest/validator.d.ts.map +0 -1
  1446. package/services/local-inference/manifest/validator.js +0 -180
  1447. package/services/local-inference/paths.d.ts +0 -8
  1448. package/services/local-inference/paths.d.ts.map +0 -1
  1449. package/services/local-inference/paths.js +0 -7
  1450. package/services/local-inference/providers.d.ts +0 -61
  1451. package/services/local-inference/providers.d.ts.map +0 -1
  1452. package/services/local-inference/providers.js +0 -334
  1453. package/services/local-inference/ram-budget.d.ts +0 -57
  1454. package/services/local-inference/ram-budget.d.ts.map +0 -1
  1455. package/services/local-inference/ram-budget.js +0 -107
  1456. package/services/local-inference/readiness.d.ts +0 -9
  1457. package/services/local-inference/readiness.d.ts.map +0 -1
  1458. package/services/local-inference/readiness.js +0 -153
  1459. package/services/local-inference/recommendation.d.ts +0 -62
  1460. package/services/local-inference/recommendation.d.ts.map +0 -1
  1461. package/services/local-inference/recommendation.js +0 -309
  1462. package/services/local-inference/registry.d.ts +0 -35
  1463. package/services/local-inference/registry.d.ts.map +0 -1
  1464. package/services/local-inference/registry.js +0 -117
  1465. package/services/local-inference/router-handler.d.ts +0 -51
  1466. package/services/local-inference/router-handler.d.ts.map +0 -1
  1467. package/services/local-inference/router-handler.js +0 -165
  1468. package/services/local-inference/routing-policy.d.ts +0 -55
  1469. package/services/local-inference/routing-policy.d.ts.map +0 -1
  1470. package/services/local-inference/routing-policy.js +0 -195
  1471. package/services/local-inference/routing-preferences.d.ts +0 -8
  1472. package/services/local-inference/routing-preferences.d.ts.map +0 -1
  1473. package/services/local-inference/routing-preferences.js +0 -7
  1474. package/services/local-inference/service.d.ts +0 -88
  1475. package/services/local-inference/service.d.ts.map +0 -1
  1476. package/services/local-inference/service.js +0 -210
  1477. package/services/local-inference/session-pool.d.ts +0 -72
  1478. package/services/local-inference/session-pool.d.ts.map +0 -1
  1479. package/services/local-inference/session-pool.js +0 -125
  1480. package/services/local-inference/types.d.ts +0 -309
  1481. package/services/local-inference/types.d.ts.map +0 -1
  1482. package/services/local-inference/types.js +0 -23
  1483. package/services/local-inference/verify.d.ts +0 -8
  1484. package/services/local-inference/verify.d.ts.map +0 -1
  1485. package/services/local-inference/verify.js +0 -7
  1486. package/services/local-inference/voice/barge-in.d.ts +0 -15
  1487. package/services/local-inference/voice/barge-in.d.ts.map +0 -1
  1488. package/services/local-inference/voice/barge-in.js +0 -20
  1489. package/services/local-inference/voice/engine-bridge.d.ts +0 -256
  1490. package/services/local-inference/voice/engine-bridge.d.ts.map +0 -1
  1491. package/services/local-inference/voice/engine-bridge.js +0 -398
  1492. package/services/local-inference/voice/ffi-bindings.d.ts +0 -114
  1493. package/services/local-inference/voice/ffi-bindings.d.ts.map +0 -1
  1494. package/services/local-inference/voice/ffi-bindings.js +0 -281
  1495. package/services/local-inference/voice/index.d.ts +0 -51
  1496. package/services/local-inference/voice/index.d.ts.map +0 -1
  1497. package/services/local-inference/voice/index.js +0 -50
  1498. package/services/local-inference/voice/lifecycle.d.ts +0 -135
  1499. package/services/local-inference/voice/lifecycle.d.ts.map +0 -1
  1500. package/services/local-inference/voice/lifecycle.js +0 -189
  1501. package/services/local-inference/voice/phoneme-tokenizer.d.ts +0 -58
  1502. package/services/local-inference/voice/phoneme-tokenizer.d.ts.map +0 -1
  1503. package/services/local-inference/voice/phoneme-tokenizer.js +0 -53
  1504. package/services/local-inference/voice/phrase-cache.d.ts +0 -24
  1505. package/services/local-inference/voice/phrase-cache.d.ts.map +0 -1
  1506. package/services/local-inference/voice/phrase-cache.js +0 -32
  1507. package/services/local-inference/voice/phrase-chunker.d.ts +0 -20
  1508. package/services/local-inference/voice/phrase-chunker.d.ts.map +0 -1
  1509. package/services/local-inference/voice/phrase-chunker.js +0 -85
  1510. package/services/local-inference/voice/ring-buffer.d.ts +0 -40
  1511. package/services/local-inference/voice/ring-buffer.d.ts.map +0 -1
  1512. package/services/local-inference/voice/ring-buffer.js +0 -85
  1513. package/services/local-inference/voice/rollback-queue.d.ts +0 -24
  1514. package/services/local-inference/voice/rollback-queue.d.ts.map +0 -1
  1515. package/services/local-inference/voice/rollback-queue.js +0 -49
  1516. package/services/local-inference/voice/scheduler.d.ts +0 -47
  1517. package/services/local-inference/voice/scheduler.d.ts.map +0 -1
  1518. package/services/local-inference/voice/scheduler.js +0 -123
  1519. package/services/local-inference/voice/shared-resources.d.ts +0 -119
  1520. package/services/local-inference/voice/shared-resources.d.ts.map +0 -1
  1521. package/services/local-inference/voice/shared-resources.js +0 -83
  1522. package/services/local-inference/voice/speaker-preset-cache.d.ts +0 -28
  1523. package/services/local-inference/voice/speaker-preset-cache.d.ts.map +0 -1
  1524. package/services/local-inference/voice/speaker-preset-cache.js +0 -44
  1525. package/services/local-inference/voice/types.d.ts +0 -80
  1526. package/services/local-inference/voice/types.d.ts.map +0 -1
  1527. package/services/local-inference/voice/voice-preset-format.d.ts +0 -56
  1528. package/services/local-inference/voice/voice-preset-format.d.ts.map +0 -1
  1529. package/services/local-inference/voice/voice-preset-format.js +0 -184
  1530. package/services/plugin-installer.d.ts +0 -22
  1531. package/services/plugin-installer.d.ts.map +0 -1
  1532. package/services/plugin-installer.js +0 -41
  1533. package/test/scripts/task-agent-live-smoke.ts +0 -1335
  1534. /package/services/{local-inference/voice → ambient-audio}/types.js +0 -0
@@ -55,9 +55,27 @@ const TRACKED_PACKAGE_CACHE = path.join(
55
55
  const PUBLISHED_PACKAGE_FETCH_TIMEOUT_MS = 10_000;
56
56
  const ALLOW_REGISTRY_FETCH =
57
57
  process.env.ELIZA_RUNTIME_COPY_ALLOW_REGISTRY_FETCH === "1";
58
- const DEP_SKIP = new Set(["typescript", "@types/node", "lucide-react"]);
59
- const ALWAYS_HOISTED_PACKAGES = new Set(["@elizaos/core"]);
60
- const PACKAGED_DEPENDENCY_SKIPS = new Map<string, Set<string>>();
58
+ const DEP_SKIP = new Set(["typescript", "@types/node"]);
59
+ const ALWAYS_HOISTED_PACKAGES = new Set([
60
+ "@elizaos/core",
61
+ "commander",
62
+ "pg",
63
+ "pg-pool",
64
+ ]);
65
+ const PATCH_COMPATIBLE_HOISTED_PACKAGES = new Set([
66
+ "@walletconnect/core",
67
+ "@walletconnect/sign-client",
68
+ "@walletconnect/types",
69
+ "@walletconnect/universal-provider",
70
+ "@walletconnect/utils",
71
+ ]);
72
+ const PACKAGED_DEPENDENCY_SKIPS = new Map<string, Set<string>>([
73
+ // git-workspace-service declares @octokit/rest as both a dependency (^20)
74
+ // and a peer (>=20). Desktop bundles it via plugin-agent-orchestrator,
75
+ // which ships @octokit/rest@22 at the runtime root. Re-copying the private
76
+ // Bun fallback produces tar-unsafe nested paths on Windows.
77
+ ["git-workspace-service", new Set(["@octokit/rest"])],
78
+ ]);
61
79
  const RUNTIME_COPY_PRUNED_DIR_NAMES = new Set([
62
80
  ".git",
63
81
  ".gradle",
@@ -90,6 +108,14 @@ const TAR_SAFE_BASENAME_MAX = Number.parseInt(
90
108
  process.env.ELIZA_RUNTIME_TAR_SAFE_BASENAME_MAX ?? "100",
91
109
  10,
92
110
  );
111
+ const RUNTIME_COPY_LOCK_TIMEOUT_MS = Number.parseInt(
112
+ process.env.ELIZA_RUNTIME_COPY_LOCK_TIMEOUT_MS ?? "600000",
113
+ 10,
114
+ );
115
+ const RUNTIME_COPY_LOCK_STALE_MS = Number.parseInt(
116
+ process.env.ELIZA_RUNTIME_COPY_LOCK_STALE_MS ?? "1800000",
117
+ 10,
118
+ );
93
119
  const PLATFORM_ALIASES = new Map<string, string>([
94
120
  ["android", "android"],
95
121
  ["aix", "aix"],
@@ -150,8 +176,15 @@ function parseArgs(argv: string[]): Options {
150
176
  if (!arg.startsWith("--")) continue;
151
177
  const [rawKey, inlineValue] = arg.slice(2).split("=", 2);
152
178
  const key = rawKey.trim();
153
- const value = inlineValue ?? argv[i + 1];
154
- if (!inlineValue) i += 1;
179
+ let value = inlineValue;
180
+ if (value === undefined) {
181
+ const next = argv[i + 1];
182
+ if (next && !next.startsWith("--")) {
183
+ value = next;
184
+ i += 1;
185
+ }
186
+ }
187
+ if (value === undefined) continue;
155
188
  opts[key] = value;
156
189
  }
157
190
 
@@ -164,6 +197,172 @@ function readJson<T>(filePath: string): T {
164
197
  return JSON.parse(fs.readFileSync(filePath, "utf8")) as T;
165
198
  }
166
199
 
200
+ function sleepSync(ms: number): void {
201
+ Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
202
+ }
203
+
204
+ function isEnoentError(error: unknown): boolean {
205
+ return Boolean(
206
+ error &&
207
+ typeof error === "object" &&
208
+ (error as { code?: string }).code === "ENOENT",
209
+ );
210
+ }
211
+
212
+ function isRetryableRemoveError(error: unknown): boolean {
213
+ if (!error || typeof error !== "object") {
214
+ return false;
215
+ }
216
+ const code = (error as { code?: string }).code;
217
+ return (
218
+ code === "EBUSY" ||
219
+ code === "EMFILE" ||
220
+ code === "ENFILE" ||
221
+ code === "ENOTEMPTY" ||
222
+ code === "EPERM"
223
+ );
224
+ }
225
+
226
+ function isProcessAlive(pid: number): boolean {
227
+ try {
228
+ process.kill(pid, 0);
229
+ return true;
230
+ } catch (error) {
231
+ if (
232
+ error &&
233
+ typeof error === "object" &&
234
+ (error as { code?: string }).code === "ESRCH"
235
+ ) {
236
+ return false;
237
+ }
238
+ return true;
239
+ }
240
+ }
241
+
242
+ function readRuntimeCopyLockOwnerPid(lockDir: string): number | null {
243
+ try {
244
+ const owner = readJson<{ pid?: unknown }>(path.join(lockDir, "owner.json"));
245
+ return typeof owner.pid === "number" && owner.pid > 0 ? owner.pid : null;
246
+ } catch {
247
+ return null;
248
+ }
249
+ }
250
+
251
+ function rmRecursive(pathToRemove: string): void {
252
+ const maxAttempts = 8;
253
+ for (let attempt = 0; attempt < maxAttempts; attempt += 1) {
254
+ try {
255
+ fs.rmSync(pathToRemove, {
256
+ force: true,
257
+ maxRetries: 5,
258
+ recursive: true,
259
+ retryDelay: 100,
260
+ });
261
+ return;
262
+ } catch (error) {
263
+ if (!isRetryableRemoveError(error)) {
264
+ throw error;
265
+ }
266
+ if (attempt === maxAttempts - 1) break;
267
+ sleepSync(100 * (attempt + 1));
268
+ }
269
+ }
270
+
271
+ if (!fs.existsSync(pathToRemove)) {
272
+ return;
273
+ }
274
+
275
+ const parentDir = path.dirname(pathToRemove);
276
+ const tombstone = path.join(
277
+ parentDir,
278
+ `.${path.basename(pathToRemove)}.delete-${process.pid}-${Date.now()}`,
279
+ );
280
+ try {
281
+ fs.renameSync(pathToRemove, tombstone);
282
+ } catch (error) {
283
+ if (!fs.existsSync(pathToRemove)) {
284
+ return;
285
+ }
286
+ throw error;
287
+ }
288
+
289
+ try {
290
+ fs.rmSync(tombstone, {
291
+ force: true,
292
+ maxRetries: 10,
293
+ recursive: true,
294
+ retryDelay: 100,
295
+ });
296
+ } catch (error) {
297
+ console.warn(
298
+ `[runtime-copy] warning: moved retry-resistant path aside but could not fully remove ${tombstone}: ${error instanceof Error ? error.message : String(error)}`,
299
+ );
300
+ }
301
+ }
302
+
303
+ function acquireRuntimeCopyLock(targetDist: string): () => void {
304
+ const lockDir = path.join(targetDist, ".runtime-copy.lock");
305
+ const startedAt = Date.now();
306
+
307
+ while (true) {
308
+ try {
309
+ fs.mkdirSync(lockDir, { recursive: false });
310
+ fs.writeFileSync(
311
+ path.join(lockDir, "owner.json"),
312
+ `${JSON.stringify(
313
+ {
314
+ pid: process.pid,
315
+ startedAt: new Date().toISOString(),
316
+ targetDist,
317
+ },
318
+ null,
319
+ 2,
320
+ )}\n`,
321
+ );
322
+ return () => {
323
+ fs.rmSync(lockDir, { force: true, recursive: true });
324
+ };
325
+ } catch (error) {
326
+ if (
327
+ !error ||
328
+ typeof error !== "object" ||
329
+ (error as { code?: string }).code !== "EEXIST"
330
+ ) {
331
+ throw error;
332
+ }
333
+
334
+ let ageMs = 0;
335
+ try {
336
+ ageMs = Date.now() - fs.statSync(lockDir).mtimeMs;
337
+ } catch (statError) {
338
+ if (isEnoentError(statError)) {
339
+ continue;
340
+ }
341
+ throw statError;
342
+ }
343
+
344
+ const ownerPid = readRuntimeCopyLockOwnerPid(lockDir);
345
+ if (ownerPid !== null && !isProcessAlive(ownerPid)) {
346
+ rmRecursive(lockDir);
347
+ continue;
348
+ }
349
+
350
+ if (ageMs > RUNTIME_COPY_LOCK_STALE_MS) {
351
+ rmRecursive(lockDir);
352
+ continue;
353
+ }
354
+
355
+ if (Date.now() - startedAt > RUNTIME_COPY_LOCK_TIMEOUT_MS) {
356
+ throw new Error(
357
+ `[runtime-copy] timed out waiting for runtime copy lock: ${lockDir}`,
358
+ );
359
+ }
360
+
361
+ sleepSync(250);
362
+ }
363
+ }
364
+ }
365
+
167
366
  function packagePath(name: string, baseDir: string): string {
168
367
  if (name.startsWith("@")) {
169
368
  const [scope, pkg] = name.split("/");
@@ -299,8 +498,8 @@ function buildWorkspacePackageIndex(): void {
299
498
 
300
499
  indexWorkspacePackages(ROOT);
301
500
 
302
- // The desktop wrapper repo builds from /milady while the active Eliza
303
- // workspace lives at /milady/eliza. Prefer those local packages over stale
501
+ // The desktop wrapper repo builds from /eliza while the active Eliza
502
+ // workspace lives at /eliza/eliza. Prefer those local packages over stale
304
503
  // published node_modules copies so deep runtime imports match the code that
305
504
  // tsdown just compiled.
306
505
  const nestedElizaRoot = path.join(ROOT, "eliza");
@@ -482,12 +681,6 @@ export function shouldKeepPackageRelativePath(
482
681
  }
483
682
  }
484
683
 
485
- if (packageName === "onnxruntime-web") {
486
- if (normalizedPath === "lib" || normalizedPath.startsWith("lib/")) {
487
- return false;
488
- }
489
- }
490
-
491
684
  if (packageName === "@elizaos/app-core") {
492
685
  if (
493
686
  normalizedPath === ".tmp" ||
@@ -503,7 +696,7 @@ export function shouldKeepPackageRelativePath(
503
696
  }
504
697
  }
505
698
 
506
- if (packageName === "@elizaos/app-companion") {
699
+ if (packageName === "@elizaos/plugin-companion") {
507
700
  if (
508
701
  normalizedPath === "public_src" ||
509
702
  normalizedPath.startsWith("public_src/")
@@ -573,11 +766,48 @@ function shouldPreservePrunedPackageEntry(
573
766
  packageDir: string | undefined,
574
767
  entryPath: string,
575
768
  ): boolean {
769
+ const relativePath = packageDir
770
+ ? toPosixPath(path.relative(packageDir, entryPath))
771
+ : "";
772
+ if (
773
+ packageName === "@elizaos/skills" &&
774
+ relativePath.startsWith("skills/") &&
775
+ /\.(?:md|markdown)$/i.test(relativePath)
776
+ ) {
777
+ return true;
778
+ }
779
+
780
+ if (
781
+ packageName === "googleapis" &&
782
+ (relativePath === "build/src/apis/docs" ||
783
+ relativePath.startsWith("build/src/apis/docs/"))
784
+ ) {
785
+ return true;
786
+ }
787
+
788
+ if (
789
+ packageName === "three" &&
790
+ (relativePath === "examples" ||
791
+ relativePath === "examples/jsm" ||
792
+ relativePath.startsWith("examples/jsm/") ||
793
+ relativePath === "examples/fonts" ||
794
+ relativePath.startsWith("examples/fonts/"))
795
+ ) {
796
+ return true;
797
+ }
798
+
799
+ if (
800
+ packageName === "@elizaos/ui" &&
801
+ (relativePath === "dist/cloud-ui/components/docs" ||
802
+ relativePath.startsWith("dist/cloud-ui/components/docs/"))
803
+ ) {
804
+ return true;
805
+ }
806
+
576
807
  if (packageName !== "@elevenlabs/elevenlabs-js" || !packageDir) {
577
808
  return false;
578
809
  }
579
810
 
580
- const relativePath = toPosixPath(path.relative(packageDir, entryPath));
581
811
  return (
582
812
  relativePath === "api/resources/conversationalAi/resources/tests" ||
583
813
  relativePath.startsWith(
@@ -591,14 +821,47 @@ function shouldPreservePrunedPackageEntry(
591
821
  );
592
822
  }
593
823
 
824
+ function shouldPrunePackageRelativePath(
825
+ packageName: string,
826
+ relativePath: string,
827
+ ): boolean {
828
+ const normalizedPath = relativePath.split(path.sep).join("/");
829
+
830
+ if (packageName === "@elizaos/plugin-local-inference") {
831
+ return (
832
+ normalizedPath === "native/llama.cpp/tools/server/webui" ||
833
+ normalizedPath.startsWith("native/llama.cpp/tools/server/webui/") ||
834
+ /^native\/llama\.cpp\/build(?:[-/]|$)/.test(normalizedPath) ||
835
+ /^native\/omnivoice\.cpp\/build(?:[-/]|$)/.test(normalizedPath)
836
+ );
837
+ }
838
+
839
+ return false;
840
+ }
841
+
594
842
  function pruneCopiedPackageDir(name: string, packageDir: string): void {
595
843
  if (!fs.existsSync(packageDir)) return;
596
844
 
597
845
  const visit = (currentDir: string): void => {
598
- for (const entry of fs.readdirSync(currentDir, { withFileTypes: true })) {
846
+ let entries: fs.Dirent[];
847
+ try {
848
+ entries = fs.readdirSync(currentDir, { withFileTypes: true });
849
+ } catch (error) {
850
+ if (isEnoentError(error)) {
851
+ return;
852
+ }
853
+ throw error;
854
+ }
855
+
856
+ for (const entry of entries) {
599
857
  const entryPath = path.join(currentDir, entry.name);
600
858
  const relativePath = path.relative(packageDir, entryPath);
601
859
 
860
+ if (shouldPrunePackageRelativePath(name, relativePath)) {
861
+ fs.rmSync(entryPath, { recursive: true, force: true });
862
+ continue;
863
+ }
864
+
602
865
  if (
603
866
  entry.name === "node_modules" ||
604
867
  (RUNTIME_COPY_PRUNED_DIR_NAMES.has(entry.name) &&
@@ -611,7 +874,8 @@ function pruneCopiedPackageDir(name: string, packageDir: string): void {
611
874
 
612
875
  if (
613
876
  entry.isFile() &&
614
- RUNTIME_COPY_PRUNED_FILE_EXTENSIONS.has(path.extname(entry.name))
877
+ RUNTIME_COPY_PRUNED_FILE_EXTENSIONS.has(path.extname(entry.name)) &&
878
+ !shouldPreservePrunedPackageEntry(name, packageDir, entryPath)
615
879
  ) {
616
880
  fs.rmSync(entryPath, { force: true });
617
881
  continue;
@@ -631,7 +895,10 @@ function pruneCopiedPackageDir(name: string, packageDir: string): void {
631
895
 
632
896
  if (entry.isDirectory()) {
633
897
  visit(entryPath);
634
- if (fs.readdirSync(entryPath).length === 0) {
898
+ if (
899
+ fs.existsSync(entryPath) &&
900
+ fs.readdirSync(entryPath).length === 0
901
+ ) {
635
902
  fs.rmdirSync(entryPath);
636
903
  }
637
904
  }
@@ -642,6 +909,68 @@ function pruneCopiedPackageDir(name: string, packageDir: string): void {
642
909
  visit(packageDir);
643
910
  }
644
911
 
912
+ function copyPackageDirSync(
913
+ name: string,
914
+ sourceDir: string,
915
+ copyDest: string,
916
+ destIsInsideSource: boolean,
917
+ ): void {
918
+ const sourceDistDir = path.join(sourceDir, "dist");
919
+ const workspacePublishEntries = getWorkspacePackageRuntimeCopyEntries(
920
+ name,
921
+ sourceDir,
922
+ );
923
+ const maxAttempts = 5;
924
+ for (let attempt = 0; attempt < maxAttempts; attempt += 1) {
925
+ try {
926
+ fs.cpSync(sourceDir, copyDest, {
927
+ recursive: true,
928
+ force: true,
929
+ dereference: true,
930
+ filter: (entry) => {
931
+ if (!shouldCopyPackageEntry(entry, name, sourceDir)) {
932
+ return false;
933
+ }
934
+ if (name === "@elizaos/app-core") {
935
+ const relativeEntry = path
936
+ .relative(sourceDir, entry)
937
+ .split(path.sep)
938
+ .join("/");
939
+ if (shouldSkipPackagedAppCoreEntry(relativeEntry)) {
940
+ return false;
941
+ }
942
+ }
943
+ if (
944
+ workspacePublishEntries &&
945
+ !shouldCopyWorkspacePublishEntry(
946
+ entry,
947
+ sourceDir,
948
+ workspacePublishEntries,
949
+ )
950
+ ) {
951
+ return false;
952
+ }
953
+ if (!destIsInsideSource) {
954
+ return true;
955
+ }
956
+ const relativeToDist = path.relative(sourceDistDir, entry);
957
+ return (
958
+ relativeToDist !== "" &&
959
+ (relativeToDist.startsWith("..") || path.isAbsolute(relativeToDist))
960
+ );
961
+ },
962
+ });
963
+ return;
964
+ } catch (error) {
965
+ if (!isEnoentError(error) || attempt === maxAttempts - 1) {
966
+ throw error;
967
+ }
968
+ rmRecursive(copyDest);
969
+ sleepSync(100 * (attempt + 1));
970
+ }
971
+ }
972
+ }
973
+
645
974
  function copyPackageDir(
646
975
  name: string,
647
976
  sourceDir: string,
@@ -649,7 +978,7 @@ function copyPackageDir(
649
978
  rootDestDir: string,
650
979
  ): boolean {
651
980
  const dest = packagePath(name, targetNodeModules);
652
- fs.rmSync(dest, { recursive: true, force: true });
981
+ rmRecursive(dest);
653
982
  fs.mkdirSync(path.dirname(dest), { recursive: true });
654
983
  const relativeDest = path.relative(sourceDir, dest);
655
984
  const destIsInsideSource =
@@ -659,34 +988,7 @@ function copyPackageDir(
659
988
  const copyDest = destIsInsideSource
660
989
  ? fs.mkdtempSync(path.join(os.tmpdir(), "eliza-runtime-package-copy-"))
661
990
  : dest;
662
- const sourceDistDir = path.join(sourceDir, "dist");
663
- fs.cpSync(sourceDir, copyDest, {
664
- recursive: true,
665
- force: true,
666
- dereference: true,
667
- filter: (entry) => {
668
- if (!shouldCopyPackageEntry(entry, name, sourceDir)) {
669
- return false;
670
- }
671
- if (name === "@elizaos/app-core") {
672
- const relativeEntry = path
673
- .relative(sourceDir, entry)
674
- .split(path.sep)
675
- .join("/");
676
- if (shouldSkipPackagedAppCoreEntry(relativeEntry)) {
677
- return false;
678
- }
679
- }
680
- if (!destIsInsideSource) {
681
- return true;
682
- }
683
- const relativeToDist = path.relative(sourceDistDir, entry);
684
- return (
685
- relativeToDist !== "" &&
686
- (relativeToDist.startsWith("..") || path.isAbsolute(relativeToDist))
687
- );
688
- },
689
- });
991
+ copyPackageDirSync(name, sourceDir, copyDest, destIsInsideSource);
690
992
  if (destIsInsideSource) {
691
993
  fs.renameSync(copyDest, dest);
692
994
  }
@@ -713,17 +1015,167 @@ function shouldSkipPackagedAppCoreEntry(relativeEntry: string): boolean {
713
1015
  relativeEntry.startsWith("platforms/electrobun/build/") ||
714
1016
  relativeEntry === "platforms/electrobun/artifacts" ||
715
1017
  relativeEntry.startsWith("platforms/electrobun/artifacts/") ||
1018
+ relativeEntry === "platforms/electrobun/src/libMacWindowEffects.dylib" ||
716
1019
  relativeEntry === "dist/platforms/electrobun/build" ||
717
1020
  relativeEntry.startsWith("dist/platforms/electrobun/build/") ||
718
1021
  relativeEntry === "dist/platforms/electrobun/artifacts" ||
719
- relativeEntry.startsWith("dist/platforms/electrobun/artifacts/")
1022
+ relativeEntry.startsWith("dist/platforms/electrobun/artifacts/") ||
1023
+ relativeEntry ===
1024
+ "dist/platforms/electrobun/src/libMacWindowEffects.dylib" ||
1025
+ relativeEntry === "scripts/bun-riscv64" ||
1026
+ relativeEntry.startsWith("scripts/bun-riscv64/") ||
1027
+ relativeEntry === "dist/scripts/bun-riscv64" ||
1028
+ relativeEntry.startsWith("dist/scripts/bun-riscv64/")
720
1029
  );
721
1030
  }
722
1031
 
723
1032
  type PackageJsonManifest = {
724
- exports?: Record<string, unknown>;
1033
+ exports?: unknown;
1034
+ files?: unknown;
1035
+ main?: string;
1036
+ module?: string;
725
1037
  };
726
1038
 
1039
+ const PACKAGE_METADATA_ENTRY_NAMES = new Set([
1040
+ "LICENSE",
1041
+ "LICENSE.md",
1042
+ "LICENSE.txt",
1043
+ "README.md",
1044
+ "package.json",
1045
+ ]);
1046
+ const NON_RUNTIME_EXPORT_CONDITIONS = new Set(["eliza-source", "types"]);
1047
+
1048
+ function getTopLevelPublishEntry(rawEntry: string): string | null {
1049
+ if (rawEntry.trim().startsWith("!")) {
1050
+ return null;
1051
+ }
1052
+
1053
+ const normalized = rawEntry
1054
+ .trim()
1055
+ .replace(/\\/g, "/")
1056
+ .replace(/^\.\//, "")
1057
+ .replace(/\/+$/, "");
1058
+
1059
+ if (!normalized || normalized === ".") {
1060
+ return null;
1061
+ }
1062
+
1063
+ const [topLevel] = normalized.split("/");
1064
+ if (!topLevel || topLevel.includes("*")) {
1065
+ return null;
1066
+ }
1067
+
1068
+ return topLevel;
1069
+ }
1070
+
1071
+ function addRuntimeManifestEntryTopLevel(
1072
+ entries: Set<string>,
1073
+ entryPath: unknown,
1074
+ ): void {
1075
+ if (typeof entryPath !== "string" || !entryPath.startsWith("./")) {
1076
+ return;
1077
+ }
1078
+
1079
+ const topLevel = getTopLevelPublishEntry(entryPath);
1080
+ if (topLevel) {
1081
+ entries.add(topLevel);
1082
+ }
1083
+ }
1084
+
1085
+ function addRuntimeExportTopLevelEntries(
1086
+ entries: Set<string>,
1087
+ exportValue: unknown,
1088
+ ): void {
1089
+ if (typeof exportValue === "string") {
1090
+ addRuntimeManifestEntryTopLevel(entries, exportValue);
1091
+ return;
1092
+ }
1093
+
1094
+ if (!exportValue || typeof exportValue !== "object") {
1095
+ return;
1096
+ }
1097
+
1098
+ if (Array.isArray(exportValue)) {
1099
+ for (const item of exportValue) {
1100
+ addRuntimeExportTopLevelEntries(entries, item);
1101
+ }
1102
+ return;
1103
+ }
1104
+
1105
+ for (const [condition, value] of Object.entries(exportValue)) {
1106
+ if (NON_RUNTIME_EXPORT_CONDITIONS.has(condition)) {
1107
+ continue;
1108
+ }
1109
+ addRuntimeExportTopLevelEntries(entries, value);
1110
+ }
1111
+ }
1112
+
1113
+ function isWorkspacePackageSourceDir(sourceDir: string): boolean {
1114
+ const relative = path.relative(ROOT, sourceDir);
1115
+ return (
1116
+ Boolean(relative) &&
1117
+ !relative.startsWith("..") &&
1118
+ !path.isAbsolute(relative) &&
1119
+ !relative.split(path.sep).includes("node_modules")
1120
+ );
1121
+ }
1122
+
1123
+ export function getWorkspacePackageRuntimeCopyEntries(
1124
+ name: string,
1125
+ sourceDir: string,
1126
+ ): Set<string> | null {
1127
+ if (!isWorkspacePackageSourceDir(sourceDir)) {
1128
+ return null;
1129
+ }
1130
+
1131
+ const manifestPath = path.join(sourceDir, "package.json");
1132
+ if (!fs.existsSync(manifestPath)) {
1133
+ return null;
1134
+ }
1135
+
1136
+ const manifest = readJson<PackageJsonManifest>(manifestPath);
1137
+ if (
1138
+ !Array.isArray(manifest.files) ||
1139
+ manifest.files.some((entry) => typeof entry !== "string")
1140
+ ) {
1141
+ return null;
1142
+ }
1143
+
1144
+ const entries = new Set(PACKAGE_METADATA_ENTRY_NAMES);
1145
+ for (const fileEntry of manifest.files) {
1146
+ const topLevel = getTopLevelPublishEntry(fileEntry);
1147
+ if (topLevel) {
1148
+ entries.add(topLevel);
1149
+ }
1150
+ }
1151
+
1152
+ addRuntimeManifestEntryTopLevel(entries, manifest.main);
1153
+ addRuntimeManifestEntryTopLevel(entries, manifest.module);
1154
+ addRuntimeExportTopLevelEntries(entries, manifest.exports);
1155
+
1156
+ // @elizaos/agent still exposes Bun runtime source conditions. Keep its
1157
+ // source tree so packaged Bun resolution cannot select a missing entry.
1158
+ if (name === "@elizaos/agent" && fs.existsSync(path.join(sourceDir, "src"))) {
1159
+ entries.add("src");
1160
+ }
1161
+
1162
+ return entries;
1163
+ }
1164
+
1165
+ export function shouldCopyWorkspacePublishEntry(
1166
+ entry: string,
1167
+ sourceDir: string,
1168
+ allowedTopLevelEntries: ReadonlySet<string>,
1169
+ ): boolean {
1170
+ const relativeEntry = path.relative(sourceDir, entry);
1171
+ if (!relativeEntry) {
1172
+ return true;
1173
+ }
1174
+
1175
+ const [topLevel] = relativeEntry.split(path.sep);
1176
+ return allowedTopLevelEntries.has(topLevel);
1177
+ }
1178
+
727
1179
  type AgentDeepImportExportEntry = {
728
1180
  exportKey: string;
729
1181
  jsPath: string;
@@ -871,13 +1323,23 @@ function visitFiles(rootDir: string, visit: (filePath: string) => void): void {
871
1323
  return;
872
1324
  }
873
1325
 
874
- for (const entry of fs.readdirSync(rootDir, { withFileTypes: true })) {
1326
+ let entries: fs.Dirent[];
1327
+ try {
1328
+ entries = fs.readdirSync(rootDir, { withFileTypes: true });
1329
+ } catch (error) {
1330
+ if ((error as NodeJS.ErrnoException).code === "ENOENT") {
1331
+ return;
1332
+ }
1333
+ throw error;
1334
+ }
1335
+
1336
+ for (const entry of entries) {
875
1337
  const entryPath = path.join(rootDir, entry.name);
876
1338
  if (entry.isDirectory()) {
877
1339
  visitFiles(entryPath, visit);
878
1340
  continue;
879
1341
  }
880
- if (entry.isFile()) {
1342
+ if (entry.isFile() && fs.existsSync(entryPath)) {
881
1343
  visit(entryPath);
882
1344
  }
883
1345
  }
@@ -959,6 +1421,9 @@ function patchCopiedElevenLabsTarSafePaths(
959
1421
  if (!filePath.endsWith(".js")) {
960
1422
  return;
961
1423
  }
1424
+ if (!fs.existsSync(filePath)) {
1425
+ return;
1426
+ }
962
1427
 
963
1428
  let source = fs.readFileSync(filePath, "utf8");
964
1429
  const original = source;
@@ -999,6 +1464,35 @@ function patchCopiedAiSdkProviderRuntimeSurface(packageDir: string): void {
999
1464
  }
1000
1465
  }
1001
1466
 
1467
+ function writeRuntimeShimIfMissing(filePath: string, source: string): void {
1468
+ if (fs.existsSync(filePath)) {
1469
+ return;
1470
+ }
1471
+ fs.mkdirSync(path.dirname(filePath), { recursive: true });
1472
+ fs.writeFileSync(filePath, source);
1473
+ }
1474
+
1475
+ function patchCopiedPluginSqlRuntimeSurface(packageDir: string): void {
1476
+ const srcDist = path.join(packageDir, "src", "dist");
1477
+ const nodeEntry = path.join(srcDist, "node", "index.node.js");
1478
+ if (!fs.existsSync(nodeEntry)) {
1479
+ return;
1480
+ }
1481
+
1482
+ writeRuntimeShimIfMissing(
1483
+ path.join(srcDist, "index.js"),
1484
+ "export * from './node/index.node.js';\nexport { default } from './node/index.node.js';\n",
1485
+ );
1486
+ writeRuntimeShimIfMissing(
1487
+ path.join(srcDist, "drizzle", "index.js"),
1488
+ "export { and, asc, count, desc, eq, gt, gte, inArray, isNull, lt, lte, ne, or, sql } from 'drizzle-orm';\n",
1489
+ );
1490
+ writeRuntimeShimIfMissing(
1491
+ path.join(srcDist, "schema", "index.js"),
1492
+ "export * from '../node/index.node.js';\n",
1493
+ );
1494
+ }
1495
+
1002
1496
  function patchCopiedPackageRuntimeSurface(
1003
1497
  name: string,
1004
1498
  packageDir: string,
@@ -1012,6 +1506,10 @@ function patchCopiedPackageRuntimeSurface(
1012
1506
  patchCopiedAiSdkProviderRuntimeSurface(packageDir);
1013
1507
  return;
1014
1508
  }
1509
+ if (name === "@elizaos/plugin-sql") {
1510
+ patchCopiedPluginSqlRuntimeSurface(packageDir);
1511
+ return;
1512
+ }
1015
1513
  if (name === "@elevenlabs/elevenlabs-js") {
1016
1514
  patchCopiedElevenLabsTarSafePaths(packageDir, rootDestDir);
1017
1515
  return;
@@ -1069,7 +1567,10 @@ export function shouldCopyPackageEntry(
1069
1567
  ) {
1070
1568
  return false;
1071
1569
  }
1072
- if (RUNTIME_COPY_PRUNED_FILE_EXTENSIONS.has(path.extname(entry))) {
1570
+ if (
1571
+ RUNTIME_COPY_PRUNED_FILE_EXTENSIONS.has(path.extname(entry)) &&
1572
+ !shouldPreservePrunedPackageEntry(packageName, packageRoot, entry)
1573
+ ) {
1073
1574
  return false;
1074
1575
  }
1075
1576
  if (entry.endsWith(".d.ts") || entry.endsWith(".d.ts.map")) {
@@ -1298,8 +1799,8 @@ function detectCurrentLibc(): string | null {
1298
1799
  }
1299
1800
 
1300
1801
  try {
1301
- const report = process.report?.getReport();
1302
- return report?.header?.glibcVersionRuntime ? "glibc" : "musl";
1802
+ const report = process.report.getReport();
1803
+ return report.header?.glibcVersionRuntime ? "glibc" : "musl";
1303
1804
  } catch {
1304
1805
  return null;
1305
1806
  }
@@ -1322,6 +1823,21 @@ export function isPackageCompatibleWithCurrentPlatform(
1322
1823
  );
1323
1824
  }
1324
1825
 
1826
+ function hasRootPackageOverride(name: string): boolean {
1827
+ try {
1828
+ const manifest = readJson<{
1829
+ overrides?: Record<string, unknown>;
1830
+ resolutions?: Record<string, unknown>;
1831
+ }>(PACKAGE_JSON_PATH);
1832
+ return (
1833
+ Object.hasOwn(manifest.overrides ?? {}, name) ||
1834
+ Object.hasOwn(manifest.resolutions ?? {}, name)
1835
+ );
1836
+ } catch {
1837
+ return false;
1838
+ }
1839
+ }
1840
+
1325
1841
  function collectInstalledPackageDirs(
1326
1842
  name: string,
1327
1843
  requesterDir: string,
@@ -1343,6 +1859,13 @@ function collectInstalledPackageDirs(
1343
1859
  }
1344
1860
  }
1345
1861
 
1862
+ // Root overrides/resolutions are the package manager's answer for peers.
1863
+ // Prefer that install over requester-local Bun store fallbacks so runtime
1864
+ // packaging follows the same graph used by app-core builds.
1865
+ if (hasRootPackageOverride(name)) {
1866
+ addCandidate(packagePath(name, ROOT_NODE_MODULES));
1867
+ }
1868
+
1346
1869
  let dir = requesterDir;
1347
1870
  while (true) {
1348
1871
  addCandidate(packagePath(name, path.join(dir, "node_modules")));
@@ -1506,6 +2029,38 @@ export function getRuntimeDependencies(pkgPath: string): string[] {
1506
2029
  return getRuntimeDependencyEntries(pkgPath).map((entry) => entry.name);
1507
2030
  }
1508
2031
 
2032
+ function shouldHoistRuntimePackage(name: string): boolean {
2033
+ return ALWAYS_HOISTED_PACKAGES.has(name) || name.startsWith("@solana/");
2034
+ }
2035
+
2036
+ function getMajorMinorVersion(version: string | null): string | null {
2037
+ if (!version) return null;
2038
+ const match = version.match(/^(\d+)\.(\d+)\./);
2039
+ return match ? `${match[1]}.${match[2]}` : null;
2040
+ }
2041
+
2042
+ function shouldReuseTopLevelRuntimePackage(
2043
+ name: string,
2044
+ topLevelVersion: string | null,
2045
+ resolvedVersion: string | null,
2046
+ ): boolean {
2047
+ if (topLevelVersion === resolvedVersion) {
2048
+ return true;
2049
+ }
2050
+
2051
+ if (!PATCH_COMPATIBLE_HOISTED_PACKAGES.has(name)) {
2052
+ return false;
2053
+ }
2054
+
2055
+ const topLevelMajorMinor = getMajorMinorVersion(topLevelVersion);
2056
+ const resolvedMajorMinor = getMajorMinorVersion(resolvedVersion);
2057
+ return (
2058
+ topLevelMajorMinor !== null &&
2059
+ resolvedMajorMinor !== null &&
2060
+ topLevelMajorMinor === resolvedMajorMinor
2061
+ );
2062
+ }
2063
+
1509
2064
  type CopyTargetOptions = {
1510
2065
  name: string;
1511
2066
  requesterDestDir: string;
@@ -1527,7 +2082,7 @@ export function selectCopyTargetNodeModules({
1527
2082
  return targetNodeModules;
1528
2083
  }
1529
2084
 
1530
- if (ALWAYS_HOISTED_PACKAGES.has(name) && topLevelVersions.has(name)) {
2085
+ if (shouldHoistRuntimePackage(name) && topLevelVersions.has(name)) {
1531
2086
  return targetNodeModules;
1532
2087
  }
1533
2088
 
@@ -1535,8 +2090,10 @@ export function selectCopyTargetNodeModules({
1535
2090
  return targetNodeModules;
1536
2091
  }
1537
2092
 
1538
- const topLevelVersion = topLevelVersions.get(name);
1539
- if (topLevelVersion === resolvedVersion) {
2093
+ const topLevelVersion = topLevelVersions.get(name) ?? null;
2094
+ if (
2095
+ shouldReuseTopLevelRuntimePackage(name, topLevelVersion, resolvedVersion)
2096
+ ) {
1540
2097
  return targetNodeModules;
1541
2098
  }
1542
2099
 
@@ -1565,6 +2122,139 @@ function copyPgliteCompatibilityAssets(targetDist: string): void {
1565
2122
  }
1566
2123
  }
1567
2124
 
2125
+ function isRuntimeManifestEntryPath(value: string): boolean {
2126
+ if (!value.startsWith("./") || value.includes("*")) {
2127
+ return false;
2128
+ }
2129
+ if (/\.(?:d\.)?ts$/i.test(value) || /\.d\.[cm]?ts$/i.test(value)) {
2130
+ return false;
2131
+ }
2132
+ return true;
2133
+ }
2134
+
2135
+ function runtimeManifestEntryExists(
2136
+ packageDir: string,
2137
+ entryPath: string,
2138
+ ): boolean {
2139
+ const resolved = path.resolve(packageDir, entryPath);
2140
+ const relative = path.relative(packageDir, resolved);
2141
+ if (relative.startsWith("..") || path.isAbsolute(relative)) {
2142
+ return false;
2143
+ }
2144
+
2145
+ if (fs.existsSync(resolved)) {
2146
+ return true;
2147
+ }
2148
+
2149
+ if (!path.extname(resolved)) {
2150
+ return [
2151
+ ".js",
2152
+ ".mjs",
2153
+ ".cjs",
2154
+ "/index.js",
2155
+ "/index.mjs",
2156
+ "/index.cjs",
2157
+ ].some((suffix) => fs.existsSync(`${resolved}${suffix}`));
2158
+ }
2159
+
2160
+ return false;
2161
+ }
2162
+
2163
+ function collectRuntimeExportEntryPaths(value: unknown): string[] {
2164
+ if (typeof value === "string") {
2165
+ return isRuntimeManifestEntryPath(value) ? [value] : [];
2166
+ }
2167
+
2168
+ if (Array.isArray(value)) {
2169
+ return value.flatMap((entry) => collectRuntimeExportEntryPaths(entry));
2170
+ }
2171
+
2172
+ if (!value || typeof value !== "object") {
2173
+ return [];
2174
+ }
2175
+
2176
+ const entries = Object.entries(value as Record<string, unknown>);
2177
+ const hasSubpathKeys = entries.some(
2178
+ ([key]) => key === "." || key.startsWith("./"),
2179
+ );
2180
+ if (hasSubpathKeys) {
2181
+ return entries.flatMap(([, entry]) =>
2182
+ collectRuntimeExportEntryPaths(entry),
2183
+ );
2184
+ }
2185
+
2186
+ return entries.flatMap(([condition, entry]) => {
2187
+ if (condition === "types" || condition === "typings") {
2188
+ return [];
2189
+ }
2190
+ return collectRuntimeExportEntryPaths(entry);
2191
+ });
2192
+ }
2193
+
2194
+ function getRequiredRuntimeEntryPaths(pkgJsonPath: string): string[] {
2195
+ const manifest = readJson<PackageJsonManifest>(pkgJsonPath);
2196
+ const entries = new Set<string>();
2197
+
2198
+ for (const entry of [manifest.main, manifest.module]) {
2199
+ if (typeof entry === "string" && isRuntimeManifestEntryPath(entry)) {
2200
+ entries.add(entry);
2201
+ }
2202
+ }
2203
+
2204
+ for (const entry of collectRuntimeExportEntryPaths(manifest.exports)) {
2205
+ entries.add(entry);
2206
+ }
2207
+
2208
+ return [...entries].sort();
2209
+ }
2210
+
2211
+ // Post-copy assertion: missingAlwaysBundled catches resolve failures, but
2212
+ // can't catch a transitive-walk filter silently skipping a CORE plugin or
2213
+ // pruneCopiedPackageDir removing a load-bearing package.json or entrypoint.
2214
+ export function assertRequiredBundledPackagesLanded(
2215
+ targetNodeModules: string,
2216
+ alwaysBundled: ReadonlySet<string>,
2217
+ ): void {
2218
+ const missing: string[] = [];
2219
+ const missingEntrypoints: string[] = [];
2220
+ const baselinePackages = new Set(BASELINE_BUNDLED_RUNTIME_PACKAGES);
2221
+ for (const name of alwaysBundled) {
2222
+ if (!isPackageNameCompatibleWithCurrentPlatform(name)) continue;
2223
+ const packageDir = packagePath(name, targetNodeModules);
2224
+ const pkgJsonPath = path.join(packageDir, "package.json");
2225
+ if (!fs.existsSync(pkgJsonPath)) {
2226
+ missing.push(name);
2227
+ continue;
2228
+ }
2229
+
2230
+ if (!baselinePackages.has(name)) {
2231
+ continue;
2232
+ }
2233
+
2234
+ for (const entryPath of getRequiredRuntimeEntryPaths(pkgJsonPath)) {
2235
+ if (!runtimeManifestEntryExists(packageDir, entryPath)) {
2236
+ missingEntrypoints.push(
2237
+ `${name} (missing runtime entry ${path.join(packageDir, entryPath)})`,
2238
+ );
2239
+ }
2240
+ }
2241
+ }
2242
+ if (missing.length === 0 && missingEntrypoints.length === 0) return;
2243
+ throw new Error(
2244
+ [
2245
+ `[runtime-copy] ${missing.length + missingEntrypoints.length} required runtime package check(s) failed after copy + prune:`,
2246
+ ...missing
2247
+ .sort()
2248
+ .map(
2249
+ (n) =>
2250
+ ` ${n} (missing ${path.join(packagePath(n, targetNodeModules), "package.json")})`,
2251
+ ),
2252
+ ...missingEntrypoints.sort().map((entry) => ` ${entry}`),
2253
+ "This usually means a filter in the transitive-walk, build output, or a rule in pruneCopiedPackageDir accidentally excluded a required package entry. Bundle is unsafe to ship.",
2254
+ ].join("\n"),
2255
+ );
2256
+ }
2257
+
1568
2258
  function assertTarSafeRuntimePaths(targetDist: string): void {
1569
2259
  const unsafe: string[] = [];
1570
2260
 
@@ -1611,166 +2301,184 @@ function main(): void {
1611
2301
  }
1612
2302
 
1613
2303
  buildBunPackageIndex();
2304
+ const releaseRuntimeCopyLock = acquireRuntimeCopyLock(targetDist);
1614
2305
 
1615
- fs.rmSync(targetNodeModules, { recursive: true, force: true });
1616
- fs.mkdirSync(targetNodeModules, { recursive: true });
2306
+ try {
2307
+ rmRecursive(targetNodeModules);
2308
+ fs.mkdirSync(targetNodeModules, { recursive: true });
1617
2309
 
1618
- const alwaysBundled = new Set(
1619
- discoverAlwaysBundledPackages(PACKAGE_JSON_PATH),
1620
- );
1621
- for (const packageName of BASELINE_BUNDLED_RUNTIME_PACKAGES) {
1622
- if (alwaysBundled.has(packageName)) {
1623
- continue;
1624
- }
1625
- if (resolvePackage(packageName, null, ROOT, { includeWorkspace: false })) {
1626
- alwaysBundled.add(packageName);
1627
- }
1628
- }
1629
- const rootDependencySpecs = new Map(
1630
- getRuntimeDependencyEntries(PACKAGE_JSON_PATH).map((entry) => [
1631
- entry.name,
1632
- entry.spec,
1633
- ]),
1634
- );
1635
- const filteredOptionalPlugins = new Set<string>();
1636
- const discovered = new Set(
1637
- discoverRuntimePackages(scanDir).filter((packageName) => {
1638
- const shouldBundle = shouldBundleDiscoveredPackage(
1639
- packageName,
1640
- alwaysBundled,
1641
- );
1642
- if (!shouldBundle) {
1643
- filteredOptionalPlugins.add(packageName);
2310
+ const alwaysBundled = new Set(
2311
+ discoverAlwaysBundledPackages(PACKAGE_JSON_PATH),
2312
+ );
2313
+ for (const packageName of BASELINE_BUNDLED_RUNTIME_PACKAGES) {
2314
+ if (alwaysBundled.has(packageName)) {
2315
+ continue;
2316
+ }
2317
+ if (
2318
+ resolvePackage(packageName, null, ROOT, { includeWorkspace: false })
2319
+ ) {
2320
+ alwaysBundled.add(packageName);
1644
2321
  }
1645
- return shouldBundle;
1646
- }),
1647
- );
1648
- const queue: QueueEntry[] = [...new Set([...alwaysBundled, ...discovered])]
1649
- .sort()
1650
- .map((name) => ({
1651
- name,
1652
- spec: rootDependencySpecs.get(name) ?? null,
1653
- requesterDir: ROOT,
1654
- requesterDestDir: targetDist,
1655
- }));
1656
-
1657
- const copiedDestinations = new Set<string>();
1658
- const copiedNames = new Set<string>();
1659
- const missingAlwaysBundled = new Set<string>();
1660
- const missingDiscovered = new Set<string>();
1661
- const topLevelVersions = new Map<string, string | null>();
1662
-
1663
- while (queue.length > 0) {
1664
- const request = queue.shift();
1665
- if (!request) continue;
1666
-
1667
- const { name, spec, requesterDir, requesterDestDir } = request;
1668
- if (
1669
- !name ||
1670
- DEP_SKIP.has(name) ||
1671
- !isPackageNameCompatibleWithCurrentPlatform(name)
1672
- ) {
1673
- continue;
1674
2322
  }
2323
+ const rootDependencySpecs = new Map(
2324
+ getRuntimeDependencyEntries(PACKAGE_JSON_PATH).map((entry) => [
2325
+ entry.name,
2326
+ entry.spec,
2327
+ ]),
2328
+ );
2329
+ const filteredOptionalPlugins = new Set<string>();
2330
+ const discovered = new Set(
2331
+ discoverRuntimePackages(scanDir).filter((packageName) => {
2332
+ const shouldBundle = shouldBundleDiscoveredPackage(
2333
+ packageName,
2334
+ alwaysBundled,
2335
+ );
2336
+ if (!shouldBundle) {
2337
+ filteredOptionalPlugins.add(packageName);
2338
+ }
2339
+ return shouldBundle;
2340
+ }),
2341
+ );
2342
+ const queue: QueueEntry[] = [...new Set([...alwaysBundled, ...discovered])]
2343
+ .sort()
2344
+ .map((name) => ({
2345
+ name,
2346
+ spec: rootDependencySpecs.get(name) ?? null,
2347
+ requesterDir: ROOT,
2348
+ requesterDestDir: targetDist,
2349
+ }));
2350
+
2351
+ const copiedDestinations = new Set<string>();
2352
+ const copiedNames = new Set<string>();
2353
+ const missingAlwaysBundled = new Set<string>();
2354
+ const missingDiscovered = new Set<string>();
2355
+ const topLevelVersions = new Map<string, string | null>();
2356
+
2357
+ while (queue.length > 0) {
2358
+ const request = queue.shift();
2359
+ if (!request) continue;
2360
+
2361
+ const { name, spec, requesterDir, requesterDestDir } = request;
2362
+ if (
2363
+ !name ||
2364
+ DEP_SKIP.has(name) ||
2365
+ !isPackageNameCompatibleWithCurrentPlatform(name)
2366
+ ) {
2367
+ continue;
2368
+ }
1675
2369
 
1676
- const resolved = resolvePackage(name, spec, requesterDir);
1677
- if (!resolved) {
1678
- if (alwaysBundled.has(name)) {
1679
- missingAlwaysBundled.add(name);
1680
- } else {
1681
- missingDiscovered.add(name);
2370
+ const resolved = resolvePackage(name, spec, requesterDir);
2371
+ if (!resolved) {
2372
+ if (alwaysBundled.has(name)) {
2373
+ missingAlwaysBundled.add(name);
2374
+ } else {
2375
+ missingDiscovered.add(name);
2376
+ }
2377
+ continue;
1682
2378
  }
1683
- continue;
1684
- }
1685
2379
 
1686
- if (!isPackageCompatibleWithCurrentPlatform(resolved.packageJsonPath)) {
1687
- missingAlwaysBundled.delete(name);
1688
- missingDiscovered.delete(name);
1689
- continue;
1690
- }
2380
+ if (!isPackageCompatibleWithCurrentPlatform(resolved.packageJsonPath)) {
2381
+ missingAlwaysBundled.delete(name);
2382
+ missingDiscovered.delete(name);
2383
+ continue;
2384
+ }
1691
2385
 
1692
- const resolvedVersion = getPackageVersion(resolved.packageJsonPath);
1693
- const copyTargetNodeModules = selectCopyTargetNodeModules({
1694
- name,
1695
- requesterDestDir,
1696
- rootDestDir: targetDist,
1697
- targetNodeModules,
1698
- topLevelVersions,
1699
- resolvedVersion,
1700
- });
1701
- const destination = packagePath(name, copyTargetNodeModules);
2386
+ const resolvedVersion = getPackageVersion(resolved.packageJsonPath);
2387
+ const copyTargetNodeModules = selectCopyTargetNodeModules({
2388
+ name,
2389
+ requesterDestDir,
2390
+ rootDestDir: targetDist,
2391
+ targetNodeModules,
2392
+ topLevelVersions,
2393
+ resolvedVersion,
2394
+ });
2395
+ const destination = packagePath(name, copyTargetNodeModules);
2396
+
2397
+ if (copiedDestinations.has(destination)) {
2398
+ missingAlwaysBundled.delete(name);
2399
+ missingDiscovered.delete(name);
2400
+ copiedNames.add(name);
2401
+ continue;
2402
+ }
2403
+
2404
+ if (
2405
+ !copyPackageDir(
2406
+ name,
2407
+ resolved.sourceDir,
2408
+ copyTargetNodeModules,
2409
+ targetDist,
2410
+ )
2411
+ ) {
2412
+ if (alwaysBundled.has(name)) {
2413
+ missingAlwaysBundled.add(name);
2414
+ } else {
2415
+ missingDiscovered.add(name);
2416
+ }
2417
+ continue;
2418
+ }
1702
2419
 
1703
- if (copiedDestinations.has(destination)) {
1704
2420
  missingAlwaysBundled.delete(name);
1705
2421
  missingDiscovered.delete(name);
2422
+ copiedDestinations.add(destination);
1706
2423
  copiedNames.add(name);
1707
- continue;
1708
- }
1709
-
1710
- if (
1711
- !copyPackageDir(
1712
- name,
1713
- resolved.sourceDir,
1714
- copyTargetNodeModules,
1715
- targetDist,
1716
- )
1717
- ) {
1718
- if (alwaysBundled.has(name)) {
1719
- missingAlwaysBundled.add(name);
1720
- } else {
1721
- missingDiscovered.add(name);
2424
+ if (copyTargetNodeModules === targetNodeModules) {
2425
+ topLevelVersions.set(name, resolvedVersion);
1722
2426
  }
1723
- continue;
1724
- }
1725
2427
 
1726
- missingAlwaysBundled.delete(name);
1727
- missingDiscovered.delete(name);
1728
- copiedDestinations.add(destination);
1729
- copiedNames.add(name);
1730
- if (copyTargetNodeModules === targetNodeModules) {
1731
- topLevelVersions.set(name, resolvedVersion);
1732
- }
2428
+ for (const dep of getRuntimeDependencyEntries(resolved.packageJsonPath)) {
2429
+ if (shouldSkipPackagedDependency(name, dep.name)) {
2430
+ continue;
2431
+ }
1733
2432
 
1734
- for (const dep of getRuntimeDependencyEntries(resolved.packageJsonPath)) {
1735
- if (shouldSkipPackagedDependency(name, dep.name)) {
1736
- continue;
1737
- }
2433
+ // Same filter as initial discovery: non-alwaysBundled plugins are
2434
+ // post-release-installable and must not enter the transitive walk.
2435
+ // Without this, a peerDep on an optional plugin drags its entire
2436
+ // deep tree (e.g. @solana/codecs* nested 8 levels) into the bundle
2437
+ // and trips assertTarSafeRuntimePaths.
2438
+ if (!shouldBundleDiscoveredPackage(dep.name, alwaysBundled)) {
2439
+ filteredOptionalPlugins.add(dep.name);
2440
+ continue;
2441
+ }
1738
2442
 
1739
- queue.push({
1740
- name: dep.name,
1741
- spec: dep.spec,
1742
- requesterDir: resolved.sourceDir,
1743
- requesterDestDir: destination,
1744
- });
2443
+ queue.push({
2444
+ name: dep.name,
2445
+ spec: dep.spec,
2446
+ requesterDir: resolved.sourceDir,
2447
+ requesterDestDir: destination,
2448
+ });
2449
+ }
1745
2450
  }
1746
- }
1747
2451
 
1748
- copyPgliteCompatibilityAssets(targetDist);
1749
- assertTarSafeRuntimePaths(targetDist);
2452
+ copyPgliteCompatibilityAssets(targetDist);
2453
+ assertTarSafeRuntimePaths(targetDist);
2454
+ assertRequiredBundledPackagesLanded(targetNodeModules, alwaysBundled);
1750
2455
 
1751
- console.log(
1752
- `[runtime-copy] bundled ${copiedNames.size} package(s) into ${targetNodeModules}`,
1753
- );
1754
- for (const name of [...copiedNames].sort()) {
1755
- console.log(` copied ${name}`);
1756
- }
1757
-
1758
- if (missingAlwaysBundled.size > 0) {
1759
- throw new Error(
1760
- `[runtime-copy] missing installed runtime package(s): ${[...missingAlwaysBundled].sort().join(", ")}`,
2456
+ console.log(
2457
+ `[runtime-copy] bundled ${copiedNames.size} package(s) into ${targetNodeModules}`,
1761
2458
  );
1762
- }
2459
+ for (const name of [...copiedNames].sort()) {
2460
+ console.log(` copied ${name}`);
2461
+ }
1763
2462
 
1764
- if (missingDiscovered.size > 0) {
1765
- console.warn(
1766
- `[runtime-copy] skipped unresolved optional package(s): ${[...missingDiscovered].sort().join(", ")}`,
1767
- );
1768
- }
2463
+ if (missingAlwaysBundled.size > 0) {
2464
+ throw new Error(
2465
+ `[runtime-copy] missing installed runtime package(s): ${[...missingAlwaysBundled].sort().join(", ")}`,
2466
+ );
2467
+ }
1769
2468
 
1770
- if (filteredOptionalPlugins.size > 0) {
1771
- console.log(
1772
- `[runtime-copy] excluded post-release plugin package(s): ${[...filteredOptionalPlugins].sort().join(", ")}`,
1773
- );
2469
+ if (missingDiscovered.size > 0) {
2470
+ console.warn(
2471
+ `[runtime-copy] skipped unresolved optional package(s): ${[...missingDiscovered].sort().join(", ")}`,
2472
+ );
2473
+ }
2474
+
2475
+ if (filteredOptionalPlugins.size > 0) {
2476
+ console.log(
2477
+ `[runtime-copy] excluded post-release plugin package(s): ${[...filteredOptionalPlugins].sort().join(", ")}`,
2478
+ );
2479
+ }
2480
+ } finally {
2481
+ releaseRuntimeCopyLock();
1774
2482
  }
1775
2483
  }
1776
2484