@elizaos/app-core 2.0.0-beta.2 → 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 (1537) 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.d.ts.map +1 -1
  88. package/api/sensitive-request-routes.js +5 -5
  89. package/api/sensitive-request-store.d.ts +12 -3
  90. package/api/sensitive-request-store.d.ts.map +1 -1
  91. package/api/server-cors.d.ts.map +1 -1
  92. package/api/server-cors.js +13 -2
  93. package/api/server-first-run-helpers.d.ts +26 -0
  94. package/api/server-first-run-helpers.d.ts.map +1 -0
  95. package/api/server-first-run-helpers.js +271 -0
  96. package/api/server-security.js +1 -1
  97. package/api/server-startup.d.ts.map +1 -1
  98. package/api/server-startup.js +3 -4
  99. package/api/server-wallet-trade.js +1 -1
  100. package/api/server.d.ts +4 -4
  101. package/api/server.d.ts.map +1 -1
  102. package/api/server.js +222 -88
  103. package/api/setup-contract.d.ts +63 -0
  104. package/api/setup-contract.d.ts.map +1 -0
  105. package/api/setup-contract.js +39 -0
  106. package/api/training-benchmarks.d.ts +97 -0
  107. package/api/training-benchmarks.d.ts.map +1 -0
  108. package/api/training-benchmarks.js +307 -0
  109. package/api/workbench-compat-routes.js +2 -2
  110. package/benchmark/cerebras-autowire.d.ts +28 -0
  111. package/benchmark/cerebras-autowire.d.ts.map +1 -0
  112. package/benchmark/cerebras-autowire.js +62 -0
  113. package/benchmark/lifeops-bench-handler.d.ts +36 -0
  114. package/benchmark/lifeops-bench-handler.d.ts.map +1 -1
  115. package/benchmark/lifeops-bench-handler.js +63 -1
  116. package/benchmark/lifeops-fake-backend.d.ts +39 -0
  117. package/benchmark/lifeops-fake-backend.d.ts.map +1 -1
  118. package/benchmark/lifeops-fake-backend.js +993 -21
  119. package/benchmark/mock-plugin.d.ts.map +1 -1
  120. package/benchmark/mock-plugin.js +0 -24
  121. package/benchmark/plugin.d.ts +2 -1
  122. package/benchmark/plugin.d.ts.map +1 -1
  123. package/benchmark/plugin.js +989 -68
  124. package/benchmark/replay-capture.d.ts +2 -2
  125. package/benchmark/replay-capture.d.ts.map +1 -1
  126. package/benchmark/replay-capture.js +3 -3
  127. package/benchmark/server-utils.d.ts +162 -9
  128. package/benchmark/server-utils.d.ts.map +1 -1
  129. package/benchmark/server-utils.js +625 -62
  130. package/benchmark/server.d.ts.map +1 -1
  131. package/benchmark/server.js +1962 -118
  132. package/boot-profile.d.ts +3 -0
  133. package/boot-profile.d.ts.map +1 -0
  134. package/boot-profile.js +30 -0
  135. package/browser.d.ts +23 -1
  136. package/browser.d.ts.map +1 -1
  137. package/browser.js +20 -1
  138. package/cli/argv.js +1 -1
  139. package/cli/banner.js +1 -1
  140. package/cli/command-format.js +2 -2
  141. package/cli/doctor/checks.d.ts.map +1 -1
  142. package/cli/doctor/checks.js +6 -6
  143. package/cli/plugins-cli.d.ts.map +1 -1
  144. package/cli/plugins-cli.js +77 -32
  145. package/cli/profile.d.ts.map +1 -1
  146. package/cli/profile.js +5 -4
  147. package/cli/program/build-program.js +4 -4
  148. package/cli/program/command-registry.d.ts.map +1 -1
  149. package/cli/program/command-registry.js +13 -11
  150. package/cli/program/help.js +5 -5
  151. package/cli/program/preaction.js +5 -5
  152. package/cli/program/register.auth.d.ts.map +1 -1
  153. package/cli/program/register.auth.js +6 -12
  154. package/cli/program/register.capability-router.d.ts +29 -0
  155. package/cli/program/register.capability-router.d.ts.map +1 -0
  156. package/cli/program/register.capability-router.js +568 -0
  157. package/cli/program/register.config.js +1 -1
  158. package/cli/program/register.configure.d.ts.map +1 -1
  159. package/cli/program/register.configure.js +1 -1
  160. package/cli/program/register.dashboard.d.ts.map +1 -1
  161. package/cli/program/register.dashboard.js +6 -7
  162. package/cli/program/register.db.d.ts.map +1 -1
  163. package/cli/program/register.db.js +3 -4
  164. package/cli/program/register.doctor.js +7 -7
  165. package/cli/program/register.setup.d.ts.map +1 -1
  166. package/cli/program/register.setup.js +14 -10
  167. package/cli/program/register.start.d.ts.map +1 -1
  168. package/cli/program/register.start.js +5 -3
  169. package/cli/program/register.subclis.js +3 -3
  170. package/cli/program/register.update.d.ts +6 -0
  171. package/cli/program/register.update.d.ts.map +1 -1
  172. package/cli/program/register.update.js +58 -6
  173. package/cli/program.js +1 -1
  174. package/cli/run-main.js +4 -4
  175. package/config/app-config.d.ts +2 -0
  176. package/config/app-config.d.ts.map +1 -0
  177. package/config/app-config.js +1 -0
  178. package/connectors/capacitor-jsc.d.ts.map +1 -1
  179. package/connectors/capacitor-jsc.js +16 -10
  180. package/connectors/capacitor-quickjs.d.ts.map +1 -1
  181. package/connectors/capacitor-quickjs.js +18 -13
  182. package/connectors/capacitor-sqlite.d.ts.map +1 -1
  183. package/connectors/capacitor-sqlite.js +27 -12
  184. package/dispatch/approval-queue.d.ts +37 -0
  185. package/dispatch/approval-queue.d.ts.map +1 -0
  186. package/dispatch/approval-queue.js +25 -0
  187. package/dispatch/channel-registry.d.ts +30 -0
  188. package/dispatch/channel-registry.d.ts.map +1 -0
  189. package/dispatch/channel-registry.js +22 -0
  190. package/dispatch/connector-registry.d.ts +39 -0
  191. package/dispatch/connector-registry.d.ts.map +1 -0
  192. package/dispatch/connector-registry.js +24 -0
  193. package/dispatch/index.d.ts +14 -0
  194. package/dispatch/index.d.ts.map +1 -0
  195. package/dispatch/index.js +13 -0
  196. package/dispatch/send-policy.d.ts +36 -0
  197. package/dispatch/send-policy.d.ts.map +1 -0
  198. package/dispatch/send-policy.js +16 -0
  199. package/entry.js +28 -11
  200. package/first-run/first-run-config.d.ts +55 -0
  201. package/first-run/first-run-config.d.ts.map +1 -0
  202. package/first-run/first-run-config.js +178 -0
  203. package/first-run/runtime-target.d.ts +4 -0
  204. package/first-run/runtime-target.d.ts.map +1 -0
  205. package/first-run/runtime-target.js +13 -0
  206. package/index.d.ts +16 -3
  207. package/index.d.ts.map +1 -1
  208. package/index.js +57 -33
  209. package/package.json +159 -50
  210. package/packaging/debian/apt-repo-config/README.md +18 -0
  211. package/packaging/debian/apt-repo-config/conf/distributions +11 -0
  212. package/packaging/flatpak/README.md +26 -16
  213. package/packaging/flatpak/ai.elizaos.App.metainfo.xml +17 -12
  214. package/packaging/flatpak/ai.elizaos.App.store.yml +5 -5
  215. package/packaging/flatpak/ai.elizaos.App.yml +10 -24
  216. package/packaging/flatpak/elizaos-app-wrapper.store.sh +2 -2
  217. package/packaging/flatpak/generate-sources.sh +74 -0
  218. package/packaging/flatpak/node-sources.json +7930 -0
  219. package/packaging/inno/build-inno.ps1 +34 -9
  220. package/packaging/msix/AppxManifest.store.xml +1 -1
  221. package/packaging/msix/README.md +39 -19
  222. package/packaging/msix/build-msix.ps1 +44 -14
  223. package/packaging/snap/snapcraft.yaml +22 -21
  224. package/packaging/test-packaging.sh +2 -2
  225. package/permissions/types.d.ts +1 -1
  226. package/permissions/types.js +1 -1
  227. package/platform/elizaos-agent-browser-stub.d.ts +144 -0
  228. package/platform/elizaos-agent-browser-stub.d.ts.map +1 -0
  229. package/platform/elizaos-agent-browser-stub.js +158 -0
  230. package/platform/elizaos-plugin-elizacloud-browser-stub.d.ts +34 -0
  231. package/platform/elizaos-plugin-elizacloud-browser-stub.d.ts.map +1 -0
  232. package/platform/elizaos-plugin-elizacloud-browser-stub.js +51 -0
  233. package/platform/empty-node-module.d.ts +148 -0
  234. package/platform/empty-node-module.d.ts.map +1 -1
  235. package/platform/empty-node-module.js +140 -3
  236. package/platform/ios-runtime-backends.d.ts +83 -0
  237. package/platform/ios-runtime-backends.d.ts.map +1 -0
  238. package/platform/ios-runtime-backends.js +133 -0
  239. package/platform/ios-runtime-bridge.d.ts +15 -0
  240. package/platform/ios-runtime-bridge.d.ts.map +1 -0
  241. package/platform/ios-runtime-bridge.js +527 -0
  242. package/platform/native-library-policy.d.ts +23 -0
  243. package/platform/native-library-policy.d.ts.map +1 -0
  244. package/platform/native-library-policy.js +112 -0
  245. package/platform/native-plugin-entrypoints.d.ts +19 -0
  246. package/platform/native-plugin-entrypoints.d.ts.map +1 -0
  247. package/platform/native-plugin-entrypoints.js +29 -0
  248. package/platforms/android/README.md +68 -10
  249. package/platforms/android/app/build.gradle +268 -3
  250. package/platforms/android/app/capacitor.build.gradle +18 -1
  251. package/platforms/android/app/proguard-rules.pro +17 -2
  252. package/platforms/android/app/src/androidTest/java/ai/elizaos/app/ElizaOsInstrumentedTest.java +1 -1
  253. package/platforms/android/app/src/main/AndroidManifest.xml +335 -18
  254. package/platforms/android/app/src/main/assets/runners/eliza-tasks.js +177 -0
  255. package/platforms/android/app/src/main/elizavoice-jni/CMakeLists.txt +100 -0
  256. package/platforms/android/app/src/main/elizavoice-jni/elizavoice-jni.cpp +1485 -0
  257. package/platforms/android/app/src/main/java/ai/elizaos/app/AgentPlugin.java +111 -171
  258. package/platforms/android/app/src/main/java/ai/elizaos/app/AndroidVirtualizationBridge.java +284 -0
  259. package/platforms/android/app/src/main/java/ai/elizaos/app/BatteryOptimizationPlugin.java +95 -0
  260. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaAccessibilityService.java +55 -0
  261. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaAgentService.java +1255 -141
  262. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaAndroidSystemBridge.java +83 -0
  263. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaAssistActivity.java +50 -1
  264. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaBionicInferenceServer.java +400 -0
  265. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaBootReceiver.java +90 -8
  266. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaBrowserActivity.java +2 -2
  267. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaCalendarActivity.java +1 -1
  268. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaCameraActivity.java +1 -1
  269. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaClockActivity.java +2 -2
  270. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaContactsActivity.java +1 -1
  271. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaDialActivity.java +1 -1
  272. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaInCallService.java +1 -1
  273. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaMmsReceiver.java +1 -1
  274. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaNativeBridge.java +22 -0
  275. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaNotificationListenerService.java +45 -0
  276. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaQuickActionsWidgetProvider.java +68 -0
  277. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaShareActivity.java +132 -0
  278. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaSmsComposeActivity.java +1 -1
  279. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaSmsGatewayService.java +268 -0
  280. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaSmsReceiver.java +12 -1
  281. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaTasksWorker.java +194 -0
  282. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaVoiceCaptureService.java +198 -0
  283. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaVoiceNative.java +220 -0
  284. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaVoicePlugin.java +498 -0
  285. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaVoiceTileService.java +39 -0
  286. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaWorkScheduler.java +60 -0
  287. package/platforms/android/app/src/main/java/ai/elizaos/app/GatewayConnectionService.java +53 -19
  288. package/platforms/android/app/src/main/java/ai/elizaos/app/MainActivity.java +160 -33
  289. package/platforms/android/app/src/main/java/ai/elizaos/app/ResourceProbePlugin.java +169 -0
  290. package/platforms/android/app/src/main/java/ai/elizaos/app/VoiceCapturePlugin.java +119 -0
  291. package/platforms/android/app/src/main/res/drawable/eliza_widget_background.xml +10 -0
  292. package/platforms/android/app/src/main/res/drawable/eliza_widget_button_background.xml +13 -0
  293. package/platforms/android/app/src/main/res/drawable/splash.png +0 -0
  294. package/platforms/android/app/src/main/res/drawable-land-hdpi/splash.png +0 -0
  295. package/platforms/android/app/src/main/res/drawable-land-mdpi/splash.png +0 -0
  296. package/platforms/android/app/src/main/res/drawable-land-xhdpi/splash.png +0 -0
  297. package/platforms/android/app/src/main/res/drawable-land-xxhdpi/splash.png +0 -0
  298. package/platforms/android/app/src/main/res/drawable-land-xxxhdpi/splash.png +0 -0
  299. package/platforms/android/app/src/main/res/drawable-port-hdpi/splash.png +0 -0
  300. package/platforms/android/app/src/main/res/drawable-port-mdpi/splash.png +0 -0
  301. package/platforms/android/app/src/main/res/drawable-port-xhdpi/splash.png +0 -0
  302. package/platforms/android/app/src/main/res/drawable-port-xxhdpi/splash.png +0 -0
  303. package/platforms/android/app/src/main/res/drawable-port-xxxhdpi/splash.png +0 -0
  304. package/platforms/android/app/src/main/res/layout/eliza_quick_actions_widget.xml +86 -0
  305. package/platforms/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +2 -1
  306. package/platforms/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +2 -1
  307. package/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  308. package/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png +0 -0
  309. package/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png +0 -0
  310. package/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  311. package/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  312. package/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png +0 -0
  313. package/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png +0 -0
  314. package/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  315. package/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  316. package/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png +0 -0
  317. package/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png +0 -0
  318. package/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  319. package/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  320. package/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0
  321. package/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png +0 -0
  322. package/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  323. package/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  324. package/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0
  325. package/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png +0 -0
  326. package/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  327. package/platforms/android/app/src/main/res/values/android_app_actions.xml +48 -0
  328. package/platforms/android/app/src/main/res/values/colors.xml +8 -0
  329. package/platforms/android/app/src/main/res/values/ic_launcher_background.xml +2 -2
  330. package/platforms/android/app/src/main/res/values/strings.xml +2 -2
  331. package/platforms/android/app/src/main/res/values/styles.xml +25 -1
  332. package/platforms/android/app/src/main/res/xml/eliza_accessibility_service.xml +9 -0
  333. package/platforms/android/app/src/main/res/xml/eliza_quick_actions_widget.xml +13 -0
  334. package/platforms/android/app/src/main/res/xml/shortcuts.xml +121 -0
  335. package/platforms/android/build.gradle +2 -2
  336. package/platforms/android/capacitor-cordova-android-plugins/build.gradle +9 -3
  337. package/platforms/android/capacitor-cordova-android-plugins/cordova.variables.gradle +6 -2
  338. package/platforms/android/capacitor-cordova-android-plugins/src/main/AndroidManifest.xml +7 -2
  339. package/platforms/android/capacitor-cordova-android-plugins/src/main/java/.gitkeep +0 -1
  340. package/platforms/android/capacitor.settings.gradle +66 -16
  341. package/platforms/android/gradle.properties +1 -0
  342. package/platforms/android/update-manifest/generate-manifest.mjs +97 -0
  343. package/platforms/android/update-manifest/schema.json +26 -0
  344. package/platforms/apple-store-entitlements.reviewed.json +155 -0
  345. package/platforms/electrobun/.generated/brand-config.json +3 -2
  346. package/platforms/electrobun/LICENSE +21 -0
  347. package/platforms/electrobun/README.md +15 -1
  348. package/platforms/electrobun/assets/appIcon.icns +0 -0
  349. package/platforms/electrobun/assets/appIcon.ico +0 -0
  350. package/platforms/electrobun/assets/appIcon.iconset/icon_128x128.png +0 -0
  351. package/platforms/electrobun/assets/appIcon.iconset/icon_128x128@2x.png +0 -0
  352. package/platforms/electrobun/assets/appIcon.iconset/icon_16x16.png +0 -0
  353. package/platforms/electrobun/assets/appIcon.iconset/icon_16x16@2x.png +0 -0
  354. package/platforms/electrobun/assets/appIcon.iconset/icon_256x256.png +0 -0
  355. package/platforms/electrobun/assets/appIcon.iconset/icon_256x256@2x.png +0 -0
  356. package/platforms/electrobun/assets/appIcon.iconset/icon_32x32.png +0 -0
  357. package/platforms/electrobun/assets/appIcon.iconset/icon_32x32@2x.png +0 -0
  358. package/platforms/electrobun/assets/appIcon.iconset/icon_512x512.png +0 -0
  359. package/platforms/electrobun/assets/brand-config.json +6 -6
  360. package/platforms/electrobun/biome.json +9 -9
  361. package/platforms/electrobun/docs/capability-collapse-matrix.json +318 -0
  362. package/platforms/electrobun/docs/capability-collapse-matrix.md +129 -0
  363. package/platforms/electrobun/docs/capability-routing.md +86 -0
  364. package/platforms/electrobun/docs/convergence-audit.json +3505 -0
  365. package/platforms/electrobun/docs/convergence-audit.md +694 -0
  366. package/platforms/electrobun/docs/database-boot-policy.md +90 -0
  367. package/platforms/electrobun/docs/riscv64-port.md +175 -0
  368. package/platforms/electrobun/docs/startup-first-run-cleanup.md +18 -0
  369. package/platforms/electrobun/docs/trace-first-annotations.md +52 -0
  370. package/platforms/electrobun/docs/ui-boundary-audit.json +580 -0
  371. package/platforms/electrobun/docs/ui-boundary-audit.md +257 -0
  372. package/platforms/electrobun/electrobun.config.ts +592 -364
  373. package/platforms/electrobun/entitlements/JUSTIFICATIONS.md +141 -0
  374. package/platforms/electrobun/entitlements/README.md +34 -6
  375. package/platforms/electrobun/entitlements/mas-bun.entitlements +15 -0
  376. package/platforms/electrobun/entitlements/mas.entitlements +6 -4
  377. package/platforms/electrobun/native/macos/window-effects.mm +1522 -0
  378. package/platforms/electrobun/package.json +18 -12
  379. package/platforms/electrobun/remotes/fs/README.md +70 -0
  380. package/platforms/electrobun/remotes/fs/electrobun.config.ts +38 -0
  381. package/platforms/electrobun/remotes/fs/package.json +12 -0
  382. package/platforms/electrobun/remotes/fs/plugin.json +25 -0
  383. package/platforms/electrobun/remotes/fs/src/bun/errors.ts +57 -0
  384. package/platforms/electrobun/remotes/fs/src/bun/file-limits.ts +50 -0
  385. package/platforms/electrobun/remotes/fs/src/bun/fs-service.ts +389 -0
  386. package/platforms/electrobun/remotes/fs/src/bun/path-guard.ts +270 -0
  387. package/platforms/electrobun/remotes/fs/src/bun/protocol.ts +149 -0
  388. package/platforms/electrobun/remotes/fs/src/bun/worker.ts +174 -0
  389. package/platforms/electrobun/remotes/fs/src/dev/phase5-smoke.ts +171 -0
  390. package/platforms/electrobun/remotes/fs/src/web/index.html +8 -0
  391. package/platforms/electrobun/remotes/git/README.md +75 -0
  392. package/platforms/electrobun/remotes/git/electrobun.config.ts +44 -0
  393. package/platforms/electrobun/remotes/git/package.json +12 -0
  394. package/platforms/electrobun/remotes/git/plugin.json +31 -0
  395. package/platforms/electrobun/remotes/git/src/bun/errors.ts +69 -0
  396. package/platforms/electrobun/remotes/git/src/bun/git-command.ts +156 -0
  397. package/platforms/electrobun/remotes/git/src/bun/git-service.ts +446 -0
  398. package/platforms/electrobun/remotes/git/src/bun/operation-history.ts +124 -0
  399. package/platforms/electrobun/remotes/git/src/bun/protocol.ts +252 -0
  400. package/platforms/electrobun/remotes/git/src/bun/worker.ts +316 -0
  401. package/platforms/electrobun/remotes/git/src/dev/phase7-smoke.ts +141 -0
  402. package/platforms/electrobun/remotes/git/src/web/index.html +8 -0
  403. package/platforms/electrobun/remotes/local-model/README.md +138 -0
  404. package/platforms/electrobun/remotes/local-model/electrobun.config.ts +46 -0
  405. package/platforms/electrobun/remotes/local-model/package.json +12 -0
  406. package/platforms/electrobun/remotes/local-model/plugin.json +33 -0
  407. package/platforms/electrobun/remotes/local-model/src/bun/download-state.ts +115 -0
  408. package/platforms/electrobun/remotes/local-model/src/bun/eliza1-catalog.ts +405 -0
  409. package/platforms/electrobun/remotes/local-model/src/bun/errors.ts +74 -0
  410. package/platforms/electrobun/remotes/local-model/src/bun/hf-eliza1-client.ts +169 -0
  411. package/platforms/electrobun/remotes/local-model/src/bun/local-inference-api-client.ts +245 -0
  412. package/platforms/electrobun/remotes/local-model/src/bun/model-service.ts +490 -0
  413. package/platforms/electrobun/remotes/local-model/src/bun/protocol.ts +301 -0
  414. package/platforms/electrobun/remotes/local-model/src/bun/worker.ts +248 -0
  415. package/platforms/electrobun/remotes/local-model/src/dev/phase8-smoke.ts +116 -0
  416. package/platforms/electrobun/remotes/local-model/src/web/index.html +13 -0
  417. package/platforms/electrobun/remotes/pty/README.md +65 -0
  418. package/platforms/electrobun/remotes/pty/electrobun.config.ts +47 -0
  419. package/platforms/electrobun/remotes/pty/package.json +12 -0
  420. package/platforms/electrobun/remotes/pty/plugin.json +34 -0
  421. package/platforms/electrobun/remotes/pty/src/bun/errors.ts +57 -0
  422. package/platforms/electrobun/remotes/pty/src/bun/output-buffer.ts +127 -0
  423. package/platforms/electrobun/remotes/pty/src/bun/protocol.ts +192 -0
  424. package/platforms/electrobun/remotes/pty/src/bun/pty-service.ts +562 -0
  425. package/platforms/electrobun/remotes/pty/src/bun/worker.ts +218 -0
  426. package/platforms/electrobun/remotes/pty/src/dev/phase6-smoke.ts +127 -0
  427. package/platforms/electrobun/remotes/pty/src/web/index.html +8 -0
  428. package/platforms/electrobun/remotes/runtime/README.md +370 -0
  429. package/platforms/electrobun/remotes/runtime/electrobun.config.ts +48 -0
  430. package/platforms/electrobun/remotes/runtime/package.json +14 -0
  431. package/platforms/electrobun/remotes/runtime/plugin.json +30 -0
  432. package/platforms/electrobun/remotes/runtime/src/bun/api-client.ts +620 -0
  433. package/platforms/electrobun/remotes/runtime/src/bun/errors.ts +45 -0
  434. package/platforms/electrobun/remotes/runtime/src/bun/log-buffer.ts +33 -0
  435. package/platforms/electrobun/remotes/runtime/src/bun/protocol.ts +366 -0
  436. package/platforms/electrobun/remotes/runtime/src/bun/route-discovery.ts +419 -0
  437. package/platforms/electrobun/remotes/runtime/src/bun/runtime-manager.ts +423 -0
  438. package/platforms/electrobun/remotes/runtime/src/bun/sse-parser.ts +99 -0
  439. package/platforms/electrobun/remotes/runtime/src/bun/stream-manager.ts +887 -0
  440. package/platforms/electrobun/remotes/runtime/src/bun/worker.ts +1231 -0
  441. package/platforms/electrobun/remotes/runtime/src/dev/phase1-smoke.ts +34 -0
  442. package/platforms/electrobun/remotes/runtime/src/dev/phase2-smoke.ts +86 -0
  443. package/platforms/electrobun/remotes/runtime/src/dev/phase3-smoke.ts +141 -0
  444. package/platforms/electrobun/remotes/runtime/src/web/index.css +187 -0
  445. package/platforms/electrobun/remotes/runtime/src/web/index.html +76 -0
  446. package/platforms/electrobun/remotes/runtime/src/web/index.ts +192 -0
  447. package/platforms/electrobun/remotes/surface/README.md +201 -0
  448. package/platforms/electrobun/remotes/surface/electrobun.config.ts +38 -0
  449. package/platforms/electrobun/remotes/surface/package.json +12 -0
  450. package/platforms/electrobun/remotes/surface/plugin.json +28 -0
  451. package/platforms/electrobun/remotes/surface/src/bun/worker.ts +132 -0
  452. package/platforms/electrobun/remotes/surface/src/dev/phase4-smoke.ts +566 -0
  453. package/platforms/electrobun/remotes/surface/src/protocol/event-types.ts +84 -0
  454. package/platforms/electrobun/remotes/surface/src/protocol/runtime-client.ts +673 -0
  455. package/platforms/electrobun/remotes/surface/src/web/app.ts +595 -0
  456. package/platforms/electrobun/remotes/surface/src/web/index.css +460 -0
  457. package/platforms/electrobun/remotes/surface/src/web/index.html +466 -0
  458. package/platforms/electrobun/remotes/surface/src/web/index.ts +5 -0
  459. package/platforms/electrobun/remotes/surface/src/web/render.ts +455 -0
  460. package/platforms/electrobun/remotes/surface/src/web/state.ts +427 -0
  461. package/platforms/electrobun/scripts/build-macos-effects.sh +4 -0
  462. package/platforms/electrobun/scripts/ensure-build-folder.ts +28 -0
  463. package/platforms/electrobun/scripts/ensure-whisper-gguf.sh +55 -0
  464. package/platforms/electrobun/scripts/ensure-whisper-model.sh +22 -80
  465. package/platforms/electrobun/scripts/generate-convergence-audit.ts +1203 -0
  466. package/platforms/electrobun/scripts/local-adhoc-sign-macos.ts +159 -159
  467. package/platforms/electrobun/scripts/postwrap-diagnostics.ts +424 -339
  468. package/platforms/electrobun/scripts/postwrap-sign-runtime-macos.ts +302 -271
  469. package/platforms/electrobun/scripts/smoke-test-windows.ps1 +17 -16
  470. package/platforms/electrobun/scripts/smoke-test.sh +5 -7
  471. package/platforms/electrobun/scripts/sync-web-assets.mjs +13 -13
  472. package/platforms/electrobun/scripts/verify-rpc-handlers.ts +109 -110
  473. package/platforms/electrobun/scripts/verify-windows-installer-proof.ps1 +3 -8
  474. package/platforms/electrobun/src/__stubs__/bun-ffi.ts +31 -31
  475. package/platforms/electrobun/src/__stubs__/electrobun-bun.ts +1 -1
  476. package/platforms/electrobun/src/agent-ready-state.ts +8 -8
  477. package/platforms/electrobun/src/agent-reset-from-main.test.ts +162 -0
  478. package/platforms/electrobun/src/agent-reset-from-main.ts +62 -62
  479. package/platforms/electrobun/src/agent-status-rpc.test.ts +95 -0
  480. package/platforms/electrobun/src/agent-status-rpc.ts +156 -0
  481. package/platforms/electrobun/src/api-base.test.ts +247 -0
  482. package/platforms/electrobun/src/api-base.ts +202 -93
  483. package/platforms/electrobun/src/application-menu-action-registry.ts +9 -9
  484. package/platforms/electrobun/src/application-menu.ts +348 -348
  485. package/platforms/electrobun/src/background-notice.ts +36 -36
  486. package/platforms/electrobun/src/boot-progress.test.ts +188 -0
  487. package/platforms/electrobun/src/boot-progress.ts +111 -0
  488. package/platforms/electrobun/src/brand-config.test.ts +39 -0
  489. package/platforms/electrobun/src/brand-config.ts +141 -129
  490. package/platforms/electrobun/src/bridge/browser-tabs-renderer-registry.ts +28 -28
  491. package/platforms/electrobun/src/bridge/electrobun-boot-config.ts +42 -0
  492. package/platforms/electrobun/src/bridge/electrobun-crypto-ready.ts +120 -0
  493. package/platforms/electrobun/src/bridge/electrobun-direct-rpc.ts +342 -357
  494. package/platforms/electrobun/src/bridge/electrobun-stub.ts +13 -13
  495. package/platforms/electrobun/src/browser-workspace-bridge-server.ts +285 -243
  496. package/platforms/electrobun/src/cloud-auth-window.ts +136 -136
  497. package/platforms/electrobun/src/cloud-disconnect-from-main.ts +90 -90
  498. package/platforms/electrobun/src/config-and-auth-rpc.test.ts +256 -0
  499. package/platforms/electrobun/src/config-and-auth-rpc.ts +302 -0
  500. package/platforms/electrobun/src/conversations-and-character-rpc.test.ts +185 -0
  501. package/platforms/electrobun/src/conversations-and-character-rpc.ts +131 -0
  502. package/platforms/electrobun/src/dashboard-rpc.test.ts +200 -0
  503. package/platforms/electrobun/src/dashboard-rpc.ts +344 -0
  504. package/platforms/electrobun/src/database/database-lock.ts +141 -0
  505. package/platforms/electrobun/src/database/database-mode.ts +149 -0
  506. package/platforms/electrobun/src/database/database-recovery.ts +72 -0
  507. package/platforms/electrobun/src/database/database-snapshot.ts +190 -0
  508. package/platforms/electrobun/src/database/database.test.ts +196 -0
  509. package/platforms/electrobun/src/database/index.ts +5 -0
  510. package/platforms/electrobun/src/database/pglite-paths.ts +100 -0
  511. package/platforms/electrobun/src/desktop-deep-link-events.test.ts +30 -0
  512. package/platforms/electrobun/src/desktop-deep-link-events.ts +17 -0
  513. package/platforms/electrobun/src/desktop-http-request.test.ts +73 -73
  514. package/platforms/electrobun/src/desktop-http-request.ts +85 -85
  515. package/platforms/electrobun/src/desktop-pill-config.test.ts +27 -0
  516. package/platforms/electrobun/src/desktop-pill-config.ts +40 -0
  517. package/platforms/electrobun/src/desktop-test-bridge-server.ts +204 -204
  518. package/platforms/electrobun/src/desktop-tray-config.test.ts +87 -0
  519. package/platforms/electrobun/src/desktop-tray-config.ts +84 -0
  520. package/platforms/electrobun/src/devtools-layout.ts +41 -41
  521. package/platforms/electrobun/src/diagnostic-format.test.ts +71 -0
  522. package/platforms/electrobun/src/diagnostic-format.ts +75 -36
  523. package/platforms/electrobun/src/dynamic-view-rpc-schema.test.ts +37 -0
  524. package/platforms/electrobun/src/dynamic-views/README.md +44 -0
  525. package/platforms/electrobun/src/dynamic-views/demo/agent-run-trace.html +135 -0
  526. package/platforms/electrobun/src/dynamic-views/errors.ts +29 -0
  527. package/platforms/electrobun/src/dynamic-views/host.test.ts +353 -0
  528. package/platforms/electrobun/src/dynamic-views/host.ts +332 -0
  529. package/platforms/electrobun/src/dynamic-views/index.ts +57 -0
  530. package/platforms/electrobun/src/dynamic-views/kiosk-canvas.ts +89 -0
  531. package/platforms/electrobun/src/dynamic-views/registry.test.ts +139 -0
  532. package/platforms/electrobun/src/dynamic-views/registry.ts +196 -0
  533. package/platforms/electrobun/src/dynamic-views/session-manager.test.ts +355 -0
  534. package/platforms/electrobun/src/dynamic-views/session-manager.ts +348 -0
  535. package/platforms/electrobun/src/dynamic-views/types.ts +105 -0
  536. package/platforms/electrobun/src/electrobun-boot-config.test.ts +50 -0
  537. package/platforms/electrobun/src/electrobun-config.test.ts +62 -0
  538. package/platforms/electrobun/src/electrobun-crypto-ready.test.ts +65 -0
  539. package/platforms/electrobun/src/electrobun-window-options.ts +25 -0
  540. package/platforms/electrobun/src/extension-rpc.test.ts +88 -0
  541. package/platforms/electrobun/src/extension-rpc.ts +102 -0
  542. package/platforms/electrobun/src/fatal-shutdown.test.ts +10 -10
  543. package/platforms/electrobun/src/fatal-shutdown.ts +1 -1
  544. package/platforms/electrobun/src/first-party-remotes.test.ts +169 -0
  545. package/platforms/electrobun/src/first-party-remotes.ts +297 -0
  546. package/platforms/electrobun/src/first-run-rpc.test.ts +192 -0
  547. package/platforms/electrobun/src/first-run-rpc.ts +146 -0
  548. package/platforms/electrobun/src/floating-chat-window.ts +181 -181
  549. package/platforms/electrobun/src/inbox-rpc.test.ts +123 -0
  550. package/platforms/electrobun/src/inbox-rpc.ts +158 -0
  551. package/platforms/electrobun/src/index.ts +2555 -2096
  552. package/platforms/electrobun/src/kiosk-mode.ts +50 -0
  553. package/platforms/electrobun/src/launch/index.ts +4 -0
  554. package/platforms/electrobun/src/launch/launch-dynamic-view.ts +37 -0
  555. package/platforms/electrobun/src/launch/launch-orchestrator.test.ts +224 -0
  556. package/platforms/electrobun/src/launch/launch-orchestrator.ts +456 -0
  557. package/platforms/electrobun/src/launch/launch-store.test.ts +97 -0
  558. package/platforms/electrobun/src/launch/launch-store.ts +134 -0
  559. package/platforms/electrobun/src/launch/types.ts +103 -0
  560. package/platforms/electrobun/src/launch/views/launch-diagnostics.html +205 -0
  561. package/platforms/electrobun/src/lifecycle/agent-ready-publish.test.ts +50 -0
  562. package/platforms/electrobun/src/lifecycle/agent-ready-publish.ts +27 -0
  563. package/platforms/electrobun/src/lifecycle/api-base-owner.ts +42 -31
  564. package/platforms/electrobun/src/lifecycle/desktop-session-prime.ts +44 -44
  565. package/platforms/electrobun/src/logger.ts +14 -14
  566. package/platforms/electrobun/src/main-window-runtime.ts +83 -83
  567. package/platforms/electrobun/src/main-window-session.test.ts +109 -0
  568. package/platforms/electrobun/src/main-window-session.ts +87 -51
  569. package/platforms/electrobun/src/menu-reset-from-main.ts +158 -158
  570. package/platforms/electrobun/src/native/agent-env.test.ts +52 -0
  571. package/platforms/electrobun/src/native/agent-runtime-layout.test.ts +42 -0
  572. package/platforms/electrobun/src/native/agent-state-dir.test.ts +91 -0
  573. package/platforms/electrobun/src/native/agent.ts +2122 -1682
  574. package/platforms/electrobun/src/native/auth-bridge.test.ts +67 -0
  575. package/platforms/electrobun/src/native/auth-bridge.ts +464 -360
  576. package/platforms/electrobun/src/native/browser-workspace.ts +723 -471
  577. package/platforms/electrobun/src/native/camera.ts +50 -50
  578. package/platforms/electrobun/src/native/canvas.ts +444 -445
  579. package/platforms/electrobun/src/native/credentials.ts +673 -616
  580. package/platforms/electrobun/src/native/desktop-window.test.ts +300 -0
  581. package/platforms/electrobun/src/native/desktop.ts +2196 -2156
  582. package/platforms/electrobun/src/native/editor-bridge.ts +201 -201
  583. package/platforms/electrobun/src/native/file-watcher.ts +154 -154
  584. package/platforms/electrobun/src/native/gateway.ts +179 -180
  585. package/platforms/electrobun/src/native/gpu-window.ts +256 -256
  586. package/platforms/electrobun/src/native/index.ts +76 -74
  587. package/platforms/electrobun/src/native/location.test.ts +44 -0
  588. package/platforms/electrobun/src/native/location.ts +90 -80
  589. package/platforms/electrobun/src/native/loopback-port.ts +60 -60
  590. package/platforms/electrobun/src/native/mac-window-effects.ts +166 -104
  591. package/platforms/electrobun/src/native/music-player.ts +38 -38
  592. package/platforms/electrobun/src/native/permissions-shared.ts +249 -150
  593. package/platforms/electrobun/src/native/permissions.ts +301 -208
  594. package/platforms/electrobun/src/native/power-state.ts +129 -129
  595. package/platforms/electrobun/src/native/remote-plugin-host.test.ts +1394 -0
  596. package/platforms/electrobun/src/native/remote-plugin-host.ts +1531 -0
  597. package/platforms/electrobun/src/native/screencapture.ts +667 -573
  598. package/platforms/electrobun/src/native/steward.ts +207 -204
  599. package/platforms/electrobun/src/native/swabble.ts +68 -324
  600. package/platforms/electrobun/src/native/talkmode.ts +253 -422
  601. package/platforms/electrobun/src/native/webgpu-browser-support.test.ts +18 -0
  602. package/platforms/electrobun/src/native/webgpu-browser-support.ts +165 -147
  603. package/platforms/electrobun/src/native/whisper-env.test.ts +71 -0
  604. package/platforms/electrobun/src/native/whisper-env.ts +68 -0
  605. package/platforms/electrobun/src/native-onboarding.ts +270 -0
  606. package/platforms/electrobun/src/onboarding-overlay-window.ts +141 -0
  607. package/platforms/electrobun/src/persisted-deployment.ts +91 -0
  608. package/platforms/electrobun/src/pill-window.test.ts +91 -0
  609. package/platforms/electrobun/src/pill-window.ts +99 -0
  610. package/platforms/electrobun/src/preload-validation.ts +44 -44
  611. package/platforms/electrobun/src/preload.js +1 -1
  612. package/platforms/electrobun/src/print-electrobun-dev-settings-banner.ts +120 -120
  613. package/platforms/electrobun/src/renderer-api-proxy.test.ts +73 -0
  614. package/platforms/electrobun/src/renderer-api-proxy.ts +86 -0
  615. package/platforms/electrobun/src/renderer-static.test.ts +53 -0
  616. package/platforms/electrobun/src/renderer-static.ts +144 -57
  617. package/platforms/electrobun/src/rpc-handler-slices.ts +121 -0
  618. package/platforms/electrobun/src/rpc-handlers.test.ts +267 -0
  619. package/platforms/electrobun/src/rpc-handlers.ts +1306 -913
  620. package/platforms/electrobun/src/rpc-parse-utils.ts +57 -0
  621. package/platforms/electrobun/src/rpc-port-resolver.test.ts +45 -0
  622. package/platforms/electrobun/src/rpc-port-resolver.ts +31 -0
  623. package/platforms/electrobun/src/rpc-schema.ts +2556 -1619
  624. package/platforms/electrobun/src/runtime-layout.ts +105 -105
  625. package/platforms/electrobun/src/runtime-permissions.ts +95 -95
  626. package/platforms/electrobun/src/runtime-rpc.test.ts +126 -0
  627. package/platforms/electrobun/src/runtime-rpc.ts +237 -0
  628. package/platforms/electrobun/src/screenshot-dev-server.ts +87 -87
  629. package/platforms/electrobun/src/settings-mutations-rpc.test.ts +193 -0
  630. package/platforms/electrobun/src/settings-mutations-rpc.ts +220 -0
  631. package/platforms/electrobun/src/startup-trace.ts +274 -270
  632. package/platforms/electrobun/src/subscription-rpc.test.ts +89 -0
  633. package/platforms/electrobun/src/subscription-rpc.ts +192 -0
  634. package/platforms/electrobun/src/surface-windows.test.ts +355 -0
  635. package/platforms/electrobun/src/surface-windows.ts +410 -410
  636. package/platforms/electrobun/src/trace/README.md +73 -0
  637. package/platforms/electrobun/src/trace/errors.ts +21 -0
  638. package/platforms/electrobun/src/trace/index.ts +40 -0
  639. package/platforms/electrobun/src/trace/trace-dynamic-view.ts +40 -0
  640. package/platforms/electrobun/src/trace/trace-host-requests.ts +473 -0
  641. package/platforms/electrobun/src/trace/trace-service.test.ts +186 -0
  642. package/platforms/electrobun/src/trace/trace-service.ts +324 -0
  643. package/platforms/electrobun/src/trace/trace-store.test.ts +141 -0
  644. package/platforms/electrobun/src/trace/trace-store.ts +551 -0
  645. package/platforms/electrobun/src/trace/types.ts +250 -0
  646. package/platforms/electrobun/src/trace/views/agent-run-trace.html +311 -0
  647. package/platforms/electrobun/src/types/web-speech.d.ts +28 -28
  648. package/platforms/electrobun/src/types.ts +5 -5
  649. package/platforms/electrobun/src/update-availability.test.ts +72 -0
  650. package/platforms/electrobun/src/update-availability.ts +90 -0
  651. package/platforms/electrobun/src/update-rpc.test.ts +83 -0
  652. package/platforms/electrobun/src/update-rpc.ts +123 -0
  653. package/platforms/electrobun/src/voice/README.md +184 -0
  654. package/platforms/electrobun/src/voice/errors.ts +42 -0
  655. package/platforms/electrobun/src/voice/index.ts +78 -0
  656. package/platforms/electrobun/src/voice/types.ts +316 -0
  657. package/platforms/electrobun/src/voice/voice-host-requests.ts +259 -0
  658. package/platforms/electrobun/src/voice/voice-latency-budget.test.ts +66 -0
  659. package/platforms/electrobun/src/voice/voice-latency-budget.ts +243 -0
  660. package/platforms/electrobun/src/voice/voice-live-validation.test.ts +352 -0
  661. package/platforms/electrobun/src/voice/voice-live-validation.ts +838 -0
  662. package/platforms/electrobun/src/voice/voice-pipeline.ts +250 -0
  663. package/platforms/electrobun/src/voice/voice-playback-adapter.ts +31 -0
  664. package/platforms/electrobun/src/voice/voice-runtime-adapter.test.ts +213 -0
  665. package/platforms/electrobun/src/voice/voice-runtime-adapter.ts +686 -0
  666. package/platforms/electrobun/src/voice/voice-service.test.ts +561 -0
  667. package/platforms/electrobun/src/voice/voice-service.ts +1027 -0
  668. package/platforms/electrobun/src/voice/voice-stream-coordinator.test.ts +115 -0
  669. package/platforms/electrobun/src/voice/voice-stream-coordinator.ts +270 -0
  670. package/platforms/electrobun/src/voice/voice-trace.ts +97 -0
  671. package/platforms/electrobun/src/voice/voice-tts-chunker.test.ts +91 -0
  672. package/platforms/electrobun/src/voice/voice-tts-chunker.ts +194 -0
  673. package/platforms/electrobun/src/windows-cef-profile.ts +88 -88
  674. package/platforms/electrobun/tsconfig.json +73 -13
  675. package/platforms/electrobun/update-channels.json +22 -0
  676. package/platforms/electrobun/vitest.electrobun.config.ts +72 -42
  677. package/platforms/ios/App/App/App.entitlements +4 -0
  678. package/platforms/ios/App/App/AppDelegate.swift +80 -18
  679. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ios-marketing-1024.png +0 -0
  680. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-20x20@1x.png +0 -0
  681. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-20x20@2x.png +0 -0
  682. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-29x29@1x.png +0 -0
  683. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-29x29@2x.png +0 -0
  684. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-40x40@1x.png +0 -0
  685. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-40x40@2x.png +0 -0
  686. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-76x76@1x.png +0 -0
  687. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-76x76@2x.png +0 -0
  688. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-83_5x83_5@2x.png +0 -0
  689. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-20x20@2x.png +0 -0
  690. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-20x20@3x.png +0 -0
  691. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-29x29@2x.png +0 -0
  692. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-29x29@3x.png +0 -0
  693. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-40x40@2x.png +0 -0
  694. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-40x40@3x.png +0 -0
  695. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-60x60@2x.png +0 -0
  696. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-60x60@3x.png +0 -0
  697. package/platforms/ios/App/App/Base.lproj/LaunchScreen.storyboard +1 -4
  698. package/platforms/ios/App/App/ComputerUseBridge.swift +589 -0
  699. package/platforms/ios/App/App/DeviceActivityMonitorExtension/DeviceActivityMonitorExtension.entitlements +12 -0
  700. package/platforms/ios/App/App/DeviceActivityMonitorExtension/DeviceActivityMonitorExtension.swift +34 -0
  701. package/platforms/ios/App/App/DeviceActivityMonitorExtension/Info.plist +29 -0
  702. package/platforms/ios/App/App/DeviceActivityReportExtension/DeviceActivityReportExtension.entitlements +12 -0
  703. package/platforms/ios/App/App/DeviceActivityReportExtension/DeviceActivityReportExtension.swift +53 -0
  704. package/platforms/ios/App/App/DeviceActivityReportExtension/Info.plist +27 -0
  705. package/platforms/ios/App/App/ElizaAppIntents.swift +183 -0
  706. package/platforms/ios/App/App/ElizaIntentPlugin.swift +342 -5
  707. package/platforms/ios/App/App/Info.plist +17 -1
  708. package/platforms/ios/App/App/runners/eliza-tasks.js +177 -0
  709. package/platforms/ios/App/App.xcodeproj/project.pbxproj +262 -6
  710. package/platforms/ios/App/BroadcastExtension/SampleHandler.swift +100 -0
  711. package/platforms/ios/App/Podfile +5 -0
  712. package/platforms/ios/App/Podfile.lock +83 -59
  713. package/register-runtime-hooks.js +11 -5
  714. package/registry/app-registry.d.ts +14 -0
  715. package/registry/app-registry.d.ts.map +1 -0
  716. package/registry/app-registry.js +29 -0
  717. package/registry/entries/apps/app-polymarket.json +31 -0
  718. package/registry/entries/apps/clawville.json +27 -0
  719. package/registry/entries/apps/companion.json +28 -0
  720. package/registry/entries/apps/database-viewer.json +27 -0
  721. package/registry/entries/apps/defense-of-the-agents.json +27 -0
  722. package/registry/entries/apps/documents.json +30 -0
  723. package/registry/entries/apps/feed.json +27 -0
  724. package/registry/entries/apps/hyperliquid.json +31 -0
  725. package/registry/entries/apps/log-viewer.json +27 -0
  726. package/registry/entries/apps/memory-viewer.json +27 -0
  727. package/registry/entries/apps/model-tester.json +31 -0
  728. package/registry/entries/apps/plugin-viewer.json +27 -0
  729. package/registry/entries/apps/relationship-viewer.json +27 -0
  730. package/registry/entries/apps/runtime-debugger.json +27 -0
  731. package/registry/entries/apps/shopify.json +31 -0
  732. package/registry/entries/apps/skills-viewer.json +27 -0
  733. package/registry/entries/apps/steward.json +31 -0
  734. package/registry/entries/apps/training.json +54 -0
  735. package/registry/entries/apps/trajectory-viewer.json +27 -0
  736. package/registry/entries/apps/vincent.json +31 -0
  737. package/registry/entries/connectors/bluebubbles.json +99 -0
  738. package/registry/entries/connectors/bluesky.json +173 -0
  739. package/registry/entries/connectors/discord.json +119 -0
  740. package/registry/entries/connectors/farcaster.json +174 -0
  741. package/registry/entries/connectors/feishu.json +79 -0
  742. package/registry/entries/connectors/google-chat.json +120 -0
  743. package/registry/entries/connectors/google.json +82 -0
  744. package/registry/entries/connectors/imessage.json +96 -0
  745. package/registry/entries/connectors/instagram.json +64 -0
  746. package/registry/entries/connectors/line.json +86 -0
  747. package/registry/entries/connectors/matrix.json +94 -0
  748. package/registry/entries/connectors/mattermost.json +110 -0
  749. package/registry/entries/connectors/msteams.json +104 -0
  750. package/registry/entries/connectors/nextcloud-talk.json +104 -0
  751. package/registry/entries/connectors/nostr.json +70 -0
  752. package/registry/entries/connectors/signal.json +81 -0
  753. package/registry/entries/connectors/slack.json +102 -0
  754. package/registry/entries/connectors/telegram.json +71 -0
  755. package/registry/entries/connectors/tlon.json +94 -0
  756. package/registry/entries/connectors/twitch.json +110 -0
  757. package/registry/entries/connectors/whatsapp.json +113 -0
  758. package/registry/entries/connectors/x.json +231 -0
  759. package/registry/entries/connectors/zalo.json +112 -0
  760. package/registry/entries/connectors/zalouser.json +122 -0
  761. package/registry/entries/plugins/agent-orchestrator.json +33 -0
  762. package/registry/entries/plugins/agent-skills.json +72 -0
  763. package/registry/entries/plugins/anthropic.json +73 -0
  764. package/registry/entries/plugins/app-control.json +23 -0
  765. package/registry/entries/plugins/auto-trader.json +203 -0
  766. package/registry/entries/plugins/background-runner.json +26 -0
  767. package/registry/entries/plugins/blooio.json +102 -0
  768. package/registry/entries/plugins/browser.json +75 -0
  769. package/registry/entries/plugins/cli.json +40 -0
  770. package/registry/entries/plugins/clipboard.json +44 -0
  771. package/registry/entries/plugins/coding-tools.json +71 -0
  772. package/registry/entries/plugins/commands.json +63 -0
  773. package/registry/entries/plugins/computeruse.json +74 -0
  774. package/registry/entries/plugins/copilot-proxy.json +93 -0
  775. package/registry/entries/plugins/directives.json +63 -0
  776. package/registry/entries/plugins/edge-tts.json +97 -0
  777. package/registry/entries/plugins/elevenlabs.json +169 -0
  778. package/registry/entries/plugins/elizacloud.json +208 -0
  779. package/registry/entries/plugins/evm.json +134 -0
  780. package/registry/entries/plugins/experience.json +34 -0
  781. package/registry/entries/plugins/facewear.json +131 -0
  782. package/registry/entries/plugins/form.json +26 -0
  783. package/registry/entries/plugins/github.json +93 -0
  784. package/registry/entries/plugins/gmail-watch.json +25 -0
  785. package/registry/entries/plugins/goals.json +77 -0
  786. package/registry/entries/plugins/google-genai.json +106 -0
  787. package/registry/entries/plugins/groq.json +93 -0
  788. package/registry/entries/plugins/hedera.json +48 -0
  789. package/registry/entries/plugins/inmemorydb.json +25 -0
  790. package/registry/entries/plugins/linear.json +51 -0
  791. package/registry/entries/plugins/local-inference.json +137 -0
  792. package/registry/entries/plugins/local-storage.json +36 -0
  793. package/registry/entries/plugins/localdb.json +25 -0
  794. package/registry/entries/plugins/mcp.json +44 -0
  795. package/registry/entries/plugins/memory.json +124 -0
  796. package/registry/entries/plugins/minecraft.json +79 -0
  797. package/registry/entries/plugins/moltbook.json +83 -0
  798. package/registry/entries/plugins/music.json +155 -0
  799. package/registry/entries/plugins/mysticism.json +48 -0
  800. package/registry/entries/plugins/nearai.json +82 -0
  801. package/registry/entries/plugins/ngrok.json +69 -0
  802. package/registry/entries/plugins/ollama.json +96 -0
  803. package/registry/entries/plugins/openai.json +189 -0
  804. package/registry/entries/plugins/openrouter.json +188 -0
  805. package/registry/entries/plugins/pdf.json +26 -0
  806. package/registry/entries/plugins/plugin-manager.json +23 -0
  807. package/registry/entries/plugins/prose.json +48 -0
  808. package/registry/entries/plugins/rlm.json +26 -0
  809. package/registry/entries/plugins/roblox.json +88 -0
  810. package/registry/entries/plugins/rss.json +64 -0
  811. package/registry/entries/plugins/s3-storage.json +91 -0
  812. package/registry/entries/plugins/scheduling.json +35 -0
  813. package/registry/entries/plugins/shell.json +94 -0
  814. package/registry/entries/plugins/social-alpha.json +72 -0
  815. package/registry/entries/plugins/tailscale.json +81 -0
  816. package/registry/entries/plugins/tee.json +53 -0
  817. package/registry/entries/plugins/todos.json +26 -0
  818. package/registry/entries/plugins/trajectory-logger.json +33 -0
  819. package/registry/entries/plugins/trust.json +39 -0
  820. package/registry/entries/plugins/tts.json +71 -0
  821. package/registry/entries/plugins/tunnel.json +45 -0
  822. package/registry/entries/plugins/twilio.json +168 -0
  823. package/registry/entries/plugins/vercel-ai-gateway.json +128 -0
  824. package/registry/entries/plugins/video.json +23 -0
  825. package/registry/entries/plugins/vision.json +43 -0
  826. package/registry/entries/plugins/webhooks.json +23 -0
  827. package/registry/entries/plugins/workflow.json +25 -0
  828. package/registry/entries/plugins/xai.json +75 -0
  829. package/registry/index.d.ts +2 -1
  830. package/registry/index.d.ts.map +1 -1
  831. package/registry/index.js +46 -12
  832. package/registry/loader.d.ts +2 -1
  833. package/registry/loader.d.ts.map +1 -1
  834. package/registry/loader.js +49 -2
  835. package/registry/schema.d.ts +244 -34
  836. package/registry/schema.d.ts.map +1 -1
  837. package/registry/schema.js +36 -0
  838. package/runtime/android-avf-microdroid-bridge.d.ts +29 -0
  839. package/runtime/android-avf-microdroid-bridge.d.ts.map +1 -0
  840. package/runtime/android-avf-microdroid-bridge.js +149 -0
  841. package/runtime/api-dev-settings-banner.d.ts.map +1 -1
  842. package/runtime/api-dev-settings-banner.js +5 -13
  843. package/runtime/app-core-runtime-hooks.d.ts +21 -0
  844. package/runtime/app-core-runtime-hooks.d.ts.map +1 -0
  845. package/runtime/app-core-runtime-hooks.js +10 -0
  846. package/runtime/autonomy-policy.d.ts +2 -0
  847. package/runtime/autonomy-policy.d.ts.map +1 -0
  848. package/runtime/autonomy-policy.js +4 -0
  849. package/runtime/desktop/AppWindowRenderer.d.ts +17 -0
  850. package/runtime/desktop/AppWindowRenderer.d.ts.map +1 -0
  851. package/runtime/desktop/AppWindowRenderer.js +360 -0
  852. package/runtime/desktop/DesktopSurfaceNavigationRuntime.d.ts +2 -0
  853. package/runtime/desktop/DesktopSurfaceNavigationRuntime.d.ts.map +1 -0
  854. package/runtime/desktop/DesktopSurfaceNavigationRuntime.js +41 -0
  855. package/runtime/desktop/DesktopTrayRuntime.d.ts +2 -0
  856. package/runtime/desktop/DesktopTrayRuntime.d.ts.map +1 -0
  857. package/runtime/desktop/DesktopTrayRuntime.js +174 -0
  858. package/runtime/desktop/DetachedShellRoot.d.ts +10 -0
  859. package/runtime/desktop/DetachedShellRoot.d.ts.map +1 -0
  860. package/runtime/desktop/DetachedShellRoot.js +111 -0
  861. package/runtime/desktop/index.d.ts +6 -0
  862. package/runtime/desktop/index.d.ts.map +1 -0
  863. package/runtime/desktop/index.js +5 -0
  864. package/runtime/desktop/tray-menu.d.ts +20 -0
  865. package/runtime/desktop/tray-menu.d.ts.map +1 -0
  866. package/runtime/desktop/tray-menu.js +143 -0
  867. package/runtime/dev-server.d.ts +1 -1
  868. package/runtime/dev-server.d.ts.map +1 -1
  869. package/runtime/dev-server.js +93 -17
  870. package/runtime/eliza.d.ts +75 -1
  871. package/runtime/eliza.d.ts.map +1 -1
  872. package/runtime/eliza.js +596 -122
  873. package/runtime/ensure-text-to-speech-handler.d.ts.map +1 -1
  874. package/runtime/ensure-text-to-speech-handler.js +10 -3
  875. package/runtime/mobile-safe-runtime.d.ts +181 -2
  876. package/runtime/mobile-safe-runtime.d.ts.map +1 -1
  877. package/runtime/mobile-safe-runtime.js +1019 -12
  878. package/runtime/mode/remote-forwarder.d.ts.map +1 -1
  879. package/runtime/mode/remote-forwarder.js +2 -2
  880. package/runtime/mode/route-mode-guard.d.ts +1 -2
  881. package/runtime/mode/route-mode-guard.d.ts.map +1 -1
  882. package/runtime/mode/route-mode-guard.js +4 -5
  883. package/runtime/mode/route-mode-matrix.d.ts.map +1 -1
  884. package/runtime/mode/route-mode-matrix.js +14 -1
  885. package/runtime/mode/runtime-mode.d.ts +1 -1
  886. package/runtime/mode/runtime-mode.d.ts.map +1 -1
  887. package/runtime/mode/runtime-mode.js +15 -4
  888. package/runtime/runtime-bootstrap-policy.d.ts.map +1 -1
  889. package/runtime/runtime-bootstrap-policy.js +14 -2
  890. package/runtime/telegram-standalone-handler.d.ts.map +1 -1
  891. package/runtime/telegram-standalone-handler.js +10 -9
  892. package/runtime/tts-cache-wiring.d.ts +29 -0
  893. package/runtime/tts-cache-wiring.d.ts.map +1 -0
  894. package/runtime/tts-cache-wiring.js +114 -0
  895. package/runtime/voice-warmup.d.ts +81 -0
  896. package/runtime/voice-warmup.d.ts.map +1 -0
  897. package/runtime/voice-warmup.js +111 -0
  898. package/scripts/android-sms-gateway-template.test.mjs +1014 -0
  899. package/scripts/aosp/README.md +19 -15
  900. package/scripts/aosp/compile-libllama.mjs +1344 -248
  901. package/scripts/aosp/compile-shim.mjs +47 -18
  902. package/scripts/aosp/deploy-pixel.mjs +405 -0
  903. package/scripts/aosp/lib/load-variant-config.mjs +3 -3
  904. package/scripts/aosp/llama-cpp-patches/README.md +8 -8
  905. package/scripts/aosp/llama-cpp-patches/apply-patches.mjs +23 -6
  906. package/scripts/aosp/llama-cpp-patches/polarquant/README.md +37 -0
  907. package/scripts/aosp/llama-cpp-patches/qjl/README.md +37 -0
  908. package/scripts/aosp/seccomp-shim/sigsys-handler-arm64.c +169 -0
  909. package/scripts/aosp/seccomp-shim/sigsys-handler-riscv64.c +217 -0
  910. package/scripts/aosp/smoke-cuttlefish.mjs +34 -4
  911. package/scripts/aosp/stage-default-models.mjs +49 -18
  912. package/scripts/aosp/variant-config-schema.ts +2 -2
  913. package/scripts/assert-required-bundled-packages.test.ts +534 -0
  914. package/scripts/audit-apple-store-sandbox.mjs +146 -0
  915. package/scripts/audit-live-test-surface.mjs +5 -2
  916. package/scripts/build-capacitor-app.mjs +21 -0
  917. package/scripts/build-flatpak.mjs +5 -5
  918. package/scripts/build-helpers/arm64-simd.mjs +72 -0
  919. package/scripts/build-helpers/omnivoice-merged.mjs +87 -0
  920. package/scripts/build-helpers/verify-fused-symbols.mjs +567 -0
  921. package/scripts/build-image.sh +4 -2
  922. package/scripts/build-llama-cpp-mtp.mjs +487 -0
  923. package/scripts/build-native-plugins.mjs +230 -18
  924. package/scripts/build-patched-electrobun-cli.mjs +68 -10
  925. package/scripts/build-win.mjs +1 -1
  926. package/scripts/bun-riscv64/Dockerfile +418 -0
  927. package/scripts/bun-riscv64/README.md +316 -0
  928. package/scripts/bun-riscv64/build.sh +469 -0
  929. package/scripts/bun-riscv64/bun-patches/0001-config-add-riscv64-arch.patch +74 -0
  930. package/scripts/bun-riscv64/bun-patches/0002-flags-add-riscv64-march-mabi.patch +16 -0
  931. package/scripts/bun-riscv64/bun-patches/0003-zig-add-riscv64-target-triple-and-cpu.patch +26 -0
  932. package/scripts/bun-riscv64/bun-patches/0004-webkit-force-local-mode-on-riscv64.patch +33 -0
  933. package/scripts/bun-riscv64/bun-patches/0005-tinycc-disable-on-riscv64.patch +16 -0
  934. package/scripts/bun-riscv64/bun-patches/0006-build-add-riscv64-cli-validation.patch +15 -0
  935. package/scripts/bun-riscv64/bun-patches/0007-deps-per-dep-riscv64-checks.patch +24 -0
  936. package/scripts/bun-riscv64/bun-patches/0008-source-stabilize-riscv64-musl-build.patch +226 -0
  937. package/scripts/bun-riscv64/bun-patches/0009-disable-wasm-streaming-hooks-for-c-loop.patch +162 -0
  938. package/scripts/bun-riscv64/bun-patches/0010-disable-inspector-profiler-for-riscv64-c-loop.patch +80 -0
  939. package/scripts/bun-riscv64/bun-patches/0011-process-arch-add-riscv64.patch +23 -0
  940. package/scripts/bun-riscv64/bun-patches/0012-cpu-features-add-riscv64-fallback.patch +13 -0
  941. package/scripts/bun-riscv64/bun-patches/0013-disable-console-inspector-hooks-for-riscv64-c-loop.patch +43 -0
  942. package/scripts/bun-riscv64/bun-patches/0014-disable-custom-inspector-dispatchers-on-riscv64.patch +127 -0
  943. package/scripts/bun-riscv64/bun-patches/0015-disable-jsc-profiler-builtins-on-riscv64.patch +75 -0
  944. package/scripts/bun-riscv64/bun-patches/0016-node-vm-disable-jit-cached-data-on-riscv64-c-loop.patch +96 -0
  945. package/scripts/bun-riscv64/bun-patches/0017-disable-performance-domjit-signature-on-riscv64-c-loop.patch +34 -0
  946. package/scripts/bun-riscv64/bun-patches/0018-fix-serialized-script-identifier-big-endian-path.patch +19 -0
  947. package/scripts/bun-riscv64/bun-patches/0019-add-wtf-timer-fire-bridge-for-c-loop.patch +24 -0
  948. package/scripts/bun-riscv64/bun-patches/0020-run-riscv64-smoke-test-under-qemu.patch +13 -0
  949. package/scripts/bun-riscv64/bun-patches/0021-fix-riscv64-linux-open-flags.patch +25 -0
  950. package/scripts/bun-riscv64/bun-patches/0022-zlib-riscv64-generic-kernels.patch +25 -0
  951. package/scripts/bun-riscv64/bun-patches/README.md +127 -0
  952. package/scripts/bun-riscv64/bun-version.json +202 -0
  953. package/scripts/bun-riscv64/run-build.sh +162 -0
  954. package/scripts/bun-riscv64/rust-core/0001-riscv64-rust-core-port.patch +868 -0
  955. package/scripts/bun-riscv64/rust-core/0002-second-wave-riscv64-source-gaps.patch +130 -0
  956. package/scripts/bun-riscv64/rust-core/0003-third-wave-riscv64-crash-handler-gaps.patch +78 -0
  957. package/scripts/bun-riscv64/rust-core/0004-rust-target-cpu-riscv64.patch +39 -0
  958. package/scripts/bun-riscv64/rust-core/0005-fifth-wave-riscv64-source-gaps.patch +96 -0
  959. package/scripts/bun-riscv64/rust-core/0006-cpp-wasm-and-inspector-guards-riscv64.patch +91 -0
  960. package/scripts/bun-riscv64/rust-core/0007-bun-alloc-max-align-t-riscv64.patch +36 -0
  961. package/scripts/bun-riscv64/rust-core/0008-workspace-lints-warn-not-deny-riscv64.patch +75 -0
  962. package/scripts/bun-riscv64/rust-core/0009-zigglobalobject-wasm-streaming-guards-riscv64.patch +109 -0
  963. package/scripts/bun-riscv64/rust-core/0010-tcc-externs-stub-on-riscv64.patch +62 -0
  964. package/scripts/bun-riscv64/rust-core/0011-clippy-ptr-cast-lints-warn-riscv64.patch +61 -0
  965. package/scripts/bun-riscv64/rust-core/README.md +80 -0
  966. package/scripts/bun-riscv64/rust-core/webkit-patches/0003-disable-dfg-ftl-on-riscv64.patch +60 -0
  967. package/scripts/bun-riscv64/rust-core/webkit-patches/0004-riscv64-do-not-force-wasm-in-c-loop.patch +31 -0
  968. package/scripts/bun-riscv64/rust-core/webkit-patches/0005-domjit-effect-allow-no-dfg-c-loop.patch +40 -0
  969. package/scripts/bun-riscv64/rust-core/webkit-patches/0006-disable-usewasm-when-webassembly-compiled-out.patch +33 -0
  970. package/scripts/bun-riscv64/rust-core/webkit-patches/0007-restore-dropped-includes-and-llint-fwd-decl.patch +31 -0
  971. package/scripts/bun-riscv64/validate.sh +264 -0
  972. package/scripts/bun-riscv64/webkit-patches/0001-cherry-pick-llint-riscv64.recipe +155 -0
  973. package/scripts/bun-riscv64/webkit-patches/0002-cherry-pick-baseline-jit-riscv64.recipe +40 -0
  974. package/scripts/bun-riscv64/webkit-patches/0003-disable-dfg-ftl-on-riscv64.patch +60 -0
  975. package/scripts/bun-riscv64/webkit-patches/0004-riscv64-do-not-force-wasm-in-c-loop.patch +31 -0
  976. package/scripts/bun-riscv64/webkit-patches/0005-domjit-effect-allow-no-dfg-c-loop.patch +40 -0
  977. package/scripts/bun-riscv64/webkit-patches/0006-disable-usewasm-when-webassembly-compiled-out.patch +33 -0
  978. package/scripts/bun-riscv64/webkit-patches/0007-restore-dropped-includes-and-llint-fwd-decl.patch +72 -0
  979. package/scripts/bun-riscv64/webkit-patches/README.md +146 -0
  980. package/scripts/check-homepage-public-readiness.mjs +353 -0
  981. package/scripts/check-homepage-release-data.mjs +110 -0
  982. package/scripts/check-i18n.mjs +2 -1
  983. package/scripts/check-real-local-chat.ts +147 -0
  984. package/scripts/check-real-local-provisioning.ts +104 -0
  985. package/scripts/check-real-local-reset.ts +249 -0
  986. package/scripts/check-sms-gateway-completion-audit.mjs +428 -0
  987. package/scripts/check-sms-gateway-readiness.mjs +266 -0
  988. package/scripts/clean-repo.mjs +5 -5
  989. package/scripts/codesign-mas.mjs +222 -16
  990. package/scripts/collect-docker-runtime-deps.mjs +229 -0
  991. package/scripts/continue-sms-gateway-work.mjs +121 -0
  992. package/scripts/copy-runtime-node-modules.ts +903 -195
  993. package/scripts/deploy-cloud-api-production-gateway.mjs +52 -0
  994. package/scripts/desktop-build.mjs +655 -101
  995. package/scripts/dev-platform.mjs +346 -102
  996. package/scripts/dev-startup-smoke.mjs +248 -0
  997. package/scripts/dev-ui.mjs +418 -176
  998. package/scripts/disable-local-eliza-workspace.mjs +35 -0
  999. package/scripts/docker-ci-smoke.sh +440 -96
  1000. package/scripts/docker-entrypoint.sh +62 -1
  1001. package/scripts/docker-entrypoint.test.ts +283 -0
  1002. package/scripts/ensure-avatars.mjs +2 -2
  1003. package/scripts/ensure-electrobun-core.mjs +1 -1
  1004. package/scripts/ensure-generated-core-proto-js.mjs +1 -1
  1005. package/scripts/ensure-type-package-aliases.mjs +62 -5
  1006. package/scripts/ensure-vision-deps.mjs +20 -1
  1007. package/scripts/entry.ts +1 -1
  1008. package/scripts/ffi-stub/Makefile +64 -0
  1009. package/scripts/ffi-stub/README.md +391 -0
  1010. package/scripts/ffi-stub/asr-ffi-smoke.ts +139 -0
  1011. package/scripts/ffi-stub/ffi-stub.c +539 -0
  1012. package/scripts/ffi-stub/ffi.h +538 -0
  1013. package/scripts/ffi-stub/libelizainference_stub.so +0 -0
  1014. package/scripts/ffi-stub/tts-stream-ffi-smoke.ts +349 -0
  1015. package/scripts/generate-first-run-voicelines.mjs +194 -0
  1016. package/scripts/generate-plugin-index.js +4 -3
  1017. package/scripts/generate-static-asset-manifest.mjs +1 -1
  1018. package/scripts/i18n-dynamic-keys.json +5 -5
  1019. package/scripts/init-submodules.mjs +2 -2
  1020. package/scripts/install-android-sms-gateway.md +177 -0
  1021. package/scripts/install-android-sms-gateway.mjs +1088 -0
  1022. package/scripts/ios-xcframework/README.md +74 -72
  1023. package/scripts/ios-xcframework/build-xcframework.mjs +204 -43
  1024. package/scripts/ios-xcframework/run-physical-device-smoke.mjs +1943 -0
  1025. package/scripts/ios-xcframework/runtime-symbol-shim.c +450 -0
  1026. package/scripts/kernel-patches/cpu-polar-kernels.mjs +441 -0
  1027. package/scripts/kernel-patches/cpu-simd-kernels.mjs +253 -0
  1028. package/scripts/kernel-patches/cpu-thread-parallelism.mjs +368 -0
  1029. package/scripts/kernel-patches/cuda-kernels.mjs +117 -0
  1030. package/scripts/kernel-patches/metal-kernels.mjs +1698 -109
  1031. package/scripts/kernel-patches/server-omnivoice-route.mjs +718 -0
  1032. package/scripts/kernel-patches/server-structured-output.mjs +279 -0
  1033. package/scripts/kernel-patches/vulkan-dispatch-log.mjs +166 -0
  1034. package/scripts/kernel-patches/vulkan-dispatch-log.test.mjs +50 -0
  1035. package/scripts/kernel-patches/vulkan-dispatch-patches/01-vulkan-shaders-gen.patch +30 -16
  1036. package/scripts/kernel-patches/vulkan-dispatch-patches/02-ggml-vulkan-pipelines.patch +75 -30
  1037. package/scripts/kernel-patches/vulkan-kernels.mjs +800 -49
  1038. package/scripts/lib/agent-source-watcher.mjs +174 -0
  1039. package/scripts/lib/agent-source-watcher.test.mjs +184 -0
  1040. package/scripts/lib/api-supervisor.mjs +78 -9
  1041. package/scripts/lib/api-supervisor.test.mjs +121 -0
  1042. package/scripts/lib/app-dir.mjs +2 -16
  1043. package/scripts/lib/apple-entitlement-audit.mjs +655 -0
  1044. package/scripts/lib/apple-entitlement-audit.test.mjs +144 -0
  1045. package/scripts/lib/bun-version-guard.mjs +13 -13
  1046. package/scripts/lib/capacitor-plugin-build-needed.mjs +4 -3
  1047. package/scripts/lib/capacitor-plugin-names.mjs +30 -14
  1048. package/scripts/lib/desktop-preflight.mjs +9 -5
  1049. package/scripts/lib/desktop-startup-embedding-warmup-policy.mjs +51 -0
  1050. package/scripts/lib/desktop-startup-embedding-warmup-policy.test.mjs +55 -0
  1051. package/scripts/lib/duet-bridge.d.mts +63 -0
  1052. package/scripts/lib/duet-bridge.mjs +193 -0
  1053. package/scripts/lib/node-path-env.mjs +4 -2
  1054. package/scripts/lib/orchestrator-desktop-dev-banner.mjs +12 -3
  1055. package/scripts/lib/patch-bun-exports.mjs +90 -27
  1056. package/scripts/lib/patch-bun-exports.test.mjs +79 -0
  1057. package/scripts/lib/renderer-build-action.mjs +35 -0
  1058. package/scripts/lib/renderer-build-action.test.mjs +70 -0
  1059. package/scripts/lib/stage-android-agent.mjs +748 -99
  1060. package/scripts/lib/sync-eliza-env-aliases.mjs +3 -25
  1061. package/scripts/lib/ui-smoke-stub-decision.mjs +33 -0
  1062. package/scripts/lib/ui-smoke-stub-decision.test.mjs +46 -0
  1063. package/scripts/lib/vite-renderer-dist-stale.mjs +5 -0
  1064. package/scripts/lib/voice-latency-report.mjs +154 -0
  1065. package/scripts/lifeops-prompt-benchmark.ts +21 -12
  1066. package/scripts/link-docker-local-app-packages.mjs +103 -36
  1067. package/scripts/local-stt-bench.ts +192 -0
  1068. package/scripts/maintain-cloud-api-production-gateway.mjs +54 -0
  1069. package/scripts/mas-smoke.mjs +459 -0
  1070. package/scripts/mas-smoke.test.mjs +220 -0
  1071. package/scripts/mobile-auth-simulator-smoke.mjs +0 -1
  1072. package/scripts/normalize-eliza-capture.ts +97 -0
  1073. package/scripts/omnivoice-fuse/prepare.mjs +2543 -23
  1074. package/scripts/pack-upstreams.mjs +65 -5
  1075. package/scripts/package-electrobun-linux.mjs +303 -0
  1076. package/scripts/patch-deps.mjs +5 -3
  1077. package/scripts/patches/llama-asr-word-timestamps.patch +218 -0
  1078. package/scripts/patches/llama-mobile-kokoro-tts.patch +480 -0
  1079. package/scripts/playwright-ui-live-stack.ts +194 -49
  1080. package/scripts/playwright-ui-smoke-api-stub.mjs +3501 -109
  1081. package/scripts/pre-review-local.mjs +2 -2
  1082. package/scripts/prepare-ios-cocoapods.sh +41 -3
  1083. package/scripts/release-check.ts +180 -84
  1084. package/scripts/release-workflow-drift.test.ts +57 -0
  1085. package/scripts/relink-workspace-packages-to-dist.mjs +21 -4
  1086. package/scripts/rt.mjs +16 -1
  1087. package/scripts/run-biome-check.mjs +1 -1
  1088. package/scripts/run-coding-agent-e2e.mjs +3 -3
  1089. package/scripts/run-eliza-app-core-script.mjs +34 -0
  1090. package/scripts/run-local-plugin-live-smoke.mjs +71 -2
  1091. package/scripts/run-mobile-build-android-app-actions.test.mjs +426 -0
  1092. package/scripts/run-mobile-build.mjs +4757 -607
  1093. package/scripts/run-node-runtime.mjs +184 -7
  1094. package/scripts/run-node-runtime.test.mjs +167 -0
  1095. package/scripts/run-node-tsx.mjs +80 -33
  1096. package/scripts/run-node.mjs +41 -1
  1097. package/scripts/run-production-build.mjs +34 -27
  1098. package/scripts/run-release-check.mjs +19 -0
  1099. package/scripts/run-release-contract-suite.mjs +107 -14
  1100. package/scripts/run-ui-smoke-playwright-suite.mjs +0 -2
  1101. package/scripts/runtime-package-manifest.ts +21 -3
  1102. package/scripts/setup-upstreams.mjs +42 -1
  1103. package/scripts/sms-gateway-status.mjs +194 -0
  1104. package/scripts/stage-android-agent.test.mjs +97 -0
  1105. package/scripts/stage-desktop-fused-lib.mjs +424 -0
  1106. package/scripts/stage-elizavoice-lib.mjs +363 -0
  1107. package/scripts/startup-integration-script-drift.test.ts +82 -4
  1108. package/scripts/streaming-pipeline-bench.ts +543 -0
  1109. package/scripts/sync-homepage-porkbun-dns.mjs +262 -0
  1110. package/scripts/test-sms-gateway-software.mjs +100 -0
  1111. package/scripts/type-audit.mjs +1 -1
  1112. package/scripts/validate-bluebubbles-outbound.mjs +293 -0
  1113. package/scripts/validate-cdn-assets.mjs +15 -7
  1114. package/scripts/validate-regression-matrix.mjs +109 -8
  1115. package/scripts/verify-android-sms-gateway-e2e.mjs +362 -0
  1116. package/scripts/verify-bluebubbles-gateway-e2e.mjs +191 -0
  1117. package/scripts/verify-bluebubbles-inbound-readiness.mjs +88 -0
  1118. package/scripts/verify-cloud-api-production-deploy.mjs +87 -0
  1119. package/scripts/verify-cloud-sms-onboarding-flow.mjs +336 -0
  1120. package/scripts/voice/freeze-voice.mjs +521 -0
  1121. package/scripts/voice-attribution-smoke.ts +538 -0
  1122. package/scripts/voice-create-profile.mjs +379 -0
  1123. package/scripts/voice-duet.mjs +1355 -0
  1124. package/scripts/voice-e2e-hardware.ts +871 -0
  1125. package/scripts/voice-interactive.mjs +1750 -0
  1126. package/scripts/voice-latency-report.mjs +96 -0
  1127. package/scripts/voice-latency-report.test.ts +176 -0
  1128. package/scripts/voice-preset/build-default-voice-preset.mjs +249 -0
  1129. package/scripts/voice-preset/build-onboarding-voice.mjs +281 -0
  1130. package/scripts/watch-sms-gateway-readiness.mjs +303 -0
  1131. package/scripts/write-homepage-release-data.mjs +458 -26
  1132. package/security/agent-vault-id.d.ts +1 -1
  1133. package/security/agent-vault-id.js +1 -1
  1134. package/security/hydrate-wallet-keys-from-platform-store.d.ts.map +1 -1
  1135. package/security/hydrate-wallet-keys-from-platform-store.js +23 -14
  1136. package/security/platform-secure-store-node.d.ts +2 -2
  1137. package/security/platform-secure-store-node.js +3 -3
  1138. package/security/wallet-os-store-actions.d.ts +0 -9
  1139. package/security/wallet-os-store-actions.d.ts.map +1 -1
  1140. package/security/wallet-os-store-actions.js +3 -10
  1141. package/services/account-pool.d.ts +23 -14
  1142. package/services/account-pool.d.ts.map +1 -1
  1143. package/services/account-pool.js +86 -24
  1144. package/services/account-usage.d.ts.map +1 -1
  1145. package/services/account-usage.js +2 -5
  1146. package/services/ambient-audio/consent.d.ts +9 -0
  1147. package/services/ambient-audio/consent.d.ts.map +1 -0
  1148. package/services/ambient-audio/consent.js +28 -0
  1149. package/services/ambient-audio/index.d.ts +7 -0
  1150. package/services/ambient-audio/index.d.ts.map +1 -0
  1151. package/services/ambient-audio/index.js +4 -0
  1152. package/services/ambient-audio/replay-buffer.d.ts +14 -0
  1153. package/services/ambient-audio/replay-buffer.d.ts.map +1 -0
  1154. package/services/ambient-audio/replay-buffer.js +66 -0
  1155. package/services/ambient-audio/response-gate.d.ts +3 -0
  1156. package/services/ambient-audio/response-gate.d.ts.map +1 -0
  1157. package/services/ambient-audio/response-gate.js +33 -0
  1158. package/services/ambient-audio/service.d.ts +22 -0
  1159. package/services/ambient-audio/service.d.ts.map +1 -0
  1160. package/services/ambient-audio/service.js +47 -0
  1161. package/services/ambient-audio/types.d.ts +42 -0
  1162. package/services/ambient-audio/types.d.ts.map +1 -0
  1163. package/services/app-updates/update-policy.d.ts +64 -0
  1164. package/services/app-updates/update-policy.d.ts.map +1 -0
  1165. package/services/app-updates/update-policy.js +228 -0
  1166. package/services/auth-store.d.ts +37 -1
  1167. package/services/auth-store.d.ts.map +1 -1
  1168. package/services/auth-store.js +59 -26
  1169. package/services/cloud-jwks-store.d.ts +3 -3
  1170. package/services/cloud-jwks-store.d.ts.map +1 -1
  1171. package/services/cloud-jwks-store.js +5 -8
  1172. package/services/coding-account-bridge.d.ts +71 -0
  1173. package/services/coding-account-bridge.d.ts.map +1 -0
  1174. package/services/coding-account-bridge.js +267 -0
  1175. package/services/connector-target-catalog.d.ts +10 -3
  1176. package/services/connector-target-catalog.d.ts.map +1 -1
  1177. package/services/connector-target-catalog.js +7 -4
  1178. package/services/credential-tunnel-service.d.ts +66 -0
  1179. package/services/credential-tunnel-service.d.ts.map +1 -0
  1180. package/services/credential-tunnel-service.js +227 -0
  1181. package/services/github-credentials.d.ts +1 -1
  1182. package/services/github-credentials.js +1 -1
  1183. package/services/inference-abort.d.ts +47 -0
  1184. package/services/inference-abort.d.ts.map +1 -0
  1185. package/services/inference-abort.js +76 -0
  1186. package/services/persistence.d.ts +2 -3
  1187. package/services/persistence.d.ts.map +1 -1
  1188. package/services/persistence.js +2 -3
  1189. package/services/phrase-chunked-tts.d.ts +136 -0
  1190. package/services/phrase-chunked-tts.d.ts.map +1 -0
  1191. package/services/phrase-chunked-tts.js +208 -0
  1192. package/services/sandbox-registry.d.ts +78 -0
  1193. package/services/sandbox-registry.d.ts.map +1 -0
  1194. package/services/sandbox-registry.js +323 -0
  1195. package/services/secrets-manager-installer.d.ts +8 -1
  1196. package/services/secrets-manager-installer.d.ts.map +1 -1
  1197. package/services/secrets-manager-installer.js +27 -2
  1198. package/services/sensitive-requests/cloud-link-adapter.d.ts +15 -0
  1199. package/services/sensitive-requests/cloud-link-adapter.d.ts.map +1 -0
  1200. package/services/sensitive-requests/cloud-link-adapter.js +73 -0
  1201. package/services/sensitive-requests/index.d.ts +27 -0
  1202. package/services/sensitive-requests/index.d.ts.map +1 -0
  1203. package/services/sensitive-requests/index.js +51 -0
  1204. package/services/sensitive-requests/instruct-dm-only-adapter.d.ts +14 -0
  1205. package/services/sensitive-requests/instruct-dm-only-adapter.d.ts.map +1 -0
  1206. package/services/sensitive-requests/instruct-dm-only-adapter.js +22 -0
  1207. package/services/sensitive-requests/owner-app-inline-adapter.d.ts +3 -0
  1208. package/services/sensitive-requests/owner-app-inline-adapter.d.ts.map +1 -0
  1209. package/services/sensitive-requests/owner-app-inline-adapter.js +146 -0
  1210. package/services/sensitive-requests/owner-app-oauth-adapter.d.ts +3 -0
  1211. package/services/sensitive-requests/owner-app-oauth-adapter.d.ts.map +1 -0
  1212. package/services/sensitive-requests/owner-app-oauth-adapter.js +156 -0
  1213. package/services/sensitive-requests/public-link-adapter.d.ts +14 -0
  1214. package/services/sensitive-requests/public-link-adapter.d.ts.map +1 -0
  1215. package/services/sensitive-requests/public-link-adapter.js +86 -0
  1216. package/services/sensitive-requests/tunnel-link-adapter.d.ts +17 -0
  1217. package/services/sensitive-requests/tunnel-link-adapter.d.ts.map +1 -0
  1218. package/services/sensitive-requests/tunnel-link-adapter.js +38 -0
  1219. package/services/steward-credentials.d.ts +1 -1
  1220. package/services/steward-credentials.d.ts.map +1 -1
  1221. package/services/steward-credentials.js +10 -6
  1222. package/services/steward-sidecar/health-check.d.ts.map +1 -1
  1223. package/services/steward-sidecar/health-check.js +4 -3
  1224. package/services/steward-sidecar/process-management.d.ts +1 -1
  1225. package/services/steward-sidecar/process-management.d.ts.map +1 -1
  1226. package/services/steward-sidecar/process-management.js +9 -3
  1227. package/services/steward-sidecar/types.d.ts +1 -1
  1228. package/services/steward-sidecar/types.d.ts.map +1 -1
  1229. package/services/steward-sidecar/wallet-setup.d.ts.map +1 -1
  1230. package/services/steward-sidecar/wallet-setup.js +8 -7
  1231. package/services/steward-sidecar.d.ts +2 -2
  1232. package/services/steward-sidecar.d.ts.map +1 -1
  1233. package/services/steward-sidecar.js +27 -19
  1234. package/services/task-host-capabilities.d.ts +60 -0
  1235. package/services/task-host-capabilities.d.ts.map +1 -0
  1236. package/services/task-host-capabilities.js +122 -0
  1237. package/services/tool-call-cache/index.d.ts +2 -2
  1238. package/services/tool-call-cache/index.d.ts.map +1 -1
  1239. package/services/tool-call-cache/index.js +1 -1
  1240. package/services/trigger-event-bridge.js +1 -1
  1241. package/services/tunnel-to-mobile/index.d.ts +2 -0
  1242. package/services/tunnel-to-mobile/index.d.ts.map +1 -0
  1243. package/services/tunnel-to-mobile/index.js +1 -0
  1244. package/services/tunnel-to-mobile/tunnel-to-mobile-client.d.ts +105 -0
  1245. package/services/tunnel-to-mobile/tunnel-to-mobile-client.d.ts.map +1 -0
  1246. package/services/tunnel-to-mobile/tunnel-to-mobile-client.js +190 -0
  1247. package/services/vault-bootstrap.d.ts.map +1 -1
  1248. package/services/vault-bootstrap.js +48 -21
  1249. package/services/vault-mirror.d.ts +1 -1
  1250. package/services/vault-mirror.d.ts.map +1 -1
  1251. package/services/vault-mirror.js +29 -6
  1252. package/services/voice-profiles/diarization-pipeline.d.ts +6 -0
  1253. package/services/voice-profiles/diarization-pipeline.d.ts.map +1 -0
  1254. package/services/voice-profiles/diarization-pipeline.js +20 -0
  1255. package/services/voice-profiles/index.d.ts +12 -0
  1256. package/services/voice-profiles/index.d.ts.map +1 -0
  1257. package/services/voice-profiles/index.js +5 -0
  1258. package/services/voice-profiles/nickname-evaluator.d.ts +14 -0
  1259. package/services/voice-profiles/nickname-evaluator.d.ts.map +1 -0
  1260. package/services/voice-profiles/nickname-evaluator.js +46 -0
  1261. package/services/voice-profiles/owner-confidence.d.ts +10 -0
  1262. package/services/voice-profiles/owner-confidence.d.ts.map +1 -0
  1263. package/services/voice-profiles/owner-confidence.js +38 -0
  1264. package/services/voice-profiles/private-challenge.d.ts +20 -0
  1265. package/services/voice-profiles/private-challenge.d.ts.map +1 -0
  1266. package/services/voice-profiles/private-challenge.js +44 -0
  1267. package/services/voice-profiles/store.d.ts +21 -0
  1268. package/services/voice-profiles/store.d.ts.map +1 -0
  1269. package/services/voice-profiles/store.js +50 -0
  1270. package/services/voice-profiles/types.d.ts +38 -0
  1271. package/services/voice-profiles/types.d.ts.map +1 -0
  1272. package/services/voice-profiles/types.js +1 -0
  1273. package/styles/electrobun-mac-window-drag.css +4 -4
  1274. package/test/helpers/__tests__/live-agent-test.smoke.test.ts +43 -70
  1275. package/test/helpers/browser-mocks.ts +2 -2
  1276. package/test/helpers/conditional-tests.ts +2 -2
  1277. package/test/helpers/i18n.ts +1 -1
  1278. package/test/helpers/live-agent-test.ts +537 -551
  1279. package/test/helpers/live-provider.test.ts +4 -4
  1280. package/test/helpers/live-provider.ts +41 -7
  1281. package/test/helpers/live-runtime-server.ts +4 -4
  1282. package/test/helpers/pglite-runtime.ts +1 -1
  1283. package/test/helpers/real-runtime.ts +72 -20
  1284. package/test/helpers/trajectory-harness.ts +11 -7
  1285. package/test/scripts/start-eliza-live.ts +9 -0
  1286. package/test/scripts/test-parallel.mjs +1 -1
  1287. package/test/scripts/test-root-unit.mjs +6 -7
  1288. package/ui-compat.d.ts +13 -2
  1289. package/ui-compat.d.ts.map +1 -1
  1290. package/ui-compat.js +19 -3
  1291. package/api/auth-pairing-compat-routes.d.ts +0 -17
  1292. package/api/auth-pairing-compat-routes.d.ts.map +0 -1
  1293. package/api/auth-pairing-compat-routes.js +0 -301
  1294. package/api/local-inference-compat-routes.d.ts +0 -16
  1295. package/api/local-inference-compat-routes.d.ts.map +0 -1
  1296. package/api/local-inference-compat-routes.js +0 -617
  1297. package/api/onboarding-compat-routes.d.ts +0 -4
  1298. package/api/onboarding-compat-routes.d.ts.map +0 -1
  1299. package/api/onboarding-compat-routes.js +0 -207
  1300. package/api/plugins-compat-routes.d.ts +0 -103
  1301. package/api/plugins-compat-routes.d.ts.map +0 -1
  1302. package/api/plugins-compat-routes.js +0 -1181
  1303. package/api/server-onboarding-compat.d.ts +0 -31
  1304. package/api/server-onboarding-compat.d.ts.map +0 -1
  1305. package/api/server-onboarding-compat.js +0 -283
  1306. package/benchmark/cua-routes.d.ts +0 -10
  1307. package/benchmark/cua-routes.d.ts.map +0 -1
  1308. package/benchmark/cua-routes.js +0 -179
  1309. package/benchmark/mock-plugin-base.d.ts +0 -9
  1310. package/benchmark/mock-plugin-base.d.ts.map +0 -1
  1311. package/benchmark/mock-plugin-base.js +0 -325
  1312. package/cli/parse-duration.d.ts +0 -5
  1313. package/cli/parse-duration.d.ts.map +0 -1
  1314. package/cli/parse-duration.js +0 -27
  1315. package/patches/llama-cpp-capacitor@0.1.5.patch +0 -2387
  1316. package/platform/agent-browser-stub.d.ts +0 -27
  1317. package/platform/agent-browser-stub.d.ts.map +0 -1
  1318. package/platform/agent-browser-stub.js +0 -16
  1319. package/platforms/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java +0 -26
  1320. package/platforms/android/app/src/main/res/drawable/ic_launcher_background.xml +0 -170
  1321. package/platforms/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +0 -34
  1322. package/platforms/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java +0 -18
  1323. package/platforms/electrobun/assets/appIcon.iconset/icon_512x512@2x.png +0 -0
  1324. package/platforms/electrobun/assets/appIcon.png +0 -0
  1325. package/platforms/electrobun/scripts/build-whisper-universal.sh +0 -137
  1326. package/platforms/electrobun/scripts/build-whisper.sh +0 -95
  1327. package/platforms/electrobun/src/libMacWindowEffects.dylib +0 -0
  1328. package/platforms/electrobun/src/native/whisper.ts +0 -280
  1329. package/platforms/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png +0 -0
  1330. package/platforms/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png +0 -0
  1331. package/platforms/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png +0 -0
  1332. package/registry/generate-apps.d.ts +0 -2
  1333. package/registry/generate-apps.d.ts.map +0 -1
  1334. package/registry/generate-apps.js +0 -338
  1335. package/registry/generate.d.ts +0 -2
  1336. package/registry/generate.d.ts.map +0 -1
  1337. package/registry/generate.js +0 -506
  1338. package/runtime/embedding-manager-support.d.ts +0 -77
  1339. package/runtime/embedding-manager-support.d.ts.map +0 -1
  1340. package/runtime/embedding-manager-support.js +0 -309
  1341. package/runtime/embedding-presets.d.ts +0 -5
  1342. package/runtime/embedding-presets.d.ts.map +0 -1
  1343. package/runtime/embedding-presets.js +0 -47
  1344. package/runtime/embedding-warmup-policy.d.ts +0 -13
  1345. package/runtime/embedding-warmup-policy.d.ts.map +0 -1
  1346. package/runtime/embedding-warmup-policy.js +0 -33
  1347. package/runtime/ensure-local-inference-handler.d.ts +0 -25
  1348. package/runtime/ensure-local-inference-handler.d.ts.map +0 -1
  1349. package/runtime/ensure-local-inference-handler.js +0 -389
  1350. package/runtime/mobile-local-inference-gate.d.ts +0 -21
  1351. package/runtime/mobile-local-inference-gate.d.ts.map +0 -1
  1352. package/runtime/mobile-local-inference-gate.js +0 -24
  1353. package/scripts/aosp/avd-test.mjs +0 -403
  1354. package/scripts/aosp/boot-validate.mjs +0 -536
  1355. package/scripts/aosp/build-aosp.mjs +0 -448
  1356. package/scripts/aosp/build-bootanimation.mjs +0 -178
  1357. package/scripts/aosp/capture-screens.mjs +0 -325
  1358. package/scripts/aosp/e2e-validate.mjs +0 -225
  1359. package/scripts/aosp/lint-init-rc.mjs +0 -258
  1360. package/scripts/aosp/llama-shim/eliza_llama_shim.c +0 -276
  1361. package/scripts/aosp/sim.mjs +0 -277
  1362. package/scripts/aosp/sync-to-aosp.mjs +0 -134
  1363. package/scripts/aosp/validate.mjs +0 -1273
  1364. package/scripts/build-llama-cpp-dflash.mjs +0 -1866
  1365. package/scripts/generate-onboarding-voicelines.mjs +0 -194
  1366. package/scripts/generated/static-asset-manifest.json +0 -4
  1367. package/scripts/normalize-parallax-capture.ts +0 -97
  1368. package/scripts/omnivoice-fuse/Makefile +0 -44
  1369. package/scripts/omnivoice-fuse/README.md +0 -266
  1370. package/scripts/omnivoice-fuse/cmake-graft.mjs +0 -180
  1371. package/scripts/omnivoice-fuse/ffi-stub.c +0 -222
  1372. package/scripts/omnivoice-fuse/ffi.h +0 -158
  1373. package/scripts/omnivoice-fuse/libelizainference_stub.dylib +0 -0
  1374. package/scripts/omnivoice-fuse/verify-symbols.mjs +0 -138
  1375. package/security/cloud-secret-store.d.ts +0 -34
  1376. package/security/cloud-secret-store.d.ts.map +0 -1
  1377. package/security/cloud-secret-store.js +0 -65
  1378. package/security/export-guard.d.ts +0 -34
  1379. package/security/export-guard.d.ts.map +0 -1
  1380. package/security/export-guard.js +0 -127
  1381. package/services/local-inference/__stress__/cache-stress-helpers.d.ts +0 -76
  1382. package/services/local-inference/__stress__/cache-stress-helpers.d.ts.map +0 -1
  1383. package/services/local-inference/__stress__/cache-stress-helpers.js +0 -238
  1384. package/services/local-inference/active-model.d.ts +0 -180
  1385. package/services/local-inference/active-model.d.ts.map +0 -1
  1386. package/services/local-inference/active-model.js +0 -362
  1387. package/services/local-inference/assignments.d.ts +0 -58
  1388. package/services/local-inference/assignments.d.ts.map +0 -1
  1389. package/services/local-inference/assignments.js +0 -179
  1390. package/services/local-inference/backend.d.ts +0 -200
  1391. package/services/local-inference/backend.d.ts.map +0 -1
  1392. package/services/local-inference/backend.js +0 -242
  1393. package/services/local-inference/bundled-models.d.ts +0 -34
  1394. package/services/local-inference/bundled-models.d.ts.map +0 -1
  1395. package/services/local-inference/bundled-models.js +0 -104
  1396. package/services/local-inference/cache-bridge.d.ts +0 -184
  1397. package/services/local-inference/cache-bridge.d.ts.map +0 -1
  1398. package/services/local-inference/cache-bridge.js +0 -333
  1399. package/services/local-inference/catalog.d.ts +0 -57
  1400. package/services/local-inference/catalog.d.ts.map +0 -1
  1401. package/services/local-inference/catalog.js +0 -262
  1402. package/services/local-inference/conversation-registry.d.ts +0 -122
  1403. package/services/local-inference/conversation-registry.d.ts.map +0 -1
  1404. package/services/local-inference/conversation-registry.js +0 -182
  1405. package/services/local-inference/device-bridge.d.ts +0 -139
  1406. package/services/local-inference/device-bridge.d.ts.map +0 -1
  1407. package/services/local-inference/device-bridge.js +0 -774
  1408. package/services/local-inference/dflash-doctor.d.ts +0 -27
  1409. package/services/local-inference/dflash-doctor.d.ts.map +0 -1
  1410. package/services/local-inference/dflash-doctor.js +0 -149
  1411. package/services/local-inference/dflash-server.d.ts +0 -248
  1412. package/services/local-inference/dflash-server.d.ts.map +0 -1
  1413. package/services/local-inference/dflash-server.js +0 -1076
  1414. package/services/local-inference/downloader.d.ts +0 -48
  1415. package/services/local-inference/downloader.d.ts.map +0 -1
  1416. package/services/local-inference/downloader.js +0 -688
  1417. package/services/local-inference/engine.d.ts +0 -282
  1418. package/services/local-inference/engine.d.ts.map +0 -1
  1419. package/services/local-inference/engine.js +0 -743
  1420. package/services/local-inference/external-scanner.d.ts +0 -17
  1421. package/services/local-inference/external-scanner.d.ts.map +0 -1
  1422. package/services/local-inference/external-scanner.js +0 -261
  1423. package/services/local-inference/handler-registry.d.ts +0 -72
  1424. package/services/local-inference/handler-registry.d.ts.map +0 -1
  1425. package/services/local-inference/handler-registry.js +0 -159
  1426. package/services/local-inference/hardware.d.ts +0 -26
  1427. package/services/local-inference/hardware.d.ts.map +0 -1
  1428. package/services/local-inference/hardware.js +0 -139
  1429. package/services/local-inference/hf-search.d.ts +0 -19
  1430. package/services/local-inference/hf-search.d.ts.map +0 -1
  1431. package/services/local-inference/hf-search.js +0 -169
  1432. package/services/local-inference/index.d.ts +0 -10
  1433. package/services/local-inference/index.d.ts.map +0 -1
  1434. package/services/local-inference/index.js +0 -7
  1435. package/services/local-inference/llama-server-metrics.d.ts +0 -108
  1436. package/services/local-inference/llama-server-metrics.d.ts.map +0 -1
  1437. package/services/local-inference/llama-server-metrics.js +0 -175
  1438. package/services/local-inference/manifest/index.d.ts +0 -4
  1439. package/services/local-inference/manifest/index.d.ts.map +0 -1
  1440. package/services/local-inference/manifest/index.js +0 -5
  1441. package/services/local-inference/manifest/schema.d.ts +0 -419
  1442. package/services/local-inference/manifest/schema.d.ts.map +0 -1
  1443. package/services/local-inference/manifest/schema.js +0 -227
  1444. package/services/local-inference/manifest/types.d.ts +0 -23
  1445. package/services/local-inference/manifest/types.d.ts.map +0 -1
  1446. package/services/local-inference/manifest/types.js +0 -5
  1447. package/services/local-inference/manifest/validator.d.ts +0 -43
  1448. package/services/local-inference/manifest/validator.d.ts.map +0 -1
  1449. package/services/local-inference/manifest/validator.js +0 -180
  1450. package/services/local-inference/paths.d.ts +0 -8
  1451. package/services/local-inference/paths.d.ts.map +0 -1
  1452. package/services/local-inference/paths.js +0 -7
  1453. package/services/local-inference/providers.d.ts +0 -61
  1454. package/services/local-inference/providers.d.ts.map +0 -1
  1455. package/services/local-inference/providers.js +0 -334
  1456. package/services/local-inference/ram-budget.d.ts +0 -57
  1457. package/services/local-inference/ram-budget.d.ts.map +0 -1
  1458. package/services/local-inference/ram-budget.js +0 -107
  1459. package/services/local-inference/readiness.d.ts +0 -9
  1460. package/services/local-inference/readiness.d.ts.map +0 -1
  1461. package/services/local-inference/readiness.js +0 -153
  1462. package/services/local-inference/recommendation.d.ts +0 -62
  1463. package/services/local-inference/recommendation.d.ts.map +0 -1
  1464. package/services/local-inference/recommendation.js +0 -309
  1465. package/services/local-inference/registry.d.ts +0 -35
  1466. package/services/local-inference/registry.d.ts.map +0 -1
  1467. package/services/local-inference/registry.js +0 -117
  1468. package/services/local-inference/router-handler.d.ts +0 -51
  1469. package/services/local-inference/router-handler.d.ts.map +0 -1
  1470. package/services/local-inference/router-handler.js +0 -165
  1471. package/services/local-inference/routing-policy.d.ts +0 -55
  1472. package/services/local-inference/routing-policy.d.ts.map +0 -1
  1473. package/services/local-inference/routing-policy.js +0 -195
  1474. package/services/local-inference/routing-preferences.d.ts +0 -8
  1475. package/services/local-inference/routing-preferences.d.ts.map +0 -1
  1476. package/services/local-inference/routing-preferences.js +0 -7
  1477. package/services/local-inference/service.d.ts +0 -88
  1478. package/services/local-inference/service.d.ts.map +0 -1
  1479. package/services/local-inference/service.js +0 -210
  1480. package/services/local-inference/session-pool.d.ts +0 -72
  1481. package/services/local-inference/session-pool.d.ts.map +0 -1
  1482. package/services/local-inference/session-pool.js +0 -125
  1483. package/services/local-inference/types.d.ts +0 -309
  1484. package/services/local-inference/types.d.ts.map +0 -1
  1485. package/services/local-inference/types.js +0 -23
  1486. package/services/local-inference/verify.d.ts +0 -8
  1487. package/services/local-inference/verify.d.ts.map +0 -1
  1488. package/services/local-inference/verify.js +0 -7
  1489. package/services/local-inference/voice/barge-in.d.ts +0 -15
  1490. package/services/local-inference/voice/barge-in.d.ts.map +0 -1
  1491. package/services/local-inference/voice/barge-in.js +0 -20
  1492. package/services/local-inference/voice/engine-bridge.d.ts +0 -256
  1493. package/services/local-inference/voice/engine-bridge.d.ts.map +0 -1
  1494. package/services/local-inference/voice/engine-bridge.js +0 -398
  1495. package/services/local-inference/voice/ffi-bindings.d.ts +0 -114
  1496. package/services/local-inference/voice/ffi-bindings.d.ts.map +0 -1
  1497. package/services/local-inference/voice/ffi-bindings.js +0 -281
  1498. package/services/local-inference/voice/index.d.ts +0 -51
  1499. package/services/local-inference/voice/index.d.ts.map +0 -1
  1500. package/services/local-inference/voice/index.js +0 -50
  1501. package/services/local-inference/voice/lifecycle.d.ts +0 -135
  1502. package/services/local-inference/voice/lifecycle.d.ts.map +0 -1
  1503. package/services/local-inference/voice/lifecycle.js +0 -189
  1504. package/services/local-inference/voice/phoneme-tokenizer.d.ts +0 -58
  1505. package/services/local-inference/voice/phoneme-tokenizer.d.ts.map +0 -1
  1506. package/services/local-inference/voice/phoneme-tokenizer.js +0 -53
  1507. package/services/local-inference/voice/phrase-cache.d.ts +0 -24
  1508. package/services/local-inference/voice/phrase-cache.d.ts.map +0 -1
  1509. package/services/local-inference/voice/phrase-cache.js +0 -32
  1510. package/services/local-inference/voice/phrase-chunker.d.ts +0 -20
  1511. package/services/local-inference/voice/phrase-chunker.d.ts.map +0 -1
  1512. package/services/local-inference/voice/phrase-chunker.js +0 -85
  1513. package/services/local-inference/voice/ring-buffer.d.ts +0 -40
  1514. package/services/local-inference/voice/ring-buffer.d.ts.map +0 -1
  1515. package/services/local-inference/voice/ring-buffer.js +0 -85
  1516. package/services/local-inference/voice/rollback-queue.d.ts +0 -24
  1517. package/services/local-inference/voice/rollback-queue.d.ts.map +0 -1
  1518. package/services/local-inference/voice/rollback-queue.js +0 -49
  1519. package/services/local-inference/voice/scheduler.d.ts +0 -47
  1520. package/services/local-inference/voice/scheduler.d.ts.map +0 -1
  1521. package/services/local-inference/voice/scheduler.js +0 -123
  1522. package/services/local-inference/voice/shared-resources.d.ts +0 -119
  1523. package/services/local-inference/voice/shared-resources.d.ts.map +0 -1
  1524. package/services/local-inference/voice/shared-resources.js +0 -83
  1525. package/services/local-inference/voice/speaker-preset-cache.d.ts +0 -28
  1526. package/services/local-inference/voice/speaker-preset-cache.d.ts.map +0 -1
  1527. package/services/local-inference/voice/speaker-preset-cache.js +0 -44
  1528. package/services/local-inference/voice/types.d.ts +0 -80
  1529. package/services/local-inference/voice/types.d.ts.map +0 -1
  1530. package/services/local-inference/voice/voice-preset-format.d.ts +0 -56
  1531. package/services/local-inference/voice/voice-preset-format.d.ts.map +0 -1
  1532. package/services/local-inference/voice/voice-preset-format.js +0 -184
  1533. package/services/plugin-installer.d.ts +0 -22
  1534. package/services/plugin-installer.d.ts.map +0 -1
  1535. package/services/plugin-installer.js +0 -41
  1536. package/test/scripts/task-agent-live-smoke.ts +0 -1335
  1537. /package/services/{local-inference/voice → ambient-audio}/types.js +0 -0
