@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,352 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TelemetryBridge.cpp
|
|
3
|
+
*
|
|
4
|
+
* C++ telemetry bridge implementation for React Native.
|
|
5
|
+
*
|
|
6
|
+
* Reference: sdk/runanywhere-swift/Sources/RunAnywhere/Foundation/Bridge/Extensions/CppBridge+Telemetry.swift
|
|
7
|
+
*
|
|
8
|
+
* Key insight from Swift/Kotlin:
|
|
9
|
+
* - C++ telemetry manager builds JSON and batches events
|
|
10
|
+
* - Platform SDK provides HTTP callback for sending
|
|
11
|
+
* - Analytics events are routed through C++ callback to telemetry manager
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
#include "TelemetryBridge.hpp"
|
|
15
|
+
#include "InitBridge.hpp"
|
|
16
|
+
#include "AuthBridge.hpp"
|
|
17
|
+
#include "rac_dev_config.h"
|
|
18
|
+
|
|
19
|
+
// Platform-specific logging
|
|
20
|
+
#if defined(ANDROID) || defined(__ANDROID__)
|
|
21
|
+
#include <android/log.h>
|
|
22
|
+
#define LOG_TAG "TelemetryBridge"
|
|
23
|
+
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
|
|
24
|
+
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
|
|
25
|
+
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
|
|
26
|
+
#else
|
|
27
|
+
#define LOGI(...) printf("[TelemetryBridge] "); printf(__VA_ARGS__); printf("\n")
|
|
28
|
+
#define LOGE(...) printf("[TelemetryBridge ERROR] "); printf(__VA_ARGS__); printf("\n")
|
|
29
|
+
#define LOGD(...) printf("[TelemetryBridge DEBUG] "); printf(__VA_ARGS__); printf("\n")
|
|
30
|
+
#endif
|
|
31
|
+
|
|
32
|
+
namespace runanywhere {
|
|
33
|
+
namespace bridges {
|
|
34
|
+
|
|
35
|
+
// Forward declarations for callbacks
|
|
36
|
+
static void telemetryHttpCallback(
|
|
37
|
+
void* userData,
|
|
38
|
+
const char* endpoint,
|
|
39
|
+
const char* jsonBody,
|
|
40
|
+
size_t jsonLength,
|
|
41
|
+
rac_bool_t requiresAuth
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
static void analyticsEventCallback(
|
|
45
|
+
rac_event_type_t type,
|
|
46
|
+
const rac_analytics_event_data_t* data,
|
|
47
|
+
void* userData
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
// ============================================================================
|
|
51
|
+
// Singleton
|
|
52
|
+
// ============================================================================
|
|
53
|
+
|
|
54
|
+
TelemetryBridge& TelemetryBridge::shared() {
|
|
55
|
+
static TelemetryBridge instance;
|
|
56
|
+
return instance;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
TelemetryBridge::~TelemetryBridge() {
|
|
60
|
+
shutdown();
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// ============================================================================
|
|
64
|
+
// Lifecycle
|
|
65
|
+
// ============================================================================
|
|
66
|
+
|
|
67
|
+
void TelemetryBridge::initialize(
|
|
68
|
+
rac_environment_t environment,
|
|
69
|
+
const std::string& deviceId,
|
|
70
|
+
const std::string& deviceModel,
|
|
71
|
+
const std::string& osVersion,
|
|
72
|
+
const std::string& sdkVersion
|
|
73
|
+
) {
|
|
74
|
+
std::lock_guard<std::mutex> lock(mutex_);
|
|
75
|
+
|
|
76
|
+
// Destroy existing manager if any
|
|
77
|
+
if (manager_) {
|
|
78
|
+
rac_telemetry_manager_flush(manager_);
|
|
79
|
+
rac_telemetry_manager_destroy(manager_);
|
|
80
|
+
manager_ = nullptr;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
environment_ = environment;
|
|
84
|
+
|
|
85
|
+
LOGI("Creating telemetry manager: device=%s, model=%s, os=%s, sdk=%s, env=%d",
|
|
86
|
+
deviceId.c_str(), deviceModel.c_str(), osVersion.c_str(), sdkVersion.c_str(), environment);
|
|
87
|
+
|
|
88
|
+
// Create telemetry manager
|
|
89
|
+
// Matches Swift: rac_telemetry_manager_create(Environment.toC(environment), did, plat, ver)
|
|
90
|
+
manager_ = rac_telemetry_manager_create(
|
|
91
|
+
environment,
|
|
92
|
+
deviceId.c_str(),
|
|
93
|
+
"react-native", // platform
|
|
94
|
+
sdkVersion.c_str()
|
|
95
|
+
);
|
|
96
|
+
|
|
97
|
+
if (!manager_) {
|
|
98
|
+
LOGE("Failed to create telemetry manager");
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// Set device info
|
|
103
|
+
// Matches Swift: rac_telemetry_manager_set_device_info(manager, model, os)
|
|
104
|
+
rac_telemetry_manager_set_device_info(manager_, deviceModel.c_str(), osVersion.c_str());
|
|
105
|
+
|
|
106
|
+
// Register HTTP callback - this is where platform provides HTTP transport
|
|
107
|
+
// Matches Swift: rac_telemetry_manager_set_http_callback(manager, telemetryHttpCallback, userData)
|
|
108
|
+
rac_telemetry_manager_set_http_callback(manager_, telemetryHttpCallback, this);
|
|
109
|
+
|
|
110
|
+
LOGI("Telemetry manager initialized successfully");
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
void TelemetryBridge::shutdown() {
|
|
114
|
+
std::lock_guard<std::mutex> lock(mutex_);
|
|
115
|
+
|
|
116
|
+
// Unregister events callback first
|
|
117
|
+
if (eventsCallbackRegistered_) {
|
|
118
|
+
rac_analytics_events_set_callback(nullptr, nullptr);
|
|
119
|
+
eventsCallbackRegistered_ = false;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (manager_) {
|
|
123
|
+
LOGI("Shutting down telemetry manager...");
|
|
124
|
+
|
|
125
|
+
// Flush pending events
|
|
126
|
+
rac_telemetry_manager_flush(manager_);
|
|
127
|
+
|
|
128
|
+
// Destroy manager
|
|
129
|
+
rac_telemetry_manager_destroy(manager_);
|
|
130
|
+
manager_ = nullptr;
|
|
131
|
+
|
|
132
|
+
LOGI("Telemetry manager destroyed");
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
bool TelemetryBridge::isInitialized() const {
|
|
137
|
+
std::lock_guard<std::mutex> lock(mutex_);
|
|
138
|
+
return manager_ != nullptr;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// ============================================================================
|
|
142
|
+
// Event Tracking
|
|
143
|
+
// ============================================================================
|
|
144
|
+
|
|
145
|
+
void TelemetryBridge::trackAnalyticsEvent(
|
|
146
|
+
rac_event_type_t eventType,
|
|
147
|
+
const rac_analytics_event_data_t* data
|
|
148
|
+
) {
|
|
149
|
+
std::lock_guard<std::mutex> lock(mutex_);
|
|
150
|
+
|
|
151
|
+
if (!manager_) {
|
|
152
|
+
LOGD("Telemetry not initialized, skipping event");
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
// Route to C++ telemetry manager
|
|
157
|
+
// Matches Swift: rac_telemetry_manager_track_analytics(mgr, type, data)
|
|
158
|
+
rac_result_t result = rac_telemetry_manager_track_analytics(manager_, eventType, data);
|
|
159
|
+
if (result != RAC_SUCCESS) {
|
|
160
|
+
LOGE("Failed to track analytics event: %d", result);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
void TelemetryBridge::flush() {
|
|
165
|
+
std::lock_guard<std::mutex> lock(mutex_);
|
|
166
|
+
|
|
167
|
+
if (!manager_) {
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
LOGI("Flushing telemetry events...");
|
|
172
|
+
rac_telemetry_manager_flush(manager_);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// ============================================================================
|
|
176
|
+
// Events Callback Registration
|
|
177
|
+
// ============================================================================
|
|
178
|
+
|
|
179
|
+
void TelemetryBridge::registerEventsCallback() {
|
|
180
|
+
std::lock_guard<std::mutex> lock(mutex_);
|
|
181
|
+
|
|
182
|
+
if (eventsCallbackRegistered_) {
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// Register analytics callback - routes events to telemetry manager
|
|
187
|
+
// Matches Swift: rac_analytics_events_set_callback(analyticsEventCallback, nil)
|
|
188
|
+
rac_result_t result = rac_analytics_events_set_callback(analyticsEventCallback, this);
|
|
189
|
+
if (result != RAC_SUCCESS) {
|
|
190
|
+
LOGE("Failed to register analytics events callback: %d", result);
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
eventsCallbackRegistered_ = true;
|
|
195
|
+
LOGI("Analytics events callback registered");
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
void TelemetryBridge::unregisterEventsCallback() {
|
|
199
|
+
std::lock_guard<std::mutex> lock(mutex_);
|
|
200
|
+
|
|
201
|
+
if (!eventsCallbackRegistered_) {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
rac_analytics_events_set_callback(nullptr, nullptr);
|
|
206
|
+
eventsCallbackRegistered_ = false;
|
|
207
|
+
LOGI("Analytics events callback unregistered");
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
// ============================================================================
|
|
211
|
+
// HTTP Callback (Platform provides HTTP transport)
|
|
212
|
+
// ============================================================================
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* HTTP callback invoked by C++ telemetry manager when it's time to send events.
|
|
216
|
+
*
|
|
217
|
+
* C++ has already:
|
|
218
|
+
* - Built the JSON payload
|
|
219
|
+
* - Determined the endpoint
|
|
220
|
+
* - Batched the events
|
|
221
|
+
*
|
|
222
|
+
* We just need to make the HTTP POST request using platform-native HTTP.
|
|
223
|
+
*
|
|
224
|
+
* Matches Swift's telemetryHttpCallback in CppBridge+Telemetry.swift
|
|
225
|
+
*/
|
|
226
|
+
static void telemetryHttpCallback(
|
|
227
|
+
void* userData,
|
|
228
|
+
const char* endpoint,
|
|
229
|
+
const char* jsonBody,
|
|
230
|
+
size_t jsonLength,
|
|
231
|
+
rac_bool_t requiresAuth
|
|
232
|
+
) {
|
|
233
|
+
if (!endpoint || !jsonBody) {
|
|
234
|
+
LOGE("Invalid telemetry HTTP callback parameters");
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
auto* bridge = static_cast<TelemetryBridge*>(userData);
|
|
239
|
+
if (!bridge) {
|
|
240
|
+
LOGE("TelemetryBridge not available for HTTP callback");
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
std::string path(endpoint);
|
|
245
|
+
std::string json(jsonBody, jsonLength);
|
|
246
|
+
rac_environment_t env = bridge->getEnvironment();
|
|
247
|
+
|
|
248
|
+
LOGI("Telemetry HTTP callback: endpoint=%s, bodyLen=%zu, env=%d", path.c_str(), jsonLength, env);
|
|
249
|
+
|
|
250
|
+
// Build full URL based on environment
|
|
251
|
+
// Matches Swift HTTPService logic
|
|
252
|
+
std::string baseURL;
|
|
253
|
+
std::string apiKey;
|
|
254
|
+
|
|
255
|
+
if (env == RAC_ENV_DEVELOPMENT) {
|
|
256
|
+
// Development: Use Supabase from C++ dev config
|
|
257
|
+
const char* devUrl = rac_dev_config_get_supabase_url();
|
|
258
|
+
const char* devKey = rac_dev_config_get_supabase_key();
|
|
259
|
+
|
|
260
|
+
baseURL = devUrl ? devUrl : "https://fhtgjtxuoikwwouxqzrn.supabase.co";
|
|
261
|
+
apiKey = devKey ? devKey : "";
|
|
262
|
+
|
|
263
|
+
LOGD("Telemetry using Supabase: %s", baseURL.c_str());
|
|
264
|
+
} else {
|
|
265
|
+
// Production/Staging: Use configured Railway URL
|
|
266
|
+
// These come from SDK initialization (App.tsx -> RunAnywhere.initialize)
|
|
267
|
+
baseURL = InitBridge::shared().getBaseURL();
|
|
268
|
+
|
|
269
|
+
// For production mode, prefer JWT access token (from authentication)
|
|
270
|
+
// over raw API key. This matches Swift/Kotlin behavior.
|
|
271
|
+
std::string accessToken = AuthBridge::shared().getAccessToken();
|
|
272
|
+
if (!accessToken.empty()) {
|
|
273
|
+
apiKey = accessToken; // Use JWT for Authorization header
|
|
274
|
+
LOGD("Telemetry using JWT access token");
|
|
275
|
+
} else {
|
|
276
|
+
// Fallback to API key if not authenticated yet
|
|
277
|
+
apiKey = InitBridge::shared().getApiKey();
|
|
278
|
+
LOGD("Telemetry using API key (not authenticated)");
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
// Fallback to default if not configured
|
|
282
|
+
if (baseURL.empty()) {
|
|
283
|
+
baseURL = "https://api.runanywhere.ai";
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
LOGD("Telemetry using production: %s", baseURL.c_str());
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
std::string fullURL = baseURL + path;
|
|
290
|
+
|
|
291
|
+
LOGI("Telemetry POST to: %s", fullURL.c_str());
|
|
292
|
+
|
|
293
|
+
// Use platform-native HTTP (same as device registration)
|
|
294
|
+
auto [success, statusCode, responseBody, errorMessage] =
|
|
295
|
+
InitBridge::shared().httpPostSync(fullURL, json, apiKey);
|
|
296
|
+
|
|
297
|
+
if (success) {
|
|
298
|
+
LOGI("✅ Telemetry sent successfully (status=%d)", statusCode);
|
|
299
|
+
|
|
300
|
+
// Notify C++ that HTTP completed
|
|
301
|
+
rac_telemetry_manager_http_complete(
|
|
302
|
+
bridge->getHandle(),
|
|
303
|
+
RAC_TRUE,
|
|
304
|
+
responseBody.c_str(),
|
|
305
|
+
nullptr
|
|
306
|
+
);
|
|
307
|
+
} else {
|
|
308
|
+
LOGE("❌ Telemetry HTTP failed: status=%d, error=%s", statusCode, errorMessage.c_str());
|
|
309
|
+
|
|
310
|
+
// Notify C++ of failure
|
|
311
|
+
rac_telemetry_manager_http_complete(
|
|
312
|
+
bridge->getHandle(),
|
|
313
|
+
RAC_FALSE,
|
|
314
|
+
nullptr,
|
|
315
|
+
errorMessage.c_str()
|
|
316
|
+
);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
// ============================================================================
|
|
321
|
+
// Analytics Events Callback
|
|
322
|
+
// ============================================================================
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* Analytics callback - receives events from C++ analytics system.
|
|
326
|
+
*
|
|
327
|
+
* Routes events to telemetry manager for batching and sending.
|
|
328
|
+
*
|
|
329
|
+
* Matches Swift's analyticsEventCallback in CppBridge+Telemetry.swift
|
|
330
|
+
*/
|
|
331
|
+
static void analyticsEventCallback(
|
|
332
|
+
rac_event_type_t type,
|
|
333
|
+
const rac_analytics_event_data_t* data,
|
|
334
|
+
void* userData
|
|
335
|
+
) {
|
|
336
|
+
if (!data) {
|
|
337
|
+
return;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
auto* bridge = static_cast<TelemetryBridge*>(userData);
|
|
341
|
+
if (!bridge) {
|
|
342
|
+
return;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
// Forward to telemetry manager
|
|
346
|
+
// C++ handles JSON building, batching, etc.
|
|
347
|
+
bridge->trackAnalyticsEvent(type, data);
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
} // namespace bridges
|
|
351
|
+
} // namespace runanywhere
|
|
352
|
+
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TelemetryBridge.hpp
|
|
3
|
+
*
|
|
4
|
+
* C++ telemetry bridge for React Native - aligned with Swift/Kotlin SDKs.
|
|
5
|
+
*
|
|
6
|
+
* Reference: sdk/runanywhere-swift/Sources/RunAnywhere/Foundation/Bridge/Extensions/CppBridge+Telemetry.swift
|
|
7
|
+
*
|
|
8
|
+
* Architecture:
|
|
9
|
+
* - C++ telemetry manager handles all event logic (batching, JSON building)
|
|
10
|
+
* - Platform SDK (React Native) only provides HTTP transport
|
|
11
|
+
* - Events from analytics callback are routed to telemetry manager
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
#pragma once
|
|
15
|
+
|
|
16
|
+
#include <string>
|
|
17
|
+
#include <mutex>
|
|
18
|
+
#include "rac_telemetry_manager.h"
|
|
19
|
+
#include "rac_analytics_events.h"
|
|
20
|
+
#include "rac_environment.h"
|
|
21
|
+
|
|
22
|
+
namespace runanywhere {
|
|
23
|
+
namespace bridges {
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* TelemetryBridge - Manages C++ telemetry manager lifecycle
|
|
27
|
+
*
|
|
28
|
+
* This matches Swift's CppBridge.Telemetry implementation:
|
|
29
|
+
* - Creates/destroys telemetry manager
|
|
30
|
+
* - Registers HTTP callback for sending events
|
|
31
|
+
* - Routes analytics events to telemetry manager
|
|
32
|
+
*/
|
|
33
|
+
class TelemetryBridge {
|
|
34
|
+
public:
|
|
35
|
+
/**
|
|
36
|
+
* Singleton accessor
|
|
37
|
+
*/
|
|
38
|
+
static TelemetryBridge& shared();
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Initialize telemetry manager
|
|
42
|
+
*
|
|
43
|
+
* @param environment SDK environment (affects endpoints and encoding)
|
|
44
|
+
* @param deviceId Persistent device UUID
|
|
45
|
+
* @param deviceModel Device model string (e.g., "iPhone 16 Pro")
|
|
46
|
+
* @param osVersion OS version string (e.g., "18.0")
|
|
47
|
+
* @param sdkVersion SDK version string
|
|
48
|
+
*/
|
|
49
|
+
void initialize(
|
|
50
|
+
rac_environment_t environment,
|
|
51
|
+
const std::string& deviceId,
|
|
52
|
+
const std::string& deviceModel,
|
|
53
|
+
const std::string& osVersion,
|
|
54
|
+
const std::string& sdkVersion
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Shutdown telemetry manager
|
|
59
|
+
* Flushes pending events and destroys manager
|
|
60
|
+
*/
|
|
61
|
+
void shutdown();
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Check if telemetry is initialized
|
|
65
|
+
*/
|
|
66
|
+
bool isInitialized() const;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Track analytics event from C++ callback
|
|
70
|
+
* Routes to rac_telemetry_manager_track_analytics
|
|
71
|
+
*/
|
|
72
|
+
void trackAnalyticsEvent(
|
|
73
|
+
rac_event_type_t eventType,
|
|
74
|
+
const rac_analytics_event_data_t* data
|
|
75
|
+
);
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Flush pending telemetry events immediately
|
|
79
|
+
*/
|
|
80
|
+
void flush();
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Register analytics events callback
|
|
84
|
+
* This routes analytics events to the telemetry manager
|
|
85
|
+
*/
|
|
86
|
+
void registerEventsCallback();
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Unregister analytics events callback
|
|
90
|
+
*/
|
|
91
|
+
void unregisterEventsCallback();
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Get telemetry manager handle (for advanced use)
|
|
95
|
+
*/
|
|
96
|
+
rac_telemetry_manager_t* getHandle() const { return manager_; }
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Get current environment
|
|
100
|
+
*/
|
|
101
|
+
rac_environment_t getEnvironment() const { return environment_; }
|
|
102
|
+
|
|
103
|
+
private:
|
|
104
|
+
TelemetryBridge() = default;
|
|
105
|
+
~TelemetryBridge();
|
|
106
|
+
|
|
107
|
+
// Non-copyable
|
|
108
|
+
TelemetryBridge(const TelemetryBridge&) = delete;
|
|
109
|
+
TelemetryBridge& operator=(const TelemetryBridge&) = delete;
|
|
110
|
+
|
|
111
|
+
// Telemetry manager handle
|
|
112
|
+
rac_telemetry_manager_t* manager_ = nullptr;
|
|
113
|
+
|
|
114
|
+
// Current environment
|
|
115
|
+
rac_environment_t environment_ = RAC_ENV_PRODUCTION;
|
|
116
|
+
|
|
117
|
+
// Thread safety
|
|
118
|
+
mutable std::mutex mutex_;
|
|
119
|
+
|
|
120
|
+
// Events callback registered flag
|
|
121
|
+
bool eventsCallbackRegistered_ = false;
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
} // namespace bridges
|
|
125
|
+
} // namespace runanywhere
|
|
126
|
+
|
package/ios/.testlocal
ADDED
|
File without changes
|