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.
- package/dist/ChatWrapper.d.ts +1 -0
- package/dist/ChatWrapper.js +2 -1
- package/dist/ChatWrapper.js.map +1 -1
- package/dist/TemplateChatWrapper.d.ts +68 -0
- package/dist/TemplateChatWrapper.js +239 -0
- package/dist/TemplateChatWrapper.js.map +1 -0
- package/dist/bindings/AddonTypes.d.ts +15 -5
- package/dist/bindings/Llama.d.ts +9 -3
- package/dist/bindings/Llama.js +61 -19
- package/dist/bindings/Llama.js.map +1 -1
- package/dist/bindings/consts.d.ts +2 -0
- package/dist/bindings/consts.js +11 -0
- package/dist/bindings/consts.js.map +1 -0
- package/dist/bindings/getLlama.d.ts +14 -18
- package/dist/bindings/getLlama.js +210 -78
- package/dist/bindings/getLlama.js.map +1 -1
- package/dist/bindings/types.d.ts +11 -5
- package/dist/bindings/types.js +22 -0
- package/dist/bindings/types.js.map +1 -1
- package/dist/bindings/utils/asyncEvery.d.ts +5 -0
- package/dist/bindings/utils/asyncEvery.js +15 -0
- package/dist/bindings/utils/asyncEvery.js.map +1 -0
- package/dist/bindings/utils/asyncSome.d.ts +5 -0
- package/dist/bindings/utils/asyncSome.js +27 -0
- package/dist/bindings/utils/asyncSome.js.map +1 -0
- package/dist/bindings/utils/cloneLlamaCppRepo.js +13 -3
- package/dist/bindings/utils/cloneLlamaCppRepo.js.map +1 -1
- package/dist/bindings/utils/compileLLamaCpp.d.ts +4 -1
- package/dist/bindings/utils/compileLLamaCpp.js +136 -74
- package/dist/bindings/utils/compileLLamaCpp.js.map +1 -1
- package/dist/bindings/utils/detectAvailableComputeLayers.d.ts +14 -0
- package/dist/bindings/utils/detectAvailableComputeLayers.js +300 -0
- package/dist/bindings/utils/detectAvailableComputeLayers.js.map +1 -0
- package/dist/bindings/utils/detectGlibc.d.ts +4 -0
- package/dist/bindings/utils/detectGlibc.js +36 -0
- package/dist/bindings/utils/detectGlibc.js.map +1 -0
- package/dist/bindings/utils/getBestComputeLayersAvailable.d.ts +9 -0
- package/dist/bindings/utils/getBestComputeLayersAvailable.js +29 -0
- package/dist/bindings/utils/getBestComputeLayersAvailable.js.map +1 -0
- package/dist/bindings/utils/getBuildFolderNameForBuildOptions.js +12 -6
- package/dist/bindings/utils/getBuildFolderNameForBuildOptions.js.map +1 -1
- package/dist/bindings/utils/getGpuTypesToUseForOption.d.ts +11 -0
- package/dist/bindings/utils/getGpuTypesToUseForOption.js +30 -0
- package/dist/bindings/utils/getGpuTypesToUseForOption.js.map +1 -0
- package/dist/bindings/utils/getLinuxDistroInfo.d.ts +9 -0
- package/dist/bindings/utils/getLinuxDistroInfo.js +46 -0
- package/dist/bindings/utils/getLinuxDistroInfo.js.map +1 -0
- package/dist/bindings/utils/getPlatformInfo.d.ts +5 -0
- package/dist/bindings/utils/getPlatformInfo.js +28 -0
- package/dist/bindings/utils/getPlatformInfo.js.map +1 -0
- package/dist/bindings/utils/hasFileInPath.d.ts +2 -0
- package/dist/bindings/utils/hasFileInPath.js +34 -0
- package/dist/bindings/utils/hasFileInPath.js.map +1 -0
- package/dist/bindings/utils/logBinaryUsageExampleToConsole.d.ts +1 -1
- package/dist/bindings/utils/logBinaryUsageExampleToConsole.js +3 -9
- package/dist/bindings/utils/logBinaryUsageExampleToConsole.js.map +1 -1
- package/dist/bindings/utils/logDistroInstallInstruction.d.ts +14 -0
- package/dist/bindings/utils/logDistroInstallInstruction.js +48 -0
- package/dist/bindings/utils/logDistroInstallInstruction.js.map +1 -0
- package/dist/bindings/utils/resolveChatWrapperBasedOnWrapperTypeName.d.ts +9 -2
- package/dist/bindings/utils/resolveChatWrapperBasedOnWrapperTypeName.js +10 -4
- package/dist/bindings/utils/resolveChatWrapperBasedOnWrapperTypeName.js.map +1 -1
- package/dist/bindings/utils/testBindingBinary.d.ts +1 -0
- package/dist/bindings/utils/testBindingBinary.js +98 -0
- package/dist/bindings/utils/testBindingBinary.js.map +1 -0
- package/dist/bindings/utils/testCmakeBinary.d.ts +5 -0
- package/dist/bindings/utils/testCmakeBinary.js +32 -0
- package/dist/bindings/utils/testCmakeBinary.js.map +1 -0
- package/dist/chatWrappers/ChatMLChatWrapper.js +1 -1
- package/dist/chatWrappers/ChatMLChatWrapper.js.map +1 -1
- package/dist/chatWrappers/GemmaChatWrapper.d.ts +18 -0
- package/dist/chatWrappers/GemmaChatWrapper.js +86 -0
- package/dist/chatWrappers/GemmaChatWrapper.js.map +1 -0
- package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js +3 -0
- package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js.map +1 -1
- package/dist/cli/cli.js +2 -0
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/commands/BuildCommand.d.ts +5 -5
- package/dist/cli/commands/BuildCommand.js +78 -60
- package/dist/cli/commands/BuildCommand.js.map +1 -1
- package/dist/cli/commands/ChatCommand.js +31 -14
- package/dist/cli/commands/ChatCommand.js.map +1 -1
- package/dist/cli/commands/CompleteCommand.js +30 -13
- package/dist/cli/commands/CompleteCommand.js.map +1 -1
- package/dist/cli/commands/DebugCommand.js +3 -9
- package/dist/cli/commands/DebugCommand.js.map +1 -1
- package/dist/cli/commands/DownloadCommand.d.ts +5 -5
- package/dist/cli/commands/DownloadCommand.js +97 -56
- package/dist/cli/commands/DownloadCommand.js.map +1 -1
- package/dist/cli/commands/InfillCommand.js +30 -13
- package/dist/cli/commands/InfillCommand.js.map +1 -1
- package/dist/cli/commands/InspectCommand.d.ts +7 -0
- package/dist/cli/commands/InspectCommand.js +113 -0
- package/dist/cli/commands/InspectCommand.js.map +1 -0
- package/dist/cli/commands/OnPostInstallCommand.js +2 -0
- package/dist/cli/commands/OnPostInstallCommand.js.map +1 -1
- package/dist/cli/utils/logUsedGpuTypeOption.d.ts +2 -0
- package/dist/cli/utils/logUsedGpuTypeOption.js +9 -0
- package/dist/cli/utils/logUsedGpuTypeOption.js.map +1 -0
- package/dist/config.d.ts +4 -4
- package/dist/config.js +11 -12
- package/dist/config.js.map +1 -1
- package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.d.ts +3 -0
- package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js +3 -0
- package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js.map +1 -1
- package/dist/evaluator/LlamaContext/LlamaContext.d.ts +5 -8
- package/dist/evaluator/LlamaContext/LlamaContext.js +111 -65
- package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -1
- package/dist/evaluator/LlamaContext/types.d.ts +13 -6
- package/dist/evaluator/LlamaEmbeddingContext.d.ts +6 -5
- package/dist/evaluator/LlamaEmbeddingContext.js +32 -22
- package/dist/evaluator/LlamaEmbeddingContext.js.map +1 -1
- package/dist/evaluator/LlamaGrammar.js +1 -0
- package/dist/evaluator/LlamaGrammar.js.map +1 -1
- package/dist/evaluator/LlamaModel.d.ts +16 -16
- package/dist/evaluator/LlamaModel.js +95 -20
- package/dist/evaluator/LlamaModel.js.map +1 -1
- package/dist/gguf/GGUFInsights.d.ts +28 -0
- package/dist/gguf/GGUFInsights.js +58 -0
- package/dist/gguf/GGUFInsights.js.map +1 -0
- package/dist/gguf/GGUFMetadata.d.ts +19 -0
- package/dist/gguf/GGUFMetadata.js +38 -0
- package/dist/gguf/GGUFMetadata.js.map +1 -0
- package/dist/gguf/errors/InvalidGGUFMagicError.d.ts +3 -0
- package/dist/gguf/errors/InvalidGGUFMagicError.js +6 -0
- package/dist/gguf/errors/InvalidGGUFMagicError.js.map +1 -0
- package/dist/gguf/errors/MetadataNotParsedYetError.d.ts +3 -0
- package/dist/gguf/errors/MetadataNotParsedYetError.js +6 -0
- package/dist/gguf/errors/MetadataNotParsedYetError.js.map +1 -0
- package/dist/gguf/errors/MissingNodeLlamaError.d.ts +3 -0
- package/dist/gguf/errors/MissingNodeLlamaError.js +6 -0
- package/dist/gguf/errors/MissingNodeLlamaError.js.map +1 -0
- package/dist/gguf/errors/ModelScore/NotEnoughVRamError.d.ts +5 -0
- package/dist/gguf/errors/ModelScore/NotEnoughVRamError.js +11 -0
- package/dist/gguf/errors/ModelScore/NotEnoughVRamError.js.map +1 -0
- package/dist/gguf/errors/UnsupportedMetadataTypeError.d.ts +4 -0
- package/dist/gguf/errors/UnsupportedMetadataTypeError.js +8 -0
- package/dist/gguf/errors/UnsupportedMetadataTypeError.js.map +1 -0
- package/dist/gguf/ggufParser/GGUFParser.d.ts +18 -0
- package/dist/gguf/ggufParser/GGUFParser.js +123 -0
- package/dist/gguf/ggufParser/GGUFParser.js.map +1 -0
- package/dist/gguf/ggufParser/GGUFTypes.d.ts +257 -0
- package/dist/gguf/ggufParser/GGUFTypes.js +2 -0
- package/dist/gguf/ggufParser/GGUFTypes.js.map +1 -0
- package/dist/gguf/ggufParser/checkArchitecture.d.ts +14 -0
- package/dist/gguf/ggufParser/checkArchitecture.js +74 -0
- package/dist/gguf/ggufParser/checkArchitecture.js.map +1 -0
- package/dist/gguf/ggufParser/stream/GGUFBaseStream.d.ts +38 -0
- package/dist/gguf/ggufParser/stream/GGUFBaseStream.js +83 -0
- package/dist/gguf/ggufParser/stream/GGUFBaseStream.js.map +1 -0
- package/dist/gguf/ggufParser/stream/GGUFFetchStream.d.ts +14 -0
- package/dist/gguf/ggufParser/stream/GGUFFetchStream.js +35 -0
- package/dist/gguf/ggufParser/stream/GGUFFetchStream.js.map +1 -0
- package/dist/gguf/ggufParser/stream/GGUFReadStream.d.ts +15 -0
- package/dist/gguf/ggufParser/stream/GGUFReadStream.js +40 -0
- package/dist/gguf/ggufParser/stream/GGUFReadStream.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/state.d.ts +2 -0
- package/dist/state.js +7 -0
- package/dist/state.js.map +1 -1
- package/dist/utils/DisposeGuard.d.ts +13 -0
- package/dist/utils/DisposeGuard.js +120 -0
- package/dist/utils/DisposeGuard.js.map +1 -0
- package/dist/utils/LlamaText.js +2 -2
- package/dist/utils/LlamaText.js.map +1 -1
- package/dist/utils/cmake.js +23 -10
- package/dist/utils/cmake.js.map +1 -1
- package/dist/utils/getBuildDefaults.d.ts +1 -3
- package/dist/utils/getBuildDefaults.js +2 -4
- package/dist/utils/getBuildDefaults.js.map +1 -1
- package/dist/utils/getConsoleLogPrefix.d.ts +1 -1
- package/dist/utils/getConsoleLogPrefix.js +5 -4
- package/dist/utils/getConsoleLogPrefix.js.map +1 -1
- package/dist/utils/mergeUnionTypes.d.ts +6 -0
- package/dist/utils/mergeUnionTypes.js +2 -0
- package/dist/utils/mergeUnionTypes.js.map +1 -0
- package/dist/utils/parseTextTemplate.d.ts +66 -0
- package/dist/utils/parseTextTemplate.js +116 -0
- package/dist/utils/parseTextTemplate.js.map +1 -0
- package/dist/utils/removeNullFields.d.ts +2 -2
- package/dist/utils/removeNullFields.js.map +1 -1
- package/dist/utils/spawnCommand.d.ts +11 -1
- package/dist/utils/spawnCommand.js +55 -7
- package/dist/utils/spawnCommand.js.map +1 -1
- package/llama/CMakeLists.txt +11 -5
- package/llama/addon.cpp +700 -83
- package/llama/binariesGithubRelease.json +1 -1
- package/llama/gitRelease.bundle +0 -0
- package/llama/grammars/json.gbnf +1 -1
- package/llama/grammars/json_arr.gbnf +1 -1
- package/llama/llama.cpp.info.json +1 -1
- package/llamaBins/linux-arm64/_nlcBuildMetadata.json +1 -0
- package/llamaBins/linux-arm64/llama-addon.node +0 -0
- package/llamaBins/linux-armv7l/_nlcBuildMetadata.json +1 -0
- package/llamaBins/linux-armv7l/llama-addon.node +0 -0
- package/llamaBins/linux-x64/_nlcBuildMetadata.json +1 -0
- package/llamaBins/linux-x64/llama-addon.node +0 -0
- package/llamaBins/linux-x64-cuda/_nlcBuildMetadata.json +1 -0
- package/llamaBins/linux-x64-cuda/llama-addon.node +0 -0
- package/llamaBins/linux-x64-vulkan/_nlcBuildMetadata.json +1 -0
- package/llamaBins/linux-x64-vulkan/llama-addon.node +0 -0
- package/llamaBins/mac-arm64-metal/_nlcBuildMetadata.json +1 -0
- package/llamaBins/mac-arm64-metal/default.metallib +0 -0
- package/llamaBins/mac-arm64-metal/llama-addon.node +0 -0
- package/llamaBins/mac-x64/_nlcBuildMetadata.json +1 -0
- package/llamaBins/mac-x64/llama-addon.node +0 -0
- package/llamaBins/win-x64/_nlcBuildMetadata.json +1 -0
- package/llamaBins/win-x64/llama-addon.exp +0 -0
- package/llamaBins/win-x64/llama-addon.lib +0 -0
- package/llamaBins/win-x64/llama-addon.node +0 -0
- package/llamaBins/win-x64-cuda/_nlcBuildMetadata.json +1 -0
- package/llamaBins/win-x64-cuda/llama-addon.exp +0 -0
- package/llamaBins/win-x64-cuda/llama-addon.lib +0 -0
- package/llamaBins/win-x64-cuda/llama-addon.node +0 -0
- package/llamaBins/win-x64-vulkan/_nlcBuildMetadata.json +1 -0
- package/llamaBins/win-x64-vulkan/llama-addon.exp +0 -0
- package/llamaBins/win-x64-vulkan/llama-addon.lib +0 -0
- package/llamaBins/win-x64-vulkan/llama-addon.node +0 -0
- package/package.json +14 -9
- package/dist/cli/utils/logEnabledComputeLayers.d.ts +0 -8
- package/dist/cli/utils/logEnabledComputeLayers.js +0 -11
- package/dist/cli/utils/logEnabledComputeLayers.js.map +0 -1
- package/llamaBins/linux-arm64/.buildMetadata.json +0 -1
- package/llamaBins/linux-armv7l/.buildMetadata.json +0 -1
- package/llamaBins/linux-x64/.buildMetadata.json +0 -1
- package/llamaBins/linux-x64-cuda/.buildMetadata.json +0 -1
- package/llamaBins/linux-x64-vulkan/.buildMetadata.json +0 -1
- package/llamaBins/mac-arm64-metal/.buildMetadata.json +0 -1
- package/llamaBins/mac-arm64-metal/ggml-metal.metal +0 -7022
- package/llamaBins/mac-x64/.buildMetadata.json +0 -1
- package/llamaBins/win-x64/.buildMetadata.json +0 -1
- package/llamaBins/win-x64-cuda/.buildMetadata.json +0 -1
- 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,
|
|
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<
|
|
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:
|
|
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(
|
|
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(
|
|
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,
|
|
1
|
+
{"version":3,"file":"spawnCommand.js","sourceRoot":"","sources":["../../src/utils/spawnCommand.ts"],"names":[],"mappings":"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"}
|
package/llama/CMakeLists.txt
CHANGED
|
@@ -3,9 +3,15 @@ cmake_minimum_required(VERSION 3.13)
|
|
|
3
3
|
project("llama-addon" C CXX)
|
|
4
4
|
|
|
5
5
|
if (MSVC)
|
|
6
|
-
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|