@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,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AOSP image-gen backend contract (WS3) — Android via JNI.
|
|
3
|
+
*
|
|
4
|
+
* On AOSP the canonical fast path is stable-diffusion.cpp built into
|
|
5
|
+
* `libstable-diffusion-jni.so` and exposed through a JNI surface in
|
|
6
|
+
* `@elizaos/plugin-aosp-local-inference`. The shim mirrors the pattern
|
|
7
|
+
* WS2 uses for `eliza_llama_mtmd_*`: a small set of `eliza_llama_imagegen_*`
|
|
8
|
+
* symbols that bun:ffi opens via the same `dlopen` path the text-gen
|
|
9
|
+
* binding uses.
|
|
10
|
+
*
|
|
11
|
+
* Required native symbols (libeliza-llama-shim, to be added):
|
|
12
|
+
*
|
|
13
|
+
* eliza_llama_imagegen_init_from_file(
|
|
14
|
+
* model_path: const char *,
|
|
15
|
+
* accelerator: const char *, // "auto" / "vulkan" / "opencl" / "cpu"
|
|
16
|
+
* out_handle: void **
|
|
17
|
+
* ) -> int32 // 0 = ok; non-zero = error code
|
|
18
|
+
*
|
|
19
|
+
* eliza_llama_imagegen_free(handle: void *) -> void
|
|
20
|
+
*
|
|
21
|
+
* eliza_llama_imagegen_generate(
|
|
22
|
+
* handle: void *,
|
|
23
|
+
* prompt: const char *,
|
|
24
|
+
* prompt_len: size_t,
|
|
25
|
+
* negative_prompt: const char *, // may be null
|
|
26
|
+
* negative_prompt_len: size_t,
|
|
27
|
+
* width: int32,
|
|
28
|
+
* height: int32,
|
|
29
|
+
* steps: int32,
|
|
30
|
+
* guidance_scale: float,
|
|
31
|
+
* seed: int64,
|
|
32
|
+
* scheduler: const char *, // may be null
|
|
33
|
+
* out_png_buf: uint8_t **, // owned by shim; valid until next call
|
|
34
|
+
* out_png_len: size_t *,
|
|
35
|
+
* out_seed_used: int64 *,
|
|
36
|
+
* out_inference_ms: int64 *
|
|
37
|
+
* ) -> int32
|
|
38
|
+
*
|
|
39
|
+
* Why a shim symbol set and not a JNI-direct stable-diffusion.cpp:
|
|
40
|
+
* The same dlopen pattern that solves the text-gen integration solves
|
|
41
|
+
* image-gen — we ship one `libeliza-llama-shim.so` per ABI and bun:ffi
|
|
42
|
+
* binds against a single library handle. Doing JNI directly would
|
|
43
|
+
* require a JVM in the AOSP build, which we don't want to mandate.
|
|
44
|
+
*
|
|
45
|
+
* Performance note for AOSP image-gen:
|
|
46
|
+
* Vulkan is the only reasonable accelerator on Android (OpenCL is
|
|
47
|
+
* patchy across SoCs; CPU is too slow for 4-step Z-Image-Turbo
|
|
48
|
+
* 1024×1024 — Snapdragon 8 Gen 3 hits ~6s on CPU vs ~1.4s on Vulkan).
|
|
49
|
+
* The shim defaults to `"vulkan"` and falls back to `"cpu"` only when
|
|
50
|
+
* Vulkan compute is unavailable.
|
|
51
|
+
*
|
|
52
|
+
* Until the shim exports the symbols above, `loadAospImageGenBackend`
|
|
53
|
+
* throws a structured `ImageGenBackendUnavailableError` so the selector
|
|
54
|
+
* can fall back to a desktop-bridge or surface "unavailable" to the UI.
|
|
55
|
+
*
|
|
56
|
+
* Publishing pipeline (Android APK + AOSP system app):
|
|
57
|
+
*
|
|
58
|
+
* Build (libstable-diffusion-jni.so per ABI):
|
|
59
|
+
* # cd plugins/plugin-aosp-local-inference/native
|
|
60
|
+
* # NDK r26+ required for Vulkan compute compatibility on Snapdragon 8 Gen 3.
|
|
61
|
+
* cmake -B build-arm64-v8a -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake \
|
|
62
|
+
* -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-29 \
|
|
63
|
+
* -DSD_VULKAN=ON -DBUILD_SHARED_LIBS=ON
|
|
64
|
+
* cmake --build build-arm64-v8a -j
|
|
65
|
+
* # Repeat for x86_64 (Cuttlefish / emulator) — see eliza/plugins/
|
|
66
|
+
* # plugin-local-inference/native/llama.cpp patches for the JNI x86_64
|
|
67
|
+
* # ABI surface we already maintain for text/vision.
|
|
68
|
+
* Sign:
|
|
69
|
+
* # AAB / APK signature; libstable-diffusion-jni.so is signed transitively
|
|
70
|
+
* # via the app's keystore. v2 signature with the Eliza Labs production key.
|
|
71
|
+
* bundletool build-bundle --modules=... --output=app.aab
|
|
72
|
+
* jarsigner -keystore eliza-prod.jks -signedjar app-signed.aab app.aab eliza-key
|
|
73
|
+
* Notarize:
|
|
74
|
+
* N/A on Android. Google Play handles validation; AOSP system-app
|
|
75
|
+
* installs trust the app's own keystore.
|
|
76
|
+
* Drop:
|
|
77
|
+
* play.google.com (split APK by ABI; sd-cpp lib lives in the
|
|
78
|
+
* `imagegen` dynamic feature module — only downloaded after the user
|
|
79
|
+
* opts in to image-gen).
|
|
80
|
+
* For sideload / Cuttlefish / dev builds:
|
|
81
|
+
* releases.elizaos.ai/aosp-imagegen/<version>/libstable-diffusion-jni-<abi>.so
|
|
82
|
+
*
|
|
83
|
+
* Why a dynamic feature module:
|
|
84
|
+
* The Z-Image-Turbo GGUF is ~3.4 GB; bundling that into the base APK
|
|
85
|
+
* would push the install above the Play Store's 200 MB hard cap and
|
|
86
|
+
* trigger an automatic split. Dynamic delivery + first-launch download
|
|
87
|
+
* keeps the base install lean and lets the user opt in.
|
|
88
|
+
*/
|
|
89
|
+
import type { ImageGenBackend, ImageGenLoadArgs } from "./types";
|
|
90
|
+
/**
|
|
91
|
+
* The AOSP binding's image-gen surface, when present. The AOSP plugin
|
|
92
|
+
* registers an instance under the runtime service name
|
|
93
|
+
* `"aosp-llama-imagegen"` once the native shim exports the symbols
|
|
94
|
+
* above. Mirrors the WS2 `AospLlamaMtmdBinding` shape.
|
|
95
|
+
*/
|
|
96
|
+
export interface AospImageGenBinding {
|
|
97
|
+
/** True when libeliza-llama-shim.so exports the imagegen symbols. */
|
|
98
|
+
hasImageGen(): boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Initialize a handle for the given model. The shim resolves the
|
|
101
|
+
* accelerator hint internally; pass `"auto"` to defer to its
|
|
102
|
+
* detection.
|
|
103
|
+
*/
|
|
104
|
+
initImageGen(args: {
|
|
105
|
+
modelPath: string;
|
|
106
|
+
accelerator?: ImageGenLoadArgs["accelerator"];
|
|
107
|
+
}): Promise<AospImageGenHandle>;
|
|
108
|
+
}
|
|
109
|
+
export interface AospImageGenHandle {
|
|
110
|
+
generate(args: {
|
|
111
|
+
prompt: string;
|
|
112
|
+
negativePrompt?: string;
|
|
113
|
+
width: number;
|
|
114
|
+
height: number;
|
|
115
|
+
steps: number;
|
|
116
|
+
guidanceScale: number;
|
|
117
|
+
seed: number;
|
|
118
|
+
scheduler?: string;
|
|
119
|
+
signal?: AbortSignal;
|
|
120
|
+
}): Promise<{
|
|
121
|
+
png: Uint8Array;
|
|
122
|
+
seedUsed: number;
|
|
123
|
+
inferenceMs: number;
|
|
124
|
+
}>;
|
|
125
|
+
dispose(): Promise<void>;
|
|
126
|
+
}
|
|
127
|
+
export interface LoadAospImageGenBackendOptions {
|
|
128
|
+
loadArgs: ImageGenLoadArgs;
|
|
129
|
+
modelKey: string;
|
|
130
|
+
binding?: AospImageGenBinding;
|
|
131
|
+
now?: () => number;
|
|
132
|
+
}
|
|
133
|
+
export declare function loadAospImageGenBackend(opts: LoadAospImageGenBackendOptions): Promise<ImageGenBackend>;
|
|
134
|
+
//# sourceMappingURL=aosp-unavailable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aosp-unavailable.d.ts","sourceRoot":"","sources":["../../../src/services/imagegen/aosp-unavailable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuFG;AAIH,OAAO,KAAK,EACX,eAAe,EACf,gBAAgB,EAGhB,MAAM,SAAS,CAAC;AAEjB;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IACnC,qEAAqE;IACrE,WAAW,IAAI,OAAO,CAAC;IACvB;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;KAC9C,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,IAAI,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,WAAW,CAAC;KACrB,GAAG,OAAO,CAAC;QACX,GAAG,EAAE,UAAU,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,8BAA8B;IAC9C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACnB;AAED,wBAAsB,uBAAuB,CAC5C,IAAI,EAAE,8BAA8B,GAClC,OAAO,CAAC,eAAe,CAAC,CAkF1B"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Image-gen backend-pick logic (WS3).
|
|
3
|
+
*
|
|
4
|
+
* Given a runtime platform + accelerator hint, return the ordered list
|
|
5
|
+
* of backend ids to try. The arbiter walks this list at load time and
|
|
6
|
+
* stops at the first backend that resolves to a live handle. A backend
|
|
7
|
+
* that throws `ImageGenBackendUnavailableError` lets the selector fall
|
|
8
|
+
* through to the next.
|
|
9
|
+
*
|
|
10
|
+
* Per-platform policy:
|
|
11
|
+
*
|
|
12
|
+
* - **macOS Apple Silicon**: `mflux` (MLX) → `sd-cpp` (CPU fallback).
|
|
13
|
+
* mflux is Metal-accelerated through MLX; sd-cpp-CPU is the
|
|
14
|
+
* functional last-resort if the venv isn't installed.
|
|
15
|
+
* - **macOS Intel**: `sd-cpp` (Metal/CPU). MLX requires Apple Silicon;
|
|
16
|
+
* mflux is skipped on Intel Macs.
|
|
17
|
+
* - **iOS**: `coreml` only. There is no sd-cpp on iOS — Core ML is
|
|
18
|
+
* the only sanctioned acceleration path.
|
|
19
|
+
* - **Linux + NVIDIA**: `sd-cpp` CUDA only when the sd-cpp probe,
|
|
20
|
+
* binary manifest, help, or version output proves CUDA support.
|
|
21
|
+
* Otherwise use `sd-cpp` CPU and let the loader emit an explicit
|
|
22
|
+
* CUDA-missing fallback error if CUDA was requested elsewhere.
|
|
23
|
+
* - **Linux + AMD/Intel**: `sd-cpp --vulkan` → `sd-cpp` (CPU fallback).
|
|
24
|
+
* - **Linux + CPU**: `sd-cpp` (CPU).
|
|
25
|
+
* - **Windows + NVIDIA**: `tensorrt` → `sd-cpp` (CUDA) → `sd-cpp` (CPU).
|
|
26
|
+
* - **Windows + AMD/Intel**: `sd-cpp --vulkan` → `sd-cpp` (CPU).
|
|
27
|
+
* - **Android (AOSP)**: `aosp` (libeliza-llama-shim with Vulkan/OpenCL,
|
|
28
|
+
* handled by `plugin-aosp-local-inference`). No second backend on
|
|
29
|
+
* mobile — falling back to CPU sd-cpp on a phone is too slow to be
|
|
30
|
+
* useful and would just block the UI.
|
|
31
|
+
*
|
|
32
|
+
* The selector intentionally does NOT account for tier or model
|
|
33
|
+
* compatibility — that's the catalog's job. A 27B-tier user on a
|
|
34
|
+
* Vulkan-only Linux box doesn't change the selector; it just changes
|
|
35
|
+
* which model the chosen backend loads.
|
|
36
|
+
*/
|
|
37
|
+
import type { ImageGenBackend } from "./types";
|
|
38
|
+
/** Per-platform runtime fingerprint the selector consumes. */
|
|
39
|
+
export interface ImageGenRuntimeProfile {
|
|
40
|
+
/** Node-style `process.platform`: `"linux" | "darwin" | "win32" | "android"`. */
|
|
41
|
+
platform: NodeJS.Platform | "android" | "ios";
|
|
42
|
+
/**
|
|
43
|
+
* `process.arch` (`"x64"` | `"arm64"`). Apple Silicon = `"arm64"` on
|
|
44
|
+
* `"darwin"`. Intel Mac = `"x64"` on `"darwin"`.
|
|
45
|
+
*/
|
|
46
|
+
arch: NodeJS.Architecture | string;
|
|
47
|
+
/**
|
|
48
|
+
* GPU vendor hint, when detected. `"nvidia"` enables CUDA / TensorRT
|
|
49
|
+
* paths; `"amd"` and `"intel"` favour Vulkan. `"apple"` is implied by
|
|
50
|
+
* platform=darwin+arch=arm64.
|
|
51
|
+
*/
|
|
52
|
+
gpu?: "nvidia" | "amd" | "intel" | "apple" | "none";
|
|
53
|
+
/**
|
|
54
|
+
* sd-cpp binary capability evidence gathered from the first-run probe,
|
|
55
|
+
* bundle manifest, or a loader-side help/version check. GPU vendor alone
|
|
56
|
+
* is not evidence that the installed `sd` binary was built with CUDA.
|
|
57
|
+
*/
|
|
58
|
+
sdCpp?: {
|
|
59
|
+
accelerators?: readonly string[];
|
|
60
|
+
cudaCapable?: boolean;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Explicit accelerator requirement for release verification and operator
|
|
64
|
+
* smoke tests. When set, the selector returns only backends that can
|
|
65
|
+
* satisfy that accelerator, so CUDA/Vulkan evidence cannot be produced by
|
|
66
|
+
* silently falling through to CPU.
|
|
67
|
+
*/
|
|
68
|
+
requiredAccelerator?: "cpu" | "cuda" | "vulkan" | "metal" | "coreml" | "tensorrt";
|
|
69
|
+
/**
|
|
70
|
+
* True when running inside the iOS Capacitor shell. We can't infer
|
|
71
|
+
* from `process.platform` alone because Capacitor reports `"ios"`
|
|
72
|
+
* but Node's typings only know `darwin`/`linux`/etc.
|
|
73
|
+
*/
|
|
74
|
+
isIos?: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* True when running inside the Android Capacitor / `plugin-aosp-local-inference`
|
|
77
|
+
* shell. Node reports `"linux"` on AOSP, so we need an explicit signal.
|
|
78
|
+
*/
|
|
79
|
+
isAndroid?: boolean;
|
|
80
|
+
}
|
|
81
|
+
export type ImageGenBackendId = ImageGenBackend["id"];
|
|
82
|
+
/**
|
|
83
|
+
* Ordered list of `(backendId, accelerator)` pairs to try. The caller
|
|
84
|
+
* picks the first one whose backend loader returns a live handle.
|
|
85
|
+
*
|
|
86
|
+
* Accelerator strings match `ImageGenLoadArgs.accelerator`.
|
|
87
|
+
*/
|
|
88
|
+
export interface ImageGenBackendChoice {
|
|
89
|
+
backendId: ImageGenBackendId;
|
|
90
|
+
accelerator?: "auto" | "cpu" | "cuda" | "vulkan" | "metal" | "coreml" | "tensorrt";
|
|
91
|
+
}
|
|
92
|
+
export declare function selectImageGenBackends(profile: ImageGenRuntimeProfile): readonly ImageGenBackendChoice[];
|
|
93
|
+
/**
|
|
94
|
+
* Tier → default image-gen model id. Mirrors
|
|
95
|
+
* `eliza/packages/chip/ELIZA_1_BUNDLE_EXTRAS.json` and the WS10 golden test's
|
|
96
|
+
* `PER_TIER_DEFAULT` map. Used by the WS3 capability registration to
|
|
97
|
+
* resolve the catalog's bare tier id into a concrete diffusion file.
|
|
98
|
+
*/
|
|
99
|
+
export declare const TIER_TO_DEFAULT_IMAGE_MODEL: Readonly<Record<string, {
|
|
100
|
+
modelId: string;
|
|
101
|
+
file: string;
|
|
102
|
+
splitDiffusionModel?: boolean;
|
|
103
|
+
vae?: string;
|
|
104
|
+
llm?: string;
|
|
105
|
+
}>>;
|
|
106
|
+
/**
|
|
107
|
+
* Resolve a tier id (or raw model id) to its default image-gen model.
|
|
108
|
+
* Returns null when the input doesn't match any known tier — caller
|
|
109
|
+
* surfaces a clear error.
|
|
110
|
+
*/
|
|
111
|
+
export declare function resolveDefaultImageGenModel(keyOrTier: string): {
|
|
112
|
+
modelId: string;
|
|
113
|
+
file: string;
|
|
114
|
+
splitDiffusionModel?: boolean;
|
|
115
|
+
vae?: string;
|
|
116
|
+
llm?: string;
|
|
117
|
+
} | null;
|
|
118
|
+
//# sourceMappingURL=backend-selector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend-selector.d.ts","sourceRoot":"","sources":["../../../src/services/imagegen/backend-selector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,8DAA8D;AAC9D,MAAM,WAAW,sBAAsB;IACtC,iFAAiF;IACjF,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC;IAC9C;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC;IACnC;;;;OAIG;IACH,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IACpD;;;;OAIG;IACH,KAAK,CAAC,EAAE;QACP,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QACjC,WAAW,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;IACF;;;;;OAKG;IACH,mBAAmB,CAAC,EACjB,KAAK,GACL,MAAM,GACN,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,UAAU,CAAC;IACd;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,iBAAiB,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACrC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,WAAW,CAAC,EACT,MAAM,GACN,KAAK,GACL,MAAM,GACN,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,UAAU,CAAC;CACd;AAED,wBAAgB,sBAAsB,CACrC,OAAO,EAAE,sBAAsB,GAC7B,SAAS,qBAAqB,EAAE,CA8FlC;AAED;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CACjD,MAAM,CACL,MAAM,EACN;IACC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACb,CACD,CA+BD,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACb,GAAG,IAAI,CASP"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core ML image-gen backend contract (WS3) — iOS via Capacitor bridge.
|
|
3
|
+
*
|
|
4
|
+
* The contract for the Swift side. The real implementation lives in
|
|
5
|
+
* `eliza/packages/app-core/platforms/ios/App/App/ImageGenBridge.swift`
|
|
6
|
+
* (skeleton written under `// MARK: - Contract`). At runtime the iOS
|
|
7
|
+
* plugin (`@elizaos/plugin-ios-local-inference`) registers a Capacitor
|
|
8
|
+
* service that exposes:
|
|
9
|
+
*
|
|
10
|
+
* await Capacitor.Plugins.ElizaImageGen.generateImage({
|
|
11
|
+
* modelKey: "imagegen-coreml-sd-1_5",
|
|
12
|
+
* prompt: "<text>",
|
|
13
|
+
* negativePrompt: "<text>", // optional
|
|
14
|
+
* width: 512,
|
|
15
|
+
* height: 512,
|
|
16
|
+
* steps: 20,
|
|
17
|
+
* guidanceScale: 7.5,
|
|
18
|
+
* seed: 42 // -1 = random
|
|
19
|
+
* })
|
|
20
|
+
* -> { png: "<base64>", seed: number, inferenceTimeMs: number }
|
|
21
|
+
*
|
|
22
|
+
* Swift side uses `apple/ml-stable-diffusion` Swift package directly;
|
|
23
|
+
* the `.mlpackage` directories are dropped into the app's Documents
|
|
24
|
+
* folder by the bundle installer.
|
|
25
|
+
*
|
|
26
|
+
* Until the Swift bridge is present and the Capacitor plugin exposes the
|
|
27
|
+
* binding, `loadCoreMlImageGenBackend` throws a structured
|
|
28
|
+
* `ImageGenBackendUnavailableError` so the selector can fall through
|
|
29
|
+
* — but on iOS there is no fall-through (sd-cpp doesn't run on iOS,
|
|
30
|
+
* mflux is macOS-only). A `coreml_unavailable` error there means
|
|
31
|
+
* "this device does not support image-gen yet."
|
|
32
|
+
*
|
|
33
|
+
* Publishing pipeline (iOS 17+ / iOS 26+):
|
|
34
|
+
*
|
|
35
|
+
* Build (.mlpackage per tier):
|
|
36
|
+
* git clone https://github.com/apple/ml-stable-diffusion && cd ml-stable-diffusion
|
|
37
|
+
* python3 -m venv venv && ./venv/bin/pip install -e .
|
|
38
|
+
* # SD 1.5 — 512x512, attention=SPLIT_EINSUM_V2 for ANE on iPhone 15+
|
|
39
|
+
* ./venv/bin/python -m python_coreml_stable_diffusion.torch2coreml \
|
|
40
|
+
* --convert-unet --convert-vae-encoder --convert-vae-decoder \
|
|
41
|
+
* --convert-text-encoder --bundle-resources-for-swift-cli \
|
|
42
|
+
* --attention-implementation SPLIT_EINSUM_V2 \
|
|
43
|
+
* --model-version runwayml/stable-diffusion-v1-5 \
|
|
44
|
+
* --output-dir build/sd-1.5-coreml-512
|
|
45
|
+
* # SDXL — 1024x1024, same pipeline at --model-version
|
|
46
|
+
* # stabilityai/sdxl-turbo for the iPhone 16 Pro / iPad M-class path.
|
|
47
|
+
* xcrun coremlc compile build/sd-1.5-coreml-512 build/sd-1.5-coreml-512-compiled
|
|
48
|
+
* Sign:
|
|
49
|
+
* codesign --force --options runtime --timestamp \
|
|
50
|
+
* --sign "Apple Distribution: Eliza Labs Inc." \
|
|
51
|
+
* build/sd-1.5-coreml-512/*.mlpackage
|
|
52
|
+
* Drop (into the Capacitor app bundle's on-demand resources):
|
|
53
|
+
* Tag with `nameOfResourcesODR=ImageGenSD15` so the App Store delivers
|
|
54
|
+
* the package only when the runtime requests it via `NSBundleResource
|
|
55
|
+
* Request`. Total compressed .mlpackage size is ~600 MB for SD 1.5
|
|
56
|
+
* at SPLIT_EINSUM_V2 and ~3 GB for SDXL-turbo.
|
|
57
|
+
* Notarize / submit:
|
|
58
|
+
* The .mlpackages ship inside the signed IPA; notarization is the
|
|
59
|
+
* standard `altool notarytool submit` step for the host IPA.
|
|
60
|
+
* iOS 26 (forward-compat note):
|
|
61
|
+
* iOS 26 adds the public `MLTensor` API and an updated ANE driver;
|
|
62
|
+
* re-build the .mlpackage with `--attention-implementation
|
|
63
|
+
* SPLIT_EINSUM_V2` on the iOS 26 SDK to pick up the latest ANE
|
|
64
|
+
* scheduling improvements. The Swift bridge code in
|
|
65
|
+
* `ImageGenBridge.swift` is the same across iOS 17/18/26.
|
|
66
|
+
*/
|
|
67
|
+
import type { ImageGenBackend, ImageGenLoadArgs } from "./types";
|
|
68
|
+
/**
|
|
69
|
+
* The Capacitor bridge shape. The iOS plugin registers an instance
|
|
70
|
+
* under the runtime service name `"capacitor-image-gen"` once the
|
|
71
|
+
* Swift side ships.
|
|
72
|
+
*/
|
|
73
|
+
export interface CoreMlImageGenBridge {
|
|
74
|
+
/**
|
|
75
|
+
* True when the Swift `ImageGenBridge.swift` is present AND a
|
|
76
|
+
* `.mlpackage` has been resolved for the active tier. False when
|
|
77
|
+
* either is missing — the backend throws on `generate` in
|
|
78
|
+
* that case rather than producing a synthetic PNG.
|
|
79
|
+
*/
|
|
80
|
+
isAvailable(): boolean;
|
|
81
|
+
generateImage(args: {
|
|
82
|
+
modelKey: string;
|
|
83
|
+
prompt: string;
|
|
84
|
+
negativePrompt?: string;
|
|
85
|
+
width: number;
|
|
86
|
+
height: number;
|
|
87
|
+
steps: number;
|
|
88
|
+
guidanceScale: number;
|
|
89
|
+
seed: number;
|
|
90
|
+
signal?: AbortSignal;
|
|
91
|
+
}): Promise<{
|
|
92
|
+
/** Base64-encoded PNG. */
|
|
93
|
+
png: string;
|
|
94
|
+
seed: number;
|
|
95
|
+
inferenceTimeMs: number;
|
|
96
|
+
}>;
|
|
97
|
+
}
|
|
98
|
+
export interface LoadCoreMlImageGenBackendOptions {
|
|
99
|
+
loadArgs: ImageGenLoadArgs;
|
|
100
|
+
modelKey: string;
|
|
101
|
+
bridge?: CoreMlImageGenBridge;
|
|
102
|
+
now?: () => number;
|
|
103
|
+
}
|
|
104
|
+
export declare function loadCoreMlImageGenBackend(opts: LoadCoreMlImageGenBackendOptions): Promise<ImageGenBackend>;
|
|
105
|
+
//# sourceMappingURL=coreml-unavailable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coreml-unavailable.d.ts","sourceRoot":"","sources":["../../../src/services/imagegen/coreml-unavailable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AAIH,OAAO,KAAK,EACX,eAAe,EACf,gBAAgB,EAGhB,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACpC;;;;;OAKG;IACH,WAAW,IAAI,OAAO,CAAC;IACvB,aAAa,CAAC,IAAI,EAAE;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,WAAW,CAAC;KACrB,GAAG,OAAO,CAAC;QACX,0BAA0B;QAC1B,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;CACH;AAED,MAAM,WAAW,gCAAgC;IAChD,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACnB;AAED,wBAAsB,yBAAyB,CAC9C,IAAI,EAAE,gCAAgC,GACpC,OAAO,CAAC,eAAe,CAAC,CA4F1B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured error every WS3 backend throws when it can't serve a
|
|
3
|
+
* request. Mirrors `VisionBackendUnavailableError` so the arbiter / WS3
|
|
4
|
+
* provider handler can surface a single typed failure mode upward.
|
|
5
|
+
*/
|
|
6
|
+
export declare class ImageGenBackendUnavailableError extends Error {
|
|
7
|
+
readonly backendId: string;
|
|
8
|
+
readonly reason: "binary_missing" | "binary_version_mismatch" | "cuda_binary_missing" | "vulkan_binary_missing" | "metal_binary_missing" | "cuda_unavailable" | "model_missing" | "binding_unavailable" | "unsupported_runtime" | "unsupported_request" | "subprocess_failed";
|
|
9
|
+
readonly code = "IMAGE_GEN_BACKEND_UNAVAILABLE";
|
|
10
|
+
constructor(backendId: string, reason: "binary_missing" | "binary_version_mismatch" | "cuda_binary_missing" | "vulkan_binary_missing" | "metal_binary_missing" | "cuda_unavailable" | "model_missing" | "binding_unavailable" | "unsupported_runtime" | "unsupported_request" | "subprocess_failed", message: string, options?: {
|
|
11
|
+
cause?: unknown;
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
/** Tells callers whether a thrown error came from a backend availability check. */
|
|
15
|
+
export declare function isImageGenUnavailable(err: unknown): err is ImageGenBackendUnavailableError;
|
|
16
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/services/imagegen/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,+BAAgC,SAAQ,KAAK;IAGxD,QAAQ,CAAC,SAAS,EAAE,MAAM;IAC1B,QAAQ,CAAC,MAAM,EACZ,gBAAgB,GAChB,yBAAyB,GACzB,qBAAqB,GACrB,uBAAuB,GACvB,sBAAsB,GACtB,kBAAkB,GAClB,eAAe,GACf,qBAAqB,GACrB,qBAAqB,GACrB,qBAAqB,GACrB,mBAAmB;IAdvB,QAAQ,CAAC,IAAI,mCAAmC;gBAEtC,SAAS,EAAE,MAAM,EACjB,MAAM,EACZ,gBAAgB,GAChB,yBAAyB,GACzB,qBAAqB,GACrB,uBAAuB,GACvB,sBAAsB,GACtB,kBAAkB,GAClB,eAAe,GACf,qBAAqB,GACrB,qBAAqB,GACrB,qBAAqB,GACrB,mBAAmB,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAK9B;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CACpC,GAAG,EAAE,OAAO,GACV,GAAG,IAAI,+BAA+B,CAOxC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local image-generation capability (WS3) — public entry point.
|
|
3
|
+
*
|
|
4
|
+
* This module is what `provider.ts` (`createImageGenerationHandler`),
|
|
5
|
+
* the UI image-gen action, and image-gen skill imports to
|
|
6
|
+
* register the capability with the WS1 MemoryArbiter.
|
|
7
|
+
*
|
|
8
|
+
* Wiring:
|
|
9
|
+
*
|
|
10
|
+
* const arbiter = service.getMemoryArbiter();
|
|
11
|
+
* const registration = createImageGenCapabilityRegistration({
|
|
12
|
+
* loader: createDefaultImageGenLoader({ ... }),
|
|
13
|
+
* });
|
|
14
|
+
* arbiter.registerCapability(registration);
|
|
15
|
+
*
|
|
16
|
+
* `createImageGenCapabilityRegistration` wraps the underlying backend
|
|
17
|
+
* so the arbiter's `run(request)` path:
|
|
18
|
+
*
|
|
19
|
+
* 1. Calls `backend.supports(request)`. If false, the arbiter throws
|
|
20
|
+
* `unsupported_request` so the caller can pick a different tier
|
|
21
|
+
* or surface a clear error.
|
|
22
|
+
* 2. Calls `backend.generate(request)` and returns the result.
|
|
23
|
+
*
|
|
24
|
+
* The capability registers with `residentRole: "vision"` so image-gen
|
|
25
|
+
* co-evicts with vision-describe — both are GPU-heavy weights with
|
|
26
|
+
* comparable RAM footprints, and the arbiter's existing one-model-per-
|
|
27
|
+
* role policy gives us free serialization. A vision-describe request
|
|
28
|
+
* arriving while image-gen is in flight will queue, wait for the
|
|
29
|
+
* generate to drain, then evict the diffusion weights and load the
|
|
30
|
+
* VL weights.
|
|
31
|
+
*/
|
|
32
|
+
export { type AospImageGenBinding, type AospImageGenHandle, type LoadAospImageGenBackendOptions, loadAospImageGenBackend, } from "./aosp-unavailable";
|
|
33
|
+
export { type ImageGenBackendChoice, type ImageGenBackendId, type ImageGenRuntimeProfile, resolveDefaultImageGenModel, selectImageGenBackends, TIER_TO_DEFAULT_IMAGE_MODEL, } from "./backend-selector";
|
|
34
|
+
export { type CoreMlImageGenBridge, type LoadCoreMlImageGenBackendOptions, loadCoreMlImageGenBackend, } from "./coreml-unavailable";
|
|
35
|
+
export { ImageGenBackendUnavailableError, isImageGenUnavailable, } from "./errors";
|
|
36
|
+
export { loadMfluxImageGenBackend, type MfluxBackendOptions, } from "./mflux";
|
|
37
|
+
export { assertPngOutput, defaultSpawn, loadSdCppImageGenBackend, PNG_SIGNATURE, pickSeed, resolveSeed, type SdCppBackendOptions, type SdCppSpawnLike, } from "./sd-cpp";
|
|
38
|
+
export { loadTensorRtImageGenBackend, type TensorRtBackendOptions, } from "./tensorrt-unavailable";
|
|
39
|
+
export type { ImageGenBackend, ImageGenBackendLoader, ImageGenLoadArgs, ImageGenMimeType, ImageGenRequest, ImageGenResult, } from "./types";
|
|
40
|
+
import type { CapabilityRegistration } from "../memory-arbiter";
|
|
41
|
+
import type { ImageGenBackend, ImageGenBackendLoader, ImageGenRequest, ImageGenResult } from "./types";
|
|
42
|
+
export interface CreateImageGenCapabilityRegistrationOptions {
|
|
43
|
+
loader: ImageGenBackendLoader;
|
|
44
|
+
/**
|
|
45
|
+
* Best-effort RAM/VRAM footprint estimate for the loaded weights. The
|
|
46
|
+
* arbiter only uses this for telemetry; eviction is by priority. The
|
|
47
|
+
* default (3500 MB) matches Z-Image-Turbo Q4_K_M; small-tier SD 1.5
|
|
48
|
+
* loaders SHOULD pass ~1100.
|
|
49
|
+
*/
|
|
50
|
+
estimatedMb?: number;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Build a `CapabilityRegistration` ready to feed to
|
|
54
|
+
* `arbiter.registerCapability()`. Mirrors
|
|
55
|
+
* `createVisionCapabilityRegistration` from WS2.
|
|
56
|
+
*/
|
|
57
|
+
export declare function createImageGenCapabilityRegistration(opts: CreateImageGenCapabilityRegistrationOptions): CapabilityRegistration<ImageGenBackend, ImageGenRequest, ImageGenResult>;
|
|
58
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/imagegen/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EACN,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,8BAA8B,EACnC,uBAAuB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,2BAA2B,EAC3B,sBAAsB,EACtB,2BAA2B,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,KAAK,oBAAoB,EACzB,KAAK,gCAAgC,EACrC,yBAAyB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,+BAA+B,EAC/B,qBAAqB,GACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EACN,wBAAwB,EACxB,KAAK,mBAAmB,GACxB,MAAM,SAAS,CAAC;AACjB,OAAO,EACN,eAAe,EACf,YAAY,EACZ,wBAAwB,EACxB,aAAa,EACb,QAAQ,EACR,WAAW,EACX,KAAK,mBAAmB,EACxB,KAAK,cAAc,GACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EACN,2BAA2B,EAC3B,KAAK,sBAAsB,GAC3B,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACX,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,cAAc,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAEX,sBAAsB,EACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EACX,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,2CAA2C;IAC3D,MAAM,EAAE,qBAAqB,CAAC;IAC9B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,oCAAoC,CACnD,IAAI,EAAE,2CAA2C,GAC/C,sBAAsB,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,CAAC,CA+B1E"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MLX-mflux image-gen backend (WS3) — macOS Apple Silicon.
|
|
3
|
+
*
|
|
4
|
+
* `mflux` is the community MLX port of FLUX.1 with Z-Image-Turbo support
|
|
5
|
+
* (https://github.com/filipstrand/mflux). It's a Python package that
|
|
6
|
+
* ships a `mflux-generate` CLI; we shell out to it from a venv the
|
|
7
|
+
* bundle installer creates at `${MODELS_DIR}/mlx/mflux`.
|
|
8
|
+
*
|
|
9
|
+
* Why a venv (and not a Node MLX binding):
|
|
10
|
+
* - MLX Python is the canonical fast path on Apple Silicon — the
|
|
11
|
+
* mflux maintainers track upstream MLX optimizations directly.
|
|
12
|
+
* - There is no stable MLX Node binding today; writing one would
|
|
13
|
+
* duplicate MLX Python's surface for very little gain. Diffusion
|
|
14
|
+
* latency dominates the IPC cost.
|
|
15
|
+
* - The mflux CLI is stable, with `--model …`, `--prompt …`,
|
|
16
|
+
* `--steps …`, `--seed …`, `--output …`.
|
|
17
|
+
*
|
|
18
|
+
* Venv resolution:
|
|
19
|
+
* 1. `opts.binaryPath` (test injection).
|
|
20
|
+
* 2. `process.env.MFLUX_BIN` (operator override; usually the venv's
|
|
21
|
+
* `bin/mflux-generate`).
|
|
22
|
+
* 3. `${MODELS_DIR}/mlx/mflux/bin/mflux-generate`.
|
|
23
|
+
*
|
|
24
|
+
* Model resolution:
|
|
25
|
+
* mflux expects `--model` to be either a HuggingFace repo id
|
|
26
|
+
* (`black-forest-labs/FLUX.1-schnell`) or a local checkpoint
|
|
27
|
+
* directory. The bundle installer writes the local path; we pass it
|
|
28
|
+
* verbatim.
|
|
29
|
+
*
|
|
30
|
+
* GPU validation status:
|
|
31
|
+
* On Apple Silicon this hits the Metal Performance Shaders backend
|
|
32
|
+
* through MLX. We have no Mac on this host — see
|
|
33
|
+
* `__tests__/imagegen-handler.test.ts` notes for the on-device check
|
|
34
|
+
* (M2 / M3 Max smoke for Z-Image-Turbo 4-step <2s 1024×1024).
|
|
35
|
+
*
|
|
36
|
+
* Publishing pipeline (macOS Apple Silicon only — Intel Mac falls back to
|
|
37
|
+
* sd-cpp Metal, see `sd-cpp.ts`):
|
|
38
|
+
*
|
|
39
|
+
* Build:
|
|
40
|
+
* python3 -m venv ${MODELS_DIR}/mlx/mflux
|
|
41
|
+
* ${MODELS_DIR}/mlx/mflux/bin/pip install --upgrade pip
|
|
42
|
+
* ${MODELS_DIR}/mlx/mflux/bin/pip install mflux # arm64-only wheel
|
|
43
|
+
* Sign:
|
|
44
|
+
* codesign --force --options runtime --timestamp \
|
|
45
|
+
* --sign "Developer ID Application: Eliza Labs Inc." \
|
|
46
|
+
* ${MODELS_DIR}/mlx/mflux/bin/python3
|
|
47
|
+
* codesign --force --options runtime --timestamp \
|
|
48
|
+
* --sign "Developer ID Application: Eliza Labs Inc." \
|
|
49
|
+
* ${MODELS_DIR}/mlx/mflux/bin/mflux-generate
|
|
50
|
+
* Notarize:
|
|
51
|
+
* ditto -c -k --keepParent ${MODELS_DIR}/mlx/mflux mflux-venv.zip
|
|
52
|
+
* xcrun notarytool submit mflux-venv.zip \
|
|
53
|
+
* --apple-id <ci-secret> --team-id <eliza-labs-team> --wait
|
|
54
|
+
* xcrun stapler staple ${MODELS_DIR}/mlx/mflux/bin/mflux-generate
|
|
55
|
+
* Drop:
|
|
56
|
+
* releases.elizaos.ai/mflux/<version>/darwin-arm64/mflux-venv.tar.zst
|
|
57
|
+
* The bundle installer untars the venv into the user's `${MODELS_DIR}/
|
|
58
|
+
* mlx/mflux/` directory; the first launch runs `mflux-generate --help`
|
|
59
|
+
* to warm up the cache.
|
|
60
|
+
*/
|
|
61
|
+
import { type SdCppSpawnLike } from "./sd-cpp";
|
|
62
|
+
import type { ImageGenBackend, ImageGenLoadArgs } from "./types";
|
|
63
|
+
export interface MfluxBackendOptions {
|
|
64
|
+
loadArgs: ImageGenLoadArgs;
|
|
65
|
+
modelKey: string;
|
|
66
|
+
binaryPath?: string;
|
|
67
|
+
outputDir?: string;
|
|
68
|
+
spawnImpl?: SdCppSpawnLike;
|
|
69
|
+
/** Test seam — when set, skips subprocess and writes these bytes. */
|
|
70
|
+
fakeImageBytes?: Uint8Array;
|
|
71
|
+
now?: () => number;
|
|
72
|
+
}
|
|
73
|
+
export declare function loadMfluxImageGenBackend(opts: MfluxBackendOptions): Promise<ImageGenBackend>;
|
|
74
|
+
//# sourceMappingURL=mflux.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mflux.d.ts","sourceRoot":"","sources":["../../../src/services/imagegen/mflux.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AAMH,OAAO,EAIN,KAAK,cAAc,EACnB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EACX,eAAe,EACf,gBAAgB,EAGhB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,mBAAmB;IACnC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,qEAAqE;IACrE,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACnB;AAID,wBAAsB,wBAAwB,CAC7C,IAAI,EAAE,mBAAmB,GACvB,OAAO,CAAC,eAAe,CAAC,CA8H1B"}
|