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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (701) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +83 -0
  3. package/package.json +82 -15
  4. package/src/actions/generate-media.d.ts +59 -0
  5. package/src/actions/generate-media.d.ts.map +1 -0
  6. package/src/actions/generate-media.ts +647 -0
  7. package/src/actions/identify-speaker.d.ts +23 -0
  8. package/src/actions/identify-speaker.d.ts.map +1 -0
  9. package/src/actions/identify-speaker.ts +171 -0
  10. package/src/actions/transcription-control.d.ts +29 -0
  11. package/src/actions/transcription-control.d.ts.map +1 -0
  12. package/src/actions/transcription-control.test.ts +100 -0
  13. package/src/actions/transcription-control.ts +127 -0
  14. package/src/adapters/capacitor-llama/__tests__/compat-behavior.test.ts +218 -0
  15. package/src/adapters/capacitor-llama/__tests__/index.test.ts +68 -0
  16. package/src/adapters/capacitor-llama/__tests__/structured-output.test.ts +215 -0
  17. package/src/adapters/capacitor-llama/__tests__/text-streaming.test.ts +174 -0
  18. package/src/adapters/capacitor-llama/environment.ts +71 -0
  19. package/src/adapters/capacitor-llama/index.browser.ts +83 -0
  20. package/src/adapters/capacitor-llama/index.ts +807 -0
  21. package/src/adapters/capacitor-llama/loader.ts +109 -0
  22. package/src/adapters/capacitor-llama/structured-output.ts +165 -0
  23. package/src/adapters/capacitor-llama/text-streaming.ts +227 -0
  24. package/src/adapters/capacitor-llama/types.ts +374 -0
  25. package/src/backends/apple-foundation.ts +127 -0
  26. package/src/index.d.ts +8 -0
  27. package/src/index.d.ts.map +1 -0
  28. package/src/index.ts +62 -0
  29. package/src/local-inference-routes.d.ts +38 -0
  30. package/src/local-inference-routes.d.ts.map +1 -0
  31. package/src/local-inference-routes.test.ts +344 -0
  32. package/src/local-inference-routes.ts +1543 -0
  33. package/src/provider.d.ts +21 -0
  34. package/src/provider.d.ts.map +1 -0
  35. package/src/provider.ts +1082 -0
  36. package/src/routes/compat-helpers.d.ts +18 -0
  37. package/src/routes/compat-helpers.d.ts.map +1 -0
  38. package/src/routes/compat-helpers.ts +274 -0
  39. package/src/routes/family-member-route.d.ts +62 -0
  40. package/src/routes/family-member-route.d.ts.map +1 -0
  41. package/src/routes/family-member-route.ts +353 -0
  42. package/src/routes/index.d.ts +19 -0
  43. package/src/routes/index.d.ts.map +1 -0
  44. package/src/routes/index.ts +60 -0
  45. package/src/routes/live-diarization-route.d.ts +26 -0
  46. package/src/routes/live-diarization-route.d.ts.map +1 -0
  47. package/src/routes/live-diarization-route.test.ts +213 -0
  48. package/src/routes/live-diarization-route.ts +122 -0
  49. package/src/routes/local-inference-asr-route.d.ts +4 -0
  50. package/src/routes/local-inference-asr-route.d.ts.map +1 -0
  51. package/src/routes/local-inference-asr-route.test.ts +205 -0
  52. package/src/routes/local-inference-asr-route.ts +163 -0
  53. package/src/routes/local-inference-asr-transcribe.d.ts +20 -0
  54. package/src/routes/local-inference-asr-transcribe.d.ts.map +1 -0
  55. package/src/routes/local-inference-asr-transcribe.test.ts +118 -0
  56. package/src/routes/local-inference-asr-transcribe.ts +97 -0
  57. package/src/routes/local-inference-compat-routes.d.ts +16 -0
  58. package/src/routes/local-inference-compat-routes.d.ts.map +1 -0
  59. package/src/routes/local-inference-compat-routes.test.ts +485 -0
  60. package/src/routes/local-inference-compat-routes.ts +808 -0
  61. package/src/routes/local-inference-tts-route.d.ts +7 -0
  62. package/src/routes/local-inference-tts-route.d.ts.map +1 -0
  63. package/src/routes/local-inference-tts-route.test.ts +179 -0
  64. package/src/routes/local-inference-tts-route.ts +230 -0
  65. package/src/routes/transcript-audio-store.d.ts +15 -0
  66. package/src/routes/transcript-audio-store.d.ts.map +1 -0
  67. package/src/routes/transcript-audio-store.ts +27 -0
  68. package/src/routes/transcripts-routes.d.ts +36 -0
  69. package/src/routes/transcripts-routes.d.ts.map +1 -0
  70. package/src/routes/transcripts-routes.test.ts +144 -0
  71. package/src/routes/transcripts-routes.ts +159 -0
  72. package/src/routes/voice-first-run-routes.d.ts +62 -0
  73. package/src/routes/voice-first-run-routes.d.ts.map +1 -0
  74. package/src/routes/voice-first-run-routes.ts +524 -0
  75. package/src/routes/voice-models-routes.d.ts +62 -0
  76. package/src/routes/voice-models-routes.d.ts.map +1 -0
  77. package/src/routes/voice-models-routes.ts +554 -0
  78. package/src/routes/voice-profile-plugin-routes.d.ts +19 -0
  79. package/src/routes/voice-profile-plugin-routes.d.ts.map +1 -0
  80. package/src/routes/voice-profile-plugin-routes.ts +138 -0
  81. package/src/routes/voice-profiles-management-routes.d.ts +52 -0
  82. package/src/routes/voice-profiles-management-routes.d.ts.map +1 -0
  83. package/src/routes/voice-profiles-management-routes.ts +476 -0
  84. package/src/routes/voice-speaker-profile-routes.d.ts +57 -0
  85. package/src/routes/voice-speaker-profile-routes.d.ts.map +1 -0
  86. package/src/routes/voice-speaker-profile-routes.ts +199 -0
  87. package/src/runtime/aosp-llama-loader-selection.test.ts +80 -0
  88. package/src/runtime/capacitor-llama.d.ts +25 -0
  89. package/src/runtime/embedding-manager-support.d.ts +77 -0
  90. package/src/runtime/embedding-manager-support.d.ts.map +1 -0
  91. package/src/runtime/embedding-manager-support.ts +497 -0
  92. package/src/runtime/embedding-presets.d.ts +16 -0
  93. package/src/runtime/embedding-presets.d.ts.map +1 -0
  94. package/src/runtime/embedding-presets.ts +81 -0
  95. package/src/runtime/embedding-warmup-policy.d.ts +14 -0
  96. package/src/runtime/embedding-warmup-policy.d.ts.map +1 -0
  97. package/src/runtime/embedding-warmup-policy.test.ts +53 -0
  98. package/src/runtime/embedding-warmup-policy.ts +48 -0
  99. package/src/runtime/ensure-local-inference-handler.d.ts +62 -0
  100. package/src/runtime/ensure-local-inference-handler.d.ts.map +1 -0
  101. package/src/runtime/ensure-local-inference-handler.test.ts +528 -0
  102. package/src/runtime/ensure-local-inference-handler.ts +1448 -0
  103. package/src/runtime/index.d.ts +15 -0
  104. package/src/runtime/index.d.ts.map +1 -0
  105. package/src/runtime/index.ts +33 -0
  106. package/src/runtime/mobile-local-inference-gate.d.ts +31 -0
  107. package/src/runtime/mobile-local-inference-gate.d.ts.map +1 -0
  108. package/src/runtime/mobile-local-inference-gate.test.ts +69 -0
  109. package/src/runtime/mobile-local-inference-gate.ts +44 -0
  110. package/src/runtime/voice-entity-binding.d.ts +103 -0
  111. package/src/runtime/voice-entity-binding.d.ts.map +1 -0
  112. package/src/runtime/voice-entity-binding.transcript.test.ts +69 -0
  113. package/src/runtime/voice-entity-binding.ts +328 -0
  114. package/src/services/README.md +71 -0
  115. package/src/services/__tests__/backend-selector.test.ts +101 -0
  116. package/src/services/__tests__/checkpoint-manager.test.ts +376 -0
  117. package/src/services/__tests__/gpu-autotune.test.ts +400 -0
  118. package/src/services/__tests__/llm-streaming-binding.test.ts +85 -0
  119. package/src/services/__tests__/planner-grammar.test.ts +372 -0
  120. package/src/services/__tests__/runtime-target.test.ts +176 -0
  121. package/src/services/active-model-switch-rollback.test.ts +183 -0
  122. package/src/services/active-model.d.ts +282 -0
  123. package/src/services/active-model.d.ts.map +1 -0
  124. package/src/services/active-model.ts +1213 -0
  125. package/src/services/assignments.d.ts +71 -0
  126. package/src/services/assignments.d.ts.map +1 -0
  127. package/src/services/assignments.test.ts +80 -0
  128. package/src/services/assignments.ts +230 -0
  129. package/src/services/backend-selector.ts +95 -0
  130. package/src/services/backend.d.ts +346 -0
  131. package/src/services/backend.d.ts.map +1 -0
  132. package/src/services/backend.ts +612 -0
  133. package/src/services/bionic-host-loader.d.ts +46 -0
  134. package/src/services/bionic-host-loader.d.ts.map +1 -0
  135. package/src/services/bionic-host-loader.test.ts +133 -0
  136. package/src/services/bionic-host-loader.ts +180 -0
  137. package/src/services/bundled-models.d.ts +34 -0
  138. package/src/services/bundled-models.d.ts.map +1 -0
  139. package/src/services/bundled-models.ts +129 -0
  140. package/src/services/cache-bridge.d.ts +206 -0
  141. package/src/services/cache-bridge.d.ts.map +1 -0
  142. package/src/services/cache-bridge.test.ts +516 -0
  143. package/src/services/cache-bridge.ts +423 -0
  144. package/src/services/catalog.d.ts +10 -0
  145. package/src/services/catalog.d.ts.map +1 -0
  146. package/src/services/catalog.test.ts +238 -0
  147. package/src/services/catalog.ts +27 -0
  148. package/src/services/checkpoint-client.d.ts +109 -0
  149. package/src/services/checkpoint-client.d.ts.map +1 -0
  150. package/src/services/checkpoint-client.ts +258 -0
  151. package/src/services/checkpoint-manager.ts +474 -0
  152. package/src/services/cloud-fallback.d.ts +102 -0
  153. package/src/services/cloud-fallback.d.ts.map +1 -0
  154. package/src/services/cloud-fallback.ts +230 -0
  155. package/src/services/conversation-registry.d.ts +142 -0
  156. package/src/services/conversation-registry.d.ts.map +1 -0
  157. package/src/services/conversation-registry.test.ts +235 -0
  158. package/src/services/conversation-registry.ts +264 -0
  159. package/src/services/desktop-fused-ffi-backend-runtime.d.ts +95 -0
  160. package/src/services/desktop-fused-ffi-backend-runtime.d.ts.map +1 -0
  161. package/src/services/desktop-fused-ffi-backend-runtime.ts +339 -0
  162. package/src/services/device-bridge.d.ts +188 -0
  163. package/src/services/device-bridge.d.ts.map +1 -0
  164. package/src/services/device-bridge.ts +1237 -0
  165. package/src/services/device-resource-metrics.d.ts +149 -0
  166. package/src/services/device-resource-metrics.d.ts.map +1 -0
  167. package/src/services/device-resource-metrics.test.ts +98 -0
  168. package/src/services/device-resource-metrics.ts +346 -0
  169. package/src/services/device-tier.d.ts +115 -0
  170. package/src/services/device-tier.d.ts.map +1 -0
  171. package/src/services/device-tier.test.ts +371 -0
  172. package/src/services/device-tier.ts +410 -0
  173. package/src/services/downloader.d.ts +82 -0
  174. package/src/services/downloader.d.ts.map +1 -0
  175. package/src/services/downloader.test.ts +747 -0
  176. package/src/services/downloader.ts +925 -0
  177. package/src/services/engine-direct-bundle.test.ts +58 -0
  178. package/src/services/engine-streaming.test.ts +80 -0
  179. package/src/services/engine.d.ts +540 -0
  180. package/src/services/engine.d.ts.map +1 -0
  181. package/src/services/engine.ts +1909 -0
  182. package/src/services/ensure-local-artifacts.integration.test.ts +273 -0
  183. package/src/services/ensure-local-artifacts.test.ts +368 -0
  184. package/src/services/ensure-local-artifacts.ts +351 -0
  185. package/src/services/external-scanner.d.ts +17 -0
  186. package/src/services/external-scanner.d.ts.map +1 -0
  187. package/src/services/external-scanner.ts +312 -0
  188. package/src/services/ffi-llm-mock.ts +354 -0
  189. package/src/services/ffi-llm-streaming-abi.ts +442 -0
  190. package/src/services/ffi-streaming-backend.d.ts +180 -0
  191. package/src/services/ffi-streaming-backend.d.ts.map +1 -0
  192. package/src/services/ffi-streaming-backend.ts +382 -0
  193. package/src/services/ffi-streaming-runner.d.ts +122 -0
  194. package/src/services/ffi-streaming-runner.d.ts.map +1 -0
  195. package/src/services/ffi-streaming-runner.test.ts +60 -0
  196. package/src/services/ffi-streaming-runner.ts +354 -0
  197. package/src/services/ffi-unload-ordering.test.ts +162 -0
  198. package/src/services/gpu-autotune.ts +534 -0
  199. package/src/services/gpu-detect.d.ts +56 -0
  200. package/src/services/gpu-detect.d.ts.map +1 -0
  201. package/src/services/gpu-detect.ts +139 -0
  202. package/src/services/handler-registry.d.ts +72 -0
  203. package/src/services/handler-registry.d.ts.map +1 -0
  204. package/src/services/handler-registry.ts +240 -0
  205. package/src/services/hardware.d.ts +63 -0
  206. package/src/services/hardware.d.ts.map +1 -0
  207. package/src/services/hardware.test.ts +231 -0
  208. package/src/services/hardware.ts +410 -0
  209. package/src/services/hf-search.d.ts +26 -0
  210. package/src/services/hf-search.d.ts.map +1 -0
  211. package/src/services/hf-search.test.ts +69 -0
  212. package/src/services/hf-search.ts +420 -0
  213. package/src/services/image-description-runtime.d.ts +14 -0
  214. package/src/services/image-description-runtime.d.ts.map +1 -0
  215. package/src/services/image-description-runtime.test.ts +61 -0
  216. package/src/services/image-description-runtime.ts +118 -0
  217. package/src/services/imagegen/aosp-unavailable.d.ts +134 -0
  218. package/src/services/imagegen/aosp-unavailable.d.ts.map +1 -0
  219. package/src/services/imagegen/aosp-unavailable.ts +229 -0
  220. package/src/services/imagegen/backend-selector.d.ts +118 -0
  221. package/src/services/imagegen/backend-selector.d.ts.map +1 -0
  222. package/src/services/imagegen/backend-selector.ts +277 -0
  223. package/src/services/imagegen/coreml-unavailable.d.ts +105 -0
  224. package/src/services/imagegen/coreml-unavailable.d.ts.map +1 -0
  225. package/src/services/imagegen/coreml-unavailable.ts +237 -0
  226. package/src/services/imagegen/errors.d.ts +16 -0
  227. package/src/services/imagegen/errors.d.ts.map +1 -0
  228. package/src/services/imagegen/errors.ts +40 -0
  229. package/src/services/imagegen/index.d.ts +58 -0
  230. package/src/services/imagegen/index.d.ts.map +1 -0
  231. package/src/services/imagegen/index.ts +144 -0
  232. package/src/services/imagegen/mflux.d.ts +74 -0
  233. package/src/services/imagegen/mflux.d.ts.map +1 -0
  234. package/src/services/imagegen/mflux.ts +313 -0
  235. package/src/services/imagegen/sd-cpp.d.ts +180 -0
  236. package/src/services/imagegen/sd-cpp.d.ts.map +1 -0
  237. package/src/services/imagegen/sd-cpp.ts +718 -0
  238. package/src/services/imagegen/tensorrt-unavailable.d.ts +83 -0
  239. package/src/services/imagegen/tensorrt-unavailable.d.ts.map +1 -0
  240. package/src/services/imagegen/tensorrt-unavailable.ts +295 -0
  241. package/src/services/imagegen/types.d.ts +181 -0
  242. package/src/services/imagegen/types.d.ts.map +1 -0
  243. package/src/services/imagegen/types.ts +193 -0
  244. package/src/services/index.d.ts +29 -0
  245. package/src/services/index.d.ts.map +1 -0
  246. package/src/services/index.ts +211 -0
  247. package/src/services/inference-capabilities.d.ts +132 -0
  248. package/src/services/inference-capabilities.d.ts.map +1 -0
  249. package/src/services/inference-capabilities.test.ts +75 -0
  250. package/src/services/inference-capabilities.ts +204 -0
  251. package/src/services/inference-telemetry.d.ts +59 -0
  252. package/src/services/inference-telemetry.d.ts.map +1 -0
  253. package/src/services/inference-telemetry.ts +143 -0
  254. package/src/services/ios-llama-streaming.ts +248 -0
  255. package/src/services/kv-spill.d.ts +189 -0
  256. package/src/services/kv-spill.d.ts.map +1 -0
  257. package/src/services/kv-spill.test.ts +222 -0
  258. package/src/services/kv-spill.ts +356 -0
  259. package/src/services/latency-trace.d.ts +346 -0
  260. package/src/services/latency-trace.d.ts.map +1 -0
  261. package/src/services/latency-trace.test.ts +266 -0
  262. package/src/services/latency-trace.ts +844 -0
  263. package/src/services/llama-server-metrics.ts +304 -0
  264. package/src/services/llm-streaming-binding.d.ts +96 -0
  265. package/src/services/llm-streaming-binding.d.ts.map +1 -0
  266. package/src/services/llm-streaming-binding.ts +136 -0
  267. package/src/services/load-args.d.ts +82 -0
  268. package/src/services/load-args.d.ts.map +1 -0
  269. package/src/services/load-args.ts +81 -0
  270. package/src/services/manifest/eliza-1.manifest.v1.json +708 -0
  271. package/src/services/manifest/index.d.ts +4 -0
  272. package/src/services/manifest/index.d.ts.map +1 -0
  273. package/src/services/manifest/index.ts +66 -0
  274. package/src/services/manifest/manifest.test.ts +689 -0
  275. package/src/services/manifest/schema.d.ts +713 -0
  276. package/src/services/manifest/schema.d.ts.map +1 -0
  277. package/src/services/manifest/schema.ts +653 -0
  278. package/src/services/manifest/types.d.ts +30 -0
  279. package/src/services/manifest/types.d.ts.map +1 -0
  280. package/src/services/manifest/types.ts +55 -0
  281. package/src/services/manifest/validator.d.ts +66 -0
  282. package/src/services/manifest/validator.d.ts.map +1 -0
  283. package/src/services/manifest/validator.ts +567 -0
  284. package/src/services/memory-arbiter.d.ts +318 -0
  285. package/src/services/memory-arbiter.d.ts.map +1 -0
  286. package/src/services/memory-arbiter.test.ts +419 -0
  287. package/src/services/memory-arbiter.ts +925 -0
  288. package/src/services/memory-monitor.d.ts +122 -0
  289. package/src/services/memory-monitor.d.ts.map +1 -0
  290. package/src/services/memory-monitor.test.ts +208 -0
  291. package/src/services/memory-monitor.ts +297 -0
  292. package/src/services/memory-pressure.d.ts +130 -0
  293. package/src/services/memory-pressure.d.ts.map +1 -0
  294. package/src/services/memory-pressure.ts +414 -0
  295. package/src/services/mtp-doctor.d.ts +13 -0
  296. package/src/services/mtp-doctor.d.ts.map +1 -0
  297. package/src/services/mtp-doctor.ts +78 -0
  298. package/src/services/network-policy.d.ts +127 -0
  299. package/src/services/network-policy.d.ts.map +1 -0
  300. package/src/services/network-policy.ts +346 -0
  301. package/src/services/paths.d.ts +6 -0
  302. package/src/services/paths.d.ts.map +1 -0
  303. package/src/services/paths.ts +25 -0
  304. package/src/services/planner-skeleton.d.ts +124 -0
  305. package/src/services/planner-skeleton.d.ts.map +1 -0
  306. package/src/services/planner-skeleton.ts +175 -0
  307. package/src/services/providers.d.ts +38 -0
  308. package/src/services/providers.d.ts.map +1 -0
  309. package/src/services/providers.ts +507 -0
  310. package/src/services/ram-budget-cache.test.ts +163 -0
  311. package/src/services/ram-budget.d.ts +110 -0
  312. package/src/services/ram-budget.d.ts.map +1 -0
  313. package/src/services/ram-budget.ts +0 -0
  314. package/src/services/readiness.d.ts +9 -0
  315. package/src/services/readiness.d.ts.map +1 -0
  316. package/src/services/readiness.test.ts +87 -0
  317. package/src/services/readiness.ts +238 -0
  318. package/src/services/recommendation.d.ts +111 -0
  319. package/src/services/recommendation.d.ts.map +1 -0
  320. package/src/services/recommendation.ts +671 -0
  321. package/src/services/registry.d.ts +35 -0
  322. package/src/services/registry.d.ts.map +1 -0
  323. package/src/services/registry.ts +151 -0
  324. package/src/services/router-handler.d.ts +92 -0
  325. package/src/services/router-handler.d.ts.map +1 -0
  326. package/src/services/router-handler.test.ts +45 -0
  327. package/src/services/router-handler.ts +407 -0
  328. package/src/services/routing-policy.d.ts +69 -0
  329. package/src/services/routing-policy.d.ts.map +1 -0
  330. package/src/services/routing-policy.test.ts +164 -0
  331. package/src/services/routing-policy.ts +297 -0
  332. package/src/services/routing-preferences.d.ts +8 -0
  333. package/src/services/routing-preferences.d.ts.map +1 -0
  334. package/src/services/routing-preferences.ts +17 -0
  335. package/src/services/runtime-target.d.ts +98 -0
  336. package/src/services/runtime-target.d.ts.map +1 -0
  337. package/src/services/runtime-target.ts +154 -0
  338. package/src/services/service.d.ts +128 -0
  339. package/src/services/service.d.ts.map +1 -0
  340. package/src/services/service.test.ts +223 -0
  341. package/src/services/service.ts +735 -0
  342. package/src/services/session-pool.d.ts +72 -0
  343. package/src/services/session-pool.d.ts.map +1 -0
  344. package/src/services/session-pool.ts +153 -0
  345. package/src/services/structured-output/deterministic-repair.d.ts +23 -0
  346. package/src/services/structured-output/deterministic-repair.d.ts.map +1 -0
  347. package/src/services/structured-output/deterministic-repair.test.ts +169 -0
  348. package/src/services/structured-output/deterministic-repair.ts +443 -0
  349. package/src/services/structured-output/index.ts +4 -0
  350. package/src/services/structured-output.d.ts +311 -0
  351. package/src/services/structured-output.d.ts.map +1 -0
  352. package/src/services/structured-output.test.ts +483 -0
  353. package/src/services/structured-output.ts +712 -0
  354. package/src/services/system-memory.d.ts +33 -0
  355. package/src/services/system-memory.d.ts.map +1 -0
  356. package/src/services/system-memory.test.ts +47 -0
  357. package/src/services/system-memory.ts +67 -0
  358. package/src/services/transcription-priority.test.ts +211 -0
  359. package/src/services/types.d.ts +19 -0
  360. package/src/services/types.d.ts.map +1 -0
  361. package/src/services/types.ts +55 -0
  362. package/src/services/verify-on-device.d.ts +34 -0
  363. package/src/services/verify-on-device.d.ts.map +1 -0
  364. package/src/services/verify-on-device.test.ts +87 -0
  365. package/src/services/verify-on-device.ts +127 -0
  366. package/src/services/verify.d.ts +8 -0
  367. package/src/services/verify.d.ts.map +1 -0
  368. package/src/services/verify.ts +13 -0
  369. package/src/services/vision/aosp-unavailable.d.ts +115 -0
  370. package/src/services/vision/aosp-unavailable.d.ts.map +1 -0
  371. package/src/services/vision/aosp-unavailable.ts +163 -0
  372. package/src/services/vision/capacitor-llama.d.ts +99 -0
  373. package/src/services/vision/capacitor-llama.d.ts.map +1 -0
  374. package/src/services/vision/capacitor-llama.ts +255 -0
  375. package/src/services/vision/cloud-fallback.d.ts +47 -0
  376. package/src/services/vision/cloud-fallback.d.ts.map +1 -0
  377. package/src/services/vision/cloud-fallback.test.ts +243 -0
  378. package/src/services/vision/cloud-fallback.ts +268 -0
  379. package/src/services/vision/fallback-chain.test.ts +86 -0
  380. package/src/services/vision/hash.d.ts +71 -0
  381. package/src/services/vision/hash.d.ts.map +1 -0
  382. package/src/services/vision/hash.ts +157 -0
  383. package/src/services/vision/index.d.ts +95 -0
  384. package/src/services/vision/index.d.ts.map +1 -0
  385. package/src/services/vision/index.ts +251 -0
  386. package/src/services/vision/llama-server.d.ts +73 -0
  387. package/src/services/vision/llama-server.d.ts.map +1 -0
  388. package/src/services/vision/llama-server.ts +177 -0
  389. package/src/services/vision/types.d.ts +153 -0
  390. package/src/services/vision/types.d.ts.map +1 -0
  391. package/src/services/vision/types.ts +154 -0
  392. package/src/services/vision/vast-fallback.d.ts +18 -0
  393. package/src/services/vision/vast-fallback.d.ts.map +1 -0
  394. package/src/services/vision/vast-fallback.ts +127 -0
  395. package/src/services/vision-embedding-cache.d.ts +98 -0
  396. package/src/services/vision-embedding-cache.d.ts.map +1 -0
  397. package/src/services/vision-embedding-cache.ts +189 -0
  398. package/src/services/voice/VOICE_WORKBENCH.md +88 -0
  399. package/src/services/voice/__test-helpers__/fake-ffi.ts +94 -0
  400. package/src/services/voice/__test-helpers__/synthetic-speech.ts +124 -0
  401. package/src/services/voice/__tests__/checkpoint-manager.test.ts +241 -0
  402. package/src/services/voice/__tests__/checkpoint-policy.test.ts +270 -0
  403. package/src/services/voice/__tests__/eager-context-builder.test.ts +257 -0
  404. package/src/services/voice/__tests__/eliza1-eot-scorer.test.ts +288 -0
  405. package/src/services/voice/__tests__/eot-classifier.test.ts +431 -0
  406. package/src/services/voice/__tests__/optimistic-rollback.test.ts +312 -0
  407. package/src/services/voice/__tests__/prefill-client.test.ts +266 -0
  408. package/src/services/voice/__tests__/prefix-preserving-queue.test.ts +208 -0
  409. package/src/services/voice/__tests__/streaming-asr.test.ts +450 -0
  410. package/src/services/voice/__tests__/streaming-transcriber.test.ts +339 -0
  411. package/src/services/voice/__tests__/turn-detector-resolver.test.ts +195 -0
  412. package/src/services/voice/__tests__/voice-state-machine-prefill.test.ts +275 -0
  413. package/src/services/voice/__tests__/voice-state-machine.test.ts +354 -0
  414. package/src/services/voice/asr-timed.real.test.ts +141 -0
  415. package/src/services/voice/audio-frame-consumer.d.ts +212 -0
  416. package/src/services/voice/audio-frame-consumer.d.ts.map +1 -0
  417. package/src/services/voice/audio-frame-consumer.test.ts +343 -0
  418. package/src/services/voice/audio-frame-consumer.ts +491 -0
  419. package/src/services/voice/barge-in.d.ts +112 -0
  420. package/src/services/voice/barge-in.d.ts.map +1 -0
  421. package/src/services/voice/barge-in.test.ts +244 -0
  422. package/src/services/voice/barge-in.ts +336 -0
  423. package/src/services/voice/cancellation-coordinator.d.ts +127 -0
  424. package/src/services/voice/cancellation-coordinator.d.ts.map +1 -0
  425. package/src/services/voice/cancellation-coordinator.test.ts +196 -0
  426. package/src/services/voice/cancellation-coordinator.ts +269 -0
  427. package/src/services/voice/checkpoint-manager.d.ts +199 -0
  428. package/src/services/voice/checkpoint-manager.d.ts.map +1 -0
  429. package/src/services/voice/checkpoint-manager.ts +401 -0
  430. package/src/services/voice/checkpoint-policy.ts +336 -0
  431. package/src/services/voice/composite-eot-classifier.test.ts +59 -0
  432. package/src/services/voice/e2e-harness.test.ts +182 -0
  433. package/src/services/voice/e2e-harness.ts +743 -0
  434. package/src/services/voice/eager-context-builder.d.ts +170 -0
  435. package/src/services/voice/eager-context-builder.d.ts.map +1 -0
  436. package/src/services/voice/eager-context-builder.ts +262 -0
  437. package/src/services/voice/eliza1-eot-scorer.d.ts +124 -0
  438. package/src/services/voice/eliza1-eot-scorer.d.ts.map +1 -0
  439. package/src/services/voice/eliza1-eot-scorer.ts +242 -0
  440. package/src/services/voice/embedding-server.ts +200 -0
  441. package/src/services/voice/embedding.d.ts +133 -0
  442. package/src/services/voice/embedding.d.ts.map +1 -0
  443. package/src/services/voice/embedding.test.ts +131 -0
  444. package/src/services/voice/embedding.ts +243 -0
  445. package/src/services/voice/emotion-attribution.d.ts +68 -0
  446. package/src/services/voice/emotion-attribution.d.ts.map +1 -0
  447. package/src/services/voice/emotion-attribution.test.ts +129 -0
  448. package/src/services/voice/emotion-attribution.ts +361 -0
  449. package/src/services/voice/engine-bridge-cancellation.test.ts +422 -0
  450. package/src/services/voice/engine-bridge.d.ts +759 -0
  451. package/src/services/voice/engine-bridge.d.ts.map +1 -0
  452. package/src/services/voice/engine-bridge.test.ts +384 -0
  453. package/src/services/voice/engine-bridge.ts +2302 -0
  454. package/src/services/voice/eot-classifier-ggml.d.ts +179 -0
  455. package/src/services/voice/eot-classifier-ggml.d.ts.map +1 -0
  456. package/src/services/voice/eot-classifier-ggml.ts +566 -0
  457. package/src/services/voice/eot-classifier.d.ts +214 -0
  458. package/src/services/voice/eot-classifier.d.ts.map +1 -0
  459. package/src/services/voice/eot-classifier.ts +533 -0
  460. package/src/services/voice/errors.d.ts +20 -0
  461. package/src/services/voice/errors.d.ts.map +1 -0
  462. package/src/services/voice/errors.ts +32 -0
  463. package/src/services/voice/expressive-tags.d.ts +158 -0
  464. package/src/services/voice/expressive-tags.d.ts.map +1 -0
  465. package/src/services/voice/expressive-tags.ts +405 -0
  466. package/src/services/voice/ffi-bindings.d.ts +674 -0
  467. package/src/services/voice/ffi-bindings.d.ts.map +1 -0
  468. package/src/services/voice/ffi-bindings.test.ts +728 -0
  469. package/src/services/voice/ffi-bindings.ts +3225 -0
  470. package/src/services/voice/first-line-cache.d.ts +181 -0
  471. package/src/services/voice/first-line-cache.d.ts.map +1 -0
  472. package/src/services/voice/first-line-cache.ts +725 -0
  473. package/src/services/voice/fused-eot-scorer.d.ts +51 -0
  474. package/src/services/voice/fused-eot-scorer.d.ts.map +1 -0
  475. package/src/services/voice/fused-eot-scorer.ts +135 -0
  476. package/src/services/voice/index.d.ts +91 -0
  477. package/src/services/voice/index.d.ts.map +1 -0
  478. package/src/services/voice/index.ts +481 -0
  479. package/src/services/voice/kokoro/__tests__/kokoro-backend.test.ts +151 -0
  480. package/src/services/voice/kokoro/__tests__/kokoro-engine-bridge.real.test.ts +151 -0
  481. package/src/services/voice/kokoro/__tests__/kokoro-engine-bridge.test.ts +60 -0
  482. package/src/services/voice/kokoro/__tests__/kokoro-engine-discovery.test.ts +277 -0
  483. package/src/services/voice/kokoro/__tests__/kokoro-ffi-runtime.test.ts +235 -0
  484. package/src/services/voice/kokoro/__tests__/kokoro-runtime.test.ts +95 -0
  485. package/src/services/voice/kokoro/__tests__/phonemizer.test.ts +53 -0
  486. package/src/services/voice/kokoro/__tests__/runtime-selection.test.ts +231 -0
  487. package/src/services/voice/kokoro/__tests__/voices.test.ts +57 -0
  488. package/src/services/voice/kokoro/index.ts +79 -0
  489. package/src/services/voice/kokoro/kokoro-backend.d.ts +72 -0
  490. package/src/services/voice/kokoro/kokoro-backend.d.ts.map +1 -0
  491. package/src/services/voice/kokoro/kokoro-backend.ts +207 -0
  492. package/src/services/voice/kokoro/kokoro-engine-discovery.d.ts +58 -0
  493. package/src/services/voice/kokoro/kokoro-engine-discovery.d.ts.map +1 -0
  494. package/src/services/voice/kokoro/kokoro-engine-discovery.ts +177 -0
  495. package/src/services/voice/kokoro/kokoro-ffi-runtime.d.ts +75 -0
  496. package/src/services/voice/kokoro/kokoro-ffi-runtime.d.ts.map +1 -0
  497. package/src/services/voice/kokoro/kokoro-ffi-runtime.ts +233 -0
  498. package/src/services/voice/kokoro/kokoro-runtime.d.ts +100 -0
  499. package/src/services/voice/kokoro/kokoro-runtime.d.ts.map +1 -0
  500. package/src/services/voice/kokoro/kokoro-runtime.ts +170 -0
  501. package/src/services/voice/kokoro/phoneme-stream.ts +123 -0
  502. package/src/services/voice/kokoro/phonemizer.d.ts +50 -0
  503. package/src/services/voice/kokoro/phonemizer.d.ts.map +1 -0
  504. package/src/services/voice/kokoro/phonemizer.ts +344 -0
  505. package/src/services/voice/kokoro/pick-runtime.d.ts +61 -0
  506. package/src/services/voice/kokoro/pick-runtime.d.ts.map +1 -0
  507. package/src/services/voice/kokoro/pick-runtime.test.ts +91 -0
  508. package/src/services/voice/kokoro/pick-runtime.ts +130 -0
  509. package/src/services/voice/kokoro/runtime-selection.d.ts +92 -0
  510. package/src/services/voice/kokoro/runtime-selection.d.ts.map +1 -0
  511. package/src/services/voice/kokoro/runtime-selection.ts +237 -0
  512. package/src/services/voice/kokoro/types.d.ts +82 -0
  513. package/src/services/voice/kokoro/types.d.ts.map +1 -0
  514. package/src/services/voice/kokoro/types.ts +95 -0
  515. package/src/services/voice/kokoro/voice-presets.d.ts +23 -0
  516. package/src/services/voice/kokoro/voice-presets.d.ts.map +1 -0
  517. package/src/services/voice/kokoro/voice-presets.ts +129 -0
  518. package/src/services/voice/kokoro/voices.d.ts +30 -0
  519. package/src/services/voice/kokoro/voices.d.ts.map +1 -0
  520. package/src/services/voice/kokoro/voices.ts +64 -0
  521. package/src/services/voice/lifecycle.d.ts +135 -0
  522. package/src/services/voice/lifecycle.d.ts.map +1 -0
  523. package/src/services/voice/lifecycle.test.ts +315 -0
  524. package/src/services/voice/lifecycle.ts +301 -0
  525. package/src/services/voice/live-diarization-session.d.ts +96 -0
  526. package/src/services/voice/live-diarization-session.d.ts.map +1 -0
  527. package/src/services/voice/live-diarization-session.ts +289 -0
  528. package/src/services/voice/mic-source.d.ts +136 -0
  529. package/src/services/voice/mic-source.d.ts.map +1 -0
  530. package/src/services/voice/mic-source.test.ts +210 -0
  531. package/src/services/voice/mic-source.ts +503 -0
  532. package/src/services/voice/optimistic-policy.d.ts +109 -0
  533. package/src/services/voice/optimistic-policy.d.ts.map +1 -0
  534. package/src/services/voice/optimistic-policy.test.ts +101 -0
  535. package/src/services/voice/optimistic-policy.ts +192 -0
  536. package/src/services/voice/optimistic-rollback.ts +343 -0
  537. package/src/services/voice/partial-stabilizer.d.ts +73 -0
  538. package/src/services/voice/partial-stabilizer.d.ts.map +1 -0
  539. package/src/services/voice/partial-stabilizer.test.ts +68 -0
  540. package/src/services/voice/partial-stabilizer.ts +140 -0
  541. package/src/services/voice/phoneme-tokenizer.d.ts +49 -0
  542. package/src/services/voice/phoneme-tokenizer.d.ts.map +1 -0
  543. package/src/services/voice/phoneme-tokenizer.ts +158 -0
  544. package/src/services/voice/phrase-cache.d.ts +76 -0
  545. package/src/services/voice/phrase-cache.d.ts.map +1 -0
  546. package/src/services/voice/phrase-cache.test.ts +242 -0
  547. package/src/services/voice/phrase-cache.ts +186 -0
  548. package/src/services/voice/phrase-chunker.d.ts +62 -0
  549. package/src/services/voice/phrase-chunker.d.ts.map +1 -0
  550. package/src/services/voice/phrase-chunker.test.ts +239 -0
  551. package/src/services/voice/phrase-chunker.ts +281 -0
  552. package/src/services/voice/pipeline-impls.d.ts +151 -0
  553. package/src/services/voice/pipeline-impls.d.ts.map +1 -0
  554. package/src/services/voice/pipeline-impls.l6.test.ts +110 -0
  555. package/src/services/voice/pipeline-impls.test.ts +292 -0
  556. package/src/services/voice/pipeline-impls.ts +315 -0
  557. package/src/services/voice/pipeline.d.ts +216 -0
  558. package/src/services/voice/pipeline.d.ts.map +1 -0
  559. package/src/services/voice/pipeline.ts +505 -0
  560. package/src/services/voice/prefill-client.d.ts +123 -0
  561. package/src/services/voice/prefill-client.d.ts.map +1 -0
  562. package/src/services/voice/prefill-client.ts +316 -0
  563. package/src/services/voice/prefix-preserving-queue.d.ts +113 -0
  564. package/src/services/voice/prefix-preserving-queue.d.ts.map +1 -0
  565. package/src/services/voice/prefix-preserving-queue.ts +162 -0
  566. package/src/services/voice/profile-store.d.ts +248 -0
  567. package/src/services/voice/profile-store.d.ts.map +1 -0
  568. package/src/services/voice/profile-store.ts +887 -0
  569. package/src/services/voice/real-audio-decode.test.ts +148 -0
  570. package/src/services/voice/ring-buffer.d.ts +40 -0
  571. package/src/services/voice/ring-buffer.d.ts.map +1 -0
  572. package/src/services/voice/ring-buffer.test.ts +129 -0
  573. package/src/services/voice/ring-buffer.ts +123 -0
  574. package/src/services/voice/rollback-queue.d.ts +24 -0
  575. package/src/services/voice/rollback-queue.d.ts.map +1 -0
  576. package/src/services/voice/rollback-queue.ts +74 -0
  577. package/src/services/voice/samantha-preset-placeholder.d.ts +67 -0
  578. package/src/services/voice/samantha-preset-placeholder.d.ts.map +1 -0
  579. package/src/services/voice/samantha-preset-placeholder.test.ts +97 -0
  580. package/src/services/voice/samantha-preset-placeholder.ts +148 -0
  581. package/src/services/voice/samantha-preset-regenerator.d.ts +87 -0
  582. package/src/services/voice/samantha-preset-regenerator.d.ts.map +1 -0
  583. package/src/services/voice/samantha-preset-regenerator.ts +393 -0
  584. package/src/services/voice/scheduler.d.ts +146 -0
  585. package/src/services/voice/scheduler.d.ts.map +1 -0
  586. package/src/services/voice/scheduler.t2.test.ts +141 -0
  587. package/src/services/voice/scheduler.ts +927 -0
  588. package/src/services/voice/shared-resources.d.ts +190 -0
  589. package/src/services/voice/shared-resources.d.ts.map +1 -0
  590. package/src/services/voice/shared-resources.ts +320 -0
  591. package/src/services/voice/speaker/attribution-pipeline.d.ts +74 -0
  592. package/src/services/voice/speaker/attribution-pipeline.d.ts.map +1 -0
  593. package/src/services/voice/speaker/attribution-pipeline.ts +386 -0
  594. package/src/services/voice/speaker/diarizer-fused.d.ts +59 -0
  595. package/src/services/voice/speaker/diarizer-fused.d.ts.map +1 -0
  596. package/src/services/voice/speaker/diarizer-fused.real.test.ts +100 -0
  597. package/src/services/voice/speaker/diarizer-fused.ts +154 -0
  598. package/src/services/voice/speaker/diarizer.d.ts +75 -0
  599. package/src/services/voice/speaker/diarizer.d.ts.map +1 -0
  600. package/src/services/voice/speaker/diarizer.ts +218 -0
  601. package/src/services/voice/speaker/encoder-fused.d.ts +60 -0
  602. package/src/services/voice/speaker/encoder-fused.d.ts.map +1 -0
  603. package/src/services/voice/speaker/encoder-fused.real.test.ts +113 -0
  604. package/src/services/voice/speaker/encoder-fused.ts +138 -0
  605. package/src/services/voice/speaker/encoder-ggml.d.ts +33 -0
  606. package/src/services/voice/speaker/encoder-ggml.d.ts.map +1 -0
  607. package/src/services/voice/speaker/encoder-ggml.ts +79 -0
  608. package/src/services/voice/speaker/encoder.d.ts +37 -0
  609. package/src/services/voice/speaker/encoder.d.ts.map +1 -0
  610. package/src/services/voice/speaker/encoder.ts +105 -0
  611. package/src/services/voice/speaker-imprint.d.ts +83 -0
  612. package/src/services/voice/speaker-imprint.d.ts.map +1 -0
  613. package/src/services/voice/speaker-imprint.test.ts +185 -0
  614. package/src/services/voice/speaker-imprint.ts +312 -0
  615. package/src/services/voice/speaker-preset-cache.d.ts +77 -0
  616. package/src/services/voice/speaker-preset-cache.d.ts.map +1 -0
  617. package/src/services/voice/speaker-preset-cache.test.ts +154 -0
  618. package/src/services/voice/speaker-preset-cache.ts +195 -0
  619. package/src/services/voice/streaming-asr/streaming-pipeline-adapter.ts +292 -0
  620. package/src/services/voice/system-audio-sink.d.ts +73 -0
  621. package/src/services/voice/system-audio-sink.d.ts.map +1 -0
  622. package/src/services/voice/system-audio-sink.test.ts +29 -0
  623. package/src/services/voice/system-audio-sink.ts +366 -0
  624. package/src/services/voice/transcriber.d.ts +244 -0
  625. package/src/services/voice/transcriber.d.ts.map +1 -0
  626. package/src/services/voice/transcriber.test.ts +392 -0
  627. package/src/services/voice/transcriber.ts +704 -0
  628. package/src/services/voice/transcript-knowledge.d.ts +37 -0
  629. package/src/services/voice/transcript-knowledge.d.ts.map +1 -0
  630. package/src/services/voice/transcript-knowledge.test.ts +68 -0
  631. package/src/services/voice/transcript-knowledge.ts +75 -0
  632. package/src/services/voice/transcript-service.d.ts +41 -0
  633. package/src/services/voice/transcript-service.d.ts.map +1 -0
  634. package/src/services/voice/transcript-service.test.ts +137 -0
  635. package/src/services/voice/transcript-service.ts +141 -0
  636. package/src/services/voice/transcript-store.d.ts +53 -0
  637. package/src/services/voice/transcript-store.d.ts.map +1 -0
  638. package/src/services/voice/transcript-store.test.ts +153 -0
  639. package/src/services/voice/transcript-store.ts +132 -0
  640. package/src/services/voice/turn-controller.d.ts +183 -0
  641. package/src/services/voice/turn-controller.d.ts.map +1 -0
  642. package/src/services/voice/turn-controller.test.ts +575 -0
  643. package/src/services/voice/turn-controller.ts +596 -0
  644. package/src/services/voice/types.d.ts +643 -0
  645. package/src/services/voice/types.d.ts.map +1 -0
  646. package/src/services/voice/types.ts +699 -0
  647. package/src/services/voice/vad.d.ts +282 -0
  648. package/src/services/voice/vad.d.ts.map +1 -0
  649. package/src/services/voice/vad.test.ts +480 -0
  650. package/src/services/voice/vad.ts +827 -0
  651. package/src/services/voice/vad.v1-v4.test.ts +222 -0
  652. package/src/services/voice/voice-budget.d.ts +241 -0
  653. package/src/services/voice/voice-budget.d.ts.map +1 -0
  654. package/src/services/voice/voice-budget.test.ts +418 -0
  655. package/src/services/voice/voice-budget.ts +635 -0
  656. package/src/services/voice/voice-duet.test.ts +375 -0
  657. package/src/services/voice/voice-emotion-classifier.d.ts +95 -0
  658. package/src/services/voice/voice-emotion-classifier.d.ts.map +1 -0
  659. package/src/services/voice/voice-emotion-classifier.test.ts +210 -0
  660. package/src/services/voice/voice-emotion-classifier.ts +273 -0
  661. package/src/services/voice/voice-preset-format.d.ts +158 -0
  662. package/src/services/voice/voice-preset-format.d.ts.map +1 -0
  663. package/src/services/voice/voice-preset-format.ts +700 -0
  664. package/src/services/voice/voice-preset-generator.test.ts +89 -0
  665. package/src/services/voice/voice-profile-artifact.d.ts +116 -0
  666. package/src/services/voice/voice-profile-artifact.d.ts.map +1 -0
  667. package/src/services/voice/voice-profile-artifact.test.ts +138 -0
  668. package/src/services/voice/voice-profile-artifact.ts +518 -0
  669. package/src/services/voice/voice-profile-routes.d.ts +83 -0
  670. package/src/services/voice/voice-profile-routes.d.ts.map +1 -0
  671. package/src/services/voice/voice-profile-routes.test.ts +429 -0
  672. package/src/services/voice/voice-profile-routes.ts +425 -0
  673. package/src/services/voice/voice-scenario.ts +154 -0
  674. package/src/services/voice/voice-settings.d.ts +82 -0
  675. package/src/services/voice/voice-settings.d.ts.map +1 -0
  676. package/src/services/voice/voice-settings.ts +172 -0
  677. package/src/services/voice/voice-state-machine.d.ts +364 -0
  678. package/src/services/voice/voice-state-machine.d.ts.map +1 -0
  679. package/src/services/voice/voice-state-machine.ts +727 -0
  680. package/src/services/voice/voice-workbench-report.test.ts +168 -0
  681. package/src/services/voice/voice-workbench-report.ts +326 -0
  682. package/src/services/voice/voice-workbench.test.ts +158 -0
  683. package/src/services/voice/voice.test.ts +1070 -0
  684. package/src/services/voice/wake-word-ggml.d.ts +101 -0
  685. package/src/services/voice/wake-word-ggml.d.ts.map +1 -0
  686. package/src/services/voice/wake-word-ggml.ts +320 -0
  687. package/src/services/voice/wake-word.d.ts +255 -0
  688. package/src/services/voice/wake-word.d.ts.map +1 -0
  689. package/src/services/voice/wake-word.test.ts +298 -0
  690. package/src/services/voice/wake-word.ts +554 -0
  691. package/src/services/voice/wrap-with-first-line-cache.d.ts +70 -0
  692. package/src/services/voice/wrap-with-first-line-cache.d.ts.map +1 -0
  693. package/src/services/voice/wrap-with-first-line-cache.ts +267 -0
  694. package/src/services/voice-model-updater.d.ts +240 -0
  695. package/src/services/voice-model-updater.d.ts.map +1 -0
  696. package/src/services/voice-model-updater.ts +724 -0
  697. package/src/services/voice-prewarm.d.ts +3 -0
  698. package/src/services/voice-prewarm.d.ts.map +1 -0
  699. package/src/services/voice-prewarm.ts +51 -0
  700. package/dist/index.d.ts +0 -37
  701. package/dist/index.js +0 -1098
