cactus-react-native 1.0.1 → 1.0.2

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 (45) hide show
  1. package/README.md +241 -45
  2. package/android/src/main/jniLibs/arm64-v8a/libcactus.a +0 -0
  3. package/cpp/HybridCactus.cpp +63 -51
  4. package/cpp/HybridCactus.hpp +21 -14
  5. package/cpp/HybridCactusUtil.cpp +13 -11
  6. package/cpp/HybridCactusUtil.hpp +9 -9
  7. package/cpp/cactus_ffi.h +1 -1
  8. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/cactus_ffi.h +1 -1
  9. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/engine.h +204 -6
  10. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ffi_utils.h +150 -36
  11. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/graph.h +20 -1
  12. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/kernel.h +21 -0
  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 +1 -1
  15. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/engine.h +204 -6
  16. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/ffi_utils.h +150 -36
  17. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/graph.h +20 -1
  18. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/kernel.h +21 -0
  19. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/cactus +0 -0
  20. package/lib/module/classes/CactusLM.js +4 -2
  21. package/lib/module/classes/CactusLM.js.map +1 -1
  22. package/lib/module/constants/packageVersion.js +1 -1
  23. package/lib/module/hooks/useCactusLM.js +11 -6
  24. package/lib/module/hooks/useCactusLM.js.map +1 -1
  25. package/lib/module/native/Cactus.js +2 -2
  26. package/lib/module/native/Cactus.js.map +1 -1
  27. package/lib/typescript/src/classes/CactusLM.d.ts +2 -1
  28. package/lib/typescript/src/classes/CactusLM.d.ts.map +1 -1
  29. package/lib/typescript/src/constants/packageVersion.d.ts +1 -1
  30. package/lib/typescript/src/hooks/useCactusLM.d.ts +1 -1
  31. package/lib/typescript/src/hooks/useCactusLM.d.ts.map +1 -1
  32. package/lib/typescript/src/native/Cactus.d.ts +1 -1
  33. package/lib/typescript/src/native/Cactus.d.ts.map +1 -1
  34. package/lib/typescript/src/specs/Cactus.nitro.d.ts +1 -1
  35. package/lib/typescript/src/specs/Cactus.nitro.d.ts.map +1 -1
  36. package/lib/typescript/src/types/CactusLM.d.ts +3 -1
  37. package/lib/typescript/src/types/CactusLM.d.ts.map +1 -1
  38. package/nitrogen/generated/shared/c++/HybridCactusSpec.hpp +1 -1
  39. package/package.json +1 -1
  40. package/src/classes/CactusLM.ts +4 -2
  41. package/src/constants/packageVersion.ts +1 -1
  42. package/src/hooks/useCactusLM.ts +8 -5
  43. package/src/native/Cactus.ts +6 -2
  44. package/src/specs/Cactus.nitro.ts +5 -1
  45. package/src/types/CactusLM.ts +3 -1
