node-llama-cpp 3.7.0 → 3.8.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 (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 +34 -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 +79 -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 +24 -5
  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
@@ -4,40 +4,41 @@ import { getFilenameForBinarySplitGgufPartUrls, resolveBinarySplitGgufPartUrls }
4
4
  import { createSplitPartFilename, getGgufSplitPartsInfo } from "../gguf/utils/resolveSplitGgufParts.js";
5
5
  import { ggufQuantNames } from "../gguf/utils/ggufQuantNames.js";
6
6
  import { isUrl } from "./isUrl.js";
7
- import { resolveModelFileAccessTokensTryHeaders } from "./modelFileAccesTokens.js";
7
+ import { resolveModelFileAccessTokensTryHeaders } from "./modelFileAccessTokens.js";
8
+ import { isHuggingFaceUrl, resolveHuggingFaceEndpoint } from "./modelDownloadEndpoints.js";
8
9
  import { parseModelFileName } from "./parseModelFileName.js";
9
10
  const defaultHuggingFaceBranch = "main";
10
11
  const defaultHuggingFaceFileQuantization = "Q4_K_M";
11
12
  export const genericFilePartNumber = "{:\n{number}\n:}";
12
- export function parseModelUri(urlOrUri, convertUrlToSupportedUri = false) {
13
+ export function parseModelUri(urlOrUri, convertUrlToSupportedUri = false, endpoints) {
13
14
  if (urlOrUri.startsWith("hf://"))
14
- return parseHuggingFaceUriContent(urlOrUri.slice("hf://".length), urlOrUri);
15
+ return parseHuggingFaceUriContent(urlOrUri.slice("hf://".length), urlOrUri, endpoints);
15
16
  else if (urlOrUri.startsWith("huggingface://"))
16
- return parseHuggingFaceUriContent(urlOrUri.slice("huggingface://".length), urlOrUri);
17
+ return parseHuggingFaceUriContent(urlOrUri.slice("huggingface://".length), urlOrUri, endpoints);
17
18
  else if (urlOrUri.startsWith("hf:"))
18
- return parseHuggingFaceUriContent(urlOrUri.slice("hf:".length), urlOrUri);
19
+ return parseHuggingFaceUriContent(urlOrUri.slice("hf:".length), urlOrUri, endpoints);
19
20
  else if (urlOrUri.startsWith("huggingface:"))
20
- return parseHuggingFaceUriContent(urlOrUri.slice("huggingface:".length), urlOrUri);
21
+ return parseHuggingFaceUriContent(urlOrUri.slice("huggingface:".length), urlOrUri, endpoints);
21
22
  else if (urlOrUri.startsWith("hf.co/"))
22
- return parseHuggingFaceUriContent(urlOrUri.slice("hf.co/".length), urlOrUri);
23
+ return parseHuggingFaceUriContent(urlOrUri.slice("hf.co/".length), urlOrUri, endpoints);
23
24
  else if (urlOrUri.startsWith("huggingface.co/"))
24
- return parseHuggingFaceUriContent(urlOrUri.slice("huggingface.co/".length), urlOrUri);
25
+ return parseHuggingFaceUriContent(urlOrUri.slice("huggingface.co/".length), urlOrUri, endpoints);
25
26
  if (isUrl(urlOrUri)) {
26
27
  const parsedUrl = new URL(urlOrUri);
27
- if (parsedUrl.hostname === "huggingface.co" || parsedUrl.hostname === "hf.co") {
28
+ if (isHuggingFaceUrl(parsedUrl.href, endpoints)) {
28
29
  const pathnameParts = parsedUrl.pathname.split("/");
29
30
  const slashes = pathnameParts.length - 1;
30
31
  const [, user, model] = pathnameParts;
31
32
  if (slashes === 2 && user != null && model != null) {
32
33
  return parseHuggingFaceUriContent([
33
34
  decodeURIComponent(user), "/", decodeURIComponent(model)
34
- ].join(""), urlOrUri);
35
+ ].join(""), urlOrUri, endpoints);
35
36
  }
36
37
  }
37
38
  }
38
39
  if (convertUrlToSupportedUri && isUrl(urlOrUri)) {
39
- const parsedUrl = new URL(normalizeGgufDownloadUrl(urlOrUri));
40
- if (parsedUrl.hostname === "huggingface.co" || parsedUrl.hostname === "hf.co") {
40
+ const parsedUrl = new URL(normalizeGgufDownloadUrl(urlOrUri, endpoints));
41
+ if (isHuggingFaceUrl(parsedUrl.href, endpoints)) {
41
42
  const pathnameParts = parsedUrl.pathname.split("/");
42
43
  const [, user, model, resolve, branch, ...pathParts] = pathnameParts;
43
44
  const filePath = pathParts.join("/");
@@ -52,7 +53,7 @@ export function parseModelUri(urlOrUri, convertUrlToSupportedUri = false) {
52
53
  branch !== defaultHuggingFaceBranch
53
54
  ? `#${decodeURIComponent(branch)}`
54
55
  : ""
55
- ].join(""), urlOrUri);
56
+ ].join(""), urlOrUri, endpoints);
56
57
  }
57
58
  }
58
59
  }
@@ -66,7 +67,7 @@ export function isModelUri(modelUri) {
66
67
  return false;
67
68
  }
68
69
  }
