cactus-react-native 1.4.0 → 1.5.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 (88) hide show
  1. package/README.md +212 -27
  2. package/android/src/main/jniLibs/arm64-v8a/libcactus.a +0 -0
  3. package/cpp/HybridCactus.cpp +119 -0
  4. package/cpp/HybridCactus.hpp +13 -0
  5. package/cpp/cactus_ffi.h +24 -0
  6. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/cactus_ffi.h +24 -0
  7. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/cactus_utils.h +41 -1
  8. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/engine.h +66 -48
  9. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/gemma_tools.h +549 -0
  10. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/graph.h +102 -21
  11. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/kernel.h +45 -195
  12. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/kernel_utils.h +399 -140
  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 +24 -0
  15. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/cactus_utils.h +41 -1
  16. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/engine.h +66 -48
  17. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/gemma_tools.h +549 -0
  18. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/graph.h +102 -21
  19. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/kernel.h +45 -195
  20. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/kernel_utils.h +399 -140
  21. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/cactus +0 -0
  22. package/lib/module/api/Database.js +0 -92
  23. package/lib/module/api/Database.js.map +1 -1
  24. package/lib/module/classes/CactusLM.js +33 -15
  25. package/lib/module/classes/CactusLM.js.map +1 -1
  26. package/lib/module/classes/CactusSTT.js +90 -15
  27. package/lib/module/classes/CactusSTT.js.map +1 -1
  28. package/lib/module/hooks/useCactusLM.js +14 -5
  29. package/lib/module/hooks/useCactusLM.js.map +1 -1
  30. package/lib/module/hooks/useCactusSTT.js +100 -4
  31. package/lib/module/hooks/useCactusSTT.js.map +1 -1
  32. package/lib/module/index.js.map +1 -1
  33. package/lib/module/models.js +336 -0
  34. package/lib/module/models.js.map +1 -0
  35. package/lib/module/native/Cactus.js +37 -0
  36. package/lib/module/native/Cactus.js.map +1 -1
  37. package/lib/module/types/CactusLM.js +2 -0
  38. package/lib/module/types/CactusSTT.js +2 -0
  39. package/lib/module/types/common.js +2 -0
  40. package/lib/module/types/{CactusModel.js.map → common.js.map} +1 -1
  41. package/lib/typescript/src/api/Database.d.ts +0 -6
  42. package/lib/typescript/src/api/Database.d.ts.map +1 -1
  43. package/lib/typescript/src/classes/CactusLM.d.ts +7 -3
  44. package/lib/typescript/src/classes/CactusLM.d.ts.map +1 -1
  45. package/lib/typescript/src/classes/CactusSTT.d.ts +13 -4
  46. package/lib/typescript/src/classes/CactusSTT.d.ts.map +1 -1
  47. package/lib/typescript/src/hooks/useCactusLM.d.ts +2 -2
  48. package/lib/typescript/src/hooks/useCactusLM.d.ts.map +1 -1
  49. package/lib/typescript/src/hooks/useCactusSTT.d.ts +12 -4
  50. package/lib/typescript/src/hooks/useCactusSTT.d.ts.map +1 -1
  51. package/lib/typescript/src/index.d.ts +2 -3
  52. package/lib/typescript/src/index.d.ts.map +1 -1
  53. package/lib/typescript/src/models.d.ts +6 -0
  54. package/lib/typescript/src/models.d.ts.map +1 -0
  55. package/lib/typescript/src/native/Cactus.d.ts +6 -1
  56. package/lib/typescript/src/native/Cactus.d.ts.map +1 -1
  57. package/lib/typescript/src/specs/Cactus.nitro.d.ts +5 -0
  58. package/lib/typescript/src/specs/Cactus.nitro.d.ts.map +1 -1
  59. package/lib/typescript/src/types/CactusLM.d.ts +2 -0
  60. package/lib/typescript/src/types/CactusLM.d.ts.map +1 -1
  61. package/lib/typescript/src/types/CactusSTT.d.ts +20 -0
  62. package/lib/typescript/src/types/CactusSTT.d.ts.map +1 -1
  63. package/lib/typescript/src/types/common.d.ts +28 -0
  64. package/lib/typescript/src/types/common.d.ts.map +1 -0
  65. package/nitrogen/generated/shared/c++/HybridCactusSpec.cpp +5 -0
  66. package/nitrogen/generated/shared/c++/HybridCactusSpec.hpp +5 -0
  67. package/package.json +1 -1
  68. package/src/api/Database.ts +0 -133
  69. package/src/classes/CactusLM.ts +49 -17
  70. package/src/classes/CactusSTT.ts +118 -17
  71. package/src/hooks/useCactusLM.ts +25 -5
  72. package/src/hooks/useCactusSTT.ts +117 -5
  73. package/src/index.tsx +6 -2
  74. package/src/models.ts +344 -0
  75. package/src/native/Cactus.ts +55 -0
  76. package/src/specs/Cactus.nitro.ts +5 -0
  77. package/src/types/CactusLM.ts +3 -0
  78. package/src/types/CactusSTT.ts +26 -0
  79. package/src/types/common.ts +28 -0
  80. package/lib/module/types/CactusModel.js +0 -2
  81. package/lib/module/types/CactusSTTModel.js +0 -2
  82. package/lib/module/types/CactusSTTModel.js.map +0 -1
  83. package/lib/typescript/src/types/CactusModel.d.ts +0 -13
  84. package/lib/typescript/src/types/CactusModel.d.ts.map +0 -1
  85. package/lib/typescript/src/types/CactusSTTModel.d.ts +0 -8
  86. package/lib/typescript/src/types/CactusSTTModel.d.ts.map +0 -1
  87. package/src/types/CactusModel.ts +0 -15
  88. package/src/types/CactusSTTModel.ts +0 -10
