cactus-react-native 1.2.0 → 1.4.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 (222) hide show
  1. package/README.md +573 -13
  2. package/android/CMakeLists.txt +4 -3
  3. package/android/src/main/java/com/margelo/nitro/cactus/HybridCactusFileSystem.kt +21 -4
  4. package/android/src/main/jniLibs/arm64-v8a/libcactus.a +0 -0
  5. package/android/src/main/jniLibs/arm64-v8a/libcactus_util.a +0 -0
  6. package/cpp/HybridCactus.cpp +112 -19
  7. package/cpp/HybridCactus.hpp +12 -3
  8. package/cpp/HybridCactusIndex.cpp +325 -0
  9. package/cpp/HybridCactusIndex.hpp +43 -0
  10. package/cpp/HybridCactusUtil.cpp +3 -3
  11. package/cpp/HybridCactusUtil.hpp +2 -1
  12. package/cpp/cactus_ffi.h +83 -2
  13. package/cpp/cactus_util.h +1 -1
  14. package/ios/HybridCactusFileSystem.swift +23 -2
  15. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/cactus.h +2 -0
  16. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/cactus_ffi.h +83 -2
  17. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/cactus_telemetry.h +656 -0
  18. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/{ffi_utils.h → cactus_utils.h} +104 -17
  19. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/engine.h +117 -7
  20. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/graph.h +91 -5
  21. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/kernel.h +15 -6
  22. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Info.plist +0 -0
  23. package/ios/cactus.xcframework/ios-arm64/cactus.framework/cactus +0 -0
  24. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/cactus.h +2 -0
  25. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/cactus_ffi.h +83 -2
  26. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/cactus_telemetry.h +656 -0
  27. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/{ffi_utils.h → cactus_utils.h} +104 -17
  28. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/engine.h +117 -7
  29. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/graph.h +91 -5
  30. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/kernel.h +15 -6
  31. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Info.plist +0 -0
  32. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/_CodeSignature/CodeResources +1 -1
  33. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/cactus +0 -0
  34. package/ios/cactus_util.xcframework/Info.plist +4 -4
  35. package/ios/cactus_util.xcframework/ios-arm64/cactus_util.framework/Headers/cactus_util.h +1 -1
  36. package/ios/cactus_util.xcframework/ios-arm64/cactus_util.framework/Headers/database.h +27 -0
  37. package/ios/cactus_util.xcframework/ios-arm64/cactus_util.framework/Info.plist +0 -0
  38. package/ios/cactus_util.xcframework/ios-arm64/cactus_util.framework/cactus_util +0 -0
  39. package/ios/cactus_util.xcframework/ios-arm64-simulator/cactus_util.framework/Headers/cactus_util.h +1 -1
  40. package/ios/cactus_util.xcframework/ios-arm64-simulator/cactus_util.framework/Headers/database.h +27 -0
  41. package/ios/cactus_util.xcframework/ios-arm64-simulator/cactus_util.framework/Info.plist +0 -0
  42. package/ios/cactus_util.xcframework/ios-arm64-simulator/cactus_util.framework/_CodeSignature/CodeResources +3 -3
  43. package/ios/cactus_util.xcframework/ios-arm64-simulator/cactus_util.framework/cactus_util +0 -0
  44. package/lib/module/api/Database.js +57 -3
  45. package/lib/module/api/Database.js.map +1 -1
  46. package/lib/module/classes/CactusIndex.js +45 -0
  47. package/lib/module/classes/CactusIndex.js.map +1 -0
  48. package/lib/module/classes/CactusLM.js +35 -10
  49. package/lib/module/classes/CactusLM.js.map +1 -1
  50. package/lib/module/classes/CactusSTT.js +20 -12
  51. package/lib/module/classes/CactusSTT.js.map +1 -1
  52. package/lib/module/config/CactusConfig.js +2 -0
  53. package/lib/module/config/CactusConfig.js.map +1 -1
  54. package/lib/module/constants/packageVersion.js +1 -1
  55. package/lib/module/hooks/useCactusIndex.js +175 -0
  56. package/lib/module/hooks/useCactusIndex.js.map +1 -0
  57. package/lib/module/hooks/useCactusLM.js +54 -2
  58. package/lib/module/hooks/useCactusLM.js.map +1 -1
  59. package/lib/module/hooks/useCactusSTT.js +2 -2
  60. package/lib/module/hooks/useCactusSTT.js.map +1 -1
  61. package/lib/module/index.js +2 -0
  62. package/lib/module/index.js.map +1 -1
  63. package/lib/module/native/Cactus.js +21 -5
  64. package/lib/module/native/Cactus.js.map +1 -1
  65. package/lib/module/native/CactusFileSystem.js +3 -0
  66. package/lib/module/native/CactusFileSystem.js.map +1 -1
  67. package/lib/module/native/CactusIndex.js +32 -0
  68. package/lib/module/native/CactusIndex.js.map +1 -0
  69. package/lib/module/native/CactusUtil.js +16 -3
  70. package/lib/module/native/CactusUtil.js.map +1 -1
  71. package/lib/module/native/index.js +1 -0
  72. package/lib/module/native/index.js.map +1 -1
  73. package/lib/module/specs/CactusIndex.nitro.js +4 -0
  74. package/lib/module/specs/CactusIndex.nitro.js.map +1 -0
  75. package/lib/module/telemetry/Telemetry.js +3 -1
  76. package/lib/module/telemetry/Telemetry.js.map +1 -1
  77. package/lib/module/types/CactusIndex.js +2 -0
  78. package/lib/module/types/CactusIndex.js.map +1 -0
  79. package/lib/module/types/CactusSTTModel.js +2 -0
  80. package/lib/module/types/CactusSTTModel.js.map +1 -0
  81. package/lib/typescript/src/api/Database.d.ts +7 -1
  82. package/lib/typescript/src/api/Database.d.ts.map +1 -1
  83. package/lib/typescript/src/classes/CactusIndex.d.ts +15 -0
  84. package/lib/typescript/src/classes/CactusIndex.d.ts.map +1 -0
  85. package/lib/typescript/src/classes/CactusLM.d.ts +5 -3
  86. package/lib/typescript/src/classes/CactusLM.d.ts.map +1 -1
  87. package/lib/typescript/src/classes/CactusSTT.d.ts +4 -4
  88. package/lib/typescript/src/classes/CactusSTT.d.ts.map +1 -1
  89. package/lib/typescript/src/config/CactusConfig.d.ts +1 -0
  90. package/lib/typescript/src/config/CactusConfig.d.ts.map +1 -1
  91. package/lib/typescript/src/constants/packageVersion.d.ts +1 -1
  92. package/lib/typescript/src/hooks/useCactusIndex.d.ts +14 -0
  93. package/lib/typescript/src/hooks/useCactusIndex.d.ts.map +1 -0
  94. package/lib/typescript/src/hooks/useCactusLM.d.ts +4 -2
  95. package/lib/typescript/src/hooks/useCactusLM.d.ts.map +1 -1
  96. package/lib/typescript/src/hooks/useCactusSTT.d.ts +3 -3
  97. package/lib/typescript/src/hooks/useCactusSTT.d.ts.map +1 -1
  98. package/lib/typescript/src/index.d.ts +5 -1
  99. package/lib/typescript/src/index.d.ts.map +1 -1
  100. package/lib/typescript/src/native/Cactus.d.ts +4 -2
  101. package/lib/typescript/src/native/Cactus.d.ts.map +1 -1
  102. package/lib/typescript/src/native/CactusFileSystem.d.ts +1 -0
  103. package/lib/typescript/src/native/CactusFileSystem.d.ts.map +1 -1
  104. package/lib/typescript/src/native/CactusIndex.d.ts +12 -0
  105. package/lib/typescript/src/native/CactusIndex.d.ts.map +1 -0
  106. package/lib/typescript/src/native/CactusUtil.d.ts.map +1 -1
  107. package/lib/typescript/src/native/index.d.ts +1 -0
  108. package/lib/typescript/src/native/index.d.ts.map +1 -1
  109. package/lib/typescript/src/specs/Cactus.nitro.d.ts +4 -2
  110. package/lib/typescript/src/specs/Cactus.nitro.d.ts.map +1 -1
  111. package/lib/typescript/src/specs/CactusFileSystem.nitro.d.ts +1 -0
  112. package/lib/typescript/src/specs/CactusFileSystem.nitro.d.ts.map +1 -1
  113. package/lib/typescript/src/specs/CactusIndex.nitro.d.ts +24 -0
  114. package/lib/typescript/src/specs/CactusIndex.nitro.d.ts.map +1 -0
  115. package/lib/typescript/src/specs/CactusUtil.nitro.d.ts +1 -1
  116. package/lib/typescript/src/specs/CactusUtil.nitro.d.ts.map +1 -1
  117. package/lib/typescript/src/types/CactusIndex.d.ts +34 -0
  118. package/lib/typescript/src/types/CactusIndex.d.ts.map +1 -0
  119. package/lib/typescript/src/types/CactusLM.d.ts +17 -0
  120. package/lib/typescript/src/types/CactusLM.d.ts.map +1 -1
  121. package/lib/typescript/src/types/CactusModel.d.ts +1 -0
  122. package/lib/typescript/src/types/CactusModel.d.ts.map +1 -1
  123. package/lib/typescript/src/types/CactusSTT.d.ts +1 -1
  124. package/lib/typescript/src/types/CactusSTT.d.ts.map +1 -1
  125. package/lib/typescript/src/types/CactusSTTModel.d.ts +8 -0
  126. package/lib/typescript/src/types/CactusSTTModel.d.ts.map +1 -0
  127. package/nitro.json +3 -0
  128. package/nitrogen/generated/android/c++/JDeviceInfo.hpp +1 -1
  129. package/nitrogen/generated/android/c++/JFunc_void_double.hpp +1 -1
  130. package/nitrogen/generated/android/c++/JHybridCactusCryptoSpec.cpp +1 -1
  131. package/nitrogen/generated/android/c++/JHybridCactusCryptoSpec.hpp +1 -1
  132. package/nitrogen/generated/android/c++/JHybridCactusDeviceInfoSpec.cpp +1 -1
  133. package/nitrogen/generated/android/c++/JHybridCactusDeviceInfoSpec.hpp +1 -1
  134. package/nitrogen/generated/android/c++/JHybridCactusFileSystemSpec.cpp +17 -1
  135. package/nitrogen/generated/android/c++/JHybridCactusFileSystemSpec.hpp +2 -1
  136. package/nitrogen/generated/android/c++/JHybridCactusImageSpec.cpp +1 -1
  137. package/nitrogen/generated/android/c++/JHybridCactusImageSpec.hpp +1 -1
  138. package/nitrogen/generated/android/cactus+autolinking.cmake +2 -1
  139. package/nitrogen/generated/android/cactus+autolinking.gradle +1 -1
  140. package/nitrogen/generated/android/cactusOnLoad.cpp +11 -1
  141. package/nitrogen/generated/android/cactusOnLoad.hpp +1 -1
  142. package/nitrogen/generated/android/kotlin/com/margelo/nitro/cactus/DeviceInfo.kt +1 -1
  143. package/nitrogen/generated/android/kotlin/com/margelo/nitro/cactus/Func_void_double.kt +1 -1
  144. package/nitrogen/generated/android/kotlin/com/margelo/nitro/cactus/HybridCactusCryptoSpec.kt +1 -1
  145. package/nitrogen/generated/android/kotlin/com/margelo/nitro/cactus/HybridCactusDeviceInfoSpec.kt +1 -1
  146. package/nitrogen/generated/android/kotlin/com/margelo/nitro/cactus/HybridCactusFileSystemSpec.kt +5 -1
  147. package/nitrogen/generated/android/kotlin/com/margelo/nitro/cactus/HybridCactusImageSpec.kt +1 -1
  148. package/nitrogen/generated/android/kotlin/com/margelo/nitro/cactus/cactusOnLoad.kt +1 -1
  149. package/nitrogen/generated/ios/Cactus+autolinking.rb +1 -1
  150. package/nitrogen/generated/ios/Cactus-Swift-Cxx-Bridge.cpp +1 -1
  151. package/nitrogen/generated/ios/Cactus-Swift-Cxx-Bridge.hpp +1 -1
  152. package/nitrogen/generated/ios/Cactus-Swift-Cxx-Umbrella.hpp +1 -1
  153. package/nitrogen/generated/ios/CactusAutolinking.mm +11 -1
  154. package/nitrogen/generated/ios/CactusAutolinking.swift +1 -1
  155. package/nitrogen/generated/ios/c++/HybridCactusCryptoSpecSwift.cpp +1 -1
  156. package/nitrogen/generated/ios/c++/HybridCactusCryptoSpecSwift.hpp +1 -1
  157. package/nitrogen/generated/ios/c++/HybridCactusDeviceInfoSpecSwift.cpp +1 -1
  158. package/nitrogen/generated/ios/c++/HybridCactusDeviceInfoSpecSwift.hpp +1 -1
  159. package/nitrogen/generated/ios/c++/HybridCactusFileSystemSpecSwift.cpp +1 -1
  160. package/nitrogen/generated/ios/c++/HybridCactusFileSystemSpecSwift.hpp +9 -1
  161. package/nitrogen/generated/ios/c++/HybridCactusImageSpecSwift.cpp +1 -1
  162. package/nitrogen/generated/ios/c++/HybridCactusImageSpecSwift.hpp +1 -1
  163. package/nitrogen/generated/ios/swift/DeviceInfo.swift +1 -1
  164. package/nitrogen/generated/ios/swift/Func_void.swift +1 -1
  165. package/nitrogen/generated/ios/swift/Func_void_DeviceInfo.swift +1 -1
  166. package/nitrogen/generated/ios/swift/Func_void_bool.swift +1 -1
  167. package/nitrogen/generated/ios/swift/Func_void_double.swift +1 -1
  168. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -1
  169. package/nitrogen/generated/ios/swift/Func_void_std__optional_std__string_.swift +1 -1
  170. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +1 -1
  171. package/nitrogen/generated/ios/swift/HybridCactusCryptoSpec.swift +1 -1
  172. package/nitrogen/generated/ios/swift/HybridCactusCryptoSpec_cxx.swift +1 -1
  173. package/nitrogen/generated/ios/swift/HybridCactusDeviceInfoSpec.swift +1 -1
  174. package/nitrogen/generated/ios/swift/HybridCactusDeviceInfoSpec_cxx.swift +1 -1
  175. package/nitrogen/generated/ios/swift/HybridCactusFileSystemSpec.swift +2 -1
  176. package/nitrogen/generated/ios/swift/HybridCactusFileSystemSpec_cxx.swift +20 -1
  177. package/nitrogen/generated/ios/swift/HybridCactusImageSpec.swift +1 -1
  178. package/nitrogen/generated/ios/swift/HybridCactusImageSpec_cxx.swift +1 -1
  179. package/nitrogen/generated/shared/c++/CactusIndexGetResult.hpp +84 -0
  180. package/nitrogen/generated/shared/c++/CactusIndexQueryResult.hpp +79 -0
  181. package/nitrogen/generated/shared/c++/DeviceInfo.hpp +1 -1
  182. package/nitrogen/generated/shared/c++/HybridCactusCryptoSpec.cpp +1 -1
  183. package/nitrogen/generated/shared/c++/HybridCactusCryptoSpec.hpp +1 -1
  184. package/nitrogen/generated/shared/c++/HybridCactusDeviceInfoSpec.cpp +1 -1
  185. package/nitrogen/generated/shared/c++/HybridCactusDeviceInfoSpec.hpp +1 -1
  186. package/nitrogen/generated/shared/c++/HybridCactusFileSystemSpec.cpp +2 -1
  187. package/nitrogen/generated/shared/c++/HybridCactusFileSystemSpec.hpp +2 -1
  188. package/nitrogen/generated/shared/c++/HybridCactusImageSpec.cpp +1 -1
  189. package/nitrogen/generated/shared/c++/HybridCactusImageSpec.hpp +1 -1
  190. package/nitrogen/generated/shared/c++/HybridCactusIndexSpec.cpp +27 -0
  191. package/nitrogen/generated/shared/c++/HybridCactusIndexSpec.hpp +76 -0
  192. package/nitrogen/generated/shared/c++/HybridCactusSpec.cpp +3 -1
  193. package/nitrogen/generated/shared/c++/HybridCactusSpec.hpp +6 -3
  194. package/nitrogen/generated/shared/c++/HybridCactusUtilSpec.cpp +1 -1
  195. package/nitrogen/generated/shared/c++/HybridCactusUtilSpec.hpp +2 -2
  196. package/package.json +2 -2
  197. package/src/api/Database.ts +80 -2
  198. package/src/classes/CactusIndex.ts +58 -0
  199. package/src/classes/CactusLM.ts +41 -11
  200. package/src/classes/CactusSTT.ts +24 -16
  201. package/src/config/CactusConfig.ts +3 -0
  202. package/src/constants/packageVersion.ts +1 -1
  203. package/src/hooks/useCactusIndex.ts +195 -0
  204. package/src/hooks/useCactusLM.ts +63 -3
  205. package/src/hooks/useCactusSTT.ts +4 -4
  206. package/src/index.tsx +17 -0
  207. package/src/native/Cactus.ts +39 -4
  208. package/src/native/CactusFileSystem.ts +4 -0
  209. package/src/native/CactusIndex.ts +54 -0
  210. package/src/native/CactusUtil.ts +19 -3
  211. package/src/native/index.ts +1 -0
  212. package/src/specs/Cactus.nitro.ts +13 -2
  213. package/src/specs/CactusFileSystem.nitro.ts +2 -0
  214. package/src/specs/CactusIndex.nitro.ts +31 -0
  215. package/src/specs/CactusUtil.nitro.ts +1 -1
  216. package/src/telemetry/Telemetry.ts +1 -1
  217. package/src/types/CactusIndex.ts +40 -0
  218. package/src/types/CactusLM.ts +21 -0
  219. package/src/types/CactusModel.ts +1 -0
  220. package/src/types/CactusSTT.ts +1 -1
  221. package/src/types/CactusSTTModel.ts +10 -0
  222. package/android/src/main/jniLibs/arm64-v8a/libcactus_util.so +0 -0
