node-llama-cpp 3.7.0 → 3.8.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 (87) hide show
  1. package/dist/bindings/AddonTypes.d.ts +2 -0
  2. package/dist/bindings/getLlama.d.ts +30 -1
  3. package/dist/bindings/getLlama.js +32 -8
  4. package/dist/bindings/getLlama.js.map +1 -1
  5. package/dist/bindings/utils/compileLLamaCpp.js +7 -0
  6. package/dist/bindings/utils/compileLLamaCpp.js.map +1 -1
  7. package/dist/bindings/utils/getLlamaGpuTypes.d.ts +13 -0
  8. package/dist/bindings/utils/getLlamaGpuTypes.js +30 -0
  9. package/dist/bindings/utils/getLlamaGpuTypes.js.map +1 -0
  10. package/dist/bindings/utils/testBindingBinary.js +26 -2
  11. package/dist/bindings/utils/testBindingBinary.js.map +1 -1
  12. package/dist/chatWrappers/QwenChatWrapper.d.ts +7 -0
  13. package/dist/chatWrappers/QwenChatWrapper.js +76 -37
  14. package/dist/chatWrappers/QwenChatWrapper.js.map +1 -1
  15. package/dist/cli/commands/inspect/commands/InspectGpuCommand.js +1 -0
  16. package/dist/cli/commands/inspect/commands/InspectGpuCommand.js.map +1 -1
  17. package/dist/cli/recommendedModels.js +0 -4
  18. package/dist/cli/recommendedModels.js.map +1 -1
  19. package/dist/config.d.ts +1 -0
  20. package/dist/config.js +1 -0
  21. package/dist/config.js.map +1 -1
  22. package/dist/evaluator/LlamaChat/LlamaChat.d.ts +44 -0
  23. package/dist/evaluator/LlamaChat/LlamaChat.js +20 -4
  24. package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -1
  25. package/dist/evaluator/LlamaChatSession/LlamaChatSession.d.ts +19 -2
  26. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js +16 -3
  27. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -1
  28. package/dist/evaluator/LlamaContext/LlamaContext.d.ts +25 -1
  29. package/dist/evaluator/LlamaContext/LlamaContext.js +59 -1
  30. package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -1
  31. package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.d.ts +5 -2
  32. package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.js +5 -3
  33. package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.js.map +1 -1
  34. package/dist/gguf/insights/GgufInsights.js +24 -10
  35. package/dist/gguf/insights/GgufInsights.js.map +1 -1
  36. package/dist/gguf/insights/utils/resolveModelGpuLayersOption.js +57 -13
  37. package/dist/gguf/insights/utils/resolveModelGpuLayersOption.js.map +1 -1
  38. package/dist/gguf/parser/GgufV2Parser.js +24 -17
  39. package/dist/gguf/parser/GgufV2Parser.js.map +1 -1
  40. package/dist/gguf/readGgufFileInfo.d.ts +11 -2
  41. package/dist/gguf/readGgufFileInfo.js +6 -5
  42. package/dist/gguf/readGgufFileInfo.js.map +1 -1
  43. package/dist/gguf/types/GgufMetadataTypes.d.ts +23 -2
  44. package/dist/gguf/types/GgufMetadataTypes.js +17 -0
  45. package/dist/gguf/types/GgufMetadataTypes.js.map +1 -1
  46. package/dist/gguf/utils/normalizeGgufDownloadUrl.d.ts +2 -1
  47. package/dist/gguf/utils/normalizeGgufDownloadUrl.js +4 -2
  48. package/dist/gguf/utils/normalizeGgufDownloadUrl.js.map +1 -1
  49. package/dist/index.d.ts +4 -3
  50. package/dist/index.js +2 -1
  51. package/dist/index.js.map +1 -1
  52. package/dist/tsconfig.tsbuildinfo +1 -1
  53. package/dist/utils/createModelDownloader.d.ts +12 -3
  54. package/dist/utils/createModelDownloader.js +9 -5
  55. package/dist/utils/createModelDownloader.js.map +1 -1
  56. package/dist/utils/modelDownloadEndpoints.d.ts +13 -0
  57. package/dist/utils/modelDownloadEndpoints.js +27 -0
  58. package/dist/utils/modelDownloadEndpoints.js.map +1 -0
  59. package/dist/utils/modelFileAccessTokens.d.ts +5 -0
  60. package/dist/utils/{modelFileAccesTokens.js → modelFileAccessTokens.js} +4 -4
  61. package/dist/utils/modelFileAccessTokens.js.map +1 -0
  62. package/dist/utils/parseModelUri.d.ts +5 -2
  63. package/dist/utils/parseModelUri.js +24 -22
  64. package/dist/utils/parseModelUri.js.map +1 -1
  65. package/dist/utils/resolveModelDestination.d.ts +2 -1
  66. package/dist/utils/resolveModelDestination.js +3 -3
  67. package/dist/utils/resolveModelDestination.js.map +1 -1
  68. package/dist/utils/resolveModelFile.d.ts +7 -1
  69. package/dist/utils/resolveModelFile.js +5 -4
  70. package/dist/utils/resolveModelFile.js.map +1 -1
  71. package/dist/utils/transformPromisable.d.ts +14 -0
  72. package/dist/utils/transformPromisable.js +32 -0
  73. package/dist/utils/transformPromisable.js.map +1 -1
  74. package/llama/CMakeLists.txt +12 -1
  75. package/llama/addon/AddonContext.cpp +139 -1
  76. package/llama/addon/AddonContext.h +3 -0
  77. package/llama/addon/AddonSampler.cpp +0 -1
  78. package/llama/binariesGithubRelease.json +1 -1
  79. package/llama/gitRelease.bundle +0 -0
  80. package/llama/gpuInfo/vulkan-gpu-info.cpp +0 -1
  81. package/llama/grammars/README.md +7 -7
  82. package/llama/llama.cpp.info.json +1 -1
  83. package/package.json +43 -43
  84. package/templates/packed/electron-typescript-react.json +1 -1
  85. package/templates/packed/node-typescript.json +1 -1
  86. package/dist/utils/modelFileAccesTokens.d.ts +0 -4
  87. package/dist/utils/modelFileAccesTokens.js.map +0 -1
