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

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