@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,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RAM-pressure monitor for the local-inference path (W10 / J2).
|
|
3
|
+
*
|
|
4
|
+
* Polls `os.freemem()` / `os.totalmem()` on an interval. When free RAM
|
|
5
|
+
* crosses a low-water threshold, the monitor walks the
|
|
6
|
+
* `SharedResourceRegistry`'s evictable model roles in *ascending priority*
|
|
7
|
+
* — `vision/mmproj < embedding < vad < ASR < TTS < text-target` —
|
|
8
|
+
* and evicts the cheapest one. Cheap evictions are the voice TTS/ASR weights
|
|
9
|
+
* (`MmapRegionHandle.evictPages()`), the vision projector, and unloading the
|
|
10
|
+
* embedding model. Every eviction is logged (observable) and reversible
|
|
11
|
+
* (roles re-load lazily on next use).
|
|
12
|
+
*
|
|
13
|
+
* The monitor never *loads* anything — it only frees memory. Re-load is the
|
|
14
|
+
* caller's job, on demand. It also never evicts the text target (priority
|
|
15
|
+
* 100) unless it's literally the only resident role and pressure persists,
|
|
16
|
+
* which is the intended "nothing left to give" behaviour.
|
|
17
|
+
*
|
|
18
|
+
* No fallback sludge: when there is nothing to evict and pressure persists,
|
|
19
|
+
* the monitor logs a warning and stops trying for a back-off window — it does
|
|
20
|
+
* not pretend it fixed anything.
|
|
21
|
+
*/
|
|
22
|
+
import type { ResidentModelRole, SharedResourceRegistry } from "./voice/shared-resources";
|
|
23
|
+
/** Minimal structural logger — keeps this module dependency-free. */
|
|
24
|
+
export interface MemoryMonitorLogger {
|
|
25
|
+
debug?(message: string): void;
|
|
26
|
+
info?(message: string): void;
|
|
27
|
+
warn?(message: string): void;
|
|
28
|
+
}
|
|
29
|
+
export interface MemorySample {
|
|
30
|
+
totalMb: number;
|
|
31
|
+
freeMb: number;
|
|
32
|
+
/**
|
|
33
|
+
* Resident-set size in MB of the inference host. On the in-process FFI path
|
|
34
|
+
* this is the current process's RSS (`process.memoryUsage().rss`); the
|
|
35
|
+
* device-bridge path injects a phone-sourced figure. `null` only when no
|
|
36
|
+
* probe could read it.
|
|
37
|
+
*/
|
|
38
|
+
serverRssMb: number | null;
|
|
39
|
+
/** Effective free memory used for the pressure decision (min of OS-free and total-minus-RSS-style headroom). */
|
|
40
|
+
effectiveFreeMb: number;
|
|
41
|
+
/** Free as a fraction of total (0..1), based on `effectiveFreeMb`. */
|
|
42
|
+
freeFraction: number;
|
|
43
|
+
}
|
|
44
|
+
export interface MemoryMonitorConfig {
|
|
45
|
+
/** Poll interval, ms. Default 30 s; min 1 s. */
|
|
46
|
+
intervalMs: number;
|
|
47
|
+
/**
|
|
48
|
+
* Evict when free RAM drops below `max(lowWaterMb, lowWaterFraction*total)`.
|
|
49
|
+
* Defaults: 768 MB / 8% of total.
|
|
50
|
+
*/
|
|
51
|
+
lowWaterMb: number;
|
|
52
|
+
lowWaterFraction: number;
|
|
53
|
+
/**
|
|
54
|
+
* After an eviction, wait this long before the next eviction so the OS
|
|
55
|
+
* has time to reflect the reclaimed pages. Default 5 s.
|
|
56
|
+
*/
|
|
57
|
+
evictionCooldownMs: number;
|
|
58
|
+
/**
|
|
59
|
+
* After "nothing left to evict", back off for this long before warning
|
|
60
|
+
* again. Default 60 s.
|
|
61
|
+
*/
|
|
62
|
+
exhaustedBackoffMs: number;
|
|
63
|
+
}
|
|
64
|
+
export declare function resolveMemoryMonitorConfig(overrides?: Partial<MemoryMonitorConfig>): MemoryMonitorConfig;
|
|
65
|
+
/** Pluggable sources so the monitor stays unit-testable without OS state. */
|
|
66
|
+
export interface MemoryMonitorSources {
|
|
67
|
+
/**
|
|
68
|
+
* Available/total memory in bytes. Defaults to `readSystemMemory()`
|
|
69
|
+
* (`/proc/meminfo` `MemAvailable` on Linux/Android, `os.freemem()` elsewhere).
|
|
70
|
+
*/
|
|
71
|
+
osMemory?: () => {
|
|
72
|
+
freeBytes: number;
|
|
73
|
+
totalBytes: number;
|
|
74
|
+
};
|
|
75
|
+
/** Running external runtime RSS in MB, or null. */
|
|
76
|
+
serverRssMb?: () => Promise<number | null>;
|
|
77
|
+
}
|
|
78
|
+
export interface MemoryPressureAction {
|
|
79
|
+
sample: MemorySample;
|
|
80
|
+
/** What got evicted this tick, if anything. */
|
|
81
|
+
evicted: {
|
|
82
|
+
id: string;
|
|
83
|
+
role: ResidentModelRole;
|
|
84
|
+
estimatedMb: number;
|
|
85
|
+
} | null;
|
|
86
|
+
/** True when pressure was detected but nothing could be evicted. */
|
|
87
|
+
exhausted: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* True when pressure was detected but eviction was deferred to the registry's
|
|
90
|
+
* external eviction owner (the `MemoryArbiter`) so the two loops never
|
|
91
|
+
* double-evict on one pressure event (#8809 AC#2).
|
|
92
|
+
*/
|
|
93
|
+
delegated?: boolean;
|
|
94
|
+
}
|
|
95
|
+
export declare class MemoryMonitor {
|
|
96
|
+
private readonly config;
|
|
97
|
+
private readonly registry;
|
|
98
|
+
private readonly log?;
|
|
99
|
+
private readonly osMemory;
|
|
100
|
+
private readonly serverRssMb;
|
|
101
|
+
private timer;
|
|
102
|
+
private ticking;
|
|
103
|
+
private lastEvictionAtMs;
|
|
104
|
+
private exhaustedUntilMs;
|
|
105
|
+
constructor(args: {
|
|
106
|
+
registry: SharedResourceRegistry;
|
|
107
|
+
config?: Partial<MemoryMonitorConfig>;
|
|
108
|
+
logger?: MemoryMonitorLogger;
|
|
109
|
+
sources?: MemoryMonitorSources;
|
|
110
|
+
});
|
|
111
|
+
/** Begin polling. Idempotent. The interval is unref'd so it never holds the process open. */
|
|
112
|
+
start(): void;
|
|
113
|
+
stop(): void;
|
|
114
|
+
/** Whether the polling timer is running. */
|
|
115
|
+
isRunning(): boolean;
|
|
116
|
+
/** Take a memory sample now (no side effects). */
|
|
117
|
+
sample(): Promise<MemorySample>;
|
|
118
|
+
/** Low-water line for the current sample, in MB. */
|
|
119
|
+
private lowWaterMb;
|
|
120
|
+
isUnderPressure(sample: MemorySample): boolean;
|
|
121
|
+
/**
|
|
122
|
+
* One monitor step: sample, and if under pressure (and not in cooldown),
|
|
123
|
+
* evict the lowest-priority resident role. Returns what it did so callers
|
|
124
|
+
* (and tests) can assert. Public so tests don't have to wait on a timer.
|
|
125
|
+
*/
|
|
126
|
+
tick(now?: number): Promise<MemoryPressureAction>;
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=memory-monitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-monitor.d.ts","sourceRoot":"","sources":["../../src/services/memory-monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,KAAK,EACX,iBAAiB,EACjB,sBAAsB,EACtB,MAAM,0BAA0B,CAAC;AAElC,qEAAqE;AACrE,MAAM,WAAW,mBAAmB;IACnC,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gHAAgH;IAChH,eAAe,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IACnC,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,kBAAkB,EAAE,MAAM,CAAC;CAC3B;AA4BD,wBAAgB,0BAA0B,CACzC,SAAS,GAAE,OAAO,CAAC,mBAAmB,CAAM,GAC1C,mBAAmB,CA0BrB;AAED,6EAA6E;AAC7E,MAAM,WAAW,oBAAoB;IACpC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,oBAAoB;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB,+CAA+C;IAC/C,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,iBAAiB,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7E,oEAAoE;IACpE,SAAS,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,aAAa;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAsB;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkD;IAC3E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+B;IAC3D,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,gBAAgB,CAAK;gBAEjB,IAAI,EAAE;QACjB,QAAQ,EAAE,sBAAsB,CAAC;QACjC,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACtC,MAAM,CAAC,EAAE,mBAAmB,CAAC;QAC7B,OAAO,CAAC,EAAE,oBAAoB,CAAC;KAC/B;IASD,6FAA6F;IAC7F,KAAK,IAAI,IAAI;IAab,IAAI,IAAI,IAAI;IAOZ,4CAA4C;IAC5C,SAAS,IAAI,OAAO;IAIpB,kDAAkD;IAC5C,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAuBrC,oDAAoD;IACpD,OAAO,CAAC,UAAU;IAOlB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO;IAI9C;;;;OAIG;IACG,IAAI,CAAC,GAAG,GAAE,MAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CA0CnE"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-platform memory-pressure sources for the Memory Arbiter (WS1).
|
|
3
|
+
*
|
|
4
|
+
* The arbiter consumes a `MemoryPressureSource` interface so it doesn't
|
|
5
|
+
* care whether the signal comes from polling `os.freemem()`, an Android
|
|
6
|
+
* `ComponentCallbacks2.onTrimMemory()` callback, or an iOS
|
|
7
|
+
* `UIApplicationDidReceiveMemoryWarningNotification` subscription.
|
|
8
|
+
*
|
|
9
|
+
* Three concrete implementations live here:
|
|
10
|
+
*
|
|
11
|
+
* 1. `nodeOsPressureSource` — desktop / server. Polls `os.freemem()` /
|
|
12
|
+
* `os.totalmem()` on a fixed cadence (~5 s). Emits `nominal` /
|
|
13
|
+
* `low` / `critical` from a two-threshold high-water mark over total
|
|
14
|
+
* RAM. The polling timer is `unref`'d so it never holds the process
|
|
15
|
+
* open.
|
|
16
|
+
*
|
|
17
|
+
* 2. `capacitorPressureSource` — Capacitor iOS/Android shim. The native
|
|
18
|
+
* side (Android `ComponentCallbacks2.onTrimMemory`, iOS
|
|
19
|
+
* `UIApplicationDidReceiveMemoryWarningNotification`) calls
|
|
20
|
+
* `dispatch(level)` via the bridge, which fans the level out to
|
|
21
|
+
* arbiter listeners. The JS contract is fixed here; the native
|
|
22
|
+
* modules will be wired in WS2 / WS8.
|
|
23
|
+
*
|
|
24
|
+
* 3. `compositePressureSource` — combine sources (e.g. one OS poll +
|
|
25
|
+
* one Capacitor bridge). The composite emits the *worst* reported
|
|
26
|
+
* level so neither signal can mask the other.
|
|
27
|
+
*
|
|
28
|
+
* Pressure semantics — what each level means to the arbiter:
|
|
29
|
+
* - `nominal` → no action; the arbiter may load freely.
|
|
30
|
+
* - `low` → the arbiter SHOULD evict the lowest-priority resident
|
|
31
|
+
* role and may pause optimistic preloads.
|
|
32
|
+
* - `critical` → the arbiter MUST evict every non-text-target role
|
|
33
|
+
* immediately; `acquire()` for non-text capabilities is
|
|
34
|
+
* allowed to throw.
|
|
35
|
+
*
|
|
36
|
+
* No fallback sludge:
|
|
37
|
+
* - When a probe fails (e.g. `os.freemem()` returns NaN under sandboxing),
|
|
38
|
+
* the source emits `nominal` and logs a warning. It does NOT pretend
|
|
39
|
+
* the system is critical and start trashing models.
|
|
40
|
+
* - `dispatch(level)` from a native bridge is trusted; the JS layer does
|
|
41
|
+
* not second-guess it with its own poll.
|
|
42
|
+
*/
|
|
43
|
+
/** Pressure level the arbiter consumes. */
|
|
44
|
+
export type MemoryPressureLevel = "nominal" | "low" | "critical";
|
|
45
|
+
export interface MemoryPressureEvent {
|
|
46
|
+
level: MemoryPressureLevel;
|
|
47
|
+
/** Optional free RAM, MB. Present for poll-based sources; absent for OS-callback bridges. */
|
|
48
|
+
freeMb?: number;
|
|
49
|
+
/** Optional total RAM, MB. */
|
|
50
|
+
totalMb?: number;
|
|
51
|
+
/** Free as a fraction of total (0..1). Present when both above are present. */
|
|
52
|
+
freeFraction?: number;
|
|
53
|
+
/** Source identifier — handy for telemetry. `os-poll` / `capacitor` / `composite`. */
|
|
54
|
+
source: string;
|
|
55
|
+
/** Wall-clock ms when the event was generated. */
|
|
56
|
+
atMs: number;
|
|
57
|
+
}
|
|
58
|
+
export type MemoryPressureListener = (event: MemoryPressureEvent) => void;
|
|
59
|
+
export interface MemoryPressureSource {
|
|
60
|
+
/** Stable identifier for the source (used in telemetry tags). */
|
|
61
|
+
readonly id: string;
|
|
62
|
+
/** Subscribe to pressure events. Returns the unsubscribe fn. */
|
|
63
|
+
subscribe(listener: MemoryPressureListener): () => void;
|
|
64
|
+
/** Begin observing. Idempotent. */
|
|
65
|
+
start(): void;
|
|
66
|
+
/** Stop observing. Idempotent. */
|
|
67
|
+
stop(): void;
|
|
68
|
+
/** Take a one-shot reading without subscribing. May reuse the cached level. */
|
|
69
|
+
current(): MemoryPressureEvent;
|
|
70
|
+
}
|
|
71
|
+
export interface NodeOsPressureConfig {
|
|
72
|
+
/** Poll interval, ms. Default 5000 (5 s); min 500 ms. */
|
|
73
|
+
intervalMs: number;
|
|
74
|
+
/**
|
|
75
|
+
* Below this fraction of total RAM, level becomes `low`. Default 0.15.
|
|
76
|
+
*/
|
|
77
|
+
lowWaterFraction: number;
|
|
78
|
+
/**
|
|
79
|
+
* Below this fraction of total RAM, level becomes `critical`. Default 0.05.
|
|
80
|
+
* Must be < lowWaterFraction; the source enforces this at construction.
|
|
81
|
+
*/
|
|
82
|
+
criticalWaterFraction: number;
|
|
83
|
+
/** Optional injected clock (testing). Defaults to `Date.now()`. */
|
|
84
|
+
now?: () => number;
|
|
85
|
+
}
|
|
86
|
+
export interface NodeOsPressureSources {
|
|
87
|
+
/**
|
|
88
|
+
* Available/total memory in bytes. Defaults to `readSystemMemory()`
|
|
89
|
+
* (`/proc/meminfo` `MemAvailable` on Linux/Android, `os.freemem()` elsewhere).
|
|
90
|
+
*/
|
|
91
|
+
osMemory?: () => {
|
|
92
|
+
freeBytes: number;
|
|
93
|
+
totalBytes: number;
|
|
94
|
+
};
|
|
95
|
+
/** Optional logger; warnings only. */
|
|
96
|
+
logger?: {
|
|
97
|
+
warn?: (m: string) => void;
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Polling pressure source for desktop/server. The poll happens on an
|
|
102
|
+
* `unref`'d timer so the process can exit naturally. Listeners only fire
|
|
103
|
+
* when the level *changes* (or the first time after `start()`); raw
|
|
104
|
+
* readings are still available via `current()` for logging.
|
|
105
|
+
*/
|
|
106
|
+
export declare function nodeOsPressureSource(overrides?: Partial<NodeOsPressureConfig>, sources?: NodeOsPressureSources): MemoryPressureSource;
|
|
107
|
+
/**
|
|
108
|
+
* Capacitor-side bridge. The native module dispatches a level whenever
|
|
109
|
+
* the OS hands it a memory-pressure callback (Android: `onTrimMemory`,
|
|
110
|
+
* mapping `TRIM_MEMORY_RUNNING_LOW`/`TRIM_MEMORY_RUNNING_CRITICAL` to
|
|
111
|
+
* `low`/`critical`; iOS: `didReceiveMemoryWarning` → `critical`). The JS
|
|
112
|
+
* surface is `dispatch(level, freeMb?)`. The host wires this to the
|
|
113
|
+
* Capacitor plugin in WS2/WS8; here we own the contract + JS state.
|
|
114
|
+
*/
|
|
115
|
+
export interface CapacitorPressureSource extends MemoryPressureSource {
|
|
116
|
+
/** Called by the Capacitor native bridge whenever the OS signals pressure. */
|
|
117
|
+
dispatch(level: MemoryPressureLevel, freeMb?: number): void;
|
|
118
|
+
}
|
|
119
|
+
export declare function capacitorPressureSource(opts?: {
|
|
120
|
+
now?: () => number;
|
|
121
|
+
}): CapacitorPressureSource;
|
|
122
|
+
/**
|
|
123
|
+
* Combine multiple sources. Subscribers see the *worst* level reported by
|
|
124
|
+
* any underlying source — once a critical signal arrives, the composite
|
|
125
|
+
* stays critical until every source returns to nominal/low.
|
|
126
|
+
*/
|
|
127
|
+
export declare function compositePressureSource(sources: ReadonlyArray<MemoryPressureSource>, opts?: {
|
|
128
|
+
now?: () => number;
|
|
129
|
+
}): MemoryPressureSource;
|
|
130
|
+
//# sourceMappingURL=memory-pressure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-pressure.d.ts","sourceRoot":"","sources":["../../src/services/memory-pressure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAIH,2CAA2C;AAC3C,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,KAAK,GAAG,UAAU,CAAC;AAEjE,MAAM,WAAW,mBAAmB;IACnC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,sBAAsB,GAAG,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;AAE1E,MAAM,WAAW,oBAAoB;IACpC,iEAAiE;IACjE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,SAAS,CAAC,QAAQ,EAAE,sBAAsB,GAAG,MAAM,IAAI,CAAC;IACxD,mCAAmC;IACnC,KAAK,IAAI,IAAI,CAAC;IACd,kCAAkC;IAClC,IAAI,IAAI,IAAI,CAAC;IACb,+EAA+E;IAC/E,OAAO,IAAI,mBAAmB,CAAC;CAC/B;AAID,MAAM,WAAW,oBAAoB;IACpC,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mEAAmE;IACnE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACrC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,sCAAsC;IACtC,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;CACxC;AAQD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CACnC,SAAS,GAAE,OAAO,CAAC,oBAAoB,CAAM,EAC7C,OAAO,GAAE,qBAA0B,GACjC,oBAAoB,CAyGtB;AAQD;;;;;;;GAOG;AACH,MAAM,WAAW,uBAAwB,SAAQ,oBAAoB;IACpE,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5D;AAED,wBAAgB,uBAAuB,CACtC,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAAO,GAC/B,uBAAuB,CAoDzB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACtC,OAAO,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAC5C,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAAO,GAC/B,oBAAoB,CAiGtB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type MtpDoctorCheckStatus = "pass" | "warn" | "fail";
|
|
2
|
+
export interface MtpDoctorCheck {
|
|
3
|
+
label: string;
|
|
4
|
+
status: MtpDoctorCheckStatus;
|
|
5
|
+
detail: string;
|
|
6
|
+
fix?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface MtpDoctorReport {
|
|
9
|
+
ok: boolean;
|
|
10
|
+
checks: MtpDoctorCheck[];
|
|
11
|
+
}
|
|
12
|
+
export declare function runMtpDoctor(): Promise<MtpDoctorReport>;
|
|
13
|
+
//# sourceMappingURL=mtp-doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mtp-doctor.d.ts","sourceRoot":"","sources":["../../src/services/mtp-doctor.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,oBAAoB,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,eAAe,CAAC,CAgE7D"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NetworkPolicy bridge for `plugin-local-inference` (R5-versioning §4).
|
|
3
|
+
*
|
|
4
|
+
* The shared module `@elizaos/shared/local-inference/network-policy` defines
|
|
5
|
+
* the platform-agnostic classifier + decision rule. This module wires the
|
|
6
|
+
* platform-specific probes:
|
|
7
|
+
*
|
|
8
|
+
* - **Android** (Capacitor / AOSP runtime): `@capacitor/network`'s
|
|
9
|
+
* `Network.getStatus()` for connection type, plus an explicit native
|
|
10
|
+
* shim (`getMeteredHint`) that reads `NetworkCapabilities.hasCapability(
|
|
11
|
+
* NET_CAPABILITY_NOT_METERED)`. Android docs explicitly warn against
|
|
12
|
+
* equating "cellular" with "metered" — the metered flag is mandatory.
|
|
13
|
+
* - **iOS** (Capacitor / native): `@capacitor/network` for connection type
|
|
14
|
+
* plus our native bridge that reads `NWPathMonitor.path.isExpensive`.
|
|
15
|
+
* `isExpensive == true` is Apple's "treat as metered" flag.
|
|
16
|
+
* - **Desktop** (Electron/Electrobun): platform-specific OS shims —
|
|
17
|
+
* WinRT `NetworkCostType` on Windows, NetworkManager dbus
|
|
18
|
+
* `ActiveConnection.Metered` on Linux, `NWPathMonitor` on macOS.
|
|
19
|
+
* When no shim is available, falls back to `metered: false` on a wired
|
|
20
|
+
* link and `metered: null` (unknown) on Wi-Fi; the policy turns
|
|
21
|
+
* `unknown` into `ask` so the user is never surprised.
|
|
22
|
+
* - **Headless server / CLI** (`ELIZA_NETWORK_POLICY=headless` or
|
|
23
|
+
* `process.stdout.isTTY === false && process.env.CI !== undefined`):
|
|
24
|
+
* skip auto-update entirely. The `eliza models update` CLI invocation
|
|
25
|
+
* still works, but the runtime tick is silent.
|
|
26
|
+
*
|
|
27
|
+
* The Capacitor / native bridges that hook into the global `window`
|
|
28
|
+
* object on mobile are installed by the AOSP / iOS plugin layers; this
|
|
29
|
+
* module reads them through an injectable adapter so the server-side
|
|
30
|
+
* runtime stays platform-pure and tests can drive the state machine
|
|
31
|
+
* without any of the native dependencies.
|
|
32
|
+
*
|
|
33
|
+
* Spec: `.swarm/research/R5-versioning.md` §4.
|
|
34
|
+
*/
|
|
35
|
+
import { type NetworkClass, type NetworkPolicyDecision, type NetworkPolicyPreferences, type RawNetworkState } from "@elizaos/shared";
|
|
36
|
+
/**
|
|
37
|
+
* Platform probe — produces a `RawNetworkState` from whatever OS API is
|
|
38
|
+
* available. Each platform shim implements this; the registry below picks
|
|
39
|
+
* the active one at runtime.
|
|
40
|
+
*/
|
|
41
|
+
export interface NetworkProbe {
|
|
42
|
+
readonly id: "node-default" | "capacitor-android" | "capacitor-ios" | "electron-darwin" | "electron-win32" | "electron-linux" | "headless";
|
|
43
|
+
probe(): Promise<RawNetworkState>;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Heuristic: are we running headless (no TTY, in CI, or with an explicit
|
|
47
|
+
* override)? Headless callers should NOT auto-update because there is no
|
|
48
|
+
* one around to confirm a multi-GB download.
|
|
49
|
+
*/
|
|
50
|
+
export declare function isHeadlessRuntime(): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Default Node probe — returns `unknown` for everything. Useful in tests
|
|
53
|
+
* and on packaged servers where there is no Capacitor / Electron bridge.
|
|
54
|
+
* The policy will downgrade `unknown` to `ask`, which is correct for the
|
|
55
|
+
* platform-uncertain case.
|
|
56
|
+
*/
|
|
57
|
+
export declare const NODE_DEFAULT_PROBE: NetworkProbe;
|
|
58
|
+
/**
|
|
59
|
+
* Headless probe — fires when `isHeadlessRuntime()` is true. The decision
|
|
60
|
+
* rule short-circuits to `headless-explicit-only` regardless of state.
|
|
61
|
+
*/
|
|
62
|
+
export declare const HEADLESS_PROBE: NetworkProbe;
|
|
63
|
+
/**
|
|
64
|
+
* Capacitor Android probe (R5 §4.1).
|
|
65
|
+
*
|
|
66
|
+
* Reads connection type from `@capacitor/network` and metered status from
|
|
67
|
+
* a native shim exposed at `(window as any).ElizaNetworkPolicy` (provided
|
|
68
|
+
* by the `@elizaos/capacitor-network-policy` Capacitor plugin at
|
|
69
|
+
* `plugins/plugin-native-network-policy/`). Importing the plugin from
|
|
70
|
+
* the app bootstrap installs `globalThis.ElizaNetworkPolicy` via the
|
|
71
|
+
* plugin's `installNetworkPolicyGlobal()` side-effect, so the runtime
|
|
72
|
+
* picks it up automatically. When the shim is missing the metered flag
|
|
73
|
+
* falls back to `null` (= unknown), which triggers `ask` per R5 §4.1.
|
|
74
|
+
*/
|
|
75
|
+
export declare function capacitorAndroidProbe(): NetworkProbe;
|
|
76
|
+
/**
|
|
77
|
+
* Capacitor iOS probe (R5 §4.2). Connection type from `@capacitor/network`
|
|
78
|
+
* plus iOS `NWPathMonitor.currentPath.isExpensive` via the
|
|
79
|
+
* `@elizaos/capacitor-network-policy` Capacitor plugin at
|
|
80
|
+
* `plugins/plugin-native-network-policy/`. The plugin exposes
|
|
81
|
+
* `(window as any).ElizaNetworkPolicy.getPathHints()`; falls back to
|
|
82
|
+
* `metered: null` when the bridge is missing.
|
|
83
|
+
*/
|
|
84
|
+
export declare function capacitorIosProbe(): NetworkProbe;
|
|
85
|
+
/**
|
|
86
|
+
* Electron / desktop probe. Calls into a process-bridge-exposed function
|
|
87
|
+
* (Electrobun: `Bun.napi`/`electrobunNative.networkPolicyProbe`; classic
|
|
88
|
+
* Electron: `electronAPI.networkPolicyProbe`) that wraps the OS call.
|
|
89
|
+
* Returns `unknown` when no bridge is wired (development-mode browser
|
|
90
|
+
* preview), which downgrades to `ask` on `wifi-*` and `auto` on
|
|
91
|
+
* `ethernet-unmetered` per the matrix.
|
|
92
|
+
*/
|
|
93
|
+
export declare function electronDesktopProbe(): NetworkProbe;
|
|
94
|
+
/**
|
|
95
|
+
* Pick the active probe based on platform heuristics. Order:
|
|
96
|
+
*
|
|
97
|
+
* 1. `ELIZA_NETWORK_POLICY=headless` (or CI / no-TTY-no-DISPLAY) → headless.
|
|
98
|
+
* 2. Capacitor android bridge present → Android probe.
|
|
99
|
+
* 3. Capacitor iOS bridge present → iOS probe (`process.platform` !==
|
|
100
|
+
* `android` and a `Capacitor` global exists).
|
|
101
|
+
* 4. Desktop bridge present → desktop probe.
|
|
102
|
+
* 5. Otherwise → node-default (returns `unknown`).
|
|
103
|
+
*/
|
|
104
|
+
export declare function pickActiveProbe(): NetworkProbe;
|
|
105
|
+
/**
|
|
106
|
+
* High-level: probe + classify + apply prefs in one call. Used by the
|
|
107
|
+
* voice-model updater and by the local-inference download routes.
|
|
108
|
+
*/
|
|
109
|
+
export declare function evaluateRuntimePolicy(args: {
|
|
110
|
+
prefs?: NetworkPolicyPreferences;
|
|
111
|
+
estimatedBytes: number;
|
|
112
|
+
probe?: NetworkProbe;
|
|
113
|
+
now?: Date;
|
|
114
|
+
}): Promise<NetworkPolicyDecision>;
|
|
115
|
+
/** Surface for tests: full snapshot of the raw probe result + decision. */
|
|
116
|
+
export declare function describeRuntimeNetwork(args?: {
|
|
117
|
+
prefs?: NetworkPolicyPreferences;
|
|
118
|
+
estimatedBytes?: number;
|
|
119
|
+
probe?: NetworkProbe;
|
|
120
|
+
now?: Date;
|
|
121
|
+
}): Promise<{
|
|
122
|
+
probeId: NetworkProbe["id"];
|
|
123
|
+
state: RawNetworkState;
|
|
124
|
+
class: NetworkClass;
|
|
125
|
+
decision: NetworkPolicyDecision;
|
|
126
|
+
}>;
|
|
127
|
+
//# sourceMappingURL=network-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-policy.d.ts","sourceRoot":"","sources":["../../src/services/network-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAIN,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,MAAM,iBAAiB,CAAC;AAEzB;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,EAAE,EACR,cAAc,GACd,mBAAmB,GACnB,eAAe,GACf,iBAAiB,GACjB,gBAAgB,GAChB,gBAAgB,GAChB,UAAU,CAAC;IACd,KAAK,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAkB3C;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,YAKhC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,YAK5B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,IAAI,YAAY,CAkBpD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,IAAI,YAAY,CAmBhD;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,IAAI,YAAY,CAsBnD;AA2ED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAU9C;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IACjD,KAAK,CAAC,EAAE,wBAAwB,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,GAAG,CAAC,EAAE,IAAI,CAAC;CACX,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAWjC;AAED,2EAA2E;AAC3E,wBAAsB,sBAAsB,CAAC,IAAI,CAAC,EAAE;IACnD,KAAK,CAAC,EAAE,wBAAwB,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,GAAG,CAAC,EAAE,IAAI,CAAC;CACX,GAAG,OAAO,CAAC;IACX,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,KAAK,EAAE,eAAe,CAAC;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,qBAAqB,CAAC;CAChC,CAAC,CAaD"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function localInferenceRoot(): string;
|
|
2
|
+
export declare function elizaModelsDir(): string;
|
|
3
|
+
export declare function registryPath(): string;
|
|
4
|
+
export declare function downloadsStagingDir(): string;
|
|
5
|
+
export declare function isWithinElizaRoot(target: string): boolean;
|
|
6
|
+
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/services/paths.ts"],"names":[],"mappings":"AAGA,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAKzD"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Planner (`PLAN_ACTIONS`) skeleton + GBNF wiring for the local-inference
|
|
3
|
+
* stage.
|
|
4
|
+
*
|
|
5
|
+
* The response-handler stage is already constrained — `shouldRespond` is a
|
|
6
|
+
* three-value enum that the lazy GBNF pins (see
|
|
7
|
+
* `packages/core/src/runtime/builtin-field-evaluators.ts`). The planner
|
|
8
|
+
* stage, however, has historically emitted `PLAN_ACTIONS({...})` calls
|
|
9
|
+
* unconstrained for local backends: the model could hallucinate action
|
|
10
|
+
* names, drop required parameters, or invent free-form parameter values
|
|
11
|
+
* outside the registered enum.
|
|
12
|
+
*
|
|
13
|
+
* This module is the local-inference-side surface for the same guided-decode
|
|
14
|
+
* contract the response handler uses:
|
|
15
|
+
*
|
|
16
|
+
* 1. `buildPlanActionsSkeleton(actions)` — top-level envelope skeleton
|
|
17
|
+
* `{"action": <enum>, "parameters": <free-json>, "thought": <free-string>}`.
|
|
18
|
+
* `action` is pinned to the alternation of registered action names and
|
|
19
|
+
* collapses to a literal when only one action is exposed.
|
|
20
|
+
*
|
|
21
|
+
* 2. `buildPlannerGuidedDecode(actions)` — the full bundle: the skeleton
|
|
22
|
+
* above, the precise GBNF (`@elizaos/core`'s `buildPlannerActionGrammar`
|
|
23
|
+
* emits one that also pins the array-element enum), and per-action
|
|
24
|
+
* `parameters` schemas + sub-skeletons for the engine's optional second
|
|
25
|
+
* pass once `action` is committed.
|
|
26
|
+
*
|
|
27
|
+
* Why this lives in app-core (not core): the helper is meaningful only to
|
|
28
|
+
* the local-inference layer — cloud adapters can satisfy the portable `tools`
|
|
29
|
+
* contract without honoring `responseSkeleton` / `grammar`. Keeping the
|
|
30
|
+
* wrapper here makes the local-only nature explicit at the import site and
|
|
31
|
+
* pins the test surface (`__tests__/planner-grammar.test.ts`) next to the
|
|
32
|
+
* engine that consumes the output.
|
|
33
|
+
*
|
|
34
|
+
* GBNF compiler limitation: `compileSkeletonToGbnf` cannot express
|
|
35
|
+
* per-action parameter discrimination in a single flat skeleton (the spans
|
|
36
|
+
* are positional; there's no anyOf-with-discriminator branch). We therefore
|
|
37
|
+
* fall back to the documented two-pass shape — top-level skeleton pins
|
|
38
|
+
* `action`, the engine drives a second constrained pass against the chosen
|
|
39
|
+
* action's normalized JSON schema. `buildPlannerParamsSkeleton` (re-exported
|
|
40
|
+
* from `@elizaos/core`) provides the per-action sub-skeleton.
|
|
41
|
+
*/
|
|
42
|
+
import { type Action, type JSONSchema, type ResponseSkeleton } from "@elizaos/core";
|
|
43
|
+
import { type ElizaHarnessSchema } from "./structured-output";
|
|
44
|
+
/**
|
|
45
|
+
* The minimal shape this module consumes from an `Action`. Accepting the
|
|
46
|
+
* structural pick keeps the helper testable in isolation (no handlers /
|
|
47
|
+
* validators need test doubles).
|
|
48
|
+
*/
|
|
49
|
+
export type PlannerAction = Pick<Action, "name" | "parameters" | "allowAdditionalParameters">;
|
|
50
|
+
/**
|
|
51
|
+
* Bundle of the structure-forcing artefacts the local-inference engine needs
|
|
52
|
+
* to constrain a `PLAN_ACTIONS` generation.
|
|
53
|
+
*/
|
|
54
|
+
export interface PlannerGuidedDecode {
|
|
55
|
+
/**
|
|
56
|
+
* Top-level skeleton: `{"action": <enum>, "parameters": <free-json>,
|
|
57
|
+
* "thought": <free-string>}`. Compiles to a lazy GBNF via
|
|
58
|
+
* `compileSkeletonToGbnf` — `action` is the alternation of registered
|
|
59
|
+
* action names (or a literal when only one action is exposed).
|
|
60
|
+
*/
|
|
61
|
+
responseSkeleton: ResponseSkeleton;
|
|
62
|
+
/**
|
|
63
|
+
* Pre-built GBNF for the top-level envelope. Wins over compiling the
|
|
64
|
+
* skeleton (the explicit grammar carries the same alternation as the
|
|
65
|
+
* skeleton's enum span — they are byte-equivalent — but the explicit
|
|
66
|
+
* grammar is what the cloud-mirroring code path in
|
|
67
|
+
* `@elizaos/core`'s `buildPlannerActionGrammar` already produces).
|
|
68
|
+
*/
|
|
69
|
+
grammar: string;
|
|
70
|
+
/**
|
|
71
|
+
* Map of action name → normalized JSON Schema for its `parameters` object.
|
|
72
|
+
* The engine uses this for the optional second constrained pass once
|
|
73
|
+
* `action` is committed. Cloud adapters ignore it; tools carry the
|
|
74
|
+
* equivalent (unforced) contract for them.
|
|
75
|
+
*/
|
|
76
|
+
actionSchemas: Record<string, JSONSchema>;
|
|
77
|
+
/**
|
|
78
|
+
* Per-action `parameters` skeleton (single-value enums collapse to
|
|
79
|
+
* literals; multi-value enums stay as enum spans). Keyed by action name.
|
|
80
|
+
* Engines may compile each entry on demand for the second pass.
|
|
81
|
+
*/
|
|
82
|
+
paramsSkeletons: Record<string, ResponseSkeleton>;
|
|
83
|
+
/**
|
|
84
|
+
* Eliza harness schema for the top-level envelope — the bundle of
|
|
85
|
+
* skeleton + grammar + derived prefill plan. Pass this on
|
|
86
|
+
* {@link StructuredGenerateParams.elizaSchema} to engage the
|
|
87
|
+
* deterministic-token prefill-plan fast-forward on top of the GBNF
|
|
88
|
+
* constrained decode.
|
|
89
|
+
*/
|
|
90
|
+
elizaSchema: ElizaHarnessSchema;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Build the top-level `PLAN_ACTIONS` envelope skeleton from the action set
|
|
94
|
+
* exposed this turn.
|
|
95
|
+
*
|
|
96
|
+
* Shape:
|
|
97
|
+
* `{"action": <enum>, "parameters": <free-json>, "thought": <free-string>}`
|
|
98
|
+
*
|
|
99
|
+
* Returns `null` when no actions are exposed (caller should skip
|
|
100
|
+
* structure-forcing — there is nothing to constrain `action` to).
|
|
101
|
+
*
|
|
102
|
+
* GBNF compiler limitation: `compileSkeletonToGbnf` does not support
|
|
103
|
+
* anyOf-with-discriminator in a single skeleton — the per-action parameter
|
|
104
|
+
* shape cannot be expressed positionally. The engine drives a second
|
|
105
|
+
* constrained pass against {@link PlannerGuidedDecode.actionSchemas} /
|
|
106
|
+
* {@link PlannerGuidedDecode.paramsSkeletons} once `action` is committed.
|
|
107
|
+
*/
|
|
108
|
+
export declare function buildPlanActionsSkeleton(actions: ReadonlyArray<PlannerAction>): ResponseSkeleton | null;
|
|
109
|
+
/**
|
|
110
|
+
* Build the full guided-decode bundle for a `PLAN_ACTIONS` generation: the
|
|
111
|
+
* top-level skeleton, the precise GBNF, the per-action parameter schemas,
|
|
112
|
+
* and the per-action `parameters` sub-skeletons.
|
|
113
|
+
*
|
|
114
|
+
* Returns `null` when no actions are exposed.
|
|
115
|
+
*/
|
|
116
|
+
export declare function buildPlannerGuidedDecode(actions: ReadonlyArray<PlannerAction>): PlannerGuidedDecode | null;
|
|
117
|
+
/**
|
|
118
|
+
* Convenience: normalize a single action's `parameters` to a core
|
|
119
|
+
* {@link JSONSchema}. Re-exported here so callers staying inside the
|
|
120
|
+
* local-inference module can build per-action constraints without
|
|
121
|
+
* pulling `@elizaos/core/runtime/...`.
|
|
122
|
+
*/
|
|
123
|
+
export declare function planActionParameterSchema(action: PlannerAction): JSONSchema;
|
|
124
|
+
//# sourceMappingURL=planner-skeleton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planner-skeleton.d.ts","sourceRoot":"","sources":["../../src/services/planner-skeleton.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,EACN,KAAK,MAAM,EAGX,KAAK,UAAU,EAEf,KAAK,gBAAgB,EACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACN,KAAK,kBAAkB,EAEvB,MAAM,qBAAqB,CAAC;AAE7B;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,IAAI,CAC/B,MAAM,EACN,MAAM,GAAG,YAAY,GAAG,2BAA2B,CACnD,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IACnC;;;;;OAKG;IACH,gBAAgB,EAAE,gBAAgB,CAAC;IACnC;;;;;;OAMG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC1C;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAClD;;;;;;OAMG;IACH,WAAW,EAAE,kBAAkB,CAAC;CAChC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,GACnC,gBAAgB,GAAG,IAAI,CAIzB;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,GACnC,mBAAmB,GAAG,IAAI,CAsB5B;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,aAAa,GAAG,UAAU,CAE3E"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider registry.
|
|
3
|
+
*
|
|
4
|
+
* Treats every inference source the same way — cloud subscription, cloud
|
|
5
|
+
* API, Eliza-1 local runtime, paired-device bridge, Capacitor on-device
|
|
6
|
+
* — each is a `ProviderDefinition` with an `id`, a human label, a set of
|
|
7
|
+
* supported model slots, and a pluggable `getEnableState()` that inspects
|
|
8
|
+
* whatever underlying gate controls it (API key presence, subscription
|
|
9
|
+
* status, env flag, file on disk).
|
|
10
|
+
*
|
|
11
|
+
* The cloud-provider status readers are intentionally permissive: they
|
|
12
|
+
* report what they can introspect without depending on the specific
|
|
13
|
+
* cloud-plugin internals, and hand off to the existing ProviderSwitcher
|
|
14
|
+
* UI for actual enable/disable via `configureHref`. That avoids the
|
|
15
|
+
* "combined enable matrix is an architectural project" problem by making
|
|
16
|
+
* configuration navigable rather than centralised.
|
|
17
|
+
*/
|
|
18
|
+
import type { ProviderEnableState, ProviderId, ProviderMeta, ProviderStatus } from "@elizaos/shared";
|
|
19
|
+
/**
|
|
20
|
+
* Runtime provider descriptor. Extends the UI-safe `ProviderMeta` with a
|
|
21
|
+
* callable `getEnableState()` that inspects env vars, fs, or device-bridge
|
|
22
|
+
* sockets. Server-side only — UI code reads `ProviderMeta` /
|
|
23
|
+
* `ProviderStatus` from `@elizaos/shared` instead.
|
|
24
|
+
*/
|
|
25
|
+
export interface ProviderDefinition extends ProviderMeta {
|
|
26
|
+
/**
|
|
27
|
+
* Read the current enable state. For cloud providers we inspect env
|
|
28
|
+
* vars or config fragments; for local we check file presence; for
|
|
29
|
+
* device-bridge we check connected-device count.
|
|
30
|
+
*/
|
|
31
|
+
getEnableState(): Promise<ProviderEnableState>;
|
|
32
|
+
}
|
|
33
|
+
export type { ProviderEnableState, ProviderId, ProviderMeta, ProviderStatus };
|
|
34
|
+
/** Resolve which slots have at least one registered handler from this provider. */
|
|
35
|
+
export declare function getRegisteredSlotsForProvider(providerId: string): string[];
|
|
36
|
+
export declare const BUILT_IN_PROVIDERS: readonly ProviderDefinition[];
|
|
37
|
+
export declare function snapshotProviders(): Promise<ProviderStatus[]>;
|
|
38
|
+
//# sourceMappingURL=providers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/services/providers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EACX,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,cAAc,EACd,MAAM,iBAAiB,CAAC;AAKzB;;;;;GAKG;AACH,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACvD;;;;OAIG;IACH,cAAc,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;CAC/C;AAED,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;AAE9E,mFAAmF;AACnF,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAO1E;AA+UD,eAAO,MAAM,kBAAkB,EAAE,SAAS,kBAAkB,EAoB3D,CAAC;AAgFF,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAiBnE"}
|