@elizaos/app-core 2.0.0-alpha.85 → 2.0.0-beta.1

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 (1885) hide show
  1. package/account-pool.d.ts +6 -0
  2. package/account-pool.d.ts.map +1 -0
  3. package/account-pool.js +5 -0
  4. package/api/__tests__/sandbox-test-helpers.d.ts +10 -0
  5. package/api/__tests__/sandbox-test-helpers.d.ts.map +1 -0
  6. package/api/__tests__/sandbox-test-helpers.js +15 -0
  7. package/api/auth/audit.d.ts +52 -0
  8. package/api/auth/audit.d.ts.map +1 -0
  9. package/api/auth/audit.js +126 -0
  10. package/api/auth/auth-context.d.ts +40 -0
  11. package/api/auth/auth-context.d.ts.map +1 -0
  12. package/api/auth/auth-context.js +68 -0
  13. package/api/auth/bootstrap-token.d.ts +50 -0
  14. package/api/auth/bootstrap-token.d.ts.map +1 -0
  15. package/api/auth/bootstrap-token.js +157 -0
  16. package/api/auth/index.d.ts +14 -0
  17. package/api/auth/index.d.ts.map +1 -0
  18. package/api/auth/index.js +13 -0
  19. package/api/auth/passwords.d.ts +65 -0
  20. package/api/auth/passwords.d.ts.map +1 -0
  21. package/api/auth/passwords.js +87 -0
  22. package/api/auth/sensitive-rate-limit.d.ts +56 -0
  23. package/api/auth/sensitive-rate-limit.d.ts.map +1 -0
  24. package/api/auth/sensitive-rate-limit.js +95 -0
  25. package/api/auth/sessions.d.ts +152 -0
  26. package/api/auth/sessions.d.ts.map +1 -0
  27. package/api/auth/sessions.js +298 -0
  28. package/api/auth/tokens.d.ts +3 -0
  29. package/api/auth/tokens.d.ts.map +1 -0
  30. package/api/auth/tokens.js +13 -0
  31. package/api/auth-bootstrap-routes.d.ts +32 -0
  32. package/api/auth-bootstrap-routes.d.ts.map +1 -0
  33. package/api/auth-bootstrap-routes.js +179 -0
  34. package/api/auth-pairing-compat-routes.d.ts +17 -0
  35. package/api/auth-pairing-compat-routes.d.ts.map +1 -0
  36. package/api/auth-pairing-compat-routes.js +301 -0
  37. package/api/auth-session-routes.d.ts +31 -0
  38. package/api/auth-session-routes.d.ts.map +1 -0
  39. package/api/auth-session-routes.js +560 -0
  40. package/api/auth.d.ts +153 -0
  41. package/api/auth.d.ts.map +1 -0
  42. package/api/auth.js +290 -0
  43. package/api/automation-node-contributors.d.ts +14 -0
  44. package/api/automation-node-contributors.d.ts.map +1 -0
  45. package/api/automation-node-contributors.js +14 -0
  46. package/api/automations-compat-routes.d.ts +18 -0
  47. package/api/automations-compat-routes.d.ts.map +1 -0
  48. package/api/automations-compat-routes.js +274 -0
  49. package/api/catalog-routes.d.ts +4 -0
  50. package/api/catalog-routes.d.ts.map +1 -0
  51. package/api/catalog-routes.js +61 -0
  52. package/api/compat-route-shared.d.ts +29 -0
  53. package/api/compat-route-shared.d.ts.map +1 -0
  54. package/api/compat-route-shared.js +298 -0
  55. package/api/credential-resolver.d.ts +31 -0
  56. package/api/credential-resolver.d.ts.map +1 -0
  57. package/api/credential-resolver.js +199 -0
  58. package/api/database-rows-compat-routes.d.ts +4 -0
  59. package/api/database-rows-compat-routes.d.ts.map +1 -0
  60. package/api/database-rows-compat-routes.js +100 -0
  61. package/api/dev-compat-routes.d.ts +11 -0
  62. package/api/dev-compat-routes.d.ts.map +1 -0
  63. package/api/dev-compat-routes.js +144 -0
  64. package/api/dev-console-log.d.ts +21 -0
  65. package/api/dev-console-log.d.ts.map +1 -0
  66. package/api/dev-console-log.js +65 -0
  67. package/api/dev-stack.d.ts +49 -0
  68. package/api/dev-stack.d.ts.map +1 -0
  69. package/api/dev-stack.js +60 -0
  70. package/api/local-inference-compat-routes.d.ts +16 -0
  71. package/api/local-inference-compat-routes.d.ts.map +1 -0
  72. package/api/local-inference-compat-routes.js +617 -0
  73. package/api/onboarding-compat-routes.d.ts +4 -0
  74. package/api/onboarding-compat-routes.d.ts.map +1 -0
  75. package/api/onboarding-compat-routes.js +207 -0
  76. package/api/plugins-compat-routes.d.ts +103 -0
  77. package/api/plugins-compat-routes.d.ts.map +1 -0
  78. package/api/plugins-compat-routes.js +1181 -0
  79. package/api/response.d.ts +4 -0
  80. package/api/response.d.ts.map +1 -0
  81. package/api/response.js +28 -0
  82. package/api/runtime-mode-routes.d.ts +13 -0
  83. package/api/runtime-mode-routes.d.ts.map +1 -0
  84. package/api/runtime-mode-routes.js +32 -0
  85. package/api/secrets-inventory-routes.d.ts +39 -0
  86. package/api/secrets-inventory-routes.d.ts.map +1 -0
  87. package/api/secrets-inventory-routes.js +487 -0
  88. package/api/secrets-manager-routes.d.ts +9 -0
  89. package/api/secrets-manager-routes.d.ts.map +1 -0
  90. package/api/secrets-manager-routes.js +476 -0
  91. package/api/sensitive-request-routes.d.ts +20 -0
  92. package/api/sensitive-request-routes.d.ts.map +1 -0
  93. package/api/sensitive-request-routes.js +489 -0
  94. package/api/sensitive-request-store.d.ts +39 -0
  95. package/api/sensitive-request-store.d.ts.map +1 -0
  96. package/api/sensitive-request-store.js +204 -0
  97. package/api/server-config-filter.d.ts +14 -0
  98. package/api/server-config-filter.d.ts.map +1 -0
  99. package/api/server-config-filter.js +77 -0
  100. package/api/server-cors.d.ts +30 -0
  101. package/api/server-cors.d.ts.map +1 -0
  102. package/api/server-cors.js +128 -0
  103. package/api/server-html.d.ts +4 -0
  104. package/api/server-html.d.ts.map +1 -0
  105. package/api/server-html.js +5 -0
  106. package/api/server-onboarding-compat.d.ts +31 -0
  107. package/api/server-onboarding-compat.d.ts.map +1 -0
  108. package/api/server-onboarding-compat.js +283 -0
  109. package/api/server-security.d.ts +11 -0
  110. package/api/server-security.d.ts.map +1 -0
  111. package/api/server-security.js +29 -0
  112. package/api/server-startup.d.ts +5 -0
  113. package/api/server-startup.d.ts.map +1 -0
  114. package/api/server-startup.js +74 -0
  115. package/api/server-wallet-trade.d.ts +10 -0
  116. package/api/server-wallet-trade.d.ts.map +1 -0
  117. package/api/server-wallet-trade.js +240 -0
  118. package/api/server.d.ts +32 -0
  119. package/api/server.d.ts.map +1 -0
  120. package/api/server.js +768 -0
  121. package/api/workbench-compat-routes.d.ts +11 -0
  122. package/api/workbench-compat-routes.d.ts.map +1 -0
  123. package/api/workbench-compat-routes.js +325 -0
  124. package/benchmark/cua-routes.d.ts +10 -0
  125. package/benchmark/cua-routes.d.ts.map +1 -0
  126. package/benchmark/cua-routes.js +179 -0
  127. package/benchmark/lifeops-bench-handler.d.ts +94 -0
  128. package/benchmark/lifeops-bench-handler.d.ts.map +1 -0
  129. package/benchmark/lifeops-bench-handler.js +280 -0
  130. package/benchmark/lifeops-fake-backend.d.ts +227 -0
  131. package/benchmark/lifeops-fake-backend.d.ts.map +1 -0
  132. package/benchmark/lifeops-fake-backend.js +499 -0
  133. package/benchmark/mock-plugin-base.d.ts +9 -0
  134. package/benchmark/mock-plugin-base.d.ts.map +1 -0
  135. package/benchmark/mock-plugin-base.js +325 -0
  136. package/benchmark/mock-plugin.d.ts +3 -0
  137. package/benchmark/mock-plugin.d.ts.map +1 -0
  138. package/benchmark/mock-plugin.js +504 -0
  139. package/benchmark/params.d.ts +2 -0
  140. package/benchmark/params.d.ts.map +1 -0
  141. package/benchmark/params.js +18 -0
  142. package/benchmark/plugin.d.ts +42 -0
  143. package/benchmark/plugin.d.ts.map +1 -0
  144. package/benchmark/plugin.js +422 -0
  145. package/benchmark/replay-capture.d.ts +73 -0
  146. package/benchmark/replay-capture.d.ts.map +1 -0
  147. package/benchmark/replay-capture.js +223 -0
  148. package/benchmark/server-utils.d.ts +100 -0
  149. package/benchmark/server-utils.d.ts.map +1 -0
  150. package/benchmark/server-utils.js +289 -0
  151. package/benchmark/server.d.ts +2 -0
  152. package/benchmark/server.d.ts.map +1 -0
  153. package/benchmark/server.js +1176 -0
  154. package/browser.d.ts +13 -0
  155. package/browser.d.ts.map +1 -0
  156. package/browser.js +15 -0
  157. package/cli/argv.d.ts +17 -0
  158. package/cli/argv.d.ts.map +1 -0
  159. package/cli/argv.js +140 -0
  160. package/cli/banner.d.ts +11 -0
  161. package/cli/banner.d.ts.map +1 -0
  162. package/cli/banner.js +36 -0
  163. package/cli/cli-name.d.ts +5 -0
  164. package/cli/cli-name.d.ts.map +1 -0
  165. package/cli/cli-name.js +21 -0
  166. package/cli/cli-utils.d.ts +5 -0
  167. package/cli/cli-utils.d.ts.map +1 -0
  168. package/cli/cli-utils.js +13 -0
  169. package/cli/command-format.d.ts +2 -0
  170. package/cli/command-format.d.ts.map +1 -0
  171. package/cli/command-format.js +20 -0
  172. package/cli/doctor/checks.d.ts +96 -0
  173. package/cli/doctor/checks.d.ts.map +1 -0
  174. package/cli/doctor/checks.js +483 -0
  175. package/cli/git-commit.d.ts +5 -0
  176. package/cli/git-commit.d.ts.map +1 -0
  177. package/cli/git-commit.js +106 -0
  178. package/cli/parse-duration.d.ts +5 -0
  179. package/cli/parse-duration.d.ts.map +1 -0
  180. package/cli/parse-duration.js +27 -0
  181. package/cli/plugins-cli.d.ts +26 -0
  182. package/cli/plugins-cli.d.ts.map +1 -0
  183. package/cli/plugins-cli.js +892 -0
  184. package/cli/profile-utils.d.ts +3 -0
  185. package/cli/profile-utils.d.ts.map +1 -0
  186. package/cli/profile-utils.js +21 -0
  187. package/cli/profile.d.ts +15 -0
  188. package/cli/profile.d.ts.map +1 -0
  189. package/cli/profile.js +93 -0
  190. package/cli/program/build-program.d.ts +3 -0
  191. package/cli/program/build-program.d.ts.map +1 -0
  192. package/cli/program/build-program.js +12 -0
  193. package/cli/program/command-registry.d.ts +3 -0
  194. package/cli/program/command-registry.d.ts.map +1 -0
  195. package/cli/program/command-registry.js +24 -0
  196. package/cli/program/help.d.ts +3 -0
  197. package/cli/program/help.d.ts.map +1 -0
  198. package/cli/program/help.js +57 -0
  199. package/cli/program/preaction.d.ts +3 -0
  200. package/cli/program/preaction.d.ts.map +1 -0
  201. package/cli/program/preaction.js +40 -0
  202. package/cli/program/register.auth.d.ts +51 -0
  203. package/cli/program/register.auth.d.ts.map +1 -0
  204. package/cli/program/register.auth.js +203 -0
  205. package/cli/program/register.benchmark.d.ts +3 -0
  206. package/cli/program/register.benchmark.d.ts.map +1 -0
  207. package/cli/program/register.benchmark.js +12 -0
  208. package/cli/program/register.config.d.ts +3 -0
  209. package/cli/program/register.config.d.ts.map +1 -0
  210. package/cli/program/register.config.js +150 -0
  211. package/cli/program/register.configure.d.ts +3 -0
  212. package/cli/program/register.configure.d.ts.map +1 -0
  213. package/cli/program/register.configure.js +18 -0
  214. package/cli/program/register.dashboard.d.ts +3 -0
  215. package/cli/program/register.dashboard.d.ts.map +1 -0
  216. package/cli/program/register.dashboard.js +124 -0
  217. package/cli/program/register.db.d.ts +3 -0
  218. package/cli/program/register.db.d.ts.map +1 -0
  219. package/cli/program/register.db.js +45 -0
  220. package/cli/program/register.doctor.d.ts +3 -0
  221. package/cli/program/register.doctor.d.ts.map +1 -0
  222. package/cli/program/register.doctor.js +170 -0
  223. package/cli/program/register.models.d.ts +3 -0
  224. package/cli/program/register.models.d.ts.map +1 -0
  225. package/cli/program/register.models.js +32 -0
  226. package/cli/program/register.setup.d.ts +16 -0
  227. package/cli/program/register.setup.d.ts.map +1 -0
  228. package/cli/program/register.setup.js +333 -0
  229. package/cli/program/register.start.d.ts +3 -0
  230. package/cli/program/register.start.d.ts.map +1 -0
  231. package/cli/program/register.start.js +95 -0
  232. package/cli/program/register.subclis.d.ts +4 -0
  233. package/cli/program/register.subclis.d.ts.map +1 -0
  234. package/cli/program/register.subclis.js +87 -0
  235. package/cli/program/register.update.d.ts +12 -0
  236. package/cli/program/register.update.d.ts.map +1 -0
  237. package/cli/program/register.update.js +173 -0
  238. package/cli/program.d.ts +2 -0
  239. package/cli/program.d.ts.map +1 -0
  240. package/cli/program.js +1 -0
  241. package/cli/run-main.d.ts +2 -0
  242. package/cli/run-main.d.ts.map +1 -0
  243. package/cli/run-main.js +71 -0
  244. package/cli/version.d.ts +2 -0
  245. package/cli/version.d.ts.map +1 -0
  246. package/cli/version.js +2 -0
  247. package/connectors/capacitor-jsc.d.ts +66 -0
  248. package/connectors/capacitor-jsc.d.ts.map +1 -0
  249. package/connectors/capacitor-jsc.js +39 -0
  250. package/connectors/capacitor-quickjs.d.ts +64 -0
  251. package/connectors/capacitor-quickjs.d.ts.map +1 -0
  252. package/connectors/capacitor-quickjs.js +50 -0
  253. package/connectors/capacitor-sqlite.d.ts +41 -0
  254. package/connectors/capacitor-sqlite.d.ts.map +1 -0
  255. package/connectors/capacitor-sqlite.js +87 -0
  256. package/diagnostics/integration-observability.d.ts +40 -0
  257. package/diagnostics/integration-observability.d.ts.map +1 -0
  258. package/diagnostics/integration-observability.js +68 -0
  259. package/entry.d.ts +10 -0
  260. package/entry.d.ts.map +1 -0
  261. package/entry.js +66 -0
  262. package/index.d.ts +34 -4
  263. package/index.d.ts.map +1 -1
  264. package/index.js +42 -6
  265. package/package.json +81 -151
  266. package/packaging/PUBLISHING_GUIDE.md +707 -0
  267. package/packaging/debian/changelog +9 -0
  268. package/packaging/debian/control +26 -0
  269. package/packaging/debian/copyright +27 -0
  270. package/packaging/debian/elizaos-app.service +15 -0
  271. package/packaging/debian/install +4 -0
  272. package/packaging/debian/postinst +28 -0
  273. package/packaging/debian/prerm +14 -0
  274. package/packaging/debian/rules +44 -0
  275. package/packaging/debian/source/format +1 -0
  276. package/packaging/flatpak/README.md +150 -0
  277. package/packaging/flatpak/ai.elizaos.App.desktop +11 -0
  278. package/packaging/flatpak/ai.elizaos.App.metainfo.xml +81 -0
  279. package/packaging/flatpak/ai.elizaos.App.store.yml +142 -0
  280. package/packaging/flatpak/ai.elizaos.App.yml +142 -0
  281. package/packaging/flatpak/elizaos-app-wrapper.sh +5 -0
  282. package/packaging/flatpak/elizaos-app-wrapper.store.sh +16 -0
  283. package/packaging/flatpak/icons/128x128/ai.elizaos.App.png +0 -0
  284. package/packaging/flatpak/icons/256x256/ai.elizaos.App.png +0 -0
  285. package/packaging/flatpak/icons/512x512/ai.elizaos.App.png +0 -0
  286. package/packaging/homebrew/README.md +80 -0
  287. package/packaging/homebrew/elizaos-app.cask.rb +60 -0
  288. package/packaging/homebrew/elizaos-app.rb +49 -0
  289. package/packaging/inno/ElizaOSApp.iss +53 -0
  290. package/packaging/inno/build-inno.ps1 +231 -0
  291. package/packaging/msix/AppxManifest.store.xml +79 -0
  292. package/packaging/msix/AppxManifest.xml +53 -0
  293. package/packaging/msix/README.md +201 -0
  294. package/packaging/msix/assets/LargeTile.png +0 -0
  295. package/packaging/msix/assets/Square150x150Logo.png +0 -0
  296. package/packaging/msix/assets/Square44x44Logo.png +0 -0
  297. package/packaging/msix/assets/StoreLogo.png +0 -0
  298. package/packaging/msix/assets/Wide310x150Logo.png +0 -0
  299. package/packaging/msix/build-msix.ps1 +206 -0
  300. package/packaging/msix/generate-placeholder-assets.ps1 +49 -0
  301. package/packaging/msix/store/description.md +31 -0
  302. package/packaging/msix/store/listing.json +27 -0
  303. package/packaging/pypi/README.md +14 -0
  304. package/packaging/pypi/elizaos_app/__init__.py +7 -0
  305. package/packaging/pypi/elizaos_app/__main__.py +6 -0
  306. package/packaging/pypi/elizaos_app/cli.py +21 -0
  307. package/packaging/pypi/elizaos_app/loader.py +127 -0
  308. package/packaging/pypi/elizaos_app/py.typed +1 -0
  309. package/packaging/pypi/pyproject.toml +38 -0
  310. package/packaging/snap/snapcraft.yaml +560 -0
  311. package/packaging/test-packaging.sh +309 -0
  312. package/patches/@noble%2Fcurves@2.0.1.patch +33 -0
  313. package/patches/@pixiv%2Fthree-vrm@3.5.2.patch +26 -0
  314. package/patches/coding-agent-adapters@0.16.3.patch +44 -0
  315. package/patches/electrobun@1.16.0.patch +13 -0
  316. package/patches/llama-cpp-capacitor@0.1.5.patch +2387 -0
  317. package/patches/proper-lockfile@4.1.2.patch +14 -0
  318. package/patches/pty-manager@1.11.0.patch +194 -0
  319. package/permissions/types.d.ts +8 -0
  320. package/permissions/types.d.ts.map +1 -0
  321. package/permissions/types.js +7 -0
  322. package/platform/agent-browser-stub.d.ts +27 -0
  323. package/platform/agent-browser-stub.d.ts.map +1 -0
  324. package/platform/agent-browser-stub.js +16 -0
  325. package/platform/empty-node-module.d.ts +31 -0
  326. package/platform/empty-node-module.d.ts.map +1 -0
  327. package/platform/empty-node-module.js +22 -0
  328. package/platforms/android/Gemfile +6 -0
  329. package/platforms/android/README.md +79 -0
  330. package/platforms/android/app/build.gradle +124 -0
  331. package/platforms/android/app/capacitor.build.gradle +32 -0
  332. package/platforms/android/app/proguard-rules.pro +46 -0
  333. package/platforms/android/app/src/androidTest/java/ai/elizaos/app/ElizaOsInstrumentedTest.java +162 -0
  334. package/platforms/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java +26 -0
  335. package/platforms/android/app/src/main/AndroidManifest.xml +83 -0
  336. package/platforms/android/app/src/main/java/ai/elizaos/app/AgentPlugin.java +232 -0
  337. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaAgentService.java +1514 -0
  338. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaAssistActivity.java +21 -0
  339. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaBootReceiver.java +61 -0
  340. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaBrowserActivity.java +39 -0
  341. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaCalendarActivity.java +75 -0
  342. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaCameraActivity.java +54 -0
  343. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaClockActivity.java +70 -0
  344. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaContactsActivity.java +56 -0
  345. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaDialActivity.java +83 -0
  346. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaInCallService.java +168 -0
  347. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaMmsReceiver.java +70 -0
  348. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaNativeBridge.java +38 -0
  349. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaRespondViaMessageService.java +119 -0
  350. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaSmsComposeActivity.java +50 -0
  351. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaSmsReceiver.java +84 -0
  352. package/platforms/android/app/src/main/java/ai/elizaos/app/GatewayConnectionService.java +211 -0
  353. package/platforms/android/app/src/main/java/ai/elizaos/app/MainActivity.java +202 -0
  354. package/platforms/android/app/src/main/res/drawable/ic_launcher_background.xml +170 -0
  355. package/platforms/android/app/src/main/res/drawable/splash.png +0 -0
  356. package/platforms/android/app/src/main/res/drawable-land-hdpi/splash.png +0 -0
  357. package/platforms/android/app/src/main/res/drawable-land-mdpi/splash.png +0 -0
  358. package/platforms/android/app/src/main/res/drawable-land-xhdpi/splash.png +0 -0
  359. package/platforms/android/app/src/main/res/drawable-land-xxhdpi/splash.png +0 -0
  360. package/platforms/android/app/src/main/res/drawable-land-xxxhdpi/splash.png +0 -0
  361. package/platforms/android/app/src/main/res/drawable-port-hdpi/splash.png +0 -0
  362. package/platforms/android/app/src/main/res/drawable-port-mdpi/splash.png +0 -0
  363. package/platforms/android/app/src/main/res/drawable-port-xhdpi/splash.png +0 -0
  364. package/platforms/android/app/src/main/res/drawable-port-xxhdpi/splash.png +0 -0
  365. package/platforms/android/app/src/main/res/drawable-port-xxxhdpi/splash.png +0 -0
  366. package/platforms/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +34 -0
  367. package/platforms/android/app/src/main/res/layout/activity_main.xml +12 -0
  368. package/platforms/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +5 -0
  369. package/platforms/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +5 -0
  370. package/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  371. package/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png +0 -0
  372. package/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  373. package/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  374. package/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png +0 -0
  375. package/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  376. package/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  377. package/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png +0 -0
  378. package/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  379. package/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  380. package/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0
  381. package/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  382. package/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  383. package/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0
  384. package/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  385. package/platforms/android/app/src/main/res/values/ic_launcher_background.xml +4 -0
  386. package/platforms/android/app/src/main/res/values/strings.xml +7 -0
  387. package/platforms/android/app/src/main/res/values/styles.xml +22 -0
  388. package/platforms/android/app/src/main/res/xml/file_paths.xml +5 -0
  389. package/platforms/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java +18 -0
  390. package/platforms/android/build.gradle +63 -0
  391. package/platforms/android/capacitor-cordova-android-plugins/build.gradle +53 -0
  392. package/platforms/android/capacitor-cordova-android-plugins/cordova.variables.gradle +3 -0
  393. package/platforms/android/capacitor-cordova-android-plugins/src/main/AndroidManifest.xml +3 -0
  394. package/platforms/android/capacitor-cordova-android-plugins/src/main/java/.gitkeep +1 -0
  395. package/platforms/android/capacitor-cordova-android-plugins/src/main/res/.gitkeep +1 -0
  396. package/platforms/android/capacitor.settings.gradle +45 -0
  397. package/platforms/android/fastlane/Appfile +2 -0
  398. package/platforms/android/fastlane/Fastfile +59 -0
  399. package/platforms/android/fastlane/metadata/android/en-US/full_description.txt +24 -0
  400. package/platforms/android/fastlane/metadata/android/en-US/short_description.txt +1 -0
  401. package/platforms/android/fastlane/metadata/android/en-US/title.txt +1 -0
  402. package/platforms/android/fastlane/metadata/android/en-US/video.txt +0 -0
  403. package/platforms/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  404. package/platforms/android/gradle/wrapper/gradle-wrapper.properties +7 -0
  405. package/platforms/android/gradle.properties +27 -0
  406. package/platforms/android/gradlew +251 -0
  407. package/platforms/android/gradlew.bat +94 -0
  408. package/platforms/android/settings.gradle +13 -0
  409. package/platforms/android/variables.gradle +17 -0
  410. package/platforms/electrobun/.generated/brand-config.json +8 -0
  411. package/platforms/electrobun/README.md +44 -0
  412. package/platforms/electrobun/assets/appIcon.ico +0 -0
  413. package/platforms/electrobun/assets/appIcon.iconset/icon_128x128.png +0 -0
  414. package/platforms/electrobun/assets/appIcon.iconset/icon_128x128@2x.png +0 -0
  415. package/platforms/electrobun/assets/appIcon.iconset/icon_16x16.png +0 -0
  416. package/platforms/electrobun/assets/appIcon.iconset/icon_16x16@2x.png +0 -0
  417. package/platforms/electrobun/assets/appIcon.iconset/icon_256x256.png +0 -0
  418. package/platforms/electrobun/assets/appIcon.iconset/icon_256x256@2x.png +0 -0
  419. package/platforms/electrobun/assets/appIcon.iconset/icon_32x32.png +0 -0
  420. package/platforms/electrobun/assets/appIcon.iconset/icon_32x32@2x.png +0 -0
  421. package/platforms/electrobun/assets/appIcon.iconset/icon_512x512.png +0 -0
  422. package/platforms/electrobun/assets/appIcon.iconset/icon_512x512@2x.png +0 -0
  423. package/platforms/electrobun/assets/appIcon.png +0 -0
  424. package/platforms/electrobun/assets/brand-config.json +8 -0
  425. package/platforms/electrobun/biome.json +11 -0
  426. package/platforms/electrobun/electrobun.config.ts +435 -0
  427. package/platforms/electrobun/entitlements/README.md +54 -0
  428. package/platforms/electrobun/entitlements/mas-child.entitlements +10 -0
  429. package/platforms/electrobun/entitlements/mas.entitlements +41 -0
  430. package/platforms/electrobun/native/macos/window-effects.mm +927 -0
  431. package/platforms/electrobun/package.json +33 -0
  432. package/platforms/electrobun/scripts/bin/zip +2 -0
  433. package/platforms/electrobun/scripts/build-macos-effects.sh +31 -0
  434. package/platforms/electrobun/scripts/build-whisper-universal.sh +137 -0
  435. package/platforms/electrobun/scripts/build-whisper.sh +95 -0
  436. package/platforms/electrobun/scripts/ensure-whisper-model.sh +93 -0
  437. package/platforms/electrobun/scripts/hdiutil-wrapper.sh +33 -0
  438. package/platforms/electrobun/scripts/lib/app-dir.mjs +74 -0
  439. package/platforms/electrobun/scripts/lib/repo-root.mjs +77 -0
  440. package/platforms/electrobun/scripts/local-adhoc-sign-macos.ts +214 -0
  441. package/platforms/electrobun/scripts/macos-direct-launcher.c +84 -0
  442. package/platforms/electrobun/scripts/postwrap-diagnostics.ts +423 -0
  443. package/platforms/electrobun/scripts/postwrap-sign-runtime-macos.ts +352 -0
  444. package/platforms/electrobun/scripts/sign-windows.ps1 +121 -0
  445. package/platforms/electrobun/scripts/smoke-test-windows.ps1 +907 -0
  446. package/platforms/electrobun/scripts/smoke-test.sh +1186 -0
  447. package/platforms/electrobun/scripts/stage-macos-release-artifacts.sh +491 -0
  448. package/platforms/electrobun/scripts/sync-web-assets.mjs +48 -0
  449. package/platforms/electrobun/scripts/verify-rpc-handlers.ts +162 -0
  450. package/platforms/electrobun/scripts/verify-windows-installer-proof.ps1 +203 -0
  451. package/platforms/electrobun/scripts/xcrun-wrapper.sh +80 -0
  452. package/platforms/electrobun/scripts/zip-wrapper.sh +6 -0
  453. package/platforms/electrobun/src/__stubs__/bun-ffi.ts +35 -0
  454. package/platforms/electrobun/src/__stubs__/electrobun-bun.ts +20 -0
  455. package/platforms/electrobun/src/agent-ready-state.ts +35 -0
  456. package/platforms/electrobun/src/agent-reset-from-main.ts +87 -0
  457. package/platforms/electrobun/src/api-base.ts +169 -0
  458. package/platforms/electrobun/src/application-menu-action-registry.ts +21 -0
  459. package/platforms/electrobun/src/application-menu.ts +418 -0
  460. package/platforms/electrobun/src/background-notice.ts +65 -0
  461. package/platforms/electrobun/src/brand-config.ts +184 -0
  462. package/platforms/electrobun/src/bridge/browser-tabs-renderer-registry.ts +60 -0
  463. package/platforms/electrobun/src/bridge/electrobun-direct-rpc.ts +430 -0
  464. package/platforms/electrobun/src/bridge/electrobun-preload.ts +1 -0
  465. package/platforms/electrobun/src/bridge/electrobun-stub.ts +21 -0
  466. package/platforms/electrobun/src/browser-workspace-bridge-server.ts +284 -0
  467. package/platforms/electrobun/src/cloud-auth-window.ts +216 -0
  468. package/platforms/electrobun/src/cloud-disconnect-from-main.ts +118 -0
  469. package/platforms/electrobun/src/constants.ts +2 -0
  470. package/platforms/electrobun/src/desktop-http-request.test.ts +85 -0
  471. package/platforms/electrobun/src/desktop-http-request.ts +103 -0
  472. package/platforms/electrobun/src/desktop-test-bridge-server.ts +248 -0
  473. package/platforms/electrobun/src/devtools-layout.ts +63 -0
  474. package/platforms/electrobun/src/diagnostic-format.ts +65 -0
  475. package/platforms/electrobun/src/fatal-shutdown.test.ts +30 -0
  476. package/platforms/electrobun/src/fatal-shutdown.ts +10 -0
  477. package/platforms/electrobun/src/floating-chat-window.ts +239 -0
  478. package/platforms/electrobun/src/index.ts +2510 -0
  479. package/platforms/electrobun/src/libMacWindowEffects.dylib +0 -0
  480. package/platforms/electrobun/src/lifecycle/api-base-owner.ts +119 -0
  481. package/platforms/electrobun/src/lifecycle/desktop-session-prime.ts +77 -0
  482. package/platforms/electrobun/src/logger.ts +23 -0
  483. package/platforms/electrobun/src/main-window-runtime.ts +117 -0
  484. package/platforms/electrobun/src/main-window-session.ts +88 -0
  485. package/platforms/electrobun/src/menu-reset-from-main.ts +211 -0
  486. package/platforms/electrobun/src/native/agent.ts +1892 -0
  487. package/platforms/electrobun/src/native/auth-bridge.ts +525 -0
  488. package/platforms/electrobun/src/native/browser-workspace.ts +574 -0
  489. package/platforms/electrobun/src/native/camera.ts +68 -0
  490. package/platforms/electrobun/src/native/canvas.ts +504 -0
  491. package/platforms/electrobun/src/native/credentials.ts +765 -0
  492. package/platforms/electrobun/src/native/desktop.ts +2284 -0
  493. package/platforms/electrobun/src/native/editor-bridge.ts +292 -0
  494. package/platforms/electrobun/src/native/file-watcher.ts +220 -0
  495. package/platforms/electrobun/src/native/gateway.ts +218 -0
  496. package/platforms/electrobun/src/native/gpu-window.ts +301 -0
  497. package/platforms/electrobun/src/native/index.ts +105 -0
  498. package/platforms/electrobun/src/native/location.ts +110 -0
  499. package/platforms/electrobun/src/native/loopback-port.ts +81 -0
  500. package/platforms/electrobun/src/native/mac-window-effects.ts +118 -0
  501. package/platforms/electrobun/src/native/music-player.ts +61 -0
  502. package/platforms/electrobun/src/native/permissions-darwin.ts +342 -0
  503. package/platforms/electrobun/src/native/permissions-linux.ts +34 -0
  504. package/platforms/electrobun/src/native/permissions-shared.ts +170 -0
  505. package/platforms/electrobun/src/native/permissions-win32.ts +56 -0
  506. package/platforms/electrobun/src/native/permissions.ts +237 -0
  507. package/platforms/electrobun/src/native/power-state.ts +195 -0
  508. package/platforms/electrobun/src/native/screencapture.ts +654 -0
  509. package/platforms/electrobun/src/native/steward.ts +343 -0
  510. package/platforms/electrobun/src/native/swabble.ts +349 -0
  511. package/platforms/electrobun/src/native/talkmode.ts +441 -0
  512. package/platforms/electrobun/src/native/webgpu-browser-support.ts +220 -0
  513. package/platforms/electrobun/src/native/whisper.ts +280 -0
  514. package/platforms/electrobun/src/preload-validation.ts +65 -0
  515. package/platforms/electrobun/src/preload.js +1 -0
  516. package/platforms/electrobun/src/print-electrobun-dev-settings-banner.ts +140 -0
  517. package/platforms/electrobun/src/renderer-static.ts +77 -0
  518. package/platforms/electrobun/src/rpc-handlers.ts +1072 -0
  519. package/platforms/electrobun/src/rpc-schema.ts +1835 -0
  520. package/platforms/electrobun/src/runtime-layout.ts +150 -0
  521. package/platforms/electrobun/src/runtime-permissions.ts +125 -0
  522. package/platforms/electrobun/src/screenshot-dev-server.ts +125 -0
  523. package/platforms/electrobun/src/startup-trace.ts +351 -0
  524. package/platforms/electrobun/src/surface-windows.ts +475 -0
  525. package/platforms/electrobun/src/types/web-speech.d.ts +52 -0
  526. package/platforms/electrobun/src/types.ts +18 -0
  527. package/platforms/electrobun/src/windows-cef-profile.ts +124 -0
  528. package/platforms/electrobun/tsconfig.json +75 -0
  529. package/platforms/electrobun/vitest.electrobun.config.ts +54 -0
  530. package/platforms/ios/App/App/App.entitlements +18 -0
  531. package/platforms/ios/App/App/AppDelegate.swift +93 -0
  532. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ios-marketing-1024.png +0 -0
  533. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-20x20@1x.png +0 -0
  534. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-20x20@2x.png +0 -0
  535. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-29x29@1x.png +0 -0
  536. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-29x29@2x.png +0 -0
  537. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-40x40@1x.png +0 -0
  538. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-40x40@2x.png +0 -0
  539. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-76x76@1x.png +0 -0
  540. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-76x76@2x.png +0 -0
  541. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-83_5x83_5@2x.png +0 -0
  542. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-20x20@2x.png +0 -0
  543. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-20x20@3x.png +0 -0
  544. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-29x29@2x.png +0 -0
  545. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-29x29@3x.png +0 -0
  546. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-40x40@2x.png +0 -0
  547. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-40x40@3x.png +0 -0
  548. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-60x60@2x.png +0 -0
  549. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-60x60@3x.png +0 -0
  550. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json +116 -0
  551. package/platforms/ios/App/App/Assets.xcassets/Contents.json +6 -0
  552. package/platforms/ios/App/App/Assets.xcassets/Splash.imageset/Contents.json +23 -0
  553. package/platforms/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png +0 -0
  554. package/platforms/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png +0 -0
  555. package/platforms/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png +0 -0
  556. package/platforms/ios/App/App/Base.lproj/LaunchScreen.storyboard +32 -0
  557. package/platforms/ios/App/App/Base.lproj/Main.storyboard +19 -0
  558. package/platforms/ios/App/App/ElizaIntentPlugin.swift +185 -0
  559. package/platforms/ios/App/App/Info.plist +123 -0
  560. package/platforms/ios/App/App/PrivacyInfo.xcprivacy +55 -0
  561. package/platforms/ios/App/App/SceneDelegate.swift +77 -0
  562. package/platforms/ios/App/App/WebsiteBlockerContentExtension/ActionRequestHandler.swift +142 -0
  563. package/platforms/ios/App/App/WebsiteBlockerContentExtension/Info.plist +29 -0
  564. package/platforms/ios/App/App/WebsiteBlockerContentExtension/PrivacyInfo.xcprivacy +23 -0
  565. package/platforms/ios/App/App/WebsiteBlockerContentExtension/WebsiteBlockerContentExtension.entitlements +10 -0
  566. package/platforms/ios/App/App.xcodeproj/project.pbxproj +596 -0
  567. package/platforms/ios/App/App.xcworkspace/contents.xcworkspacedata +10 -0
  568. package/platforms/ios/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  569. package/platforms/ios/App/ExportOptions.plist +18 -0
  570. package/platforms/ios/App/Podfile +51 -0
  571. package/platforms/ios/App/Podfile.lock +131 -0
  572. package/platforms/ios/Gemfile +6 -0
  573. package/platforms/ios/fastlane/Appfile +4 -0
  574. package/platforms/ios/fastlane/Fastfile +94 -0
  575. package/platforms/ios/fastlane/Matchfile +12 -0
  576. package/platforms/ios/fastlane/metadata/en-US/description.txt +22 -0
  577. package/platforms/ios/fastlane/metadata/en-US/keywords.txt +1 -0
  578. package/platforms/ios/fastlane/metadata/en-US/marketing_url.txt +1 -0
  579. package/platforms/ios/fastlane/metadata/en-US/name.txt +1 -0
  580. package/platforms/ios/fastlane/metadata/en-US/privacy_url.txt +1 -0
  581. package/platforms/ios/fastlane/metadata/en-US/promotional_text.txt +1 -0
  582. package/platforms/ios/fastlane/metadata/en-US/subtitle.txt +1 -0
  583. package/platforms/ios/fastlane/metadata/en-US/support_url.txt +1 -0
  584. package/register-runtime-hooks.d.ts +2 -0
  585. package/register-runtime-hooks.d.ts.map +1 -0
  586. package/register-runtime-hooks.js +13 -0
  587. package/registry/generate-apps.d.ts +2 -0
  588. package/registry/generate-apps.d.ts.map +1 -0
  589. package/registry/generate-apps.js +338 -0
  590. package/registry/generate.d.ts +2 -0
  591. package/registry/generate.d.ts.map +1 -0
  592. package/registry/generate.js +506 -0
  593. package/registry/index.d.ts +6 -0
  594. package/registry/index.d.ts.map +1 -0
  595. package/registry/index.js +68 -0
  596. package/registry/loader.d.ts +27 -0
  597. package/registry/loader.d.ts.map +1 -0
  598. package/registry/loader.js +111 -0
  599. package/registry/schema.d.ts +989 -0
  600. package/registry/schema.d.ts.map +1 -0
  601. package/registry/schema.js +264 -0
  602. package/runtime/api-dev-settings-banner.d.ts +7 -0
  603. package/runtime/api-dev-settings-banner.d.ts.map +1 -0
  604. package/runtime/api-dev-settings-banner.js +104 -0
  605. package/runtime/app-route-plugin-registry.d.ts +3 -0
  606. package/runtime/app-route-plugin-registry.d.ts.map +1 -0
  607. package/runtime/app-route-plugin-registry.js +1 -0
  608. package/runtime/build-character-from-config.d.ts +3 -0
  609. package/runtime/build-character-from-config.d.ts.map +1 -0
  610. package/runtime/build-character-from-config.js +59 -0
  611. package/runtime/build-variant.d.ts +8 -0
  612. package/runtime/build-variant.d.ts.map +1 -0
  613. package/runtime/build-variant.js +7 -0
  614. package/runtime/channel-plugin-map.d.ts +6 -0
  615. package/runtime/channel-plugin-map.d.ts.map +1 -0
  616. package/runtime/channel-plugin-map.js +38 -0
  617. package/runtime/dev-server.d.ts +2 -0
  618. package/runtime/dev-server.d.ts.map +1 -0
  619. package/runtime/dev-server.js +383 -0
  620. package/runtime/dev-settings-figlet-heading.d.ts +22 -0
  621. package/runtime/dev-settings-figlet-heading.d.ts.map +1 -0
  622. package/runtime/dev-settings-figlet-heading.js +55 -0
  623. package/runtime/eliza.d.ts +21 -0
  624. package/runtime/eliza.d.ts.map +1 -0
  625. package/runtime/eliza.js +863 -0
  626. package/runtime/embedding-manager-support.d.ts +77 -0
  627. package/runtime/embedding-manager-support.d.ts.map +1 -0
  628. package/runtime/embedding-manager-support.js +309 -0
  629. package/runtime/embedding-presets.d.ts +5 -0
  630. package/runtime/embedding-presets.d.ts.map +1 -0
  631. package/runtime/embedding-presets.js +47 -0
  632. package/runtime/embedding-warmup-policy.d.ts +13 -0
  633. package/runtime/embedding-warmup-policy.d.ts.map +1 -0
  634. package/runtime/embedding-warmup-policy.js +33 -0
  635. package/runtime/ensure-local-inference-handler.d.ts +24 -0
  636. package/runtime/ensure-local-inference-handler.d.ts.map +1 -0
  637. package/runtime/ensure-local-inference-handler.js +380 -0
  638. package/runtime/ensure-text-to-speech-handler.d.ts +18 -0
  639. package/runtime/ensure-text-to-speech-handler.d.ts.map +1 -0
  640. package/runtime/ensure-text-to-speech-handler.js +50 -0
  641. package/runtime/error-handlers.d.ts +12 -0
  642. package/runtime/error-handlers.d.ts.map +1 -0
  643. package/runtime/error-handlers.js +49 -0
  644. package/runtime/mobile-local-inference-gate.d.ts +21 -0
  645. package/runtime/mobile-local-inference-gate.d.ts.map +1 -0
  646. package/runtime/mobile-local-inference-gate.js +24 -0
  647. package/runtime/mobile-safe-runtime.d.ts +123 -0
  648. package/runtime/mobile-safe-runtime.d.ts.map +1 -0
  649. package/runtime/mobile-safe-runtime.js +290 -0
  650. package/runtime/mode/remote-forwarder.d.ts +35 -0
  651. package/runtime/mode/remote-forwarder.d.ts.map +1 -0
  652. package/runtime/mode/remote-forwarder.js +119 -0
  653. package/runtime/mode/route-mode-guard.d.ts +21 -0
  654. package/runtime/mode/route-mode-guard.d.ts.map +1 -0
  655. package/runtime/mode/route-mode-guard.js +30 -0
  656. package/runtime/mode/route-mode-matrix.d.ts +64 -0
  657. package/runtime/mode/route-mode-matrix.d.ts.map +1 -0
  658. package/runtime/mode/route-mode-matrix.js +125 -0
  659. package/runtime/mode/runtime-mode.d.ts +54 -0
  660. package/runtime/mode/runtime-mode.d.ts.map +1 -0
  661. package/runtime/mode/runtime-mode.js +99 -0
  662. package/runtime/runtime-bootstrap-policy.d.ts +17 -0
  663. package/runtime/runtime-bootstrap-policy.d.ts.map +1 -0
  664. package/runtime/runtime-bootstrap-policy.js +37 -0
  665. package/runtime/sandbox-policy.d.ts +8 -0
  666. package/runtime/sandbox-policy.d.ts.map +1 -0
  667. package/runtime/sandbox-policy.js +7 -0
  668. package/runtime/startup-overlay.d.ts +14 -0
  669. package/runtime/startup-overlay.d.ts.map +1 -0
  670. package/runtime/startup-overlay.js +55 -0
  671. package/runtime/telegram-standalone-handler.d.ts +34 -0
  672. package/runtime/telegram-standalone-handler.d.ts.map +1 -0
  673. package/runtime/telegram-standalone-handler.js +195 -0
  674. package/runtime/telegram-standalone-policy.d.ts +2 -0
  675. package/runtime/telegram-standalone-policy.d.ts.map +1 -0
  676. package/runtime/telegram-standalone-policy.js +14 -0
  677. package/scripts/README.md +27 -0
  678. package/scripts/align-electrobun-version.mjs +37 -0
  679. package/scripts/aosp/README.md +66 -0
  680. package/scripts/aosp/avd-test.mjs +403 -0
  681. package/scripts/aosp/boot-validate.mjs +536 -0
  682. package/scripts/aosp/build-aosp.mjs +448 -0
  683. package/scripts/aosp/build-bootanimation.mjs +178 -0
  684. package/scripts/aosp/capture-screens.mjs +325 -0
  685. package/scripts/aosp/compile-libllama.mjs +1333 -0
  686. package/scripts/aosp/compile-shim.mjs +328 -0
  687. package/scripts/aosp/e2e-validate.mjs +225 -0
  688. package/scripts/aosp/lib/load-variant-config.mjs +182 -0
  689. package/scripts/aosp/lint-init-rc.mjs +258 -0
  690. package/scripts/aosp/llama-cpp-patches/README.md +49 -0
  691. package/scripts/aosp/llama-cpp-patches/apply-patches.mjs +198 -0
  692. package/scripts/aosp/llama-cpp-patches/polarquant/0001-Q4_POLAR-register-GGML_TYPE_Q4_POLAR-45-and-block_q4.patch +108 -0
  693. package/scripts/aosp/llama-cpp-patches/polarquant/0002-Q4_POLAR-vendor-PolarQuant-ref-kernels-into-ggml-bas.patch +460 -0
  694. package/scripts/aosp/llama-cpp-patches/polarquant/0003-tests-cover-Q4_POLAR-fix-latent-buffer-overflow.patch +102 -0
  695. package/scripts/aosp/llama-cpp-patches/polarquant/0004-Q4_POLAR-gate-QJL-residual-on-runtime-flag-default-o.patch +97 -0
  696. package/scripts/aosp/llama-cpp-patches/qjl/0001-ggml-add-GGML_TYPE_QJL1_256-GGML_OP_ATTN_SCORE_QJL-e.patch +120 -0
  697. package/scripts/aosp/llama-cpp-patches/qjl/0002-ggml-register-QJL1_256-type-traits-ATTN_SCORE_QJL-op.patch +1392 -0
  698. package/scripts/aosp/llama-cpp-patches/qjl/0003-ggml-set-QJL1_256-blck_size-to-head_dim-128-not-sket.patch +56 -0
  699. package/scripts/aosp/llama-cpp-patches/qjl/0004-tests-add-test-qjl-cache-verifying-type-traits-score.patch +335 -0
  700. package/scripts/aosp/llama-cpp-patches/qjl/0005-ggml-flip-block_qjl1_256-to-signs-then-norm.patch +69 -0
  701. package/scripts/aosp/llama-shim/eliza_llama_shim.c +276 -0
  702. package/scripts/aosp/seccomp-shim/loader-wrap.c +141 -0
  703. package/scripts/aosp/seccomp-shim/sigsys-handler.c +338 -0
  704. package/scripts/aosp/sim.mjs +277 -0
  705. package/scripts/aosp/smoke-cuttlefish.mjs +673 -0
  706. package/scripts/aosp/stage-default-models.mjs +340 -0
  707. package/scripts/aosp/stage-models-dfm.mjs +384 -0
  708. package/scripts/aosp/sync-to-aosp.mjs +134 -0
  709. package/scripts/aosp/validate.mjs +1273 -0
  710. package/scripts/aosp/variant-config-schema.ts +10 -0
  711. package/scripts/audit-live-test-surface.mjs +590 -0
  712. package/scripts/audit-server-test-surface.mjs +163 -0
  713. package/scripts/benchmark-preflight.mjs +170 -0
  714. package/scripts/bin/.gitkeep +0 -0
  715. package/scripts/build-bundled-agent-skills-artifact.mjs +58 -0
  716. package/scripts/build-bundled-orchestrator-artifact.mjs +66 -0
  717. package/scripts/build-capacitor-app.mjs +122 -0
  718. package/scripts/build-electrobun-preload.mjs +117 -0
  719. package/scripts/build-flatpak.mjs +125 -0
  720. package/scripts/build-image.sh +461 -0
  721. package/scripts/build-llama-cpp-dflash.mjs +1831 -0
  722. package/scripts/build-native-plugins.mjs +153 -0
  723. package/scripts/build-patched-electrobun-cli.mjs +424 -0
  724. package/scripts/build-win.mjs +82 -0
  725. package/scripts/bump-elizaos.sh +438 -0
  726. package/scripts/check-i18n.mjs +328 -0
  727. package/scripts/check-secret-hygiene.mjs +344 -0
  728. package/scripts/check-upstream-drift.mjs +102 -0
  729. package/scripts/clean-repo.mjs +187 -0
  730. package/scripts/codesign-mas.mjs +297 -0
  731. package/scripts/container-entrypoint.mjs +101 -0
  732. package/scripts/coordinator-cross-platform-review.mjs +192 -0
  733. package/scripts/copy-package-assets.mjs +31 -0
  734. package/scripts/copy-runtime-node-modules.ts +1782 -0
  735. package/scripts/coverage-policy.d.mts +16 -0
  736. package/scripts/coverage-policy.mjs +38 -0
  737. package/scripts/css-coverage.mjs +241 -0
  738. package/scripts/deploy-image.sh +318 -0
  739. package/scripts/desktop-build.mjs +867 -0
  740. package/scripts/desktop-stack-status.mjs +80 -0
  741. package/scripts/dev-platform.mjs +975 -0
  742. package/scripts/dev-ui.mjs +1178 -0
  743. package/scripts/dev-win.mjs +25 -0
  744. package/scripts/disable-local-eliza-workspace.mjs +420 -0
  745. package/scripts/docker-ci-smoke.sh +500 -0
  746. package/scripts/docker-entrypoint.sh +11 -0
  747. package/scripts/docker-runtime-review.mjs +230 -0
  748. package/scripts/docs-list.js +206 -0
  749. package/scripts/ensure-avatars.mjs +335 -0
  750. package/scripts/ensure-bundled-workspaces.mjs +143 -0
  751. package/scripts/ensure-capacitor-platform.mjs +58 -0
  752. package/scripts/ensure-electrobun-core.mjs +318 -0
  753. package/scripts/ensure-generated-core-proto-js.mjs +125 -0
  754. package/scripts/ensure-shared-i18n-data.mjs +67 -0
  755. package/scripts/ensure-skills.mjs +177 -0
  756. package/scripts/ensure-type-package-aliases.mjs +246 -0
  757. package/scripts/ensure-vision-deps.mjs +196 -0
  758. package/scripts/entry.ts +11 -0
  759. package/scripts/find-collisions.mjs +765 -0
  760. package/scripts/find-duplicate-components.mjs +203 -0
  761. package/scripts/fix-workspace-deps.mjs +328 -0
  762. package/scripts/generate-onboarding-voicelines.mjs +194 -0
  763. package/scripts/generate-plugin-index.js +1055 -0
  764. package/scripts/generate-static-asset-manifest.mjs +15 -0
  765. package/scripts/generated/static-asset-manifest.json +4 -0
  766. package/scripts/i18n-dynamic-keys.json +128 -0
  767. package/scripts/init-submodules.mjs +425 -0
  768. package/scripts/ios-xcframework/README.md +233 -0
  769. package/scripts/ios-xcframework/build-xcframework.mjs +487 -0
  770. package/scripts/kernel-patches/metal-kernels.mjs +636 -0
  771. package/scripts/kernel-patches/vulkan-dispatch-patches/01-vulkan-shaders-gen.patch +41 -0
  772. package/scripts/kernel-patches/vulkan-dispatch-patches/02-ggml-vulkan-pipelines.patch +86 -0
  773. package/scripts/kernel-patches/vulkan-kernels.mjs +281 -0
  774. package/scripts/lib/allocate-loopback-port.mjs +58 -0
  775. package/scripts/lib/api-supervisor.mjs +115 -0
  776. package/scripts/lib/app-dir.mjs +74 -0
  777. package/scripts/lib/asset-cdn.mjs +118 -0
  778. package/scripts/lib/bun-version-guard.mjs +44 -0
  779. package/scripts/lib/capacitor-platform-templates.mjs +306 -0
  780. package/scripts/lib/capacitor-plugin-build-needed.mjs +79 -0
  781. package/scripts/lib/capacitor-plugin-names.mjs +35 -0
  782. package/scripts/lib/desktop-preflight.mjs +122 -0
  783. package/scripts/lib/desktop-stack-status.mjs +151 -0
  784. package/scripts/lib/dev-ui-onchain.mjs +22 -0
  785. package/scripts/lib/dev-ui-vision.mjs +15 -0
  786. package/scripts/lib/kill-process-tree.mjs +87 -0
  787. package/scripts/lib/kill-ui-listen-port.mjs +74 -0
  788. package/scripts/lib/node-path-env.mjs +11 -0
  789. package/scripts/lib/orchestrator-desktop-dev-banner.mjs +285 -0
  790. package/scripts/lib/patch-bun-exports.mjs +1446 -0
  791. package/scripts/lib/read-app-identity.mjs +50 -0
  792. package/scripts/lib/release-check-pack-dry-run.ts +34 -0
  793. package/scripts/lib/repo-root.mjs +77 -0
  794. package/scripts/lib/stage-android-agent.mjs +704 -0
  795. package/scripts/lib/static-asset-manifest.mjs +151 -0
  796. package/scripts/lib/sync-eliza-env-aliases.mjs +37 -0
  797. package/scripts/lib/vite-renderer-dist-stale.mjs +141 -0
  798. package/scripts/lib/workspace-discovery.mjs +108 -0
  799. package/scripts/lifeops-prompt-benchmark.ts +206 -0
  800. package/scripts/link-browser-server.mjs +157 -0
  801. package/scripts/link-docker-local-app-packages.mjs +345 -0
  802. package/scripts/link-external-plugins.mjs +195 -0
  803. package/scripts/mobile-auth-simulator-smoke.mjs +373 -0
  804. package/scripts/normalize-parallax-capture.ts +97 -0
  805. package/scripts/omnivoice-fuse/Makefile +44 -0
  806. package/scripts/omnivoice-fuse/README.md +266 -0
  807. package/scripts/omnivoice-fuse/cmake-graft.mjs +180 -0
  808. package/scripts/omnivoice-fuse/ffi-stub.c +222 -0
  809. package/scripts/omnivoice-fuse/ffi.h +158 -0
  810. package/scripts/omnivoice-fuse/libelizainference_stub.dylib +0 -0
  811. package/scripts/omnivoice-fuse/prepare.mjs +263 -0
  812. package/scripts/omnivoice-fuse/verify-symbols.mjs +138 -0
  813. package/scripts/pack-upstreams.mjs +392 -0
  814. package/scripts/patch-deps.mjs +597 -0
  815. package/scripts/patch-workspace-plugins.mjs +148 -0
  816. package/scripts/playwright-ui-live-stack.ts +667 -0
  817. package/scripts/playwright-ui-smoke-api-stub.mjs +1838 -0
  818. package/scripts/plugin-index-local-additions.json +12 -0
  819. package/scripts/plugin-metadata-overrides.json +165 -0
  820. package/scripts/pre-review-local.mjs +599 -0
  821. package/scripts/prepare-ios-cocoapods.sh +30 -0
  822. package/scripts/prepare-package-dist.mjs +358 -0
  823. package/scripts/process-vrms.mjs +203 -0
  824. package/scripts/prune-cdn-local-assets.mjs +44 -0
  825. package/scripts/publish-local-plugins-next.mjs +122 -0
  826. package/scripts/release-check.ts +1402 -0
  827. package/scripts/relink-workspace-packages-to-dist.mjs +115 -0
  828. package/scripts/replace-workspace-versions.mjs +128 -0
  829. package/scripts/report-coverage-surfaces.mjs +121 -0
  830. package/scripts/restore-workspace-refs.mjs +128 -0
  831. package/scripts/rt.mjs +29 -0
  832. package/scripts/rt.sh +4 -0
  833. package/scripts/run-biome-check.mjs +191 -0
  834. package/scripts/run-coding-agent-e2e.mjs +46 -0
  835. package/scripts/run-desktop-playwright.mjs +35 -0
  836. package/scripts/run-local-plugin-live-smoke.mjs +185 -0
  837. package/scripts/run-mobile-build.mjs +3308 -0
  838. package/scripts/run-node-runtime.mjs +75 -0
  839. package/scripts/run-node-tsx.mjs +62 -0
  840. package/scripts/run-node.mjs +294 -0
  841. package/scripts/run-playwright.mjs +66 -0
  842. package/scripts/run-production-build.mjs +138 -0
  843. package/scripts/run-release-contract-suite.mjs +57 -0
  844. package/scripts/run-repo-setup.mjs +230 -0
  845. package/scripts/run-screenshotter.mjs +140 -0
  846. package/scripts/run-ui-smoke-playwright-suite.mjs +96 -0
  847. package/scripts/run-windows-smoke-launcher.ps1 +35 -0
  848. package/scripts/run-with-env.mjs +60 -0
  849. package/scripts/runtime-package-manifest.ts +107 -0
  850. package/scripts/sandbox-setup.sh +7 -0
  851. package/scripts/sanitize-npm-package-metadata.mjs +165 -0
  852. package/scripts/set-package-version.mjs +13 -0
  853. package/scripts/setup-upstreams.mjs +838 -0
  854. package/scripts/smoke-api-status.mjs +113 -0
  855. package/scripts/smoke-lifeops.mjs +305 -0
  856. package/scripts/startup-integration-script-drift.test.ts +94 -0
  857. package/scripts/sync-desktop-renderer.mjs +308 -0
  858. package/scripts/sync-dod-gap-issues-lib.mjs +214 -0
  859. package/scripts/sync-dod-gap-issues.mjs +218 -0
  860. package/scripts/type-audit.mjs +606 -0
  861. package/scripts/validate-cdn-assets.mjs +307 -0
  862. package/scripts/validate-regression-matrix.mjs +360 -0
  863. package/scripts/workspace-plugin-patches/plugin-anthropic-elizaos-core-api-compat.patch +34 -0
  864. package/scripts/workspace-prepare.mjs +192 -0
  865. package/scripts/worktree-env.sh +41 -0
  866. package/scripts/write-build-info.ts +69 -0
  867. package/scripts/write-homepage-release-data.mjs +393 -0
  868. package/security/agent-vault-id.d.ts +16 -0
  869. package/security/agent-vault-id.d.ts.map +1 -0
  870. package/security/agent-vault-id.js +32 -0
  871. package/security/cloud-secret-store.d.ts +34 -0
  872. package/security/cloud-secret-store.d.ts.map +1 -0
  873. package/security/cloud-secret-store.js +65 -0
  874. package/security/export-guard.d.ts +34 -0
  875. package/security/export-guard.d.ts.map +1 -0
  876. package/security/export-guard.js +127 -0
  877. package/security/hydrate-wallet-keys-from-platform-store.d.ts +13 -0
  878. package/security/hydrate-wallet-keys-from-platform-store.d.ts.map +1 -0
  879. package/security/hydrate-wallet-keys-from-platform-store.js +116 -0
  880. package/security/platform-secure-store-node.d.ts +13 -0
  881. package/security/platform-secure-store-node.d.ts.map +1 -0
  882. package/security/platform-secure-store-node.js +311 -0
  883. package/security/platform-secure-store.d.ts +47 -0
  884. package/security/platform-secure-store.d.ts.map +1 -0
  885. package/security/platform-secure-store.js +10 -0
  886. package/security/wallet-os-store-actions.d.ts +45 -0
  887. package/security/wallet-os-store-actions.d.ts.map +1 -0
  888. package/security/wallet-os-store-actions.js +125 -0
  889. package/services/account-pool.d.ts +134 -0
  890. package/services/account-pool.d.ts.map +1 -0
  891. package/services/account-pool.js +693 -0
  892. package/services/account-usage.d.ts +75 -0
  893. package/services/account-usage.d.ts.map +1 -0
  894. package/services/account-usage.js +179 -0
  895. package/services/auth-store.d.ts +179 -0
  896. package/services/auth-store.d.ts.map +1 -0
  897. package/services/auth-store.js +404 -0
  898. package/services/cloud-jwks-store.d.ts +62 -0
  899. package/services/cloud-jwks-store.d.ts.map +1 -0
  900. package/services/cloud-jwks-store.js +118 -0
  901. package/services/connector-target-catalog.d.ts +78 -0
  902. package/services/connector-target-catalog.d.ts.map +1 -0
  903. package/services/connector-target-catalog.js +64 -0
  904. package/services/discord-target-source.d.ts +53 -0
  905. package/services/discord-target-source.d.ts.map +1 -0
  906. package/services/discord-target-source.js +116 -0
  907. package/services/github-credentials.d.ts +95 -0
  908. package/services/github-credentials.d.ts.map +1 -0
  909. package/services/github-credentials.js +144 -0
  910. package/services/local-inference/__stress__/cache-stress-helpers.d.ts +76 -0
  911. package/services/local-inference/__stress__/cache-stress-helpers.d.ts.map +1 -0
  912. package/services/local-inference/__stress__/cache-stress-helpers.js +238 -0
  913. package/services/local-inference/active-model.d.ts +180 -0
  914. package/services/local-inference/active-model.d.ts.map +1 -0
  915. package/services/local-inference/active-model.js +362 -0
  916. package/services/local-inference/assignments.d.ts +58 -0
  917. package/services/local-inference/assignments.d.ts.map +1 -0
  918. package/services/local-inference/assignments.js +179 -0
  919. package/services/local-inference/backend.d.ts +200 -0
  920. package/services/local-inference/backend.d.ts.map +1 -0
  921. package/services/local-inference/backend.js +242 -0
  922. package/services/local-inference/bundled-models.d.ts +34 -0
  923. package/services/local-inference/bundled-models.d.ts.map +1 -0
  924. package/services/local-inference/bundled-models.js +104 -0
  925. package/services/local-inference/cache-bridge.d.ts +184 -0
  926. package/services/local-inference/cache-bridge.d.ts.map +1 -0
  927. package/services/local-inference/cache-bridge.js +333 -0
  928. package/services/local-inference/catalog.d.ts +56 -0
  929. package/services/local-inference/catalog.d.ts.map +1 -0
  930. package/services/local-inference/catalog.js +143 -0
  931. package/services/local-inference/conversation-registry.d.ts +122 -0
  932. package/services/local-inference/conversation-registry.d.ts.map +1 -0
  933. package/services/local-inference/conversation-registry.js +182 -0
  934. package/services/local-inference/device-bridge.d.ts +139 -0
  935. package/services/local-inference/device-bridge.d.ts.map +1 -0
  936. package/services/local-inference/device-bridge.js +774 -0
  937. package/services/local-inference/dflash-doctor.d.ts +27 -0
  938. package/services/local-inference/dflash-doctor.d.ts.map +1 -0
  939. package/services/local-inference/dflash-doctor.js +149 -0
  940. package/services/local-inference/dflash-server.d.ts +248 -0
  941. package/services/local-inference/dflash-server.d.ts.map +1 -0
  942. package/services/local-inference/dflash-server.js +1076 -0
  943. package/services/local-inference/downloader.d.ts +46 -0
  944. package/services/local-inference/downloader.d.ts.map +1 -0
  945. package/services/local-inference/downloader.js +389 -0
  946. package/services/local-inference/engine.d.ts +282 -0
  947. package/services/local-inference/engine.d.ts.map +1 -0
  948. package/services/local-inference/engine.js +743 -0
  949. package/services/local-inference/external-scanner.d.ts +17 -0
  950. package/services/local-inference/external-scanner.d.ts.map +1 -0
  951. package/services/local-inference/external-scanner.js +261 -0
  952. package/services/local-inference/handler-registry.d.ts +72 -0
  953. package/services/local-inference/handler-registry.d.ts.map +1 -0
  954. package/services/local-inference/handler-registry.js +159 -0
  955. package/services/local-inference/hardware.d.ts +26 -0
  956. package/services/local-inference/hardware.d.ts.map +1 -0
  957. package/services/local-inference/hardware.js +139 -0
  958. package/services/local-inference/hf-search.d.ts +19 -0
  959. package/services/local-inference/hf-search.d.ts.map +1 -0
  960. package/services/local-inference/hf-search.js +169 -0
  961. package/services/local-inference/index.d.ts +10 -0
  962. package/services/local-inference/index.d.ts.map +1 -0
  963. package/services/local-inference/index.js +7 -0
  964. package/services/local-inference/llama-server-metrics.d.ts +108 -0
  965. package/services/local-inference/llama-server-metrics.d.ts.map +1 -0
  966. package/services/local-inference/llama-server-metrics.js +175 -0
  967. package/services/local-inference/manifest/index.d.ts +4 -0
  968. package/services/local-inference/manifest/index.d.ts.map +1 -0
  969. package/services/local-inference/manifest/index.js +5 -0
  970. package/services/local-inference/manifest/schema.d.ts +419 -0
  971. package/services/local-inference/manifest/schema.d.ts.map +1 -0
  972. package/services/local-inference/manifest/schema.js +227 -0
  973. package/services/local-inference/manifest/types.d.ts +23 -0
  974. package/services/local-inference/manifest/types.d.ts.map +1 -0
  975. package/services/local-inference/manifest/types.js +5 -0
  976. package/services/local-inference/manifest/validator.d.ts +43 -0
  977. package/services/local-inference/manifest/validator.d.ts.map +1 -0
  978. package/services/local-inference/manifest/validator.js +132 -0
  979. package/services/local-inference/paths.d.ts +8 -0
  980. package/services/local-inference/paths.d.ts.map +1 -0
  981. package/services/local-inference/paths.js +7 -0
  982. package/services/local-inference/providers.d.ts +61 -0
  983. package/services/local-inference/providers.d.ts.map +1 -0
  984. package/services/local-inference/providers.js +334 -0
  985. package/services/local-inference/ram-budget.d.ts +57 -0
  986. package/services/local-inference/ram-budget.d.ts.map +1 -0
  987. package/services/local-inference/ram-budget.js +107 -0
  988. package/services/local-inference/readiness.d.ts +9 -0
  989. package/services/local-inference/readiness.d.ts.map +1 -0
  990. package/services/local-inference/readiness.js +153 -0
  991. package/services/local-inference/recommendation.d.ts +62 -0
  992. package/services/local-inference/recommendation.d.ts.map +1 -0
  993. package/services/local-inference/recommendation.js +309 -0
  994. package/services/local-inference/registry.d.ts +35 -0
  995. package/services/local-inference/registry.d.ts.map +1 -0
  996. package/services/local-inference/registry.js +108 -0
  997. package/services/local-inference/router-handler.d.ts +51 -0
  998. package/services/local-inference/router-handler.d.ts.map +1 -0
  999. package/services/local-inference/router-handler.js +165 -0
  1000. package/services/local-inference/routing-policy.d.ts +55 -0
  1001. package/services/local-inference/routing-policy.d.ts.map +1 -0
  1002. package/services/local-inference/routing-policy.js +195 -0
  1003. package/services/local-inference/routing-preferences.d.ts +8 -0
  1004. package/services/local-inference/routing-preferences.d.ts.map +1 -0
  1005. package/services/local-inference/routing-preferences.js +7 -0
  1006. package/services/local-inference/service.d.ts +88 -0
  1007. package/services/local-inference/service.d.ts.map +1 -0
  1008. package/services/local-inference/service.js +210 -0
  1009. package/services/local-inference/session-pool.d.ts +72 -0
  1010. package/services/local-inference/session-pool.d.ts.map +1 -0
  1011. package/services/local-inference/session-pool.js +125 -0
  1012. package/services/local-inference/types.d.ts +303 -0
  1013. package/services/local-inference/types.d.ts.map +1 -0
  1014. package/services/local-inference/types.js +23 -0
  1015. package/services/local-inference/verify.d.ts +8 -0
  1016. package/services/local-inference/verify.d.ts.map +1 -0
  1017. package/services/local-inference/verify.js +7 -0
  1018. package/services/local-inference/voice/barge-in.d.ts +15 -0
  1019. package/services/local-inference/voice/barge-in.d.ts.map +1 -0
  1020. package/services/local-inference/voice/barge-in.js +20 -0
  1021. package/services/local-inference/voice/engine-bridge.d.ts +256 -0
  1022. package/services/local-inference/voice/engine-bridge.d.ts.map +1 -0
  1023. package/services/local-inference/voice/engine-bridge.js +398 -0
  1024. package/services/local-inference/voice/ffi-bindings.d.ts +114 -0
  1025. package/services/local-inference/voice/ffi-bindings.d.ts.map +1 -0
  1026. package/services/local-inference/voice/ffi-bindings.js +281 -0
  1027. package/services/local-inference/voice/index.d.ts +51 -0
  1028. package/services/local-inference/voice/index.d.ts.map +1 -0
  1029. package/services/local-inference/voice/index.js +50 -0
  1030. package/services/local-inference/voice/lifecycle.d.ts +135 -0
  1031. package/services/local-inference/voice/lifecycle.d.ts.map +1 -0
  1032. package/services/local-inference/voice/lifecycle.js +189 -0
  1033. package/services/local-inference/voice/phoneme-tokenizer.d.ts +58 -0
  1034. package/services/local-inference/voice/phoneme-tokenizer.d.ts.map +1 -0
  1035. package/services/local-inference/voice/phoneme-tokenizer.js +53 -0
  1036. package/services/local-inference/voice/phrase-cache.d.ts +24 -0
  1037. package/services/local-inference/voice/phrase-cache.d.ts.map +1 -0
  1038. package/services/local-inference/voice/phrase-cache.js +32 -0
  1039. package/services/local-inference/voice/phrase-chunker.d.ts +20 -0
  1040. package/services/local-inference/voice/phrase-chunker.d.ts.map +1 -0
  1041. package/services/local-inference/voice/phrase-chunker.js +85 -0
  1042. package/services/local-inference/voice/ring-buffer.d.ts +40 -0
  1043. package/services/local-inference/voice/ring-buffer.d.ts.map +1 -0
  1044. package/services/local-inference/voice/ring-buffer.js +85 -0
  1045. package/services/local-inference/voice/rollback-queue.d.ts +24 -0
  1046. package/services/local-inference/voice/rollback-queue.d.ts.map +1 -0
  1047. package/services/local-inference/voice/rollback-queue.js +49 -0
  1048. package/services/local-inference/voice/scheduler.d.ts +47 -0
  1049. package/services/local-inference/voice/scheduler.d.ts.map +1 -0
  1050. package/services/local-inference/voice/scheduler.js +123 -0
  1051. package/services/local-inference/voice/shared-resources.d.ts +119 -0
  1052. package/services/local-inference/voice/shared-resources.d.ts.map +1 -0
  1053. package/services/local-inference/voice/shared-resources.js +83 -0
  1054. package/services/local-inference/voice/speaker-preset-cache.d.ts +28 -0
  1055. package/services/local-inference/voice/speaker-preset-cache.d.ts.map +1 -0
  1056. package/services/local-inference/voice/speaker-preset-cache.js +44 -0
  1057. package/services/local-inference/voice/types.d.ts +80 -0
  1058. package/services/local-inference/voice/types.d.ts.map +1 -0
  1059. package/services/local-inference/voice/voice-preset-format.d.ts +56 -0
  1060. package/services/local-inference/voice/voice-preset-format.d.ts.map +1 -0
  1061. package/services/local-inference/voice/voice-preset-format.js +184 -0
  1062. package/services/persistence.d.ts +48 -0
  1063. package/services/persistence.d.ts.map +1 -0
  1064. package/services/persistence.js +128 -0
  1065. package/services/plugin-installer.d.ts +22 -0
  1066. package/services/plugin-installer.d.ts.map +1 -0
  1067. package/services/plugin-installer.js +41 -0
  1068. package/services/secrets-manager-installer.d.ts +140 -0
  1069. package/services/secrets-manager-installer.d.ts.map +1 -0
  1070. package/services/secrets-manager-installer.js +374 -0
  1071. package/services/steward-credentials.d.ts +37 -0
  1072. package/services/steward-credentials.d.ts.map +1 -0
  1073. package/services/steward-credentials.js +93 -0
  1074. package/services/steward-sidecar/health-check.d.ts +9 -0
  1075. package/services/steward-sidecar/health-check.d.ts.map +1 -0
  1076. package/services/steward-sidecar/health-check.js +34 -0
  1077. package/services/steward-sidecar/helpers.d.ts +21 -0
  1078. package/services/steward-sidecar/helpers.d.ts.map +1 -0
  1079. package/services/steward-sidecar/helpers.js +71 -0
  1080. package/services/steward-sidecar/process-management.d.ts +9 -0
  1081. package/services/steward-sidecar/process-management.d.ts.map +1 -0
  1082. package/services/steward-sidecar/process-management.js +53 -0
  1083. package/services/steward-sidecar/types.d.ts +60 -0
  1084. package/services/steward-sidecar/types.d.ts.map +1 -0
  1085. package/services/steward-sidecar/types.js +17 -0
  1086. package/services/steward-sidecar/wallet-setup.d.ts +9 -0
  1087. package/services/steward-sidecar/wallet-setup.d.ts.map +1 -0
  1088. package/services/steward-sidecar/wallet-setup.js +114 -0
  1089. package/services/steward-sidecar.d.ts +70 -0
  1090. package/services/steward-sidecar.d.ts.map +1 -0
  1091. package/services/steward-sidecar.js +385 -0
  1092. package/services/tool-call-cache/index.d.ts +13 -0
  1093. package/services/tool-call-cache/index.d.ts.map +1 -0
  1094. package/services/tool-call-cache/index.js +11 -0
  1095. package/services/trigger-event-bridge.d.ts +52 -0
  1096. package/services/trigger-event-bridge.d.ts.map +1 -0
  1097. package/services/trigger-event-bridge.js +217 -0
  1098. package/services/update-notifier.d.ts +6 -0
  1099. package/services/update-notifier.d.ts.map +1 -0
  1100. package/services/update-notifier.js +33 -0
  1101. package/services/vault-bootstrap.d.ts +31 -0
  1102. package/services/vault-bootstrap.d.ts.map +1 -0
  1103. package/services/vault-bootstrap.js +209 -0
  1104. package/services/vault-mirror.d.ts +44 -0
  1105. package/services/vault-mirror.d.ts.map +1 -0
  1106. package/services/vault-mirror.js +80 -0
  1107. package/styles/electrobun-mac-window-drag.css +66 -0
  1108. package/test/helpers/__tests__/live-agent-test.smoke.test.ts +105 -0
  1109. package/test/helpers/action-assertions.ts +364 -0
  1110. package/test/helpers/action-spy.ts +354 -0
  1111. package/test/helpers/browser-launch.ts +103 -0
  1112. package/test/helpers/browser-mocks.ts +275 -0
  1113. package/test/helpers/conditional-tests.ts +42 -0
  1114. package/test/helpers/conversation-harness.ts +334 -0
  1115. package/test/helpers/http.ts +150 -0
  1116. package/test/helpers/i18n.ts +5 -0
  1117. package/test/helpers/isolated-config.ts +34 -0
  1118. package/test/helpers/live-agent-test.ts +660 -0
  1119. package/test/helpers/live-child-env.ts +72 -0
  1120. package/test/helpers/live-provider.test.ts +124 -0
  1121. package/test/helpers/live-provider.ts +362 -0
  1122. package/test/helpers/live-runtime-server.ts +88 -0
  1123. package/test/helpers/loopback.ts +33 -0
  1124. package/test/helpers/pglite-runtime.ts +173 -0
  1125. package/test/helpers/react-test.ts +40 -0
  1126. package/test/helpers/real-connector.ts +250 -0
  1127. package/test/helpers/real-runtime.ts +542 -0
  1128. package/test/helpers/skip-without.ts +53 -0
  1129. package/test/helpers/stochastic-test.ts +186 -0
  1130. package/test/helpers/test-utils.ts +94 -0
  1131. package/test/helpers/trajectory-assertions.ts +168 -0
  1132. package/test/helpers/trajectory-harness.test.ts +101 -0
  1133. package/test/helpers/trajectory-harness.ts +988 -0
  1134. package/test/scripts/managed-test-command.mjs +632 -0
  1135. package/test/scripts/task-agent-live-smoke.ts +1335 -0
  1136. package/test/scripts/test-parallel.mjs +237 -0
  1137. package/test/scripts/test-root-unit.mjs +169 -0
  1138. package/test/scripts/test-runner.mjs +78 -0
  1139. package/test/scripts/validate-all-features.sh +541 -0
  1140. package/test-support/test-helpers.d.ts +111 -0
  1141. package/test-support/test-helpers.d.ts.map +1 -0
  1142. package/test-support/test-helpers.js +410 -0
  1143. package/ui-compat.d.ts +3 -0
  1144. package/ui-compat.d.ts.map +1 -0
  1145. package/ui-compat.js +3 -0
  1146. package/utils/eliza-root.d.ts +9 -0
  1147. package/utils/eliza-root.d.ts.map +1 -0
  1148. package/utils/eliza-root.js +101 -0
  1149. package/utils/globals.d.ts +7 -0
  1150. package/utils/globals.d.ts.map +1 -0
  1151. package/utils/globals.js +47 -0
  1152. package/App.d.ts +0 -5
  1153. package/App.d.ts.map +0 -1
  1154. package/App.js +0 -220
  1155. package/LICENSE +0 -21
  1156. package/actions/character.d.ts +0 -39
  1157. package/actions/character.d.ts.map +0 -1
  1158. package/actions/character.js +0 -247
  1159. package/actions/chat-helpers.d.ts +0 -47
  1160. package/actions/chat-helpers.d.ts.map +0 -1
  1161. package/actions/chat-helpers.js +0 -79
  1162. package/actions/cloud.d.ts +0 -17
  1163. package/actions/cloud.d.ts.map +0 -1
  1164. package/actions/cloud.js +0 -43
  1165. package/actions/index.d.ts +0 -12
  1166. package/actions/index.d.ts.map +0 -1
  1167. package/actions/index.js +0 -11
  1168. package/actions/lifecycle.d.ts +0 -43
  1169. package/actions/lifecycle.d.ts.map +0 -1
  1170. package/actions/lifecycle.js +0 -118
  1171. package/actions/onboarding.d.ts +0 -13
  1172. package/actions/onboarding.d.ts.map +0 -1
  1173. package/actions/onboarding.js +0 -26
  1174. package/actions/triggers.d.ts +0 -23
  1175. package/actions/triggers.d.ts.map +0 -1
  1176. package/actions/triggers.js +0 -148
  1177. package/api/client.d.ts +0 -2742
  1178. package/api/client.d.ts.map +0 -1
  1179. package/api/client.js +0 -2520
  1180. package/api/index.d.ts +0 -2
  1181. package/api/index.d.ts.map +0 -1
  1182. package/api/index.js +0 -1
  1183. package/autonomy/index.d.ts +0 -48
  1184. package/autonomy/index.d.ts.map +0 -1
  1185. package/autonomy/index.js +0 -330
  1186. package/bridge/capacitor-bridge.d.ts +0 -153
  1187. package/bridge/capacitor-bridge.d.ts.map +0 -1
  1188. package/bridge/capacitor-bridge.js +0 -193
  1189. package/bridge/electrobun-rpc.d.ts +0 -28
  1190. package/bridge/electrobun-rpc.d.ts.map +0 -1
  1191. package/bridge/electrobun-rpc.js +0 -35
  1192. package/bridge/electrobun-runtime.d.ts +0 -3
  1193. package/bridge/electrobun-runtime.d.ts.map +0 -1
  1194. package/bridge/electrobun-runtime.js +0 -17
  1195. package/bridge/index.d.ts +0 -6
  1196. package/bridge/index.d.ts.map +0 -1
  1197. package/bridge/index.js +0 -5
  1198. package/bridge/native-plugins.d.ts +0 -82
  1199. package/bridge/native-plugins.d.ts.map +0 -1
  1200. package/bridge/native-plugins.js +0 -39
  1201. package/bridge/plugin-bridge.d.ts +0 -116
  1202. package/bridge/plugin-bridge.d.ts.map +0 -1
  1203. package/bridge/plugin-bridge.js +0 -203
  1204. package/bridge/storage-bridge.d.ts +0 -39
  1205. package/bridge/storage-bridge.d.ts.map +0 -1
  1206. package/bridge/storage-bridge.js +0 -135
  1207. package/chat/index.d.ts +0 -57
  1208. package/chat/index.d.ts.map +0 -1
  1209. package/chat/index.js +0 -160
  1210. package/coding/index.d.ts +0 -25
  1211. package/coding/index.d.ts.map +0 -1
  1212. package/coding/index.js +0 -25
  1213. package/components/AdvancedPageView.d.ts +0 -17
  1214. package/components/AdvancedPageView.d.ts.map +0 -1
  1215. package/components/AdvancedPageView.js +0 -146
  1216. package/components/AgentActivityBox.d.ts +0 -7
  1217. package/components/AgentActivityBox.d.ts.map +0 -1
  1218. package/components/AgentActivityBox.js +0 -25
  1219. package/components/ApiKeyConfig.d.ts +0 -26
  1220. package/components/ApiKeyConfig.d.ts.map +0 -1
  1221. package/components/ApiKeyConfig.js +0 -119
  1222. package/components/AppsPageView.d.ts +0 -7
  1223. package/components/AppsPageView.d.ts.map +0 -1
  1224. package/components/AppsPageView.js +0 -31
  1225. package/components/AppsView.d.ts +0 -8
  1226. package/components/AppsView.d.ts.map +0 -1
  1227. package/components/AppsView.js +0 -149
  1228. package/components/AvatarLoader.d.ts +0 -13
  1229. package/components/AvatarLoader.d.ts.map +0 -1
  1230. package/components/AvatarLoader.js +0 -53
  1231. package/components/AvatarSelector.d.ts +0 -23
  1232. package/components/AvatarSelector.d.ts.map +0 -1
  1233. package/components/AvatarSelector.js +0 -105
  1234. package/components/BscTradePanel.d.ts +0 -22
  1235. package/components/BscTradePanel.d.ts.map +0 -1
  1236. package/components/BscTradePanel.js +0 -221
  1237. package/components/BugReportModal.d.ts +0 -2
  1238. package/components/BugReportModal.d.ts.map +0 -1
  1239. package/components/BugReportModal.js +0 -219
  1240. package/components/CharacterRoster.d.ts +0 -31
  1241. package/components/CharacterRoster.d.ts.map +0 -1
  1242. package/components/CharacterRoster.js +0 -41
  1243. package/components/CharacterView.d.ts +0 -8
  1244. package/components/CharacterView.d.ts.map +0 -1
  1245. package/components/CharacterView.js +0 -685
  1246. package/components/ChatAvatar.d.ts +0 -8
  1247. package/components/ChatAvatar.d.ts.map +0 -1
  1248. package/components/ChatAvatar.js +0 -89
  1249. package/components/ChatComposer.d.ts +0 -37
  1250. package/components/ChatComposer.d.ts.map +0 -1
  1251. package/components/ChatComposer.js +0 -136
  1252. package/components/ChatMessage.d.ts +0 -24
  1253. package/components/ChatMessage.d.ts.map +0 -1
  1254. package/components/ChatMessage.js +0 -187
  1255. package/components/ChatModalView.d.ts +0 -10
  1256. package/components/ChatModalView.d.ts.map +0 -1
  1257. package/components/ChatModalView.js +0 -57
  1258. package/components/ChatView.d.ts +0 -14
  1259. package/components/ChatView.d.ts.map +0 -1
  1260. package/components/ChatView.js +0 -526
  1261. package/components/CloudOnboarding.d.ts +0 -7
  1262. package/components/CloudOnboarding.d.ts.map +0 -1
  1263. package/components/CloudOnboarding.js +0 -22
  1264. package/components/CloudSourceControls.d.ts +0 -13
  1265. package/components/CloudSourceControls.d.ts.map +0 -1
  1266. package/components/CloudSourceControls.js +0 -16
  1267. package/components/CodingAgentSettingsSection.d.ts +0 -8
  1268. package/components/CodingAgentSettingsSection.d.ts.map +0 -1
  1269. package/components/CodingAgentSettingsSection.js +0 -292
  1270. package/components/CommandPalette.d.ts +0 -2
  1271. package/components/CommandPalette.d.ts.map +0 -1
  1272. package/components/CommandPalette.js +0 -181
  1273. package/components/CompanionSceneHost.d.ts +0 -14
  1274. package/components/CompanionSceneHost.d.ts.map +0 -1
  1275. package/components/CompanionSceneHost.js +0 -362
  1276. package/components/CompanionShell.d.ts +0 -17
  1277. package/components/CompanionShell.d.ts.map +0 -1
  1278. package/components/CompanionShell.js +0 -15
  1279. package/components/CompanionView.d.ts +0 -2
  1280. package/components/CompanionView.d.ts.map +0 -1
  1281. package/components/CompanionView.js +0 -22
  1282. package/components/ConfigPageView.d.ts +0 -11
  1283. package/components/ConfigPageView.d.ts.map +0 -1
  1284. package/components/ConfigPageView.js +0 -311
  1285. package/components/ConfigSaveFooter.d.ts +0 -8
  1286. package/components/ConfigSaveFooter.d.ts.map +0 -1
  1287. package/components/ConfigSaveFooter.js +0 -10
  1288. package/components/ConfirmModal.d.ts +0 -61
  1289. package/components/ConfirmModal.d.ts.map +0 -1
  1290. package/components/ConfirmModal.js +0 -164
  1291. package/components/ConnectionFailedBanner.d.ts +0 -6
  1292. package/components/ConnectionFailedBanner.d.ts.map +0 -1
  1293. package/components/ConnectionFailedBanner.js +0 -22
  1294. package/components/ConnectorsPageView.d.ts +0 -7
  1295. package/components/ConnectorsPageView.d.ts.map +0 -1
  1296. package/components/ConnectorsPageView.js +0 -8
  1297. package/components/ConversationsSidebar.d.ts +0 -9
  1298. package/components/ConversationsSidebar.d.ts.map +0 -1
  1299. package/components/ConversationsSidebar.js +0 -116
  1300. package/components/CustomActionEditor.d.ts +0 -10
  1301. package/components/CustomActionEditor.d.ts.map +0 -1
  1302. package/components/CustomActionEditor.js +0 -596
  1303. package/components/CustomActionsPanel.d.ts +0 -9
  1304. package/components/CustomActionsPanel.d.ts.map +0 -1
  1305. package/components/CustomActionsPanel.js +0 -107
  1306. package/components/CustomActionsView.d.ts +0 -2
  1307. package/components/CustomActionsView.d.ts.map +0 -1
  1308. package/components/CustomActionsView.js +0 -134
  1309. package/components/DatabasePageView.d.ts +0 -5
  1310. package/components/DatabasePageView.d.ts.map +0 -1
  1311. package/components/DatabasePageView.js +0 -28
  1312. package/components/DatabaseView.d.ts +0 -9
  1313. package/components/DatabaseView.d.ts.map +0 -1
  1314. package/components/DatabaseView.js +0 -311
  1315. package/components/ElizaCloudDashboard.d.ts +0 -2
  1316. package/components/ElizaCloudDashboard.d.ts.map +0 -1
  1317. package/components/ElizaCloudDashboard.js +0 -657
  1318. package/components/EmotePicker.d.ts +0 -2
  1319. package/components/EmotePicker.d.ts.map +0 -1
  1320. package/components/EmotePicker.js +0 -343
  1321. package/components/ErrorBoundary.d.ts +0 -22
  1322. package/components/ErrorBoundary.d.ts.map +0 -1
  1323. package/components/ErrorBoundary.js +0 -31
  1324. package/components/FineTuningView.d.ts +0 -2
  1325. package/components/FineTuningView.d.ts.map +0 -1
  1326. package/components/FineTuningView.js +0 -433
  1327. package/components/FlaminaGuide.d.ts +0 -10
  1328. package/components/FlaminaGuide.d.ts.map +0 -1
  1329. package/components/FlaminaGuide.js +0 -64
  1330. package/components/GameView.d.ts +0 -11
  1331. package/components/GameView.d.ts.map +0 -1
  1332. package/components/GameView.js +0 -294
  1333. package/components/GameViewOverlay.d.ts +0 -8
  1334. package/components/GameViewOverlay.d.ts.map +0 -1
  1335. package/components/GameViewOverlay.js +0 -70
  1336. package/components/GlobalEmoteOverlay.d.ts +0 -2
  1337. package/components/GlobalEmoteOverlay.d.ts.map +0 -1
  1338. package/components/GlobalEmoteOverlay.js +0 -112
  1339. package/components/Header.d.ts +0 -9
  1340. package/components/Header.d.ts.map +0 -1
  1341. package/components/Header.js +0 -123
  1342. package/components/HeartbeatsView.d.ts +0 -2
  1343. package/components/HeartbeatsView.d.ts.map +0 -1
  1344. package/components/HeartbeatsView.js +0 -378
  1345. package/components/InventoryView.d.ts +0 -10
  1346. package/components/InventoryView.d.ts.map +0 -1
  1347. package/components/InventoryView.js +0 -176
  1348. package/components/KnowledgeView.d.ts +0 -20
  1349. package/components/KnowledgeView.d.ts.map +0 -1
  1350. package/components/KnowledgeView.js +0 -483
  1351. package/components/LanguageDropdown.d.ts +0 -30
  1352. package/components/LanguageDropdown.d.ts.map +0 -1
  1353. package/components/LanguageDropdown.js +0 -99
  1354. package/components/LifoMonitorPanel.d.ts +0 -21
  1355. package/components/LifoMonitorPanel.d.ts.map +0 -1
  1356. package/components/LifoMonitorPanel.js +0 -24
  1357. package/components/LifoSandboxView.d.ts +0 -5
  1358. package/components/LifoSandboxView.d.ts.map +0 -1
  1359. package/components/LifoSandboxView.js +0 -333
  1360. package/components/LoadingScreen.d.ts +0 -13
  1361. package/components/LoadingScreen.d.ts.map +0 -1
  1362. package/components/LoadingScreen.js +0 -70
  1363. package/components/LogsPageView.d.ts +0 -2
  1364. package/components/LogsPageView.d.ts.map +0 -1
  1365. package/components/LogsPageView.js +0 -7
  1366. package/components/LogsView.d.ts +0 -5
  1367. package/components/LogsView.d.ts.map +0 -1
  1368. package/components/LogsView.js +0 -71
  1369. package/components/MediaGalleryView.d.ts +0 -9
  1370. package/components/MediaGalleryView.d.ts.map +0 -1
  1371. package/components/MediaGalleryView.js +0 -236
  1372. package/components/MediaSettingsSection.d.ts +0 -11
  1373. package/components/MediaSettingsSection.d.ts.map +0 -1
  1374. package/components/MediaSettingsSection.js +0 -329
  1375. package/components/MessageContent.d.ts +0 -51
  1376. package/components/MessageContent.d.ts.map +0 -1
  1377. package/components/MessageContent.js +0 -553
  1378. package/components/OnboardingWizard.d.ts +0 -2
  1379. package/components/OnboardingWizard.d.ts.map +0 -1
  1380. package/components/OnboardingWizard.js +0 -86
  1381. package/components/PairingView.d.ts +0 -5
  1382. package/components/PairingView.d.ts.map +0 -1
  1383. package/components/PairingView.js +0 -29
  1384. package/components/PermissionsSection.d.ts +0 -20
  1385. package/components/PermissionsSection.d.ts.map +0 -1
  1386. package/components/PermissionsSection.js +0 -573
  1387. package/components/PluginsPageView.d.ts +0 -5
  1388. package/components/PluginsPageView.d.ts.map +0 -1
  1389. package/components/PluginsPageView.js +0 -8
  1390. package/components/PluginsView.d.ts +0 -21
  1391. package/components/PluginsView.d.ts.map +0 -1
  1392. package/components/PluginsView.js +0 -1534
  1393. package/components/ProviderSwitcher.d.ts +0 -42
  1394. package/components/ProviderSwitcher.d.ts.map +0 -1
  1395. package/components/ProviderSwitcher.js +0 -493
  1396. package/components/RestartBanner.d.ts +0 -2
  1397. package/components/RestartBanner.d.ts.map +0 -1
  1398. package/components/RestartBanner.js +0 -36
  1399. package/components/RuntimeView.d.ts +0 -10
  1400. package/components/RuntimeView.d.ts.map +0 -1
  1401. package/components/RuntimeView.js +0 -165
  1402. package/components/SaveCommandModal.d.ts +0 -12
  1403. package/components/SaveCommandModal.d.ts.map +0 -1
  1404. package/components/SaveCommandModal.js +0 -84
  1405. package/components/SecretsView.d.ts +0 -9
  1406. package/components/SecretsView.d.ts.map +0 -1
  1407. package/components/SecretsView.js +0 -249
  1408. package/components/SettingsView.d.ts +0 -9
  1409. package/components/SettingsView.d.ts.map +0 -1
  1410. package/components/SettingsView.js +0 -230
  1411. package/components/ShellOverlays.d.ts +0 -8
  1412. package/components/ShellOverlays.d.ts.map +0 -1
  1413. package/components/ShellOverlays.js +0 -10
  1414. package/components/ShortcutsOverlay.d.ts +0 -2
  1415. package/components/ShortcutsOverlay.d.ts.map +0 -1
  1416. package/components/ShortcutsOverlay.js +0 -79
  1417. package/components/SkillsView.d.ts +0 -11
  1418. package/components/SkillsView.d.ts.map +0 -1
  1419. package/components/SkillsView.js +0 -358
  1420. package/components/StartupFailureView.d.ts +0 -8
  1421. package/components/StartupFailureView.d.ts.map +0 -1
  1422. package/components/StartupFailureView.js +0 -16
  1423. package/components/StreamView.d.ts +0 -16
  1424. package/components/StreamView.d.ts.map +0 -1
  1425. package/components/StreamView.js +0 -300
  1426. package/components/StripeEmbeddedCheckout.d.ts +0 -24
  1427. package/components/StripeEmbeddedCheckout.d.ts.map +0 -1
  1428. package/components/StripeEmbeddedCheckout.js +0 -101
  1429. package/components/SubscriptionStatus.d.ts +0 -23
  1430. package/components/SubscriptionStatus.d.ts.map +0 -1
  1431. package/components/SubscriptionStatus.js +0 -301
  1432. package/components/SystemWarningBanner.d.ts +0 -6
  1433. package/components/SystemWarningBanner.d.ts.map +0 -1
  1434. package/components/SystemWarningBanner.js +0 -46
  1435. package/components/ThemeToggle.d.ts +0 -21
  1436. package/components/ThemeToggle.d.ts.map +0 -1
  1437. package/components/ThemeToggle.js +0 -24
  1438. package/components/TrajectoriesView.d.ts +0 -12
  1439. package/components/TrajectoriesView.d.ts.map +0 -1
  1440. package/components/TrajectoriesView.js +0 -183
  1441. package/components/TrajectoryDetailView.d.ts +0 -13
  1442. package/components/TrajectoryDetailView.d.ts.map +0 -1
  1443. package/components/TrajectoryDetailView.js +0 -112
  1444. package/components/TriggersView.d.ts +0 -2
  1445. package/components/TriggersView.d.ts.map +0 -1
  1446. package/components/TriggersView.js +0 -1
  1447. package/components/VectorBrowserView.d.ts +0 -10
  1448. package/components/VectorBrowserView.d.ts.map +0 -1
  1449. package/components/VectorBrowserView.js +0 -1000
  1450. package/components/VoiceConfigView.d.ts +0 -11
  1451. package/components/VoiceConfigView.d.ts.map +0 -1
  1452. package/components/VoiceConfigView.js +0 -331
  1453. package/components/VrmStage.d.ts +0 -28
  1454. package/components/VrmStage.d.ts.map +0 -1
  1455. package/components/VrmStage.js +0 -178
  1456. package/components/WhatsAppQrOverlay.d.ts +0 -8
  1457. package/components/WhatsAppQrOverlay.d.ts.map +0 -1
  1458. package/components/WhatsAppQrOverlay.js +0 -63
  1459. package/components/apps/AppDetailPane.d.ts +0 -15
  1460. package/components/apps/AppDetailPane.d.ts.map +0 -1
  1461. package/components/apps/AppDetailPane.js +0 -13
  1462. package/components/apps/AppsCatalogGrid.d.ts +0 -20
  1463. package/components/apps/AppsCatalogGrid.d.ts.map +0 -1
  1464. package/components/apps/AppsCatalogGrid.js +0 -18
  1465. package/components/apps/extensions/registry.d.ts +0 -4
  1466. package/components/apps/extensions/registry.d.ts.map +0 -1
  1467. package/components/apps/extensions/registry.js +0 -7
  1468. package/components/apps/extensions/types.d.ts +0 -7
  1469. package/components/apps/extensions/types.d.ts.map +0 -1
  1470. package/components/apps/helpers.d.ts +0 -7
  1471. package/components/apps/helpers.d.ts.map +0 -1
  1472. package/components/apps/helpers.js +0 -44
  1473. package/components/avatar/VrmAnimationLoader.d.ts +0 -30
  1474. package/components/avatar/VrmAnimationLoader.d.ts.map +0 -1
  1475. package/components/avatar/VrmAnimationLoader.js +0 -99
  1476. package/components/avatar/VrmBlinkController.d.ts +0 -37
  1477. package/components/avatar/VrmBlinkController.d.ts.map +0 -1
  1478. package/components/avatar/VrmBlinkController.js +0 -98
  1479. package/components/avatar/VrmCameraManager.d.ts +0 -57
  1480. package/components/avatar/VrmCameraManager.d.ts.map +0 -1
  1481. package/components/avatar/VrmCameraManager.js +0 -277
  1482. package/components/avatar/VrmEngine.d.ts +0 -246
  1483. package/components/avatar/VrmEngine.d.ts.map +0 -1
  1484. package/components/avatar/VrmEngine.js +0 -2087
  1485. package/components/avatar/VrmFootShadow.d.ts +0 -18
  1486. package/components/avatar/VrmFootShadow.d.ts.map +0 -1
  1487. package/components/avatar/VrmFootShadow.js +0 -83
  1488. package/components/avatar/VrmViewer.d.ts +0 -60
  1489. package/components/avatar/VrmViewer.d.ts.map +0 -1
  1490. package/components/avatar/VrmViewer.js +0 -396
  1491. package/components/avatar/mixamoVRMRigMap.d.ts +0 -3
  1492. package/components/avatar/mixamoVRMRigMap.d.ts.map +0 -1
  1493. package/components/avatar/mixamoVRMRigMap.js +0 -56
  1494. package/components/avatar/retargetMixamoFbxToVrm.d.ts +0 -9
  1495. package/components/avatar/retargetMixamoFbxToVrm.d.ts.map +0 -1
  1496. package/components/avatar/retargetMixamoFbxToVrm.js +0 -88
  1497. package/components/avatar/retargetMixamoGltfToVrm.d.ts +0 -11
  1498. package/components/avatar/retargetMixamoGltfToVrm.d.ts.map +0 -1
  1499. package/components/avatar/retargetMixamoGltfToVrm.js +0 -80
  1500. package/components/chainConfig.d.ts +0 -89
  1501. package/components/chainConfig.d.ts.map +0 -1
  1502. package/components/chainConfig.js +0 -287
  1503. package/components/companion/CompanionHeader.d.ts +0 -15
  1504. package/components/companion/CompanionHeader.d.ts.map +0 -1
  1505. package/components/companion/CompanionHeader.js +0 -7
  1506. package/components/companion/CompanionSceneHost.d.ts +0 -2
  1507. package/components/companion/CompanionSceneHost.d.ts.map +0 -1
  1508. package/components/companion/CompanionSceneHost.js +0 -1
  1509. package/components/companion/VrmStage.d.ts +0 -3
  1510. package/components/companion/VrmStage.d.ts.map +0 -1
  1511. package/components/companion/VrmStage.js +0 -1
  1512. package/components/companion/index.d.ts +0 -18
  1513. package/components/companion/index.d.ts.map +0 -1
  1514. package/components/companion/index.js +0 -17
  1515. package/components/companion/walletUtils.d.ts +0 -95
  1516. package/components/companion/walletUtils.d.ts.map +0 -1
  1517. package/components/companion/walletUtils.js +0 -167
  1518. package/components/companion-shell-styles.d.ts +0 -38
  1519. package/components/companion-shell-styles.d.ts.map +0 -1
  1520. package/components/companion-shell-styles.js +0 -248
  1521. package/components/confirm-delete-control.d.ts +0 -16
  1522. package/components/confirm-delete-control.d.ts.map +0 -1
  1523. package/components/confirm-delete-control.js +0 -12
  1524. package/components/conversations/ConversationListItem.d.ts +0 -31
  1525. package/components/conversations/ConversationListItem.d.ts.map +0 -1
  1526. package/components/conversations/ConversationListItem.js +0 -52
  1527. package/components/conversations/conversation-utils.d.ts +0 -9
  1528. package/components/conversations/conversation-utils.d.ts.map +0 -1
  1529. package/components/conversations/conversation-utils.js +0 -138
  1530. package/components/format.d.ts +0 -54
  1531. package/components/format.d.ts.map +0 -1
  1532. package/components/format.js +0 -82
  1533. package/components/index.d.ts +0 -96
  1534. package/components/index.d.ts.map +0 -1
  1535. package/components/index.js +0 -95
  1536. package/components/inventory/CopyableAddress.d.ts +0 -8
  1537. package/components/inventory/CopyableAddress.d.ts.map +0 -1
  1538. package/components/inventory/CopyableAddress.js +0 -18
  1539. package/components/inventory/InventoryToolbar.d.ts +0 -25
  1540. package/components/inventory/InventoryToolbar.d.ts.map +0 -1
  1541. package/components/inventory/InventoryToolbar.js +0 -28
  1542. package/components/inventory/NftGrid.d.ts +0 -13
  1543. package/components/inventory/NftGrid.d.ts.map +0 -1
  1544. package/components/inventory/NftGrid.js +0 -29
  1545. package/components/inventory/TokenLogo.d.ts +0 -12
  1546. package/components/inventory/TokenLogo.d.ts.map +0 -1
  1547. package/components/inventory/TokenLogo.js +0 -33
  1548. package/components/inventory/TokensTable.d.ts +0 -24
  1549. package/components/inventory/TokensTable.d.ts.map +0 -1
  1550. package/components/inventory/TokensTable.js +0 -26
  1551. package/components/inventory/constants.d.ts +0 -52
  1552. package/components/inventory/constants.d.ts.map +0 -1
  1553. package/components/inventory/constants.js +0 -121
  1554. package/components/inventory/index.d.ts +0 -9
  1555. package/components/inventory/index.d.ts.map +0 -1
  1556. package/components/inventory/index.js +0 -8
  1557. package/components/inventory/media-url.d.ts +0 -6
  1558. package/components/inventory/media-url.d.ts.map +0 -1
  1559. package/components/inventory/media-url.js +0 -28
  1560. package/components/inventory/useInventoryData.d.ts +0 -53
  1561. package/components/inventory/useInventoryData.d.ts.map +0 -1
  1562. package/components/inventory/useInventoryData.js +0 -332
  1563. package/components/knowledge-upload-image.d.ts +0 -27
  1564. package/components/knowledge-upload-image.d.ts.map +0 -1
  1565. package/components/knowledge-upload-image.js +0 -146
  1566. package/components/labels.d.ts +0 -6
  1567. package/components/labels.d.ts.map +0 -1
  1568. package/components/labels.js +0 -40
  1569. package/components/onboarding/ActivateStep.d.ts +0 -2
  1570. package/components/onboarding/ActivateStep.d.ts.map +0 -1
  1571. package/components/onboarding/ActivateStep.js +0 -10
  1572. package/components/onboarding/CloudLoginStep.d.ts +0 -2
  1573. package/components/onboarding/CloudLoginStep.d.ts.map +0 -1
  1574. package/components/onboarding/CloudLoginStep.js +0 -20
  1575. package/components/onboarding/ConnectionStep.d.ts +0 -2
  1576. package/components/onboarding/ConnectionStep.d.ts.map +0 -1
  1577. package/components/onboarding/ConnectionStep.js +0 -609
  1578. package/components/onboarding/IdentityStep.d.ts +0 -2
  1579. package/components/onboarding/IdentityStep.d.ts.map +0 -1
  1580. package/components/onboarding/IdentityStep.js +0 -102
  1581. package/components/onboarding/OnboardingPanel.d.ts +0 -9
  1582. package/components/onboarding/OnboardingPanel.d.ts.map +0 -1
  1583. package/components/onboarding/OnboardingPanel.js +0 -24
  1584. package/components/onboarding/OnboardingStepNav.d.ts +0 -2
  1585. package/components/onboarding/OnboardingStepNav.d.ts.map +0 -1
  1586. package/components/onboarding/OnboardingStepNav.js +0 -24
  1587. package/components/onboarding/PermissionsStep.d.ts +0 -2
  1588. package/components/onboarding/PermissionsStep.d.ts.map +0 -1
  1589. package/components/onboarding/PermissionsStep.js +0 -7
  1590. package/components/onboarding/RpcStep.d.ts +0 -2
  1591. package/components/onboarding/RpcStep.d.ts.map +0 -1
  1592. package/components/onboarding/RpcStep.js +0 -125
  1593. package/components/onboarding/SaveKeysStep.d.ts +0 -2
  1594. package/components/onboarding/SaveKeysStep.d.ts.map +0 -1
  1595. package/components/onboarding/SaveKeysStep.js +0 -44
  1596. package/components/onboarding/WelcomeStep.d.ts +0 -2
  1597. package/components/onboarding/WelcomeStep.d.ts.map +0 -1
  1598. package/components/onboarding/WelcomeStep.js +0 -30
  1599. package/components/permissions/PermissionIcon.d.ts +0 -4
  1600. package/components/permissions/PermissionIcon.d.ts.map +0 -1
  1601. package/components/permissions/PermissionIcon.js +0 -12
  1602. package/components/permissions/StreamingPermissions.d.ts +0 -20
  1603. package/components/permissions/StreamingPermissions.d.ts.map +0 -1
  1604. package/components/permissions/StreamingPermissions.js +0 -178
  1605. package/components/plugins/showcase-data.d.ts +0 -7
  1606. package/components/plugins/showcase-data.d.ts.map +0 -1
  1607. package/components/plugins/showcase-data.js +0 -464
  1608. package/components/shared/ShellHeaderControls.d.ts +0 -27
  1609. package/components/shared/ShellHeaderControls.d.ts.map +0 -1
  1610. package/components/shared/ShellHeaderControls.js +0 -55
  1611. package/components/shared-companion-scene-context.d.ts +0 -3
  1612. package/components/shared-companion-scene-context.d.ts.map +0 -1
  1613. package/components/shared-companion-scene-context.js +0 -13
  1614. package/components/skeletons.d.ts +0 -17
  1615. package/components/skeletons.d.ts.map +0 -1
  1616. package/components/skeletons.js +0 -22
  1617. package/components/stream/ActivityFeed.d.ts +0 -5
  1618. package/components/stream/ActivityFeed.d.ts.map +0 -1
  1619. package/components/stream/ActivityFeed.js +0 -57
  1620. package/components/stream/AvatarPip.d.ts +0 -5
  1621. package/components/stream/AvatarPip.d.ts.map +0 -1
  1622. package/components/stream/AvatarPip.js +0 -6
  1623. package/components/stream/ChatContent.d.ts +0 -6
  1624. package/components/stream/ChatContent.d.ts.map +0 -1
  1625. package/components/stream/ChatContent.js +0 -69
  1626. package/components/stream/ChatTicker.d.ts +0 -5
  1627. package/components/stream/ChatTicker.d.ts.map +0 -1
  1628. package/components/stream/ChatTicker.js +0 -34
  1629. package/components/stream/IdleContent.d.ts +0 -5
  1630. package/components/stream/IdleContent.d.ts.map +0 -1
  1631. package/components/stream/IdleContent.js +0 -17
  1632. package/components/stream/StatusBar.d.ts +0 -36
  1633. package/components/stream/StatusBar.d.ts.map +0 -1
  1634. package/components/stream/StatusBar.js +0 -140
  1635. package/components/stream/StreamSettings.d.ts +0 -33
  1636. package/components/stream/StreamSettings.d.ts.map +0 -1
  1637. package/components/stream/StreamSettings.js +0 -99
  1638. package/components/stream/StreamTerminal.d.ts +0 -2
  1639. package/components/stream/StreamTerminal.d.ts.map +0 -1
  1640. package/components/stream/StreamTerminal.js +0 -52
  1641. package/components/stream/StreamVoiceConfig.d.ts +0 -10
  1642. package/components/stream/StreamVoiceConfig.d.ts.map +0 -1
  1643. package/components/stream/StreamVoiceConfig.js +0 -88
  1644. package/components/stream/helpers.d.ts +0 -32
  1645. package/components/stream/helpers.d.ts.map +0 -1
  1646. package/components/stream/helpers.js +0 -110
  1647. package/components/stream/overlays/OverlayLayer.d.ts +0 -20
  1648. package/components/stream/overlays/OverlayLayer.d.ts.map +0 -1
  1649. package/components/stream/overlays/OverlayLayer.js +0 -24
  1650. package/components/stream/overlays/built-in/ActionTickerWidget.d.ts +0 -8
  1651. package/components/stream/overlays/built-in/ActionTickerWidget.d.ts.map +0 -1
  1652. package/components/stream/overlays/built-in/ActionTickerWidget.js +0 -44
  1653. package/components/stream/overlays/built-in/AlertPopupWidget.d.ts +0 -7
  1654. package/components/stream/overlays/built-in/AlertPopupWidget.d.ts.map +0 -1
  1655. package/components/stream/overlays/built-in/AlertPopupWidget.js +0 -62
  1656. package/components/stream/overlays/built-in/BrandingWidget.d.ts +0 -7
  1657. package/components/stream/overlays/built-in/BrandingWidget.d.ts.map +0 -1
  1658. package/components/stream/overlays/built-in/BrandingWidget.js +0 -36
  1659. package/components/stream/overlays/built-in/CustomHtmlWidget.d.ts +0 -26
  1660. package/components/stream/overlays/built-in/CustomHtmlWidget.d.ts.map +0 -1
  1661. package/components/stream/overlays/built-in/CustomHtmlWidget.js +0 -78
  1662. package/components/stream/overlays/built-in/PeonGlassWidget.d.ts +0 -11
  1663. package/components/stream/overlays/built-in/PeonGlassWidget.d.ts.map +0 -1
  1664. package/components/stream/overlays/built-in/PeonGlassWidget.js +0 -188
  1665. package/components/stream/overlays/built-in/PeonHudWidget.d.ts +0 -10
  1666. package/components/stream/overlays/built-in/PeonHudWidget.d.ts.map +0 -1
  1667. package/components/stream/overlays/built-in/PeonHudWidget.js +0 -168
  1668. package/components/stream/overlays/built-in/PeonSakuraWidget.d.ts +0 -11
  1669. package/components/stream/overlays/built-in/PeonSakuraWidget.d.ts.map +0 -1
  1670. package/components/stream/overlays/built-in/PeonSakuraWidget.js +0 -213
  1671. package/components/stream/overlays/built-in/ThoughtBubbleWidget.d.ts +0 -8
  1672. package/components/stream/overlays/built-in/ThoughtBubbleWidget.d.ts.map +0 -1
  1673. package/components/stream/overlays/built-in/ThoughtBubbleWidget.js +0 -59
  1674. package/components/stream/overlays/built-in/ViewerCountWidget.d.ts +0 -7
  1675. package/components/stream/overlays/built-in/ViewerCountWidget.d.ts.map +0 -1
  1676. package/components/stream/overlays/built-in/ViewerCountWidget.js +0 -34
  1677. package/components/stream/overlays/built-in/index.d.ts +0 -13
  1678. package/components/stream/overlays/built-in/index.d.ts.map +0 -1
  1679. package/components/stream/overlays/built-in/index.js +0 -12
  1680. package/components/stream/overlays/registry.d.ts +0 -11
  1681. package/components/stream/overlays/registry.d.ts.map +0 -1
  1682. package/components/stream/overlays/registry.js +0 -16
  1683. package/components/stream/overlays/types.d.ts +0 -67
  1684. package/components/stream/overlays/types.d.ts.map +0 -1
  1685. package/components/stream/overlays/types.js +0 -7
  1686. package/components/stream/overlays/useOverlayLayout.d.ts +0 -27
  1687. package/components/stream/overlays/useOverlayLayout.d.ts.map +0 -1
  1688. package/components/stream/overlays/useOverlayLayout.js +0 -162
  1689. package/components/trajectory-format.d.ts +0 -6
  1690. package/components/trajectory-format.d.ts.map +0 -1
  1691. package/components/trajectory-format.js +0 -43
  1692. package/components/ui-badges.d.ts +0 -23
  1693. package/components/ui-badges.d.ts.map +0 -1
  1694. package/components/ui-badges.js +0 -38
  1695. package/components/ui-switch.d.ts +0 -14
  1696. package/components/ui-switch.d.ts.map +0 -1
  1697. package/components/ui-switch.js +0 -15
  1698. package/components/vector-browser-three.d.ts +0 -4
  1699. package/components/vector-browser-three.d.ts.map +0 -1
  1700. package/components/vector-browser-three.js +0 -21
  1701. package/config/branding.d.ts +0 -49
  1702. package/config/branding.d.ts.map +0 -1
  1703. package/config/branding.js +0 -16
  1704. package/config/config-catalog.d.ts +0 -376
  1705. package/config/config-catalog.d.ts.map +0 -1
  1706. package/config/config-catalog.js +0 -724
  1707. package/config/config-field.d.ts +0 -68
  1708. package/config/config-field.d.ts.map +0 -1
  1709. package/config/config-field.js +0 -840
  1710. package/config/config-renderer.d.ts +0 -176
  1711. package/config/config-renderer.d.ts.map +0 -1
  1712. package/config/config-renderer.js +0 -405
  1713. package/config/index.d.ts +0 -6
  1714. package/config/index.d.ts.map +0 -1
  1715. package/config/index.js +0 -5
  1716. package/config/ui-renderer.d.ts +0 -26
  1717. package/config/ui-renderer.d.ts.map +0 -1
  1718. package/config/ui-renderer.js +0 -815
  1719. package/config/ui-spec.d.ts +0 -164
  1720. package/config/ui-spec.d.ts.map +0 -1
  1721. package/config/ui-spec.js +0 -13
  1722. package/events/index.d.ts +0 -48
  1723. package/events/index.d.ts.map +0 -1
  1724. package/events/index.js +0 -45
  1725. package/hooks/index.d.ts +0 -15
  1726. package/hooks/index.d.ts.map +0 -1
  1727. package/hooks/index.js +0 -14
  1728. package/hooks/useBugReport.d.ts +0 -14
  1729. package/hooks/useBugReport.d.ts.map +0 -1
  1730. package/hooks/useBugReport.js +0 -18
  1731. package/hooks/useCanvasWindow.d.ts +0 -38
  1732. package/hooks/useCanvasWindow.d.ts.map +0 -1
  1733. package/hooks/useCanvasWindow.js +0 -273
  1734. package/hooks/useChatAvatarVoice.d.ts +0 -10
  1735. package/hooks/useChatAvatarVoice.d.ts.map +0 -1
  1736. package/hooks/useChatAvatarVoice.js +0 -71
  1737. package/hooks/useClickOutside.d.ts +0 -6
  1738. package/hooks/useClickOutside.d.ts.map +0 -1
  1739. package/hooks/useClickOutside.js +0 -25
  1740. package/hooks/useContextMenu.d.ts +0 -17
  1741. package/hooks/useContextMenu.d.ts.map +0 -1
  1742. package/hooks/useContextMenu.js +0 -100
  1743. package/hooks/useKeyboardShortcuts.d.ts +0 -17
  1744. package/hooks/useKeyboardShortcuts.d.ts.map +0 -1
  1745. package/hooks/useKeyboardShortcuts.js +0 -67
  1746. package/hooks/useLifoSync.d.ts +0 -18
  1747. package/hooks/useLifoSync.d.ts.map +0 -1
  1748. package/hooks/useLifoSync.js +0 -113
  1749. package/hooks/useMemoryMonitor.d.ts +0 -87
  1750. package/hooks/useMemoryMonitor.d.ts.map +0 -1
  1751. package/hooks/useMemoryMonitor.js +0 -209
  1752. package/hooks/useRenderGuard.d.ts +0 -17
  1753. package/hooks/useRenderGuard.d.ts.map +0 -1
  1754. package/hooks/useRenderGuard.js +0 -36
  1755. package/hooks/useRetakeCapture.d.ts +0 -12
  1756. package/hooks/useRetakeCapture.d.ts.map +0 -1
  1757. package/hooks/useRetakeCapture.js +0 -60
  1758. package/hooks/useStreamPopoutNavigation.d.ts +0 -3
  1759. package/hooks/useStreamPopoutNavigation.d.ts.map +0 -1
  1760. package/hooks/useStreamPopoutNavigation.js +0 -17
  1761. package/hooks/useTimeout.d.ts +0 -11
  1762. package/hooks/useTimeout.d.ts.map +0 -1
  1763. package/hooks/useTimeout.js +0 -32
  1764. package/hooks/useVoiceChat.d.ts +0 -94
  1765. package/hooks/useVoiceChat.d.ts.map +0 -1
  1766. package/hooks/useVoiceChat.js +0 -1077
  1767. package/hooks/useWhatsAppPairing.d.ts +0 -11
  1768. package/hooks/useWhatsAppPairing.d.ts.map +0 -1
  1769. package/hooks/useWhatsAppPairing.js +0 -95
  1770. package/i18n/index.d.ts +0 -7
  1771. package/i18n/index.d.ts.map +0 -1
  1772. package/i18n/index.js +0 -53
  1773. package/i18n/locales/en.json +0 -1268
  1774. package/i18n/locales/es.json +0 -1236
  1775. package/i18n/locales/ko.json +0 -1236
  1776. package/i18n/locales/pt.json +0 -1236
  1777. package/i18n/locales/zh-CN.json +0 -1236
  1778. package/i18n/messages.d.ts +0 -6
  1779. package/i18n/messages.d.ts.map +0 -1
  1780. package/i18n/messages.js +0 -14
  1781. package/navigation/index.d.ts +0 -27
  1782. package/navigation/index.d.ts.map +0 -1
  1783. package/navigation/index.js +0 -232
  1784. package/onboarding-config.d.ts +0 -25
  1785. package/onboarding-config.d.ts.map +0 -1
  1786. package/onboarding-config.js +0 -76
  1787. package/platform/browser-launch.d.ts +0 -2
  1788. package/platform/browser-launch.d.ts.map +0 -1
  1789. package/platform/browser-launch.js +0 -109
  1790. package/platform/index.d.ts +0 -14
  1791. package/platform/index.d.ts.map +0 -1
  1792. package/platform/index.js +0 -24
  1793. package/platform/init.d.ts +0 -40
  1794. package/platform/init.d.ts.map +0 -1
  1795. package/platform/init.js +0 -160
  1796. package/platform/lifo.d.ts +0 -51
  1797. package/platform/lifo.d.ts.map +0 -1
  1798. package/platform/lifo.js +0 -138
  1799. package/providers/index.d.ts +0 -19
  1800. package/providers/index.d.ts.map +0 -1
  1801. package/providers/index.js +0 -80
  1802. package/shell-params.d.ts +0 -12
  1803. package/shell-params.d.ts.map +0 -1
  1804. package/shell-params.js +0 -19
  1805. package/state/AppContext.d.ts +0 -12
  1806. package/state/AppContext.d.ts.map +0 -1
  1807. package/state/AppContext.js +0 -5102
  1808. package/state/index.d.ts +0 -7
  1809. package/state/index.d.ts.map +0 -1
  1810. package/state/index.js +0 -6
  1811. package/state/internal.d.ts +0 -7
  1812. package/state/internal.d.ts.map +0 -1
  1813. package/state/internal.js +0 -6
  1814. package/state/onboarding-resume.d.ts +0 -11
  1815. package/state/onboarding-resume.d.ts.map +0 -1
  1816. package/state/onboarding-resume.js +0 -187
  1817. package/state/parsers.d.ts +0 -26
  1818. package/state/parsers.d.ts.map +0 -1
  1819. package/state/parsers.js +0 -255
  1820. package/state/persistence.d.ts +0 -59
  1821. package/state/persistence.d.ts.map +0 -1
  1822. package/state/persistence.js +0 -328
  1823. package/state/shell-routing.d.ts +0 -12
  1824. package/state/shell-routing.d.ts.map +0 -1
  1825. package/state/shell-routing.js +0 -26
  1826. package/state/types.d.ts +0 -426
  1827. package/state/types.d.ts.map +0 -1
  1828. package/state/types.js +0 -89
  1829. package/state/ui-preferences.d.ts +0 -3
  1830. package/state/ui-preferences.d.ts.map +0 -1
  1831. package/state/ui-preferences.js +0 -1
  1832. package/state/useApp.d.ts +0 -4
  1833. package/state/useApp.d.ts.map +0 -1
  1834. package/state/useApp.js +0 -22
  1835. package/state/vrm.d.ts +0 -30
  1836. package/state/vrm.d.ts.map +0 -1
  1837. package/state/vrm.js +0 -82
  1838. package/styles/anime.css +0 -6364
  1839. package/styles/base.css +0 -255
  1840. package/styles/onboarding-game.css +0 -1095
  1841. package/styles/styles.css +0 -2087
  1842. package/styles/xterm.css +0 -241
  1843. package/types/index.d.ts +0 -657
  1844. package/types/index.d.ts.map +0 -1
  1845. package/types/index.js +0 -1
  1846. package/utils/asset-url.d.ts +0 -26
  1847. package/utils/asset-url.d.ts.map +0 -1
  1848. package/utils/asset-url.js +0 -99
  1849. package/utils/assistant-text.d.ts +0 -2
  1850. package/utils/assistant-text.d.ts.map +0 -1
  1851. package/utils/assistant-text.js +0 -161
  1852. package/utils/clipboard.d.ts +0 -2
  1853. package/utils/clipboard.d.ts.map +0 -1
  1854. package/utils/clipboard.js +0 -38
  1855. package/utils/desktop-dialogs.d.ts +0 -19
  1856. package/utils/desktop-dialogs.d.ts.map +0 -1
  1857. package/utils/desktop-dialogs.js +0 -50
  1858. package/utils/eliza-globals.d.ts +0 -11
  1859. package/utils/eliza-globals.d.ts.map +0 -1
  1860. package/utils/eliza-globals.js +0 -33
  1861. package/utils/index.d.ts +0 -8
  1862. package/utils/index.d.ts.map +0 -1
  1863. package/utils/index.js +0 -7
  1864. package/utils/number-parsing.d.ts +0 -44
  1865. package/utils/number-parsing.d.ts.map +0 -1
  1866. package/utils/number-parsing.js +0 -56
  1867. package/utils/openExternalUrl.d.ts +0 -2
  1868. package/utils/openExternalUrl.d.ts.map +0 -1
  1869. package/utils/openExternalUrl.js +0 -17
  1870. package/utils/spoken-text.d.ts +0 -2
  1871. package/utils/spoken-text.d.ts.map +0 -1
  1872. package/utils/spoken-text.js +0 -56
  1873. package/utils/streaming-text.d.ts +0 -3
  1874. package/utils/streaming-text.d.ts.map +0 -1
  1875. package/utils/streaming-text.js +0 -87
  1876. package/voice/index.d.ts +0 -2
  1877. package/voice/index.d.ts.map +0 -1
  1878. package/voice/index.js +0 -1
  1879. package/voice/types.d.ts +0 -25
  1880. package/voice/types.d.ts.map +0 -1
  1881. package/voice/types.js +0 -166
  1882. package/wallet-rpc.d.ts +0 -8
  1883. package/wallet-rpc.d.ts.map +0 -1
  1884. package/wallet-rpc.js +0 -131
  1885. /package/{components/apps/extensions → services/local-inference/voice}/types.js +0 -0
