node-llama-cpp 3.9.0 → 3.11.0

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 (114) hide show
  1. package/dist/bindings/AddonTypes.d.ts +4 -2
  2. package/dist/bindings/Llama.d.ts +2 -2
  3. package/dist/bindings/Llama.js +12 -3
  4. package/dist/bindings/Llama.js.map +1 -1
  5. package/dist/bindings/getLlama.d.ts +40 -2
  6. package/dist/bindings/getLlama.js +16 -7
  7. package/dist/bindings/getLlama.js.map +1 -1
  8. package/dist/bindings/types.d.ts +1 -0
  9. package/dist/bindings/types.js.map +1 -1
  10. package/dist/bindings/utils/getBestComputeLayersAvailable.d.ts +1 -1
  11. package/dist/bindings/utils/getGpuTypesToUseForOption.d.ts +1 -1
  12. package/dist/bindings/utils/getLlamaWithoutBackend.js +1 -1
  13. package/dist/bindings/utils/getLlamaWithoutBackend.js.map +1 -1
  14. package/dist/chatWrappers/QwenChatWrapper.js +5 -3
  15. package/dist/chatWrappers/QwenChatWrapper.js.map +1 -1
  16. package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js.map +1 -1
  17. package/dist/chatWrappers/generic/utils/extractFunctionCallSettingsFromJinjaTemplate.js +80 -5
  18. package/dist/chatWrappers/generic/utils/extractFunctionCallSettingsFromJinjaTemplate.js.map +1 -1
  19. package/dist/chatWrappers/generic/utils/extractSegmentSettingsFromTokenizerAndChatTemplate.js +25 -0
  20. package/dist/chatWrappers/generic/utils/extractSegmentSettingsFromTokenizerAndChatTemplate.js.map +1 -1
  21. package/dist/cli/commands/ChatCommand.js +1 -2
  22. package/dist/cli/commands/ChatCommand.js.map +1 -1
  23. package/dist/cli/commands/inspect/commands/InspectGgufCommand.js +23 -3
  24. package/dist/cli/commands/inspect/commands/InspectGgufCommand.js.map +1 -1
  25. package/dist/cli/commands/inspect/commands/InspectGpuCommand.js +23 -2
  26. package/dist/cli/commands/inspect/commands/InspectGpuCommand.js.map +1 -1
  27. package/dist/config.d.ts +1 -1
  28. package/dist/evaluator/LlamaChat/LlamaChat.js +28 -15
  29. package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -1
  30. package/dist/evaluator/LlamaChat/utils/FunctionCallParamsGrammar.js +1 -1
  31. package/dist/evaluator/LlamaChat/utils/FunctionCallParamsGrammar.js.map +1 -1
  32. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js +2 -2
  33. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -1
  34. package/dist/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.d.ts +2 -0
  35. package/dist/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.js +7 -2
  36. package/dist/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.js.map +1 -1
  37. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.d.ts +5 -5
  38. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js.map +1 -1
  39. package/dist/evaluator/LlamaCompletion.js +2 -2
  40. package/dist/evaluator/LlamaCompletion.js.map +1 -1
  41. package/dist/evaluator/LlamaContext/LlamaContext.js +17 -17
  42. package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -1
  43. package/dist/evaluator/LlamaContext/tokenPredictors/DraftSequenceTokenPredictor.js +5 -5
  44. package/dist/evaluator/LlamaContext/tokenPredictors/DraftSequenceTokenPredictor.js.map +1 -1
  45. package/dist/evaluator/LlamaEmbeddingContext.js +1 -1
  46. package/dist/evaluator/LlamaEmbeddingContext.js.map +1 -1
  47. package/dist/evaluator/LlamaJsonSchemaGrammar.d.ts +3 -3
  48. package/dist/evaluator/LlamaJsonSchemaGrammar.js.map +1 -1
  49. package/dist/evaluator/LlamaModel/LlamaModel.js +3 -3
  50. package/dist/evaluator/LlamaModel/LlamaModel.js.map +1 -1
  51. package/dist/evaluator/LlamaRankingContext.js +1 -1
  52. package/dist/evaluator/LlamaRankingContext.js.map +1 -1
  53. package/dist/gguf/fileReaders/GgufFsFileReader.js +1 -1
  54. package/dist/gguf/fileReaders/GgufFsFileReader.js.map +1 -1
  55. package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.js +1 -1
  56. package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.js.map +1 -1
  57. package/dist/gguf/types/GgufMetadataTypes.d.ts +7 -1
  58. package/dist/gguf/types/GgufMetadataTypes.js +6 -0
  59. package/dist/gguf/types/GgufMetadataTypes.js.map +1 -1
  60. package/dist/index.d.ts +2 -2
  61. package/dist/index.js.map +1 -1
  62. package/dist/tsconfig.tsbuildinfo +1 -1
  63. package/dist/types.d.ts +2 -2
  64. package/dist/utils/LruCache.d.ts +1 -1
  65. package/dist/utils/ReplHistory.js +1 -1
  66. package/dist/utils/ReplHistory.js.map +1 -1
  67. package/dist/utils/gbnfJson/GbnfGrammarGenerator.d.ts +9 -1
  68. package/dist/utils/gbnfJson/GbnfGrammarGenerator.js +18 -0
  69. package/dist/utils/gbnfJson/GbnfGrammarGenerator.js.map +1 -1
  70. package/dist/utils/gbnfJson/GbnfTerminal.d.ts +2 -1
  71. package/dist/utils/gbnfJson/GbnfTerminal.js +17 -2
  72. package/dist/utils/gbnfJson/GbnfTerminal.js.map +1 -1
  73. package/dist/utils/gbnfJson/getGbnfGrammarForGbnfJsonSchema.js +1 -1
  74. package/dist/utils/gbnfJson/getGbnfGrammarForGbnfJsonSchema.js.map +1 -1
  75. package/dist/utils/gbnfJson/terminals/GbnfGrammar.d.ts +1 -1
  76. package/dist/utils/gbnfJson/terminals/GbnfGrammar.js +2 -2
  77. package/dist/utils/gbnfJson/terminals/GbnfGrammar.js.map +1 -1
  78. package/dist/utils/gbnfJson/terminals/GbnfNumberValue.d.ts +1 -1
  79. package/dist/utils/gbnfJson/terminals/GbnfNumberValue.js +2 -2
  80. package/dist/utils/gbnfJson/terminals/GbnfNumberValue.js.map +1 -1
  81. package/dist/utils/gbnfJson/terminals/GbnfOr.d.ts +1 -1
  82. package/dist/utils/gbnfJson/terminals/GbnfOr.js +2 -2
  83. package/dist/utils/gbnfJson/terminals/GbnfOr.js.map +1 -1
  84. package/dist/utils/gbnfJson/terminals/GbnfRef.d.ts +15 -0
  85. package/dist/utils/gbnfJson/terminals/GbnfRef.js +34 -0
  86. package/dist/utils/gbnfJson/terminals/GbnfRef.js.map +1 -0
  87. package/dist/utils/gbnfJson/types.d.ts +51 -29
  88. package/dist/utils/gbnfJson/types.js +3 -0
  89. package/dist/utils/gbnfJson/types.js.map +1 -1
  90. package/dist/utils/gbnfJson/utils/defsScope.d.ts +7 -0
  91. package/dist/utils/gbnfJson/utils/defsScope.js +17 -0
  92. package/dist/utils/gbnfJson/utils/defsScope.js.map +1 -0
  93. package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.d.ts +1 -1
  94. package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.js +50 -8
  95. package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.js.map +1 -1
  96. package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js +43 -14
  97. package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js.map +1 -1
  98. package/dist/utils/getBuildDefaults.d.ts +1 -1
  99. package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js +51 -8
  100. package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js.map +1 -1
  101. package/dist/utils/isLockfileActive.js +2 -2
  102. package/dist/utils/isLockfileActive.js.map +1 -1
  103. package/dist/utils/utilTypes.d.ts +10 -0
  104. package/dist/utils/waitForLockfileRelease.js +3 -3
  105. package/dist/utils/waitForLockfileRelease.js.map +1 -1
  106. package/dist/utils/withLockfile.js +1 -1
  107. package/dist/utils/withLockfile.js.map +1 -1
  108. package/llama/addon/AddonContext.cpp +5 -5
  109. package/llama/addon/addon.cpp +31 -0
  110. package/llama/binariesGithubRelease.json +1 -1
  111. package/llama/gitRelease.bundle +0 -0
  112. package/llama/llama.cpp.info.json +1 -1
  113. package/package.json +16 -16
  114. package/templates/packed/electron-typescript-react.json +1 -1
