cactus-react-native 0.1.3 → 0.2.1

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 (79) hide show
  1. package/README.md +551 -720
  2. package/android/src/main/java/com/cactus/Cactus.java +41 -0
  3. package/android/src/main/java/com/cactus/LlamaContext.java +19 -0
  4. package/android/src/newarch/java/com/cactus/CactusModule.java +5 -0
  5. package/android/src/oldarch/java/com/cactus/CactusModule.java +5 -0
  6. package/ios/Cactus.mm +14 -0
  7. package/ios/CactusContext.h +1 -0
  8. package/ios/CactusContext.mm +18 -0
  9. package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/cactus +0 -0
  10. package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/cactus +0 -0
  11. package/lib/commonjs/NativeCactus.js +10 -0
  12. package/lib/commonjs/NativeCactus.js.map +1 -1
  13. package/lib/commonjs/chat.js +37 -0
  14. package/lib/commonjs/grammar.js +560 -0
  15. package/lib/commonjs/index.js +545 -0
  16. package/lib/commonjs/index.js.map +1 -1
  17. package/lib/commonjs/lm.js +106 -0
  18. package/lib/commonjs/lm.js.map +1 -1
  19. package/lib/commonjs/projectId.js +8 -0
  20. package/lib/commonjs/projectId.js.map +1 -0
  21. package/lib/commonjs/remote.js +153 -0
  22. package/lib/commonjs/remote.js.map +1 -0
  23. package/lib/commonjs/telemetry.js +103 -0
  24. package/lib/commonjs/telemetry.js.map +1 -0
  25. package/lib/commonjs/tools.js +79 -0
  26. package/lib/commonjs/tools.js.map +1 -0
  27. package/lib/commonjs/tts.js +32 -0
  28. package/lib/commonjs/tts.js.map +1 -1
  29. package/lib/commonjs/vlm.js +150 -0
  30. package/lib/commonjs/vlm.js.map +1 -0
  31. package/lib/module/NativeCactus.js +8 -0
  32. package/lib/module/NativeCactus.js.map +1 -1
  33. package/lib/module/chat.js +33 -0
  34. package/lib/module/grammar.js +553 -0
  35. package/lib/module/index.js +435 -0
  36. package/lib/module/index.js.map +1 -1
  37. package/lib/module/lm.js +101 -0
  38. package/lib/module/lm.js.map +1 -0
  39. package/lib/module/projectId.js +4 -0
  40. package/lib/module/projectId.js.map +1 -0
  41. package/lib/module/remote.js +144 -0
  42. package/lib/module/remote.js.map +1 -0
  43. package/lib/module/telemetry.js +98 -0
  44. package/lib/module/telemetry.js.map +1 -0
  45. package/lib/module/tools.js +73 -0
  46. package/lib/module/tools.js.map +1 -0
  47. package/lib/module/tts.js +27 -0
  48. package/lib/module/tts.js.map +1 -1
  49. package/lib/module/vlm.js +145 -0
  50. package/lib/module/vlm.js.map +1 -1
  51. package/lib/typescript/NativeCactus.d.ts +7 -0
  52. package/lib/typescript/NativeCactus.d.ts.map +1 -1
  53. package/lib/typescript/index.d.ts +3 -1
  54. package/lib/typescript/index.d.ts.map +1 -1
  55. package/lib/typescript/lm.d.ts +11 -34
  56. package/lib/typescript/lm.d.ts.map +1 -1
  57. package/lib/typescript/projectId.d.ts +2 -0
  58. package/lib/typescript/projectId.d.ts.map +1 -0
  59. package/lib/typescript/remote.d.ts +7 -0
  60. package/lib/typescript/remote.d.ts.map +1 -0
  61. package/lib/typescript/telemetry.d.ts +25 -0
  62. package/lib/typescript/telemetry.d.ts.map +1 -0
  63. package/lib/typescript/tools.d.ts +0 -3
  64. package/lib/typescript/tools.d.ts.map +1 -1
  65. package/lib/typescript/tts.d.ts.map +1 -1
  66. package/lib/typescript/vlm.d.ts +14 -34
  67. package/lib/typescript/vlm.d.ts.map +1 -1
  68. package/package.json +4 -4
  69. package/scripts/postInstall.js +33 -0
  70. package/src/NativeCactus.ts +7 -0
  71. package/src/index.ts +122 -46
  72. package/src/lm.ts +80 -5
  73. package/src/projectId.ts +1 -0
  74. package/src/remote.ts +175 -0
  75. package/src/telemetry.ts +138 -0
  76. package/src/tools.ts +17 -58
  77. package/src/vlm.ts +129 -8
  78. package/android/src/main/jniLibs/x86_64/libcactus.so +0 -0
  79. package/android/src/main/jniLibs/x86_64/libcactus_x86_64.so +0 -0
