node-llama-cpp 3.0.0-beta.37 → 3.0.0-beta.39

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 (167) hide show
  1. package/bins/linux-arm64/_nlcBuildMetadata.json +1 -1
  2. package/bins/linux-arm64/libggml.so +0 -0
  3. package/bins/linux-arm64/libllama.so +0 -0
  4. package/bins/linux-arm64/llama-addon.node +0 -0
  5. package/bins/linux-armv7l/_nlcBuildMetadata.json +1 -1
  6. package/bins/linux-armv7l/libggml.so +0 -0
  7. package/bins/linux-armv7l/libllama.so +0 -0
  8. package/bins/linux-armv7l/llama-addon.node +0 -0
  9. package/bins/linux-x64/_nlcBuildMetadata.json +1 -1
  10. package/bins/linux-x64/libggml.so +0 -0
  11. package/bins/linux-x64/libllama.so +0 -0
  12. package/bins/linux-x64/llama-addon.node +0 -0
  13. package/bins/linux-x64-vulkan/_nlcBuildMetadata.json +1 -1
  14. package/bins/linux-x64-vulkan/libggml.so +0 -0
  15. package/bins/linux-x64-vulkan/libllama.so +0 -0
  16. package/bins/linux-x64-vulkan/llama-addon.node +0 -0
  17. package/bins/linux-x64-vulkan/vulkan-shaders-gen +0 -0
  18. package/bins/mac-arm64-metal/_nlcBuildMetadata.json +1 -1
  19. package/bins/mac-arm64-metal/ggml-common.h +24 -0
  20. package/bins/mac-arm64-metal/ggml-metal.metal +181 -552
  21. package/bins/mac-arm64-metal/libggml.dylib +0 -0
  22. package/bins/mac-arm64-metal/libllama.dylib +0 -0
  23. package/bins/mac-arm64-metal/llama-addon.node +0 -0
  24. package/bins/mac-x64/_nlcBuildMetadata.json +1 -1
  25. package/bins/mac-x64/libggml.dylib +0 -0
  26. package/bins/mac-x64/libllama.dylib +0 -0
  27. package/bins/mac-x64/llama-addon.node +0 -0
  28. package/bins/win-arm64/_nlcBuildMetadata.json +1 -1
  29. package/bins/win-arm64/ggml.dll +0 -0
  30. package/bins/win-arm64/llama-addon.exp +0 -0
  31. package/bins/win-arm64/llama-addon.lib +0 -0
  32. package/bins/win-arm64/llama-addon.node +0 -0
  33. package/bins/win-arm64/llama.dll +0 -0
  34. package/bins/win-x64/_nlcBuildMetadata.json +1 -1
  35. package/bins/win-x64/ggml.dll +0 -0
  36. package/bins/win-x64/llama-addon.node +0 -0
  37. package/bins/win-x64/llama.dll +0 -0
  38. package/bins/win-x64-vulkan/_nlcBuildMetadata.json +1 -1
  39. package/bins/win-x64-vulkan/ggml.dll +0 -0
  40. package/bins/win-x64-vulkan/llama-addon.node +0 -0
  41. package/bins/win-x64-vulkan/llama.dll +0 -0
  42. package/bins/win-x64-vulkan/vulkan-shaders-gen.exe +0 -0
  43. package/dist/ChatWrapper.d.ts +2 -1
  44. package/dist/ChatWrapper.js +19 -5
  45. package/dist/ChatWrapper.js.map +1 -1
  46. package/dist/bindings/AddonTypes.d.ts +13 -2
  47. package/dist/bindings/getLlama.d.ts +3 -2
  48. package/dist/bindings/getLlama.js +1 -1
  49. package/dist/bindings/getLlama.js.map +1 -1
  50. package/dist/chatWrappers/FunctionaryChatWrapper.js +8 -5
  51. package/dist/chatWrappers/FunctionaryChatWrapper.js.map +1 -1
  52. package/dist/chatWrappers/GemmaChatWrapper.js +1 -1
  53. package/dist/chatWrappers/GemmaChatWrapper.js.map +1 -1
  54. package/dist/chatWrappers/Llama3ChatWrapper.js +5 -6
  55. package/dist/chatWrappers/Llama3ChatWrapper.js.map +1 -1
  56. package/dist/chatWrappers/Llama3_1ChatWrapper.d.ts +31 -0
  57. package/dist/chatWrappers/Llama3_1ChatWrapper.js +223 -0
  58. package/dist/chatWrappers/Llama3_1ChatWrapper.js.map +1 -0
  59. package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.d.ts +9 -0
  60. package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js.map +1 -1
  61. package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.d.ts +17 -2
  62. package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.js +39 -2
  63. package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.js.map +1 -1
  64. package/dist/chatWrappers/utils/jsonDumps.d.ts +7 -0
  65. package/dist/chatWrappers/utils/jsonDumps.js +18 -0
  66. package/dist/chatWrappers/utils/jsonDumps.js.map +1 -0
  67. package/dist/chatWrappers/utils/resolveChatWrapper.d.ts +5 -3
  68. package/dist/chatWrappers/utils/resolveChatWrapper.js +50 -4
  69. package/dist/chatWrappers/utils/resolveChatWrapper.js.map +1 -1
  70. package/dist/cli/commands/ChatCommand.d.ts +1 -1
  71. package/dist/cli/commands/ChatCommand.js +5 -5
  72. package/dist/cli/commands/ChatCommand.js.map +1 -1
  73. package/dist/cli/commands/CompleteCommand.js +5 -3
  74. package/dist/cli/commands/CompleteCommand.js.map +1 -1
  75. package/dist/cli/commands/InfillCommand.js +5 -3
  76. package/dist/cli/commands/InfillCommand.js.map +1 -1
  77. package/dist/cli/recommendedModels.js +43 -24
  78. package/dist/cli/recommendedModels.js.map +1 -1
  79. package/dist/cli/utils/interactivelyAskForModel.d.ts +2 -1
  80. package/dist/cli/utils/interactivelyAskForModel.js +19 -9
  81. package/dist/cli/utils/interactivelyAskForModel.js.map +1 -1
  82. package/dist/cli/utils/resolveCommandGgufPath.d.ts +2 -1
  83. package/dist/cli/utils/resolveCommandGgufPath.js +3 -2
  84. package/dist/cli/utils/resolveCommandGgufPath.js.map +1 -1
  85. package/dist/consts.d.ts +1 -0
  86. package/dist/consts.js +1 -0
  87. package/dist/consts.js.map +1 -1
  88. package/dist/evaluator/LlamaChat/LlamaChat.d.ts +22 -0
  89. package/dist/evaluator/LlamaChat/LlamaChat.js +65 -34
  90. package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -1
  91. package/dist/evaluator/LlamaChatSession/LlamaChatSession.d.ts +28 -6
  92. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js +22 -16
  93. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -1
  94. package/dist/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.js +4 -5
  95. package/dist/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.js.map +1 -1
  96. package/dist/evaluator/LlamaCompletion.d.ts +13 -2
  97. package/dist/evaluator/LlamaCompletion.js +10 -5
  98. package/dist/evaluator/LlamaCompletion.js.map +1 -1
  99. package/dist/evaluator/LlamaContext/LlamaContext.d.ts +1 -1
  100. package/dist/evaluator/LlamaContext/LlamaContext.js +60 -0
  101. package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -1
  102. package/dist/evaluator/LlamaContext/types.d.ts +21 -0
  103. package/dist/evaluator/LlamaGrammar.d.ts +6 -3
  104. package/dist/evaluator/LlamaGrammar.js +2 -2
  105. package/dist/evaluator/LlamaGrammar.js.map +1 -1
  106. package/dist/evaluator/LlamaModel/LlamaModel.d.ts +16 -32
  107. package/dist/evaluator/LlamaModel/LlamaModel.js +94 -53
  108. package/dist/evaluator/LlamaModel/LlamaModel.js.map +1 -1
  109. package/dist/gguf/consts.d.ts +1 -0
  110. package/dist/gguf/consts.js +4 -0
  111. package/dist/gguf/consts.js.map +1 -1
  112. package/dist/gguf/insights/GgufInsights.js +4 -0
  113. package/dist/gguf/insights/GgufInsights.js.map +1 -1
  114. package/dist/gguf/parser/GgufV2Parser.js +3 -1
  115. package/dist/gguf/parser/GgufV2Parser.js.map +1 -1
  116. package/dist/gguf/types/GgufMetadataTypes.d.ts +16 -0
  117. package/dist/gguf/types/GgufMetadataTypes.js.map +1 -1
  118. package/dist/gguf/utils/convertMetadataKeyValueRecordToNestedObject.d.ts +3 -2
  119. package/dist/gguf/utils/convertMetadataKeyValueRecordToNestedObject.js +44 -8
  120. package/dist/gguf/utils/convertMetadataKeyValueRecordToNestedObject.js.map +1 -1
  121. package/dist/index.d.ts +4 -2
  122. package/dist/index.js +3 -1
  123. package/dist/index.js.map +1 -1
  124. package/dist/types.d.ts +15 -1
  125. package/dist/types.js.map +1 -1
  126. package/dist/utils/DeepPartialObject.d.ts +3 -0
  127. package/dist/utils/DeepPartialObject.js +2 -0
  128. package/dist/utils/DeepPartialObject.js.map +1 -0
  129. package/dist/utils/StopGenerationDetector.d.ts +6 -3
  130. package/dist/utils/StopGenerationDetector.js +22 -7
  131. package/dist/utils/StopGenerationDetector.js.map +1 -1
  132. package/dist/utils/TokenStreamRegulator.d.ts +1 -0
  133. package/dist/utils/TokenStreamRegulator.js +23 -5
  134. package/dist/utils/TokenStreamRegulator.js.map +1 -1
  135. package/dist/utils/resolveLastTokens.d.ts +2 -0
  136. package/dist/utils/resolveLastTokens.js +12 -0
  137. package/dist/utils/resolveLastTokens.js.map +1 -0
  138. package/llama/CMakeLists.txt +1 -1
  139. package/llama/addon/AddonContext.cpp +772 -0
  140. package/llama/addon/AddonContext.h +53 -0
  141. package/llama/addon/AddonGrammar.cpp +44 -0
  142. package/llama/addon/AddonGrammar.h +18 -0
  143. package/llama/addon/AddonGrammarEvaluationState.cpp +28 -0
  144. package/llama/addon/AddonGrammarEvaluationState.h +15 -0
  145. package/llama/addon/AddonModel.cpp +681 -0
  146. package/llama/addon/AddonModel.h +61 -0
  147. package/llama/addon/AddonModelData.cpp +25 -0
  148. package/llama/addon/AddonModelData.h +15 -0
  149. package/llama/addon/AddonModelLora.cpp +107 -0
  150. package/llama/addon/AddonModelLora.h +28 -0
  151. package/llama/addon/addon.cpp +217 -0
  152. package/llama/addon/addonGlobals.cpp +22 -0
  153. package/llama/addon/addonGlobals.h +12 -0
  154. package/llama/addon/globals/addonLog.cpp +135 -0
  155. package/llama/addon/globals/addonLog.h +21 -0
  156. package/llama/addon/globals/addonProgress.cpp +15 -0
  157. package/llama/addon/globals/addonProgress.h +15 -0
  158. package/llama/addon/globals/getGpuInfo.cpp +108 -0
  159. package/llama/addon/globals/getGpuInfo.h +6 -0
  160. package/llama/binariesGithubRelease.json +1 -1
  161. package/llama/gitRelease.bundle +0 -0
  162. package/llama/grammars/README.md +1 -1
  163. package/llama/llama.cpp.info.json +1 -1
  164. package/package.json +3 -3
  165. package/templates/packed/electron-typescript-react.json +1 -1
  166. package/templates/packed/node-typescript.json +1 -1
  167. package/llama/addon.cpp +0 -2014
