@elizaos/plugin-local-inference 2.0.3-beta.2 → 2.0.3-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (881) hide show
  1. package/README.md +84 -10
  2. package/dist/actions/generate-media.d.ts.map +1 -0
  3. package/dist/actions/identify-speaker.d.ts.map +1 -0
  4. package/dist/actions/transcription-control.d.ts.map +1 -0
  5. package/dist/adapters/capacitor-llama/environment.d.ts +12 -0
  6. package/dist/adapters/capacitor-llama/environment.d.ts.map +1 -0
  7. package/dist/adapters/capacitor-llama/index.browser.d.ts +9 -0
  8. package/dist/adapters/capacitor-llama/index.browser.d.ts.map +1 -0
  9. package/dist/adapters/capacitor-llama/index.d.ts +18 -0
  10. package/dist/adapters/capacitor-llama/index.d.ts.map +1 -0
  11. package/dist/adapters/capacitor-llama/loader.d.ts +35 -0
  12. package/dist/adapters/capacitor-llama/loader.d.ts.map +1 -0
  13. package/dist/adapters/capacitor-llama/native-voice-capture.d.ts +70 -0
  14. package/dist/adapters/capacitor-llama/native-voice-capture.d.ts.map +1 -0
  15. package/dist/adapters/capacitor-llama/structured-output.d.ts +62 -0
  16. package/dist/adapters/capacitor-llama/structured-output.d.ts.map +1 -0
  17. package/dist/adapters/capacitor-llama/text-streaming.d.ts +24 -0
  18. package/dist/adapters/capacitor-llama/text-streaming.d.ts.map +1 -0
  19. package/dist/adapters/capacitor-llama/types.d.ts +338 -0
  20. package/dist/adapters/capacitor-llama/types.d.ts.map +1 -0
  21. package/dist/adapters/capacitor-llama/voice-turn.d.ts +86 -0
  22. package/dist/adapters/capacitor-llama/voice-turn.d.ts.map +1 -0
  23. package/dist/backends/apple-foundation.d.ts +56 -0
  24. package/dist/backends/apple-foundation.d.ts.map +1 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +39647 -0
  27. package/dist/index.js.map +217 -0
  28. package/{src → dist}/local-inference-routes.d.ts +9 -0
  29. package/dist/local-inference-routes.d.ts.map +1 -0
  30. package/dist/provider.d.ts.map +1 -0
  31. package/{src → dist}/routes/compat-helpers.d.ts +1 -1
  32. package/dist/routes/compat-helpers.d.ts.map +1 -0
  33. package/dist/routes/family-member-route.d.ts.map +1 -0
  34. package/{src → dist}/routes/index.d.ts +1 -0
  35. package/dist/routes/index.d.ts.map +1 -0
  36. package/dist/routes/index.js +42040 -0
  37. package/dist/routes/index.js.map +236 -0
  38. package/{src → dist}/routes/live-diarization-route.d.ts +7 -0
  39. package/dist/routes/live-diarization-route.d.ts.map +1 -0
  40. package/dist/routes/local-inference-asr-route.d.ts.map +1 -0
  41. package/dist/routes/local-inference-asr-transcribe.d.ts.map +1 -0
  42. package/dist/routes/local-inference-compat-routes.d.ts.map +1 -0
  43. package/dist/routes/local-inference-tts-route.d.ts.map +1 -0
  44. package/dist/routes/native-pcm-turn-route.d.ts +3 -0
  45. package/dist/routes/native-pcm-turn-route.d.ts.map +1 -0
  46. package/dist/routes/transcript-audio-store.d.ts.map +1 -0
  47. package/{src → dist}/routes/transcripts-routes.d.ts +8 -0
  48. package/dist/routes/transcripts-routes.d.ts.map +1 -0
  49. package/dist/routes/voice-first-run-routes.d.ts.map +1 -0
  50. package/dist/routes/voice-models-routes.d.ts.map +1 -0
  51. package/dist/routes/voice-profile-plugin-routes.d.ts.map +1 -0
  52. package/dist/routes/voice-profiles-management-routes.d.ts.map +1 -0
  53. package/dist/routes/voice-speaker-profile-routes.d.ts.map +1 -0
  54. package/dist/runtime/embedding-manager-support.d.ts.map +1 -0
  55. package/dist/runtime/embedding-presets.d.ts.map +1 -0
  56. package/dist/runtime/embedding-warmup-policy.d.ts.map +1 -0
  57. package/{src → dist}/runtime/ensure-local-inference-handler.d.ts +8 -0
  58. package/dist/runtime/ensure-local-inference-handler.d.ts.map +1 -0
  59. package/{src → dist}/runtime/index.d.ts +1 -1
  60. package/dist/runtime/index.d.ts.map +1 -0
  61. package/dist/runtime/index.js +38768 -0
  62. package/dist/runtime/index.js.map +217 -0
  63. package/dist/runtime/mobile-local-inference-gate.d.ts +63 -0
  64. package/dist/runtime/mobile-local-inference-gate.d.ts.map +1 -0
  65. package/{src → dist}/runtime/voice-entity-binding.d.ts +10 -0
  66. package/dist/runtime/voice-entity-binding.d.ts.map +1 -0
  67. package/{src → dist}/services/active-model.d.ts +28 -0
  68. package/dist/services/active-model.d.ts.map +1 -0
  69. package/dist/services/asr-provenance.d.ts +5 -0
  70. package/dist/services/asr-provenance.d.ts.map +1 -0
  71. package/{src → dist}/services/assignments.d.ts +16 -3
  72. package/dist/services/assignments.d.ts.map +1 -0
  73. package/dist/services/backend-selector.d.ts +55 -0
  74. package/dist/services/backend-selector.d.ts.map +1 -0
  75. package/{src → dist}/services/backend.d.ts +110 -16
  76. package/dist/services/backend.d.ts.map +1 -0
  77. package/{src → dist}/services/bionic-host-loader.d.ts +21 -0
  78. package/dist/services/bionic-host-loader.d.ts.map +1 -0
  79. package/dist/services/bundled-models.d.ts.map +1 -0
  80. package/dist/services/cache-bridge.d.ts.map +1 -0
  81. package/dist/services/catalog.d.ts +10 -0
  82. package/dist/services/catalog.d.ts.map +1 -0
  83. package/dist/services/checkpoint-client.d.ts.map +1 -0
  84. package/dist/services/checkpoint-manager.d.ts +217 -0
  85. package/dist/services/checkpoint-manager.d.ts.map +1 -0
  86. package/dist/services/cloud-fallback.d.ts.map +1 -0
  87. package/dist/services/context-fit.d.ts +36 -0
  88. package/dist/services/context-fit.d.ts.map +1 -0
  89. package/dist/services/conversation-registry.d.ts.map +1 -0
  90. package/{src → dist}/services/desktop-fused-ffi-backend-runtime.d.ts +22 -6
  91. package/dist/services/desktop-fused-ffi-backend-runtime.d.ts.map +1 -0
  92. package/dist/services/device-bridge.d.ts.map +1 -0
  93. package/dist/services/device-resource-metrics.d.ts.map +1 -0
  94. package/{src → dist}/services/device-tier.d.ts +19 -1
  95. package/dist/services/device-tier.d.ts.map +1 -0
  96. package/{src → dist}/services/downloader.d.ts +16 -4
  97. package/dist/services/downloader.d.ts.map +1 -0
  98. package/{src → dist}/services/engine.d.ts +43 -4
  99. package/dist/services/engine.d.ts.map +1 -0
  100. package/dist/services/ensure-local-artifacts.d.ts +82 -0
  101. package/dist/services/ensure-local-artifacts.d.ts.map +1 -0
  102. package/dist/services/external-scanner.d.ts.map +1 -0
  103. package/dist/services/ffi-llm-mock.d.ts +90 -0
  104. package/dist/services/ffi-llm-mock.d.ts.map +1 -0
  105. package/dist/services/ffi-llm-streaming-abi.d.ts +318 -0
  106. package/dist/services/ffi-llm-streaming-abi.d.ts.map +1 -0
  107. package/{src → dist}/services/ffi-streaming-backend.d.ts +28 -7
  108. package/dist/services/ffi-streaming-backend.d.ts.map +1 -0
  109. package/{src → dist}/services/ffi-streaming-runner.d.ts +24 -0
  110. package/dist/services/ffi-streaming-runner.d.ts.map +1 -0
  111. package/dist/services/gpu-autotune.d.ts +150 -0
  112. package/dist/services/gpu-autotune.d.ts.map +1 -0
  113. package/dist/services/gpu-detect.d.ts.map +1 -0
  114. package/dist/services/handler-registry.d.ts.map +1 -0
  115. package/dist/services/hardware.d.ts.map +1 -0
  116. package/dist/services/image-description-runtime.d.ts.map +1 -0
  117. package/dist/services/imagegen/aosp-unavailable.d.ts.map +1 -0
  118. package/dist/services/imagegen/backend-selector.d.ts.map +1 -0
  119. package/dist/services/imagegen/coreml-unavailable.d.ts.map +1 -0
  120. package/dist/services/imagegen/errors.d.ts.map +1 -0
  121. package/dist/services/imagegen/index.d.ts.map +1 -0
  122. package/dist/services/imagegen/mflux.d.ts.map +1 -0
  123. package/{src → dist}/services/imagegen/sd-cpp.d.ts +1 -0
  124. package/dist/services/imagegen/sd-cpp.d.ts.map +1 -0
  125. package/dist/services/imagegen/tensorrt-unavailable.d.ts.map +1 -0
  126. package/dist/services/imagegen/types.d.ts.map +1 -0
  127. package/{src → dist}/services/index.d.ts +3 -1
  128. package/dist/services/index.d.ts.map +1 -0
  129. package/dist/services/index.js +39453 -0
  130. package/dist/services/index.js.map +227 -0
  131. package/dist/services/inference-capabilities.d.ts.map +1 -0
  132. package/dist/services/inference-telemetry.d.ts.map +1 -0
  133. package/dist/services/ios-llama-streaming.d.ts +119 -0
  134. package/dist/services/ios-llama-streaming.d.ts.map +1 -0
  135. package/dist/services/kv-spill.d.ts.map +1 -0
  136. package/dist/services/latency-trace.d.ts.map +1 -0
  137. package/dist/services/lib-target.d.ts +55 -0
  138. package/dist/services/lib-target.d.ts.map +1 -0
  139. package/dist/services/live-signals.d.ts +86 -0
  140. package/dist/services/live-signals.d.ts.map +1 -0
  141. package/dist/services/llama-server-metrics.d.ts +114 -0
  142. package/dist/services/llama-server-metrics.d.ts.map +1 -0
  143. package/dist/services/llm-streaming-binding.d.ts.map +1 -0
  144. package/dist/services/load-args.d.ts.map +1 -0
  145. package/dist/services/manifest/index.d.ts +4 -0
  146. package/dist/services/manifest/index.d.ts.map +1 -0
  147. package/{src → dist}/services/manifest/schema.d.ts +196 -6
  148. package/dist/services/manifest/schema.d.ts.map +1 -0
  149. package/{src → dist}/services/manifest/types.d.ts +3 -1
  150. package/dist/services/manifest/types.d.ts.map +1 -0
  151. package/dist/services/manifest/validator.d.ts.map +1 -0
  152. package/{src → dist}/services/memory-arbiter.d.ts +33 -3
  153. package/dist/services/memory-arbiter.d.ts.map +1 -0
  154. package/dist/services/memory-benchmark.d.ts +76 -0
  155. package/dist/services/memory-benchmark.d.ts.map +1 -0
  156. package/{src → dist}/services/memory-monitor.d.ts +6 -0
  157. package/dist/services/memory-monitor.d.ts.map +1 -0
  158. package/dist/services/memory-pressure.d.ts.map +1 -0
  159. package/dist/services/mtp-doctor.d.ts.map +1 -0
  160. package/dist/services/network-policy.d.ts.map +1 -0
  161. package/dist/services/paths.d.ts.map +1 -0
  162. package/dist/services/planner-skeleton.d.ts.map +1 -0
  163. package/dist/services/providers.d.ts.map +1 -0
  164. package/dist/services/ram-budget.d.ts.map +1 -0
  165. package/dist/services/readiness.d.ts.map +1 -0
  166. package/dist/services/recommendation.d.ts.map +1 -0
  167. package/{src → dist}/services/registry.d.ts +11 -13
  168. package/dist/services/registry.d.ts.map +1 -0
  169. package/{src → dist}/services/router-handler.d.ts +2 -2
  170. package/dist/services/router-handler.d.ts.map +1 -0
  171. package/{src → dist}/services/routing-policy.d.ts +32 -9
  172. package/dist/services/routing-policy.d.ts.map +1 -0
  173. package/dist/services/routing-preferences.d.ts.map +1 -0
  174. package/dist/services/runtime-target.d.ts.map +1 -0
  175. package/{src → dist}/services/service.d.ts +1 -1
  176. package/dist/services/service.d.ts.map +1 -0
  177. package/dist/services/session-pool.d.ts.map +1 -0
  178. package/dist/services/structured-output/deterministic-repair.d.ts.map +1 -0
  179. package/dist/services/structured-output/index.d.ts +2 -0
  180. package/dist/services/structured-output/index.d.ts.map +1 -0
  181. package/dist/services/structured-output.d.ts.map +1 -0
  182. package/dist/services/system-memory.d.ts.map +1 -0
  183. package/{src → dist}/services/types.d.ts +1 -1
  184. package/dist/services/types.d.ts.map +1 -0
  185. package/dist/services/verify-on-device.d.ts.map +1 -0
  186. package/dist/services/verify.d.ts.map +1 -0
  187. package/dist/services/vision/aosp-unavailable.d.ts.map +1 -0
  188. package/dist/services/vision/capacitor-llama.d.ts.map +1 -0
  189. package/dist/services/vision/cloud-fallback.d.ts.map +1 -0
  190. package/dist/services/vision/hash.d.ts.map +1 -0
  191. package/{src → dist}/services/vision/index.d.ts +1 -1
  192. package/dist/services/vision/index.d.ts.map +1 -0
  193. package/dist/services/vision/llama-server.d.ts.map +1 -0
  194. package/{src → dist}/services/vision/types.d.ts +13 -4
  195. package/dist/services/vision/types.d.ts.map +1 -0
  196. package/dist/services/vision/vast-fallback.d.ts.map +1 -0
  197. package/{src → dist}/services/vision-embedding-cache.d.ts +1 -1
  198. package/dist/services/vision-embedding-cache.d.ts.map +1 -0
  199. package/dist/services/voice/__test-helpers__/fake-ffi.d.ts +27 -0
  200. package/dist/services/voice/__test-helpers__/fake-ffi.d.ts.map +1 -0
  201. package/dist/services/voice/__test-helpers__/synthetic-speech.d.ts +66 -0
  202. package/dist/services/voice/__test-helpers__/synthetic-speech.d.ts.map +1 -0
  203. package/dist/services/voice/acoustic-speaker-attribution.d.ts +61 -0
  204. package/dist/services/voice/acoustic-speaker-attribution.d.ts.map +1 -0
  205. package/{src → dist}/services/voice/audio-frame-consumer.d.ts +82 -0
  206. package/dist/services/voice/audio-frame-consumer.d.ts.map +1 -0
  207. package/dist/services/voice/barge-in.d.ts.map +1 -0
  208. package/dist/services/voice/cancellation-coordinator.d.ts.map +1 -0
  209. package/dist/services/voice/checkpoint-manager.d.ts.map +1 -0
  210. package/dist/services/voice/checkpoint-policy.d.ts +178 -0
  211. package/dist/services/voice/checkpoint-policy.d.ts.map +1 -0
  212. package/dist/services/voice/corpus-augment.d.ts +111 -0
  213. package/dist/services/voice/corpus-augment.d.ts.map +1 -0
  214. package/dist/services/voice/corpus-generator.d.ts +134 -0
  215. package/dist/services/voice/corpus-generator.d.ts.map +1 -0
  216. package/dist/services/voice/diarization-error-rate.d.ts +40 -0
  217. package/dist/services/voice/diarization-error-rate.d.ts.map +1 -0
  218. package/dist/services/voice/e2e-harness.d.ts +297 -0
  219. package/dist/services/voice/e2e-harness.d.ts.map +1 -0
  220. package/dist/services/voice/eager-context-builder.d.ts.map +1 -0
  221. package/dist/services/voice/echo-delay.d.ts +67 -0
  222. package/dist/services/voice/echo-delay.d.ts.map +1 -0
  223. package/dist/services/voice/echo-metrics.d.ts +7 -0
  224. package/dist/services/voice/echo-metrics.d.ts.map +1 -0
  225. package/dist/services/voice/echo-reference-buffer.d.ts +65 -0
  226. package/dist/services/voice/echo-reference-buffer.d.ts.map +1 -0
  227. package/{src → dist}/services/voice/eliza1-eot-scorer.d.ts +8 -8
  228. package/dist/services/voice/eliza1-eot-scorer.d.ts.map +1 -0
  229. package/dist/services/voice/embedding-server.d.ts +37 -0
  230. package/dist/services/voice/embedding-server.d.ts.map +1 -0
  231. package/{src → dist}/services/voice/embedding.d.ts +2 -3
  232. package/dist/services/voice/embedding.d.ts.map +1 -0
  233. package/dist/services/voice/emotion-attribution.d.ts.map +1 -0
  234. package/{src → dist}/services/voice/engine-bridge.d.ts +8 -5
  235. package/dist/services/voice/engine-bridge.d.ts.map +1 -0
  236. package/{src → dist}/services/voice/eot-classifier-ggml.d.ts +22 -22
  237. package/dist/services/voice/eot-classifier-ggml.d.ts.map +1 -0
  238. package/{src → dist}/services/voice/eot-classifier.d.ts +9 -12
  239. package/dist/services/voice/eot-classifier.d.ts.map +1 -0
  240. package/{src → dist}/services/voice/errors.d.ts +1 -1
  241. package/dist/services/voice/errors.d.ts.map +1 -0
  242. package/{src → dist}/services/voice/expressive-tags.d.ts +5 -5
  243. package/dist/services/voice/expressive-tags.d.ts.map +1 -0
  244. package/{src → dist}/services/voice/ffi-bindings.d.ts +26 -4
  245. package/dist/services/voice/ffi-bindings.d.ts.map +1 -0
  246. package/dist/services/voice/first-line-cache.d.ts.map +1 -0
  247. package/{src → dist}/services/voice/fused-eot-scorer.d.ts +6 -6
  248. package/dist/services/voice/fused-eot-scorer.d.ts.map +1 -0
  249. package/{src → dist}/services/voice/index.d.ts +8 -3
  250. package/dist/services/voice/index.d.ts.map +1 -0
  251. package/dist/services/voice/kokoro/index.d.ts +24 -0
  252. package/dist/services/voice/kokoro/index.d.ts.map +1 -0
  253. package/{src → dist}/services/voice/kokoro/kokoro-backend.d.ts +15 -0
  254. package/dist/services/voice/kokoro/kokoro-backend.d.ts.map +1 -0
  255. package/{src → dist}/services/voice/kokoro/kokoro-engine-discovery.d.ts +1 -1
  256. package/dist/services/voice/kokoro/kokoro-engine-discovery.d.ts.map +1 -0
  257. package/{src → dist}/services/voice/kokoro/kokoro-ffi-runtime.d.ts +3 -3
  258. package/dist/services/voice/kokoro/kokoro-ffi-runtime.d.ts.map +1 -0
  259. package/dist/services/voice/kokoro/kokoro-runtime.d.ts.map +1 -0
  260. package/dist/services/voice/kokoro/phoneme-stream.d.ts +51 -0
  261. package/dist/services/voice/kokoro/phoneme-stream.d.ts.map +1 -0
  262. package/dist/services/voice/kokoro/phonemizer.d.ts.map +1 -0
  263. package/{src → dist}/services/voice/kokoro/pick-runtime.d.ts +1 -1
  264. package/dist/services/voice/kokoro/pick-runtime.d.ts.map +1 -0
  265. package/dist/services/voice/kokoro/runtime-selection.d.ts +31 -0
  266. package/dist/services/voice/kokoro/runtime-selection.d.ts.map +1 -0
  267. package/dist/services/voice/kokoro/types.d.ts.map +1 -0
  268. package/dist/services/voice/kokoro/voice-presets.d.ts.map +1 -0
  269. package/dist/services/voice/kokoro/voices.d.ts.map +1 -0
  270. package/dist/services/voice/lifecycle.d.ts.map +1 -0
  271. package/dist/services/voice/live-diarization-session.d.ts +196 -0
  272. package/dist/services/voice/live-diarization-session.d.ts.map +1 -0
  273. package/dist/services/voice/metric-math.d.ts +10 -0
  274. package/dist/services/voice/metric-math.d.ts.map +1 -0
  275. package/{src → dist}/services/voice/mic-source.d.ts +1 -1
  276. package/dist/services/voice/mic-source.d.ts.map +1 -0
  277. package/dist/services/voice/nlms-echo-canceller.d.ts +137 -0
  278. package/dist/services/voice/nlms-echo-canceller.d.ts.map +1 -0
  279. package/dist/services/voice/optimistic-policy.d.ts.map +1 -0
  280. package/dist/services/voice/optimistic-rollback.d.ts +151 -0
  281. package/dist/services/voice/optimistic-rollback.d.ts.map +1 -0
  282. package/{src → dist}/services/voice/partial-stabilizer.d.ts +1 -1
  283. package/dist/services/voice/partial-stabilizer.d.ts.map +1 -0
  284. package/dist/services/voice/phoneme-tokenizer.d.ts.map +1 -0
  285. package/dist/services/voice/phrase-cache.d.ts.map +1 -0
  286. package/dist/services/voice/phrase-chunker.d.ts.map +1 -0
  287. package/dist/services/voice/pipeline-impls.d.ts.map +1 -0
  288. package/dist/services/voice/pipeline.d.ts.map +1 -0
  289. package/dist/services/voice/prefill-client.d.ts.map +1 -0
  290. package/dist/services/voice/prefix-preserving-queue.d.ts.map +1 -0
  291. package/dist/services/voice/profile-store.d.ts.map +1 -0
  292. package/dist/services/voice/ring-buffer.d.ts.map +1 -0
  293. package/dist/services/voice/rollback-queue.d.ts.map +1 -0
  294. package/dist/services/voice/samantha-preset-placeholder.d.ts.map +1 -0
  295. package/dist/services/voice/samantha-preset-regenerator.d.ts.map +1 -0
  296. package/dist/services/voice/scheduler.d.ts.map +1 -0
  297. package/dist/services/voice/self-voice-imprint.d.ts +33 -0
  298. package/dist/services/voice/self-voice-imprint.d.ts.map +1 -0
  299. package/{src → dist}/services/voice/shared-resources.d.ts +14 -0
  300. package/dist/services/voice/shared-resources.d.ts.map +1 -0
  301. package/dist/services/voice/speaker/attribution-pipeline.d.ts.map +1 -0
  302. package/dist/services/voice/speaker/diarizer-fused.d.ts.map +1 -0
  303. package/dist/services/voice/speaker/diarizer.d.ts.map +1 -0
  304. package/dist/services/voice/speaker/encoder-fused.d.ts.map +1 -0
  305. package/dist/services/voice/speaker/encoder-ggml.d.ts.map +1 -0
  306. package/dist/services/voice/speaker/encoder.d.ts.map +1 -0
  307. package/dist/services/voice/speaker-imprint.d.ts.map +1 -0
  308. package/dist/services/voice/speaker-preset-cache.d.ts.map +1 -0
  309. package/dist/services/voice/streaming-asr/streaming-pipeline-adapter.d.ts +160 -0
  310. package/dist/services/voice/streaming-asr/streaming-pipeline-adapter.d.ts.map +1 -0
  311. package/dist/services/voice/system-audio-sink.d.ts.map +1 -0
  312. package/{src → dist}/services/voice/transcriber.d.ts +4 -4
  313. package/dist/services/voice/transcriber.d.ts.map +1 -0
  314. package/dist/services/voice/transcript-knowledge.d.ts.map +1 -0
  315. package/{src → dist}/services/voice/transcript-service.d.ts +20 -1
  316. package/dist/services/voice/transcript-service.d.ts.map +1 -0
  317. package/{src → dist}/services/voice/transcript-store.d.ts +12 -1
  318. package/dist/services/voice/transcript-store.d.ts.map +1 -0
  319. package/dist/services/voice/turn-controller.d.ts.map +1 -0
  320. package/{src → dist}/services/voice/types.d.ts +6 -6
  321. package/dist/services/voice/types.d.ts.map +1 -0
  322. package/{src → dist}/services/voice/vad.d.ts +6 -5
  323. package/dist/services/voice/vad.d.ts.map +1 -0
  324. package/dist/services/voice/voice-budget.d.ts.map +1 -0
  325. package/dist/services/voice/voice-emotion-classifier.d.ts.map +1 -0
  326. package/dist/services/voice/voice-preload-predictor.d.ts +76 -0
  327. package/dist/services/voice/voice-preload-predictor.d.ts.map +1 -0
  328. package/{src → dist}/services/voice/voice-preset-format.d.ts +2 -2
  329. package/dist/services/voice/voice-preset-format.d.ts.map +1 -0
  330. package/dist/services/voice/voice-profile-artifact.d.ts.map +1 -0
  331. package/dist/services/voice/voice-profile-routes.d.ts.map +1 -0
  332. package/dist/services/voice/voice-scenario.d.ts +131 -0
  333. package/dist/services/voice/voice-scenario.d.ts.map +1 -0
  334. package/dist/services/voice/voice-state-machine.d.ts.map +1 -0
  335. package/dist/services/voice/voice-workbench-report.d.ts +117 -0
  336. package/dist/services/voice/voice-workbench-report.d.ts.map +1 -0
  337. package/{src → dist}/services/voice/wake-word-ggml.d.ts +8 -9
  338. package/dist/services/voice/wake-word-ggml.d.ts.map +1 -0
  339. package/dist/services/voice/wake-word.d.ts.map +1 -0
  340. package/dist/services/voice/wav-codec.d.ts +11 -0
  341. package/dist/services/voice/wav-codec.d.ts.map +1 -0
  342. package/dist/services/voice/workbench-entrypoint.d.ts +42 -0
  343. package/dist/services/voice/workbench-entrypoint.d.ts.map +1 -0
  344. package/dist/services/voice/workbench-headless-runner.d.ts +102 -0
  345. package/dist/services/voice/workbench-headless-runner.d.ts.map +1 -0
  346. package/dist/services/voice/workbench-logic-services.d.ts +36 -0
  347. package/dist/services/voice/workbench-logic-services.d.ts.map +1 -0
  348. package/dist/services/voice/workbench-real-services.d.ts +17 -0
  349. package/dist/services/voice/workbench-real-services.d.ts.map +1 -0
  350. package/dist/services/voice/workbench-scenarios.d.ts +24 -0
  351. package/dist/services/voice/workbench-scenarios.d.ts.map +1 -0
  352. package/dist/services/voice/wrap-with-first-line-cache.d.ts.map +1 -0
  353. package/dist/services/voice-model-updater.d.ts.map +1 -0
  354. package/dist/services/voice-prewarm.d.ts.map +1 -0
  355. package/dist/voice-workbench.d.ts +18 -0
  356. package/dist/voice-workbench.d.ts.map +1 -0
  357. package/dist/voice-workbench.js +5259 -0
  358. package/dist/voice-workbench.js.map +34 -0
  359. package/package.json +28 -9
  360. package/registry-entry.json +137 -0
  361. package/src/adapters/capacitor-llama/__tests__/voice-turn.test.ts +293 -0
  362. package/src/adapters/capacitor-llama/environment.ts +1 -1
  363. package/src/adapters/capacitor-llama/index.ts +28 -4
  364. package/src/adapters/capacitor-llama/native-voice-capture.ts +140 -0
  365. package/src/adapters/capacitor-llama/text-streaming.ts +2 -2
  366. package/src/adapters/capacitor-llama/voice-turn.ts +178 -0
  367. package/src/backends/apple-foundation.ts +1 -1
  368. package/src/local-inference-routes.test.ts +57 -11
  369. package/src/local-inference-routes.ts +90 -8
  370. package/src/provider.ts +32 -3
  371. package/src/routes/compat-helpers.ts +2 -1
  372. package/src/routes/index.ts +1 -0
  373. package/src/routes/live-diarization-route.test.ts +134 -0
  374. package/src/routes/live-diarization-route.ts +79 -3
  375. package/src/routes/local-inference-asr-route.test.ts +43 -2
  376. package/src/routes/local-inference-asr-route.ts +7 -4
  377. package/src/routes/local-inference-asr-transcribe.test.ts +4 -4
  378. package/src/routes/local-inference-asr-transcribe.ts +1 -1
  379. package/src/routes/local-inference-compat-routes.test.ts +3 -3
  380. package/src/routes/local-inference-compat-routes.ts +23 -56
  381. package/src/routes/native-pcm-turn-route.test.ts +136 -0
  382. package/src/routes/native-pcm-turn-route.ts +121 -0
  383. package/src/routes/transcripts-routes.test.ts +51 -0
  384. package/src/routes/transcripts-routes.ts +35 -3
  385. package/src/runtime/bionic-wire-encoding.test.ts +147 -0
  386. package/src/runtime/ensure-local-inference-handler.test.ts +203 -5
  387. package/src/runtime/ensure-local-inference-handler.ts +203 -11
  388. package/src/runtime/index.ts +4 -1
  389. package/src/runtime/mobile-local-inference-gate.test.ts +85 -2
  390. package/src/runtime/mobile-local-inference-gate.ts +60 -5
  391. package/src/runtime/voice-entity-binding.transcript.test.ts +29 -0
  392. package/src/runtime/voice-entity-binding.ts +46 -6
  393. package/src/runtime/voice-speaker-entity-contract.test.ts +149 -0
  394. package/src/services/README.md +2 -2
  395. package/src/services/__tests__/backend-selector.precedence.test.ts +333 -0
  396. package/src/services/active-model-context-fit.test.ts +125 -0
  397. package/src/services/active-model.ts +211 -8
  398. package/src/services/asr-provenance.ts +68 -0
  399. package/src/services/assignment-validation.test.ts +118 -0
  400. package/src/services/assignments.test.ts +26 -0
  401. package/src/services/assignments.ts +52 -4
  402. package/src/services/backend.test.ts +84 -0
  403. package/src/services/backend.ts +198 -19
  404. package/src/services/bionic-host-loader.test.ts +94 -1
  405. package/src/services/bionic-host-loader.ts +72 -0
  406. package/src/services/cache-bridge.test.ts +7 -7
  407. package/src/services/catalog.test.ts +32 -11
  408. package/src/services/catalog.ts +6 -0
  409. package/src/services/cloud-fallback.ts +1 -1
  410. package/src/services/context-fit.test.ts +121 -0
  411. package/src/services/context-fit.ts +113 -0
  412. package/src/services/desktop-fused-ffi-backend-runtime.ts +99 -7
  413. package/src/services/device-tier.test.ts +89 -2
  414. package/src/services/device-tier.ts +103 -11
  415. package/src/services/downloader.test.ts +199 -58
  416. package/src/services/downloader.ts +141 -27
  417. package/src/services/engine-direct-bundle.test.ts +38 -6
  418. package/src/services/engine.ts +291 -104
  419. package/src/services/ensure-local-artifacts.ts +1 -1
  420. package/src/services/ffi-llm-streaming-abi.ts +6 -3
  421. package/src/services/ffi-streaming-backend.ts +44 -8
  422. package/src/services/ffi-streaming-runner.test.ts +163 -3
  423. package/src/services/ffi-streaming-runner.ts +54 -1
  424. package/src/services/ffi-unload-ordering.test.ts +5 -1
  425. package/src/services/fused-eliza1-no-regression.test.ts +144 -0
  426. package/src/services/hardware.test.ts +7 -2
  427. package/src/services/hardware.ts +28 -0
  428. package/src/services/imagegen/backend-selector.test.ts +190 -0
  429. package/src/services/imagegen/sd-cpp.ts +6 -9
  430. package/src/services/index.ts +18 -0
  431. package/src/services/ios-llama-streaming.ts +1 -1
  432. package/src/services/kv-spill.ts +6 -5
  433. package/src/services/lib-target.test.ts +145 -0
  434. package/src/services/lib-target.ts +102 -0
  435. package/src/services/live-signals.test.ts +132 -0
  436. package/src/services/live-signals.ts +177 -0
  437. package/src/services/llama-server-metrics.test.ts +168 -0
  438. package/src/services/manifest/eliza-1.manifest.v1.json +84 -2
  439. package/src/services/manifest/index.ts +6 -0
  440. package/src/services/manifest/manifest.test.ts +156 -54
  441. package/src/services/manifest/schema.ts +160 -52
  442. package/src/services/manifest/types.ts +6 -0
  443. package/src/services/manifest/validator.ts +91 -25
  444. package/src/services/memory-arbiter.test.ts +139 -0
  445. package/src/services/memory-arbiter.ts +81 -15
  446. package/src/services/memory-benchmark.test.ts +91 -0
  447. package/src/services/memory-benchmark.ts +354 -0
  448. package/src/services/memory-monitor.test.ts +24 -0
  449. package/src/services/memory-monitor.ts +12 -0
  450. package/src/services/mtp-doctor.ts +10 -2
  451. package/src/services/network-policy.ts +5 -5
  452. package/src/services/ram-budget-cache.test.ts +2 -1
  453. package/src/services/ram-budget.ts +0 -0
  454. package/src/services/recommendation.test.ts +216 -0
  455. package/src/services/registry.ts +25 -19
  456. package/src/services/required-kernels-gate.test.ts +64 -0
  457. package/src/services/router-handler.ts +43 -24
  458. package/src/services/routing-policy.test.ts +211 -23
  459. package/src/services/routing-policy.ts +92 -22
  460. package/src/services/service.test.ts +3 -3
  461. package/src/services/service.ts +22 -7
  462. package/src/services/transcription-priority.test.ts +2 -2
  463. package/src/services/types.ts +4 -0
  464. package/src/services/verify-on-device.test.ts +2 -2
  465. package/src/services/vision/hash.ts +1 -1
  466. package/src/services/vision/index.ts +2 -2
  467. package/src/services/vision/llama-server.ts +1 -1
  468. package/src/services/vision/types.ts +13 -4
  469. package/src/services/vision-embedding-cache.ts +1 -1
  470. package/src/services/voice/VOICE_WORKBENCH.md +71 -26
  471. package/src/services/voice/__fixtures__/voice-workbench-logic-baseline.json +180 -0
  472. package/src/services/voice/__test-helpers__/synthetic-speech.ts +72 -2
  473. package/src/services/voice/__tests__/eliza1-eot-scorer.test.ts +29 -29
  474. package/src/services/voice/__tests__/streaming-asr.test.ts +1 -1
  475. package/src/services/voice/acoustic-speaker-attribution.test.ts +165 -0
  476. package/src/services/voice/acoustic-speaker-attribution.ts +336 -0
  477. package/src/services/voice/asr-timed.real.test.ts +6 -8
  478. package/src/services/voice/audio-frame-consumer.test.ts +327 -1
  479. package/src/services/voice/audio-frame-consumer.ts +165 -5
  480. package/src/services/voice/barge-in.ts +2 -3
  481. package/src/services/voice/corpus-augment.test.ts +276 -0
  482. package/src/services/voice/corpus-augment.ts +451 -0
  483. package/src/services/voice/corpus-generator.test.ts +201 -0
  484. package/src/services/voice/corpus-generator.ts +413 -0
  485. package/src/services/voice/diarization-error-rate.greedy.test.ts +140 -0
  486. package/src/services/voice/diarization-error-rate.test.ts +100 -0
  487. package/src/services/voice/diarization-error-rate.ts +249 -0
  488. package/src/services/voice/e2e-harness.der.test.ts +94 -0
  489. package/src/services/voice/e2e-harness.respond-eot-entity.test.ts +277 -0
  490. package/src/services/voice/e2e-harness.security-echo.test.ts +103 -0
  491. package/src/services/voice/e2e-harness.test.ts +2 -2
  492. package/src/services/voice/e2e-harness.ts +175 -16
  493. package/src/services/voice/echo-delay.test.ts +118 -0
  494. package/src/services/voice/echo-delay.ts +135 -0
  495. package/src/services/voice/echo-metrics.test.ts +17 -0
  496. package/src/services/voice/echo-metrics.ts +20 -0
  497. package/src/services/voice/echo-reference-buffer.test.ts +86 -0
  498. package/src/services/voice/echo-reference-buffer.ts +165 -0
  499. package/src/services/voice/eliza1-eot-scorer.ts +22 -22
  500. package/src/services/voice/embedding.ts +2 -3
  501. package/src/services/voice/engine-bridge-transcript-join.test.ts +278 -0
  502. package/src/services/voice/engine-bridge.ts +151 -110
  503. package/src/services/voice/eot-classifier-ggml.ts +42 -39
  504. package/src/services/voice/eot-classifier.test.ts +98 -0
  505. package/src/services/voice/eot-classifier.ts +11 -122
  506. package/src/services/voice/errors.ts +2 -0
  507. package/src/services/voice/expressive-tags.asr.test.ts +77 -0
  508. package/src/services/voice/expressive-tags.test.ts +102 -0
  509. package/src/services/voice/expressive-tags.ts +8 -8
  510. package/src/services/voice/ffi-bindings.test.ts +10 -3
  511. package/src/services/voice/ffi-bindings.ts +177 -15
  512. package/src/services/voice/fused-eot-scorer.ts +17 -13
  513. package/src/services/voice/index.ts +33 -12
  514. package/src/services/voice/kokoro/__tests__/kokoro-backend.test.ts +112 -1
  515. package/src/services/voice/kokoro/__tests__/kokoro-engine-bridge.real.test.ts +88 -3
  516. package/src/services/voice/kokoro/__tests__/runtime-selection.test.ts +37 -201
  517. package/src/services/voice/kokoro/kokoro-backend.ts +16 -0
  518. package/src/services/voice/kokoro/kokoro-engine-discovery.ts +1 -1
  519. package/src/services/voice/kokoro/kokoro-ffi-runtime.ts +3 -3
  520. package/src/services/voice/kokoro/pick-runtime.ts +1 -1
  521. package/src/services/voice/kokoro/runtime-selection.ts +28 -201
  522. package/src/services/voice/live-diarization-session.echo.test.ts +232 -0
  523. package/src/services/voice/live-diarization-session.ts +335 -2
  524. package/src/services/voice/metric-math.test.ts +61 -0
  525. package/src/services/voice/metric-math.ts +25 -0
  526. package/src/services/voice/mic-source.ts +1 -1
  527. package/src/services/voice/nlms-echo-canceller.test.ts +244 -0
  528. package/src/services/voice/nlms-echo-canceller.ts +317 -0
  529. package/src/services/voice/optimistic-policy.power-source.test.ts +36 -0
  530. package/src/services/voice/partial-stabilizer.ts +1 -1
  531. package/src/services/voice/pipeline.ts +3 -4
  532. package/src/services/voice/research/VOICE_8785_ASSESSMENT.md +141 -0
  533. package/src/services/voice/research/VOICE_PIPELINE_RESEARCH_2026.md +117 -0
  534. package/src/services/voice/research/VOICE_VALIDATION_RUNBOOK.md +135 -0
  535. package/src/services/voice/samantha-preset-regenerator.wav.test.ts +90 -0
  536. package/src/services/voice/self-voice-imprint.test.ts +59 -0
  537. package/src/services/voice/self-voice-imprint.ts +102 -0
  538. package/src/services/voice/shared-resources.ts +23 -0
  539. package/src/services/voice/speaker/attribution-pipeline.test.ts +221 -0
  540. package/src/services/voice/speaker/attribution-pipeline.ts +85 -22
  541. package/src/services/voice/speaker/encoder-ggml.test.ts +59 -0
  542. package/src/services/voice/transcriber.asr-backend.test.ts +76 -0
  543. package/src/services/voice/transcriber.ts +4 -4
  544. package/src/services/voice/transcript-service.test.ts +58 -0
  545. package/src/services/voice/transcript-service.ts +64 -0
  546. package/src/services/voice/transcript-store.test.ts +36 -0
  547. package/src/services/voice/transcript-store.ts +32 -0
  548. package/src/services/voice/types.ts +7 -7
  549. package/src/services/voice/vad.test.ts +33 -15
  550. package/src/services/voice/vad.ts +25 -20
  551. package/src/services/voice/voice-budget.test.ts +0 -3
  552. package/src/services/voice/voice-budget.ts +6 -6
  553. package/src/services/voice/voice-duet.test.ts +1 -1
  554. package/src/services/voice/voice-hardening.fuzz.test.ts +116 -0
  555. package/src/services/voice/voice-preload-predictor.test.ts +130 -0
  556. package/src/services/voice/voice-preload-predictor.ts +113 -0
  557. package/src/services/voice/voice-preset-format.fuzz.test.ts +89 -0
  558. package/src/services/voice/voice-preset-format.test.ts +75 -0
  559. package/src/services/voice/voice-preset-format.ts +17 -4
  560. package/src/services/voice/voice-scenario.test.ts +159 -0
  561. package/src/services/voice/voice-scenario.ts +133 -7
  562. package/src/services/voice/voice-scenario.turn-helpers.test.ts +77 -0
  563. package/src/services/voice/voice-workbench-report.ts +58 -17
  564. package/src/services/voice/wake-word-ggml.ts +12 -13
  565. package/src/services/voice/wav-codec.fuzz.test.ts +59 -0
  566. package/src/services/voice/wav-codec.test.ts +32 -0
  567. package/src/services/voice/wav-codec.ts +101 -0
  568. package/src/services/voice/workbench-entrypoint.test.ts +55 -0
  569. package/src/services/voice/workbench-entrypoint.ts +88 -0
  570. package/src/services/voice/workbench-headless-runner.test.ts +162 -0
  571. package/src/services/voice/workbench-headless-runner.ts +396 -0
  572. package/src/services/voice/workbench-logic-services.test.ts +225 -0
  573. package/src/services/voice/workbench-logic-services.ts +184 -0
  574. package/src/services/voice/workbench-real-services.ts +629 -0
  575. package/src/services/voice/workbench-scenarios.ts +407 -0
  576. package/src/services/voice-prewarm.ts +1 -1
  577. package/src/voice-workbench.ts +71 -0
  578. package/src/actions/generate-media.d.ts.map +0 -1
  579. package/src/actions/identify-speaker.d.ts.map +0 -1
  580. package/src/actions/transcription-control.d.ts.map +0 -1
  581. package/src/index.d.ts.map +0 -1
  582. package/src/local-inference-routes.d.ts.map +0 -1
  583. package/src/provider.d.ts.map +0 -1
  584. package/src/routes/compat-helpers.d.ts.map +0 -1
  585. package/src/routes/family-member-route.d.ts.map +0 -1
  586. package/src/routes/index.d.ts.map +0 -1
  587. package/src/routes/live-diarization-route.d.ts.map +0 -1
  588. package/src/routes/local-inference-asr-route.d.ts.map +0 -1
  589. package/src/routes/local-inference-asr-transcribe.d.ts.map +0 -1
  590. package/src/routes/local-inference-compat-routes.d.ts.map +0 -1
  591. package/src/routes/local-inference-tts-route.d.ts.map +0 -1
  592. package/src/routes/transcript-audio-store.d.ts.map +0 -1
  593. package/src/routes/transcripts-routes.d.ts.map +0 -1
  594. package/src/routes/voice-first-run-routes.d.ts.map +0 -1
  595. package/src/routes/voice-models-routes.d.ts.map +0 -1
  596. package/src/routes/voice-profile-plugin-routes.d.ts.map +0 -1
  597. package/src/routes/voice-profiles-management-routes.d.ts.map +0 -1
  598. package/src/routes/voice-speaker-profile-routes.d.ts.map +0 -1
  599. package/src/runtime/embedding-manager-support.d.ts.map +0 -1
  600. package/src/runtime/embedding-presets.d.ts.map +0 -1
  601. package/src/runtime/embedding-warmup-policy.d.ts.map +0 -1
  602. package/src/runtime/ensure-local-inference-handler.d.ts.map +0 -1
  603. package/src/runtime/index.d.ts.map +0 -1
  604. package/src/runtime/mobile-local-inference-gate.d.ts +0 -31
  605. package/src/runtime/mobile-local-inference-gate.d.ts.map +0 -1
  606. package/src/runtime/voice-entity-binding.d.ts.map +0 -1
  607. package/src/services/active-model.d.ts.map +0 -1
  608. package/src/services/assignments.d.ts.map +0 -1
  609. package/src/services/backend.d.ts.map +0 -1
  610. package/src/services/bionic-host-loader.d.ts.map +0 -1
  611. package/src/services/bundled-models.d.ts.map +0 -1
  612. package/src/services/cache-bridge.d.ts.map +0 -1
  613. package/src/services/catalog.d.ts +0 -10
  614. package/src/services/catalog.d.ts.map +0 -1
  615. package/src/services/checkpoint-client.d.ts.map +0 -1
  616. package/src/services/cloud-fallback.d.ts.map +0 -1
  617. package/src/services/conversation-registry.d.ts.map +0 -1
  618. package/src/services/desktop-fused-ffi-backend-runtime.d.ts.map +0 -1
  619. package/src/services/device-bridge.d.ts.map +0 -1
  620. package/src/services/device-resource-metrics.d.ts.map +0 -1
  621. package/src/services/device-tier.d.ts.map +0 -1
  622. package/src/services/downloader.d.ts.map +0 -1
  623. package/src/services/engine.d.ts.map +0 -1
  624. package/src/services/external-scanner.d.ts.map +0 -1
  625. package/src/services/ffi-streaming-backend.d.ts.map +0 -1
  626. package/src/services/ffi-streaming-runner.d.ts.map +0 -1
  627. package/src/services/gpu-detect.d.ts.map +0 -1
  628. package/src/services/handler-registry.d.ts.map +0 -1
  629. package/src/services/hardware.d.ts.map +0 -1
  630. package/src/services/hf-search.d.ts +0 -26
  631. package/src/services/hf-search.d.ts.map +0 -1
  632. package/src/services/hf-search.test.ts +0 -69
  633. package/src/services/hf-search.ts +0 -420
  634. package/src/services/image-description-runtime.d.ts.map +0 -1
  635. package/src/services/imagegen/aosp-unavailable.d.ts.map +0 -1
  636. package/src/services/imagegen/backend-selector.d.ts.map +0 -1
  637. package/src/services/imagegen/coreml-unavailable.d.ts.map +0 -1
  638. package/src/services/imagegen/errors.d.ts.map +0 -1
  639. package/src/services/imagegen/index.d.ts.map +0 -1
  640. package/src/services/imagegen/mflux.d.ts.map +0 -1
  641. package/src/services/imagegen/sd-cpp.d.ts.map +0 -1
  642. package/src/services/imagegen/tensorrt-unavailable.d.ts.map +0 -1
  643. package/src/services/imagegen/types.d.ts.map +0 -1
  644. package/src/services/index.d.ts.map +0 -1
  645. package/src/services/inference-capabilities.d.ts.map +0 -1
  646. package/src/services/inference-telemetry.d.ts.map +0 -1
  647. package/src/services/kv-spill.d.ts.map +0 -1
  648. package/src/services/latency-trace.d.ts.map +0 -1
  649. package/src/services/llm-streaming-binding.d.ts.map +0 -1
  650. package/src/services/load-args.d.ts.map +0 -1
  651. package/src/services/manifest/index.d.ts +0 -4
  652. package/src/services/manifest/index.d.ts.map +0 -1
  653. package/src/services/manifest/schema.d.ts.map +0 -1
  654. package/src/services/manifest/types.d.ts.map +0 -1
  655. package/src/services/manifest/validator.d.ts.map +0 -1
  656. package/src/services/memory-arbiter.d.ts.map +0 -1
  657. package/src/services/memory-monitor.d.ts.map +0 -1
  658. package/src/services/memory-pressure.d.ts.map +0 -1
  659. package/src/services/mtp-doctor.d.ts.map +0 -1
  660. package/src/services/network-policy.d.ts.map +0 -1
  661. package/src/services/paths.d.ts.map +0 -1
  662. package/src/services/planner-skeleton.d.ts.map +0 -1
  663. package/src/services/providers.d.ts.map +0 -1
  664. package/src/services/ram-budget.d.ts.map +0 -1
  665. package/src/services/readiness.d.ts.map +0 -1
  666. package/src/services/recommendation.d.ts.map +0 -1
  667. package/src/services/registry.d.ts.map +0 -1
  668. package/src/services/router-handler.d.ts.map +0 -1
  669. package/src/services/routing-policy.d.ts.map +0 -1
  670. package/src/services/routing-preferences.d.ts.map +0 -1
  671. package/src/services/runtime-target.d.ts.map +0 -1
  672. package/src/services/service.d.ts.map +0 -1
  673. package/src/services/session-pool.d.ts.map +0 -1
  674. package/src/services/structured-output/deterministic-repair.d.ts.map +0 -1
  675. package/src/services/structured-output.d.ts.map +0 -1
  676. package/src/services/system-memory.d.ts.map +0 -1
  677. package/src/services/types.d.ts.map +0 -1
  678. package/src/services/verify-on-device.d.ts.map +0 -1
  679. package/src/services/verify.d.ts.map +0 -1
  680. package/src/services/vision/aosp-unavailable.d.ts.map +0 -1
  681. package/src/services/vision/capacitor-llama.d.ts.map +0 -1
  682. package/src/services/vision/cloud-fallback.d.ts.map +0 -1
  683. package/src/services/vision/hash.d.ts.map +0 -1
  684. package/src/services/vision/index.d.ts.map +0 -1
  685. package/src/services/vision/llama-server.d.ts.map +0 -1
  686. package/src/services/vision/types.d.ts.map +0 -1
  687. package/src/services/vision/vast-fallback.d.ts.map +0 -1
  688. package/src/services/vision-embedding-cache.d.ts.map +0 -1
  689. package/src/services/voice/audio-frame-consumer.d.ts.map +0 -1
  690. package/src/services/voice/barge-in.d.ts.map +0 -1
  691. package/src/services/voice/cancellation-coordinator.d.ts.map +0 -1
  692. package/src/services/voice/checkpoint-manager.d.ts.map +0 -1
  693. package/src/services/voice/eager-context-builder.d.ts.map +0 -1
  694. package/src/services/voice/eliza1-eot-scorer.d.ts.map +0 -1
  695. package/src/services/voice/embedding.d.ts.map +0 -1
  696. package/src/services/voice/emotion-attribution.d.ts.map +0 -1
  697. package/src/services/voice/engine-bridge.d.ts.map +0 -1
  698. package/src/services/voice/eot-classifier-ggml.d.ts.map +0 -1
  699. package/src/services/voice/eot-classifier.d.ts.map +0 -1
  700. package/src/services/voice/errors.d.ts.map +0 -1
  701. package/src/services/voice/expressive-tags.d.ts.map +0 -1
  702. package/src/services/voice/ffi-bindings.d.ts.map +0 -1
  703. package/src/services/voice/first-line-cache.d.ts.map +0 -1
  704. package/src/services/voice/fused-eot-scorer.d.ts.map +0 -1
  705. package/src/services/voice/index.d.ts.map +0 -1
  706. package/src/services/voice/kokoro/kokoro-backend.d.ts.map +0 -1
  707. package/src/services/voice/kokoro/kokoro-engine-discovery.d.ts.map +0 -1
  708. package/src/services/voice/kokoro/kokoro-ffi-runtime.d.ts.map +0 -1
  709. package/src/services/voice/kokoro/kokoro-runtime.d.ts.map +0 -1
  710. package/src/services/voice/kokoro/phonemizer.d.ts.map +0 -1
  711. package/src/services/voice/kokoro/pick-runtime.d.ts.map +0 -1
  712. package/src/services/voice/kokoro/runtime-selection.d.ts +0 -92
  713. package/src/services/voice/kokoro/runtime-selection.d.ts.map +0 -1
  714. package/src/services/voice/kokoro/types.d.ts.map +0 -1
  715. package/src/services/voice/kokoro/voice-presets.d.ts.map +0 -1
  716. package/src/services/voice/kokoro/voices.d.ts.map +0 -1
  717. package/src/services/voice/lifecycle.d.ts.map +0 -1
  718. package/src/services/voice/live-diarization-session.d.ts +0 -96
  719. package/src/services/voice/live-diarization-session.d.ts.map +0 -1
  720. package/src/services/voice/mic-source.d.ts.map +0 -1
  721. package/src/services/voice/optimistic-policy.d.ts.map +0 -1
  722. package/src/services/voice/partial-stabilizer.d.ts.map +0 -1
  723. package/src/services/voice/phoneme-tokenizer.d.ts.map +0 -1
  724. package/src/services/voice/phrase-cache.d.ts.map +0 -1
  725. package/src/services/voice/phrase-chunker.d.ts.map +0 -1
  726. package/src/services/voice/pipeline-impls.d.ts.map +0 -1
  727. package/src/services/voice/pipeline.d.ts.map +0 -1
  728. package/src/services/voice/prefill-client.d.ts.map +0 -1
  729. package/src/services/voice/prefix-preserving-queue.d.ts.map +0 -1
  730. package/src/services/voice/profile-store.d.ts.map +0 -1
  731. package/src/services/voice/ring-buffer.d.ts.map +0 -1
  732. package/src/services/voice/rollback-queue.d.ts.map +0 -1
  733. package/src/services/voice/samantha-preset-placeholder.d.ts.map +0 -1
  734. package/src/services/voice/samantha-preset-regenerator.d.ts.map +0 -1
  735. package/src/services/voice/scheduler.d.ts.map +0 -1
  736. package/src/services/voice/shared-resources.d.ts.map +0 -1
  737. package/src/services/voice/speaker/attribution-pipeline.d.ts.map +0 -1
  738. package/src/services/voice/speaker/diarizer-fused.d.ts.map +0 -1
  739. package/src/services/voice/speaker/diarizer.d.ts.map +0 -1
  740. package/src/services/voice/speaker/encoder-fused.d.ts.map +0 -1
  741. package/src/services/voice/speaker/encoder-ggml.d.ts.map +0 -1
  742. package/src/services/voice/speaker/encoder.d.ts.map +0 -1
  743. package/src/services/voice/speaker-imprint.d.ts.map +0 -1
  744. package/src/services/voice/speaker-preset-cache.d.ts.map +0 -1
  745. package/src/services/voice/system-audio-sink.d.ts.map +0 -1
  746. package/src/services/voice/transcriber.d.ts.map +0 -1
  747. package/src/services/voice/transcript-knowledge.d.ts.map +0 -1
  748. package/src/services/voice/transcript-service.d.ts.map +0 -1
  749. package/src/services/voice/transcript-store.d.ts.map +0 -1
  750. package/src/services/voice/turn-controller.d.ts.map +0 -1
  751. package/src/services/voice/types.d.ts.map +0 -1
  752. package/src/services/voice/vad.d.ts.map +0 -1
  753. package/src/services/voice/voice-budget.d.ts.map +0 -1
  754. package/src/services/voice/voice-emotion-classifier.d.ts.map +0 -1
  755. package/src/services/voice/voice-preset-format.d.ts.map +0 -1
  756. package/src/services/voice/voice-profile-artifact.d.ts.map +0 -1
  757. package/src/services/voice/voice-profile-routes.d.ts.map +0 -1
  758. package/src/services/voice/voice-settings.d.ts +0 -82
  759. package/src/services/voice/voice-settings.d.ts.map +0 -1
  760. package/src/services/voice/voice-settings.ts +0 -172
  761. package/src/services/voice/voice-state-machine.d.ts.map +0 -1
  762. package/src/services/voice/wake-word-ggml.d.ts.map +0 -1
  763. package/src/services/voice/wake-word.d.ts.map +0 -1
  764. package/src/services/voice/wrap-with-first-line-cache.d.ts.map +0 -1
  765. package/src/services/voice-model-updater.d.ts.map +0 -1
  766. package/src/services/voice-prewarm.d.ts.map +0 -1
  767. /package/{src → dist}/actions/generate-media.d.ts +0 -0
  768. /package/{src → dist}/actions/identify-speaker.d.ts +0 -0
  769. /package/{src → dist}/actions/transcription-control.d.ts +0 -0
  770. /package/{src → dist}/index.d.ts +0 -0
  771. /package/{src → dist}/provider.d.ts +0 -0
  772. /package/{src → dist}/routes/family-member-route.d.ts +0 -0
  773. /package/{src → dist}/routes/local-inference-asr-route.d.ts +0 -0
  774. /package/{src → dist}/routes/local-inference-asr-transcribe.d.ts +0 -0
  775. /package/{src → dist}/routes/local-inference-compat-routes.d.ts +0 -0
  776. /package/{src → dist}/routes/local-inference-tts-route.d.ts +0 -0
  777. /package/{src → dist}/routes/transcript-audio-store.d.ts +0 -0
  778. /package/{src → dist}/routes/voice-first-run-routes.d.ts +0 -0
  779. /package/{src → dist}/routes/voice-models-routes.d.ts +0 -0
  780. /package/{src → dist}/routes/voice-profile-plugin-routes.d.ts +0 -0
  781. /package/{src → dist}/routes/voice-profiles-management-routes.d.ts +0 -0
  782. /package/{src → dist}/routes/voice-speaker-profile-routes.d.ts +0 -0
  783. /package/{src → dist}/runtime/embedding-manager-support.d.ts +0 -0
  784. /package/{src → dist}/runtime/embedding-presets.d.ts +0 -0
  785. /package/{src → dist}/runtime/embedding-warmup-policy.d.ts +0 -0
  786. /package/{src → dist}/services/bundled-models.d.ts +0 -0
  787. /package/{src → dist}/services/cache-bridge.d.ts +0 -0
  788. /package/{src → dist}/services/checkpoint-client.d.ts +0 -0
  789. /package/{src → dist}/services/cloud-fallback.d.ts +0 -0
  790. /package/{src → dist}/services/conversation-registry.d.ts +0 -0
  791. /package/{src → dist}/services/device-bridge.d.ts +0 -0
  792. /package/{src → dist}/services/device-resource-metrics.d.ts +0 -0
  793. /package/{src → dist}/services/external-scanner.d.ts +0 -0
  794. /package/{src → dist}/services/gpu-detect.d.ts +0 -0
  795. /package/{src → dist}/services/handler-registry.d.ts +0 -0
  796. /package/{src → dist}/services/hardware.d.ts +0 -0
  797. /package/{src → dist}/services/image-description-runtime.d.ts +0 -0
  798. /package/{src → dist}/services/imagegen/aosp-unavailable.d.ts +0 -0
  799. /package/{src → dist}/services/imagegen/backend-selector.d.ts +0 -0
  800. /package/{src → dist}/services/imagegen/coreml-unavailable.d.ts +0 -0
  801. /package/{src → dist}/services/imagegen/errors.d.ts +0 -0
  802. /package/{src → dist}/services/imagegen/index.d.ts +0 -0
  803. /package/{src → dist}/services/imagegen/mflux.d.ts +0 -0
  804. /package/{src → dist}/services/imagegen/tensorrt-unavailable.d.ts +0 -0
  805. /package/{src → dist}/services/imagegen/types.d.ts +0 -0
  806. /package/{src → dist}/services/inference-capabilities.d.ts +0 -0
  807. /package/{src → dist}/services/inference-telemetry.d.ts +0 -0
  808. /package/{src → dist}/services/kv-spill.d.ts +0 -0
  809. /package/{src → dist}/services/latency-trace.d.ts +0 -0
  810. /package/{src → dist}/services/llm-streaming-binding.d.ts +0 -0
  811. /package/{src → dist}/services/load-args.d.ts +0 -0
  812. /package/{src → dist}/services/manifest/validator.d.ts +0 -0
  813. /package/{src → dist}/services/memory-pressure.d.ts +0 -0
  814. /package/{src → dist}/services/mtp-doctor.d.ts +0 -0
  815. /package/{src → dist}/services/network-policy.d.ts +0 -0
  816. /package/{src → dist}/services/paths.d.ts +0 -0
  817. /package/{src → dist}/services/planner-skeleton.d.ts +0 -0
  818. /package/{src → dist}/services/providers.d.ts +0 -0
  819. /package/{src → dist}/services/ram-budget.d.ts +0 -0
  820. /package/{src → dist}/services/readiness.d.ts +0 -0
  821. /package/{src → dist}/services/recommendation.d.ts +0 -0
  822. /package/{src → dist}/services/routing-preferences.d.ts +0 -0
  823. /package/{src → dist}/services/runtime-target.d.ts +0 -0
  824. /package/{src → dist}/services/session-pool.d.ts +0 -0
  825. /package/{src → dist}/services/structured-output/deterministic-repair.d.ts +0 -0
  826. /package/{src → dist}/services/structured-output.d.ts +0 -0
  827. /package/{src → dist}/services/system-memory.d.ts +0 -0
  828. /package/{src → dist}/services/verify-on-device.d.ts +0 -0
  829. /package/{src → dist}/services/verify.d.ts +0 -0
  830. /package/{src → dist}/services/vision/aosp-unavailable.d.ts +0 -0
  831. /package/{src → dist}/services/vision/capacitor-llama.d.ts +0 -0
  832. /package/{src → dist}/services/vision/cloud-fallback.d.ts +0 -0
  833. /package/{src → dist}/services/vision/hash.d.ts +0 -0
  834. /package/{src → dist}/services/vision/llama-server.d.ts +0 -0
  835. /package/{src → dist}/services/vision/vast-fallback.d.ts +0 -0
  836. /package/{src → dist}/services/voice/barge-in.d.ts +0 -0
  837. /package/{src → dist}/services/voice/cancellation-coordinator.d.ts +0 -0
  838. /package/{src → dist}/services/voice/checkpoint-manager.d.ts +0 -0
  839. /package/{src → dist}/services/voice/eager-context-builder.d.ts +0 -0
  840. /package/{src → dist}/services/voice/emotion-attribution.d.ts +0 -0
  841. /package/{src → dist}/services/voice/first-line-cache.d.ts +0 -0
  842. /package/{src → dist}/services/voice/kokoro/kokoro-runtime.d.ts +0 -0
  843. /package/{src → dist}/services/voice/kokoro/phonemizer.d.ts +0 -0
  844. /package/{src → dist}/services/voice/kokoro/types.d.ts +0 -0
  845. /package/{src → dist}/services/voice/kokoro/voice-presets.d.ts +0 -0
  846. /package/{src → dist}/services/voice/kokoro/voices.d.ts +0 -0
  847. /package/{src → dist}/services/voice/lifecycle.d.ts +0 -0
  848. /package/{src → dist}/services/voice/optimistic-policy.d.ts +0 -0
  849. /package/{src → dist}/services/voice/phoneme-tokenizer.d.ts +0 -0
  850. /package/{src → dist}/services/voice/phrase-cache.d.ts +0 -0
  851. /package/{src → dist}/services/voice/phrase-chunker.d.ts +0 -0
  852. /package/{src → dist}/services/voice/pipeline-impls.d.ts +0 -0
  853. /package/{src → dist}/services/voice/pipeline.d.ts +0 -0
  854. /package/{src → dist}/services/voice/prefill-client.d.ts +0 -0
  855. /package/{src → dist}/services/voice/prefix-preserving-queue.d.ts +0 -0
  856. /package/{src → dist}/services/voice/profile-store.d.ts +0 -0
  857. /package/{src → dist}/services/voice/ring-buffer.d.ts +0 -0
  858. /package/{src → dist}/services/voice/rollback-queue.d.ts +0 -0
  859. /package/{src → dist}/services/voice/samantha-preset-placeholder.d.ts +0 -0
  860. /package/{src → dist}/services/voice/samantha-preset-regenerator.d.ts +0 -0
  861. /package/{src → dist}/services/voice/scheduler.d.ts +0 -0
  862. /package/{src → dist}/services/voice/speaker/attribution-pipeline.d.ts +0 -0
  863. /package/{src → dist}/services/voice/speaker/diarizer-fused.d.ts +0 -0
  864. /package/{src → dist}/services/voice/speaker/diarizer.d.ts +0 -0
  865. /package/{src → dist}/services/voice/speaker/encoder-fused.d.ts +0 -0
  866. /package/{src → dist}/services/voice/speaker/encoder-ggml.d.ts +0 -0
  867. /package/{src → dist}/services/voice/speaker/encoder.d.ts +0 -0
  868. /package/{src → dist}/services/voice/speaker-imprint.d.ts +0 -0
  869. /package/{src → dist}/services/voice/speaker-preset-cache.d.ts +0 -0
  870. /package/{src → dist}/services/voice/system-audio-sink.d.ts +0 -0
  871. /package/{src → dist}/services/voice/transcript-knowledge.d.ts +0 -0
  872. /package/{src → dist}/services/voice/turn-controller.d.ts +0 -0
  873. /package/{src → dist}/services/voice/voice-budget.d.ts +0 -0
  874. /package/{src → dist}/services/voice/voice-emotion-classifier.d.ts +0 -0
  875. /package/{src → dist}/services/voice/voice-profile-artifact.d.ts +0 -0
  876. /package/{src → dist}/services/voice/voice-profile-routes.d.ts +0 -0
  877. /package/{src → dist}/services/voice/voice-state-machine.d.ts +0 -0
  878. /package/{src → dist}/services/voice/wake-word.d.ts +0 -0
  879. /package/{src → dist}/services/voice/wrap-with-first-line-cache.d.ts +0 -0
  880. /package/{src → dist}/services/voice-model-updater.d.ts +0 -0
  881. /package/{src → dist}/services/voice-prewarm.d.ts +0 -0