@@ -28,8 +28,9 @@ enum class OpType {
28
28
  INPUT, PRECISION_CAST,
29
29
  ADD, ADD_CLIPPED, SUBTRACT, MULTIPLY, DIVIDE,
30
30
  MATMUL, TRANSPOSE, RESHAPE, SLICE, GATHER, EMBEDDING,
31
+ BILINEAR_INTERPOLATION,
31
32
  SUM, MEAN, VARIANCE, MIN, MAX,
32
- RMS_NORM, ROPE, SOFTMAX, ATTENTION, CONV1D_CAUSAL,
33
+ RMS_NORM, ROPE, SOFTMAX, ATTENTION, CONV1D_CAUSAL, CONV1D_K3,
33
34
  SCALAR_ADD, SCALAR_SUBTRACT, SCALAR_MULTIPLY, SCALAR_DIVIDE, SCALAR_EXP, SCALAR_SQRT, SCALAR_COS, SCALAR_SIN,
34
35
  SILU, GELU,
35
36
  SAMPLE, CONCAT,
@@ -139,6 +140,7 @@ struct OpParams {
139
140
  ComputeBackend backend = ComputeBackend::CPU;
140
141
 
141
142
  size_t dilation = 1;
143
+ size_t stride = 1;
142
144
  float temperature = 1.0f;
143
145
  float top_p = 1.0f;
144
146
  size_t top_k = 0;
@@ -146,6 +148,8 @@ struct OpParams {
146
148
 
147
149
  size_t index_value = 0; // For INDEX operation
148
150
  size_t num_classes = 0; // For scatter operations
151
+ size_t dst_height = 0;
152
+ size_t dst_width = 0;
149
153
  };
150
154
 
151
155
  struct GraphNode {
@@ -187,6 +191,12 @@ namespace ValidationUtils {
187
191
  class CactusGraph {
188
192
  public:
189
193
  CactusGraph();
194
+
195
+ struct DebugNodeEntry {
196
+ uint32_t layer_idx;
197
+ std::string name;
198
+ size_t node_id;
199
+ };
190
200
 
191
201
  size_t input(const std::vector<size_t>& shape, Precision precision = Precision::INT8);
192
202
  size_t precision_cast(size_t input, Precision target_precision);
@@ -212,6 +222,7 @@ public:
212
222
 
213
223
  size_t matmul(size_t input1, size_t input2, bool pretransposed_rhs = false, ComputeBackend backend = ComputeBackend::CPU);
214
224
  size_t transpose(size_t input, ComputeBackend backend = ComputeBackend::CPU);
225
+ size_t transposeN(size_t input, const std::vector<size_t>& permutation, ComputeBackend backend = ComputeBackend::CPU);
215
226
  size_t reshape(size_t input, const std::vector<size_t>& new_shape);
216
227
  size_t slice(size_t input, int axis, size_t start, size_t length);
217
228
  size_t index(size_t input, size_t index_value, int dim);
@@ -228,6 +239,7 @@ public:
228
239
  void set_quantization_scale(size_t node_id, float scale);
229
240
  size_t embedding(const std::string& filename, size_t indices);
230
241
  size_t embedding(size_t embedding_tensor, size_t indices);
242
+ size_t bilinear_interpolation(size_t pos_embeds, size_t dst_height, size_t dst_width);
231
243
 
232
244
  size_t layernorm(size_t input, size_t weight, size_t bias, float epsilon = 1e-5f);
233
245
  size_t topk(size_t input, size_t k);
@@ -239,6 +251,7 @@ public:
239
251
  size_t attention(size_t query, size_t key, size_t value, float scale, size_t position_offset, size_t window_size, ComputeBackend backend = ComputeBackend::CPU);
240
252
 
241
253
  size_t conv1d_causal(size_t input, size_t weight, size_t kernel_size, size_t dilation = 1);
254
+ size_t conv1d_k3(size_t input, size_t weight, size_t stride);
242
255
 
243
256
  size_t sample(size_t logits, float temperature = 0.6f, float top_p = 0.95f, size_t top_k = 20);
244
257
 
@@ -252,6 +265,11 @@ public:
252
265
  void execute(const std::string& profile_file = "");
253
266
  void hard_reset();
254
267
  void soft_reset();
268
+
269
+ void register_debug_node(uint32_t layer_idx, const std::string& name, size_t node_id);
270
+ void capture_debug_node(uint32_t layer_idx, const std::string& name, size_t node_id);
271
+ const std::vector<DebugNodeEntry>& get_debug_nodes() const;
272
+ void clear_debug_nodes();
255
273
 
256
274
  size_t add_node(OpType op_type, const std::vector<size_t>& inputs, const std::vector<size_t>& output_shape, const OpParams& params = {});
257
275
  const BufferDesc& get_output_buffer(size_t node_id) const;
@@ -265,6 +283,7 @@ private:
265
283
  size_t next_node_id_;
266
284
  std::vector<std::unique_ptr<GraphFile::MappedFile>> mapped_files_;
267
285
  std::unordered_map<std::string, size_t> weight_cache_;
286
+ std::vector<DebugNodeEntry> debug_nodes_;
268
287
  };
269
288
 
270
289
 
@@ -225,6 +225,27 @@ void cactus_conv1d_causal_depthwise_int8(
225
225
  float weight_scale,
226
226
  float output_scale);
227
227
 
228
+ void cactus_conv1d_f32_k3(
229
+ const float* input,
230
+ const float* weight,
231
+ float* output,
232
+ size_t N, size_t L,
233
+ size_t C_in, size_t C_out,
234
+ size_t stride
235
+ );
236
+
237
+ void cactus_conv1d_f16_k3(
238
+ const __fp16* input,
239
+ const __fp16* weight,
240
+ __fp16* output,
241
+ size_t N, size_t L,
242
+ size_t C_in, size_t C_out,
243
+ size_t stride
244
+ );
245
+
246
+ void cactus_bilinear_interpolation_fp32(const float* input, float* output, size_t src_height, size_t src_width, size_t embed_dim,
247
+ size_t dst_height, size_t dst_width);
248
+
228
249
  void cactus_sample_f32(const float* logits, uint32_t* output, size_t vocab_size,
229
250
  float temperature, float top_p, size_t top_k, size_t random_seed);
230
251
  void cactus_sample_f16(const __fp16* logits, uint32_t* output, size_t vocab_size,
@@ -19,10 +19,12 @@ export class CactusLM {
19
19
  static modelsInfoPath = 'models/info.json';
20
20
  constructor({
21
21
  model,
22
- contextSize
22
+ contextSize,
23
+ corpusDir
23
24
  } = {}) {
24
25
  this.model = model ?? CactusLM.defaultModel;
25
26
  this.contextSize = contextSize ?? CactusLM.defaultContextSize;
27
+ this.corpusDir = corpusDir;
26
28
  }
27
29
  async download({
28
30
  onProgress
@@ -56,7 +58,7 @@ export class CactusLM {
56
58
  }
57
59
  const modelPath = await CactusFileSystem.getModelPath(this.model);
58
60
  try {
59
- await this.cactus.init(modelPath, this.contextSize);
61
+ await this.cactus.init(modelPath, this.contextSize, this.corpusDir);
60
62
  Telemetry.logInit(this.model, true);
61
63
  this.isInitialized = true;
62
64
  } catch (error) {
@@ -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","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":"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","ignoreList":[]}
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":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
 
3
- export const packageVersion = '1.0.1';
3
+ export const packageVersion = '1.0.2';
4
4
  //# sourceMappingURL=packageVersion.js.map
@@ -6,11 +6,13 @@ import { CactusFileSystem } from "../native/index.js";
6
6
  import { getErrorMessage } from "../utils/error.js";
7
7
  export const useCactusLM = ({
8
8
  model = 'qwen3-0.6',
9
- contextSize = 2048
9
+ contextSize = 2048,
10
+ corpusDir = undefined
10
11
  } = {}) => {
11
12
  const [cactusLM, setCactusLM] = useState(() => new CactusLM({
12
13
  model,
13
- contextSize
14
+ contextSize,
15
+ corpusDir
14
16
  }));
15
17
 
16
18
  // State
@@ -29,7 +31,8 @@ export const useCactusLM = ({
29
31
  useEffect(() => {
30
32
  setCactusLM(new CactusLM({
31
33
  model,
32
- contextSize
34
+ contextSize,
35
+ corpusDir
33
36
  }));
34
37
  setCompletion('');
35
38
  setIsGenerating(false);
@@ -54,7 +57,7 @@ export const useCactusLM = ({
54
57
  return () => {
55
58
  mounted = false;
56
59
  };
57
- }, [model, contextSize]);
60
+ }, [model, contextSize, corpusDir]);
58
61
  useEffect(() => {
59
62
  return () => {
60
63
  cactusLM.destroy().catch(() => {});
@@ -181,22 +184,24 @@ export const useCactusLM = ({
181
184
  }, [cactusLM]);
182
185
  const reset = useCallback(async () => {
183
186
  setError(null);
184
- setCompletion('');
185
187
  try {
186
188
  await cactusLM.reset();
187
189
  } catch (e) {
188
190
  setError(getErrorMessage(e));
189
191
  throw e;
192
+ } finally {
193
+ setCompletion('');
190
194
  }
191
195
  }, [cactusLM]);
192
196
  const destroy = useCallback(async () => {
193
197
  setError(null);
194
- setCompletion('');
195
198
  try {
196
199
  await cactusLM.destroy();
197
200
  } catch (e) {
198
201
  setError(getErrorMessage(e));
199
202
  throw e;
203
+ } finally {
204
+ setCompletion('');
200
205
  }
201
206
  }, [cactusLM]);
202
207
  const getModels = useCallback(async ({
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useState","useRef","CactusLM","CactusFileSystem","getErrorMessage","useCactusLM","model","contextSize","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","token","prev","embed","text","stop","reset","getModels","forceRefresh"],"sourceRoot":"../../../src","sources":["hooks/useCactusLM.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,QAAQ,OAAO;AAChE,SAASC,QAAQ,QAAQ,wBAAqB;AAC9C,SAASC,gBAAgB,QAAQ,oBAAW;AAC5C,SAASC,eAAe,QAAQ,mBAAgB;AAYhD,OAAO,MAAMC,WAAW,GAAGA,CAAC;EAC1BC,KAAK,GAAG,WAAW;EACnBC,WAAW,GAAG,IAAI;EAClBC,SAAS,GAAGC;AACE,CAAC,GAAG,CAAC,CAAC,KAAK;EACzB,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGX,QAAQ,CACtC,MAAM,IAAIE,QAAQ,CAAC;IAAEI,KAAK;IAAEC,WAAW;IAAEC;EAAU,CAAC,CACtD,CAAC;;EAED;EACA,MAAM,CAACI,UAAU,EAAEC,aAAa,CAAC,GAAGb,QAAQ,CAAC,EAAE,CAAC;EAChD,MAAM,CAACc,YAAY,EAAEC,eAAe,CAAC,GAAGf,QAAQ,CAAC,KAAK,CAAC;EACvD,MAAM,CAACgB,cAAc,EAAEC,iBAAiB,CAAC,GAAGjB,QAAQ,CAAC,KAAK,CAAC;EAC3D,MAAM,CAACkB,YAAY,EAAEC,eAAe,CAAC,GAAGnB,QAAQ,CAAC,KAAK,CAAC;EACvD,MAAM,CAACoB,aAAa,EAAEC,gBAAgB,CAAC,GAAGrB,QAAQ,CAAC,KAAK,CAAC;EACzD,MAAM,CAACsB,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGvB,QAAQ,CAAC,CAAC,CAAC;EAC3D,MAAM,CAACwB,KAAK,EAAEC,QAAQ,CAAC,GAAGzB,QAAQ,CAAgB,IAAI,CAAC;EAEvD,MAAM0B,eAAe,GAAGzB,MAAM,CAACK,KAAK,CAAC;EACrC,MAAMqB,oBAAoB,GAAG1B,MAAM,CAAC,CAAC,CAAC;EAEtCF,SAAS,CAAC,MAAM;IACd2B,eAAe,CAACE,OAAO,GAAGtB,KAAK;EACjC,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAEXP,SAAS,CAAC,MAAM;IACdY,WAAW,CAAC,IAAIT,QAAQ,CAAC;MAAEI,KAAK;MAAEC,WAAW;MAAEC;IAAU,CAAC,CAAC,CAAC;IAE5DK,aAAa,CAAC,EAAE,CAAC;IACjBE,eAAe,CAAC,KAAK,CAAC;IACtBE,iBAAiB,CAAC,KAAK,CAAC;IACxBE,eAAe,CAAC,KAAK,CAAC;IACtBE,gBAAgB,CAAC,KAAK,CAAC;IACvBE,mBAAmB,CAAC,CAAC,CAAC;IACtBE,QAAQ,CAAC,IAAI,CAAC;IAEd,IAAII,OAAO,GAAG,IAAI;IAClB1B,gBAAgB,CAAC2B,WAAW,CAACxB,KAAK,CAAC,CAChCyB,IAAI,CAAEC,MAAM,IAAK;MAChB,IAAI,CAACH,OAAO,EAAE;QACZ;MACF;MACAV,eAAe,CAACa,MAAM,CAAC;IACzB,CAAC,CAAC,CACDC,KAAK,CAAEC,CAAC,IAAK;MACZ,IAAI,CAACL,OAAO,EAAE;QACZ;MACF;MACAV,eAAe,CAAC,KAAK,CAAC;MACtBM,QAAQ,CAACrB,eAAe,CAAC8B,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEJ,OAAO,MAAM;MACXL,OAAO,GAAG,KAAK;IACjB,CAAC;EACH,CAAC,EAAE,CAACvB,KAAK,EAAEC,WAAW,EAAEC,SAAS,CAAC,CAAC;EAEnCT,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACXW,QAAQ,CAACyB,OAAO,CAAC,CAAC,CAACF,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACpC,CAAC;EACH,CAAC,EAAE,CAACvB,QAAQ,CAAC,CAAC;EAEd,MAAM0B,QAAQ,GAAGtC,WAAW,CAC1B,OAAO;IAAEuC;EAAmC,CAAC,GAAG,CAAC,CAAC,KAAK;IACrD,IAAIjB,aAAa,EAAE;MACjB,MAAMkB,OAAO,GAAG,iCAAiC;MACjDb,QAAQ,CAACa,OAAO,CAAC;MACjB,MAAM,IAAIC,KAAK,CAACD,OAAO,CAAC;IAC1B;IAEA,MAAME,SAAS,GAAGd,eAAe,CAACE,OAAO;IACzC,MAAMa,cAAc,GAAG,EAAEd,oBAAoB,CAACC,OAAO;IAErDH,QAAQ,CAAC,IAAI,CAAC;IACdF,mBAAmB,CAAC,CAAC,CAAC;IACtBF,gBAAgB,CAAC,IAAI,CAAC;IACtB,IAAI;MACF,MAAMX,QAAQ,CAAC0B,QAAQ,CAAC;QACtBC,UAAU,EAAGK,QAAQ,IAAK;UACxB,IACEhB,eAAe,CAACE,OAAO,KAAKY,SAAS,IACrCb,oBAAoB,CAACC,OAAO,KAAKa,cAAc,EAC/C;YACA;UACF;UAEAlB,mBAAmB,CAACmB,QAAQ,CAAC;UAC7BL,UAAU,GAAGK,QAAQ,CAAC;QACxB;MACF,CAAC,CAAC;MAEF,IACEhB,eAAe,CAACE,OAAO,KAAKY,SAAS,IACrCb,oBAAoB,CAACC,OAAO,KAAKa,cAAc,EAC/C;QACA;MACF;MAEAtB,eAAe,CAAC,IAAI,CAAC;IACvB,CAAC,CAAC,OAAOe,CAAC,EAAE;MACV,IACER,eAAe,CAACE,OAAO,KAAKY,SAAS,IACrCb,oBAAoB,CAACC,OAAO,KAAKa,cAAc,EAC/C;QACA;MACF;MAEAhB,QAAQ,CAACrB,eAAe,CAAC8B,CAAC,CAAC,CAAC;MAC5B,MAAMA,CAAC;IACT,CAAC,SAAS;MACR,IACER,eAAe,CAACE,OAAO,KAAKY,SAAS,IACrCb,oBAAoB,CAACC,OAAO,KAAKa,cAAc,EAC/C;QACA;MACF;MAEApB,gBAAgB,CAAC,KAAK,CAAC;MACvBE,mBAAmB,CAAC,CAAC,CAAC;IACxB;EACF,CAAC,EACD,CAACb,QAAQ,EAAEU,aAAa,CAC1B,CAAC;EAED,MAAMuB,IAAI,GAAG7C,WAAW,CAAC,YAAY;IACnC,IAAIkB,cAAc,EAAE;MAClB,MAAMsB,OAAO,GAAG,kCAAkC;MAClDb,QAAQ,CAACa,OAAO,CAAC;MACjB,MAAM,IAAIC,KAAK,CAACD,OAAO,CAAC;IAC1B;IAEAb,QAAQ,CAAC,IAAI,CAAC;IACdR,iBAAiB,CAAC,IAAI,CAAC;IACvB,IAAI;MACF,MAAMP,QAAQ,CAACiC,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC,OAAOT,CAAC,EAAE;MACVT,QAAQ,CAACrB,eAAe,CAAC8B,CAAC,CAAC,CAAC;MAC5B,MAAMA,CAAC;IACT,CAAC,SAAS;MACRjB,iBAAiB,CAAC,KAAK,CAAC;IAC1B;EACF,CAAC,EAAE,CAACP,QAAQ,EAAEM,cAAc,CAAC,CAAC;EAE9B,MAAM4B,QAAQ,GAAG9C,WAAW,CAC1B,OAAO;IACL+C,QAAQ;IACRC,OAAO;IACPC,KAAK;IACLC;EACsB,CAAC,KAAsC;IAC7D,IAAIlC,YAAY,EAAE;MAChB,MAAMwB,OAAO,GAAG,gCAAgC;MAChDb,QAAQ,CAACa,OAAO,CAAC;MACjB,MAAM,IAAIC,KAAK,CAACD,OAAO,CAAC;IAC1B;IAEAb,QAAQ,CAAC,IAAI,CAAC;IACdZ,aAAa,CAAC,EAAE,CAAC;IACjBE,eAAe,CAAC,IAAI,CAAC;IACrB,IAAI;MACF,OAAO,MAAML,QAAQ,CAACkC,QAAQ,CAAC;QAC7BC,QAAQ;QACRC,OAAO;QACPC,KAAK;QACLC,OAAO,EAAGC,KAAK,IAAK;UAClBpC,aAAa,CAAEqC,IAAI,IAAKA,IAAI,GAAGD,KAAK,CAAC;UACrCD,OAAO,GAAGC,KAAK,CAAC;QAClB;MACF,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOf,CAAC,EAAE;MACVT,QAAQ,CAACrB,eAAe,CAAC8B,CAAC,CAAC,CAAC;MAC5B,MAAMA,CAAC;IACT,CAAC,SAAS;MACRnB,eAAe,CAAC,KAAK,CAAC;IACxB;EACF,CAAC,EACD,CAACL,QAAQ,EAAEI,YAAY,CACzB,CAAC;EAED,MAAMqC,KAAK,GAAGrD,WAAW,CACvB,OAAO;IAAEsD;EAA0B,CAAC,KAAmC;IACrE,IAAItC,YAAY,EAAE;MAChB,MAAMwB,OAAO,GAAG,gCAAgC;MAChDb,QAAQ,CAACa,OAAO,CAAC;MACjB,MAAM,IAAIC,KAAK,CAACD,OAAO,CAAC;IAC1B;IAEAb,QAAQ,CAAC,IAAI,CAAC;IACdV,eAAe,CAAC,IAAI,CAAC;IACrB,IAAI;MACF,OAAO,MAAML,QAAQ,CAACyC,KAAK,CAAC;QAAEC;MAAK,CAAC,CAAC;IACvC,CAAC,CAAC,OAAOlB,CAAC,EAAE;MACVT,QAAQ,CAACrB,eAAe,CAAC8B,CAAC,CAAC,CAAC;MAC5B,MAAMA,CAAC;IACT,CAAC,SAAS;MACRnB,eAAe,CAAC,KAAK,CAAC;IACxB;EACF,CAAC,EACD,CAACL,QAAQ,EAAEI,YAAY,CACzB,CAAC;EAED,MAAMuC,IAAI,GAAGvD,WAAW,CAAC,YAAY;IACnC2B,QAAQ,CAAC,IAAI,CAAC;IACd,IAAI;MACF,MAAMf,QAAQ,CAAC2C,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC,OAAOnB,CAAC,EAAE;MACVT,QAAQ,CAACrB,eAAe,CAAC8B,CAAC,CAAC,CAAC;MAC5B,MAAMA,CAAC;IACT;EACF,CAAC,EAAE,CAACxB,QAAQ,CAAC,CAAC;EAEd,MAAM4C,KAAK,GAAGxD,WAAW,CAAC,YAAY;IACpC2B,QAAQ,CAAC,IAAI,CAAC;IACd,IAAI;MACF,MAAMf,QAAQ,CAAC4C,KAAK,CAAC,CAAC;IACxB,CAAC,CAAC,OAAOpB,CAAC,EAAE;MACVT,QAAQ,CAACrB,eAAe,CAAC8B,CAAC,CAAC,CAAC;MAC5B,MAAMA,CAAC;IACT,CAAC,SAAS;MACRrB,aAAa,CAAC,EAAE,CAAC;IACnB;EACF,CAAC,EAAE,CAACH,QAAQ,CAAC,CAAC;EAEd,MAAMyB,OAAO,GAAGrC,WAAW,CAAC,YAAY;IACtC2B,QAAQ,CAAC,IAAI,CAAC;IACd,IAAI;MACF,MAAMf,QAAQ,CAACyB,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAC,OAAOD,CAAC,EAAE;MACVT,QAAQ,CAACrB,eAAe,CAAC8B,CAAC,CAAC,CAAC;MAC5B,MAAMA,CAAC;IACT,CAAC,SAAS;MACRrB,aAAa,CAAC,EAAE,CAAC;IACnB;EACF,CAAC,EAAE,CAACH,QAAQ,CAAC,CAAC;EAEd,MAAM6C,SAAS,GAAGzD,WAAW,CAC3B,OAAO;IAAE0D;EAAsC,CAAC,GAAG,CAAC,CAAC,KAEhD;IACH/B,QAAQ,CAAC,IAAI,CAAC;IACd,IAAI;MACF,OAAO,MAAMf,QAAQ,CAAC6C,SAAS,CAAC;QAAEC;MAAa,CAAC,CAAC;IACnD,CAAC,CAAC,OAAOtB,CAAC,EAAE;MACVT,QAAQ,CAACrB,eAAe,CAAC8B,CAAC,CAAC,CAAC;MAC5B,MAAMA,CAAC;IACT;EACF,CAAC,EACD,CAACxB,QAAQ,CACX,CAAC;EAED,OAAO;IACLE,UAAU;IACVE,YAAY;IACZE,cAAc;IACdE,YAAY;IACZE,aAAa;IACbE,gBAAgB;IAChBE,KAAK;IAELY,QAAQ;IACRO,IAAI;IACJC,QAAQ;IACRO,KAAK;IACLG,KAAK;IACLD,IAAI;IACJlB,OAAO;IACPoB;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -3,8 +3,8 @@
3
3
  import { NitroModules } from 'react-native-nitro-modules';
4
4
  export class Cactus {
5
5
  hybridCactus = NitroModules.createHybridObject('Cactus');
6
- init(modelPath, contextSize) {
7
- return this.hybridCactus.init(modelPath, contextSize);
6
+ init(modelPath, contextSize, corpusDir) {
7
+ return this.hybridCactus.init(modelPath, contextSize, corpusDir);
8
8
  }
9
9
  async complete(messages, responseBufferSize, options, tools, callback) {
10
10
  const messagesJson = JSON.stringify(messages);
@@ -1 +1 @@
1
- {"version":3,"names":["NitroModules","Cactus","hybridCactus","createHybridObject","init","modelPath","contextSize","complete","messages","responseBufferSize","options","tools","callback","messagesJson","JSON","stringify","optionsJson","temperature","top_p","topP","top_k","topK","max_tokens","maxTokens","stop_sequences","stopSequences","undefined","toolsJson","response","parsed","parse","success","functionCalls","function_calls","timeToFirstTokenMs","time_to_first_token_ms","totalTimeMs","total_time_ms","tokensPerSecond","tokens_per_second","prefillTokens","prefill_tokens","decodeTokens","decode_tokens","totalTokens","total_tokens","Error","embed","text","embeddingBufferSize","reset","stop","destroy"],"sourceRoot":"../../../src","sources":["native/Cactus.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AASzD,OAAO,MAAMC,MAAM,CAAC;EACDC,YAAY,GAC3BF,YAAY,CAACG,kBAAkB,CAAa,QAAQ,CAAC;EAEhDC,IAAIA,CAACC,SAAiB,EAAEC,WAAmB,EAAiB;IACjE,OAAO,IAAI,CAACJ,YAAY,CAACE,IAAI,CAACC,SAAS,EAAEC,WAAW,CAAC;EACvD;EAEA,MAAaC,QAAQA,CACnBC,QAAmB,EACnBC,kBAA0B,EAC1BC,OAAiB,EACjBC,KAAc,EACdC,QAAmD,EAClB;IACjC,MAAMC,YAAY,GAAGC,IAAI,CAACC,SAAS,CAACP,QAAQ,CAAC;IAC7C,MAAMQ,WAAW,GAAGN,OAAO,GACvBI,IAAI,CAACC,SAAS,CAAC;MACbE,WAAW,EAAEP,OAAO,CAACO,WAAW;MAChCC,KAAK,EAAER,OAAO,CAACS,IAAI;MACnBC,KAAK,EAAEV,OAAO,CAACW,IAAI;MACnBC,UAAU,EAAEZ,OAAO,CAACa,SAAS;MAC7BC,cAAc,EAAEd,OAAO,CAACe;IAC1B,CAAC,CAAC,GACFC,SAAS;IACb,MAAMC,SAAS,GAAGb,IAAI,CAACC,SAAS,CAACJ,KAAK,CAAC;IAEvC,MAAMiB,QAAQ,GAAG,MAAM,IAAI,CAAC1B,YAAY,CAACK,QAAQ,CAC/CM,YAAY,EACZJ,kBAAkB,EAClBO,WAAW,EACXW,SAAS,EACTf,QACF,CAAC;IAED,IAAI;MACF,MAAMiB,MAAM,GAAGf,IAAI,CAACgB,KAAK,CAACF,QAAQ,CAAC;MAEnC,OAAO;QACLG,OAAO,EAAEF,MAAM,CAACE,OAAO;QACvBH,QAAQ,EAAEC,MAAM,CAACD,QAAQ;QACzBI,aAAa,EAAEH,MAAM,CAACI,cAAc;QACpCC,kBAAkB,EAAEL,MAAM,CAACM,sBAAsB;QACjDC,WAAW,EAAEP,MAAM,CAACQ,aAAa;QACjCC,eAAe,EAAET,MAAM,CAACU,iBAAiB;QACzCC,aAAa,EAAEX,MAAM,CAACY,cAAc;QACpCC,YAAY,EAAEb,MAAM,CAACc,aAAa;QAClCC,WAAW,EAAEf,MAAM,CAACgB;MACtB,CAAC;IACH,CAAC,CAAC,MAAM;MACN,MAAM,IAAIC,KAAK,CAAC,qCAAqC,CAAC;IACxD;EACF;EAEOC,KAAKA,CAACC,IAAY,EAAEC,mBAA2B,EAAqB;IACzE,OAAO,IAAI,CAAC/C,YAAY,CAAC6C,KAAK,CAACC,IAAI,EAAEC,mBAAmB,CAAC;EAC3D;EAEOC,KAAKA,CAAA,EAAkB;IAC5B,OAAO,IAAI,CAAChD,YAAY,CAACgD,KAAK,CAAC,CAAC;EAClC;EAEOC,IAAIA,CAAA,EAAkB;IAC3B,OAAO,IAAI,CAACjD,YAAY,CAACiD,IAAI,CAAC,CAAC;EACjC;EAEOC,OAAOA,CAAA,EAAkB;IAC9B,OAAO,IAAI,CAAClD,YAAY,CAACkD,OAAO,CAAC,CAAC;EACpC;AACF","ignoreList":[]}
1
+ {"version":3,"names":["NitroModules","Cactus","hybridCactus","createHybridObject","init","modelPath","contextSize","corpusDir","complete","messages","responseBufferSize","options","tools","callback","messagesJson","JSON","stringify","optionsJson","temperature","top_p","topP","top_k","topK","max_tokens","maxTokens","stop_sequences","stopSequences","undefined","toolsJson","response","parsed","parse","success","functionCalls","function_calls","timeToFirstTokenMs","time_to_first_token_ms","totalTimeMs","total_time_ms","tokensPerSecond","tokens_per_second","prefillTokens","prefill_tokens","decodeTokens","decode_tokens","totalTokens","total_tokens","Error","embed","text","embeddingBufferSize","reset","stop","destroy"],"sourceRoot":"../../../src","sources":["native/Cactus.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AASzD,OAAO,MAAMC,MAAM,CAAC;EACDC,YAAY,GAC3BF,YAAY,CAACG,kBAAkB,CAAa,QAAQ,CAAC;EAEhDC,IAAIA,CACTC,SAAiB,EACjBC,WAAmB,EACnBC,SAAkB,EACH;IACf,OAAO,IAAI,CAACL,YAAY,CAACE,IAAI,CAACC,SAAS,EAAEC,WAAW,EAAEC,SAAS,CAAC;EAClE;EAEA,MAAaC,QAAQA,CACnBC,QAAmB,EACnBC,kBAA0B,EAC1BC,OAAiB,EACjBC,KAAc,EACdC,QAAmD,EAClB;IACjC,MAAMC,YAAY,GAAGC,IAAI,CAACC,SAAS,CAACP,QAAQ,CAAC;IAC7C,MAAMQ,WAAW,GAAGN,OAAO,GACvBI,IAAI,CAACC,SAAS,CAAC;MACbE,WAAW,EAAEP,OAAO,CAACO,WAAW;MAChCC,KAAK,EAAER,OAAO,CAACS,IAAI;MACnBC,KAAK,EAAEV,OAAO,CAACW,IAAI;MACnBC,UAAU,EAAEZ,OAAO,CAACa,SAAS;MAC7BC,cAAc,EAAEd,OAAO,CAACe;IAC1B,CAAC,CAAC,GACFC,SAAS;IACb,MAAMC,SAAS,GAAGb,IAAI,CAACC,SAAS,CAACJ,KAAK,CAAC;IAEvC,MAAMiB,QAAQ,GAAG,MAAM,IAAI,CAAC3B,YAAY,CAACM,QAAQ,CAC/CM,YAAY,EACZJ,kBAAkB,EAClBO,WAAW,EACXW,SAAS,EACTf,QACF,CAAC;IAED,IAAI;MACF,MAAMiB,MAAM,GAAGf,IAAI,CAACgB,KAAK,CAACF,QAAQ,CAAC;MAEnC,OAAO;QACLG,OAAO,EAAEF,MAAM,CAACE,OAAO;QACvBH,QAAQ,EAAEC,MAAM,CAACD,QAAQ;QACzBI,aAAa,EAAEH,MAAM,CAACI,cAAc;QACpCC,kBAAkB,EAAEL,MAAM,CAACM,sBAAsB;QACjDC,WAAW,EAAEP,MAAM,CAACQ,aAAa;QACjCC,eAAe,EAAET,MAAM,CAACU,iBAAiB;QACzCC,aAAa,EAAEX,MAAM,CAACY,cAAc;QACpCC,YAAY,EAAEb,MAAM,CAACc,aAAa;QAClCC,WAAW,EAAEf,MAAM,CAACgB;MACtB,CAAC;IACH,CAAC,CAAC,MAAM;MACN,MAAM,IAAIC,KAAK,CAAC,qCAAqC,CAAC;IACxD;EACF;EAEOC,KAAKA,CAACC,IAAY,EAAEC,mBAA2B,EAAqB;IACzE,OAAO,IAAI,CAAChD,YAAY,CAAC8C,KAAK,CAACC,IAAI,EAAEC,mBAAmB,CAAC;EAC3D;EAEOC,KAAKA,CAAA,EAAkB;IAC5B,OAAO,IAAI,CAACjD,YAAY,CAACiD,KAAK,CAAC,CAAC;EAClC;EAEOC,IAAIA,CAAA,EAAkB;IAC3B,OAAO,IAAI,CAAClD,YAAY,CAACkD,IAAI,CAAC,CAAC;EACjC;EAEOC,OAAOA,CAAA,EAAkB;IAC9B,OAAO,IAAI,CAACnD,YAAY,CAACmD,OAAO,CAAC,CAAC;EACpC;AACF","ignoreList":[]}
@@ -4,6 +4,7 @@ export declare class CactusLM {
4
4
  private readonly cactus;
5
5
  private readonly model;
6
6
  private readonly contextSize;
7
+ private readonly corpusDir?;
7
8
  private isDownloading;
8
9
  private isInitialized;
9
10
  private isGenerating;
@@ -12,7 +13,7 @@ export declare class CactusLM {
12
13
  private static readonly defaultCompleteOptions;
13
14
  private static readonly defaultEmbedBufferSize;
14
15
  private static readonly modelsInfoPath;
15
- constructor({ model, contextSize }?: CactusLMParams);
16
+ constructor({ model, contextSize, corpusDir }?: CactusLMParams);
16
17
  download({ onProgress, }?: CactusLMDownloadParams): Promise<void>;
17
18
  init(): Promise<void>;
18
19
  complete({ messages, options, tools, onToken, }: CactusLMCompleteParams): Promise<CactusLMCompleteResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"CactusLM.d.ts","sourceRoot":"","sources":["../../../../src/classes/CactusLM.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAMxD,qBAAa,QAAQ;IACnB,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,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,sBAAsB,CAAQ;IAEtD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAsB;gBAEhD,EAAE,KAAK,EAAE,WAAW,EAAE,GAAE,cAAmB;IAK1C,QAAQ,CAAC,EACpB,UAAU,GACX,GAAE,sBAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBjC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBrB,QAAQ,CAAC,EACpB,QAAQ,EACR,OAAO,EACP,KAAK,EACL,OAAO,GACR,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAoC9C,KAAK,CAAC,EACjB,IAAI,GACL,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAuB9C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAWxB,SAAS,CAAC,EACrB,YAAoB,GACrB,GAAE,uBAA4B,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CA4BzD"}
1
+ {"version":3,"file":"CactusLM.d.ts","sourceRoot":"","sources":["../../../../src/classes/CactusLM.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAMxD,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,sBAAsB,CAAQ;IAEtD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAsB;gBAEhD,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,GAAE,cAAmB;IAMrD,QAAQ,CAAC,EACpB,UAAU,GACX,GAAE,sBAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBjC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBrB,QAAQ,CAAC,EACpB,QAAQ,EACR,OAAO,EACP,KAAK,EACL,OAAO,GACR,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAoC9C,KAAK,CAAC,EACjB,IAAI,GACL,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAuB9C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAWxB,SAAS,CAAC,EACrB,YAAoB,GACrB,GAAE,uBAA4B,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CA4BzD"}
@@ -1,2 +1,2 @@
1
- export declare const packageVersion = "1.0.1";
1
+ export declare const packageVersion = "1.0.2";
2
2
  //# sourceMappingURL=packageVersion.d.ts.map
@@ -1,6 +1,6 @@
1
1
  import type { CactusLMParams, CactusLMCompleteResult, CactusLMEmbedParams, CactusLMEmbedResult, CactusLMGetModelsParams, CactusLMCompleteParams, CactusLMDownloadParams } from '../types/CactusLM';
2
2
  import type { CactusModel } from '../types/CactusModel';
3
- export declare const useCactusLM: ({ model, contextSize, }?: CactusLMParams) => {
3
+ export declare const useCactusLM: ({ model, contextSize, corpusDir, }?: 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,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,eAAO,MAAM,WAAW,GAAI,0BAGzB,cAAmB;;;;;;;;gCA4DK,sBAAsB;;uDAsF1C,sBAAsB,KAAG,OAAO,CAAC,sBAAsB,CAAC;sBA+B1C,mBAAmB,KAAG,OAAO,CAAC,mBAAmB,CAAC;;;;mCAsD1C,uBAAuB,KAAQ,OAAO,CAC7D,WAAW,EAAE,CACd;CA8BJ,CAAC"}
1
+ {"version":3,"file":"useCactusLM.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useCactusLM.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,eAAO,MAAM,WAAW,GAAI,qCAIzB,cAAmB;;;;;;;;gCA4DK,sBAAsB;;uDAsF1C,sBAAsB,KAAG,OAAO,CAAC,sBAAsB,CAAC;sBA+B1C,mBAAmB,KAAG,OAAO,CAAC,mBAAmB,CAAC;;;;mCAwD1C,uBAAuB,KAAQ,OAAO,CAC7D,WAAW,EAAE,CACd;CA8BJ,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { CactusLMCompleteResult, Message, Options, Tool } from '../types/CactusLM';
2
2
  export declare class Cactus {
3
3
  private readonly hybridCactus;
4
- init(modelPath: string, contextSize: number): Promise<void>;
4
+ init(modelPath: string, contextSize: number, corpusDir?: string): Promise<void>;
5
5
  complete(messages: Message[], responseBufferSize: number, options?: Options, tools?: Tool[], callback?: (token: string, tokenId: number) => void): Promise<CactusLMCompleteResult>;
6
6
  embed(text: string, embeddingBufferSize: number): Promise<number[]>;
7
7
  reset(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"Cactus.d.ts","sourceRoot":"","sources":["../../../../src/native/Cactus.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,sBAAsB,EACtB,OAAO,EACP,OAAO,EACP,IAAI,EACL,MAAM,mBAAmB,CAAC;AAE3B,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAC2B;IAEjD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,QAAQ,CACnB,QAAQ,EAAE,OAAO,EAAE,EACnB,kBAAkB,EAAE,MAAM,EAC1B,OAAO,CAAC,EAAE,OAAO,EACjB,KAAK,CAAC,EAAE,IAAI,EAAE,EACd,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAClD,OAAO,CAAC,sBAAsB,CAAC;IAwC3B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAInE,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":"AAEA,OAAO,KAAK,EACV,sBAAsB,EACtB,OAAO,EACP,OAAO,EACP,IAAI,EACL,MAAM,mBAAmB,CAAC;AAE3B,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,OAAO,EACjB,KAAK,CAAC,EAAE,IAAI,EAAE,EACd,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAClD,OAAO,CAAC,sBAAsB,CAAC;IAwC3B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAInE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC"}
@@ -3,7 +3,7 @@ export interface Cactus extends HybridObject<{
3
3
  ios: 'c++';
4
4
  android: 'c++';
5
5
  }> {
6
- init(modelPath: string, contextSize: number): Promise<void>;
6
+ init(modelPath: string, contextSize: number, corpusDir?: string): Promise<void>;
7
7
  complete(messagesJson: string, responseBufferSize: number, optionsJson?: string, toolsJson?: string, callback?: (token: string, tokenId: number) => void): Promise<string>;
8
8
  embed(text: string, embeddingBufferSize: number): Promise<number[]>;
9
9
  reset(): 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,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,QAAQ,CACN,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM,EAC1B,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAClD,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B"}
1
+ {"version":3,"file":"Cactus.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/Cactus.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,MAAO,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;IAC1E,IAAI,CACF,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,QAAQ,CACN,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM,EAC1B,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAClD,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B"}
@@ -1,13 +1,15 @@
1
1
  export interface CactusLMParams {
2
2
  model?: string;
3
3
  contextSize?: number;
4
+ corpusDir?: string;
4
5
  }
5
6
  export interface CactusLMDownloadParams {
6
7
  onProgress?: (progress: number) => void;
7
8
  }
8
9
  export interface Message {
9
10
  role: 'user' | 'assistant' | 'system';
10
- content: string;
11
+ content?: string;
12
+ images?: string[];
11
13
  }
12
14
  export interface Options {
13
15
  temperature?: number;
@@ -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;CACtB;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,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,UAAU,CAAC;IACjB,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,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAC;KACnC,EAAE,CAAC;IACJ,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB"}
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,OAAO;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,UAAU,CAAC;IACjB,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,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAC;KACnC,EAAE,CAAC;IACJ,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB"}
@@ -52,7 +52,7 @@ namespace margelo::nitro::cactus {
52
52
 
53
53
  public:
54
54
  // Methods
55
- virtual std::shared_ptr<Promise<void>> init(const std::string& modelPath, double contextSize) = 0;
55
+ virtual std::shared_ptr<Promise<void>> init(const std::string& modelPath, double contextSize, const std::optional<std::string>& corpusDir) = 0;
56
56
  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;
57
57
  virtual std::shared_ptr<Promise<std::vector<double>>> embed(const std::string& text, double embeddingBufferSize) = 0;
58
58
  virtual std::shared_ptr<Promise<void>> reset() = 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cactus-react-native",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
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",
@@ -19,6 +19,7 @@ export class CactusLM {
19
19
 
20
20
  private readonly model: string;
21
21
  private readonly contextSize: number;
22
+ private readonly corpusDir?: string;
22
23
 
23
24
  private isDownloading = false;
24
25
  private isInitialized = false;
@@ -33,9 +34,10 @@ export class CactusLM {
33
34
 
34
35
  private static readonly modelsInfoPath = 'models/info.json';
35
36
 
36
- constructor({ model, contextSize }: CactusLMParams = {}) {
37
+ constructor({ model, contextSize, corpusDir }: CactusLMParams = {}) {
37
38
  this.model = model ?? CactusLM.defaultModel;
38
39
  this.contextSize = contextSize ?? CactusLM.defaultContextSize;
40
+ this.corpusDir = corpusDir;
39
41
  }
40
42
 
41
43
  public async download({
@@ -75,7 +77,7 @@ export class CactusLM {
75
77
  const modelPath = await CactusFileSystem.getModelPath(this.model);
76
78
 
77
79
  try {
78
- await this.cactus.init(modelPath, this.contextSize);
80
+ await this.cactus.init(modelPath, this.contextSize, this.corpusDir);
79
81
  Telemetry.logInit(this.model, true);
80
82
  this.isInitialized = true;
81
83
  } catch (error) {
@@ -1 +1 @@
1
- export const packageVersion = '1.0.1';
1
+ export const packageVersion = '1.0.2';
@@ -16,9 +16,10 @@ import type { CactusModel } from '../types/CactusModel';
16
16
  export const useCactusLM = ({
17
17
  model = 'qwen3-0.6',
18
18
  contextSize = 2048,
19
+ corpusDir = undefined,
19
20
  }: CactusLMParams = {}) => {
20
21
  const [cactusLM, setCactusLM] = useState(
21
- () => new CactusLM({ model, contextSize })
22
+ () => new CactusLM({ model, contextSize, corpusDir })
22
23
  );
23
24
 
24
25
  // State
@@ -38,7 +39,7 @@ export const useCactusLM = ({
38
39
  }, [model]);
39
40
 
40
41
  useEffect(() => {
41
- setCactusLM(new CactusLM({ model, contextSize }));
42
+ setCactusLM(new CactusLM({ model, contextSize, corpusDir }));
42
43
 
43
44
  setCompletion('');
44
45
  setIsGenerating(false);
@@ -67,7 +68,7 @@ export const useCactusLM = ({
67
68
  return () => {
68
69
  mounted = false;
69
70
  };
70
- }, [model, contextSize]);
71
+ }, [model, contextSize, corpusDir]);
71
72
 
72
73
  useEffect(() => {
73
74
  return () => {
@@ -226,23 +227,25 @@ export const useCactusLM = ({
226
227
 
227
228
  const reset = useCallback(async () => {
228
229
  setError(null);
229
- setCompletion('');
230
230
  try {
231
231
  await cactusLM.reset();
232
232
  } catch (e) {
233
233
  setError(getErrorMessage(e));
234
234
  throw e;
235
+ } finally {
236
+ setCompletion('');
235
237
  }
236
238
  }, [cactusLM]);
237
239
 
238
240
  const destroy = useCallback(async () => {
239
241
  setError(null);
240
- setCompletion('');
241
242
  try {
242
243
  await cactusLM.destroy();
243
244
  } catch (e) {
244
245
  setError(getErrorMessage(e));
245
246
  throw e;
247
+ } finally {
248
+ setCompletion('');
246
249
  }
247
250
  }, [cactusLM]);
248
251
 
@@ -11,8 +11,12 @@ export class Cactus {
11
11
  private readonly hybridCactus =
12
12
  NitroModules.createHybridObject<CactusSpec>('Cactus');
13
13
 
14
- public init(modelPath: string, contextSize: number): Promise<void> {
15
- return this.hybridCactus.init(modelPath, contextSize);
14
+ public init(
15
+ modelPath: string,
16
+ contextSize: number,
17
+ corpusDir?: string
18
+ ): Promise<void> {
19
+ return this.hybridCactus.init(modelPath, contextSize, corpusDir);
16
20
  }
17
21
 
18
22
  public async complete(
@@ -1,7 +1,11 @@
1
1
  import type { HybridObject } from 'react-native-nitro-modules';
2
2
 
3
3
  export interface Cactus extends HybridObject<{ ios: 'c++'; android: 'c++' }> {
4
- init(modelPath: string, contextSize: number): Promise<void>;
4
+ init(
5
+ modelPath: string,
6
+ contextSize: number,
7
+ corpusDir?: string
8
+ ): Promise<void>;
5
9
  complete(
6
10
  messagesJson: string,
7
11
  responseBufferSize: number,
@@ -1,6 +1,7 @@
1
1
  export interface CactusLMParams {
2
2
  model?: string;
3
3
  contextSize?: number;
4
+ corpusDir?: string;
4
5
  }
5
6
 
6
7
  export interface CactusLMDownloadParams {
@@ -9,7 +10,8 @@ export interface CactusLMDownloadParams {
9
10
 
10
11
  export interface Message {
11
12
  role: 'user' | 'assistant' | 'system';
12
- content: string;
13
+ content?: string;
14
+ images?: string[];
13
15
  }
14
16
 
15
17
  export interface Options {