node-llama-cpp 3.0.0-beta.11 → 3.0.0-beta.13

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 (209) hide show
  1. package/README.md +4 -4
  2. package/dist/ChatWrapper.d.ts +1 -0
  3. package/dist/ChatWrapper.js +2 -1
  4. package/dist/ChatWrapper.js.map +1 -1
  5. package/dist/TemplateChatWrapper.d.ts +67 -0
  6. package/dist/TemplateChatWrapper.js +239 -0
  7. package/dist/TemplateChatWrapper.js.map +1 -0
  8. package/dist/bindings/AddonTypes.d.ts +2 -0
  9. package/dist/bindings/Llama.d.ts +1 -2
  10. package/dist/bindings/Llama.js +10 -14
  11. package/dist/bindings/Llama.js.map +1 -1
  12. package/dist/bindings/consts.d.ts +2 -0
  13. package/dist/bindings/consts.js +11 -0
  14. package/dist/bindings/consts.js.map +1 -0
  15. package/dist/bindings/getLlama.d.ts +14 -12
  16. package/dist/bindings/getLlama.js +210 -75
  17. package/dist/bindings/getLlama.js.map +1 -1
  18. package/dist/bindings/types.d.ts +8 -4
  19. package/dist/bindings/types.js +18 -0
  20. package/dist/bindings/types.js.map +1 -1
  21. package/dist/bindings/utils/asyncEvery.d.ts +5 -0
  22. package/dist/bindings/utils/asyncEvery.js +15 -0
  23. package/dist/bindings/utils/asyncEvery.js.map +1 -0
  24. package/dist/bindings/utils/asyncSome.d.ts +5 -0
  25. package/dist/bindings/utils/asyncSome.js +27 -0
  26. package/dist/bindings/utils/asyncSome.js.map +1 -0
  27. package/dist/bindings/utils/cloneLlamaCppRepo.js +13 -3
  28. package/dist/bindings/utils/cloneLlamaCppRepo.js.map +1 -1
  29. package/dist/bindings/utils/compileLLamaCpp.js +31 -3
  30. package/dist/bindings/utils/compileLLamaCpp.js.map +1 -1
  31. package/dist/bindings/utils/detectAvailableComputeLayers.d.ts +11 -0
  32. package/dist/bindings/utils/detectAvailableComputeLayers.js +158 -0
  33. package/dist/bindings/utils/detectAvailableComputeLayers.js.map +1 -0
  34. package/dist/bindings/utils/detectGlibc.d.ts +4 -0
  35. package/dist/bindings/utils/detectGlibc.js +36 -0
  36. package/dist/bindings/utils/detectGlibc.js.map +1 -0
  37. package/dist/bindings/utils/getBestComputeLayersAvailable.d.ts +9 -0
  38. package/dist/bindings/utils/getBestComputeLayersAvailable.js +29 -0
  39. package/dist/bindings/utils/getBestComputeLayersAvailable.js.map +1 -0
  40. package/dist/bindings/utils/getBuildFolderNameForBuildOptions.js +12 -4
  41. package/dist/bindings/utils/getBuildFolderNameForBuildOptions.js.map +1 -1
  42. package/dist/bindings/utils/getGpuTypesToUseForOption.d.ts +11 -0
  43. package/dist/bindings/utils/getGpuTypesToUseForOption.js +30 -0
  44. package/dist/bindings/utils/getGpuTypesToUseForOption.js.map +1 -0
  45. package/dist/bindings/utils/getLinuxDistroInfo.d.ts +9 -0
  46. package/dist/bindings/utils/getLinuxDistroInfo.js +46 -0
  47. package/dist/bindings/utils/getLinuxDistroInfo.js.map +1 -0
  48. package/dist/bindings/utils/getPlatformInfo.d.ts +5 -0
  49. package/dist/bindings/utils/getPlatformInfo.js +28 -0
  50. package/dist/bindings/utils/getPlatformInfo.js.map +1 -0
  51. package/dist/bindings/utils/hasFileInPath.d.ts +2 -0
  52. package/dist/bindings/utils/hasFileInPath.js +34 -0
  53. package/dist/bindings/utils/hasFileInPath.js.map +1 -0
  54. package/dist/bindings/utils/logBinaryUsageExampleToConsole.d.ts +1 -1
  55. package/dist/bindings/utils/logBinaryUsageExampleToConsole.js +3 -9
  56. package/dist/bindings/utils/logBinaryUsageExampleToConsole.js.map +1 -1
  57. package/dist/bindings/utils/logDistroInstallInstruction.d.ts +13 -0
  58. package/dist/bindings/utils/logDistroInstallInstruction.js +38 -0
  59. package/dist/bindings/utils/logDistroInstallInstruction.js.map +1 -0
  60. package/dist/bindings/utils/resolveChatWrapperBasedOnWrapperTypeName.d.ts +9 -2
  61. package/dist/bindings/utils/resolveChatWrapperBasedOnWrapperTypeName.js +10 -4
  62. package/dist/bindings/utils/resolveChatWrapperBasedOnWrapperTypeName.js.map +1 -1
  63. package/dist/bindings/utils/resolveCustomCmakeOptions.js +2 -0
  64. package/dist/bindings/utils/resolveCustomCmakeOptions.js.map +1 -1
  65. package/dist/bindings/utils/testBindingBinary.d.ts +1 -0
  66. package/dist/bindings/utils/testBindingBinary.js +98 -0
  67. package/dist/bindings/utils/testBindingBinary.js.map +1 -0
  68. package/dist/chatWrappers/ChatMLChatWrapper.js +1 -1
  69. package/dist/chatWrappers/ChatMLChatWrapper.js.map +1 -1
  70. package/dist/chatWrappers/GemmaChatWrapper.d.ts +18 -0
  71. package/dist/chatWrappers/GemmaChatWrapper.js +86 -0
  72. package/dist/chatWrappers/GemmaChatWrapper.js.map +1 -0
  73. package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js +3 -0
  74. package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js.map +1 -1
  75. package/dist/cli/cli.js +2 -0
  76. package/dist/cli/cli.js.map +1 -1
  77. package/dist/cli/commands/BuildCommand.d.ts +5 -4
  78. package/dist/cli/commands/BuildCommand.js +78 -58
  79. package/dist/cli/commands/BuildCommand.js.map +1 -1
  80. package/dist/cli/commands/DebugCommand.js +12 -15
  81. package/dist/cli/commands/DebugCommand.js.map +1 -1
  82. package/dist/cli/commands/DownloadCommand.d.ts +5 -4
  83. package/dist/cli/commands/DownloadCommand.js +97 -54
  84. package/dist/cli/commands/DownloadCommand.js.map +1 -1
  85. package/dist/cli/commands/InspectCommand.d.ts +7 -0
  86. package/dist/cli/commands/InspectCommand.js +113 -0
  87. package/dist/cli/commands/InspectCommand.js.map +1 -0
  88. package/dist/cli/utils/logUsedGpuTypeOption.d.ts +2 -0
  89. package/dist/cli/utils/logUsedGpuTypeOption.js +9 -0
  90. package/dist/cli/utils/logUsedGpuTypeOption.js.map +1 -0
  91. package/dist/config.d.ts +3 -2
  92. package/dist/config.js +12 -10
  93. package/dist/config.js.map +1 -1
  94. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.d.ts +3 -0
  95. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js +3 -0
  96. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js.map +1 -1
  97. package/dist/gguf/GGUFInsights.d.ts +28 -0
  98. package/dist/gguf/GGUFInsights.js +58 -0
  99. package/dist/gguf/GGUFInsights.js.map +1 -0
  100. package/dist/gguf/GGUFMetadata.d.ts +19 -0
  101. package/dist/gguf/GGUFMetadata.js +38 -0
  102. package/dist/gguf/GGUFMetadata.js.map +1 -0
  103. package/dist/gguf/errors/InvalidGGUFMagicError.d.ts +3 -0
  104. package/dist/gguf/errors/InvalidGGUFMagicError.js +6 -0
  105. package/dist/gguf/errors/InvalidGGUFMagicError.js.map +1 -0
  106. package/dist/gguf/errors/MetadataNotParsedYetError.d.ts +3 -0
  107. package/dist/gguf/errors/MetadataNotParsedYetError.js +6 -0
  108. package/dist/gguf/errors/MetadataNotParsedYetError.js.map +1 -0
  109. package/dist/gguf/errors/MissingNodeLlamaError.d.ts +3 -0
  110. package/dist/gguf/errors/MissingNodeLlamaError.js +6 -0
  111. package/dist/gguf/errors/MissingNodeLlamaError.js.map +1 -0
  112. package/dist/gguf/errors/ModelScore/NotEnoughVRamError.d.ts +5 -0
  113. package/dist/gguf/errors/ModelScore/NotEnoughVRamError.js +12 -0
  114. package/dist/gguf/errors/ModelScore/NotEnoughVRamError.js.map +1 -0
  115. package/dist/gguf/errors/UnsupportedMetadataTypeError.d.ts +4 -0
  116. package/dist/gguf/errors/UnsupportedMetadataTypeError.js +8 -0
  117. package/dist/gguf/errors/UnsupportedMetadataTypeError.js.map +1 -0
  118. package/dist/gguf/ggufParser/GGUFParser.d.ts +18 -0
  119. package/dist/gguf/ggufParser/GGUFParser.js +123 -0
  120. package/dist/gguf/ggufParser/GGUFParser.js.map +1 -0
  121. package/dist/gguf/ggufParser/GGUFTypes.d.ts +257 -0
  122. package/dist/gguf/ggufParser/GGUFTypes.js +2 -0
  123. package/dist/gguf/ggufParser/GGUFTypes.js.map +1 -0
  124. package/dist/gguf/ggufParser/checkArchitecture.d.ts +14 -0
  125. package/dist/gguf/ggufParser/checkArchitecture.js +74 -0
  126. package/dist/gguf/ggufParser/checkArchitecture.js.map +1 -0
  127. package/dist/gguf/ggufParser/stream/GGUFBaseStream.d.ts +38 -0
  128. package/dist/gguf/ggufParser/stream/GGUFBaseStream.js +83 -0
  129. package/dist/gguf/ggufParser/stream/GGUFBaseStream.js.map +1 -0
  130. package/dist/gguf/ggufParser/stream/GGUFFetchStream.d.ts +14 -0
  131. package/dist/gguf/ggufParser/stream/GGUFFetchStream.js +35 -0
  132. package/dist/gguf/ggufParser/stream/GGUFFetchStream.js.map +1 -0
  133. package/dist/gguf/ggufParser/stream/GGUFReadStream.d.ts +15 -0
  134. package/dist/gguf/ggufParser/stream/GGUFReadStream.js +40 -0
  135. package/dist/gguf/ggufParser/stream/GGUFReadStream.js.map +1 -0
  136. package/dist/index.d.ts +3 -1
  137. package/dist/index.js +3 -1
  138. package/dist/index.js.map +1 -1
  139. package/dist/utils/LlamaText.js +2 -2
  140. package/dist/utils/LlamaText.js.map +1 -1
  141. package/dist/utils/cmake.js +23 -10
  142. package/dist/utils/cmake.js.map +1 -1
  143. package/dist/utils/gbnfJson/terminals/GbnfArray.js.map +1 -1
  144. package/dist/utils/gbnfJson/terminals/GbnfBoolean.d.ts +1 -1
  145. package/dist/utils/gbnfJson/terminals/GbnfBoolean.js.map +1 -1
  146. package/dist/utils/gbnfJson/terminals/GbnfBooleanValue.js.map +1 -1
  147. package/dist/utils/gbnfJson/terminals/GbnfGrammar.js.map +1 -1
  148. package/dist/utils/gbnfJson/terminals/GbnfNull.d.ts +1 -1
  149. package/dist/utils/gbnfJson/terminals/GbnfNull.js.map +1 -1
  150. package/dist/utils/gbnfJson/terminals/GbnfNumber.d.ts +1 -1
  151. package/dist/utils/gbnfJson/terminals/GbnfNumber.js.map +1 -1
  152. package/dist/utils/gbnfJson/terminals/GbnfNumberValue.js.map +1 -1
  153. package/dist/utils/gbnfJson/terminals/GbnfObjectMap.js.map +1 -1
  154. package/dist/utils/gbnfJson/terminals/GbnfOr.js.map +1 -1
  155. package/dist/utils/gbnfJson/terminals/GbnfString.d.ts +1 -1
  156. package/dist/utils/gbnfJson/terminals/GbnfString.js.map +1 -1
  157. package/dist/utils/gbnfJson/terminals/GbnfStringValue.js.map +1 -1
  158. package/dist/utils/gbnfJson/terminals/GbnfVerbatimText.js.map +1 -1
  159. package/dist/utils/gbnfJson/terminals/GbnfWhitespace.d.ts +1 -1
  160. package/dist/utils/gbnfJson/terminals/GbnfWhitespace.js.map +1 -1
  161. package/dist/utils/getBuildDefaults.d.ts +1 -2
  162. package/dist/utils/getBuildDefaults.js +2 -3
  163. package/dist/utils/getBuildDefaults.js.map +1 -1
  164. package/dist/utils/getConsoleLogPrefix.d.ts +1 -1
  165. package/dist/utils/getConsoleLogPrefix.js +2 -2
  166. package/dist/utils/getConsoleLogPrefix.js.map +1 -1
  167. package/dist/utils/mergeUnionTypes.d.ts +6 -0
  168. package/dist/utils/mergeUnionTypes.js +2 -0
  169. package/dist/utils/mergeUnionTypes.js.map +1 -0
  170. package/dist/utils/parseTextTemplate.d.ts +66 -0
  171. package/dist/utils/parseTextTemplate.js +116 -0
  172. package/dist/utils/parseTextTemplate.js.map +1 -0
  173. package/llama/CMakeLists.txt +30 -4
  174. package/llama/addon.cpp +62 -7
  175. package/llama/binariesGithubRelease.json +1 -1
  176. package/llama/gitRelease.bundle +0 -0
  177. package/llama/gpuInfo/cuda-gpu-info.cu +5 -5
  178. package/llama/gpuInfo/cuda-gpu-info.h +2 -2
  179. package/llama/gpuInfo/vulkan-gpu-info.cpp +65 -0
  180. package/llama/gpuInfo/vulkan-gpu-info.h +7 -0
  181. package/llama/llama.cpp.info.json +1 -1
  182. package/llamaBins/linux-arm64/.buildMetadata.json +1 -1
  183. package/llamaBins/linux-arm64/llama-addon.node +0 -0
  184. package/llamaBins/linux-armv7l/.buildMetadata.json +1 -1
  185. package/llamaBins/linux-armv7l/llama-addon.node +0 -0
  186. package/llamaBins/linux-x64/.buildMetadata.json +1 -1
  187. package/llamaBins/linux-x64/llama-addon.node +0 -0
  188. package/llamaBins/linux-x64-cuda/.buildMetadata.json +1 -1
  189. package/llamaBins/linux-x64-cuda/llama-addon.node +0 -0
  190. package/llamaBins/linux-x64-vulkan/.buildMetadata.json +1 -0
  191. package/llamaBins/linux-x64-vulkan/llama-addon.node +0 -0
  192. package/llamaBins/mac-arm64-metal/.buildMetadata.json +1 -1
  193. package/llamaBins/mac-arm64-metal/ggml-metal.metal +1382 -142
  194. package/llamaBins/mac-arm64-metal/llama-addon.node +0 -0
  195. package/llamaBins/mac-x64/.buildMetadata.json +1 -1
  196. package/llamaBins/mac-x64/llama-addon.node +0 -0
  197. package/llamaBins/win-x64/.buildMetadata.json +1 -1
  198. package/llamaBins/win-x64/llama-addon.exp +0 -0
  199. package/llamaBins/win-x64/llama-addon.lib +0 -0
  200. package/llamaBins/win-x64/llama-addon.node +0 -0
  201. package/llamaBins/win-x64-cuda/.buildMetadata.json +1 -1
  202. package/llamaBins/win-x64-cuda/llama-addon.exp +0 -0
  203. package/llamaBins/win-x64-cuda/llama-addon.lib +0 -0
  204. package/llamaBins/win-x64-cuda/llama-addon.node +0 -0
  205. package/llamaBins/win-x64-vulkan/.buildMetadata.json +1 -0
  206. package/llamaBins/win-x64-vulkan/llama-addon.exp +0 -0
  207. package/llamaBins/win-x64-vulkan/llama-addon.lib +0 -0
  208. package/llamaBins/win-x64-vulkan/llama-addon.node +0 -0
  209. package/package.json +7 -4
