@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,264 @@
1
+ /**
2
+ * @file rac_types.h
3
+ * @brief RunAnywhere Commons - Common Types and Definitions
4
+ *
5
+ * This header defines common types, handle types, and macros used throughout
6
+ * the runanywhere-commons library. All types use the RAC_ prefix to distinguish
7
+ * from the underlying runanywhere-core (ra_*) types.
8
+ */
9
+
10
+ #ifndef RAC_TYPES_H
11
+ #define RAC_TYPES_H
12
+
13
+ #include <stddef.h>
14
+ #include <stdint.h>
15
+
16
+ /**
17
+ * Null pointer macro for use in static initializers.
18
+ * Uses nullptr in C++ (preferred by clang-tidy modernize-use-nullptr)
19
+ * and NULL in C for compatibility.
20
+ */
21
+ #ifdef __cplusplus
22
+ #define RAC_NULL nullptr
23
+ #else
24
+ #define RAC_NULL NULL
25
+ #endif
26
+
27
+ #ifdef __cplusplus
28
+ extern "C" {
29
+ #endif
30
+
31
+ // =============================================================================
32
+ // API VISIBILITY MACROS
33
+ // =============================================================================
34
+ //
35
+ // RAC_API marks functions that must be visible to FFI (dlsym).
36
+ //
37
+ // CRITICAL: For iOS/Android Flutter FFI, symbols MUST have public visibility
38
+ // even when statically linked. dlsym(RTLD_DEFAULT, ...) can only find symbols
39
+ // with "external" visibility, not "private external".
40
+ //
41
+ // Without visibility("default"), static library symbols get "private external"
42
+ // visibility (due to -fvisibility=hidden), which becomes "non-external" (local)
43
+ // in the final binary - breaking FFI symbol lookup.
44
+ // =============================================================================
45
+
46
+ #if defined(_WIN32)
47
+ #if defined(RAC_BUILDING_SHARED)
48
+ #define RAC_API __declspec(dllexport)
49
+ #elif defined(RAC_USING_SHARED)
50
+ #define RAC_API __declspec(dllimport)
51
+ #else
52
+ #define RAC_API
53
+ #endif
54
+ #elif defined(__GNUC__) || defined(__clang__)
55
+ // Always use default visibility for FFI compatibility
56
+ // This ensures dlsym() can find symbols even in static libraries
57
+ #define RAC_API __attribute__((visibility("default")))
58
+ #else
59
+ #define RAC_API
60
+ #endif
61
+
62
+ // =============================================================================
63
+ // RESULT TYPE
64
+ // =============================================================================
65
+
66
+ /**
67
+ * Result type for all RAC functions.
68
+ * - 0 indicates success
69
+ * - Negative values indicate errors (see rac_error.h)
70
+ *
71
+ * Error code ranges:
72
+ * - runanywhere-core (ra_*): 0 to -99
73
+ * - runanywhere-commons (rac_*): -100 to -999
74
+ */
75
+ typedef int32_t rac_result_t;
76
+
77
+ /** Success result */
78
+ #define RAC_SUCCESS ((rac_result_t)0)
79
+
80
+ // =============================================================================
81
+ // BOOLEAN TYPE
82
+ // =============================================================================
83
+
84
+ /** Boolean type for C compatibility */
85
+ typedef int32_t rac_bool_t;
86
+
87
+ #define RAC_TRUE ((rac_bool_t)1)
88
+ #define RAC_FALSE ((rac_bool_t)0)
89
+
90
+ // =============================================================================
91
+ // HANDLE TYPES
92
+ // =============================================================================
93
+
94
+ /**
95
+ * Opaque handle for internal objects.
96
+ * Handles should be treated as opaque pointers.
97
+ */
98
+ typedef void* rac_handle_t;
99
+
100
+ /** Invalid handle value */
101
+ #define RAC_INVALID_HANDLE ((rac_handle_t)NULL)
102
+
103
+ // =============================================================================
104
+ // STRING TYPES
105
+ // =============================================================================
106
+
107
+ /**
108
+ * String view (non-owning reference to a string).
109
+ * The string is NOT guaranteed to be null-terminated.
110
+ */
111
+ typedef struct rac_string_view {
112
+ const char* data; /**< Pointer to string data */
113
+ size_t length; /**< Length in bytes (not including any null terminator) */
114
+ } rac_string_view_t;
115
+
116
+ /**
117
+ * Creates a string view from a null-terminated C string.
118
+ */
119
+ #define RAC_STRING_VIEW(s) ((rac_string_view_t){(s), (s) ? strlen(s) : 0})
120
+
121
+ // =============================================================================
122
+ // AUDIO TYPES
123
+ // =============================================================================
124
+
125
+ /**
126
+ * Audio buffer for STT/VAD operations.
127
+ * Contains PCM float samples in the range [-1.0, 1.0].
128
+ */
129
+ typedef struct rac_audio_buffer {
130
+ const float* samples; /**< PCM float samples */
131
+ size_t num_samples; /**< Number of samples */
132
+ int32_t sample_rate; /**< Sample rate in Hz (e.g., 16000) */
133
+ int32_t channels; /**< Number of channels (1 = mono, 2 = stereo) */
134
+ } rac_audio_buffer_t;
135
+
136
+ /**
137
+ * Audio format specification.
138
+ */
139
+ typedef struct rac_audio_format {
140
+ int32_t sample_rate; /**< Sample rate in Hz */
141
+ int32_t channels; /**< Number of channels */
142
+ int32_t bits_per_sample; /**< Bits per sample (16 or 32) */
143
+ } rac_audio_format_t;
144
+
145
+ // =============================================================================
146
+ // MEMORY INFO
147
+ // =============================================================================
148
+
149
+ /**
150
+ * Memory information structure.
151
+ * Used by the platform adapter to report available memory.
152
+ */
153
+ typedef struct rac_memory_info {
154
+ uint64_t total_bytes; /**< Total physical memory in bytes */
155
+ uint64_t available_bytes; /**< Available memory in bytes */
156
+ uint64_t used_bytes; /**< Used memory in bytes */
157
+ } rac_memory_info_t;
158
+
159
+ // =============================================================================
160
+ // CAPABILITY TYPES
161
+ // =============================================================================
162
+
163
+ /**
164
+ * Capability types supported by backends.
165
+ * These match the capabilities defined in runanywhere-core.
166
+ */
167
+ typedef enum rac_capability {
168
+ RAC_CAPABILITY_UNKNOWN = 0,
169
+ RAC_CAPABILITY_TEXT_GENERATION = 1, /**< LLM text generation */
170
+ RAC_CAPABILITY_EMBEDDINGS = 2, /**< Text embeddings */
171
+ RAC_CAPABILITY_STT = 3, /**< Speech-to-text */
172
+ RAC_CAPABILITY_TTS = 4, /**< Text-to-speech */
173
+ RAC_CAPABILITY_VAD = 5, /**< Voice activity detection */
174
+ RAC_CAPABILITY_DIARIZATION = 6, /**< Speaker diarization */
175
+ } rac_capability_t;
176
+
177
+ /**
178
+ * Device type for backend execution.
179
+ */
180
+ typedef enum rac_device {
181
+ RAC_DEVICE_CPU = 0,
182
+ RAC_DEVICE_GPU = 1,
183
+ RAC_DEVICE_NPU = 2,
184
+ RAC_DEVICE_AUTO = 3,
185
+ } rac_device_t;
186
+
187
+ // =============================================================================
188
+ // LOG LEVELS
189
+ // =============================================================================
190
+
191
+ /**
192
+ * Log level for the logging callback.
193
+ */
194
+ typedef enum rac_log_level {
195
+ RAC_LOG_TRACE = 0,
196
+ RAC_LOG_DEBUG = 1,
197
+ RAC_LOG_INFO = 2,
198
+ RAC_LOG_WARNING = 3,
199
+ RAC_LOG_ERROR = 4,
200
+ RAC_LOG_FATAL = 5,
201
+ } rac_log_level_t;
202
+
203
+ // =============================================================================
204
+ // VERSION INFO
205
+ // =============================================================================
206
+
207
+ /**
208
+ * Version information structure.
209
+ */
210
+ typedef struct rac_version {
211
+ uint16_t major;
212
+ uint16_t minor;
213
+ uint16_t patch;
214
+ const char* string; /**< Version string (e.g., "1.0.0") */
215
+ } rac_version_t;
216
+
217
+ // =============================================================================
218
+ // UTILITY MACROS
219
+ // =============================================================================
220
+
221
+ /** Check if a result is a success */
222
+ #define RAC_SUCCEEDED(result) ((result) >= 0)
223
+
224
+ /** Check if a result is an error */
225
+ #define RAC_FAILED(result) ((result) < 0)
226
+
227
+ /** Check if a handle is valid */
228
+ #define RAC_IS_VALID_HANDLE(handle) ((handle) != RAC_INVALID_HANDLE)
229
+
230
+ // =============================================================================
231
+ // MEMORY MANAGEMENT
232
+ // =============================================================================
233
+
234
+ /**
235
+ * Frees memory allocated by RAC functions.
236
+ *
237
+ * Use this to free strings and buffers returned by RAC functions that
238
+ * are marked as "must be freed with rac_free".
239
+ *
240
+ * @param ptr Pointer to memory to free (can be NULL)
241
+ */
242
+ RAC_API void rac_free(void* ptr);
243
+
244
+ /**
245
+ * Allocates memory using the RAC allocator.
246
+ *
247
+ * @param size Number of bytes to allocate
248
+ * @return Pointer to allocated memory, or NULL on failure
249
+ */
250
+ RAC_API void* rac_alloc(size_t size);
251
+
252
+ /**
253
+ * Duplicates a null-terminated string.
254
+ *
255
+ * @param str String to duplicate (can be NULL)
256
+ * @return Duplicated string (must be freed with rac_free), or NULL if str is NULL
257
+ */
258
+ RAC_API char* rac_strdup(const char* str);
259
+
260
+ #ifdef __cplusplus
261
+ }
262
+ #endif
263
+
264
+ #endif /* RAC_TYPES_H */
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @file rac_llm.h
3
+ * @brief RunAnywhere Commons - LLM 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_llm_types.h for data structures only
8
+ * - rac_llm_service.h for the service interface
9
+ */
10
+
11
+ #ifndef RAC_LLM_H
12
+ #define RAC_LLM_H
13
+
14
+ #include "rac/features/llm/rac_llm_service.h"
15
+ #include "rac/features/llm/rac_llm_types.h"
16
+
17
+ #endif /* RAC_LLM_H */
@@ -0,0 +1,188 @@
1
+ /**
2
+ * @file rac_llm_analytics.h
3
+ * @brief LLM Generation analytics service - 1:1 port of GenerationAnalyticsService.swift
4
+ *
5
+ * Tracks generation operations and metrics.
6
+ * Lifecycle events are handled by the lifecycle manager.
7
+ *
8
+ * NOTE: Token estimation uses ~4 chars/token (approximation, not exact tokenizer count).
9
+ * Actual token counts may vary depending on the model's tokenizer and input content.
10
+ *
11
+ * Swift Source: Sources/RunAnywhere/Features/LLM/Analytics/GenerationAnalyticsService.swift
12
+ */
13
+
14
+ #ifndef RAC_LLM_ANALYTICS_H
15
+ #define RAC_LLM_ANALYTICS_H
16
+
17
+ #include "rac/core/rac_types.h"
18
+ #include "rac/features/llm/rac_llm_metrics.h"
19
+ #include "rac/features/llm/rac_llm_types.h"
20
+ #include "rac/infrastructure/model_management/rac_model_types.h"
21
+
22
+ #ifdef __cplusplus
23
+ extern "C" {
24
+ #endif
25
+
26
+ // =============================================================================
27
+ // TYPES
28
+ // =============================================================================
29
+
30
+ /**
31
+ * @brief Opaque handle for LLM analytics service
32
+ */
33
+ typedef struct rac_llm_analytics_s* rac_llm_analytics_handle_t;
34
+
35
+ // Note: rac_generation_metrics_t is defined in rac_llm_metrics.h
36
+
37
+ // =============================================================================
38
+ // LIFECYCLE
39
+ // =============================================================================
40
+
41
+ /**
42
+ * @brief Create an LLM analytics service instance
43
+ *
44
+ * @param out_handle Output: Handle to the created service
45
+ * @return RAC_SUCCESS or error code
46
+ */
47
+ RAC_API rac_result_t rac_llm_analytics_create(rac_llm_analytics_handle_t* out_handle);
48
+
49
+ /**
50
+ * @brief Destroy an LLM analytics service instance
51
+ *
52
+ * @param handle Handle to destroy
53
+ */
54
+ RAC_API void rac_llm_analytics_destroy(rac_llm_analytics_handle_t handle);
55
+
56
+ // =============================================================================
57
+ // GENERATION TRACKING
58
+ // =============================================================================
59
+
60
+ /**
61
+ * @brief Start tracking a non-streaming generation
62
+ *
63
+ * Mirrors Swift's startGeneration()
64
+ *
65
+ * @param handle Analytics service handle
66
+ * @param model_id The model ID being used
67
+ * @param framework The inference framework type (can be RAC_INFERENCE_FRAMEWORK_UNKNOWN)
68
+ * @param temperature Generation temperature (NULL for default)
69
+ * @param max_tokens Maximum tokens to generate (NULL for default)
70
+ * @param context_length Context window size (NULL for default)
71
+ * @param out_generation_id Output: Generated unique ID (owned, must be freed with rac_free)
72
+ * @return RAC_SUCCESS or error code
73
+ */
74
+ RAC_API rac_result_t rac_llm_analytics_start_generation(
75
+ rac_llm_analytics_handle_t handle, const char* model_id, rac_inference_framework_t framework,
76
+ const float* temperature, const int32_t* max_tokens, const int32_t* context_length,
77
+ char** out_generation_id);
78
+
79
+ /**
80
+ * @brief Start tracking a streaming generation
81
+ *
82
+ * Mirrors Swift's startStreamingGeneration()
83
+ *
84
+ * @param handle Analytics service handle
85
+ * @param model_id The model ID being used
86
+ * @param framework The inference framework type
87
+ * @param temperature Generation temperature (NULL for default)
88
+ * @param max_tokens Maximum tokens to generate (NULL for default)
89
+ * @param context_length Context window size (NULL for default)
90
+ * @param out_generation_id Output: Generated unique ID (owned, must be freed with rac_free)
91
+ * @return RAC_SUCCESS or error code
92
+ */
93
+ RAC_API rac_result_t rac_llm_analytics_start_streaming_generation(
94
+ rac_llm_analytics_handle_t handle, const char* model_id, rac_inference_framework_t framework,
95
+ const float* temperature, const int32_t* max_tokens, const int32_t* context_length,
96
+ char** out_generation_id);
97
+
98
+ /**
99
+ * @brief Track first token for streaming generation (TTFT metric)
100
+ *
101
+ * Only applicable for streaming generations. Call is ignored for non-streaming.
102
+ *
103
+ * @param handle Analytics service handle
104
+ * @param generation_id The generation ID from start_streaming_generation
105
+ * @return RAC_SUCCESS or error code
106
+ */
107
+ RAC_API rac_result_t rac_llm_analytics_track_first_token(rac_llm_analytics_handle_t handle,
108
+ const char* generation_id);
109
+
110
+ /**
111
+ * @brief Track streaming update (analytics only)
112
+ *
113
+ * Only applicable for streaming generations.
114
+ *
115
+ * @param handle Analytics service handle
116
+ * @param generation_id The generation ID
117
+ * @param tokens_generated Number of tokens generated so far
118
+ * @return RAC_SUCCESS or error code
119
+ */
120
+ RAC_API rac_result_t rac_llm_analytics_track_streaming_update(rac_llm_analytics_handle_t handle,
121
+ const char* generation_id,
122
+ int32_t tokens_generated);
123
+
124
+ /**
125
+ * @brief Complete a generation (works for both streaming and non-streaming)
126
+ *
127
+ * @param handle Analytics service handle
128
+ * @param generation_id The generation ID
129
+ * @param input_tokens Number of input tokens processed
130
+ * @param output_tokens Number of output tokens generated
131
+ * @param model_id The model ID used
132
+ * @return RAC_SUCCESS or error code
133
+ */
134
+ RAC_API rac_result_t rac_llm_analytics_complete_generation(rac_llm_analytics_handle_t handle,
135
+ const char* generation_id,
136
+ int32_t input_tokens,
137
+ int32_t output_tokens,
138
+ const char* model_id);
139
+
140
+ /**
141
+ * @brief Track generation failure
142
+ *
143
+ * @param handle Analytics service handle
144
+ * @param generation_id The generation ID
145
+ * @param error_code Error code
146
+ * @param error_message Error message
147
+ * @return RAC_SUCCESS or error code
148
+ */
149
+ RAC_API rac_result_t rac_llm_analytics_track_generation_failed(rac_llm_analytics_handle_t handle,
150
+ const char* generation_id,
151
+ rac_result_t error_code,
152
+ const char* error_message);
153
+
154
+ /**
155
+ * @brief Track an error during LLM operations
156
+ *
157
+ * @param handle Analytics service handle
158
+ * @param error_code Error code
159
+ * @param error_message Error message
160
+ * @param operation Operation that failed
161
+ * @param model_id Model ID (can be NULL)
162
+ * @param generation_id Generation ID (can be NULL)
163
+ * @return RAC_SUCCESS or error code
164
+ */
165
+ RAC_API rac_result_t rac_llm_analytics_track_error(rac_llm_analytics_handle_t handle,
166
+ rac_result_t error_code,
167
+ const char* error_message, const char* operation,
168
+ const char* model_id, const char* generation_id);
169
+
170
+ // =============================================================================
171
+ // METRICS
172
+ // =============================================================================
173
+
174
+ /**
175
+ * @brief Get current analytics metrics
176
+ *
177
+ * @param handle Analytics service handle
178
+ * @param out_metrics Output: Metrics structure
179
+ * @return RAC_SUCCESS or error code
180
+ */
181
+ RAC_API rac_result_t rac_llm_analytics_get_metrics(rac_llm_analytics_handle_t handle,
182
+ rac_generation_metrics_t* out_metrics);
183
+
184
+ #ifdef __cplusplus
185
+ }
186
+ #endif
187
+
188
+ #endif /* RAC_LLM_ANALYTICS_H */
@@ -0,0 +1,228 @@
1
+ /**
2
+ * @file rac_llm_component.h
3
+ * @brief RunAnywhere Commons - LLM Capability Component
4
+ *
5
+ * C port of Swift's LLMCapability.swift from:
6
+ * Sources/RunAnywhere/Features/LLM/LLMCapability.swift
7
+ *
8
+ * Actor-based LLM capability that owns model lifecycle and generation.
9
+ * Uses lifecycle manager for unified lifecycle + analytics handling.
10
+ */
11
+
12
+ #ifndef RAC_LLM_COMPONENT_H
13
+ #define RAC_LLM_COMPONENT_H
14
+
15
+ #include "rac/core/capabilities/rac_lifecycle.h"
16
+ #include "rac/core/rac_error.h"
17
+ #include "rac/features/llm/rac_llm_types.h"
18
+
19
+ #ifdef __cplusplus
20
+ extern "C" {
21
+ #endif
22
+
23
+ // NOTE: rac_llm_config_t is defined in rac_llm_types.h (included above)
24
+
25
+ // =============================================================================
26
+ // STREAMING CALLBACKS - For component-level streaming
27
+ // =============================================================================
28
+
29
+ /**
30
+ * @brief Streaming callback for token-by-token generation
31
+ *
32
+ * @param token The generated token
33
+ * @param user_data User-provided context
34
+ * @return RAC_TRUE to continue, RAC_FALSE to stop
35
+ */
36
+ typedef rac_bool_t (*rac_llm_component_token_callback_fn)(const char* token, void* user_data);
37
+
38
+ /**
39
+ * @brief Streaming completion callback
40
+ *
41
+ * Called when streaming is complete with final metrics.
42
+ *
43
+ * @param result Final generation result with metrics
44
+ * @param user_data User-provided context
45
+ */
46
+ typedef void (*rac_llm_component_complete_callback_fn)(const rac_llm_result_t* result,
47
+ void* user_data);
48
+
49
+ /**
50
+ * @brief Streaming error callback
51
+ *
52
+ * Called if streaming fails.
53
+ *
54
+ * @param error_code Error code
55
+ * @param error_message Error message
56
+ * @param user_data User-provided context
57
+ */
58
+ typedef void (*rac_llm_component_error_callback_fn)(rac_result_t error_code,
59
+ const char* error_message, void* user_data);
60
+
61
+ // =============================================================================
62
+ // LLM COMPONENT API - Mirrors Swift's LLMCapability
63
+ // =============================================================================
64
+
65
+ /**
66
+ * @brief Create an LLM capability component
67
+ *
68
+ * Mirrors Swift's LLMCapability.init()
69
+ *
70
+ * @param out_handle Output: Handle to the component
71
+ * @return RAC_SUCCESS or error code
72
+ */
73
+ RAC_API rac_result_t rac_llm_component_create(rac_handle_t* out_handle);
74
+
75
+ /**
76
+ * @brief Configure the LLM component
77
+ *
78
+ * Mirrors Swift's LLMCapability.configure(_:)
79
+ *
80
+ * @param handle Component handle
81
+ * @param config Configuration
82
+ * @return RAC_SUCCESS or error code
83
+ */
84
+ RAC_API rac_result_t rac_llm_component_configure(rac_handle_t handle,
85
+ const rac_llm_config_t* config);
86
+
87
+ /**
88
+ * @brief Check if model is loaded
89
+ *
90
+ * Mirrors Swift's LLMCapability.isModelLoaded
91
+ *
92
+ * @param handle Component handle
93
+ * @return RAC_TRUE if loaded, RAC_FALSE otherwise
94
+ */
95
+ RAC_API rac_bool_t rac_llm_component_is_loaded(rac_handle_t handle);
96
+
97
+ /**
98
+ * @brief Get current model ID
99
+ *
100
+ * Mirrors Swift's LLMCapability.currentModelId
101
+ *
102
+ * @param handle Component handle
103
+ * @return Current model ID (NULL if not loaded)
104
+ */
105
+ RAC_API const char* rac_llm_component_get_model_id(rac_handle_t handle);
106
+
107
+ /**
108
+ * @brief Load a model
109
+ *
110
+ * Mirrors Swift's LLMCapability.loadModel(_:)
111
+ *
112
+ * @param handle Component handle
113
+ * @param model_path File path to the model (used for loading) - REQUIRED
114
+ * @param model_id Model identifier for telemetry (e.g., "smollm2-360m-q8_0")
115
+ * Optional: if NULL, defaults to model_path
116
+ * @param model_name Human-readable model name (e.g., "SmolLM2 360M Q8_0")
117
+ * Optional: if NULL, defaults to model_id
118
+ * @return RAC_SUCCESS or error code
119
+ */
120
+ RAC_API rac_result_t rac_llm_component_load_model(rac_handle_t handle, const char* model_path,
121
+ const char* model_id, const char* model_name);
122
+
123
+ /**
124
+ * @brief Unload the current model
125
+ *
126
+ * Mirrors Swift's LLMCapability.unload()
127
+ *
128
+ * @param handle Component handle
129
+ * @return RAC_SUCCESS or error code
130
+ */
131
+ RAC_API rac_result_t rac_llm_component_unload(rac_handle_t handle);
132
+
133
+ /**
134
+ * @brief Cleanup and reset the component
135
+ *
136
+ * Mirrors Swift's LLMCapability.cleanup()
137
+ *
138
+ * @param handle Component handle
139
+ * @return RAC_SUCCESS or error code
140
+ */
141
+ RAC_API rac_result_t rac_llm_component_cleanup(rac_handle_t handle);
142
+
143
+ /**
144
+ * @brief Cancel ongoing generation
145
+ *
146
+ * Mirrors Swift's LLMCapability.cancel()
147
+ * Best-effort cancellation.
148
+ *
149
+ * @param handle Component handle
150
+ * @return RAC_SUCCESS or error code
151
+ */
152
+ RAC_API rac_result_t rac_llm_component_cancel(rac_handle_t handle);
153
+
154
+ /**
155
+ * @brief Generate text (non-streaming)
156
+ *
157
+ * Mirrors Swift's LLMCapability.generate(_:options:)
158
+ *
159
+ * @param handle Component handle
160
+ * @param prompt Input prompt
161
+ * @param options Generation options (can be NULL for defaults)
162
+ * @param out_result Output: Generation result
163
+ * @return RAC_SUCCESS or error code
164
+ */
165
+ RAC_API rac_result_t rac_llm_component_generate(rac_handle_t handle, const char* prompt,
166
+ const rac_llm_options_t* options,
167
+ rac_llm_result_t* out_result);
168
+
169
+ /**
170
+ * @brief Check if streaming is supported
171
+ *
172
+ * Mirrors Swift's LLMCapability.supportsStreaming
173
+ *
174
+ * @param handle Component handle
175
+ * @return RAC_TRUE if streaming supported, RAC_FALSE otherwise
176
+ */
177
+ RAC_API rac_bool_t rac_llm_component_supports_streaming(rac_handle_t handle);
178
+
179
+ /**
180
+ * @brief Generate text with streaming
181
+ *
182
+ * Mirrors Swift's LLMCapability.generateStream(_:options:)
183
+ *
184
+ * @param handle Component handle
185
+ * @param prompt Input prompt
186
+ * @param options Generation options (can be NULL for defaults)
187
+ * @param token_callback Called for each generated token
188
+ * @param complete_callback Called when generation completes
189
+ * @param error_callback Called on error
190
+ * @param user_data User context passed to callbacks
191
+ * @return RAC_SUCCESS or error code
192
+ */
193
+ RAC_API rac_result_t rac_llm_component_generate_stream(
194
+ rac_handle_t handle, const char* prompt, const rac_llm_options_t* options,
195
+ rac_llm_component_token_callback_fn token_callback,
196
+ rac_llm_component_complete_callback_fn complete_callback,
197
+ rac_llm_component_error_callback_fn error_callback, void* user_data);
198
+
199
+ /**
200
+ * @brief Get lifecycle state
201
+ *
202
+ * @param handle Component handle
203
+ * @return Current lifecycle state
204
+ */
205
+ RAC_API rac_lifecycle_state_t rac_llm_component_get_state(rac_handle_t handle);
206
+
207
+ /**
208
+ * @brief Get lifecycle metrics
209
+ *
210
+ * @param handle Component handle
211
+ * @param out_metrics Output: Lifecycle metrics
212
+ * @return RAC_SUCCESS or error code
213
+ */
214
+ RAC_API rac_result_t rac_llm_component_get_metrics(rac_handle_t handle,
215
+ rac_lifecycle_metrics_t* out_metrics);
216
+
217
+ /**
218
+ * @brief Destroy the LLM component
219
+ *
220
+ * @param handle Component handle
221
+ */
222
+ RAC_API void rac_llm_component_destroy(rac_handle_t handle);
223
+
224
+ #ifdef __cplusplus
225
+ }
226
+ #endif
227
+
228
+ #endif /* RAC_LLM_COMPONENT_H */