@@ -15,9 +15,13 @@
15
15
  // layers map but are not the same enum.
16
16
  // - The schema URL `https://elizaos.ai/schemas/eliza-1.manifest.v1.json` is
17
17
  // exported as a JSON Schema sibling file in this directory.
18
- // - Eliza-1 speculative decoding is native llama.cpp MTP. MTP-enabled tiers
19
- // ship a bundled drafter GGUF under `files.mtp`; the runtime resolves it at
20
- // load time and passes it as the draft model.
18
+ // - Eliza-1 speculative decoding is native llama.cpp MTP. Post-cutover (#9033)
19
+ // every Gemma 4 tier is SEPARATE-DRAFTER: it ships a dedicated drafter GGUF at
20
+ // `mtp/drafter-<tier>.gguf` in `files.mtp` (loaded `-md --spec-type
21
+ // draft-mtp`), with its own `lineage.drafter`, and declares top-level
22
+ // `mtp: "separate-drafter"`. (The legacy embedded-draft-head shape carried the
23
+ // draft head inside the primary text GGUF with `files.mtp` empty; no shipped
24
+ // Gemma tier uses it.) AGENTS.md §1/§3 require MTP on every tier.
21
25
  // - Per-sub-model versioning (kokoro, omnivoice, turn-detector, voice-emotion,