@@ -0,0 +1,113 @@
1
+ import os from "os";
2
+ import bytes from "bytes";
3
+ import chalk from "chalk";
4
+ import { getLlamaForOptions } from "../../bindings/getLlama.js";
5
+ import { detectAvailableComputeLayers } from "../../bindings/utils/detectAvailableComputeLayers.js";
6
+ import { getPlatform } from "../../bindings/utils/getPlatform.js";
7
+ import { LlamaLogLevel } from "../../bindings/types.js";
8
+ import { getPrettyBuildGpuName } from "../../bindings/consts.js";
9
+ const inspectFunctions = ["gpu"];
10
+ export const InspectCommand = {
11
+ command: "inspect [function]",
12
+ describe: "Inspect the inner workings of node-llama-cpp",
13
+ builder(yargs) {
14
+ return yargs
15
+ .option("function", {
16
+ type: "string",
17
+ choices: inspectFunctions,
18
+ demandOption: true,
19
+ description: "inspect function to run"
20
+ });
21
+ },
22
+ async handler({ function: func }) {
23
+ if (func === "gpu")
24
+ await InspectGpuFunction();
25
+ else
26
+ void (func);
27
+ }
28
+ };
29
+ async function InspectGpuFunction() {
30
+ const platform = getPlatform();
31
+ const arch = process.arch;
32
+ const availableComputeLayers = await detectAvailableComputeLayers({ platform });
33
+ const gpusToLogVramUsageOf = [];
34
+ if (platform === "mac" && arch === "arm64") {
35
+ console.info(`${chalk.yellow("Metal:")} ${chalk.green("available")}`);
36
+ gpusToLogVramUsageOf.push("metal");
37
+ }
38
+ else {
39
+ console.info(`${chalk.yellow("Metal:")} ${chalk.red("not supported by llama.cpp on Intel Macs")}`);
40
+ }
41
+ if (availableComputeLayers.cuda.hasNvidiaDriver && !availableComputeLayers.cuda.hasCudaRuntime) {
42
+ console.info(`${chalk.yellow("CUDA:")} ${chalk.red("NVIDIA driver is installed, but CUDA runtime is not")}`);
43
+ }
44
+ else if (availableComputeLayers.cuda.hasCudaRuntime && !availableComputeLayers.cuda.hasNvidiaDriver) {
45
+ console.info(`${chalk.yellow("CUDA:")} ${chalk.red("CUDA runtime is installed, but NVIDIA driver is not")}`);
46
+ }
47
+ else if (availableComputeLayers.cuda.hasCudaRuntime && availableComputeLayers.cuda.hasNvidiaDriver) {
48
+ console.info(`${chalk.yellow("CUDA:")} ${chalk.green("available")}`);
49
+ gpusToLogVramUsageOf.push("cuda");
50
+ }
51
+ if (availableComputeLayers.vulkan) {
52
+ console.info(`${chalk.yellow("Vulkan:")} ${chalk.green("available")}`);
53
+ gpusToLogVramUsageOf.push("vulkan");
54
+ }
55
+ for (const gpu of gpusToLogVramUsageOf) {
56
+ console.info();
57
+ await logGpuVramUsage(gpu);
58
+ }
59
+ console.info();
60
+ await logRamUsage();
61
+ }
62
+ async function logGpuVramUsage(gpu) {
63
+ try {
64
+ const llama = await getLlamaForOptions({
65
+ gpu: gpu,
66
+ build: "never",
67
+ progressLogs: false,
68
+ logLevel: LlamaLogLevel.warn
69
+ }, {
70
+ skipLlamaInit: true
71
+ });
72
+ const gpuName = getPrettyBuildGpuName(gpu);
73
+ const vramStatus = llama.getVramState();
74
+ console.info(`${chalk.yellow(`${gpuName} used VRAM:`)} ${getPercentageString(vramStatus.used, vramStatus.total)}% ${chalk.grey("(" + bytes(vramStatus.used) + "/" + bytes(vramStatus.total) + ")")}`);
75
+ console.info(`${chalk.yellow(`${gpuName} free VRAM:`)} ${getPercentageString(vramStatus.free, vramStatus.total)}% ${chalk.grey("(" + bytes(vramStatus.free) + "/" + bytes(vramStatus.total) + ")")}`);
76
+ }
77
+ catch (err) { }
78
+ }
79
+ async function logRamUsage() {
80
+ const totalMemory = os.totalmem();
81
+ const freeMemory = os.freemem();
82
+ const usedMemory = totalMemory - freeMemory;
83
+ console.info(`${chalk.yellow("Used RAM:")} ${getPercentageString(usedMemory, totalMemory)}% ${chalk.grey("(" + bytes(usedMemory) + "/" + bytes(totalMemory) + ")")}`);
84
+ console.info(`${chalk.yellow("Free RAM:")} ${getPercentageString(freeMemory, totalMemory)}% ${chalk.grey("(" + bytes(freeMemory) + "/" + bytes(totalMemory) + ")")}`);
85
+ }
86
+ function getPercentageString(amount, total) {
87
+ if (total === 0)
88
+ return "0";
89
+ return String(Math.floor((amount / total) * 100 * 100) / 100);
90
+ }
91
+ // // simple script to copy console logs as ansi to clipboard. Used to update the documentation
92
+ // import {spawn} from "child_process";
93
+ // const pendingLog: string[] = [];
94
+ // const originalConsoleInfo = console.info;
95
+ // console.info = function info(...args: any[]) {
96
+ // originalConsoleInfo.call(console, ...args);
97
+ // pendingLog.push(args.join(" "));
98
+ // };
99
+ //
100
+ // function copyLogs() {
101
+ // const res = pendingLog.join("\n");
102
+ //
103
+ // pbcopy(res);
104
+ // originalConsoleInfo.call(console, "Copied logs to clipboard");
105
+ // }
106
+ // function pbcopy(text: string) {
107
+ // const pbcopyProcess = spawn("pbcopy");
108
+ // pbcopyProcess.stdin.write(text);
109
+ // pbcopyProcess.stdin.end();
110
+ // }
111
+ //
112
+ // process.on("exit", copyLogs);
113
+ //# sourceMappingURL=InspectCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InspectCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/InspectCommand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { BuildGpu } from "../../bindings/types.js";
2
+ export declare function logUsedGpuTypeOption(gpu: BuildGpu): void;
@@ -0,0 +1,9 @@
1
+ import chalk from "chalk";
2
+ import { getPrettyBuildGpuName } from "../../bindings/consts.js";
3
+ export function logUsedGpuTypeOption(gpu) {
4
+ if (gpu == false)
5
+ console.log(`${chalk.yellow("GPU:")} disabled`);
6
+ else
7
+ console.log(`${chalk.yellow("GPU:")} ${getPrettyBuildGpuName(gpu)}`);
8
+ }
9
+ //# sourceMappingURL=logUsedGpuTypeOption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logUsedGpuTypeOption.js","sourceRoot":"","sources":["../../../src/cli/utils/logUsedGpuTypeOption.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,qBAAqB,EAAC,MAAM,0BAA0B,CAAC;AAE/D,MAAM,UAAU,oBAAoB,CAAC,GAAa;IAC9C,IAAI,GAAG,IAAI,KAAK;QACZ,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;;QAEhD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC7E,CAAC"}
package/dist/config.d.ts CHANGED
@@ -23,8 +23,7 @@ export declare const isCI: boolean;
23
23
  export declare const isRunningInsideGoogleColab: boolean;
