@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,128 @@
1
+ /**
2
+ * Public facade for the local-inference service.
3
+ *
4
+ * Single entry point used by the API routes, settings UI, and orchestration
5
+ * code. Holds singleton instances of the downloader
6
+ * and active-model coordinator so subscribers receive the same event
7
+ * stream across the process.
8
+ */
9
+ import { type AgentRuntime } from "@elizaos/core";
10
+ import { type LocalInferenceLoadOverrides } from "./active-model";
11
+ import { MemoryArbiter } from "./memory-arbiter";
12
+ import { type RecommendedModelSelection } from "./recommendation";
13
+ import type { ActiveModelState, AgentModelSlot, CatalogModel, DownloadEvent, DownloadJob, HardwareProbe, LocalInferenceReadiness, ModelAssignments, ModelHubSnapshot, TextGenerationSlot } from "./types";
14
+ import { type VerifyResult } from "./verify";
15
+ export declare class LocalInferenceService {
16
+ private readonly downloader;
17
+ private readonly activeModel;
18
+ private bundledBootstrap;
19
+ /**
20
+ * Memory Arbiter (WS1). Lazily created on first access so the heavy
21
+ * pressure-source machinery doesn't run for processes that never load
22
+ * a local model (CI, dev shells, etc.). Once created, the arbiter is
23
+ * also published via `setMemoryArbiter` so cross-plugin consumers
24
+ * (plugin-vision, plugin-image-gen) can use `getMemoryArbiter()`.
25
+ */
26
+ private memoryArbiter;
27
+ /**
28
+ * Mobile pressure bridge — populated by the Capacitor host (iOS / Android
29
+ * onTrimMemory) so a native pressure callback can reach the arbiter.
30
+ * Stays null on desktop until WS2/WS8 wire the native side.
31
+ */
32
+ private mobilePressureBridge;
33
+ private imageGenCapabilityRegistered;
34
+ getCatalog(): CatalogModel[];
35
+ /**
36
+ * Register any bundled GGUF files staged by the AOSP build (or any
37
+ * other install path that drops a `manifest.json` next to the model
38
+ * files) into the registry. Runs at most once per process; the
39
+ * promise is cached so concurrent first callers wait on the same
40
+ * work.
41
+ */
42
+ private bootstrapBundled;
43
+ getInstalled(): Promise<import("@elizaos/shared").InstalledModel[]>;
44
+ getHardware(): Promise<HardwareProbe>;
45
+ getDownloads(): DownloadJob[];
46
+ getActive(): ActiveModelState;
47
+ getAssignments(): Promise<ModelAssignments>;
48
+ setSlotAssignment(slot: AgentModelSlot, modelId: string | null): Promise<ModelAssignments>;
49
+ snapshot(): Promise<ModelHubSnapshot>;
50
+ getTextReadiness(): Promise<LocalInferenceReadiness>;
51
+ getRecommendedModel(slot: TextGenerationSlot, hardware?: HardwareProbe): Promise<RecommendedModelSelection>;
52
+ getRecommendedModels(hardware?: HardwareProbe): Promise<Record<TextGenerationSlot, RecommendedModelSelection>>;
53
+ /**
54
+ * Kernel capability probing is now owned by the native FFI runtime. Null
55
+ * means "no static CAPABILITIES.json probe"; the dispatcher still enforces
56
+ * runtime-required kernels at load time.
57
+ */
58
+ private installedBinaryKernels;
59
+ startDownload(modelId: string): Promise<DownloadJob>;
60
+ startSmallerFallbackDownload(currentModelId: string, slot?: TextGenerationSlot, hardware?: HardwareProbe): Promise<{
61
+ model: CatalogModel;
62
+ job: DownloadJob;
63
+ } | null>;
64
+ searchHuggingFace(query: string, limit?: number): Promise<CatalogModel[]>;
65
+ searchModelHub(query: string, hub: "huggingface" | "modelscope", limit?: number): Promise<CatalogModel[]>;
66
+ /**
67
+ * Verify an installed model's file integrity. When the model was a
68
+ * Eliza-download and there was no stored sha256 yet (legacy entry), the
69
+ * computed hash is persisted so subsequent verifies have a baseline.
70
+ */
71
+ verifyModel(id: string): Promise<VerifyResult>;
72
+ cancelDownload(modelId: string): boolean;
73
+ subscribeDownloads(listener: (event: DownloadEvent) => void): () => void;
74
+ subscribeActive(listener: (state: ActiveModelState) => void): () => void;
75
+ setActive(runtime: AgentRuntime | null, modelId: string, overrides?: LocalInferenceLoadOverrides): Promise<ActiveModelState>;
76
+ prewarmActiveVoice(modelId: string): Promise<boolean>;
77
+ /**
78
+ * Warm the Stage-1 stable prefix after an explicit model activation.
79
+ *
80
+ * `ensureLocalInferenceHandler` also attempts this at runtime boot, but
81
+ * desktop activation often happens later through `/api/local-inference/active`;
82
+ * at boot there may be no resident model, so that early warmup correctly
83
+ * stays inactive. Running it here closes that gap without blocking activation.
84
+ */
85
+ prewarmSystemPrefix(runtime: AgentRuntime): Promise<boolean>;
86
+ clearActive(runtime: AgentRuntime | null): Promise<ActiveModelState>;
87
+ /**
88
+ * Diagnostic snapshot of the local prefix-cache state. Returns:
89
+ * - `engine`: in-process session-pool size and live cache keys.
90
+ * Used by the API layer to render a "local cache" debug panel.
91
+ */
92
+ getLocalCacheStats(): Promise<{
93
+ engine: {
94
+ size: number;
95
+ maxSize: number;
96
+ keys: string[];
97
+ } | null;
98
+ }>;
99
+ /**
100
+ * Memory Arbiter (WS1). Returns the process-wide arbiter, creating it on
101
+ * first call. The arbiter is constructed against the engine's existing
102
+ * `SharedResourceRegistry` so eviction policy is consistent across the
103
+ * voice/text paths and the cross-plugin handles.
104
+ *
105
+ * The pressure source is a composite of:
106
+ * - `nodeOsPressureSource()` — desktop polling at 5 s.
107
+ * - A `capacitorPressureSource()` bridge — populated by the Capacitor
108
+ * host on iOS/Android. The native side calls `dispatchMobilePressure`
109
+ * when the OS hands it a memory-warning callback.
110
+ */
111
+ getMemoryArbiter(): MemoryArbiter;
112
+ private registerImageGenCapability;
113
+ private loadImageGenBackend;
114
+ private resolveImageGenLoadArgs;
115
+ private imageGenFileExists;
116
+ /**
117
+ * Capacitor bridge entrypoint. The mobile host (iOS / Android) calls
118
+ * this from the native pressure callback. Safe to call before the
119
+ * arbiter has been created — we create it on demand.
120
+ */
121
+ dispatchMobilePressure(level: "nominal" | "low" | "critical", freeMb?: number): void;
122
+ uninstall(modelId: string): Promise<{
123
+ removed: boolean;
124
+ reason?: "external" | "not-found";
125
+ }>;
126
+ }
127
+ export declare const localInferenceService: LocalInferenceService;
128
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/services/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Session pool for the in-process node-llama-cpp engine.
3
+ *
4
+ * node-llama-cpp's `LlamaChatSession` keeps an internal KV cache. The
5
+ * stock engine code resets that cache between every turn, which is
6
+ * correct for stateless per-call generation but actively defeats prefix
7
+ * reuse for callers that pass a `promptCacheKey` (the runtime's
8
+ * cloud-style cache hint).
9
+ *
10
+ * This pool keeps one session per `promptCacheKey`, LRU-evicted, so
11
+ * sequential calls with the same key reuse the on-GPU/on-CPU KV cache.
12
+ * Calls without a cache key share the synthetic `_default` slot, which
13
+ * preserves the previous "stateless per-call" semantics by resetting
14
+ * before each turn.
15
+ *
16
+ * The pool owns nothing at module scope; the engine constructs a pool
17
+ * tied to the loaded model and disposes it on unload.
18
+ */
19
+ export interface PoolSession {
20
+ /** Reset accumulated chat history. Called for the default slot only. */
21
+ resetChatHistory?(): void | Promise<void>;
22
+ /** Dispose underlying KV state. Called on eviction + on pool close. */
23
+ dispose?(): void | Promise<void>;
24
+ }
25
+ export type SessionFactory<TSession extends PoolSession> = (key: string) => Promise<TSession>;
26
+ /**
27
+ * Synthetic key used for callers that didn't supply a `promptCacheKey`.
28
+ * These callers want the old "history-free" behaviour, so the engine
29
+ * resets chat history each turn for this slot only.
30
+ */
31
+ export declare const DEFAULT_SESSION_KEY = "_default";
32
+ export declare class SessionPool<TSession extends PoolSession> {
33
+ private readonly maxSize;
34
+ private readonly factory;
35
+ /**
36
+ * Insertion order = LRU order. We re-key on each access so the most
37
+ * recently used entry is always last in iteration order.
38
+ */
39
+ private readonly entries;
40
+ constructor(args: {
41
+ maxSize: number;
42
+ factory: SessionFactory<TSession>;
43
+ });
44
+ /**
45
+ * Get-or-create the session for `key`. Promotes the entry to MRU.
46
+ * On eviction, the oldest entry's `dispose()` is awaited before the
47
+ * new entry is returned so the caller never holds two live sessions
48
+ * over the same KV memory.
49
+ */
50
+ acquire(key: string): Promise<TSession>;
51
+ /** Number of live sessions, for diagnostics. */
52
+ size(): number;
53
+ /** Snapshot of live keys ordered LRU → MRU. */
54
+ keys(): string[];
55
+ /**
56
+ * Drop a single session by key. Used when the caller knows the prefix
57
+ * has gone stale (e.g. system prompt changed) and the cached KV is no
58
+ * longer valid.
59
+ */
60
+ drop(key: string): Promise<void>;
61
+ /**
62
+ * Tear down every cached session. Called by the engine on model
63
+ * unload. After `close()` the pool is empty but reusable.
64
+ */
65
+ close(): Promise<void>;
66
+ private disposeQuietly;
67
+ }
68
+ /**
69
+ * Resolve the pool size from env, with a sane default. Bound by 1..64.
70
+ */
71
+ export declare function resolveDefaultPoolSize(envValue?: string | null): number;
72
+ //# sourceMappingURL=session-pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-pool.d.ts","sourceRoot":"","sources":["../../src/services/session-pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,WAAW;IAC3B,wEAAwE;IACxE,gBAAgB,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,uEAAuE;IACvE,OAAO,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,MAAM,MAAM,cAAc,CAAC,QAAQ,SAAS,WAAW,IAAI,CAC1D,GAAG,EAAE,MAAM,KACP,OAAO,CAAC,QAAQ,CAAC,CAAC;AASvB;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAE9C,qBAAa,WAAW,CAAC,QAAQ,SAAS,WAAW;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;gBAElD,IAAI,EAAE;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;KAClC;IAUD;;;;;OAKG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IA0B7C,gDAAgD;IAChD,IAAI,IAAI,MAAM;IAId,+CAA+C;IAC/C,IAAI,IAAI,MAAM,EAAE;IAIhB;;;;OAIG;IACG,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOtC;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAQd,cAAc;CAS5B;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAMvE"}
@@ -0,0 +1,23 @@
1
+ import type { JSONSchema, ResponseSkeleton } from "@elizaos/core";
2
+ export type StructuredOutputRepairStatus = "unchanged" | "repaired" | "ambiguous" | "invalid";
3
+ export interface StructuredOutputRepairOptions {
4
+ skeleton?: ResponseSkeleton;
5
+ jsonSchema?: JSONSchema;
6
+ jsonSchemasByKey?: Readonly<Record<string, JSONSchema | undefined>>;
7
+ }
8
+ export interface StructuredOutputRepairResult {
9
+ text: string;
10
+ status: StructuredOutputRepairStatus;
11
+ reason?: string;
12
+ }
13
+ export declare function repairStructuredOutput(text: string, options: StructuredOutputRepairOptions): StructuredOutputRepairResult;
14
+ export declare class StructuredOutputRepairStream {
15
+ private readonly options;
16
+ private text;
17
+ private syntheticTail;
18
+ constructor(options: StructuredOutputRepairOptions);
19
+ push(chunk: string): string;
20
+ flush(): string;
21
+ currentText(): string;
22
+ }
23
+ //# sourceMappingURL=deterministic-repair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deterministic-repair.d.ts","sourceRoot":"","sources":["../../../src/services/structured-output/deterministic-repair.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,UAAU,EACV,gBAAgB,EAEhB,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,4BAA4B,GACrC,WAAW,GACX,UAAU,GACV,WAAW,GACX,SAAS,CAAC;AAEb,MAAM,WAAW,6BAA6B;IAC7C,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,gBAAgB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC;CACpE;AAED,MAAM,WAAW,4BAA4B;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,4BAA4B,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAuWD,wBAAgB,sBAAsB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,6BAA6B,GACpC,4BAA4B,CAa9B;AASD,qBAAa,4BAA4B;IAI5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,aAAa,CAAM;gBAEE,OAAO,EAAE,6BAA6B;IAEnE,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAkB3B,KAAK,IAAI,MAAM;IASf,WAAW,IAAI,MAAM;CAGrB"}
@@ -0,0 +1,2 @@
1
+ export * from "../structured-output.ts";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/structured-output/index.ts"],"names":[],"mappings":"AAGA,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,311 @@
1
+ /**
2
+ * Structured-output / forced-span / prefill plumbing for the local-inference
3
+ * engine path.
4
+ *
5
+ * The canonical contract lives in `@elizaos/core` `GenerateTextParams`
6
+ * (`prefill`, `responseSkeleton`, `grammar`, `streamStructured`) and is
7
+ * threaded through `useModel` → router. This module is the
8
+ * local-inference-layer mirror of the relevant subset plus the GBNF
9
+ * compilation that turns a `ResponseSkeleton` into a *lazy* grammar so the
10
+ * model only ever samples the free positions of the response envelope
11
+ * (single-value enums collapse to literals — no tokens spent on the scaffold).
12
+ *
13
+ * Nothing here is local-model-specific in shape; cloud adapters never read
14
+ * these fields. There is no fallback path — adapters that can't honour
15
+ * `grammar` / `prefill` / `responseSkeleton` ignore them, full stop.
16
+ */
17
+ import type { JSONSchema, ResponseSkeleton, ResponseSkeletonSpan, SpanSamplerPlan } from "@elizaos/core";
18
+ export { repairStructuredOutput, type StructuredOutputRepairOptions, type StructuredOutputRepairResult, type StructuredOutputRepairStatus, StructuredOutputRepairStream, } from "./structured-output/deterministic-repair";
19
+ export type { ResponseSkeleton, ResponseSkeletonSpan, SpanSamplerPlan };
20
+ /**
21
+ * GBNF grammar fragment ready for a llama-server request body. `lazy` grammars
22
+ * only kick in once a trigger word/sequence appears in the stream
23
+ * (llama.cpp's `grammar_lazy` + `grammar_triggers`) — that lets the model
24
+ * free-run the prose `replyText` and only constrain the structured scaffold
25
+ * once the envelope boundary is reached.
26
+ */
27
+ export interface GbnfGrammar {
28
+ /** GBNF source. */
29
+ source: string;
30
+ /** When true, the server applies the grammar lazily (`grammar_lazy: true`). */
31
+ lazy?: boolean;
32
+ /** Trigger words that activate a lazy grammar (`grammar_triggers`). */
33
+ triggers?: ReadonlyArray<string>;
34
+ }
35
+ /**
36
+ * Local-inference mirror of the structured-output extensions on
37
+ * `GenerateTextParams`. Threaded `useModel` → router → local handler →
38
+ * engine → FFI runtime.
39
+ */
40
+ export interface StructuredGenerateParams {
41
+ /**
42
+ * Assistant-turn prefill — a partial assistant message the model should
43
+ * *continue* rather than start fresh. On llama-server this is sent as a
44
+ * trailing assistant message with `continue_final_message` / the
45
+ * `assistant` chat-template prefix; the capacitor-llama path seeds the
46
+ * prompt text and re-prepends the prefill to the result.
47
+ */
48
+ prefill?: string;
49
+ /**
50
+ * Forced response skeleton. When set the engine compiles it to a lazy GBNF
51
+ * (single-value enums → literals) so the model only samples the free
52
+ * positions of the envelope.
53
+ */
54
+ responseSkeleton?: ResponseSkeleton;
55
+ /** Optional whole-response JSON schema from `GenerateTextParams`. */
56
+ responseSchema?: JSONSchema;
57
+ /**
58
+ * Explicit GBNF grammar string. When both `grammar` and `responseSkeleton`
59
+ * are present, the explicit `grammar` wins.
60
+ */
61
+ grammar?: string;
62
+ /**
63
+ * When true, the engine streams per-token chunks back via `onTextChunk`
64
+ * (and structured-field events) instead of returning the whole string in
65
+ * one shot.
66
+ */
67
+ streamStructured?: boolean;
68
+ /**
69
+ * The eliza harness schema for this call — the compact descriptor bundling
70
+ * the response skeleton, a pre-built grammar (optional), the derived
71
+ * deterministic-token {@link ElizaPrefillPlan}, and the short/long name maps.
72
+ * When present, guided structured decode is *on* for this call: the engine
73
+ * sends the grammar AND the prefill plan, and seeds the leading literal run
74
+ * as an assistant-turn prefill. Absent → guided decode is off (the engine
75
+ * may still honour a bare `grammar` / `responseSkeleton`, but never emits a
76
+ * prefill plan). This is the off-by-default switch for the deterministic
77
+ * short-circuit.
78
+ */
79
+ elizaSchema?: ElizaHarnessSchema;
80
+ /**
81
+ * Per-span sampler overrides for the {@link responseSkeleton}. When set,
82
+ * the engine emits `eliza_span_samplers` on the llama-server request body so
83
+ * the fork-side server swaps to argmax (`llama_sampler_init_greedy()`) at
84
+ * the indicated enum / number / boolean positions. Stock llama-server
85
+ * ignores the field — the grammar still constrains the same tokens, we
86
+ * just lose the argmax determinism guarantee on that path.
87
+ *
88
+ * Producer: `@elizaos/core` `buildSpanSamplerPlan(skeleton)`.
89
+ */
90
+ spanSamplerPlan?: SpanSamplerPlan;
91
+ /**
92
+ * Per-request chat-template thinking control for reasoning-capable local
93
+ * models. `off` maps to `chat_template_kwargs.enable_thinking=false` for
94
+ * response-handler/direct-reply calls that must emit user-visible text, while
95
+ * planner/action calls can omit this and use the catalog/server default.
96
+ */
97
+ thinking?: "auto" | "on" | "off";
98
+ }
99
+ /**
100
+ * Collapse a skeleton: `enum` spans with exactly one value (or zero values)
101
+ * become `literal` spans (C4). Adjacent literals stay separate spans — the
102
+ * compiler merges them in the root rule.
103
+ */
104
+ export declare function collapseSkeleton(skeleton: ResponseSkeleton): ResponseSkeleton;
105
+ /**
106
+ * Compile a `ResponseSkeleton` to a *lazy* GBNF grammar. The grammar's `root`
107
+ * rule is the concatenation of every span:
108
+ * - `literal` spans → GBNF string literals (the JSON key/glue scaffold),
109
+ * - `enum` spans (≥2 values) → an alternation of quoted-string literals,
110
+ * - `free-string` spans → a quoted JSON string rule,
111
+ * - `free-json` spans → the recursive JSON-value rule.
112
+ *
113
+ * The grammar runs *lazily* when the skeleton opens with a literal (the
114
+ * trigger word) — generation free-runs until that literal is seen, then the
115
+ * grammar pins the rest of the envelope. That keeps the prose prefix
116
+ * unconstrained while forcing the JSON scaffold.
117
+ *
118
+ * Returns `null` when the skeleton has no free spans (nothing for the model to
119
+ * sample — the caller should just emit the literal text and skip generation).
120
+ */
121
+ export declare function compileSkeletonToGbnf(skeletonInput: ResponseSkeleton): GbnfGrammar | null;
122
+ /**
123
+ * Resolve the GBNF grammar to apply for a generation call. Precedence: an
124
+ * explicit `grammar` string on the params, then a compiled `responseSkeleton`.
125
+ * Returns null when neither is set.
126
+ */
127
+ export declare function resolveGrammarForParams(params: StructuredGenerateParams | undefined): GbnfGrammar | null;
128
+ /**
129
+ * Build the OpenAI-/llama-server-compatible request-body fragment for a
130
+ * grammar. Returns `grammar` + (when lazy) `grammar_lazy` / `grammar_triggers`.
131
+ * Recent llama.cpp accepts these on both `/v1/chat/completions` and
132
+ * `/completion`.
133
+ */
134
+ export declare function grammarRequestFields(grammar: GbnfGrammar): Record<string, unknown>;
135
+ /**
136
+ * Split a skeleton's leading literal run off as an assistant-turn prefill
137
+ * candidate, returning that prefix plus the remaining spans. Used by the
138
+ * multi-call infill fallback (emit prefix as a prefill, generate the first
139
+ * free span, then loop).
140
+ */
141
+ export declare function splitSkeletonAtFirstFree(skeleton: ResponseSkeleton): {
142
+ prefixLiteral: string;
143
+ rest: ResponseSkeletonSpan[];
144
+ };
145
+ /**
146
+ * One deterministically-forced byte run in an {@link ElizaPrefillPlan}. The
147
+ * runs alternate with the free (sampled) spans, so a run is unambiguously
148
+ * anchored by *position* in that alternation rather than by an absolute byte
149
+ * offset (the sampled spans have unknown length at plan time):
150
+ *
151
+ * run[0] free[0] run[1] free[1] … run[n] (n = number of free spans)
152
+ *
153
+ * `afterFreeSpan` is `-1` for the leading run (before any free span — the
154
+ * assistant-turn prefill), then `0, 1, 2, …` for the run that follows free
155
+ * span 0, 1, 2, … . The server resumes sampling after writing each run; once
156
+ * the matching free span is sampled it writes the next run's token ids without
157
+ * a forward pass and advances the decoder to the next free span.
158
+ */
159
+ export interface PrefillRun {
160
+ /**
161
+ * Index of the free span this run *follows*. `-1` = the leading run (the
162
+ * prefill); `k >= 0` = the run after free span `k`. The last run (`n`) is the
163
+ * tail scaffold (closing braces) after the final free span.
164
+ */
165
+ afterFreeSpan: number;
166
+ /** The deterministically-forced bytes. */
167
+ text: string;
168
+ /**
169
+ * Optional pre-tokenized token IDs for this run. When provided at compile time
170
+ * via a tokenizer callback, the FFI runtime can use these directly without
171
+ * re-tokenizing, improving latency.
172
+ */
173
+ tokenIds?: number[];
174
+ }
175
+ /**
176
+ * Compact descriptor of the deterministic structure of a constrained decode:
177
+ * the ordered runs of bytes that are fixed (so the server can prefill their
178
+ * token ids and skip the forward passes) interleaved with the count of free
179
+ * positions, plus the leading literal run that should be seeded as an
180
+ * assistant-turn prefill (`prefix`). Sent on the request as `eliza_prefill_plan`.
181
+ *
182
+ * Purely a speedup hint — a server that ignores it produces the identical
183
+ * output because the lazy GBNF already forces the same bytes.
184
+ */
185
+ export interface ElizaPrefillPlan {
186
+ /**
187
+ * The leading deterministic run — emitted as an assistant-turn prefill so
188
+ * the model never samples it. Empty when the skeleton opens with a free span.
189
+ */
190
+ prefix: string;
191
+ /**
192
+ * Deterministic byte runs alternating with the free spans (see
193
+ * {@link PrefillRun}), in output order, including the prefix run when
194
+ * non-empty.
195
+ */
196
+ runs: PrefillRun[];
197
+ /** Number of free (sampled) spans in the skeleton. `runs.length` is `freeCount + 1` minus the leading run when the skeleton starts free. */
198
+ freeCount: number;
199
+ /**
200
+ * Opaque cache key (mirrors the skeleton's `id`) so the server can cache the
201
+ * tokenised form of the runs across turns when the structure is unchanged.
202
+ */
203
+ id?: string;
204
+ }
205
+ /**
206
+ * Compute the {@link ElizaPrefillPlan} for a response skeleton: walk the spans,
207
+ * accumulating consecutive `literal` spans (and single-value enums collapsed to
208
+ * literals) into deterministic byte runs and counting the free spans. Adjacent
209
+ * literals merge into one run. Returns `null` when the skeleton has no
210
+ * deterministic runs at all (nothing to prefill).
211
+ *
212
+ * Invariant the consumer relies on: concatenating the runs interleaved with the
213
+ * (eventually-sampled) free-span values, in order, reproduces a byte-identical
214
+ * JSON document to what the lazy GBNF from {@link compileSkeletonToGbnf} would
215
+ * have produced. The tests assert this.
216
+ */
217
+ export declare function compilePrefillPlan(skeletonInput: ResponseSkeleton, tokenize?: (text: string) => number[]): ElizaPrefillPlan | null;
218
+ /**
219
+ * Build the request-body fragment carrying the prefill plan. The server reads
220
+ * `eliza_prefill_plan` (a tolerant extension — old binaries ignore it and the
221
+ * grammar still forces the same bytes). Returns `{}` when there is no plan.
222
+ */
223
+ export declare function prefillPlanRequestFields(plan: ElizaPrefillPlan | null): Record<string, unknown>;
224
+ /**
225
+ * Build the request-body fragment carrying per-span sampler overrides. The
226
+ * fork-side llama-server reads `eliza_span_samplers` (a tolerant extension —
227
+ * old binaries ignore it; the grammar still constrains the same tokens, we
228
+ * just lose the per-span argmax determinism guarantee on the legacy path).
229
+ *
230
+ * Wire schema (snake_case for OpenAI body conventions):
231
+ * {
232
+ * overrides: [
233
+ * { span_index: number, temperature: number, top_k?: number, top_p?: number }
234
+ * ],
235
+ * strict?: boolean
236
+ * }
237
+ *
238
+ * Returns `{}` when there is no plan or no overrides — keep the wire surface
239
+ * narrow so a stock server never has to skip past empty fork extensions.
240
+ */
241
+ export declare function spanSamplerPlanRequestFields(plan: SpanSamplerPlan | undefined | null): Record<string, unknown>;
242
+ /**
243
+ * The compact, engine-facing descriptor for a structured output the agent loop
244
+ * wants forced. It is the bundle of (a) a {@link ResponseSkeleton} (which
245
+ * compiles to a lazy GBNF for the constrained-decode path), (b) the derived
246
+ * {@link ElizaPrefillPlan} (the deterministic-token short-circuit), and (c) the
247
+ * short-name ↔ long-name maps so the on-wire/decoded form uses canonical short
248
+ * action ids / enum values and the runtime expands them for the caller.
249
+ *
250
+ * Producers: `@elizaos/core` `buildPlannerActionGrammar` / `buildResponseGrammar`
251
+ * wrapped by {@link elizaHarnessSchemaFromSkeleton}. Consumer: the local engine
252
+ * (`ffi-streaming-backend.ts` / `engine.ts`).
253
+ */
254
+ export interface ElizaHarnessSchema {
255
+ /** Structure-forcing description; compiles to a lazy GBNF. */
256
+ skeleton: ResponseSkeleton;
257
+ /** Pre-built GBNF (wins over compiling the skeleton), when the producer made one. */
258
+ grammar?: string;
259
+ /** Deterministic-token short-circuit derived from the skeleton. */
260
+ prefillPlan: ElizaPrefillPlan | null;
261
+ /**
262
+ * Canonical short id → human-facing long name (display label), for any
263
+ * closed enum the descriptor pins (action ids, known enum values). The wire
264
+ * form is the short id; callers that want the long name look it up here.
265
+ * Empty when nothing needs expanding.
266
+ */
267
+ longNames: Record<string, string>;
268
+ /** Cache key (the skeleton's id). */
269
+ id?: string;
270
+ }
271
+ /**
272
+ * Wrap a {@link ResponseSkeleton} (+ optional pre-built grammar + name map)
273
+ * into an {@link ElizaHarnessSchema}, computing the prefill plan. This is the
274
+ * single place the prefill plan is derived so producers don't each reimplement
275
+ * it.
276
+ */
277
+ export declare function elizaHarnessSchemaFromSkeleton(input: {
278
+ skeleton: ResponseSkeleton;
279
+ grammar?: string;
280
+ longNames?: Record<string, string>;
281
+ tokenize?: (text: string) => number[];
282
+ }): ElizaHarnessSchema;
283
+ /**
284
+ * Expand a canonical short id decoded out of a constrained generation back to
285
+ * its human-facing long name (display label), using the descriptor's
286
+ * {@link ElizaHarnessSchema.longNames} map (sourced from the action catalog).
287
+ * Identity when there is no mapping — the canonical action ids
288
+ * (`normalizeActionName` results, e.g. `SEND_MESSAGE`) are already the on-wire
289
+ * form, so this is only meaningful when a producer registered a separate
290
+ * display label.
291
+ */
292
+ export declare function expandShortName(schema: ElizaHarnessSchema | undefined, shortId: string): string;
293
+ /**
294
+ * Invert {@link expandShortName}: given a (possibly long) name the caller
295
+ * supplied, return the canonical short id the wire form expects. Identity when
296
+ * the name is already a known short id or no mapping matches.
297
+ */
298
+ export declare function canonicalizeShortName(schema: ElizaHarnessSchema | undefined, name: string): string;
299
+ /**
300
+ * Resolve the GBNF + prefill plan + assistant-turn prefill to apply for a
301
+ * generation call given the structured params. Precedence for the grammar:
302
+ * an explicit `grammar` string, then a harness schema's `grammar`, then
303
+ * compiling the harness schema's / params' `responseSkeleton`. The prefill plan
304
+ * is only present when a harness schema is supplied (off by default).
305
+ */
306
+ export declare function resolveGuidedDecodeForParams(params: StructuredGenerateParams | undefined): {
307
+ grammar: GbnfGrammar | null;
308
+ prefillPlan: ElizaPrefillPlan | null;
309
+ prefill: string | null;
310
+ };
311
+ //# sourceMappingURL=structured-output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structured-output.d.ts","sourceRoot":"","sources":["../../src/services/structured-output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * System memory reader — the single source of "how much RAM can we actually
3
+ * allocate right now" for the local-inference memory arbiter and pressure
4
+ * sources.
5
+ *
6
+ * Node's `os.freemem()` returns the kernel's `MemFree` on Linux, which counts
7
+ * only never-touched pages and EXCLUDES reclaimable page cache + slab. On
8
+ * Android — where the app process runs under a large page cache — `MemFree`
9
+ * undercounts allocatable memory by gigabytes, so a `MemFree`-driven arbiter
10
+ * evicts models it didn't need to and refuses loads that would have fit.
11
+ *
12
+ * `/proc/meminfo`'s `MemAvailable` is the kernel's own estimate of how much
13
+ * memory is available for starting new applications without swapping (free +
14
+ * reclaimable cache/slab, minus the low watermark). That is exactly the number
15
+ * the arbiter wants. Read it on Linux/Android; fall back to `os.freemem()` /
16
+ * `os.totalmem()` everywhere else (macOS, Windows) or if `/proc/meminfo` is
17
+ * unreadable or pre-3.14 (no `MemAvailable`).
18
+ */
19
+ export interface SystemMemory {
20
+ freeBytes: number;
21
+ totalBytes: number;
22
+ }
23
+ /** Injectable for tests: returns the raw `/proc/meminfo` text, or null. */
24
+ export type MeminfoReader = () => string | null;
25
+ /**
26
+ * Read available + total system memory in bytes. Prefers `/proc/meminfo`
27
+ * `MemAvailable`/`MemTotal` on Linux; falls back to `os.freemem()/totalmem()`.
28
+ *
29
+ * @param read injectable meminfo reader (tests). Defaults to reading
30
+ * `/proc/meminfo` on Linux and returning null elsewhere.
31
+ */
32
+ export declare function readSystemMemory(read?: MeminfoReader): SystemMemory;
33
+ //# sourceMappingURL=system-memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-memory.d.ts","sourceRoot":"","sources":["../../src/services/system-memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,MAAM,WAAW,YAAY;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,2EAA2E;AAC3E,MAAM,MAAM,aAAa,GAAG,MAAM,MAAM,GAAG,IAAI,CAAC;AAmBhD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC/B,IAAI,GAAE,aAAoC,GACxC,YAAY,CAUd"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Local inference type re-exports.
3
+ *
4
+ * The canonical definitions live in `@elizaos/shared/local-inference`.
5
+ * This shim preserves the historical import path
6
+ * `../services/local-inference/types` for server-side code.
7
+ */
8
+ export { type ActiveModelState, AGENT_MODEL_SLOTS, type AgentModelSlot, type CatalogModel, type CatalogQuantizationId, type CatalogQuantizationMatrix, type CatalogQuantizationVariant, type CpuFeatureProbe, classifyCatalogModelRuntimeClass, classifyInstalledModelRuntimeClass, type DownloadEvent, type DownloadJob, type DownloadState, type GpuProfile, type GpuProfileId, type HardwareFitLevel, type HardwareProbe, type InstalledModel, type KvCacheType, type LocalInferenceDownloadStatus, type LocalInferenceReadiness, type LocalInferenceSlotReadiness, type LocalRuntimeAcceleration, type LocalRuntimeBackend, type LocalRuntimeKernel, type LocalRuntimeOptimizations, type MobileHardwareProbe, type ModelAssignments, type ModelBucket, type ModelCategory, type ModelHubSnapshot, type OpenVinoDeviceKind, type OpenVinoHardwareProbe, type RuntimeClass, TEXT_GENERATION_SLOTS, type TextGenerationSlot, type TokenizerFamily, withRuntimeClass, } from "@elizaos/shared";
9
+ /** RAM requirements for a model bundle. */
10
+ export interface RamBudget {
11
+ /** Minimum RAM the bundle will boot under, in megabytes. */
12
+ minMb: number;
13
+ /** RAM the bundle expects for nominal workloads, in megabytes. */
14
+ recommendedMb: number;
15
+ /** Where the numbers came from. `manifest` only when both came from
16
+ * a validated `eliza-1.manifest.json` next to the installed bundle. */
17
+ source: "manifest" | "catalog";
18
+ }
19
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/services/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACN,KAAK,gBAAgB,EACrB,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,eAAe,EACpB,gCAAgC,EAChC,kCAAkC,EAClC,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,gBAAgB,GAChB,MAAM,iBAAiB,CAAC;AAEzB,2CAA2C;AAC3C,MAAM,WAAW,SAAS;IACzB,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAC;IACtB;4EACwE;IACxE,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;CAC/B"}