@elizaos/plugin-local-inference 2.0.0-beta.1 → 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 (893) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +157 -0
  3. package/dist/actions/generate-media.d.ts +59 -0
  4. package/dist/actions/generate-media.d.ts.map +1 -0
  5. package/dist/actions/identify-speaker.d.ts +23 -0
  6. package/dist/actions/identify-speaker.d.ts.map +1 -0
  7. package/dist/actions/transcription-control.d.ts +29 -0
  8. package/dist/actions/transcription-control.d.ts.map +1 -0
  9. package/dist/adapters/capacitor-llama/environment.d.ts +12 -0
  10. package/dist/adapters/capacitor-llama/environment.d.ts.map +1 -0
  11. package/dist/adapters/capacitor-llama/index.browser.d.ts +9 -0
  12. package/dist/adapters/capacitor-llama/index.browser.d.ts.map +1 -0
  13. package/dist/adapters/capacitor-llama/index.d.ts +18 -0
  14. package/dist/adapters/capacitor-llama/index.d.ts.map +1 -0
  15. package/dist/adapters/capacitor-llama/loader.d.ts +35 -0
  16. package/dist/adapters/capacitor-llama/loader.d.ts.map +1 -0
  17. package/dist/adapters/capacitor-llama/native-voice-capture.d.ts +70 -0
  18. package/dist/adapters/capacitor-llama/native-voice-capture.d.ts.map +1 -0
  19. package/dist/adapters/capacitor-llama/structured-output.d.ts +62 -0
  20. package/dist/adapters/capacitor-llama/structured-output.d.ts.map +1 -0
  21. package/dist/adapters/capacitor-llama/text-streaming.d.ts +24 -0
  22. package/dist/adapters/capacitor-llama/text-streaming.d.ts.map +1 -0
  23. package/dist/adapters/capacitor-llama/types.d.ts +338 -0
  24. package/dist/adapters/capacitor-llama/types.d.ts.map +1 -0
  25. package/dist/adapters/capacitor-llama/voice-turn.d.ts +86 -0
  26. package/dist/adapters/capacitor-llama/voice-turn.d.ts.map +1 -0
  27. package/dist/backends/apple-foundation.d.ts +56 -0
  28. package/dist/backends/apple-foundation.d.ts.map +1 -0
  29. package/dist/index.d.ts +8 -37
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +38979 -430
  32. package/dist/index.js.map +217 -0
  33. package/dist/local-inference-routes.d.ts +47 -0
  34. package/dist/local-inference-routes.d.ts.map +1 -0
  35. package/dist/provider.d.ts +21 -0
  36. package/dist/provider.d.ts.map +1 -0
  37. package/dist/routes/compat-helpers.d.ts +18 -0
  38. package/dist/routes/compat-helpers.d.ts.map +1 -0
  39. package/dist/routes/family-member-route.d.ts +62 -0
  40. package/dist/routes/family-member-route.d.ts.map +1 -0
  41. package/dist/routes/index.d.ts +20 -0
  42. package/dist/routes/index.d.ts.map +1 -0
  43. package/dist/routes/index.js +42040 -0
  44. package/dist/routes/index.js.map +236 -0
  45. package/dist/routes/live-diarization-route.d.ts +33 -0
  46. package/dist/routes/live-diarization-route.d.ts.map +1 -0
  47. package/dist/routes/local-inference-asr-route.d.ts +4 -0
  48. package/dist/routes/local-inference-asr-route.d.ts.map +1 -0
  49. package/dist/routes/local-inference-asr-transcribe.d.ts +20 -0
  50. package/dist/routes/local-inference-asr-transcribe.d.ts.map +1 -0
  51. package/dist/routes/local-inference-compat-routes.d.ts +16 -0
  52. package/dist/routes/local-inference-compat-routes.d.ts.map +1 -0
  53. package/dist/routes/local-inference-tts-route.d.ts +7 -0
  54. package/dist/routes/local-inference-tts-route.d.ts.map +1 -0
  55. package/dist/routes/native-pcm-turn-route.d.ts +3 -0
  56. package/dist/routes/native-pcm-turn-route.d.ts.map +1 -0
  57. package/dist/routes/transcript-audio-store.d.ts +15 -0
  58. package/dist/routes/transcript-audio-store.d.ts.map +1 -0
  59. package/dist/routes/transcripts-routes.d.ts +44 -0
  60. package/dist/routes/transcripts-routes.d.ts.map +1 -0
  61. package/dist/routes/voice-first-run-routes.d.ts +62 -0
  62. package/dist/routes/voice-first-run-routes.d.ts.map +1 -0
  63. package/dist/routes/voice-models-routes.d.ts +62 -0
  64. package/dist/routes/voice-models-routes.d.ts.map +1 -0
  65. package/dist/routes/voice-profile-plugin-routes.d.ts +19 -0
  66. package/dist/routes/voice-profile-plugin-routes.d.ts.map +1 -0
  67. package/dist/routes/voice-profiles-management-routes.d.ts +52 -0
  68. package/dist/routes/voice-profiles-management-routes.d.ts.map +1 -0
  69. package/dist/routes/voice-speaker-profile-routes.d.ts +57 -0
  70. package/dist/routes/voice-speaker-profile-routes.d.ts.map +1 -0
  71. package/dist/runtime/embedding-manager-support.d.ts +77 -0
  72. package/dist/runtime/embedding-manager-support.d.ts.map +1 -0
  73. package/dist/runtime/embedding-presets.d.ts +16 -0
  74. package/dist/runtime/embedding-presets.d.ts.map +1 -0
  75. package/dist/runtime/embedding-warmup-policy.d.ts +14 -0
  76. package/dist/runtime/embedding-warmup-policy.d.ts.map +1 -0
  77. package/dist/runtime/ensure-local-inference-handler.d.ts +70 -0
  78. package/dist/runtime/ensure-local-inference-handler.d.ts.map +1 -0
  79. package/dist/runtime/index.d.ts +15 -0
  80. package/dist/runtime/index.d.ts.map +1 -0
  81. package/dist/runtime/index.js +38768 -0
  82. package/dist/runtime/index.js.map +217 -0
  83. package/dist/runtime/mobile-local-inference-gate.d.ts +63 -0
  84. package/dist/runtime/mobile-local-inference-gate.d.ts.map +1 -0
  85. package/dist/runtime/voice-entity-binding.d.ts +113 -0
  86. package/dist/runtime/voice-entity-binding.d.ts.map +1 -0
  87. package/dist/services/active-model.d.ts +310 -0
  88. package/dist/services/active-model.d.ts.map +1 -0
  89. package/dist/services/asr-provenance.d.ts +5 -0
  90. package/dist/services/asr-provenance.d.ts.map +1 -0
  91. package/dist/services/assignments.d.ts +84 -0
  92. package/dist/services/assignments.d.ts.map +1 -0
  93. package/dist/services/backend-selector.d.ts +55 -0
  94. package/dist/services/backend-selector.d.ts.map +1 -0
  95. package/dist/services/backend.d.ts +440 -0
  96. package/dist/services/backend.d.ts.map +1 -0
  97. package/dist/services/bionic-host-loader.d.ts +67 -0
  98. package/dist/services/bionic-host-loader.d.ts.map +1 -0
  99. package/dist/services/bundled-models.d.ts +34 -0
  100. package/dist/services/bundled-models.d.ts.map +1 -0
  101. package/dist/services/cache-bridge.d.ts +206 -0
  102. package/dist/services/cache-bridge.d.ts.map +1 -0
  103. package/dist/services/catalog.d.ts +10 -0
  104. package/dist/services/catalog.d.ts.map +1 -0
  105. package/dist/services/checkpoint-client.d.ts +109 -0
  106. package/dist/services/checkpoint-client.d.ts.map +1 -0
  107. package/dist/services/checkpoint-manager.d.ts +217 -0
  108. package/dist/services/checkpoint-manager.d.ts.map +1 -0
  109. package/dist/services/cloud-fallback.d.ts +102 -0
  110. package/dist/services/cloud-fallback.d.ts.map +1 -0
  111. package/dist/services/context-fit.d.ts +36 -0
  112. package/dist/services/context-fit.d.ts.map +1 -0
  113. package/dist/services/conversation-registry.d.ts +142 -0
  114. package/dist/services/conversation-registry.d.ts.map +1 -0
  115. package/dist/services/desktop-fused-ffi-backend-runtime.d.ts +111 -0
  116. package/dist/services/desktop-fused-ffi-backend-runtime.d.ts.map +1 -0
  117. package/dist/services/device-bridge.d.ts +188 -0
  118. package/dist/services/device-bridge.d.ts.map +1 -0
  119. package/dist/services/device-resource-metrics.d.ts +149 -0
  120. package/dist/services/device-resource-metrics.d.ts.map +1 -0
  121. package/dist/services/device-tier.d.ts +133 -0
  122. package/dist/services/device-tier.d.ts.map +1 -0
  123. package/dist/services/downloader.d.ts +94 -0
  124. package/dist/services/downloader.d.ts.map +1 -0
  125. package/dist/services/engine.d.ts +579 -0
  126. package/dist/services/engine.d.ts.map +1 -0
  127. package/dist/services/ensure-local-artifacts.d.ts +82 -0
  128. package/dist/services/ensure-local-artifacts.d.ts.map +1 -0
  129. package/dist/services/external-scanner.d.ts +17 -0
  130. package/dist/services/external-scanner.d.ts.map +1 -0
  131. package/dist/services/ffi-llm-mock.d.ts +90 -0
  132. package/dist/services/ffi-llm-mock.d.ts.map +1 -0
  133. package/dist/services/ffi-llm-streaming-abi.d.ts +318 -0
  134. package/dist/services/ffi-llm-streaming-abi.d.ts.map +1 -0
  135. package/dist/services/ffi-streaming-backend.d.ts +201 -0
  136. package/dist/services/ffi-streaming-backend.d.ts.map +1 -0
  137. package/dist/services/ffi-streaming-runner.d.ts +146 -0
  138. package/dist/services/ffi-streaming-runner.d.ts.map +1 -0
  139. package/dist/services/gpu-autotune.d.ts +150 -0
  140. package/dist/services/gpu-autotune.d.ts.map +1 -0
  141. package/dist/services/gpu-detect.d.ts +56 -0
  142. package/dist/services/gpu-detect.d.ts.map +1 -0
  143. package/dist/services/handler-registry.d.ts +72 -0
  144. package/dist/services/handler-registry.d.ts.map +1 -0
  145. package/dist/services/hardware.d.ts +63 -0
  146. package/dist/services/hardware.d.ts.map +1 -0
  147. package/dist/services/image-description-runtime.d.ts +14 -0
  148. package/dist/services/image-description-runtime.d.ts.map +1 -0
  149. package/dist/services/imagegen/aosp-unavailable.d.ts +134 -0
  150. package/dist/services/imagegen/aosp-unavailable.d.ts.map +1 -0
  151. package/dist/services/imagegen/backend-selector.d.ts +118 -0
  152. package/dist/services/imagegen/backend-selector.d.ts.map +1 -0
  153. package/dist/services/imagegen/coreml-unavailable.d.ts +105 -0
  154. package/dist/services/imagegen/coreml-unavailable.d.ts.map +1 -0
  155. package/dist/services/imagegen/errors.d.ts +16 -0
  156. package/dist/services/imagegen/errors.d.ts.map +1 -0
  157. package/dist/services/imagegen/index.d.ts +58 -0
  158. package/dist/services/imagegen/index.d.ts.map +1 -0
  159. package/dist/services/imagegen/mflux.d.ts +74 -0
  160. package/dist/services/imagegen/mflux.d.ts.map +1 -0
  161. package/dist/services/imagegen/sd-cpp.d.ts +181 -0
  162. package/dist/services/imagegen/sd-cpp.d.ts.map +1 -0
  163. package/dist/services/imagegen/tensorrt-unavailable.d.ts +83 -0
  164. package/dist/services/imagegen/tensorrt-unavailable.d.ts.map +1 -0
  165. package/dist/services/imagegen/types.d.ts +181 -0
  166. package/dist/services/imagegen/types.d.ts.map +1 -0
  167. package/dist/services/index.d.ts +31 -0
  168. package/dist/services/index.d.ts.map +1 -0
  169. package/dist/services/index.js +39453 -0
  170. package/dist/services/index.js.map +227 -0
  171. package/dist/services/inference-capabilities.d.ts +132 -0
  172. package/dist/services/inference-capabilities.d.ts.map +1 -0
  173. package/dist/services/inference-telemetry.d.ts +59 -0
  174. package/dist/services/inference-telemetry.d.ts.map +1 -0
  175. package/dist/services/ios-llama-streaming.d.ts +119 -0
  176. package/dist/services/ios-llama-streaming.d.ts.map +1 -0
  177. package/dist/services/kv-spill.d.ts +189 -0
  178. package/dist/services/kv-spill.d.ts.map +1 -0
  179. package/dist/services/latency-trace.d.ts +346 -0
  180. package/dist/services/latency-trace.d.ts.map +1 -0
  181. package/dist/services/lib-target.d.ts +55 -0
  182. package/dist/services/lib-target.d.ts.map +1 -0
  183. package/dist/services/live-signals.d.ts +86 -0
  184. package/dist/services/live-signals.d.ts.map +1 -0
  185. package/dist/services/llama-server-metrics.d.ts +114 -0
  186. package/dist/services/llama-server-metrics.d.ts.map +1 -0
  187. package/dist/services/llm-streaming-binding.d.ts +96 -0
  188. package/dist/services/llm-streaming-binding.d.ts.map +1 -0
  189. package/dist/services/load-args.d.ts +82 -0
  190. package/dist/services/load-args.d.ts.map +1 -0
  191. package/dist/services/manifest/index.d.ts +4 -0
  192. package/dist/services/manifest/index.d.ts.map +1 -0
  193. package/dist/services/manifest/schema.d.ts +903 -0
  194. package/dist/services/manifest/schema.d.ts.map +1 -0
  195. package/dist/services/manifest/types.d.ts +32 -0
  196. package/dist/services/manifest/types.d.ts.map +1 -0
  197. package/dist/services/manifest/validator.d.ts +66 -0
  198. package/dist/services/manifest/validator.d.ts.map +1 -0
  199. package/dist/services/memory-arbiter.d.ts +348 -0
  200. package/dist/services/memory-arbiter.d.ts.map +1 -0
  201. package/dist/services/memory-benchmark.d.ts +76 -0
  202. package/dist/services/memory-benchmark.d.ts.map +1 -0
  203. package/dist/services/memory-monitor.d.ts +128 -0
  204. package/dist/services/memory-monitor.d.ts.map +1 -0
  205. package/dist/services/memory-pressure.d.ts +130 -0
  206. package/dist/services/memory-pressure.d.ts.map +1 -0
  207. package/dist/services/mtp-doctor.d.ts +13 -0
  208. package/dist/services/mtp-doctor.d.ts.map +1 -0
  209. package/dist/services/network-policy.d.ts +127 -0
  210. package/dist/services/network-policy.d.ts.map +1 -0
  211. package/dist/services/paths.d.ts +6 -0
  212. package/dist/services/paths.d.ts.map +1 -0
  213. package/dist/services/planner-skeleton.d.ts +124 -0
  214. package/dist/services/planner-skeleton.d.ts.map +1 -0
  215. package/dist/services/providers.d.ts +38 -0
  216. package/dist/services/providers.d.ts.map +1 -0
  217. package/dist/services/ram-budget.d.ts +110 -0
  218. package/dist/services/ram-budget.d.ts.map +1 -0
  219. package/dist/services/readiness.d.ts +9 -0
  220. package/dist/services/readiness.d.ts.map +1 -0
  221. package/dist/services/recommendation.d.ts +111 -0
  222. package/dist/services/recommendation.d.ts.map +1 -0
  223. package/dist/services/registry.d.ts +33 -0
  224. package/dist/services/registry.d.ts.map +1 -0
  225. package/dist/services/router-handler.d.ts +92 -0
  226. package/dist/services/router-handler.d.ts.map +1 -0
  227. package/dist/services/routing-policy.d.ts +92 -0
  228. package/dist/services/routing-policy.d.ts.map +1 -0
  229. package/dist/services/routing-preferences.d.ts +8 -0
  230. package/dist/services/routing-preferences.d.ts.map +1 -0
  231. package/dist/services/runtime-target.d.ts +98 -0
  232. package/dist/services/runtime-target.d.ts.map +1 -0
  233. package/dist/services/service.d.ts +128 -0
  234. package/dist/services/service.d.ts.map +1 -0
  235. package/dist/services/session-pool.d.ts +72 -0
  236. package/dist/services/session-pool.d.ts.map +1 -0
  237. package/dist/services/structured-output/deterministic-repair.d.ts +23 -0
  238. package/dist/services/structured-output/deterministic-repair.d.ts.map +1 -0
  239. package/dist/services/structured-output/index.d.ts +2 -0
  240. package/dist/services/structured-output/index.d.ts.map +1 -0
  241. package/dist/services/structured-output.d.ts +311 -0
  242. package/dist/services/structured-output.d.ts.map +1 -0
  243. package/dist/services/system-memory.d.ts +33 -0
  244. package/dist/services/system-memory.d.ts.map +1 -0
  245. package/dist/services/types.d.ts +19 -0
  246. package/dist/services/types.d.ts.map +1 -0
  247. package/dist/services/verify-on-device.d.ts +34 -0
  248. package/dist/services/verify-on-device.d.ts.map +1 -0
  249. package/dist/services/verify.d.ts +8 -0
  250. package/dist/services/verify.d.ts.map +1 -0
  251. package/dist/services/vision/aosp-unavailable.d.ts +115 -0
  252. package/dist/services/vision/aosp-unavailable.d.ts.map +1 -0
  253. package/dist/services/vision/capacitor-llama.d.ts +99 -0
  254. package/dist/services/vision/capacitor-llama.d.ts.map +1 -0
  255. package/dist/services/vision/cloud-fallback.d.ts +47 -0
  256. package/dist/services/vision/cloud-fallback.d.ts.map +1 -0
  257. package/dist/services/vision/hash.d.ts +71 -0
  258. package/dist/services/vision/hash.d.ts.map +1 -0
  259. package/dist/services/vision/index.d.ts +95 -0
  260. package/dist/services/vision/index.d.ts.map +1 -0
  261. package/dist/services/vision/llama-server.d.ts +73 -0
  262. package/dist/services/vision/llama-server.d.ts.map +1 -0
  263. package/dist/services/vision/types.d.ts +162 -0
  264. package/dist/services/vision/types.d.ts.map +1 -0
  265. package/dist/services/vision/vast-fallback.d.ts +18 -0
  266. package/dist/services/vision/vast-fallback.d.ts.map +1 -0
  267. package/dist/services/vision-embedding-cache.d.ts +98 -0
  268. package/dist/services/vision-embedding-cache.d.ts.map +1 -0
  269. package/dist/services/voice/__test-helpers__/fake-ffi.d.ts +27 -0
  270. package/dist/services/voice/__test-helpers__/fake-ffi.d.ts.map +1 -0
  271. package/dist/services/voice/__test-helpers__/synthetic-speech.d.ts +66 -0
  272. package/dist/services/voice/__test-helpers__/synthetic-speech.d.ts.map +1 -0
  273. package/dist/services/voice/acoustic-speaker-attribution.d.ts +61 -0
  274. package/dist/services/voice/acoustic-speaker-attribution.d.ts.map +1 -0
  275. package/dist/services/voice/audio-frame-consumer.d.ts +294 -0
  276. package/dist/services/voice/audio-frame-consumer.d.ts.map +1 -0
  277. package/dist/services/voice/barge-in.d.ts +112 -0
  278. package/dist/services/voice/barge-in.d.ts.map +1 -0
  279. package/dist/services/voice/cancellation-coordinator.d.ts +127 -0
  280. package/dist/services/voice/cancellation-coordinator.d.ts.map +1 -0
  281. package/dist/services/voice/checkpoint-manager.d.ts +199 -0
  282. package/dist/services/voice/checkpoint-manager.d.ts.map +1 -0
  283. package/dist/services/voice/checkpoint-policy.d.ts +178 -0
  284. package/dist/services/voice/checkpoint-policy.d.ts.map +1 -0
  285. package/dist/services/voice/corpus-augment.d.ts +111 -0
  286. package/dist/services/voice/corpus-augment.d.ts.map +1 -0
  287. package/dist/services/voice/corpus-generator.d.ts +134 -0
  288. package/dist/services/voice/corpus-generator.d.ts.map +1 -0
  289. package/dist/services/voice/diarization-error-rate.d.ts +40 -0
  290. package/dist/services/voice/diarization-error-rate.d.ts.map +1 -0
  291. package/dist/services/voice/e2e-harness.d.ts +297 -0
  292. package/dist/services/voice/e2e-harness.d.ts.map +1 -0
  293. package/dist/services/voice/eager-context-builder.d.ts +170 -0
  294. package/dist/services/voice/eager-context-builder.d.ts.map +1 -0
  295. package/dist/services/voice/echo-delay.d.ts +67 -0
  296. package/dist/services/voice/echo-delay.d.ts.map +1 -0
  297. package/dist/services/voice/echo-metrics.d.ts +7 -0
  298. package/dist/services/voice/echo-metrics.d.ts.map +1 -0
  299. package/dist/services/voice/echo-reference-buffer.d.ts +65 -0
  300. package/dist/services/voice/echo-reference-buffer.d.ts.map +1 -0
  301. package/dist/services/voice/eliza1-eot-scorer.d.ts +124 -0
  302. package/dist/services/voice/eliza1-eot-scorer.d.ts.map +1 -0
  303. package/dist/services/voice/embedding-server.d.ts +37 -0
  304. package/dist/services/voice/embedding-server.d.ts.map +1 -0
  305. package/dist/services/voice/embedding.d.ts +132 -0
  306. package/dist/services/voice/embedding.d.ts.map +1 -0
  307. package/dist/services/voice/emotion-attribution.d.ts +68 -0
  308. package/dist/services/voice/emotion-attribution.d.ts.map +1 -0
  309. package/dist/services/voice/engine-bridge.d.ts +762 -0
  310. package/dist/services/voice/engine-bridge.d.ts.map +1 -0
  311. package/dist/services/voice/eot-classifier-ggml.d.ts +179 -0
  312. package/dist/services/voice/eot-classifier-ggml.d.ts.map +1 -0
  313. package/dist/services/voice/eot-classifier.d.ts +211 -0
  314. package/dist/services/voice/eot-classifier.d.ts.map +1 -0
  315. package/dist/services/voice/errors.d.ts +20 -0
  316. package/dist/services/voice/errors.d.ts.map +1 -0
  317. package/dist/services/voice/expressive-tags.d.ts +158 -0
  318. package/dist/services/voice/expressive-tags.d.ts.map +1 -0
  319. package/dist/services/voice/ffi-bindings.d.ts +696 -0
  320. package/dist/services/voice/ffi-bindings.d.ts.map +1 -0
  321. package/dist/services/voice/first-line-cache.d.ts +181 -0
  322. package/dist/services/voice/first-line-cache.d.ts.map +1 -0
  323. package/dist/services/voice/fused-eot-scorer.d.ts +51 -0
  324. package/dist/services/voice/fused-eot-scorer.d.ts.map +1 -0
  325. package/dist/services/voice/index.d.ts +96 -0
  326. package/dist/services/voice/index.d.ts.map +1 -0
  327. package/dist/services/voice/kokoro/index.d.ts +24 -0
  328. package/dist/services/voice/kokoro/index.d.ts.map +1 -0
  329. package/dist/services/voice/kokoro/kokoro-backend.d.ts +87 -0
  330. package/dist/services/voice/kokoro/kokoro-backend.d.ts.map +1 -0
  331. package/dist/services/voice/kokoro/kokoro-engine-discovery.d.ts +58 -0
  332. package/dist/services/voice/kokoro/kokoro-engine-discovery.d.ts.map +1 -0
  333. package/dist/services/voice/kokoro/kokoro-ffi-runtime.d.ts +75 -0
  334. package/dist/services/voice/kokoro/kokoro-ffi-runtime.d.ts.map +1 -0
  335. package/dist/services/voice/kokoro/kokoro-runtime.d.ts +100 -0
  336. package/dist/services/voice/kokoro/kokoro-runtime.d.ts.map +1 -0
  337. package/dist/services/voice/kokoro/phoneme-stream.d.ts +51 -0
  338. package/dist/services/voice/kokoro/phoneme-stream.d.ts.map +1 -0
  339. package/dist/services/voice/kokoro/phonemizer.d.ts +50 -0
  340. package/dist/services/voice/kokoro/phonemizer.d.ts.map +1 -0
  341. package/dist/services/voice/kokoro/pick-runtime.d.ts +61 -0
  342. package/dist/services/voice/kokoro/pick-runtime.d.ts.map +1 -0
  343. package/dist/services/voice/kokoro/runtime-selection.d.ts +31 -0
  344. package/dist/services/voice/kokoro/runtime-selection.d.ts.map +1 -0
  345. package/dist/services/voice/kokoro/types.d.ts +82 -0
  346. package/dist/services/voice/kokoro/types.d.ts.map +1 -0
  347. package/dist/services/voice/kokoro/voice-presets.d.ts +23 -0
  348. package/dist/services/voice/kokoro/voice-presets.d.ts.map +1 -0
  349. package/dist/services/voice/kokoro/voices.d.ts +30 -0
  350. package/dist/services/voice/kokoro/voices.d.ts.map +1 -0
  351. package/dist/services/voice/lifecycle.d.ts +135 -0
  352. package/dist/services/voice/lifecycle.d.ts.map +1 -0
  353. package/dist/services/voice/live-diarization-session.d.ts +196 -0
  354. package/dist/services/voice/live-diarization-session.d.ts.map +1 -0
  355. package/dist/services/voice/metric-math.d.ts +10 -0
  356. package/dist/services/voice/metric-math.d.ts.map +1 -0
  357. package/dist/services/voice/mic-source.d.ts +136 -0
  358. package/dist/services/voice/mic-source.d.ts.map +1 -0
  359. package/dist/services/voice/nlms-echo-canceller.d.ts +137 -0
  360. package/dist/services/voice/nlms-echo-canceller.d.ts.map +1 -0
  361. package/dist/services/voice/optimistic-policy.d.ts +109 -0
  362. package/dist/services/voice/optimistic-policy.d.ts.map +1 -0
  363. package/dist/services/voice/optimistic-rollback.d.ts +151 -0
  364. package/dist/services/voice/optimistic-rollback.d.ts.map +1 -0
  365. package/dist/services/voice/partial-stabilizer.d.ts +73 -0
  366. package/dist/services/voice/partial-stabilizer.d.ts.map +1 -0
  367. package/dist/services/voice/phoneme-tokenizer.d.ts +49 -0
  368. package/dist/services/voice/phoneme-tokenizer.d.ts.map +1 -0
  369. package/dist/services/voice/phrase-cache.d.ts +76 -0
  370. package/dist/services/voice/phrase-cache.d.ts.map +1 -0
  371. package/dist/services/voice/phrase-chunker.d.ts +62 -0
  372. package/dist/services/voice/phrase-chunker.d.ts.map +1 -0
  373. package/dist/services/voice/pipeline-impls.d.ts +151 -0
  374. package/dist/services/voice/pipeline-impls.d.ts.map +1 -0
  375. package/dist/services/voice/pipeline.d.ts +216 -0
  376. package/dist/services/voice/pipeline.d.ts.map +1 -0
  377. package/dist/services/voice/prefill-client.d.ts +123 -0
  378. package/dist/services/voice/prefill-client.d.ts.map +1 -0
  379. package/dist/services/voice/prefix-preserving-queue.d.ts +113 -0
  380. package/dist/services/voice/prefix-preserving-queue.d.ts.map +1 -0
  381. package/dist/services/voice/profile-store.d.ts +248 -0
  382. package/dist/services/voice/profile-store.d.ts.map +1 -0
  383. package/dist/services/voice/ring-buffer.d.ts +40 -0
  384. package/dist/services/voice/ring-buffer.d.ts.map +1 -0
  385. package/dist/services/voice/rollback-queue.d.ts +24 -0
  386. package/dist/services/voice/rollback-queue.d.ts.map +1 -0
  387. package/dist/services/voice/samantha-preset-placeholder.d.ts +67 -0
  388. package/dist/services/voice/samantha-preset-placeholder.d.ts.map +1 -0
  389. package/dist/services/voice/samantha-preset-regenerator.d.ts +87 -0
  390. package/dist/services/voice/samantha-preset-regenerator.d.ts.map +1 -0
  391. package/dist/services/voice/scheduler.d.ts +146 -0
  392. package/dist/services/voice/scheduler.d.ts.map +1 -0
  393. package/dist/services/voice/self-voice-imprint.d.ts +33 -0
  394. package/dist/services/voice/self-voice-imprint.d.ts.map +1 -0
  395. package/dist/services/voice/shared-resources.d.ts +204 -0
  396. package/dist/services/voice/shared-resources.d.ts.map +1 -0
  397. package/dist/services/voice/speaker/attribution-pipeline.d.ts +74 -0
  398. package/dist/services/voice/speaker/attribution-pipeline.d.ts.map +1 -0
  399. package/dist/services/voice/speaker/diarizer-fused.d.ts +59 -0
  400. package/dist/services/voice/speaker/diarizer-fused.d.ts.map +1 -0
  401. package/dist/services/voice/speaker/diarizer.d.ts +75 -0
  402. package/dist/services/voice/speaker/diarizer.d.ts.map +1 -0
  403. package/dist/services/voice/speaker/encoder-fused.d.ts +60 -0
  404. package/dist/services/voice/speaker/encoder-fused.d.ts.map +1 -0
  405. package/dist/services/voice/speaker/encoder-ggml.d.ts +33 -0
  406. package/dist/services/voice/speaker/encoder-ggml.d.ts.map +1 -0
  407. package/dist/services/voice/speaker/encoder.d.ts +37 -0
  408. package/dist/services/voice/speaker/encoder.d.ts.map +1 -0
  409. package/dist/services/voice/speaker-imprint.d.ts +83 -0
  410. package/dist/services/voice/speaker-imprint.d.ts.map +1 -0
  411. package/dist/services/voice/speaker-preset-cache.d.ts +77 -0
  412. package/dist/services/voice/speaker-preset-cache.d.ts.map +1 -0
  413. package/dist/services/voice/streaming-asr/streaming-pipeline-adapter.d.ts +160 -0
  414. package/dist/services/voice/streaming-asr/streaming-pipeline-adapter.d.ts.map +1 -0
  415. package/dist/services/voice/system-audio-sink.d.ts +73 -0
  416. package/dist/services/voice/system-audio-sink.d.ts.map +1 -0
  417. package/dist/services/voice/transcriber.d.ts +244 -0
  418. package/dist/services/voice/transcriber.d.ts.map +1 -0
  419. package/dist/services/voice/transcript-knowledge.d.ts +37 -0
  420. package/dist/services/voice/transcript-knowledge.d.ts.map +1 -0
  421. package/dist/services/voice/transcript-service.d.ts +60 -0
  422. package/dist/services/voice/transcript-service.d.ts.map +1 -0
  423. package/dist/services/voice/transcript-store.d.ts +64 -0
  424. package/dist/services/voice/transcript-store.d.ts.map +1 -0
  425. package/dist/services/voice/turn-controller.d.ts +183 -0
  426. package/dist/services/voice/turn-controller.d.ts.map +1 -0
  427. package/dist/services/voice/types.d.ts +643 -0
  428. package/dist/services/voice/types.d.ts.map +1 -0
  429. package/dist/services/voice/vad.d.ts +283 -0
  430. package/dist/services/voice/vad.d.ts.map +1 -0
  431. package/dist/services/voice/voice-budget.d.ts +241 -0
  432. package/dist/services/voice/voice-budget.d.ts.map +1 -0
  433. package/dist/services/voice/voice-emotion-classifier.d.ts +95 -0
  434. package/dist/services/voice/voice-emotion-classifier.d.ts.map +1 -0
  435. package/dist/services/voice/voice-preload-predictor.d.ts +76 -0
  436. package/dist/services/voice/voice-preload-predictor.d.ts.map +1 -0
  437. package/dist/services/voice/voice-preset-format.d.ts +158 -0
  438. package/dist/services/voice/voice-preset-format.d.ts.map +1 -0
  439. package/dist/services/voice/voice-profile-artifact.d.ts +116 -0
  440. package/dist/services/voice/voice-profile-artifact.d.ts.map +1 -0
  441. package/dist/services/voice/voice-profile-routes.d.ts +83 -0
  442. package/dist/services/voice/voice-profile-routes.d.ts.map +1 -0
  443. package/dist/services/voice/voice-scenario.d.ts +131 -0
  444. package/dist/services/voice/voice-scenario.d.ts.map +1 -0
  445. package/dist/services/voice/voice-state-machine.d.ts +364 -0
  446. package/dist/services/voice/voice-state-machine.d.ts.map +1 -0
  447. package/dist/services/voice/voice-workbench-report.d.ts +117 -0
  448. package/dist/services/voice/voice-workbench-report.d.ts.map +1 -0
  449. package/dist/services/voice/wake-word-ggml.d.ts +100 -0
  450. package/dist/services/voice/wake-word-ggml.d.ts.map +1 -0
  451. package/dist/services/voice/wake-word.d.ts +255 -0
  452. package/dist/services/voice/wake-word.d.ts.map +1 -0
  453. package/dist/services/voice/wav-codec.d.ts +11 -0
  454. package/dist/services/voice/wav-codec.d.ts.map +1 -0
  455. package/dist/services/voice/workbench-entrypoint.d.ts +42 -0
  456. package/dist/services/voice/workbench-entrypoint.d.ts.map +1 -0
  457. package/dist/services/voice/workbench-headless-runner.d.ts +102 -0
  458. package/dist/services/voice/workbench-headless-runner.d.ts.map +1 -0
  459. package/dist/services/voice/workbench-logic-services.d.ts +36 -0
  460. package/dist/services/voice/workbench-logic-services.d.ts.map +1 -0
  461. package/dist/services/voice/workbench-real-services.d.ts +17 -0
  462. package/dist/services/voice/workbench-real-services.d.ts.map +1 -0
  463. package/dist/services/voice/workbench-scenarios.d.ts +24 -0
  464. package/dist/services/voice/workbench-scenarios.d.ts.map +1 -0
  465. package/dist/services/voice/wrap-with-first-line-cache.d.ts +70 -0
  466. package/dist/services/voice/wrap-with-first-line-cache.d.ts.map +1 -0
  467. package/dist/services/voice-model-updater.d.ts +240 -0
  468. package/dist/services/voice-model-updater.d.ts.map +1 -0
  469. package/dist/services/voice-prewarm.d.ts +3 -0
  470. package/dist/services/voice-prewarm.d.ts.map +1 -0
  471. package/dist/voice-workbench.d.ts +18 -0
  472. package/dist/voice-workbench.d.ts.map +1 -0
  473. package/dist/voice-workbench.js +5259 -0
  474. package/dist/voice-workbench.js.map +34 -0
  475. package/package.json +101 -15
  476. package/registry-entry.json +137 -0
  477. package/src/actions/generate-media.ts +647 -0
  478. package/src/actions/identify-speaker.ts +171 -0
  479. package/src/actions/transcription-control.test.ts +100 -0
  480. package/src/actions/transcription-control.ts +127 -0
  481. package/src/adapters/capacitor-llama/__tests__/compat-behavior.test.ts +218 -0
  482. package/src/adapters/capacitor-llama/__tests__/index.test.ts +68 -0
  483. package/src/adapters/capacitor-llama/__tests__/structured-output.test.ts +215 -0
  484. package/src/adapters/capacitor-llama/__tests__/text-streaming.test.ts +174 -0
  485. package/src/adapters/capacitor-llama/__tests__/voice-turn.test.ts +293 -0
  486. package/src/adapters/capacitor-llama/environment.ts +71 -0
  487. package/src/adapters/capacitor-llama/index.browser.ts +83 -0
  488. package/src/adapters/capacitor-llama/index.ts +831 -0
  489. package/src/adapters/capacitor-llama/loader.ts +109 -0
  490. package/src/adapters/capacitor-llama/native-voice-capture.ts +140 -0
  491. package/src/adapters/capacitor-llama/structured-output.ts +165 -0
  492. package/src/adapters/capacitor-llama/text-streaming.ts +227 -0
  493. package/src/adapters/capacitor-llama/types.ts +374 -0
  494. package/src/adapters/capacitor-llama/voice-turn.ts +178 -0
  495. package/src/backends/apple-foundation.ts +127 -0
  496. package/src/index.ts +62 -0
  497. package/src/local-inference-routes.test.ts +390 -0
  498. package/src/local-inference-routes.ts +1625 -0
  499. package/src/provider.ts +1111 -0
  500. package/src/routes/compat-helpers.ts +275 -0
  501. package/src/routes/family-member-route.ts +353 -0
  502. package/src/routes/index.ts +61 -0
  503. package/src/routes/live-diarization-route.test.ts +347 -0
  504. package/src/routes/live-diarization-route.ts +198 -0
  505. package/src/routes/local-inference-asr-route.test.ts +246 -0
  506. package/src/routes/local-inference-asr-route.ts +166 -0
  507. package/src/routes/local-inference-asr-transcribe.test.ts +118 -0
  508. package/src/routes/local-inference-asr-transcribe.ts +97 -0
  509. package/src/routes/local-inference-compat-routes.test.ts +485 -0
  510. package/src/routes/local-inference-compat-routes.ts +775 -0
  511. package/src/routes/local-inference-tts-route.test.ts +179 -0
  512. package/src/routes/local-inference-tts-route.ts +230 -0
  513. package/src/routes/native-pcm-turn-route.test.ts +136 -0
  514. package/src/routes/native-pcm-turn-route.ts +121 -0
  515. package/src/routes/transcript-audio-store.ts +27 -0
  516. package/src/routes/transcripts-routes.test.ts +195 -0
  517. package/src/routes/transcripts-routes.ts +191 -0
  518. package/src/routes/voice-first-run-routes.ts +524 -0
  519. package/src/routes/voice-models-routes.ts +554 -0
  520. package/src/routes/voice-profile-plugin-routes.ts +138 -0
  521. package/src/routes/voice-profiles-management-routes.ts +476 -0
  522. package/src/routes/voice-speaker-profile-routes.ts +199 -0
  523. package/src/runtime/aosp-llama-loader-selection.test.ts +80 -0
  524. package/src/runtime/bionic-wire-encoding.test.ts +147 -0
  525. package/src/runtime/capacitor-llama.d.ts +25 -0
  526. package/src/runtime/embedding-manager-support.ts +497 -0
  527. package/src/runtime/embedding-presets.ts +81 -0
  528. package/src/runtime/embedding-warmup-policy.test.ts +53 -0
  529. package/src/runtime/embedding-warmup-policy.ts +48 -0
  530. package/src/runtime/ensure-local-inference-handler.test.ts +726 -0
  531. package/src/runtime/ensure-local-inference-handler.ts +1640 -0
  532. package/src/runtime/index.ts +36 -0
  533. package/src/runtime/mobile-local-inference-gate.test.ts +152 -0
  534. package/src/runtime/mobile-local-inference-gate.ts +99 -0
  535. package/src/runtime/voice-entity-binding.transcript.test.ts +98 -0
  536. package/src/runtime/voice-entity-binding.ts +368 -0
  537. package/src/runtime/voice-speaker-entity-contract.test.ts +149 -0
  538. package/src/services/README.md +71 -0
  539. package/src/services/__tests__/backend-selector.precedence.test.ts +333 -0
  540. package/src/services/__tests__/backend-selector.test.ts +101 -0
  541. package/src/services/__tests__/checkpoint-manager.test.ts +376 -0
  542. package/src/services/__tests__/gpu-autotune.test.ts +400 -0
  543. package/src/services/__tests__/llm-streaming-binding.test.ts +85 -0
  544. package/src/services/__tests__/planner-grammar.test.ts +372 -0
  545. package/src/services/__tests__/runtime-target.test.ts +176 -0
  546. package/src/services/active-model-context-fit.test.ts +125 -0
  547. package/src/services/active-model-switch-rollback.test.ts +183 -0
  548. package/src/services/active-model.ts +1416 -0
  549. package/src/services/asr-provenance.ts +68 -0
  550. package/src/services/assignment-validation.test.ts +118 -0
  551. package/src/services/assignments.test.ts +106 -0
  552. package/src/services/assignments.ts +278 -0
  553. package/src/services/backend-selector.ts +95 -0
  554. package/src/services/backend.test.ts +84 -0
  555. package/src/services/backend.ts +791 -0
  556. package/src/services/bionic-host-loader.test.ts +226 -0
  557. package/src/services/bionic-host-loader.ts +252 -0
  558. package/src/services/bundled-models.ts +129 -0
  559. package/src/services/cache-bridge.test.ts +516 -0
  560. package/src/services/cache-bridge.ts +423 -0
  561. package/src/services/catalog.test.ts +259 -0
  562. package/src/services/catalog.ts +33 -0
  563. package/src/services/checkpoint-client.ts +258 -0
  564. package/src/services/checkpoint-manager.ts +474 -0
  565. package/src/services/cloud-fallback.ts +230 -0
  566. package/src/services/context-fit.test.ts +121 -0
  567. package/src/services/context-fit.ts +113 -0
  568. package/src/services/conversation-registry.test.ts +235 -0
  569. package/src/services/conversation-registry.ts +264 -0
  570. package/src/services/desktop-fused-ffi-backend-runtime.ts +431 -0
  571. package/src/services/device-bridge.ts +1237 -0
  572. package/src/services/device-resource-metrics.test.ts +98 -0
  573. package/src/services/device-resource-metrics.ts +346 -0
  574. package/src/services/device-tier.test.ts +458 -0
  575. package/src/services/device-tier.ts +502 -0
  576. package/src/services/downloader.test.ts +888 -0
  577. package/src/services/downloader.ts +1039 -0
  578. package/src/services/engine-direct-bundle.test.ts +90 -0
  579. package/src/services/engine-streaming.test.ts +80 -0
  580. package/src/services/engine.ts +2096 -0
  581. package/src/services/ensure-local-artifacts.integration.test.ts +273 -0
  582. package/src/services/ensure-local-artifacts.test.ts +368 -0
  583. package/src/services/ensure-local-artifacts.ts +351 -0
  584. package/src/services/external-scanner.ts +312 -0
  585. package/src/services/ffi-llm-mock.ts +354 -0
  586. package/src/services/ffi-llm-streaming-abi.ts +445 -0
  587. package/src/services/ffi-streaming-backend.ts +418 -0
  588. package/src/services/ffi-streaming-runner.test.ts +220 -0
  589. package/src/services/ffi-streaming-runner.ts +407 -0
  590. package/src/services/ffi-unload-ordering.test.ts +166 -0
  591. package/src/services/fused-eliza1-no-regression.test.ts +144 -0
  592. package/src/services/gpu-autotune.ts +534 -0
  593. package/src/services/gpu-detect.ts +139 -0
  594. package/src/services/handler-registry.ts +240 -0
  595. package/src/services/hardware.test.ts +236 -0
  596. package/src/services/hardware.ts +438 -0
  597. package/src/services/image-description-runtime.test.ts +61 -0
  598. package/src/services/image-description-runtime.ts +118 -0
  599. package/src/services/imagegen/aosp-unavailable.ts +229 -0
  600. package/src/services/imagegen/backend-selector.test.ts +190 -0
  601. package/src/services/imagegen/backend-selector.ts +277 -0
  602. package/src/services/imagegen/coreml-unavailable.ts +237 -0
  603. package/src/services/imagegen/errors.ts +40 -0
  604. package/src/services/imagegen/index.ts +144 -0
  605. package/src/services/imagegen/mflux.ts +313 -0
  606. package/src/services/imagegen/sd-cpp.ts +715 -0
  607. package/src/services/imagegen/tensorrt-unavailable.ts +295 -0
  608. package/src/services/imagegen/types.ts +193 -0
  609. package/src/services/index.ts +229 -0
  610. package/src/services/inference-capabilities.test.ts +75 -0
  611. package/src/services/inference-capabilities.ts +204 -0
  612. package/src/services/inference-telemetry.ts +143 -0
  613. package/src/services/ios-llama-streaming.ts +248 -0
  614. package/src/services/kv-spill.test.ts +222 -0
  615. package/src/services/kv-spill.ts +357 -0
  616. package/src/services/latency-trace.test.ts +266 -0
  617. package/src/services/latency-trace.ts +844 -0
  618. package/src/services/lib-target.test.ts +145 -0
  619. package/src/services/lib-target.ts +102 -0
  620. package/src/services/live-signals.test.ts +132 -0
  621. package/src/services/live-signals.ts +177 -0
  622. package/src/services/llama-server-metrics.test.ts +168 -0
  623. package/src/services/llama-server-metrics.ts +304 -0
  624. package/src/services/llm-streaming-binding.ts +136 -0
  625. package/src/services/load-args.ts +81 -0
  626. package/src/services/manifest/eliza-1.manifest.v1.json +790 -0
  627. package/src/services/manifest/index.ts +72 -0
  628. package/src/services/manifest/manifest.test.ts +791 -0
  629. package/src/services/manifest/schema.ts +761 -0
  630. package/src/services/manifest/types.ts +61 -0
  631. package/src/services/manifest/validator.ts +633 -0
  632. package/src/services/memory-arbiter.test.ts +558 -0
  633. package/src/services/memory-arbiter.ts +991 -0
  634. package/src/services/memory-benchmark.test.ts +91 -0
  635. package/src/services/memory-benchmark.ts +354 -0
  636. package/src/services/memory-monitor.test.ts +232 -0
  637. package/src/services/memory-monitor.ts +309 -0
  638. package/src/services/memory-pressure.ts +414 -0
  639. package/src/services/mtp-doctor.ts +86 -0
  640. package/src/services/network-policy.ts +346 -0
  641. package/src/services/paths.ts +25 -0
  642. package/src/services/planner-skeleton.ts +175 -0
  643. package/src/services/providers.ts +507 -0
  644. package/src/services/ram-budget-cache.test.ts +164 -0
  645. package/src/services/ram-budget.ts +309 -0
  646. package/src/services/readiness.test.ts +87 -0
  647. package/src/services/readiness.ts +238 -0
  648. package/src/services/recommendation.test.ts +216 -0
  649. package/src/services/recommendation.ts +671 -0
  650. package/src/services/registry.ts +157 -0
  651. package/src/services/required-kernels-gate.test.ts +64 -0
  652. package/src/services/router-handler.test.ts +45 -0
  653. package/src/services/router-handler.ts +426 -0
  654. package/src/services/routing-policy.test.ts +352 -0
  655. package/src/services/routing-policy.ts +367 -0
  656. package/src/services/routing-preferences.ts +17 -0
  657. package/src/services/runtime-target.ts +154 -0
  658. package/src/services/service.test.ts +223 -0
  659. package/src/services/service.ts +750 -0
  660. package/src/services/session-pool.ts +153 -0
  661. package/src/services/structured-output/deterministic-repair.test.ts +169 -0
  662. package/src/services/structured-output/deterministic-repair.ts +443 -0
  663. package/src/services/structured-output/index.ts +4 -0
  664. package/src/services/structured-output.test.ts +483 -0
  665. package/src/services/structured-output.ts +712 -0
  666. package/src/services/system-memory.test.ts +47 -0
  667. package/src/services/system-memory.ts +67 -0
  668. package/src/services/transcription-priority.test.ts +211 -0
  669. package/src/services/types.ts +59 -0
  670. package/src/services/verify-on-device.test.ts +87 -0
  671. package/src/services/verify-on-device.ts +127 -0
  672. package/src/services/verify.ts +13 -0
  673. package/src/services/vision/aosp-unavailable.ts +163 -0
  674. package/src/services/vision/capacitor-llama.ts +255 -0
  675. package/src/services/vision/cloud-fallback.test.ts +243 -0
  676. package/src/services/vision/cloud-fallback.ts +268 -0
  677. package/src/services/vision/fallback-chain.test.ts +86 -0
  678. package/src/services/vision/hash.ts +157 -0
  679. package/src/services/vision/index.ts +251 -0
  680. package/src/services/vision/llama-server.ts +177 -0
  681. package/src/services/vision/types.ts +163 -0
  682. package/src/services/vision/vast-fallback.ts +127 -0
  683. package/src/services/vision-embedding-cache.ts +189 -0
  684. package/src/services/voice/VOICE_WORKBENCH.md +133 -0
  685. package/src/services/voice/__fixtures__/voice-workbench-logic-baseline.json +180 -0
  686. package/src/services/voice/__test-helpers__/fake-ffi.ts +94 -0
  687. package/src/services/voice/__test-helpers__/synthetic-speech.ts +194 -0
  688. package/src/services/voice/__tests__/checkpoint-manager.test.ts +241 -0
  689. package/src/services/voice/__tests__/checkpoint-policy.test.ts +270 -0
  690. package/src/services/voice/__tests__/eager-context-builder.test.ts +257 -0
  691. package/src/services/voice/__tests__/eliza1-eot-scorer.test.ts +288 -0
  692. package/src/services/voice/__tests__/eot-classifier.test.ts +431 -0
  693. package/src/services/voice/__tests__/optimistic-rollback.test.ts +312 -0
  694. package/src/services/voice/__tests__/prefill-client.test.ts +266 -0
  695. package/src/services/voice/__tests__/prefix-preserving-queue.test.ts +208 -0
  696. package/src/services/voice/__tests__/streaming-asr.test.ts +450 -0
  697. package/src/services/voice/__tests__/streaming-transcriber.test.ts +339 -0
  698. package/src/services/voice/__tests__/turn-detector-resolver.test.ts +195 -0
  699. package/src/services/voice/__tests__/voice-state-machine-prefill.test.ts +275 -0
  700. package/src/services/voice/__tests__/voice-state-machine.test.ts +354 -0
  701. package/src/services/voice/acoustic-speaker-attribution.test.ts +165 -0
  702. package/src/services/voice/acoustic-speaker-attribution.ts +336 -0
  703. package/src/services/voice/asr-timed.real.test.ts +139 -0
  704. package/src/services/voice/audio-frame-consumer.test.ts +669 -0
  705. package/src/services/voice/audio-frame-consumer.ts +651 -0
  706. package/src/services/voice/barge-in.test.ts +244 -0
  707. package/src/services/voice/barge-in.ts +335 -0
  708. package/src/services/voice/cancellation-coordinator.test.ts +196 -0
  709. package/src/services/voice/cancellation-coordinator.ts +269 -0
  710. package/src/services/voice/checkpoint-manager.ts +401 -0
  711. package/src/services/voice/checkpoint-policy.ts +336 -0
  712. package/src/services/voice/composite-eot-classifier.test.ts +59 -0
  713. package/src/services/voice/corpus-augment.test.ts +276 -0
  714. package/src/services/voice/corpus-augment.ts +451 -0
  715. package/src/services/voice/corpus-generator.test.ts +201 -0
  716. package/src/services/voice/corpus-generator.ts +413 -0
  717. package/src/services/voice/diarization-error-rate.greedy.test.ts +140 -0
  718. package/src/services/voice/diarization-error-rate.test.ts +100 -0
  719. package/src/services/voice/diarization-error-rate.ts +249 -0
  720. package/src/services/voice/e2e-harness.der.test.ts +94 -0
  721. package/src/services/voice/e2e-harness.respond-eot-entity.test.ts +277 -0
  722. package/src/services/voice/e2e-harness.security-echo.test.ts +103 -0
  723. package/src/services/voice/e2e-harness.test.ts +182 -0
  724. package/src/services/voice/e2e-harness.ts +902 -0
  725. package/src/services/voice/eager-context-builder.ts +262 -0
  726. package/src/services/voice/echo-delay.test.ts +118 -0
  727. package/src/services/voice/echo-delay.ts +135 -0
  728. package/src/services/voice/echo-metrics.test.ts +17 -0
  729. package/src/services/voice/echo-metrics.ts +20 -0
  730. package/src/services/voice/echo-reference-buffer.test.ts +86 -0
  731. package/src/services/voice/echo-reference-buffer.ts +165 -0
  732. package/src/services/voice/eliza1-eot-scorer.ts +242 -0
  733. package/src/services/voice/embedding-server.ts +200 -0
  734. package/src/services/voice/embedding.test.ts +131 -0
  735. package/src/services/voice/embedding.ts +242 -0
  736. package/src/services/voice/emotion-attribution.test.ts +129 -0
  737. package/src/services/voice/emotion-attribution.ts +361 -0
  738. package/src/services/voice/engine-bridge-cancellation.test.ts +422 -0
  739. package/src/services/voice/engine-bridge-transcript-join.test.ts +278 -0
  740. package/src/services/voice/engine-bridge.test.ts +384 -0
  741. package/src/services/voice/engine-bridge.ts +2343 -0
  742. package/src/services/voice/eot-classifier-ggml.ts +569 -0
  743. package/src/services/voice/eot-classifier.test.ts +98 -0
  744. package/src/services/voice/eot-classifier.ts +422 -0
  745. package/src/services/voice/errors.ts +34 -0
  746. package/src/services/voice/expressive-tags.asr.test.ts +77 -0
  747. package/src/services/voice/expressive-tags.test.ts +102 -0
  748. package/src/services/voice/expressive-tags.ts +405 -0
  749. package/src/services/voice/ffi-bindings.test.ts +735 -0
  750. package/src/services/voice/ffi-bindings.ts +3387 -0
  751. package/src/services/voice/first-line-cache.ts +725 -0
  752. package/src/services/voice/fused-eot-scorer.ts +139 -0
  753. package/src/services/voice/index.ts +502 -0
  754. package/src/services/voice/kokoro/__tests__/kokoro-backend.test.ts +262 -0
  755. package/src/services/voice/kokoro/__tests__/kokoro-engine-bridge.real.test.ts +236 -0
  756. package/src/services/voice/kokoro/__tests__/kokoro-engine-bridge.test.ts +60 -0
  757. package/src/services/voice/kokoro/__tests__/kokoro-engine-discovery.test.ts +277 -0
  758. package/src/services/voice/kokoro/__tests__/kokoro-ffi-runtime.test.ts +235 -0
  759. package/src/services/voice/kokoro/__tests__/kokoro-runtime.test.ts +95 -0
  760. package/src/services/voice/kokoro/__tests__/phonemizer.test.ts +53 -0
  761. package/src/services/voice/kokoro/__tests__/runtime-selection.test.ts +67 -0
  762. package/src/services/voice/kokoro/__tests__/voices.test.ts +57 -0
  763. package/src/services/voice/kokoro/index.ts +79 -0
  764. package/src/services/voice/kokoro/kokoro-backend.ts +223 -0
  765. package/src/services/voice/kokoro/kokoro-engine-discovery.ts +177 -0
  766. package/src/services/voice/kokoro/kokoro-ffi-runtime.ts +233 -0
  767. package/src/services/voice/kokoro/kokoro-runtime.ts +170 -0
  768. package/src/services/voice/kokoro/phoneme-stream.ts +123 -0
  769. package/src/services/voice/kokoro/phonemizer.ts +344 -0
  770. package/src/services/voice/kokoro/pick-runtime.test.ts +91 -0
  771. package/src/services/voice/kokoro/pick-runtime.ts +130 -0
  772. package/src/services/voice/kokoro/runtime-selection.ts +64 -0
  773. package/src/services/voice/kokoro/types.ts +95 -0
  774. package/src/services/voice/kokoro/voice-presets.ts +129 -0
  775. package/src/services/voice/kokoro/voices.ts +64 -0
  776. package/src/services/voice/lifecycle.test.ts +315 -0
  777. package/src/services/voice/lifecycle.ts +301 -0
  778. package/src/services/voice/live-diarization-session.echo.test.ts +232 -0
  779. package/src/services/voice/live-diarization-session.ts +622 -0
  780. package/src/services/voice/metric-math.test.ts +61 -0
  781. package/src/services/voice/metric-math.ts +25 -0
  782. package/src/services/voice/mic-source.test.ts +210 -0
  783. package/src/services/voice/mic-source.ts +503 -0
  784. package/src/services/voice/nlms-echo-canceller.test.ts +244 -0
  785. package/src/services/voice/nlms-echo-canceller.ts +317 -0
  786. package/src/services/voice/optimistic-policy.power-source.test.ts +36 -0
  787. package/src/services/voice/optimistic-policy.test.ts +101 -0
  788. package/src/services/voice/optimistic-policy.ts +192 -0
  789. package/src/services/voice/optimistic-rollback.ts +343 -0
  790. package/src/services/voice/partial-stabilizer.test.ts +68 -0
  791. package/src/services/voice/partial-stabilizer.ts +140 -0
  792. package/src/services/voice/phoneme-tokenizer.ts +158 -0
  793. package/src/services/voice/phrase-cache.test.ts +242 -0
  794. package/src/services/voice/phrase-cache.ts +186 -0
  795. package/src/services/voice/phrase-chunker.test.ts +239 -0
  796. package/src/services/voice/phrase-chunker.ts +281 -0
  797. package/src/services/voice/pipeline-impls.l6.test.ts +110 -0
  798. package/src/services/voice/pipeline-impls.test.ts +292 -0
  799. package/src/services/voice/pipeline-impls.ts +315 -0
  800. package/src/services/voice/pipeline.ts +504 -0
  801. package/src/services/voice/prefill-client.ts +316 -0
  802. package/src/services/voice/prefix-preserving-queue.ts +162 -0
  803. package/src/services/voice/profile-store.ts +887 -0
  804. package/src/services/voice/real-audio-decode.test.ts +148 -0
  805. package/src/services/voice/research/VOICE_8785_ASSESSMENT.md +141 -0
  806. package/src/services/voice/research/VOICE_PIPELINE_RESEARCH_2026.md +117 -0
  807. package/src/services/voice/research/VOICE_VALIDATION_RUNBOOK.md +135 -0
  808. package/src/services/voice/ring-buffer.test.ts +129 -0
  809. package/src/services/voice/ring-buffer.ts +123 -0
  810. package/src/services/voice/rollback-queue.ts +74 -0
  811. package/src/services/voice/samantha-preset-placeholder.test.ts +97 -0
  812. package/src/services/voice/samantha-preset-placeholder.ts +148 -0
  813. package/src/services/voice/samantha-preset-regenerator.ts +393 -0
  814. package/src/services/voice/samantha-preset-regenerator.wav.test.ts +90 -0
  815. package/src/services/voice/scheduler.t2.test.ts +141 -0
  816. package/src/services/voice/scheduler.ts +927 -0
  817. package/src/services/voice/self-voice-imprint.test.ts +59 -0
  818. package/src/services/voice/self-voice-imprint.ts +102 -0
  819. package/src/services/voice/shared-resources.ts +343 -0
  820. package/src/services/voice/speaker/attribution-pipeline.test.ts +221 -0
  821. package/src/services/voice/speaker/attribution-pipeline.ts +449 -0
  822. package/src/services/voice/speaker/diarizer-fused.real.test.ts +100 -0
  823. package/src/services/voice/speaker/diarizer-fused.ts +154 -0
  824. package/src/services/voice/speaker/diarizer.ts +218 -0
  825. package/src/services/voice/speaker/encoder-fused.real.test.ts +113 -0
  826. package/src/services/voice/speaker/encoder-fused.ts +138 -0
  827. package/src/services/voice/speaker/encoder-ggml.test.ts +59 -0
  828. package/src/services/voice/speaker/encoder-ggml.ts +79 -0
  829. package/src/services/voice/speaker/encoder.ts +105 -0
  830. package/src/services/voice/speaker-imprint.test.ts +185 -0
  831. package/src/services/voice/speaker-imprint.ts +312 -0
  832. package/src/services/voice/speaker-preset-cache.test.ts +154 -0
  833. package/src/services/voice/speaker-preset-cache.ts +195 -0
  834. package/src/services/voice/streaming-asr/streaming-pipeline-adapter.ts +292 -0
  835. package/src/services/voice/system-audio-sink.test.ts +29 -0
  836. package/src/services/voice/system-audio-sink.ts +366 -0
  837. package/src/services/voice/transcriber.asr-backend.test.ts +76 -0
  838. package/src/services/voice/transcriber.test.ts +392 -0
  839. package/src/services/voice/transcriber.ts +704 -0
  840. package/src/services/voice/transcript-knowledge.test.ts +68 -0
  841. package/src/services/voice/transcript-knowledge.ts +75 -0
  842. package/src/services/voice/transcript-service.test.ts +195 -0
  843. package/src/services/voice/transcript-service.ts +205 -0
  844. package/src/services/voice/transcript-store.test.ts +189 -0
  845. package/src/services/voice/transcript-store.ts +164 -0
  846. package/src/services/voice/turn-controller.test.ts +575 -0
  847. package/src/services/voice/turn-controller.ts +596 -0
  848. package/src/services/voice/types.ts +699 -0
  849. package/src/services/voice/vad.test.ts +498 -0
  850. package/src/services/voice/vad.ts +832 -0
  851. package/src/services/voice/vad.v1-v4.test.ts +222 -0
  852. package/src/services/voice/voice-budget.test.ts +415 -0
  853. package/src/services/voice/voice-budget.ts +635 -0
  854. package/src/services/voice/voice-duet.test.ts +375 -0
  855. package/src/services/voice/voice-emotion-classifier.test.ts +210 -0
  856. package/src/services/voice/voice-emotion-classifier.ts +273 -0
  857. package/src/services/voice/voice-hardening.fuzz.test.ts +116 -0
  858. package/src/services/voice/voice-preload-predictor.test.ts +130 -0
  859. package/src/services/voice/voice-preload-predictor.ts +113 -0
  860. package/src/services/voice/voice-preset-format.fuzz.test.ts +89 -0
  861. package/src/services/voice/voice-preset-format.test.ts +75 -0
  862. package/src/services/voice/voice-preset-format.ts +713 -0
  863. package/src/services/voice/voice-preset-generator.test.ts +89 -0
  864. package/src/services/voice/voice-profile-artifact.test.ts +138 -0
  865. package/src/services/voice/voice-profile-artifact.ts +518 -0
  866. package/src/services/voice/voice-profile-routes.test.ts +429 -0
  867. package/src/services/voice/voice-profile-routes.ts +425 -0
  868. package/src/services/voice/voice-scenario.test.ts +159 -0
  869. package/src/services/voice/voice-scenario.ts +280 -0
  870. package/src/services/voice/voice-scenario.turn-helpers.test.ts +77 -0
  871. package/src/services/voice/voice-state-machine.ts +727 -0
  872. package/src/services/voice/voice-workbench-report.test.ts +168 -0
  873. package/src/services/voice/voice-workbench-report.ts +367 -0
  874. package/src/services/voice/voice-workbench.test.ts +158 -0
  875. package/src/services/voice/voice.test.ts +1070 -0
  876. package/src/services/voice/wake-word-ggml.ts +319 -0
  877. package/src/services/voice/wake-word.test.ts +298 -0
  878. package/src/services/voice/wake-word.ts +554 -0
  879. package/src/services/voice/wav-codec.fuzz.test.ts +59 -0
  880. package/src/services/voice/wav-codec.test.ts +32 -0
  881. package/src/services/voice/wav-codec.ts +101 -0
  882. package/src/services/voice/workbench-entrypoint.test.ts +55 -0
  883. package/src/services/voice/workbench-entrypoint.ts +88 -0
  884. package/src/services/voice/workbench-headless-runner.test.ts +162 -0
  885. package/src/services/voice/workbench-headless-runner.ts +396 -0
  886. package/src/services/voice/workbench-logic-services.test.ts +225 -0
  887. package/src/services/voice/workbench-logic-services.ts +184 -0
  888. package/src/services/voice/workbench-real-services.ts +629 -0
  889. package/src/services/voice/workbench-scenarios.ts +407 -0
  890. package/src/services/voice/wrap-with-first-line-cache.ts +267 -0
  891. package/src/services/voice-model-updater.ts +724 -0
  892. package/src/services/voice-prewarm.ts +51 -0
  893. package/src/voice-workbench.ts +71 -0
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Voice next-stage preload predictor (#8809 C5).
3
+ *
4
+ * A voice turn runs its stages sequentially on a memory-constrained device:
5
+ * ASR → text-response → TTS (AGENTS.md §4). The text-response model is the one
6
+ * the {@link MemoryArbiter} owns on the mobile / Capacitor path (where text
7
+ * generation routes through `arbiter` rather than the desktop direct-engine
8
+ * dispatcher). That model is NOT resident while ASR is running — so the first
9
+ * text request of the turn pays the full cold load on the critical path,
10
+ * stalling time-to-first-token right when the user has stopped speaking.
11
+ *
12
+ * This predictor closes that gap with a single, deterministic prediction: the
13
+ * instant ASR finishes, the next arbiter-managed stage is the `"text"` model,
14
+ * so warm it now. It calls {@link ArbiterPreloader.preload} with the resolved
15
+ * text model key. `preload` is intentionally conservative — it only loads under
16
+ * nominal pressure when the configured budget proves the footprint fits, and
17
+ * returns `false` otherwise (low / critical pressure, or no headroom). The
18
+ * predictor never forces a load; it never touches the engine directly; it owns
19
+ * no model handle. It is the prediction, nothing more.
20
+ *
21
+ * Injectable by construction: it depends only on the `preload` surface of the
22
+ * arbiter and the resolved text model key, so it is unit-testable against the
23
+ * real arbiter with a synthetic capability and carries no transitive coupling
24
+ * to the FFI engine, the voice pipeline, or the device bridge.
25
+ */
26
+ import type { ArbiterCapability } from "../memory-arbiter";
27
+ /**
28
+ * The slice of {@link MemoryArbiter} the predictor needs. Narrowed to `preload`
29
+ * so the predictor can be injected with the real arbiter (which satisfies this
30
+ * structurally) or a test double, with no other surface area in scope.
31
+ */
32
+ export interface ArbiterPreloader {
33
+ preload(capability: ArbiterCapability, modelKey: string): Promise<boolean>;
34
+ }
35
+ export interface VoicePreloadPredictorOptions {
36
+ /** The arbiter (or anything exposing its `preload`) to warm the model on. */
37
+ arbiter: ArbiterPreloader;
38
+ /**
39
+ * Resolves the arbiter-managed text-response model key for the current turn.
40
+ * A function (not a bare string) so the predictor reflects a model swap
41
+ * between turns without being rebuilt. Returning `null` means "no text model
42
+ * is assigned yet" — the predictor then declines to predict rather than
43
+ * guessing a key.
44
+ */
45
+ resolveTextModelKey: () => string | null;
46
+ /** Optional structured logger. Messages are prefixed `[voice-preload-predictor]`. */
47
+ logger?: {
48
+ debug?: (message: string) => void;
49
+ warn?: (message: string) => void;
50
+ };
51
+ }
52
+ /**
53
+ * Predicts the next arbiter-managed model for a voice turn and warms it.
54
+ *
55
+ * Wire {@link VoicePreloadPredictor.onAsrStageComplete} to the voice pipeline's
56
+ * `onAsrComplete` event (the instant ASR emits its final token, which is also
57
+ * the drafter/verifier kick-off point): that is the genuine seam where the next
58
+ * stage is known and the arbiter owns its model.
59
+ */
60
+ export declare class VoicePreloadPredictor {
61
+ private readonly arbiter;
62
+ private readonly resolveTextModelKey;
63
+ private readonly logger;
64
+ constructor(options: VoicePreloadPredictorOptions);
65
+ /**
66
+ * Called when the ASR stage of the current turn completes. Predicts the
67
+ * next-stage text model and asks the arbiter to warm it.
68
+ *
69
+ * Resolves to the model key that was warmed (resident or freshly loaded), or
70
+ * `null` when no prediction was made or the arbiter declined the preload
71
+ * (pressure / no budget headroom). Never throws on a declined preload — a
72
+ * predictor that breaks the voice loop is worse than one that does nothing.
73
+ */
74
+ onAsrStageComplete(): Promise<string | null>;
75
+ }
76
+ //# sourceMappingURL=voice-preload-predictor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-preload-predictor.d.ts","sourceRoot":"","sources":["../../../src/services/voice/voice-preload-predictor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAChC,OAAO,CAAC,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3E;AAED,MAAM,WAAW,4BAA4B;IAC5C,6EAA6E;IAC7E,OAAO,EAAE,gBAAgB,CAAC;IAC1B;;;;;;OAMG;IACH,mBAAmB,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACzC,qFAAqF;IACrF,MAAM,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;QAClC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;KACjC,CAAC;CACF;AAQD;;;;;;;GAOG;AACH,qBAAa,qBAAqB;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAC1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;gBAEpD,OAAO,EAAE,4BAA4B;IAMjD;;;;;;;;OAQG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAuBlD"}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Binary format for `cache/voice-preset-*.bin`.
3
+ *
4
+ * Two versions are supported:
5
+ *
6
+ * v1 (`magic='ELZ1', version=1`) — legacy two-section layout used by the
7
+ * initial Kokoro-style placeholder. Carries a Float32 speaker embedding +
8
+ * a phrase-cache seed list. Still read for back-compat (older bundles only
9
+ * contain v1).
10
+ *
11
+ * v2 (`magic='ELZ1', version=2`) — superset adopted for the OmniVoice
12
+ * freeze. Adds three OmniVoice-specific sections that the v1 layout had
13
+ * no room for: pre-encoded `ref_audio_tokens` (int32, shape
14
+ * `[K, ref_T]`), a UTF-8 `ref_text` transcript of the reference clip, and
15
+ * a closed-vocabulary `instruct` string (the resolved VoiceDesign
16
+ * attributes). v2 readers handle v1 files transparently (the new sections
17
+ * default to empty). A v1 reader applied to a v2 file fails fast on
18
+ * `truncated-header` because the v2 header is larger.
19
+ *
20
+ * Layout (little-endian throughout):
21
+ *
22
+ * v1 header (24 bytes):
23
+ * +0 4 bytes magic 'ELZ1' (0x315A4C45)
24
+ * +4 4 bytes format version (uint32) — 1
25
+ * +8 4 bytes speaker embedding offset (uint32)
26
+ * +12 4 bytes speaker embedding byte length (uint32)
27
+ * +16 4 bytes phrase cache seed offset (uint32)
28
+ * +20 4 bytes phrase cache seed byte length (uint32)
29
+ *
30
+ * v2 header (64 bytes — additive, all section descriptors are
31
+ * `(offset:uint32, length:uint32)` pairs):
32
+ * +0 4 bytes magic 'ELZ1' (0x315A4C45)
33
+ * +4 4 bytes format version (uint32) — 2
34
+ * +8 4 bytes speaker embedding offset
35
+ * +12 4 bytes speaker embedding byte length
36
+ * +16 4 bytes phrase cache seed offset
37
+ * +20 4 bytes phrase cache seed byte length
38
+ * +24 4 bytes ref_audio_tokens offset
39
+ * +28 4 bytes ref_audio_tokens byte length
40
+ * +32 4 bytes ref_text offset
41
+ * +36 4 bytes ref_text byte length
42
+ * +40 4 bytes instruct offset
43
+ * +44 4 bytes instruct byte length
44
+ * +48 4 bytes metadata offset
45
+ * +52 4 bytes metadata byte length
46
+ * +56 4 bytes reserved (must be 0)
47
+ * +60 4 bytes reserved (must be 0)
48
+ *
49
+ * `ref_audio_tokens` payload (v2):
50
+ * +0 4 bytes K — codebook count (uint32, OmniVoice = 8)
51
+ * +4 4 bytes ref_T — frames per codebook (uint32)
52
+ * +8 ... int32 LE codebook samples, row-major shape `[K, ref_T]`
53
+ *
54
+ * `ref_text` payload (v2): raw UTF-8 bytes (no NUL terminator).
55
+ * `instruct` payload (v2): raw UTF-8 bytes (closed VoiceDesign vocabulary).
56
+ * `metadata` payload (v2): raw UTF-8 JSON bytes (codec sha256, corpus
57
+ * hash, etc.); the runtime never relies on
58
+ * metadata for correctness.
59
+ *
60
+ * Phrase cache seed payload (v1 + v2, identical):
61
+ * uint32 LE N (phrase count)
62
+ * for each phrase:
63
+ * uint16 LE text_byte_len
64
+ * uint8[] canonicalized text (UTF-8)
65
+ * uint32 LE sample_rate
66
+ * uint32 LE pcm_byte_len
67
+ * uint8[] PCM (Float32 LE samples)
68
+ *
69
+ * Per-section invariants:
70
+ * - Section bounds may not overlap the header.
71
+ * - Section bounds must fit within the file length.
72
+ * - A `length=0` section is allowed (means "absent"); the corresponding
73
+ * output field is an empty `Float32Array` / `Int32Array` / empty string.
74
+ * - `embedding.length % 4 == 0` (Float32).
75
+ * - `ref_audio_tokens.length` ≥ 8 (the two header words K, ref_T) and the
76
+ * payload is `8 + K*ref_T*4` bytes.
77
+ */
78
+ export declare const VOICE_PRESET_MAGIC = 828001349;
79
+ /** Header byte counts. */
80
+ export declare const VOICE_PRESET_HEADER_BYTES_V1 = 24;
81
+ export declare const VOICE_PRESET_HEADER_BYTES_V2 = 64;
82
+ /** Supported format versions. v2 is the canonical write path. */
83
+ export declare const VOICE_PRESET_VERSION_V1 = 1;
84
+ export declare const VOICE_PRESET_VERSION_V2 = 2;
85
+ export declare const VOICE_PRESET_VERSION_CURRENT = 2;
86
+ export interface VoicePresetSeedPhrase {
87
+ /** Canonicalized text (lowercase, single-spaced, trimmed). */
88
+ text: string;
89
+ sampleRate: number;
90
+ pcm: Float32Array;
91
+ }
92
+ /**
93
+ * OmniVoice reference-audio-tokens payload. `K` is the codebook count (=8 for
94
+ * OmniVoice / HiggsAudioV2) and `refT` is the number of frames per codebook.
95
+ * `tokens` is row-major: codebook `k`, frame `t` is at `tokens[k*refT + t]`.
96
+ * An empty payload (refT=0, K=0, tokens length 0) is valid and means "no
97
+ * reference audio bound to this preset" (instruct-only voice).
98
+ */
99
+ export interface RefAudioTokens {
100
+ K: number;
101
+ refT: number;
102
+ tokens: Int32Array;
103
+ }
104
+ export interface VoicePresetFile {
105
+ version: number;
106
+ embedding: Float32Array;
107
+ phrases: ReadonlyArray<VoicePresetSeedPhrase>;
108
+ /** v2 only — empty for v1 files. */
109
+ refAudioTokens: RefAudioTokens;
110
+ /** v2 only — empty for v1 files. */
111
+ refText: string;
112
+ /** v2 only — empty for v1 files. */
113
+ instruct: string;
114
+ /** v2 only — parsed JSON object, empty `{}` for v1 files. */
115
+ metadata: Record<string, unknown>;
116
+ }
117
+ export declare class VoicePresetFormatError extends Error {
118
+ readonly code: "bad-magic" | "bad-version" | "truncated-header" | "truncated-section" | "bad-section-bounds" | "bad-phrase-record" | "bad-embedding-length" | "bad-ref-tokens" | "bad-metadata" | "bad-utf8";
119
+ constructor(message: string, code: "bad-magic" | "bad-version" | "truncated-header" | "truncated-section" | "bad-section-bounds" | "bad-phrase-record" | "bad-embedding-length" | "bad-ref-tokens" | "bad-metadata" | "bad-utf8");
120
+ }
121
+ /**
122
+ * Parse a voice-preset binary blob. Throws `VoicePresetFormatError` on any
123
+ * malformed input — this is the single defensive boundary for the format.
124
+ * Supports both v1 and v2 files. For v1 files the v2-only fields are
125
+ * returned as their empty equivalents.
126
+ */
127
+ export declare function readVoicePresetFile(bytes: Uint8Array): VoicePresetFile;
128
+ /**
129
+ * Serialize a voice preset to the v1 binary format. The output is a fresh
130
+ * `Uint8Array` ready to be written to disk.
131
+ *
132
+ * Use this only when the caller deliberately wants the legacy v1 shape (e.g.
133
+ * the existing Kokoro-style placeholder builder). New code should call
134
+ * `writeVoicePresetFileV2`.
135
+ */
136
+ export declare function writeVoicePresetFile(file: {
137
+ embedding: Float32Array;
138
+ phrases: ReadonlyArray<VoicePresetSeedPhrase>;
139
+ }): Uint8Array;
140
+ /**
141
+ * Write a voice preset in the v2 (additive) layout. Used by the OmniVoice
142
+ * freeze pipeline (`freeze-voice.mjs`) and other producers that need to
143
+ * persist `refAudioTokens` / `refText` / `instruct` alongside the v1
144
+ * embedding + phrase-seed sections.
145
+ *
146
+ * Any field that the caller doesn't need to persist can be omitted (or
147
+ * passed empty). The on-disk section is then written as length=0 and is
148
+ * read back as the empty equivalent.
149
+ */
150
+ export declare function writeVoicePresetFileV2(file: {
151
+ embedding?: Float32Array;
152
+ phrases?: ReadonlyArray<VoicePresetSeedPhrase>;
153
+ refAudioTokens?: RefAudioTokens;
154
+ refText?: string;
155
+ instruct?: string;
156
+ metadata?: Record<string, unknown>;
157
+ }): Uint8Array;
158
+ //# sourceMappingURL=voice-preset-format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-preset-format.d.ts","sourceRoot":"","sources":["../../../src/services/voice/voice-preset-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AAEH,eAAO,MAAM,kBAAkB,YAAa,CAAC;AAE7C,0BAA0B;AAC1B,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAC/C,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C,iEAAiE;AACjE,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,4BAA4B,IAA0B,CAAC;AAEpE,MAAM,WAAW,qBAAqB;IACrC,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,YAAY,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,YAAY,CAAC;IACxB,OAAO,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAC9C,oCAAoC;IACpC,cAAc,EAAE,cAAc,CAAC;IAC/B,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAG/C,QAAQ,CAAC,IAAI,EACV,WAAW,GACX,aAAa,GACb,kBAAkB,GAClB,mBAAmB,GACnB,oBAAoB,GACpB,mBAAmB,GACnB,sBAAsB,GACtB,gBAAgB,GAChB,cAAc,GACd,UAAU;gBAXb,OAAO,EAAE,MAAM,EACN,IAAI,EACV,WAAW,GACX,aAAa,GACb,kBAAkB,GAClB,mBAAmB,GACnB,oBAAoB,GACpB,mBAAmB,GACnB,sBAAsB,GACtB,gBAAgB,GAChB,cAAc,GACd,UAAU;CAKd;AAqUD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,eAAe,CAYtE;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IAC1C,SAAS,EAAE,YAAY,CAAC;IACxB,OAAO,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;CAC9C,GAAG,UAAU,CA4Cb;AAmCD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC5C,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,OAAO,CAAC,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAC/C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,GAAG,UAAU,CAuHb"}
@@ -0,0 +1,116 @@
1
+ import type { VoiceInputSource } from "./types";
2
+ export declare const VOICE_PROFILE_ARTIFACT_SCHEMA_VERSION: "eliza.voice_profile.v1";
3
+ export declare const VOICE_PROFILE_FEATURE_EMBEDDING_MODEL: "eliza-voice-profile-features-v1";
4
+ export type VoiceProfileArtifactStatus = "ready" | "needs_review" | "invalid";
5
+ export interface VoiceProfileConsent {
6
+ attribution: boolean;
7
+ synthesis: boolean;
8
+ grantedBy?: string;
9
+ grantedAt?: string;
10
+ expiresAt?: string;
11
+ evidenceId?: string;
12
+ }
13
+ export interface VoiceProfileReferenceMetadata {
14
+ speakerId?: string;
15
+ label?: string;
16
+ displayName?: string;
17
+ referenceText?: string;
18
+ language?: string;
19
+ locale?: string;
20
+ source?: VoiceInputSource;
21
+ consent?: VoiceProfileConsent;
22
+ metadata?: Record<string, unknown>;
23
+ }
24
+ export interface VoiceProfileSampleInput {
25
+ id?: string;
26
+ wavBytes: ArrayBuffer | ArrayBufferView;
27
+ referenceText?: string;
28
+ recordedAt?: string;
29
+ source?: VoiceInputSource;
30
+ metadata?: Record<string, unknown>;
31
+ }
32
+ export interface VoiceProfileAudioFeatures {
33
+ sha256: string;
34
+ byteLength: number;
35
+ format: "wav/pcm_s16le";
36
+ channels: number;
37
+ sampleRateHz: number;
38
+ bitsPerSample: 16;
39
+ dataBytes: number;
40
+ samplesPerChannel: number;
41
+ durationMs: number;
42
+ peakAbs: number;
43
+ rms: number;
44
+ zeroCrossingRate: number;
45
+ silenceRatio: number;
46
+ }
47
+ export interface VoiceProfileArtifactSample {
48
+ id: string;
49
+ wavSha256: string;
50
+ referenceText: string | null;
51
+ recordedAt: string | null;
52
+ source: VoiceInputSource | null;
53
+ metadata: Record<string, unknown> | null;
54
+ audio: VoiceProfileAudioFeatures;
55
+ featureEmbedding: number[];
56
+ }
57
+ export interface VoiceProfileArtifact {
58
+ schemaVersion: typeof VOICE_PROFILE_ARTIFACT_SCHEMA_VERSION;
59
+ artifactId: string;
60
+ embeddingModel: typeof VOICE_PROFILE_FEATURE_EMBEDDING_MODEL;
61
+ centroidEmbedding: number[];
62
+ sampleCount: number;
63
+ totalDurationMs: number;
64
+ confidence: number;
65
+ reference: {
66
+ speakerId: string | null;
67
+ label: string | null;
68
+ displayName: string | null;
69
+ referenceText: string | null;
70
+ language: string | null;
71
+ locale: string | null;
72
+ source: VoiceInputSource | null;
73
+ consent: VoiceProfileConsent;
74
+ metadata: Record<string, unknown> | null;
75
+ };
76
+ samples: VoiceProfileArtifactSample[];
77
+ usage: {
78
+ attributionAuthorized: boolean;
79
+ synthesisAuthorized: boolean;
80
+ authorizationSource: "reference_metadata";
81
+ };
82
+ provenance: {
83
+ createdAt: string | null;
84
+ deterministic: true;
85
+ generator: "app-core.voice-profile-artifact";
86
+ };
87
+ }
88
+ export interface VoiceProfileArtifactVerification {
89
+ status: VoiceProfileArtifactStatus;
90
+ artifactId: string;
91
+ expectedArtifactId: string;
92
+ artifactIdMatches: boolean;
93
+ sampleCount: number;
94
+ totalDurationMs: number;
95
+ attributionStatus: "ready" | "missing_consent" | "invalid";
96
+ synthesisStatus: "authorized_by_metadata" | "not_authorized" | "insufficient_audio" | "invalid";
97
+ issues: string[];
98
+ samples: Array<{
99
+ id: string;
100
+ status: "pass" | "fail";
101
+ issues: string[];
102
+ wavSha256Matches?: boolean;
103
+ }>;
104
+ }
105
+ export declare function canonicalVoiceProfileJson(value: unknown): string;
106
+ export declare function analyzeVoiceProfileWav(wavBytes: ArrayBuffer | ArrayBufferView): VoiceProfileAudioFeatures;
107
+ export declare function createVoiceProfileArtifact(args: {
108
+ samples: readonly VoiceProfileSampleInput[];
109
+ reference?: VoiceProfileReferenceMetadata;
110
+ createdAt?: string | null;
111
+ }): VoiceProfileArtifact;
112
+ export declare function verifyVoiceProfileArtifact(args: {
113
+ artifact: VoiceProfileArtifact;
114
+ sampleWavs?: Readonly<Record<string, ArrayBuffer | ArrayBufferView>>;
115
+ }): VoiceProfileArtifactVerification;
116
+ //# sourceMappingURL=voice-profile-artifact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-profile-artifact.d.ts","sourceRoot":"","sources":["../../../src/services/voice/voice-profile-artifact.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Server-side voice-profile management routes.
3
+ *
4
+ * Surfaces the available OmniVoice profiles from:
5
+ * 1. The active Eliza-1 bundle's `cache/voice-preset-*.bin` files.
6
+ * 2. The `models/voice/profiles/` catalog directory (build-time profiles).
7
+ *
8
+ * Routes:
9
+ * GET /v1/voice/profiles — list available profiles
10
+ * POST /v1/voice/profiles/:id/activate — set the active default profile
11
+ * DELETE /v1/voice/profiles/:id — soft-delete (mark inactive in catalog)
12
+ *
13
+ * The active default profile is persisted in the voice profile catalog JSON
14
+ * (`models/voice/profiles/catalog.json`). On model boot, the engine bridge
15
+ * reads this to pick which preset to load as the default.
16
+ *
17
+ * No runtime recording interface is exposed. Profile creation happens at
18
+ * build time via `bun run voice:create-profile`.
19
+ */
20
+ import type http from "node:http";
21
+ /** Catalog JSON schema version. */
22
+ declare const CATALOG_SCHEMA_VERSION: 1;
23
+ /** One entry in `catalog.json`. */
24
+ export interface VoiceProfileCatalogEntry {
25
+ /** Profile identifier — matches the `voice-preset-<id>.bin` filename suffix. */
26
+ id: string;
27
+ /** Human-readable display name. */
28
+ displayName: string;
29
+ /** Build-time instruct string (VoiceDesign vocabulary). */
30
+ instruct: string;
31
+ /** Whether this profile is currently active (visible + usable). */
32
+ active: boolean;
33
+ /** ISO timestamp when this entry was created. */
34
+ createdAt: string;
35
+ /** Optional source bundle. */
36
+ sourceBundleId?: string;
37
+ /** Optional sha256 of the source corpus. */
38
+ corpusSha256?: string;
39
+ }
40
+ export interface VoiceProfileCatalog {
41
+ version: typeof CATALOG_SCHEMA_VERSION;
42
+ /** ID of the profile to load as the default on model boot. */
43
+ defaultProfileId: string;
44
+ profiles: VoiceProfileCatalogEntry[];
45
+ }
46
+ export interface VoiceProfileRouteOptions {
47
+ /**
48
+ * Directory that holds `profiles/catalog.json` and the built-in
49
+ * `manifest.json`. Defaults to `<repo>/models/voice/`.
50
+ */
51
+ voiceModelsDir?: string;
52
+ /**
53
+ * Root of the active Eliza-1 bundle. When set, the routes also scan
54
+ * `<bundleRoot>/cache/voice-preset-*.bin` for bundle-shipped profiles.
55
+ */
56
+ bundleRoot?: string;
57
+ }
58
+ /**
59
+ * Route handler for all `/v1/voice/profiles*` endpoints.
60
+ *
61
+ * Returns `true` if the request was handled, `false` to pass through.
62
+ */
63
+ export declare function handleVoiceProfileRoutes(req: http.IncomingMessage, res: http.ServerResponse, opts: VoiceProfileRouteOptions): Promise<boolean>;
64
+ /**
65
+ * Resolve the active default profile id from the voice catalog.
66
+ *
67
+ * Called at model boot (before `EngineVoiceBridge.start()`) to determine
68
+ * which `voice-preset-<id>.bin` to load as the default voice. Returns
69
+ * `"default"` when the catalog has no explicit default set.
70
+ */
71
+ export declare function resolveDefaultProfileId(voiceModelsDir: string): Promise<string>;
72
+ /**
73
+ * Persist a newly created profile into the voice catalog.
74
+ *
75
+ * Called by `bun run voice:create-profile` after the freeze pipeline
76
+ * writes the preset binary. Appends an entry to `catalog.json` if the
77
+ * profile id is not already there; updates instruct + displayName if it is.
78
+ */
79
+ export declare function registerProfileInCatalog(voiceModelsDir: string, entry: Omit<VoiceProfileCatalogEntry, "active"> & {
80
+ active?: boolean;
81
+ }): Promise<void>;
82
+ export {};
83
+ //# sourceMappingURL=voice-profile-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-profile-routes.d.ts","sourceRoot":"","sources":["../../../src/services/voice/voice-profile-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAQlC,mCAAmC;AACnC,QAAA,MAAM,sBAAsB,EAAG,CAAU,CAAC;AAE1C,mCAAmC;AACnC,MAAM,WAAW,wBAAwB;IACxC,gFAAgF;IAChF,EAAE,EAAE,MAAM,CAAC;IACX,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,MAAM,EAAE,OAAO,CAAC;IAChB,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IACnC,OAAO,EAAE,OAAO,sBAAsB,CAAC;IACvC,8DAA8D;IAC9D,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,wBAAwB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,wBAAwB;IACxC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AA8KD;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC7C,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,IAAI,EAAE,wBAAwB,GAC5B,OAAO,CAAC,OAAO,CAAC,CAiIlB;AAMD;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC5C,cAAc,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC7C,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,IAAI,CAAC,wBAAwB,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GACpE,OAAO,CAAC,IAAI,CAAC,CAaf"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Voice Workbench scenario schema (#8785).
3
+ *
4
+ * One declarative format for a voice conversation that BOTH the headless runner
5
+ * (real services: ASR / diarization / EOT / respond / TTS over a corpus) and
6
+ * the headful scenario player (the real frontend client pipeline) execute, and
7
+ * that the benchmark layer scores. A scenario is an ordered list of turns plus
8
+ * named participants and scenario-level assertions; each turn declares the
9
+ * expected behavior (respond / don't, transcript, speaker label, entity) so the
10
+ * runner can score against ground truth.
11
+ *
12
+ * Pure types + a pure validator — no model loading, no I/O — so it is safe to
13
+ * import from the runner, the player, and tests alike.
14
+ */
15
+ import type { AugmentationSpec } from "./corpus-augment";
16
+ /**
17
+ * Acoustic environment for a scenario or a single turn: room noise, reverb,
18
+ * far-field attenuation, low-quality line, background talkers. Drives the
19
+ * corpus generator's degradation chain ({@link AugmentationSpec}). A turn's
20
+ * environment is merged over the scenario's, so a scenario can declare a noisy
21
+ * room once and an individual turn can override it (e.g. one talker steps away).
22
+ */
23
+ export type VoiceEnvironment = AugmentationSpec;
24
+ /** A named voice/entity participating in the scenario. */
25
+ export interface VoiceScenarioParticipant {
26
+ /** Stable label used in turns + diarization ground truth (e.g. "alice"). */
27
+ label: string;
28
+ /** TTS voice id used to synthesize this participant's turns in the corpus. */
29
+ ttsVoiceId?: string;
30
+ /** The elizaOS entity id this voice should resolve to (voice→entity match). */
31
+ entityId?: string;
32
+ /** True when this participant is the device owner / primary enrolled speaker. */
33
+ isOwner?: boolean;
34
+ }
35
+ /** One spoken turn in the scenario. */
36
+ export interface VoiceScenarioTurn {
37
+ /** Participant label (must exist in `participants`). */
38
+ speaker: string;
39
+ /** Spoken text — synthesized to audio by the corpus generator. */
40
+ text?: string;
41
+ /** OR a reference to a pre-recorded/-generated audio file under the corpus. */
42
+ audioRef?: string;
43
+ /** Override the participant's default TTS voice for this turn. */
44
+ ttsVoiceId?: string;
45
+ /** Silent gaps (ms) spliced AFTER this turn's audio (pauses / barge-in gaps). */
46
+ pausesMs?: number[];
47
+ /** Ground truth: SHOULD the agent respond to this turn? */
48
+ expectRespond: boolean;
49
+ /** Ground truth: is this segment a real end-of-turn boundary? */
50
+ expectEndOfTurn?: boolean;
51
+ /** Expected ASR transcript (for WER scoring); defaults to `text`. */
52
+ expectedTranscript?: string;
53
+ /** Expected diarization label (defaults to `speaker`). */
54
+ expectedSpeakerLabel?: string;
55
+ /** Expected entity inferred/recognized from this turn (name extraction). */
56
+ expectedEntity?: string;
57
+ /**
58
+ * Acoustic degradation for THIS turn, merged over the scenario environment.
59
+ * Use it to model one talker stepping away (far-field) or onto a bad line
60
+ * while the rest of the room stays clean.
61
+ */
62
+ environment?: VoiceEnvironment;
63
+ /**
64
+ * Ground truth for echo/self-voice rejection: this "turn" is the agent's own
65
+ * TTS bleeding back into the mic (not a real user turn). The respond gate
66
+ * MUST suppress it. Always implies `expectRespond: false`.
67
+ */
68
+ isAgentEcho?: boolean;
69
+ /**
70
+ * The agent's spoken reply to THIS turn (when it responds). The real-decision
71
+ * logic adapter uses it as the "recent agent reply" the echo gate compares a
72
+ * following `isAgentEcho` turn against — so echo rejection is tested against a
73
+ * genuine reply string, not a circular self-reference.
74
+ */
75
+ agentReplyText?: string;
76
+ }
77
+ /** Scenario-level pass/fail thresholds the benchmark layer enforces. */
78
+ export interface VoiceScenarioAssertions {
79
+ /** Max word-error-rate across the scenario's transcripts. */
80
+ maxWer?: number;
81
+ /** Max diarization error rate. */
82
+ maxDer?: number;
83
+ /** Min respond-decision accuracy. */
84
+ minRespondAccuracy?: number;
85
+ /** Max EOT false-trigger rate. */
86
+ maxEotFalseTriggerRate?: number;
87
+ /** Min voice→entity match rate. */
88
+ minVoiceEntityMatchRate?: number;
89
+ /** Latency budgets (ms) — first-audio / time-to-first-token, etc. */
90
+ maxFirstAudioMs?: number;
91
+ maxTtftMs?: number;
92
+ /** Min echo/self-voice rejection rate (agent-echo turns correctly suppressed). */
93
+ minEchoRejectionRate?: number;
94
+ /** Min owner-vs-intruder accuracy for security scenarios. */
95
+ minOwnerAccuracy?: number;
96
+ }
97
+ export type VoiceScenarioClass = "multi-voice" | "pauses" | "respond-no-respond" | "multi-speaker" | "diarization" | "entity-extraction" | "voice-recognition" | "eot" | "transcription-mode" | "multi-agent-room" | "long-form-monologue" | "robustness" | "echo-rejection" | "owner-security" | "overlapping-speech";
98
+ export interface VoiceScenario {
99
+ /** Stable id (also the corpus subdirectory name). */
100
+ id: string;
101
+ /** Human description of what the scenario exercises. */
102
+ description?: string;
103
+ /** Which scenario class(es) this belongs to (drives the headful spec matrix). */
104
+ classes: VoiceScenarioClass[];
105
+ participants: VoiceScenarioParticipant[];
106
+ turns: VoiceScenarioTurn[];
107
+ assertions?: VoiceScenarioAssertions;
108
+ /** Agent labels present in a multi-agent room (subset of participants). */
109
+ agents?: string[];
110
+ /** Scenario-wide acoustic environment; per-turn `environment` overrides it. */
111
+ environment?: VoiceEnvironment;
112
+ /**
113
+ * Entity ids the agent answers WITHOUT a wake word (owner + enrolled
114
+ * speakers). The respond gate suppresses a confident speaker NOT in this set
115
+ * as a bystander. Defaults (in the runner) to every participant that has an
116
+ * `entityId`; set it explicitly to mark some bound voices as strangers.
117
+ */
118
+ knownSpeakerEntityIds?: string[];
119
+ }
120
+ export interface VoiceScenarioValidation {
121
+ valid: boolean;
122
+ errors: string[];
123
+ }
124
+ export declare function validateVoiceScenario(scenario: VoiceScenario): VoiceScenarioValidation;
125
+ /** Merge a turn's environment over the scenario's (turn wins, field by field). */
126
+ export declare function resolveTurnEnvironment(scenario: VoiceScenario, turn: VoiceScenarioTurn): VoiceEnvironment | undefined;
127
+ /** The expected ASR reference for a turn (explicit override or its text). */
128
+ export declare function turnReferenceTranscript(turn: VoiceScenarioTurn): string;
129
+ /** The expected diarization label for a turn (explicit override or speaker). */
130
+ export declare function turnSpeakerLabel(turn: VoiceScenarioTurn): string;
131
+ //# sourceMappingURL=voice-scenario.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-scenario.d.ts","sourceRoot":"","sources":["../../../src/services/voice/voice-scenario.ts"],"names":[],"mappings":"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"}