@runanywhere/web 0.1.0-beta.1

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 (205) hide show
  1. package/README.md +795 -0
  2. package/dist/Foundation/ErrorTypes.d.ts +61 -0
  3. package/dist/Foundation/ErrorTypes.d.ts.map +1 -0
  4. package/dist/Foundation/ErrorTypes.js +90 -0
  5. package/dist/Foundation/ErrorTypes.js.map +1 -0
  6. package/dist/Foundation/EventBus.d.ts +171 -0
  7. package/dist/Foundation/EventBus.d.ts.map +1 -0
  8. package/dist/Foundation/EventBus.js +113 -0
  9. package/dist/Foundation/EventBus.js.map +1 -0
  10. package/dist/Foundation/PlatformAdapter.d.ts +101 -0
  11. package/dist/Foundation/PlatformAdapter.d.ts.map +1 -0
  12. package/dist/Foundation/PlatformAdapter.js +417 -0
  13. package/dist/Foundation/PlatformAdapter.js.map +1 -0
  14. package/dist/Foundation/SDKLogger.d.ts +33 -0
  15. package/dist/Foundation/SDKLogger.d.ts.map +1 -0
  16. package/dist/Foundation/SDKLogger.js +82 -0
  17. package/dist/Foundation/SDKLogger.js.map +1 -0
  18. package/dist/Foundation/SherpaONNXBridge.d.ts +134 -0
  19. package/dist/Foundation/SherpaONNXBridge.d.ts.map +1 -0
  20. package/dist/Foundation/SherpaONNXBridge.js +332 -0
  21. package/dist/Foundation/SherpaONNXBridge.js.map +1 -0
  22. package/dist/Foundation/StructOffsets.d.ts +147 -0
  23. package/dist/Foundation/StructOffsets.d.ts.map +1 -0
  24. package/dist/Foundation/StructOffsets.js +161 -0
  25. package/dist/Foundation/StructOffsets.js.map +1 -0
  26. package/dist/Foundation/WASMBridge.d.ts +241 -0
  27. package/dist/Foundation/WASMBridge.d.ts.map +1 -0
  28. package/dist/Foundation/WASMBridge.js +393 -0
  29. package/dist/Foundation/WASMBridge.js.map +1 -0
  30. package/dist/Infrastructure/ArchiveUtility.d.ts +25 -0
  31. package/dist/Infrastructure/ArchiveUtility.d.ts.map +1 -0
  32. package/dist/Infrastructure/ArchiveUtility.js +139 -0
  33. package/dist/Infrastructure/ArchiveUtility.js.map +1 -0
  34. package/dist/Infrastructure/AudioCapture.d.ts +87 -0
  35. package/dist/Infrastructure/AudioCapture.d.ts.map +1 -0
  36. package/dist/Infrastructure/AudioCapture.js +231 -0
  37. package/dist/Infrastructure/AudioCapture.js.map +1 -0
  38. package/dist/Infrastructure/AudioPlayback.d.ts +53 -0
  39. package/dist/Infrastructure/AudioPlayback.d.ts.map +1 -0
  40. package/dist/Infrastructure/AudioPlayback.js +117 -0
  41. package/dist/Infrastructure/AudioPlayback.js.map +1 -0
  42. package/dist/Infrastructure/DeviceCapabilities.d.ts +39 -0
  43. package/dist/Infrastructure/DeviceCapabilities.d.ts.map +1 -0
  44. package/dist/Infrastructure/DeviceCapabilities.js +111 -0
  45. package/dist/Infrastructure/DeviceCapabilities.js.map +1 -0
  46. package/dist/Infrastructure/ExtensionRegistry.d.ts +30 -0
  47. package/dist/Infrastructure/ExtensionRegistry.d.ts.map +1 -0
  48. package/dist/Infrastructure/ExtensionRegistry.js +41 -0
  49. package/dist/Infrastructure/ExtensionRegistry.js.map +1 -0
  50. package/dist/Infrastructure/ModelDownloader.d.ts +98 -0
  51. package/dist/Infrastructure/ModelDownloader.d.ts.map +1 -0
  52. package/dist/Infrastructure/ModelDownloader.js +431 -0
  53. package/dist/Infrastructure/ModelDownloader.js.map +1 -0
  54. package/dist/Infrastructure/ModelLoaderTypes.d.ts +34 -0
  55. package/dist/Infrastructure/ModelLoaderTypes.d.ts.map +1 -0
  56. package/dist/Infrastructure/ModelLoaderTypes.js +12 -0
  57. package/dist/Infrastructure/ModelLoaderTypes.js.map +1 -0
  58. package/dist/Infrastructure/ModelManager.d.ts +219 -0
  59. package/dist/Infrastructure/ModelManager.d.ts.map +1 -0
  60. package/dist/Infrastructure/ModelManager.js +885 -0
  61. package/dist/Infrastructure/ModelManager.js.map +1 -0
  62. package/dist/Infrastructure/ModelRegistry.d.ts +131 -0
  63. package/dist/Infrastructure/ModelRegistry.d.ts.map +1 -0
  64. package/dist/Infrastructure/ModelRegistry.js +122 -0
  65. package/dist/Infrastructure/ModelRegistry.js.map +1 -0
  66. package/dist/Infrastructure/OPFSStorage.d.ts +143 -0
  67. package/dist/Infrastructure/OPFSStorage.d.ts.map +1 -0
  68. package/dist/Infrastructure/OPFSStorage.js +330 -0
  69. package/dist/Infrastructure/OPFSStorage.js.map +1 -0
  70. package/dist/Infrastructure/VLMWorkerBridge.d.ts +211 -0
  71. package/dist/Infrastructure/VLMWorkerBridge.d.ts.map +1 -0
  72. package/dist/Infrastructure/VLMWorkerBridge.js +264 -0
  73. package/dist/Infrastructure/VLMWorkerBridge.js.map +1 -0
  74. package/dist/Infrastructure/VLMWorkerRuntime.d.ts +38 -0
  75. package/dist/Infrastructure/VLMWorkerRuntime.d.ts.map +1 -0
  76. package/dist/Infrastructure/VLMWorkerRuntime.js +503 -0
  77. package/dist/Infrastructure/VLMWorkerRuntime.js.map +1 -0
  78. package/dist/Infrastructure/VideoCapture.d.ts +118 -0
  79. package/dist/Infrastructure/VideoCapture.d.ts.map +1 -0
  80. package/dist/Infrastructure/VideoCapture.js +207 -0
  81. package/dist/Infrastructure/VideoCapture.js.map +1 -0
  82. package/dist/Public/Extensions/DiffusionTypes.d.ts +64 -0
  83. package/dist/Public/Extensions/DiffusionTypes.d.ts.map +1 -0
  84. package/dist/Public/Extensions/DiffusionTypes.js +28 -0
  85. package/dist/Public/Extensions/DiffusionTypes.js.map +1 -0
  86. package/dist/Public/Extensions/EmbeddingsTypes.d.ts +33 -0
  87. package/dist/Public/Extensions/EmbeddingsTypes.d.ts.map +1 -0
  88. package/dist/Public/Extensions/EmbeddingsTypes.js +13 -0
  89. package/dist/Public/Extensions/EmbeddingsTypes.js.map +1 -0
  90. package/dist/Public/Extensions/RunAnywhere+Diffusion.d.ts +44 -0
  91. package/dist/Public/Extensions/RunAnywhere+Diffusion.d.ts.map +1 -0
  92. package/dist/Public/Extensions/RunAnywhere+Diffusion.js +189 -0
  93. package/dist/Public/Extensions/RunAnywhere+Diffusion.js.map +1 -0
  94. package/dist/Public/Extensions/RunAnywhere+Embeddings.d.ts +56 -0
  95. package/dist/Public/Extensions/RunAnywhere+Embeddings.d.ts.map +1 -0
  96. package/dist/Public/Extensions/RunAnywhere+Embeddings.js +240 -0
  97. package/dist/Public/Extensions/RunAnywhere+Embeddings.js.map +1 -0
  98. package/dist/Public/Extensions/RunAnywhere+ModelManagement.d.ts +53 -0
  99. package/dist/Public/Extensions/RunAnywhere+ModelManagement.d.ts.map +1 -0
  100. package/dist/Public/Extensions/RunAnywhere+ModelManagement.js +153 -0
  101. package/dist/Public/Extensions/RunAnywhere+ModelManagement.js.map +1 -0
  102. package/dist/Public/Extensions/RunAnywhere+STT.d.ts +95 -0
  103. package/dist/Public/Extensions/RunAnywhere+STT.d.ts.map +1 -0
  104. package/dist/Public/Extensions/RunAnywhere+STT.js +417 -0
  105. package/dist/Public/Extensions/RunAnywhere+STT.js.map +1 -0
  106. package/dist/Public/Extensions/RunAnywhere+StructuredOutput.d.ts +69 -0
  107. package/dist/Public/Extensions/RunAnywhere+StructuredOutput.d.ts.map +1 -0
  108. package/dist/Public/Extensions/RunAnywhere+StructuredOutput.js +196 -0
  109. package/dist/Public/Extensions/RunAnywhere+StructuredOutput.js.map +1 -0
  110. package/dist/Public/Extensions/RunAnywhere+TTS.d.ts +55 -0
  111. package/dist/Public/Extensions/RunAnywhere+TTS.d.ts.map +1 -0
  112. package/dist/Public/Extensions/RunAnywhere+TTS.js +253 -0
  113. package/dist/Public/Extensions/RunAnywhere+TTS.js.map +1 -0
  114. package/dist/Public/Extensions/RunAnywhere+TextGeneration.d.ts +80 -0
  115. package/dist/Public/Extensions/RunAnywhere+TextGeneration.d.ts.map +1 -0
  116. package/dist/Public/Extensions/RunAnywhere+TextGeneration.js +436 -0
  117. package/dist/Public/Extensions/RunAnywhere+TextGeneration.js.map +1 -0
  118. package/dist/Public/Extensions/RunAnywhere+ToolCalling.d.ts +82 -0
  119. package/dist/Public/Extensions/RunAnywhere+ToolCalling.d.ts.map +1 -0
  120. package/dist/Public/Extensions/RunAnywhere+ToolCalling.js +576 -0
  121. package/dist/Public/Extensions/RunAnywhere+ToolCalling.js.map +1 -0
  122. package/dist/Public/Extensions/RunAnywhere+VAD.d.ts +70 -0
  123. package/dist/Public/Extensions/RunAnywhere+VAD.d.ts.map +1 -0
  124. package/dist/Public/Extensions/RunAnywhere+VAD.js +231 -0
  125. package/dist/Public/Extensions/RunAnywhere+VAD.js.map +1 -0
  126. package/dist/Public/Extensions/RunAnywhere+VLM.d.ts +58 -0
  127. package/dist/Public/Extensions/RunAnywhere+VLM.d.ts.map +1 -0
  128. package/dist/Public/Extensions/RunAnywhere+VLM.js +262 -0
  129. package/dist/Public/Extensions/RunAnywhere+VLM.js.map +1 -0
  130. package/dist/Public/Extensions/RunAnywhere+VoiceAgent.d.ts +49 -0
  131. package/dist/Public/Extensions/RunAnywhere+VoiceAgent.d.ts.map +1 -0
  132. package/dist/Public/Extensions/RunAnywhere+VoiceAgent.js +222 -0
  133. package/dist/Public/Extensions/RunAnywhere+VoiceAgent.js.map +1 -0
  134. package/dist/Public/Extensions/RunAnywhere+VoicePipeline.d.ts +63 -0
  135. package/dist/Public/Extensions/RunAnywhere+VoicePipeline.d.ts.map +1 -0
  136. package/dist/Public/Extensions/RunAnywhere+VoicePipeline.js +168 -0
  137. package/dist/Public/Extensions/RunAnywhere+VoicePipeline.js.map +1 -0
  138. package/dist/Public/Extensions/STTTypes.d.ts +53 -0
  139. package/dist/Public/Extensions/STTTypes.d.ts.map +1 -0
  140. package/dist/Public/Extensions/STTTypes.js +16 -0
  141. package/dist/Public/Extensions/STTTypes.js.map +1 -0
  142. package/dist/Public/Extensions/TTSTypes.d.ts +31 -0
  143. package/dist/Public/Extensions/TTSTypes.d.ts.map +1 -0
  144. package/dist/Public/Extensions/TTSTypes.js +3 -0
  145. package/dist/Public/Extensions/TTSTypes.js.map +1 -0
  146. package/dist/Public/Extensions/ToolCallingTypes.d.ts +78 -0
  147. package/dist/Public/Extensions/ToolCallingTypes.d.ts.map +1 -0
  148. package/dist/Public/Extensions/ToolCallingTypes.js +8 -0
  149. package/dist/Public/Extensions/ToolCallingTypes.js.map +1 -0
  150. package/dist/Public/Extensions/VADTypes.d.ts +30 -0
  151. package/dist/Public/Extensions/VADTypes.d.ts.map +1 -0
  152. package/dist/Public/Extensions/VADTypes.js +8 -0
  153. package/dist/Public/Extensions/VADTypes.js.map +1 -0
  154. package/dist/Public/Extensions/VLMTypes.d.ts +56 -0
  155. package/dist/Public/Extensions/VLMTypes.d.ts.map +1 -0
  156. package/dist/Public/Extensions/VLMTypes.js +24 -0
  157. package/dist/Public/Extensions/VLMTypes.js.map +1 -0
  158. package/dist/Public/Extensions/VoiceAgentTypes.d.ts +42 -0
  159. package/dist/Public/Extensions/VoiceAgentTypes.d.ts.map +1 -0
  160. package/dist/Public/Extensions/VoiceAgentTypes.js +12 -0
  161. package/dist/Public/Extensions/VoiceAgentTypes.js.map +1 -0
  162. package/dist/Public/Extensions/VoicePipelineTypes.d.ts +69 -0
  163. package/dist/Public/Extensions/VoicePipelineTypes.d.ts.map +1 -0
  164. package/dist/Public/Extensions/VoicePipelineTypes.js +9 -0
  165. package/dist/Public/Extensions/VoicePipelineTypes.js.map +1 -0
  166. package/dist/Public/RunAnywhere.d.ts +121 -0
  167. package/dist/Public/RunAnywhere.d.ts.map +1 -0
  168. package/dist/Public/RunAnywhere.js +332 -0
  169. package/dist/Public/RunAnywhere.js.map +1 -0
  170. package/dist/index.d.ts +67 -0
  171. package/dist/index.d.ts.map +1 -0
  172. package/dist/index.js +53 -0
  173. package/dist/index.js.map +1 -0
  174. package/dist/types/LLMTypes.d.ts +48 -0
  175. package/dist/types/LLMTypes.d.ts.map +1 -0
  176. package/dist/types/LLMTypes.js +8 -0
  177. package/dist/types/LLMTypes.js.map +1 -0
  178. package/dist/types/enums.d.ts +144 -0
  179. package/dist/types/enums.d.ts.map +1 -0
  180. package/dist/types/enums.js +159 -0
  181. package/dist/types/enums.js.map +1 -0
  182. package/dist/types/index.d.ts +9 -0
  183. package/dist/types/index.d.ts.map +1 -0
  184. package/dist/types/index.js +8 -0
  185. package/dist/types/index.js.map +1 -0
  186. package/dist/types/models.d.ts +154 -0
  187. package/dist/types/models.d.ts.map +1 -0
  188. package/dist/types/models.js +8 -0
  189. package/dist/types/models.js.map +1 -0
  190. package/dist/workers/vlm-worker.d.ts +9 -0
  191. package/dist/workers/vlm-worker.d.ts.map +1 -0
  192. package/dist/workers/vlm-worker.js +10 -0
  193. package/dist/workers/vlm-worker.js.map +1 -0
  194. package/package.json +62 -0
  195. package/wasm/racommons-webgpu.js +156 -0
  196. package/wasm/racommons-webgpu.wasm +0 -0
  197. package/wasm/racommons.js +126 -0
  198. package/wasm/racommons.wasm +0 -0
  199. package/wasm/sherpa/sherpa-onnx-asr.js +1538 -0
  200. package/wasm/sherpa/sherpa-onnx-glue-original.js +19 -0
  201. package/wasm/sherpa/sherpa-onnx-glue.js +17 -0
  202. package/wasm/sherpa/sherpa-onnx-tts.js +657 -0
  203. package/wasm/sherpa/sherpa-onnx-vad.js +337 -0
  204. package/wasm/sherpa/sherpa-onnx-wave.js +88 -0
  205. package/wasm/sherpa/sherpa-onnx.wasm +0 -0
