node-llama-cpp 3.0.3 → 3.1.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 (73) hide show
  1. package/dist/chatWrappers/Llama3_1ChatWrapper.d.ts +1 -1
  2. package/dist/chatWrappers/Llama3_1ChatWrapper.js +2 -1
  3. package/dist/chatWrappers/Llama3_1ChatWrapper.js.map +1 -1
  4. package/dist/cli/commands/ChatCommand.js +2 -2
  5. package/dist/cli/commands/ChatCommand.js.map +1 -1
  6. package/dist/cli/commands/CompleteCommand.js +2 -2
  7. package/dist/cli/commands/CompleteCommand.js.map +1 -1
  8. package/dist/cli/commands/InfillCommand.js +2 -2
  9. package/dist/cli/commands/InfillCommand.js.map +1 -1
  10. package/dist/cli/commands/InitCommand.js +36 -20
  11. package/dist/cli/commands/InitCommand.js.map +1 -1
  12. package/dist/cli/commands/PullCommand.js +10 -11
  13. package/dist/cli/commands/PullCommand.js.map +1 -1
  14. package/dist/cli/commands/inspect/commands/InspectEstimateCommand.js +13 -16
  15. package/dist/cli/commands/inspect/commands/InspectEstimateCommand.js.map +1 -1
  16. package/dist/cli/commands/inspect/commands/InspectGgufCommand.js +18 -19
  17. package/dist/cli/commands/inspect/commands/InspectGgufCommand.js.map +1 -1
  18. package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js +2 -2
  19. package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js.map +1 -1
  20. package/dist/cli/recommendedModels.js +102 -403
  21. package/dist/cli/recommendedModels.js.map +1 -1
  22. package/dist/cli/utils/interactivelyAskForModel.js +49 -36
  23. package/dist/cli/utils/interactivelyAskForModel.js.map +1 -1
  24. package/dist/cli/utils/printModelDestination.d.ts +2 -0
  25. package/dist/cli/utils/printModelDestination.js +11 -0
  26. package/dist/cli/utils/printModelDestination.js.map +1 -0
  27. package/dist/cli/utils/projectTemplates.d.ts +2 -2
  28. package/dist/cli/utils/projectTemplates.js +2 -2
  29. package/dist/cli/utils/projectTemplates.js.map +1 -1
  30. package/dist/cli/utils/resolveCommandGgufPath.js +12 -14
  31. package/dist/cli/utils/resolveCommandGgufPath.js.map +1 -1
  32. package/dist/cli/utils/resolveModelRecommendationFileOptions.d.ts +2 -7
  33. package/dist/cli/utils/resolveModelRecommendationFileOptions.js +7 -2
  34. package/dist/cli/utils/resolveModelRecommendationFileOptions.js.map +1 -1
  35. package/dist/gguf/consts.js +1 -1
  36. package/dist/gguf/consts.js.map +1 -1
  37. package/dist/gguf/insights/GgufInsightsConfigurationResolver.d.ts +7 -2
  38. package/dist/gguf/insights/GgufInsightsConfigurationResolver.js +7 -3
  39. package/dist/gguf/insights/GgufInsightsConfigurationResolver.js.map +1 -1
  40. package/dist/gguf/readGgufFileInfo.d.ts +2 -2
  41. package/dist/gguf/readGgufFileInfo.js +12 -10
  42. package/dist/gguf/readGgufFileInfo.js.map +1 -1
  43. package/dist/gguf/utils/resolveBinarySplitGgufPartUrls.js +1 -1
  44. package/dist/gguf/utils/resolveBinarySplitGgufPartUrls.js.map +1 -1
  45. package/dist/gguf/utils/resolveSplitGgufParts.d.ts +1 -1
  46. package/dist/gguf/utils/resolveSplitGgufParts.js +15 -6
  47. package/dist/gguf/utils/resolveSplitGgufParts.js.map +1 -1
  48. package/dist/index.d.ts +2 -1
  49. package/dist/index.js +2 -1
  50. package/dist/index.js.map +1 -1
  51. package/dist/tsconfig.tsbuildinfo +1 -1
  52. package/dist/utils/createModelDownloader.d.ts +45 -8
  53. package/dist/utils/createModelDownloader.js +43 -13
  54. package/dist/utils/createModelDownloader.js.map +1 -1
  55. package/dist/utils/isUrl.js +1 -1
  56. package/dist/utils/isUrl.js.map +1 -1
  57. package/dist/utils/modelFileAccesTokens.js +2 -1
  58. package/dist/utils/modelFileAccesTokens.js.map +1 -1
  59. package/dist/utils/parseModelUri.d.ts +9 -0
  60. package/dist/utils/parseModelUri.js +128 -0
  61. package/dist/utils/parseModelUri.js.map +1 -0
  62. package/dist/utils/resolveModelDestination.d.ts +14 -0
  63. package/dist/utils/resolveModelDestination.js +31 -0
  64. package/dist/utils/resolveModelDestination.js.map +1 -0
  65. package/dist/utils/resolveModelFile.d.ts +136 -0
  66. package/dist/utils/resolveModelFile.js +148 -0
  67. package/dist/utils/resolveModelFile.js.map +1 -0
  68. package/llama/binariesGithubRelease.json +1 -1
  69. package/llama/gitRelease.bundle +0 -0
  70. package/llama/llama.cpp.info.json +1 -1
  71. package/package.json +12 -12
  72. package/templates/packed/electron-typescript-react.json +1 -1
  73. package/templates/packed/node-typescript.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"createModelDownloader.js","sourceRoot":"","sources":["../../src/utils/createModelDownloader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createModelDownloader.js","sourceRoot":"","sources":["../../src/utils/createModelDownloader.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export function isUrl(text, throwOnInvalidUrl = true) {
2
- if (text.startsWith("http://") || text.startsWith("https://")) {
2
+ if (text.toLowerCase().startsWith("http://") || text.toLowerCase().startsWith("https://")) {
3
3
  try {
4
4
  new URL(text);
5
5
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"isUrl.js","sourceRoot":"","sources":["../../src/utils/isUrl.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,KAAK,CAAC,IAAY,EAAE,oBAA6B,IAAI;IACjE,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5D,IAAI,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACL,IAAI,iBAAiB;gBACjB,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;YAE5C,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"isUrl.js","sourceRoot":"","sources":["../../src/utils/isUrl.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,KAAK,CAAC,IAAY,EAAE,oBAA6B,IAAI;IACjE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACxF,IAAI,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACL,IAAI,iBAAiB;gBACjB,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;YAE5C,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC"}
@@ -2,9 +2,10 @@ import process from "process";
2
2
  import path from "path";
3
3
  import os from "os";
4
4
  import fs from "fs-extra";
5
+ import { isUrl } from "./isUrl.js";
5
6
  export async function resolveModelFileAccessTokensTryHeaders(modelUrl, tokens, baseHeaders) {
6
7
  const res = [];
7
- if (tokens == null)
8
+ if (tokens == null || !isUrl(modelUrl))
8
9
  return res;
9
10
  const parsedUrl = new URL(modelUrl);
10
11
  const { huggingFace } = tokens;
@@ -1 +1 @@
1
- {"version":3,"file":"modelFileAccesTokens.js","sourceRoot":"","sources":["../../src/utils/modelFileAccesTokens.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,UAAU,CAAC;AAM1B,MAAM,CAAC,KAAK,UAAU,sCAAsC,CACxD,QAAgB,EAChB,MAA8B,EAC9B,WAAoC;IAEpC,MAAM,GAAG,GAA6B,EAAE,CAAC;IAEzC,IAAI,MAAM,IAAI,IAAI;QACd,OAAO,GAAG,CAAC;IAEf,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,EAAC,WAAW,EAAC,GAAG,MAAM,CAAC;IAE7B,IAAI,SAAS,CAAC,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;QAE5C,GAAG,CAAC,IAAI,CAAC;YACL,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;YACtB,eAAe,EAAE,UAAU,OAAO,EAAE;SACvC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,aAAsB;IAChD,IAAI,aAAa,KAAK,IAAI;QACtB,OAAO,aAAa,CAAC;IAEzB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI;QAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IAEhC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO;QAClC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC;IAE9F,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAChF,IAAI,CAAC;QACD,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9D,IAAI,KAAK,KAAK,EAAE;gBACZ,OAAO,KAAK,CAAC;QACrB,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,aAAa;IACjB,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"modelFileAccesTokens.js","sourceRoot":"","sources":["../../src/utils/modelFileAccesTokens.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AAMjC,MAAM,CAAC,KAAK,UAAU,sCAAsC,CACxD,QAAgB,EAChB,MAA8B,EAC9B,WAAoC;IAEpC,MAAM,GAAG,GAA6B,EAAE,CAAC;IAEzC,IAAI,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAClC,OAAO,GAAG,CAAC;IAEf,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,EAAC,WAAW,EAAC,GAAG,MAAM,CAAC;IAE7B,IAAI,SAAS,CAAC,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;QAE5C,GAAG,CAAC,IAAI,CAAC;YACL,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;YACtB,eAAe,EAAE,UAAU,OAAO,EAAE;SACvC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,aAAsB;IAChD,IAAI,aAAa,KAAK,IAAI;QACtB,OAAO,aAAa,CAAC;IAEzB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI;QAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IAEhC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO;QAClC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC;IAE9F,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAChF,IAAI,CAAC;QACD,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9D,IAAI,KAAK,KAAK,EAAE;gBACZ,OAAO,KAAK,CAAC;QACrB,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,aAAa;IACjB,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC"}
@@ -0,0 +1,9 @@
1
+ export type ParseModelUri = {
2
+ uri: string;
3
+ resolvedUrl: string;
4
+ filePrefix: string;
5
+ filename: string;
6
+ fullFilename: string;
7
+ };
8
+ export declare function parseModelUri(urlOrUri: string, convertUrlToSupportedUri?: boolean): ParseModelUri | null;
9
+ export declare function isModelUri(modelUri: string): boolean;
@@ -0,0 +1,128 @@
1
+ import filenamify from "filenamify";
2
+ import { normalizeGgufDownloadUrl } from "../gguf/utils/normalizeGgufDownloadUrl.js";
3
+ import { getFilenameForBinarySplitGgufPartUrls, resolveBinarySplitGgufPartUrls } from "../gguf/utils/resolveBinarySplitGgufPartUrls.js";
4
+ import { getGgufSplitPartsInfo } from "../gguf/utils/resolveSplitGgufParts.js";
5
+ import { isUrl } from "./isUrl.js";
6
+ const defaultHuggingFaceBranch = "main";
7
+ export function parseModelUri(urlOrUri, convertUrlToSupportedUri = false) {
8
+ if (urlOrUri.startsWith("hf:"))
9
+ return parseHuggingFaceUriContent(urlOrUri.slice("hf:".length));
10
+ else if (urlOrUri.startsWith("huggingface:"))
11
+ return parseHuggingFaceUriContent(urlOrUri.slice("huggingface:".length));
12
+ if (convertUrlToSupportedUri && isUrl(urlOrUri)) {
13
+ const parsedUrl = new URL(normalizeGgufDownloadUrl(urlOrUri));
14
+ if (parsedUrl.hostname === "huggingface.co") {
15
+ const pathnameParts = parsedUrl.pathname.split("/");
16
+ const [, user, model, resolve, branch, ...pathParts] = pathnameParts;
17
+ const filePath = pathParts.join("/");
18
+ if (user != null && model != null && resolve === "resolve" && branch != null && filePath !== "") {
19
+ return parseHuggingFaceUriContent([
20
+ decodeURIComponent(user),
21
+ "/", decodeURIComponent(model), "/",
22
+ filePath
23
+ .split("/")
24
+ .map((part) => decodeURIComponent(part))
25
+ .join("/"),
26
+ branch !== defaultHuggingFaceBranch
27
+ ? `#${decodeURIComponent(branch)}`
28
+ : ""
29
+ ].join(""));
30
+ }
31
+ }
32
+ }
33
+ return null;
34
+ }
35
+ export function isModelUri(modelUri) {
36
+ try {
37
+ return parseModelUri(modelUri) != null;
38
+ }
39
+ catch {
40
+ return false;
41
+ }
42
+ }
43
+ function parseHuggingFaceUriContent(uri) {
44
+ const [user, model, ...pathParts] = uri.split("/");
45
+ let rest = pathParts.join("/");
46
+ const hashIndex = rest.indexOf("#");
47
+ let branch = defaultHuggingFaceBranch;
48
+ if (hashIndex >= 0) {
49
+ branch = rest.slice(hashIndex + "#".length);
50
+ rest = rest.slice(0, hashIndex);
51
+ if (branch === "")
52
+ branch = defaultHuggingFaceBranch;
53
+ }
54
+ const filePathParts = rest.split("/");
55
+ const filePath = filePathParts
56
+ .map((part) => encodeURIComponent(part))
57
+ .join("/");
58
+ if (!user || !model || filePath === "")
59
+ throw new Error(`Invalid Hugging Face URI: ${uri}`);
60
+ const resolvedUrl = normalizeGgufDownloadUrl([
61
+ "https://huggingface.co/", encodeURIComponent(user),
62
+ "/", encodeURIComponent(model),
63
+ "/resolve/", encodeURIComponent(branch),
64
+ "/", filePath, "?download=true"
65
+ ].join(""));
66
+ function buildFilePrefix(user, model, branch, pathParts, filename) {
67
+ const res = ["hf"];
68
+ res.push(filenamify(user));
69
+ if (!doesFilenameMatchExactModelName(filename, model) || branch !== defaultHuggingFaceBranch)
70
+ res.push(filenamify(model));
71
+ if (branch !== defaultHuggingFaceBranch)
72
+ res.push(filenamify(branch));
73
+ if (pathParts.length > 0) {
74
+ if (doesFilenameMatchExactFolderName(filename, pathParts.at(-1)))
75
+ pathParts = pathParts.slice(0, -1);
76
+ if (pathParts.length > 0)
77
+ res.push(filenamify(pathParts.join("__")));
78
+ }
79
+ return res.join("_") + "_";
80
+ }
81
+ const filename = resolveModelFilenameFromUrl(resolvedUrl);
82
+ const filePrefix = buildFilePrefix(user, model, branch, filePathParts.slice(0, -1), filename);
83
+ return {
84
+ uri: `hf:${user}/${model}/${filePathParts.join("/")}${branch !== defaultHuggingFaceBranch ? `#${branch}` : ""}`,
85
+ resolvedUrl,
86
+ filePrefix,
87
+ filename,
88
+ fullFilename: `${filePrefix}${filename}`
89
+ };
90
+ }
91
+ function resolveModelFilenameFromUrl(modelUrl) {
92
+ const binarySplitPartUrls = resolveBinarySplitGgufPartUrls(modelUrl);
93
+ if (binarySplitPartUrls instanceof Array)
94
+ return getFilenameForBinarySplitGgufPartUrls(binarySplitPartUrls);
95
+ const parsedUrl = new URL(modelUrl);
96
+ const ggufIndex = parsedUrl.pathname.toLowerCase().indexOf(".gguf");
97
+ const urlWithoutPart = parsedUrl.pathname.slice(0, ggufIndex + ".gguf".length);
98
+ const filename = decodeURIComponent(urlWithoutPart.split("/").pop());
99
+ return filenamify(filename);
100
+ }
101
+ function doesFilenameMatchExactModelName(filename, modelName) {
102
+ if (!modelName.toLowerCase().endsWith("-gguf") || !filename.toLowerCase().endsWith(".gguf"))
103
+ return false;
104
+ const modelNameWithoutGguf = modelName.slice(0, -"-gguf".length);
105
+ const filenameWithoutGguf = filename.slice(0, -".gguf".length);
106
+ if (filenameWithoutGguf.toLowerCase().startsWith(modelNameWithoutGguf.toLowerCase()))
107
+ return true;
108
+ const splitPartsInfo = getGgufSplitPartsInfo(filename);
109
+ if (splitPartsInfo == null)
110
+ return false;
111
+ const { matchLength } = splitPartsInfo;
112
+ const filenameWithoutGgufAndWithoutSplitParts = filename.slice(0, filename.length - matchLength);
113
+ return filenameWithoutGgufAndWithoutSplitParts.toLowerCase().startsWith(modelNameWithoutGguf.toLowerCase());
114
+ }
115
+ function doesFilenameMatchExactFolderName(filename, folderName) {
116
+ if (!filename.toLowerCase().endsWith(".gguf"))
117
+ return false;
118
+ const filenameWithoutGguf = filename.slice(0, -".gguf".length);
119
+ if (folderName.toLowerCase() === filenameWithoutGguf.toLowerCase())
120
+ return true;
121
+ const splitPartsInfo = getGgufSplitPartsInfo(filename);
122
+ if (splitPartsInfo == null)
123
+ return false;
124
+ const { matchLength } = splitPartsInfo;
125
+ const filenameWithoutGgufAndWithoutSplitParts = filename.slice(0, filename.length - matchLength);
126
+ return folderName.toLowerCase() === filenameWithoutGgufAndWithoutSplitParts.toLowerCase();
127
+ }
128
+ //# sourceMappingURL=parseModelUri.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseModelUri.js","sourceRoot":"","sources":["../../src/utils/parseModelUri.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { ParseModelUri } from "./parseModelUri.js";
2
+ export type ResolveModelDestination = {
3
+ type: "url";
4
+ url: string;
5
+ } | {
6
+ type: "uri";
7
+ url: string;
8
+ uri: string;
9
+ parsedUri: ParseModelUri;
10
+ } | {
11
+ type: "file";
12
+ path: string;
13
+ };
14
+ export declare function resolveModelDestination(modelDestination: string, convertUrlToUri?: boolean): ResolveModelDestination;
@@ -0,0 +1,31 @@
1
+ import path from "path";
2
+ import { normalizeGgufDownloadUrl } from "../gguf/utils/normalizeGgufDownloadUrl.js";
3
+ import { parseModelUri } from "./parseModelUri.js";
4
+ import { isUrl } from "./isUrl.js";
5
+ export function resolveModelDestination(modelDestination, convertUrlToUri = false) {
6
+ const parsedUri = parseModelUri(modelDestination, convertUrlToUri);
7
+ if (parsedUri != null) {
8
+ return {
9
+ type: "uri",
10
+ url: parsedUri.resolvedUrl,
11
+ uri: parsedUri.uri,
12
+ parsedUri
13
+ };
14
+ }
15
+ else if (isUrl(modelDestination)) {
16
+ return {
17
+ type: "url",
18
+ url: normalizeGgufDownloadUrl(modelDestination)
19
+ };
20
+ }
21
+ try {
22
+ return {
23
+ type: "file",
24
+ path: path.resolve(process.cwd(), modelDestination)
25
+ };
26
+ }
27
+ catch (err) {
28
+ throw new Error(`Invalid path: ${modelDestination}`);
29
+ }
30
+ }
31
+ //# sourceMappingURL=resolveModelDestination.js.map
@@ -0,0 +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,EAAgB,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAChE,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,WAAW;YAC1B,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"}
@@ -0,0 +1,136 @@
1
+ import { ModelFileAccessTokens } from "./modelFileAccesTokens.js";
2
+ export type ResolveModelFileOptions = {
3
+ /**
4
+ * The directory to resolve models from, and download models to.
5
+ *
6
+ * Default to `node-llama-cpp`'s default global models directory (`~/.node-llama-cpp/models`).
7
+ */
8
+ directory?: string;
9
+ /**
10
+ * When downloading a model file, whether to download the file if it doesn't exist.
11
+ *
12
+ * - `"auto"`: Download the file if it doesn't exist
13
+ * - `false`: Don't download the file if it doesn't exist. Implies `verify: false` even if `verify` is set to `true`.
14
+ *
15
+ * Defaults to `"auto"`.
16
+ */
17
+ download?: "auto" | false;
18
+ /**
19
+ * When an existing model file that corresponds to the URI is found,
20
+ * verify that it matches the expected size of the remote file.
21
+ *
22
+ * Defaults to `false`.
23
+ */
24
+ verify?: boolean;
25
+ /**
26
+ * The name of the file to be resolved.
27
+ *
28
+ * If provided and existing file is found with the same name, it will be returned.
29
+ *
30
+ * If provided and no existing file is found with the same name, the file will be downloaded with the provided name.
31
+ */
32
+ fileName?: string;
33
+ /**
34
+ * Additional headers to use when downloading a model file.
35
+ */
36
+ headers?: Record<string, string>;
37
+ /**
38
+ * When downloading a model file, show the download progress.
39
+ *
40
+ * Defaults to `true`.
41
+ */
42
+ cli?: boolean;
43
+ /**
44
+ * When downloading a model file, called on download progress
45
+ */
46
+ onProgress?: (status: {
47
+ totalSize: number;
48
+ downloadedSize: number;
49
+ }) => void;
50
+ /**
51
+ * If true, the temporary file will be deleted if the download is canceled.
52
+ *
53
+ * Defaults to `true`.
54
+ */
55
+ deleteTempFileOnCancel?: boolean;
56
+ /**
57
+ * The number of parallel downloads to use when downloading split files.
58
+ *
59
+ * Defaults to `4`.
60
+ */
61
+ parallel?: number;
62
+ /**
63
+ * Tokens to use to access the remote model file when downloading.
64
+ */
65
+ tokens?: ModelFileAccessTokens;
66
+ /**
67
+ * The signal to use to cancel a download.
68
+ */
69
+ signal?: AbortSignal;
70
+ };
71
+ /**
72
+ * Resolves a local model file path from a URI or file path, and downloads the necessary files first if needed.
73
+ *
74
+ * If a URL or a URI is given, it'll be resolved to the corresponding file path.
75
+ * If the file path exists, it will be returned, otherwise it will be downloaded and then be returned.
76
+ *
77
+ * If a file path is given, and the path exists, it will be returned, otherwise an error will be thrown.
78
+ *
79
+ * Files are resolved from and downloaded to the `directory` option,
80
+ * which defaults to `node-llama-cpp`'s default global models directory (`~/.node-llama-cpp/models`).
81
+ *
82
+ * Set the `cli` option to `false` to hide the download progress from the console.
83
+ * @example
84
+ * ```typescript
85
+ * import {fileURLToPath} from "url";
86
+ * import path from "path";
87
+ * import {getLlama, resolveModelFile} from "node-llama-cpp";
88
+ *
89
+ * const __dirname = path.dirname(fileURLToPath(import.meta.url));
90
+ *
91
+ * // resolve a model from Hugging Face to the models directory
92
+ * const modelPath = await resolveModelFile(
93
+ * "hf:user/model/model-file.gguf",
94
+ * path.join(__dirname, "models")
95
+ * );
96
+ *
97
+ * const llama = await getLlama();
98
+ * const model = await llama.loadModel({modelPath});
99
+ * ```
100
+ * @example
101
+ * ```typescript
102
+ * import {fileURLToPath} from "url";
103
+ * import path from "path";
104
+ * import {getLlama, resolveModelFile} from "node-llama-cpp";
105
+ *
106
+ * const __dirname = path.dirname(fileURLToPath(import.meta.url));
107
+ *
108
+ * // resolve a model from a URL to the models directory
109
+ * const modelPath = await resolveModelFile(
110
+ * "https://example.com/model.gguf",
111
+ * path.join(__dirname, "models")
112
+ * );
113
+ *
114
+ * const llama = await getLlama();
115
+ * const model = await llama.loadModel({modelPath});
116
+ * ```
117
+ * @example
118
+ * ```typescript
119
+ * import {fileURLToPath} from "url";
120
+ * import path from "path";
121
+ * import {getLlama, resolveModelFile} from "node-llama-cpp";
122
+ *
123
+ * const __dirname = path.dirname(fileURLToPath(import.meta.url));
124
+ *
125
+ * // resolve a local model that is in the models directory
126
+ * const modelPath = await resolveModelFile(
127
+ * "model.gguf",
128
+ * path.join(__dirname, "models")
129
+ * );
130
+ *
131
+ * const llama = await getLlama();
132
+ * const model = await llama.loadModel({modelPath});
133
+ * ```
134
+ * @returns The resolved model file path
135
+ */
136
+ export declare function resolveModelFile(uriOrPath: string, optionsOrDirectory?: ResolveModelFileOptions | string): Promise<string>;
@@ -0,0 +1,148 @@
1
+ import path from "path";
2
+ import fs from "fs-extra";
3
+ import chalk from "chalk";
4
+ import { cliModelsDirectory } from "../config.js";
5
+ import { getReadablePath } from "../cli/utils/getReadablePath.js";
6
+ import { resolveSplitGgufParts } from "../gguf/utils/resolveSplitGgufParts.js";
7
+ import { resolveModelDestination } from "./resolveModelDestination.js";
8
+ import { createModelDownloader } from "./createModelDownloader.js";
9
+ /**
10
+ * Resolves a local model file path from a URI or file path, and downloads the necessary files first if needed.
11
+ *
12
+ * If a URL or a URI is given, it'll be resolved to the corresponding file path.
13
+ * If the file path exists, it will be returned, otherwise it will be downloaded and then be returned.
14
+ *
15
+ * If a file path is given, and the path exists, it will be returned, otherwise an error will be thrown.
16
+ *
17
+ * Files are resolved from and downloaded to the `directory` option,
18
+ * which defaults to `node-llama-cpp`'s default global models directory (`~/.node-llama-cpp/models`).
19
+ *
20
+ * Set the `cli` option to `false` to hide the download progress from the console.
21
+ * @example
22
+ * ```typescript
23
+ * import {fileURLToPath} from "url";
24
+ * import path from "path";
25
+ * import {getLlama, resolveModelFile} from "node-llama-cpp";
26
+ *
27
+ * const __dirname = path.dirname(fileURLToPath(import.meta.url));
28
+ *
29
+ * // resolve a model from Hugging Face to the models directory
30
+ * const modelPath = await resolveModelFile(
31
+ * "hf:user/model/model-file.gguf",
32
+ * path.join(__dirname, "models")
33
+ * );
34
+ *
35
+ * const llama = await getLlama();
36
+ * const model = await llama.loadModel({modelPath});
37
+ * ```
38
+ * @example
39
+ * ```typescript
40
+ * import {fileURLToPath} from "url";
41
+ * import path from "path";
42
+ * import {getLlama, resolveModelFile} from "node-llama-cpp";
43
+ *
44
+ * const __dirname = path.dirname(fileURLToPath(import.meta.url));
45
+ *
46
+ * // resolve a model from a URL to the models directory
47
+ * const modelPath = await resolveModelFile(
48
+ * "https://example.com/model.gguf",
49
+ * path.join(__dirname, "models")
50
+ * );
51
+ *
52
+ * const llama = await getLlama();
53
+ * const model = await llama.loadModel({modelPath});
54
+ * ```
55
+ * @example
56
+ * ```typescript
57
+ * import {fileURLToPath} from "url";
58
+ * import path from "path";
59
+ * import {getLlama, resolveModelFile} from "node-llama-cpp";
60
+ *
61
+ * const __dirname = path.dirname(fileURLToPath(import.meta.url));
62
+ *
63
+ * // resolve a local model that is in the models directory
64
+ * const modelPath = await resolveModelFile(
65
+ * "model.gguf",
66
+ * path.join(__dirname, "models")
67
+ * );
68
+ *
69
+ * const llama = await getLlama();
70
+ * const model = await llama.loadModel({modelPath});
71
+ * ```
72
+ * @returns The resolved model file path
73
+ */
74
+ export async function resolveModelFile(uriOrPath, optionsOrDirectory) {
75
+ const { directory, download = "auto", verify = false, fileName, headers, cli = true, onProgress, deleteTempFileOnCancel = true, parallel = 4, tokens, signal } = typeof optionsOrDirectory === "string"
76
+ ? { directory: optionsOrDirectory }
77
+ : (optionsOrDirectory ?? {});
78
+ const resolvedDirectory = directory || cliModelsDirectory;
79
+ const resolvedCli = cli == null ? true : cli;
80
+ let resolvedVerify = verify ?? false;
81
+ if (download === false)
82
+ resolvedVerify = false;
83
+ const resolvedModelDestination = resolveModelDestination(uriOrPath);
84
+ if (resolvedModelDestination.type === "file") {
85
+ const resolvedFilePath = path.resolve(resolvedDirectory, uriOrPath);
86
+ if (await fs.pathExists(resolvedFilePath))
87
+ return resolvedFilePath;
88
+ throw new Error(`No model file found at "${resolvedFilePath}"`);
89
+ }
90
+ let expectedFilePath = fileName != null
91
+ ? path.join(resolvedDirectory, fileName)
92
+ : undefined;
93
+ if (expectedFilePath == null && resolvedModelDestination.type === "uri")
94
+ expectedFilePath = path.join(resolvedDirectory, resolvedModelDestination.parsedUri.fullFilename);
95
+ else if (expectedFilePath == null && resolvedModelDestination.type === "url") {
96
+ const enforcedParsedUrl = resolveModelDestination(uriOrPath, true);
97
+ if (enforcedParsedUrl != null && enforcedParsedUrl.type === "uri")
98
+ expectedFilePath = path.join(resolvedDirectory, enforcedParsedUrl.parsedUri.filename);
99
+ }
100
+ if (expectedFilePath != null && !resolvedVerify && await fs.pathExists(expectedFilePath)) {
101
+ const allGgufParts = resolveSplitGgufParts(expectedFilePath);
102
+ if (allGgufParts.length === 1 && allGgufParts[0] === expectedFilePath)
103
+ return expectedFilePath;
104
+ const allPartsExist = await Promise.all(allGgufParts.map((part) => fs.pathExists(part)));
105
+ if (allGgufParts.length > 0) {
106
+ if (allPartsExist.every((exists) => exists))
107
+ return allGgufParts[0];
108
+ else if (download === false)
109
+ throw new Error(`Not all split parts of the model file "${allGgufParts[0]}" are present in the same directory`);
110
+ }
111
+ }
112
+ if (download === false) {
113
+ if (expectedFilePath != null)
114
+ throw new Error(`No model file found at "${expectedFilePath}" and download is disabled`);
115
+ throw new Error(`No model file found for "${uriOrPath}" and download is disabled`);
116
+ }
117
+ const downloader = await createModelDownloader({
118
+ modelUri: resolvedModelDestination.type === "uri"
119
+ ? resolvedModelDestination.uri
120
+ : resolvedModelDestination.url,
121
+ dirPath: resolvedDirectory,
122
+ headers,
123
+ showCliProgress: resolvedCli,
124
+ deleteTempFileOnCancel,
125
+ skipExisting: true,
126
+ fileName: fileName || undefined,
127
+ parallelDownloads: parallel,
128
+ onProgress,
129
+ tokens
130
+ });
131
+ if (expectedFilePath != null && downloader.totalFiles === 1 && await fs.pathExists(downloader.entrypointFilePath)) {
132
+ const fileStats = await fs.stat(expectedFilePath);
133
+ if (downloader.totalSize === fileStats.size) {
134
+ await downloader.cancel({ deleteTempFile: false });
135
+ console.log("download canceled");
136
+ return expectedFilePath;
137
+ }
138
+ }
139
+ if (resolvedCli)
140
+ console.info(`Downloading to ${chalk.yellow(getReadablePath(resolvedDirectory))}${downloader.splitBinaryParts != null
141
+ ? chalk.gray(` (combining ${downloader.splitBinaryParts} parts into a single file)`)
142
+ : ""}`);
143
+ await downloader.download({ signal });
144
+ if (resolvedCli)
145
+ console.info(`Downloaded to ${chalk.yellow(getReadablePath(downloader.entrypointFilePath))}`);
146
+ return downloader.entrypointFilePath;
147
+ }
148
+ //# sourceMappingURL=resolveModelFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveModelFile.js","sourceRoot":"","sources":["../../src/utils/resolveModelFile.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  {
2
- "release": "b3825"
2
+ "release": "b3887"
3
3
  }
Binary file
@@ -1,4 +1,4 @@
1
1
  {
2
- "tag": "b3825",
2
+ "tag": "b3887",
3
3
  "llamaCppGithubRepo": "ggerganov/llama.cpp"
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-llama-cpp",
3
- "version": "3.0.3",
3
+ "version": "3.1.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",
@@ -210,16 +210,16 @@
210
210
  }
211
211
  },
212
212
  "optionalDependencies": {
213
- "@node-llama-cpp/linux-arm64": "3.0.3",
214
- "@node-llama-cpp/linux-armv7l": "3.0.3",
215
- "@node-llama-cpp/linux-x64": "3.0.3",
216
- "@node-llama-cpp/linux-x64-cuda": "3.0.3",
217
- "@node-llama-cpp/linux-x64-vulkan": "3.0.3",
218
- "@node-llama-cpp/mac-arm64-metal": "3.0.3",
219
- "@node-llama-cpp/mac-x64": "3.0.3",
220
- "@node-llama-cpp/win-arm64": "3.0.3",
221
- "@node-llama-cpp/win-x64": "3.0.3",
222
- "@node-llama-cpp/win-x64-cuda": "3.0.3",
223
- "@node-llama-cpp/win-x64-vulkan": "3.0.3"
213
+ "@node-llama-cpp/linux-arm64": "3.1.0",
214
+ "@node-llama-cpp/linux-armv7l": "3.1.0",
215
+ "@node-llama-cpp/linux-x64": "3.1.0",
216
+ "@node-llama-cpp/linux-x64-cuda": "3.1.0",
217
+ "@node-llama-cpp/linux-x64-vulkan": "3.1.0",
218
+ "@node-llama-cpp/mac-arm64-metal": "3.1.0",
219
+ "@node-llama-cpp/mac-x64": "3.1.0",
220
+ "@node-llama-cpp/win-arm64": "3.1.0",
221
+ "@node-llama-cpp/win-x64": "3.1.0",
222
+ "@node-llama-cpp/win-x64-cuda": "3.1.0",
223
+ "@node-llama-cpp/win-x64-vulkan": "3.1.0"
224
224
  }
225
225
  }