@@ -1,8 +1,8 @@
1
- // Vulkan kernel-shipment + dispatch wiring for the v0.4.0-milady fork.
1
+ // Vulkan kernel-shipment staging for the elizaOS/llama.cpp fork (v1.0.0-eliza).
2
2
  //
3
3
  // What this module does:
4
4
  //
5
- // 1. Copies the eight verified standalone .comp shaders from
5
+ // 1. Copies the nine verified standalone .comp shaders from
6
6
  // packages/inference/vulkan/ into the fork at
7
7
  // ggml/src/ggml-vulkan/vulkan-shaders/<name>.comp. The fork's CMakeLists
8
8
  // uses `file(GLOB CONFIGURE_DEPENDS ${input_dir}/*.comp)` to discover
@@ -12,44 +12,56 @@
12
12
  // ggml-vulkan-shaders.hpp) is handled by the patch in
13
13
  // vulkan-dispatch-patches/01-vulkan-shaders-gen.patch.
14
14
  //
15
- // 2. Applies the two unified-anchor patches under
15
+ // 2. Applies the two shared-anchor staging patches under
16
16
  // vulkan-dispatch-patches/:
17
- // - 01-vulkan-shaders-gen.patch — adds 8 string_to_spv() registrations
17
+ // - 01-vulkan-shaders-gen.patch — adds 9 string_to_spv() registrations
18
18
  // at the bottom of process_shaders().
