node-llama-cpp 3.0.0-beta.12 → 3.0.0-beta.14

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 (235) hide show
  1. package/dist/ChatWrapper.d.ts +1 -0
  2. package/dist/ChatWrapper.js +2 -1
  3. package/dist/ChatWrapper.js.map +1 -1
  4. package/dist/TemplateChatWrapper.d.ts +68 -0
  5. package/dist/TemplateChatWrapper.js +239 -0
  6. package/dist/TemplateChatWrapper.js.map +1 -0
  7. package/dist/bindings/AddonTypes.d.ts +15 -5
  8. package/dist/bindings/Llama.d.ts +9 -3
  9. package/dist/bindings/Llama.js +61 -19
  10. package/dist/bindings/Llama.js.map +1 -1
  11. package/dist/bindings/consts.d.ts +2 -0
  12. package/dist/bindings/consts.js +11 -0
  13. package/dist/bindings/consts.js.map +1 -0
  14. package/dist/bindings/getLlama.d.ts +14 -18
  15. package/dist/bindings/getLlama.js +210 -78
  16. package/dist/bindings/getLlama.js.map +1 -1
  17. package/dist/bindings/types.d.ts +11 -5
  18. package/dist/bindings/types.js +22 -0
  19. package/dist/bindings/types.js.map +1 -1
  20. package/dist/bindings/utils/asyncEvery.d.ts +5 -0
  21. package/dist/bindings/utils/asyncEvery.js +15 -0
  22. package/dist/bindings/utils/asyncEvery.js.map +1 -0
  23. package/dist/bindings/utils/asyncSome.d.ts +5 -0
  24. package/dist/bindings/utils/asyncSome.js +27 -0
  25. package/dist/bindings/utils/asyncSome.js.map +1 -0
  26. package/dist/bindings/utils/cloneLlamaCppRepo.js +13 -3
  27. package/dist/bindings/utils/cloneLlamaCppRepo.js.map +1 -1
  28. package/dist/bindings/utils/compileLLamaCpp.d.ts +4 -1
  29. package/dist/bindings/utils/compileLLamaCpp.js +136 -74
  30. package/dist/bindings/utils/compileLLamaCpp.js.map +1 -1
  31. package/dist/bindings/utils/detectAvailableComputeLayers.d.ts +14 -0
  32. package/dist/bindings/utils/detectAvailableComputeLayers.js +300 -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 -6
  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 +14 -0
  58. package/dist/bindings/utils/logDistroInstallInstruction.js +48 -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/testBindingBinary.d.ts +1 -0
  64. package/dist/bindings/utils/testBindingBinary.js +98 -0
  65. package/dist/bindings/utils/testBindingBinary.js.map +1 -0
  66. package/dist/bindings/utils/testCmakeBinary.d.ts +5 -0
  67. package/dist/bindings/utils/testCmakeBinary.js +32 -0
  68. package/dist/bindings/utils/testCmakeBinary.js.map +1 -0
  69. package/dist/chatWrappers/ChatMLChatWrapper.js +1 -1
  70. package/dist/chatWrappers/ChatMLChatWrapper.js.map +1 -1
  71. package/dist/chatWrappers/GemmaChatWrapper.d.ts +18 -0
  72. package/dist/chatWrappers/GemmaChatWrapper.js +86 -0
  73. package/dist/chatWrappers/GemmaChatWrapper.js.map +1 -0
  74. package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js +3 -0
  75. package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js.map +1 -1
  76. package/dist/cli/cli.js +2 -0
  77. package/dist/cli/cli.js.map +1 -1
  78. package/dist/cli/commands/BuildCommand.d.ts +5 -5
  79. package/dist/cli/commands/BuildCommand.js +78 -60
  80. package/dist/cli/commands/BuildCommand.js.map +1 -1
  81. package/dist/cli/commands/ChatCommand.js +31 -14
  82. package/dist/cli/commands/ChatCommand.js.map +1 -1
  83. package/dist/cli/commands/CompleteCommand.js +30 -13
  84. package/dist/cli/commands/CompleteCommand.js.map +1 -1
  85. package/dist/cli/commands/DebugCommand.js +3 -9
  86. package/dist/cli/commands/DebugCommand.js.map +1 -1
  87. package/dist/cli/commands/DownloadCommand.d.ts +5 -5
  88. package/dist/cli/commands/DownloadCommand.js +97 -56
  89. package/dist/cli/commands/DownloadCommand.js.map +1 -1
  90. package/dist/cli/commands/InfillCommand.js +30 -13
  91. package/dist/cli/commands/InfillCommand.js.map +1 -1
  92. package/dist/cli/commands/InspectCommand.d.ts +7 -0
  93. package/dist/cli/commands/InspectCommand.js +113 -0
  94. package/dist/cli/commands/InspectCommand.js.map +1 -0
  95. package/dist/cli/commands/OnPostInstallCommand.js +2 -0
  96. package/dist/cli/commands/OnPostInstallCommand.js.map +1 -1
  97. package/dist/cli/utils/logUsedGpuTypeOption.d.ts +2 -0
  98. package/dist/cli/utils/logUsedGpuTypeOption.js +9 -0
  99. package/dist/cli/utils/logUsedGpuTypeOption.js.map +1 -0
  100. package/dist/config.d.ts +4 -4
  101. package/dist/config.js +11 -12
  102. package/dist/config.js.map +1 -1
  103. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.d.ts +3 -0
  104. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js +3 -0
  105. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js.map +1 -1
  106. package/dist/evaluator/LlamaContext/LlamaContext.d.ts +5 -8
  107. package/dist/evaluator/LlamaContext/LlamaContext.js +111 -65
  108. package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -1
  109. package/dist/evaluator/LlamaContext/types.d.ts +13 -6
  110. package/dist/evaluator/LlamaEmbeddingContext.d.ts +6 -5
  111. package/dist/evaluator/LlamaEmbeddingContext.js +32 -22
  112. package/dist/evaluator/LlamaEmbeddingContext.js.map +1 -1
  113. package/dist/evaluator/LlamaGrammar.js +1 -0
  114. package/dist/evaluator/LlamaGrammar.js.map +1 -1
  115. package/dist/evaluator/LlamaModel.d.ts +16 -16
  116. package/dist/evaluator/LlamaModel.js +95 -20
  117. package/dist/evaluator/LlamaModel.js.map +1 -1
  118. package/dist/gguf/GGUFInsights.d.ts +28 -0
  119. package/dist/gguf/GGUFInsights.js +58 -0
  120. package/dist/gguf/GGUFInsights.js.map +1 -0
  121. package/dist/gguf/GGUFMetadata.d.ts +19 -0
  122. package/dist/gguf/GGUFMetadata.js +38 -0
  123. package/dist/gguf/GGUFMetadata.js.map +1 -0
  124. package/dist/gguf/errors/InvalidGGUFMagicError.d.ts +3 -0
  125. package/dist/gguf/errors/InvalidGGUFMagicError.js +6 -0
  126. package/dist/gguf/errors/InvalidGGUFMagicError.js.map +1 -0
  127. package/dist/gguf/errors/MetadataNotParsedYetError.d.ts +3 -0
  128. package/dist/gguf/errors/MetadataNotParsedYetError.js +6 -0
  129. package/dist/gguf/errors/MetadataNotParsedYetError.js.map +1 -0
  130. package/dist/gguf/errors/MissingNodeLlamaError.d.ts +3 -0
  131. package/dist/gguf/errors/MissingNodeLlamaError.js +6 -0
  132. package/dist/gguf/errors/MissingNodeLlamaError.js.map +1 -0
  133. package/dist/gguf/errors/ModelScore/NotEnoughVRamError.d.ts +5 -0
  134. package/dist/gguf/errors/ModelScore/NotEnoughVRamError.js +11 -0
  135. package/dist/gguf/errors/ModelScore/NotEnoughVRamError.js.map +1 -0
  136. package/dist/gguf/errors/UnsupportedMetadataTypeError.d.ts +4 -0
  137. package/dist/gguf/errors/UnsupportedMetadataTypeError.js +8 -0
  138. package/dist/gguf/errors/UnsupportedMetadataTypeError.js.map +1 -0
  139. package/dist/gguf/ggufParser/GGUFParser.d.ts +18 -0
  140. package/dist/gguf/ggufParser/GGUFParser.js +123 -0
  141. package/dist/gguf/ggufParser/GGUFParser.js.map +1 -0
  142. package/dist/gguf/ggufParser/GGUFTypes.d.ts +257 -0
  143. package/dist/gguf/ggufParser/GGUFTypes.js +2 -0
  144. package/dist/gguf/ggufParser/GGUFTypes.js.map +1 -0
  145. package/dist/gguf/ggufParser/checkArchitecture.d.ts +14 -0
  146. package/dist/gguf/ggufParser/checkArchitecture.js +74 -0
  147. package/dist/gguf/ggufParser/checkArchitecture.js.map +1 -0
  148. package/dist/gguf/ggufParser/stream/GGUFBaseStream.d.ts +38 -0
  149. package/dist/gguf/ggufParser/stream/GGUFBaseStream.js +83 -0
  150. package/dist/gguf/ggufParser/stream/GGUFBaseStream.js.map +1 -0
  151. package/dist/gguf/ggufParser/stream/GGUFFetchStream.d.ts +14 -0
  152. package/dist/gguf/ggufParser/stream/GGUFFetchStream.js +35 -0
  153. package/dist/gguf/ggufParser/stream/GGUFFetchStream.js.map +1 -0
  154. package/dist/gguf/ggufParser/stream/GGUFReadStream.d.ts +15 -0
  155. package/dist/gguf/ggufParser/stream/GGUFReadStream.js +40 -0
  156. package/dist/gguf/ggufParser/stream/GGUFReadStream.js.map +1 -0
  157. package/dist/index.d.ts +3 -1
  158. package/dist/index.js +3 -1
  159. package/dist/index.js.map +1 -1
  160. package/dist/state.d.ts +2 -0
  161. package/dist/state.js +7 -0
  162. package/dist/state.js.map +1 -1
  163. package/dist/utils/DisposeGuard.d.ts +13 -0
  164. package/dist/utils/DisposeGuard.js +120 -0
  165. package/dist/utils/DisposeGuard.js.map +1 -0
  166. package/dist/utils/LlamaText.js +2 -2
  167. package/dist/utils/LlamaText.js.map +1 -1
  168. package/dist/utils/cmake.js +23 -10
  169. package/dist/utils/cmake.js.map +1 -1
  170. package/dist/utils/getBuildDefaults.d.ts +1 -3
  171. package/dist/utils/getBuildDefaults.js +2 -4
  172. package/dist/utils/getBuildDefaults.js.map +1 -1
  173. package/dist/utils/getConsoleLogPrefix.d.ts +1 -1
  174. package/dist/utils/getConsoleLogPrefix.js +5 -4
  175. package/dist/utils/getConsoleLogPrefix.js.map +1 -1
  176. package/dist/utils/mergeUnionTypes.d.ts +6 -0
  177. package/dist/utils/mergeUnionTypes.js +2 -0
  178. package/dist/utils/mergeUnionTypes.js.map +1 -0
  179. package/dist/utils/parseTextTemplate.d.ts +66 -0
  180. package/dist/utils/parseTextTemplate.js +116 -0
  181. package/dist/utils/parseTextTemplate.js.map +1 -0
  182. package/dist/utils/removeNullFields.d.ts +2 -2
  183. package/dist/utils/removeNullFields.js.map +1 -1
  184. package/dist/utils/spawnCommand.d.ts +11 -1
  185. package/dist/utils/spawnCommand.js +55 -7
  186. package/dist/utils/spawnCommand.js.map +1 -1
  187. package/llama/CMakeLists.txt +11 -5
  188. package/llama/addon.cpp +700 -83
  189. package/llama/binariesGithubRelease.json +1 -1
  190. package/llama/gitRelease.bundle +0 -0
  191. package/llama/grammars/json.gbnf +1 -1
  192. package/llama/grammars/json_arr.gbnf +1 -1
  193. package/llama/llama.cpp.info.json +1 -1
  194. package/llamaBins/linux-arm64/_nlcBuildMetadata.json +1 -0
  195. package/llamaBins/linux-arm64/llama-addon.node +0 -0
  196. package/llamaBins/linux-armv7l/_nlcBuildMetadata.json +1 -0
  197. package/llamaBins/linux-armv7l/llama-addon.node +0 -0
  198. package/llamaBins/linux-x64/_nlcBuildMetadata.json +1 -0
  199. package/llamaBins/linux-x64/llama-addon.node +0 -0
  200. package/llamaBins/linux-x64-cuda/_nlcBuildMetadata.json +1 -0
  201. package/llamaBins/linux-x64-cuda/llama-addon.node +0 -0
  202. package/llamaBins/linux-x64-vulkan/_nlcBuildMetadata.json +1 -0
  203. package/llamaBins/linux-x64-vulkan/llama-addon.node +0 -0
  204. package/llamaBins/mac-arm64-metal/_nlcBuildMetadata.json +1 -0
  205. package/llamaBins/mac-arm64-metal/default.metallib +0 -0
  206. package/llamaBins/mac-arm64-metal/llama-addon.node +0 -0
  207. package/llamaBins/mac-x64/_nlcBuildMetadata.json +1 -0
  208. package/llamaBins/mac-x64/llama-addon.node +0 -0
  209. package/llamaBins/win-x64/_nlcBuildMetadata.json +1 -0
  210. package/llamaBins/win-x64/llama-addon.exp +0 -0
  211. package/llamaBins/win-x64/llama-addon.lib +0 -0
  212. package/llamaBins/win-x64/llama-addon.node +0 -0
  213. package/llamaBins/win-x64-cuda/_nlcBuildMetadata.json +1 -0
  214. package/llamaBins/win-x64-cuda/llama-addon.exp +0 -0
  215. package/llamaBins/win-x64-cuda/llama-addon.lib +0 -0
  216. package/llamaBins/win-x64-cuda/llama-addon.node +0 -0
  217. package/llamaBins/win-x64-vulkan/_nlcBuildMetadata.json +1 -0
  218. package/llamaBins/win-x64-vulkan/llama-addon.exp +0 -0
  219. package/llamaBins/win-x64-vulkan/llama-addon.lib +0 -0
  220. package/llamaBins/win-x64-vulkan/llama-addon.node +0 -0
  221. package/package.json +14 -9
  222. package/dist/cli/utils/logEnabledComputeLayers.d.ts +0 -8
  223. package/dist/cli/utils/logEnabledComputeLayers.js +0 -11
  224. package/dist/cli/utils/logEnabledComputeLayers.js.map +0 -1
  225. package/llamaBins/linux-arm64/.buildMetadata.json +0 -1
  226. package/llamaBins/linux-armv7l/.buildMetadata.json +0 -1
  227. package/llamaBins/linux-x64/.buildMetadata.json +0 -1
  228. package/llamaBins/linux-x64-cuda/.buildMetadata.json +0 -1
  229. package/llamaBins/linux-x64-vulkan/.buildMetadata.json +0 -1
  230. package/llamaBins/mac-arm64-metal/.buildMetadata.json +0 -1
  231. package/llamaBins/mac-arm64-metal/ggml-metal.metal +0 -7022
  232. package/llamaBins/mac-x64/.buildMetadata.json +0 -1
  233. package/llamaBins/win-x64/.buildMetadata.json +0 -1
  234. package/llamaBins/win-x64-cuda/.buildMetadata.json +0 -1
  235. package/llamaBins/win-x64-vulkan/.buildMetadata.json +0 -1
