@runanywhere/core 0.16.0
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/RunAnywhereCore.podspec +130 -0
- package/android/CMakeLists.txt +92 -0
- package/android/build.gradle +321 -0
- package/android/consumer-rules.pro +5 -0
- package/android/src/main/AndroidManifest.xml +3 -0
- package/android/src/main/cpp/cpp-adapter.cpp +271 -0
- package/android/src/main/include/rac/backends/rac_llm_llamacpp.h +218 -0
- package/android/src/main/include/rac/backends/rac_stt_onnx.h +99 -0
- package/android/src/main/include/rac/backends/rac_stt_whispercpp.h +153 -0
- package/android/src/main/include/rac/backends/rac_tts_onnx.h +71 -0
- package/android/src/main/include/rac/backends/rac_vad_onnx.h +84 -0
- package/android/src/main/include/rac/core/capabilities/rac_lifecycle.h +290 -0
- package/android/src/main/include/rac/core/rac_analytics_events.h +610 -0
- package/android/src/main/include/rac/core/rac_audio_utils.h +88 -0
- package/android/src/main/include/rac/core/rac_component_types.h +160 -0
- package/android/src/main/include/rac/core/rac_core.h +331 -0
- package/android/src/main/include/rac/core/rac_error.h +469 -0
- package/android/src/main/include/rac/core/rac_events.h +334 -0
- package/android/src/main/include/rac/core/rac_logger.h +416 -0
- package/android/src/main/include/rac/core/rac_platform_adapter.h +340 -0
- package/android/src/main/include/rac/core/rac_sdk_state.h +292 -0
- package/android/src/main/include/rac/core/rac_structured_error.h +594 -0
- package/android/src/main/include/rac/core/rac_types.h +264 -0
- package/android/src/main/include/rac/features/llm/rac_llm.h +17 -0
- package/android/src/main/include/rac/features/llm/rac_llm_analytics.h +188 -0
- package/android/src/main/include/rac/features/llm/rac_llm_component.h +228 -0
- package/android/src/main/include/rac/features/llm/rac_llm_events.h +215 -0
- package/android/src/main/include/rac/features/llm/rac_llm_metrics.h +402 -0
- package/android/src/main/include/rac/features/llm/rac_llm_service.h +163 -0
- package/android/src/main/include/rac/features/llm/rac_llm_structured_output.h +141 -0
- package/android/src/main/include/rac/features/llm/rac_llm_types.h +384 -0
- package/android/src/main/include/rac/features/platform/rac_llm_platform.h +204 -0
- package/android/src/main/include/rac/features/platform/rac_tts_platform.h +197 -0
- package/android/src/main/include/rac/features/stt/rac_stt.h +17 -0
- package/android/src/main/include/rac/features/stt/rac_stt_analytics.h +204 -0
- package/android/src/main/include/rac/features/stt/rac_stt_component.h +162 -0
- package/android/src/main/include/rac/features/stt/rac_stt_events.h +62 -0
- package/android/src/main/include/rac/features/stt/rac_stt_service.h +154 -0
- package/android/src/main/include/rac/features/stt/rac_stt_types.h +389 -0
- package/android/src/main/include/rac/features/tts/rac_tts.h +17 -0
- package/android/src/main/include/rac/features/tts/rac_tts_analytics.h +181 -0
- package/android/src/main/include/rac/features/tts/rac_tts_component.h +158 -0
- package/android/src/main/include/rac/features/tts/rac_tts_events.h +54 -0
- package/android/src/main/include/rac/features/tts/rac_tts_service.h +162 -0
- package/android/src/main/include/rac/features/tts/rac_tts_types.h +374 -0
- package/android/src/main/include/rac/features/vad/rac_vad.h +17 -0
- package/android/src/main/include/rac/features/vad/rac_vad_analytics.h +236 -0
- package/android/src/main/include/rac/features/vad/rac_vad_component.h +185 -0
- package/android/src/main/include/rac/features/vad/rac_vad_energy.h +443 -0
- package/android/src/main/include/rac/features/vad/rac_vad_events.h +76 -0
- package/android/src/main/include/rac/features/vad/rac_vad_service.h +167 -0
- package/android/src/main/include/rac/features/vad/rac_vad_types.h +244 -0
- package/android/src/main/include/rac/features/voice_agent/rac_voice_agent.h +612 -0
- package/android/src/main/include/rac/infrastructure/device/rac_device_manager.h +176 -0
- package/android/src/main/include/rac/infrastructure/download/rac_download.h +418 -0
- package/android/src/main/include/rac/infrastructure/events/rac_events.h +177 -0
- package/android/src/main/include/rac/infrastructure/model_management/rac_model_assignment.h +169 -0
- package/android/src/main/include/rac/infrastructure/model_management/rac_model_paths.h +258 -0
- package/android/src/main/include/rac/infrastructure/model_management/rac_model_registry.h +357 -0
- package/android/src/main/include/rac/infrastructure/model_management/rac_model_strategy.h +374 -0
- package/android/src/main/include/rac/infrastructure/model_management/rac_model_types.h +613 -0
- package/android/src/main/include/rac/infrastructure/network/rac_api_types.h +335 -0
- package/android/src/main/include/rac/infrastructure/network/rac_auth_manager.h +252 -0
- package/android/src/main/include/rac/infrastructure/network/rac_dev_config.h +85 -0
- package/android/src/main/include/rac/infrastructure/network/rac_endpoints.h +102 -0
- package/android/src/main/include/rac/infrastructure/network/rac_environment.h +220 -0
- package/android/src/main/include/rac/infrastructure/network/rac_http_client.h +233 -0
- package/android/src/main/include/rac/infrastructure/storage/rac_storage_analyzer.h +286 -0
- package/android/src/main/include/rac/infrastructure/telemetry/rac_telemetry_manager.h +206 -0
- package/android/src/main/include/rac/infrastructure/telemetry/rac_telemetry_types.h +234 -0
- package/android/src/main/java/com/margelo/nitro/runanywhere/ArchiveUtility.kt +308 -0
- package/android/src/main/java/com/margelo/nitro/runanywhere/HybridRunAnywhereDeviceInfo.kt +229 -0
- package/android/src/main/java/com/margelo/nitro/runanywhere/PlatformAdapterBridge.kt +392 -0
- package/android/src/main/java/com/margelo/nitro/runanywhere/RunAnywhereCorePackage.kt +28 -0
- package/android/src/main/java/com/margelo/nitro/runanywhere/SDKLogger.kt +357 -0
- package/android/src/main/java/com/margelo/nitro/runanywhere/SecureStorageManager.kt +147 -0
- package/android/src/main/jniLibs/arm64-v8a/libc++_shared.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libomp.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/librac_commons.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/librunanywhere_jni.so +0 -0
- package/cpp/HybridRunAnywhereCore.cpp +2505 -0
- package/cpp/HybridRunAnywhereCore.hpp +271 -0
- package/cpp/bridges/AuthBridge.cpp +209 -0
- package/cpp/bridges/AuthBridge.hpp +157 -0
- package/cpp/bridges/DeviceBridge.cpp +257 -0
- package/cpp/bridges/DeviceBridge.hpp +155 -0
- package/cpp/bridges/DownloadBridge.cpp +299 -0
- package/cpp/bridges/DownloadBridge.hpp +197 -0
- package/cpp/bridges/EventBridge.cpp +125 -0
- package/cpp/bridges/EventBridge.hpp +139 -0
- package/cpp/bridges/HTTPBridge.cpp +96 -0
- package/cpp/bridges/HTTPBridge.hpp +144 -0
- package/cpp/bridges/InitBridge.cpp +1273 -0
- package/cpp/bridges/InitBridge.hpp +306 -0
- package/cpp/bridges/ModelRegistryBridge.cpp +394 -0
- package/cpp/bridges/ModelRegistryBridge.hpp +177 -0
- package/cpp/bridges/StorageBridge.cpp +269 -0
- package/cpp/bridges/StorageBridge.hpp +172 -0
- package/cpp/bridges/TelemetryBridge.cpp +352 -0
- package/cpp/bridges/TelemetryBridge.hpp +126 -0
- package/ios/.testlocal +0 -0
- package/ios/ArchiveUtility.swift +526 -0
- package/ios/ArchiveUtilityBridge.m +52 -0
- package/ios/AudioDecoder.h +38 -0
- package/ios/AudioDecoder.m +162 -0
- package/ios/Binaries/RACommons.xcframework/Info.plist +44 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/RACommons.h +67 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_analytics_events.h +610 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_api_types.h +335 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_audio_utils.h +88 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_auth_manager.h +252 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_component_types.h +160 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_core.h +331 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_dev_config.h +85 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_device_manager.h +176 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_download.h +418 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_endpoints.h +102 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_environment.h +220 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_error.h +469 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_events.h +177 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_http_client.h +233 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_lifecycle.h +290 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_llm.h +17 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_llm_analytics.h +188 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_llm_component.h +228 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_llm_events.h +215 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_llm_llamacpp.h +218 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_llm_metrics.h +402 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_llm_platform.h +204 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_llm_service.h +163 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_llm_structured_output.h +141 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_llm_types.h +384 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_logger.h +416 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_model_assignment.h +169 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_model_paths.h +258 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_model_registry.h +357 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_model_strategy.h +374 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_model_types.h +613 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_platform_adapter.h +340 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_sdk_state.h +292 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_storage_analyzer.h +286 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_structured_error.h +594 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_stt.h +17 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_stt_analytics.h +204 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_stt_component.h +162 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_stt_events.h +62 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_stt_onnx.h +99 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_stt_service.h +154 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_stt_types.h +389 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_stt_whispercpp.h +153 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_telemetry_manager.h +206 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_telemetry_types.h +234 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_tts.h +17 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_tts_analytics.h +181 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_tts_component.h +158 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_tts_events.h +54 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_tts_onnx.h +71 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_tts_platform.h +197 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_tts_service.h +162 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_tts_types.h +374 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_types.h +264 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_vad.h +17 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_vad_analytics.h +236 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_vad_component.h +185 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_vad_energy.h +443 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_vad_events.h +76 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_vad_onnx.h +84 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_vad_service.h +167 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_vad_types.h +244 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_voice_agent.h +612 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Info.plist +11 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Modules/module.modulemap +5 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/RACommons +0 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/RACommons.h +67 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_analytics_events.h +610 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_api_types.h +335 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_audio_utils.h +88 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_auth_manager.h +252 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_component_types.h +160 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_core.h +331 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_dev_config.h +85 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_device_manager.h +176 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_download.h +418 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_endpoints.h +102 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_environment.h +220 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_error.h +469 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_events.h +177 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_http_client.h +233 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_lifecycle.h +290 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_llm.h +17 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_llm_analytics.h +188 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_llm_component.h +228 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_llm_events.h +215 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_llm_llamacpp.h +218 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_llm_metrics.h +402 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_llm_platform.h +204 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_llm_service.h +163 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_llm_structured_output.h +141 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_llm_types.h +384 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_logger.h +416 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_model_assignment.h +169 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_model_paths.h +258 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_model_registry.h +357 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_model_strategy.h +374 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_model_types.h +613 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_platform_adapter.h +340 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_sdk_state.h +292 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_storage_analyzer.h +286 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_structured_error.h +594 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_stt.h +17 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_stt_analytics.h +204 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_stt_component.h +162 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_stt_events.h +62 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_stt_onnx.h +99 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_stt_service.h +154 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_stt_types.h +389 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_stt_whispercpp.h +153 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_telemetry_manager.h +206 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_telemetry_types.h +234 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_tts.h +17 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_tts_analytics.h +181 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_tts_component.h +158 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_tts_events.h +54 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_tts_onnx.h +71 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_tts_platform.h +197 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_tts_service.h +162 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_tts_types.h +374 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_types.h +264 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_vad.h +17 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_vad_analytics.h +236 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_vad_component.h +185 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_vad_energy.h +443 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_vad_events.h +76 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_vad_onnx.h +84 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_vad_service.h +167 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_vad_types.h +244 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_voice_agent.h +612 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Info.plist +11 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Modules/module.modulemap +5 -0
- package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/RACommons +0 -0
- package/ios/HybridRunAnywhereDeviceInfo.swift +214 -0
- package/ios/KeychainManager.swift +116 -0
- package/ios/PlatformAdapter.swift +100 -0
- package/ios/PlatformAdapterBridge.h +152 -0
- package/ios/PlatformAdapterBridge.m +570 -0
- package/ios/RNSDKLoggerBridge.h +41 -0
- package/ios/RNSDKLoggerBridge.m +66 -0
- package/ios/SDKLogger.swift +329 -0
- package/nitro.json +20 -0
- package/nitrogen/generated/.gitattributes +1 -0
- package/nitrogen/generated/android/c++/JHybridRunAnywhereDeviceInfoSpec.cpp +257 -0
- package/nitrogen/generated/android/c++/JHybridRunAnywhereDeviceInfoSpec.hpp +77 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/runanywhere/HybridRunAnywhereDeviceInfoSpec.kt +106 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/runanywhere/runanywherecoreOnLoad.kt +35 -0
- package/nitrogen/generated/android/runanywherecore+autolinking.cmake +82 -0
- package/nitrogen/generated/android/runanywherecore+autolinking.gradle +27 -0
- package/nitrogen/generated/android/runanywherecoreOnLoad.cpp +54 -0
- package/nitrogen/generated/android/runanywherecoreOnLoad.hpp +25 -0
- package/nitrogen/generated/ios/RunAnywhereCore+autolinking.rb +60 -0
- package/nitrogen/generated/ios/RunAnywhereCore-Swift-Cxx-Bridge.cpp +65 -0
- package/nitrogen/generated/ios/RunAnywhereCore-Swift-Cxx-Bridge.hpp +197 -0
- package/nitrogen/generated/ios/RunAnywhereCore-Swift-Cxx-Umbrella.hpp +45 -0
- package/nitrogen/generated/ios/RunAnywhereCoreAutolinking.mm +43 -0
- package/nitrogen/generated/ios/RunAnywhereCoreAutolinking.swift +25 -0
- package/nitrogen/generated/ios/c++/HybridRunAnywhereDeviceInfoSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridRunAnywhereDeviceInfoSpecSwift.hpp +173 -0
- package/nitrogen/generated/ios/swift/Func_void_bool.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_double.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +47 -0
- package/nitrogen/generated/ios/swift/HybridRunAnywhereDeviceInfoSpec.swift +68 -0
- package/nitrogen/generated/ios/swift/HybridRunAnywhereDeviceInfoSpec_cxx.swift +366 -0
- package/nitrogen/generated/shared/c++/HybridRunAnywhereCoreSpec.cpp +92 -0
- package/nitrogen/generated/shared/c++/HybridRunAnywhereCoreSpec.hpp +138 -0
- package/nitrogen/generated/shared/c++/HybridRunAnywhereDeviceInfoSpec.cpp +33 -0
- package/nitrogen/generated/shared/c++/HybridRunAnywhereDeviceInfoSpec.hpp +75 -0
- package/package.json +76 -0
- package/react-native.config.js +14 -0
- package/src/Features/VoiceSession/AudioCaptureManager.ts +286 -0
- package/src/Features/VoiceSession/AudioPlaybackManager.ts +300 -0
- package/src/Features/VoiceSession/VoiceSessionHandle.ts +530 -0
- package/src/Features/VoiceSession/index.ts +20 -0
- package/src/Features/index.ts +7 -0
- package/src/Foundation/Constants/SDKConstants.ts +47 -0
- package/src/Foundation/Constants/index.ts +8 -0
- package/src/Foundation/DependencyInjection/ServiceContainer.ts +154 -0
- package/src/Foundation/DependencyInjection/ServiceRegistry.ts +51 -0
- package/src/Foundation/DependencyInjection/index.ts +6 -0
- package/src/Foundation/ErrorTypes/ErrorCategory.ts +184 -0
- package/src/Foundation/ErrorTypes/ErrorCodes.ts +151 -0
- package/src/Foundation/ErrorTypes/ErrorContext.ts +201 -0
- package/src/Foundation/ErrorTypes/SDKError.ts +507 -0
- package/src/Foundation/ErrorTypes/index.ts +57 -0
- package/src/Foundation/Initialization/InitializationPhase.ts +85 -0
- package/src/Foundation/Initialization/InitializationState.ts +168 -0
- package/src/Foundation/Initialization/index.ts +26 -0
- package/src/Foundation/Logging/Destinations/NativeLogBridge.ts +147 -0
- package/src/Foundation/Logging/Destinations/SentryDestination.ts +209 -0
- package/src/Foundation/Logging/Logger/SDKLogger.ts +232 -0
- package/src/Foundation/Logging/Models/LogLevel.ts +36 -0
- package/src/Foundation/Logging/Models/LoggingConfiguration.ts +117 -0
- package/src/Foundation/Logging/Services/LoggingManager.ts +407 -0
- package/src/Foundation/Logging/index.ts +59 -0
- package/src/Foundation/Security/DeviceIdentity.ts +92 -0
- package/src/Foundation/Security/SecureStorageError.ts +132 -0
- package/src/Foundation/Security/SecureStorageKeys.ts +35 -0
- package/src/Foundation/Security/SecureStorageService.ts +449 -0
- package/src/Foundation/Security/index.ts +17 -0
- package/src/Foundation/index.ts +26 -0
- package/src/Infrastructure/Events/EventPublisher.ts +165 -0
- package/src/Infrastructure/Events/SDKEvent.ts +214 -0
- package/src/Infrastructure/Events/index.ts +15 -0
- package/src/Infrastructure/index.ts +9 -0
- package/src/Public/Events/EventBus.ts +488 -0
- package/src/Public/Events/index.ts +8 -0
- package/src/Public/Extensions/RunAnywhere+Logging.ts +51 -0
- package/src/Public/Extensions/RunAnywhere+Models.ts +392 -0
- package/src/Public/Extensions/RunAnywhere+STT.ts +424 -0
- package/src/Public/Extensions/RunAnywhere+Storage.ts +151 -0
- package/src/Public/Extensions/RunAnywhere+StructuredOutput.ts +316 -0
- package/src/Public/Extensions/RunAnywhere+TTS.ts +430 -0
- package/src/Public/Extensions/RunAnywhere+TextGeneration.ts +320 -0
- package/src/Public/Extensions/RunAnywhere+VAD.ts +359 -0
- package/src/Public/Extensions/RunAnywhere+VoiceAgent.ts +225 -0
- package/src/Public/Extensions/RunAnywhere+VoiceSession.ts +155 -0
- package/src/Public/Extensions/index.ts +126 -0
- package/src/Public/RunAnywhere.ts +695 -0
- package/src/index.ts +238 -0
- package/src/native/NativeRunAnywhereCore.ts +291 -0
- package/src/native/NativeRunAnywhereModule.ts +32 -0
- package/src/native/index.ts +21 -0
- package/src/services/DownloadService.ts +282 -0
- package/src/services/FileSystem.ts +810 -0
- package/src/services/ModelRegistry.ts +246 -0
- package/src/services/Network/APIEndpoints.ts +84 -0
- package/src/services/Network/HTTPService.ts +479 -0
- package/src/services/Network/NetworkConfiguration.ts +130 -0
- package/src/services/Network/TelemetryService.ts +318 -0
- package/src/services/Network/index.ts +29 -0
- package/src/services/SystemTTSService.ts +130 -0
- package/src/services/index.ts +66 -0
- package/src/specs/RunAnywhereCore.nitro.ts +627 -0
- package/src/specs/RunAnywhereDeviceInfo.nitro.ts +73 -0
- package/src/types/LLMTypes.ts +127 -0
- package/src/types/STTTypes.ts +124 -0
- package/src/types/StructuredOutputTypes.ts +156 -0
- package/src/types/TTSTypes.ts +126 -0
- package/src/types/VADTypes.ts +70 -0
- package/src/types/VoiceAgentTypes.ts +182 -0
- package/src/types/enums.ts +258 -0
- package/src/types/events.ts +337 -0
- package/src/types/external.d.ts +142 -0
- package/src/types/index.ts +146 -0
- package/src/types/models.ts +579 -0
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HybridRunAnywhereCore.hpp
|
|
3
|
+
*
|
|
4
|
+
* Nitrogen HybridObject implementation for RunAnywhere Core SDK.
|
|
5
|
+
* This single C++ file works on both iOS and Android.
|
|
6
|
+
*
|
|
7
|
+
* Core SDK implementation - includes:
|
|
8
|
+
* - SDK Lifecycle (init, destroy)
|
|
9
|
+
* - Authentication
|
|
10
|
+
* - Device Registration
|
|
11
|
+
* - Model Registry
|
|
12
|
+
* - Download Service
|
|
13
|
+
* - Storage
|
|
14
|
+
* - Events
|
|
15
|
+
* - HTTP Client
|
|
16
|
+
* - Utilities
|
|
17
|
+
* - LLM/STT/TTS/VAD/VoiceAgent (backend-agnostic via rac_*_component_* APIs)
|
|
18
|
+
*
|
|
19
|
+
* The capability methods (LLM, STT, TTS, VAD) are BACKEND-AGNOSTIC.
|
|
20
|
+
* They call the C++ rac_*_component_* APIs which work with any registered backend.
|
|
21
|
+
* Apps must install a backend package to register the actual implementation:
|
|
22
|
+
* - @runanywhere/llamacpp registers the LLM backend
|
|
23
|
+
* - @runanywhere/onnx registers the STT/TTS/VAD backends
|
|
24
|
+
*
|
|
25
|
+
* The HybridRunAnywhereCoreSpec base class is auto-generated by Nitrogen
|
|
26
|
+
* from src/specs/RunAnywhereCore.nitro.ts
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
#pragma once
|
|
30
|
+
|
|
31
|
+
// Include the generated spec header (created by nitrogen)
|
|
32
|
+
#if __has_include(<NitroModules/HybridObject.hpp>)
|
|
33
|
+
#include "HybridRunAnywhereCoreSpec.hpp"
|
|
34
|
+
#else
|
|
35
|
+
// Fallback include path during development
|
|
36
|
+
#include "../nitrogen/generated/shared/c++/HybridRunAnywhereCoreSpec.hpp"
|
|
37
|
+
#endif
|
|
38
|
+
|
|
39
|
+
#include <mutex>
|
|
40
|
+
#include <string>
|
|
41
|
+
#include <optional>
|
|
42
|
+
#include <variant>
|
|
43
|
+
#include <functional>
|
|
44
|
+
|
|
45
|
+
namespace margelo::nitro::runanywhere {
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* HybridRunAnywhereCore - Core SDK native implementation
|
|
49
|
+
*
|
|
50
|
+
* Implements the RunAnywhereCore interface defined in RunAnywhereCore.nitro.ts
|
|
51
|
+
* Delegates to modular bridges that call runanywhere-commons rac_* API.
|
|
52
|
+
*/
|
|
53
|
+
class HybridRunAnywhereCore : public HybridRunAnywhereCoreSpec {
|
|
54
|
+
public:
|
|
55
|
+
HybridRunAnywhereCore();
|
|
56
|
+
~HybridRunAnywhereCore();
|
|
57
|
+
|
|
58
|
+
// ============================================================================
|
|
59
|
+
// SDK Lifecycle
|
|
60
|
+
// ============================================================================
|
|
61
|
+
|
|
62
|
+
std::shared_ptr<Promise<bool>> initialize(const std::string& configJson) override;
|
|
63
|
+
std::shared_ptr<Promise<void>> destroy() override;
|
|
64
|
+
std::shared_ptr<Promise<bool>> isInitialized() override;
|
|
65
|
+
std::shared_ptr<Promise<std::string>> getBackendInfo() override;
|
|
66
|
+
|
|
67
|
+
// ============================================================================
|
|
68
|
+
// Authentication - Delegates to AuthBridge
|
|
69
|
+
// ============================================================================
|
|
70
|
+
|
|
71
|
+
std::shared_ptr<Promise<bool>> authenticate(const std::string& apiKey) override;
|
|
72
|
+
std::shared_ptr<Promise<bool>> isAuthenticated() override;
|
|
73
|
+
std::shared_ptr<Promise<std::string>> getUserId() override;
|
|
74
|
+
std::shared_ptr<Promise<std::string>> getOrganizationId() override;
|
|
75
|
+
std::shared_ptr<Promise<bool>> setAuthTokens(const std::string& authResponseJson) override;
|
|
76
|
+
|
|
77
|
+
// ============================================================================
|
|
78
|
+
// Device Registration - Delegates to DeviceBridge
|
|
79
|
+
// ============================================================================
|
|
80
|
+
|
|
81
|
+
std::shared_ptr<Promise<bool>> registerDevice(const std::string& environmentJson) override;
|
|
82
|
+
std::shared_ptr<Promise<bool>> isDeviceRegistered() override;
|
|
83
|
+
std::shared_ptr<Promise<bool>> clearDeviceRegistration() override;
|
|
84
|
+
std::shared_ptr<Promise<std::string>> getDeviceId() override;
|
|
85
|
+
|
|
86
|
+
// ============================================================================
|
|
87
|
+
// Model Registry - Delegates to ModelRegistryBridge
|
|
88
|
+
// ============================================================================
|
|
89
|
+
|
|
90
|
+
std::shared_ptr<Promise<std::string>> getAvailableModels() override;
|
|
91
|
+
std::shared_ptr<Promise<std::string>> getModelInfo(const std::string& modelId) override;
|
|
92
|
+
std::shared_ptr<Promise<bool>> isModelDownloaded(const std::string& modelId) override;
|
|
93
|
+
std::shared_ptr<Promise<std::string>> getModelPath(const std::string& modelId) override;
|
|
94
|
+
std::shared_ptr<Promise<bool>> registerModel(const std::string& modelJson) override;
|
|
95
|
+
|
|
96
|
+
// ============================================================================
|
|
97
|
+
// Download Service - Delegates to DownloadBridge
|
|
98
|
+
// ============================================================================
|
|
99
|
+
|
|
100
|
+
std::shared_ptr<Promise<bool>> downloadModel(
|
|
101
|
+
const std::string& modelId,
|
|
102
|
+
const std::string& url,
|
|
103
|
+
const std::string& destPath) override;
|
|
104
|
+
std::shared_ptr<Promise<bool>> cancelDownload(const std::string& modelId) override;
|
|
105
|
+
std::shared_ptr<Promise<std::string>> getDownloadProgress(const std::string& modelId) override;
|
|
106
|
+
|
|
107
|
+
// ============================================================================
|
|
108
|
+
// Storage - Delegates to StorageBridge
|
|
109
|
+
// ============================================================================
|
|
110
|
+
|
|
111
|
+
std::shared_ptr<Promise<std::string>> getStorageInfo() override;
|
|
112
|
+
std::shared_ptr<Promise<bool>> clearCache() override;
|
|
113
|
+
std::shared_ptr<Promise<bool>> deleteModel(const std::string& modelId) override;
|
|
114
|
+
|
|
115
|
+
// ============================================================================
|
|
116
|
+
// Events - Delegates to EventBridge
|
|
117
|
+
// ============================================================================
|
|
118
|
+
|
|
119
|
+
std::shared_ptr<Promise<void>> emitEvent(const std::string& eventJson) override;
|
|
120
|
+
std::shared_ptr<Promise<std::string>> pollEvents() override;
|
|
121
|
+
|
|
122
|
+
// ============================================================================
|
|
123
|
+
// HTTP Client - Delegates to HTTPBridge
|
|
124
|
+
// ============================================================================
|
|
125
|
+
|
|
126
|
+
std::shared_ptr<Promise<bool>> configureHttp(
|
|
127
|
+
const std::string& baseUrl,
|
|
128
|
+
const std::string& apiKey) override;
|
|
129
|
+
std::shared_ptr<Promise<std::string>> httpPost(
|
|
130
|
+
const std::string& path,
|
|
131
|
+
const std::string& bodyJson) override;
|
|
132
|
+
std::shared_ptr<Promise<std::string>> httpGet(const std::string& path) override;
|
|
133
|
+
|
|
134
|
+
// ============================================================================
|
|
135
|
+
// Utility Functions
|
|
136
|
+
// ============================================================================
|
|
137
|
+
|
|
138
|
+
std::shared_ptr<Promise<std::string>> getLastError() override;
|
|
139
|
+
std::shared_ptr<Promise<bool>> extractArchive(
|
|
140
|
+
const std::string& archivePath,
|
|
141
|
+
const std::string& destPath) override;
|
|
142
|
+
std::shared_ptr<Promise<std::string>> getDeviceCapabilities() override;
|
|
143
|
+
std::shared_ptr<Promise<double>> getMemoryUsage() override;
|
|
144
|
+
|
|
145
|
+
// ============================================================================
|
|
146
|
+
// LLM Capability (Backend-Agnostic)
|
|
147
|
+
// Delegates to rac_llm_component_* APIs via LLMBridge
|
|
148
|
+
// ============================================================================
|
|
149
|
+
|
|
150
|
+
std::shared_ptr<Promise<bool>> loadTextModel(
|
|
151
|
+
const std::string& modelPath,
|
|
152
|
+
const std::optional<std::string>& configJson) override;
|
|
153
|
+
std::shared_ptr<Promise<bool>> isTextModelLoaded() override;
|
|
154
|
+
std::shared_ptr<Promise<bool>> unloadTextModel() override;
|
|
155
|
+
std::shared_ptr<Promise<std::string>> generate(
|
|
156
|
+
const std::string& prompt,
|
|
157
|
+
const std::optional<std::string>& optionsJson) override;
|
|
158
|
+
std::shared_ptr<Promise<std::string>> generateStream(
|
|
159
|
+
const std::string& prompt,
|
|
160
|
+
const std::string& optionsJson,
|
|
161
|
+
const std::function<void(const std::string&, bool)>& callback) override;
|
|
162
|
+
std::shared_ptr<Promise<bool>> cancelGeneration() override;
|
|
163
|
+
std::shared_ptr<Promise<std::string>> generateStructured(
|
|
164
|
+
const std::string& prompt,
|
|
165
|
+
const std::string& schema,
|
|
166
|
+
const std::optional<std::string>& optionsJson) override;
|
|
167
|
+
|
|
168
|
+
// ============================================================================
|
|
169
|
+
// STT Capability (Backend-Agnostic)
|
|
170
|
+
// Delegates to rac_stt_component_* APIs via STTBridge
|
|
171
|
+
// ============================================================================
|
|
172
|
+
|
|
173
|
+
std::shared_ptr<Promise<bool>> loadSTTModel(
|
|
174
|
+
const std::string& modelPath,
|
|
175
|
+
const std::string& modelType,
|
|
176
|
+
const std::optional<std::string>& configJson) override;
|
|
177
|
+
std::shared_ptr<Promise<bool>> isSTTModelLoaded() override;
|
|
178
|
+
std::shared_ptr<Promise<bool>> unloadSTTModel() override;
|
|
179
|
+
std::shared_ptr<Promise<std::string>> transcribe(
|
|
180
|
+
const std::string& audioBase64,
|
|
181
|
+
double sampleRate,
|
|
182
|
+
const std::optional<std::string>& language) override;
|
|
183
|
+
std::shared_ptr<Promise<std::string>> transcribeFile(
|
|
184
|
+
const std::string& filePath,
|
|
185
|
+
const std::optional<std::string>& language) override;
|
|
186
|
+
|
|
187
|
+
// ============================================================================
|
|
188
|
+
// TTS Capability (Backend-Agnostic)
|
|
189
|
+
// Delegates to rac_tts_component_* APIs via TTSBridge
|
|
190
|
+
// ============================================================================
|
|
191
|
+
|
|
192
|
+
std::shared_ptr<Promise<bool>> loadTTSModel(
|
|
193
|
+
const std::string& modelPath,
|
|
194
|
+
const std::string& modelType,
|
|
195
|
+
const std::optional<std::string>& configJson) override;
|
|
196
|
+
std::shared_ptr<Promise<bool>> isTTSModelLoaded() override;
|
|
197
|
+
std::shared_ptr<Promise<bool>> unloadTTSModel() override;
|
|
198
|
+
std::shared_ptr<Promise<std::string>> synthesize(
|
|
199
|
+
const std::string& text,
|
|
200
|
+
const std::string& voiceId,
|
|
201
|
+
double speedRate,
|
|
202
|
+
double pitchShift) override;
|
|
203
|
+
std::shared_ptr<Promise<std::string>> getTTSVoices() override;
|
|
204
|
+
std::shared_ptr<Promise<bool>> cancelTTS() override;
|
|
205
|
+
|
|
206
|
+
// ============================================================================
|
|
207
|
+
// VAD Capability (Backend-Agnostic)
|
|
208
|
+
// Delegates to rac_vad_component_* APIs via VADBridge
|
|
209
|
+
// ============================================================================
|
|
210
|
+
|
|
211
|
+
std::shared_ptr<Promise<bool>> loadVADModel(
|
|
212
|
+
const std::string& modelPath,
|
|
213
|
+
const std::optional<std::string>& configJson) override;
|
|
214
|
+
std::shared_ptr<Promise<bool>> isVADModelLoaded() override;
|
|
215
|
+
std::shared_ptr<Promise<bool>> unloadVADModel() override;
|
|
216
|
+
std::shared_ptr<Promise<std::string>> processVAD(
|
|
217
|
+
const std::string& audioBase64,
|
|
218
|
+
const std::optional<std::string>& optionsJson) override;
|
|
219
|
+
std::shared_ptr<Promise<void>> resetVAD() override;
|
|
220
|
+
|
|
221
|
+
// ============================================================================
|
|
222
|
+
// Secure Storage
|
|
223
|
+
// Matches Swift: KeychainManager.swift
|
|
224
|
+
// Uses platform adapter callbacks for Keychain/Keystore
|
|
225
|
+
// ============================================================================
|
|
226
|
+
|
|
227
|
+
std::shared_ptr<Promise<bool>> secureStorageSet(
|
|
228
|
+
const std::string& key,
|
|
229
|
+
const std::string& value) override;
|
|
230
|
+
std::shared_ptr<Promise<std::variant<nitro::NullType, std::string>>> secureStorageGet(
|
|
231
|
+
const std::string& key) override;
|
|
232
|
+
std::shared_ptr<Promise<bool>> secureStorageDelete(const std::string& key) override;
|
|
233
|
+
std::shared_ptr<Promise<bool>> secureStorageExists(const std::string& key) override;
|
|
234
|
+
std::shared_ptr<Promise<std::string>> getPersistentDeviceUUID() override;
|
|
235
|
+
|
|
236
|
+
// ============================================================================
|
|
237
|
+
// Telemetry
|
|
238
|
+
// Matches Swift: CppBridge+Telemetry.swift
|
|
239
|
+
// C++ handles all telemetry logic - batching, JSON building, routing
|
|
240
|
+
// ============================================================================
|
|
241
|
+
|
|
242
|
+
std::shared_ptr<Promise<void>> flushTelemetry() override;
|
|
243
|
+
std::shared_ptr<Promise<bool>> isTelemetryInitialized() override;
|
|
244
|
+
|
|
245
|
+
// ============================================================================
|
|
246
|
+
// Voice Agent Capability (Backend-Agnostic)
|
|
247
|
+
// Delegates to rac_voice_agent_* APIs via VoiceAgentBridge
|
|
248
|
+
// ============================================================================
|
|
249
|
+
|
|
250
|
+
std::shared_ptr<Promise<bool>> initializeVoiceAgent(const std::string& configJson) override;
|
|
251
|
+
std::shared_ptr<Promise<bool>> initializeVoiceAgentWithLoadedModels() override;
|
|
252
|
+
std::shared_ptr<Promise<bool>> isVoiceAgentReady() override;
|
|
253
|
+
std::shared_ptr<Promise<std::string>> getVoiceAgentComponentStates() override;
|
|
254
|
+
std::shared_ptr<Promise<std::string>> processVoiceTurn(const std::string& audioBase64) override;
|
|
255
|
+
std::shared_ptr<Promise<std::string>> voiceAgentTranscribe(const std::string& audioBase64) override;
|
|
256
|
+
std::shared_ptr<Promise<std::string>> voiceAgentGenerateResponse(const std::string& prompt) override;
|
|
257
|
+
std::shared_ptr<Promise<std::string>> voiceAgentSynthesizeSpeech(const std::string& text) override;
|
|
258
|
+
std::shared_ptr<Promise<void>> cleanupVoiceAgent() override;
|
|
259
|
+
|
|
260
|
+
private:
|
|
261
|
+
// Thread safety
|
|
262
|
+
std::mutex initMutex_;
|
|
263
|
+
|
|
264
|
+
// State tracking
|
|
265
|
+
std::string lastError_;
|
|
266
|
+
|
|
267
|
+
// Helper methods
|
|
268
|
+
void setLastError(const std::string& error);
|
|
269
|
+
};
|
|
270
|
+
|
|
271
|
+
} // namespace margelo::nitro::runanywhere
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file AuthBridge.cpp
|
|
3
|
+
* @brief C++ bridge for authentication operations.
|
|
4
|
+
*
|
|
5
|
+
* NOTE: The RACommons library (librac_commons.so) does NOT export auth state
|
|
6
|
+
* management functions. Authentication must be handled at the platform level
|
|
7
|
+
* (TypeScript/Kotlin/Swift) with tokens managed outside of C++.
|
|
8
|
+
*
|
|
9
|
+
* This bridge provides a passthrough interface that delegates to platform.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
#include "AuthBridge.hpp"
|
|
13
|
+
#include "rac_error.h"
|
|
14
|
+
#include <stdexcept>
|
|
15
|
+
|
|
16
|
+
// Platform-specific logging
|
|
17
|
+
#if defined(ANDROID) || defined(__ANDROID__)
|
|
18
|
+
#include <android/log.h>
|
|
19
|
+
#define LOG_TAG "AuthBridge"
|
|
20
|
+
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
|
|
21
|
+
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
|
|
22
|
+
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
|
|
23
|
+
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN, LOG_TAG, __VA_ARGS__)
|
|
24
|
+
#else
|
|
25
|
+
#include <cstdio>
|
|
26
|
+
#define LOGI(...) printf("[AuthBridge] "); printf(__VA_ARGS__); printf("\n")
|
|
27
|
+
#define LOGD(...) printf("[AuthBridge DEBUG] "); printf(__VA_ARGS__); printf("\n")
|
|
28
|
+
#define LOGE(...) printf("[AuthBridge ERROR] "); printf(__VA_ARGS__); printf("\n")
|
|
29
|
+
#define LOGW(...) printf("[AuthBridge WARN] "); printf(__VA_ARGS__); printf("\n")
|
|
30
|
+
#endif
|
|
31
|
+
|
|
32
|
+
namespace runanywhere {
|
|
33
|
+
namespace bridges {
|
|
34
|
+
|
|
35
|
+
// =============================================================================
|
|
36
|
+
// Singleton Implementation
|
|
37
|
+
// =============================================================================
|
|
38
|
+
|
|
39
|
+
AuthBridge& AuthBridge::shared() {
|
|
40
|
+
static AuthBridge instance;
|
|
41
|
+
return instance;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// =============================================================================
|
|
45
|
+
// Platform Callbacks
|
|
46
|
+
// =============================================================================
|
|
47
|
+
|
|
48
|
+
void AuthBridge::setPlatformCallbacks(const AuthPlatformCallbacks& callbacks) {
|
|
49
|
+
platformCallbacks_ = callbacks;
|
|
50
|
+
LOGI("Platform callbacks set for AuthBridge");
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// =============================================================================
|
|
54
|
+
// JSON Building (Platform calls HTTP, we just format)
|
|
55
|
+
// =============================================================================
|
|
56
|
+
|
|
57
|
+
std::string AuthBridge::buildAuthenticateRequestJSON(
|
|
58
|
+
const std::string& apiKey,
|
|
59
|
+
const std::string& deviceId,
|
|
60
|
+
const std::string& platform,
|
|
61
|
+
const std::string& sdkVersion
|
|
62
|
+
) {
|
|
63
|
+
// Simple JSON building without external dependencies
|
|
64
|
+
std::string json = "{";
|
|
65
|
+
json += "\"api_key\":\"" + apiKey + "\",";
|
|
66
|
+
json += "\"device_id\":\"" + deviceId + "\",";
|
|
67
|
+
json += "\"platform\":\"" + platform + "\",";
|
|
68
|
+
json += "\"sdk_version\":\"" + sdkVersion + "\"";
|
|
69
|
+
json += "}";
|
|
70
|
+
return json;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
std::string AuthBridge::buildRefreshRequestJSON(
|
|
74
|
+
const std::string& refreshToken,
|
|
75
|
+
const std::string& deviceId
|
|
76
|
+
) {
|
|
77
|
+
std::string json = "{";
|
|
78
|
+
json += "\"refresh_token\":\"" + refreshToken + "\",";
|
|
79
|
+
json += "\"device_id\":\"" + deviceId + "\"";
|
|
80
|
+
json += "}";
|
|
81
|
+
return json;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// =============================================================================
|
|
85
|
+
// Response Handling (Parse JSON and extract fields)
|
|
86
|
+
// =============================================================================
|
|
87
|
+
|
|
88
|
+
AuthResponse AuthBridge::handleAuthResponse(const std::string& jsonResponse) {
|
|
89
|
+
AuthResponse response;
|
|
90
|
+
|
|
91
|
+
// Simple JSON parsing (extract key fields)
|
|
92
|
+
// In production, use a proper JSON library
|
|
93
|
+
auto extractString = [&](const std::string& key) -> std::string {
|
|
94
|
+
std::string searchKey = "\"" + key + "\":\"";
|
|
95
|
+
size_t pos = jsonResponse.find(searchKey);
|
|
96
|
+
if (pos == std::string::npos) return "";
|
|
97
|
+
pos += searchKey.length();
|
|
98
|
+
size_t endPos = jsonResponse.find("\"", pos);
|
|
99
|
+
if (endPos == std::string::npos) return "";
|
|
100
|
+
return jsonResponse.substr(pos, endPos - pos);
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
auto extractInt = [&](const std::string& key) -> int64_t {
|
|
104
|
+
std::string searchKey = "\"" + key + "\":";
|
|
105
|
+
size_t pos = jsonResponse.find(searchKey);
|
|
106
|
+
if (pos == std::string::npos) return 0;
|
|
107
|
+
pos += searchKey.length();
|
|
108
|
+
try {
|
|
109
|
+
return std::stoll(jsonResponse.substr(pos));
|
|
110
|
+
} catch (...) {
|
|
111
|
+
return 0;
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
response.accessToken = extractString("access_token");
|
|
116
|
+
response.refreshToken = extractString("refresh_token");
|
|
117
|
+
response.deviceId = extractString("device_id");
|
|
118
|
+
response.userId = extractString("user_id");
|
|
119
|
+
response.organizationId = extractString("organization_id");
|
|
120
|
+
response.expiresIn = extractInt("expires_in");
|
|
121
|
+
response.success = !response.accessToken.empty();
|
|
122
|
+
|
|
123
|
+
if (!response.success) {
|
|
124
|
+
response.error = extractString("error");
|
|
125
|
+
if (response.error.empty()) {
|
|
126
|
+
response.error = extractString("message");
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return response;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// =============================================================================
|
|
134
|
+
// State Management (Delegated to platform via callbacks)
|
|
135
|
+
// =============================================================================
|
|
136
|
+
|
|
137
|
+
void AuthBridge::setAuth(const AuthResponse& auth) {
|
|
138
|
+
// Store locally for C++ access
|
|
139
|
+
currentAuth_ = auth;
|
|
140
|
+
isAuthenticated_ = auth.success && !auth.accessToken.empty();
|
|
141
|
+
|
|
142
|
+
// Notify platform
|
|
143
|
+
if (platformCallbacks_.onAuthStateChanged) {
|
|
144
|
+
platformCallbacks_.onAuthStateChanged(isAuthenticated_);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
LOGI("Auth state updated: authenticated=%d", isAuthenticated_ ? 1 : 0);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
std::string AuthBridge::getAccessToken() const {
|
|
151
|
+
if (platformCallbacks_.getAccessToken) {
|
|
152
|
+
return platformCallbacks_.getAccessToken();
|
|
153
|
+
}
|
|
154
|
+
return currentAuth_.accessToken;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
std::string AuthBridge::getRefreshToken() const {
|
|
158
|
+
if (platformCallbacks_.getRefreshToken) {
|
|
159
|
+
return platformCallbacks_.getRefreshToken();
|
|
160
|
+
}
|
|
161
|
+
return currentAuth_.refreshToken;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
bool AuthBridge::isAuthenticated() const {
|
|
165
|
+
if (platformCallbacks_.isAuthenticated) {
|
|
166
|
+
return platformCallbacks_.isAuthenticated();
|
|
167
|
+
}
|
|
168
|
+
return isAuthenticated_;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
bool AuthBridge::tokenNeedsRefresh() const {
|
|
172
|
+
if (platformCallbacks_.tokenNeedsRefresh) {
|
|
173
|
+
return platformCallbacks_.tokenNeedsRefresh();
|
|
174
|
+
}
|
|
175
|
+
// Default: check if we have refresh token but no valid access token
|
|
176
|
+
return !currentAuth_.refreshToken.empty() && currentAuth_.accessToken.empty();
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
std::string AuthBridge::getUserId() const {
|
|
180
|
+
if (platformCallbacks_.getUserId) {
|
|
181
|
+
return platformCallbacks_.getUserId();
|
|
182
|
+
}
|
|
183
|
+
return currentAuth_.userId;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
std::string AuthBridge::getOrganizationId() const {
|
|
187
|
+
if (platformCallbacks_.getOrganizationId) {
|
|
188
|
+
return platformCallbacks_.getOrganizationId();
|
|
189
|
+
}
|
|
190
|
+
return currentAuth_.organizationId;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
void AuthBridge::clearAuth() {
|
|
194
|
+
currentAuth_ = AuthResponse();
|
|
195
|
+
isAuthenticated_ = false;
|
|
196
|
+
|
|
197
|
+
if (platformCallbacks_.clearAuth) {
|
|
198
|
+
platformCallbacks_.clearAuth();
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
if (platformCallbacks_.onAuthStateChanged) {
|
|
202
|
+
platformCallbacks_.onAuthStateChanged(false);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
LOGI("Auth state cleared");
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
} // namespace bridges
|
|
209
|
+
} // namespace runanywhere
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file AuthBridge.hpp
|
|
3
|
+
* @brief C++ bridge for authentication operations.
|
|
4
|
+
*
|
|
5
|
+
* NOTE: The RACommons library (librac_commons.so) does NOT export auth state
|
|
6
|
+
* management functions. Authentication must be handled at the platform level
|
|
7
|
+
* (TypeScript/Kotlin/Swift) with tokens managed outside of C++.
|
|
8
|
+
*
|
|
9
|
+
* This bridge provides a passthrough interface that delegates to platform.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
#pragma once
|
|
13
|
+
|
|
14
|
+
#include <string>
|
|
15
|
+
#include <functional>
|
|
16
|
+
|
|
17
|
+
namespace runanywhere {
|
|
18
|
+
namespace bridges {
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Auth response structure
|
|
22
|
+
*/
|
|
23
|
+
struct AuthResponse {
|
|
24
|
+
bool success = false;
|
|
25
|
+
std::string accessToken;
|
|
26
|
+
std::string refreshToken;
|
|
27
|
+
std::string deviceId;
|
|
28
|
+
std::string userId;
|
|
29
|
+
std::string organizationId;
|
|
30
|
+
int64_t expiresIn = 0;
|
|
31
|
+
std::string error;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Platform callbacks for auth operations
|
|
36
|
+
*
|
|
37
|
+
* Platform (TypeScript/Kotlin/Swift) implements secure storage
|
|
38
|
+
* and HTTP operations, this C++ layer just provides the interface.
|
|
39
|
+
*/
|
|
40
|
+
struct AuthPlatformCallbacks {
|
|
41
|
+
// Get tokens from platform secure storage
|
|
42
|
+
std::function<std::string()> getAccessToken;
|
|
43
|
+
std::function<std::string()> getRefreshToken;
|
|
44
|
+
|
|
45
|
+
// Query auth state
|
|
46
|
+
std::function<bool()> isAuthenticated;
|
|
47
|
+
std::function<bool()> tokenNeedsRefresh;
|
|
48
|
+
|
|
49
|
+
// Get user info
|
|
50
|
+
std::function<std::string()> getUserId;
|
|
51
|
+
std::function<std::string()> getOrganizationId;
|
|
52
|
+
|
|
53
|
+
// Clear auth (logout)
|
|
54
|
+
std::function<void()> clearAuth;
|
|
55
|
+
|
|
56
|
+
// Notify platform of auth state changes
|
|
57
|
+
std::function<void(bool authenticated)> onAuthStateChanged;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* AuthBridge - Authentication state management
|
|
62
|
+
*
|
|
63
|
+
* Provides JSON building/parsing utilities and state access.
|
|
64
|
+
* Actual HTTP calls and secure storage are done by platform.
|
|
65
|
+
*/
|
|
66
|
+
class AuthBridge {
|
|
67
|
+
public:
|
|
68
|
+
/**
|
|
69
|
+
* Get shared instance
|
|
70
|
+
*/
|
|
71
|
+
static AuthBridge& shared();
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Set platform callbacks
|
|
75
|
+
* Must be called during SDK initialization
|
|
76
|
+
*/
|
|
77
|
+
void setPlatformCallbacks(const AuthPlatformCallbacks& callbacks);
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Build authenticate request JSON
|
|
81
|
+
* Platform uses this to make HTTP POST to /api/v1/auth/sdk/authenticate
|
|
82
|
+
*/
|
|
83
|
+
std::string buildAuthenticateRequestJSON(
|
|
84
|
+
const std::string& apiKey,
|
|
85
|
+
const std::string& deviceId,
|
|
86
|
+
const std::string& platform,
|
|
87
|
+
const std::string& sdkVersion
|
|
88
|
+
);
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Build refresh request JSON
|
|
92
|
+
* Platform uses this to make HTTP POST to /api/v1/auth/sdk/refresh
|
|
93
|
+
*/
|
|
94
|
+
std::string buildRefreshRequestJSON(
|
|
95
|
+
const std::string& refreshToken,
|
|
96
|
+
const std::string& deviceId
|
|
97
|
+
);
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Handle authentication response JSON
|
|
101
|
+
* Returns parsed AuthResponse
|
|
102
|
+
*/
|
|
103
|
+
AuthResponse handleAuthResponse(const std::string& jsonResponse);
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Set auth state (called by platform after successful auth)
|
|
107
|
+
*/
|
|
108
|
+
void setAuth(const AuthResponse& auth);
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Get current access token
|
|
112
|
+
*/
|
|
113
|
+
std::string getAccessToken() const;
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Get current refresh token
|
|
117
|
+
*/
|
|
118
|
+
std::string getRefreshToken() const;
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Check if currently authenticated
|
|
122
|
+
*/
|
|
123
|
+
bool isAuthenticated() const;
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Check if token needs refresh
|
|
127
|
+
*/
|
|
128
|
+
bool tokenNeedsRefresh() const;
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Get user ID
|
|
132
|
+
*/
|
|
133
|
+
std::string getUserId() const;
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Get organization ID
|
|
137
|
+
*/
|
|
138
|
+
std::string getOrganizationId() const;
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Clear authentication state
|
|
142
|
+
*/
|
|
143
|
+
void clearAuth();
|
|
144
|
+
|
|
145
|
+
private:
|
|
146
|
+
AuthBridge() = default;
|
|
147
|
+
~AuthBridge() = default;
|
|
148
|
+
AuthBridge(const AuthBridge&) = delete;
|
|
149
|
+
AuthBridge& operator=(const AuthBridge&) = delete;
|
|
150
|
+
|
|
151
|
+
AuthPlatformCallbacks platformCallbacks_{};
|
|
152
|
+
AuthResponse currentAuth_{};
|
|
153
|
+
bool isAuthenticated_ = false;
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
} // namespace bridges
|
|
157
|
+
} // namespace runanywhere
|