cactus-react-native 1.0.2 → 1.2.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 +378 -21
- package/android/src/main/java/com/margelo/nitro/cactus/HybridCactusCrypto.kt +23 -15
- package/android/src/main/java/com/margelo/nitro/cactus/HybridCactusDeviceInfo.kt +12 -9
- package/android/src/main/java/com/margelo/nitro/cactus/HybridCactusFileSystem.kt +42 -41
- package/android/src/main/java/com/margelo/nitro/cactus/HybridCactusImage.kt +81 -0
- package/android/src/main/jniLibs/arm64-v8a/libcactus.a +0 -0
- package/cpp/HybridCactus.cpp +105 -0
- package/cpp/HybridCactus.hpp +13 -0
- package/cpp/cactus_ffi.h +27 -0
- package/ios/HybridCactusImage.swift +53 -0
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/cactus_ffi.h +27 -0
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/engine.h +37 -5
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ffi_utils.h +10 -9
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/graph.h +49 -7
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/kernel.h +31 -0
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/cactus +0 -0
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/cactus_ffi.h +27 -0
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/engine.h +37 -5
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/ffi_utils.h +10 -9
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/graph.h +49 -7
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/kernel.h +31 -0
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/cactus +0 -0
- package/lib/module/api/Database.js +23 -0
- package/lib/module/api/Database.js.map +1 -1
- package/lib/module/api/RemoteLM.js +201 -0
- package/lib/module/api/RemoteLM.js.map +1 -0
- package/lib/module/classes/CactusLM.js +52 -26
- package/lib/module/classes/CactusLM.js.map +1 -1
- package/lib/module/classes/CactusSTT.js +139 -0
- package/lib/module/classes/CactusSTT.js.map +1 -0
- package/lib/module/config/CactusConfig.js +4 -0
- package/lib/module/config/CactusConfig.js.map +1 -1
- package/lib/module/constants/packageVersion.js +1 -1
- package/lib/module/hooks/useCactusLM.js +33 -10
- package/lib/module/hooks/useCactusLM.js.map +1 -1
- package/lib/module/hooks/useCactusSTT.js +234 -0
- package/lib/module/hooks/useCactusSTT.js.map +1 -0
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/native/Cactus.js +50 -1
- package/lib/module/native/Cactus.js.map +1 -1
- package/lib/module/native/CactusFileSystem.js +2 -3
- package/lib/module/native/CactusFileSystem.js.map +1 -1
- package/lib/module/native/CactusImage.js +13 -0
- package/lib/module/native/CactusImage.js.map +1 -0
- package/lib/module/native/index.js +1 -0
- package/lib/module/native/index.js.map +1 -1
- package/lib/module/specs/CactusImage.nitro.js +4 -0
- package/lib/module/specs/CactusImage.nitro.js.map +1 -0
- package/lib/module/telemetry/Telemetry.js +53 -1
- package/lib/module/telemetry/Telemetry.js.map +1 -1
- package/lib/module/types/CactusSTT.js +2 -0
- package/lib/module/types/CactusSTT.js.map +1 -0
- package/lib/typescript/src/api/Database.d.ts +1 -0
- package/lib/typescript/src/api/Database.d.ts.map +1 -1
- package/lib/typescript/src/api/RemoteLM.d.ts +14 -0
- package/lib/typescript/src/api/RemoteLM.d.ts.map +1 -0
- package/lib/typescript/src/classes/CactusLM.d.ts +6 -4
- package/lib/typescript/src/classes/CactusLM.d.ts.map +1 -1
- package/lib/typescript/src/classes/CactusSTT.d.ts +26 -0
- package/lib/typescript/src/classes/CactusSTT.d.ts.map +1 -0
- 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/useCactusLM.d.ts +4 -3
- package/lib/typescript/src/hooks/useCactusLM.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useCactusSTT.d.ts +20 -0
- package/lib/typescript/src/hooks/useCactusSTT.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +4 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/native/Cactus.d.ts +9 -2
- package/lib/typescript/src/native/Cactus.d.ts.map +1 -1
- package/lib/typescript/src/native/CactusFileSystem.d.ts +1 -1
- package/lib/typescript/src/native/CactusFileSystem.d.ts.map +1 -1
- package/lib/typescript/src/native/CactusImage.d.ts +6 -0
- package/lib/typescript/src/native/CactusImage.d.ts.map +1 -0
- 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 +3 -0
- package/lib/typescript/src/specs/Cactus.nitro.d.ts.map +1 -1
- package/lib/typescript/src/specs/CactusImage.nitro.d.ts +9 -0
- package/lib/typescript/src/specs/CactusImage.nitro.d.ts.map +1 -0
- package/lib/typescript/src/telemetry/Telemetry.d.ts +5 -1
- package/lib/typescript/src/telemetry/Telemetry.d.ts.map +1 -1
- package/lib/typescript/src/types/CactusLM.d.ts +8 -5
- package/lib/typescript/src/types/CactusLM.d.ts.map +1 -1
- package/lib/typescript/src/types/CactusSTT.d.ts +37 -0
- package/lib/typescript/src/types/CactusSTT.d.ts.map +1 -0
- package/nitro.json +4 -0
- package/nitrogen/generated/android/c++/JHybridCactusImageSpec.cpp +81 -0
- package/nitrogen/generated/android/c++/JHybridCactusImageSpec.hpp +66 -0
- package/nitrogen/generated/android/cactus+autolinking.cmake +2 -0
- package/nitrogen/generated/android/cactusOnLoad.cpp +10 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/cactus/HybridCactusImageSpec.kt +62 -0
- package/nitrogen/generated/ios/Cactus-Swift-Cxx-Bridge.cpp +17 -0
- package/nitrogen/generated/ios/Cactus-Swift-Cxx-Bridge.hpp +17 -0
- package/nitrogen/generated/ios/Cactus-Swift-Cxx-Umbrella.hpp +5 -0
- package/nitrogen/generated/ios/CactusAutolinking.mm +8 -0
- package/nitrogen/generated/ios/CactusAutolinking.swift +15 -0
- package/nitrogen/generated/ios/c++/HybridCactusImageSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridCactusImageSpecSwift.hpp +85 -0
- package/nitrogen/generated/ios/swift/HybridCactusImageSpec.swift +58 -0
- package/nitrogen/generated/ios/swift/HybridCactusImageSpec_cxx.swift +158 -0
- package/nitrogen/generated/shared/c++/HybridCactusImageSpec.cpp +22 -0
- package/nitrogen/generated/shared/c++/HybridCactusImageSpec.hpp +64 -0
- package/nitrogen/generated/shared/c++/HybridCactusSpec.cpp +3 -0
- package/nitrogen/generated/shared/c++/HybridCactusSpec.hpp +3 -0
- package/package.json +1 -1
- package/src/api/Database.ts +27 -0
- package/src/api/RemoteLM.ts +273 -0
- package/src/classes/CactusLM.ts +72 -38
- package/src/classes/CactusSTT.ts +188 -0
- package/src/config/CactusConfig.ts +4 -0
- package/src/constants/packageVersion.ts +1 -1
- package/src/hooks/useCactusLM.ts +45 -17
- package/src/hooks/useCactusSTT.ts +285 -0
- package/src/index.tsx +14 -2
- package/src/native/Cactus.ts +94 -4
- package/src/native/CactusFileSystem.ts +2 -2
- package/src/native/CactusImage.ts +20 -0
- package/src/native/index.ts +1 -0
- package/src/specs/Cactus.nitro.ts +9 -0
- package/src/specs/CactusImage.nitro.ts +12 -0
- package/src/telemetry/Telemetry.ts +78 -1
- package/src/types/CactusLM.ts +9 -5
- package/src/types/CactusSTT.ts +42 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CactusLMDownloadParams, CactusLMCompleteParams, CactusLMCompleteResult, CactusLMEmbedParams, CactusLMEmbedResult,
|
|
1
|
+
import type { CactusLMDownloadParams, CactusLMCompleteParams, CactusLMCompleteResult, CactusLMEmbedParams, CactusLMEmbedResult, CactusLMImageEmbedParams, CactusLMImageEmbedResult, CactusLMParams } from '../types/CactusLM';
|
|
2
2
|
import type { CactusModel } from '../types/CactusModel';
|
|
3
3
|
export declare class CactusLM {
|
|
4
4
|
private readonly cactus;
|
|
@@ -11,16 +11,18 @@ export declare class CactusLM {
|
|
|
11
11
|
private static readonly defaultModel;
|
|
12
12
|
private static readonly defaultContextSize;
|
|
13
13
|
private static readonly defaultCompleteOptions;
|
|
14
|
+
private static readonly defaultCompleteMode;
|
|
14
15
|
private static readonly defaultEmbedBufferSize;
|
|
15
|
-
private static
|
|
16
|
+
private static cactusModelsCache;
|
|
16
17
|
constructor({ model, contextSize, corpusDir }?: CactusLMParams);
|
|
17
18
|
download({ onProgress, }?: CactusLMDownloadParams): Promise<void>;
|
|
18
19
|
init(): Promise<void>;
|
|
19
|
-
complete({ messages, options, tools, onToken, }: CactusLMCompleteParams): Promise<CactusLMCompleteResult>;
|
|
20
|
+
complete({ messages, options, tools, onToken, mode, }: CactusLMCompleteParams): Promise<CactusLMCompleteResult>;
|
|
20
21
|
embed({ text, }: CactusLMEmbedParams): Promise<CactusLMEmbedResult>;
|
|
22
|
+
imageEmbed({ imagePath, }: CactusLMImageEmbedParams): Promise<CactusLMImageEmbedResult>;
|
|
21
23
|
stop(): Promise<void>;
|
|
22
24
|
reset(): Promise<void>;
|
|
23
25
|
destroy(): Promise<void>;
|
|
24
|
-
getModels(
|
|
26
|
+
getModels(): Promise<CactusModel[]>;
|
|
25
27
|
}
|
|
26
28
|
//# sourceMappingURL=CactusLM.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CactusLM.d.ts","sourceRoot":"","sources":["../../../../src/classes/CactusLM.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"CactusLM.d.ts","sourceRoot":"","sources":["../../../../src/classes/CactusLM.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAOxD,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IAEvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IAEpC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAe;IACnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAQ;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAE5C;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAW;IACtD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAQ;IAEtD,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAA8B;gBAElD,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,GAAE,cAAmB;IAQrD,QAAQ,CAAC,EACpB,UAAU,GACX,GAAE,sBAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBjC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBrB,QAAQ,CAAC,EACpB,QAAQ,EACR,OAAO,EACP,KAAK,EACL,OAAO,EACP,IAAI,GACL,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA0D9C,KAAK,CAAC,EACjB,IAAI,GACL,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAuBxC,UAAU,CAAC,EACtB,SAAS,GACV,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAuBxD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAWxB,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;CAWjD"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { CactusSTTDownloadParams, CactusSTTTranscribeParams, CactusSTTTranscribeResult, CactusSTTParams, CactusSTTAudioEmbedParams, CactusSTTAudioEmbedResult } from '../types/CactusSTT';
|
|
2
|
+
import type { CactusModel } from '../types/CactusModel';
|
|
3
|
+
export declare class CactusSTT {
|
|
4
|
+
private readonly cactus;
|
|
5
|
+
private readonly model;
|
|
6
|
+
private readonly contextSize;
|
|
7
|
+
private isDownloading;
|
|
8
|
+
private isInitialized;
|
|
9
|
+
private isGenerating;
|
|
10
|
+
private static readonly defaultModel;
|
|
11
|
+
private static readonly defaultContextSize;
|
|
12
|
+
private static readonly defaultPrompt;
|
|
13
|
+
private static readonly defaultTranscribeOptions;
|
|
14
|
+
private static readonly defaultEmbedBufferSize;
|
|
15
|
+
private static cactusModelsCache;
|
|
16
|
+
constructor({ model, contextSize }?: CactusSTTParams);
|
|
17
|
+
download({ onProgress, }?: CactusSTTDownloadParams): Promise<void>;
|
|
18
|
+
init(): Promise<void>;
|
|
19
|
+
transcribe({ audioFilePath, prompt, options, onToken, }: CactusSTTTranscribeParams): Promise<CactusSTTTranscribeResult>;
|
|
20
|
+
audioEmbed({ audioPath, }: CactusSTTAudioEmbedParams): Promise<CactusSTTAudioEmbedResult>;
|
|
21
|
+
stop(): Promise<void>;
|
|
22
|
+
reset(): Promise<void>;
|
|
23
|
+
destroy(): Promise<void>;
|
|
24
|
+
getModels(): Promise<CactusModel[]>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=CactusSTT.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CactusSTT.d.ts","sourceRoot":"","sources":["../../../../src/classes/CactusSTT.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,eAAe,EACf,yBAAyB,EACzB,yBAAyB,EAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAMxD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IAEvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IAErC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAmB;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAQ;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CACyB;IAC9D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAE9C;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAQ;IAEtD,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAA8B;gBAElD,EAAE,KAAK,EAAE,WAAW,EAAE,GAAE,eAAoB;IAO3C,QAAQ,CAAC,EACpB,UAAU,GACX,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBlC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBrB,UAAU,CAAC,EACtB,aAAa,EACb,MAAM,EACN,OAAO,EACP,OAAO,GACR,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAsCpD,UAAU,CAAC,EACtB,SAAS,GACV,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAuB1D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAWxB,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;CAWjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CactusConfig.d.ts","sourceRoot":"","sources":["../../../../src/config/CactusConfig.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAY;
|
|
1
|
+
{"version":3,"file":"CactusConfig.d.ts","sourceRoot":"","sources":["../../../../src/config/CactusConfig.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAY;IAEvB,OAAc,cAAc,CAAC,EAAE,MAAM,CAAC;IACtC,OAAc,kBAAkB,EAAE,OAAO,CAAQ;IAGjD,OAAc,WAAW,CAAC,EAAE,MAAM,CAAC;CACpC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const packageVersion = "1.0
|
|
1
|
+
export declare const packageVersion = "1.2.0";
|
|
2
2
|
//# sourceMappingURL=packageVersion.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CactusLMParams, CactusLMCompleteResult, CactusLMEmbedParams, CactusLMEmbedResult,
|
|
1
|
+
import type { CactusLMParams, CactusLMCompleteResult, CactusLMEmbedParams, CactusLMEmbedResult, CactusLMImageEmbedParams, CactusLMImageEmbedResult, CactusLMCompleteParams, CactusLMDownloadParams } from '../types/CactusLM';
|
|
2
2
|
import type { CactusModel } from '../types/CactusModel';
|
|
3
3
|
export declare const useCactusLM: ({ model, contextSize, corpusDir, }?: CactusLMParams) => {
|
|
4
4
|
completion: string;
|
|
@@ -10,11 +10,12 @@ export declare const useCactusLM: ({ model, contextSize, corpusDir, }?: CactusLM
|
|
|
10
10
|
error: string | null;
|
|
11
11
|
download: ({ onProgress }?: CactusLMDownloadParams) => Promise<void>;
|
|
12
12
|
init: () => Promise<void>;
|
|
13
|
-
complete: ({ messages, options, tools, onToken, }: CactusLMCompleteParams) => Promise<CactusLMCompleteResult>;
|
|
13
|
+
complete: ({ messages, options, tools, onToken, mode, }: CactusLMCompleteParams) => Promise<CactusLMCompleteResult>;
|
|
14
14
|
embed: ({ text }: CactusLMEmbedParams) => Promise<CactusLMEmbedResult>;
|
|
15
|
+
imageEmbed: ({ imagePath, }: CactusLMImageEmbedParams) => Promise<CactusLMImageEmbedResult>;
|
|
15
16
|
reset: () => Promise<void>;
|
|
16
17
|
stop: () => Promise<void>;
|
|
17
18
|
destroy: () => Promise<void>;
|
|
18
|
-
getModels: (
|
|
19
|
+
getModels: () => Promise<CactusModel[]>;
|
|
19
20
|
};
|
|
20
21
|
//# sourceMappingURL=useCactusLM.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCactusLM.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useCactusLM.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"useCactusLM.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useCactusLM.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,eAAO,MAAM,WAAW,GAAI,qCAIzB,cAAmB;;;;;;;;gCA4DK,sBAAsB;;6DA4F1C,sBAAsB,KAAG,OAAO,CAAC,sBAAsB,CAAC;sBAgC1C,mBAAmB,KAAG,OAAO,CAAC,mBAAmB,CAAC;iCAwBhE,wBAAwB,KAAG,OAAO,CAAC,wBAAwB,CAAC;;;;qBAuDzB,OAAO,CAAC,WAAW,EAAE,CAAC;CA6B/D,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { CactusSTTParams, CactusSTTTranscribeResult, CactusSTTTranscribeParams, CactusSTTDownloadParams, CactusSTTAudioEmbedParams, CactusSTTAudioEmbedResult } from '../types/CactusSTT';
|
|
2
|
+
import type { CactusModel } from '../types/CactusModel';
|
|
3
|
+
export declare const useCactusSTT: ({ model, contextSize, }?: CactusSTTParams) => {
|
|
4
|
+
transcription: string;
|
|
5
|
+
isGenerating: boolean;
|
|
6
|
+
isInitializing: boolean;
|
|
7
|
+
isDownloaded: boolean;
|
|
8
|
+
isDownloading: boolean;
|
|
9
|
+
downloadProgress: number;
|
|
10
|
+
error: string | null;
|
|
11
|
+
download: ({ onProgress }?: CactusSTTDownloadParams) => Promise<void>;
|
|
12
|
+
init: () => Promise<void>;
|
|
13
|
+
transcribe: ({ audioFilePath, prompt, options, onToken, }: CactusSTTTranscribeParams) => Promise<CactusSTTTranscribeResult>;
|
|
14
|
+
audioEmbed: ({ audioPath, }: CactusSTTAudioEmbedParams) => Promise<CactusSTTAudioEmbedResult>;
|
|
15
|
+
reset: () => Promise<void>;
|
|
16
|
+
stop: () => Promise<void>;
|
|
17
|
+
destroy: () => Promise<void>;
|
|
18
|
+
getModels: () => Promise<CactusModel[]>;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=useCactusSTT.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCactusSTT.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useCactusSTT.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,eAAe,EACf,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,eAAO,MAAM,YAAY,GAAI,0BAG1B,eAAoB;;;;;;;;gCA4DI,uBAAuB;;+DA2F3C,yBAAyB,KAAG,OAAO,CAAC,yBAAyB,CAAC;iCAiC9D,yBAAyB,KAAG,OAAO,CAAC,yBAAyB,CAAC;;;;qBAuD3B,OAAO,CAAC,WAAW,EAAE,CAAC;CA4B/D,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export { CactusLM } from './classes/CactusLM';
|
|
2
|
+
export { CactusSTT } from './classes/CactusSTT';
|
|
2
3
|
export { useCactusLM } from './hooks/useCactusLM';
|
|
4
|
+
export { useCactusSTT } from './hooks/useCactusSTT';
|
|
3
5
|
export type { CactusModel } from './types/CactusModel';
|
|
4
|
-
export type { CactusLMParams, CactusLMDownloadParams, Message,
|
|
6
|
+
export type { CactusLMParams, CactusLMDownloadParams, Message, CompleteOptions, Tool, CactusLMCompleteParams, CactusLMCompleteResult, CactusLMEmbedParams, CactusLMEmbedResult, CactusLMImageEmbedParams, CactusLMImageEmbedResult, } from './types/CactusLM';
|
|
7
|
+
export type { CactusSTTParams, CactusSTTDownloadParams, TranscribeOptions, CactusSTTTranscribeParams, CactusSTTTranscribeResult, CactusSTTAudioEmbedParams, CactusSTTAudioEmbedResult, } from './types/CactusSTT';
|
|
5
8
|
export { CactusConfig } from './config/CactusConfig';
|
|
6
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EACV,cAAc,EACd,sBAAsB,EACtB,OAAO,EACP,eAAe,EACf,IAAI,EACJ,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,eAAe,EACf,uBAAuB,EACvB,iBAAiB,EACjB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
import type { CactusLMCompleteResult, Message,
|
|
1
|
+
import type { CactusLMCompleteResult, Message, CompleteOptions, Tool } from '../types/CactusLM';
|
|
2
|
+
import type { CactusSTTTranscribeResult, TranscribeOptions } from '../types/CactusSTT';
|
|
2
3
|
export declare class Cactus {
|
|
3
4
|
private readonly hybridCactus;
|
|
4
5
|
init(modelPath: string, contextSize: number, corpusDir?: string): Promise<void>;
|
|
5
|
-
complete(messages: Message[], responseBufferSize: number, options?:
|
|
6
|
+
complete(messages: Message[], responseBufferSize: number, options?: CompleteOptions, tools?: {
|
|
7
|
+
type: 'function';
|
|
8
|
+
function: Tool;
|
|
9
|
+
}[], callback?: (token: string, tokenId: number) => void): Promise<CactusLMCompleteResult>;
|
|
10
|
+
transcribe(audioFilePath: string, prompt: string, responseBufferSize: number, options?: TranscribeOptions, callback?: (token: string, tokenId: number) => void): Promise<CactusSTTTranscribeResult>;
|
|
6
11
|
embed(text: string, embeddingBufferSize: number): Promise<number[]>;
|
|
12
|
+
imageEmbed(imagePath: string, embeddingBufferSize: number): Promise<number[]>;
|
|
13
|
+
audioEmbed(audioPath: string, embeddingBufferSize: number): Promise<number[]>;
|
|
7
14
|
reset(): Promise<void>;
|
|
8
15
|
stop(): Promise<void>;
|
|
9
16
|
destroy(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cactus.d.ts","sourceRoot":"","sources":["../../../../src/native/Cactus.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Cactus.d.ts","sourceRoot":"","sources":["../../../../src/native/Cactus.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,sBAAsB,EACtB,OAAO,EACP,eAAe,EACf,IAAI,EACL,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,yBAAyB,EACzB,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAC2B;IAEjD,IAAI,CACT,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IAIH,QAAQ,CACnB,QAAQ,EAAE,OAAO,EAAE,EACnB,kBAAkB,EAAE,MAAM,EAC1B,OAAO,CAAC,EAAE,eAAe,EACzB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE,EAAE,EAC9C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAClD,OAAO,CAAC,sBAAsB,CAAC;IA2DrB,UAAU,CACrB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,MAAM,EAC1B,OAAO,CAAC,EAAE,iBAAiB,EAC3B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAClD,OAAO,CAAC,yBAAyB,CAAC;IAqC9B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAI7D,UAAU,CACrB,SAAS,EAAE,MAAM,EACjB,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC;IAUb,UAAU,CACf,SAAS,EAAE,MAAM,EACjB,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC;IAOb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC"}
|
|
@@ -7,7 +7,7 @@ export declare class CactusFileSystem {
|
|
|
7
7
|
static deleteFile(path: string): Promise<void>;
|
|
8
8
|
static modelExists(model: string): Promise<boolean>;
|
|
9
9
|
static getModelPath(model: string): Promise<string>;
|
|
10
|
-
static downloadModel(model: string, onProgress?: (progress: number) => void): Promise<void>;
|
|
10
|
+
static downloadModel(model: string, url: string, onProgress?: (progress: number) => void): Promise<void>;
|
|
11
11
|
static deleteModel(model: string): Promise<void>;
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=CactusFileSystem.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CactusFileSystem.d.ts","sourceRoot":"","sources":["../../../../src/native/CactusFileSystem.ts"],"names":[],"mappings":"AAGA,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAC8B;WAE9D,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;WAIrC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WAI1C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;WAIvD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;WAIvC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;WAIvC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WAI5C,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;WAI5C,aAAa,CACzB,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACtC,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"CactusFileSystem.d.ts","sourceRoot":"","sources":["../../../../src/native/CactusFileSystem.ts"],"names":[],"mappings":"AAGA,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAC8B;WAE9D,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;WAIrC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WAI1C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;WAIvD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;WAIvC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;WAIvC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WAI5C,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;WAI5C,aAAa,CACzB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACtC,OAAO,CAAC,IAAI,CAAC;WAIF,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGxD"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare class CactusImage {
|
|
2
|
+
private static readonly hybridCactusImage;
|
|
3
|
+
static base64(path: string): Promise<string>;
|
|
4
|
+
static resize(path: string, height: number, width: number, quality: number): Promise<string>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=CactusImage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CactusImage.d.ts","sourceRoot":"","sources":["../../../../src/native/CactusImage.ts"],"names":[],"mappings":"AAGA,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CACyB;WAEpD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;WAIrC,MAAM,CAClB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;CAGnB"}
|
|
@@ -2,5 +2,6 @@ export { Cactus } from './Cactus';
|
|
|
2
2
|
export { CactusCrypto } from './CactusCrypto';
|
|
3
3
|
export { CactusDeviceInfo } from './CactusDeviceInfo';
|
|
4
4
|
export { CactusFileSystem } from './CactusFileSystem';
|
|
5
|
+
export { CactusImage } from './CactusImage';
|
|
5
6
|
export { CactusUtil } from './CactusUtil';
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/native/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/native/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -5,7 +5,10 @@ export interface Cactus extends HybridObject<{
|
|
|
5
5
|
}> {
|
|
6
6
|
init(modelPath: string, contextSize: number, corpusDir?: string): Promise<void>;
|
|
7
7
|
complete(messagesJson: string, responseBufferSize: number, optionsJson?: string, toolsJson?: string, callback?: (token: string, tokenId: number) => void): Promise<string>;
|
|
8
|
+
transcribe(audioFilePath: string, prompt: string, responseBufferSize: number, optionsJson?: string, callback?: (token: string, tokenId: number) => void): Promise<string>;
|
|
8
9
|
embed(text: string, embeddingBufferSize: number): Promise<number[]>;
|
|
10
|
+
imageEmbed(imagePath: string, embeddingBufferSize: number): Promise<number[]>;
|
|
11
|
+
audioEmbed(audioPath: string, embeddingBufferSize: number): Promise<number[]>;
|
|
9
12
|
reset(): Promise<void>;
|
|
10
13
|
stop(): Promise<void>;
|
|
11
14
|
destroy(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cactus.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/Cactus.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,MAAO,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;IAC1E,IAAI,CACF,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,QAAQ,CACN,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM,EAC1B,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAClD,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B"}
|
|
1
|
+
{"version":3,"file":"Cactus.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/Cactus.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,MAAO,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;IAC1E,IAAI,CACF,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,QAAQ,CACN,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM,EAC1B,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAClD,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,UAAU,CACR,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,MAAM,EAC1B,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAClD,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9E,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { HybridObject } from 'react-native-nitro-modules';
|
|
2
|
+
export interface CactusImage extends HybridObject<{
|
|
3
|
+
ios: 'swift';
|
|
4
|
+
android: 'kotlin';
|
|
5
|
+
}> {
|
|
6
|
+
base64(path: string): Promise<string>;
|
|
7
|
+
resize(path: string, height: number, width: number, quality: number): Promise<string>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=CactusImage.nitro.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CactusImage.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/CactusImage.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,WACf,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAC;IACzD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,CACJ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { CactusLMCompleteResult } from '../types/CactusLM';
|
|
2
|
+
import type { CactusSTTTranscribeResult } from '../types/CactusSTT';
|
|
2
3
|
export interface LogRecord {
|
|
3
4
|
framework: 'react-native';
|
|
4
5
|
framework_version: string;
|
|
5
|
-
event_type: 'init' | 'completion' | 'embedding';
|
|
6
|
+
event_type: 'init' | 'completion' | 'transcription' | 'embedding' | 'image_embedding' | 'audio_embedding';
|
|
6
7
|
model: string;
|
|
7
8
|
success: boolean;
|
|
8
9
|
message?: string;
|
|
@@ -25,6 +26,9 @@ export declare class Telemetry {
|
|
|
25
26
|
static init(cactusTelemetryToken?: string): Promise<void>;
|
|
26
27
|
static logInit(model: string, success: boolean, message?: string): Promise<void>;
|
|
27
28
|
static logCompletion(model: string, success: boolean, message?: string, result?: CactusLMCompleteResult): Promise<void>;
|
|
29
|
+
static logTranscribe(model: string, success: boolean, message?: string, result?: CactusSTTTranscribeResult): Promise<void>;
|
|
28
30
|
static logEmbedding(model: string, success: boolean, message?: string): Promise<void>;
|
|
31
|
+
static logImageEmbedding(model: string, success: boolean, message?: string): Promise<void>;
|
|
32
|
+
static logAudioEmbedding(model: string, success: boolean, message?: string): Promise<void>;
|
|
29
33
|
}
|
|
30
34
|
//# sourceMappingURL=Telemetry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Telemetry.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/Telemetry.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"Telemetry.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/Telemetry.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAEpE,MAAM,WAAW,SAAS;IAExB,SAAS,EAAE,cAAc,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAG1B,UAAU,EACN,MAAM,GACN,YAAY,GACZ,eAAe,GACf,WAAW,GACX,iBAAiB,GACjB,iBAAiB,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAS;IAC7C,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAS;IAClC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAS;IAEjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAA0C;IAC9E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAOpC;mBAEmB,SAAS;WAiChB,aAAa,IAAI,OAAO;WAIlB,IAAI,CAAC,oBAAoB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;WAyBxD,OAAO,CACnB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;WAcF,aAAa,CACzB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,sBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC;WAkBF,aAAa,CACzB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,yBAAyB,GACjC,OAAO,CAAC,IAAI,CAAC;WAkBF,YAAY,CACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;WAcF,iBAAiB,CAC7B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;WAcF,iBAAiB,CAC7B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;CAajB"}
|
|
@@ -11,7 +11,7 @@ export interface Message {
|
|
|
11
11
|
content?: string;
|
|
12
12
|
images?: string[];
|
|
13
13
|
}
|
|
14
|
-
export interface
|
|
14
|
+
export interface CompleteOptions {
|
|
15
15
|
temperature?: number;
|
|
16
16
|
topP?: number;
|
|
17
17
|
topK?: number;
|
|
@@ -19,7 +19,6 @@ export interface Options {
|
|
|
19
19
|
stopSequences?: string[];
|
|
20
20
|
}
|
|
21
21
|
export interface Tool {
|
|
22
|
-
type: 'function';
|
|
23
22
|
name: string;
|
|
24
23
|
description: string;
|
|
25
24
|
parameters: {
|
|
@@ -35,9 +34,10 @@ export interface Tool {
|
|
|
35
34
|
}
|
|
36
35
|
export interface CactusLMCompleteParams {
|
|
37
36
|
messages: Message[];
|
|
38
|
-
options?:
|
|
37
|
+
options?: CompleteOptions;
|
|
39
38
|
tools?: Tool[];
|
|
40
39
|
onToken?: (token: string) => void;
|
|
40
|
+
mode?: 'local' | 'hybrid';
|
|
41
41
|
}
|
|
42
42
|
export interface CactusLMCompleteResult {
|
|
43
43
|
success: boolean;
|
|
@@ -61,7 +61,10 @@ export interface CactusLMEmbedParams {
|
|
|
61
61
|
export interface CactusLMEmbedResult {
|
|
62
62
|
embedding: number[];
|
|
63
63
|
}
|
|
64
|
-
export interface
|
|
65
|
-
|
|
64
|
+
export interface CactusLMImageEmbedParams {
|
|
65
|
+
imagePath: string;
|
|
66
|
+
}
|
|
67
|
+
export interface CactusLMImageEmbedResult {
|
|
68
|
+
embedding: number[];
|
|
66
69
|
}
|
|
67
70
|
//# sourceMappingURL=CactusLM.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CactusLM.d.ts","sourceRoot":"","sources":["../../../../src/types/CactusLM.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"CactusLM.d.ts","sourceRoot":"","sources":["../../../../src/types/CactusLM.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE;YACV,CAAC,GAAG,EAAE,MAAM,GAAG;gBACb,IAAI,EAAE,MAAM,CAAC;gBACb,WAAW,EAAE,MAAM,CAAC;aACrB,CAAC;SACH,CAAC;QACF,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAC;KACnC,EAAE,CAAC;IACJ,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export interface CactusSTTParams {
|
|
2
|
+
model?: string;
|
|
3
|
+
contextSize?: number;
|
|
4
|
+
}
|
|
5
|
+
export interface CactusSTTDownloadParams {
|
|
6
|
+
onProgress?: (progress: number) => void;
|
|
7
|
+
}
|
|
8
|
+
export interface TranscribeOptions {
|
|
9
|
+
temperature?: number;
|
|
10
|
+
topP?: number;
|
|
11
|
+
topK?: number;
|
|
12
|
+
maxTokens?: number;
|
|
13
|
+
stopSequences?: string[];
|
|
14
|
+
}
|
|
15
|
+
export interface CactusSTTTranscribeParams {
|
|
16
|
+
audioFilePath: string;
|
|
17
|
+
prompt?: string;
|
|
18
|
+
options?: TranscribeOptions;
|
|
19
|
+
onToken?: (token: string) => void;
|
|
20
|
+
}
|
|
21
|
+
export interface CactusSTTTranscribeResult {
|
|
22
|
+
success: boolean;
|
|
23
|
+
response: string;
|
|
24
|
+
timeToFirstTokenMs: number;
|
|
25
|
+
totalTimeMs: number;
|
|
26
|
+
tokensPerSecond: number;
|
|
27
|
+
prefillTokens: number;
|
|
28
|
+
decodeTokens: number;
|
|
29
|
+
totalTokens: number;
|
|
30
|
+
}
|
|
31
|
+
export interface CactusSTTAudioEmbedParams {
|
|
32
|
+
audioPath: string;
|
|
33
|
+
}
|
|
34
|
+
export interface CactusSTTAudioEmbedResult {
|
|
35
|
+
embedding: number[];
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=CactusSTT.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CactusSTT.d.ts","sourceRoot":"","sources":["../../../../src/types/CactusSTT.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB"}
|
package/nitro.json
CHANGED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JHybridCactusImageSpec.cpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#include "JHybridCactusImageSpec.hpp"
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
#include <string>
|
|
13
|
+
#include <NitroModules/Promise.hpp>
|
|
14
|
+
#include <NitroModules/JPromise.hpp>
|
|
15
|
+
|
|
16
|
+
namespace margelo::nitro::cactus {
|
|
17
|
+
|
|
18
|
+
jni::local_ref<JHybridCactusImageSpec::jhybriddata> JHybridCactusImageSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
|
|
19
|
+
return makeCxxInstance(jThis);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
void JHybridCactusImageSpec::registerNatives() {
|
|
23
|
+
registerHybrid({
|
|
24
|
+
makeNativeMethod("initHybrid", JHybridCactusImageSpec::initHybrid),
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
size_t JHybridCactusImageSpec::getExternalMemorySize() noexcept {
|
|
29
|
+
static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
|
|
30
|
+
return method(_javaPart);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
void JHybridCactusImageSpec::dispose() noexcept {
|
|
34
|
+
static const auto method = javaClassStatic()->getMethod<void()>("dispose");
|
|
35
|
+
method(_javaPart);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
std::string JHybridCactusImageSpec::toString() {
|
|
39
|
+
static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
|
|
40
|
+
auto javaString = method(_javaPart);
|
|
41
|
+
return javaString->toStdString();
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Properties
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
// Methods
|
|
48
|
+
std::shared_ptr<Promise<std::string>> JHybridCactusImageSpec::base64(const std::string& path) {
|
|
49
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* path */)>("base64");
|
|
50
|
+
auto __result = method(_javaPart, jni::make_jstring(path));
|
|
51
|
+
return [&]() {
|
|
52
|
+
auto __promise = Promise<std::string>::create();
|
|
53
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
|
|
54
|
+
auto __result = jni::static_ref_cast<jni::JString>(__boxedResult);
|
|
55
|
+
__promise->resolve(__result->toStdString());
|
|
56
|
+
});
|
|
57
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
58
|
+
jni::JniException __jniError(__throwable);
|
|
59
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
60
|
+
});
|
|
61
|
+
return __promise;
|
|
62
|
+
}();
|
|
63
|
+
}
|
|
64
|
+
std::shared_ptr<Promise<std::string>> JHybridCactusImageSpec::resize(const std::string& path, double height, double width, double quality) {
|
|
65
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* path */, double /* height */, double /* width */, double /* quality */)>("resize");
|
|
66
|
+
auto __result = method(_javaPart, jni::make_jstring(path), height, width, quality);
|
|
67
|
+
return [&]() {
|
|
68
|
+
auto __promise = Promise<std::string>::create();
|
|
69
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
|
|
70
|
+
auto __result = jni::static_ref_cast<jni::JString>(__boxedResult);
|
|
71
|
+
__promise->resolve(__result->toStdString());
|
|
72
|
+
});
|
|
73
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
74
|
+
jni::JniException __jniError(__throwable);
|
|
75
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
76
|
+
});
|
|
77
|
+
return __promise;
|
|
78
|
+
}();
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
} // namespace margelo::nitro::cactus
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridCactusImageSpec.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <NitroModules/JHybridObject.hpp>
|
|
11
|
+
#include <fbjni/fbjni.h>
|
|
12
|
+
#include "HybridCactusImageSpec.hpp"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
namespace margelo::nitro::cactus {
|
|
18
|
+
|
|
19
|
+
using namespace facebook;
|
|
20
|
+
|
|
21
|
+
class JHybridCactusImageSpec: public jni::HybridClass<JHybridCactusImageSpec, JHybridObject>,
|
|
22
|
+
public virtual HybridCactusImageSpec {
|
|
23
|
+
public:
|
|
24
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/cactus/HybridCactusImageSpec;";
|
|
25
|
+
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
|
|
26
|
+
static void registerNatives();
|
|
27
|
+
|
|
28
|
+
protected:
|
|
29
|
+
// C++ constructor (called from Java via `initHybrid()`)
|
|
30
|
+
explicit JHybridCactusImageSpec(jni::alias_ref<jhybridobject> jThis) :
|
|
31
|
+
HybridObject(HybridCactusImageSpec::TAG),
|
|
32
|
+
HybridBase(jThis),
|
|
33
|
+
_javaPart(jni::make_global(jThis)) {}
|
|
34
|
+
|
|
35
|
+
public:
|
|
36
|
+
~JHybridCactusImageSpec() override {
|
|
37
|
+
// Hermes GC can destroy JS objects on a non-JNI Thread.
|
|
38
|
+
jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
public:
|
|
42
|
+
size_t getExternalMemorySize() noexcept override;
|
|
43
|
+
void dispose() noexcept override;
|
|
44
|
+
std::string toString() override;
|
|
45
|
+
|
|
46
|
+
public:
|
|
47
|
+
inline const jni::global_ref<JHybridCactusImageSpec::javaobject>& getJavaPart() const noexcept {
|
|
48
|
+
return _javaPart;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public:
|
|
52
|
+
// Properties
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
public:
|
|
56
|
+
// Methods
|
|
57
|
+
std::shared_ptr<Promise<std::string>> base64(const std::string& path) override;
|
|
58
|
+
std::shared_ptr<Promise<std::string>> resize(const std::string& path, double height, double width, double quality) override;
|
|
59
|
+
|
|
60
|
+
private:
|
|
61
|
+
friend HybridBase;
|
|
62
|
+
using HybridBase::HybridBase;
|
|
63
|
+
jni::global_ref<JHybridCactusImageSpec::javaobject> _javaPart;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
} // namespace margelo::nitro::cactus
|
|
@@ -37,11 +37,13 @@ target_sources(
|
|
|
37
37
|
../nitrogen/generated/shared/c++/HybridCactusCryptoSpec.cpp
|
|
38
38
|
../nitrogen/generated/shared/c++/HybridCactusDeviceInfoSpec.cpp
|
|
39
39
|
../nitrogen/generated/shared/c++/HybridCactusFileSystemSpec.cpp
|
|
40
|
+
../nitrogen/generated/shared/c++/HybridCactusImageSpec.cpp
|
|
40
41
|
../nitrogen/generated/shared/c++/HybridCactusUtilSpec.cpp
|
|
41
42
|
# Android-specific Nitrogen C++ sources
|
|
42
43
|
../nitrogen/generated/android/c++/JHybridCactusCryptoSpec.cpp
|
|
43
44
|
../nitrogen/generated/android/c++/JHybridCactusDeviceInfoSpec.cpp
|
|
44
45
|
../nitrogen/generated/android/c++/JHybridCactusFileSystemSpec.cpp
|
|
46
|
+
../nitrogen/generated/android/c++/JHybridCactusImageSpec.cpp
|
|
45
47
|
)
|
|
46
48
|
|
|
47
49
|
# From node_modules/react-native/ReactAndroid/cmake-utils/folly-flags.cmake
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
#include "JHybridCactusDeviceInfoSpec.hpp"
|
|
20
20
|
#include "JHybridCactusFileSystemSpec.hpp"
|
|
21
21
|
#include "JFunc_void_double.hpp"
|
|
22
|
+
#include "JHybridCactusImageSpec.hpp"
|
|
22
23
|
#include "HybridCactus.hpp"
|
|
23
24
|
#include "HybridCactusUtil.hpp"
|
|
24
25
|
#include <NitroModules/DefaultConstructableObject.hpp>
|
|
@@ -36,6 +37,7 @@ int initialize(JavaVM* vm) {
|
|
|
36
37
|
margelo::nitro::cactus::JHybridCactusDeviceInfoSpec::registerNatives();
|
|
37
38
|
margelo::nitro::cactus::JHybridCactusFileSystemSpec::registerNatives();
|
|
38
39
|
margelo::nitro::cactus::JFunc_void_double_cxx::registerNatives();
|
|
40
|
+
margelo::nitro::cactus::JHybridCactusImageSpec::registerNatives();
|
|
39
41
|
|
|
40
42
|
// Register Nitro Hybrid Objects
|
|
41
43
|
HybridObjectRegistry::registerHybridObjectConstructor(
|
|
@@ -80,6 +82,14 @@ int initialize(JavaVM* vm) {
|
|
|
80
82
|
return instance->cthis()->shared();
|
|
81
83
|
}
|
|
82
84
|
);
|
|
85
|
+
HybridObjectRegistry::registerHybridObjectConstructor(
|
|
86
|
+
"CactusImage",
|
|
87
|
+
[]() -> std::shared_ptr<HybridObject> {
|
|
88
|
+
static DefaultConstructableObject<JHybridCactusImageSpec::javaobject> object("com/margelo/nitro/cactus/HybridCactusImage");
|
|
89
|
+
auto instance = object.create();
|
|
90
|
+
return instance->cthis()->shared();
|
|
91
|
+
}
|
|
92
|
+
);
|
|
83
93
|
});
|
|
84
94
|
}
|
|
85
95
|
|