@@ -2,8 +2,8 @@ import path from "path";
2
2
  import { normalizeGgufDownloadUrl } from "../gguf/utils/normalizeGgufDownloadUrl.js";
3
3
  import { parseModelUri, resolveParsedModelUri, getAuthorizationHeader } from "./parseModelUri.js";
4
4
  import { isUrl } from "./isUrl.js";
5
- export function resolveModelDestination(modelDestination, convertUrlToUri = false) {
6
- const parsedUri = parseModelUri(modelDestination, convertUrlToUri);
5
+ export function resolveModelDestination(modelDestination, convertUrlToUri = false, endpoints) {
6
+ const parsedUri = parseModelUri(modelDestination, convertUrlToUri, endpoints);
7
7
  if (parsedUri != null) {
8
8
  return {
9
9
  type: "uri",
@@ -17,7 +17,7 @@ export function resolveModelDestination(modelDestination, convertUrlToUri = fals
17
17
  else if (isUrl(modelDestination)) {
18
18
  return {
19
19
  type: "url",
20
- url: normalizeGgufDownloadUrl(modelDestination)
20
+ url: normalizeGgufDownloadUrl(modelDestination, endpoints)
21
21
  };
22
22
  }
23
23
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"resolveModelDestination.js","sourceRoot":"","sources":["../../src/utils/resolveModelDestination.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAC,wBAAwB,EAAC,MAAM,2CAA2C,CAAC;AACnF,OAAO,EAAC,aAAa,EAAkB,qBAAqB,EAAE,sBAAsB,EAAC,MAAM,oBAAoB,CAAC;AAChH,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AAejC,MAAM,UAAU,uBAAuB,CAAC,gBAAwB,EAAE,kBAA2B,KAAK;IAC9F,MAAM,SAAS,GAAG,aAAa,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;IAEnE,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACpB,OAAO;YACH,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,SAAS,CAAC,IAAI,KAAK,UAAU;gBAC9B,CAAC,CAAC,SAAS,CAAC,WAAW;gBACvB,CAAC,CAAC,SAAS;YACf,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,SAAS;SACZ,CAAC;IACN,CAAC;SAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjC,OAAO;YACH,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,wBAAwB,CAAC,gBAAgB,CAAC;SAClD,CAAC;IACN,CAAC;IAED,IAAI,CAAC;QACD,OAAO;YACH,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC;SACtD,CAAC;IACN,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,iBAAiB,gBAAgB,EAAE,CAAC,CAAC;IACzD,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAChD,gBAAwB,EAAE,aAAsC;IAEhE,MAAM,wBAAwB,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;IAE3E,IAAI,wBAAwB,CAAC,IAAI,IAAI,MAAM;QACvC,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC;SAChE,IAAI,wBAAwB,CAAC,IAAI,KAAK,KAAK;QAC5C,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,GAAG,CAAC,CAAC;SAC/D,IAAI,wBAAwB,CAAC,SAAS,CAAC,IAAI,KAAK,UAAU;QAC3D,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAEtF,MAAM,gBAAgB,GAAG,MAAM,qBAAqB,CAAC,wBAAwB,CAAC,SAAS,EAAE;QACrF,mBAAmB,EAAE,sBAAsB,CAAC,aAAa,CAAC;KAC7D,CAAC,CAAC;IACH,OAAO;QACH;YACI,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,gBAAgB,CAAC,WAAW;YACjC,GAAG,EAAE,gBAAgB,CAAC,GAAG;YACzB,SAAS,EAAE,gBAAgB;SAC9B;QACD,gBAAgB,CAAC,WAAW;KAC/B,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"resolveModelDestination.js","sourceRoot":"","sources":["../../src/utils/resolveModelDestination.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAC,wBAAwB,EAAC,MAAM,2CAA2C,CAAC;AACnF,OAAO,EAAC,aAAa,EAAkB,qBAAqB,EAAE,sBAAsB,EAAC,MAAM,oBAAoB,CAAC;AAChH,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AAgBjC,MAAM,UAAU,uBAAuB,CACnC,gBAAwB,EAAE,kBAA2B,KAAK,EAAE,SAAkC;IAE9F,MAAM,SAAS,GAAG,aAAa,CAAC,gBAAgB,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;IAE9E,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACpB,OAAO;YACH,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,SAAS,CAAC,IAAI,KAAK,UAAU;gBAC9B,CAAC,CAAC,SAAS,CAAC,WAAW;gBACvB,CAAC,CAAC,SAAS;YACf,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,SAAS;SACZ,CAAC;IACN,CAAC;SAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjC,OAAO;YACH,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,wBAAwB,CAAC,gBAAgB,EAAE,SAAS,CAAC;SAC7D,CAAC;IACN,CAAC;IAED,IAAI,CAAC;QACD,OAAO;YACH,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC;SACtD,CAAC;IACN,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,iBAAiB,gBAAgB,EAAE,CAAC,CAAC;IACzD,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAChD,gBAAwB,EAAE,aAAsC;IAEhE,MAAM,wBAAwB,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;IAE3E,IAAI,wBAAwB,CAAC,IAAI,IAAI,MAAM;QACvC,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC;SAChE,IAAI,wBAAwB,CAAC,IAAI,KAAK,KAAK;QAC5C,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,GAAG,CAAC,CAAC;SAC/D,IAAI,wBAAwB,CAAC,SAAS,CAAC,IAAI,KAAK,UAAU;QAC3D,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAEtF,MAAM,gBAAgB,GAAG,MAAM,qBAAqB,CAAC,wBAAwB,CAAC,SAAS,EAAE;QACrF,mBAAmB,EAAE,sBAAsB,CAAC,aAAa,CAAC;KAC7D,CAAC,CAAC;IACH,OAAO;QACH;YACI,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,gBAAgB,CAAC,WAAW;YACjC,GAAG,EAAE,gBAAgB,CAAC,GAAG;YACzB,SAAS,EAAE,gBAAgB;SAC9B;QACD,gBAAgB,CAAC,WAAW;KAC/B,CAAC;AACN,CAAC"}
@@ -1,4 +1,5 @@
1
- import { ModelFileAccessTokens } from "./modelFileAccesTokens.js";
1
+ import { ModelFileAccessTokens } from "./modelFileAccessTokens.js";
2
+ import { ModelDownloadEndpoints } from "./modelDownloadEndpoints.js";
2
3
  export type ResolveModelFileOptions = {
3
4
  /**
4
5
  * The directory to resolve models from, and download models to.
@@ -63,6 +64,11 @@ export type ResolveModelFileOptions = {
63
64
  * Tokens to use to access the remote model file when downloading.
64
65
  */
65
66
  tokens?: ModelFileAccessTokens;
67
+ /**
68
+ * Configure the URLs used for resolving model URIs.
69
+ * @see [Model URIs](https://node-llama-cpp.withcat.ai/guide/downloading-models#model-uris)
70
+ */
71
+ endpoints?: ModelDownloadEndpoints;
66
72
  /**
67
73
  * The signal to use to cancel a download.
68
74
  */
@@ -75,7 +75,7 @@ import { pushAll } from "./pushAll.js";
75
75
  * @returns The resolved model file path
76
76
  */
77
77
  export async function resolveModelFile(uriOrPath, optionsOrDirectory) {
78
- const { directory, download = "auto", verify = false, fileName, headers, cli = true, onProgress, deleteTempFileOnCancel = true, parallel = 4, tokens, signal } = typeof optionsOrDirectory === "string"
78
+ const { directory, download = "auto", verify = false, fileName, headers, cli = true, onProgress, deleteTempFileOnCancel = true, parallel = 4, tokens, endpoints, signal } = typeof optionsOrDirectory === "string"
79
79
  ? { directory: optionsOrDirectory }
80
80
  : (optionsOrDirectory ?? {});
81
81
  const resolvedDirectory = directory || cliModelsDirectory;
@@ -83,7 +83,7 @@ export async function resolveModelFile(uriOrPath, optionsOrDirectory) {
83
83
  let resolvedVerify = verify ?? false;
84
84
  if (download === false)
85
85
  resolvedVerify = false;
86
- const resolvedModelDestination = resolveModelDestination(uriOrPath);
86
+ const resolvedModelDestination = resolveModelDestination(uriOrPath, undefined, endpoints);
87
87
  if (resolvedModelDestination.type === "file") {
88
88
  const resolvedFilePath = path.resolve(resolvedDirectory, uriOrPath);
89
89
  if (await fs.pathExists(resolvedFilePath))
@@ -100,7 +100,7 @@ export async function resolveModelFile(uriOrPath, optionsOrDirectory) {
100
100
  pushAll(expectedFileNames, resolvedModelDestination.parsedUri.possibleFullFilenames);
101
101
  }
102
102
  else if (expectedFileNames.length === 0 && resolvedModelDestination.type === "url") {
103
- const enforcedParsedUrl = resolveModelDestination(uriOrPath, true);
103
+ const enforcedParsedUrl = resolveModelDestination(uriOrPath, true, endpoints);
104
104
  if (enforcedParsedUrl != null && enforcedParsedUrl.type === "uri") {
105
105
  if (enforcedParsedUrl.parsedUri.type === "resolved")
106
106
  expectedFileNames.push(enforcedParsedUrl.parsedUri.fullFilename);
@@ -140,7 +140,8 @@ export async function resolveModelFile(uriOrPath, optionsOrDirectory) {
140
140
  fileName: fileName || undefined,
141
141
  parallelDownloads: parallel,
142
142
  onProgress,
143
- tokens
143
+ tokens,
144
+ endpoints
144
145
  });
145
146
  if (foundExpectedFilePath != null && downloader.totalFiles === 1 && await fs.pathExists(downloader.entrypointFilePath)) {
146
147
  const fileStats = await fs.stat(foundExpectedFilePath);
@@ -1 +1 @@
1
- {"version":3,"file":"resolveModelFile.js","sourceRoot":"","sources":["../../src/utils/resolveModelFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolveModelFile.js","sourceRoot":"","sources":["../../src/utils/resolveModelFile.ts"],"names":[],"mappings":"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"}
@@ -37,4 +37,18 @@ export declare function promisableLoop<R>({ condition, callback, afterthought, r
37
37
  /** The value to return when the loop is done */
38
38
  returnValue: () => Promisable<R>;
39
39
  }): Promisable<R>;
40
+ /**
41
+ * Calls the given getters in order, and when a promise is encountered, waits for it to resolve before continuing.
42
+ * The result is transformed using the transformer function.
43
+ *
44
+ * This is used as a performance optimization to avoid adding many microtasks to the event loop,
45
+ * which makes reading from buffers significantly faster.
46
+ * @param getters - An array of functions that return values or promises
47
+ * @param transformer - The transformer function that takes the promisable values and transforms them into the result of this function
48
+ */
49
+ export declare function transformPromisablesInOrder<const T extends (() => Promisable<any>)[], const R = {
50
+ readonly [Index in keyof T]: Awaited<ReturnType<T[Index]>>;
51
+ }>(getters: T, transformer?: (values: {
52
+ readonly [Index in keyof T]: Awaited<ReturnType<T[Index]>>;
53
+ }) => Promisable<R>): Promisable<R>;
40
54
  export type Promisable<T> = T | Promise<T>;
@@ -60,4 +60,36 @@ export function promisableLoop({ condition, callback, afterthought = () => void
60
60
  }
61
61
  return iterate();
62
62
  }
63
+ /**
64
+ * Calls the given getters in order, and when a promise is encountered, waits for it to resolve before continuing.
65
+ * The result is transformed using the transformer function.
66
+ *
67
+ * This is used as a performance optimization to avoid adding many microtasks to the event loop,
68
+ * which makes reading from buffers significantly faster.
69
+ * @param getters - An array of functions that return values or promises
70
+ * @param transformer - The transformer function that takes the promisable values and transforms them into the result of this function
71
+ */
72
+ export function transformPromisablesInOrder(getters, transformer = ((values) => values)) {
73
+ let i = 0;
74
+ const res = [];
75
+ let skipPushingValue = true;
76
+ function iterate(currentValue) {
77
+ if (skipPushingValue)
78
+ skipPushingValue = false;
79
+ else
80
+ res.push(currentValue);
81
+ while (i < getters.length) {
82
+ const getter = getters[i];
83
+ if (getter == null)
84
+ break;
85
+ i++;
86
+ const value = getter();
87
+ if (value instanceof Promise)
88
+ return value.then(iterate);
89
+ res.push(value);
90
+ }
91
+ return transformer(res);
92
+ }
93
+ return iterate(undefined);
94
+ }
63
95
  //# sourceMappingURL=transformPromisable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transformPromisable.js","sourceRoot":"","sources":["../../src/utils/transformPromisable.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAO,KAAoB,EAAE,WAAwC;IACpG,IAAI,KAAK,YAAY,OAAO;QACxB,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEnC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAChC,MAA0D,EAC1D,WAA8E;IAE9E,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,YAAY,OAAO,CAAC;QAChD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEjD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAI,EAC9B,SAAS,EACT,QAAQ,EACR,YAAY,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,EAC3B,WAAW,EAad;IACG,SAAS,OAAO;QACZ,OAAO,IAAI,EAAE,CAAC;YACV,MAAM,cAAc,GAAG,SAAS,EAAE,CAAC;YAEnC,IAAI,cAAc,YAAY,OAAO;gBACjC,OAAO,cAAc;qBAChB,IAAI,CAAC,CAAC,cAAc,EAAiB,EAAE;oBACpC,IAAI,cAAc,EAAE,CAAC;wBACjB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;wBACzB,IAAI,KAAK,YAAY,OAAO;4BACxB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;wBAE1E,OAAO,mBAAmB,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC;oBACxD,CAAC;oBAED,OAAO,WAAW,EAAE,CAAC;gBACzB,CAAC,CAAC,CAAC;YAEX,IAAI,cAAc,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;gBACzB,IAAI,KAAK,YAAY,OAAO;oBACxB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;gBAE1E,MAAM,iBAAiB,GAAG,YAAY,EAAE,CAAC;gBACzC,IAAI,iBAAiB,YAAY,OAAO;oBACpC,OAAO,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAE3C,SAAS;YACb,CAAC;YAED,OAAO,WAAW,EAAE,CAAC;QACzB,CAAC;IACL,CAAC;IAED,OAAO,OAAO,EAAE,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"transformPromisable.js","sourceRoot":"","sources":["../../src/utils/transformPromisable.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,17 @@
1
- cmake_minimum_required(VERSION 3.14)
1
+ cmake_minimum_required(VERSION 3.19)
2
2
 
3
3
  if (NLC_CURRENT_PLATFORM STREQUAL "win-x64" OR NLC_CURRENT_PLATFORM STREQUAL "win-arm64")
4
4
  set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
5
5
  endif()
6
6
 
7
+ if (NLC_CURRENT_PLATFORM STREQUAL "win-x64")
8
+ if (CMAKE_BUILD_TYPE STREQUAL "Debug")
9
+ set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebugDLL" CACHE STRING "" FORCE)
10
+ else()
11
+ set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDLL" CACHE STRING "" FORCE)
12
+ endif()
13
+ endif()
14
+
7
15
  if (NLC_TARGET_PLATFORM STREQUAL "win-arm64" AND (CMAKE_GENERATOR STREQUAL "Ninja" OR CMAKE_GENERATOR STREQUAL "Ninja Multi-Config") AND NOT MINGW)
8
16
  if(NLC_CURRENT_PLATFORM STREQUAL "win-x64")
9
17
  include("./profiles/llvm.win32.host-x64.target-arm64.cmake")
@@ -70,6 +78,9 @@ add_subdirectory("llama.cpp")
70
78
  include_directories("llama.cpp")
71
79
  include_directories("./llama.cpp/common")
72
80
 
81
+ # This is needed to use methods in "llama-grammar.h" and "unicode.h"
82
+ target_include_directories(llama PUBLIC "./llama.cpp/src")
83
+
73
84
  unset(GPU_INFO_HEADERS)
74
85
  unset(GPU_INFO_SOURCES)
75
86
  unset(GPU_INFO_EXTRA_LIBS)
@@ -2,7 +2,6 @@
2
2
  #include <algorithm>
3
3
  #include <cmath>
4
4
  #include "common/common.h"
5
- #include "llama-grammar.h"
6
5
  #include "llama.h"
7
6
 
8
7
  #include "addonGlobals.h"
@@ -703,6 +702,143 @@ Napi::Value AddonContext::SetThreads(const Napi::CallbackInfo& info) {
703
702
  return info.Env().Undefined();
704
703
  }
705
704
 
705
+ class AddonContextSaveSequenceStateToFileWorker : public Napi::AsyncWorker {
706
+ public:
707
+ AddonContext* context;
708
+ std::string filepath;
709
+ llama_seq_id sequenceId;
710
+ std::vector<llama_token> tokens;
711
+ size_t savedFileSize = 0;
712
+
713
+ AddonContextSaveSequenceStateToFileWorker(const Napi::CallbackInfo& info, AddonContext* context)
714
+ : Napi::AsyncWorker(info.Env(), "AddonContextSaveSequenceStateToFileWorker"),
715
+ context(context),
716
+ deferred(Napi::Promise::Deferred::New(info.Env())) {
717
+ context->Ref();
718
+
719
+ filepath = info[0].As<Napi::String>().Utf8Value();
720
+ sequenceId = info[1].As<Napi::Number>().Int32Value();
721
+ Napi::Uint32Array inputTokens = info[2].As<Napi::Uint32Array>();
722
+
723
+ tokens.resize(inputTokens.ElementLength());
724
+ for (size_t i = 0; i < tokens.size(); i++) {
725
+ tokens[i] = inputTokens[i];
726
+ }
727
+ }
728
+ ~AddonContextSaveSequenceStateToFileWorker() {
729
+ context->Unref();
730
+ }
731
+
732
+ Napi::Promise GetPromise() {
733
+ return deferred.Promise();
734
+ }
735
+
736
+ protected:
737
+ Napi::Promise::Deferred deferred;
738
+
739
+ void Execute() {
740
+ try {
741
+ savedFileSize = llama_state_seq_save_file(context->ctx, filepath.c_str(), sequenceId, tokens.data(), tokens.size());
742
+ if (savedFileSize == 0) {
743
+ SetError("Failed to save state to file");
744
+ return;
745
+ }
746
+ } catch (const std::exception& e) {
747
+ SetError(e.what());
748
+ } catch(...) {
749
+ SetError("Unknown error when calling \"llama_state_seq_save_file\"");
750
+ }
751
+ }
752
+ void OnOK() {
753
+ deferred.Resolve(Napi::Number::New(Env(), savedFileSize));
754
+ }
755
+ void OnError(const Napi::Error& err) {
756
+ deferred.Reject(err.Value());
757
+ }
758
+ };
759
+ Napi::Value AddonContext::SaveSequenceStateToFile(const Napi::CallbackInfo& info) {
760
+ if (disposed) {
761
+ Napi::Error::New(info.Env(), "Context is disposed").ThrowAsJavaScriptException();
762
+ return info.Env().Undefined();
763
+ }
764
+
765
+ AddonContextSaveSequenceStateToFileWorker* worker = new AddonContextSaveSequenceStateToFileWorker(info, this);
766
+ worker->Queue();
767
+ return worker->GetPromise();
768
+ }
769
+
770
+ class AddonContextLoadSequenceStateFromFileWorker : public Napi::AsyncWorker {
771
+ public:
772
+ AddonContext* context;
773
+ std::string filepath;
774
+ llama_seq_id sequenceId;
775
+ size_t maxContextSize;
776
+ std::vector<llama_token> tokens;
777
+
778
+ AddonContextLoadSequenceStateFromFileWorker(const Napi::CallbackInfo& info, AddonContext* context)
779
+ : Napi::AsyncWorker(info.Env(), "AddonContextLoadSequenceStateFromFileWorker"),
780
+ context(context),
781
+ deferred(Napi::Promise::Deferred::New(info.Env())) {
782
+ context->Ref();
783
+
784
+ filepath = info[0].As<Napi::String>().Utf8Value();
785
+ sequenceId = info[1].As<Napi::Number>().Int32Value();
786
+ maxContextSize = info[2].As<Napi::Number>().Uint32Value();
787
+
788
+ tokens.resize(maxContextSize);
789
+ }
790
+ ~AddonContextLoadSequenceStateFromFileWorker() {
791
+ context->Unref();
792
+ }
793
+
794
+ Napi::Promise GetPromise() {
795
+ return deferred.Promise();
796
+ }
797
+
798
+ protected:
799
+ Napi::Promise::Deferred deferred;
800
+
801
+ void Execute() {
802
+ try {
803
+ size_t tokenCount = 0;
804
+ const size_t fileSize = llama_state_seq_load_file(context->ctx, filepath.c_str(), sequenceId, tokens.data(), tokens.size(), &tokenCount);
805
+ if (fileSize == 0) {
806
+ SetError("Failed to load state from file. Current context sequence size may be smaller that the state of the file");
807
+ return;
808
+ }
809
+
810
+ tokens.resize(tokenCount);
811
+ } catch (const std::exception& e) {
812
+ SetError(e.what());
813
+ } catch(...) {
814
+ SetError("Unknown error when calling \"llama_state_seq_load_file\"");
815
+ }
816
+ }
817
+ void OnOK() {
818
+ size_t tokenCount = tokens.size();
819
+ Napi::Uint32Array result = Napi::Uint32Array::New(Env(), tokenCount);
820
+
821
+ for (size_t i = 0; i < tokenCount; i++) {
822
+ result[i] = tokens[i];
823
+ }
824
+
825
+ deferred.Resolve(result);
826
+ }
827
+ void OnError(const Napi::Error& err) {
828
+ deferred.Reject(err.Value());
829
+ }
830
+ };
831
+ Napi::Value AddonContext::LoadSequenceStateFromFile(const Napi::CallbackInfo& info) {
832
+ if (disposed) {
833
+ Napi::Error::New(info.Env(), "Context is disposed").ThrowAsJavaScriptException();
834
+ return info.Env().Undefined();
835
+ }
836
+
837
+ AddonContextLoadSequenceStateFromFileWorker* worker = new AddonContextLoadSequenceStateFromFileWorker(info, this);
838
+ worker->Queue();
839
+ return worker->GetPromise();
840
+ }
841
+
706
842
  Napi::Value AddonContext::PrintTimings(const Napi::CallbackInfo& info) {
707
843
  llama_perf_context_print(ctx);
708
844
  llama_perf_context_reset(ctx);
@@ -798,6 +934,8 @@ void AddonContext::init(Napi::Object exports) {
798
934
  InstanceMethod("setThreads", &AddonContext::SetThreads),
799
935
  InstanceMethod("printTimings", &AddonContext::PrintTimings),
800
936
  InstanceMethod("ensureDraftContextIsCompatibleForSpeculative", &AddonContext::EnsureDraftContextIsCompatibleForSpeculative),
937
+ InstanceMethod("saveSequenceStateToFile", &AddonContext::SaveSequenceStateToFile),
938
+ InstanceMethod("loadSequenceStateFromFile", &AddonContext::LoadSequenceStateFromFile),
801
939
  InstanceMethod("setLora", &AddonContext::SetLora),
802
940
  InstanceMethod("dispose", &AddonContext::Dispose),
803
941
  }
@@ -44,6 +44,9 @@ class AddonContext : public Napi::ObjectWrap<AddonContext> {
44
44
  Napi::Value GetThreads(const Napi::CallbackInfo& info);
45
45
  Napi::Value SetThreads(const Napi::CallbackInfo& info);
46
46
 
47
+ Napi::Value SaveSequenceStateToFile(const Napi::CallbackInfo& info);
48
+ Napi::Value LoadSequenceStateFromFile(const Napi::CallbackInfo& info);
49
+
47
50
  Napi::Value PrintTimings(const Napi::CallbackInfo& info);
48
51
  Napi::Value EnsureDraftContextIsCompatibleForSpeculative(const Napi::CallbackInfo& info);
49
52
 
@@ -1,6 +1,5 @@
1
1
  #include <cmath>
2
2
  #include "common/common.h"
3
- #include "llama-grammar.h"
4
3
  #include "llama.h"
5
4
 
6
5
  #include "AddonGrammarEvaluationState.h"
@@ -1,3 +1,3 @@
1
1
  {
2
- "release": "b4980"
2
+ "release": "b5414"
3
3
  }
Binary file
@@ -66,7 +66,6 @@ static bool enumerateVulkanDevices(size_t* total, size_t* used, size_t* unifiedM
66
66
  features2.pNext = &vk11Features;
67
67
 
68
68
  vkGetPhysicalDeviceFeatures2(physicalDevice, &features2);
69
- VkPhysicalDeviceFeatures2 device_features2;
70
69
 
71
70
  if (!vk11Features.storageBuffer16BitAccess) {
72
71
  *checkSupported = false;
@@ -1,6 +1,6 @@
1
1
  # GBNF Guide
2
2
 
3
- GBNF (GGML BNF) is a format for defining [formal grammars](https://en.wikipedia.org/wiki/Formal_grammar) to constrain model outputs in `llama.cpp`. For example, you can use it to force the model to generate valid JSON, or speak only in emojis. GBNF grammars are supported in various ways in `examples/main` and `examples/server`.
3
+ GBNF (GGML BNF) is a format for defining [formal grammars](https://en.wikipedia.org/wiki/Formal_grammar) to constrain model outputs in `llama.cpp`. For example, you can use it to force the model to generate valid JSON, or speak only in emojis. GBNF grammars are supported in various ways in `tools/main` and `tools/server`.
4
4
 
5
5
  ## Background
6
6
 
@@ -110,21 +110,21 @@ While semantically correct, the syntax `x? x? x?.... x?` (with N repetitions) ma
110
110
 
111
111
  You can use GBNF grammars:
112
112
 
113
- - In [llama-server](../examples/server)'s completion endpoints, passed as the `grammar` body field
114
- - In [llama-cli](../examples/main), passed as the `--grammar` & `--grammar-file` flags
115
- - With [llama-gbnf-validator](../examples/gbnf-validator) tool, to test them against strings.
113
+ - In [llama-server](../tools/server)'s completion endpoints, passed as the `grammar` body field
114
+ - In [llama-cli](../tools/main), passed as the `--grammar` & `--grammar-file` flags
115
+ - With [test-gbnf-validator](../tests/test-gbnf-validator.cpp), to test them against strings.
116
116
 
117
117
  ## JSON Schemas → GBNF
118
118
 
119
119
  `llama.cpp` supports converting a subset of https://json-schema.org/ to GBNF grammars:
120
120
 
121
- - In [llama-server](../examples/server):
121
+ - In [llama-server](../tools/server):
122
122
  - For any completion endpoints, passed as the `json_schema` body field
123
123
  - For the `/chat/completions` endpoint, passed inside the `response_format` body field (e.g. `{"type", "json_object", "schema": {"items": {}}}` or `{ type: "json_schema", json_schema: {"schema": ...} }`)
124
- - In [llama-cli](../examples/main), passed as the `--json` / `-j` flag
124
+ - In [llama-cli](../tools/main), passed as the `--json` / `-j` flag
125
125
  - To convert to a grammar ahead of time:
126
126
  - in CLI, with [examples/json_schema_to_grammar.py](../examples/json_schema_to_grammar.py)
127
- - in JavaScript with [json-schema-to-grammar.mjs](../examples/server/public_legacy/json-schema-to-grammar.mjs) (this is used by the [server](../examples/server)'s Web UI)
127
+ - in JavaScript with [json-schema-to-grammar.mjs](../tools/server/public_legacy/json-schema-to-grammar.mjs) (this is used by the [server](../tools/server)'s Web UI)
128
128
 
129
129
  Take a look at [tests](../tests/test-json-schema-to-grammar.cpp) to see which features are likely supported (you'll also find usage examples in https://github.com/ggml-org/llama.cpp/pull/5978, https://github.com/ggml-org/llama.cpp/pull/6659 & https://github.com/ggml-org/llama.cpp/pull/6555).
130
130
 
@@ -1,4 +1,4 @@
1
1
  {
2
- "tag": "b4980",
2
+ "tag": "b5414",
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.7.0",
3
+ "version": "3.8.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",
@@ -133,74 +133,74 @@
133
133
  },
134
134
  "homepage": "https://node-llama-cpp.withcat.ai",
135
135
  "devDependencies": {
136
- "@commitlint/cli": "^19.8.0",
137
- "@commitlint/config-conventional": "^19.8.0",
138
- "@eslint/compat": "^1.2.7",
136
+ "@commitlint/cli": "^19.8.1",
137
+ "@commitlint/config-conventional": "^19.8.1",
138
+ "@eslint/compat": "^1.2.9",
139
139
  "@fontsource/inter": "^5.2.5",
140
- "@nolebase/vitepress-plugin-git-changelog": "^2.15.1",
141
- "@nolebase/vitepress-plugin-og-image": "^2.15.1",
140
+ "@nolebase/vitepress-plugin-git-changelog": "^2.17.0",
141
+ "@nolebase/vitepress-plugin-og-image": "^2.17.0",
142
142
  "@resvg/resvg-js": "^2.6.2",
143
- "@semantic-release/exec": "^7.0.3",
144
- "@semantic-release/github": "11.0.1",
143
+ "@semantic-release/exec": "^7.1.0",
144
+ "@semantic-release/github": "11.0.2",
145
145
  "@semantic-release/npm": "12.0.1",
146
- "@shikijs/vitepress-twoslash": "^3.2.1",
146
+ "@shikijs/vitepress-twoslash": "^3.4.0",
147
147
  "@stylistic/eslint-plugin": "^4.2.0",
148
148
  "@types/async-retry": "^1.4.9",
149
149
  "@types/bytes": "^3.1.5",
150
150
  "@types/cross-spawn": "^6.0.6",
151
151
  "@types/fs-extra": "^11.0.4",
152
- "@types/node": "^22.13.11",
152
+ "@types/node": "^22.15.17",
153
153
  "@types/proper-lockfile": "^4.1.4",
154
- "@types/semver": "^7.5.8",
154
+ "@types/semver": "^7.7.0",
155
155
  "@types/validate-npm-package-name": "^4.0.2",
156
156
  "@types/which": "^3.0.4",
157
157
  "@types/yargs": "^17.0.33",
158
- "@vitest/coverage-v8": "^3.0.9",
159
- "@vitest/ui": "^3.0.9",
160
- "electron": "^35.0.3",
161
- "eslint": "^9.23.0",
162
- "eslint-import-resolver-typescript": "^4.2.2",
158
+ "@vitest/coverage-v8": "^3.1.3",
159
+ "@vitest/ui": "^3.1.3",
160
+ "electron": "^36.2.0",
161
+ "eslint": "^9.26.0",
162
+ "eslint-import-resolver-typescript": "^4.3.4",
163
163
  "eslint-plugin-import": "^2.31.0",
164
- "eslint-plugin-jsdoc": "^50.6.8",
165
- "eslint-plugin-n": "^17.16.2",
166
- "feed": "^4.2.2",
164
+ "eslint-plugin-jsdoc": "^50.6.14",
165
+ "eslint-plugin-n": "^17.18.0",
166
+ "feed": "^5.0.0",
167
167
  "husky": "^9.1.7",
168
168
  "rehype": "^13.0.2",
169
169
  "rimraf": "^6.0.1",
170
170
  "semantic-release": "^24.2.3",
171
- "sharp": "^0.33.5",
171
+ "sharp": "^0.34.1",
172
172
  "tslib": "^2.8.1",
173
- "typedoc": "^0.28.1",
174
- "typedoc-plugin-markdown": "^4.5.2",
175
- "typedoc-plugin-mdn-links": "^5.0.1",
173
+ "typedoc": "^0.28.4",
174
+ "typedoc-plugin-markdown": "^4.6.3",
175
+ "typedoc-plugin-mdn-links": "^5.0.2",
176
176
  "typedoc-vitepress-theme": "^1.1.2",
177
- "typescript": "^5.8.2",
178
- "typescript-eslint": "^8.27.0",
179
- "vite-node": "^3.0.9",
177
+ "typescript": "^5.8.3",
178
+ "typescript-eslint": "^8.32.0",
179
+ "vite-node": "^3.1.3",
180
180
  "vitepress": "^1.6.3",
181
- "vitest": "^3.0.9",
182
- "zx": "^8.4.1"
181
+ "vitest": "^3.1.3",
182
+ "zx": "^8.5.4"
183
183
  },
184
184
  "dependencies": {
185
- "@huggingface/jinja": "^0.3.3",
185
+ "@huggingface/jinja": "^0.5.0",
186
186
  "async-retry": "^1.3.3",
187
187
  "bytes": "^3.1.2",
188
188
  "chalk": "^5.4.1",
189
189
  "chmodrp": "^1.0.2",
190
- "cmake-js": "^7.3.0",
190
+ "cmake-js": "^7.3.1",
191
191
  "cross-env": "^7.0.3",
192
192
  "cross-spawn": "^7.0.6",
193
193
  "env-var": "^7.5.0",
194
194
  "filenamify": "^6.0.0",
195
195
  "fs-extra": "^11.3.0",
196
- "ignore": "^7.0.0",
196
+ "ignore": "^7.0.4",
197
197
  "ipull": "^3.9.2",
198
198
  "is-unicode-supported": "^2.1.0",
199
199
  "lifecycle-utils": "^2.0.0",
200
200
  "log-symbols": "^7.0.0",
201
201
  "nanoid": "^5.1.5",
202
202
  "node-addon-api": "^8.3.1",
203
- "octokit": "^4.1.2",
203
+ "octokit": "^4.1.3",
204
204
  "ora": "^8.2.0",
205
205
  "pretty-ms": "^9.2.0",
206
206
  "proper-lockfile": "^4.1.2",
@@ -222,16 +222,16 @@
222
222
  }
223
223
  },
224
224
  "optionalDependencies": {
225
- "@node-llama-cpp/linux-arm64": "3.7.0",
226
- "@node-llama-cpp/linux-armv7l": "3.7.0",
227
- "@node-llama-cpp/linux-x64": "3.7.0",
228
- "@node-llama-cpp/linux-x64-cuda": "3.7.0",
229
- "@node-llama-cpp/linux-x64-vulkan": "3.7.0",
230
- "@node-llama-cpp/mac-arm64-metal": "3.7.0",
231
- "@node-llama-cpp/mac-x64": "3.7.0",
232
- "@node-llama-cpp/win-arm64": "3.7.0",
233
- "@node-llama-cpp/win-x64": "3.7.0",
234
- "@node-llama-cpp/win-x64-cuda": "3.7.0",
235
- "@node-llama-cpp/win-x64-vulkan": "3.7.0"
225
+ "@node-llama-cpp/linux-arm64": "3.8.0",
226
+ "@node-llama-cpp/linux-armv7l": "3.8.0",
227
+ "@node-llama-cpp/linux-x64": "3.8.0",
228
+ "@node-llama-cpp/linux-x64-cuda": "3.8.0",
229
+ "@node-llama-cpp/linux-x64-vulkan": "3.8.0",
230
+ "@node-llama-cpp/mac-arm64-metal": "3.8.0",
231
+ "@node-llama-cpp/mac-x64": "3.8.0",
232
+ "@node-llama-cpp/win-arm64": "3.8.0",
233
+ "@node-llama-cpp/win-x64": "3.8.0",
234
+ "@node-llama-cpp/win-x64-cuda": "3.8.0",
235
+ "@node-llama-cpp/win-x64-vulkan": "3.8.0"
236
236
  }
237
237
  }