24
24
  export declare const defaultLlamaCppGitHubRepo: string;
25
25
  export declare const defaultLlamaCppRelease: string;
26
- export declare const defaultLlamaCppMetalSupport: boolean;
27
- export declare const defaultLlamaCppCudaSupport: boolean;
26
+ export declare const defaultLlamaCppGpuSupport: false | "cuda" | "vulkan" | "metal" | "auto";
28
27
  export declare const defaultLlamaCppDebugLogs: LlamaLogLevel;
29
28
  export declare const defaultSkipDownload: boolean;
30
29
  export declare const defaultXpacksStoreDirectory: string;
@@ -35,4 +34,6 @@ export declare const cliBinName = "node-llama-cpp";
35
34
  export declare const npxRunPrefix = "npx --no ";
36
35
  export declare const documentationPageUrls: {
37
36
  readonly CUDA: string;
37
+ readonly Vulkan: string;
38
38
  };
39
+ export declare const recommendedBaseDockerImage = "node:20";
package/dist/config.js CHANGED
@@ -5,7 +5,7 @@ import process from "process";
5
5
  import envVar from "env-var";
6
6
  import * as uuid from "uuid";
7
7
  import { getBinariesGithubRelease } from "./bindings/utils/binariesGithubRelease.js";
8
- import { LlamaLogLevel, LlamaLogLevelValues } from "./bindings/types.js";
8
+ import { nodeLlamaCppGpuOptions, LlamaLogLevel, LlamaLogLevelValues, parseNodeLlamaCppGpuOption, nodeLlamaCppGpuOffStringOptions } from "./bindings/types.js";
9
9
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
10
10
  const env = envVar.from(process.env);
