@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.
Files changed (354) hide show
  1. package/RunAnywhereCore.podspec +130 -0
  2. package/android/CMakeLists.txt +92 -0
  3. package/android/build.gradle +321 -0
  4. package/android/consumer-rules.pro +5 -0
  5. package/android/src/main/AndroidManifest.xml +3 -0
  6. package/android/src/main/cpp/cpp-adapter.cpp +271 -0
  7. package/android/src/main/include/rac/backends/rac_llm_llamacpp.h +218 -0
  8. package/android/src/main/include/rac/backends/rac_stt_onnx.h +99 -0
  9. package/android/src/main/include/rac/backends/rac_stt_whispercpp.h +153 -0
  10. package/android/src/main/include/rac/backends/rac_tts_onnx.h +71 -0
  11. package/android/src/main/include/rac/backends/rac_vad_onnx.h +84 -0
  12. package/android/src/main/include/rac/core/capabilities/rac_lifecycle.h +290 -0
  13. package/android/src/main/include/rac/core/rac_analytics_events.h +610 -0
  14. package/android/src/main/include/rac/core/rac_audio_utils.h +88 -0
  15. package/android/src/main/include/rac/core/rac_component_types.h +160 -0
  16. package/android/src/main/include/rac/core/rac_core.h +331 -0
  17. package/android/src/main/include/rac/core/rac_error.h +469 -0
  18. package/android/src/main/include/rac/core/rac_events.h +334 -0
  19. package/android/src/main/include/rac/core/rac_logger.h +416 -0
  20. package/android/src/main/include/rac/core/rac_platform_adapter.h +340 -0
  21. package/android/src/main/include/rac/core/rac_sdk_state.h +292 -0
  22. package/android/src/main/include/rac/core/rac_structured_error.h +594 -0
  23. package/android/src/main/include/rac/core/rac_types.h +264 -0
  24. package/android/src/main/include/rac/features/llm/rac_llm.h +17 -0
  25. package/android/src/main/include/rac/features/llm/rac_llm_analytics.h +188 -0
  26. package/android/src/main/include/rac/features/llm/rac_llm_component.h +228 -0
  27. package/android/src/main/include/rac/features/llm/rac_llm_events.h +215 -0
  28. package/android/src/main/include/rac/features/llm/rac_llm_metrics.h +402 -0
  29. package/android/src/main/include/rac/features/llm/rac_llm_service.h +163 -0
  30. package/android/src/main/include/rac/features/llm/rac_llm_structured_output.h +141 -0
  31. package/android/src/main/include/rac/features/llm/rac_llm_types.h +384 -0
  32. package/android/src/main/include/rac/features/platform/rac_llm_platform.h +204 -0
  33. package/android/src/main/include/rac/features/platform/rac_tts_platform.h +197 -0
  34. package/android/src/main/include/rac/features/stt/rac_stt.h +17 -0
  35. package/android/src/main/include/rac/features/stt/rac_stt_analytics.h +204 -0
  36. package/android/src/main/include/rac/features/stt/rac_stt_component.h +162 -0
  37. package/android/src/main/include/rac/features/stt/rac_stt_events.h +62 -0
  38. package/android/src/main/include/rac/features/stt/rac_stt_service.h +154 -0
  39. package/android/src/main/include/rac/features/stt/rac_stt_types.h +389 -0
  40. package/android/src/main/include/rac/features/tts/rac_tts.h +17 -0
  41. package/android/src/main/include/rac/features/tts/rac_tts_analytics.h +181 -0
  42. package/android/src/main/include/rac/features/tts/rac_tts_component.h +158 -0
  43. package/android/src/main/include/rac/features/tts/rac_tts_events.h +54 -0
  44. package/android/src/main/include/rac/features/tts/rac_tts_service.h +162 -0
  45. package/android/src/main/include/rac/features/tts/rac_tts_types.h +374 -0
  46. package/android/src/main/include/rac/features/vad/rac_vad.h +17 -0
  47. package/android/src/main/include/rac/features/vad/rac_vad_analytics.h +236 -0
  48. package/android/src/main/include/rac/features/vad/rac_vad_component.h +185 -0
  49. package/android/src/main/include/rac/features/vad/rac_vad_energy.h +443 -0
  50. package/android/src/main/include/rac/features/vad/rac_vad_events.h +76 -0
  51. package/android/src/main/include/rac/features/vad/rac_vad_service.h +167 -0
  52. package/android/src/main/include/rac/features/vad/rac_vad_types.h +244 -0
  53. package/android/src/main/include/rac/features/voice_agent/rac_voice_agent.h +612 -0
  54. package/android/src/main/include/rac/infrastructure/device/rac_device_manager.h +176 -0
  55. package/android/src/main/include/rac/infrastructure/download/rac_download.h +418 -0
  56. package/android/src/main/include/rac/infrastructure/events/rac_events.h +177 -0
  57. package/android/src/main/include/rac/infrastructure/model_management/rac_model_assignment.h +169 -0
  58. package/android/src/main/include/rac/infrastructure/model_management/rac_model_paths.h +258 -0
  59. package/android/src/main/include/rac/infrastructure/model_management/rac_model_registry.h +357 -0
  60. package/android/src/main/include/rac/infrastructure/model_management/rac_model_strategy.h +374 -0
  61. package/android/src/main/include/rac/infrastructure/model_management/rac_model_types.h +613 -0
  62. package/android/src/main/include/rac/infrastructure/network/rac_api_types.h +335 -0
  63. package/android/src/main/include/rac/infrastructure/network/rac_auth_manager.h +252 -0
  64. package/android/src/main/include/rac/infrastructure/network/rac_dev_config.h +85 -0
  65. package/android/src/main/include/rac/infrastructure/network/rac_endpoints.h +102 -0
  66. package/android/src/main/include/rac/infrastructure/network/rac_environment.h +220 -0
  67. package/android/src/main/include/rac/infrastructure/network/rac_http_client.h +233 -0
  68. package/android/src/main/include/rac/infrastructure/storage/rac_storage_analyzer.h +286 -0
  69. package/android/src/main/include/rac/infrastructure/telemetry/rac_telemetry_manager.h +206 -0
  70. package/android/src/main/include/rac/infrastructure/telemetry/rac_telemetry_types.h +234 -0
  71. package/android/src/main/java/com/margelo/nitro/runanywhere/ArchiveUtility.kt +308 -0
  72. package/android/src/main/java/com/margelo/nitro/runanywhere/HybridRunAnywhereDeviceInfo.kt +229 -0
  73. package/android/src/main/java/com/margelo/nitro/runanywhere/PlatformAdapterBridge.kt +392 -0
  74. package/android/src/main/java/com/margelo/nitro/runanywhere/RunAnywhereCorePackage.kt +28 -0
  75. package/android/src/main/java/com/margelo/nitro/runanywhere/SDKLogger.kt +357 -0
  76. package/android/src/main/java/com/margelo/nitro/runanywhere/SecureStorageManager.kt +147 -0
  77. package/android/src/main/jniLibs/arm64-v8a/libc++_shared.so +0 -0
  78. package/android/src/main/jniLibs/arm64-v8a/libomp.so +0 -0
  79. package/android/src/main/jniLibs/arm64-v8a/librac_commons.so +0 -0
  80. package/android/src/main/jniLibs/arm64-v8a/librunanywhere_jni.so +0 -0
  81. package/cpp/HybridRunAnywhereCore.cpp +2505 -0
  82. package/cpp/HybridRunAnywhereCore.hpp +271 -0
  83. package/cpp/bridges/AuthBridge.cpp +209 -0
  84. package/cpp/bridges/AuthBridge.hpp +157 -0
  85. package/cpp/bridges/DeviceBridge.cpp +257 -0
  86. package/cpp/bridges/DeviceBridge.hpp +155 -0
  87. package/cpp/bridges/DownloadBridge.cpp +299 -0
  88. package/cpp/bridges/DownloadBridge.hpp +197 -0
  89. package/cpp/bridges/EventBridge.cpp +125 -0
  90. package/cpp/bridges/EventBridge.hpp +139 -0
  91. package/cpp/bridges/HTTPBridge.cpp +96 -0
  92. package/cpp/bridges/HTTPBridge.hpp +144 -0
  93. package/cpp/bridges/InitBridge.cpp +1273 -0
  94. package/cpp/bridges/InitBridge.hpp +306 -0
  95. package/cpp/bridges/ModelRegistryBridge.cpp +394 -0
  96. package/cpp/bridges/ModelRegistryBridge.hpp +177 -0
  97. package/cpp/bridges/StorageBridge.cpp +269 -0
  98. package/cpp/bridges/StorageBridge.hpp +172 -0
  99. package/cpp/bridges/TelemetryBridge.cpp +352 -0
  100. package/cpp/bridges/TelemetryBridge.hpp +126 -0
  101. package/ios/.testlocal +0 -0
  102. package/ios/ArchiveUtility.swift +526 -0
  103. package/ios/ArchiveUtilityBridge.m +52 -0
  104. package/ios/AudioDecoder.h +38 -0
  105. package/ios/AudioDecoder.m +162 -0
  106. package/ios/Binaries/RACommons.xcframework/Info.plist +44 -0
  107. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/RACommons.h +67 -0
  108. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_analytics_events.h +610 -0
  109. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_api_types.h +335 -0
  110. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_audio_utils.h +88 -0
  111. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_auth_manager.h +252 -0
  112. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_component_types.h +160 -0
  113. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_core.h +331 -0
  114. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_dev_config.h +85 -0
  115. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_device_manager.h +176 -0
  116. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_download.h +418 -0
  117. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_endpoints.h +102 -0
  118. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_environment.h +220 -0
  119. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_error.h +469 -0
  120. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_events.h +177 -0
  121. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_http_client.h +233 -0
  122. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_lifecycle.h +290 -0
  123. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_llm.h +17 -0
  124. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_llm_analytics.h +188 -0
  125. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_llm_component.h +228 -0
  126. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_llm_events.h +215 -0
  127. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_llm_llamacpp.h +218 -0
  128. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_llm_metrics.h +402 -0
  129. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_llm_platform.h +204 -0
  130. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_llm_service.h +163 -0
  131. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_llm_structured_output.h +141 -0
  132. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_llm_types.h +384 -0
  133. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_logger.h +416 -0
  134. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_model_assignment.h +169 -0
  135. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_model_paths.h +258 -0
  136. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_model_registry.h +357 -0
  137. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_model_strategy.h +374 -0
  138. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_model_types.h +613 -0
  139. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_platform_adapter.h +340 -0
  140. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_sdk_state.h +292 -0
  141. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_storage_analyzer.h +286 -0
  142. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_structured_error.h +594 -0
  143. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_stt.h +17 -0
  144. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_stt_analytics.h +204 -0
  145. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_stt_component.h +162 -0
  146. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_stt_events.h +62 -0
  147. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_stt_onnx.h +99 -0
  148. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_stt_service.h +154 -0
  149. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_stt_types.h +389 -0
  150. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_stt_whispercpp.h +153 -0
  151. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_telemetry_manager.h +206 -0
  152. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_telemetry_types.h +234 -0
  153. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_tts.h +17 -0
  154. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_tts_analytics.h +181 -0
  155. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_tts_component.h +158 -0
  156. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_tts_events.h +54 -0
  157. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_tts_onnx.h +71 -0
  158. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_tts_platform.h +197 -0
  159. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_tts_service.h +162 -0
  160. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_tts_types.h +374 -0
  161. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_types.h +264 -0
  162. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_vad.h +17 -0
  163. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_vad_analytics.h +236 -0
  164. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_vad_component.h +185 -0
  165. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_vad_energy.h +443 -0
  166. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_vad_events.h +76 -0
  167. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_vad_onnx.h +84 -0
  168. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_vad_service.h +167 -0
  169. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_vad_types.h +244 -0
  170. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Headers/rac_voice_agent.h +612 -0
  171. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Info.plist +11 -0
  172. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/Modules/module.modulemap +5 -0
  173. package/ios/Binaries/RACommons.xcframework/ios-arm64/RACommons.framework/RACommons +0 -0
  174. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/RACommons.h +67 -0
  175. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_analytics_events.h +610 -0
  176. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_api_types.h +335 -0
  177. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_audio_utils.h +88 -0
  178. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_auth_manager.h +252 -0
  179. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_component_types.h +160 -0
  180. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_core.h +331 -0
  181. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_dev_config.h +85 -0
  182. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_device_manager.h +176 -0
  183. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_download.h +418 -0
  184. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_endpoints.h +102 -0
  185. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_environment.h +220 -0
  186. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_error.h +469 -0
  187. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_events.h +177 -0
  188. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_http_client.h +233 -0
  189. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_lifecycle.h +290 -0
  190. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_llm.h +17 -0
  191. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_llm_analytics.h +188 -0
  192. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_llm_component.h +228 -0
  193. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_llm_events.h +215 -0
  194. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_llm_llamacpp.h +218 -0
  195. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_llm_metrics.h +402 -0
  196. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_llm_platform.h +204 -0
  197. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_llm_service.h +163 -0
  198. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_llm_structured_output.h +141 -0
  199. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_llm_types.h +384 -0
  200. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_logger.h +416 -0
  201. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_model_assignment.h +169 -0
  202. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_model_paths.h +258 -0
  203. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_model_registry.h +357 -0
  204. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_model_strategy.h +374 -0
  205. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_model_types.h +613 -0
  206. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_platform_adapter.h +340 -0
  207. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_sdk_state.h +292 -0
  208. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_storage_analyzer.h +286 -0
  209. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_structured_error.h +594 -0
  210. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_stt.h +17 -0
  211. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_stt_analytics.h +204 -0
  212. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_stt_component.h +162 -0
  213. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_stt_events.h +62 -0
  214. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_stt_onnx.h +99 -0
  215. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_stt_service.h +154 -0
  216. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_stt_types.h +389 -0
  217. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_stt_whispercpp.h +153 -0
  218. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_telemetry_manager.h +206 -0
  219. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_telemetry_types.h +234 -0
  220. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_tts.h +17 -0
  221. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_tts_analytics.h +181 -0
  222. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_tts_component.h +158 -0
  223. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_tts_events.h +54 -0
  224. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_tts_onnx.h +71 -0
  225. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_tts_platform.h +197 -0
  226. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_tts_service.h +162 -0
  227. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_tts_types.h +374 -0
  228. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_types.h +264 -0
  229. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_vad.h +17 -0
  230. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_vad_analytics.h +236 -0
  231. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_vad_component.h +185 -0
  232. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_vad_energy.h +443 -0
  233. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_vad_events.h +76 -0
  234. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_vad_onnx.h +84 -0
  235. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_vad_service.h +167 -0
  236. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_vad_types.h +244 -0
  237. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Headers/rac_voice_agent.h +612 -0
  238. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Info.plist +11 -0
  239. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/Modules/module.modulemap +5 -0
  240. package/ios/Binaries/RACommons.xcframework/ios-arm64_x86_64-simulator/RACommons.framework/RACommons +0 -0
  241. package/ios/HybridRunAnywhereDeviceInfo.swift +214 -0
  242. package/ios/KeychainManager.swift +116 -0
  243. package/ios/PlatformAdapter.swift +100 -0
  244. package/ios/PlatformAdapterBridge.h +152 -0
  245. package/ios/PlatformAdapterBridge.m +570 -0
  246. package/ios/RNSDKLoggerBridge.h +41 -0
  247. package/ios/RNSDKLoggerBridge.m +66 -0
  248. package/ios/SDKLogger.swift +329 -0
  249. package/nitro.json +20 -0
  250. package/nitrogen/generated/.gitattributes +1 -0
  251. package/nitrogen/generated/android/c++/JHybridRunAnywhereDeviceInfoSpec.cpp +257 -0
  252. package/nitrogen/generated/android/c++/JHybridRunAnywhereDeviceInfoSpec.hpp +77 -0
  253. package/nitrogen/generated/android/kotlin/com/margelo/nitro/runanywhere/HybridRunAnywhereDeviceInfoSpec.kt +106 -0
  254. package/nitrogen/generated/android/kotlin/com/margelo/nitro/runanywhere/runanywherecoreOnLoad.kt +35 -0
  255. package/nitrogen/generated/android/runanywherecore+autolinking.cmake +82 -0
  256. package/nitrogen/generated/android/runanywherecore+autolinking.gradle +27 -0
  257. package/nitrogen/generated/android/runanywherecoreOnLoad.cpp +54 -0
  258. package/nitrogen/generated/android/runanywherecoreOnLoad.hpp +25 -0
  259. package/nitrogen/generated/ios/RunAnywhereCore+autolinking.rb +60 -0
  260. package/nitrogen/generated/ios/RunAnywhereCore-Swift-Cxx-Bridge.cpp +65 -0
  261. package/nitrogen/generated/ios/RunAnywhereCore-Swift-Cxx-Bridge.hpp +197 -0
  262. package/nitrogen/generated/ios/RunAnywhereCore-Swift-Cxx-Umbrella.hpp +45 -0
  263. package/nitrogen/generated/ios/RunAnywhereCoreAutolinking.mm +43 -0
  264. package/nitrogen/generated/ios/RunAnywhereCoreAutolinking.swift +25 -0
  265. package/nitrogen/generated/ios/c++/HybridRunAnywhereDeviceInfoSpecSwift.cpp +11 -0
  266. package/nitrogen/generated/ios/c++/HybridRunAnywhereDeviceInfoSpecSwift.hpp +173 -0
  267. package/nitrogen/generated/ios/swift/Func_void_bool.swift +47 -0
  268. package/nitrogen/generated/ios/swift/Func_void_double.swift +47 -0
  269. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
  270. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +47 -0
  271. package/nitrogen/generated/ios/swift/HybridRunAnywhereDeviceInfoSpec.swift +68 -0
  272. package/nitrogen/generated/ios/swift/HybridRunAnywhereDeviceInfoSpec_cxx.swift +366 -0
  273. package/nitrogen/generated/shared/c++/HybridRunAnywhereCoreSpec.cpp +92 -0
  274. package/nitrogen/generated/shared/c++/HybridRunAnywhereCoreSpec.hpp +138 -0
  275. package/nitrogen/generated/shared/c++/HybridRunAnywhereDeviceInfoSpec.cpp +33 -0
  276. package/nitrogen/generated/shared/c++/HybridRunAnywhereDeviceInfoSpec.hpp +75 -0
  277. package/package.json +76 -0
  278. package/react-native.config.js +14 -0
  279. package/src/Features/VoiceSession/AudioCaptureManager.ts +286 -0
  280. package/src/Features/VoiceSession/AudioPlaybackManager.ts +300 -0
  281. package/src/Features/VoiceSession/VoiceSessionHandle.ts +530 -0
  282. package/src/Features/VoiceSession/index.ts +20 -0
  283. package/src/Features/index.ts +7 -0
  284. package/src/Foundation/Constants/SDKConstants.ts +47 -0
  285. package/src/Foundation/Constants/index.ts +8 -0
  286. package/src/Foundation/DependencyInjection/ServiceContainer.ts +154 -0
  287. package/src/Foundation/DependencyInjection/ServiceRegistry.ts +51 -0
  288. package/src/Foundation/DependencyInjection/index.ts +6 -0
  289. package/src/Foundation/ErrorTypes/ErrorCategory.ts +184 -0
  290. package/src/Foundation/ErrorTypes/ErrorCodes.ts +151 -0
  291. package/src/Foundation/ErrorTypes/ErrorContext.ts +201 -0
  292. package/src/Foundation/ErrorTypes/SDKError.ts +507 -0
  293. package/src/Foundation/ErrorTypes/index.ts +57 -0
  294. package/src/Foundation/Initialization/InitializationPhase.ts +85 -0
  295. package/src/Foundation/Initialization/InitializationState.ts +168 -0
  296. package/src/Foundation/Initialization/index.ts +26 -0
  297. package/src/Foundation/Logging/Destinations/NativeLogBridge.ts +147 -0
  298. package/src/Foundation/Logging/Destinations/SentryDestination.ts +209 -0
  299. package/src/Foundation/Logging/Logger/SDKLogger.ts +232 -0
  300. package/src/Foundation/Logging/Models/LogLevel.ts +36 -0
  301. package/src/Foundation/Logging/Models/LoggingConfiguration.ts +117 -0
  302. package/src/Foundation/Logging/Services/LoggingManager.ts +407 -0
  303. package/src/Foundation/Logging/index.ts +59 -0
  304. package/src/Foundation/Security/DeviceIdentity.ts +92 -0
  305. package/src/Foundation/Security/SecureStorageError.ts +132 -0
  306. package/src/Foundation/Security/SecureStorageKeys.ts +35 -0
  307. package/src/Foundation/Security/SecureStorageService.ts +449 -0
  308. package/src/Foundation/Security/index.ts +17 -0
  309. package/src/Foundation/index.ts +26 -0
  310. package/src/Infrastructure/Events/EventPublisher.ts +165 -0
  311. package/src/Infrastructure/Events/SDKEvent.ts +214 -0
  312. package/src/Infrastructure/Events/index.ts +15 -0
  313. package/src/Infrastructure/index.ts +9 -0
  314. package/src/Public/Events/EventBus.ts +488 -0
  315. package/src/Public/Events/index.ts +8 -0
  316. package/src/Public/Extensions/RunAnywhere+Logging.ts +51 -0
  317. package/src/Public/Extensions/RunAnywhere+Models.ts +392 -0
  318. package/src/Public/Extensions/RunAnywhere+STT.ts +424 -0
  319. package/src/Public/Extensions/RunAnywhere+Storage.ts +151 -0
  320. package/src/Public/Extensions/RunAnywhere+StructuredOutput.ts +316 -0
  321. package/src/Public/Extensions/RunAnywhere+TTS.ts +430 -0
  322. package/src/Public/Extensions/RunAnywhere+TextGeneration.ts +320 -0
  323. package/src/Public/Extensions/RunAnywhere+VAD.ts +359 -0
  324. package/src/Public/Extensions/RunAnywhere+VoiceAgent.ts +225 -0
  325. package/src/Public/Extensions/RunAnywhere+VoiceSession.ts +155 -0
  326. package/src/Public/Extensions/index.ts +126 -0
  327. package/src/Public/RunAnywhere.ts +695 -0
  328. package/src/index.ts +238 -0
  329. package/src/native/NativeRunAnywhereCore.ts +291 -0
  330. package/src/native/NativeRunAnywhereModule.ts +32 -0
  331. package/src/native/index.ts +21 -0
  332. package/src/services/DownloadService.ts +282 -0
  333. package/src/services/FileSystem.ts +810 -0
  334. package/src/services/ModelRegistry.ts +246 -0
  335. package/src/services/Network/APIEndpoints.ts +84 -0
  336. package/src/services/Network/HTTPService.ts +479 -0
  337. package/src/services/Network/NetworkConfiguration.ts +130 -0
  338. package/src/services/Network/TelemetryService.ts +318 -0
  339. package/src/services/Network/index.ts +29 -0
  340. package/src/services/SystemTTSService.ts +130 -0
  341. package/src/services/index.ts +66 -0
  342. package/src/specs/RunAnywhereCore.nitro.ts +627 -0
  343. package/src/specs/RunAnywhereDeviceInfo.nitro.ts +73 -0
  344. package/src/types/LLMTypes.ts +127 -0
  345. package/src/types/STTTypes.ts +124 -0
  346. package/src/types/StructuredOutputTypes.ts +156 -0
  347. package/src/types/TTSTypes.ts +126 -0
  348. package/src/types/VADTypes.ts +70 -0
  349. package/src/types/VoiceAgentTypes.ts +182 -0
  350. package/src/types/enums.ts +258 -0
  351. package/src/types/events.ts +337 -0
  352. package/src/types/external.d.ts +142 -0
  353. package/src/types/index.ts +146 -0
  354. 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