@@ -6,7 +6,7 @@
6
6
  <dict>
7
7
  <key>Headers/cactus_util.h</key>
8
8
  <data>
9
- 7z1Ts4xufXPrnEBuKu+NppO1yKg=
9
+ 5lW8KZ3LQl0aqP6TUxyB+K0vcIE=
10
10
  </data>
11
11
  <key>Headers/ios_utils.h</key>
12
12
  <data>
@@ -18,7 +18,7 @@
18
18
  </data>
19
19
  <key>Info.plist</key>
20
20
  <data>
21
- OhVLqBjBr8wHfc8V3KCR4rpni5U=
21
+ gD92JC49Bf9W6pi0MZWov5LMRb4=
22
22
  </data>
23
23
  </dict>
24
24
  <key>files2</key>
@@ -27,7 +27,7 @@
27
27
  <dict>
28
28
  <key>hash2</key>
29
29
  <data>
30
- mIHS5tpbAc2yQnCfoYds/waoVwabQF9bYng+EYTSSrg=
30
+ Q7DuJEU0UWHgQ8cVdAc50lq592AjV42gMHSiDHx4OQk=
31
31
  </data>
32
32
  </dict>
33
33
  <key>Headers/ios_utils.h</key>
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { CactusUtil } from "../native/index.js";
4
4
  import { packageVersion } from "../constants/packageVersion.js";