@@ -0,0 +1,545 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ LlamaContext: true,
8
+ toggleNativeLog: true,
9
+ addNativeLogListener: true,
10
+ setContextLimit: true,
11
+ loadLlamaModelInfo: true,
12
+ initLlama: true,
13
+ releaseAllLlama: true,
14
+ initContext: true,
15
+ initMultimodal: true,
16
+ isMultimodalEnabled: true,
17
+ isMultimodalSupportVision: true,
18
+ isMultimodalSupportAudio: true,
19
+ releaseMultimodal: true,
20
+ multimodalCompletion: true,
21
+ initVocoder: true,
22
+ isVocoderEnabled: true,
23
+ getTTSType: true,
24
+ getFormattedAudioCompletion: true,
25
+ getAudioCompletionGuideTokens: true,
26
+ decodeAudioTokens: true,
27
+ releaseVocoder: true,
28
+ tokenize: true,
29
+ getDeviceInfo: true,
30
+ SchemaGrammarConverter: true,
31
+ convertJsonSchemaToGrammar: true,
32
+ Tools: true,
33
+ CactusLM: true,
34
+ CactusVLM: true,
35
+ CactusTTS: true
36
+ };
37
+ Object.defineProperty(exports, "CactusLM", {
38
+ enumerable: true,
39
+ get: function () {
40
+ return _lm.CactusLM;
41
+ }
42
+ });
43
+ Object.defineProperty(exports, "CactusTTS", {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _tts.CactusTTS;
47
+ }
48
+ });
49
+ Object.defineProperty(exports, "CactusVLM", {
50
+ enumerable: true,
51
+ get: function () {
52
+ return _vlm.CactusVLM;
53
+ }
54
+ });
55
+ exports.LlamaContext = void 0;
56
+ Object.defineProperty(exports, "SchemaGrammarConverter", {
57
+ enumerable: true,
58
+ get: function () {
59
+ return _grammar.SchemaGrammarConverter;
60
+ }
61
+ });
62
+ Object.defineProperty(exports, "Tools", {
63
+ enumerable: true,
64
+ get: function () {
65
+ return _tools.Tools;
66
+ }
67
+ });
68
+ exports.addNativeLogListener = addNativeLogListener;
69
+ Object.defineProperty(exports, "convertJsonSchemaToGrammar", {
70
+ enumerable: true,
71
+ get: function () {
72
+ return _grammar.convertJsonSchemaToGrammar;
73
+ }
74
+ });
75
+ exports.initContext = exports.getTTSType = exports.getFormattedAudioCompletion = exports.getDeviceInfo = exports.getAudioCompletionGuideTokens = exports.decodeAudioTokens = void 0;
76
+ exports.initLlama = initLlama;
77
+ exports.isVocoderEnabled = exports.isMultimodalSupportVision = exports.isMultimodalSupportAudio = exports.isMultimodalEnabled = exports.initVocoder = exports.initMultimodal = void 0;
78
+ exports.loadLlamaModelInfo = loadLlamaModelInfo;
79
+ exports.multimodalCompletion = void 0;
80
+ exports.releaseAllLlama = releaseAllLlama;
81
+ exports.releaseVocoder = exports.releaseMultimodal = void 0;
82
+ exports.setContextLimit = setContextLimit;
83
+ exports.toggleNativeLog = toggleNativeLog;
84
+ exports.tokenize = void 0;
85
+ var _reactNative = require("react-native");
86
+ var _NativeCactus = _interopRequireDefault(require("./NativeCactus"));
87
+ var _grammar = require("./grammar");
88
+ var _chat = require("./chat");
89
+ var _tools = require("./tools");
90
+ var _telemetry = require("./telemetry");
91
+ var _remote = require("./remote");
92
+ Object.keys(_remote).forEach(function (key) {
93
+ if (key === "default" || key === "__esModule") return;
94
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
95
+ if (key in exports && exports[key] === _remote[key]) return;
96
+ Object.defineProperty(exports, key, {
97
+ enumerable: true,
98
+ get: function () {
99
+ return _remote[key];
100
+ }
101
+ });
102
+ });
103
+ var _lm = require("./lm");
104
+ var _vlm = require("./vlm");
105
+ var _tts = require("./tts");
106
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
107
+ const EVENT_ON_INIT_CONTEXT_PROGRESS = '@Cactus_onInitContextProgress';
108
+ const EVENT_ON_TOKEN = '@Cactus_onToken';
109
+ const EVENT_ON_NATIVE_LOG = '@Cactus_onNativeLog';
110
+ let EventEmitter;
111
+ if (_reactNative.Platform.OS === 'ios') {
112
+ // @ts-ignore
113
+ EventEmitter = new _reactNative.NativeEventEmitter(_NativeCactus.default);
114
+ }
115
+ if (_reactNative.Platform.OS === 'android') {
116
+ EventEmitter = _reactNative.DeviceEventEmitter;
117
+ }
118
+ const logListeners = [];
119
+
120
+ // @ts-ignore
121
+ if (EventEmitter) {
122
+ EventEmitter.addListener(EVENT_ON_NATIVE_LOG, evt => {
123
+ logListeners.forEach(listener => listener(evt.level, evt.text));
124
+ });
125
+ // Trigger unset to use default log callback
126
+ _NativeCactus.default?.toggleNativeLog?.(false)?.catch?.(() => {});
127
+ }
128
+ const getJsonSchema = responseFormat => {
129
+ if (responseFormat?.type === 'json_schema') {
130
+ return responseFormat.json_schema?.schema;
131
+ }
132
+ if (responseFormat?.type === 'json_object') {
133
+ return responseFormat.schema || {};
134
+ }
135
+ return null;
136
+ };
137
+ const telemetryParams = {
138
+ n_gpu_layers: null,
139
+ n_ctx: null,
140
+ model: null
141
+ };
142
+ class LlamaContext {
143
+ gpu = false;
144
+ reasonNoGPU = '';
145
+ constructor({
146
+ contextId,
147
+ gpu,
148
+ reasonNoGPU,
149
+ model
150
+ }) {
151
+ this.id = contextId;
152
+ this.gpu = gpu;
153
+ this.reasonNoGPU = reasonNoGPU;
154
+ this.model = model;
155
+ }
156
+
157
+ /**
158
+ * Load cached prompt & completion state from a file.
159
+ */
160
+ async loadSession(filepath) {
161
+ let path = filepath;
162
+ if (path.startsWith('file://')) path = path.slice(7);
163
+ return _NativeCactus.default.loadSession(this.id, path);
164
+ }
165
+
166
+ /**
167
+ * Save current cached prompt & completion state to a file.
168
+ */
169
+ async saveSession(filepath, options) {
170
+ return _NativeCactus.default.saveSession(this.id, filepath, options?.tokenSize || -1);
171
+ }
172
+ isLlamaChatSupported() {
173
+ return !!this.model.chatTemplates.llamaChat;
174
+ }
175
+ isJinjaSupported() {
176
+ const {
177
+ minja
178
+ } = this.model.chatTemplates;
179
+ return !!minja?.toolUse || !!minja?.default;
180
+ }
181
+ async getFormattedChat(messages, template, params) {
182
+ const chat = (0, _chat.formatChat)(messages);
183
+ const useJinja = this.isJinjaSupported() && params?.jinja;
184
+ let tmpl = this.isLlamaChatSupported() || useJinja ? undefined : 'chatml';
185
+ if (template) tmpl = template; // Force replace if provided
186
+ const jsonSchema = getJsonSchema(params?.response_format);
187
+ return _NativeCactus.default.getFormattedChat(this.id, JSON.stringify(chat), tmpl, {
188
+ jinja: useJinja,
189
+ json_schema: jsonSchema ? JSON.stringify(jsonSchema) : undefined,
190
+ tools: params?.tools ? JSON.stringify(params.tools) : undefined,
191
+ parallel_tool_calls: params?.parallel_tool_calls ? JSON.stringify(params.parallel_tool_calls) : undefined,
192
+ tool_choice: params?.tool_choice
193
+ });
194
+ }
195
+ async completionWithTools(params, callback, recursionCount = 0, recursionLimit = 3) {
196
+ if (!params.messages) {
197
+ // tool calling only works with messages
198
+ return this.completion(params, callback);
199
+ }
200
+ if (!params.tools) {
201
+ // no tools => default completion
202
+ return this.completion(params, callback);
203
+ }
204
+ if (recursionCount >= recursionLimit) {
205
+ // console.log(`Recursion limit reached (${recursionCount}/${recursionLimit}), returning default completion`)
206
+ return this.completion({
207
+ ...params,
208
+ jinja: true,
209
+ tools: params.tools.getSchemas()
210
+ }, callback);
211
+ }
212
+ const messages = [...params.messages]; // avoid mutating the original messages
213
+
214
+ // console.log('Calling completion...')
215
+ const result = await this.completion({
216
+ ...params,
217
+ messages: messages,
218
+ jinja: true,
219
+ tools: params.tools.getSchemas()
220
+ }, callback);
221
+ // console.log('Completion result:', result);
222
+
223
+ const {
224
+ toolCalled,
225
+ toolName,
226
+ toolInput,
227
+ toolOutput
228
+ } = await (0, _tools.parseAndExecuteTool)(result, params.tools);
229
+ if (toolCalled && toolName && toolInput) {
230
+ const assistantMessage = {
231
+ role: 'assistant',
232
+ content: result.content,
233
+ tool_calls: result.tool_calls
234
+ };
235
+ messages.push(assistantMessage);
236
+ const toolCallId = result.tool_calls?.[0]?.id;
237
+ const toolMessage = {
238
+ role: 'tool',
239
+ content: JSON.stringify(toolOutput),
240
+ tool_call_id: toolCallId
241
+ };
242
+ messages.push(toolMessage);
243
+
244
+ // console.log('Messages being sent to next completion:', JSON.stringify(messages, null, 2));
245
+
246
+ return await this.completionWithTools({
247
+ ...params,
248
+ messages: messages
249
+ }, callback, recursionCount + 1, recursionLimit);
250
+ }
251
+ return result;
252
+ }
253
+ async completion(params, callback) {
254
+ const nativeParams = {
255
+ ...params,
256
+ prompt: params.prompt || '',
257
+ emit_partial_completion: !!callback
258
+ };
259
+ if (params.messages) {
260
+ // messages always win
261
+ const formattedResult = await this.getFormattedChat(params.messages, params.chat_template || params.chatTemplate, {
262
+ jinja: params.jinja,
263
+ tools: params.tools,
264
+ parallel_tool_calls: params.parallel_tool_calls,
265
+ tool_choice: params.tool_choice
266
+ });
267
+ if (typeof formattedResult === 'string') {
268
+ nativeParams.prompt = formattedResult || '';
269
+ } else {
270
+ nativeParams.prompt = formattedResult.prompt || '';
271
+ if (typeof formattedResult.chat_format === 'number') nativeParams.chat_format = formattedResult.chat_format;
272
+ if (formattedResult.grammar) nativeParams.grammar = formattedResult.grammar;
273
+ if (typeof formattedResult.grammar_lazy === 'boolean') nativeParams.grammar_lazy = formattedResult.grammar_lazy;
274
+ if (formattedResult.grammar_triggers) nativeParams.grammar_triggers = formattedResult.grammar_triggers;
275
+ if (formattedResult.preserved_tokens) nativeParams.preserved_tokens = formattedResult.preserved_tokens;
276
+ if (formattedResult.additional_stops) {
277
+ if (!nativeParams.stop) nativeParams.stop = [];
278
+ nativeParams.stop.push(...formattedResult.additional_stops);
279
+ }
280
+ }
281
+ } else {
282
+ nativeParams.prompt = params.prompt || '';
283
+ }
284
+ if (nativeParams.response_format && !nativeParams.grammar) {
285
+ const jsonSchema = getJsonSchema(params.response_format);
286
+ if (jsonSchema) nativeParams.json_schema = JSON.stringify(jsonSchema);
287
+ }
288
+ const startTime = Date.now();
289
+ let firstTokenTime = null;
290
+ const deviceInfo = await getDeviceInfo(this.id);
291
+ const wrappedCallback = callback ? data => {
292
+ if (firstTokenTime === null) firstTokenTime = Date.now();
293
+ callback(data);
294
+ } : undefined;
295
+ let tokenListener = wrappedCallback && EventEmitter.addListener(EVENT_ON_TOKEN, evt => {
296
+ const {
297
+ contextId,
298
+ tokenResult
299
+ } = evt;
300
+ if (contextId !== this.id) return;
301
+ wrappedCallback(tokenResult);
302
+ });
303
+ if (!nativeParams.prompt) throw new Error('Prompt is required');
304
+ const promise = _NativeCactus.default.completion(this.id, nativeParams);
305
+ return promise.then(completionResult => {
306
+ _telemetry.Telemetry.track({
307
+ event: 'completion',
308
+ tok_per_sec: completionResult.timings?.predicted_per_second,
309
+ toks_generated: completionResult.timings?.predicted_n,
310
+ ttft: firstTokenTime ? firstTokenTime - startTime : null
311
+ }, telemetryParams, deviceInfo);
312
+ tokenListener?.remove();
313
+ tokenListener = null;
314
+ return completionResult;
315
+ }).catch(err => {
316
+ tokenListener?.remove();
317
+ tokenListener = null;
318
+ throw err;
319
+ });
320
+ }
321
+ stopCompletion() {
322
+ return _NativeCactus.default.stopCompletion(this.id);
323
+ }
324
+ tokenize(text) {
325
+ return _NativeCactus.default.tokenize(this.id, text);
326
+ }
327
+ detokenize(tokens) {
328
+ return _NativeCactus.default.detokenize(this.id, tokens);
329
+ }
330
+ async embedding(text, params) {
331
+ const startTime = Date.now();
332
+ const embeddingResult = await _NativeCactus.default.embedding(this.id, text, params || {});
333
+ const totalTime = Date.now() - startTime;
334
+ const deviceInfo = await getDeviceInfo(this.id);
335
+ _telemetry.Telemetry.track({
336
+ event: 'embedding',
337
+ mode: 'local',
338
+ embedding_time: totalTime
339
+ }, telemetryParams, deviceInfo);
340
+ return embeddingResult;
341
+ }
342
+ async bench(pp, tg, pl, nr) {
343
+ const result = await _NativeCactus.default.bench(this.id, pp, tg, pl, nr);
344
+ const [modelDesc, modelSize, modelNParams, ppAvg, ppStd, tgAvg, tgStd] = JSON.parse(result);
345
+ return {
346
+ modelDesc,
347
+ modelSize,
348
+ modelNParams,
349
+ ppAvg,
350
+ ppStd,
351
+ tgAvg,
352
+ tgStd
353
+ };
354
+ }
355
+ async applyLoraAdapters(loraList) {
356
+ let loraAdapters = [];
357
+ if (loraList) loraAdapters = loraList.map(l => ({
358
+ path: l.path.replace(/file:\/\//, ''),
359
+ scaled: l.scaled
360
+ }));
361
+ return _NativeCactus.default.applyLoraAdapters(this.id, loraAdapters);
362
+ }
363
+ async removeLoraAdapters() {
364
+ return _NativeCactus.default.removeLoraAdapters(this.id);
365
+ }
366
+ async getLoadedLoraAdapters() {
367
+ return _NativeCactus.default.getLoadedLoraAdapters(this.id);
368
+ }
369
+ async release() {
370
+ return _NativeCactus.default.releaseContext(this.id);
371
+ }
372
+ async rewind() {
373
+ // @ts-ignore
374
+ return _NativeCactus.default.rewind(this.id);
375
+ }
376
+ }
377
+ exports.LlamaContext = LlamaContext;
378
+ async function toggleNativeLog(enabled) {
379
+ return _NativeCactus.default.toggleNativeLog(enabled);
380
+ }
381
+ function addNativeLogListener(listener) {
382
+ logListeners.push(listener);
383
+ return {
384
+ remove: () => {
385
+ logListeners.splice(logListeners.indexOf(listener), 1);
386
+ }
387
+ };
388
+ }
389
+ async function setContextLimit(limit) {
390
+ return _NativeCactus.default.setContextLimit(limit);
391
+ }
392
+ let contextIdCounter = 0;
393
+ const contextIdRandom = () => process.env.NODE_ENV === 'test' ? 0 : Math.floor(Math.random() * 100000);
394
+ const modelInfoSkip = [
395
+ // Large fields
396
+ 'tokenizer.ggml.tokens', 'tokenizer.ggml.token_type', 'tokenizer.ggml.merges', 'tokenizer.ggml.scores'];
397
+ async function loadLlamaModelInfo(model) {
398
+ let path = model;
399
+ if (path.startsWith('file://')) path = path.slice(7);
400
+ return _NativeCactus.default.modelInfo(path, modelInfoSkip);
401
+ }
402
+ const poolTypeMap = {
403
+ // -1 is unspecified as undefined
404
+ none: 0,
405
+ mean: 1,
406
+ cls: 2,
407
+ last: 3,
408
+ rank: 4
409
+ };
410
+ async function initLlama({
411
+ model,
412
+ is_model_asset: isModelAsset,
413
+ pooling_type: poolingType,
414
+ lora,
415
+ lora_list: loraList,
416
+ ...rest
417
+ }, onProgress) {
418
+ let path = model;
419
+ if (path.startsWith('file://')) path = path.slice(7);
420
+ let loraPath = lora;
421
+ if (loraPath?.startsWith('file://')) loraPath = loraPath.slice(7);
422
+ let loraAdapters = [];
423
+ if (loraList) loraAdapters = loraList.map(l => ({
424
+ path: l.path.replace(/file:\/\//, ''),
425
+ scaled: l.scaled
426
+ }));
427
+ telemetryParams.n_gpu_layers = rest.n_gpu_layers || null;
428
+ telemetryParams.n_ctx = rest.n_ctx || null;
429
+ telemetryParams.model = model;
430
+ const contextId = contextIdCounter + contextIdRandom();
431
+ contextIdCounter += 1;
432
+ let removeProgressListener = null;
433
+ if (onProgress) {
434
+ removeProgressListener = EventEmitter.addListener(EVENT_ON_INIT_CONTEXT_PROGRESS, evt => {
435
+ if (evt.contextId !== contextId) return;
436
+ onProgress(evt.progress);
437
+ });
438
+ }
439
+ const poolType = poolTypeMap[poolingType];
440
+ const {
441
+ gpu,
442
+ reasonNoGPU,
443
+ model: modelDetails,
444
+ androidLib
445
+ } = await _NativeCactus.default.initContext(contextId, {
446
+ model: path,
447
+ is_model_asset: !!isModelAsset,
448
+ use_progress_callback: !!onProgress,
449
+ pooling_type: poolType,
450
+ lora: loraPath,
451
+ lora_list: loraAdapters,
452
+ ...rest
453
+ }).catch(err => {
454
+ removeProgressListener?.remove();
455
+ throw err;
456
+ });
457
+ removeProgressListener?.remove();
458
+ return new LlamaContext({
459
+ contextId,
460
+ gpu,
461
+ reasonNoGPU,
462
+ model: modelDetails,
463
+ androidLib
464
+ });
465
+ }
466
+ async function releaseAllLlama() {
467
+ return _NativeCactus.default.releaseAllContexts();
468
+ }
469
+ const initContext = async params => {
470
+ return await _NativeCactus.default.initContext(contextIdCounter++, params);
471
+ };
472
+ exports.initContext = initContext;
473
+ const initMultimodal = async (contextId, mmprojPath, useGpu = false) => {
474
+ return await _NativeCactus.default.initMultimodal(contextId, mmprojPath, useGpu);
475
+ };
476
+ exports.initMultimodal = initMultimodal;
477
+ const isMultimodalEnabled = async contextId => {
478
+ return await _NativeCactus.default.isMultimodalEnabled(contextId);
479
+ };
480
+ exports.isMultimodalEnabled = isMultimodalEnabled;
481
+ const isMultimodalSupportVision = async contextId => {
482
+ return await _NativeCactus.default.isMultimodalSupportVision(contextId);
483
+ };
484
+ exports.isMultimodalSupportVision = isMultimodalSupportVision;
485
+ const isMultimodalSupportAudio = async contextId => {
486
+ return await _NativeCactus.default.isMultimodalSupportAudio(contextId);
487
+ };
488
+ exports.isMultimodalSupportAudio = isMultimodalSupportAudio;
489
+ const releaseMultimodal = async contextId => {
490
+ return await _NativeCactus.default.releaseMultimodal(contextId);
491
+ };
492
+ exports.releaseMultimodal = releaseMultimodal;
493
+ const multimodalCompletion = async (contextId, prompt, mediaPaths, params) => {
494
+ const result = await _NativeCactus.default.multimodalCompletion(contextId, prompt, mediaPaths, params);
495
+ const deviceInfo = await getDeviceInfo(contextId);
496
+ _telemetry.Telemetry.track({
497
+ event: 'completion',
498
+ tok_per_sec: result.timings?.predicted_per_second,
499
+ toks_generated: result.timings?.predicted_n,
500
+ num_images: mediaPaths?.length
501
+ }, telemetryParams, deviceInfo);
502
+ return result;
503
+ };
504
+ exports.multimodalCompletion = multimodalCompletion;
505
+ const initVocoder = async (contextId, vocoderModelPath) => {
506
+ return await _NativeCactus.default.initVocoder(contextId, vocoderModelPath);
507
+ };
508
+ exports.initVocoder = initVocoder;
509
+ const isVocoderEnabled = async contextId => {
510
+ return await _NativeCactus.default.isVocoderEnabled(contextId);
511
+ };
512
+ exports.isVocoderEnabled = isVocoderEnabled;
513
+ const getTTSType = async contextId => {
514
+ return await _NativeCactus.default.getTTSType(contextId);
515
+ };
516
+ exports.getTTSType = getTTSType;
517
+ const getFormattedAudioCompletion = async (contextId, speakerJsonStr, textToSpeak) => {
518
+ return await _NativeCactus.default.getFormattedAudioCompletion(contextId, speakerJsonStr, textToSpeak);
519
+ };
520
+ exports.getFormattedAudioCompletion = getFormattedAudioCompletion;
521
+ const getAudioCompletionGuideTokens = async (contextId, textToSpeak) => {
522
+ return await _NativeCactus.default.getAudioCompletionGuideTokens(contextId, textToSpeak);
523
+ };
524
+ exports.getAudioCompletionGuideTokens = getAudioCompletionGuideTokens;
525
+ const decodeAudioTokens = async (contextId, tokens) => {
526
+ return await _NativeCactus.default.decodeAudioTokens(contextId, tokens);
527
+ };
528
+ exports.decodeAudioTokens = decodeAudioTokens;
529
+ const releaseVocoder = async contextId => {
530
+ return await _NativeCactus.default.releaseVocoder(contextId);
531
+ };
532
+ exports.releaseVocoder = releaseVocoder;
533
+ const tokenize = async (contextId, text, mediaPaths) => {
534
+ if (mediaPaths && mediaPaths.length > 0) {
535
+ return await _NativeCactus.default.tokenize(contextId, text, mediaPaths);
536
+ } else {
537
+ return await _NativeCactus.default.tokenize(contextId, text);
538
+ }
539
+ };
540
+ exports.tokenize = tokenize;
541
+ const getDeviceInfo = async contextId => {
542
+ return await _NativeCactus.default.getDeviceInfo(contextId);
543
+ };
544
+ exports.getDeviceInfo = getDeviceInfo;
545
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_NativeCactus","_interopRequireDefault","_grammar","_chat","_tools","_lm","_vlm","_tts","e","__esModule","default","EVENT_ON_INIT_CONTEXT_PROGRESS","EVENT_ON_TOKEN","EVENT_ON_NATIVE_LOG","EventEmitter","Platform","OS","NativeEventEmitter","Cactus","DeviceEventEmitter","logListeners","addListener","evt","forEach","listener","level","text","toggleNativeLog","catch","getJsonSchema","responseFormat","type","json_schema","schema","LlamaContext","gpu","reasonNoGPU","constructor","contextId","model","id","loadSession","filepath","path","startsWith","slice","saveSession","options","tokenSize","isLlamaChatSupported","chatTemplates","llamaChat","isJinjaSupported","minja","toolUse","getFormattedChat","messages","template","params","chat","formatChat","useJinja","jinja","tmpl","undefined","jsonSchema","response_format","JSON","stringify","tools","parallel_tool_calls","tool_choice","completionWithTools","callback","recursionCount","recursionLimit","completion","injectToolsIntoMessages","result","toolCalled","toolName","toolInput","toolOutput","parseAndExecuteTool","newMessages","updateMessagesWithToolCall","nativeParams","prompt","emit_partial_completion","formattedResult","chat_template","chatTemplate","chat_format","grammar","grammar_lazy","grammar_triggers","preserved_tokens","additional_stops","stop","push","tokenListener","tokenResult","Error","promise","then","completionResult","remove","err","stopCompletion","tokenize","detokenize","tokens","embedding","bench","pp","tg","pl","nr","modelDesc","modelSize","modelNParams","ppAvg","ppStd","tgAvg","tgStd","parse","applyLoraAdapters","loraList","loraAdapters","map","l","replace","scaled","removeLoraAdapters","getLoadedLoraAdapters","release","releaseContext","rewind","exports","enabled","addNativeLogListener","splice","indexOf","setContextLimit","limit","contextIdCounter","contextIdRandom","process","env","NODE_ENV","Math","floor","random","modelInfoSkip","loadLlamaModelInfo","modelInfo","poolTypeMap","none","mean","cls","last","rank","initLlama","is_model_asset","isModelAsset","pooling_type","poolingType","lora","lora_list","rest","onProgress","loraPath","removeProgressListener","progress","poolType","modelDetails","androidLib","initContext","use_progress_callback","releaseAllLlama","releaseAllContexts","initMultimodal","mmprojPath","useGpu","isMultimodalEnabled","isMultimodalSupportVision","isMultimodalSupportAudio","releaseMultimodal","multimodalCompletion","mediaPaths","initVocoder","vocoderModelPath","isVocoderEnabled","getTTSType","getFormattedAudioCompletion","speakerJsonStr","textToSpeak","getAudioCompletionGuideTokens","decodeAudioTokens","releaseVocoder","length"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_NativeCactus","_interopRequireDefault","_grammar","_chat","_tools","_telemetry","_remote","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_lm","_vlm","_tts","e","__esModule","default","EVENT_ON_INIT_CONTEXT_PROGRESS","EVENT_ON_TOKEN","EVENT_ON_NATIVE_LOG","EventEmitter","Platform","OS","NativeEventEmitter","Cactus","DeviceEventEmitter","logListeners","addListener","evt","listener","level","text","toggleNativeLog","catch","getJsonSchema","responseFormat","type","json_schema","schema","telemetryParams","n_gpu_layers","n_ctx","model","LlamaContext","gpu","reasonNoGPU","constructor","contextId","id","loadSession","filepath","path","startsWith","slice","saveSession","options","tokenSize","isLlamaChatSupported","chatTemplates","llamaChat","isJinjaSupported","minja","toolUse","getFormattedChat","messages","template","params","chat","formatChat","useJinja","jinja","tmpl","undefined","jsonSchema","response_format","JSON","stringify","tools","parallel_tool_calls","tool_choice","completionWithTools","callback","recursionCount","recursionLimit","completion","getSchemas","result","toolCalled","toolName","toolInput","toolOutput","parseAndExecuteTool","assistantMessage","role","content","tool_calls","push","toolCallId","toolMessage","tool_call_id","nativeParams","prompt","emit_partial_completion","formattedResult","chat_template","chatTemplate","chat_format","grammar","grammar_lazy","grammar_triggers","preserved_tokens","additional_stops","stop","startTime","Date","now","firstTokenTime","deviceInfo","getDeviceInfo","wrappedCallback","data","tokenListener","tokenResult","Error","promise","then","completionResult","Telemetry","track","event","tok_per_sec","timings","predicted_per_second","toks_generated","predicted_n","ttft","remove","err","stopCompletion","tokenize","detokenize","tokens","embedding","embeddingResult","totalTime","mode","embedding_time","bench","pp","tg","pl","nr","modelDesc","modelSize","modelNParams","ppAvg","ppStd","tgAvg","tgStd","parse","applyLoraAdapters","loraList","loraAdapters","map","l","replace","scaled","removeLoraAdapters","getLoadedLoraAdapters","release","releaseContext","rewind","enabled","addNativeLogListener","splice","indexOf","setContextLimit","limit","contextIdCounter","contextIdRandom","process","env","NODE_ENV","Math","floor","random","modelInfoSkip","loadLlamaModelInfo","modelInfo","poolTypeMap","none","mean","cls","last","rank","initLlama","is_model_asset","isModelAsset","pooling_type","poolingType","lora","lora_list","rest","onProgress","loraPath","removeProgressListener","progress","poolType","modelDetails","androidLib","initContext","use_progress_callback","releaseAllLlama","releaseAllContexts","initMultimodal","mmprojPath","useGpu","isMultimodalEnabled","isMultimodalSupportVision","isMultimodalSupportAudio","releaseMultimodal","multimodalCompletion","mediaPaths","num_images","length","initVocoder","vocoderModelPath","isVocoderEnabled","getTTSType","getFormattedAudioCompletion","speakerJsonStr","textToSpeak","getAudioCompletionGuideTokens","decodeAudioTokens","releaseVocoder"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}