@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 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/services/manifest/schema.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,eAAO,MAAM,+BAA+B,EAAG,GAAY,CAAC;AAC5D,eAAO,MAAM,2BAA2B,EACvC,qDAA8D,CAAC;AAKhE,eAAO,MAAM,wBAAwB,EAAG,QAAiB,CAAC;AAC1D,eAAO,MAAM,4BAA4B,EAAG,MAAgB,CAAC;AAM7D,eAAO,MAAM,iBAAiB,sDAGpB,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAI/D,eAAO,MAAM,aAAa,gDAAiD,CAAC;AAC5E,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAcxD,eAAO,MAAM,eAAe,gFAMlB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAC5D,MAAM,MAAM,2BAA2B,GAAG,OAAO,CAChD,kBAAkB,EAClB,UAAU,CACV,CAAC;AAsBF,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAC9C,MAAM,CAAC,YAAY,EAAE,2BAA2B,CAAC,CAOjD,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAC9C,MAAM,CAAC,2BAA2B,EAAE,YAAY,CAAC,CAOjD,CAAC;AAEF,eAAO,MAAM,gBAAgB,qDAMnB,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAgB9D,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAC9C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAO/C,CAAC;AAKF,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAC9C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAO/C,CAAC;AAGF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAChD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,CAOhD,CAAC;AAeF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+B9B,CAAC;AAWH,eAAO,MAAM,4BAA4B,qCAAsC,CAAC;AAChF,MAAM,MAAM,sBAAsB,GACjC,CAAC,OAAO,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/C,eAAO,MAAM,gCAAgC;;;EAE5C,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;iBAYhC,CAAC;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB;;;;;iBAKnC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmE5B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;EAA0B,CAAC;AAC9D,eAAO,MAAM,uBAAuB;;;;;;EAA2B,CAAC;AAChE,eAAO,MAAM,oBAAoB;;;;;;EAAwB,CAAC;AAE1D,eAAO,MAAM,iCAAiC;;;;;;;;;;iBAU5C,CAAC;AASH,eAAO,MAAM,4BAA4B;;;;iBAIvC,CAAC;AAOH,eAAO,MAAM,4BAA4B;;;;;;;iBAS1B,CAAC;AAEhB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiB9B,CAAC;AAMH,eAAO,MAAM,0BAA0B,6CAI7B,CAAC;AACX,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAClD,eAAO,MAAM,uBAAuB,mCAAmC,CAAC;AACxE,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;iBAQ5B,CAAC;AA2CH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+F5B,CAAC;AAEH,uEAAuE;AACvE,eAAO,MAAM,0BAA0B,EAAG,IAAa,CAAC;AAExD,2EAA2E;AAC3E,eAAO,MAAM,mCAAmC,EAAG,EAAW,CAAC;AAE/D,oEAAoE;AACpE,eAAO,MAAM,oCAAoC,EAAG,IAAa,CAAC;AAElE,uEAAuE;AACvE,eAAO,MAAM,uCAAuC,EAAG,GAAY,CAAC;AAEpE,+EAA+E;AAC/E,eAAO,MAAM,wCAAwC,EAAG,EAAW,CAAC;AAEpE,eAAO,MAAM,qBAAqB;;;iBAO/B,CAAC;AAiBJ,eAAO,MAAM,sBAAsB,yGAOzB,CAAC;AACX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAYzE,eAAO,MAAM,wBAAwB,qCAAsC,CAAC;AAC5E,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAK7E,eAAO,MAAM,wBAAwB,wFAS3B,CAAC;AACX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAkB7E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;iBAOjC,CAAC;AAMH,eAAO,MAAM,qBAAqB;;;iBAGhC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgF/B,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { z } from "zod";
|
|
2
|
+
import type { CpuFeatureProbe } from "../types";
|
|
3
|
+
import type { ELIZA_1_PROVENANCE_SLOTS, ELIZA_1_RELEASE_CHANNELS, ELIZA_1_RELEASE_STATES, Eliza1BackendEnumSchema, Eliza1EvalsSchema, Eliza1FileEntrySchema, Eliza1FilesSchema, Eliza1KernelEnumSchema, Eliza1KernelsSchema, Eliza1LibFileEntrySchema, Eliza1LineageSchema, Eliza1ManifestSchema, Eliza1ProvenanceSchema, Eliza1RamBudgetSchema, Eliza1TextRuntimeClassEnumSchema, Eliza1TierEnumSchema, Eliza1VerifiedBackendStatusSchema, Eliza1VoiceSchema } from "./schema";
|
|
4
|
+
export type Eliza1Tier = z.infer<typeof Eliza1TierEnumSchema>;
|
|
5
|
+
export type Eliza1Kernel = z.infer<typeof Eliza1KernelEnumSchema>;
|
|
6
|
+
export type Eliza1Backend = z.infer<typeof Eliza1BackendEnumSchema>;
|
|
7
|
+
export type Eliza1TextRuntimeClass = z.infer<typeof Eliza1TextRuntimeClassEnumSchema>;
|
|
8
|
+
export type Eliza1FileEntry = z.infer<typeof Eliza1FileEntrySchema>;
|
|
9
|
+
export type Eliza1LibFileEntry = z.infer<typeof Eliza1LibFileEntrySchema>;
|
|
10
|
+
export type Eliza1Files = z.infer<typeof Eliza1FilesSchema>;
|
|
11
|
+
export type Eliza1Lineage = z.infer<typeof Eliza1LineageSchema>;
|
|
12
|
+
export type Eliza1Kernels = z.infer<typeof Eliza1KernelsSchema>;
|
|
13
|
+
export type Eliza1Evals = z.infer<typeof Eliza1EvalsSchema>;
|
|
14
|
+
export type Eliza1RamBudget = z.infer<typeof Eliza1RamBudgetSchema>;
|
|
15
|
+
export type Eliza1Voice = z.infer<typeof Eliza1VoiceSchema>;
|
|
16
|
+
export type Eliza1Provenance = z.infer<typeof Eliza1ProvenanceSchema>;
|
|
17
|
+
export type Eliza1ProvenanceSlot = (typeof ELIZA_1_PROVENANCE_SLOTS)[number];
|
|
18
|
+
export type Eliza1ReleaseState = (typeof ELIZA_1_RELEASE_STATES)[number];
|
|
19
|
+
export type Eliza1ReleaseChannel = (typeof ELIZA_1_RELEASE_CHANNELS)[number];
|
|
20
|
+
export type Eliza1VerifiedBackendStatus = z.infer<typeof Eliza1VerifiedBackendStatusSchema>;
|
|
21
|
+
export type Eliza1Manifest = z.infer<typeof Eliza1ManifestSchema>;
|
|
22
|
+
/**
|
|
23
|
+
* Capability snapshot of a target device — whatever the runtime detected
|
|
24
|
+
* (Metal on Mac, Vulkan on Linux/Android, CUDA on NVIDIA, CPU as floor).
|
|
25
|
+
* `canSetAsDefault()` checks the manifest's verifiedBackends against this.
|
|
26
|
+
*/
|
|
27
|
+
export interface Eliza1DeviceCaps {
|
|
28
|
+
availableBackends: ReadonlyArray<Eliza1Backend>;
|
|
29
|
+
ramMb: number;
|
|
30
|
+
cpuFeatures?: CpuFeatureProbe;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/manifest/types.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EACX,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,gCAAgC,EAChC,oBAAoB,EACpB,iCAAiC,EACjC,iBAAiB,EACjB,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAC9D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAClE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACpE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAC3C,OAAO,gCAAgC,CACvC,CAAC;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7E,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AACzE,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7E,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAChD,OAAO,iCAAiC,CACxC,CAAC;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAChC,iBAAiB,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,eAAe,CAAC;CAC9B"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { Eliza1DeviceCaps, Eliza1Kernel, Eliza1Manifest, Eliza1Tier } from "./types";
|
|
2
|
+
export interface ValidationOk {
|
|
3
|
+
ok: true;
|
|
4
|
+
manifest: Eliza1Manifest;
|
|
5
|
+
}
|
|
6
|
+
export interface ValidationErr {
|
|
7
|
+
ok: false;
|
|
8
|
+
errors: ReadonlyArray<string>;
|
|
9
|
+
}
|
|
10
|
+
export type ValidationResult = ValidationOk | ValidationErr;
|
|
11
|
+
/**
|
|
12
|
+
* Schema + contract validation. Returns a Result-shaped object so callers
|
|
13
|
+
* can inspect every error rather than catching the first thrown one.
|
|
14
|
+
*
|
|
15
|
+
* Throws nothing for invalid input — invalid manifests are reported via
|
|
16
|
+
* `{ ok: false, errors }`. Truly exceptional cases (non-object input)
|
|
17
|
+
* surface as Zod issues, not exceptions.
|
|
18
|
+
*/
|
|
19
|
+
export declare function validateManifest(input: unknown): ValidationResult;
|
|
20
|
+
/**
|
|
21
|
+
* Throws on invalid input. Use this from boot paths where a structured
|
|
22
|
+
* error is already attached at the boundary. Internal use only — UI
|
|
23
|
+
* code should prefer `validateManifest`.
|
|
24
|
+
*/
|
|
25
|
+
export declare function parseManifestOrThrow(input: unknown): Eliza1Manifest;
|
|
26
|
+
/**
|
|
27
|
+
* `canSetAsDefault` is the recommendation-engine gate. A manifest that
|
|
28
|
+
* passes this is allowed to fill an empty default slot for the device:
|
|
29
|
+
*
|
|
30
|
+
* - the manifest is contract-valid (every required kernel declared, every
|
|
31
|
+
* required eval green for a strict release, lineage/files consistent),
|
|
32
|
+
* - the device RAM meets the manifest's `ramBudgetMb.min` floor,
|
|
33
|
+
* - the device exposes at least one backend the manifest verified `pass`
|
|
34
|
+
* on out of the tier's supported set.
|
|
35
|
+
*
|
|
36
|
+
* A `defaultEligible: true` manifest is the strict release: every supported
|
|
37
|
+
* backend kernel-verified `pass`, every required eval green. A
|
|
38
|
+
* `defaultEligible: false` manifest with an explicit candidate/staging
|
|
39
|
+
* `releaseState` (`base-v1-candidate`, `local-standin`, `upload-candidate`)
|
|
40
|
+
* is still permitted to fill an empty default slot **when this device can
|
|
41
|
+
* run it** — the recommender prefers a strict release over a candidate when
|
|
42
|
+
* both are installed (see `isStrictReleaseManifest`). Version-only staging
|
|
43
|
+
* stamps such as `1.0.0-weights-staged.2` are accepted by the install parser
|
|
44
|
+
* so QA bundles can be materialized, but they do not get this auto-default
|
|
45
|
+
* relaxation unless the manifest also carries an explicit staging
|
|
46
|
+
* `releaseState`.
|
|
47
|
+
*
|
|
48
|
+
* The device-caps check rejects "this device has Vulkan only but the
|
|
49
|
+
* manifest only verified Metal/CUDA" — a manifest may be contract-valid
|
|
50
|
+
* but not runnable on this device.
|
|
51
|
+
*/
|
|
52
|
+
export declare function canSetAsDefault(manifest: Eliza1Manifest, device: Eliza1DeviceCaps): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Strict release identifier: a `defaultEligible: true` manifest. The
|
|
55
|
+
* recommender uses this to prefer a strict release over a candidate
|
|
56
|
+
* bundle when both are installed and contract-valid. Mirrors the
|
|
57
|
+
* publish-side `eliza1_gates.yaml` strict bar.
|
|
58
|
+
*/
|
|
59
|
+
export declare function isStrictReleaseManifest(manifest: Eliza1Manifest): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Convenience: list missing required kernels for a tier without doing
|
|
62
|
+
* full validation. Used by the recommendation engine when surfacing
|
|
63
|
+
* "this bundle is broken" diagnostics.
|
|
64
|
+
*/
|
|
65
|
+
export declare function missingRequiredKernels(tier: Eliza1Tier, declaredRequired: ReadonlyArray<Eliza1Kernel>): ReadonlyArray<Eliza1Kernel>;
|
|
66
|
+
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/services/manifest/validator.ts"],"names":[],"mappings":"AAyCA,OAAO,KAAK,EAEX,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,UAAU,EACV,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,aAAa,CAAC;AAE5D;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAkBjE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAQnE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,eAAe,CAC9B,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,gBAAgB,GACtB,OAAO,CAoBT;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAEzE;AA0cD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACrC,IAAI,EAAE,UAAU,EAChB,gBAAgB,EAAE,aAAa,CAAC,YAAY,CAAC,GAC3C,aAAa,CAAC,YAAY,CAAC,CAG7B"}
|
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Arbiter — single in-process owner of every model handle (text,
|
|
3
|
+
* embedding, vision-language, ASR, TTS, image generation) for the local
|
|
4
|
+
* inference stack. WS1 deliverable.
|
|
5
|
+
*
|
|
6
|
+
* Why this exists
|
|
7
|
+
* ---------------
|
|
8
|
+
* The current code has every plugin loading independently:
|
|
9
|
+
*
|
|
10
|
+
* - `plugin-local-inference` owns the text + voice GGUFs through
|
|
11
|
+
* `LocalInferenceEngine` + `SharedResourceRegistry`.
|
|
12
|
+
* - `plugin-vision` loads its own TF.js / face-api models with no
|
|
13
|
+
* shared budget.
|
|
14
|
+
* - `plugin-aosp-local-inference` runs the bun:ffi llama.cpp binding
|
|
15
|
+
* in its own world, also with no shared budget.
|
|
16
|
+
*
|
|
17
|
+
* On a 6 GB iPhone or an 8 GB low-tier Android, that means loading a
|
|
18
|
+
* vision model on top of a text model gets the app jetsam'd / lmkd-killed
|
|
19
|
+
* before the planner even runs.
|
|
20
|
+
*
|
|
21
|
+
* The arbiter is the single seam every consumer goes through to acquire
|
|
22
|
+
* a model. It owns the eviction policy across modalities (the existing
|
|
23
|
+
* `ResidentModelRole` priority table + memory-pressure signals from the
|
|
24
|
+
* platform), it owns the queue for capability swaps (a vision-describe
|
|
25
|
+
* arriving while the text model is generating waits its turn rather than
|
|
26
|
+
* triggering a parallel load that OOMs), and it owns the
|
|
27
|
+
* `vision-embedding-cache` so repeat frames don't re-pay the projector.
|
|
28
|
+
*
|
|
29
|
+
* What this module does NOT do
|
|
30
|
+
* ----------------------------
|
|
31
|
+
* - It does not implement any model loader. Loaders are passed in via
|
|
32
|
+
* `registerCapability(...)` by the plugins that own the binding
|
|
33
|
+
* (plugin-local-inference for text/embedding, plugin-vision for
|
|
34
|
+
* vision-describe, plugin-image-gen for diffusion, etc.).
|
|
35
|
+
* - It does not download models, probe hardware, or render UI. Those
|
|
36
|
+
* are the existing `Downloader`, `probeHardware`, and Settings UI
|
|
37
|
+
* concerns.
|
|
38
|
+
* - It does not run on a worker thread. One process, one event loop —
|
|
39
|
+
* the arbiter coordinates async work via promises only.
|
|
40
|
+
*
|
|
41
|
+
* Consumer contract
|
|
42
|
+
* -----------------
|
|
43
|
+
* Capability handlers register themselves at boot:
|
|
44
|
+
*
|
|
45
|
+
* ```ts
|
|
46
|
+
* arbiter.registerCapability({
|
|
47
|
+
* capability: "vision-describe",
|
|
48
|
+
* residentRole: "vision",
|
|
49
|
+
* load: async (modelKey) => loadVisionModel(modelKey),
|
|
50
|
+
* unload: async (handle) => handle.dispose(),
|
|
51
|
+
* run: async (handle, req) => handle.describe(req.imageBytes),
|
|
52
|
+
* });
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* Then anyone can call:
|
|
56
|
+
*
|
|
57
|
+
* ```ts
|
|
58
|
+
* const result = await arbiter.requestVisionDescribe({
|
|
59
|
+
* modelKey: "gemma-vl-4b",
|
|
60
|
+
* imageBytes: pixels,
|
|
61
|
+
* });
|
|
62
|
+
* ```
|
|
63
|
+
*
|
|
64
|
+
* The arbiter handles:
|
|
65
|
+
* 1. Acquiring (or reusing) the handle for `gemma-vl-4b`.
|
|
66
|
+
* 2. If a different capability holds the active model and we need to
|
|
67
|
+
* swap, evicting it first.
|
|
68
|
+
* 3. Running the request.
|
|
69
|
+
* 4. Releasing the handle (refcounted; the handle stays loaded until
|
|
70
|
+
* pressure or idle eviction reclaims it).
|
|
71
|
+
*
|
|
72
|
+
* Telemetry
|
|
73
|
+
* ---------
|
|
74
|
+
* The arbiter emits typed events:
|
|
75
|
+
* - `model_load` — a handle came online (capability, modelKey, ms)
|
|
76
|
+
* - `model_unload` — a handle went offline (capability, modelKey, reason)
|
|
77
|
+
* - `memory_pressure` — pressure level changed (level, source, freeMb?)
|
|
78
|
+
* - `eviction` — a role was evicted (capability, modelKey, reason)
|
|
79
|
+
* - `capability_run` — a request completed (capability, modelKey, ms)
|
|
80
|
+
*
|
|
81
|
+
* The runtime observability layer subscribes via `onEvent(...)`.
|
|
82
|
+
*/
|
|
83
|
+
import type { MemoryPressureLevel, MemoryPressureSource } from "./memory-pressure";
|
|
84
|
+
import { VisionEmbeddingCache, type VisionEmbeddingEntry } from "./vision-embedding-cache";
|
|
85
|
+
import { type ResidentModelRole, type SharedResourceRegistry } from "./voice/shared-resources";
|
|
86
|
+
/**
|
|
87
|
+
* Capability identifiers the arbiter routes between. One per consumer
|
|
88
|
+
* surface — keep this list short; new capabilities should be added
|
|
89
|
+
* deliberately, not on a whim.
|
|
90
|
+
*/
|
|
91
|
+
export type ArbiterCapability = "text" | "embedding" | "vision-describe" | "image-gen" | "transcribe";
|
|
92
|
+
/** The opaque handle returned by `acquire`. Callers MUST `release` it. */
|
|
93
|
+
export interface ArbiterHandle<TBackend = unknown> {
|
|
94
|
+
readonly capability: ArbiterCapability;
|
|
95
|
+
readonly modelKey: string;
|
|
96
|
+
readonly backend: TBackend;
|
|
97
|
+
/**
|
|
98
|
+
* Increment the refcount so the handle is shared. Returns the same
|
|
99
|
+
* underlying handle. Useful when one consumer hands the handle to
|
|
100
|
+
* another mid-flight.
|
|
101
|
+
*/
|
|
102
|
+
retain(): void;
|
|
103
|
+
/** Decrement the refcount. When it hits zero the role becomes evictable. */
|
|
104
|
+
release(): Promise<void>;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* What a capability handler tells the arbiter about itself. The arbiter
|
|
108
|
+
* uses these to load on demand, run requests, and unload under pressure.
|
|
109
|
+
*/
|
|
110
|
+
export interface CapabilityRegistration<TBackend, TRequest, TResult> {
|
|
111
|
+
capability: ArbiterCapability;
|
|
112
|
+
/**
|
|
113
|
+
* Optional override for the resident-role priority. Defaults to the
|
|
114
|
+
* `CAPABILITY_ROLE` map; pass when a specific binding has different
|
|
115
|
+
* eviction semantics than the default for its capability.
|
|
116
|
+
*/
|
|
117
|
+
residentRole?: ResidentModelRole;
|
|
118
|
+
/**
|
|
119
|
+
* Best-effort estimate of bytes the model occupies in RAM/VRAM once
|
|
120
|
+
* loaded. Used by telemetry only — eviction picks by *priority*, not by
|
|
121
|
+
* size, so a wrong estimate doesn't change behaviour. 0 when unknown.
|
|
122
|
+
*/
|
|
123
|
+
estimatedMb?: number;
|
|
124
|
+
/** Load the backend for a given model key. Called at most once per (capability, modelKey). */
|
|
125
|
+
load: (modelKey: string) => Promise<TBackend>;
|
|
126
|
+
/** Tear the backend down. The arbiter stops referencing it after this resolves. */
|
|
127
|
+
unload: (backend: TBackend) => Promise<void>;
|
|
128
|
+
/** Run one request through the backend. */
|
|
129
|
+
run: (backend: TBackend, request: TRequest) => Promise<TResult>;
|
|
130
|
+
}
|
|
131
|
+
/** Telemetry event the runtime observability layer can subscribe to. */
|
|
132
|
+
export type ArbiterEvent = {
|
|
133
|
+
type: "model_load";
|
|
134
|
+
capability: ArbiterCapability;
|
|
135
|
+
modelKey: string;
|
|
136
|
+
loadMs: number;
|
|
137
|
+
atMs: number;
|
|
138
|
+
} | {
|
|
139
|
+
type: "model_unload";
|
|
140
|
+
capability: ArbiterCapability;
|
|
141
|
+
modelKey: string;
|
|
142
|
+
reason: "release" | "swap" | "pressure" | "shutdown" | "fit";
|
|
143
|
+
atMs: number;
|
|
144
|
+
} | {
|
|
145
|
+
type: "memory_pressure";
|
|
146
|
+
level: MemoryPressureLevel;
|
|
147
|
+
source: string;
|
|
148
|
+
freeMb?: number;
|
|
149
|
+
atMs: number;
|
|
150
|
+
} | {
|
|
151
|
+
type: "eviction";
|
|
152
|
+
capability: ArbiterCapability;
|
|
153
|
+
modelKey: string;
|
|
154
|
+
reason: "pressure" | "swap" | "fit";
|
|
155
|
+
estimatedMb: number;
|
|
156
|
+
atMs: number;
|
|
157
|
+
} | {
|
|
158
|
+
type: "capability_run";
|
|
159
|
+
capability: ArbiterCapability;
|
|
160
|
+
modelKey: string;
|
|
161
|
+
runMs: number;
|
|
162
|
+
atMs: number;
|
|
163
|
+
};
|
|
164
|
+
export type ArbiterEventListener = (event: ArbiterEvent) => void;
|
|
165
|
+
export interface MemoryArbiterOptions {
|
|
166
|
+
registry: SharedResourceRegistry;
|
|
167
|
+
pressureSource?: MemoryPressureSource;
|
|
168
|
+
visionCache?: VisionEmbeddingCache;
|
|
169
|
+
logger?: {
|
|
170
|
+
info?: (m: string) => void;
|
|
171
|
+
warn?: (m: string) => void;
|
|
172
|
+
debug?: (m: string) => void;
|
|
173
|
+
};
|
|
174
|
+
now?: () => number;
|
|
175
|
+
/**
|
|
176
|
+
* Usable RAM budget (MB) for the proactive fit-to-budget LRU eviction
|
|
177
|
+
* path. Before loading a model whose `estimatedMb` would push the sum of
|
|
178
|
+
* resident footprints past this budget, the arbiter evicts the
|
|
179
|
+
* least-recently-used evictable entries (refcount 0, never the text
|
|
180
|
+
* target) until it fits. Return `null` to disable the fit path entirely —
|
|
181
|
+
* the default, since an arbiter with no host-RAM knowledge must not guess.
|
|
182
|
+
* Production wiring passes `os.totalmem()/MB - ramHeadroomReserveMb()`.
|
|
183
|
+
*/
|
|
184
|
+
budgetMb?: () => number | null;
|
|
185
|
+
/**
|
|
186
|
+
* Resident footprint (MB) the arbiter does NOT own in its `resident` map
|
|
187
|
+
* but which still consumes the host budget — the text-target and embedding
|
|
188
|
+
* weights loaded by `LocalInferenceEngine` on its own
|
|
189
|
+
* `SharedResourceRegistry` (#8809 M10b). Without this hook the arbiter's
|
|
190
|
+
* `residentFootprintMb()` sees only vision/image-gen and the proactive
|
|
191
|
+
* `evictToFit` path never trips (the two dominant resident consumers are
|
|
192
|
+
* invisible to it). Production wiring (service.ts) reads the engine's
|
|
193
|
+
* `text-target` + `embedding` resident estimates. These weights are owned by
|
|
194
|
+
* the engine and are never the arbiter's eviction target — they are pure
|
|
195
|
+
* budget accounting, exactly like the pinned text-target in the resident map.
|
|
196
|
+
* Defaults to 0 (no external footprint known).
|
|
197
|
+
*/
|
|
198
|
+
externalFootprintMb?: () => number;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* The arbiter. One instance per process; the plugin owns the singleton
|
|
202
|
+
* (see `index.ts`), and any consumer calls `getMemoryArbiter()` rather
|
|
203
|
+
* than newing one up.
|
|
204
|
+
*/
|
|
205
|
+
export declare class MemoryArbiter {
|
|
206
|
+
private readonly registry;
|
|
207
|
+
private readonly pressureSource;
|
|
208
|
+
private readonly visionCache;
|
|
209
|
+
private readonly log?;
|
|
210
|
+
private readonly now;
|
|
211
|
+
private readonly budgetMb;
|
|
212
|
+
private readonly externalFootprintMb;
|
|
213
|
+
private readonly capabilities;
|
|
214
|
+
private readonly resident;
|
|
215
|
+
private readonly listeners;
|
|
216
|
+
private pressureUnsubscribe;
|
|
217
|
+
private currentPressure;
|
|
218
|
+
/**
|
|
219
|
+
* One serialized in-flight load per (capability, modelKey) so concurrent
|
|
220
|
+
* `requestX` calls share a single load promise instead of triggering
|
|
221
|
+
* duplicate weights into RAM.
|
|
222
|
+
*/
|
|
223
|
+
private readonly inFlightLoads;
|
|
224
|
+
/**
|
|
225
|
+
* Per-capability run queue. The arbiter does NOT serialize across
|
|
226
|
+
* capabilities; what it serializes is the *swap*: when a request needs
|
|
227
|
+
* to evict another resident role first, the ongoing run on that role is
|
|
228
|
+
* allowed to finish, then the swap proceeds. Concurrent runs against the
|
|
229
|
+
* same loaded handle pass through directly.
|
|
230
|
+
*/
|
|
231
|
+
private readonly queues;
|
|
232
|
+
private readonly running;
|
|
233
|
+
private shuttingDown;
|
|
234
|
+
constructor(opts: MemoryArbiterOptions);
|
|
235
|
+
/** Begin observing memory pressure. Idempotent. */
|
|
236
|
+
start(): void;
|
|
237
|
+
/** Stop observing pressure. Does NOT evict resident handles. */
|
|
238
|
+
stop(): void;
|
|
239
|
+
/** Tear down: stop pressure observation and unload every resident handle. */
|
|
240
|
+
shutdown(): Promise<void>;
|
|
241
|
+
/** Subscribe to telemetry events. Returns the unsubscribe fn. */
|
|
242
|
+
onEvent(listener: ArbiterEventListener): () => void;
|
|
243
|
+
private emit;
|
|
244
|
+
/** Register a capability handler. Throws on duplicate registration. */
|
|
245
|
+
registerCapability<TBackend, TRequest, TResult>(registration: CapabilityRegistration<TBackend, TRequest, TResult>): void;
|
|
246
|
+
/** Whether a capability has been registered. */
|
|
247
|
+
hasCapability(capability: ArbiterCapability): boolean;
|
|
248
|
+
/** Diagnostic snapshot of all resident handles. */
|
|
249
|
+
residentSnapshot(): ReadonlyArray<{
|
|
250
|
+
capability: ArbiterCapability;
|
|
251
|
+
modelKey: string;
|
|
252
|
+
residentRole: ResidentModelRole;
|
|
253
|
+
estimatedMb: number;
|
|
254
|
+
refCount: number;
|
|
255
|
+
loadedAtMs: number;
|
|
256
|
+
lastUsedAt: number;
|
|
257
|
+
}>;
|
|
258
|
+
currentPressureLevel(): MemoryPressureLevel;
|
|
259
|
+
/**
|
|
260
|
+
* Predictive warm-load. Unlike `acquire`, preload never creates pressure to
|
|
261
|
+
* make itself happen: it only loads when the system is nominal and the
|
|
262
|
+
* configured budget proves the incoming resident footprint fits without
|
|
263
|
+
* evicting anything. Returns `false` when the guard declines the preload.
|
|
264
|
+
*/
|
|
265
|
+
preload(capability: ArbiterCapability, modelKey: string): Promise<boolean>;
|
|
266
|
+
/**
|
|
267
|
+
* Acquire a handle for `(capability, modelKey)`. If the model is already
|
|
268
|
+
* resident the refcount is bumped and we return immediately; otherwise we
|
|
269
|
+
* load it (sharing the in-flight promise across concurrent acquirers).
|
|
270
|
+
*
|
|
271
|
+
* Critical pressure causes acquire to throw for non-text capabilities so
|
|
272
|
+
* we don't load on top of a system the OS has already flagged as in
|
|
273
|
+
* trouble. Text always loads — without text the agent is a brick.
|
|
274
|
+
*/
|
|
275
|
+
acquire<TBackend>(capability: ArbiterCapability, modelKey: string): Promise<ArbiterHandle<TBackend>>;
|
|
276
|
+
private handleFor;
|
|
277
|
+
private residentKey;
|
|
278
|
+
private loadOrReuse;
|
|
279
|
+
private findConflictingRole;
|
|
280
|
+
private waitForRefcountZero;
|
|
281
|
+
private makeEvictable;
|
|
282
|
+
private evictEntry;
|
|
283
|
+
/**
|
|
284
|
+
* Proactive fit-to-budget eviction. Before loading a model needing
|
|
285
|
+
* `incomingMb`, evict the least-recently-used evictable residents until
|
|
286
|
+
* the projected resident footprint fits `budgetMb()`.
|
|
287
|
+
*
|
|
288
|
+
* Policy:
|
|
289
|
+
* - Disabled when no budget is configured (`budgetMb()` → null/≤0) or
|
|
290
|
+
* the incoming footprint is unknown (`incomingMb` ≤ 0): we never guess.
|
|
291
|
+
* - Pins: the text target is never evicted (losing it bricks the agent),
|
|
292
|
+
* and any entry with a live refcount is left alone (in active use).
|
|
293
|
+
* - Ordering is pure LRU (oldest `lastUsedAt` first); ties break toward
|
|
294
|
+
* the lower-priority role, then the older load.
|
|
295
|
+
* - Best-effort: if the pins can't be freed enough, the load still
|
|
296
|
+
* proceeds — the OS-pressure path and the `active-model` admission gate
|
|
297
|
+
* are the backstops; this path only avoids predictable overcommit.
|
|
298
|
+
*/
|
|
299
|
+
private evictToFit;
|
|
300
|
+
/**
|
|
301
|
+
* Total resident footprint counted against the budget: the arbiter's own
|
|
302
|
+
* resident handles PLUS the engine-owned text-target + embedding weights
|
|
303
|
+
* reported via `externalFootprintMb` (#8809 M10b). The external term is what
|
|
304
|
+
* makes `evictToFit` actually fire — without it the two dominant resident
|
|
305
|
+
* consumers (text, embedding) are invisible and the fit path is dead.
|
|
306
|
+
*/
|
|
307
|
+
private residentFootprintMb;
|
|
308
|
+
/**
|
|
309
|
+
* The next entry the fit path should drop: least-recently-used among
|
|
310
|
+
* evictable residents (refcount 0, not the text target). Returns null when
|
|
311
|
+
* nothing is evictable.
|
|
312
|
+
*/
|
|
313
|
+
private lruEvictionCandidate;
|
|
314
|
+
private handlePressure;
|
|
315
|
+
requestText<TRequest, TResult>(req: {
|
|
316
|
+
modelKey: string;
|
|
317
|
+
payload: TRequest;
|
|
318
|
+
}): Promise<TResult>;
|
|
319
|
+
requestEmbedding<TRequest, TResult>(req: {
|
|
320
|
+
modelKey: string;
|
|
321
|
+
payload: TRequest;
|
|
322
|
+
}): Promise<TResult>;
|
|
323
|
+
requestVisionDescribe<TRequest, TResult>(req: {
|
|
324
|
+
modelKey: string;
|
|
325
|
+
payload: TRequest;
|
|
326
|
+
}): Promise<TResult>;
|
|
327
|
+
requestImageGen<TRequest, TResult>(req: {
|
|
328
|
+
modelKey: string;
|
|
329
|
+
payload: TRequest;
|
|
330
|
+
}): Promise<TResult>;
|
|
331
|
+
requestTranscribe<TRequest, TResult>(req: {
|
|
332
|
+
modelKey: string;
|
|
333
|
+
payload: TRequest;
|
|
334
|
+
}): Promise<TResult>;
|
|
335
|
+
private enqueueRequest;
|
|
336
|
+
private drainQueue;
|
|
337
|
+
getCachedVisionEmbedding(hash: string): VisionEmbeddingEntry | null;
|
|
338
|
+
setCachedVisionEmbedding(hash: string, entry: {
|
|
339
|
+
tokens: Float32Array;
|
|
340
|
+
tokenCount: number;
|
|
341
|
+
hiddenSize: number;
|
|
342
|
+
}, ttlMs?: number): void;
|
|
343
|
+
}
|
|
344
|
+
export declare function setMemoryArbiter(arbiter: MemoryArbiter | null): void;
|
|
345
|
+
export declare function getMemoryArbiter(): MemoryArbiter;
|
|
346
|
+
/** Test/diagnostic — returns the singleton without throwing. */
|
|
347
|
+
export declare function tryGetMemoryArbiter(): MemoryArbiter | null;
|
|
348
|
+
//# sourceMappingURL=memory-arbiter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-arbiter.d.ts","sourceRoot":"","sources":["../../src/services/memory-arbiter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { ELIZA_1_KV_QUANT } from "@elizaos/shared/local-inference";
|
|
2
|
+
import type { ArbiterEvent } from "./memory-arbiter";
|
|
3
|
+
import type { CatalogModel, HardwareProbe, InstalledModel, ModelHubSnapshot } from "./types";
|
|
4
|
+
export interface MemoryBenchmarkModelPlan {
|
|
5
|
+
modelId: string;
|
|
6
|
+
displayName: string;
|
|
7
|
+
installed: boolean;
|
|
8
|
+
path: string | null;
|
|
9
|
+
bundleRoot: string | null;
|
|
10
|
+
bundleSizeMb: number | null;
|
|
11
|
+
fileSizeMb: number | null;
|
|
12
|
+
estimatedResidentMb: number;
|
|
13
|
+
catalogMinRamMb: number | null;
|
|
14
|
+
catalogContextLength: number | null;
|
|
15
|
+
fit: "fits" | "tight" | "wontfit";
|
|
16
|
+
selectedByDeviceFit: boolean;
|
|
17
|
+
plannedContextLength: number | null;
|
|
18
|
+
plannedKvQuant: typeof ELIZA_1_KV_QUANT | null;
|
|
19
|
+
}
|
|
20
|
+
export interface MemoryBenchmarkLoadResult {
|
|
21
|
+
modelId: string;
|
|
22
|
+
ok: boolean;
|
|
23
|
+
loadMs: number | null;
|
|
24
|
+
generateMs: number | null;
|
|
25
|
+
generatedTokens: number | null;
|
|
26
|
+
generatedTokensPerSec: number | null;
|
|
27
|
+
rssBeforeMb: number;
|
|
28
|
+
rssAfterLoadMb: number | null;
|
|
29
|
+
rssAfterGenerateMb: number | null;
|
|
30
|
+
rssDeltaMb: number | null;
|
|
31
|
+
loadedContextSize: number | null;
|
|
32
|
+
loadedCacheTypeK: string | null;
|
|
33
|
+
loadedCacheTypeV: string | null;
|
|
34
|
+
error: string | null;
|
|
35
|
+
}
|
|
36
|
+
export interface MemoryBenchmarkReport {
|
|
37
|
+
generatedAt: string;
|
|
38
|
+
host: {
|
|
39
|
+
platform: NodeJS.Platform;
|
|
40
|
+
arch: NodeJS.Architecture;
|
|
41
|
+
totalRamGb: number;
|
|
42
|
+
freeRamGb: number;
|
|
43
|
+
cpuCores: number;
|
|
44
|
+
};
|
|
45
|
+
deviceFit: {
|
|
46
|
+
modelId: string | null;
|
|
47
|
+
contextLength: number | null;
|
|
48
|
+
kvQuant: typeof ELIZA_1_KV_QUANT | null;
|
|
49
|
+
contextDownscaled: boolean;
|
|
50
|
+
reason: string | null;
|
|
51
|
+
};
|
|
52
|
+
models: MemoryBenchmarkModelPlan[];
|
|
53
|
+
loads: MemoryBenchmarkLoadResult[];
|
|
54
|
+
telemetry: {
|
|
55
|
+
modelLoads: number;
|
|
56
|
+
modelUnloads: number;
|
|
57
|
+
evictions: number;
|
|
58
|
+
memoryPressureEvents: number;
|
|
59
|
+
events: ArbiterEvent[];
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
export interface MemoryBenchmarkOptions {
|
|
63
|
+
loadInstalled?: boolean;
|
|
64
|
+
prompt?: string;
|
|
65
|
+
maxTokens?: number;
|
|
66
|
+
outFile?: string;
|
|
67
|
+
}
|
|
68
|
+
export declare function buildMemoryBenchmarkPlan(snapshot: {
|
|
69
|
+
catalog: CatalogModel[];
|
|
70
|
+
installed: InstalledModel[];
|
|
71
|
+
hardware: HardwareProbe;
|
|
72
|
+
}): MemoryBenchmarkModelPlan[];
|
|
73
|
+
export declare function buildMemoryBenchmarkReport(snapshot: Pick<ModelHubSnapshot, "catalog" | "installed" | "hardware">, events?: ArbiterEvent[], loads?: MemoryBenchmarkLoadResult[]): Promise<MemoryBenchmarkReport>;
|
|
74
|
+
export declare function runMemoryBenchmark(options?: MemoryBenchmarkOptions): Promise<MemoryBenchmarkReport>;
|
|
75
|
+
export declare function summarizeMemoryBenchmark(report: MemoryBenchmarkReport): string;
|
|
76
|
+
//# sourceMappingURL=memory-benchmark.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-benchmark.d.ts","sourceRoot":"","sources":["../../src/services/memory-benchmark.ts"],"names":[],"mappings":"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"}
|