@@ -0,0 +1,61 @@
1
+ /**
2
+ * RunAnywhere Web SDK - Error Types
3
+ *
4
+ * Structured error handling matching the RACommons error code system.
5
+ * Error codes map to rac_error.h ranges (-100 to -999).
6
+ */
7
+ /** RACommons error code ranges */
8
+ export declare enum SDKErrorCode {
9
+ Success = 0,
10
+ NotInitialized = -100,
11
+ AlreadyInitialized = -101,
12
+ InvalidConfiguration = -102,
13
+ InitializationFailed = -103,
14
+ ModelNotFound = -110,
15
+ ModelLoadFailed = -111,
16
+ ModelInvalidFormat = -112,
17
+ ModelNotLoaded = -113,
18
+ ModelAlreadyLoaded = -114,
19
+ GenerationFailed = -130,
20
+ GenerationCancelled = -131,
21
+ GenerationTimeout = -132,
22
+ InvalidPrompt = -133,
23
+ ContextLengthExceeded = -134,
24
+ NetworkError = -150,
25
+ NetworkTimeout = -151,
26
+ AuthenticationFailed = -152,
27
+ DownloadFailed = -160,
28
+ DownloadCancelled = -161,
29
+ StorageError = -180,
30
+ InsufficientStorage = -181,
31
+ FileNotFound = -182,
32
+ FileWriteFailed = -183,
33
+ InvalidParameter = -220,
34
+ ComponentNotReady = -230,
35
+ ComponentBusy = -231,
36
+ InvalidState = -232,
37
+ BackendNotAvailable = -600,
38
+ BackendError = -601,
39
+ WASMLoadFailed = -900,
40
+ WASMNotLoaded = -901,
41
+ WASMCallbackError = -902,
42
+ WASMMemoryError = -903
43
+ }
44
+ /**
45
+ * SDK Error class matching the error handling pattern across all SDKs.
46
+ */
47
+ export declare class SDKError extends Error {
48
+ readonly code: SDKErrorCode;
49
+ readonly details?: string;
50
+ constructor(code: SDKErrorCode, message: string, details?: string);
51
+ /** Create from a RACommons rac_result_t error code */
52
+ static fromRACResult(resultCode: number, details?: string): SDKError;
53
+ /** Check if error code indicates success */
54
+ static isSuccess(resultCode: number): boolean;
55
+ /** Convenience constructors */
56
+ static notInitialized(message?: string): SDKError;
57
+ static wasmNotLoaded(message?: string): SDKError;
58
+ static modelNotFound(modelId: string): SDKError;
59
+ static generationFailed(details?: string): SDKError;
60
+ }
61
+ //# sourceMappingURL=ErrorTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorTypes.d.ts","sourceRoot":"","sources":["../../src/Foundation/ErrorTypes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kCAAkC;AAClC,oBAAY,YAAY;IAEtB,OAAO,IAAI;IAGX,cAAc,OAAO;IACrB,kBAAkB,OAAO;IACzB,oBAAoB,OAAO;IAC3B,oBAAoB,OAAO;IAG3B,aAAa,OAAO;IACpB,eAAe,OAAO;IACtB,kBAAkB,OAAO;IACzB,cAAc,OAAO;IACrB,kBAAkB,OAAO;IAGzB,gBAAgB,OAAO;IACvB,mBAAmB,OAAO;IAC1B,iBAAiB,OAAO;IACxB,aAAa,OAAO;IACpB,qBAAqB,OAAO;IAG5B,YAAY,OAAO;IACnB,cAAc,OAAO;IACrB,oBAAoB,OAAO;IAC3B,cAAc,OAAO;IACrB,iBAAiB,OAAO;IAGxB,YAAY,OAAO;IACnB,mBAAmB,OAAO;IAC1B,YAAY,OAAO;IACnB,eAAe,OAAO;IAGtB,gBAAgB,OAAO;IAGvB,iBAAiB,OAAO;IACxB,aAAa,OAAO;IACpB,YAAY,OAAO;IAGnB,mBAAmB,OAAO;IAC1B,YAAY,OAAO;IAGnB,cAAc,OAAO;IACrB,aAAa,OAAO;IACpB,iBAAiB,OAAO;IACxB,eAAe,OAAO;CACvB;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;gBAEd,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAOjE,sDAAsD;IACtD,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ;IAKpE,4CAA4C;IAC5C,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAI7C,+BAA+B;IAC/B,MAAM,CAAC,cAAc,CAAC,OAAO,SAAwB,GAAG,QAAQ;IAIhE,MAAM,CAAC,aAAa,CAAC,OAAO,SAA2B,GAAG,QAAQ;IAIlE,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ;IAO/C,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ;CAOpD"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * RunAnywhere Web SDK - Error Types
3
+ *
4
+ * Structured error handling matching the RACommons error code system.
5
+ * Error codes map to rac_error.h ranges (-100 to -999).
6
+ */
7
+ /** RACommons error code ranges */
8
+ export var SDKErrorCode;
9
+ (function (SDKErrorCode) {
10
+ // Success
11
+ SDKErrorCode[SDKErrorCode["Success"] = 0] = "Success";
12
+ // Initialization errors (-100 to -109)
13
+ SDKErrorCode[SDKErrorCode["NotInitialized"] = -100] = "NotInitialized";
14
+ SDKErrorCode[SDKErrorCode["AlreadyInitialized"] = -101] = "AlreadyInitialized";
15
+ SDKErrorCode[SDKErrorCode["InvalidConfiguration"] = -102] = "InvalidConfiguration";
16
+ SDKErrorCode[SDKErrorCode["InitializationFailed"] = -103] = "InitializationFailed";
17
+ // Model errors (-110 to -129)
18
+ SDKErrorCode[SDKErrorCode["ModelNotFound"] = -110] = "ModelNotFound";
19
+ SDKErrorCode[SDKErrorCode["ModelLoadFailed"] = -111] = "ModelLoadFailed";
20
+ SDKErrorCode[SDKErrorCode["ModelInvalidFormat"] = -112] = "ModelInvalidFormat";
21
+ SDKErrorCode[SDKErrorCode["ModelNotLoaded"] = -113] = "ModelNotLoaded";
22
+ SDKErrorCode[SDKErrorCode["ModelAlreadyLoaded"] = -114] = "ModelAlreadyLoaded";
23
+ // Generation errors (-130 to -149)
24
+ SDKErrorCode[SDKErrorCode["GenerationFailed"] = -130] = "GenerationFailed";
25
+ SDKErrorCode[SDKErrorCode["GenerationCancelled"] = -131] = "GenerationCancelled";
26
+ SDKErrorCode[SDKErrorCode["GenerationTimeout"] = -132] = "GenerationTimeout";
27
+ SDKErrorCode[SDKErrorCode["InvalidPrompt"] = -133] = "InvalidPrompt";
28
+ SDKErrorCode[SDKErrorCode["ContextLengthExceeded"] = -134] = "ContextLengthExceeded";
29
+ // Network errors (-150 to -179)
30
+ SDKErrorCode[SDKErrorCode["NetworkError"] = -150] = "NetworkError";
31
+ SDKErrorCode[SDKErrorCode["NetworkTimeout"] = -151] = "NetworkTimeout";
32
+ SDKErrorCode[SDKErrorCode["AuthenticationFailed"] = -152] = "AuthenticationFailed";
33
+ SDKErrorCode[SDKErrorCode["DownloadFailed"] = -160] = "DownloadFailed";
34
+ SDKErrorCode[SDKErrorCode["DownloadCancelled"] = -161] = "DownloadCancelled";
35
+ // Storage errors (-180 to -219)
36
+ SDKErrorCode[SDKErrorCode["StorageError"] = -180] = "StorageError";
37
+ SDKErrorCode[SDKErrorCode["InsufficientStorage"] = -181] = "InsufficientStorage";
38
+ SDKErrorCode[SDKErrorCode["FileNotFound"] = -182] = "FileNotFound";
39
+ SDKErrorCode[SDKErrorCode["FileWriteFailed"] = -183] = "FileWriteFailed";
40
+ // Parameter errors (-220 to -229)
41
+ SDKErrorCode[SDKErrorCode["InvalidParameter"] = -220] = "InvalidParameter";
42
+ // Component errors (-230 to -249)
43
+ SDKErrorCode[SDKErrorCode["ComponentNotReady"] = -230] = "ComponentNotReady";
44
+ SDKErrorCode[SDKErrorCode["ComponentBusy"] = -231] = "ComponentBusy";
45
+ SDKErrorCode[SDKErrorCode["InvalidState"] = -232] = "InvalidState";
46
+ // Backend errors (-600 to -699)
47
+ SDKErrorCode[SDKErrorCode["BackendNotAvailable"] = -600] = "BackendNotAvailable";
48
+ SDKErrorCode[SDKErrorCode["BackendError"] = -601] = "BackendError";
49
+ // WASM-specific errors (-900 to -999)
50
+ SDKErrorCode[SDKErrorCode["WASMLoadFailed"] = -900] = "WASMLoadFailed";
51
+ SDKErrorCode[SDKErrorCode["WASMNotLoaded"] = -901] = "WASMNotLoaded";
52
+ SDKErrorCode[SDKErrorCode["WASMCallbackError"] = -902] = "WASMCallbackError";
53
+ SDKErrorCode[SDKErrorCode["WASMMemoryError"] = -903] = "WASMMemoryError";
54
+ })(SDKErrorCode || (SDKErrorCode = {}));
55
+ /**
56
+ * SDK Error class matching the error handling pattern across all SDKs.
57
+ */
58
+ export class SDKError extends Error {
59
+ code;
60
+ details;
61
+ constructor(code, message, details) {
62
+ super(message);
63
+ this.name = 'SDKError';
64
+ this.code = code;
65
+ this.details = details;
66
+ }
67
+ /** Create from a RACommons rac_result_t error code */
68
+ static fromRACResult(resultCode, details) {
69
+ const message = `RACommons error: ${resultCode}`;
70
+ return new SDKError(resultCode, message, details);
71
+ }
72
+ /** Check if error code indicates success */
73
+ static isSuccess(resultCode) {
74
+ return resultCode === 0;
75
+ }
76
+ /** Convenience constructors */
77
+ static notInitialized(message = 'SDK not initialized') {
78
+ return new SDKError(SDKErrorCode.NotInitialized, message);
79
+ }
80
+ static wasmNotLoaded(message = 'WASM module not loaded') {
81
+ return new SDKError(SDKErrorCode.WASMNotLoaded, message);
82
+ }
83
+ static modelNotFound(modelId) {
84
+ return new SDKError(SDKErrorCode.ModelNotFound, `Model not found: ${modelId}`);
85
+ }
86
+ static generationFailed(details) {
87
+ return new SDKError(SDKErrorCode.GenerationFailed, 'Generation failed', details);
88
+ }
89
+ }
90
+ //# sourceMappingURL=ErrorTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorTypes.js","sourceRoot":"","sources":["../../src/Foundation/ErrorTypes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kCAAkC;AAClC,MAAM,CAAN,IAAY,YAsDX;AAtDD,WAAY,YAAY;IACtB,UAAU;IACV,qDAAW,CAAA;IAEX,uCAAuC;IACvC,sEAAqB,CAAA;IACrB,8EAAyB,CAAA;IACzB,kFAA2B,CAAA;IAC3B,kFAA2B,CAAA;IAE3B,8BAA8B;IAC9B,oEAAoB,CAAA;IACpB,wEAAsB,CAAA;IACtB,8EAAyB,CAAA;IACzB,sEAAqB,CAAA;IACrB,8EAAyB,CAAA;IAEzB,mCAAmC;IACnC,0EAAuB,CAAA;IACvB,gFAA0B,CAAA;IAC1B,4EAAwB,CAAA;IACxB,oEAAoB,CAAA;IACpB,oFAA4B,CAAA;IAE5B,gCAAgC;IAChC,kEAAmB,CAAA;IACnB,sEAAqB,CAAA;IACrB,kFAA2B,CAAA;IAC3B,sEAAqB,CAAA;IACrB,4EAAwB,CAAA;IAExB,gCAAgC;IAChC,kEAAmB,CAAA;IACnB,gFAA0B,CAAA;IAC1B,kEAAmB,CAAA;IACnB,wEAAsB,CAAA;IAEtB,kCAAkC;IAClC,0EAAuB,CAAA;IAEvB,kCAAkC;IAClC,4EAAwB,CAAA;IACxB,oEAAoB,CAAA;IACpB,kEAAmB,CAAA;IAEnB,gCAAgC;IAChC,gFAA0B,CAAA;IAC1B,kEAAmB,CAAA;IAEnB,sCAAsC;IACtC,sEAAqB,CAAA;IACrB,oEAAoB,CAAA;IACpB,4EAAwB,CAAA;IACxB,wEAAsB,CAAA;AACxB,CAAC,EAtDW,YAAY,KAAZ,YAAY,QAsDvB;AAED;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IACxB,IAAI,CAAe;IACnB,OAAO,CAAU;IAE1B,YAAY,IAAkB,EAAE,OAAe,EAAE,OAAgB;QAC/D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,sDAAsD;IACtD,MAAM,CAAC,aAAa,CAAC,UAAkB,EAAE,OAAgB;QACvD,MAAM,OAAO,GAAG,oBAAoB,UAAU,EAAE,CAAC;QACjD,OAAO,IAAI,QAAQ,CAAC,UAA0B,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IAED,4CAA4C;IAC5C,MAAM,CAAC,SAAS,CAAC,UAAkB;QACjC,OAAO,UAAU,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,+BAA+B;IAC/B,MAAM,CAAC,cAAc,CAAC,OAAO,GAAG,qBAAqB;QACnD,OAAO,IAAI,QAAQ,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,OAAO,GAAG,wBAAwB;QACrD,OAAO,IAAI,QAAQ,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,OAAe;QAClC,OAAO,IAAI,QAAQ,CACjB,YAAY,CAAC,aAAa,EAC1B,oBAAoB,OAAO,EAAE,CAC9B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,OAAgB;QACtC,OAAO,IAAI,QAAQ,CACjB,YAAY,CAAC,gBAAgB,EAC7B,mBAAmB,EACnB,OAAO,CACR,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,171 @@
1
+ /**
2
+ * RunAnywhere Web SDK - Event Bus
3
+ *
4
+ * Central event system matching the pattern across all SDKs.
5
+ * Provides typed event subscription and publishing.
6
+ */
7
+ import type { SDKEventType } from '../types/enums';
8
+ /** Generic event listener */
9
+ export type EventListener<T = unknown> = (event: T) => void;
10
+ /** Unsubscribe function returned by subscribe */
11
+ export type Unsubscribe = () => void;
12
+ /** Event envelope wrapping all emitted events */
13
+ export interface SDKEventEnvelope {
14
+ type: string;
15
+ category: SDKEventType;
16
+ timestamp: number;
17
+ data: Record<string, unknown>;
18
+ }
19
+ /** Known SDK event types and their payload shapes. */
20
+ export interface SDKEventMap {
21
+ 'sdk.initialized': {
22
+ environment: string;
23
+ accelerationMode: string;
24
+ };
25
+ 'sdk.accelerationMode': {
26
+ mode: string;
27
+ };
28
+ 'model.registered': {
29
+ count: number;
30
+ };
31
+ 'model.downloadStarted': {
32
+ modelId: string;
33
+ url: string;
34
+ };
35
+ 'model.downloadProgress': {
36
+ modelId: string;
37
+ progress: number;
38
+ bytesDownloaded: number;
39
+ totalBytes: number;
40
+ stage?: string;
41
+ };
42
+ 'model.downloadCompleted': {
43
+ modelId: string;
44
+ sizeBytes?: number;
45
+ localPath?: string;
46
+ };
47
+ 'model.downloadFailed': {
48
+ modelId: string;
49
+ error: string;
50
+ };
51
+ 'model.loadStarted': {
52
+ modelId: string;
53
+ component?: string;
54
+ category?: string;
55
+ };
56
+ 'model.loadCompleted': {
57
+ modelId: string;
58
+ component?: string;
59
+ category?: string;
60
+ loadTimeMs?: number;
61
+ };
62
+ 'model.loadFailed': {
63
+ modelId: string;
64
+ error: string;
65
+ };
66
+ 'model.unloaded': {
67
+ modelId: string;
68
+ category: string;
69
+ };
70
+ 'model.quotaExceeded': {
71
+ modelId: string;
72
+ availableBytes: number;
73
+ neededBytes: number;
74
+ };
75
+ 'model.evicted': {
76
+ modelId: string;
77
+ modelName: string;
78
+ freedBytes: number;
79
+ };
80
+ 'generation.started': {
81
+ prompt: string;
82
+ };
83
+ 'generation.completed': {
84
+ tokensUsed: number;
85
+ latencyMs: number;
86
+ };
87
+ 'generation.failed': {
88
+ error: string;
89
+ };
90
+ 'stt.transcribed': {
91
+ text: string;
92
+ confidence: number;
93
+ };
94
+ 'tts.synthesized': {
95
+ durationMs: number;
96
+ sampleRate: number;
97
+ textLength: number;
98
+ };
99
+ 'vad.speechStarted': {
100
+ activity: string;
101
+ };
102
+ 'vad.speechEnded': {
103
+ activity: string;
104
+ };
105
+ 'voice.turnCompleted': {
106
+ speechDetected: boolean;
107
+ transcription: string;
108
+ response: string;
109
+ };
110
+ 'embeddings.generated': {
111
+ numEmbeddings: number;
112
+ dimension: number;
113
+ processingTimeMs: number;
114
+ };
115
+ 'diffusion.generated': {
116
+ width: number;
117
+ height: number;
118
+ generationTimeMs: number;
119
+ };
120
+ 'vlm.processed': {
121
+ tokensPerSecond: number;
122
+ totalTokens: number;
123
+ hardwareUsed: string;
124
+ };
125
+ 'playback.started': {
126
+ durationMs: number;
127
+ sampleRate: number;
128
+ };
129
+ 'playback.completed': {
130
+ durationMs: number;
131
+ };
132
+ [key: string]: Record<string, unknown>;
133
+ }
134
+ /**
135
+ * EventBus - Central event system for the SDK.
136
+ *
137
+ * Mirrors the EventBus pattern used in Swift, Kotlin, React Native, and Flutter SDKs.
138
+ * On web, this is a pure TypeScript implementation (no C++ bridge needed for events
139
+ * since we subscribe to RACommons events via rac_event_subscribe and re-emit here).
140
+ */
141
+ export declare class EventBus {
142
+ private static _instance;
143
+ private listeners;
144
+ private wildcardListeners;
145
+ static get shared(): EventBus;
146
+ /**
147
+ * Subscribe to events of a specific type.
148
+ * @returns Unsubscribe function
149
+ */
150
+ on<K extends keyof SDKEventMap>(eventType: K, listener: EventListener<SDKEventMap[K]>): Unsubscribe;
151
+ /**
152
+ * Subscribe to ALL events (wildcard).
153
+ * @returns Unsubscribe function
154
+ */
155
+ onAny(listener: EventListener<SDKEventEnvelope>): Unsubscribe;
156
+ /**
157
+ * Subscribe to events once (auto-unsubscribe after first event).
158
+ */
159
+ once<K extends keyof SDKEventMap>(eventType: K, listener: EventListener<SDKEventMap[K]>): Unsubscribe;
160
+ /**
161
+ * Emit an event.
162
+ */
163
+ emit<K extends keyof SDKEventMap>(eventType: K, category: SDKEventType, data?: SDKEventMap[K]): void;
164
+ /**
165
+ * Remove all listeners.
166
+ */
167
+ removeAll(): void;
168
+ /** Reset singleton (for testing) */
169
+ static reset(): void;
170
+ }
171
+ //# sourceMappingURL=EventBus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventBus.d.ts","sourceRoot":"","sources":["../../src/Foundation/EventBus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * RunAnywhere Web SDK - Event Bus
3
+ *
4
+ * Central event system matching the pattern across all SDKs.
5
+ * Provides typed event subscription and publishing.
6
+ */
7
+ import { SDKLogger } from './SDKLogger';
8
+ const logger = new SDKLogger('EventBus');
9
+ /**
10
+ * EventBus - Central event system for the SDK.
11
+ *
12
+ * Mirrors the EventBus pattern used in Swift, Kotlin, React Native, and Flutter SDKs.
13
+ * On web, this is a pure TypeScript implementation (no C++ bridge needed for events
14
+ * since we subscribe to RACommons events via rac_event_subscribe and re-emit here).
15
+ */
16
+ export class EventBus {
17
+ static _instance = null;
18
+ listeners = new Map();
19
+ wildcardListeners = new Set();
20
+ static get shared() {
21
+ if (!EventBus._instance) {
22
+ EventBus._instance = new EventBus();
23
+ }
24
+ return EventBus._instance;
25
+ }
26
+ /**
27
+ * Subscribe to events of a specific type.
28
+ * @returns Unsubscribe function
29
+ */
30
+ on(eventType, listener) {
31
+ const key = eventType;
32
+ if (!this.listeners.has(key)) {
33
+ this.listeners.set(key, new Set());
34
+ }
35
+ const set = this.listeners.get(key);
36
+ set.add(listener);
37
+ return () => {
38
+ set.delete(listener);
39
+ if (set.size === 0) {
40
+ this.listeners.delete(key);
41
+ }
42
+ };
43
+ }
44
+ /**
45
+ * Subscribe to ALL events (wildcard).
46
+ * @returns Unsubscribe function
47
+ */
48
+ onAny(listener) {
49
+ this.wildcardListeners.add(listener);
50
+ return () => {
51
+ this.wildcardListeners.delete(listener);
52
+ };
53
+ }
54
+ /**
55
+ * Subscribe to events once (auto-unsubscribe after first event).
56
+ */
57
+ once(eventType, listener) {
58
+ const unsubscribe = this.on(eventType, (event) => {
59
+ unsubscribe();
60
+ listener(event);
61
+ });
62
+ return unsubscribe;
63
+ }
64
+ /**
65
+ * Emit an event.
66
+ */
67
+ emit(eventType, category, data) {
68
+ const key = eventType;
69
+ const payload = (data ?? {});
70
+ const envelope = {
71
+ type: key,
72
+ category,
73
+ timestamp: Date.now(),
74
+ data: payload,
75
+ };
76
+ // Notify specific listeners
77
+ const specific = this.listeners.get(key);
78
+ if (specific) {
79
+ for (const listener of specific) {
80
+ try {
81
+ listener(payload);
82
+ }
83
+ catch (error) {
84
+ logger.error(`Listener error for ${key}: ${error instanceof Error ? error.message : String(error)}`);
85
+ }
86
+ }
87
+ }
88
+ // Notify wildcard listeners
89
+ for (const listener of this.wildcardListeners) {
90
+ try {
91
+ listener(envelope);
92
+ }
93
+ catch (error) {
94
+ logger.error(`Wildcard listener error: ${error instanceof Error ? error.message : String(error)}`);
95
+ }
96
+ }
97
+ }
98
+ /**
99
+ * Remove all listeners.
100
+ */
101
+ removeAll() {
102
+ this.listeners.clear();
103
+ this.wildcardListeners.clear();
104
+ }
105
+ /** Reset singleton (for testing) */
106
+ static reset() {
107
+ if (EventBus._instance) {
108
+ EventBus._instance.removeAll();
109
+ }
110
+ EventBus._instance = null;
111
+ }
112
+ }
113
+ //# sourceMappingURL=EventBus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventBus.js","sourceRoot":"","sources":["../../src/Foundation/EventBus.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC;AAsEzC;;;;;;GAMG;AACH,MAAM,OAAO,QAAQ;IACX,MAAM,CAAC,SAAS,GAAoB,IAAI,CAAC;IAEzC,SAAS,GAAG,IAAI,GAAG,EAA8B,CAAC;IAClD,iBAAiB,GAAG,IAAI,GAAG,EAAmC,CAAC;IAEvE,MAAM,KAAK,MAAM;QACf,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YACxB,QAAQ,CAAC,SAAS,GAAG,IAAI,QAAQ,EAAE,CAAC;QACtC,CAAC;QACD,OAAO,QAAQ,CAAC,SAAS,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,EAAE,CAA8B,SAAY,EAAE,QAAuC;QACnF,MAAM,GAAG,GAAG,SAAmB,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QACrC,GAAG,CAAC,GAAG,CAAC,QAAyB,CAAC,CAAC;QAEnC,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,MAAM,CAAC,QAAyB,CAAC,CAAC;YACtC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAyC;QAC7C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAI,CAA8B,SAAY,EAAE,QAAuC;QACrF,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YAC/C,WAAW,EAAE,CAAC;YACd,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,IAAI,CAA8B,SAAY,EAAE,QAAsB,EAAE,IAAqB;QAC3F,MAAM,GAAG,GAAG,SAAmB,CAAC;QAChC,MAAM,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAC;QACxD,MAAM,QAAQ,GAAqB;YACjC,IAAI,EAAE,GAAG;YACT,QAAQ;YACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,IAAI,EAAE,OAAO;SACd,CAAC;QAEF,4BAA4B;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACH,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACpB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACvG,CAAC;YACH,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC9C,IAAI,CAAC;gBACH,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACrB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACrG,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,oCAAoC;IACpC,MAAM,CAAC,KAAK;QACV,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACvB,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QACjC,CAAC;QACD,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;IAC5B,CAAC"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * RunAnywhere Web SDK - Platform Adapter
3
+ *
4
+ * Implements rac_platform_adapter_t callbacks using browser Web APIs.
5
+ * This is the web equivalent of:
6
+ * - SwiftPlatformAdapter (iOS)
7
+ * - KotlinPlatformAdapter (Android/JVM)
8
+ * - DartPlatformAdapter (Flutter)
9
+ *
10
+ * Each callback is registered as a C function pointer via Emscripten's
11
+ * Module.addFunction(), then written into the rac_platform_adapter_t
12
+ * struct in WASM memory.
13
+ */
14
+ /**
15
+ * PlatformAdapter - Bridges browser Web APIs to RACommons C callbacks.
16
+ *
17
+ * The rac_platform_adapter_t struct is a collection of C function pointers.
18
+ * JavaScript provides implementations via Emscripten's addFunction(),
19
+ * which creates callable C function pointers from JS closures.
20
+ */
21
+ export declare class PlatformAdapter {
22
+ private callbacks;
23
+ private adapterPtr;
24
+ /**
25
+ * Create and register the platform adapter with RACommons.
26
+ * Must be called after WASM module is loaded but before rac_init().
27
+ */
28
+ register(): void;
29
+ /**
30
+ * Get the WASM pointer to the adapter struct.
31
+ * Used by RunAnywhere.initialize() to populate rac_config_t.
32
+ */
33
+ getAdapterPtr(): number;
34
+ /**
35
+ * Clean up allocated callbacks and memory.
36
+ */
37
+ cleanup(): void;
38
+ /** file_exists: rac_bool_t (*)(const char* path, void* user_data) */
39
+ private registerFileExists;
40
+ /** file_read: rac_result_t (*)(const char* path, void** out_data, size_t* out_size, void* user_data) */
41
+ private registerFileRead;
42
+ /** file_write: rac_result_t (*)(const char* path, const void* data, size_t size, void* user_data) */
43
+ private registerFileWrite;
44
+ /** file_delete: rac_result_t (*)(const char* path, void* user_data) */
45
+ private registerFileDelete;
46
+ /**
47
+ * secure_get: rac_result_t (*)(const char* key, char** out_value, void* user_data)
48
+ *
49
+ * SECURITY NOTE: On web, "secure" storage uses localStorage which is NOT
50
+ * truly secure. Data is accessible to any script running on the same origin
51
+ * (including XSS attacks). Do NOT store sensitive secrets (API keys, tokens,
52
+ * PII) here. On native platforms (iOS/Android) the equivalent callback uses
53
+ * Keychain / KeyStore which are hardware-backed and encrypted.
54
+ *
55
+ * For the web platform this is intentionally best-effort: the RACommons C
56
+ * layer only uses it for non-sensitive SDK state (e.g. cached environment).
57
+ */
58
+ private registerSecureGet;
59
+ /**
60
+ * secure_set: rac_result_t (*)(const char* key, const char* value, void* user_data)
61
+ *
62
+ * SECURITY NOTE: See registerSecureGet — localStorage is NOT secure on web.
63
+ * Do not use for sensitive data.
64
+ */
65
+ private registerSecureSet;
66
+ /**
67
+ * secure_delete: rac_result_t (*)(const char* key, void* user_data)
68
+ *
69
+ * SECURITY NOTE: See registerSecureGet — localStorage is NOT secure on web.
70
+ */
71
+ private registerSecureDelete;
72
+ /** log: void (*)(rac_log_level_t level, const char* category, const char* message, void* user_data) */
73
+ private registerLog;
74
+ /** now_ms: int64_t (*)(void* user_data) */
75
+ private registerNowMs;
76
+ /** get_memory_info: rac_result_t (*)(rac_memory_info_t* out_info, void* user_data) */
77
+ private registerGetMemoryInfo;
78
+ /**
79
+ * http_download: rac_result_t (*)(const char* url, const char* dest_path,
80
+ * progress_cb, complete_cb, void* cb_user_data, char** out_task_id, void* user_data)
81
+ * Note: 7 params in C
82
+ */
83
+ private registerHttpDownload;
84
+ /**
85
+ * extract_archive: rac_result_t (*)(const char* archive_path, const char* dest_dir,
86
+ * progress_cb, void* cb_user_data, void* user_data)
87
+ * Note: 5 params in C
88
+ */
89
+ private registerExtractArchive;
90
+ /**
91
+ * Perform an HTTP download using fetch() and stream to Emscripten FS.
92
+ */
93
+ private performDownload;
94
+ }
95
+ declare module './WASMBridge' {
96
+ interface RACommonsModule {
97
+ HEAPU8: Uint8Array;
98
+ dynCall: (sig: string, ptr: number, args: number[]) => unknown;
99
+ }
100
+ }
101
+ //# sourceMappingURL=PlatformAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlatformAdapter.d.ts","sourceRoot":"","sources":["../../src/Foundation/PlatformAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA0BH;;;;;;GAMG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,UAAU,CAAK;IAEvB;;;OAGG;IACH,QAAQ,IAAI,IAAI;IAmEhB;;;OAGG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,OAAO,IAAI,IAAI;IAsBf,qEAAqE;IACrE,OAAO,CAAC,kBAAkB;IAY1B,wGAAwG;IACxG,OAAO,CAAC,gBAAgB;IAgBxB,qGAAqG;IACrG,OAAO,CAAC,iBAAiB;IAazB,uEAAuE;IACvE,OAAO,CAAC,kBAAkB;IAY1B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAazB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAY5B,uGAAuG;IACvG,OAAO,CAAC,WAAW;IA2BnB,2CAA2C;IAC3C,OAAO,CAAC,aAAa;IAQrB,sFAAsF;IACtF,OAAO,CAAC,qBAAqB;IA8B7B;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAyB5B;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAY9B;;OAEG;YACW,eAAe;CAmE9B;AAgBD,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,eAAe;QACvB,MAAM,EAAE,UAAU,CAAC;QACnB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC;KAChE;CACF"}