node-llama-cpp 3.2.0 → 3.3.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 (171) hide show
  1. package/dist/bindings/AddonTypes.d.ts +7 -3
  2. package/dist/bindings/Llama.d.ts +1 -1
  3. package/dist/bindings/Llama.js +17 -2
  4. package/dist/bindings/Llama.js.map +1 -1
  5. package/dist/bindings/getLlama.d.ts +4 -1
  6. package/dist/bindings/getLlama.js +42 -2
  7. package/dist/bindings/getLlama.js.map +1 -1
  8. package/dist/bindings/types.d.ts +3 -1
  9. package/dist/bindings/types.js +2 -0
  10. package/dist/bindings/types.js.map +1 -1
  11. package/dist/bindings/utils/compileLLamaCpp.d.ts +1 -1
  12. package/dist/bindings/utils/compileLLamaCpp.js +41 -2
  13. package/dist/bindings/utils/compileLLamaCpp.js.map +1 -1
  14. package/dist/bindings/utils/testBindingBinary.d.ts +2 -1
  15. package/dist/bindings/utils/testBindingBinary.js +122 -37
  16. package/dist/bindings/utils/testBindingBinary.js.map +1 -1
  17. package/dist/chatWrappers/Llama3_1ChatWrapper.js +3 -2
  18. package/dist/chatWrappers/Llama3_1ChatWrapper.js.map +1 -1
  19. package/dist/chatWrappers/Llama3_2LightweightChatWrapper.d.ts +35 -0
  20. package/dist/chatWrappers/Llama3_2LightweightChatWrapper.js +253 -0
  21. package/dist/chatWrappers/Llama3_2LightweightChatWrapper.js.map +1 -0
  22. package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.d.ts +13 -0
  23. package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.js +30 -0
  24. package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.js.map +1 -1
  25. package/dist/chatWrappers/utils/getModelLinageNames.d.ts +2 -0
  26. package/dist/chatWrappers/utils/getModelLinageNames.js +18 -0
  27. package/dist/chatWrappers/utils/getModelLinageNames.js.map +1 -0
  28. package/dist/chatWrappers/utils/isLlama3_2LightweightModel.d.ts +2 -0
  29. package/dist/chatWrappers/utils/isLlama3_2LightweightModel.js +9 -0
  30. package/dist/chatWrappers/utils/isLlama3_2LightweightModel.js.map +1 -0
  31. package/dist/chatWrappers/utils/resolveChatWrapper.d.ts +4 -2
  32. package/dist/chatWrappers/utils/resolveChatWrapper.js +9 -31
  33. package/dist/chatWrappers/utils/resolveChatWrapper.js.map +1 -1
  34. package/dist/cli/commands/ChatCommand.js +1 -1
  35. package/dist/cli/commands/ChatCommand.js.map +1 -1
  36. package/dist/cli/commands/InitCommand.d.ts +2 -1
  37. package/dist/cli/commands/InitCommand.js +32 -13
  38. package/dist/cli/commands/InitCommand.js.map +1 -1
  39. package/dist/cli/recommendedModels.js +11 -0
  40. package/dist/cli/recommendedModels.js.map +1 -1
  41. package/dist/evaluator/LlamaChat/LlamaChat.js +25 -12
  42. package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -1
  43. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js +140 -132
  44. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -1
  45. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.d.ts +1 -1
  46. package/dist/evaluator/LlamaCompletion.js +9 -10
  47. package/dist/evaluator/LlamaCompletion.js.map +1 -1
  48. package/dist/evaluator/LlamaEmbeddingContext.d.ts +2 -0
  49. package/dist/evaluator/LlamaEmbeddingContext.js +13 -1
  50. package/dist/evaluator/LlamaEmbeddingContext.js.map +1 -1
  51. package/dist/evaluator/LlamaGrammar.js +7 -0
  52. package/dist/evaluator/LlamaGrammar.js.map +1 -1
  53. package/dist/evaluator/LlamaJsonSchemaGrammar.d.ts +3 -2
  54. package/dist/evaluator/LlamaJsonSchemaGrammar.js +3 -0
  55. package/dist/evaluator/LlamaJsonSchemaGrammar.js.map +1 -1
  56. package/dist/evaluator/LlamaModel/LlamaModel.d.ts +20 -0
  57. package/dist/evaluator/LlamaModel/LlamaModel.js +60 -0
  58. package/dist/evaluator/LlamaModel/LlamaModel.js.map +1 -1
  59. package/dist/gguf/fileReaders/GgufFileReader.d.ts +1 -1
  60. package/dist/gguf/fileReaders/GgufFsFileReader.d.ts +1 -1
  61. package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.d.ts +1 -1
  62. package/dist/gguf/insights/GgufInsights.d.ts +2 -0
  63. package/dist/gguf/insights/GgufInsights.js +15 -0
  64. package/dist/gguf/insights/GgufInsights.js.map +1 -1
  65. package/dist/gguf/types/GgufMetadataTypes.d.ts +19 -2
  66. package/dist/gguf/types/GgufMetadataTypes.js +5 -0
  67. package/dist/gguf/types/GgufMetadataTypes.js.map +1 -1
  68. package/dist/index.d.ts +3 -2
  69. package/dist/index.js +2 -1
  70. package/dist/index.js.map +1 -1
  71. package/dist/tsconfig.tsbuildinfo +1 -1
  72. package/dist/types.d.ts +2 -2
  73. package/dist/utils/gbnfJson/GbnfGrammarGenerator.d.ts +5 -0
  74. package/dist/utils/gbnfJson/GbnfGrammarGenerator.js +15 -0
  75. package/dist/utils/gbnfJson/GbnfGrammarGenerator.js.map +1 -1
  76. package/dist/utils/gbnfJson/GbnfTerminal.d.ts +3 -0
  77. package/dist/utils/gbnfJson/GbnfTerminal.js +25 -3
  78. package/dist/utils/gbnfJson/GbnfTerminal.js.map +1 -1
  79. package/dist/utils/gbnfJson/getGbnfGrammarForGbnfJsonSchema.d.ts +1 -1
  80. package/dist/utils/gbnfJson/getGbnfGrammarForGbnfJsonSchema.js.map +1 -1
  81. package/dist/utils/gbnfJson/terminals/GbnfAnyJson.d.ts +9 -0
  82. package/dist/utils/gbnfJson/terminals/GbnfAnyJson.js +53 -0
  83. package/dist/utils/gbnfJson/terminals/GbnfAnyJson.js.map +1 -0
  84. package/dist/utils/gbnfJson/terminals/GbnfArray.d.ts +11 -2
  85. package/dist/utils/gbnfJson/terminals/GbnfArray.js +64 -15
  86. package/dist/utils/gbnfJson/terminals/GbnfArray.js.map +1 -1
  87. package/dist/utils/gbnfJson/terminals/GbnfBoolean.d.ts +3 -2
  88. package/dist/utils/gbnfJson/terminals/GbnfBoolean.js +13 -7
  89. package/dist/utils/gbnfJson/terminals/GbnfBoolean.js.map +1 -1
  90. package/dist/utils/gbnfJson/terminals/GbnfCommaWhitespace.d.ts +11 -0
  91. package/dist/utils/gbnfJson/terminals/GbnfCommaWhitespace.js +28 -0
  92. package/dist/utils/gbnfJson/terminals/GbnfCommaWhitespace.js.map +1 -0
  93. package/dist/utils/gbnfJson/terminals/GbnfFormatString.d.ts +11 -0
  94. package/dist/utils/gbnfJson/terminals/GbnfFormatString.js +90 -0
  95. package/dist/utils/gbnfJson/terminals/GbnfFormatString.js.map +1 -0
  96. package/dist/utils/gbnfJson/terminals/GbnfGrammar.d.ts +4 -1
  97. package/dist/utils/gbnfJson/terminals/GbnfGrammar.js +8 -1
  98. package/dist/utils/gbnfJson/terminals/GbnfGrammar.js.map +1 -1
  99. package/dist/utils/gbnfJson/terminals/GbnfInsideStringChar.d.ts +5 -0
  100. package/dist/utils/gbnfJson/terminals/GbnfInsideStringChar.js +24 -0
  101. package/dist/utils/gbnfJson/terminals/GbnfInsideStringChar.js.map +1 -0
  102. package/dist/utils/gbnfJson/terminals/GbnfNumber.js +4 -3
  103. package/dist/utils/gbnfJson/terminals/GbnfNumber.js.map +1 -1
  104. package/dist/utils/gbnfJson/terminals/GbnfNumberValue.d.ts +3 -1
  105. package/dist/utils/gbnfJson/terminals/GbnfNumberValue.js +8 -2
  106. package/dist/utils/gbnfJson/terminals/GbnfNumberValue.js.map +1 -1
  107. package/dist/utils/gbnfJson/terminals/GbnfObjectMap.d.ts +14 -5
  108. package/dist/utils/gbnfJson/terminals/GbnfObjectMap.js +67 -9
  109. package/dist/utils/gbnfJson/terminals/GbnfObjectMap.js.map +1 -1
  110. package/dist/utils/gbnfJson/terminals/GbnfOr.d.ts +2 -1
  111. package/dist/utils/gbnfJson/terminals/GbnfOr.js +6 -2
  112. package/dist/utils/gbnfJson/terminals/GbnfOr.js.map +1 -1
  113. package/dist/utils/gbnfJson/terminals/GbnfRepetition.d.ts +7 -1
  114. package/dist/utils/gbnfJson/terminals/GbnfRepetition.js +69 -20
  115. package/dist/utils/gbnfJson/terminals/GbnfRepetition.js.map +1 -1
  116. package/dist/utils/gbnfJson/terminals/GbnfString.d.ts +8 -1
  117. package/dist/utils/gbnfJson/terminals/GbnfString.js +31 -21
  118. package/dist/utils/gbnfJson/terminals/GbnfString.js.map +1 -1
  119. package/dist/utils/gbnfJson/terminals/GbnfStringValue.d.ts +2 -0
  120. package/dist/utils/gbnfJson/terminals/GbnfStringValue.js +7 -4
  121. package/dist/utils/gbnfJson/terminals/GbnfStringValue.js.map +1 -1
  122. package/dist/utils/gbnfJson/terminals/GbnfWhitespace.d.ts +2 -1
  123. package/dist/utils/gbnfJson/terminals/GbnfWhitespace.js +24 -5
  124. package/dist/utils/gbnfJson/terminals/GbnfWhitespace.js.map +1 -1
  125. package/dist/utils/gbnfJson/terminals/gbnfConsts.d.ts +16 -1
  126. package/dist/utils/gbnfJson/terminals/gbnfConsts.js +47 -1
  127. package/dist/utils/gbnfJson/terminals/gbnfConsts.js.map +1 -1
  128. package/dist/utils/gbnfJson/types.d.ts +164 -17
  129. package/dist/utils/gbnfJson/types.js +6 -0
  130. package/dist/utils/gbnfJson/types.js.map +1 -1
  131. package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.js +61 -9
  132. package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.js.map +1 -1
  133. package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js +99 -8
  134. package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js.map +1 -1
  135. package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js +125 -16
  136. package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js.map +1 -1
  137. package/dist/utils/includesText.d.ts +1 -0
  138. package/dist/utils/includesText.js +12 -0
  139. package/dist/utils/includesText.js.map +1 -0
  140. package/dist/utils/tokenizeInput.d.ts +1 -1
  141. package/dist/utils/tokenizeInput.js +3 -1
  142. package/dist/utils/tokenizeInput.js.map +1 -1
  143. package/dist/utils/tokenizerUtils.d.ts +12 -0
  144. package/dist/utils/tokenizerUtils.js +28 -0
  145. package/dist/utils/tokenizerUtils.js.map +1 -0
  146. package/dist/utils/wrapAbortSignal.d.ts +1 -1
  147. package/dist/utils/wrapAbortSignal.js +9 -4
  148. package/dist/utils/wrapAbortSignal.js.map +1 -1
  149. package/llama/CMakeLists.txt +10 -90
  150. package/llama/addon/AddonContext.cpp +2 -1
  151. package/llama/addon/AddonGrammar.cpp +49 -1
  152. package/llama/addon/AddonGrammar.h +3 -0
  153. package/llama/addon/AddonModel.cpp +26 -4
  154. package/llama/addon/AddonModel.h +3 -0
  155. package/llama/addon/addon.cpp +17 -0
  156. package/llama/addon/globals/getGpuInfo.cpp +54 -52
  157. package/llama/binariesGithubRelease.json +1 -1
  158. package/llama/gitRelease.bundle +0 -0
  159. package/llama/gpuInfo/vulkan-gpu-info.cpp +0 -8
  160. package/llama/gpuInfo/vulkan-gpu-info.h +0 -1
  161. package/llama/grammars/README.md +2 -2
  162. package/llama/grammars/english.gbnf +6 -0
  163. package/llama/llama.cpp.info.json +1 -1
  164. package/package.json +49 -45
  165. package/templates/README.md +6 -0
  166. package/templates/packed/electron-typescript-react.json +1 -1
  167. package/templates/packed/node-typescript.json +1 -1
  168. package/llama/gpuInfo/cuda-gpu-info.cu +0 -120
  169. package/llama/gpuInfo/cuda-gpu-info.h +0 -10
  170. package/llama/gpuInfo/metal-gpu-info.h +0 -8
  171. package/llama/gpuInfo/metal-gpu-info.mm +0 -37
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-llama-cpp",
3
- "version": "3.2.0",
3
+ "version": "3.3.1",
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",
@@ -112,7 +112,10 @@
112
112
  "batching",