11
11
  export const llamaDirectory = path.join(__dirname, "..", "llama");
@@ -40,12 +40,12 @@ export const defaultLlamaCppGitHubRepo = env.get("NODE_LLAMA_CPP_REPO")
40
40
  export const defaultLlamaCppRelease = env.get("NODE_LLAMA_CPP_REPO_RELEASE")
41
41
  .default(builtinLlamaCppRelease)
42
42
  .asString();
43
- export const defaultLlamaCppMetalSupport = env.get("NODE_LLAMA_CPP_METAL")
44
- .default((process.platform === "darwin" && process.arch !== "x64") ? "true" : "false")
45
- .asBool();
46
- export const defaultLlamaCppCudaSupport = env.get("NODE_LLAMA_CPP_CUDA")
47
- .default("false")
48
- .asBool();
43
+ export const defaultLlamaCppGpuSupport = parseNodeLlamaCppGpuOption(env.get("NODE_LLAMA_CPP_GPU")
44
+ .default("auto")
45
+ .asEnum(nodeLlamaCppGpuOptions
46
+ .flatMap((option) => (option === false
47
+ ? nodeLlamaCppGpuOffStringOptions
48
+ : [option]))));
49
49
  export const defaultLlamaCppDebugLogs = env.get("NODE_LLAMA_CPP_LOG_LEVEL")