22
26
  // diarizer, speaker-encoder, vad, wakeword, embedding, asr) lives in
23
27
  // `packages/shared/src/local-inference/voice-models.ts` and the matching
@@ -26,25 +30,31 @@
26
30
  // auto-updater walks.
27
31
 
28
32
  import type { LocalRuntimeKernel } from "@elizaos/shared";
29
- import { z } from "zod";
33
+ import z from "zod";
30
34
 
31
35
  export const ELIZA_1_MANIFEST_SCHEMA_VERSION = "1" as const;
32
36
  export const ELIZA_1_MANIFEST_SCHEMA_URL =
33
37
  "https://elizaos.ai/schemas/eliza-1.manifest.v1.json" as const;
34
38
 
35
- // The shared Eliza-1 BPE vocabulary exported so runtime code can assert it.
36
- export const ELIZA_1_TOKENIZER_FAMILY = "qwen35" as const;
37
- export const ELIZA_1_TOKENIZER_VOCAB_SIZE = 248_320 as const;
39
+ // The shared Eliza-1 tokenizer (Gemma 4 SentencePiece, 262144-entry vocab),
40
+ // exported so runtime code can assert it. The cutover (#9033) moved eliza-1 to
41
+ // Gemma 4 bases, whose tokenizer family the bundle builder stamps as "gemma4".
42
+ export const ELIZA_1_TOKENIZER_FAMILY = "gemma4" as const;
43
+ export const ELIZA_1_TOKENIZER_VOCAB_SIZE = 262_144 as const;
44
+
45
+ // MTP (speculative-decode) bundle mode. Gemma 4 uses a SEPARATE drafter GGUF
46
+ // (`mtp/drafter-<tier>.gguf`, loaded `-md … --spec-type draft-mtp`); the older
47
+ // embedded-draft-head shape carried the draft head inside the primary text
48
+ // GGUF. AGENTS.md §1/§3 require MTP on every tier.
49
+ export const ELIZA_1_MTP_MODES = [
50
+ "separate-drafter",
51
+ "embedded-draft-head",
52
+ ] as const;
53
+ export type Eliza1MtpMode = (typeof ELIZA_1_MTP_MODES)[number];
38
54
 
