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.
- package/README.md +573 -13
- package/android/CMakeLists.txt +4 -3
- package/android/src/main/java/com/margelo/nitro/cactus/HybridCactusFileSystem.kt +21 -4
- package/android/src/main/jniLibs/arm64-v8a/libcactus.a +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libcactus_util.a +0 -0
- package/cpp/HybridCactus.cpp +112 -19
- package/cpp/HybridCactus.hpp +12 -3
- package/cpp/HybridCactusIndex.cpp +325 -0
- package/cpp/HybridCactusIndex.hpp +43 -0
- package/cpp/HybridCactusUtil.cpp +3 -3
- package/cpp/HybridCactusUtil.hpp +2 -1
- package/cpp/cactus_ffi.h +83 -2
- package/cpp/cactus_util.h +1 -1
- package/ios/HybridCactusFileSystem.swift +23 -2
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/cactus.h +2 -0
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/cactus_ffi.h +83 -2
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/cactus_telemetry.h +656 -0
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/{ffi_utils.h → cactus_utils.h} +104 -17
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/engine.h +117 -7
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/graph.h +91 -5
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/kernel.h +15 -6
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Info.plist +0 -0
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/cactus +0 -0
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/cactus.h +2 -0
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/cactus_ffi.h +83 -2
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/cactus_telemetry.h +656 -0
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/{ffi_utils.h → cactus_utils.h} +104 -17
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/engine.h +117 -7
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/graph.h +91 -5
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/kernel.h +15 -6
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Info.plist +0 -0
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/_CodeSignature/CodeResources +1 -1
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/cactus +0 -0
- package/ios/cactus_util.xcframework/Info.plist +4 -4
- package/ios/cactus_util.xcframework/ios-arm64/cactus_util.framework/Headers/cactus_util.h +1 -1
- package/ios/cactus_util.xcframework/ios-arm64/cactus_util.framework/Headers/database.h +27 -0
- package/ios/cactus_util.xcframework/ios-arm64/cactus_util.framework/Info.plist +0 -0
- package/ios/cactus_util.xcframework/ios-arm64/cactus_util.framework/cactus_util +0 -0
- package/ios/cactus_util.xcframework/ios-arm64-simulator/cactus_util.framework/Headers/cactus_util.h +1 -1
- package/ios/cactus_util.xcframework/ios-arm64-simulator/cactus_util.framework/Headers/database.h +27 -0
- package/ios/cactus_util.xcframework/ios-arm64-simulator/cactus_util.framework/Info.plist +0 -0
- package/ios/cactus_util.xcframework/ios-arm64-simulator/cactus_util.framework/_CodeSignature/CodeResources +3 -3
- package/ios/cactus_util.xcframework/ios-arm64-simulator/cactus_util.framework/cactus_util +0 -0
- package/lib/module/api/Database.js +57 -3
- package/lib/module/api/Database.js.map +1 -1
- package/lib/module/classes/CactusIndex.js +45 -0
- package/lib/module/classes/CactusIndex.js.map +1 -0
- package/lib/module/classes/CactusLM.js +35 -10
- package/lib/module/classes/CactusLM.js.map +1 -1
- package/lib/module/classes/CactusSTT.js +20 -12
- package/lib/module/classes/CactusSTT.js.map +1 -1
- package/lib/module/config/CactusConfig.js +2 -0
- package/lib/module/config/CactusConfig.js.map +1 -1
- package/lib/module/constants/packageVersion.js +1 -1
- package/lib/module/hooks/useCactusIndex.js +175 -0
- package/lib/module/hooks/useCactusIndex.js.map +1 -0
- package/lib/module/hooks/useCactusLM.js +54 -2
- package/lib/module/hooks/useCactusLM.js.map +1 -1
- package/lib/module/hooks/useCactusSTT.js +2 -2
- package/lib/module/hooks/useCactusSTT.js.map +1 -1
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/native/Cactus.js +21 -5
- package/lib/module/native/Cactus.js.map +1 -1
- package/lib/module/native/CactusFileSystem.js +3 -0
- package/lib/module/native/CactusFileSystem.js.map +1 -1
- package/lib/module/native/CactusIndex.js +32 -0
- package/lib/module/native/CactusIndex.js.map +1 -0
- package/lib/module/native/CactusUtil.js +16 -3
- package/lib/module/native/CactusUtil.js.map +1 -1
- package/lib/module/native/index.js +1 -0
- package/lib/module/native/index.js.map +1 -1
- package/lib/module/specs/CactusIndex.nitro.js +4 -0
- package/lib/module/specs/CactusIndex.nitro.js.map +1 -0
- package/lib/module/telemetry/Telemetry.js +3 -1
- package/lib/module/telemetry/Telemetry.js.map +1 -1
- package/lib/module/types/CactusIndex.js +2 -0
- package/lib/module/types/CactusIndex.js.map +1 -0
- package/lib/module/types/CactusSTTModel.js +2 -0
- package/lib/module/types/CactusSTTModel.js.map +1 -0
- package/lib/typescript/src/api/Database.d.ts +7 -1
- package/lib/typescript/src/api/Database.d.ts.map +1 -1
- package/lib/typescript/src/classes/CactusIndex.d.ts +15 -0
- package/lib/typescript/src/classes/CactusIndex.d.ts.map +1 -0
- package/lib/typescript/src/classes/CactusLM.d.ts +5 -3
- package/lib/typescript/src/classes/CactusLM.d.ts.map +1 -1
- package/lib/typescript/src/classes/CactusSTT.d.ts +4 -4
- package/lib/typescript/src/classes/CactusSTT.d.ts.map +1 -1
- package/lib/typescript/src/config/CactusConfig.d.ts +1 -0
- package/lib/typescript/src/config/CactusConfig.d.ts.map +1 -1
- package/lib/typescript/src/constants/packageVersion.d.ts +1 -1
- package/lib/typescript/src/hooks/useCactusIndex.d.ts +14 -0
- package/lib/typescript/src/hooks/useCactusIndex.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useCactusLM.d.ts +4 -2
- package/lib/typescript/src/hooks/useCactusLM.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useCactusSTT.d.ts +3 -3
- package/lib/typescript/src/hooks/useCactusSTT.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +5 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/native/Cactus.d.ts +4 -2
- package/lib/typescript/src/native/Cactus.d.ts.map +1 -1
- package/lib/typescript/src/native/CactusFileSystem.d.ts +1 -0
- package/lib/typescript/src/native/CactusFileSystem.d.ts.map +1 -1
- package/lib/typescript/src/native/CactusIndex.d.ts +12 -0
- package/lib/typescript/src/native/CactusIndex.d.ts.map +1 -0
- package/lib/typescript/src/native/CactusUtil.d.ts.map +1 -1
- package/lib/typescript/src/native/index.d.ts +1 -0
- package/lib/typescript/src/native/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/Cactus.nitro.d.ts +4 -2
- package/lib/typescript/src/specs/Cactus.nitro.d.ts.map +1 -1
- package/lib/typescript/src/specs/CactusFileSystem.nitro.d.ts +1 -0
- package/lib/typescript/src/specs/CactusFileSystem.nitro.d.ts.map +1 -1
- package/lib/typescript/src/specs/CactusIndex.nitro.d.ts +24 -0
- package/lib/typescript/src/specs/CactusIndex.nitro.d.ts.map +1 -0
- package/lib/typescript/src/specs/CactusUtil.nitro.d.ts +1 -1
- package/lib/typescript/src/specs/CactusUtil.nitro.d.ts.map +1 -1
- package/lib/typescript/src/types/CactusIndex.d.ts +34 -0
- package/lib/typescript/src/types/CactusIndex.d.ts.map +1 -0
- package/lib/typescript/src/types/CactusLM.d.ts +17 -0
- package/lib/typescript/src/types/CactusLM.d.ts.map +1 -1
- package/lib/typescript/src/types/CactusModel.d.ts +1 -0
- package/lib/typescript/src/types/CactusModel.d.ts.map +1 -1
- package/lib/typescript/src/types/CactusSTT.d.ts +1 -1
- package/lib/typescript/src/types/CactusSTT.d.ts.map +1 -1
- package/lib/typescript/src/types/CactusSTTModel.d.ts +8 -0
- package/lib/typescript/src/types/CactusSTTModel.d.ts.map +1 -0
- package/nitro.json +3 -0
- package/nitrogen/generated/android/c++/JDeviceInfo.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_double.hpp +1 -1
- package/nitrogen/generated/android/c++/JHybridCactusCryptoSpec.cpp +1 -1
- package/nitrogen/generated/android/c++/JHybridCactusCryptoSpec.hpp +1 -1
- package/nitrogen/generated/android/c++/JHybridCactusDeviceInfoSpec.cpp +1 -1
- package/nitrogen/generated/android/c++/JHybridCactusDeviceInfoSpec.hpp +1 -1
- package/nitrogen/generated/android/c++/JHybridCactusFileSystemSpec.cpp +17 -1
- package/nitrogen/generated/android/c++/JHybridCactusFileSystemSpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridCactusImageSpec.cpp +1 -1
- package/nitrogen/generated/android/c++/JHybridCactusImageSpec.hpp +1 -1
- package/nitrogen/generated/android/cactus+autolinking.cmake +2 -1
- package/nitrogen/generated/android/cactus+autolinking.gradle +1 -1
- package/nitrogen/generated/android/cactusOnLoad.cpp +11 -1
- package/nitrogen/generated/android/cactusOnLoad.hpp +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/cactus/DeviceInfo.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/cactus/Func_void_double.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/cactus/HybridCactusCryptoSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/cactus/HybridCactusDeviceInfoSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/cactus/HybridCactusFileSystemSpec.kt +5 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/cactus/HybridCactusImageSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/cactus/cactusOnLoad.kt +1 -1
- package/nitrogen/generated/ios/Cactus+autolinking.rb +1 -1
- package/nitrogen/generated/ios/Cactus-Swift-Cxx-Bridge.cpp +1 -1
- package/nitrogen/generated/ios/Cactus-Swift-Cxx-Bridge.hpp +1 -1
- package/nitrogen/generated/ios/Cactus-Swift-Cxx-Umbrella.hpp +1 -1
- package/nitrogen/generated/ios/CactusAutolinking.mm +11 -1
- package/nitrogen/generated/ios/CactusAutolinking.swift +1 -1
- package/nitrogen/generated/ios/c++/HybridCactusCryptoSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridCactusCryptoSpecSwift.hpp +1 -1
- package/nitrogen/generated/ios/c++/HybridCactusDeviceInfoSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridCactusDeviceInfoSpecSwift.hpp +1 -1
- package/nitrogen/generated/ios/c++/HybridCactusFileSystemSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridCactusFileSystemSpecSwift.hpp +9 -1
- package/nitrogen/generated/ios/c++/HybridCactusImageSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridCactusImageSpecSwift.hpp +1 -1
- package/nitrogen/generated/ios/swift/DeviceInfo.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_DeviceInfo.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_bool.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_double.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_std__optional_std__string_.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridCactusCryptoSpec.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridCactusCryptoSpec_cxx.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridCactusDeviceInfoSpec.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridCactusDeviceInfoSpec_cxx.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridCactusFileSystemSpec.swift +2 -1
- package/nitrogen/generated/ios/swift/HybridCactusFileSystemSpec_cxx.swift +20 -1
- package/nitrogen/generated/ios/swift/HybridCactusImageSpec.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridCactusImageSpec_cxx.swift +1 -1
- package/nitrogen/generated/shared/c++/CactusIndexGetResult.hpp +84 -0
- package/nitrogen/generated/shared/c++/CactusIndexQueryResult.hpp +79 -0
- package/nitrogen/generated/shared/c++/DeviceInfo.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridCactusCryptoSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridCactusCryptoSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridCactusDeviceInfoSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridCactusDeviceInfoSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridCactusFileSystemSpec.cpp +2 -1
- package/nitrogen/generated/shared/c++/HybridCactusFileSystemSpec.hpp +2 -1
- package/nitrogen/generated/shared/c++/HybridCactusImageSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridCactusImageSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridCactusIndexSpec.cpp +27 -0
- package/nitrogen/generated/shared/c++/HybridCactusIndexSpec.hpp +76 -0
- package/nitrogen/generated/shared/c++/HybridCactusSpec.cpp +3 -1
- package/nitrogen/generated/shared/c++/HybridCactusSpec.hpp +6 -3
- package/nitrogen/generated/shared/c++/HybridCactusUtilSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridCactusUtilSpec.hpp +2 -2
- package/package.json +2 -2
- package/src/api/Database.ts +80 -2
- package/src/classes/CactusIndex.ts +58 -0
- package/src/classes/CactusLM.ts +41 -11
- package/src/classes/CactusSTT.ts +24 -16
- package/src/config/CactusConfig.ts +3 -0
- package/src/constants/packageVersion.ts +1 -1
- package/src/hooks/useCactusIndex.ts +195 -0
- package/src/hooks/useCactusLM.ts +63 -3
- package/src/hooks/useCactusSTT.ts +4 -4
- package/src/index.tsx +17 -0
- package/src/native/Cactus.ts +39 -4
- package/src/native/CactusFileSystem.ts +4 -0
- package/src/native/CactusIndex.ts +54 -0
- package/src/native/CactusUtil.ts +19 -3
- package/src/native/index.ts +1 -0
- package/src/specs/Cactus.nitro.ts +13 -2
- package/src/specs/CactusFileSystem.nitro.ts +2 -0
- package/src/specs/CactusIndex.nitro.ts +31 -0
- package/src/specs/CactusUtil.nitro.ts +1 -1
- package/src/telemetry/Telemetry.ts +1 -1
- package/src/types/CactusIndex.ts +40 -0
- package/src/types/CactusLM.ts +21 -0
- package/src/types/CactusModel.ts +1 -0
- package/src/types/CactusSTT.ts +1 -1
- package/src/types/CactusSTTModel.ts +10 -0
- 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
30
|
+
Q7DuJEU0UWHgQ8cVdAc50lq592AjV42gMHSiDHx4OQk=
|
|
31
31
|
</data>
|
|
32
32
|
</dict>
|
|
33
33
|
<key>Headers/ios_utils.h</key>
|
|
Binary file
|
|
@@ -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(
|
|
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;
|
|
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
|
-
|
|
55
|
-
|
|
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
|
|
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","
|
|
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":";;AAAA,SAASA,MAAM,EAAEC,gBAAgB,QAAQ,oBAAW;AAgBpD,SAASC,SAAS,QAAQ,2BAAwB;AAClD,SAASC,YAAY,QAAQ,2BAAwB;AACrD,SAASC,QAAQ,QAAQ,oBAAiB;AAC1C,SAASC,eAAe,QAAQ,mBAAgB;AAChD,SAASC,QAAQ,QAAQ,oBAAiB;AAE1C,OAAO,MAAMC,QAAQ,CAAC;EACHC,MAAM,GAAG,IAAIR,MAAM,CAAC,CAAC;EAM9BS,aAAa,GAAG,KAAK;EACrBC,aAAa,GAAG,KAAK;EACrBC,YAAY,GAAG,KAAK;EAE5B,OAAwBC,YAAY,GAAG,WAAW;EAClD,OAAwBC,kBAAkB,GAAG,IAAI;EACjD,OAAwBC,sBAAsB,GAAG;IAC/CC,SAAS,EAAE;EACb,CAAC;EACD,OAAwBC,mBAAmB,GAAG,OAAO;EACrD,OAAwBC,sBAAsB,GAAG,IAAI;EAErDC,WAAWA,CAAC;IAAEC,KAAK;IAAEC,WAAW;IAAEC;EAA0B,CAAC,GAAG,CAAC,CAAC,EAAE;IAClEnB,SAAS,CAACoB,IAAI,CAACnB,YAAY,CAACoB,cAAc,CAAC;IAE3C,IAAI,CAACJ,KAAK,GAAGA,KAAK,IAAIZ,QAAQ,CAACK,YAAY;IAC3C,IAAI,CAACQ,WAAW,GAAGA,WAAW,IAAIb,QAAQ,CAACM,kBAAkB;IAC7D,IAAI,CAACQ,SAAS,GAAGA,SAAS;EAC5B;EAEA,MAAaG,QAAQA,CAAC;IACpBC;EACsB,CAAC,GAAG,CAAC,CAAC,EAAiB;IAC7C,IAAI,IAAI,CAACC,WAAW,CAAC,IAAI,CAACP,KAAK,CAAC,EAAE;MAChCM,UAAU,GAAG,GAAG,CAAC;MACjB;IACF;IAEA,IAAI,IAAI,CAAChB,aAAa,EAAE;MACtB,MAAM,IAAIkB,KAAK,CAAC,iCAAiC,CAAC;IACpD;IAEA,IAAI,MAAM1B,gBAAgB,CAAC2B,WAAW,CAAC,IAAI,CAACT,KAAK,CAAC,EAAE;MAClDM,UAAU,GAAG,GAAG,CAAC;MACjB;IACF;IAEA,IAAI,CAAChB,aAAa,GAAG,IAAI;IACzB,IAAI;MACF,MAAMU,KAAK,GAAG,MAAMf,QAAQ,CAACyB,QAAQ,CAAC,IAAI,CAACV,KAAK,CAAC;MACjD,MAAMlB,gBAAgB,CAAC6B,aAAa,CAClC,IAAI,CAACX,KAAK,EACVA,KAAK,CAACY,WAAW,EACjBN,UACF,CAAC;IACH,CAAC,SAAS;MACR,IAAI,CAAChB,aAAa,GAAG,KAAK;IAC5B;EACF;EAEA,MAAaa,IAAIA,CAAA,EAAkB;IACjC,IAAI,IAAI,CAACZ,aAAa,EAAE;MACtB;IACF;IAEA,IAAIsB,SAAiB;IACrB,IAAI,IAAI,CAACN,WAAW,CAAC,IAAI,CAACP,KAAK,CAAC,EAAE;MAChCa,SAAS,GAAG,IAAI,CAACb,KAAK,CAACc,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;IAC/C,CAAC,MAAM;MACL,IAAI,EAAE,MAAMhC,gBAAgB,CAAC2B,WAAW,CAAC,IAAI,CAACT,KAAK,CAAC,CAAC,EAAE;QACrD,MAAM,IAAIQ,KAAK,CAAC,UAAU,IAAI,CAACR,KAAK,qBAAqB,CAAC;MAC5D;MACAa,SAAS,GAAG,MAAM/B,gBAAgB,CAACiC,YAAY,CAAC,IAAI,CAACf,KAAK,CAAC;IAC7D;IAEA,IAAI;MACF,MAAM,IAAI,CAACX,MAAM,CAACc,IAAI,CAACU,SAAS,EAAE,IAAI,CAACZ,WAAW,EAAE,IAAI,CAACC,SAAS,CAAC;MACnEnB,SAAS,CAACiC,OAAO,CAAC,IAAI,CAAChB,KAAK,EAAE,IAAI,CAAC;MACnC,IAAI,CAACT,aAAa,GAAG,IAAI;IAC3B,CAAC,CAAC,OAAO0B,KAAK,EAAE;MACdlC,SAAS,CAACiC,OAAO,CAAC,IAAI,CAAChB,KAAK,EAAE,KAAK,EAAEd,eAAe,CAAC+B,KAAK,CAAC,CAAC;MAC5D,MAAMA,KAAK;IACb;EACF;EAEA,MAAaC,QAAQA,CAAC;IACpBC,QAAQ;IACRC,OAAO;IACPC,KAAK;IACLC,OAAO;IACPC;EACsB,CAAC,EAAmC;IAC1D,IAAI,IAAI,CAAC/B,YAAY,EAAE;MACrB,MAAM,IAAIgB,KAAK,CAAC,gCAAgC,CAAC;IACnD;IAEAY,OAAO,GAAG;MAAE,GAAGhC,QAAQ,CAACO,sBAAsB;MAAE,GAAGyB;IAAQ,CAAC;IAC5D,MAAMI,aAAa,GAAGH,KAAK,EAAEI,GAAG,CAAEC,IAAI,KAAM;MAC1CC,IAAI,EAAE,UAAmB;MACzBC,QAAQ,EAAEF;IACZ,CAAC,CAAC,CAAC;IACHH,IAAI,GAAGA,IAAI,IAAInC,QAAQ,CAACS,mBAAmB;IAE3C,MAAMgC,kBAAkB,GACtB,CAAC,IAAIT,OAAO,CAACxB,SAAS,IAAIR,QAAQ,CAACO,sBAAsB,CAACC,SAAS,CAAC,GACpE,GAAG;IAEL,IAAI;MACF,MAAM,IAAI,CAACO,IAAI,CAAC,CAAC;MAEjB,IAAI,CAACX,YAAY,GAAG,IAAI;MACxB,MAAMsC,MAAM,GAAG,MAAM,IAAI,CAACzC,MAAM,CAAC6B,QAAQ,CACvCC,QAAQ,EACRU,kBAAkB,EAClBT,OAAO,EACPI,aAAa,EACbF,OACF,CAAC;MACDvC,SAAS,CAACgD,aAAa,CACrB,IAAI,CAAC/B,KAAK,EACV8B,MAAM,CAACE,OAAO,EACdF,MAAM,CAACE,OAAO,GAAGC,SAAS,GAAGH,MAAM,CAACI,QAAQ,EAC5CJ,MACF,CAAC;MACD,OAAOA,MAAM;IACf,CAAC,CAAC,OAAOK,UAAU,EAAE;MACnB,IAAIZ,IAAI,KAAK,OAAO,EAAE;QACpBxC,SAAS,CAACgD,aAAa,CAAC,IAAI,CAAC/B,KAAK,EAAE,KAAK,EAAEd,eAAe,CAACiD,UAAU,CAAC,CAAC;QACvE,MAAMA,UAAU;MAClB;MAEApD,SAAS,CAACgD,aAAa,CACrB,IAAI,CAAC/B,KAAK,EACV,KAAK,EACL,2BAA2Bd,eAAe,CAACiD,UAAU,CAAC,sCACxD,CAAC;MAED,IAAI;QACF,OAAOhD,QAAQ,CAAC+B,QAAQ,CAACC,QAAQ,EAAEC,OAAO,EAAEI,aAAa,EAAEF,OAAO,CAAC;MACrE,CAAC,CAAC,OAAOc,WAAW,EAAE;QACpB,MAAM,IAAI5B,KAAK,CACb,4BAA4BtB,eAAe,CAACkD,WAAW,CAAC,EAC1D,CAAC;MACH;IACF,CAAC,SAAS;MACR,IAAI,CAAC5C,YAAY,GAAG,KAAK;IAC3B;EACF;EAEA,MAAa6C,QAAQA,CAAC;IACpBC;EACsB,CAAC,EAAmC;IAC1D,OAAO;MAAEC,MAAM,EAAE,MAAM,IAAI,CAAClD,MAAM,CAACgD,QAAQ,CAACC,IAAI;IAAE,CAAC;EACrD;EAEA,MAAaE,WAAWA,CAAC;IACvBD,MAAM;IACNE,KAAK;IACLC,GAAG;IACHC;EACyB,CAAC,EAAsC;IAChE,OAAO;MACLC,KAAK,EAAE,MAAM,IAAI,CAACvD,MAAM,CAACmD,WAAW,CAACD,MAAM,EAAEE,KAAK,EAAEC,GAAG,EAAEC,OAAO;IAClE,CAAC;EACH;EAEA,MAAaE,KAAKA,CAAC;IACjBP,IAAI;IACJQ,SAAS,GAAG;EACO,CAAC,EAAgC;IACpD,IAAI,IAAI,CAACtD,YAAY,EAAE;MACrB,MAAM,IAAIgB,KAAK,CAAC,gCAAgC,CAAC;IACnD;IAEA,MAAM,IAAI,CAACL,IAAI,CAAC,CAAC;IAEjB,IAAI,CAACX,YAAY,GAAG,IAAI;IACxB,IAAI;MACF,MAAMuD,SAAS,GAAG,MAAM,IAAI,CAAC1D,MAAM,CAACwD,KAAK,CACvCP,IAAI,EACJlD,QAAQ,CAACU,sBAAsB,EAC/BgD,SACF,CAAC;MACD/D,SAAS,CAACiE,YAAY,CAAC,IAAI,CAAChD,KAAK,EAAE,IAAI,CAAC;MACxC,OAAO;QAAE+C;MAAU,CAAC;IACtB,CAAC,CAAC,OAAO9B,KAAK,EAAE;MACdlC,SAAS,CAACiE,YAAY,CAAC,IAAI,CAAChD,KAAK,EAAE,KAAK,EAAEd,eAAe,CAAC+B,KAAK,CAAC,CAAC;MACjE,MAAMA,KAAK;IACb,CAAC,SAAS;MACR,IAAI,CAACzB,YAAY,GAAG,KAAK;IAC3B;EACF;EAEA,MAAayD,UAAUA,CAAC;IACtBC;EACwB,CAAC,EAAqC;IAC9D,IAAI,IAAI,CAAC1D,YAAY,EAAE;MACrB,MAAM,IAAIgB,KAAK,CAAC,gCAAgC,CAAC;IACnD;IAEA,MAAM,IAAI,CAACL,IAAI,CAAC,CAAC;IAEjB,IAAI,CAACX,YAAY,GAAG,IAAI;IACxB,IAAI;MACF,MAAMuD,SAAS,GAAG,MAAM,IAAI,CAAC1D,MAAM,CAAC4D,UAAU,CAC5CC,SAAS,EACT9D,QAAQ,CAACU,sBACX,CAAC;MACDf,SAAS,CAACoE,iBAAiB,CAAC,IAAI,CAACnD,KAAK,EAAE,IAAI,CAAC;MAC7C,OAAO;QAAE+C;MAAU,CAAC;IACtB,CAAC,CAAC,OAAO9B,KAAK,EAAE;MACdlC,SAAS,CAACoE,iBAAiB,CAAC,IAAI,CAACnD,KAAK,EAAE,KAAK,EAAEd,eAAe,CAAC+B,KAAK,CAAC,CAAC;MACtE,MAAMA,KAAK;IACb,CAAC,SAAS;MACR,IAAI,CAACzB,YAAY,GAAG,KAAK;IAC3B;EACF;EAEO4D,IAAIA,CAAA,EAAkB;IAC3B,OAAO,IAAI,CAAC/D,MAAM,CAAC+D,IAAI,CAAC,CAAC;EAC3B;EAEA,MAAaC,KAAKA,CAAA,EAAkB;IAClC,MAAM,IAAI,CAACD,IAAI,CAAC,CAAC;IACjB,OAAO,IAAI,CAAC/D,MAAM,CAACgE,KAAK,CAAC,CAAC;EAC5B;EAEA,MAAaC,OAAOA,CAAA,EAAkB;IACpC,IAAI,CAAC,IAAI,CAAC/D,aAAa,EAAE;MACvB;IACF;IAEA,MAAM,IAAI,CAAC6D,IAAI,CAAC,CAAC;IACjB,MAAM,IAAI,CAAC/D,MAAM,CAACiE,OAAO,CAAC,CAAC;IAE3B,IAAI,CAAC/D,aAAa,GAAG,KAAK;EAC5B;EAEA,MAAagE,SAASA,CAAA,EAA2B;IAC/C,MAAMC,MAAM,GAAG,MAAMvE,QAAQ,CAACsE,SAAS,CAAC,CAAC;IACzC,KAAK,MAAMvD,KAAK,IAAIwD,MAAM,EAAE;MAC1BxD,KAAK,CAACyD,YAAY,GAAG,MAAM3E,gBAAgB,CAAC2B,WAAW,CAACT,KAAK,CAAC0D,IAAI,CAAC;IACrE;IACA,OAAOF,MAAM;EACf;EAEQjD,WAAWA,CAACP,KAAa,EAAW;IAC1C,OAAOA,KAAK,CAAC2D,UAAU,CAAC,SAAS,CAAC,IAAI3D,KAAK,CAAC2D,UAAU,CAAC,GAAG,CAAC;EAC7D;AACF","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
|
|
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
|
-
|
|
51
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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","
|
|
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":";;AAAA,SAASA,MAAM,EAAEC,gBAAgB,QAAQ,oBAAW;AASpD,SAASC,SAAS,QAAQ,2BAAwB;AAClD,SAASC,YAAY,QAAQ,2BAAwB;AACrD,SAASC,QAAQ,QAAQ,oBAAiB;AAC1C,SAASC,eAAe,QAAQ,mBAAgB;AAGhD,OAAO,MAAMC,SAAS,CAAC;EACJC,MAAM,GAAG,IAAIP,MAAM,CAAC,CAAC;EAK9BQ,aAAa,GAAG,KAAK;EACrBC,aAAa,GAAG,KAAK;EACrBC,YAAY,GAAG,KAAK;EAE5B,OAAwBC,YAAY,GAAG,eAAe;EACtD,OAAwBC,kBAAkB,GAAG,IAAI;EACjD,OAAwBC,aAAa,GACnC,2DAA2D;EAC7D,OAAwBC,wBAAwB,GAAG;IACjDC,SAAS,EAAE;EACb,CAAC;EACD,OAAwBC,sBAAsB,GAAG,IAAI;EAErDC,WAAWA,CAAC;IAAEC,KAAK;IAAEC;EAA6B,CAAC,GAAG,CAAC,CAAC,EAAE;IACxDjB,SAAS,CAACkB,IAAI,CAACjB,YAAY,CAACkB,cAAc,CAAC;IAE3C,IAAI,CAACH,KAAK,GAAGA,KAAK,IAAIZ,SAAS,CAACK,YAAY;IAC5C,IAAI,CAACQ,WAAW,GAAGA,WAAW,IAAIb,SAAS,CAACM,kBAAkB;EAChE;EAEA,MAAaU,QAAQA,CAAC;IACpBC;EACuB,CAAC,GAAG,CAAC,CAAC,EAAiB;IAC9C,IAAI,IAAI,CAACC,WAAW,CAAC,IAAI,CAACN,KAAK,CAAC,EAAE;MAChCK,UAAU,GAAG,GAAG,CAAC;MACjB;IACF;IAEA,IAAI,IAAI,CAACf,aAAa,EAAE;MACtB,MAAM,IAAIiB,KAAK,CAAC,kCAAkC,CAAC;IACrD;IAEA,IAAI,MAAMxB,gBAAgB,CAACyB,WAAW,CAAC,IAAI,CAACR,KAAK,CAAC,EAAE;MAClDK,UAAU,GAAG,GAAG,CAAC;MACjB;IACF;IAEA,IAAI,CAACf,aAAa,GAAG,IAAI;IACzB,IAAI;MACF,MAAMU,KAAK,GAAG,MAAMd,QAAQ,CAACuB,WAAW,CAAC,IAAI,CAACT,KAAK,CAAC;MACpD,MAAMjB,gBAAgB,CAAC2B,aAAa,CAClC,IAAI,CAACV,KAAK,EACVA,KAAK,CAACW,WAAW,EACjBN,UACF,CAAC;IACH,CAAC,SAAS;MACR,IAAI,CAACf,aAAa,GAAG,KAAK;IAC5B;EACF;EAEA,MAAaY,IAAIA,CAAA,EAAkB;IACjC,IAAI,IAAI,CAACX,aAAa,EAAE;MACtB;IACF;IAEA,IAAIqB,SAAiB;IACrB,IAAI,IAAI,CAACN,WAAW,CAAC,IAAI,CAACN,KAAK,CAAC,EAAE;MAChCY,SAAS,GAAG,IAAI,CAACZ,KAAK,CAACa,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;IAC/C,CAAC,MAAM;MACL,IAAI,EAAE,MAAM9B,gBAAgB,CAACyB,WAAW,CAAC,IAAI,CAACR,KAAK,CAAC,CAAC,EAAE;QACrD,MAAM,IAAIO,KAAK,CAAC,UAAU,IAAI,CAACP,KAAK,qBAAqB,CAAC;MAC5D;MACAY,SAAS,GAAG,MAAM7B,gBAAgB,CAAC+B,YAAY,CAAC,IAAI,CAACd,KAAK,CAAC;IAC7D;IAEA,IAAI;MACF,MAAM,IAAI,CAACX,MAAM,CAACa,IAAI,CAACU,SAAS,EAAE,IAAI,CAACX,WAAW,CAAC;MACnDjB,SAAS,CAAC+B,OAAO,CAAC,IAAI,CAACf,KAAK,EAAE,IAAI,CAAC;MACnC,IAAI,CAACT,aAAa,GAAG,IAAI;IAC3B,CAAC,CAAC,OAAOyB,KAAK,EAAE;MACdhC,SAAS,CAAC+B,OAAO,CAAC,IAAI,CAACf,KAAK,EAAE,KAAK,EAAEb,eAAe,CAAC6B,KAAK,CAAC,CAAC;MAC5D,MAAMA,KAAK;IACb;EACF;EAEA,MAAaC,UAAUA,CAAC;IACtBC,KAAK;IACLC,MAAM;IACNC,OAAO;IACPC;EACyB,CAAC,EAAsC;IAChE,IAAI,IAAI,CAAC7B,YAAY,EAAE;MACrB,MAAM,IAAIe,KAAK,CAAC,iCAAiC,CAAC;IACpD;IAEA,MAAM,IAAI,CAACL,IAAI,CAAC,CAAC;IAEjBiB,MAAM,GAAGA,MAAM,IAAI/B,SAAS,CAACO,aAAa;IAC1CyB,OAAO,GAAG;MAAE,GAAGhC,SAAS,CAACQ,wBAAwB;MAAE,GAAGwB;IAAQ,CAAC;IAE/D,MAAME,kBAAkB,GACtB,CAAC,IAAIF,OAAO,CAACvB,SAAS,IAAIT,SAAS,CAACQ,wBAAwB,CAACC,SAAS,CAAC,GACvE,GAAG;IAEL,IAAI,CAACL,YAAY,GAAG,IAAI;IACxB,IAAI;MACF,MAAM+B,MAAM,GAAG,MAAM,IAAI,CAAClC,MAAM,CAAC4B,UAAU,CACzCC,KAAK,EACLC,MAAM,EACNG,kBAAkB,EAClBF,OAAO,EACPC,OACF,CAAC;MACDrC,SAAS,CAACwC,aAAa,CACrB,IAAI,CAACxB,KAAK,EACVuB,MAAM,CAACE,OAAO,EACdF,MAAM,CAACE,OAAO,GAAGC,SAAS,GAAGH,MAAM,CAACI,QAAQ,EAC5CJ,MACF,CAAC;MACD,OAAOA,MAAM;IACf,CAAC,CAAC,OAAOP,KAAK,EAAE;MACdhC,SAAS,CAACwC,aAAa,CAAC,IAAI,CAACxB,KAAK,EAAE,KAAK,EAAEb,eAAe,CAAC6B,KAAK,CAAC,CAAC;MAClE,MAAMA,KAAK;IACb,CAAC,SAAS;MACR,IAAI,CAACxB,YAAY,GAAG,KAAK;IAC3B;EACF;EAEA,MAAaoC,UAAUA,CAAC;IACtBC;EACyB,CAAC,EAAsC;IAChE,IAAI,IAAI,CAACrC,YAAY,EAAE;MACrB,MAAM,IAAIe,KAAK,CAAC,iCAAiC,CAAC;IACpD;IAEA,MAAM,IAAI,CAACL,IAAI,CAAC,CAAC;IAEjB,IAAI,CAACV,YAAY,GAAG,IAAI;IACxB,IAAI;MACF,MAAMsC,SAAS,GAAG,MAAM,IAAI,CAACzC,MAAM,CAACuC,UAAU,CAC5CC,SAAS,EACTzC,SAAS,CAACU,sBACZ,CAAC;MACDd,SAAS,CAAC+C,iBAAiB,CAAC,IAAI,CAAC/B,KAAK,EAAE,IAAI,CAAC;MAC7C,OAAO;QAAE8B;MAAU,CAAC;IACtB,CAAC,CAAC,OAAOd,KAAK,EAAE;MACdhC,SAAS,CAAC+C,iBAAiB,CAAC,IAAI,CAAC/B,KAAK,EAAE,KAAK,EAAEb,eAAe,CAAC6B,KAAK,CAAC,CAAC;MACtE,MAAMA,KAAK;IACb,CAAC,SAAS;MACR,IAAI,CAACxB,YAAY,GAAG,KAAK;IAC3B;EACF;EAEOwC,IAAIA,CAAA,EAAkB;IAC3B,OAAO,IAAI,CAAC3C,MAAM,CAAC2C,IAAI,CAAC,CAAC;EAC3B;EAEA,MAAaC,KAAKA,CAAA,EAAkB;IAClC,MAAM,IAAI,CAACD,IAAI,CAAC,CAAC;IACjB,OAAO,IAAI,CAAC3C,MAAM,CAAC4C,KAAK,CAAC,CAAC;EAC5B;EAEA,MAAaC,OAAOA,CAAA,EAAkB;IACpC,IAAI,CAAC,IAAI,CAAC3C,aAAa,EAAE;MACvB;IACF;IAEA,MAAM,IAAI,CAACyC,IAAI,CAAC,CAAC;IACjB,MAAM,IAAI,CAAC3C,MAAM,CAAC6C,OAAO,CAAC,CAAC;IAE3B,IAAI,CAAC3C,aAAa,GAAG,KAAK;EAC5B;EAEA,MAAa4C,SAASA,CAAA,EAA8B;IAClD,MAAMC,MAAM,GAAG,MAAMlD,QAAQ,CAACmD,YAAY,CAAC,CAAC;IAC5C,KAAK,MAAMrC,KAAK,IAAIoC,MAAM,EAAE;MAC1BpC,KAAK,CAACsC,YAAY,GAAG,MAAMvD,gBAAgB,CAACyB,WAAW,CAACR,KAAK,CAACuC,IAAI,CAAC;IACrE;IACA,OAAOH,MAAM;EACf;EAEQ9B,WAAWA,CAACN,KAAa,EAAW;IAC1C,OAAOA,KAAK,CAACwC,UAAU,CAAC,SAAS,CAAC,IAAIxC,KAAK,CAACwC,UAAU,CAAC,GAAG,CAAC;EAC7D;AACF","ignoreList":[]}
|
|
@@ -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":[]}
|
|
@@ -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":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AACxD,SAASC,WAAW,QAAQ,2BAAwB;AACpD,SAASC,eAAe,QAAQ,mBAAgB;AAWhD,OAAO,MAAMC,cAAc,GAAGA,CAAC;EAAEC,IAAI;EAAEC;AAAgC,CAAC,KAAK;EAC3E,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGP,QAAQ,CAC5C,MAAM,IAAIC,WAAW,CAACG,IAAI,EAAEC,YAAY,CAC1C,CAAC;;EAED;EACA,MAAM,CAACG,cAAc,EAAEC,iBAAiB,CAAC,GAAGT,QAAQ,CAAC,KAAK,CAAC;EAC3D,MAAM,CAACU,YAAY,EAAEC,eAAe,CAAC,GAAGX,QAAQ,CAAC,KAAK,CAAC;EACvD,MAAM,CAACY,KAAK,EAAEC,QAAQ,CAAC,GAAGb,QAAQ,CAAgB,IAAI,CAAC;EAEvDD,SAAS,CAAC,MAAM;IACdQ,cAAc,CAAC,IAAIN,WAAW,CAACG,IAAI,EAAEC,YAAY,CAAC,CAAC;IAEnDI,iBAAiB,CAAC,KAAK,CAAC;IACxBE,eAAe,CAAC,KAAK,CAAC;IACtBE,QAAQ,CAAC,IAAI,CAAC;EAChB,CAAC,EAAE,CAACT,IAAI,EAAEC,YAAY,CAAC,CAAC;EAExBN,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACXO,WAAW,CAACQ,OAAO,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACvC,CAAC;EACH,CAAC,EAAE,CAACT,WAAW,CAAC,CAAC;EAEjB,MAAMU,IAAI,GAAGlB,WAAW,CAAC,YAAY;IACnC,IAAIU,cAAc,EAAE;MAClB,MAAMS,OAAO,GAAG,qCAAqC;MACrDJ,QAAQ,CAACI,OAAO,CAAC;MACjB,MAAM,IAAIC,KAAK,CAACD,OAAO,CAAC;IAC1B;IAEAJ,QAAQ,CAAC,IAAI,CAAC;IACdJ,iBAAiB,CAAC,IAAI,CAAC;IACvB,IAAI;MACF,MAAMH,WAAW,CAACU,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,OAAOG,CAAC,EAAE;MACVN,QAAQ,CAACX,eAAe,CAACiB,CAAC,CAAC,CAAC;MAC5B,MAAMA,CAAC;IACT,CAAC,SAAS;MACRV,iBAAiB,CAAC,KAAK,CAAC;IAC1B;EACF,CAAC,EAAE,CAACH,WAAW,EAAEE,cAAc,CAAC,CAAC;EAEjC,MAAMY,GAAG,GAAGtB,WAAW,CACrB,OAAO;IACLuB,GAAG;IACHC,SAAS;IACTC,SAAS;IACTC;EACoB,CAAC,KAAoB;IACzC,IAAId,YAAY,EAAE;MAChB,MAAMO,OAAO,GAAG,mCAAmC;MACnDJ,QAAQ,CAACI,OAAO,CAAC;MACjB,MAAM,IAAIC,KAAK,CAACD,OAAO,CAAC;IAC1B;IAEAJ,QAAQ,CAAC,IAAI,CAAC;IACdF,eAAe,CAAC,IAAI,CAAC;IACrB,IAAI;MACF,MAAML,WAAW,CAACc,GAAG,CAAC;QAAEC,GAAG;QAAEC,SAAS;QAAEC,SAAS;QAAEC;MAAW,CAAC,CAAC;IAClE,CAAC,CAAC,OAAOL,CAAC,EAAE;MACVN,QAAQ,CAACX,eAAe,CAACiB,CAAC,CAAC,CAAC;MAC5B,MAAMA,CAAC;IACT,CAAC,SAAS;MACRR,eAAe,CAAC,KAAK,CAAC;IACxB;EACF,CAAC,EACD,CAACL,WAAW,EAAEI,YAAY,CAC5B,CAAC;EAED,MAAMe,OAAO,GAAG3B,WAAW,CACzB,OAAO;IAAEuB;EAA6B,CAAC,KAAoB;IACzD,IAAIX,YAAY,EAAE;MAChB,MAAMO,OAAO,GAAG,mCAAmC;MACnDJ,QAAQ,CAACI,OAAO,CAAC;MACjB,MAAM,IAAIC,KAAK,CAACD,OAAO,CAAC;IAC1B;IAEAJ,QAAQ,CAAC,IAAI,CAAC;IACdF,eAAe,CAAC,IAAI,CAAC;IACrB,IAAI;MACF,MAAML,WAAW,CAACoB,MAAM,CAAC;QAAEL;MAAI,CAAC,CAAC;IACnC,CAAC,CAAC,OAAOF,CAAC,EAAE;MACVN,QAAQ,CAACX,eAAe,CAACiB,CAAC,CAAC,CAAC;MAC5B,MAAMA,CAAC;IACT,CAAC,SAAS;MACRR,eAAe,CAAC,KAAK,CAAC;IACxB;EACF,CAAC,EACD,CAACL,WAAW,EAAEI,YAAY,CAC5B,CAAC;EAED,MAAMiB,GAAG,GAAG7B,WAAW,CACrB,OAAO;IAAEuB;EAA0B,CAAC,KAAoC;IACtE,IAAIX,YAAY,EAAE;MAChB,MAAMO,OAAO,GAAG,mCAAmC;MACnDJ,QAAQ,CAACI,OAAO,CAAC;MACjB,MAAM,IAAIC,KAAK,CAACD,OAAO,CAAC;IAC1B;IAEAJ,QAAQ,CAAC,IAAI,CAAC;IACdF,eAAe,CAAC,IAAI,CAAC;IACrB,IAAI;MACF,OAAO,MAAML,WAAW,CAACqB,GAAG,CAAC;QAAEN;MAAI,CAAC,CAAC;IACvC,CAAC,CAAC,OAAOF,CAAC,EAAE;MACVN,QAAQ,CAACX,eAAe,CAACiB,CAAC,CAAC,CAAC;MAC5B,MAAMA,CAAC;IACT,CAAC,SAAS;MACRR,eAAe,CAAC,KAAK,CAAC;IACxB;EACF,CAAC,EACD,CAACL,WAAW,EAAEI,YAAY,CAC5B,CAAC;EAED,MAAMkB,KAAK,GAAG9B,WAAW,CACvB,OAAO;IACL0B,UAAU;IACVK;EACsB,CAAC,KAAsC;IAC7D,IAAInB,YAAY,EAAE;MAChB,MAAMO,OAAO,GAAG,mCAAmC;MACnDJ,QAAQ,CAACI,OAAO,CAAC;MACjB,MAAM,IAAIC,KAAK,CAACD,OAAO,CAAC;IAC1B;IAEAJ,QAAQ,CAAC,IAAI,CAAC;IACdF,eAAe,CAAC,IAAI,CAAC;IACrB,IAAI;MACF,OAAO,MAAML,WAAW,CAACsB,KAAK,CAAC;QAAEJ,UAAU;QAAEK;MAAQ,CAAC,CAAC;IACzD,CAAC,CAAC,OAAOV,CAAC,EAAE;MACVN,QAAQ,CAACX,eAAe,CAACiB,CAAC,CAAC,CAAC;MAC5B,MAAMA,CAAC;IACT,CAAC,SAAS;MACRR,eAAe,CAAC,KAAK,CAAC;IACxB;EACF,CAAC,EACD,CAACL,WAAW,EAAEI,YAAY,CAC5B,CAAC;EAED,MAAMoB,OAAO,GAAGhC,WAAW,CAAC,YAAY;IACtC,IAAIY,YAAY,EAAE;MAChB,MAAMO,OAAO,GAAG,mCAAmC;MACnDJ,QAAQ,CAACI,OAAO,CAAC;MACjB,MAAM,IAAIC,KAAK,CAACD,OAAO,CAAC;IAC1B;IAEAJ,QAAQ,CAAC,IAAI,CAAC;IACdF,eAAe,CAAC,IAAI,CAAC;IACrB,IAAI;MACF,MAAML,WAAW,CAACwB,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC,OAAOX,CAAC,EAAE;MACVN,QAAQ,CAACX,eAAe,CAACiB,CAAC,CAAC,CAAC;MAC5B,MAAMA,CAAC;IACT,CAAC,SAAS;MACRR,eAAe,CAAC,KAAK,CAAC;IACxB;EACF,CAAC,EAAE,CAACL,WAAW,EAAEI,YAAY,CAAC,CAAC;EAE/B,MAAMI,OAAO,GAAGhB,WAAW,CAAC,YAAY;IACtCe,QAAQ,CAAC,IAAI,CAAC;IACd,IAAI;MACF,MAAMP,WAAW,CAACQ,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC,OAAOK,CAAC,EAAE;MACVN,QAAQ,CAACX,eAAe,CAACiB,CAAC,CAAC,CAAC;MAC5B,MAAMA,CAAC;IACT;EACF,CAAC,EAAE,CAACb,WAAW,CAAC,CAAC;EAEjB,OAAO;IACLE,cAAc;IACdE,YAAY;IACZE,KAAK;IAELI,IAAI;IACJI,GAAG;IACHM,MAAM,EAAED,OAAO;IACfE,GAAG;IACHC,KAAK;IACLE,OAAO;IACPhB;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|