@@ -0,0 +1,108 @@
1
+ #include "getGpuInfo.h"
2
+ #include "addonLog.h"
3
+
4
+ #ifdef GPU_INFO_USE_CUDA
5
+ # include "../../gpuInfo/cuda-gpu-info.h"
6
+ #endif
7
+ #ifdef GPU_INFO_USE_VULKAN
8
+ # include "../../gpuInfo/vulkan-gpu-info.h"
9
+ #endif
10
+ #ifdef GPU_INFO_USE_METAL
11
+ # include "../../gpuInfo/metal-gpu-info.h"
12
+ #endif
13
+
14
+
15
+ #ifdef GPU_INFO_USE_CUDA
16
+ void logCudaError(const char* message) {
17
+ addonLlamaCppLogCallback(GGML_LOG_LEVEL_ERROR, (std::string("CUDA error: ") + std::string(message)).c_str(), nullptr);
18
+ }
19
+ #endif
20
+ #ifdef GPU_INFO_USE_VULKAN
21
+ void logVulkanWarning(const char* message) {
22
+ addonLlamaCppLogCallback(GGML_LOG_LEVEL_WARN, (std::string("Vulkan warning: ") + std::string(message)).c_str(), nullptr);
23
+ }
24
+ #endif
25
+
26
+ Napi::Value getGpuVramInfo(const Napi::CallbackInfo& info) {
27
+ uint64_t total = 0;
28
+ uint64_t used = 0;
29
+
30
+ #ifdef GPU_INFO_USE_CUDA
31
+ size_t cudaDeviceTotal = 0;
32
+ size_t cudaDeviceUsed = 0;
33
+ bool cudeGetInfoSuccess = gpuInfoGetTotalCudaDevicesInfo(&cudaDeviceTotal, &cudaDeviceUsed, logCudaError);
34
+
35
+ if (cudeGetInfoSuccess) {
36
+ total += cudaDeviceTotal;
37
+ used += cudaDeviceUsed;
38
+ }
39
+ #endif
40
+
41
+ #ifdef GPU_INFO_USE_VULKAN
42
+ uint64_t vulkanDeviceTotal = 0;
43
+ uint64_t vulkanDeviceUsed = 0;
44
+ const bool vulkanDeviceSupportsMemoryBudgetExtension = gpuInfoGetTotalVulkanDevicesInfo(&vulkanDeviceTotal, &vulkanDeviceUsed, logVulkanWarning);
45
+
46
+ if (vulkanDeviceSupportsMemoryBudgetExtension) {
47
+ total += vulkanDeviceTotal;
48
+ used += vulkanDeviceUsed;
49
+ }
50
+ #endif
51
+
52
+ #ifdef GPU_INFO_USE_METAL
53
+ uint64_t metalDeviceTotal = 0;
54
+ uint64_t metalDeviceUsed = 0;
55
+ getMetalGpuInfo(&metalDeviceTotal, &metalDeviceUsed);
56
+
57
+ total += metalDeviceTotal;
58
+ used += metalDeviceUsed;
59
+ #endif
60
+
61
+ Napi::Object result = Napi::Object::New(info.Env());
62
+ result.Set("total", Napi::Number::From(info.Env(), total));
63
+ result.Set("used", Napi::Number::From(info.Env(), used));
64
+
65
+ return result;
66
+ }
67
+
68
+ Napi::Value getGpuDeviceInfo(const Napi::CallbackInfo& info) {
69
+ std::vector<std::string> deviceNames;
70
+
71
+ #ifdef GPU_INFO_USE_CUDA
72
+ gpuInfoGetCudaDeviceNames(&deviceNames, logCudaError);
73
+ #endif
74
+
75
+ #ifdef GPU_INFO_USE_VULKAN
76
+ gpuInfoGetVulkanDeviceNames(&deviceNames, logVulkanWarning);
77
+ #endif
78
+
79
+ #ifdef GPU_INFO_USE_METAL
80
+ getMetalGpuDeviceNames(&deviceNames);
81
+ #endif
82
+
83
+ Napi::Object result = Napi::Object::New(info.Env());
84
+
85
+ Napi::Array deviceNamesNapiArray = Napi::Array::New(info.Env(), deviceNames.size());
86
+ for (size_t i = 0; i < deviceNames.size(); ++i) {
87
+ deviceNamesNapiArray[i] = Napi::String::New(info.Env(), deviceNames[i]);
88
+ }
89
+ result.Set("deviceNames", deviceNamesNapiArray);
90
+
91
+ return result;
92
+ }
93
+
94
+ Napi::Value getGpuType(const Napi::CallbackInfo& info) {
95
+ #ifdef GPU_INFO_USE_CUDA
96
+ return Napi::String::New(info.Env(), "cuda");
97
+ #endif
98
+
99
+ #ifdef GPU_INFO_USE_VULKAN
100
+ return Napi::String::New(info.Env(), "vulkan");
101
+ #endif
102
+
103
+ #ifdef GPU_INFO_USE_METAL
104
+ return Napi::String::New(info.Env(), "metal");
105
+ #endif
106
+
107
+ return info.Env().Undefined();
108
+ }
@@ -0,0 +1,6 @@
1
+ #pragma once
2
+ #include "napi.h"
3
+
4
+ Napi::Value getGpuVramInfo(const Napi::CallbackInfo& info);
5
+ Napi::Value getGpuDeviceInfo(const Napi::CallbackInfo& info);
6
+ Napi::Value getGpuType(const Napi::CallbackInfo& info);
@@ -1,3 +1,3 @@
1
1
  {
2
- "release": "b3322"
2
+ "release": "b3479"
3
3
  }
