cactus-react-native 1.10.4 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +199 -40
  2. package/android/src/main/jniLibs/arm64-v8a/libcactus.a +0 -0
  3. package/cpp/HybridCactus.cpp +131 -2
  4. package/cpp/HybridCactus.hpp +15 -0
  5. package/cpp/cactus_ffi.h +240 -2
  6. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/cactus_ffi.h +240 -2
  7. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/cactus_utils.h +940 -109
  8. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/engine.h +175 -25
  9. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/gemma_tools.h +48 -21
  10. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/graph.h +79 -7
  11. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/kernel.h +122 -9
  12. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/kernel_utils.h +191 -2
  13. package/ios/cactus.xcframework/ios-arm64/cactus.framework/cactus +0 -0
  14. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/cactus_ffi.h +240 -2
  15. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/cactus_utils.h +940 -109
  16. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/engine.h +175 -25
  17. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/gemma_tools.h +48 -21
  18. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/graph.h +79 -7
  19. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/kernel.h +122 -9
  20. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/kernel_utils.h +191 -2
  21. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/cactus +0 -0
  22. package/lib/module/classes/{CactusVAD.js → CactusAudio.js} +19 -6
  23. package/lib/module/classes/CactusAudio.js.map +1 -0
  24. package/lib/module/classes/CactusLM.js +25 -0
  25. package/lib/module/classes/CactusLM.js.map +1 -1
  26. package/lib/module/hooks/{useCactusVAD.js → useCactusAudio.js} +50 -20
  27. package/lib/module/hooks/useCactusAudio.js.map +1 -0
  28. package/lib/module/index.js +2 -2
  29. package/lib/module/index.js.map +1 -1
  30. package/lib/module/modelRegistry.js +1 -1
  31. package/lib/module/native/Cactus.js +81 -2
  32. package/lib/module/native/Cactus.js.map +1 -1
  33. package/lib/module/types/CactusAudio.js +4 -0
  34. package/lib/module/types/{CactusVAD.js.map → CactusAudio.js.map} +1 -1
  35. package/lib/typescript/src/classes/CactusAudio.d.ts +22 -0
  36. package/lib/typescript/src/classes/CactusAudio.d.ts.map +1 -0
  37. package/lib/typescript/src/classes/CactusLM.d.ts +2 -1
  38. package/lib/typescript/src/classes/CactusLM.d.ts.map +1 -1
  39. package/lib/typescript/src/hooks/useCactusAudio.d.ts +17 -0
  40. package/lib/typescript/src/hooks/useCactusAudio.d.ts.map +1 -0
  41. package/lib/typescript/src/index.d.ts +4 -4
  42. package/lib/typescript/src/index.d.ts.map +1 -1
  43. package/lib/typescript/src/native/Cactus.d.ts +9 -3
  44. package/lib/typescript/src/native/Cactus.d.ts.map +1 -1
  45. package/lib/typescript/src/specs/Cactus.nitro.d.ts +3 -0
  46. package/lib/typescript/src/specs/Cactus.nitro.d.ts.map +1 -1
  47. package/lib/typescript/src/types/CactusAudio.d.ts +63 -0
  48. package/lib/typescript/src/types/CactusAudio.d.ts.map +1 -0
  49. package/lib/typescript/src/types/CactusLM.d.ts +15 -0
  50. package/lib/typescript/src/types/CactusLM.d.ts.map +1 -1
  51. package/lib/typescript/src/types/CactusSTT.d.ts +1 -0
  52. package/lib/typescript/src/types/CactusSTT.d.ts.map +1 -1
  53. package/nitrogen/generated/shared/c++/HybridCactusSpec.cpp +3 -0
  54. package/nitrogen/generated/shared/c++/HybridCactusSpec.hpp +3 -0
  55. package/package.json +1 -1
  56. package/src/classes/{CactusVAD.ts → CactusAudio.ts} +32 -13
  57. package/src/classes/CactusLM.ts +36 -0
  58. package/src/hooks/{useCactusVAD.ts → useCactusAudio.ts} +65 -28
  59. package/src/index.tsx +16 -9
  60. package/src/modelRegistry.ts +1 -1
  61. package/src/native/Cactus.ts +118 -3
  62. package/src/specs/Cactus.nitro.ts +16 -0
  63. package/src/types/CactusAudio.ts +73 -0
  64. package/src/types/CactusLM.ts +17 -0
  65. package/src/types/CactusSTT.ts +1 -0
  66. package/lib/module/classes/CactusVAD.js.map +0 -1
  67. package/lib/module/hooks/useCactusVAD.js.map +0 -1
  68. package/lib/module/types/CactusVAD.js +0 -4
  69. package/lib/typescript/src/classes/CactusVAD.d.ts +0 -20
  70. package/lib/typescript/src/classes/CactusVAD.d.ts.map +0 -1
  71. package/lib/typescript/src/hooks/useCactusVAD.d.ts +0 -15
  72. package/lib/typescript/src/hooks/useCactusVAD.d.ts.map +0 -1
  73. package/lib/typescript/src/types/CactusVAD.d.ts +0 -34
  74. package/lib/typescript/src/types/CactusVAD.d.ts.map +0 -1
  75. package/src/types/CactusVAD.ts +0 -39
