@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.
- package/LICENSE +21 -0
- package/README.md +157 -0
- package/dist/actions/generate-media.d.ts +59 -0
- package/dist/actions/generate-media.d.ts.map +1 -0
- package/dist/actions/identify-speaker.d.ts +23 -0
- package/dist/actions/identify-speaker.d.ts.map +1 -0
- package/dist/actions/transcription-control.d.ts +29 -0
- package/dist/actions/transcription-control.d.ts.map +1 -0
- package/dist/adapters/capacitor-llama/environment.d.ts +12 -0
- package/dist/adapters/capacitor-llama/environment.d.ts.map +1 -0
- package/dist/adapters/capacitor-llama/index.browser.d.ts +9 -0
- package/dist/adapters/capacitor-llama/index.browser.d.ts.map +1 -0
- package/dist/adapters/capacitor-llama/index.d.ts +18 -0
- package/dist/adapters/capacitor-llama/index.d.ts.map +1 -0
- package/dist/adapters/capacitor-llama/loader.d.ts +35 -0
- package/dist/adapters/capacitor-llama/loader.d.ts.map +1 -0
- package/dist/adapters/capacitor-llama/native-voice-capture.d.ts +70 -0
- package/dist/adapters/capacitor-llama/native-voice-capture.d.ts.map +1 -0
- package/dist/adapters/capacitor-llama/structured-output.d.ts +62 -0
- package/dist/adapters/capacitor-llama/structured-output.d.ts.map +1 -0
- package/dist/adapters/capacitor-llama/text-streaming.d.ts +24 -0
- package/dist/adapters/capacitor-llama/text-streaming.d.ts.map +1 -0
- package/dist/adapters/capacitor-llama/types.d.ts +338 -0
- package/dist/adapters/capacitor-llama/types.d.ts.map +1 -0
- package/dist/adapters/capacitor-llama/voice-turn.d.ts +86 -0
- package/dist/adapters/capacitor-llama/voice-turn.d.ts.map +1 -0
- package/dist/backends/apple-foundation.d.ts +56 -0
- package/dist/backends/apple-foundation.d.ts.map +1 -0
- package/dist/index.d.ts +8 -37
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +38979 -430
- package/dist/index.js.map +217 -0
- package/dist/local-inference-routes.d.ts +47 -0
- package/dist/local-inference-routes.d.ts.map +1 -0
- package/dist/provider.d.ts +21 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/routes/compat-helpers.d.ts +18 -0
- package/dist/routes/compat-helpers.d.ts.map +1 -0
- package/dist/routes/family-member-route.d.ts +62 -0
- package/dist/routes/family-member-route.d.ts.map +1 -0
- package/dist/routes/index.d.ts +20 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +42040 -0
- package/dist/routes/index.js.map +236 -0
- package/dist/routes/live-diarization-route.d.ts +33 -0
- package/dist/routes/live-diarization-route.d.ts.map +1 -0
- package/dist/routes/local-inference-asr-route.d.ts +4 -0
- package/dist/routes/local-inference-asr-route.d.ts.map +1 -0
- package/dist/routes/local-inference-asr-transcribe.d.ts +20 -0
- package/dist/routes/local-inference-asr-transcribe.d.ts.map +1 -0
- package/dist/routes/local-inference-compat-routes.d.ts +16 -0
- package/dist/routes/local-inference-compat-routes.d.ts.map +1 -0
- package/dist/routes/local-inference-tts-route.d.ts +7 -0
- package/dist/routes/local-inference-tts-route.d.ts.map +1 -0
- package/dist/routes/native-pcm-turn-route.d.ts +3 -0
- package/dist/routes/native-pcm-turn-route.d.ts.map +1 -0
- package/dist/routes/transcript-audio-store.d.ts +15 -0
- package/dist/routes/transcript-audio-store.d.ts.map +1 -0
- package/dist/routes/transcripts-routes.d.ts +44 -0
- package/dist/routes/transcripts-routes.d.ts.map +1 -0
- package/dist/routes/voice-first-run-routes.d.ts +62 -0
- package/dist/routes/voice-first-run-routes.d.ts.map +1 -0
- package/dist/routes/voice-models-routes.d.ts +62 -0
- package/dist/routes/voice-models-routes.d.ts.map +1 -0
- package/dist/routes/voice-profile-plugin-routes.d.ts +19 -0
- package/dist/routes/voice-profile-plugin-routes.d.ts.map +1 -0
- package/dist/routes/voice-profiles-management-routes.d.ts +52 -0
- package/dist/routes/voice-profiles-management-routes.d.ts.map +1 -0
- package/dist/routes/voice-speaker-profile-routes.d.ts +57 -0
- package/dist/routes/voice-speaker-profile-routes.d.ts.map +1 -0
- package/dist/runtime/embedding-manager-support.d.ts +77 -0
- package/dist/runtime/embedding-manager-support.d.ts.map +1 -0
- package/dist/runtime/embedding-presets.d.ts +16 -0
- package/dist/runtime/embedding-presets.d.ts.map +1 -0
- package/dist/runtime/embedding-warmup-policy.d.ts +14 -0
- package/dist/runtime/embedding-warmup-policy.d.ts.map +1 -0
- package/dist/runtime/ensure-local-inference-handler.d.ts +70 -0
- package/dist/runtime/ensure-local-inference-handler.d.ts.map +1 -0
- package/dist/runtime/index.d.ts +15 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +38768 -0
- package/dist/runtime/index.js.map +217 -0
- package/dist/runtime/mobile-local-inference-gate.d.ts +63 -0
- package/dist/runtime/mobile-local-inference-gate.d.ts.map +1 -0
- package/dist/runtime/voice-entity-binding.d.ts +113 -0
- package/dist/runtime/voice-entity-binding.d.ts.map +1 -0
- package/dist/services/active-model.d.ts +310 -0
- package/dist/services/active-model.d.ts.map +1 -0
- package/dist/services/asr-provenance.d.ts +5 -0
- package/dist/services/asr-provenance.d.ts.map +1 -0
- package/dist/services/assignments.d.ts +84 -0
- package/dist/services/assignments.d.ts.map +1 -0
- package/dist/services/backend-selector.d.ts +55 -0
- package/dist/services/backend-selector.d.ts.map +1 -0
- package/dist/services/backend.d.ts +440 -0
- package/dist/services/backend.d.ts.map +1 -0
- package/dist/services/bionic-host-loader.d.ts +67 -0
- package/dist/services/bionic-host-loader.d.ts.map +1 -0
- package/dist/services/bundled-models.d.ts +34 -0
- package/dist/services/bundled-models.d.ts.map +1 -0
- package/dist/services/cache-bridge.d.ts +206 -0
- package/dist/services/cache-bridge.d.ts.map +1 -0
- package/dist/services/catalog.d.ts +10 -0
- package/dist/services/catalog.d.ts.map +1 -0
- package/dist/services/checkpoint-client.d.ts +109 -0
- package/dist/services/checkpoint-client.d.ts.map +1 -0
- package/dist/services/checkpoint-manager.d.ts +217 -0
- package/dist/services/checkpoint-manager.d.ts.map +1 -0
- package/dist/services/cloud-fallback.d.ts +102 -0
- package/dist/services/cloud-fallback.d.ts.map +1 -0
- package/dist/services/context-fit.d.ts +36 -0
- package/dist/services/context-fit.d.ts.map +1 -0
- package/dist/services/conversation-registry.d.ts +142 -0
- package/dist/services/conversation-registry.d.ts.map +1 -0
- package/dist/services/desktop-fused-ffi-backend-runtime.d.ts +111 -0
- package/dist/services/desktop-fused-ffi-backend-runtime.d.ts.map +1 -0
- package/dist/services/device-bridge.d.ts +188 -0
- package/dist/services/device-bridge.d.ts.map +1 -0
- package/dist/services/device-resource-metrics.d.ts +149 -0
- package/dist/services/device-resource-metrics.d.ts.map +1 -0
- package/dist/services/device-tier.d.ts +133 -0
- package/dist/services/device-tier.d.ts.map +1 -0
- package/dist/services/downloader.d.ts +94 -0
- package/dist/services/downloader.d.ts.map +1 -0
- package/dist/services/engine.d.ts +579 -0
- package/dist/services/engine.d.ts.map +1 -0
- package/dist/services/ensure-local-artifacts.d.ts +82 -0
- package/dist/services/ensure-local-artifacts.d.ts.map +1 -0
- package/dist/services/external-scanner.d.ts +17 -0
- package/dist/services/external-scanner.d.ts.map +1 -0
- package/dist/services/ffi-llm-mock.d.ts +90 -0
- package/dist/services/ffi-llm-mock.d.ts.map +1 -0
- package/dist/services/ffi-llm-streaming-abi.d.ts +318 -0
- package/dist/services/ffi-llm-streaming-abi.d.ts.map +1 -0
- package/dist/services/ffi-streaming-backend.d.ts +201 -0
- package/dist/services/ffi-streaming-backend.d.ts.map +1 -0
- package/dist/services/ffi-streaming-runner.d.ts +146 -0
- package/dist/services/ffi-streaming-runner.d.ts.map +1 -0
- package/dist/services/gpu-autotune.d.ts +150 -0
- package/dist/services/gpu-autotune.d.ts.map +1 -0
- package/dist/services/gpu-detect.d.ts +56 -0
- package/dist/services/gpu-detect.d.ts.map +1 -0
- package/dist/services/handler-registry.d.ts +72 -0
- package/dist/services/handler-registry.d.ts.map +1 -0
- package/dist/services/hardware.d.ts +63 -0
- package/dist/services/hardware.d.ts.map +1 -0
- package/dist/services/image-description-runtime.d.ts +14 -0
- package/dist/services/image-description-runtime.d.ts.map +1 -0
- package/dist/services/imagegen/aosp-unavailable.d.ts +134 -0
- package/dist/services/imagegen/aosp-unavailable.d.ts.map +1 -0
- package/dist/services/imagegen/backend-selector.d.ts +118 -0
- package/dist/services/imagegen/backend-selector.d.ts.map +1 -0
- package/dist/services/imagegen/coreml-unavailable.d.ts +105 -0
- package/dist/services/imagegen/coreml-unavailable.d.ts.map +1 -0
- package/dist/services/imagegen/errors.d.ts +16 -0
- package/dist/services/imagegen/errors.d.ts.map +1 -0
- package/dist/services/imagegen/index.d.ts +58 -0
- package/dist/services/imagegen/index.d.ts.map +1 -0
- package/dist/services/imagegen/mflux.d.ts +74 -0
- package/dist/services/imagegen/mflux.d.ts.map +1 -0
- package/dist/services/imagegen/sd-cpp.d.ts +181 -0
- package/dist/services/imagegen/sd-cpp.d.ts.map +1 -0
- package/dist/services/imagegen/tensorrt-unavailable.d.ts +83 -0
- package/dist/services/imagegen/tensorrt-unavailable.d.ts.map +1 -0
- package/dist/services/imagegen/types.d.ts +181 -0
- package/dist/services/imagegen/types.d.ts.map +1 -0
- package/dist/services/index.d.ts +31 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +39453 -0
- package/dist/services/index.js.map +227 -0
- package/dist/services/inference-capabilities.d.ts +132 -0
- package/dist/services/inference-capabilities.d.ts.map +1 -0
- package/dist/services/inference-telemetry.d.ts +59 -0
- package/dist/services/inference-telemetry.d.ts.map +1 -0
- package/dist/services/ios-llama-streaming.d.ts +119 -0
- package/dist/services/ios-llama-streaming.d.ts.map +1 -0
- package/dist/services/kv-spill.d.ts +189 -0
- package/dist/services/kv-spill.d.ts.map +1 -0
- package/dist/services/latency-trace.d.ts +346 -0
- package/dist/services/latency-trace.d.ts.map +1 -0
- package/dist/services/lib-target.d.ts +55 -0
- package/dist/services/lib-target.d.ts.map +1 -0
- package/dist/services/live-signals.d.ts +86 -0
- package/dist/services/live-signals.d.ts.map +1 -0
- package/dist/services/llama-server-metrics.d.ts +114 -0
- package/dist/services/llama-server-metrics.d.ts.map +1 -0
- package/dist/services/llm-streaming-binding.d.ts +96 -0
- package/dist/services/llm-streaming-binding.d.ts.map +1 -0
- package/dist/services/load-args.d.ts +82 -0
- package/dist/services/load-args.d.ts.map +1 -0
- package/dist/services/manifest/index.d.ts +4 -0
- package/dist/services/manifest/index.d.ts.map +1 -0
- package/dist/services/manifest/schema.d.ts +903 -0
- package/dist/services/manifest/schema.d.ts.map +1 -0
- package/dist/services/manifest/types.d.ts +32 -0
- package/dist/services/manifest/types.d.ts.map +1 -0
- package/dist/services/manifest/validator.d.ts +66 -0
- package/dist/services/manifest/validator.d.ts.map +1 -0
- package/dist/services/memory-arbiter.d.ts +348 -0
- package/dist/services/memory-arbiter.d.ts.map +1 -0
- package/dist/services/memory-benchmark.d.ts +76 -0
- package/dist/services/memory-benchmark.d.ts.map +1 -0
- package/dist/services/memory-monitor.d.ts +128 -0
- package/dist/services/memory-monitor.d.ts.map +1 -0
- package/dist/services/memory-pressure.d.ts +130 -0
- package/dist/services/memory-pressure.d.ts.map +1 -0
- package/dist/services/mtp-doctor.d.ts +13 -0
- package/dist/services/mtp-doctor.d.ts.map +1 -0
- package/dist/services/network-policy.d.ts +127 -0
- package/dist/services/network-policy.d.ts.map +1 -0
- package/dist/services/paths.d.ts +6 -0
- package/dist/services/paths.d.ts.map +1 -0
- package/dist/services/planner-skeleton.d.ts +124 -0
- package/dist/services/planner-skeleton.d.ts.map +1 -0
- package/dist/services/providers.d.ts +38 -0
- package/dist/services/providers.d.ts.map +1 -0
- package/dist/services/ram-budget.d.ts +110 -0
- package/dist/services/ram-budget.d.ts.map +1 -0
- package/dist/services/readiness.d.ts +9 -0
- package/dist/services/readiness.d.ts.map +1 -0
- package/dist/services/recommendation.d.ts +111 -0
- package/dist/services/recommendation.d.ts.map +1 -0
- package/dist/services/registry.d.ts +33 -0
- package/dist/services/registry.d.ts.map +1 -0
- package/dist/services/router-handler.d.ts +92 -0
- package/dist/services/router-handler.d.ts.map +1 -0
- package/dist/services/routing-policy.d.ts +92 -0
- package/dist/services/routing-policy.d.ts.map +1 -0
- package/dist/services/routing-preferences.d.ts +8 -0
- package/dist/services/routing-preferences.d.ts.map +1 -0
- package/dist/services/runtime-target.d.ts +98 -0
- package/dist/services/runtime-target.d.ts.map +1 -0
- package/dist/services/service.d.ts +128 -0
- package/dist/services/service.d.ts.map +1 -0
- package/dist/services/session-pool.d.ts +72 -0
- package/dist/services/session-pool.d.ts.map +1 -0
- package/dist/services/structured-output/deterministic-repair.d.ts +23 -0
- package/dist/services/structured-output/deterministic-repair.d.ts.map +1 -0
- package/dist/services/structured-output/index.d.ts +2 -0
- package/dist/services/structured-output/index.d.ts.map +1 -0
- package/dist/services/structured-output.d.ts +311 -0
- package/dist/services/structured-output.d.ts.map +1 -0
- package/dist/services/system-memory.d.ts +33 -0
- package/dist/services/system-memory.d.ts.map +1 -0
- package/dist/services/types.d.ts +19 -0
- package/dist/services/types.d.ts.map +1 -0
- package/dist/services/verify-on-device.d.ts +34 -0
- package/dist/services/verify-on-device.d.ts.map +1 -0
- package/dist/services/verify.d.ts +8 -0
- package/dist/services/verify.d.ts.map +1 -0
- package/dist/services/vision/aosp-unavailable.d.ts +115 -0
- package/dist/services/vision/aosp-unavailable.d.ts.map +1 -0
- package/dist/services/vision/capacitor-llama.d.ts +99 -0
- package/dist/services/vision/capacitor-llama.d.ts.map +1 -0
- package/dist/services/vision/cloud-fallback.d.ts +47 -0
- package/dist/services/vision/cloud-fallback.d.ts.map +1 -0
- package/dist/services/vision/hash.d.ts +71 -0
- package/dist/services/vision/hash.d.ts.map +1 -0
- package/dist/services/vision/index.d.ts +95 -0
- package/dist/services/vision/index.d.ts.map +1 -0
- package/dist/services/vision/llama-server.d.ts +73 -0
- package/dist/services/vision/llama-server.d.ts.map +1 -0
- package/dist/services/vision/types.d.ts +162 -0
- package/dist/services/vision/types.d.ts.map +1 -0
- package/dist/services/vision/vast-fallback.d.ts +18 -0
- package/dist/services/vision/vast-fallback.d.ts.map +1 -0
- package/dist/services/vision-embedding-cache.d.ts +98 -0
- package/dist/services/vision-embedding-cache.d.ts.map +1 -0
- package/dist/services/voice/__test-helpers__/fake-ffi.d.ts +27 -0
- package/dist/services/voice/__test-helpers__/fake-ffi.d.ts.map +1 -0
- package/dist/services/voice/__test-helpers__/synthetic-speech.d.ts +66 -0
- package/dist/services/voice/__test-helpers__/synthetic-speech.d.ts.map +1 -0
- package/dist/services/voice/acoustic-speaker-attribution.d.ts +61 -0
- package/dist/services/voice/acoustic-speaker-attribution.d.ts.map +1 -0
- package/dist/services/voice/audio-frame-consumer.d.ts +294 -0
- package/dist/services/voice/audio-frame-consumer.d.ts.map +1 -0
- package/dist/services/voice/barge-in.d.ts +112 -0
- package/dist/services/voice/barge-in.d.ts.map +1 -0
- package/dist/services/voice/cancellation-coordinator.d.ts +127 -0
- package/dist/services/voice/cancellation-coordinator.d.ts.map +1 -0
- package/dist/services/voice/checkpoint-manager.d.ts +199 -0
- package/dist/services/voice/checkpoint-manager.d.ts.map +1 -0
- package/dist/services/voice/checkpoint-policy.d.ts +178 -0
- package/dist/services/voice/checkpoint-policy.d.ts.map +1 -0
- package/dist/services/voice/corpus-augment.d.ts +111 -0
- package/dist/services/voice/corpus-augment.d.ts.map +1 -0
- package/dist/services/voice/corpus-generator.d.ts +134 -0
- package/dist/services/voice/corpus-generator.d.ts.map +1 -0
- package/dist/services/voice/diarization-error-rate.d.ts +40 -0
- package/dist/services/voice/diarization-error-rate.d.ts.map +1 -0
- package/dist/services/voice/e2e-harness.d.ts +297 -0
- package/dist/services/voice/e2e-harness.d.ts.map +1 -0
- package/dist/services/voice/eager-context-builder.d.ts +170 -0
- package/dist/services/voice/eager-context-builder.d.ts.map +1 -0
- package/dist/services/voice/echo-delay.d.ts +67 -0
- package/dist/services/voice/echo-delay.d.ts.map +1 -0
- package/dist/services/voice/echo-metrics.d.ts +7 -0
- package/dist/services/voice/echo-metrics.d.ts.map +1 -0
- package/dist/services/voice/echo-reference-buffer.d.ts +65 -0
- package/dist/services/voice/echo-reference-buffer.d.ts.map +1 -0
- package/dist/services/voice/eliza1-eot-scorer.d.ts +124 -0
- package/dist/services/voice/eliza1-eot-scorer.d.ts.map +1 -0
- package/dist/services/voice/embedding-server.d.ts +37 -0
- package/dist/services/voice/embedding-server.d.ts.map +1 -0
- package/dist/services/voice/embedding.d.ts +132 -0
- package/dist/services/voice/embedding.d.ts.map +1 -0
- package/dist/services/voice/emotion-attribution.d.ts +68 -0
- package/dist/services/voice/emotion-attribution.d.ts.map +1 -0
- package/dist/services/voice/engine-bridge.d.ts +762 -0
- package/dist/services/voice/engine-bridge.d.ts.map +1 -0
- package/dist/services/voice/eot-classifier-ggml.d.ts +179 -0
- package/dist/services/voice/eot-classifier-ggml.d.ts.map +1 -0
- package/dist/services/voice/eot-classifier.d.ts +211 -0
- package/dist/services/voice/eot-classifier.d.ts.map +1 -0
- package/dist/services/voice/errors.d.ts +20 -0
- package/dist/services/voice/errors.d.ts.map +1 -0
- package/dist/services/voice/expressive-tags.d.ts +158 -0
- package/dist/services/voice/expressive-tags.d.ts.map +1 -0
- package/dist/services/voice/ffi-bindings.d.ts +696 -0
- package/dist/services/voice/ffi-bindings.d.ts.map +1 -0
- package/dist/services/voice/first-line-cache.d.ts +181 -0
- package/dist/services/voice/first-line-cache.d.ts.map +1 -0
- package/dist/services/voice/fused-eot-scorer.d.ts +51 -0
- package/dist/services/voice/fused-eot-scorer.d.ts.map +1 -0
- package/dist/services/voice/index.d.ts +96 -0
- package/dist/services/voice/index.d.ts.map +1 -0
- package/dist/services/voice/kokoro/index.d.ts +24 -0
- package/dist/services/voice/kokoro/index.d.ts.map +1 -0
- package/dist/services/voice/kokoro/kokoro-backend.d.ts +87 -0
- package/dist/services/voice/kokoro/kokoro-backend.d.ts.map +1 -0
- package/dist/services/voice/kokoro/kokoro-engine-discovery.d.ts +58 -0
- package/dist/services/voice/kokoro/kokoro-engine-discovery.d.ts.map +1 -0
- package/dist/services/voice/kokoro/kokoro-ffi-runtime.d.ts +75 -0
- package/dist/services/voice/kokoro/kokoro-ffi-runtime.d.ts.map +1 -0
- package/dist/services/voice/kokoro/kokoro-runtime.d.ts +100 -0
- package/dist/services/voice/kokoro/kokoro-runtime.d.ts.map +1 -0
- package/dist/services/voice/kokoro/phoneme-stream.d.ts +51 -0
- package/dist/services/voice/kokoro/phoneme-stream.d.ts.map +1 -0
- package/dist/services/voice/kokoro/phonemizer.d.ts +50 -0
- package/dist/services/voice/kokoro/phonemizer.d.ts.map +1 -0
- package/dist/services/voice/kokoro/pick-runtime.d.ts +61 -0
- package/dist/services/voice/kokoro/pick-runtime.d.ts.map +1 -0
- package/dist/services/voice/kokoro/runtime-selection.d.ts +31 -0
- package/dist/services/voice/kokoro/runtime-selection.d.ts.map +1 -0
- package/dist/services/voice/kokoro/types.d.ts +82 -0
- package/dist/services/voice/kokoro/types.d.ts.map +1 -0
- package/dist/services/voice/kokoro/voice-presets.d.ts +23 -0
- package/dist/services/voice/kokoro/voice-presets.d.ts.map +1 -0
- package/dist/services/voice/kokoro/voices.d.ts +30 -0
- package/dist/services/voice/kokoro/voices.d.ts.map +1 -0
- package/dist/services/voice/lifecycle.d.ts +135 -0
- package/dist/services/voice/lifecycle.d.ts.map +1 -0
- package/dist/services/voice/live-diarization-session.d.ts +196 -0
- package/dist/services/voice/live-diarization-session.d.ts.map +1 -0
- package/dist/services/voice/metric-math.d.ts +10 -0
- package/dist/services/voice/metric-math.d.ts.map +1 -0
- package/dist/services/voice/mic-source.d.ts +136 -0
- package/dist/services/voice/mic-source.d.ts.map +1 -0
- package/dist/services/voice/nlms-echo-canceller.d.ts +137 -0
- package/dist/services/voice/nlms-echo-canceller.d.ts.map +1 -0
- package/dist/services/voice/optimistic-policy.d.ts +109 -0
- package/dist/services/voice/optimistic-policy.d.ts.map +1 -0
- package/dist/services/voice/optimistic-rollback.d.ts +151 -0
- package/dist/services/voice/optimistic-rollback.d.ts.map +1 -0
- package/dist/services/voice/partial-stabilizer.d.ts +73 -0
- package/dist/services/voice/partial-stabilizer.d.ts.map +1 -0
- package/dist/services/voice/phoneme-tokenizer.d.ts +49 -0
- package/dist/services/voice/phoneme-tokenizer.d.ts.map +1 -0
- package/dist/services/voice/phrase-cache.d.ts +76 -0
- package/dist/services/voice/phrase-cache.d.ts.map +1 -0
- package/dist/services/voice/phrase-chunker.d.ts +62 -0
- package/dist/services/voice/phrase-chunker.d.ts.map +1 -0
- package/dist/services/voice/pipeline-impls.d.ts +151 -0
- package/dist/services/voice/pipeline-impls.d.ts.map +1 -0
- package/dist/services/voice/pipeline.d.ts +216 -0
- package/dist/services/voice/pipeline.d.ts.map +1 -0
- package/dist/services/voice/prefill-client.d.ts +123 -0
- package/dist/services/voice/prefill-client.d.ts.map +1 -0
- package/dist/services/voice/prefix-preserving-queue.d.ts +113 -0
- package/dist/services/voice/prefix-preserving-queue.d.ts.map +1 -0
- package/dist/services/voice/profile-store.d.ts +248 -0
- package/dist/services/voice/profile-store.d.ts.map +1 -0
- package/dist/services/voice/ring-buffer.d.ts +40 -0
- package/dist/services/voice/ring-buffer.d.ts.map +1 -0
- package/dist/services/voice/rollback-queue.d.ts +24 -0
- package/dist/services/voice/rollback-queue.d.ts.map +1 -0
- package/dist/services/voice/samantha-preset-placeholder.d.ts +67 -0
- package/dist/services/voice/samantha-preset-placeholder.d.ts.map +1 -0
- package/dist/services/voice/samantha-preset-regenerator.d.ts +87 -0
- package/dist/services/voice/samantha-preset-regenerator.d.ts.map +1 -0
- package/dist/services/voice/scheduler.d.ts +146 -0
- package/dist/services/voice/scheduler.d.ts.map +1 -0
- package/dist/services/voice/self-voice-imprint.d.ts +33 -0
- package/dist/services/voice/self-voice-imprint.d.ts.map +1 -0
- package/dist/services/voice/shared-resources.d.ts +204 -0
- package/dist/services/voice/shared-resources.d.ts.map +1 -0
- package/dist/services/voice/speaker/attribution-pipeline.d.ts +74 -0
- package/dist/services/voice/speaker/attribution-pipeline.d.ts.map +1 -0
- package/dist/services/voice/speaker/diarizer-fused.d.ts +59 -0
- package/dist/services/voice/speaker/diarizer-fused.d.ts.map +1 -0
- package/dist/services/voice/speaker/diarizer.d.ts +75 -0
- package/dist/services/voice/speaker/diarizer.d.ts.map +1 -0
- package/dist/services/voice/speaker/encoder-fused.d.ts +60 -0
- package/dist/services/voice/speaker/encoder-fused.d.ts.map +1 -0
- package/dist/services/voice/speaker/encoder-ggml.d.ts +33 -0
- package/dist/services/voice/speaker/encoder-ggml.d.ts.map +1 -0
- package/dist/services/voice/speaker/encoder.d.ts +37 -0
- package/dist/services/voice/speaker/encoder.d.ts.map +1 -0
- package/dist/services/voice/speaker-imprint.d.ts +83 -0
- package/dist/services/voice/speaker-imprint.d.ts.map +1 -0
- package/dist/services/voice/speaker-preset-cache.d.ts +77 -0
- package/dist/services/voice/speaker-preset-cache.d.ts.map +1 -0
- package/dist/services/voice/streaming-asr/streaming-pipeline-adapter.d.ts +160 -0
- package/dist/services/voice/streaming-asr/streaming-pipeline-adapter.d.ts.map +1 -0
- package/dist/services/voice/system-audio-sink.d.ts +73 -0
- package/dist/services/voice/system-audio-sink.d.ts.map +1 -0
- package/dist/services/voice/transcriber.d.ts +244 -0
- package/dist/services/voice/transcriber.d.ts.map +1 -0
- package/dist/services/voice/transcript-knowledge.d.ts +37 -0
- package/dist/services/voice/transcript-knowledge.d.ts.map +1 -0
- package/dist/services/voice/transcript-service.d.ts +60 -0
- package/dist/services/voice/transcript-service.d.ts.map +1 -0
- package/dist/services/voice/transcript-store.d.ts +64 -0
- package/dist/services/voice/transcript-store.d.ts.map +1 -0
- package/dist/services/voice/turn-controller.d.ts +183 -0
- package/dist/services/voice/turn-controller.d.ts.map +1 -0
- package/dist/services/voice/types.d.ts +643 -0
- package/dist/services/voice/types.d.ts.map +1 -0
- package/dist/services/voice/vad.d.ts +283 -0
- package/dist/services/voice/vad.d.ts.map +1 -0
- package/dist/services/voice/voice-budget.d.ts +241 -0
- package/dist/services/voice/voice-budget.d.ts.map +1 -0
- package/dist/services/voice/voice-emotion-classifier.d.ts +95 -0
- package/dist/services/voice/voice-emotion-classifier.d.ts.map +1 -0
- package/dist/services/voice/voice-preload-predictor.d.ts +76 -0
- package/dist/services/voice/voice-preload-predictor.d.ts.map +1 -0
- package/dist/services/voice/voice-preset-format.d.ts +158 -0
- package/dist/services/voice/voice-preset-format.d.ts.map +1 -0
- package/dist/services/voice/voice-profile-artifact.d.ts +116 -0
- package/dist/services/voice/voice-profile-artifact.d.ts.map +1 -0
- package/dist/services/voice/voice-profile-routes.d.ts +83 -0
- package/dist/services/voice/voice-profile-routes.d.ts.map +1 -0
- package/dist/services/voice/voice-scenario.d.ts +131 -0
- package/dist/services/voice/voice-scenario.d.ts.map +1 -0
- package/dist/services/voice/voice-state-machine.d.ts +364 -0
- package/dist/services/voice/voice-state-machine.d.ts.map +1 -0
- package/dist/services/voice/voice-workbench-report.d.ts +117 -0
- package/dist/services/voice/voice-workbench-report.d.ts.map +1 -0
- package/dist/services/voice/wake-word-ggml.d.ts +100 -0
- package/dist/services/voice/wake-word-ggml.d.ts.map +1 -0
- package/dist/services/voice/wake-word.d.ts +255 -0
- package/dist/services/voice/wake-word.d.ts.map +1 -0
- package/dist/services/voice/wav-codec.d.ts +11 -0
- package/dist/services/voice/wav-codec.d.ts.map +1 -0
- package/dist/services/voice/workbench-entrypoint.d.ts +42 -0
- package/dist/services/voice/workbench-entrypoint.d.ts.map +1 -0
- package/dist/services/voice/workbench-headless-runner.d.ts +102 -0
- package/dist/services/voice/workbench-headless-runner.d.ts.map +1 -0
- package/dist/services/voice/workbench-logic-services.d.ts +36 -0
- package/dist/services/voice/workbench-logic-services.d.ts.map +1 -0
- package/dist/services/voice/workbench-real-services.d.ts +17 -0
- package/dist/services/voice/workbench-real-services.d.ts.map +1 -0
- package/dist/services/voice/workbench-scenarios.d.ts +24 -0
- package/dist/services/voice/workbench-scenarios.d.ts.map +1 -0
- package/dist/services/voice/wrap-with-first-line-cache.d.ts +70 -0
- package/dist/services/voice/wrap-with-first-line-cache.d.ts.map +1 -0
- package/dist/services/voice-model-updater.d.ts +240 -0
- package/dist/services/voice-model-updater.d.ts.map +1 -0
- package/dist/services/voice-prewarm.d.ts +3 -0
- package/dist/services/voice-prewarm.d.ts.map +1 -0
- package/dist/voice-workbench.d.ts +18 -0
- package/dist/voice-workbench.d.ts.map +1 -0
- package/dist/voice-workbench.js +5259 -0
- package/dist/voice-workbench.js.map +34 -0
- package/package.json +101 -15
- package/registry-entry.json +137 -0
- package/src/actions/generate-media.ts +647 -0
- package/src/actions/identify-speaker.ts +171 -0
- package/src/actions/transcription-control.test.ts +100 -0
- package/src/actions/transcription-control.ts +127 -0
- package/src/adapters/capacitor-llama/__tests__/compat-behavior.test.ts +218 -0
- package/src/adapters/capacitor-llama/__tests__/index.test.ts +68 -0
- package/src/adapters/capacitor-llama/__tests__/structured-output.test.ts +215 -0
- package/src/adapters/capacitor-llama/__tests__/text-streaming.test.ts +174 -0
- package/src/adapters/capacitor-llama/__tests__/voice-turn.test.ts +293 -0
- package/src/adapters/capacitor-llama/environment.ts +71 -0
- package/src/adapters/capacitor-llama/index.browser.ts +83 -0
- package/src/adapters/capacitor-llama/index.ts +831 -0
- package/src/adapters/capacitor-llama/loader.ts +109 -0
- package/src/adapters/capacitor-llama/native-voice-capture.ts +140 -0
- package/src/adapters/capacitor-llama/structured-output.ts +165 -0
- package/src/adapters/capacitor-llama/text-streaming.ts +227 -0
- package/src/adapters/capacitor-llama/types.ts +374 -0
- package/src/adapters/capacitor-llama/voice-turn.ts +178 -0
- package/src/backends/apple-foundation.ts +127 -0
- package/src/index.ts +62 -0
- package/src/local-inference-routes.test.ts +390 -0
- package/src/local-inference-routes.ts +1625 -0
- package/src/provider.ts +1111 -0
- package/src/routes/compat-helpers.ts +275 -0
- package/src/routes/family-member-route.ts +353 -0
- package/src/routes/index.ts +61 -0
- package/src/routes/live-diarization-route.test.ts +347 -0
- package/src/routes/live-diarization-route.ts +198 -0
- package/src/routes/local-inference-asr-route.test.ts +246 -0
- package/src/routes/local-inference-asr-route.ts +166 -0
- package/src/routes/local-inference-asr-transcribe.test.ts +118 -0
- package/src/routes/local-inference-asr-transcribe.ts +97 -0
- package/src/routes/local-inference-compat-routes.test.ts +485 -0
- package/src/routes/local-inference-compat-routes.ts +775 -0
- package/src/routes/local-inference-tts-route.test.ts +179 -0
- package/src/routes/local-inference-tts-route.ts +230 -0
- package/src/routes/native-pcm-turn-route.test.ts +136 -0
- package/src/routes/native-pcm-turn-route.ts +121 -0
- package/src/routes/transcript-audio-store.ts +27 -0
- package/src/routes/transcripts-routes.test.ts +195 -0
- package/src/routes/transcripts-routes.ts +191 -0
- package/src/routes/voice-first-run-routes.ts +524 -0
- package/src/routes/voice-models-routes.ts +554 -0
- package/src/routes/voice-profile-plugin-routes.ts +138 -0
- package/src/routes/voice-profiles-management-routes.ts +476 -0
- package/src/routes/voice-speaker-profile-routes.ts +199 -0
- package/src/runtime/aosp-llama-loader-selection.test.ts +80 -0
- package/src/runtime/bionic-wire-encoding.test.ts +147 -0
- package/src/runtime/capacitor-llama.d.ts +25 -0
- package/src/runtime/embedding-manager-support.ts +497 -0
- package/src/runtime/embedding-presets.ts +81 -0
- package/src/runtime/embedding-warmup-policy.test.ts +53 -0
- package/src/runtime/embedding-warmup-policy.ts +48 -0
- package/src/runtime/ensure-local-inference-handler.test.ts +726 -0
- package/src/runtime/ensure-local-inference-handler.ts +1640 -0
- package/src/runtime/index.ts +36 -0
- package/src/runtime/mobile-local-inference-gate.test.ts +152 -0
- package/src/runtime/mobile-local-inference-gate.ts +99 -0
- package/src/runtime/voice-entity-binding.transcript.test.ts +98 -0
- package/src/runtime/voice-entity-binding.ts +368 -0
- package/src/runtime/voice-speaker-entity-contract.test.ts +149 -0
- package/src/services/README.md +71 -0
- package/src/services/__tests__/backend-selector.precedence.test.ts +333 -0
- package/src/services/__tests__/backend-selector.test.ts +101 -0
- package/src/services/__tests__/checkpoint-manager.test.ts +376 -0
- package/src/services/__tests__/gpu-autotune.test.ts +400 -0
- package/src/services/__tests__/llm-streaming-binding.test.ts +85 -0
- package/src/services/__tests__/planner-grammar.test.ts +372 -0
- package/src/services/__tests__/runtime-target.test.ts +176 -0
- package/src/services/active-model-context-fit.test.ts +125 -0
- package/src/services/active-model-switch-rollback.test.ts +183 -0
- package/src/services/active-model.ts +1416 -0
- package/src/services/asr-provenance.ts +68 -0
- package/src/services/assignment-validation.test.ts +118 -0
- package/src/services/assignments.test.ts +106 -0
- package/src/services/assignments.ts +278 -0
- package/src/services/backend-selector.ts +95 -0
- package/src/services/backend.test.ts +84 -0
- package/src/services/backend.ts +791 -0
- package/src/services/bionic-host-loader.test.ts +226 -0
- package/src/services/bionic-host-loader.ts +252 -0
- package/src/services/bundled-models.ts +129 -0
- package/src/services/cache-bridge.test.ts +516 -0
- package/src/services/cache-bridge.ts +423 -0
- package/src/services/catalog.test.ts +259 -0
- package/src/services/catalog.ts +33 -0
- package/src/services/checkpoint-client.ts +258 -0
- package/src/services/checkpoint-manager.ts +474 -0
- package/src/services/cloud-fallback.ts +230 -0
- package/src/services/context-fit.test.ts +121 -0
- package/src/services/context-fit.ts +113 -0
- package/src/services/conversation-registry.test.ts +235 -0
- package/src/services/conversation-registry.ts +264 -0
- package/src/services/desktop-fused-ffi-backend-runtime.ts +431 -0
- package/src/services/device-bridge.ts +1237 -0
- package/src/services/device-resource-metrics.test.ts +98 -0
- package/src/services/device-resource-metrics.ts +346 -0
- package/src/services/device-tier.test.ts +458 -0
- package/src/services/device-tier.ts +502 -0
- package/src/services/downloader.test.ts +888 -0
- package/src/services/downloader.ts +1039 -0
- package/src/services/engine-direct-bundle.test.ts +90 -0
- package/src/services/engine-streaming.test.ts +80 -0
- package/src/services/engine.ts +2096 -0
- package/src/services/ensure-local-artifacts.integration.test.ts +273 -0
- package/src/services/ensure-local-artifacts.test.ts +368 -0
- package/src/services/ensure-local-artifacts.ts +351 -0
- package/src/services/external-scanner.ts +312 -0
- package/src/services/ffi-llm-mock.ts +354 -0
- package/src/services/ffi-llm-streaming-abi.ts +445 -0
- package/src/services/ffi-streaming-backend.ts +418 -0
- package/src/services/ffi-streaming-runner.test.ts +220 -0
- package/src/services/ffi-streaming-runner.ts +407 -0
- package/src/services/ffi-unload-ordering.test.ts +166 -0
- package/src/services/fused-eliza1-no-regression.test.ts +144 -0
- package/src/services/gpu-autotune.ts +534 -0
- package/src/services/gpu-detect.ts +139 -0
- package/src/services/handler-registry.ts +240 -0
- package/src/services/hardware.test.ts +236 -0
- package/src/services/hardware.ts +438 -0
- package/src/services/image-description-runtime.test.ts +61 -0
- package/src/services/image-description-runtime.ts +118 -0
- package/src/services/imagegen/aosp-unavailable.ts +229 -0
- package/src/services/imagegen/backend-selector.test.ts +190 -0
- package/src/services/imagegen/backend-selector.ts +277 -0
- package/src/services/imagegen/coreml-unavailable.ts +237 -0
- package/src/services/imagegen/errors.ts +40 -0
- package/src/services/imagegen/index.ts +144 -0
- package/src/services/imagegen/mflux.ts +313 -0
- package/src/services/imagegen/sd-cpp.ts +715 -0
- package/src/services/imagegen/tensorrt-unavailable.ts +295 -0
- package/src/services/imagegen/types.ts +193 -0
- package/src/services/index.ts +229 -0
- package/src/services/inference-capabilities.test.ts +75 -0
- package/src/services/inference-capabilities.ts +204 -0
- package/src/services/inference-telemetry.ts +143 -0
- package/src/services/ios-llama-streaming.ts +248 -0
- package/src/services/kv-spill.test.ts +222 -0
- package/src/services/kv-spill.ts +357 -0
- package/src/services/latency-trace.test.ts +266 -0
- package/src/services/latency-trace.ts +844 -0
- package/src/services/lib-target.test.ts +145 -0
- package/src/services/lib-target.ts +102 -0
- package/src/services/live-signals.test.ts +132 -0
- package/src/services/live-signals.ts +177 -0
- package/src/services/llama-server-metrics.test.ts +168 -0
- package/src/services/llama-server-metrics.ts +304 -0
- package/src/services/llm-streaming-binding.ts +136 -0
- package/src/services/load-args.ts +81 -0
- package/src/services/manifest/eliza-1.manifest.v1.json +790 -0
- package/src/services/manifest/index.ts +72 -0
- package/src/services/manifest/manifest.test.ts +791 -0
- package/src/services/manifest/schema.ts +761 -0
- package/src/services/manifest/types.ts +61 -0
- package/src/services/manifest/validator.ts +633 -0
- package/src/services/memory-arbiter.test.ts +558 -0
- package/src/services/memory-arbiter.ts +991 -0
- package/src/services/memory-benchmark.test.ts +91 -0
- package/src/services/memory-benchmark.ts +354 -0
- package/src/services/memory-monitor.test.ts +232 -0
- package/src/services/memory-monitor.ts +309 -0
- package/src/services/memory-pressure.ts +414 -0
- package/src/services/mtp-doctor.ts +86 -0
- package/src/services/network-policy.ts +346 -0
- package/src/services/paths.ts +25 -0
- package/src/services/planner-skeleton.ts +175 -0
- package/src/services/providers.ts +507 -0
- package/src/services/ram-budget-cache.test.ts +164 -0
- package/src/services/ram-budget.ts +309 -0
- package/src/services/readiness.test.ts +87 -0
- package/src/services/readiness.ts +238 -0
- package/src/services/recommendation.test.ts +216 -0
- package/src/services/recommendation.ts +671 -0
- package/src/services/registry.ts +157 -0
- package/src/services/required-kernels-gate.test.ts +64 -0
- package/src/services/router-handler.test.ts +45 -0
- package/src/services/router-handler.ts +426 -0
- package/src/services/routing-policy.test.ts +352 -0
- package/src/services/routing-policy.ts +367 -0
- package/src/services/routing-preferences.ts +17 -0
- package/src/services/runtime-target.ts +154 -0
- package/src/services/service.test.ts +223 -0
- package/src/services/service.ts +750 -0
- package/src/services/session-pool.ts +153 -0
- package/src/services/structured-output/deterministic-repair.test.ts +169 -0
- package/src/services/structured-output/deterministic-repair.ts +443 -0
- package/src/services/structured-output/index.ts +4 -0
- package/src/services/structured-output.test.ts +483 -0
- package/src/services/structured-output.ts +712 -0
- package/src/services/system-memory.test.ts +47 -0
- package/src/services/system-memory.ts +67 -0
- package/src/services/transcription-priority.test.ts +211 -0
- package/src/services/types.ts +59 -0
- package/src/services/verify-on-device.test.ts +87 -0
- package/src/services/verify-on-device.ts +127 -0
- package/src/services/verify.ts +13 -0
- package/src/services/vision/aosp-unavailable.ts +163 -0
- package/src/services/vision/capacitor-llama.ts +255 -0
- package/src/services/vision/cloud-fallback.test.ts +243 -0
- package/src/services/vision/cloud-fallback.ts +268 -0
- package/src/services/vision/fallback-chain.test.ts +86 -0
- package/src/services/vision/hash.ts +157 -0
- package/src/services/vision/index.ts +251 -0
- package/src/services/vision/llama-server.ts +177 -0
- package/src/services/vision/types.ts +163 -0
- package/src/services/vision/vast-fallback.ts +127 -0
- package/src/services/vision-embedding-cache.ts +189 -0
- package/src/services/voice/VOICE_WORKBENCH.md +133 -0
- package/src/services/voice/__fixtures__/voice-workbench-logic-baseline.json +180 -0
- package/src/services/voice/__test-helpers__/fake-ffi.ts +94 -0
- package/src/services/voice/__test-helpers__/synthetic-speech.ts +194 -0
- package/src/services/voice/__tests__/checkpoint-manager.test.ts +241 -0
- package/src/services/voice/__tests__/checkpoint-policy.test.ts +270 -0
- package/src/services/voice/__tests__/eager-context-builder.test.ts +257 -0
- package/src/services/voice/__tests__/eliza1-eot-scorer.test.ts +288 -0
- package/src/services/voice/__tests__/eot-classifier.test.ts +431 -0
- package/src/services/voice/__tests__/optimistic-rollback.test.ts +312 -0
- package/src/services/voice/__tests__/prefill-client.test.ts +266 -0
- package/src/services/voice/__tests__/prefix-preserving-queue.test.ts +208 -0
- package/src/services/voice/__tests__/streaming-asr.test.ts +450 -0
- package/src/services/voice/__tests__/streaming-transcriber.test.ts +339 -0
- package/src/services/voice/__tests__/turn-detector-resolver.test.ts +195 -0
- package/src/services/voice/__tests__/voice-state-machine-prefill.test.ts +275 -0
- package/src/services/voice/__tests__/voice-state-machine.test.ts +354 -0
- package/src/services/voice/acoustic-speaker-attribution.test.ts +165 -0
- package/src/services/voice/acoustic-speaker-attribution.ts +336 -0
- package/src/services/voice/asr-timed.real.test.ts +139 -0
- package/src/services/voice/audio-frame-consumer.test.ts +669 -0
- package/src/services/voice/audio-frame-consumer.ts +651 -0
- package/src/services/voice/barge-in.test.ts +244 -0
- package/src/services/voice/barge-in.ts +335 -0
- package/src/services/voice/cancellation-coordinator.test.ts +196 -0
- package/src/services/voice/cancellation-coordinator.ts +269 -0
- package/src/services/voice/checkpoint-manager.ts +401 -0
- package/src/services/voice/checkpoint-policy.ts +336 -0
- package/src/services/voice/composite-eot-classifier.test.ts +59 -0
- package/src/services/voice/corpus-augment.test.ts +276 -0
- package/src/services/voice/corpus-augment.ts +451 -0
- package/src/services/voice/corpus-generator.test.ts +201 -0
- package/src/services/voice/corpus-generator.ts +413 -0
- package/src/services/voice/diarization-error-rate.greedy.test.ts +140 -0
- package/src/services/voice/diarization-error-rate.test.ts +100 -0
- package/src/services/voice/diarization-error-rate.ts +249 -0
- package/src/services/voice/e2e-harness.der.test.ts +94 -0
- package/src/services/voice/e2e-harness.respond-eot-entity.test.ts +277 -0
- package/src/services/voice/e2e-harness.security-echo.test.ts +103 -0
- package/src/services/voice/e2e-harness.test.ts +182 -0
- package/src/services/voice/e2e-harness.ts +902 -0
- package/src/services/voice/eager-context-builder.ts +262 -0
- package/src/services/voice/echo-delay.test.ts +118 -0
- package/src/services/voice/echo-delay.ts +135 -0
- package/src/services/voice/echo-metrics.test.ts +17 -0
- package/src/services/voice/echo-metrics.ts +20 -0
- package/src/services/voice/echo-reference-buffer.test.ts +86 -0
- package/src/services/voice/echo-reference-buffer.ts +165 -0
- package/src/services/voice/eliza1-eot-scorer.ts +242 -0
- package/src/services/voice/embedding-server.ts +200 -0
- package/src/services/voice/embedding.test.ts +131 -0
- package/src/services/voice/embedding.ts +242 -0
- package/src/services/voice/emotion-attribution.test.ts +129 -0
- package/src/services/voice/emotion-attribution.ts +361 -0
- package/src/services/voice/engine-bridge-cancellation.test.ts +422 -0
- package/src/services/voice/engine-bridge-transcript-join.test.ts +278 -0
- package/src/services/voice/engine-bridge.test.ts +384 -0
- package/src/services/voice/engine-bridge.ts +2343 -0
- package/src/services/voice/eot-classifier-ggml.ts +569 -0
- package/src/services/voice/eot-classifier.test.ts +98 -0
- package/src/services/voice/eot-classifier.ts +422 -0
- package/src/services/voice/errors.ts +34 -0
- package/src/services/voice/expressive-tags.asr.test.ts +77 -0
- package/src/services/voice/expressive-tags.test.ts +102 -0
- package/src/services/voice/expressive-tags.ts +405 -0
- package/src/services/voice/ffi-bindings.test.ts +735 -0
- package/src/services/voice/ffi-bindings.ts +3387 -0
- package/src/services/voice/first-line-cache.ts +725 -0
- package/src/services/voice/fused-eot-scorer.ts +139 -0
- package/src/services/voice/index.ts +502 -0
- package/src/services/voice/kokoro/__tests__/kokoro-backend.test.ts +262 -0
- package/src/services/voice/kokoro/__tests__/kokoro-engine-bridge.real.test.ts +236 -0
- package/src/services/voice/kokoro/__tests__/kokoro-engine-bridge.test.ts +60 -0
- package/src/services/voice/kokoro/__tests__/kokoro-engine-discovery.test.ts +277 -0
- package/src/services/voice/kokoro/__tests__/kokoro-ffi-runtime.test.ts +235 -0
- package/src/services/voice/kokoro/__tests__/kokoro-runtime.test.ts +95 -0
- package/src/services/voice/kokoro/__tests__/phonemizer.test.ts +53 -0
- package/src/services/voice/kokoro/__tests__/runtime-selection.test.ts +67 -0
- package/src/services/voice/kokoro/__tests__/voices.test.ts +57 -0
- package/src/services/voice/kokoro/index.ts +79 -0
- package/src/services/voice/kokoro/kokoro-backend.ts +223 -0
- package/src/services/voice/kokoro/kokoro-engine-discovery.ts +177 -0
- package/src/services/voice/kokoro/kokoro-ffi-runtime.ts +233 -0
- package/src/services/voice/kokoro/kokoro-runtime.ts +170 -0
- package/src/services/voice/kokoro/phoneme-stream.ts +123 -0
- package/src/services/voice/kokoro/phonemizer.ts +344 -0
- package/src/services/voice/kokoro/pick-runtime.test.ts +91 -0
- package/src/services/voice/kokoro/pick-runtime.ts +130 -0
- package/src/services/voice/kokoro/runtime-selection.ts +64 -0
- package/src/services/voice/kokoro/types.ts +95 -0
- package/src/services/voice/kokoro/voice-presets.ts +129 -0
- package/src/services/voice/kokoro/voices.ts +64 -0
- package/src/services/voice/lifecycle.test.ts +315 -0
- package/src/services/voice/lifecycle.ts +301 -0
- package/src/services/voice/live-diarization-session.echo.test.ts +232 -0
- package/src/services/voice/live-diarization-session.ts +622 -0
- package/src/services/voice/metric-math.test.ts +61 -0
- package/src/services/voice/metric-math.ts +25 -0
- package/src/services/voice/mic-source.test.ts +210 -0
- package/src/services/voice/mic-source.ts +503 -0
- package/src/services/voice/nlms-echo-canceller.test.ts +244 -0
- package/src/services/voice/nlms-echo-canceller.ts +317 -0
- package/src/services/voice/optimistic-policy.power-source.test.ts +36 -0
- package/src/services/voice/optimistic-policy.test.ts +101 -0
- package/src/services/voice/optimistic-policy.ts +192 -0
- package/src/services/voice/optimistic-rollback.ts +343 -0
- package/src/services/voice/partial-stabilizer.test.ts +68 -0
- package/src/services/voice/partial-stabilizer.ts +140 -0
- package/src/services/voice/phoneme-tokenizer.ts +158 -0
- package/src/services/voice/phrase-cache.test.ts +242 -0
- package/src/services/voice/phrase-cache.ts +186 -0
- package/src/services/voice/phrase-chunker.test.ts +239 -0
- package/src/services/voice/phrase-chunker.ts +281 -0
- package/src/services/voice/pipeline-impls.l6.test.ts +110 -0
- package/src/services/voice/pipeline-impls.test.ts +292 -0
- package/src/services/voice/pipeline-impls.ts +315 -0
- package/src/services/voice/pipeline.ts +504 -0
- package/src/services/voice/prefill-client.ts +316 -0
- package/src/services/voice/prefix-preserving-queue.ts +162 -0
- package/src/services/voice/profile-store.ts +887 -0
- package/src/services/voice/real-audio-decode.test.ts +148 -0
- package/src/services/voice/research/VOICE_8785_ASSESSMENT.md +141 -0
- package/src/services/voice/research/VOICE_PIPELINE_RESEARCH_2026.md +117 -0
- package/src/services/voice/research/VOICE_VALIDATION_RUNBOOK.md +135 -0
- package/src/services/voice/ring-buffer.test.ts +129 -0
- package/src/services/voice/ring-buffer.ts +123 -0
- package/src/services/voice/rollback-queue.ts +74 -0
- package/src/services/voice/samantha-preset-placeholder.test.ts +97 -0
- package/src/services/voice/samantha-preset-placeholder.ts +148 -0
- package/src/services/voice/samantha-preset-regenerator.ts +393 -0
- package/src/services/voice/samantha-preset-regenerator.wav.test.ts +90 -0
- package/src/services/voice/scheduler.t2.test.ts +141 -0
- package/src/services/voice/scheduler.ts +927 -0
- package/src/services/voice/self-voice-imprint.test.ts +59 -0
- package/src/services/voice/self-voice-imprint.ts +102 -0
- package/src/services/voice/shared-resources.ts +343 -0
- package/src/services/voice/speaker/attribution-pipeline.test.ts +221 -0
- package/src/services/voice/speaker/attribution-pipeline.ts +449 -0
- package/src/services/voice/speaker/diarizer-fused.real.test.ts +100 -0
- package/src/services/voice/speaker/diarizer-fused.ts +154 -0
- package/src/services/voice/speaker/diarizer.ts +218 -0
- package/src/services/voice/speaker/encoder-fused.real.test.ts +113 -0
- package/src/services/voice/speaker/encoder-fused.ts +138 -0
- package/src/services/voice/speaker/encoder-ggml.test.ts +59 -0
- package/src/services/voice/speaker/encoder-ggml.ts +79 -0
- package/src/services/voice/speaker/encoder.ts +105 -0
- package/src/services/voice/speaker-imprint.test.ts +185 -0
- package/src/services/voice/speaker-imprint.ts +312 -0
- package/src/services/voice/speaker-preset-cache.test.ts +154 -0
- package/src/services/voice/speaker-preset-cache.ts +195 -0
- package/src/services/voice/streaming-asr/streaming-pipeline-adapter.ts +292 -0
- package/src/services/voice/system-audio-sink.test.ts +29 -0
- package/src/services/voice/system-audio-sink.ts +366 -0
- package/src/services/voice/transcriber.asr-backend.test.ts +76 -0
- package/src/services/voice/transcriber.test.ts +392 -0
- package/src/services/voice/transcriber.ts +704 -0
- package/src/services/voice/transcript-knowledge.test.ts +68 -0
- package/src/services/voice/transcript-knowledge.ts +75 -0
- package/src/services/voice/transcript-service.test.ts +195 -0
- package/src/services/voice/transcript-service.ts +205 -0
- package/src/services/voice/transcript-store.test.ts +189 -0
- package/src/services/voice/transcript-store.ts +164 -0
- package/src/services/voice/turn-controller.test.ts +575 -0
- package/src/services/voice/turn-controller.ts +596 -0
- package/src/services/voice/types.ts +699 -0
- package/src/services/voice/vad.test.ts +498 -0
- package/src/services/voice/vad.ts +832 -0
- package/src/services/voice/vad.v1-v4.test.ts +222 -0
- package/src/services/voice/voice-budget.test.ts +415 -0
- package/src/services/voice/voice-budget.ts +635 -0
- package/src/services/voice/voice-duet.test.ts +375 -0
- package/src/services/voice/voice-emotion-classifier.test.ts +210 -0
- package/src/services/voice/voice-emotion-classifier.ts +273 -0
- package/src/services/voice/voice-hardening.fuzz.test.ts +116 -0
- package/src/services/voice/voice-preload-predictor.test.ts +130 -0
- package/src/services/voice/voice-preload-predictor.ts +113 -0
- package/src/services/voice/voice-preset-format.fuzz.test.ts +89 -0
- package/src/services/voice/voice-preset-format.test.ts +75 -0
- package/src/services/voice/voice-preset-format.ts +713 -0
- package/src/services/voice/voice-preset-generator.test.ts +89 -0
- package/src/services/voice/voice-profile-artifact.test.ts +138 -0
- package/src/services/voice/voice-profile-artifact.ts +518 -0
- package/src/services/voice/voice-profile-routes.test.ts +429 -0
- package/src/services/voice/voice-profile-routes.ts +425 -0
- package/src/services/voice/voice-scenario.test.ts +159 -0
- package/src/services/voice/voice-scenario.ts +280 -0
- package/src/services/voice/voice-scenario.turn-helpers.test.ts +77 -0
- package/src/services/voice/voice-state-machine.ts +727 -0
- package/src/services/voice/voice-workbench-report.test.ts +168 -0
- package/src/services/voice/voice-workbench-report.ts +367 -0
- package/src/services/voice/voice-workbench.test.ts +158 -0
- package/src/services/voice/voice.test.ts +1070 -0
- package/src/services/voice/wake-word-ggml.ts +319 -0
- package/src/services/voice/wake-word.test.ts +298 -0
- package/src/services/voice/wake-word.ts +554 -0
- package/src/services/voice/wav-codec.fuzz.test.ts +59 -0
- package/src/services/voice/wav-codec.test.ts +32 -0
- package/src/services/voice/wav-codec.ts +101 -0
- package/src/services/voice/workbench-entrypoint.test.ts +55 -0
- package/src/services/voice/workbench-entrypoint.ts +88 -0
- package/src/services/voice/workbench-headless-runner.test.ts +162 -0
- package/src/services/voice/workbench-headless-runner.ts +396 -0
- package/src/services/voice/workbench-logic-services.test.ts +225 -0
- package/src/services/voice/workbench-logic-services.ts +184 -0
- package/src/services/voice/workbench-real-services.ts +629 -0
- package/src/services/voice/workbench-scenarios.ts +407 -0
- package/src/services/voice/wrap-with-first-line-cache.ts +267 -0
- package/src/services/voice-model-updater.ts +724 -0
- package/src/services/voice-prewarm.ts +51 -0
- package/src/voice-workbench.ts +71 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* On a mobile platform (`ELIZA_PLATFORM=android` / `ios`) the runtime skips
|
|
3
|
+
* nearly every boot helper because they shell out to subprocesses,
|
|
4
|
+
* platform-specific binaries, or optional packages that aren't in the mobile
|
|
5
|
+
* bundle. Three mobile-safe inference paths need wiring:
|
|
6
|
+
*
|
|
7
|
+
* - `ELIZA_DEVICE_BRIDGE_ENABLED=1`: the agent (this process) hosts the
|
|
8
|
+
* device-bridge WSS and dials whichever paired device connects. On the
|
|
9
|
+
* Capacitor APK the WebView's `@elizaos/capacitor-llama` is the intended
|
|
10
|
+
* dialer over loopback. The Capacitor build always exports this env so
|
|
11
|
+
* the bridge is ready as soon as first-run picks the local mode.
|
|
12
|
+
*
|
|
13
|
+
* - `ELIZA_LOCAL_LLAMA=1`: AOSP path that loads `libllama.so` directly
|
|
14
|
+
* inside the Android process via `bun:ffi`. Wired here so the gate is
|
|
15
|
+
* in place ahead of sub-task 2 — the AOSP build flag flips this on.
|
|
16
|
+
*
|
|
17
|
+
* - `process.arch === "riscv64"`: `capacitor-llama` has no riscv64 prebuild
|
|
18
|
+
* and we can't NAPI-build it on-device, so the in-process FFI path
|
|
19
|
+
* (same loader contract as the AOSP path) is the only viable option.
|
|
20
|
+
* Auto-firing here keeps the riscv64 mobile boot path zero-config; an
|
|
21
|
+
* operator can hard-disable via `ELIZA_DISABLE_FFI_LLAMA=1` to skip the
|
|
22
|
+
* loader and route inference through Cloud instead. See
|
|
23
|
+
* `plugin-aosp-local-inference/src/aosp-llama-adapter.ts:isAospEnabled`
|
|
24
|
+
* and `plugin-local-inference/src/runtime/ensure-local-inference-handler.ts:shouldAttemptAospLlamaLoader`
|
|
25
|
+
* — the three predicates agree on the trigger set.
|
|
26
|
+
*
|
|
27
|
+
* Kept dependency-free so it can be unit-tested without instantiating the
|
|
28
|
+
* full runtime.
|
|
29
|
+
*/
|
|
30
|
+
export declare function shouldEnableMobileLocalInference(env?: NodeJS.ProcessEnv, arch?: NodeJS.Architecture): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Boot-time invariant check for the mobile voice backend selector.
|
|
33
|
+
*
|
|
34
|
+
* The voice engine passes `mobile: isMobilePlatform()` into `selectVoiceBackend`
|
|
35
|
+
* (`services/engine.ts`). That flag is what pins mobile to the Kokoro-exclusive
|
|
36
|
+
* TTS path — OmniVoice is never shipped on a phone. But `isMobilePlatform()`
|
|
37
|
+
* keys solely off `ELIZA_PLATFORM ∈ {ios, android}`, whereas
|
|
38
|
+
* {@link shouldEnableMobileLocalInference} also fires on the device-bridge /
|
|
39
|
+
* `ELIZA_LOCAL_LLAMA` / riscv64 triggers — none of which set `ELIZA_PLATFORM`.
|
|
40
|
+
* So a build that enables the mobile local-inference gate without exporting
|
|
41
|
+
* `ELIZA_PLATFORM` leaves `mobile` false in the selector and could pick
|
|
42
|
+
* OmniVoice on a phone, violating the Kokoro-exclusive mobile voice invariant.
|
|
43
|
+
*
|
|
44
|
+
* This emits exactly one boot-time warning when the gate is active but the
|
|
45
|
+
* platform flag is absent (the real mismatch). It is a diagnostic, not a
|
|
46
|
+
* behavior change: the fix is to export `ELIZA_PLATFORM` from the offending
|
|
47
|
+
* build, which this surfaces. The caller MUST evaluate it on a boot path where
|
|
48
|
+
* BOTH predicates are checked (i.e. outside any `if (isMobilePlatform())`
|
|
49
|
+
* branch) — passing the already-computed `mobilePlatform` makes that explicit.
|
|
50
|
+
*
|
|
51
|
+
* Kept dependency-free (injectable `warn` + the already-resolved
|
|
52
|
+
* `mobilePlatform` boolean) so it can be unit-tested without the runtime or a
|
|
53
|
+
* logger instance, matching the `engine.warnIfParallelTooLow({ warn })` pattern.
|
|
54
|
+
*
|
|
55
|
+
* @returns `true` when the warning fired (the mismatch is real), else `false`.
|
|
56
|
+
*/
|
|
57
|
+
export declare function warnIfMobileGateActiveWithoutPlatform(args: {
|
|
58
|
+
mobilePlatform: boolean;
|
|
59
|
+
warn: (message: string) => void;
|
|
60
|
+
env?: NodeJS.ProcessEnv;
|
|
61
|
+
arch?: NodeJS.Architecture;
|
|
62
|
+
}): boolean;
|
|
63
|
+
//# sourceMappingURL=mobile-local-inference-gate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mobile-local-inference-gate.d.ts","sourceRoot":"","sources":["../../src/runtime/mobile-local-inference-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,gCAAgC,CAC/C,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,GAAE,MAAM,CAAC,YAA2B,GACtC,OAAO,CAqBT;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,qCAAqC,CAAC,IAAI,EAAE;IAC3D,cAAc,EAAE,OAAO,CAAC;IACxB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC;CAC3B,GAAG,OAAO,CAYV"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Voice ⇄ entity binding seam (producer + round-trip consumer).
|
|
3
|
+
*
|
|
4
|
+
* Producer (`emitVoiceTurnObserved`): emit `VOICE_TURN_OBSERVED` so a
|
|
5
|
+
* merge-engine owner (plugin-lifeops) can fold the recognized voice turn
|
|
6
|
+
* into the entity/relationship graph. The voice-profile store is owned
|
|
7
|
+
* here; the entity graph is owned there; the only shared surface is the
|
|
8
|
+
* core event seam — neither plugin imports the other.
|
|
9
|
+
*
|
|
10
|
+
* Consumer (`handleVoiceEntityBound`): when the merge engine reports a
|
|
11
|
+
* binding via `VOICE_ENTITY_BOUND`, persist the resulting `entityId` onto
|
|
12
|
+
* every profile in that imprint cluster (`VoiceProfileStore.bindEntity`).
|
|
13
|
+
* This is the runtime path that was missing in issue #8234 — without it a
|
|
14
|
+
* profile's `entityId` stayed `null` and recognized speakers never reached
|
|
15
|
+
* the relationship graph.
|
|
16
|
+
*/
|
|
17
|
+
import { type IAgentRuntime, type VoiceEntityBoundPayload } from "@elizaos/core";
|
|
18
|
+
import type { VoiceTurnSignal } from "../services/voice/eot-classifier.js";
|
|
19
|
+
import { VoiceProfileStore } from "../services/voice/profile-store.js";
|
|
20
|
+
import type { VoiceAttributionOutput } from "../services/voice/speaker/attribution-pipeline.js";
|
|
21
|
+
export declare function setVoiceEntityBindingStore(store: VoiceProfileStore | null): void;
|
|
22
|
+
export declare function getVoiceProfileStore(): Promise<VoiceProfileStore>;
|
|
23
|
+
export interface EmitVoiceTurnObservedArgs {
|
|
24
|
+
/** Stable utterance id; a random one is minted when omitted. */
|
|
25
|
+
turnId?: string;
|
|
26
|
+
/** Recognized text (drives name/partner-claim extraction downstream). */
|
|
27
|
+
text: string;
|
|
28
|
+
/** Imprint cluster id from the voice-profile store. */
|
|
29
|
+
imprintClusterId: string;
|
|
30
|
+
/** Confidence of the imprint match (0..1). */
|
|
31
|
+
matchConfidence: number;
|
|
32
|
+
/** Entity the imprint already resolved to, or `null`/omitted when unbound. */
|
|
33
|
+
matchedEntityId?: string | null;
|
|
34
|
+
/** True when the OWNER spoke this turn. */
|
|
35
|
+
isOwner?: boolean;
|
|
36
|
+
/** ISO timestamp; defaults to now. */
|
|
37
|
+
observedAt?: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Emit `VOICE_TURN_OBSERVED`. No-op in effect when no merge-engine plugin
|
|
41
|
+
* is loaded (the event simply has no handler). `emitEvent` awaits every
|
|
42
|
+
* handler, so by the time this resolves the binding round-trip (including
|
|
43
|
+
* `VOICE_ENTITY_BOUND` → profile persist) has completed.
|
|
44
|
+
*/
|
|
45
|
+
export declare function emitVoiceTurnObserved(runtime: IAgentRuntime, args: EmitVoiceTurnObservedArgs): Promise<void>;
|
|
46
|
+
export interface HandleLiveVoiceAttributionOptions {
|
|
47
|
+
/**
|
|
48
|
+
* Entity id the agent treats as the device owner / primary enrolled
|
|
49
|
+
* speaker. A turn attributed to this entity is always allowed to speak.
|
|
50
|
+
*/
|
|
51
|
+
ownerEntityId?: string | null;
|
|
52
|
+
/**
|
|
53
|
+
* Entity ids the agent answers to without a wake word (owner + enrolled
|
|
54
|
+
* household members). A confident bystander is anyone attributed to an
|
|
55
|
+
* entity NOT in this set.
|
|
56
|
+
*/
|
|
57
|
+
knownSpeakerEntityIds?: readonly string[];
|
|
58
|
+
/**
|
|
59
|
+
* The EOT-based turn signal the turn-controller already computed for this
|
|
60
|
+
* turn (from `eot-classifier` / `turn-controller`). The speaker decision is
|
|
61
|
+
* folded into it. When omitted, a neutral base is synthesized from
|
|
62
|
+
* `endOfTurnProbability` (default 0.5 — "unknown", fail open).
|
|
63
|
+
*/
|
|
64
|
+
baseSignal?: VoiceTurnSignal;
|
|
65
|
+
/** P(turn complete) when no `baseSignal` is supplied (default 0.5). */
|
|
66
|
+
endOfTurnProbability?: number;
|
|
67
|
+
/** True when a wake word fired within the recent listen window. */
|
|
68
|
+
wakeWordActive?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* The ASR transcript for this turn, joined from the streaming-ASR path. When
|
|
71
|
+
* provided it rides on `VOICE_TURN_OBSERVED` (and the turn signal) so the
|
|
72
|
+
* merge engine's name/partner extraction (`VoiceObserver.ingestTurn`) runs
|
|
73
|
+
* from LIVE audio — previously this was hardcoded `""`, so live recognition
|
|
74
|
+
* could identify *who* spoke but never *what* they said (#8786). Diarization-
|
|
75
|
+
* only callers (audio-frame path) leave it unset; the in-process voice engine
|
|
76
|
+
* (which has both ASR + diarization) passes the real transcript.
|
|
77
|
+
*/
|
|
78
|
+
transcript?: string;
|
|
79
|
+
/**
|
|
80
|
+
* Cosine similarity (0..1) between this turn's live WeSpeaker embedding and
|
|
81
|
+
* the agent's own TTS-voice centroid. High means the open mic is hearing the
|
|
82
|
+
* agent's playback, not a human user.
|
|
83
|
+
*/
|
|
84
|
+
selfVoiceSimilarity?: number | null;
|
|
85
|
+
/** True while the agent is currently playing TTS. */
|
|
86
|
+
agentSpeaking?: boolean;
|
|
87
|
+
/** Age of the most recent agent-spoken reply in ms. */
|
|
88
|
+
replyAgeMs?: number;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Handle a live per-turn attribution result. This is the single automatic seam
|
|
92
|
+
* the engine bridge calls from its `onAttribution` path: any caller that wires a
|
|
93
|
+
* `profileStore` gets diarization-driven gating for free.
|
|
94
|
+
*
|
|
95
|
+
* 1. Emits `VOICE_TURN_OBSERVED` when the turn produced a profile observation
|
|
96
|
+
* (so the merge engine can fold the recognized speaker into the entity
|
|
97
|
+
* graph and round-trip the binding back onto the profile).
|
|
98
|
+
* 2. Composes the EOT-based turn signal with the speaker decision and stamps it
|
|
99
|
+
* onto `output.turn.metadata.voiceTurnSignal`, which the chat-view producer
|
|
100
|
+
* forwards to the server gate verbatim.
|
|
101
|
+
*
|
|
102
|
+
* Returns the composed signal (also written onto the turn metadata in place).
|
|
103
|
+
* Never throws on the emit path — observation emission is best-effort and is
|
|
104
|
+
* logged, never propagated, so an attribution turn never crashes a voice turn.
|
|
105
|
+
*/
|
|
106
|
+
export declare function handleLiveVoiceAttribution(runtime: IAgentRuntime, output: VoiceAttributionOutput, opts?: HandleLiveVoiceAttributionOptions): Promise<VoiceTurnSignal>;
|
|
107
|
+
/**
|
|
108
|
+
* Handler for `VOICE_ENTITY_BOUND`. Persists `entityId` onto every profile
|
|
109
|
+
* in the cluster that is not already bound to it. Returns nothing (the
|
|
110
|
+
* `EventHandler` contract); the bound count is logged.
|
|
111
|
+
*/
|
|
112
|
+
export declare function handleVoiceEntityBound(payload: VoiceEntityBoundPayload): Promise<void>;
|
|
113
|
+
//# sourceMappingURL=voice-entity-binding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voice-entity-binding.d.ts","sourceRoot":"","sources":["../../src/runtime/voice-entity-binding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAEN,KAAK,aAAa,EAGlB,KAAK,uBAAuB,EAC5B,MAAM,eAAe,CAAC;AAKvB,OAAO,KAAK,EAEX,eAAe,EACf,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAQhG,wBAAgB,0BAA0B,CACzC,KAAK,EAAE,iBAAiB,GAAG,IAAI,GAC7B,IAAI,CAEN;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAOvE;AAMD,MAAM,WAAW,yBAAyB;IACzC,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,gBAAgB,EAAE,MAAM,CAAC;IACzB,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,2CAA2C;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAC1C,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,yBAAyB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAWf;AAWD,MAAM,WAAW,iCAAiC;IACjD;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C;;;;;OAKG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,uEAAuE;IACvE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mEAAmE;IACnE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,qDAAqD;IACrD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAuGD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,0BAA0B,CAC/C,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,sBAAsB,EAC9B,IAAI,GAAE,iCAAsC,GAC1C,OAAO,CAAC,eAAe,CAAC,CAmD1B;AAMD;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC3C,OAAO,EAAE,uBAAuB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA2Bf"}
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Coordinates which model is currently loaded into the plugin-local-ai
|
|
3
|
+
* runtime. Eliza runs one inference model at a time; switching models
|
|
4
|
+
* unloads the previous one first so we don't double-allocate VRAM.
|
|
5
|
+
*
|
|
6
|
+
* This module *does not* talk to `capacitor-llama` directly. The plugin
|
|
7
|
+
* owns the native binding; we ask it to swap via a small runtime service
|
|
8
|
+
* registered under the name "localInferenceLoader". When the plugin is not
|
|
9
|
+
* enabled, we still track the user's preferred active model so the
|
|
10
|
+
* preference survives enabling the plugin later.
|
|
11
|
+
*/
|
|
12
|
+
import type { AgentRuntime } from "@elizaos/core";
|
|
13
|
+
import { ELIZA_1_PLACEHOLDER_IDS, FIRST_RUN_DEFAULT_MODEL_ID } from "./catalog";
|
|
14
|
+
import { type Eliza1Kernel, type Eliza1Tier } from "./manifest";
|
|
15
|
+
import { type ManifestLoader, type RamFitOptions } from "./ram-budget";
|
|
16
|
+
import { recommendForFirstRun } from "./recommendation";
|
|
17
|
+
import type { ActiveModelState, CatalogModel, HardwareProbe, InstalledModel } from "./types";
|
|
18
|
+
export type { KvOffloadMode, LocalInferenceLoadArgs } from "./load-args.js";
|
|
19
|
+
export { ELIZA_1_PLACEHOLDER_IDS, FIRST_RUN_DEFAULT_MODEL_ID, recommendForFirstRun, };
|
|
20
|
+
import type { KvOffloadMode, LocalInferenceLoadArgs } from "./load-args.js";
|
|
21
|
+
export declare function isForkOnlyKvCacheType(name: string | undefined): boolean;
|
|
22
|
+
export declare function isStockKvCacheType(name: string | undefined): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Validate per-load overrides against what the in-process backend can
|
|
25
|
+
* honour. The AOSP loader has its own (broader) acceptance set — pass
|
|
26
|
+
* `{ allowFork: true }` to skip the desktop-only restriction.
|
|
27
|
+
*
|
|
28
|
+
* Throws on the first illegal value so the caller (the API route) can
|
|
29
|
+
* surface a 400 with a useful message instead of letting the load slip
|
|
30
|
+
* through and silently degrade to fp16.
|
|
31
|
+
*/
|
|
32
|
+
export declare function validateLocalInferenceLoadArgs(args: Partial<LocalInferenceLoadArgs>, options?: {
|
|
33
|
+
allowFork?: boolean;
|
|
34
|
+
}): void;
|
|
35
|
+
export interface LocalInferenceLoader {
|
|
36
|
+
loadModel(args: LocalInferenceLoadArgs): Promise<void>;
|
|
37
|
+
unloadModel(): Promise<void>;
|
|
38
|
+
currentModelPath(): string | null;
|
|
39
|
+
/**
|
|
40
|
+
* Optional generation surface. When a loader implements this, the runtime
|
|
41
|
+
* handler (`ensure-local-inference-handler.ts`) routes TEXT_SMALL /
|
|
42
|
+
* TEXT_LARGE requests through it instead of the standalone engine. Mobile
|
|
43
|
+
* builds populate this via the Capacitor adapter; desktop omits it and falls
|
|
44
|
+
* back to the `LocalInferenceEngine`.
|
|
45
|
+
*/
|
|
46
|
+
generate?(args: {
|
|
47
|
+
prompt: string;
|
|
48
|
+
stopSequences?: string[];
|
|
49
|
+
maxTokens?: number;
|
|
50
|
+
temperature?: number;
|
|
51
|
+
/**
|
|
52
|
+
* Optional `promptCacheKey` from the runtime cache plan. Loaders
|
|
53
|
+
* that implement prefix caching (the in-process llama.cpp FFI slot
|
|
54
|
+
* pool or node-llama-cpp session pool) use this to pin
|
|
55
|
+
* subsequent calls with the same key to the same KV cache slot.
|
|
56
|
+
* Loaders without prefix caching can ignore the field.
|
|
57
|
+
*/
|
|
58
|
+
cacheKey?: string;
|
|
59
|
+
}): Promise<string>;
|
|
60
|
+
/**
|
|
61
|
+
* Optional embedding surface. When a loader implements this, the runtime
|
|
62
|
+
* handler routes `TEXT_EMBEDDING` requests through it. The AOSP bun:ffi
|
|
63
|
+
* loader populates this directly via `llama_get_embeddings_seq`; the
|
|
64
|
+
* device-bridge loader populates it by dispatching an `embed` frame to
|
|
65
|
+
* the connected device. Loaders that cannot embed leave this undefined,
|
|
66
|
+
* and the runtime falls back to its non-local embedding provider chain.
|
|
67
|
+
*/
|
|
68
|
+
embed?(args: {
|
|
69
|
+
input: string;
|
|
70
|
+
}): Promise<{
|
|
71
|
+
embedding: number[];
|
|
72
|
+
tokens: number;
|
|
73
|
+
}>;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Per-load override fields the caller can set. Subset of `LocalInferenceLoadArgs`
|
|
77
|
+
* minus `modelPath` (which the coordinator owns) and minus speculative
|
|
78
|
+
* fields (which the catalog `runtime.mtp` block owns end-to-end). The
|
|
79
|
+
* route layer accepts this shape on `POST /api/local-inference/active`.
|
|
80
|
+
*/
|
|
81
|
+
export interface LocalInferenceLoadOverrides {
|
|
82
|
+
contextSize?: number;
|
|
83
|
+
cacheTypeK?: string;
|
|
84
|
+
cacheTypeV?: string;
|
|
85
|
+
gpuLayers?: number;
|
|
86
|
+
kvOffload?: KvOffloadMode;
|
|
87
|
+
flashAttention?: boolean;
|
|
88
|
+
mmap?: boolean;
|
|
89
|
+
mlock?: boolean;
|
|
90
|
+
useGpu?: boolean;
|
|
91
|
+
maxThreads?: number;
|
|
92
|
+
}
|
|
93
|
+
interface ResolveLocalInferenceLoadArgsOptions {
|
|
94
|
+
manifestLoader?: ManifestLoader;
|
|
95
|
+
hardware?: HardwareProbe;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Resolve the per-tier mmproj GGUF path for a given installed model when
|
|
99
|
+
* the catalog declares the tier ships a vision projector AND the file is
|
|
100
|
+
* actually on disk under the bundle root.
|
|
101
|
+
*
|
|
102
|
+
* Returns:
|
|
103
|
+
* - the absolute path to the mmproj file when the tier has vision and
|
|
104
|
+
* the file exists.
|
|
105
|
+
* - undefined when the tier has no vision component (text-only bundle)
|
|
106
|
+
* or when the file hasn't been downloaded yet. In the latter case
|
|
107
|
+
* the coordinator emits a one-shot warning; vision capability is
|
|
108
|
+
* unavailable for the session but the text load still succeeds.
|
|
109
|
+
*
|
|
110
|
+
* Path layout: the catalog's `sourceModel.components.vision.file` is the
|
|
111
|
+
* Hugging Face-relative path, e.g. `bundles/2b/vision/mmproj-2b.gguf`.
|
|
112
|
+
* Locally the bundleRoot already represents the per-tier "bundles/<tier>"
|
|
113
|
+
* subtree, so we strip the leading `bundles/<tier>/` segment before
|
|
114
|
+
* joining against the local bundleRoot. When that prefix isn't present
|
|
115
|
+
* (e.g. a custom bundle layout), we fall through to the original path
|
|
116
|
+
* unchanged. Manifest-validated bundles (`bundleRoot` set) are the only
|
|
117
|
+
* path that lands a vision component — external-scan models (LM Studio,
|
|
118
|
+
* Jan) don't.
|
|
119
|
+
*/
|
|
120
|
+
export declare function resolveMmprojPath(installed: InstalledModel, catalog: CatalogModel | undefined): string | undefined;
|
|
121
|
+
export declare function resolveLocalInferenceLoadArgs(installed: InstalledModel, overrides?: LocalInferenceLoadOverrides, options?: ResolveLocalInferenceLoadArgsOptions): Promise<LocalInferenceLoadArgs>;
|
|
122
|
+
export declare class ModelDoesNotFitError extends Error {
|
|
123
|
+
readonly modelId: string;
|
|
124
|
+
readonly requiredMb: number;
|
|
125
|
+
readonly usableMb: number;
|
|
126
|
+
readonly hostRamMb: number;
|
|
127
|
+
readonly fittingVariantId: string | null;
|
|
128
|
+
constructor(args: {
|
|
129
|
+
modelId: string;
|
|
130
|
+
requiredMb: number;
|
|
131
|
+
usableMb: number;
|
|
132
|
+
hostRamMb: number;
|
|
133
|
+
fittingVariantId: string | null;
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Admission gate: refuse a model load when the host can't fit the bundle's
|
|
138
|
+
* boot floor. `hostRamMb` is the host's total RAM in megabytes. `installed`
|
|
139
|
+
* is forwarded to `assessRamFit` so a manifest-declared `ramBudgetMb` wins
|
|
140
|
+
* over the catalog scalar. Throws `ModelDoesNotFitError` on no-fit; returns
|
|
141
|
+
* the (advisory) fit decision otherwise so callers can log a `tight` warning.
|
|
142
|
+
*
|
|
143
|
+
* Models with no catalog entry (external HF blobs) are not gated — the
|
|
144
|
+
* catalog has no RAM budget for them, so we trust the operator's explicit
|
|
145
|
+
* pick (the dispatcher's load-time error surfaces if it genuinely OOMs).
|
|
146
|
+
*/
|
|
147
|
+
export declare function assertModelFitsHost(installed: InstalledModel, hostRamMb: number, options?: RamFitOptions): {
|
|
148
|
+
level: "fits" | "tight";
|
|
149
|
+
minMb: number;
|
|
150
|
+
recommendedMb: number;
|
|
151
|
+
};
|
|
152
|
+
/**
|
|
153
|
+
* Typed error for refused local-voice sessions. Mirrors
|
|
154
|
+
* `ModelDoesNotFitError` but at the bundle level — emitted by
|
|
155
|
+
* `assertVoiceBundleFitsHost` when the whole co-resident voice + text stack
|
|
156
|
+
* cannot fit a host's RAM (per R9 §2.3 / §3.2).
|
|
157
|
+
*
|
|
158
|
+
* Catch this at the runtime's voice-session-start boundary and surface the
|
|
159
|
+
* tier-warning copy (`TIER_WARNING_COPY[<tier>]`) — DO NOT load weights and
|
|
160
|
+
* watch `MemoryMonitor` evict mid-session.
|
|
161
|
+
*/
|
|
162
|
+
export declare class VoiceBundleDoesNotFitError extends Error {
|
|
163
|
+
readonly tierSlot: string;
|
|
164
|
+
readonly deviceTier: string;
|
|
165
|
+
readonly requiredPeakMb: number;
|
|
166
|
+
readonly requiredSteadyStateMb: number;
|
|
167
|
+
readonly usableMb: number;
|
|
168
|
+
readonly hostRamMb: number;
|
|
169
|
+
constructor(args: {
|
|
170
|
+
tierSlot: string;
|
|
171
|
+
deviceTier: string;
|
|
172
|
+
requiredPeakMb: number;
|
|
173
|
+
requiredSteadyStateMb: number;
|
|
174
|
+
usableMb: number;
|
|
175
|
+
hostRamMb: number;
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Cross-model admission gate for the local-voice session. Sums the whole
|
|
180
|
+
* co-resident bundle (LM + ASR + TTS + embedding + VAD +
|
|
181
|
+
* wake-word + turn-detector + emotion + speaker-encoder + transient TTS
|
|
182
|
+
* peak) and refuses entry when the host can't fit it.
|
|
183
|
+
*
|
|
184
|
+
* Returns the decision on `fits`. Throws `VoiceBundleDoesNotFitError` when
|
|
185
|
+
* `wontfit` (when `strict=true`, the default), or just returns the
|
|
186
|
+
* `wontfit` decision when `strict=false` (the runtime then logs and
|
|
187
|
+
* degrades silently). Pair with `TIER_WARNING_COPY[deviceTier]` for
|
|
188
|
+
* user-facing UX.
|
|
189
|
+
*
|
|
190
|
+
* R9 §1.4 + §2.3 + §3.2 spec.
|
|
191
|
+
*/
|
|
192
|
+
export declare function assertVoiceBundleFitsHost(args: {
|
|
193
|
+
tierSlot: string;
|
|
194
|
+
deviceTier: string;
|
|
195
|
+
hostRamMb: number;
|
|
196
|
+
reserveMb?: number;
|
|
197
|
+
strict?: boolean;
|
|
198
|
+
}): {
|
|
199
|
+
level: "fits" | "tight" | "wontfit";
|
|
200
|
+
steadyStateMb: number;
|
|
201
|
+
peakMb: number;
|
|
202
|
+
usableMb: number;
|
|
203
|
+
fits: boolean;
|
|
204
|
+
};
|
|
205
|
+
/**
|
|
206
|
+
* Refusal raised when activation is asked for a model whose own
|
|
207
|
+
* `eliza-1.manifest.json` says its text eval has not passed (`candidate.*` /
|
|
208
|
+
* `weights-staged.*` tiers). Carries the structured payload the route layer
|
|
209
|
+
* surfaces verbatim to the API consumer: `manifestVersion` so the UI can
|
|
210
|
+
* say "this tier isn't ready" with the actual version string, and
|
|
211
|
+
* `failedEvals` so the user sees which checks are still red.
|
|
212
|
+
*
|
|
213
|
+
* Why we gate here, not just at download:
|
|
214
|
+
* - the bundle may already be on disk (hand-staged, manually copied, or
|
|
215
|
+
* downloaded before a fail-state was recorded), so the download gate
|
|
216
|
+
* alone leaves a window where a candidate-only bundle can be flipped
|
|
217
|
+
* into the active model slot and silently emit `[unused]` tokens.
|
|
218
|
+
*
|
|
219
|
+
* See issue #7679 for the original symptom: the runtime activated a
|
|
220
|
+
* candidate `1.0.0-candidate.1` bundle whose every `evals.*.passed`
|
|
221
|
+
* was `false`, then served BERT/WordPiece reserved tokens (`[unused0..99]`
|
|
222
|
+
* / `[PAD]`) as chat output with no actionable error.
|
|
223
|
+
*/
|
|
224
|
+
export declare class CandidateModelActivationError extends Error {
|
|
225
|
+
readonly modelId: string;
|
|
226
|
+
readonly manifestVersion: string;
|
|
227
|
+
readonly failedEvals: ReadonlyArray<string>;
|
|
228
|
+
constructor(args: {
|
|
229
|
+
modelId: string;
|
|
230
|
+
manifestVersion: string;
|
|
231
|
+
failedEvals: ReadonlyArray<string>;
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Activation eval gate. Reads the installed bundle's manifest and refuses
|
|
236
|
+
* activation when `evals.textEval.passed` is not `true`. A bundle with no
|
|
237
|
+
* `eliza-1.manifest.json` on disk (third-party HF GGUFs, external scans,
|
|
238
|
+
* pre-bundle installs) is *not* gated — the gate only applies to bundles
|
|
239
|
+
* that ship a published manifest, which is the source of truth for the
|
|
240
|
+
* publish state.
|
|
241
|
+
*
|
|
242
|
+
* Throws `CandidateModelActivationError` on a failing manifest; returns
|
|
243
|
+
* silently otherwise.
|
|
244
|
+
*/
|
|
245
|
+
export declare function assertManifestEvalsPassed(installed: InstalledModel, manifestLoader?: ManifestLoader): void;
|
|
246
|
+
/**
|
|
247
|
+
* Refusal raised when activation is asked for a manifest-shipping bundle whose
|
|
248
|
+
* declared `kernels.required` is missing one of the kernels its tier requires
|
|
249
|
+
* (`REQUIRED_KERNELS_BY_TIER`). native/CLAUDE.md §3#5 makes this a hard error:
|
|
250
|
+
* a bundle that doesn't declare its required quant/attention kernels would emit
|
|
251
|
+
* garbage (or silently fall back to an un-optimized path), so we refuse to
|
|
252
|
+
* activate it rather than run a broken model.
|
|
253
|
+
*/
|
|
254
|
+
export declare class MissingRequiredKernelsError extends Error {
|
|
255
|
+
readonly modelId: string;
|
|
256
|
+
readonly tier: Eliza1Tier;
|
|
257
|
+
readonly missing: ReadonlyArray<Eliza1Kernel>;
|
|
258
|
+
constructor(args: {
|
|
259
|
+
modelId: string;
|
|
260
|
+
tier: Eliza1Tier;
|
|
261
|
+
missing: ReadonlyArray<Eliza1Kernel>;
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Activation kernel gate (native/CLAUDE.md §3#5). When the installed bundle
|
|
266
|
+
* ships a manifest, verify it declares every kernel its tier requires; throw
|
|
267
|
+
* `MissingRequiredKernelsError` otherwise. A bundle with no manifest (bare
|
|
268
|
+
* GGUF, external scan, dev path) is NOT gated — there is no kernel contract to
|
|
269
|
+
* check, so it is a no-op.
|
|
270
|
+
*/
|
|
271
|
+
export declare function assertRequiredKernelsPresent(installed: InstalledModel, manifestLoader?: ManifestLoader): void;
|
|
272
|
+
export declare class ActiveModelCoordinator {
|
|
273
|
+
private state;
|
|
274
|
+
/**
|
|
275
|
+
* The last model that successfully reached `status: "ready"`, plus the
|
|
276
|
+
* inputs needed to re-load it. switchTo() tears the active model down
|
|
277
|
+
* before loading the new one (unload-then-load); if the new load fails we
|
|
278
|
+
* restore this so a failed switch never leaves the host with zero models
|
|
279
|
+
* loaded while a working one existed moments earlier. `null` until the
|
|
280
|
+
* first successful load (or after an unload).
|
|
281
|
+
*/
|
|
282
|
+
private lastReady;
|
|
283
|
+
private readonly listeners;
|
|
284
|
+
snapshot(): ActiveModelState;
|
|
285
|
+
subscribe(listener: (state: ActiveModelState) => void): () => void;
|
|
286
|
+
private emit;
|
|
287
|
+
/**
|
|
288
|
+
* WS2: one-shot warning latch per (modelId) — when the tier declares
|
|
289
|
+
* vision but no mmproj GGUF was found on disk, log once so the
|
|
290
|
+
* operator sees that vision is degraded for this session. The
|
|
291
|
+
* arbiter's vision-describe capability stays unregistered for this
|
|
292
|
+
* session; plugin-vision falls back to its non-eliza-1 path.
|
|
293
|
+
*/
|
|
294
|
+
private readonly warnedDegradedVisionFor;
|
|
295
|
+
private warnIfVisionDegraded;
|
|
296
|
+
/** Return the loader service from the current runtime, if registered. */
|
|
297
|
+
private getLoader;
|
|
298
|
+
switchTo(runtime: AgentRuntime | null, installed: InstalledModel, overrides?: LocalInferenceLoadOverrides, opts?: {
|
|
299
|
+
hardware?: HardwareProbe;
|
|
300
|
+
manifestLoader?: ManifestLoader;
|
|
301
|
+
}): Promise<ActiveModelState>;
|
|
302
|
+
/**
|
|
303
|
+
* Run the unload-then-load against the loader (or standalone engine) and
|
|
304
|
+
* build the `status: "ready"` state. Throws on any load failure; never
|
|
305
|
+
* mutates `this.state`/`this.lastReady` so callers control rollback.
|
|
306
|
+
*/
|
|
307
|
+
private performLoad;
|
|
308
|
+
unload(runtime: AgentRuntime | null): Promise<ActiveModelState>;
|
|
309
|
+
}
|
|
310
|
+
//# sourceMappingURL=active-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-model.d.ts","sourceRoot":"","sources":["../../src/services/active-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const QWEN_PROVENANCE_RE: RegExp;
|
|
2
|
+
export declare function collectQwenAsrProvenanceBlockers(input: unknown): string[];
|
|
3
|
+
export declare function readBundleAsrProvenanceBlockers(bundleRoot: string): string[];
|
|
4
|
+
export declare function bundleHasAsrModelFiles(bundleRoot: string): boolean;
|
|
5
|
+
//# sourceMappingURL=asr-provenance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asr-provenance.d.ts","sourceRoot":"","sources":["../../src/services/asr-provenance.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB,QAAY,CAAC;AAc5C,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAoBzE;AAED,wBAAgB,+BAA+B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAS5E;AAWD,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAQlE"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-ModelType model assignment store.
|
|
3
|
+
*
|
|
4
|
+
* Separate from the "active loaded model" concept in `ActiveModelCoordinator`.
|
|
5
|
+
* Assignments are a *policy* — the user's declared intent that
|
|
6
|
+
* `ModelType.TEXT_SMALL` should be served by model X and `TEXT_LARGE` by
|
|
7
|
+
* model Y. The runtime's model handlers lazy-load whichever assignment
|
|
8
|
+
* fires; the coordinator handles the actual swap in and out of memory.
|
|
9
|
+
*
|
|
10
|
+
* Stored in `$ELIZA_STATE_DIR/local-inference/assignments.json`. Cheap
|
|
11
|
+
* enough to rewrite on every change — we never mutate in place.
|
|
12
|
+
*/
|
|
13
|
+
import type { AgentModelSlot, InstalledModel, ModelAssignments } from "./types";
|
|
14
|
+
/**
|
|
15
|
+
* Raised when a slot assignment is outside the curated Eliza-1 catalog. The
|
|
16
|
+
* local stack is Eliza-1 only, so the assignment policy rejects anything else.
|
|
17
|
+
*/
|
|
18
|
+
export declare class AssignmentRejectedError extends Error {
|
|
19
|
+
readonly code: "ASSIGNMENT_REJECTED";
|
|
20
|
+
readonly slot: AgentModelSlot;
|
|
21
|
+
readonly modelId: string;
|
|
22
|
+
constructor(args: {
|
|
23
|
+
slot: AgentModelSlot;
|
|
24
|
+
modelId: string;
|
|
25
|
+
message: string;
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
export declare function readAssignments(): Promise<ModelAssignments>;
|
|
29
|
+
/**
|
|
30
|
+
* Build slot recommendations from currently-installed models.
|
|
31
|
+
*
|
|
32
|
+
* Only default-eligible Eliza-1 downloads are auto-recommended.
|
|
33
|
+
* External-scan blobs and ad-hoc Hugging Face downloads are never assigned to
|
|
34
|
+
* agent slots.
|
|
35
|
+
*
|
|
36
|
+
* Why: external blobs may use newer architectures or quant formats outside
|
|
37
|
+
* the bundled `capacitor-llama` binding's supported set. Auto-loading
|
|
38
|
+
* an external blob the user never selected silently breaks PROACTIVE_AGENT
|
|
39
|
+
* and other background tasks at boot. The user opted into the external
|
|
40
|
+
* tool, not into Eliza loading those weights through llama.cpp.
|
|
41
|
+
*/
|
|
42
|
+
export declare function buildRecommendedAssignments(installed: InstalledModel[]): ModelAssignments;
|
|
43
|
+
export declare function readEffectiveAssignments(): Promise<ModelAssignments>;
|
|
44
|
+
export declare function writeAssignments(assignments: ModelAssignments): Promise<void>;
|
|
45
|
+
export declare function setAssignment(slot: AgentModelSlot, modelId: string | null): Promise<ModelAssignments>;
|
|
46
|
+
/**
|
|
47
|
+
* Decide which slots a freshly-installed model is a sensible default for.
|
|
48
|
+
*
|
|
49
|
+
* Today the curated catalog tags models with `category` ∈
|
|
50
|
+
* `chat | code | tools | tiny | reasoning` and `bucket` ∈
|
|
51
|
+
* `small | mid | large | xl` — no explicit "embedding" tag, because the
|
|
52
|
+
* default catalog ships only generative models. The defensive check below
|
|
53
|
+
* still recognizes an "embedding" category/bucket for catalog additions and
|
|
54
|
+
* for external-scan models whose ids contain a recognizable
|
|
55
|
+
* embedding-family marker (`nomic-embed`, `bge`, `all-minilm`, `gte`,
|
|
56
|
+
* `e5-`). External GGUFs without a catalog entry default to generative.
|
|
57
|
+
*/
|
|
58
|
+
export declare function isEmbeddingModelId(modelId: string): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Fill empty assignment slots with `modelId`. Idempotent: never overwrites
|
|
61
|
+
* an existing slot. Embedding models only fill `TEXT_EMBEDDING`; generative
|
|
62
|
+
* models only fill `TEXT_SMALL` and `TEXT_LARGE`. Returns the resulting
|
|
63
|
+
* assignment map (read state is `readAssignments()`, not effective +
|
|
64
|
+
* recommended).
|
|
65
|
+
*
|
|
66
|
+
* Wired from the downloader's success path and the runtime boot's
|
|
67
|
+
* "exactly one model installed, no assignments" branch so first-light
|
|
68
|
+
* users land in chat without a Settings detour. The hard error in
|
|
69
|
+
* `ensure-local-inference-handler.ts` only fires when the operator has
|
|
70
|
+
* actively cleared the assignment.
|
|
71
|
+
*/
|
|
72
|
+
export declare function ensureDefaultAssignment(modelId: string): Promise<ModelAssignments>;
|
|
73
|
+
/**
|
|
74
|
+
* Boot-time helper. If exactly one default-eligible Eliza-1 model is
|
|
75
|
+
* installed and no assignment file exists yet, auto-fill its slots so
|
|
76
|
+
* the first session works without the user opening Settings. No-op when
|
|
77
|
+
* assignments are already present or when more than one default-eligible
|
|
78
|
+
* model is installed (we cannot guess intent).
|
|
79
|
+
*
|
|
80
|
+
* External-scan blobs and custom Hugging Face downloads are intentionally
|
|
81
|
+
* excluded - see `buildRecommendedAssignments` for the rationale.
|
|
82
|
+
*/
|
|
83
|
+
export declare function autoAssignAtBoot(installed: InstalledModel[]): Promise<ModelAssignments | null>;
|
|
84
|
+
//# sourceMappingURL=assignments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assignments.d.ts","sourceRoot":"","sources":["../../src/services/assignments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAIhF;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IACjD,QAAQ,CAAC,IAAI,EAAG,qBAAqB,CAAU;IAC/C,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBACb,IAAI,EAAE;QACjB,IAAI,EAAE,cAAc,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KAChB;CAMD;AAoCD,wBAAsB,eAAe,IAAI,OAAO,CAAC,gBAAgB,CAAC,CASjE;AAYD;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CAC1C,SAAS,EAAE,cAAc,EAAE,GACzB,gBAAgB,CAmBlB;AAED,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAS1E;AAED,wBAAsB,gBAAgB,CACrC,WAAW,EAAE,gBAAgB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,aAAa,CAClC,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,MAAM,GAAG,IAAI,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAkB3B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAe3D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAC5C,OAAO,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,CAAC,CA4B3B;AAED;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACrC,SAAS,EAAE,cAAc,EAAE,GACzB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAclC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local-inference backend selector.
|
|
3
|
+
*
|
|
4
|
+
* One choice per host process: route generation through the in-process
|
|
5
|
+
* FFI streaming runner (`ffi-streaming-runner.ts`). The selection is
|
|
6
|
+
* deterministic so callers can mock it in tests and so no platform falls
|
|
7
|
+
* back to a server sidecar by accident.
|
|
8
|
+
*
|
|
9
|
+
* Rules:
|
|
10
|
+
* - Mobile (Android / iOS) ALWAYS uses `ffi-streaming`. The
|
|
11
|
+
* `llama-server` child-process path cannot ship on mobile (sandbox
|
|
12
|
+
* restrictions, App Store review, ~10–30 ms HTTP round-trip per
|
|
13
|
+
* token, no slot persistence on Android's APK private dir). When
|
|
14
|
+
* the FFI symbols are absent on a mobile build we throw — there is
|
|
15
|
+
* no second backend to fall back to.
|
|
16
|
+
* - Desktop also uses `ffi-streaming`. Missing streaming-LLM symbols are
|
|
17
|
+
* a bad build, not a reason to start a server backend.
|
|
18
|
+
* - `ELIZA_INFERENCE_BACKEND=ffi` forces the streaming runner and
|
|
19
|
+
* throws if the symbols are absent. `=auto` (or unset) follows the
|
|
20
|
+
* rules above.
|
|
21
|
+
*
|
|
22
|
+
* The selector intentionally does NOT inspect the live process to detect
|
|
23
|
+
* mobile — callers pass that information in. The mobile bootstrap
|
|
24
|
+
* (`aosp-mtp-adapter.ts` / the iOS bridge) knows what it is; tests
|
|
25
|
+
* pass synthetic values. Keeping detection out of the selector matches
|
|
26
|
+
* AGENTS.md §7 (single source of truth for inputs) and lets the
|
|
27
|
+
* decision be replayed offline.
|
|
28
|
+
*/
|
|
29
|
+
export type LocalInferenceBackend = "ffi-streaming";
|
|
30
|
+
export type LocalInferencePlatform = "desktop" | "mobile";
|
|
31
|
+
export interface BackendSelectInput {
|
|
32
|
+
/** Where the host is running. */
|
|
33
|
+
platform: LocalInferencePlatform;
|
|
34
|
+
/**
|
|
35
|
+
* `llmStreamSupported()` from the loaded FFI binding. All builds MUST
|
|
36
|
+
* have this true; false means the runtime was built without the unified
|
|
37
|
+
* llama.cpp FFI path.
|
|
38
|
+
*/
|
|
39
|
+
ffiSupported: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Optional env override (`ELIZA_INFERENCE_BACKEND`). `"ffi"` forces
|
|
42
|
+
* the FFI path, while `"auto"` or unset follows the default rule.
|
|
43
|
+
*/
|
|
44
|
+
envOverride?: string | null;
|
|
45
|
+
}
|
|
46
|
+
/** Read the `ELIZA_INFERENCE_BACKEND` env var into a normalised value. */
|
|
47
|
+
export declare function readBackendEnvOverride(env?: NodeJS.ProcessEnv): "ffi" | "auto" | null;
|
|
48
|
+
/**
|
|
49
|
+
* Decide which local-inference backend should service text generation.
|
|
50
|
+
* See file header for the full rule set. Throws when the chosen
|
|
51
|
+
* combination is incoherent (no FFI support, explicit FFI with a bad
|
|
52
|
+
* runtime build, …).
|
|
53
|
+
*/
|
|
54
|
+
export declare function selectBackend(input: BackendSelectInput): LocalInferenceBackend;
|
|
55
|
+
//# sourceMappingURL=backend-selector.d.ts.map
|