@@ -1,7 +1,5 @@
1
1
  import type { DeviceInfo } from '../specs/CactusDeviceInfo.nitro';
2
2
  import type { LogRecord } from '../telemetry/Telemetry';
3
- import type { CactusModel } from '../types/CactusModel';
4
- import type { CactusSTTModel } from '../types/CactusSTTModel';
5
3
  export declare class Database {
6
4
  private static readonly url;
7
5
  private static readonly key;
@@ -10,9 +8,5 @@ export declare class Database {
10
8
  deviceData?: DeviceInfo;
11
9
  deviceId?: string;
12
10
  }): Promise<string>;
13
- static getModel(slug: string): Promise<CactusModel>;
14
- static getSTTModel(slug: string): Promise<CactusSTTModel>;
15
- static getModels(): Promise<CactusModel[]>;
16
- static getSTTModels(): Promise<CactusSTTModel[]>;
17
11
  }
18
12
  //# sourceMappingURL=Database.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../../../../src/api/Database.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAsB9D,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAA8C;IACzE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAC0L;WAEjM,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;WAkBnD,cAAc,CAAC,EACjC,UAAU,EACV,QAAQ,GACT,EAAE;QACD,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,MAAM,CAAC;WAqBC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;WA4B5C,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;WA+BlD,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;WA4BnC,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;CAuB9D"}
1
+ {"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../../../../src/api/Database.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGxD,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAA8C;IACzE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAC0L;WAEjM,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;WAkBnD,cAAc,CAAC,EACjC,UAAU,EACV,QAAQ,GACT,EAAE;QACD,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,MAAM,CAAC;CAoBpB"}
@@ -1,19 +1,22 @@
1
1
  import type { CactusLMDownloadParams, CactusLMCompleteParams, CactusLMCompleteResult, CactusLMTokenizeParams, CactusLMTokenizeResult, CactusLMScoreWindowParams, CactusLMScoreWindowResult, CactusLMEmbedParams, CactusLMEmbedResult, CactusLMImageEmbedParams, CactusLMImageEmbedResult, CactusLMParams } from '../types/CactusLM';