@@ -0,0 +1,643 @@
1
+ export interface TextToken {
2
+ index: number;
3
+ text: string;
4
+ /**
5
+ * Text-model vocabulary token id, when the producer knows it. ASR
6
+ * (fused Qwen3-ASR) and the text backbone share the Qwen2 BPE 151 936
7
+ * vocab + merges (AGENTS.md §1), so an ASR-emitted token id is the same
8
+ * id the text model would assign — a downstream in-process handoff can
9
+ * inject `id` directly into the text KV cache without detokenize →
10
+ * retokenize. Absent for producers that only have surface text (the
11
+ * word-chunk approximation in `splitTranscriptToTokens`).
12
+ */
13
+ id?: number;
14
+ }
15
+ export interface AcceptedToken extends TextToken {
16
+ acceptedAt: number;
17
+ }
18
+ export interface RejectedTokenRange {
19
+ fromIndex: number;
20
+ toIndex: number;
21
+ }
22
+ export interface Phrase {
23
+ id: number;
24
+ text: string;
25
+ fromIndex: number;
26
+ toIndex: number;
27
+ terminator: "punctuation" | "max-cap" | "phoneme-stream";
28
+ }
29
+ export interface AudioChunk {
30
+ phraseId: number;
31
+ fromIndex: number;
32
+ toIndex: number;
33
+ pcm: Float32Array;
34
+ sampleRate: number;
35
+ }
36
+ /**
37
+ * Reference-audio-token payload mirrored on `SpeakerPreset` for v2 presets.
38
+ * Empty (K=0, refT=0, tokens.length=0) when the preset has no reference
39
+ * audio attached (instruct-only voice or legacy v1 file).
40
+ */
41
+ export interface SpeakerPresetRefAudioTokens {
42
+ K: number;
43
+ refT: number;
44
+ tokens: Int32Array;
45
+ }
46
+ export interface SpeakerPreset {
47
+ voiceId: string;
48
+ embedding: Float32Array;
49
+ bytes: Uint8Array;
50
+ /**
51
+ * Preset file format version. `1` for legacy Kokoro-style presets; `2`
52
+ * for the OmniVoice freeze format that also carries `refAudioTokens`,
53
+ * `refText`, and `instruct`. Defaulted to `1` for older readers that
54
+ * haven't been rebuilt yet.
55
+ */
56
+ version?: number;
57
+ /**
58
+ * OmniVoice reference-audio-token packet (`[K, refT]` int32). Empty for
59
+ * v1 files and v2 files that intentionally ship instruct-only voices.
60
+ * The FFI bridge passes the tokens through to `params.ref_audio_tokens`
61
+ * + `params.ref_T`.
62
+ */
63
+ refAudioTokens?: SpeakerPresetRefAudioTokens;
64
+ /**
65
+ * UTF-8 transcript of the reference clip that produced `refAudioTokens`.
66
+ * The FFI bridge passes this through to `params.ref_text`. Empty when
67
+ * the preset is instruct-only or v1.
68
+ */
69
+ refText?: string;
70
+ /**
71
+ * Resolved VoiceDesign instruct string (e.g. `"female, young adult,
72
+ * american accent, moderate pitch"`). The FFI bridge passes this
73
+ * through to `params.instruct` instead of the historical "use the
74
+ * voiceId as the instruct string" misreading.
75
+ */
76
+ instruct?: string;
77
+ /**
78
+ * Free-form metadata attached at freeze time (codec sha256, corpus hash,
79
+ * source bundle id, etc.). The runtime never relies on this for
80
+ * correctness.
81
+ */
82
+ metadata?: Record<string, unknown>;
83
+ }
84
+ export interface AudioSink {
85
+ write(pcm: Float32Array, sampleRate: number): void;
86
+ drain(): void;
87
+ bufferedSamples(): number;
88
+ }
89
+ export interface OmniVoiceBackend {
90
+ synthesize(args: {
91
+ phrase: Phrase;
92
+ preset: SpeakerPreset;
93
+ cancelSignal: {
94
+ cancelled: boolean;
95
+ };
96
+ onKernelTick?: () => void;
97
+ }): Promise<AudioChunk>;
98
+ }
99
+ /**
100
+ * One PCM segment delivered by a streaming OmniVoice runtime. This is the
101
+ * scheduler-facing TypeScript contract for the native streaming ABI extension:
102
+ * the current v1/batch ABI remains valid, and backends that implement this
103
+ * seam can additionally surface first-audio before a full phrase finishes.
104
+ */
105
+ export interface TtsPcmChunk {
106
+ pcm: Float32Array;
107
+ sampleRate: number;
108
+ isFinal: boolean;
109
+ }
110
+ export interface StreamingTtsBackend {
111
+ synthesizeStream(args: {
112
+ phrase: Phrase;
113
+ preset: SpeakerPreset;
114
+ cancelSignal: {
115
+ cancelled: boolean;
116
+ };
117
+ onChunk: (chunk: TtsPcmChunk) => boolean | undefined;
118
+ onKernelTick?: () => void;
119
+ }): Promise<{
120
+ cancelled: boolean;
121
+ }>;
122
+ }
123
+ /** Opaque native handle for a streaming ASR session in the v2 ABI shape. */
124
+ export type StreamingAsrHandle = bigint;
125
+ /**
126
+ * TS-only v2 streaming ABI contract. Implementations can satisfy this beside
127
+ * the existing synchronous v1 methods; callers should test the support flags
128
+ * rather than probe-and-catch. Native bindings may carry context handles on
129
+ * top of this shape; the scheduler-facing stream semantics stay the same.
130
+ */
131
+ export interface VoiceStreamingAbiV2 {
132
+ ttsStreamSupported(): boolean;
133
+ ttsSynthesizeStream(args: {
134
+ text: string;
135
+ speakerPresetId: string | null;
136
+ onChunk: (chunk: {
137
+ pcm: Float32Array;
138
+ isFinal: boolean;
139
+ }) => boolean | undefined;
140
+ }): {
141
+ cancelled: boolean;
142
+ };
143
+ cancelTts(): void;
144
+ asrStreamSupported(): boolean;
145
+ asrStreamOpen(args: {
146
+ sampleRateHz: number;
147
+ }): StreamingAsrHandle;
148
+ asrStreamFeed(args: {
149
+ stream: StreamingAsrHandle;
150
+ pcm: Float32Array;
151
+ }): void;
152
+ asrStreamPartial(args: {
153
+ stream: StreamingAsrHandle;
154
+ maxTextBytes?: number;
155
+ maxTokens?: number;
156
+ }): {
157
+ partial: string;
158
+ tokens?: number[];
159
+ };
160
+ asrStreamFinish(args: {
161
+ stream: StreamingAsrHandle;
162
+ maxTextBytes?: number;
163
+ maxTokens?: number;
164
+ }): {
165
+ partial: string;
166
+ tokens?: number[];
167
+ };
168
+ asrStreamClose(stream: StreamingAsrHandle): void;
169
+ }
170
+ export interface TranscriptionAudio {
171
+ pcm: Float32Array;
172
+ sampleRate: number;
173
+ }
174
+ export type VoiceInputKind = "local_mic" | "discord" | "telegram" | "signal" | "whatsapp" | "phone" | "browser" | "file" | "unknown";
175
+ /**
176
+ * Where speech audio entered the voice loop. Keep this structural so local
177
+ * mic, Discord, phone, and connector captures can share the same
178
+ * turn-taking and attribution path without branching on prompt text.
179
+ */
180
+ export interface VoiceInputSource {
181
+ kind: VoiceInputKind;
182
+ /** Connector account, device, guild/channel, call, or upload id. */
183
+ sourceId?: string;
184
+ roomId?: string;
185
+ conversationId?: string;
186
+ messageId?: string;
187
+ deviceId?: string;
188
+ connectorAccountId?: string;
189
+ channelId?: string;
190
+ guildId?: string;
191
+ callId?: string;
192
+ participantId?: string;
193
+ metadata?: Record<string, unknown>;
194
+ }
195
+ /**
196
+ * Speaker attribution for diarized speech. `imprintClusterId` is evidence,
197
+ * not identity: callers that want to attach this to a LifeOps person must
198
+ * submit a normal `EntityStore.observeIdentity` observation with this
199
+ * cluster/observation id in its evidence list. Do not use voice imprints as
200
+ * a parallel identity graph or as authorization for voice synthesis.
201
+ */
202
+ export interface VoiceSpeaker {
203
+ id: string;
204
+ label?: string;
205
+ displayName?: string;
206
+ source?: VoiceInputSource;
207
+ imprintClusterId?: string;
208
+ imprintObservationId?: string;
209
+ entityId?: string;
210
+ confidence?: number;
211
+ isLocalUser?: boolean;
212
+ metadata?: Record<string, unknown>;
213
+ }
214
+ /** One diarized span within a transcript snapshot or finalized voice turn. */
215
+ export interface VoiceSegment {
216
+ id?: string;
217
+ text: string;
218
+ startMs: number;
219
+ endMs: number;
220
+ speaker?: VoiceSpeaker;
221
+ speakerId?: string;
222
+ source?: VoiceInputSource;
223
+ confidence?: number;
224
+ tokens?: number[];
225
+ metadata?: Record<string, unknown>;
226
+ }
227
+ export interface VoiceDiarizationMetadata {
228
+ provider: "local" | "connector" | "cloud" | "unknown";
229
+ model?: string;
230
+ version?: string;
231
+ confidence?: number;
232
+ metadata?: Record<string, unknown>;
233
+ }
234
+ export interface VoiceTurnMetadata {
235
+ turnId?: string;
236
+ source?: VoiceInputSource;
237
+ primarySpeaker?: VoiceSpeaker;
238
+ segments?: VoiceSegment[];
239
+ startedAtMs?: number;
240
+ endedAtMs?: number;
241
+ diarization?: VoiceDiarizationMetadata;
242
+ metadata?: Record<string, unknown>;
243
+ }
244
+ /** A running or final transcript snapshot from a `StreamingTranscriber`. */
245
+ export interface TranscriptUpdate {
246
+ /** The full running transcript (not a delta) at this point. */
247
+ partial: string;
248
+ /** True for the snapshot emitted by `flush()` / on `speech-end`. */
249
+ isFinal: boolean;
250
+ /** Channel/device/call metadata for attribution and storage. */
251
+ source?: VoiceInputSource;
252
+ /** Best speaker attribution for single-speaker snapshots. */
253
+ speaker?: VoiceSpeaker;
254
+ /** Diarized spans for multi-speaker snapshots, when available. */
255
+ segments?: VoiceSegment[];
256
+ /** Turn-level metadata carried through to generation and storage. */
257
+ turn?: VoiceTurnMetadata;
258
+ /**
259
+ * Text-model token ids for `partial`, when the backend can supply them
260
+ * cheaply (fused Qwen3-ASR shares the text vocabulary). Absent when the
261
+ * decoder reports surface text only (re-tokenization is the LLM stage's
262
+ * job there).
263
+ */
264
+ tokens?: number[];
265
+ /**
266
+ * Voice-side emotion attribution attached to `isFinal` snapshots only.
267
+ * Running partials never carry this — the acoustic classifier wants a
268
+ * stable utterance window and the lexicon read on partial text is noise.
269
+ * Produced by `attributeVoiceEmotion()` after fusing the acoustic
270
+ * classifier output (`VoiceEmotionClassifier`) with text-side evidence;
271
+ * the fusion rule lives in `emotion-attribution.ts` so no consumer
272
+ * re-implements it. See R3-emotion §3 + §5.
273
+ */
274
+ voiceEmotion?: import("./emotion-attribution").VoiceEmotionAttribution;
275
+ }
276
+ /** Events a `StreamingTranscriber` emits while consuming PCM frames. */
277
+ export type TranscriberEvent = {
278
+ kind: "partial";
279
+ update: TranscriptUpdate;
280
+ } | {
281
+ kind: "final";
282
+ update: TranscriptUpdate;
283
+ }
284
+ /**
285
+ * Fired the first instant ≥1 real word is recognized in the current
286
+ * speech segment. Wired to W1's barge-in word-confirm gate
287
+ * (`onWordsDetected`) so the agent hard-stops TTS + aborts in-flight
288
+ * LLM/drafter generation only on real speech, not a blip.
289
+ */
290
+ | {
291
+ kind: "words";
292
+ words: string[];
293
+ };
294
+ export type TranscriberEventListener = (event: TranscriberEvent) => void;
295
+ /**
296
+ * Live transcription. `feed()` is called per PCM frame off a `MicSource`.
297
+ * The adapter runs windowed decode passes internally and emits `partial`
298
+ * events as the running transcript grows; `flush()` force-finalizes (call
299
+ * it when the VAD reports `speech-end`). Implementations gate on the VAD
300
+ * event stream — they only decode while the VAD is in `speech-active`.
301
+ *
302
+ * No silent degrade: a transcriber whose backend is unavailable throws on
303
+ * construction (or on first `feed`), it does not quietly produce empty
304
+ * transcripts.
305
+ */
306
+ export interface StreamingTranscriber {
307
+ /** Feed one PCM frame. Frames received while VAD is not active are buffered/ignored per the VAD-gating policy. */
308
+ feed(frame: PcmFrame): void;
309
+ /**
310
+ * Force-finalize: drain any buffered audio, run a final decode pass,
311
+ * emit the `final` event, and resolve with the final transcript. Safe
312
+ * to call when no audio is buffered (resolves with an empty final).
313
+ * After `flush()` the transcriber is reset and ready for the next
314
+ * speech segment.
315
+ */
316
+ flush(): Promise<TranscriptUpdate>;
317
+ /** Subscribe to transcriber events. Returns an unsubscribe fn. */
318
+ on(listener: TranscriberEventListener): () => void;
319
+ /** Release any held native resources (FFI stream handle, temp files). Idempotent. */
320
+ dispose(): void;
321
+ }
322
+ export interface PhraseChunkerConfig {
323
+ /**
324
+ * Hard word cap before a phrase is force-flushed even without a
325
+ * `, . ! ? ; :` boundary. Defaults to 30 (the brief's A6 "first 30 words").
326
+ */
327
+ maxTokensPerPhrase?: number;
328
+ /**
329
+ * Characters that close a phrase. Default `, . ! ? ; :` — punctuation
330
+ * boundaries let the first clause reach TTS without waiting for a
331
+ * sentence-final mark.
332
+ */
333
+ sentenceTerminators?: ReadonlySet<string>;
334
+ /**
335
+ * Where the chunker emits a phrase boundary.
336
+ * 'punctuation' — default. Wait for `, . ! ? ; :` or the max-token cap.
337
+ * 'phoneme-stream' — additionally emit a sub-phrase chunk every
338
+ * `phonemesPerChunk` phonemes. Cuts first-audio
339
+ * latency by handing partial phrases to TTS at
340
+ * phoneme boundaries.
341
+ */
342
+ chunkOn?: "punctuation" | "phoneme-stream";
343
+ /** Phonemes per chunk in `phoneme-stream` mode. Default 8. */
344
+ phonemesPerChunk?: number;
345
+ /**
346
+ * Maximum milliseconds a phrase may sit in the chunker before the
347
+ * scheduler force-flushes it even without punctuation / phoneme / cap
348
+ * boundaries. Default 700 ms. Set to 0 to disable.
349
+ */
350
+ maxAccumulationMs?: number;
351
+ /**
352
+ * Shorter budget applied ONLY to the first phrase of each reply, so first
353
+ * audio (TTFA) plays sooner on punctuation-sparse openings while later
354
+ * phrases keep `maxAccumulationMs` (no fragmentation). When omitted,
355
+ * derives from `maxAccumulationMs` (half, capped at 350 ms) and honors the
356
+ * `ELIZA_PHRASE_FLUSH_FIRST_MS` env override. Clamped to `maxAccumulationMs`.
357
+ */
358
+ firstPhraseMaxAccumulationMs?: number;
359
+ }
360
+ export interface VerifierStreamEvent {
361
+ kind: "accept" | "reject";
362
+ tokens: TextToken[];
363
+ /**
364
+ * Optional per-event metadata. Today only the very first `accept` of a
365
+ * streaming completion carries `firstTokenMs` (L5 — time from the fetch
366
+ * being issued to the first SSE chunk arriving). Other consumers MAY
367
+ * ignore this field; producers MUST omit it on non-first events.
368
+ */
369
+ meta?: {
370
+ /** Milliseconds from request issue (`performance.now()`) to first chunk. */
371
+ firstTokenMs?: number;
372
+ };
373
+ }
374
+ /** A fixed-size block of mono PCM samples in [-1, 1] at a known sample rate. */
375
+ export interface PcmFrame {
376
+ pcm: Float32Array;
377
+ sampleRate: number;
378
+ /**
379
+ * Monotonic timestamp (ms, `performance.now()` domain) of the *first*
380
+ * sample in this frame. Used to age VAD events and barge-in latency.
381
+ */
382
+ timestampMs: number;
383
+ }
384
+ /**
385
+ * Event emitted by `VadDetector` on the authoritative (Silero) timeline.
386
+ *
387
+ * - `speech-start` — speech onset (a run of speech frames crossed the
388
+ * onset threshold). Carries the probability of the
389
+ * triggering frame.
390
+ * - `speech-active` — a periodic heartbeat while speech is ongoing. The
391
+ * barge-in controller uses this to pause TTS.
392
+ * - `speech-pause` — speech has been quiet for `pauseStartedMs..now`
393
+ * but not long enough to count as end-of-utterance.
394
+ * The turn controller uses this to kick a speculative
395
+ * response off the partial transcript.
396
+ * - `speech-end` — end of utterance (silence held past the hangover
397
+ * window). Carries the total speech duration.
398
+ * - `blip` — a short burst of energy that the Silero VAD rejected
399
+ * (or that was too short to be speech). The barge-in
400
+ * controller treats this as "resume TTS".
401
+ */
402
+ export type VadEvent = {
403
+ type: "speech-start";
404
+ timestampMs: number;
405
+ probability: number;
406
+ } | {
407
+ type: "speech-active";
408
+ timestampMs: number;
409
+ probability: number;
410
+ speechDurationMs: number;
411
+ } | {
412
+ type: "speech-pause";
413
+ timestampMs: number;
414
+ pauseDurationMs: number;
415
+ } | {
416
+ type: "speech-end";
417
+ timestampMs: number;
418
+ speechDurationMs: number;
419
+ } | {
420
+ type: "blip";
421
+ timestampMs: number;
422
+ durationMs: number;
423
+ peakRms: number;
424
+ };
425
+ /** Cheap RMS energy gate event — the fast pre-warm path. Distinct timeline
426
+ * from `VadEvent`; this fires with sub-frame latency and never blocks on a
427
+ * model forward pass. */
428
+ export type EnergyGateEvent = {
429
+ type: "energy-rise";
430
+ timestampMs: number;
431
+ rms: number;
432
+ } | {
433
+ type: "energy-fall";
434
+ timestampMs: number;
435
+ quietMs: number;
436
+ };
437
+ export type VadEventListener = (event: VadEvent) => void;
438
+ export type EnergyGateListener = (event: EnergyGateEvent) => void;
439
+ /**
440
+ * Subscribable VAD event stream. `VadDetector` (`voice/vad.ts`) is the
441
+ * concrete implementation; the streaming transcriber and the barge-in
442
+ * controller take this structural view so they don't pull in the optional
443
+ * `onnxruntime-node` surface.
444
+ */
445
+ export interface VadEventSource {
446
+ onVadEvent(listener: VadEventListener): () => void;
447
+ }
448
+ /**
449
+ * Source of mic PCM. The desktop/Electrobun impl in `mic-source.ts` is the
450
+ * first concrete implementation; Discord / Telegram / mobile connectors
451
+ * implement the same interface so the rest of the voice loop is source-
452
+ * agnostic. A `MicSource` produces fixed-size mono frames at a fixed sample
453
+ * rate and tees them to any number of consumers (the VAD, the ring buffer
454
+ * the ASR reads from, instrumentation taps).
455
+ */
456
+ export interface MicSource {
457
+ /** Nominal sample rate of every emitted frame (Hz). */
458
+ readonly sampleRate: number;
459
+ /** Samples per emitted frame. */
460
+ readonly frameSamples: number;
461
+ /** True once `start()` has resolved and frames are flowing. */
462
+ readonly running: boolean;
463
+ /** Begin capture. Resolves when the underlying device is producing audio.
464
+ * Throws (never silently no-ops) when no mic backend is available. */
465
+ start(): Promise<void>;
466
+ /** Stop capture and release the device. Idempotent. */
467
+ stop(): Promise<void>;
468
+ /** Subscribe to PCM frames. Returns an unsubscribe function. */
469
+ onFrame(listener: (frame: PcmFrame) => void): () => void;
470
+ /** Subscribe to fatal capture errors (device lost, process died). The
471
+ * source is no longer `running` after one of these. */
472
+ onError(listener: (error: Error) => void): () => void;
473
+ }
474
+ /**
475
+ * Cancellation token threaded from the barge-in controller down through the
476
+ * voice scheduler (TTS) *and* the engine layer (in-flight LLM / MTP
477
+ * drafter generation). `cancelled` is a plain boolean so the synthesis loop
478
+ * and the SSE-consuming generate loop can both poll it cheaply at a kernel
479
+ * boundary; `reason` records *why* for diagnostics; `signal` is the standard
480
+ * `AbortSignal` the engine's HTTP/stream layer aborts on.
481
+ *
482
+ * (W1 owns the controller; W9 threads `signal` into `dispatcher.generate`.)
483
+ */
484
+ export interface BargeInCancelToken {
485
+ cancelled: boolean;
486
+ reason: "barge-in-words" | "manual" | null;
487
+ readonly signal: AbortSignal;
488
+ }
489
+ /** Signal emitted by `BargeInController` to the scheduler / engine. */
490
+ export type BargeInSignal = {
491
+ type: "pause-tts";
492
+ timestampMs: number;
493
+ } | {
494
+ type: "resume-tts";
495
+ timestampMs: number;
496
+ } | {
497
+ type: "hard-stop";
498
+ timestampMs: number;
499
+ token: BargeInCancelToken;
500
+ };
501
+ export type BargeInSignalListener = (signal: BargeInSignal) => void;
502
+ /**
503
+ * Contract the ASR layer (W2's `StreamingTranscriber`) calls into the
504
+ * barge-in controller with. When the transcriber has parsed at least one
505
+ * real word from the user's barge-in audio, it calls `onWordsDetected` with
506
+ * the running word count; the controller promotes a `pause-tts` into a
507
+ * `hard-stop`. This is the *authoritative* blip-vs-words gate — the energy-
508
+ * duration heuristic is only a fast provisional guess until ASR confirms.
509
+ */
510
+ export interface WordsDetectedSink {
511
+ onWordsDetected(args: {
512
+ /** Number of parsed words observed so far in this barge-in segment. */
513
+ wordCount: number;
514
+ /** Best partial transcript so far (may be empty). */
515
+ partialText: string;
516
+ timestampMs: number;
517
+ }): void;
518
+ }
519
+ export interface SchedulerConfig {
520
+ chunkerConfig: PhraseChunkerConfig;
521
+ preset: SpeakerPreset;
522
+ ringBufferCapacity: number;
523
+ sampleRate: number;
524
+ /**
525
+ * Max concurrent TTS dispatches. When this many phrases are in flight,
526
+ * `accept()` awaits the oldest before dispatching the next, propagating
527
+ * backpressure upstream to the verifier loop. Default 4 — small enough
528
+ * to bound memory under runaway producers without serialising the
529
+ * common case (text gen leads TTS by a phrase or two).
530
+ */
531
+ maxInFlightPhrases?: number;
532
+ /**
533
+ * Enable the streaming-TTS path (`synthesizeStream`) for phrase
534
+ * synthesis. When `true` (default), the scheduler uses the chunk-by-chunk
535
+ * streaming ABI when the backend supports it, delivering first audio
536
+ * before the full phrase finishes synthesizing and enabling per-chunk
537
+ * prefix-preserving barge-in rollback.
538
+ *
539
+ * Previously this was implicitly gated by `ttsStreamSupported()` from the
540
+ * native FFI layer. On macOS, a `ggml_conv_transpose_1d` stall in the
541
+ * DAC codec region caused the Metal path to hang — that stall is now
542
+ * fixed in the llama.cpp merge (native Metal kernels for
543
+ * `ggml_conv_transpose_1d`; the CPU fallback causing the hang is gone).
544
+ * The flag is therefore `true` by default. Set to `false` only when
545
+ * testing against a non-streaming build or reproducing the pre-fix
546
+ * behaviour.
547
+ */
548
+ streamingTtsActive?: boolean;
549
+ }
550
+ export interface VoiceSchedulerPhraseTelemetry {
551
+ id: number;
552
+ text: string;
553
+ fromIndex: number;
554
+ toIndex: number;
555
+ terminator: Phrase["terminator"];
556
+ tokenCount: number;
557
+ textBytes: number;
558
+ }
559
+ export type VoiceAudioSource = "cache" | "synthesis";
560
+ export type VoiceTtsCancelReason = "barge-in" | "rollback" | "pending-tts" | "synthesis-cancelled";
561
+ export type VoiceSchedulerTelemetryEvent = {
562
+ type: "phrase-dispatch";
563
+ atMs: number;
564
+ phrase: VoiceSchedulerPhraseTelemetry;
565
+ inFlightPhrases: number;
566
+ } | {
567
+ type: "phrase-cache-hit" | "phrase-cache-miss";
568
+ atMs: number;
569
+ phrase: VoiceSchedulerPhraseTelemetry;
570
+ } | {
571
+ type: "tts-start";
572
+ atMs: number;
573
+ phrase: VoiceSchedulerPhraseTelemetry;
574
+ inFlightPhrases: number;
575
+ } | {
576
+ type: "tts-first-audio";
577
+ atMs: number;
578
+ phrase: VoiceSchedulerPhraseTelemetry;
579
+ source: VoiceAudioSource;
580
+ samples: number;
581
+ sampleRate: number;
582
+ } | {
583
+ type: "audio-committed";
584
+ atMs: number;
585
+ phrase: VoiceSchedulerPhraseTelemetry;
586
+ source: VoiceAudioSource;
587
+ samples: number;
588
+ sampleRate: number;
589
+ flushedSamples: number;
590
+ paused: boolean;
591
+ ringBufferSamples: number;
592
+ sinkBufferedSamples: number;
593
+ } | {
594
+ type: "tts-cancel";
595
+ atMs: number;
596
+ phrase: VoiceSchedulerPhraseTelemetry;
597
+ reason: VoiceTtsCancelReason;
598
+ } | {
599
+ type: "rollback";
600
+ atMs: number;
601
+ phraseId: number;
602
+ range: RejectedTokenRange;
603
+ reason: "rejected-tokens";
604
+ } | {
605
+ type: "barge-in";
606
+ atMs: number;
607
+ ringBufferSamplesDrained: number;
608
+ sinkBufferedSamplesDrained: number;
609
+ inFlightPhrasesCancelled: number;
610
+ wasPaused: boolean;
611
+ } | {
612
+ /**
613
+ * Fired when the prefix-preserving rollback queue partitions
614
+ * in-flight audio chunks on barge-in. `retainedChunks` are replayed
615
+ * into the sink; `droppedChunks` are discarded. Present only when
616
+ * `PrefixPreservingQueue` is active (at least one chunk was tagged).
617
+ */
618
+ type: "barge-in-prefix-rollback";
619
+ atMs: number;
620
+ divergencePoint: number;
621
+ retainedChunks: number;
622
+ droppedChunks: number;
623
+ straddledChunks: number;
624
+ retainedDurationMs: number;
625
+ droppedDurationMs: number;
626
+ };
627
+ export type VoiceSchedulerTelemetryListener = (event: VoiceSchedulerTelemetryEvent) => void;
628
+ /** Minimal VAD model contract consumed by the fused `GgmlSileroVad` and the
629
+ * optional injected qwen-toolkit adapter. */
630
+ export interface VadLike {
631
+ readonly windowSamples: number;
632
+ readonly sampleRate: number;
633
+ process(window: Float32Array): Promise<number>;
634
+ reset(): void;
635
+ }
636
+ /** Minimal wake-word model contract consumed by OpenWakeWordGgmlModel. */
637
+ export interface WakeWordModel {
638
+ readonly frameSamples: number;
639
+ readonly sampleRate: number;
640
+ scoreFrame(frame: Float32Array): Promise<number>;
641
+ reset(): void;
642
+ }
643
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"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"}