cactus-react-native 1.0.2 → 1.1.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 (126) hide show
  1. package/README.md +378 -21
  2. package/android/src/main/java/com/margelo/nitro/cactus/HybridCactusCrypto.kt +23 -15
  3. package/android/src/main/java/com/margelo/nitro/cactus/HybridCactusDeviceInfo.kt +12 -9
  4. package/android/src/main/java/com/margelo/nitro/cactus/HybridCactusFileSystem.kt +42 -41
  5. package/android/src/main/java/com/margelo/nitro/cactus/HybridCactusImage.kt +81 -0
  6. package/android/src/main/jniLibs/arm64-v8a/libcactus.a +0 -0
  7. package/cpp/HybridCactus.cpp +105 -0
  8. package/cpp/HybridCactus.hpp +13 -0
  9. package/cpp/cactus_ffi.h +27 -0
  10. package/ios/HybridCactusImage.swift +53 -0
  11. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/cactus_ffi.h +27 -0
  12. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/engine.h +35 -3
  13. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ffi_utils.h +10 -9
  14. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/graph.h +3 -1
  15. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/kernel.h +31 -0
  16. package/ios/cactus.xcframework/ios-arm64/cactus.framework/cactus +0 -0
  17. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/cactus_ffi.h +27 -0
  18. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/engine.h +35 -3
  19. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/ffi_utils.h +10 -9
  20. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/graph.h +3 -1
  21. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/kernel.h +31 -0
  22. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/cactus +0 -0
  23. package/lib/module/api/Database.js +23 -0
  24. package/lib/module/api/Database.js.map +1 -1
  25. package/lib/module/api/RemoteLM.js +201 -0
  26. package/lib/module/api/RemoteLM.js.map +1 -0
  27. package/lib/module/classes/CactusLM.js +52 -26
  28. package/lib/module/classes/CactusLM.js.map +1 -1
  29. package/lib/module/classes/CactusSTT.js +137 -0
  30. package/lib/module/classes/CactusSTT.js.map +1 -0
  31. package/lib/module/config/CactusConfig.js +4 -0
  32. package/lib/module/config/CactusConfig.js.map +1 -1
  33. package/lib/module/constants/packageVersion.js +1 -1
  34. package/lib/module/hooks/useCactusLM.js +33 -10
  35. package/lib/module/hooks/useCactusLM.js.map +1 -1
  36. package/lib/module/hooks/useCactusSTT.js +234 -0
  37. package/lib/module/hooks/useCactusSTT.js.map +1 -0
  38. package/lib/module/index.js +2 -0
  39. package/lib/module/index.js.map +1 -1
  40. package/lib/module/native/Cactus.js +50 -1
  41. package/lib/module/native/Cactus.js.map +1 -1
  42. package/lib/module/native/CactusFileSystem.js +2 -3
  43. package/lib/module/native/CactusFileSystem.js.map +1 -1
  44. package/lib/module/native/CactusImage.js +13 -0
  45. package/lib/module/native/CactusImage.js.map +1 -0
  46. package/lib/module/native/index.js +1 -0
  47. package/lib/module/native/index.js.map +1 -1
  48. package/lib/module/specs/CactusImage.nitro.js +4 -0
  49. package/lib/module/specs/CactusImage.nitro.js.map +1 -0
  50. package/lib/module/telemetry/Telemetry.js +53 -1
  51. package/lib/module/telemetry/Telemetry.js.map +1 -1
  52. package/lib/module/types/CactusSTT.js +2 -0
  53. package/lib/module/types/CactusSTT.js.map +1 -0
  54. package/lib/typescript/src/api/Database.d.ts +1 -0
  55. package/lib/typescript/src/api/Database.d.ts.map +1 -1
  56. package/lib/typescript/src/api/RemoteLM.d.ts +14 -0
  57. package/lib/typescript/src/api/RemoteLM.d.ts.map +1 -0
  58. package/lib/typescript/src/classes/CactusLM.d.ts +6 -4
  59. package/lib/typescript/src/classes/CactusLM.d.ts.map +1 -1
  60. package/lib/typescript/src/classes/CactusSTT.d.ts +25 -0
  61. package/lib/typescript/src/classes/CactusSTT.d.ts.map +1 -0
  62. package/lib/typescript/src/config/CactusConfig.d.ts +1 -0
  63. package/lib/typescript/src/config/CactusConfig.d.ts.map +1 -1
  64. package/lib/typescript/src/constants/packageVersion.d.ts +1 -1
  65. package/lib/typescript/src/hooks/useCactusLM.d.ts +4 -3
  66. package/lib/typescript/src/hooks/useCactusLM.d.ts.map +1 -1
  67. package/lib/typescript/src/hooks/useCactusSTT.d.ts +20 -0
  68. package/lib/typescript/src/hooks/useCactusSTT.d.ts.map +1 -0
  69. package/lib/typescript/src/index.d.ts +4 -1
  70. package/lib/typescript/src/index.d.ts.map +1 -1
  71. package/lib/typescript/src/native/Cactus.d.ts +9 -2
  72. package/lib/typescript/src/native/Cactus.d.ts.map +1 -1
  73. package/lib/typescript/src/native/CactusFileSystem.d.ts +1 -1
  74. package/lib/typescript/src/native/CactusFileSystem.d.ts.map +1 -1
  75. package/lib/typescript/src/native/CactusImage.d.ts +6 -0
  76. package/lib/typescript/src/native/CactusImage.d.ts.map +1 -0
  77. package/lib/typescript/src/native/index.d.ts +1 -0
  78. package/lib/typescript/src/native/index.d.ts.map +1 -1
  79. package/lib/typescript/src/specs/Cactus.nitro.d.ts +3 -0
  80. package/lib/typescript/src/specs/Cactus.nitro.d.ts.map +1 -1
  81. package/lib/typescript/src/specs/CactusImage.nitro.d.ts +9 -0
  82. package/lib/typescript/src/specs/CactusImage.nitro.d.ts.map +1 -0
  83. package/lib/typescript/src/telemetry/Telemetry.d.ts +5 -1
  84. package/lib/typescript/src/telemetry/Telemetry.d.ts.map +1 -1
  85. package/lib/typescript/src/types/CactusLM.d.ts +8 -5
  86. package/lib/typescript/src/types/CactusLM.d.ts.map +1 -1
  87. package/lib/typescript/src/types/CactusSTT.d.ts +37 -0
  88. package/lib/typescript/src/types/CactusSTT.d.ts.map +1 -0
  89. package/nitro.json +4 -0
  90. package/nitrogen/generated/android/c++/JHybridCactusImageSpec.cpp +81 -0
  91. package/nitrogen/generated/android/c++/JHybridCactusImageSpec.hpp +66 -0
  92. package/nitrogen/generated/android/cactus+autolinking.cmake +2 -0
  93. package/nitrogen/generated/android/cactusOnLoad.cpp +10 -0
  94. package/nitrogen/generated/android/kotlin/com/margelo/nitro/cactus/HybridCactusImageSpec.kt +62 -0
  95. package/nitrogen/generated/ios/Cactus-Swift-Cxx-Bridge.cpp +17 -0
  96. package/nitrogen/generated/ios/Cactus-Swift-Cxx-Bridge.hpp +17 -0
  97. package/nitrogen/generated/ios/Cactus-Swift-Cxx-Umbrella.hpp +5 -0
  98. package/nitrogen/generated/ios/CactusAutolinking.mm +8 -0
  99. package/nitrogen/generated/ios/CactusAutolinking.swift +15 -0
  100. package/nitrogen/generated/ios/c++/HybridCactusImageSpecSwift.cpp +11 -0
  101. package/nitrogen/generated/ios/c++/HybridCactusImageSpecSwift.hpp +85 -0
  102. package/nitrogen/generated/ios/swift/HybridCactusImageSpec.swift +58 -0
  103. package/nitrogen/generated/ios/swift/HybridCactusImageSpec_cxx.swift +158 -0
  104. package/nitrogen/generated/shared/c++/HybridCactusImageSpec.cpp +22 -0
  105. package/nitrogen/generated/shared/c++/HybridCactusImageSpec.hpp +64 -0
  106. package/nitrogen/generated/shared/c++/HybridCactusSpec.cpp +3 -0
  107. package/nitrogen/generated/shared/c++/HybridCactusSpec.hpp +3 -0
  108. package/package.json +1 -1
  109. package/src/api/Database.ts +27 -0
  110. package/src/api/RemoteLM.ts +273 -0
  111. package/src/classes/CactusLM.ts +72 -38
  112. package/src/classes/CactusSTT.ts +182 -0
  113. package/src/config/CactusConfig.ts +4 -0
  114. package/src/constants/packageVersion.ts +1 -1
  115. package/src/hooks/useCactusLM.ts +45 -17
  116. package/src/hooks/useCactusSTT.ts +285 -0
  117. package/src/index.tsx +14 -2
  118. package/src/native/Cactus.ts +94 -4
  119. package/src/native/CactusFileSystem.ts +2 -2
  120. package/src/native/CactusImage.ts +20 -0
  121. package/src/native/index.ts +1 -0
  122. package/src/specs/Cactus.nitro.ts +9 -0
  123. package/src/specs/CactusImage.nitro.ts +12 -0
  124. package/src/telemetry/Telemetry.ts +78 -1
  125. package/src/types/CactusLM.ts +9 -5
  126. package/src/types/CactusSTT.ts +42 -0