19
- // - 02-ggml-vulkan-pipelines.patch — extends vk_device_struct with 8
20
- // pipeline slots and adds 8 ggml_vk_create_pipeline() calls at the
21
- // bottom of ggml_vk_load_shaders(). End result: each milady SPV blob
19
+ // - 02-ggml-vulkan-pipelines.patch — extends vk_device_struct with 9
20
+ // pipeline slots and adds 9 ggml_vk_create_pipeline() calls at the
21
+ // bottom of ggml_vk_load_shaders(). End result: each eliza SPV blob
22
22
  // is referenced at link time and `nm libggml-vulkan.so | grep
23
- // milady_` shows the new symbols.
23
+ // eliza_` shows the new symbols.
24
24
  //
25
- // Patches are idempotent: each carries a `MILADY-VK-DISPATCH-PATCH-V1`
25
+ // 3. Adds Vulkan graph dispatch for the Eliza-1 attention score ops:
26
+ // - GGML_OP_ATTN_SCORE_QJL
27
+ // - GGML_OP_ATTN_SCORE_TBQ (TBQ3_0, TBQ4_0, TBQ3_TCQ)
28
+ // - GGML_OP_ATTN_SCORE_POLAR
29
+ //
30
+ // These routes bind the standalone eliza pipelines directly. They are
31
+ // intentionally conservative: q/pk/dst must be contiguous row tensors and
32
+ // the current route only advertises support for the single-batch shape
33
+ // used by the runtime smoke (ne[2]/ne[3] == 1, except pk head fanout).
34
+ //
35
+ // Patches are idempotent: each carries a `ELIZA-VK-DISPATCH-PATCH-V1`
26
36
  // sentinel; if the sentinel is already present in the target file, the