@@ -0,0 +1,1831 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Build the DFlash-capable llama-server fork used by local inference.
4
+ *
5
+ * As of v0.2.0-milady, DFlash speculative decoding lives in the unified
6
+ * milady-ai/llama.cpp fork (the same repo as the AOSP cross-compile).
7
+ * Pre-2026-05-09 this script consumed spiritbuun/buun-llama-cpp directly
8
+ * (which itself was 8,988 commits ahead of upstream b8198 with quant
9
+ * type IDs that conflicted with apothic's TBQ slots). Wave-3 agent A
10
+ * surgically ported the DFlash CLI surface (--spec-type dflash,
11
+ * --draft-min-prob, n_drafted_total/n_drafted_accepted_total Prometheus
12
+ * counters) onto the unified fork and retired the dual-fork situation.
13
+ * See docs/porting/unified-fork-strategy.md §H step 8 for the migration
14
+ * story. Override via ELIZA_DFLASH_LLAMA_CPP_REMOTE / _REF if you need
15
+ * to point at the legacy spiritbuun pin during a rollback.
16
+ *
17
+ * The script builds the unified fork into:
18
+ * $ELIZA_STATE_DIR/local-inference/bin/dflash/<platform>-<arch>-<backend>/
19
+ *
20
+ * Multi-target build matrix (see SUPPORTED_TARGETS below):
21
+ * linux-x64-cpu, linux-x64-cuda, linux-x64-rocm, linux-x64-vulkan
22
+ * android-arm64-cpu, android-arm64-vulkan
23
+ * darwin-arm64-metal, darwin-x64-metal
24
+ * windows-x64-cpu, windows-x64-cuda
25
+ *
26
+ * Backend selection (legacy single-target mode, when --target is omitted):
27
+ * macOS -> Metal
28
+ * Linux + nvcc -> CUDA
29
+ * Linux + rocminfo/hipcc -> ROCm/HIP
30
+ * otherwise -> CPU
31
+ *
32
+ * Usage:
33
+ * node build-llama-cpp-dflash.mjs [--target <triple>] [--all] [--dry-run]
34
+ * [--backend ...] [--ref ...] [--out-dir ...]
35
+ * [--jobs N] [--cache-dir ...]
36
+ */
37
+
38
+ import { spawnSync } from "node:child_process";
39
+ import fs from "node:fs";
40
+ import os from "node:os";
41
+ import path from "node:path";
42
+ import process from "node:process";
43
+
44
+ // Source-level omnivoice.cpp fusion (text + TTS sharing one llama.cpp
45
+ // build, one ggml pin, one kernel set). Helpers live alongside this
46
+ // script under omnivoice-fuse/; see omnivoice-fuse/README.md for the
47
+ // GGML pin reconciliation strategy.
48
+ import {
49
+ prepareOmnivoiceFusion,
50
+ OMNIVOICE_REF,
51
+ OMNIVOICE_GGML_REF,
52
+ } from "./omnivoice-fuse/prepare.mjs";
53
+ import {
54
+ appendCmakeGraft,
55
+ fusedExtraCmakeFlags,
56
+ fusedCmakeBuildTargets,
57
+ } from "./omnivoice-fuse/cmake-graft.mjs";
58
+ import { verifyFusedSymbols } from "./omnivoice-fuse/verify-symbols.mjs";
59
+ import { patchMetalKernels as patchMetalKernelsImpl } from "./kernel-patches/metal-kernels.mjs";
60
+ import { patchVulkanKernels as patchVulkanKernelsImpl } from "./kernel-patches/vulkan-kernels.mjs";
61
+
62
+ // milady-ai/llama.cpp @ v0.4.0-milady (commit 08032d57) — the unified fork
63
+ // that composes TBQ + QJL + Q4_POLAR + Metal kernels + DFlash spec-decode
64
+ // + W4-B CUDA QJL/Polar/TBQ3_TCQ kernels onto upstream b8198. Same repo +
65
+ // commit lineage as compile-libllama.mjs (AOSP cross-compile path) so both
66
+ // build paths land on identical kernels.
67
+ const REMOTE =
68
+ process.env.ELIZA_DFLASH_LLAMA_CPP_REMOTE ||
69
+ "https://github.com/milady-ai/llama.cpp.git";
70
+ const REF = process.env.ELIZA_DFLASH_LLAMA_CPP_REF || "v0.4.0-milady";
71
+ // Minimum commit on milady/integration that contains the DFlash CLI
72
+ // surface (--spec-type dflash, --draft-min-prob, Prometheus counters).
73
+ // Also satisfied by the W4-B v0.4.0-milady CUDA kernel additions.
74
+ const MIN_COMMIT = "7c7818aafc7599996268226e2e56099f4f38e972";
75
+
76
+ const SUPPORTED_TARGETS = [
77
+ "linux-x64-cpu",
78
+ "linux-x64-cuda",
79
+ "linux-x64-rocm",
80
+ "linux-x64-vulkan",
81
+ // Linux aarch64. Required for the `server-h200` tier (GH200 = aarch64
82
+ // host + H100/H200 GPU) and for Ampere Altra / AWS Graviton CPU-only
83
+ // deployments. Both targets require a real arm64 Linux host (or a
84
+ // sysroot + cross-toolchain for arm64) — there is no aarch64-cross
85
+ // wiring on x64 hosts in this script.
86
+ "linux-aarch64-cpu",
87
+ "linux-aarch64-cuda",
88
+ "android-arm64-cpu",
89
+ "android-arm64-vulkan",
90
+ "darwin-arm64-metal",
91
+ "darwin-x64-metal",
92
+ // iOS targets (require macOS host with Xcode). Output is a static .a +
93
+ // headers that the LlamaCpp.xcframework patch in
94
+ // packages/app-core/patches/llama-cpp-capacitor@0.1.5.patch consumes.
95
+ "ios-arm64-metal",
96
+ "ios-arm64-simulator-metal",
97
+ "windows-x64-cpu",
98
+ "windows-x64-cuda",
99
+ // windows-x64-vulkan: generic-GPU path on x64 Windows. NVIDIA/AMD/Intel
100
+ // ARC all expose Vulkan 1.3+ here. Cross-builds from a Linux/Darwin host
101
+ // via mingw + Khronos Vulkan-Headers — same shape as windows-x64-cpu but
102
+ // with the existing Vulkan-headers prep step.
103
+ "windows-x64-vulkan",
104
+ // Windows arm64 (Snapdragon X Elite / Copilot+ PC, 2024+). Adreno X1
105
+ // GPU is Vulkan 1.3; the 12-core ARM CPU runs the NEON paths in
106
+ // qjl-cpu/polarquant-cpu. Both targets require an MSVC arm64
107
+ // cross-toolchain (or a native Windows arm64 host); there is no
108
+ // mingw arm64 cross-toolchain wiring here.
109
+ "windows-arm64-cpu",
110
+ "windows-arm64-vulkan",
111
+ // Fused text+TTS targets — source-level fusion of
112
+ // github.com/ServeurpersoCom/omnivoice.cpp into the same llama.cpp
113
+ // build. Produce one shared library (libelizainference) and one
114
+ // fused server binary that exposes both `llama_*` and `omnivoice_*`
115
+ // symbols. See packages/app-core/scripts/omnivoice-fuse/README.md
116
+ // for the GGML pin reconciliation strategy. The non-fused targets
117
+ // above remain unchanged; fused is purely additive.
118
+ "linux-x64-cpu-fused",
119
+ "linux-x64-cuda-fused",
120
+ "linux-x64-vulkan-fused",
121
+ "darwin-arm64-metal-fused",
122
+ "darwin-x64-metal-fused",
123
+ "windows-x64-cuda-fused",
124
+ ];
125
+
126
+ // Targets that opt into omnivoice fusion. Membership in this set is
127
+ // the only way the fused-build code path activates — no env var
128
+ // shortcuts, no implicit upgrades from a non-fused target.
129
+ const FUSED_TARGETS = new Set([
130
+ "linux-x64-cpu-fused",
131
+ "linux-x64-cuda-fused",
132
+ "linux-x64-vulkan-fused",
133
+ "darwin-arm64-metal-fused",
134
+ "darwin-x64-metal-fused",
135
+ "windows-x64-cuda-fused",
136
+ ]);
137
+
138
+ // Strip the "-fused" suffix when one is present, returning the base
139
+ // triple parseTarget() / cmakeFlagsForTarget() already understand.
140
+ // Calling this on a non-fused triple is a no-op.
141
+ function baseTargetTriple(target) {
142
+ return target.endsWith("-fused")
143
+ ? target.slice(0, -"-fused".length)
144
+ : target;
145
+ }
146
+
147
+ function isFusedTarget(target) {
148
+ return FUSED_TARGETS.has(target);
149
+ }
150
+
151
+ function stateDir() {
152
+ return (
153
+ process.env.ELIZA_STATE_DIR?.trim() || path.join(os.homedir(), ".eliza")
154
+ );
155
+ }
156
+
157
+ function run(cmd, args, opts = {}) {
158
+ const result = spawnSync(cmd, args, {
159
+ stdio: opts.capture ? ["ignore", "pipe", "pipe"] : "inherit",
160
+ cwd: opts.cwd,
161
+ env: { ...process.env, ...opts.env },
162
+ encoding: "utf8",
163
+ });
164
+ if (result.status !== 0) {
165
+ const detail = opts.capture
166
+ ? `\nstdout:\n${result.stdout || ""}\nstderr:\n${result.stderr || ""}`
167
+ : "";
168
+ throw new Error(
169
+ `${cmd} ${args.join(" ")} failed with ${result.status}${detail}`,
170
+ );
171
+ }
172
+ return result.stdout?.trim() ?? "";
173
+ }
174
+
175
+ function tryRun(cmd, args, opts = {}) {
176
+ return spawnSync(cmd, args, {
177
+ stdio: opts.capture ? ["ignore", "pipe", "pipe"] : "ignore",
178
+ cwd: opts.cwd,
179
+ env: { ...process.env, ...opts.env },
180
+ encoding: "utf8",
181
+ });
182
+ }
183
+
184
+ function has(cmd) {
185
+ const result = spawnSync(cmd, ["--version"], {
186
+ stdio: "ignore",
187
+ env: process.env,
188
+ });
189
+ return result.status === 0;
190
+ }
191
+
192
+ function detectBackend() {
193
+ const forced = process.env.ELIZA_DFLASH_BACKEND?.trim().toLowerCase();
194
+ if (forced) return forced;
195
+ if (process.platform === "darwin") return "metal";
196
+ if (process.platform === "linux" && (has("hipcc") || has("rocminfo"))) {
197
+ return "rocm";
198
+ }
199
+ if (process.platform === "linux" && (has("nvcc") || has("nvidia-smi"))) {
200
+ return "cuda";
201
+ }
202
+ return "cpu";
203
+ }
204
+
205
+ // Resolve the Android NDK root.
206
+ //
207
+ // Order: $ANDROID_NDK_HOME, $ANDROID_NDK_ROOT, $ANDROID_NDK,
208
+ // $HOME/Android/Sdk/ndk/<sole-or-newest-subdir>.
209
+ function resolveAndroidNdk() {
210
+ const envCandidates = [
211
+ process.env.ANDROID_NDK_HOME,
212
+ process.env.ANDROID_NDK_ROOT,
213
+ process.env.ANDROID_NDK,
214
+ ].filter((value) => typeof value === "string" && value.trim().length > 0);
215
+ for (const candidate of envCandidates) {
216
+ if (
217
+ fs.existsSync(
218
+ path.join(candidate, "build", "cmake", "android.toolchain.cmake"),
219
+ )
220
+ ) {
221
+ return candidate;
222
+ }
223
+ }
224
+ const ndkDir = path.join(os.homedir(), "Android", "Sdk", "ndk");
225
+ if (fs.existsSync(ndkDir)) {
226
+ const versions = fs
227
+ .readdirSync(ndkDir, { withFileTypes: true })
228
+ .filter((entry) => entry.isDirectory())
229
+ .map((entry) => entry.name)
230
+ .sort();
231
+ if (versions.length > 0) {
232
+ const chosen = path.join(ndkDir, versions[versions.length - 1]);
233
+ if (
234
+ fs.existsSync(
235
+ path.join(chosen, "build", "cmake", "android.toolchain.cmake"),
236
+ )
237
+ ) {
238
+ return chosen;
239
+ }
240
+ }
241
+ }
242
+ return null;
243
+ }
244
+
245
+ // Find Vulkan headers usable for an Android build. Returns the include dir
246
+ // (i.e. the parent of `vulkan/`) or null.
247
+ //
248
+ // NDK r21+ bundles Vulkan headers under
249
+ // <ndk>/toolchains/llvm/prebuilt/<host>/sysroot/usr/include/vulkan/
250
+ // which is on the Android sysroot include path automatically. We still report
251
+ // the path so CAPABILITIES.json / logs can show where it came from.
252
+ function findAndroidVulkanInclude(ndk) {
253
+ if (!ndk) return null;
254
+ const hostDirs = ["linux-x86_64", "darwin-x86_64", "windows-x86_64"];
255
+ for (const host of hostDirs) {
256
+ const candidate = path.join(
257
+ ndk,
258
+ "toolchains",
259
+ "llvm",
260
+ "prebuilt",
261
+ host,
262
+ "sysroot",
263
+ "usr",
264
+ "include",
265
+ );
266
+ if (fs.existsSync(path.join(candidate, "vulkan", "vulkan_core.h"))) {
267
+ return candidate;
268
+ }
269
+ }
270
+ return null;
271
+ }
272
+
273
+ // Locate a glslc usable for the host. The Android NDK ships its own glslc
274
+ // under shader-tools/<host>/glslc.
275
+ function findGlslc(ndk) {
276
+ if (has("glslc")) return "glslc";
277
+ if (ndk) {
278
+ const hostDirs = ["linux-x86_64", "darwin-x86_64", "windows-x86_64"];
279
+ for (const host of hostDirs) {
280
+ const candidate = path.join(ndk, "shader-tools", host, "glslc");
281
+ if (fs.existsSync(candidate)) return candidate;
282
+ }
283
+ }
284
+ return null;
285
+ }
286
+
287
+ // Find a usable x86_64-w64-mingw32 cross-toolchain on the host.
288
+ //
289
+ // Search order:
290
+ // 1. $MILADY_MINGW_PREFIX (operator override; expects PATH-style prefix
291
+ // whose `bin/` contains x86_64-w64-mingw32-gcc)
292
+ // 2. PATH (apt-installed mingw-w64 lands here)
293
+ // 3. ~/.local/x86_64-w64-mingw32/usr/bin (user-local extracted .deb,
294
+ // see reports/porting/2026-05-09-w3/windows-cross-build.md for the
295
+ // no-root install recipe)
296
+ //
297
+ // On match: returns { gcc, gxx, windres, ar, ranlib, nm, objdump } so the
298
+ // toolchain file generator can emit absolute compiler paths and the
299
+ // symbol-verifier can run nm/objdump from the same toolset.
300
+ //
301
+ // Returns null when nothing usable was found.
302
+ function findMingwToolchain() {
303
+ // PATH-installed gcc-mingw-w64-x86-64 (apt-get install mingw-w64).
304
+ if (has("x86_64-w64-mingw32-gcc")) {
305
+ return {
306
+ gcc: "x86_64-w64-mingw32-gcc",
307
+ gxx: "x86_64-w64-mingw32-g++",
308
+ windres: "x86_64-w64-mingw32-windres",
309
+ ar: "x86_64-w64-mingw32-ar",
310
+ ranlib: "x86_64-w64-mingw32-ranlib",
311
+ nm: "x86_64-w64-mingw32-nm",
312
+ objdump: "x86_64-w64-mingw32-objdump",
313
+ };
314
+ }
315
+
316
+ // User-local extracted-from-deb install. The Ubuntu mingw-w64 packages
317
+ // pull in update-alternatives wrappers that aren't created when you
318
+ // dpkg-deb -x without root, so we resolve the explicit `*-posix` names
319
+ // and synthesize the canonical aliases at toolchain-write time.
320
+ const candidates = [];
321
+ const envPrefix = process.env.MILADY_MINGW_PREFIX?.trim();
322
+ if (envPrefix) candidates.push(path.join(envPrefix, "bin"));
323
+ candidates.push(
324
+ path.join(os.homedir(), ".local", "x86_64-w64-mingw32", "usr", "bin"),
325
+ );
326
+
327
+ for (const dir of candidates) {
328
+ const gccPosix = path.join(dir, "x86_64-w64-mingw32-gcc-posix");
329
+ const gccCanonical = path.join(dir, "x86_64-w64-mingw32-gcc");
330
+ const gxxPosix = path.join(dir, "x86_64-w64-mingw32-g++-posix");
331
+ const gxxCanonical = path.join(dir, "x86_64-w64-mingw32-g++");
332
+ const windres = path.join(dir, "x86_64-w64-mingw32-windres");
333
+ const gcc = fs.existsSync(gccCanonical)
334
+ ? gccCanonical
335
+ : fs.existsSync(gccPosix)
336
+ ? gccPosix
337
+ : null;
338
+ const gxx = fs.existsSync(gxxCanonical)
339
+ ? gxxCanonical
340
+ : fs.existsSync(gxxPosix)
341
+ ? gxxPosix
342
+ : null;
343
+ if (!gcc || !gxx) continue;
344
+ return {
345
+ gcc,
346
+ gxx,
347
+ windres: fs.existsSync(windres) ? windres : "x86_64-w64-mingw32-windres",
348
+ ar: path.join(dir, "x86_64-w64-mingw32-ar"),
349
+ ranlib: path.join(dir, "x86_64-w64-mingw32-ranlib"),
350
+ nm: path.join(dir, "x86_64-w64-mingw32-nm"),
351
+ objdump: path.join(dir, "x86_64-w64-mingw32-objdump"),
352
+ };
353
+ }
354
+ return null;
355
+ }
356
+
357
+ // Resolve a stable, source-tree-independent cache dir for cross-toolchain
358
+ // scaffolding (mingw toolchain file + Win10 SDK shim header). We *can't*
359
+ // drop these next to the llama.cpp checkout — `ensureCheckout()` clones
360
+ // into an empty dir and refuses to clobber our toolchain files.
361
+ function mingwToolchainCacheDir() {
362
+ return path.join(os.homedir(), ".cache", "eliza-dflash", "mingw-toolchain");
363
+ }
364
+
365
+ // Write a CMake toolchain file targeting x86_64-w64-mingw32 plus a tiny
366
+ // "missing Windows 10 SDK shim" header that gets force-included into every
367
+ // translation unit. The shim defines THREAD_POWER_THROTTLING_STATE and
368
+ // related constants that mingw-w64 11.0 (Ubuntu 24.04) doesn't ship even
369
+ // though it advertises _WIN32_WINNT_WIN10.
370
+ //
371
+ // Why we need both:
372
+ // * cpp-httplib in the llama.cpp vendor tree hard-requires
373
+ // `_WIN32_WINNT >= 0x0A00` and uses CreateFile2.
374
+ // * ggml/src/ggml-cpu/ggml-cpu.c uses THREAD_POWER_THROTTLING_STATE
375
+ // (Win8+ API) under `#if _WIN32_WINNT >= 0x0602`. Bumping WINVER to
376
+ // 0x0A00 (required by the first point) triggers that branch, but
377
+ // mingw-w64 11.0's headers don't have the type. The shim provides
378
+ // the typedef with the same shape as the Microsoft SDK; the actual
379
+ // SetThreadInformation API is in kernel32.dll on Win8+ so the binary
380
+ // works at runtime.
381
+ //
382
+ // Returns the absolute path to the generated toolchain file.
383
+ function writeMingwToolchainFile({ mingw }) {
384
+ const toolchainDir = mingwToolchainCacheDir();
385
+ fs.mkdirSync(toolchainDir, { recursive: true });
386
+ const shimPath = path.join(toolchainDir, "milady-mingw-win-shim.h");
387
+ const shimBody = `/*
388
+ * Auto-generated by build-llama-cpp-dflash.mjs. Do not edit.
389
+ *
390
+ * Tiny shim for x86_64-w64-mingw32 cross-builds that lets us target the
391
+ * Windows 10 SDK (cpp-httplib hard-requires _WIN32_WINNT >= 0x0A00) on
392
+ * mingw-w64 11.0 (Ubuntu 24.04) headers, which don't ship the Win8
393
+ * THREAD_POWER_THROTTLING_STATE struct ggml-cpu.c references.
394
+ */
395
+ #ifndef MILADY_MINGW_WIN_SHIM_H
396
+ #define MILADY_MINGW_WIN_SHIM_H
397
+
398
+ #include <windows.h>
399
+
400
+ #ifndef THREAD_POWER_THROTTLING_CURRENT_VERSION
401
+ #define THREAD_POWER_THROTTLING_CURRENT_VERSION 1
402
+ #define THREAD_POWER_THROTTLING_EXECUTION_SPEED 0x1
403
+ #define THREAD_POWER_THROTTLING_VALID_FLAGS THREAD_POWER_THROTTLING_EXECUTION_SPEED
404
+
405
+ typedef struct _THREAD_POWER_THROTTLING_STATE {
406
+ ULONG Version;
407
+ ULONG ControlMask;
408
+ ULONG StateMask;
409
+ } THREAD_POWER_THROTTLING_STATE, *PTHREAD_POWER_THROTTLING_STATE;
410
+ #endif
411
+
412
+ #endif /* MILADY_MINGW_WIN_SHIM_H */
413
+ `;
414
+ fs.writeFileSync(shimPath, shimBody, "utf8");
415
+
416
+ const toolchainPath = path.join(toolchainDir, "mingw-x86_64.cmake");
417
+ const body = `# Auto-generated by build-llama-cpp-dflash.mjs. Do not edit.
418
+ set(CMAKE_SYSTEM_NAME Windows)
419
+ set(CMAKE_SYSTEM_PROCESSOR x86_64)
420
+ set(CMAKE_C_COMPILER ${mingw.gcc})
421
+ set(CMAKE_CXX_COMPILER ${mingw.gxx})
422
+ set(CMAKE_RC_COMPILER ${mingw.windres})
423
+ set(CMAKE_AR ${mingw.ar})
424
+ set(CMAKE_RANLIB ${mingw.ranlib})
425
+ add_compile_definitions(_WIN32_WINNT=0x0A00 WINVER=0x0A00 NTDDI_VERSION=0x0A000000)
426
+ add_compile_options(-include "${shimPath.replace(/\\/g, "/")}")
427
+ set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
428
+ set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
429
+ set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
430
+ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
431
+ `;
432
+ fs.writeFileSync(toolchainPath, body, "utf8");
433
+ return toolchainPath;
434
+ }
435
+
436
+ // Patch the cached llama.cpp checkout's `ggml/src/CMakeLists.txt` so that
437
+ // `ggml-base` also compiles the QJL kernel sources from `ggml-cpu/qjl/`.
438
+ //
439
+ // Why: the milady-ai/llama.cpp fork places QJL function definitions in
440
+ // `ggml/src/ggml-cpu/qjl/quants-qjl.c` (i.e. the ggml-cpu compilation
441
+ // unit), but `ggml/src/ggml.c` (in ggml-base) references those symbols
442
+ // from the type-traits table. ELF allows unresolved DSO symbols at link
443
+ // time and resolves them via the runtime loader; PE/COFF doesn't, so
444
+ // `ggml-base.dll` fails to link with "undefined reference to
445
+ // quantize_qjl1_256" etc.
446
+ //
447
+ // The transitional fix is to compile the QJL sources into ggml-base on
448
+ // Windows shared-lib builds. Linux/macOS keep the original placement.
449
+ // Idempotent: checks for a sentinel marker in the file before patching.
450
+ //
451
+ // TODO(milady-ai/llama.cpp): land an upstream fix that either (a) moves
452
+ // the QJL function definitions into ggml-base, or (b) wires the
453
+ // type-traits table through a registration callback that ggml-cpu fills
454
+ // in at backend-load time. When that lands, this patch becomes a no-op
455
+ // and can be removed.
456
+ function patchGgmlBaseForWindowsQjl(cacheDir) {
457
+ const cmakeListsPath = path.join(cacheDir, "ggml", "src", "CMakeLists.txt");
458
+ if (!fs.existsSync(cmakeListsPath)) {
459
+ throw new Error(
460
+ `[dflash-build] patchGgmlBaseForWindowsQjl: ${cmakeListsPath} missing — fork layout broken`,
461
+ );
462
+ }
463
+ const original = fs.readFileSync(cmakeListsPath, "utf8");
464
+ const sentinel = "# MILADY-WINDOWS-QJL-IN-GGML-BASE";
465
+ if (original.includes(sentinel)) {
466
+ return; // already patched
467
+ }
468
+ const anchor = " polar_centroids.h\n gguf.cpp)";
469
+ if (!original.includes(anchor)) {
470
+ throw new Error(
471
+ `[dflash-build] patchGgmlBaseForWindowsQjl: anchor not found in ${cmakeListsPath}; ` +
472
+ `the milady-ai/llama.cpp fork layout has changed. Without this patch ` +
473
+ `Windows shared-lib builds will fail to link QJL symbols into ggml-base.dll.`,
474
+ );
475
+ }
476
+ const replacement = ` polar_centroids.h
477
+ gguf.cpp
478
+ ${sentinel}
479
+ # PE/COFF requires every imported symbol to be resolved at
480
+ # link time; the QJL definitions in ggml-cpu/qjl/ are referenced
481
+ # from ggml.c (ggml-base), so on Windows shared-lib builds they
482
+ # must also live in ggml-base. Linux/macOS use the original
483
+ # ggml-cpu placement and ignore this duplicate.
484
+ ggml-cpu/qjl/quants-qjl.c
485
+ ggml-cpu/qjl/qjl_dispatch.c
486
+ ggml-cpu/qjl/qjl_projection.c
487
+ ggml-cpu/qjl/qjl_quantize_ref.c
488
+ ggml-cpu/qjl/qjl_quantize_avx2.c
489
+ ggml-cpu/qjl/qjl_quantize_neon.c
490
+ ggml-cpu/qjl/qjl_score_ref.c
491
+ ggml-cpu/qjl/qjl_score_avx2.c
492
+ ggml-cpu/qjl/qjl_score_neon.c)
493
+ target_include_directories(ggml-base PRIVATE ggml-cpu ggml-cpu/qjl ggml-cpu/qjl/include)`;
494
+ fs.writeFileSync(
495
+ cmakeListsPath,
496
+ original.replace(anchor, replacement),
497
+ "utf8",
498
+ );
499
+ console.log(
500
+ "[dflash-build] patched ggml/src/CMakeLists.txt to compile QJL kernels into ggml-base for Windows shared-lib build",
501
+ );
502
+ }
503
+
504
+ // The fork's `ggml-vulkan.cpp` includes <vulkan/vulkan.hpp> (Vulkan-Headers)
505
+ // and <spirv/unified1/spirv.hpp> (SPIRV-Headers). The Android NDK ships only
506
+ // the C-level vulkan.h and no SPIRV headers, so a cross-compile against the
507
+ // NDK alone fails at ~38–47% of the build with these headers missing.
508
+ //
509
+ // Fetch stable tagged checkouts of both Khronos header repos into the cache
510
+ // and return both include paths so callers can add them via -isystem.
511
+ const VULKAN_HEADERS_REPO = "https://github.com/KhronosGroup/Vulkan-Headers.git";
512
+ const VULKAN_HEADERS_REF = process.env.ELIZA_DFLASH_VULKAN_HEADERS_REF || "v1.3.295";
513
+ const SPIRV_HEADERS_REPO = "https://github.com/KhronosGroup/SPIRV-Headers.git";
514
+ const SPIRV_HEADERS_REF = process.env.ELIZA_DFLASH_SPIRV_HEADERS_REF || "vulkan-sdk-1.3.296.0";
515
+
516
+ function fetchHeadersRepo({ name, repo, ref, sentinelRel }) {
517
+ const cacheRoot = path.join(os.homedir(), ".cache", "eliza-dflash", name);
518
+ const includeDir = path.join(cacheRoot, "include");
519
+ if (fs.existsSync(path.join(includeDir, sentinelRel))) return includeDir;
520
+ if (!has("git")) {
521
+ throw new Error(
522
+ `Vulkan target requires ${name}; install git so I can fetch from ${repo} or set ELIZA_DFLASH_${name.toUpperCase().replace(/-/g, "_")}_DIR`,
523
+ );
524
+ }
525
+ fs.mkdirSync(path.dirname(cacheRoot), { recursive: true });
526
+ if (fs.existsSync(path.join(cacheRoot, ".git"))) {
527
+ run("git", ["fetch", "--depth=1", "origin", ref], { cwd: cacheRoot });
528
+ run("git", ["checkout", "FETCH_HEAD"], { cwd: cacheRoot });
529
+ } else {
530
+ run("git", ["clone", "--depth=1", "--branch", ref, repo, cacheRoot]);
531
+ }
532
+ if (!fs.existsSync(path.join(includeDir, sentinelRel))) {
533
+ throw new Error(
534
+ `${name} checkout at ${cacheRoot} is missing include/${sentinelRel}`,
535
+ );
536
+ }
537
+ console.log(`[dflash-build] ${name} ${ref} ready at ${includeDir}`);
538
+ return includeDir;
539
+ }
540
+
541
+ function prepareVulkanHeaders() {
542
+ let vulkanInclude;
543
+ const explicitVulkan = process.env.ELIZA_DFLASH_VULKAN_HEADERS_DIR?.trim();
544
+ if (explicitVulkan && fs.existsSync(path.join(explicitVulkan, "vulkan", "vulkan.hpp"))) {
545
+ vulkanInclude = explicitVulkan;
546
+ } else {
547
+ vulkanInclude = fetchHeadersRepo({
548
+ name: "vulkan-headers",
549
+ repo: VULKAN_HEADERS_REPO,
550
+ ref: VULKAN_HEADERS_REF,
551
+ sentinelRel: path.join("vulkan", "vulkan.hpp"),
552
+ });
553
+ }
554
+ let spirvInclude;
555
+ const explicitSpirv = process.env.ELIZA_DFLASH_SPIRV_HEADERS_DIR?.trim();
556
+ if (
557
+ explicitSpirv &&
558
+ fs.existsSync(path.join(explicitSpirv, "spirv", "unified1", "spirv.hpp"))
559
+ ) {
560
+ spirvInclude = explicitSpirv;
561
+ } else {
562
+ spirvInclude = fetchHeadersRepo({
563
+ name: "spirv-headers",
564
+ repo: SPIRV_HEADERS_REPO,
565
+ ref: SPIRV_HEADERS_REF,
566
+ sentinelRel: path.join("spirv", "unified1", "spirv.hpp"),
567
+ });
568
+ }
569
+ return { vulkanInclude, spirvInclude };
570
+ }
571
+
572
+ // Resolve the system libvulkan.so.1 on Linux when libvulkan-dev isn't
573
+ // installed. CMake's FindVulkan looks for libvulkan.so by name, but distro
574
+ // runtime packages ship only libvulkan.so.1; passing the resolved versioned
575
+ // path via -DVulkan_LIBRARY satisfies the package check.
576
+ function findLinuxLibVulkan() {
577
+ const candidates = [
578
+ "/usr/lib/x86_64-linux-gnu/libvulkan.so.1",
579
+ "/usr/lib64/libvulkan.so.1",
580
+ "/usr/lib/libvulkan.so.1",
581
+ "/usr/lib/x86_64-linux-gnu/libvulkan.so",
582
+ "/usr/lib64/libvulkan.so",
583
+ ];
584
+ for (const candidate of candidates) {
585
+ if (fs.existsSync(candidate)) return candidate;
586
+ }
587
+ return null;
588
+ }
589
+
590
+ // Previously swallowed fetch failures into a `null` return that silently
591
+ // dropped `-isystem` flags — Vulkan target then failed at cmake configure
592
+ // with a cryptic missing-header error several seconds later. Per AGENTS.md
593
+ // §3 (build-time exit non-zero), let the original error surface so the
594
+ // operator sees the cause and the failure point are co-located. Calling
595
+ // code now sees a real exception rather than a magic null sentinel.
596
+ function safelyPrepareVulkanHeaders() {
597
+ return prepareVulkanHeaders();
598
+ }
599
+
600
+ // Map a target triple to cmake configure flags.
601
+ //
602
+ // Notes / quirks:
603
+ // * Several targets explicitly disable other GPU backends so that probe
604
+ // code in ggml/src/CMakeLists.txt doesn't pull in an unrelated SDK.
605
+ // * Android cross-compile uses the NDK's bundled cmake toolchain.
606
+ // * GGML_NATIVE is on for host targets and OFF for cross-compiles
607
+ // (you can't sniff -march for a different ABI).
608
+ // Split a target triple into (platform, arch, backend, isSimulator).
609
+ // Handles the special-case 4-part `ios-arm64-simulator-metal` triple.
610
+ // The `-fused` suffix is stripped before parsing — fused triples reuse
611
+ // the underlying base triple's cmake/compat plumbing and only differ
612
+ // at the omnivoice-graft + final-link layer.
613
+ function parseTarget(target) {
614
+ const fused = isFusedTarget(target);
615
+ const parts = baseTargetTriple(target).split("-");
616
+ if (parts[0] === "ios" && parts[2] === "simulator") {
617
+ return {
618
+ platform: parts[0],
619
+ arch: parts[1],
620
+ backend: parts[3],
621
+ isSimulator: true,
622
+ fused,
623
+ };
624
+ }
625
+ return {
626
+ platform: parts[0],
627
+ arch: parts[1],
628
+ backend: parts[2],
629
+ isSimulator: false,
630
+ fused,
631
+ };
632
+ }
633
+
634
+ function cmakeFlagsForTarget(target, ctx) {
635
+ const { platform, arch, backend, isSimulator } = parseTarget(target);
636
+ const flags = ["-DLLAMA_BUILD_TESTS=OFF", "-DLLAMA_BUILD_EXAMPLES=ON"];
637
+ const isCross =
638
+ platform === "android" || platform === "windows" || platform === "ios";
639
+ flags.push(`-DGGML_NATIVE=${isCross ? "OFF" : "ON"}`);
640
+
641
+ // Disable backends we don't want by default; flip the chosen one back on.
642
+ const offByDefault = ["GGML_METAL", "GGML_CUDA", "GGML_HIP", "GGML_VULKAN"];
643
+ for (const name of offByDefault) flags.push(`-D${name}=OFF`);
644
+
645
+ if (backend === "metal") {
646
+ flags[flags.indexOf("-DGGML_METAL=OFF")] = "-DGGML_METAL=ON";
647
+ // EMBED_LIBRARY behavior:
648
+ //
649
+ // * iOS (later in this function) sets it to ON unconditionally —
650
+ // the static-archive build needs the metallib data baked into
651
+ // the framework via .incbin.
652
+ // * Darwin desktop (this branch) sets it OFF so the metallib is
653
+ // compiled at build time into a sidecar default.metallib that
654
+ // ships next to llama-server. The kernel-patches/metal-kernels
655
+ // CMakeLists patch hooks into the non-EMBED add_custom_command
656
+ // so each standalone shader (turbo3/turbo4/turbo3_tcq/qjl/polar)
657
+ // is compiled into its own .air and merged into default.metallib
658
+ // alongside ggml-metal.air.
659
+ //
660
+ // The EMBED path is incompatible with the standalones because
661
+ // it concatenates ggml-metal.metal + ggml-common.h into a single
662
+ // compilation unit, and the standalones redefine block_qjl1_256
663
+ // and block_q4_polar (same byte layout, different field names)
664
+ // plus QK_POLAR / QK_QJL / QJL_RESIDUAL_BYTES already in
665
+ // ggml-common.h. Wiring them through the EMBED path requires a
666
+ // dup-strip pass that is filed as a separate follow-up.
667
+ flags.push("-DGGML_METAL_EMBED_LIBRARY=OFF");
668
+ } else if (backend === "cuda") {
669
+ flags[flags.indexOf("-DGGML_CUDA=OFF")] = "-DGGML_CUDA=ON";
670
+ flags.push("-DGGML_CUDA_FA=ON", "-DGGML_CUDA_FA_ALL_QUANTS=ON");
671
+ // Pin a multi-arch fat-binary so a build host without a GPU does not
672
+ // emit a `sm_52`-only artifact (CMake's default = native probe).
673
+ // 90a → H200 / GH200 (sm_90a, the only arch with the new TMA / WGMMA paths)
674
+ // 90 → H100
675
+ // 89 → Ada / RTX 4090 / L4
676
+ // 86 → Ampere consumer / RTX 30xx
677
+ // 80 → A100 / data-center Ampere
678
+ // Operators that target an older card (sm_75 Turing, sm_70 Volta) can
679
+ // override via ELIZA_DFLASH_CMAKE_FLAGS=-DCMAKE_CUDA_ARCHITECTURES=...
680
+ // which appends after this list and wins.
681
+ flags.push('-DCMAKE_CUDA_ARCHITECTURES=90a;90;89;86;80');
682
+ } else if (backend === "rocm") {
683
+ flags[flags.indexOf("-DGGML_HIP=OFF")] = "-DGGML_HIP=ON";
684
+ } else if (backend === "vulkan") {
685
+ flags[flags.indexOf("-DGGML_VULKAN=OFF")] = "-DGGML_VULKAN=ON";
686
+ if (ctx.glslc) flags.push(`-DVulkan_GLSLC_EXECUTABLE=${ctx.glslc}`);
687
+ // The fork includes vulkan.hpp + spirv/unified1/spirv.hpp, neither of
688
+ // which ships in the NDK *or* in Linux libvulkan-runtime-only installs.
689
+ // ctx.vulkanHpp is the result of safelyPrepareVulkanHeaders() —
690
+ // { vulkanInclude, spirvInclude } pointing at fetched Khronos checkouts.
691
+ if (ctx.vulkanHpp) {
692
+ const isystem = [ctx.vulkanHpp.vulkanInclude, ctx.vulkanHpp.spirvInclude]
693
+ .filter(Boolean)
694
+ .map((p) => `-isystem ${p}`)
695
+ .join(" ");
696
+ if (isystem) flags.push(`-DCMAKE_CXX_FLAGS=${isystem}`);
697
+ // CMake's FindVulkan also needs Vulkan_INCLUDE_DIR / Vulkan_LIBRARY
698
+ // for its package check. On Linux without libvulkan-dev installed,
699
+ // we still have:
700
+ // - libvulkan.so.1 from the runtime package (Mesa / NVIDIA driver)
701
+ // - vulkan/vulkan.h in the fetched Khronos headers
702
+ // Wire those manually so the build doesn't need the SDK.
703
+ if (platform === "linux") {
704
+ const libVulkan = findLinuxLibVulkan();
705
+ if (libVulkan) {
706
+ flags.push(`-DVulkan_INCLUDE_DIR=${ctx.vulkanHpp.vulkanInclude}`);
707
+ flags.push(`-DVulkan_LIBRARY=${libVulkan}`);
708
+ }
709
+ }
710
+ }
711
+ }
712
+
713
+ if (platform === "android") {
714
+ if (!ctx.androidNdk) {
715
+ throw new Error(
716
+ "Android target requested but ANDROID_NDK_HOME is not set and no NDK was found under ~/Android/Sdk/ndk",
717
+ );
718
+ }
719
+ flags.push(
720
+ `-DCMAKE_TOOLCHAIN_FILE=${path.join(ctx.androidNdk, "build", "cmake", "android.toolchain.cmake")}`,
721
+ `-DANDROID_NDK=${ctx.androidNdk}`,
722
+ "-DANDROID_ABI=arm64-v8a",
723
+ "-DANDROID_PLATFORM=android-28",
724
+ // CURL is optional for llama-server and not part of the NDK sysroot.
725
+ "-DLLAMA_CURL=OFF",
726
+ );
727
+ if (backend === "vulkan" && ctx.androidVulkanInclude) {
728
+ // Mostly informational - the NDK sysroot already exposes vulkan/ on the
729
+ // include path. Pass it explicitly so CMake's FindVulkan succeeds even
730
+ // if upstream changes its detection.
731
+ flags.push(`-DVulkan_INCLUDE_DIR=${ctx.androidVulkanInclude}`);
732
+ }
733
+ } else if (platform === "windows") {
734
+ // Cross-build Windows DLLs from a Linux host via x86_64-w64-mingw32.
735
+ // ctx.mingwToolchainFile is set by build() when a usable mingw was
736
+ // found on PATH or under ~/.local/x86_64-w64-mingw32/. Operators on
737
+ // Windows itself bypass this and use the native MSVC/MinGW host
738
+ // toolchain — pass MINGW_TOOLCHAIN_FILE to override either path.
739
+ //
740
+ // arm64 Windows (Snapdragon X Elite, Copilot+ PC) requires either an
741
+ // MSVC arm64 cross-toolchain (CMake `-A ARM64` on a Windows host with
742
+ // MSVC build tools), or a clang/LLVM mingw arm64 cross-toolchain on
743
+ // a Linux host. There is no x86_64-w64-mingw32 → arm64 path, so
744
+ // arm64 builds on Linux hosts must pass MINGW_TOOLCHAIN_FILE
745
+ // explicitly pointing at a clang/LLVM arm64 toolchain file.
746
+ if (process.env.MINGW_TOOLCHAIN_FILE) {
747
+ flags.push(`-DCMAKE_TOOLCHAIN_FILE=${process.env.MINGW_TOOLCHAIN_FILE}`);
748
+ } else if (ctx.mingwToolchainFile && arch === "x64") {
749
+ flags.push(`-DCMAKE_TOOLCHAIN_FILE=${ctx.mingwToolchainFile}`);
750
+ }
751
+ if (arch === "arm64" && process.platform === "win32") {
752
+ // Native MSVC arm64 build. CMake's default (Visual Studio generator)
753
+ // honors -A ARM64 to select the arm64 toolset.
754
+ flags.push("-A", "ARM64");
755
+ }
756
+ // CURL isn't part of the cross-toolchain sysroot. cpp-httplib is
757
+ // statically vendored under llama.cpp/vendor/ and provides the HTTP
758
+ // surface llama-server needs.
759
+ flags.push("-DLLAMA_CURL=OFF");
760
+ if (backend === "cpu" && arch === "x64") {
761
+ // Enable AVX/AVX2/FMA/F16C explicitly. -DGGML_NATIVE=OFF is the
762
+ // right default for cross-builds (you can't sniff -march for a
763
+ // different machine), but AVX2 is the de-facto baseline for
764
+ // Windows x86_64 in 2026 and the QJL/Polar kernels have AVX2
765
+ // implementations that drop in here. Operators that target
766
+ // pre-Haswell CPUs can override via ELIZA_DFLASH_CMAKE_FLAGS.
767
+ flags.push(
768
+ "-DGGML_AVX=ON",
769
+ "-DGGML_AVX2=ON",
770
+ "-DGGML_FMA=ON",
771
+ "-DGGML_F16C=ON",
772
+ // OpenMP isn't usable from the mingw cross-toolchain without an
773
+ // extra runtime. ggml-cpu's std::thread fallback is fine.
774
+ "-DGGML_OPENMP=OFF",
775
+ // Build the multi-DLL split (llama.dll + ggml*.dll). Required by
776
+ // the milady distribution shape; the patchGgmlBaseForWindowsQjl
777
+ // pre-build step makes the QJL symbols resolve against ggml-base
778
+ // so the DLL link succeeds (PE/COFF doesn't allow unresolved DSO
779
+ // symbols at link time the way ELF does).
780
+ "-DBUILD_SHARED_LIBS=ON",
781
+ );
782
+ } else if (backend === "cpu" && arch === "arm64") {
783
+ // Snapdragon X Elite ships ARMv8.4-A + dotprod + i8mm + sve2.
784
+ // qjl-cpu/polarquant-cpu's NEON paths cover the dot-product
785
+ // primitive; OpenMP is still off because the mingw/clang arm64
786
+ // cross-toolchain doesn't ship libomp without extra setup.
787
+ flags.push(
788
+ "-DGGML_OPENMP=OFF",
789
+ "-DBUILD_SHARED_LIBS=ON",
790
+ );
791
+ }
792
+ // Statically link backends into llama-server.exe. With the default
793
+ // (BACKEND_DL=ON) MSVC builds, the dynamic loader looks for a generic
794
+ // `ggml_backend_init` export but ggml-cpu.dll only exports
795
+ // `ggml_backend_cpu_init` (per-backend symbol name), so the loader
796
+ // fails and inference can't run. -DGGML_BACKEND_DL=OFF embeds the
797
+ // backend's init directly into the binary.
798
+ flags.push("-DGGML_BACKEND_DL=OFF", "-DBUILD_SHARED_LIBS=OFF");
799
+ } else if (platform === "ios") {
800
+ // iOS cross-compile (host must be macOS with Xcode). The Capacitor
801
+ // plugin's xcframework patch consumes the resulting static archive +
802
+ // headers; we emit a static lib here so the patch can drop it into
803
+ // ios/Frameworks-xcframework/LlamaCpp.xcframework/ios-arm64{-simulator}/
804
+ // LlamaCpp.framework/.
805
+ flags.push(
806
+ "-DCMAKE_SYSTEM_NAME=iOS",
807
+ "-DCMAKE_OSX_ARCHITECTURES=arm64",
808
+ // iOS 14 covers every supported Capacitor target.
809
+ "-DCMAKE_OSX_DEPLOYMENT_TARGET=14.0",
810
+ // Capacitor plugin links the native code statically.
811
+ "-DBUILD_SHARED_LIBS=OFF",
812
+ // CURL isn't part of the iOS SDK and llama-server's HTTP isn't used
813
+ // on-device — disable to keep the static archive minimal.
814
+ "-DLLAMA_CURL=OFF",
815
+ // Don't try to build llama-server / llama-cli on iOS — they install
816
+ // as console executables and CMake's install(TARGETS …) errors with
817
+ // "no BUNDLE DESTINATION for MACOSX_BUNDLE executable" under the
818
+ // CMAKE_SYSTEM_NAME=iOS generator. Disable the entire tools and
819
+ // examples trees; iOS only needs the static llama / ggml libraries.
820
+ "-DLLAMA_BUILD_EXAMPLES=OFF",
821
+ "-DLLAMA_BUILD_TOOLS=OFF",
822
+ "-DLLAMA_BUILD_SERVER=OFF",
823
+ );
824
+ if (isSimulator) {
825
+ flags.push("-DCMAKE_OSX_SYSROOT=iphonesimulator");
826
+ } else {
827
+ flags.push("-DCMAKE_OSX_SYSROOT=iphoneos");
828
+ }
829
+ // iOS static-archive build needs the metallib data baked in via .incbin
830
+ // since there is no place on-device to ship a sidecar default.metallib.
831
+ // Override the OFF default that the metal backend block set above.
832
+ // NOTE: targetCompatibility() refuses iOS Metal before configure/build
833
+ // until kernel-patches/metal-kernels.mjs wires the EMBED_LIBRARY path.
834
+ // Keep this flag correct for the future patch, but do not rely on late
835
+ // requiredKernelsMissing() failure for today's unsupported path.
836
+ const embedIdx = flags.indexOf("-DGGML_METAL_EMBED_LIBRARY=OFF");
837
+ if (embedIdx !== -1) {
838
+ flags[embedIdx] = "-DGGML_METAL_EMBED_LIBRARY=ON";
839
+ } else {
840
+ flags.push("-DGGML_METAL_EMBED_LIBRARY=ON");
841
+ }
842
+ }
843
+
844
+ const extra = process.env.ELIZA_DFLASH_CMAKE_FLAGS?.trim();
845
+ if (extra) flags.push(...extra.split(/\s+/).filter(Boolean));
846
+ return flags;
847
+ }
848
+
849
+ // Inspect compatibility from the host point of view. Returns either
850
+ // { ok: true } or { ok: false, reason: string } so --all can skip cleanly.
851
+ function targetCompatibility(target, ctx) {
852
+ const { platform, arch, backend, fused } = parseTarget(target);
853
+ if (fused && (platform === "android" || platform === "ios")) {
854
+ return {
855
+ ok: false,
856
+ reason:
857
+ "fused (omnivoice-grafted) targets are desktop/server only — mobile fusion is not wired yet",
858
+ };
859
+ }
860
+ if (platform === "ios" && backend === "metal") {
861
+ return {
862
+ ok: false,
863
+ reason:
864
+ "iOS Metal cannot yet ship the full Eliza-1 kernel set: the current " +
865
+ "metal-kernels.mjs patch wires only the non-EMBED default.metallib " +
866
+ "branch used by darwin host builds. iOS uses GGML_METAL_EMBED_LIBRARY=ON, " +
867
+ "so TurboQuant/QJL/Polar standalones are not embedded. Refusing before " +
868
+ "configure/build; wire the embedded metallib path before enabling this target.",
869
+ };
870
+ }
871
+ if (platform === "darwin" && process.platform !== "darwin") {
872
+ return { ok: false, reason: "darwin target requires macOS host" };
873
+ }
874
+ if (platform === "ios" && process.platform !== "darwin") {
875
+ return { ok: false, reason: "ios target requires macOS host with Xcode" };
876
+ }
877
+ if (platform === "linux" && process.platform !== "linux") {
878
+ return { ok: false, reason: "linux target requires linux host" };
879
+ }
880
+ // linux-aarch64-* requires an arm64 Linux host. There is no aarch64 cross
881
+ // toolchain wired in this script, so x64 hosts cannot produce aarch64
882
+ // binaries here. The GH200 / Graviton path is to run this on an arm64
883
+ // build runner.
884
+ if (platform === "linux" && arch === "aarch64" && process.arch !== "arm64") {
885
+ return {
886
+ ok: false,
887
+ reason:
888
+ "linux-aarch64 target requires an arm64 Linux host (no aarch64 cross-toolchain wired here; run on a real arm64 build runner)",
889
+ };
890
+ }
891
+ if (platform === "windows") {
892
+ // arm64 Windows builds need either a native MSVC arm64 host or an
893
+ // operator-supplied MINGW_TOOLCHAIN_FILE pointing at clang/LLVM
894
+ // arm64 cross-tools — the bundled mingw discovery only handles
895
+ // x86_64-w64-mingw32.
896
+ if (arch === "arm64") {
897
+ if (process.platform === "win32") return { ok: true };
898
+ if (process.env.MINGW_TOOLCHAIN_FILE) return { ok: true };
899
+ return {
900
+ ok: false,
901
+ reason:
902
+ "windows-arm64 target requires a native Windows arm64 host (MSVC -A ARM64) or MINGW_TOOLCHAIN_FILE pointing at a clang/LLVM aarch64-w64-mingw32 toolchain file",
903
+ };
904
+ }
905
+ if (process.platform === "win32") return { ok: true };
906
+ if (process.env.MINGW_TOOLCHAIN_FILE) return { ok: true };
907
+ if (ctx.mingwToolchainFile) return { ok: true };
908
+ return {
909
+ ok: false,
910
+ reason:
911
+ "windows target requires Windows host, MINGW_TOOLCHAIN_FILE, or mingw-w64 (apt-get install mingw-w64) / extracted .deb under ~/.local/x86_64-w64-mingw32/",
912
+ };
913
+ }
914
+ if (platform === "android") {
915
+ if (!ctx.androidNdk) {
916
+ return { ok: false, reason: "Android NDK not found" };
917
+ }
918
+ if (backend === "vulkan" && !ctx.androidVulkanInclude) {
919
+ return {
920
+ ok: false,
921
+ reason: "Android Vulkan headers not found in NDK sysroot",
922
+ };
923
+ }
924
+ return { ok: true };
925
+ }
926
+ if (backend === "cuda" && !has("nvcc")) {
927
+ return { ok: false, reason: "no nvcc (CUDA toolkit)" };
928
+ }
929
+ if (backend === "rocm" && !(has("hipcc") || has("rocminfo"))) {
930
+ return { ok: false, reason: "no hipcc / rocminfo" };
931
+ }
932
+ if (backend === "vulkan" && !ctx.glslc) {
933
+ return { ok: false, reason: "no glslc (Vulkan shader compiler)" };
934
+ }
935
+ if (backend === "metal" && process.platform !== "darwin") {
936
+ return { ok: false, reason: "metal requires macOS" };
937
+ }
938
+ return { ok: true };
939
+ }
940
+
941
+ // Map Node's process.arch to the triple's arch token. Linux uses
942
+ // `aarch64` in its triples (linux-aarch64-cuda); every other platform
943
+ // uses `arm64` (darwin-arm64-metal, windows-arm64-vulkan, android-arm64-*).
944
+ function nodeArchToTripleArch(platform) {
945
+ if (process.arch === "x64") return "x64";
946
+ if (process.arch === "arm64") return platform === "linux" ? "aarch64" : "arm64";
947
+ return process.arch;
948
+ }
949
+
950
+ function defaultTarget() {
951
+ const backend = detectBackend();
952
+ const platform =
953
+ process.platform === "win32" ? "windows" : process.platform;
954
+ const arch = nodeArchToTripleArch(platform);
955
+ return `${platform}-${arch}-${backend}`;
956
+ }
957
+
958
+ function parseArgs(argv) {
959
+ const args = {
960
+ // Renamed from buun-llama-cpp to milady-llama-cpp on the unified-fork
961
+ // migration. Old caches stay around harmlessly under the prior name —
962
+ // the new directory busts the cache so a fresh ref pull is forced.
963
+ cacheDir: path.join(
964
+ os.homedir(),
965
+ ".cache",
966
+ "eliza-dflash",
967
+ "milady-llama-cpp",
968
+ ),
969
+ outDirOverride: null,
970
+ targets: null, // null => single legacy target, otherwise an array
971
+ backend: null, // legacy --backend
972
+ ref: REF,
973
+ jobs: Math.max(1, Math.min(os.cpus().length, 16)),
974
+ dryRun: false,
975
+ all: false,
976
+ };
977
+ for (let i = 0; i < argv.length; i += 1) {
978
+ const arg = argv[i];
979
+ const next = () => {
980
+ const value = argv[i + 1];
981
+ if (!value || value.startsWith("--"))
982
+ throw new Error(`${arg} requires a value`);
983
+ i += 1;
984
+ return value;
985
+ };
986
+ if (arg === "--cache-dir") args.cacheDir = path.resolve(next());
987
+ else if (arg === "--out-dir") args.outDirOverride = path.resolve(next());
988
+ else if (arg === "--backend") args.backend = next();
989
+ else if (arg === "--target") {
990
+ const value = next();
991
+ if (!SUPPORTED_TARGETS.includes(value)) {
992
+ throw new Error(
993
+ `Unsupported --target ${value}. Supported: ${SUPPORTED_TARGETS.join(", ")}`,
994
+ );
995
+ }
996
+ args.targets = args.targets || [];
997
+ args.targets.push(value);
998
+ } else if (arg === "--all") args.all = true;
999
+ else if (arg === "--dry-run") args.dryRun = true;
1000
+ else if (arg === "--ref") args.ref = next();
1001
+ else if (arg === "--jobs" || arg === "-j")
1002
+ args.jobs = Number.parseInt(next(), 10);
1003
+ else if (arg === "--help" || arg === "-h") {
1004
+ console.log(
1005
+ [
1006
+ "Usage: node build-llama-cpp-dflash.mjs [options]",
1007
+ "",
1008
+ "Targets (use --target one or more times, or --all):",
1009
+ ...SUPPORTED_TARGETS.map(
1010
+ (t) =>
1011
+ ` ${t}${FUSED_TARGETS.has(t) ? " (fused: text + omnivoice TTS in one build)" : ""}`,
1012
+ ),
1013
+ "",
1014
+ "Fused targets perform source-level fusion of",
1015
+ "github.com/ServeurpersoCom/omnivoice.cpp into the milady-ai/llama.cpp",
1016
+ "build, sharing one ggml pin and one kernel set.",
1017
+ `Pinned omnivoice commit: ${OMNIVOICE_REF}`,
1018
+ `Reconciled-out omnivoice ggml submodule: ${OMNIVOICE_GGML_REF}`,
1019
+ "See packages/app-core/scripts/omnivoice-fuse/README.md.",
1020
+ "",
1021
+ "Options:",
1022
+ " --target <triple> Build a specific target (repeatable).",
1023
+ " --all Build every host-compatible target.",
1024
+ " --dry-run Print cmake invocations without running.",
1025
+ " --backend <name> Legacy single-target backend selector.",
1026
+ " --ref <git-ref> Branch/tag/SHA of the fork to build.",
1027
+ " --out-dir <path> Override the output directory (single target).",
1028
+ " --cache-dir <path> Override the source checkout cache.",
1029
+ " --jobs N | -j N Parallel build jobs.",
1030
+ ].join("\n"),
1031
+ );
1032
+ process.exit(0);
1033
+ } else {
1034
+ throw new Error(`Unknown argument: ${arg}`);
1035
+ }
1036
+ }
1037
+ if (args.all && args.targets) {
1038
+ throw new Error("--all and --target are mutually exclusive");
1039
+ }
1040
+ return args;
1041
+ }
1042
+
1043
+ function ensureCheckout(cacheDir, ref) {
1044
+ if (fs.existsSync(path.join(cacheDir, ".git"))) {
1045
+ run("git", ["fetch", "--depth=1", "origin", ref], { cwd: cacheDir });
1046
+ run("git", ["checkout", "FETCH_HEAD"], { cwd: cacheDir });
1047
+ } else {
1048
+ fs.mkdirSync(path.dirname(cacheDir), { recursive: true });
1049
+ run("git", ["clone", "--depth=1", "--branch", ref, REMOTE, cacheDir]);
1050
+ }
1051
+ const head = run("git", ["rev-parse", "HEAD"], {
1052
+ cwd: cacheDir,
1053
+ capture: true,
1054
+ });
1055
+ console.log(`[dflash-build] checkout ${head}`);
1056
+ const ancestor = spawnSync(
1057
+ "git",
1058
+ ["merge-base", "--is-ancestor", MIN_COMMIT, "HEAD"],
1059
+ {
1060
+ cwd: cacheDir,
1061
+ stdio: "ignore",
1062
+ },
1063
+ );
1064
+ if (ancestor.status !== 0) {
1065
+ const shallow = run("git", ["rev-parse", "--is-shallow-repository"], {
1066
+ cwd: cacheDir,
1067
+ capture: true,
1068
+ });
1069
+ if (shallow === "true") {
1070
+ console.log(
1071
+ `[dflash-build] shallow checkout; skipping ancestry check for minimum known-good DFlash/SWA commit ${MIN_COMMIT}`,
1072
+ );
1073
+ } else {
1074
+ console.warn(
1075
+ `[dflash-build] warning: HEAD does not contain minimum known-good DFlash/SWA commit ${MIN_COMMIT}`,
1076
+ );
1077
+ }
1078
+ }
1079
+ return head;
1080
+ }
1081
+
1082
+ // Real patch hooks: the v0.4.0-milady decorative log no-ops have been replaced
1083
+ // with kernel-patches/{metal,vulkan}-kernels.mjs implementations that actually
1084
+ // (a) copy the verified standalone shaders from packages/inference/{metal,vulkan}/
1085
+ // into the fork tree, and (b) for Metal, patch ggml/src/ggml-metal/CMakeLists.txt
1086
+ // to compile each standalone into its own .air and merge them into the
1087
+ // final default.metallib. Both helpers hard-throw on failure per AGENTS.md §3.
1088
+ //
1089
+ // What still doesn't fully ship at v0.4.0-milady (deferred dispatch wiring):
1090
+ //
1091
+ // * ggml-metal-ops.cpp / ggml-metal-device.m have NO dispatch sites for
1092
+ // the milady quant types (TBQ3_0, TBQ4_0, TBQ3_TCQ, QJL1_256, Q4_POLAR).
1093
+ // CUDA has them; Metal does not. After this patch the kernel symbols
1094
+ // (kernel_turbo3_dot, kernel_attn_score_qjl1_256, kernel_mul_mv_q4_polar_f32,
1095
+ // etc.) are present in default.metallib and `nm`/`strings` will see
1096
+ // them, but the runtime cannot yet select them via GGML_TYPE_*. That
1097
+ // wiring is a separate fork-internals patch and is the next agent's
1098
+ // mission.
1099
+ //
1100
+ // * The EMBED_LIBRARY=ON branch (used by iOS targets) is not yet patched.
1101
+ // iOS builds compile a single concatenated .metal via .incbin and would
1102
+ // require stripping the duplicate decls (block_qjl1_256, block_q4_polar,
1103
+ // QK_QJL, QK_POLAR, QJL_RESIDUAL_BYTES already in ggml-common.h). That
1104
+ // is a separate patch tracked in kernel-patches/metal-kernels.mjs's
1105
+ // module comment.
1106
+ //
1107
+ // * Vulkan: the 8 standalone .comp files are staged into
1108
+ // ggml/src/ggml-vulkan/vulkan-shaders/ (picked up by file(GLOB)),
1109
+ // vulkan-shaders-gen.cpp registers them via 8 string_to_spv() calls,
1110
+ // and ggml-vulkan.cpp now declares + creates 8 milady_* pipelines so the
1111
+ // SPV blobs are linked into libggml-vulkan.so. Symbol audit (`nm
1112
+ // libggml-vulkan.so | grep milady_`) passes; op-level dispatch routing
1113
+ // for GGML_OP_ATTN_SCORE_QJL and the milady GGML_TYPE_* values is the
1114
+ // remaining gap and is the next agent's mission. Until it lands, the
1115
+ // ELIZA_DFLASH_ALLOW_INCOMPLETE_VULKAN=1 env var still applies — the
1116
+ // help-text probe in probeKernels() can't yet see qjl/polar via CLI
1117
+ // flags because the runtime can't select them.
1118
+ function applyForkPatches(cacheDir, backend, target, { dryRun = false } = {}) {
1119
+ if (backend === "metal") {
1120
+ patchMetalKernelsImpl(cacheDir, { dryRun });
1121
+ }
1122
+ if (backend === "vulkan") {
1123
+ patchVulkanKernelsImpl(cacheDir, { dryRun, target });
1124
+ }
1125
+ if (target && target.startsWith("windows-")) {
1126
+ patchGgmlBaseForWindowsQjl(cacheDir);
1127
+ }
1128
+ // The same broken cross-library reference that bites Windows shared-lib
1129
+ // builds also bites darwin shared-lib builds: ggml.c (in ggml-base) calls
1130
+ // quantize_qjl1_256 / dequantize_row_qjl1_256 / quantize_row_qjl1_256_ref,
1131
+ // which live in ggml-cpu/qjl/. On darwin the BUILD_SHARED_LIBS_DEFAULT is
1132
+ // ON and ggml-base is linked with `-undefined error`, so the link fails
1133
+ // before a single Metal kernel can run. Folding the QJL TUs into ggml-base
1134
+ // resolves the symbols at link time without breaking the ggml-cpu build
1135
+ // (the duplicate object files in two libraries link cleanly because they
1136
+ // are part of the same .dylib at runtime). The same fix is independently
1137
+ // safe to apply to iOS static-archive builds. Idempotent via the
1138
+ // existing `# MILADY-WINDOWS-QJL-IN-GGML-BASE` sentinel inside
1139
+ // patchGgmlBaseForWindowsQjl().
1140
+ if (
1141
+ target &&
1142
+ (target.startsWith("darwin-") || target.startsWith("ios-"))
1143
+ ) {
1144
+ patchGgmlBaseForWindowsQjl(cacheDir);
1145
+ }
1146
+ }
1147
+
1148
+ function isRuntimeLibrary(name) {
1149
+ return (
1150
+ /^lib.*\.(dylib|so|dll)$/.test(name) ||
1151
+ /^lib.*\.so\.\d/.test(name) ||
1152
+ /^lib.*\.\d+(\.\d+)*\.dylib$/.test(name) ||
1153
+ // mingw produces `ggml.dll`, `ggml-base.dll`, `ggml-cpu.dll` (no `lib`
1154
+ // prefix) for Windows shared-lib builds. Accept any plain `.dll`.
1155
+ /\.dll$/i.test(name)
1156
+ );
1157
+ }
1158
+
1159
+ function makeDarwinInstallSelfContained(outDir, names, buildBinDir) {
1160
+ if (process.platform !== "darwin") return;
1161
+ for (const name of names) {
1162
+ const file = path.join(outDir, name);
1163
+ tryRun("install_name_tool", ["-delete_rpath", buildBinDir, file]);
1164
+ tryRun("install_name_tool", ["-delete_rpath", path.dirname(file), file]);
1165
+ tryRun("install_name_tool", ["-delete_rpath", outDir, file]);
1166
+ tryRun("install_name_tool", ["-delete_rpath", path.resolve(outDir), file]);
1167
+ const rpath = isRuntimeLibrary(name) ? "@loader_path" : "@executable_path";
1168
+ tryRun("install_name_tool", ["-delete_rpath", rpath, file]);
1169
+ tryRun("install_name_tool", ["-add_rpath", rpath, file]);
1170
+ }
1171
+ }
1172
+
1173
+ // Probe a freshly-built llama-server for kernel availability.
1174
+ //
1175
+ // For host targets, run `llama-server --help` and grep for kernel-specific
1176
+ // flags / cache-type names. For cross-compiled targets (e.g. Android) the
1177
+ // binary cannot run on the host; introspect the build directory for compiled
1178
+ // object files instead (e.g. ggml-cuda/turbo3.cu.o,
1179
+ // ggml-metal/turbo3.metal.air, etc.).
1180
+ function probeKernels(target, buildDir, outDir) {
1181
+ const { platform, backend } = parseTarget(target);
1182
+ const canRunOnHost = canRunTargetOnHost(target);
1183
+ const kernels = {
1184
+ dflash: false,
1185
+ turbo3: false,
1186
+ turbo4: false,
1187
+ turbo3_tcq: false,
1188
+ qjl_full: false,
1189
+ polarquant: false,
1190
+ lookahead: true, // upstream
1191
+ ngramDraft: true, // upstream
1192
+ };
1193
+
1194
+ if (canRunOnHost) {
1195
+ // On Windows the binary is named with .exe suffix; on macOS/Linux it has
1196
+ // no extension. Probe both so the kernel detection works on every host.
1197
+ const serverBinCandidates = [
1198
+ path.join(outDir, "llama-server"),
1199
+ path.join(outDir, "llama-server.exe"),
1200
+ ];
1201
+ const serverBin =
1202
+ serverBinCandidates.find((p) => fs.existsSync(p)) ??
1203
+ serverBinCandidates[0];
1204
+ if (fs.existsSync(serverBin)) {
1205
+ const result = spawnSync(serverBin, ["--help"], {
1206
+ encoding: "utf8",
1207
+ stdio: ["ignore", "pipe", "pipe"],
1208
+ env: process.env,
1209
+ timeout: 30_000,
1210
+ });
1211
+ const help = `${result.stdout || ""}\n${result.stderr || ""}`;
1212
+ const lc = help.toLowerCase();
1213
+ kernels.dflash = /dflash/.test(lc);
1214
+ // The fork's CLI advertises tbq3_0/tbq4_0 as cache-type names (the
1215
+ // user-facing identifier for GGML_TYPE_TBQ3_0/_TBQ4_0). Also accept
1216
+ // the legacy `turbo3`/`turbo4` strings the original probe expected,
1217
+ // in case a future fork rev renames them back.
1218
+ kernels.turbo3 = /turbo3|tbq3_0/.test(lc);
1219
+ kernels.turbo4 = /turbo4|tbq4_0/.test(lc);
1220
+ kernels.turbo3_tcq = /turbo3[_-]?tcq|tcq|tbq3_tcq/.test(lc);
1221
+ kernels.qjl_full = /qjl[_-]?full|qjl|qjl1_256/.test(lc);
1222
+ kernels.polarquant = /polar(?:quant)?|q4[_-]?polar/.test(lc);
1223
+ // For Metal targets, also inspect default.metallib for kernel symbols.
1224
+ // This proves "the kernel is shipped", not that the kernel is reachable
1225
+ // from llama.cpp graph execution. The published `kernels` capability
1226
+ // map below intentionally stays dispatch-ready only; symbol-only
1227
+ // kernels are recorded in logs/README, not allowed to satisfy the
1228
+ // Eliza-1 runtime contract.
1229
+ if (backend === "metal") {
1230
+ const metallibPath = path.join(outDir, "default.metallib");
1231
+ if (fs.existsSync(metallibPath)) {
1232
+ const metallibBytes = fs.readFileSync(metallibPath);
1233
+ // .metallib is a Mach-O archive with embedded function names; a
1234
+ // straight buffer .indexOf works because the function names are
1235
+ // stored as zero-terminated C strings.
1236
+ const has = (sym) => metallibBytes.indexOf(sym) !== -1;
1237
+ if (has("kernel_turbo3_dot")) kernels.turbo3 = true;
1238
+ if (has("kernel_turbo4_dot")) kernels.turbo4 = true;
1239
+ if (has("kernel_turbo3_tcq_dot")) kernels.turbo3_tcq = true;
1240
+ if (
1241
+ has("kernel_attn_score_qjl1_256") ||
1242
+ has("kernel_get_rows_qjl1_256") ||
1243
+ has("kernel_mul_mv_qjl1_256_f32")
1244
+ ) {
1245
+ kernels.qjl_full = true;
1246
+ }
1247
+ if (
1248
+ has("kernel_get_rows_q4_polar") ||
1249
+ has("kernel_mul_mv_q4_polar_f32")
1250
+ ) {
1251
+ kernels.polarquant = true;
1252
+ }
1253
+ }
1254
+ }
1255
+ }
1256
+ } else {
1257
+ // Fall back to scanning compiled object files in the build directory.
1258
+ // Different backends emit different file extensions:
1259
+ // CUDA: ggml/src/ggml-cuda/<name>.cu.o
1260
+ // Metal: ggml/src/ggml-metal/<name>.metal.air (or .o for setup)
1261
+ // Vulkan: ggml/src/ggml-vulkan/<name>.cpp.o + compiled SPIR-V
1262
+ // CPU: ggml/src/ggml-cpu/<name>.cpp.o
1263
+ const objects = collectFilesUnder(buildDir, /\.(o|obj|air|spv)$/);
1264
+ const names = objects.join("\n").toLowerCase();
1265
+ // Per-backend kernels (CUDA/Metal/Vulkan emit per-kernel object files).
1266
+ kernels.dflash = /dflash|flash[-_]?attn[-_]?ext/.test(names);
1267
+ kernels.turbo3 = /turbo3/.test(names);
1268
+ kernels.turbo4 = /turbo4/.test(names);
1269
+ kernels.turbo3_tcq = /turbo3[-_]?tcq|tcq/.test(names);
1270
+ kernels.qjl_full = /qjl/.test(names);
1271
+ kernels.polarquant = /polar(?:quant)?|q4[-_]?polar/.test(names);
1272
+ // CPU build inlines the turbo quantization paths inside ggml-cpu and
1273
+ // links a single ggml-turbo-quant.c.o into ggml-base. Treat its presence
1274
+ // as evidence both turbo3 and turbo4 paths are compiled in. Likewise,
1275
+ // the fork wires DFlash through ggml-cpu's flash-attn entry, so dflash
1276
+ // is also implicit when ggml-turbo-quant is present on CPU targets.
1277
+ if (backend === "cpu" && /ggml-turbo-quant\.c\.o/.test(names)) {
1278
+ kernels.turbo3 = true;
1279
+ kernels.turbo4 = true;
1280
+ kernels.dflash = true;
1281
+ }
1282
+ // For non-CPU backends, presence of the backend's flash-attn unit is a
1283
+ // strong proxy for dflash (the fork hangs DFlash off the existing FA
1284
+ // kernel registration).
1285
+ if (
1286
+ !kernels.dflash &&
1287
+ (backend === "cuda" || backend === "vulkan" || backend === "metal") &&
1288
+ /(flash[-_]?attn|fattn)/.test(names)
1289
+ ) {
1290
+ kernels.dflash = true;
1291
+ }
1292
+ }
1293
+
1294
+ // Honesty gate: Metal/Vulkan standalone shaders can compile and be present
1295
+ // as symbols/pipelines while still being unreachable or semantically wrong
1296
+ // through generic llama.cpp ops. Do not let symbol presence satisfy
1297
+ // AGENTS.md §3. Flip these back to true only after dedicated ATTN_SCORE /
1298
+ // QJL projection / Polar get_rows dispatch is numerically verified.
1299
+ if (backend === "metal" || backend === "vulkan") {
1300
+ kernels.turbo3 = false;
1301
+ kernels.turbo4 = false;
1302
+ kernels.turbo3_tcq = false;
1303
+ kernels.qjl_full = false;
1304
+ kernels.polarquant = false;
1305
+ }
1306
+ return kernels;
1307
+ }
1308
+
1309
+ function canRunTargetOnHost(target) {
1310
+ const { platform, arch } = parseTarget(target);
1311
+ if (platform === "android" || platform === "ios") return false;
1312
+ if (platform === "windows" && process.platform !== "win32") return false;
1313
+ if (platform === "darwin" && process.platform !== "darwin") return false;
1314
+ if (platform === "linux" && process.platform !== "linux") return false;
1315
+ // arm64 (Apple, Windows, Android) and aarch64 (Linux) both map to
1316
+ // process.arch === "arm64" on Node. x64 maps to "x64".
1317
+ if ((arch === "arm64" || arch === "aarch64") && process.arch !== "arm64") {
1318
+ return false;
1319
+ }
1320
+ if (arch === "x64" && process.arch !== "x64") return false;
1321
+ return true;
1322
+ }
1323
+
1324
+ function collectFilesUnder(root, pattern) {
1325
+ const out = [];
1326
+ if (!fs.existsSync(root)) return out;
1327
+ const stack = [root];
1328
+ while (stack.length > 0) {
1329
+ const dir = stack.pop();
1330
+ let entries;
1331
+ try {
1332
+ entries = fs.readdirSync(dir, { withFileTypes: true });
1333
+ } catch {
1334
+ continue;
1335
+ }
1336
+ for (const entry of entries) {
1337
+ const full = path.join(dir, entry.name);
1338
+ if (entry.isDirectory()) stack.push(full);
1339
+ else if (entry.isFile() && pattern.test(entry.name)) out.push(full);
1340
+ }
1341
+ }
1342
+ return out;
1343
+ }
1344
+
1345
+ // Per AGENTS.md §3, every Eliza-1 bundle MUST run dflash + turbo3 + turbo4 +
1346
+ // qjl + polar. probeKernels() returns the per-target detection map; this gate
1347
+ // translates that into a hard failure when a required kernel is absent.
1348
+ //
1349
+ // Returns the list of missing-but-required kernels. An empty list means the
1350
+ // target satisfies the contract.
1351
+ function requiredKernelsMissing(target, kernels) {
1352
+ // Required for every shipped backend.
1353
+ const required = ["dflash", "turbo3", "turbo4", "qjl_full", "polarquant"];
1354
+ return required.filter((k) => !kernels[k]);
1355
+ }
1356
+
1357
+ function writeCapabilities({
1358
+ outDir,
1359
+ target,
1360
+ buildDir,
1361
+ forkCommit,
1362
+ binaries,
1363
+ omnivoice = null,
1364
+ }) {
1365
+ const { platform, arch, backend, fused } = parseTarget(target);
1366
+ const kernels = probeKernels(target, buildDir, outDir);
1367
+ const missing = requiredKernelsMissing(target, kernels);
1368
+ const capabilities = {
1369
+ target,
1370
+ platform,
1371
+ arch,
1372
+ backend,
1373
+ fused: Boolean(fused),
1374
+ builtAt: new Date().toISOString(),
1375
+ fork: "milady-ai/llama.cpp",
1376
+ forkCommit,
1377
+ kernels,
1378
+ binaries,
1379
+ omnivoice,
1380
+ };
1381
+ fs.writeFileSync(
1382
+ path.join(outDir, "CAPABILITIES.json"),
1383
+ `${JSON.stringify(capabilities, null, 2)}\n`,
1384
+ );
1385
+ if (missing.length > 0) {
1386
+ throw new Error(
1387
+ `[dflash-build] target=${target} missing required kernels: ${missing.join(", ")}. ` +
1388
+ `AGENTS.md §3 forbids shipping an Eliza-1 binary without the full ` +
1389
+ `dflash + turbo3 + turbo4 + qjl + polar kernel set. CAPABILITIES.json ` +
1390
+ `was written for diagnostic purposes only — the artifact is incomplete ` +
1391
+ `and must not be published. Inspect the build log for the failed ` +
1392
+ `patch hook or absent dispatch site, fix the root cause, and rebuild.`,
1393
+ );
1394
+ }
1395
+ return capabilities;
1396
+ }
1397
+
1398
+ function targetOutDir(target, override) {
1399
+ if (override) return override;
1400
+ return path.join(stateDir(), "local-inference", "bin", "dflash", target);
1401
+ }
1402
+
1403
+ function cmakeBuildTargetsFor(target) {
1404
+ const { platform, backend, fused } = parseTarget(target);
1405
+ const isIos = platform === "ios";
1406
+ const targets = isIos
1407
+ ? ["llama", "ggml", "ggml-base", "ggml-cpu", "ggml-metal"]
1408
+ : fused
1409
+ ? fusedCmakeBuildTargets()
1410
+ : ["llama-server", "llama-cli", "llama-speculative-simple"];
1411
+
1412
+ // The non-EMBED Metal CMakeLists creates an `add_custom_target(ggml-metal-lib
1413
+ // ALL DEPENDS .../default.metallib)` but `cmake --build --target X Y Z`
1414
+ // builds ONLY the listed targets and skips everything in ALL. Without
1415
+ // ggml-metal-lib in the explicit target list the metallib never gets
1416
+ // assembled and the Wave-5 milady-shipped/*.air merge step never fires.
1417
+ if (backend === "metal" && !isIos) {
1418
+ targets.push("ggml-metal-lib");
1419
+ }
1420
+
1421
+ return targets;
1422
+ }
1423
+
1424
+ // Build a single target. Returns the resulting CAPABILITIES.json object.
1425
+ function buildTarget({ target, args, ctx }) {
1426
+ const { platform, backend, fused } = parseTarget(target);
1427
+ const outDir = targetOutDir(target, args.outDirOverride);
1428
+ const buildDir = path.join(args.cacheDir, "build", target);
1429
+ const flags = cmakeFlagsForTarget(target, ctx);
1430
+
1431
+ // Fused targets graft omnivoice.cpp's `src/` + `tools/` into the
1432
+ // llama.cpp tree, append a CMake snippet that declares the fused
1433
+ // shared library + server, and add `-DMILADY_FUSE_OMNIVOICE=ON`.
1434
+ // The non-fused targets are unchanged.
1435
+ let omnivoiceInfo = null;
1436
+ if (fused) {
1437
+ if (args.dryRun) {
1438
+ console.log(
1439
+ `[dflash-build] (dry-run) target=${target} fused=true`,
1440
+ );
1441
+ console.log(
1442
+ ` prepareOmnivoiceFusion ref=${OMNIVOICE_REF} llamaCppRoot=${args.cacheDir}`,
1443
+ );
1444
+ console.log(
1445
+ ` appendCmakeGraft -> ${path.join(args.cacheDir, "CMakeLists.txt")}`,
1446
+ );
1447
+ } else {
1448
+ omnivoiceInfo = prepareOmnivoiceFusion({
1449
+ cacheRoot: path.dirname(args.cacheDir),
1450
+ llamaCppRoot: args.cacheDir,
1451
+ });
1452
+ const grafted = appendCmakeGraft({ llamaCppRoot: args.cacheDir });
1453
+ console.log(
1454
+ `[dflash-build] omnivoice-fuse: pin=${omnivoiceInfo.commit} ` +
1455
+ `ggmlSubmodule=${omnivoiceInfo.ggmlSubmoduleCommit} ` +
1456
+ `sources=${omnivoiceInfo.sourceCount} ` +
1457
+ `cmakeGraftAppended=${grafted}`,
1458
+ );
1459
+ }
1460
+ flags.push(...fusedExtraCmakeFlags());
1461
+ }
1462
+
1463
+ if (args.dryRun) {
1464
+ console.log(`[dflash-build] (dry-run) target=${target}`);
1465
+ // Dry-run still describes the kernel patches that WOULD be applied so
1466
+ // an audit can see the real behavior, not just the cmake invocation.
1467
+ // The patch helpers themselves treat dryRun=true as "log only, no fs
1468
+ // writes" so this is safe even when args.cacheDir doesn't yet exist
1469
+ // (we only run this branch when the dir does exist; the helpers throw
1470
+ // otherwise to surface that mismatch).
1471
+ if (fs.existsSync(args.cacheDir)) {
1472
+ applyForkPatches(args.cacheDir, backend, target, { dryRun: true });
1473
+ } else {
1474
+ console.log(
1475
+ ` (dry-run) skip patch hooks: ${args.cacheDir} not yet cloned`,
1476
+ );
1477
+ }
1478
+ console.log(
1479
+ ` cmake -B ${buildDir} ${flags.join(" ")}`.replace(/ +/g, " "),
1480
+ );
1481
+ const dryTargets = cmakeBuildTargetsFor(target);
1482
+ const isDryRunMultiConfig = platform === "windows" || platform === "ios";
1483
+ console.log(
1484
+ ` cmake --build ${buildDir}${isDryRunMultiConfig ? " --config Release" : ""} --target ${dryTargets.join(" ")} -j ${args.jobs}`,
1485
+ );
1486
+ console.log(` install -> ${outDir}`);
1487
+ return null;
1488
+ }
1489
+
1490
+ console.log(`[dflash-build] building target=${target}`);
1491
+ applyForkPatches(args.cacheDir, backend, target);
1492
+
1493
+ fs.mkdirSync(buildDir, { recursive: true });
1494
+ run("cmake", ["-B", buildDir, ...flags], { cwd: args.cacheDir });
1495
+
1496
+ // iOS targets emit a static archive used by the Capacitor xcframework
1497
+ // patch; everything else builds the executables we use directly on host.
1498
+ // Fused targets additionally build omnivoice-core, libelizainference,
1499
+ // and the stub fused server.
1500
+ const isIos = platform === "ios";
1501
+ const cmakeBuildTargets = cmakeBuildTargetsFor(target);
1502
+
1503
+ // MSVC + Xcode are multi-config generators — cmake --build needs an
1504
+ // explicit --config flag, otherwise it defaults to Debug and the install
1505
+ // step below looks in the wrong subdir. Use Release for runtime perf.
1506
+ const isMultiConfig = platform === "windows" || platform === "ios";
1507
+ run(
1508
+ "cmake",
1509
+ [
1510
+ "--build",
1511
+ buildDir,
1512
+ ...(isMultiConfig ? ["--config", "Release"] : []),
1513
+ "--target",
1514
+ ...cmakeBuildTargets,
1515
+ "-j",
1516
+ String(args.jobs),
1517
+ ],
1518
+ { cwd: args.cacheDir },
1519
+ );
1520
+
1521
+ fs.mkdirSync(outDir, { recursive: true });
1522
+
1523
+ const installedNames = [];
1524
+ const installedBaseNames = [];
1525
+ if (isIos) {
1526
+ // Collect every static archive produced by the iOS build into the output
1527
+ // directory. The Capacitor patch script glues these into a single
1528
+ // LlamaCpp.framework alongside the public headers.
1529
+ const archives = collectFilesUnder(buildDir, /\.a$/);
1530
+ for (const archive of archives) {
1531
+ const name = path.basename(archive);
1532
+ fs.copyFileSync(archive, path.join(outDir, name));
1533
+ installedNames.push(name);
1534
+ installedBaseNames.push(name.replace(/^lib|\.a$/g, ""));
1535
+ }
1536
+ // Stage the headers needed by cap-bridge.cpp / the public llama.cpp API
1537
+ // so the xcframework patch can include them under
1538
+ // LlamaCpp.framework/Headers/. Mirrors what packages/app-core/patches/
1539
+ // llama-cpp-capacitor@0.1.5.patch's `ios/CMakeLists*.txt` PUBLIC_HEADERS
1540
+ // list expects.
1541
+ const headerOut = path.join(outDir, "include");
1542
+ fs.mkdirSync(headerOut, { recursive: true });
1543
+ const headerSources = [
1544
+ path.join(args.cacheDir, "include", "llama.h"),
1545
+ path.join(args.cacheDir, "ggml", "include", "ggml.h"),
1546
+ path.join(args.cacheDir, "ggml", "include", "ggml-alloc.h"),
1547
+ path.join(args.cacheDir, "ggml", "include", "ggml-backend.h"),
1548
+ path.join(args.cacheDir, "ggml", "include", "ggml-cpu.h"),
1549
+ path.join(args.cacheDir, "ggml", "include", "ggml-metal.h"),
1550
+ ];
1551
+ for (const src of headerSources) {
1552
+ if (fs.existsSync(src)) {
1553
+ fs.copyFileSync(src, path.join(headerOut, path.basename(src)));
1554
+ }
1555
+ }
1556
+ // Stage the embedded Metal library if the build produced one.
1557
+ for (const candidate of collectFilesUnder(buildDir, /\.metallib$/)) {
1558
+ fs.copyFileSync(candidate, path.join(outDir, path.basename(candidate)));
1559
+ }
1560
+ } else {
1561
+ // MSVC and Xcode are multi-config generators: binaries land in
1562
+ // bin/Release/ (or bin/Debug/ when --config Release is missing). Resolve
1563
+ // the actual directory by preferring Release, then Debug, then the
1564
+ // single-config layout used by Ninja / Unix Makefiles on macOS/Linux.
1565
+ const binDirCandidates = [
1566
+ path.join(buildDir, "bin", "Release"),
1567
+ path.join(buildDir, "bin", "Debug"),
1568
+ path.join(buildDir, "bin"),
1569
+ ];
1570
+ const binDir =
1571
+ binDirCandidates.find((p) => fs.existsSync(p)) ?? binDirCandidates[2];
1572
+ const executableNames = [
1573
+ "llama-server",
1574
+ "llama-cli",
1575
+ "llama-speculative-simple",
1576
+ // Stub fused server emitted only when target is in FUSED_TARGETS.
1577
+ // Adding it unconditionally is harmless: the install loop only
1578
+ // copies a binary when it actually exists in binDir.
1579
+ ...(fused ? ["llama-omnivoice-server"] : []),
1580
+ ];
1581
+ // Cross-compiled binaries can have a host-specific suffix (.exe). Match
1582
+ // by base name so Windows builds still install the right files.
1583
+ if (fs.existsSync(binDir)) {
1584
+ for (const name of fs.readdirSync(binDir)) {
1585
+ const base = name.replace(/\.(exe)$/i, "");
1586
+ if (executableNames.includes(base) || isRuntimeLibrary(name)) {
1587
+ installedNames.push(name);
1588
+ }
1589
+ }
1590
+ }
1591
+ for (const name of installedNames) {
1592
+ const src = path.join(binDir, name);
1593
+ const dst = path.join(outDir, name);
1594
+ fs.copyFileSync(src, dst);
1595
+ if (executableNames.includes(name.replace(/\.(exe)$/i, ""))) {
1596
+ fs.chmodSync(dst, 0o755);
1597
+ }
1598
+ }
1599
+
1600
+ // Darwin Metal builds (non-EMBED, see cmakeFlagsForTarget) emit
1601
+ // default.metallib alongside the runtime libraries in binDir. The
1602
+ // metallib must ship next to llama-server because Metal looks for it
1603
+ // via dlopen-style loader_path resolution (the binary's directory).
1604
+ if (platform === "darwin" && backend === "metal") {
1605
+ const metallibCandidate = path.join(binDir, "default.metallib");
1606
+ if (!fs.existsSync(metallibCandidate)) {
1607
+ throw new Error(
1608
+ `[dflash-build] expected default.metallib at ${metallibCandidate} ` +
1609
+ `for ${target} — the non-EMBED metallib build did not produce it. ` +
1610
+ `Inspect the cmake build log for failures in the milady-shipped/ ` +
1611
+ `xcrun metal compile steps.`,
1612
+ );
1613
+ }
1614
+ const metallibDst = path.join(outDir, "default.metallib");
1615
+ fs.copyFileSync(metallibCandidate, metallibDst);
1616
+ installedNames.push("default.metallib");
1617
+ console.log(
1618
+ `[dflash-build] installed default.metallib (${fs.statSync(metallibDst).size} bytes) -> ${outDir}`,
1619
+ );
1620
+ }
1621
+
1622
+ const ggufPySrc = path.join(args.cacheDir, "gguf-py");
1623
+ const ggufPyDst = path.join(outDir, "gguf-py");
1624
+ if (fs.existsSync(ggufPySrc)) {
1625
+ fs.rmSync(ggufPyDst, { recursive: true, force: true });
1626
+ fs.cpSync(ggufPySrc, ggufPyDst, { recursive: true });
1627
+ }
1628
+ makeDarwinInstallSelfContained(outDir, installedNames, binDir);
1629
+
1630
+ for (const name of installedNames) {
1631
+ const base = name.replace(/\.(exe)$/i, "");
1632
+ if (executableNames.includes(base)) installedBaseNames.push(base);
1633
+ }
1634
+ }
1635
+
1636
+ // For fused targets, prove that BOTH llama_* and omnivoice_* symbol
1637
+ // families landed in the produced shared library. Per
1638
+ // packages/inference/AGENTS.md §3, missing fusion is a hard error
1639
+ // with no fallback.
1640
+ let omnivoiceVerification = null;
1641
+ if (fused) {
1642
+ omnivoiceVerification = verifyFusedSymbols({ outDir, target });
1643
+ console.log(
1644
+ `[dflash-build] omnivoice-fuse symbol-verify: ` +
1645
+ `library=${omnivoiceVerification.library} ` +
1646
+ `llama=${omnivoiceVerification.llamaSymbolCount} ` +
1647
+ `omnivoice=${omnivoiceVerification.omnivoiceSymbolCount}`,
1648
+ );
1649
+ }
1650
+
1651
+ const capabilities = writeCapabilities({
1652
+ outDir,
1653
+ target,
1654
+ buildDir,
1655
+ forkCommit: ctx.forkCommit,
1656
+ binaries: installedBaseNames,
1657
+ omnivoice:
1658
+ fused && omnivoiceInfo
1659
+ ? {
1660
+ ref: omnivoiceInfo.ref,
1661
+ commit: omnivoiceInfo.commit,
1662
+ ggmlSubmoduleCommit: omnivoiceInfo.ggmlSubmoduleCommit,
1663
+ ggmlReconciliation: "graft-strip-submodule",
1664
+ sourceCount: omnivoiceInfo.sourceCount,
1665
+ appliedPatches: omnivoiceInfo.appliedPatches,
1666
+ verification: omnivoiceVerification,
1667
+ }
1668
+ : null,
1669
+ });
1670
+ console.log(
1671
+ `[dflash-build] installed ${target} binaries to ${outDir} (kernels: ${Object.entries(
1672
+ capabilities.kernels,
1673
+ )
1674
+ .filter(([, v]) => v)
1675
+ .map(([k]) => k)
1676
+ .join(", ") || "none"})`,
1677
+ );
1678
+ return capabilities;
1679
+ }
1680
+
1681
+ function build(args) {
1682
+ if (!has("git")) throw new Error("git is required");
1683
+ if (!has("cmake")) throw new Error("cmake is required");
1684
+
1685
+ // Build host context once for compatibility checks and toolchain wiring.
1686
+ const androidNdk = resolveAndroidNdk();
1687
+ // Decide whether any Vulkan target is in scope. We only fetch the
1688
+ // Khronos header repos when needed — cheap, but pointless otherwise.
1689
+ const willBuildVulkan =
1690
+ args.all ||
1691
+ (args.targets &&
1692
+ args.targets.some(
1693
+ (t) => t.endsWith("-vulkan") || t.endsWith("-vulkan-fused"),
1694
+ )) ||
1695
+ (!args.targets && (args.backend ?? detectBackend()) === "vulkan");
1696
+ // Same idea for the Windows cross path — only probe + write the
1697
+ // mingw-w64 toolchain file when at least one windows-x64 target is
1698
+ // queued. windows-arm64 targets do NOT trigger mingw probing because
1699
+ // the bundled discovery only handles x86_64-w64-mingw32; arm64 needs
1700
+ // either a native MSVC arm64 host or a user-supplied
1701
+ // MINGW_TOOLCHAIN_FILE pointing at clang/LLVM aarch64-w64-mingw32.
1702
+ const willBuildWindows =
1703
+ args.all ||
1704
+ (args.targets && args.targets.some((t) => t.startsWith("windows-x64-"))) ||
1705
+ (!args.targets &&
1706
+ process.platform !== "win32" &&
1707
+ (args.backend ?? detectBackend()) === "cpu" &&
1708
+ false); /* never auto-trigger for legacy mode on non-windows hosts */
1709
+ const mingw =
1710
+ willBuildWindows && process.platform !== "win32"
1711
+ ? findMingwToolchain()
1712
+ : null;
1713
+ const ctx = {
1714
+ androidNdk,
1715
+ androidVulkanInclude: findAndroidVulkanInclude(androidNdk),
1716
+ glslc: findGlslc(androidNdk),
1717
+ vulkanHpp: willBuildVulkan ? safelyPrepareVulkanHeaders() : null,
1718
+ mingw,
1719
+ mingwToolchainFile: mingw ? writeMingwToolchainFile({ mingw }) : null,
1720
+ forkCommit: "",
1721
+ };
1722
+
1723
+ // Decide the target list.
1724
+ let targets;
1725
+ if (args.all) {
1726
+ targets = SUPPORTED_TARGETS.slice();
1727
+ } else if (args.targets && args.targets.length > 0) {
1728
+ targets = args.targets.slice();
1729
+ } else {
1730
+ // Legacy single-target mode.
1731
+ const backend = args.backend || detectBackend();
1732
+ const platform =
1733
+ process.platform === "win32" ? "windows" : process.platform;
1734
+ const arch = nodeArchToTripleArch(platform);
1735
+ const legacyTarget = `${platform}-${arch}-${backend}`;
1736
+ targets = [legacyTarget];
1737
+ if (!SUPPORTED_TARGETS.includes(legacyTarget)) {
1738
+ throw new Error(
1739
+ `[dflash-build] legacy backend produced unsupported target ${legacyTarget}; ` +
1740
+ `pass --target explicitly with one of: ${SUPPORTED_TARGETS.join(", ")}`,
1741
+ );
1742
+ }
1743
+ }
1744
+
1745
+ if (!args.dryRun) {
1746
+ if (args.targets && args.targets.length > 0 && !args.all) {
1747
+ for (const target of targets) {
1748
+ const compat = targetCompatibility(target, ctx);
1749
+ if (!compat.ok) {
1750
+ throw new Error(
1751
+ `target ${target} is not buildable: ${compat.reason}`,
1752
+ );
1753
+ }
1754
+ }
1755
+ }
1756
+ ctx.forkCommit = ensureCheckout(args.cacheDir, args.ref);
1757
+ } else if (fs.existsSync(path.join(args.cacheDir, ".git"))) {
1758
+ ctx.forkCommit = run("git", ["rev-parse", "HEAD"], {
1759
+ cwd: args.cacheDir,
1760
+ capture: true,
1761
+ });
1762
+ }
1763
+
1764
+ const built = [];
1765
+ const skipped = []; // host-incompat — soft skip
1766
+ const failed = []; // real failures — hard fail at end
1767
+ for (const target of targets) {
1768
+ const compat = targetCompatibility(target, ctx);
1769
+ if (!compat.ok) {
1770
+ console.log(
1771
+ `[dflash-build] skip target=${target}: ${compat.reason}`,
1772
+ );
1773
+ skipped.push({ target, reason: compat.reason });
1774
+ if (args.targets && args.targets.length > 0 && !args.all) {
1775
+ // Explicit single --target should fail loudly rather than silently skip.
1776
+ throw new Error(
1777
+ `target ${target} is not buildable on this host: ${compat.reason}`,
1778
+ );
1779
+ }
1780
+ continue;
1781
+ }
1782
+ try {
1783
+ const capabilities = buildTarget({ target, args, ctx });
1784
+ built.push({ target, capabilities });
1785
+ } catch (err) {
1786
+ const message = err instanceof Error ? err.message : String(err);
1787
+ if (args.all) {
1788
+ console.error(`[dflash-build] target=${target} failed: ${message}`);
1789
+ // In --all mode we collect failures rather than tear down the whole
1790
+ // run on the first error, so a partial green can still produce
1791
+ // diagnostic CAPABILITIES.json files. But unlike host-incompat skips
1792
+ // (Linux on macOS, etc.) these are REAL failures — the run as a
1793
+ // whole must exit non-zero. failed[] is checked at the bottom.
1794
+ failed.push({ target, reason: `build failed: ${message}` });
1795
+ } else {
1796
+ throw err;
1797
+ }
1798
+ }
1799
+ }
1800
+
1801
+ if (args.dryRun) {
1802
+ console.log(
1803
+ `[dflash-build] dry-run: ${targets.length - skipped.length - failed.length} targets queued, ${skipped.length} host-incompat-skipped, ${failed.length} would-fail`,
1804
+ );
1805
+ } else {
1806
+ console.log(
1807
+ `[dflash-build] done. built=${built.length} host-incompat-skipped=${skipped.length} failed=${failed.length}`,
1808
+ );
1809
+ console.log(
1810
+ `[dflash-build] set ELIZA_DFLASH_ENABLED=1 to force this backend, or leave it unset for auto-detect from the managed path.`,
1811
+ );
1812
+ }
1813
+ if (failed.length > 0) {
1814
+ // Per AGENTS.md §3 + the build-script audit: --all mode must NOT exit 0
1815
+ // when any target failed for a real reason. host-incompat skips (Linux
1816
+ // on macOS, etc.) remain a soft skip; everything else is fatal.
1817
+ throw new Error(
1818
+ `[dflash-build] ${failed.length} target(s) failed: ` +
1819
+ failed.map((f) => `${f.target} (${f.reason})`).join("; "),
1820
+ );
1821
+ }
1822
+ }
1823
+
1824
+ try {
1825
+ build(parseArgs(process.argv.slice(2)));
1826
+ } catch (err) {
1827
+ console.error(
1828
+ `[dflash-build] ${err instanceof Error ? err.message : String(err)}`,
1829
+ );
1830
+ process.exit(1);
1831
+ }