50
50
  .default(LlamaLogLevel.debug)
51
51
  .asEnum(LlamaLogLevelValues);
@@ -60,12 +60,14 @@ export const defaultXpacksCacheDirectory = env.get("NODE_LLAMA_CPP_XPACKS_CACHE_
60
60
  .asString();
61
61
  export const customCmakeOptionsEnvVarPrefix = "NODE_LLAMA_CPP_CMAKE_OPTION_";
62
62
  export const defaultChatSystemPrompt = "You are a helpful, respectful and honest assistant. Always answer as helpfully as possible.\n" +
63
- "If a question does not make any sense, or is not factually coherent, explain why instead of answering something not correct. " +
64
- "If you don't know the answer to a question, please don't share false information.";
63
+ "If a question does not make any sense, or is not factually coherent, explain why instead of answering something incorrectly. " +
64
+ "If you don't know the answer to a question, don't share false information.";
65
65
  export const cliBinName = "node-llama-cpp";
66
66
  export const npxRunPrefix = "npx --no ";
67
67
  const documentationUrl = "https://withcatai.github.io/node-llama-cpp";
68
68
  export const documentationPageUrls = {
69
- CUDA: documentationUrl + "/guide/CUDA"
69
+ CUDA: documentationUrl + "/guide/CUDA",
70
+ Vulkan: documentationUrl + "/guide/vulkan"
70
71
  };
72
+ export const recommendedBaseDockerImage = "node:20";
71
73
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  import { GbnfJsonSchema, GbnfJsonSchemaToType } from "../../../utils/gbnfJson/types.js";
2
2
  import { ChatSessionModelFunction } from "../../../types.js";
3
+ /**
4
+ * @param functionDefinition
5
+ */
3
6
  export declare function defineChatSessionFunction<const Params extends GbnfJsonSchema | undefined>({ description, params, handler }: {
4
7
  description?: string;
5
8
  params?: Params;
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @param functionDefinition
3
+ */
1
4
  export function defineChatSessionFunction({ description, params, handler }) {
2
5
  return {
3
6
  description,
@@ -1 +1 @@
1
- {"version":3,"file":"defineChatSessionFunction.js","sourceRoot":"","sources":["../../../../src/evaluator/LlamaChatSession/utils/defineChatSessionFunction.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,yBAAyB,CAAkD,EACvF,WAAW,EACX,MAAM,EACN,OAAO,EAKV;IACG,OAAO;QACH,WAAW;QACX,MAAM;QACN,OAAO;KACV,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"defineChatSessionFunction.js","sourceRoot":"","sources":["../../../../src/evaluator/LlamaChatSession/utils/defineChatSessionFunction.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAkD,EACvF,WAAW,EACX,MAAM,EACN,OAAO,EAKV;IACG,OAAO;QACH,WAAW;QACX,MAAM;QACN,OAAO;KACV,CAAC;AACN,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { Llama } from "../bindings/Llama.js";
2
+ import { GGUFMetadataResponse } from "./ggufParser/GGUFParser.js";
3
+ export type GGUFInsightsOptions = {
4
+ contextCount?: number;
5
+ nodeLlama?: Llama;
6
+ modelSize?: number;
7
+ };
8
+ export default class GGUFInsights {
9
+ readonly metadataResponse: GGUFMetadataResponse;
10
+ readonly options: GGUFInsightsOptions;
11
+ get metadata(): import("./ggufParser/GGUFTypes.js").GGUFMetadataAny;
12
+ get architectureMetadata(): import("./ggufParser/GGUFTypes.js").GGUFMetadataArchitectureProperties;
13
+ /**
14
+ * fp16 k,v matrices
15
+ */
16
+ get kvMatrices(): number;
17
+ /**
18
+ * This amount is the overhead + tensors in memory
19
+ */
20
+ get graphSize(): number;
21
+ get VRAMUsage(): number;
22
+ protected get _availableVRam(): number;
23
+ constructor(metadataResponse: GGUFMetadataResponse, options?: GGUFInsightsOptions);
24
+ /**
25
+ * The score of the model by how much it's compatible to the current system
26
+ */
27
+ modelScore(): number;
28
+ }
@@ -0,0 +1,58 @@
1
+ import MissingNodeLlamaError from "./errors/MissingNodeLlamaError.js";
2
+ import NotEnoughVRamError from "./errors/ModelScore/NotEnoughVRamError.js";
3
+ const PAD_AVAILABLE_VRAM = 1024 ** 2 * 500; // 500MB
4
+ export default class GGUFInsights {
5
+ metadataResponse;
6
+ options = {};
7
+ get metadata() {
8
+ return this.metadataResponse.metadata;
9
+ }
10
+ get architectureMetadata() {
11
+ return this.metadata[this.metadata.general.architecture];
12
+ }
13
+ /**
14
+ * fp16 k,v matrices
15
+ */
16
+ get kvMatrices() {
17
+ // 2 bytes each * 2 key and value
18
+ return (2 * 2 *
19
+ this.architectureMetadata.context_length *
20
+ this.architectureMetadata.block_count *
21
+ this.architectureMetadata.embedding_length *
22
+ this.architectureMetadata.attention.head_count_kv /
23
+ this.architectureMetadata.attention.head_count);
24
+ }
25
+ /**
26
+ * This amount is the overhead + tensors in memory
27
+ */
28
+ get graphSize() {
29
+ // TODO: get this from the llama.cpp's graph calculations instead of
30
+ // estimating it's 1/6 * kv_cache_size * num_gqa
31
+ return ((this.architectureMetadata.attention.head_count_kv /
32
+ this.architectureMetadata.attention.head_count) * this.kvMatrices / 6);
33
+ }
34
+ get VRAMUsage() {
35
+ return this.graphSize + this.kvMatrices + this.metadataResponse.metadataSize;
36
+ }
37
+ get _availableVRam() {
38
+ if (!this.options?.nodeLlama) {
39
+ throw new MissingNodeLlamaError("GGUFInsights Calculations");
40
+ }
41
+ return this.options.nodeLlama.getVramState().total - PAD_AVAILABLE_VRAM;
42
+ }
43
+ constructor(metadataResponse, options = {}) {
44
+ this.options = options;
45
+ this.metadataResponse = metadataResponse;
46
+ }
47
+ /**
48
+ * The score of the model by how much it's compatible to the current system
49
+ */
50
+ modelScore() {
51
+ const vramScore = this.VRAMUsage / this._availableVRam;
52
+ if (vramScore >= 1) {
53
+ throw new NotEnoughVRamError(this.VRAMUsage, this._availableVRam);
54
+ }
55
+ return vramScore;
56
+ }
57
+ }
58
+ //# sourceMappingURL=GGUFInsights.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GGUFInsights.js","sourceRoot":"","sources":["../../src/gguf/GGUFInsights.ts"],"names":[],"mappings":"AACA,OAAO,qBAAqB,MAAM,mCAAmC,CAAC;AAEtE,OAAO,kBAAkB,MAAM,2CAA2C,CAAC;AAE3E,MAAM,kBAAkB,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ;AAQpD,MAAM,CAAC,OAAO,OAAO,YAAY;IACb,gBAAgB,CAAuB;IACvC,OAAO,GAAwB,EAAE,CAAC;IAElD,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;IAC1C,CAAC;IAED,IAAW,oBAAoB;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,IAAW,UAAU;QACjB,iCAAiC;QACjC,OAAO,CACH,CAAC,GAAG,CAAC;YACL,IAAI,CAAC,oBAAoB,CAAC,cAAc;YACxC,IAAI,CAAC,oBAAoB,CAAC,WAAW;YACrC,IAAI,CAAC,oBAAoB,CAAC,gBAAgB;YAC1C,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,aAAa;YACjD,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,UAAU,CACjD,CAAC;IACN,CAAC;IAED;;OAEG;IACH,IAAW,SAAS;QAChB,oEAAoE;QACpE,gDAAgD;QAChD,OAAO,CACH,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,aAAa;YAClD,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CACxE,CAAC;IACN,CAAC;IAED,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC;IACjF,CAAC;IAED,IAAc,cAAc;QACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAC;YACzB,MAAM,IAAI,qBAAqB,CAAC,2BAA2B,CAAC,CAAC;SAChE;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,KAAK,GAAG,kBAAkB,CAAC;IAC5E,CAAC;IAED,YAAmB,gBAAsC,EAAE,UAA+B,EAAE;QACxF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAE7C,CAAC;IAGD;;OAEG;IACI,UAAU;QACb,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;QACvD,IAAI,SAAS,IAAI,CAAC,EAAC;YACf,MAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SACrE;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;CAEJ"}
@@ -0,0 +1,19 @@
1
+ import retry from "async-retry";
2
+ import GGUFInsights, { GGUFInsightsOptions } from "./GGUFInsights.js";
3
+ import { GGUFMetadataResponse } from "./ggufParser/GGUFParser.js";
4
+ export type GGUFMetadataOptions = {
5
+ source?: "network" | "local";
6
+ retry?: retry.Options;
7
+ ignoreKeys?: string[];
8
+ insights?: GGUFInsightsOptions;
9
+ };
10
+ export default class GGUFMetadata {
11
+ protected _metadata?: GGUFMetadataResponse;
12
+ readonly path: string;
13
+ readonly options: Partial<GGUFMetadataOptions>;
14
+ get metadata(): GGUFMetadataResponse;
15
+ get insights(): GGUFInsights;
16
+ constructor(path: string, options?: Partial<GGUFMetadataOptions>);
17
+ parse(): Promise<GGUFMetadataResponse>;
18
+ private _createStream;
19
+ }
@@ -0,0 +1,38 @@
1
+ import MetadataNotParsedYetError from "./errors/MetadataNotParsedYetError.js";
2
+ import GGUFInsights from "./GGUFInsights.js";
3
+ import GGUFParser from "./ggufParser/GGUFParser.js";
4
+ import GGUFFetchStream from "./ggufParser/stream/GGUFFetchStream.js";
5
+ import GGUFReadStream from "./ggufParser/stream/GGUFReadStream.js";
6
+ export default class GGUFMetadata {
7
+ _metadata;
8
+ path;
9
+ options = {};
10
+ get metadata() {
11
+ if (!this._metadata) {
12
+ throw new MetadataNotParsedYetError(this.path);
13
+ }
14
+ return this._metadata;
15
+ }
16
+ get insights() {
17
+ return new GGUFInsights(this.metadata, this.options.insights);
18
+ }
19
+ constructor(path, options = {}) {
20
+ this.options = options;
21
+ this.path = path;
22
+ }
23
+ async parse() {
24
+ const stream = this._createStream();
25
+ const parser = new GGUFParser(stream, this.options.ignoreKeys);
26
+ return this._metadata = await parser.parseMetadata();
27
+ }
28
+ _createStream() {
29
+ switch (this.options.source) {
30
+ case "network":
31
+ return new GGUFFetchStream(this.path, { retry: this.options.retry });
32
+ case "local":
33
+ default:
34
+ return new GGUFReadStream(this.path, { retry: this.options.retry });
35
+ }
36
+ }
37
+ }
38
+ //# sourceMappingURL=GGUFMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GGUFMetadata.js","sourceRoot":"","sources":["../../src/gguf/GGUFMetadata.ts"],"names":[],"mappings":"AACA,OAAO,yBAAyB,MAAM,uCAAuC,CAAC;AAC9E,OAAO,YAAmC,MAAM,mBAAmB,CAAC;AACpE,OAAO,UAAkC,MAAM,4BAA4B,CAAC;AAC5E,OAAO,eAAe,MAAM,wCAAwC,CAAC;AACrE,OAAO,cAAc,MAAM,uCAAuC,CAAC;AASnE,MAAM,CAAC,OAAO,OAAO,YAAY;IACnB,SAAS,CAAwB;IAC3B,IAAI,CAAS;IACb,OAAO,GAAiC,EAAE,CAAC;IAE3D,IAAW,QAAQ;QACf,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,MAAM,IAAI,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClD;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,IAAW,QAAQ;QACf,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;IAED,YAAmB,IAAY,EAAE,UAAwC,EAAE;QACvE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAEM,KAAK,CAAC,KAAK;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,SAAS,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;IACzD,CAAC;IAEO,aAAa;QACjB,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACzB,KAAK,SAAS;gBACV,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAC,CAAC,CAAC;YACvE,KAAK,OAAO,CAAC;YACb;gBACI,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAC,CAAC,CAAC;SACzE;IACL,CAAC;CACJ"}
@@ -0,0 +1,3 @@
1
+ export default class InvalidGGUFMagicError extends Error {
2
+ constructor(message?: string);
3
+ }
@@ -0,0 +1,6 @@
1
+ export default class InvalidGGUFMagicError extends Error {
2
+ constructor(message = "Invalid GGUF magic") {
3
+ super(message);
4
+ }
5
+ }
6
+ //# sourceMappingURL=InvalidGGUFMagicError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvalidGGUFMagicError.js","sourceRoot":"","sources":["../../../src/gguf/errors/InvalidGGUFMagicError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,KAAK;IACpD,YAAmB,OAAO,GAAG,oBAAoB;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;CACJ"}
@@ -0,0 +1,3 @@
1
+ export default class MetadataNotParsedYetError extends Error {
2
+ constructor(path: string);
3
+ }
@@ -0,0 +1,6 @@
1
+ export default class MetadataNotParsedYetError extends Error {
2
+ constructor(path) {
3
+ super(`Metadata not parsed yet: "${path}"`);
4
+ }
5
+ }
6
+ //# sourceMappingURL=MetadataNotParsedYetError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetadataNotParsedYetError.js","sourceRoot":"","sources":["../../../src/gguf/errors/MetadataNotParsedYetError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,KAAK;IACxD,YAAmB,IAAY;QAC3B,KAAK,CAAC,6BAA6B,IAAI,GAAG,CAAC,CAAC;IAChD,CAAC;CACJ"}
@@ -0,0 +1,3 @@
1
+ export default class MissingNodeLlamaError extends Error {
2
+ constructor(purpose: string);
3
+ }
@@ -0,0 +1,6 @@
1
+ export default class MissingNodeLlamaError extends Error {
2
+ constructor(purpose) {
3
+ super(`Missing nodeLlama options, this in required for ${purpose}`);
4
+ }
5
+ }
6
+ //# sourceMappingURL=MissingNodeLlamaError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MissingNodeLlamaError.js","sourceRoot":"","sources":["../../../src/gguf/errors/MissingNodeLlamaError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,KAAK;IACpD,YAAmB,OAAe;QAC9B,KAAK,CAAC,mDAAmD,OAAO,EAAE,CAAC,CAAC;IACxE,CAAC;CACJ"}
@@ -0,0 +1,5 @@
1
+ export default class NotEnoughVRamError extends Error {
2
+ readonly requiredVRAM: number;
3
+ readonly availableVRAM: number;
4
+ constructor(requiredVRAM: number, availableVRAM: number);
5
+ }
@@ -0,0 +1,12 @@
1
+ import prettyBytes from "pretty-bytes";
2
+ export default class NotEnoughVRamError extends Error {
3
+ requiredVRAM;
4
+ availableVRAM;
5
+ constructor(requiredVRAM, availableVRAM) {
6
+ super();
7
+ this.availableVRAM = availableVRAM;
8
+ this.requiredVRAM = requiredVRAM;
9
+ this.message = `Not enough VRAM, require ${prettyBytes(requiredVRAM)}, but only ${prettyBytes(availableVRAM)} available`;
10
+ }
11
+ }
12
+ //# sourceMappingURL=NotEnoughVRamError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotEnoughVRamError.js","sourceRoot":"","sources":["../../../../src/gguf/errors/ModelScore/NotEnoughVRamError.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,cAAc,CAAC;AAEvC,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,KAAK;IACjC,YAAY,CAAS;IACrB,aAAa,CAAS;IAEtC,YAAmB,YAAoB,EAAE,aAAqB;QAC1D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,4BAA4B,WAAW,CAAC,YAAY,CAAC,cAAc,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC;IAC7H,CAAC;CACJ"}
@@ -0,0 +1,4 @@
1
+ export default class UnsupportedMetadataTypeError extends Error {
2
+ readonly type: number;
3
+ constructor(type: number);
4
+ }
@@ -0,0 +1,8 @@
1
+ export default class UnsupportedMetadataTypeError extends Error {
2
+ type;
3
+ constructor(type) {
4
+ super(`Unsupported metadata type: "${type}"`);
5
+ this.type = type;
6
+ }
7
+ }
8
+ //# sourceMappingURL=UnsupportedMetadataTypeError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnsupportedMetadataTypeError.js","sourceRoot":"","sources":["../../../src/gguf/errors/UnsupportedMetadataTypeError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,4BAA6B,SAAQ,KAAK;IAC3C,IAAI,CAAS;IAE7B,YAAmB,IAAY;QAC3B,KAAK,CAAC,+BAA+B,IAAI,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;CACJ"}
@@ -0,0 +1,18 @@
1
+ import { GGUFMetadataAny } from "./GGUFTypes.js";
2
+ import GGUFBaseStream from "./stream/GGUFBaseStream.js";
3
+ export type GGUFMetadataResponse = {
4
+ metadataSize: number;
5
+ metadata: GGUFMetadataAny;
6
+ };
7
+ export default class GGUFParser {
8
+ protected readonly _stream: GGUFBaseStream;
9
+ ignoreKeys: string[];
10
+ constructor(_stream: GGUFBaseStream, ignoreKeys?: string[]);
11
+ private _readMetadataValue;
12
+ private _parseMetadataRaw;
13
+ parseMetadata(): Promise<GGUFMetadataResponse>;
14
+ protected static _getNestedObject(key: string, currentNestedObject: any): {
15
+ lastObject: any;
16
+ lastKey: string;
17
+ };
18
+ }