cactus-react-native 0.0.1 → 0.1.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.
- package/LICENSE.txt +20 -0
- package/README.md +3 -1
- package/android/src/main/CMakeLists.txt +58 -23
- package/android/src/main/java/com/cactus/Cactus.java +484 -16
- package/android/src/main/java/com/cactus/LlamaContext.java +199 -0
- package/android/src/main/jni.cpp +325 -10
- package/android/src/main/jniLibs/arm64-v8a/libcactus.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libcactus_v8.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libcactus_v8_2.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libcactus_v8_2_dotprod.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libcactus_v8_2_dotprod_i8mm.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libcactus_v8_2_i8mm.so +0 -0
- package/android/src/main/jniLibs/x86_64/libcactus.so +0 -0
- package/android/src/main/jniLibs/x86_64/libcactus_x86_64.so +0 -0
- package/android/src/newarch/java/com/cactus/CactusModule.java +79 -7
- package/android/src/oldarch/java/com/cactus/CactusModule.java +70 -0
- package/cactus-react-native.podspec +0 -3
- package/ios/CMakeLists.txt +58 -36
- package/ios/Cactus.mm +243 -2
- package/ios/CactusContext.h +22 -0
- package/ios/CactusContext.mm +176 -1
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/cactus.h +92 -5
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/cactus_ffi.h +268 -0
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/chat.h +2 -0
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/common.h +42 -51
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml-backend.h +4 -4
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml-common.h +12 -6
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml-cpp.h +1 -1
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml-cpu.h +5 -0
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml-impl.h +52 -18
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml-metal-impl.h +106 -14
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml-opt.h +49 -28
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml.h +87 -106
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-arch.h +16 -0
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-batch.h +2 -1
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-chat.h +7 -2
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-context.h +44 -33
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-cparams.h +1 -0
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-graph.h +83 -17
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-hparams.h +44 -2
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-kv-cache.h +407 -179
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-memory.h +13 -2
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-model-loader.h +5 -3
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-model-saver.h +37 -0
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-model.h +24 -2
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-vocab.h +6 -0
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama.h +102 -142
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/minja/chat-template.hpp +23 -11
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/minja/minja.hpp +186 -127
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Info.plist +0 -0
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/cactus +0 -0
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/ggml-llama.metallib +0 -0
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/cactus.h +92 -5
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/cactus_ffi.h +268 -0
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/chat.h +2 -0
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/common.h +42 -51
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml-backend.h +4 -4
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml-common.h +12 -6
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml-cpp.h +1 -1
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml-cpu.h +5 -0
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml-impl.h +52 -18
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml-metal-impl.h +106 -14
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml-opt.h +49 -28
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml.h +87 -106
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-arch.h +16 -0
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-batch.h +2 -1
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-chat.h +7 -2
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-context.h +44 -33
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-cparams.h +1 -0
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-graph.h +83 -17
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-hparams.h +44 -2
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-kv-cache.h +407 -179
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-memory.h +13 -2
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-model-loader.h +5 -3
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-model-saver.h +37 -0
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-model.h +24 -2
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-vocab.h +6 -0
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama.h +102 -142
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/minja/chat-template.hpp +23 -11
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/minja/minja.hpp +186 -127
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Info.plist +0 -0
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/_CodeSignature/CodeResources +1 -1
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/cactus +0 -0
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/ggml-llama-sim.metallib +0 -0
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/cactus.h +92 -5
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/cactus_ffi.h +268 -0
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/chat.h +2 -0
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/common.h +42 -51
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml-backend.h +4 -4
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml-common.h +12 -6
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml-cpp.h +1 -1
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml-cpu.h +5 -0
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml-impl.h +52 -18
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml-metal-impl.h +106 -14
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml-opt.h +49 -28
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml.h +87 -106
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-arch.h +16 -0
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-batch.h +2 -1
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-chat.h +7 -2
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-context.h +44 -33
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-cparams.h +1 -0
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-graph.h +83 -17
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-hparams.h +44 -2
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-kv-cache.h +407 -179
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-memory.h +13 -2
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-model-loader.h +5 -3
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-model-saver.h +37 -0
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-model.h +24 -2
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-vocab.h +6 -0
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama.h +102 -142
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/minja/chat-template.hpp +23 -11
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/minja/minja.hpp +186 -127
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Info.plist +0 -0
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/cactus +0 -0
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/ggml-llama.metallib +0 -0
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/cactus.h +92 -5
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/cactus_ffi.h +268 -0
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/chat.h +2 -0
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/common.h +42 -51
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml-backend.h +4 -4
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml-common.h +12 -6
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml-cpp.h +1 -1
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml-cpu.h +5 -0
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml-impl.h +52 -18
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml-metal-impl.h +106 -14
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml-opt.h +49 -28
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml.h +87 -106
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-arch.h +16 -0
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-batch.h +2 -1
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-chat.h +7 -2
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-context.h +44 -33
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-cparams.h +1 -0
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-graph.h +83 -17
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-hparams.h +44 -2
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-kv-cache.h +407 -179
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-memory.h +13 -2
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-model-loader.h +5 -3
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-model-saver.h +37 -0
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-model.h +24 -2
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-vocab.h +6 -0
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama.h +102 -142
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/minja/chat-template.hpp +23 -11
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/minja/minja.hpp +186 -127
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Info.plist +0 -0
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/_CodeSignature/CodeResources +1 -1
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/cactus +0 -0
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/ggml-llama-sim.metallib +0 -0
- package/lib/commonjs/NativeCactus.js +1 -0
- package/lib/commonjs/NativeCactus.js.map +1 -1
- package/lib/commonjs/index.js +112 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/tools.js +118 -0
- package/lib/commonjs/tools.js.map +1 -0
- package/lib/module/NativeCactus.js +3 -0
- package/lib/module/NativeCactus.js.map +1 -1
- package/lib/module/index.js +87 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/tools.js +110 -0
- package/lib/module/tools.js.map +1 -0
- package/lib/typescript/NativeCactus.d.ts +30 -1
- package/lib/typescript/NativeCactus.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +21 -2
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/tools.d.ts +38 -0
- package/lib/typescript/tools.d.ts.map +1 -0
- package/package.json +6 -3
- package/src/NativeCactus.ts +62 -1
- package/src/index.ts +113 -2
- package/src/tools.ts +127 -0
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml-cpu-aarch64.h +0 -8
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml-cpu-impl.h +0 -531
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml-cpu-quants.h +0 -63
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml-cpu-traits.h +0 -38
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/sgemm.h +0 -14
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml-cpu-aarch64.h +0 -8
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml-cpu-impl.h +0 -531
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml-cpu-quants.h +0 -63
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml-cpu-traits.h +0 -38
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/sgemm.h +0 -14
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml-cpu-aarch64.h +0 -8
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml-cpu-impl.h +0 -531
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml-cpu-quants.h +0 -63
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml-cpu-traits.h +0 -38
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/sgemm.h +0 -14
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml-cpu-aarch64.h +0 -8
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml-cpu-impl.h +0 -531
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml-cpu-quants.h +0 -63
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml-cpu-traits.h +0 -38
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/sgemm.h +0 -14
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export class Tools {
|
|
4
|
+
tools = new Map();
|
|
5
|
+
add(func, description, parameters) {
|
|
6
|
+
this.tools.set(func.name, {
|
|
7
|
+
func,
|
|
8
|
+
description,
|
|
9
|
+
parameters,
|
|
10
|
+
required: Object.entries(parameters).filter(([_, param]) => param.required).map(([key, _]) => key)
|
|
11
|
+
});
|
|
12
|
+
return func;
|
|
13
|
+
}
|
|
14
|
+
getSchemas() {
|
|
15
|
+
return Array.from(this.tools.entries()).map(([name, {
|
|
16
|
+
description,
|
|
17
|
+
parameters,
|
|
18
|
+
required
|
|
19
|
+
}]) => ({
|
|
20
|
+
type: "function",
|
|
21
|
+
function: {
|
|
22
|
+
name,
|
|
23
|
+
description,
|
|
24
|
+
parameters: {
|
|
25
|
+
type: "object",
|
|
26
|
+
properties: parameters,
|
|
27
|
+
required
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
32
|
+
async execute(name, args) {
|
|
33
|
+
const tool = this.tools.get(name);
|
|
34
|
+
if (!tool) throw new Error(`Tool ${name} not found`);
|
|
35
|
+
return await tool.func(...Object.values(args));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export function injectToolsIntoMessages(messages, tools) {
|
|
39
|
+
const newMessages = [...messages];
|
|
40
|
+
const toolsSchemas = tools.getSchemas();
|
|
41
|
+
const promptToolInjection = `You have access to the following functions. Use them if required -
|
|
42
|
+
${JSON.stringify(toolsSchemas, null, 2)}
|
|
43
|
+
Only use an available tool if needed. If a tool is chosen, respond ONLY with a JSON object matching the following schema:
|
|
44
|
+
\`\`\`json
|
|
45
|
+
{
|
|
46
|
+
"tool_name": "<name of the tool>",
|
|
47
|
+
"tool_input": {
|
|
48
|
+
"<parameter_name>": "<parameter_value>",
|
|
49
|
+
...
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
\`\`\`
|
|
53
|
+
Remember, if you are calling a tool, you must respond with the JSON object and the JSON object ONLY!
|
|
54
|
+
If no tool is needed, respond normally.
|
|
55
|
+
`;
|
|
56
|
+
const systemMessage = newMessages.find(m => m.role === 'system');
|
|
57
|
+
if (!systemMessage) {
|
|
58
|
+
newMessages.unshift({
|
|
59
|
+
role: 'system',
|
|
60
|
+
content: promptToolInjection
|
|
61
|
+
});
|
|
62
|
+
} else {
|
|
63
|
+
systemMessage.content = `${systemMessage.content}\n\n${promptToolInjection}`;
|
|
64
|
+
}
|
|
65
|
+
return newMessages;
|
|
66
|
+
}
|
|
67
|
+
export async function parseAndExecuteTool(result, tools) {
|
|
68
|
+
const match = result.content.match(/```json\s*([\s\S]*?)\s*```/);
|
|
69
|
+
if (!match || !match[1]) return {
|
|
70
|
+
toolCalled: false
|
|
71
|
+
};
|
|
72
|
+
try {
|
|
73
|
+
const jsonContent = JSON.parse(match[1]);
|
|
74
|
+
const {
|
|
75
|
+
tool_name,
|
|
76
|
+
tool_input
|
|
77
|
+
} = jsonContent;
|
|
78
|
+
// console.log('Calling tool:', tool_name, tool_input);
|
|
79
|
+
const toolOutput = (await tools.execute(tool_name, tool_input)) || true;
|
|
80
|
+
// console.log('Tool called result:', toolOutput);
|
|
81
|
+
|
|
82
|
+
return {
|
|
83
|
+
toolCalled: true,
|
|
84
|
+
toolName: tool_name,
|
|
85
|
+
toolInput: tool_input,
|
|
86
|
+
toolOutput
|
|
87
|
+
};
|
|
88
|
+
} catch (error) {
|
|
89
|
+
// console.error('Error parsing JSON:', match, error);
|
|
90
|
+
return {
|
|
91
|
+
toolCalled: false
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
export function updateMessagesWithToolCall(messages, toolName, toolInput, toolOutput) {
|
|
96
|
+
const newMessages = [...messages];
|
|
97
|
+
newMessages.push({
|
|
98
|
+
role: 'function-call',
|
|
99
|
+
content: JSON.stringify({
|
|
100
|
+
name: toolName,
|
|
101
|
+
arguments: toolInput
|
|
102
|
+
}, null, 2)
|
|
103
|
+
});
|
|
104
|
+
newMessages.push({
|
|
105
|
+
role: 'function-response',
|
|
106
|
+
content: JSON.stringify(toolOutput, null, 2)
|
|
107
|
+
});
|
|
108
|
+
return newMessages;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +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","injectToolsIntoMessages","messages","newMessages","toolsSchemas","promptToolInjection","JSON","stringify","systemMessage","find","m","role","unshift","content","parseAndExecuteTool","result","match","toolCalled","jsonContent","parse","tool_name","tool_input","toolOutput","toolName","toolInput","error","updateMessagesWithToolCall","push","arguments"],"sourceRoot":"../../src","sources":["tools.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -255,10 +255,26 @@ export type NativeCompletionResult = {
|
|
|
255
255
|
};
|
|
256
256
|
export type NativeTokenizeResult = {
|
|
257
257
|
tokens: Array<number>;
|
|
258
|
+
has_media?: boolean;
|
|
259
|
+
bitmap_hashes?: Array<string>;
|
|
260
|
+
chunk_pos?: Array<number>;
|
|
261
|
+
chunk_pos_media?: Array<number>;
|
|
258
262
|
};
|
|
259
263
|
export type NativeEmbeddingResult = {
|
|
260
264
|
embedding: Array<number>;
|
|
261
265
|
};
|
|
266
|
+
export type NativeTTSType = {
|
|
267
|
+
type: number;
|
|
268
|
+
};
|
|
269
|
+
export type NativeAudioCompletionResult = {
|
|
270
|
+
formatted_prompt: string;
|
|
271
|
+
};
|
|
272
|
+
export type NativeAudioTokensResult = {
|
|
273
|
+
tokens: Array<number>;
|
|
274
|
+
};
|
|
275
|
+
export type NativeAudioDecodeResult = {
|
|
276
|
+
audio_data: Array<number>;
|
|
277
|
+
};
|
|
262
278
|
export type NativeLlamaContext = {
|
|
263
279
|
contextId: number;
|
|
264
280
|
model: {
|
|
@@ -335,8 +351,9 @@ export interface Spec extends TurboModule {
|
|
|
335
351
|
loadSession(contextId: number, filepath: string): Promise<NativeSessionLoadResult>;
|
|
336
352
|
saveSession(contextId: number, filepath: string, size: number): Promise<number>;
|
|
337
353
|
completion(contextId: number, params: NativeCompletionParams): Promise<NativeCompletionResult>;
|
|
354
|
+
multimodalCompletion(contextId: number, prompt: string, mediaPaths: string[], params: NativeCompletionParams): Promise<NativeCompletionResult>;
|
|
338
355
|
stopCompletion(contextId: number): Promise<void>;
|
|
339
|
-
tokenize(contextId: number, text: string): Promise<NativeTokenizeResult>;
|
|
356
|
+
tokenize(contextId: number, text: string, mediaPaths?: string[]): Promise<NativeTokenizeResult>;
|
|
340
357
|
detokenize(contextId: number, tokens: number[]): Promise<string>;
|
|
341
358
|
embedding(contextId: number, text: string, params: NativeEmbeddingParams): Promise<NativeEmbeddingResult>;
|
|
342
359
|
bench(contextId: number, pp: number, tg: number, pl: number, nr: number): Promise<string>;
|
|
@@ -349,6 +366,18 @@ export interface Spec extends TurboModule {
|
|
|
349
366
|
path: string;
|
|
350
367
|
scaled?: number;
|
|
351
368
|
}>>;
|
|
369
|
+
initMultimodal(contextId: number, mmprojPath: string, useGpu?: boolean): Promise<boolean>;
|
|
370
|
+
isMultimodalEnabled(contextId: number): Promise<boolean>;
|
|
371
|
+
isMultimodalSupportVision(contextId: number): Promise<boolean>;
|
|
372
|
+
isMultimodalSupportAudio(contextId: number): Promise<boolean>;
|
|
373
|
+
releaseMultimodal(contextId: number): Promise<void>;
|
|
374
|
+
initVocoder(contextId: number, vocoderModelPath: string): Promise<boolean>;
|
|
375
|
+
isVocoderEnabled(contextId: number): Promise<boolean>;
|
|
376
|
+
getTTSType(contextId: number): Promise<NativeTTSType>;
|
|
377
|
+
getFormattedAudioCompletion(contextId: number, speakerJsonStr: string, textToSpeak: string): Promise<NativeAudioCompletionResult>;
|
|
378
|
+
getAudioCompletionGuideTokens(contextId: number, textToSpeak: string): Promise<NativeAudioTokensResult>;
|
|
379
|
+
decodeAudioTokens(contextId: number, tokens: number[]): Promise<NativeAudioDecodeResult>;
|
|
380
|
+
releaseVocoder(contextId: number): Promise<void>;
|
|
352
381
|
releaseContext(contextId: number): Promise<void>;
|
|
353
382
|
releaseAllContexts(): Promise<void>;
|
|
354
383
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeCactus.d.ts","sourceRoot":"","sources":["../../src/NativeCactus.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"NativeCactus.d.ts","sourceRoot":"","sources":["../../src/NativeCactus.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type { NativeContextParams, NativeLlamaContext, NativeCompletionParams, NativeCompletionTokenProb, NativeCompletionResult, NativeTokenizeResult, NativeEmbeddingResult, NativeSessionLoadResult, NativeEmbeddingParams, NativeCompletionTokenProbItem, NativeCompletionResultTimings, JinjaFormattedChatResult } from './NativeCactus';
|
|
1
|
+
import type { NativeContextParams, NativeLlamaContext, NativeCompletionParams, NativeCompletionTokenProb, NativeCompletionResult, NativeTokenizeResult, NativeEmbeddingResult, NativeSessionLoadResult, NativeEmbeddingParams, NativeCompletionTokenProbItem, NativeCompletionResultTimings, JinjaFormattedChatResult, NativeTTSType, NativeAudioCompletionResult, NativeAudioTokensResult, NativeAudioDecodeResult } from './NativeCactus';
|
|
2
2
|
import type { SchemaGrammarConverterPropOrder, SchemaGrammarConverterBuiltinRule } from './grammar';
|
|
3
3
|
import { SchemaGrammarConverter, convertJsonSchemaToGrammar } from './grammar';
|
|
4
4
|
import type { CactusMessagePart, CactusOAICompatibleMessage } from './chat';
|
|
5
|
+
import { Tools } from './tools';
|
|
5
6
|
export type { NativeContextParams, NativeLlamaContext, NativeCompletionParams, NativeCompletionTokenProb, NativeCompletionResult, NativeTokenizeResult, NativeEmbeddingResult, NativeSessionLoadResult, NativeEmbeddingParams, NativeCompletionTokenProbItem, NativeCompletionResultTimings, CactusMessagePart, CactusOAICompatibleMessage, JinjaFormattedChatResult, SchemaGrammarConverterPropOrder, SchemaGrammarConverterBuiltinRule, };
|
|
6
|
-
export { SchemaGrammarConverter, convertJsonSchemaToGrammar };
|
|
7
|
+
export { SchemaGrammarConverter, convertJsonSchemaToGrammar, Tools };
|
|
7
8
|
export type TokenData = {
|
|
8
9
|
token: string;
|
|
9
10
|
completion_probabilities?: Array<NativeCompletionTokenProb>;
|
|
@@ -68,6 +69,9 @@ export declare class LlamaContext {
|
|
|
68
69
|
parallel_tool_calls?: object;
|
|
69
70
|
tool_choice?: string;
|
|
70
71
|
}): Promise<JinjaFormattedChatResult | string>;
|
|
72
|
+
completionWithTools(params: CompletionParams & {
|
|
73
|
+
tools: Tools;
|
|
74
|
+
}, callback?: (data: TokenData) => void, recursionCount?: number, recursionLimit?: number): Promise<NativeCompletionResult>;
|
|
71
75
|
completion(params: CompletionParams, callback?: (data: TokenData) => void): Promise<NativeCompletionResult>;
|
|
72
76
|
stopCompletion(): Promise<void>;
|
|
73
77
|
tokenize(text: string): Promise<NativeTokenizeResult>;
|
|
@@ -93,4 +97,19 @@ export declare function setContextLimit(limit: number): Promise<void>;
|
|
|
93
97
|
export declare function loadLlamaModelInfo(model: string): Promise<Object>;
|
|
94
98
|
export declare function initLlama({ model, is_model_asset: isModelAsset, pooling_type: poolingType, lora, lora_list: loraList, ...rest }: ContextParams, onProgress?: (progress: number) => void): Promise<LlamaContext>;
|
|
95
99
|
export declare function releaseAllLlama(): Promise<void>;
|
|
100
|
+
export declare const initContext: (params: NativeContextParams) => Promise<NativeLlamaContext>;
|
|
101
|
+
export declare const initMultimodal: (contextId: number, mmprojPath: string, useGpu?: boolean) => Promise<boolean>;
|
|
102
|
+
export declare const isMultimodalEnabled: (contextId: number) => Promise<boolean>;
|
|
103
|
+
export declare const isMultimodalSupportVision: (contextId: number) => Promise<boolean>;
|
|
104
|
+
export declare const isMultimodalSupportAudio: (contextId: number) => Promise<boolean>;
|
|
105
|
+
export declare const releaseMultimodal: (contextId: number) => Promise<void>;
|
|
106
|
+
export declare const multimodalCompletion: (contextId: number, prompt: string, mediaPaths: string[], params: NativeCompletionParams) => Promise<NativeCompletionResult>;
|
|
107
|
+
export declare const initVocoder: (contextId: number, vocoderModelPath: string) => Promise<boolean>;
|
|
108
|
+
export declare const isVocoderEnabled: (contextId: number) => Promise<boolean>;
|
|
109
|
+
export declare const getTTSType: (contextId: number) => Promise<NativeTTSType>;
|
|
110
|
+
export declare const getFormattedAudioCompletion: (contextId: number, speakerJsonStr: string, textToSpeak: string) => Promise<NativeAudioCompletionResult>;
|
|
111
|
+
export declare const getAudioCompletionGuideTokens: (contextId: number, textToSpeak: string) => Promise<NativeAudioTokensResult>;
|
|
112
|
+
export declare const decodeAudioTokens: (contextId: number, tokens: number[]) => Promise<NativeAudioDecodeResult>;
|
|
113
|
+
export declare const releaseVocoder: (contextId: number) => Promise<void>;
|
|
114
|
+
export declare const tokenize: (contextId: number, text: string, mediaPaths?: string[]) => Promise<NativeTokenizeResult>;
|
|
96
115
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,6BAA6B,EAC7B,6BAA6B,EAC7B,wBAAwB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,6BAA6B,EAC7B,6BAA6B,EAC7B,wBAAwB,EACxB,aAAa,EACb,2BAA2B,EAC3B,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EACV,+BAA+B,EAC/B,iCAAiC,EAClC,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAA;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,QAAQ,CAAA;AAE3E,OAAO,EAAE,KAAK,EAA4E,MAAM,SAAS,CAAA;AACzG,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,6BAA6B,EAC7B,6BAA6B,EAC7B,iBAAiB,EACjB,0BAA0B,EAC1B,wBAAwB,EAGxB,+BAA+B,EAC/B,iCAAiC,GAClC,CAAA;AAED,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,KAAK,EAAE,CAAA;AA6BpE,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,wBAAwB,CAAC,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAA;CAC5D,CAAA;AAOD,MAAM,MAAM,aAAa,GAAG,IAAI,CAC9B,mBAAmB,EACnB,cAAc,GAAG,cAAc,GAAG,cAAc,CACjD,GAAG;IACF,YAAY,CAAC,EACT,KAAK,GACL,KAAK,GACL,MAAM,GACN,MAAM,GACN,MAAM,GACN,QAAQ,GACR,MAAM,GACN,MAAM,CAAA;IACV,YAAY,CAAC,EACT,KAAK,GACL,KAAK,GACL,MAAM,GACN,MAAM,GACN,MAAM,GACN,QAAQ,GACR,MAAM,GACN,MAAM,CAAA;IACV,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAA;CACzD,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,qBAAqB,CAAA;AAEnD,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,aAAa,CAAA;IAC5C,WAAW,CAAC,EAAE;QACZ,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;IACD,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,0BAA0B,EAAE,CAAA;IACvC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,wBAAwB,CAAA;CAC3C,CAAA;AACD,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,sBAAsB,EACtB,yBAAyB,GAAG,QAAQ,CACrC,GACC,oBAAoB,CAAA;AAEtB,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAYD,qBAAa,YAAY;IACvB,EAAE,EAAE,MAAM,CAAA;IAEV,GAAG,EAAE,OAAO,CAAQ;IAEpB,WAAW,EAAE,MAAM,CAAK;IAExB,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAA;gBAEtB,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,kBAAkB;IAOtE;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAMrE;;OAEG;IACG,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAC9B,OAAO,CAAC,MAAM,CAAC;IAIlB,oBAAoB,IAAI,OAAO;IAI/B,gBAAgB,IAAI,OAAO;IAKrB,gBAAgB,CACpB,QAAQ,EAAE,0BAA0B,EAAE,EACtC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,EACxB,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,eAAe,CAAC,EAAE,wBAAwB,CAAA;QAC1C,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,mBAAmB,CAAC,EAAE,MAAM,CAAA;QAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,GACA,OAAO,CAAC,wBAAwB,GAAG,MAAM,CAAC;IAiBvC,mBAAmB,CACrB,MAAM,EAAE,gBAAgB,GAAG;QAAC,KAAK,EAAE,KAAK,CAAA;KAAC,EACzC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,EACpC,cAAc,GAAE,MAAU,EAC1B,cAAc,GAAE,MAAU,GAC3B,OAAO,CAAC,sBAAsB,CAAC;IAsC5B,UAAU,CACd,MAAM,EAAE,gBAAgB,EACxB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,GACnC,OAAO,CAAC,sBAAsB,CAAC;IAsElC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAIrD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAI7C,SAAS,CACP,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,qBAAqB,CAAC;IAI3B,KAAK,CACT,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,WAAW,CAAC;IAejB,iBAAiB,CACrB,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GACjD,OAAO,CAAC,IAAI,CAAC;IAUV,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC,qBAAqB,IAAI,OAAO,CACpC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CACzC;IAIK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAErE;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAC9C;IAAE,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,CAOxB;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAElE;AAaD,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIvE;AAWD,wBAAsB,SAAS,CAC7B,EACE,KAAK,EACL,cAAc,EAAE,YAAY,EAC5B,YAAY,EAAE,WAAW,EACzB,IAAI,EACJ,SAAS,EAAE,QAAQ,EACnB,GAAG,IAAI,EACR,EAAE,aAAa,EAChB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACtC,OAAO,CAAC,YAAY,CAAC,CAsDvB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAErD;AAED,eAAO,MAAM,WAAW,GAAU,QAAQ,mBAAmB,gCAE5D,CAAC;AAEF,eAAO,MAAM,cAAc,GAAU,WAAW,MAAM,EAAE,YAAY,MAAM,EAAE,SAAQ,OAAe,qBAElG,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAU,WAAW,MAAM,qBAE1D,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAU,WAAW,MAAM,qBAEhE,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAU,WAAW,MAAM,qBAE/D,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAU,WAAW,MAAM,kBAExD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAU,WAAW,MAAM,EAAE,QAAQ,MAAM,EAAE,YAAY,MAAM,EAAE,EAAE,QAAQ,sBAAsB,KAAG,OAAO,CAAC,sBAAsB,CAElK,CAAC;AAEF,eAAO,MAAM,WAAW,GAAU,WAAW,MAAM,EAAE,kBAAkB,MAAM,qBAE5E,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAU,WAAW,MAAM,qBAEvD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,aAAa,CAEzE,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAU,WAAW,MAAM,EAAE,gBAAgB,MAAM,EAAE,aAAa,MAAM,KAAG,OAAO,CAAC,2BAA2B,CAErJ,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAU,WAAW,MAAM,EAAE,aAAa,MAAM,KAAG,OAAO,CAAC,uBAAuB,CAE3H,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAU,WAAW,MAAM,EAAE,QAAQ,MAAM,EAAE,KAAG,OAAO,CAAC,uBAAuB,CAE5G,CAAC;AAEF,eAAO,MAAM,cAAc,GAAU,WAAW,MAAM,kBAErD,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAU,WAAW,MAAM,EAAE,MAAM,MAAM,EAAE,aAAa,MAAM,EAAE,KAAG,OAAO,CAAC,oBAAoB,CAMnH,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { CactusOAICompatibleMessage } from "./chat";
|
|
2
|
+
import type { NativeCompletionResult } from "./NativeCactus";
|
|
3
|
+
interface Parameter {
|
|
4
|
+
type: string;
|
|
5
|
+
description: string;
|
|
6
|
+
required?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare class Tools {
|
|
9
|
+
private tools;
|
|
10
|
+
add(func: Function, description: string, parameters: {
|
|
11
|
+
[key: string]: Parameter;
|
|
12
|
+
}): Function;
|
|
13
|
+
getSchemas(): {
|
|
14
|
+
type: string;
|
|
15
|
+
function: {
|
|
16
|
+
name: string;
|
|
17
|
+
description: string;
|
|
18
|
+
parameters: {
|
|
19
|
+
type: string;
|
|
20
|
+
properties: {
|
|
21
|
+
[key: string]: Parameter;
|
|
22
|
+
};
|
|
23
|
+
required: string[];
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
}[];
|
|
27
|
+
execute(name: string, args: any): Promise<any>;
|
|
28
|
+
}
|
|
29
|
+
export declare function injectToolsIntoMessages(messages: CactusOAICompatibleMessage[], tools: Tools): CactusOAICompatibleMessage[];
|
|
30
|
+
export declare function parseAndExecuteTool(result: NativeCompletionResult, tools: Tools): Promise<{
|
|
31
|
+
toolCalled: boolean;
|
|
32
|
+
toolName?: string;
|
|
33
|
+
toolInput?: any;
|
|
34
|
+
toolOutput?: any;
|
|
35
|
+
}>;
|
|
36
|
+
export declare function updateMessagesWithToolCall(messages: CactusOAICompatibleMessage[], toolName: string, toolInput: any, toolOutput: any): CactusOAICompatibleMessage[];
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,QAAQ,CAAC;AACzD,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,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,0BAA0B,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,0BAA0B,EAAE,CA8B1H;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,CAsB5K;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,0BAA0B,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,GAAG,0BAA0B,EAAE,CAalK"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cactus-react-native",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Run AI models locally on mobile devices",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"docgen": "typedoc src/index.ts --plugin typedoc-plugin-markdown --readme none --out docs/API",
|
|
32
32
|
"typecheck": "tsc --noEmit",
|
|
33
33
|
"lint": "eslint \"**/*.{js,ts,tsx}\"",
|
|
34
|
-
"release": "release-it"
|
|
34
|
+
"release": "release-it --ci"
|
|
35
35
|
},
|
|
36
36
|
"keywords": [
|
|
37
37
|
"react-native",
|
|
@@ -62,6 +62,7 @@
|
|
|
62
62
|
"@types/jest": "^28.1.2",
|
|
63
63
|
"@types/react": "~17.0.21",
|
|
64
64
|
"@types/react-native": "0.70.0",
|
|
65
|
+
|
|
65
66
|
"commitlint": "^17.0.2",
|
|
66
67
|
"eslint": "^8.4.1",
|
|
67
68
|
"jest": "^28.1.1",
|
|
@@ -70,6 +71,7 @@
|
|
|
70
71
|
"react": "18.2.0",
|
|
71
72
|
"react-native": "0.72.3",
|
|
72
73
|
"react-native-builder-bob": "^0.37.0",
|
|
74
|
+
|
|
73
75
|
"release-it": "^15.0.0",
|
|
74
76
|
"typedoc": "^0.24.7",
|
|
75
77
|
"typedoc-plugin-markdown": "^3.15.3",
|
|
@@ -80,7 +82,8 @@
|
|
|
80
82
|
},
|
|
81
83
|
"peerDependencies": {
|
|
82
84
|
"react": "*",
|
|
83
|
-
"react-native": "*"
|
|
85
|
+
"react-native": "*",
|
|
86
|
+
"react-native-fs": "*"
|
|
84
87
|
},
|
|
85
88
|
"engines": {
|
|
86
89
|
"node": ">= 16.0.0"
|
package/src/NativeCactus.ts
CHANGED
|
@@ -278,12 +278,34 @@ export type NativeCompletionResult = {
|
|
|
278
278
|
|
|
279
279
|
export type NativeTokenizeResult = {
|
|
280
280
|
tokens: Array<number>
|
|
281
|
+
// New multimodal support
|
|
282
|
+
has_media?: boolean
|
|
283
|
+
bitmap_hashes?: Array<string>
|
|
284
|
+
chunk_pos?: Array<number>
|
|
285
|
+
chunk_pos_media?: Array<number>
|
|
281
286
|
}
|
|
282
287
|
|
|
283
288
|
export type NativeEmbeddingResult = {
|
|
284
289
|
embedding: Array<number>
|
|
285
290
|
}
|
|
286
291
|
|
|
292
|
+
// New TTS/Audio types
|
|
293
|
+
export type NativeTTSType = {
|
|
294
|
+
type: number // TTS_UNKNOWN = -1, TTS_OUTETTS_V0_2 = 1, TTS_OUTETTS_V0_3 = 2
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
export type NativeAudioCompletionResult = {
|
|
298
|
+
formatted_prompt: string
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
export type NativeAudioTokensResult = {
|
|
302
|
+
tokens: Array<number>
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
export type NativeAudioDecodeResult = {
|
|
306
|
+
audio_data: Array<number> // Float array of audio samples
|
|
307
|
+
}
|
|
308
|
+
|
|
287
309
|
export type NativeLlamaContext = {
|
|
288
310
|
contextId: number
|
|
289
311
|
model: {
|
|
@@ -385,8 +407,14 @@ export interface Spec extends TurboModule {
|
|
|
385
407
|
contextId: number,
|
|
386
408
|
params: NativeCompletionParams,
|
|
387
409
|
): Promise<NativeCompletionResult>
|
|
410
|
+
multimodalCompletion(
|
|
411
|
+
contextId: number,
|
|
412
|
+
prompt: string,
|
|
413
|
+
mediaPaths: string[],
|
|
414
|
+
params: NativeCompletionParams,
|
|
415
|
+
): Promise<NativeCompletionResult>
|
|
388
416
|
stopCompletion(contextId: number): Promise<void>
|
|
389
|
-
tokenize(contextId: number, text: string): Promise<NativeTokenizeResult>
|
|
417
|
+
tokenize(contextId: number, text: string, mediaPaths?: string[]): Promise<NativeTokenizeResult>
|
|
390
418
|
detokenize(contextId: number, tokens: number[]): Promise<string>
|
|
391
419
|
embedding(
|
|
392
420
|
contextId: number,
|
|
@@ -410,6 +438,39 @@ export interface Spec extends TurboModule {
|
|
|
410
438
|
contextId: number,
|
|
411
439
|
): Promise<Array<{ path: string; scaled?: number }>>
|
|
412
440
|
|
|
441
|
+
// New Multimodal Methods
|
|
442
|
+
initMultimodal(
|
|
443
|
+
contextId: number,
|
|
444
|
+
mmprojPath: string,
|
|
445
|
+
useGpu?: boolean,
|
|
446
|
+
): Promise<boolean>
|
|
447
|
+
isMultimodalEnabled(contextId: number): Promise<boolean>
|
|
448
|
+
isMultimodalSupportVision(contextId: number): Promise<boolean>
|
|
449
|
+
isMultimodalSupportAudio(contextId: number): Promise<boolean>
|
|
450
|
+
releaseMultimodal(contextId: number): Promise<void>
|
|
451
|
+
|
|
452
|
+
// New TTS/Vocoder Methods
|
|
453
|
+
initVocoder(
|
|
454
|
+
contextId: number,
|
|
455
|
+
vocoderModelPath: string,
|
|
456
|
+
): Promise<boolean>
|
|
457
|
+
isVocoderEnabled(contextId: number): Promise<boolean>
|
|
458
|
+
getTTSType(contextId: number): Promise<NativeTTSType>
|
|
459
|
+
getFormattedAudioCompletion(
|
|
460
|
+
contextId: number,
|
|
461
|
+
speakerJsonStr: string,
|
|
462
|
+
textToSpeak: string,
|
|
463
|
+
): Promise<NativeAudioCompletionResult>
|
|
464
|
+
getAudioCompletionGuideTokens(
|
|
465
|
+
contextId: number,
|
|
466
|
+
textToSpeak: string,
|
|
467
|
+
): Promise<NativeAudioTokensResult>
|
|
468
|
+
decodeAudioTokens(
|
|
469
|
+
contextId: number,
|
|
470
|
+
tokens: number[],
|
|
471
|
+
): Promise<NativeAudioDecodeResult>
|
|
472
|
+
releaseVocoder(contextId: number): Promise<void>
|
|
473
|
+
|
|
413
474
|
releaseContext(contextId: number): Promise<void>
|
|
414
475
|
|
|
415
476
|
releaseAllContexts(): Promise<void>
|
package/src/index.ts
CHANGED
|
@@ -14,6 +14,10 @@ import type {
|
|
|
14
14
|
NativeCompletionTokenProbItem,
|
|
15
15
|
NativeCompletionResultTimings,
|
|
16
16
|
JinjaFormattedChatResult,
|
|
17
|
+
NativeTTSType,
|
|
18
|
+
NativeAudioCompletionResult,
|
|
19
|
+
NativeAudioTokensResult,
|
|
20
|
+
NativeAudioDecodeResult,
|
|
17
21
|
} from './NativeCactus'
|
|
18
22
|
import type {
|
|
19
23
|
SchemaGrammarConverterPropOrder,
|
|
@@ -22,7 +26,7 @@ import type {
|
|
|
22
26
|
import { SchemaGrammarConverter, convertJsonSchemaToGrammar } from './grammar'
|
|
23
27
|
import type { CactusMessagePart, CactusOAICompatibleMessage } from './chat'
|
|
24
28
|
import { formatChat } from './chat'
|
|
25
|
-
|
|
29
|
+
import { Tools, injectToolsIntoMessages, parseAndExecuteTool, updateMessagesWithToolCall } from './tools'
|
|
26
30
|
export type {
|
|
27
31
|
NativeContextParams,
|
|
28
32
|
NativeLlamaContext,
|
|
@@ -44,7 +48,7 @@ export type {
|
|
|
44
48
|
SchemaGrammarConverterBuiltinRule,
|
|
45
49
|
}
|
|
46
50
|
|
|
47
|
-
export { SchemaGrammarConverter, convertJsonSchemaToGrammar }
|
|
51
|
+
export { SchemaGrammarConverter, convertJsonSchemaToGrammar, Tools }
|
|
48
52
|
|
|
49
53
|
const EVENT_ON_INIT_CONTEXT_PROGRESS = '@Cactus_onInitContextProgress'
|
|
50
54
|
const EVENT_ON_TOKEN = '@Cactus_onToken'
|
|
@@ -227,6 +231,49 @@ export class LlamaContext {
|
|
|
227
231
|
})
|
|
228
232
|
}
|
|
229
233
|
|
|
234
|
+
async completionWithTools(
|
|
235
|
+
params: CompletionParams & {tools: Tools},
|
|
236
|
+
callback?: (data: TokenData) => void,
|
|
237
|
+
recursionCount: number = 0,
|
|
238
|
+
recursionLimit: number = 3
|
|
239
|
+
): Promise<NativeCompletionResult> {
|
|
240
|
+
if (!params.messages) { // tool calling only works with messages
|
|
241
|
+
return this.completion(params, callback);
|
|
242
|
+
}
|
|
243
|
+
if (!params.tools) { // no tools => default completion
|
|
244
|
+
return this.completion(params, callback);
|
|
245
|
+
}
|
|
246
|
+
if (recursionCount >= recursionLimit) {
|
|
247
|
+
return this.completion(params, callback);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
let messages = [...params?.messages || []]; // avoid mutating the original
|
|
251
|
+
|
|
252
|
+
if (recursionCount === 0) {
|
|
253
|
+
messages = injectToolsIntoMessages(messages, params.tools);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
const result = await this.completion({...params, messages}, callback);
|
|
257
|
+
|
|
258
|
+
const {toolCalled, toolName, toolInput, toolOutput} =
|
|
259
|
+
await parseAndExecuteTool(result, params.tools);
|
|
260
|
+
|
|
261
|
+
if (toolCalled && toolName && toolInput) {
|
|
262
|
+
const newMessages = updateMessagesWithToolCall(
|
|
263
|
+
messages, toolName, toolInput, toolOutput
|
|
264
|
+
);
|
|
265
|
+
|
|
266
|
+
return await this.completionWithTools(
|
|
267
|
+
{...params, messages: newMessages},
|
|
268
|
+
callback,
|
|
269
|
+
recursionCount + 1,
|
|
270
|
+
recursionLimit
|
|
271
|
+
);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
return result;
|
|
275
|
+
}
|
|
276
|
+
|
|
230
277
|
async completion(
|
|
231
278
|
params: CompletionParams,
|
|
232
279
|
callback?: (data: TokenData) => void,
|
|
@@ -480,3 +527,67 @@ export async function initLlama(
|
|
|
480
527
|
export async function releaseAllLlama(): Promise<void> {
|
|
481
528
|
return Cactus.releaseAllContexts()
|
|
482
529
|
}
|
|
530
|
+
|
|
531
|
+
export const initContext = async (params: NativeContextParams) => {
|
|
532
|
+
return await Cactus.initContext(contextIdCounter++, params);
|
|
533
|
+
};
|
|
534
|
+
|
|
535
|
+
export const initMultimodal = async (contextId: number, mmprojPath: string, useGpu: boolean = false) => {
|
|
536
|
+
return await Cactus.initMultimodal(contextId, mmprojPath, useGpu);
|
|
537
|
+
};
|
|
538
|
+
|
|
539
|
+
export const isMultimodalEnabled = async (contextId: number) => {
|
|
540
|
+
return await Cactus.isMultimodalEnabled(contextId);
|
|
541
|
+
};
|
|
542
|
+
|
|
543
|
+
export const isMultimodalSupportVision = async (contextId: number) => {
|
|
544
|
+
return await Cactus.isMultimodalSupportVision(contextId);
|
|
545
|
+
};
|
|
546
|
+
|
|
547
|
+
export const isMultimodalSupportAudio = async (contextId: number) => {
|
|
548
|
+
return await Cactus.isMultimodalSupportAudio(contextId);
|
|
549
|
+
};
|
|
550
|
+
|
|
551
|
+
export const releaseMultimodal = async (contextId: number) => {
|
|
552
|
+
return await Cactus.releaseMultimodal(contextId);
|
|
553
|
+
};
|
|
554
|
+
|
|
555
|
+
export const multimodalCompletion = async (contextId: number, prompt: string, mediaPaths: string[], params: NativeCompletionParams): Promise<NativeCompletionResult> => {
|
|
556
|
+
return await Cactus.multimodalCompletion(contextId, prompt, mediaPaths, params);
|
|
557
|
+
};
|
|
558
|
+
|
|
559
|
+
export const initVocoder = async (contextId: number, vocoderModelPath: string) => {
|
|
560
|
+
return await Cactus.initVocoder(contextId, vocoderModelPath);
|
|
561
|
+
};
|
|
562
|
+
|
|
563
|
+
export const isVocoderEnabled = async (contextId: number) => {
|
|
564
|
+
return await Cactus.isVocoderEnabled(contextId);
|
|
565
|
+
};
|
|
566
|
+
|
|
567
|
+
export const getTTSType = async (contextId: number): Promise<NativeTTSType> => {
|
|
568
|
+
return await Cactus.getTTSType(contextId);
|
|
569
|
+
};
|
|
570
|
+
|
|
571
|
+
export const getFormattedAudioCompletion = async (contextId: number, speakerJsonStr: string, textToSpeak: string): Promise<NativeAudioCompletionResult> => {
|
|
572
|
+
return await Cactus.getFormattedAudioCompletion(contextId, speakerJsonStr, textToSpeak);
|
|
573
|
+
};
|
|
574
|
+
|
|
575
|
+
export const getAudioCompletionGuideTokens = async (contextId: number, textToSpeak: string): Promise<NativeAudioTokensResult> => {
|
|
576
|
+
return await Cactus.getAudioCompletionGuideTokens(contextId, textToSpeak);
|
|
577
|
+
};
|
|
578
|
+
|
|
579
|
+
export const decodeAudioTokens = async (contextId: number, tokens: number[]): Promise<NativeAudioDecodeResult> => {
|
|
580
|
+
return await Cactus.decodeAudioTokens(contextId, tokens);
|
|
581
|
+
};
|
|
582
|
+
|
|
583
|
+
export const releaseVocoder = async (contextId: number) => {
|
|
584
|
+
return await Cactus.releaseVocoder(contextId);
|
|
585
|
+
};
|
|
586
|
+
|
|
587
|
+
export const tokenize = async (contextId: number, text: string, mediaPaths?: string[]): Promise<NativeTokenizeResult> => {
|
|
588
|
+
if (mediaPaths && mediaPaths.length > 0) {
|
|
589
|
+
return await Cactus.tokenize(contextId, text, mediaPaths);
|
|
590
|
+
} else {
|
|
591
|
+
return await Cactus.tokenize(contextId, text);
|
|
592
|
+
}
|
|
593
|
+
};
|