Binary file
@@ -4,7 +4,7 @@ GBNF (GGML BNF) is a format for defining [formal grammars](https://en.wikipedia.
4
4
 
5
5
  ## Background
6
6
 
7
- [Bakus-Naur Form (BNF)](https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form) is a notation for describing the syntax of formal languages like programming languages, file formats, and protocols. GBNF is an extension of BNF that primarily adds a few modern regex-like features.
7
+ [Backus-Naur Form (BNF)](https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form) is a notation for describing the syntax of formal languages like programming languages, file formats, and protocols. GBNF is an extension of BNF that primarily adds a few modern regex-like features.
8
8
 
9
9
  ## Basics
10
10
 
@@ -1,4 +1,4 @@
1
1
  {
2
- "tag": "b3322",
2
+ "tag": "b3479",
3
3
  "llamaCppGithubRepo": "ggerganov/llama.cpp"
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-llama-cpp",
3
- "version": "3.0.0-beta.37",
3
+ "version": "3.0.0-beta.39",
4
4
  "description": "Run AI models locally on your machine with node.js bindings for llama.cpp. Force a JSON schema on the model output on the generation level",
5
5
  "main": "./dist/index.js",
6
6
  "type": "module",
@@ -193,7 +193,7 @@
193
193
  }
194
194
  },
195
195
  "optionalDependencies": {
196
- "@node-llama-cpp/linux-x64-cuda": "3.0.0-beta.37",
197
- "@node-llama-cpp/win-x64-cuda": "3.0.0-beta.37"
196
+ "@node-llama-cpp/linux-x64-cuda": "3.0.0-beta.39",
197
+ "@node-llama-cpp/win-x64-cuda": "3.0.0-beta.39"
198
198
  }
199
199
  }