cactus-react-native 0.2.7 → 0.2.9

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 (43) hide show
  1. package/android/src/main/jniLibs/arm64-v8a/libcactus.so +0 -0
  2. package/android/src/main/jniLibs/arm64-v8a/libcactus_v8.so +0 -0
  3. package/android/src/main/jniLibs/arm64-v8a/libcactus_v8_2.so +0 -0
  4. package/android/src/main/jniLibs/arm64-v8a/libcactus_v8_2_dotprod.so +0 -0
  5. package/android/src/main/jniLibs/arm64-v8a/libcactus_v8_2_dotprod_i8mm.so +0 -0
  6. package/android/src/main/jniLibs/arm64-v8a/libcactus_v8_2_i8mm.so +0 -0
  7. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/minja/chat-template.hpp +1 -0
  8. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Info.plist +0 -0
  9. package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/minja/chat-template.hpp +1 -0
  10. package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Info.plist +0 -0
  11. package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/_CodeSignature/CodeResources +1 -1
  12. package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/cactus +0 -0
  13. package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/minja/chat-template.hpp +1 -0
  14. package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Info.plist +0 -0
  15. package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/minja/chat-template.hpp +1 -0
  16. package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Info.plist +0 -0
  17. package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/_CodeSignature/CodeResources +1 -1
  18. package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/cactus +0 -0
  19. package/lib/commonjs/lm.js +70 -0
  20. package/lib/commonjs/lm.js.map +1 -1
  21. package/lib/commonjs/remote.js +36 -89
  22. package/lib/commonjs/remote.js.map +1 -1
  23. package/lib/commonjs/tools.js.map +1 -1
  24. package/lib/commonjs/vlm.js +2 -2
  25. package/lib/commonjs/vlm.js.map +1 -1
  26. package/lib/module/lm.js +71 -1
  27. package/lib/module/lm.js.map +1 -1
  28. package/lib/module/remote.js +36 -89
  29. package/lib/module/remote.js.map +1 -1
  30. package/lib/module/tools.js.map +1 -1
  31. package/lib/module/vlm.js +2 -2
  32. package/lib/module/vlm.js.map +1 -1
  33. package/lib/typescript/lm.d.ts +5 -1
  34. package/lib/typescript/lm.d.ts.map +1 -1
  35. package/lib/typescript/remote.d.ts +5 -4
  36. package/lib/typescript/remote.d.ts.map +1 -1
  37. package/lib/typescript/tools.d.ts +15 -14
  38. package/lib/typescript/tools.d.ts.map +1 -1
  39. package/package.json +1 -1
  40. package/src/lm.ts +85 -2
  41. package/src/remote.ts +43 -105
  42. package/src/tools.ts +14 -1
  43. package/src/vlm.ts +2 -2
@@ -5,87 +5,48 @@ export function setCactusToken(token) {
5
5
  _cactusToken = token;
6
6
  }
7
7
  export async function getVertexAIEmbedding(text) {
8
- if (_cactusToken === null) {
9
- throw new Error('CactusToken not set. Please call CactusLM.init with cactusToken parameter.');
10
- }
11
- const projectId = 'cactus-v1-452518';
12
- const location = 'us-central1';
13
- const modelId = 'text-embedding-005';
14
- const endpoint = `https://${location}-aiplatform.googleapis.com/v1/projects/${projectId}/locations/${location}/publishers/google/models/${modelId}:predict`;
15
- const headers = {
16
- 'Authorization': `Bearer ${_cactusToken}`,
17
- 'Content-Type': 'application/json'
18
- };
19
- const requestBody = {
20
- instances: [{
21
- content: text
22
- }]
23
- };
24
- const response = await fetch(endpoint, {
25
- method: 'POST',
26
- headers,
27
- body: JSON.stringify(requestBody)
28
- });
29
- if (response.status === 401) {
30
- _cactusToken = null;
31
- throw new Error('Authentication failed. Please update your cactusToken.');
32
- } else if (!response.ok) {
33
- const errorText = await response.text();
34
- throw new Error(`HTTP ${response.status}: ${errorText}`);
35
- }
36
- const responseBody = await response.json();
37
- if (responseBody.error) {
38
- throw new Error(`API Error: ${responseBody.error.message}`);
39
- }
40
- const predictions = responseBody.predictions;
41
- if (!predictions || predictions.length === 0) {
42
- throw new Error('No predictions in response');
43
- }
44
- const embeddings = predictions[0].embeddings;
45
- const values = embeddings.values;
46
- return values;
8
+ text = text;
9
+ throw new Error('Remote embedding is not currently supported. The Cactus library is in active development - if you need this functionality, please contact us at founders@cactuscompute.com');
47
10
  }
