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

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 (1533) hide show
  1. package/agent-bridge.d.ts +27 -0
  2. package/agent-bridge.d.ts.map +1 -0
  3. package/agent-bridge.js +26 -0
  4. package/api/__tests__/sandbox-test-helpers.js +1 -1
  5. package/api/auth/audit.js +1 -1
  6. package/api/auth/auth-context.js +1 -1
  7. package/api/auth/bootstrap-token.js +2 -2
  8. package/api/auth/index.d.ts +9 -10
  9. package/api/auth/index.d.ts.map +1 -1
  10. package/api/auth/index.js +9 -10
  11. package/api/auth/passwords.js +2 -2
  12. package/api/auth/sensitive-rate-limit.d.ts +1 -4
  13. package/api/auth/sensitive-rate-limit.d.ts.map +1 -1
  14. package/api/auth/sensitive-rate-limit.js +6 -6
  15. package/api/auth/sessions.js +2 -2
  16. package/api/auth-bootstrap-routes.d.ts +6 -13
  17. package/api/auth-bootstrap-routes.d.ts.map +1 -1
  18. package/api/auth-bootstrap-routes.js +14 -27
  19. package/api/auth-pairing-routes.d.ts +17 -0
  20. package/api/auth-pairing-routes.d.ts.map +1 -0
  21. package/api/auth-pairing-routes.js +300 -0
  22. package/api/auth-session-routes.d.ts.map +1 -1
  23. package/api/auth-session-routes.js +36 -15
  24. package/api/auth.d.ts +12 -19
  25. package/api/auth.d.ts.map +1 -1
  26. package/api/auth.js +32 -27
  27. package/api/automations-compat-routes.d.ts.map +1 -1
  28. package/api/automations-compat-routes.js +5 -5
  29. package/api/background-tasks-routes.d.ts +4 -0
  30. package/api/background-tasks-routes.d.ts.map +1 -0
  31. package/api/background-tasks-routes.js +63 -0
  32. package/api/catalog-routes.js +3 -3
  33. package/api/cloud-pair-route.d.ts +26 -0
  34. package/api/cloud-pair-route.d.ts.map +1 -0
  35. package/api/cloud-pair-route.js +222 -0
  36. package/api/cloud-voice-routes.d.ts +52 -0
  37. package/api/cloud-voice-routes.d.ts.map +1 -0
  38. package/api/cloud-voice-routes.js +50 -0
  39. package/api/compat-route-shared.d.ts +2 -2
  40. package/api/compat-route-shared.d.ts.map +1 -1
  41. package/api/compat-route-shared.js +11 -7
  42. package/api/credential-resolver.d.ts +2 -2
  43. package/api/credential-resolver.d.ts.map +1 -1
  44. package/api/credential-resolver.js +8 -2
  45. package/api/database-rows-compat-routes.d.ts.map +1 -1
  46. package/api/database-rows-compat-routes.js +69 -31
  47. package/api/dev-boot-history.d.ts +26 -0
  48. package/api/dev-boot-history.d.ts.map +1 -0
  49. package/api/dev-boot-history.js +69 -0
  50. package/api/dev-compat-routes.d.ts +5 -0
  51. package/api/dev-compat-routes.d.ts.map +1 -1
  52. package/api/dev-compat-routes.js +127 -4
  53. package/api/dev-console-log.d.ts +2 -2
  54. package/api/dev-console-log.d.ts.map +1 -1
  55. package/api/dev-console-log.js +8 -5
  56. package/api/dev-route-catalog.d.ts +58 -0
  57. package/api/dev-route-catalog.d.ts.map +1 -0
  58. package/api/dev-route-catalog.js +457 -0
  59. package/api/dev-stack.d.ts.map +1 -1
  60. package/api/dev-stack.js +6 -9
  61. package/api/first-run-routes.d.ts +4 -0
  62. package/api/first-run-routes.d.ts.map +1 -0
  63. package/api/first-run-routes.js +208 -0
  64. package/api/first-run-tts-route.d.ts +19 -0
  65. package/api/first-run-tts-route.d.ts.map +1 -0
  66. package/api/first-run-tts-route.js +59 -0
  67. package/api/internal-routes.d.ts +23 -0
  68. package/api/internal-routes.d.ts.map +1 -0
  69. package/api/internal-routes.js +203 -0
  70. package/api/ios-local-agent-transport.d.ts +36 -0
  71. package/api/ios-local-agent-transport.d.ts.map +1 -0
  72. package/api/ios-local-agent-transport.js +566 -0
  73. package/api/onboarding-voice-lines.d.ts +23 -0
  74. package/api/onboarding-voice-lines.d.ts.map +1 -0
  75. package/api/onboarding-voice-lines.js +8 -0
  76. package/api/perf-instrument.d.ts +43 -0
  77. package/api/perf-instrument.d.ts.map +1 -0
  78. package/api/perf-instrument.js +113 -0
  79. package/api/response.d.ts.map +1 -1
  80. package/api/response.js +14 -14
  81. package/api/runtime-mode-routes.d.ts.map +1 -1
  82. package/api/runtime-mode-routes.js +2 -2
  83. package/api/secrets-inventory-routes.js +2 -2
  84. package/api/secrets-manager-routes.d.ts +1 -1
  85. package/api/secrets-manager-routes.d.ts.map +1 -1
  86. package/api/secrets-manager-routes.js +9 -10
  87. package/api/sensitive-request-routes.js +5 -5
  88. package/api/server-cors.d.ts.map +1 -1
  89. package/api/server-cors.js +13 -2
  90. package/api/server-first-run-helpers.d.ts +26 -0
  91. package/api/server-first-run-helpers.d.ts.map +1 -0
  92. package/api/server-first-run-helpers.js +271 -0
  93. package/api/server-security.js +1 -1
  94. package/api/server-startup.d.ts.map +1 -1
  95. package/api/server-startup.js +3 -4
  96. package/api/server-wallet-trade.js +1 -1
  97. package/api/server.d.ts +4 -4
  98. package/api/server.d.ts.map +1 -1
  99. package/api/server.js +222 -88
  100. package/api/setup-contract.d.ts +63 -0
  101. package/api/setup-contract.d.ts.map +1 -0
  102. package/api/setup-contract.js +39 -0
  103. package/api/training-benchmarks.d.ts +97 -0
  104. package/api/training-benchmarks.d.ts.map +1 -0
  105. package/api/training-benchmarks.js +307 -0
  106. package/api/workbench-compat-routes.js +2 -2
  107. package/benchmark/cerebras-autowire.d.ts +28 -0
  108. package/benchmark/cerebras-autowire.d.ts.map +1 -0
  109. package/benchmark/cerebras-autowire.js +62 -0
  110. package/benchmark/lifeops-bench-handler.d.ts +36 -0
  111. package/benchmark/lifeops-bench-handler.d.ts.map +1 -1
  112. package/benchmark/lifeops-bench-handler.js +63 -1
  113. package/benchmark/lifeops-fake-backend.d.ts +39 -0
  114. package/benchmark/lifeops-fake-backend.d.ts.map +1 -1
  115. package/benchmark/lifeops-fake-backend.js +993 -21
  116. package/benchmark/mock-plugin.d.ts.map +1 -1
  117. package/benchmark/mock-plugin.js +0 -24
  118. package/benchmark/plugin.d.ts +2 -1
  119. package/benchmark/plugin.d.ts.map +1 -1
  120. package/benchmark/plugin.js +989 -68
  121. package/benchmark/replay-capture.d.ts +2 -2
  122. package/benchmark/replay-capture.d.ts.map +1 -1
  123. package/benchmark/replay-capture.js +3 -3
  124. package/benchmark/server-utils.d.ts +162 -9
  125. package/benchmark/server-utils.d.ts.map +1 -1
  126. package/benchmark/server-utils.js +625 -62
  127. package/benchmark/server.d.ts.map +1 -1
  128. package/benchmark/server.js +1962 -118
  129. package/boot-profile.d.ts +3 -0
  130. package/boot-profile.d.ts.map +1 -0
  131. package/boot-profile.js +30 -0
  132. package/browser.d.ts +23 -1
  133. package/browser.d.ts.map +1 -1
  134. package/browser.js +20 -1
  135. package/cli/argv.js +1 -1
  136. package/cli/banner.js +1 -1
  137. package/cli/command-format.js +2 -2
  138. package/cli/doctor/checks.d.ts.map +1 -1
  139. package/cli/doctor/checks.js +6 -6
  140. package/cli/plugins-cli.d.ts.map +1 -1
  141. package/cli/plugins-cli.js +77 -32
  142. package/cli/profile.d.ts.map +1 -1
  143. package/cli/profile.js +5 -4
  144. package/cli/program/build-program.js +4 -4
  145. package/cli/program/command-registry.d.ts.map +1 -1
  146. package/cli/program/command-registry.js +13 -11
  147. package/cli/program/help.js +5 -5
  148. package/cli/program/preaction.js +5 -5
  149. package/cli/program/register.auth.d.ts.map +1 -1
  150. package/cli/program/register.auth.js +6 -12
  151. package/cli/program/register.capability-router.d.ts +29 -0
  152. package/cli/program/register.capability-router.d.ts.map +1 -0
  153. package/cli/program/register.capability-router.js +568 -0
  154. package/cli/program/register.config.js +1 -1
  155. package/cli/program/register.configure.d.ts.map +1 -1
  156. package/cli/program/register.configure.js +1 -1
  157. package/cli/program/register.dashboard.d.ts.map +1 -1
  158. package/cli/program/register.dashboard.js +6 -7
  159. package/cli/program/register.db.d.ts.map +1 -1
  160. package/cli/program/register.db.js +3 -4
  161. package/cli/program/register.doctor.js +7 -7
  162. package/cli/program/register.setup.d.ts.map +1 -1
  163. package/cli/program/register.setup.js +14 -10
  164. package/cli/program/register.start.d.ts.map +1 -1
  165. package/cli/program/register.start.js +5 -3
  166. package/cli/program/register.subclis.js +3 -3
  167. package/cli/program/register.update.d.ts +6 -0
  168. package/cli/program/register.update.d.ts.map +1 -1
  169. package/cli/program/register.update.js +58 -6
  170. package/cli/program.js +1 -1
  171. package/cli/run-main.js +4 -4
  172. package/config/app-config.d.ts +2 -0
  173. package/config/app-config.d.ts.map +1 -0
  174. package/config/app-config.js +1 -0
  175. package/connectors/capacitor-jsc.d.ts.map +1 -1
  176. package/connectors/capacitor-jsc.js +16 -10
  177. package/connectors/capacitor-quickjs.d.ts.map +1 -1
  178. package/connectors/capacitor-quickjs.js +18 -13
  179. package/connectors/capacitor-sqlite.d.ts.map +1 -1
  180. package/connectors/capacitor-sqlite.js +27 -12
  181. package/dispatch/approval-queue.d.ts +37 -0
  182. package/dispatch/approval-queue.d.ts.map +1 -0
  183. package/dispatch/approval-queue.js +25 -0
  184. package/dispatch/channel-registry.d.ts +30 -0
  185. package/dispatch/channel-registry.d.ts.map +1 -0
  186. package/dispatch/channel-registry.js +22 -0
  187. package/dispatch/connector-registry.d.ts +39 -0
  188. package/dispatch/connector-registry.d.ts.map +1 -0
  189. package/dispatch/connector-registry.js +24 -0
  190. package/dispatch/index.d.ts +14 -0
  191. package/dispatch/index.d.ts.map +1 -0
  192. package/dispatch/index.js +13 -0
  193. package/dispatch/send-policy.d.ts +36 -0
  194. package/dispatch/send-policy.d.ts.map +1 -0
  195. package/dispatch/send-policy.js +16 -0
  196. package/entry.js +28 -11
  197. package/first-run/first-run-config.d.ts +55 -0
  198. package/first-run/first-run-config.d.ts.map +1 -0
  199. package/first-run/first-run-config.js +178 -0
  200. package/first-run/runtime-target.d.ts +4 -0
  201. package/first-run/runtime-target.d.ts.map +1 -0
  202. package/first-run/runtime-target.js +13 -0
  203. package/index.d.ts +16 -3
  204. package/index.d.ts.map +1 -1
  205. package/index.js +57 -33
  206. package/package.json +159 -50
  207. package/packaging/debian/apt-repo-config/README.md +18 -0
  208. package/packaging/debian/apt-repo-config/conf/distributions +11 -0
  209. package/packaging/flatpak/README.md +26 -16
  210. package/packaging/flatpak/ai.elizaos.App.metainfo.xml +17 -12
  211. package/packaging/flatpak/ai.elizaos.App.store.yml +5 -5
  212. package/packaging/flatpak/ai.elizaos.App.yml +10 -24
  213. package/packaging/flatpak/elizaos-app-wrapper.store.sh +2 -2
  214. package/packaging/flatpak/generate-sources.sh +74 -0
  215. package/packaging/flatpak/node-sources.json +7930 -0
  216. package/packaging/inno/build-inno.ps1 +34 -9
  217. package/packaging/msix/AppxManifest.store.xml +1 -1
  218. package/packaging/msix/README.md +39 -19
  219. package/packaging/msix/build-msix.ps1 +44 -14
  220. package/packaging/snap/snapcraft.yaml +22 -21
  221. package/packaging/test-packaging.sh +2 -2
  222. package/permissions/types.d.ts +1 -1
  223. package/permissions/types.js +1 -1
  224. package/platform/elizaos-agent-browser-stub.d.ts +144 -0
  225. package/platform/elizaos-agent-browser-stub.d.ts.map +1 -0
  226. package/platform/elizaos-agent-browser-stub.js +158 -0
  227. package/platform/elizaos-plugin-elizacloud-browser-stub.d.ts +34 -0
  228. package/platform/elizaos-plugin-elizacloud-browser-stub.d.ts.map +1 -0
  229. package/platform/elizaos-plugin-elizacloud-browser-stub.js +51 -0
  230. package/platform/empty-node-module.d.ts +148 -0
  231. package/platform/empty-node-module.d.ts.map +1 -1
  232. package/platform/empty-node-module.js +140 -3
  233. package/platform/ios-runtime-backends.d.ts +83 -0
  234. package/platform/ios-runtime-backends.d.ts.map +1 -0
  235. package/platform/ios-runtime-backends.js +133 -0
  236. package/platform/ios-runtime-bridge.d.ts +15 -0
  237. package/platform/ios-runtime-bridge.d.ts.map +1 -0
  238. package/platform/ios-runtime-bridge.js +527 -0
  239. package/platform/native-library-policy.d.ts +23 -0
  240. package/platform/native-library-policy.d.ts.map +1 -0
  241. package/platform/native-library-policy.js +112 -0
  242. package/platform/native-plugin-entrypoints.d.ts +19 -0
  243. package/platform/native-plugin-entrypoints.d.ts.map +1 -0
  244. package/platform/native-plugin-entrypoints.js +29 -0
  245. package/platforms/android/README.md +68 -10
  246. package/platforms/android/app/build.gradle +268 -3
  247. package/platforms/android/app/capacitor.build.gradle +18 -1
  248. package/platforms/android/app/proguard-rules.pro +17 -2
  249. package/platforms/android/app/src/androidTest/java/ai/elizaos/app/ElizaOsInstrumentedTest.java +1 -1
  250. package/platforms/android/app/src/main/AndroidManifest.xml +335 -18
  251. package/platforms/android/app/src/main/assets/runners/eliza-tasks.js +177 -0
  252. package/platforms/android/app/src/main/elizavoice-jni/CMakeLists.txt +100 -0
  253. package/platforms/android/app/src/main/elizavoice-jni/elizavoice-jni.cpp +1485 -0
  254. package/platforms/android/app/src/main/java/ai/elizaos/app/AgentPlugin.java +111 -171
  255. package/platforms/android/app/src/main/java/ai/elizaos/app/AndroidVirtualizationBridge.java +284 -0
  256. package/platforms/android/app/src/main/java/ai/elizaos/app/BatteryOptimizationPlugin.java +95 -0
  257. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaAccessibilityService.java +55 -0
  258. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaAgentService.java +1255 -141
  259. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaAndroidSystemBridge.java +83 -0
  260. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaAssistActivity.java +50 -1
  261. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaBionicInferenceServer.java +400 -0
  262. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaBootReceiver.java +90 -8
  263. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaBrowserActivity.java +2 -2
  264. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaCalendarActivity.java +1 -1
  265. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaCameraActivity.java +1 -1
  266. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaClockActivity.java +2 -2
  267. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaContactsActivity.java +1 -1
  268. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaDialActivity.java +1 -1
  269. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaInCallService.java +1 -1
  270. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaMmsReceiver.java +1 -1
  271. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaNativeBridge.java +22 -0
  272. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaNotificationListenerService.java +45 -0
  273. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaQuickActionsWidgetProvider.java +68 -0
  274. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaShareActivity.java +132 -0
  275. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaSmsComposeActivity.java +1 -1
  276. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaSmsGatewayService.java +268 -0
  277. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaSmsReceiver.java +12 -1
  278. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaTasksWorker.java +194 -0
  279. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaVoiceCaptureService.java +198 -0
  280. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaVoiceNative.java +220 -0
  281. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaVoicePlugin.java +498 -0
  282. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaVoiceTileService.java +39 -0
  283. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaWorkScheduler.java +60 -0
  284. package/platforms/android/app/src/main/java/ai/elizaos/app/GatewayConnectionService.java +53 -19
  285. package/platforms/android/app/src/main/java/ai/elizaos/app/MainActivity.java +160 -33
  286. package/platforms/android/app/src/main/java/ai/elizaos/app/ResourceProbePlugin.java +169 -0
  287. package/platforms/android/app/src/main/java/ai/elizaos/app/VoiceCapturePlugin.java +119 -0
  288. package/platforms/android/app/src/main/res/drawable/eliza_widget_background.xml +10 -0
  289. package/platforms/android/app/src/main/res/drawable/eliza_widget_button_background.xml +13 -0
  290. package/platforms/android/app/src/main/res/drawable/splash.png +0 -0
  291. package/platforms/android/app/src/main/res/drawable-land-hdpi/splash.png +0 -0
  292. package/platforms/android/app/src/main/res/drawable-land-mdpi/splash.png +0 -0
  293. package/platforms/android/app/src/main/res/drawable-land-xhdpi/splash.png +0 -0
  294. package/platforms/android/app/src/main/res/drawable-land-xxhdpi/splash.png +0 -0
  295. package/platforms/android/app/src/main/res/drawable-land-xxxhdpi/splash.png +0 -0
  296. package/platforms/android/app/src/main/res/drawable-port-hdpi/splash.png +0 -0
  297. package/platforms/android/app/src/main/res/drawable-port-mdpi/splash.png +0 -0
  298. package/platforms/android/app/src/main/res/drawable-port-xhdpi/splash.png +0 -0
  299. package/platforms/android/app/src/main/res/drawable-port-xxhdpi/splash.png +0 -0
  300. package/platforms/android/app/src/main/res/drawable-port-xxxhdpi/splash.png +0 -0
  301. package/platforms/android/app/src/main/res/layout/eliza_quick_actions_widget.xml +86 -0
  302. package/platforms/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +2 -1
  303. package/platforms/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +2 -1
  304. package/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  305. package/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png +0 -0
  306. package/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png +0 -0
  307. package/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  308. package/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  309. package/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png +0 -0
  310. package/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png +0 -0
  311. package/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  312. package/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  313. package/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png +0 -0
  314. package/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png +0 -0
  315. package/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  316. package/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  317. package/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0
  318. package/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png +0 -0
  319. package/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  320. package/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  321. package/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0
  322. package/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png +0 -0
  323. package/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  324. package/platforms/android/app/src/main/res/values/android_app_actions.xml +48 -0
  325. package/platforms/android/app/src/main/res/values/colors.xml +8 -0
  326. package/platforms/android/app/src/main/res/values/ic_launcher_background.xml +2 -2
  327. package/platforms/android/app/src/main/res/values/strings.xml +2 -2
  328. package/platforms/android/app/src/main/res/values/styles.xml +25 -1
  329. package/platforms/android/app/src/main/res/xml/eliza_accessibility_service.xml +9 -0
  330. package/platforms/android/app/src/main/res/xml/eliza_quick_actions_widget.xml +13 -0
  331. package/platforms/android/app/src/main/res/xml/shortcuts.xml +121 -0
  332. package/platforms/android/build.gradle +2 -2
  333. package/platforms/android/capacitor-cordova-android-plugins/build.gradle +9 -3
  334. package/platforms/android/capacitor-cordova-android-plugins/cordova.variables.gradle +6 -2
  335. package/platforms/android/capacitor-cordova-android-plugins/src/main/AndroidManifest.xml +7 -2
  336. package/platforms/android/capacitor-cordova-android-plugins/src/main/java/.gitkeep +0 -1
  337. package/platforms/android/capacitor.settings.gradle +66 -16
  338. package/platforms/android/gradle.properties +1 -0
  339. package/platforms/android/update-manifest/generate-manifest.mjs +97 -0
  340. package/platforms/android/update-manifest/schema.json +26 -0
  341. package/platforms/apple-store-entitlements.reviewed.json +155 -0
  342. package/platforms/electrobun/.generated/brand-config.json +3 -2
  343. package/platforms/electrobun/LICENSE +21 -0
  344. package/platforms/electrobun/README.md +15 -1
  345. package/platforms/electrobun/assets/appIcon.icns +0 -0
  346. package/platforms/electrobun/assets/appIcon.ico +0 -0
  347. package/platforms/electrobun/assets/appIcon.iconset/icon_128x128.png +0 -0
  348. package/platforms/electrobun/assets/appIcon.iconset/icon_128x128@2x.png +0 -0
  349. package/platforms/electrobun/assets/appIcon.iconset/icon_16x16.png +0 -0
  350. package/platforms/electrobun/assets/appIcon.iconset/icon_16x16@2x.png +0 -0
  351. package/platforms/electrobun/assets/appIcon.iconset/icon_256x256.png +0 -0
  352. package/platforms/electrobun/assets/appIcon.iconset/icon_256x256@2x.png +0 -0
  353. package/platforms/electrobun/assets/appIcon.iconset/icon_32x32.png +0 -0
  354. package/platforms/electrobun/assets/appIcon.iconset/icon_32x32@2x.png +0 -0
  355. package/platforms/electrobun/assets/appIcon.iconset/icon_512x512.png +0 -0
  356. package/platforms/electrobun/assets/brand-config.json +6 -6
  357. package/platforms/electrobun/biome.json +9 -9
  358. package/platforms/electrobun/docs/capability-collapse-matrix.json +318 -0
  359. package/platforms/electrobun/docs/capability-collapse-matrix.md +129 -0
  360. package/platforms/electrobun/docs/capability-routing.md +86 -0
  361. package/platforms/electrobun/docs/convergence-audit.json +3505 -0
  362. package/platforms/electrobun/docs/convergence-audit.md +694 -0
  363. package/platforms/electrobun/docs/database-boot-policy.md +90 -0
  364. package/platforms/electrobun/docs/riscv64-port.md +175 -0
  365. package/platforms/electrobun/docs/startup-first-run-cleanup.md +18 -0
  366. package/platforms/electrobun/docs/trace-first-annotations.md +52 -0
  367. package/platforms/electrobun/docs/ui-boundary-audit.json +580 -0
  368. package/platforms/electrobun/docs/ui-boundary-audit.md +257 -0
  369. package/platforms/electrobun/electrobun.config.ts +592 -364
  370. package/platforms/electrobun/entitlements/JUSTIFICATIONS.md +141 -0
  371. package/platforms/electrobun/entitlements/README.md +34 -6
  372. package/platforms/electrobun/entitlements/mas-bun.entitlements +15 -0
  373. package/platforms/electrobun/entitlements/mas.entitlements +6 -4
  374. package/platforms/electrobun/native/macos/window-effects.mm +1522 -0
  375. package/platforms/electrobun/package.json +18 -12
  376. package/platforms/electrobun/remotes/fs/README.md +70 -0
  377. package/platforms/electrobun/remotes/fs/electrobun.config.ts +38 -0
  378. package/platforms/electrobun/remotes/fs/package.json +12 -0
  379. package/platforms/electrobun/remotes/fs/plugin.json +25 -0
  380. package/platforms/electrobun/remotes/fs/src/bun/errors.ts +57 -0
  381. package/platforms/electrobun/remotes/fs/src/bun/file-limits.ts +50 -0
  382. package/platforms/electrobun/remotes/fs/src/bun/fs-service.ts +389 -0
  383. package/platforms/electrobun/remotes/fs/src/bun/path-guard.ts +270 -0
  384. package/platforms/electrobun/remotes/fs/src/bun/protocol.ts +149 -0
  385. package/platforms/electrobun/remotes/fs/src/bun/worker.ts +174 -0
  386. package/platforms/electrobun/remotes/fs/src/dev/phase5-smoke.ts +171 -0
  387. package/platforms/electrobun/remotes/fs/src/web/index.html +8 -0
  388. package/platforms/electrobun/remotes/git/README.md +75 -0
  389. package/platforms/electrobun/remotes/git/electrobun.config.ts +44 -0
  390. package/platforms/electrobun/remotes/git/package.json +12 -0
  391. package/platforms/electrobun/remotes/git/plugin.json +31 -0
  392. package/platforms/electrobun/remotes/git/src/bun/errors.ts +69 -0
  393. package/platforms/electrobun/remotes/git/src/bun/git-command.ts +156 -0
  394. package/platforms/electrobun/remotes/git/src/bun/git-service.ts +446 -0
  395. package/platforms/electrobun/remotes/git/src/bun/operation-history.ts +124 -0
  396. package/platforms/electrobun/remotes/git/src/bun/protocol.ts +252 -0
  397. package/platforms/electrobun/remotes/git/src/bun/worker.ts +316 -0
  398. package/platforms/electrobun/remotes/git/src/dev/phase7-smoke.ts +141 -0
  399. package/platforms/electrobun/remotes/git/src/web/index.html +8 -0
  400. package/platforms/electrobun/remotes/local-model/README.md +138 -0
  401. package/platforms/electrobun/remotes/local-model/electrobun.config.ts +46 -0
  402. package/platforms/electrobun/remotes/local-model/package.json +12 -0
  403. package/platforms/electrobun/remotes/local-model/plugin.json +33 -0
  404. package/platforms/electrobun/remotes/local-model/src/bun/download-state.ts +115 -0
  405. package/platforms/electrobun/remotes/local-model/src/bun/eliza1-catalog.ts +405 -0
  406. package/platforms/electrobun/remotes/local-model/src/bun/errors.ts +74 -0
  407. package/platforms/electrobun/remotes/local-model/src/bun/hf-eliza1-client.ts +169 -0
  408. package/platforms/electrobun/remotes/local-model/src/bun/local-inference-api-client.ts +245 -0
  409. package/platforms/electrobun/remotes/local-model/src/bun/model-service.ts +490 -0
  410. package/platforms/electrobun/remotes/local-model/src/bun/protocol.ts +301 -0
  411. package/platforms/electrobun/remotes/local-model/src/bun/worker.ts +248 -0
  412. package/platforms/electrobun/remotes/local-model/src/dev/phase8-smoke.ts +116 -0
  413. package/platforms/electrobun/remotes/local-model/src/web/index.html +13 -0
  414. package/platforms/electrobun/remotes/pty/README.md +65 -0
  415. package/platforms/electrobun/remotes/pty/electrobun.config.ts +47 -0
  416. package/platforms/electrobun/remotes/pty/package.json +12 -0
  417. package/platforms/electrobun/remotes/pty/plugin.json +34 -0
  418. package/platforms/electrobun/remotes/pty/src/bun/errors.ts +57 -0
  419. package/platforms/electrobun/remotes/pty/src/bun/output-buffer.ts +127 -0
  420. package/platforms/electrobun/remotes/pty/src/bun/protocol.ts +192 -0
  421. package/platforms/electrobun/remotes/pty/src/bun/pty-service.ts +562 -0
  422. package/platforms/electrobun/remotes/pty/src/bun/worker.ts +218 -0
  423. package/platforms/electrobun/remotes/pty/src/dev/phase6-smoke.ts +127 -0
  424. package/platforms/electrobun/remotes/pty/src/web/index.html +8 -0
  425. package/platforms/electrobun/remotes/runtime/README.md +370 -0
  426. package/platforms/electrobun/remotes/runtime/electrobun.config.ts +48 -0
  427. package/platforms/electrobun/remotes/runtime/package.json +14 -0
  428. package/platforms/electrobun/remotes/runtime/plugin.json +30 -0
  429. package/platforms/electrobun/remotes/runtime/src/bun/api-client.ts +620 -0
  430. package/platforms/electrobun/remotes/runtime/src/bun/errors.ts +45 -0
  431. package/platforms/electrobun/remotes/runtime/src/bun/log-buffer.ts +33 -0
  432. package/platforms/electrobun/remotes/runtime/src/bun/protocol.ts +366 -0
  433. package/platforms/electrobun/remotes/runtime/src/bun/route-discovery.ts +419 -0
  434. package/platforms/electrobun/remotes/runtime/src/bun/runtime-manager.ts +423 -0
  435. package/platforms/electrobun/remotes/runtime/src/bun/sse-parser.ts +99 -0
  436. package/platforms/electrobun/remotes/runtime/src/bun/stream-manager.ts +887 -0
  437. package/platforms/electrobun/remotes/runtime/src/bun/worker.ts +1231 -0
  438. package/platforms/electrobun/remotes/runtime/src/dev/phase1-smoke.ts +34 -0
  439. package/platforms/electrobun/remotes/runtime/src/dev/phase2-smoke.ts +86 -0
  440. package/platforms/electrobun/remotes/runtime/src/dev/phase3-smoke.ts +141 -0
  441. package/platforms/electrobun/remotes/runtime/src/web/index.css +187 -0
  442. package/platforms/electrobun/remotes/runtime/src/web/index.html +76 -0
  443. package/platforms/electrobun/remotes/runtime/src/web/index.ts +192 -0
  444. package/platforms/electrobun/remotes/surface/README.md +201 -0
  445. package/platforms/electrobun/remotes/surface/electrobun.config.ts +38 -0
  446. package/platforms/electrobun/remotes/surface/package.json +12 -0
  447. package/platforms/electrobun/remotes/surface/plugin.json +28 -0
  448. package/platforms/electrobun/remotes/surface/src/bun/worker.ts +132 -0
  449. package/platforms/electrobun/remotes/surface/src/dev/phase4-smoke.ts +566 -0
  450. package/platforms/electrobun/remotes/surface/src/protocol/event-types.ts +84 -0
  451. package/platforms/electrobun/remotes/surface/src/protocol/runtime-client.ts +673 -0
  452. package/platforms/electrobun/remotes/surface/src/web/app.ts +595 -0
  453. package/platforms/electrobun/remotes/surface/src/web/index.css +460 -0
  454. package/platforms/electrobun/remotes/surface/src/web/index.html +466 -0
  455. package/platforms/electrobun/remotes/surface/src/web/index.ts +5 -0
  456. package/platforms/electrobun/remotes/surface/src/web/render.ts +455 -0
  457. package/platforms/electrobun/remotes/surface/src/web/state.ts +427 -0
  458. package/platforms/electrobun/scripts/build-macos-effects.sh +4 -0
  459. package/platforms/electrobun/scripts/ensure-build-folder.ts +28 -0
  460. package/platforms/electrobun/scripts/ensure-whisper-gguf.sh +55 -0
  461. package/platforms/electrobun/scripts/ensure-whisper-model.sh +22 -80
  462. package/platforms/electrobun/scripts/generate-convergence-audit.ts +1203 -0
  463. package/platforms/electrobun/scripts/local-adhoc-sign-macos.ts +159 -159
  464. package/platforms/electrobun/scripts/postwrap-diagnostics.ts +424 -339
  465. package/platforms/electrobun/scripts/postwrap-sign-runtime-macos.ts +302 -271
  466. package/platforms/electrobun/scripts/smoke-test-windows.ps1 +17 -16
  467. package/platforms/electrobun/scripts/smoke-test.sh +5 -7
  468. package/platforms/electrobun/scripts/sync-web-assets.mjs +13 -13
  469. package/platforms/electrobun/scripts/verify-rpc-handlers.ts +109 -110
  470. package/platforms/electrobun/scripts/verify-windows-installer-proof.ps1 +3 -8
  471. package/platforms/electrobun/src/__stubs__/bun-ffi.ts +31 -31
  472. package/platforms/electrobun/src/__stubs__/electrobun-bun.ts +1 -1
  473. package/platforms/electrobun/src/agent-ready-state.ts +8 -8
  474. package/platforms/electrobun/src/agent-reset-from-main.test.ts +162 -0
  475. package/platforms/electrobun/src/agent-reset-from-main.ts +62 -62
  476. package/platforms/electrobun/src/agent-status-rpc.test.ts +95 -0
  477. package/platforms/electrobun/src/agent-status-rpc.ts +156 -0
  478. package/platforms/electrobun/src/api-base.test.ts +247 -0
  479. package/platforms/electrobun/src/api-base.ts +202 -93
  480. package/platforms/electrobun/src/application-menu-action-registry.ts +9 -9
  481. package/platforms/electrobun/src/application-menu.ts +348 -348
  482. package/platforms/electrobun/src/background-notice.ts +36 -36
  483. package/platforms/electrobun/src/boot-progress.test.ts +188 -0
  484. package/platforms/electrobun/src/boot-progress.ts +111 -0
  485. package/platforms/electrobun/src/brand-config.test.ts +39 -0
  486. package/platforms/electrobun/src/brand-config.ts +141 -129
  487. package/platforms/electrobun/src/bridge/browser-tabs-renderer-registry.ts +28 -28
  488. package/platforms/electrobun/src/bridge/electrobun-boot-config.ts +42 -0
  489. package/platforms/electrobun/src/bridge/electrobun-crypto-ready.ts +120 -0
  490. package/platforms/electrobun/src/bridge/electrobun-direct-rpc.ts +342 -357
  491. package/platforms/electrobun/src/bridge/electrobun-stub.ts +13 -13
  492. package/platforms/electrobun/src/browser-workspace-bridge-server.ts +285 -243
  493. package/platforms/electrobun/src/cloud-auth-window.ts +136 -136
  494. package/platforms/electrobun/src/cloud-disconnect-from-main.ts +90 -90
  495. package/platforms/electrobun/src/config-and-auth-rpc.test.ts +256 -0
  496. package/platforms/electrobun/src/config-and-auth-rpc.ts +302 -0
  497. package/platforms/electrobun/src/conversations-and-character-rpc.test.ts +185 -0
  498. package/platforms/electrobun/src/conversations-and-character-rpc.ts +131 -0
  499. package/platforms/electrobun/src/dashboard-rpc.test.ts +200 -0
  500. package/platforms/electrobun/src/dashboard-rpc.ts +344 -0
  501. package/platforms/electrobun/src/database/database-lock.ts +141 -0
  502. package/platforms/electrobun/src/database/database-mode.ts +149 -0
  503. package/platforms/electrobun/src/database/database-recovery.ts +72 -0
  504. package/platforms/electrobun/src/database/database-snapshot.ts +190 -0
  505. package/platforms/electrobun/src/database/database.test.ts +196 -0
  506. package/platforms/electrobun/src/database/index.ts +5 -0
  507. package/platforms/electrobun/src/database/pglite-paths.ts +100 -0
  508. package/platforms/electrobun/src/desktop-deep-link-events.test.ts +30 -0
  509. package/platforms/electrobun/src/desktop-deep-link-events.ts +17 -0
  510. package/platforms/electrobun/src/desktop-http-request.test.ts +73 -73
  511. package/platforms/electrobun/src/desktop-http-request.ts +85 -85
  512. package/platforms/electrobun/src/desktop-pill-config.test.ts +27 -0
  513. package/platforms/electrobun/src/desktop-pill-config.ts +40 -0
  514. package/platforms/electrobun/src/desktop-test-bridge-server.ts +204 -204
  515. package/platforms/electrobun/src/desktop-tray-config.test.ts +87 -0
  516. package/platforms/electrobun/src/desktop-tray-config.ts +84 -0
  517. package/platforms/electrobun/src/devtools-layout.ts +41 -41
  518. package/platforms/electrobun/src/diagnostic-format.test.ts +71 -0
  519. package/platforms/electrobun/src/diagnostic-format.ts +75 -36
  520. package/platforms/electrobun/src/dynamic-view-rpc-schema.test.ts +37 -0
  521. package/platforms/electrobun/src/dynamic-views/README.md +44 -0
  522. package/platforms/electrobun/src/dynamic-views/demo/agent-run-trace.html +135 -0
  523. package/platforms/electrobun/src/dynamic-views/errors.ts +29 -0
  524. package/platforms/electrobun/src/dynamic-views/host.test.ts +353 -0
  525. package/platforms/electrobun/src/dynamic-views/host.ts +332 -0
  526. package/platforms/electrobun/src/dynamic-views/index.ts +57 -0
  527. package/platforms/electrobun/src/dynamic-views/kiosk-canvas.ts +89 -0
  528. package/platforms/electrobun/src/dynamic-views/registry.test.ts +139 -0
  529. package/platforms/electrobun/src/dynamic-views/registry.ts +196 -0
  530. package/platforms/electrobun/src/dynamic-views/session-manager.test.ts +355 -0
  531. package/platforms/electrobun/src/dynamic-views/session-manager.ts +348 -0
  532. package/platforms/electrobun/src/dynamic-views/types.ts +105 -0
  533. package/platforms/electrobun/src/electrobun-boot-config.test.ts +50 -0
  534. package/platforms/electrobun/src/electrobun-config.test.ts +62 -0
  535. package/platforms/electrobun/src/electrobun-crypto-ready.test.ts +65 -0
  536. package/platforms/electrobun/src/electrobun-window-options.ts +25 -0
  537. package/platforms/electrobun/src/extension-rpc.test.ts +88 -0
  538. package/platforms/electrobun/src/extension-rpc.ts +102 -0
  539. package/platforms/electrobun/src/fatal-shutdown.test.ts +10 -10
  540. package/platforms/electrobun/src/fatal-shutdown.ts +1 -1
  541. package/platforms/electrobun/src/first-party-remotes.test.ts +169 -0
  542. package/platforms/electrobun/src/first-party-remotes.ts +297 -0
  543. package/platforms/electrobun/src/first-run-rpc.test.ts +192 -0
  544. package/platforms/electrobun/src/first-run-rpc.ts +146 -0
  545. package/platforms/electrobun/src/floating-chat-window.ts +181 -181
  546. package/platforms/electrobun/src/inbox-rpc.test.ts +123 -0
  547. package/platforms/electrobun/src/inbox-rpc.ts +158 -0
  548. package/platforms/electrobun/src/index.ts +2555 -2096
  549. package/platforms/electrobun/src/kiosk-mode.ts +50 -0
  550. package/platforms/electrobun/src/launch/index.ts +4 -0
  551. package/platforms/electrobun/src/launch/launch-dynamic-view.ts +37 -0
  552. package/platforms/electrobun/src/launch/launch-orchestrator.test.ts +224 -0
  553. package/platforms/electrobun/src/launch/launch-orchestrator.ts +456 -0
  554. package/platforms/electrobun/src/launch/launch-store.test.ts +97 -0
  555. package/platforms/electrobun/src/launch/launch-store.ts +134 -0
  556. package/platforms/electrobun/src/launch/types.ts +103 -0
  557. package/platforms/electrobun/src/launch/views/launch-diagnostics.html +205 -0
  558. package/platforms/electrobun/src/lifecycle/agent-ready-publish.test.ts +50 -0
  559. package/platforms/electrobun/src/lifecycle/agent-ready-publish.ts +27 -0
  560. package/platforms/electrobun/src/lifecycle/api-base-owner.ts +42 -31
  561. package/platforms/electrobun/src/lifecycle/desktop-session-prime.ts +44 -44
  562. package/platforms/electrobun/src/logger.ts +14 -14
  563. package/platforms/electrobun/src/main-window-runtime.ts +83 -83
  564. package/platforms/electrobun/src/main-window-session.test.ts +109 -0
  565. package/platforms/electrobun/src/main-window-session.ts +87 -51
  566. package/platforms/electrobun/src/menu-reset-from-main.ts +158 -158
  567. package/platforms/electrobun/src/native/agent-env.test.ts +52 -0
  568. package/platforms/electrobun/src/native/agent-runtime-layout.test.ts +42 -0
  569. package/platforms/electrobun/src/native/agent-state-dir.test.ts +91 -0
  570. package/platforms/electrobun/src/native/agent.ts +2122 -1682
  571. package/platforms/electrobun/src/native/auth-bridge.test.ts +67 -0
  572. package/platforms/electrobun/src/native/auth-bridge.ts +464 -360
  573. package/platforms/electrobun/src/native/browser-workspace.ts +723 -471
  574. package/platforms/electrobun/src/native/camera.ts +50 -50
  575. package/platforms/electrobun/src/native/canvas.ts +444 -445
  576. package/platforms/electrobun/src/native/credentials.ts +673 -616
  577. package/platforms/electrobun/src/native/desktop-window.test.ts +300 -0
  578. package/platforms/electrobun/src/native/desktop.ts +2196 -2156
  579. package/platforms/electrobun/src/native/editor-bridge.ts +201 -201
  580. package/platforms/electrobun/src/native/file-watcher.ts +154 -154
  581. package/platforms/electrobun/src/native/gateway.ts +179 -180
  582. package/platforms/electrobun/src/native/gpu-window.ts +256 -256
  583. package/platforms/electrobun/src/native/index.ts +76 -74
  584. package/platforms/electrobun/src/native/location.test.ts +44 -0
  585. package/platforms/electrobun/src/native/location.ts +90 -80
  586. package/platforms/electrobun/src/native/loopback-port.ts +60 -60
  587. package/platforms/electrobun/src/native/mac-window-effects.ts +166 -104
  588. package/platforms/electrobun/src/native/music-player.ts +38 -38
  589. package/platforms/electrobun/src/native/permissions-shared.ts +249 -150
  590. package/platforms/electrobun/src/native/permissions.ts +301 -208
  591. package/platforms/electrobun/src/native/power-state.ts +129 -129
  592. package/platforms/electrobun/src/native/remote-plugin-host.test.ts +1394 -0
  593. package/platforms/electrobun/src/native/remote-plugin-host.ts +1531 -0
  594. package/platforms/electrobun/src/native/screencapture.ts +667 -573
  595. package/platforms/electrobun/src/native/steward.ts +207 -204
  596. package/platforms/electrobun/src/native/swabble.ts +68 -324
  597. package/platforms/electrobun/src/native/talkmode.ts +253 -422
  598. package/platforms/electrobun/src/native/webgpu-browser-support.test.ts +18 -0
  599. package/platforms/electrobun/src/native/webgpu-browser-support.ts +165 -147
  600. package/platforms/electrobun/src/native/whisper-env.test.ts +71 -0
  601. package/platforms/electrobun/src/native/whisper-env.ts +68 -0
  602. package/platforms/electrobun/src/native-onboarding.ts +270 -0
  603. package/platforms/electrobun/src/onboarding-overlay-window.ts +141 -0
  604. package/platforms/electrobun/src/persisted-deployment.ts +91 -0
  605. package/platforms/electrobun/src/pill-window.test.ts +91 -0
  606. package/platforms/electrobun/src/pill-window.ts +99 -0
  607. package/platforms/electrobun/src/preload-validation.ts +44 -44
  608. package/platforms/electrobun/src/preload.js +1 -1
  609. package/platforms/electrobun/src/print-electrobun-dev-settings-banner.ts +120 -120
  610. package/platforms/electrobun/src/renderer-api-proxy.test.ts +73 -0
  611. package/platforms/electrobun/src/renderer-api-proxy.ts +86 -0
  612. package/platforms/electrobun/src/renderer-static.test.ts +53 -0
  613. package/platforms/electrobun/src/renderer-static.ts +144 -57
  614. package/platforms/electrobun/src/rpc-handler-slices.ts +121 -0
  615. package/platforms/electrobun/src/rpc-handlers.test.ts +267 -0
  616. package/platforms/electrobun/src/rpc-handlers.ts +1306 -913
  617. package/platforms/electrobun/src/rpc-parse-utils.ts +57 -0
  618. package/platforms/electrobun/src/rpc-port-resolver.test.ts +45 -0
  619. package/platforms/electrobun/src/rpc-port-resolver.ts +31 -0
  620. package/platforms/electrobun/src/rpc-schema.ts +2556 -1619
  621. package/platforms/electrobun/src/runtime-layout.ts +105 -105
  622. package/platforms/electrobun/src/runtime-permissions.ts +95 -95
  623. package/platforms/electrobun/src/runtime-rpc.test.ts +126 -0
  624. package/platforms/electrobun/src/runtime-rpc.ts +237 -0
  625. package/platforms/electrobun/src/screenshot-dev-server.ts +87 -87
  626. package/platforms/electrobun/src/settings-mutations-rpc.test.ts +193 -0
  627. package/platforms/electrobun/src/settings-mutations-rpc.ts +220 -0
  628. package/platforms/electrobun/src/startup-trace.ts +274 -270
  629. package/platforms/electrobun/src/subscription-rpc.test.ts +89 -0
  630. package/platforms/electrobun/src/subscription-rpc.ts +192 -0
  631. package/platforms/electrobun/src/surface-windows.test.ts +355 -0
  632. package/platforms/electrobun/src/surface-windows.ts +410 -410
  633. package/platforms/electrobun/src/trace/README.md +73 -0
  634. package/platforms/electrobun/src/trace/errors.ts +21 -0
  635. package/platforms/electrobun/src/trace/index.ts +40 -0
  636. package/platforms/electrobun/src/trace/trace-dynamic-view.ts +40 -0
  637. package/platforms/electrobun/src/trace/trace-host-requests.ts +473 -0
  638. package/platforms/electrobun/src/trace/trace-service.test.ts +186 -0
  639. package/platforms/electrobun/src/trace/trace-service.ts +324 -0
  640. package/platforms/electrobun/src/trace/trace-store.test.ts +141 -0
  641. package/platforms/electrobun/src/trace/trace-store.ts +551 -0
  642. package/platforms/electrobun/src/trace/types.ts +250 -0
  643. package/platforms/electrobun/src/trace/views/agent-run-trace.html +311 -0
  644. package/platforms/electrobun/src/types/web-speech.d.ts +28 -28
  645. package/platforms/electrobun/src/types.ts +5 -5
  646. package/platforms/electrobun/src/update-availability.test.ts +72 -0
  647. package/platforms/electrobun/src/update-availability.ts +90 -0
  648. package/platforms/electrobun/src/update-rpc.test.ts +83 -0
  649. package/platforms/electrobun/src/update-rpc.ts +123 -0
  650. package/platforms/electrobun/src/voice/README.md +184 -0
  651. package/platforms/electrobun/src/voice/errors.ts +42 -0
  652. package/platforms/electrobun/src/voice/index.ts +78 -0
  653. package/platforms/electrobun/src/voice/types.ts +316 -0
  654. package/platforms/electrobun/src/voice/voice-host-requests.ts +259 -0
  655. package/platforms/electrobun/src/voice/voice-latency-budget.test.ts +66 -0
  656. package/platforms/electrobun/src/voice/voice-latency-budget.ts +243 -0
  657. package/platforms/electrobun/src/voice/voice-live-validation.test.ts +352 -0
  658. package/platforms/electrobun/src/voice/voice-live-validation.ts +838 -0
  659. package/platforms/electrobun/src/voice/voice-pipeline.ts +250 -0
  660. package/platforms/electrobun/src/voice/voice-playback-adapter.ts +31 -0
  661. package/platforms/electrobun/src/voice/voice-runtime-adapter.test.ts +213 -0
  662. package/platforms/electrobun/src/voice/voice-runtime-adapter.ts +686 -0
  663. package/platforms/electrobun/src/voice/voice-service.test.ts +561 -0
  664. package/platforms/electrobun/src/voice/voice-service.ts +1027 -0
  665. package/platforms/electrobun/src/voice/voice-stream-coordinator.test.ts +115 -0
  666. package/platforms/electrobun/src/voice/voice-stream-coordinator.ts +270 -0
  667. package/platforms/electrobun/src/voice/voice-trace.ts +97 -0
  668. package/platforms/electrobun/src/voice/voice-tts-chunker.test.ts +91 -0
  669. package/platforms/electrobun/src/voice/voice-tts-chunker.ts +194 -0
  670. package/platforms/electrobun/src/windows-cef-profile.ts +88 -88
  671. package/platforms/electrobun/tsconfig.json +73 -13
  672. package/platforms/electrobun/update-channels.json +22 -0
  673. package/platforms/electrobun/vitest.electrobun.config.ts +72 -42
  674. package/platforms/ios/App/App/App.entitlements +4 -0
  675. package/platforms/ios/App/App/AppDelegate.swift +80 -18
  676. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ios-marketing-1024.png +0 -0
  677. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-20x20@1x.png +0 -0
  678. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-20x20@2x.png +0 -0
  679. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-29x29@1x.png +0 -0
  680. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-29x29@2x.png +0 -0
  681. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-40x40@1x.png +0 -0
  682. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-40x40@2x.png +0 -0
  683. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-76x76@1x.png +0 -0
  684. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-76x76@2x.png +0 -0
  685. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-83_5x83_5@2x.png +0 -0
  686. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-20x20@2x.png +0 -0
  687. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-20x20@3x.png +0 -0
  688. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-29x29@2x.png +0 -0
  689. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-29x29@3x.png +0 -0
  690. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-40x40@2x.png +0 -0
  691. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-40x40@3x.png +0 -0
  692. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-60x60@2x.png +0 -0
  693. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-60x60@3x.png +0 -0
  694. package/platforms/ios/App/App/Base.lproj/LaunchScreen.storyboard +1 -4
  695. package/platforms/ios/App/App/ComputerUseBridge.swift +589 -0
  696. package/platforms/ios/App/App/DeviceActivityMonitorExtension/DeviceActivityMonitorExtension.entitlements +12 -0
  697. package/platforms/ios/App/App/DeviceActivityMonitorExtension/DeviceActivityMonitorExtension.swift +34 -0
  698. package/platforms/ios/App/App/DeviceActivityMonitorExtension/Info.plist +29 -0
  699. package/platforms/ios/App/App/DeviceActivityReportExtension/DeviceActivityReportExtension.entitlements +12 -0
  700. package/platforms/ios/App/App/DeviceActivityReportExtension/DeviceActivityReportExtension.swift +53 -0
  701. package/platforms/ios/App/App/DeviceActivityReportExtension/Info.plist +27 -0
  702. package/platforms/ios/App/App/ElizaAppIntents.swift +183 -0
  703. package/platforms/ios/App/App/ElizaIntentPlugin.swift +342 -5
  704. package/platforms/ios/App/App/Info.plist +17 -1
  705. package/platforms/ios/App/App/runners/eliza-tasks.js +177 -0
  706. package/platforms/ios/App/App.xcodeproj/project.pbxproj +262 -6
  707. package/platforms/ios/App/BroadcastExtension/SampleHandler.swift +100 -0
  708. package/platforms/ios/App/Podfile +5 -0
  709. package/platforms/ios/App/Podfile.lock +83 -59
  710. package/register-runtime-hooks.js +11 -5
  711. package/registry/app-registry.d.ts +14 -0
  712. package/registry/app-registry.d.ts.map +1 -0
  713. package/registry/app-registry.js +29 -0
  714. package/registry/entries/apps/app-polymarket.json +31 -0
  715. package/registry/entries/apps/clawville.json +27 -0
  716. package/registry/entries/apps/companion.json +28 -0
  717. package/registry/entries/apps/database-viewer.json +27 -0
  718. package/registry/entries/apps/defense-of-the-agents.json +27 -0
  719. package/registry/entries/apps/documents.json +30 -0
  720. package/registry/entries/apps/feed.json +27 -0
  721. package/registry/entries/apps/hyperliquid.json +31 -0
  722. package/registry/entries/apps/log-viewer.json +27 -0
  723. package/registry/entries/apps/memory-viewer.json +27 -0
  724. package/registry/entries/apps/model-tester.json +31 -0
  725. package/registry/entries/apps/plugin-viewer.json +27 -0
  726. package/registry/entries/apps/relationship-viewer.json +27 -0
  727. package/registry/entries/apps/runtime-debugger.json +27 -0
  728. package/registry/entries/apps/shopify.json +31 -0
  729. package/registry/entries/apps/skills-viewer.json +27 -0
  730. package/registry/entries/apps/steward.json +31 -0
  731. package/registry/entries/apps/training.json +54 -0
  732. package/registry/entries/apps/trajectory-viewer.json +27 -0
  733. package/registry/entries/apps/vincent.json +31 -0
  734. package/registry/entries/connectors/bluebubbles.json +99 -0
  735. package/registry/entries/connectors/bluesky.json +173 -0
  736. package/registry/entries/connectors/discord.json +119 -0
  737. package/registry/entries/connectors/farcaster.json +174 -0
  738. package/registry/entries/connectors/feishu.json +79 -0
  739. package/registry/entries/connectors/google-chat.json +120 -0
  740. package/registry/entries/connectors/google.json +82 -0
  741. package/registry/entries/connectors/imessage.json +96 -0
  742. package/registry/entries/connectors/instagram.json +64 -0
  743. package/registry/entries/connectors/line.json +86 -0
  744. package/registry/entries/connectors/matrix.json +94 -0
  745. package/registry/entries/connectors/mattermost.json +110 -0
  746. package/registry/entries/connectors/msteams.json +104 -0
  747. package/registry/entries/connectors/nextcloud-talk.json +104 -0
  748. package/registry/entries/connectors/nostr.json +70 -0
  749. package/registry/entries/connectors/signal.json +81 -0
  750. package/registry/entries/connectors/slack.json +102 -0
  751. package/registry/entries/connectors/telegram.json +71 -0
  752. package/registry/entries/connectors/tlon.json +94 -0
  753. package/registry/entries/connectors/twitch.json +110 -0
  754. package/registry/entries/connectors/whatsapp.json +113 -0
  755. package/registry/entries/connectors/x.json +231 -0
  756. package/registry/entries/connectors/zalo.json +112 -0
  757. package/registry/entries/connectors/zalouser.json +122 -0
  758. package/registry/entries/plugins/agent-orchestrator.json +33 -0
  759. package/registry/entries/plugins/agent-skills.json +72 -0
  760. package/registry/entries/plugins/anthropic.json +73 -0
  761. package/registry/entries/plugins/app-control.json +23 -0
  762. package/registry/entries/plugins/auto-trader.json +203 -0
  763. package/registry/entries/plugins/background-runner.json +26 -0
  764. package/registry/entries/plugins/blooio.json +102 -0
  765. package/registry/entries/plugins/browser.json +75 -0
  766. package/registry/entries/plugins/cli.json +40 -0
  767. package/registry/entries/plugins/clipboard.json +44 -0
  768. package/registry/entries/plugins/coding-tools.json +71 -0
  769. package/registry/entries/plugins/commands.json +63 -0
  770. package/registry/entries/plugins/computeruse.json +74 -0
  771. package/registry/entries/plugins/copilot-proxy.json +93 -0
  772. package/registry/entries/plugins/directives.json +63 -0
  773. package/registry/entries/plugins/edge-tts.json +97 -0
  774. package/registry/entries/plugins/elevenlabs.json +169 -0
  775. package/registry/entries/plugins/elizacloud.json +208 -0
  776. package/registry/entries/plugins/evm.json +134 -0
  777. package/registry/entries/plugins/experience.json +34 -0
  778. package/registry/entries/plugins/facewear.json +131 -0
  779. package/registry/entries/plugins/form.json +26 -0
  780. package/registry/entries/plugins/github.json +93 -0
  781. package/registry/entries/plugins/gmail-watch.json +25 -0
  782. package/registry/entries/plugins/goals.json +77 -0
  783. package/registry/entries/plugins/google-genai.json +106 -0
  784. package/registry/entries/plugins/groq.json +93 -0
  785. package/registry/entries/plugins/hedera.json +48 -0
  786. package/registry/entries/plugins/inmemorydb.json +25 -0
  787. package/registry/entries/plugins/linear.json +51 -0
  788. package/registry/entries/plugins/local-inference.json +137 -0
  789. package/registry/entries/plugins/local-storage.json +36 -0
  790. package/registry/entries/plugins/localdb.json +25 -0
  791. package/registry/entries/plugins/mcp.json +44 -0
  792. package/registry/entries/plugins/memory.json +124 -0
  793. package/registry/entries/plugins/minecraft.json +79 -0
  794. package/registry/entries/plugins/moltbook.json +83 -0
  795. package/registry/entries/plugins/music.json +155 -0
  796. package/registry/entries/plugins/mysticism.json +48 -0
  797. package/registry/entries/plugins/nearai.json +82 -0
  798. package/registry/entries/plugins/ngrok.json +69 -0
  799. package/registry/entries/plugins/ollama.json +96 -0
  800. package/registry/entries/plugins/openai.json +189 -0
  801. package/registry/entries/plugins/openrouter.json +188 -0
  802. package/registry/entries/plugins/pdf.json +26 -0
  803. package/registry/entries/plugins/plugin-manager.json +23 -0
  804. package/registry/entries/plugins/prose.json +48 -0
  805. package/registry/entries/plugins/rlm.json +26 -0
  806. package/registry/entries/plugins/roblox.json +88 -0
  807. package/registry/entries/plugins/rss.json +64 -0
  808. package/registry/entries/plugins/s3-storage.json +91 -0
  809. package/registry/entries/plugins/scheduling.json +35 -0
  810. package/registry/entries/plugins/shell.json +94 -0
  811. package/registry/entries/plugins/social-alpha.json +72 -0
  812. package/registry/entries/plugins/tailscale.json +81 -0
  813. package/registry/entries/plugins/tee.json +53 -0
  814. package/registry/entries/plugins/todos.json +26 -0
  815. package/registry/entries/plugins/trajectory-logger.json +33 -0
  816. package/registry/entries/plugins/trust.json +39 -0
  817. package/registry/entries/plugins/tts.json +71 -0
  818. package/registry/entries/plugins/tunnel.json +45 -0
  819. package/registry/entries/plugins/twilio.json +168 -0
  820. package/registry/entries/plugins/vercel-ai-gateway.json +128 -0
  821. package/registry/entries/plugins/video.json +23 -0
  822. package/registry/entries/plugins/vision.json +43 -0
  823. package/registry/entries/plugins/webhooks.json +23 -0
  824. package/registry/entries/plugins/workflow.json +25 -0
  825. package/registry/entries/plugins/xai.json +75 -0
  826. package/registry/index.d.ts +2 -1
  827. package/registry/index.d.ts.map +1 -1
  828. package/registry/index.js +46 -12
  829. package/registry/loader.d.ts +2 -1
  830. package/registry/loader.d.ts.map +1 -1
  831. package/registry/loader.js +49 -2
  832. package/registry/schema.d.ts +244 -34
  833. package/registry/schema.d.ts.map +1 -1
  834. package/registry/schema.js +36 -0
  835. package/runtime/android-avf-microdroid-bridge.d.ts +29 -0
  836. package/runtime/android-avf-microdroid-bridge.d.ts.map +1 -0
  837. package/runtime/android-avf-microdroid-bridge.js +149 -0
  838. package/runtime/api-dev-settings-banner.d.ts.map +1 -1
  839. package/runtime/api-dev-settings-banner.js +5 -13
  840. package/runtime/app-core-runtime-hooks.d.ts +21 -0
  841. package/runtime/app-core-runtime-hooks.d.ts.map +1 -0
  842. package/runtime/app-core-runtime-hooks.js +10 -0
  843. package/runtime/autonomy-policy.d.ts +2 -0
  844. package/runtime/autonomy-policy.d.ts.map +1 -0
  845. package/runtime/autonomy-policy.js +4 -0
  846. package/runtime/desktop/AppWindowRenderer.d.ts +17 -0
  847. package/runtime/desktop/AppWindowRenderer.d.ts.map +1 -0
  848. package/runtime/desktop/AppWindowRenderer.js +360 -0
  849. package/runtime/desktop/DesktopSurfaceNavigationRuntime.d.ts +2 -0
  850. package/runtime/desktop/DesktopSurfaceNavigationRuntime.d.ts.map +1 -0
  851. package/runtime/desktop/DesktopSurfaceNavigationRuntime.js +41 -0
  852. package/runtime/desktop/DesktopTrayRuntime.d.ts +2 -0
  853. package/runtime/desktop/DesktopTrayRuntime.d.ts.map +1 -0
  854. package/runtime/desktop/DesktopTrayRuntime.js +174 -0
  855. package/runtime/desktop/DetachedShellRoot.d.ts +10 -0
  856. package/runtime/desktop/DetachedShellRoot.d.ts.map +1 -0
  857. package/runtime/desktop/DetachedShellRoot.js +111 -0
  858. package/runtime/desktop/index.d.ts +6 -0
  859. package/runtime/desktop/index.d.ts.map +1 -0
  860. package/runtime/desktop/index.js +5 -0
  861. package/runtime/desktop/tray-menu.d.ts +20 -0
  862. package/runtime/desktop/tray-menu.d.ts.map +1 -0
  863. package/runtime/desktop/tray-menu.js +143 -0
  864. package/runtime/dev-server.d.ts +1 -1
  865. package/runtime/dev-server.d.ts.map +1 -1
  866. package/runtime/dev-server.js +93 -17
  867. package/runtime/eliza.d.ts +75 -1
  868. package/runtime/eliza.d.ts.map +1 -1
  869. package/runtime/eliza.js +596 -122
  870. package/runtime/ensure-text-to-speech-handler.d.ts.map +1 -1
  871. package/runtime/ensure-text-to-speech-handler.js +10 -3
  872. package/runtime/mobile-safe-runtime.d.ts +181 -2
  873. package/runtime/mobile-safe-runtime.d.ts.map +1 -1
  874. package/runtime/mobile-safe-runtime.js +1019 -12
  875. package/runtime/mode/remote-forwarder.d.ts.map +1 -1
  876. package/runtime/mode/remote-forwarder.js +2 -2
  877. package/runtime/mode/route-mode-guard.d.ts +1 -2
  878. package/runtime/mode/route-mode-guard.d.ts.map +1 -1
  879. package/runtime/mode/route-mode-guard.js +4 -5
  880. package/runtime/mode/route-mode-matrix.d.ts.map +1 -1
  881. package/runtime/mode/route-mode-matrix.js +14 -1
  882. package/runtime/mode/runtime-mode.d.ts +1 -1
  883. package/runtime/mode/runtime-mode.js +1 -1
  884. package/runtime/runtime-bootstrap-policy.d.ts.map +1 -1
  885. package/runtime/runtime-bootstrap-policy.js +14 -2
  886. package/runtime/telegram-standalone-handler.d.ts.map +1 -1
  887. package/runtime/telegram-standalone-handler.js +10 -9
  888. package/runtime/tts-cache-wiring.d.ts +29 -0
  889. package/runtime/tts-cache-wiring.d.ts.map +1 -0
  890. package/runtime/tts-cache-wiring.js +114 -0
  891. package/runtime/voice-warmup.d.ts +81 -0
  892. package/runtime/voice-warmup.d.ts.map +1 -0
  893. package/runtime/voice-warmup.js +111 -0
  894. package/scripts/android-sms-gateway-template.test.mjs +1014 -0
  895. package/scripts/aosp/README.md +19 -15
  896. package/scripts/aosp/compile-libllama.mjs +1344 -248
  897. package/scripts/aosp/compile-shim.mjs +47 -18
  898. package/scripts/aosp/deploy-pixel.mjs +405 -0
  899. package/scripts/aosp/lib/load-variant-config.mjs +3 -3
  900. package/scripts/aosp/llama-cpp-patches/README.md +8 -8
  901. package/scripts/aosp/llama-cpp-patches/apply-patches.mjs +23 -6
  902. package/scripts/aosp/llama-cpp-patches/polarquant/README.md +37 -0
  903. package/scripts/aosp/llama-cpp-patches/qjl/README.md +37 -0
  904. package/scripts/aosp/seccomp-shim/sigsys-handler-arm64.c +169 -0
  905. package/scripts/aosp/seccomp-shim/sigsys-handler-riscv64.c +217 -0
  906. package/scripts/aosp/smoke-cuttlefish.mjs +34 -4
  907. package/scripts/aosp/stage-default-models.mjs +49 -18
  908. package/scripts/aosp/variant-config-schema.ts +2 -2
  909. package/scripts/assert-required-bundled-packages.test.ts +534 -0
  910. package/scripts/audit-apple-store-sandbox.mjs +146 -0
  911. package/scripts/audit-live-test-surface.mjs +5 -2
  912. package/scripts/build-capacitor-app.mjs +21 -0
  913. package/scripts/build-flatpak.mjs +5 -5
  914. package/scripts/build-helpers/arm64-simd.mjs +72 -0
  915. package/scripts/build-helpers/omnivoice-merged.mjs +87 -0
  916. package/scripts/build-helpers/verify-fused-symbols.mjs +567 -0
  917. package/scripts/build-image.sh +4 -2
  918. package/scripts/build-llama-cpp-mtp.mjs +487 -0
  919. package/scripts/build-native-plugins.mjs +230 -18
  920. package/scripts/build-patched-electrobun-cli.mjs +68 -10
  921. package/scripts/build-win.mjs +1 -1
  922. package/scripts/bun-riscv64/Dockerfile +418 -0
  923. package/scripts/bun-riscv64/README.md +316 -0
  924. package/scripts/bun-riscv64/build.sh +469 -0
  925. package/scripts/bun-riscv64/bun-patches/0001-config-add-riscv64-arch.patch +74 -0
  926. package/scripts/bun-riscv64/bun-patches/0002-flags-add-riscv64-march-mabi.patch +16 -0
  927. package/scripts/bun-riscv64/bun-patches/0003-zig-add-riscv64-target-triple-and-cpu.patch +26 -0
  928. package/scripts/bun-riscv64/bun-patches/0004-webkit-force-local-mode-on-riscv64.patch +33 -0
  929. package/scripts/bun-riscv64/bun-patches/0005-tinycc-disable-on-riscv64.patch +16 -0
  930. package/scripts/bun-riscv64/bun-patches/0006-build-add-riscv64-cli-validation.patch +15 -0
  931. package/scripts/bun-riscv64/bun-patches/0007-deps-per-dep-riscv64-checks.patch +24 -0
  932. package/scripts/bun-riscv64/bun-patches/0008-source-stabilize-riscv64-musl-build.patch +226 -0
  933. package/scripts/bun-riscv64/bun-patches/0009-disable-wasm-streaming-hooks-for-c-loop.patch +162 -0
  934. package/scripts/bun-riscv64/bun-patches/0010-disable-inspector-profiler-for-riscv64-c-loop.patch +80 -0
  935. package/scripts/bun-riscv64/bun-patches/0011-process-arch-add-riscv64.patch +23 -0
  936. package/scripts/bun-riscv64/bun-patches/0012-cpu-features-add-riscv64-fallback.patch +13 -0
  937. package/scripts/bun-riscv64/bun-patches/0013-disable-console-inspector-hooks-for-riscv64-c-loop.patch +43 -0
  938. package/scripts/bun-riscv64/bun-patches/0014-disable-custom-inspector-dispatchers-on-riscv64.patch +127 -0
  939. package/scripts/bun-riscv64/bun-patches/0015-disable-jsc-profiler-builtins-on-riscv64.patch +75 -0
  940. package/scripts/bun-riscv64/bun-patches/0016-node-vm-disable-jit-cached-data-on-riscv64-c-loop.patch +96 -0
  941. package/scripts/bun-riscv64/bun-patches/0017-disable-performance-domjit-signature-on-riscv64-c-loop.patch +34 -0
  942. package/scripts/bun-riscv64/bun-patches/0018-fix-serialized-script-identifier-big-endian-path.patch +19 -0
  943. package/scripts/bun-riscv64/bun-patches/0019-add-wtf-timer-fire-bridge-for-c-loop.patch +24 -0
  944. package/scripts/bun-riscv64/bun-patches/0020-run-riscv64-smoke-test-under-qemu.patch +13 -0
  945. package/scripts/bun-riscv64/bun-patches/0021-fix-riscv64-linux-open-flags.patch +25 -0
  946. package/scripts/bun-riscv64/bun-patches/0022-zlib-riscv64-generic-kernels.patch +25 -0
  947. package/scripts/bun-riscv64/bun-patches/README.md +127 -0
  948. package/scripts/bun-riscv64/bun-version.json +202 -0
  949. package/scripts/bun-riscv64/run-build.sh +162 -0
  950. package/scripts/bun-riscv64/rust-core/0001-riscv64-rust-core-port.patch +868 -0
  951. package/scripts/bun-riscv64/rust-core/0002-second-wave-riscv64-source-gaps.patch +130 -0
  952. package/scripts/bun-riscv64/rust-core/0003-third-wave-riscv64-crash-handler-gaps.patch +78 -0
  953. package/scripts/bun-riscv64/rust-core/0004-rust-target-cpu-riscv64.patch +39 -0
  954. package/scripts/bun-riscv64/rust-core/0005-fifth-wave-riscv64-source-gaps.patch +96 -0
  955. package/scripts/bun-riscv64/rust-core/0006-cpp-wasm-and-inspector-guards-riscv64.patch +91 -0
  956. package/scripts/bun-riscv64/rust-core/0007-bun-alloc-max-align-t-riscv64.patch +36 -0
  957. package/scripts/bun-riscv64/rust-core/0008-workspace-lints-warn-not-deny-riscv64.patch +75 -0
  958. package/scripts/bun-riscv64/rust-core/0009-zigglobalobject-wasm-streaming-guards-riscv64.patch +109 -0
  959. package/scripts/bun-riscv64/rust-core/0010-tcc-externs-stub-on-riscv64.patch +62 -0
  960. package/scripts/bun-riscv64/rust-core/0011-clippy-ptr-cast-lints-warn-riscv64.patch +61 -0
  961. package/scripts/bun-riscv64/rust-core/README.md +80 -0
  962. package/scripts/bun-riscv64/rust-core/webkit-patches/0003-disable-dfg-ftl-on-riscv64.patch +60 -0
  963. package/scripts/bun-riscv64/rust-core/webkit-patches/0004-riscv64-do-not-force-wasm-in-c-loop.patch +31 -0
  964. package/scripts/bun-riscv64/rust-core/webkit-patches/0005-domjit-effect-allow-no-dfg-c-loop.patch +40 -0
  965. package/scripts/bun-riscv64/rust-core/webkit-patches/0006-disable-usewasm-when-webassembly-compiled-out.patch +33 -0
  966. package/scripts/bun-riscv64/rust-core/webkit-patches/0007-restore-dropped-includes-and-llint-fwd-decl.patch +31 -0
  967. package/scripts/bun-riscv64/validate.sh +264 -0
  968. package/scripts/bun-riscv64/webkit-patches/0001-cherry-pick-llint-riscv64.recipe +155 -0
  969. package/scripts/bun-riscv64/webkit-patches/0002-cherry-pick-baseline-jit-riscv64.recipe +40 -0
  970. package/scripts/bun-riscv64/webkit-patches/0003-disable-dfg-ftl-on-riscv64.patch +60 -0
  971. package/scripts/bun-riscv64/webkit-patches/0004-riscv64-do-not-force-wasm-in-c-loop.patch +31 -0
  972. package/scripts/bun-riscv64/webkit-patches/0005-domjit-effect-allow-no-dfg-c-loop.patch +40 -0
  973. package/scripts/bun-riscv64/webkit-patches/0006-disable-usewasm-when-webassembly-compiled-out.patch +33 -0
  974. package/scripts/bun-riscv64/webkit-patches/0007-restore-dropped-includes-and-llint-fwd-decl.patch +72 -0
  975. package/scripts/bun-riscv64/webkit-patches/README.md +146 -0
  976. package/scripts/check-homepage-public-readiness.mjs +353 -0
  977. package/scripts/check-homepage-release-data.mjs +110 -0
  978. package/scripts/check-i18n.mjs +2 -1
  979. package/scripts/check-real-local-chat.ts +147 -0
  980. package/scripts/check-real-local-provisioning.ts +104 -0
  981. package/scripts/check-real-local-reset.ts +249 -0
  982. package/scripts/check-sms-gateway-completion-audit.mjs +428 -0
  983. package/scripts/check-sms-gateway-readiness.mjs +266 -0
  984. package/scripts/clean-repo.mjs +5 -5
  985. package/scripts/codesign-mas.mjs +222 -16
  986. package/scripts/collect-docker-runtime-deps.mjs +229 -0
  987. package/scripts/continue-sms-gateway-work.mjs +121 -0
  988. package/scripts/copy-runtime-node-modules.ts +903 -195
  989. package/scripts/deploy-cloud-api-production-gateway.mjs +52 -0
  990. package/scripts/desktop-build.mjs +655 -101
  991. package/scripts/dev-platform.mjs +346 -102
  992. package/scripts/dev-startup-smoke.mjs +248 -0
  993. package/scripts/dev-ui.mjs +418 -176
  994. package/scripts/disable-local-eliza-workspace.mjs +35 -0
  995. package/scripts/docker-ci-smoke.sh +440 -96
  996. package/scripts/docker-entrypoint.sh +62 -1
  997. package/scripts/docker-entrypoint.test.ts +283 -0
  998. package/scripts/ensure-avatars.mjs +2 -2
  999. package/scripts/ensure-electrobun-core.mjs +1 -1
  1000. package/scripts/ensure-generated-core-proto-js.mjs +1 -1
  1001. package/scripts/ensure-type-package-aliases.mjs +62 -5
  1002. package/scripts/ensure-vision-deps.mjs +20 -1
  1003. package/scripts/entry.ts +1 -1
  1004. package/scripts/ffi-stub/Makefile +64 -0
  1005. package/scripts/ffi-stub/README.md +391 -0
  1006. package/scripts/ffi-stub/asr-ffi-smoke.ts +139 -0
  1007. package/scripts/ffi-stub/ffi-stub.c +539 -0
  1008. package/scripts/ffi-stub/ffi.h +538 -0
  1009. package/scripts/ffi-stub/libelizainference_stub.so +0 -0
  1010. package/scripts/ffi-stub/tts-stream-ffi-smoke.ts +349 -0
  1011. package/scripts/generate-first-run-voicelines.mjs +194 -0
  1012. package/scripts/generate-plugin-index.js +4 -3
  1013. package/scripts/generate-static-asset-manifest.mjs +1 -1
  1014. package/scripts/i18n-dynamic-keys.json +5 -5
  1015. package/scripts/init-submodules.mjs +2 -2
  1016. package/scripts/install-android-sms-gateway.md +177 -0
  1017. package/scripts/install-android-sms-gateway.mjs +1088 -0
  1018. package/scripts/ios-xcframework/README.md +74 -72
  1019. package/scripts/ios-xcframework/build-xcframework.mjs +204 -43
  1020. package/scripts/ios-xcframework/run-physical-device-smoke.mjs +1943 -0
  1021. package/scripts/ios-xcframework/runtime-symbol-shim.c +450 -0
  1022. package/scripts/kernel-patches/cpu-polar-kernels.mjs +441 -0
  1023. package/scripts/kernel-patches/cpu-simd-kernels.mjs +253 -0
  1024. package/scripts/kernel-patches/cpu-thread-parallelism.mjs +368 -0
  1025. package/scripts/kernel-patches/cuda-kernels.mjs +117 -0
  1026. package/scripts/kernel-patches/metal-kernels.mjs +1698 -109
  1027. package/scripts/kernel-patches/server-omnivoice-route.mjs +718 -0
  1028. package/scripts/kernel-patches/server-structured-output.mjs +279 -0
  1029. package/scripts/kernel-patches/vulkan-dispatch-log.mjs +166 -0
  1030. package/scripts/kernel-patches/vulkan-dispatch-log.test.mjs +50 -0
  1031. package/scripts/kernel-patches/vulkan-dispatch-patches/01-vulkan-shaders-gen.patch +30 -16
  1032. package/scripts/kernel-patches/vulkan-dispatch-patches/02-ggml-vulkan-pipelines.patch +75 -30
  1033. package/scripts/kernel-patches/vulkan-kernels.mjs +800 -49
  1034. package/scripts/lib/agent-source-watcher.mjs +174 -0
  1035. package/scripts/lib/agent-source-watcher.test.mjs +184 -0
  1036. package/scripts/lib/api-supervisor.mjs +78 -9
  1037. package/scripts/lib/api-supervisor.test.mjs +121 -0
  1038. package/scripts/lib/app-dir.mjs +2 -16
  1039. package/scripts/lib/apple-entitlement-audit.mjs +655 -0
  1040. package/scripts/lib/apple-entitlement-audit.test.mjs +144 -0
  1041. package/scripts/lib/bun-version-guard.mjs +13 -13
  1042. package/scripts/lib/capacitor-plugin-build-needed.mjs +4 -3
  1043. package/scripts/lib/capacitor-plugin-names.mjs +30 -14
  1044. package/scripts/lib/desktop-preflight.mjs +9 -5
  1045. package/scripts/lib/desktop-startup-embedding-warmup-policy.mjs +51 -0
  1046. package/scripts/lib/desktop-startup-embedding-warmup-policy.test.mjs +55 -0
  1047. package/scripts/lib/duet-bridge.d.mts +63 -0
  1048. package/scripts/lib/duet-bridge.mjs +193 -0
  1049. package/scripts/lib/node-path-env.mjs +4 -2
  1050. package/scripts/lib/orchestrator-desktop-dev-banner.mjs +12 -3
  1051. package/scripts/lib/patch-bun-exports.mjs +90 -27
  1052. package/scripts/lib/patch-bun-exports.test.mjs +79 -0
  1053. package/scripts/lib/renderer-build-action.mjs +35 -0
  1054. package/scripts/lib/renderer-build-action.test.mjs +70 -0
  1055. package/scripts/lib/stage-android-agent.mjs +748 -99
  1056. package/scripts/lib/sync-eliza-env-aliases.mjs +3 -25
  1057. package/scripts/lib/ui-smoke-stub-decision.mjs +33 -0
  1058. package/scripts/lib/ui-smoke-stub-decision.test.mjs +46 -0
  1059. package/scripts/lib/vite-renderer-dist-stale.mjs +5 -0
  1060. package/scripts/lib/voice-latency-report.mjs +154 -0
  1061. package/scripts/lifeops-prompt-benchmark.ts +21 -12
  1062. package/scripts/link-docker-local-app-packages.mjs +103 -36
  1063. package/scripts/local-stt-bench.ts +192 -0
  1064. package/scripts/maintain-cloud-api-production-gateway.mjs +54 -0
  1065. package/scripts/mas-smoke.mjs +459 -0
  1066. package/scripts/mas-smoke.test.mjs +220 -0
  1067. package/scripts/mobile-auth-simulator-smoke.mjs +0 -1
  1068. package/scripts/normalize-eliza-capture.ts +97 -0
  1069. package/scripts/omnivoice-fuse/prepare.mjs +2543 -23
  1070. package/scripts/pack-upstreams.mjs +65 -5
  1071. package/scripts/package-electrobun-linux.mjs +303 -0
  1072. package/scripts/patch-deps.mjs +5 -3
  1073. package/scripts/patches/llama-asr-word-timestamps.patch +218 -0
  1074. package/scripts/patches/llama-mobile-kokoro-tts.patch +480 -0
  1075. package/scripts/playwright-ui-live-stack.ts +194 -49
  1076. package/scripts/playwright-ui-smoke-api-stub.mjs +3501 -109
  1077. package/scripts/pre-review-local.mjs +2 -2
  1078. package/scripts/prepare-ios-cocoapods.sh +41 -3
  1079. package/scripts/release-check.ts +180 -84
  1080. package/scripts/release-workflow-drift.test.ts +57 -0
  1081. package/scripts/relink-workspace-packages-to-dist.mjs +21 -4
  1082. package/scripts/rt.mjs +16 -1
  1083. package/scripts/run-biome-check.mjs +1 -1
  1084. package/scripts/run-coding-agent-e2e.mjs +3 -3
  1085. package/scripts/run-eliza-app-core-script.mjs +34 -0
  1086. package/scripts/run-local-plugin-live-smoke.mjs +71 -2
  1087. package/scripts/run-mobile-build-android-app-actions.test.mjs +426 -0
  1088. package/scripts/run-mobile-build.mjs +4757 -607
  1089. package/scripts/run-node-runtime.mjs +184 -7
  1090. package/scripts/run-node-runtime.test.mjs +167 -0
  1091. package/scripts/run-node-tsx.mjs +80 -33
  1092. package/scripts/run-node.mjs +41 -1
  1093. package/scripts/run-production-build.mjs +34 -27
  1094. package/scripts/run-release-check.mjs +19 -0
  1095. package/scripts/run-release-contract-suite.mjs +107 -14
  1096. package/scripts/run-ui-smoke-playwright-suite.mjs +0 -2
  1097. package/scripts/runtime-package-manifest.ts +21 -3
  1098. package/scripts/setup-upstreams.mjs +42 -1
  1099. package/scripts/sms-gateway-status.mjs +194 -0
  1100. package/scripts/stage-android-agent.test.mjs +97 -0
  1101. package/scripts/stage-desktop-fused-lib.mjs +424 -0
  1102. package/scripts/stage-elizavoice-lib.mjs +363 -0
  1103. package/scripts/startup-integration-script-drift.test.ts +82 -4
  1104. package/scripts/streaming-pipeline-bench.ts +543 -0
  1105. package/scripts/sync-homepage-porkbun-dns.mjs +262 -0
  1106. package/scripts/test-sms-gateway-software.mjs +100 -0
  1107. package/scripts/type-audit.mjs +1 -1
  1108. package/scripts/validate-bluebubbles-outbound.mjs +293 -0
  1109. package/scripts/validate-cdn-assets.mjs +15 -7
  1110. package/scripts/validate-regression-matrix.mjs +109 -8
  1111. package/scripts/verify-android-sms-gateway-e2e.mjs +362 -0
  1112. package/scripts/verify-bluebubbles-gateway-e2e.mjs +191 -0
  1113. package/scripts/verify-bluebubbles-inbound-readiness.mjs +88 -0
  1114. package/scripts/verify-cloud-api-production-deploy.mjs +87 -0
  1115. package/scripts/verify-cloud-sms-onboarding-flow.mjs +336 -0
  1116. package/scripts/voice/freeze-voice.mjs +521 -0
  1117. package/scripts/voice-attribution-smoke.ts +538 -0
  1118. package/scripts/voice-create-profile.mjs +379 -0
  1119. package/scripts/voice-duet.mjs +1355 -0
  1120. package/scripts/voice-e2e-hardware.ts +871 -0
  1121. package/scripts/voice-interactive.mjs +1750 -0
  1122. package/scripts/voice-latency-report.mjs +96 -0
  1123. package/scripts/voice-latency-report.test.ts +176 -0
  1124. package/scripts/voice-preset/build-default-voice-preset.mjs +249 -0
  1125. package/scripts/voice-preset/build-onboarding-voice.mjs +281 -0
  1126. package/scripts/watch-sms-gateway-readiness.mjs +303 -0
  1127. package/scripts/write-homepage-release-data.mjs +458 -26
  1128. package/security/agent-vault-id.d.ts +1 -1
  1129. package/security/agent-vault-id.js +1 -1
  1130. package/security/hydrate-wallet-keys-from-platform-store.d.ts.map +1 -1
  1131. package/security/hydrate-wallet-keys-from-platform-store.js +23 -14
  1132. package/security/platform-secure-store-node.d.ts +2 -2
  1133. package/security/platform-secure-store-node.js +3 -3
  1134. package/security/wallet-os-store-actions.d.ts +0 -9
  1135. package/security/wallet-os-store-actions.d.ts.map +1 -1
  1136. package/security/wallet-os-store-actions.js +3 -10
  1137. package/services/account-pool.d.ts +23 -14
  1138. package/services/account-pool.d.ts.map +1 -1
  1139. package/services/account-pool.js +86 -24
  1140. package/services/account-usage.d.ts.map +1 -1
  1141. package/services/account-usage.js +2 -5
  1142. package/services/ambient-audio/consent.d.ts +9 -0
  1143. package/services/ambient-audio/consent.d.ts.map +1 -0
  1144. package/services/ambient-audio/consent.js +28 -0
  1145. package/services/ambient-audio/index.d.ts +7 -0
  1146. package/services/ambient-audio/index.d.ts.map +1 -0
  1147. package/services/ambient-audio/index.js +4 -0
  1148. package/services/ambient-audio/replay-buffer.d.ts +14 -0
  1149. package/services/ambient-audio/replay-buffer.d.ts.map +1 -0
  1150. package/services/ambient-audio/replay-buffer.js +66 -0
  1151. package/services/ambient-audio/response-gate.d.ts +3 -0
  1152. package/services/ambient-audio/response-gate.d.ts.map +1 -0
  1153. package/services/ambient-audio/response-gate.js +33 -0
  1154. package/services/ambient-audio/service.d.ts +22 -0
  1155. package/services/ambient-audio/service.d.ts.map +1 -0
  1156. package/services/ambient-audio/service.js +47 -0
  1157. package/services/ambient-audio/types.d.ts +42 -0
  1158. package/services/ambient-audio/types.d.ts.map +1 -0
  1159. package/services/app-updates/update-policy.d.ts +64 -0
  1160. package/services/app-updates/update-policy.d.ts.map +1 -0
  1161. package/services/app-updates/update-policy.js +228 -0
  1162. package/services/auth-store.d.ts +37 -1
  1163. package/services/auth-store.d.ts.map +1 -1
  1164. package/services/auth-store.js +59 -26
  1165. package/services/cloud-jwks-store.d.ts +3 -3
  1166. package/services/cloud-jwks-store.d.ts.map +1 -1
  1167. package/services/cloud-jwks-store.js +5 -8
  1168. package/services/coding-account-bridge.d.ts +71 -0
  1169. package/services/coding-account-bridge.d.ts.map +1 -0
  1170. package/services/coding-account-bridge.js +267 -0
  1171. package/services/connector-target-catalog.d.ts +10 -3
  1172. package/services/connector-target-catalog.d.ts.map +1 -1
  1173. package/services/connector-target-catalog.js +7 -4
  1174. package/services/credential-tunnel-service.d.ts +66 -0
  1175. package/services/credential-tunnel-service.d.ts.map +1 -0
  1176. package/services/credential-tunnel-service.js +227 -0
  1177. package/services/github-credentials.d.ts +1 -1
  1178. package/services/github-credentials.js +1 -1
  1179. package/services/inference-abort.d.ts +47 -0
  1180. package/services/inference-abort.d.ts.map +1 -0
  1181. package/services/inference-abort.js +76 -0
  1182. package/services/persistence.d.ts +2 -3
  1183. package/services/persistence.d.ts.map +1 -1
  1184. package/services/persistence.js +2 -3
  1185. package/services/phrase-chunked-tts.d.ts +136 -0
  1186. package/services/phrase-chunked-tts.d.ts.map +1 -0
  1187. package/services/phrase-chunked-tts.js +208 -0
  1188. package/services/sandbox-registry.d.ts +78 -0
  1189. package/services/sandbox-registry.d.ts.map +1 -0
  1190. package/services/sandbox-registry.js +323 -0
  1191. package/services/secrets-manager-installer.d.ts +8 -1
  1192. package/services/secrets-manager-installer.d.ts.map +1 -1
  1193. package/services/secrets-manager-installer.js +27 -2
  1194. package/services/sensitive-requests/cloud-link-adapter.d.ts +15 -0
  1195. package/services/sensitive-requests/cloud-link-adapter.d.ts.map +1 -0
  1196. package/services/sensitive-requests/cloud-link-adapter.js +73 -0
  1197. package/services/sensitive-requests/index.d.ts +27 -0
  1198. package/services/sensitive-requests/index.d.ts.map +1 -0
  1199. package/services/sensitive-requests/index.js +51 -0
  1200. package/services/sensitive-requests/instruct-dm-only-adapter.d.ts +14 -0
  1201. package/services/sensitive-requests/instruct-dm-only-adapter.d.ts.map +1 -0
  1202. package/services/sensitive-requests/instruct-dm-only-adapter.js +22 -0
  1203. package/services/sensitive-requests/owner-app-inline-adapter.d.ts +3 -0
  1204. package/services/sensitive-requests/owner-app-inline-adapter.d.ts.map +1 -0
  1205. package/services/sensitive-requests/owner-app-inline-adapter.js +146 -0
  1206. package/services/sensitive-requests/owner-app-oauth-adapter.d.ts +3 -0
  1207. package/services/sensitive-requests/owner-app-oauth-adapter.d.ts.map +1 -0
  1208. package/services/sensitive-requests/owner-app-oauth-adapter.js +156 -0
  1209. package/services/sensitive-requests/public-link-adapter.d.ts +14 -0
  1210. package/services/sensitive-requests/public-link-adapter.d.ts.map +1 -0
  1211. package/services/sensitive-requests/public-link-adapter.js +86 -0
  1212. package/services/sensitive-requests/tunnel-link-adapter.d.ts +17 -0
  1213. package/services/sensitive-requests/tunnel-link-adapter.d.ts.map +1 -0
  1214. package/services/sensitive-requests/tunnel-link-adapter.js +38 -0
  1215. package/services/steward-credentials.d.ts +1 -1
  1216. package/services/steward-credentials.d.ts.map +1 -1
  1217. package/services/steward-credentials.js +10 -6
  1218. package/services/steward-sidecar/health-check.d.ts.map +1 -1
  1219. package/services/steward-sidecar/health-check.js +4 -3
  1220. package/services/steward-sidecar/process-management.d.ts +1 -1
  1221. package/services/steward-sidecar/process-management.d.ts.map +1 -1
  1222. package/services/steward-sidecar/process-management.js +9 -3
  1223. package/services/steward-sidecar/types.d.ts +1 -1
  1224. package/services/steward-sidecar/types.d.ts.map +1 -1
  1225. package/services/steward-sidecar/wallet-setup.d.ts.map +1 -1
  1226. package/services/steward-sidecar/wallet-setup.js +8 -7
  1227. package/services/steward-sidecar.d.ts +2 -2
  1228. package/services/steward-sidecar.d.ts.map +1 -1
  1229. package/services/steward-sidecar.js +27 -19
  1230. package/services/task-host-capabilities.d.ts +60 -0
  1231. package/services/task-host-capabilities.d.ts.map +1 -0
  1232. package/services/task-host-capabilities.js +122 -0
  1233. package/services/tool-call-cache/index.d.ts +2 -2
  1234. package/services/tool-call-cache/index.d.ts.map +1 -1
  1235. package/services/tool-call-cache/index.js +1 -1
  1236. package/services/trigger-event-bridge.js +1 -1
  1237. package/services/tunnel-to-mobile/index.d.ts +2 -0
  1238. package/services/tunnel-to-mobile/index.d.ts.map +1 -0
  1239. package/services/tunnel-to-mobile/index.js +1 -0
  1240. package/services/tunnel-to-mobile/tunnel-to-mobile-client.d.ts +105 -0
  1241. package/services/tunnel-to-mobile/tunnel-to-mobile-client.d.ts.map +1 -0
  1242. package/services/tunnel-to-mobile/tunnel-to-mobile-client.js +190 -0
  1243. package/services/vault-bootstrap.d.ts.map +1 -1
  1244. package/services/vault-bootstrap.js +48 -21
  1245. package/services/vault-mirror.d.ts +1 -1
  1246. package/services/vault-mirror.d.ts.map +1 -1
  1247. package/services/vault-mirror.js +29 -6
  1248. package/services/voice-profiles/diarization-pipeline.d.ts +6 -0
  1249. package/services/voice-profiles/diarization-pipeline.d.ts.map +1 -0
  1250. package/services/voice-profiles/diarization-pipeline.js +20 -0
  1251. package/services/voice-profiles/index.d.ts +12 -0
  1252. package/services/voice-profiles/index.d.ts.map +1 -0
  1253. package/services/voice-profiles/index.js +5 -0
  1254. package/services/voice-profiles/nickname-evaluator.d.ts +14 -0
  1255. package/services/voice-profiles/nickname-evaluator.d.ts.map +1 -0
  1256. package/services/voice-profiles/nickname-evaluator.js +46 -0
  1257. package/services/voice-profiles/owner-confidence.d.ts +10 -0
  1258. package/services/voice-profiles/owner-confidence.d.ts.map +1 -0
  1259. package/services/voice-profiles/owner-confidence.js +38 -0
  1260. package/services/voice-profiles/private-challenge.d.ts +20 -0
  1261. package/services/voice-profiles/private-challenge.d.ts.map +1 -0
  1262. package/services/voice-profiles/private-challenge.js +44 -0
  1263. package/services/voice-profiles/store.d.ts +21 -0
  1264. package/services/voice-profiles/store.d.ts.map +1 -0
  1265. package/services/voice-profiles/store.js +50 -0
  1266. package/services/voice-profiles/types.d.ts +38 -0
  1267. package/services/voice-profiles/types.d.ts.map +1 -0
  1268. package/services/voice-profiles/types.js +1 -0
  1269. package/styles/electrobun-mac-window-drag.css +4 -4
  1270. package/test/helpers/__tests__/live-agent-test.smoke.test.ts +43 -70
  1271. package/test/helpers/browser-mocks.ts +2 -2
  1272. package/test/helpers/conditional-tests.ts +2 -2
  1273. package/test/helpers/i18n.ts +1 -1
  1274. package/test/helpers/live-agent-test.ts +537 -551
  1275. package/test/helpers/live-provider.test.ts +4 -4
  1276. package/test/helpers/live-provider.ts +41 -7
  1277. package/test/helpers/live-runtime-server.ts +4 -4
  1278. package/test/helpers/pglite-runtime.ts +1 -1
  1279. package/test/helpers/real-runtime.ts +72 -20
  1280. package/test/helpers/trajectory-harness.ts +11 -7
  1281. package/test/scripts/start-eliza-live.ts +9 -0
  1282. package/test/scripts/test-parallel.mjs +1 -1
  1283. package/test/scripts/test-root-unit.mjs +6 -7
  1284. package/ui-compat.d.ts +13 -2
  1285. package/ui-compat.d.ts.map +1 -1
  1286. package/ui-compat.js +19 -3
  1287. package/api/auth-pairing-compat-routes.d.ts +0 -17
  1288. package/api/auth-pairing-compat-routes.d.ts.map +0 -1
  1289. package/api/auth-pairing-compat-routes.js +0 -301
  1290. package/api/local-inference-compat-routes.d.ts +0 -16
  1291. package/api/local-inference-compat-routes.d.ts.map +0 -1
  1292. package/api/local-inference-compat-routes.js +0 -617
  1293. package/api/onboarding-compat-routes.d.ts +0 -4
  1294. package/api/onboarding-compat-routes.d.ts.map +0 -1
  1295. package/api/onboarding-compat-routes.js +0 -207
  1296. package/api/plugins-compat-routes.d.ts +0 -103
  1297. package/api/plugins-compat-routes.d.ts.map +0 -1
  1298. package/api/plugins-compat-routes.js +0 -1181
  1299. package/api/server-onboarding-compat.d.ts +0 -31
  1300. package/api/server-onboarding-compat.d.ts.map +0 -1
  1301. package/api/server-onboarding-compat.js +0 -283
  1302. package/benchmark/cua-routes.d.ts +0 -10
  1303. package/benchmark/cua-routes.d.ts.map +0 -1
  1304. package/benchmark/cua-routes.js +0 -179
  1305. package/benchmark/mock-plugin-base.d.ts +0 -9
  1306. package/benchmark/mock-plugin-base.d.ts.map +0 -1
  1307. package/benchmark/mock-plugin-base.js +0 -325
  1308. package/cli/parse-duration.d.ts +0 -5
  1309. package/cli/parse-duration.d.ts.map +0 -1
  1310. package/cli/parse-duration.js +0 -27
  1311. package/patches/llama-cpp-capacitor@0.1.5.patch +0 -2387
  1312. package/platform/agent-browser-stub.d.ts +0 -27
  1313. package/platform/agent-browser-stub.d.ts.map +0 -1
  1314. package/platform/agent-browser-stub.js +0 -16
  1315. package/platforms/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java +0 -26
  1316. package/platforms/android/app/src/main/res/drawable/ic_launcher_background.xml +0 -170
  1317. package/platforms/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +0 -34
  1318. package/platforms/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java +0 -18
  1319. package/platforms/electrobun/assets/appIcon.iconset/icon_512x512@2x.png +0 -0
  1320. package/platforms/electrobun/assets/appIcon.png +0 -0
  1321. package/platforms/electrobun/scripts/build-whisper-universal.sh +0 -137
  1322. package/platforms/electrobun/scripts/build-whisper.sh +0 -95
  1323. package/platforms/electrobun/src/libMacWindowEffects.dylib +0 -0
  1324. package/platforms/electrobun/src/native/whisper.ts +0 -280
  1325. package/platforms/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png +0 -0
  1326. package/platforms/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png +0 -0
  1327. package/platforms/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png +0 -0
  1328. package/registry/generate-apps.d.ts +0 -2
  1329. package/registry/generate-apps.d.ts.map +0 -1
  1330. package/registry/generate-apps.js +0 -338
  1331. package/registry/generate.d.ts +0 -2
  1332. package/registry/generate.d.ts.map +0 -1
  1333. package/registry/generate.js +0 -506
  1334. package/runtime/embedding-manager-support.d.ts +0 -77
  1335. package/runtime/embedding-manager-support.d.ts.map +0 -1
  1336. package/runtime/embedding-manager-support.js +0 -309
  1337. package/runtime/embedding-presets.d.ts +0 -5
  1338. package/runtime/embedding-presets.d.ts.map +0 -1
  1339. package/runtime/embedding-presets.js +0 -47
  1340. package/runtime/embedding-warmup-policy.d.ts +0 -13
  1341. package/runtime/embedding-warmup-policy.d.ts.map +0 -1
  1342. package/runtime/embedding-warmup-policy.js +0 -33
  1343. package/runtime/ensure-local-inference-handler.d.ts +0 -25
  1344. package/runtime/ensure-local-inference-handler.d.ts.map +0 -1
  1345. package/runtime/ensure-local-inference-handler.js +0 -389
  1346. package/runtime/mobile-local-inference-gate.d.ts +0 -21
  1347. package/runtime/mobile-local-inference-gate.d.ts.map +0 -1
  1348. package/runtime/mobile-local-inference-gate.js +0 -24
  1349. package/scripts/aosp/avd-test.mjs +0 -403
  1350. package/scripts/aosp/boot-validate.mjs +0 -536
  1351. package/scripts/aosp/build-aosp.mjs +0 -448
  1352. package/scripts/aosp/build-bootanimation.mjs +0 -178
  1353. package/scripts/aosp/capture-screens.mjs +0 -325
  1354. package/scripts/aosp/e2e-validate.mjs +0 -225
  1355. package/scripts/aosp/lint-init-rc.mjs +0 -258
  1356. package/scripts/aosp/llama-shim/eliza_llama_shim.c +0 -276
  1357. package/scripts/aosp/sim.mjs +0 -277
  1358. package/scripts/aosp/sync-to-aosp.mjs +0 -134
  1359. package/scripts/aosp/validate.mjs +0 -1273
  1360. package/scripts/build-llama-cpp-dflash.mjs +0 -1866
  1361. package/scripts/generate-onboarding-voicelines.mjs +0 -194
  1362. package/scripts/generated/static-asset-manifest.json +0 -4
  1363. package/scripts/normalize-parallax-capture.ts +0 -97
  1364. package/scripts/omnivoice-fuse/Makefile +0 -44
  1365. package/scripts/omnivoice-fuse/README.md +0 -266
  1366. package/scripts/omnivoice-fuse/cmake-graft.mjs +0 -180
  1367. package/scripts/omnivoice-fuse/ffi-stub.c +0 -222
  1368. package/scripts/omnivoice-fuse/ffi.h +0 -158
  1369. package/scripts/omnivoice-fuse/libelizainference_stub.dylib +0 -0
  1370. package/scripts/omnivoice-fuse/verify-symbols.mjs +0 -138
  1371. package/security/cloud-secret-store.d.ts +0 -34
  1372. package/security/cloud-secret-store.d.ts.map +0 -1
  1373. package/security/cloud-secret-store.js +0 -65
  1374. package/security/export-guard.d.ts +0 -34
  1375. package/security/export-guard.d.ts.map +0 -1
  1376. package/security/export-guard.js +0 -127
  1377. package/services/local-inference/__stress__/cache-stress-helpers.d.ts +0 -76
  1378. package/services/local-inference/__stress__/cache-stress-helpers.d.ts.map +0 -1
  1379. package/services/local-inference/__stress__/cache-stress-helpers.js +0 -238
  1380. package/services/local-inference/active-model.d.ts +0 -180
  1381. package/services/local-inference/active-model.d.ts.map +0 -1
  1382. package/services/local-inference/active-model.js +0 -362
  1383. package/services/local-inference/assignments.d.ts +0 -58
  1384. package/services/local-inference/assignments.d.ts.map +0 -1
  1385. package/services/local-inference/assignments.js +0 -179
  1386. package/services/local-inference/backend.d.ts +0 -200
  1387. package/services/local-inference/backend.d.ts.map +0 -1
  1388. package/services/local-inference/backend.js +0 -242
  1389. package/services/local-inference/bundled-models.d.ts +0 -34
  1390. package/services/local-inference/bundled-models.d.ts.map +0 -1
  1391. package/services/local-inference/bundled-models.js +0 -104
  1392. package/services/local-inference/cache-bridge.d.ts +0 -184
  1393. package/services/local-inference/cache-bridge.d.ts.map +0 -1
  1394. package/services/local-inference/cache-bridge.js +0 -333
  1395. package/services/local-inference/catalog.d.ts +0 -57
  1396. package/services/local-inference/catalog.d.ts.map +0 -1
  1397. package/services/local-inference/catalog.js +0 -262
  1398. package/services/local-inference/conversation-registry.d.ts +0 -122
  1399. package/services/local-inference/conversation-registry.d.ts.map +0 -1
  1400. package/services/local-inference/conversation-registry.js +0 -182
  1401. package/services/local-inference/device-bridge.d.ts +0 -139
  1402. package/services/local-inference/device-bridge.d.ts.map +0 -1
  1403. package/services/local-inference/device-bridge.js +0 -774
  1404. package/services/local-inference/dflash-doctor.d.ts +0 -27
  1405. package/services/local-inference/dflash-doctor.d.ts.map +0 -1
  1406. package/services/local-inference/dflash-doctor.js +0 -149
  1407. package/services/local-inference/dflash-server.d.ts +0 -248
  1408. package/services/local-inference/dflash-server.d.ts.map +0 -1
  1409. package/services/local-inference/dflash-server.js +0 -1076
  1410. package/services/local-inference/downloader.d.ts +0 -48
  1411. package/services/local-inference/downloader.d.ts.map +0 -1
  1412. package/services/local-inference/downloader.js +0 -688
  1413. package/services/local-inference/engine.d.ts +0 -282
  1414. package/services/local-inference/engine.d.ts.map +0 -1
  1415. package/services/local-inference/engine.js +0 -743
  1416. package/services/local-inference/external-scanner.d.ts +0 -17
  1417. package/services/local-inference/external-scanner.d.ts.map +0 -1
  1418. package/services/local-inference/external-scanner.js +0 -261
  1419. package/services/local-inference/handler-registry.d.ts +0 -72
  1420. package/services/local-inference/handler-registry.d.ts.map +0 -1
  1421. package/services/local-inference/handler-registry.js +0 -159
  1422. package/services/local-inference/hardware.d.ts +0 -26
  1423. package/services/local-inference/hardware.d.ts.map +0 -1
  1424. package/services/local-inference/hardware.js +0 -139
  1425. package/services/local-inference/hf-search.d.ts +0 -19
  1426. package/services/local-inference/hf-search.d.ts.map +0 -1
  1427. package/services/local-inference/hf-search.js +0 -169
  1428. package/services/local-inference/index.d.ts +0 -10
  1429. package/services/local-inference/index.d.ts.map +0 -1
  1430. package/services/local-inference/index.js +0 -7
  1431. package/services/local-inference/llama-server-metrics.d.ts +0 -108
  1432. package/services/local-inference/llama-server-metrics.d.ts.map +0 -1
  1433. package/services/local-inference/llama-server-metrics.js +0 -175
  1434. package/services/local-inference/manifest/index.d.ts +0 -4
  1435. package/services/local-inference/manifest/index.d.ts.map +0 -1
  1436. package/services/local-inference/manifest/index.js +0 -5
  1437. package/services/local-inference/manifest/schema.d.ts +0 -419
  1438. package/services/local-inference/manifest/schema.d.ts.map +0 -1
  1439. package/services/local-inference/manifest/schema.js +0 -227
  1440. package/services/local-inference/manifest/types.d.ts +0 -23
  1441. package/services/local-inference/manifest/types.d.ts.map +0 -1
  1442. package/services/local-inference/manifest/types.js +0 -5
  1443. package/services/local-inference/manifest/validator.d.ts +0 -43
  1444. package/services/local-inference/manifest/validator.d.ts.map +0 -1
  1445. package/services/local-inference/manifest/validator.js +0 -187
  1446. package/services/local-inference/paths.d.ts +0 -8
  1447. package/services/local-inference/paths.d.ts.map +0 -1
  1448. package/services/local-inference/paths.js +0 -7
  1449. package/services/local-inference/providers.d.ts +0 -61
  1450. package/services/local-inference/providers.d.ts.map +0 -1
  1451. package/services/local-inference/providers.js +0 -334
  1452. package/services/local-inference/ram-budget.d.ts +0 -57
  1453. package/services/local-inference/ram-budget.d.ts.map +0 -1
  1454. package/services/local-inference/ram-budget.js +0 -107
  1455. package/services/local-inference/readiness.d.ts +0 -9
  1456. package/services/local-inference/readiness.d.ts.map +0 -1
  1457. package/services/local-inference/readiness.js +0 -153
  1458. package/services/local-inference/recommendation.d.ts +0 -62
  1459. package/services/local-inference/recommendation.d.ts.map +0 -1
  1460. package/services/local-inference/recommendation.js +0 -309
  1461. package/services/local-inference/registry.d.ts +0 -35
  1462. package/services/local-inference/registry.d.ts.map +0 -1
  1463. package/services/local-inference/registry.js +0 -117
  1464. package/services/local-inference/router-handler.d.ts +0 -51
  1465. package/services/local-inference/router-handler.d.ts.map +0 -1
  1466. package/services/local-inference/router-handler.js +0 -165
  1467. package/services/local-inference/routing-policy.d.ts +0 -55
  1468. package/services/local-inference/routing-policy.d.ts.map +0 -1
  1469. package/services/local-inference/routing-policy.js +0 -195
  1470. package/services/local-inference/routing-preferences.d.ts +0 -8
  1471. package/services/local-inference/routing-preferences.d.ts.map +0 -1
  1472. package/services/local-inference/routing-preferences.js +0 -7
  1473. package/services/local-inference/service.d.ts +0 -88
  1474. package/services/local-inference/service.d.ts.map +0 -1
  1475. package/services/local-inference/service.js +0 -210
  1476. package/services/local-inference/session-pool.d.ts +0 -72
  1477. package/services/local-inference/session-pool.d.ts.map +0 -1
  1478. package/services/local-inference/session-pool.js +0 -125
  1479. package/services/local-inference/types.d.ts +0 -309
  1480. package/services/local-inference/types.d.ts.map +0 -1
  1481. package/services/local-inference/types.js +0 -23
  1482. package/services/local-inference/verify.d.ts +0 -8
  1483. package/services/local-inference/verify.d.ts.map +0 -1
  1484. package/services/local-inference/verify.js +0 -7
  1485. package/services/local-inference/voice/barge-in.d.ts +0 -15
  1486. package/services/local-inference/voice/barge-in.d.ts.map +0 -1
  1487. package/services/local-inference/voice/barge-in.js +0 -20
  1488. package/services/local-inference/voice/engine-bridge.d.ts +0 -256
  1489. package/services/local-inference/voice/engine-bridge.d.ts.map +0 -1
  1490. package/services/local-inference/voice/engine-bridge.js +0 -398
  1491. package/services/local-inference/voice/ffi-bindings.d.ts +0 -114
  1492. package/services/local-inference/voice/ffi-bindings.d.ts.map +0 -1
  1493. package/services/local-inference/voice/ffi-bindings.js +0 -281
  1494. package/services/local-inference/voice/index.d.ts +0 -51
  1495. package/services/local-inference/voice/index.d.ts.map +0 -1
  1496. package/services/local-inference/voice/index.js +0 -50
  1497. package/services/local-inference/voice/lifecycle.d.ts +0 -135
  1498. package/services/local-inference/voice/lifecycle.d.ts.map +0 -1
  1499. package/services/local-inference/voice/lifecycle.js +0 -189
  1500. package/services/local-inference/voice/phoneme-tokenizer.d.ts +0 -58
  1501. package/services/local-inference/voice/phoneme-tokenizer.d.ts.map +0 -1
  1502. package/services/local-inference/voice/phoneme-tokenizer.js +0 -53
  1503. package/services/local-inference/voice/phrase-cache.d.ts +0 -24
  1504. package/services/local-inference/voice/phrase-cache.d.ts.map +0 -1
  1505. package/services/local-inference/voice/phrase-cache.js +0 -32
  1506. package/services/local-inference/voice/phrase-chunker.d.ts +0 -20
  1507. package/services/local-inference/voice/phrase-chunker.d.ts.map +0 -1
  1508. package/services/local-inference/voice/phrase-chunker.js +0 -85
  1509. package/services/local-inference/voice/ring-buffer.d.ts +0 -40
  1510. package/services/local-inference/voice/ring-buffer.d.ts.map +0 -1
  1511. package/services/local-inference/voice/ring-buffer.js +0 -85
  1512. package/services/local-inference/voice/rollback-queue.d.ts +0 -24
  1513. package/services/local-inference/voice/rollback-queue.d.ts.map +0 -1
  1514. package/services/local-inference/voice/rollback-queue.js +0 -49
  1515. package/services/local-inference/voice/scheduler.d.ts +0 -47
  1516. package/services/local-inference/voice/scheduler.d.ts.map +0 -1
  1517. package/services/local-inference/voice/scheduler.js +0 -123
  1518. package/services/local-inference/voice/shared-resources.d.ts +0 -119
  1519. package/services/local-inference/voice/shared-resources.d.ts.map +0 -1
  1520. package/services/local-inference/voice/shared-resources.js +0 -83
  1521. package/services/local-inference/voice/speaker-preset-cache.d.ts +0 -28
  1522. package/services/local-inference/voice/speaker-preset-cache.d.ts.map +0 -1
  1523. package/services/local-inference/voice/speaker-preset-cache.js +0 -44
  1524. package/services/local-inference/voice/types.d.ts +0 -80
  1525. package/services/local-inference/voice/types.d.ts.map +0 -1
  1526. package/services/local-inference/voice/voice-preset-format.d.ts +0 -56
  1527. package/services/local-inference/voice/voice-preset-format.d.ts.map +0 -1
  1528. package/services/local-inference/voice/voice-preset-format.js +0 -184
  1529. package/services/plugin-installer.d.ts +0 -22
  1530. package/services/plugin-installer.d.ts.map +0 -1
  1531. package/services/plugin-installer.js +0 -41
  1532. package/test/scripts/task-agent-live-smoke.ts +0 -1335
  1533. /package/services/{local-inference/voice → ambient-audio}/types.js +0 -0
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Per-runtime in-flight inference AbortController registry.
3
+ *
4
+ * Wave 3C's `useAppLifecycleEvents` hook (`packages/ui/src/state/
5
+ * useAppLifecycleEvents.ts`) fires `chatAbortRef.current?.abort()` on
6
+ * `APP_PAUSE_EVENT` to cancel UI-side streams before iOS suspends the
7
+ * WKWebView. That covers the UI's fetch streams. This module covers the
8
+ * runtime side: inference paths internal to the agent (the AOSP llama FFI
9
+ * adapter, the cloud-fallback wrapper, and local model calls) can register
10
+ * their `AbortController` here so a single hook can
11
+ * abort ALL of them at once on pause / shutdown / account switch.
12
+ *
13
+ * Contract:
14
+ * - `trackInflight(runtime, ctrl)` returns a disposer. Callers MUST call
15
+ * the disposer in their `finally` block so completed calls don't keep
16
+ * references alive.
17
+ * - `abortInflightInference(runtime)` calls `.abort()` on every tracked
18
+ * controller for the runtime and clears the set. Returns the count so
19
+ * the caller can log how many were canceled.
20
+ * - WeakMap-keyed by runtime so per-account or test-runtime instances
21
+ * don't leak across each other.
22
+ */
23
+ import type { IAgentRuntime } from "@elizaos/core";
24
+ /**
25
+ * Register a fresh `AbortController` with the runtime's in-flight set.
26
+ * Returns a disposer that removes the controller from the set; callers
27
+ * MUST invoke it in the finally block so completed calls are GC'd.
28
+ */
29
+ export declare function trackInflight(runtime: IAgentRuntime, controller: AbortController): () => void;
30
+ /**
31
+ * Abort every in-flight inference controller for the runtime. Called by
32
+ * the UI on `APP_PAUSE_EVENT` and by other shutdown paths (account
33
+ * switch, hard logout, runtime teardown).
34
+ *
35
+ * Returns `{aborted}` so the caller can emit a structured log line.
36
+ * Idempotent — calling on a runtime with no in-flight work returns
37
+ * `{aborted: 0}` and does nothing.
38
+ */
39
+ export declare function abortInflightInference(runtime: IAgentRuntime): {
40
+ aborted: number;
41
+ };
42
+ /**
43
+ * Inspect the current in-flight count without aborting. Used by
44
+ * diagnostics endpoints (e.g. `/api/health` extension) and tests.
45
+ */
46
+ export declare function getInflightInferenceCount(runtime: IAgentRuntime): number;
47
+ //# sourceMappingURL=inference-abort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inference-abort.d.ts","sourceRoot":"","sources":["../../../../../src/services/inference-abort.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAInD;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,aAAa,EACtB,UAAU,EAAE,eAAe,GAC1B,MAAM,IAAI,CAUZ;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,GAAG;IAC9D,OAAO,EAAE,MAAM,CAAC;CACjB,CAWA;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAExE"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Per-runtime in-flight inference AbortController registry.
3
+ *
4
+ * Wave 3C's `useAppLifecycleEvents` hook (`packages/ui/src/state/
5
+ * useAppLifecycleEvents.ts`) fires `chatAbortRef.current?.abort()` on
6
+ * `APP_PAUSE_EVENT` to cancel UI-side streams before iOS suspends the
7
+ * WKWebView. That covers the UI's fetch streams. This module covers the
8
+ * runtime side: inference paths internal to the agent (the AOSP llama FFI
9
+ * adapter, the cloud-fallback wrapper, and local model calls) can register
10
+ * their `AbortController` here so a single hook can
11
+ * abort ALL of them at once on pause / shutdown / account switch.
12
+ *
13
+ * Contract:
14
+ * - `trackInflight(runtime, ctrl)` returns a disposer. Callers MUST call
15
+ * the disposer in their `finally` block so completed calls don't keep
16
+ * references alive.
17
+ * - `abortInflightInference(runtime)` calls `.abort()` on every tracked
18
+ * controller for the runtime and clears the set. Returns the count so
19
+ * the caller can log how many were canceled.
20
+ * - WeakMap-keyed by runtime so per-account or test-runtime instances
21
+ * don't leak across each other.
22
+ */
23
+ const trackers = new WeakMap();
24
+ /**
25
+ * Register a fresh `AbortController` with the runtime's in-flight set.
26
+ * Returns a disposer that removes the controller from the set; callers
27
+ * MUST invoke it in the finally block so completed calls are GC'd.
28
+ */
29
+ export function trackInflight(runtime, controller) {
30
+ let set = trackers.get(runtime);
31
+ if (!set) {
32
+ set = new Set();
33
+ trackers.set(runtime, set);
34
+ }
35
+ set.add(controller);
36
+ return () => {
37
+ set.delete(controller);
38
+ };
39
+ }
40
+ /**
41
+ * Abort every in-flight inference controller for the runtime. Called by
42
+ * the UI on `APP_PAUSE_EVENT` and by other shutdown paths (account
43
+ * switch, hard logout, runtime teardown).
44
+ *
45
+ * Returns `{aborted}` so the caller can emit a structured log line.
46
+ * Idempotent — calling on a runtime with no in-flight work returns
47
+ * `{aborted: 0}` and does nothing.
48
+ */
49
+ export function abortInflightInference(runtime) {
50
+ const set = trackers.get(runtime);
51
+ if (!set || set.size === 0) {
52
+ return { aborted: 0 };
53
+ }
54
+ const count = set.size;
55
+ for (const controller of set) {
56
+ controller.abort();
57
+ }
58
+ set.clear();
59
+ return { aborted: count };
60
+ }
61
+ /**
62
+ * Inspect the current in-flight count without aborting. Used by
63
+ * diagnostics endpoints (e.g. `/api/health` extension) and tests.
64
+ */
65
+ export function getInflightInferenceCount(runtime) {
66
+ return trackers.get(runtime)?.size ?? 0;
67
+ }
68
+ /**
69
+ * Test-only reset. Wipes the runtime's tracker entirely. Do NOT call
70
+ * from production code.
71
+ *
72
+ * @internal
73
+ */
74
+ export function __resetInflightInferenceForTests(runtime) {
75
+ trackers.delete(runtime);
76
+ }
@@ -10,9 +10,8 @@
10
10
  * Preferences when it isn't (e.g. older mobile shells that haven't shipped
11
11
  * the SQLite plugin yet, or web preview).
12
12
  *
13
- * Token storage MUST go through Keychain on iOS — handled by a separate
14
- * follow-up identified in the prior security review and intentionally NOT
15
- * touched here.
13
+ * Token storage MUST go through Keychain on iOS — handled separately by
14
+ * `platform-secure-store-node.ts`.
16
15
  */
17
16
  export interface PersistenceAdapter {
18
17
  readonly kind: "ios-preferences" | "ios-sqlite" | "web-localstorage";
@@ -1 +1 @@
1
- {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../../../src/services/persistence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAQH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,GAAG,YAAY,GAAG,kBAAkB,CAAC;IACrE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,0DAA0D;IAC1D,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC3B;AAmFD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,iBAAiB,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrD,yBAAyB,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC9D;AAeD;;;;GAIG;AACH,wBAAsB,4BAA4B,CAChD,IAAI,GAAE,cAA+B,GACpC,OAAO,CAAC,kBAAkB,CAAC,CAK7B;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,WAAW,EAAE,kBAAkB,EAC/B,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,MAAM,CAAC,CAoBjB"}
1
+ {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../../../src/services/persistence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,GAAG,YAAY,GAAG,kBAAkB,CAAC;IACrE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,0DAA0D;IAC1D,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC3B;AAmFD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,iBAAiB,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrD,yBAAyB,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC9D;AAeD;;;;GAIG;AACH,wBAAsB,4BAA4B,CAChD,IAAI,GAAE,cAA+B,GACpC,OAAO,CAAC,kBAAkB,CAAC,CAK7B;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,WAAW,EAAE,kBAAkB,EAC/B,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,MAAM,CAAC,CAoBjB"}
@@ -10,9 +10,8 @@
10
10
  * Preferences when it isn't (e.g. older mobile shells that haven't shipped
11
11
  * the SQLite plugin yet, or web preview).
12
12
  *
13
- * Token storage MUST go through Keychain on iOS — handled by a separate
14
- * follow-up identified in the prior security review and intentionally NOT
15
- * touched here.
13
+ * Token storage MUST go through Keychain on iOS — handled separately by
14
+ * `platform-secure-store-node.ts`.
16
15
  */
17
16
  import { isSqliteAvailable, openDatabase, } from "../connectors/capacitor-sqlite.js";
18
17
  class IosPreferencesAdapter {
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Stream-driven phrase-chunked TTS adapter.
3
+ *
4
+ * Wraps any TTS handler (Edge TTS, ElevenLabs, OpenAI, omnivoice — anything
5
+ * that takes a string and returns audio) so that a streaming LLM response
6
+ * can be spoken out progressively: the first sentence/clause hits TTS as
7
+ * soon as the chunker accepts a boundary, then subsequent phrases follow
8
+ * while the LLM is still emitting tokens.
9
+ *
10
+ * Why this lives in app-core: the canonical phrase boundary policy
11
+ * (`PhraseChunker` — commas/semicolons/colons + 30-word cap + 700 ms time
12
+ * budget) is owned by the local-inference voice subsystem. This adapter
13
+ * makes that policy reusable from the REMOTE chat→TTS path (Discord,
14
+ * dashboard SSE→synthesis, phone) where the LLM streams text but the TTS
15
+ * backend only accepts complete strings.
16
+ *
17
+ * Latency contract:
18
+ * - First TTS call fires on the first punctuation boundary OR on the
19
+ * max-token cap (default 30 words), whichever lands first.
20
+ * - If the producer stalls between tokens for >= the time-budget window
21
+ * (default 700 ms), the in-flight phrase is force-flushed so audio
22
+ * never waits on a slow upstream.
23
+ * - `finish()` drains the tail phrase exactly once.
24
+ *
25
+ * This module is intentionally side-effect free: callers supply the TTS
26
+ * function and the audio sink. We don't decode, we don't queue audio —
27
+ * we just hand sentence-sized strings to the TTS function in order.
28
+ */
29
+ export interface AcceptedToken {
30
+ index: number;
31
+ text: string;
32
+ id?: number;
33
+ acceptedAt: number;
34
+ }
35
+ export interface Phrase {
36
+ id: number;
37
+ text: string;
38
+ fromIndex: number;
39
+ toIndex: number;
40
+ terminator: "punctuation" | "max-cap" | "phoneme-stream";
41
+ }
42
+ export interface PhraseChunkerConfig {
43
+ maxTokensPerPhrase?: number;
44
+ sentenceTerminators?: ReadonlySet<string>;
45
+ chunkOn?: "punctuation" | "phoneme-stream";
46
+ phonemesPerChunk?: number;
47
+ maxAccumulationMs?: number;
48
+ }
49
+ export interface PhraseChunkedTtsOptions {
50
+ /** Phrase chunker configuration. See `PhraseChunkerConfig`. */
51
+ chunker?: PhraseChunkerConfig;
52
+ /**
53
+ * Optional clock override for tests. Defaults to `performance.now()`.
54
+ */
55
+ clock?: () => number;
56
+ /**
57
+ * Called once per phrase that's been handed to the TTS handler, after
58
+ * the handler resolves. Receives the phrase + TTS output. Use this to
59
+ * push audio into your sink (HTTP chunked transfer, MediaSource, Discord
60
+ * AudioPlayer, etc.).
61
+ */
62
+ onAudio?: (phrase: Phrase, audio: unknown) => void | Promise<void>;
63
+ /**
64
+ * Called when the chunker emits a phrase but BEFORE the TTS handler is
65
+ * invoked. Use for tracing — e.g. `markVoiceLatency(roomId, "phrase-1-to-tts")`.
66
+ */
67
+ onPhraseEmit?: (phrase: Phrase) => void;
68
+ /**
69
+ * Called when a TTS handler call rejects. Default: rethrow on
70
+ * `finish()`. Set to `"swallow"` to log + continue (next phrase still
71
+ * goes to TTS). The handler error itself is passed for logging.
72
+ */
73
+ onTtsError?: (phrase: Phrase, err: unknown) => "swallow" | "fail";
74
+ }
75
+ export type TtsHandler = (text: string) => Promise<unknown> | unknown;
76
+ /**
77
+ * A phrase-chunked TTS pipeline. Push raw streaming chunks via `push()`;
78
+ * call `finish()` after the LLM stream ends to flush the tail phrase and
79
+ * await all in-flight TTS calls.
80
+ *
81
+ * Usage:
82
+ * const pipe = new PhraseChunkedTts(ttsHandler, { onAudio: writeToSink });
83
+ * for await (const chunk of llmStream) pipe.push(chunk);
84
+ * await pipe.finish();
85
+ */
86
+ export declare class PhraseChunkedTts {
87
+ private readonly chunker;
88
+ private readonly clock;
89
+ private readonly tts;
90
+ private readonly opts;
91
+ private tokenIndex;
92
+ /** In-flight TTS promises so `finish()` can await playback ordering. */
93
+ private readonly inflight;
94
+ private timeBudgetTimer;
95
+ private firstError;
96
+ private closed;
97
+ constructor(tts: TtsHandler, opts?: PhraseChunkedTtsOptions);
98
+ /**
99
+ * Pre-load the PhraseChunker class from plugin-local-inference. Must be
100
+ * called (and awaited) before the first `new PhraseChunkedTts()` when the
101
+ * module has not been statically imported. Idempotent — safe to call
102
+ * multiple times concurrently.
103
+ */
104
+ static load(): Promise<void>;
105
+ /**
106
+ * Push a streaming LLM chunk. May span multiple words. Phrase boundaries
107
+ * are detected by the chunker; when one fires, the phrase text is handed
108
+ * to the TTS handler immediately (its returned promise is tracked).
109
+ */
110
+ push(chunk: string): void;
111
+ /**
112
+ * Drain the tail phrase (if any) and await all in-flight TTS calls.
113
+ * Returns when every dispatched phrase has resolved or rejected. After
114
+ * `finish()` the pipeline cannot be reused.
115
+ */
116
+ finish(): Promise<void>;
117
+ /** Cancel without awaiting in-flight TTS. Safe to call after `finish()`. */
118
+ cancel(): void;
119
+ private dispatchPhrase;
120
+ /**
121
+ * Re-arm the time-budget timer. The chunker has an internal time-budget
122
+ * flush, but it only checks at `push()` time — a producer that goes
123
+ * silent before pushing the next token would stall an in-flight phrase
124
+ * forever. The timer polls the chunker once the budget window elapses
125
+ * with no new pushes.
126
+ */
127
+ private scheduleTimeBudget;
128
+ }
129
+ /**
130
+ * One-shot helper: drive an async iterable of text chunks through
131
+ * `PhraseChunkedTts`. Returns when the iterable is exhausted and all TTS
132
+ * calls have settled. Exists so SSE/streaming callers don't have to write
133
+ * the for-await boilerplate.
134
+ */
135
+ export declare function speakStreamingText(source: AsyncIterable<string>, tts: TtsHandler, opts?: PhraseChunkedTtsOptions): Promise<void>;
136
+ //# sourceMappingURL=phrase-chunked-tts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phrase-chunked-tts.d.ts","sourceRoot":"","sources":["../../../../../src/services/phrase-chunked-tts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,aAAa,GAAG,SAAS,GAAG,gBAAgB,CAAC;CAC1D;AAED,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,aAAa,GAAG,gBAAgB,CAAC;IAC3C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AA0CD,MAAM,WAAW,uBAAuB;IACtC,+DAA+D;IAC/D,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;IACrB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,SAAS,GAAG,MAAM,CAAC;CACnE;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAEtE;;;;;;;;;GASG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0B;IAC/C,OAAO,CAAC,UAAU,CAAK;IACvB,wEAAwE;IACxE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IACnD,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,MAAM,CAAS;gBAEX,GAAG,EAAE,UAAU,EAAE,IAAI,GAAE,uBAA4B;IAY/D;;;;;OAKG;WACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAiBzB;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAe7B,4EAA4E;IAC5E,MAAM,IAAI,IAAI;IASd,OAAO,CAAC,cAAc;IAmBtB;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;CAyB3B;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAC7B,GAAG,EAAE,UAAU,EACf,IAAI,GAAE,uBAA4B,GACjC,OAAO,CAAC,IAAI,CAAC,CAQf"}
@@ -0,0 +1,208 @@
1
+ /**
2
+ * Stream-driven phrase-chunked TTS adapter.
3
+ *
4
+ * Wraps any TTS handler (Edge TTS, ElevenLabs, OpenAI, omnivoice — anything
5
+ * that takes a string and returns audio) so that a streaming LLM response
6
+ * can be spoken out progressively: the first sentence/clause hits TTS as
7
+ * soon as the chunker accepts a boundary, then subsequent phrases follow
8
+ * while the LLM is still emitting tokens.
9
+ *
10
+ * Why this lives in app-core: the canonical phrase boundary policy
11
+ * (`PhraseChunker` — commas/semicolons/colons + 30-word cap + 700 ms time
12
+ * budget) is owned by the local-inference voice subsystem. This adapter
13
+ * makes that policy reusable from the REMOTE chat→TTS path (Discord,
14
+ * dashboard SSE→synthesis, phone) where the LLM streams text but the TTS
15
+ * backend only accepts complete strings.
16
+ *
17
+ * Latency contract:
18
+ * - First TTS call fires on the first punctuation boundary OR on the
19
+ * max-token cap (default 30 words), whichever lands first.
20
+ * - If the producer stalls between tokens for >= the time-budget window
21
+ * (default 700 ms), the in-flight phrase is force-flushed so audio
22
+ * never waits on a slow upstream.
23
+ * - `finish()` drains the tail phrase exactly once.
24
+ *
25
+ * This module is intentionally side-effect free: callers supply the TTS
26
+ * function and the audio sink. We don't decode, we don't queue audio —
27
+ * we just hand sentence-sized strings to the TTS function in order.
28
+ */
29
+ // Lazy module reference — avoids a static boundary violation while preserving
30
+ // synchronous construction semantics for callers that supply the PhraseChunker
31
+ // class via `PhraseChunkedTtsOptions.chunkerClass` (used in tests).
32
+ let _PhraseChunkerClass;
33
+ let _servicesImport;
34
+ function requirePhraseChunker() {
35
+ if (_PhraseChunkerClass)
36
+ return _PhraseChunkerClass;
37
+ throw new Error("PhraseChunker class unavailable — call await PhraseChunkedTts.load() before constructing instances, or provide chunkerClass in options.");
38
+ }
39
+ /** Pre-warm the PhraseChunker class. Called automatically when the first
40
+ * PhraseChunkedTts is instantiated if the class is not already loaded. */
41
+ async function ensurePhraseChunkerLoaded() {
42
+ if (_PhraseChunkerClass)
43
+ return;
44
+ _servicesImport ??= import("@elizaos/plugin-local-inference/services");
45
+ const mod = await _servicesImport;
46
+ _PhraseChunkerClass = mod.PhraseChunker;
47
+ }
48
+ /**
49
+ * A phrase-chunked TTS pipeline. Push raw streaming chunks via `push()`;
50
+ * call `finish()` after the LLM stream ends to flush the tail phrase and
51
+ * await all in-flight TTS calls.
52
+ *
53
+ * Usage:
54
+ * const pipe = new PhraseChunkedTts(ttsHandler, { onAudio: writeToSink });
55
+ * for await (const chunk of llmStream) pipe.push(chunk);
56
+ * await pipe.finish();
57
+ */
58
+ export class PhraseChunkedTts {
59
+ chunker;
60
+ clock;
61
+ tts;
62
+ opts;
63
+ tokenIndex = 0;
64
+ /** In-flight TTS promises so `finish()` can await playback ordering. */
65
+ inflight = [];
66
+ timeBudgetTimer = null;
67
+ firstError = null;
68
+ closed = false;
69
+ constructor(tts, opts = {}) {
70
+ this.tts = tts;
71
+ this.opts = opts;
72
+ this.clock = opts.clock ?? (() => globalThis.performance.now());
73
+ const Chunker = requirePhraseChunker();
74
+ this.chunker = new Chunker(opts.chunker ?? { chunkOn: "punctuation" }, null, this.clock);
75
+ }
76
+ /**
77
+ * Pre-load the PhraseChunker class from plugin-local-inference. Must be
78
+ * called (and awaited) before the first `new PhraseChunkedTts()` when the
79
+ * module has not been statically imported. Idempotent — safe to call
80
+ * multiple times concurrently.
81
+ */
82
+ static async load() {
83
+ await ensurePhraseChunkerLoaded();
84
+ }
85
+ /**
86
+ * Push a streaming LLM chunk. May span multiple words. Phrase boundaries
87
+ * are detected by the chunker; when one fires, the phrase text is handed
88
+ * to the TTS handler immediately (its returned promise is tracked).
89
+ */
90
+ push(chunk) {
91
+ if (this.closed) {
92
+ throw new Error("PhraseChunkedTts.push() called after finish()");
93
+ }
94
+ if (!chunk)
95
+ return;
96
+ const token = {
97
+ index: this.tokenIndex++,
98
+ text: chunk,
99
+ acceptedAt: this.clock(),
100
+ };
101
+ const phrase = this.chunker.push(token);
102
+ if (phrase) {
103
+ this.dispatchPhrase(phrase);
104
+ }
105
+ this.scheduleTimeBudget();
106
+ }
107
+ /**
108
+ * Drain the tail phrase (if any) and await all in-flight TTS calls.
109
+ * Returns when every dispatched phrase has resolved or rejected. After
110
+ * `finish()` the pipeline cannot be reused.
111
+ */
112
+ async finish() {
113
+ if (this.closed)
114
+ return;
115
+ this.closed = true;
116
+ if (this.timeBudgetTimer) {
117
+ clearTimeout(this.timeBudgetTimer);
118
+ this.timeBudgetTimer = null;
119
+ }
120
+ const tail = this.chunker.flushPending();
121
+ if (tail)
122
+ this.dispatchPhrase(tail);
123
+ // Settle every TTS call; rethrow the first error if any (unless caller
124
+ // chose to swallow).
125
+ await Promise.all(this.inflight.map((p) => p.catch(() => undefined)));
126
+ if (this.firstError !== null)
127
+ throw this.firstError;
128
+ }
129
+ /** Cancel without awaiting in-flight TTS. Safe to call after `finish()`. */
130
+ cancel() {
131
+ this.closed = true;
132
+ if (this.timeBudgetTimer) {
133
+ clearTimeout(this.timeBudgetTimer);
134
+ this.timeBudgetTimer = null;
135
+ }
136
+ this.chunker.reset();
137
+ }
138
+ dispatchPhrase(phrase) {
139
+ this.opts.onPhraseEmit?.(phrase);
140
+ const ttsCall = Promise.resolve()
141
+ .then(() => this.tts(phrase.text))
142
+ .then(async (audio) => {
143
+ if (this.opts.onAudio) {
144
+ await this.opts.onAudio(phrase, audio);
145
+ }
146
+ return audio;
147
+ })
148
+ .catch((err) => {
149
+ const mode = this.opts.onTtsError?.(phrase, err) ?? "fail";
150
+ if (mode === "swallow")
151
+ return undefined;
152
+ if (this.firstError === null)
153
+ this.firstError = err;
154
+ return undefined;
155
+ });
156
+ this.inflight.push(ttsCall);
157
+ }
158
+ /**
159
+ * Re-arm the time-budget timer. The chunker has an internal time-budget
160
+ * flush, but it only checks at `push()` time — a producer that goes
161
+ * silent before pushing the next token would stall an in-flight phrase
162
+ * forever. The timer polls the chunker once the budget window elapses
163
+ * with no new pushes.
164
+ */
165
+ scheduleTimeBudget() {
166
+ if (this.closed)
167
+ return;
168
+ if (this.timeBudgetTimer) {
169
+ clearTimeout(this.timeBudgetTimer);
170
+ this.timeBudgetTimer = null;
171
+ }
172
+ const msUntil = this.chunker.msUntilTimeBudget();
173
+ if (!Number.isFinite(msUntil) || msUntil <= 0) {
174
+ // Already past the budget — flush now.
175
+ const flushed = this.chunker.flushIfTimeBudgetExceeded();
176
+ if (flushed)
177
+ this.dispatchPhrase(flushed);
178
+ return;
179
+ }
180
+ this.timeBudgetTimer = setTimeout(() => {
181
+ this.timeBudgetTimer = null;
182
+ const flushed = this.chunker.flushIfTimeBudgetExceeded();
183
+ if (flushed)
184
+ this.dispatchPhrase(flushed);
185
+ }, Math.max(1, Math.ceil(msUntil)));
186
+ // Don't keep the event loop alive for a stalled chunker.
187
+ const t = this.timeBudgetTimer;
188
+ if (t?.unref)
189
+ t.unref();
190
+ }
191
+ }
192
+ /**
193
+ * One-shot helper: drive an async iterable of text chunks through
194
+ * `PhraseChunkedTts`. Returns when the iterable is exhausted and all TTS
195
+ * calls have settled. Exists so SSE/streaming callers don't have to write
196
+ * the for-await boilerplate.
197
+ */
198
+ export async function speakStreamingText(source, tts, opts = {}) {
199
+ await ensurePhraseChunkerLoaded();
200
+ const pipe = new PhraseChunkedTts(tts, opts);
201
+ try {
202
+ for await (const chunk of source)
203
+ pipe.push(chunk);
204
+ }
205
+ finally {
206
+ await pipe.finish();
207
+ }
208
+ }
@@ -0,0 +1,78 @@
1
+ /**
2
+ * SandboxRegistry — self-registers the sandbox container in the shared Redis
3
+ * so the multi-tenant gateways (`gateway-discord`, `gateway-webhook`) can
4
+ * resolve `agent_id -> server URL` and forward inbound platform messages here.
5
+ *
6
+ * This is a deliberate duplicate of `packages/agent/src/runtime/sandbox-registry.ts`:
7
+ * the published cloud image runs the agent runtime entrypoint, which cannot
8
+ * import `@elizaos/app-core` without an `agent -> app-core -> agent` cycle, so
9
+ * the agent copy is the one that executes in a provisioned container. Keep the
10
+ * two copies in lock-step.
11
+ *
12
+ * Two Redis keys are written with a short TTL; a periodic heartbeat refreshes
13
+ * the TTL while the sandbox is alive, and `unregister()` deletes them on
14
+ * graceful shutdown if they still point at this sandbox. If the container
15
+ * crashes, the keys expire naturally and the gateways stop routing to a dead
16
+ * address.
17
+ *
18
+ * server:<serverName>:url = <serverUrl> (resolver address)
19
+ * agent:<agentId>:server = <serverName> (agent -> server pointer)
20
+ *
21
+ * Two transports are supported, selected by the URL scheme so the same
22
+ * registry works before and after the managed Redis is migrated off Upstash:
23
+ * - `http(s)://` — Upstash REST API via `fetch` (the pipeline endpoint
24
+ * applies both SET-with-EX commands atomically server-side).
25
+ * - `redis(s)://` — native RESP over a TCP socket (e.g. a Railway Redis
26
+ * public proxy). Auth is carried inline in the URL, so no separate token
27
+ * is required.
28
+ */
29
+ export interface SandboxRegistryConfig {
30
+ redisUrl: string;
31
+ /**
32
+ * Bearer token for the Upstash REST transport. Not required (and ignored)
33
+ * for a `redis://` / `rediss://` URL, which carries auth inline.
34
+ */
35
+ redisToken?: string;
36
+ agentId: string;
37
+ serverName: string;
38
+ serverUrl: string;
39
+ /** TTL for both Redis keys in seconds. Keep this at least 3x the heartbeat interval so one missed tick does not expire a healthy sandbox. */
40
+ ttlSeconds: number;
41
+ }
42
+ export declare class SandboxRegistry {
43
+ private readonly config;
44
+ private heartbeatTimer;
45
+ private readonly tcp;
46
+ constructor(config: SandboxRegistryConfig);
47
+ register(): Promise<void>;
48
+ refresh(): Promise<void>;
49
+ unregister(): Promise<void>;
50
+ startHeartbeat(intervalMs: number): void;
51
+ stopHeartbeat(): void;
52
+ /**
53
+ * Atomic two-key write. Both keys must succeed together — partial state
54
+ * would let gateways resolve `agent:X:server` to a stale `server:Y:url`
55
+ * value or miss a routing entry whose other half was just renewed. REST uses
56
+ * the Upstash pipeline endpoint; TCP pipelines both commands on one socket.
57
+ */
58
+ private writeKeys;
59
+ private get;
60
+ private command;
61
+ private pipeline;
62
+ /**
63
+ * Execute one or more commands over a native RESP/TCP connection and return
64
+ * the per-command replies (AUTH/SELECT preamble replies are stripped). One
65
+ * short-lived connection per call keeps the lifecycle trivial — the registry
66
+ * only writes twice per heartbeat, so connection churn is negligible.
67
+ */
68
+ private tcpExec;
69
+ }
70
+ /**
71
+ * Reads the SANDBOX_REGISTRY_* and SANDBOX_* env vars and returns a fully
72
+ * wired `SandboxRegistry`, or `null` if the sandbox context is not
73
+ * configured (e.g. local dev, non-Hetzner deployment). Caller must call
74
+ * `register()` and `startHeartbeat(...)` after a successful boot. A `redis://`
75
+ * URL needs no token (auth is inline); a `http(s)://` Upstash URL requires one.
76
+ */
77
+ export declare function buildSandboxRegistryFromEnv(env?: NodeJS.ProcessEnv, ttlSeconds?: number): SandboxRegistry | null;
78
+ //# sourceMappingURL=sandbox-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox-registry.d.ts","sourceRoot":"","sources":["../../../../../src/services/sandbox-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAiBH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,6IAA6I;IAC7I,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,eAAe;IAId,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;gBAED,MAAM,EAAE,qBAAqB;IAIpD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAOzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBjC,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAmBxC,aAAa,IAAI,IAAI;IAOrB;;;;;OAKG;YACW,SAAS;YAST,GAAG;YAKH,OAAO;YAuBP,QAAQ;IA0BtB;;;;;OAKG;YACW,OAAO;CA6DtB;AAoFD;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,UAAU,SAAK,GACd,eAAe,GAAG,IAAI,CA0BxB"}