@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,242 @@
1
+ /**
2
+ * Eliza-1 EOT scorer — reuses the already-loaded text model to compute
3
+ * P(`<|im_end|>` next | conversation_so_far) without shipping a separate
4
+ * detector ONNX.
5
+ *
6
+ * The runtime keeps a `LlamaModel` resident for chat generation. Voice
7
+ * EOT scoring is a single forward pass over the formatted Qwen chat
8
+ * prompt with the trailing `<|im_end|>` removed. `capacitor-llama`'s
9
+ * `LlamaContextSequence.controlledEvaluate()` returns the next-token
10
+ * probability distribution, so we simply read the entry for the
11
+ * `<|im_end|>` token id — no sampling loop, no KV-cache growth on the
12
+ * chat session.
13
+ *
14
+ * A dedicated `LlamaContext` is held just for this scorer so we do not
15
+ * fight the chat session pool for sequence slots. The context is small
16
+ * (single sequence, ≤512 tokens) and shares the model weights with the
17
+ * chat path; only the per-sequence KV cache is duplicated.
18
+ *
19
+ * Optionally a LoRA adapter is attached to that context — that is how
20
+ * a fine-tuned EOT head (trained per
21
+ * `packages/training/scripts/turn_detector/`) layers onto the same base
22
+ * weights without a separate GGUF.
23
+ */
24
+
25
+ import path from "node:path";
26
+
27
+ // `capacitor-llama` 3.18.1 surface we depend on. We avoid importing the
28
+ // type directly so the binding stays an optional peer dep — callers pass
29
+ // the model through a structural type.
30
+ export interface LlamaModelLike {
31
+ tokenize(text: string, specialTokens?: boolean): readonly number[];
32
+ createContext(options: {
33
+ contextSize?: number;
34
+ sequences?: number;
35
+ flashAttention?: boolean;
36
+ lora?: string | { adapters: Array<{ filePath: string; scale?: number }> };
37
+ }): Promise<LlamaContextLike>;
38
+ }
39
+
40
+ export interface LlamaContextLike {
41
+ getSequence(options?: object): LlamaContextSequenceLike;
42
+ dispose(): Promise<void>;
43
+ }
44
+
45
+ export interface LlamaContextSequenceLike {
46
+ clearHistory(): Promise<void>;
47
+ controlledEvaluate(
48
+ input: ControlledEvaluateInputLike[],
49
+ options?: { evaluationPriority?: number },
50
+ ): Promise<Array<ControlledEvaluateOutputLike | undefined>>;
51
+ }
52
+
53
+ export type ControlledEvaluateInputLike =
54
+ | number
55
+ | [
56
+ token: number,
57
+ options: {
58
+ generateNext?: {
59
+ probabilities?: boolean;
60
+ confidence?: boolean;
61
+ };
62
+ },
63
+ ];
64
+
65
+ export interface ControlledEvaluateOutputLike {
66
+ next: {
67
+ token?: number | null;
68
+ confidence?: number;
69
+ probabilities?: Map<number, number>;
70
+ };
71
+ }
72
+
73
+ const IM_END_TOKEN = "<|im_end|>";
74
+ const IM_START_USER_PREFIX = "<|im_start|>user\n";
75
+
76
+ export interface Eliza1EotScorerOptions {
77
+ /** The already-loaded text model (eliza-1 drafter). */
78
+ model: LlamaModelLike;
79
+ /** Optional EOT LoRA adapter path (absolute). When set, applied to the dedicated EOT context. */
80
+ loraPath?: string;
81
+ /** Adapter scale (default 1.0). Only meaningful when `loraPath` is set. */
82
+ loraScale?: number;
83
+ /** Max history tokens to keep in the prompt window. LiveKit uses 128. */
84
+ maxHistoryTokens?: number;
85
+ /** Context size for the dedicated EOT context. Default 512. */
86
+ contextSize?: number;
87
+ /** Model label for telemetry. */
88
+ modelLabel?: string;
89
+ }
90
+
91
+ export interface Eliza1EotScoreResult {
92
+ /** Probability of `<|im_end|>` as the next token, ∈ [0, 1]. */
93
+ probability: number;
94
+ /** Wall-clock model latency for this scoring call. */
95
+ latencyMs: number;
96
+ /** Number of prompt tokens evaluated. */
97
+ promptTokens: number;
98
+ }
99
+
100
+ /**
101
+ * Stateful EOT scorer bound to a single loaded text model. Lazily
102
+ * allocates its own dedicated `LlamaContext` on first call. Safe to
103
+ * keep across many voice turns; call `dispose()` on shutdown.
104
+ */
105
+ export class Eliza1EotScorer {
106
+ private readonly model: LlamaModelLike;
107
+ private readonly loraPath: string | undefined;
108
+ private readonly loraScale: number | undefined;
109
+ private readonly maxHistoryTokens: number;
110
+ private readonly contextSize: number;
111
+ readonly modelLabel: string;
112
+
113
+ private context: LlamaContextLike | null = null;
114
+ private sequence: LlamaContextSequenceLike | null = null;
115
+ private imEndTokenId: number | null = null;
116
+ private initPromise: Promise<void> | null = null;
117
+ /** Serializes concurrent calls — controlledEvaluate is not thread-safe per-sequence. */
118
+ private inflight: Promise<unknown> = Promise.resolve();
119
+
120
+ constructor(options: Eliza1EotScorerOptions) {
121
+ this.model = options.model;
122
+ this.loraPath = options.loraPath;
123
+ this.loraScale = options.loraScale;
124
+ this.maxHistoryTokens = options.maxHistoryTokens ?? 128;
125
+ this.contextSize = options.contextSize ?? 512;
126
+ this.modelLabel =
127
+ options.modelLabel ??
128
+ (this.loraPath
129
+ ? `eliza-1-drafter+eot-lora:${path.basename(this.loraPath)}`
130
+ : "eliza-1-drafter");
131
+ }
132
+
133
+ async score(partialTranscript: string): Promise<Eliza1EotScoreResult> {
134
+ await this.ensureReady();
135
+ const sequence = this.sequence;
136
+ const imEndId = this.imEndTokenId;
137
+ if (!sequence || imEndId === null) {
138
+ throw new Error("[voice] Eliza1EotScorer not initialized.");
139
+ }
140
+
141
+ const tokens = this.tokenizePrompt(partialTranscript);
142
+ const start = performance.now();
143
+ const next = this.inflight.then(() =>
144
+ this.runOnce(sequence, tokens, imEndId),
145
+ );
146
+ this.inflight = next.catch(() => undefined);
147
+ const probability = await next;
148
+ return {
149
+ probability,
150
+ latencyMs: performance.now() - start,
151
+ promptTokens: tokens.length,
152
+ };
153
+ }
154
+
155
+ async dispose(): Promise<void> {
156
+ const ctx = this.context;
157
+ this.context = null;
158
+ this.sequence = null;
159
+ this.imEndTokenId = null;
160
+ this.initPromise = null;
161
+ if (ctx) await ctx.dispose();
162
+ }
163
+
164
+ private async ensureReady(): Promise<void> {
165
+ if (this.context && this.sequence && this.imEndTokenId !== null) return;
166
+ if (!this.initPromise) this.initPromise = this.initialize();
167
+ await this.initPromise;
168
+ }
169
+
170
+ private async initialize(): Promise<void> {
171
+ const imEndIds = this.model.tokenize(IM_END_TOKEN, true);
172
+ if (imEndIds.length !== 1 || !Number.isInteger(imEndIds[0])) {
173
+ throw new Error(
174
+ `[voice] Eliza1EotScorer: model tokenizer did not resolve <|im_end|> to a single special token (got ${JSON.stringify(imEndIds)}). The base model must be Qwen-template compatible.`,
175
+ );
176
+ }
177
+ this.imEndTokenId = imEndIds[0];
178
+
179
+ const contextOptions: Parameters<LlamaModelLike["createContext"]>[0] = {
180
+ contextSize: this.contextSize,
181
+ sequences: 1,
182
+ flashAttention: true,
183
+ };
184
+ if (this.loraPath) {
185
+ contextOptions.lora = {
186
+ adapters: [
187
+ {
188
+ filePath: this.loraPath,
189
+ ...(this.loraScale !== undefined ? { scale: this.loraScale } : {}),
190
+ },
191
+ ],
192
+ };
193
+ }
194
+
195
+ this.context = await this.model.createContext(contextOptions);
196
+ this.sequence = this.context.getSequence();
197
+ }
198
+
199
+ private tokenizePrompt(transcript: string): number[] {
200
+ const formatted = formatEotPrompt(transcript);
201
+ const ids = this.model.tokenize(formatted, true);
202
+ if (ids.length <= this.maxHistoryTokens) return [...ids];
203
+ return [...ids.slice(ids.length - this.maxHistoryTokens)];
204
+ }
205
+
206
+ private async runOnce(
207
+ sequence: LlamaContextSequenceLike,
208
+ tokens: number[],
209
+ imEndId: number,
210
+ ): Promise<number> {
211
+ if (tokens.length === 0) return 0.5;
212
+ await sequence.clearHistory();
213
+ const input: ControlledEvaluateInputLike[] = tokens.map((tok, i) =>
214
+ i === tokens.length - 1
215
+ ? [tok, { generateNext: { probabilities: true } }]
216
+ : tok,
217
+ );
218
+ const out = await sequence.controlledEvaluate(input);
219
+ const last = out[tokens.length - 1];
220
+ const probs = last?.next.probabilities;
221
+ if (!probs) return 0.5;
222
+ const p = probs.get(imEndId);
223
+ if (typeof p !== "number" || !Number.isFinite(p)) return 0.5;
224
+ return Math.max(0, Math.min(1, p));
225
+ }
226
+ }
227
+
228
+ /**
229
+ * Format the partial transcript using the Qwen chat template, with the
230
+ * trailing `<|im_end|>` removed so the next predicted token *is* the
231
+ * EOT signal we want to measure.
232
+ *
233
+ * Matches the formatting LiveKit's turn-detector uses (single user turn,
234
+ * no system prompt, no generation prefix). When upstream history is
235
+ * available we can stack turns here, but the LiveKit recipe truncates
236
+ * to the last 128 tokens regardless, so a single user turn captures the
237
+ * relevant context for tier-1 EOT.
238
+ */
239
+ export function formatEotPrompt(transcript: string): string {
240
+ const cleaned = transcript.trim();
241
+ return `${IM_START_USER_PREFIX}${cleaned}`;
242
+ }
@@ -0,0 +1,200 @@
1
+ /**
2
+ * Lazy embedding `llama-server` sidecar for Eliza-1 bundles.
3
+ *
4
+ * The route resolver decides which GGUF backs embeddings. This class owns the
5
+ * process boundary: validate the GGUF at construction, start the sidecar only
6
+ * on first non-empty `embed()`, and return Matryoshka-truncated vectors.
7
+ */
8
+
9
+ import { type ChildProcess, spawn } from "node:child_process";
10
+ import { existsSync } from "node:fs";
11
+ import net from "node:net";
12
+ import os from "node:os";
13
+ import {
14
+ isValidEmbeddingDim,
15
+ type LocalEmbeddingRoute,
16
+ truncateMatryoshka,
17
+ } from "./embedding";
18
+ import { VoiceStartupError } from "./errors";
19
+
20
+ interface EmbeddingServerConfig {
21
+ /** GGUF the sidecar mmaps. For the dedicated-region mode this is the `embedding/` file. */
22
+ modelPath: string;
23
+ /** Extra `llama-server` flags — the route's `embeddingServerFlags` (`--embeddings --pooling last`). */
24
+ serverFlags: ReadonlyArray<string>;
25
+ /** GPU offload: `"auto"` (= all layers) for CPU/Vulkan/CUDA hosts, `0` to force CPU. */
26
+ gpuLayers?: number | "auto";
27
+ /** Thread count for the embedding forward pass. Defaults to the host's logical core count. */
28
+ threads?: number;
29
+ }
30
+
31
+ export class EmbeddingServer {
32
+ private readonly config: EmbeddingServerConfig;
33
+ private child: ChildProcess | null = null;
34
+ private baseUrl: string | null = null;
35
+ private starting: Promise<void> | null = null;
36
+
37
+ constructor(config: EmbeddingServerConfig) {
38
+ if (!existsSync(config.modelPath)) {
39
+ throw new VoiceStartupError(
40
+ "missing-bundle-root",
41
+ `[embedding-server] model GGUF not found at ${config.modelPath}`,
42
+ );
43
+ }
44
+ this.config = config;
45
+ }
46
+
47
+ isRunning(): boolean {
48
+ return this.child !== null && this.child.exitCode === null;
49
+ }
50
+
51
+ async embed(texts: string[], dim = 1024): Promise<number[][]> {
52
+ if (texts.length === 0) return [];
53
+ if (!isValidEmbeddingDim(dim)) {
54
+ throw new Error(`[embedding] dim ${dim} is not a valid Matryoshka width`);
55
+ }
56
+ await this.ensureStarted();
57
+ const response = await fetch(`${this.baseUrl}/v1/embeddings`, {
58
+ method: "POST",
59
+ headers: { "content-type": "application/json" },
60
+ body: JSON.stringify({ input: texts }),
61
+ });
62
+ if (!response.ok) {
63
+ const body = await response.text().catch(() => "");
64
+ throw new Error(
65
+ `[embedding-server] /v1/embeddings returned ${response.status}: ${body.slice(0, 200)}`,
66
+ );
67
+ }
68
+ const payload = (await response.json()) as {
69
+ data?: Array<{ embedding?: number[] }>;
70
+ };
71
+ const rows = payload.data ?? [];
72
+ if (rows.length !== texts.length) {
73
+ throw new Error(
74
+ `[embedding-server] expected ${texts.length} embedding rows, got ${rows.length}`,
75
+ );
76
+ }
77
+ return rows.map((row, index) => {
78
+ if (!Array.isArray(row.embedding)) {
79
+ throw new Error(
80
+ `[embedding-server] response row ${index} missing embedding vector`,
81
+ );
82
+ }
83
+ return truncateMatryoshka(row.embedding, dim);
84
+ });
85
+ }
86
+
87
+ private async ensureStarted(): Promise<void> {
88
+ if (this.isRunning()) return;
89
+ this.starting ??= this.start().finally(() => {
90
+ this.starting = null;
91
+ });
92
+ await this.starting;
93
+ }
94
+
95
+ private async start(): Promise<void> {
96
+ const port = await reserveTcpPort();
97
+ const binary =
98
+ process.env.ELIZA_LLAMA_SERVER_PATH?.trim() || "llama-server";
99
+ const args = [
100
+ "-m",
101
+ this.config.modelPath,
102
+ ...this.config.serverFlags,
103
+ "--host",
104
+ "127.0.0.1",
105
+ "--port",
106
+ String(port),
107
+ "--threads",
108
+ String(this.config.threads ?? Math.max(1, os.cpus().length)),
109
+ ];
110
+ if (typeof this.config.gpuLayers === "number") {
111
+ args.push("--n-gpu-layers", String(this.config.gpuLayers));
112
+ }
113
+
114
+ const child = spawn(binary, args, {
115
+ stdio: ["ignore", "pipe", "pipe"],
116
+ });
117
+ this.child = child;
118
+ this.baseUrl = `http://127.0.0.1:${port}`;
119
+
120
+ child.once("exit", (code, signal) => {
121
+ if (this.child === child) this.child = null;
122
+ if (code !== 0 && code !== null) {
123
+ console.warn(
124
+ `[embedding-server] llama-server exited with code ${code}`,
125
+ );
126
+ } else if (signal) {
127
+ console.warn(`[embedding-server] llama-server exited on ${signal}`);
128
+ }
129
+ });
130
+
131
+ await this.waitUntilReady();
132
+ }
133
+
134
+ private async waitUntilReady(): Promise<void> {
135
+ const deadline = Date.now() + 20_000;
136
+ while (Date.now() < deadline) {
137
+ if (!this.isRunning()) {
138
+ throw new VoiceStartupError(
139
+ "missing-fused-build",
140
+ "[embedding-server] llama-server exited before /health became ready",
141
+ );
142
+ }
143
+ try {
144
+ const response = await fetch(`${this.baseUrl}/health`);
145
+ if (response.ok) return;
146
+ } catch {
147
+ // Server socket is not open yet.
148
+ }
149
+ await new Promise((resolve) => setTimeout(resolve, 100));
150
+ }
151
+ throw new VoiceStartupError(
152
+ "missing-fused-build",
153
+ "[embedding-server] timed out waiting for llama-server /health",
154
+ );
155
+ }
156
+
157
+ async stop(): Promise<void> {
158
+ const child = this.child;
159
+ if (!child) return;
160
+ this.child = null;
161
+ await new Promise<void>((resolve) => {
162
+ child.once("exit", () => resolve());
163
+ child.kill("SIGTERM");
164
+ setTimeout(() => {
165
+ if (child.exitCode === null) child.kill("SIGKILL");
166
+ resolve();
167
+ }, 2_000).unref();
168
+ });
169
+ }
170
+ }
171
+
172
+ export function embeddingServerForRoute(
173
+ route: LocalEmbeddingRoute,
174
+ opts: { gpuLayers?: number | "auto"; threads?: number } = {},
175
+ ): EmbeddingServer {
176
+ const modelPath =
177
+ route.source.kind === "pooled-text"
178
+ ? route.source.textModelPath
179
+ : route.source.embeddingModelPath;
180
+ return new EmbeddingServer({
181
+ modelPath,
182
+ serverFlags: route.serverFlags,
183
+ gpuLayers: opts.gpuLayers,
184
+ threads: opts.threads,
185
+ });
186
+ }
187
+
188
+ async function reserveTcpPort(): Promise<number> {
189
+ return new Promise((resolve, reject) => {
190
+ const server = net.createServer();
191
+ server.once("error", reject);
192
+ server.listen(0, "127.0.0.1", () => {
193
+ const address = server.address();
194
+ server.close(() => {
195
+ if (address && typeof address === "object") resolve(address.port);
196
+ else reject(new Error("[embedding-server] failed to reserve TCP port"));
197
+ });
198
+ });
199
+ });
200
+ }
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Local embedding wiring for Eliza-1 bundles.
3
+ *
4
+ * Per `packages/inference/AGENTS.md` §1:
5
+ * - On the `2b` tier (the entry/floor tier) the **embedding model IS the
6
+ * text backbone**, served with `--pooling last` — there is no separate
7
+ * `embedding/` GGUF and no duplicate parameters on the entry tier.
8
+ * - On `4b` and larger tiers, a dedicated
9
+ * `embedding/` GGUF region (Apache-2.0,
10
+ * 1024-dim Matryoshka, 32k ctx) is acquired lazily through the same
11
+ * engine / `SharedResourceRegistry`. **Do not collapse it to pooled
12
+ * text on the larger tiers** — that breaks the 1024-dim Matryoshka
13
+ * contract (B1's verdict).
14
+ *
15
+ * This module is a pure resolver: given a bundle root + tier id it
16
+ * describes *where* embeddings come from (the text GGUF with a pooling
17
+ * flag, or a separate region file) without doing any I/O beyond an
18
+ * `existsSync`. The engine consumes the descriptor to mount the region
19
+ * and the local-embedding route. It also owns the Matryoshka-truncation
20
+ * helper that callers / the vector store use to trade dimensionality for
21
+ * storage (see `EMBEDDING_MATRYOSHKA_DIMS` + `truncateMatryoshka`).
22
+ */
23
+ import type { Eliza1TierId } from "../catalog";
24
+ /** Bundle-relative directory holding a dedicated embedding GGUF (larger tiers). */
25
+ export declare const EMBEDDING_DIR_REL_PATH = "embedding";
26
+ /** Full output dimensionality of the Eliza-1 embedding model. */
27
+ export declare const EMBEDDING_FULL_DIM: 1024;
28
+ /**
29
+ * Valid Matryoshka truncation points for the Eliza-1 embedding region. The model
30
+ * is trained so that the leading N components of the 1024-dim vector are
31
+ * themselves a usable embedding at these widths; quality degrades
32
+ * gracefully as N shrinks (see the tradeoff table in
33
+ * `reports/porting/2026-05-11/embedding-model-review.md`).
34
+ *
35
+ * 1024 (full) → 768 → 512 → 256 → 128 → 64. Smaller widths than 64 are
36
+ * not part of the published contract.
37
+ */
38
+ export declare const EMBEDDING_MATRYOSHKA_DIMS: readonly number[];
39
+ /** Type-narrow guard for `EMBEDDING_MATRYOSHKA_DIMS`. */
40
+ export declare function isValidEmbeddingDim(dim: number): boolean;
41
+ /**
42
+ * Truncate a full 1024-dim embedding to one of the Matryoshka widths and
43
+ * L2-renormalize. Renormalization matters: the dedicated embedding outputs are
44
+ * unit-norm at 1024 dims, but the leading slice is *not* unit-norm, and
45
+ * downstream cosine-similarity / dot-product retrieval assumes unit
46
+ * vectors.
47
+ *
48
+ * Throws on an invalid `dim` (must be one of `EMBEDDING_MATRYOSHKA_DIMS`)
49
+ * or when `vec` is shorter than `dim` — no silent truncation-to-whatever
50
+ * or zero-padding (Commandment 8: don't hide a broken pipeline).
51
+ */
52
+ export declare function truncateMatryoshka(vec: readonly number[], dim: number): number[];
53
+ export type LocalEmbeddingSource = {
54
+ /** `2b` (entry tier): reuse the text backbone GGUF; serve with `--pooling last`. */
55
+ readonly kind: "pooled-text";
56
+ readonly textModelPath: string;
57
+ readonly poolingType: "last";
58
+ } | {
59
+ /** Larger tiers: a dedicated `embedding/<name>.gguf` region. */
60
+ readonly kind: "dedicated-region";
61
+ readonly embeddingModelPath: string;
62
+ /** 1024-dim Matryoshka (the published Eliza-1 embedding contract). */
63
+ readonly dimensions: typeof EMBEDDING_FULL_DIM;
64
+ /**
65
+ * The dedicated model already ships a contrastive `last`-token
66
+ * pooling head — `--pooling last` is still passed so llama-server
67
+ * doesn't fall back to the GGUF's metadata default (which for a raw
68
+ * Qwen3 base is `mean`). The model's own pooling layer dominates;
69
+ * this just pins the read.
70
+ */
71
+ readonly poolingType: "last";
72
+ };
73
+ /**
74
+ * Tiers whose embedding model is the text backbone with `--pooling last`
75
+ * (no separate GGUF). The default mobile tiers deliberately avoid duplicate
76
+ * parameters; larger tiers may use a dedicated embedding region.
77
+ */
78
+ export declare const POOLED_TEXT_EMBEDDING_TIERS: ReadonlySet<Eliza1TierId>;
79
+ /**
80
+ * Resolve the embedding source for an activated Eliza-1 bundle.
81
+ *
82
+ * @param bundleRoot Bundle directory on disk.
83
+ * @param tierId The Eliza-1 tier id (`eliza-1-2b`, ...).
84
+ * @param textModelPath Absolute path of the activated text GGUF (needed for
85
+ * the `pooled-text` case).
86
+ *
87
+ * Hard-fails (AGENTS.md §3) when a larger tier is missing its
88
+ * `embedding/` region — no silent fallback to pooled text, which would
89
+ * regress dimensions from 1024 to whatever the text model emits.
90
+ */
91
+ export declare function resolveLocalEmbeddingSource(args: {
92
+ bundleRoot: string;
93
+ tierId: Eliza1TierId;
94
+ textModelPath: string;
95
+ }): LocalEmbeddingSource;
96
+ /**
97
+ * Descriptor for the local-embedding route the engine exposes. The
98
+ * route's job is `text[] → number[dim][]`; the runtime mounts the source
99
+ * (pooled text or dedicated region) and forwards. Kept as a plain data
100
+ * shape so both the API layer and tests can assert it without standing up
101
+ * a server.
102
+ */
103
+ export interface LocalEmbeddingRoute {
104
+ readonly tierId: Eliza1TierId;
105
+ readonly source: LocalEmbeddingSource;
106
+ /** Full output dimensionality the route produces before truncation. 1024 on every tier. */
107
+ readonly dimensions: typeof EMBEDDING_FULL_DIM;
108
+ /**
109
+ * Default Matryoshka width the route returns when a caller does not ask
110
+ * for a smaller `dim`. Always 1024 (= `dimensions`) — callers/the vector
111
+ * store opt into a smaller width for storage savings.
112
+ */
113
+ readonly defaultDim: number;
114
+ /** The Matryoshka widths a caller may request. */
115
+ readonly matryoshkaDims: readonly number[];
116
+ /**
117
+ * `llama-server` flags for the embedding server process — always
118
+ * `--embeddings --pooling last`. The embedding server is a lazily-started
119
+ * sidecar over the route's GGUF (the text backbone on the `2b` entry tier,
120
+ * the `embedding/` GGUF on larger tiers); see `embedding-server.ts`. The
121
+ * chat `llama-server` is left untouched (completions-only) — these flags
122
+ * do NOT go on it.
123
+ */
124
+ readonly serverFlags: ReadonlyArray<string>;
125
+ }
126
+ export declare function buildLocalEmbeddingRoute(args: {
127
+ bundleRoot: string;
128
+ tierId: Eliza1TierId;
129
+ textModelPath: string;
130
+ /** Default output width; must be one of `EMBEDDING_MATRYOSHKA_DIMS`. Defaults to 1024. */
131
+ defaultDim?: number;
132
+ }): LocalEmbeddingRoute;
133
+ //# sourceMappingURL=embedding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["embedding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,mFAAmF;AACnF,eAAO,MAAM,sBAAsB,cAAc,CAAC;AAElD,iEAAiE;AACjE,eAAO,MAAM,kBAAkB,EAAG,IAAa,CAAC;AAEhD;;;;;;;;;GASG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAEtD,CAAC;AAEF,yDAAyD;AACzD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CACjC,GAAG,EAAE,SAAS,MAAM,EAAE,EACtB,GAAG,EAAE,MAAM,GACT,MAAM,EAAE,CAiBV;AAYD,MAAM,MAAM,oBAAoB,GAC7B;IACA,oFAAoF;IACpF,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC5B,GACD;IACA,gEAAgE;IAChE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,sEAAsE;IACtE,QAAQ,CAAC,UAAU,EAAE,OAAO,kBAAkB,CAAC;IAC/C;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC5B,CAAC;AAaL;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,EAAE,WAAW,CAAC,YAAY,CAEhE,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,YAAY,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACtB,GAAG,oBAAoB,CA4BvB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,2FAA2F;IAC3F,QAAQ,CAAC,UAAU,EAAE,OAAO,kBAAkB,CAAC;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,kDAAkD;IAClD,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC5C;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,YAAY,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,0FAA0F;IAC1F,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,mBAAmB,CAoBtB"}