27
37
  // hunk is skipped (re-running the build is safe).
28
38
  //
29
- // Out of scope (deliberate, mirrors metal-kernels.mjs's same staged approach):
39
+ // Out of scope:
30
40
  //
31
- // * Op-level dispatch wiring. The 8 standalones use bespoke push-constant
32
- // layouts and bind sets that do NOT plug into the existing
33
- // vk_op_binary_push_constants / vk_mat_vec_push_constants paths. The
34
- // follow-up patch needs to introduce a milady-native dispatch entrypoint
35
- // for GGML_OP_ATTN_SCORE_QJL (already declared in ggml.h:563 as a
36
- // CPU-only op) and add per-op routing for QJL/Polar K-cache score and
37
- // mul_mv. Until that lands, the kernels live as live, named pipelines
38
- // inside libggml-vulkan.so but are NOT yet selected at runtime — symbol
39
- // audit passes, end-to-end attention dispatch does not.
41
+ // * Generic mat-vec / get-rows replacement for every GGML call site. The
42
+ // runtime patch wires the attention-score graph routes needed by the
43
+ // Eliza-1 local voice/text path. Broader type-aware branches in
44
+ // ggml_vk_get_dequantize_mul_mat_vec() stay in a dedicated follow-up because those
45
+ // paths use different bind-set conventions from the standalone kernels.
40
46
  //