@@ -1 +1 @@
1
- {"version":3,"file":"Cactus.d.ts","sourceRoot":"","sources":["../../../../src/native/Cactus.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EACf,uBAAuB,EACvB,YAAY,EACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,yBAAyB,EACzB,0BAA0B,EAC1B,qCAAqC,EACrC,sCAAsC,EACtC,mCAAmC,EACnC,8BAA8B,EAC9B,6BAA6B,EAC9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE5E,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAC2B;IAEjD,IAAI,CACT,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,OAAO,GACnB,OAAO,CAAC,IAAI,CAAC;IAIH,QAAQ,CACnB,QAAQ,EAAE,eAAe,EAAE,EAC3B,kBAAkB,EAAE,MAAM,EAC1B,OAAO,CAAC,EAAE,uBAAuB,EACjC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,EAAE,EACtD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAClD,OAAO,CAAC,sBAAsB,CAAC;IAuE3B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAInC,WAAW,CACtB,MAAM,EAAE,MAAM,EAAE,EAChB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;IAeL,UAAU,CACrB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,MAAM,EAC1B,OAAO,CAAC,EAAE,0BAA0B,EACpC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAClD,OAAO,CAAC,yBAAyB,CAAC;IAkD9B,qBAAqB,CAC1B,OAAO,CAAC,EAAE,qCAAqC,GAC9C,OAAO,CAAC,IAAI,CAAC;IAWH,uBAAuB,CAClC,KAAK,EAAE,MAAM,EAAE,GACd,OAAO,CAAC,sCAAsC,CAAC;IA4BrC,cAAc,CACzB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,OAAO,CAAC,EAAE,8BAA8B,GACvC,OAAO,CAAC,6BAA6B,CAAC;IA2B5B,oBAAoB,IAAI,OAAO,CAAC,mCAAmC,CAAC;IAUpE,GAAG,CACd,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC;IAkCpB,KAAK,CACV,IAAI,EAAE,MAAM,EACZ,mBAAmB,EAAE,MAAM,EAC3B,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC;IAIP,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;IAIxB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGhE"}
1
+ {"version":3,"file":"Cactus.d.ts","sourceRoot":"","sources":["../../../../src/native/Cactus.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export interface Cactus extends HybridObject<{
5
5
  }> {
6
6
  init(modelPath: string, corpusDir?: string, cacheIndex?: boolean): Promise<void>;
7
7
  complete(messagesJson: string, responseBufferSize: number, optionsJson?: string, toolsJson?: string, callback?: (token: string, tokenId: number) => void): Promise<string>;
8
+ prefill(messagesJson: string, responseBufferSize: number, optionsJson?: string, toolsJson?: string): Promise<string>;
8
9
  tokenize(text: string): Promise<number[]>;
9
10
  scoreWindow(tokens: number[], start: number, end: number, context: number): Promise<string>;
10
11
  transcribe(audio: string | number[], prompt: string, responseBufferSize: number, optionsJson?: string, callback?: (token: string, tokenId: number) => void): Promise<string>;
@@ -16,6 +17,8 @@ export interface Cactus extends HybridObject<{
16
17
  embed(text: string, embeddingBufferSize: number, normalize: boolean): Promise<number[]>;
17
18
  imageEmbed(imagePath: string, embeddingBufferSize: number): Promise<number[]>;
18
19
  audioEmbed(audioPath: string, embeddingBufferSize: number): Promise<number[]>;
20
+ diarize(audio: string | number[], responseBufferSize: number, optionsJson?: string): Promise<string>;
21
+ embedSpeaker(audio: string | number[], responseBufferSize: number, optionsJson?: string): Promise<string>;
19
22
  reset(): Promise<void>;
20
23
  stop(): Promise<void>;
21
24
  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,SAAS,CAAC,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,OAAO,GACnB,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,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,WAAW,CACT,MAAM,EAAE,MAAM,EAAE,EAChB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,UAAU,CACR,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,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,cAAc,CACZ,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,kBAAkB,EAAE,MAAM,EAC1B,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,qBAAqB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,GAAG,CACD,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,kBAAkB,EAAE,MAAM,EAC1B,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,KAAK,CACH,IAAI,EAAE,MAAM,EACZ,mBAAmB,EAAE,MAAM,EAC3B,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACrB,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;IACzB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D"}
1
+ {"version":3,"file":"Cactus.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/Cactus.nitro.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import type { CactusModelOptions } from './common';
2
+ export interface CactusAudioParams {
3
+ model?: string;
4
+ options?: CactusModelOptions;
5
+ }
6
+ export interface CactusAudioDownloadParams {
7
+ onProgress?: (progress: number) => void;
8
+ }
9
+ export interface CactusAudioVADOptions {
10
+ threshold?: number;
11
+ negThreshold?: number;
12
+ minSpeechDurationMs?: number;
13
+ maxSpeechDurationS?: number;
14
+ minSilenceDurationMs?: number;
15
+ speechPadMs?: number;
16
+ windowSizeSamples?: number;
17
+ samplingRate?: number;
18
+ minSilenceAtMaxSpeech?: number;
19
+ useMaxPossSilAtMaxSpeech?: boolean;
20
+ }
21
+ export interface CactusAudioVADSegment {
22
+ start: number;
23
+ end: number;
24
+ }
25
+ export interface CactusAudioVADParams {
26
+ audio: string | number[];
27
+ options?: CactusAudioVADOptions;
28
+ }
29
+ export interface CactusAudioVADResult {
30
+ segments: CactusAudioVADSegment[];
31
+ totalTime: number;
32
+ ramUsage: number;
33
+ }
34
+ export interface CactusAudioDiarizeOptions {
35
+ stepMs?: number;
36
+ threshold?: number;
37
+ numSpeakers?: number;
38
+ minSpeakers?: number;
39
+ maxSpeakers?: number;
40
+ }
41
+ export interface CactusAudioDiarizeParams {
42
+ audio: string | number[];
43
+ options?: CactusAudioDiarizeOptions;
44
+ }
45
+ export interface CactusAudioDiarizeResult {
46
+ success: boolean;
47
+ error: string | null;
48
+ numSpeakers: number;
49
+ scores: number[];
50
+ totalTimeMs: number;
51
+ ramUsageMb: number;
52
+ }
53
+ export interface CactusAudioEmbedSpeakerParams {
54
+ audio: string | number[];
55
+ }
56
+ export interface CactusAudioEmbedSpeakerResult {
57
+ success: boolean;
58
+ error: string | null;
59
+ embedding: number[];
60
+ totalTimeMs: number;
61
+ ramUsageMb: number;
62
+ }
63
+ //# sourceMappingURL=CactusAudio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CactusAudio.d.ts","sourceRoot":"","sources":["../../../../src/types/CactusAudio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,WAAW,yBAAyB;IACxC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACjC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,yBAAyB,CAAC;CACrC;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB"}
@@ -25,6 +25,7 @@ export interface CactusLMCompleteOptions {
25
25
  toolRagTopK?: number;
26
26
  includeStopSequences?: boolean;
27
27
  useVad?: boolean;
28
+ enableThinking?: boolean;
28
29
  }
29
30
  export interface CactusLMTool {
30
31
  name: string;
@@ -46,9 +47,23 @@ export interface CactusLMCompleteParams {
46
47
  tools?: CactusLMTool[];
47
48
  onToken?: (token: string) => void;
48
49
  }
50
+ export interface CactusLMPrefillParams {
51
+ messages: CactusLMMessage[];
52
+ options?: CactusLMCompleteOptions;
53
+ tools?: CactusLMTool[];
54
+ }
55
+ export interface CactusLMPrefillResult {
56
+ success: boolean;
57
+ error: string | null;
58
+ prefillTokens: number;
59
+ prefillTps: number;
60
+ totalTimeMs: number;
61
+ ramUsageMb: number;
62
+ }
49
63
  export interface CactusLMCompleteResult {
50
64
  success: boolean;
51
65
  response: string;
66
+ thinking?: string;
52
67
  functionCalls?: {
53
68
  name: string;
54
69
  arguments: {
@@ -1 +1 @@
1
- {"version":3,"file":"CactusLM.d.ts","sourceRoot":"","sources":["../../../../src/types/CactusLM.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CactusLM.d.ts","sourceRoot":"","sources":["../../../../src/types/CactusLM.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,7 @@ export interface CactusSTTStreamTranscribeStartOptions {
48
48
  confirmationThreshold?: number;
49
49
  minChunkSize?: number;
50
50
  telemetryEnabled?: boolean;
51
+ language?: string;
51
52
  }
52
53
  export interface CactusSTTStreamTranscribeProcessParams {
53
54
  audio: number[];
@@ -1 +1 @@
1
- {"version":3,"file":"CactusSTT.d.ts","sourceRoot":"","sources":["../../../../src/types/CactusSTT.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CactusSTT.d.ts","sourceRoot":"","sources":["../../../../src/types/CactusSTT.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ namespace margelo::nitro::cactus {
16
16
  registerHybrids(this, [](Prototype& prototype) {
17
17
  prototype.registerHybridMethod("init", &HybridCactusSpec::init);
18
18
  prototype.registerHybridMethod("complete", &HybridCactusSpec::complete);
19
+ prototype.registerHybridMethod("prefill", &HybridCactusSpec::prefill);
19
20
  prototype.registerHybridMethod("tokenize", &HybridCactusSpec::tokenize);
20
21
  prototype.registerHybridMethod("scoreWindow", &HybridCactusSpec::scoreWindow);
21
22
  prototype.registerHybridMethod("transcribe", &HybridCactusSpec::transcribe);
@@ -27,6 +28,8 @@ namespace margelo::nitro::cactus {
27
28
  prototype.registerHybridMethod("embed", &HybridCactusSpec::embed);
28
29
  prototype.registerHybridMethod("imageEmbed", &HybridCactusSpec::imageEmbed);
29
30
  prototype.registerHybridMethod("audioEmbed", &HybridCactusSpec::audioEmbed);
31
+ prototype.registerHybridMethod("diarize", &HybridCactusSpec::diarize);
32
+ prototype.registerHybridMethod("embedSpeaker", &HybridCactusSpec::embedSpeaker);
30
33
  prototype.registerHybridMethod("reset", &HybridCactusSpec::reset);
31
34
  prototype.registerHybridMethod("stop", &HybridCactusSpec::stop);
32
35
  prototype.registerHybridMethod("destroy", &HybridCactusSpec::destroy);
@@ -55,6 +55,7 @@ namespace margelo::nitro::cactus {
55
55
  // Methods
56
56
  virtual std::shared_ptr<Promise<void>> init(const std::string& modelPath, const std::optional<std::string>& corpusDir, std::optional<bool> cacheIndex) = 0;
57
57
  virtual std::shared_ptr<Promise<std::string>> complete(const std::string& messagesJson, double responseBufferSize, const std::optional<std::string>& optionsJson, const std::optional<std::string>& toolsJson, const std::optional<std::function<void(const std::string& /* token */, double /* tokenId */)>>& callback) = 0;
58
+ virtual std::shared_ptr<Promise<std::string>> prefill(const std::string& messagesJson, double responseBufferSize, const std::optional<std::string>& optionsJson, const std::optional<std::string>& toolsJson) = 0;
58
59
  virtual std::shared_ptr<Promise<std::vector<double>>> tokenize(const std::string& text) = 0;
59
60
  virtual std::shared_ptr<Promise<std::string>> scoreWindow(const std::vector<double>& tokens, double start, double end, double context) = 0;
60
61
  virtual std::shared_ptr<Promise<std::string>> transcribe(const std::variant<std::vector<double>, std::string>& audio, const std::string& prompt, double responseBufferSize, const std::optional<std::string>& optionsJson, const std::optional<std::function<void(const std::string& /* token */, double /* tokenId */)>>& callback) = 0;
@@ -66,6 +67,8 @@ namespace margelo::nitro::cactus {
66
67
  virtual std::shared_ptr<Promise<std::vector<double>>> embed(const std::string& text, double embeddingBufferSize, bool normalize) = 0;
67
68
  virtual std::shared_ptr<Promise<std::vector<double>>> imageEmbed(const std::string& imagePath, double embeddingBufferSize) = 0;
68
69
  virtual std::shared_ptr<Promise<std::vector<double>>> audioEmbed(const std::string& audioPath, double embeddingBufferSize) = 0;
70
+ virtual std::shared_ptr<Promise<std::string>> diarize(const std::variant<std::vector<double>, std::string>& audio, double responseBufferSize, const std::optional<std::string>& optionsJson) = 0;
71
+ virtual std::shared_ptr<Promise<std::string>> embedSpeaker(const std::variant<std::vector<double>, std::string>& audio, double responseBufferSize, const std::optional<std::string>& optionsJson) = 0;
69
72
  virtual std::shared_ptr<Promise<void>> reset() = 0;
70
73
  virtual std::shared_ptr<Promise<void>> stop() = 0;
71
74
  virtual std::shared_ptr<Promise<void>> destroy() = 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cactus-react-native",
3
- "version": "1.10.4",
3
+ "version": "1.12.0",
4
4
  "description": "Run AI models locally on mobile devices",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -1,14 +1,18 @@
1
1
  import { Cactus, CactusFileSystem } from '../native';
2
2
  import type {
3
- CactusVADParams,
4
- CactusVADDownloadParams,
5
- CactusVADVadParams,
6
- CactusVADResult,
7
- } from '../types/CactusVAD';
3
+ CactusAudioParams,
4
+ CactusAudioDownloadParams,
5
+ CactusAudioVADParams,
6
+ CactusAudioVADResult,
7
+ CactusAudioDiarizeParams,
8
+ CactusAudioDiarizeResult,
9
+ CactusAudioEmbedSpeakerParams,
10
+ CactusAudioEmbedSpeakerResult,
11
+ } from '../types/CactusAudio';
8
12
  import { getRegistry } from '../modelRegistry';
9
13
  import type { CactusModel } from '../types/common';
10
14
 
11
- export class CactusVAD {
15
+ export class CactusAudio {
12
16
  private readonly cactus = new Cactus();
13
17
 
14
18
  private readonly model: string;
@@ -26,25 +30,25 @@ export class CactusVAD {
26
30
  pro: false,
27
31
  };
28
32
 
29
- constructor({ model, options }: CactusVADParams = {}) {
30
- this.model = model ?? CactusVAD.defaultModel;
33
+ constructor({ model, options }: CactusAudioParams = {}) {
34
+ this.model = model ?? CactusAudio.defaultModel;
31
35
  this.options = {
32
36
  quantization:
33
- options?.quantization ?? CactusVAD.defaultOptions.quantization,
34
- pro: options?.pro ?? CactusVAD.defaultOptions.pro,
37
+ options?.quantization ?? CactusAudio.defaultOptions.quantization,
38
+ pro: options?.pro ?? CactusAudio.defaultOptions.pro,
35
39
  };
36
40
  }
37
41
 
38
42
  public async download({
39
43
  onProgress,
40
- }: CactusVADDownloadParams = {}): Promise<void> {
44
+ }: CactusAudioDownloadParams = {}): Promise<void> {
41
45
  if (this.isModelPath(this.model)) {
42
46
  onProgress?.(1.0);
43
47
  return;
44
48
  }
45
49
 
46
50
  if (this.isDownloading) {
47
- throw new Error('CactusVAD is already downloading');
51
+ throw new Error('CactusAudio is already downloading');
48
52
  }
49
53
 
50
54
  if (await CactusFileSystem.modelExists(this.getModelName())) {
@@ -101,11 +105,26 @@ export class CactusVAD {
101
105
  public async vad({
102
106
  audio,
103
107
  options,
104
- }: CactusVADVadParams): Promise<CactusVADResult> {
108
+ }: CactusAudioVADParams): Promise<CactusAudioVADResult> {
105
109
  await this.init();
106
110
  return this.cactus.vad(audio, options);
107
111
  }
108
112
 
113
+ public async diarize({
114
+ audio,
115
+ options,
116
+ }: CactusAudioDiarizeParams): Promise<CactusAudioDiarizeResult> {
117
+ await this.init();
118
+ return this.cactus.diarize(audio, options);
119
+ }
120
+
121
+ public async embedSpeaker({
122
+ audio,
123
+ }: CactusAudioEmbedSpeakerParams): Promise<CactusAudioEmbedSpeakerResult> {
124
+ await this.init();
125
+ return this.cactus.embedSpeaker(audio);
126
+ }
127
+
109
128
  public async destroy(): Promise<void> {
110
129
  if (!this.isInitialized) {
111
130
  return;
@@ -3,6 +3,8 @@ import type {
3
3
  CactusLMDownloadParams,
4
4
  CactusLMCompleteParams,
5
5
  CactusLMCompleteResult,
6
+ CactusLMPrefillParams,
7
+ CactusLMPrefillResult,
6
8
  CactusLMTokenizeParams,
7
9
  CactusLMTokenizeResult,
8
10
  CactusLMScoreWindowParams,
@@ -159,6 +161,40 @@ export class CactusLM {
159
161
  }
160
162
  }
161
163
 
164
+ public async prefill({
165
+ messages,
166
+ options,
167
+ tools,
168
+ }: CactusLMPrefillParams): Promise<CactusLMPrefillResult> {
169
+ if (this.isGenerating) {
170
+ throw new Error('CactusLM is already generating');
171
+ }
172
+
173
+ options = { ...CactusLM.defaultCompleteOptions, ...options };
174
+ const toolsInternal = tools?.map((tool) => ({
175
+ type: 'function' as const,
176
+ function: tool,
177
+ }));
178
+
179
+ const responseBufferSize =
180
+ 8 * (options.maxTokens ?? CactusLM.defaultCompleteOptions.maxTokens) +
181
+ 256;
182
+
183
+ await this.init();
184
+
185
+ this.isGenerating = true;
186
+ try {
187
+ return await this.cactus.prefill(
188
+ messages,
189
+ responseBufferSize,
190
+ options,
191
+ toolsInternal
192
+ );
193
+ } finally {
194
+ this.isGenerating = false;
195
+ }
196
+ }
197
+
162
198
  public async tokenize({
163
199
  text,
164
200
  }: CactusLMTokenizeParams): Promise<CactusLMTokenizeResult> {
@@ -1,24 +1,28 @@
1
1
  import { useCallback, useEffect, useState, useRef } from 'react';
2
- import { CactusVAD } from '../classes/CactusVAD';
2
+ import { CactusAudio } from '../classes/CactusAudio';
3
3
  import { CactusFileSystem } from '../native';
4
4
  import { getErrorMessage } from '../utils/error';
5
5
  import type {
6
- CactusVADParams,
7
- CactusVADDownloadParams,
8
- CactusVADVadParams,
9
- CactusVADResult,
10
- } from '../types/CactusVAD';
6
+ CactusAudioParams,
7
+ CactusAudioDownloadParams,
8
+ CactusAudioVADParams,
9
+ CactusAudioVADResult,
10
+ CactusAudioDiarizeParams,
11
+ CactusAudioDiarizeResult,
12
+ CactusAudioEmbedSpeakerParams,
13
+ CactusAudioEmbedSpeakerResult,
14
+ } from '../types/CactusAudio';
11
15
  import type { CactusModel } from '../types/common';
12
16
 
13
- export const useCactusVAD = ({
17
+ export const useCactusAudio = ({
14
18
  model = 'silero-vad',
15
19
  options: modelOptions = {
16
20
  quantization: undefined,
17
21
  pro: false,
18
22
  },
19
- }: CactusVADParams = {}) => {
20
- const [cactusVAD, setCactusVAD] = useState(
21
- () => new CactusVAD({ model, options: modelOptions })
23
+ }: CactusAudioParams = {}) => {
24
+ const [cactusAudio, setCactusAudio] = useState(
25
+ () => new CactusAudio({ model, options: modelOptions })
22
26
  );
23
27
 
24
28
  const [isInitializing, setIsInitializing] = useState(false);
@@ -35,14 +39,14 @@ export const useCactusVAD = ({
35
39
  }, [model]);
36
40
 
37
41
  useEffect(() => {
38
- const newInstance = new CactusVAD({
42
+ const newInstance = new CactusAudio({
39
43
  model,
40
44
  options: {
41
45
  quantization: modelOptions.quantization,
42
46
  pro: modelOptions.pro,
43
47
  },
44
48
  });
45
- setCactusVAD(newInstance);
49
+ setCactusAudio(newInstance);
46
50
 
47
51
  setIsInitializing(false);
48
52
  setIsDownloaded(false);
@@ -73,14 +77,14 @@ export const useCactusVAD = ({
73
77
 
74
78
  useEffect(() => {
75
79
  return () => {
76
- cactusVAD.destroy().catch(() => {});
80
+ cactusAudio.destroy().catch(() => {});
77
81
  };
78
- }, [cactusVAD]);
82
+ }, [cactusAudio]);
79
83
 
80
84
  const download = useCallback(
81
- async ({ onProgress }: CactusVADDownloadParams = {}) => {
85
+ async ({ onProgress }: CactusAudioDownloadParams = {}) => {
82
86
  if (isDownloading) {
83
- const message = 'CactusVAD is already downloading';
87
+ const message = 'CactusAudio is already downloading';
84
88
  setError(message);
85
89
  throw new Error(message);
86
90
  }
@@ -97,7 +101,7 @@ export const useCactusVAD = ({
97
101
  setDownloadProgress(0);
98
102
  setIsDownloading(true);
99
103
  try {
100
- await cactusVAD.download({
104
+ await cactusAudio.download({
101
105
  onProgress: (progress) => {
102
106
  if (
103
107
  currentModelRef.current !== thisModel ||
@@ -141,12 +145,12 @@ export const useCactusVAD = ({
141
145
  setDownloadProgress(0);
142
146
  }
143
147
  },
144
- [cactusVAD, isDownloading, isDownloaded]
148
+ [cactusAudio, isDownloading, isDownloaded]
145
149
  );
146
150
 
147
151
  const init = useCallback(async () => {
148
152
  if (isInitializing) {
149
- const message = 'CactusVAD is already initializing';
153
+ const message = 'CactusAudio is already initializing';
150
154
  setError(message);
151
155
  throw new Error(message);
152
156
  }
@@ -154,50 +158,81 @@ export const useCactusVAD = ({
154
158
  setError(null);
155
159
  setIsInitializing(true);
156
160
  try {
157
- await cactusVAD.init();
161
+ await cactusAudio.init();
158
162
  } catch (e) {
159
163
  setError(getErrorMessage(e));
160
164
  throw e;
161
165
  } finally {
162
166
  setIsInitializing(false);
163
167
  }
164
- }, [cactusVAD, isInitializing]);
168
+ }, [cactusAudio, isInitializing]);
165
169
 
166
170
  const vad = useCallback(
167
171
  async ({
168
172
  audio,
169
173
  options,
170
- }: CactusVADVadParams): Promise<CactusVADResult> => {
174
+ }: CactusAudioVADParams): Promise<CactusAudioVADResult> => {
171
175
  setError(null);
172
176
  try {
173
- return await cactusVAD.vad({ audio, options });
177
+ return await cactusAudio.vad({ audio, options });
174
178
  } catch (e) {
175
179
  setError(getErrorMessage(e));
176
180
  throw e;
177
181
  }
178
182
  },
179
- [cactusVAD]
183
+ [cactusAudio]
184
+ );
185
+
186
+ const diarize = useCallback(
187
+ async ({
188
+ audio,
189
+ options,
190
+ }: CactusAudioDiarizeParams): Promise<CactusAudioDiarizeResult> => {
191
+ setError(null);
192
+ try {
193
+ return await cactusAudio.diarize({ audio, options });
194
+ } catch (e) {
195
+ setError(getErrorMessage(e));
196
+ throw e;
197
+ }
198
+ },
199
+ [cactusAudio]
200
+ );
201
+
202
+ const embedSpeaker = useCallback(
203
+ async ({
204
+ audio,
205
+ }: CactusAudioEmbedSpeakerParams): Promise<CactusAudioEmbedSpeakerResult> => {
206
+ setError(null);
207
+ try {
208
+ return await cactusAudio.embedSpeaker({ audio });
209
+ } catch (e) {
210
+ setError(getErrorMessage(e));
211
+ throw e;
212
+ }
213
+ },
214
+ [cactusAudio]
180
215
  );
181
216
 
182
217
  const destroy = useCallback(async () => {
183
218
  setError(null);
184
219
  try {
185
- await cactusVAD.destroy();
220
+ await cactusAudio.destroy();
186
221
  } catch (e) {
187
222
  setError(getErrorMessage(e));
188
223
  throw e;
189
224
  }
190
- }, [cactusVAD]);
225
+ }, [cactusAudio]);
191
226
 
192
227
  const getModels = useCallback(async (): Promise<CactusModel[]> => {
193
228
  setError(null);
194
229
  try {
195
- return await cactusVAD.getModels();
230
+ return await cactusAudio.getModels();
196
231
  } catch (e) {
197
232
  setError(getErrorMessage(e));
198
233
  throw e;
199
234
  }
200
- }, [cactusVAD]);
235
+ }, [cactusAudio]);
201
236
 
202
237
  return {
203
238
  isInitializing,
@@ -209,6 +244,8 @@ export const useCactusVAD = ({
209
244
  download,
210
245
  init,
211
246
  vad,
247
+ diarize,
248
+ embedSpeaker,
212
249
  destroy,
213
250
  getModels,
214
251
  };
package/src/index.tsx CHANGED
@@ -1,13 +1,13 @@
1
1
  // Classes
2
2
  export { CactusLM } from './classes/CactusLM';
3
3
  export { CactusSTT } from './classes/CactusSTT';
4
- export { CactusVAD } from './classes/CactusVAD';
4
+ export { CactusAudio } from './classes/CactusAudio';
5
5
  export { CactusIndex } from './classes/CactusIndex';
6
6
 
7
7
  // Hooks
8
8
  export { useCactusLM } from './hooks/useCactusLM';
9
9
  export { useCactusSTT } from './hooks/useCactusSTT';
10
- export { useCactusVAD } from './hooks/useCactusVAD';
10
+ export { useCactusAudio } from './hooks/useCactusAudio';
11
11
  export { useCactusIndex } from './hooks/useCactusIndex';
12
12
 
13
13
  // Registry
@@ -23,6 +23,8 @@ export type {
23
23
  CactusLMTool,
24
24
  CactusLMCompleteParams,
25
25
  CactusLMCompleteResult,
26
+ CactusLMPrefillParams,
27
+ CactusLMPrefillResult,
26
28
  CactusLMTokenizeParams,
27
29
  CactusLMTokenizeResult,
28
30
  CactusLMScoreWindowParams,
@@ -49,13 +51,18 @@ export type {
49
51
  CactusSTTDetectLanguageResult,
50
52
  } from './types/CactusSTT';
51
53
  export type {
52
- CactusVADParams,
53
- CactusVADDownloadParams,
54
- CactusVADVadParams,
55
- CactusVADOptions,
56
- CactusVADSegment,
57
- CactusVADResult,
58
- } from './types/CactusVAD';
54
+ CactusAudioParams,
55
+ CactusAudioDownloadParams,
56
+ CactusAudioVADOptions,
57
+ CactusAudioVADSegment,
58
+ CactusAudioVADParams,
59
+ CactusAudioVADResult,
60
+ CactusAudioDiarizeOptions,
61
+ CactusAudioDiarizeParams,
62
+ CactusAudioDiarizeResult,
63
+ CactusAudioEmbedSpeakerParams,
64
+ CactusAudioEmbedSpeakerResult,
65
+ } from './types/CactusAudio';
59
66
  export type {
60
67
  CactusIndexParams,
61
68
  CactusIndexAddParams,
@@ -1,6 +1,6 @@
1
1
  import type { CactusModel } from './types/common';
2
2
 
3
- const RUNTIME_VERSION = '1.10.4';
3
+ const RUNTIME_VERSION = '1.12.0';
4
4
 
5
5
  let registryPromise: Promise<{ [key: string]: CactusModel }> | null = null;
6
6