5
+ import { CactusConfig } from "../config/CactusConfig.js";
5
6
  export class Database {
6
7
  static url = 'https://vlqqczxwyaodtcdmdmlw.supabase.co';
7
8
  static key = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InZscXFjenh3eWFvZHRjZG1kbWx3Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTE1MTg2MzIsImV4cCI6MjA2NzA5NDYzMn0.nBzqGuK9j6RZ6mOPWU2boAC_5H9XDs-fPpo5P3WZYbI';
@@ -21,12 +22,20 @@ export class Database {
21
22
  throw new Error('Sending logs failed');
22
23
  }
23
24
  }
24
- static async registerDevice(device_data) {
25
+ static async registerDevice({
26
+ deviceData,
27
+ deviceId
28
+ }) {
25
29
  const response = await fetch(`${this.url}/functions/v1/device-registration`, {
26
30
  method: 'POST',
27
31
  body: JSON.stringify({
28
- device_data
29
- })
32
+ device_data: deviceData,
33
+ device_id: deviceId,
34
+ cactus_pro_key: CactusConfig.cactusProKey
35
+ }),
36
+ headers: {
37
+ 'Content-Type': 'application/json'
38
+ }
30
39
  });
31
40
  if (!response.ok) {
32
41
  throw new Error('Registering device failed');
@@ -52,6 +61,30 @@ export class Database {
52
61
  downloadUrl: model.download_url,
53
62
  supportsToolCalling: model.supports_tool_calling,
54
63
  supportsVision: model.supports_vision,
64
+ supportsCompletion: model.supports_completion,
65
+ createdAt: model.created_at,
66
+ isDownloaded: false
67
+ };
68
+ }
69
+ static async getSTTModel(slug) {
70
+ const response = await fetch(`${this.url}/rest/v1/whisper?slug=eq.${slug}&select=*`, {
71
+ headers: {
72
+ 'apikey': this.key,
73
+ 'Authorization': `Bearer ${this.key}`,
74
+ 'Accept-Profile': 'cactus'
75
+ }
76
+ });
77
+ if (!response.ok) {
78
+ throw new Error('Getting STT model failed');
79
+ }
80
+ const [model] = await response.json();
81
+ if (!model) {
82
+ throw new Error(`STT model with slug "${slug}" not found`);
83
+ }
84
+ return {
85
+ slug: model.slug,
86
+ downloadUrl: model.download_url,
87
+ sizeMb: model.size_mb,
55
88
  createdAt: model.created_at,
56
89
  isDownloaded: false
57
90
  };
@@ -75,6 +108,27 @@ export class Database {
75
108
  downloadUrl: model.download_url,
76
109
  supportsToolCalling: model.supports_tool_calling,
77
110
  supportsVision: model.supports_vision,
111
+ supportsCompletion: model.supports_completion,
112
+ createdAt: model.created_at,
113
+ isDownloaded: false
114
+ }));
115
+ }
116
+ static async getSTTModels() {
117
+ const response = await fetch(`${this.url}/rest/v1/whisper?select=*`, {
118
+ headers: {
119
+ 'apikey': this.key,
120
+ 'Authorization': `Bearer ${this.key}`,
121
+ 'Accept-Profile': 'cactus'
122
+ }
123
+ });
124
+ if (!response.ok) {
125
+ throw new Error('Getting STT models failed');
126
+ }
127
+ const models = await response.json();
128
+ return models.map(model => ({
129
+ slug: model.slug,
130
+ downloadUrl: model.download_url,
131
+ sizeMb: model.size_mb,
78
132
  createdAt: model.created_at,
79
133
  isDownloaded: false
80
134
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["CactusUtil","packageVersion","Database","url","key","sendLogRecords","records","response","fetch","method","headers","body","JSON","stringify","ok","Error","registerDevice","device_data","registerApp","text","getModel","slug","apikey","Authorization","model","json","name","quantization","sizeMb","size_mb","downloadUrl","download_url","supportsToolCalling","supports_tool_calling","supportsVision","supports_vision","createdAt","created_at","isDownloaded","getModels","models","map"],"sourceRoot":"../../../src","sources":["api/Database.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,oBAAW;AAGtC,SAASC,cAAc,QAAQ,gCAA6B;AAc5D,OAAO,MAAMC,QAAQ,CAAC;EACpB,OAAwBC,GAAG,GAAG,0CAA0C;EACxE,OAAwBC,GAAG,GACzB,kNAAkN;EAEpN,aAAoBC,cAAcA,CAACC,OAAoB,EAAiB;IACtE,MAAMC,QAAQ,GAAG,MAAMC,KAAK,CAAC,GAAG,IAAI,CAACL,GAAG,eAAe,EAAE;MACvDM,MAAM,EAAE,MAAM;MACdC,OAAO,EAAE;QACP,QAAQ,EAAE,IAAI,CAACN,GAAG;QAClB,eAAe,EAAE,UAAU,IAAI,CAACA,GAAG,EAAE;QACrC,cAAc,EAAE,kBAAkB;QAClC,iBAAiB,EAAE,QAAQ;QAC3B,QAAQ,EAAE;MACZ,CAAC;MACDO,IAAI,EAAEC,IAAI,CAACC,SAAS,CAACP,OAAO;IAC9B,CAAC,CAAC;IAEF,IAAI,CAACC,QAAQ,CAACO,EAAE,EAAE;MAChB,MAAM,IAAIC,KAAK,CAAC,qBAAqB,CAAC;IACxC;EACF;EAEA,aAAoBC,cAAcA,CAACC,WAAuB,EAAmB;IAC3E,MAAMV,QAAQ,GAAG,MAAMC,KAAK,CAC1B,GAAG,IAAI,CAACL,GAAG,mCAAmC,EAC9C;MACEM,MAAM,EAAE,MAAM;MACdE,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;QAAEI;MAAY,CAAC;IACtC,CACF,CAAC;IAED,IAAI,CAACV,QAAQ,CAACO,EAAE,EAAE;MAChB,MAAM,IAAIC,KAAK,CAAC,2BAA2B,CAAC;IAC9C;IAEA,OAAO,MAAMf,UAAU,CAACkB,WAAW,CAAC,MAAMX,QAAQ,CAACY,IAAI,CAAC,CAAC,CAAC;EAC5D;EAEA,aAAoBC,QAAQA,CAACC,IAAY,EAAwB;IAC/D,MAAMd,QAAQ,GAAG,MAAMC,KAAK,CAC1B,GAAG,IAAI,CAACL,GAAG,iCAAiCkB,IAAI,+BAA+BpB,cAAc,EAAE,EAC/F;MACES,OAAO,EAAE;QAAEY,MAAM,EAAE,IAAI,CAAClB,GAAG;QAAEmB,aAAa,EAAE,UAAU,IAAI,CAACnB,GAAG;MAAG;IACnE,CACF,CAAC;IAED,IAAI,CAACG,QAAQ,CAACO,EAAE,EAAE;MAChB,MAAM,IAAIC,KAAK,CAAC,sBAAsB,CAAC;IACzC;IAEA,MAAMS,KAAK,GAAI,MAAMjB,QAAQ,CAACkB,IAAI,CAAC,CAAyB;IAE5D,OAAO;MACLC,IAAI,EAAEF,KAAK,CAACE,IAAI;MAChBL,IAAI,EAAEG,KAAK,CAACH,IAAI;MAChBM,YAAY,EAAEH,KAAK,CAACG,YAAY;MAChCC,MAAM,EAAEJ,KAAK,CAACK,OAAO;MACrBC,WAAW,EAAEN,KAAK,CAACO,YAAY;MAC/BC,mBAAmB,EAAER,KAAK,CAACS,qBAAqB;MAChDC,cAAc,EAAEV,KAAK,CAACW,eAAe;MACrCC,SAAS,EAAEZ,KAAK,CAACa,UAAU;MAC3BC,YAAY,EAAE;IAChB,CAAC;EACH;EAEA,aAAoBC,SAASA,CAAA,EAA2B;IACtD,MAAMhC,QAAQ,GAAG,MAAMC,KAAK,CAC1B,GAAG,IAAI,CAACL,GAAG,uDAAuDF,cAAc,EAAE,EAClF;MACES,OAAO,EAAE;QAAEY,MAAM,EAAE,IAAI,CAAClB,GAAG;QAAEmB,aAAa,EAAE,UAAU,IAAI,CAACnB,GAAG;MAAG;IACnE,CACF,CAAC;IAED,IAAI,CAACG,QAAQ,CAACO,EAAE,EAAE;MAChB,MAAM,IAAIC,KAAK,CAAC,uBAAuB,CAAC;IAC1C;IAEA,MAAMyB,MAAM,GAAI,MAAMjC,QAAQ,CAACkB,IAAI,CAAC,CAA2B;IAE/D,OAAOe,MAAM,CAACC,GAAG,CAAEjB,KAAK,KAAM;MAC5BE,IAAI,EAAEF,KAAK,CAACE,IAAI;MAChBL,IAAI,EAAEG,KAAK,CAACH,IAAI;MAChBM,YAAY,EAAEH,KAAK,CAACG,YAAY;MAChCC,MAAM,EAAEJ,KAAK,CAACK,OAAO;MACrBC,WAAW,EAAEN,KAAK,CAACO,YAAY;MAC/BC,mBAAmB,EAAER,KAAK,CAACS,qBAAqB;MAChDC,cAAc,EAAEV,KAAK,CAACW,eAAe;MACrCC,SAAS,EAAEZ,KAAK,CAACa,UAAU;MAC3BC,YAAY,EAAE;IAChB,CAAC,CAAC,CAAC;EACL;AACF","ignoreList":[]}
1
+ {"version":3,"names":["CactusUtil","packageVersion","CactusConfig","Database","url","key","sendLogRecords","records","response","fetch","method","headers","body","JSON","stringify","ok","Error","registerDevice","deviceData","deviceId","device_data","device_id","cactus_pro_key","cactusProKey","registerApp","text","getModel","slug","apikey","Authorization","model","json","name","quantization","sizeMb","size_mb","downloadUrl","download_url","supportsToolCalling","supports_tool_calling","supportsVision","supports_vision","supportsCompletion","supports_completion","createdAt","created_at","isDownloaded","getSTTModel","getModels","models","map","getSTTModels"],"sourceRoot":"../../../src","sources":["api/Database.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ import { CactusIndex as NativeCactusIndex, CactusFileSystem } from "../native/index.js";
4
+ export class CactusIndex {
5
+ cactusIndex = new NativeCactusIndex();
6
+ constructor(name, embeddingDim) {
7
+ this.name = name;
8
+ this.embeddingDim = embeddingDim;
9
+ }
10
+ async init() {
11
+ const indexPath = await CactusFileSystem.getIndexPath(this.name);
12
+ return this.cactusIndex.init(indexPath, this.embeddingDim);
13
+ }
14
+ add({
15
+ ids,
16
+ documents,
17
+ embeddings,
18
+ metadatas
19
+ }) {
20
+ return this.cactusIndex.add(ids, documents, embeddings, metadatas);
21
+ }
22
+ delete({
23
+ ids
24
+ }) {
25
+ return this.cactusIndex.delete(ids);
26
+ }
27
+ get({
28
+ ids
29
+ }) {
30
+ return this.cactusIndex.get(ids);
31
+ }
32
+ query({
33
+ embeddings,
34
+ options
35
+ }) {
36
+ return this.cactusIndex.query(embeddings, options);
37
+ }
38
+ compact() {
39
+ return this.cactusIndex.compact();
40
+ }
41
+ destroy() {
42
+ return this.cactusIndex.destroy();
43
+ }
44
+ }
45
+ //# sourceMappingURL=CactusIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CactusIndex","NativeCactusIndex","CactusFileSystem","cactusIndex","constructor","name","embeddingDim","init","indexPath","getIndexPath","add","ids","documents","embeddings","metadatas","delete","get","query","options","compact","destroy"],"sourceRoot":"../../../src","sources":["classes/CactusIndex.ts"],"mappings":";;AAAA,SAASA,WAAW,IAAIC,iBAAiB,EAAEC,gBAAgB,QAAQ,oBAAW;AAU9E,OAAO,MAAMF,WAAW,CAAC;EACNG,WAAW,GAAG,IAAIF,iBAAiB,CAAC,CAAC;EAKtDG,WAAWA,CAACC,IAAY,EAAEC,YAAoB,EAAE;IAC9C,IAAI,CAACD,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,YAAY,GAAGA,YAAY;EAClC;EAEA,MAAaC,IAAIA,CAAA,EAAkB;IACjC,MAAMC,SAAS,GAAG,MAAMN,gBAAgB,CAACO,YAAY,CAAC,IAAI,CAACJ,IAAI,CAAC;IAChE,OAAO,IAAI,CAACF,WAAW,CAACI,IAAI,CAACC,SAAS,EAAE,IAAI,CAACF,YAAY,CAAC;EAC5D;EAEOI,GAAGA,CAAC;IACTC,GAAG;IACHC,SAAS;IACTC,UAAU;IACVC;EACoB,CAAC,EAAiB;IACtC,OAAO,IAAI,CAACX,WAAW,CAACO,GAAG,CAACC,GAAG,EAAEC,SAAS,EAAEC,UAAU,EAAEC,SAAS,CAAC;EACpE;EAEOC,MAAMA,CAAC;IAAEJ;EAA6B,CAAC,EAAiB;IAC7D,OAAO,IAAI,CAACR,WAAW,CAACY,MAAM,CAACJ,GAAG,CAAC;EACrC;EAEOK,GAAGA,CAAC;IAAEL;EAA0B,CAAC,EAAiC;IACvE,OAAO,IAAI,CAACR,WAAW,CAACa,GAAG,CAACL,GAAG,CAAC;EAClC;EAEOM,KAAKA,CAAC;IACXJ,UAAU;IACVK;EACsB,CAAC,EAAmC;IAC1D,OAAO,IAAI,CAACf,WAAW,CAACc,KAAK,CAACJ,UAAU,EAAEK,OAAO,CAAC;EACpD;EAEOC,OAAOA,CAAA,EAAkB;IAC9B,OAAO,IAAI,CAAChB,WAAW,CAACgB,OAAO,CAAC,CAAC;EACnC;EAEOC,OAAOA,CAAA,EAAkB;IAC9B,OAAO,IAAI,CAACjB,WAAW,CAACiB,OAAO,CAAC,CAAC;EACnC;AACF","ignoreList":[]}
@@ -18,7 +18,6 @@ export class CactusLM {
18
18
  };
19
19
  static defaultCompleteMode = 'local';
20
20
  static defaultEmbedBufferSize = 2048;
21
- static cactusModelsCache = null;
22
21
  constructor({
23
22
  model,
24
23
  contextSize,
@@ -32,6 +31,10 @@ export class CactusLM {
32
31
  async download({
33
32
  onProgress
34
33
  } = {}) {
34
+ if (this.isModelPath(this.model)) {
35
+ onProgress?.(1.0);
36
+ return;
37
+ }
35
38
  if (this.isDownloading) {
36
39
  throw new Error('CactusLM is already downloading');
37
40
  }
@@ -51,10 +54,15 @@ export class CactusLM {
51
54
  if (this.isInitialized) {
52
55
  return;
53
56
  }
54
- if (!(await CactusFileSystem.modelExists(this.model))) {
55
- throw new Error(`Model "${this.model}" is not downloaded`);
57
+ let modelPath;
58
+ if (this.isModelPath(this.model)) {
59
+ modelPath = this.model.replace('file://', '');
60
+ } else {
61
+ if (!(await CactusFileSystem.modelExists(this.model))) {
62
+ throw new Error(`Model "${this.model}" is not downloaded`);
63
+ }
64
+ modelPath = await CactusFileSystem.getModelPath(this.model);
56
65
  }
57
- const modelPath = await CactusFileSystem.getModelPath(this.model);
58
66
  try {
59
67
  await this.cactus.init(modelPath, this.contextSize, this.corpusDir);
60
68
  Telemetry.logInit(this.model, true);
@@ -105,8 +113,26 @@ export class CactusLM {
105
113
  this.isGenerating = false;
106
114
  }
107
115
  }
108
- async embed({
116
+ async tokenize({
109
117
  text
118
+ }) {
119
+ return {
120
+ tokens: await this.cactus.tokenize(text)
121
+ };
122
+ }
123
+ async scoreWindow({
124
+ tokens,
125
+ start,
126
+ end,
127
+ context
128
+ }) {
129
+ return {
130
+ score: await this.cactus.scoreWindow(tokens, start, end, context)
131
+ };
132
+ }
133
+ async embed({
134
+ text,
135
+ normalize = false
110
136
  }) {
111
137
  if (this.isGenerating) {
112
138
  throw new Error('CactusLM is already generating');
@@ -114,7 +140,7 @@ export class CactusLM {
114
140
  await this.init();
115
141
  this.isGenerating = true;
116
142
  try {
117
- const embedding = await this.cactus.embed(text, CactusLM.defaultEmbedBufferSize);
143
+ const embedding = await this.cactus.embed(text, CactusLM.defaultEmbedBufferSize, normalize);
118
144
  Telemetry.logEmbedding(this.model, true);
119
145
  return {
120
146
  embedding
@@ -163,15 +189,14 @@ export class CactusLM {
163
189
  this.isInitialized = false;
164
190
  }
165
191
  async getModels() {
166
- if (CactusLM.cactusModelsCache) {
167
- return CactusLM.cactusModelsCache;
168
- }
169
192
  const models = await Database.getModels();
170
193
  for (const model of models) {
171
194
  model.isDownloaded = await CactusFileSystem.modelExists(model.slug);
172
195
  }
173
- CactusLM.cactusModelsCache = models;
174
196
  return models;
175
197
  }
198
+ isModelPath(model) {
199
+ return model.startsWith('file://') || model.startsWith('/');
200
+ }
176
201
  }
177
202
  //# sourceMappingURL=CactusLM.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Cactus","CactusFileSystem","Telemetry","CactusConfig","Database","getErrorMessage","RemoteLM","CactusLM","cactus","isDownloading","isInitialized","isGenerating","defaultModel","defaultContextSize","defaultCompleteOptions","maxTokens","defaultCompleteMode","defaultEmbedBufferSize","cactusModelsCache","constructor","model","contextSize","corpusDir","init","telemetryToken","download","onProgress","Error","modelExists","getModel","downloadModel","downloadUrl","modelPath","getModelPath","logInit","error","complete","messages","options","tools","onToken","mode","toolsInternal","map","tool","type","function","responseBufferSize","result","logCompletion","success","undefined","response","localError","remoteError","embed","text","embedding","logEmbedding","imageEmbed","imagePath","logImageEmbedding","stop","reset","destroy","getModels","models","isDownloaded","slug"],"sourceRoot":"../../../src","sources":["classes/CactusLM.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Cactus","CactusFileSystem","Telemetry","CactusConfig","Database","getErrorMessage","RemoteLM","CactusLM","cactus","isDownloading","isInitialized","isGenerating","defaultModel","defaultContextSize","defaultCompleteOptions","maxTokens","defaultCompleteMode","defaultEmbedBufferSize","constructor","model","contextSize","corpusDir","init","telemetryToken","download","onProgress","isModelPath","Error","modelExists","getModel","downloadModel","downloadUrl","modelPath","replace","getModelPath","logInit","error","complete","messages","options","tools","onToken","mode","toolsInternal","map","tool","type","function","responseBufferSize","result","logCompletion","success","undefined","response","localError","remoteError","tokenize","text","tokens","scoreWindow","start","end","context","score","embed","normalize","embedding","logEmbedding","imageEmbed","imagePath","logImageEmbedding","stop","reset","destroy","getModels","models","isDownloaded","slug","startsWith"],"sourceRoot":"../../../src","sources":["classes/CactusLM.ts"],"mappings":"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","ignoreList":[]}
@@ -17,7 +17,6 @@ export class CactusSTT {
17
17
  maxTokens: 512
18
18
  };
19
19
  static defaultEmbedBufferSize = 4096;
20
- static cactusModelsCache = null;
21
20
  constructor({
22
21
  model,
23
22
  contextSize
@@ -29,6 +28,10 @@ export class CactusSTT {
29
28
  async download({
30
29
  onProgress
31
30
  } = {}) {
31
+ if (this.isModelPath(this.model)) {
32
+ onProgress?.(1.0);
33
+ return;
34
+ }
32
35
  if (this.isDownloading) {
33
36
  throw new Error('CactusSTT is already downloading');
34
37
  }
@@ -38,7 +41,8 @@ export class CactusSTT {
38
41
  }
39
42
  this.isDownloading = true;
40
43
  try {
41
- await CactusFileSystem.downloadModel(this.model, `https://vlqqczxwyaodtcdmdmlw.supabase.co/storage/v1/object/public/voice-models/${this.model}.zip`, onProgress);
44
+ const model = await Database.getSTTModel(this.model);
45
+ await CactusFileSystem.downloadModel(this.model, model.downloadUrl, onProgress);
42
46
  } finally {
43
47
  this.isDownloading = false;
44
48
  }
@@ -47,10 +51,15 @@ export class CactusSTT {
47
51
  if (this.isInitialized) {
48
52
  return;
49
53
  }
50
- if (!(await CactusFileSystem.modelExists(this.model))) {
51
- throw new Error(`Model "${this.model}" is not downloaded`);
54
+ let modelPath;
55
+ if (this.isModelPath(this.model)) {
56
+ modelPath = this.model.replace('file://', '');
57
+ } else {
58
+ if (!(await CactusFileSystem.modelExists(this.model))) {
59
+ throw new Error(`Model "${this.model}" is not downloaded`);
60
+ }
61
+ modelPath = await CactusFileSystem.getModelPath(this.model);
52
62
  }
53
- const modelPath = await CactusFileSystem.getModelPath(this.model);
54
63
  try {
55
64
  await this.cactus.init(modelPath, this.contextSize);
56
65
  Telemetry.logInit(this.model, true);
@@ -61,7 +70,7 @@ export class CactusSTT {
61
70
  }
62
71
  }
63
72
  async transcribe({
64
- audioFilePath,
73
+ audio,
65
74
  prompt,
66
75
  options,
67
76
  onToken
@@ -78,7 +87,7 @@ export class CactusSTT {
78
87
  const responseBufferSize = 8 * (options.maxTokens ?? CactusSTT.defaultTranscribeOptions.maxTokens) + 256;
79
88
  this.isGenerating = true;
80
89
  try {
81
- const result = await this.cactus.transcribe(audioFilePath, prompt, responseBufferSize, options, onToken);
90
+ const result = await this.cactus.transcribe(audio, prompt, responseBufferSize, options, onToken);
82
91
  Telemetry.logTranscribe(this.model, result.success, result.success ? undefined : result.response, result);
83
92
  return result;
84
93
  } catch (error) {
@@ -125,15 +134,14 @@ export class CactusSTT {
125
134
  this.isInitialized = false;
126
135
  }
127
136
  async getModels() {
128
- if (CactusSTT.cactusModelsCache) {
129
- return CactusSTT.cactusModelsCache;
130
- }
131
- const models = await Database.getModels();
137
+ const models = await Database.getSTTModels();
132
138
  for (const model of models) {
133
139
  model.isDownloaded = await CactusFileSystem.modelExists(model.slug);
134
140
  }
135
- CactusSTT.cactusModelsCache = models;
136
141
  return models;
137
142
  }
143
+ isModelPath(model) {
144
+ return model.startsWith('file://') || model.startsWith('/');
145
+ }
138
146
  }
139
147
  //# sourceMappingURL=CactusSTT.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Cactus","CactusFileSystem","Telemetry","CactusConfig","Database","getErrorMessage","CactusSTT","cactus","isDownloading","isInitialized","isGenerating","defaultModel","defaultContextSize","defaultPrompt","defaultTranscribeOptions","maxTokens","defaultEmbedBufferSize","cactusModelsCache","constructor","model","contextSize","init","telemetryToken","download","onProgress","Error","modelExists","downloadModel","modelPath","getModelPath","logInit","error","transcribe","audioFilePath","prompt","options","onToken","responseBufferSize","result","logTranscribe","success","undefined","response","audioEmbed","audioPath","embedding","logAudioEmbedding","stop","reset","destroy","getModels","models","isDownloaded","slug"],"sourceRoot":"../../../src","sources":["classes/CactusSTT.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Cactus","CactusFileSystem","Telemetry","CactusConfig","Database","getErrorMessage","CactusSTT","cactus","isDownloading","isInitialized","isGenerating","defaultModel","defaultContextSize","defaultPrompt","defaultTranscribeOptions","maxTokens","defaultEmbedBufferSize","constructor","model","contextSize","init","telemetryToken","download","onProgress","isModelPath","Error","modelExists","getSTTModel","downloadModel","downloadUrl","modelPath","replace","getModelPath","logInit","error","transcribe","audio","prompt","options","onToken","responseBufferSize","result","logTranscribe","success","undefined","response","audioEmbed","audioPath","embedding","logAudioEmbedding","stop","reset","destroy","getModels","models","getSTTModels","isDownloaded","slug","startsWith"],"sourceRoot":"../../../src","sources":["classes/CactusSTT.ts"],"mappings":"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","ignoreList":[]}
@@ -6,5 +6,7 @@ export class CactusConfig {
6
6
  static isTelemetryEnabled = true;
7
7
 
8
8
  // Hybrid mode
9
+
10
+ // Pro features
9
11
  }
10
12
  //# sourceMappingURL=CactusConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CactusConfig","isTelemetryEnabled"],"sourceRoot":"../../../src","sources":["config/CactusConfig.ts"],"mappings":";;AAAA,OAAO,MAAMA,YAAY,CAAC;EACxB;;EAEA,OAAcC,kBAAkB,GAAY,IAAI;;EAEhD;AAEF","ignoreList":[]}
1
+ {"version":3,"names":["CactusConfig","isTelemetryEnabled"],"sourceRoot":"../../../src","sources":["config/CactusConfig.ts"],"mappings":";;AAAA,OAAO,MAAMA,YAAY,CAAC;EACxB;;EAEA,OAAcC,kBAAkB,GAAY,IAAI;;EAEhD;;EAGA;AAEF","ignoreList":[]}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
 
3
- export const packageVersion = '1.2.0';
3
+ export const packageVersion = '1.4.0';
4
4
  //# sourceMappingURL=packageVersion.js.map
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useEffect, useState } from 'react';
4
+ import { CactusIndex } from "../classes/CactusIndex.js";
5
+ import { getErrorMessage } from "../utils/error.js";
6
+ export const useCactusIndex = ({
7
+ name,
8
+ embeddingDim
9
+ }) => {
10
+ const [cactusIndex, setCactusIndex] = useState(() => new CactusIndex(name, embeddingDim));
11
+
12
+ // State
13
+ const [isInitializing, setIsInitializing] = useState(false);
14
+ const [isProcessing, setIsProcessing] = useState(false);
15
+ const [error, setError] = useState(null);
16
+ useEffect(() => {
17
+ setCactusIndex(new CactusIndex(name, embeddingDim));
18
+ setIsInitializing(false);
19
+ setIsProcessing(false);
20
+ setError(null);
21
+ }, [name, embeddingDim]);
22
+ useEffect(() => {
23
+ return () => {
24
+ cactusIndex.destroy().catch(() => {});
25
+ };
26
+ }, [cactusIndex]);
27
+ const init = useCallback(async () => {
28
+ if (isInitializing) {
29
+ const message = 'CactusIndex is already initializing';
30
+ setError(message);
31
+ throw new Error(message);
32
+ }
33
+ setError(null);
34
+ setIsInitializing(true);
35
+ try {
36
+ await cactusIndex.init();
37
+ } catch (e) {
38
+ setError(getErrorMessage(e));
39
+ throw e;
40
+ } finally {
41
+ setIsInitializing(false);
42
+ }
43
+ }, [cactusIndex, isInitializing]);
44
+ const add = useCallback(async ({
45
+ ids,
46
+ documents,
47
+ metadatas,
48
+ embeddings
49
+ }) => {
50
+ if (isProcessing) {
51
+ const message = 'CactusIndex is already processing';
52
+ setError(message);
53
+ throw new Error(message);
54
+ }
55
+ setError(null);
56
+ setIsProcessing(true);
57
+ try {
58
+ await cactusIndex.add({
59
+ ids,
60
+ documents,
61
+ metadatas,
62
+ embeddings
63
+ });
64
+ } catch (e) {
65
+ setError(getErrorMessage(e));
66
+ throw e;
67
+ } finally {
68
+ setIsProcessing(false);
69
+ }
70
+ }, [cactusIndex, isProcessing]);
71
+ const _delete = useCallback(async ({
72
+ ids
73
+ }) => {
74
+ if (isProcessing) {
75
+ const message = 'CactusIndex is already processing';
76
+ setError(message);
77
+ throw new Error(message);
78
+ }
79
+ setError(null);
80
+ setIsProcessing(true);
81
+ try {
82
+ await cactusIndex.delete({
83
+ ids
84
+ });
85
+ } catch (e) {
86
+ setError(getErrorMessage(e));
87
+ throw e;
88
+ } finally {
89
+ setIsProcessing(false);
90
+ }
91
+ }, [cactusIndex, isProcessing]);
92
+ const get = useCallback(async ({
93
+ ids
94
+ }) => {
95
+ if (isProcessing) {
96
+ const message = 'CactusIndex is already processing';
97
+ setError(message);
98
+ throw new Error(message);
99
+ }
100
+ setError(null);
101
+ setIsProcessing(true);
102
+ try {
103
+ return await cactusIndex.get({
104
+ ids
105
+ });
106
+ } catch (e) {
107
+ setError(getErrorMessage(e));
108
+ throw e;
109
+ } finally {
110
+ setIsProcessing(false);
111
+ }
112
+ }, [cactusIndex, isProcessing]);
113
+ const query = useCallback(async ({
114
+ embeddings,
115
+ options
116
+ }) => {
117
+ if (isProcessing) {
118
+ const message = 'CactusIndex is already processing';
119
+ setError(message);
120
+ throw new Error(message);
121
+ }
122
+ setError(null);
123
+ setIsProcessing(true);
124
+ try {
125
+ return await cactusIndex.query({
126
+ embeddings,
127
+ options
128
+ });
129
+ } catch (e) {
130
+ setError(getErrorMessage(e));
131
+ throw e;
132
+ } finally {
133
+ setIsProcessing(false);
134
+ }
135
+ }, [cactusIndex, isProcessing]);
136
+ const compact = useCallback(async () => {
137
+ if (isProcessing) {
138
+ const message = 'CactusIndex is already processing';
139
+ setError(message);
140
+ throw new Error(message);
141
+ }
142
+ setError(null);
143
+ setIsProcessing(true);
144
+ try {
145
+ await cactusIndex.compact();
146
+ } catch (e) {
147
+ setError(getErrorMessage(e));
148
+ throw e;
149
+ } finally {
150
+ setIsProcessing(false);
151
+ }
152
+ }, [cactusIndex, isProcessing]);
153
+ const destroy = useCallback(async () => {
154
+ setError(null);
155
+ try {
156
+ await cactusIndex.destroy();
157
+ } catch (e) {
158
+ setError(getErrorMessage(e));
159
+ throw e;
160
+ }
161
+ }, [cactusIndex]);
162
+ return {
163
+ isInitializing,
164
+ isProcessing,
165
+ error,
166
+ init,
167
+ add,
168
+ delete: _delete,
169
+ get,
170
+ query,
171
+ compact,
172
+ destroy
173
+ };
174
+ };
175
+ //# sourceMappingURL=useCactusIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useEffect","useState","CactusIndex","getErrorMessage","useCactusIndex","name","embeddingDim","cactusIndex","setCactusIndex","isInitializing","setIsInitializing","isProcessing","setIsProcessing","error","setError","destroy","catch","init","message","Error","e","add","ids","documents","metadatas","embeddings","_delete","delete","get","query","options","compact"],"sourceRoot":"../../../src","sources":["hooks/useCactusIndex.ts"],"mappings":"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","ignoreList":[]}