39
55
  // Tiers — size-ordered across the active Eliza-1 bundles. 2b is the
40
56
  // smallest/entry tier.
41
- export const ELIZA_1_TIERS = [
42
- "2b",
43
- "4b",
44
- "9b",
45
- "27b",
46
- "27b-256k",
47
- ] as const;
57
+ export const ELIZA_1_TIERS = ["2b", "4b", "9b", "27b", "27b-256k"] as const;
48
58
  export type Eliza1Tier = (typeof ELIZA_1_TIERS)[number];
49
59
 
50
60
  // Manifest-level kernel capability names. Per AGENTS.md §3:
@@ -121,24 +131,41 @@ export const ELIZA_1_BACKENDS = [
121
131
  ] as const;
122
132
  export type Eliza1Backend = (typeof ELIZA_1_BACKENDS)[number];
123
133
 
124
- // Required-kernel set per tier. Mirrors the active Eliza-1 release policy:
125
- // - All tiers require turboquant + qjl + polarquant.
126
- // - All current text GGUFs ship at the 128k half-context floor or the 262k
127
- // native tier, so every tier requires `turbo3_tcq`. The validator also
128
- // enforces the same requirement dynamically for any bundle that declares
129
- // a >64k text file, so additional tiers cannot publish long-context text
130
- // without TCQ.
131
- //
132
- // Q4 is the release text quant baseline. TCQ is part of the release contract
133
- // for the full text ladder, including the smallest 2B bundle.
134
+ // Required-kernel set per tier. Mirrors the active Gemma 4 Eliza-1 release
135
+ // policy:
136
+ // - Every tier requires only the geometry-agnostic GGUF weight-quant
137
+ // (`turboquant_q4`). Weight quant operates on (out_features, in_features)
138
+ // matmul tensors and is independent of attention head geometry, so it
139
+ // applies to Gemma's dense MQA backbone unchanged.
140
+ // - The KV-cache kernels (`qjl`, `polarquant`, `turbo3_tcq`, and the
141
+ // `turbo3`/`turbo4` runtime handles) are 128-element FWHT-group kernels
142
+ // that are head_dim-coupled. They do NOT match Gemma's MQA geometry
143
+ // (n_head_kv=1) with dual head dims (512 global / 256 SWA), so Gemma 4
144
+ // ships stock q8_0 KV and these kernels are OPTIONAL, never required.
145
+ // They stay compiled into the shared lib for legacy non-Gemma tiers and the
146
+ // shared OmniVoice/ASR FFI symbols, but no Gemma tier declares them
147
+ // required.
134
148
  export const REQUIRED_KERNELS_BY_TIER: Readonly<