69
- export async function resolveParsedModelUri(modelUri, { tokens, signal, authorizationHeader } = {}) {
70
+ export async function resolveParsedModelUri(modelUri, { tokens, endpoints, signal, authorizationHeader } = {}) {
70
71
  if (modelUri == null)
71
72
  return modelUri;
72
73
  if (modelUri.type === "resolved")
@@ -80,6 +81,7 @@ export async function resolveParsedModelUri(modelUri, { tokens, signal, authoriz
80
81
  modelTag,
81
82
  fullUri: modelUri.uri,
82
83
  tokens,
84
+ endpoints,
83
85
  signal,
84
86
  authorizationHeader
85
87
  });
@@ -101,7 +103,7 @@ export async function resolveParsedModelUri(modelUri, { tokens, signal, authoriz
101
103
  ? createSplitPartFilename(resolvedBaseFilename, splitPartsInfo.part, splitPartsInfo.parts)
102
104
  : resolvedBaseFilename;
103
105
  const resolvedUrl = normalizeGgufDownloadUrl([
104
- "https://huggingface.co/", encodeURIComponent(modelUri.resolveDetails.user),
106
+ resolveHuggingFaceEndpoint(endpoints), encodeURIComponent(modelUri.resolveDetails.user),
105
107
  "/", encodeURIComponent(modelUri.resolveDetails.model),
106
108
  "/resolve/", encodeURIComponent(defaultHuggingFaceBranch), "/",
107
109
  filename
@@ -109,7 +111,7 @@ export async function resolveParsedModelUri(modelUri, { tokens, signal, authoriz
109
111
  .map((item) => encodeURIComponent(item))
110
112
  .join("/"),
111
113
  "?download=true"
112
- ].join(""));
114
+ ].join(""), endpoints);
113
115
  return {
114
116
  type: "resolved",
115
117
  uri: modelUri.uri,
@@ -122,15 +124,15 @@ export async function resolveParsedModelUri(modelUri, { tokens, signal, authoriz
122
124
  export function getAuthorizationHeader(headers) {
123
125
  return headers?.["Authorization"] || headers?.["authorization"];
124
126
  }
125
- async function fetchHuggingFaceModelManifest({ user, model, modelTag, fullUri, tokens, signal, authorizationHeader }) {
127
+ async function fetchHuggingFaceModelManifest({ user, model, modelTag, fullUri, tokens, endpoints, signal, authorizationHeader }) {
126
128
  const manifestUrl = [
127
- "https://huggingface.co/v2/", encodeURIComponent(user),
129
+ resolveHuggingFaceEndpoint(endpoints), "v2/", encodeURIComponent(user),
128
130
  "/", encodeURIComponent(model),
129
131
  "/manifests/", encodeURIComponent(modelTag)
130
132
  ].join("");
131
133
  const headersToTry = [
132
134
  {},
133
- await resolveModelFileAccessTokensTryHeaders(manifestUrl, tokens)
135
+ await resolveModelFileAccessTokensTryHeaders(manifestUrl, tokens, endpoints)
134
136
  ];
135
137
  while (headersToTry.length > 0) {
136
138
  const headers = headersToTry.shift();
@@ -168,7 +170,7 @@ async function fetchHuggingFaceModelManifest({ user, model, modelTag, fullUri, t
168
170
  }
169
171
  throw new Error(`Failed to fetch manifest for ${JSON.stringify(fullUri)}: no more headers to try`);
170
172
  }
171
- function parseHuggingFaceUriContent(uri, fullUri) {
173
+ function parseHuggingFaceUriContent(uri, fullUri, endpoints) {
172
174
  const [user, model, ...pathParts] = uri.split("/");
173
175
  let rest = pathParts.join("/");
174
176
  if (user != null && model != null && (rest === "" || model.includes(":"))) {
@@ -232,11 +234,11 @@ function parseHuggingFaceUriContent(uri, fullUri) {
232
234
  if (!user || !model || filePath === "")
233
235
  throw new Error(`Invalid Hugging Face URI: ${fullUri}`);
234
236
  const resolvedUrl = normalizeGgufDownloadUrl([
235
- "https://huggingface.co/", encodeURIComponent(user),
237
+ resolveHuggingFaceEndpoint(endpoints), encodeURIComponent(user),
236
238
  "/", encodeURIComponent(model),
237
239
  "/resolve/", encodeURIComponent(branch),
238
240
  "/", filePath, "?download=true"
239
- ].join(""));
241
+ ].join(""), endpoints);
240
242
  const filename = resolveModelFilenameFromUrl(resolvedUrl);
241
243
  const filePrefix = buildHuggingFaceFilePrefix(user, model, branch, filePathParts.slice(0, -1), filename);
242
244
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"parseModelUri.js","sourceRoot":"","sources":["../../src/utils/parseModelUri.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parseModelUri.js","sourceRoot":"","sources":["../../src/utils/parseModelUri.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { ParsedModelUri } from "./parseModelUri.js";
2
+ import { ModelDownloadEndpoints } from "./modelDownloadEndpoints.js";
2
3
  export type ResolveModelDestination = {
3
4
  type: "url";
4
5
  url: string;
@@ -11,5 +12,5 @@ export type ResolveModelDestination = {
11
12
  type: "file";
12
13
  path: string;
13
14
  };
14
- export declare function resolveModelDestination(modelDestination: string, convertUrlToUri?: boolean): ResolveModelDestination;
15
+ export declare function resolveModelDestination(modelDestination: string, convertUrlToUri?: boolean, endpoints?: ModelDownloadEndpoints): ResolveModelDestination;
15
16
  export declare function resolveModelArgToFilePathOrUrl(modelDestination: string, optionHeaders?: Record<string, string>): Promise<[resolvedModelDestination: ResolveModelDestination, filePathOrUrl: string]>;
@@ -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": "b5415"
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;