@@ -587,7 +587,7 @@ Napi::Value AddonContext::DisposeSequence(const Napi::CallbackInfo& info) {
587
587
 
588
588
  int32_t sequenceId = info[0].As<Napi::Number>().Int32Value();
589
589
 
590
- bool result = llama_kv_self_seq_rm(ctx, sequenceId, -1, -1);
590
+ bool result = llama_memory_seq_rm(llama_get_memory(ctx), sequenceId, -1, -1);
591
591
 
592
592
  if (!result) {
593
593
  Napi::Error::New(info.Env(), "Failed to dispose sequence").ThrowAsJavaScriptException();
@@ -606,7 +606,7 @@ Napi::Value AddonContext::RemoveTokenCellsFromSequence(const Napi::CallbackInfo&
606
606
  int32_t startPos = info[1].As<Napi::Number>().Int32Value();
607
607
  int32_t endPos = info[2].As<Napi::Number>().Int32Value();
608
608
 
609
- bool result = llama_kv_self_seq_rm(ctx, sequenceId, startPos, endPos);
609
+ bool result = llama_memory_seq_rm(llama_get_memory(ctx), sequenceId, startPos, endPos);
610
610
 
611
611
  return Napi::Boolean::New(info.Env(), result);
612
612
  }
@@ -621,7 +621,7 @@ Napi::Value AddonContext::ShiftSequenceTokenCells(const Napi::CallbackInfo& info
621
621
  int32_t endPos = info[2].As<Napi::Number>().Int32Value();
622
622
  int32_t shiftDelta = info[3].As<Napi::Number>().Int32Value();
623
623
 
624
- llama_kv_self_seq_add(ctx, sequenceId, startPos, endPos, shiftDelta);
624
+ llama_memory_seq_add(llama_get_memory(ctx), sequenceId, startPos, endPos, shiftDelta);
625
625
 
626
626
  return info.Env().Undefined();
627
627
  }
@@ -634,7 +634,7 @@ Napi::Value AddonContext::GetSequenceKvCacheMinPosition(const Napi::CallbackInfo
634
634
  int32_t sequenceId = info[0].As<Napi::Number>().Int32Value();
635
635
 
636
636
 
637
- const auto minPosition = llama_kv_self_seq_pos_min(ctx, sequenceId);
637
+ const auto minPosition = llama_memory_seq_pos_min(llama_get_memory(ctx), sequenceId);
638
638
 
639
639
  return Napi::Number::New(info.Env(), minPosition);
640
640
  }
@@ -647,7 +647,7 @@ Napi::Value AddonContext::GetSequenceKvCacheMaxPosition(const Napi::CallbackInfo
647
647
  int32_t sequenceId = info[0].As<Napi::Number>().Int32Value();
648
648
 
649
649
 
650
- const auto maxPosition = llama_kv_self_seq_pos_max(ctx, sequenceId);
650
+ const auto maxPosition = llama_memory_seq_pos_max(llama_get_memory(ctx), sequenceId);
651
651
 
652
652
  return Napi::Number::New(info.Env(), maxPosition);
653
653
  }
@@ -196,6 +196,36 @@ Napi::Value addonLoadBackends(const Napi::CallbackInfo& info) {
196
196
  return info.Env().Undefined();
197
197
  }
198
198
 
199
+ Napi::Value addonSetNuma(const Napi::CallbackInfo& info) {
200
+ const bool numaDisabled = info.Length() == 0
201
+ ? true
202
+ : info[0].IsBoolean()
203
+ ? !info[0].As<Napi::Boolean>().Value()
204
+ : false;
205
+
206
+ if (numaDisabled)
207
+ return info.Env().Undefined();
208
+
209
+ const auto numaType = info[0].IsString()
210
+ ? info[0].As<Napi::String>().Utf8Value()
211
+ : "";
212
+
213
+ if (numaType == "distribute") {
214
+ llama_numa_init(GGML_NUMA_STRATEGY_DISTRIBUTE);
215
+ } else if (numaType == "isolate") {
216
+ llama_numa_init(GGML_NUMA_STRATEGY_ISOLATE);
217
+ } else if (numaType == "numactl") {
218
+ llama_numa_init(GGML_NUMA_STRATEGY_NUMACTL);
219
+ } else if (numaType == "mirror") {
220
+ llama_numa_init(GGML_NUMA_STRATEGY_MIRROR);
221
+ } else {
222
+ Napi::Error::New(info.Env(), std::string("Invalid NUMA strategy \"") + numaType + "\"").ThrowAsJavaScriptException();
223
+ return info.Env().Undefined();
224
+ }
225
+
226
+ return info.Env().Undefined();
227
+ }
228
+
199
229
  Napi::Value addonInit(const Napi::CallbackInfo& info) {
200
230
  if (backendInitialized) {
201
231
  Napi::Promise::Deferred deferred = Napi::Promise::Deferred::New(info.Env());
@@ -255,6 +285,7 @@ Napi::Object registerCallback(Napi::Env env, Napi::Object exports) {
255
285
  Napi::PropertyDescriptor::Function("getSwapInfo", getSwapInfo),
256
286
  Napi::PropertyDescriptor::Function("getMemoryInfo", getMemoryInfo),
257
287
  Napi::PropertyDescriptor::Function("loadBackends", addonLoadBackends),
288
+ Napi::PropertyDescriptor::Function("setNuma", addonSetNuma),
258
289
  Napi::PropertyDescriptor::Function("init", addonInit),
259
290
  Napi::PropertyDescriptor::Function("dispose", addonDispose),
260
291
  });
@@ -1,3 +1,3 @@
1
1
  {
2
- "release": "b5590"
2
+ "release": "b6018"
3
3
  }
Binary file
@@ -1,4 +1,4 @@
1
1
  {
2
- "tag": "b5590",
2
+ "tag": "b6018",
3
3
  "llamaCppGithubRepo": "ggml-org/llama.cpp"
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-llama-cpp",
3
- "version": "3.9.0",
3
+ "version": "3.11.0",
4
4
  "description": "Run AI models locally on your machine with node.js bindings for llama.cpp. Enforce a JSON schema on the model output on the generation level",
5
5
  "main": "./dist/index.js",
6
6
  "type": "module",
@@ -157,7 +157,7 @@
157
157
  "@types/yargs": "^17.0.33",
158
158
  "@vitest/coverage-v8": "^3.1.3",
159
159
  "@vitest/ui": "^3.1.3",
160
- "electron": "^36.2.0",
160
+ "electron": "^37.2.4",
161
161
  "eslint": "^9.26.0",
162
162
  "eslint-import-resolver-typescript": "^4.3.4",
163
163
  "eslint-plugin-import": "^2.31.0",
@@ -178,12 +178,12 @@
178
178
  "typescript-eslint": "^8.32.0",
179
179
  "vite-node": "^3.1.3",
180
180
  "vitepress": "^1.6.3",
181
- "vitepress-plugin-llms": "https://pkg.pr.new/vitepress-plugin-llms@51",
181
+ "vitepress-plugin-llms": "^1.7.2",
182
182
  "vitest": "^3.1.3",
183
183
  "zx": "^8.5.4"
184
184
  },
185
185
  "dependencies": {
186
- "@huggingface/jinja": "^0.5.0",
186
+ "@huggingface/jinja": "^0.5.1",
187
187
  "async-retry": "^1.3.3",
188
188
  "bytes": "^3.1.2",
189
189
  "chalk": "^5.4.1",
@@ -197,7 +197,7 @@
197
197
  "ignore": "^7.0.4",
198
198
  "ipull": "^3.9.2",
199
199
  "is-unicode-supported": "^2.1.0",
200
- "lifecycle-utils": "^2.0.0",
200
+ "lifecycle-utils": "^3.0.1",
201
201
  "log-symbols": "^7.0.0",
202
202
  "nanoid": "^5.1.5",
203
203
  "node-addon-api": "^8.3.1",
@@ -223,16 +223,16 @@
223
223
  }
224
224
  },
225
225
  "optionalDependencies": {
226
- "@node-llama-cpp/linux-arm64": "3.9.0",
227
- "@node-llama-cpp/linux-armv7l": "3.9.0",
228
- "@node-llama-cpp/linux-x64": "3.9.0",
229
- "@node-llama-cpp/linux-x64-cuda": "3.9.0",
230
- "@node-llama-cpp/linux-x64-vulkan": "3.9.0",
231
- "@node-llama-cpp/mac-arm64-metal": "3.9.0",
232
- "@node-llama-cpp/mac-x64": "3.9.0",
233
- "@node-llama-cpp/win-arm64": "3.9.0",
234
- "@node-llama-cpp/win-x64": "3.9.0",
235
- "@node-llama-cpp/win-x64-cuda": "3.9.0",
236
- "@node-llama-cpp/win-x64-vulkan": "3.9.0"
226
+ "@node-llama-cpp/linux-arm64": "3.11.0",
227
+ "@node-llama-cpp/linux-armv7l": "3.11.0",
228
+ "@node-llama-cpp/linux-x64": "3.11.0",
229
+ "@node-llama-cpp/linux-x64-cuda": "3.11.0",
230
+ "@node-llama-cpp/linux-x64-vulkan": "3.11.0",
231
+ "@node-llama-cpp/mac-arm64-metal": "3.11.0",
232
+ "@node-llama-cpp/mac-x64": "3.11.0",
233
+ "@node-llama-cpp/win-arm64": "3.11.0",
234
+ "@node-llama-cpp/win-x64": "3.11.0",
235
+ "@node-llama-cpp/win-x64-cuda": "3.11.0",
236
+ "@node-llama-cpp/win-x64-vulkan": "3.11.0"
237
237
  }
238
238
  }