135
149
  Record<Eliza1Tier, ReadonlyArray<Eliza1Kernel>>
136
150
  > = {
137
- "2b": ["turboquant_q4", "qjl", "polarquant", "turbo3_tcq"],
138
- "4b": ["turboquant_q4", "qjl", "polarquant", "turbo3_tcq"],
139
- "9b": ["turboquant_q4", "qjl", "polarquant", "turbo3_tcq"],
140
- "27b": ["turboquant_q4", "qjl", "polarquant", "turbo3_tcq"],
141
- "27b-256k": ["turboquant_q4", "qjl", "polarquant", "turbo3_tcq"],
151
+ "2b": ["turboquant_q4"],
152
+ "4b": ["turboquant_q4"],
153
+ "9b": ["turboquant_q4"],
154
+ "27b": ["turboquant_q4"],
155
+ "27b-256k": ["turboquant_q4"],
156
+ };
157
+
158
+ // KV-cache kernels that remain available but are NOT required for any Gemma 4
159
+ // tier (head_dim=128/FWHT-group coupled; Gemma uses stock q8_0 KV). Surfaced
160
+ // as the optional kernel set for every tier.
161
+ export const OPTIONAL_KERNELS_BY_TIER: Readonly<
162
+ Record<Eliza1Tier, ReadonlyArray<Eliza1Kernel>>
163
+ > = {
164
+ "2b": ["qjl", "polarquant", "turbo3_tcq"],
165
+ "4b": ["qjl", "polarquant", "turbo3_tcq"],
166
+ "9b": ["qjl", "polarquant", "turbo3_tcq"],
167
+ "27b": ["qjl", "polarquant", "turbo3_tcq"],
168
+ "27b-256k": ["qjl", "polarquant", "turbo3_tcq"],
142
169
  };