@@ -5,6 +5,7 @@ import { Telemetry } from "../telemetry/Telemetry.js";
5
5
  import { CactusConfig } from "../config/CactusConfig.js";
6
6
  import { Database } from "../api/Database.js";
7
7
  import { getErrorMessage } from "../utils/error.js";
8
+ import { RemoteLM } from "../api/RemoteLM.js";
8
9
  export class CactusLM {
9
10
  cactus = new Cactus();
10
11
  isDownloading = false;
@@ -15,13 +16,15 @@ export class CactusLM {
15
16
  static defaultCompleteOptions = {
16
17
  maxTokens: 512
17
18
  };
19
+ static defaultCompleteMode = 'local';
18
20
  static defaultEmbedBufferSize = 2048;
19
- static modelsInfoPath = 'models/info.json';
21
+ static cactusModelsCache = null;
20
22
  constructor({
21
23
  model,
22
24
  contextSize,
23
25
  corpusDir
24
26
  } = {}) {
27
+ Telemetry.init(CactusConfig.telemetryToken);
25
28
  this.model = model ?? CactusLM.defaultModel;
26
29
  this.contextSize = contextSize ?? CactusLM.defaultContextSize;
27
30
  this.corpusDir = corpusDir;
@@ -38,10 +41,8 @@ export class CactusLM {
38
41
  }
39
42
  this.isDownloading = true;
40
43
  try {
41
- await CactusFileSystem.downloadModel(this.model, onProgress);
42
- await this.getModels({
43
- forceRefresh: true
44
- });
44
+ const model = await Database.getModel(this.model);
45
+ await CactusFileSystem.downloadModel(this.model, model.downloadUrl, onProgress);
45
46
  } finally {
46
47
  this.isDownloading = false;
47
48
  }
@@ -50,9 +51,6 @@ export class CactusLM {
50
51
  if (this.isInitialized) {
51
52
  return;
52
53
  }
53
- if (!Telemetry.isInitialized()) {
54
- await Telemetry.init(CactusConfig.telemetryToken);
55
- }
56
54
  if (!(await CactusFileSystem.modelExists(this.model))) {
57
55
  throw new Error(`Model "${this.model}" is not downloaded`);
58
56
  }
@@ -70,25 +68,39 @@ export class CactusLM {
70
68
  messages,
71
69
  options,
72
70
  tools,
73
- onToken
71
+ onToken,
72
+ mode
74
73
  }) {
75
74
  if (this.isGenerating) {
76
75
  throw new Error('CactusLM is already generating');
77
76
  }
78
- await this.init();
79
77
  options = {
80
78
  ...CactusLM.defaultCompleteOptions,
81
79
  ...options
82
80
  };
81
+ const toolsInternal = tools?.map(tool => ({
82
+ type: 'function',
83
+ function: tool
84
+ }));
85
+ mode = mode ?? CactusLM.defaultCompleteMode;
83
86
  const responseBufferSize = 8 * (options.maxTokens ?? CactusLM.defaultCompleteOptions.maxTokens) + 256;
84
- this.isGenerating = true;
85
87
  try {
86
- const result = await this.cactus.complete(messages, responseBufferSize, options, tools, onToken);
88
+ await this.init();
89
+ this.isGenerating = true;
90
+ const result = await this.cactus.complete(messages, responseBufferSize, options, toolsInternal, onToken);
87
91
  Telemetry.logCompletion(this.model, result.success, result.success ? undefined : result.response, result);
88
92
  return result;
89
- } catch (error) {
90
- Telemetry.logCompletion(this.model, false, getErrorMessage(error));
91
- throw error;
93
+ } catch (localError) {
94
+ if (mode === 'local') {
95
+ Telemetry.logCompletion(this.model, false, getErrorMessage(localError));
96
+ throw localError;
97
+ }
98
+ Telemetry.logCompletion(this.model, false, `Local completion error: ${getErrorMessage(localError)}. Falling back to remote completion.`);
99
+ try {
100
+ return RemoteLM.complete(messages, options, toolsInternal, onToken);
101
+ } catch (remoteError) {
102
+ throw new Error(`Remote completion error: ${getErrorMessage(remoteError)}`);
103
+ }
92
104
  } finally {
93
105
  this.isGenerating = false;
94
106
  }
@@ -114,6 +126,27 @@ export class CactusLM {
114
126
  this.isGenerating = false;
115
127
  }
116
128
  }
129
+ async imageEmbed({
130
+ imagePath
131
+ }) {
132
+ if (this.isGenerating) {
133
+ throw new Error('CactusLM is already generating');
134
+ }
135
+ await this.init();
136
+ this.isGenerating = true;
137
+ try {
138
+ const embedding = await this.cactus.imageEmbed(imagePath, CactusLM.defaultEmbedBufferSize);
139
+ Telemetry.logImageEmbedding(this.model, true);
140
+ return {
141
+ embedding
142
+ };
143
+ } catch (error) {
144
+ Telemetry.logImageEmbedding(this.model, false, getErrorMessage(error));
145
+ throw error;
146
+ } finally {
147
+ this.isGenerating = false;
148
+ }
149
+ }
117
150
  stop() {
118
151
  return this.cactus.stop();
119
152
  }
@@ -129,22 +162,15 @@ export class CactusLM {
129
162
  await this.cactus.destroy();
130
163
  this.isInitialized = false;
131
164
  }
132
- async getModels({
133
- forceRefresh = false
134
- } = {}) {
135
- if (!forceRefresh && (await CactusFileSystem.fileExists(CactusLM.modelsInfoPath))) {
136
- try {
137
- return JSON.parse(await CactusFileSystem.readFile(CactusLM.modelsInfoPath));
138
- } catch {
139
- // Delete corrupted models info
140
- await CactusFileSystem.deleteFile(CactusLM.modelsInfoPath);
141
- }
165
+ async getModels() {
166
+ if (CactusLM.cactusModelsCache) {
167
+ return CactusLM.cactusModelsCache;
142
168
  }
143
169
  const models = await Database.getModels();
144
170
  for (const model of models) {
145
171
  model.isDownloaded = await CactusFileSystem.modelExists(model.slug);
146
172
  }
147
- await CactusFileSystem.writeFile(CactusLM.modelsInfoPath, JSON.stringify(models));
173
+ CactusLM.cactusModelsCache = models;
148
174
  return models;
149
175
  }
150
176
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Cactus","CactusFileSystem","Telemetry","CactusConfig","Database","getErrorMessage","CactusLM","cactus","isDownloading","isInitialized","isGenerating","defaultModel","defaultContextSize","defaultCompleteOptions","maxTokens","defaultEmbedBufferSize","modelsInfoPath","constructor","model","contextSize","corpusDir","download","onProgress","Error","modelExists","downloadModel","getModels","forceRefresh","init","telemetryToken","modelPath","getModelPath","logInit","error","complete","messages","options","tools","onToken","responseBufferSize","result","logCompletion","success","undefined","response","embed","text","embedding","logEmbedding","stop","reset","destroy","fileExists","JSON","parse","readFile","deleteFile","models","isDownloaded","slug","writeFile","stringify"],"sourceRoot":"../../../src","sources":["classes/CactusLM.ts"],"mappings":";;AAAA,SAASA,MAAM,EAAEC,gBAAgB,QAAQ,oBAAW;AAWpD,SAASC,SAAS,QAAQ,2BAAwB;AAClD,SAASC,YAAY,QAAQ,2BAAwB;AACrD,SAASC,QAAQ,QAAQ,oBAAiB;AAC1C,SAASC,eAAe,QAAQ,mBAAgB;AAEhD,OAAO,MAAMC,QAAQ,CAAC;EACHC,MAAM,GAAG,IAAIP,MAAM,CAAC,CAAC;EAM9BQ,aAAa,GAAG,KAAK;EACrBC,aAAa,GAAG,KAAK;EACrBC,YAAY,GAAG,KAAK;EAE5B,OAAwBC,YAAY,GAAG,WAAW;EAClD,OAAwBC,kBAAkB,GAAG,IAAI;EACjD,OAAwBC,sBAAsB,GAAG;IAC/CC,SAAS,EAAE;EACb,CAAC;EACD,OAAwBC,sBAAsB,GAAG,IAAI;EAErD,OAAwBC,cAAc,GAAG,kBAAkB;EAE3DC,WAAWA,CAAC;IAAEC,KAAK;IAAEC,WAAW;IAAEC;EAA0B,CAAC,GAAG,CAAC,CAAC,EAAE;IAClE,IAAI,CAACF,KAAK,GAAGA,KAAK,IAAIZ,QAAQ,CAACK,YAAY;IAC3C,IAAI,CAACQ,WAAW,GAAGA,WAAW,IAAIb,QAAQ,CAACM,kBAAkB;IAC7D,IAAI,CAACQ,SAAS,GAAGA,SAAS;EAC5B;EAEA,MAAaC,QAAQA,CAAC;IACpBC;EACsB,CAAC,GAAG,CAAC,CAAC,EAAiB;IAC7C,IAAI,IAAI,CAACd,aAAa,EAAE;MACtB,MAAM,IAAIe,KAAK,CAAC,iCAAiC,CAAC;IACpD;IAEA,IAAI,MAAMtB,gBAAgB,CAACuB,WAAW,CAAC,IAAI,CAACN,KAAK,CAAC,EAAE;MAClDI,UAAU,GAAG,GAAG,CAAC;MACjB;IACF;IAEA,IAAI,CAACd,aAAa,GAAG,IAAI;IACzB,IAAI;MACF,MAAMP,gBAAgB,CAACwB,aAAa,CAAC,IAAI,CAACP,KAAK,EAAEI,UAAU,CAAC;MAC5D,MAAM,IAAI,CAACI,SAAS,CAAC;QAAEC,YAAY,EAAE;MAAK,CAAC,CAAC;IAC9C,CAAC,SAAS;MACR,IAAI,CAACnB,aAAa,GAAG,KAAK;IAC5B;EACF;EAEA,MAAaoB,IAAIA,CAAA,EAAkB;IACjC,IAAI,IAAI,CAACnB,aAAa,EAAE;MACtB;IACF;IAEA,IAAI,CAACP,SAAS,CAACO,aAAa,CAAC,CAAC,EAAE;MAC9B,MAAMP,SAAS,CAAC0B,IAAI,CAACzB,YAAY,CAAC0B,cAAc,CAAC;IACnD;IAEA,IAAI,EAAE,MAAM5B,gBAAgB,CAACuB,WAAW,CAAC,IAAI,CAACN,KAAK,CAAC,CAAC,EAAE;MACrD,MAAM,IAAIK,KAAK,CAAC,UAAU,IAAI,CAACL,KAAK,qBAAqB,CAAC;IAC5D;IAEA,MAAMY,SAAS,GAAG,MAAM7B,gBAAgB,CAAC8B,YAAY,CAAC,IAAI,CAACb,KAAK,CAAC;IAEjE,IAAI;MACF,MAAM,IAAI,CAACX,MAAM,CAACqB,IAAI,CAACE,SAAS,EAAE,IAAI,CAACX,WAAW,EAAE,IAAI,CAACC,SAAS,CAAC;MACnElB,SAAS,CAAC8B,OAAO,CAAC,IAAI,CAACd,KAAK,EAAE,IAAI,CAAC;MACnC,IAAI,CAACT,aAAa,GAAG,IAAI;IAC3B,CAAC,CAAC,OAAOwB,KAAK,EAAE;MACd/B,SAAS,CAAC8B,OAAO,CAAC,IAAI,CAACd,KAAK,EAAE,KAAK,EAAEb,eAAe,CAAC4B,KAAK,CAAC,CAAC;MAC5D,MAAMA,KAAK;IACb;EACF;EAEA,MAAaC,QAAQA,CAAC;IACpBC,QAAQ;IACRC,OAAO;IACPC,KAAK;IACLC;EACsB,CAAC,EAAmC;IAC1D,IAAI,IAAI,CAAC5B,YAAY,EAAE;MACrB,MAAM,IAAIa,KAAK,CAAC,gCAAgC,CAAC;IACnD;IAEA,MAAM,IAAI,CAACK,IAAI,CAAC,CAAC;IAEjBQ,OAAO,GAAG;MAAE,GAAG9B,QAAQ,CAACO,sBAAsB;MAAE,GAAGuB;IAAQ,CAAC;IAC5D,MAAMG,kBAAkB,GACtB,CAAC,IAAIH,OAAO,CAACtB,SAAS,IAAIR,QAAQ,CAACO,sBAAsB,CAACC,SAAS,CAAC,GACpE,GAAG;IAEL,IAAI,CAACJ,YAAY,GAAG,IAAI;IACxB,IAAI;MACF,MAAM8B,MAAM,GAAG,MAAM,IAAI,CAACjC,MAAM,CAAC2B,QAAQ,CACvCC,QAAQ,EACRI,kBAAkB,EAClBH,OAAO,EACPC,KAAK,EACLC,OACF,CAAC;MACDpC,SAAS,CAACuC,aAAa,CACrB,IAAI,CAACvB,KAAK,EACVsB,MAAM,CAACE,OAAO,EACdF,MAAM,CAACE,OAAO,GAAGC,SAAS,GAAGH,MAAM,CAACI,QAAQ,EAC5CJ,MACF,CAAC;MACD,OAAOA,MAAM;IACf,CAAC,CAAC,OAAOP,KAAK,EAAE;MACd/B,SAAS,CAACuC,aAAa,CAAC,IAAI,CAACvB,KAAK,EAAE,KAAK,EAAEb,eAAe,CAAC4B,KAAK,CAAC,CAAC;MAClE,MAAMA,KAAK;IACb,CAAC,SAAS;MACR,IAAI,CAACvB,YAAY,GAAG,KAAK;IAC3B;EACF;EAEA,MAAamC,KAAKA,CAAC;IACjBC;EACmB,CAAC,EAAgC;IACpD,IAAI,IAAI,CAACpC,YAAY,EAAE;MACrB,MAAM,IAAIa,KAAK,CAAC,gCAAgC,CAAC;IACnD;IAEA,MAAM,IAAI,CAACK,IAAI,CAAC,CAAC;IAEjB,IAAI,CAAClB,YAAY,GAAG,IAAI;IACxB,IAAI;MACF,MAAMqC,SAAS,GAAG,MAAM,IAAI,CAACxC,MAAM,CAACsC,KAAK,CACvCC,IAAI,EACJxC,QAAQ,CAACS,sBACX,CAAC;MACDb,SAAS,CAAC8C,YAAY,CAAC,IAAI,CAAC9B,KAAK,EAAE,IAAI,CAAC;MACxC,OAAO;QAAE6B;MAAU,CAAC;IACtB,CAAC,CAAC,OAAOd,KAAK,EAAE;MACd/B,SAAS,CAAC8C,YAAY,CAAC,IAAI,CAAC9B,KAAK,EAAE,KAAK,EAAEb,eAAe,CAAC4B,KAAK,CAAC,CAAC;MACjE,MAAMA,KAAK;IACb,CAAC,SAAS;MACR,IAAI,CAACvB,YAAY,GAAG,KAAK;IAC3B;EACF;EAEOuC,IAAIA,CAAA,EAAkB;IAC3B,OAAO,IAAI,CAAC1C,MAAM,CAAC0C,IAAI,CAAC,CAAC;EAC3B;EAEA,MAAaC,KAAKA,CAAA,EAAkB;IAClC,MAAM,IAAI,CAACD,IAAI,CAAC,CAAC;IACjB,OAAO,IAAI,CAAC1C,MAAM,CAAC2C,KAAK,CAAC,CAAC;EAC5B;EAEA,MAAaC,OAAOA,CAAA,EAAkB;IACpC,IAAI,CAAC,IAAI,CAAC1C,aAAa,EAAE;MACvB;IACF;IAEA,MAAM,IAAI,CAACwC,IAAI,CAAC,CAAC;IACjB,MAAM,IAAI,CAAC1C,MAAM,CAAC4C,OAAO,CAAC,CAAC;IAE3B,IAAI,CAAC1C,aAAa,GAAG,KAAK;EAC5B;EAEA,MAAaiB,SAASA,CAAC;IACrBC,YAAY,GAAG;EACQ,CAAC,GAAG,CAAC,CAAC,EAA0B;IACvD,IACE,CAACA,YAAY,KACZ,MAAM1B,gBAAgB,CAACmD,UAAU,CAAC9C,QAAQ,CAACU,cAAc,CAAC,CAAC,EAC5D;MACA,IAAI;QACF,OAAOqC,IAAI,CAACC,KAAK,CACf,MAAMrD,gBAAgB,CAACsD,QAAQ,CAACjD,QAAQ,CAACU,cAAc,CACzD,CAAC;MACH,CAAC,CAAC,MAAM;QACN;QACA,MAAMf,gBAAgB,CAACuD,UAAU,CAAClD,QAAQ,CAACU,cAAc,CAAC;MAC5D;IACF;IAEA,MAAMyC,MAAM,GAAG,MAAMrD,QAAQ,CAACsB,SAAS,CAAC,CAAC;IAEzC,KAAK,MAAMR,KAAK,IAAIuC,MAAM,EAAE;MAC1BvC,KAAK,CAACwC,YAAY,GAAG,MAAMzD,gBAAgB,CAACuB,WAAW,CAACN,KAAK,CAACyC,IAAI,CAAC;IACrE;IAEA,MAAM1D,gBAAgB,CAAC2D,SAAS,CAC9BtD,QAAQ,CAACU,cAAc,EACvBqC,IAAI,CAACQ,SAAS,CAACJ,MAAM,CACvB,CAAC;IAED,OAAOA,MAAM;EACf;AACF","ignoreList":[]}
1
+ {"version":3,"names":["Cactus","CactusFileSystem","Telemetry","CactusConfig","Database","getErrorMessage","RemoteLM","CactusLM","cactus","isDownloading","isInitialized","isGenerating","defaultModel","defaultContextSize","defaultCompleteOptions","maxTokens","defaultCompleteMode","defaultEmbedBufferSize","cactusModelsCache","constructor","model","contextSize","corpusDir","init","telemetryToken","download","onProgress","Error","modelExists","getModel","downloadModel","downloadUrl","modelPath","getModelPath","logInit","error","complete","messages","options","tools","onToken","mode","toolsInternal","map","tool","type","function","responseBufferSize","result","logCompletion","success","undefined","response","localError","remoteError","embed","text","embedding","logEmbedding","imageEmbed","imagePath","logImageEmbedding","stop","reset","destroy","getModels","models","isDownloaded","slug"],"sourceRoot":"../../../src","sources":["classes/CactusLM.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+
3
+ import { Cactus, CactusFileSystem } from "../native/index.js";
4
+ import { Telemetry } from "../telemetry/Telemetry.js";
5
+ import { CactusConfig } from "../config/CactusConfig.js";
6
+ import { Database } from "../api/Database.js";
7
+ import { getErrorMessage } from "../utils/error.js";
8
+ export class CactusSTT {
9
+ cactus = new Cactus();
10
+ isDownloading = false;
11
+ isInitialized = false;
12
+ isGenerating = false;
13
+ static defaultModel = 'whisper-small';
14
+ static defaultContextSize = 2048;
15
+ static defaultTranscribeOptions = {
16
+ maxTokens: 512
17
+ };
18
+ static defaultEmbedBufferSize = 32768;
19
+ static cactusModelsCache = null;
20
+ constructor({
21
+ model,
22
+ contextSize
23
+ } = {}) {
24
+ Telemetry.init(CactusConfig.telemetryToken);
25
+ this.model = model ?? CactusSTT.defaultModel;
26
+ this.contextSize = contextSize ?? CactusSTT.defaultContextSize;
27
+ }
28
+ async download({
29
+ onProgress
30
+ } = {}) {
31
+ if (this.isDownloading) {
32
+ throw new Error('CactusSTT is already downloading');
33
+ }
34
+ if (await CactusFileSystem.modelExists(this.model)) {
35
+ onProgress?.(1.0);
36
+ return;
37
+ }
38
+ this.isDownloading = true;
39
+ try {
40
+ await CactusFileSystem.downloadModel(this.model, `https://vlqqczxwyaodtcdmdmlw.supabase.co/storage/v1/object/public/voice-models/${this.model}.zip`, onProgress);
41
+ } finally {
42
+ this.isDownloading = false;
43
+ }
44
+ }
45
+ async init() {
46
+ if (this.isInitialized) {
47
+ return;
48
+ }
49
+ if (!(await CactusFileSystem.modelExists(this.model))) {
50
+ throw new Error(`Model "${this.model}" is not downloaded`);
51
+ }
52
+ const modelPath = await CactusFileSystem.getModelPath(this.model);
53
+ try {
54
+ await this.cactus.init(modelPath, this.contextSize);
55
+ Telemetry.logInit(this.model, true);
56
+ this.isInitialized = true;
57
+ } catch (error) {
58
+ Telemetry.logInit(this.model, false, getErrorMessage(error));
59
+ throw error;
60
+ }
61
+ }
62
+ async transcribe({
63
+ audioFilePath,
64
+ prompt = '<|startoftranscript|><|en|><|transcribe|><|notimestamps|>',
65
+ options,
66
+ onToken
67
+ }) {
68
+ if (this.isGenerating) {
69
+ throw new Error('CactusSTT is already generating');
70
+ }
71
+ await this.init();
72
+ options = {
73
+ ...CactusSTT.defaultTranscribeOptions,
74
+ ...options
75
+ };
76
+ const responseBufferSize = 32768;
77
+ this.isGenerating = true;
78
+ try {
79
+ const result = await this.cactus.transcribe(audioFilePath, prompt, responseBufferSize, options, onToken);
80
+ Telemetry.logTranscribe(this.model, result.success, result.success ? undefined : result.response, result);
81
+ return result;
82
+ } catch (error) {
83
+ Telemetry.logTranscribe(this.model, false, getErrorMessage(error));
84
+ throw error;
85
+ } finally {
86
+ this.isGenerating = false;
87
+ }
88
+ }
89
+ async audioEmbed({
90
+ audioPath
91
+ }) {
92
+ if (this.isGenerating) {
93
+ throw new Error('CactusSTT is already generating');
94
+ }
95
+ await this.init();
96
+ this.isGenerating = true;
97
+ try {
98
+ const embedding = await this.cactus.audioEmbed(audioPath, CactusSTT.defaultEmbedBufferSize);
99
+ Telemetry.logAudioEmbedding(this.model, true);
100
+ return {
101
+ embedding
102
+ };
103
+ } catch (error) {
104
+ Telemetry.logAudioEmbedding(this.model, false, getErrorMessage(error));
105
+ throw error;
106
+ } finally {
107
+ this.isGenerating = false;
108
+ }
109
+ }
110
+ stop() {
111
+ return this.cactus.stop();
112
+ }
113
+ async reset() {
114
+ await this.stop();
115
+ return this.cactus.reset();
116
+ }
117
+ async destroy() {
118
+ if (!this.isInitialized) {
119
+ return;
120
+ }
121
+ await this.stop();
122
+ await this.cactus.destroy();
123
+ this.isInitialized = false;
124
+ }
125
+ async getModels() {
126
+ if (CactusSTT.cactusModelsCache) {
127
+ return CactusSTT.cactusModelsCache;
128
+ }
129
+ const models = await Database.getModels();
130
+ for (const model of models) {
131
+ model.isDownloaded = await CactusFileSystem.modelExists(model.slug);
132
+ }
133
+ CactusSTT.cactusModelsCache = models;
134
+ return models;
135
+ }
136
+ }
137
+ //# sourceMappingURL=CactusSTT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Cactus","CactusFileSystem","Telemetry","CactusConfig","Database","getErrorMessage","CactusSTT","cactus","isDownloading","isInitialized","isGenerating","defaultModel","defaultContextSize","defaultTranscribeOptions","maxTokens","defaultEmbedBufferSize","cactusModelsCache","constructor","model","contextSize","init","telemetryToken","download","onProgress","Error","modelExists","downloadModel","modelPath","getModelPath","logInit","error","transcribe","audioFilePath","prompt","options","onToken","responseBufferSize","result","logTranscribe","success","undefined","response","audioEmbed","audioPath","embedding","logAudioEmbedding","stop","reset","destroy","getModels","models","isDownloaded","slug"],"sourceRoot":"../../../src","sources":["classes/CactusSTT.ts"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  export class CactusConfig {
4
+ // Telemetry
5
+
4
6
  static isTelemetryEnabled = true;
7
+
8
+ // Hybrid mode
5
9
  }
6
10
  //# sourceMappingURL=CactusConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CactusConfig","isTelemetryEnabled"],"sourceRoot":"../../../src","sources":["config/CactusConfig.ts"],"mappings":";;AAAA,OAAO,MAAMA,YAAY,CAAC;EAExB,OAAcC,kBAAkB,GAAY,IAAI;AAClD","ignoreList":[]}
1
+ {"version":3,"names":["CactusConfig","isTelemetryEnabled"],"sourceRoot":"../../../src","sources":["config/CactusConfig.ts"],"mappings":";;AAAA,OAAO,MAAMA,YAAY,CAAC;EACxB;;EAEA,OAAcC,kBAAkB,GAAY,IAAI;;EAEhD;AAEF","ignoreList":[]}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
 
3
- export const packageVersion = '1.0.2';
3
+ export const packageVersion = '1.1.0';
4
4
  //# sourceMappingURL=packageVersion.js.map
@@ -71,9 +71,12 @@ export const useCactusLM = ({
71
71
  setError(message);
72
72
  throw new Error(message);
73
73
  }
74
+ setError(null);
75
+ if (isDownloaded) {
76
+ return;
77
+ }
74
78
  const thisModel = currentModelRef.current;
75
79
  const thisDownloadId = ++currentDownloadIdRef.current;
76
- setError(null);
77
80
  setDownloadProgress(0);
78
81
  setIsDownloading(true);
79
82
  try {
@@ -103,7 +106,7 @@ export const useCactusLM = ({
103
106
  setIsDownloading(false);
104
107
  setDownloadProgress(0);
105
108
  }
106
- }, [cactusLM, isDownloading]);
109
+ }, [cactusLM, isDownloading, isDownloaded]);
107
110
  const init = useCallback(async () => {
108
111
  if (isInitializing) {
109
112
  const message = 'CactusLM is already initializing';
@@ -125,7 +128,8 @@ export const useCactusLM = ({
125
128
  messages,
126
129
  options,
127
130
  tools,
128
- onToken
131
+ onToken,
132
+ mode
129
133
  }) => {
130
134
  if (isGenerating) {
131
135
  const message = 'CactusLM is already generating';
@@ -143,7 +147,8 @@ export const useCactusLM = ({
143
147
  onToken: token => {
144
148
  setCompletion(prev => prev + token);
145
149
  onToken?.(token);
146
- }
150
+ },
151
+ mode
147
152
  });
148
153
  } catch (e) {
149
154
  setError(getErrorMessage(e));
@@ -173,6 +178,27 @@ export const useCactusLM = ({
173
178
  setIsGenerating(false);
174
179
  }
175
180
  }, [cactusLM, isGenerating]);
181
+ const imageEmbed = useCallback(async ({
182
+ imagePath
183
+ }) => {
184
+ if (isGenerating) {
185
+ const message = 'CactusLM is already generating';
186
+ setError(message);
187
+ throw new Error(message);
188
+ }
189
+ setError(null);
190
+ setIsGenerating(true);
191
+ try {
192
+ return await cactusLM.imageEmbed({
193
+ imagePath
194
+ });
195
+ } catch (e) {
196
+ setError(getErrorMessage(e));
197
+ throw e;
198
+ } finally {
199
+ setIsGenerating(false);
200
+ }
201
+ }, [cactusLM, isGenerating]);
176
202
  const stop = useCallback(async () => {
177
203
  setError(null);
178
204
  try {
@@ -204,14 +230,10 @@ export const useCactusLM = ({
204
230
  setCompletion('');
205
231
  }
206
232
  }, [cactusLM]);
207
- const getModels = useCallback(async ({
208
- forceRefresh
209
- } = {}) => {
233
+ const getModels = useCallback(async () => {
210
234
  setError(null);
211
235
  try {
212
- return await cactusLM.getModels({
213
- forceRefresh
214
- });
236
+ return await cactusLM.getModels();
215
237
  } catch (e) {
216
238
  setError(getErrorMessage(e));
217
239
  throw e;
@@ -229,6 +251,7 @@ export const useCactusLM = ({
229
251
  init,
230
252
  complete,
231
253
  embed,
254
+ imageEmbed,
232
255
  reset,
233
256
  stop,
234
257
  destroy,
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useState","useRef","CactusLM","CactusFileSystem","getErrorMessage","useCactusLM","model","contextSize","corpusDir","undefined","cactusLM","setCactusLM","completion","setCompletion","isGenerating","setIsGenerating","isInitializing","setIsInitializing","isDownloaded","setIsDownloaded","isDownloading","setIsDownloading","downloadProgress","setDownloadProgress","error","setError","currentModelRef","currentDownloadIdRef","current","mounted","modelExists","then","exists","catch","e","destroy","download","onProgress","message","Error","thisModel","thisDownloadId","progress","init","complete","messages","options","tools","onToken","token","prev","embed","text","stop","reset","getModels","forceRefresh"],"sourceRoot":"../../../src","sources":["hooks/useCactusLM.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useState","useRef","CactusLM","CactusFileSystem","getErrorMessage","useCactusLM","model","contextSize","corpusDir","undefined","cactusLM","setCactusLM","completion","setCompletion","isGenerating","setIsGenerating","isInitializing","setIsInitializing","isDownloaded","setIsDownloaded","isDownloading","setIsDownloading","downloadProgress","setDownloadProgress","error","setError","currentModelRef","currentDownloadIdRef","current","mounted","modelExists","then","exists","catch","e","destroy","download","onProgress","message","Error","thisModel","thisDownloadId","progress","init","complete","messages","options","tools","onToken","mode","token","prev","embed","text","imageEmbed","imagePath","stop","reset","getModels"],"sourceRoot":"../../../src","sources":["hooks/useCactusLM.ts"],"mappings":"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","ignoreList":[]}