113
113
  "gpu"
114
114
  ],
115
- "author": "Gilad S.",
115
+ "author": {
116
+ "name": "Gilad S.",
117
+ "url": "https://github.com/giladgd"
118
+ },
116
119
  "license": "MIT",
117
120
  "preferUnplugged": true,
118
121
  "bugs": {
@@ -124,52 +127,53 @@
124
127
  },
125
128
  "homepage": "https://node-llama-cpp.withcat.ai",
126
129
  "devDependencies": {
127
- "@commitlint/cli": "^19.5.0",
128
- "@commitlint/config-conventional": "^19.5.0",
129
- "@eslint/compat": "^1.2.2",
130
+ "@commitlint/cli": "^19.6.0",
131
+ "@commitlint/config-conventional": "^19.6.0",
132
+ "@eslint/compat": "^1.2.3",
130
133
  "@fontsource/inter": "^5.1.0",
131
- "@nolebase/vitepress-plugin-git-changelog": "^2.6.1",
132
- "@nolebase/vitepress-plugin-og-image": "^2.6.1",
134
+ "@nolebase/vitepress-plugin-git-changelog": "^2.11.1",
135
+ "@nolebase/vitepress-plugin-og-image": "^2.11.1",
133
136
  "@resvg/resvg-js": "^2.6.2",
134
137
  "@semantic-release/exec": "^6.0.3",
135
- "@semantic-release/github": "11.0.0",
138
+ "@semantic-release/github": "11.0.1",
136
139
  "@semantic-release/npm": "12.0.1",
137
- "@shikijs/vitepress-twoslash": "^1.22.2",
138
- "@stylistic/eslint-plugin": "^2.9.0",
140
+ "@shikijs/vitepress-twoslash": "^1.24.0",
141
+ "@stylistic/eslint-plugin": "^2.11.0",
139
142
  "@types/async-retry": "^1.4.9",
140
143
  "@types/bytes": "^3.1.4",
141
144
  "@types/cross-spawn": "^6.0.2",
142
145
  "@types/fs-extra": "^11.0.4",
143
- "@types/node": "^22.8.4",
146
+ "@types/node": "^22.10.1",
144
147
  "@types/proper-lockfile": "^4.1.4",
145
148
  "@types/semver": "^7.5.8",
146
149
  "@types/validate-npm-package-name": "^4.0.2",
147
150
  "@types/which": "^3.0.4",
148
151
  "@types/yargs": "^17.0.33",
149
- "@vitest/coverage-v8": "^2.1.4",
150
- "@vitest/ui": "^2.1.4",
151
- "eslint": "^9.13.0",
152
+ "@vitest/coverage-v8": "^2.1.6",
153
+ "@vitest/ui": "^2.1.6",
154
+ "electron": "^33.2.1",
155
+ "eslint": "^9.16.0",
152
156
  "eslint-import-resolver-typescript": "^3.6.3",
153
157
  "eslint-plugin-import": "^2.31.0",
154
- "eslint-plugin-jsdoc": "^50.4.3",
155
- "eslint-plugin-n": "^17.12.0",
158
+ "eslint-plugin-jsdoc": "^50.6.0",
159
+ "eslint-plugin-n": "^17.14.0",
156
160
  "feed": "^4.2.2",
157
- "husky": "^9.1.6",
161
+ "husky": "^9.1.7",
158
162
  "rehype": "^13.0.1",
159
163
  "rimraf": "^6.0.1",
160
164
  "semantic-release": "^24.2.0",
161
165
  "sharp": "^0.33.5",
162
- "tslib": "^2.8.0",
163
- "typedoc": "^0.26.10",
164
- "typedoc-plugin-markdown": "^4.2.9",
165
- "typedoc-plugin-mdn-links": "^3.3.5",
166
- "typedoc-vitepress-theme": "^1.0.2",
167
- "typescript": "^5.6.3",
168
- "typescript-eslint": "^8.12.2",
169
- "vite-node": "^2.1.4",
170
- "vitepress": "^1.4.2",
171
- "vitest": "^2.1.4",
172
- "zx": "^8.1.9"
166
+ "tslib": "^2.8.1",
167
+ "typedoc": "^0.27.2",
168
+ "typedoc-plugin-markdown": "^4.3.1",
169
+ "typedoc-plugin-mdn-links": "^4.0.3",
170
+ "typedoc-vitepress-theme": "^1.1.0",
171
+ "typescript": "^5.7.2",
172
+ "typescript-eslint": "^8.16.0",
173
+ "vite-node": "^2.1.6",
174
+ "vitepress": "^1.5.0",
175
+ "vitest": "^2.1.6",
176
+ "zx": "^8.2.4"
173
177
  },