143
170
 
144
171
  // Backends each tier is expected to support on shipped hardware.
@@ -183,7 +210,7 @@ export const Eliza1LineageSchema = z.object({
183
210
  // Voice Wave 2 (2026-05-14): semantic end-of-turn detector lineage. When
184
211
  // `files.turn` ships the bundled `livekit/turn-detector` ONNX (the
185
212
  // ≤1.7B-tier `v1.2.2-en` SmolLM2 distill or the ≥4B-tier `v0.4.1-intl`
186
- // pruned Qwen2.5-0.5B), this records the upstream repo + license. Apache-2.0
213
+ // multilingual detector), this records the upstream repo + license. Apache-2.0
187
214
  // fallback path is `latishab/turnsense`.
188
215
  turn: lineageEntry.optional(),
189
216
  // Voice Wave 2 (2026-05-14): acoustic-prosody emotion classifier lineage.
@@ -198,6 +225,22 @@ export const Eliza1LineageSchema = z.object({
198
225
  emotion: lineageEntry.optional(),
199
226
  });
200
227
 
228
+ // Runtime class a text artifact is served by. Defaults to GGUF/llama.cpp when
229
+ // absent, so every existing manifest round-trips unchanged.
230
+ // - `llama-cpp` — a `.gguf` served by the fused libelizainference llama.cpp
231
+ // path (the default).
232
+ // - `litert-lm` — a `.litertlm` single-file bundle served by the in-process
233
+ // LiteRT-LM backend (Android NPU / GPU delegate). The C-side
234
+ // `llm_backend_select` probes `<bundleRoot>/text/*.litertlm` and routes to
235
+ // it; the TS loader passes `ELIZA_LLM_BACKEND=litert-lm` when this entry is
236
+ // selected. See `tools/omnivoice/src/backends/litert-backend.cpp`.
237
+ export const ELIZA_1_TEXT_RUNTIME_CLASSES = ["llama-cpp", "litert-lm"] as const;
238
+ export type Eliza1TextRuntimeClass =
239
+ (typeof ELIZA_1_TEXT_RUNTIME_CLASSES)[number];
240
+ export const Eliza1TextRuntimeClassEnumSchema = z.enum(
241
+ ELIZA_1_TEXT_RUNTIME_CLASSES,
242
+ );
243
+
201
244
  export const Eliza1FileEntrySchema = z.object({
202
245
  path: z.string().min(1),
203
246
  sha256,
@@ -205,6 +248,29 @@ export const Eliza1FileEntrySchema = z.object({
205
248
  // largest variant that fits the device's RAM budget. Other file kinds
206
249
  // never have ctx.
207
250
  ctx: z.number().int().min(131072, "must be at least 128k").optional(),
251
+ // Optional runtime-class discriminator on a `files.text` entry. Absent ⇒
252
+ // `llama-cpp` (GGUF, the default). A `.litertlm` text artifact declares
253
+ // `runtimeClass: "litert-lm"` so the loader can route it to the LiteRT-LM
254
+ // backend without re-deriving the runtime from the filename.
255
+ runtimeClass: Eliza1TextRuntimeClassEnumSchema.optional(),
256
+ });
257
+
258
+ /**
259
+ * A platform-targeted native-lib file in the bundle's `lib[]` set. The fused
260
+ * `libelizainference` ships as a SET (the fused lib + its ggml/llama/mtmd
261
+ * sibling backends), one set per platform `target`. The downloader fetches ONLY
262
+ * the entries whose `target` matches the host (see `../lib-target.ts`
263
+ * `resolveHostLibTargets`) into `<bundleRoot>/lib/`, where the desktop FFI
264
+ * runtime resolves them with no env wiring via `resolveFusedLibraryPath`
265
+ * (path #2 — bundle-local lib). `target` is free-form (e.g. "win-x64-cpu",
266
+ * "linux-x64-cuda", "darwin-arm64-metal") so new targets need no schema bump;
267
+ * `name` overrides the staged filename (defaults to the basename of `path`).
268
+ */
269
+ export const Eliza1LibFileEntrySchema = z.object({
270
+ path: z.string().min(1),
271
+ sha256,
272
+ target: z.string().min(1),
273
+ name: z.string().min(1).optional(),
208
274
  });
209
275
 
210
276
  export const Eliza1FilesSchema = z.object({
@@ -215,12 +281,11 @@ export const Eliza1FilesSchema = z.object({
215
281
  mtp: z.array(Eliza1FileEntrySchema),
216
282
  cache: z.array(Eliza1FileEntrySchema).min(1),
217
283
  // Wave-6 (2026-05-10): the omni bundle ships a per-bundle dedicated
218
- // embedding model (Qwen3-Embedding-GGUF on non-lite tiers), a
219
- // Silero-VAD GGUF, and an optional openWakeWord GGUF (the combined GGUF
220
- // carries the mel filterbank + speech embedding model + every per-phrase
221
- // head). All three are optional in the schema the 2b entry tier
222
- // intentionally omits the dedicated embedding (pools from text backbone)
223
- // and a tier may ship without wake-word support.
284
+ // embedding model on non-lite tiers, a Silero-VAD GGUF, and an optional
285
+ // openWakeWord GGUF (the combined GGUF carries the mel filterbank + speech
286
+ // embedding model + every per-phrase head). All three are optional in the
287
+ // schema the 2b entry tier intentionally omits the dedicated embedding
288
+ // (pools from text backbone) and a tier may ship without wake-word support.
224
289
  //
225
290
  // Schema-level optionality: empty array = "this bundle does not
226
291
  // ship this component"; the validator enforces tier-specific
@@ -243,12 +308,12 @@ export const Eliza1FilesSchema = z.object({
243
308
  // `stage_turn_detector` in
244
309
  // `packages/training/scripts/manifest/stage_eliza1_bundle_assets.py`):
245
310
  // 2b ships the EN-only SmolLM2-135M distill; 4b/9b/27b ship the
246
- // multilingual pruned Qwen2.5-0.5B.
311
+ // multilingual detector.
247
312
  turn: z.array(Eliza1FileEntrySchema).optional(),
248
313
  // Eliza-1 EOT LoRA adapter — optional, complements `turn`. When
249
314
  // present, the runtime layers this adapter onto the in-process
250
315
  // drafter at voice-session start (`voice/eliza1-eot-scorer.ts`) so
251
- // P(`<|im_end|>`) calibration matches a fine-tuned EOT head without
316
+ // P(`<end_of_turn>`) calibration matches a fine-tuned EOT head without
252
317
  // shipping a second base model. When both `turn` and `eotLoraAdapter`
253
318
  // are present the operator picks via `ELIZA_VOICE_EOT_BACKEND` or
254
319
  // `startVoiceSession({ useEliza1Eot })`. Training recipe:
@@ -265,6 +330,16 @@ export const Eliza1FilesSchema = z.object({
265
330
  // dominated by the LM, not this small head); a 2b entry bundle may still
266
331
  // choose to omit it to save the cold-start cost.
267
332
  emotion: z.array(Eliza1FileEntrySchema).optional(),
333
+ // Fused libelizainference native-lib SET, per platform target (#9105 /
334
+ // local-inference bundle delivery). Optional — when present the downloader
335
+ // stages the host-matching target's files into `<bundleRoot>/lib/`, which the
336
+ // desktop FFI runtime resolves with no env wiring (`resolveFusedLibraryPath`
337
+ // path #2). CPU baseline is always safe (GGML_CPU is built into the fused
338
+ // lib); GPU targets (`…-cuda` / `…-metal`) are opt-in. This is the bundle
339
+ // path that makes local inference work in a compiled desktop app without a
340
+ // separate lib download; absent ⇒ the runtime falls back to a host-staged
341
+ // `<stateDir>/local-inference/lib` (dev) and otherwise to cloud.
342
+ lib: z.array(Eliza1LibFileEntrySchema).optional(),
268
343
  });
269
344
 
270
345
  export const Eliza1KernelEnumSchema = z.enum(ELIZA_1_KERNELS);
@@ -296,7 +371,12 @@ export const Eliza1RecipeKernelPinsSchema = z.object({
296
371
  perBlockTolerance: z.number().positive(),
297
372
  });
298
373
 
299
- export const Eliza1Eagle3KernelSchema = z
374
+ // Generic speculative-decode capability metadata (drafter-agnostic). Covers
375
+ // Gemma 4's separate-drafter MTP, an embedded draft head, or an EAGLE3 head —
376
+ // the shape only records the capability/spec-type/draft model, never the
377
+ // specific drafter family. `specType` names the runtime spec method (e.g.
378
+ // `draft-mtp`, `draft-eagle3`); `model` names the drafter/head artifact.
379
+ export const Eliza1SpecDecodeKernelSchema = z
300
380
  .object({
301
381
  enabled: z.boolean().optional(),
302
382
  capability: z.string().min(1).optional(),
@@ -318,8 +398,12 @@ export const Eliza1KernelsSchema = z.object({
318
398
  cpu: Eliza1VerifiedBackendStatusSchema,
319
399
  }),
320
400
  recipeManifest: z.record(z.string(), Eliza1RecipeKernelPinsSchema).optional(),
321
- // Optional EAGLE3 capability metadata.
322
- eagle3: Eliza1Eagle3KernelSchema.optional(),
401
+ // Optional speculative-decode capability metadata (canonical key).
402
+ specDecode: Eliza1SpecDecodeKernelSchema.optional(),
403
+ // Back-compat alias accepted for one release: pre-cutover manifests emit
404
+ // the same capability object under `eagle3`. New producers stamp
405
+ // `specDecode`; the validator reads `specDecode ?? eagle3`.
406
+ eagle3: Eliza1SpecDecodeKernelSchema.optional(),
323
407
  });
324
408
 
325
409
  // Wave-6: voice surface declares which expressive features the bundled
@@ -345,24 +429,27 @@ export const Eliza1VoiceSchema = z.object({
345
429
  capabilities: z.array(z.enum(ELIZA_1_VOICE_CAPABILITIES)).default(["tts"]),
346
430
  });
347
431
 
348
- const Eliza1Eagle3EvalSchema = z
432
+ // Generic speculative-decode eval metadata (drafter-agnostic): records the
433
+ // accepted/drafted acceptance rate and the spec-decode-on ÷ baseline speedup
434
+ // for whatever drafter the bundle ships (MTP separate drafter, EAGLE3 head, …).
435
+ const Eliza1SpecDecodeEvalSchema = z
349
436
  .object({
350
437
  /** accepted/drafted; null or absent when not measured. */
351
438
  acceptanceRate: z.number().min(0).max(1).nullable().optional(),
352
- /** EAGLE3-on tok/s ÷ baseline tok/s; null or absent when not measured. */
439
+ /** spec-decode-on tok/s ÷ baseline tok/s; null or absent when not measured. */
353
440
  speedup: z.number().nonnegative().nullable().optional(),
354
441
  /** Preferred spelling for pass/fail status. */
355
442
  passed: z.boolean().optional(),
356
443
  /** Back-compat spelling accepted for manifest producers that emit `pass`. */
357
444
  pass: z.boolean().optional(),
358
- /** Human-readable reason when the EAGLE3 eval was not run or failed. */
445
+ /** Human-readable reason when the spec-decode eval was not run or failed. */
359
446
  failure: z.string().min(1).optional(),
360
447
  })
361
- .superRefine((eagle3, ctx) => {
448
+ .superRefine((specDecode, ctx) => {
362
449
  if (
363
- eagle3.pass !== undefined &&
364
- eagle3.passed !== undefined &&
365
- eagle3.pass !== eagle3.passed
450
+ specDecode.pass !== undefined &&
451
+ specDecode.passed !== undefined &&
452
+ specDecode.pass !== specDecode.passed
366
453
  ) {
367
454
  ctx.addIssue({
368
455
  code: "custom",
@@ -370,10 +457,10 @@ const Eliza1Eagle3EvalSchema = z
370
457
  path: ["pass"],
371
458
  });
372
459
  }
373
- const passed = eagle3.passed ?? eagle3.pass;
460
+ const passed = specDecode.passed ?? specDecode.pass;
374
461
  if (
375
462
  passed === true &&
376
- (eagle3.acceptanceRate == null || eagle3.speedup == null)
463
+ (specDecode.acceptanceRate == null || specDecode.speedup == null)
377
464
  ) {
378
465
  ctx.addIssue({
379
466
  code: "custom",
@@ -435,8 +522,12 @@ export const Eliza1EvalsSchema = z.object({
435
522
  passed: z.boolean(),
436
523
  })
437
524
  .optional(),
438
- // Optional EAGLE3 speculative-decoding bench metadata.
439
- eagle3: Eliza1Eagle3EvalSchema.optional(),
525
+ // Optional speculative-decode bench metadata (canonical key).
526
+ specDecode: Eliza1SpecDecodeEvalSchema.optional(),
527
+ // Back-compat alias accepted for one release: pre-cutover manifests emit
528
+ // the same bench object under `eagle3`. The validator reads
529
+ // `specDecode ?? eagle3`.
530
+ eagle3: Eliza1SpecDecodeEvalSchema.optional(),
440
531
  // Voice Wave 2 (2026-05-14): semantic end-of-turn detector eval gates.
441
532
  // Required when `files.turn` is non-empty (validator enforces). Thresholds
442
533
  // applied by `eval_turn_detector.py` in `packages/training/scripts/turn_detector/`:
@@ -578,6 +669,15 @@ export const Eliza1ProvenanceSchema = z.object({
578
669
  ),
579
670
  });
580
671
 
672
+ // Gemma 4 cutover (schemaVersion 2): the shared tokenizer identity the
673
+ // publish-side builder stamps onto every bundle. The contract validator pins
674
+ // `family` to `ELIZA_1_TOKENIZER_FAMILY` and `vocabSize` to
675
+ // `ELIZA_1_TOKENIZER_VOCAB_SIZE` when this block is present.
676
+ export const Eliza1TokenizerSchema = z.object({
677
+ family: z.string().min(1),
678
+ vocabSize: z.number().int().positive(),
679
+ });
680
+
581
681
  export const Eliza1ManifestSchema = z
582
682
  .object({
583
683
  $schema: z.literal(ELIZA_1_MANIFEST_SCHEMA_URL).optional(),
@@ -628,6 +728,14 @@ export const Eliza1ManifestSchema = z
628
728
  textQuant: z
629
729
  .union([z.string().min(1), z.record(z.string(), z.unknown())])
630
730
  .optional(),
731
+ // Gemma 4 cutover (schemaVersion 2) identity fields, stamped by the
732
+ // publish-side bundle builder. Optional so legacy v1 (pre-cutover)
733
+ // manifests still round-trip; the contract validator enforces their
734
+ // values when present.
735
+ schemaVersion: z.union([z.literal("2"), z.literal(2)]).optional(),
736
+ tokenizer: Eliza1TokenizerSchema.optional(),
737
+ kv: z.string().min(1).optional(),
738
+ mtp: z.enum(ELIZA_1_MTP_MODES).optional(),
631
739
  })
632
740
  // The id MUST encode the tier so catalogs can derive tier from id without
633
741
  // re-reading the manifest. Example: `id: "eliza-1-9b"`.
@@ -15,10 +15,12 @@ import type {
15
15
  Eliza1FilesSchema,
16
16
  Eliza1KernelEnumSchema,
17
17
  Eliza1KernelsSchema,
18
+ Eliza1LibFileEntrySchema,
18
19
  Eliza1LineageSchema,
19
20
  Eliza1ManifestSchema,
20
21
  Eliza1ProvenanceSchema,
21
22
  Eliza1RamBudgetSchema,
23
+ Eliza1TextRuntimeClassEnumSchema,
22
24
  Eliza1TierEnumSchema,
23
25
  Eliza1VerifiedBackendStatusSchema,
24
26
  Eliza1VoiceSchema,
@@ -27,7 +29,11 @@ import type {
27
29
  export type Eliza1Tier = z.infer<typeof Eliza1TierEnumSchema>;
28
30
  export type Eliza1Kernel = z.infer<typeof Eliza1KernelEnumSchema>;
29
31
  export type Eliza1Backend = z.infer<typeof Eliza1BackendEnumSchema>;
32
+ export type Eliza1TextRuntimeClass = z.infer<
33
+ typeof Eliza1TextRuntimeClassEnumSchema
34
+ >;
30
35
  export type Eliza1FileEntry = z.infer<typeof Eliza1FileEntrySchema>;
36
+ export type Eliza1LibFileEntry = z.infer<typeof Eliza1LibFileEntrySchema>;
31
37
  export type Eliza1Files = z.infer<typeof Eliza1FilesSchema>;
32
38
  export type Eliza1Lineage = z.infer<typeof Eliza1LineageSchema>;
33
39
  export type Eliza1Kernels = z.infer<typeof Eliza1KernelsSchema>;
@@ -23,6 +23,12 @@
23
23
  // `packages/training/scripts/manifest/eliza1_manifest.py`.
24
24
 
25
25
  import {
26
+ collectQwenAsrProvenanceBlockers,
27
+ QWEN_PROVENANCE_RE,
28
+ } from "../asr-provenance";
29
+ import {
30
+ ELIZA_1_TOKENIZER_FAMILY,
31
+ ELIZA_1_TOKENIZER_VOCAB_SIZE,
26
32
  Eliza1ManifestSchema,
27
33
  EMOTION_CLASSIFIER_IEMOCAP_F1_THRESHOLD,
28
34
  EMOTION_CLASSIFIER_MEAN_LATENCY_MS_LIMIT,
@@ -230,6 +236,37 @@ function collectContractErrors(
230
236
  )) ||
231
237
  (releaseState !== undefined && STRICT_RELEASE_STATES.has(releaseState));
232
238
 
239
+ // Gemma 4 cutover: a release-shaped (strict/defaultEligible) bundle must be
240
+ // the real Gemma-4 base, never the Qwen3.5 / local-standin placeholder the
241
+ // pre-cutover bundles shipped. Block a stand-in from defining the default.
242
+ if (strictRelease) {
243
+ const textBase = m.lineage.text.base;
244
+ if (
245
+ /^local-standin:/i.test(textBase) ||
246
+ QWEN_PROVENANCE_RE.test(textBase)
247
+ ) {
248
+ errors.push(
249
+ `lineage.text.base: a strict/defaultEligible release must ship the real Gemma-4 base, not a stand-in (${textBase})`,
250
+ );
251
+ }
252
+ errors.push(...collectQwenAsrProvenanceBlockers(m));
253
+ }
254
+
255
+ // Tokenizer identity: when the bundle stamps the Gemma 4 tokenizer block
256
+ // (schemaVersion 2), it must be the shared Gemma 4 tokenizer.
257
+ if (m.tokenizer) {
258
+ if (m.tokenizer.family !== ELIZA_1_TOKENIZER_FAMILY) {
259
+ errors.push(
260
+ `tokenizer.family: expected ${ELIZA_1_TOKENIZER_FAMILY}, got ${m.tokenizer.family}`,
261
+ );
262
+ }
263
+ if (m.tokenizer.vocabSize !== ELIZA_1_TOKENIZER_VOCAB_SIZE) {
264
+ errors.push(
265
+ `tokenizer.vocabSize: expected ${ELIZA_1_TOKENIZER_VOCAB_SIZE}, got ${m.tokenizer.vocabSize}`,
266
+ );
267
+ }
268
+ }
269
+
233
270
  // Required-kernel coverage.
234
271
  const declaredRequired = new Set<Eliza1Kernel>(m.kernels.required);
235
272
  const tierRequired = REQUIRED_KERNELS_BY_TIER[m.tier];
@@ -256,18 +293,12 @@ function collectContractErrors(
256
293
  }
257
294
  }
258
295
 
259
- // Long-context tiers MUST require turbo3_tcq once any text variant has
260
- // ctx > 64k. AGENTS.md §3 Required for desktop/pro/server (#6).
261
- const hasLongContextVariant = m.files.text.some(
262
- (f) => typeof f.ctx === "number" && f.ctx > 65536,
263
- );
264
- if (hasLongContextVariant) {
265
- if (!declaredRequired.has("turbo3_tcq")) {
266
- errors.push(
267
- "kernels.required: text variant with ctx > 64k requires turbo3_tcq",
268
- );
269
- }
270
- }
296
+ // Gemma 4 cutover (#9033): long-context KV is handled by Gemma's native
297
+ // windowed-SWA + shared-KV at stock q8_0, so the legacy turbo3_tcq trellis
298
+ // KV-cache kernel is no longer a required long-context kernel — it is an
299
+ // optional (head_dim=128) accelerator the Gemma stock-KV path doesn't use.
300
+ // Required kernels are governed by REQUIRED_KERNELS_BY_TIER (turboquant_q4
301
+ // weight-quant), checked above; nothing extra is gated on context length.
271
302
 
272
303
  const visionEnabled = VISION_TIERS.has(m.tier);
273
304
  if (visionEnabled) {
@@ -280,11 +311,37 @@ function collectContractErrors(
280
311
 
281
312
  const mtpEnabled = MTP_TIERS.has(m.tier);
282
313
  if (mtpEnabled) {
283
- if (m.files.mtp.length === 0) {
284
- errors.push(`files.mtp: required for MTP-enabled tier ${m.tier}`);
285
- }
286
- if (!m.lineage.drafter) {
287
- errors.push(`lineage.drafter: required for MTP-enabled tier ${m.tier}`);
314
+ // Gemma 4 MTP is separate-drafter: every MTP tier bundles a dedicated
315
+ // drafter GGUF at `mtp/drafter-<tier>.gguf` (loaded by llama.cpp as
316
+ // `-md mtp/drafter-<tier>.gguf --spec-type draft-mtp`). A strict release
317
+ // that omits the drafter is not release-shaped (AGENTS.md §1/§3 require
318
+ // MTP on every tier); a candidate/staging bundle may still be
319
+ // materialized without it. The legacy embedded-draft-head shape — no
320
+ // shipped Gemma tier uses it — is honored only when the manifest
321
+ // explicitly declares `mtp: "embedded-draft-head"`.
322
+ if (m.mtp === "embedded-draft-head") {
323
+ if (m.files.mtp.length > 0) {
324
+ errors.push(
325
+ `files.mtp: must be empty for embedded-draft-head MTP tier ${m.tier}`,
326
+ );
327
+ }
328
+ } else {
329
+ const expectedDrafterPath = `mtp/drafter-${m.tier}.gguf`;
330
+ if (m.files.mtp.length === 0) {
331
+ if (strictRelease) {
332
+ errors.push(
333
+ `files.mtp: MTP drafter not bundled — separate-drafter tier ${m.tier} must ship ${expectedDrafterPath}`,
334
+ );
335
+ }
336
+ } else {
337
+ for (const [i, entry] of m.files.mtp.entries()) {
338
+ if (entry.path !== expectedDrafterPath) {
339
+ errors.push(
340
+ `files.mtp[${i}].path: separate-drafter tier ${m.tier} must bundle the drafter at ${expectedDrafterPath}, got ${entry.path}`,
341
+ );
342
+ }
343
+ }
344
+ }
288
345
  }
289
346
  if (!m.evals.mtp) {
290
347
  errors.push(`evals.mtp: required for MTP-enabled tier ${m.tier}`);
@@ -394,6 +451,13 @@ function collectContractErrors(
394
451
  errors.push(`files.${slot}: required when lineage.${slot} is present`);
395
452
  }
396
453
  }
454
+ // Gemma 4 separate-drafter MTP: the bundled drafter GGUF carries its own
455
+ // lineage, governed by the same files<->lineage consistency rule as every
456
+ // other component slot above. (Embedded-draft-head bundles ship no separate
457
+ // drafter, so both files.mtp and lineage.drafter are empty — also satisfied.)
458
+ if (m.files.mtp.length > 0 && !m.lineage.drafter) {
459
+ errors.push("lineage.drafter: required when files.mtp is non-empty");
460
+ }
397
461
  if (m.lineage.drafter && m.files.mtp.length === 0) {
398
462
  errors.push("files.mtp: required when lineage.drafter is present");
399
463
  }
@@ -526,17 +590,19 @@ function collectContractErrors(
526
590
  }
527
591
  }
528
592
 
529
- // EAGLE3 bench metadata is always optional. When
530
- // present, it may record a not-run/failure state; only a passing claim must
531
- // include measured acceptance/speedup values.
532
- if (m.evals.eagle3) {
533
- const eagle3Passed = m.evals.eagle3.passed ?? m.evals.eagle3.pass;
593
+ // Speculative-decode bench metadata is always optional. When present, it may
594
+ // record a not-run/failure state; only a passing claim must include measured
595
+ // acceptance/speedup values. The canonical key is `specDecode`; `eagle3` is
596
+ // the back-compat alias accepted for one release.
597
+ const specDecodeEval = m.evals.specDecode ?? m.evals.eagle3;
598
+ if (specDecodeEval) {
599
+ const specDecodePassed = specDecodeEval.passed ?? specDecodeEval.pass;
534
600
  if (
535
- eagle3Passed === true &&
536
- (m.evals.eagle3.acceptanceRate == null || m.evals.eagle3.speedup == null)
601
+ specDecodePassed === true &&
602
+ (specDecodeEval.acceptanceRate == null || specDecodeEval.speedup == null)
537
603
  ) {
538
604
  errors.push(
539
- "evals.eagle3: passed=true requires measured acceptanceRate and speedup",
605
+ "evals.specDecode: passed=true requires measured acceptanceRate and speedup",
540
606
  );
541
607
  }
542
608
  }