48
- export async function getVertexAICompletion(textPrompt, imageData, imagePath, mimeType) {
11
+ export async function getVertexAICompletion(messages, imageData, imagePath, mimeType) {
49
12
  if (_cactusToken === null) {
50
13
  throw new Error('CactusToken not set. Please call CactusVLM.init with cactusToken parameter.');
51
14
  }
52
- const projectId = 'cactus-v1-452518';
53
- const location = 'global';
54
- const modelId = 'gemini-2.5-flash-lite-preview-06-17';
55
- const endpoint = `https://aiplatform.googleapis.com/v1/projects/${projectId}/locations/${location}/publishers/google/models/${modelId}:generateContent`;
15
+ const endpoint = 'https://openrouter.ai/api/v1/chat/completions';
56
16
  const headers = {
57
17
  'Authorization': `Bearer ${_cactusToken}`,
58
18
  'Content-Type': 'application/json'
59
19
  };
60
- const parts = [];
20
+ const requestBody = {
21
+ model: 'google/gemini-2.5-flash-lite',
22
+ messages: messages
23
+ };
24
+ let imageUrl = '';
61
25
  if (imageData) {
62
- const detectedMimeType = mimeType || 'image/jpeg';
63
- parts.push({
64
- inlineData: {
65
- mimeType: detectedMimeType,
66
- data: imageData
67
- }
68
- });
26
+ imageUrl = `data:${mimeType || 'image/jpeg'};base64,${imageData}`;
69
27
  } else if (imagePath) {
70
- const detectedMimeType = mimeType || detectMimeType(imagePath);
71
28
  const RNFS = require('react-native-fs');
72
29
  const base64Data = await RNFS.readFile(imagePath, 'base64');
73
- parts.push({
74
- inlineData: {
75
- mimeType: detectedMimeType,
76
- data: base64Data
77
- }
78
- });
30
+ imageUrl = `data:${mimeType || detectMimeType(imagePath)};base64,${base64Data}`;
79
31
  }
80
- parts.push({
81
- text: textPrompt
82
- });
83
- const requestBody = {
84
- contents: {
85
- role: 'user',
86
- parts: parts
32
+ if (imageUrl) {
33
+ if (requestBody.messages[requestBody.messages.length - 1]?.role === 'user') {
34
+ requestBody.messages[requestBody.messages.length - 1] = {
35
+ role: 'user',
36
+ content: [{
37
+ type: 'text',
38
+ text: requestBody.messages[requestBody.messages.length - 1]?.content || ''
39
+ }, {
40
+ type: 'image_url',
41
+ image_url: {
42
+ url: imageUrl
43
+ }
44
+ }]
45
+ };
46
+ } else {
47
+ console.warn('Image data provided but message is not a user message: ', requestBody.messages);
87
48
  }
88
- };
49
+ }
89
50
  const response = await fetch(endpoint, {
90
51
  method: 'POST',
91
52
  headers,
@@ -99,31 +60,17 @@ export async function getVertexAICompletion(textPrompt, imageData, imagePath, mi
99
60
  throw new Error(`HTTP ${response.status}: ${errorText}`);
100
61
  }
101
62
  const responseBody = await response.json();
102
- if (Array.isArray(responseBody)) {
103
- throw new Error('Unexpected response format: received array instead of object');
104
- }
105
- if (responseBody.error) {
106
- throw new Error(`API Error: ${responseBody.error.message}`);
107
- }
108
- const candidates = responseBody.candidates;
109
- if (!candidates || candidates.length === 0) {
110
- throw new Error('No candidates in response');
111
- }
112
- const content = candidates[0].content;
113
- const responseParts = content.parts;
114
- if (!responseParts || responseParts.length === 0) {
115
- throw new Error('No parts in response');
116
- }
117
- return responseParts[0].text || '';
63
+ const responseText = responseBody.choices[0].message.content;
64
+ return responseText;
118
65
  }
119
- export async function getTextCompletion(prompt) {
120
- return getVertexAICompletion(prompt);
66
+ export async function getTextCompletion(messages) {
67
+ return getVertexAICompletion(messages);
121
68
  }
122
- export async function getVisionCompletion(prompt, imagePath) {
123
- return getVertexAICompletion(prompt, undefined, imagePath);
69
+ export async function getVisionCompletion(messages, imagePath) {
70
+ return getVertexAICompletion(messages, undefined, imagePath);
124
71
  }
125
- export async function getVisionCompletionFromData(prompt, imageData, mimeType) {
126
- return getVertexAICompletion(prompt, imageData, undefined, mimeType);
72
+ export async function getVisionCompletionFromData(messages, imageData, mimeType) {
73
+ return getVertexAICompletion(messages, imageData, undefined, mimeType);
127
74
  }
128
75
  function detectMimeType(filePath) {
129
76
  const extension = filePath.toLowerCase().split('.').pop();
@@ -1 +1 @@
1
- {"version":3,"names":["_cactusToken","setCactusToken","token","getVertexAIEmbedding","text","Error","projectId","location","modelId","endpoint","headers","requestBody","instances","content","response","fetch","method","body","JSON","stringify","status","ok","errorText","responseBody","json","error","message","predictions","length","embeddings","values","getVertexAICompletion","textPrompt","imageData","imagePath","mimeType","parts","detectedMimeType","push","inlineData","data","detectMimeType","RNFS","require","base64Data","readFile","contents","role","Array","isArray","candidates","responseParts","getTextCompletion","prompt","getVisionCompletion","undefined","getVisionCompletionFromData","filePath","extension","toLowerCase","split","pop"],"sourceRoot":"../../src","sources":["remote.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_cactusToken","setCactusToken","token","getVertexAIEmbedding","text","Error","getVertexAICompletion","messages","imageData","imagePath","mimeType","endpoint","headers","requestBody","model","imageUrl","RNFS","require","base64Data","readFile","detectMimeType","length","role","content","type","image_url","url","console","warn","response","fetch","method","body","JSON","stringify","status","ok","errorText","responseBody","json","responseText","choices","message","getTextCompletion","getVisionCompletion","undefined","getVisionCompletionFromData","filePath","extension","toLowerCase","split","pop"],"sourceRoot":"../../src","sources":["remote.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["Tools","tools","Map","add","func","description","parameters","set","name","required","Object","entries","filter","_","param","map","key","getSchemas","Array","from","type","function","properties","execute","args","tool","get","Error","values","parseAndExecuteTool","result","tool_calls","length","toolCalled","toolCall","toolName","toolInput","JSON","parse","arguments","toolOutput","error"],"sourceRoot":"../../src","sources":["tools.ts"],"mappings":";;AAeA,OAAO,MAAMA,KAAK,CAAC;EACTC,KAAK,GAAG,IAAIC,GAAG,CAAe,CAAC;EAEvCC,GAAGA,CACCC,IAAc,EACdC,WAAmB,EACnBC,UAAsC,EACtC;IACA,IAAI,CAACL,KAAK,CAACM,GAAG,CAACH,IAAI,CAACI,IAAI,EAAE;MACxBJ,IAAI;MACJC,WAAW;MACXC,UAAU;MACVG,QAAQ,EAAEC,MAAM,CAACC,OAAO,CAACL,UAAU,CAAC,CACjCM,MAAM,CAAC,CAAC,CAACC,CAAC,EAAEC,KAAK,CAAC,KAAKA,KAAK,CAACL,QAAQ,CAAC,CACtCM,GAAG,CAAC,CAAC,CAACC,GAAG,EAAEH,CAAC,CAAC,KAAKG,GAAG;IAC1B,CAAC,CAAC;IACF,OAAOZ,IAAI;EACb;EAEFa,UAAUA,CAAA,EAAG;IACT,OAAOC,KAAK,CAACC,IAAI,CAAC,IAAI,CAAClB,KAAK,CAACU,OAAO,CAAC,CAAC,CAAC,CAACI,GAAG,CAAC,CAAC,CAACP,IAAI,EAAE;MAAEH,WAAW;MAAEC,UAAU;MAAEG;IAAS,CAAC,CAAC,MAAM;MAC9FW,IAAI,EAAE,UAAU;MAChBC,QAAQ,EAAE;QACRb,IAAI;QACJH,WAAW;QACXC,UAAU,EAAE;UACVc,IAAI,EAAE,QAAQ;UACdE,UAAU,EAAEhB,UAAU;UACtBG;QACF;MACF;IACF,CAAC,CAAC,CAAC;EACL;EAEF,MAAMc,OAAOA,CAACf,IAAY,EAAEgB,IAAS,EAAE;IACnC,MAAMC,IAAI,GAAG,IAAI,CAACxB,KAAK,CAACyB,GAAG,CAAClB,IAAI,CAAC;IACjC,IAAI,CAACiB,IAAI,EAAE,MAAM,IAAIE,KAAK,CAAC,QAAQnB,IAAI,YAAY,CAAC;IACpD,OAAO,MAAMiB,IAAI,CAACrB,IAAI,CAAC,GAAGM,MAAM,CAACkB,MAAM,CAACJ,IAAI,CAAC,CAAC;EAClD;AACF;AAEA,OAAO,eAAeK,mBAAmBA,CAACC,MAA8B,EAAE7B,KAAY,EAAwF;EAC5K,IAAI,CAAC6B,MAAM,CAACC,UAAU,IAAID,MAAM,CAACC,UAAU,CAACC,MAAM,KAAK,CAAC,EAAE;IACtD,OAAO;MAACC,UAAU,EAAE;IAAK,CAAC;EAC9B;EAEA,IAAI;IACA,MAAMC,QAAQ,GAAGJ,MAAM,CAACC,UAAU,CAAC,CAAC,CAAC;IACrC,IAAI,CAACG,QAAQ,EAAE;MACb,OAAO;QAACD,UAAU,EAAE;MAAK,CAAC;IAC5B;IACA,MAAME,QAAQ,GAAGD,QAAQ,CAACb,QAAQ,CAACb,IAAI;IACvC,MAAM4B,SAAS,GAAGC,IAAI,CAACC,KAAK,CAACJ,QAAQ,CAACb,QAAQ,CAACkB,SAAS,CAAC;IAEzD,MAAMC,UAAU,GAAG,MAAMvC,KAAK,CAACsB,OAAO,CAACY,QAAQ,EAAEC,SAAS,CAAC;IAE3D,OAAO;MACHH,UAAU,EAAE,IAAI;MAChBE,QAAQ;MACRC,SAAS;MACTI;IACJ,CAAC;EACL,CAAC,CAAC,OAAOC,KAAK,EAAE;IACZ,OAAO;MAACR,UAAU,EAAE;IAAK,CAAC;EAC9B;AACF","ignoreList":[]}
1
+ {"version":3,"names":["Tools","tools","Map","add","func","description","parameters","set","name","required","Object","entries","filter","_","param","map","key","getSchemas","Array","from","type","function","properties","execute","args","tool","get","Error","values","parseAndExecuteTool","result","tool_calls","length","toolCalled","toolCall","toolName","toolInput","JSON","parse","arguments","toolOutput","error"],"sourceRoot":"../../src","sources":["tools.ts"],"mappings":";;AA4BA,OAAO,MAAMA,KAAK,CAAC;EACTC,KAAK,GAAG,IAAIC,GAAG,CAAe,CAAC;EAEvCC,GAAGA,CACCC,IAAc,EACdC,WAAmB,EACnBC,UAAsC,EACtC;IACA,IAAI,CAACL,KAAK,CAACM,GAAG,CAACH,IAAI,CAACI,IAAI,EAAE;MACxBJ,IAAI;MACJC,WAAW;MACXC,UAAU;MACVG,QAAQ,EAAEC,MAAM,CAACC,OAAO,CAACL,UAAU,CAAC,CACjCM,MAAM,CAAC,CAAC,CAACC,CAAC,EAAEC,KAAK,CAAC,KAAKA,KAAK,CAACL,QAAQ,CAAC,CACtCM,GAAG,CAAC,CAAC,CAACC,GAAG,EAAEH,CAAC,CAAC,KAAKG,GAAG;IAC1B,CAAC,CAAC;IACF,OAAOZ,IAAI;EACb;EAEFa,UAAUA,CAAA,EAAuB;IAC7B,OAAOC,KAAK,CAACC,IAAI,CAAC,IAAI,CAAClB,KAAK,CAACU,OAAO,CAAC,CAAC,CAAC,CAACI,GAAG,CAAC,CAAC,CAACP,IAAI,EAAE;MAAEH,WAAW;MAAEC,UAAU;MAAEG;IAAS,CAAC,CAAC,MAAM;MAC9FW,IAAI,EAAE,UAAU;MAChBC,QAAQ,EAAE;QACRb,IAAI;QACJH,WAAW;QACXC,UAAU,EAAE;UACVc,IAAI,EAAE,QAAQ;UACdE,UAAU,EAAEhB,UAAU;UACtBG;QACF;MACF;IACF,CAAC,CAAC,CAAC;EACL;EAEF,MAAMc,OAAOA,CAACf,IAAY,EAAEgB,IAAS,EAAE;IACnC,MAAMC,IAAI,GAAG,IAAI,CAACxB,KAAK,CAACyB,GAAG,CAAClB,IAAI,CAAC;IACjC,IAAI,CAACiB,IAAI,EAAE,MAAM,IAAIE,KAAK,CAAC,QAAQnB,IAAI,YAAY,CAAC;IACpD,OAAO,MAAMiB,IAAI,CAACrB,IAAI,CAAC,GAAGM,MAAM,CAACkB,MAAM,CAACJ,IAAI,CAAC,CAAC;EAClD;AACF;AAEA,OAAO,eAAeK,mBAAmBA,CAACC,MAA8B,EAAE7B,KAAY,EAAwF;EAC5K,IAAI,CAAC6B,MAAM,CAACC,UAAU,IAAID,MAAM,CAACC,UAAU,CAACC,MAAM,KAAK,CAAC,EAAE;IACtD,OAAO;MAACC,UAAU,EAAE;IAAK,CAAC;EAC9B;EAEA,IAAI;IACA,MAAMC,QAAQ,GAAGJ,MAAM,CAACC,UAAU,CAAC,CAAC,CAAC;IACrC,IAAI,CAACG,QAAQ,EAAE;MACb,OAAO;QAACD,UAAU,EAAE;MAAK,CAAC;IAC5B;IACA,MAAME,QAAQ,GAAGD,QAAQ,CAACb,QAAQ,CAACb,IAAI;IACvC,MAAM4B,SAAS,GAAGC,IAAI,CAACC,KAAK,CAACJ,QAAQ,CAACb,QAAQ,CAACkB,SAAS,CAAC;IAEzD,MAAMC,UAAU,GAAG,MAAMvC,KAAK,CAACsB,OAAO,CAACY,QAAQ,EAAEC,SAAS,CAAC;IAE3D,OAAO;MACHH,UAAU,EAAE,IAAI;MAChBE,QAAQ;MACRC,SAAS;MACTI;IACJ,CAAC;EACL,CAAC,CAAC,OAAOC,KAAK,EAAE;IACZ,OAAO;MAACR,UAAU,EAAE;IAAK,CAAC;EAC9B;AACF","ignoreList":[]}
package/lib/module/vlm.js CHANGED
@@ -164,9 +164,9 @@ export class CactusVLM {
164
164
  const imagePath = params.images && params.images.length > 0 ? params.images[0] : '';
165
165
  let responseText;
166
166
  if (imagePath) {
167
- responseText = await getVisionCompletion(prompt, imagePath);
167
+ responseText = await getVisionCompletion(messages, imagePath);
168
168
  } else {
169
- responseText = await getTextCompletion(prompt);
169
+ responseText = await getTextCompletion(messages);
170
170
  }
171
171
  if (callback) {
172
172
  for (let i = 0; i < responseText.length; i++) {
@@ -1 +1 @@
1
- {"version":3,"names":["initLlama","initMultimodal","multimodalCompletion","Telemetry","setCactusToken","getTextCompletion","getVisionCompletion","ConversationHistoryManager","CactusVLM","_initCache","Map","getCacheKey","params","cactusToken","retryOptions","JSON","stringify","constructor","context","conversationHistoryManager","init","onProgress","key","has","get","initPromise","maxRetries","delayMs","configs","n_gpu_layers","sleep","ms","Promise","resolve","start","Date","now","wait","then","config","lastError","attempt","id","mmproj","vlm","error","e","isLastConfig","indexOf","length","isLastAttempt","n_ctx","model","delay","Math","pow","Error","set","result","delete","completion","messages","callback","mode","_handleRemoteCompletion","_handleLocalCompletion","remoteError","localError","newMessages","requiresReset","processNewMessages","rewind","reset","console","warn","images","formattedPrompt","getFormattedChat","prompt","emit_partial_completion","update","role","content","text","map","m","join","imagePath","responseText","i","token","reasoning_content","tool_calls","tokens_predicted","split","tokens_evaluated","truncated","stopped_eos","stopped_word","stopped_limit","stopping_word","tokens_cached","timings","prompt_n","prompt_ms","prompt_per_token_ms","prompt_per_second","predicted_n","predicted_ms","predicted_per_token_ms","predicted_per_second","release","stopCompletion"],"sourceRoot":"../../src","sources":["vlm.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["initLlama","initMultimodal","multimodalCompletion","Telemetry","setCactusToken","getTextCompletion","getVisionCompletion","ConversationHistoryManager","CactusVLM","_initCache","Map","getCacheKey","params","cactusToken","retryOptions","JSON","stringify","constructor","context","conversationHistoryManager","init","onProgress","key","has","get","initPromise","maxRetries","delayMs","configs","n_gpu_layers","sleep","ms","Promise","resolve","start","Date","now","wait","then","config","lastError","attempt","id","mmproj","vlm","error","e","isLastConfig","indexOf","length","isLastAttempt","n_ctx","model","delay","Math","pow","Error","set","result","delete","completion","messages","callback","mode","_handleRemoteCompletion","_handleLocalCompletion","remoteError","localError","newMessages","requiresReset","processNewMessages","rewind","reset","console","warn","images","formattedPrompt","getFormattedChat","prompt","emit_partial_completion","update","role","content","text","map","m","join","imagePath","responseText","i","token","reasoning_content","tool_calls","tokens_predicted","split","tokens_evaluated","truncated","stopped_eos","stopped_word","stopped_limit","stopping_word","tokens_cached","timings","prompt_n","prompt_ms","prompt_per_token_ms","prompt_per_second","predicted_n","predicted_ms","predicted_per_token_ms","predicted_per_second","release","stopCompletion"],"sourceRoot":"../../src","sources":["vlm.ts"],"mappings":"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","ignoreList":[]}
@@ -19,7 +19,11 @@ export declare class CactusLM {
19
19
  maxRetries?: number;
20
20
  delayMs?: number;
21
21
  }): Promise<CactusLMReturn>;
22
- completion: (messages: CactusOAICompatibleMessage[], params?: CompletionParams, callback?: (data: any) => void) => Promise<NativeCompletionResult>;
22
+ completion: (messages: CactusOAICompatibleMessage[], params?: CompletionParams & {
23
+ mode?: string;
24
+ }, callback?: (data: any) => void) => Promise<NativeCompletionResult>;
25
+ private _handleLocalCompletion;
26
+ private _handleRemoteCompletion;
23
27
  embedding(text: string, params?: EmbeddingParams, mode?: string): Promise<NativeEmbeddingResult>;
24
28
  protected _handleLocalEmbedding(text: string, params?: EmbeddingParams): Promise<NativeEmbeddingResult>;
25
29
  protected _handleRemoteEmbedding(text: string): Promise<NativeEmbeddingResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"lm.d.ts","sourceRoot":"","sources":["../../src/lm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAE,MAAM,SAAS,CAAA;AAGjD,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAIhB,OAAO,EAAE,0BAA0B,EAAE,MAAM,QAAQ,CAAA;AAEnD,UAAU,cAAc;IACtB,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAA;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CACpB;AAED,qBAAa,QAAQ;IACnB,SAAS,CAAC,OAAO,EAAE,YAAY,CAAA;IAC/B,SAAS,CAAC,0BAA0B,EAAE,0BAA0B,CAAA;IAChE,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAmD;IAE5E,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B,SAAS,aAAa,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa;IAMtE,OAAO,CAAC,MAAM,CAAC,sBAAsB;YAKvB,MAAM;YAMN,GAAG;WAUJ,IAAI,CACf,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,EACvC,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GACvD,OAAO,CAAC,cAAc,CAAC;IA4E1B,UAAU,GACR,UAAU,0BAA0B,EAAE,EACtC,SAAQ,gBAAqB,EAC7B,WAAW,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,KAC7B,OAAO,CAAC,sBAAsB,CAAC,CAuBjC;IAEK,SAAS,CACb,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,eAAe,EACxB,IAAI,GAAE,MAAgB,GACrB,OAAO,CAAC,qBAAqB,CAAC;cAoCjB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAI7F,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAOpF,MAAM,QAAa,OAAO,CAAC,IAAI,CAAC,CAE/B;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAUxB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAItC"}
1
+ {"version":3,"file":"lm.d.ts","sourceRoot":"","sources":["../../src/lm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAE,MAAM,SAAS,CAAA;AAGjD,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAIhB,OAAO,EAAE,0BAA0B,EAAE,MAAM,QAAQ,CAAA;AAEnD,UAAU,cAAc;IACtB,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAA;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CACpB;AAED,qBAAa,QAAQ;IACnB,SAAS,CAAC,OAAO,EAAE,YAAY,CAAA;IAC/B,SAAS,CAAC,0BAA0B,EAAE,0BAA0B,CAAA;IAChE,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAmD;IAE5E,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B,SAAS,aAAa,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa;IAMtE,OAAO,CAAC,MAAM,CAAC,sBAAsB;YAKvB,MAAM;YAMN,GAAG;WAUJ,IAAI,CACf,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,EACvC,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GACvD,OAAO,CAAC,cAAc,CAAC;IA4E1B,UAAU,GACR,UAAU,0BAA0B,EAAE,EACtC,SAAQ,gBAAgB,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO,EACjD,WAAW,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,KAC7B,OAAO,CAAC,sBAAsB,CAAC,CAqCjC;IAED,OAAO,CAAC,sBAAsB,CA2B7B;YAEa,uBAAuB;IAwC/B,SAAS,CACb,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,eAAe,EACxB,IAAI,GAAE,MAAgB,GACrB,OAAO,CAAC,qBAAqB,CAAC;cAoCjB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAI7F,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAOpF,MAAM,QAAa,OAAO,CAAC,IAAI,CAAC,CAE/B;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAUxB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAItC"}
@@ -1,7 +1,8 @@
1
+ import type { CactusOAICompatibleMessage } from "./chat";
1
2
  export declare function setCactusToken(token: string | null): void;
2
3
  export declare function getVertexAIEmbedding(text: string): Promise<number[]>;
3
- export declare function getVertexAICompletion(textPrompt: string, imageData?: string, imagePath?: string, mimeType?: string): Promise<string>;
4
- export declare function getTextCompletion(prompt: string): Promise<string>;
5
- export declare function getVisionCompletion(prompt: string, imagePath: string): Promise<string>;
6
- export declare function getVisionCompletionFromData(prompt: string, imageData: string, mimeType?: string): Promise<string>;
4
+ export declare function getVertexAICompletion(messages: CactusOAICompatibleMessage[], imageData?: string, imagePath?: string, mimeType?: string): Promise<string>;
5
+ export declare function getTextCompletion(messages: CactusOAICompatibleMessage[]): Promise<string>;
6
+ export declare function getVisionCompletion(messages: CactusOAICompatibleMessage[], imagePath: string): Promise<string>;
7
+ export declare function getVisionCompletionFromData(messages: CactusOAICompatibleMessage[], imageData: string, mimeType?: string): Promise<string>;
7
8
  //# sourceMappingURL=remote.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/remote.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEzD;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAiD1E;AAED,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAmFjB;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEvE;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE5F;AAED,wBAAsB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEvH"}
1
+ {"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/remote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,QAAQ,CAAC;AAIzD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEzD;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAG1E;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,0BAA0B,EAAE,EACtC,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAiEjB;AAED,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,0BAA0B,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAE/F;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,0BAA0B,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEpH;AAED,wBAAsB,2BAA2B,CAAC,QAAQ,EAAE,0BAA0B,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE/I"}
@@ -1,4 +1,18 @@
1
1
  import type { NativeCompletionResult } from "./NativeCactus";
2
+ export type OpenAIToolSchema = {
3
+ type: "function";
4
+ function: {
5
+ name: string;
6
+ description: string;
7
+ parameters: {
8
+ type: "object";
9
+ properties: {
10
+ [key: string]: Parameter;
11
+ };
12
+ required: string[];
13
+ };
14
+ };
15
+ };
2
16
  interface Parameter {
3
17
  type: string;
4
18
  description: string;
@@ -9,20 +23,7 @@ export declare class Tools {
9
23
  add(func: Function, description: string, parameters: {
10
24
  [key: string]: Parameter;
11
25
  }): Function;
12
- getSchemas(): {
13
- type: string;
14
- function: {
15
- name: string;
16
- description: string;
17
- parameters: {
18
- type: string;
19
- properties: {
20
- [key: string]: Parameter;
21
- };
22
- required: string[];
23
- };
24
- };
25
- }[];
26
+ getSchemas(): OpenAIToolSchema[];
26
27
  execute(name: string, args: any): Promise<any>;
27
28
  }
28
29
  export declare function parseAndExecuteTool(result: NativeCompletionResult, tools: Tools): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7D,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AASD,qBAAa,KAAK;IAChB,OAAO,CAAC,KAAK,CAA2B;IAExC,GAAG,CACC,IAAI,EAAE,QAAQ,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;KAAC;IAa1C,UAAU;;;;;;;;;;;;;;IAeJ,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;CAKtC;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,GAAG,CAAC;IAAC,UAAU,CAAC,EAAE,GAAG,CAAA;CAAC,CAAC,CAwB5K"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ,CAAC;YACf,UAAU,EAAE;gBAAC,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;aAAC,CAAC;YACvC,QAAQ,EAAE,MAAM,EAAE,CAAA;SACnB,CAAA;KACF,CAAA;CACF,CAAA;AAED,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AASD,qBAAa,KAAK;IAChB,OAAO,CAAC,KAAK,CAA2B;IAExC,GAAG,CACC,IAAI,EAAE,QAAQ,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;KAAC;IAa1C,UAAU,IAAI,gBAAgB,EAAE;IAe1B,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;CAKtC;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,GAAG,CAAC;IAAC,UAAU,CAAC,EAAE,GAAG,CAAA;CAAC,CAAC,CAwB5K"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cactus-react-native",
3
- "version": "0.2.7",
3
+ "version": "0.2.9",
4
4
  "description": "Run AI models locally on mobile devices",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
package/src/lm.ts CHANGED
@@ -11,7 +11,7 @@ import type {
11
11
  } from './index'
12
12
 
13
13
  import { Telemetry } from './telemetry'
14
- import { setCactusToken, getVertexAIEmbedding } from './remote'
14
+ import { setCactusToken, getVertexAIEmbedding, getTextCompletion } from './remote'
15
15
  import { ConversationHistoryManager } from './chat'
16
16
 
17
17
  interface CactusLMReturn {
@@ -139,7 +139,50 @@ export class CactusLM {
139
139
 
140
140
  completion = async (
141
141
  messages: CactusOAICompatibleMessage[],
142
- params: CompletionParams = {},
142
+ params: CompletionParams & { mode?: string } = {},
143
+ callback?: (data: any) => void,
144
+ ): Promise<NativeCompletionResult> => {
145
+ const mode = params.mode || 'local';
146
+
147
+ let result: NativeCompletionResult;
148
+ let lastError: Error | null = null;
149
+
150
+ if (mode === 'remote') {
151
+ result = await this._handleRemoteCompletion(messages, callback);
152
+ } else if (mode === 'local') {
153
+ result = await this._handleLocalCompletion(messages, params, callback);
154
+ } else if (mode === 'localfirst') {
155
+ try {
156
+ result = await this._handleLocalCompletion(messages, params, callback);
157
+ } catch (e) {
158
+ lastError = e as Error;
159
+ try {
160
+ result = await this._handleRemoteCompletion(messages, callback);
161
+ } catch (remoteError) {
162
+ throw lastError;
163
+ }
164
+ }
165
+ } else if (mode === 'remotefirst') {
166
+ try {
167
+ result = await this._handleRemoteCompletion(messages, callback);
168
+ } catch (e) {
169
+ lastError = e as Error;
170
+ try {
171
+ result = await this._handleLocalCompletion(messages, params, callback);
172
+ } catch (localError) {
173
+ throw lastError;
174
+ }
175
+ }
176
+ } else {
177
+ throw new Error('Invalid mode: ' + mode + '. Must be "local", "remote", "localfirst", or "remotefirst"');
178
+ }
179
+
180
+ return result;
181
+ }
182
+
183
+ private _handleLocalCompletion = async(
184
+ messages: CactusOAICompatibleMessage[],
185
+ params: CompletionParams,
143
186
  callback?: (data: any) => void,
144
187
  ): Promise<NativeCompletionResult> => {
145
188
  const { newMessages, requiresReset } =
@@ -166,6 +209,46 @@ export class CactusLM {
166
209
  return result;
167
210
  }
168
211
 
212
+ private async _handleRemoteCompletion(
213
+ messages: CactusOAICompatibleMessage[],
214
+ callback?: (data: any) => void,
215
+ ): Promise<NativeCompletionResult> {
216
+ const prompt = messages.map((m) => `${m.role}: ${m.content}`).join('\n');
217
+
218
+ const responseText = await getTextCompletion(messages);
219
+
220
+ if (callback) {
221
+ for (let i = 0; i < responseText.length; i++) {
222
+ callback({ token: responseText[i] });
223
+ }
224
+ }
225
+
226
+ return {
227
+ text: responseText,
228
+ reasoning_content: '',
229
+ tool_calls: [],
230
+ content: responseText,
231
+ tokens_predicted: responseText.split(' ').length,
232
+ tokens_evaluated: prompt.split(' ').length,
233
+ truncated: false,
234
+ stopped_eos: true,
235
+ stopped_word: '',
236
+ stopped_limit: 0,
237
+ stopping_word: '',
238
+ tokens_cached: 0,
239
+ timings: {
240
+ prompt_n: prompt.split(' ').length,
241
+ prompt_ms: 0,
242
+ prompt_per_token_ms: 0,
243
+ prompt_per_second: 0,
244
+ predicted_n: responseText.split(' ').length,
245
+ predicted_ms: 0,
246
+ predicted_per_token_ms: 0,
247
+ predicted_per_second: 0,
248
+ },
249
+ };
250
+ }
251
+
169
252
  async embedding(
170
253
  text: string,
171
254
  params?: EmbeddingParams,