2
- import type { CactusModel } from '../types/CactusModel';
2
+ import type { CactusModel } from '../types/common';
3
3
  export declare class CactusLM {
4
4
  private readonly cactus;
5
5
  private readonly model;
6
6
  private readonly contextSize;
7
7
  private readonly corpusDir?;
8
+ private readonly options;
8
9
  private isDownloading;
9
10
  private isInitialized;
10
11
  private isGenerating;
11
12
  private static readonly defaultModel;
12
13
  private static readonly defaultContextSize;
14
+ private static readonly defaultOptions;
15
+ private static readonly quantizationExceptions;
13
16
  private static readonly defaultCompleteOptions;
14
17
  private static readonly defaultCompleteMode;
15
18
  private static readonly defaultEmbedBufferSize;
16
- constructor({ model, contextSize, corpusDir }?: CactusLMParams);
19
+ constructor({ model, contextSize, corpusDir, options }?: CactusLMParams);
17
20
  download({ onProgress, }?: CactusLMDownloadParams): Promise<void>;
18
21
  init(): Promise<void>;
19
22
  complete({ messages, options, tools, onToken, mode, }: CactusLMCompleteParams): Promise<CactusLMCompleteResult>;
@@ -24,7 +27,8 @@ export declare class CactusLM {
24
27
  stop(): Promise<void>;
25
28
  reset(): Promise<void>;
26
29
  destroy(): Promise<void>;
27
- getModels(): Promise<CactusModel[]>;
30
+ getModels(): CactusModel[];
28
31
  private isModelPath;
32
+ private getModelName;
29
33
  }
30
34
  //# 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,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,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;gBAE1C,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,GAAE,cAAmB;IAQrD,QAAQ,CAAC,EACpB,UAAU,GACX,GAAE,sBAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BjC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBrB,QAAQ,CAAC,EACpB,QAAQ,EACR,OAAO,EACP,KAAK,EACL,OAAO,EACP,IAAI,GACL,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA0D9C,QAAQ,CAAC,EACpB,IAAI,GACL,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAI9C,WAAW,CAAC,EACvB,MAAM,EACN,KAAK,EACL,GAAG,EACH,OAAO,GACR,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAMpD,KAAK,CAAC,EACjB,IAAI,EACJ,SAAiB,GAClB,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAwBxC,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;IAQhD,OAAO,CAAC,WAAW;CAGpB"}
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,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAM3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,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;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAGtB;IAEF,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAgB;IACpD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAQ;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAGpC;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAK5C;IACF,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;gBAE1C,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,GAAE,cAAmB;IAe9D,QAAQ,CAAC,EACpB,UAAU,GACX,GAAE,sBAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCjC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA4BrB,QAAQ,CAAC,EACpB,QAAQ,EACR,OAAO,EACP,KAAK,EACL,OAAO,EACP,IAAI,GACL,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA0D9C,QAAQ,CAAC,EACpB,IAAI,GACL,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAI9C,WAAW,CAAC,EACvB,MAAM,EACN,KAAK,EACL,GAAG,EACH,OAAO,GACR,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAMpD,KAAK,CAAC,EACjB,IAAI,EACJ,SAAiB,GAClB,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAwBxC,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;IAW9B,SAAS,IAAI,WAAW,EAAE;IAIjC,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,YAAY;CAGrB"}
@@ -1,26 +1,35 @@
1
- import type { CactusSTTDownloadParams, CactusSTTTranscribeParams, CactusSTTTranscribeResult, CactusSTTParams, CactusSTTAudioEmbedParams, CactusSTTAudioEmbedResult } from '../types/CactusSTT';
2
- import type { CactusSTTModel } from '../types/CactusSTTModel';
1
+ import type { CactusSTTDownloadParams, CactusSTTTranscribeParams, CactusSTTTranscribeResult, CactusSTTParams, CactusSTTAudioEmbedParams, CactusSTTAudioEmbedResult, CactusSTTStreamTranscribeInsertParams, CactusSTTStreamTranscribeProcessParams, CactusSTTStreamTranscribeProcessResult, CactusSTTStreamTranscribeFinalizeResult } from '../types/CactusSTT';
2
+ import type { CactusModel } from '../types/common';
3
3
  export declare class CactusSTT {
4
4
  private readonly cactus;
5
5
  private readonly model;
6
6
  private readonly contextSize;
7
+ private readonly options;
7
8
  private isDownloading;
8
9
  private isInitialized;
9
10
  private isGenerating;
11
+ private isStreamTranscribeInitialized;
10
12
  private static readonly defaultModel;
11
13
  private static readonly defaultContextSize;
14
+ private static readonly defaultOptions;
12
15
  private static readonly defaultPrompt;
13
16
  private static readonly defaultTranscribeOptions;
14
17
  private static readonly defaultEmbedBufferSize;
15
- constructor({ model, contextSize }?: CactusSTTParams);
18
+ constructor({ model, contextSize, options }?: CactusSTTParams);
16
19
  download({ onProgress, }?: CactusSTTDownloadParams): Promise<void>;
17
20
  init(): Promise<void>;
18
21
  transcribe({ audio, prompt, options, onToken, }: CactusSTTTranscribeParams): Promise<CactusSTTTranscribeResult>;
22
+ streamTranscribeInit(): Promise<void>;
23
+ streamTranscribeInsert({ audio, }: CactusSTTStreamTranscribeInsertParams): Promise<void>;
24
+ streamTranscribeProcess({ options, }?: CactusSTTStreamTranscribeProcessParams): Promise<CactusSTTStreamTranscribeProcessResult>;
25
+ streamTranscribeFinalize(): Promise<CactusSTTStreamTranscribeFinalizeResult>;
26
+ streamTranscribeDestroy(): Promise<void>;
19
27
  audioEmbed({ audioPath, }: CactusSTTAudioEmbedParams): Promise<CactusSTTAudioEmbedResult>;
20
28
  stop(): Promise<void>;
21
29
  reset(): Promise<void>;
22
30
  destroy(): Promise<void>;
23
- getModels(): Promise<CactusSTTModel[]>;
31
+ getModels(): CactusModel[];
24
32
  private isModelPath;
33
+ private getModelName;
25
34
  }
26
35
  //# sourceMappingURL=CactusSTT.d.ts.map
@@ -1 +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;AAK5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,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;gBAE1C,EAAE,KAAK,EAAE,WAAW,EAAE,GAAE,eAAoB;IAO3C,QAAQ,CAAC,EACpB,UAAU,GACX,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BlC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBrB,UAAU,CAAC,EACtB,KAAK,EACL,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,cAAc,EAAE,CAAC;IAQnD,OAAO,CAAC,WAAW;CAGpB"}
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,EACzB,qCAAqC,EACrC,sCAAsC,EACtC,sCAAsC,EACtC,uCAAuC,EACxC,MAAM,oBAAoB,CAAC;AAK5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,qBAAa,SAAS;IACpB,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,OAAO,CAGtB;IAEF,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,6BAA6B,CAAS;IAE9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAmB;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAQ;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAGpC;IACF,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;gBAE1C,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,GAAE,eAAoB;IAYpD,QAAQ,CAAC,EACpB,UAAU,GACX,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAoClC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA4BrB,UAAU,CAAC,EACtB,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,GACR,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAsCpD,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAerC,sBAAsB,CAAC,EAClC,KAAK,GACN,EAAE,qCAAqC,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3C,uBAAuB,CAAC,EACnC,OAAO,GACR,GAAE,sCAA2C,GAAG,OAAO,CAAC,sCAAsC,CAAC;IAanF,wBAAwB,IAAI,OAAO,CAAC,uCAAuC,CAAC;IAa5E,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAaxC,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;IAY9B,SAAS,IAAI,WAAW,EAAE;IAIjC,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,YAAY;CAGrB"}
@@ -1,6 +1,6 @@
1
1
  import type { CactusLMParams, CactusLMCompleteParams, CactusLMCompleteResult, CactusLMTokenizeParams, CactusLMTokenizeResult, CactusLMScoreWindowParams, CactusLMScoreWindowResult, CactusLMEmbedParams, CactusLMEmbedResult, CactusLMImageEmbedParams, CactusLMImageEmbedResult, CactusLMDownloadParams } from '../types/CactusLM';
2
- import type { CactusModel } from '../types/CactusModel';
3
- export declare const useCactusLM: ({ model, contextSize, corpusDir, }?: CactusLMParams) => {
2
+ import type { CactusModel } from '../types/common';
3
+ export declare const useCactusLM: ({ model, contextSize, corpusDir, options: modelOptions, }?: CactusLMParams) => {
4
4
  completion: string;
5
5
  isGenerating: boolean;
6
6
  isInitializing: boolean;
@@ -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,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,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;0BAkCxD,sBAAsB,KAAG,OAAO,CAAC,sBAAsB,CAAC;oDA2BxD,yBAAyB,KAAG,OAAO,CAAC,yBAAyB,CAAC;kCAyB9D,mBAAmB,KAAG,OAAO,CAAC,mBAAmB,CAAC;iCAwBlD,wBAAwB,KAAG,OAAO,CAAC,wBAAwB,CAAC;;;;qBAuDzB,OAAO,CAAC,WAAW,EAAE,CAAC;CA+B/D,CAAC"}
1
+ {"version":3,"file":"useCactusLM.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useCactusLM.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,eAAO,MAAM,WAAW,GAAI,4DAQzB,cAAmB;;;;;;;;gCA4EK,sBAAsB;;6DA4F1C,sBAAsB,KAAG,OAAO,CAAC,sBAAsB,CAAC;0BAkCxD,sBAAsB,KAAG,OAAO,CAAC,sBAAsB,CAAC;oDA2BxD,yBAAyB,KAAG,OAAO,CAAC,yBAAyB,CAAC;kCAyB9D,mBAAmB,KAAG,OAAO,CAAC,mBAAmB,CAAC;iCAwBlD,wBAAwB,KAAG,OAAO,CAAC,wBAAwB,CAAC;;;;qBAuDzB,OAAO,CAAC,WAAW,EAAE,CAAC;CA+B/D,CAAC"}
@@ -1,8 +1,11 @@
1
- import type { CactusSTTParams, CactusSTTTranscribeResult, CactusSTTTranscribeParams, CactusSTTDownloadParams, CactusSTTAudioEmbedParams, CactusSTTAudioEmbedResult } from '../types/CactusSTT';
2
- import type { CactusSTTModel } from '../types/CactusSTTModel';
3
- export declare const useCactusSTT: ({ model, contextSize, }?: CactusSTTParams) => {
1
+ import type { CactusSTTParams, CactusSTTTranscribeResult, CactusSTTTranscribeParams, CactusSTTDownloadParams, CactusSTTAudioEmbedParams, CactusSTTAudioEmbedResult, CactusSTTStreamTranscribeInsertParams, CactusSTTStreamTranscribeProcessParams, CactusSTTStreamTranscribeProcessResult, CactusSTTStreamTranscribeFinalizeResult } from '../types/CactusSTT';
2
+ import type { CactusModel } from '../types/common';
3
+ export declare const useCactusSTT: ({ model, contextSize, options: modelOptions, }?: CactusSTTParams) => {
4
4
  transcription: string;
5
+ streamTranscribeConfirmed: string;
6
+ streamTranscribePending: string;
5
7
  isGenerating: boolean;
8
+ isStreamTranscribing: boolean;
6
9
  isInitializing: boolean;
7
10
  isDownloaded: boolean;
8
11
  isDownloading: boolean;
@@ -12,9 +15,14 @@ export declare const useCactusSTT: ({ model, contextSize, }?: CactusSTTParams) =
12
15
  init: () => Promise<void>;
13
16
  transcribe: ({ audio, prompt, options, onToken, }: CactusSTTTranscribeParams) => Promise<CactusSTTTranscribeResult>;
14
17
  audioEmbed: ({ audioPath, }: CactusSTTAudioEmbedParams) => Promise<CactusSTTAudioEmbedResult>;
18
+ streamTranscribeInit: () => Promise<void>;
19
+ streamTranscribeInsert: ({ audio }: CactusSTTStreamTranscribeInsertParams) => Promise<void>;
20
+ streamTranscribeProcess: ({ options, }?: CactusSTTStreamTranscribeProcessParams) => Promise<CactusSTTStreamTranscribeProcessResult>;
21
+ streamTranscribeFinalize: () => Promise<CactusSTTStreamTranscribeFinalizeResult>;
22
+ streamTranscribeDestroy: () => Promise<void>;
15
23
  reset: () => Promise<void>;
16
24
  stop: () => Promise<void>;
17
25
  destroy: () => Promise<void>;
18
- getModels: () => Promise<CactusSTTModel[]>;
26
+ getModels: () => Promise<CactusModel[]>;
19
27
  };
20
28
  //# sourceMappingURL=useCactusSTT.d.ts.map
@@ -1 +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,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,eAAO,MAAM,YAAY,GAAI,0BAG1B,eAAoB;;;;;;;;gCA4DI,uBAAuB;;uDA2F3C,yBAAyB,KAAG,OAAO,CAAC,yBAAyB,CAAC;iCAiC9D,yBAAyB,KAAG,OAAO,CAAC,yBAAyB,CAAC;;;;qBAuD3B,OAAO,CAAC,cAAc,EAAE,CAAC;CA4BlE,CAAC"}
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,EACzB,qCAAqC,EACrC,sCAAsC,EACtC,sCAAsC,EACtC,uCAAuC,EACxC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,eAAO,MAAM,YAAY,GAAI,iDAO1B,eAAoB;;;;;;;;;;;gCA4EI,uBAAuB;;uDA2F3C,yBAAyB,KAAG,OAAO,CAAC,yBAAyB,CAAC;iCAiC9D,yBAAyB,KAAG,OAAO,CAAC,yBAAyB,CAAC;;wCAwC/C,qCAAqC,KAAG,OAAO,CAAC,IAAI,CAAC;6CAepE,sCAAsC,KAAQ,OAAO,CAAC,sCAAsC,CAAC;oCAgB1E,OAAO,CAAC,uCAAuC,CAAC;mCAclB,OAAO,CAAC,IAAI,CAAC;;;;qBAkD3B,OAAO,CAAC,WAAW,EAAE,CAAC;CAoC/D,CAAC"}
@@ -4,10 +4,9 @@ export { CactusIndex } from './classes/CactusIndex';
4
4
  export { useCactusLM } from './hooks/useCactusLM';
5
5
  export { useCactusSTT } from './hooks/useCactusSTT';
6
6
  export { useCactusIndex } from './hooks/useCactusIndex';
7
- export type { CactusModel } from './types/CactusModel';
8
- export type { CactusSTTModel } from './types/CactusSTTModel';
7
+ export type { CactusModel, ModelOptions } from './types/common';
9
8
  export type { CactusLMParams, CactusLMDownloadParams, Message, CompleteOptions, Tool, CactusLMCompleteParams, CactusLMCompleteResult, CactusLMTokenizeParams, CactusLMTokenizeResult, CactusLMScoreWindowParams, CactusLMScoreWindowResult, CactusLMEmbedParams, CactusLMEmbedResult, CactusLMImageEmbedParams, CactusLMImageEmbedResult, } from './types/CactusLM';
10
- export type { CactusSTTParams, CactusSTTDownloadParams, TranscribeOptions, CactusSTTTranscribeParams, CactusSTTTranscribeResult, CactusSTTAudioEmbedParams, CactusSTTAudioEmbedResult, } from './types/CactusSTT';
9
+ export type { CactusSTTParams, CactusSTTDownloadParams, TranscribeOptions, CactusSTTTranscribeParams, CactusSTTTranscribeResult, CactusSTTAudioEmbedParams, CactusSTTAudioEmbedResult, CactusSTTStreamTranscribeInsertParams, StreamTranscribeProcessOptions, CactusSTTStreamTranscribeProcessParams, CactusSTTStreamTranscribeProcessResult, CactusSTTStreamTranscribeFinalizeResult, } from './types/CactusSTT';
11
10
  export type { CactusIndexParams, CactusIndexAddParams, CactusIndexGetParams, CactusIndexGetResult, IndexQueryOptions, CactusIndexQueryParams, CactusIndexQueryResult, CactusIndexDeleteParams, } from './types/CactusIndex';
12
11
  export { CactusConfig } from './config/CactusConfig';
13
12
  //# 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;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,YAAY,EACV,cAAc,EACd,sBAAsB,EACtB,OAAO,EACP,eAAe,EACf,IAAI,EACJ,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,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;AAC3B,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,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;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAChE,YAAY,EACV,cAAc,EACd,sBAAsB,EACtB,OAAO,EACP,eAAe,EACf,IAAI,EACJ,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,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,EACzB,qCAAqC,EACrC,8BAA8B,EAC9B,sCAAsC,EACtC,sCAAsC,EACtC,uCAAuC,GACxC,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { CactusModel } from './types/common';
2
+ declare const models: {
3
+ [key: string]: CactusModel;
4
+ };
5
+ export default models;
6
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,QAAA,MAAM,MAAM,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;CAmVzC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { CactusLMCompleteResult, Message, CompleteOptions, Tool } from '../types/CactusLM';
2
- import type { CactusSTTTranscribeResult, TranscribeOptions } from '../types/CactusSTT';
2
+ import type { CactusSTTTranscribeResult, TranscribeOptions, CactusSTTStreamTranscribeProcessResult, StreamTranscribeProcessOptions, CactusSTTStreamTranscribeFinalizeResult } from '../types/CactusSTT';
3
3
  export declare class Cactus {
4
4
  private readonly hybridCactus;
5
5
  init(modelPath: string, contextSize: number, corpusDir?: string): Promise<void>;
@@ -10,6 +10,11 @@ export declare class Cactus {
10
10
  tokenize(text: string): Promise<number[]>;
11
11
  scoreWindow(tokens: number[], start: number, end: number, context: number): Promise<number>;
12
12
  transcribe(audio: string | number[], prompt: string, responseBufferSize: number, options?: TranscribeOptions, callback?: (token: string, tokenId: number) => void): Promise<CactusSTTTranscribeResult>;
13
+ streamTranscribeInit(): Promise<void>;
14
+ streamTranscribeInsert(audio: number[]): Promise<void>;
15
+ streamTranscribeProcess(options?: StreamTranscribeProcessOptions): Promise<CactusSTTStreamTranscribeProcessResult>;
16
+ streamTranscribeFinalize(): Promise<CactusSTTStreamTranscribeFinalizeResult>;
17
+ streamTranscribeDestroy(): Promise<void>;
13
18
  embed(text: string, embeddingBufferSize: number, normalize: boolean): Promise<number[]>;
14
19
  imageEmbed(imagePath: string, embeddingBufferSize: number): Promise<number[]>;
15
20
  audioEmbed(audioPath: string, embeddingBufferSize: number): Promise<number[]>;
@@ -1 +1 @@
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;IA8D3B,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,iBAAiB,EAC3B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAClD,OAAO,CAAC,yBAAyB,CAAC;IAyC9B,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;CAGhC"}
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,EACjB,sCAAsC,EACtC,8BAA8B,EAC9B,uCAAuC,EACxC,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;IA8D3B,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,iBAAiB,EAC3B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAClD,OAAO,CAAC,yBAAyB,CAAC;IAyC9B,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,uBAAuB,CAClC,OAAO,CAAC,EAAE,8BAA8B,GACvC,OAAO,CAAC,sCAAsC,CAAC;IAuBrC,wBAAwB,IAAI,OAAO,CAAC,uCAAuC,CAAC;IAelF,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC,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;CAGhC"}
@@ -8,6 +8,11 @@ export interface Cactus extends HybridObject<{
8
8
  tokenize(text: string): Promise<number[]>;
9
9
  scoreWindow(tokens: number[], start: number, end: number, context: number): Promise<string>;
10
10
  transcribe(audio: string | number[], prompt: string, responseBufferSize: number, optionsJson?: string, callback?: (token: string, tokenId: number) => void): Promise<string>;
11
+ streamTranscribeInit(): Promise<void>;
12
+ streamTranscribeInsert(audio: number[]): Promise<void>;
13
+ streamTranscribeProcess(optionsJson?: string): Promise<string>;
14
+ streamTranscribeFinalize(): Promise<string>;
15
+ streamTranscribeDestroy(): Promise<void>;
11
16
  embed(text: string, embeddingBufferSize: number, normalize: boolean): Promise<number[]>;
12
17
  imageEmbed(imagePath: string, embeddingBufferSize: number): Promise<number[]>;
13
18
  audioEmbed(audioPath: string, embeddingBufferSize: number): Promise<number[]>;
@@ -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,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,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;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,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,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,uBAAuB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/D,wBAAwB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,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;CAC1B"}
@@ -1,7 +1,9 @@
1
+ import { type ModelOptions } from './common';
1
2
  export interface CactusLMParams {
2
3
  model?: string;
3
4
  contextSize?: number;
4
5
  corpusDir?: string;
6
+ options?: ModelOptions;
5
7
  }
6
8
  export interface CactusLMDownloadParams {
7
9
  onProgress?: (progress: number) => void;
@@ -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,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;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;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,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;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"}
1
+ {"version":3,"file":"CactusLM.d.ts","sourceRoot":"","sources":["../../../../src/types/CactusLM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;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;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;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,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;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"}
@@ -1,6 +1,8 @@
1
+ import { type ModelOptions } from './common';
1
2
  export interface CactusSTTParams {
2
3
  model?: string;
3
4
  contextSize?: number;
5
+ options?: ModelOptions;
4
6
  }
5
7
  export interface CactusSTTDownloadParams {
6
8
  onProgress?: (progress: number) => void;
@@ -34,4 +36,22 @@ export interface CactusSTTAudioEmbedParams {
34
36
  export interface CactusSTTAudioEmbedResult {
35
37
  embedding: number[];
36
38
  }
39
+ export interface CactusSTTStreamTranscribeInsertParams {
40
+ audio: number[];
41
+ }
42
+ export interface StreamTranscribeProcessOptions {
43
+ confirmationThreshold?: number;
44
+ }
45
+ export interface CactusSTTStreamTranscribeProcessParams {
46
+ options?: StreamTranscribeProcessOptions;
47
+ }
48
+ export interface CactusSTTStreamTranscribeProcessResult {
49
+ success: boolean;
50
+ confirmed: string;
51
+ pending: string;
52
+ }
53
+ export interface CactusSTTStreamTranscribeFinalizeResult {
54
+ success: boolean;
55
+ confirmed: string;
56
+ }
37
57
  //# sourceMappingURL=CactusSTT.d.ts.map
@@ -1 +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,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,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"}
1
+ {"version":3,"file":"CactusSTT.d.ts","sourceRoot":"","sources":["../../../../src/types/CactusSTT.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;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,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,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;AAED,MAAM,WAAW,qCAAqC;IACpD,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,8BAA8B;IAC7C,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,sCAAsC;IACrD,OAAO,CAAC,EAAE,8BAA8B,CAAC;CAC1C;AAED,MAAM,WAAW,sCAAsC;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uCAAuC;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,28 @@
1
+ export interface CactusModel {
2
+ completion: boolean;
3
+ tools: boolean;
4
+ vision: boolean;
5
+ embed: boolean;
6
+ speech: boolean;
7
+ quantization: {
8
+ int4: {
9
+ sizeMb: number;
10
+ url: string;
11
+ pro?: {
12
+ apple: string;
13
+ };
14
+ };
15
+ int8: {
16
+ sizeMb: number;
17
+ url: string;
18
+ pro?: {
19
+ apple: string;
20
+ };
21
+ };
22
+ };
23
+ }
24
+ export interface ModelOptions {
25
+ quantization?: 'int4' | 'int8';
26
+ pro?: boolean;
27
+ }
28
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/types/common.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE;QACZ,IAAI,EAAE;YACJ,MAAM,EAAE,MAAM,CAAC;YACf,GAAG,EAAE,MAAM,CAAC;YACZ,GAAG,CAAC,EAAE;gBACJ,KAAK,EAAE,MAAM,CAAC;aACf,CAAC;SACH,CAAC;QACF,IAAI,EAAE;YACJ,MAAM,EAAE,MAAM,CAAC;YACf,GAAG,EAAE,MAAM,CAAC;YACZ,GAAG,CAAC,EAAE;gBACJ,KAAK,EAAE,MAAM,CAAC;aACf,CAAC;SACH,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,GAAG,CAAC,EAAE,OAAO,CAAC;CACf"}
@@ -19,6 +19,11 @@ namespace margelo::nitro::cactus {
19
19
  prototype.registerHybridMethod("tokenize", &HybridCactusSpec::tokenize);
20
20
  prototype.registerHybridMethod("scoreWindow", &HybridCactusSpec::scoreWindow);
21
21
  prototype.registerHybridMethod("transcribe", &HybridCactusSpec::transcribe);
22
+ prototype.registerHybridMethod("streamTranscribeInit", &HybridCactusSpec::streamTranscribeInit);
23
+ prototype.registerHybridMethod("streamTranscribeInsert", &HybridCactusSpec::streamTranscribeInsert);
24
+ prototype.registerHybridMethod("streamTranscribeProcess", &HybridCactusSpec::streamTranscribeProcess);
25
+ prototype.registerHybridMethod("streamTranscribeFinalize", &HybridCactusSpec::streamTranscribeFinalize);
26
+ prototype.registerHybridMethod("streamTranscribeDestroy", &HybridCactusSpec::streamTranscribeDestroy);
22
27
  prototype.registerHybridMethod("embed", &HybridCactusSpec::embed);
23
28
  prototype.registerHybridMethod("imageEmbed", &HybridCactusSpec::imageEmbed);
24
29
  prototype.registerHybridMethod("audioEmbed", &HybridCactusSpec::audioEmbed);
@@ -58,6 +58,11 @@ namespace margelo::nitro::cactus {
58
58
  virtual std::shared_ptr<Promise<std::vector<double>>> tokenize(const std::string& text) = 0;
59
59
  virtual std::shared_ptr<Promise<std::string>> scoreWindow(const std::vector<double>& tokens, double start, double end, double context) = 0;
60
60
  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;
61
+ virtual std::shared_ptr<Promise<void>> streamTranscribeInit() = 0;
62
+ virtual std::shared_ptr<Promise<void>> streamTranscribeInsert(const std::vector<double>& audio) = 0;
63
+ virtual std::shared_ptr<Promise<std::string>> streamTranscribeProcess(const std::optional<std::string>& optionsJson) = 0;
64
+ virtual std::shared_ptr<Promise<std::string>> streamTranscribeFinalize() = 0;
65
+ virtual std::shared_ptr<Promise<void>> streamTranscribeDestroy() = 0;
61
66
  virtual std::shared_ptr<Promise<std::vector<double>>> embed(const std::string& text, double embeddingBufferSize, bool normalize) = 0;
62
67
  virtual std::shared_ptr<Promise<std::vector<double>>> imageEmbed(const std::string& imagePath, double embeddingBufferSize) = 0;
63
68
  virtual std::shared_ptr<Promise<std::vector<double>>> audioEmbed(const std::string& audioPath, double embeddingBufferSize) = 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cactus-react-native",
3
- "version": "1.4.0",
3
+ "version": "1.5.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,30 +1,8 @@
1
1
  import { CactusUtil } from '../native';
2
2
  import type { DeviceInfo } from '../specs/CactusDeviceInfo.nitro';
3
3
  import type { LogRecord } from '../telemetry/Telemetry';
4
- import { packageVersion } from '../constants/packageVersion';
5
- import type { CactusModel } from '../types/CactusModel';
6
- import type { CactusSTTModel } from '../types/CactusSTTModel';
7
4
  import { CactusConfig } from '../config/CactusConfig';
8
5
 
9
- interface CactusModelResponse {
10
- name: string;
11
- slug: string;
12
- quantization: number;
13
- size_mb: number;
14
- download_url: string;
15
- supports_tool_calling: boolean;
16
- supports_vision: boolean;
17
- supports_completion: boolean;
18
- created_at: Date;
19
- }
20
-
21
- interface CactusSTTModelResponse {
22
- slug: string;
23
- download_url: string;
24
- size_mb: number;
25
- created_at: Date;
26
- }
27
-
28
6
  export class Database {
29
7
  private static readonly url = 'https://vlqqczxwyaodtcdmdmlw.supabase.co';
30
8
  private static readonly key =
@@ -74,115 +52,4 @@ export class Database {
74
52
 
75
53
  return await CactusUtil.registerApp(await response.text());
76
54
  }
77
-
78
- public static async getModel(slug: string): Promise<CactusModel> {
79
- const response = await fetch(
80
- `${this.url}/functions/v1/get-models?slug=${slug}&sdk_name=react&sdk_version=${packageVersion}`,
81
- {
82
- headers: { apikey: this.key, Authorization: `Bearer ${this.key}` },
83
- }
84
- );
85
-
86
- if (!response.ok) {
87
- throw new Error('Getting model failed');
88
- }
89
-
90
- const model = (await response.json()) as CactusModelResponse;
91
-
92
- return {
93
- name: model.name,
94
- slug: model.slug,
95
- quantization: model.quantization,
96
- sizeMb: model.size_mb,
97
- downloadUrl: model.download_url,
98
- supportsToolCalling: model.supports_tool_calling,
99
- supportsVision: model.supports_vision,
100
- supportsCompletion: model.supports_completion,
101
- createdAt: model.created_at,
102
- isDownloaded: false,
103
- };
104
- }
105
-
106
- public static async getSTTModel(slug: string): Promise<CactusSTTModel> {
107
- const response = await fetch(
108
- `${this.url}/rest/v1/whisper?slug=eq.${slug}&select=*`,
109
- {
110
- headers: {
111
- 'apikey': this.key,
112
- 'Authorization': `Bearer ${this.key}`,
113
- 'Accept-Profile': 'cactus',
114
- },
115
- }
116
- );
117
-
118
- if (!response.ok) {
119
- throw new Error('Getting STT model failed');
120
- }
121
-
122
- const [model] = (await response.json()) as CactusSTTModelResponse[];
123
-
124
- if (!model) {
125
- throw new Error(`STT model with slug "${slug}" not found`);
126
- }
127
-
128
- return {
129
- slug: model.slug,
130
- downloadUrl: model.download_url,
131
- sizeMb: model.size_mb,
132
- createdAt: model.created_at,
133
- isDownloaded: false,
134
- };
135
- }
136
-
137
- public static async getModels(): Promise<CactusModel[]> {
138
- const response = await fetch(
139
- `${this.url}/functions/v1/get-models?sdk_name=react&sdk_version=${packageVersion}`,
140
- {
141
- headers: { apikey: this.key, Authorization: `Bearer ${this.key}` },
142
- }
143
- );
144
-
145
- if (!response.ok) {
146
- throw new Error('Getting models failed');
147
- }
148
-
149
- const models = (await response.json()) as CactusModelResponse[];
150
-
151
- return models.map((model) => ({
152
- name: model.name,
153
- slug: model.slug,
154
- quantization: model.quantization,
155
- sizeMb: model.size_mb,
156
- downloadUrl: model.download_url,
157
- supportsToolCalling: model.supports_tool_calling,
158
- supportsVision: model.supports_vision,
159
- supportsCompletion: model.supports_completion,
160
- createdAt: model.created_at,
161
- isDownloaded: false,
162
- }));
163
- }
164
-
165
- public static async getSTTModels(): Promise<CactusSTTModel[]> {
166
- const response = await fetch(`${this.url}/rest/v1/whisper?select=*`, {
167
- headers: {
168
- 'apikey': this.key,
169
- 'Authorization': `Bearer ${this.key}`,
170
- 'Accept-Profile': 'cactus',
171
- },
172
- });
173
-
174
- if (!response.ok) {
175
- throw new Error('Getting STT models failed');
176
- }
177
-
178
- const models = (await response.json()) as CactusSTTModelResponse[];
179
-
180
- return models.map((model) => ({
181
- slug: model.slug,
182
- downloadUrl: model.download_url,
183
- sizeMb: model.size_mb,
184
- createdAt: model.created_at,
185
- isDownloaded: false,
186
- }));
187
- }
188
55
  }