@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 @@
1
+ {"version":3,"file":"engine-bridge.d.ts","sourceRoot":"","sources":["../../../src/services/voice/engine-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,179 @@
1
+ /**
2
+ * LiveKit turn-detector — GGUF-backed binding (J1.d).
3
+ *
4
+ * The text-side turn-completion classifier formats the latest partial
5
+ * user transcript with the Gemma chat template, strips the trailing
6
+ * `<end_of_turn>`, and reads `P(<end_of_turn>)` from the next-token
7
+ * distribution. The upstream `livekit/turn-detector` ships an ONNX
8
+ * graph; this binding consumes the **GGUF** export published at
9
+ * `elizaos/eliza-1` under `voice/turn-detector/onnx/turn-detector-en-q8.gguf`
10
+ * (and the multilingual variant at
11
+ * `voice/turn/intl/turn-detector-intl-q8.gguf`), running through the
12
+ * canonical fork wrapper `capacitor-llama` (per
13
+ * `plugins/plugin-local-inference/native/AGENTS.md` §1 — the npm
14
+ * `capacitor-llama` dep is the elizaOS fork's republish, binding to the
15
+ * fork's `libllama`).
16
+ *
17
+ * Why this exists: per I1's single-runtime audit
18
+ * (`.swarm/impl/I1-single-runtime.md` §B), the turn-detector was the
19
+ * cheapest of the four remaining ONNX surfaces to retire — the GGUF
20
+ * artifact was already published by H4 (see commit history), and the
21
+ * detector's architecture (a small decoder + classification head on the
22
+ * `<end_of_turn>` logit) is already implemented in the fork. The work is
23
+ * wiring, not porting.
24
+ *
25
+ * No silent fallback (AGENTS.md §3): when `capacitor-llama` is
26
+ * unavailable, the GGUF is missing, or the model load fails, this
27
+ * class throws `EotGgmlUnavailableError` with a structured code. The
28
+ * resolver above this binding picks `HeuristicEotClassifier` or the
29
+ * legacy ONNX path; the binding itself never fabricates a probability.
30
+ *
31
+ * Tokenizer ownership: the GGUF carries its own tokenizer (BPE +
32
+ * special tokens, including `<end_of_turn>`); this binding does NOT
33
+ * import `@huggingface/transformers`. The `apply_chat_template`
34
+ * formatting is re-implemented here using the same template upstream
35
+ * uses (single-turn user message wrapped in `<start_of_turn>user\n... \n`)
36
+ * — see `applyGemmaUserTemplate` below.
37
+ *
38
+ * --- Planned LoRA hot-swap path ---
39
+ *
40
+ * The LiveKit GGUF is a separate 66 MB (EN) or 396 MB (intl) resident
41
+ * model. The chat target model (eliza-1-{2b,4b}) is already
42
+ * loaded for conversation — its next-token distribution after the
43
+ * chat-template-formatted partial transcript provides exactly the
44
+ * same `P(<end_of_turn>)` signal. A LoRA adapter (rank 8, ~5-10 MB)
45
+ * trained on `(transcript, eot_label)` pairs can shape that signal
46
+ * to match or beat the LiveKit baseline.
47
+ *
48
+ * The training pipeline lives at
49
+ * `packages/training/scripts/voice/eot/RUNBOOK.md`. The publish gates
50
+ * (AUROC ≥ 0.85, ECE ≤ 0.05, p95 ≤ 50 ms) are in
51
+ * `packages/training/benchmarks/eot_gates.md`.
52
+ *
53
+ * Integration sketch (deferred — implement when an adapter ships):
54
+ *
55
+ * 1. Bundle ships `voice/eot-lora/eliza-1-<tier>-eot-lora.bin`
56
+ * alongside the chat target GGUF, with a manifest sidecar binding
57
+ * the adapter to the target's SHA256 (refuse to load if mismatched).
58
+ * 2. Runtime detects the adapter via the bundle catalog. When present
59
+ * AND the chat target is already loaded, the EOT resolver prefers
60
+ * LoRA hot-swap over standing up the LiveKit GGUF process.
61
+ * 3. The hot-swap path uses llama.cpp's `--lora` flag on the chat
62
+ * target. A single forward pass against the chat-template-formatted
63
+ * transcript yields the next-token logits; read `<end_of_turn>`'s
64
+ * probability and return it.
65
+ * 4. Fail-closed: if adapter load fails or the SHA binding mismatches,
66
+ * throw `EotGgmlUnavailableError("model-load-failed", ...)`. No
67
+ * silent fallback to the un-adapted target (the un-adapted logits
68
+ * would be the chat-model's own prior, not a calibrated EOT
69
+ * classifier).
70
+ *
71
+ * Until that lands, this binding remains the canonical EOT path.
72
+ */
73
+ import type { EotClassifier, VoiceTurnSignal } from "./eot-classifier";
74
+ /** Raised when the GGUF binding cannot be loaded or scored. */
75
+ export declare class EotGgmlUnavailableError extends Error {
76
+ readonly code: "native-missing" | "model-missing" | "model-load-failed" | "tokenizer-missing-end-of-turn" | "evaluate-failed" | "invalid-input";
77
+ constructor(code: EotGgmlUnavailableError["code"], message: string);
78
+ }
79
+ /** HF mono-repo holding every voice sub-model. */
80
+ export declare const LIVEKIT_TURN_DETECTOR_HF_REPO = "elizaos/eliza-1";
81
+ /** Canonical English GGUF asset path inside the bundle. */
82
+ export declare const DEFAULT_LIVEKIT_TURN_DETECTOR_GGUF_EN = "voice/turn-detector/onnx/turn-detector-en-q8.gguf";
83
+ /** Canonical multilingual GGUF asset path inside the bundle. */
84
+ export declare const DEFAULT_LIVEKIT_TURN_DETECTOR_GGUF_INTL = "voice/turn/intl/turn-detector-intl-q8.gguf";
85
+ /** Special-token literal the detector reads the probability of. */
86
+ export declare const LIVEKIT_END_OF_TURN_TOKEN = "<end_of_turn>";
87
+ /**
88
+ * Default on-disk location for the staged GGUF. The bundle downloader
89
+ * materializes assets under `<stateDir>/local-inference/models/...`; this
90
+ * matches the bundle downloader's staged-asset path layout.
91
+ */
92
+ export declare const DEFAULT_LIVEKIT_TURN_DETECTOR_GGML_DIR: string;
93
+ /**
94
+ * Resolve which GGUF variant a given Eliza-1 tier should bundle.
95
+ * Mirrors `turnDetectorRevisionForTier` in `eot-classifier.ts` —
96
+ * mobile tiers get the English-only ~40 MB Q8 GGUF, desktop tiers
97
+ * get the multilingual ~280 MB Q8 GGUF.
98
+ *
99
+ * Accepts both bare tier ids (`"4b"`) and prefixed catalog ids
100
+ * (`"eliza-1-4b"`).
101
+ */
102
+ export declare function turnDetectorGgufForTier(tierId: string): {
103
+ hfPath: string;
104
+ variant: "en" | "intl";
105
+ };
106
+ export interface LiveKitGgmlTurnDetectorOptions {
107
+ /** Absolute path to the GGUF file. Required. */
108
+ ggufPath: string;
109
+ /**
110
+ * Upstream revision tag for telemetry only (`"v1.2.2-en"` /
111
+ * `"v0.4.1-intl"`). Does not affect inference.
112
+ */
113
+ revision?: string;
114
+ /** Max history tokens after Gemma-template wrapping. Default: 128. */
115
+ maxHistoryTokens?: number;
116
+ /** Optional model label for telemetry. */
117
+ model?: string;
118
+ /** Optional thread count for the context. Default: 2. */
119
+ threads?: number;
120
+ }
121
+ /**
122
+ * Local GGUF-backed LiveKit turn-detector. Uses a `capacitor-llama`
123
+ * evaluation of the decoder, reading `P(<end_of_turn>)` from the next-token
124
+ * distribution after the truncated user-template prefix.
125
+ *
126
+ * One detector instance owns one `LlamaModel` + one `LlamaContext` +
127
+ * one `LlamaSequence`. `score()` resets the sequence between calls —
128
+ * the detector is intentionally stateless (no carried context across
129
+ * different user transcripts).
130
+ */
131
+ export declare class LiveKitGgmlTurnDetector implements EotClassifier {
132
+ readonly ggufPath: string;
133
+ private readonly maxHistoryTokens;
134
+ private readonly model;
135
+ private readonly revision;
136
+ private readonly threads;
137
+ private ready;
138
+ constructor(opts: LiveKitGgmlTurnDetectorOptions);
139
+ score(partialTranscript: string): Promise<number>;
140
+ signal(partialTranscript: string): Promise<VoiceTurnSignal>;
141
+ /** Release the underlying GGUF + context. Idempotent. */
142
+ dispose(): Promise<void>;
143
+ private load;
144
+ private loadInner;
145
+ }
146
+ /**
147
+ * Resolve a `LiveKitGgmlTurnDetector` against the bundle's on-disk
148
+ * staging directory. Search order:
149
+ *
150
+ * 1. Explicit `opts.ggufPath`.
151
+ * 2. `ELIZA_TURN_DETECTOR_GGUF` env var.
152
+ * 3. `<modelDir>/<en GGUF name>` (the canonical layout for the
153
+ * bundle's English variant).
154
+ * 4. `<modelDir>/<intl GGUF name>` (multilingual).
155
+ *
156
+ * Returns `null` if no GGUF is found alongside the directory — the
157
+ * caller falls back to `HeuristicEotClassifier`.
158
+ */
159
+ export declare function createBundledLiveKitGgmlTurnDetector(opts?: {
160
+ ggufPath?: string;
161
+ modelDir?: string;
162
+ revision?: string;
163
+ maxHistoryTokens?: number;
164
+ threads?: number;
165
+ }): Promise<LiveKitGgmlTurnDetector | null>;
166
+ /**
167
+ * Apply the single-turn user Gemma chat template, omitting the trailing
168
+ * `<end_of_turn>` so the detector head scores it as the next token.
169
+ *
170
+ * Upstream `livekit/turn-detector` formats:
171
+ *
172
+ * <start_of_turn>user\n{transcript}<end_of_turn>\n
173
+ *
174
+ * The detector strips the trailing `<end_of_turn>\n` and reads
175
+ * `P(<end_of_turn>)` after the user content. We emit the prefix exactly,
176
+ * stopping where the `<end_of_turn>` would go.
177
+ */
178
+ export declare function applyGemmaUserTemplate(transcript: string): string;
179
+ //# sourceMappingURL=eot-classifier-ggml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eot-classifier-ggml.d.ts","sourceRoot":"","sources":["../../../src/services/voice/eot-classifier-ggml.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAOvE,+DAA+D;AAC/D,qBAAa,uBAAwB,SAAQ,KAAK;IACjD,QAAQ,CAAC,IAAI,EACV,gBAAgB,GAChB,eAAe,GACf,mBAAmB,GACnB,+BAA+B,GAC/B,iBAAiB,GACjB,eAAe,CAAC;gBACP,IAAI,EAAE,uBAAuB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM;CAKlE;AAMD,kDAAkD;AAClD,eAAO,MAAM,6BAA6B,oBAAoB,CAAC;AAE/D,2DAA2D;AAC3D,eAAO,MAAM,qCAAqC,sDACE,CAAC;AAErD,gEAAgE;AAChE,eAAO,MAAM,uCAAuC,+CACP,CAAC;AAE9C,mEAAmE;AACnE,eAAO,MAAM,yBAAyB,kBAAkB,CAAC;AAEzD;;;;GAIG;AACH,eAAO,MAAM,sCAAsC,QAMlD,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,IAAI,GAAG,MAAM,CAAC;CACvB,CAcA;AAqGD,MAAM,WAAW,8BAA8B;IAC9C,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD;;;;;;;;;GASG;AACH,qBAAa,uBAAwB,YAAW,aAAa;IAC5D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,KAAK,CAKI;gBAEL,IAAI,EAAE,8BAA8B;IAkB1C,KAAK,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIjD,MAAM,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA8DjE,yDAAyD;IACnD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAW9B,OAAO,CAAC,IAAI;YAUE,SAAS;CA8DvB;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAsB,oCAAoC,CACzD,IAAI,GAAE;IACL,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CACZ,GACJ,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAsCzC;AAqBD;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEjE"}
@@ -0,0 +1,211 @@
1
+ /**
2
+ * Semantic end-of-turn (EOT) classifier — Tier 3 of the three-tier VAD.
3
+ *
4
+ * Tier 1: RMS energy gate (~10 ms)
5
+ * Tier 2: Silero VAD (~32 ms hop)
6
+ * Tier 3: Semantic EOT classifier — P(turn_complete | transcript_so_far)
7
+ *
8
+ * The classifier operates on the partial transcript text emitted by streaming
9
+ * ASR, not on audio. It returns P(done) ∈ [0, 1]. The voice state machine
10
+ * uses it to:
11
+ *
12
+ * P(done) ≥ 0.9 AND silence ≥ 50 ms → commit immediately, skip hangover
13
+ * P(done) ≥ 0.6 AND silence ≥ 20 ms → enter PAUSE_TENTATIVE early (start drafter)
14
+ * P(done) < 0.4 → extend hangover by 50 ms (mid-clause)
15
+ *
16
+ * Three implementations ship:
17
+ *
18
+ * `HeuristicEotClassifier` — deterministic, zero-latency, no model load.
19
+ * This is the baseline; it is always available.
20
+ *
21
+ * `RemoteEotClassifier` — fail-closed HTTP adapter for a real model server.
22
+ * It throws on network/parse errors so callers never mistake a synthetic
23
+ * fallback for a measured turn signal.
24
+ *
25
+ * `Eliza1EotClassifier` — uses the already-loaded text model to compute
26
+ * P(`<|im_end|>` | partial transcript). Zero additional model weights.
27
+ *
28
+ * The GGUF-backed LiveKit detector lives in `eot-classifier-ggml.ts`.
29
+ *
30
+ * Cancellation contract (handshake with VoiceTurnController / R11): the
31
+ * classifier emits a `VoiceTurnSignal` per partial transcript. It NEVER
32
+ * aborts a turn directly — `signal()` is data, not a cancellation. The
33
+ * controller layer above consumes the signal and decides whether to
34
+ * suppress (via `BargeInCancelToken.signal` with reason `"turn-suppressed"`).
35
+ */
36
+ import type { Eliza1EotScoreResult, Eliza1EotScorerOptions } from "./eliza1-eot-scorer";
37
+ import { Eliza1EotScorer } from "./eliza1-eot-scorer";
38
+ import { FfiEotScorer, type FfiEotScorerOptions } from "./fused-eot-scorer";
39
+ export type VoiceNextSpeaker = "agent" | "user" | "unknown";
40
+ export interface VoiceTurnSignal {
41
+ /** P(user turn complete | transcript/history). */
42
+ endOfTurnProbability: number;
43
+ /**
44
+ * The best turn-taking read from this signal. Text-only EOU models infer
45
+ * this from end-of-turn probability; audio/prosody models can set it
46
+ * directly.
47
+ */
48
+ nextSpeaker: VoiceNextSpeaker;
49
+ /** Whether the agent should begin a response now. */
50
+ agentShouldSpeak: boolean | null;
51
+ /** Implementation/source name for telemetry and trace records. */
52
+ source: "heuristic" | "livekit-turn-detector" | "eliza-1-drafter" | "remote" | "custom";
53
+ /** Optional model/version identifier for telemetry. */
54
+ model?: string;
55
+ /** Text actually scored after normalization/template truncation. */
56
+ transcript: string;
57
+ /** Wall-clock model latency, excluding caller queueing. */
58
+ latencyMs?: number;
59
+ }
60
+ /**
61
+ * End-of-turn classifier interface. Both implementations satisfy this contract
62
+ * so callers are backend-agnostic.
63
+ */
64
+ export interface EotClassifier {
65
+ /** Return P(turn_complete) ∈ [0, 1] for `partialTranscript`. */
66
+ score(partialTranscript: string): Promise<number>;
67
+ /** Return the structured turn signal when the implementation can provide it. */
68
+ signal?(partialTranscript: string): Promise<VoiceTurnSignal>;
69
+ }
70
+ export declare function clampProbability(value: number): number;
71
+ export declare function turnSignalFromProbability(args: {
72
+ probability: number;
73
+ transcript: string;
74
+ source: VoiceTurnSignal["source"];
75
+ model?: string;
76
+ latencyMs?: number;
77
+ }): VoiceTurnSignal;
78
+ /**
79
+ * Rules-of-thumb EOT classifier. Delegates to the single canonical heuristic in
80
+ * `@elizaos/shared/voice-eot` — the SAME scorer the UI shell capture path
81
+ * (`packages/ui/src/voice/end-of-turn.ts`) uses, so the two surfaces can never
82
+ * drift. The rules fire in priority order; the first match wins:
83
+ *
84
+ * Priority Signal P(done)
85
+ * -------- ------------------------------------------- -------
86
+ * 1 Trailing ellipsis ("…" / "..") 0.20
87
+ * 2 Sentence-final punctuation (. ! ?) 0.95
88
+ * 3 Question-tag words ("right?", "yeah", …) 0.85
89
+ * 4 Trailing conjunction (and/but/or/because/…) 0.15
90
+ * 5 Last word is a preposition or article 0.20
91
+ * 6 Short utterance (< 3 words, no trail-off) 0.70
92
+ * 7 No signal 0.50
93
+ */
94
+ export declare class HeuristicEotClassifier implements EotClassifier {
95
+ score(partialTranscript: string): Promise<number>;
96
+ signal(partialTranscript: string): Promise<VoiceTurnSignal>;
97
+ }
98
+ /**
99
+ * Resolve which upstream revision a given Eliza-1 tier should bundle.
100
+ * Mobile/small tiers (`2b`, the entry tier) get the English-only variant;
101
+ * desktop/server tiers (`4b`+) get the multilingual variant.
102
+ *
103
+ * Accepts both bare tier ids (`"4b"`) and prefixed catalog ids
104
+ * (`"eliza-1-4b"`).
105
+ */
106
+ export declare const LIVEKIT_TURN_DETECTOR_EN_REVISION = "v1.2.2-en";
107
+ export declare const LIVEKIT_TURN_DETECTOR_INTL_REVISION = "v0.4.1-intl";
108
+ export declare function turnDetectorRevisionForTier(tierId: string): typeof LIVEKIT_TURN_DETECTOR_EN_REVISION | typeof LIVEKIT_TURN_DETECTOR_INTL_REVISION;
109
+ export interface RemoteEotClassifierOptions {
110
+ /**
111
+ * HTTP endpoint to POST the partial transcript to. Expected to return JSON
112
+ * with a `p_done` field: `{ "p_done": 0.92 }`.
113
+ *
114
+ * Example: LiveKit turn-detector inference endpoint or a custom model server.
115
+ */
116
+ endpoint: string;
117
+ /**
118
+ * Timeout in milliseconds for each HTTP request. Default 200 ms — the
119
+ * classifier must be faster than the silence hangover it's trying to beat.
120
+ */
121
+ timeoutMs?: number;
122
+ /** Optional model label for telemetry. */
123
+ model?: string;
124
+ }
125
+ /**
126
+ * Remote EOT classifier. POSTs `{ transcript: string }` to `endpoint`
127
+ * and expects `{ p_done: number }` back.
128
+ *
129
+ * Intended to be wired to a real LiveKit turn-detector HTTP API or a custom
130
+ * model inference server. This adapter fails closed: no fallback score is
131
+ * manufactured on network or parse errors.
132
+ */
133
+ export declare class RemoteEotClassifier implements EotClassifier {
134
+ private readonly endpoint;
135
+ private readonly timeoutMs;
136
+ private readonly model;
137
+ constructor(opts: RemoteEotClassifierOptions);
138
+ score(partialTranscript: string): Promise<number>;
139
+ signal(partialTranscript: string): Promise<VoiceTurnSignal>;
140
+ }
141
+ /** P(done) ≥ this AND silence ≥ EOT_COMMIT_SILENCE_MS → commit immediately. */
142
+ export declare const EOT_COMMIT_THRESHOLD = 0.9;
143
+ /** P(done) ≥ this AND silence ≥ EOT_TENTATIVE_SILENCE_MS → enter PAUSE_TENTATIVE early. */
144
+ export declare const EOT_TENTATIVE_THRESHOLD = 0.6;
145
+ /** P(done) < this → extend hangover by EOT_HANGOVER_EXTENSION_MS. */
146
+ export declare const EOT_MID_CLAUSE_THRESHOLD = 0.4;
147
+ /** Minimum silence (ms) required alongside P ≥ EOT_COMMIT_THRESHOLD to commit. */
148
+ export declare const EOT_COMMIT_SILENCE_MS = 50;
149
+ /** Minimum silence (ms) required alongside P ≥ EOT_TENTATIVE_THRESHOLD to start drafter. */
150
+ export declare const EOT_TENTATIVE_SILENCE_MS = 20;
151
+ /** How many ms to add to the pause hangover when P < EOT_MID_CLAUSE_THRESHOLD. */
152
+ export declare const EOT_HANGOVER_EXTENSION_MS = 50;
153
+ export type { Eliza1EotScoreResult, Eliza1EotScorerOptions };
154
+ /**
155
+ * Eliza-1 EOT classifier. Reuses the already-loaded text model (typically
156
+ * the eliza-1 drafter — same model MTP keeps warm for speculative
157
+ * decoding) to compute P(`<|im_end|>` | partial transcript). Optionally
158
+ * loads a fine-tuned EOT LoRA adapter on top of the base weights — see
159
+ * `packages/training/scripts/turn_detector/` for the training recipe.
160
+ *
161
+ * Unlike the GGUF-backed `LiveKitGgmlTurnDetector`, this classifier ships
162
+ * zero additional model weights — it leans on what's already in RAM.
163
+ */
164
+ export declare class Eliza1EotClassifier implements EotClassifier {
165
+ private readonly scorer;
166
+ constructor(options: Eliza1EotScorerOptions | {
167
+ scorer: Eliza1EotScorer;
168
+ });
169
+ score(partialTranscript: string): Promise<number>;
170
+ signal(partialTranscript: string): Promise<VoiceTurnSignal>;
171
+ dispose(): Promise<void>;
172
+ }
173
+ /**
174
+ * Above this heuristic confidence the heuristic's high-precision syntactic
175
+ * verdict is trusted outright and the model forward pass is skipped. Sentence-
176
+ * final punctuation, question tags, trailing conjunctions, and dangling
177
+ * prepositions all clear this bar (P ≤ 0.2 or ≥ 0.8 → confidence ≥ 0.6); short
178
+ * utterances and the no-signal case fall below it and defer to the model.
179
+ */
180
+ export declare const COMPOSITE_HEURISTIC_CONFIDENCE_CUTOFF = 0.6;
181
+ /**
182
+ * End-of-turn classifier that blends the fused semantic scorer
183
+ * (P(`<|im_end|>`) over the loaded text model) with the heuristic syntactic
184
+ * rules. The heuristic is NOT a fallback — it is a tuned co-signal: when it is
185
+ * confident (clear punctuation / mid-clause conjunction / dangling preposition)
186
+ * its verdict wins outright and the model pass is skipped; in the ambiguous
187
+ * middle (short utterance, no syntactic cue) the model's semantic judgment
188
+ * dominates, blended by the heuristic's residual confidence. Acoustic
189
+ * silence/VAD timing lives a tier below this (the VAD), so this layer is the
190
+ * pure text-completion read.
191
+ */
192
+ export declare class CompositeEotClassifier implements EotClassifier {
193
+ private readonly model;
194
+ private readonly heuristic;
195
+ private readonly confidenceCutoff;
196
+ constructor(options: {
197
+ model: FfiEotScorer;
198
+ heuristic?: HeuristicEotClassifier;
199
+ confidenceCutoff?: number;
200
+ });
201
+ private blend;
202
+ score(partialTranscript: string): Promise<number>;
203
+ signal(partialTranscript: string): Promise<VoiceTurnSignal>;
204
+ }
205
+ /**
206
+ * Build a composite EOT classifier backed by the fused FFI scorer, or null when
207
+ * the loaded fused build does not wire the v11 EOT symbol (a pre-v11 library) —
208
+ * the caller then falls back to a heuristic-only classifier.
209
+ */
210
+ export declare function tryBuildFusedEotClassifier(options: FfiEotScorerOptions): CompositeEotClassifier | null;
211
+ //# sourceMappingURL=eot-classifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eot-classifier.d.ts","sourceRoot":"","sources":["../../../src/services/voice/eot-classifier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Structured voice-startup failure.
3
+ *
4
+ * Per `packages/inference/AGENTS.md` §3 + §9 (no defensive code, no
5
+ * log-and-continue), the engine MUST throw one of these when voice mode
6
+ * is requested but cannot start (missing FFI, missing speaker preset,
7
+ * missing fused build, missing required region, manifest mismatch). The
8
+ * runtime then refuses to activate the model — never silently degrades to
9
+ * text-only.
10
+ *
11
+ * Lives in its own module (rather than `engine-bridge.ts`) so the voice
12
+ * sub-modules — `pipeline-impls.ts`, `vad.ts`, `embedding.ts` — can throw
13
+ * it without importing the bridge (which imports them in turn, which
14
+ * would be a cycle).
15
+ */
16
+ export declare class VoiceStartupError extends Error {
17
+ readonly code: "missing-ffi" | "missing-speaker-preset" | "missing-bundle-root" | "missing-asr-model" | "missing-fused-build" | "blocked-asr-provenance" | "missing-turn-detector" | "already-started" | "not-started" | "invalid-options";
18
+ constructor(code: VoiceStartupError["code"], message: string);
19
+ }
20
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/services/voice/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EACV,aAAa,GACb,wBAAwB,GACxB,qBAAqB,GACrB,mBAAmB,GACnB,qBAAqB,GACrB,wBAAwB,GACxB,uBAAuB,GACvB,iBAAiB,GACjB,aAAa,GACb,iBAAiB,CAAC;gBAET,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM;CAK5D"}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Expressive (emotion / singing) inline-tag handling for the voice path.
3
+ *
4
+ * The canonical schema is the **omnivoice-singing inline-tag vocabulary,
5
+ * verbatim** (no SSML, no new format — it is exactly what the fine-tuned
6
+ * `omnivoice-singing` GGUF understands when the tags appear inline in the
7
+ * text passed to `eliza_inference_tts_synthesize` / `/v1/audio/speech`):
8
+ *
9
+ * emotion tags [happy] [sad] [angry] [nervous] [calm] [excited] [whisper]
10
+ * singing tag [singing]
11
+ * preserved [laughter] [sigh] (non-verbals — passed through, not
12
+ * consumed as a scope-setting tag)
13
+ *
14
+ * Tags are *inline* and *scoped*: a tag applies from where it appears to the
15
+ * next tag (or end of text). Mid-sentence shifts are allowed
16
+ * (`"that's [excited] amazing"`). `parseExpressiveTags` segments the text by
17
+ * tag boundaries so the chunker / TTS backend can carry the in-scope emotion
18
+ * with each phrase.
19
+ *
20
+ * Two consumers:
21
+ * - the *singing* TTS GGUF: it parses the tags itself, so the bridge passes
22
+ * the tag-bearing text through (`segment.text` keeps `[happy]` etc. — see
23
+ * `makeTextToSpeechHandler`, which deliberately does NOT strip them).
24
+ * - a *base* TTS GGUF (no `emotion-tags` / `singing` capability): the tags
25
+ * would otherwise be spoken literally, so `stripExpressiveTags` removes
26
+ * them before synthesis. (The model shouldn't have emitted them when the
27
+ * bundle lacks the capability — but defense in depth.)
28
+ *
29
+ * Coordinates with:
30
+ * - `manifest/schema.ts` → `ELIZA_1_VOICE_CAPABILITIES` (`emotion-tags` /
31
+ * `singing` gate whether the prompt instructs the model to emit tags).
32
+ * - WS-4's Stage-1 envelope `emotion` enum field (one-line field-evaluator
33
+ * registration there) — `EXPRESSIVE_EMOTION_ENUM` is the shared value set.
34
+ * - WS-3's `voice_emotion` fine-tune corpus task — both forms (inline tags +
35
+ * the `emotion` field) are populated on voice-mode rows.
36
+ */
37
+ /** Emotion tags that set the affect scope for the text that follows. */
38
+ export declare const EXPRESSIVE_EMOTION_TAGS: readonly ["happy", "sad", "angry", "nervous", "calm", "excited", "whisper"];
39
+ export type ExpressiveEmotion = (typeof EXPRESSIVE_EMOTION_TAGS)[number];
40
+ /**
41
+ * The Stage-1 envelope `emotion` enum value set (decision #2 in
42
+ * `.swarm/IMPLEMENTATION_PLAN.md` §1 — the optional field-evaluator WS-4 wires
43
+ * registers exactly this enum). `none` is the default / "no expressive cue"
44
+ * value so the field is always present and structured-decode can singleton-fill
45
+ * it. `whisper` is included because it travels the same inline-tag channel even
46
+ * though it is a delivery style rather than an affect.
47
+ */
48
+ export declare const EXPRESSIVE_EMOTION_ENUM: readonly ["none", "happy", "sad", "angry", "nervous", "calm", "excited", "whisper"];
49
+ export type ExpressiveEmotionEnum = (typeof EXPRESSIVE_EMOTION_ENUM)[number];
50
+ /** The singing tag — a style flag, not an affect; orthogonal to emotion. */
51
+ export declare const EXPRESSIVE_SINGING_TAG: "singing";
52
+ /**
53
+ * Preserved non-verbals — these are *rendered* as sound effects by the TTS,
54
+ * not consumed as scope-setting tags. They pass straight through the bridge.
55
+ */
56
+ export declare const EXPRESSIVE_NONVERBAL_TAGS: readonly ["laughter", "sigh"];
57
+ export type ExpressiveNonverbal = (typeof EXPRESSIVE_NONVERBAL_TAGS)[number];
58
+ /**
59
+ * The full inline-tag vocabulary (emotion + singing + preserved non-verbals),
60
+ * verbatim — the union the `omnivoice-singing` GGUF understands. Use this for
61
+ * the prompt clause and the `tagLeakage` check.
62
+ */
63
+ export declare const EXPRESSIVE_TAGS: readonly ["happy", "sad", "angry", "nervous", "calm", "excited", "whisper", "singing", "laughter", "sigh"];
64
+ export type ExpressiveTag = (typeof EXPRESSIVE_TAGS)[number];
65
+ /** `true` iff `tag` (without brackets, case-insensitive) is a legal expressive tag. */
66
+ export declare function isExpressiveTag(tag: string): tag is ExpressiveTag;
67
+ /** `true` iff `value` is a legal `emotion` enum value (incl. `"none"`). */
68
+ export declare function isExpressiveEmotionEnum(value: string): value is ExpressiveEmotionEnum;
69
+ /** One scoped segment of an expressive `replyText`. */
70
+ export interface ExpressiveSegment {
71
+ /**
72
+ * The segment text. For the singing-GGUF path this *keeps* the leading
73
+ * scope-setting emotion/singing tag and any inline non-verbals (the GGUF
74
+ * parses them); for a base-TTS path use `cleanText` / `stripExpressiveTags`.
75
+ */
76
+ text: string;
77
+ /** The segment text with every recognized expressive tag removed. */
78
+ cleanText: string;
79
+ /** The emotion in scope for this segment (`null` = no emotion cue). */
80
+ emotion: ExpressiveEmotion | null;
81
+ /** Whether `[singing]` is in scope for this segment. */
82
+ singing: boolean;
83
+ /** Preserved non-verbals that appeared inside this segment, in order. */
84
+ nonverbals: ExpressiveNonverbal[];
85
+ }
86
+ export interface ParsedExpressiveText {
87
+ /** The whole `replyText` with every recognized expressive tag removed. */
88
+ cleanText: string;
89
+ /** The text split at every emotion/singing scope boundary. */
90
+ segments: ExpressiveSegment[];
91
+ /** The dominant (first scope-setting) emotion across the text, or `null`. */
92
+ dominantEmotion: ExpressiveEmotion | null;
93
+ /** `true` iff any `[singing]` tag appeared. */
94
+ anySinging: boolean;
95
+ /** `true` iff any recognized expressive tag appeared. */
96
+ hasTags: boolean;
97
+ /** Literal `[token]` occurrences that look like a tag but aren't in the
98
+ * vocabulary (e.g. a hallucinated `[grumpy]`) — recorded, not silently
99
+ * dropped, so the `tagLeakage` check can flag them. */
100
+ unknownTags: string[];
101
+ }
102
+ /**
103
+ * Parse a `replyText` into expressive segments. A scope-setting tag is an
104
+ * emotion tag or `[singing]`; a `[laughter]` / `[sigh]` is a non-verbal that
105
+ * is recorded on the current segment but does not start a new one. The
106
+ * segment text retains the scope tag (for the singing-GGUF pass-through) and
107
+ * `cleanText` is the same text with all expressive tags removed.
108
+ *
109
+ * Empty / whitespace-only segments between two adjacent scope tags are
110
+ * dropped (a leading `[happy][whisper]hi` → one segment, scope = whisper).
111
+ */
112
+ export declare function parseExpressiveTags(replyText: string): ParsedExpressiveText;
113
+ /** Strip every recognized expressive tag (emotion / singing / non-verbal)
114
+ * from `text`. Used on a base-TTS path so a literal `[happy]` never reaches
115
+ * the audio. Unknown bracket tokens (`[grumpy]`) are left as-is — they are
116
+ * the model's text, not a tag we recognise. */
117
+ export declare function stripExpressiveTags(text: string): string;
118
+ /**
119
+ * Map the dominant emotion (or `null`) to the Stage-1 envelope `emotion` enum
120
+ * value (`null` → `"none"`). Inverse: `EXPRESSIVE_EMOTION_ENUM` minus `"none"`.
121
+ */
122
+ export declare function emotionToEnum(emotion: ExpressiveEmotion | null): ExpressiveEmotionEnum;
123
+ /** Map the Stage-1 envelope `emotion` enum value back to an emotion (or `null`). */
124
+ export declare function enumToEmotion(value: ExpressiveEmotionEnum | string | null | undefined): ExpressiveEmotion | null;
125
+ /**
126
+ * Candidate labels a connector or explicitly emotion-aware ASR adapter may
127
+ * surface as structured metadata. The local fused ASR path must not be treated
128
+ * as model-native emotion recognition unless that backend explicitly advertises
129
+ * such a field; callers should record heuristic attribution separately.
130
+ */
131
+ export declare const ASR_EMOTION_LABELS: readonly ["surprise", "calm", "happiness", "sadness", "disgust", "anger", "fear"];
132
+ export type AsrEmotionLabel = (typeof ASR_EMOTION_LABELS)[number];
133
+ /**
134
+ * Explicit mapping from an ASR-perceived emotion label to the tag vocab the
135
+ * generator emits. `whisper` / `singing` are delivery styles, not affects, and
136
+ * are excluded from the fidelity score (scored separately as "style preserved"
137
+ * via the `instruct` round-trip). Labels with no clean tag analogue map to
138
+ * `null` (counted as "no agreement" rather than forced).
139
+ */
140
+ export declare const ASR_LABEL_TO_EMOTION_TAG: Readonly<Record<AsrEmotionLabel, ExpressiveEmotion | null>>;
141
+ /** Normalize an arbitrary ASR-emitted emotion string (any casing, possibly an
142
+ * adjective form) to an `AsrEmotionLabel` if it matches, else `null`. */
143
+ export declare function normalizeAsrEmotionLabel(raw: string | null | undefined): AsrEmotionLabel | null;
144
+ /** Map an ASR-perceived emotion (raw string) straight to the tag vocab, via
145
+ * `normalizeAsrEmotionLabel` + `ASR_LABEL_TO_EMOTION_TAG`. `null` when it
146
+ * doesn't map. */
147
+ export declare function asrEmotionToTag(raw: string | null | undefined): ExpressiveEmotion | null;
148
+ /**
149
+ * The clause appended to the voice-mode response instruction telling the model
150
+ * it MAY annotate `replyText` with inline expressive tags. Only emit this when
151
+ * `manifest.voice.capabilities` includes `emotion-tags` (don't instruct the
152
+ * model to emit tags a base-TTS bundle will speak literally). `singingAllowed`
153
+ * controls whether `[singing]` is offered (gate on the `singing` capability).
154
+ */
155
+ export declare function expressiveTagPromptClause(opts?: {
156
+ singingAllowed?: boolean;
157
+ }): string;
158
+ //# sourceMappingURL=expressive-tags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expressive-tags.d.ts","sourceRoot":"","sources":["../../../src/services/voice/expressive-tags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAMH,wEAAwE;AACxE,eAAO,MAAM,uBAAuB,6EAQ1B,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzE;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,qFAG1B,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7E,4EAA4E;AAC5E,eAAO,MAAM,sBAAsB,EAAG,SAAkB,CAAC;AAEzD;;;GAGG;AACH,eAAO,MAAM,yBAAyB,+BAAgC,CAAC;AAEvE,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7E;;;;GAIG;AACH,eAAO,MAAM,eAAe,4GAIlB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAM7D,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,aAAa,CAEjE;AAED,2EAA2E;AAC3E,wBAAgB,uBAAuB,CACtC,KAAK,EAAE,MAAM,GACX,KAAK,IAAI,qBAAqB,CAEhC;AAkBD,uDAAuD;AACvD,MAAM,WAAW,iBAAiB;IACjC;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAClC,wDAAwD;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,UAAU,EAAE,mBAAmB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACpC,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,6EAA6E;IAC7E,eAAe,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC1C,+CAA+C;IAC/C,UAAU,EAAE,OAAO,CAAC;IACpB,yDAAyD;IACzD,OAAO,EAAE,OAAO,CAAC;IACjB;;4DAEwD;IACxD,WAAW,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,oBAAoB,CAiG3E;AAED;;;gDAGgD;AAChD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOxD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC5B,OAAO,EAAE,iBAAiB,GAAG,IAAI,GAC/B,qBAAqB,CAEvB;AAED,oFAAoF;AACpF,wBAAgB,aAAa,CAC5B,KAAK,EAAE,qBAAqB,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GACtD,iBAAiB,GAAG,IAAI,CAG1B;AAMD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,mFAQrB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAC9C,MAAM,CAAC,eAAe,EAAE,iBAAiB,GAAG,IAAI,CAAC,CASjD,CAAC;AAEF;0EAC0E;AAC1E,wBAAgB,wBAAwB,CACvC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC5B,eAAe,GAAG,IAAI,CAmBxB;AAED;;mBAEmB;AACnB,wBAAgB,eAAe,CAC9B,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC5B,iBAAiB,GAAG,IAAI,CAG1B;AAMD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACxC,IAAI,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GACrC,MAAM,CAeR"}