@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,206 @@
1
+ /**
2
+ * @file rac_telemetry_manager.h
3
+ * @brief Telemetry manager - handles event queuing, batching, and serialization
4
+ *
5
+ * C++ handles all telemetry logic:
6
+ * - Convert analytics events to telemetry payloads
7
+ * - Queue and batch events
8
+ * - Group by modality for production
9
+ * - Serialize to JSON (environment-aware)
10
+ * - Callback to platform SDK for HTTP calls
11
+ *
12
+ * Platform SDKs only need to:
13
+ * - Provide device info
14
+ * - Make HTTP calls when callback is invoked
15
+ */
16
+
17
+ #ifndef RAC_TELEMETRY_MANAGER_H
18
+ #define RAC_TELEMETRY_MANAGER_H
19
+
20
+ #include <RACommons/rac_analytics_events.h>
21
+ #include <RACommons/rac_types.h>
22
+ #include <RACommons/rac_environment.h>
23
+ #include <RACommons/rac_telemetry_types.h>
24
+
25
+ #ifdef __cplusplus
26
+ extern "C" {
27
+ #endif
28
+
29
+ // =============================================================================
30
+ // TELEMETRY MANAGER
31
+ // =============================================================================
32
+
33
+ /**
34
+ * @brief Opaque telemetry manager handle
35
+ */
36
+ typedef struct rac_telemetry_manager rac_telemetry_manager_t;
37
+
38
+ /**
39
+ * @brief HTTP request callback from C++ to platform SDK
40
+ *
41
+ * C++ builds the JSON and determines the endpoint.
42
+ * Platform SDK just makes the HTTP call.
43
+ *
44
+ * @param user_data User data provided at registration
45
+ * @param endpoint The API endpoint path (e.g., "/api/v1/sdk/telemetry")
46
+ * @param json_body The JSON request body (null-terminated string)
47
+ * @param json_length Length of JSON body
48
+ * @param requires_auth Whether request needs authentication
49
+ */
50
+ typedef void (*rac_telemetry_http_callback_t)(void* user_data, const char* endpoint,
51
+ const char* json_body, size_t json_length,
52
+ rac_bool_t requires_auth);
53
+
54
+ /**
55
+ * @brief HTTP response callback from platform SDK to C++
56
+ *
57
+ * Platform SDK calls this after HTTP completes.
58
+ *
59
+ * @param manager The telemetry manager
60
+ * @param success Whether HTTP call succeeded
61
+ * @param response_json Response JSON (can be NULL on failure)
62
+ * @param error_message Error message if failed (can be NULL)
63
+ */
64
+ RAC_API void rac_telemetry_manager_http_complete(rac_telemetry_manager_t* manager,
65
+ rac_bool_t success, const char* response_json,
66
+ const char* error_message);
67
+
68
+ // =============================================================================
69
+ // LIFECYCLE
70
+ // =============================================================================
71
+
72
+ /**
73
+ * @brief Create telemetry manager
74
+ *
75
+ * @param env SDK environment (determines endpoint and encoding)
76
+ * @param device_id Persistent device UUID (from Keychain)
77
+ * @param platform Platform string ("ios", "android", etc.)
78
+ * @param sdk_version SDK version string
79
+ * @return Manager handle or NULL on failure
80
+ */
81
+ RAC_API rac_telemetry_manager_t* rac_telemetry_manager_create(rac_environment_t env,
82
+ const char* device_id,
83
+ const char* platform,
84
+ const char* sdk_version);
85
+
86
+ /**
87
+ * @brief Destroy telemetry manager
88
+ */
89
+ RAC_API void rac_telemetry_manager_destroy(rac_telemetry_manager_t* manager);
90
+
91
+ /**
92
+ * @brief Set device info for telemetry payloads
93
+ *
94
+ * Call this after creating the manager to set device details.
95
+ */
96
+ RAC_API void rac_telemetry_manager_set_device_info(rac_telemetry_manager_t* manager,
97
+ const char* device_model,
98
+ const char* os_version);
99
+
100
+ /**
101
+ * @brief Register HTTP callback
102
+ *
103
+ * Platform SDK must register this to receive HTTP requests.
104
+ */
105
+ RAC_API void rac_telemetry_manager_set_http_callback(rac_telemetry_manager_t* manager,
106
+ rac_telemetry_http_callback_t callback,
107
+ void* user_data);
108
+
109
+ // =============================================================================
110
+ // EVENT TRACKING
111
+ // =============================================================================
112
+
113
+ /**
114
+ * @brief Track a telemetry payload directly
115
+ *
116
+ * Queues the payload for batching and sending.
117
+ */
118
+ RAC_API rac_result_t rac_telemetry_manager_track(rac_telemetry_manager_t* manager,
119
+ const rac_telemetry_payload_t* payload);
120
+
121
+ /**
122
+ * @brief Track from analytics event data
123
+ *
124
+ * Converts analytics event to telemetry payload and queues it.
125
+ */
126
+ RAC_API rac_result_t rac_telemetry_manager_track_analytics(rac_telemetry_manager_t* manager,
127
+ rac_event_type_t event_type,
128
+ const rac_analytics_event_data_t* data);
129
+
130
+ /**
131
+ * @brief Flush queued events immediately
132
+ *
133
+ * Sends all queued events to the backend.
134
+ */
135
+ RAC_API rac_result_t rac_telemetry_manager_flush(rac_telemetry_manager_t* manager);
136
+
137
+ // =============================================================================
138
+ // JSON SERIALIZATION
139
+ // =============================================================================
140
+
141
+ /**
142
+ * @brief Serialize telemetry payload to JSON
143
+ *
144
+ * @param payload The payload to serialize
145
+ * @param env Environment (affects field names and which fields to include)
146
+ * @param out_json Output: JSON string (caller must free with rac_free)
147
+ * @param out_length Output: Length of JSON string
148
+ * @return RAC_SUCCESS or error code
149
+ */
150
+ RAC_API rac_result_t rac_telemetry_manager_payload_to_json(const rac_telemetry_payload_t* payload,
151
+ rac_environment_t env, char** out_json,
152
+ size_t* out_length);
153
+
154
+ /**
155
+ * @brief Serialize batch request to JSON
156
+ *
157
+ * @param request The batch request
158
+ * @param env Environment
159
+ * @param out_json Output: JSON string (caller must free with rac_free)
160
+ * @param out_length Output: Length of JSON string
161
+ * @return RAC_SUCCESS or error code
162
+ */
163
+ RAC_API rac_result_t
164
+ rac_telemetry_manager_batch_to_json(const rac_telemetry_batch_request_t* request,
165
+ rac_environment_t env, char** out_json, size_t* out_length);
166
+
167
+ /**
168
+ * @brief Parse batch response from JSON
169
+ *
170
+ * @param json JSON response string
171
+ * @param out_response Output: Parsed response (caller must free)
172
+ * @return RAC_SUCCESS or error code
173
+ */
174
+ RAC_API rac_result_t rac_telemetry_manager_parse_response(
175
+ const char* json, rac_telemetry_batch_response_t* out_response);
176
+
177
+ // =============================================================================
178
+ // DEVICE REGISTRATION
179
+ // =============================================================================
180
+
181
+ /**
182
+ * @brief Serialize device registration request to JSON
183
+ *
184
+ * @param request The registration request
185
+ * @param env Environment
186
+ * @param out_json Output: JSON string (caller must free with rac_free)
187
+ * @param out_length Output: Length of JSON string
188
+ * @return RAC_SUCCESS or error code
189
+ */
190
+ RAC_API rac_result_t
191
+ rac_device_registration_to_json(const rac_device_registration_request_t* request,
192
+ rac_environment_t env, char** out_json, size_t* out_length);
193
+
194
+ /**
195
+ * @brief Get device registration endpoint for environment
196
+ *
197
+ * @param env Environment
198
+ * @return Endpoint path string (static, do not free)
199
+ */
200
+ RAC_API const char* rac_device_registration_endpoint(rac_environment_t env);
201
+
202
+ #ifdef __cplusplus
203
+ }
204
+ #endif
205
+
206
+ #endif // RAC_TELEMETRY_MANAGER_H
@@ -0,0 +1,234 @@
1
+ /**
2
+ * @file rac_telemetry_types.h
3
+ * @brief Telemetry data structures - canonical source of truth
4
+ *
5
+ * All telemetry payloads are defined here. Platform SDKs (Swift, Kotlin, Flutter)
6
+ * use these types directly or create thin wrappers.
7
+ *
8
+ * Mirrors Swift's TelemetryEventPayload.swift structure.
9
+ */
10
+
11
+ #ifndef RAC_TELEMETRY_TYPES_H
12
+ #define RAC_TELEMETRY_TYPES_H
13
+
14
+ #include <RACommons/rac_types.h>
15
+ #include <RACommons/rac_environment.h>
16
+
17
+ #ifdef __cplusplus
18
+ extern "C" {
19
+ #endif
20
+
21
+ // =============================================================================
22
+ // TELEMETRY EVENT PAYLOAD
23
+ // =============================================================================
24
+
25
+ /**
26
+ * @brief Complete telemetry event payload
27
+ *
28
+ * Maps to backend SDKTelemetryEvent schema with all fields for:
29
+ * - LLM events (tokens, generation times, etc.)
30
+ * - STT events (audio duration, word count, etc.)
31
+ * - TTS events (character count, audio size, etc.)
32
+ * - VAD events (speech duration)
33
+ * - Model lifecycle events (size, archive type)
34
+ * - SDK lifecycle events (count)
35
+ * - Storage events (freed bytes)
36
+ * - Network events (online status)
37
+ */
38
+ typedef struct rac_telemetry_payload {
39
+ // Required fields
40
+ const char* id; // Unique event ID (UUID)
41
+ const char* event_type; // Event type string
42
+ int64_t timestamp_ms; // Unix timestamp in milliseconds
43
+ int64_t created_at_ms; // When payload was created
44
+
45
+ // Event classification
46
+ const char* modality; // "llm", "stt", "tts", "model", "system"
47
+
48
+ // Device identification
49
+ const char* device_id; // Persistent device UUID
50
+ const char* session_id; // Optional session ID
51
+
52
+ // Model info
53
+ const char* model_id;
54
+ const char* model_name;
55
+ const char* framework; // "llamacpp", "onnx", "mlx", etc.
56
+
57
+ // Device info
58
+ const char* device; // Device model (e.g., "iPhone15,2")
59
+ const char* os_version; // OS version (e.g., "17.0")
60
+ const char* platform; // "ios", "android", "flutter"
61
+ const char* sdk_version; // SDK version string
62
+
63
+ // Common performance metrics
64
+ double processing_time_ms;
65
+ rac_bool_t success;
66
+ rac_bool_t has_success; // Whether success field is set
67
+ const char* error_message;
68
+ const char* error_code;
69
+
70
+ // LLM-specific fields
71
+ int32_t input_tokens;
72
+ int32_t output_tokens;
73
+ int32_t total_tokens;
74
+ double tokens_per_second;
75
+ double time_to_first_token_ms;
76
+ double prompt_eval_time_ms;
77
+ double generation_time_ms;
78
+ int32_t context_length;
79
+ double temperature;
80
+ int32_t max_tokens;
81
+
82
+ // STT-specific fields
83
+ double audio_duration_ms;
84
+ double real_time_factor;
85
+ int32_t word_count;
86
+ double confidence;
87
+ const char* language;
88
+ rac_bool_t is_streaming;
89
+ rac_bool_t has_is_streaming;
90
+ int32_t segment_index;
91
+
92
+ // TTS-specific fields
93
+ int32_t character_count;
94
+ double characters_per_second;
95
+ int32_t audio_size_bytes;
96
+ int32_t sample_rate;
97
+ const char* voice;
98
+ double output_duration_ms;
99
+
100
+ // Model lifecycle fields
101
+ int64_t model_size_bytes;
102
+ const char* archive_type;
103
+
104
+ // VAD fields
105
+ double speech_duration_ms;
106
+
107
+ // SDK lifecycle fields
108
+ int32_t count;
109
+
110
+ // Storage fields
111
+ int64_t freed_bytes;
112
+
113
+ // Network fields
114
+ rac_bool_t is_online;
115
+ rac_bool_t has_is_online;
116
+ } rac_telemetry_payload_t;
117
+
118
+ /**
119
+ * @brief Default/empty telemetry payload
120
+ */
121
+ RAC_API rac_telemetry_payload_t rac_telemetry_payload_default(void);
122
+
123
+ /**
124
+ * @brief Free any allocated strings in a telemetry payload
125
+ */
126
+ RAC_API void rac_telemetry_payload_free(rac_telemetry_payload_t* payload);
127
+
128
+ // =============================================================================
129
+ // TELEMETRY BATCH REQUEST
130
+ // =============================================================================
131
+
132
+ /**
133
+ * @brief Batch telemetry request for API
134
+ *
135
+ * Supports both V1 and V2 storage paths:
136
+ * - V1 (legacy): modality = NULL → stores in sdk_telemetry_events table
137
+ * - V2 (normalized): modality = "llm"/"stt"/"tts"/"model" → normalized tables
138
+ */
139
+ typedef struct rac_telemetry_batch_request {
140
+ rac_telemetry_payload_t* events;
141
+ size_t events_count;
142
+ const char* device_id;
143
+ int64_t timestamp_ms;
144
+ const char* modality; // NULL for V1, "llm"/"stt"/"tts"/"model" for V2
145
+ } rac_telemetry_batch_request_t;
146
+
147
+ /**
148
+ * @brief Batch telemetry response from API
149
+ */
150
+ typedef struct rac_telemetry_batch_response {
151
+ rac_bool_t success;
152
+ int32_t events_received;
153
+ int32_t events_stored;
154
+ int32_t events_skipped; // Duplicates skipped
155
+ const char** errors; // Array of error messages
156
+ size_t errors_count;
157
+ const char* storage_version; // "V1" or "V2"
158
+ } rac_telemetry_batch_response_t;
159
+
160
+ /**
161
+ * @brief Free batch response
162
+ */
163
+ RAC_API void rac_telemetry_batch_response_free(rac_telemetry_batch_response_t* response);
164
+
165
+ // =============================================================================
166
+ // DEVICE REGISTRATION TYPES
167
+ // =============================================================================
168
+
169
+ /**
170
+ * @brief Device information for registration (telemetry-specific)
171
+ *
172
+ * Platform-specific values are passed in from Swift/Kotlin.
173
+ * Matches backend schemas/device.py DeviceInfo schema.
174
+ * Note: Named differently from rac_device_info_t to avoid conflict.
175
+ */
176
+ typedef struct rac_device_registration_info {
177
+ // Required fields (backend schema)
178
+ const char* device_id; // Persistent UUID from Keychain/secure storage
179
+ const char* device_model; // "iPhone 16 Pro Max", "Pixel 7", etc.
180
+ const char* device_name; // User-assigned device name
181
+ const char* platform; // "ios", "android"
182
+ const char* os_version; // "17.0", "14"
183
+ const char* form_factor; // "phone", "tablet", "laptop", etc.
184
+ const char* architecture; // "arm64", "x86_64", etc.
185
+ const char* chip_name; // "A18 Pro", "Snapdragon 888", etc.
186
+ int64_t total_memory; // Total RAM in bytes
187
+ int64_t available_memory; // Available RAM in bytes
188
+ rac_bool_t has_neural_engine; // true if device has Neural Engine / NPU
189
+ int32_t neural_engine_cores; // Number of Neural Engine cores (0 if none)
190
+ const char* gpu_family; // "apple", "adreno", etc.
191
+ double battery_level; // 0.0-1.0, negative if unavailable
192
+ const char* battery_state; // "charging", "full", "unplugged", NULL if unavailable
193
+ rac_bool_t is_low_power_mode; // Low power mode enabled
194
+ int32_t core_count; // Total CPU cores
195
+ int32_t performance_cores; // Performance (P) cores
196
+ int32_t efficiency_cores; // Efficiency (E) cores
197
+ const char* device_fingerprint; // Unique device fingerprint (may be same as device_id)
198
+
199
+ // Legacy fields (for backward compatibility)
200
+ const char* device_type; // "smartphone", "tablet", etc. (deprecated - use form_factor)
201
+ const char* os_name; // "iOS", "Android" (deprecated - use platform)
202
+ int64_t total_disk_bytes;
203
+ int64_t available_disk_bytes;
204
+ const char* processor_info;
205
+ int32_t processor_count; // Deprecated - use core_count
206
+ rac_bool_t is_simulator;
207
+ const char* locale;
208
+ const char* timezone;
209
+ } rac_device_registration_info_t;
210
+
211
+ /**
212
+ * @brief Device registration request
213
+ */
214
+ typedef struct rac_device_registration_request {
215
+ rac_device_registration_info_t device_info;
216
+ const char* sdk_version;
217
+ const char* build_token; // For development mode
218
+ int64_t last_seen_at_ms;
219
+ } rac_device_registration_request_t;
220
+
221
+ /**
222
+ * @brief Device registration response
223
+ */
224
+ typedef struct rac_device_registration_response {
225
+ const char* device_id;
226
+ const char* status; // "registered" or "updated"
227
+ const char* sync_status; // "synced" or "pending"
228
+ } rac_device_registration_response_t;
229
+
230
+ #ifdef __cplusplus
231
+ }
232
+ #endif
233
+
234
+ #endif // RAC_TELEMETRY_TYPES_H
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @file rac_tts.h
3
+ * @brief RunAnywhere Commons - TTS API (Convenience Header)
4
+ *
5
+ * This header includes both types and service interface for convenience.
6
+ * For better separation of concerns, prefer including:
7
+ * - rac_tts_types.h for data structures only
8
+ * - rac_tts_service.h for the service interface
9
+ */
10
+
11
+ #ifndef RAC_TTS_H
12
+ #define RAC_TTS_H
13
+
14
+ #include <RACommons/rac_tts_service.h>
15
+ #include <RACommons/rac_tts_types.h>
16
+
17
+ #endif /* RAC_TTS_H */
@@ -0,0 +1,181 @@
1
+ /**
2
+ * @file rac_tts_analytics.h
3
+ * @brief TTS analytics service - 1:1 port of TTSAnalyticsService.swift
4
+ *
5
+ * Tracks synthesis operations and metrics.
6
+ * Lifecycle events are handled by the lifecycle manager.
7
+ *
8
+ * NOTE: Audio duration estimation assumes 16-bit PCM @ 22050Hz (standard for TTS).
9
+ * Formula: audioDurationMs = (bytes / 2) / 22050 * 1000
10
+ *
11
+ * Swift Source: Sources/RunAnywhere/Features/TTS/Analytics/TTSAnalyticsService.swift
12
+ */
13
+
14
+ #ifndef RAC_TTS_ANALYTICS_H
15
+ #define RAC_TTS_ANALYTICS_H
16
+
17
+ #include <RACommons/rac_types.h>
18
+ #include <RACommons/rac_tts_types.h>
19
+ #include <RACommons/rac_model_types.h>
20
+
21
+ #ifdef __cplusplus
22
+ extern "C" {
23
+ #endif
24
+
25
+ // =============================================================================
26
+ // TYPES
27
+ // =============================================================================
28
+
29
+ /**
30
+ * @brief Opaque handle for TTS analytics service
31
+ */
32
+ typedef struct rac_tts_analytics_s* rac_tts_analytics_handle_t;
33
+
34
+ /**
35
+ * @brief TTS metrics structure
36
+ * Mirrors Swift's TTSMetrics struct
37
+ */
38
+ typedef struct rac_tts_metrics {
39
+ /** Total number of events tracked */
40
+ int32_t total_events;
41
+
42
+ /** Start time (milliseconds since epoch) */
43
+ int64_t start_time_ms;
44
+
45
+ /** Last event time (milliseconds since epoch, 0 if no events) */
46
+ int64_t last_event_time_ms;
47
+
48
+ /** Total number of syntheses */
49
+ int32_t total_syntheses;
50
+
51
+ /** Average synthesis speed (characters processed per second) */
52
+ double average_characters_per_second;
53
+
54
+ /** Average processing time in milliseconds */
55
+ double average_processing_time_ms;
56
+
57
+ /** Average audio duration in milliseconds */
58
+ double average_audio_duration_ms;
59
+
60
+ /** Total characters processed across all syntheses */
61
+ int32_t total_characters_processed;
62
+
63
+ /** Total audio size generated in bytes */
64
+ int64_t total_audio_size_bytes;
65
+ } rac_tts_metrics_t;
66
+
67
+ // =============================================================================
68
+ // LIFECYCLE
69
+ // =============================================================================
70
+
71
+ /**
72
+ * @brief Create a TTS analytics service instance
73
+ *
74
+ * @param out_handle Output: Handle to the created service
75
+ * @return RAC_SUCCESS or error code
76
+ */
77
+ RAC_API rac_result_t rac_tts_analytics_create(rac_tts_analytics_handle_t* out_handle);
78
+
79
+ /**
80
+ * @brief Destroy a TTS analytics service instance
81
+ *
82
+ * @param handle Handle to destroy
83
+ */
84
+ RAC_API void rac_tts_analytics_destroy(rac_tts_analytics_handle_t handle);
85
+
86
+ // =============================================================================
87
+ // SYNTHESIS TRACKING
88
+ // =============================================================================
89
+
90
+ /**
91
+ * @brief Start tracking a synthesis
92
+ *
93
+ * @param handle Analytics service handle
94
+ * @param text The text to synthesize
95
+ * @param voice The voice ID being used
96
+ * @param sample_rate Audio sample rate in Hz (default: 22050)
97
+ * @param framework The inference framework being used
98
+ * @param out_synthesis_id Output: Generated unique ID (owned, must be freed with rac_free)
99
+ * @return RAC_SUCCESS or error code
100
+ */
101
+ RAC_API rac_result_t rac_tts_analytics_start_synthesis(rac_tts_analytics_handle_t handle,
102
+ const char* text, const char* voice,
103
+ int32_t sample_rate,
104
+ rac_inference_framework_t framework,
105
+ char** out_synthesis_id);
106
+
107
+ /**
108
+ * @brief Track synthesis chunk (for streaming synthesis)
109
+ *
110
+ * @param handle Analytics service handle
111
+ * @param synthesis_id The synthesis ID
112
+ * @param chunk_size Size of the chunk in bytes
113
+ * @return RAC_SUCCESS or error code
114
+ */
115
+ RAC_API rac_result_t rac_tts_analytics_track_synthesis_chunk(rac_tts_analytics_handle_t handle,
116
+ const char* synthesis_id,
117
+ int32_t chunk_size);
118
+
119
+ /**
120
+ * @brief Complete a synthesis
121
+ *
122
+ * @param handle Analytics service handle
123
+ * @param synthesis_id The synthesis ID
124
+ * @param audio_duration_ms Duration of the generated audio in milliseconds
125
+ * @param audio_size_bytes Size of the generated audio in bytes
126
+ * @return RAC_SUCCESS or error code
127
+ */
128
+ RAC_API rac_result_t rac_tts_analytics_complete_synthesis(rac_tts_analytics_handle_t handle,
129
+ const char* synthesis_id,
130
+ double audio_duration_ms,
131
+ int32_t audio_size_bytes);
132
+
133
+ /**
134
+ * @brief Track synthesis failure
135
+ *
136
+ * @param handle Analytics service handle
137
+ * @param synthesis_id The synthesis ID
138
+ * @param error_code Error code
139
+ * @param error_message Error message
140
+ * @return RAC_SUCCESS or error code
141
+ */
142
+ RAC_API rac_result_t rac_tts_analytics_track_synthesis_failed(rac_tts_analytics_handle_t handle,
143
+ const char* synthesis_id,
144
+ rac_result_t error_code,
145
+ const char* error_message);
146
+
147
+ /**
148
+ * @brief Track an error during TTS operations
149
+ *
150
+ * @param handle Analytics service handle
151
+ * @param error_code Error code
152
+ * @param error_message Error message
153
+ * @param operation Operation that failed
154
+ * @param model_id Model ID (can be NULL)
155
+ * @param synthesis_id Synthesis ID (can be NULL)
156
+ * @return RAC_SUCCESS or error code
157
+ */
158
+ RAC_API rac_result_t rac_tts_analytics_track_error(rac_tts_analytics_handle_t handle,
159
+ rac_result_t error_code,
160
+ const char* error_message, const char* operation,
161
+ const char* model_id, const char* synthesis_id);
162
+
163
+ // =============================================================================
164
+ // METRICS
165
+ // =============================================================================
166
+
167
+ /**
168
+ * @brief Get current analytics metrics
169
+ *
170
+ * @param handle Analytics service handle
171
+ * @param out_metrics Output: Metrics structure
172
+ * @return RAC_SUCCESS or error code
173
+ */
174
+ RAC_API rac_result_t rac_tts_analytics_get_metrics(rac_tts_analytics_handle_t handle,
175
+ rac_tts_metrics_t* out_metrics);
176
+
177
+ #ifdef __cplusplus
178
+ }
179
+ #endif
180
+
181
+ #endif /* RAC_TTS_ANALYTICS_H */