174
178
  "dependencies": {
175
179
  "@huggingface/jinja": "^0.3.2",
@@ -179,20 +183,20 @@
179
183
  "chmodrp": "^1.0.2",
180
184
  "cmake-js": "^7.3.0",
181
185
  "cross-env": "^7.0.3",
182
- "cross-spawn": "^7.0.3",
186
+ "cross-spawn": "^7.0.6",
183
187
  "env-var": "^7.5.0",
184
188
  "filenamify": "^6.0.0",
185
189
  "fs-extra": "^11.2.0",
186
190
  "ignore": "^5.3.2",
187
- "ipull": "^3.9.0",
191
+ "ipull": "^3.9.2",
188
192
  "is-unicode-supported": "^2.1.0",
189
193
  "lifecycle-utils": "^1.7.0",
190
194
  "log-symbols": "^7.0.0",
191
- "nanoid": "^5.0.8",
192
- "node-addon-api": "^8.2.1",
195
+ "nanoid": "^5.0.9",
196
+ "node-addon-api": "^8.3.0",
193
197
  "octokit": "^4.0.2",
194
- "ora": "^8.1.0",
195
- "pretty-ms": "^9.1.0",
198
+ "ora": "^8.1.1",
199
+ "pretty-ms": "^9.2.0",
196
200
  "proper-lockfile": "^4.1.2",
197
201
  "semver": "^7.6.3",
198
202
  "simple-git": "^3.27.0",
@@ -212,16 +216,16 @@
212
216
  }