41
- // * Type-aware case branches in ggml_vk_get_dequantize_mul_mat_vec() etc.
42
- // Same reason as above: the existing dequant/mul_mat_vec paths assume a
43
- // uniform bind-set that the milady kernels intentionally do not match.
47
+ // * Batched ne[2]/ne[3] graph shapes. The source patch refuses to advertise
48
+ // those shapes until a dedicated graph smoke covers offsets and fanout.
44
49
 
45
50
  import fs from "node:fs";
46
51
  import path from "node:path";
47
52
  import { fileURLToPath } from "node:url";
53
+ import {
54
+ patchGgmlTbqPolarAttnOps,
55
+ STANDALONE_REFERENCE_DIR,
56
+ } from "./metal-kernels.mjs";
48
57
 
49
58
  const __filename = fileURLToPath(import.meta.url);
50
59
  const __dirname = path.dirname(__filename);
51
60
 
52
- const STANDALONE_VULKAN_DIR = path.resolve(
61
+ // packages/app-core/scripts/kernel-patches/ → plugin-local-inference/native/vulkan/
62
+ // Older workstreams staged these under packages/inference/vulkan; the current
63
+ // native plugin owns the verified standalone shader sources.
64
+ const LEGACY_STANDALONE_VULKAN_DIR = path.resolve(
53
65
  __dirname,
54
66
  "..",
55
67
  "..",
@@ -57,6 +69,20 @@ const STANDALONE_VULKAN_DIR = path.resolve(
57
69
  "inference",
58
70
  "vulkan",
59
71
  );
72
+ const PLUGIN_STANDALONE_VULKAN_DIR = path.resolve(
73
+ __dirname,
74
+ "..",
75
+ "..",
76
+ "..",
77
+ "..",
78
+ "plugins",
79
+ "plugin-local-inference",
80
+ "native",
81
+ "vulkan",
82
+ );
83
+ const STANDALONE_VULKAN_DIR = fs.existsSync(LEGACY_STANDALONE_VULKAN_DIR)
84
+ ? LEGACY_STANDALONE_VULKAN_DIR
85
+ : PLUGIN_STANDALONE_VULKAN_DIR;
60
86
 
61
87
  const PATCHES_DIR = path.resolve(__dirname, "vulkan-dispatch-patches");
62
88
 
@@ -68,11 +94,47 @@ export const VULKAN_KERNEL_FILES = [
68
94
  "qjl_get_rows.comp",
69
95
  "qjl_mul_mv.comp",
70
96
  "polar.comp",
97
+ "polar_preht.comp",
71
98
  "polar_get_rows.comp",
72
99
  ];
73
100
 
74
- const SHADER_SENTINEL = "// MILADY-VK-DISPATCH-PATCH-V1";
75
- const PATCH_SENTINEL = "MILADY-VK-DISPATCH-PATCH-V1";
101
+ // Multi-block-per-workgroup standalone variants (turbo3_multi.comp etc.). One
102
+ // SPV family per kernel; the blocks/tokens-per-workgroup count is a SPIR-V
103
+ // specialization constant (constant_id 0) the consumer sets at pipeline-create
104
+ // time, so the same blob tunes per device without recompilation. They are
105
+ // verified by `make -C packages/inference/verify vulkan-verify-multiblock`.
106
+ // Staged into the fork alongside the single-block kernels; the runtime routes
107
+ // non-voice / long-context scoring (large n_kv) through them with a
108
+ // device-tuned spec constant (BLOCKS_PER_WG / TOKENS_PER_WG = 4 default).
109
+ export const VULKAN_MULTIBLOCK_KERNEL_FILES = [
110
+ "turbo3_multi.comp",
111
+ "turbo4_multi.comp",
112
+ "turbo3_tcq_multi.comp",
113
+ "qjl_multi.comp",
114
+ ];
115
+
116
+ // Fused-attention compute shaders (QJL-K score + V-mix, online softmax, score
117
+ // never materialised). One workgroup per (q_head); q_pos plus causal
118
+ // q_pos_base are push constants.
119
+ // Verified standalone by `make -C packages/inference/verify vulkan-verify-fused`.
120
+ // Staged into the fork. Runtime dispatch currently wires the TBQ3-V
121
+ // GGML_OP_FUSED_ATTN_QJL_TBQ path; the Polar V-mix shader remains
122
+ // standalone-only until a distinct graph op/API and CPU reference exist.
123
+ export const VULKAN_FUSED_KERNEL_FILES = [
124
+ "fused_attn_qjl_tbq.comp",
125
+ "fused_attn_qjl_polar.comp",
126
+ ];
127
+
128
+ // Everything staged into the fork's vulkan-shaders/ directory.
129
+ const VULKAN_ALL_STAGED_FILES = [
130
+ ...VULKAN_KERNEL_FILES,
131
+ ...VULKAN_MULTIBLOCK_KERNEL_FILES,
132
+ ...VULKAN_FUSED_KERNEL_FILES,
133
+ ];
134
+
135
+ const SHADER_SENTINEL = "// ELIZA-VK-DISPATCH-PATCH-V1";
136
+ const _PATCH_SENTINEL = "ELIZA-VK-DISPATCH-PATCH-V1";
137
+ const RUNTIME_SENTINEL = "// ELIZA-VK-RUNTIME-DISPATCH-V1";
76
138
 
77
139
  const PATCH_TARGETS = [
78
140
  {
@@ -87,18 +149,13 @@ const PATCH_TARGETS = [
87
149
  },
88
150
  {
89
151
  file: "02-ggml-vulkan-pipelines.patch",
90
- target: path.posix.join(
91
- "ggml",
92
- "src",
93
- "ggml-vulkan",
94
- "ggml-vulkan.cpp",
95
- ),
152
+ target: path.posix.join("ggml", "src", "ggml-vulkan", "ggml-vulkan.cpp"),
96
153
  },
97
154
  ];
98
155
 
99
156
  function assertStandalonesPresent() {
100
157
  const missing = [];
101
- for (const name of VULKAN_KERNEL_FILES) {
158
+ for (const name of VULKAN_ALL_STAGED_FILES) {
102
159
  const src = path.join(STANDALONE_VULKAN_DIR, name);
103
160
  if (!fs.existsSync(src)) {
104
161
  missing.push(src);
@@ -118,7 +175,7 @@ function assertStandalonesPresent() {
118
175
 
119
176
  function copyStandalonesIntoFork(cacheDir, { dryRun }) {
120
177
  // vulkan-shaders/ is the directory the upstream CMakeLists uses for
121
- // file(GLOB CONFIGURE_DEPENDS *.comp) — dropping our 8 files there causes
178
+ // file(GLOB CONFIGURE_DEPENDS *.comp) — dropping our files there causes
122
179
  // glslc to compile them automatically as part of the existing per-shader
123
180
  // add_custom_command pipeline. The string_to_spv() registration patch
124
181
  // (01-vulkan-shaders-gen.patch) wires the resulting .spv bytes into
@@ -138,7 +195,7 @@ function copyStandalonesIntoFork(cacheDir, { dryRun }) {
138
195
  );
139
196
  }
140
197
  const copied = [];
141
- for (const name of VULKAN_KERNEL_FILES) {
198
+ for (const name of VULKAN_ALL_STAGED_FILES) {
142
199
  const src = path.join(STANDALONE_VULKAN_DIR, name);
143
200
  const dst = path.join(targetDir, name);
144
201
  if (dryRun) {
@@ -149,7 +206,7 @@ function copyStandalonesIntoFork(cacheDir, { dryRun }) {
149
206
  // human inspecting the fork tree can see the file came from us.
150
207
  const stamped =
151
208
  `${SHADER_SENTINEL} — staged from packages/inference/vulkan/${name} by\n` +
152
- `// build-llama-cpp-dflash.mjs. Frozen — do not edit in fork.\n` +
209
+ `// build-llama-cpp-mtp.mjs. Frozen — do not edit in fork.\n` +
153
210
  text;
154
211
  fs.writeFileSync(dst, stamped, "utf8");
155
212
  }
@@ -169,15 +226,25 @@ function parsePatchFile(filePath) {
169
226
  let injectLines = [];
170
227
  for (const line of lines) {
171
228
  if (line.startsWith("ANCHOR")) {
172
- cur = { anchor: line.replace(/^ANCHOR\s+/, ""), sentinel: null, inject: null };
229
+ cur = {
230
+ anchor: line.replace(/^ANCHOR\s+/, ""),
231
+ sentinel: null,
232
+ inject: null,
233
+ };
173
234
  } else if (line.startsWith("SENTINEL")) {
174
- if (!cur) throw new Error(`[vulkan-kernels] SENTINEL before ANCHOR in ${filePath}`);
235
+ if (!cur)
236
+ throw new Error(
237
+ `[vulkan-kernels] SENTINEL before ANCHOR in ${filePath}`,
238
+ );
175
239
  cur.sentinel = line.replace(/^SENTINEL\s+/, "").trim();
176
240
  } else if (line === "---INJECT-BEGIN---") {
177
241
  inInject = true;
178
242
  injectLines = [];
179
243
  } else if (line === "---INJECT-END---") {
180
- if (!cur) throw new Error(`[vulkan-kernels] INJECT-END without ANCHOR in ${filePath}`);
244
+ if (!cur)
245
+ throw new Error(
246
+ `[vulkan-kernels] INJECT-END without ANCHOR in ${filePath}`,
247
+ );
181
248
  cur.inject = injectLines.join("\n");
182
249
  hunks.push(cur);
183
250
  cur = null;
@@ -202,7 +269,7 @@ function parsePatchFile(filePath) {
202
269
  function applyHunk(text, hunk, ctx) {
203
270
  // Use the first non-blank line of the inject block as the per-hunk
204
271
  // sentinel. Each inject block in our patches starts with a unique
205
- // `// MILADY-VK-DISPATCH-PATCH-V1 BEGIN — <description>` comment, so
272
+ // `// ELIZA-VK-DISPATCH-PATCH-V1 BEGIN — <description>` comment, so
206
273
  // first-non-blank identifies it precisely.
207
274
  const firstLine = hunk.inject.split("\n").find((l) => l.trim().length > 0);
208
275
  if (!firstLine) {
@@ -240,7 +307,13 @@ function applyPatches(cacheDir, { dryRun }) {
240
307
  console.log(
241
308
  `[vulkan-kernels] (dry-run) would apply ${hunks.length} hunk(s) from ${file} to ${target}`,
242
309
  );
243
- results.push({ file, target, hunks: hunks.length, applied: 0, skipped: hunks.length });
310
+ results.push({
311
+ file,
312
+ target,
313
+ hunks: hunks.length,
314
+ applied: 0,
315
+ skipped: hunks.length,
316
+ });
244
317
  continue;
245
318
  }
246
319
  let text = fs.readFileSync(targetPath, "utf8");
@@ -249,7 +322,8 @@ function applyPatches(cacheDir, { dryRun }) {
249
322
  for (const hunk of hunks) {
250
323
  const r = applyHunk(text, hunk, target);
251
324
  text = r.text;
252
- if (r.applied) applied++; else skipped++;
325
+ if (r.applied) applied++;
326
+ else skipped++;
253
327
  }
254
328
  fs.writeFileSync(targetPath, text, "utf8");
255
329
  results.push({ file, target, hunks: hunks.length, applied, skipped });
@@ -257,25 +331,702 @@ function applyPatches(cacheDir, { dryRun }) {
257
331
  return results;
258
332
  }
259
333
 
260
- // Public entry point used by build-llama-cpp-dflash.mjs.
261
- export function patchVulkanKernels(cacheDir, { dryRun = false, target = null } = {}) {
334
+ function ensureLineAfter(text, anchor, line, ctx) {
335
+ if (text.includes(line)) return { text, changed: false };
336
+ if (!text.includes(anchor)) {
337
+ throw new Error(
338
+ `[vulkan-kernels] repair anchor not found in ${ctx}: ${anchor}`,
339
+ );
340
+ }
341
+ return {
342
+ text: text.replace(anchor, `${anchor}\n${line}`),
343
+ changed: true,
344
+ };
345
+ }
346
+
347
+ function repairPolarPrehtShaderRegistration(cacheDir, { dryRun }) {
348
+ const targetPath = path.join(
349
+ cacheDir,
350
+ "ggml",
351
+ "src",
352
+ "ggml-vulkan",
353
+ "vulkan-shaders",
354
+ "vulkan-shaders-gen.cpp",
355
+ );
356
+ const anchor = ` string_to_spv("eliza_polar", "polar.comp", {});`;
357
+ const line = ` string_to_spv("eliza_polar_preht", "polar_preht.comp", {});`;
358
+ const original = fs.readFileSync(targetPath, "utf8");
359
+ const repaired = ensureLineAfter(original, anchor, line, targetPath);
360
+ if (repaired.changed && !dryRun) {
361
+ fs.writeFileSync(targetPath, repaired.text, "utf8");
362
+ }
363
+ return {
364
+ target: targetPath,
365
+ changed: repaired.changed && !dryRun,
366
+ wouldChange: repaired.changed,
367
+ };
368
+ }
369
+
370
+ function repairPolarPrehtPipeline(cacheDir, { dryRun }) {
371
+ const targetPath = path.join(
372
+ cacheDir,
373
+ "ggml",
374
+ "src",
375
+ "ggml-vulkan",
376
+ "ggml-vulkan.cpp",
377
+ );
378
+ let text = fs.readFileSync(targetPath, "utf8");
379
+ let changed = false;
380
+
381
+ {
382
+ const r = ensureLineAfter(
383
+ text,
384
+ ` vk_pipeline pipeline_eliza_polar;`,
385
+ ` vk_pipeline pipeline_eliza_polar_preht;`,
386
+ targetPath,
387
+ );
388
+ text = r.text;
389
+ changed = changed || r.changed;
390
+ }
391
+ {
392
+ const r = ensureLineAfter(
393
+ text,
394
+ ` ggml_vk_create_pipeline(device, device->pipeline_eliza_polar, "eliza_polar", eliza_polar_len, eliza_polar_data, "main", 3, 6 * sizeof(uint32_t), {1, 1, 1}, {}, 1);`,
395
+ ` ggml_vk_create_pipeline(device, device->pipeline_eliza_polar_preht, "eliza_polar_preht", eliza_polar_preht_len, eliza_polar_preht_data, "main", 3, 6 * sizeof(uint32_t), {1, 1, 1}, {}, 1);`,
396
+ targetPath,
397
+ );
398
+ text = r.text;
399
+ changed = changed || r.changed;
400
+ }
401
+
402
+ if (changed && !dryRun) {
403
+ fs.writeFileSync(targetPath, text, "utf8");
404
+ }
405
+ return {
406
+ target: targetPath,
407
+ changed: changed && !dryRun,
408
+ wouldChange: changed,
409
+ };
410
+ }
411
+
412
+ function repairFusedAttnPipelinePushRanges(cacheDir, { dryRun }) {
413
+ const targetPath = path.join(
414
+ cacheDir,
415
+ "ggml",
416
+ "src",
417
+ "ggml-vulkan",
418
+ "ggml-vulkan.cpp",
419
+ );
420
+ let text = fs.readFileSync(targetPath, "utf8");
421
+ const original = text;
422
+ text = text.replace(
423
+ `"eliza_fused_attn_qjl_tbq", eliza_fused_attn_qjl_tbq_len, eliza_fused_attn_qjl_tbq_data, "main", 4, 6 * sizeof(uint32_t),`,
424
+ `"eliza_fused_attn_qjl_tbq", eliza_fused_attn_qjl_tbq_len, eliza_fused_attn_qjl_tbq_data, "main", 4, 8 * sizeof(uint32_t),`,
425
+ );
426
+ text = text.replace(
427
+ `"eliza_fused_attn_qjl_polar", eliza_fused_attn_qjl_polar_len, eliza_fused_attn_qjl_polar_data, "main", 4, 7 * sizeof(uint32_t),`,
428
+ `"eliza_fused_attn_qjl_polar", eliza_fused_attn_qjl_polar_len, eliza_fused_attn_qjl_polar_data, "main", 4, 9 * sizeof(uint32_t),`,
429
+ );
430
+ const changed = text !== original;
431
+ if (changed && !dryRun) {
432
+ fs.writeFileSync(targetPath, text, "utf8");
433
+ }
434
+ return {
435
+ target: targetPath,
436
+ changed: changed && !dryRun,
437
+ wouldChange: changed,
438
+ };
439
+ }
440
+
441
+ function extractTcqCodebookSource() {
442
+ const referencePath = path.join(STANDALONE_REFERENCE_DIR, "turbo_kernels.c");
443
+ const source = fs.readFileSync(referencePath, "utf8");
444
+ const match = source.match(
445
+ /const float ELIZA_TURBO3_TCQ_CODEBOOK\[512\]\s*=\s*\{([\s\S]*?)\};/,
446
+ );
447
+ if (!match) {
448
+ throw new Error(
449
+ `[vulkan-runtime-dispatch] could not extract TCQ codebook from ${referencePath}`,
450
+ );
451
+ }
452
+ return match[1].trim();
453
+ }
454
+
455
+ function patchVulkanRuntimeDispatch(cacheDir, { dryRun }) {
456
+ // TBQ and Polar attention-score graph constructors are backend-neutral ggml
457
+ // surface area. The Metal patch already owns the idempotent ggml.h/ggml.c
458
+ // mutation; reuse it here so a fresh Vulkan-only build can compile the same
459
+ // graph ops instead of depending on a previous Metal build having dirtied the
460
+ // cached fork.
461
+ const ggmlOps = patchGgmlTbqPolarAttnOps(cacheDir, { dryRun });
462
+
463
+ const vulkanPath = path.join(
464
+ cacheDir,
465
+ "ggml",
466
+ "src",
467
+ "ggml-vulkan",
468
+ "ggml-vulkan.cpp",
469
+ );
470
+ const original = fs.readFileSync(vulkanPath, "utf8");
471
+ let patched = original;
472
+
473
+ // 02-ggml-vulkan-pipelines.patch historically created eliza_polar with a
474
+ // 3*u32 push-constant range. Runtime graph dispatch needs per-head output and
475
+ // K-head byte offsets so it can bind the whole tensor and avoid illegal
476
+ // unaligned descriptor offsets. Keep old cached checkouts repairable.
477
+ patched = patched.replace(
478
+ `"eliza_polar", eliza_polar_len, eliza_polar_data, "main", 3, 3 * sizeof(uint32_t),`,
479
+ `"eliza_polar", eliza_polar_len, eliza_polar_data, "main", 3, 6 * sizeof(uint32_t),`,
480
+ );
481
+
482
+ // Keep older already-sentinelled cached forks repairable after the fused
483
+ // attention push ABI grew causal/q_pos_base fields.
484
+ patched = patched.replace(
485
+ `struct eliza_vk_fused_attn_push {
486
+ uint32_t n_heads;
487
+ uint32_t n_kv_heads;
488
+ uint32_t n_tokens;
489
+ uint32_t q_pos;
490
+ uint32_t sm_scale_bits;
491
+ uint32_t kv_tile;
492
+ };`,
493
+ `struct eliza_vk_fused_attn_push {
494
+ uint32_t n_heads;
495
+ uint32_t n_kv_heads;
496
+ uint32_t n_tokens;
497
+ uint32_t q_pos;
498
+ uint32_t sm_scale_bits;
499
+ uint32_t kv_tile;
500
+ uint32_t causal;
501
+ uint32_t q_pos_base;
502
+ };`,
503
+ );
504
+ patched = patched.replace(
505
+ ` const uint32_t kv_tile = (uint32_t) params[3];
506
+ const uint32_t n_tokens = (uint32_t) pk->ne[1];`,
507
+ ` const uint32_t kv_tile = (uint32_t) params[3];
508
+ const uint32_t causal = (uint32_t) (params[4] != 0);
509
+ const uint32_t q_pos_base = (uint32_t) params[5];
510
+ const uint32_t n_tokens = (uint32_t) pk->ne[1];`,
511
+ );
512
+ patched = patched.replace(
513
+ ` const uint32_t kv_tile = 0u;
514
+ const uint32_t causal = 0u;
515
+ const uint32_t q_pos_base = 0u;
516
+ const uint32_t n_tokens = (uint32_t) pk->ne[1];`,
517
+ ` const uint32_t kv_tile = (uint32_t) params[3];
518
+ const uint32_t causal = (uint32_t) (params[4] != 0);
519
+ const uint32_t q_pos_base = (uint32_t) params[5];
520
+ const uint32_t n_tokens = (uint32_t) pk->ne[1];`,
521
+ );
522
+ patched = patched.replace(
523
+ ` n_heads, n_kv_heads, n_tokens, (uint32_t) p, sm_bits, kv_tile,
524
+ };`,
525
+ ` n_heads, n_kv_heads, n_tokens, (uint32_t) p, sm_bits, kv_tile, causal, q_pos_base,
526
+ };`,
527
+ );
528
+
529
+ if (!patched.includes(RUNTIME_SENTINEL)) {
530
+ const contextAnchor = ` // for GGML_VK_PERF_LOGGER`;
531
+ if (!patched.includes(contextAnchor)) {
532
+ throw new Error(
533
+ `[vulkan-runtime-dispatch] context anchor not found in ${vulkanPath}`,
534
+ );
535
+ }
536
+ patched = patched.replace(
537
+ contextAnchor,
538
+ ` ${RUNTIME_SENTINEL}
539
+ // Persistent device-side TCQ codebook used by GGML_OP_ATTN_SCORE_TBQ when
540
+ // packed_k is GGML_TYPE_TBQ3_TCQ. Created lazily on first dispatch.
541
+ vk_buffer eliza_turbo3_tcq_codebook;
542
+
543
+ ${contextAnchor}`,
544
+ );
545
+
546
+ const codebook = extractTcqCodebookSource();
547
+ const helperAnchor = `static void ggml_vk_compute_forward(ggml_backend_vk_context* ctx, ggml_cgraph * cgraph, ggml_tensor* tensor, int tensor_idx, bool almost_ready);`;
548
+ if (!patched.includes(helperAnchor)) {
549
+ throw new Error(
550
+ `[vulkan-runtime-dispatch] compute-forward anchor not found in ${vulkanPath}`,
551
+ );
552
+ }
553
+ const helper = `${RUNTIME_SENTINEL}
554
+ struct eliza_vk_qjl_score_push {
555
+ uint32_t n_heads;
556
+ uint32_t n_kv_heads;
557
+ uint32_t n_tokens;
558
+ uint32_t proj_dim;
559
+ };
560
+
561
+ struct eliza_vk_tbq_score_push {
562
+ uint32_t head_dim;
563
+ uint32_t n_kv;
564
+ uint32_t kv_stride_blocks;
565
+ uint32_t q_head;
566
+ uint32_t head_offset_bytes;
567
+ };
568
+
569
+ struct eliza_vk_polar_score_push {
570
+ uint32_t n_rows;
571
+ uint32_t head_dim;
572
+ uint32_t use_qjl;
573
+ uint32_t k_offset_bytes;
574
+ uint32_t q_offset;
575
+ uint32_t y_offset;
576
+ };
577
+
578
+ struct eliza_vk_fused_attn_push {
579
+ uint32_t n_heads;
580
+ uint32_t n_kv_heads;
581
+ uint32_t n_tokens;
582
+ uint32_t q_pos;
583
+ uint32_t sm_scale_bits;
584
+ uint32_t kv_tile;
585
+ uint32_t causal;
586
+ uint32_t q_pos_base;
587
+ };
588
+
589
+ // Long-context / non-voice scoring amortises the per-dispatch launch tax by
590
+ // folding several KV indices (resp. tokens) into one workgroup via the
591
+ // constant_id=0 spec constant (BLOCKS_PER_WG / TOKENS_PER_WG) baked into the
592
+ // _multi pipeline at create time. Voice / small-n_kv stays single-block.
593
+ //
594
+ // The *fold factor* is device-policy: it is chosen by vendor in
595
+ // ggml_vk_load_shaders (02-ggml-vulkan-pipelines.patch hunk 2) and stored on
596
+ // device->eliza_vk_{tbq,qjl}_multiblock_factor. The dispatch here reads that
597
+ // field so the grid divisor always matches whatever the pipeline was created
598
+ // with. From vulkan_bench (VK_QUERY_TYPE_TIMESTAMP per-dispatch sweep over
599
+ // {1,2,4,8,16}; vulkan_kopt_2026-05-11.json):
600
+ // * NVIDIA discrete (RTX 5080 Laptop): TBQ factor 16 (turbo3 386us→48us at
601
+ // 4k, ~3.2x at 32k), QJL factor 8 (4742us→374us at 4k, ~8.6x at 32k).
602
+ // * Intel Arc/Xe iGPU (Mesa ANV 25.2.8): bandwidth-bound at n_kv>=512, both
603
+ // factors stay 4 — only the engage threshold matters. QJL engages from
604
+ // 1024 tokens (the fold hoists the 256-wide q_sketch + sign vector out of
605
+ // the per-token loop, ~1.3x at 512 / ~1.8x at 4k); TBQ engages only at
606
+ // n_kv>=8192 (it's a wash at 512 and a slight regression at 4k on ANV).
607
+ // * Default / unprofiled (Adreno, Mali, AMD): conservative factor 4 and the
608
+ // same thresholds — safe everywhere. AMD wave64 wants its own sweep.
609
+ // (The thresholds below are the same on every device; only the fold factor
610
+ // diverges. The discrete-GPU thresholds being identical to the iGPU ones is
611
+ // deliberate — on NVIDIA the _multi path is a win at *every* measured length
612
+ // (e.g. turbo3 512: 83us single → 30us folded), so engaging from 1024/8192
613
+ // only loses a little of the available speedup at the very small end.)
614
+ static const int64_t ELIZA_VK_QJL_MULTIBLOCK_THRESHOLD = 1024;
615
+ static const int64_t ELIZA_VK_TBQ_MULTIBLOCK_THRESHOLD = 8192;
616
+
617
+ static const float k_eliza_tbq3_tcq_codebook[512] = {
618
+ ${codebook}
619
+ };
620
+
621
+ static vk_pipeline eliza_vk_pipeline_for_tbq(ggml_backend_vk_context * ctx, ggml_type type) {
622
+ switch (type) {
623
+ case GGML_TYPE_TBQ3_0: return ctx->device->pipeline_eliza_turbo3;
624
+ case GGML_TYPE_TBQ4_0: return ctx->device->pipeline_eliza_turbo4;
625
+ case GGML_TYPE_TBQ3_TCQ: return ctx->device->pipeline_eliza_turbo3_tcq;
626
+ default: GGML_ABORT("eliza_vk_pipeline_for_tbq: unsupported type");
627
+ }
628
+ }
629
+
630
+ static vk_pipeline eliza_vk_pipeline_for_tbq_multi(ggml_backend_vk_context * ctx, ggml_type type) {
631
+ switch (type) {
632
+ case GGML_TYPE_TBQ3_0: return ctx->device->pipeline_eliza_turbo3_multi;
633
+ case GGML_TYPE_TBQ4_0: return ctx->device->pipeline_eliza_turbo4_multi;
634
+ case GGML_TYPE_TBQ3_TCQ: return ctx->device->pipeline_eliza_turbo3_tcq_multi;
635
+ default: GGML_ABORT("eliza_vk_pipeline_for_tbq_multi: unsupported type");
636
+ }
637
+ }
638
+
639
+ static vk_buffer eliza_vk_turbo3_tcq_codebook(ggml_backend_vk_context * ctx) {
640
+ if (ctx->eliza_turbo3_tcq_codebook == nullptr) {
641
+ ctx->eliza_turbo3_tcq_codebook = ggml_vk_create_buffer_device(ctx->device, sizeof(k_eliza_tbq3_tcq_codebook));
642
+ ggml_vk_buffer_write(ctx->eliza_turbo3_tcq_codebook, 0, k_eliza_tbq3_tcq_codebook, sizeof(k_eliza_tbq3_tcq_codebook));
643
+ }
644
+ return ctx->eliza_turbo3_tcq_codebook;
645
+ }
646
+
647
+ static void ggml_vk_eliza_attn_score_qjl(ggml_backend_vk_context * ctx, vk_context& subctx, ggml_tensor * dst) {
648
+ const ggml_tensor * q = dst->src[0];
649
+ const ggml_tensor * pk = dst->src[1];
650
+ GGML_ASSERT(q != nullptr && pk != nullptr);
651
+ GGML_ASSERT(q->type == GGML_TYPE_F32);
652
+ GGML_ASSERT(pk->type == GGML_TYPE_QJL1_256);
653
+ GGML_ASSERT(dst->type == GGML_TYPE_F32);
654
+ GGML_ASSERT(q->ne[0] == 256 && pk->ne[0] == 128);
655
+ GGML_ASSERT(q->ne[2] == 1 && q->ne[3] == 1 && pk->ne[3] == 1 && dst->ne[2] == 1 && dst->ne[3] == 1);
656
+ GGML_ASSERT(ggml_is_contiguous_rows(q));
657
+ GGML_ASSERT(ggml_is_contiguous_rows(pk));
658
+ GGML_ASSERT(ggml_is_contiguous_rows(dst));
659
+
660
+ const uint32_t n_heads = (uint32_t) q->ne[1];
661
+ const uint32_t n_kv_heads = (uint32_t) ((const int32_t *) dst->op_params)[0];
662
+ const uint32_t n_tokens = (uint32_t) pk->ne[1];
663
+ GGML_ASSERT(n_kv_heads > 0 && (n_heads % n_kv_heads) == 0);
664
+ GGML_ASSERT(pk->ne[2] == (int64_t) n_kv_heads);
665
+ GGML_ASSERT(dst->ne[0] == (int64_t) n_tokens && dst->ne[1] == (int64_t) n_heads);
666
+ GGML_ASSERT(pk->nb[1] == ggml_row_size(GGML_TYPE_QJL1_256, 128));
667
+ GGML_ASSERT(pk->nb[2] == (size_t) n_tokens * pk->nb[1]);
668
+
669
+ const bool multi = (int64_t) n_tokens >= ELIZA_VK_QJL_MULTIBLOCK_THRESHOLD;
670
+ const uint32_t qjl_fold = ctx->device->eliza_vk_qjl_multiblock_factor;
671
+ vk_pipeline pipeline = multi ? ctx->device->pipeline_eliza_qjl_multi
672
+ : ctx->device->pipeline_eliza_qjl;
673
+ const uint32_t grid_y = multi ? (n_tokens + qjl_fold - 1u) / qjl_fold : n_tokens;
674
+ ggml_pipeline_request_descriptor_sets(ctx, pipeline, 1);
675
+ const eliza_vk_qjl_score_push pc = { n_heads, n_kv_heads, n_tokens, 256u };
676
+ ggml_vk_dispatch_pipeline(
677
+ ctx, subctx, pipeline,
678
+ { ggml_vk_tensor_subbuffer(ctx, q), ggml_vk_tensor_subbuffer(ctx, pk), ggml_vk_tensor_subbuffer(ctx, dst) },
679
+ pc, { n_heads, grid_y, 1 });
680
+ }
681
+
682
+ static void ggml_vk_eliza_attn_score_tbq(ggml_backend_vk_context * ctx, vk_context& subctx, ggml_tensor * dst) {
683
+ const ggml_tensor * q = dst->src[0];
684
+ const ggml_tensor * pk = dst->src[1];
685
+ GGML_ASSERT(q != nullptr && pk != nullptr);
686
+ GGML_ASSERT(q->type == GGML_TYPE_F32);
687
+ GGML_ASSERT(pk->type == GGML_TYPE_TBQ3_0 || pk->type == GGML_TYPE_TBQ4_0 || pk->type == GGML_TYPE_TBQ3_TCQ);
688
+ GGML_ASSERT(dst->type == GGML_TYPE_F32);
689
+ GGML_ASSERT(q->ne[0] == 128 && pk->ne[0] == 128);
690
+ GGML_ASSERT(q->ne[2] == 1 && q->ne[3] == 1 && pk->ne[3] == 1 && dst->ne[2] == 1 && dst->ne[3] == 1);
691
+ GGML_ASSERT(ggml_is_contiguous_rows(q));
692
+ GGML_ASSERT(ggml_is_contiguous_rows(pk));
693
+ GGML_ASSERT(ggml_is_contiguous_rows(dst));
694
+
695
+ const uint32_t n_heads = (uint32_t) q->ne[1];
696
+ const uint32_t n_kv_heads = (uint32_t) ((const int32_t *) dst->op_params)[0];
697
+ const uint32_t n_tokens = (uint32_t) pk->ne[1];
698
+ const uint32_t gqa = n_heads / n_kv_heads;
699
+ const uint32_t blocks_per_kv = (uint32_t) (pk->ne[0] / ggml_blck_size(pk->type));
700
+ GGML_ASSERT(n_kv_heads > 0 && (n_heads % n_kv_heads) == 0);
701
+ GGML_ASSERT(pk->ne[2] == (int64_t) n_kv_heads);
702
+ GGML_ASSERT(dst->ne[0] == (int64_t) n_tokens && dst->ne[1] == (int64_t) n_heads);
703
+ GGML_ASSERT(pk->nb[1] == ggml_row_size(pk->type, 128));
704
+ GGML_ASSERT(pk->nb[2] == (size_t) n_tokens * pk->nb[1]);
705
+
706
+ const bool multi = (int64_t) n_tokens >= ELIZA_VK_TBQ_MULTIBLOCK_THRESHOLD;
707
+ const uint32_t tbq_fold = ctx->device->eliza_vk_tbq_multiblock_factor;
708
+ vk_pipeline pipeline = multi ? eliza_vk_pipeline_for_tbq_multi(ctx, pk->type)
709
+ : eliza_vk_pipeline_for_tbq(ctx, pk->type);
710
+ const uint32_t grid_x = multi ? (n_tokens + tbq_fold - 1u) / tbq_fold : n_tokens;
711
+ const vk_subbuffer q_buf = ggml_vk_tensor_subbuffer(ctx, q);
712
+ const vk_subbuffer pk_buf = ggml_vk_tensor_subbuffer(ctx, pk);
713
+ const vk_subbuffer dst_buf = ggml_vk_tensor_subbuffer(ctx, dst);
714
+ const bool is_tcq = pk->type == GGML_TYPE_TBQ3_TCQ;
715
+ const vk_subbuffer codebook_buf = is_tcq ? ggml_vk_subbuffer(ctx, eliza_vk_turbo3_tcq_codebook(ctx)) : vk_subbuffer{};
716
+
717
+ ggml_pipeline_request_descriptor_sets(ctx, pipeline, n_heads);
718
+ for (uint32_t h = 0; h < n_heads; ++h) {
719
+ const uint32_t h_k = h / gqa;
720
+ const uint64_t head_offset = (uint64_t) h_k * (uint64_t) pk->nb[2];
721
+ GGML_ASSERT(head_offset <= UINT32_MAX);
722
+ const eliza_vk_tbq_score_push pc = {
723
+ 128u,
724
+ n_tokens,
725
+ blocks_per_kv,
726
+ h,
727
+ (uint32_t) head_offset,
728
+ };
729
+ if (is_tcq) {
730
+ ggml_vk_dispatch_pipeline(ctx, subctx, pipeline, { q_buf, pk_buf, dst_buf, codebook_buf }, pc, { grid_x, 1, 1 });
731
+ } else {
732
+ ggml_vk_dispatch_pipeline(ctx, subctx, pipeline, { q_buf, pk_buf, dst_buf }, pc, { grid_x, 1, 1 });
733
+ }
734
+ }
735
+ }
736
+
737
+ static void ggml_vk_eliza_attn_score_polar(ggml_backend_vk_context * ctx, vk_context& subctx, ggml_tensor * dst) {
738
+ const ggml_tensor * q = dst->src[0];
739
+ const ggml_tensor * pk = dst->src[1];
740
+ GGML_ASSERT(q != nullptr && pk != nullptr);
741
+ GGML_ASSERT(q->type == GGML_TYPE_F32);
742
+ GGML_ASSERT(pk->type == GGML_TYPE_Q4_POLAR);
743
+ GGML_ASSERT(dst->type == GGML_TYPE_F32);
744
+ GGML_ASSERT(q->ne[0] == 128 && pk->ne[0] == 128);
745
+ GGML_ASSERT(q->ne[2] == 1 && q->ne[3] == 1 && pk->ne[3] == 1 && dst->ne[2] == 1 && dst->ne[3] == 1);
746
+ GGML_ASSERT(ggml_is_contiguous_rows(q));
747
+ GGML_ASSERT(ggml_is_contiguous_rows(pk));
748
+ GGML_ASSERT(ggml_is_contiguous_rows(dst));
749
+
750
+ const int32_t * params = (const int32_t *) dst->op_params;
751
+ const uint32_t n_heads = (uint32_t) q->ne[1];
752
+ const uint32_t n_kv_heads = (uint32_t) params[0];
753
+ const uint32_t n_tokens = (uint32_t) pk->ne[1];
754
+ const uint32_t use_qjl = (uint32_t) (params[1] != 0);
755
+ const uint32_t gqa = n_heads / n_kv_heads;
756
+ GGML_ASSERT(n_kv_heads > 0 && (n_heads % n_kv_heads) == 0);
757
+ GGML_ASSERT(pk->ne[2] == (int64_t) n_kv_heads);
758
+ GGML_ASSERT(dst->ne[0] == (int64_t) n_tokens && dst->ne[1] == (int64_t) n_heads);
759
+ GGML_ASSERT(pk->nb[1] == ggml_row_size(GGML_TYPE_Q4_POLAR, 128));
760
+ GGML_ASSERT(pk->nb[2] == (size_t) n_tokens * pk->nb[1]);
761
+
762
+ vk_pipeline pipeline = ctx->device->pipeline_eliza_polar;
763
+ const vk_subbuffer pk_buf = ggml_vk_tensor_subbuffer(ctx, pk);
764
+ const vk_subbuffer q_buf = ggml_vk_tensor_subbuffer(ctx, q);
765
+ const vk_subbuffer dst_buf = ggml_vk_tensor_subbuffer(ctx, dst);
766
+
767
+ ggml_pipeline_request_descriptor_sets(ctx, pipeline, n_heads);
768
+ for (uint32_t h = 0; h < n_heads; ++h) {
769
+ const uint32_t h_k = h / gqa;
770
+ const uint64_t k_offset = (uint64_t) h_k * (uint64_t) pk->nb[2];
771
+ const uint64_t q_offset = ((uint64_t) h * (uint64_t) q->nb[1]) / sizeof(float);
772
+ const uint64_t y_offset = ((uint64_t) h * (uint64_t) dst->nb[1]) / sizeof(float);
773
+ GGML_ASSERT(k_offset <= UINT32_MAX && q_offset <= UINT32_MAX && y_offset <= UINT32_MAX);
774
+ const eliza_vk_polar_score_push pc = {
775
+ n_tokens,
776
+ 128u,
777
+ use_qjl,
778
+ (uint32_t) k_offset,
779
+ (uint32_t) q_offset,
780
+ (uint32_t) y_offset,
781
+ };
782
+ ggml_vk_dispatch_pipeline(ctx, subctx, pipeline, { pk_buf, q_buf, dst_buf }, pc, { n_tokens, 1, 1 });
783
+ }
784
+ }
785
+
786
+ // GGML_OP_FUSED_ATTN_QJL_TBQ — fused QJL-K score + TBQ3-V mix, online softmax,
787
+ // the per-token score vector never materialised. Mirrors the C reference
788
+ // eliza_fused_attn_qjl_tbq3() / fused_attn_qjl_tbq_ref() and the op contract
789
+ // reports/porting/2026-05-11/fused-attn-op-contract.md §3/§6:
790
+ // src[0] = q F32 [proj_dim=256, n_heads, n_q_pos, ne3] (pre-projected QJL sketch)
791
+ // src[1] = packed_k QJL1_256 [head_dim=128, n_kv, n_kv_heads, ne3] (nb[1] == 34)
792
+ // src[2] = packed_v TBQ3_0 [head_dim=128, n_kv, n_kv_heads, ne3] (nb[1] == 56, 4 chunks/token)
793
+ // dst = out F32 [head_dim=128, n_heads, n_q_pos, ne3]
794
+ // op_params[0] = n_kv_heads, [1] = sm_scale (float bits), [2] = v_use_qjl (TBQ ignores it),
795
+ // [3] = kv_tile, [4] = causal, [5] = q_pos_base
796
+ // One workgroup per (q_head); q_pos is a push constant, so n_q_pos > 1 is a
797
+ // loop of dispatches (decode = 1). Conservative shape (ne3 == 1) matching the
798
+ // other eliza graph routes; the unfused score → softmax → V-mix path covers
799
+ // the wider shapes (AGENTS.md §3 — no silent degradation).
800
+ static void ggml_vk_eliza_fused_attn_qjl_tbq(ggml_backend_vk_context * ctx, vk_context& subctx, ggml_tensor * dst) {
801
+ const ggml_tensor * q = dst->src[0];
802
+ const ggml_tensor * pk = dst->src[1];
803
+ const ggml_tensor * pv = dst->src[2];
804
+ GGML_ASSERT(q != nullptr && pk != nullptr && pv != nullptr);
805
+ GGML_ASSERT(q->type == GGML_TYPE_F32);
806
+ GGML_ASSERT(pk->type == GGML_TYPE_QJL1_256);
807
+ GGML_ASSERT(pv->type == GGML_TYPE_TBQ3_0);
808
+ GGML_ASSERT(dst->type == GGML_TYPE_F32);
809
+ GGML_ASSERT(q->ne[0] == 256 && pk->ne[0] == 128 && pv->ne[0] == 128 && dst->ne[0] == 128);
810
+ GGML_ASSERT(q->ne[3] == 1 && pk->ne[3] == 1 && pv->ne[3] == 1 && dst->ne[3] == 1);
811
+ GGML_ASSERT(ggml_is_contiguous(q));
812
+ GGML_ASSERT(ggml_is_contiguous(pk));
813
+ GGML_ASSERT(ggml_is_contiguous(pv));
814
+ GGML_ASSERT(ggml_is_contiguous(dst));
815
+
816
+ const int32_t * params = (const int32_t *) dst->op_params;
817
+ const uint32_t n_heads = (uint32_t) q->ne[1];
818
+ const uint32_t n_kv_heads = (uint32_t) params[0];
819
+ const uint32_t sm_bits = (uint32_t) params[1];
820
+ const uint32_t kv_tile = (uint32_t) params[3];
821
+ const uint32_t causal = (uint32_t) (params[4] != 0);
822
+ const uint32_t q_pos_base = (uint32_t) params[5];
823
+ const uint32_t n_tokens = (uint32_t) pk->ne[1];
824
+ const int64_t n_q_pos = q->ne[2];
825
+ GGML_ASSERT(n_kv_heads > 0 && (n_heads % n_kv_heads) == 0);
826
+ GGML_ASSERT(pk->ne[2] == (int64_t) n_kv_heads && pv->ne[2] == (int64_t) n_kv_heads);
827
+ GGML_ASSERT(dst->ne[1] == (int64_t) n_heads && dst->ne[2] == n_q_pos);
828
+ GGML_ASSERT(pk->nb[1] == ggml_row_size(GGML_TYPE_QJL1_256, 128));
829
+ GGML_ASSERT(pv->nb[1] == ggml_row_size(GGML_TYPE_TBQ3_0, 128));
830
+ GGML_ASSERT(pk->nb[2] == (size_t) n_tokens * pk->nb[1]);
831
+ GGML_ASSERT(pv->nb[2] == (size_t) n_tokens * pv->nb[1]);
832
+
833
+ vk_pipeline pipeline = ctx->device->pipeline_eliza_fused_attn_qjl_tbq;
834
+ const vk_subbuffer q_buf = ggml_vk_tensor_subbuffer(ctx, q);
835
+ const vk_subbuffer pk_buf = ggml_vk_tensor_subbuffer(ctx, pk);
836
+ const vk_subbuffer pv_buf = ggml_vk_tensor_subbuffer(ctx, pv);
837
+ const vk_subbuffer dst_buf = ggml_vk_tensor_subbuffer(ctx, dst);
838
+
839
+ ggml_pipeline_request_descriptor_sets(ctx, pipeline, (uint32_t) n_q_pos);
840
+ for (int64_t p = 0; p < n_q_pos; ++p) {
841
+ const eliza_vk_fused_attn_push pc = {
842
+ n_heads, n_kv_heads, n_tokens, (uint32_t) p, sm_bits, kv_tile, causal, q_pos_base,
843
+ };
844
+ ggml_vk_dispatch_pipeline(ctx, subctx, pipeline, { q_buf, pk_buf, pv_buf, dst_buf }, pc, { n_heads, 1, 1 });
845
+ }
846
+ }
847
+
848
+ `;
849
+ patched = patched.replace(helperAnchor, helper + helperAnchor);
850
+
851
+ const switchAnchor = ` case GGML_OP_FLASH_ATTN_EXT:
852
+ ggml_vk_flash_attn(ctx, compute_ctx, src0, src1, src2, src3, node->src[4], node);
853
+
854
+ break;`;
855
+ if (!patched.includes(switchAnchor)) {
856
+ throw new Error(
857
+ `[vulkan-runtime-dispatch] graph switch anchor not found in ${vulkanPath}`,
858
+ );
859
+ }
860
+ patched = patched.replace(
861
+ switchAnchor,
862
+ ` case GGML_OP_ATTN_SCORE_QJL:
863
+ ggml_vk_eliza_attn_score_qjl(ctx, compute_ctx, node);
864
+
865
+ break;
866
+ case GGML_OP_ATTN_SCORE_TBQ:
867
+ ggml_vk_eliza_attn_score_tbq(ctx, compute_ctx, node);
868
+
869
+ break;
870
+ case GGML_OP_ATTN_SCORE_POLAR:
871
+ ggml_vk_eliza_attn_score_polar(ctx, compute_ctx, node);
872
+
873
+ break;
874
+ case GGML_OP_FUSED_ATTN_QJL_TBQ:
875
+ ggml_vk_eliza_fused_attn_qjl_tbq(ctx, compute_ctx, node);
876
+
877
+ break;
878
+
879
+ ${switchAnchor}`,
880
+ );
881
+
882
+ const supportsAnchor = ` case GGML_OP_FLASH_ATTN_EXT:
883
+ {`;
884
+ if (!patched.includes(supportsAnchor)) {
885
+ throw new Error(
886
+ `[vulkan-runtime-dispatch] supports_op anchor not found in ${vulkanPath}`,
887
+ );
888
+ }
889
+ const supports = ` case GGML_OP_ATTN_SCORE_QJL:
890
+ return op->type == GGML_TYPE_F32 &&
891
+ op->src[0] != nullptr &&
892
+ op->src[1] != nullptr &&
893
+ op->src[0]->type == GGML_TYPE_F32 &&
894
+ op->src[1]->type == GGML_TYPE_QJL1_256 &&
895
+ op->src[0]->ne[0] == 256 &&
896
+ op->src[1]->ne[0] == 128 &&
897
+ op->src[0]->ne[2] == 1 &&
898
+ op->src[0]->ne[3] == 1 &&
899
+ op->src[1]->ne[3] == 1 &&
900
+ op->ne[2] == 1 &&
901
+ op->ne[3] == 1 &&
902
+ ggml_is_contiguous_rows(op) &&
903
+ ggml_is_contiguous_rows(op->src[0]) &&
904
+ ggml_is_contiguous_rows(op->src[1]);
905
+ case GGML_OP_ATTN_SCORE_TBQ:
906
+ return op->type == GGML_TYPE_F32 &&
907
+ op->src[0] != nullptr &&
908
+ op->src[1] != nullptr &&
909
+ op->src[0]->type == GGML_TYPE_F32 &&
910
+ (op->src[1]->type == GGML_TYPE_TBQ3_0 ||
911
+ op->src[1]->type == GGML_TYPE_TBQ4_0 ||
912
+ op->src[1]->type == GGML_TYPE_TBQ3_TCQ) &&
913
+ op->src[0]->ne[0] == 128 &&
914
+ op->src[1]->ne[0] == 128 &&
915
+ op->src[0]->ne[2] == 1 &&
916
+ op->src[0]->ne[3] == 1 &&
917
+ op->src[1]->ne[3] == 1 &&
918
+ op->ne[2] == 1 &&
919
+ op->ne[3] == 1 &&
920
+ ggml_is_contiguous_rows(op) &&
921
+ ggml_is_contiguous_rows(op->src[0]) &&
922
+ ggml_is_contiguous_rows(op->src[1]);
923
+ case GGML_OP_ATTN_SCORE_POLAR:
924
+ return op->type == GGML_TYPE_F32 &&
925
+ op->src[0] != nullptr &&
926
+ op->src[1] != nullptr &&
927
+ op->src[0]->type == GGML_TYPE_F32 &&
928
+ op->src[1]->type == GGML_TYPE_Q4_POLAR &&
929
+ op->src[0]->ne[0] == 128 &&
930
+ op->src[1]->ne[0] == 128 &&
931
+ op->src[0]->ne[2] == 1 &&
932
+ op->src[0]->ne[3] == 1 &&
933
+ op->src[1]->ne[3] == 1 &&
934
+ op->ne[2] == 1 &&
935
+ op->ne[3] == 1 &&
936
+ ggml_is_contiguous_rows(op) &&
937
+ ggml_is_contiguous_rows(op->src[0]) &&
938
+ ggml_is_contiguous_rows(op->src[1]);
939
+ case GGML_OP_FUSED_ATTN_QJL_TBQ:
940
+ return op->type == GGML_TYPE_F32 &&
941
+ op->src[0] != nullptr &&
942
+ op->src[1] != nullptr &&
943
+ op->src[2] != nullptr &&
944
+ op->src[0]->type == GGML_TYPE_F32 &&
945
+ op->src[1]->type == GGML_TYPE_QJL1_256 &&
946
+ op->src[2]->type == GGML_TYPE_TBQ3_0 &&
947
+ op->src[0]->ne[0] == 256 &&
948
+ op->src[1]->ne[0] == 128 &&
949
+ op->src[2]->ne[0] == 128 &&
950
+ op->ne[0] == 128 &&
951
+ op->src[0]->ne[3] == 1 &&
952
+ op->src[1]->ne[3] == 1 &&
953
+ op->src[2]->ne[3] == 1 &&
954
+ op->ne[3] == 1 &&
955
+ ggml_is_contiguous(op) &&
956
+ ggml_is_contiguous(op->src[0]) &&
957
+ ggml_is_contiguous(op->src[1]) &&
958
+ ggml_is_contiguous(op->src[2]);
959
+
960
+ `;
961
+ patched = patched.replace(supportsAnchor, supports + supportsAnchor);
962
+ }
963
+
964
+ if (patched !== original && !dryRun) {
965
+ fs.writeFileSync(vulkanPath, patched, "utf8");
966
+ }
967
+ return {
968
+ ggmlOps,
969
+ path: vulkanPath,
970
+ changed: patched !== original && !dryRun,
971
+ sentinel: RUNTIME_SENTINEL,
972
+ };
973
+ }
974
+
975
+ // Public entry point used by build-llama-cpp-mtp.mjs.
976
+ export function patchVulkanKernels(
977
+ cacheDir,
978
+ { dryRun = false, target = null } = {},
979
+ ) {
262
980
  if (!cacheDir || !fs.existsSync(cacheDir)) {
263
981
  throw new Error(`[vulkan-kernels] cacheDir does not exist: ${cacheDir}`);
264
982
  }
265
983
  assertStandalonesPresent();
266
984
  const copied = copyStandalonesIntoFork(cacheDir, { dryRun });
267
985
  const patchResults = applyPatches(cacheDir, { dryRun });
986
+ const prehtRegistration = repairPolarPrehtShaderRegistration(cacheDir, {
987
+ dryRun,
988
+ });
989
+ const prehtPipeline = repairPolarPrehtPipeline(cacheDir, { dryRun });
990
+ const fusedAttnPipeline = repairFusedAttnPipelinePushRanges(cacheDir, {
991
+ dryRun,
992
+ });
993
+ const runtimeDispatch = patchVulkanRuntimeDispatch(cacheDir, { dryRun });
268
994
  console.log(
269
- `[vulkan-kernels] ${dryRun ? "(dry-run) " : ""}staged ${copied.length} standalone Vulkan shaders into vulkan-shaders/ ` +
270
- `and applied ${patchResults.length} dispatch patches:`,
995
+ `[vulkan-kernels] ${dryRun ? "(dry-run) " : ""}target=${target ?? "unknown"} staged ${copied.length} standalone Vulkan shaders into vulkan-shaders/ ` +
996
+ `and applied ${patchResults.length} shader/pipeline patches plus runtime graph dispatch:`,
271
997
  );
272
998
  for (const r of patchResults) {
273
999
  console.log(
274
1000
  `[vulkan-kernels] ${r.file} → ${r.target}: ${r.applied} hunk(s) applied, ${r.skipped} idempotent-skipped`,
275
1001
  );
276
1002
  }
277
- // Note: target arg is currently unused. AGENTS.md §3 enforcement (no
278
- // milady-missing vulkan binary) is now done at build-llama-cpp-dflash.mjs
279
- // post-build via the requiredKernels audit on the SPV blob list.
280
- return { copied, patchResults };
1003
+ console.log(
1004
+ `[vulkan-kernels] runtime graph dispatch patch: ${runtimeDispatch.changed ? "patched" : "already-present/dry-run"} (${runtimeDispatch.path})`,
1005
+ );
1006
+ console.log(
1007
+ `[vulkan-kernels] polar_preht registration repair: ${prehtRegistration.wouldChange ? (dryRun ? "would-patch" : "patched") : "already-present"} (${prehtRegistration.target})`,
1008
+ );
1009
+ console.log(
1010
+ `[vulkan-kernels] polar_preht pipeline repair: ${prehtPipeline.wouldChange ? (dryRun ? "would-patch" : "patched") : "already-present"} (${prehtPipeline.target})`,
1011
+ );
1012
+ console.log(
1013
+ `[vulkan-kernels] fused_attn push-range repair: ${fusedAttnPipeline.wouldChange ? (dryRun ? "would-patch" : "patched") : "already-present"} (${fusedAttnPipeline.target})`,
1014
+ );
1015
+ // AGENTS.md §3 enforcement (no eliza-missing vulkan binary) is done at
1016
+ // build-llama-cpp-mtp.mjs post-build via the requiredKernels audit.
1017
+ console.log(
1018
+ `[vulkan-kernels] runtime-ready evidence still requires ` +
1019
+ `make -C packages/inference/verify vulkan-dispatch-smoke on a native Vulkan build.`,
1020
+ );
1021
+ return {
1022
+ copied,
1023
+ patchResults,
1024
+ prehtRegistration,
1025
+ prehtPipeline,
1026
+ fusedAttnPipeline,
1027
+ runtimeDispatch,
1028
+ runtimeReady: "source-patched-pending-smoke",
1029
+ requiredGraphSmoke:
1030
+ "make -C packages/inference/verify vulkan-dispatch-smoke",
1031
+ };
281
1032
  }