@elizaos/plugin-local-inference 2.0.0-beta.1 → 2.0.11-beta.7
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 +83 -0
- package/package.json +81 -15
- package/src/actions/generate-media.d.ts +59 -0
- package/src/actions/generate-media.d.ts.map +1 -0
- package/src/actions/generate-media.ts +647 -0
- package/src/actions/identify-speaker.d.ts +23 -0
- package/src/actions/identify-speaker.d.ts.map +1 -0
- package/src/actions/identify-speaker.ts +171 -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/environment.ts +71 -0
- package/src/adapters/capacitor-llama/index.browser.ts +83 -0
- package/src/adapters/capacitor-llama/index.ts +807 -0
- package/src/adapters/capacitor-llama/loader.ts +109 -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/backends/apple-foundation.ts +127 -0
- package/src/index.d.ts +7 -0
- package/src/index.d.ts.map +1 -0
- package/src/index.ts +54 -0
- package/src/local-inference-routes.d.ts +38 -0
- package/src/local-inference-routes.d.ts.map +1 -0
- package/src/local-inference-routes.test.ts +344 -0
- package/src/local-inference-routes.ts +1543 -0
- package/src/provider.d.ts +21 -0
- package/src/provider.d.ts.map +1 -0
- package/src/provider.ts +1171 -0
- package/src/routes/compat-helpers.d.ts +18 -0
- package/src/routes/compat-helpers.d.ts.map +1 -0
- package/src/routes/compat-helpers.ts +274 -0
- package/src/routes/family-member-route.d.ts +62 -0
- package/src/routes/family-member-route.d.ts.map +1 -0
- package/src/routes/family-member-route.ts +353 -0
- package/src/routes/index.d.ts +19 -0
- package/src/routes/index.d.ts.map +1 -0
- package/src/routes/index.ts +60 -0
- package/src/routes/live-diarization-route.d.ts +26 -0
- package/src/routes/live-diarization-route.d.ts.map +1 -0
- package/src/routes/live-diarization-route.test.ts +213 -0
- package/src/routes/live-diarization-route.ts +122 -0
- package/src/routes/local-inference-asr-route.d.ts +4 -0
- package/src/routes/local-inference-asr-route.d.ts.map +1 -0
- package/src/routes/local-inference-asr-route.test.ts +190 -0
- package/src/routes/local-inference-asr-route.ts +213 -0
- package/src/routes/local-inference-compat-routes.d.ts +16 -0
- package/src/routes/local-inference-compat-routes.d.ts.map +1 -0
- package/src/routes/local-inference-compat-routes.test.ts +423 -0
- package/src/routes/local-inference-compat-routes.ts +782 -0
- package/src/routes/local-inference-tts-route.d.ts +7 -0
- package/src/routes/local-inference-tts-route.d.ts.map +1 -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/voice-first-run-routes.d.ts +62 -0
- package/src/routes/voice-first-run-routes.d.ts.map +1 -0
- package/src/routes/voice-first-run-routes.ts +524 -0
- package/src/routes/voice-models-routes.d.ts +62 -0
- package/src/routes/voice-models-routes.d.ts.map +1 -0
- package/src/routes/voice-models-routes.ts +554 -0
- package/src/routes/voice-profile-plugin-routes.d.ts +19 -0
- package/src/routes/voice-profile-plugin-routes.d.ts.map +1 -0
- package/src/routes/voice-profile-plugin-routes.ts +138 -0
- package/src/routes/voice-profiles-management-routes.d.ts +52 -0
- package/src/routes/voice-profiles-management-routes.d.ts.map +1 -0
- package/src/routes/voice-profiles-management-routes.ts +476 -0
- package/src/routes/voice-speaker-profile-routes.d.ts +57 -0
- package/src/routes/voice-speaker-profile-routes.d.ts.map +1 -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/capacitor-llama.d.ts +25 -0
- package/src/runtime/embedding-manager-support.d.ts +77 -0
- package/src/runtime/embedding-manager-support.d.ts.map +1 -0
- package/src/runtime/embedding-manager-support.ts +497 -0
- package/src/runtime/embedding-presets.d.ts +16 -0
- package/src/runtime/embedding-presets.d.ts.map +1 -0
- package/src/runtime/embedding-presets.ts +81 -0
- package/src/runtime/embedding-warmup-policy.d.ts +14 -0
- package/src/runtime/embedding-warmup-policy.d.ts.map +1 -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.d.ts +53 -0
- package/src/runtime/ensure-local-inference-handler.d.ts.map +1 -0
- package/src/runtime/ensure-local-inference-handler.test.ts +528 -0
- package/src/runtime/ensure-local-inference-handler.ts +1398 -0
- package/src/runtime/index.d.ts +14 -0
- package/src/runtime/index.d.ts.map +1 -0
- package/src/runtime/index.ts +27 -0
- package/src/runtime/mobile-local-inference-gate.d.ts +31 -0
- package/src/runtime/mobile-local-inference-gate.d.ts.map +1 -0
- package/src/runtime/mobile-local-inference-gate.test.ts +69 -0
- package/src/runtime/mobile-local-inference-gate.ts +44 -0
- package/src/runtime/voice-entity-binding.d.ts +103 -0
- package/src/runtime/voice-entity-binding.d.ts.map +1 -0
- package/src/runtime/voice-entity-binding.transcript.test.ts +69 -0
- package/src/runtime/voice-entity-binding.ts +328 -0
- package/src/services/README.md +71 -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-switch-rollback.test.ts +183 -0
- package/src/services/active-model.d.ts +282 -0
- package/src/services/active-model.d.ts.map +1 -0
- package/src/services/active-model.ts +1213 -0
- package/src/services/asr/errors.d.ts +21 -0
- package/src/services/asr/errors.d.ts.map +1 -0
- package/src/services/asr/errors.ts +50 -0
- package/src/services/asr/hash.d.ts +28 -0
- package/src/services/asr/hash.d.ts.map +1 -0
- package/src/services/asr/hash.ts +49 -0
- package/src/services/asr/index.d.ts +76 -0
- package/src/services/asr/index.d.ts.map +1 -0
- package/src/services/asr/index.ts +178 -0
- package/src/services/asr/types.d.ts +91 -0
- package/src/services/asr/types.d.ts.map +1 -0
- package/src/services/asr/types.ts +95 -0
- package/src/services/assignments.d.ts +71 -0
- package/src/services/assignments.d.ts.map +1 -0
- package/src/services/assignments.test.ts +80 -0
- package/src/services/assignments.ts +230 -0
- package/src/services/backend-selector.ts +95 -0
- package/src/services/backend.d.ts +346 -0
- package/src/services/backend.d.ts.map +1 -0
- package/src/services/backend.ts +612 -0
- package/src/services/bundled-models.d.ts +34 -0
- package/src/services/bundled-models.d.ts.map +1 -0
- package/src/services/bundled-models.ts +129 -0
- package/src/services/cache-bridge.d.ts +206 -0
- package/src/services/cache-bridge.d.ts.map +1 -0
- package/src/services/cache-bridge.test.ts +516 -0
- package/src/services/cache-bridge.ts +423 -0
- package/src/services/catalog.d.ts +10 -0
- package/src/services/catalog.d.ts.map +1 -0
- package/src/services/catalog.test.ts +240 -0
- package/src/services/catalog.ts +27 -0
- package/src/services/checkpoint-client.d.ts +109 -0
- package/src/services/checkpoint-client.d.ts.map +1 -0
- package/src/services/checkpoint-client.ts +258 -0
- package/src/services/checkpoint-manager.ts +474 -0
- package/src/services/cloud-fallback.d.ts +102 -0
- package/src/services/cloud-fallback.d.ts.map +1 -0
- package/src/services/cloud-fallback.ts +230 -0
- package/src/services/conversation-registry.d.ts +142 -0
- package/src/services/conversation-registry.d.ts.map +1 -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.d.ts +92 -0
- package/src/services/desktop-fused-ffi-backend-runtime.d.ts.map +1 -0
- package/src/services/desktop-fused-ffi-backend-runtime.ts +333 -0
- package/src/services/device-bridge.d.ts +188 -0
- package/src/services/device-bridge.d.ts.map +1 -0
- package/src/services/device-bridge.ts +1237 -0
- package/src/services/device-resource-metrics.d.ts +149 -0
- package/src/services/device-resource-metrics.d.ts.map +1 -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.d.ts +115 -0
- package/src/services/device-tier.d.ts.map +1 -0
- package/src/services/device-tier.test.ts +371 -0
- package/src/services/device-tier.ts +410 -0
- package/src/services/downloader.d.ts +82 -0
- package/src/services/downloader.d.ts.map +1 -0
- package/src/services/downloader.test.ts +724 -0
- package/src/services/downloader.ts +899 -0
- package/src/services/engine-direct-bundle.test.ts +58 -0
- package/src/services/engine-streaming.test.ts +80 -0
- package/src/services/engine.d.ts +534 -0
- package/src/services/engine.d.ts.map +1 -0
- package/src/services/engine.ts +1891 -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.d.ts +17 -0
- package/src/services/external-scanner.d.ts.map +1 -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 +442 -0
- package/src/services/ffi-streaming-backend.d.ts +180 -0
- package/src/services/ffi-streaming-backend.d.ts.map +1 -0
- package/src/services/ffi-streaming-backend.ts +382 -0
- package/src/services/ffi-streaming-runner.d.ts +122 -0
- package/src/services/ffi-streaming-runner.d.ts.map +1 -0
- package/src/services/ffi-streaming-runner.test.ts +60 -0
- package/src/services/ffi-streaming-runner.ts +354 -0
- package/src/services/ffi-unload-ordering.test.ts +162 -0
- package/src/services/gpu-autotune.ts +534 -0
- package/src/services/gpu-detect.ts +139 -0
- package/src/services/handler-registry.d.ts +72 -0
- package/src/services/handler-registry.d.ts.map +1 -0
- package/src/services/handler-registry.ts +240 -0
- package/src/services/hardware.d.ts +63 -0
- package/src/services/hardware.d.ts.map +1 -0
- package/src/services/hardware.test.ts +183 -0
- package/src/services/hardware.ts +404 -0
- package/src/services/hf-search.d.ts +26 -0
- package/src/services/hf-search.d.ts.map +1 -0
- package/src/services/hf-search.test.ts +69 -0
- package/src/services/hf-search.ts +420 -0
- package/src/services/image-description-runtime.d.ts +14 -0
- package/src/services/image-description-runtime.d.ts.map +1 -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.d.ts +134 -0
- package/src/services/imagegen/aosp-unavailable.d.ts.map +1 -0
- package/src/services/imagegen/aosp-unavailable.ts +229 -0
- package/src/services/imagegen/backend-selector.d.ts +118 -0
- package/src/services/imagegen/backend-selector.d.ts.map +1 -0
- package/src/services/imagegen/backend-selector.ts +281 -0
- package/src/services/imagegen/coreml-unavailable.d.ts +105 -0
- package/src/services/imagegen/coreml-unavailable.d.ts.map +1 -0
- package/src/services/imagegen/coreml-unavailable.ts +237 -0
- package/src/services/imagegen/errors.d.ts +16 -0
- package/src/services/imagegen/errors.d.ts.map +1 -0
- package/src/services/imagegen/errors.ts +40 -0
- package/src/services/imagegen/index.d.ts +58 -0
- package/src/services/imagegen/index.d.ts.map +1 -0
- package/src/services/imagegen/index.ts +144 -0
- package/src/services/imagegen/mflux.d.ts +74 -0
- package/src/services/imagegen/mflux.d.ts.map +1 -0
- package/src/services/imagegen/mflux.ts +313 -0
- package/src/services/imagegen/sd-cpp.d.ts +180 -0
- package/src/services/imagegen/sd-cpp.d.ts.map +1 -0
- package/src/services/imagegen/sd-cpp.ts +718 -0
- package/src/services/imagegen/tensorrt-unavailable.d.ts +83 -0
- package/src/services/imagegen/tensorrt-unavailable.d.ts.map +1 -0
- package/src/services/imagegen/tensorrt-unavailable.ts +295 -0
- package/src/services/imagegen/types.d.ts +181 -0
- package/src/services/imagegen/types.d.ts.map +1 -0
- package/src/services/imagegen/types.ts +193 -0
- package/src/services/index.d.ts +30 -0
- package/src/services/index.d.ts.map +1 -0
- package/src/services/index.ts +225 -0
- package/src/services/inference-capabilities.d.ts +132 -0
- package/src/services/inference-capabilities.d.ts.map +1 -0
- package/src/services/inference-capabilities.test.ts +75 -0
- package/src/services/inference-capabilities.ts +204 -0
- package/src/services/inference-telemetry.d.ts +59 -0
- package/src/services/inference-telemetry.d.ts.map +1 -0
- package/src/services/inference-telemetry.ts +143 -0
- package/src/services/ios-llama-streaming.ts +248 -0
- package/src/services/kv-spill.d.ts +189 -0
- package/src/services/kv-spill.d.ts.map +1 -0
- package/src/services/kv-spill.test.ts +222 -0
- package/src/services/kv-spill.ts +356 -0
- package/src/services/latency-trace.d.ts +346 -0
- package/src/services/latency-trace.d.ts.map +1 -0
- package/src/services/latency-trace.test.ts +266 -0
- package/src/services/latency-trace.ts +844 -0
- package/src/services/llama-server-metrics.ts +304 -0
- package/src/services/llm-streaming-binding.d.ts +96 -0
- package/src/services/llm-streaming-binding.d.ts.map +1 -0
- package/src/services/llm-streaming-binding.ts +136 -0
- package/src/services/load-args.d.ts +82 -0
- package/src/services/load-args.d.ts.map +1 -0
- package/src/services/load-args.ts +81 -0
- package/src/services/manifest/eliza-1.manifest.v1.json +708 -0
- package/src/services/manifest/index.d.ts +4 -0
- package/src/services/manifest/index.d.ts.map +1 -0
- package/src/services/manifest/index.ts +66 -0
- package/src/services/manifest/manifest.test.ts +693 -0
- package/src/services/manifest/schema.d.ts +715 -0
- package/src/services/manifest/schema.d.ts.map +1 -0
- package/src/services/manifest/schema.ts +655 -0
- package/src/services/manifest/types.d.ts +30 -0
- package/src/services/manifest/types.d.ts.map +1 -0
- package/src/services/manifest/types.ts +55 -0
- package/src/services/manifest/validator.d.ts +66 -0
- package/src/services/manifest/validator.d.ts.map +1 -0
- package/src/services/manifest/validator.ts +569 -0
- package/src/services/memory-arbiter.d.ts +343 -0
- package/src/services/memory-arbiter.d.ts.map +1 -0
- package/src/services/memory-arbiter.test.ts +419 -0
- package/src/services/memory-arbiter.ts +1000 -0
- package/src/services/memory-monitor.d.ts +119 -0
- package/src/services/memory-monitor.d.ts.map +1 -0
- package/src/services/memory-monitor.test.ts +208 -0
- package/src/services/memory-monitor.ts +296 -0
- package/src/services/memory-pressure.d.ts +127 -0
- package/src/services/memory-pressure.d.ts.map +1 -0
- package/src/services/memory-pressure.ts +413 -0
- package/src/services/mtp-doctor.d.ts +13 -0
- package/src/services/mtp-doctor.d.ts.map +1 -0
- package/src/services/mtp-doctor.ts +78 -0
- package/src/services/network-policy.d.ts +127 -0
- package/src/services/network-policy.d.ts.map +1 -0
- package/src/services/network-policy.ts +346 -0
- package/src/services/paths.d.ts +6 -0
- package/src/services/paths.d.ts.map +1 -0
- package/src/services/paths.ts +25 -0
- package/src/services/planner-skeleton.d.ts +124 -0
- package/src/services/planner-skeleton.d.ts.map +1 -0
- package/src/services/planner-skeleton.ts +175 -0
- package/src/services/providers.d.ts +38 -0
- package/src/services/providers.d.ts.map +1 -0
- package/src/services/providers.ts +507 -0
- package/src/services/ram-budget-cache.test.ts +163 -0
- package/src/services/ram-budget.d.ts +110 -0
- package/src/services/ram-budget.d.ts.map +1 -0
- package/src/services/ram-budget.ts +0 -0
- package/src/services/readiness.d.ts +9 -0
- package/src/services/readiness.d.ts.map +1 -0
- package/src/services/readiness.test.ts +87 -0
- package/src/services/readiness.ts +238 -0
- package/src/services/recommendation.d.ts +111 -0
- package/src/services/recommendation.d.ts.map +1 -0
- package/src/services/recommendation.ts +672 -0
- package/src/services/registry.d.ts +35 -0
- package/src/services/registry.d.ts.map +1 -0
- package/src/services/registry.ts +151 -0
- package/src/services/router-handler.d.ts +92 -0
- package/src/services/router-handler.d.ts.map +1 -0
- package/src/services/router-handler.test.ts +45 -0
- package/src/services/router-handler.ts +376 -0
- package/src/services/routing-policy.d.ts +55 -0
- package/src/services/routing-policy.d.ts.map +1 -0
- package/src/services/routing-policy.ts +228 -0
- package/src/services/routing-preferences.d.ts +8 -0
- package/src/services/routing-preferences.d.ts.map +1 -0
- package/src/services/routing-preferences.ts +15 -0
- package/src/services/runtime-target.d.ts +98 -0
- package/src/services/runtime-target.d.ts.map +1 -0
- package/src/services/runtime-target.ts +154 -0
- package/src/services/service.d.ts +128 -0
- package/src/services/service.d.ts.map +1 -0
- package/src/services/service.test.ts +223 -0
- package/src/services/service.ts +735 -0
- package/src/services/session-pool.d.ts +72 -0
- package/src/services/session-pool.d.ts.map +1 -0
- package/src/services/session-pool.ts +153 -0
- package/src/services/structured-output/deterministic-repair.d.ts +23 -0
- package/src/services/structured-output/deterministic-repair.d.ts.map +1 -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.d.ts +311 -0
- package/src/services/structured-output.d.ts.map +1 -0
- package/src/services/structured-output.test.ts +483 -0
- package/src/services/structured-output.ts +712 -0
- package/src/services/transcription-priority.test.ts +211 -0
- package/src/services/tts/errors.ts +46 -0
- package/src/services/tts/index.ts +214 -0
- package/src/services/tts/tts-audio-cache.ts +235 -0
- package/src/services/tts/types.ts +157 -0
- package/src/services/types.d.ts +19 -0
- package/src/services/types.d.ts.map +1 -0
- package/src/services/types.ts +55 -0
- package/src/services/verify-on-device.d.ts +34 -0
- package/src/services/verify-on-device.d.ts.map +1 -0
- package/src/services/verify-on-device.test.ts +87 -0
- package/src/services/verify-on-device.ts +127 -0
- package/src/services/verify.d.ts +8 -0
- package/src/services/verify.d.ts.map +1 -0
- package/src/services/verify.ts +13 -0
- package/src/services/vision/aosp-unavailable.d.ts +115 -0
- package/src/services/vision/aosp-unavailable.d.ts.map +1 -0
- package/src/services/vision/aosp-unavailable.ts +163 -0
- package/src/services/vision/capacitor-llama.d.ts +99 -0
- package/src/services/vision/capacitor-llama.d.ts.map +1 -0
- package/src/services/vision/capacitor-llama.ts +255 -0
- package/src/services/vision/cloud-fallback.d.ts +47 -0
- package/src/services/vision/cloud-fallback.d.ts.map +1 -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.d.ts +71 -0
- package/src/services/vision/hash.d.ts.map +1 -0
- package/src/services/vision/hash.ts +157 -0
- package/src/services/vision/index.d.ts +95 -0
- package/src/services/vision/index.d.ts.map +1 -0
- package/src/services/vision/index.ts +251 -0
- package/src/services/vision/llama-server.d.ts +73 -0
- package/src/services/vision/llama-server.d.ts.map +1 -0
- package/src/services/vision/llama-server.ts +177 -0
- package/src/services/vision/types.d.ts +153 -0
- package/src/services/vision/types.d.ts.map +1 -0
- package/src/services/vision/types.ts +154 -0
- package/src/services/vision/vast-fallback.d.ts +18 -0
- package/src/services/vision/vast-fallback.d.ts.map +1 -0
- package/src/services/vision/vast-fallback.ts +127 -0
- package/src/services/vision-embedding-cache.d.ts +98 -0
- package/src/services/vision-embedding-cache.d.ts.map +1 -0
- package/src/services/vision-embedding-cache.ts +189 -0
- package/src/services/voice/VOICE_WORKBENCH.md +88 -0
- package/src/services/voice/__test-helpers__/fake-ffi.ts +92 -0
- package/src/services/voice/__test-helpers__/synthetic-speech.ts +124 -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 +197 -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/audio-frame-consumer.d.ts +212 -0
- package/src/services/voice/audio-frame-consumer.d.ts.map +1 -0
- package/src/services/voice/audio-frame-consumer.test.ts +343 -0
- package/src/services/voice/audio-frame-consumer.ts +491 -0
- package/src/services/voice/barge-in.d.ts +112 -0
- package/src/services/voice/barge-in.d.ts.map +1 -0
- package/src/services/voice/barge-in.test.ts +244 -0
- package/src/services/voice/barge-in.ts +336 -0
- package/src/services/voice/cancellation-coordinator.d.ts +127 -0
- package/src/services/voice/cancellation-coordinator.d.ts.map +1 -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.d.ts +199 -0
- package/src/services/voice/checkpoint-manager.d.ts.map +1 -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/e2e-harness.test.ts +182 -0
- package/src/services/voice/e2e-harness.ts +743 -0
- package/src/services/voice/eager-context-builder.d.ts +170 -0
- package/src/services/voice/eager-context-builder.d.ts.map +1 -0
- package/src/services/voice/eager-context-builder.ts +262 -0
- package/src/services/voice/eliza1-eot-scorer.d.ts +124 -0
- package/src/services/voice/eliza1-eot-scorer.d.ts.map +1 -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.d.ts +133 -0
- package/src/services/voice/embedding.d.ts.map +1 -0
- package/src/services/voice/embedding.test.ts +148 -0
- package/src/services/voice/embedding.ts +244 -0
- package/src/services/voice/emotion-attribution.d.ts +68 -0
- package/src/services/voice/emotion-attribution.d.ts.map +1 -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.d.ts +746 -0
- package/src/services/voice/engine-bridge.d.ts.map +1 -0
- package/src/services/voice/engine-bridge.test.ts +384 -0
- package/src/services/voice/engine-bridge.ts +2226 -0
- package/src/services/voice/eot-classifier-ggml.d.ts +179 -0
- package/src/services/voice/eot-classifier-ggml.d.ts.map +1 -0
- package/src/services/voice/eot-classifier-ggml.ts +566 -0
- package/src/services/voice/eot-classifier.d.ts +214 -0
- package/src/services/voice/eot-classifier.d.ts.map +1 -0
- package/src/services/voice/eot-classifier.ts +533 -0
- package/src/services/voice/errors.d.ts +20 -0
- package/src/services/voice/errors.d.ts.map +1 -0
- package/src/services/voice/errors.ts +32 -0
- package/src/services/voice/expressive-tags.d.ts +158 -0
- package/src/services/voice/expressive-tags.d.ts.map +1 -0
- package/src/services/voice/expressive-tags.ts +405 -0
- package/src/services/voice/ffi-bindings.d.ts +636 -0
- package/src/services/voice/ffi-bindings.d.ts.map +1 -0
- package/src/services/voice/ffi-bindings.test.ts +671 -0
- package/src/services/voice/ffi-bindings.ts +3050 -0
- package/src/services/voice/first-line-cache.d.ts +181 -0
- package/src/services/voice/first-line-cache.d.ts.map +1 -0
- package/src/services/voice/first-line-cache.ts +725 -0
- package/src/services/voice/fused-eot-scorer.d.ts +51 -0
- package/src/services/voice/fused-eot-scorer.d.ts.map +1 -0
- package/src/services/voice/fused-eot-scorer.ts +135 -0
- package/src/services/voice/index.d.ts +91 -0
- package/src/services/voice/index.d.ts.map +1 -0
- package/src/services/voice/index.ts +481 -0
- package/src/services/voice/kokoro/__tests__/kokoro-backend.test.ts +151 -0
- package/src/services/voice/kokoro/__tests__/kokoro-engine-bridge.real.test.ts +151 -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 +231 -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.d.ts +72 -0
- package/src/services/voice/kokoro/kokoro-backend.d.ts.map +1 -0
- package/src/services/voice/kokoro/kokoro-backend.ts +207 -0
- package/src/services/voice/kokoro/kokoro-engine-discovery.d.ts +58 -0
- package/src/services/voice/kokoro/kokoro-engine-discovery.d.ts.map +1 -0
- package/src/services/voice/kokoro/kokoro-engine-discovery.ts +177 -0
- package/src/services/voice/kokoro/kokoro-ffi-runtime.d.ts +75 -0
- package/src/services/voice/kokoro/kokoro-ffi-runtime.d.ts.map +1 -0
- package/src/services/voice/kokoro/kokoro-ffi-runtime.ts +233 -0
- package/src/services/voice/kokoro/kokoro-runtime.d.ts +100 -0
- package/src/services/voice/kokoro/kokoro-runtime.d.ts.map +1 -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.d.ts +50 -0
- package/src/services/voice/kokoro/phonemizer.d.ts.map +1 -0
- package/src/services/voice/kokoro/phonemizer.ts +344 -0
- package/src/services/voice/kokoro/pick-runtime.d.ts +61 -0
- package/src/services/voice/kokoro/pick-runtime.d.ts.map +1 -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.d.ts +92 -0
- package/src/services/voice/kokoro/runtime-selection.d.ts.map +1 -0
- package/src/services/voice/kokoro/runtime-selection.ts +237 -0
- package/src/services/voice/kokoro/types.d.ts +82 -0
- package/src/services/voice/kokoro/types.d.ts.map +1 -0
- package/src/services/voice/kokoro/types.ts +95 -0
- package/src/services/voice/kokoro/voice-presets.d.ts +23 -0
- package/src/services/voice/kokoro/voice-presets.d.ts.map +1 -0
- package/src/services/voice/kokoro/voice-presets.ts +129 -0
- package/src/services/voice/kokoro/voices.d.ts +30 -0
- package/src/services/voice/kokoro/voices.d.ts.map +1 -0
- package/src/services/voice/kokoro/voices.ts +64 -0
- package/src/services/voice/lifecycle.d.ts +135 -0
- package/src/services/voice/lifecycle.d.ts.map +1 -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.d.ts +96 -0
- package/src/services/voice/live-diarization-session.d.ts.map +1 -0
- package/src/services/voice/live-diarization-session.ts +289 -0
- package/src/services/voice/mic-source.d.ts +136 -0
- package/src/services/voice/mic-source.d.ts.map +1 -0
- package/src/services/voice/mic-source.test.ts +210 -0
- package/src/services/voice/mic-source.ts +503 -0
- package/src/services/voice/optimistic-policy.d.ts +109 -0
- package/src/services/voice/optimistic-policy.d.ts.map +1 -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.d.ts +73 -0
- package/src/services/voice/partial-stabilizer.d.ts.map +1 -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.d.ts +49 -0
- package/src/services/voice/phoneme-tokenizer.d.ts.map +1 -0
- package/src/services/voice/phoneme-tokenizer.ts +158 -0
- package/src/services/voice/phrase-cache.d.ts +76 -0
- package/src/services/voice/phrase-cache.d.ts.map +1 -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.d.ts +62 -0
- package/src/services/voice/phrase-chunker.d.ts.map +1 -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.d.ts +151 -0
- package/src/services/voice/pipeline-impls.d.ts.map +1 -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.d.ts +216 -0
- package/src/services/voice/pipeline.d.ts.map +1 -0
- package/src/services/voice/pipeline.ts +505 -0
- package/src/services/voice/prefill-client.d.ts +123 -0
- package/src/services/voice/prefill-client.d.ts.map +1 -0
- package/src/services/voice/prefill-client.ts +316 -0
- package/src/services/voice/prefix-preserving-queue.d.ts +113 -0
- package/src/services/voice/prefix-preserving-queue.d.ts.map +1 -0
- package/src/services/voice/prefix-preserving-queue.ts +162 -0
- package/src/services/voice/profile-store.d.ts +248 -0
- package/src/services/voice/profile-store.d.ts.map +1 -0
- package/src/services/voice/profile-store.ts +887 -0
- package/src/services/voice/ring-buffer.d.ts +40 -0
- package/src/services/voice/ring-buffer.d.ts.map +1 -0
- package/src/services/voice/ring-buffer.ts +105 -0
- package/src/services/voice/rollback-queue.d.ts +24 -0
- package/src/services/voice/rollback-queue.d.ts.map +1 -0
- package/src/services/voice/rollback-queue.ts +74 -0
- package/src/services/voice/samantha-preset-placeholder.d.ts +67 -0
- package/src/services/voice/samantha-preset-placeholder.d.ts.map +1 -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.d.ts +87 -0
- package/src/services/voice/samantha-preset-regenerator.d.ts.map +1 -0
- package/src/services/voice/samantha-preset-regenerator.ts +393 -0
- package/src/services/voice/scheduler.d.ts +146 -0
- package/src/services/voice/scheduler.d.ts.map +1 -0
- package/src/services/voice/scheduler.t2.test.ts +141 -0
- package/src/services/voice/scheduler.ts +927 -0
- package/src/services/voice/shared-resources.d.ts +190 -0
- package/src/services/voice/shared-resources.d.ts.map +1 -0
- package/src/services/voice/shared-resources.ts +320 -0
- package/src/services/voice/speaker/attribution-pipeline.d.ts +74 -0
- package/src/services/voice/speaker/attribution-pipeline.d.ts.map +1 -0
- package/src/services/voice/speaker/attribution-pipeline.ts +386 -0
- package/src/services/voice/speaker/diarizer-fused.d.ts +59 -0
- package/src/services/voice/speaker/diarizer-fused.d.ts.map +1 -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.d.ts +75 -0
- package/src/services/voice/speaker/diarizer.d.ts.map +1 -0
- package/src/services/voice/speaker/diarizer.ts +218 -0
- package/src/services/voice/speaker/encoder-fused.d.ts +60 -0
- package/src/services/voice/speaker/encoder-fused.d.ts.map +1 -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.d.ts +33 -0
- package/src/services/voice/speaker/encoder-ggml.d.ts.map +1 -0
- package/src/services/voice/speaker/encoder-ggml.ts +79 -0
- package/src/services/voice/speaker/encoder.d.ts +37 -0
- package/src/services/voice/speaker/encoder.d.ts.map +1 -0
- package/src/services/voice/speaker/encoder.ts +105 -0
- package/src/services/voice/speaker-imprint.d.ts +83 -0
- package/src/services/voice/speaker-imprint.d.ts.map +1 -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.d.ts +77 -0
- package/src/services/voice/speaker-preset-cache.d.ts.map +1 -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.d.ts +73 -0
- package/src/services/voice/system-audio-sink.d.ts.map +1 -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.d.ts +244 -0
- package/src/services/voice/transcriber.d.ts.map +1 -0
- package/src/services/voice/transcriber.test.ts +392 -0
- package/src/services/voice/transcriber.ts +704 -0
- package/src/services/voice/turn-controller.d.ts +183 -0
- package/src/services/voice/turn-controller.d.ts.map +1 -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.d.ts +643 -0
- package/src/services/voice/types.d.ts.map +1 -0
- package/src/services/voice/types.ts +699 -0
- package/src/services/voice/vad.d.ts +282 -0
- package/src/services/voice/vad.d.ts.map +1 -0
- package/src/services/voice/vad.test.ts +480 -0
- package/src/services/voice/vad.ts +827 -0
- package/src/services/voice/vad.v1-v4.test.ts +222 -0
- package/src/services/voice/voice-budget.d.ts +241 -0
- package/src/services/voice/voice-budget.d.ts.map +1 -0
- package/src/services/voice/voice-budget.test.ts +420 -0
- package/src/services/voice/voice-budget.ts +656 -0
- package/src/services/voice/voice-duet.test.ts +375 -0
- package/src/services/voice/voice-emotion-classifier.d.ts +95 -0
- package/src/services/voice/voice-emotion-classifier.d.ts.map +1 -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-preset-format.d.ts +158 -0
- package/src/services/voice/voice-preset-format.d.ts.map +1 -0
- package/src/services/voice/voice-preset-format.ts +700 -0
- package/src/services/voice/voice-preset-generator.test.ts +89 -0
- package/src/services/voice/voice-profile-artifact.d.ts +116 -0
- package/src/services/voice/voice-profile-artifact.d.ts.map +1 -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.d.ts +83 -0
- package/src/services/voice/voice-profile-routes.d.ts.map +1 -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.ts +154 -0
- package/src/services/voice/voice-settings.d.ts +82 -0
- package/src/services/voice/voice-settings.d.ts.map +1 -0
- package/src/services/voice/voice-settings.ts +172 -0
- package/src/services/voice/voice-state-machine.d.ts +364 -0
- package/src/services/voice/voice-state-machine.d.ts.map +1 -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 +326 -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.d.ts +101 -0
- package/src/services/voice/wake-word-ggml.d.ts.map +1 -0
- package/src/services/voice/wake-word-ggml.ts +320 -0
- package/src/services/voice/wake-word.d.ts +255 -0
- package/src/services/voice/wake-word.d.ts.map +1 -0
- package/src/services/voice/wake-word.test.ts +298 -0
- package/src/services/voice/wake-word.ts +554 -0
- package/src/services/voice/wrap-with-first-line-cache.d.ts +70 -0
- package/src/services/voice/wrap-with-first-line-cache.d.ts.map +1 -0
- package/src/services/voice/wrap-with-first-line-cache.ts +267 -0
- package/src/services/voice-model-updater.d.ts +240 -0
- package/src/services/voice-model-updater.d.ts.map +1 -0
- package/src/services/voice-model-updater.ts +724 -0
- package/src/services/voice-prewarm.d.ts +3 -0
- package/src/services/voice-prewarm.d.ts.map +1 -0
- package/src/services/voice-prewarm.ts +51 -0
- package/dist/index.d.ts +0 -37
- package/dist/index.js +0 -1098
|
@@ -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":["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,229 @@
|
|
|
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
|
+
|
|
90
|
+
import { ImageGenBackendUnavailableError } from "./errors";
|
|
91
|
+
import { resolveSeed } from "./sd-cpp";
|
|
92
|
+
import type {
|
|
93
|
+
ImageGenBackend,
|
|
94
|
+
ImageGenLoadArgs,
|
|
95
|
+
ImageGenRequest,
|
|
96
|
+
ImageGenResult,
|
|
97
|
+
} from "./types";
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* The AOSP binding's image-gen surface, when present. The AOSP plugin
|
|
101
|
+
* registers an instance under the runtime service name
|
|
102
|
+
* `"aosp-llama-imagegen"` once the native shim exports the symbols
|
|
103
|
+
* above. Mirrors the WS2 `AospLlamaMtmdBinding` shape.
|
|
104
|
+
*/
|
|
105
|
+
export interface AospImageGenBinding {
|
|
106
|
+
/** True when libeliza-llama-shim.so exports the imagegen symbols. */
|
|
107
|
+
hasImageGen(): boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Initialize a handle for the given model. The shim resolves the
|
|
110
|
+
* accelerator hint internally; pass `"auto"` to defer to its
|
|
111
|
+
* detection.
|
|
112
|
+
*/
|
|
113
|
+
initImageGen(args: {
|
|
114
|
+
modelPath: string;
|
|
115
|
+
accelerator?: ImageGenLoadArgs["accelerator"];
|
|
116
|
+
}): Promise<AospImageGenHandle>;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export interface AospImageGenHandle {
|
|
120
|
+
generate(args: {
|
|
121
|
+
prompt: string;
|
|
122
|
+
negativePrompt?: string;
|
|
123
|
+
width: number;
|
|
124
|
+
height: number;
|
|
125
|
+
steps: number;
|
|
126
|
+
guidanceScale: number;
|
|
127
|
+
seed: number;
|
|
128
|
+
scheduler?: string;
|
|
129
|
+
signal?: AbortSignal;
|
|
130
|
+
}): Promise<{
|
|
131
|
+
png: Uint8Array;
|
|
132
|
+
seedUsed: number;
|
|
133
|
+
inferenceMs: number;
|
|
134
|
+
}>;
|
|
135
|
+
dispose(): Promise<void>;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export interface LoadAospImageGenBackendOptions {
|
|
139
|
+
loadArgs: ImageGenLoadArgs;
|
|
140
|
+
modelKey: string;
|
|
141
|
+
binding?: AospImageGenBinding;
|
|
142
|
+
now?: () => number;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export async function loadAospImageGenBackend(
|
|
146
|
+
opts: LoadAospImageGenBackendOptions,
|
|
147
|
+
): Promise<ImageGenBackend> {
|
|
148
|
+
const binding = opts.binding;
|
|
149
|
+
if (!binding?.hasImageGen()) {
|
|
150
|
+
throw new ImageGenBackendUnavailableError(
|
|
151
|
+
"aosp",
|
|
152
|
+
"binding_unavailable",
|
|
153
|
+
"[imagegen/aosp] libeliza-llama-shim does not export the imagegen symbols yet. Add eliza_llama_imagegen_init_from_file / _generate / _free to the AOSP shim. Until then, AOSP image-gen falls back to nothing (or to a desktop-bridge if paired).",
|
|
154
|
+
);
|
|
155
|
+
}
|
|
156
|
+
const handle = await binding.initImageGen({
|
|
157
|
+
modelPath: opts.loadArgs.modelPath,
|
|
158
|
+
accelerator: opts.loadArgs.accelerator,
|
|
159
|
+
});
|
|
160
|
+
const now = opts.now ?? Date.now;
|
|
161
|
+
let disposed = false;
|
|
162
|
+
|
|
163
|
+
return {
|
|
164
|
+
id: "aosp",
|
|
165
|
+
supports(req: ImageGenRequest) {
|
|
166
|
+
const w = req.width ?? 1024;
|
|
167
|
+
const h = req.height ?? 1024;
|
|
168
|
+
if (w <= 0 || h <= 0) return false;
|
|
169
|
+
if (w > 2048 || h > 2048) return false;
|
|
170
|
+
return true;
|
|
171
|
+
},
|
|
172
|
+
async generate(req): Promise<ImageGenResult> {
|
|
173
|
+
if (disposed) {
|
|
174
|
+
throw new ImageGenBackendUnavailableError(
|
|
175
|
+
"aosp",
|
|
176
|
+
"binding_unavailable",
|
|
177
|
+
"[imagegen/aosp] generate called after dispose()",
|
|
178
|
+
);
|
|
179
|
+
}
|
|
180
|
+
if (!req.prompt.trim()) {
|
|
181
|
+
throw new ImageGenBackendUnavailableError(
|
|
182
|
+
"aosp",
|
|
183
|
+
"unsupported_request",
|
|
184
|
+
"[imagegen/aosp] prompt is empty",
|
|
185
|
+
);
|
|
186
|
+
}
|
|
187
|
+
const seed = resolveSeed(req.seed);
|
|
188
|
+
const width = req.width ?? 1024;
|
|
189
|
+
const height = req.height ?? 1024;
|
|
190
|
+
const steps = req.steps ?? 4;
|
|
191
|
+
const guidanceScale = req.guidanceScale ?? 0;
|
|
192
|
+
const startMs = now();
|
|
193
|
+
const out = await handle.generate({
|
|
194
|
+
prompt: req.prompt,
|
|
195
|
+
negativePrompt: req.negativePrompt,
|
|
196
|
+
width,
|
|
197
|
+
height,
|
|
198
|
+
steps,
|
|
199
|
+
guidanceScale,
|
|
200
|
+
seed,
|
|
201
|
+
scheduler: req.scheduler,
|
|
202
|
+
signal: req.signal,
|
|
203
|
+
});
|
|
204
|
+
const elapsed =
|
|
205
|
+
typeof out.inferenceMs === "number" && out.inferenceMs > 0
|
|
206
|
+
? out.inferenceMs
|
|
207
|
+
: Math.max(1, now() - startMs);
|
|
208
|
+
if (req.onProgressChunk)
|
|
209
|
+
req.onProgressChunk({ step: steps, total: steps });
|
|
210
|
+
return {
|
|
211
|
+
image: out.png,
|
|
212
|
+
mime: "image/png",
|
|
213
|
+
seed: typeof out.seedUsed === "number" ? out.seedUsed : seed,
|
|
214
|
+
metadata: {
|
|
215
|
+
model: opts.modelKey,
|
|
216
|
+
prompt: req.prompt,
|
|
217
|
+
steps,
|
|
218
|
+
guidanceScale,
|
|
219
|
+
inferenceTimeMs: elapsed,
|
|
220
|
+
},
|
|
221
|
+
};
|
|
222
|
+
},
|
|
223
|
+
async dispose() {
|
|
224
|
+
if (disposed) return;
|
|
225
|
+
disposed = true;
|
|
226
|
+
await handle.dispose();
|
|
227
|
+
},
|
|
228
|
+
};
|
|
229
|
+
}
|
|
@@ -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":["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,CAmCD,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"}
|