213
217
  },
214
218
  "optionalDependencies": {
215
- "@node-llama-cpp/linux-arm64": "3.2.0",
216
- "@node-llama-cpp/linux-armv7l": "3.2.0",
217
- "@node-llama-cpp/linux-x64": "3.2.0",
218
- "@node-llama-cpp/linux-x64-cuda": "3.2.0",
219
- "@node-llama-cpp/linux-x64-vulkan": "3.2.0",
220
- "@node-llama-cpp/mac-arm64-metal": "3.2.0",
221
- "@node-llama-cpp/mac-x64": "3.2.0",
222
- "@node-llama-cpp/win-arm64": "3.2.0",
223
- "@node-llama-cpp/win-x64": "3.2.0",
224
- "@node-llama-cpp/win-x64-cuda": "3.2.0",
225
- "@node-llama-cpp/win-x64-vulkan": "3.2.0"
219
+ "@node-llama-cpp/linux-arm64": "3.3.1",
220
+ "@node-llama-cpp/linux-armv7l": "3.3.1",
221
+ "@node-llama-cpp/linux-x64": "3.3.1",
222
+ "@node-llama-cpp/linux-x64-cuda": "3.3.1",
223
+ "@node-llama-cpp/linux-x64-vulkan": "3.3.1",
224
+ "@node-llama-cpp/mac-arm64-metal": "3.3.1",
225
+ "@node-llama-cpp/mac-x64": "3.3.1",
226
+ "@node-llama-cpp/win-arm64": "3.3.1",
227
+ "@node-llama-cpp/win-x64": "3.3.1",
228
+ "@node-llama-cpp/win-x64-cuda": "3.3.1",
229
+ "@node-llama-cpp/win-x64-vulkan": "3.3.1"
226
230
  }
227
231
  }
@@ -0,0 +1,6 @@
1
+ Use the following command to scaffold a project from a template:
2
+ ```bash
3
+ npm create node-llama-cpp@latest
4
+ ```
5
+
6
+ > Don't use the templates in this repository directly. They are built to be used with `npm create` command ([learn more](https://node-llama-cpp.withcat.ai/guide/))