@@ -0,0 +1,116 @@
1
+ import { splitText } from "lifecycle-utils";
2
+ /**
3
+ * Parses a text template into a map of parts and their prefixes and suffixes.
4
+ * This parser assumes each part occurs exactly once in the template, and that all parts must occur in the order they are defined.
5
+ * For example,
6
+ * ```typescript
7
+ * const res = parseTextTemplate(
8
+ * "Hello, {{name}}! What is the {{thing}}?",
9
+ * [{
10
+ * key: "name",
11
+ * text: "{{name}}"
12
+ * }, {
13
+ * key: "thing",
14
+ * text: "{{thing}}"
15
+ * }]
16
+ * );
17
+ * expect(res).to.eql({
18
+ * name: {
19
+ * prefix: "Hello, ",
20
+ * suffix: "! What is the "
21
+ * },
22
+ * thing: {
23
+ * prefix: "What is the ",
24
+ * suffix: "?"
25
+ * }
26
+ * });
27
+ * ```
28
+ *
29
+ * ```typescript
30
+ * const res2 = parseTextTemplate(
31
+ * "What is the {{thing}}?",
32
+ * [{
33
+ * key: "name",
34
+ * text: "{{name}}",
35
+ * optional: true
36
+ * }, {
37
+ * key: "thing",
38
+ * text: "{{thing}}"
39
+ * }]
40
+ * );
41
+ * expect(res2).to.eql({
42
+ * thing: {
43
+ * prefix: "What is the ",
44
+ * suffix: "?"
45
+ * }
46
+ * });
47
+ * ```
48
+ */
49
+ export function parseTextTemplate(template, parts) {
50
+ const result = {};
51
+ const templateParts = splitText(template, parts.map((part) => part.text));
52
+ let partIndex = 0;
53
+ for (let i = 0; i < templateParts.length; i++) {
54
+ const textPart = templateParts[i];
55
+ if (typeof textPart === "string")
56
+ continue;
57
+ for (; partIndex < parts.length; partIndex++) {
58
+ const part = parts[partIndex];
59
+ if (textPart.separator === part.text) {
60
+ const previousItem = i > 0
61
+ ? templateParts[i - 1]
62
+ : null;
63
+ const nextItem = i < templateParts.length - 1
64
+ ? templateParts[i + 1]
65
+ : null;
66
+ result[part.key] = {
67
+ prefix: typeof previousItem === "string"
68
+ ? previousItem
69
+ : "",
70
+ suffix: typeof nextItem === "string"
71
+ ? nextItem
72
+ : ""
73
+ };
74
+ partIndex++;
75
+ break;
76
+ }
77
+ if (part.optional != true) {
78
+ if (result[part.key] != null)
79
+ throw new Error(`Template must contain exactly one "${part.text}"`);
80
+ else if (partIndex > 0) {
81
+ const previousNonOptionalOrFoundPart = parts
82
+ .slice(0, partIndex)
83
+ .reverse()
84
+ .find((p) => (p.optional != true || result[p.key] != null));
85
+ if (previousNonOptionalOrFoundPart != null)
86
+ throw new Error(`Template must contain "${part.text}" after "${previousNonOptionalOrFoundPart.text}"`);
87
+ throw new Error(`Template must contain "${part.text}" at the beginning`);
88
+ }
89
+ else
90
+ throw new Error(`Template must contain "${part.text}" at the beginning`);
91
+ }
92
+ else
93
+ result[part.key] = undefined;
94
+ }
95
+ }
96
+ for (; partIndex < parts.length; partIndex++) {
97
+ const part = parts[partIndex];
98
+ if (part.optional == true) {
99
+ result[part.key] = undefined;
100
+ continue;
101
+ }
102
+ if (partIndex > 0) {
103
+ const previousNonOptionalOrFoundPart = parts
104
+ .slice(0, partIndex)
105
+ .reverse()
106
+ .find((p) => (p.optional != true || result[p.key] != null));
107
+ if (previousNonOptionalOrFoundPart != null)
108
+ throw new Error(`Template must contain "${part.text}" after "${previousNonOptionalOrFoundPart.text}"`);
109
+ throw new Error(`Template must contain "${part.text}" at the beginning`);
110
+ }
111
+ else
112
+ throw new Error(`Template must contain "${part.text}" at the beginning`);
113
+ }
114
+ return result;
115
+ }
116
+ //# sourceMappingURL=parseTextTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseTextTemplate.js","sourceRoot":"","sources":["../../src/utils/parseTextTemplate.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare function removeNullFields<T extends object>(obj: T): T;
2
- export declare function removeUndefinedFields<T extends object>(obj: T): T;
1
+ export declare function removeNullFields<const T extends object>(obj: T): T;
2
+ export declare function removeUndefinedFields<const T extends object>(obj: T): T;
@@ -1 +1 @@
1
- {"version":3,"file":"removeNullFields.js","sourceRoot":"","sources":["../../src/utils/removeNullFields.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAAmB,GAAM;IACrD,MAAM,MAAM,GAAM,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAEzC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACnB,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI;YACnB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;KAC1B;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAmB,GAAM;IAC1D,MAAM,MAAM,GAAM,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAEzC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACnB,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS;YACzB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;KAC1B;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"removeNullFields.js","sourceRoot":"","sources":["../../src/utils/removeNullFields.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAAyB,GAAM;IAC3D,MAAM,MAAM,GAAM,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAEzC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACnB,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI;YACnB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;KAC1B;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAyB,GAAM;IAChE,MAAM,MAAM,GAAM,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAEzC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACnB,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS;YACzB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;KAC1B;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -1,2 +1,12 @@
1
1
  /// <reference types="node" />
2
- export declare function spawnCommand(command: string, args: string[], cwd: string, env?: NodeJS.ProcessEnv, progressLogs?: boolean): Promise<void>;
2
+ export declare function spawnCommand(command: string, args: string[], cwd: string, env?: NodeJS.ProcessEnv, progressLogs?: boolean): Promise<{
3
+ stdout: string;
4
+ stderr: string;
5
+ combinedStd: string;
6
+ }>;
7
+ export declare class SpawnError extends Error {
8
+ readonly stdout: string;
9
+ readonly stderr: string;
10
+ readonly combinedStd: string;
11
+ constructor(message: string, stdout: string, stderr: string, combinedStd: string);
12
+ }
@@ -13,10 +13,28 @@ export function spawnCommand(command, args, cwd, env = process.env, progressLogs
13
13
  return res;
14
14
  }
15
15
  return new Promise((resolve, reject) => {
16
+ const stdout = [];
17
+ const stderr = [];
18
+ const combinedStd = [];
19
+ function createResult() {
20
+ const finalStdout = stdout.join("");
21
+ stdout.length = 0;
22
+ const finalStderr = stderr.join("");
23
+ stderr.length = 0;
24
+ const finalCombinedStd = combinedStd.join("");
25
+ combinedStd.length = 0;
26
+ return {
27
+ stdout: finalStdout,
28
+ stderr: finalStderr,
29
+ combinedStd: finalCombinedStd
30
+ };
31
+ }
32
+ function createError(message) {
33
+ const { stdout: finalStdout, stderr: finalStderr, combinedStd: finalCombinedStd } = createResult();
34
+ return new SpawnError(message, finalStdout, finalStderr, finalCombinedStd);
35
+ }
16
36
  const child = spawn(command, args, {
17
- stdio: progressLogs
18
- ? "inherit"
19
- : ["ignore", "ignore", process.stderr],
37
+ stdio: [null, null, null],
20
38
  cwd,
21
39
  env,
22
40
  detached: false,
@@ -24,18 +42,48 @@ export function spawnCommand(command, args, cwd, env = process.env, progressLogs
24
42
  });
25
43
  child.on("exit", (code) => {
26
44
  if (code == 0)
27
- resolve();
45
+ resolve(createResult());
28
46
  else
29
- reject(new Error(`Command ${getCommandString()} exited with code ${code}`));
47
+ reject(createError(`Command ${getCommandString()} exited with code ${code}`));
30
48
  });
31
49
  child.on("error", reject);
32
50
  child.on("disconnect", () => reject(new Error(`Command ${getCommandString()} disconnected`)));
33
51
  child.on("close", code => {
34
52
  if (code == 0)
35
- resolve();
53
+ resolve(createResult());
36
54
  else
37
- reject(new Error(`Command ${getCommandString()} closed with code ${code}`));
55
+ reject(createError(`Command ${getCommandString()} closed with code ${code}`));
56
+ });
57
+ if (progressLogs) {
58
+ child.stdout?.pipe(process.stdout);
59
+ child.stderr?.pipe(process.stderr);
60
+ process.stdin.pipe(child.stdin);
61
+ }
62
+ else {
63
+ child.stderr?.pipe(process.stderr);
64
+ }
65
+ child.stdout?.on("data", (data) => {
66
+ stdout.push(data.toString());
67
+ combinedStd.push(data.toString());
68
+ });
69
+ child.stderr?.on("data", (data) => {
70
+ stderr.push(data.toString());
71
+ combinedStd.push(data.toString());
38
72
  });
39
73
  });
40
74
  }
75
+ export class SpawnError extends Error {
76
+ stdout;
77
+ stderr;
78
+ combinedStd;
79
+ constructor(message, stdout, stderr, combinedStd) {
80
+ super(message);
81
+ Object.defineProperty(this, "stdout", { enumerable: false });
82
+ Object.defineProperty(this, "stderr", { enumerable: false });
83
+ Object.defineProperty(this, "combinedStd", { enumerable: false });
84
+ this.stdout = stdout;
85
+ this.stderr = stderr;
86
+ this.combinedStd = combinedStd;
87
+ }
88
+ }
41
89
  //# sourceMappingURL=spawnCommand.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spawnCommand.js","sourceRoot":"","sources":["../../src/utils/spawnCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAC;AAEhC,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,IAAc,EAAE,GAAW,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,eAAwB,IAAI;IACtH,SAAS,gBAAgB;QACrB,IAAI,GAAG,GAAG,OAAO,CAAC;QAElB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACpB,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACnB,GAAG,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;aAC7C;iBAAM;gBACH,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC;aACpB;SACJ;QAED,OAAO,GAAG,CAAC;IACf,CAAC;IAED,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YAC/B,KAAK,EAAE,YAAY;gBACf,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC;YAC1C,GAAG;YACH,GAAG;YACH,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,IAAI;SACpB,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACtB,IAAI,IAAI,IAAI,CAAC;gBACT,OAAO,EAAE,CAAC;;gBAEV,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,gBAAgB,EAAE,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1B,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,gBAAgB,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;QAC9F,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;YACrB,IAAI,IAAI,IAAI,CAAC;gBACT,OAAO,EAAE,CAAC;;gBAEV,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,gBAAgB,EAAE,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"spawnCommand.js","sourceRoot":"","sources":["../../src/utils/spawnCommand.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,15 @@ cmake_minimum_required(VERSION 3.13)
3
3
  project("llama-addon" C CXX)
4
4
 
5
5
  if (MSVC)
6
- # add_compile_options(/EHsc)
6
+ if (LLAMA_STATIC)
7
+ add_link_options(-static)
8
+ if (MINGW)
9
+ add_link_options(-static-libgcc -static-libstdc++)
10
+ endif()
11
+ endif()
12
+ # add_compile_options(/EHsc)
7
13
  else()
8
- add_compile_options(-fexceptions)
14
+ add_compile_options(-fexceptions)
9
15
  endif()
10
16
 
11
17
  add_definitions(-DNAPI_VERSION=7)
@@ -54,7 +60,7 @@ if (LLAMA_CUBLAS)
54
60
  endif()
55
61
  endif()
56
62
  else()
57
- message(WARNING "cuBLAS not found. Not using it for GPU info")
63
+ message(FATAL_ERROR "cuBLAS was not found")
58
64
  endif()
59
65
  endif()
60
66
 
@@ -74,7 +80,7 @@ if (LLAMA_VULKAN OR LLAMA_KOMPUTE)
74
80
 
75
81
  set(GPU_INFO_EXTRA_LIBS ${GPU_INFO_EXTRA_LIBS} Vulkan::Vulkan)
76
82
  else()
77
- message(WARNING "Vulkan not found. Not using it for GPU info")
83
+ message(FATAL_ERROR "Vulkan was not found")
78
84
  endif()
79
85
  endif()
80
86
 
@@ -101,7 +107,7 @@ if (LLAMA_HIPBLAS)
101
107
 
102
108
  set(GPU_INFO_EXTRA_LIBS ${GPU_INFO_EXTRA_LIBS} gpu-info-rocm)
103
109
  else()
104
- message(WARNING "hipBLAS or HIP not found. Try setting CMAKE_PREFIX_PATH=/opt/rocm")
110
+ message(FATAL_ERROR "hipBLAS or HIP was not found. Try setting CMAKE_PREFIX_PATH=/opt/rocm")
105
111
  endif()
106
112
  endif()
107
113